From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 13644 invoked from network); 18 Aug 2020 04:34:50 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 18 Aug 2020 04:34:50 -0000 Content-Type: multipart/mixed; boundary="===============4647738884097529441==" 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:34:46 +0200 List-Id: Message-ID: <20200818043446.pCmruWhnsEN6Yym1NJHutUXFZ9i3galZssb0hpXzzjA@z> GitHub notification mails are now in MIME to allow UTF8. --===============4647738884097529441== 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== --===============4647738884097529441== 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 OTU0Y2FjYTk0YTk2NGIzYTBkMTY0NjY3OThhOGMxZDY0NGRkNjZjMjQ5MmYyYmIKCkZyb20gZjlk ZTQxN2YwNTNlZDI4Y2I5OTE3M2Q5YmE2NWI4OTM3ZDMwZDZlNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFR1 ZSwgMTggQXVnIDIwMjAgMDU6MzU6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDgzLzgzXSBidWRn aWUtZGVza3RvcDogcmVidWlsZCBmb3IgbXV0dGVyLTcKCltjaSBza2lwXQotLS0KIC4uLi9idWRn aWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaCAgICB8IDEzNDcyICsrKysrKysrKysr KysrKysKIHNyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICAg ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDEzNDczIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvZ25v bWUtMzM4LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVz L2dub21lLTMzOC5wYXRjaCBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0z MzgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyZmE3NmEx N2IwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2du b21lLTMzOC5wYXRjaApAQCAtMCwwICsxLDEzNDcyIEBACitGcm9tIDMwYmEwYjVhNDk4NmQ2YmUz Njg3YTFkN2ZiNDgyOTA2MTg1ZWE4YzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBE YXZpZCBNb2hhbW1lZCA8Zm9zc2ZyZWVkb21AdXNlcnMubm9yZXBseS5naXRodWIuY29tPgorRGF0 ZTogVHVlLCAxOCBGZWIgMjAyMCAwNjo0MDoxMiArMDAwMAorU3ViamVjdDogW1BBVENIXSBnbm9t ZSAzLjM4IGNvbXBhdGliaWxpdHkKKworU3F1YXNoZWQgYnkgQHE2NiBmcm9tOgorCitodHRwczov L2dpdGh1Yi5jb20vc29sdXMtcHJvamVjdC9idWRnaWUtZGVza3RvcC9wdWxsLzE5ODcKKworcGx1 cyBhbiBhc3NvcnRtZW50IG9mIG9sZGVyIG11dHRlciB1cGRhdGVzIGZyb20gZ2l0IG1hc3Rlcgor LS0tCisgbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx NiArLQorIG1lc29uX29wdGlvbnMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDEgLQorIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYSAgICAgICAgICB8ICAg IDYgLQorIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAg MTMgKy0KKyBzcmMvd20vYmFja2dyb3VuZC52YWxhICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDE1ICstCisgc3JjL3dtL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAzMCArLQorIHNyYy93bS9zaGltLnZhbGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMTAgKy0KKyBzcmMvd20vd20udmFsYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEwICstCisgLi4ue0NsdXR0ZXItNS5tZXRhZGF0YSA9PiBDbHV0dGVyLTYubWV0YWRhdGF9 IHwgICAgMAorIC4uLntDbHV0dGVyLTQubWV0YWRhdGEgPT4gQ2x1dHRlci03Lm1ldGFkYXRhfSB8 ICAgNDMgLQorIHZhcGkve0NvZ2wtNC5tZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICAgICB8 ICAgIDAKKyB2YXBpL3tDb2dsLTUubWV0YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAgICAgfCAg ICAyIC0KKyB2YXBpL01ldGEtMy5tZXRhZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDY2IC0KKyB2YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4gTWV0YS02Lm1ldGFkYXRhfSAgICAgfCAg ICAwCisgdmFwaS97TWV0YS00Lm1ldGFkYXRhID0+IE1ldGEtNy5tZXRhZGF0YX0gICAgIHwgICAy NSArLQorIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2ggICAgICAgICAgICAgICAgICB8ICAg IDIgKy0KKyB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgICAgICAgICAgICAgICAgfCAg NjkxICsrKysrKysKKyB2YXBpL2xpYm11dHRlci0yLmRlcHMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICA5IC0KKyB2YXBpL2xpYm11dHRlci0yLnZhcGkgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxMzI1IC0tLS0tLS0tLS0tLS0tCisgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSAg ICAgICAgICAgICAgICAgIHwgICAgNiAtCisgdmFwaS9saWJtdXR0ZXItMy5kZXBzICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgOSAtCisgdmFwaS9saWJtdXR0ZXItNC5kZXBzICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgOCAtCisgdmFwaS9saWJtdXR0ZXItNC52YXBpICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTQyNSAtLS0tLS0tLS0tLS0tLS0KKyB2YXBpL3tsaWJtdXR0ZXIt NS5kZXBzID0+IGxpYm11dHRlci02LmRlcHN9ICAgfCAgICAzICstCisgdmFwaS97bGlibXV0dGVy LTUudmFwaSA9PiBsaWJtdXR0ZXItNi52YXBpfSAgIHwgICA0NSArLQorIHZhcGkvbGlibXV0dGVy LTctY3VzdG9tLnZhbGEgICAgICAgICAgICAgICAgICB8ICAgIDcgKworIHZhcGkvbGlibXV0dGVy LTcuZGVwcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKworIHZhcGkve2xpYm11dHRl ci0zLnZhcGkgPT4gbGlibXV0dGVyLTcudmFwaX0gICB8ICAzOTAgKystLQorIHZhcGkvbGlibXV0 dGVyLWNvZ2wtNC52YXBpICAgICAgICAgICAgICAgICAgICB8IDEyNzIgLS0tLS0tLS0tLS0tLQor IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYSAgICAgICAgICAgICB8ICAxNTggLS0K KyAuLi5zdG9tLnZhbGEgPT4gbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYX0gfCAgIDExIC0K KyAuLi5yLWNsdXR0ZXItNS5kZXBzID0+IG11dHRlci1jbHV0dGVyLTYuZGVwc30gfCAgICAyICst CisgLi4uci1jbHV0dGVyLTUudmFwaSA9PiBtdXR0ZXItY2x1dHRlci02LnZhcGl9IHwgIDgwNiAr Ky0tLS0tLQorIC4uLnItY2x1dHRlci00LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNy5kZXBzfSB8 ICAgIDMgKy0KKyAuLi5yLWNsdXR0ZXItNC52YXBpID0+IG11dHRlci1jbHV0dGVyLTcudmFwaX0g fCAxNjE1ICsrKystLS0tLS0tLS0tLS0tCisgLi4uLWN1c3RvbS52YWxhID0+IG11dHRlci1jb2ds LTYtY3VzdG9tLnZhbGF9IHwgICAgMAorIC4uLnttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVy LWNvZ2wtNi5kZXBzfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRlci1j b2dsLTYudmFwaX0gfCAgNDIyICstLS0tCisgLi4uLWN1c3RvbS52YWxhID0+IG11dHRlci1jb2ds LTctY3VzdG9tLnZhbGF9IHwgICAyMCArLQorIC4uLnttdXR0ZXItY29nbC01LmRlcHMgPT4gbXV0 dGVyLWNvZ2wtNy5kZXBzfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11dHRl ci1jb2dsLTcudmFwaX0gfCAgNjcxICsrKy0tLS0KKyB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFw aSAgICAgICAgICAgICAgICAgICAgfCAgIDMxICstCisgNDIgZmlsZXMgY2hhbmdlZCwgMTkyMCBp bnNlcnRpb25zKCspLCA3MjU0IGRlbGV0aW9ucygtKQorIHJlbmFtZSB2YXBpL3tDbHV0dGVyLTUu bWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97Q2x1 dHRlci00Lm1ldGFkYXRhID0+IENsdXR0ZXItNy5tZXRhZGF0YX0gKDc4JSkKKyByZW5hbWUgdmFw aS97Q29nbC00Lm1ldGFkYXRhID0+IENvZ2wtNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZh cGkve0NvZ2wtNS5tZXRhZGF0YSA9PiBDb2dsLTcubWV0YWRhdGF9ICg5MSUpCisgZGVsZXRlIG1v ZGUgMTAwNjQ0IHZhcGkvTWV0YS0zLm1ldGFkYXRhCisgcmVuYW1lIHZhcGkve01ldGEtNS5tZXRh ZGF0YSA9PiBNZXRhLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tNZXRhLTQubWV0 YWRhdGEgPT4gTWV0YS03Lm1ldGFkYXRhfSAoNzYlKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBp L2dyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJt dXR0ZXItMi5kZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIudmFwaQor IGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhCisgZGVsZXRl IG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTMuZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2 YXBpL2xpYm11dHRlci00LmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXIt NC52YXBpCisgcmVuYW1lIHZhcGkve2xpYm11dHRlci01LmRlcHMgPT4gbGlibXV0dGVyLTYuZGVw c30gKDUwJSkKKyByZW5hbWUgdmFwaS97bGlibXV0dGVyLTUudmFwaSA9PiBsaWJtdXR0ZXItNi52 YXBpfSAoOTclKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52 YWxhCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTcuZGVwcworIHJlbmFtZSB2 YXBpL3tsaWJtdXR0ZXItMy52YXBpID0+IGxpYm11dHRlci03LnZhcGl9ICg3NSUpCisgZGVsZXRl IG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCisgZGVsZXRlIG1vZGUgMTAw NjQ0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorIHJlbmFtZSB2YXBpL3ttdXR0 ZXItY2x1dHRlci00LWN1c3RvbS52YWxhID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9 ICg5MiUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTUuZGVwcyA9PiBtdXR0ZXItY2x1 dHRlci02LmRlcHN9ICg2MyUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTUudmFwaSA9 PiBtdXR0ZXItY2x1dHRlci02LnZhcGl9ICg5MyUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0 dGVyLTQuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci03LmRlcHN9ICg1NCUpCisgcmVuYW1lIHZhcGkv e211dHRlci1jbHV0dGVyLTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9ICg4NiUpCisg cmVuYW1lIHZhcGkve211dHRlci1jb2dsLTUtY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNvZ2wtNi1j dXN0b20udmFsYX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTQuZGVwcyA9PiBt dXR0ZXItY29nbC02LmRlcHN9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01LnZh cGkgPT4gbXV0dGVyLWNvZ2wtNi52YXBpfSAoNjglKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29n bC00LWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTctY3VzdG9tLnZhbGF9ICg4MSUpCisgcmVu YW1lIHZhcGkve211dHRlci1jb2dsLTUuZGVwcyA9PiBtdXR0ZXItY29nbC03LmRlcHN9ICgxMDAl KQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LnZhcGkgPT4gbXV0dGVyLWNvZ2wtNy52YXBp fSAoNTklKQorCitkaWZmIC0tZ2l0IG1lc29uLmJ1aWxkIG1lc29uLmJ1aWxkCitpbmRleCAyYTBl MDMxNi4uM2M0YzZhYzEgMTAwNjQ0CistLS0gbWVzb24uYnVpbGQKKysrKyBtZXNvbi5idWlsZAor QEAgLTMyLDE2ICszMiwxNiBAQCBhbV9jZmxhZ3MgPSBbCisgYWRkX2dsb2JhbF9hcmd1bWVudHMo YW1fY2ZsYWdzLCBsYW5ndWFnZTogJ2MnKQorIG1lc29uLmFkZF9pbnN0YWxsX3NjcmlwdCgnbWVz b25fcG9zdF9pbnN0YWxsLnNoJykKKyAKKy0jIEJ1ZGdpZSBuZWVkcyBhIG1pbmltdW0gMy4yMiBH Tk9NRSBzdGFjaworLWdub21lX21pbmltdW1fdmVyc2lvbiA9ICc+PSAzLjIyLjAnCisrIyBCdWRn aWUgbmVlZHMgYSBtaW5pbXVtIDMuMjQgR05PTUUgc3RhY2sKKytnbm9tZV9taW5pbXVtX3ZlcnNp b24gPSAnPj0gMy4yNC4wJworIAorIGRlcF9ndGszID0gZGVwZW5kZW5jeSgnZ3RrKy0zLjAnLCB2 ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCistZGVwX2dsaWIgPSBkZXBlbmRlbmN5KCdn bGliLTIuMCcsIHZlcnNpb246ICc+PSAyLjQ2LjAnKQorLWRlcF9naW91bml4ID0gZGVwZW5kZW5j eSgnZ2lvLXVuaXgtMi4wJywgdmVyc2lvbjogJz49IDIuNDYuMCcpCistZGVwX3BlYXMgPSBkZXBl bmRlbmN5KCdsaWJwZWFzLTEuMCcsIHZlcnNpb246ICc+PSAxLjguMCcpCisrZGVwX2dsaWIgPSBk ZXBlbmRlbmN5KCdnbGliLTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9naW91bml4 ID0gZGVwZW5kZW5jeSgnZ2lvLXVuaXgtMi4wJywgdmVyc2lvbjogJz49IDIuNjIuMCcpCisrZGVw X3BlYXMgPSBkZXBlbmRlbmN5KCdsaWJwZWFzLTEuMCcsIHZlcnNpb246ICc+PSAxLjI0LjAnKQor IGRlcF9nZGt4MTEgPSBkZXBlbmRlbmN5KCdnZGsteDExLTMuMCcsIHZlcnNpb246IGdub21lX21p bmltdW1fdmVyc2lvbikKKyBkZXBfbGlidXVpZCA9IGRlcGVuZGVuY3koJ3V1aWQnKQorLWRlcF92 YWxhID0gZGVwZW5kZW5jeSgndmFwaWdlbicsIHZlcnNpb246ICc+PSAwLjQwLjAnKQorK2RlcF92 YWxhID0gZGVwZW5kZW5jeSgndmFwaWdlbicsIHZlcnNpb246ICc+PSAwLjQ2LjAnKQorIAorICMg TmVlZGVkIGZvciBrZXlib2FyZHkgYml0cworIGRlcF9pYnVzID0gZGVwZW5kZW5jeSgnaWJ1cy0x LjAnLCB2ZXJzaW9uOiAnPj0gMS41LjEwJykKK0BAIC01MSwxMCArNTEsMTAgQEAgZGVwX2dzZXR0 aW5ncyA9IGRlcGVuZGVuY3koJ2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMnLCB2ZXJzaW9uOiBn bm9tZV9taW5pbXVtX3YKKyBkZXBfZ3NkID0gZGVwZW5kZW5jeSgnZ25vbWUtc2V0dGluZ3MtZGFl bW9uJywgdmVyc2lvbjogJz49My4yOC4wJykKKyAKKyAjIHduY2sgdXNlZCBhbGwgb3ZlciB0aGUg cGxhY2UuLgorLWRlcF93bmNrID0gZGVwZW5kZW5jeSgnbGlid25jay0zLjAnLCB2ZXJzaW9uOiAn Pj0gMy4xNC4wJykKKytkZXBfd25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lv bjogJz49IDMuMzIuMCcpCisgCisgIyBhY2NvdW50c3NlcnZpY2UgaW4gbXVsdGlwbGUgYXBwbGV0 cworLWRlcF9hY2NvdW50c3NlcnZpY2UgPSBkZXBlbmRlbmN5KCdhY2NvdW50c3NlcnZpY2UnLCB2 ZXJzaW9uOiAnPj0gMC42LjQwJykKKytkZXBfYWNjb3VudHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgn YWNjb3VudHNzZXJ2aWNlJywgdmVyc2lvbjogJz49IDAuNi41NScpCisgCisgIyBDcmVhdGUgY29u ZmlnLmgKKyBjZGF0YSA9IGNvbmZpZ3VyYXRpb25fZGF0YSgpCitkaWZmIC0tZ2l0IG1lc29uX29w dGlvbnMudHh0IG1lc29uX29wdGlvbnMudHh0CitpbmRleCBkNzFiMDliNS4uZGNhOTEyOTYgMTAw NjQ0CistLS0gbWVzb25fb3B0aW9ucy50eHQKKysrKyBtZXNvbl9vcHRpb25zLnR4dAorQEAgLTEs NSArMSw0IEBACisgb3B0aW9uKCd3aXRoLXN0YXRlbGVzcycsIHR5cGU6ICdib29sZWFuJywgdmFs dWU6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBzdGF0ZWxlc3MgWERHIHBhdGhzJykKKyBv cHRpb24oJ3dpdGgtcG9sa2l0JywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3Jp cHRpb246ICdFbmFibGUgUG9sS2l0IHN1cHBvcnQnKQorLW9wdGlvbignd2l0aC1ibHVldG9vdGgn LCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBnbm9t ZS1ibHVldG9vdGggc3VwcG9ydCcpCisgb3B0aW9uKCd3aXRoLWd0ay1kb2MnLCB0eXBlOiAnYm9v bGVhbicsIHZhbHVlOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0J1aWxkIGd0ay1kb2MgZG9jdW1lbnRh dGlvbicpCisgb3B0aW9uKCd3aXRoLWRlc2t0b3AtaWNvbnMnLCB0eXBlOiAnY29tYm8nLCBjaG9p Y2VzOiBbJ25hdXRpbHVzJywgJ25vbmUnXSwgdmFsdWU6ICduYXV0aWx1cycsIGRlc2NyaXB0aW9u OiAnRGVza3RvcCBpY29uIGhhbmRsaW5nJykKK2RpZmYgLS1naXQgc3JjL2FwcGxldHMvc3RhdHVz L1N0YXR1c0FwcGxldC52YWxhIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQor aW5kZXggYjk4MjYzOTQuLjcxZjI4N2M5IDEwMDY0NAorLS0tIHNyYy9hcHBsZXRzL3N0YXR1cy9T dGF0dXNBcHBsZXQudmFsYQorKysrIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFs YQorQEAgLTIwLDkgKzIwLDcgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5B cHBsZXQKKyB7CisgCisgICAgIHByb3RlY3RlZCBHdGsuQm94IHdpZGdldDsKKy0jaWYgV0lUSF9C TFVFVE9PVEgKKyAgICAgcHJvdGVjdGVkIEJsdWV0b290aEluZGljYXRvciBibHVlOworLSNlbmRp ZgorICAgICBwcm90ZWN0ZWQgU291bmRJbmRpY2F0b3Igc291bmQ7CisgICAgIHByb3RlY3RlZCBQ b3dlckluZGljYXRvciBwb3dlcjsKKyAgICAgcHJvdGVjdGVkIEd0ay5FdmVudEJveD8gd3JhcDsK K0BAIC02OCwxMiArNjYsMTAgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5B cHBsZXQKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3Zlcihwb3dlci5lYm94LCBwb3dlci5wb3Bv dmVyKTsKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3Zlcihzb3VuZC5lYm94LCBzb3VuZC5wb3Bv dmVyKTsKKyAKKy0jaWYgV0lUSF9CTFVFVE9PVEgKKyAgICAgICAgIGJsdWUgPSBuZXcgQmx1ZXRv b3RoSW5kaWNhdG9yKCk7CisgICAgICAgICB3aWRnZXQucGFja19zdGFydChibHVlLCBmYWxzZSwg ZmFsc2UsIDIpOworICAgICAgICAgYmx1ZS5zaG93X2FsbCgpOworICAgICAgICAgdGhpcy5zZXR1 cF9wb3BvdmVyKGJsdWUuZWJveCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIAor ICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBwYW5lbF9wb3NpdGlvbl9jaGFuZ2VkKEJ1ZGdpZS5Q YW5lbFBvc2l0aW9uIHBvc2l0aW9uKQorQEAgLTkxLDkgKzg3LDcgQEAgcHVibGljIGNsYXNzIFN0 YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBsZXQKKyAgICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFn ZXI7CisgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIu cG9wb3Zlcik7CisgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIoc291bmQuZWJveCwg c291bmQucG9wb3Zlcik7CistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgICAgICBtYW5hZ2VyLnJl Z2lzdGVyX3BvcG92ZXIoYmx1ZS5lYm94LCBibHVlLnBvcG92ZXIpOworLSNlbmRpZgorICAgICB9 CisgfSAvLyBFbmQgY2xhc3MKKyAKK2RpZmYgLS1naXQgc3JjL2FwcGxldHMvc3RhdHVzL21lc29u LmJ1aWxkIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAoraW5kZXggNjk5ZmI4ZjQuLmI0 ZDI3MDZjIDEwMDY0NAorLS0tIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAorKysrIHNy Yy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAorQEAgLTEwLDYgKzEwLDcgQEAgY3VzdG9tX3Rh cmdldCgncGx1Z2luLWZpbGUtc3RhdHVzJywKKyAgICAgaW5zdGFsbF9kaXIgOiBhcHBsZXRfc3Rh dHVzX2RpcikKKyAKKyBhcHBsZXRfc3RhdHVzX3NvdXJjZXMgPSBbCisrICAgICdCbHVldG9vdGhJ bmRpY2F0b3IudmFsYScsCisgICAgICdTdGF0dXNBcHBsZXQudmFsYScsCisgICAgICdQb3dlcklu ZGljYXRvci52YWxhJywKKyAgICAgJ1NvdW5kSW5kaWNhdG9yLnZhbGEnLAorQEAgLTIwLDIyICsy MSwxMyBAQCBhcHBsZXRfc3RhdHVzX2RlcHMgPSBbCisgICAgIGRlcF9ndGszLAorICAgICBkZXBf cGVhcywKKyAgICAgZGVwX2FjY291bnRzc2VydmljZSwKKysgICAgZGVwZW5kZW5jeSgnZ25vbWUt Ymx1ZXRvb3RoLTEuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiksCisgICAgIGRl cGVuZGVuY3koJ3Vwb3dlci1nbGliJywgdmVyc2lvbjogJz49IDAuOTkuMCcpLAorICAgICBsaW5r X2xpYnBsdWdpbiwKKyAgICAgZ3ZjLmdldF92YXJpYWJsZSgnbGliZ3ZjX2RlcCcpLAorICAgICBt ZXNvbi5nZXRfY29tcGlsZXIoJ2MnKS5maW5kX2xpYnJhcnkoJ20nLCByZXF1aXJlZDogZmFsc2Up LAorIF0KKyAKKy0jIEJsdWV0b290aCBpcyBvcHRpb25hbCB0byBhbGxvdyBzbWFsbGVyIGJ1aWxk cworLXdpdGhfYmx1ZXRvb3RoID0gZ2V0X29wdGlvbignd2l0aC1ibHVldG9vdGgnKQorLWFwcGxl dF9zdGF0dXNfdmFsYV9hcmdzID0gW10KKy0KKy1pZiB3aXRoX2JsdWV0b290aCA9PSB0cnVlCist ICAgIGFwcGxldF9zdGF0dXNfZGVwcyArPSBkZXBlbmRlbmN5KCdnbm9tZS1ibHVldG9vdGgtMS4w JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorLSAgICBhcHBsZXRfc3RhdHVzX3Nv dXJjZXMgKz0gJ0JsdWV0b290aEluZGljYXRvci52YWxhJworLSAgICBhcHBsZXRfc3RhdHVzX3Zh bGFfYXJncyArPSBbJy1EJywgJ1dJVEhfQkxVRVRPT1RIJ10KKy1lbmRpZgorLQorIHNoYXJlZF9s aWJyYXJ5KAorICAgICAnc3RhdHVzYXBwbGV0JywKKyAgICAgYXBwbGV0X3N0YXR1c19zb3VyY2Vz LAorQEAgLTUwLDcgKzQyLDYgQEAgc2hhcmVkX2xpYnJhcnkoCisgICAgICAgICAnLS1wa2cnLCAn Z3ZjLTEuMCcsCisgICAgICAgICAnLS1wa2cnLCAnZ2lvLXVuaXgtMi4wJywKKyAgICAgICAgICct LXZhcGlkaXInLCBqb2luX3BhdGhzKG1lc29uLnNvdXJjZV9yb290KCksICd2YXBpJyksCistICAg ICAgICBhcHBsZXRfc3RhdHVzX3ZhbGFfYXJncywKKyAgICAgXSwKKyAgICAgaW5zdGFsbDogdHJ1 ZSwKKyAgICAgaW5zdGFsbF9kaXI6IGFwcGxldF9zdGF0dXNfZGlyLAorZGlmZiAtLWdpdCBzcmMv d20vYmFja2dyb3VuZC52YWxhIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKK2luZGV4IDA4NGFhOWFi Li5iMzMxZTBjNCAxMDA2NDQKKy0tLSBzcmMvd20vYmFja2dyb3VuZC52YWxhCisrKysgc3JjL3dt L2JhY2tncm91bmQudmFsYQorQEAgLTIwNCw4ICsyMDQsMTMgQEAgcHVibGljIGNsYXNzIEJ1ZGdp ZUJhY2tncm91bmQgOiBDbHV0dGVyLkFjdG9yCisgCisgICAgICAgICB2YXIgYWN0b3IgPSBuZXcg TWV0YS5CYWNrZ3JvdW5kQWN0b3IoZGlzcGxheSwgaW5kZXgpOworICAgICAgICAgdmFyIGJhY2tn cm91bmQgPSBuZXcgTWV0YS5CYWNrZ3JvdW5kKGRpc3BsYXkpOworKyNpZiBIQVZFX01VVFRFUl82 CisgICAgICAgICBhY3Rvci5zZXRfYmFja2dyb3VuZChiYWNrZ3JvdW5kKTsKKy0KKysjZWxzZQor KyAgICAgICAgdmFyIGNvbnRlbnQgPSBhY3Rvci5nZXRfY29udGVudCgpOworKyAgICAgICAgdW5v d25lZCBNZXRhLkJhY2tncm91bmRDb250ZW50IGJhY2tncm91bmRfY29udGVudCA9IChNZXRhLkJh Y2tncm91bmRDb250ZW50KSBjb250ZW50OworKyAgICAgICAgYmFja2dyb3VuZF9jb250ZW50LnNl dF9iYWNrZ3JvdW5kKGJhY2tncm91bmQpOworKyNlbmRpZgorICAgICAgICAgcmVjdCA9IGRpc3Bs YXkuZ2V0X21vbml0b3JfZ2VvbWV0cnkoaW5kZXgpOworICAgICAgICAgYWN0b3Iuc2V0X3NpemUo cmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpOworICAgICAgICAgYWN0b3Iuc2V0KCJvcGFjaXR5Iiwg MCk7CitAQCAtMjIxLDEzICsyMjYsMjEgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZUJhY2tncm91bmQg OiBDbHV0dGVyLkFjdG9yCisgICAgICAgICBzaGFkaW5nX2RpcmVjdGlvbiA9IChHRGVza3RvcC5C YWNrZ3JvdW5kU2hhZGluZylzZXR0aW5ncy5nZXRfZW51bShDT0xPUl9TSEFESU5HX1RZUEVfS0VZ KTsKKyAgICAgICAgIHZhciBjb2xvcl9zdHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5nKFBSSU1BUllf Q09MT1JfS0VZKTsKKyAgICAgICAgIGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIg IT0gIiIpIHsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgICAgIHByaW1hcnlfY29sb3Ig PSBDbHV0dGVyLkNvbG9yLmZyb21fc3RyaW5nKGNvbG9yX3N0cik7CisrI2Vsc2UKKysgICAgICAg ICAgICBDbHV0dGVyLkNvbG9yLmZyb21fc3RyaW5nKG91dCBwcmltYXJ5X2NvbG9yLCBjb2xvcl9z dHIpOworKyNlbmRpZgorICAgICAgICAgICAgIGNvbG9yX3N0ciA9IG51bGw7CisgICAgICAgICB9 CisgCisgICAgICAgICBjb2xvcl9zdHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5nKFNFQ09OREFSWV9D T0xPUl9LRVkpOworICAgICAgICAgaWYgKGNvbG9yX3N0ciAhPSBudWxsICYmIGNvbG9yX3N0ciAh PSAiIikgeworKyNpZiBIQVZFX01VVFRFUl82CisgICAgICAgICAgICAgc2Vjb25kYXJ5X2NvbG9y ID0gQ2x1dHRlci5Db2xvci5mcm9tX3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAg ICAgICAgQ2x1dHRlci5Db2xvci5mcm9tX3N0cmluZyhvdXQgc2Vjb25kYXJ5X2NvbG9yLCBjb2xv cl9zdHIpOworKyNlbmRpZgorICAgICAgICAgICAgIGNvbG9yX3N0ciA9IG51bGw7CisgICAgICAg ICB9CisgCitkaWZmIC0tZ2l0IHNyYy93bS9tZXNvbi5idWlsZCBzcmMvd20vbWVzb24uYnVpbGQK K2luZGV4IGUzOWI4Njc4Li41ODNjZTc5MCAxMDA2NDQKKy0tLSBzcmMvd20vbWVzb24uYnVpbGQK KysrKyBzcmMvd20vbWVzb24uYnVpbGQKK0BAIC0xNywyMCArMTcsMTggQEAgYnVkZ2llX3dtX3Nv dXJjZXMgPSBbCisgCisgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgPSBbXQorIAorLXZhcGlf bXV0dGVyID0gJ2xpYm11dHRlci0zJworLWRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0 ZXItMycsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQor LWlmIG5vdCBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3ko J2xpYm11dHRlci00JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDog ZmFsc2UpCisrZGVwX2dyYXBoZW5lID0gZGVwZW5kZW5jeSgnZ3JhcGhlbmUtZ29iamVjdC0xLjAn LCB2ZXJzaW9uOiAnPj0gMS4xMCcpCisrZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRl ci03JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDogZmFsc2UpCisr aWYgZGVwX211dHRlci5mb3VuZCgpCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9 IFsnLUQnLCAnSEFWRV9NVVRURVJfNyddCisrICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0 ZXItNyBBQkkgZnJvbSBHTk9NRSAzLjM4JykKKysgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVy LTcnCisrZWxzZQorKyAgICBkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTYnLCB2 ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFs YV9hcmdzICs9IFsnLUQnLCAnSEFWRV9NVVRURVJfNiddCisgICAgIGlmIGRlcF9tdXR0ZXIuZm91 bmQoKQorLSAgICAgICAgbWVzc2FnZSgnVXNpbmcgbmV3IGxpYm11dHRlci00IEFCSSBmcm9tIEdO T01FIDMuMzInKQorLSAgICAgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTQnCistICAgIGVs c2UKKy0gICAgICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNScsIHZlcnNp b246IGdub21lX21pbmltdW1fdmVyc2lvbikKKy0gICAgICAgIGlmIGRlcF9tdXR0ZXIuZm91bmQo KQorLSAgICAgICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNSBBQkkgZnJvbSBH Tk9NRSAzLjM0JykKKy0gICAgICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNScKKy0g ICAgICAgICAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVU VEVSXzUnXQorLSAgICAgICAgZW5kaWYKKysgICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJt dXR0ZXItNiBBQkkgZnJvbSBHTk9NRSAzLjM2JykKKysgICAgICAgIHZhcGlfbXV0dGVyID0gJ2xp Ym11dHRlci02JworICAgICBlbmRpZgorIGVuZGlmCisgCitAQCAtNDIsOCArNDAsOCBAQCBidWRn aWVfd21fZGVwcyA9IFsKKyAgICAgZGVwX2lidXMsCisgXQorIAorLWlmIGRlcF9nc2QudmVyc2lv bigpLnZlcnNpb25fY29tcGFyZSgnPj0zLjMxLjkxJykKKy0gICAgYnVkZ2llX3dtX3N0YXR1c192 YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX0dTRF8zMzInXQorK2lmIGRlcF9nc2QudmVyc2lvbigp LnZlcnNpb25fY29tcGFyZSgnPj0zLjM2LjAnKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFf YXJncyArPSBbJy1EJywgJ0hBVkVfR1NEX1NVUFBPUlRFRCddCisgZW5kaWYKKyAKKyBidWRnaWVf d21fdmFsYV9hcmdzID0gIFsKK0BAIC02MCw3ICs1OCw3IEBAIGJ1ZGdpZV93bV92YWxhX2FyZ3Mg PSAgWworIAorIHJwYXRoID0gJycKKyAKKy1pZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52ZXJzaW9u X2NvbXBhcmUoJz49My4yOC4wJykKKytpZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52ZXJzaW9uX2Nv bXBhcmUoJz49My4zNi4wJykKKyAgICAgcnBhdGggPSBkZXBfbXV0dGVyLmdldF9wa2djb25maWdf dmFyaWFibGUoJ3R5cGVsaWJkaXInKQorICAgICBidWRnaWVfd21fdmFsYV9hcmdzICs9IFsnLS1n aXJkaXInLCBycGF0aF0KKyBlbmRpZgorZGlmZiAtLWdpdCBzcmMvd20vc2hpbS52YWxhIHNyYy93 bS9zaGltLnZhbGEKK2luZGV4IDRjZGZhMGIwLi5mYzI0YjI4OSAxMDA2NDQKKy0tLSBzcmMvd20v c2hpbS52YWxhCisrKysgc3JjL3dtL3NoaW0udmFsYQorQEAgLTE0LDcgKzE0LDcgQEAgbmFtZXNw YWNlIEJ1ZGdpZSB7CisgcHVibGljIHN0cnVjdCBHc2RBY2NlbCB7CisgICAgIHN0cmluZyBhY2Nl bGVyYXRvcjsKKyAgICAgdWludCBmbGFnczsKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVf R1NEX1NVUFBPUlRFRAorICAgICBNZXRhLktleUJpbmRpbmdGbGFncyBncmFiX2ZsYWdzOworICNl bmRpZgorIH0KK0BAIC0xOTMsMTEgKzE5Myw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBH TGliLk9iamVjdAorICAgICAgICAgb3NkX3Byb3h5ID0gbnVsbDsKKyAgICAgfQorIAorLSNpZiBI QVZFX01VVFRFUl81CisgICAgIHByaXZhdGUgdm9pZCBvbl9hY2NlbGVyYXRvcl9hY3RpdmF0ZWQo dWludCBhY3Rpb24sIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2LCB1aW50IGRldmljZV9pZCkKKy0j ZWxzZQorLSAgICBwcml2YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0 aW9uLCB1aW50IGRldmljZV9pZCkKKy0jZW5kaWYKKyAgICAgeworICAgICAgICAgSGFzaFRhYmxl PHN0cmluZyxWYXJpYW50PiBwYXJhbXMgPSBuZXcgSGFzaFRhYmxlPHN0cmluZyxWYXJpYW50Pihz dHJfaGFzaCwgc3RyX2VxdWFsKTsKKyAKK0BAIC0yMzAsNyArMjI2LDcgQEAgcHVibGljIGNsYXNz IFNoZWxsU2hpbSA6IEdMaWIuT2JqZWN0CisgICAgICAgICB9CisgICAgIH0KKyAKKy0jaWYgSEFW RV9HU0RfMzMyCisrI2lmIEhBVkVfR1NEX1NVUFBPUlRFRAorICAgICBwcml2YXRlIHVpbnQgX2dy YWIoc3RyaW5nIHNlbmRlciwgc3RyaW5nIHNlcSwgdWludCBmbGFnLCBNZXRhLktleUJpbmRpbmdG bGFncyBncmFiX2ZsYWdzKQorICAgICB7CisgICAgICAgICB2YXIgcmV0ID0gZGlzcGxheS5ncmFi X2FjY2VsZXJhdG9yKHNlcSwgZ3JhYl9mbGFncyk7CitAQCAtMjczLDcgKzI2OSw3IEBAIHB1Ymxp YyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9iamVjdAorICAgICAgICAgICAgIG9uX2J1c19hY3F1 aXJlZCwgbnVsbCwgbnVsbCk7CisgICAgIH0KKyAKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhB VkVfR1NEX1NVUFBPUlRFRAorICAgICBwdWJsaWMgdWludCBHcmFiQWNjZWxlcmF0b3IoQnVzTmFt ZSBzZW5kZXIsIHN0cmluZyBhY2NlbGVyYXRvciwgdWludCBmbGFncywgTWV0YS5LZXlCaW5kaW5n RmxhZ3MgZ3JhYl9mbGFncykKKyAgICAgeworICAgICAgICAgcmV0dXJuIF9ncmFiKHNlbmRlciwg YWNjZWxlcmF0b3IsIGZsYWdzLCBncmFiX2ZsYWdzKTsKK2RpZmYgLS1naXQgc3JjL3dtL3dtLnZh bGEgc3JjL3dtL3dtLnZhbGEKK2luZGV4IGZlZTg5NDQzLi5iY2NmM2I5NSAxMDA2NDQKKy0tLSBz cmMvd20vd20udmFsYQorKysrIHNyYy93bS93bS52YWxhCitAQCAtMTM3LDggKzEzNyw4IEBAIHB1 YmxpYyBjbGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgIHB1YmxpYyBzdGF0aWMgc3Ry aW5nW10/IG9sZF9hcmdzOworICAgICBwdWJsaWMgc3RhdGljIGJvb2wgd2F5bGFuZCA9IGZhbHNl OworIAorLSAgICBzdGF0aWMgQ2x1dHRlci5Qb2ludCBQVl9DRU5URVI7CistICAgIHN0YXRpYyBD bHV0dGVyLlBvaW50IFBWX05PUk07CisrICAgIHN0YXRpYyBHcmFwaGVuZS5Qb2ludCBQVl9DRU5U RVI7CisrICAgIHN0YXRpYyBHcmFwaGVuZS5Qb2ludCBQVl9OT1JNOworIAorICAgICBwcml2YXRl IE1ldGEuQmFja2dyb3VuZEdyb3VwPyBiYWNrZ3JvdW5kX2dyb3VwOworIAorQEAgLTE3MSwxMCAr MTcxLDEwIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICAg ICAgbGljZW5zZSA9ICJHUEwtMi4wIiwKKyAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJCdWRn aWUgV2luZG93IE1hbmFnZXIiCisgICAgICAgICB9OworLSAgICAgICAgUFZfQ0VOVEVSID0gQ2x1 dHRlci5Qb2ludC5hbGxvYygpOworKyAgICAgICAgUFZfQ0VOVEVSID0gR3JhcGhlbmUuUG9pbnQo KTsKKysgICAgICAgIFBWX05PUk0gPSBHcmFwaGVuZS5Qb2ludCgpOworICAgICAgICAgUFZfQ0VO VEVSLnggPSAwLjVmOworICAgICAgICAgUFZfQ0VOVEVSLnkgPSAwLjVmOworLSAgICAgICAgUFZf Tk9STSA9IENsdXR0ZXIuUG9pbnQuYWxsb2MoKTsKKyAgICAgICAgIFBWX05PUk0ueCA9IDAuMGY7 CisgICAgICAgICBQVl9OT1JNLnkgPSAwLjBmOworICAgICB9CitAQCAtMTAwMSw3ICsxMDAxLDcg QEAgcHVibGljIGNsYXNzIEJ1ZGdpZVdNIDogTWV0YS5QbHVnaW4KKyAgICAgICAgIHRpbGVfcHJl dmlldy5zZXQoInNjYWxlLXgiLCBOT1RJRklDQVRJT05fTUFQX1NDQUxFX1gsICJzY2FsZS15Iiwg Tk9USUZJQ0FUSU9OX01BUF9TQ0FMRV9ZLAorICAgICAgICAgICAgICJwaXZvdC1wb2ludCIsIFBW X0NFTlRFUik7CisgCistICAgICAgICB0aWxlX3ByZXZpZXcubG93ZXIod2luX2FjdG9yKTsKKysg ICAgICAgIC8vdGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisgICAgICAgICB0aWxlX3By ZXZpZXcudGlsZV9yZWN0ID0gdGlsZV9yZWN0OworIAorICAgICAgICAgdGlsZV9wcmV2aWV3LnNo b3coKTsKK2RpZmYgLS1naXQgdmFwaS9DbHV0dGVyLTUubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTYu bWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9DbHV0dGVy LTUubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NsdXR0ZXItNi5tZXRhZGF0YQorZGlmZiAtLWdp dCB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YSB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorc2ltaWxh cml0eSBpbmRleCA3OCUKK3JlbmFtZSBmcm9tIHZhcGkvQ2x1dHRlci00Lm1ldGFkYXRhCityZW5h bWUgdG8gdmFwaS9DbHV0dGVyLTcubWV0YWRhdGEKK2luZGV4IDVjMjEyZTg1Li4xODU1Mjc0ZCAx MDA2NDQKKy0tLSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YQorKysrIHZhcGkvQ2x1dHRlci03Lm1l dGFkYXRhCitAQCAtMSwxMyArMSwxMCBAQAorIC8vIE5vbiBtaW5pLW9iamVjdAorIEFjdG9yQm94 IHN0cnVjdAorIENvbG9yIHN0cnVjdAorLUZvZyBzdHJ1Y3QKKy1HZW9tZXRyeSBzdHJ1Y3QKKyBL bm90IHN0cnVjdAorIFBhdGhOb2RlIHN0cnVjdAorIFBlcnNwZWN0aXZlIHN0cnVjdAorIFVuaXRz IHN0cnVjdAorLVZlcnRleCBzdHJ1Y3QKKyAKKyAqLnJlZiB1bm93bmVkCisgCitAQCAtMTcsNyAr MTQsNiBAQCBpbml0X3dpdGhfYXJncworIEFjdG9yCisgCS5hcHBseV90cmFuc2Zvcm0ubWF0cml4 IHJlZgorIAkuZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQorLQku Z2V0X2FsbG9jYXRpb25fdmVydGljZXMudmVydHMgb3V0PWZhbHNlCisgQ2FudmFzCisgCS5uZXcg c3ltYm9sX3R5cGU9ImNvbnN0cnVjdG9yIgorIEV2ZW50LnR5cGUjbWV0aG9kIG5hbWU9ImdldF90 eXBlIgorQEAgLTI3LDcgKzIzLDYgQEAgSW1hZ2UKKyAvLyA/Pz8KKyBBY3Rvci5oYXNfcG9pbnRl ciNtZXRob2QgbmFtZT0iZ2V0X2hhc19wb2ludGVyIgorIEluaXRFcnJvciBlcnJvcmRvbWFpbj1m YWxzZQorLXJlZHJhdyBza2lwCisgCisgLy8gTm90IGFsbCBiYWNraW5nIHN5bWJvbHMgYXJlIGRl cHJlY2F0ZWQKKyBBY3Rvci5waWNrIGRlcHJlY2F0ZWQ9ZmFsc2UKK0BAIC01NSw3ICs1MCw2IEBA IENvbnRhaW5lcgorIAkubG93ZXIgdmlydHVhbAorIAkucmFpc2UgdmlydHVhbAorIAkuKl9jaGls ZF9tZXRhI3ZpcnR1YWxfbWV0aG9kIHZpcnR1YWwKKy0JLmZvcmVhY2hfd2l0aF9pbnRlcm5hbHMj dmlydHVhbF9tZXRob2QgdmlydHVhbAorIAorIC8vIERlZmF1bHQgdmFsdWVzCisgQ29udGFpbmVy CitAQCAtNzAsMzIgKzY0LDIxIEBAIFRleHQKKyAvLyBSZXBhcmVudGVkIGZ1bmNzIG1ldGhvZHMg Y2FuJ3QgYmUgaW5zdGFuY2UgbWV0aG9kcworIGZlYXR1cmVfYXZhaWxhYmxlIHNraXAKKyBmZWF0 dXJlX2dldF9hbGwgc2tpcAorLUZlYXR1cmVGbGFncy50ZXh0dXJlX25wb3Qgc2tpcAorIAorIC8v IFNraXBwZWQgYnkgZy1pIGZvciB1bmtub3duIHJlYXNvbnMKKyBMYXlvdXRNYW5hZ2VyCisgCS5j cmVhdGVfY2hpbGRfbWV0YSBza2lwPWZhbHNlCistTW9kZWwKKy0JLmluc2VydF9yb3cgc2tpcD1m YWxzZQorIAorIC8vIFZhcmlhZGljIGFyZ3VtZW50cworLUFjdG9yCistCS5hbmltYXRlIHNraXA9 ZmFsc2UKKy0JLmFuaW1hdGVfd2l0aF9hbHBoYSBza2lwPWZhbHNlCistCS5hbmltYXRlX3dpdGhf dGltZWxpbmUgc2tpcD1mYWxzZQorLUFuaW1hdG9yCistCS5zZXQgc2tpcD1mYWxzZQorIEJveAor IAkucGFjayBza2lwPWZhbHNlCisgCS5wYWNrX2FmdGVyIHNraXA9ZmFsc2UKKyAJLnBhY2tfYXQg c2tpcD1mYWxzZQorIAkucGFja19iZWZvcmUgc2tpcD1mYWxzZQorIENvbnRhaW5lcgorLQkuYWRk X3ZhbGlzdCBza2lwPWZhbHNlCisgCS5jaGlsZF9nZXQgc2tpcD1mYWxzZQorIAkuY2hpbGRfc2V0 IHNraXA9ZmFsc2UKKyAJLnJlbW92ZSBza2lwPWZhbHNlCistCS5yZW1vdmVfdmFsaXN0IHNraXA9 ZmFsc2UKKyBJbnRlcnZhbAorIAkubmV3IHNraXA9ZmFsc2UKKyAJLmdldF9pbnRlcnZhbCBza2lw PWZhbHNlCitAQCAtMTA1LDE1ICs4OCw2IEBAIEludGVydmFsCisgTGF5b3V0TWFuYWdlcgorIAku Y2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNlCistTGlzdE1vZGVs CistCS5uZXcgc2tpcD1mYWxzZQorLU1vZGVsCistCS5hcHBlbmQgc2tpcD1mYWxzZQorLQkuaW5z ZXJ0IHNraXA9ZmFsc2UKKy0JLnByZXBlbmQgc2tpcD1mYWxzZQorLU1vZGVsSXRlcgorLQkuZ2V0 IHNraXA9ZmFsc2UKKy0JLnNldCBza2lwPWZhbHNlCisgU2NyaXB0CisgCS5nZXRfb2JqZWN0cyBz a2lwPWZhbHNlCisgCitAQCAtMTIyLDE3ICs5NiwxMSBAQCBUZXh0dXJlCisgCS5uZXdfZnJvbV9m aWxlIHRocm93cz0iQ2x1dHRlci5UZXh0dXJlRXJyb3IiCisgCisgLy8gU2tpcHBlZCB1cHN0cmVh bSBmb3IgdW5rbm93biByZWFzb25zCistQWxwaGEucmVnaXN0ZXJfZnVuYyBza2lwPWZhbHNlCist VGltZW91dFBvb2wgc2tpcD1mYWxzZQorIEludGVydmFsLnJlZ2lzdGVyX3Byb2dyZXNzX2Z1bmMg c2tpcD1mYWxzZQorLWZyYW1lX3NvdXJjZV8qIHNraXA9ZmFsc2UKKyBnZXRfb3B0aW9uX2dyb3Vw IHNraXA9ZmFsc2UKKyBnZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCBza2lwPWZhbHNlCist dGhyZWFkc19hZGRfZnJhbWVfc291cmNlIHNraXA9ZmFsc2UKKy10aHJlYWRzX2FkZF9mcmFtZV9z b3VyY2VfZnVsbCBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfaWRsZSBza2lwPWZhbHNlCisgdGhy ZWFkc19hZGRfaWRsZV9mdWxsIHNraXA9ZmFsc2UKKy10aHJlYWRzX3NldF9sb2NrX2Z1bmN0aW9u cyBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfdGltZW91dCBza2lwPWZhbHNlCisgdGhyZWFkc19h ZGRfdGltZW91dF9mdWxsIHNraXA9ZmFsc2UKKyAKK0BAIC0xNDMsMTUgKzExMSwxMiBAQCBBY3Rv ckJveAorIFVuaXRzLmZyb21fKiBza2lwCisgQ29sb3IKKyAJLm5ldyBza2lwCistVmVydGV4Lm5l dyBza2lwCisgCisgLy8gQ2xhc3MgbWV0aG9kcworIGNvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxk X3Byb3BlcnR5IHNraXAKKyBjb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIHNr aXAKKyAKKyAvLyBNb3ZlIHN5bWJvbHMKKy1nZXRfYWN0b3JfYnlfZ2lkIHBhcmVudD0iQ2x1dHRl ci5BY3RvciIgbmFtZT0iZ2V0X2J5X2dpZCIKKy1nZXRfaW5wdXRfZGV2aWNlX2Zvcl9pZCBwYXJl bnQ9IkNsdXR0ZXIuSW5wdXREZXZpY2UiIG5hbWU9ImdldF9mb3JfaWQiCisgdW5pdHNfZnJvbV8q IHNraXAKKyAKKyAvLyBDbGFzc2VzIG1hcmtlZCBhcyBvdXQgYnV0IG5vdCBkb3VibGUgcHRyCitA QCAtMjAyLDIzICsxNjcsMTUgQEAgUEFUSF9SRUxBVElWRSBza2lwPWZhbHNlCisgUFJJT1JJVFlf UkVEUkFXIHNraXA9ZmFsc2UKKyAKKyAvLyBDbHV0dGVyIGRldnMgZG9uJ3QgbGlrZSB1cyBjcmVh dGluZyBuZXN0ZWQgbmFtZXNwYWNlcworLWZyYW1lX3NvdXJjZV8qIG5hbWU9ImZyYW1lX3NvdXJj ZV8oLispIiBwYXJlbnQ9IkNsdXR0ZXIuRnJhbWVTb3VyY2UiCisgdmFsdWVfKiBuYW1lPSJ2YWx1 ZV8oLispIiBwYXJlbnQ9IkNsdXR0ZXIuVmFsdWUiCisgdGhyZWFkc18qIG5hbWU9InRocmVhZHNf KC4rKSIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMiCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNl IG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuRnJhbWVTb3VyY2UiCistdGhyZWFk c19hZGRfZnJhbWVfc291cmNlX2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5U aHJlYWRzLkZyYW1lU291cmNlIgorIHRocmVhZHNfYWRkX2lkbGUgbmFtZT0iYWRkIiBwYXJlbnQ9 IkNsdXR0ZXIuVGhyZWFkcy5JZGxlIgorIHRocmVhZHNfYWRkX2lkbGVfZnVsbCBuYW1lPSJhZGRf ZnVsbCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF90aW1lb3V0 IG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuVGltZW91dCIKKyB0aHJlYWRzX2Fk ZF90aW1lb3V0X2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLlRp bWVvdXQiCistdXRpbF9uZXh0X3AyIG5hbWU9Im5leHRfcG93ZXJfb2ZfMiIgcGFyZW50PSJDbHV0 dGVyLlV0aWwiCisgCisgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyBDb2xvci5hbGxvYyBz eW1ib2xfdHlwZT0iZnVuY3Rpb24iCistUG9pbnQuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9u IgorLVJlY3QuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVNpemUuYWxsb2Mgc3ltYm9s X3R5cGU9ImZ1bmN0aW9uIgorLVZlcnRleC5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCisg CisgQmluQWxpZ25tZW50IGRlcHJlY2F0ZWQ9ZmFsc2UgZGVwcmVjYXRlZF9zaW5jZT1udWxsCisg QmluQWxpZ25tZW50LiogZGVwcmVjYXRlZAorZGlmZiAtLWdpdCB2YXBpL0NvZ2wtNC5tZXRhZGF0 YSB2YXBpL0NvZ2wtNi5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJv bSB2YXBpL0NvZ2wtNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ29nbC02Lm1ldGFkYXRhCitk aWZmIC0tZ2l0IHZhcGkvQ29nbC01Lm1ldGFkYXRhIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitzaW1p bGFyaXR5IGluZGV4IDkxJQorcmVuYW1lIGZyb20gdmFwaS9Db2dsLTUubWV0YWRhdGEKK3JlbmFt ZSB0byB2YXBpL0NvZ2wtNy5tZXRhZGF0YQoraW5kZXggMDkyYjVlMjkuLmU1MmJmYTM1IDEwMDY0 NAorLS0tIHZhcGkvQ29nbC01Lm1ldGFkYXRhCisrKysgdmFwaS9Db2dsLTcubWV0YWRhdGEKK0BA IC05LDEyICs5LDEwIEBAIGNyZWF0ZV9zaGFkZXIgc2tpcAorIAorIAorIGlzX2JpdG1hcCBza2lw CistaXNfbWF0ZXJpYWwgc2tpcAorIGlzX29mZnNjcmVlbiBza2lwCisgaXNfcHJvZ3JhbSBza2lw CisgaXNfc2hhZGVyIHNraXAKKyBpc190ZXh0dXJlIHNraXAKKy1pc192ZXJ0ZXhfYnVmZmVyIHNr aXAKKyAKKyBNYXRyaXggc3RydWN0CisgICAuZ2V0X2FycmF5IGFycmF5PXRydWUgYXJyYXlfbGVu Z3RoX2lkeD0tMQorZGlmZiAtLWdpdCB2YXBpL01ldGEtMy5tZXRhZGF0YSB2YXBpL01ldGEtMy5t ZXRhZGF0YQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAzNzBkNDk5Ni4uMDAwMDAw MDAKKy0tLSB2YXBpL01ldGEtMy5tZXRhZGF0YQorKysrIC9kZXYvbnVsbAorQEAgLTEsNjYgKzAs MCBAQAorLUJhY2tlbmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tlbmQuaCIKKy1C YWNrZ3JvdW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiCistQmFj a2dyb3VuZEFjdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgiCistQmFja2dyb3VuZEdyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgiCistQmFja2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIKKy1EaXNwbGF5IGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvZGlzcGxheS5oIgorLU1ldGEgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tYWluLmgiCistTW9u aXRvck1hbmFnZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o IgorLVJlY3RhbmdsZSBzdHJ1Y3QKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LXBsdWdpbi5oIgorLVBsdWdpbkluZm8gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdp bi5oIgorLXByZWZzXyogY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJlbnQ9Ik1l dGEuUHJlZnMiCistYWRkX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistZGVidWdfc3Bld19yZWFsIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdp b24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgx MV9lcnJvcl90cmFwX3BvcCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCisteDExX2Vycm9yX3RyYXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisteDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJu IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1leHRl cm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhfc3RybmR1 cCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ2V0 X2xvY2FsZV9kaXJlY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWdldF9vdmVybGF5X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ3Jhdml0eV90b19zdHJpbmcgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX2RlYnVnZ2luZyBwYXJl bnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfc3luY2lu ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNf dmVyYm9zZSBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistaXNfd2F5bGFuZF9jb21wb3NpdG9yIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKy1sYXRlcl9hZGQgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWxhdGVyX3JlbW92ZSBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcG9wX25vX21zZ19wcmVmaXggcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXB1c2hfbm9fbXNn X3ByZWZpeCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistcmVjdCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistcmVtb3ZlX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy10b3BpY19yZWFsIHBh cmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy11bnNpZ25l ZF9sb25nX2VxdWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy11bnNpZ25lZF9sb25nX2hhc2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLXZlcmJvc2VfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistd2FybmluZyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistc2hvd19kaWFsb2cgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9zdGFnZV9mb3JfZGlz cGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorLWdldF93aW5kb3dfYWN0b3JzIHBhcmVudD0iTWV0YS5Db21wb3Np dG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X3dp bmRvd19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF90b3Bfd2luZG93X2dyb3Vw X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5 IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiCistZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0 YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi CistZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3Ii IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2Vf aW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVu dD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiCistZm9jdXNfc3RhZ2Vfd2luZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNl ZCBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIgorLWtleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1l dGEuS2V5QmluZGluZyIgbmFtZT0ic2V0X2N1c3RvbV9oYW5kbGVyIgorLUtleUhhbmRsZXJGdW5j LmV2ZW50IHR5cGU9IkNsdXR0ZXIuS2V5RXZlbnQ/IgorLWdldF9iYWNrZW5kIHBhcmVudD0iTWV0 YS5CYWNrZW5kIgorLVdpbmRvdy5mb2N1cyNzaWduYWwgc2tpcD10cnVlCistV2luZG93LmdldF94 d2luZG93IHNraXA9ZmFsc2UKKy1nZXRfb3B0aW9uX2NvbnRleHQgc2tpcD1mYWxzZQorLXNldF9n bm9tZV93bV9rZXliaW5kaW5ncyBza2lwPWZhbHNlCistc2V0X3dtX25hbWUgc2tpcD1mYWxzZQor LWluaXQgc2tpcD1mYWxzZQorLXJ1biBza2lwPWZhbHNlCistc2hvd19kaWFsb2cgc2tpcD1mYWxz ZQorLWdldF9iYWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCitk aWZmIC0tZ2l0IHZhcGkvTWV0YS01Lm1ldGFkYXRhIHZhcGkvTWV0YS02Lm1ldGFkYXRhCitzaW1p bGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvTWV0YS01Lm1ldGFkYXRhCityZW5h bWUgdG8gdmFwaS9NZXRhLTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9NZXRhLTQubWV0YWRh dGEgdmFwaS9NZXRhLTcubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggNzYlCityZW5hbWUgZnJv bSB2YXBpL01ldGEtNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvTWV0YS03Lm1ldGFkYXRhCitp bmRleCBhZTJhNzgxNy4uNzI2MjlmYmEgMTAwNjQ0CistLS0gdmFwaS9NZXRhLTQubWV0YWRhdGEK KysrKyB2YXBpL01ldGEtNy5tZXRhZGF0YQorQEAgLTEsMjYgKzEsMjEgQEAKKyBCYWNrZW5kIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCisgQmFja2dyb3VuZCBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC5oIgorIEJhY2tncm91bmRBY3RvciBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorK0JhY2tncm91bmRD b250ZW50IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWNvbnRlbnQuaCIK KyBCYWNrZ3JvdW5kR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCIKKyBCYWNrZ3JvdW5kSW1hZ2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCIKKyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIgorIEJhcnJpZXIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9iYXJyaWVyLmgiCisgQmFycmllckV2ZW50IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv YmFycmllci5oIgorLUJveGVzIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYm94ZXMuaCIKKyBDbG9z ZURpYWxvZyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiCistQ29t cG9zaXRvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3IuaCIKKy1Db21wb3NpdG9y TXV0dGVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBDdXJz b3JUcmFja2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oIgor IERpc3BsYXkgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9kaXNwbGF5LmgiCisgRG5kIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1kbmQuaCIKKy1Hcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L2dyb3VwLmgiCisgSWRsZU1vbml0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oIgorIEluaGliaXRTaG9ydGN1dHNEaWFsb2cgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oIgorLUtleWJpbmRpbmdzIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEva2V5YmluZGluZ3MuaCIKKyBMYXVuY2hDb250ZXh0IGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oIgorIE1ldGEgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9tYWluLmgiCisgTW9uaXRvck1hbmFnZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oIgorLVBsdWdpbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtcGx1Z2luLmgiCisgUHJlZmVyZW5jZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3ByZWZzLmgi CisgUmVtb3RlQWNjZXNzQ29udHJvbGxlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiCisgUmVtb3RlQWNjZXNzSGFuZGxlIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCIKK0BAIC0zMSw5ICsy Niw3IEBAIFNvdW5kUGxheWVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCIKKyBTdGFnZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhZ2UuaCIKKyBTdGFy dHVwTm90aWZpY2F0aW9uIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oIgorIFRoZW1lIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdGhlbWUuaCIKKy1UeXBl cyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3R5cGVzLmgiCistVXRpbCBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1WZXJzaW9uIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS12ZXJz aW9uLmgiCisrV2F5bGFuZENsaWVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2F5bGFu ZC1jbGllbnQuaCIKKyBXaW5kb3cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS93aW5kb3cuaCIKKyBX aW5kb3dBY3RvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2luZG93LWFjdG9yLmgiCisg V2luZG93R3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIgor QEAgLTQ2LDE3ICszOSwxMSBAQCBQbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBs dWdpbi5oIgorIFBsdWdpbkluZm8gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5o IgorIHByZWZzXyogY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJlbnQ9Ik1ldGEu UHJlZnMiCisgYWRkX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistZGVidWdfc3Bld19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24g cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9l cnJvcl90cmFwX3BvcCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCisgeDExX2Vycm9yX3RyYXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCisgeDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIHBh cmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBleHRlcm5h bF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhfc3RybmR1cCBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZ2V0X2xv Y2FsZV9kaXJlY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLWdldF9vdmVybGF5X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZ3Jhdml0eV90b19zdHJpbmcgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX2RlYnVnZ2luZyBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgaXNfc3luY2luZyBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCitAQCAtNjgs MTMgKzU1LDggQEAgcG9wX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHB1c2hfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgcmVjdCBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgcmVtb3ZlX3ZlcmJvc2VfdG9w aWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNl dF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy10b3BpY19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB1bnNpZ25lZF9sb25nX2VxdWFsIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB1bnNpZ25lZF9sb25n X2hhc2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LXZlcmJvc2VfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistd2FybmluZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCisgc2hvd19kaWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorIGdldF9zdGFnZV9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29t cG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGdl dF93aW5kb3dfYWN0b3JzIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCitAQCAtODMsMTAgKzY1LDcgQEAgZ2V0X3RvcF93 aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEKKyBnZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJN ZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIKKyBkaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0 b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBlbmFibGVf dW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdp b24gcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNv bXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBm b2N1c19zdGFnZV93aW5kb3cgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zdGFnZV9pc19mb2N1c2VkIHBhcmVudD0i TWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiCisga2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIHBhcmVudD0iTWV0YS5LZXlCaW5k aW5nIiBuYW1lPSJzZXRfY3VzdG9tX2hhbmRsZXIiCisgS2V5SGFuZGxlckZ1bmMuZXZlbnQgdHlw ZT0iQ2x1dHRlci5LZXlFdmVudD8iCisgZ2V0X2JhY2tlbmQgcGFyZW50PSJNZXRhLkJhY2tlbmQi CitkaWZmIC0tZ2l0IHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2ggdmFwaS9nZW5lcmF0ZS1t dXR0ZXItdmFwaS5zaAoraW5kZXggNmIwNzAyNDAuLmIyMzNlNTg2IDEwMDc1NQorLS0tIHZhcGkv Z2VuZXJhdGUtbXV0dGVyLXZhcGkuc2gKKysrKyB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNo CitAQCAtMSw3ICsxLDcgQEAKKyAjIS9iaW4vYmFzaAorIHNldCAteGUKKyAKKy12ZXJzaW9uPSR7 MS00fQorK3ZlcnNpb249JHs2LTd9CisgZ2lyZGlyPSQocGtnLWNvbmZpZyBsaWJtdXR0ZXItJHZl cnNpb24gLS12YXJpYWJsZT1naXJkaXIpCisgCisgY2QgJChkaXJuYW1lICQwKQorZGlmZiAtLWdp dCB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEu MC52YXBpCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjY5ODAxNTM1Cist LS0gL2Rldi9udWxsCisrKysgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCitAQCAtMCww ICsxLDY5MSBAQAorKy8qIGdyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgZ2VuZXJhdGVkIGJ5IHZh cGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrCisrW0NDb2RlIChjcHJlZml4ID0gIkdyYXBoZW5l IiwgZ2lyX25hbWVzcGFjZSA9ICJHcmFwaGVuZSIsIGdpcl92ZXJzaW9uID0gIjEuMCIsIGxvd2Vy X2Nhc2VfY3ByZWZpeCA9ICJncmFwaGVuZV8iKV0KKytuYW1lc3BhY2UgR3JhcGhlbmUgeworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi Z3JhcGhlbmVfYm94X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2JveF9nZXRfdHlwZSAoKSIpXQor KwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgQm94IHsKKysJCXB1 YmxpYyBib29sIGNvbnRhaW5zX2JveCAoR3JhcGhlbmUuQm94IGIpOworKwkJcHVibGljIGJvb2wg Y29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIHN0YXRp YyB1bm93bmVkIEdyYXBoZW5lLkJveD8gZW1wdHkgKCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAo R3JhcGhlbmUuQm94IGIpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmQgKEdyYXBoZW5l LlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmRfc2NhbGFyIChm bG9hdCBzY2FsYXIpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmRfdmVjMyAoR3JhcGhl bmUuVmVjMyB2ZWMpOworKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSBnZXRfYm91bmRpbmdfc3Bo ZXJlICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2NlbnRlciAoKTsKKysJCXB1 YmxpYyBmbG9hdCBnZXRfZGVwdGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9tYXggKCk7CisrCQlwdWJsaWMgR3JhcGhl bmUuUG9pbnQzRCBnZXRfbWluICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3NpemUg KCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSByZWYgR3JhcGhlbmUuVmVjMyB2ZXJ0aWNlc1s4XSk7CisrCQlwdWJsaWMgZmxvYXQg Z2V0X3dpZHRoICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5m aW5pdGUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXQgKEdyYXBoZW5l LlBvaW50M0Q/IG1pbiwgR3JhcGhlbmUuUG9pbnQzRD8gbWF4KTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLkJveD8gaW5pdF9mcm9tX2JveCAoR3JhcGhlbmUuQm94IHNyYyk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV9wb2ludHMgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoX2NuYW1lID0gIm5fcG9pbnRzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlf bGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuUG9pbnQzRFtdIHBvaW50cyk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMz PyBtaW4sIEdyYXBoZW5lLlZlYzM/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5C b3g/IGluaXRfZnJvbV92ZWN0b3JzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Zl Y3RvcnMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWlu dCIpXSBHcmFwaGVuZS5WZWMzW10gdmVjdG9ycyk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rp b24gKEdyYXBoZW5lLkJveCBiLCBvdXQgR3JhcGhlbmUuQm94IHJlcyk7CisrCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBtaW51c19vbmUgKCk7CisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuQm94PyBvbmUgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQg R3JhcGhlbmUuQm94PyBvbmVfbWludXNfb25lICgpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCB1 bmlvbiAoR3JhcGhlbmUuQm94IGIpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LkJveD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZXVsZXJfdCIsIHR5cGVfaWQgPSAiZ3Jh cGhlbmVfZXVsZXJfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor KwlwdWJsaWMgc3RydWN0IEV1bGVyIHsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5F dWxlciBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X2FscGhhICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBm bG9hdCBnZXRfYmV0YSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgZmxvYXQgZ2V0X2dhbW1hICgpOworKwkJcHVibGljIEdyYXBoZW5lLkV1bGVyT3JkZXIgZ2V0 X29yZGVyICgpOworKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJcHVibGljIGZsb2F0IGdl dF95ICgpOworKwkJcHVibGljIGZsb2F0IGdldF96ICgpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuRXVsZXI/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXI/ IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX21hdHJp eCAoR3JhcGhlbmUuTWF0cml4PyBtLCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fcXVhdGVybmlvbiAoR3JhcGhl bmUuUXVhdGVybmlvbj8gcSwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGlu aXRfZnJvbV9yYWRpYW5zIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBHcmFwaGVuZS5FdWxl ck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zy b21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gdiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF93aXRoX29yZGVyIChmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB6LCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5FdWxlciByZW9yZGVyIChHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggdG9fbWF0cml4ICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHRvX3F1YXRlcm5pb24g KCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0b192ZWMzICgpOworKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVu ZV9mcnVzdHVtX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2ZydXN0dW1fZ2V0X3R5cGUgKCkiKV0K KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEZydXN0dW0gewor KwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBo ZW5lLkZydXN0dW0gYik7CisrCQlwdWJsaWMgdm9pZCBnZXRfcGxhbmVzIChbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlBsYW5lIHBsYW5lc1s2XSk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0IChHcmFwaGVuZS5QbGFuZSBwMCwgR3Jh cGhlbmUuUGxhbmUgcDEsIEdyYXBoZW5lLlBsYW5lIHAyLCBHcmFwaGVuZS5QbGFuZSBwMywgR3Jh cGhlbmUuUGxhbmUgcDQsIEdyYXBoZW5lLlBsYW5lIHA1KTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLkZydXN0dW0/IGluaXRfZnJvbV9mcnVzdHVtIChHcmFwaGVuZS5GcnVzdHVtIHNyYyk7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0X2Zyb21fbWF0cml4IChH cmFwaGVuZS5NYXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfYm94IChH cmFwaGVuZS5Cb3ggYm94KTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfc3BoZXJlIChHcmFw aGVuZS5TcGhlcmUgc3BoZXJlKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfbWF0cml4X3QiLCB0eXBlX2lk ID0gImdyYXBoZW5lX21hdHJpeF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IE1hdHJp eCB7CisrCQlwdWJsaWMgYm9vbCBkZWNvbXBvc2UgKG91dCBHcmFwaGVuZS5WZWMzIHRyYW5zbGF0 ZSwgb3V0IEdyYXBoZW5lLlZlYzMgc2NhbGUsIG91dCBHcmFwaGVuZS5RdWF0ZXJuaW9uIHJvdGF0 ZSwgb3V0IEdyYXBoZW5lLlZlYzMgc2hlYXIsIG91dCBHcmFwaGVuZS5WZWM0IHBlcnNwZWN0aXZl KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkZXRlcm1p bmFudCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBl cXVhbCAoR3JhcGhlbmUuTWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyBib29sIGVxdWFsX2Zhc3QgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF9yb3cgKHVp bnQgaW5kZXhfKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9h dCBnZXRfdmFsdWUgKHVpbnQgcm93LCB1aW50IGNvbCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3hfc2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94X3RyYW5zbGF0aW9uICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95X3NjYWxlICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV90 cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBm bG9hdCBnZXRfel9zY2FsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlw dWJsaWMgZmxvYXQgZ2V0X3pfdHJhbnNsYXRpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV8yZCAo ZG91YmxlIHh4LCBkb3VibGUgeXgsIGRvdWJsZSB4eSwgZG91YmxlIHl5LCBkb3VibGUgeF8wLCBk b3VibGUgeV8wKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gZmxvYXQgdlsxNl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fbWF0cml4IChHcmFw aGVuZS5NYXRyaXggc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQg djAsIEdyYXBoZW5lLlZlYzQgdjEsIEdyYXBoZW5lLlZlYzQgdjIsIEdyYXBoZW5lLlZlYzQgdjMp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuTWF0cml4PyBpbml0X2ZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBi b3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGlu aXRfaWRlbnRpdHkgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfbG9va19hdCAoR3JhcGhlbmUuVmVjMyBleWUs IEdyYXBoZW5lLlZlYzMgY2VudGVyLCBHcmFwaGVuZS5WZWMzIHVwKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9v cnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IHRvcCwgZmxvYXQgYm90dG9tLCBm bG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9wZXJzcGVjdGl2ZSAoZmxv YXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJp eD8gaW5pdF9yb3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4 PyBpbml0X3NjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9z a2V3IChmbG9hdCB4X3NrZXcsIGZsb2F0IHlfc2tldyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfdHJhbnNsYXRl IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLk1hdHJpeCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuTWF0cml4IGIsIGRv dWJsZSBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJv b2wgaW52ZXJzZSAob3V0IEdyYXBoZW5lLk1hdHJpeCByZXMpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfMmQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc19iYWNrZmFjZV92aXNpYmxlICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfaWRlbnRpdHkgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc19zaW5ndWxhciAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRy aXggbXVsdGlwbHkgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5NYXRyaXggYiwgZmxvYXQgZXBz aWxvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUu TWF0cml4IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5NYXRyaXggcGVyc3BlY3RpdmUgKGZsb2F0IGRlcHRoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHByaW50ICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHByb2plY3RfcG9p bnQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlF1YWQgcHJvamVjdF9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgcHJvamVj dF9yZWN0X2JvdW5kcyAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMg YXhpcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCByb3Rh dGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorKwkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24g cSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVf eCAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHZvaWQgcm90YXRlX3kgKGZsb2F0IGFuZ2xlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV96IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgZmFjdG9yX3gsIGZs b2F0IGZhY3Rvcl95LCBmbG9hdCBmYWN0b3Jfeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdm9pZCBza2V3X3h5IChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2tld194eiAoZmxvYXQgZmFjdG9yKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeXogKGZs b2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9v bCB0b18yZCAob3V0IGRvdWJsZSB4eCwgb3V0IGRvdWJsZSB5eCwgb3V0IGRvdWJsZSB4eSwgb3V0 IGRvdWJsZSB5eSwgb3V0IGRvdWJsZSB4XzAsIG91dCBkb3VibGUgeV8wKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gcmVmIGZsb2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHRyYW5zZm9ybV9ib3VuZHMgKEdyYXBo ZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuQm94IHRyYW5zZm9ybV9ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCB0cmFuc2Zvcm1fcG9pbnQg KEdyYXBoZW5lLlBvaW50IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlBvaW50M0QgdHJhbnNmb3JtX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0Qg cCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5 IHRyYW5zZm9ybV9yYXkgKEdyYXBoZW5lLlJheSByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWFkIHRyYW5zZm9ybV9yZWN0IChHcmFwaGVuZS5S ZWN0IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5l LlNwaGVyZSB0cmFuc2Zvcm1fc3BoZXJlIChHcmFwaGVuZS5TcGhlcmUgcyk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0cmFuc2Zvcm1fdmVj MyAoR3JhcGhlbmUuVmVjMyB2KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWM0IHRyYW5zZm9ybV92ZWM0IChHcmFwaGVuZS5WZWM0IHYpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChHcmFw aGVuZS5Qb2ludDNEIHBvcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuTWF0cml4IHRyYW5zcG9zZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHVucHJvamVjdF9wb2ludDNkIChHcmFw aGVuZS5NYXRyaXggbW9kZWx2aWV3LCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHVudHJhbnNmb3Jt X2JvdW5kcyAoR3JhcGhlbmUuUmVjdCByLCBHcmFwaGVuZS5SZWN0IGJvdW5kcyk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCB1bnRyYW5zZm9ybV9wb2ludCAo R3JhcGhlbmUuUG9pbnQgcCwgR3JhcGhlbmUuUmVjdCBib3VuZHMsIG91dCBHcmFwaGVuZS5Qb2lu dCByZXMpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9wbGFuZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9w bGFuZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1Ymxp YyBzdHJ1Y3QgUGxhbmUgeworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2lu dDNEIHBvaW50KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5QbGFuZSBiKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfY29uc3RhbnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBn ZXRfbm9ybWFsICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXQgKEdy YXBoZW5lLlZlYzM/IG5vcm1hbCwgZmxvYXQgY29uc3RhbnQpOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuUGxhbmU/IGluaXRfZnJvbV9wbGFuZSAoR3JhcGhlbmUuUGxhbmUgc3JjKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fcG9pbnQgKEdyYXBoZW5l LlZlYzMgbm9ybWFsLCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fcG9pbnRzIChHcmFwaGVuZS5Qb2ludDNEIGEsIEdy YXBoZW5lLlBvaW50M0QgYiwgR3JhcGhlbmUuUG9pbnQzRCBjKTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMpOworKwkJ cHVibGljIEdyYXBoZW5lLlBsYW5lIG5lZ2F0ZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFu ZSBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlBsYW5lIHRyYW5zZm9ybSAoR3JhcGhlbmUuTWF0cml4IG1hdHJpeCwgR3JhcGhl bmUuTWF0cml4PyBub3JtYWxfbWF0cml4KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcG9pbnRfdCIsIHR5 cGVfaWQgPSAiZ3JhcGhlbmVfcG9pbnRfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFBvaW50IHsKKysJCXB1YmxpYyBmbG9hdCB4Owor KwkJcHVibGljIGZsb2F0IHk7CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBv aW50IGIsIG91dCBmbG9hdCBkX3gsIG91dCBmbG9hdCBkX3kpOworKwkJcHVibGljIGJvb2wgZXF1 YWwgKEdyYXBoZW5lLlBvaW50IGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/ IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9p bnQ/IGluaXRfZnJvbV9wb2ludCAoR3JhcGhlbmUuUG9pbnQgc3JjKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zy b21fdmVjMiAoR3JhcGhlbmUuVmVjMiBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGlu dGVycG9sYXRlIChHcmFwaGVuZS5Qb2ludCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBi b29sIG5lYXIgKEdyYXBoZW5lLlBvaW50IGIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgdG9fdmVjMiAoKTsKKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gemVybyAoKTsKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi Z3JhcGhlbmVfcG9pbnQzZF90IiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInBvaW50M2QiLCB0eXBl X2lkID0gImdyYXBoZW5lX3BvaW50M2RfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFBvaW50M0QgeworKwkJcHVibGljIGZsb2F0IHg7 CisrCQlwdWJsaWMgZmxvYXQgeTsKKysJCXB1YmxpYyBmbG9hdCB6OworKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50M0QgY3Jvc3MgKEdyYXBoZW5lLlBvaW50M0QgYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50M0Qg Yiwgb3V0IEdyYXBoZW5lLlZlYzMgZGVsdGEpOworKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhl bmUuUG9pbnQzRCBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5Qb2ludDNEIGIp OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdCAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0 X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0Qgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlBvaW50M0Q/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzIHYpOworKwkJcHVi bGljIEdyYXBoZW5lLlBvaW50M0QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlBvaW50M0QgYiwgZG91 YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJcHVibGljIGJvb2wg bmVhciAoR3JhcGhlbmUuUG9pbnQzRCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludDNEIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIG5vcm1hbGl6ZV92aWV3cG9ydCAoR3JhcGhlbmUu UmVjdCB2aWV3cG9ydCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlwdWJsaWMgR3Jh cGhlbmUuUG9pbnQzRCBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMzIHRvX3ZlYzMgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQz RD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUt Z29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcXVhZF90IiwgdHlwZV9pZCA9ICJncmFwaGVu ZV9xdWFkX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVi bGljIHN0cnVjdCBRdWFkIHsKKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGJvdW5kcyAoKTsKKysJ CXB1YmxpYyBib29sIGNvbnRhaW5zIChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlBvaW50PyBnZXRfcG9pbnQgKHVpbnQgaW5kZXhfKTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXQgKEdyYXBoZW5lLlBvaW50IHAxLCBHcmFwaGVuZS5Q b2ludCBwMiwgR3JhcGhlbmUuUG9pbnQgcDMsIEdyYXBoZW5lLlBvaW50IHA0KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGlu aXRfZnJvbV9wb2ludHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Q b2ludCBwb2ludHNbNF0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhZD8gaW5pdF9m cm9tX3JlY3QgKEdyYXBoZW5lLlJlY3Qgcik7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3F1YXRlcm5pb25f dCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcXVhdGVybmlvbl9nZXRfdHlwZSAoKSIpXQorKwlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUXVhdGVybmlvbiB7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24g YWRkIChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhl bmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5RdWF0ZXJu aW9uIGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdCAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fYW5nbGVfdmVjMyAoZmxvYXQgYW5nbGUsIEdyYXBo ZW5lLlZlYzMgYXhpcyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBp bml0X2Zyb21fYW5nbGVzIChmbG9hdCBkZWdfeCwgZmxvYXQgZGVnX3ksIGZsb2F0IGRlZ196KTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlF1YXRlcm5pb24/IGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZSk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVu ZS5NYXRyaXggbSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0 X2Zyb21fcXVhdGVybmlvbiAoR3JhcGhlbmUuUXVhdGVybmlvbiBzcmMpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3JhZGlhbnMgKGZsb2F0IHJhZF94 LCBmbG9hdCByYWRfeSwgZmxvYXQgcmFkX3opOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu UXVhdGVybmlvbj8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfaWRlbnRpdHkgKCk7CisrCQlwdWJs aWMgR3JhcGhlbmUuUXVhdGVybmlvbiBpbnZlcnQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbXVsdGlwbHkgKEdyYXBoZW5l LlF1YXRlcm5pb24gYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBub3JtYWxpemUg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1 YXRlcm5pb24gc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVy bmlvbiBzbGVycCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiLCBmbG9hdCBmYWN0b3IpOworKwkJcHVi bGljIHZvaWQgdG9fYW5nbGVfdmVjMyAob3V0IGZsb2F0IGFuZ2xlLCBvdXQgR3JhcGhlbmUuVmVj MyBheGlzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHRv X2FuZ2xlcyAob3V0IGZsb2F0IGRlZ194LCBvdXQgZmxvYXQgZGVnX3ksIG91dCBmbG9hdCBkZWdf eik7CisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHRvX3JhZGlhbnMgKG91dCBmbG9hdCBy YWRfeCwgb3V0IGZsb2F0IHJhZF95LCBvdXQgZmxvYXQgcmFkX3opOworKwkJcHVibGljIEdyYXBo ZW5lLlZlYzQgdG9fdmVjNCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmF5X3QiLCB0eXBlX2lkID0g ImdyYXBoZW5lX3JheV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisrCXB1YmxpYyBzdHJ1Y3QgUmF5IHsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5S YXkgYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2xvc2VzdF9wb2ludF90b19w b2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9k aXJlY3Rpb24gKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BsYW5lIChHcmFw aGVuZS5QbGFuZSBwKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfZGlzdGFuY2VfdG9fcG9pbnQgKEdy YXBoZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfb3JpZ2lu ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X3Bvc2l0aW9uX2F0IChmbG9hdCB0 KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdCAoR3JhcGhlbmUuUG9pbnQz RD8gb3JpZ2luLCBHcmFwaGVuZS5WZWMzPyBkaXJlY3Rpb24pOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuUmF5PyBpbml0X2Zyb21fcmF5IChHcmFwaGVuZS5SYXkgc3JjKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IG9y aWdpbiwgR3JhcGhlbmUuVmVjMz8gZGlyZWN0aW9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3Rf Ym94IChHcmFwaGVuZS5Cb3ggYiwgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRl cnNlY3Rfc3BoZXJlIChHcmFwaGVuZS5TcGhlcmUgcywgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0 aW9uS2luZCBpbnRlcnNlY3RfdHJpYW5nbGUgKEdyYXBoZW5lLlRyaWFuZ2xlIHQsIG91dCBmbG9h dCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wg aW50ZXJzZWN0c19ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJl IHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVy c2VjdHNfdHJpYW5nbGUgKEdyYXBoZW5lLlRyaWFuZ2xlIHQpOworKwl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9y ZWN0X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3JlY3RfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFJlY3QgeworKwkJcHVibGljIEdy YXBoZW5lLlBvaW50IG9yaWdpbjsKKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNpemU7CisrCQlw dWJsaWMgc3RhdGljIEdyYXBoZW5lLlJlY3Q/IGFsbG9jICgpOworKwkJcHVibGljIGJvb2wgY29u dGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJcHVibGljIGJvb2wgY29udGFpbnNf cmVjdCAoR3JhcGhlbmUuUmVjdCBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5S ZWN0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlJlY3QgZXhwYW5kIChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUu UG9pbnQgZ2V0X2JvdHRvbV9sZWZ0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9i b3R0b21fcmlnaHQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X2NlbnRlciAoKTsK KysJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 IGdldF90b3BfbGVmdCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX3JpZ2h0 ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIHZvaWQgZ2V0X3Zl cnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlZlYzIg dmVydGljZXNbNF0pOworKwkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKysJCXB1YmxpYyBm bG9hdCBnZXRfeCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlJlY3Q/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBm bG9hdCBoZWlnaHQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gaW5pdF9mcm9t X3JlY3QgKEdyYXBoZW5lLlJlY3Qgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJl Y3Q/IGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBpbnNldF9yIChmbG9hdCBkX3gsIGZsb2F0 IGRfeSk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuUmVj dCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdGlvbiAoR3JhcGhl bmUuUmVjdCBiLCBvdXQgR3JhcGhlbmUuUmVjdCByZXMpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuUmVjdD8gbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlJlY3Qgbm9ybWFsaXplX3IgKCk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5SZWN0PyBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IG9mZnNldF9yIChm bG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlJlY3Qgcm91bmQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlJlY3Qgcm91bmRfZXh0ZW50cyAoKTsKKysJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IHJvdW5kX3RvX3BpeGVsICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHNjYWxlIChm bG9hdCBzX2gsIGZsb2F0IHNfdik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bmlvbiAoR3Jh cGhlbmUuUmVjdCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9z aW1kNGZfdCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFNpbWQ0RiB7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gImdyYXBoZW5lX3NpbWQ0eDRmX3QiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJ cHVibGljIHN0cnVjdCBTaW1kNFg0RiB7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NpemVfdCIsIHR5cGVf aWQgPSAiZ3JhcGhlbmVfc2l6ZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgU2l6ZSB7CisrCQlwdWJsaWMgZmxvYXQgd2lkdGg7Cisr CQlwdWJsaWMgZmxvYXQgaGVpZ2h0OworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlNp emUgYik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0IChmbG9hdCB3aWR0 aCwgZmxvYXQgaGVpZ2h0KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/IGluaXRf ZnJvbV9zaXplIChHcmFwaGVuZS5TaXplIHNyYyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBp bnRlcnBvbGF0ZSAoR3JhcGhlbmUuU2l6ZSBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5TaXplIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIHN0YXRpYyB1bm93 bmVkIEdyYXBoZW5lLlNpemU/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NwaGVyZV90Iiwg dHlwZV9pZCA9ICJncmFwaGVuZV9zcGhlcmVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFNwaGVyZSB7CisrCQlwdWJsaWMgYm9vbCBj b250YWluc19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgZmxvYXQg ZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZXF1YWwg KEdyYXBoZW5lLlNwaGVyZSBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZ2V0X2JvdW5kaW5n X2JveCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlw dWJsaWMgZmxvYXQgZ2V0X3JhZGl1cyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNw aGVyZT8gaW5pdCAoR3JhcGhlbmUuUG9pbnQzRD8gY2VudGVyLCBmbG9hdCByYWRpdXMpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUg KGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUs IGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMs IEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5T cGhlcmU/IGluaXRfZnJvbV92ZWN0b3JzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3ZlY3RvcnMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJn dWludCIpXSBHcmFwaGVuZS5WZWMzW10gdmVjdG9ycywgR3JhcGhlbmUuUG9pbnQzRD8gY2VudGVy KTsKKysJCXB1YmxpYyBib29sIGlzX2VtcHR5ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlNwaGVy ZSB0cmFuc2xhdGUgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV90 cmlhbmdsZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV90cmlhbmdsZV9nZXRfdHlwZSAoKSIpXQor KwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgVHJpYW5nbGUgewor KwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlw dWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuVHJpYW5nbGUgYik7CisrCQlwdWJsaWMgZmxvYXQg Z2V0X2FyZWEgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfYmFyeWNvb3JkcyAoR3JhcGhlbmUuUG9p bnQzRD8gcCwgb3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3gg Z2V0X2JvdW5kaW5nX2JveCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9taWRw b2ludCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9ub3JtYWwgKCk7CisrCQlwdWJs aWMgR3JhcGhlbmUuUGxhbmUgZ2V0X3BsYW5lICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50 cyAob3V0IEdyYXBoZW5lLlBvaW50M0QgYSwgb3V0IEdyYXBoZW5lLlBvaW50M0QgYiwgb3V0IEdy YXBoZW5lLlBvaW50M0QgYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIGJvb2wgZ2V0X3V2IChHcmFwaGVuZS5Qb2ludDNEPyBwLCBHcmFwaGVuZS5WZWMyIHV2X2Es IEdyYXBoZW5lLlZlYzIgdXZfYiwgR3JhcGhlbmUuVmVjMiB1dl9jLCBvdXQgR3JhcGhlbmUuVmVj MiByZXMpOworKwkJcHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChvdXQgR3JhcGhlbmUuVmVjMyBh LCBvdXQgR3JhcGhlbmUuVmVjMyBiLCBvdXQgR3JhcGhlbmUuVmVjMyBjKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8g aW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgYVsz XSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGJbM10sIFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBjWzNdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlRyaWFuZ2xlPyBpbml0X2Zyb21fcG9pbnQzZCAoR3JhcGhlbmUuUG9pbnQzRD8gYSwgR3Jh cGhlbmUuUG9pbnQzRD8gYiwgR3JhcGhlbmUuUG9pbnQzRD8gYyk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IGEsIEdy YXBoZW5lLlZlYzM/IGIsIEdyYXBoZW5lLlZlYzM/IGMpOworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWMy X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzJfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0 cnVjdCBWZWMyIHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWMyIGFkZCAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGRpdmlkZSAoR3JhcGhlbmUuVmVjMiBiKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBo ZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9v bCBlcXVhbCAoR3JhcGhlbmUuVmVjMiB2Mik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5 KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlZlYzI/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IGZsb2F0IHNyY1syXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0X2Zyb21fdmVjMiAoR3JhcGhlbmUuVmVjMiBzcmMp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMy IGludGVycG9sYXRlIChHcmFwaGVuZS5WZWMyIHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtYXggKEdyYXBo ZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMiBtaW4gKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtdWx0aXBseSAoR3JhcGhlbmUuVmVjMiBi KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdy YXBoZW5lLlZlYzIgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbm9ybWFsaXplICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBo ZW5lLlZlYzI/IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWMyIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgc3VidHJhY3QgKEdyYXBoZW5lLlZl YzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19m bG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzJdKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5WZWMyPyB4X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8geV9heGlzICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LlZlYzI/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBo ZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3ZlYzNfdCIsIHR5cGVfaWQgPSAiZ3Jh cGhlbmVfdmVjM19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IFZlYzMgeworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgYWRkIChHcmFw aGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzMgY3Jvc3MgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBkaXZpZGUgKEdyYXBoZW5lLlZlYzMg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChH cmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGlj IGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzMgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5MCAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXow ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzQgZ2V0X3h5ejEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg R3JhcGhlbmUuVmVjNCBnZXRfeHl6dyAoZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ogKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0IChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIGZsb2F0IHNyY1szXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0X2Zyb21fdmVjMyAoR3Jh cGhlbmUuVmVjMyBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWMzIGludGVycG9sYXRlIChHcmFwaGVuZS5WZWMzIHYyLCBkb3VibGUgZmFj dG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5n dGggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjMyBtYXggKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtaW4gKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtdWx0aXBseSAo R3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyBib29sIG5lYXIgKEdyYXBoZW5lLlZlYzMgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbmVnYXRlICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbm9y bWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRp YyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgc3VidHJh Y3QgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBm bG9hdCBkZXN0WzNdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB4X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8geV9h eGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1 bm93bmVkIEdyYXBoZW5lLlZlYzM/IHpfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB6ZXJvICgpOwor Kwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBj bmFtZSA9ICJncmFwaGVuZV92ZWM0X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzRfZ2V0X3R5 cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWM0IHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGFkZCAoR3JhcGhlbmUuVmVjNCBiKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGRpdmlk ZSAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuVmVjNCB2Mik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3cgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBnZXRfeHkgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBn ZXRfeHl6ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF96ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuVmVjND8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQg dyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5WZWM0PyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBmbG9hdCBzcmNbNF0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3Jj LCBmbG9hdCB6LCBmbG9hdCB3KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMz IHNyYywgZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0 IGludGVycG9sYXRlIChHcmFwaGVuZS5WZWM0IHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtYXggKEdyYXBo ZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjNCBtaW4gKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtdWx0aXBseSAoR3JhcGhlbmUuVmVjNCBi KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdy YXBoZW5lLlZlYzQgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbm9ybWFsaXplICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBo ZW5lLlZlYzQ/IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWM0IHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgc3VidHJhY3QgKEdyYXBoZW5lLlZl YzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19m bG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzRdKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5WZWM0PyB3X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8geF9heGlzICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LlZlYzQ/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8g emVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29i amVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZXVsZXJfb3JkZXJfdCIsIGNwcmVmaXggPSAiR1JB UEhFTkVfRVVMRVJfT1JERVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJcHVibGljIGVudW0gRXVsZXJPcmRlciB7CisrCQlERUZBVUxULAor KwkJWFlaLAorKwkJWVpYLAorKwkJWlhZLAorKwkJWFpZLAorKwkJWVhaLAorKwkJWllYLAorKwkJ U1hZWiwKKysJCVNYWVgsCisrCQlTWFpZLAorKwkJU1haWCwKKysJCVNZWlgsCisrCQlTWVpZLAor KwkJU1lYWiwKKysJCVNZWFksCisrCQlTWlhZLAorKwkJU1pYWiwKKysJCVNaWVgsCisrCQlTWlla LAorKwkJUlpZWCwKKysJCVJYWVgsCisrCQlSWVpYLAorKwkJUlhaWCwKKysJCVJYWlksCisrCQlS WVpZLAorKwkJUlpYWSwKKysJCVJZWFksCisrCQlSWVhaLAorKwkJUlpYWiwKKysJCVJYWVosCisr CQlSWllaCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3JheV9pbnRlcnNlY3Rpb25fa2luZF90IiwgY3ByZWZp eCA9ICJHUkFQSEVORV9SQVlfSU5URVJTRUNUSU9OX0tJTkRfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIFJheUludGVy c2VjdGlvbktpbmQgeworKwkJTk9ORSwKKysJCUVOVEVSLAorKwkJTEVBVkUKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JB UEhFTkVfSEFTX0dDQyIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19HQ0M7CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVO RV9IQVNfU0NBTEFSIildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX1NDQUxBUjsKKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBI RU5FX0hBU19TU0UiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfU1NFOworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVf UEkiKV0KKysJcHVibGljIGNvbnN0IGRvdWJsZSBQSTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJXzIiKV0KKysJ cHVibGljIGNvbnN0IGRvdWJsZSBQSV8yOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfU0lNRF9TIildCisrCXB1Ymxp YyBjb25zdCBzdHJpbmcgU0lNRF9TOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVDMl9MRU4iKV0KKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzJfTEVOOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JB UEhFTkVfVkVDM19MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMg Y29uc3QgaW50IFZFQzNfTEVOOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVDNF9MRU4iKV0KKysJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzRfTEVOOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZmFsc2Ui KV0KKysJcHVibGljIGNvbnN0IGludCBAZmFsc2U7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJ0cnVlIildCisrCXB1YmxpYyBjb25z dCBpbnQgQHRydWU7CisrfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0yLmRlcHMgdmFwaS9s aWJtdXR0ZXItMi5kZXBzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDFmM2M5MDc5 Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTIuZGVwcworKysrIC9kZXYvbnVsbAorQEAg LTEsOSArMCwwIEBACistY2Fpcm8KKy1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCistZ2RrLTMu MAorLWdkay1waXhidWYtMi4wCistZ3RrKy0zLjAKKy14MTEKKy14Zml4ZXMtNC4wCistY2x1dHRl ci0xLjAKKy1jb2dsLTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0yLnZhcGkgdmFwaS9s aWJtdXR0ZXItMi52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDBhNmM0MzU3 Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTIudmFwaQorKysrIC9kZXYvbnVsbAorQEAg LTEsMTMyNSArMCwwIEBACistLyogbGlibXV0dGVyLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4s IGRvIG5vdCBtb2RpZnkuICovCistCistW0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFt ZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICIzLjAiLCBsb3dlcl9jYXNlX2NwcmVmaXgg PSAibWV0YV8iKV0KKy1uYW1lc3BhY2UgTWV0YSB7CistCW5hbWVzcGFjZSBQcmVmcyB7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgYWRkX2xpc3RlbmVyIChNZXRhLlByZWZzQ2hhbmdlZEZ1bmMgZnVuYyk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIGJvb2wgYmVsbF9pc19hdWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGNoYW5nZV93b3Jrc3Bh Y2VfbmFtZSAoaW50IGksIHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJB Y3Rpb24gZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNr dG9wLlRpdGxlYmFyQWN0aW9uIGdldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBnZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3Rp dGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBnZXRfYXV0b19tYXhpbWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXV0b19y YWlzZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9hdXRvX3JhaXNlX2RlbGF5ICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBN ZXRhLkJ1dHRvbkxheW91dCBnZXRfYnV0dG9uX2xheW91dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRf Y2VudGVyX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9jb21wb3NpdGluZ19tYW5h Z2VyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQor LQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2N1cnNvcl9zaXplICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IHN0cmluZyBnZXRfY3Vyc29yX3RoZW1lICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9kaXNhYmxlX3dv cmthcm91bmRzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2RyYWdfdGhyZXNob2xkICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRp YyBpbnQgZ2V0X2RyYWdnYWJsZV9ib3JkZXJfd2lkdGggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2R5 bmFtaWNfd29ya3NwYWNlcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZWRnZV90aWxpbmcgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGlj IEdEZXNrdG9wLkZvY3VzTW9kZSBnZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3Au Rm9jdXNOZXdXaW5kb3dzIGdldF9mb2N1c19uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBn ZXRfZm9yY2VfZnVsbHNjcmVlbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZ25vbWVfYWNjZXNzaWJp bGl0eSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBnZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5L ZXlCaW5kaW5nQWN0aW9uIGdldF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyBpbnQgZ2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlZpcnR1YWxN b2RpZmllciBnZXRfbW91c2VfYnV0dG9uX21vZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfbW91c2Vf YnV0dG9uX3Jlc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9udW1fd29ya3NwYWNlcyAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBnZXRfcmFpc2Vfb25fY2xpY2sgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3Nob3df ZmFsbGJhY2tfYXBwX21lbnUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udERlc2NyaXB0 aW9uIGdldF90aXRsZWJhcl9mb250ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF92aXN1YWxfYmVsbCAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVmlzdWFsQmVsbFR5cGUgZ2V0X3Zpc3VhbF9iZWxsX3R5cGUg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF93b3Jrc3BhY2VfbmFtZSAoaW50IGkpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIGdldF93b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBpbml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIG92ZXJyaWRlX3ByZWZlcmVuY2Vfc2NoZW1hIChz dHJpbmcga2V5LCBzdHJpbmcgc2NoZW1hKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfbGlzdGVuZXIg KE1ldGEuUHJlZnNDaGFuZ2VkRnVuYyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9yY2VfZnVs bHNjcmVlbiAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfaWdub3JlX3JlcXVlc3Rf aGlkZV90aXRsZWJhciAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbnVtX3dvcmtz cGFjZXMgKGludCBuX3dvcmtzcGFjZXMpOworLQl9CistCW5hbWVzcGFjZSBVdGlsIHsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfYWRk X3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3Bp YyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfYnVnIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgYnVnIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9kZWJ1Z19zcGV3X3JlYWwiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19zcGV3X3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2Rpc2FibGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg ZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2Vu YWJsZV91bnJlZGlyZWN0X2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFi bGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90 cmFwX3BvcCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVycm9yX3RyYXBfcG9wIChNZXRhLkRp c3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJtZXRhX2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIGVycm9yX3RyYXBfcHVzaCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFw X3B1c2hfd2l0aF9yZXR1cm4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3B1 c2hfd2l0aF9yZXR1cm4gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJuYWxfYmluZGlu Z19uYW1lX2Zvcl9hY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4dGVybmFsX2Jp bmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1aW50IGtleWJpbmRpbmdfYWN0aW9uKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZmF0YWwi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmYXRhbCAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf ZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJlZV9n c2xpc3RfYW5kX2VsZW1lbnRzIChHTGliLlNMaXN0PHZvaWQqPiBsaXN0X3RvX2RlZXBfZnJlZSk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJt ZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3Ry bmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQor LQkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlv biAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfZ2V0X292ZXJsYXlfd2luZG93IildCistCQlwdWJsaWMgc3RhdGljIFguV2luZG93 IGdldF9vdmVybGF5X3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19z dHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJp bmcgKGludCBncmF2aXR5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVidWdnaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgaXNfZGVidWdnaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV9pc19zeW5jaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgaXNfc3luY2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIm1ldGFfaXNfdmVyYm9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IGlzX3ZlcmJvc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJtZXRhX2lzX3dheWxhbmRfY29tcG9zaXRvciIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIGlzX3dheWxhbmRfY29tcG9zaXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCistCQlw dWJsaWMgc3RhdGljIHVpbnQgbGF0ZXJfYWRkIChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25lZCBH TGliLlNvdXJjZUZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIGxhdGVyX3JlbW92ZSAodWludCBsYXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4 IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hf bm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZp eCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfcmVjdCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAo aW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9zZV90 b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChNZXRh LkRlYnVnVG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lv biIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEu U2NyZWVuIHNjcmVlbiwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Nob3dfZGlhbG9nIild CistCQlwdWJsaWMgc3RhdGljIEdMaWIuUGlkIHNob3dfZGlhbG9nIChzdHJpbmcgdHlwZSwgc3Ry aW5nIG1lc3NhZ2UsIHN0cmluZz8gdGltZW91dCA9IG51bGwsIHN0cmluZz8gZGlzcGxheSA9IG51 bGwsIHN0cmluZz8gb2tfdGV4dCA9IG51bGwsIHN0cmluZz8gY2FuY2VsX3RleHQgPSBudWxsLCBz dHJpbmc/IGljb25fbmFtZSA9IG51bGwsIGludCB0cmFuc2llbnRfZm9yID0gMCwgR0xpYi5TTGlz dDxzdHJpbmc+PyBjb2x1bW5zID0gbnVsbCwgR0xpYi5TTGlzdDxzdHJpbmc+PyBlbnRyaWVzID0g bnVsbCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJtZXRhX3RvcGljX3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB0b3BpY19yZWFs IChNZXRhLkRlYnVnVG9waWMgdG9waWMsIHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVk X2xvbmdfZXF1YWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHVuc2lnbmVkX2xvbmdfZXF1YWwg KHZvaWQqIHYxLCB2b2lkKiB2Mik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdfaGFzaCIpXQorLQkJcHVibGlj IHN0YXRpYyB1aW50IHVuc2lnbmVkX2xvbmdfaGFzaCAodm9pZCogdik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3ZlcmJvc2VfcmVh bCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHZlcmJvc2VfcmVhbCAoc3RyaW5nIGZvcm1hdCwg Li4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfd2FybmluZyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHdhcm5pbmcgKHN0cmlu ZyBmb3JtYXQsIC4uLik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGFic3RyYWN0IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2VuZCAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2VuZC5oIiwgY25hbWUg PSAibWV0YV9nZXRfYmFja2VuZCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFj a2VuZCBnZXRfYmFja2VuZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X3N0YWdlICgpOworLQkJcHVibGljIHZvaWQgbG9ja19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFu dHMsIHN0cmluZyBvcHRpb25zKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQg KHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2Vk IChpbnQgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEJhY2tncm91bmQg KE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwg KCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxl IGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5 bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3Vu ZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFj a2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENs dXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIE1ldGEuU2NyZWVuIG1ldGFfc2NyZWVuIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRh X2JhY2tncm91bmRfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91 bmRBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRh YmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0K Ky0JCXB1YmxpYyBCYWNrZ3JvdW5kQWN0b3IgKE1ldGEuU2NyZWVuIHNjcmVlbiwgaW50IG1vbml0 b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNr Z3JvdW5kKTsKKy0JCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3Vi bGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0bmVzcyB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNjcmVlbiBt ZXRhX3NjcmVlbiB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBpbnQgbW9uaXRvciB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHZpZ25ldHRlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSB2aWduZXR0ZV9zaGFycG5lc3MgeyBn ZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ3JvdXBfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRHcm91cCA6IENsdXR0ZXIuQWN0 b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5k R3JvdXAgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIEJhY2tncm91bmRJbWFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9zdWNjZXNzICgpOwor LQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGlj IGJvb2wgaXNfbG9hZGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxvYWRlZCAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2NhY2hlX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRh LkJhY2tncm91bmRJbWFnZUNhY2hlIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIE1ldGEuQmFj a2dyb3VuZEltYWdlIGxvYWQgKEdMaWIuRmlsZSBmaWxlKTsKKy0JCXB1YmxpYyB2b2lkIHB1cmdl IChHTGliLkZpbGUgZmlsZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIEJhcnJpZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsKKy0JCXB1 YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CistCQlw dWJsaWMgdm9pZCByZWxlYXNlIChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0aW9ucyB7 IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRh LkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3RydWN0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0cnVjdDsg fQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJtZXRhX2JhcnJpZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCist CXB1YmxpYyBjbGFzcyBCYXJyaWVyRXZlbnQgeworLQkJcHVibGljIGludCBkdDsKKy0JCXB1Ymxp YyBkb3VibGUgZHg7CistCQlwdWJsaWMgZG91YmxlIGR5OworLQkJcHVibGljIGludCBldmVudF9p ZDsKKy0JCXB1YmxpYyBib29sIGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxlYXNlZDsKKy0J CXB1YmxpYyB1aW50MzIgdGltZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1YmxpYyBkb3Vi bGUgeTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBDb21wb3NpdG9yIHsKKy0JCXB1Ymxp YyB2b2lkIGFkZF93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCBk ZXN0cm95ICgpOworLQkJcHVibGljIGJvb2wgZmlsdGVyX2tleWJpbmRpbmcgKE1ldGEuS2V5Qmlu ZGluZyBiaW5kaW5nKTsKKy0JCXB1YmxpYyB2b2lkIGZsYXNoX3NjcmVlbiAoTWV0YS5TY3JlZW4g c2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIGZvY3VzX3N0YWdlX3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50 MzIgdGltZXN0YW1wKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3Jfc2Ny ZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmVlZGJh Y2tfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X2dldF9zdGFnZV9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5BY3Rvcj8gZ2V0X3N0YWdlX2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9nZXRfdG9wX3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8gZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3Nj cmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfYWN0 b3JzIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5k b3dBY3Rvcj4/IGdldF93aW5kb3dfYWN0b3JzIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1l ID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5BY3Rvcj8gZ2V0X3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIChNZXRh LlNjcmVlbiBzY3JlZW4pOworLQkJcHVibGljIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7Cist CQlwdWJsaWMgdm9pZCBoaWRlX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBF ZmZlY3QgZWZmZWN0KTsKKy0JCXB1YmxpYyB2b2lkIG1hbmFnZSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IE1ldGEuQ29tcG9zaXRvciBAbmV3IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMg dm9pZCBxdWV1ZV9mcmFtZV9kcmF3biAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIG5vX2RlbGF5 X2ZyYW1lKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRv dyk7CistCQlwdWJsaWMgdm9pZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2luZG93 LCBNZXRhLlJlY3RhbmdsZSB0aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsKKy0J CXB1YmxpYyB2b2lkIHNob3dfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuQ29tcEVm ZmVjdCBlZmZlY3QpOworLQkJcHVibGljIHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5k b3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlw dWJsaWMgdm9pZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3cs IE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJs aWMgdm9pZCBzaXplX2NoYW5nZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5TaXpl Q2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3JlY3QsIE1ldGEu UmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zdGFnZV9pc19mb2N1 c2VkIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgc3RhZ2VfaXNfZm9jdXNlZCAoTWV0YS5TY3Jl ZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKE1ldGEuV29ya3Nw YWNlIGZyb20sIE1ldGEuV29ya3NwYWNlIHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rp b24pOworLQkJcHVibGljIHZvaWQgc3luY19zdGFjayAoR0xpYi5MaXN0PE1ldGEuV2luZG93QWN0 b3I+IHN0YWNrKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfdXBkYXRlc19mcm96ZW4gKE1ldGEuV2lu ZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCBzeW5jX3dpbmRvd19nZW9tZXRyeSAoTWV0YS5X aW5kb3cgd2luZG93LCBib29sIGRpZF9wbGFjZW1lbnQpOworLQkJcHVibGljIHZvaWQgdW5tYW5h Z2UgKCk7CistCQlwdWJsaWMgdm9pZCB3aW5kb3dfb3BhY2l0eV9jaGFuZ2VkIChNZXRhLldpbmRv dyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgd2luZG93X3NoYXBlX2NoYW5nZWQgKE1ldGEuV2lu ZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCB3aW5kb3dfc3VyZmFjZV9jaGFuZ2VkIChNZXRh LldpbmRvdyB3aW5kb3cpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfdHJhY2tlcl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQ3Vyc29yVHJhY2tlciA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBDdXJzb3JUcmFja2VyICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vy c29yVHJhY2tlciBnZXRfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1Ymxp YyB2b2lkIGdldF9ob3QgKG91dCBpbnQgeCwgb3V0IGludCB5KTsKKy0JCXB1YmxpYyB2b2lkIGdl dF9wb2ludGVyIChpbnQgeCwgaW50IHksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworLQkJ cHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERpc3BsYXkgKCk7Cist CQlwdWJsaWMgdm9pZCBhZGRfaWdub3JlZF9jcm9zc2luZ19zZXJpYWwgKHVsb25nIHNlcmlhbCk7 CistCQlwdWJsaWMgdWludCBhZGRfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUsIEdMaWIuU2V0dGlu Z3Mgc2V0dGluZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzLCBvd25lZCBNZXRhLktleUhh bmRsZXJGdW5jIGhhbmRsZXIpOworLQkJcHVibGljIGJvb2wgYmVnaW5fZ3JhYl9vcCAoTWV0YS5T Y3JlZW4gc2NyZWVuLCBNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuR3JhYk9wIG9wLCBib29sIHBv aW50ZXJfYWxyZWFkeV9ncmFiYmVkLCBib29sIGZyYW1lX2FjdGlvbiwgaW50IGJ1dHRvbiwgdWxv bmcgbW9kbWFzaywgdWludDMyIHRpbWVzdGFtcCwgaW50IHJvb3RfeCwgaW50IHJvb3RfeSk7Cist CQlwdWJsaWMgdm9pZCBjbGVhcl9tb3VzZV9tb2RlICgpOworLQkJcHVibGljIHZvaWQgZW5kX2dy YWJfb3AgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2Zv Y3VzX3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIGZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLkNvbXBvc2l0b3IgZ2V0X2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdWlu dDMyIGdldF9jdXJyZW50X3RpbWUgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3Rp bWVfcm91bmR0cmlwICgpOworLQkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfZm9jdXNfd2luZG93ICgpOworLQkJ cHVibGljIE1ldGEuR3JhYk9wIGdldF9ncmFiX29wICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2tl eWJpbmRpbmdfYWN0aW9uICh1aW50IGtleWNvZGUsIHVsb25nIG1hc2spOworLQkJcHVibGljIHVp bnQzMiBnZXRfbGFzdF91c2VyX3RpbWUgKCk7CistCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVu dF9iYXNlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50 IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1Ymxp YyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3Qg dHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LldpbmRvdyBnZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3 b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworLQkJcHVibGlj IHVub3duZWQgWC5EaXNwbGF5IGdldF94ZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3hp bnB1dF9vcGNvZGUgKCk7CistCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcg YWNjZWxlcmF0b3IpOworLQkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworLQkJcHVibGljIGJv b2wgaXNfcG9pbnRlcl9lbXVsYXRpbmdfc2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8g c2VxdWVuY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Hcm91cCBsb29rdXBfZ3JvdXAgKFgu V2luZG93IGdyb3VwX2xlYWRlcik7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAo c3RyaW5nIG5hbWUpOworLQkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzX3dpbmRvdyAoTWV0 YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsKKy0J CXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFj a2luZyAoR0xpYi5TTGlzdDxNZXRhLldpbmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBz dXBwb3J0c19leHRlbmRlZF9iYXJyaWVycyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tl eWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVy YXRvciAodWludCBhY3Rpb25faWQpOworLQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFuYWdlX3NjcmVlbiAoTWV0YS5T Y3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHhzZXJ2ZXJf dGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsKKy0JCXB1YmxpYyBi b29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVp bnQgcDAsIHVpbnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1l dGEuU2NyZWVuIG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2VuZCAoTWV0YS5TY3JlZW4gb2JqZWN0LCBNZXRhLldp bmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworLQkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVy c19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3Zlcmxh eV9rZXkgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgcmVzdGFydCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVjdGFuZ2xl IHAwLCBpbnQgcDEsIGludCBwMik7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXN0YXJ0 X21lc3NhZ2UgKHN0cmluZz8gbWVzc2FnZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93 X2NyZWF0ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2lu ZG93X2RlbWFuZHNfYXR0ZW50aW9uIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHdpbmRvd19tYXJrZWRfdXJnZW50IChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIildCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgRnJhbWUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2dyb3VwLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBHcm91 cCB7CistCQlwdWJsaWMgaW50IGdldF9zaXplICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRv dz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIGJvb2wgcHJvcGVydHlfbm90aWZ5IChYLkV2 ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9sYXllcnMgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIsIHR5cGVf aWQgPSAibWV0YV9pZGxlX21vbml0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIElk bGVNb25pdG9yIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIElkbGVNb25pdG9yICgpOworLQkJcHVibGljIHVp bnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVN b25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3Rp dmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGlu dCBkZXZpY2VfaWQpOworLQkJcHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBpZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY29weV9mdW5jdGlvbiA9 ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQg PSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGlj IGNsYXNzIEtleUJpbmRpbmcgeworLQkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CistCQlwdWJs aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgZ2V0X21vZGlmaWVycyAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2J1aWx0aW4gKCk7Cist CQlwdWJsaWMgYm9vbCBpc19yZXZlcnNlZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2tleWJpbmRpbmdzLmgiLCBjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9j dXN0b21faGFuZGxlciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxl ciAoc3RyaW5nIG5hbWUsIG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgiLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdlciA6IEdMaWIuREJ1c0ludGVyZmFjZVNr ZWxldG9uLCBHTGliLkRCdXNJbnRlcmZhY2UgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOworLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X21vbml0b3JfZm9yX291dHB1dCAodWludCBpZCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmpl Y3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFsIChNZXRhLk1vZGFs T3B0aW9ucyBvcHRpb25zLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGNvbXBs ZXRlX2Rpc3BsYXlfY2hhbmdlIChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsK Ky0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJcHVibGljIHVub3du ZWQgTWV0YS5TY3JlZW4gZ2V0X3NjcmVlbiAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIGJvb2wga2V5YmluZGluZ19maWx0ZXIgKE1ldGEuS2V5QmluZGluZyBiaW5k aW5nKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNo X3dvcmtzcGFjZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtp bGxfd2luZG93X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHN0 YXRpYyB2b2lkIG1hbmFnZXJfc2V0X3BsdWdpbl90eXBlIChHTGliLlR5cGUgZ3R5cGUpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwIChNZXRhLldpbmRvd0FjdG9y IGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1hcF9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3Ig YWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWluaW1pemUg KE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWluaW1pemVfY29tcGxl dGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB1bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gcGx1Z2luX2luZm8gKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5X aW5kb3cgd2luZG93LCBNZXRhLlJlY3RhbmdsZSB0aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3Jf bnVtYmVyKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2lu ZG93X21lbnUgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBp bnQgeCwgaW50IHkpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hv d193aW5kb3dfbWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01l bnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9jaGFuZ2UgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IsIE1l dGEuU2l6ZUNoYW5nZSB3aGljaF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0 LCBNZXRhLlJlY3RhbmdsZSBvbGRfYnVmZmVyX3JlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9j aGFuZ2VfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgc3dpdGNoX3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0 YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jr c3BhY2VfY29tcGxldGVkICgpOworLSAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHVubWluaW1pemUgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQg dW5taW5pbWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgeGV2ZW50X2ZpbHRlciAoWC5FdmVudCBldmVu dCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvc2NyZWVuLmgiLCB0 eXBlX2lkID0gIm1ldGFfc2NyZWVuX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTY3Jl ZW4gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgU2NyZWVuICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5X b3Jrc3BhY2U/IGFwcGVuZF9uZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93ICh1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29y a3NwYWNlICgpOworLQkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0 X2N1cnJlbnRfbW9uaXRvcl9mb3JfcG9zIChpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHVub3du ZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGdldF9tb25pdG9yX2dlb21ldHJ5IChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgYm9vbCBnZXRf bW9uaXRvcl9pbl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGdldF9t b25pdG9yX2luZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBp bnQgZ2V0X21vbml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9yLCBNZXRhLlNj cmVlbkRpcmVjdGlvbiBkaXIpOworLQkJcHVibGljIGludCBnZXRfbl9tb25pdG9ycyAoKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1h cnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CistCQlw dWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJ cHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGlu dCBpbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8TWV0YS5Xb3Jrc3BhY2U+IGdl dF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94cm9vdCAoKTsKKy0JCXB1 YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuU2NyZWVuQ29ybmVyIHN0 YXJ0aW5nX2Nvcm5lciwgYm9vbCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2Nv bHVtbnMpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ug d29ya3NwYWNlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxl Y3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3Ip OworLQkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBpbl9mdWxsc2NyZWVuX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9u aXRvcnNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXN0YWNrZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmpl Y3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0b3IgKGludCBv YmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbGVm dF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgd29ya2FyZWFzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3Nw YWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vf cmVtb3ZlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3 aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3No YWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIild CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdl dF9ib3VuZHMgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBp bnQgd2luZG93X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMg dm9pZCBwYWludCAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgs IGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJv b2wgY2xpcF9zdHJpY3RseSk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKy0JCXB1 YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZmFjdG9y eV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhZG93RmFjdG9yeSA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1 YmxpYyBTaGFkb3dGYWN0b3J5ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuU2hh ZG93RmFjdG9yeSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvd1BhcmFtcyBn ZXRfcGFyYW1zIChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyBN ZXRhLlNoYWRvdyBnZXRfc2hhZG93IChNZXRhLldpbmRvd1NoYXBlIHNoYXBlLCBpbnQgd2lkdGgs IGludCBoZWlnaHQsIHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGlj IHZvaWQgc2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCwgTWV0YS5T aGFkb3dQYXJhbXMgQHBhcmFtcyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgU2hhcGVkVGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9p bWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IGNsaXApOworLQkJcHVibGljIHVub3duZWQgQ29nbC5U ZXh0dXJlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBz IChib29sIGNyZWF0ZV9taXBtYXBzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUg KENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9y ZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29s IHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3RoZW1lLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFz cyBUaGVtZSB7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5U aGVtZSBnZXRfZGVmYXVsdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgQG5ldyAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVf aWQgPSAibWV0YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNz IFdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXaW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBhY3Rp dmF0ZSAodWludDMyIGN1cnJlbnRfdGltZSk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRo X3dvcmtzcGFjZSAodWludDMyIGN1cnJlbnRfdGltZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNl KTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19tb3ZlICgpOworLQkJcHVibGljIGJvb2wgYWxsb3dz X3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGJlZ2luX2dyYWJfb3AgKE1ldGEuR3JhYk9wIG9w LCBib29sIGZyYW1lX2FjdGlvbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCBj YW5fY2xvc2UgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fbWF4aW1pemUgKCk7CistCQlwdWJsaWMg Ym9vbCBjYW5fbWluaW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fc2hhZGUgKCk7CistCQlw dWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOwor LQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IHNwYWNlX2luZGV4 LCBib29sIGFwcGVuZCk7CistCQlwdWJsaWMgdm9pZCBjaGVja19hbGl2ZSAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgY2xpZW50X3JlY3RfdG9fZnJhbWVfcmVj dCAoTWV0YS5SZWN0YW5nbGUgY2xpZW50X3JlY3QpOworLQkJcHVibGljIHZvaWQgY29tcHV0ZV9n cm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIEBkZWxldGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJ cHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZmluZF9yb290X2FuY2VzdG9yICgpOworLQkJcHVi bGljIHZvaWQgZm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9yZWFj aF9hbmNlc3RvciAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyB2b2lk IGZvcmVhY2hfdHJhbnNpZW50IChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFu Z2xlIGZyYW1lX3JlY3QpOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGhfcG9zID0gMC4xLCBhcnJh eV9sZW5ndGhfdHlwZSA9ICJnc2l6ZSIpXQorLQkJcHVibGljIGludFtdIGdldF9hbGxfbW9uaXRv cnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5GcmFtZSBn ZXRfZnJhbWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9i b3VuZHMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7Cist CQlwdWJsaWMgTWV0YS5GcmFtZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLkdyb3VwIGdldF9ncm91cCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9ndGtfYXBwbGljYXRpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2d0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X2d0a190aGVtZV92YXJpYW50ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9ndGtfdW5pcXVlX2J1c19uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9n dGtfd2luZG93X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2ljb25fZ2VvbWV0 cnkgKG91dCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIg Z2V0X2xheWVyICgpOworLQkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVk ICgpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfbXV0dGVyX2hpbnRzICgpOworLQkJcHVibGljIGludCBnZXRfcGlkICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9yb2xlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5TY3JlZW4gZ2V0X3NjcmVlbiAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9zdGFibGVfc2VxdWVu Y2UgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXJ0dXBfaWQgKCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdz8gZ2V0X3RpbGVfbWF0Y2ggKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3cgZ2V0X3RyYW5zaWVudF9mb3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF91c2VyX3RpbWUg KCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIGdldF93aW5kb3dfdHlwZSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3dtX2NsYXNzX2luc3RhbmNlICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGdldF93b3JrX2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGdldF93b3JrX2FyZWFfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFu Z2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMg WC5XaW5kb3cgZ2V0X3h3aW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBncm91cF9sZWFkZXJfY2hh bmdlZCAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19mb2N1cyAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2Fib3ZlICgpOworLQkJcHVibGljIGJvb2wgaXNfYWx3YXlzX29uX2FsbF93b3Jrc3BhY2VzICgp OworLQkJcHVibGljIGJvb2wgaXNfYW5jZXN0b3Jfb2ZfdHJhbnNpZW50IChNZXRhLldpbmRvdyB0 cmFuc2llbnQpOworLQkJcHVibGljIGJvb2wgaXNfYXR0YWNoZWRfZGlhbG9nICgpOworLQkJcHVi bGljIGJvb2wgaXNfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2hpZGRlbiAoKTsK Ky0JCXB1YmxpYyBib29sIGlzX21vbml0b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19v bl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX3ByaW1hcnlfbW9uaXRv ciAoKTsKKy0JCXB1YmxpYyBib29sIGlzX292ZXJyaWRlX3JlZGlyZWN0ICgpOworLQkJcHVibGlj IGJvb2wgaXNfcmVtb3RlICgpOworLQkJcHVibGljIGJvb2wgaXNfc2NyZWVuX3NpemVkICgpOwor LQkJcHVibGljIGJvb2wgaXNfc2hhZGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2tpcF90YXNr YmFyICgpOworLQkJcHVibGljIHZvaWQga2lsbCAoKTsKKy0JCXB1YmxpYyBib29sIGxvY2F0ZWRf b25fd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQg bG93ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQg bWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgbWF4aW1pemUgKE1ldGEuTWF4aW1p emVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplICgpOworLQkJcHVi bGljIHZvaWQgbW92ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9v dF95X253KTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJfb3As IGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7CistCQlwdWJsaWMg dm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJhaXNl ICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJ cHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJs aWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9p Y29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaGFk ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzaG92ZV90aXRsZWJhcl9vbnNj cmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIHNob3dpbmdfb25faXRzX3dvcmtzcGFjZSAoKTsKKy0J CXB1YmxpYyB2b2lkIHNodXRkb3duX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgc3RpY2sgKCk7 CistCQlwdWJsaWMgYm9vbCB0aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lk IHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9mdWxsc2NyZWVuICgpOwor LQkJcHVibGljIHZvaWQgdW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMp OworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2V0X2Rl bWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgdW5zaGFkZSAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bnN0aWNrICgpOworLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCBhYm92ZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCBhcHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIGRlbWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMg c3RyaW5nIGd0a19hcHBsaWNhdGlvbl9pZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtf YXBwbGljYXRpb25fb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX21l bnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3VuaXF1ZV9i dXNfbmFtZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfd2luZG93X29iamVjdF9wYXRo IHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNl IGljb24geyBvd25lZCBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJv b2wgbWF4aW1pemVkX2hvcml6b250YWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCBtYXhpbWl6ZWRfdmVydGljYWxseSB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBtaW5pX2ljb24geyBvd25lZCBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWluaW1pemVkIHsg Z2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIG11dHRlcl9oaW50cyB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBvbl9hbGxfd29ya3NwYWNlcyB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXNpemVhYmxlIHsgZ2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHNraXBfdGFza2JhciB7IGdl dDsgfQorLQkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCB1cmdlbnQgeyBnZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHVzZXJf dGltZSB7IGdldDsgfQorLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSB3aW5kb3dfdHlwZSB7IGdl dDsgfQorLQkJcHVibGljIHN0cmluZyB3bV9jbGFzcyB7IGdldDsgfQorLQkJW0NDb2RlIChjbmFt ZSA9ICJmb2N1cyIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGZvY3VzZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgcG9zaXRpb25fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCByYWlzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9y LCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIs IENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRv dyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19t b2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhX3dpbmRvd19zaGFw ZS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3JlZiIsIHR5cGVfaWQgPSAi bWV0YV93aW5kb3dfc2hhcGVfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3dp bmRvd19zaGFwZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFdpbmRvd1No YXBlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1 YmxpYyBXaW5kb3dTaGFwZSAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CistCQlwdWJsaWMgYm9vbCBl cXVhbCAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZV9iKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3Jk ZXJzIChpbnQgYm9yZGVyX3RvcCwgaW50IGJvcmRlcl9yaWdodCwgaW50IGJvcmRlcl9ib3R0b20s IGludCBib3JkZXJfbGVmdCk7CistCQlwdWJsaWMgdWludCBoYXNoICgpOworLQkJcHVibGljIE1l dGEuV2luZG93U2hhcGUgQHJlZiAoKTsKKy0JCXB1YmxpYyBDYWlyby5SZWdpb24gdG9fcmVnaW9u IChpbnQgY2VudGVyX3dpZHRoLCBpbnQgY2VudGVyX2hlaWdodCk7CistCQlwdWJsaWMgdm9pZCB1 bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93b3Jrc3Bh Y2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIFdvcmtzcGFjZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJs aWMgdm9pZCBhY3RpdmF0ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBhY3Rp dmF0ZV93aXRoX2ZvY3VzIChNZXRhLldpbmRvdyBmb2N1c190aGlzLCB1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9uZWlnaGJvciAoTWV0YS5N b3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVu IGdldF9zY3JlZW4gKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9h bGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9m b3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsK Ky0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOwor LQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ+ IHN0cnV0cyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG5fd2luZG93 cyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCB3b3Jrc3Bh Y2VfaW5kZXggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfYWRkZWQgKE1l dGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X3JlbW92ZWQg KE1ldGEuV2luZG93IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBC dXR0b25MYXlvdXQgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVs bF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9u W10gbGVmdF9idXR0b25zOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlf bnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBib29sW10gbGVmdF9idXR0 b25zX2hhc19zcGFjZXI7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9u dWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rp b25bXSByaWdodF9idXR0b25zOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJy YXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBib29sW10gcmlnaHRf YnV0dG9uc19oYXNfc3BhY2VyOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBFZGdl IHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBz aWRlX3R5cGU7CistCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JcHVibGljIHN0cnVjdCBGcmFtZUJvcmRlcnMgeworLQkJcHVibGljIEd0ay5Cb3Jk ZXIgdmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIGludmlzaWJsZTsKKy0JCXB1YmxpYyBH dGsuQm9yZGVyIHRvdGFsOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpbkluZm8geworLQkJcHVibGljIHdlYWsgc3Ry aW5nIG5hbWU7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgdmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFr IHN0cmluZyBhdXRob3I7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbGljZW5zZTsKKy0JCXB1Ymxp YyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOwor LQkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWlj cm87CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsK Ky0JCXB1YmxpYyBpbnQgd2lkdGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JCXB1YmxpYyBp bnQgYXJlYSAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKE1ldGEuUmVjdGFuZ2xl IGlubmVyX3JlY3QpOworLQkJcHVibGljIGJvb2wgY291bGRfZml0X3JlY3QgKE1ldGEuUmVjdGFu Z2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuUmVjdGFuZ2xlIHNy YzIpOworLQkJcHVibGljIGJvb2wgaG9yaXpfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIp OworLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0IChNZXRhLlJlY3RhbmdsZSBzcmMyLCBvdXQgTWV0 YS5SZWN0YW5nbGUgZGVzdCk7CistCQlwdWJsaWMgYm9vbCBvdmVybGFwIChNZXRhLlJlY3Rhbmds ZSByZWN0Mik7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgdW5pb24gKE1ldGEuUmVjdGFuZ2xl IHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIHZlcnRfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVj dDIpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFNoYWRv d1BhcmFtcyB7CistCQlwdWJsaWMgaW50IHJhZGl1czsKKy0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7 CistCQlwdWJsaWMgaW50IHhfb2Zmc2V0OworLQkJcHVibGljIGludCB5X29mZnNldDsKKy0JCXB1 YmxpYyB1aW50OCBvcGFjaXR5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1 dCB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUg c2lkZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgi LCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2Jh cnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0g QmFycmllckRpcmVjdGlvbiB7CistCQlQT1NJVElWRV9YLAorLQkJUE9TSVRJVkVfWSwKKy0JCU5F R0FUSVZFX1gsCistCQlORUdBVElWRV9ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5 cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gQnV0dG9uRnVuY3Rpb24geworLQkJTUVOVSwKKy0JCU1JTklNSVpFLAorLQkJTUFYSU1JWkUs CistCQlDTE9TRSwKKy0JCVNIQURFLAorLQkJQUJPVkUsCistCQlTVElDSywKKy0JCVVOU0hBREUs CistCQlVTkFCT1ZFLAorLQkJVU5TVElDSywKKy0JCUFQUE1FTlUsCistCQlMQVNUCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9 ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBDb21wRWZmZWN0IHsKKy0JCUNSRUFURSwKKy0JCVVOTUlO SU1JWkUsCistCQlERVNUUk9ZLAorLQkJTUlOSU1JWkUsCistCQlOT05FCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VS U09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gQ3Vyc29yIHsKKy0JCU5PTkUsCistCQlERUZBVUxULAorLQkJTk9SVEhfUkVTSVpFLAorLQkJ U09VVEhfUkVTSVpFLAorLQkJV0VTVF9SRVNJWkUsCistCQlFQVNUX1JFU0laRSwKKy0JCVNFX1JF U0laRSwKKy0JCVNXX1JFU0laRSwKKy0JCU5FX1JFU0laRSwKKy0JCU5XX1JFU0laRSwKKy0JCU1P VkVfT1JfUkVTSVpFX1dJTkRPVywKKy0JCUJVU1ksCistCQlETkRfSU5fRFJBRywKKy0JCURORF9N T1ZFLAorLQkJRE5EX0NPUFksCistCQlETkRfVU5TVVBQT1JURURfVEFSR0VULAorLQkJUE9JTlRJ TkdfSEFORCwKKy0JCUNST1NTSEFJUiwKKy0JCUlCRUFNLAorLQkJTEFTVAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJV R18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdz XQorLQlwdWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsKKy0JCVZFUkJPU0UsCistCQlGT0NVUywKKy0J CVdPUktBUkVBLAorLQkJU1RBQ0ssCistCQlUSEVNRVMsCistCQlTTSwKKy0JCUVWRU5UUywKKy0J CVdJTkRPV19TVEFURSwKKy0JCVdJTkRPV19PUFMsCistCQlHRU9NRVRSWSwKKy0JCVBMQUNFTUVO VCwKKy0JCVBJTkcsCistCQlYSU5FUkFNQSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJU1lOQywKKy0J CUVSUk9SUywKKy0JCVNUQVJUVVAsCistCQlQUkVGUywKKy0JCUdST1VQUywKKy0JCVJFU0laSU5H LAorLQkJU0hBUEVTLAorLQkJQ09NUE9TSVRPUiwKKy0JCUVER0VfUkVTSVNUQU5DRSwKKy0JCURC VVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNw cmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZU LAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCistCQlI T1JJWk9OVEFMLAorLQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9ib3hlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRh X2VkZ2VfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CistCQlX SU5ET1csCistCQlNT05JVE9SLAorLQkJU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9 ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7 CistCQlTVUNDRVNTLAorLQkJRVJST1IKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1l dGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBG cmFtZUZsYWdzIHsKKy0JCUFMTE9XU19ERUxFVEUsCistCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9X U19BUFBNRU5VLAorLQkJQUxMT1dTX01JTklNSVpFLAorLQkJQUxMT1dTX01BWElNSVpFLAorLQkJ QUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKKy0JCUFMTE9XU19IT1JJWk9OVEFMX1JFU0laRSwKKy0J CUhBU19GT0NVUywKKy0JCVNIQURFRCwKKy0JCVNUVUNLLAorLQkJTUFYSU1JWkVELAorLQkJQUxM T1dTX1NIQURFLAorLQkJQUxMT1dTX01PVkUsCistCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJ TkcsCistCQlBQk9WRSwKKy0JCVRJTEVEX0xFRlQsCistCQlUSUxFRF9SSUdIVAorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gRnJhbWVUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURJQUxPRywKKy0JCU1P REFMX0RJQUxPRywKKy0JCVVUSUxJVFksCistCQlNRU5VLAorLQkJQk9SREVSLAorLQkJQVRUQUNI RUQsCistCQlMQVNUOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoTWV0YS5GcmFt ZVR5cGUgdHlwZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9v cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCUNP TVBPU0lUT1IsCistCQlXQVlMQU5EX1BPUFVQLAorLQkJV0lORE9XX0JBU0UsCistCQlGUkFNRV9C VVRUT04sCistCQlNT1ZJTkcsCistCQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlS RVNJWklOR19ORSwKKy0JCVJFU0laSU5HX0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5H X1MsCistCQlSRVNJWklOR19TRSwKKy0JCVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcs CistCQlLRVlCT0FSRF9SRVNJWklOR19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcs CistCQlLRVlCT0FSRF9SRVNJWklOR19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlL RVlCT0FSRF9SRVNJWklOR19FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FS RF9SRVNJWklOR19TLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJ WklOR19XCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5 X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdB Y3Rpb24geworLQkJTk9ORSwKKy0JCVdPUktTUEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCistCQlX T1JLU1BBQ0VfMywKKy0JCVdPUktTUEFDRV80LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JLU1BB Q0VfNiwKKy0JCVdPUktTUEFDRV83LAorLQkJV09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0VfOSwK Ky0JCVdPUktTUEFDRV8xMCwKKy0JCVdPUktTUEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwKKy0J CVdPUktTUEFDRV9MRUZULAorLQkJV09SS1NQQUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQLAor LQkJV09SS1NQQUNFX0RPV04sCistCQlXT1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNB VElPTlMsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dST1VQ LAorLQkJU1dJVENIX0dST1VQX0JBQ0tXQVJELAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlTV0lU Q0hfV0lORE9XU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFORUxT X0JBQ0tXQVJELAorLQkJQ1lDTEVfR1JPVVAsCistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0J CUNZQ0xFX1dJTkRPV1MsCistCQlDWUNMRV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFO RUxTLAorLQkJQ1lDTEVfUEFORUxTX0JBQ0tXQVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJUEFO RUxfTUFJTl9NRU5VLAorLQkJUEFORUxfUlVOX0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJTkcs CistCQlTRVRfU1BFV19NQVJLLAorLQkJQUNUSVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dHTEVf RlVMTFNDUkVFTiwKKy0JCVRPR0dMRV9NQVhJTUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVGVCwK Ky0JCVRPR0dMRV9USUxFRF9SSUdIVCwKKy0JCVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpFLAor LQkJVU5NQVhJTUlaRSwKKy0JCVRPR0dMRV9TSEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNMT1NF LAorLQkJQkVHSU5fTU9WRSwKKy0JCUJFR0lOX1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExfV09S S1NQQUNFUywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8y LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCistCQlN T1ZFX1RPX1dPUktTUEFDRV81LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9f V09SS1NQQUNFXzcsCistCQlNT1ZFX1RPX1dPUktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JLU1BB Q0VfOSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEs CistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQsCist CQlNT1ZFX1RPX1dPUktTUEFDRV9SSUdIVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfRE9XTiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCistCQlN T1ZFX1RPX01PTklUT1JfTEVGVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVf VE9fTU9OSVRPUl9VUCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1JfTE9X RVIsCistCQlSQUlTRSwKKy0JCUxPV0VSLAorLQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0JCU1B WElNSVpFX0hPUklaT05UQUxMWSwKKy0JCU1PVkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9UT19D T1JORVJfTkUsCistCQlNT1ZFX1RPX0NPUk5FUl9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NFLAor LQkJTU9WRV9UT19TSURFX04sCistCQlNT1ZFX1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lERV9F LAorLQkJTU9WRV9UT19TSURFX1csCistCQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZ LAorLQkJSVNPX05FWFRfR1JPVVAsCistCQlBTFdBWVNfT05fVE9QLAorLQkJTEFTVAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1F VEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90 eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKy0J CU5PTkUsCistCQlQRVJfV0lORE9XLAorLQkJQlVJTFRJTiwKKy0JCUlTX1JFVkVSU0VECistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJN RVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7CistCQlSRVNJWkUsCistCQlDQUxDX1NIT1dJTkcsCist CQlDSEVDS19GVUxMU0NSRUVOLAorLQkJU1lOQ19TVEFDSywKKy0JCUJFRk9SRV9SRURSQVcsCist CQlJRExFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwg Y3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2Fs ZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTG9jYWxlRGlyZWN0aW9u IHsKKy0JCUxUUiwKKy0JCVJUTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0 YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVt IE1heGltaXplRmxhZ3MgeworLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMLAorLQkJQk9USAor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBj cHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0 X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworLQkJ UE9JTlRFUl9BTFJFQURZX0dSQUJCRUQsCistCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXgg PSAiTUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9X TiwKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVVQX0xFRlQsCistCQlVUF9SSUdIVCwKKy0JCURP V05fTEVGVCwKKy0JCURPV05fUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRh X3ByZWZlcmVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7Cist CQlNT1VTRV9CVVRUT05fTU9EUywKKy0JCUZPQ1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9X UywKKy0JCUFUVEFDSF9NT0RBTF9ESUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJ T05fRE9VQkxFX0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJB UiwKKy0JCUFDVElPTl9SSUdIVF9DTElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlB VVRPX1JBSVNFX0RFTEFZLAorLQkJRk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJ VExFQkFSX0ZPTlQsCistCQlOVU1fV09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywK Ky0JCUtFWUJJTkRJTkdTLAorLQkJRElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlP VVQsCistCQlXT1JLU1BBQ0VfTkFNRVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVM TCwKKy0JCVZJU1VBTF9CRUxMX1RZUEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05P TUVfQU5JTUFUSU9OUywKKy0JCUNVUlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVT SVpFX1dJVEhfUklHSFRfQlVUVE9OLAorLQkJRURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NS RUVOLAorLQkJV09SS1NQQUNFU19PTkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVS X1dJRFRILAorLQkJQVVUT19NQVhJTUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURS QUdfVEhSRVNIT0xEOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoTWV0YS5QcmVm ZXJlbmNlIHByZWYpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3Nj cmVlbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVu X2Nvcm5lcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5Db3JuZXIgeworLQkJ VE9QTEVGVCwKKy0JCVRPUFJJR0hULAorLQkJQk9UVE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgi LCBjcHJlZml4ID0gIk1FVEFfU0NSRUVOXyIsIHR5cGVfaWQgPSAibWV0YV9zY3JlZW5fZGlyZWN0 aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNjcmVlbkRpcmVjdGlvbiB7CistCQlV UCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLWVudW0tdHlwZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFE T1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gU2hhZG93TW9kZSB7CistCQlBVVRPLAorLQkJRk9SQ0VEX09GRiwKKy0JCUZP UkNFRF9PTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5o IiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGVudW0gU2lkZSB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1As CistCQlCT1RUT00KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LWVudW0tdHlwZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0g Im1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5n ZSB7CistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5G VUxMU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVy X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFN0YWNrTGF5ZXIgeworLQkJREVTS1RPUCwK Ky0JCUJPVFRPTSwKKy0JCU5PUk1BTCwKKy0JCVRPUCwKKy0JCURPQ0ssCistCQlGVUxMU0NSRUVO LAorLQkJRk9DVVNFRF9XSU5ET1csCistCQlPVkVSUklERV9SRURJUkVDVCwKKy0JCUxBU1QKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4 ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIFRhYkxpc3QgeworLQkJTk9STUFMLAorLQkJRE9DS1MsCistCQlH Uk9VUCwKKy0JCU5PUk1BTF9BTEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJt ZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiU2hvd1R5 cGUgeworLQkJSUNPTiwKKy0JCUlOU1RBTlRMWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9p ZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlw dWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0JCUNPTlRST0xf TUFTSywKKy0JCUFMVF9NQVNLLAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFTSywKKy0JCUhZ UEVSX01BU0ssCistCQlNT0QyX01BU0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0X01BU0ssCist CQlNT0Q1X01BU0sKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5k b3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJt ZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5k b3dDbGllbnRUeXBlIHsKKy0JCVdBWUxBTkQsCistCQlYMTEKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVO VV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBXaW5kb3dNZW51VHlwZSB7CistCQlXTSwKKy0JCUFQUAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJ TkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGVudW0gV2luZG93VHlwZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9DSywK Ky0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAorLQkJ VVRJTElUWSwKKy0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCistCQlQT1BVUF9N RU5VLAorLQkJVE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5ELAor LQkJT1ZFUlJJREVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRl bGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRv ciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSA1LjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlI YW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIE1ldGEuU2NyZWVuIHNjcmVlbiwgTWV0 YS5XaW5kb3c/IHdpbmRvdywgQ2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGlu ZyBiaW5kaW5nKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdl ZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvd2luZG93LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdh dGUgYm9vbCBXaW5kb3dGb3JlYWNoRnVuYyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxU X0lDT05fTkFNRSIpXQorLQlwdWJsaWMgY29uc3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X0lDT05fSEVJR0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9X SURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIp XQorLQlwdWJsaWMgY29uc3QgaW50IE1BSk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQor LQlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQor LQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIild CistCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0K Ky0JcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIp XQorLQlwdWJsaWMgY29uc3QgaW50IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZP UkVfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfQkVGT1JFX1JFRFJBVzsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVU QV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9Q UkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJ T1JJVFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFU0laRSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBS SU9SSVRZX1JFU0laRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0JcHVibGljIGNv bnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJf SUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMg Ym9vbCBhY3RpdmF0ZV9zZXNzaW9uICgpOworLSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2luaXQgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9w dGlvbkNvbnRleHQgZ2V0X29wdGlvbl9jb250ZXh0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNl X2N1cnJlbnRfd20gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19yZXN0YXJ0 ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHF1aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVn aXN0ZXJfd2l0aF9zZXNzaW9uICgpOworLSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmcgbWVzc2Fn ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJs aWMgc3RhdGljIGludCBydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdz IChzdHJpbmcgd21fa2V5YmluZGluZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcg d21fbmFtZSk7CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhIHZh cGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggMjllNTk3N2QuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQor KysrIC9kZXYvbnVsbAorQEAgLTEsNiArMCwwIEBACistbmFtZXNwYWNlIE1ldGEgeworLQlwdWJs aWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNwbGF5Q29uZmln U2tlbGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSB7CistCQkvKiBub3QgZXhwb3J0ZWQgKi8KKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkICgpOworLQl9CistfQorZGlmZiAt LWdpdCB2YXBpL2xpYm11dHRlci0zLmRlcHMgdmFwaS9saWJtdXR0ZXItMy5kZXBzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDFmM2M5MDc5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGli bXV0dGVyLTMuZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOSArMCwwIEBACistY2Fpcm8KKy1n c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCistZ2RrLTMuMAorLWdkay1waXhidWYtMi4wCistZ3Rr Ky0zLjAKKy14MTEKKy14Zml4ZXMtNC4wCistY2x1dHRlci0xLjAKKy1jb2dsLTEuMAorZGlmZiAt LWdpdCB2YXBpL2xpYm11dHRlci00LmRlcHMgdmFwaS9saWJtdXR0ZXItNC5kZXBzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDM2N2MzNWI5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGli bXV0dGVyLTQuZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOCArMCwwIEBACistZ2RrLTMuMAor LWdkay1waXhidWYtMi4wCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWd0aystMy4wCist bXV0dGVyLWNsdXR0ZXItNAorLW11dHRlci1jb2dsLTQKKy14MTEKKy14Zml4ZXMtNC4wCitkaWZm IC0tZ2l0IHZhcGkvbGlibXV0dGVyLTQudmFwaSB2YXBpL2xpYm11dHRlci00LnZhcGkKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggZTBkMzU2YTAuLjAwMDAwMDAwCistLS0gdmFwaS9s aWJtdXR0ZXItNC52YXBpCisrKysgL2Rldi9udWxsCitAQCAtMSwxNDI1ICswLDAgQEAKKy0vKiBs aWJtdXR0ZXItNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLwor LQorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2ly X3ZlcnNpb24gPSAiNCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorLW5hbWVzcGFj ZSBNZXRhIHsKKy0JbmFtZXNwYWNlIENvbXBvc2l0b3IgeworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlzYWJs ZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJs ZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFt ZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNw bGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIGZvY3VzX3N0YWdlX3dpbmRvdyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIHVpbnQz MiB0aW1lc3RhbXApOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNw bGF5IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmVlZGJh Y2tfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJt ZXRhX2dldF9zdGFnZV9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X3N0YWdlX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9nZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RvcF93aW5kb3dfZ3JvdXBf Zm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93 aW5kb3dfYWN0b3JzIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0 ZXIuQWN0b3I+IGdldF93aW5kb3dfYWN0b3JzIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9nZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVn aW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0 YS5EaXNwbGF5IGRpc3BsYXksIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworLQl9CistCW5hbWVz cGFjZSBQcmVmcyB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19iZWxsX2lzX2F1ZGlibGUiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBwcmVmc19iZWxsX2lzX2F1ZGlibGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19jaGFuZ2Vfd29ya3Nw YWNlX25hbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19jaGFuZ2Vfd29ya3NwYWNl X25hbWUgKGludCBpLCBzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX2RvdWJsZV9j bGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlv biBwcmVmc19nZXRfYWN0aW9uX2RvdWJsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNr dG9wLlRpdGxlYmFyQWN0aW9uIHByZWZzX2dldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFy ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciIpXQorLQkJcHVi bGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX3JpZ2h0 X2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X2F1dG9fbWF4aW1pemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBw cmVmc19nZXRfYXV0b19tYXhpbWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdXRvX3JhaXNlIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F1dG9fcmFpc2UgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19n ZXRfYXV0b19yYWlzZV9kZWxheSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2F1 dG9fcmFpc2VfZGVsYXkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYnV0dG9uX2xheW91dCIpXQorLQkJcHVi bGljIHN0YXRpYyBNZXRhLkJ1dHRvbkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF9jZW50ZXJfbmV3X3dpbmRvd3MiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBwcmVmc19nZXRfY2VudGVyX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NvbXBvc2l0 aW5nX21hbmFnZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY29tcG9zaXRp bmdfbWFuYWdlciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3Jfc2l6ZSIpXQorLQkJcHVibGljIHN0 YXRpYyBpbnQgcHJlZnNfZ2V0X2N1cnNvcl9zaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2N1cnNvcl90 aGVtZSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBwcmVmc19nZXRfY3Vyc29y X3RoZW1lICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9kcmFnX3RocmVzaG9sZCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2Ry YWdfdGhyZXNob2xkICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2RyYWdnYWJsZV9ib3JkZXJfd2lkdGgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X2R5bmFtaWNfd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF9keW5hbWljX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZWRnZV90 aWxpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZWRnZV90aWxpbmcgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHByZWZzX2dldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfZ2V0X2ZvY3VzX21vZGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9j dXNNb2RlIHByZWZzX2dldF9mb2N1c19tb2RlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX25ld193 aW5kb3dzIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2luZG93cyBwcmVm c19nZXRfZm9jdXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVl biIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9mb3JjZV9mdWxsc2NyZWVuICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBwcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9t ZV9hbmltYXRpb25zIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2Fu aW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24iKV0KKy0JCXB1Ymxp YyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIHByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlv biAoc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51IildCistCQlw dWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbW91c2VfYnV0dG9uX21lbnUgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfbW91c2VfYnV0dG9uX21vZHMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFs TW9kaWZpZXIgcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21v dXNlX2J1dHRvbl9yZXNpemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9tb3Vz ZV9idXR0b25fcmVzaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X251bV93b3Jrc3BhY2VzIildCistCQlw dWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19n ZXRfcmFpc2Vfb25fY2xpY2siKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfcmFp c2Vfb25fY2xpY2sgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51ICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X3RpdGxlYmFyX2ZvbnQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBQYW5nby5Gb250RGVzY3JpcHRpb24gcHJlZnNfZ2V0X3RpdGxlYmFyX2ZvbnQgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19nZXRfdmlzdWFsX2JlbGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRf dmlzdWFsX2JlbGwgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfdmlzdWFsX2JlbGxfdHlwZSIpXQorLQkJcHVi bGljIHN0YXRpYyBHRGVza3RvcC5WaXN1YWxCZWxsVHlwZSBwcmVmc19nZXRfdmlzdWFsX2JlbGxf dHlwZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF93b3Jrc3BhY2VfbmFtZSIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIHN0cmluZyBwcmVmc19nZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF93b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF93b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2lu aXQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19pbml0ICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0 X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfZm9y Y2VfZnVsbHNjcmVlbiAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9udW1fd29ya3NwYWNl cyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9udW1fd29ya3NwYWNlcyAoaW50 IG5fd29ya3NwYWNlcyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IChi b29sIHdoZXRoZXIpOworLQl9CistCW5hbWVzcGFjZSBVdGlsIHsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfYWRkX3ZlcmJvc2VfdG9w aWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1 Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24iKV0KKy0J CXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1 aW50IGtleWJpbmRpbmdfYWN0aW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ191dGY4X3N0cm5kdXAiKV0KKy0JCXB1YmxpYyBz dGF0aWMgc3RyaW5nIGdfdXRmOF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dl dF9sb2NhbGVfZGlyZWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuTG9jYWxlRGlyZWN0 aW9uIGdldF9sb2NhbGVfZGlyZWN0aW9uICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9ncmF2aXR5X3RvX3N0cmluZyIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBncmF2aXR5X3RvX3N0cmluZyAoaW50IGdyYXZp dHkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV9pc19kZWJ1Z2dpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19kZWJ1Z2dp bmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFt ZSA9ICJtZXRhX2lzX3N5bmNpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19zeW5jaW5n ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV9pc192ZXJib3NlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdmVyYm9zZSAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0g Im1ldGFfaXNfd2F5bGFuZF9jb21wb3NpdG9yIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNf d2F5bGFuZF9jb21wb3NpdG9yICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9sYXRlcl9hZGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dWludCBsYXRlcl9hZGQgKE1ldGEuTGF0ZXJUeXBlIHdoZW4sIG93bmVkIEdMaWIuU291cmNlRnVu YyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNu YW1lID0gIm1ldGFfbGF0ZXJfcmVtb3ZlIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgbGF0ZXJf cmVtb3ZlICh1aW50IGxhdGVyX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcG9wX25vX21zZ19wcmVmaXgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBwb3Bfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcHVzaF9ub19tc2dfcHJlZml4 IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9ub19tc2dfcHJlZml4ICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9yZWN0 IildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuUmVjdGFuZ2xlPyByZWN0IChpbnQgeCwgaW50IHks IGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3JlbW92ZV92ZXJib3NlX3RvcGljIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0 b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFt ZSA9ICJtZXRhX3Nob3dfZGlhbG9nIildCistCQlwdWJsaWMgc3RhdGljIEdMaWIuUGlkIHNob3df ZGlhbG9nIChzdHJpbmcgdHlwZSwgc3RyaW5nIG1lc3NhZ2UsIHN0cmluZyB0aW1lb3V0LCBzdHJp bmcgZGlzcGxheSwgc3RyaW5nIG9rX3RleHQsIHN0cmluZyBjYW5jZWxfdGV4dCwgc3RyaW5nIGlj b25fbmFtZSwgaW50IHRyYW5zaWVudF9mb3IsIEdMaWIuU0xpc3Q8dm9pZCo+IGNvbHVtbnMsIEdM aWIuU0xpc3Q8dm9pZCo+IGVudHJpZXMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFsIildCistCQlw dWJsaWMgc3RhdGljIGludCB1bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAi bWV0YV91bnNpZ25lZF9sb25nX2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCB1bnNpZ25l ZF9sb25nX2hhc2ggKHZvaWQqIHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3JfdHJhcF9wb3AiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCB4MTFfZXJyb3JfdHJhcF9wb3AgKE1ldGEuWDExRGlzcGxheSB4MTFfZGlz cGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFt ZSA9ICJtZXRhX3gxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiIpXQorLQkJcHVibGljIHN0 YXRpYyBpbnQgeDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIChNZXRhLlgxMURpc3BsYXkg eDExX2Rpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3JfdHJhcF9wdXNoIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgeDExX2Vycm9yX3RyYXBfcHVzaCAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5KTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIs IHR5cGVfaWQgPSAibWV0YV9iYWNrZW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3QsIEdMaWIuSW5pdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIs IGNuYW1lID0gIm1ldGFfZ2V0X2JhY2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBN ZXRhLkJhY2tlbmQgZ2V0X2JhY2tlbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRuZCBn ZXRfZG5kICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5SZW1vdGVBY2Nlc3NDb250cm9sbGVy IGdldF9yZW1vdGVfYWNjZXNzX2NvbnRyb2xsZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3Vw ICh1aW50IGlkeCk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywg c3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcgb3B0aW9ucyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbnVt bG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBf Y2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2No YW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9j aGFuZ2VkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2Vk X2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kIDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEJh Y2tncm91bmQgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZWZyZXNoX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUx LCBHTGliLkZpbGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91 bmRTdHlsZSBzdHlsZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3Ig Y29sb3IpOworLQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3Rv cC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChH RGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5Db2xv ciBjb2xvciwgQ2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29u c3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIsIHR5 cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLkRpc3BsYXkgZGlz cGxheSwgaW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEu QmFja2dyb3VuZCBiYWNrZ3JvdW5kKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoYm9v bCBlbmFibGVkLCBpbnQgaGVpZ2h0LCBkb3VibGUgdG9uZV9zdGFydCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfbW9uaXRvciAoaW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRl IChib29sIGVuYWJsZWQsIGRvdWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5k IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRv dWJsZSBicmlnaHRuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGJvb2wgZ3JhZGllbnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgaW50IGdyYWRpZW50X2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgZ3JhZGllbnRfbWF4X2RhcmtuZXNzIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBt ZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsg Z2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3Vu ZEdyb3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBCYWNrZ3JvdW5kSW1hZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX2xvYWRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgQmFja2dyb3VuZEltYWdlQ2FjaGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0 YS5CYWNrZ3JvdW5kSW1hZ2VDYWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJh Y2tncm91bmRJbWFnZSBsb2FkIChHTGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJn ZSAoR0xpYi5GaWxlIGZpbGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFycmllciA6IEdMaWIuT2JqZWN0IHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBC YXJyaWVyICgpOworLQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2FjdGl2ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHJlbGVhc2UgKE1ldGEuQmFycmllckV2ZW50IGV2 ZW50KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFycmllckRpcmVj dGlvbiBkaXJlY3Rpb25zIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4MSB7IGdldDsgY29uc3Ry dWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDIgeyBnZXQ7IGNv bnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkxIHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MiB7 IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaGl0IChNZXRhLkJhcnJp ZXJFdmVudCBldmVudCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGVmdCAoTWV0YS5CYXJyaWVy RXZlbnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9 ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9ldmVudF9nZXRfdHlwZSAo KSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXJFdmVudCB7CistCQlwdWJs aWMgaW50IGR0OworLQkJcHVibGljIGRvdWJsZSBkeDsKKy0JCXB1YmxpYyBkb3VibGUgZHk7Cist CQlwdWJsaWMgaW50IGV2ZW50X2lkOworLQkJcHVibGljIGJvb2wgZ3JhYmJlZDsKKy0JCXB1Ymxp YyBib29sIHJlbGVhc2VkOworLQkJcHVibGljIHVpbnQzMiB0aW1lOworLQkJcHVibGljIGRvdWJs ZSB4OworLQkJcHVibGljIGRvdWJsZSB5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vy c29yX3RyYWNrZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNrZXIg OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgQ3Vyc29yVHJhY2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBNZXRhLkN1cnNvclRyYWNrZXIgZ2V0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlz cGxheSk7CistCQlwdWJsaWMgdm9pZCBnZXRfaG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7Cist CQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlciAoaW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVy VHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgp OworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBjdXJzb3JfbW92ZWQgKGZsb2F0IG9iamVjdCwgZmxvYXQgcDApOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9k aXNwbGF5X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmpl Y3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIERpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBhZGRfaWdub3JlZF9jcm9zc2luZ19z ZXJpYWwgKHVsb25nIHNlcmlhbCk7CistCQlwdWJsaWMgdWludCBhZGRfa2V5YmluZGluZyAoc3Ry aW5nIG5hbWUsIEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZs YWdzLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jIGhhbmRsZXIpOworLQkJcHVibGljIGJvb2wg YmVnaW5fZ3JhYl9vcCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBw b2ludGVyX2FscmVhZHlfZ3JhYmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVs b25nIG1vZG1hc2ssIHVpbnQzMiB0aW1lc3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOwor LQkJcHVibGljIHZvaWQgY2xlYXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsb3Nl ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93ICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMg dWludDMyIGdldF9jdXJyZW50X3RpbWUgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50 X3RpbWVfcm91bmR0cmlwICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X2Zv Y3VzX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBNZXRhLkdyYWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0J CXB1YmxpYyB1aW50IGdldF9rZXliaW5kaW5nX2FjdGlvbiAodWludCBrZXljb2RlLCB1bG9uZyBt YXNrKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2xhc3RfdXNlcl90aW1lICgpOworLQkJcHVibGlj IE1ldGEuUmVjdGFuZ2xlIGdldF9tb25pdG9yX2dlb21ldHJ5IChpbnQgbW9uaXRvcik7CistCQlw dWJsaWMgYm9vbCBnZXRfbW9uaXRvcl9pbl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CistCQlw dWJsaWMgaW50IGdldF9tb25pdG9yX2luZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0 KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9t b25pdG9yLCBNZXRhLkRpc3BsYXlEaXJlY3Rpb24gZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25f bW9uaXRvcnMgKCk7CistCQlwdWJsaWMgc3RyaW5nIGdldF9wYWRfYWN0aW9uX2xhYmVsIChDbHV0 dGVyLklucHV0RGV2aWNlIHBhZCwgTWV0YS5QYWRBY3Rpb25UeXBlIGFjdGlvbl90eXBlLCB1aW50 IGFjdGlvbl9udW1iZXIpOworLQkJcHVibGljIGludCBnZXRfcHJpbWFyeV9tb25pdG9yICgpOwor LQkJcHVibGljIHZvaWQgZ2V0X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU291bmRQbGF5ZXIgZ2V0X3NvdW5kX3BsYXllciAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJM aXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0 PHdlYWsgTWV0YS5XaW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEu V29ya3NwYWNlPyB3b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0 X3RhYl9uZXh0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBN ZXRhLldpbmRvdz8gd2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1l dGEuV29ya3NwYWNlTWFuYWdlciBnZXRfd29ya3NwYWNlX21hbmFnZXIgKCk7CistCQlwdWJsaWMg dWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEuS2V5QmluZGlu Z0ZsYWdzIGZsYWdzKTsKKy0JCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVl bmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKy0JCXB1YmxpYyBib29sIHJl bW92ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSk7CistCQlwdWJsaWMgdm9pZCByZXF1ZXN0X3Bh ZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25fbW9kZSk7CistCQlw dWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworLQkJcHVibGljIEdM aWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGli LlNMaXN0PE1ldGEuV2luZG93PiB3aW5kb3dzKTsKKy0JCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4 dGVuZGVkX2JhcnJpZXJzICgpOworLQkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50 IGFjdGlvbl9pZCk7CistCQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRp bWUxLCB1aW50MzIgdGltZTIpOworLQkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7 IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWlu dCBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNv cl91cGRhdGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdsX3ZpZGVvX21lbW9yeV9wdXJn ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9iZWdpbiAoTWV0YS5EaXNwbGF5 IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBncmFiX29wX2VuZCAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAs IE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBpbl9mdWxsc2NyZWVuX2No YW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJzX2FjY2VsZXJhdG9yX2Fj dGl2YXRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5X2tleSAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBwYWRfbW9kZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2Jq ZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXN0YWNrZWQg KCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgcmVzdGFydCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBzaG93X29zZCAoaW50IG9iamVjdCwgc3RyaW5nIHAwLCBzdHJpbmcgcDEpOworLQkJcHVi bGljIHNpZ25hbCB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IHNob3dfcGFkX29zZCAoQ2x1dHRlci5J bnB1dERldmljZSBwYWQsIEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MsIHN0cmluZyBsYXlvdXRfcGF0 aCwgYm9vbCBlZGl0aW9uX21vZGUsIGludCBtb25pdG9yX2lkeCk7CistCQlwdWJsaWMgc2lnbmFs IGJvb2wgc2hvd19yZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwg aW50IHAxLCBpbnQgcDIpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNz YWdlIChzdHJpbmc/IG1lc3NhZ2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVz a3RvcF9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChN ZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRz X2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2xlZnRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5X aW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19tYXJrZWRfdXJnZW50IChN ZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFu Z2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfb3BlbmVkICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0 eXBlX2lkID0gIm1ldGFfZG5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEbmQgOiBH TGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwcm90ZWN0ZWQgRG5kICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9lbnRlciAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfbGVhdmUgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgZG5kX3Bvc2l0aW9uX2NoYW5nZSAoaW50IG9iamVjdCwgaW50IHAwKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRnJh bWUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfaWRsZV9tb25pdG9yX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBJZGxlTW9uaXRvciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBJZGxlTW9u aXRvciAoKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxf bXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVi bGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0 Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9u aXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25p dG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyBpbnQ2NCBnZXRf aWRsZXRpbWUgKCk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3Ry dWN0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9m dW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0 X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsKKy0J CXB1YmxpYyB1aW50IGdldF9tYXNrICgpOworLQkJcHVibGljIE1ldGEuVmlydHVhbE1vZGlmaWVy IGdldF9tb2RpZmllcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19idWlsdGluICgpOworLQkJcHVibGljIGJvb2wgaXNfcmV2ZXJz ZWQgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9o YW5kbGVyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVyIChzdHJp bmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IHR5cGVfaWQgPSAibWV0YV9sYXVuY2hfY29udGV4dF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgTGF1bmNoQ29udGV4dCA6IEdMaWIuQXBwTGF1bmNoQ29udGV4dCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgTGF1bmNoQ29u dGV4dCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF90aW1lc3RhbXAgKHVpbnQzMiB0aW1lc3RhbXAp OworLQkJcHVibGljIHZvaWQgc2V0X3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNl KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5 IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIHVpbnQgdGltZXN0YW1wIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSB7IG93bmVkIGdldDsgc2V0OyB9Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9tb25pdG9yX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE1vbml0b3JNYW5h Z2VyICgpOworLQkJcHVibGljIGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgTWV0YS5Nb25pdG9yTWFuYWdlciBAZ2V0ICgpOworLQkJcHVibGljIHN0 YXRpYyBpbnQgZ2V0X2Rpc3BsYXlfY29uZmlndXJhdGlvbl90aW1lb3V0ICgpOworLQkJcHVibGlj IGJvb2wgZ2V0X2lzX2J1aWx0aW5fZGlzcGxheV9vbiAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21v bml0b3JfZm9yX2Nvbm5lY3RvciAoc3RyaW5nIGNvbm5lY3Rvcik7CistCQlwdWJsaWMgTWV0YS5N b25pdG9yU3dpdGNoQ29uZmlnVHlwZSBnZXRfc3dpdGNoX2NvbmZpZyAoKTsKKy0JCXB1YmxpYyB2 b2lkIHN3aXRjaF9jb25maWcgKE1ldGEuTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgY29uZmlnX3R5 cGUpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZW5kIGJhY2tl bmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZp cm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hh bmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkX2ludGVybmFs ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHBvd2VyX3NhdmVfbW9kZV9jaGFuZ2VkICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCB0 eXBlX2lkID0gIm1ldGFfcGx1Z2luX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBj bGFzcyBQbHVnaW4gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGx1Z2luICgpOworLQkJcHVibGljIGJvb2wg YmVnaW5fbW9kYWwgKE1ldGEuTW9kYWxPcHRpb25zIG9wdGlvbnMsIHVpbnQzMiB0aW1lc3RhbXAp OworLQkJcHVibGljIHZvaWQgY29tcGxldGVfZGlzcGxheV9jaGFuZ2UgKGJvb2wgb2spOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5n ZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3kgKE1l dGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgZGVzdHJveV9jb21wbGV0ZWQg KE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgZW5kX21vZGFsICh1aW50 MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxh eSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gZ2V0X2luZm8gKCk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX3RpbGVfcHJldmlldyAo KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWJpbmRpbmdfZmls dGVyIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2UgKCk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlw ZSAoR0xpYi5UeXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtYXBfY29t cGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIG1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1 YmxpYyB2b2lkIG1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/ IHBsdWdpbl9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg c2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGls ZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51IChNZXRhLldpbmRvdyB3aW5kb3csIE1l dGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5KTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3QgKE1ldGEuV2lu ZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3RhbmdsZSByZWN0 KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNpemVfY2hhbmdlIChN ZXRhLldpbmRvd0FjdG9yIGFjdG9yLCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRh LlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0 KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVfY2hhbmdlX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3Rv ciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2No YW5nZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgc3RhcnQgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChpbnQgZnJvbSwgaW50IHRvLCBNZXRhLk1vdGlvbkRp cmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIHZvaWQgc3dpdGNoX3dvcmtzcGFjZV9jb21w bGV0ZWQgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmlt aXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVf Y29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCBib29sIHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCB0eXBlX2lkID0gIm1ldGFfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NDb250cm9sbGVyIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbmV3 X2hhbmRsZSAoTWV0YS5SZW1vdGVBY2Nlc3NIYW5kbGUgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfaGFuZGxlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBSZW1vdGVBY2Nlc3NIYW5kbGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNz SGFuZGxlICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzdG9wICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHN0b3BwZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFNldHRpbmdzIHsKKy0JCXB1YmxpYyBpbnQgZ2V0 X2ZvbnRfZHBpICgpOworLQkJcHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1l dGFfc2hhZG93X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5y ZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworLQkJcHVibGljIHZv aWQgZ2V0X2JvdW5kcyAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lk dGgsIGludCB3aW5kb3dfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1 YmxpYyB2b2lkIHBhaW50IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyLCBpbnQgd2luZG93 X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVp bnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKy0J CXB1YmxpYyBNZXRhLlNoYWRvdyBAcmVmICgpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZmFjdG9yeV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgU2hhZG93RmFjdG9yeSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBTaGFkb3dGYWN0b3J5 ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuU2hhZG93RmFjdG9yeSBnZXRfZGVm YXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvd1BhcmFtcyBnZXRfcGFyYW1zIChzdHJpbmcg Y2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBnZXRfc2hh ZG93IChNZXRhLldpbmRvd1NoYXBlIHNoYXBlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHN0cmlu ZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIHZvaWQgc2V0X3BhcmFtcyAo c3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCwgTWV0YS5TaGFkb3dQYXJhbXMgQHBhcmFt cyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9p ZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBT aGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFu aW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNoYXBl ZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJl Y3RhbmdsZUludCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4 dHVyZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVf bWlwbWFwcyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUg bWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBD YWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAo aW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3Bs YXllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGliLk9i amVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgU291bmRQbGF5ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAo R0xpYi5GaWxlIGZpbGUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2Fu Y2VsbGFibGUgPSBudWxsKTsKKy0JCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3RyaW5n IG5hbWUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUg PSBudWxsKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuU3RhZ2UsIEF0ay5JbXBsZW1lbnRvciwg Q2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBTdGFnZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mb2N1c2VkIChNZXRhLkRp c3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWN0b3JzX3BhaW50ZWQgKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX25vdGlmaWNhdGlvbl9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU3RhcnR1cE5vdGlmaWNhdGlvbiA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBTdGFydHVwTm90aWZpY2F0aW9uICgpOworLQkJcHVibGljIE1ldGEuTGF1bmNoQ29udGV4 dCBjcmVhdGVfbGF1bmNoZXIgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBN ZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9 ICJtZXRhX3N0YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFN0 YXJ0dXBTZXF1ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7CistCQlw dWJsaWMgdm9pZCBjb21wbGV0ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYXBw bGljYXRpb25faWQgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfY29tcGxldGVkICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9pY29uX25hbWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOwor LQkJcHVibGljIHVpbnQ2NCBnZXRfdGltZXN0YW1wICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF93bWNsYXNzICgpOworLQkJcHVibGljIGludCBnZXRfd29ya3NwYWNlICgpOworLQkJ cHVibGljIHN0cmluZyBhcHBsaWNhdGlvbl9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJs aWMgc3RyaW5nIGljb25fbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5n IGlkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgY29u c3RydWN0OyB9CistCQlwdWJsaWMgdWludDY0IHRpbWVzdGFtcCB7IGdldDsgY29uc3RydWN0OyB9 CistCQlwdWJsaWMgc3RyaW5nIHdtY2xhc3MgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGlj IGludCB3b3Jrc3BhY2UgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaGVtZSB7CistCQlwdWJs aWMgdm9pZCBmcmVlICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90 eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgV2luZG93ICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBjdXJyZW50X3Rp bWUpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVpbnQzMiBjdXJy ZW50X3RpbWUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgYm9vbCBhbGxv d3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7CistCQlwdWJsaWMg dm9pZCBiZWdpbl9ncmFiX29wIChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9hY3Rpb24sIHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgpOworLQkJcHVibGlj IGJvb2wgY2FuX21heGltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX21pbmltaXplICgpOwor LQkJcHVibGljIGJvb2wgY2FuX3NoYWRlICgpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtz cGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93 b3Jrc3BhY2VfYnlfaW5kZXggKGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBlbmQpOworLQkJcHVi bGljIHZvaWQgY2hlY2tfYWxpdmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGNsaWVudF9yZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGNsaWVu dF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9p ZCBAZGVsZXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2lu ZG93IGZpbmRfcm9vdF9hbmNlc3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1ldGEuV2luZG93 Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5zaWVudCAoTWV0 YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFt ZV9yZWN0X3RvX2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKy0JCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfYnVmZmVyX3JlY3QgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2NsaWVudF9tYWNoaW5lICgpOworLQkJcHVibGljIE1ldGEuV2luZG93Q2xp ZW50VHlwZSBnZXRfY2xpZW50X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVj dCBnZXRfY29tcG9zaXRvcl9wcml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9kZXNjcmlwdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlz cGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENhaXJvLlJlZ2lvbj8gZ2V0X2ZyYW1lX2JvdW5k cyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfZnJhbWVfcmVjdCAoKTsKKy0JCXB1 YmxpYyBNZXRhLkZyYW1lVHlwZSBnZXRfZnJhbWVfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X2d0a190aGVtZV92YXJpYW50ICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9ndGtfdW5pcXVlX2J1c19uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9ndGtfd2luZG93X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2lj b25fZ2VvbWV0cnkgKG91dCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyB1aW50NjQg Z2V0X2lkICgpOworLQkJcHVibGljIE1ldGEuU3RhY2tMYXllciBnZXRfbGF5ZXIgKCk7CistCQlw dWJsaWMgTWV0YS5NYXhpbWl6ZUZsYWdzIGdldF9tYXhpbWl6ZWQgKCk7CistCQlwdWJsaWMgaW50 IGdldF9tb25pdG9yICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9tdXR0ZXJfaGlu dHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9waWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3JvbGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NhbmRib3hlZF9h cHBfaWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIHVub3duZWQg TWV0YS5XaW5kb3c/IGdldF90aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF90aXRsZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFuc2ll bnRfZm9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVibGlj IE1ldGEuV2luZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9j bGFzc19pbnN0YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVh X2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVh X2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19h cmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94 d2luZG93ICgpOworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgYm9vbCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsKKy0J CXB1YmxpYyBib29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX2FuY2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsKKy0J CXB1YmxpYyBib29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Ns aWVudF9kZWNvcmF0ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19mdWxsc2NyZWVuICgpOworLQkJ cHVibGljIGJvb2wgaXNfaGlkZGVuICgpOworLQkJcHVibGljIGJvb2wgaXNfbW9uaXRvcl9zaXpl ZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGlj IGJvb2wgaXNfb25fcHJpbWFyeV9tb25pdG9yICgpOworLQkJcHVibGljIGJvb2wgaXNfb3ZlcnJp ZGVfcmVkaXJlY3QgKCk7CistCQlwdWJsaWMgYm9vbCBpc19yZW1vdGUgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19zY3JlZW5fc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zaGFkZWQgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19za2lwX3Rhc2tiYXIgKCk7CistCQlwdWJsaWMgdm9pZCBraWxsICgp OworLQkJcHVibGljIGJvb2wgbG9jYXRlZF9vbl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdv cmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBsb3dlciAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2Vf YWJvdmUgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMg dm9pZCBtYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGlj IHZvaWQgbWluaW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX2ZyYW1lIChib29sIHVzZXJf b3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncpOworLQkJcHVibGljIHZvaWQgbW92ZV9y ZXNpemVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywg aW50IHcsIGludCBoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0 b3IpOworLQkJcHVibGljIHZvaWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRf YnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBh c3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUg KEdMaWIuT2JqZWN0IHByaXYpOworLQkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9u ICgpOworLQkJcHVibGljIHZvaWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyBy ZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNoYWRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyB2b2lkIHNob3ZlX3RpdGxlYmFyX29uc2NyZWVuICgpOworLQkJcHVibGljIGJvb2wgc2hvd2lu Z19vbl9pdHNfd29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgc2h1dGRvd25fZ3JvdXAgKCk7 CistCQlwdWJsaWMgdm9pZCBzdGljayAoKTsKKy0JCXB1YmxpYyBib29sIHRpdGxlYmFyX2lzX29u c2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5tYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZv aWQgdW5tYWtlX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1heGltaXplIChNZXRh Lk1heGltaXplRmxhZ3MgZGlyZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplICgp OworLQkJcHVibGljIHZvaWQgdW5zZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMg dm9pZCB1bnNoYWRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVuc3RpY2sg KCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFib3ZlIHsgZ2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFwcGVhcnNfZm9jdXNlZCB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkZWNvcmF0ZWQg eyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVtYW5kc19h dHRlbnRpb24geyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wg ZnVsbHNjcmVlbiB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwX21lbnVfb2JqZWN0 X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX2lkIHsgZ2V0 OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCB7IGdldDsg fQorLQkJcHVibGljIHN0cmluZyBndGtfbWVudWJhcl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJ cHVibGljIHN0cmluZyBndGtfdW5pcXVlX2J1c19uYW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgc3Ry aW5nIGd0a193aW5kb3dfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIHZvaWQqIGljb24geyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGJvb2wgbWF4aW1pemVkX2hvcml6b250YWxseSB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtYXhpbWl6ZWRfdmVydGljYWxseSB7IGdldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdm9pZCogbWluaV9pY29uIHsgZ2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdl dDsgfQorLQkJcHVibGljIHN0cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgdXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3Rp bWUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzdHJpbmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBwb3NpdGlvbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHJhaXNlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93biAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBzaXplX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2VkICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0 eXBlX2lkID0gIm1ldGFfd2luZG93X2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0 cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwg Q2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBXaW5kb3dBY3RvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9t ZXRhX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1 cmUgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93ICgpOworLQkJcHVibGljIGJv b2wgaXNfZGVzdHJveWVkICgpOworLQkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOwor LQkJcHVibGljIE1ldGEuV2luZG93IG1ldGFfd2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25l ZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFk b3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBl ZmZlY3RzX2NvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgV2luZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgV2luZG93R3JvdXAgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHJlZl9mdW5jdGlvbiA9ICJt ZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3NoYXBlX2dldF90 eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfdW5yZWYiKV0KKy0J W0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93U2hhcGUgKENhaXJv LlJlZ2lvbiByZWdpb24pOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuV2luZG93U2hhcGUg c2hhcGVfYik7CistCQlwdWJsaWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJvcmRlcl90b3AsIGlu dCBib3JkZXJfcmlnaHQsIGludCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xlZnQpOworLQkJ cHVibGljIHVpbnQgaGFzaCAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1NoYXBlIEByZWYgKCk7 CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93aWR0aCwgaW50 IGNlbnRlcl9oZWlnaHQpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5 cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdv cmtzcGFjZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBh Y3RpdmF0ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRo X2ZvY3VzIChNZXRhLldpbmRvdyBmb2N1c190aGlzLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuV29ya3NwYWNlIGdldF9uZWlnaGJvciAoTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGly ZWN0aW9uKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25p dG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25p dG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGluZGV4ICgpOworLQkJcHVi bGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBsaXN0X3dpbmRvd3MgKCk7CistCQlwdWJs aWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD8+IHN0cnV0 cyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCB3b3Jrc3BhY2VfaW5k ZXggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfYWRkZWQgKE1ldGEuV2lu ZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X3JlbW92ZWQgKE1ldGEu V2luZG93IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfbWFu YWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV29ya3NwYWNlTWFuYWdlciA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBXb3Jrc3BhY2VNYW5hZ2VyICgpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5Xb3Jrc3BhY2UgYXBwZW5kX25ld193b3Jrc3BhY2UgKGJvb2wgYWN0aXZhdGUsIHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X2FjdGl2ZV93 b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgaW50IGdldF9hY3RpdmVfd29ya3NwYWNlX2luZGV4ICgp OworLQkJcHVibGljIGludCBnZXRfbl93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIHVub3duZWQg TWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKy0JCXB1 YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBz dGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9j b2x1bW5zKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNl IHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgaW50IG5fd29ya3NwYWNl cyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjdGl2ZV93b3Jrc3BhY2VfY2hhbmdl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBvYmplY3QpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0KTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmplY3QsIGludCBwMCwg TWV0YS5Nb3Rpb25EaXJlY3Rpb24gcDEpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfeDEx X2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgWDExRGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19m b2N1c193aW5kb3cgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBnZXRfZGFtYWdl X2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJ cHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19z aGFwZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMg dm9pZCBzZXRfaW5wdXRfZm9jdXNfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9j dXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgeHdpbmRvd19pc19h X25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRvdyk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfY25h bWUgPSAiTWV0YUNsb3NlRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2Rp YWxvZ19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIENsb3NlRGlhbG9nIDogR0xp Yi5PYmplY3QgeworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgZm9jdXMgKCk7CistCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLQkJcHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0J CXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNob3cgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBhYnN0cmFjdCBNZXRhLldpbmRvdyB3aW5kb3cgeyBvd25lZCBnZXQ7IGNvbnN0cnVj dDsgfQorLQkJW0hhc0VtaXR0ZXJdCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1l dGEuQ2xvc2VEaWFsb2dSZXNwb25zZSByZXNwb25zZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfY25hbWUg PSAiTWV0YUluaGliaXRTaG9ydGN1dHNEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFf aW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX2dldF90eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZh Y2UgSW5oaWJpdFNob3J0Y3V0c0RpYWxvZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyBhYnN0 cmFjdCB2b2lkIGhpZGUgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93ICgpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYWJzdHJhY3QgTWV0YS5XaW5kb3cgd2luZG93 IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHNp Z25hbCB2b2lkIHJlc3BvbnNlIChNZXRhLkluaGliaXRTaG9ydGN1dHNEaWFsb2dSZXNwb25zZSBy ZXNwb25zZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3Ry dWN0IEJ1dHRvbkxheW91dCB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0J CXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworLQkJW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0 dG9uc19oYXNfc3BhY2VyWzRdOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCist CQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07CistCQlb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRf YnV0dG9uc19oYXNfc3BhY2VyWzRdOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JcHVibGljIHN0cnVjdCBFZGdlIHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0Owor LQkJcHVibGljIE1ldGEuU2lkZSBzaWRlX3R5cGU7CistCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBl ZGdlX3R5cGU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3Ry dWN0IEZyYW1lQm9yZGVycyB7CistCQlwdWJsaWMgR3RrLkJvcmRlciB2aXNpYmxlOworLQkJcHVi bGljIEd0ay5Cb3JkZXIgaW52aXNpYmxlOworLQkJcHVibGljIEd0ay5Cb3JkZXIgdG90YWw7Cist CQlwdWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBz dHJ1Y3QgUGx1Z2luSW5mbyB7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1Ymxp YyB3ZWFrIHN0cmluZyB2ZXJzaW9uOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGF1dGhvcjsKKy0J CXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNlbnNlOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2Ny aXB0aW9uOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVj dCBQbHVnaW5WZXJzaW9uIHsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7CistCQlwdWJs aWMgdWludCB2ZXJzaW9uX21pbm9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKy0J CXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVj dGFuZ2xlX2dldF90eXBlICgpIildCistCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKy0JCXB1 YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7CistCQlw dWJsaWMgaW50IGhlaWdodDsKKy0JCXB1YmxpYyBpbnQgYXJlYSAoKTsKKy0JCXB1YmxpYyBib29s IGNvbnRhaW5zX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIE1l dGEuUmVjdGFuZ2xlPyBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgY291bGRfZml0X3JlY3QgKE1l dGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuUmVj dGFuZ2xlIHNyYzIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyBib29sIGhv cml6X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIGludGVy c2VjdCAoTWV0YS5SZWN0YW5nbGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRlc3QpOworLQkJ cHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIE1l dGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9v bCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsKKy0JCXB1Ymxp YyBpbnQgcmFkaXVzOworLQkJcHVibGljIGludCB0b3BfZmFkZTsKKy0JCXB1YmxpYyBpbnQgeF9v ZmZzZXQ7CistCQlwdWJsaWMgaW50IHlfb2Zmc2V0OworLQkJcHVibGljIHVpbnQ4IG9wYWNpdHk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFN0cnV0 IHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBz aWRlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10K Ky0JcHVibGljIGVudW0gQmFycmllckRpcmVjdGlvbiB7CistCQlQT1NJVElWRV9YLAorLQkJUE9T SVRJVkVfWSwKKy0JCU5FR0FUSVZFX1gsCistCQlORUdBVElWRV9ZCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5j dGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBCdXR0b25GdW5jdGlvbiB7CistCQlN RU5VLAorLQkJTUlOSU1JWkUsCistCQlNQVhJTUlaRSwKKy0JCUNMT1NFLAorLQkJTEFTVAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQg PSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gQ2xvc2VEaWFsb2dSZXNwb25zZSB7CistCQlXQUlULAorLQkJRk9SQ0VfQ0xPU0UKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21w X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBDb21wRWZmZWN0IHsKKy0JCUNS RUFURSwKKy0JCVVOTUlOSU1JWkUsCistCQlERVNUUk9ZLAorLQkJTUlOSU1JWkUsCistCQlOT05F CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1 cnNvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBDdXJzb3IgeworLQkJTk9ORSwKKy0J CURFRkFVTFQsCistCQlOT1JUSF9SRVNJWkUsCistCQlTT1VUSF9SRVNJWkUsCistCQlXRVNUX1JF U0laRSwKKy0JCUVBU1RfUkVTSVpFLAorLQkJU0VfUkVTSVpFLAorLQkJU1dfUkVTSVpFLAorLQkJ TkVfUkVTSVpFLAorLQkJTldfUkVTSVpFLAorLQkJTU9WRV9PUl9SRVNJWkVfV0lORE9XLAorLQkJ QlVTWSwKKy0JCURORF9JTl9EUkFHLAorLQkJRE5EX01PVkUsCistCQlETkRfQ09QWSwKKy0JCURO RF9VTlNVUFBPUlRFRF9UQVJHRVQsCistCQlQT0lOVElOR19IQU5ELAorLQkJQ1JPU1NIQUlSLAor LQkJSUJFQU0sCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0 eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlw dWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsKKy0JCVZFUkJPU0UsCistCQlGT0NVUywKKy0JCVdPUktB UkVBLAorLQkJU1RBQ0ssCistCQlUSEVNRVMsCistCQlTTSwKKy0JCUVWRU5UUywKKy0JCVdJTkRP V19TVEFURSwKKy0JCVdJTkRPV19PUFMsCistCQlHRU9NRVRSWSwKKy0JCVBMQUNFTUVOVCwKKy0J CVBJTkcsCistCQlYSU5FUkFNQSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJU1lOQywKKy0JCUVSUk9S UywKKy0JCVNUQVJUVVAsCistCQlQUkVGUywKKy0JCUdST1VQUywKKy0JCVJFU0laSU5HLAorLQkJ U0hBUEVTLAorLQkJQ09NUE9TSVRPUiwKKy0JCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGly ZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGlyZWN0aW9u IHsKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVRPUCwKKy0JCUJPVFRPTSwKKy0JCVVQLAorLQkJ RE9XTiwKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGVudW0gRGlzcGxheUNvcm5lciB7CistCQlUT1BMRUZULAorLQkJVE9Q UklHSFQsCistCQlCT1RUT01MRUZULAorLQkJQk9UVE9NUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIERpc3BsYXlEaXJlY3Rpb24geworLQkJVVAsCist CQlET1dOLAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9F REdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGVudW0gRWRnZVR5cGUgeworLQkJV0lORE9XLAorLQkJTU9OSVRPUiwKKy0JCVNDUkVFTgorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRVhJVF8iLCB0eXBlX2lkID0gIm1ldGFfZXhpdF9jb2Rl X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEV4aXRDb2RlIHsKKy0JCVNVQ0NFU1MsCist CQlFUlJPUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJt ZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0g RnJhbWVGbGFncyB7CistCQlBTExPV1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExP V1NfTUlOSU1JWkUsCistCQlBTExPV1NfTUFYSU1JWkUsCistCQlBTExPV1NfVkVSVElDQUxfUkVT SVpFLAorLQkJQUxMT1dTX0hPUklaT05UQUxfUkVTSVpFLAorLQkJSEFTX0ZPQ1VTLAorLQkJU0hB REVELAorLQkJU1RVQ0ssCistCQlNQVhJTUlaRUQsCistCQlBTExPV1NfU0hBREUsCistCQlBTExP V1NfTU9WRSwKKy0JCUZVTExTQ1JFRU4sCistCQlJU19GTEFTSElORywKKy0JCUFCT1ZFLAorLQkJ VElMRURfTEVGVCwKKy0JCVRJTEVEX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9G UkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIEZyYW1lVHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RB TF9ESUFMT0csCistCQlVVElMSVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVE LAorLQkJTEFTVDsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29w X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEdyYWJPcCB7CistCQlOT05FLAorLQkJV0lO RE9XX0JBU0UsCistCQlDT01QT1NJVE9SLAorLQkJV0FZTEFORF9QT1BVUCwKKy0JCUZSQU1FX0JV VFRPTiwKKy0JCU1PVklORywKKy0JCVJFU0laSU5HX05XLAorLQkJUkVTSVpJTkdfTiwKKy0JCVJF U0laSU5HX05FLAorLQkJUkVTSVpJTkdfRSwKKy0JCVJFU0laSU5HX1NXLAorLQkJUkVTSVpJTkdf UywKKy0JCVJFU0laSU5HX1NFLAorLQkJUkVTSVpJTkdfVywKKy0JCUtFWUJPQVJEX01PVklORywK Ky0JCUtFWUJPQVJEX1JFU0laSU5HX1VOS05PV04sCistCQlLRVlCT0FSRF9SRVNJWklOR19OVywK Ky0JCUtFWUJPQVJEX1JFU0laSU5HX04sCistCQlLRVlCT0FSRF9SRVNJWklOR19ORSwKKy0JCUtF WUJPQVJEX1JFU0laSU5HX0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19TVywKKy0JCUtFWUJPQVJE X1JFU0laSU5HX1MsCistCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKy0JCUtFWUJPQVJEX1JFU0la SU5HX1cKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxP R19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jl c3BvbnNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEluaGliaXRTaG9ydGN1dHNEaWFs b2dSZXNwb25zZSB7CistCQlBTExPVywKKy0JCURFTlkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX0tFWUJJTkRJTkdfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19hY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0FjdGlvbiB7CistCQlO T05FLAorLQkJV09SS1NQQUNFXzEsCistCQlXT1JLU1BBQ0VfMiwKKy0JCVdPUktTUEFDRV8zLAor LQkJV09SS1NQQUNFXzQsCistCQlXT1JLU1BBQ0VfNSwKKy0JCVdPUktTUEFDRV82LAorLQkJV09S S1NQQUNFXzcsCistCQlXT1JLU1BBQ0VfOCwKKy0JCVdPUktTUEFDRV85LAorLQkJV09SS1NQQUNF XzEwLAorLQkJV09SS1NQQUNFXzExLAorLQkJV09SS1NQQUNFXzEyLAorLQkJV09SS1NQQUNFX0xF RlQsCistCQlXT1JLU1BBQ0VfUklHSFQsCistCQlXT1JLU1BBQ0VfVVAsCistCQlXT1JLU1BBQ0Vf RE9XTiwKKy0JCVdPUktTUEFDRV9MQVNULAorLQkJU1dJVENIX0FQUExJQ0FUSU9OUywKKy0JCVNX SVRDSF9BUFBMSUNBVElPTlNfQkFDS1dBUkQsCistCQlTV0lUQ0hfR1JPVVAsCistCQlTV0lUQ0hf R1JPVVBfQkFDS1dBUkQsCistCQlTV0lUQ0hfV0lORE9XUywKKy0JCVNXSVRDSF9XSU5ET1dTX0JB Q0tXQVJELAorLQkJU1dJVENIX1BBTkVMUywKKy0JCVNXSVRDSF9QQU5FTFNfQkFDS1dBUkQsCist CQlDWUNMRV9HUk9VUCwKKy0JCUNZQ0xFX0dST1VQX0JBQ0tXQVJELAorLQkJQ1lDTEVfV0lORE9X UywKKy0JCUNZQ0xFX1dJTkRPV1NfQkFDS1dBUkQsCistCQlDWUNMRV9QQU5FTFMsCistCQlDWUNM RV9QQU5FTFNfQkFDS1dBUkQsCistCQlTSE9XX0RFU0tUT1AsCistCQlQQU5FTF9NQUlOX01FTlUs CistCQlQQU5FTF9SVU5fRElBTE9HLAorLQkJVE9HR0xFX1JFQ09SRElORywKKy0JCVNFVF9TUEVX X01BUkssCistCQlBQ1RJVkFURV9XSU5ET1dfTUVOVSwKKy0JCVRPR0dMRV9GVUxMU0NSRUVOLAor LQkJVE9HR0xFX01BWElNSVpFRCwKKy0JCVRPR0dMRV9USUxFRF9MRUZULAorLQkJVE9HR0xFX1RJ TEVEX1JJR0hULAorLQkJVE9HR0xFX0FCT1ZFLAorLQkJTUFYSU1JWkUsCistCQlVTk1BWElNSVpF LAorLQkJVE9HR0xFX1NIQURFRCwKKy0JCU1JTklNSVpFLAorLQkJQ0xPU0UsCistCQlCRUdJTl9N T1ZFLAorLQkJQkVHSU5fUkVTSVpFLAorLQkJVE9HR0xFX09OX0FMTF9XT1JLU1BBQ0VTLAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfMSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzIsCistCQlNT1ZFX1RP X1dPUktTUEFDRV8zLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNCwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzUsCistCQlNT1ZFX1RPX1dPUktTUEFDRV82LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNywK Ky0JCU1PVkVfVE9fV09SS1NQQUNFXzgsCistCQlNT1ZFX1RPX1dPUktTUEFDRV85LAorLQkJTU9W RV9UT19XT1JLU1BBQ0VfMTAsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMSwKKy0JCU1PVkVfVE9f V09SS1NQQUNFXzEyLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfTEVGVCwKKy0JCU1PVkVfVE9fV09S S1NQQUNFX1JJR0hULAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfVVAsCistCQlNT1ZFX1RPX1dPUktT UEFDRV9ET1dOLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfTEFTVCwKKy0JCU1PVkVfVE9fTU9OSVRP Ul9MRUZULAorLQkJTU9WRV9UT19NT05JVE9SX1JJR0hULAorLQkJTU9WRV9UT19NT05JVE9SX1VQ LAorLQkJTU9WRV9UT19NT05JVE9SX0RPV04sCistCQlSQUlTRV9PUl9MT1dFUiwKKy0JCVJBSVNF LAorLQkJTE9XRVIsCistCQlNQVhJTUlaRV9WRVJUSUNBTExZLAorLQkJTUFYSU1JWkVfSE9SSVpP TlRBTExZLAorLQkJTU9WRV9UT19DT1JORVJfTlcsCistCQlNT1ZFX1RPX0NPUk5FUl9ORSwKKy0J CU1PVkVfVE9fQ09STkVSX1NXLAorLQkJTU9WRV9UT19DT1JORVJfU0UsCistCQlNT1ZFX1RPX1NJ REVfTiwKKy0JCU1PVkVfVE9fU0lERV9TLAorLQkJTU9WRV9UT19TSURFX0UsCistCQlNT1ZFX1RP X1NJREVfVywKKy0JCU1PVkVfVE9fQ0VOVEVSLAorLQkJT1ZFUkxBWV9LRVksCistCQlJU09fTkVY VF9HUk9VUCwKKy0JCUFMV0FZU19PTl9UT1AsCistCQlTV0lUQ0hfTU9OSVRPUiwKKy0JCVJPVEFU RV9NT05JVE9SLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJ TkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCist CVtGbGFnc10KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKy0JCU5PTkUsCistCQlQ RVJfV0lORE9XLAorLQkJQlVJTFRJTiwKKy0JCUlTX1JFVkVSU0VELAorLQkJTk9OX01BU0tBQkxF LAorLQkJSUdOT1JFX0FVVE9SRVBFQVQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVS XyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIExhdGVyVHlwZSB7CistCQlSRVNJWkUsCistCQlDQUxDX1NIT1dJTkcsCistCQlDSEVDS19G VUxMU0NSRUVOLAorLQkJU1lOQ19TVEFDSywKKy0JCUJFRk9SRV9SRURSQVcsCistCQlJRExFCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAi bWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExvY2Fs ZURpcmVjdGlvbiB7CistCQlMVFIsCistCQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIp XQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3MgeworLQkJSE9SSVpPTlRB TCwKKy0JCVZFUlRJQ0FMLAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9E QUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKy0JW0Zs YWdzXQorLQlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworLQkJUE9JTlRFUl9BTFJFQURZX0dS QUJCRUQsCistCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9 ICJNRVRBX01PTklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9z d2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTW9uaXRvclN3 aXRjaENvbmZpZ1R5cGUgeworLQkJQUxMX01JUlJPUiwKKy0JCUFMTF9MSU5FQVIsCistCQlFWFRF Uk5BTCwKKy0JCUJVSUxUSU4sCistCQlVTktOT1dOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0J CUxFRlQsCistCQlSSUdIVCwKKy0JCVVQX0xFRlQsCistCQlVUF9SSUdIVCwKKy0JCURPV05fTEVG VCwKKy0JCURPV05fUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBQYWRBY3Rpb25UeXBlIHsKKy0JCUJVVFRPTiwKKy0JCVJJTkcsCistCQlTVFJJUAor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfUFJFRl8iLCB0eXBlX2lkID0gIm1ldGFfcHJlZmVy ZW5jZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBQcmVmZXJlbmNlIHsKKy0JCU1PVVNF X0JVVFRPTl9NT0RTLAorLQkJRk9DVVNfTU9ERSwKKy0JCUZPQ1VTX05FV19XSU5ET1dTLAorLQkJ QVRUQUNIX01PREFMX0RJQUxPR1MsCistCQlSQUlTRV9PTl9DTElDSywKKy0JCUFDVElPTl9ET1VC TEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJT05fTUlERExFX0NMSUNLX1RJVExFQkFSLAorLQkJ QUNUSU9OX1JJR0hUX0NMSUNLX1RJVExFQkFSLAorLQkJQVVUT19SQUlTRSwKKy0JCUFVVE9fUkFJ U0VfREVMQVksCistCQlGT0NVU19DSEFOR0VfT05fUE9JTlRFUl9SRVNULAorLQkJVElUTEVCQVJf Rk9OVCwKKy0JCU5VTV9XT1JLU1BBQ0VTLAorLQkJRFlOQU1JQ19XT1JLU1BBQ0VTLAorLQkJS0VZ QklORElOR1MsCistCQlESVNBQkxFX1dPUktBUk9VTkRTLAorLQkJQlVUVE9OX0xBWU9VVCwKKy0J CVdPUktTUEFDRV9OQU1FUywKKy0JCVZJU1VBTF9CRUxMLAorLQkJQVVESUJMRV9CRUxMLAorLQkJ VklTVUFMX0JFTExfVFlQRSwKKy0JCUdOT01FX0FDQ0VTU0lCSUxJVFksCistCQlHTk9NRV9BTklN QVRJT05TLAorLQkJQ1VSU09SX1RIRU1FLAorLQkJQ1VSU09SX1NJWkUsCistCQlSRVNJWkVfV0lU SF9SSUdIVF9CVVRUT04sCistCQlFREdFX1RJTElORywKKy0JCUZPUkNFX0ZVTExTQ1JFRU4sCist CQlXT1JLU1BBQ0VTX09OTFlfT05fUFJJTUFSWSwKKy0JCURSQUdHQUJMRV9CT1JERVJfV0lEVEgs CistCQlBVVRPX01BWElNSVpFLAorLQkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJF U0hPTEQ7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19t b2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNoYWRvd01vZGUgeworLQkJQVVUTywK Ky0JCUZPUkNFRF9PRkYsCistCQlGT1JDRURfT04KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gU2lkZSB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00KKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAibWV0YV9zaXpl X2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaXplQ2hhbmdlIHsKKy0JCU1B WElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCUZVTExTQ1JFRU4sCistCQlVTkZVTExTQ1JFRU4K Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFj a19sYXllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURF U0tUT1AsCistCQlCT1RUT00sCistCQlOT1JNQUwsCistCQlUT1AsCistCQlET0NLLAorLQkJT1ZF UlJJREVfUkVESVJFQ1QsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJf TElTVF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGVudW0gVGFiTGlzdCB7CistCQlOT1JNQUwsCistCQlET0NLUywKKy0JCUdST1VQLAorLQkJTk9S TUFMX0FMTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9 ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiU2hv d1R5cGUgeworLQkJSUNPTiwKKy0JCUlOU1RBTlRMWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfVklSVFVBTF8iLCB0eXBlX2lkID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAo KSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIFZpcnR1YWxNb2RpZmllciB7CistCQlTSElG VF9NQVNLLAorLQkJQ09OVFJPTF9NQVNLLAorLQkJQUxUX01BU0ssCistCQlNRVRBX01BU0ssCist CQlTVVBFUl9NQVNLLAorLQkJSFlQRVJfTUFTSywKKy0JCU1PRDJfTUFTSywKKy0JCU1PRDNfTUFT SywKKy0JCU1PRDRfTUFTSywKKy0JCU1PRDVfTUFTSworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CistCQlX QVlMQU5ELAorLQkJWDExCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8i LCB0eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBXaW5kb3dNZW51VHlwZSB7CistCQlXTSwKKy0JCUFQUAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJl Zml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURFU0tU T1AsCistCQlET0NLLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVE9PTEJBUiwK Ky0JCU1FTlUsCistCQlVVElMSVRZLAorLQkJU1BMQVNIU0NSRUVOLAorLQkJRFJPUERPV05fTUVO VSwKKy0JCVBPUFVQX01FTlUsCistCQlUT09MVElQLAorLQkJTk9USUZJQ0FUSU9OLAorLQkJQ09N Qk8sCistCQlETkQsCistCQlPVkVSUklERV9PVEhFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3Mg PSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0 YS5JZGxlTW9uaXRvciBtb25pdG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3Bv cyA9IDQuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRp c3BsYXkgZGlzcGxheSwgTWV0YS5XaW5kb3cgd2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRl cktleUV2ZW50KiIpXSBDbHV0dGVyLktleUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5nIGJp bmRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFu Y2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1bmMg KE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0NVUlJFTlRfVElNRSIp XQorLQlwdWJsaWMgY29uc3QgaW50IENVUlJFTlRfVElNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFf REVGQVVMVF9JQ09OX05BTUUiKV0KKy0JcHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05f TkFNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0 IGludCBJQ09OX0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorLQlw dWJsaWMgY29uc3QgaW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZF UlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUg PSAiTUVUQV9NSUNST19WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlDUk9fVkVSU0lP TjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29u c3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9X SURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1l ID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJ T047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQorLQlwdWJsaWMg Y29uc3QgaW50IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJ VFlfQkVGT1JFX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9S RURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1BSRUZTX05PVElGWSIpXQorLQlw dWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1BSRUZTX05PVElGWTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1F VEFfUFJJT1JJVFlfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFX OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0 IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9L RVlCT0FSRF9JRCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9LRVlCT0FSRF9J RDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKy0JcHVi bGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMg c3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR0xpYi5PcHRpb25Db250ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIp XQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JlcGxhY2VfY3VycmVudF93bSAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGlj IGJvb2wgaXNfcmVzdGFydCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcXVpdCAo TWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0 ZXJfd2l0aF9zZXNzaW9uICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0 IChzdHJpbmc/IG1lc3NhZ2UpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChz dHJpbmcgd21fa2V5YmluZGluZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf d21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB4 MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy19CitkaWZmIC0tZ2l0 IHZhcGkvbGlibXV0dGVyLTUuZGVwcyB2YXBpL2xpYm11dHRlci02LmRlcHMKK3NpbWlsYXJpdHkg aW5kZXggNTAlCityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci01LmRlcHMKK3JlbmFtZSB0byB2 YXBpL2xpYm11dHRlci02LmRlcHMKK2luZGV4IDQ4YWE3NTYzLi4yMjM1MjVlNCAxMDA2NDQKKy0t LSB2YXBpL2xpYm11dHRlci01LmRlcHMKKysrKyB2YXBpL2xpYm11dHRlci02LmRlcHMKK0BAIC0x LDUgKzEsNiBAQAorIGd0aystMy4wCisganNvbi1nbGliLTEuMAorLW11dHRlci1jbHV0dGVyLTUK KyttdXR0ZXItY2x1dHRlci02CisgeDExCisgeGZpeGVzLTQuMAorK2dyYXBoZW5lLWdvYmplY3Qt MS4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTUudmFwaSB2YXBpL2xpYm11dHRlci02LnZh cGkKK3NpbWlsYXJpdHkgaW5kZXggOTclCityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci01LnZh cGkKK3JlbmFtZSB0byB2YXBpL2xpYm11dHRlci02LnZhcGkKK2luZGV4IGI5NWEyOGU2Li5iMzZi ZTFiNyAxMDA2NDQKKy0tLSB2YXBpL2xpYm11dHRlci01LnZhcGkKKysrKyB2YXBpL2xpYm11dHRl ci02LnZhcGkKK0BAIC0xLDEyICsxLDEwIEBACistLyogbGlibXV0dGVyLTUudmFwaSBnZW5lcmF0 ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXItNi52YXBpIGdl bmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZp eCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNSIsIGxv d2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwg Z2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nhc2VfY3By ZWZpeCA9ICJtZXRhXyIpXQorIG5hbWVzcGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBvc2l0 b3IgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisg CQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRh LkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdp b24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1l dGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zv cl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9y X2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0 YWdlX3dpbmRvdyIpXQorQEAgLTIxLDggKzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2Fj dG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19n cm91cF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIs IGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhz ZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJfQorIAluYW1lc3BhY2UgUHJlZnMgeworIAkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf YmVsbF9pc19hdWRpYmxlIildCitAQCAtMTY0LDcgKzE2MCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIGtleW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IGtleW1hcF9sYXlvdXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNp Z25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0 KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2Jq ZWN0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tn cm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAt MTc0LDcgKzE3MCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZWZyZXNoX2FsbCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUx LCBHTGliLkZpbGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91 bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3Ig Y29sb3IpOworLQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3Rv cC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIu RmlsZT8gZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJl Y3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsK KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3Bs YXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorQEAgLTI3NSw3ICsyNzEsNyBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgY3Vyc29yX21vdmVkIChmbG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBjdXJzb3JfbW92ZWQgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHZpc2liaWxpdHlfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlw ZSAoKSIpXQorQEAgLTMyNyw2ICszMjMsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg Ym9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7 CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgZm9jdXNfd2luZG93IHsgZ2V0OyB9CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgQ2x1dHRlci5J bnB1dERldmljZSBwMCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2xvc2luZyAo KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBN ZXRhLkdyYWJPcCBwMSk7CitAQCAtMzUwLDYgKzM0Nyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgx MV9kaXNwbGF5X29wZW5lZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9z ZXR1cCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWRu ZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3Mg RG5kIDogR0xpYi5PYmplY3QgeworQEAgLTM3MCwxMSArMzY4LDEwIEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywg b3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHVp bnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5j PyBjYWxsYmFjayk7CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBn ZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdl dF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRp bWUgKCk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworIAkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9 CisrCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UgeyBvd25lZCBnZXQ7IGNvbnN0 cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKyAJW0Nv bXBhY3RdCitAQCAtNTM2LDE1ICs1MzMsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90 ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4 dHVyZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7 CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBj bGlwKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3Rhbmds ZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUg KCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1h cHMpOworIAkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tf dGV4dHVyZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8u UmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4 LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBz aXplX2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5 cGUgKCkiKV0KK0BAIC03NTYsMTcgKzc1MiwxNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1l bnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRf aW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRh LldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF90ZXh0dXJlICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TaGFwZWRUZXh0dXJl IGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworIAkJcHVi bGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOworIAkJcHVibGljIE1ldGEuV2luZG93IG1ldGFf d2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBz ZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkYW1hZ2VkICgpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIGVmZmVjdHNfY29tcGxldGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGZpcnN0 X2ZyYW1lICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRoYXdlZCAoKTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIiwgdHlwZV9p ZCA9ICJtZXRhX3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgV2lu ZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0 YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtODEzLDcg KzgwOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3Nw YWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworIAkJcHVibGljIGludCBnZXRfYWN0aXZlX3dv cmtzcGFjZV9pbmRleCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGlu dCBpbmRleCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtzcGFj ZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKyAJCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFj ZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGlj YWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKyAJCXB1YmxpYyB2b2lkIHJl bW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFt cCk7CisgCQlwdWJsaWMgdm9pZCByZW9yZGVyX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29y a3NwYWNlLCBpbnQgbmV3X2luZGV4KTsKK0BAIC04MzMsMTEgKzgyOCwxMyBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3QgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFgxMURp c3BsYXkgKCk7CisrCQlwdWJsaWMgdm9pZCBjbGVhcl9zdGFnZV9pbnB1dF9yZWdpb24gKCk7Cisg CQlwdWJsaWMgaW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0 X3NjcmVlbl9udW1iZXIgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgp OworIAkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NtX3Nl bGVjdGlvbiAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKFguWHNl cnZlclJlZ2lvbiByZWdpb24pOworIAkJcHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3Vz X3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRvdyk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUNsb3Nl RGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19nZXRfdHlwZSAo KSIpXQorQEAgLTg5OSw3ICs4OTYsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWlu dCB2ZXJzaW9uX21pY3JvOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3Jl Y3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50IHg7CisgCQlwdWJs aWMgaW50IHk7CitAQCAtMTQ0Myw2ICsxNDQwLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxh Z3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcg ZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lk IGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAo c3RyaW5nIHNyYywgc2l6ZV90IG4pOworQEAgLTE0NTksNiArMTQ1OCw4IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1 YmxpYyBzdGF0aWMgdm9pZCByZWdpc3Rlcl93aXRoX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgcmVt b3ZlX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBD bHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBp Y2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KyAJcHVibGljIHN0YXRpYyB2b2lkIHJlc3RhcnQgKHN0cmluZz8gbWVzc2FnZSk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGlu dCBydW4gKCk7CitAQCAtMTQ2Nyw1ICsxNDY4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2 b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0ICgp OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGlj IHN0YXRpYyBib29sIHgxMV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOwor IH0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRl ci03LWN1c3RvbS52YWxhCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjFl MGI5MTdjCistLS0gL2Rldi9udWxsCisrKysgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQor QEAgLTAsMCArMSw3IEBACisrW0NDb2RlIChoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMg c3RydWN0IGJlZm9yZV9mcmFtZSB7CisrfQorKworK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisrcHVibGljIHN0cnVjdCBmcmFtZSB7CisrfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRl ci03LmRlcHMgdmFwaS9saWJtdXR0ZXItNy5kZXBzCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggMDAwMDAwMDAuLjJlZjkxOWVlCistLS0gL2Rldi9udWxsCisrKysgdmFwaS9saWJtdXR0ZXIt Ny5kZXBzCitAQCAtMCwwICsxLDYgQEAKKytndGsrLTMuMAorK2pzb24tZ2xpYi0xLjAKKyttdXR0 ZXItY2x1dHRlci03CisreDExCisreGZpeGVzLTQuMAorK2dyYXBoZW5lLWdvYmplY3QtMS4wCitk aWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTMudmFwaSB2YXBpL2xpYm11dHRlci03LnZhcGkKK3Np bWlsYXJpdHkgaW5kZXggNzUlCityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci0zLnZhcGkKK3Jl bmFtZSB0byB2YXBpL2xpYm11dHRlci03LnZhcGkKK2luZGV4IDE3MTVhYThmLi45MGM0MTU5MCAx MDA2NDQKKy0tLSB2YXBpL2xpYm11dHRlci0zLnZhcGkKKysrKyB2YXBpL2xpYm11dHRlci03LnZh cGkKK0BAIC0xLDEyICsxLDEwIEBACistLyogbGlibXV0dGVyLTMudmFwaSBnZW5lcmF0ZWQgYnkg dmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXItNy52YXBpIGdlbmVyYXRl ZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJN ZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMyIsIGxvd2VyX2Nh c2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25h bWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9 ICJtZXRhXyIpXQorIG5hbWVzcGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBvc2l0b3Igewor IAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIs IGNuYW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJs aWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNw bGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3Bs YXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dp bmRvdyIpXQorQEAgLTIxLDggKzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAo TWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9m b3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1l ID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJS ZWdpb24gcmVnaW9uKTsKKyAJfQorIAluYW1lc3BhY2UgUHJlZnMgeworIAkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9p c19hdWRpYmxlIildCitAQCAtNDcsNiArNDMsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgc3RhdGljIE1ldGEuQnV0dG9uTGF5b3V0IHByZWZzX2dldF9idXR0b25fbGF5b3V0ICgpOwor IAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfZ2V0X2NlbnRlcl9uZXdfd2luZG93cyIpXQorIAkJcHVibGljIHN0YXRpYyBib29s IHByZWZzX2dldF9jZW50ZXJfbmV3X3dpbmRvd3MgKCk7CisrCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY2hlY2tfYWxp dmVfdGltZW91dCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50IHByZWZzX2dldF9jaGVja19hbGl2 ZV90aW1lb3V0ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIiKV0KKyAJCXB1 YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKyAJCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9jdXJzb3Jfc2l6ZSIpXQorQEAgLTc1LDggKzczLDYgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5ICgp OworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9v bCBwcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9pZ25vcmVfcmVx dWVzdF9oaWRlX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2ln bm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfa2V5YmluZGluZ19h Y3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIHByZWZzX2dl dF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworIAkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1 dHRvbl9tZW51IildCitAQCAtMTA1LDggKzEwMSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19pbml0ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2ZvcmNlX2Z1bGxz Y3JlZW4iKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfZm9yY2VfZnVsbHNjcmVl biAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxl YmFyIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2lnbm9yZV9yZXF1ZXN0X2hp ZGVfdGl0bGViYXIgKGJvb2wgd2hldGhlcik7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMi KV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBu X3dvcmtzcGFjZXMpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KK0BA IC0xMTcsMTIgKzExMSwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZv aWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CisgCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFs X2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCisgCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRl cm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRh X2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1 cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorIAkJ cHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAo KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0g Im1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJp bmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKE1ldGEuR3Jhdml0eSBncmF2aXR5KTsKKyAJ CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFf aXNfZGVidWdnaW5nIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOwor IAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0 YV9pc19zeW5jaW5nIildCitAQCAtMTY1LDEyICsxNTcsMTMgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJcHVibGljIHVub3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAoKTsKKyAJCXB1YmxpYyB1bm93bmVk IE1ldGEuUmVtb3RlQWNjZXNzQ29udHJvbGxlciBnZXRfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVy ICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2UgKCk7CisrCQlw dWJsaWMgYm9vbCBpc19yZW5kZXJpbmdfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCQlwdWJs aWMgdm9pZCBsb2NrX2xheW91dF9ncm91cCAodWludCBpZHgpOworIAkJcHVibGljIHZvaWQgc2V0 X2tleW1hcCAoc3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJpYW50cywgc3RyaW5nIG9wdGlvbnMp OworIAkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0ZSk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmpl Y3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGxpZF9pc19jbG9zZWRfY2hhbmdlZCAoYm9vbCBv YmplY3QpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFj a2dyb3VuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ2V0X3R5cGUgKCkiKV0KK0BA IC0xODAsNyArMTczLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lk IHJlZnJlc2hfYWxsICgpOworIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmls ZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dy b3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xv ciBjb2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNr dG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xp Yi5GaWxlPyBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGlj IHZvaWQgc2V0X2dyYWRpZW50IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2Rp cmVjdGlvbiwgQ2x1dHRlci5Db2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3Ip OworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlz cGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CitAQCAtMTkwLDkgKzE4MywxOCBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgQmFja2dyb3Vu ZEFjdG9yIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50IG1vbml0b3IpOworKwkJW05vQWNjZXNz b3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdl dDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbW9u aXRvciB7IGdldDsgY29uc3RydWN0OyB9CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWNvbnRlbnQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNr Z3JvdW5kX2NvbnRlbnRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEJhY2tncm91bmRD b250ZW50IDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQmFja2dyb3VuZENvbnRl bnQgKCk7CisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQ29udGVudCBAbmV3IChNZXRhLkRpc3Bs YXkgZGlzcGxheSwgaW50IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQg KE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVu dCAoYm9vbCBlbmFibGVkLCBpbnQgaGVpZ2h0LCBkb3VibGUgdG9uZV9zdGFydCk7CistCQlwdWJs aWMgdm9pZCBzZXRfbW9uaXRvciAoaW50IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgc2V0X3Zp Z25ldHRlIChib29sIGVuYWJsZWQsIGRvdWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNz KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNr Z3JvdW5kIHsgb3duZWQgZ2V0OyBzZXQ7IH0KK0BAIC0yNzcsMTQgKzI3OSwxNCBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJzb3JUcmFja2VyIGdl dF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJcHVibGljIHZvaWQgZ2V0 X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworIAkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXIg KGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7CisrCQlwdWJsaWMgYm9v bCBnZXRfcG9pbnRlcl92aXNpYmxlICgpOworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJl IGdldF9zcHJpdGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29s IHZpc2libGUpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5CYWNrZW5k IGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lk IGN1cnNvcl9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfZGJ1c19kaXNwbGF5 X2NvbmZpZ19za2VsZXRvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgREJ1c0Rpc3Bs YXlDb25maWdTa2VsZXRvbiA6IEdMaWIuREJ1c0ludGVyZmFjZVNrZWxldG9uLCBHTGliLkRCdXNJ bnRlcmZhY2UgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIERCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24gKCk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCXB1YmxpYyBzaWdu YWwgdm9pZCB2aXNpYmlsaXR5X2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERpc3BsYXkgOiBHTGliLk9iamVjdCB7CitAQCAtMzA5 LDMyICszMTEsMzkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wgZ2V0X21vbml0 b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRv cl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CisgCQlwdWJsaWMgaW50IGdl dF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5EaXNwbGF5 RGlyZWN0aW9uIGRpcik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X21vbml0b3Jfc2NhbGUgKGludCBt b25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CisgCQlwdWJsaWMgc3Ry aW5nIGdldF9wYWRfYWN0aW9uX2xhYmVsIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgTWV0YS5Q YWRBY3Rpb25UeXBlIGFjdGlvbl90eXBlLCB1aW50IGFjdGlvbl9udW1iZXIpOworIAkJcHVibGlj IGludCBnZXRfcHJpbWFyeV9tb25pdG9yICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TZWxl Y3Rpb24gZ2V0X3NlbGVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9zaXplIChvdXQgaW50 IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNvdW5kUGxh eWVyIGdldF9zb3VuZF9wbGF5ZXIgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBn ZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3Bh Y2UpOworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRfdGFiX2xpc3Qg KE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsKKyAJCXB1Ymxp YyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1l dGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9vbCBiYWNrd2Fy ZCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZU1hbmFnZXIgZ2V0X3dvcmtzcGFj ZV9tYW5hZ2VyICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFj Y2VsZXJhdG9yKTsKKysJCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2Nl bGVyYXRvciwgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZmxhZ3MpOworIAkJcHVibGljIGJvb2wgaXNf cG9pbnRlcl9lbXVsYXRpbmdfc2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVu Y2UpOworIAkJcHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKyAJ CXB1YmxpYyB2b2lkIHJlcXVlc3RfcGFkX29zZCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIGJv b2wgZWRpdGlvbl9tb2RlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1ldGEuQ3Vyc29y IGN1cnNvcik7CisrCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXMgKE1ldGEuV2luZG93IHdp bmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgR0xp Yi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIu U0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOworIAkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0 ZW5kZWRfYmFycmllcnMgKCk7CisgCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWlu dDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQg YWN0aW9uX2lkKTsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVz dGFtcCk7CisrCQlwdWJsaWMgdm9pZCB1bnNldF9pbnB1dF9mb2N1cyAodWludDMyIHRpbWVzdGFt cCk7CisgCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEs IHVpbnQzMiB0aW1lMik7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgZm9jdXNfd2luZG93IHsgZ2V0 OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9i amVjdCwgdWludCBwMCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0 b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZSBwMCwgdWludCBw MSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19t ZW1vcnlfcHVyZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1l dGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEu V2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVs bHNjcmVlbl9jaGFuZ2VkICgpOworKwkJcHVibGljIHNpZ25hbCBib29sIGluaXRfeHNlcnZlciAo R0xpYi5UYXNrIG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJzX2FjY2Vs ZXJhdG9yX2FjdGl2YXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5X2tleSAo KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBwYWRfbW9kZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXRE ZXZpY2Ugb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKK0BAIC0zNDUsNyArMzU0LDYgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzaXplX3BvcHVwIChi b29sIG9iamVjdCwgTWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAyKTsKKyAJCXB1Ymxp YyBzaWduYWwgYm9vbCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBzdGFydHVwX3NlcXVlbmNlX2NoYW5nZWQgKHZvaWQqIG9iamVjdCk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2NyZWF0ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2RlbWFuZHNfYXR0ZW50aW9uIChNZXRhLldp bmRvdyBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0 b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKK0BAIC0zNTQsNiArMzYyLDcgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfb3BlbmVkICgpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIHgxMV9kaXNwbGF5X3NldHVwICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtZG5kLmgiLCB0eXBlX2lkID0gIm1ldGFfZG5kX2dldF90eXBlICgpIild CisgCXB1YmxpYyBjbGFzcyBEbmQgOiBHTGliLk9iamVjdCB7CitAQCAtMzYzLDcgKzM3Miw3IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfbGVhdmUgKCk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX3Bvc2l0aW9uX2NoYW5nZSAoaW50IG9iamVjdCwgaW50 IHAwKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBj bGFzcyBGcmFtZSB7CisgCX0KK0BAIC0zNzQsMTMgKzM4MywxMiBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93 bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50 IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8g Y2FsbGJhY2spOworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0 X2NvcmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRf Zm9yX2RldmljZSAoaW50IGRldmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1l ICgpOworIAkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQor KwkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5n cy5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorIAlwdWJs aWMgY2xhc3MgS2V5QmluZGluZyB7CisgCQlwdWJsaWMgdWludCBnZXRfbWFzayAoKTsKK0BAIC0z OTEsOCArMzk5LDIxIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCVtDQ29kZSAoY25hbWUgPSAibWV0 YV9rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9v bCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmluZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJG dW5jPyBoYW5kbGVyKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgiLCB0eXBlX2lkID0gIm1ldGFfbGF1bmNoX2NvbnRleHRfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExhdW5jaENvbnRleHQgOiBHTGliLkFwcExhdW5j aENvbnRleHQgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor KwkJcHJvdGVjdGVkIExhdW5jaENvbnRleHQgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfdGltZXN0 YW1wICh1aW50MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIHNldF93b3Jrc3BhY2UgKE1l dGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1Ymxp YyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyB1aW50IHRpbWVzdGFtcCB7IGdldDsgc2V0OyB9Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Ug eyBvd25lZCBnZXQ7IHNldDsgfQorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5h Z2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdl ciA6IE1ldGEuREJ1c0Rpc3BsYXlDb25maWdTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlLCBH TGliLkRCdXNJbnRlcmZhY2UgeworKwlwdWJsaWMgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGli Lk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwcm90ZWN0ZWQgTW9uaXRvck1hbmFnZXIgKCk7CisgCQlwdWJsaWMgYm9vbCBjYW5fc3dpdGNo X2NvbmZpZyAoKTsKK0BAIC00MDcsNiArNDI4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBtb25p dG9yc19jaGFuZ2VkX2ludGVybmFsICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHBvd2VyX3Nh dmVfbW9kZV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtcGx1Z2luLmgiLCB0eXBlX2lkID0gIm1ldGFfcGx1Z2luX2dldF90eXBlICgpIild CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQbHVnaW4gOiBHTGliLk9iamVjdCB7CitAQCAtNDMw LDYgKzQ1Miw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2ls bF9zd2l0Y2hfd29ya3NwYWNlICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQga2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CisrCQlb Tm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBsb2NhdGVfcG9pbnRlciAoKTsKKyAJ CXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0 eXBlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5X aW5kb3dBY3RvciBhY3Rvcik7CitAQCAtNDY1LDI2ICs0ODksNTYgQEAgbmFtZXNwYWNlIE1ldGEg eworIAlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3Rl ZCBSZW1vdGVBY2Nlc3NDb250cm9sbGVyICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF9yZW1v dGVfYWNjZXNzICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X3JlbW90ZV9hY2Nlc3MgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbmV3X2hhbmRsZSAoTWV0YS5SZW1vdGVBY2Nlc3NIYW5k bGUgb2JqZWN0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nl c3NfaGFuZGxlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NIYW5k bGUgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzSGFuZGxlICgpOworKwkJcHVibGljIGJv b2wgZ2V0X2Rpc2FibGVfYW5pbWF0aW9ucyAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3Rv cCAoKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgaXNfcmVjb3JkaW5n IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzdG9wcGVkICgpOwor IAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQg PSAibWV0YV9zZWxlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFNlbGVjdGlv biA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKysJCXB1YmxpYyBTZWxlY3Rpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1 YmxpYyBHTGliLkxpc3Q8c3RyaW5nPiBnZXRfbWltZXR5cGVzIChNZXRhLlNlbGVjdGlvblR5cGUg c2VsZWN0aW9uX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X293bmVyIChNZXRhLlNlbGVjdGlv blR5cGUgc2VsZWN0aW9uX3R5cGUsIE1ldGEuU2VsZWN0aW9uU291cmNlIG93bmVyKTsKKysJCXB1 YmxpYyBhc3luYyBib29sIHRyYW5zZmVyX2FzeW5jIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0 aW9uX3R5cGUsIHN0cmluZyBtaW1ldHlwZSwgc3NpemVfdCBzaXplLCBHTGliLk91dHB1dFN0cmVh bSBvdXRwdXQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJv cjsKKysJCXB1YmxpYyB2b2lkIHVuc2V0X293bmVyIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0 aW9uX3R5cGUsIE1ldGEuU2VsZWN0aW9uU291cmNlIG93bmVyKTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBvd25lcl9jaGFuZ2VkICh1aW50IG9iamVjdCwgTWV0YS5TZWxlY3Rpb25Tb3VyY2UgcDAp OworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVf aWQgPSAibWV0YV9zZWxlY3Rpb25fc291cmNlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFz cyBTZWxlY3Rpb25Tb3VyY2UgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU2VsZWN0aW9uU291cmNlICgpOwor KwkJcHVibGljIHZpcnR1YWwgR0xpYi5MaXN0PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoKTsKKysJ CXB1YmxpYyBib29sIGlzX2FjdGl2ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGFzeW5jIEdMaWIu SW5wdXRTdHJlYW0gcmVhZF9hc3luYyAoc3RyaW5nIG1pbWV0eXBlLCBHTGliLkNhbmNlbGxhYmxl PyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBhY3RpdmF0ZWQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkZWFj dGl2YXRlZCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX3NvdXJjZV9tZW1vcnlfZ2V0X3R5cGUgKCki KV0KKysJcHVibGljIGNsYXNzIFNlbGVjdGlvblNvdXJjZU1lbW9yeSA6IE1ldGEuU2VsZWN0aW9u U291cmNlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIk1ldGFTZWxlY3Rpb25Tb3VyY2UqIildCisrCQlwdWJsaWMgU2VsZWN0aW9uU291cmNlTWVt b3J5IChzdHJpbmcgbWltZXR5cGUsIEdMaWIuQnl0ZXMgY29udGVudCk7CisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zZXR0aW5ncy5oIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgeworIAkJcHVi bGljIGludCBnZXRfZm9udF9kcGkgKCk7CisgCQlwdWJsaWMgaW50IGdldF91aV9zY2FsaW5nX2Zh Y3RvciAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9p ZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hh ZG93X3VucmVmIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93 X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0KKyAJ W0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworIAkJcHVibGljIHZvaWQgZ2V0X2Jv dW5kcyAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3 aW5kb3dfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1YmxpYyB2b2lk IHBhaW50IChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50 IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBj bGlwX3N0cmljdGx5KTsKKysJCXB1YmxpYyB2b2lkIHBhaW50IChDb2dsLkZyYW1lYnVmZmVyIGZy YW1lYnVmZmVyLCBpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwg aW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9v bCBjbGlwX3N0cmljdGx5KTsKKyAJCXB1YmxpYyBNZXRhLlNoYWRvdyBAcmVmICgpOworIAkJcHVi bGljIHZvaWQgdW5yZWYgKCk7CisgCX0KK0BAIC00OTksMjggKzU1Myw3NCBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lk ID0gIm1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNo YXBlZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1Ymxp YyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg U2hhcGVkVGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fp cm8uUmVjdGFuZ2xlSW50IGNsaXApOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFn ZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4 dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAo Ym9vbCBjcmVhdGVfbWlwbWFwcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChD b2dsLlRleHR1cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVn aW9uIChvd25lZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1 cGRhdGVfYXJlYSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0 YWdlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtc291bmQtcGxheWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBl ICgpIildCisrCXB1YmxpYyBjbGFzcyBTb3VuZFBsYXllciA6IEdMaWIuT2JqZWN0IHsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTb3Vu ZFBsYXllciAoKTsKKysJCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV9maWxlIChHTGliLkZpbGUgZmls ZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51 bGwpOworKwkJcHVibGljIHZvaWQgcGxheV9mcm9tX3RoZW1lIChzdHJpbmcgbmFtZSwgc3RyaW5n IGRlc2NyaXB0aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpOworKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc3RhZ2UuaCIsIHR5cGVf aWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBD bHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU3RhZ2UgKCk7CisgCQlwdWJsaWMg c3RhdGljIGJvb2wgaXNfZm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIGFjdG9yc19wYWludGVkICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIsIHR5cGVfaWQgPSAi bWV0YV9zdGFydHVwX25vdGlmaWNhdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3Mg U3RhcnR1cE5vdGlmaWNhdGlvbiA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwTm90aWZpY2F0aW9u ICgpOworKwkJcHVibGljIE1ldGEuTGF1bmNoQ29udGV4dCBjcmVhdGVfbGF1bmNoZXIgKCk7Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93 bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAodm9p ZCogb2JqZWN0KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorKwlw dWJsaWMgY2xhc3MgU3RhcnR1cFNlcXVlbmNlIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFN0YXJ0dXBTZXF1 ZW5jZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYXBwbGljYXRpb25faWQgKCk7 CisrCQlwdWJsaWMgYm9vbCBnZXRfY29tcGxldGVkICgpOworKwkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9pY29uX25hbWUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2lkICgp OworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVpbnQ2 NCBnZXRfdGltZXN0YW1wICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bWNsYXNz ICgpOworKwkJcHVibGljIGludCBnZXRfd29ya3NwYWNlICgpOworKwkJcHVibGljIHN0cmluZyBh cHBsaWNhdGlvbl9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIGljb25f bmFtZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIGlkIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlw dWJsaWMgdWludDY0IHRpbWVzdGFtcCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3Ry aW5nIHdtY2xhc3MgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGludCB3b3Jrc3BhY2Ug eyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW0hhc0VtaXR0ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgY29tcGxldGUgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv dGhlbWUuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNs YXNzIFRoZW1lIHsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13YXlsYW5kLWNsaWVudC5oIiwgdHlwZV9pZCA9ICJt ZXRhX3dheWxhbmRfY2xpZW50X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBXYXlsYW5k Q2xpZW50IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorKwkJcHVibGljIFdheWxhbmRDbGllbnQgKEdMaWIuU3VicHJvY2Vzc0xhdW5j aGVyIGxhdW5jaGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2b2lkIGhpZGVfZnJv bV93aW5kb3dfbGlzdCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyBib29sIG93bnNf d2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworKwkJcHVibGljIHZvaWQgc2hvd19pbl93aW5k b3dfbGlzdCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyBHTGliLlN1YnByb2Nlc3Mg c3Bhd252IChNZXRhLkRpc3BsYXkgZGlzcGxheSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldIHN0cmluZ1tdIGFyZ3YpIHRocm93cyBH TGliLkVycm9yOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRv dy5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorQEAgLTU0Nyw2ICs2NDcsNyBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVjdCAo TWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0 X2J1ZmZlcl9yZWN0ICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFj aGluZSAoKTsKKysJCXB1YmxpYyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0X2NsaWVudF90eXBl ICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0 ZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CisgCQlw dWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CitAQCAtNTYxLDYgKzY2 Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3Rr X3VuaXF1ZV9idXNfbmFtZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dp bmRvd19vYmplY3RfcGF0aCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChv dXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CisrCQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsKKyAJ CXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworIAkJcHVibGljIE1ldGEuTWF4 aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvciAo KTsKK0BAIC02MTAsOCArNzEyLDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHZvaWQg bW92ZV9yZXNpemVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3Rf eV9udywgaW50IHcsIGludCBoKTsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50 IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1 ZXN0ZWRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9u dF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3By aXZhdGUgKEdMaWIuT2JqZWN0IHByaXYpOworIAkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0 ZW50aW9uICgpOworIAkJcHVibGljIHZvaWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFu Z2xlPyByZWN0KTsKK0BAIC02NzIsMjQgKzc3MiwyNSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2hvd24gKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9j aGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKysJCXB1Ymxp YyBzaWduYWwgdm9pZCB1bm1hbmFnaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtz cGFjZV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtd2luZG93LWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2FjdG9yX2dldF90 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0 ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvd0FjdG9yIDog Q2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0 ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworKwkJ cHVibGljIHZvaWQgZnJlZXplICgpOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFn ZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV2lu ZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93ICgpOworKwkJ cHVibGljIHVub3duZWQgTWV0YS5TaGFwZWRUZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVi bGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworIAkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5 ICgpOworKwkJcHVibGljIHZvaWQgdGhhdyAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRh X3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsg c2V0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJz dF9mcmFtZSAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVf aWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdp bmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1h dGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTcyMCw3 ICs4MjEsOSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0 X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworIAkJcHVibGljIGlu dCBpbmRleCAoKTsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93 aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0 PE1ldGEuU3RydXQ+IHN0cnV0cyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMg KEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD8+IHN0cnV0cyk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KysJCXB1YmxpYyBib29sIGFjdGl2ZSB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisg CQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor QEAgLTczNiwyNyArODM5LDMzIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVk IE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworIAkJcHVibGljIGludCBn ZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fd29ya3Nw YWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2Vf YnlfaW5kZXggKGludCBpbmRleCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8g Z2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKyAJCXB1YmxpYyB2b2lkIG92ZXJy aWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIs IGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKyAJCXB1 YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWlu dDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCByZW9yZGVyX3dvcmtzcGFjZSAoTWV0YS5X b3Jrc3BhY2Ugd29ya3NwYWNlLCBpbnQgbmV3X2luZGV4KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9k XQorKwkJcHVibGljIGludCBsYXlvdXRfY29sdW1ucyB7IGdldDsgfQorKwkJW05vQWNjZXNzb3JN ZXRob2RdCisrCQlwdWJsaWMgaW50IGxheW91dF9yb3dzIHsgZ2V0OyB9CisgCQlwdWJsaWMgaW50 IG5fd29ya3NwYWNlcyB7IGdldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGFjdGl2ZV93b3Jr c3BhY2VfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3Bf Y2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBv YmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2Jq ZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmpl Y3QsIGludCBwMCwgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gcDEpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIHdvcmtzcGFjZXNfcmVvcmRlcmVkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEteDExLWRpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV94MTFfZGlz cGxheV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIuT2Jq ZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXBy b3RlY3RlZCBYMTFEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2ZvY3Vz X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBjbGVhcl9zdGFnZV9p bnB1dF9yZWdpb24gKCk7CisgCQlwdWJsaWMgaW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsK KyAJCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CisgCQlwdWJsaWMgaW50IGdldF9z aGFwZV9ldmVudF9iYXNlICgpOworIAkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworIAkJcHVi bGljIHZvaWQgc2V0X2NtX3NlbGVjdGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9m b2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMy IHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhz ZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1 c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9z ZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUg KCkiKV0KK0BAIC03NzksMjQgKzg4OCwyNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbSGFzRW1p dHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCByZXNwb25zZSAoTWV0YS5JbmhpYml0U2hvcnRj dXRzRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlwdWJsaWMgc3RydWN0IEJ1dHRvbkxheW91dCB7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25z WzVdOworKwkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiBsZWZ0X2J1dHRvbnNbNF07 CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wg bGVmdF9idXR0b25zX2hhc19zcGFjZXJbNV07CisrCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0 dG9uc19oYXNfc3BhY2VyWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCist CQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNV07CisrCQlw dWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07CisgCQlbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0 dG9uc19oYXNfc3BhY2VyWzVdOworKwkJcHVibGljIHdlYWsgYm9vbCByaWdodF9idXR0b25zX2hh c19zcGFjZXJbNF07CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94 ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBF ZGdlIHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworIAkJcHVibGljIE1ldGEuU2lk ZSBzaWRlX3R5cGU7CisgCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKyAJCXB1 YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7CisgCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7 CitAQCAtODExLDE0ICs5MjAsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHdlYWsg c3RyaW5nIGxpY2Vuc2U7CisgCQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3JpcHRpb247CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBQbHVnaW5WZXJzaW9u IHsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9u X21pbm9yOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKyAJCXB1YmxpYyB1aW50IHZl cnNpb25fYXBpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVz LmgiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFf cmVjdGFuZ2xlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKyAJ CXB1YmxpYyBpbnQgeDsKKyAJCXB1YmxpYyBpbnQgeTsKK0BAIC04MzYsNyArOTQ1LDcgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3Rh bmdsZSByZWN0Mik7CisgCQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xl IHJlY3QyKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1Ymxp YyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsKKyAJCXB1YmxpYyBpbnQgcmFkaXVzOworIAkJcHVibGlj IGludCB0b3BfZmFkZTsKK0BAIC04NDQsMTIgKzk1MywxMiBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlwdWJsaWMgaW50IHlfb2Zmc2V0OworIAkJcHVibGljIHVpbnQ4IG9wYWNpdHk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBTdHJ1dCB7CisgCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgcmVjdDsKKyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjcHJlZml4ID0gIk1FVEFf QkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9CQVJSSUVSX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYmFy cmllcl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBC YXJyaWVyRGlyZWN0aW9uIHsKKyAJCVBPU0lUSVZFX1gsCitAQCAtODU3LDIxICs5NjYsMjAgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJTkVHQVRJVkVfWCwKKyAJCU5FR0FUSVZFX1kKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVU QV9CVVRUT05fRlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25f ZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24gewor IAkJTUVOVSwKKyAJCU1JTklNSVpFLAorIAkJTUFYSU1JWkUsCisgCQlDTE9TRSwKKy0JCUFQUE1F TlUsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCIsIGNwcmVmaXggPSAiTUVUQV9DTE9TRV9ESUFMT0dfUkVTUE9OU0Vf IiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1F VEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2df cmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQ2xvc2VEaWFsb2dSZXNwb25z ZSB7CisgCQlXQUlULAorIAkJRk9SQ0VfQ0xPU0UKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1Rf IiwgdHlwZV9pZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VG RkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGVudW0gQ29tcEVmZmVjdCB7CisgCQlDUkVBVEUsCisgCQlVTk1JTklNSVpFLAorQEAgLTg3 OSw3ICs5ODcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNSU5JTUlaRSwKKyAJCU5PTkUKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXgg PSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1F VEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGVudW0gQ3Vyc29yIHsKKyAJCU5PTkUsCisgCQlERUZBVUxULAorQEAgLTkwMCw5ICsxMDA4 LDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCVBPSU5USU5HX0hBTkQsCisgCQlDUk9TU0hBSVIs CisgCQlJQkVBTSwKKysJCUJMQU5LLAorIAkJTEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lk ID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RFQlVHXyIsIHR5cGVfaWQg PSAibWV0YV9kZWJ1Z190b3BpY19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBl bnVtIERlYnVnVG9waWMgeworIAkJVkVSQk9TRSwKK0BAIC05MjgsOSArMTAzNywxMCBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlTSEFQRVMsCisgCQlDT01QT1NJVE9SLAorIAkJRURHRV9SRVNJU1RB TkNFLAorLQkJREJVUworKwkJREJVUywKKysJCUlOUFVUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIs IHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8i LCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJ cHVibGljIGVudW0gRGlyZWN0aW9uIHsKKyAJCUxFRlQsCitAQCAtOTQyLDIxICsxMDUyLDIxIEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCUhPUklaT05UQUwsCisgCQlWRVJUSUNBTAorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVU QV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2Nvcm5lcl9nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0g Ik1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gRGlzcGxheUNvcm5lciB7CisgCQlUT1BMRUZULAorIAkJVE9Q UklHSFQsCisgCQlCT1RUT01MRUZULAorIAkJQk9UVE9NUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExB WV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgp IildCisgCXB1YmxpYyBlbnVtIERpc3BsYXlEaXJlY3Rpb24geworIAkJVVAsCisgCQlET1dOLAor IAkJTEVGVCwKKyAJCVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYm94ZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdl X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlw ZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CisgCQlXSU5ET1csCisg CQlNT05JVE9SLAorQEAgLTk2NywxMiArMTA3NywxMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlT VUNDRVNTLAorIAkJRVJST1IKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJh bWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFt ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEZyYW1lRmxh Z3MgeworIAkJQUxMT1dTX0RFTEVURSwKKyAJCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX0FQUE1F TlUsCisgCQlBTExPV1NfTUlOSU1JWkUsCisgCQlBTExPV1NfTUFYSU1JWkUsCisgCQlBTExPV1Nf VkVSVElDQUxfUkVTSVpFLAorQEAgLTk4NCwxMiArMTA5MywxMSBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlBTExPV1NfU0hBREUsCisgCQlBTExPV1NfTU9WRSwKKyAJCUZVTExTQ1JFRU4sCistCQlJ U19GTEFTSElORywKKyAJCUFCT1ZFLAorIAkJVElMRURfTEVGVCwKKyAJCVRJTEVEX1JJR0hUCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4 ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBGcmFtZVR5cGUgeworIAkJTk9STUFMLAorIAkJRElB TE9HLAorQEAgLTEwMDEsNyArMTEwOSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUxBU1Q7Cisg CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1Bf IiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwg dHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gR3Jh Yk9wIHsKKyAJCU5PTkUsCisgCQlXSU5ET1dfQkFTRSwKK0BAIC0xMDI4LDEyICsxMTM2LDI2IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorIAkJS0VZQk9BUkRf UkVTSVpJTkdfVworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9S VENVVFNfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0 c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQVZJVFlfIiwgdHlwZV9pZCA9 ICJtZXRhX2dyYXZpdHlfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gR3Jhdml0eSB7Cisr CQlOT05FLAorKwkJTk9SVEhfV0VTVCwKKysJCU5PUlRILAorKwkJTk9SVEhfRUFTVCwKKysJCVdF U1QsCisrCQlDRU5URVIsCisrCQlFQVNULAorKwkJU09VVEhfV0VTVCwKKysJCVNPVVRILAorKwkJ U09VVEhfRUFTVCwKKysJCVNUQVRJQworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0df UkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNw b25zZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9n UmVzcG9uc2UgeworIAkJQUxMT1csCisgCQlERU5ZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElP Tl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9u X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworIAkJTk9O RSwKKyAJCVdPUktTUEFDRV8xLAorQEAgLTExMjIsMjIgKzEyNDQsMjUgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJTU9WRV9UT19TSURFX1csCisgCQlNT1ZFX1RPX0NFTlRFUiwKKyAJCU9WRVJMQVlf S0VZLAorKwkJTE9DQVRFX1BPSU5URVJfS0VZLAorIAkJSVNPX05FWFRfR1JPVVAsCisgCQlBTFdB WVNfT05fVE9QLAorIAkJU1dJVENIX01PTklUT1IsCisgCQlST1RBVEVfTU9OSVRPUiwKKyAJCUxB U1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3By ZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19m bGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tl eV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0g S2V5QmluZGluZ0ZsYWdzIHsKKyAJCU5PTkUsCisgCQlQRVJfV0lORE9XLAorIAkJQlVJTFRJTiwK KyAJCUlTX1JFVkVSU0VELAorLQkJTk9OX01BU0tBQkxFCisrCQlOT05fTUFTS0FCTEUsCisrCQlJ R05PUkVfQVVUT1JFUEVBVCwKKysJCU5PX0FVVE9fR1JBQgorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBl X2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9p ZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTGF0ZXJU eXBlIHsKKyAJCVJFU0laRSwKKyAJCUNBTENfU0hPV0lORywKK0BAIC0xMTQ2LDI1ICsxMjcxLDI1 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUJFRk9SRV9SRURSQVcsCisgCQlJRExFCisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRB X0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2Fs ZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTG9jYWxlRGlyZWN0aW9u IHsKKyAJCUxUUiwKKyAJCVJUTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0 YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwgdHlwZV9pZCA9 ICJtZXRhX21heGltaXplX2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGlj IGVudW0gTWF4aW1pemVGbGFncyB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwsCisgCQlC T1RICisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4u aCIsIGNwcmVmaXggPSAiTUVUQV9NT0RBTF8iLCB0eXBlX2lkID0gIm1ldGFfbW9kYWxfb3B0aW9u c19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlv bnNfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMg eworIAkJUE9JTlRFUl9BTFJFQURZX0dSQUJCRUQsCisgCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJC RUQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oIiwgY3ByZWZpeCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBl X2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X01PTklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hf Y29uZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTW9uaXRvclN3aXRjaENv bmZpZ1R5cGUgeworIAkJQUxMX01JUlJPUiwKKyAJCUFMTF9MSU5FQVIsCitAQCAtMTE3Miw3ICsx Mjk3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQlVJTFRJTiwKKyAJCVVOS05PV04KKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAi TUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBNb3Rpb25EaXJlY3Rpb24geworIAkJVVAsCisgCQlE T1dOLAorQEAgLTExODMsNyArMTMwOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURPV05fTEVG VCwKKyAJCURPV05fUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1l dGFfcGFkX2FjdGlvbl90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVf aWQgPSAibWV0YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0g UGFkQWN0aW9uVHlwZSB7CisgCQlCVVRUT04sCisgCQlSSU5HLAorQEAgLTEyMjMsMzAgKzEzNDgs MzkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKyAJCUFV VE9fTUFYSU1JWkUsCisgCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9MRDsK KysJCURSQUdfVEhSRVNIT0xELAorKwkJTE9DQVRFX1BPSU5URVIsCisrCQlDSEVDS19BTElWRV9U SU1FT1VUOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwgY3By ZWZpeCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjcHJlZml4ID0gIk1FVEFfIiwgdHlwZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl90eXBlX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFNlbGVjdGlvblR5cGUgeworKwkJU0VMRUNUSU9OX1BS SU1BUlksCisrCQlTRUxFQ1RJT05fQ0xJUEJPQVJELAorKwkJU0VMRUNUSU9OX0RORCwKKysJCU5f U0VMRUNUSU9OX1RZUEVTCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9z aGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKyAJ CUFVVE8sCisgCQlGT1JDRURfT0ZGLAorIAkJRk9SQ0VEX09OCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0 eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0g Im1ldGFfc2lkZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaWRlIHsKKyAJCUxFRlQs CisgCQlSSUdIVCwKKyAJCVRPUCwKKyAJCUJPVFRPTQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5H RV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVf Q0hBTkdFXyIsIHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgZW51bSBTaXplQ2hhbmdlIHsKKyAJCU1BWElNSVpFLAorIAkJVU5NQVhJTUlaRSwKKyAJ CUZVTExTQ1JFRU4sCisgCQlVTkZVTExTQ1JFRU4KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lk ID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQg PSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTdGFja0xh eWVyIHsKKyAJCURFU0tUT1AsCisgCQlCT1RUT00sCitAQCAtMTI1NiwxOSArMTM5MCwxOSBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlPVkVSUklERV9SRURJUkVDVCwKKyAJCUxBU1QKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1F VEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9UQUJfTElTVF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGVudW0gVGFiTGlzdCB7CisgCQlOT1JNQUwsCisgCQlET0NLUywKKyAJCUdST1VQLAor IAkJTk9STUFMX0FMTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rp c3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfU0hPV18iLCB0eXBlX2lkID0gIm1ldGFfdGFi X3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRh X3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gVGFiU2hvd1R5cGUg eworIAkJSUNPTiwKKyAJCUlOU1RBTlRMWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9 ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlw ZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQor IAlwdWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworIAkJU0hJRlRfTUFTSywKK0BAIC0xMjgy LDE3ICsxNDE2LDE3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1PRDRfTUFTSywKKyAJCU1PRDVf TUFTSworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwg Y3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2lu ZG93X2NsaWVudF90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwg dHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBXaW5kb3dDbGllbnRUeXBlIHsKKyAJCVdBWUxBTkQsCisgCQlYMTEKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVU QV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93TWVudVR5cGUgeworIAkJV00s CisgCQlBUFAKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cu aCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBl X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgeworIAkJTk9STUFMLAor IAkJREVTS1RPUCwKK0BAIC0xMzExLDUxICsxNDQ1LDU3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CURORCwKKyAJCU9WRVJSSURFX09USEVSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklk bGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJ cHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlzcGxheSBkaXNwbGF5 LCBNZXRhLldpbmRvdyB3aW5kb3csIFtDQ29kZSAodHlwZSA9ICJDbHV0dGVyS2V5RXZlbnQqIild IENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSAx LjkpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChN ZXRhLlByZWZlcmVuY2UgcHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3dpbmRvdy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVn YXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9DVVJS RU5UX1RJTUUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKyAJcHVibGljIGNvbnN0IGludCBDVVJSRU5U X1RJTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25h bWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCisg CXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJN RVRBX0lDT05fSEVJR0hUIildCisgCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9J Q09OX1dJRFRIIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElDT05fV0lE VEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUg PSAiTUVUQV9NQUpPUl9WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorIAlwdWJsaWMgY29u c3QgaW50IE1BSk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSUNST19WRVJTSU9OIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lP TiIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fSEVJ R0hUIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNP Tl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKyAJ cHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFf TUlOT1JfVkVSU0lPTiIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9Q TFVHSU5fQVBJX1ZFUlNJT04iKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKyAJcHVibGljIGNv bnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZ X0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9Q UkVGU19OT1RJRlkiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAi TUVUQV9QUklPUklUWV9SRURSQVciKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0KKyAJcHVibGljIGNv bnN0IGludCBQUklPUklUWV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklU WV9SRVNJWkUiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJU VUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKyAJ cHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NP UkVfUE9JTlRFUl9JRCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCisgCXB1YmxpYyBj b25zdCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vz c2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisr CXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1 Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0 dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgp OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGlj IHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0 Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0 aW9uQ29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JlcGxhY2Vf Y3VycmVudF93bSAoKTsKK0BAIC0xMzY4LDYgKzE1MDgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3Rh dGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0 dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5E cmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdz KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1Ymxp YyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgp OworQEAgLTEzNzUsNiArMTUxNywxNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfZ25vbWVfd21fa2V5YmluZGluZ3MgKHN0cmluZyB3bV9rZXliaW5kaW5ncyk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS14MTEtZGlzcGxheS5oIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgdGVz dF9pbml0ICgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KyAJcHVibGljIHN0YXRpYyBib29sIHgxMV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGli LkVycm9yOworIH0KKytbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3Vz dG9tLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGJlZm9yZV9mcmFt ZSB7CisrfQorK1tDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJsaWJtdXR0ZXItNy1jdXN0b20u aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3QgZnJhbWUgeworK30KK2Rp ZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkgdmFwaS9saWJtdXR0ZXItY29nbC00 LnZhcGkKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggN2RjMTg0NzYuLjAwMDAwMDAw CistLS0gdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEy NzIgKzAsMCBAQAorLS8qIGxpYm11dHRlci1jb2dsLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdl biwgZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9u YW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXgg PSAiY29nbF8iKV0KKy1uYW1lc3BhY2UgQ29nbCB7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQml0bWFwICgpOworLQkJ cHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQml0bWFwLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5F cnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXhl bEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgaW50IGdldF9yb3dzdHJpZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUgKHN0 cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJj b2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNCIpXQorLQlwdWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjb2dsX21hdGVyaWFsX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgTWF0ZXJpYWwgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNr KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5D b2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBn ZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1 c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJs ZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wu TWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRf bGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGlu dCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlh bExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQg Z2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRf cG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3No aW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3Vs YXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBD b2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHN0YXRpYyBDb2dsLkhhbmRsZSBAcmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLk1h dGVyaWFsQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1i aWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5k X2RpZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBDb2dsLkJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5F cnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3Rh bnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZs b2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4 IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAo Q29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0 dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9j b21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGli LkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9jb21i aW5lX2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wu TWF0ZXJpYWxGaWx0ZXIgbWluX2ZpbHRlciwgQ29nbC5NYXRlcmlhbEZpbHRlciBtYWdfZmlsdGVy KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJfaW5kZXgs IENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwg Q29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVy aWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9k ZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3Jh cF9tb2RlX3QgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBw b2ludF9zaXplKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmlu ZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxl IG1hdGVyaWFsKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBN YXRlcmlhbExheWVyIHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFn X2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2Zp bHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3Ag KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBn ZXRfd3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5 cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT2JqZWN0ICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQg PSAiY29nbF9vZmZzY3JlZW5fZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBPZmZzY3Jl ZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBPZmZzY3Jl ZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIHVucmVmICh2b2lkKiBvZmZzY3JlZW4pOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENv Z2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fZ2V0X2d0eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBPbnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBPbnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg Q29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVs ZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxi YWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBh ZGRfcmVzaXplX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBD b2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95 Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBh ZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNr KTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRF UiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CistCQlwdWJsaWMgaW50IGdldF9idWZmZXJfYWdlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKy0JCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Jlc2l6YWJsZSAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGhpZGUgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2Rp cnR5X2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGNsb3N1cmUpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxs YmFjayAoQ29nbC5GcmFtZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2Ny ZWVuUmVzaXplQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgcmVtb3ZlX3N3YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJv b2wgcmVzaXphYmxlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNob3cgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgc3dhcF9idWZmZXJzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1 YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBu X3JlY3RhbmdsZXMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcyk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY29nbF9vbnNjcmVlbl9kaXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29t cGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIGNsYXNzIE9uc2Ny ZWVuRGlydHlDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX3Jlc2l6ZV9jbG9zdXJl X2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQlwdWJsaWMgY2xhc3MgT25zY3JlZW5SZXNpemVDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxp bmVfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0 IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBQaXBlbGluZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLlBpcGVsaW5lTGF5ZXJDYWxsYmFjayBj YWxsYmFjayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Q aXBlbGluZUFscGhhRnVuYyBnZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVzdF9yZWZlcmVu Y2UgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRf YW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yTWFzayBnZXRfY29sb3JfbWFzayAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lQ3Vs bEZhY2VNb2RlIGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9u IChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyBDb2dsLldpbmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRf bGF5ZXJfbWFnX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWluX2Zp bHRlciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRl eCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGlu ZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUg Z2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJf d3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9p bnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9h dCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0 cmluZyB1bmlmb3JtX25hbWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhh X3Rlc3RfZnVuY3Rpb24gKENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQg YWxwaGFfcmVmZXJlbmNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENv Z2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVy cm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Js ZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xv cik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29s b3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHVi ICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAo Q29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFj ZU1vZGUgY3VsbF9mYWNlX21vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29s b3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5 ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl9jb21iaW5lX2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3Ig Y29uc3RhbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVGaWx0ZXIg bWluX2ZpbHRlciwgQ29nbC5QaXBlbGluZUZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVy X2luZGV4LCBDb2dsLlRleHR1cmVUeXBlIHRleHR1cmVfdHlwZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVf Y29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dz IEdMaWIuRXJyb3I7CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVy X2luZGV4LCBDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgs IENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4 LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRl eCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoQ29n bC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmlu ZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFmIChpbnQg dW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xvY2F0aW9u LCBpbnQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3VuaWZvcm1fZmxvYXQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25l bnRzLCBpbnQgY291bnQsIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX2ludCAoaW50IHVuaWZvcm1fbG9jYXRpb24s IGludCBuX2NvbXBvbmVudHMsIGludCBjb3VudCwgaW50IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX21hdHJpeCAoaW50IHVu aWZvcm1fbG9jYXRpb24sIGludCBkaW1lbnNpb25zLCBpbnQgY291bnQsIENvZ2wuQm9vbCB0cmFu c3Bvc2UsIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24geworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29n bF9mcmFtZWJ1ZmZlcl9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBGcmFtZWJ1 ZmZlciA6IENvZ2wuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVycywg Q29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgdm9pZCBjbGVhcjRmICh1bG9uZyBidWZmZXJzLCBmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBm bG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBkaXNjYXJkX2J1ZmZlcnMgKHVsb25nIGJ1ZmZlcnMpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfbXVsdGl0ZXh0dXJlZF9y ZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBm bG9hdCB4XzIsIGZsb2F0IHlfMiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0 W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3JlY3RhbmdsZSAoQ29nbC5QaXBlbGluZSBw aXBlbGluZSwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3JlY3Rhbmds ZXMgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBmbG9hdFtdIGNvb3JkaW5hdGVzLCB1aW50IG5fcmVjdGFuZ2xlcyk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5nbGUg KENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIs IGZsb2F0IHlfMiwgZmxvYXQgc18xLCBmbG9hdCB0XzEsIGZsb2F0IHNfMiwgZmxvYXQgdF8yKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3RleHR1 cmVkX3JlY3RhbmdsZXMgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSBmbG9hdFtdIGNvb3JkaW5hdGVzLCB1aW50IG5fcmVjdGFuZ2xlcyk7Cist CQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBmaW5pc2ggKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQg cmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFy KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2FscGhh X2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdl dF9ibHVlX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg Q29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhf dGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgQ29n bC5Cb29sIGdldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0 X2RpdGhlcl9lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIGludCBnZXRfZ3JlZW5fYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lz X3N0ZXJlbyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29n bC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3JlZF9iaXRz ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3Nh bXBsZXNfcGVyX3BpeGVsICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1 YmxpYyBDb2dsLlN0ZXJlb01vZGUgZ2V0X3N0ZXJlb19tb2RlICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3ZpZXdwb3J0NGZ2IChbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IHVub3duZWQgZmxvYXQgdmlld3BvcnRbNF0pOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF9o ZWlnaHQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgZmxvYXQg Z2V0X3ZpZXdwb3J0X3dpZHRoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIGZsb2F0IGdldF92aWV3cG9ydF94ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF95ICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgaWRlbnRpdHlfbWF0cml4ICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAo ZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBm bG9hdCBmYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZs b2F0IHpfZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCBwb3BfY2xpcCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCBwb3BfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8x LCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg Q29nbC5Cb29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo dCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVsc19pbnRvX2Jp dG1hcCAoaW50IHgsIGludCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0 bWFwIGJpdG1hcCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9p ZCByZXNvbHZlX3NhbXBsZXMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgdm9pZCByZXNvbHZlX3NhbXBsZXNfcmVnaW9uIChpbnQgeCwgaW50IHksIGludCB3aWR0 aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIg KENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRo X3RleHR1cmVfZW5hYmxlZCAoQ29nbC5Cb29sIGVuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChDb2ds LkJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBkaXRoZXJfZW5h YmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2ds Lk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3NhbXBsZXNfcGVyX3BpeGVsIChpbnQgc2FtcGxlc19wZXJfcGl4ZWwpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zdGVyZW9fbW9k ZSAoQ29nbC5TdGVyZW9Nb2RlIHN0ZXJlb19tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF92aWV3cG9ydCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIildCistCXB1 YmxpYyBpbnRlcmZhY2UgVGV4dHVyZSA6IENvZ2wuT2JqZWN0IHsKKy0JCXB1YmxpYyBDb2dsLkJv b2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQz MiBlcnJvcl9xdWFyayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJs aWMgQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWlu dDggZGF0YSk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBv dXRfZ2xfaGFuZGxlLCBvdXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKy0JCXB1YmxpYyB1aW50IGdl dF9oZWlnaHQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcHJlbXVsdGlwbGll ZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wg aXNfc2xpY2VkICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5U ZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGlu dCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0 cmlkZSwgdWludDggZGF0YSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBD b2dsLlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGli LkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJl IG5ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3 aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29n bC5UZXh0dXJlIG5ld19mcm9tX3N1Yl90ZXh0dXJlIChpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50 IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVp Z2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9m b3JtYXQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9jb21wb25lbnRzIChDb2dsLlRleHR1cmVDb21wb25lbnRzIGNvbXBvbmVudHMpOworLQkJcHVi bGljIENvZ2wuQm9vbCBzZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dz dHJpZGUsIHVpbnQ4IGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ByZW11bHRpcGxpZWQg KENvZ2wuQm9vbCBwcmVtdWx0aXBsaWVkKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lv biAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93 aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxG b3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb25fZnJvbV9iaXRt YXAgKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rf d2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCist CXB1YmxpYyBzdHJ1Y3QgQW5nbGUgOiBpbnQzMiB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0 IEJvb2wgOiBpbnQgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIHR5cGVfaWQgPSAiY29nbF9jb2xvcl9nZXRfZ3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RydWN0IENvbG9yIHsKKy0JCXB1YmxpYyBDb2ds LkNvbG9yPyBjb3B5ICgpOworLQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZXF1YWwgKHZvaWQq IHYxLCB2b2lkKiB2Mik7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhICgpOworLQkJcHVibGlj IHVpbnQ4IGdldF9hbHBoYV9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYV9mbG9h dCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYmx1ZSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRf Ymx1ZV9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9ibHVlX2Zsb2F0ICgpOworLQkJcHVi bGljIGZsb2F0IGdldF9ncmVlbiAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfZ3JlZW5fYnl0ZSAo KTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfZ3JlZW5fZmxvYXQgKCk7CistCQlwdWJsaWMgZmxvYXQg Z2V0X3JlZCAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfcmVkX2J5dGUgKCk7CistCQlwdWJsaWMg ZmxvYXQgZ2V0X3JlZF9mbG9hdCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIGluaXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQg Ymx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgaW5pdF9mcm9tXzRmdiAoZmxvYXQgY29sb3JfYXJyYXkpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tXzR1YiAodWludDggcmVk LCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0X2Zyb21faHNsIChvdXQg Q29nbC5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBmbG9hdCBsdW1p bmFuY2UpOworLQkJcHVibGljIHZvaWQgcHJlbXVsdGlwbHkgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKGZsb2F0IGFscGhhKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV9ieXRl ICh1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfYWxwaGFfZmxvYXQgKGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlIChmbG9hdCBibHVlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4 IGJsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2JsdWVfZmxvYXQgKGZsb2F0IGJsdWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0 IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAo dWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBn cmVlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf Z3JlZW5fYnl0ZSAodWludDggZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2dyZWVuX2Zsb2F0IChmbG9hdCBncmVlbik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVkIChmbG9hdCByZWQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZF9ieXRl ICh1aW50OCByZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3JlZF9mbG9hdCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2 IildCistCQlwdWJsaWMgdm9pZCB0b19oc2wgKG91dCBmbG9hdCBodWUsIG91dCBmbG9hdCBzYXR1 cmF0aW9uLCBvdXQgZmxvYXQgbHVtaW5hbmNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHVucHJlbXVsdGlwbHkgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0cnVjdCBEZWJ1Z09iamVjdFR5cGVJ bmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGljIHVsb25nIGluc3Rh bmNlX2NvdW50OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbU2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBIYW5kbGUgeworLQkJcHVibGlj IHN0YXRpYyBHTGliLlR5cGUgZ2V0X3R5cGUgKCk7CistCQlwdWJsaWMgQ29nbC5IYW5kbGUgQHJl ZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9tYXRyaXhfZ2V0X2d0eXBl ICgpIildCistCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IHsKKy0JCXB1YmxpYyBmbG9hdCB4eDsKKy0J CXB1YmxpYyBmbG9hdCB5eDsKKy0JCXB1YmxpYyBmbG9hdCB6eDsKKy0JCXB1YmxpYyBmbG9hdCB3 eDsKKy0JCXB1YmxpYyBmbG9hdCB4eTsKKy0JCXB1YmxpYyBmbG9hdCB5eTsKKy0JCXB1YmxpYyBm bG9hdCB6eTsKKy0JCXB1YmxpYyBmbG9hdCB3eTsKKy0JCXB1YmxpYyBmbG9hdCB4ejsKKy0JCXB1 YmxpYyBmbG9hdCB5ejsKKy0JCXB1YmxpYyBmbG9hdCB6ejsKKy0JCXB1YmxpYyBmbG9hdCB3ejsK Ky0JCXB1YmxpYyBmbG9hdCB4dzsKKy0JCXB1YmxpYyBmbG9hdCB5dzsKKy0JCXB1YmxpYyBmbG9h dCB6dzsKKy0JCXB1YmxpYyBmbG9hdCB3dzsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdHJpeD8gY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCog djIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAo KTsKKy0JCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9h dCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlwdWJs aWMgdW5vd25lZCBmbG9hdFtdIGdldF9hcnJheSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBp bnZlcnNlKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxl cik7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9u IHF1YXRlcm5pb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgaW5pdF90cmFuc2xhdGlvbiAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX2lkZW50aXR5 ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgbG9va19h dCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVf cG9zaXRpb25feiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3Rf eiwgZmxvYXQgd29ybGRfdXBfeCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9h dCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhf MSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFy KTsKKy0JCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0 LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCXB1YmxpYyB2b2lkIHByb2plY3RfcG9p bnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4s IHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworLQkJ cHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg eik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVf ZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJu aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN6 KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludCAocmVmIGZsb2F0IHgsIHJlZiBmbG9h dCB5LCByZWYgZmxvYXQgeiwgcmVmIGZsb2F0IHcpOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3Jt X3BvaW50cyAoaW50IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRz X2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsK Ky0JCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJhbnNwb3NlICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9p bl9mcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0 b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel8yZCwgZmxvYXQgd2lkdGhfMmQsIGZsb2F0IGhlaWdo dF8yZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCB2aWV3 XzJkX2luX3BlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25l YXIsIGZsb2F0IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IE9u c2NyZWVuRGlydHlJbmZvIHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0J CXB1YmxpYyBpbnQgd2lkdGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JcHVibGljIHN0cnVjdCBUZXh0dXJlVmVydGV4IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJ cHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgZmxvYXQgejsKKy0JCXB1YmxpYyBmbG9hdCB0eDsK Ky0JCXB1YmxpYyBmbG9hdCB0eTsKKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGNvbG9yOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdHJ1Y3QgVXNl ckRhdGFLZXkgeworLQkJcHVibGljIGludCB1bnVzZWQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xDb2xvclNpemVDaGVjayIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IF9Db2xvclNpemVDaGVjayB7 CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJb XSBjb21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xDb2xvcl9zaXplOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsTWF0cml4U2l6ZUNo ZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX01hdHJpeFNpemVD aGVjayB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFr IGNoYXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xNYXRyaXhfc2l6ZTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbFRleHR1 cmVWZXJ0ZXhTaXplQ2hlY2siLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVj dCBfVGV4dHVyZVZlcnRleFNpemVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xUZXh0 dXJlVmVydGV4X3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0FUVFJJQlVURV9UWVBFXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEF0dHJp YnV0ZVR5cGUgeworLQkJQllURSwKKy0JCVVOU0lHTkVEX0JZVEUsCistCQlTSE9SVCwKKy0JCVVO U0lHTkVEX1NIT1JULAorLQkJRkxPQVQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQklUTUFQX0VSUk9SXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVt IEJpdG1hcEVycm9yIHsKKy0JCUZBSUxFRCwKKy0JCVVOS05PV05fVFlQRSwKKy0JCUNPUlJVUFRf SU1BR0UKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfQkxFTkRfU1RSSU5HX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEJsZW5kU3RyaW5n RXJyb3IgeworLQkJUEFSU0VfRVJST1IsCistCQlBUkdVTUVOVF9QQVJTRV9FUlJPUiwKKy0JCUlO VkFMSURfRVJST1IsCistCQlHUFVfVU5TVVBQT1JURURfRVJST1I7CistCQlwdWJsaWMgc3RhdGlj IHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQlVGRkVSX0JJVF8iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBl bnVtIEJ1ZmZlckJpdCB7CistCQlDT0xPUiwKKy0JCURFUFRILAorLQkJU1RFTkNJTAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCistCXB1YmxpYyBlbnVtIEJ1ZmZlclRhcmdldCB7CistCQlXSU5ET1dfQlVGRkVS LAorLQkJT0ZGU0NSRUVOX0JVRkZFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05F LAorLQkJUkVELAorLQkJR1JFRU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfREVQVEhfVEVTVF9GVU5DVElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IGVudW0gRGVwdGhUZXN0RnVuY3Rpb24geworLQkJTkVWRVIsCistCQlMRVNTLAorLQkJRVFVQUws CistCQlMRVFVQUwsCistCQlHUkVBVEVSLAorLQkJTk9URVFVQUwsCistCQlHRVFVQUwsCistCQlB TFdBWVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdz XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFn cyB7CistCQlURVhUVVJFX1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVRFWFRVUkVf WVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCVNIQURFUlNfR0xTTCwKKy0JCU9GRlND UkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9CTElULAorLQkJ Rk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBCT1Ms CistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJVEVYVFVSRV9O UE9UX0JBU0lDLAorLQkJVEVYVFVSRV9OUE9UX01JUE1BUCwKKy0JCVRFWFRVUkVfTlBPVF9SRVBF QVQsCistCQlQT0lOVF9TUFJJVEUsCistCQlURVhUVVJFXzNELAorLQkJTUFQX0JVRkZFUl9GT1Jf UkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCist CQlERVBUSF9URVhUVVJFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JcHVibGljIGVudW0gRmlsdGVyUmV0dXJuIHsKKy0JCUNPTlRJTlVFLAorLQkJUkVNT1ZFCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX0ZPR19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEZvZ01vZGUgeworLQkJTElORUFSLAorLQkJRVhQ T05FTlRJQUwsCistCQlFWFBPTkVOVElBTF9TUVVBUkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZSQU1FX0VWRU5UXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQlw dWJsaWMgZW51bSBGcmFtZUV2ZW50IHsKKy0JCVNZTkMsCistCQlDT01QTEVURQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9G UkFNRUJVRkZFUl9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0g RnJhbWVidWZmZXJFcnJvciB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRlJBTUVCVUZGRVJf RVJST1JfQUxMT0NBVEUiKV0KKy0JCUZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRFOworLQkJcHVi bGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0lORElDRVNfVFlQRV9VTlNJR05F RF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gSW5kaWNlc1R5cGUgewor LQkJQllURSwKKy0JCVNIT1JULAorLQkJSU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0FMUEhBX0ZVTkNf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsQWxwaGFGdW5j IHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRF UiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFM X0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxG aWx0ZXIgeworLQkJTkVBUkVTVCwKKy0JCUxJTkVBUiwKKy0JCU5FQVJFU1RfTUlQTUFQX05FQVJF U1QsCistCQlMSU5FQVJfTUlQTUFQX05FQVJFU1QsCistCQlORUFSRVNUX01JUE1BUF9MSU5FQVIs CistCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9N QVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVY VFVSRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxXcmFw TW9kZSB7CistCQlSRVBFQVQsCistCQlDTEFNUF9UT19FREdFLAorLQkJQVVUT01BVElDCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX1BJUEVMSU5FX0FMUEhBX0ZVTkNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBlbnVtIFBpcGVsaW5lQWxwaGFGdW5jIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFM LAorLQkJTEVRVUFMLAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJ QUxXQVlTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5FX0NVTExfRkFDRV9NT0RFXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUN1bGxGYWNlTW9kZSB7CistCQlOT05FLAor LQkJRlJPTlQsCistCQlCQUNLLAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9GSUxURVJfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lRmlsdGVyIHsKKy0J CU5FQVJFU1QsCistCQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElO RUFSX01JUE1BUF9ORUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElORUFS X01JUE1BUF9MSU5FQVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBlbnVtIFBp cGVsaW5lV3JhcE1vZGUgeworLQkJUkVQRUFULAorLQkJTUlSUk9SRURfUkVQRUFULAorLQkJQ0xB TVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJQworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVhFTF9GT1JNQVRfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor LQlwdWJsaWMgZW51bSBQaXhlbEZvcm1hdCB7CistCQlBTlksCistCQlBXzgsCistCQlSR0JfNTY1 LAorLQkJUkdCQV80NDQ0LAorLQkJUkdCQV81NTUxLAorLQkJWVVWLAorLQkJR184LAorLQkJUkdf ODgsCistCQlSR0JfODg4LAorLQkJQkdSXzg4OCwKKy0JCVJHQkFfODg4OCwKKy0JCUJHUkFfODg4 OCwKKy0JCUFSR0JfODg4OCwKKy0JCUFCR1JfODg4OCwKKy0JCVJHQkFfMTAxMDEwMiwKKy0JCUJH UkFfMTAxMDEwMiwKKy0JCUFSR0JfMjEwMTAxMCwKKy0JCUFCR1JfMjEwMTAxMCwKKy0JCVJHQkFf ODg4OF9QUkUsCistCQlCR1JBXzg4ODhfUFJFLAorLQkJQVJHQl84ODg4X1BSRSwKKy0JCUFCR1Jf ODg4OF9QUkUsCistCQlSR0JBXzQ0NDRfUFJFLAorLQkJUkdCQV81NTUxX1BSRSwKKy0JCVJHQkFf MTAxMDEwMl9QUkUsCistCQlCR1JBXzEwMTAxMDJfUFJFLAorLQkJQVJHQl8yMTAxMDEwX1BSRSwK Ky0JCUFCR1JfMjEwMTAxMF9QUkUsCistCQlERVBUSF8xNiwKKy0JCURFUFRIXzMyLAorLQkJREVQ VEhfMjRfU1RFTkNJTF84CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIGVudW0gUmVhZFBpeGVsc0ZsYWdzIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9SRUFE X1BJWEVMU19DT0xPUl9CVUZGRVIiKV0KKy0JCVJFQURfUElYRUxTX0NPTE9SX0JVRkZFUgorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9SRU5ERVJFUl9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVu dW0gUmVuZGVyZXJFcnJvciB7CistCQlYTElCX0RJU1BMQVlfT1BFTiwKKy0JCUJBRF9DT05TVFJB SU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX1NIQURFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFNoYWRlclR5cGUgeworLQkJVkVS VEVYLAorLQkJRlJBR01FTlQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfU1RFUkVPXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlwdWJsaWMgZW51bSBTdGVyZW9Nb2RlIHsKKy0JCUJPVEgsCistCQlMRUZULAorLQkJUklH SFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfU1lTVEVNX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFN5c3RlbUVycm9yIHsKKy0JCVVO U1VQUE9SVEVELAorLQkJTk9fTUVNT1JZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfQ09NUE9ORU5UU18iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVi bGljIGVudW0gVGV4dHVyZUNvbXBvbmVudHMgeworLQkJQSwKKy0JCVJHLAorLQkJUkdCLAorLQkJ UkdCQSwKKy0JCURFUFRICistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIGVudW0gVGV4dHVy ZUVycm9yIHsKKy0JCVNJWkUsCistCQlGT1JNQVQsCistCQlCQURfUEFSQU1FVEVSLAorLQkJVFlQ RTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZUZsYWdzIHsKKy0JCU5PTkUsCistCQlOT19BVVRP X01JUE1BUCwKKy0JCU5PX1NMSUNJTkcsCistCQlOT19BVExBUworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX1RZ UEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBlbnVtIFRleHR1cmVUeXBlIHsKKy0JCUAyRCwKKy0JCUAzRCwKKy0JCVJFQ1RB TkdMRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9WRVJUSUNFU19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFZlcnRpY2VzTW9kZSB7Cist CQlQT0lOVFMsCistCQlMSU5FUywKKy0JCUxJTkVfTE9PUCwKKy0JCUxJTkVfU1RSSVAsCistCQlU UklBTkdMRVMsCistCQlUUklBTkdMRV9TVFJJUCwKKy0JCVRSSUFOR0xFX0ZBTgorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9X SU5ESU5HXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBXaW5kaW5nIHsK Ky0JCUNMT0NLV0lTRSwKKy0JCUNPVU5URVJfQ0xPQ0tXSVNFCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1dJTlNZU19GRUFU VVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBXaW5zeXNGZWF0dXJl IHsKKy0JCU1VTFRJUExFX09OU0NSRUVOLAorLQkJU1dBUF9USFJPVFRMRSwKKy0JCVZCTEFOS19D T1VOVEVSLAorLQkJVkJMQU5LX1dBSVQsCistCQlURVhUVVJFX0ZST01fUElYTUFQLAorLQkJU1dB UF9CVUZGRVJTX0VWRU5ULAorLQkJU1dBUF9SRUdJT04sCistCQlTV0FQX1JFR0lPTl9USFJPVFRM RSwKKy0JCVNXQVBfUkVHSU9OX1NZTkNIUk9OSVpFRCwKKy0JCUJVRkZFUl9BR0UsCistCQlTWU5D X0FORF9DT01QTEVURV9FVkVOVCwKKy0JCU5fRkVBVFVSRVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0 Rm9yZWFjaFR5cGVDYWxsYmFjayAoQ29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAy LjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgQ29nbC5Cb29sIE1hdGVy aWFsTGF5ZXJDYWxsYmFjayAoQ29nbC5NYXRlcmlhbCBtYXRlcmlhbCwgaW50IGxheWVyX2luZGV4 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2Vf cG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIGRlbGVn YXRlIHZvaWQgT25zY3JlZW5EaXJ0eUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBD b2dsLk9uc2NyZWVuRGlydHlJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAzLjkpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sg KENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSld CistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9u c2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBQaXBlbGluZUxh eWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZy YW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQg VXNlckRhdGFEZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0FGSVJTVF9CSVQiKV0KKy0J cHVibGljIGNvbnN0IGludCBBRklSU1RfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0FfQklUIildCistCXB1YmxpYyBjb25zdCBp bnQgQV9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNPR0xfQkdSX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQ VEhfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BSRU1VTFRfQklUIild CistCXB1YmxpYyBjb25zdCBpbnQgUFJFTVVMVF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfU1RFTkNJTF9CSVQiKV0KKy0JcHVi bGljIGNvbnN0IGludCBTVEVOQ0lMX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01BWF9XQVNURSIpXQorLQlwdWJs aWMgY29uc3QgaW50IFRFWFRVUkVfTUFYX1dBU1RFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGJlZ2luX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjaGVja19leHRlbnNpb24gKHN0cmlu ZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVhciAoQ29nbC5Db2xvciBjb2xv ciwgdWxvbmcgYnVmZmVycyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lv bl9DTFVUVEVSIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0 dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVy ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19tYXRyaXhf cHJpbnQgKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBkZWJ1Z19vYmplY3RfZm9yZWFjaF90eXBlIChDb2dsLkRlYnVnT2JqZWN0Rm9y ZWFjaFR5cGVDYWxsYmFjayBmdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIGRlYnVnX29iamVjdF9wcmludF9pbnN0YW5jZXMgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlz YWJsZV9mb2cgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgZmVhdHVyZXNfYXZhaWxhYmxlIChDb2dsLkZlYXR1cmVGbGFncyBmZWF0 dXJlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmbHVzaCAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0 IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zh cik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0 IGludCBibHVlLCBvdXQgaW50IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9kZXB0aF90 ZXN0X2VuYWJsZWQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9kcmF3X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0 cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCogZ2V0X3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBn dHlwZV9tYXRyaXhfZ2V0X3R5cGUgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX29uc2NyZWVuICh2b2lkKiBvYmpl Y3QpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19waXBl bGluZSAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlz X3ZlcnRleF9idWZmZXJfaW5kaWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJv dHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBl cnNwZWN0aXZlIChmbG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQg el9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAo Q29nbC5UZXh0dXJlVmVydGV4IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIENvZ2wuQm9vbCB1 c2VfY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcG9wX3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21hdHJpeCAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX3NvdXJjZSAodm9pZCogbWF0ZXJpYWwp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHJlY3RhbmdsZSAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwg ZmxvYXQgeV8yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3Rh bmdsZV93aXRoX211bHRpdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQg eDIsIGZsb2F0IHkyLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB0ZXhf Y29vcmRzLCBpbnQgdGV4X2Nvb3Jkc19sZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9h dCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwgZmxvYXQgdHgy LCBmbG9hdCB0eTIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVj dGFuZ2xlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVp bnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJl Y3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRlIChm bG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2Nh bGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFj ZV9jdWxsaW5nX2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf ZGVwdGhfdGVzdF9lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5z aXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW9kZWx2 aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJvamVj dGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVl biwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUs IHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3Rl eHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBz dHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5Cb29sIHNoYWRlcl9pc19jb21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgQ29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3Vy Y2UpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFw IChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVs Rm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSB0ZXh0dXJlX25ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9y bWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZpbGUgKHN0cmlu ZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50 ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVp bnQgZ2xfdGFyZ2V0LCB1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwg dWludCB5X3BvdF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfd2l0aF9zaXplICh1aW50IHdpZHRo LCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQg aW50ZXJuYWxfZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm0g KENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2FkZCAoQ29nbC5I YW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUsIHVpbnQ4IG5fY29tcG9uZW50cywg Q29nbC5BdHRyaWJ1dGVUeXBlIHR5cGUsIENvZ2wuQm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3Ry aWRlLCB2b2lkKiBwb2ludGVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAo Q29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHZlcnRleF9idWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmli dXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUg aGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5k bGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5f aW5kZXgsIGludCBtYXhfaW5kZXgsIGludCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJp bmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVy dGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9i dWZmZXJfaW5kaWNlc19nZXRfZm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuSW5kaWNlc1R5cGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRs ZSBpbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQg bl92ZXJ0aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4y IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu OCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWlu dCB3aWR0aCwgdWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1 YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNj cmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4 MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVl biwgdWludDMyIHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDEx TWFza0NhbGxiYWNrIHVwZGF0ZSk7CistfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVy LTUtY3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGI4ZDgzOGQwLi4wMDAwMDAwMAorLS0tIHZhcGkvbXV0 dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTU4ICswLDAg QEAKKy1uYW1lc3BhY2UgQ2x1dHRlciB7CistICBbQ0NvZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9U WVBFX0FDVE9SX0JPWCIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0gIHB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfYWN0b3JfYm94X2Zyb21fdmVydGljZXMiKV0KKy0gICAgcHVibGljIEFjdG9yQm94LmZyb21f dmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworLSAgfQorLQorLSAgcHVibGljIHN0 cnVjdCBNYXRyaXggOiBDb2dsLk1hdHJpeCB7CistICB9CistCistICBwdWJsaWMgY2xhc3MgQmFj a2VuZCA6IEdMaWIuT2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1 YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25Hcm91cCBncm91cCk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQgKCkgdGhyb3dz IEdMaWIuRXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHVub3du ZWQgQ2x1dHRlci5TdGFnZVdpbmRvdyBjcmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBl cikgdGhyb3dzIEdMaWIuRXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0 dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgICBbTm9X cmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdl ciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2 aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3Jh cHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0gICAgW05v V3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2ZlYXR1cmVzICgpOworLSAg ICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIHBvc3RfcGFyc2UgKCkgdGhy b3dzIEdMaWIuRXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIGJv b2wgcHJlX3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAg ICBwdWJsaWMgdmlydHVhbCB2b2lkIHJlZHJhdyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistICB9 CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfYm94X2dldF90eXBlICgpIildCistICBwdWJsaWMgY2xhc3MgQm94 IDogQ2x1dHRlci5BY3RvciB7CistICAgIHB1YmxpYyBDbHV0dGVyLkxheW91dE1hbmFnZXIgbGF5 b3V0X21hbmFnZXIgeyBnZXQ7IHNldDsgfQorLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0g IkNMVVRURVJfVFlQRV9DT0xPUiIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfY29sb3JfZnJvbV9obHMiKV0KKy0gICAgcHVibGljIENvbG9yLmZyb21faGxzIChmbG9h dCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistICAgIFtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3BpeGVsIildCistICAgIHB1YmxpYyBDb2xvci5m cm9tX3BpeGVsICh1aW50MzIgcGl4ZWwpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJf Y29sb3JfZnJvbV9zdHJpbmciKV0KKy0gICAgcHVibGljIENvbG9yLmZyb21fc3RyaW5nIChzdHJp bmcgc3RyKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5n IildCistICAgIHB1YmxpYyBib29sIHBhcnNlX3N0cmluZyAoc3RyaW5nIHN0cik7CistICAgIHB1 YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBnZXRfc3RhdGljIChDbHV0dGVyLlN0 YXRpY0NvbG9yIGNvbG9yKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jb250YWluZXJfZ2V0X3R5 cGUgKCkiKV0KKy0gIHB1YmxpYyBpbnRlcmZhY2UgQ29udGFpbmVyIDogR0xpYi5PYmplY3Qgewor LSAgICBwdWJsaWMgdm9pZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKy0g ICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3By b3BlcnR5IildCistICAgIHB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRf Y2hpbGRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0gICAgW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19saXN0X2NoaWxkX3Byb3BlcnRpZXMiKV0KKy0g ICAgcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNwZWNbXSBsaXN0X2NoaWxkX3Byb3Bl cnRpZXMgKCk7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2V2ZW50X2dldF90eXBlICgp IildCistICBbQ29tcGFjdF0KKy0gIHB1YmxpYyBjbGFzcyBFdmVudCB7CistICAgIHB1YmxpYyBD bHV0dGVyLkFueUV2ZW50IGFueSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlFdmVudCAq KSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuQnV0dG9uRXZlbnQgYnV0dG9uIHsgW0ND b2RlIChjbmFtZSA9ICIoQ2x1dHRlckJ1dHRvbkV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJs aWMgQ2x1dHRlci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlckNyb3NzaW5nRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLktleUV2 ZW50IGtleSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSBnZXQ7IH0K Ky0gICAgcHVibGljIENsdXR0ZXIuTW90aW9uRXZlbnQgbW90aW9uIHsgW0NDb2RlIChjbmFtZSA9 ICIoQ2x1dHRlck1vdGlvbkV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5T Y3JvbGxFdmVudCBzY3JvbGwgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU2Nyb2xsRXZlbnQg KikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVudCBzdGFnZV9z dGF0ZSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gZ2V0 OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNoRXZlbnQgdG91Y2ggeyBbQ0NvZGUgKGNuYW1l ID0gIihDbHV0dGVyVG91Y2hFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIu VG91Y2hwYWRQaW5jaEV2ZW50IHRvdWNocGFkX3BpbmNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlclRvdWNocGFkUGluY2hFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIu VG91Y2hwYWRTd2lwZUV2ZW50IHRvdWNocGFkX3N3aXBlIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlclRvdWNocGFkU3dpcGVFdmVudCAqKSIpXSBnZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAo dHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX2dldF90eXBlICgpIiwgY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5H cm91cCB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0gICAgcHVi bGljIHZvaWQgcmVkcmF3ICgpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93 IDogR0xpYi5PYmplY3QgeworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qg dm9pZCBhZGRfcmVkcmF3X2NsaXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsK Ky0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5 IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIGFic3RyYWN0IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfd3JhcHBlciAo KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgaGFzX3JlZHJh d19jbGlwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQg aGlkZSAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgaWdu b3JpbmdfcmVkcmF3X2NsaXBzICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJz dHJhY3QgYm9vbCByZWFsaXplICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJz dHJhY3Qgdm9pZCByZXNpemUgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistICAgIFtOb1dyYXBw ZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9jdXJzb3JfdmlzaWJsZSAoYm9vbCBj dXJzb3JfdmlzaWJsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2 b2lkIHNldF9mdWxsc2NyZWVuIChib29sIGlzX2Z1bGxzY3JlZW4pOworLSAgICBbTm9XcmFwcGVy XQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF91c2VyX3Jlc2l6 YWJsZSAoYm9vbCBpc19yZXNpemFibGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMg YWJzdHJhY3Qgdm9pZCBzaG93IChib29sIGRvX3JhaXNlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0g ICAgcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworLSAgfQorLQorLSAgW0NDb2Rl ICh0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ2x1 dHRlci5BY3RvciB7CistICAgIHB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBn ZXQ7IHNldDsgfQorLSAgICBwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsg c2V0OyB9CistICB9CistCistICBbQ29tcGFjdF0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGNsYXNzIFRpbWVvdXRQb29sIHsK Ky0gICAgW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLSAgICBwdWJs aWMgVGltZW91dFBvb2wgKGludCBwcmlvcml0eSk7CistICB9CistCistICBbQ0NvZGUgKGNwcmVm aXggPSAiQ0xVVFRFUl9GRUFUVVJFXyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0gIFtGbGFnc10KKy0gIHB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistICAg IFRFWFRVUkVfTlBPVDsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfYXZh aWxhYmxlIildCistICAgIHB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0gICAgW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfZ2V0X2FsbCIpXQorLSAgICBwdWJsaWMgc3RhdGlj IENsdXR0ZXIuRmVhdHVyZUZsYWdzIEBnZXQgKCk7CistICB9CistCistICBbQ0NvZGUgKHR5cGVf aWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLSAgcHVibGljIHN0cnVjdCBVbml0cyB7CistICAgIFtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl91bml0c19mcm9tX2NtIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX2NtIChm bG9hdCBjbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtIild CistICAgIHB1YmxpYyBVbml0cy5mcm9tX2VtIChmbG9hdCBlbSk7CistICAgIFtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtX2Zvcl9mb250IildCistICAgIHB1YmxpYyBVbml0 cy5mcm9tX2VtX2Zvcl9mb250IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistICAgIFtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX21tIildCistICAgIHB1YmxpYyBVbml0 cy5mcm9tX21tIChmbG9hdCBtbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0 c19mcm9tX3BpeGVscyIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9waXhlbHMgKGludCBweCk7 CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3B0IildCistICAgIHB1 YmxpYyBVbml0cy5mcm9tX3B0IChmbG9hdCBwdCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl91bml0c19mcm9tX3N0cmluZyIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9zdHJpbmcg KHN0cmluZyBzdHIpOworLSAgfQorLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00 LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQorc2ltaWxhcml0 eSBpbmRleCA5MiUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFs YQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQoraW5kZXggYjhk ODM4ZDAuLjg5MjI0YmU2IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20u dmFsYQorKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQorQEAgLTEsOSArMSw0 IEBACisgbmFtZXNwYWNlIENsdXR0ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJf VFlQRV9BQ1RPUl9CT1giLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistICBwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9t X3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKy0gIH0KKyAKKyAgIHB1YmxpYyBz dHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRyaXggeworICAgfQorQEAgLTE4LDggKzEzLDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCB2 b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAgICAgW05vV3JhcHBl cl0KKy0gICAgcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0 X2RldmljZV9tYW5hZ2VyICgpOworLSAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVh bCBDbHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CisgICAgIFtOb1dyYXBwZXJd CisgICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CitAQCAtODMsMTAgKzc2 LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAorICAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgICBwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93 IDogR0xpYi5PYmplY3QgeworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qg dm9pZCBhZGRfcmVkcmF3X2NsaXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsK Ky0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5 IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAgcHVi bGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKyAgICAgW05vV3JhcHBlcl0K K2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMgdmFwaS9tdXR0ZXItY2x1dHRl ci02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggNjMlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1j bHV0dGVyLTUuZGVwcworcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitpbmRl eCAzZjVhOTJhNi4uN2E3MGQ2ZGYgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRl cHMKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTYuZGVwcworQEAgLTEsNCArMSw0IEBACisgYXRr CisgY2Fpcm8KKyBqc29uLWdsaWItMS4wCistbXV0dGVyLWNvZ2wtNQorK211dHRlci1jb2dsLTYK K2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkgdmFwaS9tdXR0ZXItY2x1dHRl ci02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggOTMlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1j bHV0dGVyLTUudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitpbmRl eCAyNGY3ZjZiMS4uMDEzMGE5M2MgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZh cGkKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyog bXV0dGVyLWNsdXR0ZXItNS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5 LiAqLworKy8qIG11dHRlci1jbHV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8g bm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1l c3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXgg PSAiY2x1dHRlcl8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3Bh Y2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAi Y2x1dHRlcl8iKV0KKyBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCW5hbWVzcGFjZSBLZXkgeworIAkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY25hbWUgPSAi Q0xVVFRFUl9LRVlfMCIpXQorQEAgLTQ2NjEsMjIgKzQ2NjEsMTQgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZvaWQgYWxsb2NhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWxs b2NhdGlvbkZsYWdzIGZsYWdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9uLCAu Li4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0 aW9uIGFuaW1hdGVfd2l0aF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgLi4uKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRl X3dpdGhfYWxwaGF2IChDbHV0dGVyLkFscGhhIGFscGhhLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9j bmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41KV0gc3RyaW5nW10g cHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0 aF90aW1lbGluZSAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgLi4uKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBh bmltYXRlX3dpdGhfdGltZWxpbmV2ICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVs aW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9s ZW5ndGhfcG9zID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5n dGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIu VmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGV2ICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9uLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUg PSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIuVmFsdWVbXSB2 YWx1ZXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIu VmVydGV4IGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8g YW5jZXN0b3IsIENsdXR0ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3Jl bGF0aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIEdyYXBo ZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsK KyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X3RyYW5zZm9ybSAo cmVmIENsdXR0ZXIuTWF0cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0 dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV90cmFuc2Zvcm1fdG9fcG9p bnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Qg dmVydGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgdm9pZCBi aW5kX21vZGVsIChHTGliLkxpc3RNb2RlbD8gbW9kZWwsIG93bmVkIENsdXR0ZXIuQWN0b3JDcmVh dGVDaGlsZEZ1bmMgY3JlYXRlX2NoaWxkX2Z1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorQEAgLTQ2ODgsMjAgKzQ2ODAsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgY29udGFpbnMgKENsdXR0ZXIu QWN0b3IgZGVzY2VuZGFudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgdm9pZCBjb250aW51ZV9wYWludCAoKTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BhaW50 IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKysJCXB1YmxpYyB2b2lkIGNv bnRpbnVlX3BpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5Db250ZXh0IGNyZWF0ZV9wYW5n b19jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBh bmdvLkxheW91dCBjcmVhdGVfcGFuZ29fbGF5b3V0IChzdHJpbmc/IHRleHQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGRlc3Ryb3lfYWxsX2NoaWxkcmVu ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGRldGFjaF9hbmltYXRpb24g KCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfZXZlbnQiKV0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIu RXZlbnQgZXZlbnQsIGJvb2wgY2FwdHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CisrCQlwdWJsaWMg dm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSBHcmFwaGVuZS5Qb2ludDNEIHZlcnRzWzRdKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHVu b3duZWQgQXRrLk9iamVjdCBnZXRfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0aW9uIGdldF9hY3Rpb24gKHN0 cmluZyBuYW1lKTsKK0BAIC00NzA5LDE2ICs0NzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJv eCBnZXRfYWxsb2NhdGlvbl9ib3ggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENs dXR0ZXIuR2VvbWV0cnkgZ2V0X2FsbG9jYXRpb25fZ2VvbWV0cnkgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAo Q2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBD bHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2FuY2hvcl9wb2ludCAob3V0IGZsb2F0IGFuY2hvcl94LCBvdXQgZmxvYXQgYW5jaG9y X3kpOworKwkJcHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0 b3I/IGFuY2VzdG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9p bnQzRCB2ZXJ0c1s0XSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuR3Jh dml0eSBnZXRfYW5jaG9yX3BvaW50X2dyYXZpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gZ2V0X2FuaW1hdGlvbiAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYmFj a2dyb3VuZF9jb2xvciAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9nZXRfYWN0b3Jf YnlfZ2lkIildCitAQCAtNDc2OCw4ICs0NzUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uX3NldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yRmxhZ3MgZ2V0X2ZsYWdzICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHVpbnQzMiBnZXRfZ2lkICgpOworIAkJW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2hhc19wb2ludGVyIildCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX3BvaW50ZXIgKCk7CitAQCAtNDg0 OCw4ICs0ODMxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuVGV4 dERpcmVjdGlvbiBnZXRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm0gKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm1hdGlv bl9tYXRyaXggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlBhaW50Vm9sdW1lIGdldF90cmFuc2Zvcm1lZF9wYWludF92b2x1bWUgKENs dXR0ZXIuQWN0b3IgcmVsYXRpdmVfdG9fYW5jZXN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorQEAgLTQ4OTIsNyArNDg3Myw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBib29sIGhhc19tYXBwZWRfY2xvbmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZpcnR1YWwgYm9vbCBoYXNfb3ZlcmxhcHMgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuMiIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV9hbGwg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0 X2NoaWxkX2Fib3ZlIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5n KTsKK0BAIC00OTEyLDEwICs0ODkzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGJvb2wgaXNfc2NhbGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1 YmxpYyBib29sIGlzX3Zpc2libGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXIgKENsdXR0 ZXIuQWN0b3I/IGFib3ZlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlcl9ib3R0b20gKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAo KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC42IildCitAQCAtNDkyOCwxNyArNDkwNSwxMiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRp b24gb3JpZW50YXRpb24pOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg cGFpbnRfbm9kZSAoQ2x1dHRlci5QYWludE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQor KwkJcHVibGljIHZvaWQgcGlja19ib3ggKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0 LCBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlwdWJsaWMgdm9pZCBwb3BfaW50ZXJuYWwgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9pbnRlcm5hbCAoKTsKKyAJ CXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXdfd2l0aF9jbGlwIChDYWlyby5SZWN0YW5n bGVJbnQ/IGNsaXApOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlIChDbHV0dGVyLkFjdG9yPyBi ZWxvdyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2VfdG9wICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX2FjdGlvbiAoQ2x1dHRlci5BY3Rp b24gYWN0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTYwLDggKzQ5 MzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZWZmZWN0 X2J5X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdm9pZCByZW1vdmVfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHJlcGFyZW50IChDbHV0dGVyLkFjdG9yIG5ld19wYXJl bnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlcGxh Y2VfY2hpbGQgKENsdXR0ZXIuQWN0b3Igb2xkX2NoaWxkLCBDbHV0dGVyLkFjdG9yIG5ld19jaGls ZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwNDYsOCArNTAxNiw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZSAoZG91YmxlIHNj YWxlX3gsIGRvdWJsZSBzY2FsZV95KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfc2NhbGVfZnVsbCAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95LCBmbG9hdCBj ZW50ZXJfeCwgZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zY2FsZV93aXRoX2dyYXZpdHkgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVf eSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZV96IChkb3VibGUgc2NhbGVfeik7CisgCQlwdWJs aWMgdm9pZCBzZXRfc2l6ZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CitAQCAtNTExMCwx MSArNTA3OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgYm9vbCBjaGlsZF90cmFuc2Zvcm1fc2V0IHsgZ2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBjbGlwIHsg b3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY2xpcF9yZWN0IHsgb3duZWQg Z2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdl dDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBj bGlwX3RvX2FsbG9jYXRpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitA QCAtNTE5OSwxMiArNTE2NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWlu dCBvcGFjaXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBpdm90X3BvaW50 IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2lu dCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJ cHVibGljIGZsb2F0IHBpdm90X3BvaW50X3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIu UG9pbnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBv aW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKyAJCXB1YmxpYyBib29sIHJlYWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vz c29yTWV0aG9kXQorQEAgLTUyMjUsMTMgKzUxOTAsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGRvdWJsZSByb3RhdGlvbl9hbmdsZV96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRl eCByb3RhdGlvbl9jZW50ZXJfeCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhl bmUuUG9pbnQzRCByb3RhdGlvbl9jZW50ZXJfeCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0 ZXggcm90YXRpb25fY2VudGVyX3kgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50M0Qgcm90YXRpb25fY2VudGVyX3kgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVy dGV4IHJvdGF0aW9uX2NlbnRlcl96IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludDNEIHJvdGF0aW9uX2NlbnRlcl96IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdy YXZpdHkgcm90YXRpb25fY2VudGVyX3pfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CitAQCAtNTI1Nyw3 ICs1MjIyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgc2hvd19vbl9z ZXRfcGFyZW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgc2l6ZSB7IG93bmVk IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplIHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlRl eHREaXJlY3Rpb24gdGV4dF9kaXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCitAQCAtNTMxOSwxMSArNTI4NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBtb3Rpb25fZXZlbnQgKENsdXR0ZXIuTW90aW9uRXZl bnQgZXZlbnQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYXJl bnRfc2V0IChDbHV0dGVyLkFjdG9yPyBvbGRfcGFyZW50KTsKKysJCVtIYXNFbWl0dGVyXQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg cGljayAoQ2x1dHRlci5Db2xvciBjb2xvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBwaWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbSGFzRW1pdHRl cl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHF1ZXVlX3JlbGF5b3V0ICgpOworQEAgLTUzNjEsNiArNTMyNywxMSBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1 YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25v ZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFp bnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNv bnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTUzODgsMTkgKzUzNTksMTIgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHVsb25nIGdldF9tb2RlICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGlu ZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVn aXN0ZXJfZnVuYyAoQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1 cmUpOworIAkJcHVibGljIHZvaWQgc2V0X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1 bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21v ZGUgKHVsb25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRp bWVsaW5lIHRpbWVsaW5lKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBoYS53aXRo X2Z1bmMgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93bmVkIENsdXR0ZXIuQWxwaGFGdW5j IGZ1bmMpOworIAkJcHVibGljIGRvdWJsZSBhbHBoYSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7 IH0KK0BAIC01NDExLDM1ICs1Mzc1LDI2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGlj IGNsYXNzIEFuaW1hdGlvbiA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIEFuaW1h dGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmQgKHN0cmlu ZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuQW5pbWF0aW9uIGJpbmRfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBvd25l ZCBDbHV0dGVyLkludGVydmFsIGludGVydmFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFscGhhIGdldF9hbHBoYSAoKTsKKyAJCXB1YmxpYyB1aW50IGdl dF9kdXJhdGlvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW50ZXJ2YWwgZ2V0X2lu dGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAo KTsKKyAJCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIu T2JqZWN0IGdldF9vYmplY3QgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5l IGdldF90aW1lbGluZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19wcm9wZXJ0eSAoc3RyaW5nIHBy b3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBo YSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVp bnQgbXNlY3MpOworIAkJcHVibGljIHZvaWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7CisgCQlwdWJs aWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb2JqZWN0 IChHTGliLk9iamVjdCBvYmplY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0 dGVyLlRpbWVsaW5lPyB0aW1lbGluZSk7CistCQlwdWJsaWMgdm9pZCB1bmJpbmRfcHJvcGVydHkg KHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0 aW9uIHVwZGF0ZSAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJ cHVibGljIHZvaWQgdXBkYXRlX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgQ2x1dHRl ci5JbnRlcnZhbCBpbnRlcnZhbCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CisrCQlw dWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMg dWludCBkdXJhdGlvbiB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBz ZXQ7IH0KKyAJCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBHTGli Lk9iamVjdCBvYmplY3QgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlw dWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBD bHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNFbWl0dGVyXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgc3RhcnRlZCAoKTsKKyAJfQorQEAgLTU0NjAsMjEgKzU0MTUsMTgg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CisgCQlbTm9X cmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25H cm91cCBncm91cCk7CistCQlwdWJsaWMgdm9pZCBiZWxsX25vdGlmeSAoKTsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGli LkVycm9yOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRl ci5TdGFnZVdpbmRvdyBjcmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dz IEdMaWIuRXJyb3I7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1 cmVfY29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5h Z2VyICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQg KCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxh Z3MgZ2V0X2ZlYXR1cmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVi bGljIHVub3duZWQgQ2Fpcm8uRm9udE9wdGlvbnMgZ2V0X2ZvbnRfb3B0aW9ucyAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuSW5wdXRNZXRob2QgZ2V0X2lucHV0X21ldGhvZCAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7CisgCQlwdWJsaWMg ZG91YmxlIGdldF9yZXNvbHV0aW9uICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CitAQCAtNTQ5Niw5NSArNTQ0OCwxMSBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgc2V0dGluZ3NfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3Vy X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNz IEJlaGF2aW91ciA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJlaGF2aW91 ciAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdG9yc19mb3JlYWNoIChDbHV0dGVyLkJlaGF2aW91ckZv cmVhY2hGdW5jIGZ1bmMpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg YWxwaGFfbm90aWZ5IChkb3VibGUgYWxwaGFfdmFsdWUpOworLQkJcHVibGljIHZvaWQgYXBwbHkg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVy LkFjdG9yPiBnZXRfYWN0b3JzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBn ZXRfYWxwaGEgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250aF9hY3RvciAoaW50IGluZGV4Xyk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBpc19hcHBsaWVkIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZSAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVf YWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhKTsK Ky0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFwcGxpZWQg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVtb3ZlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9kZXB0aF9nZXRfdHlwZSAoKSIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2Ug PSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJEZXB0aCA6IENsdXR0ZXIuQmVoYXZp b3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJEZXB0aCAoQ2x1dHRlci5BbHBoYT8g YWxwaGEsIGludCBkZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgaW50IGRlcHRoX3N0 YXJ0LCBvdXQgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQp OworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CQlwdWJsaWMgaW50IGRlcHRoX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfc3Rh cnQgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfb3BhY2l0eV9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJPcGFj aXR5IDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3Vy KiIpXQorLQkJcHVibGljIEJlaGF2aW91ck9wYWNpdHkgKENsdXR0ZXIuQWxwaGE/IGFscGhhLCB1 aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgdWludDggb3BhY2l0 eV9zdGFydCwgb3V0IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVp bnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQg b3BhY2l0eV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgdWludCBvcGFjaXR5X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVo YXZpb3VyX3NjYWxlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNs YXNzIEJlaGF2aW91clNjYWxlIDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91clNjYWxlIChDbHV0dGVyLkFs cGhhPyBhbHBoYSwgZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBk b3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgZG91YmxlIHhfc2Nh bGVfc3RhcnQsIG91dCBkb3VibGUgeV9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB4X3NjYWxlX2Vu ZCwgb3V0IGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91Ymxl IHlfc2NhbGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsK Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIGRvdWJsZSB4X3NjYWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9z Y2FsZV9zdGFydCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9lbmQgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9iaW5fbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKyAJcHVibGljIGNsYXNzIEJpbkxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdl ciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCaW5MYXlvdXQgKENsdXR0ZXIuQmlu QWxpZ25tZW50IHhfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCwgQ2x1dHRlci5C aW5BbGlnbm1lbnQgeV9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJUKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBhZGQgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENs dXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24p OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0 ZXIuQWN0b3I/IGNoaWxkLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENs dXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBDbHV0dGVyLkJpbkFs aWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJpbkFs aWdubWVudCB4X2FsaWduIHsgZ2V0OyBzZXQ7IH0KK0BAIC01NzU4LDM3ICs1NjI2LDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfY2Fpcm9fdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgY2xhc3MgQ2Fpcm9UZXh0dXJlIDogQ2x1dHRlci5UZXh0dXJlLCBB dGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQ2Fpcm9UZXh0dXJlICh1 aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZV9yZWdpb24gKGludCB4X29m ZnNldCwgaW50IHlfb2Zmc2V0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2F1dG9fcmVzaXplICgpOworLQkJ cHVibGljIHZvaWQgZ2V0X3N1cmZhY2Vfc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhl aWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBpbnZh bGlkYXRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg aW52YWxpZGF0ZV9yZWN0YW5nbGUgKENhaXJvLlJlY3RhbmdsZUludD8gcmVjdCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXNpemUgKGJv b2wgdmFsdWUpOworLQkJcHVibGljIHZvaWQgc2V0X3N1cmZhY2Vfc2l6ZSAodWludCB3aWR0aCwg dWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJv b2wgYXV0b19yZXNpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgdWludCBzdXJmYWNlX2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2Vfd2lkdGggeyBnZXQ7IHNldDsgfQorLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIENhaXJvLlN1 cmZhY2UgY3JlYXRlX3N1cmZhY2UgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYXcg KENhaXJvLkNvbnRleHQgY3IpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYW52YXNfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIENhbnZhcyA6 IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworQEAgLTU5MjAsNjIgKzU3NTcsMjQgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZG91YmxlIGZh Y3Rvcik7CisgCQlwdWJsaWMgZG91YmxlIGZhY3RvciB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2RldmljZV9tYW5hZ2VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIERldmljZU1hbmFnZXIgOiBHTGliLk9i amVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgRGV2aWNlTWFuYWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIGFkZF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdz IChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQs IENsdXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZp cnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZp Y2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5J bnB1dERldmljZSBnZXRfY29yZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmlj ZV90eXBlKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIg Z2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZ2V0X2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfa2Jk X2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1 YmxpYyB2b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlT ZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZp Y2VUeXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7CistCQlwdWJsaWMg R0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4gcGVla19kZXZp Y2VzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVtb3ZlX2Rl dmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgc2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5TdGFnZSBzdGFn ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTEx eVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfZHdl bGxfY2xpY2tfdHlwZSAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5 cGUpOworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Q b2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ug ZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5J bnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdz X2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hl ZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTEx eV9kd2VsbF9jbGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNr VHlwZSBjbGlja190eXBlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0 X3N0YXJ0ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5 VGltZW91dFR5cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBwdHJfYTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNl LCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBD bHV0dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9u X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNs YXNzIERyYWdBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorIAkJcHVibGlj IERyYWdBY3Rpb24gKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJl Y3QgZHJhZ19hcmVhKTsKKysJCXB1YmxpYyBib29sIGdldF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJl Y3QgZHJhZ19hcmVhKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMg KCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsK KyAJCXB1YmxpYyB2b2lkIGdldF9kcmFnX3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQs IG91dCB1aW50IHlfdGhyZXNob2xkKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRz IChvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlwdWJsaWMgdm9p ZCBnZXRfcHJlc3NfY29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kp OworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEp OworKwkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXJlYSAoR3JhcGhlbmUuUmVjdD8gZHJhZ19hcmVh KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kcmFnX2F4aXMgKENsdXR0ZXIuRHJhZ0F4aXMgYXhpcyk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19oYW5kbGUgKENsdXR0ZXIuQWN0b3I/IGhhbmRsZSk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ190aHJlc2hvbGQgKGludCB4X3RocmVzaG9sZCwgaW50 IHlfdGhyZXNob2xkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgZHJhZ19hcmVhIHsgb3duZWQgZ2V0 OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsg c2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCQlwdWJsaWMgYm9vbCBkcmFnX2FyZWFfc2V0IHsgZ2V0OyB9CitAQCAtNjAxMSwxMyAr NTgxMCwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGlj IHZpcnR1YWwgYm9vbCBtb2RpZnlfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZv bHVtZSk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1 dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFp bnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQsIENsdXR0ZXIuRWZmZWN0UGFp bnRGbGFncyBmbGFncyk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBw aWNrIChDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwg dm9pZCBwaWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwb3N0X3BhaW50ICgpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBwb3N0X3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0 KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoKTsK KysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBw YWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2 b2lkIHF1ZXVlX3JlcGFpbnQgKCk7CisgCX0KK0BAIC02MDY4LDcgKzU4NjcsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBnZXRfbW9kZV9ncm91cCAoKTsKKyAJCXB1Ymxp YyBib29sIGdldF9wYWRfZXZlbnRfZGV0YWlscyAob3V0IHVpbnQgbnVtYmVyLCBvdXQgdWludCBt b2RlLCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRpb24gKENsdXR0ZXIuUG9pbnQgcG9zaXRpb24pOworKwkJ cHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9uIChHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9yZWxhdGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC02MzA4 LDcgKzYxMDcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXhpc192YWx1ZSAoW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIGRvdWJsZVtdIGF4ZXMsIENsdXR0ZXIuSW5wdXRBeGlzIGF4aXMsIG91dCBk b3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBi b29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIENsdXR0ZXIu UG9pbnQgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNl cXVlbmNlPyBzZXF1ZW5jZSwgR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGV2aWNlX2lkICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMjIsNyArNjEyMSw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBib29sIGdldF9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2dyYWJiZWRf YWN0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOwor KwkJcHVibGljIHZpcnR1YWwgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19jdXJzb3Ig KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjM0NCwxNiArNjE0MywxNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdl dF9wb2ludGVyX3N0YWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvZHVjdF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuU2VhdCBnZXRfc2VhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBnZXRfc2xhdmVf ZGV2aWNlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3ZlbmRvcl9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdm9pZCBncmFiIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1Ymxp YyBib29sIGlzX2dyb3VwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKy0J CXB1YmxpYyBib29sIGlzX21vZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91cCwgdWludCBidXR0 b24pOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2 aWNlIG90aGVyX2RldmljZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX21vZGVfc3dpdGNo X2J1dHRvbiAodWludCBncm91cCwgdWludCBidXR0b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVf a2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5 Y29kZV90b19ldmRldiAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3Igc2VxdWVuY2VfZ2V0X2dyYWJiZWRfYWN0b3IgKENsdXR0ZXIuRXZlbnRTZXF1ZW5j ZSBzZXF1ZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTYzNjksMTIg KzYxNjksMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgdW5ncmFiICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgdXBkYXRlX2Zy b21fZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgdXBkYXRlX3N0YWdlKTsKKysJCVtO b1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9mcm9tX3Rvb2wgKENsdXR0 ZXIuSW5wdXREZXZpY2VUb29sIHRvb2wpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRl dmljZV9tYW5hZ2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVy LklucHV0TW9kZSBkZXZpY2VfbW9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc3Ry aW5nIGRldmljZV9ub2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KK0BAIC02Mzk3LDYgKzYxOTYsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgc3RyaW5nIG5hbWUgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgcHJvZHVjdF9pZCB7IGdldDsgY29u c3RydWN0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5TZWF0IHNlYXQgeyBnZXQ7IGNvbnN0cnVjdDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdmVuZG9y X2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorQEAgLTY0MzQsNyArNjIzNCw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jYW5fc2hvd19wcmVlZGl0IChib29s IGNhbl9zaG93X3ByZWVkaXQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfaGludHMgKENs dXR0ZXIuSW5wdXRDb250ZW50SGludEZsYWdzIGhpbnQpOworIAkJcHVibGljIHZvaWQgc2V0X2Nv bnRlbnRfcHVycG9zZSAoQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIHB1cnBvc2UpOworLQkJ cHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJ cHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3Rh dGUgc3RhdGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X3By ZWVkaXRfdGV4dCAoc3RyaW5nIHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKK0BAIC02NDUzLDcgKzYy NTMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZp cnR1YWwgdm9pZCByZXNldCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3Rh dGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nPyBwcmVl ZGl0LCB1aW50IGN1cnNvcik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY0NzAsNyArNjI3MCw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0Q29udGVudFB1cnBv c2UgY29udGVudF9wdXJwb3NlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVi bGljIHNpZ25hbCB2b2lkIGNvbW1pdCAoc3RyaW5nIHRleHQpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLlJlY3Qgb2JqZWN0KTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoR3JhcGhlbmUuUmVjdCBv YmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1 cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2b2lk IGlucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOworQEAg LTY1NDYsMjcgKzYzNDYsMzEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEtleW1hcCAoKTsKKyAJ CXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIFBhbmdvLkRpcmVjdGlvbiBnZXRfZGlyZWN0aW9uICgpOworIAkJcHVibGljIHZpcnR1 YWwgYm9vbCBnZXRfbnVtX2xvY2tfc3RhdGUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3Rh dGVfY2hhbmdlZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAoKSIp XQorKwlwdWJsaWMgY2xhc3MgTGF5ZXJOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50 Tm9kZSoiKV0KKysJCXB1YmxpYyBMYXllck5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24sIENh aXJvLlJlY3RhbmdsZSB2aWV3cG9ydCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgdWludDgg b3BhY2l0eSk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheW91dF9tYW5hZ2VyX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIExh eW91dE1hbmFnZXIgOiBHTGliLkluaXRpYWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIExheW91dE1hbmFnZXIgKCk7 CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250 YWluZXIsIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9uRmxh Z3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQg Q2x1dHRlci5BbHBoYSBiZWdpbl9hbmltYXRpb24gKHVpbnQgZHVyYXRpb24sIHVsb25nIG1vZGUp OworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIs IENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXRfcHJv cGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwg c3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJcHVibGljIHZvaWQg Y2hpbGRfc2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0 b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9zZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29u dGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25h bWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGNyZWF0ZV9jaGlsZF9tZXRhIChDbHV0dGVyLkNv bnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRpb24g KCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5 IChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIGRvdWJsZSBnZXRfYW5pbWF0aW9uX3Byb2dyZXNzICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRh IGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworQEAgLTY2MjMsMTIgKzY0MjcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHJvdGVjdGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENvZ2wu SGFuZGxlIGNyZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3Qg KG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90YXJn ZXRfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwgb3V0 IGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHBhaW50X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0 IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf cGFnZV90dXJuX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCitAQCAtNjY0NSw2ICs2NDQ5LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBkb3VibGUgcGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMgeyBn ZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlv biA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1Ymxp YyBjbGFzcyBQYWludENvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVi bGljIHZvaWQgcG9wX2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcHVzaF9mcmFtZWJ1 ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlBhaW50Q29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7Cisr CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BhaW50X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBhaW50Tm9kZSB7CitAQCAt NjY1NCw3ICs2NDY4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWRk X211bHRpdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgdGV4 dF9jb29yZHMsIHVpbnQgdGV4dF9jb29yZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lkIGFkZF9yZWN0 YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBhZGRfdGV4dHVy ZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBmbG9hdCB5XzEs IGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50ICgpOworKwkJcHVi bGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJs aWMgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Tm9kZSBAcmVmICgpOworIAkJcHVibGljIHZvaWQg c2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworQEAgLTY2 NzIsNyArNjQ4Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGdldF9vcmlnaW4gKCk7Cisr CQlwdWJsaWMgdm9pZCBnZXRfb3JpZ2luIChvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZl cnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0 X3dpZHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY2ODIsNyArNjQ5 Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9oZWlnaHQgKGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0dGVyLlZlcnRl eCBvcmlnaW4pOworKwkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoR3JhcGhlbmUuUG9pbnQzRCBv cmlnaW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3dpZHRoIChmbG9hdCB3aWR0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAt Njc2OSwyNiArNjU4NCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRl ci5QYXRoIHBhdGggeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIG5vZGVfcmVh Y2hlZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgdWludCBpbmRleCk7CisgCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNs dXR0ZXJfcGlja19jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2NvbnRleHRf Z2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF91bnJl ZiIpXQorKwlbQ29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBpY2tDb250ZXh0IHsKKysJCXB1Ymxp YyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBpY2tDb250ZXh0 IEByZWYgKCk7CisrCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlw ZWxpbmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAlwdWJsaWMgY2xhc3MgUGlwZWxpbmVOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFBpcGVs aW5lTm9kZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50X2dldF90eXBlICgpIild CistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xh c3MgUG9pbnQgeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1 YmxpYyBzdGF0aWMgQ2x1dHRlci5Qb2ludCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlBv aW50IGNvcHkgKCk7CistCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIuUG9pbnQgYiwg b3V0IGZsb2F0IHhfZGlzdGFuY2UsIG91dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0JCXB1YmxpYyBi b29sIGVxdWFscyAoQ2x1dHRlci5Qb2ludCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOwor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgemVybyAoKTsKKy0JfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfcHJvcGVydHlfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0aW9uIDogQ2x1 dHRlci5UcmFuc2l0aW9uLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTY3OTgsMzMgKzY2MDYs NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFt ZSAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFt ZSB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90eXBlICgp IildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMg Y2xhc3MgUmVjdCB7CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsKKy0JCXB1 YmxpYyB3ZWFrIENsdXR0ZXIuU2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlJl Y3QgYWxsb2MgKCk7CistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0JCXB1Ymxp YyBib29sIGNvbnRhaW5zX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyBi b29sIGNvbnRhaW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJl Y3QgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIpOworLQkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENsdXR0ZXIu UG9pbnQgY2VudGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGlj IGZsb2F0IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0JCXB1Ymxp YyBmbG9hdCBnZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBpbml0IChm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2 b2lkIGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNl Y3Rpb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJsaWMgQ2x1 dHRlci5SZWN0IG5vcm1hbGl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxvYXQgZF94 LCBmbG9hdCBkX3kpOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxvYXQgc195 KTsKKy0JCXB1YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0IHJl cyk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7CistCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMC4yIildCisgCXB1YmxpYyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9yLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CitAQCAtNjkwNyw4ICs2Njg4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckFjdG9yKiIpXQorIAkJcHVibGljIFNjcm9sbEFjdG9yICgpOworIAkJcHVibGljIENsdXR0 ZXIuU2Nyb2xsTW9kZSBnZXRfc2Nyb2xsX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxf dG9fcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3Rv X3JlY3QgKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19wb2lu dCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3Qg KEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2Nyb2xsX21vZGUgKENs dXR0ZXIuU2Nyb2xsTW9kZSBtb2RlKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgc2Ny b2xsX21vZGUgeyBnZXQ7IHNldDsgfQorIAl9CitAQCAtNjkzMCw2ICs2NzExLDQ0IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7Cisg CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3NlYXRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGFic3RyYWN0IGNs YXNzIFNlYXQgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU2VhdCAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEEx MXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGJlbGxfbm90aWZ5 ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZl bnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7CisrCQlbTm9XcmFwcGVyXQorKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBjb3B5X2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgc3JjLCBD bHV0dGVyLkV2ZW50IGRlc3QpOworKwkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5w dXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBk ZXZpY2VfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBlbnN1cmVfYTExeV9zdGF0ZSAoKTsKKysJCVtO b1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZyZWVfZXZlbnRfZGF0YSAoQ2x1dHRl ci5FdmVudCBldmVudCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENs dXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3du ZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfa2V5Ym9hcmQgKCk7CisrCQlwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7CisrCQlwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X3BvaW50ZXIgKCk7CisrCQlwdWJsaWMg dm9pZCBnZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGlu Z3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlw ZSBnZXRfc3VwcG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5cGVzICgpOworKwkJcHVibGljIGJvb2wg Z2V0X3RvdWNoX21vZGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBHTGliLkxpc3Q8d2VhayBDbHV0 dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfa2Jk X2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1dHRlci5Qb2lu dGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X3Bv aW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdz KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgd2FycF9wb2ludGVyIChpbnQgeCwgaW50IHkpOwor KwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGJvb2wgdG91Y2hfbW9kZSB7IGdl dDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERl dmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0 dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlf ZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBs YXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0 cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxs Q2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3Rp bWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRl ckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGljIHNp Z25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBk ZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wg Y2xpY2tlZCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklu cHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOworKwl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9zZXR0aW5nc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDAyLDE4 ICs2ODIxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3NpemVfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1Ymxp YyBmbG9hdCBoZWlnaHQ7CistCQlwdWJsaWMgZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuU2l6ZSBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAoKTsK Ky0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5TaXplIGIpOworLQkJcHVibGljIHZvaWQg ZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0 aCwgZmxvYXQgaGVpZ2h0KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNzIFNu YXBDb25zdHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC03MDUyLDE0ICs2ODU5LDEy IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGZyZWV6ZV91cGRhdGVzICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2FjY2Vw dF9mb2N1cyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0 X3BvcyAoQ2x1dHRlci5QaWNrTW9kZSBwaWNrX21vZGUsIGludCB4LCBpbnQgeSk7CisrCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01v ZGUgcGlja19tb2RlLCBmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBib29sIGdldF9jYXB0 dXJlX2ZpbmFsX3NpemUgKENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsIGZsb2F0IHNjYWxlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29s b3IgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X2Rl ZmF1bHQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGdldF9m b2cgKCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9r ZXlfZm9jdXMgKCk7CitAQCAtNzA2NywxOSArNjg3MiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdm9pZCBnZXRfbWluaW11bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVp bnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29s IGdldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgYm9vbCBnZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0 dGVyLlBlcnNwZWN0aXZlIGdldF9wZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2Jv dW5kcyAoKTsKKysJCXB1YmxpYyBDYWlyby5SZWdpb24gZ2V0X3JlZHJhd19jbGlwICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Rocm90dGxlX21v dGlvbl9ldmVudHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorIAkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgYm9vbCBnZXRfdXNlX2ZvZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKyAJCXB1YmxpYyB2b2lkIGhpZGVfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KK0BA IC03MDk0LDE2ICs2ODk0LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHNldF9hY2NlcHRfZm9jdXMgKGJvb2wgYWNjZXB0X2ZvY3VzKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9mb2cgKENsdXR0ZXIuRm9nIGZvZyk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfa2V5X2ZvY3VzIChDbHV0dGVyLkFjdG9y PyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfbWluaW11bV9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50c19lbmFibGVk IChib29sIGVuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X25vX2NsZWFyX2hpbnQgKGJvb2wgbm9fY2xlYXIpOworIAkJcHVibGljIHZvaWQg c2V0X3BlcnNwZWN0aXZlIChDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90aHJvdHRsZV9tb3Rp b25fZXZlbnRzIChib29sIHRocm90dGxlKTsKK0BAIC03MTExLDggKzY5MDcsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FscGhh IChib29sIHVzZV9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3VzZV9mb2cgKGJvb2wgZm9nKTsKKyAJCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29yICgpOworIAkJ cHVibGljIHZvaWQgdGhhd191cGRhdGVzICgpOworIAkJcHVibGljIHZvaWQgdXBkYXRlX3Jlc291 cmNlX3NjYWxlcyAoKTsKK0BAIC03MTIyLDIwICs2OTE2LDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJcHVibGljIGJvb2wgY3Vyc29yX3Zpc2libGUgeyBnZXQ7IHNldDsg fQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBmb2cgeyBnZXQ7IHNl dDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0 b3Iga2V5X2ZvY3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBib29sIG5vX2NsZWFyX2hpbnQgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3Rp dmUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGlj IHN0cmluZyB0aXRsZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCQlwdWJsaWMgYm9vbCB1c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyBib29sIHVzZV9mb2cgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGUgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQorQEAgLTcxNTgsOCArNjk0Niw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1Ymxp YyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5TdGFnZT4gbGlzdF9zdGFnZXMgKCk7CisgCQlwdWJs aWMgdW5vd25lZCBHTGliLlNMaXN0PENsdXR0ZXIuU3RhZ2U+IHBlZWtfc3RhZ2VzICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlZmF1bHRfc3RhZ2UgKENsdXR0ZXIu U3RhZ2Ugc3RhZ2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENs dXR0ZXIuU3RhZ2UgZGVmYXVsdF9zdGFnZSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorQEAgLTcyMDYsMTYgKzY5OTIsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3Vy Y2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSk7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuU3RhdGVLZXk+IGdldF9rZXlz IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBH TGliLk9iamVjdD8gb2JqZWN0LCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhdGUgKCk7CisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIHN0cmluZz4gZ2V0X3N0YXRlcyAoKTsK KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdl dF90aW1lbGluZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVf a2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1l LCBHTGliLk9iamVjdD8gb2JqZWN0LCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3Rh dGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgdWludCBkdXJhdGlvbik7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGF0ZSBzZXRfa2V5IChz dHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIu T2JqZWN0IG9iamVjdCwgc3RyaW5nIHByb3BlcnR5X25hbWUsIHVpbnQgbW9kZSwgR0xpYi5WYWx1 ZSB2YWx1ZSwgZG91YmxlIHByZV9kZWxheSwgZG91YmxlIHBvc3RfZGVsYXkpOworQEAgLTcyMzYs MjQgKzcwMTYsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDb21wYWN0XQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTdGF0ZUtleSB7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRfcG9zdF9kZWxheSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgZG91YmxlIGdldF9wcmVfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1lICgpOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBHTGliLlR5cGUgZ2V0X3Byb3BlcnR5X3R5cGUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zb3VyY2Vf c3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3RhcmdldF9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyBib29sIGdldF92YWx1ZSAoR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N3 aXBlX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitA QCAtNzI2NSw1MyArNzAyOSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBzd2lwZSAoQ2x1 dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Td2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl90YWJsZV9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjQi KV0KKy0JcHVibGljIGNsYXNzIFRhYmxlTGF5b3V0IDogQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJMYXlvdXRNYW5hZ2VyKiIpXQorLQkJcHVibGljIFRhYmxlTGF5b3V0ICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIG91dCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLlRhYmxl QWxpZ25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIGludCBnZXRfY29sdW1uX2NvdW50ICgpOwor LQkJcHVibGljIHVpbnQgZ2V0X2NvbHVtbl9zcGFjaW5nICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB1aW50IGdldF9lYXNpbmdfZHVyYXRpb24gKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHVsb25nIGdldF9lYXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBnZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9v bCB4X2V4cGFuZCwgb3V0IGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGws IG91dCBib29sIHlfZmlsbCk7CistCQlwdWJsaWMgaW50IGdldF9yb3dfY291bnQgKCk7CistCQlw dWJsaWMgdWludCBnZXRfcm93X3NwYWNpbmcgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3BhbiAo Q2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGludCBjb2x1bW5fc3Bhbiwgb3V0IGludCByb3dfc3Bh bik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbmltYXRpb25z ICgpOworLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVt biwgaW50IHJvdyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdu bWVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWdu LCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIHZvaWQgc2V0X2Nv bHVtbl9zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9lYXNpbmdfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgYm9vbCB4X2V4cGFuZCwgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9maWxsLCBi b29sIHlfZmlsbCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcm93X3NwYWNpbmcgKHVpbnQgc3BhY2lu Zyk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNv bHVtbl9zcGFuLCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF91c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCXB1YmxpYyB1aW50IGNv bHVtbl9zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dWludCBlYXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCBy b3dfc3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJv b2wgdXNlX2FuaW1hdGlvbnMgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YXBfYWN0 aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1Ymxp YyBjbGFzcyBUYXBBY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworQEAgLTczMzksNyAr NzA1Niw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdl dF9jdXJzb3JfY29sb3IgKCk7CisgCQlwdWJsaWMgaW50IGdldF9jdXJzb3JfcG9zaXRpb24gKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2N1cnNv cl9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBn ZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJs aWMgdWludCBnZXRfY3Vyc29yX3NpemUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY3Vyc29yX3Zp c2libGUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfZWRpdGFibGUgKCk7CitAQCAtNzQ1OCw3ICs3 MTc1LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVu dCAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBjdXJzb3JfZXZlbnQgKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbSGFzRW1pdHRlcl0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxl dGVfdGV4dCAoaW50IHN0YXJ0X3BvcywgaW50IGVuZF9wb3MpOworQEAgLTc0OTcsOTIgKzcyMTQs OSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91 dD8gbGF5b3V0LCBDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1 cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMg Y2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5B bmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rv cioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21f ZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWln aHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdl dF9jb2dsX21hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENvZ2wuSGFuZGxlIGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wg cmVwZWF0X3gsIG91dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgYm9vbCBnZXRfc3luY19zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBi b29sIHNldF9hcmVhX2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwg aW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3Mg ZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9jb2dsX21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRs ZSBjb2dsX3RleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRl cl9xdWFsaXR5IChDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5h bWUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29s IHNldF9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhb XSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3Ry aWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJy b3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwg aW50IGhlaWdodCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9y OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRp byAoYm9vbCBrZWVwX2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xvYWRfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29sIHBp Y2tfd2l0aF9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jl cGVhdCAoYm9vbCByZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOworKwlwdWJsaWMg Y2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IgeworIAkJcHVibGljIENvZ2wuTWF0ZXJpYWwg Y29nbF9tYXRlcmlhbCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xf dGV4dHVyZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIGRpc2FibGVfc2xpY2luZyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0OyBzZXQ7IH0K Ky0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5IHsgZ2V0OyBz ZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRpbyB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9hc3luYyB7IHNl dDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfZGF0YV9hc3luYyB7 IHNldDsgfQorLQkJcHVibGljIGJvb2wgcGlja193aXRoX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3ggeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeSB7IGdldDsg c2V0OyB9CistCQlwdWJsaWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBsb2FkX2ZpbmlzaGVkIChH TGliLkVycm9yIGVycm9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaXhi dWZfY2hhbmdlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNpemVfY2hh bmdlIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX25v ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NjA4 LDcgKzcyNDIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXZlcnNlICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jl c3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgYm9v bCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5l LlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGlu dCBnZXRfY3VycmVudF9yZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitA QCAtNzY0NSw3ICs3Mjc5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmV2ZXJzZSAoYm9vbCByZXZl cnNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBzZXRf Y3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRlci5Qb2ludCBj XzIpOworKwkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoR3JhcGhlbmUu UG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RlbGF5ICh1aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KK0BAIC03NzQ0LDYgKzczNzgsMTEgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfdHJhbnNmb3JtX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRyYW5z Zm9ybU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGlj IFRyYW5zZm9ybU5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl90cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1lbGluZSwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03NzgzLDcgKzc0MjIsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlw cm90ZWN0ZWQgVmlydHVhbElucHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBnZXRfZGV2aWNl X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X21h bmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9tb3Rpb24g KHVpbnQ2NCB0aW1lX3VzLCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwg dm9pZCBub3RpZnlfYnV0dG9uICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwgQ2x1dHRl ci5CdXR0b25TdGF0ZSBidXR0b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3Rp ZnlfZGlzY3JldGVfc2Nyb2xsICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxEaXJlY3Rp b24gZGlyZWN0aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsKK0BAIC03 Nzk0LDI1ICs3NDMyLDI1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgbm90aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91Ymxl IHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX21vdGlv biAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVi bGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xv dCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFn ZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENs dXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNzIFpvb21B Y3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBa b29tQWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBv aW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAo Q2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKEdy YXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2Nh bF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4 aXMgZ2V0X3pvb21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMgKENsdXR0 ZXIuWm9vbUF4aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29tX2F4aXMg eyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRl ci5BY3RvciBhY3RvciwgQ2x1dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7 CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBHcmFwaGVuZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9jbmFtZSA9 ICJDbHV0dGVyQW5pbWF0YWJsZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRh YmxlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6IEdMaWIu T2JqZWN0IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJz dHJhY3QgYm9vbCBhbmltYXRlX3Byb3BlcnR5IChDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRpb24s IHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGluaXRpYWxfdmFsdWUsIEdMaWIuVmFs dWUgZmluYWxfdmFsdWUsIGRvdWJsZSBwcm9ncmVzcywgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBHTGli LlBhcmFtU3BlYyBmaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CitAQCAtNzgz MCw4ICs3NDY4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19uYW1l ID0gImFkZCIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFk ZF9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIHZvaWQgYWRkX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2 YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBj aGlsZF9nZXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCitAQCAtNzg1MywxMCArNzQ4OSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZmluZF9jaGlsZF9ieV9uYW1lIChzdHJpbmcg Y2hpbGRfbmFtZSk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNz X2ZpbmRfY2hpbGRfcHJvcGVydHkiKV0KKyAJCXB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFy YW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC40IildCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBAZm9yZWFjaCAoQ2x1dHRlci5D YWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBmb3JlYWNoX3dpdGhfaW50ZXJuYWxzIChDbHV0dGVyLkNhbGxiYWNrIGNhbGxiYWNrKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQg Q2x1dHRlci5DaGlsZE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjQiKV0KK0BAIC03ODc0LDggKzc1MDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIp XQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChD bHV0dGVyLkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworQEAgLTc4OTIsNyArNzUyMiw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBp bnZhbGlkYXRlX3NpemUgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZv aWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUg bm9kZSk7CisrCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFj dG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBw YWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc5MDgsMTAgKzc1MzgsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCisgCXB1YmxpYyBpbnRlcmZhY2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVj dCB7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19j bGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdl b21ldHJ5KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5k aW5nX3N3YXBzICgpOworIAkJW05vV3JhcHBlcl0KK0BAIC03OTM5LDE0ICs3NTY1LDE2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCB1bnJlYWxpemUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gImNsdXR0ZXJfYWN0b3JfYm94X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3Qg QWN0b3JCb3ggeworIAkJcHVibGljIGZsb2F0IHgxOworIAkJcHVibGljIGZsb2F0IHkxOworIAkJ cHVibGljIGZsb2F0IHgyOworIAkJcHVibGljIGZsb2F0IHkyOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWxsb2MgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19w aXhlbCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGFtcF90b19waXhlbCAocmVmIENsdXR0 ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyBib29sIGNvbnRhaW5zIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KK0BAIC03OTU1LDggKzc1ODMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5BY3RvckJveCBib3hfYik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistCQlwdWJsaWMgQWN0b3JC b3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCitAQCAtODAwMiw3ICs3NjI4LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHdlYWsgQ2Fpcm8uU3VyZmFjZSBpbWFnZTsKKyAJCXB1YmxpYyBDYWly by5SZWN0YW5nbGVJbnQgcmVjdDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xPUiIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xvciB7Cisg CQlwdWJsaWMgdWludDggcmVkOworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgwNDEsMjQg Kzc2NjcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4y IildCisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9n X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdHJ1Y3QgRm9nIHsK Ky0JCXB1YmxpYyBmbG9hdCB6X25lYXI7CistCQlwdWJsaWMgZmxvYXQgel9mYXI7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2dlb21ldHJ5X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdHJ1Y3QgR2Vv bWV0cnkgeworLQkJcHVibGljIGludCB4OworLQkJcHVibGljIGludCB5OworLQkJcHVibGljIHVp bnQgd2lkdGg7CistCQlwdWJsaWMgdWludCBoZWlnaHQ7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzIChDbHV0dGVyLkdlb21ldHJ5IGdlb21l dHJ5MSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ2x1dHRlci5H ZW9tZXRyeSB1bmlvbiAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeV9iKTsKKy0JfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBLYmRBMTF5U2V0dGluZ3MgeworIAkJcHVibGljIENs dXR0ZXIuS2V5Ym9hcmRBMTF5RmxhZ3MgY29udHJvbHM7CitAQCAtODA2OSw3ICs3Njc3LDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGludCBtb3VzZWtleXNfbWF4X3NwZWVkOwor IAkJcHVibGljIGludCBtb3VzZWtleXNfYWNjZWxfdGltZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25v dF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RydWN0IEtub3QgeworIAkJ cHVibGljIGludCB4OworQEAgLTgxMjEsNyArNzcyOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBkb3VibGUgdmFsdWU7CisgCQlwdWJsaWMgdWludDMyIG1vZGU7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bh dGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBzdHJ1Y3QgUGF0aE5vZGUgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aE5vZGVUeXBlIHR5 cGU7CitAQCAtODEzMSw3ICs3NzM5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGJvb2wgZXF1YWwgKENsdXR0ZXIuUGF0aE5vZGUgbm9kZV9iKTsKKyAJCXB1YmxpYyB2b2lkIGZy ZWUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gImNsdXR0ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RydWN0IFBlcnNwZWN0aXZlIHsKKyAJCXB1YmxpYyBm bG9hdCBmb3Z5OworQEAgLTgxNjIsNyArNzc3MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Igc291cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRl ci5JbnB1dERldmljZSBkZXZpY2U7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJcHVibGljIHN0cnVjdCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0cz8gY29w eSAoKTsKK0BAIC04MTg2LDIzICs3Nzk0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGZsb2F0IHRvX3BpeGVscyAoKTsKKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorLQlwdWJsaWMgc3RydWN0IFZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsK Ky0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlZlcnRleD8gYWxsb2MgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXg/ IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBl cXVhbCAoQ2x1dHRlci5WZXJ0ZXggdmVydGV4X2IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlZlcnRleD8gaW5pdCAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0FDVE9SX0FMSUdOXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9hY3Rvcl9hbGlnbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBBY3RvckFsaWduIHsKK0BAIC04MzQwLDYgKzc5MzEs MjcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9USAorIAl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAi Q0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZGVidWdfZmxhZ19nZXRfdHlwZSAo KSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERlYnVnRmxhZyB7CisrCQlNSVNDLAorKwkJ QUNUT1IsCisrCQlURVhUVVJFLAorKwkJRVZFTlQsCisrCQlQQUlOVCwKKysJCVBBTkdPLAorKwkJ QkFDS0VORCwKKysJCVNDSEVEVUxFUiwKKysJCVNDUklQVCwKKysJCVNIQURFUiwKKysJCU1VTFRJ U1RBR0UsCisrCQlBTklNQVRJT04sCisrCQlMQVlPVVQsCisrCQlQSUNLLAorKwkJRVZFTlRMT09Q LAorKwkJQ0xJUFBJTkcsCisrCQlPT0JfVFJBTlNGT1JNUworKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9EUkFH XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2F4aXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgZW51bSBEcmFnQXhpcyB7CitAQCAtODM0Nyw2 ICs3OTU5LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUwor IAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhd19kZWJ1Z19m bGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRHJhd0RlYnVnRmxh ZyB7CisrCQlESVNBQkxFX1NXQVBfRVZFTlRTLAorKwkJRElTQUJMRV9DTElQUEVEX1JFRFJBV1Ms CisrCQlSRURSQVdTLAorKwkJUEFJTlRfVk9MVU1FUywKKysJCURJU0FCTEVfQ1VMTElORywKKysJ CURJU0FCTEVfT0ZGU0NSRUVOX1JFRElSRUNULAorKwkJQ09OVElOVU9VU19SRURSQVcsCisrCQlQ QUlOVF9ERUZPUk1fVElMRVMsCisrCQlQQUlOVF9EQU1BR0VfUkVHSU9OCisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50 X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRWZmZWN0UGFp bnRGbGFncyB7CitAQCAtODM5OCw4ICs4MDIzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlw dWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworIAkJVEVYVFVSRV9OUE9ULAorIAkJU1dBUF9USFJP VFRMRSwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKyAJCVNUQUdF X1NUQVRJQywKKyAJCVNUQUdFX0NVUlNPUiwKKyAJCVNIQURFUlNfR0xTTCwKK0BAIC04NjU3LDYg KzgyODAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxf Q1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51 bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJQ0tJTkcKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0 eXBlX2lkID0gImNsdXR0ZXJfcGlja19tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gUGlja01vZGUgeworQEAgLTg4NTEsMTMgKzg0 NzksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfVEFCTEVfQUxJR05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGln bm1lbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFi bGVBbGlnbm1lbnQgeworLQkJU1RBUlQsCistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNM VVRURVJfVEVYVF9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9u X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVu dW0gVGV4dERpcmVjdGlvbiB7CitAQCAtODkzMywyOCArODU1NCwxOSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlWQUxVRTsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfVEVYVFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorLQlwdWJsaWMgZXJyb3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9N RU1PUlksCistCQlOT19ZVVYsCistCQlCQURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGli LlF1YXJrIHF1YXJrICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjI0IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hp bGRGdW5jIChHTGliLk9iamVjdCBpdGVtKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIi KV0KKyAJcHVibGljIGRlbGVnYXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxw aGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBp bnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIEJlaGF2aW91ckZvcmVhY2hGdW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENs dXR0ZXIuQWN0b3IgYWN0b3IpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9i amVjdCBnb2JqZWN0LCBzdHJpbmcgYWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5N b2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRl IHZvaWQgQ2FsbGJhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlw dWJsaWMgZGVsZWdhdGUgdm9pZCBFbWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBl dmVudCwgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRl ckZ1bmMgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworQEAgLTg5ODUsOSArODU5Nyw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29u c3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1Ymxp YyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRp YyB2b2lkIGJhc2VfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtOTA1MSw5 ICs4NjYwLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5Gb250TWFwIGdldF9mb250X21hcCAo KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X2tleWJvYXJkX2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisg CXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDYx LDE3ICs4NjY3LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgc3RhdGljIEdMaWIu T3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cF93aXRob3V0X2luaXQgKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9w b2ludGVyX2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBzdHJpbmcgZ2V0X3NjcmlwdF9pZCAoR0xpYi5PYmplY3QgZ29iamVjdCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJkIChD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuSW5pdEVycm9yIGluaXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gImFy Z2MiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41KV0gcmVmIHVub3duZWQgc3RyaW5nW10/IGFyZ3Yp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTkwODcsMjkgKzg2ODQsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZv aWQqIGZ1bmMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHRlc3RfYWRkX2RhdGFfZnVsbCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0 YUZ1bmMgdGVzdF9mdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0 aWMgYm9vbCB0ZXN0X2NoZWNrX2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBD bHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rv cj8gcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9v bCB0ZXN0X2NoZWNrX2NvbG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVy LlBvaW50IHBvaW50LCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1 bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgdGVzdF9nZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0 IChpbnQgYXJnYywgc3RyaW5nIGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVi bGljIHN0YXRpYyBpbnQgdGVzdF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAodWlu dDMyIHdjKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzIHZhcGkv bXV0dGVyLWNsdXR0ZXItNy5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDU0JQorcmVuYW1lIGZyb20g dmFwaS9tdXR0ZXItY2x1dHRlci00LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVy LTcuZGVwcworaW5kZXggOTUwOTQwMjYuLjZiZDFjY2Y3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVy LWNsdXR0ZXItNC5kZXBzCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK0BAIC0xLDUg KzEsNCBAQAorIGF0aworIGNhaXJvCisganNvbi1nbGliLTEuMAorLW11dHRlci1jb2dsLTQKKy1w YW5nbworK211dHRlci1jb2dsLTcKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00LnZh cGkgdmFwaS9tdXR0ZXItY2x1dHRlci03LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggODYlCityZW5h bWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTQudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVy LWNsdXR0ZXItNy52YXBpCitpbmRleCBjOGExZDIzYi4uYWVhNmEzMWEgMTAwNjQ0CistLS0gdmFw aS9tdXR0ZXItY2x1dHRlci00LnZhcGkKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQor QEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNsdXR0ZXItNC52YXBpIGdlbmVyYXRlZCBieSB2 YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jbHV0dGVyLTcudmFwaSBnZW5l cmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXgg PSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjQi LCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAi Q2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjciLCBs b3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKyBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CW5hbWVzcGFjZSBLZXkgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY25hbWUgPSAiQ0xVVFRFUl9LRVlfMCIpXQorQEAgLTQ1NzYsMjAgKzQ1NzYs OCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHN0YXRpYyB1aW50IGFkZF9yZXBhaW50X2Z1bmNfZnVsbCAoQ2x1dHRlci5SZXBh aW50RmxhZ3MgZmxhZ3MsIG93bmVkIEdMaWIuU291cmNlRnVuYyBmdW5jKTsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbnRlciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIGxlYXZlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgc3Rh dGljIHZvaWQgcmVtb3ZlX3JlcGFpbnRfZnVuYyAodWludCBoYW5kbGVfaWQpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2xvY2tfZnVuY3Rpb25z IChHTGliLkNhbGxiYWNrIGVudGVyX2ZuLCBHTGliLkNhbGxiYWNrIGxlYXZlX2ZuKTsKKyAJfQor IAluYW1lc3BhY2UgVmFsdWUgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCitAQCAtNDYzNiw3ICs0NjI0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHN0YXRpYyB2b2lkIHRha2VfcGFpbnRfbm9kZSAoR0xpYi5WYWx1ZSB2YWx1 ZSwgQ2x1dHRlci5QYWludE5vZGU/IG5vZGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJh Y3QgY2xhc3MgQWN0aW9uIDogQ2x1dHRlci5BY3Rvck1ldGEgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdGlvbiAoKTsKK0BAIC00 NjY0LDMzICs0NjUxLDIzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBhZGRfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUs IENsdXR0ZXIuVHJhbnNpdGlvbiB0cmFuc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQWN0b3JCb3gg Ym94LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hbGlnbl9maWxsIChDbHV0dGVyLkFj dG9yQm94IGJveCwgZG91YmxlIHhfYWxpZ24sIGRvdWJsZSB5X2FsaWduLCBib29sIHhfZmlsbCwg Ym9vbCB5X2ZpbGwsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2 b2lkIGFsbG9jYXRlX2FsaWduX2ZpbGwgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBkb3VibGUgeF9h bGlnbiwgZG91YmxlIHlfYWxpZ24sIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hdmFpbGFibGVf c2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgYXZhaWxhYmxlX3dpZHRoLCBmbG9hdCBhdmFp bGFibGVfaGVpZ2h0LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMg dm9pZCBhbGxvY2F0ZV9hdmFpbGFibGVfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgYXZh aWxhYmxlX3dpZHRoLCBmbG9hdCBhdmFpbGFibGVfaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0 dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJh dGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24g YW5pbWF0ZV93aXRoX2FscGhhdiAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0 cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmlt YXRlX3dpdGhfdGltZWxpbmUgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUs IC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Bbmlt YXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGlu ZSB0aW1lbGluZSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUp XSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlv biwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro X2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZh bHVlW10gdmFsdWVzKTsKKysJCXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChm bG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLlZlcnRleCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0 ZXIuQWN0b3I/IGFuY2VzdG9yLCBDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9p ZCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2Vz dG9yLCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNE IHZlcnRleCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90 cmFuc2Zvcm0gKHJlZiBDbHV0dGVyLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19w b2ludCAoQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNm b3JtX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVu ZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVi bGljIHZvaWQgYmluZF9tb2RlbCAoR0xpYi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVy LkFjdG9yQ3JlYXRlQ2hpbGRGdW5jIGNyZWF0ZV9jaGlsZF9mdW5jKTsKKysJCVtOb1dyYXBwZXJd CisrCQlwdWJsaWMgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVfcmVzb3VyY2Vfc2NhbGUgKGludCBw aGFzZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBjbGVh cl9hY3Rpb25zICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ3MDAsMjAg KzQ2NzcsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIGJvb2wgY29udGFpbnMgKENsdXR0ZXIuQWN0b3IgZGVzY2VuZGFudCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjb250aW51ZV9w YWludCAoKTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BhaW50IChDbHV0dGVyLlBhaW50Q29u dGV4dCBwYWludF9jb250ZXh0KTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BpY2sgKENsdXR0 ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyBQYW5nby5Db250ZXh0IGNyZWF0ZV9wYW5nb19jb250ZXh0ICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkxheW91dCBjcmVhdGVf cGFuZ29fbGF5b3V0IChzdHJpbmc/IHRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIGRlc3Ryb3lfYWxsX2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIGRldGFjaF9hbmltYXRpb24gKCk7CisgCQlbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfYWN0b3JfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wg Y2FwdHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBn ZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CisrCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9j YXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Q b2ludDNEIHZlcnRzWzRdKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQXRrLk9iamVjdCBn ZXRfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0aW9uIGdldF9hY3Rpb24gKHN0cmluZyBuYW1lKTsKK0BAIC00 NzIxLDIxICs0Njk3LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdMaWIuTGlz dDx3ZWFrIENsdXR0ZXIuQWN0aW9uPiBnZXRfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGdldF9hbGxvY2F0aW9uX2Jv eCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBnZXRf YWxsb2NhdGlvbl9nZW9tZXRyeSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNl c3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIENsdXR0ZXIuVmVydGV4IHZlcnRz WzRdKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYW5jaG9yX3BvaW50 IChvdXQgZmxvYXQgYW5jaG9yX3gsIG91dCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfYW5jaG9yX3BvaW50X2dyYXZpdHkg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gZ2V0X2FuaW1hdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYmFja2dyb3VuZF9jb2xvciAoKTsKKy0JCVtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9nZXRfYWN0b3JfYnlfZ2lkIildCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYnlfZ2lkICh1aW50MzIg aWRfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF9jaGlsZF9hdF9pbmRleCAoaW50IGluZGV4Xyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTQ3NjIsOCArNDcyNSw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGdldF9jb250ZW50X3NjYWxpbmdfZmlsdGVycyAob3V0IENs dXR0ZXIuU2NhbGluZ0ZpbHRlciBtaW5fZmlsdGVyLCBvdXQgQ2x1dHRlci5TY2FsaW5nRmlsdGVy IG1hZ19maWx0ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuUGFpbnRWb2x1bWUgZ2V0X2RlZmF1bHRfcGFpbnRfdm9sdW1lICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfZGVwdGggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kZWxheSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCitAQCAtNDc3NiwxMiArNDczNywxMSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5FZmZlY3Q+IGdldF9lZmZl Y3RzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X2ZpcnN0X2NoaWxkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Zp eGVkX3Bvc2l0aW9uIChvdXQgZmxvYXQgeCwgb3V0IGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uX3NldCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yRmxh Z3MgZ2V0X2ZsYWdzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHVpbnQzMiBnZXRf Z2lkICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2hhc19wb2ludGVyIild CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX3Bv aW50ZXIgKCk7CitAQCAtNDgzOSwxNyArNDc5OSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgYm9vbCBnZXRfcmVhY3RpdmUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisgCQlwdWJsaWMgQ2x1dHRlci5SZXF1ZXN0TW9kZSBnZXRfcmVxdWVzdF9tb2RlICgpOwor LQkJcHVibGljIGJvb2wgZ2V0X3Jlc291cmNlX3NjYWxlIChvdXQgZmxvYXQgcmVzb3VyY2Vfc2Nh bGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0aW9uIChD bHV0dGVyLlJvdGF0ZUF4aXMgYXhpcywgb3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5LCBvdXQgZmxv YXQgeik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3Jlc291cmNlX3NjYWxlICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0aW9uX2FuZ2xl IChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhpcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIild CisgCQlwdWJsaWMgdm9pZCBnZXRfc2NhbGUgKG91dCBkb3VibGUgc2NhbGVfeCwgb3V0IGRvdWJs ZSBzY2FsZV95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc2NhbGVf Y2VudGVyIChvdXQgZmxvYXQgY2VudGVyX3gsIG91dCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfc2NhbGVfZ3Jhdml0eSAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9z Y2FsZV96ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTQ4NjAsOCArNDgx NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rp b24gZ2V0X3RleHRfZGlyZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K KyAJCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4 ICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2V4dGVudHMgKG91dCB1bm93bmVk IEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Vm9sdW1lIGdldF90cmFuc2Zvcm1lZF9wYWludF92 b2x1bWUgKENsdXR0ZXIuQWN0b3IgcmVsYXRpdmVfdG9fYW5jZXN0b3IpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorQEAgLTQ4ODUsMTAgKzQ4MzgsOSBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYm9vbCBnZXRfeV9leHBhbmQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IGdldF96X3Bvc2l0aW9uICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3pfcm90YXRpb25fZ3Jhdml0 eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWJf a2V5X2ZvY3VzICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBoYXNfYWNjZXNzaWJsZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgYm9vbCBoYXNfYWN0aW9u cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTAwLDE4ICs0ODUyLDIw IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19lZmZlY3RzICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2tleV9mb2N1 cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgYm9vbCBoYXNf bWFwcGVkX2Nsb25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1Ymxp YyB2aXJ0dWFsIGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJCVtO b1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOworKwkJcHVibGlj IHZvaWQgaW5oaWJpdF9jdWxsaW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hYm92ZSAoQ2x1dHRlci5BY3RvciBjaGlsZCwg Q2x1dHRlci5BY3Rvcj8gc2libGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2F0X2luZGV4IChDbHV0dGVyLkFjdG9yIGNoaWxk LCBpbnQgaW5kZXhfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCBpbnNlcnRfY2hpbGRfYmVsb3cgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0 b3I/IHNpYmxpbmcpOworKwkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV90cmFuc2Zvcm0gKCk7Cisr CQlwdWJsaWMgYm9vbCBpc19lZmZlY3RpdmVseV9vbl9zdGFnZV92aWV3IChDbHV0dGVyLlN0YWdl VmlldyB2aWV3KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29s IGlzX2luX2Nsb25lX3BhaW50ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KK0BA IC00OTI0LDMzICs0ODc4LDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29s IGlzX3NjYWxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMg Ym9vbCBpc192aXNpYmxlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFj dG9yPyBhYm92ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgbW92ZV9hbmNob3JfcG9pbnQgKGZsb2F0 IGFuY2hvcl94LCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHZvaWQgbW92ZV9hbmNob3JfcG9pbnRfZnJvbV9ncmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jh dml0eSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBtb3Zl X2J5IChmbG9hdCBkeCwgZmxvYXQgZHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K KyAJCXB1YmxpYyBib29sIG5lZWRzX2V4cGFuZCAoQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRh dGlvbik7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF9ub2Rl IChDbHV0dGVyLlBhaW50Tm9kZSByb290KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg dm9pZCBwb3BfaW50ZXJuYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg cHVzaF9pbnRlcm5hbCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLlN0 YWdlVmlldz4gcGVla19zdGFnZV92aWV3cyAoKTsKKysJCXB1YmxpYyB2b2lkIHBpY2tfYm94IChD bHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRlci5BY3RvckJveCBib3gpOwor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5GcmFtZUNsb2NrIHBpY2tfZnJhbWVfY2xvY2sgKCk7 CisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVj dGFuZ2xlSW50PyBjbGlwKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rv cj8gYmVsb3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIu QWN0aW9uIGFjdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk3Miw4 ICs0OTEzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2Vm ZmVjdF9ieV9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC4yIildCistCQlwdWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdf cGFyZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBy ZXBsYWNlX2NoaWxkIChDbHV0dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdf Y2hpbGQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC00OTgxLDExICs0OTIw LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB2b2lkIHNhdmVfZWFzaW5nX3N0YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9y Qm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbmNob3JfcG9pbnQgKGZsb2F0IGFuY2hvcl94LCBmbG9h dCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FuY2hv cl9wb2ludF9mcm9tX2dyYXZpdHkgKENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKysJCXB1Ymxp YyB2b2lkIHNldF9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmRfY29sb3Ig KENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitA QCAtNTAwOCw4ICs0OTQzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg c2V0X2NvbnRlbnRfcmVwZWF0IChDbHV0dGVyLkNvbnRlbnRSZXBlYXQgcmVwZWF0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9zY2Fs aW5nX2ZpbHRlcnMgKENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtaW5fZmlsdGVyLCBDbHV0dGVyLlNj YWxpbmdGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoIChm bG9hdCBkZXB0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2Vhc2luZ19kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorQEAgLTUwMzksOCArNDk3Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB2b2lkIHNldF9vZmZzY3JlZW5fcmVkaXJlY3QgKENsdXR0ZXIuT2Zmc2NyZWVuUmVkaXJl Y3QgcmVkaXJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X29wYWNpdHkgKHVpbnQ4IG9wYWNpdHkp OworIAkJcHVibGljIHZvaWQgc2V0X29wYWNpdHlfb3ZlcnJpZGUgKGludCBvcGFjaXR5KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBzZXRfcGFyZW50IChDbHV0dGVyLkFjdG9yIHBhcmVudCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Bpdm90X3BvaW50 IChmbG9hdCBwaXZvdF94LCBmbG9hdCBwaXZvdF95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCitAQCAtNTA1MCwxNiArNDk4MSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdm9pZCBzZXRfcmVhY3RpdmUgKGJvb2wgcmVhY3RpdmUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3JlcXVlc3RfbW9kZSAoQ2x1dHRlci5S ZXF1ZXN0TW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRf cm90YXRpb24gKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUsIGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMsIGRv dWJsZSBhbmdsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfc2NhbGUgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NjYWxlX2Z1bGwgKGRvdWJsZSBzY2FsZV94LCBk b3VibGUgc2NhbGVfeSwgZmxvYXQgY2VudGVyX3gsIGZsb2F0IGNlbnRlcl95KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfd2l0aF9ncmF2aXR5IChkb3VibGUg c2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfeiAoZG91 YmxlIHNjYWxlX3opOworIAkJcHVibGljIHZvaWQgc2V0X3NpemUgKGZsb2F0IHdpZHRoLCBmbG9h dCBoZWlnaHQpOworQEAgLTUwODUsMTcgKzUwMTAsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHZvaWQgc2V0X3lfZXhwYW5kIChib29sIGV4cGFuZCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3pfcG9zaXRpb24gKGZsb2F0IHpf cG9zaXRpb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF96X3JvdGF0 aW9uX2Zyb21fZ3Jhdml0eSAoZG91YmxlIGFuZ2xlLCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7 CisgCQlwdWJsaWMgYm9vbCBzaG91bGRfcGlja19wYWludCAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIild CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfYWxsICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorIAkJcHVibGljIGJvb2wgdHJhbnNmb3JtX3N0YWdlX3BvaW50IChmbG9hdCB4 LCBmbG9hdCB5LCBvdXQgZmxvYXQgeF9vdXQsIG91dCBmbG9hdCB5X291dCk7CisrCQlwdWJsaWMg dm9pZCB1bmluaGliaXRfY3VsbGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdW5tYXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJ cHVibGljIHZvaWQgdW5wYXJlbnQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdm9pZCB1bnNldF9mbGFncyAoQ2x1dHRlci5BY3RvckZsYWdzIGZsYWdzKTsKKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxMDMsMTYgKzUwMjMsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5BY3Rpb24gYWN0aW9ucyB7IHNldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg Q2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGFuY2hvcl9n cmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBhbmNob3JfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZmxvYXQgYW5jaG9yX3kg eyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiB7IG93 bmVkIGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLkNvbG9yIGJhY2tncm91bmRfY29sb3IgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCitAQCAtNTEyMiwxMSArNTAzMyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBjaGlsZF90cmFuc2Zvcm1f c2V0IHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRl ci5HZW9tZXRyeSBjbGlwIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY2xpcF9y ZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGNsaXBfcmVj dCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgYm9vbCBjbGlwX3RvX2FsbG9jYXRpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCitAQCAtNTE0MCw4ICs1MDQ4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIENsdXR0ZXIuQ29udGVudEdyYXZpdHkgY29udGVudF9ncmF2aXR5IHsgZ2V0OyBzZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db250 ZW50UmVwZWF0IGNvbnRlbnRfcmVwZWF0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgZmxvYXQgZGVwdGggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgQ2x1dHRlci5FZmZl Y3QgZWZmZWN0IHsgc2V0OyB9CitAQCAtNTIxMSwxMiArNTExNywxMiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdWludCBvcGFjaXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vz c29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLlBvaW50IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IHBpdm90X3BvaW50X3ogeyBnZXQ7IHNl dDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIENsdXR0ZXIuUG9pbnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIHJlYWN0aXZlIHsgZ2V0 OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMjUsOCArNTEzMSw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1Ymxp YyBDbHV0dGVyLlJlcXVlc3RNb2RlIHJlcXVlc3RfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBmbG9hdCByZXNvdXJjZV9zY2FsZSB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCitAQCAtNTIzNiwyNyArNTE0MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgcm90YXRpb25fYW5n bGVfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ggeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl95IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRl eCByb3RhdGlvbl9jZW50ZXJfeiB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0aW9uX2Nl bnRlcl96X2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IHNjYWxlX2NlbnRlcl94IHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBm bG9hdCBzY2FsZV9jZW50ZXJfeSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHNjYWxlX2dyYXZp dHkgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIHNjYWxlX3ggeyBnZXQ7IHNldDsgfQorIAkJ W05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTI2OSw3ICs1MTUyLDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGJvb2wgc2hvd19vbl9zZXRfcGFyZW50IHsgZ2V0OyBzZXQ7IH0KKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3Jh cGhlbmUuU2l6ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gdGV4dF9kaXJlY3Rpb24g eyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTI5OSw4ICs1MTgyLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgeV9leHBhbmQgeyBnZXQ7IHNl dDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCB6X3Bv c2l0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBhbGxvY2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuQWN0b3JCb3ggYm94 LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBidXR0b25fcHJlc3NfZXZlbnQg KENsdXR0ZXIuQnV0dG9uRXZlbnQgZXZlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorQEAgLTUzMzEsMjIgKzUyMTIsMjUgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIGJvb2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2 ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg cGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3Nl dCAoQ2x1dHRlci5BY3Rvcj8gb2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sg KENsdXR0ZXIuQ29sb3IgY29sb3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGlj ayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBxdWV1ZV9yZWxheW91dCAoKTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIwLjgiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlYWxpemUgKCk7CisrCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCByZXNvdXJjZV9zY2FsZV9jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc2Nyb2xsX2V2 ZW50IChDbHV0dGVyLlNjcm9sbEV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc2hv dyAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBzdGFnZV92aWV3c19jaGFuZ2VkICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29s IHRvdWNoX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCitAQCAtNTM1OCwyMSArNTI0MiwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCB1bnJlYWxpemUgKCk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2FjdG9yX21ldGFfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWN0b3JNZXRhIDogR0xpYi5Jbml0aWFsbHlVbm93 bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXBy b3RlY3RlZCBBY3Rvck1ldGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGdldF9lbmFibGVkICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgp OworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2FjdG9yIChDbHV0 dGVyLkFjdG9yPyBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZW5hYmxlZCAoYm9vbCBpc19l bmFibGVkKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgc2V0X2VuYWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBn ZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGVuYWJs ZWQgeyBnZXQ7IHNldDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGlj IHN0cmluZyBuYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3Jfbm9kZV9n ZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQWN0b3JOb2RlIDogQ2x1dHRlci5QYWludE5v ZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBBY3Rvck5vZGUgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbGlnbl9jb25zdHJhaW50X2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIEFsaWduQ29uc3Ry YWludCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNTM4MCw4MSArNTI3NiwxOCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQWxpZ25Db25zdHJhaW50IChDbHV0dGVyLkFjdG9y PyBzb3VyY2UsIENsdXR0ZXIuQWxpZ25BeGlzIGF4aXMsIGZsb2F0IGZhY3Rvcik7CisgCQlwdWJs aWMgQ2x1dHRlci5BbGlnbkF4aXMgZ2V0X2FsaWduX2F4aXMgKCk7CisgCQlwdWJsaWMgZmxvYXQg Z2V0X2ZhY3RvciAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9waXZvdF9wb2ludCAob3V0IHVub3du ZWQgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciBnZXRfc291cmNlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2FsaWduX2F4aXMgKENs dXR0ZXIuQWxpZ25BeGlzIGF4aXMpOworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZmxvYXQg ZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9waXZvdF9wb2ludCAoR3JhcGhlbmUuUG9pbnQg cGl2b3RfcG9pbnQpOworIAkJcHVibGljIHZvaWQgc2V0X3NvdXJjZSAoQ2x1dHRlci5BY3Rvcj8g c291cmNlKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkFsaWduQXhpcyBhbGlnbl9heGlzIHsgZ2V0OyBz ZXQgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgZmxvYXQgZmFjdG9yIHsgZ2V0OyBzZXQgY29uc3Ry dWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBw aXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBz b3VyY2UgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxwaGFfZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEFscGhhIDogR0xp Yi5Jbml0aWFsbHlVbm93bmVkLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEFscGhhICgpOworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIEFscGhhLmZ1bGwgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxp bmUsIHVsb25nIG1vZGUpOworLQkJcHVibGljIGRvdWJsZSBnZXRfYWxwaGEgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfY2xv c3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHN0YXRpYyB1bG9uZyByZWdpc3Rlcl9mdW5jIChDbHV0dGVyLkFscGhhRnVu YyBmdW5jKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZnVu YyAob3duZWQgQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7CistCQlwdWJsaWMg dm9pZCBzZXRfdGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIEFscGhhLndpdGhfZnVuYyAoQ2x1dHRlci5UaW1lbGluZSB0aW1l bGluZSwgb3duZWQgQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlwdWJsaWMgZG91YmxlIGFs cGhhIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdWxv bmcgbW9kZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGltZWxp bmUgdGltZWxpbmUgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIEFuaW1hdGlvbiA6 IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEFuaW1hdGlvbiAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmQgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBH TGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJp bmRfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBvd25lZCBDbHV0dGVyLkludGVydmFs IGludGVydmFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFscGhhIGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW50ZXJ2YWwgZ2V0X2ludGVydmFsIChzdHJpbmcgcHJv cGVydHlfbmFtZSk7CistCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKy0JCXB1YmxpYyB1bG9u ZyBnZXRfbW9kZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3Qg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsK Ky0JCXB1YmxpYyBib29sIGhhc19wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBh bHBoYSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJcHVi bGljIHZvaWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAo dWxvbmcgbW9kZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb2JqZWN0IChHTGliLk9iamVjdCBvYmpl Y3QpOworLQkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lPyB0aW1l bGluZSk7CistCQlwdWJsaWMgdm9pZCB1bmJpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9u YW1lKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIHVwZGF0ZSAoc3RyaW5n IHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHZvaWQgdXBkYXRl X2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZh bCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBn ZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJcHVi bGljIGJvb2wgbG9vcCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsg c2V0OyB9CistCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1 YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNFbWl0 dGVyXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworLQkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RhcnRlZCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJW0NvbXBhY3RdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC01NDY3LDM3ICs1 MzAwLDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmFja2VuZF9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBjbGFz cyBCYWNrZW5kIDogR0xpYi5PYmplY3QgeworKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2Vu ZCA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLQkJ cHVibGljIHZvaWQgYmVsbF9ub3RpZnkgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgYm9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3Jl YXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0 ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3du ZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVy ZXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X2RlZmF1bHRfc2VhdCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENhaXJv LkZvbnRPcHRpb25zIGdldF9mb250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLklucHV0TWV0aG9kIGdldF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRfcmVzb2x1 dGlvbiAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZl bnRzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0 dXJlcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHBvc3RfcGFy c2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgYm9vbCBwcmVfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2ZvbnRfb3B0aW9u cyAoQ2Fpcm8uRm9udE9wdGlvbnMgb3B0aW9ucyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRf bWV0aG9kIChDbHV0dGVyLklucHV0TWV0aG9kIG1ldGhvZCk7CitAQCAtNTUwOCw5NSArNTMxOCwx MSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgc2V0dGluZ3NfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfYmVoYXZpb3VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGFi c3RyYWN0IGNsYXNzIEJlaGF2aW91ciA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIEJlaGF2aW91ciAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdG9yc19mb3JlYWNoIChDbHV0dGVy LkJlaGF2aW91ckZvcmVhY2hGdW5jIGZ1bmMpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgYWxwaGFfbm90aWZ5IChkb3VibGUgYWxwaGFfdmFsdWUpOworLQkJcHVibGlj IHZvaWQgYXBwbHkgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8 d2VhayBDbHV0dGVyLkFjdG9yPiBnZXRfYWN0b3JzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX2FjdG9ycyAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250aF9hY3RvciAoaW50IGluZGV4 Xyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBpc19hcHBs aWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZSAoQ2x1dHRl ci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMg dm9pZCByZW1vdmVfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFs cGhhIGFscGhhKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGFwcGxpZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVtb3ZlZCAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9kZXB0aF9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJEZXB0aCA6IENs dXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJEZXB0aCAoQ2x1 dHRlci5BbHBoYT8gYWxwaGEsIGludCBkZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQg aW50IGRlcHRoX3N0YXJ0LCBvdXQgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChpbnQgZGVwdGhfc3RhcnQsIGlu dCBkZXB0aF9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBp bnQgZGVwdGhfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJf b3BhY2l0eV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBC ZWhhdmlvdXJPcGFjaXR5IDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91ck9wYWNpdHkgKENsdXR0ZXIuQWxw aGE/IGFscGhhLCB1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQg dWludDggb3BhY2l0eV9zdGFydCwgb3V0IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKHVpbnQ4IG9wYWNp dHlfc3RhcnQsIHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIHVpbnQgb3BhY2l0eV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgdWludCBvcGFjaXR5X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfYmVoYXZpb3VyX3NjYWxlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0K Ky0JcHVibGljIGNsYXNzIEJlaGF2aW91clNjYWxlIDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91clNjYWxl IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3Nj YWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQg ZG91YmxlIHhfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeV9zY2FsZV9zdGFydCwgb3V0IGRvdWJs ZSB4X3NjYWxlX2VuZCwgb3V0IGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChkb3VibGUgeF9zY2FsZV9z dGFydCwgZG91YmxlIHlfc2NhbGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlf c2NhbGVfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB4X3NjYWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1Ymxp YyBkb3VibGUgeF9zY2FsZV9zdGFydCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2Fs ZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfc3RhcnQgeyBnZXQ7IHNl dDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iaW5fbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGNsYXNzIEJpbkxheW91dCA6IENsdXR0ZXIu TGF5b3V0TWFuYWdlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCaW5MYXlvdXQg KENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFS VCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNU QVJUKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBhZGQgKENsdXR0ZXIuQWN0 b3IgY2hpbGQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25t ZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGln bm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9h bGlnbiwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBD bHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWdu KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduIHsgZ2V0OyBzZXQ7IH0KK0BAIC01NjQ0LDk4ICs1 MzcwLDI5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJFZmZlY3QqIildCisgCQlwdWJsaWMgQmx1 ckVmZmVjdCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYm94X2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIuQWN0b3Is IEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgQm94IChDbHV0dGVyLkxheW91dE1hbmFnZXIgbWFuYWdlcik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWFuYWdlciBnZXRfbGF5b3V0 X21hbmFnZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1 dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9p ZCBwYWNrX2FmdGVyIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5n LCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2tfYXQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIGludCBwb3NpdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdm9pZCBwYWNrX2JlZm9yZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5B Y3Rvcj8gc2libGluZywgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBw YWNrdiAoQ2x1dHRlci5BY3RvciBhY3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAi bl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVuZ3RoX3R5cGUg PSAiZ3VpbnQiKV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25h bWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVuZ3Ro X3R5cGUgPSAiZ3VpbnQiKV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yPyBjb2xvcik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheW91dF9tYW5hZ2VyIChDbHV0dGVy LkxheW91dE1hbmFnZXIgbWFuYWdlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENs dXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgY29sb3Jfc2V0IHsgZ2V0OyBzZXQ7IH0K Ky0JCXB1YmxpYyBDbHV0dGVyLkxheW91dE1hbmFnZXIgbGF5b3V0X21hbmFnZXIgeyBnZXQ7IHNl dDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ib3hfbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGNsYXNzIEJveExheW91dCA6IENsdXR0ZXIu TGF5b3V0TWFuYWdlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCb3hMYXlvdXQg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1 dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIG91dCBD bHV0dGVyLkJveEFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgdWludCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyB1bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIGJvb2wgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBi b29sIHhfZmlsbCwgb3V0IGJvb2wgeV9maWxsKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyBib29sIGdldF9ob21vZ2VuZW91cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5PcmllbnRhdGlvbiBnZXRfb3JpZW50YXRp b24gKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFja19zdGFydCAoKTsKKyAJCXB1YmxpYyB1aW50 IGdldF9zcGFjaW5nICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF91 c2VfYW5pbWF0aW9ucyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRf dmVydGljYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1 dHRlci5BY3RvciBhY3RvciwgYm9vbCBleHBhbmQsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCwg Q2x1dHRlci5Cb3hBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGln bik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5C b3hBbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg c2V0X2Vhc2luZ19kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29s IGV4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbGwgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfaG9tb2dlbmVvdXMgKGJvb2wg aG9tb2dlbmVvdXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9vcmllbnRhdGlvbiAoQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbik7Cisg CQlwdWJsaWMgdm9pZCBzZXRfcGFja19zdGFydCAoYm9vbCBwYWNrX3N0YXJ0KTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF91c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfdmVydGljYWwgKGJvb2wgdmVydGljYWwpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsg Z2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29s IGhvbW9nZW5lb3VzIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisgCQlwdWJsaWMgQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbiB7IGdldDsgc2V0OyB9 CisgCQlwdWJsaWMgYm9vbCBwYWNrX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1aW50 IHNwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29s IHVzZV9hbmltYXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgYm9vbCB2ZXJ0aWNhbCB7IGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JyaWdodG5l c3NfY29udHJhc3RfZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCitAQCAtNTc0OSw5ICs1NDA2LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHZvaWQgc2V0X2NvbnRyYXN0IChmbG9hdCBjb250cmFzdCk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfY29udHJhc3RfZnVsbCAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSk7Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3Mg eyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuQ29sb3IgYnJpZ2h0bmVzcyB7IG93bmVk IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkNv bG9yIGNvbnRyYXN0IHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbnRy YXN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3Rd CitAQCAtNTc3MCwzNyArNTQyNyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBm bG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhaXJvX3RleHR1 cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIENhaXJv VGV4dHVyZSA6IENsdXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1h dGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIp XQorLQkJcHVibGljIENhaXJvVGV4dHVyZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJ cHVibGljIHZvaWQgY2xlYXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8u Q29udGV4dCBjcmVhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29u dGV4dCBjcmVhdGVfcmVnaW9uIChpbnQgeF9vZmZzZXQsIGludCB5X29mZnNldCwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBi b29sIGdldF9hdXRvX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zdXJmYWNlX3NpemUg KG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xlIChDYWlyby5S ZWN0YW5nbGVJbnQ/IHJlY3QpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2F1dG9fcmVzaXplIChib29sIHZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9zdXJmYWNlX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGF1dG9fcmVzaXplIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV9oZWlnaHQgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNl X3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCBDYWlyby5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNlICh1aW50IHdp ZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmF3IChDYWlyby5Db250ZXh0IGNyKTsKKy0JfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfY2FudmFzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCXB1YmxpYyBjbGFzcyBDYW52YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50 IHsKK0BAIC01ODI3LDE3ICs1NDUzLDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9jbGlja19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgQ2xpY2tBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0aW9uKiIpXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENs aWNrQWN0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVp bnQgZ2V0X2J1dHRvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1Ymxp YyB2b2lkIGdldF9jb29yZHMgKG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5Nb2RpZmll clR5cGUgZ2V0X3N0YXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVi bGljIHZvaWQgcmVsZWFzZSAoKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgaGVsZCB7IGdldDsgfQorIAkJW05vQWNj ZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTg0Niw3ICs1 NDc1LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIGludCBsb25nX3ByZXNzX3RocmVzaG9sZCB7IGdldDsgc2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyBib29sIHByZXNzZWQgeyBnZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNsaWNrZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IGJvb2wgbG9uZ19wcmVzcyAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Mb25nUHJlc3NT dGF0ZSBzdGF0ZSk7CitAQCAtNTg4OCw4ICs1NTE5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHJvdGVjdGVkIENvbnN0cmFpbnQgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZp cnR1YWwgdm9pZCB1cGRhdGVfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRl ci5BY3RvckJveCBhbGxvY2F0aW9uKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHVwZGF0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRl ci5PcmllbnRhdGlvbiBkaXJlY3Rpb24sIGZsb2F0IGZvcl9zaXplLCBmbG9hdCBtaW5pbXVtX3Np emUsIGZsb2F0IG5hdHVyYWxfc2l6ZSk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9w cmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5PcmllbnRhdGlvbiBk aXJlY3Rpb24sIGZsb2F0IGZvcl9zaXplLCByZWYgZmxvYXQgbWluaW11bV9zaXplLCByZWYgZmxv YXQgbmF0dXJhbF9zaXplKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCitAQCAt NTg5OCw2ICs1NTI4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2x1 dHRlci5JbnB1dERldmljZSBkZXZpY2U7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudEZsYWdzIGZs YWdzOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciByZWxhdGVkOworKwkJcHVibGljIHdl YWsgQ2x1dHRlci5FdmVudFNlcXVlbmNlIHNlcXVlbmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRl ci5BY3RvciBzb3VyY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLlN0YWdlIHN0YWdlOworIAkJ cHVibGljIHVpbnQzMiB0aW1lOworQEAgLTU5MzEsOTggKzU1NjIsMjEgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZG91YmxlIGZhY3Rvcik7CisgCQlw dWJsaWMgZG91YmxlIGZhY3RvciB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Rldmlj ZV9tYW5hZ2VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0J cHVibGljIGFic3RyYWN0IGNsYXNzIERldmljZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRGV2 aWNlTWFuYWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFk ZF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLkti ZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZl bnQgdG9fZGlzY2FyZCk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1dERl dmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmlj ZV90eXBlKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBn ZXRfY29yZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RlZmF1bHQg KCk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2Rl dmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGlu Z3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2aXJ0dWFs IENsdXR0ZXIuVmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFsX2RldmljZV90 eXBlcyAoKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4g bGlzdF9kZXZpY2VzICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLklu cHV0RGV2aWNlPiBwZWVrX2RldmljZXMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCByZW1vdmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZWxlY3Rfc3RhZ2VfZXZlbnRz IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0 aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5J bnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVk IChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2Jk X2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21h c2spOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAo dWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIENsdXR0ZXIuSW5w dXREZXZpY2VUb29sIHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19hY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgRHJhZ0Fj dGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMgRHJhZ0FjdGlv biAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdCBkcmFnX2Fy ZWEpOworLQkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZ2V0X2RyYWdfYXhpcyAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2RyYWdfaGFuZGxlICgpOworLQkJcHVibGlj IHZvaWQgZ2V0X2RyYWdfdGhyZXNob2xkIChvdXQgdWludCB4X3RocmVzaG9sZCwgb3V0IHVpbnQg eV90aHJlc2hvbGQpOworLQkJcHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29yZHMgKG91dCBmbG9h dCBtb3Rpb25feCwgb3V0IGZsb2F0IG1vdGlvbl95KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wcmVz c19jb29yZHMgKG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CistCQlwdWJs aWMgdm9pZCBzZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3Q/IGRyYWdfYXJlYSk7CistCQlwdWJs aWMgdm9pZCBzZXRfZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOworLQkJcHVibGlj IHZvaWQgc2V0X2RyYWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOworLQkJcHVibGlj IHZvaWQgc2V0X2RyYWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9s ZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlw dWJsaWMgYm9vbCBkcmFnX2FyZWFfc2V0IHsgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5EcmFn QXhpcyBkcmFnX2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuQWN0b3IgZHJh Z19oYW5kbGUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IHhfZHJhZ190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgaW50IHlfZHJhZ190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJhZ19iZWdpbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxv YXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJz KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfZW5kIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBldmVudF95LCBDbHV0dGVyLk1vZGlmaWVyVHlw ZSBtb2RpZmllcnMpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJhZ19tb3Rpb24g KENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGRlbHRhX3gsIGZsb2F0IGRlbHRhX3kpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29s IGRyYWdfcHJvZ3Jlc3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGRlbHRhX3gsIGZsb2F0 IGRlbHRhX3kpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcm9wX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBjbGFzcyBEcm9wQWN0aW9uIDog Q2x1dHRlci5BY3Rpb24geworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKy0JCXB1YmxpYyBEcm9wQWN0aW9uICgpOwor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgY2FuX2Ryb3AgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOworLQkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgZHJvcCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQg ZXZlbnRfeSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHNpZ25h bCB2b2lkIGRyb3BfY2FuY2VsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBm bG9hdCBldmVudF95KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfaW4gKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgb3Zlcl9v dXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9lZmZlY3RfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3Qg Y2xhc3MgRWZmZWN0IDogQ2x1dHRlci5BY3Rvck1ldGEgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEVmZmVjdCAoKTsKKyAJCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9wYWludF92b2x1bWUgKENsdXR0ZXIu UGFpbnRWb2x1bWUgdm9sdW1lKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9kaWZ5X3BhaW50 X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOworIAkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFn cyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBw YWludF9jb250ZXh0LCBDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworIAkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5FZmZlY3RQYWludEZs YWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29u dGV4dCBwaWNrX2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgcG9zdF9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoQ2x1 dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIHBy ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50ICgpOworIAl9 CitAQCAtNjAzMyw4ICs1NTg3LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBD bHV0dGVyLkV2ZW50VHlwZSB0eXBlOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHVibGljIEV2ZW50IChDbHV0dGVyLkV2ZW50VHlwZSB0eXBlKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgc3RhdGljIHVpbnQgYWRkX2Zp bHRlciAoQ2x1dHRlci5TdGFnZT8gc3RhZ2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9 IDIuMiwgZGVzdHJveV9ub3RpZnlfcG9zID0gMi4xKV0gb3duZWQgQ2x1dHRlci5FdmVudEZpbHRl ckZ1bmMgZnVuYyk7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudCBjb3B5ICgpOworIAkJcHVibGlj IHZvaWQgZnJlZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1YmxpYyBz dGF0aWMgQ2x1dHRlci5FdmVudCBAZ2V0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X2FuZ2xlIChDbHV0dGVyLkV2ZW50IHRhcmdldCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjA3Myw3ICs1NjMxLDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJs aWMgYm9vbCBnZXRfcGFkX2V2ZW50X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQg bW9kZSwgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJ CXB1YmxpYyB2b2lkIGdldF9wb3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfcmVsYXRlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjEw Niw4ICs1NjY0LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19z aGlmdF9tb2RpZmllciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJs aWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGVkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnQgcGVlayAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHB1dCAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2Zp bHRlciAodWludCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMg dm9pZCBzZXRfYnV0dG9uICh1aW50MzIgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KK0BAIC02MTQwLDE2ICs1NzAyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHZvaWQgc2V0X3N0YXRlIChDbHV0dGVyLk1vZGlmaWVyVHlwZSBzdGF0ZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGltZSAodWludDMyIHRp bWVfKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkFueUV2ZW50IGFueSB7W0NDb2RlIChjbmFtZSA9ICIo Q2x1dHRlckFueUV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2 ZW50IGJ1dHRvbiB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckJ1dHRvbkV2ZW50ICopIildICBn ZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkNyb3NzaW5nRXZlbnQgY3Jvc3Npbmcge1tDQ29kZSAo Y25hbWUgPSAiKENsdXR0ZXJDcm9zc2luZ0V2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBD bHV0dGVyLktleUV2ZW50IGtleSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlcktleUV2ZW50ICop IildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7W0NDb2Rl IChjbmFtZSA9ICIoQ2x1dHRlck1vdGlvbkV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBD bHV0dGVyLlNjcm9sbEV2ZW50IHNjcm9sbCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9s bEV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVudCBz dGFnZV9zdGF0ZSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclN0YWdlU3RhdGVFdmVudCAqKSIp XSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHtbQ0NvZGUgKGNu YW1lID0gIihDbHV0dGVyVG91Y2hFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRl ci5Ub3VjaHBhZFBpbmNoRXZlbnQgdG91Y2hwYWRfcGluY2gge1tDQ29kZSAoY25hbWUgPSAiKENs dXR0ZXJUb3VjaHBhZFBpbmNoRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIu VG91Y2hwYWRTd2lwZUV2ZW50IHRvdWNocGFkX3N3aXBlIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0 dGVyVG91Y2hwYWRTd2lwZUV2ZW50ICopIildICBnZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94 ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2V2ZW50X3NlcXVlbmNlX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTYxOTgs MTAgKzU3NTAsMjQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTYiKV0KKyAJCXB1YmxpYyBib29sIHNuYXBfdG9fZ3JpZCB7IGdldDsgc2V0OyB9CisgCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2ZyYW1lX2Nsb2NrX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBG cmFtZUNsb2NrIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorKwkJcHVibGljIEZyYW1lQ2xvY2sgKGZsb2F0IHJlZnJlc2hfcmF0ZSwg Q2x1dHRlci5GcmFtZUxpc3RlbmVySWZhY2UgaWZhY2UsIHZvaWQqIHVzZXJfZGF0YSk7CisrCQlw dWJsaWMgdm9pZCBhZGRfdGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOworKwkJ cHVibGljIGZsb2F0IGdldF9yZWZyZXNoX3JhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBpbmhpYml0 ICgpOworKwkJcHVibGljIHZvaWQgcmVtb3ZlX3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRp bWVsaW5lKTsKKysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKysJCXB1YmxpYyB2 b2lkIHNjaGVkdWxlX3VwZGF0ZV9ub3cgKCk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXQgKCk7 CisrCQlbSGFzRW1pdHRlcl0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXN0cm95ICgpOworKwl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9nZXN0dXJlX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCisgCXB1YmxpYyBjbGFzcyBHZXN0dXJlQWN0aW9uIDogQ2x1dHRlci5B Y3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckFjdGlvbioiKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1 YmxpYyBHZXN0dXJlQWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJ CXB1YmxpYyB2b2lkIGNhbmNlbCAoKTsKK0BAIC02MjExLDYgKzU3NzcsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZp Y2UgKHVpbnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuRXZlbnQgZ2V0X2xhc3RfZXZlbnQgKHVpbnQgcG9pbnQpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29y ZHMgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZsb2F0IG1vdGlvbl95KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X21vdGlv bl9kZWx0YSAodWludCBwb2ludCwgb3V0IGZsb2F0IGRlbHRhX3gsIG91dCBmbG9hdCBkZWx0YV95 KTsKK0BAIC02MjE4LDcgKzU3ODUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dWludCBnZXRfbl9jdXJyZW50X3BvaW50cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCQlwdWJsaWMgaW50IGdldF9uX3RvdWNoX3BvaW50cyAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9wcmVzc19jb29yZHMgKHVpbnQgcG9p bnQsIG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfcmVsZWFzZV9jb29yZHMgKHVpbnQg cG9pbnQsIG91dCBmbG9hdCByZWxlYXNlX3gsIG91dCBmbG9hdCByZWxlYXNlX3kpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnRT ZXF1ZW5jZSBnZXRfc2VxdWVuY2UgKHVpbnQgcG9pbnQpOworQEAgLTYyNDYsOSArNTgxNSwxMyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgdGhyZXNob2xkX3RyaWdnZXJf ZGlzdGFuY2VfeSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorIAkJcHVibGljIENsdXR0ZXIuR2VzdHVyZVRyaWdnZXJFZGdlIHRocmVzaG9sZF90cmln Z2VyX2VkZ2UgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9iZWdpbiAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBnZXN0dXJlX2NhbmNlbCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBnZXN0dXJlX2VuZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBnZXN0dXJlX3Byb2dyZXNz IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ3JpZF9sYXlvdXRfZ2V0 X3R5cGUgKCkiKV0KK0BAIC02Mjc4LDE5ICs1ODUxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGJvb2wgcm93X2hvbW9nZW5lb3VzIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1 aW50IHJvd19zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ3JvdXBfZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3Mg R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJs ZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIEdyb3VwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBpbnQg Z2V0X25fY2hpbGRyZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfbnRoX2NoaWxkIChpbnQgaW5kZXhfKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCByZW1vdmVfYWxsICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9pbWFnZV9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgSW1hZ2UgOiBH TGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC02MzA2LDYgKzU4NjYsOCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBjbGFzcyBJbnB1dERldmljZSA6IEdMaWIuT2JqZWN0 IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3Rl Y3RlZCBJbnB1dERldmljZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVu Y2U/IHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2Fzc29jaWF0ZWRfZGV2aWNlICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMTMsNyArNTg3NSw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29s IGdldF9heGlzX3ZhbHVlIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZG91YmxlW10g YXhlcywgQ2x1dHRlci5JbnB1dEF4aXMgYXhpcywgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRl ci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJs aWMgYm9vbCBnZXRfY29vcmRzIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBHcmFw aGVuZS5Qb2ludCBwb2ludCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgaW50IGdldF9kZXZpY2VfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitA QCAtNjMyNSwxMiArNTg4Nyw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0 dGVyLklucHV0RGV2aWNlVHlwZSBnZXRfZGV2aWNlX3R5cGUgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKy0JCVtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9nZXRfaW5wdXRfZGV2aWNlX2Zvcl9pZCIpXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9m b3JfaWQgKGludCBpZF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2dyYWJiZWRfYWN0b3IgKCk7CistCQlwdWJsaWMg aW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworKwkJcHVibGljIHZpcnR1YWwgaW50 IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19jdXJzb3IgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCitAQCAtNjM0NiwyMyArNTkwNSwyMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgaW50IGdldF9uX21vZGVfZ3JvdXBzICgpOworIAkJcHVibGljIGludCBnZXRf bl9yaW5ncyAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fc3RyaXBzICgpOworLQkJcHVibGljIGJv b2wgZ2V0X3BoeXNpY2FsX3NpemUgKGRvdWJsZSB3aWR0aCwgZG91YmxlIGhlaWdodCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9wb2ludGVyX2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3By b2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X3NlYXQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsg Q2x1dHRlci5JbnB1dERldmljZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF92ZW5kb3JfaWQg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZ3JhYiAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgYm9vbCBpc19ncm91cGVkIChDbHV0dGVy LklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CistCQlwdWJsaWMgYm9vbCBpc19tb2RlX3N3aXRj aF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJv b2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworKwkJcHVi bGljIHZpcnR1YWwgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQg YnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBr ZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29k ZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdh cmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNlX2dldF9ncmFi YmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KK0BAIC02Mzc4LDEyICs1OTM1LDExIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2 ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1 YWwgdm9pZCB1cGRhdGVfZnJvbV90b29sIChDbHV0dGVyLklucHV0RGV2aWNlVG9vbCB0b29sKTsK KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJ cHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUgZGV2aWNlX21vZGUgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7IGdldDsgY29u c3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtNjQwNiw2ICs1OTYy LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJs aWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0 ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdldDsgY29uc3RydWN0OyB9Cisg CX0KK0BAIC02NDMwLDcgKzU5ODcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFw cGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21taXRfdGV4dCAoc3RyaW5nIHRleHQpOwor IAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5n ICh1aW50IG9mZnNldCwgdWludCBsZW4pOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBkZWxldGVf c3Vycm91bmRpbmcgKGludCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBib29sIGZpbHRl cl9rZXlfZXZlbnQgKENsdXR0ZXIuS2V5RXZlbnQga2V5KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlw dWJsaWMgdmlydHVhbCB2b2lkIGZvY3VzX2luIChDbHV0dGVyLklucHV0TWV0aG9kIGlucHV0X21l dGhvZCk7CitAQCAtNjQ0Myw3ICs2MDAwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHZvaWQgc2V0X2Nhbl9zaG93X3ByZWVkaXQgKGJvb2wgY2FuX3Nob3dfcHJlZWRpdCk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9oaW50cyAoQ2x1dHRlci5JbnB1dENvbnRlbnRIaW50 RmxhZ3MgaGludCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9wdXJwb3NlIChDbHV0dGVy LklucHV0Q29udGVudFB1cnBvc2UgcHVycG9zZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29y X2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29y X2xvY2F0aW9uIChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0 X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlbTm9XcmFw cGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfcHJlZWRpdF90ZXh0IChzdHJpbmcgcHJl ZWRpdCwgdWludCBjdXJzb3IpOworQEAgLTY0NjIsNyArNjAxOSw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlc2V0ICgpOwor IAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlv biAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29y X2xvY2F0aW9uIChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0 X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlwdWJsaWMg dm9pZCBzZXRfcHJlZWRpdF90ZXh0IChzdHJpbmc/IHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKKyAJ CVtOb1dyYXBwZXJdCitAQCAtNjQ3OSw5ICs2MDM2LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9zZSBjb250ZW50X3B1cnBvc2UgeyBn ZXQ7IHNldDsgfQorIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29tbWl0 IChzdHJpbmcgdGV4dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2No YW5nZWQgKENsdXR0ZXIuUmVjdCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNv cl9sb2NhdGlvbl9jaGFuZ2VkIChHcmFwaGVuZS5SZWN0IG9iamVjdCk7CisgCQlbSGFzRW1pdHRl cl0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfc3Vycm91bmRpbmcgKHVpbnQgb2Zmc2V0 LCB1aW50IGxlbik7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nIChp bnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5wdXRfcGFuZWxf c3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIG9iamVjdCk7CisgCQlbSGFzRW1pdHRlcl0K KyAJCXB1YmxpYyBzaWduYWwgdm9pZCByZXF1ZXN0X3N1cnJvdW5kaW5nICgpOworQEAgLTY1NTUs MjggKzYxMTIsMjggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEtleW1hcCAoKTsKKyAJCXB1Ymxp YyB2aXJ0dWFsIGJvb2wgZ2V0X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFs IFBhbmdvLkRpcmVjdGlvbiBnZXRfZGlyZWN0aW9uICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9v bCBnZXRfbnVtX2xvY2tfc3RhdGUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhdGVfY2hh bmdlZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlw dWJsaWMgY2xhc3MgTGF5ZXJOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoi KV0KKysJCXB1YmxpYyBMYXllck5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24sIENhaXJvLlJl Y3RhbmdsZSB2aWV3cG9ydCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgdWludDggb3BhY2l0 eSk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheW91dF9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIExheW91dE1h bmFnZXIgOiBHTGliLkluaXRpYWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIExheW91dE1hbmFnZXIgKCk7CistCQlw dWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIs IENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxh Z3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRl ci5BbHBoYSBiZWdpbl9hbmltYXRpb24gKHVpbnQgZHVyYXRpb24sIHVsb25nIG1vZGUpOworKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVy LCBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0 IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7 CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNv bnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIu VmFsdWUgdmFsdWUpOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0IChDbHV0dGVyLkNvbnRhaW5l ciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBj aGlsZF9zZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5B Y3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJ W05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRh IGNyZWF0ZV9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIu QWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg ZW5kX2FuaW1hdGlvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRf Y2hpbGRfcHJvcGVydHkgKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgdmlydHVhbCBkb3VibGUgZ2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBn ZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNjYzMiwxMiArNjE4OSwxMiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuRWZmZWN0ICgpOworIAkJcHVibGlj IHZpcnR1YWwgQ29nbC5IYW5kbGUgY3JlYXRlX3RleHR1cmUgKGZsb2F0IHdpZHRoLCBmbG9hdCBo ZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdl dF90YXJnZXRfcmVjdCAob3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGlj IGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQi LCBzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF90YXJnZXRfc2l6ZSAob3V0IGZs b2F0IHdpZHRoLCBvdXQgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9p ZCBwYWludF90YXJnZXQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wYWdlX3R1cm5fZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KK0BAIC02NjU0LDYgKzYyMTEsMTcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGRvdWJsZSBwZXJpb2QgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGZs b2F0IHJhZGl1cyB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29u dGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9nZXRfdHlwZSAoKSIs IHVucmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF91bnJlZiIpXQorKwlbQ29t cGFjdF0KKysJcHVibGljIGNsYXNzIFBhaW50Q29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0 cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZm ZXIgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24gZ2V0X3JlZHJhd19jbGlwICgp OworKwkJcHVibGljIHZvaWQgcG9wX2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcHVz aF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlBhaW50Q29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5y ZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBhaW50Tm9k ZSB7CitAQCAtNjY2Myw3ICs2MjMxLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZvaWQgYWRkX211bHRpdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwg ZmxvYXQgdGV4dF9jb29yZHMsIHVpbnQgdGV4dF9jb29yZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lk IGFkZF9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBh ZGRfdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBm bG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50ICgp OworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7 CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4 dCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Tm9kZSBAcmVmICgpOworIAkJcHVi bGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgp OworQEAgLTY2ODEsNyArNjI1MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGdldF9vcmln aW4gKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfb3JpZ2luIChvdXQgdW5vd25lZCBHcmFwaGVuZS5Q b2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg ZmxvYXQgZ2V0X3dpZHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY2 OTEsNyArNjI2MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9oZWlnaHQgKGZsb2F0IGhlaWdodCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0 dGVyLlZlcnRleCBvcmlnaW4pOworKwkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoR3JhcGhlbmUu UG9pbnQzRCBvcmlnaW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X3dpZHRoIChmbG9hdCB3aWR0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCitAQCAtNjc3OCw4OCArNjM0NywyOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgQ2x1dHRlci5QYXRoIHBhdGggeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lk IG5vZGVfcmVhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgdWludCBpbmRleCk7CisgCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0 aW9uID0gImNsdXR0ZXJfcGlja19jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNr X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29u dGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBpY2tDb250ZXh0IHsK KysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBp Y2tDb250ZXh0IEByZWYgKCk7CisrCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfcGlwZWxpbmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxpbmVOb2RlIDogQ2x1dHRlci5QYWludE5vZGUg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVj dGVkIFBpcGVsaW5lTm9kZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50X2dldF90 eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlw dWJsaWMgY2xhc3MgUG9pbnQgeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQg eTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Qb2ludCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBD bHV0dGVyLlBvaW50IGNvcHkgKCk7CistCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIu UG9pbnQgYiwgb3V0IGZsb2F0IHhfZGlzdGFuY2UsIG91dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0J CXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5Qb2ludCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZy ZWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IGluaXQgKGZsb2F0IHgsIGZs b2F0IHkpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgemVybyAoKTsK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfcHJvcGVydHlfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0 aW9uIDogQ2x1dHRlci5UcmFuc2l0aW9uLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclRyYW5zaXRp b24qIildCisgCQlwdWJsaWMgUHJvcGVydHlUcmFuc2l0aW9uIChzdHJpbmc/IHByb3BlcnR5X25h bWUpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlclRyYW5zaXRpb24qIildCisrCQlwdWJsaWMgUHJvcGVydHlUcmFuc2l0aW9uLmZvcl9h Y3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIHN0 cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRf Y29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3JlY3RfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCXB1YmxpYyBjbGFzcyBSZWN0IHsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuUG9p bnQgb3JpZ2luOworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5TaXplIHNpemU7CistCQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuUmVjdCBhbGxvYyAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsYW1wX3RvX3Bp eGVsICgpOworLQkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9p bnQpOworLQkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoQ2x1dHRlci5SZWN0IGIpOworLQkJ cHVibGljIENsdXR0ZXIuUmVjdCBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0 dGVyLlJlY3QgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHZvaWQgZ2V0 X2NlbnRlciAoQ2x1dHRlci5Qb2ludCBjZW50ZXIpOworLQkJcHVibGljIGZsb2F0IGdldF9oZWln aHQgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIGZsb2F0IGdl dF94ICgpOworLQkJcHVibGljIGZsb2F0IGdldF95ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5SZWN0IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln aHQpOworLQkJcHVibGljIHZvaWQgaW5zZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1 YmxpYyBib29sIGludGVyc2VjdGlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdD8gcmVz KTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3Qgbm9ybWFsaXplICgpOworLQkJcHVibGljIHZvaWQg b2Zmc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxv YXQgc194LCBmbG9hdCBzX3kpOworLQkJcHVibGljIHZvaWQgdW5pb24gKENsdXR0ZXIuUmVjdCBi LCBDbHV0dGVyLlJlY3QgcmVzKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlJl Y3QgemVybyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3RhbmdsZSA6IENs dXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVy LkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgUmVjdGFuZ2xlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNv bG9yIGdldF9ib3JkZXJfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHVp bnQgZ2V0X2JvcmRlcl93aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRf Y29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvcmRlcl9jb2xvciAoQ2x1dHRlci5D b2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvcmRl cl93aWR0aCAodWludCB3aWR0aCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0 dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgUmVjdGFuZ2xlLndp dGhfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIENsdXR0ZXIuQ29sb3Ig Ym9yZGVyX2NvbG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IGJvcmRlcl93aWR0aCB7 IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGhhc19ib3JkZXIgeyBnZXQ7 IHNldDsgfQorKwkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVy dHlfbmFtZSk7CisrCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9yb290X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNz IFJvb3ROb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworQEAgLTY4ODAsMTUgKzYzOTAsMTEgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIFNjcmlwdCAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGFkZF9zZWFyY2hfcGF0aHMgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcGF0aHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS4xLCBh cnJheV9sZW5ndGhfdHlwZSA9ICJnc2l6ZSIpXSBzdHJpbmdbXSBwYXRocyk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgYWRkX3N0YXRlcyAoc3RyaW5nPyBuYW1lLCBDbHV0dGVy LlN0YXRlIHN0YXRlKTsKKyAJCXB1YmxpYyB2b2lkIGNvbm5lY3Rfc2lnbmFscyAodm9pZCogdXNl cl9kYXRhKTsKKyAJCXB1YmxpYyB2b2lkIGNvbm5lY3Rfc2lnbmFsc19mdWxsIChDbHV0dGVyLlNj cmlwdENvbm5lY3RGdW5jIGZ1bmMpOworIAkJcHVibGljIHZvaWQgZW5zdXJlX29iamVjdHMgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0IChzdHJpbmcgbmFtZSk7 CisgCQlwdWJsaWMgaW50IGdldF9vYmplY3RzICguLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgZ2V0X3N0YXRlcyAoc3RyaW5nPyBuYW1lKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3RyYW5zbGF0aW9uX2RvbWFpbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIEdMaWIuVHlwZSBn ZXRfdHlwZV9mcm9tX25hbWUgKHN0cmluZyB0eXBlX25hbWUpOworQEAgLTY5MTYsOCArNjQyMiw4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1YmxpYyBTY3JvbGxBY3Rv ciAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgZ2V0X3Njcm9sbF9tb2RlICgpOwor LQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0J CXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJs aWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1Ymxp YyB2b2lkIHNjcm9sbF90b19yZWN0IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZv aWQgc2V0X3Njcm9sbF9tb2RlIChDbHV0dGVyLlNjcm9sbE1vZGUgbW9kZSk7CisgCQlwdWJsaWMg Q2x1dHRlci5TY3JvbGxNb2RlIHNjcm9sbF9tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJfQorQEAgLTY5 MzksNiArNjQ0NSw0NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsK KyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZWF0X2dldF90eXBlICgpIild CisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWF0IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlYXQgKCk7 CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9z ZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBiZWxsX25vdGlmeSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJl c3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQp OworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29weV9ldmVudF9kYXRh IChDbHV0dGVyLkV2ZW50IHNyYywgQ2x1dHRlci5FdmVudCBkZXN0KTsKKysJCXB1YmxpYyB2aXJ0 dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1 dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOworKwkJcHVibGljIHZvaWQgZW5zdXJl X2ExMXlfc3RhdGUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBm cmVlX2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworKwkJcHVibGljIHZvaWQgZ2V0 X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7Cisr CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2tleWJvYXJk ICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFw ICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9w b2ludGVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1 dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyBib29sIGdldF90 b3VjaF9tb2RlICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF91bmZvY3VzICgpOworKwkJcHVi bGljIGJvb2wgaXNfdW5mb2N1c19pbmhpYml0ZWQgKCk7CisrCQlwdWJsaWMgR0xpYi5MaXN0PHdl YWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQg c2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7 CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0 ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lk IHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgd2FycF9wb2ludGVyIChpbnQgeCwgaW50IHkpOworKwkJW05vQWNjZXNz b3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7 IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGJvb2wgdG91Y2hfbW9kZSB7IGdldDsgfQorKwkJcHVi bGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3Qp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2 aWNlIG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgaXNfdW5mb2N1c19pbmhpYml0ZWRf Y2hhbmdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2Vk ICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywg dWludCBsb2NrZWRfbWFzayk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxf Y2xpY2tfdHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xp Y2tfdHlwZSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVk IChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRU eXBlIHRpbWVvdXRfdHlwZSwgdWludCBkZWxheSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRy X2ExMXlfdGltZW91dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRl ci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgYm9vbCBjbGlja2VkKTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2Jq ZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NldHRp bmdzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGlj IGNsYXNzIFNldHRpbmdzIDogR0xpYi5PYmplY3QgeworQEAgLTcwMTEsMTggKzY1NTgsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlwcm90ZWN0ZWQgU2hhZGVyTWF0cml4ICgpOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNs dXR0ZXJfc2l6ZV9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFNpemUgeworLQkJcHVibGljIGZsb2F0IGhlaWdo dDsKKy0JCXB1YmxpYyBmbG9hdCB3aWR0aDsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5TaXpl IGFsbG9jICgpOworLQkJcHVibGljIENsdXR0ZXIuU2l6ZSBjb3B5ICgpOworLQkJcHVibGljIGJv b2wgZXF1YWxzIChDbHV0dGVyLlNpemUgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5TaXplIGluaXQgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln aHQpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zbmFwX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAlwdWJsaWMgY2xhc3MgU25hcENvbnN0cmFpbnQg OiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTcwNDMsMTM1ICs2NTc4LDY2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkdy b3VwLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIu QWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRh aW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBTdGFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhcHR1cmUg KGJvb2wgcGFpbnQsIENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBDbHV0dGVyLkNhcHR1cmUgY2Fw dHVyZXMsIGludCBuX2NhcHR1cmVzKTsKKyAJCXB1YmxpYyB2b2lkIGNhcHR1cmVfaW50byAoYm9v bCBwYWludCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIHVpbnQ4IGRhdGEpOworKwkJcHVibGlj IHZvaWQgY2xlYXJfc3RhZ2Vfdmlld3MgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJf c3RhZ2VfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBi b29sIGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9jdXJy ZW50ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZW5z dXJlX3JlZHJhdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIGVuc3VyZV92aWV3cG9ydCAoKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV91cGRhdGVzICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2FjY2Vw dF9mb2N1cyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0 X3BvcyAoQ2x1dHRlci5QaWNrTW9kZSBwaWNrX21vZGUsIGludCB4LCBpbnQgeSk7CisrCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01v ZGUgcGlja19tb2RlLCBmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBib29sIGdldF9jYXB0 dXJlX2ZpbmFsX3NpemUgKENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsIGZsb2F0IHNjYWxlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29s b3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X2Rl ZmF1bHQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGdldF9m b2cgKCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfZnVsbHNjcmVlbiAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X2tleV9mb2N1cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1 YmxpYyB2b2lkIGdldF9taW5pbXVtX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWln aHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X21v dGlvbl9ldmVudHNfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBib29sIGdldF9ub19jbGVhcl9oaW50ICgpOworIAkJcHVibGljIENsdXR0ZXIuUGVy c3BlY3RpdmUgZ2V0X3BlcnNwZWN0aXZlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCBnZXRfcmVkcmF3X2NsaXBfYm91bmRzICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Rocm90 dGxlX21vdGlvbl9ldmVudHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2ZvZyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VyX3Jlc2l6YWJsZSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGhpZGVfY3Vyc29yICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBib29sIGlzX2RlZmF1bHQgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuOCIpXQorLQkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3ICgpOworKwkJcHVibGljIGJvb2wg cGFpbnRfdG9fYnVmZmVyIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgZmxvYXQgc2NhbGUsIHVp bnQ4IGRhdGEsIGludCBzdHJpZGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDbHV0dGVyLlBh aW50RmxhZyBwYWludF9mbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBw YWludF90b19mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgQ2Fpcm8u UmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0IHNjYWxlLCBDbHV0dGVyLlBhaW50RmxhZyBwYWludF9m bGFncyk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKyAJCXB1YmxpYyB1aW50 OFtdIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCA9IC0xLCBpbnQgaGVpZ2h0 ID0gLTEpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3JlZHJhdyIpXQorLQkJcHVibGlj IHZvaWQgcmVkcmF3ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2FjY2VwdF9mb2N1cyAoYm9vbCBhY2NlcHRfZm9jdXMpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgc2V0X2ZvZyAoQ2x1dHRlci5Gb2cgZm9nKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mdWxsc2NyZWVuIChib29sIGZ1 bGxzY3JlZW4pOworKwkJcHVibGljIHZvaWQgc2NoZWR1bGVfdXBkYXRlICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRl ci5BY3Rvcj8gYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X21pbmltdW1fc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNf ZW5hYmxlZCAoYm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9ub19jbGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9wZXJzcGVjdGl2ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0 bGVfbW90aW9uX2V2ZW50cyAoYm9vbCB0aHJvdHRsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FscGhhIChib29s IHVzZV9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9m b2cgKGJvb2wgZm9nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF91c2VyX3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworLQkJcHVibGljIHZvaWQg c2hvd19jdXJzb3IgKCk7CistCQlwdWJsaWMgdm9pZCB0aGF3X3VwZGF0ZXMgKCk7CistCQlwdWJs aWMgdm9pZCB1cGRhdGVfcmVzb3VyY2Vfc2NhbGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorLQkJcHVibGljIGJvb2wgYWNjZXB0X2ZvY3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVlbl9zZXQgeyBn ZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFj dG9yIGtleV9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgYm9vbCBub19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIG9mZnNjcmVlbiB7IGdldDsgc2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2 ZSBwZXJzcGVjdGl2ZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2 ZSBwZXJzcGVjdGl2ZSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJ cHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgYm9vbCB1c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9mb2cgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgdXNlcl9yZXNpemFibGUgeyBnZXQ7 IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgYWN0aXZhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQor LQkJcHVibGljIHNpZ25hbCB2b2lkIGFmdGVyX3BhaW50ICgpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIGFmdGVyX3BhaW50IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBhZnRlcl91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIGJlZm9yZV9wYWludCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgYmVmb3JlX3VwZGF0ZSAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBkZWFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZGVsZXRlX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIGZ1bGxzY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCB1bmZ1bGxzY3JlZW4gKCk7CisrCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBwYWludF92aWV3IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3LCBDYWly by5SZWdpb24gcmVkcmF3X2NsaXApOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9tYW5hZ2VyX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03MTg1LDggKzY2 NTEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgp OworIAkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdl cyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdl IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJ CXB1YmxpYyBDbHV0dGVyLlN0YWdlIGRlZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjgiKV0KK0BAIC03MjA2LDYzICs2NjcwLDMzIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB1aW50MzIgdGltZTsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlw ZSB0eXBlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGF0ZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBjbGFzcyBTdGF0ZSA6IEdMaWIuT2JqZWN0LCBD bHV0dGVyLlNjcmlwdGFibGUgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2Vfdmlld19nZXRfdHlwZSAoKSIp XQorKwlwdWJsaWMgY2xhc3MgU3RhZ2VWaWV3IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBTdGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBnZXRfZHVy YXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25h bWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVy LlN0YXRlS2V5PiBnZXRfa2V5cyAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0 YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9u YW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0 YXRlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJp bmc+IGdldF9zdGF0ZXMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgcmVtb3ZlX2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5n PyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0 eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24g KHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVp bnQgZHVyYXRpb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuU3RhdGUgc2V0X2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdl dF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdCBvYmplY3QsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1 aW50IG1vZGUsIEdMaWIuVmFsdWUgdmFsdWUsIGRvdWJsZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0 X2RlbGF5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRp bWVsaW5lIHNldF9zdGF0ZSAoc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIHdhcnBfdG9fc3RhdGUg KHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSk7CisrCQlwcm90ZWN0ZWQgU3RhZ2VWaWV3ICgpOwor KwkJcHVibGljIHZvaWQgYXNzaWduX25leHRfc2Nhbm91dCAoQ29nbC5TY2Fub3V0IHNjYW5vdXQp OworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7 CisrCQlwdWJsaWMgdm9pZCBnZXRfbGF5b3V0IChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCk7Cisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIGdldF9vZmZzY3JlZW5fdHJhbnNmb3JtYXRpb25fbWF0cml4 IChDb2dsLk1hdHJpeCBtYXRyaXgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZl ciBnZXRfb25zY3JlZW4gKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3NjYWxlICgpOworKwkJcHVi bGljIHZvaWQgaW52YWxpZGF0ZV9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoKTsKKysJCVtOb1dy YXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldHVwX29mZnNjcmVlbl9ibGl0X3BpcGVs aW5lIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIHRyYW5zZm9ybV9yZWN0X3RvX29uc2NyZWVuIChDYWlyby5SZWN0YW5nbGVJ bnQgc3JjX3JlY3QsIGludCBkc3Rfd2lkdGgsIGludCBkc3RfaGVpZ2h0LCBDYWlyby5SZWN0YW5n bGVJbnQgZHN0X3JlY3QpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENhaXJv LlJlY3RhbmdsZUludCBsYXlvdXQgeyBvd25lZCBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBzdHJpbmcgc3Rh dGUgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0 YXRlX2tleV9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBkb3VibGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGRvdWJsZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90YXJn ZXRfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRf dmFsdWUgKEdMaWIuVmFsdWUgdmFsdWUpOworKwkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGZsb2F0 IHJlZnJlc2hfcmF0ZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRo b2RdCisrCQlwdWJsaWMgZmxvYXQgc2NhbGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtO b0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU3RhZ2Ugc3RhZ2UgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9vbCB1 c2Vfc2hhZG93ZmIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9h Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcy NzQsNTMgKzY3MDgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIENsdXR0ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfdGFibGVfbGF5b3V0X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS40IildCist CXB1YmxpYyBjbGFzcyBUYWJsZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5 b3V0TWFuYWdlcioiKV0KKy0JCXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBv dXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdu bWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAoKTsKKy0JCXB1 YmxpYyB1aW50IGdldF9jb2x1bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdWludCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB1bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9l eHBhbmQsIG91dCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBnZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQg Ym9vbCB5X2ZpbGwpOworLQkJcHVibGljIGludCBnZXRfcm93X2NvdW50ICgpOworLQkJcHVibGlj IHVpbnQgZ2V0X3Jvd19zcGFjaW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NwYW4gKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIG91dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQgcm93X3NwYW4pOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsK Ky0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW4sIGlu dCByb3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQg KENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1 dHRlci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2x1bW5f c3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfZWFzaW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJv b2wgeF9leHBhbmQsIGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5 X2ZpbGwpOworLQkJcHVibGljIHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50IHNwYWNpbmcpOwor LQkJcHVibGljIHZvaWQgc2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW5f c3BhbiwgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMgdWludCBjb2x1bW5f c3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQg ZWFzaW5nX2R1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdWxvbmcgZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgcm93X3Nw YWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIHVz ZV9hbmltYXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFwX2FjdGlvbl9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xh c3MgVGFwQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzQ4LDcgKzY3MzUs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vy c29yX2NvbG9yICgpOworIAkJcHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVj dCAob3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1 cnNvcl9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVp bnQgZ2V0X2N1cnNvcl9zaXplICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxl ICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0NjcsNyArNjg1NCw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisg CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENs dXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg Y3Vyc29yX2V2ZW50IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3Rl eHQgKGludCBzdGFydF9wb3MsIGludCBlbmRfcG9zKTsKK0BAIC03NTA1LDk0ICs2ODkyLDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKyAJCXB1YmxpYyBUZXh0Tm9kZSAo UGFuZ28uTGF5b3V0PyBsYXlvdXQsIENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIild CistCXB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9y LCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBUZXh0dXJlICgpOworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIFRleHR1cmUuZnJvbV9hY3RvciAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIFRl eHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBDbHV0dGVyLlRleHR1cmVF cnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBnZXRfYmFzZV9zaXplIChvdXQgaW50IHdpZHRoLCBv dXQgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29n bC5IYW5kbGUgZ2V0X2NvZ2xfbWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVi bGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X2NvZ2xfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBnZXRfZmlsdGVyX3F1YWxp dHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2tlZXBfYXNwZWN0 X3JhdGlvICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2Fz eW5jICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2RhdGFf YXN5bmMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGludCBnZXRfbWF4X3RpbGVf d2FzdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3BpY2tfd2l0 aF9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfcmVwZWF0 IChvdXQgYm9vbCByZXBlYXRfeCwgb3V0IGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBib29sIGdldF9zeW5jX3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIGJvb2wgc2V0X2FyZWFfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB4LCBpbnQgeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRl eHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfbWF0ZXJpYWwgKENvZ2wuSGFuZGxlIGNvZ2xfbWF0ZXJp YWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX3RleHR1cmUg KENvZ2wuSGFuZGxlIGNvZ2xfdGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9p ZCBzZXRfZmlsdGVyX3F1YWxpdHkgKENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxp dHkpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX2ZpbGUgKHN0 cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJ cHVibGljIGJvb2wgc2V0X2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQs IGludCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJv bV95dXZfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dz IEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2tlZXBf YXNwZWN0X3JhdGlvIChib29sIGtlZXBfYXNwZWN0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfbG9hZF9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbG9hZF9kYXRhX2FzeW5jIChib29sIGxvYWRfYXN5 bmMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9waWNrX3dpdGhfYWxw aGEgKGJvb2wgcGlja193aXRoX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfcmVwZWF0IChib29sIHJlcGVhdF94LCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3luY19zaXplIChib29sIHN5bmNfc2l6ZSk7 CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKy0J CXB1YmxpYyBDb2dsLlRleHR1cmUgY29nbF90ZXh0dXJlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGlzYWJsZV9zbGljaW5nIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzdHJpbmcgZmls ZW5hbWUgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxp dHkgZmlsdGVyX3F1YWxpdHkgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBib29s IGtlZXBfYXNwZWN0X3JhdGlvIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgYm9vbCBsb2FkX2FzeW5jIHsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIGJvb2wgbG9hZF9kYXRhX2FzeW5jIHsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBwaWNrX3dp dGhfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Ym9vbCByZXBlYXRfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBib29sIHJlcGVhdF95IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIHN5bmNfc2l6 ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgdGls ZV93YXN0ZSB7IGdldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIGxvYWRfZmluaXNoZWQgKEdMaWIuRXJyb3IgZXJyb3IpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpeGJ1Zl9jaGFuZ2UgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2UgKGludCB3aWR0aCwgaW50IGhlaWdodCk7Cist CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgVGV4dHVyZU5vZGUgOiBDbHV0dGVyLlBp cGVsaW5lTm9kZSB7CitAQCAtNzYwNCw3ICs2OTAzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAlwdWJsaWMgY2xhc3MgVGltZWxpbmUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBUaW1lbGluZSAodWludCBtc2Vjcyk7Cisr CQlwdWJsaWMgVGltZWxpbmUgKHVpbnQgZHVyYXRpb25fbXMpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB2b2lkIGFkZF9tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFt ZSwgZG91YmxlIHByb2dyZXNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03 NjEyLDEyICs2OTExLDE1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFk dmFuY2UgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVi bGljIHZvaWQgYWR2YW5jZV90b19tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuVGltZWxpbmUgY2xvbmUgKCk7CisrCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUu Zm9yX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yLCB1aW50IGR1cmF0aW9uX21zKTsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBUaW1lbGlu ZS5mb3JfZnJhbWVfY2xvY2sgKENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jaywgdWludCBk dXJhdGlvbl9tcyk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hdXRv X3JldmVyc2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJv b2wgZ2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIu UG9pbnQgY18yKTsKKysJCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdy YXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X3JlcGVhdCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KK0BAIC03NjMxLDggKzY5MzMsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludDY0 IGdldF9kdXJhdGlvbl9oaW50ICgpOworIAkJcHVibGljIHVpbnQgZ2V0X2VsYXBzZWRfdGltZSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Byb2dyZXNzICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NjUxLDE4ICs2OTUxLDE4IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92 ZV9tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSk7CisgCQlwdWJsaWMgdm9pZCByZXdpbmQgKCk7 CisrCQlwdWJsaWMgdm9pZCBzZXRfYWN0b3IgKENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2Ug KGJvb2wgcmV2ZXJzZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0 ZXIuUG9pbnQgY18yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3Mg KEdyYXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vjcyk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGlyZWN0aW9u IChDbHV0dGVyLlRpbWVsaW5lRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworKwkJcHVibGljIHZvaWQg c2V0X2ZyYW1lX2Nsb2NrIChDbHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2spOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wcm9ncmVzc19mdW5j IChvd25lZCBDbHV0dGVyLlRpbWVsaW5lUHJvZ3Jlc3NGdW5jPyBmdW5jKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCitAQCAtNzY3NCw2ICs2OTc0LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZvaWQgc2tpcCAodWludCBtc2Vjcyk7CisgCQlwdWJsaWMgdm9pZCBz dGFydCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN0b3AgKCk7CisrCQlwdWJsaWMgQ2x1dHRlci5BY3Rv ciBhY3RvciB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorIAkJcHVibGljIGJvb2wgYXV0b19yZXZlcnNlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KK0BAIC03NjgyLDggKzY5ODMsOCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZURpcmVjdGlvbiBkaXJlY3Rpb24geyBn ZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVpbnQg ZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7IHNl dDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5GcmFtZUNsb2Nr IGZyYW1lX2Nsb2NrIHsgb3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQW5pbWF0aW9uTW9kZSBwcm9ncmVz c19tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAt NzY5NywxMiArNjk5OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzdG9wcGVkIChib29s IGlzX2ZpbmlzaGVkKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMg VGltZW91dFBvb2wgKGludCBwcmlvcml0eSk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21w YWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc3NTMsNiArNzA0OCwxMSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9h dCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90cmFuc2Zvcm1fbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlw dWJsaWMgY2xhc3MgVHJhbnNmb3JtTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5v ZGUqIildCisrCQlwdWJsaWMgVHJhbnNmb3JtTm9kZSAoQ29nbC5NYXRyaXggcHJvamVjdGlvbik7 CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFRyYW5zaXRpb24gOiBD bHV0dGVyLlRpbWVsaW5lLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTc3OTIsNyArNzA5Miw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBWaXJ0dWFsSW5wdXREZXZpY2UgKCk7CisgCQlwdWJs aWMgaW50IGdldF9kZXZpY2VfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRGV2 aWNlTWFuYWdlciBnZXRfbWFuYWdlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5 X2Fic29sdXRlX21vdGlvbiAodWludDY0IHRpbWVfdXMsIGRvdWJsZSB4LCBkb3VibGUgeSk7Cisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9idXR0b24gKHVpbnQ2NCB0aW1lX3VzLCB1aW50 MzIgYnV0dG9uLCBDbHV0dGVyLkJ1dHRvblN0YXRlIGJ1dHRvbl9zdGF0ZSk7CisgCQlwdWJsaWMg dmlydHVhbCB2b2lkIG5vdGlmeV9kaXNjcmV0ZV9zY3JvbGwgKHVpbnQ2NCB0aW1lX3VzLCBDbHV0 dGVyLlNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIENsdXR0ZXIuU2Nyb2xsU291cmNlIHNjcm9s bF9zb3VyY2UpOworQEAgLTc4MDMsMjggKzcxMDIsMjcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfZG93biAodWludDY0IHRpbWVfdXMs IGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBu b3RpZnlfdG91Y2hfbW90aW9uICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBk b3VibGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF91cCAodWludDY0 IHRpbWVfdXMsIGludCBzbG90KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENs dXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5T ZWF0IHNlYXQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl96b29t X2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlw dWJsaWMgY2xhc3MgWm9vbUFjdGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9u KiIpXQorIAkJcHVibGljIFpvb21BY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxf cG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9y bWVkX2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdl dF9mb2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0 X3RyYW5zZm9ybWVkX2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlwdWJs aWMgQ2x1dHRlci5ab29tQXhpcyBnZXRfem9vbV9heGlzICgpOworIAkJcHVibGljIHZvaWQgc2V0 X3pvb21fYXhpcyAoQ2x1dHRlci5ab29tQXhpcyBheGlzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpv b21BeGlzIHpvb21fYXhpcyB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg Ym9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBvaW50IGZvY2FsX3BvaW50 LCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENs dXR0ZXIuQWN0b3IgYWN0b3IsIEdyYXBoZW5lLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFj dG9yKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2NuYW1lID0gIkNsdXR0ZXJBbmltYXRhYmxlSW50ZXJmYWNlIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2FuaW1hdGFibGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBB bmltYXRhYmxlIDogR0xpYi5PYmplY3QgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGFi c3RyYWN0IGJvb2wgYW5pbWF0ZV9wcm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9u LCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZh bHVlIGZpbmFsX3ZhbHVlLCBkb3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xp Yi5QYXJhbVNwZWMgZmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworKwkJcHVi bGljIGFic3RyYWN0IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfaW5pdGlh bF9zdGF0ZSAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTc4MzUsMTIgKzcxMzMsOSBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jb250YWluZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIu T2JqZWN0IHsKKy0JCXB1YmxpYyB2b2lkIGFkZCAocGFyYW1zIENsdXR0ZXIuQWN0b3JbXSBhY3Rv cnMpOworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gImFkZCIpXQorIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0K KyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgYWRkX3ZhbGlzdCAoQ2x1dHRlci5B Y3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQWN0b3IgYWN0b3Is IC4uLik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzg2MCwxOCArNzE1NSwx MCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3lf Y2hpbGRfbWV0YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFt ZSAoc3RyaW5nIGNoaWxkX25hbWUpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRh aW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5IildCistCQlwdWJsaWMgY2xhc3MgdW5vd25l ZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFt ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2gg KENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgZm9yZWFjaF93aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBj YWxsYmFjayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuQ2hpbGRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1 dHRlci5BY3Rvcj4gZ2V0X2NoaWxkcmVuICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVy X2NvbnRhaW5lcl9jbGFzc19saXN0X2NoaWxkX3Byb3BlcnRpZXMiKV0KKy0JCXB1YmxpYyBjbGFz cyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOworIAkJ W0NDb2RlICh2ZnVuY19uYW1lID0gImxvd2VyIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIHZpcnR1YWwgdm9pZCBsb3dlcl9jaGlsZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRl ci5BY3Rvcj8gc2libGluZyA9IG51bGwpOworQEAgLTc4ODMsOCArNzE3MCw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJyZW1vdmUiKV0KKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVfYWN0b3IgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV92 YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNvcnRfZGVwdGhfb3JkZXIg KCk7CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3Rvcl9hZGRlZCAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CitAQCAtNzkwMSw3ICs3MTg2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZSAoKTsKKyAJCXB1YmxpYyBhYnN0cmFj dCB2b2lkIGludmFsaWRhdGVfc2l6ZSAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBh aW50Tm9kZSBub2RlKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUsIENsdXR0ZXIuUGFpbnRD b250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGF0dGFjaGVkIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzkxNSw0NyArNzIwMCwxNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3VzdG9t X3Byb3BlcnR5IChDbHV0dGVyLlNjcmlwdCBzY3JpcHQsIHN0cmluZyBuYW1lLCBHTGliLlZhbHVl IHZhbHVlKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9pZCAoc3RyaW5nIGlkXyk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CXB1YmxpYyBpbnRlcmZhY2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdl b21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3Ry YWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X3dyYXBwZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wg aGFzX3JlZHJhd19jbGlwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qg dm9pZCBoaWRlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGln bm9yaW5nX3JlZHJhd19jbGlwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJh Y3QgYm9vbCByZWFsaXplICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIHJlc2l6ZSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2li bGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9mdWxsc2Ny ZWVuIChib29sIGlzX2Z1bGxzY3JlZW4pOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0 cmFjdCB2b2lkIHNldF90aXRsZSAoc3RyaW5nIHRpdGxlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgaXNfcmVzaXphYmxl KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93IChib29sIGRv X3JhaXNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxp emUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNs dXR0ZXJfYWN0b3JfYm94X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3gg eworIAkJcHVibGljIGZsb2F0IHgxOworIAkJcHVibGljIGZsb2F0IHkxOworIAkJcHVibGljIGZs b2F0IHgyOworIAkJcHVibGljIGZsb2F0IHkyOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWxsb2MgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsK KysJCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGFtcF90b19waXhlbCAocmVmIENsdXR0ZXIuQWN0b3JC b3ggYm94KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNv bnRhaW5zIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K K0BAIC03OTY0LDggKzcyMTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9v bCBlcXVhbCAoQ2x1dHRlci5BY3RvckJveCBib3hfYik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistCQlwdWJsaWMgQWN0b3JCb3guZnJvbV92 ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCitAQCAtNzk4Niw2ICs3MjM4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHZvaWQgaW5pdF9yZWN0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxv YXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLkFjdG9yQm94IGludGVycG9sYXRlIChDbHV0dGVyLkFjdG9yQm94IGZpbmFsLCBkb3VibGUg cHJvZ3Jlc3MpOworKwkJcHVibGljIGJvb2wgaXNfaW5pdGlhbGl6ZWQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc2NhbGUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTgwMTEsNyArNzI2NCw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlw dWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09M T1IiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jb2xvcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMg c3RydWN0IENvbG9yIHsKKyAJCXB1YmxpYyB1aW50OCByZWQ7CisgCQlwdWJsaWMgdWludDggZ3Jl ZW47CitAQCAtODAyNywxMiArNzI4MCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5Db2xvciB2Mik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC4yIildCisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2NvbG9yX2Zyb21faGxzIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9obHMgKGZsb2F0IGh1 ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKy0JCVtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl9jb2xvcl9mcm9tX3BpeGVsIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9waXhl bCAodWludDMyIHBpeGVsKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9t X3N0cmluZyIpXQorLQkJcHVibGljIENvbG9yLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKysJ CXB1YmxpYyBzdGF0aWMgdm9pZCBmcm9tX2hscyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIGZs b2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKysJCXB1YmxpYyBz dGF0aWMgdm9pZCBmcm9tX3BpeGVsIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgdWludDMyIHBp eGVsKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgYm9v bCBmcm9tX3N0cmluZyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBzdHIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0 ZXIuQ29sb3I/IGdldF9zdGF0aWMgKENsdXR0ZXIuU3RhdGljQ29sb3IgY29sb3IpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVpbnQgaGFzaCAoKTsKK0BAIC04MDQx LDggKzcyOTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBpbnRlcnBvbGF0ZSAoQ2x1dHRlci5Db2xv ciBmaW5hbCwgZG91YmxlIHByb2dyZXNzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGxpZ2h0 ZW4gKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0K Ky0JCXB1YmxpYyBib29sIHBhcnNlX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJsaWMgQ2x1 dHRlci5Db2xvciBzaGFkZSAoZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBzdWJ0cmFjdCAoQ2x1dHRlci5Db2xvciBiKTsKKyAJCXB1YmxpYyB2b2lkIHRvX2hscyAob3V0 IGZsb2F0IGh1ZSwgb3V0IGZsb2F0IGx1bWluYW5jZSwgb3V0IGZsb2F0IHNhdHVyYXRpb24pOwor QEAgLTgwNTAsMjMgKzczMDAsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2ZvZ19nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMg c3RydWN0IEZvZyB7CistCQlwdWJsaWMgZmxvYXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0IHpf ZmFyOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RydWN0IEdlb21ldHJ5IHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsK Ky0JCXB1YmxpYyB1aW50IHdpZHRoOworLQkJcHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5H ZW9tZXRyeSBnZW9tZXRyeTEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIENsdXR0ZXIuR2VvbWV0cnkgdW5pb24gKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IEZyYW1lTGlzdGVuZXJJZmFjZSB7Cisr CQlwdWJsaWMgd2VhayBnbG9iYWw6OmJlZm9yZV9mcmFtZSBiZWZvcmVfZnJhbWU7CisrCQlwdWJs aWMgd2VhayBnbG9iYWw6OmZyYW1lIGZyYW1lOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJs aWMgc3RydWN0IEtiZEExMXlTZXR0aW5ncyB7CitAQCAtODA3OCw3ICs3MzE1LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGludCBtb3VzZWtleXNfbWF4X3NwZWVkOworIAkJcHVi bGljIGludCBtb3VzZWtleXNfYWNjZWxfdGltZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RydWN0IEtub3QgeworIAkJcHVibGlj IGludCB4OworQEAgLTgwODcsOCArNzMyNCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5Lbm90IGtub3RfYik7CisgCQlwdWJsaWMgdm9pZCBm cmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXgg OiBDb2dsLk1hdHJpeCB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGlj IHN0YXRpYyBDbHV0dGVyLk1hdHJpeD8gYWxsb2MgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorKwkJcHVibGljIHZvaWQgZnJlZSAoKTsKKysJCXB1YmxpYyBzdGF0aWMgR0xpYi5U eXBlIGdldF90eXBlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuTWF0cml4PyBpbml0X2Zyb21fYXJyYXkgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSBmbG9hdCB2YWx1ZXNbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9mcm9tX21h dHJpeCAoQ2x1dHRlci5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfaWRlbnRpdHkgKCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGFkQnV0dG9uRXZlbnQgeworQEAgLTgx MzAsNyArNzM3OCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgdmFs dWU7CisgCQlwdWJsaWMgdWludDMyIG1vZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAi Z19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgUGF0aE5vZGUg eworIAkJcHVibGljIENsdXR0ZXIuUGF0aE5vZGVUeXBlIHR5cGU7CitAQCAtODE0MCw3ICs3Mzg4 LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIu UGF0aE5vZGUgbm9kZV9iKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVyc3Bl Y3RpdmVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJs aWMgc3RydWN0IFBlcnNwZWN0aXZlIHsKKyAJCXB1YmxpYyBmbG9hdCBmb3Z5OworQEAgLTgxNDks NiArNzM5NywxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgel9mYXI7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgUG9pbnRlckExMXlTZXR0aW5n cyB7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUZsYWdzIGNvbnRyb2xzOworKwkJcHVi bGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBkd2VsbF9jbGlja190eXBlOwor KwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbE1vZGUgZHdlbGxfbW9kZTsKKysJCXB1 YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9zaW5n bGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dl c3R1cmVfZG91YmxlOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlv biBkd2VsbF9nZXN0dXJlX2RyYWc7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxs RGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfc2Vjb25kYXJ5OworKwkJcHVibGljIGludCBzZWNvbmRh cnlfY2xpY2tfZGVsYXk7CisrCQlwdWJsaWMgaW50IGR3ZWxsX2RlbGF5OworKwkJcHVibGljIGlu dCBkd2VsbF90aHJlc2hvbGQ7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjI4IildCisgCXB1YmxpYyBzdHJ1Y3QgUHJveGltaXR5RXZlbnQgeworIAkJcHVibGlj IENsdXR0ZXIuRXZlbnRUeXBlIHR5cGU7CitAQCAtODE1OCw0NyArNzQxOSwxNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1 YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9U WVBFX1VOSVRTIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfdW5pdHNfZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFVuaXRzIHsKKyAJCXB1 YmxpYyBDbHV0dGVyLlVuaXRzPyBjb3B5ICgpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0J CVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2NtIildCistCQlwdWJsaWMgVW5p dHMuZnJvbV9jbSAoZmxvYXQgY20pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRz X2Zyb21fZW0iKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX2VtIChmbG9hdCBlbSk7CistCQlbQ0Nv ZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQorLQkJcHVibGlj IFVuaXRzLmZyb21fZW1fZm9yX2ZvbnQgKHN0cmluZyBmb250X25hbWUsIGZsb2F0IGVtKTsKKy0J CVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX21tIildCistCQlwdWJsaWMgVW5p dHMuZnJvbV9tbSAoZmxvYXQgbW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRz X2Zyb21fcGl4ZWxzIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9waXhlbHMgKGludCBweCk7Cist CQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLQkJcHVibGljIFVu aXRzLmZyb21fcHQgKGZsb2F0IHB0KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0 c19mcm9tX3N0cmluZyIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3Ry KTsKKyAJCXB1YmxpYyBDbHV0dGVyLlVuaXRUeXBlIGdldF91bml0X3R5cGUgKCk7CisgCQlwdWJs aWMgZmxvYXQgZ2V0X3VuaXRfdmFsdWUgKCk7CisgCQlwdWJsaWMgZmxvYXQgdG9fcGl4ZWxzICgp OworIAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3ZlcnRl eF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBz dHJ1Y3QgVmVydGV4IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7Cist CQlwdWJsaWMgZmxvYXQgejsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgc3RhdGljIENsdXR0ZXIuVmVydGV4PyBhbGxvYyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleD8gY29weSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlZlcnRleCB2 ZXJ0ZXhfYik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBm cmVlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuVmVydGV4PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfQUNUT1JfQUxJR05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2FsaWdu X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBl bnVtIEFjdG9yQWxpZ24geworQEAgLTgyMjMsMTQgKzc0NTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlZX0FYSVMsCisgCQlCT1RICisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9hbGxvY2F0aW9uX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBBbGxvY2F0aW9uRmxhZ3Mgewor LQkJQUxMT0NBVElPTl9OT05FLAorLQkJQUJTT0xVVEVfT1JJR0lOX0NIQU5HRUQsCistCQlERUxF R0FURV9MQVlPVVQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1h dGlvbl9tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJ cHVibGljIGVudW0gQW5pbWF0aW9uTW9kZSB7CitAQCAtODMzNiw2ICs3NTU4LDI3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVC VUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0Zs YWdzXQorKwlwdWJsaWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJ VEVYVFVSRSwKKysJCUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisr CQlTQ0hFRFVMRVIsCisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJ QU5JTUFUSU9OLAorKwkJTEFZT1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQ SU5HLAorKwkJT09CX1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lk ID0gImNsdXR0ZXJfZHJhZ19heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJcHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDMsMTEgKzc1ODYsMjQg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWF9BWElTLAorIAkJWV9BWElTCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3Bh aW50X2ZsYWdzX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0g ImNsdXR0ZXJfZHJhd19kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVi bGljIGVudW0gRHJhd0RlYnVnRmxhZyB7CisrCQlESVNBQkxFX1NXQVBfRVZFTlRTLAorKwkJRElT QUJMRV9DTElQUEVEX1JFRFJBV1MsCisrCQlSRURSQVdTLAorKwkJUEFJTlRfVk9MVU1FUywKKysJ CURJU0FCTEVfQ1VMTElORywKKysJCURJU0FCTEVfT0ZGU0NSRUVOX1JFRElSRUNULAorKwkJQ09O VElOVU9VU19SRURSQVcsCisrCQlQQUlOVF9ERUZPUk1fVElMRVMsCisrCQlQQUlOVF9EQU1BR0Vf UkVHSU9OCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF8iLCB0eXBlX2lkID0gImNsdXR0 ZXJfZWZmZWN0X3BhaW50X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGlj IGVudW0gRWZmZWN0UGFpbnRGbGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNMVVRURVJfRUZG RUNUX1BBSU5UX0FDVE9SX0RJUlRZIildCistCQlBQ1RPUl9ESVJUWQorKwkJQUNUT1JfRElSVFks CisrCQlCWVBBU1NfRUZGRUNUCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VWRU5UXyIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9ldmVudF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCitAQCAtODM5Miwy MSArNzY0OCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVS RV9OUE9ULAorLQkJU1dBUF9USFJPVFRMRSwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9S RUFEX1BJWEVMUywKKyAJCVNUQUdFX1NUQVRJQywKKy0JCVNUQUdFX1VTRVJfUkVTSVpFLAorIAkJ U1RBR0VfQ1VSU09SLAorIAkJU0hBREVSU19HTFNMLAorIAkJT0ZGU0NSRUVOLAorIAkJU1RBR0Vf TVVMVElQTEUsCistCQlTV0FQX0VWRU5UUzsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9m ZWF0dXJlX2F2YWlsYWJsZSIpXQorLQkJcHVibGljIGJvb2wgaXNfYXZhaWxhYmxlICgpOworLQkJ W0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfZ2V0X2FsbCIpXQorLQkJcHVibGljIHN0 YXRpYyBDbHV0dGVyLkZlYXR1cmVGbGFncyBAZ2V0ICgpOworKwkJU1dBUF9FVkVOVFMKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfRkxPV18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZmxvd19vcmllbnRhdGlvbl9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtODQxNCwxMiAr NzY2MSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElD QUwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfRk9OVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9udF9mbGFn c19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBl bnVtIEZvbnRGbGFncyB7CistCQlNSVBNQVBQSU5HLAorLQkJSElOVElORworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf RlJBTUVfUkVTVUxUXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mcmFtZV9yZXN1bHRfZ2V0X3R5cGUg KCkiKV0KKysJcHVibGljIGVudW0gRnJhbWVSZXN1bHQgeworKwkJUEVORElOR19QUkVTRU5URUQs CisrCQlJRExFCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0dFU1RVUkVfVFJJR0dFUl9FREdFXyIsIHR5cGVf aWQgPSAiY2x1dHRlcl9nZXN0dXJlX3RyaWdnZXJfZWRnZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorQEAgLTg2MzQsNyArNzg3OSw4IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZW51bSBPZmZz Y3JlZW5SZWRpcmVjdCB7CisgCQlBVVRPTUFUSUNfRk9SX09QQUNJVFksCistCQlBTFdBWVMKKysJ CUFMV0FZUywKKysJCU9OX0lETEUKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfT1JJRU5UQVRJT05fIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX29yaWVudGF0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCitAQCAtODY0Miw2ICs3ODg4LDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCUhPUklaT05UQUwsCisgCQlWRVJUSUNBTAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QQUlOVF9G TEFHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9mbGFnX2dldF90eXBlICgpIildCisrCVtG bGFnc10KKysJcHVibGljIGVudW0gUGFpbnRGbGFnIHsKKysJCU5PTkUsCisrCQlOT19DVVJTT1JT LAorKwkJRk9SQ0VfQ1VSU09SUworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QQU5fIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3Bhbl9heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCXB1YmxpYyBlbnVtIFBhbkF4aXMgeworQEAgLTg2NjEsNiArNzkxNCwxMSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlSRUxfTElORV9UTywKKyAJCVJFTF9DVVJWRV9UTworIAl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXgg PSAiQ0xVVFRFUl9ERUJVR19OT1BfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tfZGVidWdfZmxh Z19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBpY2tEZWJ1Z0ZsYWcg eworKwkJUElDS0lORworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QSUNLXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9waWNrX21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAlwdWJsaWMgZW51bSBQaWNrTW9kZSB7CitAQCAtODY2OCwxMyArNzkyNiw0NiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlSRUFDVElWRSwKKyAJCUFMTAorIAl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZ X0RXRUxMX0NMSUNLX1RZUEVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9kd2Vs bF9jbGlja190eXBlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdl bGxDbGlja1R5cGUgeworKwkJTk9ORSwKKysJCVBSSU1BUlksCisrCQlTRUNPTkRBUlksCisrCQlN SURETEUsCisrCQlET1VCTEUsCisrCQlEUkFHCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfRFdFTExf RElSRUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfZGlyZWN0 aW9uX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rp b24geworKwkJTk9ORSwKKysJCUxFRlQsCisrCQlSSUdIVCwKKysJCVVQLAorKwkJRE9XTgorKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX01PREVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50 ZXJfYTExeV9kd2VsbF9tb2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJB MTF5RHdlbGxNb2RlIHsKKysJCVdJTkRPVywKKysJCUdFU1RVUkUKKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf QTExWV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2ZsYWdzX2dldF90eXBlICgp IildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUG9pbnRlckExMXlGbGFncyB7CisrCQlTRUNP TkRBUllfQ0xJQ0tfRU5BQkxFRCwKKysJCURXRUxMX0VOQUJMRUQKKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf QTExWV9USU1FT1VUX1RZUEVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV90aW1l b3V0X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gUG9pbnRlckExMXlUaW1lb3V0 VHlwZSB7CisrCQlTRUNPTkRBUllfQ0xJQ0ssCisrCQlEV0VMTCwKKysJCUdFU1RVUkUKKysJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfUkVQQUlOVF9GTEFHU18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVwYWludF9m bGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCXB1YmxpYyBlbnVtIFJlcGFpbnRGbGFncyB7CisgCQlQUkVfUEFJTlQsCistCQlQT1NU X1BBSU5ULAorLQkJUVVFVUVfUkVEUkFXX09OX0FERAorKwkJUE9TVF9QQUlOVAorIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAi Q0xVVFRFUl9SRVFVRVNUXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZXF1ZXN0X21vZGVfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTg3NTUsOCArODA0Niw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCisgCXB1YmxpYyBlbnVtIFN0YWdlU3RhdGUgeworLQkJRlVMTFNDUkVFTiwKKy0JCU9G RlNDUkVFTiwKKyAJCUFDVElWQVRFRAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9DT0xPUl8iLCB0eXBlX2lk ID0gImNsdXR0ZXJfc3RhdGljX2NvbG9yX2dldF90eXBlICgpIildCitAQCAtODgyMywxMyArODEx Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUxFRlQsCisgCQlSSUdIVAorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAi Q0xVVFRFUl9UQUJMRV9BTElHTk1FTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2FsaWdu bWVudF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBUYWJs ZUFsaWdubWVudCB7CistCQlTVEFSVCwKKy0JCUNFTlRFUiwKKy0JCUVORAorLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9URVhUX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dF9kaXJlY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgZW51 bSBUZXh0RGlyZWN0aW9uIHsKK0BAIC04OTA1LDI4ICs4MTg3LDE2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVZBTFVFOworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9URVhUVVJFX0VSUk9SXyIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCXB1YmxpYyBlcnJvcmRvbWFpbiBUZXh0dXJlRXJyb3IgeworLQkJT1VUX09GX01F TU9SWSwKKy0JCU5PX1lVViwKKy0JCUJBRF9GT1JNQVQ7CistCQlwdWJsaWMgc3RhdGljIEdMaWIu UXVhcmsgcXVhcmsgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMjQiKV0KKyAJcHVibGljIGRlbGVnYXRlIENsdXR0ZXIuQWN0b3IgQWN0b3JDcmVhdGVDaGls ZEZ1bmMgKEdMaWIuT2JqZWN0IGl0ZW0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuMiIp XQorLQlwdWJsaWMgZGVsZWdhdGUgZG91YmxlIEFscGhhRnVuYyAoQ2x1dHRlci5BbHBoYSBhbHBo YSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGlu c3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgQmVoYXZpb3VyRm9yZWFjaEZ1bmMgKENsdXR0ZXIuQmVoYXZpb3VyIGJlaGF2aW91ciwgQ2x1 dHRlci5BY3RvciBhY3Rvcik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgQmluZGluZ0FjdGlvbkZ1bmMgKEdMaWIuT2Jq ZWN0IGdvYmplY3QsIHN0cmluZyBhY3Rpb25fbmFtZSwgdWludCBrZXlfdmFsLCBDbHV0dGVyLk1v ZGlmaWVyVHlwZSBtb2RpZmllcnMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUg dm9pZCBDYWxsYmFjayAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisrCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIEVtaXRJbnB1dERldmljZUV2ZW50IChDbHV0dGVyLkV2ZW50IGV2 ZW50LCBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEV2ZW50RmlsdGVy RnVuYyAoQ2x1dHRlci5FdmVudCBldmVudCk7CitAQCAtODk1Nyw5ICs4MjI3LDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBjb25z dCBpbnQgUFJJT1JJVFlfUkVEUkFXOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGlj IHN0YXRpYyBDbHV0dGVyLkFjdG9yQm94PyBhY3Rvcl9ib3hfYWxsb2MgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGlj IHZvaWQgYmFzZV9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC04OTcxLDM3 ICs4MjM4LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGNoZWNrX3dpbmRvd2luZ19iYWNrZW5kIChzdHJp bmcgYmFja2VuZF90eXBlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVh cl9nbHlwaF9jYWNoZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9mcm9tX2hscyAob3V0IENs dXR0ZXIuQ29sb3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1 cmF0aW9uKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9mcm9tX3BpeGVsIChvdXQgQ2x1dHRlci5D b2xvciBjb2xvciwgdWludDMyIHBpeGVsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyBib29sIGNvbG9yX2Zyb21fc3RyaW5nIChvdXQgQ2x1dHRlci5Db2xvciBjb2xv ciwgc3RyaW5nIHN0cik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDbHV0dGVyLkNvbG9yPyBjb2xvcl9nZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0Nv bG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBzdGF0aWMgdm9p ZCBkaXNhYmxlX2FjY2Vzc2liaWxpdHkgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1 YmxpYyBzdGF0aWMgdm9pZCBkb19ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgZXZlbnRfYWRkX2ZpbHRlciAo Q2x1dHRlci5TdGFnZT8gc3RhZ2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDIuMiwg ZGVzdHJveV9ub3RpZnlfcG9zID0gMi4xKV0gb3duZWQgQ2x1dHRlci5FdmVudEZpbHRlckZ1bmMg ZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5F dmVudCBldmVudF9nZXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IGV2ZW50X3BlZWsgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZXZlbnRfcmVtb3ZlX2ZpbHRlciAodWludCBp ZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBldmVudHNf cGVuZGluZyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCitAQCAtOTAxNCw5ICs4MjU2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdWludDMyIGdldF9jdXJyZW50 X2V2ZW50X3RpbWUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlYnVnX2VuYWJsZWQgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVy LkJhY2tlbmQgZ2V0X2RlZmF1bHRfYmFja2VuZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTAyNiwxOCArODI2NSw5IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgc3Rh dGljIENsdXR0ZXIuVGV4dERpcmVjdGlvbiBnZXRfZGVmYXVsdF90ZXh0X2RpcmVjdGlvbiAoKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Gb250RmxhZ3MgZ2V0X2ZvbnRf ZmxhZ3MgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBQYW5nby5Gb250TWFwIGdldF9mb250X21hcCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleWJvYXJkX2dyYWIg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwg c2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19l bmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIu T3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTA0NSwyNiArODI3NSw4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRp b25fZ3JvdXBfd2l0aG91dF9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFiICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9z Y3JpcHRfaWQgKEdMaWIuT2JqZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0 YXRpYyBib29sIGdldF9zaG93X2ZwcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdWxvbmcgZ2V0X3RpbWVz dGFtcCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdy YWJfa2V5Ym9hcmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXJfZm9yX2Rl dmljZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGlkXyk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIu SW5pdEVycm9yIGluaXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gImFyZ2MiLCBhcnJh eV9sZW5ndGhfcG9zID0gMC41KV0gcmVmIHVub3duZWQgc3RyaW5nW10/IGFyZ3YpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorQEAgLTkwODAsNDEgKzgyOTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZvaWQqIGZ1bmMp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZWZhdWx0X2ZyYW1lX3Jh dGUgKHVpbnQgZnJhbWVzX3Blcl9zZWMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHNldF9mb250X2ZsYWdzIChDbHV0dGVyLkZvbnRGbGFncyBmbGFncyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50c19lbmFibGVkIChib29sIGVu YWJsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVz dF9hZGRfZGF0YV9mdWxsIChzdHJpbmcgdGVzdF9wYXRoLCBvd25lZCBHTGliLlRlc3REYXRhRnVu YyB0ZXN0X2Z1bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBi b29sIHRlc3RfY2hlY2tfYWN0b3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0 ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLkFjdG9yPyBy ZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHRl c3RfY2hlY2tfY29sb3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0ZXIuUG9p bnQgcG9pbnQsIENsdXR0ZXIuQ29sb3IgY29sb3IsIG91dCBDbHV0dGVyLkNvbG9yIHJlc3VsdCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciB0ZXN0X2dldF9zdGFnZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2luaXQgKGlu dCBhcmdjLCBzdHJpbmcgYXJndik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMg c3RhdGljIGludCB0ZXN0X3J1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9wb2ludGVyICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKGludCBpZF8pOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50IHVuaWNvZGVfdG9f a2V5c3ltICh1aW50MzIgd2MpOworIH0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LWN1 c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFsYQorc2ltaWxhcml0eSBpbmRl eCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUtY3VzdG9tLnZhbGEKK3JlbmFt ZSB0byB2YXBpL211dHRlci1jb2dsLTYtY3VzdG9tLnZhbGEKK2RpZmYgLS1naXQgdmFwaS9tdXR0 ZXItY29nbC00LmRlcHMgdmFwaS9tdXR0ZXItY29nbC02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXgg MTAwJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LmRlcHMKK3JlbmFtZSB0byB2YXBp L211dHRlci1jb2dsLTYuZGVwcworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTUudmFwaSB2 YXBpL211dHRlci1jb2dsLTYudmFwaQorc2ltaWxhcml0eSBpbmRleCA2OCUKK3JlbmFtZSBmcm9t IHZhcGkvbXV0dGVyLWNvZ2wtNS52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LnZh cGkKK2luZGV4IGE4OTYxMjI0Li4xOTVlM2IxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2ds LTUudmFwaQorKysrIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitAQCAtMSw2ICsxLDYgQEAKKy0v KiBtdXR0ZXItY29nbC01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnku ICovCisrLyogbXV0dGVyLWNvZ2wtNi52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3Qg bW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9 ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIp XQorK1tDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2ly X3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorIG5hbWVzcGFj ZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ29nbEhhbmRsZSIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIild CisgCVtDb21wYWN0XQorQEAgLTI4LDkgKzI4LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1 YmxpYyBib29sIHNldF9kYXRhIChzaXplX3Qgb2Zmc2V0LCBbQ0NvZGUgKGFycmF5X2xlbmd0aF90 eXBlID0gInNpemVfdCIpXSB1aW50OFtdIGRhdGEpOworIAkJcHVibGljIHZvaWQgdW5tYXAgKCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRXVsZXIgeworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf Y29udGV4dF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIENvbnRleHQgOiBDb2dsLk9i amVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlw cm90ZWN0ZWQgQ29udGV4dCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0 eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTY1LDYyICs2NiwxNyBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJ cHVibGljIE1hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLk1h dGVyaWFsIGNvcHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFj aF9sYXllciAoQ29nbC5NYXRlcmlhbExheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xv ciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Np b24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBi b29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRl eCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBn ZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3Mg KGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7Cist CQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJz ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3Bl Y3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxl IGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J CXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRl cmlhbEFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmll bnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9k aWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg Ym9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29n bC5Db2xvciBjb25zdGFudF9jb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1 ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9j b2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEp OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNv bG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlz c2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2xheWVyIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1cmUpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQg bGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworQEAg LTEzMyw0MSArODksMTMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBs YXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRl eCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1h dGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJf d3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9h dCBwb2ludF9zaXplKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hp bmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4y Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFu ZGxlIG1hdGVyaWFsKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFz cyBNYXRlcmlhbExheWVyIHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRf bWFnX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWlu X2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVy ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93 cmFwX21vZGVfcCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlh bFdyYXBNb2RlIGdldF93cmFwX21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2Jq ZWN0X2dldF9ndHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKK0BA IC0xNzgsMTMgKzEwNiw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNsYXNzIE9mZnNj cmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE9mZnNj cmVlbi50b190ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgdW5yZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAo Q29nbC5UZXh0dXJlIHRleHR1cmUpOworIAl9CitAQCAtMTk2LDkgKzEyMCw2IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9j YWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVl bkRpcnR5Q2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRl c3Ryb3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25z Y3JlZW5SZXNpemVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVf dGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywg Q29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1 ZmZlcnNOb3RpZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFj a2VuZF9zZXRfc2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorQEAgLTIxMyw4ICsxMzQsNiBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJh bWVDbG9zdXJlIGNsb3N1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1 cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9z d2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorQEAgLTI0NCw3ICsxNjMsOCBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVf aWQgPSAiY29nbF9waXBlbGluZV9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVs aW5lIDogQ29nbC5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBpcGVsaW5lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorKwkJcHVibGljIFBpcGVsaW5lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorQEAgLTI1NCwxNiArMTc0LDEwIEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBm bG9hdCBnZXRfYWxwaGFfdGVzdF9yZWZlcmVuY2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9j b2xvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBp cGVsaW5lQ3VsbEZhY2VNb2RlIGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRp ZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyBDb2dsLldpbmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZp bHRlciBnZXRfbGF5ZXJfbWFnX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKK0BAIC0yNzQsOCAr MTg4LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxh eWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2ds LlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVX cmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdl dF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKK0BAIC0yODYsMTAgKzE5OCw2 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1 bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3Vu aWZvcm1fbG9jYXRpb24gKHN0cmluZyB1bmlmb3JtX25hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3Jh bSAoKTsKK0BAIC0yOTgsMTAgKzIwNiw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9u IChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5j ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1i aWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9y KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9ibGVu ZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wu Q29sb3IgY29uc3RhbnRfY29sb3IpOworQEAgLTMxNCwxMCArMjE4LDYgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2N1 bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNl IChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRp bmcgKENvZ2wuV2luZGluZyBmcm9udF93aW5kaW5nKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgs IHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworQEAgLTMzNSw4ICsyMzUs NiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlw ZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5Q aXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wu UGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKK0BAIC0zNDUsMTAgKzI0Myw2IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9w b2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENv Z2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3VuaWZvcm1fMWYgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBmbG9hdCB2YWx1 ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5p Zm9ybV8xaSAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCB2YWx1ZSk7CitAQCAtMzgyLDEwICsy NzYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5pZm9ybV9t YXRyaXggKGludCB1bmlmb3JtX25vLCBpbnQgc2l6ZSwgYm9vbCB0cmFuc3Bvc2UsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX3BvcyA9IDIuOSldIGZsb2F0W10gdmFsdWUpOworIAkJcHVibGljIHZvaWQg dXNlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRl cm5pb24geworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfcmVmIiwg dW5yZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1 YmxpYyBjbGFzcyBTaGFkZXIgOiBDb2dsLkhhbmRsZSB7CitAQCAtNDY1LDEyICszNTUsMTAgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGludCBnZXRfYWxwaGFfYml0cyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2JsdWVfYml0cyAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuQ29u dGV4dCBnZXRfY29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyBpbnQgZ2V0X2RlcHRoX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIp XQorLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9kZXB0aF90ZXh0dXJlICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9kZXB0aF90 ZXh0dXJlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVi bGljIGJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCitAQCAtNTE2LDYgKzQwNCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1Ymxp YyB2b2lkIHB1c2hfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBm bG9hdCB4XzIsIGZsb2F0IHlfMik7CisrCQlwdWJsaWMgdm9pZCBwdXNoX3JlZ2lvbl9jbGlwIChD YWlyby5SZWdpb24gcmVnaW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdm9pZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MjksMTMgKzQx OCw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0 ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRl cm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxl cik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUg KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKGJvb2wgZW5hYmxl ZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Rl cHRoX3dyaXRlX2VuYWJsZWQgKGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCitAQCAtNjM1LDEwICs1MjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBi bHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9h dCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3Jl ZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorQEAgLTY2Miw3ICs1NDMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3Vu dDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBl X2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlw dWJsaWMgc3RydWN0IE1hdHJpeCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxv YXQgeXg7CitAQCAtNjkyLDggKzU3Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBi b29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CisgCQlbQ0NvZGUgKGNu YW1lID0gImNvZ2xfbWF0cml4X2luaXRfaWRlbnRpdHkiKV0KKyAJCXB1YmxpYyBNYXRyaXguaWRl bnRpdHkgKCk7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVs ZXIpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlv biBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUu RXVsZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgaW5pdF90cmFuc2xhdGlvbiAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNzAyLDE5ICs1ODIsMTUgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gsIGZs b2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0X3gs IGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxvYXQg d29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xf bWF0cml4X211bHRpcGx5IildCisgCQlwdWJsaWMgTWF0cml4Lm11bHRpcGx5IChDb2dsLk1hdHJp eCBhLCBDb2dsLk1hdHJpeCBiKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQgbGVm dCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9h dCBmYXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIG9y dGhvZ3JhcGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBm bG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0 IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVi bGljIHZvaWQgcHJvamVjdF9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVf aW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQs IGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29n bC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChH cmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZs b2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBm bG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKysJCXB1Ymxp YyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBDb2dsLk1hdHJpeCBtYXRyaXgsIHJl ZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKyAJCXB1 YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJp ZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19v dXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC04MTgs MzggKzY5NCwzMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlOT05FLAorIAkJTk9fR0VUX0RBVEEK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7Cist CQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCistCQlPRkZTQ1JFRU4sCist CQlPRkZTQ1JFRU5fTVVMVElTQU1QTEUsCistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJ TF9CVUZGRVIsCistCQlWQk9TLAorLQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAor LQkJREVQVEhfUkFOR0UsCistCQlQT0lOVF9TUFJJVEUsCistCQlNQVBfQlVGRkVSX0ZPUl9SRUFE LAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJVEUsCistCQlPTlNDUkVFTl9NVUxUSVBMRSwKKy0JCURF UFRIX1RFWFRVUkUKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfSURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIEZlYXR1cmVJRCB7CisrCQlb Q0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUyIpXQor KwkJT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMsCisrCQlbQ0NvZGUgKGNuYW1l ID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFEIildCisrCQlPR0xfRkVBVFVS RV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFELAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRV UkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZG RVJfRk9SX1dSSVRFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfU1dBUF9C VUZGRVJTX0VWRU5UIildCisrCQlPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQsCisr CQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSIpXQor KwkJT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUsCisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9GRU5DRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfRkVOQ0UsCisrCQlb Q0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHIildCisrCQlPR0xfRkVB VFVSRV9JRF9URVhUVVJFX1JHLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURf QlVGRkVSX0FHRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSwKKysJCVtDQ29kZSAo Y25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMIildCisr CQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTAorIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GSUxU RVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEZpbHRlclJldHVybiB7 CisgCQlDT05USU5VRSwKKyAJCVJFTU9WRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBG b2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJQUxfU1FV QVJFRAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGVudW0gRnJhbWVFdmVudCB7CitAQCAt ODYyLDYgKzczMywxNCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlGUkFNRUJVRkZFUl9FUlJPUl9B TExPQ0FURTsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworIAl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9HUkFQ SElDU19SRVNFVF9TVEFUVVNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBlbnVt IEdyYXBoaWNzUmVzZXRTdGF0dXMgeworKwkJTk9fRVJST1IsCisrCQlHVUlMVFlfQ09OVEVYVF9S RVNFVCwKKysJCUlOTk9DRU5UX0NPTlRFWFRfUkVTRVQsCisrCQlVTktOT1dOX0NPTlRFWFRfUkVT RVQsCisrCQlQVVJHRURfQ09OVEVYVF9SRVNFVAorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdO RURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsK KyAJCUJZVEUsCitAQCAtODg4LDEyICs3NjcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlORUFS RVNUX01JUE1BUF9MSU5FQVIsCisgCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRF UklBTF9MQVlFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29k ZSAoY25hbWUgPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVS SUFMX0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGlj IGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7CitAQCAtOTcxLDYgKzg0NCw4IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCURFUFRIXzE2LAorIAkJREVQVEhfMzIsCisgCQlERVBUSF8yNF9TVEVOQ0lMXzg7 CisrCQlwdWJsaWMgaW50IGdldF9ieXRlc19wZXJfcGl4ZWwgKGludCBwbGFuZSk7CisrCQlwdWJs aWMgaW50IGdldF9uX3BsYW5lcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJp bmcgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorQEAgLTEwNjQsOSArOTM5LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0 Rm9yZWFjaFR5cGVDYWxsYmFjayAoQ29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAy LjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBNYXRlcmlhbExh eWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDEuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwIildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIEZlYXR1cmVDYWxsYmFjayAoQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2Ny ZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRp cnR5SW5mbyBpbmZvKTsKK0BAIC0xMDc0LDEzICs5NDksOSBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3Jl ZW5SZXNpemVDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5z dGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5YMTFNYXNr Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiBldmVudF9tYXNrKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0g Mi45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9v bCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXll cl9pbmRleCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGlu c3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90 aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRl bGVnYXRlIGJvb2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRlcm5hbEFsbG9jIChDb2dsLlRleHR1cmUy RCB0ZXhfMmQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorIAlwdWJsaWMgZGVsZWdhdGUg dm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0YSk7CitAQCAtMTA5Miw2ICs5 NjMsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9E RVBUSF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBERVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUElYRUxfRk9STUFU X01BWF9QTEFORVMiKV0KKysJcHVibGljIGNvbnN0IGludCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5F UzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAi Q09HTF9QUkVNVUxUX0JJVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NU RU5DSUxfQklUIildCitAQCAtMTA5OSwxOSArOTcyLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RF WFRVUkVfTUFYX1dBU1RFIildCisgCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgYmxp dF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBzcmMsIENvZ2wuRnJhbWVidWZmZXIgZGVz dCwgaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCBpbnQgd2lkdGgs IGludCBoZWlnaHQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgY2hlY2tfZXh0ZW5z aW9uIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wu Q29sb3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJfY2hlY2tfZXh0 ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0 dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVy ZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtMTEyOSw1NyArOTkxLDM4IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQg ZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2Zv ZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIGJv b2wgZmVhdHVyZXNfYXZhaWxhYmxlIChDb2dsLkZlYXR1cmVGbGFncyBmZWF0dXJlcyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBmbHVzaCAoKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44LjIiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9h dCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBmb3JlYWNoX2ZlYXR1 cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBDb2dsLkZlYXR1cmVDYWxsYmFjayBjYWxsYmFjayk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJs aWMgc3RhdGljIGJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGdldF9iaXRtYXNrcyAob3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1 ZSwgb3V0IGludCBhbHBoYSk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCXB1Ymxp YyBzdGF0aWMgaW50NjQgZ2V0X2Nsb2NrX3RpbWUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBz dGF0aWMgYm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1 ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2Zl YXR1cmVzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsK KysJcHVibGljIHN0YXRpYyBDb2dsLkdyYXBoaWNzUmVzZXRTdGF0dXMgZ2V0X2dyYXBoaWNzX3Jl c2V0X3N0YXR1cyAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRp YyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuQ2FsbGJh Y2sgZ2V0X3Byb2NfYWRkcmVzcyAoc3RyaW5nIHMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRf cHJvamVjdGlvbl9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9z b3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gb3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0 cml4X2dldF90eXBlICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29s IGhhc19mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlSUQgZmVhdHVy ZSk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfY29udGV4dCAo dm9pZCogb2JqZWN0KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBp c19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtMTE5 Myw1MyArMTAzNiw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGlzX3RleHR1cmVfMmRfc2xpY2VkICh2b2lkKiBv YmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcnRleF9idWZmZXJfaW5k aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIHN0 YXRpYyBib29sIG1hdHJpeF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJv dHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBl cnNwZWN0aXZlIChmbG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQg el9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAo Q29nbC5UZXh0dXJlVmVydGV4IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIGJvb2wgdXNlX2Nv bG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHBvcF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0 IHlfMik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVf d2l0aF9tdWx0aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBm bG9hdCB5MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3Jk cywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHJlY3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEs IGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxv YXQgdHkyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3Rhbmds ZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5f cmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5n bGVzX3dpdGhfdGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBm bG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQg YW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3Vs bGluZ19lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KK0BAIC0xMjQ3LDUzICsxMDQ2LDExIEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKGJvb2wgc2V0 dGluZyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wu Rm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29s b3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0 ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwg dWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfc291cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQg d2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5I YW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAo Q29nbC5IYW5kbGUgaGFuZGxlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENv Z2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgc2hhZGVyX3Jl ZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNlIChDb2ds LkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl91bnJl ZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorQEAgLTEzMDYsNTkgKzEw NjMsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0 aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBo ZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFs X2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1h dHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhh bmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0 cmlidXRlVHlwZSB0eXBlLCBib29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBv aW50ZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBo YW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZl cl9kaXNhYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wu VmVydGljZXNNb2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2 ZXJ0ZXhfYnVmZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0 aWNlc01vZGUgbW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1h eF9pbmRleCwgaW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZl cnRleF9idWZmZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVf bmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5I YW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVy X2luZGljZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLklu ZGljZXNUeXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5k aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVp bnQgbl92ZXJ0aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4yIildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVy X3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1 Ym1pdCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5y ZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZp ZXdwb3J0ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3Jl ZW5fZ2V0X3Zpc3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlk IChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2Ny ZWVuIG9uc2NyZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wu T25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0 dGVyLWNvZ2wtNC1jdXN0b20udmFsYSB2YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK3Np bWlsYXJpdHkgaW5kZXggODElCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9t LnZhbGEKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK2luZGV4IDI1 NTE4ODVhLi5jNGQ0YjkzYSAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZh bGEKKysrKyB2YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK0BAIC0xLDEwICsxLDQgQEAK KyBuYW1lc3BhY2UgQ29nbCB7CistCVtDb21wYWN0XQorLQlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xI YW5kbGUiKV0KKy0JcHVibGljIGNsYXNzIEJpdG1hcDogSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0 aWMgQml0bWFwIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJy b3I7CistCX0KKy0KKyAJW0NvbXBhY3RdCisgCVtDQ29kZSAoY25hbWUgPSAiQ29nbEhhbmRsZSIp XQorIAlwdWJsaWMgY2xhc3MgQnVmZmVyOiBIYW5kbGUgeworQEAgLTQyLDcgKzM2LDcgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJvb2wgaXNfdmVydGV4X2J1ZmZlciAoKTsKKyAJfQor IAorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImNvZ2xfcGF0aF9jb3B5IildIAorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImNvZ2xfcGF0aF9jb3B5IildCisgCVtDb21w YWN0XQorIAlwdWJsaWMgY2xhc3MgUGF0aCB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgQG5ldyAo KTsKK0BAIC04MiwxOCArNzYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBz b3VyY2UgKHN0cmluZyBzb3VyY2UpOworIAl9CisgCistCVtDb21wYWN0XQorLQlbQ0NvZGUgKGNu YW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3JlZiIsIHVu cmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV91bnJlZiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4 dHVyZTogSGFuZGxlIHsKKy0JCXB1YmxpYyBDb2dsLlBpeGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7 CistCQlwdWJsaWMgdWludCBnZXRfcm93c3RyaWRlICgpOworLQkJcHVibGljIFRleHR1cmUuZnJv bV9iaXRtYXAgKENvZ2wuQml0bWFwIGJtcF9oYW5kbGUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdz LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlwdWJsaWMgVGV4dHVyZS5m cm9tX2RhdGEgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFn cywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0LCB1aW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVjaGFy W10gZGF0YSk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwg Q29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0 KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fc3ViX3RleHR1cmUg KENvZ2wuVGV4dHVyZSBmdWxsX3RleHR1cmUsIGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3Vi X3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CistCQlwdWJsaWMgVGV4dHVyZS53aXRoX3NpemUgKHVp bnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhl bEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQl9CistCisgCVtDb21wYWN0XQorIAlbQ0NvZGUg KGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVy X3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl91bnJlZiIpXQorIAlw dWJsaWMgY2xhc3MgVmVydGV4QnVmZmVyOiBIYW5kbGUgeworZGlmZiAtLWdpdCB2YXBpL211dHRl ci1jb2dsLTUuZGVwcyB2YXBpL211dHRlci1jb2dsLTcuZGVwcworc2ltaWxhcml0eSBpbmRleCAx MDAlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUuZGVwcworcmVuYW1lIHRvIHZhcGkv bXV0dGVyLWNvZ2wtNy5kZXBzCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpIHZh cGkvbXV0dGVyLWNvZ2wtNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDU5JQorcmVuYW1lIGZyb20g dmFwaS9tdXR0ZXItY29nbC00LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTcudmFw aQoraW5kZXggNWRlOGY0NDcuLjYyMGMyMzE3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNvZ2wt NC52YXBpCisrKysgdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK0BAIC0xLDEyICsxLDEzIEBACist LyogbXV0dGVyLWNvZ2wtNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5 LiAqLworKy8qIG11dHRlci1jb2dsLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90 IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2Ug PSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8i KV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdp cl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3Bh Y2UgQ29nbCB7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNvZ2xIYW5kbGUiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIp XQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuSGFuZGxlIHsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2ds X2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuT2Jq ZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXBy b3RlY3RlZCBCaXRtYXAgKCk7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAo KTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNv Z2xCaXRtYXAqIildCisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQml0bWFwLmZyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCitAQCAtMTYsMTAgKzE3LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29s IGdldF9zaXplX2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQg aW50IGhlaWdodCk7CisrCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChz dHJpbmcgZmlsZW5hbWUsIG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JCXB1 YmxpYyBzdGF0aWMgQ29nbC5CaXRtYXAgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIildCisgCVtDb21wYWN0XQorQEAgLTI4LDE1 ICsyOCwyOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoc2l6 ZV90IG9mZnNldCwgW0NDb2RlIChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXplX3QiKV0gdWludDhb XSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lkIHVubWFwICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29t cGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0eXBlICgpIild CisrCXB1YmxpYyBjbGFzcyBDb250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENvbnRleHQgKCk7Cisr CQlwdWJsaWMgYm9vbCBpc19oYXJkd2FyZV9hY2NlbGVyYXRlZCAoKTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94 ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2ds X2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf ZnJhbWVfaW5mb19nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEZyYW1lSW5mbyA6IENv Z2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KysJCXByb3RlY3RlZCBGcmFtZUluZm8gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIp XQorKwkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBpbnQ2NCBnZXRfcHJlc2VudGF0aW9uX3RpbWUgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9yZWZy ZXNoX3JhdGUgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfaGFuZGxlX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0g ImNvZ2xfaGFuZGxlX3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgSGFuZGxl IHsKK0BAIC02NSw2NSArNzgsMjAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRlcmlhbCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJp YWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNz aW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9w b2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9t b2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENv Z2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRl eCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBn ZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMgdW5vd25l ZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dy YW0gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5I YW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJl bW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBh bHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNv bG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9i bGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMg Ym9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29n bC5Db2xvciBjb25zdGFudF9jb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1 ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9j b2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEp OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNv bG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlz c2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2xheWVyIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1cmUpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUg KGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7 CisrCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJp bmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4 LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCitAQCAtMTMxLDQzICs5OSwxNSBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVy X2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29n bC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xh eWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBt b2RlKTsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJs ZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2lu dF9zaXplKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNz IChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1h dGVyaWFsKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBNYXRl cmlhbExheWVyIHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2Zp bHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRl ciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21v ZGVfcCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBN b2RlIGdldF93cmFwX21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29n bC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2JqZWN0X2dl dF9ndHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKK0BAIC0xNzgs MTMgKzExOCw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNsYXNzIE9mZnNjcmVlbiA6 IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE9mZnNjcmVlbi50 b190ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgdW5yZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAoQ29nbC5U ZXh0dXJlIHRleHR1cmUpOworIAl9CitAQCAtMTk0LDE3ICsxMzAsMTYgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHJvdGVjdGVkIE9uc2NyZWVuICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTYiKV0KKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxs YmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRp cnR5Q2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ry b3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBDb2dsLkZyYW1l Q2xvc3VyZSBhZGRfZnJhbWVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9 IDEuNSldIENvZ2wuRnJhbWVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lD YWxsYmFjaz8gZGVzdHJveSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0NDb2Rl IChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxiYWNr IGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFjayAo Q29nbC5Td2FwQnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQg Y2x1dHRlcl9iYWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdodCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludCBnZXRfYnVmZmVy X2FnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgaW50NjQg Z2V0X2ZyYW1lX2NvdW50ZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgQ29nbC5Cb29sIGdldF9yZXNpemFibGUgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfcmVz aXphYmxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg aGlkZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCitAQCAtMjEzLDE4ICsxNDgs MTYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxi YWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3Jl ZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCByZW1vdmVfc3dhcF9idWZmZXJzX2NhbGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKENvZ2wuQm9v bCByZXNpemFibGUpOworKwkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFi bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2hvdyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1 ZmZlcnMgKCk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnMgKENvZ2wuRnJhbWVJbmZvIGZy YW1lX2luZm8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lk IHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3Rhbmds ZXMpOworKwkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzX3dpdGhfZGFtYWdlIChpbnQgcmVjdGFu Z2xlcywgaW50IG5fcmVjdGFuZ2xlcywgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9yZWdpb24gKGludCByZWN0 YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKysJCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChp bnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcywgQ29nbC5GcmFtZUluZm8gaW5mbyk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9kaXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlb Q29tcGFjdF0KK0BAIC0yNDQsNyArMTc3LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxp bmVfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0 IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBQaXBlbGluZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1Ymxp YyBQaXBlbGluZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KK0BAIC0yNTQsNDQgKzE4OCwzMCBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rl c3RfcmVmZXJlbmNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9y X21hc2sgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5Q aXBlbGluZUN1bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBk aWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVG aWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xh eWVyX21pbl9maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRz X2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfbGF5ZXJfcG9p bnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5 ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9w IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVi bGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXll cl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ29nbC5Q aXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJz ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBn ZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Blcl92ZXJ0 ZXhfcG9pbnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFy KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3VuaWZv cm1fbG9jYXRpb24gKHN0cmluZyB1bmlmb3JtX25hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAo KTsKK0BAIC0zMDAsMTEgKzIyMCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChD b2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVu dCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2Js ZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBi b29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29u c3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorQEAgLTMxMyw0NiArMjI5LDM1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1Ymxp YyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBm bG9hdCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4 IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9jb2xvcl9tYXNrIChDb2dsLkNvbG9yTWFzayBjb2xvcl9tYXNrKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5Q aXBlbGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNl KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlz c2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJv bnRfd2luZGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29n bC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9z dHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJp bmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJy b3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0 ZXIsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWFnX2ZpbHRlcik7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2lu ZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworKwkJcHVibGljIHZvaWQgc2V0X2xheWVyX21heF9t aXBtYXBfbGV2ZWwgKGludCBsYXllciwgaW50IG1heF9sZXZlbCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50 IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmVUeXBlIHRleHR1cmVfdHlwZSk7CisrCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfbnVsbF90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRf c3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUp IHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0 ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBib29sIGVuYWJsZSkgdGhyb3dzIEdM aWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2lu ZGV4LCBDb2dsLlRleHR1cmUgdGV4dHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENv Z2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBD b2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwg Q29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgs IENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoQ29nbC5C b29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfcGVyX3Zl cnRleF9wb2ludF9zaXplIChib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxv YXQgcG9pbnRfc2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1 bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91 bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1 bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM2MSw3ICsyNjYsNyBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfdW5pZm9ybV9pbnQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBp bnQgY291bnQsIGludCB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQg ZGltZW5zaW9ucywgaW50IGNvdW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7 CisrCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9u LCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50LCBib29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZXJf cHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CisgCX0KK0BAIC0zODgsNyArMjkzLDcgQEAg bmFtZXNwYWNlIENvZ2wgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKy0JcHVibGljIGNs YXNzIFF1YXRlcm5pb24geworKwlwdWJsaWMgY2xhc3MgU2Nhbm91dCB7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIs IHJlZl9mdW5jdGlvbiA9ICJjb2dsX3NoYWRlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2ds X3NoYWRlcl91bnJlZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00MDEsNDggKzMwNiwyMyBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBpc19jb21waWxlZCAoKTsKKyAJCXB1YmxpYyB2 b2lkIHNvdXJjZSAoc3RyaW5nIHNvdXJjZSk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9 ICJjb2dsX3RleHR1cmVfcmVmIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgp IiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3VucmVmIildCistCVtDb21wYWN0XQor LQlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENvZ2wuSGFuZGxlIHsKKy0JCXB1YmxpYyBDb2dsLkJv b2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQz MiBlcnJvcl9xdWFyayAoKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChDb2dsLkJp dG1hcCBibXBfaGFuZGxlLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1h dCBpbnRlcm5hbF9mb3JtYXQpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1aW50IHdp ZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3Jt YXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWludCByb3dzdHJp ZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOworLQkJcHVi bGljIFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJy b3I7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1cmUgZnVs bF90ZXh0dXJlLCBpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9o ZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLlRl eHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgpOworLQkJcHVibGljIGludCBnZXRfZGF0 YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsK Ky0JCXB1YmxpYyBDb2dsLlBpeGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlwdWJsaWMgQ29n bC5Cb29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBv dXRfZ2xfdGFyZ2V0KTsKKy0JCXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMg aW50IGdldF9tYXhfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJ cHVibGljIENvZ2wuQm9vbCBnZXRfcHJlbXVsdGlwbGllZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdl dF9yb3dzdHJpZGUgKCk7CistCQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMg Q29nbC5Cb29sIGlzX3NsaWNlZCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3Rh dGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJv bV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQs IGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENv Z2wuVGV4dHVyZSBuZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJn ZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90 X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQg c3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRo LCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQg aW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJs aWMgdm9pZCBzZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRz KTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0 LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9y OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVt dWx0aXBsaWVkIChDb2dsLkJvb2wgcHJlbXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29s IHNldF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwg dWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBD b2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9u X2Zyb21fYml0bWFwIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ks IHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7Cist CQlwdWJsaWMgVGV4dHVyZS53aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOwor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBsb3dlcl9jYXNlX2Nz dWZmaXggPSAidGV4dHVyZV8yZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJkX2dldF9ndHlw ZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVGV4dHVyZTJEIDogQ29nbC5PYmplY3QsIENvZ2wuVGV4 dHVyZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlw cm90ZWN0ZWQgVGV4dHVyZTJEICgpOworKwkJcHVibGljIHZvaWQgZWdsX2ltYWdlX2V4dGVybmFs X2FsbG9jX2ZpbmlzaCAodm9pZCogdXNlcl9kYXRhLCBHTGliLkRlc3Ryb3lOb3RpZnkgZGVzdHJv eSk7CisrCQlwdWJsaWMgdm9pZCBlZ2xfaW1hZ2VfZXh0ZXJuYWxfYmluZCAoKTsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKysJCXB1YmxpYyBUZXh0dXJlMkQuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJp dG1hcCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg bG93ZXJfY2FzZV9jc3VmZml4ID0gInRleHR1cmVfMmRfc2xpY2VkIiwgdHlwZV9pZCA9ICJjb2ds X3RleHR1cmVfMmRfc2xpY2VkX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVGV4dHVy ZTJEU2xpY2VkIDogQ29nbC5PYmplY3QsIENvZ2wuVGV4dHVyZSB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgVGV4dHVyZTJEU2xpY2Vk ICgpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKysJCXB1YmxpYyBUZXh0dXJlMkRTbGljZWQuZnJvbV9i aXRtYXAgKENvZ2wuQml0bWFwIGJtcCwgaW50IG1heF93YXN0ZSk7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJl Zl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZmZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAi Y29nbF92ZXJ0ZXhfYnVmZmVyX3VucmVmIildCisgCVtDb21wYWN0XQorQEAgLTQ2OCw3ICszNDgs NyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZWJ1ZmZlcl9nZXRfZ3R5cGUgKCkiKV0KKyAJ cHVibGljIGludGVyZmFjZSBGcmFtZWJ1ZmZlciA6IENvZ2wuT2JqZWN0IHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dz IEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJv cjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGNsZWFyICh1 bG9uZyBidWZmZXJzLCBDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KK0BAIC00ODgsNiArMzY4LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHN0 YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgZmluaXNoICgpOworKwkJcHVibGljIHZvaWQgZmx1c2ggKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxv YXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25l YXIsIGZsb2F0IHpfZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC00OTUs MjIgKzM3NiwxOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0X2NvbnRleHQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVy ZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCist CQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfd3Jp dGVfZW5hYmxlZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf ZGl0aGVyX2VuYWJsZWQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZGl0aGVyX2VuYWJsZWQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9ncmVlbl9i aXRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRf aGVpZ2h0ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaXNfc3RlcmVvICgpOworKwkJcHVi bGljIGJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU0NywxMiArNDI0LDEzIEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCXB1YmxpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhf MSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CisrCQlwdWJsaWMgdm9pZCBwdXNo X3JlZ2lvbl9jbGlwIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGludCB5 LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludDggcGl4ZWxzKTsKKysJ CXB1YmxpYyBib29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl aWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVsc19pbnRv X2JpdG1hcCAoaW50IHgsIGludCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wu Qml0bWFwIGJpdG1hcCk7CisrCQlwdWJsaWMgYm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAo aW50IHgsIGludCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJp dG1hcCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCByZXNv bHZlX3NhbXBsZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTYwLDE5 ICs0MzgsMTMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg cm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24g cXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVy IGV1bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBz Y2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29s b3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoQ29nbC5Cb29sIGVuYWJsZWQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFi bGVkIChDb2dsLkJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRf ZGVwdGhfd3JpdGVfZW5hYmxlZCAoYm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAo Q29nbC5Cb29sIGRpdGhlcl9lbmFibGVkKTsKKysJCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5h YmxlZCAoYm9vbCBkaXRoZXJfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJp eCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU4OCw2ICs0NjAsMzkgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3Rl eHR1cmVfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBpbnRlcmZhY2UgVGV4dHVyZSA6IENvZ2wu T2JqZWN0IHsKKysJCXB1YmxpYyBib29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOwor KwkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorKwkJcHVibGljIENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBv bmVudHMgKCk7CisrCQlwdWJsaWMgaW50IGdldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1h dCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtd PyBkYXRhKTsKKysJCXB1YmxpYyBib29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xf aGFuZGxlLCBvdXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKysJCXB1YmxpYyB1aW50IGdldF9oZWln aHQgKCk7CisrCQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorKwkJcHVibGljIGJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CisrCQlw dWJsaWMgdWludCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgYm9vbCBpc19zbGljZWQgKCk7Cisr CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIs IHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21f Yml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2ds LlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVi bGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVp Z2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENv Z2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisr CQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5h bWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIENv Z2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGlu dCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisrCQlwdWJs aWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhl aWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgdm9pZCBz ZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKysJCXB1 YmxpYyBib29sIHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0cmlk ZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgaW50IGxldmVs KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlw dWJsaWMgdm9pZCBzZXRfcHJlbXVsdGlwbGllZCAoYm9vbCBwcmVtdWx0aXBsaWVkKTsKKysJCXB1 YmxpYyBib29sIHNldF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGlu dCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorKwkJcHVibGljIGJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1hcCAoaW50IHNy Y194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWlu dCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbU2ltcGxlVHlwZV0KKyAJcHVibGljIHN0 cnVjdCBBbmdsZSA6IGludDMyIHsKK0BAIC02MzUsMTAgKzU0MCw2IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfZmxvYXQgKGZsb2F0 IGJsdWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNGYgKGZs b2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBn cmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCitAQCAtNjYyLDcgKzU2Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworIAkJcHVibGljIHVsb25nIGluc3RhbmNlX2Nv dW50OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5 cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisg CXB1YmxpYyBzdHJ1Y3QgTWF0cml4IHsKKyAJCXB1YmxpYyBmbG9hdCB4eDsKKyAJCXB1YmxpYyBm bG9hdCB5eDsKK0BAIC02ODksMzIgKzU5MCwyNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJs aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBm bG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGljIHVub3duZWQg ZmxvYXRbXSBnZXRfYXJyYXkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgQ29nbC5Cb29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7Cisr CQlwdWJsaWMgYm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJ W0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9pbml0X2lkZW50aXR5IildCisgCQlwdWJsaWMg TWF0cml4LmlkZW50aXR5ICgpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2ds LkV1bGVyIGV1bGVyKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2ds LlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIg KEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQg dHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBp c19pZGVudGl0eSAoKTsKKysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bv c2l0aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxv YXQgb2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRf dXBfeCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CisgCQlbQ0NvZGUgKGNu YW1lID0gImNvZ2xfbWF0cml4X211bHRpcGx5IildCisgCQlwdWJsaWMgTWF0cml4Lm11bHRpcGx5 IChDb2dsLk1hdHJpeCBhLCBDb2dsLk1hdHJpeCBiKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRo byAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9h dCBuZWFyLCBmbG9hdCBmYXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwg ZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJcHVibGljIHZvaWQgcGVyc3Bl Y3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9m YXIpOworIAkJcHVibGljIHZvaWQgcHJvamVjdF9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNp emVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQq IHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0 IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVh dGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90 YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAo ZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1f cG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3 KTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBDb2dsLk1hdHJp eCBtYXRyaXgsIHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9h dCB3KTsKKyAJCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMs IHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZv aWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUg KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KK0BAIC04MDEsMTYgKzY5Nyw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVdJTkRPV19CVUZG RVIsCisgCQlPRkZTQ1JFRU5fQlVGRkVSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0NPTE9SX01BU0tfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQ29sb3JNYXNrIHsKKy0JCU5P TkUsCistCQlSRUQsCistCQlHUkVFTiwKKy0JCUJMVUUsCistCQlBTFBIQSwKKy0JCUFMTAorLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9ERVBUSF9URVNUX0ZVTkNUSU9OXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJs aWMgZW51bSBEZXB0aFRlc3RGdW5jdGlvbiB7CisgCQlORVZFUiwKK0BAIC04MjIsNDYgKzcwOCw0 MSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlHRVFVQUwsCisgCQlBTFdBWVMKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVB VFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0VHTF9JTUFHRV9GTEFHXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorIAlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K Ky0JcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfUkVDVEFOR0xFLAorLQkJ VEVYVFVSRV9OUE9ULAorLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAor LQkJU0hBREVSU19HTFNMLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExF LAorLQkJT0ZGU0NSRUVOX0JMSVQsCistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9C VUZGRVIsCistCQlWQk9TLAorLQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJ REVQVEhfUkFOR0UsCistCQlURVhUVVJFX05QT1RfQkFTSUMsCistCQlURVhUVVJFX05QT1RfTUlQ TUFQLAorLQkJVEVYVFVSRV9OUE9UX1JFUEVBVCwKKy0JCVBPSU5UX1NQUklURSwKKy0JCVRFWFRV UkVfM0QsCistCQlNQVBfQlVGRkVSX0ZPUl9SRUFELAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJVEUs CistCQlPTlNDUkVFTl9NVUxUSVBMRSwKKy0JCURFUFRIX1RFWFRVUkUKKysJcHVibGljIGVudW0g RWdsSW1hZ2VGbGFncyB7CisrCQlOT05FLAorKwkJTk9fR0VUX0RBVEEKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVS RV9JRF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKysJcHVibGljIGVudW0gRmVhdHVyZUlEIHsKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9G RUFUVVJFX0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTIildCisrCQlPR0xfRkVBVFVSRV9JRF9VTlNJ R05FRF9JTlRfSU5ESUNFUywKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01B UF9CVUZGRVJfRk9SX1JFQUQiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JF QUQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9X UklURSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUsCisrCQlbQ0Nv ZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQiKV0KKysJCU9H TF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVOVCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09H TF9GRUFUVVJFX0lEX1BSRVNFTlRBVElPTl9USU1FIildCisrCQlPR0xfRkVBVFVSRV9JRF9QUkVT RU5UQVRJT05fVElNRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0ZFTkNF IildCisrCQlPR0xfRkVBVFVSRV9JRF9GRU5DRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9G RUFUVVJFX0lEX1RFWFRVUkVfUkciKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkcsCisr CQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdFIildCisrCQlPR0xf RkVBVFVSRV9JRF9CVUZGRVJfQUdFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVf SURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJOQUwiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRV UkVfRUdMX0lNQUdFX0VYVEVSTkFMLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVf SURfQkxJVF9GUkFNRUJVRkZFUiIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQkxJVF9GUkFNRUJVRkZF UgorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVt IEZpbHRlclJldHVybiB7CisgCQlDT05USU5VRSwKKyAJCVJFTU9WRQorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9E RV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJ RVhQT05FTlRJQUxfU1FVQVJFRAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGVudW0gRnJh bWVFdmVudCB7CitAQCAtODc0LDYgKzc1NSwxNCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlGUkFN RUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgp OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9HUkFQSElDU19SRVNFVF9TVEFUVVNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisrCXB1YmxpYyBlbnVtIEdyYXBoaWNzUmVzZXRTdGF0dXMgeworKwkJTk9fRVJST1IsCisrCQlH VUlMVFlfQ09OVEVYVF9SRVNFVCwKKysJCUlOTk9DRU5UX0NPTlRFWFRfUkVTRVQsCisrCQlVTktO T1dOX0NPTlRFWFRfUkVTRVQsCisrCQlQVVJHRURfQ09OVEVYVF9SRVNFVAorKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJ Q0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVt IEluZGljZXNUeXBlIHsKKyAJCUJZVEUsCitAQCAtOTAwLDEyICs3ODksNiBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCisgCQlMSU5FQVJfTUlQTUFQX0xJTkVB UgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJU eXBlIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRV UkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9X UkFQX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJcHVibGljIGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7CitAQCAtOTcwLDYgKzg1Mywx MCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlCR1JBXzEwMTAxMDIsCisgCQlBUkdCXzIxMDEwMTAs CisgCQlBQkdSXzIxMDEwMTAsCisrCQlSR0JBX0ZQXzE2MTYxNjE2LAorKwkJQkdSQV9GUF8xNjE2 MTYxNiwKKysJCUFSR0JfRlBfMTYxNjE2MTYsCisrCQlBQkdSX0ZQXzE2MTYxNjE2LAorIAkJUkdC QV84ODg4X1BSRSwKKyAJCUJHUkFfODg4OF9QUkUsCisgCQlBUkdCXzg4ODhfUFJFLAorQEAgLTk4 MCw5ICs4NjcsMTYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJQkdSQV8xMDEwMTAyX1BSRSwKKyAJ CUFSR0JfMjEwMTAxMF9QUkUsCisgCQlBQkdSXzIxMDEwMTBfUFJFLAorKwkJUkdCQV9GUF8xNjE2 MTYxNl9QUkUsCisrCQlCR1JBX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFSR0JfRlBfMTYxNjE2MTZf UFJFLAorKwkJQUJHUl9GUF8xNjE2MTYxNl9QUkUsCisgCQlERVBUSF8xNiwKKyAJCURFUFRIXzMy LAorLQkJREVQVEhfMjRfU1RFTkNJTF84CisrCQlERVBUSF8yNF9TVEVOQ0lMXzg7CisrCQlwdWJs aWMgaW50IGdldF9ieXRlc19wZXJfcGl4ZWwgKGludCBwbGFuZSk7CisrCQlwdWJsaWMgaW50IGdl dF9uX3BsYW5lcyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbRmxh Z3NdCitAQCAtMTA0MSwxMyArOTM1LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTk9fU0xJQ0lO RywKKyAJCU5PX0FUTEFTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIGVudW0gVGV4dHVy ZVR5cGUgeworLQkJQDJELAorLQkJQDNELAorLQkJUkVDVEFOR0xFCistCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1ZFUlRJQ0VT X01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJcHVibGljIGVudW0gVmVydGljZXNNb2RlIHsKK0BAIC0xMDY3LDcgKzk1NCw2IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX1dJTlNZU19GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlwdWJsaWMgZW51bSBXaW5zeXNGZWF0dXJlIHsKKyAJCU1VTFRJUExFX09OU0NSRUVOLAor LQkJU1dBUF9USFJPVFRMRSwKKyAJCVZCTEFOS19DT1VOVEVSLAorIAkJVkJMQU5LX1dBSVQsCisg CQlURVhUVVJFX0ZST01fUElYTUFQLAorQEAgLTEwODIsOSArOTY4LDEyIEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFu Y2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmpl Y3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRl bGVnYXRlIENvZ2wuQm9vbCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0 ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIw LjEwIildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZlYXR1cmVDYWxsYmFjayAoQ29nbC5GZWF0 dXJlSUQgZmVhdHVyZSk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGluc3RhbmNlX3BvcyA9IDMuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisr CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZyYW1lQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3Jl ZW4sIENvZ2wuRnJhbWVFdmVudCBldmVudCwgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSld CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9u c2NyZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVl bkRpcnR5SW5mbyBpbmZvKTsKK0BAIC0xMDkyLDEyICs5ODEsMTAgQEAgbmFtZXNwYWNlIENvZ2wg eworIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9u c2NyZWVuUmVzaXplQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwg aW50IGhlaWdodCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDEx TWFza0NhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3Bv cyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRl IENvZ2wuQm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUs IGludCBsYXllcl9pbmRleCk7CisrCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFBpcGVsaW5lTGF5ZXJD YWxsYmFjayAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgaW50IGxheWVyX2luZGV4KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45 KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgU3dhcEJ1ZmZlcnNOb3RpZnkgKENvZ2wuRnJhbWVi dWZmZXIgZnJhbWVidWZmZXIpOworKwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBUZXh0dXJlMkRFR0xJ bWFnZUV4dGVybmFsQWxsb2MgKENvZ2wuVGV4dHVyZTJEIHRleF8yZCkgdGhyb3dzIEdMaWIuRXJy b3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJn ZXQgPSBmYWxzZSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxi YWNrICh2b2lkKiBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY25hbWUgPSAiQ09HTF9BRklSU1RfQklUIildCitAQCAtMTEwOCw2ICs5OTUsOCBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9ERVBUSF9CSVQi KV0KKyAJcHVibGljIGNvbnN0IGludCBERVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUElYRUxfRk9STUFUX01BWF9QTEFO RVMiKV0KKysJcHVibGljIGNvbnN0IGludCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5FUzsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVN VUxUX0JJVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklU IildCitAQCAtMTExNSwyMSArMTAwNCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfVEVYVFVSRV9N QVhfV0FTVEUiKV0KKyAJcHVibGljIGNvbnN0IGludCBURVhUVVJFX01BWF9XQVNURTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2hl Y2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xl YXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1 dHRlcl9jaGVja19leHRlbnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOwor KwlwdWJsaWMgc3RhdGljIGJvb2wgYmxpdF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBz cmMsIENvZ2wuRnJhbWVidWZmZXIgZGVzdCwgaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3Rf eCwgaW50IGRzdF95LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHRocm93cyBHTGliLkVycm9yOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5X aW5zeXNGZWF0dXJlIGZlYXR1cmUpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5z eXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjb2xvcl9lcXVhbCAodm9p ZCogdjEsIHZvaWQqIHYyKTsKKysJcHVibGljIHN0YXRpYyBib29sIGNvbG9yX2VxdWFsICh2b2lk KiB2MSwgdm9pZCogdjIpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lk IGNvbG9yX2luaXRfZnJvbV9oc2wgKG91dCBDb2dsLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZs b2F0IHNhdHVyYXRpb24sIGZsb2F0IGx1bWluYW5jZSk7CitAQCAtMTE0MywyMzQgKzEwMjMsODcg QEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1Ymxp YyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGRpc2FibGVfZm9nICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxh Z3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1 c2ggKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0 LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxv YXQgel9mYXIpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGlj IHZvaWQgZm9yZWFjaF9mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJl Q2FsbGJhY2sgY2FsbGJhY2spOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxp bmdfZW5hYmxlZCAoKTsKKysJcHVibGljIHN0YXRpYyBib29sIGdldF9iYWNrZmFjZV9jdWxsaW5n X2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQg aW50IGdyZWVuLCBvdXQgaW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOworKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgc3RhdGljIGludDY0IGdldF9jbG9ja190aW1lIChDb2ds LkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFi bGVkICgpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZm ZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu RmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21v ZGVsdmlld19tYXRyaXggKCk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3Rh dHVzIGdldF9ncmFwaGljc19yZXNldF9zdGF0dXMgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGlj IHN0YXRpYyBHTGliLkNhbGxiYWNrIGdldF9wcm9jX2FkZHJlc3MgKHN0cmluZyBzKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkKiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAo W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBzdGF0aWMg R0xpYi5UeXBlIGd0eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOwor KwlwdWJsaWMgc3RhdGljIGJvb2wgaGFzX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBD b2dsLkZlYXR1cmVJRCBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5Cb29sIGlzX29uc2NyZWVuICh2b2lkKiBvYmplY3QpOworKwlwdWJsaWMgc3RhdGlj IGJvb2wgaXNfY29udGV4dCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZV9pbmZvICh2b2lk KiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBt YXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0 IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAo ZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVy ZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHBvcF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9t dWx0aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5 MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50 IHRleF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHJlY3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0 IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHky KTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlz X2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcmVjdGFuZ2xlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZs b2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjguNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1 cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywg dWludCBuX3JlY3RzKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorKwlwdWJsaWMgc3Rh dGljIGJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRl IChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCXB1YmxpYyBzdGF0 aWMgYm9vbCBpc190ZXh0dXJlXzJkICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxl IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX3RleHR1cmVfMmRfc2xpY2VkICh2b2lkKiBvYmpl Y3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKENvZ2wuQm9v bCBzZXR0aW5nKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMgc3RhdGlj IGJvb2wgbWF0cml4X2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9kZXB0aF90ZXN0X2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKysJcHVibGljIHN0YXRp YyB2b2lkIHNldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2Rl LCBmbG9hdCBkZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJcHVibGljIHN0 YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CisrCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfdHJhY2luZ19kaXNhYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlICh2b2lkKiBtYXRlcmlh bCk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZCAo dm9pZCogZGF0YSwgc3RyaW5nIGdyb3VwLCBzdHJpbmcgZmlsZW5hbWUpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBm bG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVp bnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf c291cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWln aHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK KysJcHVibGljIHN0YXRpYyB2b2lkIHNldF90cmFjaW5nX2VuYWJsZWRfb25fdGhyZWFkX3dpdGhf ZmQgKHZvaWQqIGRhdGEsIHN0cmluZyBncm91cCwgaW50IGZkKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFk ZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5Cb29sIHNoYWRlcl9pc19jb21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDb2dsLkhhbmRsZSBzaGFkZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0 YXRpYyB2b2lkIHNoYWRlcl9zb3VyY2UgKENvZ2wuSGFuZGxlIHNoYWRlciwgc3RyaW5nIHNvdXJj ZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAi KV0KKyAJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9iaXRtYXAg KENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRl eHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3Jt YXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKysJcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGlu dCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1h dCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5h bWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3Rh cmdldCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9w b3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0 aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBo ZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFs X2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1h dHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhh bmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0 cmlidXRlVHlwZSB0eXBlLCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9p ZCogcG9pbnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFu ZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhf YnVmZmVyX2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1l KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwg Q29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHZlcnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2ds LlZlcnRpY2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBp bnQgbWF4X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmVydGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJp YnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChD b2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9i dWZmZXJfaW5kaWNlc19nZXRfZm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuSW5kaWNlc1R5cGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRs ZSBpbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX25l dyAodWludCBuX3ZlcnRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9i dWZmZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZm ZXJfc3VibWl0IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZl cl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmlld3BvcnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9v bnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRv d194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wu T25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0g Q29nbC5PbnNjcmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUpOworIH0KK2RpZmYgLS1naXQgdmFw aS9wb2xraXQtZ29iamVjdC0xLnZhcGkgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKK2luZGV4 IDkzZWZmOGE1Li5mZWRjNmE0YSAxMDA2NDQKKy0tLSB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFw aQorKysrIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpCitAQCAtNyw3ICs3LDcgQEAgbmFtZXNw YWNlIFBvbGtpdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlwcm90ZWN0ZWQgQWN0aW9uRGVzY3JpcHRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2FjdGlvbl9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYW5u b3RhdGlvbiAoc3RyaW5nIGtleSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGdldF9hbm5v dGF0aW9uIChzdHJpbmcga2V5KTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFy cmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nW10g Z2V0X2Fubm90YXRpb25fa2V5cyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVz Y3JpcHRpb24gKCk7CitAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXB1 YmxpYyBQb2xraXQuQXV0aG9yaXR5RmVhdHVyZXMgZ2V0X2JhY2tlbmRfZmVhdHVyZXMgKCk7Cisg CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2JhY2tlbmRfbmFtZSAoKTsKKyAJCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfYmFja2VuZF92ZXJzaW9uICgpOworLQkJcHVibGljIHN0cmluZyBn ZXRfb3duZXIgKCk7CisrCQlwdWJsaWMgc3RyaW5nPyBnZXRfb3duZXIgKCk7CisgCQlwdWJsaWMg c3RhdGljIFBvbGtpdC5BdXRob3JpdHkgZ2V0X3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNl bGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgYXN5bmMgYm9vbCBy ZWdpc3Rlcl9hdXRoZW50aWNhdGlvbl9hZ2VudCAoUG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3Ry aW5nIGxvY2FsZSwgc3RyaW5nIG9iamVjdF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxs YWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgYm9vbCByZWdpc3Rlcl9hdXRoZW50 aWNhdGlvbl9hZ2VudF9zeW5jIChQb2xraXQuU3ViamVjdCBzdWJqZWN0LCBzdHJpbmcgbG9jYWxl LCBzdHJpbmcgb2JqZWN0X3BhdGgsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVs bCkgdGhyb3dzIEdMaWIuRXJyb3I7CitAQCAtNTYsMjEgKzU2LDIyIEBAIG5hbWVzcGFjZSBQb2xr aXQgeworIAlwdWJsaWMgY2xhc3MgQXV0aG9yaXphdGlvblJlc3VsdCA6IEdMaWIuT2JqZWN0IHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBB dXRob3JpemF0aW9uUmVzdWx0IChib29sIGlzX2F1dGhvcml6ZWQsIGJvb2wgaXNfY2hhbGxlbmdl LCBQb2xraXQuRGV0YWlscz8gZGV0YWlscyk7CistCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0 YWlscyBnZXRfZGV0YWlscyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIFBvbGtpdC5EZXRhaWxzPyBn ZXRfZGV0YWlscyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwMSIpXQorIAkJcHVibGlj IGJvb2wgZ2V0X2Rpc21pc3NlZCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pc19hdXRob3JpemVk ICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2lzX2NoYWxsZW5nZSAoKTsKKyAJCXB1YmxpYyBib29s IGdldF9yZXRhaW5zX2F1dGhvcml6YXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3RlbXBvcmFyeV9hdXRob3JpemF0aW9uX2lkICgpOworKwkJcHVibGljIHVub3duZWQgc3Ry aW5nPyBnZXRfdGVtcG9yYXJ5X2F1dGhvcml6YXRpb25faWQgKCk7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X2Rl dGFpbHNfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERldGFpbHMgOiBHTGliLk9iamVj dCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJs aWMgRGV0YWlscyAoKTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251 bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHN0cmluZ1tdIGdldF9rZXlzICgpOwor KwkJcHVibGljIHN0cmluZ1tdPyBnZXRfa2V5cyAoKTsKKyAJCXB1YmxpYyB2b2lkIGluc2VydCAo c3RyaW5nIGtleSwgc3RyaW5nPyB2YWx1ZSk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgbG9v a3VwIChzdHJpbmcga2V5KTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gbG9va3VwIChzdHJp bmcga2V5KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtp dC5oIiwgdHlwZV9pZCA9ICJwb2xraXRfcGVybWlzc2lvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgY2xhc3MgUGVybWlzc2lvbiA6IEdMaWIuUGVybWlzc2lvbiwgR0xpYi5Bc3luY0luaXRhYmxl LCBHTGliLkluaXRhYmxlIHsKK0BAIC04OCw3ICs4OSw4IEBAIG5hbWVzcGFjZSBQb2xraXQgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVk IFN5c3RlbUJ1c05hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7 CistCQlwdWJsaWMgUG9sa2l0LlN1YmplY3QgZ2V0X3Byb2Nlc3Nfc3luYyAoR0xpYi5DYW5jZWxs YWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBQ b2xraXQuU3ViamVjdD8gZ2V0X3Byb2Nlc3Nfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2Vs bGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBQb2xraXQuVW5peFVz ZXI/IGdldF91c2VyX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkg dGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IEBuZXcg KHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7Cisg CQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KK0BAIC0xNDYsOSAr MTQ4LDEwIEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJcHJvdGVjdGVkIFVuaXhTZXNzaW9uICgp OworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zZXNzaW9uX2lkICgpOworIAkJcHVibGlj IHN0YXRpYyBQb2xraXQuU3ViamVjdCBAbmV3IChzdHJpbmcgc2Vzc2lvbl9pZCk7CistCQlwdWJs aWMgc3RhdGljIGFzeW5jIFBvbGtpdC5TdWJqZWN0IG5ld19mb3JfcHJvY2VzcyAoaW50IHBpZCwg R0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVi bGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBuZXdfZm9yX3Byb2Nlc3Nfc3luYyAoaW50IHBpZCwg R0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsK KysJCXB1YmxpYyBzdGF0aWMgYXN5bmMgUG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2VzcyAo aW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9y OworKwkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdD8gbmV3X2Zvcl9wcm9jZXNzX3N5bmMg KGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdM aWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2Vzc2lvbl9pZCAoc3RyaW5nIHNlc3Npb25f aWQpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgaW50IHBpZCB7IGNvbnN0cnVj dDsgfQorIAkJcHVibGljIHN0cmluZyBzZXNzaW9uX2lkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9 CisgCX0KK0BAIC0xNTYsMTcgKzE1OSwxNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVibGlj IGNsYXNzIFVuaXhVc2VyIDogR0xpYi5PYmplY3QsIFBvbGtpdC5JZGVudGl0eSB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgVW5peFVz ZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CisrCQlwdWJsaWMg dW5vd25lZCBzdHJpbmc/IGdldF9uYW1lICgpOworIAkJcHVibGljIGludCBnZXRfdWlkICgpOwor IAkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgQG5ldyAoaW50IHVpZCk7CistCQlwdWJs aWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBuZXdfZm9yX25hbWUgKHN0cmluZyBuYW1lKSB0aHJv d3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5PyBuZXdfZm9y X25hbWUgKHN0cmluZyBuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyB2b2lkIHNl dF91aWQgKGludCB1aWQpOworIAkJcHVibGljIGludCB1aWQgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7 IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwg dHlwZV9pZCA9ICJwb2xraXRfaWRlbnRpdHlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVy ZmFjZSBJZGVudGl0eSA6IEdMaWIuT2JqZWN0IHsKKyAJCXB1YmxpYyBhYnN0cmFjdCBib29sIGVx dWFsIChQb2xraXQuSWRlbnRpdHkgYik7CistCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0 eSBmcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMg c3RhdGljIFBvbGtpdC5JZGVudGl0eT8gZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBH TGliLkVycm9yOworIAkJcHVibGljIGFic3RyYWN0IHVpbnQgaGFzaCAoKTsKKyAJCXB1YmxpYyBh YnN0cmFjdCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CitAQCAtMjAxLDcgKzIwNCw3IEBAIG5h bWVzcGFjZSBQb2xraXQgeworIAkJQURNSU5JU1RSQVRPUl9BVVRIRU5USUNBVElPTl9SRVFVSVJF RF9SRVRBSU5FRCwKKyAJCUFVVEhPUklaRUQ7CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9z dHJpbmcgKHN0cmluZyBzdHJpbmcsIFBvbGtpdC5JbXBsaWNpdEF1dGhvcml6YXRpb24gb3V0X2lt cGxpY2l0X2F1dGhvcml6YXRpb24pOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0 b19zdHJpbmcgKFBvbGtpdC5JbXBsaWNpdEF1dGhvcml6YXRpb24gaW1wbGljaXRfYXV0aG9yaXph dGlvbik7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCBjcHJlZml4ID0gIlBP TEtJVF9FUlJPUl8iKV0KKyAJcHVibGljIGVycm9yZG9tYWluIEVycm9yIHsKK0BAIC0yMTIsNyAr MjE1LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsg cXVhcmsgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xr aXQuaCIpXQorLQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBpZGVudGl0eV9mcm9tX3N0 cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCXB1YmxpYyBzdGF0aWMgUG9s a2l0LklkZW50aXR5PyBpZGVudGl0eV9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdM aWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0Lmgi KV0KKyAJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBzdWJqZWN0X2Zyb21fc3RyaW5nIChz dHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CistLSAKKzIuMjguMAorCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtncy9idWRnaWUtZGVz a3RvcC90ZW1wbGF0ZQppbmRleCBiMzJlNzczNGQzYi4uYWU1YTlkNWY3NjkgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9idWRnaWUtZGVz a3RvcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2J1ZGdp ZS1kZXNrdG9wJwogcGtnbmFtZT1idWRnaWUtZGVza3RvcAogdmVyc2lvbj0xMC41LjEKLXJldmlz aW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Z2lyCiBj b25maWd1cmVfYXJncz0iLUR3aXRoLWd0ay1kb2M9ZmFsc2UgLUR3aXRoLWRlc2t0b3AtaWNvbnM9 bm9uZSIK --===============4647738884097529441==--