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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 17804 invoked from network); 11 Jan 2023 17:20:17 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 11 Jan 2023 17:20:17 -0000 Content-Type: multipart/mixed; boundary="===============7369689190155835037==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_chromium=3A_update_to_109=2E0=2E5414=2E74=2E?= To: ml@inbox.vuxu.org From: Duncaen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 11 Jan 2023 18:20:17 +0100 List-Id: Message-ID: <20230111172017.XVMn0-Lq8EeDKF9MxXGjBZO5BNL2Qi0IA7lPoYGvjyY@z> GitHub notification mails are now in MIME to allow UTF8. --===============7369689190155835037== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGNocm9taXVtLTEwOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDE1NzAKCmNocm9taXVtOiB1cGRhdGUgdG8gMTA5LjAu NTQxNC43NC4KW2NpIHNraXBdDQoNCiogW3hdIHg4Nl82NC1nbGliYw0KKiBbIF0geDg2XzY0LW11 c2wNCiogWyBdIGFhcmNoNjQtbXVzbA0KKiBbIF0gaTY4NgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQxNTcwLnBhdGNo IGlzIGF0dGFjaGVk --===============7369689190155835037== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-109-41570.patch" RnJvbSA0Y2FhNmFlOTNlZTZhZTJmNzUxYzdlY2NlMGM0N2RlYmU0ZTgwNjAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFdlZCwgMTEgSmFuIDIwMjMgMDE6Mjg6NDAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBjaHJvbWl1 bTogdXBkYXRlIHRvIDEwOS4wLjU0MTQuNzQuCgotLS0KIC4uLi9tdXNsLXBhdGNoZXMveHh4LXBw YzY0bGUtc3VwcG9ydC5wYXRjaCAgICB8ICAxODcgLQogLi4uL3BhdGNoZXMvYnVpbGQtYWRkLXVz ZV9jeHgxNy5wYXRjaCAgICAgICAgIHwgICAzOCArLQogLi4uL3BhdGNoZXMvZml4LWJ1aWxkLXdp dGgtb2xkLWNsYW5nLnBhdGNoICAgIHwgICAyMCArCiAuLi4vcGF0Y2hlcy9maXgtY29uc3RleHBy LW5hcnJvd2luZy5wYXRjaCAgICAgfCAgIDIxICsKIC4uLi9wYXRjaGVzL2ZpeC1tdXNsLW5vLW1h bGxpbmZvLnBhdGNoICAgICAgICB8ICAgMTEgKwogLi4uL3BhdGNoZXMvZml4LW11c2wtcHRocmVh ZC1zdGFja3NpemUucGF0Y2ggIHwgICA0MCAtCiAuLi4vY2hyb21pdW0vcGF0Y2hlcy9maXgtbmFy cm93aW5nLWNhc3QucGF0Y2ggfCAgIDUzIC0KIC4uLi9wYXRjaGVzL2ZpeC1uYXNtLW11c2wtY29u ZmlnLnBhdGNoICAgICAgICB8ICAgMTIgLQogLi4uL3BhdGNoZXMvbXVzbC1wYXJ0aXRpb24tYXRm b3JrLnBhdGNoICAgICAgIHwgICAxMSArCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbmFycm93 aW5nLWNhc3QucGF0Y2ggfCAgIDIxICsKIC4uLnVpbGQtZXJyb3Itb24tbGludXgtd2l0aC1zeXN0 ZW0temxpYi5wYXRjaCB8ICAgNDEgLQogLi4uL3BhdGNoZXMvcmVtb3ZlLXN0cmlwX2JpbmFyeS5w YXRjaCAgICAgICAgIHwgICAzMiAtCiAuLi4vcGF0Y2hlcy94eHgtcHBjNjRsZS00ay1wYWdlcy5w YXRjaCAgICAgICAgfCAgIDYwIC0KIC4uLi9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLWxp YnZweC5wYXRjaCB8ICAgMzMgLQogLi4uL3h4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5w YXRjaCAgICAgIHwgICAzMSAtCiAuLi4vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNo ICAgICAgICAgfCAzNTkwIC0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vcGF0Y2hlcy94eHgtcHBjNjRs ZS1zd2lmdHNoYWRlci5wYXRjaCAgICAgfCAgIDE4IC0KIHNyY3BrZ3MvY2hyb21pdW0vdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICB8ICAgNDEgKy0KIDE4IGZpbGVzIGNoYW5nZWQsIDEwOSBp bnNlcnRpb25zKCspLCA0MTUxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LWJ1aWxkLXdp dGgtb2xkLWNsYW5nLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2ZpeC1jb25zdGV4cHItbmFycm93aW5nLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1tdXNsLXB0aHJlYWQt c3RhY2tzaXplLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2ZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9maXgtbmFzbS1tdXNsLWNvbmZpZy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXBhcnRpdGlvbi1hdGZvcmsucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbmFycm93aW5n LWNhc3QucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv cmUtZml4LVRGTGl0ZS1idWlsZC1lcnJvci1vbi1saW51eC13aXRoLXN5c3RlbS16bGliLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3JlbW92ZS1zdHJp cF9iaW5hcnkucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMveHh4LXBwYzY0bGUtNGstcGFnZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXNhbmRib3gtbGludXgt c3RhdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94 eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5w YXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxlLXN1 cHBvcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1NWY2OWMwNzJjOC4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4 eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxODcgKzAsMCBAQAot ZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaCBzYW5kYm94 L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotaW5kZXggYTZhZWM1NDRlLi4yYTRhN2Yx YmMgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsr KyBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotQEAgLTE2LDcgKzE2LDcg QEAKLSAjaWYgZGVmaW5lZChfX21pcHNfXykKLSAvLyBzeXMvdXNlci5oIGluIGVnbGliYyBtaXNz ZXMgc2l6ZV90IGRlZmluaXRpb24KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0tI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgZGVmaW5l ZChfX0dMSUJDX18pCi0gLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAotIHR5cGVk ZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsKLSAjZW5kaWYKLUBAIC0zNjEsMTEgKzM2MSwx MSBAQCB0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3RydWN0OwotICNkZWZpbmUgU0VDQ09N UF9BUkNIIEFVRElUX0FSQ0hfUFBDNjQKLSAjZW5kaWYKLSAKLS0jZGVmaW5lIFNFQ0NPTVBfUkVH KF9jdHgsIF9yZWcpICgoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPmdwcltfcmVnXSkKLSsjZGVm aW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51 Y19tY29udGV4dC5yZWdzKS0+Z3ByW19yZWddKQotIAotICNkZWZpbmUgU0VDQ09NUF9SRVNVTFQo X2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSAjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4 KSBTRUNDT01QX1JFRyhfY3R4LCAwKQotLSNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCkt PnVjX21jb250ZXh0LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoKHN0cnVj dCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+bmlwCi0gI2RlZmluZSBTRUND T01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0gI2RlZmluZSBTRUNDT01QX1BB Uk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQpCi0gI2RlZmluZSBTRUNDT01QX1BBUk0zKF9j dHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29t cC1icGYvc3lzY2FsbC5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLWlu ZGV4IGQ1M2E3ZmY1Ni4uYzI5MGYwZTkyIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29t cC1icGYvc3lzY2FsbC5jYwotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5j YwotQEAgLTQ5OSw5ICs0OTksOSBAQCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChp bnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBjdHgpIHsKLSAgIC8vIFNhbWUgYXMgTUlQUywg bmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKLSAgIGlm IChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQwOTUpIHsKLSAgICAgcmV0X3ZhbCA9IC1y ZXRfdmFsOwotLSAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0r ICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250ZXh0LnJlZ3MpLT5jY3IgfD0gKDEg PDwgMjgpOwotICAgfSBlbHNlIHsKLS0gICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgJj0g figxIDw8IDI4KTsKLSsgICAgKChzdHJ1Y3QgcHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVn cyktPmNjciAmPSB+KDEgPDwgMjgpOwotICAgfQotICNlbmRpZgotICAgU0VDQ09NUF9SRVNVTFQo Y3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7Ci0tLS0gdGhpcmRfcGFydHkvYWJz ZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrX2NvbmZpZy5oCi0r KysgdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNs ZWNsb2NrX2NvbmZpZy5oCi1AQCAtMjIsNiArMjIsNyBAQAotIC8vIFRoZSBmb2xsb3dpbmcgcGxh dGZvcm1zIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBoYXJkd2FyZSBjb3VudGVyLgotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h YXJjaDY0X18pIHx8IFwKLSAgICAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bw Y19fKSB8fCBkZWZpbmVkKF9fcmlzY3YpIHx8ICAgICBcCi0rICAgICgoZGVmaW5lZChfX3Bvd2Vy cGNfXykgfHwgZGVmaW5lZChfX3BwY19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZp bmVkKF9fcmlzY3YpIHx8ICAgICBcCi0gICAgIGRlZmluZWQoX01fSVg4NikgfHwgKGRlZmluZWQo X01fWDY0KSAmJiAhZGVmaW5lZChfTV9BUk02NEVDKSkKLSAjZGVmaW5lIEFCU0xfSEFWRV9VTlND QUxFRF9DWUNMRUNMT0NLX0lNUExFTUVOVEFUSU9OIDEKLSAjZWxzZQotLS0tIHRoaXJkX3BhcnR5 L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAot KysrIHRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0 cmFjZV9jb25maWcuaAotQEAgLTY0LDcgKzY0LDcgQEAKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCi0gI2RlZmluZSBBQlNMX1NUQUNLVFJBQ0VfSU5MX0hF QURFUiBcCi0gICAiYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV94ODYtaW5sLmlu YyIKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19QUENfXykKLSsjZWxpZiAo ZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fUFBDX18pKSAmJiBkZWZpbmVkKF9fR0xJQkNf XykKLSAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKLSAgICJhYnNsL2RlYnVn Z2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bvd2VycGMtaW5sLmluYyIKLSAjZWxpZiBkZWZpbmVk KF9fYWFyY2g2NF9fKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbiB0 aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotaW5kZXggZjlhNjBlMzcuLjI1ZjNhMGI3IDEw MDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi0rKysgdGhpcmRfcGFydHkv YnJlYWtwYWQvQlVJTEQuZ24KLUBAIC02MzcsNiArNjM3LDcgQEAgaWYgKGlzX2xpbnV4IHx8IGlz X2FuZHJvaWQpIHsKLSAKLSAgICAgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKLSAgICAg ICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENPTlRFWFQiIF0KLSsgICAgICAgIGxpYnMgKz0gWyAi dWNvbnRleHQiIF0KLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNvdXJjZXMgKz0gWwotICAgICAg ICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIK LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8u Y2MKLWluZGV4IDAzYWZlYzdhLi4wMjY0ZWNmMSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRf aW5mby5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCi1AQCAtMjczLDYgKzI3Myw5IEBA IHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25z dCB7Ci0gCi0gI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIAotKyNpbmNsdWRlIDxhc20v ZWxmLmg+Ci0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSsKLSB1aW50cHRyX3QgVGhyZWFkSW5m bzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgewotICAgICByZXR1cm4gbWNvbnRleHQu Z3BfcmVnc1tQVF9OSVBdOwotIH0KLUBAIC0yOTAsOSArMjkzLDkgQEAgdm9pZCBUaHJlYWRJbmZv OjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAgICAgb3V0LT5j dHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0g MDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAg b3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAg ICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9y ZWdzKVtpXTsKLSAKLS0gICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVn c1tORlBSRUctMV07Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0X3QgKikm bWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsKLSAKLSAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSAgICAgICAgIG91dC0+ dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRf cmVhZGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv ZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotaW5kZXggMTA5MDQ3MGYuLmU1 ODAyMzNkIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotKysrIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29t bW9uL3Vjb250ZXh0X3JlYWRlci5jYwotQEAgLTI1Nyw2ICsyNTcsOSBAQCB2b2lkIFVDb250ZXh0 UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0 X3QgKnVjKSB7Ci0gCi0gI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIAotKyNpbmNsdWRl IDxhc20vZWxmLmg+Ci0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSsKLSB1aW50cHRyX3QgVUNv bnRleHRSZWFkZXI6OkdldFN0YWNrUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgewotICAg ICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1Bd OwotIH0KLUBAIC0yODAsOSArMjgzLDkgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNv bnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywKLSAgICAgb3V0 LT5jdHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwotICAgICAKLSAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykK LS0gICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZnBf cmVnc1tpXTsKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90 ICopJnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtpXTsKLSAKLS0gICAgb3V0LT5mbG9hdF9zYXZl LmZwc2NyID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOwotKyAgICBvdXQtPmZs b2F0X3NhdmUuZnBzY3IgPSAoKHVpbnQ2NF90ICopJnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtF TEZfTkZQUkVHLTFdOwotIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVB UkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotICAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3Zy W2ldID0KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwot aW5kZXggNWE3YWI1MGMuLmVlOGI4NThjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwot KysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxl ci9leGNlcHRpb25faGFuZGxlci5jYwotQEAgLTEwNSw2ICsxMDUsMTEgQEAKLSAjZGVmaW5lIFBS X1NFVF9QVFJBQ0VSIDB4NTk2MTZkNjEKLSAjZW5kaWYKLSAKLSsvKiBtdXNsIGhhY2ssIGNhbid0 IGluY2x1ZGUgYXNtL3B0cmFjZS5oIGFzIHRoYXQgY2F1c2VzIGNvbmZsaWN0cyAqLwotKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICFkZWZpbmVkKFBUX05JUCkKLSsjZGVmaW5lIFBUX05J UCAzMgotKyNlbmRpZgotKwotIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgewotIAotIG5hbWVz cGFjZSB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3NpZ25hbF9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAotaW5kZXggOGUzMzVhMDkuLmIyYTBmMTU1IDEw MDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Np Z25hbF9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9zaWduYWxfY29udGV4dC5oCi1AQCAtNDY5LDcgKzQ2OSw3IEBAIHN0cnVjdCBNQ29u dGV4dDY0IHsKLSAgIFNpZ25hbFRocmVhZENvbnRleHQ2NCBncF9yZWdzOwotICAgU2lnbmFsRmxv YXRDb250ZXh0NjQgIGZwX3JlZ3M7Ci0gICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsK LS0gIGludDY0X3Qgdm14X3Jlc2VydmVbNjldOwotKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVsxMDFd OwotIH07Ci0gCi0gc3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1YmxpYyBUcmFpdHM2NCB7Ci1k aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFk X2luZm8uaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9p bmZvLmgKLWluZGV4IGRlYTBkMWYzLi5iMjAzZTViMiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLSsrKyB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLUBAIC0zMCw2ICsz MCw3IEBACi0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotICNpbmNsdWRl IDxzeXMvdWNvbnRleHQuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICNlbmRpZgotIAot IG5hbWVzcGFjZSBjcmFzaHBhZCB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xzcy9saW51eF9z eXNjYWxsX3N1cHBvcnQuaCB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgK LWluZGV4IDk5NTVjZTQ0Li40YzFjYzQ4OCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9sc3MvbGlu dXhfc3lzY2FsbF9zdXBwb3J0LmgKLSsrKyB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9z dXBwb3J0LmgKLUBAIC00MjE2LDkgKzQyMTYsMTMgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewot ICAgICB9Ci0gICAjZW5kaWYKLSAgICNpZiBkZWZpbmVkKF9fTlJfZnN0YXRhdDY0KQotKyAgICAv LyBtdXNsIGRvZXMgI2RlZmluZSBmc3RhdGF0NjQgZnN0YXRhdAotKyAgICAjdW5kZWYgZnN0YXRh dDY0Ci0gICAgIExTU19JTkxJTkUgX3N5c2NhbGw0KGludCwgICBmc3RhdGF0NjQsICAgICAgICBp bnQsICAgZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCAgICAgIHAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBrZXJuZWxfc3RhdDY0ICosICAgYiwg ICAgaW50LCAgIGYpCi0rICAgIC8vIHNldCBpdCBiYWNrIGxpa2UgaXQgd2FzCi0rICAgICNkZWZp bmUgZnN0YXRhdDY0IGZzdGF0YXQKLSAgICNlbmRpZgotICAgI2lmIGRlZmluZWQoX19OUl93YWl0 cGlkKQotICAgICAvLyB3YWl0cGlkIGlzIHBvbHlmaWxsZWQgYmVsb3cgd2hlbiBub3QgYXZhaWxh YmxlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2J1aWxkLWFkZC11c2Vf Y3h4MTcucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvYnVpbGQtYWRkLXVzZV9jeHgx Ny5wYXRjaAppbmRleCAwOTFiMWM1NTM3MjcuLmI1MDgyNWZiN2UyYyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2J1aWxkLWFkZC11c2VfY3h4MTcucGF0Y2gKKysrIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2J1aWxkLWFkZC11c2VfY3h4MTcucGF0Y2gKQEAgLTEsMjYg KzEsMjIgQEAKIC0tLSBhL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgogKysrIGIvYnVp bGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCi1AQCAtMTY3LDYgKzE2NywxMCBAQAotICAgIyBF bmFibGUgLUgsIHdoaWNoIHByaW50cyB0aGUgaW5jbHVkZSB0cmVlIGR1cmluZyBjb21waWxhdGlv bi4KLSAgICMgRm9yIHVzZSBieSB0b29scy9jbGFuZy9zY3JpcHRzL2FuYWx5emVfaW5jbHVkZXMu cHkKLSAgIHNob3dfaW5jbHVkZXMgPSBmYWxzZQotKwotKyAgIyBBbGxvdyBwcm9qZWN0cyB0aGF0 IHdpc2ggdG8gc3RheSBvbiBDKysxNyB0byBvdmVycmlkZSBDaHJvbWl1bSdzIGRlZmF1bHQuCi0r ICAjIFRPRE8oY3JidWcuY29tLzE0MDIyNDkpOiBldmFsdWF0ZSByZW1vdmluZyB0aGlzIGVuZCBv ZiAyMDIzCi0rICB1c2VfY3h4MTcgPSBmYWxzZQorQEAgLTE5MSw2ICsxOTEsMTAgQEAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVu dF9jcHUgPT0gIng2NCIpKSkpCiAgfQogIAotIGRlY2xhcmVfYXJncygpIHsKLUBAIC01OTYsNyAr NjAwLDExIEBACi0gICAgIH0gZWxzZSBpZiAoaXNfbGludXgpIHsKLSAgICAgICAjIFRPRE8oY3Ji dWcuY29tLzEyODQyNzUpOiBTd2l0Y2ggdG8gQysrMjAgb24gYWxsIHBsYXRmb3Jtcy4KLSAgICAg ICBpZiAoaXNfY2xhbmcpIHsKLS0gICAgICAgIGNmbGFnc19jYyArPSBbICItc3RkPSR7c3RhbmRh cmRfcHJlZml4fSsrMjAiIF0KLSsgICAgICAgIGlmICh1c2VfY3h4MTcpIHsKLSsgICAgICAgICAg Y2ZsYWdzX2NjICs9IFsgIi1zdGQ9JHtzdGFuZGFyZF9wcmVmaXh9KysxNyIgXQotKyAgICAgICAg fSBlbHNlIHsKLSsgICAgICAgICAgY2ZsYWdzX2NjICs9IFsgIi1zdGQ9JHtzdGFuZGFyZF9wcmVm aXh9KysyMCIgXQotKyAgICAgICAgfQorK2RlY2xhcmVfYXJncygpIHsKKysgIHVzZV9jeHgxNyA9 IGZhbHNlCisrfQorKworIGlmIChpc19hbmRyb2lkIHx8IChpc19jaHJvbWVvc19hc2ggJiYgaXNf Y2hyb21lb3NfZGV2aWNlKSkgeworICAgIyBTZXQgdGhlIHBhdGggdG8gdXNlIG9yZGVyZmlsZSBm b3IgbGlua2luZyBDaHJvbWUKKyAgICMgTm90ZSB0aGF0IHRoaXMgaXMgZm9yIHVzaW5nIG9ubHkg b25lIG9yZGVyZmlsZSBmb3IgbGlua2luZworQEAgLTYwNSw3ICs2MDksNyBAQAorICAgICAgICAg Y2ZsYWdzX2NjICs9IFsgIi1mbm8tdHJpZ3JhcGhzIiBdCisgICAgICAgfQorICAgICB9IGVsc2Ug aWYgKGlzX2NsYW5nKSB7CistICAgICAgaWYgKGlzX2Nocm9tZW9zX2RldmljZSkgeworKyAgICAg IGlmIChpc19jaHJvbWVvc19kZXZpY2UgfHwgdXNlX2N4eDE3KSB7CisgICAgICAgICAjIFRPRE8o Y3JidWcuY29tLzEzOTI0NzEpOiBTdXBwb3J0IEMrKzIwIGluIENyT1MgdG9vbGNoYWluLgorICAg ICAgICAgY2ZsYWdzX2NjICs9IFsgIi1zdGQ9JHtzdGFuZGFyZF9wcmVmaXh9KysxNyIgXQogICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIFRoZSBnY2MgYm90cyBhcmUgY3VycmVudGx5IHVzaW5n IEdDQyA5LCB3aGljaCBpcyBub3QgbmV3IGVub3VnaCB0bwotICAgICAgICAgIyBzdXBwb3J0ICJj KysyMCIvImdudSsrMjAiLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Zp eC1idWlsZC13aXRoLW9sZC1jbGFuZy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9m aXgtYnVpbGQtd2l0aC1vbGQtY2xhbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5mMjMyMThlNzFlNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvZml4LWJ1aWxkLXdpdGgtb2xkLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEs MjAgQEAKKy0tLSBhL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgorKysrIGIvYnVpbGQv Y29uZmlnL2NvbXBpbGVyL0JVSUxELmduCitAQCAtODA1LDE3ICs4MDUsNiBAQAorICAgICBjZmxh Z3MgKz0gWyAiLWZjb21wbGV0ZS1tZW1iZXItcG9pbnRlcnMiIF0KKyAgIH0KKyAKKy0gICMgVXNl IERXQVJGIHNpbXBsZSB0ZW1wbGF0ZSBuYW1lcywgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlv bnM6CistICAjCistICAjICogV2luZG93cyBpcyBub3Qgc3VwcG9ydGVkIGFzIGl0IGRvZXNuJ3Qg dXNlIERXQVJGLgorLSAgIyAqIEFwcGxlIHBsYXRmb3JtcyAoZS5nLiBNYWNPUywgaVBob25lLCBp UGFkKSBhcmVuJ3Qgc3VwcG9ydGVkIGJlY2F1c2UgeGNvZGUKKy0gICMgICBsbGRiIGRvZXNuJ3Qg aGF2ZSB0aGUgbmVlZGVkIGNoYW5nZXMgeWV0LgorLSAgIyAqIEZ1Y2hzaWEgaXNuJ3Qgc3VwcG9y dGVkIGFzIHp4ZGIgZG9lc24ndCBzdXBwb3J0IHNpbXBsZSB0ZW1wbGF0ZSBuYW1lcyB5ZXQuCist ICAjIFRPRE8oY3JidWcuY29tLzEzNzkwNzApOiBSZW1vdmUgaWYgdGhlIHVwc3RyZWFtIGRlZmF1 bHQgZXZlciBjaGFuZ2VzLgorLSAgaWYgKGlzX2NsYW5nICYmICFpc19uYWNsICYmICFpc193aW4g JiYgIWlzX2FwcGxlICYmICFpc19mdWNoc2lhKSB7CistICAgIGNmbGFnc19jYyArPSBbICItZ3Np bXBsZS10ZW1wbGF0ZS1uYW1lcyIgXQorLSAgfQorLQorICAgIyBNTEdPIHNwZWNpZmljIGZsYWdz LiBUaGVzZSBmbGFncyBlbmFibGUgYW4gTUwtYmFzZWQgaW5saW5lciB0cmFpbmVkIG9uCisgICAj IENocm9tZSBvbiBBbmRyb2lkIChhcm0zMikgd2l0aCBUaGluTFRPIGVuYWJsZWQsIG9wdGltaXpp bmcgZm9yIHNpemUuCisgICAjIFRoZSAicmVsZWFzZSIgTUwgbW9kZWwgaXMgZW1iZWRkZWQgaW50 byBjbGFuZyBhcyBwYXJ0IG9mIGl0cyBidWlsZC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU3MGNhNmU2OWE4MAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaApA QCAtMCwwICsxLDIxIEBACistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS9tZWRpYS93ZWJfbWVkaWFfcGxheWVyX2ltcGwuY2Mub3JpZworKysrIGIvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vbWVkaWEvd2ViX21lZGlhX3BsYXllcl9pbXBsLmNjCitA QCAtMzg4MSwxNSArMzg4MSwxNSBAQAorICAgICBjb25zdCBUJi4uLiB2YWx1ZXMpIHsKKyAgIHN0 ZDo6c3RyaW5nIHN0cmtleSA9IHN0ZDo6c3RyaW5nKGtleSk7CisgCistICBpZiBjb25zdGV4cHIg KEZsYWdzICYga0VuY3J5cHRlZCkgeworKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtFbmNyeXB0 ZWQgIT0gMCkgeworICAgICBpZiAoaXNfZW5jcnlwdGVkXykKKyAgICAgICBVbWFGdW5jdGlvbihz dHJrZXkgKyAiLkVNRSIsIHZhbHVlcy4uLik7CisgICB9CisgCistICBpZiBjb25zdGV4cHIgKEZs YWdzICYga1RvdGFsKQorKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtUb3RhbCAhPSAwKQorICAg ICBVbWFGdW5jdGlvbihzdHJrZXkgKyAiLkFsbCIsIHZhbHVlcy4uLik7CisgCistICBpZiBjb25z dGV4cHIgKEZsYWdzICYga1BsYXliYWNrVHlwZSkgeworKyAgaWYgY29uc3RleHByIChGbGFncyAm IGtQbGF5YmFja1R5cGUgIT0gMCkgeworICAgICBhdXRvIGRlbXV4ZXJfdHlwZSA9IEdldERlbXV4 ZXJUeXBlKCk7CisgICAgIGlmICghZGVtdXhlcl90eXBlLmhhc192YWx1ZSgpKQorICAgICAgIHJl dHVybjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1uby1t YWxsaW5mby5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1uby1tYWxs aW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE3MThl Y2NiMjIwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgt bXVzbC1uby1tYWxsaW5mby5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9iYXNlL2FsbG9j YXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3NoaW0vYWxsb2NhdG9yX3NoaW1fZGVmYXVsdF9kaXNw YXRjaF90b19wYXJ0aXRpb25fYWxsb2MuY2MKKysrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlv bl9hbGxvY2F0b3Ivc2hpbS9hbGxvY2F0b3Jfc2hpbV9kZWZhdWx0X2Rpc3BhdGNoX3RvX3BhcnRp dGlvbl9hbGxvYy5jYworQEAgLTcxNyw3ICs3MTcsNyBAQAorIAorICNlbmRpZiAgLy8gIUJVSUxE RkxBRyhJU19BUFBMRSkgJiYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorIAorLSNpZiBCVUlMREZM QUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykKKysjaWYgKEJVSUxERkxBRyhJ U19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1Mp CisgU0hJTV9BTFdBWVNfRVhQT1JUIHN0cnVjdCBtYWxsaW5mbyBtYWxsaW5mbyh2b2lkKSBfX1RI Uk9XIHsKKyAgIGJhc2U6OlNpbXBsZVBhcnRpdGlvblN0YXRzRHVtcGVyIGFsbG9jYXRvcl9kdW1w ZXI7CisgICBBbGxvY2F0b3IoKS0+RHVtcFN0YXRzKCJtYWxsb2MiLCB0cnVlLCAmYWxsb2NhdG9y X2R1bXBlcik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW11c2wt cHRocmVhZC1zdGFja3NpemUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW11 c2wtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGNkNTUzMzE5MGRiOS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9maXgtbXVzbC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQw ICswLDAgQEAKLS0tLSBhL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYwot KysrIGIvYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCi1AQCAtNDM2LDgg KzQzNiwxMyBAQAotIAotIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHB0 aHJlYWRfYXR0cl90JiBhdHRyaWJ1dGVzKSB7Ci0gI2lmICFkZWZpbmVkKFRIUkVBRF9TQU5JVEla RVIpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKQotICAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSsgIC8v IG11c2wgbGliY3MgZGVmYXVsdCBpcyB0b28gc21hbGwsIHVzZSA4bWIgbGlrZSBnbGliYwotKyAg cmV0dXJuICgxIDw8IDIzKTsKLSsjZW5kaWYKLSsjZWxzZQotICAgLy8gVGhyZWFkU2FuaXRpemVy IGJsb2F0cyB0aGUgc3RhY2sgaGVhdmlseS4gRXZpZGVuY2UgaGFzIGJlZW4gdGhhdCB0aGUKLSAg IC8vIGRlZmF1bHQgc3RhY2sgc2l6ZSBpc24ndCBlbm91Z2ggZm9yIHNvbWUgYnJvd3NlciB0ZXN0 cy4KLSAgIHJldHVybiAyICogKDEgPDwgMjMpOyAgLy8gMiB0aW1lcyA4MTkySyAodGhlIGRlZmF1 bHQgc3RhY2sgc2l6ZSBvbiBMaW51eCkuCi0tLS0gYS9jaHJvbWUvYnJvd3Nlci9zaHV0ZG93bl9z aWduYWxfaGFuZGxlcnNfcG9zaXguY2MKLSsrKyBiL2Nocm9tZS9icm93c2VyL3NodXRkb3duX3Np Z25hbF9oYW5kbGVyc19wb3NpeC5jYwotQEAgLTE4OCwxMSArMTg4LDIxIEBACi0gICBnX3NodXRk b3duX3BpcGVfcmVhZF9mZCA9IHBpcGVmZFswXTsKLSAgIGdfc2h1dGRvd25fcGlwZV93cml0ZV9m ZCA9IHBpcGVmZFsxXTsKLSAjaWYgIWRlZmluZWQoQUREUkVTU19TQU5JVElaRVIpCi0rI2lmIGRl ZmluZWQoX19HTElCQ19fKQotICAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFk U3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiAyOwotICNlbHNlCi0rICAvLyBtYXRjaCB1 cCBtdXNscyAyayBQVEhSRUFEX1NUQUNLX01JTiB3aXRoIGdsaWJjcyAxNmsKLSsgIGNvbnN0IHNp emVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlO ICogMiAqIDg7Ci0rI2VuZGlmCi0rI2Vsc2UKLSAgIC8vIEFTYW4gaW5zdHJ1bWVudGF0aW9uIGJs b2F0cyB0aGUgc3RhY2sgZnJhbWVzLCBzbyB3ZSBuZWVkIHRvIGluY3JlYXNlIHRoZQotICAgLy8g c3RhY2sgc2l6ZSB0byBhdm9pZCBoaXR0aW5nIHRoZSBndWFyZCBwYWdlLgotKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykKLSAgIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNr U2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICogNDsKLSsjZWxzZQotKyAgY29uc3Qgc2l6ZV90IGtT aHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiA0ICog ODsKLSsgIC8vIG1hdGNoIHVwIG11c2xzIDJrIFBUSFJFQURfU1RBQ0tfTUlOIHdpdGggZ2xpYmNz IDE2awotKyNlbmRpZgotICNlbmRpZgotICAgU2h1dGRvd25EZXRlY3RvciogZGV0ZWN0b3IgPSBu ZXcgU2h1dGRvd25EZXRlY3RvcigKLSAgICAgICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCwgc3Rk Ojptb3ZlKHNodXRkb3duX2NhbGxiYWNrKSwgdGFza19ydW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaCBiL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGFmZDQyYTE0ODlhZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw1MyArMCwwIEBACi0tLS0gYS9iYXNlL2ZpbGVzL2ZpbGVfdXRpbF9saW51eC5jYwotKysr IGIvYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKLUBAIC0yMywxNCArMjMsMTQgQEAKLSAK LSAgIC8vIE5vdCBhbGwgcG9zc2libGUgfHN0YXRmc19idWYuZl90eXBlfCB2YWx1ZXMgYXJlIGlu IGxpbnV4L21hZ2ljLmguCi0gICAvLyBNaXNzaW5nIHZhbHVlcyBhcmUgY29waWVkIGZyb20gdGhl IHN0YXRmcyBtYW4gcGFnZS4KLS0gIHN3aXRjaCAoc3RhdGZzX2J1Zi5mX3R5cGUpIHsKLSsgIHN3 aXRjaCAoc3RhdGljX2Nhc3Q8dWludG1heF90PihzdGF0ZnNfYnVmLmZfdHlwZSkpIHsKLSAgICAg Y2FzZSAwOgotICAgICAgICp0eXBlID0gRklMRV9TWVNURU1fMDsKLSAgICAgICBicmVhazsKLSAg ICAgY2FzZSBFWFQyX1NVUEVSX01BR0lDOiAgLy8gQWxzbyBleHQzIGFuZCBleHQ0Ci0gICAgIGNh c2UgTVNET1NfU1VQRVJfTUFHSUM6Ci0gICAgIGNhc2UgUkVJU0VSRlNfU1VQRVJfTUFHSUM6Ci0t ICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihCVFJGU19TVVBFUl9NQUdJQyk6Ci0rICAgIGNhc2Ug QlRSRlNfU1VQRVJfTUFHSUM6Ci0gICAgIGNhc2UgMHg1MzQ2NTQ0RTogIC8vIE5URlMKLSAgICAg Y2FzZSAweDU4NDY1MzQyOiAgLy8gWEZTCi0gICAgIGNhc2UgMHgzMTUzNDY0QTogIC8vIEpGUwot QEAgLTQwLDE0ICs0MCwxNCBAQAotICAgICAgICp0eXBlID0gRklMRV9TWVNURU1fTkZTOwotICAg ICAgIGJyZWFrOwotICAgICBjYXNlIFNNQl9TVVBFUl9NQUdJQzoKLS0gICAgY2FzZSBzdGF0aWNf Y2FzdDxpbnQ+KDB4RkY1MzRENDIpOiAgLy8gQ0lGUwotKyAgICBjYXNlIDB4RkY1MzRENDI6ICAv LyBDSUZTCi0gICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9TTUI7Ci0gICAgICAgYnJlYWs7Ci0g ICAgIGNhc2UgQ09EQV9TVVBFUl9NQUdJQzoKLSAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX0NP REE7Ci0gICAgICAgYnJlYWs7Ci0tICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihIVUdFVExCRlNf TUFHSUMpOgotLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oUkFNRlNfTUFHSUMpOgotKyAgICBj YXNlIEhVR0VUTEJGU19NQUdJQzoKLSsgICAgY2FzZSBSQU1GU19NQUdJQzoKLSAgICAgY2FzZSBU TVBGU19NQUdJQzoKLSAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX01FTU9SWTsKLSAgICAgICBi cmVhazsKLS0tLSBhL2Jhc2Uvc3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCi0rKysgYi9iYXNlL3N5 c3RlbS9zeXNfaW5mb19wb3NpeC5jYwotQEAgLTEwMCwxMCArMTAwLDEwIEBACi0gICBpZiAoSEFO RExFX0VJTlRSKHN0YXRmcyhwYXRoLnZhbHVlKCkuY19zdHIoKSwgJnN0YXRzKSkgIT0gMCkKLSAg ICAgcmV0dXJuIGZhbHNlOwotIAotLSAgc3dpdGNoIChzdGF0cy5mX3R5cGUpIHsKLSsgIHN3aXRj aCAoc3RhdGljX2Nhc3Q8dWludG1heF90PihzdGF0cy5mX3R5cGUpKSB7Ci0gICAgIGNhc2UgVE1Q RlNfTUFHSUM6Ci0tICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihIVUdFVExCRlNfTUFHSUMpOgot LSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oUkFNRlNfTUFHSUMpOgotKyAgICBjYXNlIEhVR0VU TEJGU19NQUdJQzoKLSsgICAgY2FzZSBSQU1GU19NQUdJQzoKLSAgICAgICByZXR1cm4gdHJ1ZTsK LSAgIH0KLSAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9maXgtbmFzbS1tdXNsLWNvbmZpZy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9maXgtbmFzbS1tdXNsLWNvbmZpZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggN2EwMzM3ZjNiZjNiLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2ZpeC1uYXNtLW11c2wtY29uZmlnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAs MCBAQAotLS0tIGEvdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmgKLSsrKyBi L3RoaXJkX3BhcnR5L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oCi1AQCAtMTM5LDcgKzEzOSw5 IEBACi0gI2RlZmluZSBIQVZFX0FDQ0VTUyAxCi0gCi0gLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIGBjYW5vbmljYWxpemVfZmlsZV9uYW1lJyBmdW5jdGlvbi4gKi8KLSsjaWZkZWYgX19H TElCQ19fCi0gI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQotKyNlbmRpZgot IAotIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY3B1X3RvX2xlMTYnIGludHJpbnNp YyBmdW5jdGlvbi4gKi8KLSAvKiAjdW5kZWYgSEFWRV9DUFVfVE9fTEUxNiAqLwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wtcGFydGl0aW9uLWF0Zm9yay5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXBhcnRpdGlvbi1hdGZvcmsucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yOTEwYWEyYmJmOWIKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC1wYXJ0aXRpb24tYXRm b3JrLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlv bl9hbGxvY2F0b3IvcGFydGl0aW9uX3Jvb3QuY2MKKysrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRp dGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX3Jvb3QuY2MKK0BAIC0yMzksNyArMjM5LDcgQEAKKyAg IGlmICghZ19nbG9iYWxfaW5pdF9jYWxsZWQuY29tcGFyZV9leGNoYW5nZV9zdHJvbmcoZXhwZWN0 ZWQsIHRydWUpKQorICAgICByZXR1cm47CisgCistI2lmIEJVSUxERkxBRyhJU19MSU5VWCkgfHwg QlVJTERGTEFHKElTX0NIUk9NRU9TKQorKyNpZiAoQlVJTERGTEFHKElTX0xJTlVYKSAmJiBkZWZp bmVkKF9fR0xJQkNfXykpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykKKyAgIC8vIFdoZW4gZm9y aygpIGlzIGNhbGxlZCwgb25seSB0aGUgY3VycmVudCB0aHJlYWQgY29udGludWVzIHRvIGV4ZWN1 dGUgaW4gdGhlCisgICAvLyBjaGlsZCBwcm9jZXNzLiBJZiB0aGUgbG9jayBpcyBoZWxkLCBidXQg Km5vdCogYnkgdGhpcyB0aHJlYWQgd2hlbiBmb3JrKCkgaXMKKyAgIC8vIGNhbGxlZCwgd2UgaGF2 ZSBhIGRlYWRsb2NrLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25hcnJv d2luZy1jYXN0LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25hcnJvd2luZy1jYXN0 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDEwOTQwZWI3 ZTg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25hcnJvd2lu Zy1jYXN0LnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKK2Zyb20gdGhlIG1hbnBhZ2UgZm9yIHN0YXRm czoKKworVGhlIF9fZnN3b3JkX3QgdHlwZSB1c2VkIGZvciB2YXJpb3VzIGZpZWxkcyBpbiB0aGUg c3RhdGZzIHN0cnVjdHVyZQorZGVmaW5pdGlvbiBpcyBhIGdsaWJjIGludGVybmFsIHR5cGUsIG5v dCBpbnRlbmRlZCBmb3IgcHVibGljIHVzZS4gIFRoaXMKK2xlYXZlcyB0aGUgcHJvZ3JhbW1lciBp biBhIGJpdCBvZiBhIGNvbnVuZHJ1bSB3aGVuIHRyeWluZyB0byBjb3B5IG9yCitjb21wYXJlIHRo ZXNlIGZpZWxkcyB0byBsb2NhbCB2YXJpYWJsZXMgaW4gYSBwcm9ncmFtLiAgVXNpbmcKK3Vuc2ln bmVkwqBpbnQgZm9yIHN1Y2ggdmFyaWFibGVzIHN1ZmZpY2VzIG9uIG1vc3Qgc3lzdGVtcy4KKwor LS0tIGEvYmFzZS9zeXN0ZW0vc3lzX2luZm9fcG9zaXguY2MKKysrKyBiL2Jhc2Uvc3lzdGVtL3N5 c19pbmZvX3Bvc2l4LmNjCitAQCAtNjQsOCArNjQsOCBAQAorIAorICAgc3dpdGNoIChzdGF0cy5m X3R5cGUpIHsKKyAgICAgY2FzZSBUTVBGU19NQUdJQzoKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxp bnQ+KEhVR0VUTEJGU19NQUdJQyk6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihSQU1GU19N QUdJQyk6CisrICAgIGNhc2Ugc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihIVUdFVExCRlNfTUFH SUMpOgorKyAgICBjYXNlIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oUkFNRlNfTUFHSUMpOgor ICAgICAgIHJldHVybiB0cnVlOworICAgfQorICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3JlLWZpeC1URkxpdGUtYnVpbGQtZXJyb3Itb24tbGlu dXgtd2l0aC1zeXN0ZW0temxpYi5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9yZS1m aXgtVEZMaXRlLWJ1aWxkLWVycm9yLW9uLWxpbnV4LXdpdGgtc3lzdGVtLXpsaWIucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzZDUwNGQzZTc5Mi4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9yZS1maXgtVEZMaXRlLWJ1aWxkLWVycm9yLW9u LWxpbnV4LXdpdGgtc3lzdGVtLXpsaWIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCww IEBACi1Gcm9tIGRkYTAxYTcwNjQ1M2RlZDhjMDFjNDE3NzU3MDdjYjVlZjRlMzE2ZjggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBbmRyZXMgU2Fsb21vbiA8ZGlsaW5nZXJAcXVldWVk Lm5ldD4KLURhdGU6IFR1ZSwgMjUgT2N0IDIwMjIgMjE6MTE6NDYgKzAwMDAKLVN1YmplY3Q6IFtQ QVRDSF0gUmUtZml4IFRGTGl0ZSBidWlsZCBlcnJvciBvbiBsaW51eCB3aGVuIHVzaW5nIHRoZSBz eXN0ZW0gemxpYgotCi1JbiBjb21taXQgYWUwZjlhZGI3ZTE0YzBkMTljYTY5NWVmNmFkNDBiMzIx YThjYjY0YywgSSBmaXhlZCBzb21lIGJ1aWxkCi1lcnJvcnMgcmVsYXRlZCB0byBtaW5pemlwIHBh dGNoIGluY2x1c2lvbiBpbiBURkxpdGUuIEhvd2V2ZXIsIGFmdGVyIHRoYXQKLXdoZW4gVEZMaXRl IFN1cHBvcnQgd2FzIHJvbGxlZCB0byBIRUFELCBhIHNtYWxsIHBhcnQgb2YgdGhhdCBwYXRjaCBn b3QKLWRyb3BwZWQuIFRoZSByZXN1bHQgaXMgdGhlIGZvbGxvd2luZyBidWlsZCBlcnJvciB3aXRo IDEwNy4wLjUzMDQuNjI6Ci0KLS4uLy4uL3RoaXJkX3BhcnR5L3RmbGl0ZV9zdXBwb3J0L3NyYy90 ZW5zb3JmbG93X2xpdGVfc3VwcG9ydC9tZXRhZGF0YS9jYy91dGlscy96aXBfcmVhZG9ubHlfbWVt X2ZpbGUuY2M6MjI6MTA6IGZhdGFsIGVycm9yOiAnY29udHJpYi9taW5pemlwL2lvYXBpLmgnIGZp bGUgbm90IGZvdW5kCi0gICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0xIGVycm9y IGdlbmVyYXRlZC4KLQotVGhpcyBjb21taXQgcmUtYWRkcyB0aGUgbG9zdCBmaXguCi0KLVI9anVu em91QGNocm9taXVtLm9yZwotCi1DaGFuZ2UtSWQ6IEllOTZjMzU3MTg5NGI1MTAwYTFlMmEyNzcx ZGEyOTY5OWVmZjBiZWIzCi1SZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29v Z2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzM5NzIwODcKLVJldmlld2VkLWJ5OiBSb2Jl cnQgT2dkZW4gPHJvYmVydG9nZGVuQGNocm9taXVtLm9yZz4KLUNvbW1pdC1RdWV1ZTogUm9iZXJ0 IE9nZGVuIDxyb2JlcnRvZ2RlbkBjaHJvbWl1bS5vcmc+Ci1BdXRvLVN1Ym1pdDogQW5kcmVzIFNh bG9tb24gPGRpbGluZ2VyQHF1ZXVlZC5uZXQ+Ci1Dci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVh ZHMvbWFpbkB7IzEwNjM0Nzh9Ci0tLS0KLSAuLi4vbWV0YWRhdGEvY2MvdXRpbHMvemlwX3JlYWRv bmx5X21lbV9maWxlLmNjICAgICAgICAgICAgICAgICAgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS90ZmxpdGVfc3VwcG9ydC9zcmMvdGVuc29yZmxvd19saXRlX3N1cHBvcnQvbWV0YWRhdGEvY2Mv dXRpbHMvemlwX3JlYWRvbmx5X21lbV9maWxlLmNjIGIvdGhpcmRfcGFydHkvdGZsaXRlX3N1cHBv cnQvc3JjL3RlbnNvcmZsb3dfbGl0ZV9zdXBwb3J0L21ldGFkYXRhL2NjL3V0aWxzL3ppcF9yZWFk b25seV9tZW1fZmlsZS5jYwotaW5kZXggMzkyYjZiNDExZmUuLjUyNWFlNGEyYjQ1IDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvdGZsaXRlX3N1cHBvcnQvc3JjL3RlbnNvcmZsb3dfbGl0ZV9zdXBw b3J0L21ldGFkYXRhL2NjL3V0aWxzL3ppcF9yZWFkb25seV9tZW1fZmlsZS5jYwotKysrIGIvdGhp cmRfcGFydHkvdGZsaXRlX3N1cHBvcnQvc3JjL3RlbnNvcmZsb3dfbGl0ZV9zdXBwb3J0L21ldGFk YXRhL2NjL3V0aWxzL3ppcF9yZWFkb25seV9tZW1fZmlsZS5jYwotQEAgLTE5LDcgKzE5LDcgQEAg bGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gI2luY2x1ZGUgPGNzdGRpbz4KLSAKLSAj aW5jbHVkZSAiYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgiICAvLyBmcm9tIEBjb21fZ29vZ2xl X2Fic2wKLS0jaW5jbHVkZSAiY29udHJpYi9taW5pemlwL2lvYXBpLmgiCi0rI2luY2x1ZGUgInRo aXJkX3BhcnR5L3psaWIvY29udHJpYi9taW5pemlwL2lvYXBpLmgiCi0gCi0gbmFtZXNwYWNlIHRm bGl0ZSB7Ci0gbmFtZXNwYWNlIG1ldGFkYXRhIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL3JlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDhiMTNjNmEwNTZhOC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzIg KzAsMCBAQAotLS0tIGEvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL0JVSUxELmduLm9yaWcKLSsr KyBiL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9CVUlMRC5nbgotQEAgLTMwOCwxMSArMzA4LDcg QEAKLSAgIH0KLSB9Ci0gCi0taWYgKGlzX2xpbnV4KSB7Ci0tICBjaHJvbWVkcml2ZXJfb3V0cHV0 ID0gImNocm9tZWRyaXZlci51bnN0cmlwcGVkIgotLX0gZWxzZSB7Ci0tICBjaHJvbWVkcml2ZXJf b3V0cHV0ID0gImNocm9tZWRyaXZlciIKLS19Ci0rY2hyb21lZHJpdmVyX291dHB1dCA9ICJjaHJv bWVkcml2ZXIiCi0gCi0gZXhlY3V0YWJsZSgiJGNocm9tZWRyaXZlcl9vdXRwdXQiKSB7Ci0gICB0 ZXN0b25seSA9IHRydWUKLUBAIC0zMzYsMTYgKzMzMiw2IEBACi0gICB9Ci0gfQotIAotLWlmIChp c19saW51eCkgewotLSAgc3RyaXBfYmluYXJ5KCJjaHJvbWVkcml2ZXIiKSB7Ci0tICAgIHRlc3Rv bmx5ID0gdHJ1ZQotLSAgICBiaW5hcnlfaW5wdXQgPSAiJHJvb3Rfb3V0X2Rpci8kY2hyb21lZHJp dmVyX291dHB1dCIKLS0gICAgc3ltYm9sX291dHB1dCA9ICIkcm9vdF9vdXRfZGlyL2Nocm9tZWRy aXZlci5kZWJ1ZyIKLS0gICAgc3RyaXBwZWRfYmluYXJ5X291dHB1dCA9ICIkcm9vdF9vdXRfZGly L2Nocm9tZWRyaXZlciIKLS0gICAgZGVwcyA9IFsgIjokY2hyb21lZHJpdmVyX291dHB1dCIgXQot LSAgfQotLX0KLS0KLSBweXRob25fbGlicmFyeSgiY2hyb21lZHJpdmVyX3B5X3Rlc3RzIikgewot ICAgdGVzdG9ubHkgPSB0cnVlCi0gICBkZXBzID0gWwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLTRrLXBhZ2VzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL3h4eC1wcGM2NGxlLTRrLXBhZ2VzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAyOGM0YWQzNWYxNGUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtNGstcGFnZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw2MCArMCwwIEBACi1jb21taXQgNDU4MDlmODViYzM1MjRmODY3ZTZlOTU0ZjQ0NGZkZGQyMzMz MjQ1YQotQXV0aG9yOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0ZTogICBGcmkgSmFu IDcgMTg6MTg6NTIgMjAyMiArMDEwMAotCi0gICAgc3dpdGNoIHBwYzY0IHRvIDRrIHBhZ2VzCi0g ICAgCi0gICAgc2luY2UgdGhlIHBhcnRpdGlvbiBhbGxvY2F0b3IgYXBwZWFycyB0byBoYXRlIGxh cmdlciBjb25zdGFudHMKLSAgICBhbmQgYXQgdGhpcyBwb2ludCBlcnJvcnMgYXQgY29tcGlsZSB0 aW1lIGFuZCBpIGFtIG5vdCB3aWxsaW5nCi0gICAgdG8gd2FkZSB0aHJvdWdoIHRoaXMgcGlsZSBv ZiBjdXJzZSBhbmQgd2UgdXNlIDRrIGtlcm5lbHMgYW55d2F5LAotICAgIGFzc3VtZSA0SyBwYWdl cyBmb3IgcHBjNjQKLQotZGlmZiAtLWdpdCBhL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxv Y2F0b3IvcGFnZV9hbGxvY2F0b3JfY29uc3RhbnRzLmggYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRp b25fYWxsb2NhdG9yL3BhZ2VfYWxsb2NhdG9yX2NvbnN0YW50cy5oCi1pbmRleCBiZmQ1NzUzLi4w NDUwODJiIDEwMDY0NAotLS0tIGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9w YWdlX2FsbG9jYXRvcl9jb25zdGFudHMuaAotKysrIGIvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9u X2FsbG9jYXRvci9wYWdlX2FsbG9jYXRvcl9jb25zdGFudHMuaAotQEAgLTY5LDcgKzY5LDcgQEAg bmFtZXNwYWNlIGJhc2UgewotCi0gUEFHRV9BTExPQ0FUT1JfQ09OU1RBTlRTX0RFQ0xBUkVfQ09O U1RFWFBSIFBBX0FMV0FZU19JTkxJTkUgc2l6ZV90Ci0gUGFnZUFsbG9jYXRpb25HcmFudWxhcml0 eVNoaWZ0KCkgewotLSNpZiBCVUlMREZMQUcoSVNfV0lOKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0KQotKyNpZiBCVUlMREZMQUcoSVNfV0lOKQotICAgLy8gTW9kZXJuIHBwYzY0IHN5c3RlbXMg c3VwcG9ydCA0a0IgKHNoaWZ0ID0gMTIpIGFuZCA2NGtCIChzaGlmdCA9IDE2KSBwYWdlCi0gICAv LyBzaXplcy4gIFNpbmNlIDY0a0IgaXMgdGhlIGRlIGZhY3RvIHN0YW5kYXJkIG9uIHRoZSBwbGF0 Zm9ybSBhbmQgYmluYXJpZXMKLSAgIC8vIGNvbXBpbGVkIGZvciA2NGtCIGFyZSBsaWtlbHkgdG8g d29yayBvbiA0a0Igc3lzdGVtcywgNjRrQiBpcyBhIGdvb2QgY2hvaWNlCi1kaWZmIC0tZ2l0IGEv YmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NfY29uc3Rh bnRzLmggYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxv Y19jb25zdGFudHMuaAotaW5kZXggMGI5MjYwZC4uM2UwNTRlYyAxMDA2NDQKLS0tLSBhL2Jhc2Uv YWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2NvbnN0YW50cy5o Ci0rKysgYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxv Y19jb25zdGFudHMuaAotQEAgLTkwLDExICs5MCw2IEBACi0gUGFydGl0aW9uUGFnZVNoaWZ0KCkg ewotICAgcmV0dXJuIDE2OyAgLy8gNjQgS2lCCi0gfQotLSNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjQpCi0tUEFHRV9BTExPQ0FUT1JfQ09OU1RBTlRTX0RFQ0xBUkVfQ09OU1RFWFBSIFBBX0FM V0FZU19JTkxJTkUgc2l6ZV90Ci0tUGFydGl0aW9uUGFnZVNoaWZ0KCkgewotLSAgcmV0dXJuIDE4 OyAgLy8gMjU2IEtpQgotLX0KLSAjZWxpZiAoQlVJTERGTEFHKElTX0FQUExFKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzY0X0JJVFMpKSB8fCBcCi0gICAgIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRl ZmluZWQoQVJDSF9DUFVfQVJNNjQpKQotIFBBR0VfQUxMT0NBVE9SX0NPTlNUQU5UU19ERUNMQVJF X0NPTlNURVhQUiBQQV9BTFdBWVNfSU5MSU5FIHNpemVfdAotLS0tIGEvYmFzZS9hbGxvY2F0b3Iv cGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NfZm9yd2FyZC5oCi0rKysgYi9iYXNl L2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY19mb3J3YXJkLmgK LUBAIC0yNSwxMiArMjUsMTcgQEAKLSAvLyB0aGUgc2Vjb25kIG9uZSAxNi4gV2UgY291bGQgdGVj aG5pY2FsbHkgcmV0dXJuIHNvbWV0aGluZyBkaWZmZXJlbnQgZm9yCi0gLy8gbWFsbG9jKCkgYW5k IG9wZXJhdG9yIG5ldygpLCBidXQgdGhpcyB3b3VsZCBjb21wbGljYXRlIHRoaW5ncywgYW5kIG1v c3Qgb2YKLSAvLyBvdXIgYWxsb2NhdGlvbnMgYXJlIHByZXN1bWFibHkgY29taW5nIGZyb20gb3Bl cmF0b3IgbmV3KCkgYW55d2F5LgotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rLyogd2Ug d2FudCB0aGlzIHRvIGJlIDE2IGhlcmUgYWx3YXlzICovCi0rY29uc3RleHByIHNpemVfdCBrQWxp Z25tZW50ID0gMTY7Ci0rI2Vsc2UKLSBjb25zdGV4cHIgc2l6ZV90IGtBbGlnbm1lbnQgPQotICAg ICBzdGQ6Om1heChhbGlnbm9mKG1heF9hbGlnbl90KSwKLSAgICAgICAgICAgICAgc3RhdGljX2Nh c3Q8c2l6ZV90PihfX1NURENQUF9ERUZBVUxUX05FV19BTElHTk1FTlRfXykpOwotIHN0YXRpY19h c3NlcnQoa0FsaWdubWVudCA8PSAxNiwKLSAgICAgICAgICAgICAgICJQYXJ0aXRpb25BbGxvYyBk b2Vzbid0IHN1cHBvcnQgYSBmdW5kYW1lbnRhbCBhbGlnbm1lbnQgbGFyZ2VyICIKLSAgICAgICAg ICAgICAgICJ0aGFuIDE2IGJ5dGVzLiIpOwotKyNlbmRpZgotIAotIGNvbnN0ZXhwciBib29sIFRo cmVhZFNhZmUgPSB0cnVlOwotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L3h4eC1wcGM2NGxlLWxpYnZweC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgt cHBjNjRsZS1saWJ2cHgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjMDNh ZDRhNjVlYi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgt cHBjNjRsZS1saWJ2cHgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1jb21t aXQgOTgxNDM3YmM4NDZmY2RiODU0MDYyZTg5ZmQzZDg2ZjExMmU1ZjQyNgotQXV0aG9yOiBxNjYg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0ZTogICBTYXQgSnVuIDI1IDEyOjM1OjM3IDIwMjIg KzAyMDAKLQotICAgIFVzZSBnZW5lcmljIHRhcmdldCBmb3Igbm93LgotICAgIAotICAgIFRoaXMg aXMgYmVjYXVzZSB0aGUgc291cmNlIHRyZWUgaXMgbWlzc2luZyB2c3ggb3B0aW1pemF0aW9ucyB0 aGF0Ci0gICAgdGhlbiBkbyBub3QgZ2V0IGluY2x1ZGVkIGFuZCByZXN1bHQgaW4gZmFpbGVkIGxp bmtpbmcgc3VjaCBhczoKLSAgICAKLSAgICBsZC5sbGQ6IGVycm9yOiB1bmRlZmluZWQgc3ltYm9s OiB2cHhfbXNlMTZ4MTZfdnN4Ci0KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJ2cHgvZ2Vu ZXJhdGVfZ25pLnNoIGIvdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaAotaW5kZXgg NzQyOTA4MC4uNDNlZTI5YSAxMDA3NTUKLS0tLSBhL3RoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0 ZV9nbmkuc2gKLSsrKyBiL3RoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2gKLUBAIC00 MDUsNyArNDA1LDcgQEAKLSBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L21pcHM2NGVsICItLXRhcmdl dD1taXBzNjQtbGludXgtZ2NjICR7YWxsX3BsYXRmb3Jtc30iCi0gZ2VuX2NvbmZpZ19maWxlcyBs aW51eC9sb29uZ2FyY2ggXAotICAgIi0tdGFyZ2V0PWxvb25nYXJjaDY0LWxpbnV4LWdjYyAke2Fs bF9wbGF0Zm9ybXN9IgotLWdlbl9jb25maWdfZmlsZXMgbGludXgvcHBjNjQgIi0tdGFyZ2V0PXBw YzY0bGUtbGludXgtZ2NjICR7YWxsX3BsYXRmb3Jtc30iCi0rZ2VuX2NvbmZpZ19maWxlcyBsaW51 eC9wcGM2NCAiLS10YXJnZXQ9Z2VuZXJpYy1nbnUgJHthbGxfcGxhdGZvcm1zfSIKLSBnZW5fY29u ZmlnX2ZpbGVzIGxpbnV4L2dlbmVyaWMgIi0tdGFyZ2V0PWdlbmVyaWMtZ251ICRISUdIQkQgJHth bGxfcGxhdGZvcm1zfSIKLSBnZW5fY29uZmlnX2ZpbGVzIHdpbi9hcm02NCBcCi0gICAiLS10YXJn ZXQ9YXJtNjQtd2luNjQtdnMxNSAke2FsbF9wbGF0Zm9ybXN9ICR7SElHSEJEfSIKLUBAIC00Njgs NyArNDY4LDcgQEAKLSBnZW5fcnRjZF9oZWFkZXIgbGludXgvbWlwc2VsIG1pcHNlbAotIGdlbl9y dGNkX2hlYWRlciBsaW51eC9taXBzNjRlbCBtaXBzNjRlbAotIGdlbl9ydGNkX2hlYWRlciBsaW51 eC9sb29uZ2FyY2ggbG9vbmdhcmNoCi0tZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L3BwYzY0IHBwYwot K2dlbl9ydGNkX2hlYWRlciBsaW51eC9wcGM2NCBnZW5lcmljCi0gZ2VuX3J0Y2RfaGVhZGVyIGxp bnV4L2dlbmVyaWMgZ2VuZXJpYwotIGdlbl9ydGNkX2hlYWRlciB3aW4vYXJtNjQgYXJtdjgKLSBn ZW5fcnRjZF9oZWFkZXIgd2luL2lhMzIgeDg2ICIke3JlcXVpcmVfc3NlMn0iCmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0 LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXNhbmRib3gtbGlu dXgtc3RhdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJmYjVkNDk0YjA2 Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxl LXNhbmRib3gtbGludXgtc3RhdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAK LS0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3RhdC5oCi0rKysgYi9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N0YXQuaAotQEAgLTE1NSw2ICsxNTUs MjggQEAgc3RydWN0IGtlcm5lbF9zdGF0IHsKLSAgIHVuc2lnbmVkIGludCBfX3VudXNlZDQ7Ci0g ICB1bnNpZ25lZCBpbnQgX191bnVzZWQ1OwotIH07Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotK3N0cnVjdCBrZXJuZWxfc3RhdCB7Ci0rICB1bnNpZ25lZCBsb25nCXN0X2RldjsKLSsg IHVuc2lnbmVkIGxvbmcJc3RfaW5vOwotKyAgdW5zaWduZWQgbG9uZwlzdF9ubGluazsKLSsgIHVu c2lnbmVkIGludAlzdF9tb2RlOwotKyAgdW5zaWduZWQgaW50CXN0X3VpZDsKLSsgIHVuc2lnbmVk IGludAlzdF9naWQ7Ci0rICB1bnNpZ25lZCBsb25nCXN0X3JkZXY7Ci0rICBsb25nCQlzdF9zaXpl OwotKyAgdW5zaWduZWQgbG9uZwlzdF9ibGtzaXplOwotKyAgdW5zaWduZWQgbG9uZwlzdF9ibG9j a3M7Ci0rICB1bnNpZ25lZCBsb25nCXN0X2F0aW1lXzsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfYXRp bWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25nCXN0X210aW1lXzsKLSsgIHVuc2lnbmVkIGxvbmcJ c3RfbXRpbWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25nCXN0X2N0aW1lXzsKLSsgIHVuc2lnbmVk IGxvbmcJc3RfY3RpbWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25nCV9fdW51c2VkNDsKLSsgIHVu c2lnbmVkIGxvbmcJX191bnVzZWQ1OwotKyAgdW5zaWduZWQgbG9uZwlfX3VudXNlZDY7Ci0rfTsK LSAjZW5kaWYKLSAKLSAvLyBPbiAzMi1iaXQgc3lzdGVtcywgd2UgZGVmYXVsdCB0byB0aGUgNjQt Yml0IHN0YXQgc3RydWN0IGxpa2UgbGliYwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMGJjNTA1MzU4OTE2Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNTkwICsw LDAgQEAKLWNvbW1pdCAyYzAxM2EzMTdiMTExNGVmNjdjZGJiYzMwODI0YjI4OTA3YjllYTk0Ci1B dXRob3I6IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0ZTogICBXZWQg TWFyIDMgMTk6MDg6MjkgMjAyMSArMDEwMAotCi0gICAgcHBjNjRsZSBzdXBwb3J0Ci0KLWRpZmYg LS1naXQgYS9idWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkgYi9idWlsZC9kb3dubG9h ZF9uYWNsX3Rvb2xjaGFpbnMucHkKLWluZGV4IDI4NmE5MmEyNy4uZWMzNmE4NWQzIDEwMDc1NQot LS0tIGEvYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5Ci0rKysgYi9idWlsZC9kb3du bG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLUBAIC0xMyw2ICsxMywxMCBAQCBpbXBvcnQgc3lzCi0g Ci0gCi0gZGVmIE1haW4oYXJncyk6Ci0rICAjIElmIGBkaXNhYmxlX25hY2w9MWAgaXMgaW4gR1lQ X0RFRklORVMsIGV4aXQKLSsgIGlmICdkaXNhYmxlX25hY2w9MScgaW4gb3MuZW52aXJvbi5nZXQo J0dZUF9ERUZJTkVTJywgJycpOgotKyAgICByZXR1cm4gMAotKwotICAgc2NyaXB0X2RpciA9IG9z LnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKQotICAgc3JjX2RpciA9IG9z LnBhdGguZGlybmFtZShzY3JpcHRfZGlyKQotICAgbmFjbF9kaXIgPSBvcy5wYXRoLmpvaW4oc3Jj X2RpciwgJ25hdGl2ZV9jbGllbnQnKQotLS0tIGEvY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlM RC5nbgotKysrIGIvY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgotQEAgLTk3LDggKzk3 LDYgQEAKLSAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL3hkZy1taW1lIiwKLSAg ICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL3hkZy1zZXR0aW5ncyIsCi0gICAgICAg ICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9sb2NhbGVzL2VuLVVTLnBhayIsCi0tICAgICAg ICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL21hbmlmZXN0Lmpzb24iLAot LSAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9wcmVsb2FkZWRf ZGF0YS5wYiIsCi0gICAgICAgICAgICAgICAgICAgXQotIAotIGFjdGlvbl9mb3JlYWNoKCJjYWxj dWxhdGVfZGViX2RlcGVuZGVuY2llcyIpIHsKLUBAIC0zNzcsNyArMzc3LDYgQEAKLSAgICAgIi8v Y2hyb21lIiwKLSAgICAgIi8vY2hyb21lOnBhY2tlZF9yZXNvdXJjZXMiLAotICAgICAiLy9jaHJv bWUvYnJvd3Nlci9lbnRlcnByaXNlL2Nvbm5lY3RvcnMvZGV2aWNlX3RydXN0L2tleV9tYW5hZ2Vt ZW50L2luc3RhbGxlci9tYW5hZ2VtZW50X3NlcnZpY2U6Y2hyb21lX21hbmFnZW1lbnRfc2Vydmlj ZSIsCi0tICAgICIvL2Nocm9tZS9icm93c2VyL3Jlc291cmNlcy9tZWRpYS9tZWlfcHJlbG9hZDpj b21wb25lbnQiLAotICAgICAiLy9jb21wb25lbnRzL2NyYXNoL2NvcmUvYXBwOmNocm9tZV9jcmFz aHBhZF9oYW5kbGVyIiwKLSAgICAgIi8vc2FuZGJveC9saW51eDpjaHJvbWVfc2FuZGJveCIsCi0g ICBdCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9mZWF0dXJlcy5nbmkgYi9zYW5kYm94L2ZlYXR1cmVz LmduaQotaW5kZXggZGIzMGFlNmQ2Li45ZGMwOWJmNTMgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2Zl YXR1cmVzLmduaQotKysrIGIvc2FuZGJveC9mZWF0dXJlcy5nbmkKLUBAIC0xMSw3ICsxMSw4IEBA IGltcG9ydCgiLy9idWlsZC9jb25maWcvbmFjbC9jb25maWcuZ25pIikKLSB1c2Vfc2VjY29tcF9i cGYgPSAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pZCkgJiYKLSAgICAgICAg ICAgICAgICAgICAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwgY3VycmVudF9jcHUgPT0gIng2NCIg fHwKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9j cHUgPT0gImFybTY0IiB8fAotLSAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAibWlw c2VsIiB8fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiKQotKyAgICAgICAgICAgICAgICAgICBj dXJyZW50X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiIHx8Ci0r ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpCi0gCi0gdXNlX3NlY2Nv bXBfYnBmID0gdXNlX3NlY2NvbXBfYnBmIHx8IGlzX25hY2xfbm9uc2ZpCi0gCi1kaWZmIC0tZ2l0 IGEvc2FuZGJveC9saW51eC9CVUlMRC5nbiBiL3NhbmRib3gvbGludXgvQlVJTEQuZ24KLWluZGV4 IGU5YTk0YjQ2MS4uY2NhMWE1ZGE1IDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9CVUlMRC5n bgotKysrIGIvc2FuZGJveC9saW51eC9CVUlMRC5nbgotQEAgLTQyNyw2ICs0MjcsOCBAQCBjb21w b25lbnQoInNhbmRib3hfc2VydmljZXMiKSB7Ci0gCi0gc291cmNlX3NldCgic2FuZGJveF9zZXJ2 aWNlc19oZWFkZXJzIikgewotICAgc291cmNlcyA9IFsKLSsgICAgInN5c3RlbV9oZWFkZXJzL3Bw YzY0X2xpbnV4X3N5c2NhbGxzLmgiLAotKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhf dWNvbnRleHQuaCIsCi0gICAgICJzeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5o IiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIiwKLSAgICAgInN5 c3RlbV9oZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIiwKLWRpZmYgLS1naXQgYS9zYW5kYm94 L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaCBiL3NhbmRib3gvbGludXgvYnBm X2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCi1pbmRleCAzMTM1MTFmMjIuLjBjYTNhMzI2ZiAx MDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5o Ci0rKysgYi9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAotQEAg LTU2LDYgKzU2LDEzIEBACi0gI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgX19OUl9zeXNjYWxs cwotICNkZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCi0gCi0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKwotKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy91bmlzdGQuaD4K LSsjZGVmaW5lIE1JTl9TWVNDQUxMIDB1Ci0rI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgX19O Ul9zeXNjYWxscwotKyNkZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCi0rCi0g I2Vsc2UKLSAjZXJyb3IgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSIKLSAjZW5kaWYKLWRpZmYg LS1naXQgYS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaCBiL3NhbmRib3gv bGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1pbmRleCAxYTQwN2I5NTIuLmE2YWVjNTQ0 ZSAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi0r KysgYi9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotQEAgLTE2LDYgKzE2 LDkgQEAKLSAjaWYgZGVmaW5lZChfX21pcHNfXykKLSAvLyBzeXMvdXNlci5oIGluIGVnbGliYyBt aXNzZXMgc2l6ZV90IGRlZmluaXRpb24KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKy8vIE1hbnVhbGx5IGRlZmluZSBncmVnX3Qgb24gcHBjNjQK LSt0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBncmVnX3Q7Ci0gI2VuZGlmCi0gI2VuZGlmCi0g Ci1AQCAtMzQ2LDYgKzM0OSw1MSBAQCBzdHJ1Y3QgcmVnc19zdHJ1Y3QgewotICNkZWZpbmUgU0VD Q09NUF9QVF9QQVJNNChfcmVncykgKF9yZWdzKS5yZWdzWzNdCi0gI2RlZmluZSBTRUNDT01QX1BU X1BBUk01KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbNF0KLSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTYo X3JlZ3MpIChfcmVncykucmVnc1s1XQotKwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotKwotK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgcmVn c19zdHJ1Y3Q7Ci0rCi0rI2lmZGVmIEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4KLSsjZGVmaW5lIFNF Q0NPTVBfQVJDSCBBVURJVF9BUkNIX1BQQzY0TEUKLSsjZWxzZQotKyNkZWZpbmUgU0VDQ09NUF9B UkNIIEFVRElUX0FSQ0hfUFBDNjQKLSsjZW5kaWYKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfUkVHKF9j dHgsIF9yZWcpICgoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPmdwcltfcmVnXSkKLSsKLSsjZGVm aW5lIFNFQ0NPTVBfUkVTVUxUKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0rI2RlZmluZSBT RUNDT01QX1NZU0NBTEwoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMCkKLSsjZGVmaW5lIFNFQ0NP TVBfSVAoX2N0eCkgKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5uaXAKLSsjZGVmaW5lIFNFQ0NP TVBfUEFSTTEoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSsjZGVmaW5lIFNFQ0NPTVBfUEFS TTIoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNCkKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTMoX2N0 eCkgU0VDQ09NUF9SRUcoX2N0eCwgNSkKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTQoX2N0eCkgU0VD Q09NUF9SRUcoX2N0eCwgNikKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTUoX2N0eCkgU0VDQ09NUF9S RUcoX2N0eCwgNykKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTYoX2N0eCkgU0VDQ09NUF9SRUcoX2N0 eCwgOCkKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfTlJfSURYIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9z ZWNjb21wX2RhdGEsIG5yKSkKLSsjZGVmaW5lIFNFQ0NPTVBfQVJDSF9JRFggKG9mZnNldG9mKHN0 cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJjaCkpCi0rI2RlZmluZSBTRUNDT01QX0lQX01TQl9J RFggXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25f cG9pbnRlcikgKyA0KQotKyNkZWZpbmUgU0VDQ09NUF9JUF9MU0JfSURYIFwKLSsgIChvZmZzZXRv ZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9uX3BvaW50ZXIpICsgMCkKLSsj ZGVmaW5lIFNFQ0NPTVBfQVJHX01TQl9JRFgobnIpIFwKLSsgIChvZmZzZXRvZihzdHJ1Y3QgYXJj aF9zZWNjb21wX2RhdGEsIGFyZ3MpICsgOCAqIChucikgKyA0KQotKyNkZWZpbmUgU0VDQ09NUF9B UkdfTFNCX0lEWChucikgXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwg YXJncykgKyA4ICogKG5yKSArIDApCi0rCi0rI2RlZmluZSBTRUNDT01QX1BUX1JFU1VMVChfcmVn cykgKF9yZWdzKS5ncHJbM10KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfU1lTQ0FMTChfcmVncykgKF9y ZWdzKS5ncHJbMF0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfSVAoX3JlZ3MpIChfcmVncykubmlwCi0r I2RlZmluZSBTRUNDT01QX1BUX1BBUk0xKF9yZWdzKSAoX3JlZ3MpLmdwclszXQotKyNkZWZpbmUg U0VDQ09NUF9QVF9QQVJNMihfcmVncykgKF9yZWdzKS5ncHJbNF0KLSsjZGVmaW5lIFNFQ0NPTVBf UFRfUEFSTTMoX3JlZ3MpIChfcmVncykuZ3ByWzVdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk00 KF9yZWdzKSAoX3JlZ3MpLmdwcls2XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNShfcmVncykg KF9yZWdzKS5ncHJbN10KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTYoX3JlZ3MpIChfcmVncyku Z3ByWzhdCi0rCi0gI2Vsc2UKLSAjZXJyb3IgVW5zdXBwb3J0ZWQgdGFyZ2V0IHBsYXRmb3JtCi0g Ci1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5l X3BvbGljeS5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9w b2xpY3kuY2MKLWluZGV4IDZhMWVjMjM4OS4uZjIwYzU4MmRkIDEwMDY0NAotLS0tIGEvc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwotKysrIGIvc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwotQEAgLTg4 LDcgKzg4LDggQEAgYm9vbCBJc0Jhc2VsaW5lUG9saWN5V2F0Y2hlZChpbnQgc3lzbm8pIHsKLSAg ICAgICAgICBTeXNjYWxsU2V0czo6SXNQcmN0bChzeXNubykgfHwKLSAgICAgICAgICBTeXNjYWxs U2V0czo6SXNQcm9jZXNzR3JvdXBPclNlc3Npb24oc3lzbm8pIHx8Ci0gI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgICAgICBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5c25vKSB8fAot ICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYXJtX18pCi1AQCAtMjI3LDcgKzIyOCw3IEBAIFJlc3Vs dEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVkX2Vycm5vLAotICAgfQotIAot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgaWYgKHN5c25vID09IF9f TlJfbW1hcCkKLSAgICAgcmV0dXJuIFJlc3RyaWN0TW1hcEZsYWdzKCk7Ci0gI2VuZGlmCi1AQCAt MjQ1LDcgKzI0Niw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVu aWVkX2Vycm5vLAotICAgICByZXR1cm4gUmVzdHJpY3RQcmN0bCgpOwotIAotICNpZiBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg XAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoc3lzbm8gPT0gX19OUl9zb2NrZXRwYWly KSB7Ci0gICAgIC8vIE9ubHkgYWxsb3cgQUZfVU5JWCwgUEZfVU5JWC4gQ3Jhc2ggaWYgYW55dGhp bmcgZWxzZSBpcyBzZWVuLgotICAgICBzdGF0aWNfYXNzZXJ0KEFGX1VOSVggPT0gUEZfVU5JWCwK LUBAIC0yODUsNyArMjg2LDggQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBm c19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0g ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFS Q0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIGlm IChTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5c25vKSkKLSAgICAgcmV0dXJuIFJlc3RyaWN0 U29ja2V0Y2FsbENvbW1hbmQoKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjIGIvc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5jYwot aW5kZXggMDFjMDQ2ZGRhLi43ZTVhNmJlODIgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCTIwMjEtMDQtMTUg MTM6MTE6MTAuNDgxNTc5NDcwIC0wNDAwCi0rKysgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCTIwMjEtMDQtMTUgMTM6MTI6NDMu NTI0ODMxMzc2IC0wNDAwCi1AQCAtMzAyLDcgKzMwMiw3IEBACi0gVEVTVF9CQVNFTElORV9TSUdT WVMoX19OUl9zeXNsb2cpCi0gVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl90aW1lcl9jcmVhdGUp Ci0gCi0tI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRf XykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05S X2lub3RpZnlfaW5pdCkKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3ZzZXJ2ZXIpCi0gI2Vu ZGlmCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5 c19oYW5kbGVycy5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNf aGFuZGxlcnMuY2MKLWluZGV4IDAxYzA0NmRkYS4uN2U1YTZiZTgyIDEwMDY0NAotLS0tIGEvc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5jYwotKysrIGIv c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5jYwotQEAg LTM1OCw3ICszNTgsMTYgQEAKLSAgIGlmIChhcmdzLm5yID09IF9fTlJfZnN0YXRhdF9kZWZhdWx0 KSB7Ci0gICAgIGlmICgqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oYXJncy5hcmdzWzFd KSA9PSAnXDAnICYmCi0gICAgICAgICBhcmdzLmFyZ3NbM10gPT0gc3RhdGljX2Nhc3Q8dWludDY0 X3Q+KEFUX0VNUFRZX1BBVEgpKSB7Ci0tICAgICAgcmV0dXJuIHN5c2NhbGwoX19OUl9mc3RhdF9k ZWZhdWx0LCBzdGF0aWNfY2FzdDxpbnQ+KGFyZ3MuYXJnc1swXSksCi0rICAgICAgICAgIGludCBm ZCA9IHN0YXRpY19jYXN0PGludD4oYXJncy5hcmdzWzBdKTsKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICAgIC8vIE9uIHBwYzY0K2dsaWJjLCBzb21lIHN5c2NhbGxzIHNlZW0gdG8g YWNjaWRlbnRhbGx5IG5lZ2F0ZSB0aGUgZmlyc3QKLSsgICAgICAvLyBwYXJhbWV0ZXIgd2hpY2gg Y2F1c2VzIGNoZWNrcyBhZ2FpbnN0IGl0IHRvIGZhaWwuIEZvciBub3csIG1hbnVhbGx5Ci0rICAg ICAgLy8gbmVnYXRlIHRoZW0gYmFjay4KLSsgICAgICAvLyBUT0RPOiBJbnZlc3RpZ2F0ZSB0aGUg cm9vdCBjYXVzZSBhbmQgZml4IGluIGdsaWJjCi0rICAgICAgaWYgKGZkIDwgMCkKLSsgICAgICAg IGZkID0gLWZkOwotKyNlbmRpZgotKyAgICAgIHJldHVybiBzeXNjYWxsKF9fTlJfZnN0YXRfZGVm YXVsdCwgZmQsCi0gICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxkZWZhdWx0 X3N0YXRfc3RydWN0Kj4oYXJncy5hcmdzWzJdKSk7Ci0gICAgIH0KLSAgICAgcmV0dXJuIC1yZWlu dGVycHJldF9jYXN0PGludHB0cl90Pihmc19kZW5pZWRfZXJybm8pOwotZGlmZiAtLWdpdCBhL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJp Y3Rpb25zLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFy YW1ldGVyc19yZXN0cmljdGlvbnMuY2MKLWluZGV4IDJhOTdkMzkxNi4uOGU4MWFhNmNmIDEwMDY0 NAotLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1l dGVyc19yZXN0cmljdGlvbnMuY2MJMjAyMS0wNC0xNCAxNDo0MTowOC4wMDAwMDAwMDAgLTA0MDAK LSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRl cnNfcmVzdHJpY3Rpb25zLmNjCTIwMjEtMDQtMTUgMTM6MTc6NTcuODA4NzE1NzMzIC0wNDAwCi1A QCAtMzcsNyArMzcsOCBAQAotIAotICNpZiAoQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZM QUcoSVNfQ0hST01FT1NfTEFDUk9TKSkgJiYgXAotICAgICAhZGVmaW5lZChfX2FybV9fKSAmJiAh ZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgICAgICAgICAgICAgXAotLSAgICAhZGVmaW5lZChQVFJB Q0VfR0VUX1RIUkVBRF9BUkVBKQotKyAgICAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVB KSAmJiAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAhZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotIC8vIEFsc28gaW5jbHVkZSBhc20vcHRyYWNlLWFiaS5oIHNpbmNlIHB0cmFjZS5oIGluIG9s ZGVyIGxpYmMgKGZvciBpbnN0YW5jZQotIC8vIHRoZSBvbmUgaW4gVWJ1bnR1IDE2LjA0IExUUykg aXMgbWlzc2luZyBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLgotIC8vIGFzbS9wdHJhY2UtYWJpLmgg ZG9lc24ndCBleGlzdCBvbiBhcm0zMiBhbmQgUFRSQUNFX0dFVF9USFJFQURfQVJFQSBpc24ndAot QEAgLTQ1LDYgKzQ2LDExIEBACi0gI2luY2x1ZGUgPGFzbS9wdHJhY2UtYWJpLmg+Ci0gI2VuZGlm Ci0gCi0rLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0 ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCi0rI2lmZGVmIF9fcG93ZXJwYzY0 X18KLSsjaW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRpZgotKwotICNpZiBCVUlMREZMQUcoSVNf QU5EUk9JRCkKLSAKLSAjaWYgIWRlZmluZWQoRl9EVVBGRF9DTE9FWEVDKQotQEAgLTk5LDYgKzEw NSwxNCBAQAotICAgcmV0dXJuIHRydWU7Ci0gI2Vsc2UKLSAgIHJldHVybiBmYWxzZTsKLSsjZW5k aWYKLSt9Ci0rCi0raW5saW5lIGJvb2wgSXNBcmNoaXRlY3R1cmVQUEM2NCgpIHsKLSsjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgcmV0dXJuIHRydWU7Ci0rI2Vsc2UKLSsgIHJldHVybiBm YWxzZTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtMjM5LDYgKzI1NCw4IEBACi0gICB1aW50NjRfdCBr T0xhcmdlRmlsZUZsYWcgPSBPX0xBUkdFRklMRTsKLSAgIGlmIChJc0FyY2hpdGVjdHVyZVg4Nl82 NCgpIHx8IElzQXJjaGl0ZWN0dXJlSTM4NigpIHx8IElzQXJjaGl0ZWN0dXJlTWlwcygpKQotICAg ICBrT0xhcmdlRmlsZUZsYWcgPSAwMTAwMDAwOwotKyAgZWxzZSBpZiAoSXNBcmNoaXRlY3R1cmVQ UEM2NCgpKQotKyAgICBrT0xhcmdlRmlsZUZsYWcgPSAwMjAwMDAwOwotIAotICAgY29uc3QgQXJn PGludD4gY21kKDEpOwotICAgY29uc3QgQXJnPGxvbmc+IGxvbmdfYXJnKDIpOwotQEAgLTI1Niw3 ICsyNzMsMTYgQEAKLSAgICAgICAgICAgICAgIEZfU0VUTEtXLAotICAgICAgICAgICAgICAgRl9H RVRMSywKLSAgICAgICAgICAgICAgIEZfRFVQRkQsCi0tICAgICAgICAgICAgICBGX0RVUEZEX0NM T0VYRUMpLAotKyAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVDCi0rI2lmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSsvLyBPbiBQUEM2NCwgRl9TRVRMSywgRl9HRVRMSywgRl9TRVRMS1cgYXJl IGRlZmluZWQgYXMgdGhlIDY0LWJpdCB2YXJpYW50cwotKy8vIGJ1dCBnbGliYyB3aWxsIHNvbWV0 aW1lcyBzdGlsbCB1c2UgdGhlIDMyLWJpdCB2ZXJzaW9ucy4gQWxsb3cgYm90aC4KLSsgICAgICAg ICAgICAgICwKLSsgICAgICAgICAgICAgIDUsIC8qIEZfR0VUTEsgKDMyKSAqLwotKyAgICAgICAg ICAgICAgNiwgLyogRl9TRVRMSyAoMzIpICovCi0rICAgICAgICAgICAgICA3ICAvKiBGX1NFVExL VyAoMzIpICovCi0rI2VuZGlmCi0rCSAgICAgKSwKLSAgICAgICAgICAgICAgQWxsb3coKSkKLSAg ICAgICAuQ2FzZShGX1NFVEZMLAotICAgICAgICAgICAgIElmKChsb25nX2FyZyAmIH5rQWxsb3dl ZE1hc2spID09IDAsIEFsbG93KCkpLkVsc2UoQ3Jhc2hTSUdTWVMoKSkpCi1AQCAtMjY2LDcgKzI5 Miw3IEBACi0gICAvLyBjbGFuZy1mb3JtYXQgb24KLSB9Ci0gCi0tI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBSZXN1bHRFeHByIFJlc3Ry aWN0U29ja2V0Y2FsbENvbW1hbmQoKSB7Ci0gICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBhcmUgdW5h YmxlIHRvIHJlc3RyaWN0IHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8KLSAgIC8vIHNvY2tldHBhaXIo MikuIFdoaWxzdCBpbml0aWFsbHkgc291bmRpbmcgYmFkLCBpdCdzIG5vdGV3b3J0aHkgdGhhdCB2 ZXJ5Ci1AQCAtNDE5LDcgKzQ0NSw3IEBACi0gI2VuZGlmCi0gICByZXR1cm4gU3dpdGNoKHJlcXVl c3QpCi0gICAgICAgLkNBU0VTKCgKLS0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmICFk ZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICAgICAg ICAgICAgICAgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9HRVRGUFJFR1MsIFBUUkFDRV9HRVRfVEhS RUFEX0FSRUEsCi0gICAgICAgICAgICAgICAgICBQVFJBQ0VfR0VUUkVHU0VULAotICNlbmRpZgot ZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Bh cmFtZXRlcnNfcmVzdHJpY3Rpb25zLmggYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCi1pbmRleCBiYTQyODlmMDUuLjlh NGQ1YWIyZCAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLSsrKyBiL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLUBAIC00 OCw3ICs0OCw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RN cHJvdGVjdEZsYWdzKCk7Ci0gLy8gT19OT05CTE9DSyB8IE9fU1lOQyB8IE9fTEFSR0VGSUxFIHwg T19DTE9FWEVDIHwgT19OT0FUSU1FLgotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4 cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCk7Ci0gCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBSZXN0cmljdCBzb2NrZXRjYWxs KDIpIHRvIG9ubHkgYWxsb3cgc29ja2V0cGFpcigyKSwgc2VuZCgyKSwgcmVjdigyKSwKLSAvLyBz ZW5kdG8oMiksIHJlY3Zmcm9tKDIpLCBzaHV0ZG93bigyKSwgc2VuZG1zZygyKSBhbmQgcmVjdm1z ZygyKS4KLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0U29ja2V0 Y2FsbENvbW1hbmQoKTsKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9zZXRzLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfc2V0cy5jYwotaW5kZXggNjQyZGY3MjA3Li4zNGY0N2ViNzMgMTAwNjQ0Ci0tLS0g YS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi0rKysg Yi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1AQCAt MjksNyArMjksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzeXNu bykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0dGltZW9mZGF5Ogot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3RpbWU6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNTIsMTIgKzUz LDE0IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHN5c25vKSB7Ci0g ICAgIGNhc2UgX19OUl9jbG9ja19uYW5vc2xlZXBfdGltZTY0OiAgLy8gUGFyYW1ldGVycyBmaWx0 ZXJlZCBieSBSZXN0cmljdENsb2NrSUQoKS4KLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfZnRpbWU6ICAvLyBPYnNvbGV0ZS4KLSAjZW5kaWYKLSAgICAg Y2FzZSBfX05SX3NldHRpbWVvZmRheTogIC8vIFByaXZpbGVnZWQuCi0gI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3N0aW1lOgotICNlbmRpZgotICAgICBkZWZhdWx0Ogot QEAgLTEzNSw3ICsxMzgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5 c25vKSB7Ci0gICAgIGNhc2UgX19OUl9mYWNjZXNzYXQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBl cnJuby4KLSAgICAgY2FzZSBfX05SX2ZjaG1vZGF0OgotICAgICBjYXNlIF9fTlJfZmNob3duYXQ6 ICAvLyBTaG91bGQgYmUgY2FsbGVkIGNob3duYXQgPwotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfbmV3ZnN0YXRhdDogIC8vIGZzdGF0YXQoKS4gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0g I2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0gICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQotQEAgLTE1NCw3ICsxNTcsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50 IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9tZW1mZF9jcmVhdGU6Ci0gICAgIGNhc2UgX19OUl9t a2RpcmF0OgotICAgICBjYXNlIF9fTlJfbWtub2RhdDoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykK LSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfb2xkbHN0YXQ6Ci0gICAgIGNhc2UgX19OUl9vbGRzdGF0OgotICNlbmRpZgotQEAg LTE2OCw3ICsxNzEsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25v KSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zdGF0ZnM6ICAvLyBFUEVSTSBub3QgYSB2YWxp ZCBlcnJuby4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9zdGF0ZnM2NDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N5bWxpbmth dDoKLUBAIC0xNzgsNyArMTgyLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGlu dCBzeXNubykgewotICAgICBjYXNlIF9fTlJfdHJ1bmNhdGU2NDoKLSAjZW5kaWYKLSAgICAgY2Fz ZSBfX05SX3VubGlua2F0OgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl91dGltZToKLSAjZW5kaWYKLSAgICAgY2Fz ZSBfX05SX3V0aW1lbnNhdDogIC8vIE5ldy4KLUBAIC0yMDMsNyArMjA4LDggQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3RlbUFjY2Vzc1ZpYUZkKGludCBzeXNubykgewotICNl bmRpZgotICAgICAgIHJldHVybiB0cnVlOwotIC8vIFRPRE8oamxuKTogdGhlc2Ugc2hvdWxkIGJl IGRlbmllZCBncmFjZWZ1bGx5IGFzIHdlbGwgKG1vdmVkIGJlbG93KS4KLS0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf ZmFkdmlzZTY0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gI2lmIGRl ZmluZWQoX19pMzg2X18pCi1AQCAtMjE2LDExICsyMjIsMTIgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBbGxvd2VkRmlsZVN5c3RlbUFjY2Vzc1ZpYUZkKGludCBzeXNubykgewotICAgICBjYXNlIF9f TlJfZmxvY2s6ICAgICAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gICAgIGNhc2UgX19O Ul9mc3RhdGZzOiAgICAvLyBHaXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB3aG9sZSBmaWxlc3lz dGVtLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0g ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFS Q0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX2ZzdGF0ZnM2NDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2ZzeW5jOiAgLy8g RVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05S X29sZGZzdGF0OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLUBAIC0yMjgsNiArMjM1LDggQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3RlbUFjY2Vzc1ZpYUZkKGludCBzeXNu bykgewotICAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFs aWQgZXJybm8uCi0gI2VsaWYgZGVmaW5lZChfX2FybV9fKQotICAgICBjYXNlIF9fTlJfYXJtX3N5 bmNfZmlsZV9yYW5nZTogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgICAgY2FzZSBfX05SX3N5bmNfZmlsZV9yYW5nZTI6IC8vIEVQ RVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNlbmRpZgotICAgICBkZWZhdWx0OgotICAgICAgIHJl dHVybiBmYWxzZTsKLUBAIC0yNDgsNyArMjU3LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5p ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2Ug X19OUl9nZXRkZW50czY0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3JlYWRkaXI6Ci0gI2VuZGlmCi0gICAgICAg cmV0dXJuIHRydWU7Ci1AQCAtMjg5LDcgKzI5OSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2V0 U2ltcGxlSWQoaW50IHN5c25vKSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNQcm9jZXNzUHJpdmls ZWdlQ2hhbmdlKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9f TlJfY2Fwc2V0OgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p Ci0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfaW9wZXJtOiAgLy8gSW50ZWwgcHJpdmls ZWdlLgotICAgICBjYXNlIF9fTlJfaW9wbDogICAgLy8gSW50ZWwgcHJpdmlsZWdlLgotICNlbmRp ZgotQEAgLTM0MCw4ICszNTAsMTEgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkU2lnbmFs SGFuZGxpbmcoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9ydF9zaWdyZXR1cm46Ci0gICAg IGNhc2UgX19OUl9ydF9zaWd0aW1lZHdhaXQ6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyNpZm5kZWYgX19wb3dlcnBjNjRfXwotICAgICBjYXNlIF9fTlJf cnRfc2lndGltZWR3YWl0X3RpbWU2NDoKLSsjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NpZ2FjdGlv bjoKLSAgICAgY2FzZSBfX05SX3NpZ3Byb2NtYXNrOgotICAgICBjYXNlIF9fTlJfc2lncmV0dXJu OgotQEAgLTM1Nyw3ICszNzAsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxI YW5kbGluZyhpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NpZ25hbGZkNDoK LSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2Ug X19OUl9zaWdwZW5kaW5nOgotICAgICBjYXNlIF9fTlJfc2lnc3VzcGVuZDoKLSAjZW5kaWYKLUBA IC0zODEsNyArMzk1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25G ZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2R1cDM6Ci0gI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NodXRkb3duOgotICNl bmRpZgotICAgICAgIHJldHVybiB0cnVlOwotQEAgLTQxNCw3ICs0MjgsNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewotICAgICBj YXNlIF9fTlJfZXhpdF9ncm91cDoKLSAgICAgY2FzZSBfX05SX3dhaXQ0OgotICAgICBjYXNlIF9f TlJfd2FpdGlkOgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl93YWl0cGlkOgotICNl bmRpZgotICAgICAgIHJldHVybiB0cnVlOwotQEAgLTQzMSw3ICs0NDUsNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewotICNlbmRp ZgotICAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgotICAgICBjYXNlIF9fTlJfdW5zaGFy ZToKLS0jaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNp ZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3Zmb3JrOgotICNlbmRpZgotICAgICBkZWZh dWx0OgotQEAgLTQ4NCw3ICs0OTgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRP ck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKLSAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgZGVm YXVsdDoKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRl ZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfc29ja2V0cGFpcjogIC8vIFdlIHdpbGwgd2FudCB0byBpbnNwZWN0IGl0cyBhcmd1bWVudC4K LSAjZW5kaWYKLSAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtNDk0LDcgKzUwOCw3IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotIGJv b2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0g ICBzd2l0Y2ggKHN5c25vKSB7Ci0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0 X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX2FjY2VwdDoKLSAgICAgY2FzZSBfX05SX2FjY2VwdDQ6Ci0gICAgIGNh c2UgX19OUl9iaW5kOgotQEAgLTUwOSw3ICs1MjMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Rl bmllZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotIH0KLSAKLSAjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotIC8vIEJpZyBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMu Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKGludCBzeXNubykgewotICAgc3dpdGNo IChzeXNubykgewotQEAgLTUyMyw3ICs1MzgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tl dENhbGwoaW50IHN5c25vKSB7Ci0gfQotICNlbmRpZgotIAotLSNpZiBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8 IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIGJvb2wgU3lzY2FsbFNldHM6OklzTmV0 d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewot ICAgICBjYXNlIF9fTlJfZ2V0cGVlcm5hbWU6Ci1AQCAtNTQ4LDcgKzU2NCw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUFjY2VzcyhpbnQgc3lzbm8pIHsKLSAgICAg Y2FzZSBfX05SX21pbmNvcmU6Ci0gICAgIGNhc2UgX19OUl9tbG9ja2FsbDoKLSAjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX21tYXA6Ci0gI2VuZGlm Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotQEAgLTU3 OCw3ICs1OTQsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5 c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9sc2VlazoKLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9f bGxzZWVrOgotICNlbmRpZgotICNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLUBAIC01OTgsMjYg KzYxNSwyOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl9yZWFkdjoKLSAgICAgY2FzZSBfX05SX3ByZWFkNjQ6Ci0gI2lm IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVjdjoKLSAjZW5kaWYKLSAjaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVjdmZyb206 ICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KLSAgICAgY2FzZSBfX05SX3JlY3Ztc2c6ICAgLy8g Q291bGQgc3BlY2lmeSBzb3VyY2UuCi0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zZWxl Y3Q6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9fbmV3c2VsZWN0OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYXJtX18p IHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX3NlbmQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRl ZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NlbmRtc2c6ICAvLyBDb3VsZCBzcGVjaWZ5 IGRlc3RpbmF0aW9uLgotICAgICBjYXNlIF9fTlJfc2VuZHRvOiAgIC8vIENvdWxkIHNwZWNpZnkg ZGVzdGluYXRpb24uCi0gI2VuZGlmCi1AQCAtNjczLDcgKzY5Miw4IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGludCBzeXNubykgewotICAgICAgIHJldHVybiB0 cnVlOwotICAgICBjYXNlIF9fTlJfZ2V0cHJpb3JpdHk6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbmljZToKLSAjZW5kaWYKLSAg ICAgY2FzZSBfX05SX3NldHByaW9yaXR5OgotQEAgLTY4NSw3ICs3MDUsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlcihpbnQgc3lzbm8pIHsKLSBib29sIFN5c2Nh bGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykg ewotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX2JkZmx1c2g6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9rZXhlY19sb2FkOgotQEAg LTcwMSw3ICs3MjIsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBz eXNubykgewotIAotIGJvb2wgU3lzY2FsbFNldHM6OklzS2VybmVsTW9kdWxlKGludCBzeXNubykg ewotICAgc3dpdGNoIChzeXNubykgewotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9jcmVhdGVfbW9kdWxlOgotICAg ICBjYXNlIF9fTlJfZ2V0X2tlcm5lbF9zeW1zOiAgLy8gU2hvdWxkIEVOT1NZUy4KLSAgICAgY2Fz ZSBfX05SX3F1ZXJ5X21vZHVsZToKLUBAIC03MzQsNyArNzU2LDggQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNGc0NvbnRyb2woaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9zd2Fwb2ZmOgotICAg ICBjYXNlIF9fTlJfc3dhcG9uOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2Ug X19OUl91bW91bnQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91bW91bnQyOgotQEAgLTc1MCw3 ICs3NzMsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc051bWEoaW50IHN5c25vKSB7Ci0gICAgIGNh c2UgX19OUl9nZXRjcHU6Ci0gICAgIGNhc2UgX19OUl9tYmluZDoKLSAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0t ICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX21pZ3JhdGVfcGFnZXM6Ci0gI2Vu ZGlmCi0gICAgIGNhc2UgX19OUl9tb3ZlX3BhZ2VzOgotQEAgLTc4NSwxNCArODA4LDE1IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzR2xvYmFsUHJvY2Vzc0Vudmlyb25tZW50KGludCBzeXNubykgewot ICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfYWNjdDogIC8vIFByaXZpbGVnZWQu Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVk KF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9n ZXRybGltaXQ6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19h cm1fXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl91Z2V0cmxpbWl0OgotICNlbmRpZgot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl91bGltaXQ6Ci0gI2VuZGlm Ci0gICAgIGNhc2UgX19OUl9nZXRydXNhZ2U6Ci1AQCAtODI2LDcgKzg1MCw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzR2xvYmFsU3lzdGVtU3RhdHVzKGludCBzeXNubykgewotICNlbmRpZgotICAg ICBjYXNlIF9fTlJfc3lzaW5mbzoKLSAgICAgY2FzZSBfX05SX3VuYW1lOgotLSNpZiBkZWZpbmVk KF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0gICAgIGNhc2UgX19OUl9vbGR1bmFtZToKLSAgICAgY2FzZSBfX05SX29sZG9sZHVuYW1l OgotICNlbmRpZgotQEAgLTg5Miw4ICs5MTYsMTYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0 ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pIHsKLSB9Ci0gI2VuZGlmCi0gCi0rLyogc2hpdHR5IGhh Y2sgYXJvdW5kIFZvaWQncyA0LjE5IGtlcm5lbCBoZWFkZXJzIG1pc3NpbmcgdGhvc2UgbnVtYmVy cyAqLwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICFkZWZpbmVkKF9fTlJfc2htZ2V0 KQotKyNkZWZpbmUgX19OUl9zaG1nZXQgMzk1Ci0rI2RlZmluZSBfX05SX3NobWN0bCAzOTYKLSsj ZGVmaW5lIF9fTlJfc2htYXQgMzk3Ci0rI2RlZmluZSBfX05SX3NobWR0IDM5OAotKyNlbmRpZgot KwotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCi0gLy8gVGhlc2UgZ2l2 ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBhbmQgYnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJv eC4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKSB7 Ci1AQCAtOTI1LDcgKzk1Nyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVk1lc3NhZ2VR dWV1ZShpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot IC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCi0gYm9vbCBTeXNjYWxs U2V0czo6SXNTeXN0ZW1WSXBjKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotQEAg LTk0NSw3ICs5NzgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FueVN5c3RlbVYoaW50IHN5c25v KSB7Ci0gICByZXR1cm4gSXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKHN5c25vKSB8fCBJc1N5c3RlbVZT ZW1hcGhvcmVzKHN5c25vKSB8fAotICAgICAgICAgIElzU3lzdGVtVlNoYXJlZE1lbW9yeShzeXNu byk7Ci0gI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8 IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgcmV0dXJuIElzU3lzdGVtVklwYyhz eXNubyk7Ci0gI2VuZGlmCi0gfQotQEAgLTEwMDIsNyArMTAzNiw4IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzRmFOb3RpZnkoaW50IHN5c25vKSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNUaW1lcihp bnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dldGl0aW1l cjoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfYWxhcm06Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXRpdGlt ZXI6Ci1AQCAtMTA4NCwxOCArMTExOSwyMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc01pc2MoaW50 IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9zeW5jZnM6Ci0gICAgIGNhc2UgX19OUl92aGFuZ3Vw OgotIC8vIFRoZSBzeXN0ZW0gY2FsbHMgYmVsb3cgYXJlIG5vdCBpbXBsZW1lbnRlZC4KLS0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfYWZzX3N5c2NhbGw6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX2JyZWFrOgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9nZXRwbXNnOgot ICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkg fHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9ndHR5Ogot ICAgICBjYXNlIF9fTlJfaWRsZToKLSAgICAgY2FzZSBfX05SX2xvY2s6Ci1AQCAtMTEwMywyMCAr MTE0MiwyMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc01pc2MoaW50IHN5c25vKSB7Ci0gICAgIGNh c2UgX19OUl9wcm9mOgotICAgICBjYXNlIF9fTlJfcHJvZmlsOgotICNlbmRpZgotLSNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18p Ci0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2Ug X19OUl9wdXRwbXNnOgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pCi0gICAgIGNh c2UgX19OUl9zZWN1cml0eToKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAot LSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAg ICBjYXNlIF9fTlJfc3R0eToKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNp ZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3R1eGNhbGw6Ci0gI2VuZGlmCi0tI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNp ZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX3ZzZXJ2ZXI6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1kaWZmIC0t Z2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oIGIv c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi1pbmRleCA5 MjM1MzNlYzkuLjQxMWY3MmFjZCAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAotKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi1AQCAtNDMsMTMgKzQzLDE0IEBAIGNsYXNzIFNBTkRC T1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKLSAgIHN0YXRpYyBib29sIElzRGVuaWVkR2V0T3JNb2Rp ZnlTb2NrZXQoaW50IHN5c25vKTsKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8g QmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KLSAgIHN0YXRpYyBib29s IElzU29ja2V0Q2FsbChpbnQgc3lzbm8pOwotICNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICBzdGF0aWMgYm9vbCBJc05ldHdvcmtTb2NrZXRJbmZvcm1h dGlvbihpbnQgc3lzbm8pOwotICNlbmRpZgotIAotQEAgLTc2LDcgKzc3LDcgQEAgY2xhc3MgU0FO REJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewotICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2VtYXBo b3JlcyhpbnQgc3lzbm8pOwotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot KyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwK LSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf NjRfQklUUykpCi0gICAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFu ZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgotICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2hh cmVkTWVtb3J5KGludCBzeXNubyk7Ci1AQCAtODgsNyArODksOCBAQCBjbGFzcyBTQU5EQk9YX0VY UE9SVCBTeXNjYWxsU2V0cyB7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCi0gICBzdGF0aWMg Ym9vbCBJc1N5c3RlbVZJcGMoaW50IHN5c25vKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmL3N5c2NhbGwuY2MKLWluZGV4IGU0N2U5OGJmNS4uZDUzYTdmZjU2IDEwMDY0NAotLS0tIGEv c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi0rKysgYi9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLUBAIC0xOCw3ICsxOCw3IEBAIG5hbWVzcGFjZSBzYW5k Ym94IHsKLSBuYW1lc3BhY2UgewotIAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkp IHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAotLSAgICBkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKQotKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBk ZWZpbmVkIChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gLy8gTnVtYmVyIHRoYXQncyBub3QgY3Vy cmVudGx5IHVzZWQgYnkgYW55IExpbnV4IGtlcm5lbCBBQklzLgotIGNvbnN0IGludCBrSW52YWxp ZFN5c2NhbGxOdW1iZXIgPSAweDM1MWQzOwotICNlbHNlCi1AQCAtMzEwLDEyICszMTAsNTYgQEAg YXNtKC8vIFdlIG5lZWQgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSBrZXJuZWwgZXhhY3RseSB3aGVy ZSB3ZSBtYWRlIGEKLSAgICAgLy8gRW50ZXIgdGhlIGtlcm5lbAotICAgICAic3ZjIDBcbiIKLSAg ICAgIjI6cmV0XG4iCi0rICAgICIuY2ZpX2VuZHByb2NcbiIKLSsgICAgIi5zaXplIFN5c2NhbGxB c20sIC4tU3lzY2FsbEFzbVxuIgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAg Ii50ZXh0XG4iCi0rICAgICIuYWxpZ24gNFxuIgotKyAgICAiLnR5cGUgU3lzY2FsbEFzbSBAZnVu Y3Rpb25cbiIKLSsgICAgIlN5c2NhbGxBc206XG4iCi0rICAgICIuY2ZpX3N0YXJ0cHJvY1xuIgot KwotKyAgICAvLyBDaGVjayBpZiByMyBpcyBuZWdhdGl2ZQotKyAgICAiY21wZGkgMywgMFxuIgot KyAgICAiYmd0IDJmXG4iCi0rCi0rICAgIC8vIExvYWQgYWRkcmVzcyBvZiAzZiBpbnRvIHIzIGFu ZCByZXR1cm4KLSsgICAgIm1mbHIgMTBcbiIKLSsgICAgImJsIDFmXG4iCi0rICAgICIxOiBtZmxy IDNcbiIKLSsgICAgIm10bHIgMTBcbiIKLSsgICAgImFkZGkgMywgMywgNCoxM1xuIgotKyAgICAi YmxyXG4iCi0rCi0rICAgIC8vIExvYWQgYXJndW1lbnRzIGZyb20gYXJyYXkgaW50byByMy04Ci0r ICAgIC8vIHNhdmUgcGFyYW0gMyBpbiByMTAKLSsgICAgIjI6XG4iCi0rICAgICJtciAwLCAzXG4i Ci0rICAgICJsZCAzLCAwKDQpXG4iCi0rICAgICJsZCA1LCAxNig0KVxuIgotKyAgICAibGQgNiwg MjQoNClcbiIKLSsgICAgImxkIDcsIDMyKDQpXG4iCi0rICAgICJsZCA4LCA0MCg0KVxuIgotKyAg ICAibGQgNCwgOCg0KVxuIgotKyAgICAibGkgOSwgMFxuIgotKwotKyAgICAvLyBFbnRlciBrZXJu ZWwKLSsgICAgInNjXG4iCi0rCi0rICAgIC8vIE1hZ2ljIHJldHVybiBhZGRyZXNzCi0rICAgICIz OlxuIgotKyAgICAvLyBMaWtlIE1JUFMsIHBwYzY0IHJldHVybiB2YWx1ZXMgYXJlIGFsd2F5cyBw b3NpdGl2ZS4KLSsgICAgLy8gQ2hlY2sgZm9yIGVycm9yIGluIGNyMC5TTyBhbmQgbmVnYXRlIHVw b24gZXJyb3IKLSsgICAgImJjIDQsIDMsIDRmXG4iCi0rICAgICJuZWcgMywgM1xuIgotKyAgICAi NDogYmxyXG4iCi0rCi0gICAgICIuY2ZpX2VuZHByb2NcbiIKLSAgICAgIi5zaXplIFN5c2NhbGxB c20sIC4tU3lzY2FsbEFzbVxuIgotICNlbmRpZgotICAgICApOyAgLy8gYXNtCi0gCi0tI2lmIGRl ZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gZXh0ZXJuICJDIiB7Ci0gaW50cHRyX3QgU3lzY2FsbEFzbShpbnRwdHJf dCBuciwgY29uc3QgaW50cHRyX3QgYXJnc1s2XSk7Ci0gfQotQEAgLTQyOSw2ICs0NzMsOCBAQCBp bnRwdHJfdCBTeXNjYWxsOjpDYWxsKGludCBuciwKLSAgICAgcmV0ID0gaW5vdXQ7Ci0gICB9Ci0g Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaW50cHRyX3QgcmV0ID0gU3lzY2Fs bEFzbShuciwgYXJncyk7Ci0gI2Vsc2UKLSAjZXJyb3IgIlVuaW1wbGVtZW50ZWQgYXJjaGl0ZWN0 dXJlIgotICNlbmRpZgotQEAgLTQ0NSw4ICs0OTEsMTggQEAgdm9pZCBTeXNjYWxsOjpQdXRWYWx1 ZUluVWNvbnRleHQoaW50cHRyX3QgcmV0X3ZhbCwgdWNvbnRleHRfdCogY3R4KSB7Ci0gICAgIC8v IG5lZWRzIHRvIGJlIGNoYW5nZWQgYmFjay4KLSAgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotICAg ICBTRUNDT01QX1BBUk00KGN0eCkgPSAxOwotLSAgfSBlbHNlCi0rICB9IGVsc2UgewotICAgICBT RUNDT01QX1BBUk00KGN0eCkgPSAwOwotKyAgfQotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICAvLyBTYW1lIGFzIE1JUFMsIG5lZWQgdG8gaW52ZXJ0IHJldCBhbmQgc2V0 IGVycm9yIHJlZ2lzdGVyIChjcjAuU08pCi0rICBpZiAocmV0X3ZhbCA8PSAtMSAmJiByZXRfdmFs ID49IC00MDk1KSB7Ci0rICAgIHJldF92YWwgPSAtcmV0X3ZhbDsKLSsgICAgY3R4LT51Y19tY29u dGV4dC5yZWdzLT5jY3IgfD0gKDEgPDwgMjgpOwotKyAgfSBlbHNlIHsKLSsgICAgY3R4LT51Y19t Y29udGV4dC5yZWdzLT5jY3IgJj0gfigxIDw8IDI4KTsKLSsgIH0KLSAjZW5kaWYKLSAgIFNFQ0NP TVBfUkVTVUxUKGN0eCkgPSBzdGF0aWNfY2FzdDxncmVnX3Q+KHJldF92YWwpOwotIH0KLWRpZmYg LS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MgYi9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmL3RyYXAuY2MKLWluZGV4IGY1Yjg2YTczYS4uNWU2YzRhMDY4IDEwMDY0NAot LS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCi0rKysgYi9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKLUBAIC0yMzIsNiArMjMyLDIwIEBAIHZvaWQgVHJhcDo6 U2lnU3lzKGludCBuciwgTGludXhTaWdJbmZvKiBpbmZvLCB1Y29udGV4dF90KiBjdHgpIHsKLSAg ICAgICBTZXRJc0luU2lnSGFuZGxlcigpOwotICAgICB9Ci0gCi0rI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSsgICAgLy8gT24gcHBjNjQrZ2xpYmMsIHNvbWUgc3lzY2FsbHMgc2VlbSB0byBh Y2NpZGVudGFsbHkgbmVnYXRlIHRoZSBmaXJzdAotKyAgICAvLyBwYXJhbWV0ZXIgd2hpY2ggY2F1 c2VzIGNoZWNrcyBhZ2FpbnN0IGl0IHRvIGZhaWwuIEZvciBub3csIG1hbnVhbGx5Ci0rICAgIC8v IG5lZ2F0ZSB0aGVtIGJhY2suCi0rICAgIC8vIFRPRE8oc2hhd25AYW5hc3Rhcy5pbyk6IGludmVz dGlnYXRlIHRoaXMgaXNzdWUgZnVydGhlcgotKyAgICBhdXRvIG5yID0gU0VDQ09NUF9TWVNDQUxM KGN0eCk7Ci0rICAgIGlmIChuciA9PSBfX05SX29wZW5hdCB8fCBuciA9PSBfX05SX21rZGlyYXQg fHwgbnIgPT0gX19OUl9mYWNjZXNzYXQgfHwgbnIgPT0gX19OUl9yZWFkbGlua2F0IHx8Ci0rICAg ICAgICBuciA9PSBfX05SX3JlbmFtZWF0IHx8IG5yID09IF9fTlJfcmVuYW1lYXQyIHx8IG5yID09 IF9fTlJfbmV3ZnN0YXRhdCB8fCBuciA9PSBfX05SX3VubGlua2F0KSB7Ci0rICAgICAgICBpZiAo c3RhdGljX2Nhc3Q8aW50PihTRUNDT01QX1BBUk0xKGN0eCkpID4gMCkgewotKyAgICAgICAgICAg IFNFQ0NPTVBfUEFSTTEoY3R4KSA9IC1TRUNDT01QX1BBUk0xKGN0eCk7Ci0rICAgICAgICB9Ci0r ICAgIH0KLSsjZW5kaWYKLSsKLSAgICAgLy8gQ29weSB0aGUgc2VjY29tcC1zcGVjaWZpYyBkYXRh IGludG8gYSBhcmNoX3NlY2NvbXBfZGF0YSBzdHJ1Y3R1cmUuIFRoaXMKLSAgICAgLy8gaXMgd2hh dCB3ZSBhcmUgc2hvd2luZyB0byBUcmFwRm5jIGNhbGxiYWNrcyB0aGF0IHRoZSBzeXN0ZW0gY2Fs bAotICAgICAvLyBldmFsdWF0b3IgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzYW5kYm94LgotZGlmZiAt LWdpdCBhL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MgYi9zYW5kYm94L2xp bnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCi1pbmRleCBkN2I1ZDhjNDQuLjRhZGM2ZDBkNCAx MDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLSsrKyBi L3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLUBAIC04MSw3ICs4MSw3IEBA IGJvb2wgQ2hyb290VG9TYWZlRW1wdHlEaXIoKSB7Ci0gICBwaWRfdCBwaWQgPSAtMTsKLSAgIGFs aWduYXMoMTYpIGNoYXIgc3RhY2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsKLSAjaWYgZGVmaW5l ZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8 IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAv LyBUaGUgc3RhY2sgZ3Jvd3MgZG93bndhcmQuCi0gICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiAr IHNpemVvZihzdGFja19idWYpOwotICNlbHNlCi1AQCAtOTAsNyArOTAsOSBAQAotIAotICAgaW50 IGNsb25lX2ZsYWdzID0gQ0xPTkVfRlMgfCBMSU5VWF9TSUdDSExEOwotICAgdm9pZCogdGxzID0g bnVsbHB0cjsKLS0jaWYgKGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KSB8fCBkZWZpbmVkKEFSQ0hf Q1BVX0FSTV9GQU1JTFkpKSAmJiBcCi0rLy8gUkFKQSB0aGlzIG1pZ2h0IGJlIGl0Li4uCi0rI2lm IChkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl82NCkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZ KSB8fCBcCi0rICAgIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKSkgJiYgXAotICAgICAh ZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKQotICAgLy8gVXNlIENMT05FX1ZNIHwgQ0xPTkVfVkZP UksgYXMgYW4gb3B0aW1pemF0aW9uIHRvIGF2b2lkIGNvcHlpbmcgcGFnZSB0YWJsZXMuCi0gICAv LyBTaW5jZSBjbG9uZSB3cml0ZXMgdG8gdGhlIG5ldyBjaGlsZCdzIFRMUyBiZWZvcmUgcmV0dXJu aW5nLCB3ZSBtdXN0IHNldCBhCi1AQCAtOTgsNiArMTAwLDExIEBACi0gICAvLyBnbGliYyBwZXJm b3JtcyBzeXNjYWxscyBieSBjYWxsaW5nIGEgZnVuY3Rpb24gcG9pbnRlciBpbiBUTFMsIHNvIHdl IGRvIG5vdAotICAgLy8gYXR0ZW1wdCB0aGlzIG9wdGltaXphdGlvbi4KLSAgIC8vIFRPRE8oY3Ji dWcuY29tLzEyNDc0NTgpIEJyb2tlbiBpbiBNU2FuIGJ1aWxkcyBhZnRlciBMTFZNIGYxYmIzMGE0 OTU2Zi4KLSsgIC8vCi0rICAvLyBOT1RFOiBXaXRob3V0IENMT05FX1ZNLCBmb250Y29uZmlnIHdp bGwgYXR0ZW1wdCB0byByZWxvYWQgY29uZmlndXJhdGlvbgotKyAgLy8gaW4gZXZlcnkgdGhyZWFk LiAgU2luY2UgdGhlIHJlbmRlcmVkIHRocmVhZHMgYXJlIHNhbmRib3hlZCB3aXRob3V0Ci0rICAv LyBmaWxlc3lzdGVtIGFjY2VzcyAoZS5nLiB0byAvZXRjL2ZvbnRzL2ZvbnRzLmNvbmYpIHRoaXMg d2lsbCBjYXVzZSBmb250Ci0rICAvLyBjb25maWd1cmFpdG9uIGxvYWRpbmcgZmFpbHVyZXMgYW5k IG5vIGZvbnRzIHdpbGwgYmUgZGlzcGxheWVkIQotICAgY2xvbmVfZmxhZ3MgfD0gQ0xPTkVfVk0g fCBDTE9ORV9WRk9SSyB8IENMT05FX1NFVFRMUzsKLSAKLSAgIGNoYXIgdGxzX2J1ZltQVEhSRUFE X1NUQUNLX01JTl0gPSB7MH07Ci1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9z eXNjYWxsX3dyYXBwZXJzLmNjIGIvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBw ZXJzLmNjCi1pbmRleCBmY2ZkMmFhMTIuLmY2ZWIzMmZiNyAxMDA2NDQKLS0tLSBhL3NhbmRib3gv bGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYwotKysrIGIvc2FuZGJveC9saW51eC9z ZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi1AQCAtNTgsNyArNTgsNyBAQCBsb25nIHN5c19j bG9uZSh1bnNpZ25lZCBsb25nIGZsYWdzLAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl82NCkK LSAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBjaGlsZF9zdGFjaywgcHRpZCwg Y3RpZCwgdGxzKTsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4NikgfHwgZGVmaW5lZChBUkNI X0NQVV9BUk1fRkFNSUxZKSB8fCBcCi0tICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp Ci0rICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotICAgLy8gQ09ORklHX0NMT05FX0JBQ0tXQVJEUyBkZWZpbmVkLgotICAg cmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCB0bHMs IGN0aWQpOwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9r ZXIvYnJva2VyX3Byb2Nlc3MuY2MgYi9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tl cl9wcm9jZXNzLmNjCi1pbmRleCBkNzJjOWQyMzguLjc3ZjFkOTVmNSAxMDA2NDQKLS0tLSBhL3Nh bmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKLSsrKyBiL3NhbmRi b3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKLUBAIC0xNjksNyArMTY5 LDcgQEAgYm9vbCBCcm9rZXJQcm9jZXNzOjpJc1N5c2NhbGxCcm9rZXJhYmxlKGludCBzeXNubywg Ym9vbCBmYXN0X2NoZWNrKSBjb25zdCB7Ci0gI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCi0g ICAgIGNhc2UgX19OUl9mc3RhdGF0NjQ6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2Ug X19OUl9uZXdmc3RhdGF0OgotICNlbmRpZgotICAgICAgIHJldHVybiAhZmFzdF9jaGVjayB8fCBh bGxvd2VkX2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRfU1RBVCk7Ci1kaWZmIC0tZ2l0IGEvc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmggYi9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAotaW5kZXggMWZhNDdlZDA5Li4zOWNjOWFi NTMgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2Nv bXAuaAotKysrIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmgK LUBAIC00MSw2ICs0MSw5IEBACi0gI2lmbmRlZiBFTV9BQVJDSDY0Ci0gI2RlZmluZSBFTV9BQVJD SDY0IDE4MwotICNlbmRpZgotKyNpZm5kZWYgRU1fUFBDNjQKLSsjZGVmaW5lIEVNX1BQQzY0IDIx Ci0rI2VuZGlmCi0gCi0gI2lmbmRlZiBfX0FVRElUX0FSQ0hfNjRCSVQKLSAjZGVmaW5lIF9fQVVE SVRfQVJDSF82NEJJVCAweDgwMDAwMDAwCi1AQCAtNzMsNiArNzYsMTIgQEAKLSAjaWZuZGVmIEFV RElUX0FSQ0hfQUFSQ0g2NAotICNkZWZpbmUgQVVESVRfQVJDSF9BQVJDSDY0IChFTV9BQVJDSDY0 IHwgX19BVURJVF9BUkNIXzY0QklUIHwgX19BVURJVF9BUkNIX0xFKQotICNlbmRpZgotKyNpZm5k ZWYgQVVESVRfQVJDSF9QUEM2NAotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NCAoRU1fUFBDNjQg fCBfX0FVRElUX0FSQ0hfNjRCSVQpCi0rI2VuZGlmCi0rI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0 TEUKLSsjZGVmaW5lIEFVRElUX0FSQ0hfUFBDNjRMRSAoRU1fUFBDNjQgfCBfX0FVRElUX0FSQ0hf NjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCi0rI2VuZGlmCi0gCi0gLy8gRm9yIHByY3RsLmgKLSAj aWZuZGVmIFBSX1NFVF9TRUNDT01QCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9saW51eF9zaWduYWwuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGlu dXhfc2lnbmFsLmgKLWluZGV4IGY1YTczNjc2MS4uNTE1YjIxYTVmIDEwMDY0NAotLS0tIGEvc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAotKysrIGIvc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAotQEAgLTEzLDcgKzEzLDcgQEAKLSAv LyAobm90IHVuZGVmaW5lZCwgYnV0IGRlZmluZWQgZGlmZmVyZW50IHZhbHVlcyBhbmQgaW4gZGlm ZmVyZW50IG1lbW9yeQotIC8vIGxheW91dHMpLiBTbywgZmlsbCB0aGUgZ2FwIGhlcmUuCi0gI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJj aDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAKLSAjZGVmaW5lIExJTlVYX1NJR0hV UCAxCi0gI2RlZmluZSBMSU5VWF9TSUdJTlQgMgotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvbGludXhfc3lzY2FsbHMuaAotaW5kZXggMmI3OGEwY2MzLi4wYTcwZjVlYTUgMTAwNjQ0 Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKLSsr KyBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAotQEAgLTM1 LDUgKzM1LDkgQEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02 NF9saW51eF9zeXNjYWxscy5oIgotICNlbmRpZgotIAotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhf c3lzY2FsbHMuaCIKLSsjZW5kaWYKLSsKLSAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVN X0hFQURFUlNfTElOVVhfU1lTQ0FMTFNfSF8KLSAKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMDAuLmNjYWNmZmUyMgotLS0tIC9kZXYvbnVsbAotKysrIGIvc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCi1AQCAtMCwwICsx LDEyIEBACi0rLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCi0rLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCi0rCi0rI2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJ TlVYX1NZU0NBTExTX0hfCi0rI2RlZmluZSBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQ QzY0X0xJTlVYX1NZU0NBTExTX0hfCi0rCi0rI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KLSsKLSsv L1RPRE86IGlzIGl0IG5lY2Vzc2FyeSB0byByZWRlZmluZSBzeXNjYWxsIG51bWJlcnMgZm9yIFBQ QzY0PwotKwotKyNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9M SU5VWF9TWVNDQUxMU19IXwotZGlmZiAtLWdpdCBhL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl91 dGlsaXR5X3BvbGljeV9saW51eC5jYyBiL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl91dGlsaXR5 X3BvbGljeV9saW51eC5jYwotaW5kZXggMjU4OGZjNzkyLi5kNDU1YzQ2MDEgMTAwNjQ0Ci0tLS0g YS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfdXRpbGl0eV9wb2xpY3lfbGludXguY2MKLSsrKyBi L3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl91dGlsaXR5X3BvbGljeV9saW51eC5jYwotQEAgLTM0 LDcgKzM0LDcgQEAKLSAgICAgY2FzZSBfX05SX2ZkYXRhc3luYzoKLSAgICAgY2FzZSBfX05SX2Zz eW5jOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfZ2V0cmxpbWl0OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVy X3BvbGljeV9saW51eC5jYyBiL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xp Y3lfbGludXguY2MKLWluZGV4IDI1ODhmYzc5Mi4uZDQ1NWM0NjAxIDEwMDY0NAotLS0tIGEvc2Fu ZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwotKysrIGIvc2Fu ZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwotQEAgLTE1LDYg KzE1LDExIEBACi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhf c3lzY2FsbHMuaCIKLSAjaW5jbHVkZSAic2FuZGJveC9wb2xpY3kvbGludXgvc2FuZGJveF9saW51 eC5oIgotIAotKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBzdHJ1 Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1pb3MuaAotKyNpZmRlZiBfX3Bvd2Vy cGM2NF9fCi0rI2luY2x1ZGUgPHRlcm1pb3MuaD4KLSsjZW5kaWYKLSsKLSAvLyBUT0RPKHZpZ25h dHRpKTogcmVwbGFjZSB0aGUgbG9jYWwgZGVmaW5pdGlvbnMgYmVsb3cgd2l0aCAjaW5jbHVkZQot IC8vIDxsaW51eC9kbWEtYnVmLmg+IG9uY2Uga2VybmVsIHZlcnNpb24gNC42IGJlY29tZXMgd2lk ZWx5IHVzZWQuCi0gI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci1AQCAtNzcsNyArNzcsNyBAQAot ICAgICBjYXNlIF9fTlJfZnRydW5jYXRlNjQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9nZXRybGltaXQ6Ci0gICAgIGNhc2Ug X19OUl9zZXRybGltaXQ6Ci0gLy8gV2UgYWxsb3cgc2V0cmxpbWl0IHRvIGR5bmFtaWNhbGx5IGFk anVzdCB0aGUgYWRkcmVzcyBzcGFjZSBsaW1pdCBhcwotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmggYi90aGlyZF9wYXJ0eS9h bmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oCi1pbmRleCAzYTgwN2UxZTMu LjUyNTg2MTdhNyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90 cmFuc2xhdG9yL0luZm9TaW5rLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxl ci90cmFuc2xhdG9yL0luZm9TaW5rLmgKLUBAIC05Miw3ICs5MiwxNiBAQCBjbGFzcyBUSW5mb1Np bmtCYXNlCi0gICAgICAgICAgICAgc3RyZWFtLnByZWNpc2lvbig4KTsKLSAgICAgICAgICAgICBz dHJlYW0gPDwgZjsKLSAgICAgICAgIH0KLS0gICAgICAgIHNpbmsuYXBwZW5kKHN0cmVhbS5zdHIo KSk7Ci0rCi0rICAgICAgICAvLyBIYWNrIHRvIHdvcmsgYXJvdW5kIGEgYnVnIHdoZXJlIG5lZ2F0 aXZlIGZsb2F0aW5nIHBvaW50IHZhbHVlcwotKyAgICAgICAgLy8gYXJlIHJlbmRlcmVkIGxpa2Ug Jy4wLjUnIGluc3RlYWQgb2YgJy0wLjUnCi0rICAgICAgICBzdGQ6OnN0cmluZyByZXMoc3RyZWFt LnN0cigpKTsKLSsKLSsgICAgICAgIGlmIChzaWduYml0KGYpKSB7IC8vIHRlc3QgaWYgZiBpcyBu ZWdhdGl2ZQotKyAgICAgICAgICAgIHJlc1swXSA9ICctJzsKLSsgICAgICAgIH0KLSsKLSsgICAg ICAgIHNpbmsuYXBwZW5kKHJlcyk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgIH0KLSAg ICAgLy8gV3JpdGUgYm9vbGVhbiB2YWx1ZXMgYXMgdGhlaXIgbmFtZXMgaW5zdGVhZCBvZiBpbnRl Z3JhbCB2YWx1ZS4KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUv Q29uc3RhbnRzLmggYi90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgK LWluZGV4IGZjYmM5MjQ2YS4uMzlhZTY2MTQ4IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYW5n bGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCi0rKysgYi90aGlyZF9wYXJ0eS9hbmdsZS9zcmMv bGliQU5HTEUvQ29uc3RhbnRzLmgKLUBAIC05LDYgKzksNyBAQAotICNpZm5kZWYgTElCQU5HTEVf Q09OU1RBTlRTX0hfCi0gI2RlZmluZSBMSUJBTkdMRV9DT05TVEFOVFNfSF8KLSAKLSsjaW5jbHVk ZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZSAiY29tbW9uL3BsYXRmb3JtLmgiCi0gCi0gI2luY2x1ZGUg PHN0ZGludC5oPgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbiBi L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotaW5kZXggMTdjZjljZGE5Li44Y2U5NmJk MzIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KLSsrKyBiL3Ro aXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotQEAgLTEwMyw2ICsxMDMsMTMgQEAgaWYgKGlz X3dpbiAmJiAhaXNfbXNhbiAmJiBjdXJyZW50X2NwdSAhPSAiYXJtNjQiKSB7Ci0gICAgICAgfSBl bHNlIHsKLSAgICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KLSAg ICAgICB9Ci0rICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICAg IGlmIChpc19saW51eCkgewotKyAgICAgICAgIyBUT0RPOiBwcGM2NCAoYmUpIGNoZWNrCi0rICAg ICAgICBzb3VyY2VzICs9IGNyeXB0b19zb3VyY2VzX2xpbnV4X3BwYzY0bGUKLSsgICAgICB9IGVs c2UgewotKyAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQotKyAg ICAgIH0KLSAgICAgfSBlbHNlIHsKLSAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21f Y29uZmlnIiBdCi0gICAgIH0KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlM RC5nbiBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi1pbmRleCA0YWYzZDdiYmYuLmFk YmY1NDE1OSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi0rKysg Yi90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotQEAgLTU5Niw3ICs1OTYsNiBAQCBpZiAo aXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pZCkgewotICAgICAgICJicmVha3Bh ZC9zcmMvY2xpZW50L21pbmlkdW1wX2ZpbGVfd3JpdGVyLmgiLAotICAgICAgICJicmVha3BhZC9z cmMvY29tbW9uL2NvbnZlcnRfVVRGLmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9j b252ZXJ0X1VURi5oIiwKLS0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3Bh ZF9nZXRjb250ZXh0LlMiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9j b3JlX2R1bXAuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3Jl X2R1bXAuaCIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmdXRpbHMuY2Mi LAotQEAgLTYzNCw2ICs2MzMsMTQgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zIHx8IGlz X2FuZHJvaWQpIHsKLSAKLSAgICAgbGlicyA9IFsgImRsIiBdCi0gCi0rICAgIGlmIChjdXJyZW50 X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgICAgICBkZWZpbmVzID0gWyAiSEFWRV9HRVRDT05URVhU IiBdCi0rICAgIH0gZWxzZSB7Ci0rICAgICAgICBzb3VyY2VzICs9IFsKLSsgICAgICAgICAgICAi YnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0LlMiCi0rICAgICAg ICBdCi0rICAgIH0KLSsKLSAgICAgaW5jbHVkZV9kaXJzID0gWwotICAgICAgICIuIiwKLSAgICAg ICAiYnJlYWtwYWQvc3JjIiwKLUBAIC02ODIsNyArNjg5LDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlz X2Nocm9tZW9zIHx8IGlzX2FuZHJvaWQpIHsKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIiwKLSAgICAg ICAiYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3Jp dGVyX3VuaXR0ZXN0X3V0aWxzLmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvcHJvY19jcHVpbmZvX3JlYWRlcl91bml0dGVzdC5jYyIsCi0tICAg ICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dF91bml0dGVz dC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcF91 bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZmlsZV9pZF91 bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbGludXhfbGli Y19zdXBwb3J0X3VuaXR0ZXN0LmNjIiwKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4 dF9jcHUuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv ZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCi1pbmRleCAwN2Q5MTcxYTAuLjlh ZWQ0Y2IzNiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCi0rKysgYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAotQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBNRFJh d0NvbnRleHRBUk0gUmF3Q29udGV4dENQVTsKLSB0eXBlZGVmIE1EUmF3Q29udGV4dEFSTTY0X09s ZCBSYXdDb250ZXh0Q1BVOwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gdHlwZWRlZiBNRFJh d0NvbnRleHRNSVBTIFJhd0NvbnRleHRDUFU7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotK3R5cGVkZWYgTURSYXdDb250ZXh0UFBDNjQgUmF3Q29udGV4dENQVTsKLSAjZWxzZQotICNl cnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQu IgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjIGIvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdGhyZWFkX2luZm8uY2MKLWluZGV4IGFhZTFkYzEzYi4uMDNhZmVjN2E1IDEwMDY0NAotLS0t IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNj Ci1AQCAtMjcwLDcgKzI3MCw0MiBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJh d0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IG1jb250 ZXh0LmZwY19laXI7Ci0gI2VuZGlmCi0gfQotLSNlbmRpZiAgLy8gX19taXBzX18KLSsKLSsjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rdWludHB0cl90IFRocmVhZEluZm86OkdldElu c3RydWN0aW9uUG9pbnRlcigpIGNvbnN0IHsKLSsgICAgcmV0dXJuIG1jb250ZXh0LmdwX3JlZ3Nb UFRfTklQXTsKLSt9Ci0rCi0rdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250 ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSsgICAgb3V0LT5jb250ZXh0X2ZsYWdzID0gTURfQ09OVEVY VF9QUEM2NF9GVUxMOwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRf R1BSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmdwcltpXSA9IG1jb250ZXh0LmdwX3JlZ3Nb aV07Ci0rCi0rICAgIG91dC0+bHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0xOS107Ci0rICAgIG91 dC0+c3JyMCA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSsgICAgb3V0LT5zcnIxID0gbWNv bnRleHQuZ3BfcmVnc1tQVF9NU1JdOwotKyAgICBvdXQtPmNyID0gbWNvbnRleHQuZ3BfcmVnc1tQ VF9DQ1JdOwotKyAgICBvdXQtPnhlciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXTsKLSsgICAg b3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0rICAgIAotKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotKyAg ICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07Ci0r Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IG1jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFd OwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9D T1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0gXAotKyAg ICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMF0pIDw8IDMyKSAKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MudnJyZWdzW2ldWzFdLCAKLSsgICAgICAgICAg ICAoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMl0pIDw8IDMyKQotKyAgICAgICAgICAgICAg ICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVszXX07Ci0rCi0rICAgIG91dC0+dnJzYXZlID0g dnJlZ3MudnJzYXZlOwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjciA9IHswLCB2cmVn cy52c2NyLnZzY3Jfd29yZH07Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZhbGlkID0g MHhGRkZGRkZGRjsgCi0rfQotKyNlbmRpZiAgLy8gX19wb3dlcnBjNjRfXwotIAotIHZvaWQgVGhy ZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnModm9pZCoqIGdwX3JlZ3MsIHNpemVf dCogc2l6ZSkgewotICAgYXNzZXJ0KGdwX3JlZ3MgfHwgc2l6ZSk7Ci1AQCAtMjc5LDYgKzMxNCwx MSBAQCB2b2lkIFRocmVhZEluZm86OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQqKiBn cF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAgICAgKmdwX3JlZ3MgPSBtY29udGV4dC5ncmVnczsK LSAgIGlmIChzaXplKQotICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5ncmVncyk7Ci0rI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKGdwX3JlZ3MpCi0rICAgICpncF9yZWdz ID0gbWNvbnRleHQuZ3BfcmVnczsKLSsgIGlmIChzaXplKQotKyAgICAqc2l6ZSA9IHNpemVvZiht Y29udGV4dC5ncF9yZWdzKTsKLSAjZWxzZQotICAgaWYgKGdwX3JlZ3MpCi0gICAgICpncF9yZWdz ID0gJnJlZ3M7Ci1AQCAtMjk0LDYgKzMzNCwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEZsb2F0 aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICAgICAq ZnBfcmVncyA9ICZtY29udGV4dC5mcHJlZ3M7Ci0gICBpZiAoc2l6ZSkKLSAgICAgKnNpemUgPSBz aXplb2YobWNvbnRleHQuZnByZWdzKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r ICBpZiAoZnBfcmVncykKLSsgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuZnBfcmVnczsKLSsgIGlm IChzaXplKQotKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcF9yZWdzKTsKLSAjZWxzZQot ICAgaWYgKGZwX3JlZ3MpCi0gICAgICpmcF9yZWdzID0gJmZwcmVnczsKLUBAIC0zMDIsNCArMzQ3 LDEzIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2b2lkKiog ZnBfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gI2VuZGlmCi0gfQotIAotKyNpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rdm9pZCBUaHJlYWRJbmZvOjpHZXRWZWN0b3JSZWdpc3RlcnModm9pZCoq IHZfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0rICAgIGlmICh2X3JlZ3MpCi0rICAgICAgICAqdl9y ZWdzID0gJnZyZWdzOwotKyAgICBpZiAoc2l6ZSkKLSsgICAgICAgICpzaXplID0gc2l6ZW9mKHZy ZWdzKTsKLSt9Ci0rI2VuZGlmCi0rCi0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAot ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmggYi90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5m by5oCi1pbmRleCBmYjIxNmZhNmQuLjU5M2FhYzgyMiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Ro cmVhZF9pbmZvLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKLUBAIC02OCw2ICs2OCwx MCBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5l ZCBpbiA8c3lzL3VzZXIuaD4KLSAgIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0IHJlZ3M7Ci0gICBz dHJ1Y3QgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0 Lmg+LgotKyAgbWNvbnRleHRfdCBtY29udGV4dDsKLSsgIHZycmVnc2V0X3QgdnJlZ3M7Ci0gI2Vs aWYgZGVmaW5lZChfX21pcHNfXykKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlIGRlZmluZWQgaW4g PHN5cy91Y29udGV4dC5oPi4KLSAgIG1jb250ZXh0X3QgbWNvbnRleHQ7Ci1AQCAtODQsNiArODgs MTEgQEAgc3RydWN0IFRocmVhZEluZm8gewotIAotICAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBh bmQgc2l6ZSBvZiBmbG9hdCBwb2ludCByZWdpc3RlciBhcmVhLgotICAgdm9pZCBHZXRGbG9hdGlu Z1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpOwotKwotKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXpl IG9mIHRoZSB2ZWN0b3IgcmVnaXN0ZXIgYXJlYS4gKFBQQzY0IG9ubHkpCi0rICB2b2lkIEdldFZl Y3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpOwotKyNlbmRpZgotIH07 Ci0gCi0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29t bW9uL3Vjb250ZXh0X3JlYWRlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotaW5k ZXggNmVlYzFiZTI0Li43NDE5ODNhMWEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotQEAgLTI1NCw2ICsy NTQsNDggQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQ VSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1YykgewotICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9 IHVjLT51Y19tY29udGV4dC5mcGNfZWlyOyAgLy8gVW51c2VkLgotICNlbmRpZgotIH0KLSsKLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rdWludHB0cl90IFVDb250ZXh0UmVhZGVy OjpHZXRTdGFja1BvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKLSsgICAgcmV0dXJuIHVj LT51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXTsKLSt9Ci0rCi0r dWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoY29uc3QgdWNv bnRleHRfdCogdWMpIHsKLSsgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05J UF07Ci0rfQotKwotK3ZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRl eHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpIHsKLSsgICAgb3V0LT5jb250 ZXh0X2ZsYWdzID0gTURfQ09OVEVYVF9QUEM2NF9GVUxMOwotKwotKyAgICBmb3IgKGludCBpID0g MDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmdw cltpXSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW2ldOwotKwotKyAgICBvdXQtPmxyID0gdWMt PnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsgICAgCi0rICAgIG91dC0+c3JyMCA9IHVjLT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rICAgIG91dC0+c3JyMSA9IHVjLT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX01TUl07Ci0rICAgIG91dC0+Y3IgPSB1Yy0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9DQ1JdOwotKyAgICBvdXQtPnhlciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BU X1hFUl07Ci0rICAgIG91dC0+Y3RyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsK LSsgICAgCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENf RlBSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gdWMt PnVjX21jb250ZXh0LmZwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9 IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsKLSsgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91 dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9Ci0rICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZy ZWdzLT52cnJlZ3NbaV1bMF0pIDw8IDMyKSAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgfCB2 cmVncy0+dnJyZWdzW2ldWzFdLCAKLSsgICAgICAgICAgICAgKCgodWludDY0X3QpdnJlZ3MtPnZy cmVnc1tpXVsyXSkgPDwgMzIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MtPnZy cmVnc1tpXVszXX07Ci0rCi0rICAgIG91dC0+dnJzYXZlID0gdnJlZ3MtPnZyc2F2ZTsKLSsgICAg b3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MtPnZzY3IudnNjcl93b3JkfTsK LSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZGOyAKLSt9Ci0r Ci0gI2VuZGlmCi0gCi0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93 cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVy LmgKLWluZGV4IDdkNDEwMDg4MS4uYzEyMmFjOTJlIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNv bnRleHRfcmVhZGVyLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCi1AQCAtNTUs NiArNTUsOSBAQCBzdHJ1Y3QgVUNvbnRleHRSZWFkZXIgewotICNlbGlmIGRlZmluZWQoX19hYXJj aDY0X18pCi0gICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQs IGNvbnN0IHVjb250ZXh0X3QqIHVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGZwc2ltZF9jb250ZXh0KiBmcHJlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSsgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91 dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCB2cnJlZ3NldF90KiB2cmVncyk7Ci0gI2Vsc2UKLSAgIHN0YXRpYyB2b2lkIEZpbGxDUFVD b250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMpOwotICNlbmRp ZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwot aW5kZXggYTZjYjVmOTg0Li5hZTE2YjY0ZDkgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIu Y2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv aGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotQEAgLTQ2MSw5ICs0NjEsMTYgQEAgYm9vbCBF eGNlcHRpb25IYW5kbGVyOjpIYW5kbGVTaWduYWwoaW50IC8qc2lnKi8sIHNpZ2luZm9fdCogaW5m bywgdm9pZCogdWMpIHsKLSAgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRl LCBmcF9wdHIsCi0gICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250ZXh0Xy5mbG9hdF9zdGF0 ZSkpOwotICAgfQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIE9uIFBQQzY0 LCB3ZSBtdXN0IGNvcHkgVlIgc3RhdGUKLSsgIHVjb250ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4 dF90Kil1YzsKLSsgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LnZfcmVncykgewotKyAgICBtZW1j cHkoJmdfY3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlLCB1Y19wdHItPnVjX21jb250ZXh0LnZf cmVncywKLSsgICAgICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0ZSkp OwotKyAgfQotICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBz X18pCi0gICAvLyBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBvbiBBUk0gTGludXgu Ci0tICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9m IHVjb250ZXh0X3QKLSsgIC8vIEluIGNhc2Ugb2YgTUlQUywgTGludXggRlAgc3RhdGUgaXMgYWxy ZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3QKLSAgIC8vIGFuZCAnZmxvYXRfc3RhdGUnIGlzIG5vdCBh IG1lbWJlciBvZiBDcmFzaENvbnRleHQuCi0gICB1Y29udGV4dF90KiB1Y19wdHIgPSAodWNvbnRl eHRfdCopdWM7Ci0gICBpZiAodWNfcHRyLT51Y19tY29udGV4dC5mcHJlZ3MpIHsKLUBAIC03MDgs MTEgKzcxNSwxOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7Ci0g ICB9Ci0gI2VuZGlmCi0gCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQo X19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykgXAot KyAgICAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8gRlBVIHN0YXRlIGlzIG5vdCBw YXJ0IG9mIEFSTSBFQUJJIHVjb250ZXh0X3QuCi0gICBtZW1jcHkoJmNvbnRleHQuZmxvYXRfc3Rh dGUsIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5mcHJlZ3MsCi0gICAgICAgICAgc2l6ZW9m KGNvbnRleHQuZmxvYXRfc3RhdGUpKTsKLSAjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgLy8gVmVjdG9yIHJlZ2lzdGVycyBtdXN0IGJlIGNvcGllZCBvbiBQUEM2NAot KyAgbWVtY3B5KCZjb250ZXh0LnZlY3Rvcl9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250 ZXh0LnZfcmVncywKLSsgICAgICAgICBzaXplb2YoY29udGV4dC52ZWN0b3Jfc3RhdGUpKTsKLSsj ZW5kaWYKLSsKLSAgIGNvbnRleHQudGlkID0gc3lzX2dldHRpZCgpOwotIAotICAgLy8gQWRkIGFu IGV4Y2VwdGlvbiBzdHJlYW0gdG8gdGhlIG1pbmlkdW1wIGZvciBiZXR0ZXIgcmVwb3J0aW5nLgot QEAgLTczMyw2ICs3NDgsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAo KSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnRleHQuc2lnaW5mby5zaV9hZGRy ID0KLSAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LmNvbnRleHQudWNfbWNv bnRleHQucGMpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGNvbnRleHQuc2ln aW5mby5zaV9hZGRyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LmNv bnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdKTsKLSAjZWxzZQotICNlcnJvciAiVGhp cyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRp ZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKLWlu ZGV4IGY4MDg0M2VhNy4uMjYwZGQxMGY3IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgK LSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFu ZGxlci9leGNlcHRpb25faGFuZGxlci5oCi1AQCAtMTkyLDcgKzE5MiwxMSBAQCBjbGFzcyBFeGNl cHRpb25IYW5kbGVyIHsKLSAgICAgc2lnaW5mb190IHNpZ2luZm87Ci0gICAgIHBpZF90IHRpZDsg IC8vIHRoZSBjcmFzaGluZyB0aHJlYWQuCi0gICAgIHVjb250ZXh0X3QgY29udGV4dDsKLS0jaWYg IWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgICAvLyBQUEM2NCdzIEZQIHN0YXRlIGlzIGEgcGFydCBvZiB1 Y29udGV4dF90IGxpa2UgTUlQUyBidXQgdGhlIHZlY3RvcgotKyAgICAvLyBzdGF0ZSBpcyBub3Qs IHNvIGEgc3RydWN0IGlzIG5lZWRlZC4KLSsgICAgdnN0YXRlX3QgdmVjdG9yX3N0YXRlOwotKyNl bGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIC8v ICNpZmRlZiB0aGlzIG91dCBiZWNhdXNlIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJ IGZvciBMaW51eCBBUk0uCi0gICAgIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBp cyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdCBzbwotICAgICAvLyAnZmxvYXRfc3RhdGUnIGlz IG5vdCByZXF1aXJlZC4KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2Mg Yi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIv ZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKLWluZGV4IDM1ZGNiZmQ0ZC4uNzkzNDM3MGZk IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCi0rKysgYi90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9u X2hhbmRsZXJfdW5pdHRlc3QuY2MKLUBAIC0zMDcsNyArMzA3LDcgQEAgVEVTVChFeGNlcHRpb25I YW5kbGVyVGVzdCwgUGFyYWxsZWxDaGlsZENyYXNoZXNEb250SGFuZykgewotICAgfQotIAotICAg Ly8gV2FpdCBhIHdoaWxlIHVudGlsIHRoZSBjaGlsZCBzaG91bGQgaGF2ZSBjcmFzaGVkLgotLSAg dXNsZWVwKDEwMDAwMDApOwotKyAgdXNsZWVwKDIwMDAwMDApOwotICAgLy8gS2lsbCB0aGUgY2hp bGQgaWYgaXQgaXMgc3RpbGwgcnVubmluZy4KLSAgIGtpbGwoY2hpbGQsIFNJR0tJTEwpOwotIAot QEAgLTU1OSw2ICs1NTksOCBAQCBjb25zdCB1bnNpZ25lZCBjaGFyIGtJbGxlZ2FsSW5zdHJ1Y3Rp b25bXSA9IHsKLSAjaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIC8vIG1mYzIgemVybyxJbXBsIC0g dXN1YWxseSBpbGxlZ2FsIGluIHVzZXJzcGFjZS4KLSAgIDB4NDgsIDB4MDAsIDB4MDAsIDB4NDgK LSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAweDAxLCAweDAxLCAweDAxLCAweDAx IC8vIENyYXNoZXMgb24gYSB0ZXN0ZWQgUE9XRVI5IGNwdQotICNlbHNlCi0gICAvLyBUaGlzIGNy YXNoZXMgd2l0aCBTSUdJTEwgb24geDg2L3g4Ni02NC9hcm0uCi0gICAweGZmLCAweGZmLCAweGZm LCAweGZmCi1AQCAtNzU0LDEwICs3NTYsMTAgQEAgVEVTVChFeGNlcHRpb25IYW5kbGVyVGVzdCwg SW5zdHJ1Y3Rpb25Qb2ludGVyTWVtb3J5TWF4Qm91bmQpIHsKLSAKLSAgIC8vIFRoZXNlIGFyZSBk ZWZpbmVkIGhlcmUgc28gdGhlIHBhcmVudCBjYW4gdXNlIHRoZW0gdG8gY2hlY2sgdGhlCi0gICAv LyBkYXRhIGZyb20gdGhlIG1pbmlkdW1wIGFmdGVyd2FyZHMuCi0tICAvLyBVc2UgNGsgaGVyZSBi ZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgotKyAgLy8gVXNl IHRoZSBwYWdlIHNpemUgaGVyZSBiZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xl IHBhZ2UgZXZlbgotICAgLy8gaWYgYSBzbWFsbGVyIHNpemUgaXMgcmVxdWVzdGVkLCBhbmQgdGhp cyB0ZXN0IHdhbnRzIHRvCi0gICAvLyB0ZXN0IHRoZSB1cHBlciBib3VuZCBvZiB0aGUgbWVtb3J5 IHJhbmdlLgotLSAgY29uc3QgdWludDMyX3Qga01lbW9yeVNpemUgPSA0MDk2OyAgLy8gYnl0ZXMK LSsgIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0gZ2V0cGFnZXNpemUoKTsgIC8vIGJ5dGVz Ci0gICBjb25zdCBpbnQga09mZnNldCA9IGtNZW1vcnlTaXplIC0gc2l6ZW9mKGtJbGxlZ2FsSW5z dHJ1Y3Rpb24pOwotIAotICAgY29uc3QgcGlkX3QgY2hpbGQgPSBmb3JrKCk7Ci1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1 bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5j YwotaW5kZXggZmEzYzE3MTNhLi42Y2U3MDllMmYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9k dW1wX3dyaXRlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKLUBAIC0xMzgs NyArMTM4LDkgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKLSAgICAgICAgICAgICAgICAgICBj b25zdCBNaWNyb2R1bXBFeHRyYUluZm8mIG1pY3JvZHVtcF9leHRyYV9pbmZvLAotICAgICAgICAg ICAgICAgICAgIExpbnV4RHVtcGVyKiBkdW1wZXIpCi0gICAgICAgOiB1Y29udGV4dF8oY29udGV4 dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVMTCksCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsg ICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBO VUxMKSwKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19f KQotICAgICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUg OiBOVUxMKSwKLSAjZW5kaWYKLSAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKLUBAIC0zMzcsNiAr MzM5LDggQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKLSAjIGVsc2UKLSAjICBlcnJvciAiVGhp cyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKLSAjZW5kaWYKLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIGNvbnN0IGNoYXIga0FyY2hbXSA9ICJw cGM2NCI7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRv IHlvdXIgcGxhdGZvcm0geWV0IgotICNlbmRpZgotQEAgLTQwOSw3ICs0MTMsOSBAQCBjbGFzcyBN aWNyb2R1bXBXcml0ZXIgewotICAgdm9pZCBEdW1wQ1BVU3RhdGUoKSB7Ci0gICAgIFJhd0NvbnRl eHRDUFUgY3B1OwotICAgICBteV9tZW1zZXQoJmNwdSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUp KTsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsj aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNv bnRleHQoJmNwdSwgdWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsKLSsjZWxpZiAhZGVmaW5lZChf X0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICBVQ29udGV4dFJlYWRlcjo6 RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOwotICNlbHNlCi0g ICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8pOwotQEAg LTYwNSw3ICs2MTEsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAgdm9pZCogQWxsb2Mo dW5zaWduZWQgYnl0ZXMpIHsgcmV0dXJuIGR1bXBlcl8tPmFsbG9jYXRvcigpLT5BbGxvYyhieXRl cyk7IH0KLSAKLSAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsKLS0jaWYgIWRl ZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3Qg dmVjdG9yX3N0YXRlXzsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQotICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZs b2F0X3N0YXRlXzsKLSAjZW5kaWYKLSAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOwotZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9k dW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVt cF93cml0ZXJfdW5pdHRlc3QuY2MKLWluZGV4IDYzMzlhYzBjZC4uMjkxYWYxMDZiIDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNy b2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9t aWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1AQCAtMjc5LDEwICsyNzksMTkgQEAgVEVTVChN aWNyb2R1bXBXcml0ZXJUZXN0LCBCYXNpY1dpdGhNYXBwaW5ncykgewotICAgQ3Jhc2hBbmRHZXRN aWNyb2R1bXAobWFwcGluZ3MsIE1pY3JvZHVtcEV4dHJhSW5mbygpLCAmYnVmKTsKLSAgIEFTU0VS VF9UUlVFKENvbnRhaW5zTWljcm9kdW1wKGJ1ZikpOwotIAotKyAgaW50IHBhZ2Vfc2l6ZSA9IGdl dHBhZ2VzaXplKCk7Ci0gI2lmZGVmIF9fTFA2NF9fCi0tICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6 Om5wb3MsCi0tICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAwMDAwMDAw MDAwMDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAgIgotLSAgICAgICAgICAgICAgICAgICAgICIzMzIy MTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgLy8gVGhpcyB0 ZXN0IGlzIG9ubHkgYXZhaWxhYmxlIGZvciB0aGUgZm9sbG93aW5nIHBhZ2Ugc2l6ZXMKLSsgIEFT U0VSVF9UUlVFKChwYWdlX3NpemUgPT0gNDA5NikgfHwgKHBhZ2Vfc2l6ZSA9PSA2NTUzNikpOwot KyAgaWYgKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB7IAotKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6 Om5wb3MsCi0rICAgICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAw MDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCi0rICAgICAgICAgICAgICAgICAgICAgICAi MzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKLSsgIH0gZWxz ZSB7Ci0rICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSsgICAgICAgICAgICAgIGJ1 Zi5maW5kKCJNIDAwMDAwMDAwMDAwMTAwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDEw MDAwICIKLSsgICAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJD Q0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgfQotICNlbHNlCi0gICBBU1NFUlRfTkUoc3RkOjpz dHJpbmc6Om5wb3MsCi0gICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDEwMDAgMDAwMDAwMkEg MDAwMDEwMDAgIgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjIGIvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLWluZGV4IDQxNTA2ODk4My4uYjkzZTRhZmNmIDEwMDY0 NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2Nv cmVfZHVtcGVyLmNjCi1AQCAtMTEyLDYgKzExMiw5IEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpH ZXRUaHJlYWRJbmZvQnlJbmRleChzaXplX3QgaW5kZXgsIFRocmVhZEluZm8qIGluZm8pIHsKLSAj ZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgc3RhY2tfcG9pbnRlciA9Ci0gICAgICAgcmVpbnRl cnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBT X1JFR19TUF0pOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIHN0YWNrX3BvaW50 ZXIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0Lmdw X3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdKTsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBj b2RlIGhhc24ndCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1A QCAtMTk3LDcgKzIwMCwxMCBAQCBib29sIExpbnV4Q29yZUR1bXBlcjo6RW51bWVyYXRlVGhyZWFk cygpIHsKLSAgICAgICAgIG1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKFRocmVhZEluZm8pKTsKLSAg ICAgICAgIGluZm8udGdpZCA9IHN0YXR1cy0+cHJfcGdycDsKLSAgICAgICAgIGluZm8ucHBpZCA9 IHN0YXR1cy0+cHJfcHBpZDsKLS0jaWYgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMTsgaSsrKQotKyAg ICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3BfcmVnc1tpXSA9IHN0YXR1cy0+cHJfcmVnW2ldOwot KyNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gI2lmIGRlZmluZWQoX19BTkRST0lEX18pCi0gICAg ICAgICBmb3IgKGludCBpID0gRUZfUjA7IGkgPD0gRUZfUjMxOyBpKyspCi0gICAgICAgICAgIGlu Zm8ubWNvbnRleHQuZ3JlZ3NbaSAtIEVGX1IwXSA9IHN0YXR1cy0+cHJfcmVnW2ldOwotZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwotaW5k ZXggN2ZkNjUzMmFkLi4xOTljYmZmZmQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIu Y2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwotQEAgLTc2NSw3ICs3NjUsOSBAQCBib29s IExpbnV4RHVtcGVyOjpHZXRTdGFja0luZm8oY29uc3Qgdm9pZCoqIHN0YWNrLCBzaXplX3QqIHN0 YWNrX2xlbiwKLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbnRfc3RhY2tfcG9p bnRlciAmIH4ocGFnZV9zaXplIC0gMSkpOwotIAotICAgLy8gVGhlIG51bWJlciBvZiBieXRlcyBv ZiBzdGFjayB3aGljaCB3ZSB0cnkgdG8gY2FwdHVyZS4KLS0gIHN0YXRpYyBjb25zdCBwdHJkaWZm X3Qga1N0YWNrVG9DYXB0dXJlID0gMzIgKiAxMDI0OwotKyAgLy8gVGhpcyBub3cgZGVwZW5kcyBv biBwYWdlX3NpemUgdG8gYXZvaWQgbWlzc2luZyBkYXRhCi0rICAvLyBvbiBzeXN0ZW1zIHdpdGgg bGFyZ2VyIHBhZ2Ugc2l6ZXMuCi0rICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IGtTdGFja1RvQ2Fw dHVyZSA9IDggKiBwYWdlX3NpemU7Ci0gCi0gICBjb25zdCBNYXBwaW5nSW5mbyogbWFwcGluZyA9 IEZpbmRNYXBwaW5nKHN0YWNrX3BvaW50ZXIpOwotICAgaWYgKCFtYXBwaW5nKQotZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKLWluZGV4IDdi ZWUxNjBmMS4uMDdiYjJiODFhIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKLSsr KyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCi1AQCAtNjMsNyArNjMsOCBAQCBuYW1lc3BhY2UgZ29v Z2xlX2JyZWFrcGFkIHsKLSAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJ TzMyKQotIHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhfZW50cnk7Ci0gI2VsaWYgZGVmaW5l ZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAgICAgKGRlZmluZWQo X19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQotKyAgICAgKGRlZmluZWQoX19taXBz X18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKLSAjZW5kaWYKLSAK LWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjIGIvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYwotaW5kZXggMzMxZjRiYjM0Li4zZjcy Mjk0N2YgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNj Ci0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1AQCAtNTEsNiAr NTEsOCBAQAotICNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicmN4IgotICNlbGlmIGRlZmluZWQo X19taXBzX18pCi0gI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICIkMSIKLSsjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyOCIKLSAjZWxzZQot ICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgot ICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MgYi90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCi1pbmRleCBlM2RkYjgxYTYuLmZhMjg1NzVlZiAxMDA2 NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X3B0cmFjZV9kdW1wZXIuY2MKLUBAIC0xNDksMTkgKzE0OSwyNyBAQCBib29sIExpbnV4UHRyYWNl RHVtcGVyOjpDb3B5RnJvbVByb2Nlc3Modm9pZCogZGVzdCwgcGlkX3QgY2hpbGQsCi0gICByZXR1 cm4gdHJ1ZTsKLSB9Ci0gCi0tYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0 KFRocmVhZEluZm8qIGluZm8sIHBpZF90IHRpZCkKLS17Ci0rYm9vbCBMaW51eFB0cmFjZUR1bXBl cjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVhZEluZm8qIGluZm8sIHBpZF90IHRpZCkgewotICNpZmRl ZiBQVFJBQ0VfR0VUUkVHU0VUCi0gICBzdHJ1Y3QgaW92ZWMgaW87Ci0gICBpbmZvLT5HZXRHZW5l cmFsUHVycG9zZVJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKLS0gIGlmIChz eXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9p ZCopJmlvKSA9PSAtMSkgewotKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2 b2lkKilOVF9QUlNUQVRVUywgKHZvaWQqKSZpbykgPT0gLTEpIHsKLSAgICAgcmV0dXJuIGZhbHNl OwotICAgfQotIAotICAgaW5mby0+R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycygmaW8uaW92X2Jh c2UsICZpby5pb3ZfbGVuKTsKLS0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRp ZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAodm9pZCopJmlvKSA9PSAtMSkgewotKyAgaWYgKHB0cmFj ZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9GUFJFR1NFVCwgKHZvaWQqKSZpbykg PT0gLTEpIHsKLSAgICAgcmV0dXJuIGZhbHNlOwotICAgfQotKwotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICAvLyBHcmFiIHRoZSB2ZWN0b3IgcmVnaXN0ZXJzIG9uIFBQQzY0IHRvbwot KyAgaW5mby0+R2V0VmVjdG9yUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwot KyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUENfVk1YLCAo dm9pZCopJmlvKSA9PSAtMSkgewotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rI2VuZGlmIC8v IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsKLSAgIHJldHVybiB0cnVlOwotICNlbHNlCi0gICBy ZXR1cm4gZmFsc2U7Ci1AQCAtMjk4LDYgKzMwNiw5IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6 OkdldFRocmVhZEluZm9CeUluZGV4KHNpemVfdCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgewot ICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICBzdGFja19wb2ludGVyID0KLSAgICAgICByZWlu dGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01J UFNfUkVHX1NQXSk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhY2tfcG9p bnRlciA9Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQu Z3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlz IGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYK LWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjIGIvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYwotaW5kZXggZGE3MWUxNWRjLi4xMmJm YjMxN2EgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNj Ci0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi1AQCAtNDYyLDYg KzQ2Miw5IEBAIFRFU1QoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBWZXJpZnlTdGFja1JlYWRXaXRo TXVsdGlwbGVUaHJlYWRzKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgICAgcGlkX3Qq IHByb2Nlc3NfdGlkX2xvY2F0aW9uID0KLSAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3Qq PihvbmVfdGhyZWFkLm1jb250ZXh0LmdyZWdzWzFdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9Ci0rICAgICAgICByZWlu dGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncF9yZWdzWzhdKTsKLSAj ZWxzZQotICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRm b3JtLgotICNlbmRpZgotQEAgLTU1OSw2ICs1NjIsOCBAQCBURVNUX0YoTGludXhQdHJhY2VEdW1w ZXJUZXN0LCBTYW5pdGl6ZVN0YWNrQ29weSkgewotICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRo cmVhZF9pbmZvLnJlZ3MucmN4OwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICB1aW50cHRy X3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3JlZ3NbMV07Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZv Lm1jb250ZXh0LmdwX3JlZ3NbOF07Ci0gI2Vsc2UKLSAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3Qg YmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5kaWYKLWRpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9taW5pZHVtcF93cml0ZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKLWluZGV4IDMy NjM0ZWYwMC4uMmE1Njk0OGRlIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNj Ci0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKLUBAIC0xMzYsNyArMTM2LDkgQEAgY2xh c3MgTWluaWR1bXBXcml0ZXIgewotICAgICAgIDogZmRfKG1pbmlkdW1wX2ZkKSwKLSAgICAgICAg IHBhdGhfKG1pbmlkdW1wX3BhdGgpLAotICAgICAgICAgdWNvbnRleHRfKGNvbnRleHQgPyAmY29u dGV4dC0+Y29udGV4dCA6IE5VTEwpLAotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFk ZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICB2 ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+dmVjdG9yX3N0YXRlIDogTlVMTCksCi0r I2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAg ICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPmZsb2F0X3N0YXRlIDogTlVMTCks Ci0gI2VuZGlmCi0gICAgICAgICBkdW1wZXJfKGR1bXBlciksCi1AQCAtNDY4LDcgKzQ3MCw5IEBA IGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAgICAgIGlmICghY3B1LkFsbG9jYXRlKCkpCi0g ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgIG15X21lbXNldChjcHUuZ2V0KCksIDAs IHNpemVvZihSYXdDb250ZXh0Q1BVKSk7Ci0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAg IFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0XywgdmVj dG9yX3N0YXRlXyk7Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKLSAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0 KCksIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsKLSAjZWxzZQotICAgICAgICAgVUNvbnRleHRS ZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfKTsKLUBAIC04OTcsNyAr OTAxLDcgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAgICBkaXJlbnQtPmxvY2F0aW9uLnJ2 YSA9IDA7Ci0gICB9Ci0gCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICBib29sIFdyaXRlQ1BVSW5mb3JtYXRpb24oTURSYXdTeXN0ZW1JbmZvKiBzeXNf aW5mbykgewotICAgICBjaGFyIHZlbmRvcl9pZFtzaXplb2Yoc3lzX2luZm8tPmNwdS54ODZfY3B1 X2luZm8udmVuZG9yX2lkKSArIDFdID0gezB9OwotICAgICBzdGF0aWMgY29uc3QgY2hhciB2ZW5k b3JfaWRfbmFtZVtdID0gInZlbmRvcl9pZCI7Ci1AQCAtOTE3LDcgKzkyMSw5IEBAIGNsYXNzIE1p bmlkdW1wV3JpdGVyIHsKLSAKLSAgICAgLy8gcHJvY2Vzc29yX2FyY2hpdGVjdHVyZSBzaG91bGQg YWx3YXlzIGJlIHNldCwgZG8gdGhpcyBmaXJzdAotICAgICBzeXNfaW5mby0+cHJvY2Vzc29yX2Fy Y2hpdGVjdHVyZSA9Ci0tI2lmIGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSsgICAgICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfUFBDNjQ7Ci0rI2VsaWYgZGVm aW5lZChfX21pcHNfXykKLSAjIGlmIF9NSVBTX1NJTSA9PSBfQUJJTzMyCi0gICAgICAgICBNRF9D UFVfQVJDSElURUNUVVJFX01JUFM7Ci0gIyBlbGlmIF9NSVBTX1NJTSA9PSBfQUJJNjQKLUBAIC0x MzMzLDcgKzEzMzksOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICBjb25zdCBjaGFyKiBw YXRoXzsgIC8vIFBhdGggdG8gdGhlIGZpbGUgd2hlcmUgdGhlIG1pbmlkdW0gc2hvdWxkIGJlIHdy aXR0ZW4uCi0gCi0gICBjb25zdCB1Y29udGV4dF90KiBjb25zdCB1Y29udGV4dF87ICAvLyBhbHNv IGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGNvbnN0 IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3QqIGNvbnN0IHZlY3Rvcl9zdGF0ZV87Ci0rI2VsaWYg IWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnN0IGdv b2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBmbG9hdF9zdGF0ZV87ICAvLyBkaXR0bwot ICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1bXBlcl87Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWlu aWR1bXBfd3JpdGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAotaW5kZXggZTNiMGIxNmRh Li5jY2Q4YWEwYTQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAotKysrIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKLUBAIC00OCw2ICs0OCw4IEBAIGNsYXNzIEV4Y2VwdGlv bkhhbmRsZXI7Ci0gCi0gI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gdHlwZWRlZiBzdHJ1Y3Qg ZnBzaW1kX2NvbnRleHQgZnBzdGF0ZV90OwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSt0eXBlZGVmIHZycmVnc2V0X3QgdnN0YXRlX3Q7Ci0gI2VsaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSB0eXBlZGVmIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8 ZnByZWdzZXRfdD46OnR5cGUgZnBzdGF0ZV90OwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0 dGVzdC5jYwotaW5kZXggZDE5MmU1Y2JiLi5mYzFiZmE4ZDcgMTAwNjQ0Ci0tLS0gYS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9t aW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91 bml0dGVzdC5jYwotQEAgLTcxNSw2ICs3MTUsOSBAQCBURVNUKE1pbmlkdW1wV3JpdGVyVGVzdCwg SW52YWxpZFN0YWNrUG9pbnRlcikgewotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICBjb250 ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0gPQot ICAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRlcjsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rICBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQ QzY0X1JFR19TUF0gPQotKyAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRlcjsKLSAjZWxzZQotICMg ZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0 LiIKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYyBiL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCi1pbmRl eCA5OTM2Mjk0NWMuLmM1NGJhNzE0NSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCi0rKysgYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBw ZWRfZmlsZS5jYwotQEAgLTY1LDggKzY1LDcgQEAgYm9vbCBNZW1vcnlNYXBwZWRGaWxlOjpNYXAo Y29uc3QgY2hhciogcGF0aCwgc2l6ZV90IG9mZnNldCkgewotICAgfQotIAotICNpZiBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKLS0gICAoZGVmaW5lZChf X21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkKLS0KLSsgICAoZGVmaW5lZChfX21pcHNf XykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAg c3RydWN0IGtlcm5lbF9zdGF0IHN0OwotICAgaWYgKHN5c19mc3RhdChmZCwgJnN0KSA9PSAtMSB8 fCBzdC5zdF9zaXplIDwgMCkgewotICNlbHNlCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRl c3QuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21l bW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYwotaW5kZXggZmFkNTlmNDBjLi42MTY0OTZkNjcg MTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xp bnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRl c3QuY2MKLUBAIC0xNzYsOSArMTc2LDEwIEBAIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwg UmVtYXBBZnRlck1hcCkgewotIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgTWFwV2l0aE9m ZnNldCkgewotICAgLy8gUHV0IG1vcmUgZGF0YSBpbiB0aGUgdGVzdCBmaWxlIHRoaXMgdGltZS4g T2Zmc2V0cyBjYW4gb25seSBiZQotICAgLy8gZG9uZSBvbiBwYWdlIGJvdW5kYXJpZXMsIHNvIHdl IG5lZWQgYSB0d28gcGFnZSBmaWxlIHRvIHRlc3QgdGhpcy4KLS0gIGNvbnN0IGludCBwYWdlX3Np emUgPSA0MDk2OwotLSAgY2hhciBkYXRhMVsyICogcGFnZV9zaXplXTsKLS0gIHNpemVfdCBkYXRh MV9zaXplID0gc2l6ZW9mKGRhdGExKTsKLSsgIGNvbnN0IGludCBwYWdlX3NpemUgPSBnZXRwYWdl c2l6ZSgpOwotKyAgY2hhciAqZGF0YTEgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKDIgKiBw YWdlX3NpemUpKTsKLSsgIEVYUEVDVF9UUlVFKGRhdGExICE9IE5VTEwpOwotKyAgc2l6ZV90IGRh dGExX3NpemUgPSAoMiAqIHBhZ2Vfc2l6ZSk7Ci0gICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRh dGExX3NpemU7ICsraSkgewotICAgICBkYXRhMVtpXSA9IGkgJiAweDdmOwotICAgfQotZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2Fs bG9jYXRvcl91bml0dGVzdC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j b21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwotaW5kZXggNTgwM2I5MGQ1Li4yYTFj ZjE0ZjAgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29t bW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwotQEAg LTU3LDggKzU3LDkgQEAgVEVTVChQYWdlQWxsb2NhdG9yVGVzdCwgTGFyZ2VPYmplY3QpIHsKLSAK LSAgIEVYUEVDVF9FUSgwVSwgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSAgIHVpbnQ4 X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2MoMTAwMDAp KTsKLSsgIHVpbnQ2NF90IGV4cGVjdGVkX3BhZ2VzID0gMSArICgoMTAwMDAgLSAxKSAvIGdldHBh Z2VzaXplKCkpOwotICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7Ci0tICBFWFBFQ1RfRVEoM1Us IGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7Ci0rICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcGFn ZXMsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7Ci0gICBmb3IgKHVuc2lnbmVkIGkgPSAx OyBpIDwgMTA7ICsraSkgewotICAgICB1aW50OF90KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50 OF90Kj4oYWxsb2NhdG9yLkFsbG9jKGkpKTsKLSAgICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7 Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nv ci9leHBsb2l0YWJpbGl0eV9saW51eC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKLWluZGV4IDc5ODA1NmRmYS4u MjJiZDgxZmZmIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotQEAg LTIwMiwxMiArMjAyLDE0IEBAIGJvb2wgRXhwbG9pdGFiaWxpdHlMaW51eDo6RW5kZWRPbklsbGVn YWxXcml0ZSh1aW50NjRfdCBpbnN0cnVjdGlvbl9wdHIpIHsKLSAgIC8vIENoZWNrIGFyY2hpdGVj dHVyZSBhbmQgc2V0IGFyY2hpdGVjdHVyZSB2YXJpYWJsZSB0byBjb3JyZXNwb25kaW5nIGZsYWcK LSAgIC8vIGluIG9iamR1bXAuCi0gICBzd2l0Y2ggKGNvbnRleHQtPkdldENvbnRleHRDUFUoKSkg ewotKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkKLSAgICAgY2FzZSBN RF9DT05URVhUX1g4NjoKLSAgICAgICBhcmNoaXRlY3R1cmUgPSAiaTM4NiI7Ci0gICAgICAgYnJl YWs7Ci0gICAgIGNhc2UgTURfQ09OVEVYVF9BTUQ2NDoKLSAgICAgICBhcmNoaXRlY3R1cmUgPSAi aTM4Njp4ODYtNjQiOwotICAgICAgIGJyZWFrOwotKyNlbmRpZgotICAgICBkZWZhdWx0OgotICAg ICAgIC8vIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4gTm90ZSB0aGF0IEFSTSBhcmNoaXRlY3R1 cmVzIGFyZSBub3QKLSAgICAgICAvLyBzdXBwb3J0ZWQgYmVjYXVzZSBvYmpkdW1wIGRvZXMgbm90 IHN1cHBvcnQgQVJNLgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MgYi90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNj Ci1pbmRleCA1MjhlZTVmMjEuLjcyNzY0ZDZjMSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9p dGFiaWxpdHlfdW5pdHRlc3QuY2MKLUBAIC0xMDQsNiArMTA0LDggQEAgRXhwbG9pdGFiaWxpdHlG b3IoY29uc3Qgc3RyaW5nJiBmaWxlbmFtZSkgewotIH0KLSAKLSBURVNUKEV4cGxvaXRhYmlsaXR5 VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKLSsvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBv bmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUuCi0rI2lmICFkZWZp bmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSAg IEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAgICAg ICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImFzY2lpX3JlYWRfYXYuZG1wIikpOwotICAgQVNTRVJU X0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLUBAIC0xMzYsOSArMTM4 LDEyIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2luZG93c0VuZ2luZSkgewotICAg ICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2Nsb2JiZXJfd3JpdGUuZG1wIikp OwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfTE9XLAotICAg ICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2NvbmRpdGlvbmFsLmRtcCIpKTsK LSsjZW5kaWYKLSB9Ci0gCi0gVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2lu ZSkgewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0YWJsZSBvbiBhbiB4 ODYtY2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQo X194ODZfNjQpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9J TlRFUkVTVElORywKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfbnVsbF9y ZWFkX2F2LmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklM SVRZX0hJR0gsCi1AQCAtMTcxLDcgKzE3Niw4IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBU ZXN0TGludXhFbmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhf ZXhlY3V0YWJsZV9oZWFwLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVY UExPSVRBQklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4 X2ptcF90b19tb2R1bGVfbm90X2V4ZV9yZWdpb24uZG1wIikpOwotLSNpZm5kZWYgX1dJTjMyCi0r I2VuZGlmCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZp bmVkKF9feDg2XzY0KSkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklM SVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3Rv X25vbndyaXRhYmxlX21vZHVsZS5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFk OjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTE4MiwxMCArMTg4LDEwIEBAIFRFU1QoRXhwbG9p dGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0YWJp bGl0eUZvcigibGludXhfd3JpdGVfdG9fb3V0c2lkZV9tb2R1bGVfdmlhX21hdGguZG1wIikpOwot ICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJFU1RJTkcs Ci0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX3VuZGVyXzRr LmRtcCIpKTsKLS0jZW5kaWYgIC8vIF9XSU4zMgotKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjMy KSAmJiAoIWRlZmluZWQoX19pMzg2KSAmJiAhZGVmaW5lZChfX3g4Nl82NCkpCi0gfQotIAotLSNp Zm5kZWYgX1dJTjMyCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8 fCBkZWZpbmVkKF9feDg2XzY0KSkKLSBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3Qs IERpc2Fzc2VtYmxlQnl0ZXNUZXN0KSB7Ci0gICBBU1NFUlRfRkFMU0UoRXhwbG9pdGFiaWxpdHlM aW51eFRlc3Q6OkRpc2Fzc2VtYmxlQnl0ZXMoIiIsIE5VTEwsIDUsIE5VTEwpKTsKLSAgIHVpbnQ4 X3QgYnl0ZXNbNl0gPSB7MHhjNywgMHgwLCAweDUsIDB4MCwgMHgwLCAweDB9OwotQEAgLTMwMSw2 ICszMDcsNyBAQCBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIENhbGN1bGF0ZUFk ZHJlc3NUZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmd3JpdGVfYWRkcmVzcykpOwotIH0KLS0jZW5kaWYg IC8vIF9XSU4zMgotKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kz ODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotKwotIAotIH0gIC8vIG5hbWVzcGFjZQotZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJj b3JlL21pbmlkdW1wLTItY29yZS5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYwotaW5kZXggYWFkZTgyYzk5 Li4xOTVhYTczZjMgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKLSsrKyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTIt Y29yZS5jYwotQEAgLTc3LDYgKzc3LDggQEAKLSAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX01JUFMK LSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAgI2RlZmluZSBFTEZfQVJDSCAgRU1fQUFS Q0g2NAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICNkZWZpbmUgRUxGX0FSQ0gg IEVNX1BQQzY0Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19hcm1fXykKLUBAIC04Nyw2ICs4 OSw4IEBAIHR5cGVkZWYgdXNlcl9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7Ci0gI2VsaWYgZGVmaW5l ZCAoX19taXBzX18pCi0gLy8gVGhpcyBmaWxlLWxvY2FsIHR5cGVkZWYgc2ltcGxpZmllcyB0aGUg c291cmNlIGNvZGUuCi0gdHlwZWRlZiBncmVnc2V0X3QgdXNlcl9yZWdzX3N0cnVjdDsKLSsjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyB1c2VyX3Jl Z3Nfc3RydWN0OwotICNlbmRpZgotIAotIHVzaW5nIGdvb2dsZV9icmVha3BhZDo6TURUeXBlSGVs cGVyOwotQEAgLTMyMSw2ICszMjUsOSBAQCBzdHJ1Y3QgQ3Jhc2hlZFByb2Nlc3MgewotICNlbmRp ZgotICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAgICB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnBy ZWdzOwotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIG1jb250ZXh0 X3QgbWNvbnRleHQ7Ci0gI2VuZGlmCi0gICAgIHVpbnRwdHJfdCBzdGFja19hZGRyOwotICAgICBj b25zdCB1aW50OF90KiBzdGFjazsKLUBAIC01MzUsNiArNTQyLDM4IEBAIFBhcnNlVGhyZWFkUmVn aXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHJlYWQqIHRocmVhZCwKLSAgIHRocmVhZC0+bWNvbnRl eHQuZnBjX2VpciA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZmlyOwotICNlbmRpZgotIH0KLSsjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rc3RhdGljIHZvaWQKLStQYXJzZVRocmVhZFJlZ2lz dGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJlYWQsCi0rICAgICAgICAgICAgICAgICAg ICAgY29uc3QgTWluaWR1bXBNZW1vcnlSYW5nZSYgcmFuZ2UpIHsKLSsgIGNvbnN0IE1EUmF3Q29u dGV4dFBQQzY0KiByYXdyZWdzID0gcmFuZ2UuR2V0RGF0YTxNRFJhd0NvbnRleHRQUEM2ND4oMCk7 Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBp KyspCi0rICAgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tpXSA9IHJhd3JlZ3MtPmdwcltpXTsK LSsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdID0gcmF3cmVncy0+bHI7Ci0r ICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSA9IHJhd3JlZ3MtPnNycjA7Ci0rICB0 aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXSA9IHJhd3JlZ3MtPnNycjE7Ci0rICB0aHJl YWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXSA9IHJhd3JlZ3MtPmNyOwotKyAgdGhyZWFkLT5t Y29udGV4dC5ncF9yZWdzW1BUX1hFUl0gPSByYXdyZWdzLT54ZXI7Ci0rICB0aHJlYWQtPm1jb250 ZXh0LmdwX3JlZ3NbUFRfQ1RSXSA9IHJhd3JlZ3MtPmN0cjsKLSsgIHRocmVhZC0+bWNvbnRleHQu dl9yZWdzLT52cnNhdmUgPSByYXdyZWdzLT52cnNhdmU7Ci0rCi0rICBmb3IgKGludCBpID0gMDsg aSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotKyAgICAgIHRocmVh ZC0+bWNvbnRleHQuZnBfcmVnc1tpXSA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZnByZWdzW2ldOwot KwotKyAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXSA9IHJhd3JlZ3MtPmZsb2F0 X3NhdmUuZnBzY3I7Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVB X1BQQ19WUl9DT1VOVDsgaSsrKSB7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZy cmVnc1tpXVswXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0uaGlnaCA+PiAzMjsK LSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzFdID0gcmF3cmVncy0+ dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9y ZWdzLT52cnJlZ3NbaV1bMl0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdyA+ PiAzMjsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzNdID0gcmF3 cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3c7Ci0rICB9Ci0rCi0rICB0aHJlYWQtPm1j b250ZXh0LnZfcmVncy0+dnNjci52c2NyX3dvcmQgPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZl X3ZzY3IubG93ICYgMHhGRkZGRkZGRjsKLSt9Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29k ZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgotICNlbmRpZgotQEAg LTYyMyw2ICs2NjIsMTIgQEAgUGFyc2VTeXN0ZW1JbmZvKGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMs IENyYXNoZWRQcm9jZXNzKiBjcmFzaGluZm8sCi0gIyBlbHNlCi0gIyAgZXJyb3IgIlRoaXMgbWlw cyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCi0gIyBlbmRpZgotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChzeXNpbmZvLT5wcm9jZXNzb3JfYXJjaGl0 ZWN0dXJlICE9IE1EX0NQVV9BUkNISVRFQ1RVUkVfUFBDNjQpIHsKLSsgICAgZnByaW50ZihzdGRl cnIsCi0rICAgICAgICAgICAgIlRoaXMgdmVyc2lvbiBvZiBtaW5pZHVtcC0yLWNvcmUgb25seSBz dXBwb3J0cyBQUEM2NC5cbiIpOwotKyAgICBleGl0KDEpOwotKyAgfQotICNlbHNlCi0gI2Vycm9y ICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKLSAj ZW5kaWYKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklC VVRPUlMgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKLWluZGV4 IDg3MjRiN2YzMi4uOGUyOTQyNGVmIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvQ09OVFJJQlVUT1JTCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9DT05UUklCVVRPUlMKLUBAIC0xMywzICsxMyw0IEBAIE1hcmsgTWVudG92YWkgPG1hcmtAY2hy b21pdW0ub3JnPgotIFJvYmVydCBTZXNlayA8cnNlc2VrQGNocm9taXVtLm9yZz4KLSBTY290dCBH cmFoYW0gPHNjb3R0bWdAY2hyb21pdW0ub3JnPgotIEpvc2h1YSBQZXJhemEgPGpwZXJhemFAY2hy b21pdW0ub3JnPgotK1NoYXduIEFuYXN0YXNpbyA8c2hhd25AYW5hc3Rhcy5pbz4KLWRpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIu aCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5o Ci1pbmRleCA2ZWQ3N2E5OGUuLjFmZDgzNDY5YSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCi0rKysgYi90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAotQEAgLTE1LDYgKzE1 LDcgQEAKLSAjaWZuZGVmIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXwotICNkZWZp bmUgQ1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRk ZWY+Ci0gI2luY2x1ZGVfbmV4dCA8c3lzL3VzZXIuaD4KLSAKLSAjaW5jbHVkZSA8ZmVhdHVyZXMu aD4KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9jb250ZXh0LmggYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVt cC9taW5pZHVtcF9jb250ZXh0LmgKLWluZGV4IDNhM2U2MDNjYi4uMzExOGQ5ZTlmIDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29u dGV4dC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5p ZHVtcF9jb250ZXh0LmgKLUBAIC01OTIsNiArNTkyLDcwIEBAIHN0cnVjdCBNaW5pZHVtcENvbnRl eHRNSVBTNjQgewotICAgdWludDY0X3QgZmlyOwotIH07Ci0gCi0rLy8hIFxicmllZiBwcGM2NC1z cGVjaWZpYyBmbGFncyBmb3IgTWluaWR1bXBQUEM2NDo6Y29udGV4dF9mbGFncwotKy8vISBCYXNl ZCBvbiBtaW5pZHVtcF9jcHVfcHBjNjQuaCBmcm9tIGJyZWFrcGFkCi0rZW51bSBNaW5pZHVtcENv bnRleHRQUEM2NEZsYWdzIDogdWludDMyX3QgewotKyAgLy8hIFxicmllZiBJZGVudGlmaWVzIHRo ZSBjb250ZXh0IGFzIFBQQzY0LgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0ID0gMHgwMTAwMDAw MCwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBnZW5lcmFsIHB1 cnBvc2UgcmVnaXN0ZXJzLgotKyAgLy8hCi0rICAvLyEgUmVnaXN0ZXJzIGByMGAtYHIzMWAsIGBu aXBgLCBgbXNyYCwgYGxyYCwgZXRjLiBhcmUgdmFsaWQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBD NjRCYXNlID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAwMSwKLSsKLSsgIC8vISBc YnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMu Ci0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMgYGZwMGAtYGZwMzFgLCBgZnBzY3JgIGFyZSB2YWxp ZC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NEZsb2F0aW5nID0ga01pbmlkdW1wQ29udGV4dFBQ QzY0IHwgMHgwMDAwMDAwOCwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0 eSBvZiBBbHRpdmVjL1ZNWCByZWdpc3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMgYHYw YC1gdjMxYCwgYHZzY3JgLCBgdnJzYXZlYC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NFZlY3Rv ciA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMjAsCi0rCi0rICAvLyEgXGJyaWVm IEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgYWxsIHJlZ2lzdGVycwotKyAga01pbmlkdW1wQ29u dGV4dFBQQzY0QWxsID0ga01pbmlkdW1wQ29udGV4dFBQQzY0QmFzZSAgICAgfAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgfAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yCi0r fTsKLSsKLSsvLyEgXGJyaWVmIEEgUFBDNjQgQ1BVIGNvbnRleHQgY2FycmllZCBpbiBhIG1pbmlk dW1wIGZpbGUuCi0rLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtw YWQuCi0rc3RydWN0IE1pbmlkdW1wQ29udGV4dFBQQzY0IHsKLSsgIHVpbnQ2NF90IGNvbnRleHRf ZmxhZ3M7Ci0rCi0rICAvLyEgXGJyaWVmIEdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCi0rICB1 aW50NjRfdCBuaXA7Ci0rICB1aW50NjRfdCBtc3I7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsg IHVpbnQ2NF90IGNjcjsKLSsgIHVpbnQ2NF90IHhlcjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVp bnQ2NF90IGN0cjsKLSsKLSsgIC8vISBcYnJpZWYgRmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgot KyAgZG91YmxlIGZwcmVnc1szMl07Ci0rCi0rICAvLyEgXGJyaWVmIEZQVSBzdGF0dXMgcmVnaXN0 ZXIuCi0rICBkb3VibGUgZnBzY3I7Ci0rCi0rICAvLyEgXGJyaWVmIEFsdGl2ZWMvVk1YIHZlY3Rv ciByZWdpc3RlcnMuCi0rICBzdHJ1Y3QgewotKyAgICAgIC8vISBcYnJpZWYgVmVjdG9yIHJlZ2lz dGVycyBhcmUgMTI4Yml0cy4KLSsgICAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKLSsg ICAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZzY3I7Ci0rCi0rICAgICAgLy8hIFxicmllZiBQYWRk aW5nIGluY2x1ZGVkIGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5LgotKyAgICAgIHVpbnQzMl90 IHNhdmVfcGFkNVs0XTsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFZSU0FWRSByZWdpc3Rlci4KLSsg ICAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcg aW5jbHVkZWQgZm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCi0rICAgICAgdWludDMyX3Qgc2F2 ZV9wYWQ2WzddOwotKyAgfSB2cmVnczsKLSt9OwotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBh ZAotIAotICNlbmRpZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9IXwot ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlk dW1wX2NvbnRleHRfd3JpdGVyLmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLWluZGV4IGQ3ZTUzYTQ5My4uZDg5ZWI5 ZTAxIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAv bWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCi1AQCAtMTAxLDYgKzEw MSwxMyBAQCBNaW5pZHVtcENvbnRleHRXcml0ZXI6OkNyZWF0ZUZyb21TbmFwc2hvdChjb25zdCBD UFVDb250ZXh0KiBjb250ZXh0X3NuYXBzaG90KSB7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAK LSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6IHsKLSsgICAgICBjb250ZXh0ID0gc3Rk OjptYWtlX3VuaXF1ZTxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcj4oKTsKLSsgICAgICByZWlu dGVycHJldF9jYXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKj4oY29udGV4dC5nZXQoKSkK LSsgICAgICAgICAgLT5Jbml0YWxpemVGcm9tU25hcHNob3QoY29udGV4dF9zbmFwc2hvdC0+cHBj NjQpOwotKyAgICAgIGJyZWFrOwotKyAgICB9Ci0rCi0gICAgIGRlZmF1bHQ6IHsKLSAgICAgICBM T0coRVJST1IpIDw8ICJ1bmtub3duIGNvbnRleHQgYXJjaGl0ZWN0dXJlICIKLSAgICAgICAgICAg ICAgICAgIDw8IGNvbnRleHRfc25hcHNob3QtPmFyY2hpdGVjdHVyZTsKLUBAIC00NTMsNCArNDYw LDQ3IEBAIHNpemVfdCBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXI6OkNvbnRleHRTaXplKCkg Y29uc3QgewotICAgcmV0dXJuIHNpemVvZihjb250ZXh0Xyk7Ci0gfQotIAotK01pbmlkdW1wQ29u dGV4dFBQQzY0V3JpdGVyOjpNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpCi0rICA6IE1pbmlk dW1wQ29udGV4dFdyaXRlcigpLCBjb250ZXh0XygpIHsKLSsgICAgY29udGV4dF8uY29udGV4dF9m bGFncyA9IGtNaW5pZHVtcENvbnRleHRQUEM2NDsKLSt9Ci0rCi0rTWluaWR1bXBDb250ZXh0UFBD NjRXcml0ZXI6On5NaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpID0gZGVmYXVsdDsKLSsKLSt2 b2lkIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpJbml0YWxpemVGcm9tU25hcHNob3QoCi0r ICAgIGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29udGV4dF9zbmFwc2hvdCkgewotKyAgRENIRUNL X0VRKHN0YXRlKCksIGtTdGF0ZU11dGFibGUpOwotKyAgRENIRUNLX0VRKGNvbnRleHRfLmNvbnRl eHRfZmxhZ3MsIGtNaW5pZHVtcENvbnRleHRQUEM2NCk7Ci0rCi0rICBjb250ZXh0Xy5jb250ZXh0 X2ZsYWdzID0ga01pbmlkdW1wQ29udGV4dFBQQzY0QWxsOwotKwotKyAgbWVtY3B5KGNvbnRleHRf LnJlZ3MsIGNvbnRleHRfc25hcHNob3QtPnJlZ3MsIHNpemVvZihjb250ZXh0Xy5yZWdzKSk7Ci0r ICBjb250ZXh0Xy5uaXAgPSBjb250ZXh0X3NuYXBzaG90LT5uaXA7Ci0rICBjb250ZXh0Xy5tc3Ig PSBjb250ZXh0X3NuYXBzaG90LT5tc3I7Ci0rICBjb250ZXh0Xy5jY3IgPSBjb250ZXh0X3NuYXBz aG90LT5jY3I7Ci0rICBjb250ZXh0Xy54ZXIgPSBjb250ZXh0X3NuYXBzaG90LT54ZXI7Ci0rICBj b250ZXh0Xy5sbmsgPSBjb250ZXh0X3NuYXBzaG90LT5sbms7Ci0rICBjb250ZXh0Xy5jdHIgPSBj b250ZXh0X3NuYXBzaG90LT5jdHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8uZnByZWdzLCBjb250 ZXh0X3NuYXBzaG90LT5mcHJlZ3MsIHNpemVvZihjb250ZXh0Xy5mcHJlZ3MpKTsKLSsgIGNvbnRl eHRfLmZwc2NyID0gY29udGV4dF9zbmFwc2hvdC0+ZnBzY3I7Ci0rCi0rICBtZW1jcHkoY29udGV4 dF8udnJlZ3Muc2F2ZV92ciwgY29udGV4dF9zbmFwc2hvdC0+dnJlZ3Muc2F2ZV92ciwKLSsgICAg ICAgICBzaXplb2YoY29udGV4dF8udnJlZ3Muc2F2ZV92cikpOwotKyAgbWVtY3B5KCZjb250ZXh0 Xy52cmVncy5zYXZlX3ZzY3IsICZjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3ZzY3IsCi0r ICAgICAgICAgc2l6ZW9mKGNvbnRleHRfLnZyZWdzLnNhdmVfdnNjcikpOwotKyAgY29udGV4dF8u dnJlZ3Muc2F2ZV92cnNhdmUgPSBjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3Zyc2F2ZTsK LSt9Ci0rCi0rYm9vbCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6V3JpdGVPYmplY3QoCi0r ICAgIEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSB7Ci0rICBEQ0hFQ0tfRVEoc3Rh dGUoKSwga1N0YXRlV3JpdGFibGUpOwotKyAgcmV0dXJuIGZpbGVfd3JpdGVyLT5Xcml0ZSgmY29u dGV4dF8sIHNpemVvZihjb250ZXh0XykpOwotK30KLSsKLStzaXplX3QgTWluaWR1bXBDb250ZXh0 UFBDNjRXcml0ZXI6OkNvbnRleHRTaXplKCkgY29uc3QgewotKyAgRENIRUNLX0dFKHN0YXRlKCks IGtTdGF0ZUZyb3plbik7Ci0rICByZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsKLSt9Ci0rCi0gfSAg Ly8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaCBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKLWlu ZGV4IGQ0YWI5MzZlZS4uMWQyMmZjNTljIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAotKysrIGIvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0 ZXIuaAotQEAgLTMxNSw2ICszMTUsNDMgQEAgY2xhc3MgTWluaWR1bXBDb250ZXh0TUlQUzY0V3Jp dGVyIGZpbmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7Ci0gICBNaW5pZHVtcENv bnRleHRNSVBTNjQgY29udGV4dF87Ci0gfTsKLSAKLStjbGFzcyBNaW5pZHVtcENvbnRleHRQUEM2 NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgewotKyBwdWJsaWM6 Ci0rICBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpOwotKyAgfk1pbmlkdW1wQ29udGV4dFBQ QzY0V3JpdGVyKCkgb3ZlcnJpZGU7Ci0rCi0rICAvLyEgXGJyaWVmIEluaXRhbGl6ZXMgdGhlIE1p bmlkdW1wQ29udGV4dFBQQzY0IGJhc2VkIG9uIFxhIGNvbnRleHRfc25hcHNob3QuCi0rICAvLyEK LSsgIC8vISBccGFyYW1baW5dIGNvbnRleHRfc25hcHNob3QgVGhlIGNvbnRleHQgc25hcHNob3Qg dG8gdXNlIGFzIHNvdXJjZSBkYXRhLgotKyAgLy8hCi0rICAvLyEgXG5vdGUgVmFsaWQgaW4gI2tT dGF0ZU11dGFibGUuIE5vIG11dGF0aW9uIG9mIGNvbnRleHQoKSBtYXkgYmUgZG9uZSBiZWZvcmUK LSsgIC8vISAgICAgY2FsbGluZyB0aGlzIG1ldGhvZCwgYW5kIGl0IGlzIG5vdCBub3JtYWxseSBu ZWNlc3NhcnkgdG8gYWx0ZXIKLSsgIC8vISAgICAgY29udGV4dCgpIGFmdGVyIGNhbGxpbmcgdGhp cyBtZXRob2QuCi0rICB2b2lkIEluaXRhbGl6ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0 UFBDNjQqIGNvbnRleHRfc25hcHNob3QpOwotKwotKyAgLy8hIFxicmllZiBSZXR1cm5zIGEgcG9p bnRlciB0byB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgdGhhdCB0aGlzIG9iamVjdCB3aWxsCi0rICAv LyEgICAgIHdyaXRlLgotKyAgLy8hCi0rICAvLyEgXGF0dGVudGlvbiBUaGlzIHJldHVybnMgYSBu b24tYGNvbnN0YCBwb2ludGVyIHRvIHRoaXMgb2JqZWN04oCZcyBwcml2YXRlCi0rICAvLyEgICAg IGRhdGEgc28gdGhhdCBhIGNhbGxlciBjYW4gcG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJl IGRpcmVjdGx5LgotKyAgLy8hICAgICBUaGlzIGlzIGRvbmUgYmVjYXVzZSBwcm92aWRpbmcgc2V0 dGVyIGludGVyZmFjZXMgdG8gZWFjaCBmaWVsZCBpbiB0aGUKLSsgIC8vISAgICAgY29udGV4dCBz dHJ1Y3R1cmUgd291bGQgYmUgdW53aWVsZHkgYW5kIGN1bWJlcnNvbWUuIENhcmUgbXVzdCBiZSB0 YWtlbgotKyAgLy8hICAgICB0byBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgY29ycmVj dGx5LiBUaGUgY29udGV4dCBzdHJ1Y3R1cmUKLSsgIC8vISAgICAgbXVzdCBvbmx5IGJlIG1vZGlm aWVkIHdoaWxlIHRoaXMgb2JqZWN0IGlzIGluIHRoZSAja1N0YXRlTXV0YWJsZQotKyAgLy8hICAg ICBzdGF0ZS4KLSsgIE1pbmlkdW1wQ29udGV4dFBQQzY0KiBjb250ZXh0KCkgeyByZXR1cm4gJmNv bnRleHRfOyB9Ci0rCi0rIHByb3RlY3RlZDoKLSsgIC8vIE1pbmlkdW1wV3JpdGFibGU6Ci0rICBi b29sIFdyaXRlT2JqZWN0KEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSBvdmVycmlk ZTsKLSsKLSsgIC8vIE1pbmlkdW1wQ29udGV4dFdyaXRlcjoKLSsgIHNpemVfdCBDb250ZXh0U2l6 ZSgpIGNvbnN0IG92ZXJyaWRlOwotKwotKyBwcml2YXRlOgotKyAgTWluaWR1bXBDb250ZXh0UFBD NjQgY29udGV4dF87Ci0rfTsKLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLSAKLSAjZW5k aWYgIC8vIENSQVNIUEFEX01JTklEVU1QX01JTklEVU1QX0NPTlRFWFRfV1JJVEVSX0hfCi1kaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf Y29udGV4dF93cml0ZXJfdGVzdC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21p bmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MKLWluZGV4IDMyMTZhOTA2Yi4u YTlmY2JlOWQ4IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5j YwotQEAgLTIxMyw2ICsyMTMsMjEgQEAgVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIE1JUFM2 NF9Gcm9tU25hcHNob3QpIHsKLSAgICAgICBjb250ZXh0LCBFeHBlY3RNaW5pZHVtcENvbnRleHRN SVBTNjQsIGtTZWVkKTsKLSB9Ci0gCi0rVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIFBQQzY0 X1plcm9zKSB7Ci0rICBFbXB0eUNvbnRleHRUZXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVy LCBNaW5pZHVtcENvbnRleHRQUEM2ND4oCi0rICAgIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0 KTsKLSt9Ci0rCi0rVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIFBQQzY0X0Zyb21TbmFwc2hv dCkgewotKyAgY29uc3RleHByIHVpbnQzMl90IGtTZWVkID0gNjQ7Ci0rICBDUFVDb250ZXh0UFBD NjQgY29udGV4dF9wcGM2NDsKLSsgIENQVUNvbnRleHQgY29udGV4dDsKLSsgIGNvbnRleHQucHBj NjQgPSAmY29udGV4dF9wcGM2NDsKLSsgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQoJmNvbnRl eHQsIGtTZWVkKTsKLSsgIEZyb21TbmFwc2hvdFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0 ZXIsIE1pbmlkdW1wQ29udGV4dFBQQzY0PigKLSsgICAgICBjb250ZXh0LCBFeHBlY3RNaW5pZHVt cENvbnRleHRQUEM2NCwga1NlZWQpOwotK30KLSsKLSB9ICAvLyBuYW1lc3BhY2UKLSB9ICAvLyBu YW1lc3BhY2UgdGVzdAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193 cml0ZXIuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVt cF9taXNjX2luZm9fd3JpdGVyLmNjCi1pbmRleCAwOTc0ZTNkZGYuLmI3MWVjNTg4MCAxMDA2NDQK LS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21p c2NfaW5mb193cml0ZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21p bmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKLUBAIC0xMzUsNiArMTM1LDggQEAg c3RkOjpzdHJpbmcgTWluaWR1bXBNaXNjSW5mb0RlYnVnQnVpbGRTdHJpbmcoKSB7Ci0gICBzdGF0 aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHMiOwotICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQUzY0RUwpCi0gICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHM2NCI7 Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSsgIHN0YXRpYyBjb25zdGV4cHIgY2hh ciBrQ1BVW10gPSAicHBjNjQiOwotICNlbHNlCi0gI2Vycm9yIGRlZmluZSBrQ1BVIGZvciB0aGlz IENQVQotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKLWluZGV4IDdhMWIyNzYzYy4uYmVkYThkYTll IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2Fw dHVyZV9tZW1vcnkuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2NhcHR1cmVfbWVtb3J5LmNjCi1AQCAtMTEyLDYgKzExMiwxMSBAQCB2b2lkIENhcHR1cmVN ZW1vcnk6OlBvaW50ZWRUb0J5Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBjb250ZXh0LAotICAg Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGQ6OnNpemUoY29udGV4dC5taXBzZWwtPnJlZ3MpOyAr K2kpIHsKLSAgICAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0Lm1p cHNlbC0+cmVnc1tpXSk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCi0rICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQucHBjNjQt Pm5pcCk7Ci0rICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0ZDo6c2l6ZShjb250ZXh0LnBwYzY0 LT5yZWdzKTsgKytpKSB7Ci0rICAgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwg Y29udGV4dC5wcGM2NC0+cmVnc1tpXSk7Ci0rICB9Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAj ZW5kaWYKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9jcHVfYXJjaGl0ZWN0dXJlLmggYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKLWluZGV4IDgxMWE3MjA5NS4uZjRmODM5ODFkIDEwMDY0 NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hp dGVjdHVyZS5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9j cHVfYXJjaGl0ZWN0dXJlLmgKLUBAIC00Myw3ICs0MywxMCBAQCBlbnVtIENQVUFyY2hpdGVjdHVy ZSB7Ci0gICBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMLAotIAotICAgLy8hIFxicmllZiA2NC1iaXQg TUlQU0VMLgotLSAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMCi0rICBrQ1BVQXJjaGl0ZWN0dXJl TUlQUzY0RUwsCi0rCi0rICAvLyEgXGJyaWVmIDY0LWJpdCBQUEM2NC4KLSsgIGtDUFVBcmNoaXRl Y3R1cmVQUEM2NAotIH07Ci0gCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2Mg Yi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwot aW5kZXggYzc1YjU1NTVlLi5hZWFkZTU3N2EgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwotKysrIGIvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKLUBAIC0xNjksNiArMTY5 LDggQEAgdWludDY0X3QgQ1BVQ29udGV4dDo6SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3Qgewot ICAgICAgIHJldHVybiBhcm0tPnBjOwotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoK LSAgICAgICByZXR1cm4gYXJtNjQtPnBjOwotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2 NDoKLSsgICAgICByZXR1cm4gcHBjNjQtPm5pcDsKLSAgICAgZGVmYXVsdDoKLSAgICAgICBOT1RS RUFDSEVEKCk7Ci0gICAgICAgcmV0dXJuIH4wdWxsOwotQEAgLTE4NSw2ICsxODcsOCBAQCB1aW50 NjRfdCBDUFVDb250ZXh0OjpTdGFja1BvaW50ZXIoKSBjb25zdCB7Ci0gICAgICAgcmV0dXJuIGFy bS0+c3A7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICAgIHJldHVybiBh cm02NC0+c3A7Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotKyAgICAgIHJldHVy biBwcGM2NC0+cmVnc1sxXTsKLSAgICAgZGVmYXVsdDoKLSAgICAgICBOT1RSRUFDSEVEKCk7Ci0g ICAgICAgcmV0dXJuIH4wdWxsOwotQEAgLTE5Niw2ICsyMDAsNyBAQCBib29sIENQVUNvbnRleHQ6 OklzNjRCaXQoKSBjb25zdCB7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVg4Nl82NDoKLSAg ICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZU1JUFM2NEVMOgotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKLSAgICAgICByZXR1 cm4gdHJ1ZTsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2OgotICAgICBjYXNlIGtDUFVB cmNoaXRlY3R1cmVBUk06Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvY3B1X2NvbnRleHQuaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2NwdV9jb250ZXh0LmgKLWluZGV4IGZiMjNjNDY3OS4uZWViZWRlNjNjIDEwMDY0 NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRl eHQuaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2Nv bnRleHQuaAotQEAgLTM1Miw2ICszNTIsMjQgQEAgc3RydWN0IENQVUNvbnRleHRNSVBTNjQgewot ICAgdWludDY0X3QgZmlyOwotIH07Ci0gCi0rLy8hIFxicmllZiBBIGNvbnRleHQgc3RydWN0dXJl IGNhcnJ5aW5nIFBQQzY0IENQVSBzdGF0ZS4KLStzdHJ1Y3QgQ1BVQ29udGV4dFBQQzY0IHsKLSsg IHVpbnQ2NF90IG5pcDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwot KyAgdWludDY0X3QgY2NyOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgbG5rOwotKyAg dWludDY0X3QgY3RyOwotKyAgZG91YmxlIGZwcmVnc1szMl07Ci0rICBkb3VibGUgZnBzY3I7Ci0r ICBzdHJ1Y3QgewotKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKLSsgICAgdWludDEy OF9zdHJ1Y3Qgc2F2ZV92c2NyOwotKyAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKLSsgIH0gdnJl Z3M7Ci0rfTsKLSsKLSAvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJsZSBvZiBj YXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkgc3VwcG9ydGVkCi0gLy8hICAgICBDUFUgYXJjaGl0 ZWN0dXJlLgotIHN0cnVjdCBDUFVDb250ZXh0IHsKLUBAIC0zODIsNiArNDAwLDcgQEAgc3RydWN0 IENQVUNvbnRleHQgewotICAgICBDUFVDb250ZXh0QVJNNjQqIGFybTY0OwotICAgICBDUFVDb250 ZXh0TUlQUyogbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0KiBtaXBzNjQ7Ci0rICAgIENQ VUNvbnRleHRQUEM2NCogcHBjNjQ7Ci0gICB9OwotIH07Ci0gCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXgu aCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250 ZXh0X2xpbnV4LmgKLWluZGV4IDlmNDZhNDg5Ny4uYWE2NzdjNGViIDEwMDY0NAotLS0tIGEvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGlu dXguaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv Y3B1X2NvbnRleHRfbGludXguaAotQEAgLTE1LDYgKzE1LDcgQEAKLSAjaWZuZGVmIENSQVNIUEFE X1NOQVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCi0gI2RlZmluZSBDUkFTSFBBRF9T TkFQU0hPVF9MSU5VWF9DUFVfQ09OVEVYVF9MSU5VWF9IXwotIAotKyNpbmNsdWRlIDxjc3RyaW5n PgotICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKLSAjaW5jbHVkZSAic25hcHNob3Qv Y3B1X2NvbnRleHQuaCIKLSAjaW5jbHVkZSAic25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQu aCIKLUBAIC0xNzQsNiArMTc1LDc4IEBAIHZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRNSVBTKAot IAotICNlbmRpZiAgLy8gQVJDSF9DUFVfTUlQU19GQU1JTFkgfHwgRE9YWUdFTgotIAotKyNpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkgfHwgRE9YWUdFTgotKwotKy8vISBcYnJpZWYg SW5pdGFsaXplcyBhIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUgZnJvbSBuYXRpdmUgY29udGV4 dAotKy8vISAgICAgc3RydWN0dXJlcyBvbiBMaW51eC4KLSsvLyEKLSsvLyEgXHBhcmFtW2luXSB0 aHJlYWRfY29udGV4dCBUaGUgbmF0aXZlIHRocmVhZCBjb250ZXh0LgotKy8vISBccGFyYW1baW5d IGZsb2F0X2NvbnRleHQgVGhlIG5hdGl2ZSBmbG9hdCBjb250ZXh0LgotKy8vISBccGFyYW1baW5d IHZlY3Rvcl9jb250ZXh0IFRoZSBuYXRpdmUgdmVjdG9yIGNvbnRleHQuCi0rLy8hIFxwYXJhbVtv dXRdIGNvbnRleHQgVGhlIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUgdG8gaW5pdGFsaXplLgot K3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Ci0rdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQ QzY0KAotKyAgICBjb25zdCBUaHJlYWRDb250ZXh0Ojp0NjRfdCYgdGhyZWFkX2NvbnRleHQsCi0r ICAgIGNvbnN0IEZsb2F0Q29udGV4dDo6ZjY0X3QmIGZsb2F0X2NvbnRleHQsCi0rICAgIGNvbnN0 IFZlY3RvckNvbnRleHQ6OnY2NF90JiB2ZWN0b3JfY29udGV4dCwKLSsgICAgdHlwZW5hbWUgVHJh aXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+cmVncywg dGhyZWFkX2NvbnRleHQuZ3ByLCBzaXplb2YoY29udGV4dC0+cmVncykpOwotKyAgY29udGV4dC0+ bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOwotKyAgY29udGV4dC0+bXNyID0gdGhyZWFkX2NvbnRl eHQubXNyOwotKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2NyOwotKyAgY29udGV4 dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOwotKyAgY29udGV4dC0+bG5rID0gdGhyZWFkX2Nv bnRleHQubG5rOwotKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQuY3RyOwotKwotKyAg bWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5mcHJlZ3MsIHNpemVvZihjb250 ZXh0LT5mcHJlZ3MpKTsKLSsgIGNvbnRleHQtPmZwc2NyID0gZmxvYXRfY29udGV4dC5mcHNjcjsK LSsKLSsgIGZvciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBpKyspIHsKLSsgICAgY29udGV4dC0+ dnJlZ3Muc2F2ZV92cltpXSA9IHsKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52 cnJlZ3NbaV1bMF0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1b MV0sCi0rICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzJdKSA8PCAz MikgfAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzNdCi0rICAgIH07Ci0rICB9 Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsK LSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWludDY0X3QpdmVjdG9yX2NvbnRl eHQudnNjci52c2NyX3dvcmR9OwotK30KLSsKLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgot K3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKLSsgICAgY29uc3QgU2lnbmFsVGhyZWFk Q29udGV4dDY0ICZ0aHJlYWRfY29udGV4dCwKLSsgICAgY29uc3QgU2lnbmFsRmxvYXRDb250ZXh0 NjQgJmZsb2F0X2NvbnRleHQsCi0rICAgIGNvbnN0IFNpZ25hbFZlY3RvckNvbnRleHQ2NCAmdmVj dG9yX2NvbnRleHQsCi0rICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29udGV4dCkg ewotKwotKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0LnJlZ3MsIHNpemVv Zihjb250ZXh0LT5yZWdzKSk7Ci0rICBjb250ZXh0LT5uaXAgPSB0aHJlYWRfY29udGV4dC5uaXA7 Ci0rICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7Ci0rICBjb250ZXh0LT5jY3Ig PSB0aHJlYWRfY29udGV4dC5jY3I7Ci0rICBjb250ZXh0LT54ZXIgPSB0aHJlYWRfY29udGV4dC54 ZXI7Ci0rICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7Ci0rICBjb250ZXh0LT5j dHIgPSB0aHJlYWRfY29udGV4dC5jdHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+ZnByZWdzLCBm bG9hdF9jb250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJlZ3MpKTsKLSsgIGNvbnRleHQt PmZwc2NyID0gZmxvYXRfY29udGV4dC5mcHNjcjsKLSsKLSsgIGZvciAodWludDhfdCBpID0gMDsg aSA8IDMyOyBpKyspIHsKLSsgICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cltpXSA9IHsKLSsgICAg ICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMF0pIDw8IDMyKSB8Ci0rICAg ICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCi0rICAgICAgKCgodWludDY0X3QpdmVj dG9yX2NvbnRleHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAotKyAgICAgICAgdmVjdG9yX2NvbnRl eHQudnJyZWdzW2ldWzNdCi0rICAgIH07Ci0rICB9Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3Zy c2F2ZSA9IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsKLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnNj ciA9IHswLCAodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52c2NyX3dvcmR9OwotK30KLSsK LSsKLSsjZW5kaWYKLSsKLSB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLSB9ICAvLyBuYW1lc3Bh Y2UgY3Jhc2hwYWQKLSAKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MK LWluZGV4IGQzMmJkMTkzNy4uMmRkNTM4YzJiIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCi0r KysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19y ZW5kZXp2b3VzX3Rlc3QuY2MKLUBAIC0xOTIsNiArMTkyLDggQEAgdm9pZCBUZXN0QWdhaW5zdFRh cmdldChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICBkZXZp Y2UgPT0gMCAmJiBpbm9kZSA9PSAwICYmIG1hcHBpbmdfbmFtZSA9PSAiW3Zkc29dIjsKLSAjaWYg ZGVmaW5lZChBUkNIX0NQVV9YODYpCi0gICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBr UHJlZml4W10gPSAibGludXgtZ2F0ZS5zby4iOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjQpCi0rICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4W10gPSAibGludXgt dmRzbzY0LnNvLiI7Ci0gI2Vsc2UKLSAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQ cmVmaXhbXSA9ICJsaW51eC12ZHNvLnNvLiI7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90 X2xpbnV4LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv ZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi1pbmRleCBjZDQwYjNiMTIuLjZiY2YyM2I2ZiAx MDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAt MzIzLDYgKzMyMyw2OSBAQCBib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0 PENvbnRleHRUcmFpdHM2ND4oCi0gICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNvbnRl eHRfLm1pcHM2NCk7Ci0gfQotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Ci0rc3RhdGljIGJvb2wgUmVhZENvbnRl eHQoUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg TGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAgICAg IHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogZGVzdF9jb250ZXh0KSB7Ci0rICBjb25zdCBQ cm9jZXNzTWVtb3J5KiBtZW1vcnkgPSByZWFkZXItPk1lbW9yeSgpOwotKwotKyAgTGludXhWTUFk ZHJlc3MgZ3BfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRz OjpNQ29udGV4dCwgZ3BfcmVncyk7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFRocmVh ZENvbnRleHQgdGhyZWFkX2NvbnRleHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVhZChncF9yZWdzX2Fk ZHJlc3MsIHNpemVvZih0aHJlYWRfY29udGV4dCksICZ0aHJlYWRfY29udGV4dCkpIHsKLSsgICAg TE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBncF9yZWdzISI7Ci0rICAgIHJldHVybiBmYWxz ZTsKLSsgIH0KLSsKLSsgIExpbnV4Vk1BZGRyZXNzIGZwX3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRf YWRkcmVzcyArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihV Q29udGV4dCwgbWNvbnRleHQpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIGZwX3JlZ3MpOwotKwotKyAgdHlw ZW5hbWUgVHJhaXRzOjpTaWduYWxGbG9hdENvbnRleHQgZnBfY29udGV4dDsKLSsgIGlmICghbWVt b3J5LT5SZWFkKGZwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKGZwX2NvbnRleHQpLCAmZnBfY29udGV4 dCkpIHsKLSsgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBmcF9yZWdzISI7Ci0rICAg IHJldHVybiBmYWxzZTsKLSsgIH0KLSsKLSsgIExpbnV4Vk1BZGRyZXNzIHZfcmVnc19wdHJfYWRk cmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCB2bXhfcmVz ZXJ2ZSkgKyA4OwotKwotKyAgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxWZWN0b3JDb250ZXh0IHZf Y29udGV4dDsKLSsgIGlmICghbWVtb3J5LT5SZWFkKHZfcmVnc19wdHJfYWRkcmVzcywgc2l6ZW9m KHZfY29udGV4dCksICZ2X2NvbnRleHQpKSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0 IHJlYWQgdl9yZWdzISI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsKLSsgIEluaXRpYWxp emVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0Pih0aHJlYWRfY29udGV4dCwgZnBfY29u dGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdl9jb250ZXh0LCBkZXN0X2NvbnRl eHQpOwotKwotKyAgcmV0dXJuIHRydWU7Ci0rfQotKwotK3RlbXBsYXRlPD4KLStib29sIEV4Y2Vw dGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgIFBy b2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAotKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2Fk ZHJlc3MpIHsKLSsgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQUEM2 NDsKLSsgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OwotKwotKyAgcmV0 dXJuIGludGVybmFsOjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAotKyAgICAgIHJlYWRl ciwgY29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5wcGM2NCk7Ci0rfQotKwotK3RlbXBsYXRlPD4K LStib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHMz Mj4oCi0rICAgIFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAotKyAgICBMaW51eFZNQWRkcmVz cyBjb250ZXh0X2FkZHJlc3MpIHsKLSsgIC8vIFBQQzY0IGlzIDY0LWJpdAotKyAgcmV0dXJuIGZh bHNlOwotK30KLSsKLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLSAKLSBib29sIEV4 Y2VwdGlvblNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9j ZXNzX3JlYWRlciwKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaCBiL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5o Ci1pbmRleCBlYTBjZDIxMDYuLmU0MmRmNTIwZiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5o Ci0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNl cHRpb25fc25hcHNob3RfbGludXguaAotQEAgLTg0LDYgKzg0LDggQEAgY2xhc3MgRXhjZXB0aW9u U25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYyBFeGNlcHRpb25TbmFwc2hvdCB7Ci0gI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgICAgQ1BVQ29udGV4dE1JUFMgbWlwc2Vs OwotICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2NDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKLSsgICAgQ1BVQ29udGV4dFBQQzY0IHBwYzY0OwotICNlbmRpZgotICAg fSBjb250ZXh0X3VuaW9uXzsKLSAgIENQVUNvbnRleHQgY29udGV4dF87Ci1kaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3Nu YXBzaG90X2xpbnV4X3Rlc3QuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYwotaW5kZXggYzE3MTcw YjQzLi5iNmE3MTRjYzYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYwotKysrIGIv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3Nu YXBzaG90X2xpbnV4X3Rlc3QuY2MKLUBAIC0yOTYsNyArMjk2LDI4IEBAIHZvaWQgRXhwZWN0Q29u dGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGV4 cGVjdGVkKSB7Ci0gICAgICAgICAgICAgMCk7Ci0gI3VuZGVmIENQVV9BUkNIX05BTUUKLSB9Ci0r I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rdXNpbmcgTmF0aXZlQ1BVQ29u dGV4dCA9IHVjb250ZXh0X3Q7Ci0rCi0rdm9pZCBJbml0aWFsaXplQ29udGV4dChOYXRpdmVDUFVD b250ZXh0KiBjb250ZXh0KSB7Ci0rICBmb3IgKHNpemVfdCByZWcgPSAwOyByZWcgPCAzMjsgKyty ZWcpIHsKLSsgICAgY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddID0gcmVnOwotKyAg fQotKwotKyAgbWVtc2V0KCZjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzLCA0NCwKLSsgICAg ICBzaXplb2YoY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncykpOwotK30KLSAKLSt2b2lkIEV4 cGVjdENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBjb25zdCBOYXRpdmVDUFVDb250 ZXh0JiBleHBlY3RlZCkgewotKyAgRVhQRUNUX0VRKGFjdHVhbC5hcmNoaXRlY3R1cmUsIGtDUFVB cmNoaXRlY3R1cmVQUEM2NCk7Ci0rCi0rICBmb3IgKHNpemVfdCByZWcgPSAwOyByZWcgPCAzMjsg KytyZWcpIHsKLSsgICAgRVhQRUNUX0VRKGFjdHVhbC5wcGM2NC0+cmVnc1tyZWddLCBleHBlY3Rl ZC51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10pOwotKyAgfQotKwotKyAgRVhQRUNUX0VRKG1lbWNt cChhY3R1YWwucHBjNjQtPmZwcmVncywgZXhwZWN0ZWQudWNfbWNvbnRleHQuZnBfcmVncywKLSsg ICAgICAgICAgICBzaXplb2YoYWN0dWFsLnBwYzY0LT5mcHJlZ3MpKSwgMCk7Ci0rfQotICNlbHNl Ci0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MgYi90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9s aW51eC5jYwotaW5kZXggZWUyNDZlOGJjLi45NTU1ZGNlMDQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51 eC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv cHJvY2Vzc19yZWFkZXJfbGludXguY2MKLUBAIC0xMDgsNiArMTA4LDggQEAgdm9pZCBQcm9jZXNz UmVhZGVyTGludXg6OlRocmVhZDo6SW5pdGlhbGl6ZVN0YWNrKFByb2Nlc3NSZWFkZXJMaW51eCog cmVhZGVyKSB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHN0YWNr X3BvaW50ZXIgPSByZWFkZXItPklzNjRCaXQoKSA/IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0 LnQ2NC5yZWdzWzI5XQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhy ZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDMyLnJlZ3NbMjldOwotKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgc3RhY2tfcG9pbnRlciA9IHRocmVhZF9pbmZvLnRocmVh ZF9jb250ZXh0LnQ2NC5ncHJbMV07Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9z aWduYWxfY29udGV4dC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvc2lnbmFsX2NvbnRleHQuaAotaW5kZXggMTEwMDI0NjgwLi5hMWYyZGEyNTkgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWdu YWxfY29udGV4dC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9zaWduYWxfY29udGV4dC5oCi1AQCAtNDIyLDYgKzQyMiw4OSBAQCBzdGF0aWNfYXNz ZXJ0KG9mZnNldG9mKFVDb250ZXh0PENvbnRleHRUcmFpdHM2ND4sIG1jb250ZXh0LmZwcmVncykg PT0KLSAgICAgICAgICAgICAgICJjb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotICNlbmRpZgot IAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKwotK3N0cnVjdCBTaWdu YWxUaHJlYWRDb250ZXh0NjQgewotKyAgdWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRfdCBu aXA7Ci0rICB1aW50NjRfdCBtc3I7Ci0rICB1aW50NjRfdCBvcmlnX3IzOwotKyAgdWludDY0X3Qg Y3RyOwotKyAgdWludDY0X3QgbG5rOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgY2Ny OwotKyAgdWludDY0X3Qgc29mdGU7Ci0rICB1aW50NjRfdCB0cmFwOwotKyAgdWludDY0X3QgZGFy OwotKyAgdWludDY0X3QgZHNpc3I7Ci0rICB1aW50NjRfdCByZXN1bHQ7Ci0rICB1aW50NjRfdCBk c2NyOwotKyAgdWludDY0X3QgZnByMFszXTsKLSt9OwotKwotK3N0cnVjdCBTaWduYWxGbG9hdENv bnRleHQ2NCB7Ci0rICBkb3VibGUgcmVnc1szMl07Ci0rICBkb3VibGUgZnBzY3I7Ci0rfTsKLSsK LStzdHJ1Y3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0IHsKLSsgIGludDMyX3QgdnJyZWdzWzMyXVs0 XTsKLSsgIHN0cnVjdCB7Ci0rICAgIGludDMyX3QgX19wYWRbM107Ci0rICAgIGludDMyX3QgdnNj cl93b3JkOwotKyAgfSB2c2NyOwotKyAgaW50MzJfdCB2cnNhdmU7Ci0rICBpbnQzMl90IF9fcGFk WzNdOwotK30gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMTYpKSk7Ci0rCi0rCi0rI3ByYWdt YSBwYWNrKHBvcCkKLStzdHJ1Y3QgTUNvbnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZXNlcnZlZFs0 XTsKLSsgIGludDMyX3Qgc2lnbmFsOwotKyAgaW50MzJfdCBfX3BhZDA7Ci0rICB1aW50NjRfdCBo YW5kbGVyOwotKyAgdWludDY0X3Qgb2xkbWFzazsKLSsgIHVpbnQ2NF90IHB0X3JlZ3NfcHRyOwot KyAgU2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7Ci0rICBTaWduYWxGbG9hdENvbnRleHQ2 NCAgZnBfcmVnczsKLSsgIFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9yZWdzOwotKyAgaW50NjRf dCB2bXhfcmVzZXJ2ZVs2OV07Ci0rfTsKLSsKLStzdHJ1Y3QgQ29udGV4dFRyYWl0czY0IDogcHVi bGljIFRyYWl0czY0IHsKLSsgIHVzaW5nIE1Db250ZXh0ID0gTUNvbnRleHQ2NDsKLSsgIHVzaW5n IFNpZ25hbFRocmVhZENvbnRleHQgPSBTaWduYWxUaHJlYWRDb250ZXh0NjQ7Ci0rICB1c2luZyBT aWduYWxGbG9hdENvbnRleHQgPSBTaWduYWxGbG9hdENvbnRleHQ2NDsKLSsgIHVzaW5nIFNpZ25h bFZlY3RvckNvbnRleHQgPSBTaWduYWxWZWN0b3JDb250ZXh0NjQ7Ci0rICB1c2luZyBDUFVDb250 ZXh0ID0gQ1BVQ29udGV4dFBQQzY0OwotK307Ci0rCi0rc3RydWN0IENvbnRleHRUcmFpdHMzMiA6 IHB1YmxpYyBUcmFpdHMzMiB7fTsKLSsKLStzdHJ1Y3QgVUNvbnRleHQgewotKyAgdWludDY0X3Qg ZmxhZ3M7Ci0rICB1aW50NjRfdCBsaW5rOwotKyAgU2lnbmFsU3RhY2s8Q29udGV4dFRyYWl0czY0 PiBzdGFjazsKLSsgIFNpZ3NldDxDb250ZXh0VHJhaXRzNjQ+IHNpZ21hc2s7Ci0rICBNQ29udGV4 dDY0IG1jb250ZXh0OwotK307Ci0rI3ByYWdtYSBwYWNrKHB1c2gsIDEpCi0rCi0rc3RhdGljX2Fz c2VydChzaXplb2YoVUNvbnRleHQpID09IHNpemVvZih1Y29udGV4dF90KSwKLSsgICAgICAgICAg ICAgICJ1Y29udGV4dF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihN Q29udGV4dDY0KSA9PSBzaXplb2YobWNvbnRleHRfdCksCi0rICAgICAgICAgICAgICAibWNvbnRl eHRfdCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsVGhyZWFk Q29udGV4dDY0KSA9PSBzaXplb2YoZ3JlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJncmVnc2V0 X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbEZsb2F0Q29u dGV4dDY0KSA9PSBzaXplb2YoZnByZWdzZXRfdCksCi0rICAgICAgICAgICAgICAiZnByZWdzZXRf dCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsVmVjdG9yQ29u dGV4dDY0KSA9PSBzaXplb2YodnJyZWdzZXRfdCksCi0rICAgICAgICAgICAgICAidnJyZWdzZXRf dCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4dCwgbWNv bnRleHQpID09Ci0rICAgICAgICAgICAgICBvZmZzZXRvZih1Y29udGV4dF90LCB1Y19tY29udGV4 dCksICJtY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9mZnNldG9m KE1Db250ZXh0NjQsIGdwX3JlZ3MpID09Ci0rICAgICAgICAgICAgICBvZmZzZXRvZihtY29udGV4 dF90LCBncF9yZWdzKSwgImdwX3JlZ3Mgb2Zmc2V0IG1pc21hdGNoIik7Ci0gI2Vsc2UKLSAjZXJy b3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLWRpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNo b3RfbGludXguY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKLWluZGV4IGE5OWRhM2U0Yi4uMDNiOTczMDgzIDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv c3lzdGVtX3NuYXBzaG90X2xpbnV4LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKLUBAIC0yMDQsNiAr MjA0LDggQEAgQ1BVQXJjaGl0ZWN0dXJlIFN5c3RlbVNuYXBzaG90TGludXg6OkdldENQVUFyY2hp dGVjdHVyZSgpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQot ICAgcmV0dXJuIHByb2Nlc3NfcmVhZGVyXy0+SXM2NEJpdCgpID8ga0NQVUFyY2hpdGVjdHVyZU1J UFM2NEVMCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBrQ1BVQXJjaGl0 ZWN0dXJlTUlQU0VMOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAg cmV0dXJuIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKLSAjZWxzZQotICNlcnJvciBwb3J0IHRvIHlv dXIgYXJjaGl0ZWN0dXJlCi0gI2VuZGlmCi1AQCAtMjE5LDYgKzIyMSw5IEBAIHVpbnQzMl90IFN5 c3RlbVNuYXBzaG90TGludXg6OkNQVVJldmlzaW9uKCkgY29uc3QgewotICNlbGlmIGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCi0g ICByZXR1cm4gMDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIC8v IE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKLSsgIHJldHVybiAwOwotICNlbHNlCi0gI2Vy cm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKLSAjZW5kaWYKLUBAIC0yMzksNiArMjQ0LDkg QEAgc3RkOjpzdHJpbmcgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVVmVuZG9yKCkgY29uc3Qgewot ICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAvLyBOb3QgaW1wbGVtZW50 YWJsZSBvbiBNSVBTCi0gICByZXR1cm4gc3RkOjpzdHJpbmcoKTsKLSsjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQK LSsgIHJldHVybiBzdGQ6OnN0cmluZygpOwotICNlbHNlCi0gI2Vycm9yIHBvcnQgdG8geW91ciBh cmNoaXRlY3R1cmUKLSAjZW5kaWYKLUBAIC0zNzIsNiArMzgwLDkgQEAgYm9vbCBTeXN0ZW1TbmFw c2hvdExpbnV4OjpOWEVuYWJsZWQoKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiBm YWxzZTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIC8vIE5vdCB5 ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKLSsgIHJldHVybiBmYWxzZTsKLSAjZWxzZQotICNlcnJv ciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5j YyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9k dWxlcy5jYwotaW5kZXggYjI0NTBjMjA2Li43YmE3OGIyYWUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90ZXN0X21vZHVsZXMuY2MKLSsr KyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9k dWxlcy5jYwotQEAgLTExMCw2ICsxMTAsOCBAQCBib29sIFdyaXRlVGVzdE1vZHVsZShjb25zdCBi YXNlOjpGaWxlUGF0aCYgbW9kdWxlX3BhdGgsCi0gICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBF TV9BQVJDSDY0OwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU0VMKSB8fCBkZWZpbmVkKEFS Q0hfQ1BVX01JUFM2NEVMKQotICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fTUlQUzsKLSsj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotKyAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0g RU1fUFBDNjQ7Ci0gI2VuZGlmCi0gCi0gICBtb2R1bGUuZWhkci5lX3ZlcnNpb24gPSBFVl9DVVJS RU5UOwotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYwotaW5kZXggZTNl MmJlYmRkLi44ZWY0Mzc1MmUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKLSsrKyBiL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9s aW51eC5jYwotQEAgLTE4Niw2ICsxODYsMTQgQEAgYm9vbCBUaHJlYWRTbmFwc2hvdExpbnV4OjpJ bml0aWFsaXplKFByb2Nlc3NSZWFkZXJMaW51eCogcHJvY2Vzc19yZWFkZXIsCi0gICAgICAgICB0 aHJlYWQudGhyZWFkX2luZm8uZmxvYXRfY29udGV4dC5mMzIsCi0gICAgICAgICBjb250ZXh0Xy5t aXBzZWwpOwotICAgfQotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAg Y29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotKyAgY29udGV4 dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7Ci0rICBJbml0aWFsaXplQ1BVQ29udGV4 dFBQQzY0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLnRocmVh ZF9jb250ZXh0LnQ2NCwKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8uZmxvYXRfY29udGV4dC5m NjQsCi0rICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLnZlY3Rvcl9jb250ZXh0LnY2NCwKLSsgICAg ICBjb250ZXh0Xy5wcGM2NCk7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJl YWRfc25hcHNob3RfbGludXguaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi1pbmRleCA0NGNjNmY2ZDkuLmQ0MTM2 NDYxZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAotQEAgLTY4 LDYgKzY4LDggQEAgY2xhc3MgVGhyZWFkU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYyBUaHJl YWRTbmFwc2hvdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgICAg Q1BVQ29udGV4dE1JUFMgbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2NDsKLSsj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgQ1BVQ29udGV4dFBQQzY0 IHBwYzY0OwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZf RkFNSUxZCi0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL25ldC9odHRw X3RyYW5zcG9ydF9saWJjdXJsLmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL25ldC9odHRwX3RyYW5zcG9ydF9saWJjdXJsLmNjCi1AQCAtMjM2LDYgKzIzNiwxMiBA QAotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfQklHX0VORElBTikKLSAgICAgc3RhdGljIGNvbnN0 ZXhwciBjaGFyIGFyY2hbXSA9ICJhYXJjaDY0X2JlIjsKLSAjZW5kaWYKLSsjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rI2lmIGRlZmluZWQoQVJDSF9DUFVfTElUVExFX0VORElBTikKLSsg ICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJwcGM2NGxlIjsKLSsjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX0JJR19FTkRJQU4pCi0rICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBhcmNo W10gPSAicHBjNjQiOwotKyNlbmRpZgotICNlbHNlCi0gI2Vycm9yIFBvcnQKLSAjZW5kaWYKLWRp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGls aWFyeV92ZWN0b3IuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4 L2F1eGlsaWFyeV92ZWN0b3IuY2MKLWluZGV4IGQzZDVlYmRmYi4uM2ZkNzMwY2I1IDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlf dmVjdG9yLmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4 L2F1eGlsaWFyeV92ZWN0b3IuY2MKLUBAIC01Niw2ICs1NiwxMSBAQCBib29sIEF1eGlsaWFyeVZl Y3Rvcjo6UmVhZChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7Ci0gICAgIGlmICh0eXBl ID09IEFUX0lHTk9SRSkgewotICAgICAgIGNvbnRpbnVlOwotICAgICB9Ci0rI2lmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBpZiAodHlwZSA9PSBBVF9JR05PUkVQUEMpIHsK LSsgICAgICBjb250aW51ZTsKLSsgICAgfQotKyNlbmRpZgotICAgICBpZiAoIU1hcEluc2VydE9y UmVwbGFjZSgmdmFsdWVzXywgdHlwZSwgdmFsdWUsIG51bGxwdHIpKSB7Ci0gICAgICAgTE9HKEVS Uk9SKSA8PCAiZHVwbGljYXRlIGF1eHYgZW50cnkiOwotICAgICAgIHJldHVybiBmYWxzZTsKLWRp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFj ZXIuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIu Y2MKLWluZGV4IDU1N2UwZDM2My4uMDhhZTQzNGI4IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi0rKysgYi90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLUBAIC0zOTgsNiArMzk4 LDY0IEBAIGJvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSAgIHJldHVybiB0cnVlOwot IH0KLSAKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsvLyBQUEM2NCBo YXMgaGFkIEhBVkVfQVJDSF9UUkFDRUhPT0sgc2V0IHNpbmNlIDIuNi4yNyAoZXZlbiBiZWZvcmUg eDg2IGhhZCBpdCkuCi0rLy8gVGhhdCBtZWFucyB3ZSBjYW4gc2ltcGx5IHVzZSBQVFJBQ0VfR0VU UkVHRVNFVC4KLSsKLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVzdGluYXRpb24+Ci0rYm9vbCBHZXRS ZWdpc3RlclNldChwaWRfdCB0aWQsIGludCBzZXQsIERlc3RpbmF0aW9uKiBkZXN0LCBib29sIGNh bl9sb2cpIHsKLSsgIGlvdmVjIGlvdjsKLSsgIGlvdi5pb3ZfYmFzZSA9IHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KGRlc3QpOwotKyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoKmRlc3QpOwotKyAgaWYg KHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHNl dCksICZpb3YpICE9IDApIHsKLSsgICAgUExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgInB0cmFj ZSI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsgIGlmIChpb3YuaW92X2xlbiAhPSBzaXpl b2YoKmRlc3QpKSB7Ci0rICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuZXhwZWN0ZWQg cmVnaXN0ZXJzIHNpemUiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rICByZXR1cm4gdHJ1 ZTsKLSt9Ci0rCi0rYm9vbCBHZXRWZWN0b3JSZWdpc3RlcnM2NChwaWRfdCB0aWQsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICBWZWN0b3JDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7Ci0rICByZXR1cm4gR2V0UmVnaXN0ZXJTZXQo dGlkLCBOVF9QUENfVk1YLCAmY29udGV4dC0+djY0LCBjYW5fbG9nKTsKLSt9Ci0rCi0rYm9vbCBH ZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzNjQocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJldHVybiBHZXRSZWdpc3RlclNl dCh0aWQsIE5UX1BSRlBSRUcsICZjb250ZXh0LT5mNjQsIGNhbl9sb2cpOwotK30KLSsKLStib29s IEdldFRocmVhZEFyZWE2NChwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgY29uc3Qg VGhyZWFkQ29udGV4dCYgY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRk cmVzcyogYWRkcmVzcywKLSsgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsg IC8vIFBQQzY0IGRvZXNuJ3QgaGF2ZSBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBIHNpbmNlIHRoZSB0 aHJlYWQgcG9pbnRlcgotKyAgLy8gaXMgc3RvcmVkIGluIEdQUiAxMy4KLSsgIFRocmVhZENvbnRl eHQ6OnQ2NF90IHRjOwotKyAgaWYgKCFHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BSU1RBVFVTLCAm dGMsIGNhbl9sb2cpKSB7Ci0rICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuYWJsZSB0 byBnZXQgdGhyZWFkIHBvaW50ZXIhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAg KmFkZHJlc3MgPSB0Yy5ncHJbMTNdOwotKwotKyAgcmV0dXJuIHRydWU7Ci0rfQotKwotKy8vIFN0 dWJzIGZvciAzMi1iaXQgZnVuY3Rpb25zIG5vdCBhcHBsaWNhYmxlIG9uIFBQQzY0Ci0rYm9vbCBH ZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzMzIocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9Ci0rYm9vbCBH ZXRUaHJlYWRBcmVhMzIocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRo cmVhZENvbnRleHQgJmNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJl c3MgKmFkZHJlc3MsCi0rICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7IHJldHVy biBmYWxzZTsgfQotKwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQ VV9YODZfRkFNSUxZCi1AQCAtNDk0LDYgKzU1Miw5IEBAIGJvb2wgUHRyYWNlcjo6R2V0VGhyZWFk SW5mbyhwaWRfdCB0aWQsIFRocmVhZEluZm8qIGluZm8pIHsKLSAgIGlmIChpc182NF9iaXRfKSB7 Ci0gICAgIHJldHVybiBHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnRo cmVhZF9jb250ZXh0LCBjYW5fbG9nXykgJiYKLSAgICAgICAgICAgIEdldEZsb2F0aW5nUG9pbnRS ZWdpc3RlcnM2NCh0aWQsICZpbmZvLT5mbG9hdF9jb250ZXh0LCBjYW5fbG9nXykgJiYKLSsjaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgICAgICAgICBHZXRWZWN0b3JSZWdp c3RlcnM2NCh0aWQsICZpbmZvLT52ZWN0b3JfY29udGV4dCwgY2FuX2xvZ18pICYmCi0rI2VuZGlm Ci0gICAgICAgICAgICBHZXRUaHJlYWRBcmVhNjQodGlkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGluZm8tPnRocmVhZF9jb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZpbmZvLT50aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzLAotZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCBiL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotaW5kZXgg NWI1NWMyNGE3Li5kZWEwZDFmMzkgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotQEAgLTI4LDYgKzI4LDEwIEBA Ci0gI2luY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+Ci0gI2VuZGlmCi0gCi0rI2lmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsj ZW5kaWYKLSsKLSBuYW1lc3BhY2UgY3Jhc2hwYWQgewotIAotIC8vISBcYnJpZWYgVGhlIHNldCBv ZiBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzIGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5Lgot QEAgLTc5LDYgKzgzLDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0gICAgIHVpbnQzMl90IGNw MF9zdGF0dXM7Ci0gICAgIHVpbnQzMl90IGNwMF9jYXVzZTsKLSAgICAgdWludDMyX3QgcGFkZGlu ZzFfOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBQUEM2 NCBpcyA2NC1iaXQKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVf WDg2X0ZBTUlMWQotQEAgLTEzMiw2ICsxMzgsMjEgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0g ICAgIHVpbnQ2NF90IGNwMF9iYWR2YWRkcjsKLSAgICAgdWludDY0X3QgY3AwX3N0YXR1czsKLSAg ICAgdWludDY0X3QgY3AwX2NhdXNlOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQotKyAgICAvLyBSZWZsZWN0cyBzdHJ1Y3QgcHRfcmVncyBpbiBhc20vcHRyYWNlLmguCi0r ICAgIHVpbnQ2NF90IGdwclszMl07Ci0rICAgIHVpbnQ2NF90IG5pcDsKLSsgICAgdWludDY0X3Qg bXNyOwotKyAgICB1aW50NjRfdCBvcmlnX2dwcjM7Ci0rICAgIHVpbnQ2NF90IGN0cjsKLSsgICAg dWludDY0X3QgbG5rOwotKyAgICB1aW50NjRfdCB4ZXI7Ci0rICAgIHVpbnQ2NF90IGNjcjsKLSsg ICAgdWludDY0X3Qgc29mdGU7Ci0rICAgIHVpbnQ2NF90IHRyYXA7Ci0rICAgIHVpbnQ2NF90IGRh cjsKLSsgICAgdWludDY0X3QgZHNpc3I7Ci0rICAgIHVpbnQ2NF90IHJlc3VsdDsKLSAjZWxzZQot ICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTE0Myw2 ICsxNjQsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgIHVzaW5nIE5hdGl2ZVRocmVhZENv bnRleHQgPSB1c2VyX3JlZ3M7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkK LSAvLyBObyBhcHByb3ByaWF0ZSBOYXRpdmVUaHJlYWRzQ29udGV4dCB0eXBlIGF2YWlsYWJsZSBm b3IgTUlQUwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgdXNpbmcg TmF0aXZlVGhyZWFkQ29udGV4dCA9IHN0cnVjdCBwdF9yZWdzOwotICNlbHNlCi0gI2Vycm9yIFBv cnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZIHx8IEFSQ0hfQ1BVX0FSTTY0Ci1A QCAtMjE4LDYgKzI0MSw5IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0gICAgIH0gZnByZWdzWzMy XTsKLSAgICAgdWludDMyX3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90IGZwdV9pZDsKLSsjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gQ3Jhc2hwYWQncyBQUEMgc3Vw cG9ydCBpcyA2NC1iaXQgb25seSwgc28gdGhpcwotKyAgICAvLyAzMmJpdC1vbmx5IHN0cnVjdCBp cyBkZWNsYXJlZCBhcyBlbXB0eS4KLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8g QVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTI1Miw2ICsyNzgsMTAgQEAgdW5pb24gRmxvYXRDb250 ZXh0IHsKLSAgICAgZG91YmxlIGZwcmVnc1szMl07Ci0gICAgIHVpbnQzMl90IGZwY3NyOwotICAg ICB1aW50MzJfdCBmcHVfaWQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp Ci0rICAgIC8vIFJlZmxlY3RzIGZwcmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0LmgKLSsgICAgZG91 YmxlIGZwcmVnc1szMl07Ci0rICAgIGRvdWJsZSBmcHNjcjsKLSAjZWxzZQotICNlcnJvciBQb3J0 LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTI4MCw2ICszMTAsOCBAQCB1 bmlvbiBGbG9hdENvbnRleHQgewotICAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXpl b2YodXNlcl9mcHNpbWRfc3RydWN0KSwgIlNpemUgbWlzbWF0Y2giKTsKLSAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotIC8vIE5vIGFwcHJvcHJpYXRlIGZsb2F0aW5nIHBvaW50 IGNvbnRleHQgbmF0aXZlIHR5cGUgZm9yIGF2YWlsYWJsZSBNSVBTLgotKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBz aXplb2YoZnByZWdzZXRfdCksICJTaXplIG1pc21hdGNoIik7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9y dC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4NgotQEAgLTI4Nyw2ICszMTksMjYgQEAgdW5pb24g RmxvYXRDb250ZXh0IHsKLSBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc3RhbmRhcmRfbGF5b3V0PEZs b2F0Q29udGV4dD46OnZhbHVlLAotICAgICAgICAgICAgICAgIk5vdCBzdGFuZGFyZCBsYXlvdXQi KTsKLSAKLSsvLyEgXGJyaWVmIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIGFuIGFyY2hp dGVjdHVyZSBmYW1pbHkKLSt1bmlvbiBWZWN0b3JDb250ZXh0IHsKLSsgIHN0cnVjdCB2MzJfdCB7 fSB2MzI7Ci0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgX19hdHRyaWJ1 dGVfXygoX19hbGlnbmVkX18oMTYpKSkgLy8gVmVjdG9yIGNvbnRleHQgbXVzdCBiZSBkb3VibGV3 b3JkIGFsaWduZWQuCi0rI2VuZGlmCi0rICBzdHJ1Y3QgdjY0X3QgewotKyNpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUmVmbGVjdHMgdnJyZWdzZXRfdCBpbiBzeXMv dWNvbnRleHQuaAotKyAgICB1aW50MzJfdCB2cnJlZ3NbMzJdWzRdOwotKyAgICBzdHJ1Y3Qgewot KyAgICAgIHVpbnQzMl90IF9fcGFkWzNdOwotKyAgICAgIHVpbnQzMl90IHZzY3Jfd29yZDsKLSsg ICAgfSB2c2NyOwotKyAgICB1aW50MzJfdCB2cnNhdmU7Ci0rICAgIHVpbnQzMl90IF9fcGFkWzNd OwotKyNlbmRpZgotKyAgfSB2NjQ7Ci0rfTsKLSsKLSAvLyEgXGJyaWVmIEEgY29sbGVjdGlvbiBv ZiBgcHRyYWNlYC1hYmxlIGluZm9ybWF0aW9uIGFib3V0IGEgdGhyZWFkLgotIHN0cnVjdCBUaHJl YWRJbmZvIHsKLSAgIFRocmVhZEluZm8oKTsKLUBAIC0yOTgsNiArMzUwLDkgQEAgc3RydWN0IFRo cmVhZEluZm8gewotICAgLy8hIFxicmllZiBUaGUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGZv ciB0aGUgdGhyZWFkLgotICAgRmxvYXRDb250ZXh0IGZsb2F0X2NvbnRleHQ7Ci0gCi0rICAvLyEg XGJyaWVmIChPcHRpb25hbCkgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgdGhlIHRocmVh ZC4KLSsgIFZlY3RvckNvbnRleHQgdmVjdG9yX2NvbnRleHQ7Ci0rCi0gICAvLyEgXGJyaWVmIFRo ZSB0aHJlYWQtbG9jYWwgc3RvcmFnZSBhZGRyZXNzIGZvciB0aGUgdGhyZWFkLgotICAgTGludXhW TUFkZHJlc3MgdGhyZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVzczsKLSB9OwotZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQu aCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRl eHQuaAotaW5kZXggZDIxYTI0ZjE5Li5hY2MzMjUzNDkgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKLSsrKyBiL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAot QEAgLTY5LDYgKzY5LDcgQEAgdXNpbmcgTmF0aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7Ci0g Ly8hICAgICBtYWNPUy9MaW51eC9GdWNoc2lhIHwgeDg2XzY0ICAgICAgIHwgYCUlcmRpYAotIC8v ISAgICAgTGludXggICAgICAgICAgICAgICB8IEFSTS9BUk02NCAgICB8IGByMGAvYHgwYAotIC8v ISAgICAgTGludXggICAgICAgICAgICAgICB8IE1JUFMvTUlQUzY0ICB8IGAkYTBgCi0rLy8hICAg ICBMaW51eCAgICAgICAgICAgICAgIHwgUFBDNjQgICAgICAgIHwgYHIzYAotIC8vIQotIC8vISAg ICAgQWRkaXRpb25hbGx5LCB0aGUgdmFsdWUgYExSYCBvbiBBUk0vQVJNNjQgd2lsbCBiZSB0aGUg cmV0dXJuIGFkZHJlc3Mgb2YKLSAvLyEgICAgIHRoaXMgZnVuY3Rpb24uCi1kaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9s aW51eC5TIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVf Y29udGV4dF9saW51eC5TCi1pbmRleCA1MjIxNWVlNWQuLmIzZTRhM2VjNyAxMDA2NDQKLS0tLSBh L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRf bGludXguUwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2Nh cHR1cmVfY29udGV4dF9saW51eC5TCi1AQCAtMzIsNyArMzIsNyBAQAotICAgLmJhbGlnbiA0LCAw eDAKLSAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTCwgJWZ1bmN0aW9uCi0gICAudHlwZSBD QVBUVVJFQ09OVEVYVF9TWU1CT0wyLCAlZnVuY3Rpb24KLS0jZWxpZiBkZWZpbmVkKF9fbWlwc19f KQotKyNlbGlmIGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg IC5iYWxpZ24gNCwgMHgwCi0gI2VuZGlmCi0gCi1AQCAtNDIzLDQgKzQyMywyMTQgQEAgQ0FQVFVS RUNPTlRFWFRfU1lNQk9MMjoKLSAgIGpyICRyYQotIAotICAgLnNldCBhdAotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFN0b3JlIHIwLXIzMQotKyAgc3RkIDAsIDB4ZTgoMykg ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzBdCi0rICBzdGQgMSwgMHhmMCgzKSAg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMV0KLSsgIHN0ZCAyLCAweGY4KDMpICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syXQotKyAgLy8gbm90ZSB0aGF0IHIzJ3Mg b3JpZ2luYWwgdmFsdWUgd2FzIGxvc3QKLSsgIHN0ZCAzLCAweDEwMCgzKSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1szXQotKyAgc3RkIDQsIDB4MTA4KDMpICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzRdCi0rICBzdGQgNSwgMHgxMTAoMykgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbNV0KLSsgIHN0ZCA2LCAweDExOCgzKSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1s2XQotKyAgc3RkIDcsIDB4MTIwKDMpICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5ncF9yZWdzWzddCi0rICBzdGQgOCwgMHgxMjgoMykgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbOF0KLSsgIHN0ZCA5LCAweDEzMCgzKSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZ3BfcmVnc1s5XQotKyAgc3RkIDEwLCAweDEzOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzEwXQotKyAgc3RkIDExLCAweDE0MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzExXQotKyAgc3RkIDEyLCAweDE0OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzEyXQotKyAgc3RkIDEzLCAweDE1MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzEzXQotKyAgc3RkIDE0LCAweDE1OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzE0XQotKyAgc3RkIDE1LCAweDE2MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzE1XQotKyAgc3RkIDE2LCAweDE2OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzE2XQotKyAgc3RkIDE3LCAweDE3MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzE3XQotKyAgc3RkIDE4LCAweDE3OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzE4XQotKyAgc3RkIDE5LCAweDE4MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzE5XQotKyAgc3RkIDIwLCAweDE4OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzIwXQotKyAgc3RkIDIxLCAweDE5MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzIxXQotKyAgc3RkIDIyLCAweDE5OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzIyXQotKyAgc3RkIDIzLCAweDFhMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzIzXQotKyAgc3RkIDI0LCAweDFhOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzI0XQotKyAgc3RkIDI1LCAweDFiMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzI1XQotKyAgc3RkIDI2LCAweDFiOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzI2XQotKyAgc3RkIDI3LCAweDFjMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzI3XQotKyAgc3RkIDI4LCAweDFjOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzI4XQotKyAgc3RkIDI5LCAweDFkMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzI5XQotKyAgc3RkIDMwLCAweDFkOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzMwXQotKyAgc3RkIDMxLCAweDFlMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzMxXQotKwotKyAgLy8gRm9yIE5JUCwgd2UgY2FuIHVzZSB0aGUgdmFsdWUg aW4gdGhlIGxpbmsgcmVnaXN0ZXIKLSsgIG1mbHIgMAotKyAgc3RkIDAsIDB4MWU4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXQotKwotKyAgLy8gQ1RSCi0rICBtZmN0 ciAwCi0rICBzdGQgMCwgMHgyMDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9DVFJdCi0rCi0rICAvLyBGb3IgTE5LLCB3ZSdsbCB1c2UgdGhlIGNhbGxlcidzIExSIHNhdmUg YXJlYSAoMiBzdGFjayBmcmFtZXMgdXApLgotKyAgLy8gcjQgY2FuIGJlIHVzZWQgYXMgYSBzY3Jh dGNoIHJlZ2lzdGVyIHNpbmNlIGl0IGhhcyBhbHJlYWR5IGJlZW4gc2F2ZWQuCi0rICBsZCA0LCAw KDEpCi0rICBsZCA0LCAxNig0KQotKyAgc3RkIDQsIDB4MjA4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfTE5LXQotKwotKyAgLy8gWEVSCi0rICBtZnhlciAwCi0rICBzdGQg MCwgMHgyMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdCi0rCi0r ICAvLyBDQ1IKLSsgIG1mY3IgMAotKyAgc3RkIDAsIDB4MjE4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfQ0NSXQotKwotKyAgLy8gTVNSLCBvcmlnX3IzLCBNUSwgVFJBUCwg REFSLCBEU0lTUiwgUkVTVUxULCBEU0NSLAotKyAgLy8gbm90IHVzZWQgb3Igbm90IHJlbGV2YW50 LCAgemVybyB0aGVtIG91dC4KLSsgIGxpIDQsIDAKLSsgIHN0ZCA0LCAweDFmMCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl0KLSsgIHN0ZCA0LCAweDFmOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX09SSUdfUjNdCi0rICBzdGQgNCwgMHgyMjAo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NUV0KLSsgIHN0ZCA0LCAweDIy OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1RSQVBdCi0rICBzdGQgNCwg MHgyMzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EQVJdCi0rICBzdGQg NCwgMHgyMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EU0lTUl0KLSsg IHN0ZCA0LCAweDI0MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1JFU1VM VF0KLSsgIHN0ZCA0LCAweDI0OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BU X0RTQ1JdCi0rCi0rICAvLyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRleHQucmVncyB0byBwb2lu dCB0byBncF9yZWdzCi0rICBhZGRpIDAsIDMsIDB4ZTgKLSsgIHN0ZCAwLCAweGUwKDMpCi0rCi0r ICAvLyBTYXZlIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyAwLTMxCi0rICBzdGZkIDAsIDB4MjY4 KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzBdCi0rICBzdGZkIDEsIDB4Mjcw KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzFdCi0rICBzdGZkIDIsIDB4Mjc4 KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzJdCi0rICBzdGZkIDMsIDB4Mjgw KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzNdCi0rICBzdGZkIDQsIDB4Mjg4 KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzRdCi0rICBzdGZkIDUsIDB4Mjkw KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzVdCi0rICBzdGZkIDYsIDB4Mjk4 KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzZdCi0rICBzdGZkIDcsIDB4MmEw KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzddCi0rICBzdGZkIDgsIDB4MmE4 KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzhdCi0rICBzdGZkIDksIDB4MmIw KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzldCi0rICBzdGZkIDEwLCAweDJi OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEwXQotKyAgc3RmZCAxMSwgMHgy YzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMV0KLSsgIHN0ZmQgMTIsIDB4 MmM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTJdCi0rICBzdGZkIDEzLCAw eDJkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEzXQotKyAgc3RmZCAxNCwg MHgyZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNF0KLSsgIHN0ZmQgMTUs IDB4MmUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTVdCi0rICBzdGZkIDE2 LCAweDJlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE2XQotKyAgc3RmZCAx NywgMHgyZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxN10KLSsgIHN0ZmQg MTgsIDB4MmY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMThdCi0rICBzdGZk IDE5LCAweDMwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE5XQotKyAgc3Rm ZCAyMCwgMHgzMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMF0KLSsgIHN0 ZmQgMjEsIDB4MzEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjFdCi0rICBz dGZkIDIyLCAweDMxOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIyXQotKyAg c3RmZCAyMywgMHgzMjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syM10KLSsg IHN0ZmQgMjQsIDB4MzI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjRdCi0r ICBzdGZkIDI1LCAweDMzMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI1XQot KyAgc3RmZCAyNiwgMHgzMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNl0K LSsgIHN0ZmQgMjcsIDB4MzQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjdd Ci0rICBzdGZkIDI4LCAweDM0OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI4 XQotKyAgc3RmZCAyOSwgMHgzNTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sy OV0KLSsgIHN0ZmQgMzAsIDB4MzU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MzBdCi0rICBzdGZkIDMxLCAweDM2MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzMxXQotKwotKyAgLy8gRlBTQ1IKLSsgIG1mZnMgMAotKyAgc3RmZCAwLCAweDM2OCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMyXQotKwotKyAgLy8gU2F2ZSBWTVggVmVjdG9y IHJlZ2lzdGVycwotKyAgLy8gVXBkYXRlIHI0IHRvIGNvbnRhaW4gdGhlIGJhc2UgYWRkcmVzcyBv ZiB2bXhfcmVzZXJ2ZQotKyAgYWRkaSA0LCAzLCAweDM3OAotKyAgLy8gRW5zdXJlIHRoYXQgaXQg aXMgcXVhZHdvcmQgYWxpZ25lZAotKyAgYW5kaS4gNSwgNCwgMHhGCi0rICBiZXEgMWYgLy8gTm8g YWxpZ25tZW50IGlzIG5lY2Vzc2FyeQotKyAgLy8gQWRkcmVzcyBpcyBkb3VibGV3b3JkIGFsaWdu ZWQgYW5kIG5vdCBxdWFkd29yZCBhbGlnbmVkLCBhZGQgOAotKyAgYWRkaSA0LCA0LCA4Ci0rCi0r MToKLSsgIC8vIFN0b3JlIFZNWCByZWdpc3RlcnMgMC0zMQotKyAgLy8gcjQgd2lsbCBjb250YWlu IHRoZSBiYXNlIGFkZHJlc3MKLSsgIC8vIHI1IHdpbGwgY29udGFpbiB0aGUgaW5kZXgKLSsgIGxp IDUsIDAKLSsgIHN0dnggMCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAwXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxLCA0LCA1ICAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDFdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDIsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMl0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMywgNCwgNSAgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzXQotKyAgYWRkaSA1 LCA1LCAxNgotKyAgc3R2eCA0LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDUsIDQsIDUgICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNV0KLSsgIGFkZGkg NSwgNSwgMTYKLSsgIHN0dnggNiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyA2XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA3LCA0LCA1ICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDddCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDgsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgOF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggOSwgNCwgNSAg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA5XQotKyAgYWRk aSA1LCA1LCAxNgotKyAgc3R2eCAxMCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDEwXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxMSwgNCwg NSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDExXQotKyAg YWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxMiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDEyXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxMywg NCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEzXQot KyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxNCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE0XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAx NSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE1 XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxNiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE2XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2 eCAxNywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDE3XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxOCwgNCwgNSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE4XQotKyAgYWRkaSA1LCA1LCAxNgotKyAg c3R2eCAxOSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDE5XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyMCwgNCwgNSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIwXQotKyAgYWRkaSA1LCA1LCAxNgot KyAgc3R2eCAyMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDIxXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyMiwgNCwgNSAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIyXQotKyAgYWRkaSA1LCA1LCAx NgotKyAgc3R2eCAyMywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDIzXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyNCwgNCwgNSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI0XQotKyAgYWRkaSA1LCA1 LCAxNgotKyAgc3R2eCAyNSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDI1XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyNiwgNCwgNSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI2XQotKyAgYWRkaSA1 LCA1LCAxNgotKyAgc3R2eCAyNywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDI3XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyOCwgNCwgNSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI4XQotKyAgYWRk aSA1LCA1LCAxNgotKyAgc3R2eCAyOSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDI5XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzMCwgNCwg NSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDMwXQotKyAg YWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDMxXQotKyAgYWRkaSA1LCA1LCAxNgotKwotKyAgLy8gVlND UgotKyAgbWZ2c2NyIDAKLSsgIHN0dnggMCwgNCwgNQotKyAgYWRkaSA1LCA1LCAxNgotKwotKyAg Ly8gVlJTQVZFCi0rICBtZnZyc2F2ZSAwCi0rICBzdHd4IDAsIDQsIDUKLSsKLSsgIC8vIFVwZGF0 ZSBjb250ZXh0LT51Y19tY29udGV4dC52X3JlZ3MgdG8gcG9pbnQgdG8gdm14X3Jlc2VydmUgKyBh bGlnbm1lbnQuCi0rICBzdGQgNCwgMHgzNzAoMykKLSsKLSsgIC8vIFplcm8gb3V0IGFsbCB1bnVz ZWQgZmllbGRzCi0rICBsaSA0LCAwCi0rICBzdGQgNCwgMHhjOCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5zaWduYWwKLSsgIHN0ZCA0LCAweGQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmhhbmRsZXIKLSsgIHN0ZCA0LCAweGQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lm9sZG1h c2sKLSsKLSsgIGJscgotICNlbmRpZiAgLy8gX19pMzg2X18KLWRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2Mg Yi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0 X3Rlc3QuY2MKLWluZGV4IGNmMjNjMmRlZi4uNWYyNjRiYzkyIDEwMDY0NAotLS0tIGEvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNj Ci0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X3Rlc3QuY2MKLUBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgVGVzdENhcHR1cmVDb250ZXh0 KCkgewotICAgdWludHB0cl90IHBjID0gUHJvZ3JhbUNvdW50ZXJGcm9tQ29udGV4dChjb250ZXh0 XzEpOwotIAotICNpZiAhZGVmaW5lZChBRERSRVNTX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIFwKLS0gICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikK LSsgICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQotICAgLy8gU2FuaXRpemVycyBjYW4gY2F1c2UgZW5vdWdoIGNvZGUgYmxvYXQg dGhhdCB0aGUg4oCcbmVhcmJ54oCdIGNoZWNrIHdvdWxkCi0gICAvLyBsaWtlbHkgZmFpbC4KLSAg IGNvbnN0IHVpbnRwdHJfdCBrUmVmZXJlbmNlUEMgPQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xp bnV4LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVf Y29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLWluZGV4IDMwYTJhYjIxZC4uNjA1MDlmMjFkIDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1 cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNjCi1A QCAtMzUsNiArMzUsOCBAQCB2b2lkIFNhbml0eUNoZWNrQ29udGV4dChjb25zdCBOYXRpdmVDUFVD b250ZXh0JiBjb250ZXh0KSB7Ci0gICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4dC5yZWdz WzBdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOwotICNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4 dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSsjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIEVYUEVDVF9FUShjb250ZXh0LnVj X21jb250ZXh0LmdwX3JlZ3NbM10sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0 KSk7Ci0gI2VuZGlmCi0gfQotIAotQEAgLTQ5LDYgKzUxLDggQEAgdWludHB0cl90IFByb2dyYW1D b3VudGVyRnJvbUNvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgY29udGV4dCkgewotICAg cmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKLSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnBjOwotKyNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9OSVBdOwotICNlbmRpZgotIH0KLSAKLUBAIC02Myw2ICs2Nyw4IEBAIHVp bnRwdHJfdCBTdGFja1BvaW50ZXJGcm9tQ29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBj b250ZXh0KSB7Ci0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5zcDsKLSAjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQu Z3JlZ3NbMjldOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgcmV0 dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1sxXTsKLSAjZW5kaWYKLSB9Ci0gCi1kaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oIGIv dGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oCi1uZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi45ZmJiZjc1Y2MKLS0tLSAvZGV2L251bGwKLSsr KyBiL3RoaXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAotQEAgLTAs MCArMSwzOSBAQAotKy8qCi0rICogQXV0b2dlbmVyYXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lz dGVtLgotKyAqIERvIG5vdCBlZGl0LCB5b3VyIGNoYW5nZXMgd2lsbCBiZSBsb3N0LgotKyAqLwot KwotKyNwcmFnbWEgb25jZQotKwotKyNkZWZpbmUgQVJDSF9BQVJDSDY0IDAKLSsKLSsjZGVmaW5l IEFSQ0hfQVJNIDAKLSsKLSsjZGVmaW5lIEFSQ0hfUFBDNjRMRSAxCi0rCi0rI2RlZmluZSBBUkNI X1g4NiAwCi0rCi0rI2RlZmluZSBBUkNIX1g4Nl8zMiAwCi0rCi0rI2RlZmluZSBBUkNIX1g4Nl82 NCAwCi0rCi0rI2RlZmluZSBDT05GSUdfMTZCUEMgMQotKwotKyNkZWZpbmUgQ09ORklHXzhCUEMg MQotKwotKy8vICNkZWZpbmUgQ09ORklHX0xPRyAxIC0tIExvZ2dpbmcgaXMgY29udHJvbGxlZCBi eSBDaHJvbWl1bQotKwotKyNkZWZpbmUgRU5ESUFOTkVTU19CSUcgMAotKwotKyNkZWZpbmUgSEFW RV9BU00gMQotKwotKyNkZWZpbmUgSEFWRV9DTE9DS19HRVRUSU1FIDEKLSsKLSsjZGVmaW5lIEhB VkVfRExTWU0gMQotKwotKyNkZWZpbmUgSEFWRV9HRVRBVVhWQUwgMQotKwotKyNkZWZpbmUgSEFW RV9QT1NJWF9NRU1BTElHTiAxCi0rCi0rI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLSsKLWRpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL2RhdjFkX3R5cGVzLmgg Yi90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL2RhdjFkX3R5cGVzLmgKLWluZGV4 IDBiNGJkNzJmMC4uYTBjYWE1ZTcxIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvZGF2MWQvbGli ZGF2MWQvc3JjL3BwYy9kYXYxZF90eXBlcy5oCi0rKysgYi90aGlyZF9wYXJ0eS9kYXYxZC9saWJk YXYxZC9zcmMvcHBjL2RhdjFkX3R5cGVzLmgKLUBAIC01MSw0ICs1MSwxOSBAQAotICNkZWZpbmUg dTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX21lcmdlbCgodTE2eDgpIHYsIHZlY19zcGxhdF91 MTYoMCkpKQotICNkZWZpbmUgaTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX3VucGFja2woKGkx Nng4KXYpKQotIAotKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSsjdW5kZWYgdmVjX3NwbGF0cwot KyNkZWZpbmUgdmVjX3NwbGF0cyhOKSAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgX0dlbmVy aWMoKE4pLCAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICAgICB1bnNpZ25lZCBjaGFy OiAgICAgICgodTh4MTYpKE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGNoYXI6ICAgICAgICAoKGk4 eDE2KShOKSksIFwKLSsgICAgICAgIHVuc2lnbmVkIHNob3J0OiAgICAgKCh1MTZ4OCkoTikpLCBc Ci0rICAgICAgICBzaWduZWQgc2hvcnQ6ICAgICAgICgoaTE2eDgpKE4pKSwgXAotKyAgICAgICAg dW5zaWduZWQgaW50OiAgICAgICAoKHUzMng0KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBpbnQ6 ICAgICAgICAgKChpMzJ4NCkoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmc6ICgo dTY0eDIpKE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGxvbmcgbG9uZzogICAoKGk2NHgyKShOKSkg IFwKLSsgICAgKQotKyNlbmRpZgotKwotICNlbmRpZiAvKiBEQVYxRF9TUkNfUFBDX1RZUEVTX0gg Ki8KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9laWdlbjMvQlVJTEQuZ24gYi90aGlyZF9wYXJ0 eS9laWdlbjMvQlVJTEQuZ24KLWluZGV4IDBkNGUxODQuLmYyY2U0ODQgMTAwNjQ0Ci0tLS0gYS90 aGlyZF9wYXJ0eS9laWdlbjMvQlVJTEQuZ24KLSsrKyBiL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlM RC5nbgotQEAgLTIyLDQgKzIyLDggQEAgY29uZmlnKCJlaWdlbl9pbmNsdWRlcyIpIHsKLSAgICAg IyBmb3IgdGhpcyBjb21wb25lbnQgb24gV2luZG93cyBvbiBBcm0gZHVlIHRvIGNvbXBpbGF0aW9u IGVycm9ycy4KLSAgICAgZGVmaW5lcyArPSBbICJFSUdFTl9ET05UX1ZFQ1RPUklaRSIgXQotICAg fQotKwotKyAgaWYgKHRhcmdldF9jcHUgPT0gInBwYzY0IikgewotKyAgICBkZWZpbmVzICs9IFsg IkVJR0VOX0RPTlRfVkVDVE9SSVpFIiBdCi0rICB9Ci0gfQotCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvbGliYW9tL0JVSUxELmduIGIvdGhpcmRfcGFydHkvbGliYW9tL0JVSUxELmduCi1pbmRl eCA5YjA2NWJkLi5kZjNhZjAyIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvbGliYW9tL0JVSUxE LmduCi0rKysgYi90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KLUBAIC00MCw2ICs0MCw4IEBA Ci0gICBjcHVfYXJjaF9mdWxsID0gImdlbmVyaWMiCi0gfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9 PSAibG9vbmc2NCIpIHsKLSAgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJpYyIKLSt9IGVsc2UgaWYg KGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKLSsgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJpYyIK LSB9IGVsc2UgewotICAgY3B1X2FyY2hfZnVsbCA9IGN1cnJlbnRfY3B1Ci0gfQotZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCBiL3RoaXJkX3BhcnR5 L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotaW5kZXggZTRhYzIyNjQ0Li4xYzU3MDE1ZGIg MTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLSsr KyBiL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTM5NDcsNyAr Mzk0Nyw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKLSAgICAgICBMU1NfUkVHKDIsIGJ1Zik7 Ci0gICAgICAgTFNTX0JPRFkodm9pZCosIG1tYXAyLCAiMCIoX19yMikpOwotICAgICB9Ci0tI2Vs c2UKLSsjZWxpZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAvKiBwcGM2NCBkb2Vzbid0IGhhdmUg bW1hcDIgKi8KLSAgICAgI2RlZmluZSBfX05SX19tbWFwMiBfX05SX21tYXAyCi0gICAgIExTU19J TkxJTkUgX3N5c2NhbGw2KHZvaWQqLCBfbW1hcDIsICAgICAgICAgICAgdm9pZCosIHMsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCwgICAgICAgICAgICAgICAgICAgbCwgaW50LCAg ICAgICAgICAgICAgIHAsCi1AQCAtNDA1OCw3ICs0MDU4LDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0 ZnMgewotICAgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICBkZWZpbmVkKF9fQVJNX0FSQ0hf M19fKSB8fCBkZWZpbmVkKF9fQVJNX0VBQklfXykgfHwgICAgICAgICAgICAgICAgICAgICBcCi0g ICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikg fHwgICAgICAgICAgICAgICAgICAgXAotLSAgICAgIGRlZmluZWQoX19QUENfXykgfHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgIChk ZWZpbmVkKF9fUFBDX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKSB8fCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgKGRlZmlu ZWQoX19zMzkwX18pICYmICFkZWZpbmVkKF9fczM5MHhfXykpCi0gICAgIC8qIE9uIHRoZXNlIGFy Y2hpdGVjdHVyZXMsIGltcGxlbWVudCBtbWFwKCkgd2l0aCBtbWFwMigpLiAqLwotICAgICBMU1Nf SU5MSU5FIHZvaWQqIExTU19OQU1FKG1tYXApKHZvaWQgKnMsIHNpemVfdCBsLCBpbnQgcCwgaW50 IGYsIGludCBkLAotQEAgLTQ4NzIsMTEgKzQ4NzIsMTEgQEAgc3RydWN0IGtlcm5lbF9zdGF0eCB7 Ci0gICAgICAgTFNTX1NDX0JPRFkoNCwgaW50LCA4LCBkLCB0eXBlLCBwcm90b2NvbCwgc3YpOwot ICAgICB9Ci0gICAjZW5kaWYKLS0gICNpZiBkZWZpbmVkKF9fTlJfcmVjdm1zZykKLSsgICNpZiBk ZWZpbmVkKF9fTlJfcmVjdm1zZykgJiYgIWRlZmluZWQoX19QUENfXykKLSAgICAgTFNTX0lOTElO RSBfc3lzY2FsbDMoc3NpemVfdCwgcmVjdm1zZywgaW50LCBzLCBzdHJ1Y3Qga2VybmVsX21zZ2hk ciosIG1zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBmbGFncykKLSAgICNlbmRp ZgotLSAgI2lmIGRlZmluZWQoX19OUl9zZW5kbXNnKQotKyAgI2lmIGRlZmluZWQoX19OUl9zZW5k bXNnKSAmJiAhZGVmaW5lZChfX1BQQ19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsMyhzc2l6 ZV90LCBzZW5kbXNnLCBpbnQsIHMsIGNvbnN0IHN0cnVjdCBrZXJuZWxfbXNnaGRyKiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgbXNnLCBpbnQsIGZsYWdzKQotICAgI2VuZGlmCi1AQCAtNDg4 NSwxMyArNDg4NSwxMyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXR4IHsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50LCBmbGFncywgY29uc3Qgc3RydWN0IGtlcm5lbF9zb2NrYWRkciosIHRvLAot ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIHRvbGVuKQotICAgI2VuZGlm Ci0tICAjaWYgZGVmaW5lZChfX05SX3NodXRkb3duKQotKyAgI2lmIGRlZmluZWQoX19OUl9zaHV0 ZG93bikgJiYgIWRlZmluZWQoX19QUENfXykKLSAgICAgTFNTX0lOTElORSBfc3lzY2FsbDIoaW50 LCBzaHV0ZG93biwgaW50LCBzLCBpbnQsIGhvdykKLSAgICNlbmRpZgotLSAgI2lmIGRlZmluZWQo X19OUl9zb2NrZXQpCi0rICAjaWYgZGVmaW5lZChfX05SX3NvY2tldCkgJiYgIWRlZmluZWQoX19Q UENfXykKLSAgICAgTFNTX0lOTElORSBfc3lzY2FsbDMoaW50LCBzb2NrZXQsIGludCwgZG9tYWlu LCBpbnQsIHR5cGUsIGludCwgcHJvdG9jb2wpCi0gICAjZW5kaWYKLS0gICNpZiBkZWZpbmVkKF9f TlJfc29ja2V0cGFpcikKLSsgICNpZiBkZWZpbmVkKF9fTlJfc29ja2V0cGFpcikgJiYgIWRlZmlu ZWQoX19QUENfXykKLSAgICAgTFNTX0lOTElORSBfc3lzY2FsbDQoaW50LCBzb2NrZXRwYWlyLCBp bnQsIGQsIGludCwgdHlwZSwgaW50LCBwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50Kiwgc3YpCi0gICAjZW5kaWYKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9wZGZpdW0v dGhpcmRfcGFydHkvbGlicG5nMTYvcG5ncHJpdi5oIGIvdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJk X3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAotaW5kZXggNTgzYzI2Zi4uZTAzZDY5NyAxMDA2NDQK LS0tLSBhL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmgK LSsrKyBiL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmgK LUBAIC0xOTYsMTEgKzE5Niw3IEBACi0gI2VuZGlmCi0gCi0gI2lmbmRlZiBQTkdfUE9XRVJQQ19W U1hfT1BUCi0tIyAgaWYgZGVmaW5lZChfX1BQQzY0X18pICYmIGRlZmluZWQoX19BTFRJVkVDX18p ICYmIGRlZmluZWQoX19WU1hfXykKLS0jICAgICBkZWZpbmUgUE5HX1BPV0VSUENfVlNYX09QVCAy Ci0tIyAgZWxzZQotLSMgICAgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDAKLS0jICBlbmRp ZgotKyMgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDAKLSAjZW5kaWYKLSAKLSAjaWZuZGVm IFBOR19JTlRFTF9TU0VfT1BUCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcGZmZnQvc3JjL3Bm ZmZ0LmMgYi90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotaW5kZXggYmRhYzRkNzg0Li41 MWUwZjJjYWMgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotKysr IGIvdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKLUBAIC0xMDAsNiArMTAwLDcgQEAKLSAg ICBBbHRpdmVjIHN1cHBvcnQgbWFjcm9zIAotICovCi0gI2lmICFkZWZpbmVkKFBGRkZUX1NJTURf RElTQUJMRSkgJiYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pKQotKyNp bmNsdWRlIDxhbHRpdmVjLmg+Ci0gdHlwZWRlZiB2ZWN0b3IgZmxvYXQgdjRzZjsKLSAjICBkZWZp bmUgU0lNRF9TWiA0Ci0gIyAgZGVmaW5lIFZaRVJPKCkgKCh2ZWN0b3IgZmxvYXQpIHZlY19zcGxh dF91OCgwKSkKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlv bi9zcWxpdGUzLmMgYi90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUz LmMKLWluZGV4IDZiNGE3ODk5ZC4uYjhjN2ZlNDE0IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkv c3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5jCi0rKysgYi90aGlyZF9wYXJ0eS9zcWxp dGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLUBAIC0xNDQ3NCw3ICsxNDQ3NCw4IEBAIHR5 cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVm aW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAgIGRl ZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01f WDY0KSAgfHwgICAgXAotICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJN KSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVkKF9fQVJN RUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQotKyAg ICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5l ZChfTV9BUk02NCkgfHwgICBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZ VEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5lIFNRTElU RV9CWVRFT1JERVIgICAgMTIzNAotICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5l ZChfX3BwY19fKSB8fCBcCi0gICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9f QUFSQ0g2NEVCX18pCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2Ft YXRpb25fZGV2L3NxbGl0ZTMuYyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9u X2Rldi9zcWxpdGUzLmMKLWluZGV4IGQzMGM5YjdkZS4uY2Y3NWE2OWQ5IDEwMDY0NAotLS0tIGEv dGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYwotKysrIGIv dGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYwotQEAgLTE0 NDg3LDcgKzE0NDg3LDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmlu ZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4 NikgfHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRf XykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0 KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwK LS0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRl ZmluZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FB UkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKLSsgICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9f KQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQo c3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FS TUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jIGIvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9l eHQvcnRyZWUvcnRyZWUuYwotaW5kZXggZjViNTdhNWUyLi44MGEyZDBhZDggMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCi0rKysgYi90aGlyZF9w YXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCi1AQCAtNDUwLDcgKzQ1MCw3IEBAIHN0 cnVjdCBSdHJlZU1hdGNoQXJnIHsKLSAjaWYgZGVmaW5lZChpMzg2KSAgICAgfHwgZGVmaW5lZChf X2kzODZfXykgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAgZGVmaW5lZChfX3g4 Nl82NCkgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwK LSAgICAgZGVmaW5lZChfTV9BTUQ2NCkgfHwgZGVmaW5lZChfTV9BUk0pICAgICB8fCBkZWZpbmVk KF9feDg2KSAgIHx8ICAgIFwKLS0gICAgZGVmaW5lZChfX2FybV9fKQotKyAgICBkZWZpbmVkKF9f YXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9f T1JERVJfTElUVExFX0VORElBTl9fKQotICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIz NAotICNlbGlmIGRlZmluZWQoc3BhcmMpICAgIHx8IGRlZmluZWQoX19wcGNfXykKLSAjIGRlZmlu ZSBTUUxJVEVfQllURU9SREVSICAgIDQzMjEKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9zcWxp dGUvc3JjL3NyYy9zcWxpdGVJbnQuaCBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0 ZUludC5oCi1pbmRleCAyNDUwNzBkNGYuLmIyNTE2NGU5NSAxMDA2NDQKLS0tLSBhL3RoaXJkX3Bh cnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCi0rKysgYi90aGlyZF9wYXJ0eS9zcWxpdGUv c3JjL3NyYy9zcWxpdGVJbnQuaAotQEAgLTg3Nyw3ICs4NzcsOCBAQCB0eXBlZGVmIElOVDE2X1RZ UEUgTG9nRXN0OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18p ICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9feDg2XzY0 KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwK LSAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRl ZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmlu ZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKLSsgICAgIGRlZmluZWQoX19B Uk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8 IFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9f T1JERVJfTElUVExFX0VORElBTl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAx MjM0Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwK LSAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKLWRp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaCBiL3Ro aXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi1pbmRleCBiZTIzNjdiODUu LmJlNGVlNDIzMyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0 ZW0vYXJjaC5oCi0rKysgYi90aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2gu aAotQEAgLTc5LDYgKzc5LDE4IEBACi0gI2VsaWYgZGVmaW5lZChfX0VNU0NSSVBURU5fXykKLSAj ZGVmaW5lIFdFQlJUQ19BUkNIXzMyX0JJVFMKLSAjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9F TkRJQU4KLSsjZWxpZiBkZWZpbmVkKF9fUFBDX18pCi0rI2RlZmluZSBXRUJSVENfQVJDSF9QUENf RkFNSUxZCi0rI2lmIF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fCi0r I2RlZmluZSBXRUJSVENfQVJDSF9MSVRUTEVfRU5ESUFOCi0rI2Vsc2UKLSsjZGVmaW5lIFdFQlJU Q19BUkNIX0JJR19FTkRJQU4KLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX0xQNjRfXykKLSsjZGVm aW5lIFdFQlJUQ19BUkNIXzY0X0JJVFMKLSsjZWxzZQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJf QklUUwotKyNlbmRpZgotICNlbHNlCi0gI2Vycm9yIFBsZWFzZSBhZGQgc3VwcG9ydCBmb3IgeW91 ciBhcmNoaXRlY3R1cmUgaW4gcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAotICNlbmRpZgotZGlmZiAt LWdpdCBhL3Y4L0JVSUxELmduIGIvdjgvQlVJTEQuZ24KLWluZGV4IGYzOTUyOWEzYS4uZTg0ZmM0 NDllIDEwMDY0NAotLS0tIGEvdjgvQlVJTEQuZ24KLSsrKyBiL3Y4L0JVSUxELmduCi1AQCAtODUw LDYgKzg1MCwxMiBAQCBjb25maWcoInRvb2xjaGFpbiIpIHsKLSAgICAgfQotICAgICBpZiAoaG9z dF9ieXRlb3JkZXIgPT0gImxpdHRsZSIpIHsKLSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdF VF9BUkNIX1BQQ19MRSIgXQotKyAgICAgIGNmbGFncyArPSBbCi0rICAgICAgICAjIEVuYWJsZSB1 c2FnZSBvZiBBbHRpVmVjLCBWU1gsIGFuZCBvdGhlciBQT1dFUjggYW5kIGhpZ2hlciBmZWF0dXJl cwotKyAgICAgICAgIi1tY3B1PXBvd2VyOCIsCi0rICAgICAgICAiLW1hbHRpdmVjIiwKLSsgICAg ICAgICItbXZzeCIsCi0rICAgICAgXQotICAgICB9IGVsc2UgaWYgKGhvc3RfYnl0ZW9yZGVyID09 ICJiaWciKSB7Ci0gICAgICAgZGVmaW5lcyArPSBbICJWOF9UQVJHRVRfQVJDSF9QUENfQkUiIF0K LSAgICAgICBpZiAoY3VycmVudF9vcyA9PSAiYWl4IikgewotLS0tIGEvdWkvZ2wvZmVhdHVyZXMu Z25pCi0rKysgYi91aS9nbC9mZWF0dXJlcy5nbmkKLUBAIC0zMyw1ICszMyw1IEBACi0gICAgICAg IGlzX2Nocm9tZW9zX2FzaCB8fCBpc19mdWNoc2lhKSAmJgotICAgICAgICh0YXJnZXRfY3B1ID09 ICJ4ODYiIHx8IHRhcmdldF9jcHUgPT0gIng2NCIgfHwgdGFyZ2V0X2NwdSA9PSAiYXJtIiB8fAot ICAgICAgICB0YXJnZXRfY3B1ID09ICJhcm02NCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwc2VsIiB8 fAotLSAgICAgICB0YXJnZXRfY3B1ID09ICJtaXBzNjRlbCIgfHwgdGFyZ2V0X2NwdSA9PSAicmlz Y3Y2NCIpCi0rICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIiB8fCB0YXJnZXRfY3B1ID09 ICJyaXNjdjY0IiB8fCB0YXJnZXRfY3B1ID09ICJwcGM2NCIpCi0gfQotZGlmZiAtLWdpdCBhL3Y4 L3Rlc3QvQlVJTEQuZ24gYi92OC90ZXN0L0JVSUxELmduCi1pbmRleCBmYjg3MmFkMzkuLjQ1ZmM1 ODVkZCAxMDA2NDQKLS0tLSBhL3Y4L3Rlc3QvQlVJTEQuZ24KLSsrKyBiL3Y4L3Rlc3QvQlVJTEQu Z24KLUBAIC00Miw3ICs0Miw3IEBAIGdyb3VwKCJnbl9hbGwiKSB7Ci0gICAgICAgImJlbmNobWFy a3MvY3BwOmduX2FsbCIsCi0gICAgICAgImNjdGVzdDpjY3Rlc3QiLAotICAgICAgICJ1bml0dGVz dHM6Z2VuZXJhdGUtYnl0ZWNvZGUtZXhwZWN0YXRpb25zIiwKLS0gICAgICAidW5pdHRlc3RzOnVu aXR0ZXN0cyIsCi0rICAgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSAgICAgXQotICAgfQot IH0KLUBAIC04NCw3ICs4NCw3IEBACi0gICAgICJtZXNzYWdlOnY4X21lc3NhZ2UiLAotICAgICAi bWpzdW5pdDp2OF9tanN1bml0IiwKLSAgICAgIm1rZ3Jva2R1bXA6bWtncm9rZHVtcCIsCi0tICAg ICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSAg ICAgIndlYmtpdDp2OF93ZWJraXQiLAotICAgXQotIAotQEAgLTEwOSw3ICsxMDksNyBAQAotICAg ICAibWVzc2FnZTp2OF9tZXNzYWdlIiwKLSAgICAgIm1qc3VuaXQ6djhfbWpzdW5pdCIsCi0gICAg ICJta2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAotLSAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0r ICAgICMidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0gICBdCi0gCi0gICBpZiAodjhfZW5hYmxlX3dl YmFzc2VtYmx5KSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBw YzY0bGUtc3dpZnRzaGFkZXIucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBw YzY0bGUtc3dpZnRzaGFkZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRm NDUzZjQ5MWQ4Yy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94 eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAg QEAKLS0tLSBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9C VUlMRC5nbgotKysrIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0x MC4wL0JVSUxELmduCi1AQCAtNTc0LDYgKzU3NCw3IEBAIHN3aWZ0c2hhZGVyX2xsdm1fc291cmNl X3NldCgic3dpZnRzaGFkZXIKLSAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0NPRkYuY3BwIiwK LSAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0Rhcndpbi5jcHAiLAotICAgICAibGx2bS9saWIv TUMvTUNBc21JbmZvRUxGLmNwcCIsCi0rICAgICJsbHZtL2xpYi9NQy9NQ0FzbUluZm9YQ09GRi5j cHAiLAotICAgICAibGx2bS9saWIvTUMvTUNBc21NYWNyby5jcHAiLAotICAgICAibGx2bS9saWIv TUMvTUNBc21TdHJlYW1lci5jcHAiLAotICAgICAibGx2bS9saWIvTUMvTUNBc3NlbWJsZXIuY3Bw IiwKLUBAIC02MjksNiArNjMwLDcgQEAgc3dpZnRzaGFkZXJfbGx2bV9zb3VyY2Vfc2V0KCJzd2lm dHNoYWRlcgotICAgICAibGx2bS9saWIvTUMvTUNXaW5DT0ZGU3RyZWFtZXIuY3BwIiwKLSAgICAg Imxsdm0vbGliL01DL01DV2luRUguY3BwIiwKLSAgICAgImxsdm0vbGliL01DL01DWENPRkZTdHJl YW1lci5jcHAiLAotKyAgICAibGx2bS9saWIvTUMvTUNYQ09GRk9iamVjdFRhcmdldFdyaXRlci5j cHAiLAotICAgICAibGx2bS9saWIvTUMvTWFjaE9iamVjdFdyaXRlci5jcHAiLAotICAgICAibGx2 bS9saWIvTUMvU3RyaW5nVGFibGVCdWlsZGVyLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9TdWJ0 YXJnZXRGZWF0dXJlLmNwcCIsCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRl IGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQppbmRleCA3ZGVhOGJiZTUwZDMuLjc4NGI4YThj NWQyOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2Nocm9taXVtL3RlbXBsYXRlCkBAIC0xLDkgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Y2hyb21pdW0nCiBwa2duYW1lPWNocm9taXVtCiAjIFNlZSBodHRwczovL2Nocm9taXVtZGFzaC5h cHBzcG90LmNvbS9yZWxlYXNlcz9wbGF0Zm9ybT1MaW51eCBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9u Ci12ZXJzaW9uPTEwOC4wLjUzNTkuMTI0Cit2ZXJzaW9uPTEwOS4wLjU0MTQuNzQKIHJldmlzaW9u PTEKLWFyY2hzPSJpNjg2KiB4ODZfNjQqIGFhcmNoNjQqIGFybXY3bCogcHBjNjRsZSoiCithcmNo cz0iaTY4NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12N2wqIgogaG9zdG1ha2VkZXBlbmRzPSIKICAk KHZvcHRfaWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTIiKQogICQodm9wdF9pZiBqc19vcHRpbWl6 ZSBvcGVuamRrKQpAQCAtMjgsNyArMjgsNyBAQCBtYWludGFpbmVyPSJEdW5jYWVuIDxkdW5jYWVu QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd3d3LmNocm9taXVtLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3Jh Z2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nlci1vZmZpY2lhbC8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDQ4ZGZhYzJhNjFiMTRhNWQ3ZDJmNDYwYjA5Yjcw ZWYzYWI4OGUyN2I4MmUzMTczOTM4Y2I1NGVhYTYxMmE3NQorY2hlY2tzdW09ZWRlZDIzM2MyNmFi NjMxYmUzMjVhZDQ5Y2IzMDZjMzM4NTEzYjZhNjUyODE5N2Q0MjY1M2U2NjE4NzU0OGU1ZAogCiBs aWIzMmRpc2FibGVkPXllcwogCkBAIC0zOSwxMCArMzksOSBAQCBkZXNjX29wdGlvbl9kZWJ1Zz0i QnVpbGQgd2l0aCBkZWJ1ZyBzeW1ib2xzIgogZGVzY19vcHRpb25fanNfb3B0aW1pemU9Ik9wdGlt aXplIHRoZSBKUyB1c2VkIGZvciBDaHJvbWl1bSdzIFVJIgogZGVzY19vcHRpb25fcGlwZXdpcmU9 IkVuYWJsZSBzdXBwb3J0IGZvciBzY3JlZW4gc2hhcmluZyBmb3IgV2ViUlRDIHZpYSBQaXBlV2ly ZSIKIAotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQlwcGM2NCotbXVzbCkgbWFr ZWRlcGVuZHMrPSIgbGlidWNvbnRleHQtZGV2ZWwiIDs7Ci1lc2FjCitpZiBbICIkWEJQU19UQVJH RVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIG11c2wtbGVnYWN5LWNv bXBhdCIKK2ZpCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtlZGVwZW5k cys9IiBsaWJYMTEtZGV2ZWwgbGlieGNiLWRldmVsIHBjaXV0aWxzLWRldmVsIGxpYlhleHQtZGV2 ZWwgbGliZ2x2bmQtZGV2ZWwKQEAgLTEzNSwyMCArMTM0LDYgQEAgZG9fY29uZmlndXJlKCkgewog CQlDRkxBR1M9JENGTEFHU19GT1JfQlVJTEQgQ1hYRkxBR1M9JENYWEZMQUdTX0ZPUl9CVUlMRCBM REZMQUdTPSRMREZMQUdTX0ZPUl9CVUlMRCBcCiAJCXRvb2xzL2duL2Jvb3RzdHJhcC9ib290c3Ry YXAucHkgLS1za2lwLWdlbmVyYXRlLWJ1aWxkZmlsZXMKIAotCSMgd2UgbmVlZCB0byBnZW5lcmF0 ZSBwcGM2NCBzdHVmZiBmb3IgbGlidnB4IGFzIGl0J3Mgbm90IHNoaXBwZWQKLQkjIHRoaXMgaGFz IHRvIGJlIGRvbmUgYmVmb3JlIHVuYnVuZGxpbmcsIGJ1dCBhZnRlciBnbiBpcyBidWlsdAotCSMg Y29tbWVudCBvdXQgaWYgd2Ugc3dpdGNoIGJhY2sgdG8gc3lzdGVtIGxpYnZweCBhZ2FpbiBsYXRl cgotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlwcGM2NCopCi0JCQlwdXNoZCB0 aGlyZF9wYXJ0eS9saWJ2cHgKLQkJCW1rZGlyIC1wIHNvdXJjZS9jb25maWcvbGludXgvcHBjNjQK LQkJCSMgbmVlZCBQQVRIIHRvIGZpbmQgZ24KLQkJCVBBVEg9IiR7d3Jrc3JjfS9vdXQvUmVsZWFz ZTokUEFUSCIgLi9nZW5lcmF0ZV9nbmkuc2ggfHwgXAotCQkJCW1zZ19lcnJvciAiZmFpbGVkIHRv IGdlbmVyYXRlIGxpYnZweCBnbmkiCi0JCQlwb3BkCi0JCQk7OwotCWVzYWMKLQogCSMgVXNlIHN5 c3RlbS1wcm92aWRlZCBsaWJyYXJpZXMuCiAJIyBUT0RPOiB1c2Vfc3lzdGVtX2h1bnNwZWxsICh1 cHN0cmVhbSBjaGFuZ2VzIG5lZWRlZCkuCiAJIyBUT0RPOiB1c2Vfc3lzdGVtX2xpYnNydHAuCkBA IC0yMjAsOSArMjA1LDYgQEAgZG9fY29uZmlndXJlKCkgewogCiAJCSdpY3VfdXNlX2RhdGFfZmls ZT10cnVlJwogCi0JCSd1c2VfYWxsb2NhdG9yPSJub25lIicKLQkJJ3VzZV9hbGxvY2F0b3Jfc2hp bT1mYWxzZScKLQogCQknZW5hYmxlX3dpZGV2aW5lPXRydWUnCiAJCSdlbmFibGVfaGFuZ291dF9z ZXJ2aWNlc19leHRlbnNpb249dHJ1ZScKIApAQCAtMjg2LDExICsyNjgsNiBAQCBkb19jb25maWd1 cmUoKSB7CiAJCSkKIAlmaQogCi0JIyB0aGlzIGRvZXMgbm90IHdvcmsgb24gcHBjNjQgeWV0Ci0J Y2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCXBwYzY0KikgY29uZis9KCAiZW5hYmxl X2p4bF9kZWNvZGVyPWZhbHNlIiApOzsKLQllc2FjCi0KIAlpZiBbICIkWEJQU19UQVJHRVRfTElC QyIgPSAibXVzbCIgXTsgdGhlbgogCQljb25mKz0oICdpc19tdXNsPXRydWUnICkKIAlmaQpAQCAt MzAwLDcgKzI3Nyw2IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJaTY4NiopIGNvbmYrPSggJ3Rhcmdl dF9jcHU9Ing4NiInICkgOzsKIAkJYXJtKikgY29uZis9KCAndGFyZ2V0X2NwdT0iYXJtIicgKSA7 OwogCQlhYXJjaDY0KikgY29uZis9KCAndGFyZ2V0X2NwdT0iYXJtNjQiJyApIDs7Ci0JCXBwYzY0 KikgY29uZis9KCAndGFyZ2V0X2NwdT0icHBjNjQiJyApIDs7CiAJZXNhYwogCiAJaWYgWyAiJENS T1NTX0JVSUxEIiBdOyB0aGVuCkBAIC0zMDksNyArMjg1LDYgQEAgZG9fY29uZmlndXJlKCkgewog CQkJaTY4NiopIGNvbmYrPSggJ2hvc3RfY3B1PSJ4ODYiJyApIDs7CiAJCQlhcm0qKSBjb25mKz0o ICdob3N0X2NwdT0iYXJtIicgKSA7OwogCQkJYWFyY2g2NCopIGNvbmYrPSggJ2hvc3RfY3B1PSJh cm02NCInICkgOzsKLQkJCXBwYzY0KikgY29uZis9KCAnaG9zdF9jcHU9InBwYzY0IicgKSA7Owog CQllc2FjCiAJZmkKIAlfc2V0dXBfdG9vbGNoYWluCkBAIC0zMTgsMTMgKzI5MywxMyBAQCBkb19j b25maWd1cmUoKSB7CiAKIGRvX2J1aWxkKCkgewogCV9zZXR1cF90b29sY2hhaW4KLQlDQ0FDSEVf U0xPUFBJTkVTUz1pbmNsdWRlX2ZpbGVfbXRpbWUgbmluamEgLUMgb3V0L1JlbGVhc2UgJHttYWtl am9ic30gY2hyb21lIGNocm9tZWRyaXZlciBjaHJvbWVfY3Jhc2hwYWRfaGFuZGxlcgorCUNDQUNI RV9TTE9QUElORVNTPWluY2x1ZGVfZmlsZV9tdGltZSBuaW5qYSAtQyBvdXQvUmVsZWFzZSAke21h a2Vqb2JzfSBjaHJvbWUgY2hyb21lZHJpdmVyLnVuc3RyaXBwZWQgY2hyb21lX2NyYXNocGFkX2hh bmRsZXIKIH0KIAogZG9faW5zdGFsbCgpIHsKIAl2aW5zdGFsbCBvdXQvUmVsZWFzZS9jaHJvbWUg NzU1IHVzci9saWIvJHtwa2duYW1lfSAke3BrZ25hbWV9CiAJdmluc3RhbGwgb3V0L1JlbGVhc2Uv Y2hyb21lX2NyYXNocGFkX2hhbmRsZXIgNzU1IHVzci9saWIvJHtwa2duYW1lfSBjaHJvbWVfY3Jh c2hwYWRfaGFuZGxlcgotCXZpbnN0YWxsIG91dC9SZWxlYXNlL2Nocm9tZWRyaXZlciA3NTUgdXNy L2xpYi8ke3BrZ25hbWV9IGNocm9tZWRyaXZlcgorCXZpbnN0YWxsIG91dC9SZWxlYXNlL2Nocm9t ZWRyaXZlci51bnN0cmlwcGVkIDc1NSB1c3IvbGliLyR7cGtnbmFtZX0gY2hyb21lZHJpdmVyCiAJ dmluc3RhbGwgb3V0L1JlbGVhc2UvbGliRUdMLnNvIDc1NSB1c3IvbGliLyR7cGtnbmFtZX0gbGli RUdMLnNvCiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvbGliR0xFU3YyLnNvIDc1NSB1c3IvbGliLyR7 cGtnbmFtZX0gbGliR0xFU3YyLnNvCiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvbGlidmtfc3dpZnRz aGFkZXIuc28gNzU1IHVzci9saWIvJHtwa2duYW1lfSBsaWJ2a19zd2lmdHNoYWRlci5zbwo= --===============7369689190155835037==--