From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 19020 invoked from network); 3 Mar 2021 14:20:53 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Mar 2021 14:20:53 -0000 Content-Type: multipart/mixed; boundary="===============6458243047054234949==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_=5BWIP=5D_chromium=3A_update_to_89=2E0=2E4389=2E72?= To: ml@inbox.vuxu.org From: pullmoll Reply-to: ml@inbox.vuxu.org Message-ID: Date: Wed, 03 Mar 2021 15:20:49 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============6458243047054234949== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHB1bGxtb2xsIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxsbW9s bC92b2lkLXBhY2thZ2VzIGNocm9taXVtCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8yOTIwNQoKW1dJUF0gY2hyb21pdW06IHVwZGF0ZSB0byA4OS4wLjQz ODkuNzIKKyB4ODZfNjQgcGF0Y2ggc2V0IHVwZGF0ZWQsIGJ1aWx0LCB0ZXN0ZWQgdmVyeSBjdXJz b3J5IGFuZCBzZWVtcyB0byB3b3JrDQorIGk2ODYgcGF0Y2hlcyBhcHBseSB3L28gY2hhbmdlcywg bm90IHlldCBidWlsdCwgbm90IHlldCB0ZXN0ZWQNCisgeDg2XzY0LW11c2wgcGF0Y2hlcyBub3Qg eWV0IHdvcmtpbmcsIHN0aWxsIHRyeWluZyB0byBhZGp1c3QgdGhlbQ0KKyBwcGM2NGxlIHBhdGNo IHJlbW92ZWQgZm9yIG5vdyBhcyBub3RoaW5nIGFwcGxpZXMgKGFscmVhZHkgdXBzdHJlYW1lZD8p DQorIG9wdXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgZ2VuZXJhdGVkIHNoaW0gaGVhZGVyIG9wdXMu aCB0cmllcyB0byBpbmNsdWRlIDxvcHVzLmg+IGFuZCBmYWlscw0KKyBub3Qgc3VyZSBpZiBsaWJj X21hbGxvYy5wYXRjaCBpcyBvaywgaS5lLiBzaW1wbHkgdXNlIG1hbGxvYygpIGluc3RlYWQgb2Yg X19saWJjX21hbGxvYygpLg0KKyBtb3JlIHRvIGRvDQoNCltjaSBza2lwXQ0KCgpBIHBhdGNoIGZp bGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwv MjkyMDUucGF0Y2ggaXMgYXR0YWNoZWQ= --===============6458243047054234949== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-29205.patch" RnJvbSA5YjY0ZjEzNmM0OTU5Nzg4ZmFhNTc5YzMxZmRhZTQ0Mjg0YzQxNWFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1CQ3JnZW49MjBCdWNobT1DMz1CQ2xs ZXI/PSA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+CkRhdGU6IFdlZCwgMyBNYXIgMjAyMSAxNTowNjoz OCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy CgorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsIHRlc3RlZCB2ZXJ5IGN1cnNvcnkg YW5kIHNlZW1zIHRvIHdvcmsKKyBpNjg2IHBhdGNoZXMgYXBwbHkgdy9vIGNoYW5nZXMsIG5vdCB5 ZXQgYnVpbHQsIG5vdCB5ZXQgdGVzdGVkCisgeDg2XzY0LW11c2wgcGF0Y2hlcyBub3QgeWV0IHdv cmtpbmcsIHN0aWxsIHRyeWluZyB0byBhZGp1c3QgdGhlbQorIHBwYzY0bGUgcGF0Y2ggcmVtb3Zl ZCBmb3Igbm93IGFzIG5vdGhpbmcgYXBwbGllcyAoYWxyZWFkeSB1cHN0cmVhbWVkPykKKyBvcHVz IGRpc2FibGVkIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBzaGltIGhlYWRlciBvcHVzLmggdHJpZXMg dG8gaW5jbHVkZSA8b3B1cy5oPiBhbmQgZmFpbHMKKyBub3Qgc3VyZSBpZiBsaWJjX21hbGxvYy5w YXRjaCBpcyBvaywgaS5lLiBzaW1wbHkgdXNlIG1hbGxvYygpIGluc3RlYWQgb2YgX19saWJjX21h bGxvYygpLgorIG1vcmUgdG8gZG8KCltjaSBza2lwXQotLS0KIC4uLi9kZWZhdWx0LXB0aHJlYWQt c3RhY2tzaXplLnBhdGNoICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1maXhlcy5wYXRjaCAgICAgICB8ICAgNDAgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1oYWNrcy5wYXRjaCAgICAgICB8ICAgIDQgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1saWJjKysucGF0Y2ggICAgICB8ICAgIDYgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1zYW5kYm94LnBhdGNoICAgICB8ICAgMTAgKy0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9icm93c2VyLXNpemVfdC5wYXRjaCB8ICAgMTAgLQogLi4uL2Nocm9taXVtLTg4LUFYVHJl ZUZvcm1hdHRlci1pbmNsdWRlLnBhdGNoIHwgICAyNyAtCiAuLi5pdW0tODgtQm9va21hcmtNb2Rl bE9ic2VydmVyLWluY2x1ZGUucGF0Y2ggfCAgIDIxIC0KIC4uLnVtLTg4LUNvbXBvc2l0b3JGcmFt ZVJlcG9ydGVyLWRjaGVjay5wYXRjaCB8ICAgMzYgLQogLi4uL2Nocm9taXVtLTg4LVN0cmluZ1Bv b2wtaW5jbHVkZS5wYXRjaCAgICAgIHwgICAyMCAtCiAuLi5yb21pdW0tODgtZmVkZXJhdGVkX2xl YXJuaW5nLWluY2x1ZGUucGF0Y2ggfCAgIDIxIC0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTg4LWds aWJjLTIuMzMucGF0Y2ggICAgICB8ICAxNDQgLQogLi4uaHJvbWl1bS04OC1pZGVvZ3JhcGhpY1Nw YWNlQ2hhcmFjdGVyLnBhdGNoIHwgICAyNyAtCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlw LWluY2x1ZGUucGF0Y2ggICAgfCAgIDI1IC0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTg4LXZhYXBp LWF0dHJpYnV0ZS5wYXRjaCB8ICAgMzkgLQogLi4udW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0 ZXItZGNoZWNrLnBhdGNoIHwgICAxMSArCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGliY19t YWxsb2MucGF0Y2ggICAgfCAgIDIzICstCiAuLi5yZW1vdmUtdW5zdXBwb3J0ZWQtY29tcGlsZXIt d2FybmluZ3MucGF0Y2ggfCAgIDI2IC0KIC4uLi12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3Rp bWVkd2FpdC5wYXRjaCB8ICAgMjQgLQogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNp bmZvLnBhdGNoICAgIHwgICA3MiAtCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0Y29u dGV4dC5wYXRjaCAgfCAgIDI3IC0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1zdGQtdGlt ZS5wYXRjaCAgICB8ICAgMTEgKwogLi4uL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJveC1tZW1iYXJy aWVyLnBhdGNoIHwgICA2MCAtCiAuLi4vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNo ICAgICAgICAgfCAzNjU2IC0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiAyNSBmaWxlcyBjaGFuZ2VkLCA1MSBp bnNlcnRpb25zKCspLCA0MzAxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9icm93c2VyLXNpemVfdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1BWFRyZWVGb3JtYXR0ZXIt aW5jbHVkZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9jaHJvbWl1bS04OC1Cb29rbWFya01vZGVsT2JzZXJ2ZXItaW5jbHVkZS5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Db21wb3Np dG9yRnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtU3RyaW5nUG9vbC1pbmNsdWRlLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWZl ZGVyYXRlZF9sZWFybmluZy1pbmNsdWRlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWdsaWJjLTIuMzMucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaWRlb2dyYXBo aWNTcGFjZUNoYXJhY3Rlci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtdmFhcGktYXR0cmlidXRl LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9t aXVtLTg5LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9sbHZtLXJlbW92ZS11bnN1cHBvcnRlZC1j b21waWxlci13YXJuaW5ncy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNpbmZv LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWdl dGNvbnRleHQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMvbm8tc3RkLXRpbWUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9kZWZhdWx0LXB0aHJlYWQt c3RhY2tzaXplLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvZGVm YXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaAppbmRleCAxNmU0ZDIxZTZlZC4uOGJmOWEzZGZi MzQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL2RlZmF1 bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9t dXNsLXBhdGNoZXMvZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApAQCAtMSwxMiArMSwx MiBAQAogLS0tIGJhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYy5vcmlnCiAr KysgYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCi1AQCAtOTkgKzk5LDIg QEAgc2l6ZV90IEdldERlZmF1bHRUaHJlYWRTdGFja1NpemUoY29uc3QgcAorQEAgLTQ0MCArNDQw LDIgQEAgc2l6ZV90IEdldERlZmF1bHRUaHJlYWRTdGFja1NpemUoY29uc3QgcAogLSAgcmV0dXJu IDA7CiArICAvLyB1c2UgOG1iIGxpa2UgZ2xpYmMgdG8gYXZvaWQgcnVubmluZyBvdXQgb2Ygc3Bh Y2UKICsgIHJldHVybiAoMSA8PCAyMyk7CiAtLS0gY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxf aGFuZGxlcnNfcG9zaXguY2Mub3JpZwogKysrIGNocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hh bmRsZXJzX3Bvc2l4LmNjCi1AQCAtMTg0LDExICsxODQsMTkgQEAKK0BAIC0xODcsMTEgKzE4Nywx OSBAQAogICAgZ19zaHV0ZG93bl9waXBlX3JlYWRfZmQgPSBwaXBlZmRbMF07CiAgICBnX3NodXRk b3duX3BpcGVfd3JpdGVfZmQgPSBwaXBlZmRbMV07CiAgI2lmICFkZWZpbmVkKEFERFJFU1NfU0FO SVRJWkVSKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMv bXVzbC1maXhlcy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211 c2wtZml4ZXMucGF0Y2gKaW5kZXggYTc4MzJmZjMyZTguLjFmMTJmZjhiMDhkIDEwMDY0NAotLS0g YS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWZpeGVzLnBhdGNoCisr KyBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtZml4ZXMucGF0Y2gK QEAgLTEsNiArMSw2IEBACiAtLS0gLi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBw b3J0Lmgub3JpZwogKysrIC4vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5o Ci1AQCAtMTEyNyw2ICsxMTI3LDEyIEBACitAQCAtMTI1OCw2ICsxMjU4LDEyIEBACiAgI2lmbmRl ZiBfX05SX2ZhbGxvY2F0ZQogICNkZWZpbmUgX19OUl9mYWxsb2NhdGUgICAgICAgICAgMjg1CiAg I2VuZGlmCkBAIC0xNSw3ICsxNSw3IEBACiAgI2lmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJ MzIKIC0tLSAuL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv ZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oLm9yaWcKICsrKyAuL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9u L3Vjb250ZXh0X3JlYWRlci5oCi1AQCAtMzcsNiArMzcsMTAgQEAKK0BAIC0zOCw2ICszOCwxMCBA QAogICNpbmNsdWRlICJjb21tb24vbWVtb3J5LmgiCiAgI2luY2x1ZGUgImdvb2dsZV9icmVha3Bh ZC9jb21tb24vbWluaWR1bXBfZm9ybWF0LmgiCiAgCkBAIC0yOCw3ICsyOCw3IEBACiAgLy8gV3Jh cHMgcGxhdGZvcm0tZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucyBvZiBhY2Nlc3NvcnMgdG8gdWNv bnRleHRfdCBzdHJ1Y3RzLgogLS0tIC4vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgub3JpZwogKysrIC4vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKLUBAIC0zNiw2 ICszNiw3IEBACitAQCAtMzcsNiArMzcsNyBAQAogICNpbmNsdWRlIDxlbGYuaD4KICAjaW5jbHVk ZSA8bGluay5oPgogICNpbmNsdWRlIDxzdGRkZWYuaD4KQEAgLTM4LDcgKzM4LDcgQEAKICAKIC0t LSAuL3NhbmRib3gvbGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaC5vcmlnCiArKysgLi9zYW5kYm94 L2xpbnV4L3N1aWQvcHJvY2Vzc191dGlsLmgKLUBAIC0xMSw2ICsxMSwxNCBAQAorQEAgLTEyLDYg KzEyLDE0IEBACiAgI2luY2x1ZGUgPHN0ZGJvb2wuaD4KICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CiAgCkBAIC02Niw3ICs2Niw3IEBACiAgI2lmIGRlZmluZWQoX19taXBzX18pCiAtLS0gLi90aGly ZF9wYXJ0eS9mZm1wZWcvbGliYXZ1dGlsL2NwdS5jLm9yaWcKICsrKyAuL3RoaXJkX3BhcnR5L2Zm bXBlZy9saWJhdnV0aWwvY3B1LmMKLUBAIC0zOCw3ICszOCw2IEBACitAQCAtNDEsNyArNDEsNiBA QAogICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICAjZW5kaWYKICAjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CkBAIC03NCwyOCArNzQsNiBAQAogICNlbmRpZgogICNpZiBIQVZFX1VOSVNURF9ICiAgI2lu Y2x1ZGUgPHVuaXN0ZC5oPgotZGlmZiAtLWdpdCBhL2Nocm9tZS9icm93c2VyL21ldHJpY3MvY2hy b21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0c19tZXRyaWNzLmNjIGIvY2hyb21lL2Jyb3dzZXIv bWV0cmljcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3MuY2MKLS0tLSBj aHJvbWUvYnJvd3Nlci9tZXRyaWNzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0 cmljcy5jYwotKysrIGNocm9tZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9l eHRyYV9wYXJ0c19tZXRyaWNzLmNjCi1AQCAtMzksNyArMzksOSBAQAotICNlbmRpZiAgLy8gZGVm aW5lZChPU19BTkRST0lEKSAmJiBkZWZpbmVkKF9fYXJtX18pCi0gCi0gI2lmIGRlZmluZWQoT1Nf TElOVVgpICYmICFkZWZpbmVkKE9TX0NIUk9NRU9TKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykK LSAjaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgotKyNlbmRpZgotIAotICNpbmNsdWRlICJi YXNlL2xpbnV4X3V0aWwuaCIKLSAjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ19zcGxpdC5o IgotQEAgLTI5NSw3ICsyOTcsNyBAQCB2b2lkIFJlY29yZExpbnV4RGlzdHJvKCkgewotICNlbmRp ZiAgLy8gZGVmaW5lZChPU19MSU5VWCkgJiYgIWRlZmluZWQoT1NfQ0hST01FT1MpCi0gCi0gdm9p ZCBSZWNvcmRMaW51eEdsaWJjVmVyc2lvbigpIHsKLS0jaWYgZGVmaW5lZChPU19MSU5VWCkgJiYg IWRlZmluZWQoT1NfQ0hST01FT1MpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5l ZChPU19DSFJPTUVPUykKLSAgIGJhc2U6OlZlcnNpb24gdmVyc2lvbihnbnVfZ2V0X2xpYmNfdmVy c2lvbigpKTsKLSAKLSAgIFVNQUxpbnV4R2xpYmNWZXJzaW9uIGdsaWJjX3ZlcnNpb25fcmVzdWx0 ID0gVU1BX0xJTlVYX0dMSUJDX05PVF9QQVJTRUFCTEU7CiAtLS0gc2VydmljZXMvZGV2aWNlL3Nl cmlhbC9zZXJpYWxfaW9faGFuZGxlcl9wb3NpeC5jYy5vcmlnCTIwMTktMDctMDMgMTA6NTc6MzIu NTY4MTcxODM1IC0wNDAwCiArKysgc2VydmljZXMvZGV2aWNlL3NlcmlhbC9zZXJpYWxfaW9faGFu ZGxlcl9wb3NpeC5jYwkyMDE5LTA3LTAzIDEwOjU3OjE2Ljg2Nzk4MzAzMSAtMDQwMAogQEAgLTYs NiArNiw3IEBACkBAIC0xMzEsNyArMTA5LDcgQEAgZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L290 cy9pbmNsdWRlL29wZW50eXBlLXNhbml0aXNlci5oIGIvdGhpcmRfcGFydHkvb3RzL2luY2wKICAg ICAgYmFzZTo6ZGVidWc6OlN0YWNrVHJhY2Ugc3RhY2tfdHJhY2U7CiAtLS0gLi90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYy5vcmlnCiArKysgLi90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYwotQEAg LTI4LDcgKzI4LDcgQEAKK0BAIC0yOSw3ICsyOSw3IEBACiAgLy8gRklYTUU6IE9uIE1hYyBPU1gg YW5kIExpbnV4LCB0aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6ZQogIC8vIGNv cnJlY3RseSBmb3IgdGhlIG1haW4gdGhyZWFkLgogIApAQCAtMTQwLDcgKzExOCw3IEBAIGRpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9vdHMvaW5jbHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaCBiL3Ro aXJkX3BhcnR5L290cy9pbmNsCiAgICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKICAgIC8vIHB0aHJl YWRfZ2V0YXR0cl9ucCgpIGNhbiBmYWlsIGlmIHRoZSB0aHJlYWQgaXMgbm90IGludm9rZWQgYnkK ICAgIC8vIHB0aHJlYWRfY3JlYXRlKCkgKGUuZy4sIHRoZSBtYWluIHRocmVhZCBvZiBibGlua191 bml0dGVzdHMpLgotQEAgLTk2LDcgKzk2LDcgQEAKK0BAIC05Nyw3ICs5Nyw3IEBACiAgfQogIAog IHZvaWQqIEdldFN0YWNrU3RhcnQoKSB7CkBAIC0xNTEsNyArMTI5LDcgQEAgZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L290cy9pbmNsdWRlL29wZW50eXBlLXNhbml0aXNlci5oIGIvdGhpcmRfcGFy dHkvb3RzL2luY2wKICAgIGludCBlcnJvcjsKIC0tLSAuL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2 aWNlX3Bvc2l4LmNjLm9yaWcKICsrKyAuL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4 LmNjCi1AQCAtMTIyLDcgKzEyMiw3IEBACitAQCAtMTUwLDcgKzE1MCw3IEBACiAgICBDb25maWdQ YXJzZVBvc2l4UmVzdWx0IHJlc3VsdDsKICAgIGNvbmZpZy0+dW5oYW5kbGVkX29wdGlvbnMgPSBm YWxzZTsKICAvLyBUT0RPKGZ1Y2hzaWEpOiBVc2UgcmVzX25pbml0KCkgd2hlbiBpdCdzIGltcGxl bWVudGVkIG9uIEZ1Y2hzaWEuCkBAIC0xODEsNyArMTU5LDcgQEAgZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L290cy9pbmNsdWRlL29wZW50eXBlLXNhbml0aXNlci5oIGIvdGhpcmRfcGFydHkvb3Rz L2luY2wKICAKIC0tLSB0aGlyZF9wYXJ0eS9uYXNtL25hc21saWIvcmVhbHBhdGguYy5vcmlnCTIw MTktMDctMDMgMTI6MjM6MDUuMDIxOTQ5ODk1IC0wNDAwCiArKysgdGhpcmRfcGFydHkvbmFzbS9u YXNtbGliL3JlYWxwYXRoLmMJMjAxOS0wNy0wMyAxMjoyNDoyNC4yNDY4NjI2NjUgLTA0MDAKLUBA IC00OSw3ICs0OSw3IEBACitAQCAtNDcsNyArNDcsNyBAQAogIAogICNpbmNsdWRlICJuYXNtbGli LmgiCiAgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9t dXNsLWhhY2tzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVz bC1oYWNrcy5wYXRjaAppbmRleCBlZGMxYjA2MGRmYi4uOTI3NmU0OGFiOGUgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtaGFja3MucGF0Y2gKKysr IGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1oYWNrcy5wYXRjaApA QCAtMSw2ICsxLDYgQEAKIC0tLSBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjLm9yaWcJMjAxOC0x Mi0wOCAxNDoxMToyNS4zMDM0NzUxMTYgKzAxMDAKICsrKyBiYXNlL2RlYnVnL3N0YWNrX3RyYWNl LmNjCTIwMTgtMTItMDggMTg6MDA6NDMuODc0OTQ2OTk5ICswMTAwCi1AQCAtMjI5LDcgKzIyOSw3 IEBACitAQCAtMjI1LDcgKzIyNSw3IEBACiAgfQogIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRv U3RyaW5nV2l0aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CiAgICBz dGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07CkBAIC0xMSw3ICsxMSw3IEBACiAgICByZXR1cm4gc3Ry ZWFtLnN0cigpOwogLS0tIG5ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYy5vcmlnCTIwMTkt MDctMDMgMTM6MTM6NDYuMDM0MzQyNjQ5IC0wNDAwCiArKysgbmV0L3NvY2tldC91ZHBfc29ja2V0 X3Bvc2l4LmNjCTIwMTktMDctMDMgMTM6MjM6NTMuMTE3MDgxOTA5IC0wNDAwCi1AQCAtMTE5NCw3 ICsxMTk0LDcgQEAKK0BAIC0xMTUzLDcgKzExNTMsNyBAQAogICAgICBtc2dfaW92LT5wdXNoX2Jh Y2soe2NvbnN0X2Nhc3Q8Y2hhcio+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5sZW5ndGgoKX0p OwogICAgbXNndmVjLT5yZXNlcnZlKGJ1ZmZlcnMuc2l6ZSgpKTsKICAgIGZvciAoc2l6ZV90IGog PSAwOyBqIDwgYnVmZmVycy5zaXplKCk7IGorKykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21p dW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtbGliYysrLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1saWJjKysucGF0Y2gKaW5kZXggMDg4ZDgwZmFkNTIu LmUwNzc2ODIzNDAyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0 Y2hlcy9tdXNsLWxpYmMrKy5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wt cGF0Y2hlcy9tdXNsLWxpYmMrKy5wYXRjaApAQCAtMiw3ICsyLDcgQEAgZGlmZiAtLWdpdCBhL2J1 aWxkdG9vbHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL2luY2x1ZGUvbG9jYWxlIGIvYnVpbGR0 b29scy90aGkKIGluZGV4IGQyOWEyZGMuLjUzOTk4YmMgMTAwNjQ0CiAtLS0gYnVpbGR0b29scy90 aGlyZF9wYXJ0eS9saWJjKysvdHJ1bmsvaW5jbHVkZS9sb2NhbGUKICsrKyBidWlsZHRvb2xzL3Ro aXJkX3BhcnR5L2xpYmMrKy90cnVuay9pbmNsdWRlL2xvY2FsZQotQEAgLTExLDYgKzExLDE1IEBA CitAQCAtMTAsNiArMTAsMTUgQEAKICAjaWZuZGVmIF9MSUJDUFBfTE9DQUxFCiAgI2RlZmluZSBf TElCQ1BQX0xPQ0FMRQogIApAQCAtMjIsNyArMjIsNyBAQCBkaWZmIC0tZ2l0IGEvYnVpbGR0b29s cy90aGlyZF9wYXJ0eS9saWJjKysvdHJ1bmsvc3JjL2xvY2FsZS5jcHAgYi9idWlsZHRvb2xzL3Ro aQogaW5kZXggNDE2M2MyYy4uM2QxOTAyYSAxMDA2NDQKIC0tLSBhL2J1aWxkdG9vbHMvdGhpcmRf cGFydHkvbGliYysrL3RydW5rL3NyYy9sb2NhbGUuY3BwCiArKysgYnVpbGR0b29scy90aGlyZF9w YXJ0eS9saWJjKysvdHJ1bmsvc3JjL2xvY2FsZS5jcHAKLUBAIC0xMDI4LDExICsxMDI4LDExIEBA IGN0eXBlPGNoYXI+Ojpkb19uYXJyb3coY29uc3QgY2hhcl90eXBlKiBsb3csIGNvbnN0IGNoYXJf dHlwZSogaGlnaCwgY2hhciBkZmF1bHQsCitAQCAtMTAxOSwxMSArMTAxOSwxMSBAQCBjdHlwZTxj aGFyPjo6ZG9fbmFycm93KGNvbnN0IGNoYXJfdHlwZSogbG93LCBjb25zdCBjaGFyX3R5cGUqIGhp Z2gsIGNoYXIgZGZhdWx0LAogICAgICByZXR1cm4gbG93OwogIH0KICAKQEAgLTM2LDcgKzM2LDcg QEAgaW5kZXggNDE2M2MyYy4uM2QxOTAyYSAxMDA2NDQKICAKICAjaWZkZWYgX0xJQkNQUF9QUk9W SURFU19ERUZBVUxUX1JVTkVfVEFCTEUKICBjb25zdCBjdHlwZTxjaGFyPjo6bWFzayoKLUBAIC0x MTM2LDEyICsxMTM2LDEwIEBAIGN0eXBlPGNoYXI+OjpjbGFzc2ljX3RhYmxlKCkgIF9OT0VYQ0VQ VAorQEAgLTExMjcsMTIgKzExMjcsMTAgQEAgY3R5cGU8Y2hhcj46OmNsYXNzaWNfdGFibGUoKSAg X05PRVhDRVBUCiAgI2VsaWYgZGVmaW5lZChfQUlYKQogICAgICByZXR1cm4gKGNvbnN0IHVuc2ln bmVkIGludCAqKV9fbGNfY3R5cGVfcHRyLT5vYmotPm1hc2s7CiAgI2Vsc2UKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaApp bmRleCAyMzBiYjdiYmQyOS4uYjE1YmQxZjc5NDUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21p dW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaAorKysgYi9zcmNwa2dzL2No cm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTEsNiArMSw2 IEBACiAtLS0gLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJh bWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYy5vcmlnCTIwMTktMDctMDMgMTE6NTM6MjEuMjEzNDc5NzM2 IC0wNDAwCiArKysgLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9w YXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwkyMDE5LTA3LTAzIDExOjU3OjAxLjMwNDk5ODI1MyAt MDQwMAotQEAgLTE0MCwzMSArMTQwLDE0IEBACitAQCAtMTMxLDMxICsxMzEsMTQgQEAKICBSZXN1 bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CiAgICBjb25zdCBB cmc8dW5zaWduZWQgbG9uZz4gZmxhZ3MoMCk7CiAgCkBAIC00MSw3ICs0MSw3IEBACiAgCiAtLS0g Li9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjLm9yaWcK ICsrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MK LUBAIC00OTQsNiArNDk0LDcgQEAKK0BAIC01MjEsNiArNTIxLDcgQEAKICAgICAgY2FzZSBfX05S X21sb2NrOgogICAgICBjYXNlIF9fTlJfbXVubG9jazoKICAgICAgY2FzZSBfX05SX211bm1hcDoK QEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2FzZSBfX05SX21h ZHZpc2U6CiAgICAgIGNhc2UgX19OUl9taW5jb3JlOgotQEAgLTUwOSw3ICs1MTAsNiBAQAorQEAg LTUzOSw3ICs1MzksNiBAQAogICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xkdDoKICAjZW5kaWYKICAg ICAgY2FzZSBfX05SX21wcm90ZWN0OgpAQCAtNjEsNyArNjEsNyBAQCBkaWZmIC0tZ2l0IGEvc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYyBiL3NhbmRib3gv bGludXgvcwogaW5kZXggODBmMDJjMC4uMjFmYmUyMSAxMDA2NDQKIC0tLSBzYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCiArKysgc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotQEAgLTM3Myw2ICszNzMsNyBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykg eworQEAgLTM5OSw2ICszOTksNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNz U3RhcnRPckRlYXRoKGludCBzeXNubykgewogICNpZiBkZWZpbmVkKF9faTM4Nl9fKQogICAgICBj YXNlIF9fTlJfd2FpdHBpZDoKICAjZW5kaWYKQEAgLTY5LDcgKzY5LDcgQEAgaW5kZXggODBmMDJj MC4uMjFmYmUyMSAxMDA2NDQKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2FzZSBfX05SX2Ns b25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgogICAgICBjYXNlIF9fTlJf c2V0bnM6ICAvLyBQcml2aWxlZ2VkLgotQEAgLTM4NSw3ICszODYsNiBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgeworQEAgLTQxMiw3 ICs0MTIsNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRo KGludCBzeXNubykgewogICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pCiAgICAgIGNhc2UgX19OUl9zZXRfdGhyZWFkX2FyZWE6 CiAgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvYnJvd3Nlci1z aXplX3QucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvYnJvd3Nlci1zaXplX3QucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhMjE0ZDk4N2Q2Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvYnJvd3Nlci1zaXplX3QucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0gY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2Jh Y2tncm91bmQvbnRwX2JhY2tncm91bmRzLmgJMjAyMC0wOC0xMCAyMDozOToyMC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBjaHJvbWUvYnJvd3Nlci9zZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3Vu ZHMuaAkyMDIwLTA5LTA0IDEzOjQ4OjIyLjY0MDAyMzI1NiArMDIwMAotQEAgLTYsNiArNiw3IEBA Ci0gI2RlZmluZSBDSFJPTUVfQlJPV1NFUl9TRUFSQ0hfQkFDS0dST1VORF9OVFBfQkFDS0dST1VO RFNfSF8KLSAKLSAjaW5jbHVkZSA8YXJyYXk+Ci0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0gCi0gY2xh c3MgR1VSTDsKLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1 bS04OC1BWFRyZWVGb3JtYXR0ZXItaW5jbHVkZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9jaHJvbWl1bS04OC1BWFRyZWVGb3JtYXR0ZXItaW5jbHVkZS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ3ODEwOTg5MjAuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1BWFRyZWVGb3JtYXR0ZXItaW5jbHVkZS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUZyb20gNmU0MDJkOTdjMmRlYzU3 MjZmMzdlOTVmOTdiN2Y3ZTEyYjFkM2IxZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IEpvc2UgRGFwZW5hIFBheiA8amRhcGVuYUBpZ2FsaWEuY29tPgotRGF0ZTogV2VkLCAxMSBOb3Yg MjAyMCAxMTowMjoxMyArMDEwMAotU3ViamVjdDogW1BBVENIXSBJV1lVOiBpbmNsdWRlIGhlYWRl cnMgZm9yIHN0ZDo6dmVjdG9yIGFuZCBzdGQ6OnVuaXF1ZV9wdHIgaW4gQVhUcmVlRm9ybWF0dGVy Ci0KLUZpeCB0aGVzZSBidWlsZCBlcnJvcnMgd2l0aCBsaWJzdGRjKys6Ci0uLi8uLi91aS9hY2Nl c3NpYmlsaXR5L3BsYXRmb3JtL2luc3BlY3QvdHJlZV9mb3JtYXR0ZXIuaDozNToxMjogZXJyb3I6 IOKAmHN0ZDo6dmVjdG9y4oCZIGhhcyBub3QgYmVlbiBkZWNsYXJlZAotLi4vLi4vdWkvYWNjZXNz aWJpbGl0eS9wbGF0Zm9ybS9pbnNwZWN0L3RyZWVfZm9ybWF0dGVyLmg6NjE6MTY6IGVycm9yOiDi gJh1bmlxdWVfcHRy4oCZIGluIG5hbWVzcGFjZSDigJhzdGTigJkgZG9lcyBub3QgbmFtZSBhIHRl bXBsYXRlIHR5cGUKLQotQnVnOiA5NTc1MTkKLUNoYW5nZS1JZDogSTQwMmFjMDY0NDI1NWIzY2Q0 OTMyZmYyZmU3MmQ5OTliMTI1YTc4OTUKLS0tLQotCi1kaWZmIC0tZ2l0IGEvdWkvYWNjZXNzaWJp bGl0eS9wbGF0Zm9ybS9pbnNwZWN0L3RyZWVfZm9ybWF0dGVyLmggYi91aS9hY2Nlc3NpYmlsaXR5 L3BsYXRmb3JtL2luc3BlY3QvdHJlZV9mb3JtYXR0ZXIuaAotaW5kZXggNGE3MGE0ZC4uYmIyMzc2 OCAxMDA2NDQKLS0tLSB1aS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2luc3BlY3QvdHJlZV9mb3Jt YXR0ZXIuaAotKysrIHVpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1h dHRlci5oCi1AQCAtNSw2ICs1LDkgQEAKLSAjaWZuZGVmIFVJX0FDQ0VTU0lCSUxJVFlfUExBVEZP Uk1fSU5TUEVDVF9UUkVFX0ZPUk1BVFRFUl9IXwotICNkZWZpbmUgVUlfQUNDRVNTSUJJTElUWV9Q TEFURk9STV9JTlNQRUNUX1RSRUVfRk9STUFUVEVSX0hfCi0gCi0rI2luY2x1ZGUgPG1lbW9yeT4K LSsjaW5jbHVkZSA8dmVjdG9yPgotKwotICNpbmNsdWRlICJ1aS9hY2Nlc3NpYmlsaXR5L3BsYXRm b3JtL2luc3BlY3QvaW5zcGVjdC5oIgotIAotICNpbmNsdWRlICJ1aS9nZngvbmF0aXZlX3dpZGdl dF90eXBlcy5oIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTg4LUJvb2ttYXJrTW9kZWxPYnNlcnZlci1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTg4LUJvb2ttYXJrTW9kZWxPYnNlcnZlci1pbmNsdWRlLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjI2YTYwYTM2ZS4uMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUJvb2ttYXJrTW9kZWxP YnNlcnZlci1pbmNsdWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotRnJv bSAxMjdlYzNiMWJmMjZhYjM3ZjJhZTgzMzNmMjg0MDA4ODY4NzU2Mjc0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29t PgotRGF0ZTogU2F0LCAyMSBOb3YgMjAyMCAxNTo1OToyMyArMDAwMAotU3ViamVjdDogW1BBVENI XSBJV1lVOiBzaXplX3QgaXMgZGVmaW5lZCBzdGRkZWYuaAotCi1DaGFuZ2UtSWQ6IEk0NDAwYWM3 YzYwMDRiNDllYzZlNzJjNDRmMjc1NGUyMTY2NjQyZjg4Ci0tLS0KLQotZGlmZiAtLWdpdCBhL2Nv bXBvbmVudHMvYm9va21hcmtzL2Jyb3dzZXIvYm9va21hcmtfbW9kZWxfb2JzZXJ2ZXIuaCBiL2Nv bXBvbmVudHMvYm9va21hcmtzL2Jyb3dzZXIvYm9va21hcmtfbW9kZWxfb2JzZXJ2ZXIuaAotaW5k ZXggNjljNDBlNy4uMGU1ZWI5NiAxMDA2NDQKLS0tLSBjb21wb25lbnRzL2Jvb2ttYXJrcy9icm93 c2VyL2Jvb2ttYXJrX21vZGVsX29ic2VydmVyLmgKLSsrKyBjb21wb25lbnRzL2Jvb2ttYXJrcy9i cm93c2VyL2Jvb2ttYXJrX21vZGVsX29ic2VydmVyLmgKLUBAIC03LDYgKzcsOCBAQAotIAotICNp bmNsdWRlIDxzZXQ+Ci0gCi0rI2luY2x1ZGUgPHN0ZGRlZi5oPgotKwotIGNsYXNzIEdVUkw7Ci0g Ci0gbmFtZXNwYWNlIGJvb2ttYXJrcyB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODgtQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoIGIv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUNvbXBvc2l0b3JGcmFtZVJlcG9y dGVyLWRjaGVjay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWExYzUyZTBi N2UuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04 OC1Db21wb3NpdG9yRnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwzNiArMCwwIEBACi1Gcm9tIDU2YzY1NGE5MTYwMGUzYmYyNTRhYTlmNjZjMTE1MWIwODUwYjZl ZTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKb3NlIERhcGVuYSBQYXogPGpkYXBl bmFAaWdhbGlhLmNvbT4KLURhdGU6IFdlZCwgMTEgTm92IDIwMjAgMTA6MjQ6NDcgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSF0gR0NDOiBkbyBub3QgcGFzcyB1bmlxdWVfcHRyIHRvIERDSEVDS19ORSwg YnV0IHRoZSBhY3R1YWwgcG9pbnRlciwgaW4gQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXIKLQotRENI RUNLX05FIGNvbXBhcmlzb24gcmVxdWlyZXMgQ2hlY2tPcFZhbHVlU3RyIHRvIGJlIGRlZmluZWQg Zm9yIHRoZQotdHlwZSwgb3IgcHJvdmlkaW5nIGFuIG91dHB1dCBzdHJlYW0gb3BlcmF0b3IuIEEg dW5pcXVlX3B0ciBkb2VzIG5vdAotcHJvdmlkZSBhbnkuCi0KLUNvbXBpbGF0aW9uIGluIEdDQyBp cyBmYWlsaW5nIGluIENvbXBvc2l0b3JGcmFtZVJlcG9ydGVyIGJlY2F1c2Ugb2YKLXRoaXM6Ci0u Li8uLi9jYy9tZXRyaWNzL2NvbXBvc2l0b3JfZnJhbWVfcmVwb3J0ZXIuY2M6IEluIG1lbWJlciBm dW5jdGlvbiDigJh2b2lkIGNjOjpDb21wb3NpdG9yRnJhbWVSZXBvcnRlcjo6UmVwb3J0RXZlbnRM YXRlbmN5SGlzdG9ncmFtcygpIGNvbnN04oCZOgotLi4vLi4vYmFzZS9jaGVja19vcC5oOjIyNDo1 OTogZXJyb3I6IG5vIG1hdGNoaW5nIGZ1bmN0aW9uIGZvciBjYWxsIHRvIOKAmENoZWNrT3BWYWx1 ZVN0cihjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Y2M6OkV2ZW50TWV0cmljcz4mKeKAmQotCi1GaXhl ZCBjb21wYXJpbmcgdGhlIHJlc3VsdCBvZiBnZXQoKSBtZXRob2QgZm9yIHVuaXF1ZV9wdHIgaW5z dGVhZCBvZgotdGhlIHVuaXF1ZV9wdHIuCi0KLUJ1ZzogODE5Mjk0Ci1DaGFuZ2UtSWQ6IEkxMTEw M2QxODY3YzcxOTZjMWRlOTJlNzJmOWYxMmRjZmQzMWMyOWYxCi0KLSh1cGRhdGVkIHRvIHVzZSBE Q0hFQ0sgYXMgc3VnZ2VzdGVkIGluIGNvbW1lbnRzKQotLS0tCi0KLWRpZmYgLS1naXQgYS9jYy9t ZXRyaWNzL2NvbXBvc2l0b3JfZnJhbWVfcmVwb3J0ZXIuY2MgYi9jYy9tZXRyaWNzL2NvbXBvc2l0 b3JfZnJhbWVfcmVwb3J0ZXIuY2MKLWluZGV4IDcyNWJlYjAuLmZhZmQwZjMgMTAwNjQ0Ci0tLS0g Y2MvbWV0cmljcy9jb21wb3NpdG9yX2ZyYW1lX3JlcG9ydGVyLmNjCi0rKysgY2MvbWV0cmljcy9j b21wb3NpdG9yX2ZyYW1lX3JlcG9ydGVyLmNjCi1AQCAtNjg2LDcgKzY4Niw3IEBACi0gCi0gdm9p ZCBDb21wb3NpdG9yRnJhbWVSZXBvcnRlcjo6UmVwb3J0RXZlbnRMYXRlbmN5SGlzdG9ncmFtcygp IGNvbnN0IHsKLSAgIGZvciAoY29uc3QgYXV0byYgZXZlbnRfbWV0cmljcyA6IGV2ZW50c19tZXRy aWNzXykgewotLSAgICBEQ0hFQ0tfTkUoZXZlbnRfbWV0cmljcywgbnVsbHB0cik7Ci0rICAgIERD SEVDSyhldmVudF9tZXRyaWNzKTsKLSAgICAgY29uc3Qgc3RkOjpzdHJpbmcgaGlzdG9ncmFtX2Jh c2VfbmFtZSA9Ci0gICAgICAgICBHZXRFdmVudExhdGVuY3lIaXN0b2dyYW1CYXNlTmFtZSgqZXZl bnRfbWV0cmljcyk7Ci0gICAgIGNvbnN0IGludCBldmVudF90eXBlX2luZGV4ID0gc3RhdGljX2Nh c3Q8aW50PihldmVudF9tZXRyaWNzLT50eXBlKCkpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LVN0cmluZ1Bvb2wtaW5jbHVkZS5wYXRjaCBiL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1TdHJpbmdQb29sLWluY2x1ZGUucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NWJiYWUyZWNlLi4wMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtU3RyaW5nUG9vbC1pbmNs dWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotRnJvbSAzNzIzNjZiNDE4 MDUzM2YyN2QzMjUwYTUwODEwODI4MzcwZDY5N2IwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogU2F0 LCAyMSBOb3YgMjAyMCAxNjoxMjoxOCArMDAwMAotU3ViamVjdDogW1BBVENIXSBJV1lVOiBpbmNs dWRlIGxpbWl0cyBmb3Igc3RkOjpudW1lcmljX2xpbWl0cwotCi1DaGFuZ2UtSWQ6IElhNTIyNmUx NDMyYTYyMmY0ZjRhYmM4ZjFiMThiY2FiODYzOGE3M2M2Ci0tLS0KLQotZGlmZiAtLWdpdCBhL3Ny Yy90cmFjZV9wcm9jZXNzb3IvY29udGFpbmVycy9zdHJpbmdfcG9vbC5oIGIvc3JjL3RyYWNlX3By b2Nlc3Nvci9jb250YWluZXJzL3N0cmluZ19wb29sLmgKLWluZGV4IDExYWU5MWMuLjU4YzZkYjIg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvcGVyZmV0dG8vc3JjL3RyYWNlX3Byb2Nlc3Nvci9jb250 YWluZXJzL3N0cmluZ19wb29sLmgKLSsrKyB0aGlyZF9wYXJ0eS9wZXJmZXR0by9zcmMvdHJhY2Vf cHJvY2Vzc29yL2NvbnRhaW5lcnMvc3RyaW5nX3Bvb2wuaAotQEAgLTIyLDYgKzIyLDcgQEAKLSAK LSAjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KLSAjaW5jbHVkZSA8dmVjdG9yPgotKyNpbmNsdWRl IDxsaW1pdHM+Ci0gCi0gI2luY2x1ZGUgInBlcmZldHRvL2V4dC9iYXNlL29wdGlvbmFsLmgiCi0g I2luY2x1ZGUgInBlcmZldHRvL2V4dC9iYXNlL3BhZ2VkX21lbW9yeS5oIgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWZlZGVyYXRlZF9sZWFybmluZy1p bmNsdWRlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWZlZGVy YXRlZF9sZWFybmluZy1pbmNsdWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAzZWIxNTM3ZDgwMS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTg4LWZlZGVyYXRlZF9sZWFybmluZy1pbmNsdWRlLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjEgKzAsMCBAQAotRnJvbSBiY2IyMGJhYmVlNjAyYjU1ZmU0YmQwMjZlMTNhNDFk MTBiODk2MzJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhhbiBIYXJ0bWFu biA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogU2F0LCAyMSBOb3YgMjAyMCAxNTo1NTow MiArMDAwMAotU3ViamVjdDogW1BBVENIXSBJV1lVOiBpbmNsdWRlIGxpbWl0cyBmb3Igc3RkOjpu dW1lcmljX2xpbWl0cwotCi1DaGFuZ2UtSWQ6IEkxYjZiMDdlYmIzOTdhMjljODRkM2VkNTFhZTQx NTIzZTNlY2FiNDk3Ci0tLS0KLQotZGlmZiAtLWdpdCBhL2NvbXBvbmVudHMvZmVkZXJhdGVkX2xl YXJuaW5nL2Zsb2NfY29uc3RhbnRzLmNjIGIvY29tcG9uZW50cy9mZWRlcmF0ZWRfbGVhcm5pbmcv ZmxvY19jb25zdGFudHMuY2MKLWluZGV4IGRmNjZlNWQuLjJlYjUwZjEgMTAwNjQ0Ci0tLS0gY29t cG9uZW50cy9mZWRlcmF0ZWRfbGVhcm5pbmcvZmxvY19jb25zdGFudHMuY2MKLSsrKyBjb21wb25l bnRzL2ZlZGVyYXRlZF9sZWFybmluZy9mbG9jX2NvbnN0YW50cy5jYwotQEAgLTQsNiArNCw4IEBA Ci0gCi0gI2luY2x1ZGUgImNvbXBvbmVudHMvZmVkZXJhdGVkX2xlYXJuaW5nL2Zsb2NfY29uc3Rh bnRzLmgiCi0gCi0rI2luY2x1ZGUgPGxpbWl0cz4KLSsKLSBuYW1lc3BhY2UgZmVkZXJhdGVkX2xl YXJuaW5nIHsKLSAKLSAvLyBUaGlzIGlzIG9ubHkgZm9yIGV4cGVyaW1lbnRhdGlvbiBhbmQgd29u J3QgYmUgc2VydmVkIHRvIHdlYnNpdGVzLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTg4LWdsaWJjLTIuMzMucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODgtZ2xpYmMtMi4zMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggNjQzMDZkNWU0MjkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9jaHJvbWl1bS04OC1nbGliYy0yLjMzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTQ0ICswLDAgQEAKLSMgUGF0Y2ggbWFkZSBieSBLZXZpbiBLb2ZsZXIgPEtldmluQHRpZ2NjLnRp Y2FsYy5vcmc+Ci0jIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9 MTkwNDY1MgotCi1kaWZmIC11cCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYy5mc3RhdGZpeCBjaHJvbWl1bS04 OC4wLjQzMjQuOTYvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3Bv bGljeS5jYwotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9w b2xpY3kuY2MuZnN0YXRmaXgJMjAyMS0wMS0yNSAxMDoxMTo0NS40Mjc0MzYzOTggLTA1MDAKLSsr KyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCTIw MjEtMDEtMjUgMTA6MTI6NTEuMzM3Njk5MDAzIC0wNTAwCi1AQCAtMjU3LDYgKzI1NywxOCBAQCBS ZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCi0gICAgIHJldHVybiBSZXN0 cmljdEtpbGxUYXJnZXQoY3VycmVudF9waWQsIHN5c25vKTsKLSAgIH0KLSAKLSsjaWYgZGVmaW5l ZChfX05SX25ld2ZzdGF0YXQpCi0rICBpZiAoc3lzbm8gPT0gX19OUl9uZXdmc3RhdGF0KSB7Ci0r ICAgIHJldHVybiBSZXdyaXRlRnN0YXRhdFNJR1NZUygpOwotKyAgfQotKyNlbmRpZgotKwotKyNp ZiBkZWZpbmVkKF9fTlJfZnN0YXRhdDY0KQotKyAgaWYgKHN5c25vID09IF9fTlJfZnN0YXRhdDY0 KSB7Ci0rICAgIHJldHVybiBSZXdyaXRlRnN0YXRhdFNJR1NZUygpOwotKyAgfQotKyNlbmRpZgot KwotICAgaWYgKFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oc3lzbm8pIHx8Ci0gICAgICAgU3lz Y2FsbFNldHM6OklzQ3VycmVudERpcmVjdG9yeShzeXNubykpIHsKLSAgICAgcmV0dXJuIEVycm9y KGZzX2RlbmllZF9lcnJubyk7Ci1kaWZmIC11cCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5jYy5mc3RhdGZpeCBj aHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3Np Z3N5c19oYW5kbGVycy5jYwotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z aWdzeXNfaGFuZGxlcnMuY2MuZnN0YXRmaXgJMjAyMS0wMS0yNSAxMDoxMzoxMC4xNzk3NzQwODEg LTA1MDAKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRs ZXJzLmNjCTIwMjEtMDEtMjUgMTA6MTY6MTguNzkwNTI1NzQ2IC0wNTAwCi1AQCAtNiw2ICs2LDgg QEAKLSAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5 c19oYW5kbGVycy5oIgotIAotKyNpbmNsdWRlIDxlcnJuby5oPgotKyNpbmNsdWRlIDxmY250bC5o PgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gI2luY2x1ZGUg PHN0cmluZy5oPgotQEAgLTM1NSw2ICszNTcsMzUgQEAgaW50cHRyX3QgU0lHU1lTU2NoZWRIYW5k bGVyKGNvbnN0IHN0cnVjdAotICAgcmV0dXJuIC1FTk9TWVM7Ci0gfQotIAotK2ludHB0cl90IFNJ R1NZU0ZzdGF0YXRIYW5kbGVyKGNvbnN0IHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSYgYXJncywK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhdXgpIHsKLSsgIHN3aXRjaCAo YXJncy5ucikgewotKyNpZiBkZWZpbmVkKF9fTlJfbmV3ZnN0YXRhdCkKLSsgICAgY2FzZSBfX05S X25ld2ZzdGF0YXQ6Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCi0rICAg IGNhc2UgX19OUl9mc3RhdGF0NjQ6Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19OUl9uZXdmc3Rh dGF0KSB8fCBkZWZpbmVkKF9fTlJfZnN0YXRhdDY0KQotKyAgICAgIGlmICgqcmVpbnRlcnByZXRf Y2FzdDxjb25zdCBjaGFyICo+KGFyZ3MuYXJnc1sxXSkgPT0gJ1wwJwotKyAgICAgICAgICAmJiBh cmdzLmFyZ3NbM10gPT0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEFUX0VNUFRZX1BBVEgpKSB7Ci0r ICAgICAgICByZXR1cm4gc2FuZGJveDo6c3lzX2ZzdGF0NjQoc3RhdGljX2Nhc3Q8aW50Pihhcmdz LmFyZ3NbMF0pLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJw cmV0X2Nhc3Q8c3RydWN0IHN0YXQ2NCAqPihhcmdzLmFyZ3NbMl0pKTsKLSsgICAgICB9IGVsc2Ug ewotKyAgICAgICAgZXJybm8gPSBFQUNDRVM7Ci0rICAgICAgICByZXR1cm4gLTE7Ci0rICAgICAg fQotKyAgICAgIGJyZWFrOwotKyNlbmRpZgotKyAgfQotKwotKyAgQ3Jhc2hTSUdTWVNfSGFuZGxl cihhcmdzLCBhdXgpOwotKwotKyAgLy8gU2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQuCi0rICBSQVdf Q0hFQ0soZmFsc2UpOwotKyAgcmV0dXJuIC1FTk9TWVM7Ci0rfQotKwotIGJwZl9kc2w6OlJlc3Vs dEV4cHIgQ3Jhc2hTSUdTWVMoKSB7Ci0gICByZXR1cm4gYnBmX2RzbDo6VHJhcChDcmFzaFNJR1NZ U19IYW5kbGVyLCBOVUxMKTsKLSB9Ci1AQCAtMzg3LDYgKzQxOCwxMCBAQCBicGZfZHNsOjpSZXN1 bHRFeHByIFJld3JpdGVTY2hlZFNJR1NZUygpCi0gICByZXR1cm4gYnBmX2RzbDo6VHJhcChTSUdT WVNTY2hlZEhhbmRsZXIsIE5VTEwpOwotIH0KLSAKLSticGZfZHNsOjpSZXN1bHRFeHByIFJld3Jp dGVGc3RhdGF0U0lHU1lTKCkgewotKyAgcmV0dXJuIGJwZl9kc2w6OlRyYXAoU0lHU1lTRnN0YXRh dEhhbmRsZXIsIE5VTEwpOwotK30KLSsKLSB2b2lkIEFsbG9jYXRlQ3Jhc2hLZXlzKCkgewotICNp ZiAhZGVmaW5lZChPU19OQUNMX05PTlNGSSkKLSAgIGlmIChzZWNjb21wX2NyYXNoX2tleSkKLWRp ZmYgLXVwIGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc2lnc3lzX2hhbmRsZXJzLmguZnN0YXRmaXggY2hyb21pdW0tODguMC40MzI0Ljk2L3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuaAotLS0tIHNh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuaC5mc3RhdGZp eAkyMDIxLTAxLTI1IDEwOjE2OjM2Ljk4MjU5ODIzNiAtMDUwMAotKysrIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuaAkyMDIxLTAxLTI1IDEwOjE4OjQ1 LjcwNTExMTAyNyAtMDUwMAotQEAgLTYyLDYgKzYyLDEwIEBAIFNBTkRCT1hfRVhQT1JUIGludHB0 cl90IFNJR1NZU1B0cmFjZUZhaWwKLSAvLyBzY2hlZF9zZXRwYXJhbSgpLCBzY2hlZF9zZXRzY2hl ZHVsZXIoKQotIFNBTkRCT1hfRVhQT1JUIGludHB0cl90IFNJR1NZU1NjaGVkSGFuZGxlcihjb25z dCBhcmNoX3NlY2NvbXBfZGF0YSYgYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCogYXV4KTsKLSsvLyBJZiB0aGUgZnN0YXRhdCBzeXNjYWxsIGlz IGFjdHVhbGx5IGEgZGlzZ3Vpc2VkIGZzdGF0LCBjYWxscyB0aGUgcmVndWxhciBmc3RhdAotKy8v IHN5c2NhbGwsIG90aGVyd2lzZSwgY3Jhc2hlcyBpbiB0aGUgc2FtZSB3YXkgYXMgQ3Jhc2hTSUdT WVNfSGFuZGxlci4KLStTQU5EQk9YX0VYUE9SVCBpbnRwdHJfdCBTSUdTWVNGc3RhdGF0SGFuZGxl cihjb25zdCBzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEmIGFyZ3MsIAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGF1eCk7Ci0gCi0gLy8gVmFyaWFu dHMgb2YgdGhlIGFib3ZlIGZ1bmN0aW9ucyBmb3IgdXNlIHdpdGggYnBmX2RzbC4KLSBTQU5EQk9Y X0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIENyYXNoU0lHU1lTKCk7Ci1AQCAtNzIsNiArNzYs NyBAQCBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIENyYXNoCi0gU0FOREJPWF9F WFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBDcmFzaFNJR1NZU0Z1dGV4KCk7Ci0gU0FOREJPWF9F WFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBDcmFzaFNJR1NZU1B0cmFjZSgpOwotIFNBTkRCT1hf RVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmV3cml0ZVNjaGVkU0lHU1lTKCk7Ci0rU0FOREJP WF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXdyaXRlRnN0YXRhdFNJR1NZUygpOwotIAot IC8vIEFsbG9jYXRlcyBhIGNyYXNoIGtleSBzbyB0aGF0IFNlY2NvbXAgaW5mb3JtYXRpb24gY2Fu IGJlIHJlY29yZGVkLgotIHZvaWQgQWxsb2NhdGVDcmFzaEtleXMoKTsKLWRpZmYgLXVwIGNocm9t aXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMu Y2MuZnN0YXRmaXggY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VydmljZXMv c3lzY2FsbF93cmFwcGVycy5jYwotLS0tIHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93 cmFwcGVycy5jYy5mc3RhdGZpeAkyMDIxLTAxLTI1IDEwOjE4OjUzLjMwNzE0MTMxMSAtMDUwMAot KysrIHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYwkyMDIxLTAxLTI1 IDEwOjE5OjQ2Ljk4MjM1NTI5MyAtMDUwMAotQEAgLTI2MSw0ICsyNjEsMTMgQEAgaW50IHN5c19z aWdhY3Rpb24oaW50IHNpZ251bSwKLSAKLSAjZW5kaWYgIC8vIGRlZmluZWQoTUVNT1JZX1NBTklU SVpFUikKLSAKLStTQU5EQk9YX0VYUE9SVCBpbnQgc3lzX2ZzdGF0NjQoaW50IGZkLCBzdHJ1Y3Qg c3RhdDY0ICpidWYpCi0rewotKyNpZiBkZWZpbmVkKF9fTlJfZnN0YXQ2NCkKLSsgICAgcmV0dXJu IHN5c2NhbGwoX19OUl9mc3RhdDY0LCBmZCwgYnVmKTsKLSsjZWxzZQotKyAgICByZXR1cm4gc3lz Y2FsbChfX05SX2ZzdGF0LCBmZCwgYnVmKTsKLSsjZW5kaWYKLSt9Ci0rCi0gfSAgLy8gbmFtZXNw YWNlIHNhbmRib3gKLWRpZmYgLXVwIGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4 L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuaC5mc3RhdGZpeCBjaHJvbWl1bS04OC4wLjQzMjQu OTYvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmgKLS0tLSBzYW5kYm94 L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuaC5mc3RhdGZpeAkyMDIxLTAxLTI1IDEw OjE5OjUzLjExNTM3OTc0MSAtMDUwMAotKysrIHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2Fs bF93cmFwcGVycy5oCTIwMjEtMDEtMjUgMTA6MjA6NDUuNDg1NTg4NDIxIC0wNTAwCi1AQCAtMTcs NiArMTcsNyBAQCBzdHJ1Y3Qgc29ja19mcHJvZzsKLSBzdHJ1Y3QgcmxpbWl0NjQ7Ci0gc3RydWN0 IGNhcF9oZHI7Ci0gc3RydWN0IGNhcF9kYXRhOwotK3N0cnVjdCBzdGF0NjQ7Ci0gCi0gbmFtZXNw YWNlIHNhbmRib3ggewotIAotQEAgLTg0LDYgKzg1LDkgQEAgU0FOREJPWF9FWFBPUlQgaW50IHN5 c19zaWdhY3Rpb24oaW50IHNpZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBzaWdhY3Rpb24qIGFjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3Qgc2lnYWN0aW9uKiBvbGRhY3QpOwotIAotKy8vIFJlY2VudCBnbGliYyByZXdy aXRlcyBmc3RhdCB0byBmc3RhdGF0LgotK1NBTkRCT1hfRVhQT1JUIGludCBzeXNfZnN0YXQ2NChp bnQgZmQsIHN0cnVjdCBzdGF0NjQgKmJ1Zik7Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIHNhbmRib3gK LSAKLSAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU0VSVklDRVNfU1lTQ0FMTF9XUkFQUEVSU19I XwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWlkZW9n cmFwaGljU3BhY2VDaGFyYWN0ZXIucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hy b21pdW0tODgtaWRlb2dyYXBoaWNTcGFjZUNoYXJhY3Rlci5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMzhhMTE0MjNiMmQuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSA3NWZmODgyYmI1ZjJmY2QxNDQz MWU2NWZhNjM4YWU3MmJkYjQ3MDg2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3Rl cGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogU3VuLCAxNSBOb3Yg MjAyMCAxNDozMToyMyArMDAwMAotU3ViamVjdDogW1BBVENIXSBmaXggaWRlb2dyYXBoaWNTcGFj ZUNoYXJhY3RlciBjb25zdGFudCBmb3Igc3lzdGVtIGljdQotCi1odHRwczovL2Nocm9taXVtLXJl dmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMTY4NzQxMQotcmVuYW1lZCBp ZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyIHRvIGtJZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyLgot LS0tCi0gdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvdGV4dF9j b2RlY19pY3UuY2MgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL3BsYXRmb3JtL3d0Zi90ZXh0L3RleHRfY29kZWNfaWN1LmNjCi1pbmRleCBmYjhhYjA1Li41 ZDRlYTEzIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0 Zi90ZXh0L3RleHRfY29kZWNfaWN1LmNjCi0rKysgdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vd3RmL3RleHQvdGV4dF9jb2RlY19pY3UuY2MKLUBAIC00MzIsNyArNDMyLDcgQEAg U3RyaW5nIFRleHRDb2RlY0lDVTo6RGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLAotICAgLy8gSUNV IGRlY29kZXMgaXQgYXMgVStFNUU1LgotICAgaWYgKCFzdHJjbXAoZW5jb2RpbmdfLkdldE5hbWUo KSwgIkdCSyIpKSB7Ci0gICAgIGlmIChFcXVhbElnbm9yaW5nQVNDSUlDYXNlKGVuY29kaW5nXy5H ZXROYW1lKCksICJnYjE4MDMwIikpCi0tICAgICAgcmVzdWx0U3RyaW5nLlJlcGxhY2UoMHhFNUU1 LCBpZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyKTsKLSsgICAgICByZXN1bHRTdHJpbmcuUmVwbGFj ZSgweEU1RTUsIGtJZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyKTsKLSAgICAgLy8gTWFrZSBHQksg Y29tcGxpYW50IHRvIHRoZSBlbmNvZGluZyBzcGVjIGFuZCBhbGlnbiB3aXRoIEdCMTgwMzAKLSAg ICAgcmVzdWx0U3RyaW5nLlJlcGxhY2UoMHgwMUY5LCAweEU3QzgpOwotICAgICAvLyBGSVhNRTog T25jZSBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI4NzQw I2MzCi0tLSAKLTIuMjYuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tODgtaXR5cC1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTg4LWl0eXAtaW5jbHVkZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggYzU0YjZmZmZkNTQuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwy NSArMCwwIEBACi1Gcm9tIGJjMzgzYTVkZDdmYThmMmI1MzVmMjg4MTVmZDY5MzJmYmMwZDJhNDUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlA Z29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDI4IE9jdCAyMDIwIDE2OjAwOjM1ICswMDAwCi1T dWJqZWN0OiBbUEFUQ0hdIElXWVU6IGluY2x1ZGUgc3RkZGVmLmggZm9yIHNpemVfdAotCi0tLS0K LSB0aGlyZF9wYXJ0eS9kYXduL3NyYy9jb21tb24vaXR5cF9hcnJheS5oIHwgMiArKwotIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2Rh d24vc3JjL2NvbW1vbi9pdHlwX2FycmF5LmggYi90aGlyZF9wYXJ0eS9kYXduL3NyYy9jb21tb24v aXR5cF9hcnJheS5oCi1pbmRleCA0OGUwODBmLi5jNzg0MTk4IDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2Rhd24vc3JjL2NvbW1vbi9pdHlwX2FycmF5LmgKLSsrKyB0aGlyZF9wYXJ0eS9kYXduL3Ny Yy9jb21tb24vaXR5cF9hcnJheS5oCi1AQCAtMjEsNiArMjEsOCBAQAotICNpbmNsdWRlIDxhcnJh eT4KLSAjaW5jbHVkZSA8dHlwZV90cmFpdHM+Ci0gCi0rI2luY2x1ZGUgPHN0ZGRlZi5oPgotKwot IG5hbWVzcGFjZSBpdHlwIHsKLSAKLSAgICAgLy8gaXR5cDo6YXJyYXkgaXMgYSBoZWxwZXIgY2xh c3MgdGhhdCB3cmFwcyBzdGQ6OmFycmF5IHdpdGggdGhlIHJlc3RyaWN0aW9uIHRoYXQKLS0tIAot Mi4yNi4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04 OC12YWFwaS1hdHRyaWJ1dGUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21p dW0tODgtdmFhcGktYXR0cmlidXRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBlNDE2MWFmNDVjNy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTg4LXZhYXBpLWF0dHJpYnV0ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5 ICswLDAgQEAKLUZyb20gNGY0NjA0ODc3ZjNiNjY2YWM3YTM3M2FlNDQzZTNjMzc5NTQyNDU2OSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBn b29nbGVtYWlsLmNvbT4KLURhdGU6IEZyaSwgNiBOb3YgMjAyMCAxMToxODo0MiArMDAwMAotU3Vi amVjdDogW1BBVENIXSBHQ0M6IGZpeCBhdHRyaWJ1dGUgb24gZnVuY3Rpb24gZGVmaW5pdGlvbgot Ci1HQ0MgZG9lcyBub3QgYWNjZXB0IGF0dHJpYnV0ZXMgYXQgdGhlIGVuZCBmb3IgZnVuY3Rpb24g ZGVmaW5pdGlvbnMuCi1Tb2x1dGlvbiBpcyB0byBtb3ZlIGl0IGJlZm9yZSBmdW5jdGlvbiBuYW1l LiBPdGhlcndpc2UgR0NDIGZhaWxzIGxpa2UKLXRoaXM6Ci0KLS4uLy4uL2Jhc2UvY29tcGlsZXJf c3BlY2lmaWMuaDo5NzoyODogZXJyb3I6IGF0dHJpYnV0ZXMgYXJlIG5vdCBhbGxvd2VkCi1vbiBh IGZ1bmN0aW9uLWRlZmluaXRpb24KLSAgIDk3IHwgI2RlZmluZSBXQVJOX1VOVVNFRF9SRVNVTFQg X19hdHRyaWJ1dGVfXygod2Fybl91bnVzZWRfcmVzdWx0KSkKLSAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgotCSAuLi8uLi9tZWRpYS9ncHUvdmFhcGkv dmFhcGlfd3JhcHBlci5oOjMyMjozNjogbm90ZTogaW4KLQkgZXhwYW5zaW9uIG9mIG1hY3JvICdX QVJOX1VOVVNFRF9SRVNVTFQnCi0JICAgMzIyIHwgICAgICAgICAgICAgICAgICAgICBjb25zdCBU KiBkYXRhKSBXQVJOX1VOVVNFRF9SRVNVTFQgewotCSAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci0tLS0KLSBtZWRpYS9ncHUvdmFh cGkvdmFhcGlfd3JhcHBlci5oIHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21lZGlhL2dwdS92YWFwaS92YWFw aV93cmFwcGVyLmggYi9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5oCi1pbmRleCBmZDFm ZDgyLi5kZWVkYTFmIDEwMDY0NAotLS0tIG1lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmgK LSsrKyBtZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5oCi1AQCAtMzE4LDggKzMxOCw4IEBA IGNsYXNzIE1FRElBX0dQVV9FWFBPUlQgVmFhcGlXcmFwcGVyCi0gICAvLyBDb252ZW5pZW50IHRl bXBsYXRpemVkIHZlcnNpb24gb2YgU3VibWl0QnVmZmVyKCkgd2hlcmUgfHNpemV8IGlzIGRlZHVj ZWQgdG8KLSAgIC8vIGJlIHRoZSBzaXplIG9mIHRoZSB0eXBlIG9mIHwqZGF0YXwuCi0gICB0ZW1w bGF0ZSA8dHlwZW5hbWUgVD4KLS0gIGJvb2wgU3VibWl0QnVmZmVyKFZBQnVmZmVyVHlwZSB2YV9i dWZmZXJfdHlwZSwKLS0gICAgICAgICAgICAgICAgICAgIGNvbnN0IFQqIGRhdGEpIFdBUk5fVU5V U0VEX1JFU1VMVCB7Ci0rICBib29sIFdBUk5fVU5VU0VEX1JFU1VMVCBTdWJtaXRCdWZmZXIoVkFC dWZmZXJUeXBlIHZhX2J1ZmZlcl90eXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IFQqIGRhdGEpIHsKLSAgICAgcmV0dXJuIFN1Ym1pdEJ1ZmZlcih2YV9i dWZmZXJfdHlwZSwgc2l6ZW9mKFQpLCBkYXRhKTsKLSAgIH0KLSAgIC8vIEJhdGNoLXZlcnNpb24g b2YgU3VibWl0QnVmZmVyKCksIHdoZXJlIHRoZSBsb2NrIGZvciBhY2Nlc3NpbmcgbGlidmEgaXMK LS0tIAotMi4yNi4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJv bWl1bS04OS1Db21wb3NpdG9yRnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2ggYi9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNr LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMzFhZDdmZWM0 OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04 OS1Db21wb3NpdG9yRnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAor LS0tIG5ldC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1aWMvY29yZS9xdWljX3BhdGhfdmFsaWRh dG9yLmNjLm9yaWcJMjAyMS0wMy0wMiAxODo0ODowNi4wMDAwMDAwMDAgKzAxMDAKKysrKyBuZXQv dGhpcmRfcGFydHkvcXVpY2hlL3NyYy9xdWljL2NvcmUvcXVpY19wYXRoX3ZhbGlkYXRvci5jYwky MDIxLTAzLTAzIDEzOjE3OjU2LjYyNDI4MTQ3NSArMDEwMAorQEAgLTY4LDcgKzY4LDcgQEAKKyB2 b2lkIFF1aWNQYXRoVmFsaWRhdG9yOjpTdGFydFBhdGhWYWxpZGF0aW9uKAorICAgICBzdGQ6OnVu aXF1ZV9wdHI8UXVpY1BhdGhWYWxpZGF0aW9uQ29udGV4dD4gY29udGV4dCwKKyAgICAgc3RkOjp1 bmlxdWVfcHRyPFJlc3VsdERlbGVnYXRlPiByZXN1bHRfZGVsZWdhdGUpIHsKKy0gIERDSEVDS19O RShudWxscHRyLCBjb250ZXh0KTsKKysgIERDSEVDSyhjb250ZXh0KTsKKyAgIFFVSUNfRExPRyhJ TkZPKSA8PCAiU3RhcnQgdmFsaWRhdGluZyBwYXRoICIgPDwgKmNvbnRleHQKKyAgICAgICAgICAg ICAgICAgICA8PCAiIHZpYSB3cml0ZXI6ICIgPDwgY29udGV4dC0+V3JpdGVyVG9Vc2UoKTsKKyAg IGlmIChwYXRoX2NvbnRleHRfICE9IG51bGxwdHIpIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9saWJjX21hbGxvYy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9saWJjX21hbGxvYy5wYXRjaAppbmRleCBlZGExMWVjODY2My4uZjhkOGQ2NmRhMTggMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9saWJjX21hbGxvYy5wYXRjaAorKysgYi9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGliY19tYWxsb2MucGF0Y2gKQEAgLTEsMjYgKzEsMTEg QEAKLS0tLSBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjLm9yaWcJMjAxNy0wOS0xNSAwODo0 MTo0My4wMDAwMDAwMDAgKzAwMDAKLSsrKyBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCTIw MTctMDktMTUgMDg6NDQ6MzkuODA0OTk1NDY5ICswMDAwCi1AQCAtMjEsNiArMjEsMTIgQEAKLSAj aW5jbHVkZSAidGhpcmRfcGFydHkvdGNtYWxsb2MvY2hyb21pdW0vc3JjL2dwZXJmdG9vbHMvdGNt YWxsb2MuaCIKLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChMSUJDX0dMSUJDKQotK2V4dGVybiAi QyIgewotK2V4dGVybiB2b2lkICpfX2xpYmNfbWFsbG9jKHNpemVfdCBzaXplKTsKLSt9Ci0rI2Vu ZGlmCi0rCi0gbmFtZXNwYWNlIGJhc2UgewotIAotIHNpemVfdCBnX29vbV9zaXplID0gMFU7Ci0t LS0gYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmlnCTIwMjAtMDgtMzAgMTQ6MTg6MzUu NDAxMTMyNTkzIC0wNDAwCi0rKysgYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYwkyMDIwLTA4 LTMwIDE0OjE5OjA4LjAzMDE5OTE4OSAtMDQwMAotQEAgLTE0MSw3ICsxNDEsNyBAQAorLS0tIGJh c2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2Mub3JpZwkyMDIxLTAzLTAyIDE4OjQ0OjU4LjAwMDAw MDAwMCArMDEwMAorKysrIGJhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2MJMjAyMS0wMy0wMyAx MjowNTo1Ny45NTIyOTY5ODQgKzAxMDAKK0BAIC0xNTEsNyArMTUxLDcgQEAKICAgICAgKCFkZWZp bmVkKExJQkNfR0xJQkMpICYmICFCVUlMREZMQUcoVVNFX1RDTUFMTE9DKSkKICAgICpyZXN1bHQg PSBtYWxsb2Moc2l6ZSk7CiAgI2VsaWYgZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhQlVJTERGTEFH KFVTRV9UQ01BTExPQykKIC0gICpyZXN1bHQgPSBfX2xpYmNfbWFsbG9jKHNpemUpOwotKyAgKnJl c3VsdCA9IDo6X19saWJjX21hbGxvYyhzaXplKTsKKysgICpyZXN1bHQgPSBtYWxsb2Moc2l6ZSk7 CiAgI2VsaWYgQlVJTERGTEFHKFVTRV9UQ01BTExPQykKICAgICpyZXN1bHQgPSB0Y19tYWxsb2Nf c2tpcF9uZXdfaGFuZGxlcihzaXplKTsKICAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9sbHZtLXJlbW92ZS11bnN1cHBvcnRlZC1jb21waWxlci13YXJuaW5ncy5w YXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9sbHZtLXJlbW92ZS11bnN1cHBvcnRlZC1j b21waWxlci13YXJuaW5ncy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAx NmIwNjUyMTIuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9sbHZt LXJlbW92ZS11bnN1cHBvcnRlZC1jb21waWxlci13YXJuaW5ncy5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDI2ICswLDAgQEAKLS0tLSBidWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24ub3Jp ZwkyMDIxLTAxLTIwIDA5OjAxOjQ0LjM2MjExNDMxMSAtMDUwMAotKysrIGJ1aWxkL2NvbmZpZy9j b21waWxlci9CVUlMRC5nbgkyMDIxLTAxLTIwIDA5OjAzOjQxLjg4MDIzMjI0OCAtMDUwMAotQEAg LTE1MzQsOSArMTUzNCw2IEBACi0gCi0gICAgICAgICAgICMgVE9ETyhodHRwczovL2NyYnVnLmNv bS8xMDI4MTEwKTogRXZhbHVhdGUgYW5kIHBvc3NpYmxlIGVuYWJsZS4KLSAgICAgICAgICAgIi1X bm8tZGVwcmVjYXRlZC1jb3B5IiwKLS0KLS0gICAgICAgICAgIyBUT0RPKGh0dHBzOi8vY3JidWcu Y29tLzEwNTAyODEpOiBDbGVhbiB1cCwgZW5hYmxlLgotLSAgICAgICAgICAiLVduby1ub24tYy10 eXBlZGVmLWZvci1saW5rYWdlIiwKLSAgICAgICAgIF0KLSAKLSAgICAgICAgIGNmbGFnc19jICs9 IFsKLUBAIC0xNTQ4LDEzICsxNTQ1LDYgQEAKLSAgICAgICAgICAgIyBUT0RPKGh0dHBzOi8vY3Ji dWcuY29tLzExNDM3MDApOiBDbGVhbiB1cCBhbmQgcmUtZW5hYmxlLgotICAgICAgICAgICBjZmxh Z3Nfb2JqYyA9IFsgIi1Xbm8tZ251LWZvbGRpbmctY29uc3RhbnQiIF0KLSAgICAgICAgIH0KLS0K LS0gICAgICAgIGlmIChlbmFibGVfd21heF90b2tlbnMpIHsKLS0gICAgICAgICAgY2ZsYWdzICs9 IFsgIi1XbWF4LXRva2VucyIgXQotLSAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgIyBUT0RP KGh0dHBzOi8vY3JidWcuY29tLzEwNDk1NjkpOiBSZW1vdmUgYWZ0ZXIgQ2xhbmcgODdiMjM1ZGIu Ci0tICAgICAgICAgIGNmbGFncyArPSBbICItV25vLW1heC10b2tlbnMiIF0KLS0gICAgICAgIH0K LSAgICAgICB9Ci0gICAgIH0KLSAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wtdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1l ZHdhaXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzYThlYTMyYzljLi4w MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC12OC1tb25vdG9u aWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICsw LDAgQEAKLVVzZSBtb25vdG9uaWMgY2xvY2sgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQgd2l0 aCBtdXNsIHRvby4KLQotZGlmZiAtLWdpdCBhL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRpdGlv bi12YXJpYWJsZS5jYyBiL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRpdGlvbi12YXJpYWJsZS5j YwotaW5kZXggNWVhNzA4My4uYzEzMDI3ZSAxMDA2NDQKLS0tLSAuL3Y4L3NyYy9iYXNlL3BsYXRm b3JtL2NvbmRpdGlvbi12YXJpYWJsZS5jYwotKysrIC4vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29u ZGl0aW9uLXZhcmlhYmxlLmNjCi1AQCAtMTYsNyArMTYsNyBAQCBuYW1lc3BhY2UgYmFzZSB7Ci0g Ci0gQ29uZGl0aW9uVmFyaWFibGU6OkNvbmRpdGlvblZhcmlhYmxlKCkgewotICNpZiAoVjhfT1Nf RlJFRUJTRCB8fCBWOF9PU19ORVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8fCBcCi0tICAgICAoVjhf T1NfTElOVVggJiYgVjhfTElCQ19HTElCQykpCi0rICAgICBWOF9PU19MSU5VWCkKLSAgIC8vIE9u IEZyZWUvTmV0L09wZW5CU0QgYW5kIExpbnV4IHdpdGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUg dGltZQotICAgLy8gc291cmNlIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRo ZSBtb25vdG9uaWMgY2xvY2suCi0gICBwdGhyZWFkX2NvbmRhdHRyX3QgYXR0cjsKLUBAIC05Miw3 ICs5Miw3IEBAIGJvb2wgQ29uZGl0aW9uVmFyaWFibGU6OldhaXRGb3IoTXV0ZXgqIG11dGV4LCBj b25zdCBUaW1lRGVsdGEmIHJlbF90aW1lKSB7Ci0gICAgICAgJm5hdGl2ZV9oYW5kbGVfLCAmbXV0 ZXgtPm5hdGl2ZV9oYW5kbGUoKSwgJnRzKTsKLSAjZWxzZQotICNpZiAoVjhfT1NfRlJFRUJTRCB8 fCBWOF9PU19ORVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8fCBcCi0tICAgICAoVjhfT1NfTElOVVgg JiYgVjhfTElCQ19HTElCQykpCi0rICAgICBWOF9PU19MSU5VWCkKLSAgIC8vIE9uIEZyZWUvTmV0 L09wZW5CU0QgYW5kIExpbnV4IHdpdGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGltZQotICAg Ly8gc291cmNlIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBtb25vdG9u aWMgY2xvY2suCi0gICByZXN1bHQgPSBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnRz KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1leGVjaW5mby5wYXRj aCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1leGVjaW5mby5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMzg2OTk3ZThlZDEuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9uby1leGVjaW5mby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDcyICswLDAgQEAKLS0tLSBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjLm9yaWcJMjAx OS0wNS0xNCAxNDo0OTo0NC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBiYXNlL2RlYnVnL3N0YWNrX3Ry YWNlX3Bvc2l4LmNjCTIwMTktMDctMDIgMTA6NDM6NDMuNDkwMDQ1MDEzIC0wNDAwCi1AQCAtMjcs NyArMjcsNyBAQAotICNpZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQotICNpbmNsdWRlIDxjeHhh YmkuaD4KLSAjZW5kaWYKLS0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJ WCkKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0gI2luY2x1ZGUg PGV4ZWNpbmZvLmg+Ci0gI2VuZGlmCi0gCi1AQCAtODYsNyArODYsNyBAQAotICAgLy8gTm90ZTog Y29kZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIE5PVCBhc3luYy1zaWduYWwgc2FmZSAoc3RkOjpzdHJp bmcgdXNlcwotICAgLy8gbWFsbG9jIGludGVybmFsbHkpLgotIAotLSNpZiAhZGVmaW5lZChfX1VD TElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRl ZmluZWQoX0FJWCkKLSAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgc2VhcmNoX2Zyb20gPSAwOwot ICAgd2hpbGUgKHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6ZSgpKSB7Ci0gICAgIC8vIExvb2sgZm9y IHRoZSBzdGFydCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBmcm9tIHNlYXJjaF9mcm9tLgotQEAgLTEy MSw3ICsxMjEsNyBAQAotICAgICAgIHNlYXJjaF9mcm9tID0gbWFuZ2xlZF9zdGFydCArIDI7Ci0g ICAgIH0KLSAgIH0KLS0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVk KF9BSVgpCi0rI2VuZGlmICAvLyBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK LSB9Ci0gI2VuZGlmICAvLyAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQotIAotQEAgLTEzMyw3ICsx MzMsNyBAQAotICAgdmlydHVhbCB+QmFja3RyYWNlT3V0cHV0SGFuZGxlcigpID0gZGVmYXVsdDsK LSB9OwotIAotLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotKyNp ZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSB2b2lkIE91dHB1dFBvaW50 ZXIodm9pZCogcG9pbnRlciwgQmFja3RyYWNlT3V0cHV0SGFuZGxlciogaGFuZGxlcikgewotICAg Ly8gVGhpcyBzaG91bGQgYmUgbW9yZSB0aGFuIGVub3VnaCB0byBzdG9yZSBhIDY0LWJpdCBudW1i ZXIgaW4gaGV4OgotICAgLy8gMTYgaGV4IGRpZ2l0cyArIDEgZm9yIG51bGwtdGVybWluYXRvci4K LUBAIC0yMTYsNyArMjE2LDcgQEAKLSAgIH0KLSAjZW5kaWYgIC8vIGRlZmluZWQoVVNFX1NZTUJP TElaRSkKLSB9Ci0tI2VuZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQotKyNlbmRpZiAgLy8gZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0g Ci0gdm9pZCBQcmludFRvU3RkZXJyKGNvbnN0IGNoYXIqIG91dHB1dCkgewotICAgLy8gTk9URTog VGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9j ZXNzCi1AQCAtODEyLDcgKzgxMiw3IEBACi0gICAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBh c3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKLSAgIC8vIHN0YWNrIGR1 bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJl LgotIAotLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSAgIC8vIFRob3VnaCB0aGUgYmFj a3RyYWNlIEFQSSBtYW4gcGFnZSBkb2VzIG5vdCBsaXN0IGFueSBwb3NzaWJsZSBuZWdhdGl2ZQot ICAgLy8gcmV0dXJuIHZhbHVlcywgd2UgdGFrZSBubyBjaGFuY2UuCi0gICByZXR1cm4gYmFzZTo6 c2F0dXJhdGVkX2Nhc3Q8c2l6ZV90PihiYWNrdHJhY2UodHJhY2UsIGNvdW50KSk7Ci1AQCAtODI1 LDEzICs4MjUsMTMgQEAKLSAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwg c2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKLSAvLyBzdGFjayBkdW1waW5nIHNpZ25hbCBo YW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KLSAKLS0jaWYgIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSsjaWYgZGVmaW5lZChfX0dMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCi0gICBQcmludEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFu ZGxlcjsKLSAgIFByb2Nlc3NCYWNrdHJhY2UodHJhY2VfLCBjb3VudF8sIHByZWZpeF9zdHJpbmcs ICZoYW5kbGVyKTsKLSAjZW5kaWYKLSB9Ci0gCi0tI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlY KQotIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KHN0ZDo6b3N0cmVh bSogb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciogcHJlZml4X3N0cmluZykgY29uc3QgewotICAgU3RyZWFtQmFja3RyYWNlT3V0cHV0SGFu ZGxlciBoYW5kbGVyKG9zKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9u by1nZXRjb250ZXh0LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWdldGNvbnRl eHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyYTQ5ODczNGM5Li4wMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0Y29udGV4dC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2Mu b3JpZwkyMDE1LTEyLTA2IDA5OjU5OjU1LjU1NDUzNjY0NiArMDEwMAotKysrIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu ZGxlci5jYwkyMDE1LTEyLTA2IDEwOjAxOjE2LjgxODIzODAzNSArMDEwMAotQEAgLTQ3Nyw3ICs0 NzcsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2lnbmFsRGVsCi0gICBzaWdp bmZvLnNpX2NvZGUgPSBTSV9VU0VSOwotICAgc2lnaW5mby5zaV9waWQgPSBnZXRwaWQoKTsKLSAg IHVjb250ZXh0X3QgY29udGV4dDsKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pCi0gICBnZXRjb250 ZXh0KCZjb250ZXh0KTsKLSsjZW5kaWYKLSAgIHJldHVybiBIYW5kbGVTaWduYWwoc2lnLCAmc2ln aW5mbywgJmNvbnRleHQpOwotIH0KLSAKLUBAIC02NDcsOSArNjQ5LDE0IEBAIGJvb2wgRXhjZXB0 aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAgIHN5c19wcmN0bChQUl9TRVRfRFVNUEFC TEUsIDEsIDAsIDAsIDApOwotIAotICAgQ3Jhc2hDb250ZXh0IGNvbnRleHQ7Ci0rCi0rI2lmIGRl ZmluZWQoX19HTElCQ19fKQotICAgaW50IGdldGNvbnRleHRfcmVzdWx0ID0gZ2V0Y29udGV4dCgm Y29udGV4dC5jb250ZXh0KTsKLSAgIGlmIChnZXRjb250ZXh0X3Jlc3VsdCkKLSAgICAgcmV0dXJu IGZhbHNlOwotKyNlbHNlCi0rICByZXR1cm4gZmFsc2U7Ci0rI2VuZGlmCi0gCi0gI2lmIGRlZmlu ZWQoX19pMzg2X18pCi0gICAvLyBJbiBDUFVGaWxsRnJvbVVDb250ZXh0IGluIG1pbmlkdW1wd3Jp dGVyLmNjIHRoZSBzdGFjayBwb2ludGVyIGlzIHJldHJpZXZlZApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL25vLXN0ZC10aW1lLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL25vLXN0ZC10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi43ZjM1YzIyZjA4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9uby1zdGQtdGltZS5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gdWkvYWNjZXNz aWJpbGl0eS9heF90cmVlX3NlcmlhbGl6ZXIuaC5vcmlnCTIwMjEtMDMtMDIgMTg6NDY6MDAuMDAw MDAwMDAwICswMTAwCisrKysgdWkvYWNjZXNzaWJpbGl0eS9heF90cmVlX3NlcmlhbGl6ZXIuaAky MDIxLTAzLTAzIDE0OjAzOjQzLjkyNjE2MDMzMyArMDEwMAorQEAgLTc0Niw3ICs3NDYsNyBAQAor ICNlbmRpZiAgLy8gZGVmaW5lZChBWF9GQUlMX0ZBU1RfQlVJTEQpCisgICAgICAgICBzdGF0aWMg Ym9vbCBoYXNfc2VudF9kdXBlX2lkX2VyciA9IGZhbHNlOworICAgICAgICAgaWYgKCFoYXNfc2Vu dF9kdXBlX2lkX2VycikgeworLSAgICAgICAgICBzdGQ6OnNyYW5kKHN0ZDo6dGltZShudWxscHRy KSk7ICAvLyB1c2UgY3VycmVudCB0aW1lIGFzIHNlZWQuCisrICAgICAgICAgIHN0ZDo6c3JhbmQo dGltZShudWxscHRyKSk7ICAvLyB1c2UgY3VycmVudCB0aW1lIGFzIHNlZWQuCisgICAgICAgICAg IGlmIChzdGQ6OnJhbmQoKSAlIDUwID09IDApIHsgICAgIC8vIFJvdWdobHkgMiUgb2YgdGhlIHRp bWUuCisgICAgICAgICAgICAgYmFzZTo6ZGVidWc6OkR1bXBXaXRob3V0Q3Jhc2hpbmcoKTsKKyAg ICAgICAgICAgICBoYXNfc2VudF9kdXBlX2lkX2VyciA9IHRydWU7ICAvLyBPbmx5IHNlbmQgb25j ZS4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zYW5kYm94LW1lbWJhcnJp ZXIucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJveC1tZW1iYXJyaWVyLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzFhOWY2YTVlOS4uMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NhbmRib3gtbWVtYmFycmllci5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS0tLSBzYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0xMDYzLDQgKzEwNjMsOCBAQAot ICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMjc5Ci0gI2VuZGlmCi0gCi0rI2lmICFkZWZpbmVk KF9fTlJfbWVtYmFycmllcikKLSsjZGVmaW5lIF9fTlJfbWVtYmFycmllciAyODMKLSsjZW5kaWYK LSsKLSAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfQVJNNjRfTElOVVhf U1lTQ0FMTFNfSF8KLQotLS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4 X3N5c2NhbGxzLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9z eXNjYWxscy5oCi1AQCAtMTM4NSw2ICsxMzg1LDEwIEBACi0gI2RlZmluZSBfX05SX21lbWZkX2Ny ZWF0ZSAoX19OUl9TWVNDQUxMX0JBU0UrMzg1KQotICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChf X05SX21lbWJhcnJpZXIpCi0rI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9fTlJfU1lTQ0FMTF9C QVNFKzM4OSkKLSsjZW5kaWYKLSsKLSAvLyBBUk0gcHJpdmF0ZSBzeXNjYWxscy4KLSAjaWYgIWRl ZmluZWQoX19BUk1fTlJfQkFTRSkKLSAjZGVmaW5lIF9fQVJNX05SX0JBU0UgKF9fTlJfU1lTQ0FM TF9CQVNFICsgMHhGMDAwMCkKLQotLS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2 XzMyX2xpbnV4X3N5c2NhbGxzLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4 Nl8zMl9saW51eF9zeXNjYWxscy5oCi1AQCAtMTQyMiw1ICsxNDIyLDkgQEAKLSAjZGVmaW5lIF9f TlJfbWVtZmRfY3JlYXRlIDM1NgotICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21lbWJh cnJpZXIpCi0rI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMzc1Ci0rI2VuZGlmCi0rCi0gI2VuZGlm ICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1g4Nl8zMl9MSU5VWF9TWVNDQUxMU19I XwotIAotLS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4X3N5c2Nh bGxzLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNj YWxscy5oCi1AQCAtMTI5MCw1ICsxMjkwLDkgQEAKLSAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRl IDMxOQotICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCi0rI2RlZmlu ZSBfX05SX21lbWJhcnJpZXIgMzI0Ci0rI2VuZGlmCi0rCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJ TlVYX1NZU1RFTV9IRUFERVJTX1g4Nl82NF9MSU5VWF9TWVNDQUxMU19IXwotIAotLS0tIHNhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLSsrKyBzYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1AQCAtMzcwLDYgKzM3 MCw3IEBACi0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9leGl0OgotICAgICBj YXNlIF9fTlJfZXhpdF9ncm91cDoKLSsgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6Ci0gICAgIGNh c2UgX19OUl93YWl0NDoKLSAgICAgY2FzZSBfX05SX3dhaXRpZDoKLSAjaWYgZGVmaW5lZChfX2kz ODZfXykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1z dXBwb3J0LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBv cnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwNTc1NWMyMTI1Li4wMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9y dC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM2NTYgKzAsMCBAQAotY29tbWl0IGU3OTQ0YzE2 MmNhMTNiMmMzMGIxODBjMDZmOTE3ZjQ1NjQzYjhjY2EKLUF1dGhvcjogcTY2IDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KLURhdGU6ICAgVHVlIEF1ZyA0IDE5OjU3OjQ4IDIwMjAgKzAyMDAKLQotICAg IHBwYzY0bGUgc3VwcG9ydAotCi1kaWZmIC0tZ2l0IGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNo YWlucy5weSBidWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLWluZGV4IDI4NmE5MmEy Ny4uZWMzNmE4NWQzIDEwMDc1NQotLS0tIGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5w eQotKysrIGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQotQEAgLTEzLDYgKzEzLDEw IEBAIGltcG9ydCBzeXMKLSAKLSAKLSBkZWYgTWFpbihhcmdzKToKLSsgICMgSWYgYGRpc2FibGVf bmFjbD0xYCBpcyBpbiBHWVBfREVGSU5FUywgZXhpdAotKyAgaWYgJ2Rpc2FibGVfbmFjbD0xJyBp biBvcy5lbnZpcm9uLmdldCgnR1lQX0RFRklORVMnLCAnJyk6Ci0rICAgIHJldHVybiAwCi0rCi0g ICBzY3JpcHRfZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykp Ci0gICBzcmNfZGlyID0gb3MucGF0aC5kaXJuYW1lKHNjcmlwdF9kaXIpCi0gICBuYWNsX2RpciA9 IG9zLnBhdGguam9pbihzcmNfZGlyLCAnbmF0aXZlX2NsaWVudCcpCi1kaWZmIC0tZ2l0IGNocm9t ZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24gY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5n bgotaW5kZXggYjEwMWIwY2IyLi45ZmQ1YTc2MTcgMTAwNjQ0Ci0tLS0gY2hyb21lL2luc3RhbGxl ci9saW51eC9CVUlMRC5nbgotKysrIGNocm9tZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KLUBA IC05Miw4ICs5Miw2IEBAIHBhY2thZ2luZ19maWxlcyA9IHBhY2thZ2luZ19maWxlc19iaW5hcmll cyArIFsKLSAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL3hkZy1taW1lIiwKLSAg ICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL3hkZy1zZXR0aW5ncyIsCi0gICAgICAg ICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9sb2NhbGVzL2VuLVVTLnBhayIsCi0tICAgICAg ICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL21hbmlmZXN0Lmpzb24iLAot LSAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9wcmVsb2FkZWRf ZGF0YS5wYiIsCi0gICAgICAgICAgICAgICAgICAgXQotIAotIGFjdGlvbl9mb3JlYWNoKCJjYWxj dWxhdGVfZGViX2RlcGVuZGVuY2llcyIpIHsKLUBAIC0zMjksNyArMzI3LDYgQEAgZ3JvdXAoImlu c3RhbGxlcl9kZXBzIikgewotICAgICAiOnRoZW1lX2ZpbGVzIiwKLSAgICAgIi8vY2hyb21lIiwK LSAgICAgIi8vY2hyb21lOnBhY2tlZF9yZXNvdXJjZXMiLAotLSAgICAiLy9jaHJvbWUvYnJvd3Nl ci9yZXNvdXJjZXMvbWVkaWEvbWVpX3ByZWxvYWQ6Y29tcG9uZW50IiwKLSAgICAgIi8vc2FuZGJv eC9saW51eDpjaHJvbWVfc2FuZGJveCIsCi0gICAgICIvL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL2hhbmRsZXI6Y3Jhc2hwYWRfaGFuZGxlciIsCi0gICBdCi1kaWZmIC0tZ2l0IHNhbmRi b3gvZmVhdHVyZXMuZ25pIHNhbmRib3gvZmVhdHVyZXMuZ25pCi1pbmRleCAwOTI4MGQzNWYuLjQy NTE0MTU3ZiAxMDA2NDQKLS0tLSBzYW5kYm94L2ZlYXR1cmVzLmduaQotKysrIHNhbmRib3gvZmVh dHVyZXMuZ25pCi1AQCAtMTEsNiArMTEsNyBAQCBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL25hY2wv Y29uZmlnLmduaSIpCi0gdXNlX3NlY2NvbXBfYnBmID0gKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQp ICYmCi0gICAgICAgICAgICAgICAgICAgKGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRf Y3B1ID09ICJ4NjQiIHx8Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJhcm0i IHx8IGN1cnJlbnRfY3B1ID09ICJhcm02NCIgfHwKLS0gICAgICAgICAgICAgICAgICAgY3VycmVu dF9jcHUgPT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIikKLSsgICAgICAg ICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1p cHM2NGVsIiB8fAotKyAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAicHBjNjQiKQot IAotIHVzZV9zZWNjb21wX2JwZiA9IHVzZV9zZWNjb21wX2JwZiB8fCBpc19uYWNsX25vbnNmaQot ZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L0JVSUxELmduIHNhbmRib3gvbGludXgvQlVJTEQuZ24K LWluZGV4IGMyNzM1MWY5YS4uOTE0MWUxMjM5IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvQlVJ TEQuZ24KLSsrKyBzYW5kYm94L2xpbnV4L0JVSUxELmduCi1AQCAtNDA3LDYgKzQwNyw4IEBAIGNv bXBvbmVudCgic2FuZGJveF9zZXJ2aWNlcyIpIHsKLSAKLSBzb3VyY2Vfc2V0KCJzYW5kYm94X3Nl cnZpY2VzX2hlYWRlcnMiKSB7Ci0gICBzb3VyY2VzID0gWwotKyAgICAic3lzdGVtX2hlYWRlcnMv cHBjNjRfbGludXhfc3lzY2FsbHMuaCIsCi0rICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51 eF91Y29udGV4dC5oIiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxz LmgiLAotICAgICAic3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgiLAotICAgICAi c3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiLAotZGlmZiAtLWdpdCBzYW5kYm94 L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaCBzYW5kYm94L2xpbnV4L2JwZl9k c2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAotaW5kZXggMzEzNTExZjIyLi4wY2EzYTMyNmYgMTAw NjQ0Ci0tLS0gc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKLSsr KyBzYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAotQEAgLTU2LDYg KzU2LDEzIEBACi0gI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgX19OUl9zeXNjYWxscwotICNk ZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCi0gCi0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKwotKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+Ci0rI2RlZmluZSBNSU5f U1lTQ0FMTCAwdQotKyNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIDM4NnUKLSsjZGVmaW5lIE1B WF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAotKwotICNlbHNlCi0gI2Vycm9yICJVbnN1cHBv cnRlZCBhcmNoaXRlY3R1cmUiCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvYnBm X2RzbC9zZWNjb21wX21hY3Jvcy5oIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jv cy5oCi1pbmRleCAxYTQwN2I5NTIuLmE2YWVjNTQ0ZSAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4 L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotKysrIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNj b21wX21hY3Jvcy5oCi1AQCAtMTYsNiArMTYsOSBAQAotICNpZiBkZWZpbmVkKF9fbWlwc19fKQot IC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlvbgotICNpbmNs dWRlIDxzdGRkZWYuaD4KLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rLy8gTWFudWFs bHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAotK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdy ZWdfdDsKLSAjZW5kaWYKLSAjZW5kaWYKLSAKLUBAIC0zNDYsNiArMzQ5LDUxIEBAIHN0cnVjdCBy ZWdzX3N0cnVjdCB7Ci0gI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLnJl Z3NbM10KLSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChfcmVncykucmVnc1s0XQot ICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5yZWdzWzVdCi0rCi0rI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0r dHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsKLSsKLSsjaWZkZWYgQVJDSF9DUFVf TElUVExFX0VORElBTgotKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjRMRQot KyNlbHNlCi0rI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9QUEM2NAotKyNlbmRpZgot KwotKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKChfY3R4KS0+dWNfbWNvbnRleHQu cmVncy0+Z3ByW19yZWddKQotKwotKyNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09N UF9SRUcoX2N0eCwgMykKLSsjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JF RyhfY3R4LCAwKQotKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0 LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCAzKQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA0KQot KyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA1KQotKyNkZWZp bmUgU0VDQ09NUF9QQVJNNChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA2KQotKyNkZWZpbmUgU0VD Q09NUF9QQVJNNShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA3KQotKyNkZWZpbmUgU0VDQ09NUF9Q QVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4KQotKwotKyNkZWZpbmUgU0VDQ09NUF9OUl9J RFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgbnIpKQotKyNkZWZpbmUgU0VD Q09NUF9BUkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmNoKSkK LSsjZGVmaW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hf c2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDQpCi0rI2RlZmluZSBTRUNDT01Q X0lQX0xTQl9JRFggXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5z dHJ1Y3Rpb25fcG9pbnRlcikgKyAwKQotKyNkZWZpbmUgU0VDQ09NUF9BUkdfTVNCX0lEWChucikg XAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5y KSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0FSR19MU0JfSURYKG5yKSBcCi0rICAob2Zmc2V0b2Yo c3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgMCkKLSsKLSsjZGVm aW5lIFNFQ0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAoX3JlZ3MpLmdwclszXQotKyNkZWZpbmUgU0VD Q09NUF9QVF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3MpLmdwclswXQotKyNkZWZpbmUgU0VDQ09NUF9Q VF9JUChfcmVncykgKF9yZWdzKS5uaXAKLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEoX3JlZ3Mp IChfcmVncykuZ3ByWzNdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk0yKF9yZWdzKSAoX3JlZ3Mp Lmdwcls0XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMyhfcmVncykgKF9yZWdzKS5ncHJbNV0K LSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVncykuZ3ByWzZdCi0rI2RlZmlu ZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLmdwcls3XQotKyNkZWZpbmUgU0VDQ09N UF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5ncHJbOF0KLSsKLSAjZWxzZQotICNlcnJvciBVbnN1 cHBvcnRlZCB0YXJnZXQgcGxhdGZvcm0KLSAKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi1pbmRleCBhNmQyYzBkZmIuLjM3ZmRjMTc5 YSAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVf cG9saWN5LmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5l X3BvbGljeS5jYwotQEAgLTg4LDcgKzg4LDggQEAgYm9vbCBJc0Jhc2VsaW5lUG9saWN5V2F0Y2hl ZChpbnQgc3lzbm8pIHsKLSAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcmN0bChzeXNubykgfHwK LSAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcm9jZXNzR3JvdXBPclNlc3Npb24oc3lzbm8pIHx8 Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0r ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgICAgICBTeXNjYWxsU2V0czo6SXNTb2Nr ZXRDYWxsKHN5c25vKSB8fAotICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYXJtX18pCi1AQCAtMjEw LDcgKzIxMSw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVk X2Vycm5vLAotICAgfQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRf XykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgaWYgKHN5c25vID09IF9fTlJfbW1hcCkKLSAgICAgcmV0dXJuIFJlc3RyaWN0TW1hcEZsYWdz KCk7Ci0gI2VuZGlmCi1AQCAtMjI4LDcgKzIyOSw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNj YWxsSW1wbChpbnQgZnNfZGVuaWVkX2Vycm5vLAotICAgICByZXR1cm4gUmVzdHJpY3RQcmN0bCgp OwotIAotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoc3lzbm8g PT0gX19OUl9zb2NrZXRwYWlyKSB7Ci0gICAgIC8vIE9ubHkgYWxsb3cgQUZfVU5JWCwgUEZfVU5J WC4gQ3Jhc2ggaWYgYW55dGhpbmcgZWxzZSBpcyBzZWVuLgotICAgICBzdGF0aWNfYXNzZXJ0KEFG X1VOSVggPT0gUEZfVU5JWCwKLUBAIC0yNjgsNyArMjY5LDggQEAgUmVzdWx0RXhwciBFdmFsdWF0 ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgIGlmIChTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5c25vKSkKLSAg ICAgcmV0dXJuIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKLSAjZW5kaWYKLWRpZmYgLS1n aXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0 dGVzdC5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5 X3VuaXR0ZXN0LmNjCi1pbmRleCBmYzM2MTg3YzkuLjFhZmZjOTE4OSAxMDA2NDQKLS0tLSBzYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNj Ci0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91 bml0dGVzdC5jYwotQEAgLTI5MSw4ICsyOTEsMTAgQEAgVEVTVF9CQVNFTElORV9TSUdTWVMoX19O Ul90aW1lcl9jcmVhdGUpCi0gI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotIFRFU1RfQkFTRUxJ TkVfU0lHU1lTKF9fTlJfZXZlbnRmZCkKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX2lub3Rp ZnlfaW5pdCkKLSsjaWYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBURVNUX0JBU0VMSU5FX1NJ R1NZUyhfX05SX3ZzZXJ2ZXIpCi0gI2VuZGlmCi0rI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoTElC Q19HTElCQykgJiYgIWRlZmluZWQoT1NfQ0hST01FT1MpCi0gQlBGX1RFU1RfQyhCYXNlbGluZVBv bGljeSwgRnV0ZXhFSU5WQUwsIEJhc2VsaW5lUG9saWN5KSB7Ci1kaWZmIC0tZ2l0IHNhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25z LmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNf cmVzdHJpY3Rpb25zLmNjCi1pbmRleCBmNTE5MTVlZGMuLmNhMmY0ZjEwNiAxMDA2NDQKLS0tLSBz YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3Ry aWN0aW9ucy5jYwotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCi1AQCAtNDAsNyArNDAsOCBAQAotICNpbmNsdWRl IDxzeXMvcHRyYWNlLmg+Ci0gI2lmIChkZWZpbmVkKE9TX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNf Q0hST01FT1NfTEFDUk9TKSkgJiYgXAotICAgICAhZGVmaW5lZChfX2FybV9fKSAmJiAhZGVmaW5l ZChfX2FhcmNoNjRfXykgJiYgICAgICAgICAgIFwKLS0gICAgIWRlZmluZWQoUFRSQUNFX0dFVF9U SFJFQURfQVJFQSkKLSsgICAgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkgJiYJCQkg ICAgXAotKyAgICAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIEFsc28gaW5jbHVkZSBhc20v cHRyYWNlLWFiaS5oIHNpbmNlIHB0cmFjZS5oIGluIG9sZGVyIGxpYmMgKGZvciBpbnN0YW5jZQot IC8vIHRoZSBvbmUgaW4gVWJ1bnR1IDE2LjA0IExUUykgaXMgbWlzc2luZyBQVFJBQ0VfR0VUX1RI UkVBRF9BUkVBLgotIC8vIGFzbS9wdHJhY2UtYWJpLmggZG9lc24ndCBleGlzdCBvbiBhcm0zMiBh bmQgUFRSQUNFX0dFVF9USFJFQURfQVJFQSBpc24ndAotQEAgLTQ5LDYgKzUwLDExIEBACi0gI2Vu ZGlmCi0gI2VuZGlmICAvLyAhT1NfTkFDTF9OT05TRkkKLSAKLSsvLyBPbiBQUEM2NCwgVENHRVRT IGlzIGRlZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNvIHdlIG11c3QgaW5jbHVk ZSB0ZXJtaW9zLmgKLSsjaWZkZWYgX19wb3dlcnBjNjRfXwotKyNpbmNsdWRlIDx0ZXJtaW9zLmg+ Ci0rI2VuZGlmCi0rCi0gI2lmIGRlZmluZWQoT1NfQU5EUk9JRCkKLSAKLSAjaWYgIWRlZmluZWQo Rl9EVVBGRF9DTE9FWEVDKQotQEAgLTk4LDYgKzEwNCwxNSBAQAotICNlbmRpZgotIH0KLSAKLStp bmxpbmUgYm9vbCBJc0FyY2hpdGVjdHVyZVBQQzY0KCkgewotKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICByZXR1cm4gdHJ1ZTsKLSsjZWxzZQotKyAgcmV0dXJuIGZhbHNlOwotKyNlbmRp ZgotK30KLSsKLSsKLSAvLyBVYnVudHUncyB2ZXJzaW9uIG9mIGdsaWJjIGhhcyBhIHJhY2UgY29u ZGl0aW9uIGluIHNlbV9wb3N0IHRoYXQgY2FuIGNhdXNlCi0gLy8gaXQgdG8gY2FsbCBmdXRleCgy KSB3aXRoIGJvZ3VzIG9wIGFyZ3VtZW50cy4gVG8gd29ya2Fyb3VuZCB0aGlzLCB3ZSBuZWVkCi0g Ly8gdG8gYWxsb3cgdGhvc2UgZnV0ZXgoMikgY2FsbHMgdG8gZmFpbCB3aXRoIEVJTlZBTCwgaW5z dGVhZCBvZiBjcmFzaGluZyB0aGUKLUBAIC0yMzksNiArMjU0LDggQEAKLSAgIHVpbnQ2NF90IGtP TGFyZ2VGaWxlRmxhZyA9IE9fTEFSR0VGSUxFOwotICAgaWYgKElzQXJjaGl0ZWN0dXJlWDg2XzY0 KCkgfHwgSXNBcmNoaXRlY3R1cmVJMzg2KCkgfHwgSXNBcmNoaXRlY3R1cmVNaXBzKCkpCi0gICAg IGtPTGFyZ2VGaWxlRmxhZyA9IDAxMDAwMDA7Ci0rICBlbHNlIGlmIChJc0FyY2hpdGVjdHVyZVBQ QzY0KCkpCi0rICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAyMDAwMDA7Ci0gCi0gICBjb25zdCBBcmc8 aW50PiBjbWQoMSk7Ci0gICBjb25zdCBBcmc8bG9uZz4gbG9uZ19hcmcoMik7Ci1AQCAtMjUzLDE0 ICsyNzAsMjMgQEAKLSAgICAgICAgICAgICAgIEZfU0VUTEtXLAotICAgICAgICAgICAgICAgRl9H RVRMSywKLSAgICAgICAgICAgICAgIEZfRFVQRkQsCi0tICAgICAgICAgICAgICBGX0RVUEZEX0NM T0VYRUMpLAotLSAgICAgICAgICAgICBBbGxvdygpKQotKyAgICAgICAgICAgICAgRl9EVVBGRF9D TE9FWEVDCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsvLyBPbiBQUEM2NCwgRl9TRVRM SywgRl9HRVRMSywgRl9TRVRMS1cgYXJlIGRlZmluZWQgYXMgdGhlIDY0LWJpdCB2YXJpYW50cwot Ky8vIGJ1dCBnbGliYyB3aWxsIHNvbWV0aW1lcyBzdGlsbCB1c2UgdGhlIDMyLWJpdCB2ZXJzaW9u cy4gQWxsb3cgYm90aC4KLSsgICAgICAgICAgICAgICwKLSsgICAgICAgICAgICAgIDUsIC8qIEZf R0VUTEsgKDMyKSAqLwotKyAgICAgICAgICAgICAgNiwgLyogRl9TRVRMSyAoMzIpICovCi0rICAg ICAgICAgICAgICA3ICAvKiBGX1NFVExLVyAoMzIpICovCi0rI2VuZGlmCi0rICAgICAgICAgICAg ICApLAotKyAgICAgICAgICAgIEFsbG93KCkpCi0gICAgICAgLkNhc2UoRl9TRVRGTCwKLSAgICAg ICAgICAgICBJZigobG9uZ19hcmcgJiB+a0FsbG93ZWRNYXNrKSA9PSAwLCBBbGxvdygpKS5FbHNl KENyYXNoU0lHU1lTKCkpKQotICAgICAgIC5EZWZhdWx0KENyYXNoU0lHU1lTKCkpOwotIH0KLSAK LS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotIFJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpIHsKLSAgIC8vIFVuZm9y dHVuYXRlbHksIHdlIGFyZSB1bmFibGUgdG8gcmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRlciB0 bwotICAgLy8gc29ja2V0cGFpcigyKS4gV2hpbHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQsIGl0 J3Mgbm90ZXdvcnRoeSB0aGF0IHZlcnkKLUBAIC00MTMsNyArNDM5LDcgQEAKLSAjZW5kaWYKLSAg IHJldHVybiBTd2l0Y2gocmVxdWVzdCkKLSAgICAgICAuQ0FTRVMoKAotLSNpZiAhZGVmaW5lZChf X2FhcmNoNjRfXykKLSsjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gICAgICAgICAgICAgICAgICBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX0dFVEZQ UkVHUywgUFRSQUNFX0dFVF9USFJFQURfQVJFQSwKLSAgICAgICAgICAgICAgICAgIFBUUkFDRV9H RVRSRUdTRVQsCi0gI2VuZGlmCi0KLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaCBzYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCi1p bmRleCBiYTQyODlmMDUuLjlhNGQ1YWIyZCAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCi0rKysgc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmlj dGlvbnMuaAotQEAgLTQ4LDcgKzQ4LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0 RXhwciBSZXN0cmljdE1wcm90ZWN0RmxhZ3MoKTsKLSAvLyBPX05PTkJMT0NLIHwgT19TWU5DIHwg T19MQVJHRUZJTEUgfCBPX0NMT0VYRUMgfCBPX05PQVRJTUUuCi0gU0FOREJPWF9FWFBPUlQgYnBm X2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKTsKLSAKLS0jaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIFJlc3Ry aWN0IHNvY2tldGNhbGwoMikgdG8gb25seSBhbGxvdyBzb2NrZXRwYWlyKDIpLCBzZW5kKDIpLCBy ZWN2KDIpLAotIC8vIHNlbmR0bygyKSwgcmVjdmZyb20oMiksIHNodXRkb3duKDIpLCBzZW5kbXNn KDIpIGFuZCByZWN2bXNnKDIpLgotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIg UmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpOwotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLWluZGV4IGQzNjkzZmQ3OC4uZDQ5MmNmOTRiIDEw MDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMu Y2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNj Ci1AQCAtMjksNyArMjksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGlu dCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0dGltZW9m ZGF5OgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IFwK LS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX3RpbWU6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNDEs MTIgKzQyLDE0IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl9jbG9ja19uYW5vc2xlZXA6ICAvLyBQYXJhbWV0ZXJzIGZpbHRl cmVkIGJ5IFJlc3RyaWN0Q2xvY2tJRCgpLgotICAgICBjYXNlIF9fTlJfY2xvY2tfc2V0dGltZTog ICAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK LSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfZnRpbWU6ICAvLyBPYnNvbGV0ZS4KLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NldHRpbWVv ZmRheTogIC8vIFByaXZpbGVnZWQuCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3N0aW1lOgotICNlbmRpZgotICAgICBkZWZhdWx0OgotQEAgLTExMiw3ICsxMTUsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gICAgIGNhc2Ug X19OUl9mYWNjZXNzYXQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAgICAgY2FzZSBf X05SX2ZjaG1vZGF0OgotICAgICBjYXNlIF9fTlJfZmNob3duYXQ6ICAvLyBTaG91bGQgYmUgY2Fs bGVkIGNob3duYXQgPwotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJj aDY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbmV3ZnN0YXRhdDogIC8v IGZzdGF0YXQoKS4gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VsaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0gICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotQEAgLTEzMSw3ICsxMzQs NyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gICAgIGNh c2UgX19OUl9tZW1mZF9jcmVhdGU6Ci0gICAgIGNhc2UgX19OUl9ta2RpcmF0OgotICAgICBjYXNl IF9fTlJfbWtub2RhdDoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfb2xkbHN0YXQ6 Ci0gICAgIGNhc2UgX19OUl9vbGRzdGF0OgotICNlbmRpZgotQEAgLTE0NSw3ICsxNDgsOCBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAg IGNhc2UgX19OUl9zdGF0ZnM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zdGF0 ZnM2NDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N5bWxpbmthdDoKLUBAIC0xNTUsNyArMTU5 LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICAgICBj YXNlIF9fTlJfdHJ1bmNhdGU2NDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3VubGlua2F0Ogot LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl91dGltZToKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3V0aW1lbnNhdDog IC8vIE5ldy4KLUBAIC0xNzQsNyArMTc5LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2Vk RmlsZVN5c3RlbUFjY2Vzc1ZpYUZkKGludCBzeXNubykgewotICNlbmRpZgotICAgICAgIHJldHVy biB0cnVlOwotIC8vIFRPRE8oamxuKTogdGhlc2Ugc2hvdWxkIGJlIGRlbmllZCBncmFjZWZ1bGx5 IGFzIHdlbGwgKG1vdmVkIGJlbG93KS4KLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfZmFkdmlzZTY0OiAgLy8gRVBF Uk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pCi1A QCAtMTg3LDExICsxOTMsMTIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3Rl bUFjY2Vzc1ZpYUZkKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfZmxvY2s6ICAgICAgLy8g RVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gICAgIGNhc2UgX19OUl9mc3RhdGZzOiAgICAvLyBH aXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB3aG9sZSBmaWxlc3lzdGVtLgotICNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2ZzdGF0ZnM2 NDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2ZzeW5jOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQg ZXJybm8uCi0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX29sZGZzdGF0OgotICNlbmRp ZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pIHx8IFwKLUBAIC0xOTksNiArMjA2LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBbGxvd2VkRmlsZVN5c3RlbUFjY2Vzc1ZpYUZkKGludCBzeXNubykgewotICAgICBjYXNlIF9f TlJfc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VsaWYg ZGVmaW5lZChfX2FybV9fKQotICAgICBjYXNlIF9fTlJfYXJtX3N5bmNfZmlsZV9yYW5nZTogIC8v IEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgICAgY2FzZSBfX05SX3N5bmNfZmlsZV9yYW5nZTI6IC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVy cm5vLgotICNlbmRpZgotICAgICBkZWZhdWx0OgotICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC0y MjQsNyArMjMzLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRGaWxlU3lzdGVtQWNjZXNz VmlhRmQoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9nZXRkZW50czY0OiAg Ly8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwK LS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX3JlYWRkaXI6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAt MjY1LDcgKzI3NSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2V0U2ltcGxlSWQoaW50IHN5c25v KSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNQcm9jZXNzUHJpdmlsZWdlQ2hhbmdlKGludCBzeXNu bykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfY2Fwc2V0OgotLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfaW9wZXJtOiAgLy8gSW50ZWwgcHJpdmlsZWdlLgotICAgICBjYXNlIF9f TlJfaW9wbDogICAgLy8gSW50ZWwgcHJpdmlsZWdlLgotICNlbmRpZgotQEAgLTMxNiw3ICszMjYs OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluZyhpbnQgc3lzbm8p IHsKLSAgICAgY2FzZSBfX05SX3J0X3NpZ3JldHVybjoKLSAgICAgY2FzZSBfX05SX3J0X3NpZ3Rp bWVkd2FpdDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9zaWdhY3Rpb246Ci0gICAgIGNhc2UgX19OUl9zaWdwcm9jbWFzazoKLSAg ICAgY2FzZSBfX05SX3NpZ3JldHVybjoKLUBAIC0zMzIsNyArMzQzLDggQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkU2lnbmFsSGFuZGxpbmcoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAg IGNhc2UgX19OUl9zaWduYWxmZDQ6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2lncGVuZGluZzoKLSAgICAgY2FzZSBfX05SX3Np Z3N1c3BlbmQ6Ci0gI2VuZGlmCi1AQCAtMzU2LDcgKzM2OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWxsb3dlZE9wZXJhdGlvbk9uRmQoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2Ug X19OUl9kdXAzOgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl9zaHV0ZG93bjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC0zOTAs NyArNDAyLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0T3JEZWF0 aChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6Ci0gICAgIGNhc2UgX19O Ul93YWl0NDoKLSAgICAgY2FzZSBfX05SX3dhaXRpZDoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykK LSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfd2FpdHBpZDoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC00MDcs NyArNDE5LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0T3JEZWF0 aChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoK LSAgICAgY2FzZSBfX05SX3Vuc2hhcmU6Ci0tI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVm aW5lZChfX2FhcmNoNjRfXykKLSsjaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl92Zm9y azoKLSAjZW5kaWYKLSAgICAgZGVmYXVsdDoKLUBAIC00NTYsNyArNDY4LDcgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gICAgICAg cmV0dXJuIHRydWU7Ci0gICAgIGRlZmF1bHQ6Ci0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQo X19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NvY2tldHBhaXI6ICAvLyBXZSB3aWxsIHdhbnQgdG8g aW5zcGVjdCBpdHMgYXJndW1lbnQuCi0gI2VuZGlmCi0gICAgICAgcmV0dXJuIGZhbHNlOwotQEAg LTQ2Niw3ICs0NzgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNv Y2tldChpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5 U29ja2V0KGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICNpZiBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAot LSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9hY2NlcHQ6Ci0gICAgIGNhc2Ug X19OUl9hY2NlcHQ0OgotICAgICBjYXNlIF9fTlJfYmluZDoKLUBAIC00ODEsNyArNDkzLDggQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsK LSB9Ci0gCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5 c3RlbSBjYWxsIGZvciBzb2NrZXRzLgotIGJvb2wgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChp bnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLUBAIC00OTUsNyArNTA4LDggQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKGludCBzeXNubykgewotIH0KLSAjZW5kaWYKLSAK LS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19taXBzX18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBi b29sIFN5c2NhbGxTZXRzOjpJc05ldHdvcmtTb2NrZXRJbmZvcm1hdGlvbihpbnQgc3lzbm8pIHsK LSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dldHBlZXJuYW1lOgotQEAgLTUy MCw3ICs1MzQsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBY2Nl c3MoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9taW5jb3JlOgotICAgICBjYXNlIF9fTlJf bWxvY2thbGw6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl9tbWFwOgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IFwKLUBAIC01NTAsNyArNTY0LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNB bGxvd2VkR2VuZXJhbElvKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBj YXNlIF9fTlJfbHNlZWs6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1f XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfX2xsc2VlazoKLSAjZW5kaWYKLSAjaWYgIWRlZmluZWQoX19h YXJjaDY0X18pCi1AQCAtNTYyLDI2ICs1NzcsMjggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkR2VuZXJhbElvKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcmVhZHY6Ci0gICAgIGNh c2UgX19OUl9wcmVhZDY0OgotICNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0r ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05S X3JlY3Y6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18p Ci0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX3JlY3Zmcm9tOiAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCi0gICAgIGNh c2UgX19OUl9yZWN2bXNnOiAgIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgotICNlbmRpZgotLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfc2VsZWN0OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfX25ld3NlbGVjdDoKLSAjZW5kaWYK LSAjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zZW5kOgotICNlbmRpZgot ICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zZW5k bXNnOiAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KLSAgICAgY2FzZSBfX05SX3NlbmR0 bzogICAvLyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgotICNlbmRpZgotQEAgLTYzOCw3ICs2 NTUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlcihpbnQgc3lz bm8pIHsKLSAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgY2FzZSBfX05SX2dldHByaW9yaXR5Ogot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX25pY2U6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXRwcmlvcml0eToKLUBAIC02NTAs NyArNjY4LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIoaW50 IHN5c25vKSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNBZG1pbk9wZXJhdGlvbihpbnQgc3lzbm8p IHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9iZGZsdXNoOgotICNlbmRpZgotICAgICBjYXNl IF9fTlJfa2V4ZWNfbG9hZDoKLUBAIC02NjYsNyArNjg1LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBZG1pbk9wZXJhdGlvbihpbnQgc3lzbm8pIHsKLSAKLSBib29sIFN5c2NhbGxTZXRzOjpJc0tl cm5lbE1vZHVsZShpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLS0jaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQot KyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfY3JlYXRlX21vZHVsZToKLSAgICAgY2FzZSBfX05SX2dldF9rZXJuZWxfc3ltczogIC8vIFNo b3VsZCBFTk9TWVMuCi0gICAgIGNhc2UgX19OUl9xdWVyeV9tb2R1bGU6Ci1AQCAtNjk5LDcgKzcx OSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRnNDb250cm9sKGludCBzeXNubykgewotICAgICBj YXNlIF9fTlJfc3dhcG9mZjoKLSAgICAgY2FzZSBfX05SX3N3YXBvbjoKLSAjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdW1vdW50OgotICNlbmRpZgotICAgICBjYXNlIF9f TlJfdW1vdW50MjoKLUBAIC03MTUsNyArNzM2LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNOdW1h KGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0Y3B1OgotICAgICBjYXNlIF9fTlJfbWJp bmQ6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9taWdyYXRlX3BhZ2VzOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfbW92ZV9wYWdlczoKLUBA IC03NDQsMTQgKzc2NSwxNSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dsb2JhbFByb2Nlc3NFbnZp cm9ubWVudChpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05S X2FjY3Q6ICAvLyBQcml2aWxlZ2VkLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2Fh cmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfZ2V0cmxpbWl0OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf dWdldHJsaW1pdDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfdWxpbWl0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZ2V0cnVzYWdlOgotQEAgLTc4 NSw3ICs4MDcsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dsb2JhbFN5c3RlbVN0YXR1cyhpbnQg c3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N5c2luZm86Ci0gICAgIGNhc2UgX19O Ul91bmFtZToKLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfb2xkdW5hbWU6Ci0gICAg IGNhc2UgX19OUl9vbGRvbGR1bmFtZToKLSAjZW5kaWYKLUBAIC04NDcsOCArODY5LDE2IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVlNlbWFwaG9yZXMoaW50IHN5c25vKSB7Ci0gfQotICNl bmRpZgotIAotKy8qIHNoaXR0eSBoYWNrIGFyb3VuZCBWb2lkJ3MgNC4xOSBrZXJuZWwgaGVhZGVy cyBtaXNzaW5nIHRob3NlIG51bWJlcnMgKi8KLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAm JiAhZGVmaW5lZChfX05SX3NobWdldCkKLSsjZGVmaW5lIF9fTlJfc2htZ2V0IDM5NQotKyNkZWZp bmUgX19OUl9zaG1jdGwgMzk2Ci0rI2RlZmluZSBfX05SX3NobWF0IDM5NwotKyNkZWZpbmUgX19O Ul9zaG1kdCAzOTgKLSsjZW5kaWYKLSsKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsg ICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCi0g ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0 X0JJVFMpKQotIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5 cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2hh cmVkTWVtb3J5KGludCBzeXNubykgewotQEAgLTg4MCw3ICs5MTAsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc1N5c3RlbVZNZXNzYWdlUXVldWUoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gCi0gI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBCaWcgc3lzdGVtIFYgbXVsdGlwbGV4aW5nIHN5c3Rl bSBjYWxsLgotIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVklwYyhpbnQgc3lzbm8pIHsKLSAg IHN3aXRjaCAoc3lzbm8pIHsKLUBAIC05MDAsNyArOTMxLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBbnlTeXN0ZW1WKGludCBzeXNubykgewotICAgcmV0dXJuIElzU3lzdGVtVk1lc3NhZ2VRdWV1 ZShzeXNubykgfHwgSXNTeXN0ZW1WU2VtYXBob3JlcyhzeXNubykgfHwKLSAgICAgICAgICBJc1N5 c3RlbVZTaGFyZWRNZW1vcnkoc3lzbm8pOwotICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IFwK LS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg IHJldHVybiBJc1N5c3RlbVZJcGMoc3lzbm8pOwotICNlbmRpZgotIH0KLUBAIC05NTMsNyArOTg1 LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGYU5vdGlmeShpbnQgc3lzbm8pIHsKLSBib29sIFN5 c2NhbGxTZXRzOjpJc1RpbWVyKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAg ICBjYXNlIF9fTlJfZ2V0aXRpbWVyOgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9hbGFybToKLSAjZW5kaWYKLSAg ICAgY2FzZSBfX05SX3NldGl0aW1lcjoKLUBAIC0xMDEyLDE4ICsxMDQ1LDIyIEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzTWlzYyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N5bmNmczoKLSAg ICAgY2FzZSBfX05SX3ZoYW5ndXA6Ci0gLy8gVGhlIHN5c3RlbSBjYWxscyBiZWxvdyBhcmUgbm90 IGltcGxlbWVudGVkLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9hZnNfc3lzY2FsbDoKLSAjZW5kaWYKLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYnJlYWs6Ci0gI2VuZGlmCi0tI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21p cHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX2dldHBtc2c6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwK LS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX2d0dHk6Ci0gICAgIGNhc2UgX19OUl9pZGxlOgotICAgICBjYXNlIF9fTlJf bG9jazoKLUBAIC0xMDMxLDIwICsxMDY4LDIyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhp bnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3Byb2Y6Ci0gICAgIGNhc2UgX19OUl9wcm9maWw6 Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3B1dHBtc2c6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQo X194ODZfNjRfXykKLSAgICAgY2FzZSBfX05SX3NlY3VyaXR5OgotICNlbmRpZgotICNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zdHR5OgotICNlbmRpZgotLSNpZiBkZWZp bmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdHV4Y2FsbDoKLSAjZW5kaWYKLS0jaWYgIWRlZmlu ZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdnNlcnZlcjoKLSAjZW5kaWYKLSAgICAgICBy ZXR1cm4gdHJ1ZTsKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfc2V0cy5oIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3NldHMuaAotaW5kZXggOTIzNTMzZWM5Li40MTFmNzJhY2QgMTAwNjQ0Ci0tLS0gc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi0rKysgc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi1AQCAtNDMsMTMgKzQzLDE0IEBA IGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKLSAgIHN0YXRpYyBib29sIElzRGVu aWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKTsKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KLSAg IHN0YXRpYyBib29sIElzU29ja2V0Q2FsbChpbnQgc3lzbm8pOwotICNlbmRpZgotIAotICNpZiBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBzdGF0aWMgYm9vbCBJc05ldHdvcmtT b2NrZXRJbmZvcm1hdGlvbihpbnQgc3lzbm8pOwotICNlbmRpZgotIAotQEAgLTc2LDcgKzc3LDcg QEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewotICAgc3RhdGljIGJvb2wgSXNT eXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pOwotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pIHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfNjRfQklUUykpCi0gICAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQg YXV0aG9yaXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgotICAgc3RhdGljIGJvb2wg SXNTeXN0ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNubyk7Ci1AQCAtODgsNyArODksOCBAQCBjbGFz cyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwu Ci0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZJcGMoaW50IHN5c25vKTsKLSAjZW5kaWYKLWRpZmYg LS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYvc3lzY2FsbC5jYwotaW5kZXggZTQ3ZTk4YmY1Li5kNTNhN2ZmNTYgMTAwNjQ0 Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi0rKysgc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1AQCAtMTgsNyArMTgsNyBAQCBuYW1lc3BhY2Ug c2FuZGJveCB7Ci0gbmFtZXNwYWNlIHsKLSAKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFN SUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg fHwgZGVmaW5lZCAoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotIC8vIE51bWJlciB0aGF0J3Mgbm90 IGN1cnJlbnRseSB1c2VkIGJ5IGFueSBMaW51eCBrZXJuZWwgQUJJcy4KLSBjb25zdCBpbnQga0lu dmFsaWRTeXNjYWxsTnVtYmVyID0gMHgzNTFkMzsKLSAjZWxzZQotQEAgLTMxMCwxMiArMzEwLDU2 IEBAIGFzbSgvLyBXZSBuZWVkIHRvIGJlIGFibGUgdG8gdGVsbCB0aGUga2VybmVsIGV4YWN0bHkg d2hlcmUgd2UgbWFkZSBhCi0gICAgIC8vIEVudGVyIHRoZSBrZXJuZWwKLSAgICAgInN2YyAwXG4i Ci0gICAgICIyOnJldFxuIgotKyAgICAiLmNmaV9lbmRwcm9jXG4iCi0rICAgICIuc2l6ZSBTeXNj YWxsQXNtLCAuLVN5c2NhbGxBc21cbiIKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r ICAgICIudGV4dFxuIgotKyAgICAiLmFsaWduIDRcbiIKLSsgICAgIi50eXBlIFN5c2NhbGxBc20g QGZ1bmN0aW9uXG4iCi0rICAgICJTeXNjYWxsQXNtOlxuIgotKyAgICAiLmNmaV9zdGFydHByb2Nc biIKLSsKLSsgICAgLy8gQ2hlY2sgaWYgcjMgaXMgbmVnYXRpdmUKLSsgICAgImNtcGRpIDMsIDBc biIKLSsgICAgImJndCAyZlxuIgotKwotKyAgICAvLyBMb2FkIGFkZHJlc3Mgb2YgM2YgaW50byBy MyBhbmQgcmV0dXJuCi0rICAgICJtZmxyIDEwXG4iCi0rICAgICJibCAxZlxuIgotKyAgICAiMTog bWZsciAzXG4iCi0rICAgICJtdGxyIDEwXG4iCi0rICAgICJhZGRpIDMsIDMsIDQqMTNcbiIKLSsg ICAgImJsclxuIgotKwotKyAgICAvLyBMb2FkIGFyZ3VtZW50cyBmcm9tIGFycmF5IGludG8gcjMt OAotKyAgICAvLyBzYXZlIHBhcmFtIDMgaW4gcjEwCi0rICAgICIyOlxuIgotKyAgICAibXIgMCwg M1xuIgotKyAgICAibGQgMywgMCg0KVxuIgotKyAgICAibGQgNSwgMTYoNClcbiIKLSsgICAgImxk IDYsIDI0KDQpXG4iCi0rICAgICJsZCA3LCAzMig0KVxuIgotKyAgICAibGQgOCwgNDAoNClcbiIK LSsgICAgImxkIDQsIDgoNClcbiIKLSsgICAgImxpIDksIDBcbiIKLSsKLSsgICAgLy8gRW50ZXIg a2VybmVsCi0rICAgICJzY1xuIgotKwotKyAgICAvLyBNYWdpYyByZXR1cm4gYWRkcmVzcwotKyAg ICAiMzpcbiIKLSsgICAgLy8gTGlrZSBNSVBTLCBwcGM2NCByZXR1cm4gdmFsdWVzIGFyZSBhbHdh eXMgcG9zaXRpdmUuCi0rICAgIC8vIENoZWNrIGZvciBlcnJvciBpbiBjcjAuU08gYW5kIG5lZ2F0 ZSB1cG9uIGVycm9yCi0rICAgICJiYyA0LCAzLCA0ZlxuIgotKyAgICAibmVnIDMsIDNcbiIKLSsg ICAgIjQ6IGJsclxuIgotKwotICAgICAiLmNmaV9lbmRwcm9jXG4iCi0gICAgICIuc2l6ZSBTeXNj YWxsQXNtLCAuLVN5c2NhbGxBc21cbiIKLSAjZW5kaWYKLSAgICAgKTsgIC8vIGFzbQotIAotLSNp ZiBkZWZpbmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotIGV4dGVybiAiQyIgewotIGludHB0cl90IFN5c2NhbGxBc20oaW50 cHRyX3QgbnIsIGNvbnN0IGludHB0cl90IGFyZ3NbNl0pOwotIH0KLUBAIC00MjksNiArNDczLDgg QEAgaW50cHRyX3QgU3lzY2FsbDo6Q2FsbChpbnQgbnIsCi0gICAgIHJldCA9IGlub3V0OwotICAg fQotIAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGludHB0cl90IHJldCA9IFN5 c2NhbGxBc20obnIsIGFyZ3MpOwotICNlbHNlCi0gI2Vycm9yICJVbmltcGxlbWVudGVkIGFyY2hp dGVjdHVyZSIKLSAjZW5kaWYKLUBAIC00NDUsOCArNDkxLDE4IEBAIHZvaWQgU3lzY2FsbDo6UHV0 VmFsdWVJblVjb250ZXh0KGludHB0cl90IHJldF92YWwsIHVjb250ZXh0X3QqIGN0eCkgewotICAg ICAvLyBuZWVkcyB0byBiZSBjaGFuZ2VkIGJhY2suCi0gICAgIHJldF92YWwgPSAtcmV0X3ZhbDsK LSAgICAgU0VDQ09NUF9QQVJNNChjdHgpID0gMTsKLS0gIH0gZWxzZQotKyAgfSBlbHNlIHsKLSAg ICAgU0VDQ09NUF9QQVJNNChjdHgpID0gMDsKLSsgIH0KLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKyAgLy8gU2FtZSBhcyBNSVBTLCBuZWVkIHRvIGludmVydCByZXQgYW5k IHNldCBlcnJvciByZWdpc3RlciAoY3IwLlNPKQotKyAgaWYgKHJldF92YWwgPD0gLTEgJiYgcmV0 X3ZhbCA+PSAtNDA5NSkgewotKyAgICByZXRfdmFsID0gLXJldF92YWw7Ci0rICAgIGN0eC0+dWNf bWNvbnRleHQucmVncy0+Y2NyIHw9ICgxIDw8IDI4KTsKLSsgIH0gZWxzZSB7Ci0rICAgIGN0eC0+ dWNfbWNvbnRleHQucmVncy0+Y2NyICY9IH4oMSA8PCAyOCk7Ci0rICB9Ci0gI2VuZGlmCi0gICBT RUNDT01QX1JFU1VMVChjdHgpID0gc3RhdGljX2Nhc3Q8Z3JlZ190PihyZXRfdmFsKTsKLSB9Ci1k aWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYyBzYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmL3RyYXAuY2MKLWluZGV4IDk4ODRiZThiYi4uOThlNDM3MWFhIDEwMDY0NAot LS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYwotKysrIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYvdHJhcC5jYwotQEAgLTIzMiw2ICsyMzIsMjAgQEAgdm9pZCBUcmFwOjpTaWdT eXMoaW50IG5yLCBMaW51eFNpZ0luZm8qIGluZm8sIHVjb250ZXh0X3QqIGN0eCkgewotICAgICAg IFNldElzSW5TaWdIYW5kbGVyKCk7Ci0gICAgIH0KLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29tZSBzeXNjYWxscyBzZWVtIHRvIGFjY2lk ZW50YWxseSBuZWdhdGUgdGhlIGZpcnN0Ci0rICAgIC8vIHBhcmFtZXRlciB3aGljaCBjYXVzZXMg Y2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywgbWFudWFsbHkKLSsgICAgLy8gbmVn YXRlIHRoZW0gYmFjay4KLSsgICAgLy8gVE9ETyhzaGF3bkBhbmFzdGFzLmlvKTogaW52ZXN0aWdh dGUgdGhpcyBpc3N1ZSBmdXJ0aGVyCi0rICAgIGF1dG8gbnIgPSBTRUNDT01QX1NZU0NBTEwoY3R4 KTsKLSsgICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8IG5yID09IF9fTlJfbWtkaXJhdCB8fCBu ciA9PSBfX05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05SX3JlYWRsaW5rYXQgfHwKLSsgICAgICAg IG5yID09IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19OUl9yZW5hbWVhdDIgfHwgbnIgPT0gX19O Ul9uZXdmc3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5rYXQpIHsKLSsgICAgICAgIGlmIChzdGF0 aWNfY2FzdDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkgPiAwKSB7Ci0rICAgICAgICAgICAgU0VD Q09NUF9QQVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEoY3R4KTsKLSsgICAgICAgIH0KLSsgICAg fQotKyNlbmRpZgotKwotICAgICAvLyBDb3B5IHRoZSBzZWNjb21wLXNwZWNpZmljIGRhdGEgaW50 byBhIGFyY2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4gVGhpcwotICAgICAvLyBpcyB3aGF0IHdl IGFyZSBzaG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tzIHRoYXQgdGhlIHN5c3RlbSBjYWxsCi0g ICAgIC8vIGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGggdGhlIHNhbmRib3guCi1kaWZmIC0tZ2l0 IHNhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2Mgc2FuZGJveC9saW51eC9zZXJ2 aWNlcy9jcmVkZW50aWFscy5jYwotaW5kZXggZDdiNWQ4YzQ0Li40YWRjNmQwZDQgMTAwNjQ0Ci0t LS0gc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwotKysrIHNhbmRib3gvbGlu dXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLUBAIC04MSw3ICs4MSw3IEBAIGJvb2wgQ2hyb290 VG9TYWZlRW1wdHlEaXIoKSB7Ci0gICBwaWRfdCBwaWQgPSAtMTsKLSAgIGFsaWduYXMoMTYpIGNo YXIgc3RhY2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9Y ODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBUaGUgc3RhY2sg Z3Jvd3MgZG93bndhcmQuCi0gICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVvZihzdGFj a19idWYpOwotICNlbHNlCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2Fs bF93cmFwcGVycy5jYyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MK LWluZGV4IGZjZmQyYWExMi4uZjZlYjMyZmI3IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2Vy dmljZXMvc3lzY2FsbF93cmFwcGVycy5jYwotKysrIHNhbmRib3gvbGludXgvc2VydmljZXMvc3lz Y2FsbF93cmFwcGVycy5jYwotQEAgLTU4LDcgKzU4LDcgQEAgbG9uZyBzeXNfY2xvbmUodW5zaWdu ZWQgbG9uZyBmbGFncywKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfNjQpCi0gICByZXR1cm4g c3lzY2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIGN0aWQsIHRscyk7 Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9YODYpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZB TUlMWSkgfHwgXAotLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotKyAgICBkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKLSAgIC8vIENPTkZJR19DTE9ORV9CQUNLV0FSRFMgZGVmaW5lZC4KLSAgIHJldHVybiBzeXNj YWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBjaGlsZF9zdGFjaywgcHRpZCwgdGxzLCBjdGlkKTsKLSAj ZW5kaWYKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJv Y2Vzcy5jYyBzYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCi1p bmRleCA4MzIxZDIzNzkuLjdlNWFkMWRlMyAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3N5c2Nh bGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCi0rKysgc2FuZGJveC9saW51eC9zeXNjYWxsX2Jy b2tlci9icm9rZXJfcHJvY2Vzcy5jYwotQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIEJyb2tlclBy b2Nlc3M6OklzU3lzY2FsbEFsbG93ZWQoaW50IHN5c25vKSBjb25zdCB7Ci0gI2lmIGRlZmluZWQo X19OUl9mc3RhdGF0KQotICAgICBjYXNlIF9fTlJfZnN0YXRhdDoKLSAjZW5kaWYKLS0jaWYgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuICFm YXN0X2NoZWNrX2luX2NsaWVudF8gfHwgYWxsb3dlZF9jb21tYW5kX3NldF8udGVzdChDT01NQU5E X1NUQVQpOwotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Nl Y2NvbXAuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAotaW5k ZXggYTYwZmUyYWQzLi45ZGNjZGI1MWQgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9saW51eF9zZWNjb21wLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3NlY2NvbXAuaAotQEAgLTI5LDYgKzI5LDkgQEAKLSAjaWZuZGVmIEVNX0FBUkNINjQK LSAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCi0gI2VuZGlmCi0rI2lmbmRlZiBFTV9QUEM2NAotKyNk ZWZpbmUgRU1fUFBDNjQgMjEKLSsjZW5kaWYKLSAKLSAjaWZuZGVmIF9fQVVESVRfQVJDSF82NEJJ VAotICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKLUBAIC01NCw2ICs1Nywx MiBAQAotICNpZm5kZWYgQVVESVRfQVJDSF9BQVJDSDY0Ci0gI2RlZmluZSBBVURJVF9BUkNIX0FB UkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUp Ci0gI2VuZGlmCi0rI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0Ci0rI2RlZmluZSBBVURJVF9BUkNI X1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCkKLSsjZW5kaWYKLSsjaWZuZGVm IEFVRElUX0FSQ0hfUFBDNjRMRQotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2 NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKLSsjZW5kaWYKLSAKLSAv LyBGb3IgcHJjdGwuaAotICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKLWRpZmYgLS1naXQgc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaCBzYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi1pbmRleCBmNWE3MzY3NjEuLjUxNWIyMWE1ZiAxMDA2 NDQKLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi0rKysg c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAotQEAgLTEzLDcgKzEz LDcgQEAKLSAvLyAobm90IHVuZGVmaW5lZCwgYnV0IGRlZmluZWQgZGlmZmVyZW50IHZhbHVlcyBh bmQgaW4gZGlmZmVyZW50IG1lbW9yeQotIC8vIGxheW91dHMpLiBTbywgZmlsbCB0aGUgZ2FwIGhl cmUuCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAKLSAjZGVmaW5lIExJ TlVYX1NJR0hVUCAxCi0gI2RlZmluZSBMSU5VWF9TSUdJTlQgMgotZGlmZiAtLWdpdCBzYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmggc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCi1pbmRleCAyYjc4YTBjYzMuLjBhNzBmNWVhNSAx MDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgK LSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0z NSw1ICszNSw5IEBACi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJt NjRfbGludXhfc3lzY2FsbHMuaCIKLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4 X3N5c2NhbGxzLmgiCi0rI2VuZGlmCi0rCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RF TV9IRUFERVJTX0xJTlVYX1NZU0NBTExTX0hfCi0gCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3Vjb250ZXh0LmgKLWluZGV4IDIyY2U3ODAyNy4uYTY5YjAyNGMyIDEwMDY0NAot LS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotKysrIHNh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotQEAgLTExLDYgKzEx LDggQEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhf dWNvbnRleHQuaCIKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKQotICNpbmNsdWRlICJzYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2kzODZfbGludXhfdWNvbnRleHQuaCIKLSsjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCIKLSAjZWxzZQotICNlcnJvciAiTm8gc3VwcG9ydCBm b3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gUE5hQ2wgaGVhZGVyIgotICNlbmRpZgotZGlmZiAtLWdp dCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmggc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCi1uZXcgZmls ZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5jY2FjZmZlMjIKLS0tLSAvZGV2L251bGwK LSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgK LUBAIC0wLDAgKzEsMTIgQEAKLSsvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9y cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KLSsKLSsjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURF UlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVN X0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsKLSsjaW5jbHVkZSA8YXNtL3VuaXN0 ZC5oPgotKwotKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5c2NhbGwgbnVt YmVycyBmb3IgUFBDNjQ/Ci0rCi0rI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFE RVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwMDAuLjA3NzI4ZTA4NwotLS0tIC9kZXYvbnVsbAotKysrIHNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaAotQEAgLTAsMCArMSwxMiBAQAot Ky8vIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLgotKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0 eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSsvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgot KwotKyNpZm5kZWYgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09O VEVYVF9IXwotKyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5V WF9VQ09OVEVYVF9IXwotKwotKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsKLSsvL1RPRE86 IGlzIGl0IG5lY2Vzc2FyeSB0byByZWRlZmluZSB1Y29udGV4dCBvbiBQUEM2ND8KLSsKLSsjZW5k aWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRf SF8KLWRpZmYgLS1naXQgc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBm X3JlbmRlcmVyX3BvbGljeV9saW51eC5jYyBzZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJv eC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi1pbmRleCBmYjg5YjMzNTYuLjFl OTg0NzMxZSAxMDA2NDQKLS0tLSBzYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9s aWN5X2xpbnV4LmNjCi0rKysgc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGlj eV9saW51eC5jYwotQEAgLTE1LDYgKzE1LDExIEBACi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCIKLSAjaW5jbHVkZSAic2VydmljZXMvc2Vy dmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvc2FuZGJveF9saW51eC5oIgotIAotKy8vIE9uIFBQ QzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlvcywgc28gd2Ug bXVzdCBpbmNsdWRlIHRlcm1pb3MuaAotKyNpZmRlZiBfX3Bvd2VycGM2NF9fCi0rI2luY2x1ZGUg PHRlcm1pb3MuaD4KLSsjZW5kaWYKLSsKLSAvLyBUT0RPKHZpZ25hdHRpKTogcmVwbGFjZSB0aGUg bG9jYWwgZGVmaW5pdGlvbnMgYmVsb3cgd2l0aCAjaW5jbHVkZQotIC8vIDxsaW51eC9kbWEtYnVm Lmg+IG9uY2Uga2VybmVsIHZlcnNpb24gNC42IGJlY29tZXMgd2lkZWx5IHVzZWQuCi0gI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21w aWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmggdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVy L3RyYW5zbGF0b3IvSW5mb1NpbmsuaAotaW5kZXggM2E4MDdlMWUuLjUyNTg2MTdhIDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgK LSsrKyB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5o Ci1AQCAtOTIsNyArOTIsMTYgQEAgY2xhc3MgVEluZm9TaW5rQmFzZQotICAgICAgICAgICAgIHN0 cmVhbS5wcmVjaXNpb24oOCk7Ci0gICAgICAgICAgICAgc3RyZWFtIDw8IGY7Ci0gICAgICAgICB9 Ci0tICAgICAgICBzaW5rLmFwcGVuZChzdHJlYW0uc3RyKCkpOwotKwotKyAgICAgICAgLy8gSGFj ayB0byB3b3JrIGFyb3VuZCBhIGJ1ZyB3aGVyZSBuZWdhdGl2ZSBmbG9hdGluZyBwb2ludCB2YWx1 ZXMKLSsgICAgICAgIC8vIGFyZSByZW5kZXJlZCBsaWtlICcuMC41JyBpbnN0ZWFkIG9mICctMC41 JwotKyAgICAgICAgc3RkOjpzdHJpbmcgcmVzKHN0cmVhbS5zdHIoKSk7Ci0rCi0rICAgICAgICBp ZiAoc2lnbmJpdChmKSkgeyAvLyB0ZXN0IGlmIGYgaXMgbmVnYXRpdmUKLSsgICAgICAgICAgICBy ZXNbMF0gPSAnLSc7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBzaW5rLmFwcGVuZChyZXMpOwot ICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICB9Ci0gICAgIC8vIFdyaXRlIGJvb2xlYW4gdmFs dWVzIGFzIHRoZWlyIG5hbWVzIGluc3RlYWQgb2YgaW50ZWdyYWwgdmFsdWUuCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaCB0aGlyZF9wYXJ0eS9h bmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKLWluZGV4IDQyOTY0Y2MxLi42NjA3ZGVlYiAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKLSsr KyB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKLUBAIC05LDYgKzks NyBAQAotICNpZm5kZWYgTElCQU5HTEVfQ09OU1RBTlRTX0hfCi0gI2RlZmluZSBMSUJBTkdMRV9D T05TVEFOVFNfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZSAiY29tbW9uL3Bs YXRmb3JtLmgiCi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9ib3Jpbmdzc2wvQlVJTEQuZ24gdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1pbmRl eCBiNDM1NDk5ZjQuLmFjOGE4NGI2ZCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv QlVJTEQuZ24KLSsrKyB0aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KLUBAIC0xMDEsNiAr MTAxLDEzIEBAIGlmIChpc193aW4gJiYgIWlzX21zYW4gJiYgY3VycmVudF9jcHUgIT0gImFybTY0 IikgewotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19h c21fY29uZmlnIiBdCi0gICAgICAgfQotKyAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJw cGM2NCIpIHsKLSsgICAgICBpZiAoaXNfbGludXgpIHsKLSsgICAgICAgICMgVE9ETzogcHBjNjQg KGJlKSBjaGVjawotKyAgICAgICAgc291cmNlcyArPSBjcnlwdG9fc291cmNlc19saW51eF9wcGM2 NGxlCi0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2Fz bV9jb25maWciIF0KLSsgICAgICB9Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgcHVibGljX2NvbmZp Z3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQotICAgICB9Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL0JVSUxELmduIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi1pbmRleCA1 NjE3ZGU4OC4uZGM4YmMxNzYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQu Z24KLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotQEAgLTU5OCw3ICs1OTgsNiBA QCBpZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotICAgICAgICJicmVha3BhZC9zcmMvY2xp ZW50L21pbmlkdW1wX2ZpbGVfd3JpdGVyLmgiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9u L2NvbnZlcnRfVVRGLmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9jb252ZXJ0X1VU Ri5oIiwKLS0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250 ZXh0LlMiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAu Y2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaCIs Ci0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmdXRpbHMuY2MiLAotQEAgLTYz Niw2ICs2MzUsMTQgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAKLSAgICAgbGli cyA9IFsgImRsIiBdCi0gCi0rICAgIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAg ICAgICBkZWZpbmVzID0gWyAiSEFWRV9HRVRDT05URVhUIiBdCi0rICAgIH0gZWxzZSB7Ci0rICAg ICAgICBzb3VyY2VzICs9IFsKLSsgICAgICAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51 eC9icmVha3BhZF9nZXRjb250ZXh0LlMiCi0rICAgICAgICBdCi0rICAgIH0KLSsKLSAgICAgaW5j bHVkZV9kaXJzID0gWwotICAgICAgICIuIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjIiwKLUBAIC02 ODYsNyArNjkzLDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAgICAgICAiYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3Vu aXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0X3V0aWxzLmNjIiwKLSAgICAgICAiYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvcHJvY19jcHVpbmZvX3JlYWRlcl91 bml0dGVzdC5jYyIsCi0tICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRf Z2V0Y29udGV4dF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGlu dXgvZWxmX2NvcmVfZHVtcF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21t b24vbGludXgvZmlsZV9pZF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21t b24vbGludXgvbGludXhfbGliY19zdXBwb3J0X3VuaXR0ZXN0LmNjIiwKLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vcmF3X2NvbnRleHRfY3B1LmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLWluZGV4 IDA3ZDkxNzFhLi45YWVkNGNiMyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUu aAotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCi1AQCAtNDQsNiArNDQsOCBAQCB0eXBl ZGVmIE1EUmF3Q29udGV4dEFSTSBSYXdDb250ZXh0Q1BVOwotIHR5cGVkZWYgTURSYXdDb250ZXh0 QVJNNjRfT2xkIFJhd0NvbnRleHRDUFU7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSB0eXBl ZGVmIE1EUmF3Q29udGV4dE1JUFMgUmF3Q29udGV4dENQVTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rdHlwZWRlZiBNRFJhd0NvbnRleHRQUEM2NCBSYXdDb250ZXh0Q1BVOwotICNl bHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRm b3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3RocmVhZF9pbmZvLmNjCi1pbmRleCBhYWUxZGMxMy4uMDNhZmVjN2EgMTAwNjQ0Ci0t LS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwot QEAgLTI3MCw3ICsyNzAsNDIgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdD b250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSBtY29udGV4 dC5mcGNfZWlyOwotICNlbmRpZgotIH0KLS0jZW5kaWYgIC8vIF9fbWlwc19fCi0rCi0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotK3VpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0 cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7Ci0rICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BU X05JUF07Ci0rfQotKwotK3ZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4 dENQVSogb3V0KSBjb25zdCB7Ci0rICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRf UFBDNjRfRlVMTDsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQ Ul9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT5ncHJbaV0gPSBtY29udGV4dC5ncF9yZWdzW2ld OwotKwotKyAgICBvdXQtPmxyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOwotKyAgICBvdXQt PnNycjAgPSBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rICAgIG91dC0+c3JyMSA9IG1jb250 ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKLSsgICAgb3V0LT5jciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRf Q0NSXTsKLSsgICAgb3V0LT54ZXIgPSBtY29udGV4dC5ncF9yZWdzW1BUX1hFUl07Ci0rICAgIG91 dC0+Y3RyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwotKyAgICAKLSsgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKLSsgICAg ICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSBtY29udGV4dC5mcF9yZWdzW2ldOwotKwot KyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsK LSsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09V TlQ7IGkrKykKLSsgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKLSsgICAg ICAgICAgICB7KCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzBdKSA8PCAzMikgCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVsxXSwgCi0rICAgICAgICAgICAg KCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzJdKSA8PCAzMikKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bM119OwotKwotKyAgICBvdXQtPnZyc2F2ZSA9IHZy ZWdzLnZyc2F2ZTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3Mu dnNjci52c2NyX3dvcmR9OwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4 RkZGRkZGRkY7IAotK30KLSsjZW5kaWYgIC8vIF9fcG93ZXJwYzY0X18KLSAKLSB2b2lkIFRocmVh ZEluZm86OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQqKiBncF9yZWdzLCBzaXplX3Qq IHNpemUpIHsKLSAgIGFzc2VydChncF9yZWdzIHx8IHNpemUpOwotQEAgLTI3OSw2ICszMTQsMTEg QEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3Bf cmVncywgc2l6ZV90KiBzaXplKSB7Ci0gICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3JlZ3M7Ci0g ICBpZiAoc2l6ZSkKLSAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3JlZ3MpOwotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChncF9yZWdzKQotKyAgICAqZ3BfcmVncyA9 IG1jb250ZXh0LmdwX3JlZ3M7Ci0rICBpZiAoc2l6ZSkKLSsgICAgKnNpemUgPSBzaXplb2YobWNv bnRleHQuZ3BfcmVncyk7Ci0gI2Vsc2UKLSAgIGlmIChncF9yZWdzKQotICAgICAqZ3BfcmVncyA9 ICZyZWdzOwotQEAgLTI5NCw2ICszMzQsMTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGlu Z1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAgICAgKmZw X3JlZ3MgPSAmbWNvbnRleHQuZnByZWdzOwotICAgaWYgKHNpemUpCi0gICAgICpzaXplID0gc2l6 ZW9mKG1jb250ZXh0LmZwcmVncyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAg aWYgKGZwX3JlZ3MpCi0rICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwX3JlZ3M7Ci0rICBpZiAo c2l6ZSkKLSsgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZnBfcmVncyk7Ci0gI2Vsc2UKLSAg IGlmIChmcF9yZWdzKQotICAgICAqZnBfcmVncyA9ICZmcHJlZ3M7Ci1AQCAtMzAyLDQgKzM0Nywx MyBAQCB2b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZw X3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICNlbmRpZgotIH0KLSAKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotK3ZvaWQgVGhyZWFkSW5mbzo6R2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2 X3JlZ3MsIHNpemVfdCogc2l6ZSkgewotKyAgICBpZiAodl9yZWdzKQotKyAgICAgICAgKnZfcmVn cyA9ICZ2cmVnczsKLSsgICAgaWYgKHNpemUpCi0rICAgICAgICAqc2l6ZSA9IHNpemVvZih2cmVn cyk7Ci0rfQotKyNlbmRpZgotKwotIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCi1p bmRleCBmYjIxNmZhNi4uNTkzYWFjODIgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8u aAotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKLUBAIC02OCw2ICs2OCwxMCBAQCBzdHJ1Y3Qg VGhyZWFkSW5mbyB7Ci0gICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3Vz ZXIuaD4KLSAgIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0IHJlZ3M7Ci0gICBzdHJ1Y3QgdXNlcl9m cHNpbWRfc3RydWN0IGZwcmVnczsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAv LyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+LgotKyAgbWNv bnRleHRfdCBtY29udGV4dDsKLSsgIHZycmVnc2V0X3QgdnJlZ3M7Ci0gI2VsaWYgZGVmaW5lZChf X21pcHNfXykKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlIGRlZmluZWQgaW4gPHN5cy91Y29udGV4 dC5oPi4KLSAgIG1jb250ZXh0X3QgbWNvbnRleHQ7Ci1AQCAtODQsNiArODgsMTEgQEAgc3RydWN0 IFRocmVhZEluZm8gewotIAotICAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBvZiBm bG9hdCBwb2ludCByZWdpc3RlciBhcmVhLgotICAgdm9pZCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0 ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpOwotKwotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIHRoZSB2ZWN0 b3IgcmVnaXN0ZXIgYXJlYS4gKFBQQzY0IG9ubHkpCi0rICB2b2lkIEdldFZlY3RvclJlZ2lzdGVy cyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpOwotKyNlbmRpZgotIH07Ci0gCi0gfSAgLy8g bmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1pbmRleCBlZTUxNWM0MS4uMTA5 MDQ3MGYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi0rKysgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdWNvbnRleHRfcmVhZGVyLmNjCi1AQCAtMjU0LDYgKzI1NCw0OCBAQCB2b2lkIFVDb250ZXh0 UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0 X3QgKnVjKSB7Ci0gICBvdXQtPmZsb2F0X3NhdmUuZmlyID0gdWMtPnVjX21jb250ZXh0LmZwY19l aXI7ICAvLyBVbnVzZWQuCi0gI2VuZGlmCi0gfQotKwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsKLSt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldFN0YWNrUG9pbnRlcihjb25z dCB1Y29udGV4dF90KiB1YykgewotKyAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3Nb TURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdOwotK30KLSsKLSt1aW50cHRyX3QgVUNvbnRleHRSZWFk ZXI6OkdldEluc3RydWN0aW9uUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgewotKyAgICBy ZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSt9Ci0rCi0rdm9pZCBVQ29u dGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29u dGV4dF90KiB1YywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2 cnJlZ3NldF90KiB2cmVncykgewotKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhU X1BQQzY0X0ZVTEw7Ci0rCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2 NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+Z3ByW2ldID0gdWMtPnVjX21jb250ZXh0 LmdwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+bHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9MTktdOyAgICAKLSsgICAgb3V0LT5zcnIwID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf TklQXTsKLSsgICAgb3V0LT5zcnIxID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXTsK LSsgICAgb3V0LT5jciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NDUl07Ci0rICAgIG91 dC0+eGVyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXTsKLSsgICAgb3V0LT5jdHIg PSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwotKyAgICAKLSsgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKLSsgICAg ICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tp XTsKLSsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gdWMtPnVjX21jb250ZXh0LmZwX3Jl Z3NbTkZQUkVHLTFdOwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVB UkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3Zy W2ldID0KLSsgICAgICAgICAgICB7KCgodWludDY0X3QpdnJlZ3MtPnZycmVnc1tpXVswXSkgPDwg MzIpIAotKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bMV0sIAot KyAgICAgICAgICAgICAoKCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzJdKSA8PCAzMikKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzNdfTsKLSsKLSsgICAg b3V0LT52cnNhdmUgPSB2cmVncy0+dnJzYXZlOwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVf dnNjciA9IHswLCB2cmVncy0+dnNjci52c2NyX3dvcmR9OwotKyAgICBvdXQtPnZlY3Rvcl9zYXZl LnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZGRkY7IAotK30KLSsKLSAjZW5kaWYKLSAKLSB9ICAvLyBu YW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3Jl YWRlci5oIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCi1pbmRleCA4ZTc0YThhNS4uN2NiNjY3 YTcgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKLSsrKyB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91 Y29udGV4dF9yZWFkZXIuaAotQEAgLTU1LDYgKzU1LDkgQEAgc3RydWN0IFVDb250ZXh0UmVhZGVy IHsKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAgc3RhdGljIHZvaWQgRmlsbENQVUNv bnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmcHNpbWRfY29udGV4dCogZnByZWdz KTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBzdGF0aWMgdm9pZCBGaWxsQ1BV Q29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpOwotICNlbHNl Ci0gICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0 IHVjb250ZXh0X3QgKnVjKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNj IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5jYwotaW5kZXggYzY1ZmVhYTEuLjVhN2FiNTBjIDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotQEAgLTQ2MSw5ICs0 NjEsMTYgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpIYW5kbGVTaWduYWwoaW50IC8qc2lnKi8s IHNpZ2luZm9fdCogaW5mbywgdm9pZCogdWMpIHsKLSAgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRl eHRfLmZsb2F0X3N0YXRlLCBmcF9wdHIsCi0gICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250 ZXh0Xy5mbG9hdF9zdGF0ZSkpOwotICAgfQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgIC8vIE9uIFBQQzY0LCB3ZSBtdXN0IGNvcHkgVlIgc3RhdGUKLSsgIHVjb250ZXh0X3QqIHVj X3B0ciA9ICh1Y29udGV4dF90Kil1YzsKLSsgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LnZfcmVn cykgewotKyAgICBtZW1jcHkoJmdfY3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlLCB1Y19wdHIt PnVjX21jb250ZXh0LnZfcmVncywKLSsgICAgICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRf LnZlY3Rvcl9zdGF0ZSkpOwotKyAgfQotICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCi0gICAvLyBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFC SSBvbiBBUk0gTGludXguCi0tICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMg YWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3QKLSsgIC8vIEluIGNhc2Ugb2YgTUlQUywgTGludXgg RlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3QKLSAgIC8vIGFuZCAnZmxvYXRf c3RhdGUnIGlzIG5vdCBhIG1lbWJlciBvZiBDcmFzaENvbnRleHQuCi0gICB1Y29udGV4dF90KiB1 Y19wdHIgPSAodWNvbnRleHRfdCopdWM7Ci0gICBpZiAodWNfcHRyLT51Y19tY29udGV4dC5mcHJl Z3MpIHsKLUBAIC03MDEsMTEgKzcwOCwxOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRl TWluaWR1bXAoKSB7Ci0gICB9Ci0gI2VuZGlmCi0gCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5l ZChfX21pcHNfXykgXAotKyAgICAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8gRlBV IHN0YXRlIGlzIG5vdCBwYXJ0IG9mIEFSTSBFQUJJIHVjb250ZXh0X3QuCi0gICBtZW1jcHkoJmNv bnRleHQuZmxvYXRfc3RhdGUsIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5mcHJlZ3MsCi0g ICAgICAgICAgc2l6ZW9mKGNvbnRleHQuZmxvYXRfc3RhdGUpKTsKLSAjZW5kaWYKLSsKLSsjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gVmVjdG9yIHJlZ2lzdGVycyBtdXN0IGJlIGNv cGllZCBvbiBQUEM2NAotKyAgbWVtY3B5KCZjb250ZXh0LnZlY3Rvcl9zdGF0ZSwgY29udGV4dC5j b250ZXh0LnVjX21jb250ZXh0LnZfcmVncywKLSsgICAgICAgICBzaXplb2YoY29udGV4dC52ZWN0 b3Jfc3RhdGUpKTsKLSsjZW5kaWYKLSsKLSAgIGNvbnRleHQudGlkID0gc3lzX2dldHRpZCgpOwot IAotICAgLy8gQWRkIGFuIGV4Y2VwdGlvbiBzdHJlYW0gdG8gdGhlIG1pbmlkdW1wIGZvciBiZXR0 ZXIgcmVwb3J0aW5nLgotQEAgLTcyNiw2ICs3NDEsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6 OldyaXRlTWluaWR1bXAoKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnRleHQu c2lnaW5mby5zaV9hZGRyID0KLSAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0 LmNvbnRleHQudWNfbWNvbnRleHQucGMpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgIGNvbnRleHQuc2lnaW5mby5zaV9hZGRyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHZv aWQqPihjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdKTsKLSAjZWxz ZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9y bSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaCB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hh bmRsZXIuaAotaW5kZXggZjQ0NDgzZmYuLjM2Y2U2ZDZjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu ZGxlci5oCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKLUBAIC0xOTIsNyArMTkyLDExIEBAIGNsYXNz IEV4Y2VwdGlvbkhhbmRsZXIgewotICAgICBzaWdpbmZvX3Qgc2lnaW5mbzsKLSAgICAgcGlkX3Qg dGlkOyAgLy8gdGhlIGNyYXNoaW5nIHRocmVhZC4KLSAgICAgdWNvbnRleHRfdCBjb250ZXh0Owot LSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIC8vIFBQQzY0J3MgRlAgc3RhdGUgaXMgYSBwYXJ0 IG9mIHVjb250ZXh0X3QgbGlrZSBNSVBTIGJ1dCB0aGUgdmVjdG9yCi0rICAgIC8vIHN0YXRlIGlz IG5vdCwgc28gYSBzdHJ1Y3QgaXMgbmVlZGVkLgotKyAgICB2c3RhdGVfdCB2ZWN0b3Jfc3RhdGU7 Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAg ICAgLy8gI2lmZGVmIHRoaXMgb3V0IGJlY2F1c2UgRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNl ciBBQkkgZm9yIExpbnV4IEFSTS4KLSAgICAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0 YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90IHNvCi0gICAgIC8vICdmbG9hdF9zdGF0 ZScgaXMgbm90IHJlcXVpcmVkLgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3Qu Y2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVy L2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCi1pbmRleCA4ZDg4MDlmYS4uZTJlYjAzMWUg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5k bGVyX3VuaXR0ZXN0LmNjCi1AQCAtMzA3LDcgKzMwNyw3IEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxl clRlc3QsIFBhcmFsbGVsQ2hpbGRDcmFzaGVzRG9udEhhbmcpIHsKLSAgIH0KLSAKLSAgIC8vIFdh aXQgYSB3aGlsZSB1bnRpbCB0aGUgY2hpbGQgc2hvdWxkIGhhdmUgY3Jhc2hlZC4KLS0gIHVzbGVl cCgxMDAwMDAwKTsKLSsgIHVzbGVlcCgyMDAwMDAwKTsKLSAgIC8vIEtpbGwgdGhlIGNoaWxkIGlm IGl0IGlzIHN0aWxsIHJ1bm5pbmcuCi0gICBraWxsKGNoaWxkLCBTSUdLSUxMKTsKLSAKLUBAIC01 NTksNiArNTU5LDggQEAgY29uc3QgdW5zaWduZWQgY2hhciBrSWxsZWdhbEluc3RydWN0aW9uW10g PSB7Ci0gI2lmIGRlZmluZWQoX19taXBzX18pCi0gICAvLyBtZmMyIHplcm8sSW1wbCAtIHVzdWFs bHkgaWxsZWdhbCBpbiB1c2Vyc3BhY2UuCi0gICAweDQ4LCAweDAwLCAweDAwLCAweDQ4Ci0rI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSAvLyBD cmFzaGVzIG9uIGEgdGVzdGVkIFBPV0VSOSBjcHUKLSAjZWxzZQotICAgLy8gVGhpcyBjcmFzaGVz IHdpdGggU0lHSUxMIG9uIHg4Ni94ODYtNjQvYXJtLgotICAgMHhmZiwgMHhmZiwgMHhmZiwgMHhm ZgotQEAgLTc1NCwxMCArNzU2LDEwIEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIEluc3Ry dWN0aW9uUG9pbnRlck1lbW9yeU1heEJvdW5kKSB7Ci0gCi0gICAvLyBUaGVzZSBhcmUgZGVmaW5l ZCBoZXJlIHNvIHRoZSBwYXJlbnQgY2FuIHVzZSB0aGVtIHRvIGNoZWNrIHRoZQotICAgLy8gZGF0 YSBmcm9tIHRoZSBtaW5pZHVtcCBhZnRlcndhcmRzLgotLSAgLy8gVXNlIDRrIGhlcmUgYmVjYXVz ZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KLSsgIC8vIFVzZSB0aGUg cGFnZSBzaXplIGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdl IGV2ZW4KLSAgIC8vIGlmIGEgc21hbGxlciBzaXplIGlzIHJlcXVlc3RlZCwgYW5kIHRoaXMgdGVz dCB3YW50cyB0bwotICAgLy8gdGVzdCB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG1lbW9yeSByYW5n ZS4KLS0gIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0gNDA5NjsgIC8vIGJ5dGVzCi0rICBj b25zdCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IGdldHBhZ2VzaXplKCk7ICAvLyBieXRlcwotICAg Y29uc3QgaW50IGtPZmZzZXQgPSBrTWVtb3J5U2l6ZSAtIHNpemVvZihrSWxsZWdhbEluc3RydWN0 aW9uKTsKLSAKLSAgIGNvbnN0IHBpZF90IGNoaWxkID0gZm9yaygpOwotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0 ZXIvbWljcm9kdW1wX3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotaW5kZXgg ZmEzYzE3MTMuLjZjZTcwOWUyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNj Ci0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNy b2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKLUBAIC0xMzgsNyArMTM4LDkgQEAgY2xh c3MgTWljcm9kdW1wV3JpdGVyIHsKLSAgICAgICAgICAgICAgICAgICBjb25zdCBNaWNyb2R1bXBF eHRyYUluZm8mIG1pY3JvZHVtcF9leHRyYV9pbmZvLAotICAgICAgICAgICAgICAgICAgIExpbnV4 RHVtcGVyKiBkdW1wZXIpCi0gICAgICAgOiB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5j b250ZXh0IDogTlVMTCksCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQo X19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIHZlY3Rvcl9z dGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKLSsjZWxpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAgICAgZmxv YXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKLSAjZW5k aWYKLSAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKLUBAIC0zMzcsNiArMzM5LDggQEAgY2xhc3Mg TWljcm9kdW1wV3JpdGVyIHsKLSAjIGVsc2UKLSAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBj dXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKLSAjZW5kaWYKLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICAgIGNvbnN0IGNoYXIga0FyY2hbXSA9ICJwcGM2NCI7Ci0gI2Vsc2UK LSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0g eWV0IgotICNlbmRpZgotQEAgLTQwOSw3ICs0MTMsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIg ewotICAgdm9pZCBEdW1wQ1BVU3RhdGUoKSB7Ci0gICAgIFJhd0NvbnRleHRDUFUgY3B1OwotICAg ICBteV9tZW1zZXQoJmNwdSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKLS0jaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNv bnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYm ICFkZWZpbmVkKF9fbWlwc19fKQotICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQo JmNwdSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOwotICNlbHNlCi0gICAgIFVDb250ZXh0UmVh ZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8pOwotQEAgLTYwNSw3ICs2MTEsOSBA QCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAgdm9pZCogQWxsb2ModW5zaWduZWQgYnl0ZXMp IHsgcmV0dXJuIGR1bXBlcl8tPmFsbG9jYXRvcigpLT5BbGxvYyhieXRlcyk7IH0KLSAKLSAgIGNv bnN0IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsK LSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAg Y29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsKLSAj ZW5kaWYKLSAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9k dW1wX3dyaXRlcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5j YwotaW5kZXggNjMzOWFjMGMuLjI5MWFmMTA2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBf d3JpdGVyX3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3Qu Y2MKLUBAIC0yNzksMTAgKzI3OSwxOSBAQCBURVNUKE1pY3JvZHVtcFdyaXRlclRlc3QsIEJhc2lj V2l0aE1hcHBpbmdzKSB7Ci0gICBDcmFzaEFuZEdldE1pY3JvZHVtcChtYXBwaW5ncywgTWljcm9k dW1wRXh0cmFJbmZvKCksICZidWYpOwotICAgQVNTRVJUX1RSVUUoQ29udGFpbnNNaWNyb2R1bXAo YnVmKSk7Ci0gCi0rICBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKLSAjaWZkZWYgX19M UDY0X18KLS0gIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLS0gICAgICAgICAgICBidWYu ZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAw MCAiCi0tICAgICAgICAgICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERF RUZGMCBsaWJmb28uc28iKSk7Ci0rICAvLyBUaGlzIHRlc3QgaXMgb25seSBhdmFpbGFibGUgZm9y IHRoZSBmb2xsb3dpbmcgcGFnZSBzaXplcwotKyAgQVNTRVJUX1RSVUUoKHBhZ2Vfc2l6ZSA9PSA0 MDk2KSB8fCAocGFnZV9zaXplID09IDY1NTM2KSk7Ci0rICBpZiAocGFnZV9zaXplID09IDQwOTYp IHsgCi0rICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSsgICAgICAgICAgICAgIGJ1 Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAx MDAwICIKLSsgICAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJD Q0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgfSBlbHNlIHsKLSsgICAgQVNTRVJUX05FKHN0ZDo6 c3RyaW5nOjpucG9zLAotKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAxMDAw MCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMTAwMDAgIgotKyAgICAgICAgICAgICAgICAg ICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7Ci0r ICB9Ci0gI2Vsc2UKLSAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSAgICAgICAgICAg ICBidWYuZmluZCgiTSAwMDAwMTAwMCAwMDAwMDAyQSAwMDAwMTAwMCAiCi1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCi1pbmRl eCA0MTUwNjg5OC4uYjkzZTRhZmMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotQEAgLTExMiw2ICsxMTIsOSBAQCBi b29sIExpbnV4Q29yZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBU aHJlYWRJbmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3Bv aW50ZXIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0 LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICBzdGFja19wb2ludGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4 X3QqPihpbmZvLT5tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0g I2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0 Zm9ybSB5ZXQuIgotICNlbmRpZgotQEAgLTE5Nyw3ICsyMDAsMTAgQEAgYm9vbCBMaW51eENvcmVE dW1wZXI6OkVudW1lcmF0ZVRocmVhZHMoKSB7Ci0gICAgICAgICBtZW1zZXQoJmluZm8sIDAsIHNp emVvZihUaHJlYWRJbmZvKSk7Ci0gICAgICAgICBpbmZvLnRnaWQgPSBzdGF0dXMtPnByX3BncnA7 Ci0gICAgICAgICBpbmZvLnBwaWQgPSBzdGF0dXMtPnByX3BwaWQ7Ci0tI2lmIGRlZmluZWQoX19t aXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIGZvciAoaW50IGkg PSAwOyBpIDwgMzE7IGkrKykKLSsgICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdwX3JlZ3NbaV0g PSBzdGF0dXMtPnByX3JlZ1tpXTsKLSsjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICNpZiBkZWZp bmVkKF9fQU5EUk9JRF9fKQotICAgICAgICAgZm9yIChpbnQgaSA9IEVGX1IwOyBpIDw9IEVGX1Iz MTsgaSsrKQotICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdyZWdzW2kgLSBFRl9SMF0gPSBzdGF0 dXMtPnByX3JlZ1tpXTsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X2R1bXBlci5jYwotaW5kZXggMTExMjAzNWIuLjg1MjNkYWQ2IDEwMDY0NAotLS0tIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L2xpbnV4X2R1bXBlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwotQEAgLTc2NSw3ICs3 NjUsOSBAQCBib29sIExpbnV4RHVtcGVyOjpHZXRTdGFja0luZm8oY29uc3Qgdm9pZCoqIHN0YWNr LCBzaXplX3QqIHN0YWNrX2xlbiwKLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihp bnRfc3RhY2tfcG9pbnRlciAmIH4ocGFnZV9zaXplIC0gMSkpOwotIAotICAgLy8gVGhlIG51bWJl ciBvZiBieXRlcyBvZiBzdGFjayB3aGljaCB3ZSB0cnkgdG8gY2FwdHVyZS4KLS0gIHN0YXRpYyBj b25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gMzIgKiAxMDI0OwotKyAgLy8gVGhpcyBu b3cgZGVwZW5kcyBvbiBwYWdlX3NpemUgdG8gYXZvaWQgbWlzc2luZyBkYXRhCi0rICAvLyBvbiBz eXN0ZW1zIHdpdGggbGFyZ2VyIHBhZ2Ugc2l6ZXMuCi0rICBzdGF0aWMgY29uc3QgcHRyZGlmZl90 IGtTdGFja1RvQ2FwdHVyZSA9IDggKiBwYWdlX3NpemU7Ci0gCi0gICBjb25zdCBNYXBwaW5nSW5m byogbWFwcGluZyA9IEZpbmRNYXBwaW5nKHN0YWNrX3BvaW50ZXIpOwotICAgaWYgKCFtYXBwaW5n KQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAot aW5kZXggZjRhNzVkOTAuLjAyMDk4MWY1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5o Ci0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKLUBAIC02Myw3ICs2Myw4IEBAIG5hbWVzcGFjZSBn b29nbGVfYnJlYWtwYWQgewotICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9B QklPMzIpCi0gdHlwZWRlZiBFbGYzMl9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKLSAjZWxpZiBkZWZp bmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCi0tICAgICAoZGVmaW5l ZChfX21pcHNfXykgJiYgX01JUFNfU0lNICE9IF9BQklPMzIpCi0rICAgICAoZGVmaW5lZChfX21p cHNfXykgJiYgX01JUFNfU0lNICE9IF9BQklPMzIpIHx8IFwKLSsgICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSB0eXBlZGVmIEVsZjY0X2F1eHZfdCBlbGZfYXV4X2VudHJ5OwotICNlbmRpZgot IAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKLWluZGV4IDNhZDQ4ZTUwLi4xNjg4YzM2 NSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi0rKysg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYwotQEAgLTUxLDYgKzUxLDggQEAK LSAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInJjeCIKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19f KQotICNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAiJDEiCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicjgiCi0gI2Vsc2UKLSAjZXJyb3Ig VGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5kaWYK LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYyB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJh Y2VfZHVtcGVyLmNjCi1pbmRleCBlM2RkYjgxYS4uZmEyODU3NWUgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfcHRyYWNlX2R1bXBlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MK LUBAIC0xNDksMTkgKzE0OSwyNyBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpDb3B5RnJvbVBy b2Nlc3Modm9pZCogZGVzdCwgcGlkX3QgY2hpbGQsCi0gICByZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0t Ym9vbCBMaW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVhZEluZm8qIGluZm8s IHBpZF90IHRpZCkKLS17Ci0rYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0 KFRocmVhZEluZm8qIGluZm8sIHBpZF90IHRpZCkgewotICNpZmRlZiBQVFJBQ0VfR0VUUkVHU0VU Ci0gICBzdHJ1Y3QgaW92ZWMgaW87Ci0gICBpbmZvLT5HZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVy cygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKLS0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9H RVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgewot KyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUlNUQVRVUywg KHZvaWQqKSZpbykgPT0gLTEpIHsKLSAgICAgcmV0dXJuIGZhbHNlOwotICAgfQotIAotICAgaW5m by0+R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsK LS0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVH U0VULCAodm9pZCopJmlvKSA9PSAtMSkgewotKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VU LCB0aWQsICh2b2lkKilOVF9GUFJFR1NFVCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKLSAgICAgcmV0 dXJuIGZhbHNlOwotICAgfQotKwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBH cmFiIHRoZSB2ZWN0b3IgcmVnaXN0ZXJzIG9uIFBQQzY0IHRvbwotKyAgaW5mby0+R2V0VmVjdG9y UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotKyAgaWYgKHB0cmFjZShQVFJB Q0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUENfVk1YLCAodm9pZCopJmlvKSA9PSAtMSkg ewotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rI2VuZGlmIC8vIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsKLSAgIHJldHVybiB0cnVlOwotICNlbHNlCi0gICByZXR1cm4gZmFsc2U7Ci1AQCAt Mjk4LDYgKzMwNiw5IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkdldFRocmVhZEluZm9CeUlu ZGV4KHNpemVfdCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgewotICNlbGlmIGRlZmluZWQoX19t aXBzX18pCi0gICBzdGFja19wb2ludGVyID0KLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4 X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7Ci0rI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhY2tfcG9pbnRlciA9Ci0rICAgICAgcmVp bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhU X1BQQzY0X1JFR19TUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4g cG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVy X3VuaXR0ZXN0LmNjCi1pbmRleCBlYTZiOWExMi4uOWIzMThmZTAgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9k dW1wZXJfdW5pdHRlc3QuY2MKLUBAIC00NjIsNiArNDYyLDkgQEAgVEVTVChMaW51eFB0cmFjZUR1 bXBlclRlc3QsIFZlcmlmeVN0YWNrUmVhZFdpdGhNdWx0aXBsZVRocmVhZHMpIHsKLSAjZWxpZiBk ZWZpbmVkKF9fbWlwc19fKQotICAgICBwaWRfdCogcHJvY2Vzc190aWRfbG9jYXRpb24gPQotICAg ICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+KG9uZV90aHJlYWQubWNvbnRleHQuZ3JlZ3Nb MV0pOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgcGlkX3QqIHByb2Nlc3Nf dGlkX2xvY2F0aW9uID0KLSsgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhy ZWFkLm1jb250ZXh0LmdwX3JlZ3NbOF0pOwotICNlbHNlCi0gI2Vycm9yIFRoaXMgdGVzdCBoYXMg bm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCi0gI2VuZGlmCi1AQCAtNTU5LDYgKzU2 Miw4IEBAIFRFU1RfRihMaW51eFB0cmFjZUR1bXBlclRlc3QsIFNhbml0aXplU3RhY2tDb3B5KSB7 Ci0gICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ucmVncy5yY3g7Ci0gI2VsaWYg ZGVmaW5lZChfX21pcHNfXykKLSAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5t Y29udGV4dC5ncmVnc1sxXTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICB1aW50 cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3BfcmVnc1s4XTsKLSAjZWxz ZQotICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3Jt LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWlu aWR1bXBfd3JpdGVyLmNjCi1pbmRleCBmOGNkZjJhMS4uY2I4MDhjMTUgMTAwNjQ0Ci0tLS0gdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbWluaWR1bXBfd3JpdGVyLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCi1AQCAt MTM2LDcgKzEzNiw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAgICA6IGZkXyhtaW5p ZHVtcF9mZCksCi0gICAgICAgICBwYXRoXyhtaW5pZHVtcF9wYXRoKSwKLSAgICAgICAgIHVjb250 ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rv cl9zdGF0ZSA6IE5VTEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmlu ZWQoX19taXBzX18pCi0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5m bG9hdF9zdGF0ZSA6IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAot QEAgLTQ2OCw3ICs0NzAsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgICAgICBpZiAo IWNwdS5BbGxvY2F0ZSgpKQotICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICBteV9t ZW1zZXQoY3B1LmdldCgpLCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOwotLSNpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1Lmdl dCgpLCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VB QklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgICAgICBVQ29udGV4dFJlYWRlcjo6Rmls bENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7Ci0gI2Vsc2UK LSAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250 ZXh0Xyk7Ci1AQCAtODk3LDcgKzkwMSw3IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAg ZGlyZW50LT5sb2NhdGlvbi5ydmEgPSAwOwotICAgfQotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgYm9vbCBXcml0ZUNQVUluZm9ybWF0aW9uKE1E UmF3U3lzdGVtSW5mbyogc3lzX2luZm8pIHsKLSAgICAgY2hhciB2ZW5kb3JfaWRbc2l6ZW9mKHN5 c19pbmZvLT5jcHUueDg2X2NwdV9pbmZvLnZlbmRvcl9pZCkgKyAxXSA9IHswfTsKLSAgICAgc3Rh dGljIGNvbnN0IGNoYXIgdmVuZG9yX2lkX25hbWVbXSA9ICJ2ZW5kb3JfaWQiOwotQEAgLTkxNyw3 ICs5MjEsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gCi0gICAgIC8vIHByb2Nlc3Nvcl9h cmNoaXRlY3R1cmUgc2hvdWxkIGFsd2F5cyBiZSBzZXQsIGRvIHRoaXMgZmlyc3QKLSAgICAgc3lz X2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgPQotLSNpZiBkZWZpbmVkKF9fbWlwc19fKQot KyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJF X1BQQzY0OwotKyNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gIyBpZiBfTUlQU19TSU0gPT0gX0FC SU8zMgotICAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9NSVBTOwotICMgZWxpZiBfTUlQU19T SU0gPT0gX0FCSTY0Ci1AQCAtMTMzMyw3ICsxMzM5LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIg ewotICAgY29uc3QgY2hhciogcGF0aF87ICAvLyBQYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBt aW5pZHVtIHNob3VsZCBiZSB3cml0dGVuLgotIAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3Qg dWNvbnRleHRfOyAgLy8gYWxzbyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgotLSNpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0 b3Jfc3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19t aXBzX18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRf c3RhdGVfOyAgLy8gZGl0dG8KLSAjZW5kaWYKLSAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOwotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAot aW5kZXggZTNiMGIxNmQuLmNjZDhhYTBhIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRl ci5oCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKLUBAIC00OCw2ICs0OCw4IEBAIGNsYXNz IEV4Y2VwdGlvbkhhbmRsZXI7Ci0gCi0gI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gdHlwZWRl ZiBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQgZnBzdGF0ZV90OwotKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSt0eXBlZGVmIHZycmVnc2V0X3QgdnN0YXRlX3Q7Ci0gI2VsaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSB0eXBlZGVmIHN0ZDo6cmVtb3Zl X3BvaW50ZXI8ZnByZWdzZXRfdD46OnR5cGUgZnBzdGF0ZV90OwotICNlbmRpZgotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVy X3VuaXR0ZXN0LmNjCi1pbmRleCAzMDE3YTQ5YS4uMzY0ZWZkNzkgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3Vu aXR0ZXN0LmNjCi1AQCAtNzE1LDYgKzcxNSw5IEBAIFRFU1QoTWluaWR1bXBXcml0ZXJUZXN0LCBJ bnZhbGlkU3RhY2tQb2ludGVyKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnRl eHQuY29udGV4dC51Y19tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSA9Ci0g ICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBD NjRfUkVHX1NQXSA9Ci0rICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotICNlbHNlCi0gIyBl cnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQu IgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYwotaW5kZXggNGU5 MzgyNjkuLmYwZmYxNWQ5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCi0rKysgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MK LUBAIC02NSw4ICs2NSw3IEBAIGJvb2wgTWVtb3J5TWFwcGVkRmlsZTo6TWFwKGNvbnN0IGNoYXIq IHBhdGgsIHNpemVfdCBvZmZzZXQpIHsKLSAgIH0KLSAKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCi0tICAgKGRlZmluZWQoX19taXBzX18pICYm IF9NSVBTX1NJTSA9PSBfQUJJNjQpCi0tCi0rICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBT X1NJTSA9PSBfQUJJNjQpIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIHN0cnVjdCBrZXJu ZWxfc3RhdCBzdDsKLSAgIGlmIChzeXNfZnN0YXQoZmQsICZzdCkgPT0gLTEgfHwgc3Quc3Rfc2l6 ZSA8IDApIHsKLSAjZWxzZQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYyB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmls ZV91bml0dGVzdC5jYwotaW5kZXggZmFkNTlmNDAuLjYxNjQ5NmQ2IDEwMDY0NAotLS0tIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9m aWxlX3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Nv bW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKLUBAIC0xNzYsOSArMTc2 LDEwIEBAIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgUmVtYXBBZnRlck1hcCkgewotIFRF U1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgTWFwV2l0aE9mZnNldCkgewotICAgLy8gUHV0IG1v cmUgZGF0YSBpbiB0aGUgdGVzdCBmaWxlIHRoaXMgdGltZS4gT2Zmc2V0cyBjYW4gb25seSBiZQot ICAgLy8gZG9uZSBvbiBwYWdlIGJvdW5kYXJpZXMsIHNvIHdlIG5lZWQgYSB0d28gcGFnZSBmaWxl IHRvIHRlc3QgdGhpcy4KLS0gIGNvbnN0IGludCBwYWdlX3NpemUgPSA0MDk2OwotLSAgY2hhciBk YXRhMVsyICogcGFnZV9zaXplXTsKLS0gIHNpemVfdCBkYXRhMV9zaXplID0gc2l6ZW9mKGRhdGEx KTsKLSsgIGNvbnN0IGludCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOwotKyAgY2hhciAqZGF0 YTEgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKDIgKiBwYWdlX3NpemUpKTsKLSsgIEVYUEVD VF9UUlVFKGRhdGExICE9IE5VTEwpOwotKyAgc2l6ZV90IGRhdGExX3NpemUgPSAoMiAqIHBhZ2Vf c2l6ZSk7Ci0gICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRhdGExX3NpemU7ICsraSkgewotICAg ICBkYXRhMVtpXSA9IGkgJiAweDdmOwotICAgfQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3Vu aXR0ZXN0LmNjCi1pbmRleCA0M2M4NjMxNC4uMjczMjViODEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0 LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlf YWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1AQCAtNTcsOCArNTcsOSBAQAotIAotICAgRVhQRUNUX0VR KDBVLCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotICAgdWludDhfdCogcCA9IHJlaW50 ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFsbG9jYXRvci5BbGxvYygxMDAwMCkpOwotKyAgdWludDY0 X3QgZXhwZWN0ZWRfcGFnZXMgPSAxICsgKCgxMDAwMCAtIDEpIC8gZ2V0cGFnZXNpemUoKSk7Ci0g ICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsKLS0gIEVYUEVDVF9FUSgzVSwgYWxsb2NhdG9yLnBh Z2VzX2FsbG9jYXRlZCgpKTsKLSsgIEVYUEVDVF9FUShleHBlY3RlZF9wYWdlcywgYWxsb2NhdG9y LnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCAxMDsgKytp KSB7Ci0gICAgIHVpbnQ4X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0 b3IuQWxsb2MoaSkpOwotICAgICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsKLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0 eV9saW51eC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4 cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi1pbmRleCBjY2M5ZjE0NS4uZGViYWVkNGQgMTAwNjQ0Ci0t LS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJp bGl0eV9saW51eC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9j ZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKLUBAIC0yMDIsMTIgKzIwMiwxNCBAQCBib29s IEV4cGxvaXRhYmlsaXR5TGludXg6OkVuZGVkT25JbGxlZ2FsV3JpdGUodWludDY0X3QgaW5zdHJ1 Y3Rpb25fcHRyKSB7Ci0gICAvLyBDaGVjayBhcmNoaXRlY3R1cmUgYW5kIHNldCBhcmNoaXRlY3R1 cmUgdmFyaWFibGUgdG8gY29ycmVzcG9uZGluZyBmbGFnCi0gICAvLyBpbiBvYmpkdW1wLgotICAg c3dpdGNoIChjb250ZXh0LT5HZXRDb250ZXh0Q1BVKCkpIHsKLSsjaWYgZGVmaW5lZChfX2kzODYp IHx8IGRlZmluZWQoX194ODZfNjQpCi0gICAgIGNhc2UgTURfQ09OVEVYVF9YODY6Ci0gICAgICAg YXJjaGl0ZWN0dXJlID0gImkzODYiOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIE1EX0NPTlRF WFRfQU1ENjQ6Ci0gICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODY6eDg2LTY0IjsKLSAgICAgICBi cmVhazsKLSsjZW5kaWYKLSAgICAgZGVmYXVsdDoKLSAgICAgICAvLyBVbnN1cHBvcnRlZCBhcmNo aXRlY3R1cmUuIE5vdGUgdGhhdCBBUk0gYXJjaGl0ZWN0dXJlcyBhcmUgbm90Ci0gICAgICAgLy8g c3VwcG9ydGVkIGJlY2F1c2Ugb2JqZHVtcCBkb2VzIG5vdCBzdXBwb3J0IEFSTS4KLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJp bGl0eV91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vz c29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCi1pbmRleCA1MjhlZTVmMi4uNzI3NjRkNmMg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9l eHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKLUBAIC0xMDQsNiAr MTA0LDggQEAgRXhwbG9pdGFiaWxpdHlGb3IoY29uc3Qgc3RyaW5nJiBmaWxlbmFtZSkgewotIH0K LSAKLSBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKLSsvLyBU aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxp bnV4IG1hY2hpbmUuCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8 fCBkZWZpbmVkKF9feDg2XzY0KSkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExP SVRBQklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImFzY2lpX3Jl YWRfYXYuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJ VFlfSElHSCwKLUBAIC0xMzYsOSArMTM4LDEyIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBU ZXN0V2luZG93c0VuZ2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFk X2F2X2Nsb2JiZXJfd3JpdGUuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6 RVhQTE9JVEFCSUxJVFlfTE9XLAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFk X2F2X2NvbmRpdGlvbmFsLmRtcCIpKTsKLSsjZW5kaWYKLSB9Ci0gCi0gVEVTVChFeHBsb2l0YWJp bGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZSkgewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJl IG9ubHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgZGVm aW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2Jy ZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9JTlRFUkVTVElORywKLSAgICAgICAgICAgICBFeHBsb2l0 YWJpbGl0eUZvcigibGludXhfbnVsbF9yZWFkX2F2LmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29n bGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi1AQCAtMTcxLDcgKzE3Niw4IEBAIFRF U1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKLSAgICAgICAgICAgICBF eHBsb2l0YWJpbGl0eUZvcigibGludXhfZXhlY3V0YWJsZV9oZWFwLmRtcCIpKTsKLSAgIEFTU0VS VF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAgICAgICAgICAg RXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X2ptcF90b19tb2R1bGVfbm90X2V4ZV9yZWdpb24uZG1w IikpOwotLSNpZm5kZWYgX1dJTjMyCi0rI2VuZGlmCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYg KGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSAgIEFTU0VSVF9FUShnb29n bGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFi aWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX25vbndyaXRhYmxlX21vZHVsZS5kbXAiKSk7Ci0gICBB U1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTE4Miwx MCArMTg4LDEwIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsK LSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fb3V0c2lkZV9t b2R1bGVfdmlhX21hdGguZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQ TE9JVEFCSUxJVFlfSU5URVJFU1RJTkcsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3Io ImxpbnV4X3dyaXRlX3RvX3VuZGVyXzRrLmRtcCIpKTsKLS0jZW5kaWYgIC8vIF9XSU4zMgotKyNl bmRpZiAgLy8gIWRlZmluZWQoX1dJTjMyKSAmJiAoIWRlZmluZWQoX19pMzg2KSAmJiAhZGVmaW5l ZChfX3g4Nl82NCkpCi0gfQotIAotLSNpZm5kZWYgX1dJTjMyCi0rI2lmICFkZWZpbmVkKF9XSU4z MikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSBURVNUKEV4cGxv aXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIERpc2Fzc2VtYmxlQnl0ZXNUZXN0KSB7Ci0gICBBU1NF UlRfRkFMU0UoRXhwbG9pdGFiaWxpdHlMaW51eFRlc3Q6OkRpc2Fzc2VtYmxlQnl0ZXMoIiIsIE5V TEwsIDUsIE5VTEwpKTsKLSAgIHVpbnQ4X3QgYnl0ZXNbNl0gPSB7MHhjNywgMHgwLCAweDUsIDB4 MCwgMHgwLCAweDB9OwotQEAgLTMwMSw2ICszMDcsNyBAQCBURVNUKEV4cGxvaXRhYmlsaXR5TGlu dXhVdGlsc1Rlc3QsIENhbGN1bGF0ZUFkZHJlc3NUZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd3JpdGVf YWRkcmVzcykpOwotIH0KLS0jZW5kaWYgIC8vIF9XSU4zMgotKyNlbmRpZiAgLy8gIWRlZmluZWQo X1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotKwotIAot IH0gIC8vIG5hbWVzcGFjZQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3Jl LmNjCi1pbmRleCBhNjBiZTMyMy4uMzViMTFiNmQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNj Ci0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNv cmUvbWluaWR1bXAtMi1jb3JlLmNjCi1AQCAtNzcsNiArNzcsOCBAQAotICAgI2RlZmluZSBFTEZf QVJDSCAgRU1fTUlQUwotICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICAjZGVmaW5lIEVM Rl9BUkNIICBFTV9BQVJDSDY0Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgI2Rl ZmluZSBFTEZfQVJDSCAgRU1fUFBDNjQKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2FybV9f KQotQEAgLTg3LDYgKzg5LDggQEAgdHlwZWRlZiB1c2VyX3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsK LSAjZWxpZiBkZWZpbmVkIChfX21pcHNfXykKLSAvLyBUaGlzIGZpbGUtbG9jYWwgdHlwZWRlZiBz aW1wbGlmaWVzIHRoZSBzb3VyY2UgY29kZS4KLSB0eXBlZGVmIGdyZWdzZXRfdCB1c2VyX3JlZ3Nf c3RydWN0OwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSt0eXBlZGVmIHN0cnVjdCBw dF9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7Ci0gI2VuZGlmCi0gCi0gdXNpbmcgZ29vZ2xlX2JyZWFr cGFkOjpNRFR5cGVIZWxwZXI7Ci1AQCAtMzIxLDYgKzMyNSw5IEBAIHN0cnVjdCBDcmFzaGVkUHJv Y2VzcyB7Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICAgIHVzZXJfZnBz aW1kX3N0cnVjdCBmcHJlZ3M7Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgICAgbWNvbnRleHRfdCBtY29udGV4dDsKLSAjZW5kaWYKLSAgICAgdWludHB0cl90IHN0YWNr X2FkZHI7Ci0gICAgIGNvbnN0IHVpbnQ4X3QqIHN0YWNrOwotQEAgLTUzNSw2ICs1NDIsMzggQEAg UGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFkLAotICAg dGhyZWFkLT5tY29udGV4dC5mcGNfZWlyID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5maXI7Ci0gI2Vu ZGlmCi0gfQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLStzdGF0aWMgdm9pZAotK1Bh cnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHJlYWQqIHRocmVhZCwKLSsgICAg ICAgICAgICAgICAgICAgICBjb25zdCBNaW5pZHVtcE1lbW9yeVJhbmdlJiByYW5nZSkgewotKyAg Y29uc3QgTURSYXdDb250ZXh0UFBDNjQqIHJhd3JlZ3MgPSByYW5nZS5HZXREYXRhPE1EUmF3Q29u dGV4dFBQQzY0PigwKTsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2 NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW2ldID0gcmF3 cmVncy0+Z3ByW2ldOwotKwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0xOS10gPSBy YXdyZWdzLT5scjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdID0gcmF3cmVn cy0+c3JyMDsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdID0gcmF3cmVncy0+ c3JyMTsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdID0gcmF3cmVncy0+Y3I7 Ci0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXSA9IHJhd3JlZ3MtPnhlcjsKLSsg IHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdID0gcmF3cmVncy0+Y3RyOwotKyAgdGhy ZWFkLT5tY29udGV4dC52X3JlZ3MtPnZyc2F2ZSA9IHJhd3JlZ3MtPnZyc2F2ZTsKLSsKLSsgIGZv ciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKysp Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW2ldID0gcmF3cmVncy0+ZmxvYXRfc2F2 ZS5mcHJlZ3NbaV07Ci0rCi0rICB0aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdID0g cmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHNjcjsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURf VkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspIHsKLSsgICAgICB0aHJlYWQtPm1jb250 ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzBdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltp XS5oaWdoID4+IDMyOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1b MV0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2g7Ci0rICAgICAgdGhyZWFk LT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVsyXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNh dmVfdnJbaV0ubG93ID4+IDMyOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJl Z3NbaV1bM10gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdzsKLSsgIH0KLSsK LSsgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52c2NyLnZzY3Jfd29yZCA9IHJhd3JlZ3MtPnZl Y3Rvcl9zYXZlLnNhdmVfdnNjci5sb3cgJiAweEZGRkZGRkZGOwotK30KLSsKLSAjZWxzZQotICNl cnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQi Ci0gI2VuZGlmCi1AQCAtNjIzLDYgKzY2MiwxMiBAQCBQYXJzZVN5c3RlbUluZm8oY29uc3QgT3B0 aW9ucyYgb3B0aW9ucywgQ3Jhc2hlZFByb2Nlc3MqIGNyYXNoaW5mbywKLSAjIGVsc2UKLSAjICBl cnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKLSAj IGVuZGlmCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKHN5c2luZm8tPnBy b2Nlc3Nvcl9hcmNoaXRlY3R1cmUgIT0gTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NCkgewotKyAg ICBmcHJpbnRmKHN0ZGVyciwKLSsgICAgICAgICAgICAiVGhpcyB2ZXJzaW9uIG9mIG1pbmlkdW1w LTItY29yZSBvbmx5IHN1cHBvcnRzIFBQQzY0LlxuIik7Ci0rICAgIGV4aXQoMSk7Ci0rICB9Ci0g I2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxh dGZvcm0geWV0IgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9DT05UUklCVVRPUlMgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVU T1JTCi1pbmRleCA4NzI0YjdmMy4uOGUyOTQyNGUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvQ09OVFJJQlVUT1JTCi1AQCAtMTMsMyArMTMsNCBAQCBNYXJrIE1lbnRvdmFpIDxtYXJr QGNocm9taXVtLm9yZz4KLSBSb2JlcnQgU2VzZWsgPHJzZXNla0BjaHJvbWl1bS5vcmc+Ci0gU2Nv dHQgR3JhaGFtIDxzY290dG1nQGNocm9taXVtLm9yZz4KLSBKb3NodWEgUGVyYXphIDxqcGVyYXph QGNocm9taXVtLm9yZz4KLStTaGF3biBBbmFzdGFzaW8gPHNoYXduQGFuYXN0YXMuaW8+Ci1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNl ci5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5o Ci1pbmRleCA2ZWQ3N2E5OC4uMWZkODM0NjkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAotQEAgLTE1LDYgKzE1LDcgQEAK LSAjaWZuZGVmIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXwotICNkZWZpbmUgQ1JB U0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0g I2luY2x1ZGVfbmV4dCA8c3lzL3VzZXIuaD4KLSAKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf Y29udGV4dC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1w X2NvbnRleHQuaAotaW5kZXggM2EzZTYwM2MuLjMxMThkOWU5IDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAotKysrIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAot QEAgLTU5Miw2ICs1OTIsNzAgQEAgc3RydWN0IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7Ci0gICB1 aW50NjRfdCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIHBwYzY0LXNwZWNpZmljIGZsYWdzIGZv ciBNaW5pZHVtcFBQQzY0Ojpjb250ZXh0X2ZsYWdzCi0rLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2Nw dV9wcGM2NC5oIGZyb20gYnJlYWtwYWQKLStlbnVtIE1pbmlkdW1wQ29udGV4dFBQQzY0RmxhZ3Mg OiB1aW50MzJfdCB7Ci0rICAvLyEgXGJyaWVmIElkZW50aWZpZXMgdGhlIGNvbnRleHQgYXMgUFBD NjQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjQgPSAweDAxMDAwMDAwLAotKwotKyAgLy8hIFxi cmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMu Ci0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMgYHIwYC1gcjMxYCwgYG5pcGAsIGBtc3JgLCBgbHJg LCBldGMuIGFyZSB2YWxpZC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgPSBrTWluaWR1 bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDAxLAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMg dGhlIHZhbGlkaXR5IG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8h IFJlZ2lzdGVycyBgZnAwYC1gZnAzMWAsIGBmcHNjcmAgYXJlIHZhbGlkLgotKyAga01pbmlkdW1w Q29udGV4dFBQQzY0RmxvYXRpbmcgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDA4 LAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIEFsdGl2ZWMvVk1Y IHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBgdjBgLWB2MzFgLCBgdnNjcmAs IGB2cnNhdmVgLgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yID0ga01pbmlkdW1wQ29u dGV4dFBQQzY0IHwgMHgwMDAwMDAyMCwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2 YWxpZGl0eSBvZiBhbGwgcmVnaXN0ZXJzCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGwgPSBr TWluaWR1bXBDb250ZXh0UFBDNjRCYXNlICAgICB8Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyB8Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IKLSt9OwotKwotKy8vISBcYnJp ZWYgQSBQUEM2NCBDUFUgY29udGV4dCBjYXJyaWVkIGluIGEgbWluaWR1bXAgZmlsZS4KLSsvLyEg QmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZC4KLStzdHJ1Y3QgTWlu aWR1bXBDb250ZXh0UFBDNjQgewotKyAgdWludDY0X3QgY29udGV4dF9mbGFnczsKLSsKLSsgIC8v ISBcYnJpZWYgR2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLSsgIHVpbnQ2NF90IG5pcDsKLSsg IHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwotKyAgdWludDY0X3QgY2NyOwot KyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgbG5rOwotKyAgdWludDY0X3QgY3RyOwotKwot KyAgLy8hIFxicmllZiBGbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCi0rICBkb3VibGUgZnByZWdz WzMyXTsKLSsKLSsgIC8vISBcYnJpZWYgRlBVIHN0YXR1cyByZWdpc3Rlci4KLSsgIGRvdWJsZSBm cHNjcjsKLSsKLSsgIC8vISBcYnJpZWYgQWx0aXZlYy9WTVggdmVjdG9yIHJlZ2lzdGVycy4KLSsg IHN0cnVjdCB7Ci0rICAgICAgLy8hIFxicmllZiBWZWN0b3IgcmVnaXN0ZXJzIGFyZSAxMjhiaXRz LgotKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAgICAgIHVpbnQxMjhfc3Ry dWN0IHNhdmVfdnNjcjsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9y IGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCi0rICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ1WzRdOwot KwotKyAgICAgIC8vISBcYnJpZWYgVlJTQVZFIHJlZ2lzdGVyLgotKyAgICAgIHVpbnQzMl90IHNh dmVfdnJzYXZlOwotKwotKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJl YWtwYWQgY29tcGF0aWJpbHRpeS4KLSsgICAgICB1aW50MzJfdCBzYXZlX3BhZDZbN107Ci0rICB9 IHZyZWdzOwotK307Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi0gI2VuZGlmICAv LyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX0hfCi1kaWZmIC0tZ2l0IHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVy LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRl eHRfd3JpdGVyLmNjCi1pbmRleCBkN2U1M2E0OS4uZDg5ZWI5ZTAgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0X3dyaXRlci5jYwotQEAgLTEwMSw2ICsxMDEsMTMgQEAgTWluaWR1bXBDb250ZXh0V3Jp dGVyOjpDcmVhdGVGcm9tU25hcHNob3QoY29uc3QgQ1BVQ29udGV4dCogY29udGV4dF9zbmFwc2hv dCkgewotICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZVBQQzY0OiB7Ci0rICAgICAgY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8TWluaWR1bXBDb250 ZXh0UFBDNjRXcml0ZXI+KCk7Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDxNaW5pZHVtcENvbnRl eHRQUEM2NFdyaXRlcio+KGNvbnRleHQuZ2V0KCkpCi0rICAgICAgICAgIC0+SW5pdGFsaXplRnJv bVNuYXBzaG90KGNvbnRleHRfc25hcHNob3QtPnBwYzY0KTsKLSsgICAgICBicmVhazsKLSsgICAg fQotKwotICAgICBkZWZhdWx0OiB7Ci0gICAgICAgTE9HKEVSUk9SKSA8PCAidW5rbm93biBjb250 ZXh0IGFyY2hpdGVjdHVyZSAiCi0gICAgICAgICAgICAgICAgICA8PCBjb250ZXh0X3NuYXBzaG90 LT5hcmNoaXRlY3R1cmU7Ci1AQCAtNDUzLDQgKzQ2MCw0NyBAQCBzaXplX3QgTWluaWR1bXBDb250 ZXh0TUlQUzY0V3JpdGVyOjpDb250ZXh0U2l6ZSgpIGNvbnN0IHsKLSAgIHJldHVybiBzaXplb2Yo Y29udGV4dF8pOwotIH0KLSAKLStNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6TWluaWR1bXBD b250ZXh0UFBDNjRXcml0ZXIoKQotKyAgOiBNaW5pZHVtcENvbnRleHRXcml0ZXIoKSwgY29udGV4 dF8oKSB7Ci0rICAgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBrTWluaWR1bXBDb250ZXh0UFBD NjQ7Ci0rfQotKwotK01pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjp+TWluaWR1bXBDb250ZXh0 UFBDNjRXcml0ZXIoKSA9IGRlZmF1bHQ7Ci0rCi0rdm9pZCBNaW5pZHVtcENvbnRleHRQUEM2NFdy aXRlcjo6SW5pdGFsaXplRnJvbVNuYXBzaG90KAotKyAgICBjb25zdCBDUFVDb250ZXh0UFBDNjQq IGNvbnRleHRfc25hcHNob3QpIHsKLSsgIERDSEVDS19FUShzdGF0ZSgpLCBrU3RhdGVNdXRhYmxl KTsKLSsgIERDSEVDS19FUShjb250ZXh0Xy5jb250ZXh0X2ZsYWdzLCBrTWluaWR1bXBDb250ZXh0 UFBDNjQpOwotKwotKyAgY29udGV4dF8uY29udGV4dF9mbGFncyA9IGtNaW5pZHVtcENvbnRleHRQ UEM2NEFsbDsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy5yZWdzLCBjb250ZXh0X3NuYXBzaG90LT5y ZWdzLCBzaXplb2YoY29udGV4dF8ucmVncykpOwotKyAgY29udGV4dF8ubmlwID0gY29udGV4dF9z bmFwc2hvdC0+bmlwOwotKyAgY29udGV4dF8ubXNyID0gY29udGV4dF9zbmFwc2hvdC0+bXNyOwot KyAgY29udGV4dF8uY2NyID0gY29udGV4dF9zbmFwc2hvdC0+Y2NyOwotKyAgY29udGV4dF8ueGVy ID0gY29udGV4dF9zbmFwc2hvdC0+eGVyOwotKyAgY29udGV4dF8ubG5rID0gY29udGV4dF9zbmFw c2hvdC0+bG5rOwotKyAgY29udGV4dF8uY3RyID0gY29udGV4dF9zbmFwc2hvdC0+Y3RyOwotKwot KyAgbWVtY3B5KGNvbnRleHRfLmZwcmVncywgY29udGV4dF9zbmFwc2hvdC0+ZnByZWdzLCBzaXpl b2YoY29udGV4dF8uZnByZWdzKSk7Ci0rICBjb250ZXh0Xy5mcHNjciA9IGNvbnRleHRfc25hcHNo b3QtPmZwc2NyOwotKwotKyAgbWVtY3B5KGNvbnRleHRfLnZyZWdzLnNhdmVfdnIsIGNvbnRleHRf c25hcHNob3QtPnZyZWdzLnNhdmVfdnIsCi0rICAgICAgICAgc2l6ZW9mKGNvbnRleHRfLnZyZWdz LnNhdmVfdnIpKTsKLSsgIG1lbWNweSgmY29udGV4dF8udnJlZ3Muc2F2ZV92c2NyLCAmY29udGV4 dF9zbmFwc2hvdC0+dnJlZ3Muc2F2ZV92c2NyLAotKyAgICAgICAgIHNpemVvZihjb250ZXh0Xy52 cmVncy5zYXZlX3ZzY3IpKTsKLSsgIGNvbnRleHRfLnZyZWdzLnNhdmVfdnJzYXZlID0gY29udGV4 dF9zbmFwc2hvdC0+dnJlZ3Muc2F2ZV92cnNhdmU7Ci0rfQotKwotK2Jvb2wgTWluaWR1bXBDb250 ZXh0UFBDNjRXcml0ZXI6OldyaXRlT2JqZWN0KAotKyAgICBGaWxlV3JpdGVySW50ZXJmYWNlKiBm aWxlX3dyaXRlcikgewotKyAgRENIRUNLX0VRKHN0YXRlKCksIGtTdGF0ZVdyaXRhYmxlKTsKLSsg IHJldHVybiBmaWxlX3dyaXRlci0+V3JpdGUoJmNvbnRleHRfLCBzaXplb2YoY29udGV4dF8pKTsK LSt9Ci0rCi0rc2l6ZV90IE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpDb250ZXh0U2l6ZSgp IGNvbnN0IHsKLSsgIERDSEVDS19HRShzdGF0ZSgpLCBrU3RhdGVGcm96ZW4pOwotKyAgcmV0dXJu IHNpemVvZihjb250ZXh0Xyk7Ci0rfQotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0X3dyaXRlci5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKLWluZGV4IGQ0YWI5MzZlLi4xZDIyZmM1OSAxMDA2NDQK LS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250 ZXh0X3dyaXRlci5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAv bWluaWR1bXBfY29udGV4dF93cml0ZXIuaAotQEAgLTMxNSw2ICszMTUsNDUgQEAgY2xhc3MgTWlu aWR1bXBDb250ZXh0TUlQUzY0V3JpdGVyIGZpbmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdy aXRlciB7Ci0gICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0TUlQUzY0 V3JpdGVyKTsKLSB9OwotIAotK2NsYXNzIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyIGZpbmFs IDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7Ci0rIHB1YmxpYzoKLSsgIE1pbmlkdW1w Q29udGV4dFBQQzY0V3JpdGVyKCk7Ci0rICB+TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKSBv dmVycmlkZTsKLSsKLSsgIC8vISBcYnJpZWYgSW5pdGFsaXplcyB0aGUgTWluaWR1bXBDb250ZXh0 UFBDNjQgYmFzZWQgb24gXGEgY29udGV4dF9zbmFwc2hvdC4KLSsgIC8vIQotKyAgLy8hIFxwYXJh bVtpbl0gY29udGV4dF9zbmFwc2hvdCBUaGUgY29udGV4dCBzbmFwc2hvdCB0byB1c2UgYXMgc291 cmNlIGRhdGEuCi0rICAvLyEKLSsgIC8vISBcbm90ZSBWYWxpZCBpbiAja1N0YXRlTXV0YWJsZS4g Tm8gbXV0YXRpb24gb2YgY29udGV4dCgpIG1heSBiZSBkb25lIGJlZm9yZQotKyAgLy8hICAgICBj YWxsaW5nIHRoaXMgbWV0aG9kLCBhbmQgaXQgaXMgbm90IG5vcm1hbGx5IG5lY2Vzc2FyeSB0byBh bHRlcgotKyAgLy8hICAgICBjb250ZXh0KCkgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4KLSsg IHZvaWQgSW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29udGV4 dF9zbmFwc2hvdCk7Ci0rCi0rICAvLyEgXGJyaWVmIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBj b250ZXh0IHN0cnVjdHVyZSB0aGF0IHRoaXMgb2JqZWN0IHdpbGwKLSsgIC8vISAgICAgd3JpdGUu Ci0rICAvLyEKLSsgIC8vISBcYXR0ZW50aW9uIFRoaXMgcmV0dXJucyBhIG5vbi1gY29uc3RgIHBv aW50ZXIgdG8gdGhpcyBvYmplY3TigJlzIHByaXZhdGUKLSsgIC8vISAgICAgZGF0YSBzbyB0aGF0 IGEgY2FsbGVyIGNhbiBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgZGlyZWN0bHkuCi0r ICAvLyEgICAgIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHByb3ZpZGluZyBzZXR0ZXIgaW50ZXJmYWNl cyB0byBlYWNoIGZpZWxkIGluIHRoZQotKyAgLy8hICAgICBjb250ZXh0IHN0cnVjdHVyZSB3b3Vs ZCBiZSB1bndpZWxkeSBhbmQgY3VtYmVyc29tZS4gQ2FyZSBtdXN0IGJlIHRha2VuCi0rICAvLyEg ICAgIHRvIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBjb3JyZWN0bHkuIFRoZSBjb250 ZXh0IHN0cnVjdHVyZQotKyAgLy8hICAgICBtdXN0IG9ubHkgYmUgbW9kaWZpZWQgd2hpbGUgdGhp cyBvYmplY3QgaXMgaW4gdGhlICNrU3RhdGVNdXRhYmxlCi0rICAvLyEgICAgIHN0YXRlLgotKyAg TWluaWR1bXBDb250ZXh0UFBDNjQqIGNvbnRleHQoKSB7IHJldHVybiAmY29udGV4dF87IH0KLSsK LSsgcHJvdGVjdGVkOgotKyAgLy8gTWluaWR1bXBXcml0YWJsZToKLSsgIGJvb2wgV3JpdGVPYmpl Y3QoRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIG92ZXJyaWRlOwotKwotKyAgLy8g TWluaWR1bXBDb250ZXh0V3JpdGVyOgotKyAgc2l6ZV90IENvbnRleHRTaXplKCkgY29uc3Qgb3Zl cnJpZGU7Ci0rCi0rIHByaXZhdGU6Ci0rICBNaW5pZHVtcENvbnRleHRQUEM2NCBjb250ZXh0XzsK LSsKLSsgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRl cik7Ci0rfTsKLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLSAKLSAjZW5kaWYgIC8vIENS QVNIUEFEX01JTklEVU1QX01JTklEVU1QX0NPTlRFWFRfV1JJVEVSX0hfCi1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3Jp dGVyX3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotaW5kZXggMzIxNmE5MDYuLmE5ZmNiZTlkIDEwMDY0 NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2Nv bnRleHRfd3JpdGVyX3Rlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCi1AQCAtMjEzLDYgKzIxMywy MSBAQCBURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgTUlQUzY0X0Zyb21TbmFwc2hvdCkgewot ICAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dE1JUFM2NCwga1NlZWQpOwotIH0K LSAKLStURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfWmVyb3MpIHsKLSsgIEVtcHR5 Q29udGV4dFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1wQ29udGV4dFBQ QzY0PigKLSsgICAgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQpOwotK30KLSsKLStURVNUKE1p bmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfRnJvbVNuYXBzaG90KSB7Ci0rICBjb25zdGV4cHIg dWludDMyX3Qga1NlZWQgPSA2NDsKLSsgIENQVUNvbnRleHRQUEM2NCBjb250ZXh0X3BwYzY0Owot KyAgQ1BVQ29udGV4dCBjb250ZXh0OwotKyAgY29udGV4dC5wcGM2NCA9ICZjb250ZXh0X3BwYzY0 OwotKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgmY29udGV4dCwga1NlZWQpOwotKyAgRnJv bVNuYXBzaG90VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0 UFBDNjQ+KAotKyAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0LCBrU2Vl ZCk7Ci0rfQotKwotIH0gIC8vIG5hbWVzcGFjZQotIH0gIC8vIG5hbWVzcGFjZSB0ZXN0Ci0gfSAg Ly8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MgdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwot aW5kZXggYTEzNDA3NjAuLjk1ZGM5MjUyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKLSsrKyB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3Jp dGVyLmNjCi1AQCAtMTI2LDYgKzEyNiw4IEBAIHN0ZDo6c3RyaW5nIE1pbmlkdW1wTWlzY0luZm9E ZWJ1Z0J1aWxkU3RyaW5nKCkgewotICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJt aXBzIjsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQotICAgc3RhdGljIGNvbnN0 ZXhwciBjaGFyIGtDUFVbXSA9ICJtaXBzNjQiOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjQpCi0rICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gInBwYzY0IjsKLSAjZWxzZQot ICNlcnJvciBkZWZpbmUga0NQVSBmb3IgdGhpcyBDUFUKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKLWlu ZGV4IGE1MTYyNmNjLi42MWUwYjIwYSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCi1AQCAtMTExLDYgKzExMSwx MSBAQCB2b2lkIENhcHR1cmVNZW1vcnk6OlBvaW50ZWRUb0J5Q29udGV4dChjb25zdCBDUFVDb250 ZXh0JiBjb250ZXh0LAotICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXNlOjpzaXplKGNvbnRl eHQubWlwc2VsLT5yZWdzKTsgKytpKSB7Ci0gICAgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChk ZWxlZ2F0ZSwgY29udGV4dC5taXBzZWwtPnJlZ3NbaV0pOwotICAgfQotKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVn YXRlLCBjb250ZXh0LnBwYzY0LT5uaXApOwotKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXNl OjpzaXplKGNvbnRleHQucHBjNjQtPnJlZ3MpOyArK2kpIHsKLSsgICAgTWF5YmVDYXB0dXJlTWVt b3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0LnBwYzY0LT5yZWdzW2ldKTsKLSsgIH0KLSAjZWxz ZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmggdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCi1pbmRleCA4MTFhNzIwOS4u ZjRmODM5ODEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY3B1X2FyY2hpdGVjdHVyZS5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCi1AQCAtNDMsNyArNDMsMTAgQEAgZW51bSBDUFVB cmNoaXRlY3R1cmUgewotICAga0NQVUFyY2hpdGVjdHVyZU1JUFNFTCwKLSAKLSAgIC8vISBcYnJp ZWYgNjQtYml0IE1JUFNFTC4KLS0gIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAotKyAga0NQVUFy Y2hpdGVjdHVyZU1JUFM2NEVMLAotKwotKyAgLy8hIFxicmllZiA2NC1iaXQgUFBDNjQuCi0rICBr Q1BVQXJjaGl0ZWN0dXJlUFBDNjQKLSB9OwotIAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAot ZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29u dGV4dC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4 dC5jYwotaW5kZXggNmZiOGQ3ZTcuLmIwMWY3Y2FkIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi0rKysgdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKLUBAIC0xNjksNiArMTY5 LDggQEAgdWludDY0X3QgQ1BVQ29udGV4dDo6SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3Qgewot ICAgICAgIHJldHVybiBhcm0tPnBjOwotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoK LSAgICAgICByZXR1cm4gYXJtNjQtPnBjOwotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2 NDoKLSsgICAgICByZXR1cm4gcHBjNjQtPm5pcDsKLSAgICAgZGVmYXVsdDoKLSAgICAgICBOT1RS RUFDSEVEKCk7Ci0gICAgICAgcmV0dXJuIH4wdWxsOwotQEAgLTE4NSw2ICsxODcsOCBAQCB1aW50 NjRfdCBDUFVDb250ZXh0OjpTdGFja1BvaW50ZXIoKSBjb25zdCB7Ci0gICAgICAgcmV0dXJuIGFy bS0+c3A7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICAgIHJldHVybiBh cm02NC0+c3A7Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotKyAgICAgIHJldHVy biBwcGM2NC0+cmVnc1sxXTsKLSAgICAgZGVmYXVsdDoKLSAgICAgICBOT1RSRUFDSEVEKCk7Ci0g ICAgICAgcmV0dXJuIH4wdWxsOwotQEAgLTE5Niw2ICsyMDAsNyBAQCBib29sIENQVUNvbnRleHQ6 OklzNjRCaXQoKSBjb25zdCB7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVg4Nl82NDoKLSAg ICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZU1JUFM2NEVMOgotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKLSAgICAgICByZXR1 cm4gdHJ1ZTsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2OgotICAgICBjYXNlIGtDUFVB cmNoaXRlY3R1cmVBUk06Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2NwdV9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvY3B1X2NvbnRleHQuaAotaW5kZXggZmIyM2M0NjcuLmVlYmVkZTYzIDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmgKLSsr KyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1A QCAtMzUyLDYgKzM1MiwyNCBAQCBzdHJ1Y3QgQ1BVQ29udGV4dE1JUFM2NCB7Ci0gICB1aW50NjRf dCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2Fycnlpbmcg UFBDNjQgQ1BVIHN0YXRlLgotK3N0cnVjdCBDUFVDb250ZXh0UFBDNjQgewotKyAgdWludDY0X3Qg bmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRf dCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCBj dHI7Ci0rICBkb3VibGUgZnByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNjcjsKLSsgIHN0cnVjdCB7 Ci0rICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAgICB1aW50MTI4X3N0cnVjdCBz YXZlX3ZzY3I7Ci0rICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOwotKyAgfSB2cmVnczsKLSt9Owot KwotIC8vISBcYnJpZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBjYXBhYmxlIG9mIGNhcnJ5aW5nIHRo ZSBjb250ZXh0IG9mIGFueSBzdXBwb3J0ZWQKLSAvLyEgICAgIENQVSBhcmNoaXRlY3R1cmUuCi0g c3RydWN0IENQVUNvbnRleHQgewotQEAgLTM4Miw2ICs0MDAsNyBAQCBzdHJ1Y3QgQ1BVQ29udGV4 dCB7Ci0gICAgIENQVUNvbnRleHRBUk02NCogYXJtNjQ7Ci0gICAgIENQVUNvbnRleHRNSVBTKiBt aXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQqIG1pcHM2NDsKLSsgICAgQ1BVQ29udGV4dFBQ QzY0KiBwcGM2NDsKLSAgIH07Ci0gfTsKLSAKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oCi1p bmRleCA5ZjQ2YTQ4OS4uYWE2NzdjNGUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAotKysrIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgK LUBAIC0xNSw2ICsxNSw3IEBACi0gI2lmbmRlZiBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVf Q09OVEVYVF9MSU5VWF9IXwotICNkZWZpbmUgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhfQ1BVX0NP TlRFWFRfTElOVVhfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSAjaW5jbHVkZSAiYnVpbGQv YnVpbGRfY29uZmlnLmgiCi0gI2luY2x1ZGUgInNuYXBzaG90L2NwdV9jb250ZXh0LmgiCi0gI2lu Y2x1ZGUgInNuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgiCi1AQCAtMTc0LDYgKzE3NSw3 OCBAQCB2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0TUlQUygKLSAKLSAjZW5kaWYgIC8vIEFSQ0hf Q1BVX01JUFNfRkFNSUxZIHx8IERPWFlHRU4KLSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpIHx8IERPWFlHRU4KLSsKLSsvLyEgXGJyaWVmIEluaXRhbGl6ZXMgYSBDUFVDb250 ZXh0UFBDNjQgc3RydWN0dXJlIGZyb20gbmF0aXZlIGNvbnRleHQKLSsvLyEgICAgIHN0cnVjdHVy ZXMgb24gTGludXguCi0rLy8hCi0rLy8hIFxwYXJhbVtpbl0gdGhyZWFkX2NvbnRleHQgVGhlIG5h dGl2ZSB0aHJlYWQgY29udGV4dC4KLSsvLyEgXHBhcmFtW2luXSBmbG9hdF9jb250ZXh0IFRoZSBu YXRpdmUgZmxvYXQgY29udGV4dC4KLSsvLyEgXHBhcmFtW2luXSB2ZWN0b3JfY29udGV4dCBUaGUg bmF0aXZlIHZlY3RvciBjb250ZXh0LgotKy8vISBccGFyYW1bb3V0XSBjb250ZXh0IFRoZSBDUFVD b250ZXh0UFBDNjQgc3RydWN0dXJlIHRvIGluaXRhbGl6ZS4KLSt0ZW1wbGF0ZSA8dHlwZW5hbWUg VHJhaXRzPgotK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKLSsgICAgY29uc3QgVGhy ZWFkQ29udGV4dDo6dDY0X3QmIHRocmVhZF9jb250ZXh0LAotKyAgICBjb25zdCBGbG9hdENvbnRl eHQ6OmY2NF90JiBmbG9hdF9jb250ZXh0LAotKyAgICBjb25zdCBWZWN0b3JDb250ZXh0Ojp2NjRf dCYgdmVjdG9yX2NvbnRleHQsCi0rICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29u dGV4dCkgewotKwotKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0Lmdwciwg c2l6ZW9mKGNvbnRleHQtPnJlZ3MpKTsKLSsgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0 Lm5pcDsKLSsgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKLSsgIGNvbnRleHQt PmNjciA9IHRocmVhZF9jb250ZXh0LmNjcjsKLSsgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250 ZXh0LnhlcjsKLSsgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKLSsgIGNvbnRl eHQtPmN0ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5mcHJl Z3MsIGZsb2F0X2NvbnRleHQuZnByZWdzLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7Ci0rICBj b250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBzY3I7Ci0rCi0rICBmb3IgKHVpbnQ4X3Qg aSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0rICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7 Ci0rICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikg fAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzFdLAotKyAgICAgICgoKHVpbnQ2 NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rv cl9jb250ZXh0LnZycmVnc1tpXVszXQotKyAgICB9OwotKyAgfQotKyAgY29udGV4dC0+dnJlZ3Mu c2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNhdmU7Ci0rICBjb250ZXh0LT52cmVncy5z YXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsK LSt9Ci0rCi0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLSt2b2lkIEluaXRpYWxpemVDUFVD b250ZXh0UFBDNjQoCi0rICAgIGNvbnN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCAmdGhyZWFkX2Nv bnRleHQsCi0rICAgIGNvbnN0IFNpZ25hbEZsb2F0Q29udGV4dDY0ICZmbG9hdF9jb250ZXh0LAot KyAgICBjb25zdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgJnZlY3Rvcl9jb250ZXh0LAotKyAgICB0 eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsKLSsgIG1lbWNweShjb250 ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4dC5yZWdzLCBzaXplb2YoY29udGV4dC0+cmVncykpOwot KyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOwotKyAgY29udGV4dC0+bXNyID0g dGhyZWFkX2NvbnRleHQubXNyOwotKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2Ny OwotKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOwotKyAgY29udGV4dC0+bG5r ID0gdGhyZWFkX2NvbnRleHQubG5rOwotKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQu Y3RyOwotKwotKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5yZWdzLCBz aXplb2YoY29udGV4dC0+ZnByZWdzKSk7Ci0rICBjb250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRl eHQuZnBzY3I7Ci0rCi0rICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0rICAg IGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7Ci0rICAgICAgKCgodWludDY0X3QpdmVjdG9y X2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQu dnJyZWdzW2ldWzFdLAotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tp XVsyXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVszXQotKyAg ICB9OwotKyAgfQotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4 dC52cnNhdmU7Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZl Y3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsKLSt9Ci0rCi0rCi0rI2VuZGlmCi0rCi0gfSAg Ly8gbmFtZXNwYWNlIGludGVybmFsCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVn X3JlbmRlenZvdXNfdGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLWluZGV4IGJlMjJjOTAzLi5jNWRmMjNk MSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLUBAIC0xNTksOSAr MTU5LDExIEBAIHZvaWQgVGVzdEFnYWluc3RUYXJnZXQoUHRyYWNlQ29ubmVjdGlvbiogY29ubmVj dGlvbikgewotICAgICAgICAgICBjb25zdCBib29sIGlzX3Zkc29fbWFwcGluZyA9Ci0gICAgICAg ICAgICAgICBkZXZpY2UgPT0gMCAmJiBpbm9kZSA9PSAwICYmIG1hcHBpbmdfbmFtZSA9PSAiW3Zk c29dIjsKLSAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51 eC12ZHNvLnNvLiI7Ci0rICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4NjRb XSA9ICJsaW51eC12ZHNvNjQuc28uIjsKLSAgICAgICAgICAgcmV0dXJuIGlzX3Zkc29fbWFwcGlu ZyA9PQotICAgICAgICAgICAgICAgICAgKG1vZHVsZV9uYW1lLmVtcHR5KCkgfHwKLS0gICAgICAg ICAgICAgICAgICBtb2R1bGVfbmFtZS5jb21wYXJlKDAsIHN0cmxlbihrUHJlZml4KSwga1ByZWZp eCkgPT0gMCk7Ci0rICAgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUuY29tcGFyZSgwLCBzdHJs ZW4oa1ByZWZpeCksIGtQcmVmaXgpID09IDAgfHwKLSsgICAgICAgICAgICAgICAgICBtb2R1bGVf bmFtZS5jb21wYXJlKDAsIHN0cmxlbihrUHJlZml4NjQpLCBrUHJlZml4NjQpID09IDApOwotICAg ICAgICAgfSwKLSAgICAgICAgIG1vZHVsZV9tYXBwaW5nLT5uYW1lLAotICAgICAgICAgbW9kdWxl X21hcHBpbmctPmRldmljZSwKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51 eC5jYwotaW5kZXggY2Q0MGIzYjEuLjZiY2YyM2I2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5j YwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2Vw dGlvbl9zbmFwc2hvdF9saW51eC5jYwotQEAgLTMyMyw2ICszMjMsNjkgQEAgYm9vbCBFeGNlcHRp b25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAotICAgICAgIHJl YWRlciwgY29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5taXBzNjQpOwotIH0KLSAKLSsjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsKLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJh aXRzPgotK3N0YXRpYyBib29sIFJlYWRDb250ZXh0KFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVy LAotKyAgICAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVz cywKLSsgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQq IGRlc3RfY29udGV4dCkgewotKyAgY29uc3QgUHJvY2Vzc01lbW9yeSogbWVtb3J5ID0gcmVhZGVy LT5NZW1vcnkoKTsKLSsKLSsgIExpbnV4Vk1BZGRyZXNzIGdwX3JlZ3NfYWRkcmVzcyA9IGNvbnRl eHRfYWRkcmVzcyArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRv ZihVQ29udGV4dCwgbWNvbnRleHQpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIGdwX3JlZ3MpOwotKwotKyAg dHlwZW5hbWUgVHJhaXRzOjpTaWduYWxUaHJlYWRDb250ZXh0IHRocmVhZF9jb250ZXh0OwotKyAg aWYgKCFtZW1vcnktPlJlYWQoZ3BfcmVnc19hZGRyZXNzLCBzaXplb2YodGhyZWFkX2NvbnRleHQp LCAmdGhyZWFkX2NvbnRleHQpKSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQg Z3BfcmVncyEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICBMaW51eFZNQWRkcmVz cyBmcF9yZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1D b250ZXh0LCBmcF9yZWdzKTsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsRmxvYXRDb250 ZXh0IGZwX2NvbnRleHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVhZChmcF9yZWdzX2FkZHJlc3MsIHNp emVvZihmcF9jb250ZXh0KSwgJmZwX2NvbnRleHQpKSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNv dWxkbid0IHJlYWQgZnBfcmVncyEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICBM aW51eFZNQWRkcmVzcyB2X3JlZ3NfcHRyX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRl eHQpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5h bWUgVHJhaXRzOjpNQ29udGV4dCwgdm14X3Jlc2VydmUpICsgODsKLSsKLSsgIHR5cGVuYW1lIFRy YWl0czo6U2lnbmFsVmVjdG9yQ29udGV4dCB2X2NvbnRleHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVh ZCh2X3JlZ3NfcHRyX2FkZHJlc3MsIHNpemVvZih2X2NvbnRleHQpLCAmdl9jb250ZXh0KSkgewot KyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIHZfcmVncyEiOwotKyAgICByZXR1cm4g ZmFsc2U7Ci0rICB9Ci0rCi0rICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0PENvbnRleHRUcmFp dHM2ND4odGhyZWFkX2NvbnRleHQsIGZwX2NvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZfY29udGV4dCwgZGVzdF9jb250ZXh0KTsKLSsKLSsgIHJldHVybiB0cnVlOwotK30K LSsKLSt0ZW1wbGF0ZTw+Ci0rYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4 dDxDb250ZXh0VHJhaXRzNjQ+KAotKyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsg ICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzKSB7Ci0rICBjb250ZXh0Xy5hcmNoaXRl Y3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7Ci0rICBjb250ZXh0Xy5wcGM2NCA9ICZjb250 ZXh0X3VuaW9uXy5wcGM2NDsKLSsKLSsgIHJldHVybiBpbnRlcm5hbDo6UmVhZENvbnRleHQ8Q29u dGV4dFRyYWl0czY0PigKLSsgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8u cHBjNjQpOwotK30KLSsKLSt0ZW1wbGF0ZTw+Ci0rYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4 OjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzMzI+KAotKyAgICBQcm9jZXNzUmVhZGVyTGludXgq IHJlYWRlciwKLSsgICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzKSB7Ci0rICAvLyBQ UEM2NCBpcyA2NC1iaXQKLSsgIHJldHVybiBmYWxzZTsKLSt9Ci0rCi0gI2VuZGlmICAvLyBBUkNI X0NQVV9YODZfRkFNSUxZCi0gCi0gYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpJbml0aWFs aXplKFByb2Nlc3NSZWFkZXJMaW51eCogcHJvY2Vzc19yZWFkZXIsCi1kaWZmIC0tZ2l0IHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hv dF9saW51eC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4 Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCi1pbmRleCBlYTBjZDIxMC4uZTQyZGY1MjAgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0 aW9uX3NuYXBzaG90X2xpbnV4LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAotQEAgLTg0LDYgKzg0LDgg QEAgY2xhc3MgRXhjZXB0aW9uU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYyBFeGNlcHRpb25T bmFwc2hvdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgICAgQ1BV Q29udGV4dE1JUFMgbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2NDsKLSsjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgQ1BVQ29udGV4dFBQQzY0IHBw YzY0OwotICNlbmRpZgotICAgfSBjb250ZXh0X3VuaW9uXzsKLSAgIENQVUNvbnRleHQgY29udGV4 dF87Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNj Ci1pbmRleCBlNGZmMWFiNy4uMjU1MzRkZDAgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3Qu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNl cHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYwotQEAgLTI5Niw3ICsyOTYsMjggQEAgdm9pZCBF eHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29u dGV4dCYgZXhwZWN0ZWQpIHsKLSAgICAgICAgICAgICAwKTsKLSAjdW5kZWYgQ1BVX0FSQ0hfTkFN RQotIH0KLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSt1c2luZyBOYXRp dmVDUFVDb250ZXh0ID0gdWNvbnRleHRfdDsKLSsKLSt2b2lkIEluaXRpYWxpemVDb250ZXh0KE5h dGl2ZUNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8 IDMyOyArK3JlZykgewotKyAgICBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10gPSBy ZWc7Ci0rICB9Ci0rCi0rICBtZW1zZXQoJmNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MsIDQ0 LAotKyAgICAgIHNpemVvZihjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzKSk7Ci0rfQotIAot K3ZvaWQgRXhwZWN0Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2 ZUNQVUNvbnRleHQmIGV4cGVjdGVkKSB7Ci0rICBFWFBFQ1RfRVEoYWN0dWFsLmFyY2hpdGVjdHVy ZSwga0NQVUFyY2hpdGVjdHVyZVBQQzY0KTsKLSsKLSsgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJl ZyA8IDMyOyArK3JlZykgewotKyAgICBFWFBFQ1RfRVEoYWN0dWFsLnBwYzY0LT5yZWdzW3JlZ10s IGV4cGVjdGVkLnVjX21jb250ZXh0LmdwX3JlZ3NbcmVnXSk7Ci0rICB9Ci0rCi0rICBFWFBFQ1Rf RVEobWVtY21wKGFjdHVhbC5wcGM2NC0+ZnByZWdzLCBleHBlY3RlZC51Y19tY29udGV4dC5mcF9y ZWdzLAotKyAgICAgICAgICAgIHNpemVvZihhY3R1YWwucHBjNjQtPmZwcmVncykpLCAwKTsKLSt9 Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2Mg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFk ZXJfbGludXguY2MKLWluZGV4IGI5NmFiZmU3Li5kZjEyY2E1NiAxMDA2NDQKLS0tLSB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51 eC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3By b2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi1AQCAtMTA4LDYgKzEwOCw4IEBAIHZvaWQgUHJvY2Vzc1Jl YWRlckxpbnV4OjpUaHJlYWQ6OkluaXRpYWxpemVTdGFjayhQcm9jZXNzUmVhZGVyTGludXgqIHJl YWRlcikgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICBzdGFja19w b2ludGVyID0gcmVhZGVyLT5JczY0Qml0KCkgPyB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50 NjQucmVnc1syOV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRocmVh ZF9pbmZvLnRocmVhZF9jb250ZXh0LnQzMi5yZWdzWzI5XTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHN0YWNrX3BvaW50ZXIgPSB0aHJlYWRfaW5mby50aHJlYWRf Y29udGV4dC50NjQuZ3ByWzFdOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nl c3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYwotaW5kZXggNWI1NzIzNjEu LjA0OWMzMjg1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eF90ZXN0 LmNjCi1AQCAtNjEyLDYgKzYxMiw4IEBAIGJvb2wgV3JpdGVUZXN0TW9kdWxlKGNvbnN0IGJhc2U6 OkZpbGVQYXRoJiBtb2R1bGVfcGF0aCkgewotICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1f QUFSQ0g2NDsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNFTCkgfHwgZGVmaW5lZChBUkNI X0NQVV9NSVBTNjRFTCkKLSAgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVNX01JUFM7Ci0rI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSsgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVN X1BQQzY0OwotICNlbmRpZgotIAotICAgbW9kdWxlLmVoZHIuZV92ZXJzaW9uID0gRVZfQ1VSUkVO VDsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvc2lnbmFsX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9zaWduYWxfY29udGV4dC5oCi1pbmRleCAxMTAwMjQ2OC4uOGUzMzVhMDkgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFs X2NvbnRleHQuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3NpZ25hbF9jb250ZXh0LmgKLUBAIC00MjIsNiArNDIyLDg5IEBAIHN0YXRpY19hc3NlcnQo b2Zmc2V0b2YoVUNvbnRleHQ8Q29udGV4dFRyYWl0czY0PiwgbWNvbnRleHQuZnByZWdzKSA9PQot ICAgICAgICAgICAgICAgImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Ci0gI2VuZGlmCi0gCi0r I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rCi0rc3RydWN0IFNpZ25hbFRo cmVhZENvbnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsgIHVpbnQ2NF90IG5pcDsK LSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IG9yaWdfcjM7Ci0rICB1aW50NjRfdCBjdHI7 Ci0rICB1aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBjY3I7Ci0r ICB1aW50NjRfdCBzb2Z0ZTsKLSsgIHVpbnQ2NF90IHRyYXA7Ci0rICB1aW50NjRfdCBkYXI7Ci0r ICB1aW50NjRfdCBkc2lzcjsKLSsgIHVpbnQ2NF90IHJlc3VsdDsKLSsgIHVpbnQ2NF90IGRzY3I7 Ci0rICB1aW50NjRfdCBmcHIwWzNdOwotK307Ci0rCi0rc3RydWN0IFNpZ25hbEZsb2F0Q29udGV4 dDY0IHsKLSsgIGRvdWJsZSByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNjcjsKLSt9OwotKwotK3N0 cnVjdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgewotKyAgaW50MzJfdCB2cnJlZ3NbMzJdWzRdOwot KyAgc3RydWN0IHsKLSsgICAgaW50MzJfdCBfX3BhZFszXTsKLSsgICAgaW50MzJfdCB2c2NyX3dv cmQ7Ci0rICB9IHZzY3I7Ci0rICBpbnQzMl90IHZyc2F2ZTsKLSsgIGludDMyX3QgX19wYWRbM107 Ci0rfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKTsKLSsKLSsKLSsjcHJhZ21hIHBh Y2socG9wKQotK3N0cnVjdCBNQ29udGV4dDY0IHsKLSsgIHVpbnQ2NF90IHJlc2VydmVkWzRdOwot KyAgaW50MzJfdCBzaWduYWw7Ci0rICBpbnQzMl90IF9fcGFkMDsKLSsgIHVpbnQ2NF90IGhhbmRs ZXI7Ci0rICB1aW50NjRfdCBvbGRtYXNrOwotKyAgdWludDY0X3QgcHRfcmVnc19wdHI7Ci0rICBT aWduYWxUaHJlYWRDb250ZXh0NjQgZ3BfcmVnczsKLSsgIFNpZ25hbEZsb2F0Q29udGV4dDY0ICBm cF9yZWdzOwotKyAgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICp2X3JlZ3M7Ci0rICBpbnQ2NF90IHZt eF9yZXNlcnZlWzY5XTsKLSt9OwotKwotK3N0cnVjdCBDb250ZXh0VHJhaXRzNjQgOiBwdWJsaWMg VHJhaXRzNjQgewotKyAgdXNpbmcgTUNvbnRleHQgPSBNQ29udGV4dDY0OwotKyAgdXNpbmcgU2ln bmFsVGhyZWFkQ29udGV4dCA9IFNpZ25hbFRocmVhZENvbnRleHQ2NDsKLSsgIHVzaW5nIFNpZ25h bEZsb2F0Q29udGV4dCA9IFNpZ25hbEZsb2F0Q29udGV4dDY0OwotKyAgdXNpbmcgU2lnbmFsVmVj dG9yQ29udGV4dCA9IFNpZ25hbFZlY3RvckNvbnRleHQ2NDsKLSsgIHVzaW5nIENQVUNvbnRleHQg PSBDUFVDb250ZXh0UFBDNjQ7Ci0rfTsKLSsKLStzdHJ1Y3QgQ29udGV4dFRyYWl0czMyIDogcHVi bGljIFRyYWl0czMyIHt9OwotKwotK3N0cnVjdCBVQ29udGV4dCB7Ci0rICB1aW50NjRfdCBmbGFn czsKLSsgIHVpbnQ2NF90IGxpbms7Ci0rICBTaWduYWxTdGFjazxDb250ZXh0VHJhaXRzNjQ+IHN0 YWNrOwotKyAgU2lnc2V0PENvbnRleHRUcmFpdHM2ND4gc2lnbWFzazsKLSsgIE1Db250ZXh0NjQg bWNvbnRleHQ7Ci0rfTsKLSsjcHJhZ21hIHBhY2socHVzaCwgMSkKLSsKLStzdGF0aWNfYXNzZXJ0 KHNpemVvZihVQ29udGV4dCkgPT0gc2l6ZW9mKHVjb250ZXh0X3QpLAotKyAgICAgICAgICAgICAg InVjb250ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKE1Db250 ZXh0NjQpID09IHNpemVvZihtY29udGV4dF90KSwKLSsgICAgICAgICAgICAgICJtY29udGV4dF90 IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxUaHJlYWRDb250 ZXh0NjQpID09IHNpemVvZihncmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgImdyZWdzZXRfdCBz aXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsRmxvYXRDb250ZXh0 NjQpID09IHNpemVvZihmcHJlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJmcHJlZ3NldF90IHNp emUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxWZWN0b3JDb250ZXh0 NjQpID09IHNpemVvZih2cnJlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJ2cnJlZ3NldF90IHNp emUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4 dCkgPT0KLSsgICAgICAgICAgICAgIG9mZnNldG9mKHVjb250ZXh0X3QsIHVjX21jb250ZXh0KSwg Im1jb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoTUNv bnRleHQ2NCwgZ3BfcmVncykgPT0KLSsgICAgICAgICAgICAgIG9mZnNldG9mKG1jb250ZXh0X3Qs IGdwX3JlZ3MpLCAiZ3BfcmVncyBvZmZzZXQgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJvciBQ b3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGlu dXguY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVt X3NuYXBzaG90X2xpbnV4LmNjCi1pbmRleCA4NTY0ZDNkNC4uYjY5MGVjZDQgMTAwNjQ0Ci0tLS0g dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3NuYXBz aG90X2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvc3lzdGVtX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAtMjAzLDYgKzIwMyw4IEBAIENQVUFy Y2hpdGVjdHVyZSBTeXN0ZW1TbmFwc2hvdExpbnV4OjpHZXRDUFVBcmNoaXRlY3R1cmUoKSBjb25z dCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBwcm9j ZXNzX3JlYWRlcl8tPklzNjRCaXQoKSA/IGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoga0NQVUFyY2hpdGVjdHVyZU1JUFNFTDsK LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVybiBrQ1BVQXJj aGl0ZWN0dXJlUFBDNjQ7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVy ZQotICNlbmRpZgotQEAgLTIxOCw2ICsyMjAsOSBAQCB1aW50MzJfdCBTeXN0ZW1TbmFwc2hvdExp bnV4OjpDUFVSZXZpc2lvbigpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIDA7Ci0r I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxl bWVudGVkIG9uIFBQQzY0Ci0rICByZXR1cm4gMDsKLSAjZWxzZQotICNlcnJvciBwb3J0IHRvIHlv dXIgYXJjaGl0ZWN0dXJlCi0gI2VuZGlmCi1AQCAtMjM4LDYgKzI0Myw5IEBAIHN0ZDo6c3RyaW5n IFN5c3RlbVNuYXBzaG90TGludXg6OkNQVVZlbmRvcigpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwot ICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxlbWVudGVkIG9uIFBQQzY0Ci0rICByZXR1cm4gc3Rk OjpzdHJpbmcoKTsKLSAjZWxzZQotICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0dXJlCi0g I2VuZGlmCi1AQCAtMzcxLDYgKzM3OSw5IEBAIGJvb2wgU3lzdGVtU25hcHNob3RMaW51eDo6TlhF bmFibGVkKCkgY29uc3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0g ICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCi0gICByZXR1cm4gZmFsc2U7Ci0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxlbWVudGVk IG9uIFBQQzY0Ci0rICByZXR1cm4gZmFsc2U7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9s aW51eC5jYwotaW5kZXggZTNlMmJlYmQuLjhlZjQzNzUyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5j YwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVh ZF9zbmFwc2hvdF9saW51eC5jYwotQEAgLTE4Niw2ICsxODYsMTQgQEAgYm9vbCBUaHJlYWRTbmFw c2hvdExpbnV4OjpJbml0aWFsaXplKFByb2Nlc3NSZWFkZXJMaW51eCogcHJvY2Vzc19yZWFkZXIs Ci0gICAgICAgICB0aHJlYWQudGhyZWFkX2luZm8uZmxvYXRfY29udGV4dC5mMzIsCi0gICAgICAg ICBjb250ZXh0Xy5taXBzZWwpOwotICAgfQotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQotKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0 OwotKyAgY29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7Ci0rICBJbml0aWFs aXplQ1BVQ29udGV4dFBQQzY0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgICAgdGhyZWFkLnRocmVh ZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NCwKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8uZmxv YXRfY29udGV4dC5mNjQsCi0rICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLnZlY3Rvcl9jb250ZXh0 LnY2NCwKLSsgICAgICBjb250ZXh0Xy5wcGM2NCk7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAj ZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLWluZGV4IDQ0Y2M2ZjZk Li5kNDEzNjQ2MSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAotKysrIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi1AQCAt NjgsNiArNjgsOCBAQCBjbGFzcyBUaHJlYWRTbmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIFRo cmVhZFNuYXBzaG90IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAg ICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0Owot KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBDUFVDb250ZXh0UFBD NjQgcHBjNjQ7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4 Nl9GQU1JTFkKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9s aW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwotaW5kZXggZDNkNWViZGYuLjNmZDczMGNiIDEw MDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxp YXJ5X3ZlY3Rvci5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwotQEAgLTU2LDYgKzU2LDExIEBAIGJvb2wgQXV4aWxpYXJ5 VmVjdG9yOjpSZWFkKFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAgICAgaWYgKHR5 cGUgPT0gQVRfSUdOT1JFKSB7Ci0gICAgICAgY29udGludWU7Ci0gICAgIH0KLSsjaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIGlmICh0eXBlID09IEFUX0lHTk9SRVBQQykg ewotKyAgICAgIGNvbnRpbnVlOwotKyAgICB9Ci0rI2VuZGlmCi0gICAgIGlmICghTWFwSW5zZXJ0 T3JSZXBsYWNlKCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0cikpIHsKLSAgICAgICBMT0co RVJST1IpIDw8ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwot ZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFj ZV9icm9rZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJh Y2VfYnJva2VyLmNjCi1pbmRleCAxNTVhMWUwYy4uNWU1MGNlYjUgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNjCi0rKysg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNj Ci1AQCAtOTQsOCArOTQsOCBAQCBpbnQgUHRyYWNlQnJva2VyOjpSdW4oKSB7Ci0gfQotIAotIGJv b2wgUHRyYWNlQnJva2VyOjpBbGxvY2F0ZUF0dGFjaG1lbnRzKCkgewotLSAgY29uc3RleHByIHNp emVfdCBwYWdlX3NpemUgPSA0MDk2OwotLSAgY29uc3RleHByIHNpemVfdCBhbGxvY19zaXplID0K LSsgIHN0YXRpYyBzaXplX3QgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKLSsgIHNpemVfdCBh bGxvY19zaXplID0KLSAgICAgICAoc2l6ZW9mKFNjb3BlZFB0cmFjZUF0dGFjaCkgKyBwYWdlX3Np emUgLSAxKSAmIH4ocGFnZV9zaXplIC0gMSk7Ci0gICB2b2lkKiBhbGxvYyA9IHNicmsoYWxsb2Nf c2l6ZSk7Ci0gICBpZiAocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYWxsb2MpID09IC0xKSB7 Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRy YWNlci5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIu Y2MKLWluZGV4IDU1N2UwZDM2Li4wOGFlNDM0YiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLUBAIC0zOTgsNiArMzk4LDY0IEBA IGJvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSAgIHJldHVybiB0cnVlOwotIH0KLSAK LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsvLyBQUEM2NCBoYXMgaGFk IEhBVkVfQVJDSF9UUkFDRUhPT0sgc2V0IHNpbmNlIDIuNi4yNyAoZXZlbiBiZWZvcmUgeDg2IGhh ZCBpdCkuCi0rLy8gVGhhdCBtZWFucyB3ZSBjYW4gc2ltcGx5IHVzZSBQVFJBQ0VfR0VUUkVHRVNF VC4KLSsKLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVzdGluYXRpb24+Ci0rYm9vbCBHZXRSZWdpc3Rl clNldChwaWRfdCB0aWQsIGludCBzZXQsIERlc3RpbmF0aW9uKiBkZXN0LCBib29sIGNhbl9sb2cp IHsKLSsgIGlvdmVjIGlvdjsKLSsgIGlvdi5pb3ZfYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9p ZCo+KGRlc3QpOwotKyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoKmRlc3QpOwotKyAgaWYgKHB0cmFj ZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHNldCksICZp b3YpICE9IDApIHsKLSsgICAgUExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgInB0cmFjZSI7Ci0r ICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsgIGlmIChpb3YuaW92X2xlbiAhPSBzaXplb2YoKmRl c3QpKSB7Ci0rICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuZXhwZWN0ZWQgcmVnaXN0 ZXJzIHNpemUiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rICByZXR1cm4gdHJ1ZTsKLSt9 Ci0rCi0rYm9vbCBHZXRWZWN0b3JSZWdpc3RlcnM2NChwaWRfdCB0aWQsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICBWZWN0b3JDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBjYW5fbG9nKSB7Ci0rICByZXR1cm4gR2V0UmVnaXN0ZXJTZXQodGlkLCBO VF9QUENfVk1YLCAmY29udGV4dC0+djY0LCBjYW5fbG9nKTsKLSt9Ci0rCi0rYm9vbCBHZXRGbG9h dGluZ1BvaW50UmVnaXN0ZXJzNjQocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJldHVybiBHZXRSZWdpc3RlclNldCh0aWQs IE5UX1BSRlBSRUcsICZjb250ZXh0LT5mNjQsIGNhbl9sb2cpOwotK30KLSsKLStib29sIEdldFRo cmVhZEFyZWE2NChwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFk Q29udGV4dCYgY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyog YWRkcmVzcywKLSsgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIC8vIFBQ QzY0IGRvZXNuJ3QgaGF2ZSBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBIHNpbmNlIHRoZSB0aHJlYWQg cG9pbnRlcgotKyAgLy8gaXMgc3RvcmVkIGluIEdQUiAxMy4KLSsgIFRocmVhZENvbnRleHQ6OnQ2 NF90IHRjOwotKyAgaWYgKCFHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BSU1RBVFVTLCAmdGMsIGNh bl9sb2cpKSB7Ci0rICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuYWJsZSB0byBnZXQg dGhyZWFkIHBvaW50ZXIhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgKmFkZHJl c3MgPSB0Yy5ncHJbMTNdOwotKwotKyAgcmV0dXJuIHRydWU7Ci0rfQotKwotKy8vIFN0dWJzIGZv ciAzMi1iaXQgZnVuY3Rpb25zIG5vdCBhcHBsaWNhYmxlIG9uIFBQQzY0Ci0rYm9vbCBHZXRGbG9h dGluZ1BvaW50UmVnaXN0ZXJzMzIocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9Ci0rYm9vbCBHZXRUaHJl YWRBcmVhMzIocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRocmVhZENv bnRleHQgJmNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJlc3MgKmFk ZHJlc3MsCi0rICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7IHJldHVybiBmYWxz ZTsgfQotKwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZf RkFNSUxZCi1AQCAtNDk0LDYgKzU1Miw5IEBAIGJvb2wgUHRyYWNlcjo6R2V0VGhyZWFkSW5mbyhw aWRfdCB0aWQsIFRocmVhZEluZm8qIGluZm8pIHsKLSAgIGlmIChpc182NF9iaXRfKSB7Ci0gICAg IHJldHVybiBHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnRocmVhZF9j b250ZXh0LCBjYW5fbG9nXykgJiYKLSAgICAgICAgICAgIEdldEZsb2F0aW5nUG9pbnRSZWdpc3Rl cnM2NCh0aWQsICZpbmZvLT5mbG9hdF9jb250ZXh0LCBjYW5fbG9nXykgJiYKLSsjaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgICAgICAgICBHZXRWZWN0b3JSZWdpc3RlcnM2 NCh0aWQsICZpbmZvLT52ZWN0b3JfY29udGV4dCwgY2FuX2xvZ18pICYmCi0rI2VuZGlmCi0gICAg ICAgICAgICBHZXRUaHJlYWRBcmVhNjQodGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg IGluZm8tPnRocmVhZF9jb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbmZv LT50aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzLAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmggdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1pbmRleCA1YjU1YzI0YS4u ZGVhMGQxZjMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9s aW51eC90aHJlYWRfaW5mby5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRp bC9saW51eC90aHJlYWRfaW5mby5oCi1AQCAtMjgsNiArMjgsMTAgQEAKLSAjaW5jbHVkZSA8YW5k cm9pZC9hcGktbGV2ZWwuaD4KLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCi0rI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgotKyNlbmRpZgotKwotIG5hbWVz cGFjZSBjcmFzaHBhZCB7Ci0gCi0gLy8hIFxicmllZiBUaGUgc2V0IG9mIGdlbmVyYWwgcHVycG9z ZSByZWdpc3RlcnMgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1pbHkuCi1AQCAtNzksNiArODMsOCBA QCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDMyX3QgY3AwX3N0YXR1czsKLSAgICAg dWludDMyX3QgY3AwX2NhdXNlOwotICAgICB1aW50MzJfdCBwYWRkaW5nMV87Ci0rI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFBQQzY0IGlzIDY0LWJpdAotICNl bHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAt MTMyLDYgKzEzOCwyMSBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDY0X3QgY3Aw X2JhZHZhZGRyOwotICAgICB1aW50NjRfdCBjcDBfc3RhdHVzOwotICAgICB1aW50NjRfdCBjcDBf Y2F1c2U7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFJl ZmxlY3RzIHN0cnVjdCBwdF9yZWdzIGluIGFzbS9wdHJhY2UuaC4KLSsgICAgdWludDY0X3QgZ3By WzMyXTsKLSsgICAgdWludDY0X3QgbmlwOwotKyAgICB1aW50NjRfdCBtc3I7Ci0rICAgIHVpbnQ2 NF90IG9yaWdfZ3ByMzsKLSsgICAgdWludDY0X3QgY3RyOwotKyAgICB1aW50NjRfdCBsbms7Ci0r ICAgIHVpbnQ2NF90IHhlcjsKLSsgICAgdWludDY0X3QgY2NyOwotKyAgICB1aW50NjRfdCBzb2Z0 ZTsKLSsgICAgdWludDY0X3QgdHJhcDsKLSsgICAgdWludDY0X3QgZGFyOwotKyAgICB1aW50NjRf dCBkc2lzcjsKLSsgICAgdWludDY0X3QgcmVzdWx0OwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0g I2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMTQzLDYgKzE2NCw4IEBAIHVuaW9u IFRocmVhZENvbnRleHQgewotICAgdXNpbmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9IHVzZXJfcmVn czsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotIC8vIE5vIGFwcHJvcHJp YXRlIE5hdGl2ZVRocmVhZHNDb250ZXh0IHR5cGUgYXZhaWxhYmxlIGZvciBNSVBTCi0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICB1c2luZyBOYXRpdmVUaHJlYWRDb250 ZXh0ID0gc3RydWN0IHB0X3JlZ3M7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8v IEFSQ0hfQ1BVX1g4Nl9GQU1JTFkgfHwgQVJDSF9DUFVfQVJNNjQKLUBAIC0yMTgsNiArMjQxLDkg QEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSAgICAgfSBmcHJlZ3NbMzJdOwotICAgICB1aW50MzJf dCBmcGNzcjsKLSAgICAgdWludDMyX3QgZnB1X2lkOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotKyAgICAvLyBDcmFzaHBhZCdzIFBQQyBzdXBwb3J0IGlzIDY0LWJpdCBv bmx5LCBzbyB0aGlzCi0rICAgIC8vIDMyYml0LW9ubHkgc3RydWN0IGlzIGRlY2xhcmVkIGFzIGVt cHR5LgotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFN SUxZCi1AQCAtMjUyLDYgKzI3OCwxMCBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotICAgICBkb3Vi bGUgZnByZWdzWzMyXTsKLSAgICAgdWludDMyX3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90IGZwdV9p ZDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUmVmbGVj dHMgZnByZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAotKyAgICBkb3VibGUgZnByZWdzWzMyXTsK LSsgICAgZG91YmxlIGZwc2NyOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBB UkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMjgwLDYgKzMxMCw4IEBAIHVuaW9uIEZsb2F0Q29udGV4 dCB7Ci0gICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZih1c2VyX2Zwc2ltZF9z dHJ1Y3QpLCAiU2l6ZSBtaXNtYXRjaCIpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpCi0gLy8gTm8gYXBwcm9wcmlhdGUgZmxvYXRpbmcgcG9pbnQgY29udGV4dCBuYXRpdmUg dHlwZSBmb3IgYXZhaWxhYmxlIE1JUFMuCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCi0rICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZihmcHJlZ3NldF90 KSwgIlNpemUgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8g QVJDSF9DUFVfWDg2Ci1AQCAtMjg3LDYgKzMxOSwyNiBAQCB1bmlvbiBGbG9hdENvbnRleHQgewot IHN0YXRpY19hc3NlcnQoc3RkOjppc19zdGFuZGFyZF9sYXlvdXQ8RmxvYXRDb250ZXh0Pjo6dmFs dWUsCi0gICAgICAgICAgICAgICAiTm90IHN0YW5kYXJkIGxheW91dCIpOwotIAotKy8vISBcYnJp ZWYgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWlseQot K3VuaW9uIFZlY3RvckNvbnRleHQgewotKyAgc3RydWN0IHYzMl90IHt9IHYzMjsKLSsjaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRf XygxNikpKSAvLyBWZWN0b3IgY29udGV4dCBtdXN0IGJlIGRvdWJsZXdvcmQgYWxpZ25lZC4KLSsj ZW5kaWYKLSsgIHN0cnVjdCB2NjRfdCB7Ci0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQotKyAgICAvLyBSZWZsZWN0cyB2cnJlZ3NldF90IGluIHN5cy91Y29udGV4dC5oCi0rICAg IHVpbnQzMl90IHZycmVnc1szMl1bNF07Ci0rICAgIHN0cnVjdCB7Ci0rICAgICAgdWludDMyX3Qg X19wYWRbM107Ci0rICAgICAgdWludDMyX3QgdnNjcl93b3JkOwotKyAgICB9IHZzY3I7Ci0rICAg IHVpbnQzMl90IHZyc2F2ZTsKLSsgICAgdWludDMyX3QgX19wYWRbM107Ci0rI2VuZGlmCi0rICB9 IHY2NDsKLSt9OwotKwotIC8vISBcYnJpZWYgQSBjb2xsZWN0aW9uIG9mIGBwdHJhY2VgLWFibGUg aW5mb3JtYXRpb24gYWJvdXQgYSB0aHJlYWQuCi0gc3RydWN0IFRocmVhZEluZm8gewotICAgVGhy ZWFkSW5mbygpOwotQEAgLTI5OCw2ICszNTAsOSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gICAv LyEgXGJyaWVmIFRoZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgZm9yIHRoZSB0aHJlYWQuCi0g ICBGbG9hdENvbnRleHQgZmxvYXRfY29udGV4dDsKLSAKLSsgIC8vISBcYnJpZWYgKE9wdGlvbmFs KSBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciB0aGUgdGhyZWFkLgotKyAgVmVjdG9yQ29u dGV4dCB2ZWN0b3JfY29udGV4dDsKLSsKLSAgIC8vISBcYnJpZWYgVGhlIHRocmVhZC1sb2NhbCBz dG9yYWdlIGFkZHJlc3MgZm9yIHRoZSB0aHJlYWQuCi0gICBMaW51eFZNQWRkcmVzcyB0aHJlYWRf c3BlY2lmaWNfZGF0YV9hZGRyZXNzOwotIH07Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKLWluZGV4IDNmZjcxMTg0 Li4zZTgyZjRiOSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L21pc2MvY2FwdHVyZV9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKLUBAIC02OCw2ICs2OCw3IEBAIHVzaW5nIE5h dGl2ZUNQVUNvbnRleHQgPSB1Y29udGV4dF90OwotIC8vISAgICAgbWFjT1MvTGludXgvRnVjaHNp YSB8IHg4Nl82NCAgICAgICB8IGAlJXJkaWAKLSAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAg fCBBUk0vQVJNNjQgICAgfCBgcjBgL2B4MGAKLSAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAg fCBNSVBTL01JUFM2NCAgfCBgJGEwYAotKy8vISAgICAgTGludXggICAgICAgICAgICAgICB8IFBQ QzY0ICAgICAgICB8IGByM2AKLSAvLyEKLSAvLyEgICAgIEFkZGl0aW9uYWxseSwgdGhlIHZhbHVl IGBMUmAgb24gQVJNL0FSTTY0IHdpbGwgYmUgdGhlIHJldHVybiBhZGRyZXNzIG9mCi0gLy8hICAg ICB0aGlzIGZ1bmN0aW9uLgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCi1pbmRleCA1MjIxNWVl NS4uYjNlNGEzZWMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRp bC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCi1AQCAtMzIsNyArMzIs NyBAQAotICAgLmJhbGlnbiA0LCAweDAKLSAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTCwg JWZ1bmN0aW9uCi0gICAudHlwZSBDQVBUVVJFQ09OVEVYVF9TWU1CT0wyLCAlZnVuY3Rpb24KLS0j ZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotKyNlbGlmIGRlZmluZWQoX19taXBzX18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgIC5iYWxpZ24gNCwgMHgwCi0gI2VuZGlmCi0gCi1AQCAtNDIz LDQgKzQyMywyMTQgQEAgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MMjoKLSAgIGpyICRyYQotIAotICAg LnNldCBhdAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFN0b3JlIHIwLXIz MQotKyAgc3RkIDAsIDB4ZTgoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzBd Ci0rICBzdGQgMSwgMHhmMCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMV0K LSsgIHN0ZCAyLCAweGY4KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syXQot KyAgLy8gbm90ZSB0aGF0IHIzJ3Mgb3JpZ2luYWwgdmFsdWUgd2FzIGxvc3QKLSsgIHN0ZCAzLCAw eDEwMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szXQotKyAgc3RkIDQsIDB4 MTA4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzRdCi0rICBzdGQgNSwgMHgx MTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNV0KLSsgIHN0ZCA2LCAweDEx OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s2XQotKyAgc3RkIDcsIDB4MTIw KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzddCi0rICBzdGQgOCwgMHgxMjgo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbOF0KLSsgIHN0ZCA5LCAweDEzMCgz KSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s5XQotKyAgc3RkIDEwLCAweDEzOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEwXQotKyAgc3RkIDExLCAweDE0MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzExXQotKyAgc3RkIDEyLCAweDE0OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEyXQotKyAgc3RkIDEzLCAweDE1MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEzXQotKyAgc3RkIDE0LCAweDE1OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE0XQotKyAgc3RkIDE1LCAweDE2MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE1XQotKyAgc3RkIDE2LCAweDE2OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE2XQotKyAgc3RkIDE3LCAweDE3MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE3XQotKyAgc3RkIDE4LCAweDE3OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE4XQotKyAgc3RkIDE5LCAweDE4MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE5XQotKyAgc3RkIDIwLCAweDE4OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIwXQotKyAgc3RkIDIxLCAweDE5MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIxXQotKyAgc3RkIDIyLCAweDE5OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIyXQotKyAgc3RkIDIzLCAweDFhMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIzXQotKyAgc3RkIDI0LCAweDFhOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI0XQotKyAgc3RkIDI1LCAweDFiMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI1XQotKyAgc3RkIDI2LCAweDFiOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI2XQotKyAgc3RkIDI3LCAweDFjMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI3XQotKyAgc3RkIDI4LCAweDFjOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI4XQotKyAgc3RkIDI5LCAweDFkMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI5XQotKyAgc3RkIDMwLCAweDFkOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMwXQotKyAgc3RkIDMxLCAweDFlMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMxXQotKwotKyAgLy8gRm9yIE5JUCwg d2UgY2FuIHVzZSB0aGUgdmFsdWUgaW4gdGhlIGxpbmsgcmVnaXN0ZXIKLSsgIG1mbHIgMAotKyAg c3RkIDAsIDB4MWU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXQot KwotKyAgLy8gQ1RSCi0rICBtZmN0ciAwCi0rICBzdGQgMCwgMHgyMDAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdCi0rCi0rICAvLyBGb3IgTE5LLCB3ZSdsbCB1c2Ug dGhlIGNhbGxlcidzIExSIHNhdmUgYXJlYSAoMiBzdGFjayBmcmFtZXMgdXApLgotKyAgLy8gcjQg Y2FuIGJlIHVzZWQgYXMgYSBzY3JhdGNoIHJlZ2lzdGVyIHNpbmNlIGl0IGhhcyBhbHJlYWR5IGJl ZW4gc2F2ZWQuCi0rICBsZCA0LCAwKDEpCi0rICBsZCA0LCAxNig0KQotKyAgc3RkIDQsIDB4MjA4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXQotKwotKyAgLy8gWEVS Ci0rICBtZnhlciAwCi0rICBzdGQgMCwgMHgyMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9YRVJdCi0rCi0rICAvLyBDQ1IKLSsgIG1mY3IgMAotKyAgc3RkIDAsIDB4MjE4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXQotKwotKyAgLy8gTVNS LCBvcmlnX3IzLCBNUSwgVFJBUCwgREFSLCBEU0lTUiwgUkVTVUxULCBEU0NSLAotKyAgLy8gbm90 IHVzZWQgb3Igbm90IHJlbGV2YW50LCAgemVybyB0aGVtIG91dC4KLSsgIGxpIDQsIDAKLSsgIHN0 ZCA0LCAweDFmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl0KLSsg IHN0ZCA0LCAweDFmOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX09SSUdf UjNdCi0rICBzdGQgNCwgMHgyMjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9NUV0KLSsgIHN0ZCA0LCAweDIyOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz W1BUX1RSQVBdCi0rICBzdGQgNCwgMHgyMzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9EQVJdCi0rICBzdGQgNCwgMHgyMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9EU0lTUl0KLSsgIHN0ZCA0LCAweDI0MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX1JFU1VMVF0KLSsgIHN0ZCA0LCAweDI0OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTQ1JdCi0rCi0rICAvLyBVcGRhdGUgY29udGV4dC0+dWNf bWNvbnRleHQucmVncyB0byBwb2ludCB0byBncF9yZWdzCi0rICBhZGRpIDAsIDMsIDB4ZTgKLSsg IHN0ZCAwLCAweGUwKDMpCi0rCi0rICAvLyBTYXZlIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyAw LTMxCi0rICBzdGZkIDAsIDB4MjY4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzBdCi0rICBzdGZkIDEsIDB4MjcwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzFdCi0rICBzdGZkIDIsIDB4Mjc4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzJdCi0rICBzdGZkIDMsIDB4MjgwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzNdCi0rICBzdGZkIDQsIDB4Mjg4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzRdCi0rICBzdGZkIDUsIDB4MjkwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzVdCi0rICBzdGZkIDYsIDB4Mjk4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzZdCi0rICBzdGZkIDcsIDB4MmEwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzddCi0rICBzdGZkIDgsIDB4MmE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzhdCi0rICBzdGZkIDksIDB4MmIwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzldCi0rICBzdGZkIDEwLCAweDJiOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzEwXQotKyAgc3RmZCAxMSwgMHgyYzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1sxMV0KLSsgIHN0ZmQgMTIsIDB4MmM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMTJdCi0rICBzdGZkIDEzLCAweDJkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9y ZWdzWzEzXQotKyAgc3RmZCAxNCwgMHgyZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVnc1sxNF0KLSsgIHN0ZmQgMTUsIDB4MmUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3NbMTVdCi0rICBzdGZkIDE2LCAweDJlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzWzE2XQotKyAgc3RmZCAxNywgMHgyZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1sxN10KLSsgIHN0ZmQgMTgsIDB4MmY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMThdCi0rICBzdGZkIDE5LCAweDMwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzE5XQotKyAgc3RmZCAyMCwgMHgzMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1syMF0KLSsgIHN0ZmQgMjEsIDB4MzEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMjFdCi0rICBzdGZkIDIyLCAweDMxOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzIyXQotKyAgc3RmZCAyMywgMHgzMjAoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1syM10KLSsgIHN0ZmQgMjQsIDB4MzI4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMjRdCi0rICBzdGZkIDI1LCAweDMzMCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzI1XQotKyAgc3RmZCAyNiwgMHgzMzgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1syNl0KLSsgIHN0ZmQgMjcsIDB4MzQwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMjddCi0rICBzdGZkIDI4LCAweDM0OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzI4XQotKyAgc3RmZCAyOSwgMHgzNTAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1syOV0KLSsgIHN0ZmQgMzAsIDB4MzU4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMzBdCi0rICBzdGZkIDMxLCAweDM2MCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzMxXQotKwotKyAgLy8gRlBTQ1IKLSsgIG1mZnMgMAotKyAg c3RmZCAwLCAweDM2OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMyXQotKwot KyAgLy8gU2F2ZSBWTVggVmVjdG9yIHJlZ2lzdGVycwotKyAgLy8gVXBkYXRlIHI0IHRvIGNvbnRh aW4gdGhlIGJhc2UgYWRkcmVzcyBvZiB2bXhfcmVzZXJ2ZQotKyAgYWRkaSA0LCAzLCAweDM3OAot KyAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgcXVhZHdvcmQgYWxpZ25lZAotKyAgYW5kaS4gNSwgNCwg MHhGCi0rICBiZXEgMWYgLy8gTm8gYWxpZ25tZW50IGlzIG5lY2Vzc2FyeQotKyAgLy8gQWRkcmVz cyBpcyBkb3VibGV3b3JkIGFsaWduZWQgYW5kIG5vdCBxdWFkd29yZCBhbGlnbmVkLCBhZGQgOAot KyAgYWRkaSA0LCA0LCA4Ci0rCi0rMToKLSsgIC8vIFN0b3JlIFZNWCByZWdpc3RlcnMgMC0zMQot KyAgLy8gcjQgd2lsbCBjb250YWluIHRoZSBiYXNlIGFkZHJlc3MKLSsgIC8vIHI1IHdpbGwgY29u dGFpbiB0aGUgaW5kZXgKLSsgIGxpIDUsIDAKLSsgIHN0dnggMCwgNCwgNSAgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAwXQotKyAgYWRkaSA1LCA1LCAxNgot KyAgc3R2eCAxLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIsIDQsIDUgICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMl0KLSsgIGFkZGkgNSwgNSwgMTYK LSsgIHN0dnggMywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAzXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA0LCA0LCA1ICAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDRdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDUsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgNV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNiwgNCwgNSAgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA2XQotKyAgYWRkaSA1LCA1LCAx NgotKyAgc3R2eCA3LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDgsIDQsIDUgICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgOF0KLSsgIGFkZGkgNSwgNSwg MTYKLSsgIHN0dnggOSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyA5XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxMCwgNCwgNSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEwXQotKyAgYWRkaSA1LCA1 LCAxNgotKyAgc3R2eCAxMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDExXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxMiwgNCwgNSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEyXQotKyAgYWRkaSA1 LCA1LCAxNgotKyAgc3R2eCAxMywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDEzXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxNCwgNCwgNSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE0XQotKyAgYWRk aSA1LCA1LCAxNgotKyAgc3R2eCAxNSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDE1XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxNiwgNCwg NSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE2XQotKyAg YWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxNywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDE3XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxOCwg NCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE4XQot KyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxOSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE5XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAy MCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIw XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIxXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2 eCAyMiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDIyXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyMywgNCwgNSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIzXQotKyAgYWRkaSA1LCA1LCAxNgotKyAg c3R2eCAyNCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDI0XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyNSwgNCwgNSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI1XQotKyAgYWRkaSA1LCA1LCAxNgot KyAgc3R2eCAyNiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDI2XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyNywgNCwgNSAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI3XQotKyAgYWRkaSA1LCA1LCAx NgotKyAgc3R2eCAyOCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDI4XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyOSwgNCwgNSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI5XQotKyAgYWRkaSA1LCA1 LCAxNgotKyAgc3R2eCAzMCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDMwXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzMSwgNCwgNSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDMxXQotKyAgYWRkaSA1 LCA1LCAxNgotKwotKyAgLy8gVlNDUgotKyAgbWZ2c2NyIDAKLSsgIHN0dnggMCwgNCwgNQotKyAg YWRkaSA1LCA1LCAxNgotKwotKyAgLy8gVlJTQVZFCi0rICBtZnZyc2F2ZSAwCi0rICBzdHd4IDAs IDQsIDUKLSsKLSsgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC52X3JlZ3MgdG8gcG9p bnQgdG8gdm14X3Jlc2VydmUgKyBhbGlnbm1lbnQuCi0rICBzdGQgNCwgMHgzNzAoMykKLSsKLSsg IC8vIFplcm8gb3V0IGFsbCB1bnVzZWQgZmllbGRzCi0rICBsaSA0LCAwCi0rICBzdGQgNCwgMHhj OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5zaWduYWwKLSsgIHN0ZCA0LCAweGQwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmhhbmRsZXIKLSsgIHN0ZCA0LCAweGQ4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0Lm9sZG1hc2sKLSsKLSsgIGJscgotICNlbmRpZiAgLy8gX19pMzg2X18K LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1 cmVfY29udGV4dF90ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlz Yy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYwotaW5kZXggY2YyM2MyZGUuLjVmMjY0YmM5IDEwMDY0 NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2Nv bnRleHRfdGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlz Yy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYwotQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXN0Q2Fw dHVyZUNvbnRleHQoKSB7Ci0gICB1aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291bnRlckZyb21Db250 ZXh0KGNvbnRleHRfMSk7Ci0gCi0gI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKSAmJiAh ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgXAotLSAgICAhZGVmaW5lZChNRU1PUllf U0FOSVRJWkVSKQotKyAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBTYW5pdGl6ZXJzIGNhbiBjYXVzZSBlbm91Z2gg Y29kZSBibG9hdCB0aGF0IHRoZSDigJxuZWFyYnnigJ0gY2hlY2sgd291bGQKLSAgIC8vIGxpa2Vs eSBmYWlsLgotICAgY29uc3QgdWludHB0cl90IGtSZWZlcmVuY2VQQyA9Ci1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVz dF91dGlsX2xpbnV4LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9j YXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNjCi1pbmRleCA5ZmM1ZGIyOC4uNWY2OWY4 ZGMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2Nh cHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwot QEAgLTM2LDYgKzM2LDggQEAgdm9pZCBTYW5pdHlDaGVja0NvbnRleHQoY29uc3QgTmF0aXZlQ1BV Q29udGV4dCYgY29udGV4dCkgewotICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQucmVn c1swXSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSAjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRl eHQuZ3JlZ3NbNF0sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0rI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBFWFBFQ1RfRVEoY29udGV4dC51 Y19tY29udGV4dC5ncF9yZWdzWzNdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4 dCkpOwotICNlbmRpZgotIH0KLSAKLUBAIC01MCw2ICs1Miw4IEBAIHVpbnRwdHJfdCBQcm9ncmFt Q291bnRlckZyb21Db250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsKLSAg IHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnBjOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpCi0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKLSsjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVybiBjb250ZXh0LnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtNjQsNiArNjgsOCBAQCB1 aW50cHRyX3QgU3RhY2tQb2ludGVyRnJvbUNvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYg Y29udGV4dCkgewotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuc3A7Ci0gI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0 LmdyZWdzWzI5XTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJl dHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbMV07Ci0gI2VuZGlmCi0gfQotIAotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNf dGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNf dGVzdC5jYwotaW5kZXggNThiZmE4ZjguLjhmYzM3YzQ2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjLm9yaWcJMjAyMC0x MS0xNyAxMzozOTo0Ny4wMDAwMDAwMDAgLTA1MDAKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYwkyMDIwLTExLTE4IDIxOjA2OjMzLjQz MzQwODYyMyAtMDUwMAotQEAgLTQ2LDkgKzQ2LDkgQEAKLSAgIHJldHVybiBzaWcgPT0gU0lHQUJS VCB8fAotICAgICAgICAgIHNpZyA9PSBTSUdBTFJNIHx8Ci0gICAgICAgICAgc2lnID09IFNJR0JV UyB8fAotLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKLSsjaWYgIWRlZmluZWQoQVJDSF9D UFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotICAgICAgICAgIHNpZyA9PSBT SUdGUEUgfHwKLS0jZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQotKyNlbmRpZiAg Ly8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQot ICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJN RUwpCi0gICAgICAgICAgc2lnID09IFNJR0lMTCB8fAotICNlbmRpZiAgLy8gZGVmaW5lZChBUkNI X0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQotQEAgLTExNyw5ICsx MTcsMTEgQEAKLSAgICAgICBicmVhazsKLSAgICAgfQotIAotLSNpZiAhZGVmaW5lZChBUkNIX0NQ VV9BUk02NCkKLSsjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0KQotICAgICAvLyBBUk02NCBoYXMgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiBp bnN0cnVjdGlvbnMgdGhhdCBkb27igJl0IGdlbmVyYXRlIGEKLSAgICAgLy8gdHJhcCBmb3IgZGl2 aWRlLWJ5LXplcm8sIHNvIHRoaXMgZG9lc27igJl0IHByb2R1Y2UgU0lHRlBFLgotKyAgICAvLwot KyAgICAvLyBQUEM2NCBmaXhlZC1wb2ludCBkaXZpc2lvbiBieSB6ZXJvIGFsc28gZG9lc24ndCBw cm9kdWNlIGEgU0lHRlBFLgotICAgICBjYXNlIFNJR0ZQRTogewotICAgICAgIC8vIE9wdGltaXph dGlvbiBtYWtlcyB0aGlzIHRyaWNreSwgc28gZ2V0IHplcm8gZnJvbSBhIHN5c3RlbSBjYWxsIGxp a2VseQotICAgICAgIC8vIHRvIHN1Y2NlZWQsIGFuZCB0cnkgdG8gZG8gc29tZXRoaW5nIHdpdGgg dGhlIHJlc3VsdC4KLUBAIC0xMzcsNyArMTM5LDcgQEAKLSAgICAgICBmc3RhdChxdW90aWVudCwg JnN0YXRfYnVmKTsKLSAgICAgICBicmVhazsKLSAgICAgfQotLSNlbmRpZiAgLy8gQVJDSF9DUFVf QVJNNjQKLSsjZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChB UkNIX0NQVV9QUEM2NCkKLSAKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBk ZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQotICAgICBjYXNlIFNJR0lMTDogewotZGlmZiAtLWdpdCB0 aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgotaW5k ZXggNzg4ZGM2Y2YuLjVmZDdlOGZkIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2RhdjFkL0JVSUxE LmduCi0rKysgdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24KLUBAIC0xODIsNiArMTgyLDggQEAg c3RhdGljX2xpYnJhcnkoImRhdjFkXzhiaXQiKSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBs YXRlX3NvdXJjZXMKLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IikgewotICAg ICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0rICB9IGVsc2UgaWYgKGN1cnJlbnRf Y3B1ID09ICJwcGM2NCIpIHsKLSsgICAgc291cmNlcyArPSBwcGM2NF90ZW1wbGF0ZV9zb3VyY2Vz Ci0gICB9Ci0gCi0gICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotQEAgLTIxMCw2ICsyMTIsOCBAQCBz dGF0aWNfbGlicmFyeSgiZGF2MWRfMTBiaXQiKSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBs YXRlX3NvdXJjZXMKLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IikgewotICAg ICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0rICB9IGVsc2UgaWYgKGN1cnJlbnRf Y3B1ID09ICJwcGM2NCIpIHsKLSsgICAgc291cmNlcyArPSBwcGM2NF90ZW1wbGF0ZV9zb3VyY2Vz Ci0gICB9Ci0gCi0gICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotQEAgLTI1Niw2ICsyNjAsMjEgQEAg aWYgKGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1ID09ICJ4NjQiKSB7Ci0gICAg ICAgIjpkYXYxZF9jb25maWciLAotICAgICBdCi0gCi0rICAgIGNmbGFncyA9IGRhdjFkX2NvcHRz Ci0rICB9Ci0rfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICBzdGF0aWNf bGlicmFyeSgiZGF2MWRfcHBjIikgewotKyAgICBzb3VyY2VzID0gWwotKyAgICAgICJsaWJkYXYx ZC9zcmMvcHBjL2NwdS5jIiwKLSsgICAgICAibGliZGF2MWQvc3JjL3BwYy9jcHUuaCIsCi0rICAg IF0KLSsKLSsgICAgY29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1 bV9jb2RlIiBdCi0rICAgIGNvbmZpZ3MgKz0gWwotKyAgICAgICIvL2J1aWxkL2NvbmZpZy9jb21w aWxlcjpub19jaHJvbWl1bV9jb2RlIiwKLSsgICAgICAiOmRhdjFkX2NvbmZpZyIsCi0rICAgIF0K LSsKLSAgICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLSAgIH0KLSB9Ci1AQCAtMjg1LDUgKzMwNCw3 IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZCIpIHsKLSAgICAgfQotICAgfSBlbHNlIGlmIChjdXJy ZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7Ci0gICAgIGRlcHMg Kz0gWyAiOmRhdjFkX2FybSIgXQotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQi KSB7Ci0rICAgIGRlcHMgKz0gWyAiOmRhdjFkX3BwYyIgXQotICAgfQotIH0KLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oIHRoaXJkX3BhcnR5 L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQK LWluZGV4IDAwMDAwMDAwLi5mNmNhNTdmNwotLS0tIC9kZXYvbnVsbAotKysrIHRoaXJkX3BhcnR5 L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAotQEAgLTAsMCArMSwzOSBAQAotKy8q Ci0rICogQXV0b2dlbmVyYXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgotKyAqIERvIG5v dCBlZGl0LCB5b3VyIGNoYW5nZXMgd2lsbCBiZSBsb3N0LgotKyAqLwotKwotKyNwcmFnbWEgb25j ZQotKwotKyNkZWZpbmUgQVJDSF9BQVJDSDY0IDAKLSsKLSsjZGVmaW5lIEFSQ0hfQVJNIDAKLSsK LSsjZGVmaW5lIEFSQ0hfUFBDNjRMRSAxCi0rCi0rI2RlZmluZSBBUkNIX1g4NiAwCi0rCi0rI2Rl ZmluZSBBUkNIX1g4Nl8zMiAwCi0rCi0rI2RlZmluZSBBUkNIX1g4Nl82NCAwCi0rCi0rI2RlZmlu ZSBDT05GSUdfMTZCUEMgMQotKwotKyNkZWZpbmUgQ09ORklHXzhCUEMgMQotKwotKy8vICNkZWZp bmUgQ09ORklHX0xPRyAxIC0tIExvZ2dpbmcgaXMgY29udHJvbGxlZCBieSBDaHJvbWl1bQotKwot KyNkZWZpbmUgRU5ESUFOTkVTU19CSUcgMAotKwotKyNkZWZpbmUgSEFWRV9BU00gMQotKwotKyNk ZWZpbmUgSEFWRV9DTE9DS19HRVRUSU1FIDEKLSsKLSsjZGVmaW5lIEhBVkVfRExTWU0gMQotKwot KyNkZWZpbmUgSEFWRV9HRVRBVVhWQUwgMQotKwotKyNkZWZpbmUgSEFWRV9QT1NJWF9NRU1BTElH TiAxCi0rCi0rI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLSsKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaSB0aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5l cmF0ZWQuZ25pCi1pbmRleCA4YmVjYWMwMi4uZDVmNGZjYWMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFy dHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQotKysrIHRoaXJkX3BhcnR5L2RhdjFkL2RhdjFk X2dlbmVyYXRlZC5nbmkKLUBAIC03MSw2ICs3MSwxMSBAQCBhcm1fdGVtcGxhdGVfc291cmNlcyA9 IFsKLSAgICJsaWJkYXYxZC9zcmMvYXJtL21jX2luaXRfdG1wbC5jIiwKLSBdCi0gCi0rcHBjNjRf dGVtcGxhdGVfc291cmNlcyA9IFsKLSsgICJsaWJkYXYxZC9zcmMvcHBjL2NkZWZfaW5pdF90bXBs LmMiLAotKyAgImxpYmRhdjFkL3NyYy9wcGMvbG9vcHJlc3RvcmF0aW9uX2luaXRfdG1wbC5jIiwK LStdCi0rCi0gdGVtcGxhdGVfc291cmNlcyA9IFsKLSAgICJsaWJkYXYxZC9zcmMvY2RlZl9hcHBs eV90bXBsLmMiLAotICAgImxpYmRhdjFkL3NyYy9jZGVmX3RtcGwuYyIsCi1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weSB0aGlyZF9wYXJ0eS9kYXYxZC9nZW5l cmF0ZV9zb3VyY2UucHkKLWluZGV4IDlhYjVlMDBiLi5hZDNmZWZmZSAxMDA3NTUKLS0tLSB0aGly ZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKLSsrKyB0aGlyZF9wYXJ0eS9kYXYxZC9n ZW5lcmF0ZV9zb3VyY2UucHkKLUBAIC01MCw3ICs1MCw4IEBAIGRlZiBXcml0ZUduKGZkKToKLSAg IFdyaXRlQXJyYXkoZmQsICJhcm0zMl9hc21fc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQv c3JjL2FybS8zMi8qLlMiKSkKLSAgIFdyaXRlQXJyYXkoZmQsICJhcm02NF9hc21fc291cmNlcyIs IGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL2FybS82NC8qLlMiKSkKLSAgIFdyaXRlQXJyYXkoZmQs ICJhcm1fdGVtcGxhdGVfc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL2FybS8qX3Rt cGwuYyIpKQotLQotKyAgV3JpdGVBcnJheShmZCwgInBwYzY0X3RlbXBsYXRlX3NvdXJjZXMiLCBn bG9iLmdsb2IoImxpYmRhdjFkL3NyYy9wcGMvKl90bXBsLmMiKSkKLSsgCi0gICB0ZW1wbGF0ZV9z b3VyY2VzID0gZ2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMvKl90bXBsLmMiKQotICAgV3JpdGVBcnJh eShmZCwgInRlbXBsYXRlX3NvdXJjZXMiLCB0ZW1wbGF0ZV9zb3VyY2VzKQotIAotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmggdGhpcmRfcGFydHkv ZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oCi1pbmRleCAwYjRiZDcyZi4uYTBjYWE1ZTcg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oCi0r KysgdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oCi1AQCAtNTEsNCAr NTEsMTkgQEAKLSAjZGVmaW5lIHUxNmxfdG9faTMyKHYpICgoaTMyeDQpIHZlY19tZXJnZWwoKHUx Nng4KSB2LCB2ZWNfc3BsYXRfdTE2KDApKSkKLSAjZGVmaW5lIGkxNmxfdG9faTMyKHYpICgoaTMy eDQpIHZlY191bnBhY2tsKChpMTZ4OCl2KSkKLSAKLSsjaWYgZGVmaW5lZChfX2NsYW5nX18pCi0r I3VuZGVmIHZlY19zcGxhdHMKLSsjZGVmaW5lIHZlY19zcGxhdHMoTikgICAgICAgICAgICAgICAg ICAgICBcCi0rICAgIF9HZW5lcmljKChOKSwgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAg ICAgICAgdW5zaWduZWQgY2hhcjogICAgICAoKHU4eDE2KShOKSksIFwKLSsgICAgICAgIHNpZ25l ZCBjaGFyOiAgICAgICAgKChpOHgxNikoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBzaG9ydDog ICAgICgodTE2eDgpKE4pKSwgXAotKyAgICAgICAgc2lnbmVkIHNob3J0OiAgICAgICAoKGkxNng4 KShOKSksIFwKLSsgICAgICAgIHVuc2lnbmVkIGludDogICAgICAgKCh1MzJ4NCkoTikpLCBcCi0r ICAgICAgICBzaWduZWQgaW50OiAgICAgICAgICgoaTMyeDQpKE4pKSwgXAotKyAgICAgICAgdW5z aWduZWQgbG9uZyBsb25nOiAoKHU2NHgyKShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBsb25nIGxv bmc6ICAgKChpNjR4MikoTikpICBcCi0rICAgICkKLSsjZW5kaWYKLSsKLSAjZW5kaWYgLyogREFW MURfU1JDX1BQQ19UWVBFU19IICovCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xzcy9saW51eF9z eXNjYWxsX3N1cHBvcnQuaCB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgK LWluZGV4IGQyYmFlZTlkLi45OTU1Y2U0NCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9sc3MvbGlu dXhfc3lzY2FsbF9zdXBwb3J0LmgKLSsrKyB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9z dXBwb3J0LmgKLUBAIC0zOTIyLDcgKzM5MjIsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Ci0g ICAgICAgTFNTX1JFRygyLCBidWYpOwotICAgICAgIExTU19CT0RZKHZvaWQqLCBtbWFwMiwgIjAi KF9fcjIpKTsKLSAgICAgfQotLSNlbHNlCi0rI2VsaWYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykg LyogcHBjNjQgZG9lc24ndCBoYXZlIG1tYXAyICovCi0gICAgICNkZWZpbmUgX19OUl9fbW1hcDIg X19OUl9tbWFwMgotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsNih2b2lkKiwgX21tYXAyLCAgICAg ICAgICAgIHZvaWQqLCBzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QsICAgICAg ICAgICAgICAgICAgIGwsIGludCwgICAgICAgICAgICAgICBwLAotQEAgLTQwMzMsNyArNDAzMyw3 IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKLSAgICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg ICAgZGVmaW5lZChfX0FSTV9BUkNIXzNfXykgfHwgZGVmaW5lZChfX0FSTV9FQUJJX18pIHx8ICAg ICAgICAgICAgICAgICAgICAgXAotICAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJ TSA9PSBfTUlQU19TSU1fQUJJMzIpIHx8ICAgICAgICAgICAgICAgICAgIFwKLS0gICAgICBkZWZp bmVkKF9fUFBDX18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0rICAgICAoZGVmaW5lZChfX1BQQ19fKSAmJiAhZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKLSAgICAgIChkZWZpbmVkKF9fczM5MF9fKSAmJiAhZGVmaW5lZChfX3MzOTB4X18p KQotICAgICAvKiBPbiB0aGVzZSBhcmNoaXRlY3R1cmVzLCBpbXBsZW1lbnQgbW1hcCgpIHdpdGgg bW1hcDIoKS4gKi8KLSAgICAgTFNTX0lOTElORSB2b2lkKiBMU1NfTkFNRShtbWFwKSh2b2lkICpz LCBzaXplX3QgbCwgaW50IHAsIGludCBmLCBpbnQgZCwKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkv cGZmZnQvc3JjL3BmZmZ0LmMgdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKLWluZGV4IGJk YWM0ZDc4NC4uNTFlMGYyY2FjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZm dC5jCi0rKysgdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKLUBAIC0xMDAsNiArMTAwLDcg QEAKLSAgICBBbHRpdmVjIHN1cHBvcnQgbWFjcm9zIAotICovCi0gI2lmICFkZWZpbmVkKFBGRkZU X1NJTURfRElTQUJMRSkgJiYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18p KQotKyNpbmNsdWRlIDxhbHRpdmVjLmg+Ci0gdHlwZWRlZiB2ZWN0b3IgZmxvYXQgdjRzZjsKLSAj ICBkZWZpbmUgU0lNRF9TWiA0Ci0gIyAgZGVmaW5lIFZaRVJPKCkgKCh2ZWN0b3IgZmxvYXQpIHZl Y19zcGxhdF91OCgwKSkKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NM U3RyaW5nLmNwcCB0aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCi1pbmRl eCA4OGViMWM3ZC4uNGJlMzNmYTUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tz bC9Ta1NMU3RyaW5nLmNwcAotKysrIHRoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmlu Zy5jcHAKLUBAIC0yNDAsNyArMjQwLDEyIEBAIFN0cmluZyB0b19zdHJpbmcoZG91YmxlIHZhbHVl KSB7Ci0gICAgIGlmIChuZWVkc0RvdFplcm8pIHsKLSAgICAgICAgIGJ1ZmZlciA8PCAiLjAiOwot ICAgICB9Ci0tICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLnN0cigpLmNfc3RyKCkpOwotKwotKyAg ICBzdGQ6OnN0cmluZyByZXQoYnVmZmVyLnN0cigpKTsKLSsgICAgaWYgKHNpZ25iaXQodmFsdWUp ICYmIHJldFswXSA9PSAnLicpIHsKLSsgICAgICAgIHJldFswXSA9ICctJzsKLSsgICAgfQotKyAg ICByZXR1cm4gU3RyaW5nKHJldC5jX3N0cigpKTsKLSB9Ci0gCi0gU0tTTF9JTlQgc3RvaShjb25z dCBTdHJpbmcmIHMpIHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2Ft YXRpb24vc3FsaXRlMy5jIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0 ZTMuYwotaW5kZXggMWIyYzJlYzcuLjc1OTNkYmExIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3Nx bGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotKysrIHRoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotQEAgLTE0NDAwLDcgKzE0NDAwLDggQEAgdHlwZWRl ZiBJTlQxNl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVk KF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICAgZGVmaW5l ZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQp ICB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAg ICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAgIGRlZmluZWQoX19BUk1FTF9f KSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCi0rICAgICBk ZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9N X0FSTTY0KSB8fCAgIFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9P UkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZ VEVPUkRFUiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9f cHBjX18pIHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJD SDY0RUJfXykKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25f ZGV2L3NxbGl0ZTMuYyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3Fs aXRlMy5jCi1pbmRleCAxOWM4NzY4OS4uYzdhYjAzOWUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv c3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYwotKysrIHRoaXJkX3BhcnR5L3Nx bGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKLUBAIC0xNDQxMyw3ICsxNDQxMyw4 IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAg fHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAg ICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmlu ZWQoX01fWDY0KSAgfHwgICAgXAotICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQo X01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVk KF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0 KQotKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwg ZGVmaW5lZChfTV9BUk02NCkgfHwgICBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYm IChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5l IFNRTElURV9CWVRFT1JERVIgICAgMTIzNAotICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwg ZGVmaW5lZChfX3BwY19fKSB8fCBcCi0gICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZp bmVkKF9fQUFSQ0g2NEVCX18pCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0 L3J0cmVlL3J0cmVlLmMgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYwot aW5kZXggZWZhZWY4MTMuLjRjZDU3ZDU1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvZXh0L3J0cmVlL3J0cmVlLmMKLSsrKyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJl ZS9ydHJlZS5jCi1AQCAtNDMyLDcgKzQzMiw3IEBAIHN0cnVjdCBSdHJlZU1hdGNoQXJnIHsKLSAj aWYgZGVmaW5lZChpMzg2KSAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICB8fCBkZWZpbmVkKF9N X0lYODYpIHx8ICAgIFwKLSAgICAgZGVmaW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgZGVmaW5lZChfTV9BTUQ2NCkg fHwgZGVmaW5lZChfTV9BUk0pICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAg ZGVmaW5lZChfX2FybV9fKQotKyAgICBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQot ICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIzNAotICNlbGlmIGRlZmluZWQoc3BhcmMp ICAgIHx8IGRlZmluZWQoX19wcGNfXykKLSAjIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDQz MjEKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmggdGhp cmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLWluZGV4IDEyMmUyNmFkLi5lYzIx ZGNiNSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAot KysrIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCi1AQCAtODY4LDcgKzg2 OCw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAg ICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwK LSAgICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRl ZmluZWQoX01fWDY0KSAgfHwgICAgXAotICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmlu ZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZp bmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FS TTY0KQotKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykg fHwgZGVmaW5lZChfTV9BUk02NCkgfHwgXAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAm JiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmlu ZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8 IGRlZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVm aW5lZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxl cy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjIHRoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1 bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKLWluZGV4IGRkOWFiNDU3Li5jMDA1 ZDk1OSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1 cmUvZGlmZmVyX2Jsb2NrLmNjLm9yaWcJMjAyMC0xMS0xNyAxMzo0MjowMi4wMDAwMDAwMDAgLTA1 MDAKLSsrKyB0aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVy X2Jsb2NrLmNjCTIwMjAtMTEtMTggMjE6MTE6MDMuMDM5OTA1MzYwIC0wNTAwCi1AQCAtMzAsMTEg KzMwLDcgQEAKLSAgIHN0YXRpYyBib29sICgqZGlmZl9wcm9jKShjb25zdCB1aW50OF90KiwgY29u c3QgdWludDhfdCopID0gbnVsbHB0cjsKLSAKLSAgIGlmICghZGlmZl9wcm9jKSB7Ci0tI2lmIGRl ZmluZWQoV0VCUlRDX0FSQ0hfQVJNX0ZBTUlMWSkgfHwgZGVmaW5lZChXRUJSVENfQVJDSF9NSVBT X0ZBTUlMWSkKLS0gICAgLy8gRm9yIEFSTSBhbmQgTUlQUyBwcm9jZXNzb3JzLCBhbHdheXMgdXNl IEMgdmVyc2lvbi4KLS0gICAgLy8gVE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lv bi4KLS0gICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKLS0jZWxzZQotKyNpZiBk ZWZpbmVkKFdFQlJUQ19BUkNIX1g4Nl9GQU1JTFkpCi0gICAgIGJvb2wgaGF2ZV9zc2UyID0gR2V0 Q1BVSW5mbyhrU1NFMikgIT0gMDsKLSAgICAgLy8gRm9yIHg4NiBwcm9jZXNzb3JzLCBjaGVjayBp ZiBTU0UyIGlzIHN1cHBvcnRlZC4KLSAgICAgaWYgKGhhdmVfc3NlMiAmJiBrQmxvY2tTaXplID09 IDMyKSB7Ci1AQCAtNDQsNiArNDAsMTAgQEAKLSAgICAgfSBlbHNlIHsKLSAgICAgICBkaWZmX3By b2MgPSAmVmVjdG9yRGlmZmVyZW5jZV9DOwotICAgICB9Ci0rI2Vsc2UKLSsgICAgLy8gRm9yIG90 aGVyIHByb2Nlc3NvcnMsIGFsd2F5cyB1c2UgQyB2ZXJzaW9uLgotKyAgICAvLyBUT0RPKGhjbGFt KTogSW1wbGVtZW50IGEgTkVPTiB2ZXJzaW9uLgotKyAgICBkaWZmX3Byb2MgPSAmVmVjdG9yRGlm ZmVyZW5jZV9DOwotICNlbmRpZgotICAgfQotIAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS93ZWJy dGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaCB0aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lz dGVtL2FyY2guaAotaW5kZXggZWQyMTZlNjYuLjI1ZDM2YzA3IDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi0rKysgdGhpcmRfcGFydHkvd2VicnRj L3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKLUBAIC01MCw2ICs1MCwxOCBAQAotICNlbGlmIGRlZmlu ZWQoX19FTVNDUklQVEVOX18pCi0gI2RlZmluZSBXRUJSVENfQVJDSF8zMl9CSVRTCi0gI2RlZmlu ZSBXRUJSVENfQVJDSF9MSVRUTEVfRU5ESUFOCi0rI2VsaWYgZGVmaW5lZChfX1BQQ19fKQotKyNk ZWZpbmUgV0VCUlRDX0FSQ0hfUFBDX0ZBTUlMWQotKyNpZiBfX0JZVEVfT1JERVJfXyA9PSBfX09S REVSX0xJVFRMRV9FTkRJQU5fXwotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgot KyNlbHNlCi0rI2RlZmluZSBXRUJSVENfQVJDSF9CSUdfRU5ESUFOCi0rI2VuZGlmCi0rI2lmIGRl ZmluZWQoX19MUDY0X18pCi0rI2RlZmluZSBXRUJSVENfQVJDSF82NF9CSVRTCi0rI2Vsc2UKLSsj ZGVmaW5lIFdFQlJUQ19BUkNIXzMyX0JJVFMKLSsjZW5kaWYKLSAjZWxzZQotICNlcnJvciBQbGVh c2UgYWRkIHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIHJ0Y19iYXNlL3N5c3RlbS9h cmNoLmgKLSAjZW5kaWYKLSBkaWZmIC0tZ2l0IHY4L0JVSUxELmduIHY4L0JVSUxELmduCi1pbmRl eCAxNjdlNjM1MDMuLjEyNWM0NDVlYSAxMDA2NDQKLS0tLSB2OC9CVUlMRC5nbgotKysrIHY4L0JV SUxELmduCi1AQCAtNjk2LDYgKzY5NiwxMiBAQCBjb25maWcoInRvb2xjaGFpbiIpIHsKLSAgICAg fQotICAgICBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImxpdHRsZSIpIHsKLSAgICAgICBkZWZpbmVz ICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19MRSIgXQotKyAgICAgICAgY2ZsYWdzICs9IFsKLSsg ICAgICAgICMgRW5hYmxlIHVzYWdlIG9mIEFsdGlWZWMsIFZTWCwgYW5kIG90aGVyIFBPV0VSOCBh bmQgaGlnaGVyIGZlYXR1cmVzCi0rICAgICAgICAiLW1jcHU9cG93ZXI4IiwKLSsgICAgICAgICIt bWFsdGl2ZWMiLAotKyAgICAgICAgIi1tdnN4IiwKLSsgICAgICBdCi0gICAgIH0gZWxzZSBpZiAo aG9zdF9ieXRlb3JkZXIgPT0gImJpZyIpIHsKLSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdF VF9BUkNIX1BQQ19CRSIgXQotICAgICAgIGlmIChjdXJyZW50X29zID09ICJhaXgiKSB7Ci1kaWZm IC0tZ2l0IHVpL2dsL2ZlYXR1cmVzLmduaSB1aS9nbC9mZWF0dXJlcy5nbmkKLWluZGV4IGNiMmM5 ODY0OS4uNWUwOWJjMWY3IDEwMDY0NAotLS0tIHVpL2dsL2ZlYXR1cmVzLmduaQotKysrIHVpL2ds L2ZlYXR1cmVzLmduaQotQEAgLTI1LDUgKzI1LDYgQEAgZGVjbGFyZV9hcmdzKCkgewotICAgICAg ICAgICAgICAgICAgICAgICAgIGlzX2Nocm9tZW9zIHx8IGlzX2Z1Y2hzaWEpICYmCi0gICAgICAg ICAgICAgICAgICAgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4 NjQiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAiYXJtIiB8fCB0 YXJnZXRfY3B1ID09ICJhcm02NCIgfHwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRf Y3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIikKLSsgICAgICAgICAg ICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1p cHM2NGVsIiB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gInBwYzY0 IikKLSB9Ci1kaWZmIC0tZ2l0IHY4L3Rlc3QvQlVJTEQuZ24gdjgvdGVzdC9CVUlMRC5nbgotaW5k ZXggZjZkMzA1MzdhLi4yODdiMjcwODAgMTAwNjQ0Ci0tLS0gdjgvdGVzdC9CVUlMRC5nbgotKysr IHY4L3Rlc3QvQlVJTEQuZ24KLUBAIC0zMSw3ICszMSw3IEBAIGdyb3VwKCJnbl9hbGwiKSB7Ci0g ICAgIGRlcHMgKz0gWwotICAgICAgICJjY3Rlc3Q6Y2N0ZXN0IiwKLSAgICAgICAiY2N0ZXN0Omdl bmVyYXRlLWJ5dGVjb2RlLWV4cGVjdGF0aW9ucyIsCi0tICAgICAgInVuaXR0ZXN0czp1bml0dGVz dHMiLAotKyAgICAgICMidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0gICAgIF0KLSAgIH0KLSB9Ci1A QCAtNzMsNyArNzMsNyBAQCBncm91cCgidjhfYm90X2RlZmF1bHQiKSB7Ci0gICAgICJtZXNzYWdl OnY4X21lc3NhZ2UiLAotICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKLSAgICAgIm1rZ3Jva2R1 bXA6bWtncm9rZHVtcCIsCi0tICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAgIyJ1bml0 dGVzdHM6dW5pdHRlc3RzIiwKLSAgICAgIndhc20tYXBpLXRlc3RzOndhc21fYXBpX3Rlc3RzIiwK LSAgICAgIndhc20tanM6djhfd2FzbV9qcyIsCi0gICAgICJ3YXNtLXNwZWMtdGVzdHM6djhfd2Fz bV9zcGVjX3Rlc3RzIiwKLUBAIC05Myw3ICs5Myw3IEBAIGdyb3VwKCJ2OF9kZWZhdWx0Iikgewot ICAgICAibWVzc2FnZTp2OF9tZXNzYWdlIiwKLSAgICAgIm1qc3VuaXQ6djhfbWpzdW5pdCIsCi0g ICAgICJta2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAotLSAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIs Ci0rICAgICMidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0gICAgICJ3YXNtLWFwaS10ZXN0czp3YXNt X2FwaV90ZXN0cyIsCi0gICAgICJ3YXNtLWpzOnY4X3dhc21fanMiLAotICAgICAid2FzbS1zcGVj LXRlc3RzOnY4X3dhc21fc3BlY190ZXN0cyIsCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVt L3RlbXBsYXRlIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQppbmRleCAwOThjYjkwNGRhOS4u YzA4YzlhNjAwNGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKKysrIGIv c3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Nocm9taXVtJwogcGtnbmFtZT1jaHJvbWl1bQogIyBTZWUgaHR0cDovL3d3dy5jaHJv bWl1bS5vcmcvZGV2ZWxvcGVycy9jYWxlbmRhciBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uCi12ZXJz aW9uPTg4LjAuNDMyNC4xODIKK3ZlcnNpb249ODkuMC40Mzg5LjcyCiByZXZpc2lvbj0xCiBhcmNo cz0iaTY4NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12N2wqIHBwYzY0bGUqIgogc2hvcnRfZGVzYz0i R29vZ2xlJ3MgYXR0ZW1wdCBhdCBjcmVhdGluZyBhIHNhZmVyLCBmYXN0ZXIsIGFuZCBtb3JlIHN0 YWJsZSBicm93c2VyIgpAQCAtOSw3ICs5LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJo dHRwczovL3d3dy5jaHJvbWl1bS5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL2NvbW1vbmRhdGFz dG9yYWdlLmdvb2dsZWFwaXMuY29tL2Nocm9taXVtLWJyb3dzZXItb2ZmaWNpYWwvJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTMwNDExZmMzZWMyZDMzZGY0YzVjYWQ0MWYy MWFmZmEzODIzYzgwZjdkYmQzOTRmNmQ2OGY5YTFlODEwMTViODEKK2NoZWNrc3VtPTk0NmEwYjY1 YWFkMTBlMGY3N2E1MzkxMDM4OTIwOTliNzIzODMxMGM3MzNmMjViNDFkNThiNzZmNmFjMGJjNGYK IG5vY3Jvc3M9eWVzCiAKIGxpYjMyZGlzYWJsZWQ9eWVzCkBAIC0zNCw3ICszNCw3IEBAIG1ha2Vk ZXBlbmRzPSJsaWJwbmctZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBuc3MtZGV2ZWwgcGNp dXRpbHMtZGV2ZWwKICBsaWJYY3Vyc29yLWRldmVsIGxpYmZsYWMtZGV2ZWwgc3BlZXgtZGV2ZWwg bGlibXRwLWRldmVsIGxpYndlYnAtZGV2ZWwKICBsaWJqcGVnLXR1cmJvLWRldmVsIGxpYmV2ZW50 LWRldmVsIGpzb24tYy1kZXZlbCBoYXJmYnV6ei1kZXZlbAogIG1pbml6aXAtZGV2ZWwganNvbmNw cC1kZXZlbCB6bGliLWRldmVsIGxpYmNhcC1kZXZlbCBsaWJYZGFtYWdlLWRldmVsCi0gcmUyLWRl dmVsIGZvbnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgb3B1cy1kZXZlbAorIHJlMi1kZXZl bCBmb250Y29uZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsCiAgZmZtcGVnLWRldmVsIGxpYnZhLWRl dmVsIHB5dGhvbi1zZXR1cHRvb2xzIHhjYi1wcm90bwogICQodm9wdF9pZiBwaXBld2lyZSBsaWJw aXBld2lyZTAuMi1kZXZlbCkgJCh2b3B0X2lmIHNuZGlvIHNuZGlvLWRldmVsKSIKIGRlcGVuZHM9 ImxpYmV4aWYgaHdpZHMgZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSB4ZGct dXRpbHMiCkBAIC0xMTksNiArMTE5LDcgQEAgZG9fY29uZmlndXJlKCkgewogCSMgdXNlX3N5c3Rl bV92OD0xCiAJIyB1c2Vfc3lzdGVtX3psaWI9MQogCSMgYnppcDIganNvbmNwcCBtaW5pemlwIHhk Z191dGlscyBzcGVleAorCSMgb3B1cyBmYWlscyBiZWNhdXNlIHRoZSBnZW5lcmF0ZWQgc2hpbSBo ZWFkZXIgb3B1cy5oIHRyaWVzIHRvIGluY2x1ZGUgPG9wdXMuaD4KIAlzeXN0ZW09IgogCQlmZm1w ZWcKIAkJZmxhYwpAQCAtMTMyLDcgKzEzMyw2IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJbGlid2Vi cAogCQlsaWJ4bWwKIAkJbGlieHNsdAotCQlvcHVzCiAJCXJlMgogCQlzbmFwcHkKIAkiCg== --===============6458243047054234949==--