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 6435 invoked from network); 3 Mar 2021 17:27:52 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Mar 2021 17:27:52 -0000 Content-Type: multipart/mixed; boundary="===============5363225928691358345==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIFtXSVBdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy?= To: ml@inbox.vuxu.org From: pullmoll Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 03 Mar 2021 18:27:50 +0100 List-Id: Message-ID: <20210303172750.0RMQsZ0bSGwkvERGRkfJjWhRn2mXBI7CBkv1iPwkJaQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============5363225928691358345== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHVsbG1vbGwgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3B1 bGxtb2xsL3ZvaWQtcGFja2FnZXMgY2hyb21pdW0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI5MjA1CgpbV0lQXSBjaHJvbWl1bTogdXBkYXRlIHRvIDg5 LjAuNDM4OS43MgpDVkUtMjAyMS0yMTE2Ng0KDQorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwg YnVpbHQsIHRlc3RlZCB2ZXJ5IGN1cnNvcnkgYW5kIHNlZW1zIHRvIHdvcmsNCisgaTY4NiBwYXRj aCBhcHBsaWVzIHcvbyBjaGFuZ2UsIGJ1aWx0LCBjdXJzb3J5IHRlc3QgaW4gYSBWTQ0KKyB4ODZf NjQtbXVzbCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsICJBdywgU25hcCEiIGluIGEgVk0NCiAg c2VjY29tcC1icGYgZmFpbHVyZSBpbiBzeXNjYWxsIDAzMjQNCisgcGF0Y2hlcy9wcGM2NGxlLXBw YzY0bGUtc3VwcG9ydC5wYXRjaCByZW1vdmVkIGZvciBub3cgKGFscmVhZHkgdXBzdHJlYW1lZD8g bmVlZCB0byBjaGVjayBhZ2FpbikNCisgZmlsZXMvbXVzbC1wYWNoZXMveHh4LXBwYzY0bGUtc3Vw cG9ydC5wYXRjaCBzdHJpcHBlZCBkb3duIHRvIHdoYXQgc3RpbGwgYXBwbGllcw0KKyBzeXN0ZW0g b3B1cyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBnZW5lcmF0ZWQgc2hpbSBoZWFkZXIgb3B1cy5oIHRy aWVzIHRvIGluY2x1ZGUgPG9wdXMuaD4gYW5kIGZhaWxzDQorIG5vdCBzdXJlIGlmIGxpYmNfbWFs bG9jLnBhdGNoIGlzIG9rLCBpLmUuIHNpbXBseSB1c2UgbWFsbG9jKCkgaW5zdGVhZCBvZiBfX2xp YmNfbWFsbG9jKCkuDQorIG1vcmUgdG8gZG8NCg0KW2NpIHNraXBdDQoNCklmIHlvdSBkb24ndCB3 YW50IHRvIGJ1aWxkIHlvdXJzZWxmOg0KaHR0cHM6Ly9yZXBvLnZvaWRsaW51eC5kZS94ODZfNjQv Y2hyb21pdW0tODkuMC40Mzg5LjcyXzEueDg2XzY0LnhicHMNCmh0dHBzOi8vcmVwby52b2lkbGlu dXguZGUvaTY4Ni9jaHJvbWl1bS04OS4wLjQzODkuNzJfMS5pNjg2LnhicHMNCgoKQSBwYXRjaCBm aWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxs LzI5MjA1LnBhdGNoIGlzIGF0dGFjaGVk --===============5363225928691358345== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-29205.patch" RnJvbSAxYzA2YjBhZTVmN2UxNWFhNzg1YTdiMDE4MTA0ZmNjZjA5NjNhOWNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1CQ3JnZW49MjBCdWNobT1DMz1CQ2xs ZXI/PSA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+CkRhdGU6IFdlZCwgMyBNYXIgMjAyMSAxNTowNjoz OCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy CgpDVkUtMjAyMS0yMTE2NgoKKyB4ODZfNjQgcGF0Y2ggc2V0IHVwZGF0ZWQsIGJ1aWx0LCB0ZXN0 ZWQgdmVyeSBjdXJzb3J5IGFuZCBzZWVtcyB0byB3b3JrCisgaTY4NiBwYXRjaCBhcHBsaWVzIHcv byBjaGFuZ2UsIGJ1aWx0LCBjdXJzb3J5IHRlc3QgaW4gYSBWTQorIHg4Nl82NC1tdXNsIHBhdGNo IHNldCB1cGRhdGVkLCBidWlsdCwgbmVlZHMgdGVzdGluZworIHBhdGNoZXMvcHBjNjRsZS1wcGM2 NGxlLXN1cHBvcnQucGF0Y2ggcmVtb3ZlZCBmb3Igbm93IChhbHJlYWR5IHVwc3RyZWFtZWQ/IG5l ZWQgdG8gY2hlY2sgYWdhaW4pCisgZmlsZXMvbXVzbC1wYWNoZXMveHh4LXBwYzY0bGUtc3VwcG9y dC5wYXRjaCBzdHJpcHBlZCBkb3duIHRvIHdoYXQgc3RpbGwgYXBwbGllcworIHN5c3RlbSBvcHVz IGRpc2FibGVkIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBzaGltIGhlYWRlciBvcHVzLmggdHJpZXMg dG8gaW5jbHVkZSA8b3B1cy5oPiBhbmQgZmFpbHMKKyBub3Qgc3VyZSBpZiBsaWJjX21hbGxvYy5w YXRjaCBpcyBvaywgaS5lLiBzaW1wbHkgdXNlIG1hbGxvYygpIGluc3RlYWQgb2YgX19saWJjX21h bGxvYygpLgorIG1vcmUgdG8gZG8KCltjaSBza2lwXQotLS0KIC4uLi9kZWZhdWx0LXB0aHJlYWQt c3RhY2tzaXplLnBhdGNoICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1maXhlcy5wYXRjaCAgICAgICB8ICAgNDAgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1oYWNrcy5wYXRjaCAgICAgICB8ICAgIDQgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1saWJjKysucGF0Y2ggICAgICB8ICAgIDYgKy0KIC4uLi9tdXNsLXBhdGNoZXMvbXVz bC1uby1nbGliYy12ZXJzaW9uLnBhdGNoICB8ICAgMjggKwogLi4uL2ZpbGVzL211c2wtcGF0Y2hl cy9tdXNsLXNhbmRib3gucGF0Y2ggICAgIHwgICAxMiArLQogLi4uL2ZpbGVzL211c2wtcGF0Y2hl cy9uby1tYWxsaW5mby5wYXRjaCAgICAgIHwgICAgNiArLQogLi4uL2ZpbGVzL211c2wtcGF0Y2hl cy9yZXNvbHZlci5wYXRjaCAgICAgICAgIHwgICAgMiArLQogLi4uL211c2wtcGF0Y2hlcy94eHgt cHBjNjRsZS1zdXBwb3J0LnBhdGNoICAgIHwgIDExMCArLQogc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2Jyb3dzZXItc2l6ZV90LnBhdGNoIHwgICAxMCAtCiAuLi4vY2hyb21pdW0tODgtQVhUcmVl Rm9ybWF0dGVyLWluY2x1ZGUucGF0Y2ggfCAgIDI3IC0KIC4uLml1bS04OC1Cb29rbWFya01vZGVs T2JzZXJ2ZXItaW5jbHVkZS5wYXRjaCB8ICAgMjEgLQogLi4udW0tODgtQ29tcG9zaXRvckZyYW1l UmVwb3J0ZXItZGNoZWNrLnBhdGNoIHwgICAzNiAtCiAuLi4vY2hyb21pdW0tODgtU3RyaW5nUG9v bC1pbmNsdWRlLnBhdGNoICAgICAgfCAgIDIwIC0KIC4uLnJvbWl1bS04OC1mZWRlcmF0ZWRfbGVh cm5pbmctaW5jbHVkZS5wYXRjaCB8ICAgMjEgLQogLi4uL3BhdGNoZXMvY2hyb21pdW0tODgtZ2xp YmMtMi4zMy5wYXRjaCAgICAgIHwgIDE0NCAtCiAuLi5ocm9taXVtLTg4LWlkZW9ncmFwaGljU3Bh Y2VDaGFyYWN0ZXIucGF0Y2ggfCAgIDI3IC0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAt aW5jbHVkZS5wYXRjaCAgICB8ICAgMjUgLQogLi4uL3BhdGNoZXMvY2hyb21pdW0tODgtdmFhcGkt YXR0cmlidXRlLnBhdGNoIHwgICAzOSAtCiAuLi51bS04OS1Db21wb3NpdG9yRnJhbWVSZXBvcnRl ci1kY2hlY2sucGF0Y2ggfCAgIDExICsKIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9saWJjX21h bGxvYy5wYXRjaCAgICB8ICAgMjMgKy0KIC4uLnJlbW92ZS11bnN1cHBvcnRlZC1jb21waWxlci13 YXJuaW5ncy5wYXRjaCB8ICAgMjYgLQogLi4uLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGlt ZWR3YWl0LnBhdGNoIHwgICAyNCAtCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZXhlY2lu Zm8ucGF0Y2ggICAgfCAgIDE2ICstCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0Y29u dGV4dC5wYXRjaCAgfCAgIDI3IC0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1zdGQtdGlt ZS5wYXRjaCAgICB8ICAgMTEgKwogLi4uL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJveC1tZW1iYXJy aWVyLnBhdGNoIHwgICA2MSArLQogLi4uL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRj aCAgICAgICAgIHwgMzY1NiAtLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9jaHJvbWl1bS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogMjkgZmlsZXMgY2hhbmdlZCwgMTAz IGluc2VydGlvbnMoKyksIDQzNDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1uby1nbGliYy12ZXJzaW9uLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Jyb3dzZXIt c2l6ZV90LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTg4LUFYVHJlZUZvcm1hdHRlci1pbmNsdWRlLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUJvb2ttYXJrTW9kZWxP YnNlcnZlci1pbmNsdWRlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTg4LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04 OC1TdHJpbmdQb29sLWluY2x1ZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t ODgtZ2xpYmMtMi4zMy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9jaHJvbWl1bS04OC1pZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAt aW5jbHVkZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9jaHJvbWl1bS04OC12YWFwaS1hdHRyaWJ1dGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0 ZXItZGNoZWNrLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wtdjgtbW9ub3Rvbmlj LXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0Y29udGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1zdGQtdGltZS5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvZGVmYXVs dC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1w YXRjaGVzL2RlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKaW5kZXggMTZlNGQyMWU2ZWQu LjhiZjlhM2RmYjM0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0 Y2hlcy9kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21p dW0vZmlsZXMvbXVzbC1wYXRjaGVzL2RlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKQEAg LTEsMTIgKzEsMTIgQEAKIC0tLSBiYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXgu Y2Mub3JpZwogKysrIGJhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYwotQEAg LTk5ICs5OSwyIEBAIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHAKK0BA IC00NDAgKzQ0MCwyIEBAIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHAK IC0gIHJldHVybiAwOwogKyAgLy8gdXNlIDhtYiBsaWtlIGdsaWJjIHRvIGF2b2lkIHJ1bm5pbmcg b3V0IG9mIHNwYWNlCiArICByZXR1cm4gKDEgPDwgMjMpOwogLS0tIGNocm9tZS9hcHAvc2h1dGRv d25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4LmNjLm9yaWcKICsrKyBjaHJvbWUvYXBwL3NodXRkb3du X3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYwotQEAgLTE4NCwxMSArMTg0LDE5IEBACitAQCAtMTg3 LDExICsxODcsMTkgQEAKICAgIGdfc2h1dGRvd25fcGlwZV9yZWFkX2ZkID0gcGlwZWZkWzBdOwog ICAgZ19zaHV0ZG93bl9waXBlX3dyaXRlX2ZkID0gcGlwZWZkWzFdOwogICNpZiAhZGVmaW5lZChB RERSRVNTX1NBTklUSVpFUikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVz bC1wYXRjaGVzL211c2wtZml4ZXMucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wt cGF0Y2hlcy9tdXNsLWZpeGVzLnBhdGNoCmluZGV4IGE3ODMyZmYzMmU4Li4xZjEyZmY4YjA4ZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1maXhl cy5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWZp eGVzLnBhdGNoCkBAIC0xLDYgKzEsNiBAQAogLS0tIC4vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5 c2NhbGxfc3VwcG9ydC5oLm9yaWcKICsrKyAuL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxs X3N1cHBvcnQuaAotQEAgLTExMjcsNiArMTEyNywxMiBAQAorQEAgLTEyNTgsNiArMTI1OCwxMiBA QAogICNpZm5kZWYgX19OUl9mYWxsb2NhdGUKICAjZGVmaW5lIF9fTlJfZmFsbG9jYXRlICAgICAg ICAgIDI4NQogICNlbmRpZgpAQCAtMTUsNyArMTUsNyBAQAogICNpZiBfTUlQU19TSU0gPT0gX01J UFNfU0lNX0FCSTMyCiAtLS0gLi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaC5vcmlnCiArKysg Li90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3Jp dGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotQEAgLTM3LDYgKzM3LDEwIEBACitAQCAtMzgs NiArMzgsMTAgQEAKICAjaW5jbHVkZSAiY29tbW9uL21lbW9yeS5oIgogICNpbmNsdWRlICJnb29n bGVfYnJlYWtwYWQvY29tbW9uL21pbmlkdW1wX2Zvcm1hdC5oIgogIApAQCAtMjgsNyArMjgsNyBA QAogIC8vIFdyYXBzIHBsYXRmb3JtLWRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMgb2YgYWNjZXNz b3JzIHRvIHVjb250ZXh0X3Qgc3RydWN0cy4KIC0tLSAuL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oLm9yaWcKICsrKyAuL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5o Ci1AQCAtMzYsNiArMzYsNyBAQAorQEAgLTM3LDYgKzM3LDcgQEAKICAjaW5jbHVkZSA8ZWxmLmg+ CiAgI2luY2x1ZGUgPGxpbmsuaD4KICAjaW5jbHVkZSA8c3RkZGVmLmg+CkBAIC0zOCw3ICszOCw3 IEBACiAgCiAtLS0gLi9zYW5kYm94L2xpbnV4L3N1aWQvcHJvY2Vzc191dGlsLmgub3JpZwogKysr IC4vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCi1AQCAtMTEsNiArMTEsMTQgQEAK K0BAIC0xMiw2ICsxMiwxNCBAQAogICNpbmNsdWRlIDxzdGRib29sLmg+CiAgI2luY2x1ZGUgPHN5 cy90eXBlcy5oPgogIApAQCAtNjYsNyArNjYsNyBAQAogICNpZiBkZWZpbmVkKF9fbWlwc19fKQog LS0tIC4vdGhpcmRfcGFydHkvZmZtcGVnL2xpYmF2dXRpbC9jcHUuYy5vcmlnCiArKysgLi90aGly ZF9wYXJ0eS9mZm1wZWcvbGliYXZ1dGlsL2NwdS5jCi1AQCAtMzgsNyArMzgsNiBAQAorQEAgLTQx LDcgKzQxLDYgQEAKICAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAgI2VuZGlmCiAgI2luY2x1ZGUg PHN5cy90eXBlcy5oPgpAQCAtNzQsMjggKzc0LDYgQEAKICAjZW5kaWYKICAjaWYgSEFWRV9VTklT VERfSAogICNpbmNsdWRlIDx1bmlzdGQuaD4KLWRpZmYgLS1naXQgYS9jaHJvbWUvYnJvd3Nlci9t ZXRyaWNzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYyBiL2Nocm9t ZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0c19tZXRyaWNz LmNjCi0tLS0gY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4dHJh X3BhcnRzX21ldHJpY3MuY2MKLSsrKyBjaHJvbWUvYnJvd3Nlci9tZXRyaWNzL2Nocm9tZV9icm93 c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYwotQEAgLTM5LDcgKzM5LDkgQEAKLSAjZW5k aWYgIC8vIGRlZmluZWQoT1NfQU5EUk9JRCkgJiYgZGVmaW5lZChfX2FybV9fKQotIAotICNpZiBk ZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChPU19DSFJPTUVPUykKLSsjaWYgZGVmaW5lZChf X0dMSUJDX18pCi0gI2luY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KLSsjZW5kaWYKLSAKLSAj aW5jbHVkZSAiYmFzZS9saW51eF91dGlsLmgiCi0gI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJp bmdfc3BsaXQuaCIKLUBAIC0yOTUsNyArMjk3LDcgQEAgdm9pZCBSZWNvcmRMaW51eERpc3Rybygp IHsKLSAjZW5kaWYgIC8vIGRlZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVkKE9TX0NIUk9NRU9T KQotIAotIHZvaWQgUmVjb3JkTGludXhHbGliY1ZlcnNpb24oKSB7Ci0tI2lmIGRlZmluZWQoT1Nf TElOVVgpICYmICFkZWZpbmVkKE9TX0NIUk9NRU9TKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykg JiYgIWRlZmluZWQoT1NfQ0hST01FT1MpCi0gICBiYXNlOjpWZXJzaW9uIHZlcnNpb24oZ251X2dl dF9saWJjX3ZlcnNpb24oKSk7Ci0gCi0gICBVTUFMaW51eEdsaWJjVmVyc2lvbiBnbGliY192ZXJz aW9uX3Jlc3VsdCA9IFVNQV9MSU5VWF9HTElCQ19OT1RfUEFSU0VBQkxFOwogLS0tIHNlcnZpY2Vz L2RldmljZS9zZXJpYWwvc2VyaWFsX2lvX2hhbmRsZXJfcG9zaXguY2Mub3JpZwkyMDE5LTA3LTAz IDEwOjU3OjMyLjU2ODE3MTgzNSAtMDQwMAogKysrIHNlcnZpY2VzL2RldmljZS9zZXJpYWwvc2Vy aWFsX2lvX2hhbmRsZXJfcG9zaXguY2MJMjAxOS0wNy0wMyAxMDo1NzoxNi44Njc5ODMwMzEgLTA0 MDAKIEBAIC02LDYgKzYsNyBAQApAQCAtMTMxLDcgKzEwOSw3IEBAIGRpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9vdHMvaW5jbHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaCBiL3RoaXJkX3BhcnR5L290 cy9pbmNsCiAgICAgIGJhc2U6OmRlYnVnOjpTdGFja1RyYWNlIHN0YWNrX3RyYWNlOwogLS0tIC4v dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2Mub3Jp ZwogKysrIC4vdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0 aWwuY2MKLUBAIC0yOCw3ICsyOCw3IEBACitAQCAtMjksNyArMjksNyBAQAogIC8vIEZJWE1FOiBP biBNYWMgT1NYIGFuZCBMaW51eCwgdGhpcyBtZXRob2QgY2Fubm90IGVzdGltYXRlIHN0YWNrIHNp emUKICAvLyBjb3JyZWN0bHkgZm9yIHRoZSBtYWluIHRocmVhZC4KICAKQEAgLTE0MCw3ICsxMTgs NyBAQCBkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvb3RzL2luY2x1ZGUvb3BlbnR5cGUtc2FuaXRp c2VyLmggYi90aGlyZF9wYXJ0eS9vdHMvaW5jbAogICAgICBkZWZpbmVkKE9TX0ZVQ0hTSUEpCiAg ICAvLyBwdGhyZWFkX2dldGF0dHJfbnAoKSBjYW4gZmFpbCBpZiB0aGUgdGhyZWFkIGlzIG5vdCBp bnZva2VkIGJ5CiAgICAvLyBwdGhyZWFkX2NyZWF0ZSgpIChlLmcuLCB0aGUgbWFpbiB0aHJlYWQg b2YgYmxpbmtfdW5pdHRlc3RzKS4KLUBAIC05Niw3ICs5Niw3IEBACitAQCAtOTcsNyArOTcsNyBA QAogIH0KICAKICB2b2lkKiBHZXRTdGFja1N0YXJ0KCkgewpAQCAtMTUxLDcgKzEyOSw3IEBAIGRp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9vdHMvaW5jbHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaCBi L3RoaXJkX3BhcnR5L290cy9pbmNsCiAgICBpbnQgZXJyb3I7CiAtLS0gLi9uZXQvZG5zL2Ruc19j b25maWdfc2VydmljZV9wb3NpeC5jYy5vcmlnCiArKysgLi9uZXQvZG5zL2Ruc19jb25maWdfc2Vy dmljZV9wb3NpeC5jYwotQEAgLTEyMiw3ICsxMjIsNyBAQAorQEAgLTE1MCw3ICsxNTAsNyBAQAog ICAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCByZXN1bHQ7CiAgICBjb25maWctPnVuaGFuZGxlZF9v cHRpb25zID0gZmFsc2U7CiAgLy8gVE9ETyhmdWNoc2lhKTogVXNlIHJlc19uaW5pdCgpIHdoZW4g aXQncyBpbXBsZW1lbnRlZCBvbiBGdWNoc2lhLgpAQCAtMTgxLDcgKzE1OSw3IEBAIGRpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9vdHMvaW5jbHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaCBiL3RoaXJk X3BhcnR5L290cy9pbmNsCiAgCiAtLS0gdGhpcmRfcGFydHkvbmFzbS9uYXNtbGliL3JlYWxwYXRo LmMub3JpZwkyMDE5LTA3LTAzIDEyOjIzOjA1LjAyMTk0OTg5NSAtMDQwMAogKysrIHRoaXJkX3Bh cnR5L25hc20vbmFzbWxpYi9yZWFscGF0aC5jCTIwMTktMDctMDMgMTI6MjQ6MjQuMjQ2ODYyNjY1 IC0wNDAwCi1AQCAtNDksNyArNDksNyBAQAorQEAgLTQ3LDcgKzQ3LDcgQEAKICAKICAjaW5jbHVk ZSAibmFzbWxpYi5oIgogIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNs LXBhdGNoZXMvbXVzbC1oYWNrcy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtaGFja3MucGF0Y2gKaW5kZXggZWRjMWIwNjBkZmIuLjkyNzZlNDhhYjhlIDEw MDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWhhY2tz LnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtaGFj a3MucGF0Y2gKQEAgLTEsNiArMSw2IEBACiAtLS0gYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYy5v cmlnCTIwMTgtMTItMDggMTQ6MTE6MjUuMzAzNDc1MTE2ICswMTAwCiArKysgYmFzZS9kZWJ1Zy9z dGFja190cmFjZS5jYwkyMDE4LTEyLTA4IDE4OjAwOjQzLjg3NDk0Njk5OSArMDEwMAotQEAgLTIy OSw3ICsyMjksNyBAQAorQEAgLTIyNSw3ICsyMjUsNyBAQAogIH0KICBzdGQ6OnN0cmluZyBTdGFj a1RyYWNlOjpUb1N0cmluZ1dpdGhQcmVmaXgoY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29u c3QgewogICAgc3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwpAQCAtMTEsNyArMTEsNyBAQAogICAg cmV0dXJuIHN0cmVhbS5zdHIoKTsKIC0tLSBuZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2Mu b3JpZwkyMDE5LTA3LTAzIDEzOjEzOjQ2LjAzNDM0MjY0OSAtMDQwMAogKysrIG5ldC9zb2NrZXQv dWRwX3NvY2tldF9wb3NpeC5jYwkyMDE5LTA3LTAzIDEzOjIzOjUzLjExNzA4MTkwOSAtMDQwMAot QEAgLTExOTQsNyArMTE5NCw3IEBACitAQCAtMTE1Myw3ICsxMTUzLDcgQEAKICAgICAgbXNnX2lv di0+cHVzaF9iYWNrKHtjb25zdF9jYXN0PGNoYXIqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+ bGVuZ3RoKCl9KTsKICAgIG1zZ3ZlYy0+cmVzZXJ2ZShidWZmZXJzLnNpemUoKSk7CiAgICBmb3Ig KHNpemVfdCBqID0gMDsgaiA8IGJ1ZmZlcnMuc2l6ZSgpOyBqKyspCmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWxpYmMrKy5wYXRjaCBiL3NyY3Br Z3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtbGliYysrLnBhdGNoCmluZGV4IDA4 OGQ4MGZhZDUyLi5lMDc3NjgyMzQwMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxl cy9tdXNsLXBhdGNoZXMvbXVzbC1saWJjKysucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9m aWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1saWJjKysucGF0Y2gKQEAgLTIsNyArMiw3IEBAIGRpZmYg LS1naXQgYS9idWlsZHRvb2xzL3RoaXJkX3BhcnR5L2xpYmMrKy90cnVuay9pbmNsdWRlL2xvY2Fs ZSBiL2J1aWxkdG9vbHMvdGhpCiBpbmRleCBkMjlhMmRjLi41Mzk5OGJjIDEwMDY0NAogLS0tIGJ1 aWxkdG9vbHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL2luY2x1ZGUvbG9jYWxlCiArKysgYnVp bGR0b29scy90aGlyZF9wYXJ0eS9saWJjKysvdHJ1bmsvaW5jbHVkZS9sb2NhbGUKLUBAIC0xMSw2 ICsxMSwxNSBAQAorQEAgLTEwLDYgKzEwLDE1IEBACiAgI2lmbmRlZiBfTElCQ1BQX0xPQ0FMRQog ICNkZWZpbmUgX0xJQkNQUF9MT0NBTEUKICAKQEAgLTIyLDcgKzIyLDcgQEAgZGlmZiAtLWdpdCBh L2J1aWxkdG9vbHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL3NyYy9sb2NhbGUuY3BwIGIvYnVp bGR0b29scy90aGkKIGluZGV4IDQxNjNjMmMuLjNkMTkwMmEgMTAwNjQ0CiAtLS0gYS9idWlsZHRv b2xzL3RoaXJkX3BhcnR5L2xpYmMrKy90cnVuay9zcmMvbG9jYWxlLmNwcAogKysrIGJ1aWxkdG9v bHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL3NyYy9sb2NhbGUuY3BwCi1AQCAtMTAyOCwxMSAr MTAyOCwxMSBAQCBjdHlwZTxjaGFyPjo6ZG9fbmFycm93KGNvbnN0IGNoYXJfdHlwZSogbG93LCBj b25zdCBjaGFyX3R5cGUqIGhpZ2gsIGNoYXIgZGZhdWx0LAorQEAgLTEwMTksMTEgKzEwMTksMTEg QEAgY3R5cGU8Y2hhcj46OmRvX25hcnJvdyhjb25zdCBjaGFyX3R5cGUqIGxvdywgY29uc3QgY2hh cl90eXBlKiBoaWdoLCBjaGFyIGRmYXVsdCwKICAgICAgcmV0dXJuIGxvdzsKICB9CiAgCkBAIC0z Niw3ICszNiw3IEBAIGluZGV4IDQxNjNjMmMuLjNkMTkwMmEgMTAwNjQ0CiAgCiAgI2lmZGVmIF9M SUJDUFBfUFJPVklERVNfREVGQVVMVF9SVU5FX1RBQkxFCiAgY29uc3QgY3R5cGU8Y2hhcj46Om1h c2sqCi1AQCAtMTEzNiwxMiArMTEzNiwxMCBAQCBjdHlwZTxjaGFyPjo6Y2xhc3NpY190YWJsZSgp ICBfTk9FWENFUFQKK0BAIC0xMTI3LDEyICsxMTI3LDEwIEBAIGN0eXBlPGNoYXI+OjpjbGFzc2lj X3RhYmxlKCkgIF9OT0VYQ0VQVAogICNlbGlmIGRlZmluZWQoX0FJWCkKICAgICAgcmV0dXJuIChj b25zdCB1bnNpZ25lZCBpbnQgKilfX2xjX2N0eXBlX3B0ci0+b2JqLT5tYXNrOwogICNlbHNlCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLW5vLWds aWJjLXZlcnNpb24ucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9t dXNsLW5vLWdsaWJjLXZlcnNpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjlmZmVjNjI0NjVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1 bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1uby1nbGliYy12ZXJzaW9uLnBhdGNoCkBAIC0wLDAg KzEsMjggQEAKKy0tLSBjaHJvbWUvYnJvd3Nlci9tZXRyaWNzL2Nocm9tZV9icm93c2VyX21haW5f ZXh0cmFfcGFydHNfbWV0cmljcy5jYy5vcmlnCTIwMjEtMDMtMDIgMTg6NDU6MDMuMDAwMDAwMDAw ICswMTAwCisrKysgY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4 dHJhX3BhcnRzX21ldHJpY3MuY2MJMjAyMS0wMy0wMyAxNzozOToxNC45NDQxMDA3NDYgKzAxMDAK K0BAIC01NSw3ICs1NSw5IEBACisgLy8gVE9ETyhjcmJ1Zy5jb20vMTA1MjM5Nyk6IFJldmlzaXQg dGhlIG1hY3JvIGV4cHJlc3Npb24gb25jZSBidWlsZCBmbGFnIHN3aXRjaAorIC8vIG9mIGxhY3Jv cy1jaHJvbWUgaXMgY29tcGxldGUuCisgI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IEJVSUxERkxB RyhJU19DSFJPTUVPU19MQUNST1MpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRl IDxnbnUvbGliYy12ZXJzaW9uLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgImJhc2UvbGludXhf dXRpbC5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3NwbGl0LmgiCitAQCAtMzE3 LDYgKzMxOSw3IEBACisgLy8gVE9ETyhjcmJ1Zy5jb20vMTA1MjM5Nyk6IFJldmlzaXQgdGhlIG1h Y3JvIGV4cHJlc3Npb24gb25jZSBidWlsZCBmbGFnIHN3aXRjaAorIC8vIG9mIGxhY3Jvcy1jaHJv bWUgaXMgY29tcGxldGUuCisgI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IEJVSUxERkxBRyhJU19D SFJPTUVPU19MQUNST1MpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgYmFzZTo6VmVyc2lv biB2ZXJzaW9uKGdudV9nZXRfbGliY192ZXJzaW9uKCkpOworIAorICAgVU1BTGludXhHbGliY1Zl cnNpb24gZ2xpYmNfdmVyc2lvbl9yZXN1bHQgPSBVTUFfTElOVVhfR0xJQkNfTk9UX1BBUlNFQUJM RTsKK0BAIC0zMzgsNiArMzQxLDcgQEAKKyAgIH0KKyAgIGJhc2U6OlVtYUhpc3RvZ3JhbVNwYXJz ZSgiTGludXguR2xpYmNWZXJzaW9uIiwgZ2xpYmNfdmVyc2lvbl9yZXN1bHQpOworICNlbmRpZgor KyNlbmRpZgorIH0KKyAKKyB2b2lkIFJlY29yZFRvdWNoRXZlbnRTdGF0ZSgpIHsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRj aCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRj aAppbmRleCAyMzBiYjdiYmQyOS4uMGI5ODI1M2Y0ZDYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hy b21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaAorKysgYi9zcmNwa2dz L2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTEsNiAr MSw2IEBACiAtLS0gLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9w YXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYy5vcmlnCTIwMTktMDctMDMgMTE6NTM6MjEuMjEzNDc5 NzM2IC0wNDAwCiArKysgLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2Fs bF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwkyMDE5LTA3LTAzIDExOjU3OjAxLjMwNDk5ODI1 MyAtMDQwMAotQEAgLTE0MCwzMSArMTQwLDE0IEBACitAQCAtMTMxLDMxICsxMzEsMTQgQEAKICBS ZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CiAgICBjb25z dCBBcmc8dW5zaWduZWQgbG9uZz4gZmxhZ3MoMCk7CiAgCkBAIC00MSw3ICs0MSw3IEBACiAgCiAt LS0gLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjLm9y aWcKICsrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMu Y2MKLUBAIC00OTQsNiArNDk0LDcgQEAKK0BAIC01MjEsNiArNTIxLDcgQEAKICAgICAgY2FzZSBf X05SX21sb2NrOgogICAgICBjYXNlIF9fTlJfbXVubG9jazoKICAgICAgY2FzZSBfX05SX211bm1h cDoKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2FzZSBfX05S X21hZHZpc2U6CiAgICAgIGNhc2UgX19OUl9taW5jb3JlOgotQEAgLTUwOSw3ICs1MTAsNiBAQAor QEAgLTU0MCw3ICs1NDAsNiBAQAogICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xkdDoKICAjZW5kaWYK ICAgICAgY2FzZSBfX05SX21wcm90ZWN0OgpAQCAtNjEsNyArNjEsNyBAQCBkaWZmIC0tZ2l0IGEv c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYyBiL3NhbmRi b3gvbGludXgvcwogaW5kZXggODBmMDJjMC4uMjFmYmUyMSAxMDA2NDQKIC0tLSBzYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCiArKysgc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotQEAgLTM3Myw2ICszNzMsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNu bykgeworQEAgLTQwMCw2ICs0MDAsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9j ZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewogICNpZiBkZWZpbmVkKF9faTM4Nl9fKQogICAg ICBjYXNlIF9fTlJfd2FpdHBpZDoKICAjZW5kaWYKQEAgLTY5LDcgKzY5LDcgQEAgaW5kZXggODBm MDJjMC4uMjFmYmUyMSAxMDA2NDQKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2FzZSBfX05S X2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgogICAgICBjYXNlIF9f TlJfc2V0bnM6ICAvLyBQcml2aWxlZ2VkLgotQEAgLTM4NSw3ICszODYsNiBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgeworQEAgLTQx Myw3ICs0MTMsNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRl YXRoKGludCBzeXNubykgewogICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCiAgICAgIGNhc2UgX19OUl9zZXRfdGhyZWFkX2Fy ZWE6CiAgI2VuZGlmCkBAIC03OSw3ICs3OSw3IEBAIGluZGV4IDgwZjAyYzAuLjIxZmJlMjEgMTAw NjQ0CiAgICAgIGNhc2UgX19OUl92Zm9yazoKIC0tLSBzYW5kYm94L3BvbGljeS9saW51eC9icGZf cmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCiArKysgc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3Jl bmRlcmVyX3BvbGljeV9saW51eC5jYwotQEAgLTEwMCw5ICsxMDAsOSBAQAorQEAgLTk1LDkgKzk1 LDkgQEAKICAgICAgY2FzZSBfX05SX3VuYW1lOgogICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0cGFy YW06CiAgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXI6CmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9uby1tYWxsaW5mby5wYXRjaCBiL3NyY3Br Z3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL25vLW1hbGxpbmZvLnBhdGNoCmluZGV4IDI1 NGExZjYzMmRhLi4xNmU3ZTM2ODE3NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxl cy9tdXNsLXBhdGNoZXMvbm8tbWFsbGluZm8ucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9m aWxlcy9tdXNsLXBhdGNoZXMvbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTEsNiArMSw2IEBACiAtLS0g YmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYy5vcmlnCiArKysgYmFzZS90 cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYwotQEAgLTI0Myw3ICsyNDMsNyBAQAor QEAgLTE4NCw3ICsxODQsNyBAQAogICAgYWxsb2NhdGVkX29iamVjdHNfY291bnQgPSBtYWluX2hl YXBfaW5mby5ibG9ja19jb3VudDsKICAjZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCiAgLy8gVE9E TyhmdWNoc2lhKTogUG9ydCwgc2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjU5Mi4KQEAgLTMwLDcg KzMwLDcgQEAKICAjZW5kaWYKIC0tLSB0aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0 eS9sbHZtLXN1Ynplcm8vbGliL1N1cHBvcnQvVW5peC9Qcm9jZXNzLmluYwogKysrIHRoaXJkX3Bh cnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9saWIvU3VwcG9ydC9Vbml4 L1Byb2Nlc3MuaW5jLm9yaWcKLUBAIC04NCw3ICs4NCw3IEBACitAQCAtODYsNyArODYsNyBAQAog IH0KICAKICBzaXplX3QgUHJvY2Vzczo6R2V0TWFsbG9jVXNhZ2UoKSB7CkBAIC00Miw3ICs0Miw3 IEBACiAKIC0tLSB0aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAv Y29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oLm9yaWcJMjAxOS0wOS0z MCAxMzowMzo0Mi41NTY4ODA1MzcgLTA0MDAKICsrKyB0aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90 aGlyZF9wYXJ0eS9sbHZtLTEwLjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2Nv bmZpZy5oCTIwMTktMDktMzAgMTM6MDc6MjcuOTg5ODIxMjI3IC0wNDAwCi1AQCAtMTIyLDcgKzEy Miw5IEBACitAQCAtMTI1LDcgKzEyNSw5IEBACiAgLyogI3VuZGVmIEhBVkVfTUFMTENUTCAqLwog IAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8nIGZ1bmN0aW9uLiAq LwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvcmVzb2x2 ZXIucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9yZXNvbHZlci5w YXRjaAppbmRleCAyOWZlMmQyZjFmMy4uMGNlNzdjOTZhNjAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3Jlc29sdmVyLnBhdGNoCisrKyBiL3NyY3BrZ3Mv Y2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3Jlc29sdmVyLnBhdGNoCkBAIC0xLDYgKzEsNiBA QAogLS0tIG5ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjLm9yaWcJMjAyMC0xMC0wOSAx NjozOToxMi4wNjQwNjk4MzUgLTA0MDAKICsrKyBuZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdl ci5jYwkyMDIwLTEwLTA5IDE2OjQyOjQ5LjczODMwMjc3MiAtMDQwMAotQEAgLTI3NzksOCArMjc3 OSw3IEBACitAQCAtMjU2Miw4ICsyNTYyLDcgQEAKICAgIE5ldHdvcmtDaGFuZ2VOb3RpZmllcjo6 QWRkQ29ubmVjdGlvblR5cGVPYnNlcnZlcih0aGlzKTsKICAgIGlmIChzeXN0ZW1fZG5zX2NvbmZp Z19ub3RpZmllcl8pCiAgICAgIHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXy0+QWRkT2JzZXJ2 ZXIodGhpcyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hl cy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNs LXBhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAppbmRleCA5MDAxYTJhODU0ZC4uMWJl OTMyMzEyZWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVz L3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9t dXNsLXBhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApAQCAtMSw0NiArMSwzIEBACi1k aWZmIC0tZ2l0IHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oIHNhbmRib3gv bGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1pbmRleCBhNmFlYzU0NGUuLjJhNGE3ZjFi YyAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotKysr IHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1AQCAtMTYsNyArMTYsNyBA QAotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3Nl cyBzaXplX3QgZGVmaW5pdGlvbgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLS0jZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiBkZWZpbmVk KF9fR0xJQkNfXykKLSAvLyBNYW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBwYzY0Ci0gdHlwZWRl ZiB1bnNpZ25lZCBsb25nIGxvbmcgZ3JlZ190OwotICNlbmRpZgotQEAgLTM2MSwxMSArMzYxLDEx IEBAIHR5cGVkZWYgc3RydWN0IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7Ci0gI2RlZmluZSBTRUNDT01Q X0FSQ0ggQVVESVRfQVJDSF9QUEM2NAotICNlbmRpZgotIAotLSNkZWZpbmUgU0VDQ09NUF9SRUco X2N0eCwgX3JlZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQotKyNkZWZp bmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKCgoc3RydWN0IHB0X3JlZ3MgKikoX2N0eCktPnVj X21jb250ZXh0LnJlZ3MpLT5ncHJbX3JlZ10pCi0gCi0gI2RlZmluZSBTRUNDT01QX1JFU1VMVChf Y3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotICNkZWZpbmUgU0VDQ09NUF9TWVNDQUxMKF9jdHgp IFNFQ0NPTVBfUkVHKF9jdHgsIDApCi0tI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpIChfY3R4KS0+ dWNfbWNvbnRleHQucmVncy0+bmlwCi0rI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpICgoc3RydWN0 IHB0X3JlZ3MgKikoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MpLT5uaXAKLSAjZGVmaW5lIFNFQ0NP TVBfUEFSTTEoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSAjZGVmaW5lIFNFQ0NPTVBfUEFS TTIoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNCkKLSAjZGVmaW5lIFNFQ0NPTVBfUEFSTTMoX2N0 eCkgU0VDQ09NUF9SRUcoX2N0eCwgNSkKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi9zeXNjYWxsLmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotaW5k ZXggZDUzYTdmZjU2Li5jMjkwZjBlOTIgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi9zeXNjYWxsLmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNj Ci1AQCAtNDk5LDkgKzQ5OSw5IEBAIHZvaWQgU3lzY2FsbDo6UHV0VmFsdWVJblVjb250ZXh0KGlu dHB0cl90IHJldF92YWwsIHVjb250ZXh0X3QqIGN0eCkgewotICAgLy8gU2FtZSBhcyBNSVBTLCBu ZWVkIHRvIGludmVydCByZXQgYW5kIHNldCBlcnJvciByZWdpc3RlciAoY3IwLlNPKQotICAgaWYg KHJldF92YWwgPD0gLTEgJiYgcmV0X3ZhbCA+PSAtNDA5NSkgewotICAgICByZXRfdmFsID0gLXJl dF92YWw7Ci0tICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyIHw9ICgxIDw8IDI4KTsKLSsg ICAgKChzdHJ1Y3QgcHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciB8PSAoMSA8 PCAyOCk7Ci0gICB9IGVsc2UgewotLSAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+ KDEgPDwgMjgpOwotKyAgICAoKHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19tY29udGV4dC5yZWdz KS0+Y2NyICY9IH4oMSA8PCAyOCk7Ci0gICB9Ci0gI2VuZGlmCi0gICBTRUNDT01QX1JFU1VMVChj dHgpID0gc3RhdGljX2Nhc3Q8Z3JlZ190PihyZXRfdmFsKTsKIGRpZmYgLS1naXQgdGhpcmRfcGFy dHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrLmggdGhp cmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2Nr LmgKIGluZGV4IGNkY2U5YmY4Li43M2Q3N2RkYSAxMDA2NDQKIC0tLSB0aGlyZF9wYXJ0eS9hYnNl aWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaApAQCAtNTYsNyAr MTMsNyBAQCBpbmRleCBjZGNlOWJmOC4uNzNkNzdkZGEgMTAwNjQ0CiAgI2Vsc2UKIC0tLSB0aGly ZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfY29u ZmlnLmgKICsrKyB0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFs L3N0YWNrdHJhY2VfY29uZmlnLmgKLUBAIC02NCw3ICs2NCw3IEBACitAQCAtNTksNyArNTksNyBA QAogICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKICAjZGVm aW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKICAgICJhYnNsL2RlYnVnZ2luZy9pbnRl cm5hbC9zdGFja3RyYWNlX3g4Ni1pbmwuaW5jIgpAQCAtNjUsMjMgKzIyLDExIEBAIGluZGV4IGNk Y2U5YmY4Li43M2Q3N2RkYSAxMDA2NDQKICAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVB REVSIFwKICAgICJhYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bvd2VycGMtaW5s LmluYyIKICAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9icmVha3BhZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotaW5kZXgg ZjlhNjBlMzcuLjI1ZjNhMGI3IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxE LmduCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLUBAIC02MzcsNiArNjM3LDcg QEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAKLSAgICAgaWYgKGN1cnJlbnRfY3B1 ID09ICJwcGM2NCIpIHsKLSAgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENPTlRFWFQiIF0K LSsgICAgICAgIGxpYnMgKz0gWyAidWNvbnRleHQiIF0KLSAgICAgfSBlbHNlIHsKLSAgICAgICAg IHNvdXJjZXMgKz0gWwotICAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2Jy ZWFrcGFkX2dldGNvbnRleHQuUyIKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2Mg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRl cl9jb21tb24vdGhyZWFkX2luZm8uY2MKIGluZGV4IDAzYWZlYzdhLi4wMjY0ZWNmMSAxMDA2NDQK IC0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBf d3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwogKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNj Ci1AQCAtMjczLDYgKzI3Myw5IEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3 Q29udGV4dENQVSogb3V0KSBjb25zdCB7CitAQCAtMjEwLDYgKzIxMCw5IEBAIHZvaWQgVGhyZWFk SW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7CiAgCiAgI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQogIApAQCAtOTEsMjMgKzM2LDExIEBAIGluZGV4IDAz YWZlYzdhLi4wMjY0ZWNmMSAxMDA2NDQKICB1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1 Y3Rpb25Qb2ludGVyKCkgY29uc3QgewogICAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9O SVBdOwogIH0KLUBAIC0yOTAsOSArMjkzLDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29u dGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAgICAgb3V0LT5jdHIgPSBtY29udGV4 dC5ncF9yZWdzW1BUX0NUUl07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZM T0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAgb3V0LT5mbG9hdF9z YXZlLmZwcmVnc1tpXSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0 X3NhdmUuZnByZWdzW2ldID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdzKVtpXTsKLSAK LS0gICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07 Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0X3QgKikmbWNvbnRleHQuZnBf cmVncylbRUxGX05GUFJFRy0xXTsKLSAKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNU T1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSAgICAgICAgIG91dC0+dmVjdG9yX3NhdmUu c2F2ZV92cltpXSA9IFwKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwogaW5kZXggMTA5MDQ3MGYuLmU1ODAyMzNkIDEwMDY0 NAogLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwogKysrIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0 X3JlYWRlci5jYwotQEAgLTI1Nyw2ICsyNTcsOSBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxs Q1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjKSB7CitA QCAtMjEwLDYgKzIxMCw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJh d0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpIHsKICAKICAjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCiAgCkBAIC0xMTcsMTggKzUwLDYgQEAgaW5kZXggMTA5MDQ3MGYu LmU1ODAyMzNkIDEwMDY0NAogIHVpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0U3RhY2tQb2lu dGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CiAgICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQu Z3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF07CiAgfQotQEAgLTI4MCw5ICsyODMsOSBA QCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQs IGNvbnN0IHVjb250ZXh0X3QqIHVjLAotICAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29udGV4dC5n cF9yZWdzW1BUX0NUUl07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FU SU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAgb3V0LT5mbG9hdF9zYXZl LmZwcmVnc1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOwotKyAgICAgICAgb3V0LT5m bG9hdF9zYXZlLmZwcmVnc1tpXSA9ICgodWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3Jl Z3MpW2ldOwotIAotLSAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+dWNfbWNvbnRleHQu ZnBfcmVnc1tORlBSRUctMV07Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0 X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3JlZ3MpW0VMRl9ORlBSRUctMV07Ci0gCi0gICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCi0g ICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPQogZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9u X2hhbmRsZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCiBpbmRleCA1YTdhYjUwYy4uZWU4Yjg1OGMg MTAwNjQ0CiAtLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCkBAIC0xNDUsMzEgKzY2LDYgQEAgaW5kZXgg NWE3YWI1MGMuLmVlOGI4NThjIDEwMDY0NAogIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgewog IAogIG5hbWVzcGFjZSB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAotaW5kZXggOGUzMzVhMDkuLmIy YTBmMTU1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi1AQCAtNDY5LDcgKzQ2OSw3IEBAIHN0 cnVjdCBNQ29udGV4dDY0IHsKLSAgIFNpZ25hbFRocmVhZENvbnRleHQ2NCBncF9yZWdzOwotICAg U2lnbmFsRmxvYXRDb250ZXh0NjQgIGZwX3JlZ3M7Ci0gICBTaWduYWxWZWN0b3JDb250ZXh0NjQg KnZfcmVnczsKLS0gIGludDY0X3Qgdm14X3Jlc2VydmVbNjldOwotKyAgaW50NjRfdCB2bXhfcmVz ZXJ2ZVsxMDFdOwotIH07Ci0gCi0gc3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1YmxpYyBUcmFp dHM2NCB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4 L3RocmVhZF9pbmZvLmgKLWluZGV4IGRlYTBkMWYzLi5iMjAzZTViMiAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLSsrKyB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLUBA IC0zMCw2ICszMCw3IEBACi0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQot ICNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICNl bmRpZgotIAotIG5hbWVzcGFjZSBjcmFzaHBhZCB7CiBkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xz cy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9z dXBwb3J0LmgKIGluZGV4IDk5NTVjZTQ0Li40YzFjYzQ4OCAxMDA2NDQKIC0tLSB0aGlyZF9wYXJ0 eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9icm93c2VyLXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9icm93c2VyLXNpemVfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmEy MTRkOTg3ZDYuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9icm93 c2VyLXNpemVfdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLSBjaHJv bWUvYnJvd3Nlci9zZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3VuZHMuaAkyMDIwLTA4LTEw IDIwOjM5OjIwLjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9tZS9icm93c2VyL3NlYXJjaC9iYWNr Z3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oCTIwMjAtMDktMDQgMTM6NDg6MjIuNjQwMDIzMjU2ICsw MjAwCi1AQCAtNiw2ICs2LDcgQEAKLSAjZGVmaW5lIENIUk9NRV9CUk9XU0VSX1NFQVJDSF9CQUNL R1JPVU5EX05UUF9CQUNLR1JPVU5EU19IXwotIAotICNpbmNsdWRlIDxhcnJheT4KLSsjaW5jbHVk ZSA8Y3N0ZGRlZj4KLSAKLSBjbGFzcyBHVVJMOwotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJlZUZvcm1hdHRlci1pbmNsdWRlLnBhdGNoIGIv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJlZUZvcm1hdHRlci1pbmNs dWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDc4MTA5ODkyMC4uMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJl ZUZvcm1hdHRlci1pbmNsdWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAot RnJvbSA2ZTQwMmQ5N2MyZGVjNTcyNmYzN2U5NWY5N2I3ZjdlMTJiMWQzYjFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogSm9zZSBEYXBlbmEgUGF6IDxqZGFwZW5hQGlnYWxpYS5jb20+ Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDExOjAyOjEzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hd IElXWVU6IGluY2x1ZGUgaGVhZGVycyBmb3Igc3RkOjp2ZWN0b3IgYW5kIHN0ZDo6dW5pcXVlX3B0 ciBpbiBBWFRyZWVGb3JtYXR0ZXIKLQotRml4IHRoZXNlIGJ1aWxkIGVycm9ycyB3aXRoIGxpYnN0 ZGMrKzoKLS4uLy4uL3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1h dHRlci5oOjM1OjEyOiBlcnJvcjog4oCYc3RkOjp2ZWN0b3LigJkgaGFzIG5vdCBiZWVuIGRlY2xh cmVkCi0uLi8uLi91aS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2luc3BlY3QvdHJlZV9mb3JtYXR0 ZXIuaDo2MToxNjogZXJyb3I6IOKAmHVuaXF1ZV9wdHLigJkgaW4gbmFtZXNwYWNlIOKAmHN0ZOKA mSBkb2VzIG5vdCBuYW1lIGEgdGVtcGxhdGUgdHlwZQotCi1CdWc6IDk1NzUxOQotQ2hhbmdlLUlk OiBJNDAyYWMwNjQ0MjU1YjNjZDQ5MzJmZjJmZTcyZDk5OWIxMjVhNzg5NQotLS0tCi0KLWRpZmYg LS1naXQgYS91aS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2luc3BlY3QvdHJlZV9mb3JtYXR0ZXIu aCBiL3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5oCi1p bmRleCA0YTcwYTRkLi5iYjIzNzY4IDEwMDY0NAotLS0tIHVpL2FjY2Vzc2liaWxpdHkvcGxhdGZv cm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5oCi0rKysgdWkvYWNjZXNzaWJpbGl0eS9wbGF0Zm9y bS9pbnNwZWN0L3RyZWVfZm9ybWF0dGVyLmgKLUBAIC01LDYgKzUsOSBAQAotICNpZm5kZWYgVUlf QUNDRVNTSUJJTElUWV9QTEFURk9STV9JTlNQRUNUX1RSRUVfRk9STUFUVEVSX0hfCi0gI2RlZmlu ZSBVSV9BQ0NFU1NJQklMSVRZX1BMQVRGT1JNX0lOU1BFQ1RfVFJFRV9GT1JNQVRURVJfSF8KLSAK LSsjaW5jbHVkZSA8bWVtb3J5PgotKyNpbmNsdWRlIDx2ZWN0b3I+Ci0rCi0gI2luY2x1ZGUgInVp L2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC9pbnNwZWN0LmgiCi0gCi0gI2luY2x1ZGUg InVpL2dmeC9uYXRpdmVfd2lkZ2V0X3R5cGVzLmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQm9va21hcmtNb2RlbE9ic2VydmVyLWluY2x1ZGUucGF0 Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQm9va21hcmtNb2RlbE9i c2VydmVyLWluY2x1ZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiMjZh NjBhMzZlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21p dW0tODgtQm9va21hcmtNb2RlbE9ic2VydmVyLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyMSArMCwwIEBACi1Gcm9tIDEyN2VjM2IxYmYyNmFiMzdmMmFlODMzM2YyODQwMDg4Njg3 NTYyNzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxz dGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDIxIE5vdiAyMDIwIDE1OjU5OjIzICsw MDAwCi1TdWJqZWN0OiBbUEFUQ0hdIElXWVU6IHNpemVfdCBpcyBkZWZpbmVkIHN0ZGRlZi5oCi0K LUNoYW5nZS1JZDogSTQ0MDBhYzdjNjAwNGI0OWVjNmU3MmM0NGYyNzU0ZTIxNjY2NDJmODgKLS0t LQotCi1kaWZmIC0tZ2l0IGEvY29tcG9uZW50cy9ib29rbWFya3MvYnJvd3Nlci9ib29rbWFya19t b2RlbF9vYnNlcnZlci5oIGIvY29tcG9uZW50cy9ib29rbWFya3MvYnJvd3Nlci9ib29rbWFya19t b2RlbF9vYnNlcnZlci5oCi1pbmRleCA2OWM0MGU3Li4wZTVlYjk2IDEwMDY0NAotLS0tIGNvbXBv bmVudHMvYm9va21hcmtzL2Jyb3dzZXIvYm9va21hcmtfbW9kZWxfb2JzZXJ2ZXIuaAotKysrIGNv bXBvbmVudHMvYm9va21hcmtzL2Jyb3dzZXIvYm9va21hcmtfbW9kZWxfb2JzZXJ2ZXIuaAotQEAg LTcsNiArNyw4IEBACi0gCi0gI2luY2x1ZGUgPHNldD4KLSAKLSsjaW5jbHVkZSA8c3RkZGVmLmg+ Ci0rCi0gY2xhc3MgR1VSTDsKLSAKLSBuYW1lc3BhY2UgYm9va21hcmtzIHsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Db21wb3NpdG9yRnJhbWVSZXBv cnRlci1kY2hlY2sucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgt Q29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBhYTFjNTJlMGI3ZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTg4LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLUZyb20gNTZjNjU0YTkxNjAwZTNiZjI1 NGFhOWY2NmMxMTUxYjA4NTBiNmVlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEpv c2UgRGFwZW5hIFBheiA8amRhcGVuYUBpZ2FsaWEuY29tPgotRGF0ZTogV2VkLCAxMSBOb3YgMjAy MCAxMDoyNDo0NyArMDEwMAotU3ViamVjdDogW1BBVENIXSBHQ0M6IGRvIG5vdCBwYXNzIHVuaXF1 ZV9wdHIgdG8gRENIRUNLX05FLCBidXQgdGhlIGFjdHVhbCBwb2ludGVyLCBpbiBDb21wb3NpdG9y RnJhbWVSZXBvcnRlcgotCi1EQ0hFQ0tfTkUgY29tcGFyaXNvbiByZXF1aXJlcyBDaGVja09wVmFs dWVTdHIgdG8gYmUgZGVmaW5lZCBmb3IgdGhlCi10eXBlLCBvciBwcm92aWRpbmcgYW4gb3V0cHV0 IHN0cmVhbSBvcGVyYXRvci4gQSB1bmlxdWVfcHRyIGRvZXMgbm90Ci1wcm92aWRlIGFueS4KLQot Q29tcGlsYXRpb24gaW4gR0NDIGlzIGZhaWxpbmcgaW4gQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXIg YmVjYXVzZSBvZgotdGhpczoKLS4uLy4uL2NjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBv cnRlci5jYzogSW4gbWVtYmVyIGZ1bmN0aW9uIOKAmHZvaWQgY2M6OkNvbXBvc2l0b3JGcmFtZVJl cG9ydGVyOjpSZXBvcnRFdmVudExhdGVuY3lIaXN0b2dyYW1zKCkgY29uc3TigJk6Ci0uLi8uLi9i YXNlL2NoZWNrX29wLmg6MjI0OjU5OiBlcnJvcjogbm8gbWF0Y2hpbmcgZnVuY3Rpb24gZm9yIGNh bGwgdG8g4oCYQ2hlY2tPcFZhbHVlU3RyKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxjYzo6RXZlbnRN ZXRyaWNzPiYp4oCZCi0KLUZpeGVkIGNvbXBhcmluZyB0aGUgcmVzdWx0IG9mIGdldCgpIG1ldGhv ZCBmb3IgdW5pcXVlX3B0ciBpbnN0ZWFkIG9mCi10aGUgdW5pcXVlX3B0ci4KLQotQnVnOiA4MTky OTQKLUNoYW5nZS1JZDogSTExMTAzZDE4NjdjNzE5NmMxZGU5MmU3MmY5ZjEyZGNmZDMxYzI5ZjEK LQotKHVwZGF0ZWQgdG8gdXNlIERDSEVDSyBhcyBzdWdnZXN0ZWQgaW4gY29tbWVudHMpCi0tLS0K LQotZGlmZiAtLWdpdCBhL2NjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYyBi L2NjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYwotaW5kZXggNzI1YmViMC4u ZmFmZDBmMyAxMDA2NDQKLS0tLSBjYy9tZXRyaWNzL2NvbXBvc2l0b3JfZnJhbWVfcmVwb3J0ZXIu Y2MKLSsrKyBjYy9tZXRyaWNzL2NvbXBvc2l0b3JfZnJhbWVfcmVwb3J0ZXIuY2MKLUBAIC02ODYs NyArNjg2LDcgQEAKLSAKLSB2b2lkIENvbXBvc2l0b3JGcmFtZVJlcG9ydGVyOjpSZXBvcnRFdmVu dExhdGVuY3lIaXN0b2dyYW1zKCkgY29uc3QgewotICAgZm9yIChjb25zdCBhdXRvJiBldmVudF9t ZXRyaWNzIDogZXZlbnRzX21ldHJpY3NfKSB7Ci0tICAgIERDSEVDS19ORShldmVudF9tZXRyaWNz LCBudWxscHRyKTsKLSsgICAgRENIRUNLKGV2ZW50X21ldHJpY3MpOwotICAgICBjb25zdCBzdGQ6 OnN0cmluZyBoaXN0b2dyYW1fYmFzZV9uYW1lID0KLSAgICAgICAgIEdldEV2ZW50TGF0ZW5jeUhp c3RvZ3JhbUJhc2VOYW1lKCpldmVudF9tZXRyaWNzKTsKLSAgICAgY29uc3QgaW50IGV2ZW50X3R5 cGVfaW5kZXggPSBzdGF0aWNfY2FzdDxpbnQ+KGV2ZW50X21ldHJpY3MtPnR5cGUoKSk7CmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtU3RyaW5nUG9vbC1p bmNsdWRlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LVN0cmlu Z1Bvb2wtaW5jbHVkZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU1YmJh ZTJlY2UuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1 bS04OC1TdHJpbmdQb29sLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCww IEBACi1Gcm9tIDM3MjM2NmI0MTgwNTMzZjI3ZDMyNTBhNTA4MTA4MjgzNzBkNjk3YjAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xl bWFpbC5jb20+Ci1EYXRlOiBTYXQsIDIxIE5vdiAyMDIwIDE2OjEyOjE4ICswMDAwCi1TdWJqZWN0 OiBbUEFUQ0hdIElXWVU6IGluY2x1ZGUgbGltaXRzIGZvciBzdGQ6Om51bWVyaWNfbGltaXRzCi0K LUNoYW5nZS1JZDogSWE1MjI2ZTE0MzJhNjIyZjRmNGFiYzhmMWIxOGJjYWI4NjM4YTczYzYKLS0t LQotCi1kaWZmIC0tZ2l0IGEvc3JjL3RyYWNlX3Byb2Nlc3Nvci9jb250YWluZXJzL3N0cmluZ19w b29sLmggYi9zcmMvdHJhY2VfcHJvY2Vzc29yL2NvbnRhaW5lcnMvc3RyaW5nX3Bvb2wuaAotaW5k ZXggMTFhZTkxYy4uNThjNmRiMiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9wZXJmZXR0by9zcmMv dHJhY2VfcHJvY2Vzc29yL2NvbnRhaW5lcnMvc3RyaW5nX3Bvb2wuaAotKysrIHRoaXJkX3BhcnR5 L3BlcmZldHRvL3NyYy90cmFjZV9wcm9jZXNzb3IvY29udGFpbmVycy9zdHJpbmdfcG9vbC5oCi1A QCAtMjIsNiArMjIsNyBAQAotIAotICNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgotICNpbmNsdWRl IDx2ZWN0b3I+Ci0rI2luY2x1ZGUgPGxpbWl0cz4KLSAKLSAjaW5jbHVkZSAicGVyZmV0dG8vZXh0 L2Jhc2Uvb3B0aW9uYWwuaCIKLSAjaW5jbHVkZSAicGVyZmV0dG8vZXh0L2Jhc2UvcGFnZWRfbWVt b3J5LmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgt ZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMvY2hyb21pdW0tODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYjE1MzdkODAxLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1 ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1Gcm9tIGJjYjIwYmFiZWU2 MDJiNTVmZTRiZDAyNmUxM2E0MWQxMGI4OTYzMmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBTYXQs IDIxIE5vdiAyMDIwIDE1OjU1OjAyICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIElXWVU6IGluY2x1 ZGUgbGltaXRzIGZvciBzdGQ6Om51bWVyaWNfbGltaXRzCi0KLUNoYW5nZS1JZDogSTFiNmIwN2Vi YjM5N2EyOWM4NGQzZWQ1MWFlNDE1MjNlM2VjYWI0OTcKLS0tLQotCi1kaWZmIC0tZ2l0IGEvY29t cG9uZW50cy9mZWRlcmF0ZWRfbGVhcm5pbmcvZmxvY19jb25zdGFudHMuY2MgYi9jb21wb25lbnRz L2ZlZGVyYXRlZF9sZWFybmluZy9mbG9jX2NvbnN0YW50cy5jYwotaW5kZXggZGY2NmU1ZC4uMmVi NTBmMSAxMDA2NDQKLS0tLSBjb21wb25lbnRzL2ZlZGVyYXRlZF9sZWFybmluZy9mbG9jX2NvbnN0 YW50cy5jYwotKysrIGNvbXBvbmVudHMvZmVkZXJhdGVkX2xlYXJuaW5nL2Zsb2NfY29uc3RhbnRz LmNjCi1AQCAtNCw2ICs0LDggQEAKLSAKLSAjaW5jbHVkZSAiY29tcG9uZW50cy9mZWRlcmF0ZWRf bGVhcm5pbmcvZmxvY19jb25zdGFudHMuaCIKLSAKLSsjaW5jbHVkZSA8bGltaXRzPgotKwotIG5h bWVzcGFjZSBmZWRlcmF0ZWRfbGVhcm5pbmcgewotIAotIC8vIFRoaXMgaXMgb25seSBmb3IgZXhw ZXJpbWVudGF0aW9uIGFuZCB3b24ndCBiZSBzZXJ2ZWQgdG8gd2Vic2l0ZXMuCmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZ2xpYmMtMi4zMy5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1nbGliYy0yLjMzLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDMwNmQ1ZTQyOS4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWdsaWJjLTIuMzMucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotIyBQYXRjaCBtYWRlIGJ5IEtldmluIEtv ZmxlciA8S2V2aW5AdGlnY2MudGljYWxjLm9yZz4KLSMgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQu Y29tL3Nob3dfYnVnLmNnaT9pZD0xOTA0NjUyCi0KLWRpZmYgLXVwIGNocm9taXVtLTg4LjAuNDMy NC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNj LmZzdGF0Zml4IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYy5mc3RhdGZpeAkyMDIxLTAxLTI1IDEwOjExOjQ1 LjQyNzQzNjM5OCAtMDUwMAotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9i YXNlbGluZV9wb2xpY3kuY2MJMjAyMS0wMS0yNSAxMDoxMjo1MS4zMzc2OTkwMDMgLTA1MDAKLUBA IC0yNTcsNiArMjU3LDE4IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNf ZGUKLSAgICAgcmV0dXJuIFJlc3RyaWN0S2lsbFRhcmdldChjdXJyZW50X3BpZCwgc3lzbm8pOwot ICAgfQotIAotKyNpZiBkZWZpbmVkKF9fTlJfbmV3ZnN0YXRhdCkKLSsgIGlmIChzeXNubyA9PSBf X05SX25ld2ZzdGF0YXQpIHsKLSsgICAgcmV0dXJuIFJld3JpdGVGc3RhdGF0U0lHU1lTKCk7Ci0r ICB9Ci0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCi0rICBpZiAoc3lz bm8gPT0gX19OUl9mc3RhdGF0NjQpIHsKLSsgICAgcmV0dXJuIFJld3JpdGVGc3RhdGF0U0lHU1lT KCk7Ci0rICB9Ci0rI2VuZGlmCi0rCi0gICBpZiAoU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShz eXNubykgfHwKLSAgICAgICBTeXNjYWxsU2V0czo6SXNDdXJyZW50RGlyZWN0b3J5KHN5c25vKSkg ewotICAgICByZXR1cm4gRXJyb3IoZnNfZGVuaWVkX2Vycm5vKTsKLWRpZmYgLXVwIGNocm9taXVt LTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hh bmRsZXJzLmNjLmZzdGF0Zml4IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjCi0tLS0gc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5jYy5mc3RhdGZpeAkyMDIxLTAxLTI1 IDEwOjEzOjEwLjE3OTc3NDA4MSAtMDUwMAotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9zaWdzeXNfaGFuZGxlcnMuY2MJMjAyMS0wMS0yNSAxMDoxNjoxOC43OTA1MjU3NDYg LTA1MDAKLUBAIC02LDYgKzYsOCBAQAotIAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmgiCi0gCi0rI2luY2x1ZGUgPGVycm5vLmg+ Ci0rI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotICNpbmNsdWRlIDxz dGRpbnQuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci1AQCAtMzU1LDYgKzM1NywzNSBAQCBpbnRw dHJfdCBTSUdTWVNTY2hlZEhhbmRsZXIoY29uc3Qgc3RydWN0Ci0gICByZXR1cm4gLUVOT1NZUzsK LSB9Ci0gCi0raW50cHRyX3QgU0lHU1lTRnN0YXRhdEhhbmRsZXIoY29uc3Qgc3RydWN0IGFyY2hf c2VjY29tcF9kYXRhJiBhcmdzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQq IGF1eCkgewotKyAgc3dpdGNoIChhcmdzLm5yKSB7Ci0rI2lmIGRlZmluZWQoX19OUl9uZXdmc3Rh dGF0KQotKyAgICBjYXNlIF9fTlJfbmV3ZnN0YXRhdDoKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChf X05SX2ZzdGF0YXQ2NCkKLSsgICAgY2FzZSBfX05SX2ZzdGF0YXQ2NDoKLSsjZW5kaWYKLSsjaWYg ZGVmaW5lZChfX05SX25ld2ZzdGF0YXQpIHx8IGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCi0rICAg ICAgaWYgKCpyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIgKj4oYXJncy5hcmdzWzFdKSA9PSAn XDAnCi0rICAgICAgICAgICYmIGFyZ3MuYXJnc1szXSA9PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4o QVRfRU1QVFlfUEFUSCkpIHsKLSsgICAgICAgIHJldHVybiBzYW5kYm94OjpzeXNfZnN0YXQ2NChz dGF0aWNfY2FzdDxpbnQ+KGFyZ3MuYXJnc1swXSksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc3RhdDY0ICo+KGFyZ3MuYXJnc1sy XSkpOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBlcnJubyA9IEVBQ0NFUzsKLSsgICAgICAg IHJldHVybiAtMTsKLSsgICAgICB9Ci0rICAgICAgYnJlYWs7Ci0rI2VuZGlmCi0rICB9Ci0rCi0r ICBDcmFzaFNJR1NZU19IYW5kbGVyKGFyZ3MsIGF1eCk7Ci0rCi0rICAvLyBTaG91bGQgbmV2ZXIg YmUgcmVhY2hlZC4KLSsgIFJBV19DSEVDSyhmYWxzZSk7Ci0rICByZXR1cm4gLUVOT1NZUzsKLSt9 Ci0rCi0gYnBmX2RzbDo6UmVzdWx0RXhwciBDcmFzaFNJR1NZUygpIHsKLSAgIHJldHVybiBicGZf ZHNsOjpUcmFwKENyYXNoU0lHU1lTX0hhbmRsZXIsIE5VTEwpOwotIH0KLUBAIC0zODcsNiArNDE4 LDEwIEBAIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmV3cml0ZVNjaGVkU0lHU1lTKCkKLSAgIHJldHVy biBicGZfZHNsOjpUcmFwKFNJR1NZU1NjaGVkSGFuZGxlciwgTlVMTCk7Ci0gfQotIAotK2JwZl9k c2w6OlJlc3VsdEV4cHIgUmV3cml0ZUZzdGF0YXRTSUdTWVMoKSB7Ci0rICByZXR1cm4gYnBmX2Rz bDo6VHJhcChTSUdTWVNGc3RhdGF0SGFuZGxlciwgTlVMTCk7Ci0rfQotKwotIHZvaWQgQWxsb2Nh dGVDcmFzaEtleXMoKSB7Ci0gI2lmICFkZWZpbmVkKE9TX05BQ0xfTk9OU0ZJKQotICAgaWYgKHNl Y2NvbXBfY3Jhc2hfa2V5KQotZGlmZiAtdXAgY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuaC5mc3RhdGZpeCBjaHJv bWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5 c19oYW5kbGVycy5oCi0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5 c19oYW5kbGVycy5oLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6MTY6MzYuOTgyNTk4MjM2IC0wNTAw Ci0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5o CTIwMjEtMDEtMjUgMTA6MTg6NDUuNzA1MTExMDI3IC0wNTAwCi1AQCAtNjIsNiArNjIsMTAgQEAg U0FOREJPWF9FWFBPUlQgaW50cHRyX3QgU0lHU1lTUHRyYWNlRmFpbAotIC8vIHNjaGVkX3NldHBh cmFtKCksIHNjaGVkX3NldHNjaGVkdWxlcigpCi0gU0FOREJPWF9FWFBPUlQgaW50cHRyX3QgU0lH U1lTU2NoZWRIYW5kbGVyKGNvbnN0IGFyY2hfc2VjY29tcF9kYXRhJiBhcmdzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhdXgpOwotKy8vIElmIHRo ZSBmc3RhdGF0IHN5c2NhbGwgaXMgYWN0dWFsbHkgYSBkaXNndWlzZWQgZnN0YXQsIGNhbGxzIHRo ZSByZWd1bGFyIGZzdGF0Ci0rLy8gc3lzY2FsbCwgb3RoZXJ3aXNlLCBjcmFzaGVzIGluIHRoZSBz YW1lIHdheSBhcyBDcmFzaFNJR1NZU19IYW5kbGVyLgotK1NBTkRCT1hfRVhQT1JUIGludHB0cl90 IFNJR1NZU0ZzdGF0YXRIYW5kbGVyKGNvbnN0IHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSYgYXJn cywgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCog YXV4KTsKLSAKLSAvLyBWYXJpYW50cyBvZiB0aGUgYWJvdmUgZnVuY3Rpb25zIGZvciB1c2Ugd2l0 aCBicGZfZHNsLgotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgQ3Jhc2hTSUdT WVMoKTsKLUBAIC03Miw2ICs3Niw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4 cHIgQ3Jhc2gKLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIENyYXNoU0lHU1lT RnV0ZXgoKTsKLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIENyYXNoU0lHU1lT UHRyYWNlKCk7Ci0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXdyaXRlU2No ZWRTSUdTWVMoKTsKLStTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJld3JpdGVG c3RhdGF0U0lHU1lTKCk7Ci0gCi0gLy8gQWxsb2NhdGVzIGEgY3Jhc2gga2V5IHNvIHRoYXQgU2Vj Y29tcCBpbmZvcm1hdGlvbiBjYW4gYmUgcmVjb3JkZWQuCi0gdm9pZCBBbGxvY2F0ZUNyYXNoS2V5 cygpOwotZGlmZiAtdXAgY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2Vydmlj ZXMvc3lzY2FsbF93cmFwcGVycy5jYy5mc3RhdGZpeCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2Fu ZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi0tLS0gc2FuZGJveC9saW51 eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6MTg6 NTMuMzA3MTQxMzExIC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dy YXBwZXJzLmNjCTIwMjEtMDEtMjUgMTA6MTk6NDYuOTgyMzU1MjkzIC0wNTAwCi1AQCAtMjYxLDQg KzI2MSwxMyBAQCBpbnQgc3lzX3NpZ2FjdGlvbihpbnQgc2lnbnVtLAotIAotICNlbmRpZiAgLy8g ZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKQotIAotK1NBTkRCT1hfRVhQT1JUIGludCBzeXNfZnN0 YXQ2NChpbnQgZmQsIHN0cnVjdCBzdGF0NjQgKmJ1ZikKLSt7Ci0rI2lmIGRlZmluZWQoX19OUl9m c3RhdDY0KQotKyAgICByZXR1cm4gc3lzY2FsbChfX05SX2ZzdGF0NjQsIGZkLCBidWYpOwotKyNl bHNlCi0rICAgIHJldHVybiBzeXNjYWxsKF9fTlJfZnN0YXQsIGZkLCBidWYpOwotKyNlbmRpZgot K30KLSsKLSB9ICAvLyBuYW1lc3BhY2Ugc2FuZGJveAotZGlmZiAtdXAgY2hyb21pdW0tODguMC40 MzI0Ljk2L3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5oLmZzdGF0Zml4 IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3Jh cHBlcnMuaAotLS0tIHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5oLmZz dGF0Zml4CTIwMjEtMDEtMjUgMTA6MTk6NTMuMTE1Mzc5NzQxIC0wNTAwCi0rKysgc2FuZGJveC9s aW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmgJMjAyMS0wMS0yNSAxMDoyMDo0NS40ODU1 ODg0MjEgLTA1MDAKLUBAIC0xNyw2ICsxNyw3IEBAIHN0cnVjdCBzb2NrX2Zwcm9nOwotIHN0cnVj dCBybGltaXQ2NDsKLSBzdHJ1Y3QgY2FwX2hkcjsKLSBzdHJ1Y3QgY2FwX2RhdGE7Ci0rc3RydWN0 IHN0YXQ2NDsKLSAKLSBuYW1lc3BhY2Ugc2FuZGJveCB7Ci0gCi1AQCAtODQsNiArODUsOSBAQCBT QU5EQk9YX0VYUE9SVCBpbnQgc3lzX3NpZ2FjdGlvbihpbnQgc2lnCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiogYWN0LAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24qIG9sZGFjdCk7Ci0gCi0r Ly8gUmVjZW50IGdsaWJjIHJld3JpdGVzIGZzdGF0IHRvIGZzdGF0YXQuCi0rU0FOREJPWF9FWFBP UlQgaW50IHN5c19mc3RhdDY0KGludCBmZCwgc3RydWN0IHN0YXQ2NCAqYnVmKTsKLSsKLSB9ICAv LyBuYW1lc3BhY2Ugc2FuZGJveAotIAotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TRVJWSUNF U19TWVNDQUxMX1dSQVBQRVJTX0hfCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMvY2hyb21pdW0tODgtaWRlb2dyYXBoaWNTcGFjZUNoYXJhY3Rlci5wYXRjaCBiL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOGExMTQyM2IyZC4uMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWlkZW9ncmFwaGlj U3BhY2VDaGFyYWN0ZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Gcm9t IDc1ZmY4ODJiYjVmMmZjZDE0NDMxZTY1ZmE2MzhhZTcyYmRiNDcwODYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+ Ci1EYXRlOiBTdW4sIDE1IE5vdiAyMDIwIDE0OjMxOjIzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hd IGZpeCBpZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyIGNvbnN0YW50IGZvciBzeXN0ZW0gaWN1Ci0K LWh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMv Ky8xNjg3NDExCi1yZW5hbWVkIGlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIgdG8ga0lkZW9ncmFw aGljU3BhY2VDaGFyYWN0ZXIuCi0tLS0KLSB0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi90ZXh0L3RleHRfY29kZWNfaWN1LmNjIGIvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvdGV4dF9jb2RlY19pY3Uu Y2MKLWluZGV4IGZiOGFiMDUuLjVkNGVhMTMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvdGV4dF9jb2RlY19pY3UuY2MKLSsrKyB0aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYwot QEAgLTQzMiw3ICs0MzIsNyBAQCBTdHJpbmcgVGV4dENvZGVjSUNVOjpEZWNvZGUoY29uc3QgY2hh ciogYnl0ZXMsCi0gICAvLyBJQ1UgZGVjb2RlcyBpdCBhcyBVK0U1RTUuCi0gICBpZiAoIXN0cmNt cChlbmNvZGluZ18uR2V0TmFtZSgpLCAiR0JLIikpIHsKLSAgICAgaWYgKEVxdWFsSWdub3JpbmdB U0NJSUNhc2UoZW5jb2RpbmdfLkdldE5hbWUoKSwgImdiMTgwMzAiKSkKLS0gICAgICByZXN1bHRT dHJpbmcuUmVwbGFjZSgweEU1RTUsIGlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIpOwotKyAgICAg IHJlc3VsdFN0cmluZy5SZXBsYWNlKDB4RTVFNSwga0lkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIp OwotICAgICAvLyBNYWtlIEdCSyBjb21wbGlhbnQgdG8gdGhlIGVuY29kaW5nIHNwZWMgYW5kIGFs aWduIHdpdGggR0IxODAzMAotICAgICByZXN1bHRTdHJpbmcuUmVwbGFjZSgweDAxRjksIDB4RTdD OCk7Ci0gICAgIC8vIEZJWE1FOiBPbmNlIGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9z aG93X2J1Zy5jZ2k/aWQ9Mjg3NDAjYzMKLS0tIAotMi4yNi4yCi0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUucGF0Y2ggYi9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaXR5cC1pbmNsdWRlLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTRiNmZmZmQ1NC4uMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAtaW5jbHVkZS5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUZyb20gYmMzODNhNWRkN2ZhOGYyYjUzNWYy ODgxNWZkNjkzMmZiYzBkMmE0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBo YW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFdlZCwgMjggT2N0IDIw MjAgMTY6MDA6MzUgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gSVdZVTogaW5jbHVkZSBzdGRkZWYu aCBmb3Igc2l6ZV90Ci0KLS0tLQotIHRoaXJkX3BhcnR5L2Rhd24vc3JjL2NvbW1vbi9pdHlwX2Fy cmF5LmggfCAyICsrCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXkuaCBiL3RoaXJkX3Bh cnR5L2Rhd24vc3JjL2NvbW1vbi9pdHlwX2FycmF5LmgKLWluZGV4IDQ4ZTA4MGYuLmM3ODQxOTgg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXkuaAotKysr IHRoaXJkX3BhcnR5L2Rhd24vc3JjL2NvbW1vbi9pdHlwX2FycmF5LmgKLUBAIC0yMSw2ICsyMSw4 IEBACi0gI2luY2x1ZGUgPGFycmF5PgotICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KLSAKLSsjaW5j bHVkZSA8c3RkZGVmLmg+Ci0rCi0gbmFtZXNwYWNlIGl0eXAgewotIAotICAgICAvLyBpdHlwOjph cnJheSBpcyBhIGhlbHBlciBjbGFzcyB0aGF0IHdyYXBzIHN0ZDo6YXJyYXkgd2l0aCB0aGUgcmVz dHJpY3Rpb24gdGhhdAotLS0gCi0yLjI2LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTg4LXZhYXBpLWF0dHJpYnV0ZS5wYXRjaCBiL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC12YWFwaS1hdHRyaWJ1dGUucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MTYxYWY0NWM3Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtdmFhcGktYXR0cmlidXRlLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotRnJvbSA0ZjQ2MDQ4NzdmM2I2NjZhYzdhMzcz YWU0NDNlM2MzNzk1NDI0NTY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhh biBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogRnJpLCA2IE5vdiAyMDIw IDExOjE4OjQyICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIEdDQzogZml4IGF0dHJpYnV0ZSBvbiBm dW5jdGlvbiBkZWZpbml0aW9uCi0KLUdDQyBkb2VzIG5vdCBhY2NlcHQgYXR0cmlidXRlcyBhdCB0 aGUgZW5kIGZvciBmdW5jdGlvbiBkZWZpbml0aW9ucy4KLVNvbHV0aW9uIGlzIHRvIG1vdmUgaXQg YmVmb3JlIGZ1bmN0aW9uIG5hbWUuIE90aGVyd2lzZSBHQ0MgZmFpbHMgbGlrZQotdGhpczoKLQot Li4vLi4vYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oOjk3OjI4OiBlcnJvcjogYXR0cmlidXRlcyBh cmUgbm90IGFsbG93ZWQKLW9uIGEgZnVuY3Rpb24tZGVmaW5pdGlvbgotICAgOTcgfCAjZGVmaW5l IFdBUk5fVU5VU0VEX1JFU1VMVCBfX2F0dHJpYnV0ZV9fKCh3YXJuX3VudXNlZF9yZXN1bHQpKQot ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+Ci0JIC4u Ly4uL21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmg6MzIyOjM2OiBub3RlOiBpbgotCSBl eHBhbnNpb24gb2YgbWFjcm8gJ1dBUk5fVU5VU0VEX1JFU1VMVCcKLQkgICAzMjIgfCAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IFQqIGRhdGEpIFdBUk5fVU5VU0VEX1JFU1VMVCB7Ci0JICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4K LS0tLQotIG1lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmggfCA0ICsrLS0KLSAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv bWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaCBiL21lZGlhL2dwdS92YWFwaS92YWFwaV93 cmFwcGVyLmgKLWluZGV4IGZkMWZkODIuLmRlZWRhMWYgMTAwNjQ0Ci0tLS0gbWVkaWEvZ3B1L3Zh YXBpL3ZhYXBpX3dyYXBwZXIuaAotKysrIG1lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmgK LUBAIC0zMTgsOCArMzE4LDggQEAgY2xhc3MgTUVESUFfR1BVX0VYUE9SVCBWYWFwaVdyYXBwZXIK LSAgIC8vIENvbnZlbmllbnQgdGVtcGxhdGl6ZWQgdmVyc2lvbiBvZiBTdWJtaXRCdWZmZXIoKSB3 aGVyZSB8c2l6ZXwgaXMgZGVkdWNlZCB0bwotICAgLy8gYmUgdGhlIHNpemUgb2YgdGhlIHR5cGUg b2YgfCpkYXRhfC4KLSAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotLSAgYm9vbCBTdWJtaXRCdWZm ZXIoVkFCdWZmZXJUeXBlIHZhX2J1ZmZlcl90eXBlLAotLSAgICAgICAgICAgICAgICAgICAgY29u c3QgVCogZGF0YSkgV0FSTl9VTlVTRURfUkVTVUxUIHsKLSsgIGJvb2wgV0FSTl9VTlVTRURfUkVT VUxUIFN1Ym1pdEJ1ZmZlcihWQUJ1ZmZlclR5cGUgdmFfYnVmZmVyX3R5cGUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVCogZGF0YSkgewotICAgICByZXR1 cm4gU3VibWl0QnVmZmVyKHZhX2J1ZmZlcl90eXBlLCBzaXplb2YoVCksIGRhdGEpOwotICAgfQot ICAgLy8gQmF0Y2gtdmVyc2lvbiBvZiBTdWJtaXRCdWZmZXIoKSwgd2hlcmUgdGhlIGxvY2sgZm9y IGFjY2Vzc2luZyBsaWJ2YSBpcwotLS0gCi0yLjI2LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg5LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVj ay5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OS1Db21wb3NpdG9y RnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmQzMWFkN2ZlYzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTg5LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRj aApAQCAtMCwwICsxLDExIEBACistLS0gbmV0L3RoaXJkX3BhcnR5L3F1aWNoZS9zcmMvcXVpYy9j b3JlL3F1aWNfcGF0aF92YWxpZGF0b3IuY2Mub3JpZwkyMDIxLTAzLTAyIDE4OjQ4OjA2LjAwMDAw MDAwMCArMDEwMAorKysrIG5ldC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1aWMvY29yZS9xdWlj X3BhdGhfdmFsaWRhdG9yLmNjCTIwMjEtMDMtMDMgMTM6MTc6NTYuNjI0MjgxNDc1ICswMTAwCitA QCAtNjgsNyArNjgsNyBAQAorIHZvaWQgUXVpY1BhdGhWYWxpZGF0b3I6OlN0YXJ0UGF0aFZhbGlk YXRpb24oCisgICAgIHN0ZDo6dW5pcXVlX3B0cjxRdWljUGF0aFZhbGlkYXRpb25Db250ZXh0PiBj b250ZXh0LAorICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzdWx0RGVsZWdhdGU+IHJlc3VsdF9kZWxl Z2F0ZSkgeworLSAgRENIRUNLX05FKG51bGxwdHIsIGNvbnRleHQpOworKyAgRENIRUNLKGNvbnRl eHQpOworICAgUVVJQ19ETE9HKElORk8pIDw8ICJTdGFydCB2YWxpZGF0aW5nIHBhdGggIiA8PCAq Y29udGV4dAorICAgICAgICAgICAgICAgICAgIDw8ICIgdmlhIHdyaXRlcjogIiA8PCBjb250ZXh0 LT5Xcml0ZXJUb1VzZSgpOworICAgaWYgKHBhdGhfY29udGV4dF8gIT0gbnVsbHB0cikgewpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNoCmluZGV4IGVkYTExZWM4NjYz Li5mOGQ4ZDY2ZGExOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNf bWFsbG9jLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9saWJjX21hbGxvYy5w YXRjaApAQCAtMSwyNiArMSwxMSBAQAotLS0tIGJhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2Mu b3JpZwkyMDE3LTA5LTE1IDA4OjQxOjQzLjAwMDAwMDAwMCArMDAwMAotKysrIGJhc2UvcHJvY2Vz cy9tZW1vcnlfbGludXguY2MJMjAxNy0wOS0xNSAwODo0NDozOS44MDQ5OTU0NjkgKzAwMDAKLUBA IC0yMSw2ICsyMSwxMiBAQAotICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS90Y21hbGxvYy9jaHJvbWl1 bS9zcmMvZ3BlcmZ0b29scy90Y21hbGxvYy5oIgotICNlbmRpZgotIAotKyNpZiBkZWZpbmVkKExJ QkNfR0xJQkMpCi0rZXh0ZXJuICJDIiB7Ci0rZXh0ZXJuIHZvaWQgKl9fbGliY19tYWxsb2Moc2l6 ZV90IHNpemUpOwotK30KLSsjZW5kaWYKLSsKLSBuYW1lc3BhY2UgYmFzZSB7Ci0gCi0gc2l6ZV90 IGdfb29tX3NpemUgPSAwVTsKLS0tLSBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjLm9yaWcJ MjAyMC0wOC0zMCAxNDoxODozNS40MDExMzI1OTMgLTA0MDAKLSsrKyBiYXNlL3Byb2Nlc3MvbWVt b3J5X2xpbnV4LmNjCTIwMjAtMDgtMzAgMTQ6MTk6MDguMDMwMTk5MTg5IC0wNDAwCi1AQCAtMTQx LDcgKzE0MSw3IEBACistLS0gYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmlnCTIwMjEt MDMtMDIgMTg6NDQ6NTguMDAwMDAwMDAwICswMTAwCisrKysgYmFzZS9wcm9jZXNzL21lbW9yeV9s aW51eC5jYwkyMDIxLTAzLTAzIDEyOjA1OjU3Ljk1MjI5Njk4NCArMDEwMAorQEAgLTE1MSw3ICsx NTEsNyBAQAogICAgICAoIWRlZmluZWQoTElCQ19HTElCQykgJiYgIUJVSUxERkxBRyhVU0VfVENN QUxMT0MpKQogICAgKnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKICAjZWxpZiBkZWZpbmVkKExJQkNf R0xJQkMpICYmICFCVUlMREZMQUcoVVNFX1RDTUFMTE9DKQogLSAgKnJlc3VsdCA9IF9fbGliY19t YWxsb2Moc2l6ZSk7Ci0rICAqcmVzdWx0ID0gOjpfX2xpYmNfbWFsbG9jKHNpemUpOworKyAgKnJl c3VsdCA9IG1hbGxvYyhzaXplKTsKICAjZWxpZiBCVUlMREZMQUcoVVNFX1RDTUFMTE9DKQogICAg KnJlc3VsdCA9IHRjX21hbGxvY19za2lwX25ld19oYW5kbGVyKHNpemUpOwogICNlbmRpZgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9ydGVk LWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xsdm0t cmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAzMDE2YjA2NTIxMi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBpbGVyLXdhcm5pbmdz LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLS0tIGJ1aWxkL2NvbmZpZy9j b21waWxlci9CVUlMRC5nbi5vcmlnCTIwMjEtMDEtMjAgMDk6MDE6NDQuMzYyMTE0MzExIC0wNTAw Ci0rKysgYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCTIwMjEtMDEtMjAgMDk6MDM6NDEu ODgwMjMyMjQ4IC0wNTAwCi1AQCAtMTUzNCw5ICsxNTM0LDYgQEAKLSAKLSAgICAgICAgICAgIyBU T0RPKGh0dHBzOi8vY3JidWcuY29tLzEwMjgxMTApOiBFdmFsdWF0ZSBhbmQgcG9zc2libGUgZW5h YmxlLgotICAgICAgICAgICAiLVduby1kZXByZWNhdGVkLWNvcHkiLAotLQotLSAgICAgICAgICAj IFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vMTA1MDI4MSk6IENsZWFuIHVwLCBlbmFibGUuCi0tICAg ICAgICAgICItV25vLW5vbi1jLXR5cGVkZWYtZm9yLWxpbmthZ2UiLAotICAgICAgICAgXQotIAot ICAgICAgICAgY2ZsYWdzX2MgKz0gWwotQEAgLTE1NDgsMTMgKzE1NDUsNiBAQAotICAgICAgICAg ICAjIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vMTE0MzcwMCk6IENsZWFuIHVwIGFuZCByZS1lbmFi bGUuCi0gICAgICAgICAgIGNmbGFnc19vYmpjID0gWyAiLVduby1nbnUtZm9sZGluZy1jb25zdGFu dCIgXQotICAgICAgICAgfQotLQotLSAgICAgICAgaWYgKGVuYWJsZV93bWF4X3Rva2Vucykgewot LSAgICAgICAgICBjZmxhZ3MgKz0gWyAiLVdtYXgtdG9rZW5zIiBdCi0tICAgICAgICB9IGVsc2Ug ewotLSAgICAgICAgICAjIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vMTA0OTU2OSk6IFJlbW92ZSBh ZnRlciBDbGFuZyA4N2IyMzVkYi4KLS0gICAgICAgICAgY2ZsYWdzICs9IFsgIi1Xbm8tbWF4LXRv a2VucyIgXQotLSAgICAgICAgfQotICAgICAgIH0KLSAgICAgfQotICAgfQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wtdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90 aW1lZHdhaXQucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC12OC1tb25vdG9u aWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMzNhOGVhMzJjOWMuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVXNlIG1vbm90b25pYyBjbG9jayBmb3IgcHRocmVh ZF9jb25kX3RpbWVkd2FpdCB3aXRoIG11c2wgdG9vLgotCi1kaWZmIC0tZ2l0IGEvdjgvc3JjL2Jh c2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjIGIvdjgvc3JjL2Jhc2UvcGxhdGZvcm0v Y29uZGl0aW9uLXZhcmlhYmxlLmNjCi1pbmRleCA1ZWE3MDgzLi5jMTMwMjdlIDEwMDY0NAotLS0t IC4vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCi0rKysgLi92OC9z cmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MKLUBAIC0xNiw3ICsxNiw3IEBA IG5hbWVzcGFjZSBiYXNlIHsKLSAKLSBDb25kaXRpb25WYXJpYWJsZTo6Q29uZGl0aW9uVmFyaWFi bGUoKSB7Ci0gI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBWOF9PU19PUEVO QlNEIHx8IFwKLS0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkKLSsgICAgIFY4 X09TX0xJTlVYKQotICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXggd2l0aCBnbGli YyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCi0gICAvLyBzb3VyY2UgZm9yIHB0aHJlYWRfY29uZF90 aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KLSAgIHB0aHJlYWRfY29uZGF0 dHJfdCBhdHRyOwotQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBDb25kaXRpb25WYXJpYWJsZTo6V2Fp dEZvcihNdXRleCogbXV0ZXgsIGNvbnN0IFRpbWVEZWx0YSYgcmVsX3RpbWUpIHsKLSAgICAgICAm bmF0aXZlX2hhbmRsZV8sICZtdXRleC0+bmF0aXZlX2hhbmRsZSgpLCAmdHMpOwotICNlbHNlCi0g I2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwK LS0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkKLSsgICAgIFY4X09TX0xJTlVY KQotICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4g Y2hhbmdlIHRoZSB0aW1lCi0gICAvLyBzb3VyY2UgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQo KSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KLSAgIHJlc3VsdCA9IGNsb2NrX2dldHRpbWUo Q0xPQ0tfTU9OT1RPTklDLCAmdHMpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL25vLWV4ZWNpbmZvLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNp bmZvLnBhdGNoCmluZGV4IDM4Njk5N2U4ZWQxLi4zNTZhNzYxOWFjOSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9uby1leGVjaW5mby5wYXRjaApAQCAtMSw1ICsxLDUgQEAKLS0tLSBiYXNl L2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjLm9yaWcJMjAxOS0wNS0xNCAxNDo0OTo0NC4wMDAw MDAwMDAgLTA0MDAKLSsrKyBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCTIwMTktMDct MDIgMTA6NDM6NDMuNDkwMDQ1MDEzIC0wNDAwCistLS0gYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9w b3NpeC5jYy5vcmlnCTIwMjEtMDMtMDIgMTg6NDQ6NTguMDAwMDAwMDAwICswMTAwCisrKysgYmFz ZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYwkyMDIxLTAzLTAzIDE2OjQ2OjM3LjgyODg4Mzk3 MyArMDEwMAogQEAgLTI3LDcgKzI3LDcgQEAKICAjaWYgIWRlZmluZWQoVVNFX1NZTUJPTElaRSkK ICAjaW5jbHVkZSA8Y3h4YWJpLmg+CkBAIC05LDcgKzksNyBAQAogICNpbmNsdWRlIDxleGVjaW5m by5oPgogICNlbmRpZgogIAotQEAgLTg2LDcgKzg2LDcgQEAKK0BAIC04OCw3ICs4OCw3IEBACiAg ICAvLyBOb3RlOiBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGFzeW5jLXNpZ25hbCBzYWZl IChzdGQ6OnN0cmluZyB1c2VzCiAgICAvLyBtYWxsb2MgaW50ZXJuYWxseSkuCiAgCkBAIC0xOCw3 ICsxOCw3IEBACiAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIHNlYXJjaF9mcm9tID0gMDsKICAg IHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNpemUoKSkgewogICAgICAvLyBMb29rIGZvciB0 aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwgZnJvbSBzZWFyY2hfZnJvbS4KLUBAIC0xMjEs NyArMTIxLDcgQEAKK0BAIC0xMjMsNyArMTIzLDcgQEAKICAgICAgICBzZWFyY2hfZnJvbSA9IG1h bmdsZWRfc3RhcnQgKyAyOwogICAgICB9CiAgICB9CkBAIC0yNyw3ICsyNyw3IEBACiAgfQogICNl bmRpZiAgLy8gIWRlZmluZWQoVVNFX1NZTUJPTElaRSkKICAKLUBAIC0xMzMsNyArMTMzLDcgQEAK K0BAIC0xMzUsNyArMTM1LDcgQEAKICAgIHZpcnR1YWwgfkJhY2t0cmFjZU91dHB1dEhhbmRsZXIo KSA9IGRlZmF1bHQ7CiAgfTsKICAKQEAgLTM2LDcgKzM2LDcgQEAKICB2b2lkIE91dHB1dFBvaW50 ZXIodm9pZCogcG9pbnRlciwgQmFja3RyYWNlT3V0cHV0SGFuZGxlciogaGFuZGxlcikgewogICAg Ly8gVGhpcyBzaG91bGQgYmUgbW9yZSB0aGFuIGVub3VnaCB0byBzdG9yZSBhIDY0LWJpdCBudW1i ZXIgaW4gaGV4OgogICAgLy8gMTYgaGV4IGRpZ2l0cyArIDEgZm9yIG51bGwtdGVybWluYXRvci4K LUBAIC0yMTYsNyArMjE2LDcgQEAKK0BAIC0yMTgsNyArMjE4LDcgQEAKICAgIH0KICAjZW5kaWYg IC8vIGRlZmluZWQoVVNFX1NZTUJPTElaRSkKICB9CkBAIC00NSw3ICs0NSw3IEBACiAgCiAgdm9p ZCBQcmludFRvU3RkZXJyKGNvbnN0IGNoYXIqIG91dHB1dCkgewogICAgLy8gTk9URTogVGhpcyBj b2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCi1A QCAtODEyLDcgKzgxMiw3IEBACitAQCAtODI3LDcgKzgyNyw3IEBACiAgICAvLyBOT1RFOiBUaGlz IGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MK ICAgIC8vIHN0YWNrIGR1bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8g aXMgYWxsb3dlZCBoZXJlLgogIApAQCAtNTQsNyArNTQsNyBAQAogICAgLy8gVGhvdWdoIHRoZSBi YWNrdHJhY2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90IGxpc3QgYW55IHBvc3NpYmxlIG5lZ2F0aXZl CiAgICAvLyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtlIG5vIGNoYW5jZS4KICAgIHJldHVybiBiYXNl OjpzYXR1cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0cmFjZSh0cmFjZSwgY291bnQpKTsKLUBAIC04 MjUsMTMgKzgyNSwxMyBAQAorQEAgLTg0MCwxMyArODQwLDEzIEBACiAgLy8gTk9URTogVGhpcyBj b2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCiAg Ly8gc3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBvciBzdGRpbyBpcyBh bGxvd2VkIGhlcmUuCiAgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8t Z2V0Y29udGV4dC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1nZXRjb250ZXh0 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmE0OTg3MzRjOS4uMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWdldGNvbnRleHQucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjLm9y aWcJMjAxNS0xMi0wNiAwOTo1OTo1NS41NTQ1MzY2NDYgKzAxMDAKLSsrKyB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRs ZXIuY2MJMjAxNS0xMi0wNiAxMDowMToxNi44MTgyMzgwMzUgKzAxMDAKLUBAIC00NzcsNyArNDc3 LDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpTaW11bGF0ZVNpZ25hbERlbAotICAgc2lnaW5m by5zaV9jb2RlID0gU0lfVVNFUjsKLSAgIHNpZ2luZm8uc2lfcGlkID0gZ2V0cGlkKCk7Ci0gICB1 Y29udGV4dF90IGNvbnRleHQ7Ci0rI2lmIGRlZmluZWQoX19HTElCQ19fKQotICAgZ2V0Y29udGV4 dCgmY29udGV4dCk7Ci0rI2VuZGlmCi0gICByZXR1cm4gSGFuZGxlU2lnbmFsKHNpZywgJnNpZ2lu Zm8sICZjb250ZXh0KTsKLSB9Ci0gCi1AQCAtNjQ3LDkgKzY0OSwxNCBAQCBib29sIEV4Y2VwdGlv bkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7Ci0gICBzeXNfcHJjdGwoUFJfU0VUX0RVTVBBQkxF LCAxLCAwLCAwLCAwKTsKLSAKLSAgIENyYXNoQ29udGV4dCBjb250ZXh0OwotKwotKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykKLSAgIGludCBnZXRjb250ZXh0X3Jlc3VsdCA9IGdldGNvbnRleHQoJmNv bnRleHQuY29udGV4dCk7Ci0gICBpZiAoZ2V0Y29udGV4dF9yZXN1bHQpCi0gICAgIHJldHVybiBm YWxzZTsKLSsjZWxzZQotKyAgcmV0dXJuIGZhbHNlOwotKyNlbmRpZgotIAotICNpZiBkZWZpbmVk KF9faTM4Nl9fKQotICAgLy8gSW4gQ1BVRmlsbEZyb21VQ29udGV4dCBpbiBtaW5pZHVtcHdyaXRl ci5jYyB0aGUgc3RhY2sgcG9pbnRlciBpcyByZXRyaWV2ZWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9uby1zdGQtdGltZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9uby1zdGQtdGltZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uN2YzNWMyMmYwODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvbm8tc3RkLXRpbWUucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIHVpL2FjY2Vzc2li aWxpdHkvYXhfdHJlZV9zZXJpYWxpemVyLmgub3JpZwkyMDIxLTAzLTAyIDE4OjQ2OjAwLjAwMDAw MDAwMCArMDEwMAorKysrIHVpL2FjY2Vzc2liaWxpdHkvYXhfdHJlZV9zZXJpYWxpemVyLmgJMjAy MS0wMy0wMyAxNDowMzo0My45MjYxNjAzMzMgKzAxMDAKK0BAIC03NDYsNyArNzQ2LDcgQEAKKyAj ZW5kaWYgIC8vIGRlZmluZWQoQVhfRkFJTF9GQVNUX0JVSUxEKQorICAgICAgICAgc3RhdGljIGJv b2wgaGFzX3NlbnRfZHVwZV9pZF9lcnIgPSBmYWxzZTsKKyAgICAgICAgIGlmICghaGFzX3NlbnRf ZHVwZV9pZF9lcnIpIHsKKy0gICAgICAgICAgc3RkOjpzcmFuZChzdGQ6OnRpbWUobnVsbHB0cikp OyAgLy8gdXNlIGN1cnJlbnQgdGltZSBhcyBzZWVkLgorKyAgICAgICAgICBzdGQ6OnNyYW5kKHRp bWUobnVsbHB0cikpOyAgLy8gdXNlIGN1cnJlbnQgdGltZSBhcyBzZWVkLgorICAgICAgICAgICBp ZiAoc3RkOjpyYW5kKCkgJSA1MCA9PSAwKSB7ICAgICAvLyBSb3VnaGx5IDIlIG9mIHRoZSB0aW1l LgorICAgICAgICAgICAgIGJhc2U6OmRlYnVnOjpEdW1wV2l0aG91dENyYXNoaW5nKCk7CisgICAg ICAgICAgICAgaGFzX3NlbnRfZHVwZV9pZF9lcnIgPSB0cnVlOyAgLy8gT25seSBzZW5kIG9uY2Uu CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJveC1tZW1iYXJyaWVy LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NhbmRib3gtbWVtYmFycmllci5wYXRj aAppbmRleCBhMzFhOWY2YTVlOS4uYjMwYmJjMDJjYjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL3NhbmRib3gtbWVtYmFycmllci5wYXRjaApAQCAtMSw1NiArMSw2IEBACi0t LS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCi0r Kysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCi1A QCAtMTA2Myw0ICsxMDYzLDggQEAKLSAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDI3OQotICNl bmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCi0rI2RlZmluZSBfX05SX21l bWJhcnJpZXIgMjgzCi0rI2VuZGlmCi0rCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RF TV9IRUFERVJTX0FSTTY0X0xJTlVYX1NZU0NBTExTX0hfCi0KLS0tLSBzYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaAotQEAgLTEzODUsNiArMTM4NSwxMCBAQAot ICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgKF9fTlJfU1lTQ0FMTF9CQVNFKzM4NSkKLSAjZW5k aWYKLSAKLSsjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1i YXJyaWVyIChfX05SX1NZU0NBTExfQkFTRSszODkpCi0rI2VuZGlmCi0rCi0gLy8gQVJNIHByaXZh dGUgc3lzY2FsbHMuCi0gI2lmICFkZWZpbmVkKF9fQVJNX05SX0JBU0UpCi0gI2RlZmluZSBfX0FS TV9OUl9CQVNFIChfX05SX1NZU0NBTExfQkFTRSArIDB4RjAwMDApCi0KLS0tLSBzYW5kYm94L2xp bnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAotQEAgLTE0MjIsNSAr MTQyMiw5IEBACi0gI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAzNTYKLSAjZW5kaWYKLSAKLSsj aWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDM3 NQotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19Y ODZfMzJfTElOVVhfU1lTQ0FMTFNfSF8KLSAKLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAotQEAgLTEyOTAsNSArMTI5MCw5IEBACi0gI2Rl ZmluZSBfX05SX21lbWZkX2NyZWF0ZSAzMTkKLSAjZW5kaWYKLSAKLSsjaWYgIWRlZmluZWQoX19O Ul9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDMyNAotKyNlbmRpZgotKwot ICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19YODZfNjRfTElOVVhfU1lT Q0FMTFNfSF8KLSAKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2Fs bF9zZXRzLmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf c2V0cy5jYwotQEAgLTM3MCw2ICszNzAsNyBAQAorLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2Mub3JpZwkyMDIxLTAzLTAzIDE4OjA0OjQ1LjE2NzY3 NDc5MSArMDEwMAorKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3NldHMuY2MJMjAyMS0wMy0wMyAxODoxMzoxNy4wMzY1NDc1OTIgKzAxMDAKK0BAIC0zOTQsMTEg KzM5NCwxMiBAQAogICAgc3dpdGNoIChzeXNubykgewogICAgICBjYXNlIF9fTlJfZXhpdDoKICAg ICAgY2FzZSBfX05SX2V4aXRfZ3JvdXA6CkBAIC01OCwzICs4LDggQEAKICAgICAgY2FzZSBfX05S X3dhaXQ0OgogICAgICBjYXNlIF9fTlJfd2FpdGlkOgogICNpZiBkZWZpbmVkKF9faTM4Nl9fKQor ICAgICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgY2FzZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgor ICAgICBjYXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2aWxlZ2VkLgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggODA1NzU1YzIxMjUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzY1NiArMCwwIEBACi1jb21taXQgZTc5NDRjMTYyY2ExM2IyYzMwYjE4MGMwNmY5MTdmNDU2 NDNiOGNjYQotQXV0aG9yOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0ZTogICBUdWUg QXVnIDQgMTk6NTc6NDggMjAyMCArMDIwMAotCi0gICAgcHBjNjRsZSBzdXBwb3J0Ci0KLWRpZmYg LS1naXQgYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5IGJ1aWxkL2Rvd25sb2FkX25h Y2xfdG9vbGNoYWlucy5weQotaW5kZXggMjg2YTkyYTI3Li5lYzM2YTg1ZDMgMTAwNzU1Ci0tLS0g YnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5Ci0rKysgYnVpbGQvZG93bmxvYWRfbmFj bF90b29sY2hhaW5zLnB5Ci1AQCAtMTMsNiArMTMsMTAgQEAgaW1wb3J0IHN5cwotIAotIAotIGRl ZiBNYWluKGFyZ3MpOgotKyAgIyBJZiBgZGlzYWJsZV9uYWNsPTFgIGlzIGluIEdZUF9ERUZJTkVT LCBleGl0Ci0rICBpZiAnZGlzYWJsZV9uYWNsPTEnIGluIG9zLmVudmlyb24uZ2V0KCdHWVBfREVG SU5FUycsICcnKToKLSsgICAgcmV0dXJuIDAKLSsKLSAgIHNjcmlwdF9kaXIgPSBvcy5wYXRoLmRp cm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKLSAgIHNyY19kaXIgPSBvcy5wYXRoLmRp cm5hbWUoc2NyaXB0X2RpcikKLSAgIG5hY2xfZGlyID0gb3MucGF0aC5qb2luKHNyY19kaXIsICdu YXRpdmVfY2xpZW50JykKLWRpZmYgLS1naXQgY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5n biBjaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi1pbmRleCBiMTAxYjBjYjIuLjlmZDVh NzYxNyAxMDA2NDQKLS0tLSBjaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi0rKysgY2hy b21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgotQEAgLTkyLDggKzkyLDYgQEAgcGFja2FnaW5n X2ZpbGVzID0gcGFja2FnaW5nX2ZpbGVzX2JpbmFyaWVzICsgWwotICAgICAgICAgICAgICAgICAg ICAgIiRyb290X291dF9kaXIveGRnLW1pbWUiLAotICAgICAgICAgICAgICAgICAgICAgIiRyb290 X291dF9kaXIveGRnLXNldHRpbmdzIiwKLSAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRf ZGlyL2xvY2FsZXMvZW4tVVMucGFrIiwKLS0gICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRf ZGlyL01FSVByZWxvYWQvbWFuaWZlc3QuanNvbiIsCi0tICAgICAgICAgICAgICAgICAgICAiJHJv b3Rfb3V0X2Rpci9NRUlQcmVsb2FkL3ByZWxvYWRlZF9kYXRhLnBiIiwKLSAgICAgICAgICAgICAg ICAgICBdCi0gCi0gYWN0aW9uX2ZvcmVhY2goImNhbGN1bGF0ZV9kZWJfZGVwZW5kZW5jaWVzIikg ewotQEAgLTMyOSw3ICszMjcsNiBAQCBncm91cCgiaW5zdGFsbGVyX2RlcHMiKSB7Ci0gICAgICI6 dGhlbWVfZmlsZXMiLAotICAgICAiLy9jaHJvbWUiLAotICAgICAiLy9jaHJvbWU6cGFja2VkX3Jl c291cmNlcyIsCi0tICAgICIvL2Nocm9tZS9icm93c2VyL3Jlc291cmNlcy9tZWRpYS9tZWlfcHJl bG9hZDpjb21wb25lbnQiLAotICAgICAiLy9zYW5kYm94L2xpbnV4OmNocm9tZV9zYW5kYm94IiwK LSAgICAgIi8vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvaGFuZGxlcjpjcmFzaHBhZF9o YW5kbGVyIiwKLSAgIF0KLWRpZmYgLS1naXQgc2FuZGJveC9mZWF0dXJlcy5nbmkgc2FuZGJveC9m ZWF0dXJlcy5nbmkKLWluZGV4IDA5MjgwZDM1Zi4uNDI1MTQxNTdmIDEwMDY0NAotLS0tIHNhbmRi b3gvZmVhdHVyZXMuZ25pCi0rKysgc2FuZGJveC9mZWF0dXJlcy5nbmkKLUBAIC0xMSw2ICsxMSw3 IEBAIGltcG9ydCgiLy9idWlsZC9jb25maWcvbmFjbC9jb25maWcuZ25pIikKLSB1c2Vfc2VjY29t cF9icGYgPSAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgJiYKLSAgICAgICAgICAgICAgICAgICAo Y3VycmVudF9jcHUgPT0gIng4NiIgfHwgY3VycmVudF9jcHUgPT0gIng2NCIgfHwKLSAgICAgICAg ICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0 IiB8fAotLSAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJy ZW50X2NwdSA9PSAibWlwczY0ZWwiKQotKyAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9 PSAibWlwc2VsIiB8fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiIHx8Ci0rICAgICAgICAgICAg ICAgICAgIGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpCi0gCi0gdXNlX3NlY2NvbXBfYnBmID0gdXNl X3NlY2NvbXBfYnBmIHx8IGlzX25hY2xfbm9uc2ZpCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgv QlVJTEQuZ24gc2FuZGJveC9saW51eC9CVUlMRC5nbgotaW5kZXggYzI3MzUxZjlhLi45MTQxZTEy MzkgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9CVUlMRC5nbgotKysrIHNhbmRib3gvbGludXgv QlVJTEQuZ24KLUBAIC00MDcsNiArNDA3LDggQEAgY29tcG9uZW50KCJzYW5kYm94X3NlcnZpY2Vz IikgewotIAotIHNvdXJjZV9zZXQoInNhbmRib3hfc2VydmljZXNfaGVhZGVycyIpIHsKLSAgIHNv dXJjZXMgPSBbCi0rICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oIiwK LSsgICAgInN5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgiLAotICAgICAic3lz dGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCIsCi0gICAgICJzeXN0ZW1faGVhZGVy cy9hcm1fbGludXhfc3lzY2FsbHMuaCIsCi0gICAgICJzeXN0ZW1faGVhZGVycy9hcm1fbGludXhf dWNvbnRleHQuaCIsCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNj YWxsX3Jhbmdlcy5oIHNhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5o Ci1pbmRleCAzMTM1MTFmMjIuLjBjYTNhMzI2ZiAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L2Jw Zl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAotKysrIHNhbmRib3gvbGludXgvYnBmX2RzbC9s aW51eF9zeXNjYWxsX3Jhbmdlcy5oCi1AQCAtNTYsNiArNTYsMTMgQEAKLSAjZGVmaW5lIE1BWF9Q VUJMSUNfU1lTQ0FMTCBfX05SX3N5c2NhbGxzCi0gI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVC TElDX1NZU0NBTEwKLSAKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rI2luY2x1 ZGUgPGFzbS91bmlzdGQuaD4KLSsjZGVmaW5lIE1JTl9TWVNDQUxMIDB1Ci0rI2RlZmluZSBNQVhf UFVCTElDX1NZU0NBTEwgMzg2dQotKyNkZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVND QUxMCi0rCi0gI2Vsc2UKLSAjZXJyb3IgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSIKLSAjZW5k aWYKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggc2Fu ZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLWluZGV4IDFhNDA3Yjk1Mi4uYTZh ZWM1NDRlIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5o Ci0rKysgc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLUBAIC0xNiw2ICsx Niw5IEBACi0gI2lmIGRlZmluZWQoX19taXBzX18pCi0gLy8gc3lzL3VzZXIuaCBpbiBlZ2xpYmMg bWlzc2VzIHNpemVfdCBkZWZpbml0aW9uCi0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsvLyBNYW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBwYzY0 Ci0rdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgZ3JlZ190OwotICNlbmRpZgotICNlbmRpZgot IAotQEAgLTM0Niw2ICszNDksNTEgQEAgc3RydWN0IHJlZ3Nfc3RydWN0IHsKLSAjZGVmaW5lIFNF Q0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVncykucmVnc1szXQotICNkZWZpbmUgU0VDQ09NUF9Q VF9QQVJNNShfcmVncykgKF9yZWdzKS5yZWdzWzRdCi0gI2RlZmluZSBTRUNDT01QX1BUX1BBUk02 KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbNV0KLSsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSsKLSt0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJl Z3Nfc3RydWN0OwotKwotKyNpZmRlZiBBUkNIX0NQVV9MSVRUTEVfRU5ESUFOCi0rI2RlZmluZSBT RUNDT01QX0FSQ0ggQVVESVRfQVJDSF9QUEM2NExFCi0rI2Vsc2UKLSsjZGVmaW5lIFNFQ0NPTVBf QVJDSCBBVURJVF9BUkNIX1BQQzY0Ci0rI2VuZGlmCi0rCi0rI2RlZmluZSBTRUNDT01QX1JFRyhf Y3R4LCBfcmVnKSAoKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5ncHJbX3JlZ10pCi0rCi0rI2Rl ZmluZSBTRUNDT01QX1JFU1VMVChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotKyNkZWZpbmUg U0VDQ09NUF9TWVNDQUxMKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDApCi0rI2RlZmluZSBTRUND T01QX0lQKF9jdHgpIChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+bmlwCi0rI2RlZmluZSBTRUND T01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0rI2RlZmluZSBTRUNDT01QX1BB Uk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQpCi0rI2RlZmluZSBTRUNDT01QX1BBUk0zKF9j dHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCi0rI2RlZmluZSBTRUNDT01QX1BBUk00KF9jdHgpIFNF Q0NPTVBfUkVHKF9jdHgsIDYpCi0rI2RlZmluZSBTRUNDT01QX1BBUk01KF9jdHgpIFNFQ0NPTVBf UkVHKF9jdHgsIDcpCi0rI2RlZmluZSBTRUNDT01QX1BBUk02KF9jdHgpIFNFQ0NPTVBfUkVHKF9j dHgsIDgpCi0rCi0rI2RlZmluZSBTRUNDT01QX05SX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hf c2VjY29tcF9kYXRhLCBucikpCi0rI2RlZmluZSBTRUNDT01QX0FSQ0hfSURYIChvZmZzZXRvZihz dHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyY2gpKQotKyNkZWZpbmUgU0VDQ09NUF9JUF9NU0Jf SURYIFwKLSsgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9u X3BvaW50ZXIpICsgNCkKLSsjZGVmaW5lIFNFQ0NPTVBfSVBfTFNCX0lEWCBcCi0rICAob2Zmc2V0 b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDApCi0r I2RlZmluZSBTRUNDT01QX0FSR19NU0JfSURYKG5yKSBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFy Y2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgNCkKLSsjZGVmaW5lIFNFQ0NPTVBf QVJHX0xTQl9JRFgobnIpIFwKLSsgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEs IGFyZ3MpICsgOCAqIChucikgKyAwKQotKwotKyNkZWZpbmUgU0VDQ09NUF9QVF9SRVNVTFQoX3Jl Z3MpIChfcmVncykuZ3ByWzNdCi0rI2RlZmluZSBTRUNDT01QX1BUX1NZU0NBTEwoX3JlZ3MpIChf cmVncykuZ3ByWzBdCi0rI2RlZmluZSBTRUNDT01QX1BUX0lQKF9yZWdzKSAoX3JlZ3MpLm5pcAot KyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMShfcmVncykgKF9yZWdzKS5ncHJbM10KLSsjZGVmaW5l IFNFQ0NPTVBfUFRfUEFSTTIoX3JlZ3MpIChfcmVncykuZ3ByWzRdCi0rI2RlZmluZSBTRUNDT01Q X1BUX1BBUk0zKF9yZWdzKSAoX3JlZ3MpLmdwcls1XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJN NChfcmVncykgKF9yZWdzKS5ncHJbNl0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3Mp IChfcmVncykuZ3ByWzddCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3Mp Lmdwcls4XQotKwotICNlbHNlCi0gI2Vycm9yIFVuc3VwcG9ydGVkIHRhcmdldCBwbGF0Zm9ybQot IAotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVf cG9saWN5LmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xp Y3kuY2MKLWluZGV4IGE2ZDJjMGRmYi4uMzdmZGMxNzlhIDEwMDY0NAotLS0tIHNhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MKLSsrKyBzYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi1AQCAtODgsNyArODgs OCBAQCBib29sIElzQmFzZWxpbmVQb2xpY3lXYXRjaGVkKGludCBzeXNubykgewotICAgICAgICAg IFN5c2NhbGxTZXRzOjpJc1ByY3RsKHN5c25vKSB8fAotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJ c1Byb2Nlc3NHcm91cE9yU2Vzc2lvbihzeXNubykgfHwKLSAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pIHx8Ci0gI2VuZGlm Ci0gI2lmIGRlZmluZWQoX19hcm1fXykKLUBAIC0yMTAsNyArMjExLDcgQEAgUmVzdWx0RXhwciBF dmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoc3lzbm8gPT0gX19OUl9tbWFw KQotICAgICByZXR1cm4gUmVzdHJpY3RNbWFwRmxhZ3MoKTsKLSAjZW5kaWYKLUBAIC0yMjgsNyAr MjI5LDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJy bm8sCi0gICAgIHJldHVybiBSZXN0cmljdFByY3RsKCk7Ci0gCi0gI2lmIGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAg IGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgIGlmIChzeXNubyA9PSBfX05SX3NvY2tldHBhaXIpIHsKLSAg ICAgLy8gT25seSBhbGxvdyBBRl9VTklYLCBQRl9VTklYLiBDcmFzaCBpZiBhbnl0aGluZyBlbHNl IGlzIHNlZW4uCi0gICAgIHN0YXRpY19hc3NlcnQoQUZfVU5JWCA9PSBQRl9VTklYLAotQEAgLTI2 OCw3ICsyNjksOCBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2Rlbmll ZF9lcnJubywKLSAgIH0KLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK LSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgaWYgKFN5c2Nh bGxTZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pKQotICAgICByZXR1cm4gUmVzdHJpY3RTb2NrZXRj YWxsQ29tbWFuZCgpOwotICNlbmRpZgotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjIHNhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MKLWluZGV4IGZjMzYx ODdjOS4uMWFmZmM5MTg5IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCi1AQCAtMjkxLDggKzI5 MSwxMCBAQCBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3RpbWVyX2NyZWF0ZSkKLSAjaWYgIWRl ZmluZWQoX19hYXJjaDY0X18pCi0gVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9ldmVudGZkKQot IFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfaW5vdGlmeV9pbml0KQotKyNpZiAhZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfdnNlcnZlcikKLSAjZW5k aWYKLSsjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhZGVmaW5lZChPU19D SFJPTUVPUykKLSBCUEZfVEVTVF9DKEJhc2VsaW5lUG9saWN5LCBGdXRleEVJTlZBTCwgQmFzZWxp bmVQb2xpY3kpIHsKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2Mgc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKLWluZGV4IGY1 MTkxNWVkYy4uY2EyZjRmMTA2IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCi0rKysgc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMu Y2MKLUBAIC00MCw3ICs0MCw4IEBACi0gI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSAjaWYgKGRl ZmluZWQoT1NfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPU19MQUNST1MpKSAmJiBcCi0g ICAgICFkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAgICAgICAg ICAgXAotLSAgICAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKQotKyAgICAhZGVmaW5l ZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKSAmJgkJCSAgICBcCi0rICAgICFkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gLy8gQWxzbyBpbmNsdWRlIGFzbS9wdHJhY2UtYWJpLmggc2luY2UgcHRyYWNl LmggaW4gb2xkZXIgbGliYyAoZm9yIGluc3RhbmNlCi0gLy8gdGhlIG9uZSBpbiBVYnVudHUgMTYu MDQgTFRTKSBpcyBtaXNzaW5nIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEuCi0gLy8gYXNtL3B0cmFj ZS1hYmkuaCBkb2Vzbid0IGV4aXN0IG9uIGFybTMyIGFuZCBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVB IGlzbid0Ci1AQCAtNDksNiArNTAsMTEgQEAKLSAjZW5kaWYKLSAjZW5kaWYgIC8vICFPU19OQUNM X05PTlNGSQotIAotKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBz dHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1pb3MuaAotKyNpZmRlZiBfX3Bv d2VycGM2NF9fCi0rI2luY2x1ZGUgPHRlcm1pb3MuaD4KLSsjZW5kaWYKLSsKLSAjaWYgZGVmaW5l ZChPU19BTkRST0lEKQotIAotICNpZiAhZGVmaW5lZChGX0RVUEZEX0NMT0VYRUMpCi1AQCAtOTgs NiArMTA0LDE1IEBACi0gI2VuZGlmCi0gfQotIAotK2lubGluZSBib29sIElzQXJjaGl0ZWN0dXJl UFBDNjQoKSB7Ci0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIHJldHVybiB0cnVlOwot KyNlbHNlCi0rICByZXR1cm4gZmFsc2U7Ci0rI2VuZGlmCi0rfQotKwotKwotIC8vIFVidW50dSdz IHZlcnNpb24gb2YgZ2xpYmMgaGFzIGEgcmFjZSBjb25kaXRpb24gaW4gc2VtX3Bvc3QgdGhhdCBj YW4gY2F1c2UKLSAvLyBpdCB0byBjYWxsIGZ1dGV4KDIpIHdpdGggYm9ndXMgb3AgYXJndW1lbnRz LiBUbyB3b3JrYXJvdW5kIHRoaXMsIHdlIG5lZWQKLSAvLyB0byBhbGxvdyB0aG9zZSBmdXRleCgy KSBjYWxscyB0byBmYWlsIHdpdGggRUlOVkFMLCBpbnN0ZWFkIG9mIGNyYXNoaW5nIHRoZQotQEAg LTIzOSw2ICsyNTQsOCBAQAotICAgdWludDY0X3Qga09MYXJnZUZpbGVGbGFnID0gT19MQVJHRUZJ TEU7Ci0gICBpZiAoSXNBcmNoaXRlY3R1cmVYODZfNjQoKSB8fCBJc0FyY2hpdGVjdHVyZUkzODYo KSB8fCBJc0FyY2hpdGVjdHVyZU1pcHMoKSkKLSAgICAga09MYXJnZUZpbGVGbGFnID0gMDEwMDAw MDsKLSsgIGVsc2UgaWYgKElzQXJjaGl0ZWN0dXJlUFBDNjQoKSkKLSsgICAga09MYXJnZUZpbGVG bGFnID0gMDIwMDAwMDsKLSAKLSAgIGNvbnN0IEFyZzxpbnQ+IGNtZCgxKTsKLSAgIGNvbnN0IEFy Zzxsb25nPiBsb25nX2FyZygyKTsKLUBAIC0yNTMsMTQgKzI3MCwyMyBAQAotICAgICAgICAgICAg ICAgRl9TRVRMS1csCi0gICAgICAgICAgICAgICBGX0dFVExLLAotICAgICAgICAgICAgICAgRl9E VVBGRCwKLS0gICAgICAgICAgICAgIEZfRFVQRkRfQ0xPRVhFQyksCi0tICAgICAgICAgICAgIEFs bG93KCkpCi0rICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKy8vIE9uIFBQQzY0LCBGX1NFVExLLCBGX0dFVExLLCBGX1NFVExLVyBhcmUg ZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZhcmlhbnRzCi0rLy8gYnV0IGdsaWJjIHdpbGwgc29tZXRp bWVzIHN0aWxsIHVzZSB0aGUgMzItYml0IHZlcnNpb25zLiBBbGxvdyBib3RoLgotKyAgICAgICAg ICAgICAgLAotKyAgICAgICAgICAgICAgNSwgLyogRl9HRVRMSyAoMzIpICovCi0rICAgICAgICAg ICAgICA2LCAvKiBGX1NFVExLICgzMikgKi8KLSsgICAgICAgICAgICAgIDcgIC8qIEZfU0VUTEtX ICgzMikgKi8KLSsjZW5kaWYKLSsgICAgICAgICAgICAgICksCi0rICAgICAgICAgICAgQWxsb3co KSkKLSAgICAgICAuQ2FzZShGX1NFVEZMLAotICAgICAgICAgICAgIElmKChsb25nX2FyZyAmIH5r QWxsb3dlZE1hc2spID09IDAsIEFsbG93KCkpLkVsc2UoQ3Jhc2hTSUdTWVMoKSkpCi0gICAgICAg LkRlZmF1bHQoQ3Jhc2hTSUdTWVMoKSk7Ci0gfQotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f bWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gUmVzdWx0RXhwciBSZXN0cmljdFNv Y2tldGNhbGxDb21tYW5kKCkgewotICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgYXJlIHVuYWJsZSB0 byByZXN0cmljdCB0aGUgZmlyc3QgcGFyYW1ldGVyIHRvCi0gICAvLyBzb2NrZXRwYWlyKDIpLiBX aGlsc3QgaW5pdGlhbGx5IHNvdW5kaW5nIGJhZCwgaXQncyBub3Rld29ydGh5IHRoYXQgdmVyeQot QEAgLTQxMyw3ICs0MzksNyBAQAotICNlbmRpZgotICAgcmV0dXJuIFN3aXRjaChyZXF1ZXN0KQot ICAgICAgIC5DQVNFUygoCi0tI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiAhZGVmaW5l ZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgICAgICAgICAg ICAgIFBUUkFDRV9HRVRSRUdTLCBQVFJBQ0VfR0VURlBSRUdTLCBQVFJBQ0VfR0VUX1RIUkVBRF9B UkVBLAotICAgICAgICAgICAgICAgICAgUFRSQUNFX0dFVFJFR1NFVCwKLSAjZW5kaWYKLQotZGlm ZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0 ZXJzX3Jlc3RyaWN0aW9ucy5oIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNj YWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLWluZGV4IGJhNDI4OWYwNS4uOWE0ZDVhYjJk IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Bh cmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCi1AQCAtNDgsNyArNDgsNyBA QCBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0TXByb3RlY3RGbGFn cygpOwotIC8vIE9fTk9OQkxPQ0sgfCBPX1NZTkMgfCBPX0xBUkdFRklMRSB8IE9fQ0xPRVhFQyB8 IE9fTk9BVElNRS4KLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0 RmNudGxDb21tYW5kcygpOwotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f bWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gUmVzdHJpY3Qgc29ja2V0Y2FsbCgyKSB0byBvbmx5 IGFsbG93IHNvY2tldHBhaXIoMiksIHNlbmQoMiksIHJlY3YoMiksCi0gLy8gc2VuZHRvKDIpLCBy ZWN2ZnJvbSgyKSwgc2h1dGRvd24oMiksIHNlbmRtc2coMikgYW5kIHJlY3Ztc2coMikuCi0gU0FO REJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5k KCk7Ci1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3NldHMuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YwotaW5kZXggZDM2OTNmZDc4Li5kNDkyY2Y5NGIgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotKysrIHNhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLUBAIC0yOSw3ICsyOSw4IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5 c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXR0aW1lb2ZkYXk6Ci0gI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdGltZToKLSAjZW5k aWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC00MSwxMiArNDIsMTQgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2Nsb2Nr X25hbm9zbGVlcDogIC8vIFBhcmFtZXRlcnMgZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCku Ci0gICAgIGNhc2UgX19OUl9jbG9ja19zZXR0aW1lOiAgICAvLyBQcml2aWxlZ2VkLgotICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgot ICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KLSAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc3RpbWU6Ci0gI2VuZGlmCi0g ICAgIGRlZmF1bHQ6Ci1AQCAtMTEyLDcgKzExNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmls ZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJN IG5vdCBhIHZhbGlkIGVycm5vLgotICAgICBjYXNlIF9fTlJfZmNobW9kYXQ6Ci0gICAgIGNhc2Ug X19OUl9mY2hvd25hdDogIC8vIFNob3VsZCBiZSBjYWxsZWQgY2hvd25hdCA/Ci0tI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2 YWxpZCBlcnJuby4KLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpCi1AQCAtMTMxLDcgKzEzNCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz RmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKLSAg ICAgY2FzZSBfX05SX21rZGlyYXQ6Ci0gICAgIGNhc2UgX19OUl9ta25vZGF0OgotLSNpZiBkZWZp bmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9vbGRsc3RhdDoKLSAgICAgY2FzZSBfX05SX29sZHN0YXQ6 Ci0gI2VuZGlmCi1AQCAtMTQ1LDcgKzE0OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5 c3RlbShpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N0YXRmczogIC8vIEVQ RVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3N0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNl IF9fTlJfc3ltbGlua2F0OgotQEAgLTE1NSw3ICsxNTksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0OgotICNl bmRpZgotICAgICBjYXNlIF9fTlJfdW5saW5rYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3V0aW1lOgotICNl bmRpZgotICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAgLy8gTmV3LgotQEAgLTE3NCw3ICsxNzks OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50 IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci0gLy8gVE9ETyhqbG4pOiB0 aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgot LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAj ZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykKLUBAIC0xODcsMTEgKzE5MywxMiBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9mbG9jazogICAgICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4K LSAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6ICAgIC8vIEdpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhl IHdob2xlIGZpbGVzeXN0ZW0uCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfZnN0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9f TlJfZnN5bmM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLS0jaWYgZGVmaW5lZChfX2kz ODZfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotQEAgLTE5 OSw2ICsyMDYsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNz VmlhRmQoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBF UEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCi0gICAgIGNh c2UgX19OUl9hcm1fc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8u Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBjYXNlIF9fTlJfc3luY19maWxl X3JhbmdlMjogLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gICAgIGRlZmF1 bHQ6Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTIyNCw3ICsyMzMsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5k aWYKLSAgICAgY2FzZSBfX05SX2dldGRlbnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJu by4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVhZGRpcjoKLSAj ZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC0yNjUsNyArMjc1LDcgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNHZXRTaW1wbGVJZChpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJ c1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2UoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9jYXBzZXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9pb3Blcm06ICAv LyBJbnRlbCBwcml2aWxlZ2UuCi0gICAgIGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRlbCBwcml2 aWxlZ2UuCi0gI2VuZGlmCi1AQCAtMzE2LDcgKzMyNiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZFNpZ25hbEhhbmRsaW5nKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcnRfc2ln cmV0dXJuOgotICAgICBjYXNlIF9fTlJfcnRfc2lndGltZWR3YWl0OgotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBc Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NpZ2FjdGlvbjoK LSAgICAgY2FzZSBfX05SX3NpZ3Byb2NtYXNrOgotICAgICBjYXNlIF9fTlJfc2lncmV0dXJuOgot QEAgLTMzMiw3ICszNDMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5k bGluZyhpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NpZ25hbGZkNDoKLSAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9zaWdwZW5kaW5nOgotICAgICBjYXNlIF9fTlJfc2lnc3VzcGVuZDoKLSAjZW5kaWYKLUBAIC0z NTYsNyArMzY4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25GZChp bnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2R1cDM6Ci0gI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NodXRkb3duOgotICNlbmRp ZgotICAgICAgIHJldHVybiB0cnVlOwotQEAgLTM5MCw3ICs0MDIsNyBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewotICAgICBjYXNl IF9fTlJfbWVtYmFycmllcjoKLSAgICAgY2FzZSBfX05SX3dhaXQ0OgotICAgICBjYXNlIF9fTlJf d2FpdGlkOgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl93YWl0cGlkOgotICNlbmRp ZgotICAgICAgIHJldHVybiB0cnVlOwotQEAgLTQwNyw3ICs0MTksNyBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewotICNlbmRpZgot ICAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgotICAgICBjYXNlIF9fTlJfdW5zaGFyZToK LS0jaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiAh ZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3Zmb3JrOgotICNlbmRpZgotICAgICBkZWZhdWx0 OgotQEAgLTQ1Niw3ICs0NjgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1v ZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKLSAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgZGVmYXVs dDoKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmlu ZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf c29ja2V0cGFpcjogIC8vIFdlIHdpbGwgd2FudCB0byBpbnNwZWN0IGl0cyBhcmd1bWVudC4KLSAj ZW5kaWYKLSAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtNDY2LDcgKzQ3OCw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotIGJvb2wg U3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gICBz d2l0Y2ggKHN5c25vKSB7Ci0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18p Ci0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX2FjY2VwdDoKLSAgICAgY2FzZSBfX05SX2FjY2VwdDQ6Ci0gICAgIGNhc2Ug X19OUl9iaW5kOgotQEAgLTQ4MSw3ICs0OTMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Rlbmll ZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotIH0KLSAKLSAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotIC8vIEJpZyBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMuCi0g Ym9vbCBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKGludCBzeXNubykgewotICAgc3dpdGNoIChz eXNubykgewotQEAgLTQ5NSw3ICs1MDgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENh bGwoaW50IHN5c25vKSB7Ci0gfQotICNlbmRpZgotIAotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIGJvb2wgU3lzY2FsbFNldHM6OklzTmV0d29y a1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAg ICBjYXNlIF9fTlJfZ2V0cGVlcm5hbWU6Ci1AQCAtNTIwLDcgKzUzNCw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUFjY2VzcyhpbnQgc3lzbm8pIHsKLSAgICAgY2Fz ZSBfX05SX21pbmNvcmU6Ci0gICAgIGNhc2UgX19OUl9tbG9ja2FsbDoKLSAjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX21tYXA6Ci0gI2VuZGlmCi0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotQEAgLTU1MCw3 ICs1NjQsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25v KSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9sc2VlazoKLSAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9fbGxz ZWVrOgotICNlbmRpZgotICNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLUBAIC01NjIsMjYgKzU3 NywyOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9yZWFkdjoKLSAgICAgY2FzZSBfX05SX3ByZWFkNjQ6Ci0gI2lmIGRl ZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVjdjoKLSAjZW5kaWYKLSAjaWYgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18p IHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVjdmZyb206ICAv LyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KLSAgICAgY2FzZSBfX05SX3JlY3Ztc2c6ICAgLy8gQ291 bGQgc3BlY2lmeSBzb3VyY2UuCi0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zZWxlY3Q6 Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl9fbmV3c2VsZWN0OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYXJtX18pIHx8 IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX3NlbmQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NlbmRtc2c6ICAvLyBDb3VsZCBzcGVjaWZ5IGRl c3RpbmF0aW9uLgotICAgICBjYXNlIF9fTlJfc2VuZHRvOiAgIC8vIENvdWxkIHNwZWNpZnkgZGVz dGluYXRpb24uCi0gI2VuZGlmCi1AQCAtNjM4LDcgKzY1NSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGludCBzeXNubykgewotICAgICAgIHJldHVybiB0cnVl OwotICAgICBjYXNlIF9fTlJfZ2V0cHJpb3JpdHk6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbmljZToKLSAjZW5kaWYKLSAgICAg Y2FzZSBfX05SX3NldHByaW9yaXR5OgotQEAgLTY1MCw3ICs2NjgsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlcihpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxT ZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX2JkZmx1c2g6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9rZXhlY19sb2FkOgotQEAgLTY2 Niw3ICs2ODUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBzeXNu bykgewotIAotIGJvb2wgU3lzY2FsbFNldHM6OklzS2VybmVsTW9kdWxlKGludCBzeXNubykgewot ICAgc3dpdGNoIChzeXNubykgewotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9jcmVhdGVfbW9kdWxlOgotICAgICBj YXNlIF9fTlJfZ2V0X2tlcm5lbF9zeW1zOiAgLy8gU2hvdWxkIEVOT1NZUy4KLSAgICAgY2FzZSBf X05SX3F1ZXJ5X21vZHVsZToKLUBAIC02OTksNyArNzE5LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNGc0NvbnRyb2woaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9zd2Fwb2ZmOgotICAgICBj YXNlIF9fTlJfc3dhcG9uOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul91bW91bnQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91bW91bnQyOgotQEAgLTcxNSw3ICs3 MzYsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc051bWEoaW50IHN5c25vKSB7Ci0gICAgIGNhc2Ug X19OUl9nZXRjcHU6Ci0gICAgIGNhc2UgX19OUl9tYmluZDoKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAg IGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX21pZ3JhdGVfcGFnZXM6Ci0gI2VuZGlm Ci0gICAgIGNhc2UgX19OUl9tb3ZlX3BhZ2VzOgotQEAgLTc0NCwxNCArNzY1LDE1IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzR2xvYmFsUHJvY2Vzc0Vudmlyb25tZW50KGludCBzeXNubykgewotICAg c3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfYWNjdDogIC8vIFByaXZpbGVnZWQuCi0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9nZXRy bGltaXQ6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1f XykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl91Z2V0cmxpbWl0OgotICNlbmRpZgotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl91bGltaXQ6Ci0gI2VuZGlmCi0g ICAgIGNhc2UgX19OUl9nZXRydXNhZ2U6Ci1AQCAtNzg1LDcgKzgwNyw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzR2xvYmFsU3lzdGVtU3RhdHVzKGludCBzeXNubykgewotICNlbmRpZgotICAgICBj YXNlIF9fTlJfc3lzaW5mbzoKLSAgICAgY2FzZSBfX05SX3VuYW1lOgotLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgIGNhc2UgX19OUl9vbGR1bmFtZToKLSAgICAgY2FzZSBfX05SX29sZG9sZHVuYW1lOgot ICNlbmRpZgotQEAgLTg0Nyw4ICs4NjksMTYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1W U2VtYXBob3JlcyhpbnQgc3lzbm8pIHsKLSB9Ci0gI2VuZGlmCi0gCi0rLyogc2hpdHR5IGhhY2sg YXJvdW5kIFZvaWQncyA0LjE5IGtlcm5lbCBoZWFkZXJzIG1pc3NpbmcgdGhvc2UgbnVtYmVycyAq LwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICFkZWZpbmVkKF9fTlJfc2htZ2V0KQot KyNkZWZpbmUgX19OUl9zaG1nZXQgMzk1Ci0rI2RlZmluZSBfX05SX3NobWN0bCAzOTYKLSsjZGVm aW5lIF9fTlJfc2htYXQgMzk3Ci0rI2RlZmluZSBfX05SX3NobWR0IDM5OAotKyNlbmRpZgotKwot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCi0gLy8gVGhlc2UgZ2l2ZSBh IGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBhbmQgYnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJveC4K LSBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKSB7Ci1A QCAtODgwLDcgKzkxMCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVk1lc3NhZ2VRdWV1 ZShpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAot LSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8v IEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCi0gYm9vbCBTeXNjYWxsU2V0 czo6SXNTeXN0ZW1WSXBjKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotQEAgLTkw MCw3ICs5MzEsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FueVN5c3RlbVYoaW50IHN5c25vKSB7 Ci0gICByZXR1cm4gSXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKHN5c25vKSB8fCBJc1N5c3RlbVZTZW1h cGhvcmVzKHN5c25vKSB8fAotICAgICAgICAgIElzU3lzdGVtVlNoYXJlZE1lbW9yeShzeXNubyk7 Ci0gI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgcmV0dXJuIElzU3lzdGVtVklwYyhzeXNu byk7Ci0gI2VuZGlmCi0gfQotQEAgLTk1Myw3ICs5ODUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0ZhTm90aWZ5KGludCBzeXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6OklzVGltZXIoaW50IHN5 c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRpdGltZXI6Ci0t I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX2FsYXJtOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0aXRpbWVyOgot QEAgLTEwMTIsMTggKzEwNDUsMjIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNu bykgewotICAgICBjYXNlIF9fTlJfc3luY2ZzOgotICAgICBjYXNlIF9fTlJfdmhhbmd1cDoKLSAv LyBUaGUgc3lzdGVtIGNhbGxzIGJlbG93IGFyZSBub3QgaW1wbGVtZW50ZWQuCi0tI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykK LSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX2Fmc19zeXNjYWxsOgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0t ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl9icmVhazoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfZ2V0cG1zZzoKLSAjZW5k aWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfZ3R0eToKLSAgICAg Y2FzZSBfX05SX2lkbGU6Ci0gICAgIGNhc2UgX19OUl9sb2NrOgotQEAgLTEwMzEsMjAgKzEwNjgs MjIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykgewotICAgICBjYXNlIF9f TlJfcHJvZjoKLSAgICAgY2FzZSBfX05SX3Byb2ZpbDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf cHV0cG1zZzoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQotICAgICBjYXNlIF9f TlJfc2VjdXJpdHk6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3N0dHk6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul90dXhjYWxsOgotICNlbmRpZgotLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgIWRl ZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2Ug X19OUl92c2VydmVyOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVlOwotZGlmZiAtLWdpdCBz YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmggc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi1pbmRleCA5MjM1MzNlYzku LjQxMWY3MmFjZCAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMv c3lzY2FsbF9zZXRzLmgKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmgKLUBAIC00MywxMyArNDMsMTQgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lz Y2FsbFNldHMgewotICAgc3RhdGljIGJvb2wgSXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQg c3lzbm8pOwotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAvLyBCaWcgbXVsdGlwbGV4 aW5nIHN5c3RlbSBjYWxsIGZvciBzb2NrZXRzLgotICAgc3RhdGljIGJvb2wgSXNTb2NrZXRDYWxs KGludCBzeXNubyk7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19h YXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgIHN0YXRpYyBib29sIElzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNu byk7Ci0gI2VuZGlmCi0gCi1AQCAtNzYsNyArNzcsNyBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBT eXNjYWxsU2V0cyB7Ci0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBzeXNu byk7Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAotICAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKLSAg IC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5cGFzcyB0aGUg c2V0dWlkIHNhbmRib3guCi0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZTaGFyZWRNZW1vcnkoaW50 IHN5c25vKTsKLUBAIC04OCw3ICs4OSw4IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxT ZXRzIHsKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK LSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8gQmlnIHN5 c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KLSAgIHN0YXRpYyBib29sIElzU3lzdGVt VklwYyhpbnQgc3lzbm8pOwotICNlbmRpZgotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmL3N5c2NhbGwuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1p bmRleCBlNDdlOThiZjUuLmQ1M2E3ZmY1NiAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmL3N5c2NhbGwuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwu Y2MKLUBAIC0xOCw3ICsxOCw3IEBAIG5hbWVzcGFjZSBzYW5kYm94IHsKLSBuYW1lc3BhY2Ugewot IAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVf QVJNX0ZBTUlMWSkgfHwgXAotLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotKyAg ICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkIChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCi0gLy8gTnVtYmVyIHRoYXQncyBub3QgY3VycmVudGx5IHVzZWQgYnkgYW55IExp bnV4IGtlcm5lbCBBQklzLgotIGNvbnN0IGludCBrSW52YWxpZFN5c2NhbGxOdW1iZXIgPSAweDM1 MWQzOwotICNlbHNlCi1AQCAtMzEwLDEyICszMTAsNTYgQEAgYXNtKC8vIFdlIG5lZWQgdG8gYmUg YWJsZSB0byB0ZWxsIHRoZSBrZXJuZWwgZXhhY3RseSB3aGVyZSB3ZSBtYWRlIGEKLSAgICAgLy8g RW50ZXIgdGhlIGtlcm5lbAotICAgICAic3ZjIDBcbiIKLSAgICAgIjI6cmV0XG4iCi0rICAgICIu Y2ZpX2VuZHByb2NcbiIKLSsgICAgIi5zaXplIFN5c2NhbGxBc20sIC4tU3lzY2FsbEFzbVxuIgot KyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgIi50ZXh0XG4iCi0rICAgICIuYWxp Z24gNFxuIgotKyAgICAiLnR5cGUgU3lzY2FsbEFzbSBAZnVuY3Rpb25cbiIKLSsgICAgIlN5c2Nh bGxBc206XG4iCi0rICAgICIuY2ZpX3N0YXJ0cHJvY1xuIgotKwotKyAgICAvLyBDaGVjayBpZiBy MyBpcyBuZWdhdGl2ZQotKyAgICAiY21wZGkgMywgMFxuIgotKyAgICAiYmd0IDJmXG4iCi0rCi0r ICAgIC8vIExvYWQgYWRkcmVzcyBvZiAzZiBpbnRvIHIzIGFuZCByZXR1cm4KLSsgICAgIm1mbHIg MTBcbiIKLSsgICAgImJsIDFmXG4iCi0rICAgICIxOiBtZmxyIDNcbiIKLSsgICAgIm10bHIgMTBc biIKLSsgICAgImFkZGkgMywgMywgNCoxM1xuIgotKyAgICAiYmxyXG4iCi0rCi0rICAgIC8vIExv YWQgYXJndW1lbnRzIGZyb20gYXJyYXkgaW50byByMy04Ci0rICAgIC8vIHNhdmUgcGFyYW0gMyBp biByMTAKLSsgICAgIjI6XG4iCi0rICAgICJtciAwLCAzXG4iCi0rICAgICJsZCAzLCAwKDQpXG4i Ci0rICAgICJsZCA1LCAxNig0KVxuIgotKyAgICAibGQgNiwgMjQoNClcbiIKLSsgICAgImxkIDcs IDMyKDQpXG4iCi0rICAgICJsZCA4LCA0MCg0KVxuIgotKyAgICAibGQgNCwgOCg0KVxuIgotKyAg ICAibGkgOSwgMFxuIgotKwotKyAgICAvLyBFbnRlciBrZXJuZWwKLSsgICAgInNjXG4iCi0rCi0r ICAgIC8vIE1hZ2ljIHJldHVybiBhZGRyZXNzCi0rICAgICIzOlxuIgotKyAgICAvLyBMaWtlIE1J UFMsIHBwYzY0IHJldHVybiB2YWx1ZXMgYXJlIGFsd2F5cyBwb3NpdGl2ZS4KLSsgICAgLy8gQ2hl Y2sgZm9yIGVycm9yIGluIGNyMC5TTyBhbmQgbmVnYXRlIHVwb24gZXJyb3IKLSsgICAgImJjIDQs IDMsIDRmXG4iCi0rICAgICJuZWcgMywgM1xuIgotKyAgICAiNDogYmxyXG4iCi0rCi0gICAgICIu Y2ZpX2VuZHByb2NcbiIKLSAgICAgIi5zaXplIFN5c2NhbGxBc20sIC4tU3lzY2FsbEFzbVxuIgot ICNlbmRpZgotICAgICApOyAgLy8gYXNtCi0gCi0tI2lmIGRlZmluZWQoX194ODZfNjRfXykKLSsj aWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gZXh0ZXJu ICJDIiB7Ci0gaW50cHRyX3QgU3lzY2FsbEFzbShpbnRwdHJfdCBuciwgY29uc3QgaW50cHRyX3Qg YXJnc1s2XSk7Ci0gfQotQEAgLTQyOSw2ICs0NzMsOCBAQCBpbnRwdHJfdCBTeXNjYWxsOjpDYWxs KGludCBuciwKLSAgICAgcmV0ID0gaW5vdXQ7Ci0gICB9Ci0gCi0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgaW50cHRyX3QgcmV0ID0gU3lzY2FsbEFzbShuciwgYXJncyk7Ci0gI2Vs c2UKLSAjZXJyb3IgIlVuaW1wbGVtZW50ZWQgYXJjaGl0ZWN0dXJlIgotICNlbmRpZgotQEAgLTQ0 NSw4ICs0OTEsMTggQEAgdm9pZCBTeXNjYWxsOjpQdXRWYWx1ZUluVWNvbnRleHQoaW50cHRyX3Qg cmV0X3ZhbCwgdWNvbnRleHRfdCogY3R4KSB7Ci0gICAgIC8vIG5lZWRzIHRvIGJlIGNoYW5nZWQg YmFjay4KLSAgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotICAgICBTRUNDT01QX1BBUk00KGN0eCkg PSAxOwotLSAgfSBlbHNlCi0rICB9IGVsc2UgewotICAgICBTRUNDT01QX1BBUk00KGN0eCkgPSAw OwotKyAgfQotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBTYW1l IGFzIE1JUFMsIG5lZWQgdG8gaW52ZXJ0IHJldCBhbmQgc2V0IGVycm9yIHJlZ2lzdGVyIChjcjAu U08pCi0rICBpZiAocmV0X3ZhbCA8PSAtMSAmJiByZXRfdmFsID49IC00MDk1KSB7Ci0rICAgIHJl dF92YWwgPSAtcmV0X3ZhbDsKLSsgICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgfD0gKDEg PDwgMjgpOwotKyAgfSBlbHNlIHsKLSsgICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgJj0g figxIDw8IDI4KTsKLSsgIH0KLSAjZW5kaWYKLSAgIFNFQ0NPTVBfUkVTVUxUKGN0eCkgPSBzdGF0 aWNfY2FzdDxncmVnX3Q+KHJldF92YWwpOwotIH0KLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi90cmFwLmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYwotaW5k ZXggOTg4NGJlOGJiLi45OGU0MzcxYWEgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi90cmFwLmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCi1AQCAt MjMyLDYgKzIzMiwyMCBAQCB2b2lkIFRyYXA6OlNpZ1N5cyhpbnQgbnIsIExpbnV4U2lnSW5mbyog aW5mbywgdWNvbnRleHRfdCogY3R4KSB7Ci0gICAgICAgU2V0SXNJblNpZ0hhbmRsZXIoKTsKLSAg ICAgfQotIAotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIC8vIE9uIHBwYzY0K2ds aWJjLCBzb21lIHN5c2NhbGxzIHNlZW0gdG8gYWNjaWRlbnRhbGx5IG5lZ2F0ZSB0aGUgZmlyc3QK LSsgICAgLy8gcGFyYW1ldGVyIHdoaWNoIGNhdXNlcyBjaGVja3MgYWdhaW5zdCBpdCB0byBmYWls LiBGb3Igbm93LCBtYW51YWxseQotKyAgICAvLyBuZWdhdGUgdGhlbSBiYWNrLgotKyAgICAvLyBU T0RPKHNoYXduQGFuYXN0YXMuaW8pOiBpbnZlc3RpZ2F0ZSB0aGlzIGlzc3VlIGZ1cnRoZXIKLSsg ICAgYXV0byBuciA9IFNFQ0NPTVBfU1lTQ0FMTChjdHgpOwotKyAgICBpZiAobnIgPT0gX19OUl9v cGVuYXQgfHwgbnIgPT0gX19OUl9ta2RpcmF0IHx8IG5yID09IF9fTlJfZmFjY2Vzc2F0IHx8IG5y ID09IF9fTlJfcmVhZGxpbmthdCB8fAotKyAgICAgICAgbnIgPT0gX19OUl9yZW5hbWVhdCB8fCBu ciA9PSBfX05SX3JlbmFtZWF0MiB8fCBuciA9PSBfX05SX25ld2ZzdGF0YXQgfHwgbnIgPT0gX19O Ul91bmxpbmthdCkgewotKyAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludD4oU0VDQ09NUF9QQVJN MShjdHgpKSA+IDApIHsKLSsgICAgICAgICAgICBTRUNDT01QX1BBUk0xKGN0eCkgPSAtU0VDQ09N UF9QQVJNMShjdHgpOwotKyAgICAgICAgfQotKyAgICB9Ci0rI2VuZGlmCi0rCi0gICAgIC8vIENv cHkgdGhlIHNlY2NvbXAtc3BlY2lmaWMgZGF0YSBpbnRvIGEgYXJjaF9zZWNjb21wX2RhdGEgc3Ry dWN0dXJlLiBUaGlzCi0gICAgIC8vIGlzIHdoYXQgd2UgYXJlIHNob3dpbmcgdG8gVHJhcEZuYyBj YWxsYmFja3MgdGhhdCB0aGUgc3lzdGVtIGNhbGwKLSAgICAgLy8gZXZhbHVhdG9yIHJlZ2lzdGVy ZWQgd2l0aCB0aGUgc2FuZGJveC4KLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9j cmVkZW50aWFscy5jYyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCi1pbmRl eCBkN2I1ZDhjNDQuLjRhZGM2ZDBkNCAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlcnZpY2Vz L2NyZWRlbnRpYWxzLmNjCi0rKysgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5j YwotQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBDaHJvb3RUb1NhZmVFbXB0eURpcigpIHsKLSAgIHBp ZF90IHBpZCA9IC0xOwotICAgYWxpZ25hcygxNikgY2hhciBzdGFja19idWZbUFRIUkVBRF9TVEFD S19NSU5dOwotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJD SF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAotLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQotKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKLSAgIC8vIFRoZSBzdGFjayBncm93cyBkb3dud2FyZC4KLSAgIHZvaWQq IHN0YWNrID0gc3RhY2tfYnVmICsgc2l6ZW9mKHN0YWNrX2J1Zik7Ci0gI2Vsc2UKLWRpZmYgLS1n aXQgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjIHNhbmRib3gvbGlu dXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYwotaW5kZXggZmNmZDJhYTEyLi5mNmViMzJm YjcgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNj Ci0rKysgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi1AQCAtNTgs NyArNTgsNyBAQCBsb25nIHN5c19jbG9uZSh1bnNpZ25lZCBsb25nIGZsYWdzLAotICNpZiBkZWZp bmVkKEFSQ0hfQ1BVX1g4Nl82NCkKLSAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdz LCBjaGlsZF9zdGFjaywgcHRpZCwgY3RpZCwgdGxzKTsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1g4NikgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCi0tICAgIGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpCi0rICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp IHx8IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotICAgLy8gQ09ORklHX0NMT05FX0JB Q0tXQVJEUyBkZWZpbmVkLgotICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNo aWxkX3N0YWNrLCBwdGlkLCB0bHMsIGN0aWQpOwotICNlbmRpZgotZGlmZiAtLWdpdCBzYW5kYm94 L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjIHNhbmRib3gvbGludXgvc3lz Y2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKLWluZGV4IDgzMjFkMjM3OS4uN2U1YWQxZGUz IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3Mu Y2MKLSsrKyBzYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCi1A QCAtMTU3LDcgKzE1Nyw3IEBAIGJvb2wgQnJva2VyUHJvY2Vzczo6SXNTeXNjYWxsQWxsb3dlZChp bnQgc3lzbm8pIGNvbnN0IHsKLSAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQpCi0gICAgIGNhc2Ug X19OUl9mc3RhdGF0OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19hYXJjaDY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbmV3ZnN0 YXRhdDoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gIWZhc3RfY2hlY2tfaW5fY2xpZW50XyB8fCBh bGxvd2VkX2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRfU1RBVCk7Ci1kaWZmIC0tZ2l0IHNhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oIHNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi1pbmRleCBhNjBmZTJhZDMuLjlkY2NkYjUxZCAx MDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAot KysrIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi1AQCAtMjks NiArMjksOSBAQAotICNpZm5kZWYgRU1fQUFSQ0g2NAotICNkZWZpbmUgRU1fQUFSQ0g2NCAxODMK LSAjZW5kaWYKLSsjaWZuZGVmIEVNX1BQQzY0Ci0rI2RlZmluZSBFTV9QUEM2NCAyMQotKyNlbmRp ZgotIAotICNpZm5kZWYgX19BVURJVF9BUkNIXzY0QklUCi0gI2RlZmluZSBfX0FVRElUX0FSQ0hf NjRCSVQgMHg4MDAwMDAwMAotQEAgLTU0LDYgKzU3LDEyIEBACi0gI2lmbmRlZiBBVURJVF9BUkNI X0FBUkNINjQKLSAjZGVmaW5lIEFVRElUX0FSQ0hfQUFSQ0g2NCAoRU1fQUFSQ0g2NCB8IF9fQVVE SVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKLSAjZW5kaWYKLSsjaWZuZGVmIEFVRElU X0FSQ0hfUFBDNjQKLSsjZGVmaW5lIEFVRElUX0FSQ0hfUFBDNjQgKEVNX1BQQzY0IHwgX19BVURJ VF9BUkNIXzY0QklUKQotKyNlbmRpZgotKyNpZm5kZWYgQVVESVRfQVJDSF9QUEM2NExFCi0rI2Rl ZmluZSBBVURJVF9BUkNIX1BQQzY0TEUgKEVNX1BQQzY0IHwgX19BVURJVF9BUkNIXzY0QklUIHwg X19BVURJVF9BUkNIX0xFKQotKyNlbmRpZgotIAotIC8vIEZvciBwcmN0bC5oCi0gI2lmbmRlZiBQ Ul9TRVRfU0VDQ09NUAotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xp bnV4X3NpZ25hbC5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgK LWluZGV4IGY1YTczNjc2MS4uNTE1YjIxYTVmIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3NpZ25hbC5oCi1AQCAtMTMsNyArMTMsNyBAQAotIC8vIChub3QgdW5kZWZpbmVk LCBidXQgZGVmaW5lZCBkaWZmZXJlbnQgdmFsdWVzIGFuZCBpbiBkaWZmZXJlbnQgbWVtb3J5Ci0g Ly8gbGF5b3V0cykuIFNvLCBmaWxsIHRoZSBnYXAgaGVyZS4KLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAg ZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotIAotICNkZWZpbmUgTElOVVhfU0lHSFVQIDEKLSAjZGVmaW5lIExJ TlVYX1NJR0lOVCAyCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGlu dXhfc3lzY2FsbHMuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxz LmgKLWluZGV4IDJiNzhhMGNjMy4uMGE3MGY1ZWE1IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAotKysrIHNhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAotQEAgLTM1LDUgKzM1LDkgQEAKLSAjaW5jbHVkZSAi c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIgotICNl bmRpZgotIAotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2luY2x1ZGUgInNhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCIKLSsjZW5kaWYKLSsK LSAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfTElOVVhfU1lTQ0FMTFNf SF8KLSAKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF91Y29u dGV4dC5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotaW5k ZXggMjJjZTc4MDI3Li5hNjliMDI0YzIgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9saW51eF91Y29udGV4dC5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9saW51eF91Y29udGV4dC5oCi1AQCAtMTEsNiArMTEsOCBAQAotICNpbmNsdWRlICJzYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIgotICNlbGlmIGRlZmlu ZWQoX19pMzg2X18pCi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvaTM4 Nl9saW51eF91Y29udGV4dC5oIgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaW5j bHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5o IgotICNlbHNlCi0gI2Vycm9yICJObyBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBQ TmFDbCBoZWFkZXIiCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwMDAuLmNjYWNmZmUyMgotLS0tIC9kZXYvbnVsbAotKysrIHNhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaAotQEAgLTAsMCArMSwxMiBAQAotKy8vIENv cHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKLSsvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotKwotKyNp Zm5kZWYgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9TWVNDQUxMU19I XwotKyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9TWVND QUxMU19IXwotKwotKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+Ci0rCi0rLy9UT0RPOiBpcyBpdCBu ZWNlc3NhcnkgdG8gcmVkZWZpbmUgc3lzY2FsbCBudW1iZXJzIGZvciBQUEM2ND8KLSsKLSsjZW5k aWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNf SF8KLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91 Y29udGV4dC5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRl eHQuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uMDc3MjhlMDg3Ci0t LS0gL2Rldi9udWxsCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51 eF91Y29udGV4dC5oCi1AQCAtMCwwICsxLDEyIEBACi0rLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENo cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rLy8gVXNlIG9mIHRoaXMgc291 cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQot Ky8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0rCi0rI2lmbmRlZiBTQU5EQk9YX0xJTlVY X1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCi0rI2RlZmluZSBTQU5EQk9Y X0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCi0rCi0rI2luY2x1 ZGUgPHN5cy91Y29udGV4dC5oPgotKwotKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVm aW5lIHVjb250ZXh0IG9uIFBQQzY0PwotKwotKyNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNU RU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXwotZGlmZiAtLWdpdCBzZXJ2aWNlcy9z ZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNj IHNlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xp Y3lfbGludXguY2MKLWluZGV4IGZiODliMzM1Ni4uMWU5ODQ3MzFlIDEwMDY0NAotLS0tIHNhbmRi b3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKLSsrKyBzYW5kYm94 L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi1AQCAtMTUsNiArMTUs MTEgQEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNj YWxscy5oIgotICNpbmNsdWRlICJzZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51 eC9zYW5kYm94X2xpbnV4LmgiCi0gCi0rLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGlu IHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCi0r I2lmZGVmIF9fcG93ZXJwYzY0X18KLSsjaW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRpZgotKwot IC8vIFRPRE8odmlnbmF0dGkpOiByZXBsYWNlIHRoZSBsb2NhbCBkZWZpbml0aW9ucyBiZWxvdyB3 aXRoICNpbmNsdWRlCi0gLy8gPGxpbnV4L2RtYS1idWYuaD4gb25jZSBrZXJuZWwgdmVyc2lvbiA0 LjYgYmVjb21lcyB3aWRlbHkgdXNlZC4KLSAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1Npbmsu aCB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oCi1p bmRleCAzYTgwN2UxZS4uNTI1ODYxN2EgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYW5nbGUvc3Jj L2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAotKysrIHRoaXJkX3BhcnR5L2FuZ2xlL3Ny Yy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKLUBAIC05Miw3ICs5MiwxNiBAQCBjbGFz cyBUSW5mb1NpbmtCYXNlCi0gICAgICAgICAgICAgc3RyZWFtLnByZWNpc2lvbig4KTsKLSAgICAg ICAgICAgICBzdHJlYW0gPDwgZjsKLSAgICAgICAgIH0KLS0gICAgICAgIHNpbmsuYXBwZW5kKHN0 cmVhbS5zdHIoKSk7Ci0rCi0rICAgICAgICAvLyBIYWNrIHRvIHdvcmsgYXJvdW5kIGEgYnVnIHdo ZXJlIG5lZ2F0aXZlIGZsb2F0aW5nIHBvaW50IHZhbHVlcwotKyAgICAgICAgLy8gYXJlIHJlbmRl cmVkIGxpa2UgJy4wLjUnIGluc3RlYWQgb2YgJy0wLjUnCi0rICAgICAgICBzdGQ6OnN0cmluZyBy ZXMoc3RyZWFtLnN0cigpKTsKLSsKLSsgICAgICAgIGlmIChzaWduYml0KGYpKSB7IC8vIHRlc3Qg aWYgZiBpcyBuZWdhdGl2ZQotKyAgICAgICAgICAgIHJlc1swXSA9ICctJzsKLSsgICAgICAgIH0K LSsKLSsgICAgICAgIHNpbmsuYXBwZW5kKHJlcyk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0g ICAgIH0KLSAgICAgLy8gV3JpdGUgYm9vbGVhbiB2YWx1ZXMgYXMgdGhlaXIgbmFtZXMgaW5zdGVh ZCBvZiBpbnRlZ3JhbCB2YWx1ZS4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xp YkFOR0xFL0NvbnN0YW50cy5oIHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFu dHMuaAotaW5kZXggNDI5NjRjYzEuLjY2MDdkZWViIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Fu Z2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAotKysrIHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9s aWJBTkdMRS9Db25zdGFudHMuaAotQEAgLTksNiArOSw3IEBACi0gI2lmbmRlZiBMSUJBTkdMRV9D T05TVEFOVFNfSF8KLSAjZGVmaW5lIExJQkFOR0xFX0NPTlNUQU5UU19IXwotIAotKyNpbmNsdWRl IDxjc3RkZGVmPgotICNpbmNsdWRlICJjb21tb24vcGxhdGZvcm0uaCIKLSAKLSAjaW5jbHVkZSA8 c3RkaW50Lmg+Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbiB0aGly ZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KLWluZGV4IGI0MzU0OTlmNC4uYWM4YTg0YjZkIDEw MDY0NAotLS0tIHRoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotKysrIHRoaXJkX3BhcnR5 L2JvcmluZ3NzbC9CVUlMRC5nbgotQEAgLTEwMSw2ICsxMDEsMTMgQEAgaWYgKGlzX3dpbiAmJiAh aXNfbXNhbiAmJiBjdXJyZW50X2NwdSAhPSAiYXJtNjQiKSB7Ci0gICAgICAgfSBlbHNlIHsKLSAg ICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KLSAgICAgICB9Ci0r ICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICAgIGlmIChpc19s aW51eCkgewotKyAgICAgICAgIyBUT0RPOiBwcGM2NCAoYmUpIGNoZWNrCi0rICAgICAgICBzb3Vy Y2VzICs9IGNyeXB0b19zb3VyY2VzX2xpbnV4X3BwYzY0bGUKLSsgICAgICB9IGVsc2UgewotKyAg ICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQotKyAgICAgIH0KLSAg ICAgfSBlbHNlIHsKLSAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBd Ci0gICAgIH0KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24gdGhpcmRf cGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLWluZGV4IDU2MTdkZTg4Li5kYzhiYzE3NiAxMDA2NDQK LS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotKysrIHRoaXJkX3BhcnR5L2JyZWFr cGFkL0JVSUxELmduCi1AQCAtNTk4LDcgKzU5OCw2IEBAIGlmIChpc19saW51eCB8fCBpc19hbmRy b2lkKSB7Ci0gICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbWluaWR1bXBfZmlsZV93cml0ZXIu aCIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vY29udmVydF9VVEYuY2MiLAotICAgICAg ICJicmVha3BhZC9zcmMvY29tbW9uL2NvbnZlcnRfVVRGLmgiLAotLSAgICAgICJicmVha3BhZC9z cmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIsCi0gICAgICAgImJyZWFrcGFk L3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3Ny Yy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2Nv bW1vbi9saW51eC9lbGZ1dGlscy5jYyIsCi1AQCAtNjM2LDYgKzYzNSwxNCBAQCBpZiAoaXNfbGlu dXggfHwgaXNfYW5kcm9pZCkgewotIAotICAgICBsaWJzID0gWyAiZGwiIF0KLSAKLSsgICAgaWYg KGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKLSsgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dF VENPTlRFWFQiIF0KLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIHNvdXJjZXMgKz0gWwotKyAgICAg ICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIK LSsgICAgICAgIF0KLSsgICAgfQotKwotICAgICBpbmNsdWRlX2RpcnMgPSBbCi0gICAgICAgIi4i LAotICAgICAgICJicmVha3BhZC9zcmMiLAotQEAgLTY4Niw3ICs2OTMsNiBAQCBpZiAoaXNfbGlu dXggfHwgaXNfYW5kcm9pZCkgewotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MiLAotICAgICAgICJicmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5p dHRlc3RfdXRpbHMuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9wcm9jX2NwdWluZm9fcmVhZGVyX3VuaXR0ZXN0LmNjIiwKLS0gICAgICAiYnJl YWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0X3VuaXR0ZXN0LmNjIiwK LSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wX3VuaXR0ZXN0 LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9maWxlX2lkX3VuaXR0ZXN0 LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9saW51eF9saWJjX3N1cHBv cnRfdW5pdHRlc3QuY2MiLAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaCB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAotaW5kZXggMDdkOTE3MWEuLjlhZWQ0Y2IzIDEwMDY0 NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCi0rKysgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRl eHRfY3B1LmgKLUBAIC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNIFJhd0Nv bnRleHRDUFU7Ci0gdHlwZWRlZiBNRFJhd0NvbnRleHRBUk02NF9PbGQgUmF3Q29udGV4dENQVTsK LSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotIHR5cGVkZWYgTURSYXdDb250ZXh0TUlQUyBSYXdD b250ZXh0Q1BVOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSt0eXBlZGVmIE1EUmF3 Q29udGV4dFBQQzY0IFJhd0NvbnRleHRDUFU7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBo YXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLWlu ZGV4IGFhZTFkYzEzLi4wM2FmZWM3YSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5j YwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCi1AQCAtMjcwLDcgKzI3MCw0MiBAQCB2b2lk IFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3Qgewot ICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IG1jb250ZXh0LmZwY19laXI7Ci0gI2VuZGlmCi0gfQot LSNlbmRpZiAgLy8gX19taXBzX18KLSsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r Ci0rdWludHB0cl90IFRocmVhZEluZm86OkdldEluc3RydWN0aW9uUG9pbnRlcigpIGNvbnN0IHsK LSsgICAgcmV0dXJuIG1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSt9Ci0rCi0rdm9pZCBUaHJl YWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSsgICAg b3V0LT5jb250ZXh0X2ZsYWdzID0gTURfQ09OVEVYVF9QUEM2NF9GVUxMOwotKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCi0rICAgICAgICBv dXQtPmdwcltpXSA9IG1jb250ZXh0LmdwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+bHIgPSBtY29u dGV4dC5ncF9yZWdzW1BUX0xOS107Ci0rICAgIG91dC0+c3JyMCA9IG1jb250ZXh0LmdwX3JlZ3Nb UFRfTklQXTsKLSsgICAgb3V0LT5zcnIxID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdOwotKyAg ICBvdXQtPmNyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdOwotKyAgICBvdXQtPnhlciA9IG1j b250ZXh0LmdwX3JlZ3NbUFRfWEVSXTsKLSsgICAgb3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdz W1BUX0NUUl07Ci0rICAgIAotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FW RUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVn c1tpXSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNj ciA9IG1jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOwotKwotKyAgICBmb3IgKGludCBpID0gMDsg aSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT52 ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0gXAotKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVn cy52cnJlZ3NbaV1bMF0pIDw8IDMyKSAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJl Z3MudnJyZWdzW2ldWzFdLCAKLSsgICAgICAgICAgICAoKCh1aW50NjRfdCl2cmVncy52cnJlZ3Nb aV1bMl0pIDw8IDMyKQotKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tp XVszXX07Ci0rCi0rICAgIG91dC0+dnJzYXZlID0gdnJlZ3MudnJzYXZlOwotKyAgICBvdXQtPnZl Y3Rvcl9zYXZlLnNhdmVfdnNjciA9IHswLCB2cmVncy52c2NyLnZzY3Jfd29yZH07Ci0rICAgIG91 dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsgCi0rfQotKyNlbmRpZiAg Ly8gX19wb3dlcnBjNjRfXwotIAotIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VS ZWdpc3RlcnModm9pZCoqIGdwX3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICAgYXNzZXJ0KGdwX3Jl Z3MgfHwgc2l6ZSk7Ci1AQCAtMjc5LDYgKzMxNCwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEdl bmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQqKiBncF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAg ICAgKmdwX3JlZ3MgPSBtY29udGV4dC5ncmVnczsKLSAgIGlmIChzaXplKQotICAgICAqc2l6ZSA9 IHNpemVvZihtY29udGV4dC5ncmVncyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgaWYgKGdwX3JlZ3MpCi0rICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3BfcmVnczsKLSsgIGlm IChzaXplKQotKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5ncF9yZWdzKTsKLSAjZWxzZQot ICAgaWYgKGdwX3JlZ3MpCi0gICAgICpncF9yZWdzID0gJnJlZ3M7Ci1AQCAtMjk0LDYgKzMzNCwx MSBAQCB2b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZw X3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcHJlZ3M7 Ci0gICBpZiAoc2l6ZSkKLSAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZnByZWdzKTsKLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpZiAoZnBfcmVncykKLSsgICAgKmZwX3Jl Z3MgPSAmbWNvbnRleHQuZnBfcmVnczsKLSsgIGlmIChzaXplKQotKyAgICAqc2l6ZSA9IHNpemVv ZihtY29udGV4dC5mcF9yZWdzKTsKLSAjZWxzZQotICAgaWYgKGZwX3JlZ3MpCi0gICAgICpmcF9y ZWdzID0gJmZwcmVnczsKLUBAIC0zMDIsNCArMzQ3LDEzIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0 RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0g I2VuZGlmCi0gfQotIAotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rdm9pZCBUaHJlYWRJ bmZvOjpHZXRWZWN0b3JSZWdpc3RlcnModm9pZCoqIHZfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0r ICAgIGlmICh2X3JlZ3MpCi0rICAgICAgICAqdl9yZWdzID0gJnZyZWdzOwotKyAgICBpZiAoc2l6 ZSkKLSsgICAgICAgICpzaXplID0gc2l6ZW9mKHZyZWdzKTsKLSt9Ci0rI2VuZGlmCi0rCi0gfSAg Ly8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRf aW5mby5oIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKLWluZGV4IGZiMjE2ZmE2Li41OTNhYWM4MiAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCi0rKysgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2lu Zm8uaAotQEAgLTY4LDYgKzY4LDEwIEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAgIC8vIFVzZSB0 aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdXNlci5oPgotICAgc3RydWN0IHVzZXJfcmVn c19zdHJ1Y3QgcmVnczsKLSAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZp bmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCi0rICBtY29udGV4dF90IG1jb250ZXh0OwotKyAgdnJy ZWdzZXRfdCB2cmVnczsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgLy8gVXNlIHRoZSBz dHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+LgotICAgbWNvbnRleHRfdCBtY29u dGV4dDsKLUBAIC04NCw2ICs4OCwxMSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gCi0gICAvLyBS ZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIGZsb2F0IHBvaW50IHJlZ2lzdGVyIGFyZWEu Ci0gICB2b2lkIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVf dCogc2l6ZSk7Ci0rCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFJldHVybnMg dGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgdGhlIHZlY3RvciByZWdpc3RlciBhcmVhLiAoUFBDNjQg b25seSkKLSsgIHZvaWQgR2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCog c2l6ZSk7Ci0rI2VuZGlmCi0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFk Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYyB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4 dF9yZWFkZXIuY2MKLWluZGV4IGVlNTE1YzQxLi4xMDkwNDcwZiAxMDA2NDQKLS0tLSB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1v bi91Y29udGV4dF9yZWFkZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLUBA IC0yNTQsNiArMjU0LDQ4IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJh d0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpIHsKLSAgIG91dC0+ZmxvYXRf c2F2ZS5maXIgPSB1Yy0+dWNfbWNvbnRleHQuZnBjX2VpcjsgIC8vIFVudXNlZC4KLSAjZW5kaWYK LSB9Ci0rCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotK3VpbnRwdHJfdCBVQ29u dGV4dFJlYWRlcjo6R2V0U3RhY2tQb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7Ci0rICAg IHJldHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF07 Ci0rfQotKwotK3VpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVy KGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7Ci0rICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9OSVBdOwotK30KLSsKLSt2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4 dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKSB7Ci0rICAg IG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUFBDNjRfRlVMTDsKLSsKLSsgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQotKyAgICAg ICAgb3V0LT5ncHJbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tpXTsKLSsKLSsgICAgb3V0 LT5sciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0xOS107ICAgIAotKyAgICBvdXQtPnNy cjAgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotKyAgICBvdXQtPnNycjEgPSB1 Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdOwotKyAgICBvdXQtPmNyID0gdWMtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsKLSsgICAgb3V0LT54ZXIgPSB1Yy0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9YRVJdOwotKyAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdz W1BUX0NUUl07Ci0rICAgIAotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FW RUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVn c1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOwotKwotKyAgICBvdXQtPmZsb2F0X3Nh dmUuZnBzY3IgPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rCi0rICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCi0r ICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPQotKyAgICAgICAgICAgIHsoKCh1 aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzBdKSA8PCAzMikgCi0rICAgICAgICAgICAgICAgICAg ICAgICAgIHwgdnJlZ3MtPnZycmVnc1tpXVsxXSwgCi0rICAgICAgICAgICAgICgoKHVpbnQ2NF90 KXZyZWdzLT52cnJlZ3NbaV1bMl0pIDw8IDMyKQotKyAgICAgICAgICAgICAgICAgICAgICAgICB8 IHZyZWdzLT52cnJlZ3NbaV1bM119OwotKwotKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLT52cnNh dmU7Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLT52c2NyLnZz Y3Jfd29yZH07Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZhbGlkID0gMHhGRkZGRkZG RjsgCi0rfQotKwotICNlbmRpZgotIAotIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQK LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmggdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRf cmVhZGVyLmgKLWluZGV4IDhlNzRhOGE1Li43Y2I2NjdhNyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91 Y29udGV4dF9yZWFkZXIuaAotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCi1AQCAtNTUs NiArNTUsOSBAQCBzdHJ1Y3QgVUNvbnRleHRSZWFkZXIgewotICNlbGlmIGRlZmluZWQoX19hYXJj aDY0X18pCi0gICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQs IGNvbnN0IHVjb250ZXh0X3QgKnVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGZwc2ltZF9jb250ZXh0KiBmcHJlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSsgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91 dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCB2cnJlZ3NldF90KiB2cmVncyk7Ci0gI2Vsc2UKLSAgIHN0YXRpYyB2b2lkIEZpbGxDUFVD b250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpOwotICNlbmRp ZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1pbmRl eCBjNjVmZWFhMS4uNWE3YWI1MGMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi0rKysg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCi1AQCAtNDYxLDkgKzQ2MSwxNiBAQCBib29sIEV4Y2VwdGlvbkhh bmRsZXI6OkhhbmRsZVNpZ25hbChpbnQgLypzaWcqLywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1 YykgewotICAgICBtZW1jcHkoJmdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwK LSAgICAgICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRlKSk7Ci0gICB9 Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gT24gUFBDNjQsIHdlIG11c3Qg Y29weSBWUiBzdGF0ZQotKyAgdWNvbnRleHRfdCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOwot KyAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQudl9yZWdzKSB7Ci0rICAgIG1lbWNweSgmZ19jcmFz aF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUsIHVjX3B0ci0+dWNfbWNvbnRleHQudl9yZWdzLAotKyAg ICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlKSk7Ci0rICB9Ci0g I2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIC8v IEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIG9uIEFSTSBMaW51eC4KLS0gIC8vIElu IGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRf dAotKyAgLy8gSW4gY2FzZSBvZiBNSVBTLCBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQg b2YgdWNvbnRleHRfdAotICAgLy8gYW5kICdmbG9hdF9zdGF0ZScgaXMgbm90IGEgbWVtYmVyIG9m IENyYXNoQ29udGV4dC4KLSAgIHVjb250ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsK LSAgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LmZwcmVncykgewotQEAgLTcwMSwxMSArNzA4LDE5 IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAgIH0KLSAjZW5k aWYKLSAKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRf XykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19fKSBcCi0rICAgICYmICFk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAvLyBGUFUgc3RhdGUgaXMgbm90IHBhcnQgb2YgQVJN IEVBQkkgdWNvbnRleHRfdC4KLSAgIG1lbWNweSgmY29udGV4dC5mbG9hdF9zdGF0ZSwgY29udGV4 dC5jb250ZXh0LnVjX21jb250ZXh0LmZwcmVncywKLSAgICAgICAgICBzaXplb2YoY29udGV4dC5m bG9hdF9zdGF0ZSkpOwotICNlbmRpZgotKwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r ICAvLyBWZWN0b3IgcmVnaXN0ZXJzIG11c3QgYmUgY29waWVkIG9uIFBQQzY0Ci0rICBtZW1jcHko JmNvbnRleHQudmVjdG9yX3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQudl9yZWdz LAotKyAgICAgICAgIHNpemVvZihjb250ZXh0LnZlY3Rvcl9zdGF0ZSkpOwotKyNlbmRpZgotKwot ICAgY29udGV4dC50aWQgPSBzeXNfZ2V0dGlkKCk7Ci0gCi0gICAvLyBBZGQgYW4gZXhjZXB0aW9u IHN0cmVhbSB0byB0aGUgbWluaWR1bXAgZm9yIGJldHRlciByZXBvcnRpbmcuCi1AQCAtNzI2LDYg Kzc0MSw5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAjZWxp ZiBkZWZpbmVkKF9fbWlwc19fKQotICAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotICAgICAg IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7 Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29udGV4dC5zaWdpbmZvLnNpX2Fk ZHIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19t Y29udGV4dC5ncF9yZWdzW1BUX05JUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFz IG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxl ci9leGNlcHRpb25faGFuZGxlci5oIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCi1pbmRleCBmNDQ0ODNmZi4u MzZjZTZkNmMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKLSsrKyB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRs ZXIuaAotQEAgLTE5Miw3ICsxOTIsMTEgQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlciB7Ci0gICAg IHNpZ2luZm9fdCBzaWdpbmZvOwotICAgICBwaWRfdCB0aWQ7ICAvLyB0aGUgY3Jhc2hpbmcgdGhy ZWFkLgotICAgICB1Y29udGV4dF90IGNvbnRleHQ7Ci0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsg ICAgLy8gUFBDNjQncyBGUCBzdGF0ZSBpcyBhIHBhcnQgb2YgdWNvbnRleHRfdCBsaWtlIE1JUFMg YnV0IHRoZSB2ZWN0b3IKLSsgICAgLy8gc3RhdGUgaXMgbm90LCBzbyBhIHN0cnVjdCBpcyBuZWVk ZWQuCi0rICAgIHZzdGF0ZV90IHZlY3Rvcl9zdGF0ZTsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAvLyAjaWZkZWYgdGhpcyBvdXQgYmVj YXVzZSBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBmb3IgTGludXggQVJNLgotICAg ICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVj b250ZXh0X3Qgc28KLSAgICAgLy8gJ2Zsb2F0X3N0YXRlJyBpcyBub3QgcmVxdWlyZWQuCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFu ZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRl c3QuY2MKLWluZGV4IDhkODgwOWZhLi5lMmViMDMxZSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRs ZXJfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKLUBAIC0zMDcs NyArMzA3LDcgQEAgVEVTVChFeGNlcHRpb25IYW5kbGVyVGVzdCwgUGFyYWxsZWxDaGlsZENyYXNo ZXNEb250SGFuZykgewotICAgfQotIAotICAgLy8gV2FpdCBhIHdoaWxlIHVudGlsIHRoZSBjaGls ZCBzaG91bGQgaGF2ZSBjcmFzaGVkLgotLSAgdXNsZWVwKDEwMDAwMDApOwotKyAgdXNsZWVwKDIw MDAwMDApOwotICAgLy8gS2lsbCB0aGUgY2hpbGQgaWYgaXQgaXMgc3RpbGwgcnVubmluZy4KLSAg IGtpbGwoY2hpbGQsIFNJR0tJTEwpOwotIAotQEAgLTU1OSw2ICs1NTksOCBAQCBjb25zdCB1bnNp Z25lZCBjaGFyIGtJbGxlZ2FsSW5zdHJ1Y3Rpb25bXSA9IHsKLSAjaWYgZGVmaW5lZChfX21pcHNf XykKLSAgIC8vIG1mYzIgemVybyxJbXBsIC0gdXN1YWxseSBpbGxlZ2FsIGluIHVzZXJzcGFjZS4K LSAgIDB4NDgsIDB4MDAsIDB4MDAsIDB4NDgKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICAweDAxLCAweDAxLCAweDAxLCAweDAxIC8vIENyYXNoZXMgb24gYSB0ZXN0ZWQgUE9XRVI5 IGNwdQotICNlbHNlCi0gICAvLyBUaGlzIGNyYXNoZXMgd2l0aCBTSUdJTEwgb24geDg2L3g4Ni02 NC9hcm0uCi0gICAweGZmLCAweGZmLCAweGZmLCAweGZmCi1AQCAtNzU0LDEwICs3NTYsMTAgQEAg VEVTVChFeGNlcHRpb25IYW5kbGVyVGVzdCwgSW5zdHJ1Y3Rpb25Qb2ludGVyTWVtb3J5TWF4Qm91 bmQpIHsKLSAKLSAgIC8vIFRoZXNlIGFyZSBkZWZpbmVkIGhlcmUgc28gdGhlIHBhcmVudCBjYW4g dXNlIHRoZW0gdG8gY2hlY2sgdGhlCi0gICAvLyBkYXRhIGZyb20gdGhlIG1pbmlkdW1wIGFmdGVy d2FyZHMuCi0tICAvLyBVc2UgNGsgaGVyZSBiZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEg c2luZ2xlIHBhZ2UgZXZlbgotKyAgLy8gVXNlIHRoZSBwYWdlIHNpemUgaGVyZSBiZWNhdXNlIHRo ZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgotICAgLy8gaWYgYSBzbWFsbGVy IHNpemUgaXMgcmVxdWVzdGVkLCBhbmQgdGhpcyB0ZXN0IHdhbnRzIHRvCi0gICAvLyB0ZXN0IHRo ZSB1cHBlciBib3VuZCBvZiB0aGUgbWVtb3J5IHJhbmdlLgotLSAgY29uc3QgdWludDMyX3Qga01l bW9yeVNpemUgPSA0MDk2OyAgLy8gYnl0ZXMKLSsgIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXpl ID0gZ2V0cGFnZXNpemUoKTsgIC8vIGJ5dGVzCi0gICBjb25zdCBpbnQga09mZnNldCA9IGtNZW1v cnlTaXplIC0gc2l6ZW9mKGtJbGxlZ2FsSW5zdHJ1Y3Rpb24pOwotIAotICAgY29uc3QgcGlkX3Qg Y2hpbGQgPSBmb3JrKCk7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dy aXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCi1pbmRleCBmYTNjMTcxMy4uNmNlNzA5ZTIgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNy b2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dy aXRlci5jYwotQEAgLTEzOCw3ICsxMzgsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAg ICAgICAgICAgICAgICAgIGNvbnN0IE1pY3JvZHVtcEV4dHJhSW5mbyYgbWljcm9kdW1wX2V4dHJh X2luZm8sCi0gICAgICAgICAgICAgICAgICAgTGludXhEdW1wZXIqIGR1bXBlcikKLSAgICAgICA6 IHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRl ZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQt PnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCi0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250 ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1w ZXIpLAotQEAgLTMzNyw2ICszMzksOCBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICMgZWxz ZQotICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChu MzIpIgotICNlbmRpZgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgY29uc3Qg Y2hhciBrQXJjaFtdID0gInBwYzY0IjsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBu b3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNDA5LDcg KzQxMyw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkIER1bXBDUFVTdGF0ZSgp IHsKLSAgICAgUmF3Q29udGV4dENQVSBjcHU7Ci0gICAgIG15X21lbXNldCgmY3B1LCAwLCBzaXpl b2YoUmF3Q29udGV4dENQVSkpOwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZp bmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIFVDb250ZXh0 UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwot KyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAg IFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0X3N0 YXRlXyk7Ci0gI2Vsc2UKLSAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUs IHVjb250ZXh0Xyk7Ci1AQCAtNjA1LDcgKzYxMSw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7 Ci0gICB2b2lkKiBBbGxvYyh1bnNpZ25lZCBieXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxsb2Nh dG9yKCktPkFsbG9jKGJ5dGVzKTsgfQotIAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNv bnRleHRfOwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19f KQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6 OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VB QklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZw c3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVfOwotICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1 bXBlcl87Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dy aXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1pbmRleCA2MzM5YWMwYy4uMjkxYWYx MDYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLSsrKyB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93 cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYwotQEAgLTI3OSwxMCArMjc5LDE5IEBA IFRFU1QoTWljcm9kdW1wV3JpdGVyVGVzdCwgQmFzaWNXaXRoTWFwcGluZ3MpIHsKLSAgIENyYXNo QW5kR2V0TWljcm9kdW1wKG1hcHBpbmdzLCBNaWNyb2R1bXBFeHRyYUluZm8oKSwgJmJ1Zik7Ci0g ICBBU1NFUlRfVFJVRShDb250YWluc01pY3JvZHVtcChidWYpKTsKLSAKLSsgIGludCBwYWdlX3Np emUgPSBnZXRwYWdlc2l6ZSgpOwotICNpZmRlZiBfX0xQNjRfXwotLSAgQVNTRVJUX05FKHN0ZDo6 c3RyaW5nOjpucG9zLAotLSAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAg MDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAxMDAwICIKLS0gICAgICAgICAgICAgICAgICAg ICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKLSsgIC8v IFRoaXMgdGVzdCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIGZvbGxvd2luZyBwYWdlIHNpemVz Ci0rICBBU1NFUlRfVFJVRSgocGFnZV9zaXplID09IDQwOTYpIHx8IChwYWdlX3NpemUgPT0gNjU1 MzYpKTsKLSsgIGlmIChwYWdlX3NpemUgPT0gNDA5NikgeyAKLSsgICAgQVNTRVJUX05FKHN0ZDo6 c3RyaW5nOjpucG9zLAotKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAw MCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAgIgotKyAgICAgICAgICAgICAgICAg ICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7Ci0r ICB9IGVsc2UgewotKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0rICAgICAgICAg ICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDEwMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAw MDAwMDAxMDAwMCAiCi0rICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4 OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKLSsgIH0KLSAjZWxzZQotICAgQVNTRVJUX05F KHN0ZDo6c3RyaW5nOjpucG9zLAotICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAxMDAwIDAw MDAwMDJBIDAwMDAxMDAwICIKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2Mg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLWluZGV4IDQxNTA2ODk4Li5iOTNlNGFmYyAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVf ZHVtcGVyLmNjCi1AQCAtMTEyLDYgKzExMiw5IEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpHZXRU aHJlYWRJbmZvQnlJbmRleChzaXplX3QgaW5kZXgsIFRocmVhZEluZm8qIGluZm8pIHsKLSAjZWxp ZiBkZWZpbmVkKF9fbWlwc19fKQotICAgc3RhY2tfcG9pbnRlciA9Ci0gICAgICAgcmVpbnRlcnBy ZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JF R19TUF0pOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIHN0YWNrX3BvaW50ZXIg PQotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3Jl Z3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdKTsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2Rl IGhhc24ndCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1AQCAt MTk3LDcgKzIwMCwxMCBAQCBib29sIExpbnV4Q29yZUR1bXBlcjo6RW51bWVyYXRlVGhyZWFkcygp IHsKLSAgICAgICAgIG1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKFRocmVhZEluZm8pKTsKLSAgICAg ICAgIGluZm8udGdpZCA9IHN0YXR1cy0+cHJfcGdycDsKLSAgICAgICAgIGluZm8ucHBpZCA9IHN0 YXR1cy0+cHJfcHBpZDsKLS0jaWYgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMTsgaSsrKQotKyAgICAg ICAgICAgIGluZm8ubWNvbnRleHQuZ3BfcmVnc1tpXSA9IHN0YXR1cy0+cHJfcmVnW2ldOwotKyNl bGlmIGRlZmluZWQoX19taXBzX18pCi0gI2lmIGRlZmluZWQoX19BTkRST0lEX18pCi0gICAgICAg ICBmb3IgKGludCBpID0gRUZfUjA7IGkgPD0gRUZfUjMxOyBpKyspCi0gICAgICAgICAgIGluZm8u bWNvbnRleHQuZ3JlZ3NbaSAtIEVGX1IwXSA9IHN0YXR1cy0+cHJfcmVnW2ldOwotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9kdW1wZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi1pbmRleCAxMTEy MDM1Yi4uODUyM2RhZDYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi0rKysgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbGludXhfZHVtcGVyLmNjCi1AQCAtNzY1LDcgKzc2NSw5IEBAIGJvb2wgTGludXhEdW1wZXI6 OkdldFN0YWNrSW5mbyhjb25zdCB2b2lkKiogc3RhY2ssIHNpemVfdCogc3RhY2tfbGVuLAotICAg ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGludF9zdGFja19wb2ludGVyICYgfihwYWdl X3NpemUgLSAxKSk7Ci0gCi0gICAvLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHN0YWNrIHdoaWNo IHdlIHRyeSB0byBjYXB0dXJlLgotLSAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0Nh cHR1cmUgPSAzMiAqIDEwMjQ7Ci0rICAvLyBUaGlzIG5vdyBkZXBlbmRzIG9uIHBhZ2Vfc2l6ZSB0 byBhdm9pZCBtaXNzaW5nIGRhdGEKLSsgIC8vIG9uIHN5c3RlbXMgd2l0aCBsYXJnZXIgcGFnZSBz aXplcy4KLSsgIHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gOCAqIHBh Z2Vfc2l6ZTsKLSAKLSAgIGNvbnN0IE1hcHBpbmdJbmZvKiBtYXBwaW5nID0gRmluZE1hcHBpbmco c3RhY2tfcG9pbnRlcik7Ci0gICBpZiAoIW1hcHBpbmcpCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlci5oIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCi1pbmRleCBmNGE3NWQ5MC4uMDIwOTgxZjUg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIu aAotQEAgLTYzLDcgKzYzLDggQEAgbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7Ci0gIChkZWZp bmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSU8zMikKLSB0eXBlZGVmIEVsZjMyX2F1 eHZfdCBlbGZfYXV4X2VudHJ5OwotICNlbGlmIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQo X19hYXJjaDY0X18pIHx8IFwKLS0gICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0g IT0gX0FCSU8zMikKLSsgICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FC SU8zMikgfHwgXAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIHR5cGVkZWYgRWxmNjRf YXV4dl90IGVsZl9hdXhfZW50cnk7Ci0gI2VuZGlmCi0gCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hl bHBlci5jYwotaW5kZXggM2FkNDhlNTAuLjE2ODhjMzY1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRl c3RfaGVscGVyLmNjCi1AQCAtNTEsNiArNTEsOCBAQAotICNkZWZpbmUgVElEX1BUUl9SRUdJU1RF UiAicmN4IgotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gI2RlZmluZSBUSURfUFRSX1JFR0lT VEVSICIkMSIKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2RlZmluZSBUSURfUFRS X1JFR0lTVEVSICJyOCIKLSAjZWxzZQotICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBv cnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9w dHJhY2VfZHVtcGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKLWluZGV4IGUzZGRi ODFhLi5mYTI4NTc1ZSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCi0r KysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYwotQEAgLTE0OSwxOSArMTQ5LDI3IEBAIGJv b2wgTGludXhQdHJhY2VEdW1wZXI6OkNvcHlGcm9tUHJvY2Vzcyh2b2lkKiBkZXN0LCBwaWRfdCBj aGlsZCwKLSAgIHJldHVybiB0cnVlOwotIH0KLSAKLS1ib29sIExpbnV4UHRyYWNlRHVtcGVyOjpS ZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKQotLXsKLStib29sIExp bnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3Qg dGlkKSB7Ci0gI2lmZGVmIFBUUkFDRV9HRVRSRUdTRVQKLSAgIHN0cnVjdCBpb3ZlYyBpbzsKLSAg IGluZm8tPkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9s ZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRf UFJTVEFUVVMsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRS RUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgewotICAg ICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0gCi0gICBpbmZvLT5HZXRGbG9hdGluZ1BvaW50UmVnaXN0 ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNF X0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7 Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VU LCAodm9pZCopJmlvKSA9PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0rCi0rI2lm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIEdyYWIgdGhlIHZlY3RvciByZWdpc3RlcnMg b24gUFBDNjQgdG9vCi0rICBpbmZvLT5HZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAm aW8uaW92X2xlbik7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQq KU5UX1BQQ19WTVgsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsg IH0KLSsjZW5kaWYgLy8gZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotICAgcmV0dXJuIHRydWU7 Ci0gI2Vsc2UKLSAgIHJldHVybiBmYWxzZTsKLUBAIC0yOTgsNiArMzA2LDkgQEAgYm9vbCBMaW51 eFB0cmFjZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJ bmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3BvaW50ZXIg PQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdz W01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICBzdGFja19wb2ludGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihp bmZvLT5tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0gI2Vsc2UK LSAjZXJyb3IgIlRoaXMgY29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5 ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0 ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLWluZGV4IGVhNmI5 YTEyLi45YjMxOGZlMCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0 ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYwotQEAgLTQ2 Miw2ICs0NjIsOSBAQCBURVNUKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgVmVyaWZ5U3RhY2tSZWFk V2l0aE11bHRpcGxlVGhyZWFkcykgewotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICAgIHBp ZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9Ci0gICAgICAgICByZWludGVycHJldF9jYXN0PHBp ZF90Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncmVnc1sxXSk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgICBwaWRfdCogcHJvY2Vzc190aWRfbG9jYXRpb24gPQotKyAgICAgICAg cmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+KG9uZV90aHJlYWQubWNvbnRleHQuZ3BfcmVnc1s4XSk7 Ci0gI2Vsc2UKLSAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBw bGF0Zm9ybS4KLSAjZW5kaWYKLUBAIC01NTksNiArNTYyLDggQEAgVEVTVF9GKExpbnV4UHRyYWNl RHVtcGVyVGVzdCwgU2FuaXRpemVTdGFja0NvcHkpIHsKLSAgIHVpbnRwdHJfdCBoZWFwX2FkZHIg PSB0aHJlYWRfaW5mby5yZWdzLnJjeDsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgdWlu dHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdyZWdzWzFdOwotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRf aW5mby5tY29udGV4dC5ncF9yZWdzWzhdOwotICNlbHNlCi0gI2Vycm9yIFRoaXMgdGVzdCBoYXMg bm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL21pbmlkdW1wX3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKLWluZGV4IGY4 Y2RmMmExLi5jYjgwOGMxNSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKLSsr KyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKLUBAIC0xMzYsNyArMTM2LDkgQEAgY2xhc3MgTWlu aWR1bXBXcml0ZXIgewotICAgICAgIDogZmRfKG1pbmlkdW1wX2ZkKSwKLSAgICAgICAgIHBhdGhf KG1pbmlkdW1wX3BhdGgpLAotICAgICAgICAgdWNvbnRleHRfKGNvbnRleHQgPyAmY29udGV4dC0+ Y29udGV4dCA6IE5VTEwpLAotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICB2ZWN0b3Jf c3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+dmVjdG9yX3N0YXRlIDogTlVMTCksCi0rI2VsaWYg IWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgICAgIGZs b2F0X3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPmZsb2F0X3N0YXRlIDogTlVMTCksCi0gI2Vu ZGlmCi0gICAgICAgICBkdW1wZXJfKGR1bXBlciksCi1AQCAtNDY4LDcgKzQ3MCw5IEBAIGNsYXNz IE1pbmlkdW1wV3JpdGVyIHsKLSAgICAgICAgIGlmICghY3B1LkFsbG9jYXRlKCkpCi0gICAgICAg ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgIG15X21lbXNldChjcHUuZ2V0KCksIDAsIHNpemVv ZihSYXdDb250ZXh0Q1BVKSk7Ci0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmlu ZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0XywgdmVjdG9yX3N0 YXRlXyk7Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNf XykKLSAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVj b250ZXh0XywgZmxvYXRfc3RhdGVfKTsKLSAjZWxzZQotICAgICAgICAgVUNvbnRleHRSZWFkZXI6 OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfKTsKLUBAIC04OTcsNyArOTAxLDcg QEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAgICBkaXJlbnQtPmxvY2F0aW9uLnJ2YSA9IDA7 Ci0gICB9Ci0gCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICBib29sIFdyaXRlQ1BVSW5mb3JtYXRpb24oTURSYXdTeXN0ZW1JbmZvKiBzeXNfaW5mbykg ewotICAgICBjaGFyIHZlbmRvcl9pZFtzaXplb2Yoc3lzX2luZm8tPmNwdS54ODZfY3B1X2luZm8u dmVuZG9yX2lkKSArIDFdID0gezB9OwotICAgICBzdGF0aWMgY29uc3QgY2hhciB2ZW5kb3JfaWRf bmFtZVtdID0gInZlbmRvcl9pZCI7Ci1AQCAtOTE3LDcgKzkyMSw5IEBAIGNsYXNzIE1pbmlkdW1w V3JpdGVyIHsKLSAKLSAgICAgLy8gcHJvY2Vzc29yX2FyY2hpdGVjdHVyZSBzaG91bGQgYWx3YXlz IGJlIHNldCwgZG8gdGhpcyBmaXJzdAotICAgICBzeXNfaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVj dHVyZSA9Ci0tI2lmIGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsgICAgICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfUFBDNjQ7Ci0rI2VsaWYgZGVmaW5lZChf X21pcHNfXykKLSAjIGlmIF9NSVBTX1NJTSA9PSBfQUJJTzMyCi0gICAgICAgICBNRF9DUFVfQVJD SElURUNUVVJFX01JUFM7Ci0gIyBlbGlmIF9NSVBTX1NJTSA9PSBfQUJJNjQKLUBAIC0xMzMzLDcg KzEzMzksOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICBjb25zdCBjaGFyKiBwYXRoXzsg IC8vIFBhdGggdG8gdGhlIGZpbGUgd2hlcmUgdGhlIG1pbmlkdW0gc2hvdWxkIGJlIHdyaXR0ZW4u Ci0gCi0gICBjb25zdCB1Y29udGV4dF90KiBjb25zdCB1Y29udGV4dF87ICAvLyBhbHNvIGZyb20g dGhlIHNpZ25hbCBoYW5kbGVyCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmlu ZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGNvbnN0IGdvb2ds ZV9icmVha3BhZDo6dnN0YXRlX3QqIGNvbnN0IHZlY3Rvcl9zdGF0ZV87Ci0rI2VsaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnN0IGdvb2dsZV9i cmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBmbG9hdF9zdGF0ZV87ICAvLyBkaXR0bwotICNlbmRp ZgotICAgTGludXhEdW1wZXIqIGR1bXBlcl87Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dy aXRlci5oIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCi1pbmRleCBlM2IwYjE2ZC4uY2NkOGFhMGEg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKLSsrKyB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93 cml0ZXIuaAotQEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlcjsKLSAKLSAj aWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSB0eXBlZGVmIHN0cnVjdCBmcHNpbWRfY29udGV4dCBm cHN0YXRlX3Q7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3R5cGVkZWYgdnJyZWdz ZXRfdCB2c3RhdGVfdDsKLSAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQotIHR5cGVkZWYgc3RkOjpyZW1vdmVfcG9pbnRlcjxmcHJlZ3NldF90Pjo6dHlw ZSBmcHN0YXRlX3Q7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91 bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLWluZGV4IDMwMTdh NDlhLi4zNjRlZmQ3OSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3Qu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLUBAIC03MTUsNiArNzE1 LDkgQEAgVEVTVChNaW5pZHVtcFdyaXRlclRlc3QsIEludmFsaWRTdGFja1BvaW50ZXIpIHsKLSAj ZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0Lmdy ZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdID0KLSAgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50 ZXI7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29udGV4dC5jb250ZXh0LnVj X21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdID0KLSsgICAgICBpbnZh bGlkX3N0YWNrX3BvaW50ZXI7Ci0gI2Vsc2UKLSAjIGVycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBi ZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBl ZF9maWxlLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgv bWVtb3J5X21hcHBlZF9maWxlLmNjCi1pbmRleCA0ZTkzODI2OS4uZjBmZjE1ZDkgMTAwNjQ0Ci0t LS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlf bWFwcGVkX2ZpbGUuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29t bW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYwotQEAgLTY1LDggKzY1LDcgQEAgYm9vbCBN ZW1vcnlNYXBwZWRGaWxlOjpNYXAoY29uc3QgY2hhciogcGF0aCwgc2l6ZV90IG9mZnNldCkgewot ICAgfQotIAotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18p IHx8IFwKLS0gICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkKLS0K LSsgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgc3RydWN0IGtlcm5lbF9zdGF0IHN0OwotICAgaWYgKHN5c19m c3RhdChmZCwgJnN0KSA9PSAtMSB8fCBzdC5zdF9zaXplIDwgMCkgewotICNlbHNlCi1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5 X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi1pbmRleCBmYWQ1 OWY0MC4uNjE2NDk2ZDYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKLSsrKyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRf ZmlsZV91bml0dGVzdC5jYwotQEAgLTE3Niw5ICsxNzYsMTAgQEAgVEVTVF9GKE1lbW9yeU1hcHBl ZEZpbGVUZXN0LCBSZW1hcEFmdGVyTWFwKSB7Ci0gVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0 LCBNYXBXaXRoT2Zmc2V0KSB7Ci0gICAvLyBQdXQgbW9yZSBkYXRhIGluIHRoZSB0ZXN0IGZpbGUg dGhpcyB0aW1lLiBPZmZzZXRzIGNhbiBvbmx5IGJlCi0gICAvLyBkb25lIG9uIHBhZ2UgYm91bmRh cmllcywgc28gd2UgbmVlZCBhIHR3byBwYWdlIGZpbGUgdG8gdGVzdCB0aGlzLgotLSAgY29uc3Qg aW50IHBhZ2Vfc2l6ZSA9IDQwOTY7Ci0tICBjaGFyIGRhdGExWzIgKiBwYWdlX3NpemVdOwotLSAg c2l6ZV90IGRhdGExX3NpemUgPSBzaXplb2YoZGF0YTEpOwotKyAgY29uc3QgaW50IHBhZ2Vfc2l6 ZSA9IGdldHBhZ2VzaXplKCk7Ci0rICBjaGFyICpkYXRhMSA9IHN0YXRpY19jYXN0PGNoYXIqPiht YWxsb2MoMiAqIHBhZ2Vfc2l6ZSkpOwotKyAgRVhQRUNUX1RSVUUoZGF0YTEgIT0gTlVMTCk7Ci0r ICBzaXplX3QgZGF0YTFfc2l6ZSA9ICgyICogcGFnZV9zaXplKTsKLSAgIGZvciAoc2l6ZV90IGkg PSAwOyBpIDwgZGF0YTFfc2l6ZTsgKytpKSB7Ci0gICAgIGRhdGExW2ldID0gaSAmIDB4N2Y7Ci0g ICB9Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24v bWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKLWluZGV4IDQzYzg2MzE0 Li4yNzMyNWI4MSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKLUBA IC01Nyw4ICs1Nyw5IEBACi0gCi0gICBFWFBFQ1RfRVEoMFUsIGFsbG9jYXRvci5wYWdlc19hbGxv Y2F0ZWQoKSk7Ci0gICB1aW50OF90KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxs b2NhdG9yLkFsbG9jKDEwMDAwKSk7Ci0rICB1aW50NjRfdCBleHBlY3RlZF9wYWdlcyA9IDEgKyAo KDEwMDAwIC0gMSkgLyBnZXRwYWdlc2l6ZSgpKTsKLSAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwp OwotLSAgRVhQRUNUX0VRKDNVLCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotKyAgRVhQ RUNUX0VRKGV4cGVjdGVkX3BhZ2VzLCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotICAg Zm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IDEwOyArK2kpIHsKLSAgICAgdWludDhfdCogcCA9IHJl aW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFsbG9jYXRvci5BbGxvYyhpKSk7Ci0gICAgIEFTU0VS VF9GQUxTRShwID09IE5VTEwpOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKLWlu ZGV4IGNjYzlmMTQ1Li5kZWJhZWQ0ZCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi0rKysgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51 eC5jYwotQEAgLTIwMiwxMiArMjAyLDE0IEBAIGJvb2wgRXhwbG9pdGFiaWxpdHlMaW51eDo6RW5k ZWRPbklsbGVnYWxXcml0ZSh1aW50NjRfdCBpbnN0cnVjdGlvbl9wdHIpIHsKLSAgIC8vIENoZWNr IGFyY2hpdGVjdHVyZSBhbmQgc2V0IGFyY2hpdGVjdHVyZSB2YXJpYWJsZSB0byBjb3JyZXNwb25k aW5nIGZsYWcKLSAgIC8vIGluIG9iamR1bXAuCi0gICBzd2l0Y2ggKGNvbnRleHQtPkdldENvbnRl eHRDUFUoKSkgewotKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkKLSAg ICAgY2FzZSBNRF9DT05URVhUX1g4NjoKLSAgICAgICBhcmNoaXRlY3R1cmUgPSAiaTM4NiI7Ci0g ICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgTURfQ09OVEVYVF9BTUQ2NDoKLSAgICAgICBhcmNoaXRl Y3R1cmUgPSAiaTM4Njp4ODYtNjQiOwotICAgICAgIGJyZWFrOwotKyNlbmRpZgotICAgICBkZWZh dWx0OgotICAgICAgIC8vIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4gTm90ZSB0aGF0IEFSTSBh cmNoaXRlY3R1cmVzIGFyZSBub3QKLSAgICAgICAvLyBzdXBwb3J0ZWQgYmVjYXVzZSBvYmpkdW1w IGRvZXMgbm90IHN1cHBvcnQgQVJNLgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRl c3QuY2MKLWluZGV4IDUyOGVlNWYyLi43Mjc2NGQ2YyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNj Ci0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0 YWJpbGl0eV91bml0dGVzdC5jYwotQEAgLTEwNCw2ICsxMDQsOCBAQCBFeHBsb2l0YWJpbGl0eUZv cihjb25zdCBzdHJpbmcmIGZpbGVuYW1lKSB7Ci0gfQotIAotIFRFU1QoRXhwbG9pdGFiaWxpdHlU ZXN0LCBUZXN0V2luZG93c0VuZ2luZSkgewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9u bHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgIWRlZmlu ZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotICAg QVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAg ICAgICBFeHBsb2l0YWJpbGl0eUZvcigiYXNjaWlfcmVhZF9hdi5kbXAiKSk7Ci0gICBBU1NFUlRf RVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTEzNiw5ICsxMzgs MTIgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naW5lKSB7Ci0gICAg ICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoInJlYWRfYXZfY2xvYmJlcl93cml0ZS5kbXAiKSk7 Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9MT1csCi0gICAg ICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoInJlYWRfYXZfY29uZGl0aW9uYWwuZG1wIikpOwot KyNlbmRpZgotIH0KLSAKLSBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5l KSB7Ci0rLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4 Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgotKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChf X3g4Nl82NCkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lO VEVSRVNUSU5HLAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9udWxsX3Jl YWRfYXYuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJ VFlfSElHSCwKLUBAIC0xNzEsNyArMTc2LDggQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRl c3RMaW51eEVuZ2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9l eGVjdXRhYmxlX2hlYXAuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQ TE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhf am1wX3RvX21vZHVsZV9ub3RfZXhlX3JlZ2lvbi5kbXAiKSk7Ci0tI2lmbmRlZiBfV0lOMzIKLSsj ZW5kaWYKLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmlu ZWQoX194ODZfNjQpKQotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJ VFlfSElHSCwKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9f bm9ud3JpdGFibGVfbW9kdWxlLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6 OkVYUExPSVRBQklMSVRZX0hJR0gsCi1AQCAtMTgyLDEwICsxODgsMTAgQEAgVEVTVChFeHBsb2l0 YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmls aXR5Rm9yKCJsaW51eF93cml0ZV90b19vdXRzaWRlX21vZHVsZV92aWFfbWF0aC5kbXAiKSk7Ci0g ICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9JTlRFUkVTVElORywK LSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fdW5kZXJfNGsu ZG1wIikpOwotLSNlbmRpZiAgLy8gX1dJTjMyCi0rI2VuZGlmICAvLyAhZGVmaW5lZChfV0lOMzIp ICYmICghZGVmaW5lZChfX2kzODYpICYmICFkZWZpbmVkKF9feDg2XzY0KSkKLSB9Ci0gCi0tI2lm bmRlZiBfV0lOMzIKLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8 IGRlZmluZWQoX194ODZfNjQpKQotIFRFU1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0aWxzVGVzdCwg RGlzYXNzZW1ibGVCeXRlc1Rlc3QpIHsKLSAgIEFTU0VSVF9GQUxTRShFeHBsb2l0YWJpbGl0eUxp bnV4VGVzdDo6RGlzYXNzZW1ibGVCeXRlcygiIiwgTlVMTCwgNSwgTlVMTCkpOwotICAgdWludDhf dCBieXRlc1s2XSA9IHsweGM3LCAweDAsIDB4NSwgMHgwLCAweDAsIDB4MH07Ci1AQCAtMzAxLDYg KzMwNyw3IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0aWxzVGVzdCwgQ2FsY3VsYXRlQWRk cmVzc1Rlc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZ3cml0ZV9hZGRyZXNzKSk7Ci0gfQotLSNlbmRpZiAg Ly8gX1dJTjMyCi0rI2VuZGlmICAvLyAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4 NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0rCi0gCi0gfSAgLy8gbmFtZXNwYWNlCi1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3Jl L21pbmlkdW1wLTItY29yZS5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9v bHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKLWluZGV4IGE2MGJlMzIzLi4zNWIx MWI2ZCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMv bGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKLUBA IC03Nyw2ICs3Nyw4IEBACi0gICAjZGVmaW5lIEVMRl9BUkNIICBFTV9NSVBTCi0gI2VsaWYgZGVm aW5lZChfX2FhcmNoNjRfXykKLSAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX0FBUkNINjQKLSsjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAjZGVmaW5lIEVMRl9BUkNIICBFTV9QUEM2NAot ICNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9fYXJtX18pCi1AQCAtODcsNiArODksOCBAQCB0eXBl ZGVmIHVzZXJfcmVncyB1c2VyX3JlZ3Nfc3RydWN0OwotICNlbGlmIGRlZmluZWQgKF9fbWlwc19f KQotIC8vIFRoaXMgZmlsZS1sb2NhbCB0eXBlZGVmIHNpbXBsaWZpZXMgdGhlIHNvdXJjZSBjb2Rl LgotIHR5cGVkZWYgZ3JlZ3NldF90IHVzZXJfcmVnc19zdHJ1Y3Q7Ci0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsK LSAjZW5kaWYKLSAKLSB1c2luZyBnb29nbGVfYnJlYWtwYWQ6Ok1EVHlwZUhlbHBlcjsKLUBAIC0z MjEsNiArMzI1LDkgQEAgc3RydWN0IENyYXNoZWRQcm9jZXNzIHsKLSAjZW5kaWYKLSAjaWYgZGVm aW5lZChfX2FhcmNoNjRfXykKLSAgICAgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKLSsjZW5k aWYKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBtY29udGV4dF90IG1jb250ZXh0 OwotICNlbmRpZgotICAgICB1aW50cHRyX3Qgc3RhY2tfYWRkcjsKLSAgICAgY29uc3QgdWludDhf dCogc3RhY2s7Ci1AQCAtNTM1LDYgKzU0MiwzOCBAQCBQYXJzZVRocmVhZFJlZ2lzdGVycyhDcmFz aGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJlYWQsCi0gICB0aHJlYWQtPm1jb250ZXh0LmZwY19laXIg PSByYXdyZWdzLT5mbG9hdF9zYXZlLmZpcjsKLSAjZW5kaWYKLSB9Ci0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotK3N0YXRpYyB2b2lkCi0rUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hl ZFByb2Nlc3M6OlRocmVhZCogdGhyZWFkLAotKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1p bmlkdW1wTWVtb3J5UmFuZ2UmIHJhbmdlKSB7Ci0rICBjb25zdCBNRFJhd0NvbnRleHRQUEM2NCog cmF3cmVncyA9IHJhbmdlLkdldERhdGE8TURSYXdDb250ZXh0UFBDNjQ+KDApOwotKwotKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQotKyAgICB0 aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbaV0gPSByYXdyZWdzLT5ncHJbaV07Ci0rCi0rICB0aHJl YWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXSA9IHJhd3JlZ3MtPmxyOwotKyAgdGhyZWFkLT5t Y29udGV4dC5ncF9yZWdzW1BUX05JUF0gPSByYXdyZWdzLT5zcnIwOwotKyAgdGhyZWFkLT5tY29u dGV4dC5ncF9yZWdzW1BUX01TUl0gPSByYXdyZWdzLT5zcnIxOwotKyAgdGhyZWFkLT5tY29udGV4 dC5ncF9yZWdzW1BUX0NDUl0gPSByYXdyZWdzLT5jcjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3Bf cmVnc1tQVF9YRVJdID0gcmF3cmVncy0+eGVyOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdz W1BUX0NUUl0gPSByYXdyZWdzLT5jdHI7Ci0rICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJz YXZlID0gcmF3cmVncy0+dnJzYXZlOwotKwotKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9B VElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0 LmZwX3JlZ3NbaV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwcmVnc1tpXTsKLSsKLSsgIHRocmVh ZC0+bWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwc2Ny OwotKwotKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09V TlQ7IGkrKykgewotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMF0g PSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2ggPj4gMzI7Ci0rICAgICAgdGhy ZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVsxXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZl LnNhdmVfdnJbaV0uaGlnaDsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdz W2ldWzJdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3cgPj4gMzI7Ci0rICAg ICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVszXSA9IHJhd3JlZ3MtPnZlY3Rv cl9zYXZlLnNhdmVfdnJbaV0ubG93OwotKyAgfQotKwotKyAgdGhyZWFkLT5tY29udGV4dC52X3Jl Z3MtPnZzY3IudnNjcl93b3JkID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyLmxvdyAm IDB4RkZGRkZGRkY7Ci0rfQotKwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBi ZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKLSAjZW5kaWYKLUBAIC02MjMsNiArNjYy LDEyIEBAIFBhcnNlU3lzdGVtSW5mbyhjb25zdCBPcHRpb25zJiBvcHRpb25zLCBDcmFzaGVkUHJv Y2VzcyogY3Jhc2hpbmZvLAotICMgZWxzZQotICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1 cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgotICMgZW5kaWYKLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICBpZiAoc3lzaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSAhPSBN RF9DUFVfQVJDSElURUNUVVJFX1BQQzY0KSB7Ci0rICAgIGZwcmludGYoc3RkZXJyLAotKyAgICAg ICAgICAgICJUaGlzIHZlcnNpb24gb2YgbWluaWR1bXAtMi1jb3JlIG9ubHkgc3VwcG9ydHMgUFBD NjQuXG4iKTsKLSsgICAgZXhpdCgxKTsKLSsgIH0KLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2Rl IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUyB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKLWluZGV4IDg3MjRiN2YzLi44ZTI5 NDI0ZSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRP UlMKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKLUBAIC0x MywzICsxMyw0IEBAIE1hcmsgTWVudG92YWkgPG1hcmtAY2hyb21pdW0ub3JnPgotIFJvYmVydCBT ZXNlayA8cnNlc2VrQGNocm9taXVtLm9yZz4KLSBTY290dCBHcmFoYW0gPHNjb3R0bWdAY2hyb21p dW0ub3JnPgotIEpvc2h1YSBQZXJhemEgPGpwZXJhemFAY2hyb21pdW0ub3JnPgotK1NoYXduIEFu YXN0YXNpbyA8c2hhd25AYW5hc3Rhcy5pbz4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmggdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLWluZGV4IDZlZDc3YTk4Li4xZmQ4MzQ2 OSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgv c3lzL3VzZXIuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51 eC9zeXMvdXNlci5oCi1AQCAtMTUsNiArMTUsNyBAQAotICNpZm5kZWYgQ1JBU0hQQURfQ09NUEFU X0xJTlVYX1NZU19VU0VSX0hfCi0gI2RlZmluZSBDUkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VT RVJfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZV9uZXh0IDxzeXMvdXNlci5o PgotIAotICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5oCi1pbmRleCAzYTNlNjAz Yy4uMzExOGQ5ZTkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfY29udGV4dC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5oCi1AQCAtNTkyLDYgKzU5Miw3MCBAQCBzdHJ1 Y3QgTWluaWR1bXBDb250ZXh0TUlQUzY0IHsKLSAgIHVpbnQ2NF90IGZpcjsKLSB9OwotIAotKy8v ISBcYnJpZWYgcHBjNjQtc3BlY2lmaWMgZmxhZ3MgZm9yIE1pbmlkdW1wUFBDNjQ6OmNvbnRleHRf ZmxhZ3MKLSsvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZAot K2VudW0gTWluaWR1bXBDb250ZXh0UFBDNjRGbGFncyA6IHVpbnQzMl90IHsKLSsgIC8vISBcYnJp ZWYgSWRlbnRpZmllcyB0aGUgY29udGV4dCBhcyBQUEM2NC4KLSsgIGtNaW5pZHVtcENvbnRleHRQ UEM2NCA9IDB4MDEwMDAwMDAsCi0rCi0rICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRp dHkgb2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVy cyBgcjBgLWByMzFgLCBgbmlwYCwgYG1zcmAsIGBscmAsIGV0Yy4gYXJlIHZhbGlkLgotKyAga01p bmlkdW1wQ29udGV4dFBQQzY0QmFzZSA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAw MDEsCi0rCi0rICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZmxvYXRpbmcg cG9pbnQgcmVnaXN0ZXJzLgotKyAgLy8hCi0rICAvLyEgUmVnaXN0ZXJzIGBmcDBgLWBmcDMxYCwg YGZwc2NyYCBhcmUgdmFsaWQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyA9IGtN aW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMDgsCi0rCi0rICAvLyEgXGJyaWVmIEluZGlj YXRlcyB0aGUgdmFsaWRpdHkgb2YgQWx0aXZlYy9WTVggcmVnaXN0ZXJzLgotKyAgLy8hCi0rICAv LyEgUmVnaXN0ZXJzIGB2MGAtYHYzMWAsIGB2c2NyYCwgYHZyc2F2ZWAuCi0rICBrTWluaWR1bXBD b250ZXh0UFBDNjRWZWN0b3IgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDIwLAot KwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGFsbCByZWdpc3RlcnMK LSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NEFsbCA9IGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2Ug ICAgIHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQUEM2 NEZsb2F0aW5nIHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRl eHRQUEM2NFZlY3RvcgotK307Ci0rCi0rLy8hIFxicmllZiBBIFBQQzY0IENQVSBjb250ZXh0IGNh cnJpZWQgaW4gYSBtaW5pZHVtcCBmaWxlLgotKy8vISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVfcHBj NjQuaCBmcm9tIGJyZWFrcGFkLgotK3N0cnVjdCBNaW5pZHVtcENvbnRleHRQUEM2NCB7Ci0rICB1 aW50NjRfdCBjb250ZXh0X2ZsYWdzOwotKwotKyAgLy8hIFxicmllZiBHZW5lcmFsIHB1cnBvc2Ug cmVnaXN0ZXJzLgotKyAgdWludDY0X3QgbmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0 X3QgcmVnc1szMl07Ci0rICB1aW50NjRfdCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50 NjRfdCBsbms7Ci0rICB1aW50NjRfdCBjdHI7Ci0rCi0rICAvLyEgXGJyaWVmIEZsb2F0aW5nIHBv aW50IHJlZ2lzdGVycy4KLSsgIGRvdWJsZSBmcHJlZ3NbMzJdOwotKwotKyAgLy8hIFxicmllZiBG UFUgc3RhdHVzIHJlZ2lzdGVyLgotKyAgZG91YmxlIGZwc2NyOwotKwotKyAgLy8hIFxicmllZiBB bHRpdmVjL1ZNWCB2ZWN0b3IgcmVnaXN0ZXJzLgotKyAgc3RydWN0IHsKLSsgICAgICAvLyEgXGJy aWVmIFZlY3RvciByZWdpc3RlcnMgYXJlIDEyOGJpdHMuCi0rICAgICAgdWludDEyOF9zdHJ1Y3Qg c2F2ZV92clszMl07Ci0rICAgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOwotKwotKyAgICAg IC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4K LSsgICAgICB1aW50MzJfdCBzYXZlX3BhZDVbNF07Ci0rCi0rICAgICAgLy8hIFxicmllZiBWUlNB VkUgcmVnaXN0ZXIuCi0rICAgICAgdWludDMyX3Qgc2F2ZV92cnNhdmU7Ci0rCi0rICAgICAgLy8h IFxicmllZiBQYWRkaW5nIGluY2x1ZGVkIGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5LgotKyAg ICAgIHVpbnQzMl90IHNhdmVfcGFkNls3XTsKLSsgIH0gdnJlZ3M7Ci0rfTsKLSsKLSB9ICAvLyBu YW1lc3BhY2UgY3Jhc2hwYWQKLSAKLSAjZW5kaWYgIC8vIENSQVNIUEFEX01JTklEVU1QX01JTklE VU1QX0NPTlRFWFRfSF8KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv bWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLWluZGV4IGQ3ZTUz YTQ5Li5kODllYjllMCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCi1AQCAtMTAx LDYgKzEwMSwxMyBAQCBNaW5pZHVtcENvbnRleHRXcml0ZXI6OkNyZWF0ZUZyb21TbmFwc2hvdChj b25zdCBDUFVDb250ZXh0KiBjb250ZXh0X3NuYXBzaG90KSB7Ci0gICAgICAgYnJlYWs7Ci0gICAg IH0KLSAKLSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6IHsKLSsgICAgICBjb250ZXh0 ID0gc3RkOjptYWtlX3VuaXF1ZTxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcj4oKTsKLSsgICAg ICByZWludGVycHJldF9jYXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKj4oY29udGV4dC5n ZXQoKSkKLSsgICAgICAgICAgLT5Jbml0YWxpemVGcm9tU25hcHNob3QoY29udGV4dF9zbmFwc2hv dC0+cHBjNjQpOwotKyAgICAgIGJyZWFrOwotKyAgICB9Ci0rCi0gICAgIGRlZmF1bHQ6IHsKLSAg ICAgICBMT0coRVJST1IpIDw8ICJ1bmtub3duIGNvbnRleHQgYXJjaGl0ZWN0dXJlICIKLSAgICAg ICAgICAgICAgICAgIDw8IGNvbnRleHRfc25hcHNob3QtPmFyY2hpdGVjdHVyZTsKLUBAIC00NTMs NCArNDYwLDQ3IEBAIHNpemVfdCBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXI6OkNvbnRleHRT aXplKCkgY29uc3QgewotICAgcmV0dXJuIHNpemVvZihjb250ZXh0Xyk7Ci0gfQotIAotK01pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyOjpNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpCi0rICA6 IE1pbmlkdW1wQ29udGV4dFdyaXRlcigpLCBjb250ZXh0XygpIHsKLSsgICAgY29udGV4dF8uY29u dGV4dF9mbGFncyA9IGtNaW5pZHVtcENvbnRleHRQUEM2NDsKLSt9Ci0rCi0rTWluaWR1bXBDb250 ZXh0UFBDNjRXcml0ZXI6On5NaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpID0gZGVmYXVsdDsK LSsKLSt2b2lkIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpJbml0YWxpemVGcm9tU25hcHNo b3QoCi0rICAgIGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29udGV4dF9zbmFwc2hvdCkgewotKyAg RENIRUNLX0VRKHN0YXRlKCksIGtTdGF0ZU11dGFibGUpOwotKyAgRENIRUNLX0VRKGNvbnRleHRf LmNvbnRleHRfZmxhZ3MsIGtNaW5pZHVtcENvbnRleHRQUEM2NCk7Ci0rCi0rICBjb250ZXh0Xy5j b250ZXh0X2ZsYWdzID0ga01pbmlkdW1wQ29udGV4dFBQQzY0QWxsOwotKwotKyAgbWVtY3B5KGNv bnRleHRfLnJlZ3MsIGNvbnRleHRfc25hcHNob3QtPnJlZ3MsIHNpemVvZihjb250ZXh0Xy5yZWdz KSk7Ci0rICBjb250ZXh0Xy5uaXAgPSBjb250ZXh0X3NuYXBzaG90LT5uaXA7Ci0rICBjb250ZXh0 Xy5tc3IgPSBjb250ZXh0X3NuYXBzaG90LT5tc3I7Ci0rICBjb250ZXh0Xy5jY3IgPSBjb250ZXh0 X3NuYXBzaG90LT5jY3I7Ci0rICBjb250ZXh0Xy54ZXIgPSBjb250ZXh0X3NuYXBzaG90LT54ZXI7 Ci0rICBjb250ZXh0Xy5sbmsgPSBjb250ZXh0X3NuYXBzaG90LT5sbms7Ci0rICBjb250ZXh0Xy5j dHIgPSBjb250ZXh0X3NuYXBzaG90LT5jdHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8uZnByZWdz LCBjb250ZXh0X3NuYXBzaG90LT5mcHJlZ3MsIHNpemVvZihjb250ZXh0Xy5mcHJlZ3MpKTsKLSsg IGNvbnRleHRfLmZwc2NyID0gY29udGV4dF9zbmFwc2hvdC0+ZnBzY3I7Ci0rCi0rICBtZW1jcHko Y29udGV4dF8udnJlZ3Muc2F2ZV92ciwgY29udGV4dF9zbmFwc2hvdC0+dnJlZ3Muc2F2ZV92ciwK LSsgICAgICAgICBzaXplb2YoY29udGV4dF8udnJlZ3Muc2F2ZV92cikpOwotKyAgbWVtY3B5KCZj b250ZXh0Xy52cmVncy5zYXZlX3ZzY3IsICZjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3Zz Y3IsCi0rICAgICAgICAgc2l6ZW9mKGNvbnRleHRfLnZyZWdzLnNhdmVfdnNjcikpOwotKyAgY29u dGV4dF8udnJlZ3Muc2F2ZV92cnNhdmUgPSBjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3Zy c2F2ZTsKLSt9Ci0rCi0rYm9vbCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6V3JpdGVPYmpl Y3QoCi0rICAgIEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSB7Ci0rICBEQ0hFQ0tf RVEoc3RhdGUoKSwga1N0YXRlV3JpdGFibGUpOwotKyAgcmV0dXJuIGZpbGVfd3JpdGVyLT5Xcml0 ZSgmY29udGV4dF8sIHNpemVvZihjb250ZXh0XykpOwotK30KLSsKLStzaXplX3QgTWluaWR1bXBD b250ZXh0UFBDNjRXcml0ZXI6OkNvbnRleHRTaXplKCkgY29uc3QgewotKyAgRENIRUNLX0dFKHN0 YXRlKCksIGtTdGF0ZUZyb3plbik7Ci0rICByZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsKLSt9Ci0r Ci0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmggdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAot aW5kZXggZDRhYjkzNmUuLjFkMjJmYzU5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKLSsrKyB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5o Ci1AQCAtMzE1LDYgKzMxNSw0NSBAQCBjbGFzcyBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIg ZmluYWwgOiBwdWJsaWMgTWluaWR1bXBDb250ZXh0V3JpdGVyIHsKLSAgIERJU0FMTE9XX0NPUFlf QU5EX0FTU0lHTihNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIpOwotIH07Ci0gCi0rY2xhc3Mg TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIgZmluYWwgOiBwdWJsaWMgTWluaWR1bXBDb250ZXh0 V3JpdGVyIHsKLSsgcHVibGljOgotKyAgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKTsKLSsg IH5NaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpIG92ZXJyaWRlOwotKwotKyAgLy8hIFxicmll ZiBJbml0YWxpemVzIHRoZSBNaW5pZHVtcENvbnRleHRQUEM2NCBiYXNlZCBvbiBcYSBjb250ZXh0 X3NuYXBzaG90LgotKyAgLy8hCi0rICAvLyEgXHBhcmFtW2luXSBjb250ZXh0X3NuYXBzaG90IFRo ZSBjb250ZXh0IHNuYXBzaG90IHRvIHVzZSBhcyBzb3VyY2UgZGF0YS4KLSsgIC8vIQotKyAgLy8h IFxub3RlIFZhbGlkIGluICNrU3RhdGVNdXRhYmxlLiBObyBtdXRhdGlvbiBvZiBjb250ZXh0KCkg bWF5IGJlIGRvbmUgYmVmb3JlCi0rICAvLyEgICAgIGNhbGxpbmcgdGhpcyBtZXRob2QsIGFuZCBp dCBpcyBub3Qgbm9ybWFsbHkgbmVjZXNzYXJ5IHRvIGFsdGVyCi0rICAvLyEgICAgIGNvbnRleHQo KSBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kLgotKyAgdm9pZCBJbml0YWxpemVGcm9tU25hcHNo b3QoY29uc3QgQ1BVQ29udGV4dFBQQzY0KiBjb250ZXh0X3NuYXBzaG90KTsKLSsKLSsgIC8vISBc YnJpZWYgUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGNvbnRleHQgc3RydWN0dXJlIHRoYXQgdGhp cyBvYmplY3Qgd2lsbAotKyAgLy8hICAgICB3cml0ZS4KLSsgIC8vIQotKyAgLy8hIFxhdHRlbnRp b24gVGhpcyByZXR1cm5zIGEgbm9uLWBjb25zdGAgcG9pbnRlciB0byB0aGlzIG9iamVjdOKAmXMg cHJpdmF0ZQotKyAgLy8hICAgICBkYXRhIHNvIHRoYXQgYSBjYWxsZXIgY2FuIHBvcHVsYXRlIHRo ZSBjb250ZXh0IHN0cnVjdHVyZSBkaXJlY3RseS4KLSsgIC8vISAgICAgVGhpcyBpcyBkb25lIGJl Y2F1c2UgcHJvdmlkaW5nIHNldHRlciBpbnRlcmZhY2VzIHRvIGVhY2ggZmllbGQgaW4gdGhlCi0r ICAvLyEgICAgIGNvbnRleHQgc3RydWN0dXJlIHdvdWxkIGJlIHVud2llbGR5IGFuZCBjdW1iZXJz b21lLiBDYXJlIG11c3QgYmUgdGFrZW4KLSsgIC8vISAgICAgdG8gcG9wdWxhdGUgdGhlIGNvbnRl eHQgc3RydWN0dXJlIGNvcnJlY3RseS4gVGhlIGNvbnRleHQgc3RydWN0dXJlCi0rICAvLyEgICAg IG11c3Qgb25seSBiZSBtb2RpZmllZCB3aGlsZSB0aGlzIG9iamVjdCBpcyBpbiB0aGUgI2tTdGF0 ZU11dGFibGUKLSsgIC8vISAgICAgc3RhdGUuCi0rICBNaW5pZHVtcENvbnRleHRQUEM2NCogY29u dGV4dCgpIHsgcmV0dXJuICZjb250ZXh0XzsgfQotKwotKyBwcm90ZWN0ZWQ6Ci0rICAvLyBNaW5p ZHVtcFdyaXRhYmxlOgotKyAgYm9vbCBXcml0ZU9iamVjdChGaWxlV3JpdGVySW50ZXJmYWNlKiBm aWxlX3dyaXRlcikgb3ZlcnJpZGU7Ci0rCi0rICAvLyBNaW5pZHVtcENvbnRleHRXcml0ZXI6Ci0r ICBzaXplX3QgQ29udGV4dFNpemUoKSBjb25zdCBvdmVycmlkZTsKLSsKLSsgcHJpdmF0ZToKLSsg IE1pbmlkdW1wQ29udGV4dFBQQzY0IGNvbnRleHRfOwotKwotKyAgRElTQUxMT1dfQ09QWV9BTkRf QVNTSUdOKE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKTsKLSt9OwotKwotIH0gIC8vIG5hbWVz cGFjZSBjcmFzaHBhZAotIAotICNlbmRpZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBf Q09OVEVYVF9XUklURVJfSF8KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNj Ci1pbmRleCAzMjE2YTkwNi4uYTlmY2JlOWQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotKysr IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRf d3JpdGVyX3Rlc3QuY2MKLUBAIC0yMTMsNiArMjEzLDIxIEBAIFRFU1QoTWluaWR1bXBDb250ZXh0 V3JpdGVyLCBNSVBTNjRfRnJvbVNuYXBzaG90KSB7Ci0gICAgICAgY29udGV4dCwgRXhwZWN0TWlu aWR1bXBDb250ZXh0TUlQUzY0LCBrU2VlZCk7Ci0gfQotIAotK1RFU1QoTWluaWR1bXBDb250ZXh0 V3JpdGVyLCBQUEM2NF9aZXJvcykgewotKyAgRW1wdHlDb250ZXh0VGVzdDxNaW5pZHVtcENvbnRl eHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAotKyAgICBFeHBlY3RNaW5pZHVt cENvbnRleHRQUEM2NCk7Ci0rfQotKwotK1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2 NF9Gcm9tU25hcHNob3QpIHsKLSsgIGNvbnN0ZXhwciB1aW50MzJfdCBrU2VlZCA9IDY0OwotKyAg Q1BVQ29udGV4dFBQQzY0IGNvbnRleHRfcHBjNjQ7Ci0rICBDUFVDb250ZXh0IGNvbnRleHQ7Ci0r ICBjb250ZXh0LnBwYzY0ID0gJmNvbnRleHRfcHBjNjQ7Ci0rICBJbml0aWFsaXplQ1BVQ29udGV4 dFBQQzY0KCZjb250ZXh0LCBrU2VlZCk7Ci0rICBGcm9tU25hcHNob3RUZXN0PE1pbmlkdW1wQ29u dGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENvbnRleHRQUEM2ND4oCi0rICAgICAgY29udGV4dCwg RXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQsIGtTZWVkKTsKLSt9Ci0rCi0gfSAgLy8gbmFtZXNw YWNlCi0gfSAgLy8gbmFtZXNwYWNlIHRlc3QKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf bWlzY19pbmZvX3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVt cC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCi1pbmRleCBhMTM0MDc2MC4uOTVkYzkyNTIg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfbWlzY19pbmZvX3dyaXRlci5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKLUBAIC0xMjYsNiArMTI2LDgg QEAgc3RkOjpzdHJpbmcgTWluaWR1bXBNaXNjSW5mb0RlYnVnQnVpbGRTdHJpbmcoKSB7Ci0gICBz dGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHMiOwotICNlbGlmIGRlZmluZWQoQVJD SF9DUFVfTUlQUzY0RUwpCi0gICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHM2 NCI7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSsgIHN0YXRpYyBjb25zdGV4cHIg Y2hhciBrQ1BVW10gPSAicHBjNjQiOwotICNlbHNlCi0gI2Vycm9yIGRlZmluZSBrQ1BVIGZvciB0 aGlzIENQVQotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotaW5kZXggYTUxNjI2Y2MuLjYxZTBiMjBhIDEw MDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVf bWVtb3J5LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2Fw dHVyZV9tZW1vcnkuY2MKLUBAIC0xMTEsNiArMTExLDExIEBAIHZvaWQgQ2FwdHVyZU1lbW9yeTo6 UG9pbnRlZFRvQnlDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGNvbnRleHQsCi0gICBmb3IgKHNp emVfdCBpID0gMDsgaSA8IGJhc2U6OnNpemUoY29udGV4dC5taXBzZWwtPnJlZ3MpOyArK2kpIHsK LSAgICAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0Lm1pcHNlbC0+ cmVnc1tpXSk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0r ICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQucHBjNjQtPm5pcCk7 Ci0rICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJhc2U6OnNpemUoY29udGV4dC5wcGM2NC0+cmVn cyk7ICsraSkgewotKyAgICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRl eHQucHBjNjQtPnJlZ3NbaV0pOwotKyAgfQotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlm Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9h cmNoaXRlY3R1cmUuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVf YXJjaGl0ZWN0dXJlLmgKLWluZGV4IDgxMWE3MjA5Li5mNGY4Mzk4MSAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKLSsr KyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJl LmgKLUBAIC00Myw3ICs0MywxMCBAQCBlbnVtIENQVUFyY2hpdGVjdHVyZSB7Ci0gICBrQ1BVQXJj aGl0ZWN0dXJlTUlQU0VMLAotIAotICAgLy8hIFxicmllZiA2NC1iaXQgTUlQU0VMLgotLSAga0NQ VUFyY2hpdGVjdHVyZU1JUFM2NEVMCi0rICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwsCi0rCi0r ICAvLyEgXGJyaWVmIDY0LWJpdCBQUEM2NC4KLSsgIGtDUFVBcmNoaXRlY3R1cmVQUEM2NAotIH07 Ci0gCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi1pbmRleCA2ZmI4ZDdlNy4uYjAx ZjdjYWQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y3B1X2NvbnRleHQuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9jcHVfY29udGV4dC5jYwotQEAgLTE2OSw2ICsxNjksOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0 OjpJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7Ci0gICAgICAgcmV0dXJuIGFybS0+cGM7Ci0g ICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICAgIHJldHVybiBhcm02NC0+cGM7 Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotKyAgICAgIHJldHVybiBwcGM2NC0+ bmlwOwotICAgICBkZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4g fjB1bGw7Ci1AQCAtMTg1LDYgKzE4Nyw4IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9p bnRlcigpIGNvbnN0IHsKLSAgICAgICByZXR1cm4gYXJtLT5zcDsKLSAgICAgY2FzZSBrQ1BVQXJj aGl0ZWN0dXJlQVJNNjQ6Ci0gICAgICAgcmV0dXJuIGFybTY0LT5zcDsKLSsgICAgY2FzZSBrQ1BV QXJjaGl0ZWN0dXJlUFBDNjQ6Ci0rICAgICAgcmV0dXJuIHBwYzY0LT5yZWdzWzFdOwotICAgICBk ZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAt MTk2LDYgKzIwMCw3IEBAIGJvb2wgQ1BVQ29udGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKLSAgICAg Y2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2XzY0OgotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVB Uk02NDoKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUw6Ci0rICAgIGNhc2Uga0NQ VUFyY2hpdGVjdHVyZVBQQzY0OgotICAgICAgIHJldHVybiB0cnVlOwotICAgICBjYXNlIGtDUFVB cmNoaXRlY3R1cmVYODY6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTToKLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaCB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1pbmRl eCBmYjIzYzQ2Ny4uZWViZWRlNjMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmgKLUBAIC0zNTIsNiArMzUyLDI0IEBAIHN0cnVj dCBDUFVDb250ZXh0TUlQUzY0IHsKLSAgIHVpbnQ2NF90IGZpcjsKLSB9OwotIAotKy8vISBcYnJp ZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBjYXJyeWluZyBQUEM2NCBDUFUgc3RhdGUuCi0rc3RydWN0 IENQVUNvbnRleHRQUEM2NCB7Ci0rICB1aW50NjRfdCBuaXA7Ci0rICB1aW50NjRfdCBtc3I7Ci0r ICB1aW50NjRfdCByZWdzWzMyXTsKLSsgIHVpbnQ2NF90IGNjcjsKLSsgIHVpbnQ2NF90IHhlcjsK LSsgIHVpbnQ2NF90IGxuazsKLSsgIHVpbnQ2NF90IGN0cjsKLSsgIGRvdWJsZSBmcHJlZ3NbMzJd OwotKyAgZG91YmxlIGZwc2NyOwotKyAgc3RydWN0IHsKLSsgICAgdWludDEyOF9zdHJ1Y3Qgc2F2 ZV92clszMl07Ci0rICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnNjcjsKLSsgICAgdWludDMyX3Qg c2F2ZV92cnNhdmU7Ci0rICB9IHZyZWdzOwotK307Ci0rCi0gLy8hIFxicmllZiBBIGNvbnRleHQg c3RydWN0dXJlIGNhcGFibGUgb2YgY2FycnlpbmcgdGhlIGNvbnRleHQgb2YgYW55IHN1cHBvcnRl ZAotIC8vISAgICAgQ1BVIGFyY2hpdGVjdHVyZS4KLSBzdHJ1Y3QgQ1BVQ29udGV4dCB7Ci1AQCAt MzgyLDYgKzQwMCw3IEBAIHN0cnVjdCBDUFVDb250ZXh0IHsKLSAgICAgQ1BVQ29udGV4dEFSTTY0 KiBhcm02NDsKLSAgICAgQ1BVQ29udGV4dE1JUFMqIG1pcHNlbDsKLSAgICAgQ1BVQ29udGV4dE1J UFM2NCogbWlwczY0OwotKyAgICBDUFVDb250ZXh0UFBDNjQqIHBwYzY0OwotICAgfTsKLSB9Owot IAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9jcHVfY29udGV4dF9saW51eC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKLWluZGV4IDlmNDZhNDg5Li5hYTY3N2M0ZSAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9j cHVfY29udGV4dF9saW51eC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAotQEAgLTE1LDYgKzE1LDcgQEAKLSAjaWZu ZGVmIENSQVNIUEFEX1NOQVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCi0gI2RlZmlu ZSBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVfQ09OVEVYVF9MSU5VWF9IXwotIAotKyNpbmNs dWRlIDxjc3RyaW5nPgotICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKLSAjaW5jbHVk ZSAic25hcHNob3QvY3B1X2NvbnRleHQuaCIKLSAjaW5jbHVkZSAic25hcHNob3QvbGludXgvc2ln bmFsX2NvbnRleHQuaCIKLUBAIC0xNzQsNiArMTc1LDc4IEBAIHZvaWQgSW5pdGlhbGl6ZUNQVUNv bnRleHRNSVBTKAotIAotICNlbmRpZiAgLy8gQVJDSF9DUFVfTUlQU19GQU1JTFkgfHwgRE9YWUdF TgotIAotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkgfHwgRE9YWUdFTgotKwot Ky8vISBcYnJpZWYgSW5pdGFsaXplcyBhIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUgZnJvbSBu YXRpdmUgY29udGV4dAotKy8vISAgICAgc3RydWN0dXJlcyBvbiBMaW51eC4KLSsvLyEKLSsvLyEg XHBhcmFtW2luXSB0aHJlYWRfY29udGV4dCBUaGUgbmF0aXZlIHRocmVhZCBjb250ZXh0LgotKy8v ISBccGFyYW1baW5dIGZsb2F0X2NvbnRleHQgVGhlIG5hdGl2ZSBmbG9hdCBjb250ZXh0LgotKy8v ISBccGFyYW1baW5dIHZlY3Rvcl9jb250ZXh0IFRoZSBuYXRpdmUgdmVjdG9yIGNvbnRleHQuCi0r Ly8hIFxwYXJhbVtvdXRdIGNvbnRleHQgVGhlIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUgdG8g aW5pdGFsaXplLgotK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Ci0rdm9pZCBJbml0aWFsaXpl Q1BVQ29udGV4dFBQQzY0KAotKyAgICBjb25zdCBUaHJlYWRDb250ZXh0Ojp0NjRfdCYgdGhyZWFk X2NvbnRleHQsCi0rICAgIGNvbnN0IEZsb2F0Q29udGV4dDo6ZjY0X3QmIGZsb2F0X2NvbnRleHQs Ci0rICAgIGNvbnN0IFZlY3RvckNvbnRleHQ6OnY2NF90JiB2ZWN0b3JfY29udGV4dCwKLSsgICAg dHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7Ci0rCi0rICBtZW1jcHkoY29u dGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQuZ3ByLCBzaXplb2YoY29udGV4dC0+cmVncykpOwot KyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOwotKyAgY29udGV4dC0+bXNyID0g dGhyZWFkX2NvbnRleHQubXNyOwotKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2Ny OwotKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOwotKyAgY29udGV4dC0+bG5r ID0gdGhyZWFkX2NvbnRleHQubG5rOwotKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQu Y3RyOwotKwotKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5mcHJlZ3Ms IHNpemVvZihjb250ZXh0LT5mcHJlZ3MpKTsKLSsgIGNvbnRleHQtPmZwc2NyID0gZmxvYXRfY29u dGV4dC5mcHNjcjsKLSsKLSsgIGZvciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBpKyspIHsKLSsg ICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cltpXSA9IHsKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0 b3JfY29udGV4dC52cnJlZ3NbaV1bMF0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4 dC52cnJlZ3NbaV1bMV0sCi0rICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdz W2ldWzJdKSA8PCAzMikgfAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzNdCi0r ICAgIH07Ci0rICB9Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250 ZXh0LnZyc2F2ZTsKLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWludDY0X3Qp dmVjdG9yX2NvbnRleHQudnNjci52c2NyX3dvcmR9OwotK30KLSsKLSt0ZW1wbGF0ZSA8dHlwZW5h bWUgVHJhaXRzPgotK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKLSsgICAgY29uc3Qg U2lnbmFsVGhyZWFkQ29udGV4dDY0ICZ0aHJlYWRfY29udGV4dCwKLSsgICAgY29uc3QgU2lnbmFs RmxvYXRDb250ZXh0NjQgJmZsb2F0X2NvbnRleHQsCi0rICAgIGNvbnN0IFNpZ25hbFZlY3RvckNv bnRleHQ2NCAmdmVjdG9yX2NvbnRleHQsCi0rICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4 dCogY29udGV4dCkgewotKwotKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0 LnJlZ3MsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7Ci0rICBjb250ZXh0LT5uaXAgPSB0aHJlYWRf Y29udGV4dC5uaXA7Ci0rICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7Ci0rICBj b250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7Ci0rICBjb250ZXh0LT54ZXIgPSB0aHJl YWRfY29udGV4dC54ZXI7Ci0rICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7Ci0r ICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5jdHI7Ci0rCi0rICBtZW1jcHkoY29udGV4 dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJlZ3MpKTsK LSsgIGNvbnRleHQtPmZwc2NyID0gZmxvYXRfY29udGV4dC5mcHNjcjsKLSsKLSsgIGZvciAodWlu dDhfdCBpID0gMDsgaSA8IDMyOyBpKyspIHsKLSsgICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cltp XSA9IHsKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMF0pIDw8 IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCi0rICAgICAgKCgo dWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAotKyAgICAgICAg dmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzNdCi0rICAgIH07Ci0rICB9Ci0rICBjb250ZXh0LT52 cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsKLSsgIGNvbnRleHQtPnZy ZWdzLnNhdmVfdnNjciA9IHswLCAodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52c2NyX3dv cmR9OwotK30KLSsKLSsKLSsjZW5kaWYKLSsKLSB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLSB9 ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLSAKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNf dGVzdC5jYwotaW5kZXggYmUyMmM5MDMuLmM1ZGYyM2QxIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5j YwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVn X3JlbmRlenZvdXNfdGVzdC5jYwotQEAgLTE1OSw5ICsxNTksMTEgQEAgdm9pZCBUZXN0QWdhaW5z dFRhcmdldChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgIGNvbnN0 IGJvb2wgaXNfdmRzb19tYXBwaW5nID0KLSAgICAgICAgICAgICAgIGRldmljZSA9PSAwICYmIGlu b2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJbdmRzb10iOwotICAgICAgICAgICBzdGF0aWMg Y29uc3RleHByIGNoYXIga1ByZWZpeFtdID0gImxpbnV4LXZkc28uc28uIjsKLSsgICAgICAgICAg c3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXg2NFtdID0gImxpbnV4LXZkc282NC5zby4iOwot ICAgICAgICAgICByZXR1cm4gaXNfdmRzb19tYXBwaW5nID09Ci0gICAgICAgICAgICAgICAgICAo bW9kdWxlX25hbWUuZW1wdHkoKSB8fAotLSAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lLmNv bXBhcmUoMCwgc3RybGVuKGtQcmVmaXgpLCBrUHJlZml4KSA9PSAwKTsKLSsgICAgICAgICAgICAg ICAgICBtb2R1bGVfbmFtZS5jb21wYXJlKDAsIHN0cmxlbihrUHJlZml4KSwga1ByZWZpeCkgPT0g MCB8fAotKyAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lLmNvbXBhcmUoMCwgc3RybGVuKGtQ cmVmaXg2NCksIGtQcmVmaXg2NCkgPT0gMCk7Ci0gICAgICAgICB9LAotICAgICAgICAgbW9kdWxl X21hcHBpbmctPm5hbWUsCi0gICAgICAgICBtb2R1bGVfbWFwcGluZy0+ZGV2aWNlLAotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRp b25fc25hcHNob3RfbGludXguY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi1pbmRleCBjZDQwYjNiMS4uNmJj ZjIzYjYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi1A QCAtMzIzLDYgKzMyMyw2OSBAQCBib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250 ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0gICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNv bnRleHRfLm1pcHM2NCk7Ci0gfQotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Ci0rc3RhdGljIGJvb2wgUmVhZENv bnRleHQoUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAg ICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogZGVzdF9jb250ZXh0KSB7Ci0rICBjb25z dCBQcm9jZXNzTWVtb3J5KiBtZW1vcnkgPSByZWFkZXItPk1lbW9yeSgpOwotKwotKyAgTGludXhW TUFkZHJlc3MgZ3BfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJh aXRzOjpNQ29udGV4dCwgZ3BfcmVncyk7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFRo cmVhZENvbnRleHQgdGhyZWFkX2NvbnRleHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVhZChncF9yZWdz X2FkZHJlc3MsIHNpemVvZih0aHJlYWRfY29udGV4dCksICZ0aHJlYWRfY29udGV4dCkpIHsKLSsg ICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBncF9yZWdzISI7Ci0rICAgIHJldHVybiBm YWxzZTsKLSsgIH0KLSsKLSsgIExpbnV4Vk1BZGRyZXNzIGZwX3JlZ3NfYWRkcmVzcyA9IGNvbnRl eHRfYWRkcmVzcyArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRv ZihVQ29udGV4dCwgbWNvbnRleHQpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIGZwX3JlZ3MpOwotKwotKyAg dHlwZW5hbWUgVHJhaXRzOjpTaWduYWxGbG9hdENvbnRleHQgZnBfY29udGV4dDsKLSsgIGlmICgh bWVtb3J5LT5SZWFkKGZwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKGZwX2NvbnRleHQpLCAmZnBfY29u dGV4dCkpIHsKLSsgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBmcF9yZWdzISI7Ci0r ICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsKLSsgIExpbnV4Vk1BZGRyZXNzIHZfcmVnc19wdHJf YWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCB2bXhf cmVzZXJ2ZSkgKyA4OwotKwotKyAgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxWZWN0b3JDb250ZXh0 IHZfY29udGV4dDsKLSsgIGlmICghbWVtb3J5LT5SZWFkKHZfcmVnc19wdHJfYWRkcmVzcywgc2l6 ZW9mKHZfY29udGV4dCksICZ2X2NvbnRleHQpKSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxk bid0IHJlYWQgdl9yZWdzISI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsKLSsgIEluaXRp YWxpemVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0Pih0aHJlYWRfY29udGV4dCwgZnBf Y29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdl9jb250ZXh0LCBkZXN0X2Nv bnRleHQpOwotKwotKyAgcmV0dXJuIHRydWU7Ci0rfQotKwotK3RlbXBsYXRlPD4KLStib29sIEV4 Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0rICAg IFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAotKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0 X2FkZHJlc3MpIHsKLSsgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQ UEM2NDsKLSsgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OwotKwotKyAg cmV0dXJuIGludGVybmFsOjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAotKyAgICAgIHJl YWRlciwgY29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5wcGM2NCk7Ci0rfQotKwotK3RlbXBsYXRl PD4KLStib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFp dHMzMj4oCi0rICAgIFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAotKyAgICBMaW51eFZNQWRk cmVzcyBjb250ZXh0X2FkZHJlc3MpIHsKLSsgIC8vIFBQQzY0IGlzIDY0LWJpdAotKyAgcmV0dXJu IGZhbHNlOwotK30KLSsKLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLSAKLSBib29s IEV4Y2VwdGlvblNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBw cm9jZXNzX3JlYWRlciwKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmggdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgK LWluZGV4IGVhMGNkMjEwLi5lNDJkZjUyMCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAotKysr IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9z bmFwc2hvdF9saW51eC5oCi1AQCAtODQsNiArODQsOCBAQCBjbGFzcyBFeGNlcHRpb25TbmFwc2hv dExpbnV4IGZpbmFsIDogcHVibGljIEV4Y2VwdGlvblNuYXBzaG90IHsKLSAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7Ci0gICAg IENQVUNvbnRleHRNSVBTNjQgbWlwczY0OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQotKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7Ci0gI2VuZGlmCi0gICB9IGNvbnRl eHRfdW5pb25fOwotICAgQ1BVQ29udGV4dCBjb250ZXh0XzsKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xp bnV4X3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv ZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKLWluZGV4IGU0ZmYxYWI3Li4yNTUzNGRk MCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0 LmNjCi1AQCAtMjk2LDcgKzI5NiwyOCBAQCB2b2lkIEV4cGVjdENvbnRleHQoY29uc3QgQ1BVQ29u dGV4dCYgYWN0dWFsLCBjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBleHBlY3RlZCkgewotICAgICAg ICAgICAgIDApOwotICN1bmRlZiBDUFVfQVJDSF9OQU1FCi0gfQotKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotK3VzaW5nIE5hdGl2ZUNQVUNvbnRleHQgPSB1Y29udGV4dF90 OwotKwotK3ZvaWQgSW5pdGlhbGl6ZUNvbnRleHQoTmF0aXZlQ1BVQ29udGV4dCogY29udGV4dCkg ewotKyAgZm9yIChzaXplX3QgcmVnID0gMDsgcmVnIDwgMzI7ICsrcmVnKSB7Ci0rICAgIGNvbnRl eHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmVnXSA9IHJlZzsKLSsgIH0KLSsKLSsgIG1lbXNldCgm Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncywgNDQsCi0rICAgICAgc2l6ZW9mKGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3MpKTsKLSt9Ci0gCi0rdm9pZCBFeHBlY3RDb250ZXh0KGNvbnN0 IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgZXhwZWN0ZWQpIHsK LSsgIEVYUEVDVF9FUShhY3R1YWwuYXJjaGl0ZWN0dXJlLCBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQp OwotKwotKyAgZm9yIChzaXplX3QgcmVnID0gMDsgcmVnIDwgMzI7ICsrcmVnKSB7Ci0rICAgIEVY UEVDVF9FUShhY3R1YWwucHBjNjQtPnJlZ3NbcmVnXSwgZXhwZWN0ZWQudWNfbWNvbnRleHQuZ3Bf cmVnc1tyZWddKTsKLSsgIH0KLSsKLSsgIEVYUEVDVF9FUShtZW1jbXAoYWN0dWFsLnBwYzY0LT5m cHJlZ3MsIGV4cGVjdGVkLnVjX21jb250ZXh0LmZwX3JlZ3MsCi0rICAgICAgICAgICAgc2l6ZW9m KGFjdHVhbC5wcGM2NC0+ZnByZWdzKSksIDApOwotK30KLSAjZWxzZQotICNlcnJvciBQb3J0Lgot ICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYwotaW5kZXggYjk2YWJm ZTcuLmRmMTJjYTU2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MKLUBA IC0xMDgsNiArMTA4LDggQEAgdm9pZCBQcm9jZXNzUmVhZGVyTGludXg6OlRocmVhZDo6SW5pdGlh bGl6ZVN0YWNrKFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyKSB7Ci0gI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHN0YWNrX3BvaW50ZXIgPSByZWFkZXItPklzNjRCaXQo KSA/IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NC5yZWdzWzI5XQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDMy LnJlZ3NbMjldOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgc3Rh Y2tfcG9pbnRlciA9IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NC5ncHJbMV07Ci0gI2Vs c2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYyB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRl cl9saW51eF90ZXN0LmNjCi1pbmRleCA1YjU3MjM2MS4uMDQ5YzMyODUgMTAwNjQ0Ci0tLS0gdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJf bGludXhfdGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MKLUBAIC02MTIsNiArNjEyLDggQEAg Ym9vbCBXcml0ZVRlc3RNb2R1bGUoY29uc3QgYmFzZTo6RmlsZVBhdGgmIG1vZHVsZV9wYXRoKSB7 Ci0gICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9BQVJDSDY0OwotICNlbGlmIGRlZmluZWQo QVJDSF9DUFVfTUlQU0VMKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQotICAgbW9kdWxl LmVoZHIuZV9tYWNoaW5lID0gRU1fTUlQUzsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 KQotKyAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fUFBDNjQ7Ci0gI2VuZGlmCi0gCi0gICBt b2R1bGUuZWhkci5lX3ZlcnNpb24gPSBFVl9DVVJSRU5UOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgK LWluZGV4IDExMDAyNDY4Li44ZTMzNWEwOSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi0rKysgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAotQEAg LTQyMiw2ICs0MjIsODkgQEAgc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4dDxDb250ZXh0 VHJhaXRzNjQ+LCBtY29udGV4dC5mcHJlZ3MpID09Ci0gICAgICAgICAgICAgICAiY29udGV4dCBv ZmZzZXQgbWlzbWF0Y2giKTsKLSAjZW5kaWYKLSAKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKLSsKLStzdHJ1Y3QgU2lnbmFsVGhyZWFkQ29udGV4dDY0IHsKLSsgIHVpbnQ2 NF90IHJlZ3NbMzJdOwotKyAgdWludDY0X3QgbmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWlu dDY0X3Qgb3JpZ19yMzsKLSsgIHVpbnQ2NF90IGN0cjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVp bnQ2NF90IHhlcjsKLSsgIHVpbnQ2NF90IGNjcjsKLSsgIHVpbnQ2NF90IHNvZnRlOwotKyAgdWlu dDY0X3QgdHJhcDsKLSsgIHVpbnQ2NF90IGRhcjsKLSsgIHVpbnQ2NF90IGRzaXNyOwotKyAgdWlu dDY0X3QgcmVzdWx0OwotKyAgdWludDY0X3QgZHNjcjsKLSsgIHVpbnQ2NF90IGZwcjBbM107Ci0r fTsKLSsKLStzdHJ1Y3QgU2lnbmFsRmxvYXRDb250ZXh0NjQgewotKyAgZG91YmxlIHJlZ3NbMzJd OwotKyAgZG91YmxlIGZwc2NyOwotK307Ci0rCi0rc3RydWN0IFNpZ25hbFZlY3RvckNvbnRleHQ2 NCB7Ci0rICBpbnQzMl90IHZycmVnc1szMl1bNF07Ci0rICBzdHJ1Y3QgewotKyAgICBpbnQzMl90 IF9fcGFkWzNdOwotKyAgICBpbnQzMl90IHZzY3Jfd29yZDsKLSsgIH0gdnNjcjsKLSsgIGludDMy X3QgdnJzYXZlOwotKyAgaW50MzJfdCBfX3BhZFszXTsKLSt9IF9fYXR0cmlidXRlX18oKF9fYWxp Z25lZF9fKDE2KSkpOwotKwotKwotKyNwcmFnbWEgcGFjayhwb3ApCi0rc3RydWN0IE1Db250ZXh0 NjQgewotKyAgdWludDY0X3QgcmVzZXJ2ZWRbNF07Ci0rICBpbnQzMl90IHNpZ25hbDsKLSsgIGlu dDMyX3QgX19wYWQwOwotKyAgdWludDY0X3QgaGFuZGxlcjsKLSsgIHVpbnQ2NF90IG9sZG1hc2s7 Ci0rICB1aW50NjRfdCBwdF9yZWdzX3B0cjsKLSsgIFNpZ25hbFRocmVhZENvbnRleHQ2NCBncF9y ZWdzOwotKyAgU2lnbmFsRmxvYXRDb250ZXh0NjQgIGZwX3JlZ3M7Ci0rICBTaWduYWxWZWN0b3JD b250ZXh0NjQgKnZfcmVnczsKLSsgIGludDY0X3Qgdm14X3Jlc2VydmVbNjldOwotK307Ci0rCi0r c3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1YmxpYyBUcmFpdHM2NCB7Ci0rICB1c2luZyBNQ29u dGV4dCA9IE1Db250ZXh0NjQ7Ci0rICB1c2luZyBTaWduYWxUaHJlYWRDb250ZXh0ID0gU2lnbmFs VGhyZWFkQ29udGV4dDY0OwotKyAgdXNpbmcgU2lnbmFsRmxvYXRDb250ZXh0ID0gU2lnbmFsRmxv YXRDb250ZXh0NjQ7Ci0rICB1c2luZyBTaWduYWxWZWN0b3JDb250ZXh0ID0gU2lnbmFsVmVjdG9y Q29udGV4dDY0OwotKyAgdXNpbmcgQ1BVQ29udGV4dCA9IENQVUNvbnRleHRQUEM2NDsKLSt9Owot KwotK3N0cnVjdCBDb250ZXh0VHJhaXRzMzIgOiBwdWJsaWMgVHJhaXRzMzIge307Ci0rCi0rc3Ry dWN0IFVDb250ZXh0IHsKLSsgIHVpbnQ2NF90IGZsYWdzOwotKyAgdWludDY0X3QgbGluazsKLSsg IFNpZ25hbFN0YWNrPENvbnRleHRUcmFpdHM2ND4gc3RhY2s7Ci0rICBTaWdzZXQ8Q29udGV4dFRy YWl0czY0PiBzaWdtYXNrOwotKyAgTUNvbnRleHQ2NCBtY29udGV4dDsKLSt9OwotKyNwcmFnbWEg cGFjayhwdXNoLCAxKQotKwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFVDb250ZXh0KSA9PSBzaXpl b2YodWNvbnRleHRfdCksCi0rICAgICAgICAgICAgICAidWNvbnRleHRfdCBzaXplIG1pc21hdGNo Iik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoTUNvbnRleHQ2NCkgPT0gc2l6ZW9mKG1jb250ZXh0 X3QpLAotKyAgICAgICAgICAgICAgIm1jb250ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRp Y19hc3NlcnQoc2l6ZW9mKFNpZ25hbFRocmVhZENvbnRleHQ2NCkgPT0gc2l6ZW9mKGdyZWdzZXRf dCksCi0rICAgICAgICAgICAgICAiZ3JlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNf YXNzZXJ0KHNpemVvZihTaWduYWxGbG9hdENvbnRleHQ2NCkgPT0gc2l6ZW9mKGZwcmVnc2V0X3Qp LAotKyAgICAgICAgICAgICAgImZwcmVnc2V0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19h c3NlcnQoc2l6ZW9mKFNpZ25hbFZlY3RvckNvbnRleHQ2NCkgPT0gc2l6ZW9mKHZycmVnc2V0X3Qp LAotKyAgICAgICAgICAgICAgInZycmVnc2V0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19h c3NlcnQob2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSA9PQotKyAgICAgICAgICAgICAgb2Zm c2V0b2YodWNvbnRleHRfdCwgdWNfbWNvbnRleHQpLCAibWNvbnRleHQgb2Zmc2V0IG1pc21hdGNo Iik7Ci0rc3RhdGljX2Fzc2VydChvZmZzZXRvZihNQ29udGV4dDY0LCBncF9yZWdzKSA9PQotKyAg ICAgICAgICAgICAgb2Zmc2V0b2YobWNvbnRleHRfdCwgZ3BfcmVncyksICJncF9yZWdzIG9mZnNl dCBtaXNtYXRjaCIpOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQ VV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKLWluZGV4 IDg1NjRkM2Q0Li5iNjkwZWNkNCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKLSsrKyB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGlu dXguY2MKLUBAIC0yMDMsNiArMjAzLDggQEAgQ1BVQXJjaGl0ZWN0dXJlIFN5c3RlbVNuYXBzaG90 TGludXg6OkdldENQVUFyY2hpdGVjdHVyZSgpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKQotICAgcmV0dXJuIHByb2Nlc3NfcmVhZGVyXy0+SXM2NEJpdCgpID8g a0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotKyAgcmV0dXJuIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKLSAjZWxzZQot ICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0dXJlCi0gI2VuZGlmCi1AQCAtMjE4LDYgKzIy MCw5IEBAIHVpbnQzMl90IFN5c3RlbVNuYXBzaG90TGludXg6OkNQVVJldmlzaW9uKCkgY29uc3Qg ewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAvLyBOb3QgaW1wbGVt ZW50YWJsZSBvbiBNSVBTCi0gICByZXR1cm4gMDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKLSsgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKLSsgIHJldHVy biAwOwotICNlbHNlCi0gI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKLSAjZW5kaWYK LUBAIC0yMzgsNiArMjQzLDkgQEAgc3RkOjpzdHJpbmcgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BV VmVuZG9yKCkgY29uc3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0g ICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCi0gICByZXR1cm4gc3RkOjpzdHJpbmcoKTsK LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIC8vIE5vdCB5ZXQgaW1w bGVtZW50ZWQgb24gUFBDNjQKLSsgIHJldHVybiBzdGQ6OnN0cmluZygpOwotICNlbHNlCi0gI2Vy cm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKLSAjZW5kaWYKLUBAIC0zNzEsNiArMzc5LDkg QEAgYm9vbCBTeXN0ZW1TbmFwc2hvdExpbnV4OjpOWEVuYWJsZWQoKSBjb25zdCB7Ci0gI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9u IE1JUFMKLSAgIHJldHVybiBmYWxzZTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZB TUlMWSkKLSsgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKLSsgIHJldHVybiBmYWxz ZTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlM WQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC90aHJlYWRfc25hcHNob3RfbGludXguY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi1pbmRleCBlM2UyYmViZC4u OGVmNDM3NTIgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAt MTg2LDYgKzE4NiwxNCBAQCBib29sIFRocmVhZFNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJv Y2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNzX3JlYWRlciwKLSAgICAgICAgIHRocmVhZC50aHJlYWRf aW5mby5mbG9hdF9jb250ZXh0LmYzMiwKLSAgICAgICAgIGNvbnRleHRfLm1pcHNlbCk7Ci0gICB9 Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBjb250ZXh0Xy5hcmNo aXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7Ci0rICBjb250ZXh0Xy5wcGM2NCA9ICZj b250ZXh0X3VuaW9uXy5wcGM2NDsKLSsgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQ8Q29udGV4 dFRyYWl0czY0PigKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0 LAotKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmY2NCwKLSsgICAgICB0 aHJlYWQudGhyZWFkX2luZm8udmVjdG9yX2NvbnRleHQudjY0LAotKyAgICAgIGNvbnRleHRfLnBw YzY0KTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGlu dXguaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRf c25hcHNob3RfbGludXguaAotaW5kZXggNDRjYzZmNmQuLmQ0MTM2NDYxIDEwMDY0NAotLS0tIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hv dF9saW51eC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLUBAIC02OCw2ICs2OCw4IEBAIGNsYXNzIFRocmVh ZFNuYXBzaG90TGludXggZmluYWwgOiBwdWJsaWMgVGhyZWFkU25hcHNob3QgewotICNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsK LSAgICAgQ1BVQ29udGV4dE1JUFM2NCBtaXBzNjQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0rICAgIENQVUNvbnRleHRQUEM2NCBwcGM2NDsKLSAjZWxzZQotICNlcnJv ciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2Mg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9y LmNjCi1pbmRleCBkM2Q1ZWJkZi4uM2ZkNzMwY2IgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCi0rKysgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCi1A QCAtNTYsNiArNTYsMTEgQEAgYm9vbCBBdXhpbGlhcnlWZWN0b3I6OlJlYWQoUHRyYWNlQ29ubmVj dGlvbiogY29ubmVjdGlvbikgewotICAgICBpZiAodHlwZSA9PSBBVF9JR05PUkUpIHsKLSAgICAg ICBjb250aW51ZTsKLSAgICAgfQotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK LSsgICAgaWYgKHR5cGUgPT0gQVRfSUdOT1JFUFBDKSB7Ci0rICAgICAgY29udGludWU7Ci0rICAg IH0KLSsjZW5kaWYKLSAgICAgaWYgKCFNYXBJbnNlcnRPclJlcGxhY2UoJnZhbHVlc18sIHR5cGUs IHZhbHVlLCBudWxscHRyKSkgewotICAgICAgIExPRyhFUlJPUikgPDwgImR1cGxpY2F0ZSBhdXh2 IGVudHJ5IjsKLSAgICAgICByZXR1cm4gZmFsc2U7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlX2Jyb2tlci5jYyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZV9icm9rZXIuY2MKLWluZGV4IDE1NWEx ZTBjLi41ZTUwY2ViNSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91 dGlsL2xpbnV4L3B0cmFjZV9icm9rZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL2xpbnV4L3B0cmFjZV9icm9rZXIuY2MKLUBAIC05NCw4ICs5NCw4IEBAIGludCBQ dHJhY2VCcm9rZXI6OlJ1bigpIHsKLSB9Ci0gCi0gYm9vbCBQdHJhY2VCcm9rZXI6OkFsbG9jYXRl QXR0YWNobWVudHMoKSB7Ci0tICBjb25zdGV4cHIgc2l6ZV90IHBhZ2Vfc2l6ZSA9IDQwOTY7Ci0t ICBjb25zdGV4cHIgc2l6ZV90IGFsbG9jX3NpemUgPQotKyAgc3RhdGljIHNpemVfdCBwYWdlX3Np emUgPSBnZXRwYWdlc2l6ZSgpOwotKyAgc2l6ZV90IGFsbG9jX3NpemUgPQotICAgICAgIChzaXpl b2YoU2NvcGVkUHRyYWNlQXR0YWNoKSArIHBhZ2Vfc2l6ZSAtIDEpICYgfihwYWdlX3NpemUgLSAx KTsKLSAgIHZvaWQqIGFsbG9jID0gc2JyayhhbGxvY19zaXplKTsKLSAgIGlmIChyZWludGVycHJl dF9jYXN0PGludHB0cl90PihhbGxvYykgPT0gLTEpIHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotaW5kZXggNTU3ZTBkMzYuLjA4YWU0 MzRiIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv cHRyYWNlci5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv cHRyYWNlci5jYwotQEAgLTM5OCw2ICszOTgsNjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlk X3QgdGlkLAotICAgcmV0dXJuIHRydWU7Ci0gfQotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotKy8vIFBQQzY0IGhhcyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQg c2luY2UgMi42LjI3IChldmVuIGJlZm9yZSB4ODYgaGFkIGl0KS4KLSsvLyBUaGF0IG1lYW5zIHdl IGNhbiBzaW1wbHkgdXNlIFBUUkFDRV9HRVRSRUdFU0VULgotKwotK3RlbXBsYXRlIDx0eXBlbmFt ZSBEZXN0aW5hdGlvbj4KLStib29sIEdldFJlZ2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwg RGVzdGluYXRpb24qIGRlc3QsIGJvb2wgY2FuX2xvZykgewotKyAgaW92ZWMgaW92OwotKyAgaW92 Lmlvdl9iYXNlID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZGVzdCk7Ci0rICBpb3YuaW92X2xl biA9IHNpemVvZigqZGVzdCk7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwg cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2V0KSwgJmlvdikgIT0gMCkgewotKyAgICBQTE9HX0lG KEVSUk9SLCBjYW5fbG9nKSA8PCAicHRyYWNlIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQot KyAgaWYgKGlvdi5pb3ZfbGVuICE9IHNpemVvZigqZGVzdCkpIHsKLSsgICAgTE9HX0lGKEVSUk9S LCBjYW5fbG9nKSA8PCAiVW5leHBlY3RlZCByZWdpc3RlcnMgc2l6ZSI7Ci0rICAgIHJldHVybiBm YWxzZTsKLSsgIH0KLSsgIHJldHVybiB0cnVlOwotK30KLSsKLStib29sIEdldFZlY3RvclJlZ2lz dGVyczY0KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRl eHQqIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsK LSsgIHJldHVybiBHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQs IGNhbl9sb2cpOwotK30KLSsKLStib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRf dCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBj b250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykg ewotKyAgcmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2 NCwgY2FuX2xvZyk7Ci0rfQotKwotK2Jvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSsg ICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJlYWRDb250ZXh0JiBjb250ZXh0LAotKyAgICAg ICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNzKiBhZGRyZXNzLAotKyAgICAgICAgICAgICAg ICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAgLy8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9H RVRfVEhSRUFEX0FSRUEgc2luY2UgdGhlIHRocmVhZCBwb2ludGVyCi0rICAvLyBpcyBzdG9yZWQg aW4gR1BSIDEzLgotKyAgVGhyZWFkQ29udGV4dDo6dDY0X3QgdGM7Ci0rICBpZiAoIUdldFJlZ2lz dGVyU2V0KHRpZCwgTlRfUFJTVEFUVVMsICZ0YywgY2FuX2xvZykpIHsKLSsgICAgTE9HX0lGKEVS Uk9SLCBjYW5fbG9nKSA8PCAiVW5hYmxlIHRvIGdldCB0aHJlYWQgcG9pbnRlciEiOwotKyAgICBy ZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICAqYWRkcmVzcyA9IHRjLmdwclsxM107Ci0rCi0rICBy ZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rLy8gU3R1YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFw cGxpY2FibGUgb24gUFBDNjQKLStib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRf dCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBj b250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykg eyByZXR1cm4gZmFsc2U7IH0KLStib29sIEdldFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCi0rICAg ICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFkQ29udGV4dCAmY29udGV4dCwKLSsgICAgICAg ICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyAqYWRkcmVzcywKLSsgICAgICAgICAgICAgICAg ICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9Ci0rCi0gI2Vsc2UKLSAjZXJyb3Ig UG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC00OTQsNiArNTUyLDkg QEAgYm9vbCBQdHJhY2VyOjpHZXRUaHJlYWRJbmZvKHBpZF90IHRpZCwgVGhyZWFkSW5mbyogaW5m bykgewotICAgaWYgKGlzXzY0X2JpdF8pIHsKLSAgICAgcmV0dXJuIEdldEdlbmVyYWxQdXJwb3Nl UmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+dGhyZWFkX2NvbnRleHQsIGNhbl9sb2dfKSAmJgotICAg ICAgICAgICAgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPmZsb2F0X2Nv bnRleHQsIGNhbl9sb2dfKSAmJgotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK LSsgICAgICAgICAgIEdldFZlY3RvclJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnZlY3Rvcl9jb250 ZXh0LCBjYW5fbG9nXykgJiYKLSsjZW5kaWYKLSAgICAgICAgICAgIEdldFRocmVhZEFyZWE2NCh0 aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+dGhyZWFkX2NvbnRleHQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmluZm8tPnRocmVhZF9zcGVjaWZpY19kYXRhX2Fk ZHJlc3MsCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4 L3RocmVhZF9pbmZvLmgKLWluZGV4IDViNTVjMjRhLi5kZWEwZDFmMyAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLSsrKyB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLUBA IC0yOCw2ICsyOCwxMCBAQAotICNpbmNsdWRlIDxhbmRyb2lkL2FwaS1sZXZlbC5oPgotICNlbmRp ZgotIAotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsjaW5jbHVkZSA8c3lz L3Vjb250ZXh0Lmg+Ci0rI2VuZGlmCi0rCi0gbmFtZXNwYWNlIGNyYXNocGFkIHsKLSAKLSAvLyEg XGJyaWVmIFRoZSBzZXQgb2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycyBmb3IgYW4gYXJjaGl0 ZWN0dXJlIGZhbWlseS4KLUBAIC03OSw2ICs4Myw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgewot ICAgICB1aW50MzJfdCBjcDBfc3RhdHVzOwotICAgICB1aW50MzJfdCBjcDBfY2F1c2U7Ci0gICAg IHVpbnQzMl90IHBhZGRpbmcxXzsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKLSsgICAgLy8gUFBDNjQgaXMgNjQtYml0Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC0xMzIsNiArMTM4LDIxIEBAIHVuaW9uIFRo cmVhZENvbnRleHQgewotICAgICB1aW50NjRfdCBjcDBfYmFkdmFkZHI7Ci0gICAgIHVpbnQ2NF90 IGNwMF9zdGF0dXM7Ci0gICAgIHVpbnQ2NF90IGNwMF9jYXVzZTsKLSsjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUmVmbGVjdHMgc3RydWN0IHB0X3JlZ3MgaW4g YXNtL3B0cmFjZS5oLgotKyAgICB1aW50NjRfdCBncHJbMzJdOwotKyAgICB1aW50NjRfdCBuaXA7 Ci0rICAgIHVpbnQ2NF90IG1zcjsKLSsgICAgdWludDY0X3Qgb3JpZ19ncHIzOwotKyAgICB1aW50 NjRfdCBjdHI7Ci0rICAgIHVpbnQ2NF90IGxuazsKLSsgICAgdWludDY0X3QgeGVyOwotKyAgICB1 aW50NjRfdCBjY3I7Ci0rICAgIHVpbnQ2NF90IHNvZnRlOwotKyAgICB1aW50NjRfdCB0cmFwOwot KyAgICB1aW50NjRfdCBkYXI7Ci0rICAgIHVpbnQ2NF90IGRzaXNyOwotKyAgICB1aW50NjRfdCBy ZXN1bHQ7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9G QU1JTFkKLUBAIC0xNDMsNiArMTY0LDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0gICB1c2lu ZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0gdXNlcl9yZWdzOwotICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpCi0gLy8gTm8gYXBwcm9wcmlhdGUgTmF0aXZlVGhyZWFkc0NvbnRleHQg dHlwZSBhdmFpbGFibGUgZm9yIE1JUFMKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZB TUlMWSkKLSsgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRleHQgPSBzdHJ1Y3QgcHRfcmVnczsKLSAj ZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWSB8fCBB UkNIX0NQVV9BUk02NAotQEAgLTIxOCw2ICsyNDEsOSBAQCB1bmlvbiBGbG9hdENvbnRleHQgewot ICAgICB9IGZwcmVnc1szMl07Ci0gICAgIHVpbnQzMl90IGZwY3NyOwotICAgICB1aW50MzJfdCBm cHVfaWQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIENy YXNocGFkJ3MgUFBDIHN1cHBvcnQgaXMgNjQtYml0IG9ubHksIHNvIHRoaXMKLSsgICAgLy8gMzJi aXQtb25seSBzdHJ1Y3QgaXMgZGVjbGFyZWQgYXMgZW1wdHkuCi0gI2Vsc2UKLSAjZXJyb3IgUG9y dC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC0yNTIsNiArMjc4LDEwIEBA IHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0gICAgIGRvdWJsZSBmcHJlZ3NbMzJdOwotICAgICB1aW50 MzJfdCBmcGNzcjsKLSAgICAgdWludDMyX3QgZnB1X2lkOwotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBSZWZsZWN0cyBmcHJlZ3NldF90IGluIHN5cy91Y29u dGV4dC5oCi0rICAgIGRvdWJsZSBmcHJlZ3NbMzJdOwotKyAgICBkb3VibGUgZnBzY3I7Ci0gI2Vs c2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC0y ODAsNiArMzEwLDggQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSAgIHN0YXRpY19hc3NlcnQoc2l6 ZW9mKGY2NCkgPT0gc2l6ZW9mKHVzZXJfZnBzaW1kX3N0cnVjdCksICJTaXplIG1pc21hdGNoIik7 Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAvLyBObyBhcHByb3ByaWF0 ZSBmbG9hdGluZyBwb2ludCBjb250ZXh0IG5hdGl2ZSB0eXBlIGZvciBhdmFpbGFibGUgTUlQUy4K LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHN0YXRpY19hc3NlcnQo c2l6ZW9mKGY2NCkgPT0gc2l6ZW9mKGZwcmVnc2V0X3QpLCAiU2l6ZSBtaXNtYXRjaCIpOwotICNl bHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODYKLUBAIC0yODcsNiAr MzE5LDI2IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0gc3RhdGljX2Fzc2VydChzdGQ6OmlzX3N0 YW5kYXJkX2xheW91dDxGbG9hdENvbnRleHQ+Ojp2YWx1ZSwKLSAgICAgICAgICAgICAgICJOb3Qg c3RhbmRhcmQgbGF5b3V0Iik7Ci0gCi0rLy8hIFxicmllZiBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1 c2VkIGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5Ci0rdW5pb24gVmVjdG9yQ29udGV4dCB7Ci0r ICBzdHJ1Y3QgdjMyX3Qge30gdjMyOwotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKLSsgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpIC8vIFZlY3RvciBjb250ZXh0 IG11c3QgYmUgZG91Ymxld29yZCBhbGlnbmVkLgotKyNlbmRpZgotKyAgc3RydWN0IHY2NF90IHsK LSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFJlZmxlY3RzIHZy cmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0LmgKLSsgICAgdWludDMyX3QgdnJyZWdzWzMyXVs0XTsK LSsgICAgc3RydWN0IHsKLSsgICAgICB1aW50MzJfdCBfX3BhZFszXTsKLSsgICAgICB1aW50MzJf dCB2c2NyX3dvcmQ7Ci0rICAgIH0gdnNjcjsKLSsgICAgdWludDMyX3QgdnJzYXZlOwotKyAgICB1 aW50MzJfdCBfX3BhZFszXTsKLSsjZW5kaWYKLSsgIH0gdjY0OwotK307Ci0rCi0gLy8hIFxicmll ZiBBIGNvbGxlY3Rpb24gb2YgYHB0cmFjZWAtYWJsZSBpbmZvcm1hdGlvbiBhYm91dCBhIHRocmVh ZC4KLSBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gICBUaHJlYWRJbmZvKCk7Ci1AQCAtMjk4LDYgKzM1 MCw5IEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAgIC8vISBcYnJpZWYgVGhlIGZsb2F0aW5nIHBv aW50IHJlZ2lzdGVycyBmb3IgdGhlIHRocmVhZC4KLSAgIEZsb2F0Q29udGV4dCBmbG9hdF9jb250 ZXh0OwotIAotKyAgLy8hIFxicmllZiAoT3B0aW9uYWwpIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVz ZWQgZm9yIHRoZSB0aHJlYWQuCi0rICBWZWN0b3JDb250ZXh0IHZlY3Rvcl9jb250ZXh0OwotKwot ICAgLy8hIFxicmllZiBUaGUgdGhyZWFkLWxvY2FsIHN0b3JhZ2UgYWRkcmVzcyBmb3IgdGhlIHRo cmVhZC4KLSAgIExpbnV4Vk1BZGRyZXNzIHRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3M7Ci0g fTsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2Nh cHR1cmVfY29udGV4dC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9j YXB0dXJlX2NvbnRleHQuaAotaW5kZXggM2ZmNzExODQuLjNlODJmNGI5IDEwMDY0NAotLS0tIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAot KysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRl eHQuaAotQEAgLTY4LDYgKzY4LDcgQEAgdXNpbmcgTmF0aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0 X3Q7Ci0gLy8hICAgICBtYWNPUy9MaW51eC9GdWNoc2lhIHwgeDg2XzY0ICAgICAgIHwgYCUlcmRp YAotIC8vISAgICAgTGludXggICAgICAgICAgICAgICB8IEFSTS9BUk02NCAgICB8IGByMGAvYHgw YAotIC8vISAgICAgTGludXggICAgICAgICAgICAgICB8IE1JUFMvTUlQUzY0ICB8IGAkYTBgCi0r Ly8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgUFBDNjQgICAgICAgIHwgYHIzYAotIC8vIQot IC8vISAgICAgQWRkaXRpb25hbGx5LCB0aGUgdmFsdWUgYExSYCBvbiBBUk0vQVJNNjQgd2lsbCBi ZSB0aGUgcmV0dXJuIGFkZHJlc3Mgb2YKLSAvLyEgICAgIHRoaXMgZnVuY3Rpb24uCi1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRl eHRfbGludXguUyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVy ZV9jb250ZXh0X2xpbnV4LlMKLWluZGV4IDUyMjE1ZWU1Li5iM2U0YTNlYyAxMDA2NDQKLS0tLSB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xp bnV4LlMKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVy ZV9jb250ZXh0X2xpbnV4LlMKLUBAIC0zMiw3ICszMiw3IEBACi0gICAuYmFsaWduIDQsIDB4MAot ICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MLCAlZnVuY3Rpb24KLSAgIC50eXBlIENBUFRV UkVDT05URVhUX1NZTUJPTDIsICVmdW5jdGlvbgotLSNlbGlmIGRlZmluZWQoX19taXBzX18pCi0r I2VsaWYgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLmJh bGlnbiA0LCAweDAKLSAjZW5kaWYKLSAKLUBAIC00MjMsNCArNDIzLDIxNCBAQCBDQVBUVVJFQ09O VEVYVF9TWU1CT0wyOgotICAganIgJHJhCi0gCi0gICAuc2V0IGF0Ci0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKyAgLy8gU3RvcmUgcjAtcjMxCi0rICBzdGQgMCwgMHhlOCgzKSAgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMF0KLSsgIHN0ZCAxLCAweGYwKDMpICAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXQotKyAgc3RkIDIsIDB4ZjgoMykgICAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzJdCi0rICAvLyBub3RlIHRoYXQgcjMncyBvcmln aW5hbCB2YWx1ZSB3YXMgbG9zdAotKyAgc3RkIDMsIDB4MTAwKDMpICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5ncF9yZWdzWzNdCi0rICBzdGQgNCwgMHgxMDgoMykgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbNF0KLSsgIHN0ZCA1LCAweDExMCgzKSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZ3BfcmVnc1s1XQotKyAgc3RkIDYsIDB4MTE4KDMpICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzZdCi0rICBzdGQgNywgMHgxMjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbN10KLSsgIHN0ZCA4LCAweDEyOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZ3BfcmVnc1s4XQotKyAgc3RkIDksIDB4MTMwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5ncF9yZWdzWzldCi0rICBzdGQgMTAsIDB4MTM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTBdCi0rICBzdGQgMTEsIDB4MTQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTFdCi0rICBzdGQgMTIsIDB4MTQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTJdCi0rICBzdGQgMTMsIDB4MTUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTNdCi0rICBzdGQgMTQsIDB4MTU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTRdCi0rICBzdGQgMTUsIDB4MTYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTVdCi0rICBzdGQgMTYsIDB4MTY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTZdCi0rICBzdGQgMTcsIDB4MTcwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTddCi0rICBzdGQgMTgsIDB4MTc4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMThdCi0rICBzdGQgMTksIDB4MTgwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTldCi0rICBzdGQgMjAsIDB4MTg4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjBdCi0rICBzdGQgMjEsIDB4MTkwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjFdCi0rICBzdGQgMjIsIDB4MTk4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjJdCi0rICBzdGQgMjMsIDB4MWEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjNdCi0rICBzdGQgMjQsIDB4MWE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjRdCi0rICBzdGQgMjUsIDB4MWIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjVdCi0rICBzdGQgMjYsIDB4MWI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjZdCi0rICBzdGQgMjcsIDB4MWMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjddCi0rICBzdGQgMjgsIDB4MWM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjhdCi0rICBzdGQgMjksIDB4MWQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMjldCi0rICBzdGQgMzAsIDB4MWQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMzBdCi0rICBzdGQgMzEsIDB4MWUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMzFdCi0rCi0rICAvLyBGb3IgTklQLCB3ZSBjYW4gdXNlIHRoZSB2YWx1ZSBpbiB0 aGUgbGluayByZWdpc3RlcgotKyAgbWZsciAwCi0rICBzdGQgMCwgMHgxZTgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdCi0rCi0rICAvLyBDVFIKLSsgIG1mY3RyIDAK LSsgIHN0ZCAwLCAweDIwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NU Ul0KLSsKLSsgIC8vIEZvciBMTkssIHdlJ2xsIHVzZSB0aGUgY2FsbGVyJ3MgTFIgc2F2ZSBhcmVh ICgyIHN0YWNrIGZyYW1lcyB1cCkuCi0rICAvLyByNCBjYW4gYmUgdXNlZCBhcyBhIHNjcmF0Y2gg cmVnaXN0ZXIgc2luY2UgaXQgaGFzIGFscmVhZHkgYmVlbiBzYXZlZC4KLSsgIGxkIDQsIDAoMSkK LSsgIGxkIDQsIDE2KDQpCi0rICBzdGQgNCwgMHgyMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9MTktdCi0rCi0rICAvLyBYRVIKLSsgIG1meGVyIDAKLSsgIHN0ZCAwLCAw eDIxMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0KLSsKLSsgIC8v IENDUgotKyAgbWZjciAwCi0rICBzdGQgMCwgMHgyMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9DQ1JdCi0rCi0rICAvLyBNU1IsIG9yaWdfcjMsIE1RLCBUUkFQLCBEQVIs IERTSVNSLCBSRVNVTFQsIERTQ1IsCi0rICAvLyBub3QgdXNlZCBvciBub3QgcmVsZXZhbnQsICB6 ZXJvIHRoZW0gb3V0LgotKyAgbGkgNCwgMAotKyAgc3RkIDQsIDB4MWYwKDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXQotKyAgc3RkIDQsIDB4MWY4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfT1JJR19SM10KLSsgIHN0ZCA0LCAweDIyMCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01RXQotKyAgc3RkIDQsIDB4MjI4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfVFJBUF0KLSsgIHN0ZCA0LCAweDIz MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RBUl0KLSsgIHN0ZCA0LCAw eDIzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTSVNSXQotKyAgc3Rk IDQsIDB4MjQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfUkVTVUxUXQot KyAgc3RkIDQsIDB4MjQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfRFND Ul0KLSsKLSsgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC5yZWdzIHRvIHBvaW50IHRv IGdwX3JlZ3MKLSsgIGFkZGkgMCwgMywgMHhlOAotKyAgc3RkIDAsIDB4ZTAoMykKLSsKLSsgIC8v IFNhdmUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIDAtMzEKLSsgIHN0ZmQgMCwgMHgyNjgoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMF0KLSsgIHN0ZmQgMSwgMHgyNzAoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMV0KLSsgIHN0ZmQgMiwgMHgyNzgoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMl0KLSsgIHN0ZmQgMywgMHgyODAoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbM10KLSsgIHN0ZmQgNCwgMHgyODgoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNF0KLSsgIHN0ZmQgNSwgMHgyOTAoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNV0KLSsgIHN0ZmQgNiwgMHgyOTgoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNl0KLSsgIHN0ZmQgNywgMHgyYTAoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbN10KLSsgIHN0ZmQgOCwgMHgyYTgoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOF0KLSsgIHN0ZmQgOSwgMHgyYjAoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOV0KLSsgIHN0ZmQgMTAsIDB4MmI4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTBdCi0rICBzdGZkIDExLCAweDJjMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzExXQotKyAgc3RmZCAxMiwgMHgyYzgo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMl0KLSsgIHN0ZmQgMTMsIDB4MmQw KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTNdCi0rICBzdGZkIDE0LCAweDJk OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE0XQotKyAgc3RmZCAxNSwgMHgy ZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNV0KLSsgIHN0ZmQgMTYsIDB4 MmU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTZdCi0rICBzdGZkIDE3LCAw eDJmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE3XQotKyAgc3RmZCAxOCwg MHgyZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxOF0KLSsgIHN0ZmQgMTks IDB4MzAwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTldCi0rICBzdGZkIDIw LCAweDMwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIwXQotKyAgc3RmZCAy MSwgMHgzMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMV0KLSsgIHN0ZmQg MjIsIDB4MzE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjJdCi0rICBzdGZk IDIzLCAweDMyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIzXQotKyAgc3Rm ZCAyNCwgMHgzMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNF0KLSsgIHN0 ZmQgMjUsIDB4MzMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjVdCi0rICBz dGZkIDI2LCAweDMzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI2XQotKyAg c3RmZCAyNywgMHgzNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syN10KLSsg IHN0ZmQgMjgsIDB4MzQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjhdCi0r ICBzdGZkIDI5LCAweDM1MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI5XQot KyAgc3RmZCAzMCwgMHgzNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMF0K LSsgIHN0ZmQgMzEsIDB4MzYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzFd Ci0rCi0rICAvLyBGUFNDUgotKyAgbWZmcyAwCi0rICBzdGZkIDAsIDB4MzY4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzJdCi0rCi0rICAvLyBTYXZlIFZNWCBWZWN0b3IgcmVn aXN0ZXJzCi0rICAvLyBVcGRhdGUgcjQgdG8gY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzIG9mIHZt eF9yZXNlcnZlCi0rICBhZGRpIDQsIDMsIDB4Mzc4Ci0rICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBx dWFkd29yZCBhbGlnbmVkCi0rICBhbmRpLiA1LCA0LCAweEYKLSsgIGJlcSAxZiAvLyBObyBhbGln bm1lbnQgaXMgbmVjZXNzYXJ5Ci0rICAvLyBBZGRyZXNzIGlzIGRvdWJsZXdvcmQgYWxpZ25lZCBh bmQgbm90IHF1YWR3b3JkIGFsaWduZWQsIGFkZCA4Ci0rICBhZGRpIDQsIDQsIDgKLSsKLSsxOgot KyAgLy8gU3RvcmUgVk1YIHJlZ2lzdGVycyAwLTMxCi0rICAvLyByNCB3aWxsIGNvbnRhaW4gdGhl IGJhc2UgYWRkcmVzcwotKyAgLy8gcjUgd2lsbCBjb250YWluIHRoZSBpbmRleAotKyAgbGkgNSwg MAotKyAgc3R2eCAwLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEsIDQsIDUgICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMV0KLSsgIGFkZGkgNSwgNSwg MTYKLSsgIHN0dnggMiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyAyXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzLCA0LCA1ICAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDNdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDQsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgNF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNSwgNCwgNSAgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA1XQotKyAgYWRkaSA1LCA1 LCAxNgotKyAgc3R2eCA2LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDcsIDQsIDUgICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgN10KLSsgIGFkZGkgNSwg NSwgMTYKLSsgIHN0dnggOCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyA4XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA5LCA0LCA1ICAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDldCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDEwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMTBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDExLCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTFdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDEyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMTJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEzLCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTNdCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE1LCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTVdCi0r ICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE3 LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTdd Ci0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMThdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4 IDE5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MTldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBz dHZ4IDIxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMjFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIyLCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjJdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDIzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMjNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI0LCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjRdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDI1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMjVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI2LCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjZdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDI3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMjddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI4LCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjhdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDI5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMjldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMwLCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzBdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDMxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMzFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWU0NSCi0r ICBtZnZzY3IgMAotKyAgc3R2eCAwLCA0LCA1Ci0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBW UlNBVkUKLSsgIG1mdnJzYXZlIDAKLSsgIHN0d3ggMCwgNCwgNQotKwotKyAgLy8gVXBkYXRlIGNv bnRleHQtPnVjX21jb250ZXh0LnZfcmVncyB0byBwb2ludCB0byB2bXhfcmVzZXJ2ZSArIGFsaWdu bWVudC4KLSsgIHN0ZCA0LCAweDM3MCgzKQotKwotKyAgLy8gWmVybyBvdXQgYWxsIHVudXNlZCBm aWVsZHMKLSsgIGxpIDQsIDAKLSsgIHN0ZCA0LCAweGM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LnNpZ25hbAotKyAgc3RkIDQsIDB4ZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuaGFu ZGxlcgotKyAgc3RkIDQsIDB4ZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQub2xkbWFzawot KwotKyAgYmxyCi0gI2VuZGlmICAvLyBfX2kzODZfXwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNj Ci1pbmRleCBjZjIzYzJkZS4uNWYyNjRiYzkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCi0rKysgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNj Ci1AQCAtNTcsNyArNTcsNyBAQCB2b2lkIFRlc3RDYXB0dXJlQ29udGV4dCgpIHsKLSAgIHVpbnRw dHJfdCBwYyA9IFByb2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29udGV4dF8xKTsKLSAKLSAjaWYg IWRlZmluZWQoQUREUkVTU19TQU5JVElaRVIpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBcCi0tICAgICFkZWZpbmVkKE1FTU9SWV9TQU5JVElaRVIpCi0rICAgICFkZWZpbmVk KE1FTU9SWV9TQU5JVElaRVIpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAg IC8vIFNhbml0aXplcnMgY2FuIGNhdXNlIGVub3VnaCBjb2RlIGJsb2F0IHRoYXQgdGhlIOKAnG5l YXJieeKAnSBjaGVjayB3b3VsZAotICAgLy8gbGlrZWx5IGZhaWwuCi0gICBjb25zdCB1aW50cHRy X3Qga1JlZmVyZW5jZVBDID0KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxf bGludXguY2MKLWluZGV4IDlmYzVkYjI4Li41ZjY5ZjhkYyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9s aW51eC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0 dXJlX2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNjCi1AQCAtMzYsNiArMzYsOCBAQCB2b2lkIFNh bml0eUNoZWNrQ29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICBF WFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4dC5yZWdzWzBdLCBGcm9tUG9pbnRlckNhc3Q8dWlu dHB0cl90PigmY29udGV4dCkpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp Ci0gICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJD YXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKLSsgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbM10sIEZy b21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0gI2VuZGlmCi0gfQotIAotQEAg LTUwLDYgKzUyLDggQEAgdWludHB0cl90IFByb2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29uc3Qg TmF0aXZlQ1BVQ29udGV4dCYgY29udGV4dCkgewotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRl eHQucGM7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBj b250ZXh0LnVjX21jb250ZXh0LnBjOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQotKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotICNl bmRpZgotIH0KLSAKLUBAIC02NCw2ICs2OCw4IEBAIHVpbnRwdHJfdCBTdGFja1BvaW50ZXJGcm9t Q29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICByZXR1cm4gY29u dGV4dC51Y19tY29udGV4dC5zcDsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbMjldOwotKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQu Z3BfcmVnc1sxXTsKLSAjZW5kaWYKLSB9Ci0gCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjCi1pbmRleCA1OGJmYThmOC4u OGZjMzdjNDYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9w b3NpeC9zaWduYWxzX3Rlc3QuY2Mub3JpZwkyMDIwLTExLTE3IDEzOjM5OjQ3LjAwMDAwMDAwMCAt MDUwMAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFs c190ZXN0LmNjCTIwMjAtMTEtMTggMjE6MDY6MzMuNDMzNDA4NjIzIC0wNTAwCi1AQCAtNDYsOSAr NDYsOSBAQAotICAgcmV0dXJuIHNpZyA9PSBTSUdBQlJUIHx8Ci0gICAgICAgICAgc2lnID09IFNJ R0FMUk0gfHwKLSAgICAgICAgICBzaWcgPT0gU0lHQlVTIHx8Ci0tI2lmICFkZWZpbmVkKEFSQ0hf Q1BVX0FSTTY0KQotKyNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJD SF9DUFVfUFBDNjQpCi0gICAgICAgICAgc2lnID09IFNJR0ZQRSB8fAotLSNlbmRpZiAgLy8gIWRl ZmluZWQoQVJDSF9DUFVfQVJNNjQpCi0rI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02 NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2 X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKLSAgICAgICAgICBzaWcgPT0gU0lH SUxMIHx8Ci0gI2VuZGlmICAvLyBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmlu ZWQoQVJDSF9DUFVfQVJNRUwpCi1AQCAtMTE3LDkgKzExNywxMSBAQAotICAgICAgIGJyZWFrOwot ICAgICB9Ci0gCi0tI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQotKyNpZiAhZGVmaW5lZChB UkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0gICAgIC8vIEFSTTY0 IGhhcyBoYXJkd2FyZSBpbnRlZ2VyIGRpdmlzaW9uIGluc3RydWN0aW9ucyB0aGF0IGRvbuKAmXQg Z2VuZXJhdGUgYQotICAgICAvLyB0cmFwIGZvciBkaXZpZGUtYnktemVybywgc28gdGhpcyBkb2Vz buKAmXQgcHJvZHVjZSBTSUdGUEUuCi0rICAgIC8vCi0rICAgIC8vIFBQQzY0IGZpeGVkLXBvaW50 IGRpdmlzaW9uIGJ5IHplcm8gYWxzbyBkb2Vzbid0IHByb2R1Y2UgYSBTSUdGUEUuCi0gICAgIGNh c2UgU0lHRlBFOiB7Ci0gICAgICAgLy8gT3B0aW1pemF0aW9uIG1ha2VzIHRoaXMgdHJpY2t5LCBz byBnZXQgemVybyBmcm9tIGEgc3lzdGVtIGNhbGwgbGlrZWx5Ci0gICAgICAgLy8gdG8gc3VjY2Vl ZCwgYW5kIHRyeSB0byBkbyBzb21ldGhpbmcgd2l0aCB0aGUgcmVzdWx0LgotQEAgLTEzNyw3ICsx MzksNyBAQAotICAgICAgIGZzdGF0KHF1b3RpZW50LCAmc3RhdF9idWYpOwotICAgICAgIGJyZWFr OwotICAgICB9Ci0tI2VuZGlmICAvLyBBUkNIX0NQVV9BUk02NAotKyNlbmRpZiAgLy8gIWRlZmlu ZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotIAotICNpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCi0g ICAgIGNhc2UgU0lHSUxMOiB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmdu IHRoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCi1pbmRleCA3ODhkYzZjZi4uNWZkN2U4ZmQgMTAw NjQ0Ci0tLS0gdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24KLSsrKyB0aGlyZF9wYXJ0eS9kYXYx ZC9CVUlMRC5nbgotQEAgLTE4Miw2ICsxODIsOCBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWRfOGJp dCIpIHsKLSAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcwotICAgfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRl X3NvdXJjZXMKLSsgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICBz b3VyY2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKLSAgIH0KLSAKLSAgIGNmbGFncyA9IGRh djFkX2NvcHRzCi1AQCAtMjEwLDYgKzIxMiw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF8xMGJp dCIpIHsKLSAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcwotICAgfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRl X3NvdXJjZXMKLSsgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICBz b3VyY2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKLSAgIH0KLSAKLSAgIGNmbGFncyA9IGRh djFkX2NvcHRzCi1AQCAtMjU2LDYgKzI2MCwyMSBAQCBpZiAoY3VycmVudF9jcHUgPT0gIng4NiIg fHwgY3VycmVudF9jcHUgPT0gIng2NCIpIHsKLSAgICAgICAiOmRhdjFkX2NvbmZpZyIsCi0gICAg IF0KLSAKLSsgICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLSsgIH0KLSt9IGVsc2UgaWYgKGN1cnJl bnRfY3B1ID09ICJwcGM2NCIpIHsKLSsgIHN0YXRpY19saWJyYXJ5KCJkYXYxZF9wcGMiKSB7Ci0r ICAgIHNvdXJjZXMgPSBbCi0rICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmMiLAotKyAgICAg ICJsaWJkYXYxZC9zcmMvcHBjL2NwdS5oIiwKLSsgICAgXQotKwotKyAgICBjb25maWdzIC09IFsg Ii8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KLSsgICAgY29uZmlncyAr PSBbCi0rICAgICAgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOm5vX2Nocm9taXVtX2NvZGUiLAot KyAgICAgICI6ZGF2MWRfY29uZmlnIiwKLSsgICAgXQotKwotICAgICBjZmxhZ3MgPSBkYXYxZF9j b3B0cwotICAgfQotIH0KLUBAIC0yODUsNSArMzA0LDcgQEAgc3RhdGljX2xpYnJhcnkoImRhdjFk IikgewotICAgICB9Ci0gICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1cnJl bnRfY3B1ID09ICJhcm02NCIpIHsKLSAgICAgZGVwcyArPSBbICI6ZGF2MWRfYXJtIiBdCi0rICB9 IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKLSsgICAgZGVwcyArPSBbICI6ZGF2 MWRfcHBjIiBdCi0gICB9Ci0gfQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcv bGludXgvcHBjNjQvY29uZmlnLmggdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0 L2NvbmZpZy5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAuLmY2Y2E1N2Y3 Ci0tLS0gL2Rldi9udWxsCi0rKysgdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0 L2NvbmZpZy5oCi1AQCAtMCwwICsxLDM5IEBACi0rLyoKLSsgKiBBdXRvZ2VuZXJhdGVkIGJ5IHRo ZSBNZXNvbiBidWlsZCBzeXN0ZW0uCi0rICogRG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3aWxs IGJlIGxvc3QuCi0rICovCi0rCi0rI3ByYWdtYSBvbmNlCi0rCi0rI2RlZmluZSBBUkNIX0FBUkNI NjQgMAotKwotKyNkZWZpbmUgQVJDSF9BUk0gMAotKwotKyNkZWZpbmUgQVJDSF9QUEM2NExFIDEK LSsKLSsjZGVmaW5lIEFSQ0hfWDg2IDAKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKLSsKLSsj ZGVmaW5lIEFSQ0hfWDg2XzY0IDAKLSsKLSsjZGVmaW5lIENPTkZJR18xNkJQQyAxCi0rCi0rI2Rl ZmluZSBDT05GSUdfOEJQQyAxCi0rCi0rLy8gI2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9nZ2lu ZyBpcyBjb250cm9sbGVkIGJ5IENocm9taXVtCi0rCi0rI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAw Ci0rCi0rI2RlZmluZSBIQVZFX0FTTSAxCi0rCi0rI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUg MQotKwotKyNkZWZpbmUgSEFWRV9ETFNZTSAxCi0rCi0rI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAx Ci0rCi0rI2RlZmluZSBIQVZFX1BPU0lYX01FTUFMSUdOIDEKLSsKLSsjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQotKwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQu Z25pIHRoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5nbmkKLWluZGV4IDhiZWNhYzAy Li5kNWY0ZmNhYyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQu Z25pCi0rKysgdGhpcmRfcGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQotQEAgLTcxLDYg KzcxLDExIEBAIGFybV90ZW1wbGF0ZV9zb3VyY2VzID0gWwotICAgImxpYmRhdjFkL3NyYy9hcm0v bWNfaW5pdF90bXBsLmMiLAotIF0KLSAKLStwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzID0gWwotKyAg ImxpYmRhdjFkL3NyYy9wcGMvY2RlZl9pbml0X3RtcGwuYyIsCi0rICAibGliZGF2MWQvc3JjL3Bw Yy9sb29wcmVzdG9yYXRpb25faW5pdF90bXBsLmMiLAotK10KLSsKLSB0ZW1wbGF0ZV9zb3VyY2Vz ID0gWwotICAgImxpYmRhdjFkL3NyYy9jZGVmX2FwcGx5X3RtcGwuYyIsCi0gICAibGliZGF2MWQv c3JjL2NkZWZfdG1wbC5jIiwKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVf c291cmNlLnB5IHRoaXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weQotaW5kZXggOWFi NWUwMGIuLmFkM2ZlZmZlIDEwMDc1NQotLS0tIHRoaXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3Nv dXJjZS5weQotKysrIHRoaXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weQotQEAgLTUw LDcgKzUwLDggQEAgZGVmIFdyaXRlR24oZmQpOgotICAgV3JpdGVBcnJheShmZCwgImFybTMyX2Fz bV9zb3VyY2VzIiwgZ2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMvYXJtLzMyLyouUyIpKQotICAgV3Jp dGVBcnJheShmZCwgImFybTY0X2FzbV9zb3VyY2VzIiwgZ2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMv YXJtLzY0LyouUyIpKQotICAgV3JpdGVBcnJheShmZCwgImFybV90ZW1wbGF0ZV9zb3VyY2VzIiwg Z2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMvYXJtLypfdG1wbC5jIikpCi0tCi0rICBXcml0ZUFycmF5 KGZkLCAicHBjNjRfdGVtcGxhdGVfc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL3Bw Yy8qX3RtcGwuYyIpKQotKyAKLSAgIHRlbXBsYXRlX3NvdXJjZXMgPSBnbG9iLmdsb2IoImxpYmRh djFkL3NyYy8qX3RtcGwuYyIpCi0gICBXcml0ZUFycmF5KGZkLCAidGVtcGxhdGVfc291cmNlcyIs IHRlbXBsYXRlX3NvdXJjZXMpCi0gCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL2xpYmRh djFkL3NyYy9wcGMvdHlwZXMuaCB0aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5 cGVzLmgKLWluZGV4IDBiNGJkNzJmLi5hMGNhYTVlNyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9k YXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKLSsrKyB0aGlyZF9wYXJ0eS9kYXYxZC9saWJk YXYxZC9zcmMvcHBjL3R5cGVzLmgKLUBAIC01MSw0ICs1MSwxOSBAQAotICNkZWZpbmUgdTE2bF90 b19pMzIodikgKChpMzJ4NCkgdmVjX21lcmdlbCgodTE2eDgpIHYsIHZlY19zcGxhdF91MTYoMCkp KQotICNkZWZpbmUgaTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX3VucGFja2woKGkxNng4KXYp KQotIAotKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSsjdW5kZWYgdmVjX3NwbGF0cwotKyNkZWZp bmUgdmVjX3NwbGF0cyhOKSAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgX0dlbmVyaWMoKE4p LCAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICAgICB1bnNpZ25lZCBjaGFyOiAgICAg ICgodTh4MTYpKE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGNoYXI6ICAgICAgICAoKGk4eDE2KShO KSksIFwKLSsgICAgICAgIHVuc2lnbmVkIHNob3J0OiAgICAgKCh1MTZ4OCkoTikpLCBcCi0rICAg ICAgICBzaWduZWQgc2hvcnQ6ICAgICAgICgoaTE2eDgpKE4pKSwgXAotKyAgICAgICAgdW5zaWdu ZWQgaW50OiAgICAgICAoKHUzMng0KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBpbnQ6ICAgICAg ICAgKChpMzJ4NCkoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmc6ICgodTY0eDIp KE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGxvbmcgbG9uZzogICAoKGk2NHgyKShOKSkgIFwKLSsg ICAgKQotKyNlbmRpZgotKwotICNlbmRpZiAvKiBEQVYxRF9TUkNfUFBDX1RZUEVTX0ggKi8KLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIHRoaXJkX3Bh cnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotaW5kZXggZDJiYWVlOWQuLjk5NTVjZTQ0 IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotKysr IHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTM5MjIsNyArMzky Miw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKLSAgICAgICBMU1NfUkVHKDIsIGJ1Zik7Ci0g ICAgICAgTFNTX0JPRFkodm9pZCosIG1tYXAyLCAiMCIoX19yMikpOwotICAgICB9Ci0tI2Vsc2UK LSsjZWxpZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAvKiBwcGM2NCBkb2Vzbid0IGhhdmUgbW1h cDIgKi8KLSAgICAgI2RlZmluZSBfX05SX19tbWFwMiBfX05SX21tYXAyCi0gICAgIExTU19JTkxJ TkUgX3N5c2NhbGw2KHZvaWQqLCBfbW1hcDIsICAgICAgICAgICAgdm9pZCosIHMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCwgICAgICAgICAgICAgICAgICAgbCwgaW50LCAgICAg ICAgICAgICAgIHAsCi1AQCAtNDAzMyw3ICs0MDMzLDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMg ewotICAgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICBkZWZpbmVkKF9fQVJNX0FSQ0hfM19f KSB8fCBkZWZpbmVkKF9fQVJNX0VBQklfXykgfHwgICAgICAgICAgICAgICAgICAgICBcCi0gICAg ICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikgfHwg ICAgICAgICAgICAgICAgICAgXAotLSAgICAgIGRlZmluZWQoX19QUENfXykgfHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgIChkZWZp bmVkKF9fUFBDX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKSB8fCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgKGRlZmluZWQo X19zMzkwX18pICYmICFkZWZpbmVkKF9fczM5MHhfXykpCi0gICAgIC8qIE9uIHRoZXNlIGFyY2hp dGVjdHVyZXMsIGltcGxlbWVudCBtbWFwKCkgd2l0aCBtbWFwMigpLiAqLwotICAgICBMU1NfSU5M SU5FIHZvaWQqIExTU19OQU1FKG1tYXApKHZvaWQgKnMsIHNpemVfdCBsLCBpbnQgcCwgaW50IGYs IGludCBkLAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYyB0aGlyZF9w YXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotaW5kZXggYmRhYzRkNzg0Li41MWUwZjJjYWMgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKLSsrKyB0aGlyZF9wYXJ0eS9wZmZm dC9zcmMvcGZmZnQuYwotQEAgLTEwMCw2ICsxMDAsNyBAQAotICAgIEFsdGl2ZWMgc3VwcG9ydCBt YWNyb3MgCi0gKi8KLSAjaWYgIWRlZmluZWQoUEZGRlRfU0lNRF9ESVNBQkxFKSAmJiAoZGVmaW5l ZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCi0rI2luY2x1ZGUgPGFsdGl2ZWMuaD4K LSB0eXBlZGVmIHZlY3RvciBmbG9hdCB2NHNmOwotICMgIGRlZmluZSBTSU1EX1NaIDQKLSAjICBk ZWZpbmUgVlpFUk8oKSAoKHZlY3RvciBmbG9hdCkgdmVjX3NwbGF0X3U4KDApKQotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwIHRoaXJkX3BhcnR5L3Nr aWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAKLWluZGV4IDg4ZWIxYzdkLi40YmUzM2ZhNSAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCi0rKysgdGhp cmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNwcAotQEAgLTI0MCw3ICsyNDAsMTIg QEAgU3RyaW5nIHRvX3N0cmluZyhkb3VibGUgdmFsdWUpIHsKLSAgICAgaWYgKG5lZWRzRG90WmVy bykgewotICAgICAgICAgYnVmZmVyIDw8ICIuMCI7Ci0gICAgIH0KLS0gICAgcmV0dXJuIFN0cmlu ZyhidWZmZXIuc3RyKCkuY19zdHIoKSk7Ci0rCi0rICAgIHN0ZDo6c3RyaW5nIHJldChidWZmZXIu c3RyKCkpOwotKyAgICBpZiAoc2lnbmJpdCh2YWx1ZSkgJiYgcmV0WzBdID09ICcuJykgewotKyAg ICAgICAgcmV0WzBdID0gJy0nOwotKyAgICB9Ci0rICAgIHJldHVybiBTdHJpbmcocmV0LmNfc3Ry KCkpOwotIH0KLSAKLSBTS1NMX0lOVCBzdG9pKGNvbnN0IFN0cmluZyYgcykgewotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMgdGhpcmRfcGFy dHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5jCi1pbmRleCAxYjJjMmVjNy4uNzU5 M2RiYTEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3Fs aXRlMy5jCi0rKysgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5j Ci1AQCAtMTQ0MDAsNyArMTQ0MDAsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMg aWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5l ZChfTV9JWDg2KSB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQo X01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAg fHwgICAgXAotLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxf XykgfHwgZGVmaW5lZChfTV9BUk02NCkKLSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZp bmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAotKyAgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVf RU5ESUFOX18pCi0gIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYg ZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZp bmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jIHRoaXJkX3BhcnR5 L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKLWluZGV4IDE5Yzg3Njg5Li5j N2FiMDM5ZSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9k ZXYvc3FsaXRlMy5jCi0rKysgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2 L3NxbGl0ZTMuYwotQEAgLTE0NDEzLDcgKzE0NDEzLDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExv Z0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAg IHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8 IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAg ICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVk KF9feDg2KSAgIHx8ICAgIFwKLS0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9f QUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVkKF9fQVJNRUxf XykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwK LSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JE RVJfTElUVExFX0VORElBTl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0 Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKLSAg ICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYyB0aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCi1pbmRleCBlZmFlZjgxMy4uNGNkNTdkNTUg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYwotKysr IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKLUBAIC00MzIsNyArNDMy LDcgQEAgc3RydWN0IFJ0cmVlTWF0Y2hBcmcgewotICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBk ZWZpbmVkKF9faTM4Nl9fKSAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICBkZWZp bmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAg fHwgICAgXAotICAgICBkZWZpbmVkKF9NX0FNRDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8 IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICBkZWZpbmVkKF9fYXJtX18pCi0rICAgIGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVS X18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRF UiAgICAxMjM0Ci0gI2VsaWYgZGVmaW5lZChzcGFyYykgICAgfHwgZGVmaW5lZChfX3BwY19fKQot ICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgNDMyMQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9z cWxpdGVJbnQuaAotaW5kZXggMTIyZTI2YWQuLmVjMjFkY2I1IDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCi0rKysgdGhpcmRfcGFydHkvc3FsaXRlL3Ny Yy9zcmMvc3FsaXRlSW50LmgKLUBAIC04NjgsNyArODY4LDggQEAgdHlwZWRlZiBJTlQxNl9UWVBF IExvZ0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAg ICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4Nl82NCkg IHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0g ICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZp bmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVk KF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVkKF9fQVJN RUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCBc Ci0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09S REVSX0xJVFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIz NAotICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBcCi0g ICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVCX18pCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJf YmxvY2suY2MgdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZl cl9ibG9jay5jYwotaW5kZXggZGQ5YWI0NTcuLmMwMDVkOTU5IDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2Mub3JpZwky MDIwLTExLTE3IDEzOjQyOjAyLjAwMDAwMDAwMCAtMDUwMAotKysrIHRoaXJkX3BhcnR5L3dlYnJ0 Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MJMjAyMC0xMS0xOCAyMTox MTowMy4wMzk5MDUzNjAgLTA1MDAKLUBAIC0zMCwxMSArMzAsNyBAQAotICAgc3RhdGljIGJvb2wg KCpkaWZmX3Byb2MpKGNvbnN0IHVpbnQ4X3QqLCBjb25zdCB1aW50OF90KikgPSBudWxscHRyOwot IAotICAgaWYgKCFkaWZmX3Byb2MpIHsKLS0jaWYgZGVmaW5lZChXRUJSVENfQVJDSF9BUk1fRkFN SUxZKSB8fCBkZWZpbmVkKFdFQlJUQ19BUkNIX01JUFNfRkFNSUxZKQotLSAgICAvLyBGb3IgQVJN IGFuZCBNSVBTIHByb2Nlc3NvcnMsIGFsd2F5cyB1c2UgQyB2ZXJzaW9uLgotLSAgICAvLyBUT0RP KGhjbGFtKTogSW1wbGVtZW50IGEgTkVPTiB2ZXJzaW9uLgotLSAgICBkaWZmX3Byb2MgPSAmVmVj dG9yRGlmZmVyZW5jZV9DOwotLSNlbHNlCi0rI2lmIGRlZmluZWQoV0VCUlRDX0FSQ0hfWDg2X0ZB TUlMWSkKLSAgICAgYm9vbCBoYXZlX3NzZTIgPSBHZXRDUFVJbmZvKGtTU0UyKSAhPSAwOwotICAg ICAvLyBGb3IgeDg2IHByb2Nlc3NvcnMsIGNoZWNrIGlmIFNTRTIgaXMgc3VwcG9ydGVkLgotICAg ICBpZiAoaGF2ZV9zc2UyICYmIGtCbG9ja1NpemUgPT0gMzIpIHsKLUBAIC00NCw2ICs0MCwxMCBA QAotICAgICB9IGVsc2UgewotICAgICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7 Ci0gICAgIH0KLSsjZWxzZQotKyAgICAvLyBGb3Igb3RoZXIgcHJvY2Vzc29ycywgYWx3YXlzIHVz ZSBDIHZlcnNpb24uCi0rICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNp b24uCi0rICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7Ci0gI2VuZGlmCi0gICB9 Ci0gCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5o IHRoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi1pbmRleCBlZDIxNmU2 Ni4uMjVkMzZjMDcgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3Rl bS9hcmNoLmgKLSsrKyB0aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAot QEAgLTUwLDYgKzUwLDE4IEBACi0gI2VsaWYgZGVmaW5lZChfX0VNU0NSSVBURU5fXykKLSAjZGVm aW5lIFdFQlJUQ19BUkNIXzMyX0JJVFMKLSAjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJ QU4KLSsjZWxpZiBkZWZpbmVkKF9fUFBDX18pCi0rI2RlZmluZSBXRUJSVENfQVJDSF9QUENfRkFN SUxZCi0rI2lmIF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fCi0rI2Rl ZmluZSBXRUJSVENfQVJDSF9MSVRUTEVfRU5ESUFOCi0rI2Vsc2UKLSsjZGVmaW5lIFdFQlJUQ19B UkNIX0JJR19FTkRJQU4KLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX0xQNjRfXykKLSsjZGVmaW5l IFdFQlJUQ19BUkNIXzY0X0JJVFMKLSsjZWxzZQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklU UwotKyNlbmRpZgotICNlbHNlCi0gI2Vycm9yIFBsZWFzZSBhZGQgc3VwcG9ydCBmb3IgeW91ciBh cmNoaXRlY3R1cmUgaW4gcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAotICNlbmRpZgotIGRpZmYgLS1n aXQgdjgvQlVJTEQuZ24gdjgvQlVJTEQuZ24KLWluZGV4IDE2N2U2MzUwMy4uMTI1YzQ0NWVhIDEw MDY0NAotLS0tIHY4L0JVSUxELmduCi0rKysgdjgvQlVJTEQuZ24KLUBAIC02OTYsNiArNjk2LDEy IEBAIGNvbmZpZygidG9vbGNoYWluIikgewotICAgICB9Ci0gICAgIGlmIChob3N0X2J5dGVvcmRl ciA9PSAibGl0dGxlIikgewotICAgICAgIGRlZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBD X0xFIiBdCi0rICAgICAgICBjZmxhZ3MgKz0gWwotKyAgICAgICAgIyBFbmFibGUgdXNhZ2Ugb2Yg QWx0aVZlYywgVlNYLCBhbmQgb3RoZXIgUE9XRVI4IGFuZCBoaWdoZXIgZmVhdHVyZXMKLSsgICAg ICAgICItbWNwdT1wb3dlcjgiLAotKyAgICAgICAgIi1tYWx0aXZlYyIsCi0rICAgICAgICAiLW12 c3giLAotKyAgICAgIF0KLSAgICAgfSBlbHNlIGlmIChob3N0X2J5dGVvcmRlciA9PSAiYmlnIikg ewotICAgICAgIGRlZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0JFIiBdCi0gICAgICAg aWYgKGN1cnJlbnRfb3MgPT0gImFpeCIpIHsKLWRpZmYgLS1naXQgdWkvZ2wvZmVhdHVyZXMuZ25p IHVpL2dsL2ZlYXR1cmVzLmduaQotaW5kZXggY2IyYzk4NjQ5Li41ZTA5YmMxZjcgMTAwNjQ0Ci0t LS0gdWkvZ2wvZmVhdHVyZXMuZ25pCi0rKysgdWkvZ2wvZmVhdHVyZXMuZ25pCi1AQCAtMjUsNSAr MjUsNiBAQCBkZWNsYXJlX2FyZ3MoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaXNfY2hy b21lb3MgfHwgaXNfZnVjaHNpYSkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRf Y3B1ID09ICJ4ODYiIHx8IHRhcmdldF9jcHUgPT0gIng2NCIgfHwKLSAgICAgICAgICAgICAgICAg ICAgICAgICB0YXJnZXRfY3B1ID09ICJhcm0iIHx8IHRhcmdldF9jcHUgPT0gImFybTY0IiB8fAot LSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHNlbCIgfHwgdGFyZ2V0 X2NwdSA9PSAibWlwczY0ZWwiKQotKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUg PT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwiIHx8Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAicHBjNjQiKQotIH0KLWRpZmYgLS1naXQgdjgvdGVz dC9CVUlMRC5nbiB2OC90ZXN0L0JVSUxELmduCi1pbmRleCBmNmQzMDUzN2EuLjI4N2IyNzA4MCAx MDA2NDQKLS0tLSB2OC90ZXN0L0JVSUxELmduCi0rKysgdjgvdGVzdC9CVUlMRC5nbgotQEAgLTMx LDcgKzMxLDcgQEAgZ3JvdXAoImduX2FsbCIpIHsKLSAgICAgZGVwcyArPSBbCi0gICAgICAgImNj dGVzdDpjY3Rlc3QiLAotICAgICAgICJjY3Rlc3Q6Z2VuZXJhdGUtYnl0ZWNvZGUtZXhwZWN0YXRp b25zIiwKLS0gICAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0rICAgICAgIyJ1bml0dGVzdHM6 dW5pdHRlc3RzIiwKLSAgICAgXQotICAgfQotIH0KLUBAIC03Myw3ICs3Myw3IEBAIGdyb3VwKCJ2 OF9ib3RfZGVmYXVsdCIpIHsKLSAgICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCi0gICAgICJtanN1 bml0OnY4X21qc3VuaXQiLAotICAgICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKLS0gICAgInVu aXR0ZXN0czp1bml0dGVzdHMiLAotKyAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICAi d2FzbS1hcGktdGVzdHM6d2FzbV9hcGlfdGVzdHMiLAotICAgICAid2FzbS1qczp2OF93YXNtX2pz IiwKLSAgICAgIndhc20tc3BlYy10ZXN0czp2OF93YXNtX3NwZWNfdGVzdHMiLAotQEAgLTkzLDcg KzkzLDcgQEAgZ3JvdXAoInY4X2RlZmF1bHQiKSB7Ci0gICAgICJtZXNzYWdlOnY4X21lc3NhZ2Ui LAotICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKLSAgICAgIm1rZ3Jva2R1bXA6bWtncm9rZHVt cCIsCi0tICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAgIyJ1bml0dGVzdHM6dW5pdHRl c3RzIiwKLSAgICAgIndhc20tYXBpLXRlc3RzOndhc21fYXBpX3Rlc3RzIiwKLSAgICAgIndhc20t anM6djhfd2FzbV9qcyIsCi0gICAgICJ3YXNtLXNwZWMtdGVzdHM6djhfd2FzbV9zcGVjX3Rlc3Rz IiwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUgYi9zcmNwa2dzL2Nocm9t aXVtL3RlbXBsYXRlCmluZGV4IDA5OGNiOTA0ZGE5Li5jMDhjOWE2MDA0ZCAxMDA2NDQKLS0tIGEv c3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2hyb21pdW0nCiBwa2duYW1l PWNocm9taXVtCiAjIFNlZSBodHRwOi8vd3d3LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2NhbGVu ZGFyIGZvciB0aGUgbGF0ZXN0IHZlcnNpb24KLXZlcnNpb249ODguMC40MzI0LjE4MgordmVyc2lv bj04OS4wLjQzODkuNzIKIHJldmlzaW9uPTEKIGFyY2hzPSJpNjg2KiB4ODZfNjQqIGFhcmNoNjQq IGFybXY3bCogcHBjNjRsZSoiCiBzaG9ydF9kZXNjPSJHb29nbGUncyBhdHRlbXB0IGF0IGNyZWF0 aW5nIGEgc2FmZXIsIGZhc3RlciwgYW5kIG1vcmUgc3RhYmxlIGJyb3dzZXIiCkBAIC05LDcgKzks NyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmNocm9taXVtLm9yZy8i CiBkaXN0ZmlsZXM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hy b21pdW0tYnJvd3Nlci1vZmZpY2lhbC8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09MzA0MTFmYzNlYzJkMzNkZjRjNWNhZDQxZjIxYWZmYTM4MjNjODBmN2RiZDM5NGY2ZDY4 ZjlhMWU4MTAxNWI4MQorY2hlY2tzdW09OTQ2YTBiNjVhYWQxMGUwZjc3YTUzOTEwMzg5MjA5OWI3 MjM4MzEwYzczM2YyNWI0MWQ1OGI3NmY2YWMwYmM0Zgogbm9jcm9zcz15ZXMKIAogbGliMzJkaXNh YmxlZD15ZXMKQEAgLTM0LDcgKzM0LDcgQEAgbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCBndGsr LWRldmVsIGd0ayszLWRldmVsIG5zcy1kZXZlbCBwY2l1dGlscy1kZXZlbAogIGxpYlhjdXJzb3It ZGV2ZWwgbGliZmxhYy1kZXZlbCBzcGVleC1kZXZlbCBsaWJtdHAtZGV2ZWwgbGlid2VicC1kZXZl bAogIGxpYmpwZWctdHVyYm8tZGV2ZWwgbGliZXZlbnQtZGV2ZWwganNvbi1jLWRldmVsIGhhcmZi dXp6LWRldmVsCiAgbWluaXppcC1kZXZlbCBqc29uY3BwLWRldmVsIHpsaWItZGV2ZWwgbGliY2Fw LWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKLSByZTItZGV2ZWwgZm9udGNvbmZpZy1kZXZlbCBmcmVl dHlwZS1kZXZlbCBvcHVzLWRldmVsCisgcmUyLWRldmVsIGZvbnRjb25maWctZGV2ZWwgZnJlZXR5 cGUtZGV2ZWwKICBmZm1wZWctZGV2ZWwgbGlidmEtZGV2ZWwgcHl0aG9uLXNldHVwdG9vbHMgeGNi LXByb3RvCiAgJCh2b3B0X2lmIHBpcGV3aXJlIGxpYnBpcGV3aXJlMC4yLWRldmVsKSAkKHZvcHRf aWYgc25kaW8gc25kaW8tZGV2ZWwpIgogZGVwZW5kcz0ibGliZXhpZiBod2lkcyBkZXNrdG9wLWZp bGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIHhkZy11dGlscyIKQEAgLTExOSw2ICsxMTksNyBA QCBkb19jb25maWd1cmUoKSB7CiAJIyB1c2Vfc3lzdGVtX3Y4PTEKIAkjIHVzZV9zeXN0ZW1femxp Yj0xCiAJIyBiemlwMiBqc29uY3BwIG1pbml6aXAgeGRnX3V0aWxzIHNwZWV4CisJIyBvcHVzIGZh aWxzIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBzaGltIGhlYWRlciBvcHVzLmggdHJpZXMgdG8gaW5j bHVkZSA8b3B1cy5oPgogCXN5c3RlbT0iCiAJCWZmbXBlZwogCQlmbGFjCkBAIC0xMzIsNyArMTMz LDYgQEAgZG9fY29uZmlndXJlKCkgewogCQlsaWJ3ZWJwCiAJCWxpYnhtbAogCQlsaWJ4c2x0Ci0J CW9wdXMKIAkJcmUyCiAJCXNuYXBweQogCSIK --===============5363225928691358345==--