From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24895 invoked from network); 12 Jan 2023 20:44:58 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 12 Jan 2023 20:44:58 -0000 Content-Type: multipart/mixed; boundary="===============7052094110347398645==" 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: Thu, 12 Jan 2023 21:44:58 +0100 List-Id: Message-ID: <20230112204458.P_D9VuQtr_Yb23eEmike4pLDomXOYLgb2aUi0R0cFJM@z> GitHub notification mails are now in MIME to allow UTF8. --===============7052094110347398645== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGNocm9taXVtLTEwOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDE1NzAKCmNocm9taXVtOiB1cGRhdGUgdG8gMTA5LjAu NTQxNC43NC4KW2NpIHNraXBdDQoNCiogW3hdIHg4Nl82NC1nbGliYw0KKiBbeF0geDg2XzY0LW11 c2wNCiogWyBdIGFhcmNoNjQtbXVzbA0KKiBbIF0gaTY4NgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQxNTcwLnBhdGNo IGlzIGF0dGFjaGVk --===============7052094110347398645== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-109-41570.patch" RnJvbSBlMmM0YmMyMDc2MjU2NGU1ZjE2MDIyMTBmNDRkY2UxZGYyM2RlNmYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFdlZCwgMTEgSmFuIDIwMjMgMDE6Mjg6NDAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBjaHJvbWl1 bTogdXBkYXRlIHRvIDEwOS4wLjU0MTQuNzQuCgotLS0KIC4uLi9tdXNsLXBhdGNoZXMveHh4LXBw YzY0bGUtc3VwcG9ydC5wYXRjaCAgICB8ICAxODcgLQogLi4uL3BhdGNoZXMvYnVpbGQtYWRkLXVz ZV9jeHgxNy5wYXRjaCAgICAgICAgIHwgICAzOCArLQogLi4uL3BhdGNoZXMvZml4LWJ1aWxkLXdp dGgtb2xkLWNsYW5nLnBhdGNoICAgIHwgICAyMCArCiAuLi4vcGF0Y2hlcy9maXgtY29uc3RleHBy LW5hcnJvd2luZy5wYXRjaCAgICAgfCAgIDIxICsKIC4uLi9wYXRjaGVzL2ZpeC1tdXNsLW5vLW1h bGxpbmZvLnBhdGNoICAgICAgICB8ICAgMTEgKwogLi4uL3BhdGNoZXMvZml4LW11c2wtcHRocmVh ZC1zdGFja3NpemUucGF0Y2ggIHwgICA0MCAtCiAuLi4vY2hyb21pdW0vcGF0Y2hlcy9maXgtbmFy cm93aW5nLWNhc3QucGF0Y2ggfCAgIDM5ICstCiAuLi4vcGF0Y2hlcy9maXgtbmFzbS1tdXNsLWNv bmZpZy5wYXRjaCAgICAgICAgfCAgIDEyIC0KIC4uLi9wYXRjaGVzL211c2wtcGFydGl0aW9uLWF0 Zm9yay5wYXRjaCAgICAgICB8ICAgMTEgKwogLi4udWlsZC1lcnJvci1vbi1saW51eC13aXRoLXN5 c3RlbS16bGliLnBhdGNoIHwgICA0MSAtCiAuLi4vcGF0Y2hlcy9yZW1vdmUtc3RyaXBfYmluYXJ5 LnBhdGNoICAgICAgICAgfCAgIDMyIC0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2NGxlLTRrLXBhZ2Vz LnBhdGNoICAgICAgICB8ICAgNjAgLQogLi4uL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUt bGlidnB4LnBhdGNoIHwgICAzMyAtCiAuLi4veHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0 LnBhdGNoICAgICAgfCAgIDMxIC0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0 Y2ggICAgICAgICB8IDM1OTAgLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2 NGxlLXN3aWZ0c2hhZGVyLnBhdGNoICAgICB8ICAgMTggLQogc3JjcGtncy9jaHJvbWl1bS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICA0MSArLQogMTcgZmlsZXMgY2hhbmdlZCwgODkg aW5zZXJ0aW9ucygrKSwgNDEzNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1idWlsZC13 aXRoLW9sZC1jbGFuZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1uby1tYWxsaW5mby5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1wdGhyZWFk LXN0YWNrc2l6ZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9maXgtbmFzbS1tdXNsLWNvbmZpZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXBhcnRpdGlvbi1hdGZvcmsucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmUtZml4LVRGTGl0ZS1idWlsZC1l cnJvci1vbi1saW51eC13aXRoLXN5c3RlbS16bGliLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3JlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtNGstcGFn ZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4 LXBwYzY0bGUtbGlidnB4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2 NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxl cy9tdXNsLXBhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21p dW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1NWY2OWMwNzJjOGEuLjAwMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4NyArMCwwIEBACi1kaWZmIC0tZ2l0IHNhbmRib3gv bGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNj b21wX21hY3Jvcy5oCi1pbmRleCBhNmFlYzU0NGUuLjJhNGE3ZjFiYyAxMDA2NDQKLS0tLSBzYW5k Ym94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotKysrIHNhbmRib3gvbGludXgvYnBm X2RzbC9zZWNjb21wX21hY3Jvcy5oCi1AQCAtMTYsNyArMTYsNyBAQAotICNpZiBkZWZpbmVkKF9f bWlwc19fKQotIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlv bgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLS0jZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKLSAvLyBN YW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBwYzY0Ci0gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxv bmcgZ3JlZ190OwotICNlbmRpZgotQEAgLTM2MSwxMSArMzYxLDExIEBAIHR5cGVkZWYgc3RydWN0 IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7Ci0gI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9Q UEM2NAotICNlbmRpZgotIAotLSNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKChfY3R4 KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQotKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0 eCwgX3JlZykgKCgoc3RydWN0IHB0X3JlZ3MgKikoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MpLT5n cHJbX3JlZ10pCi0gCi0gI2RlZmluZSBTRUNDT01QX1JFU1VMVChfY3R4KSBTRUNDT01QX1JFRyhf Y3R4LCAzKQotICNkZWZpbmUgU0VDQ09NUF9TWVNDQUxMKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgs IDApCi0tI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpIChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+ bmlwCi0rI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpICgoc3RydWN0IHB0X3JlZ3MgKikoX2N0eCkt PnVjX21jb250ZXh0LnJlZ3MpLT5uaXAKLSAjZGVmaW5lIFNFQ0NPTVBfUEFSTTEoX2N0eCkgU0VD Q09NUF9SRUcoX2N0eCwgMykKLSAjZGVmaW5lIFNFQ0NPTVBfUEFSTTIoX2N0eCkgU0VDQ09NUF9S RUcoX2N0eCwgNCkKLSAjZGVmaW5lIFNFQ0NPTVBfUEFSTTMoX2N0eCkgU0VDQ09NUF9SRUcoX2N0 eCwgNSkKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjIHNh bmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotaW5kZXggZDUzYTdmZjU2Li5jMjkw ZjBlOTIgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi0r Kysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1AQCAtNDk5LDkgKzQ5OSw5 IEBAIHZvaWQgU3lzY2FsbDo6UHV0VmFsdWVJblVjb250ZXh0KGludHB0cl90IHJldF92YWwsIHVj b250ZXh0X3QqIGN0eCkgewotICAgLy8gU2FtZSBhcyBNSVBTLCBuZWVkIHRvIGludmVydCByZXQg YW5kIHNldCBlcnJvciByZWdpc3RlciAoY3IwLlNPKQotICAgaWYgKHJldF92YWwgPD0gLTEgJiYg cmV0X3ZhbCA+PSAtNDA5NSkgewotICAgICByZXRfdmFsID0gLXJldF92YWw7Ci0tICAgIGN0eC0+ dWNfbWNvbnRleHQucmVncy0+Y2NyIHw9ICgxIDw8IDI4KTsKLSsgICAgKChzdHJ1Y3QgcHRfcmVn cyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciB8PSAoMSA8PCAyOCk7Ci0gICB9IGVsc2Ug ewotLSAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOwotKyAgICAo KHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19tY29udGV4dC5yZWdzKS0+Y2NyICY9IH4oMSA8PCAy OCk7Ci0gICB9Ci0gI2VuZGlmCi0gICBTRUNDT01QX1JFU1VMVChjdHgpID0gc3RhdGljX2Nhc3Q8 Z3JlZ190PihyZXRfdmFsKTsKLS0tLSB0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9p bnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2tfY29uZmlnLmgKLSsrKyB0aGlyZF9wYXJ0eS9hYnNl aWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2tfY29uZmlnLmgKLUBA IC0yMiw2ICsyMiw3IEBACi0gLy8gVGhlIGZvbGxvd2luZyBwbGF0Zm9ybXMgaGF2ZSBhbiBpbXBs ZW1lbnRhdGlvbiBvZiBhIGhhcmR3YXJlIGNvdW50ZXIuCi0gI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotICAg ICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19y aXNjdikgfHwgICAgIFwKLSsgICAgKChkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9f cHBjX18pKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IGRlZmluZWQoX19yaXNjdikgfHwgICAg IFwKLSAgICAgZGVmaW5lZChfTV9JWDg2KSB8fCAoZGVmaW5lZChfTV9YNjQpICYmICFkZWZpbmVk KF9NX0FSTTY0RUMpKQotICNkZWZpbmUgQUJTTF9IQVZFX1VOU0NBTEVEX0NZQ0xFQ0xPQ0tfSU1Q TEVNRU5UQVRJT04gMQotICNlbHNlCi0tLS0gdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Rl YnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX2NvbmZpZy5oCi0rKysgdGhpcmRfcGFydHkvYWJz ZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX2NvbmZpZy5oCi1AQCAt NjQsNyArNjQsNyBAQAotICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykKLSAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKLSAgICJhYnNsL2Rl YnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3g4Ni1pbmwuaW5jIgotLSNlbGlmIGRlZmluZWQo X19wcGNfXykgfHwgZGVmaW5lZChfX1BQQ19fKQotKyNlbGlmIChkZWZpbmVkKF9fcHBjX18pIHx8 IGRlZmluZWQoX19QUENfXykpICYmIGRlZmluZWQoX19HTElCQ19fKQotICNkZWZpbmUgQUJTTF9T VEFDS1RSQUNFX0lOTF9IRUFERVIgXAotICAgImFic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNr dHJhY2VfcG93ZXJwYy1pbmwuaW5jIgotICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduIHRoaXJkX3BhcnR5L2JyZWFrcGFk L0JVSUxELmduCi1pbmRleCBmOWE2MGUzNy4uMjVmM2EwYjcgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFy dHkvYnJlYWtwYWQvQlVJTEQuZ24KLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgot QEAgLTYzNyw2ICs2MzcsNyBAQCBpZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotIAotICAg ICBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotICAgICAgICAgZGVmaW5lcyA9IFsgIkhB VkVfR0VUQ09OVEVYVCIgXQotKyAgICAgICAgbGlicyArPSBbICJ1Y29udGV4dCIgXQotICAgICB9 IGVsc2UgewotICAgICAgICAgc291cmNlcyArPSBbCi0gICAgICAgICAgICAgImJyZWFrcGFkL3Ny Yy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TIgotZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1v bi90aHJlYWRfaW5mby5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotaW5kZXggMDNhZmVjN2Eu LjAyNjRlY2YxIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCi0rKysgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdGhyZWFkX2luZm8uY2MKLUBAIC0yNzMsNiArMjczLDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpG aWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAKLSAjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gCi0rI2luY2x1ZGUgPGFzbS9lbGYuaD4KLSsjaW5jbHVkZSA8 YXNtL3B0cmFjZS5oPgotKwotIHVpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlvblBv aW50ZXIoKSBjb25zdCB7Ci0gICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0g fQotQEAgLTI5MCw5ICsyOTMsOSBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJh d0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotICAgICBvdXQtPmN0ciA9IG1jb250ZXh0LmdwX3Jl Z3NbUFRfQ1RSXTsKLSAgICAgCi0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdT QVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0tICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnBy ZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5m cHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW2ldOwotIAotLSAgICBv dXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsgICAg b3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdzKVtF TEZfTkZQUkVHLTFdOwotIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVB UkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotICAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3Zy W2ldID0gXAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v dWNvbnRleHRfcmVhZGVyLmNjCi1pbmRleCAxMDkwNDcwZi4uZTU4MDIzM2QgMTAwNjQ0Ci0tLS0g dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRl cl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVy LmNjCi1AQCAtMjU3LDYgKzI1Nyw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250 ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpIHsKLSAKLSAjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gCi0rI2luY2x1ZGUgPGFzbS9lbGYuaD4KLSsjaW5j bHVkZSA8YXNtL3B0cmFjZS5oPgotKwotIHVpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0U3Rh Y2tQb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7Ci0gICAgIHJldHVybiB1Yy0+dWNfbWNv bnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF07Ci0gfQotQEAgLTI4MCw5ICsy ODMsOSBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BV KiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjLAotICAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1E X0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAgb3V0LT5mbG9h dF9zYXZlLmZwcmVnc1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOwotKyAgICAgICAg b3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9ICgodWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0 LmZwX3JlZ3MpW2ldOwotIAotLSAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+dWNfbWNv bnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgo dWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3JlZ3MpW0VMRl9ORlBSRUctMV07Ci0gCi0g ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBp KyspCi0gICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPQotZGlmZiAtLWdpdCB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhj ZXB0aW9uX2hhbmRsZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1pbmRleCA1YTdhYjUwYy4uZWU4 Yjg1OGMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi0rKysgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVy LmNjCi1AQCAtMTA1LDYgKzEwNSwxMSBAQAotICNkZWZpbmUgUFJfU0VUX1BUUkFDRVIgMHg1OTYx NmQ2MQotICNlbmRpZgotIAotKy8qIG11c2wgaGFjaywgY2FuJ3QgaW5jbHVkZSBhc20vcHRyYWNl LmggYXMgdGhhdCBjYXVzZXMgY29uZmxpY3RzICovCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRf XykgJiYgIWRlZmluZWQoUFRfTklQKQotKyNkZWZpbmUgUFRfTklQIDMyCi0rI2VuZGlmCi0rCi0g bmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7Ci0gCi0gbmFtZXNwYWNlIHsKLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRl eHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxf Y29udGV4dC5oCi1pbmRleCA4ZTMzNWEwOS4uYjJhMGYxNTUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAotKysr IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250 ZXh0LmgKLUBAIC00NjksNyArNDY5LDcgQEAgc3RydWN0IE1Db250ZXh0NjQgewotICAgU2lnbmFs VGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7Ci0gICBTaWduYWxGbG9hdENvbnRleHQ2NCAgZnBfcmVn czsKLSAgIFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9yZWdzOwotLSAgaW50NjRfdCB2bXhfcmVz ZXJ2ZVs2OV07Ci0rICBpbnQ2NF90IHZteF9yZXNlcnZlWzEwMV07Ci0gfTsKLSAKLSBzdHJ1Y3Qg Q29udGV4dFRyYWl0czY0IDogcHVibGljIFRyYWl0czY0IHsKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotaW5kZXggZGVhMGQx ZjMuLmIyMDNlNWIyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbGludXgvdGhyZWFkX2luZm8uaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotQEAgLTMwLDYgKzMwLDcgQEAKLSAKLSAjaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgot KyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0gI2VuZGlmCi0gCi0gbmFtZXNwYWNlIGNyYXNocGFk IHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIHRo aXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotaW5kZXggOTk1NWNlNDQuLjRj MWNjNDg4IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQu aAotKysrIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTQyMTYs OSArNDIxNiwxMyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Ci0gICAgIH0KLSAgICNlbmRpZgot ICAgI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCi0rICAgIC8vIG11c2wgZG9lcyAjZGVmaW5l IGZzdGF0YXQ2NCBmc3RhdGF0Ci0rICAgICN1bmRlZiBmc3RhdGF0NjQKLSAgICAgTFNTX0lOTElO RSBfc3lzY2FsbDQoaW50LCAgIGZzdGF0YXQ2NCwgICAgICAgIGludCwgICBkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosICAgICAgcCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGtlcm5lbF9zdGF0NjQgKiwgICBiLCAgICBpbnQsICAgZikKLSsgICAg Ly8gc2V0IGl0IGJhY2sgbGlrZSBpdCB3YXMKLSsgICAgI2RlZmluZSBmc3RhdGF0NjQgZnN0YXRh dAotICAgI2VuZGlmCi0gICAjaWYgZGVmaW5lZChfX05SX3dhaXRwaWQpCi0gICAgIC8vIHdhaXRw aWQgaXMgcG9seWZpbGxlZCBiZWxvdyB3aGVuIG5vdCBhdmFpbGFibGUuCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvYnVpbGQtYWRkLXVzZV9jeHgxNy5wYXRjaCBiL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9idWlsZC1hZGQtdXNlX2N4eDE3LnBhdGNoCmluZGV4IDA5MWIx YzU1MzcyNzAuLmI1MDgyNWZiN2UyYzQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9idWlsZC1hZGQtdXNlX2N4eDE3LnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9idWlsZC1hZGQtdXNlX2N4eDE3LnBhdGNoCkBAIC0xLDI2ICsxLDIyIEBACiAtLS0gYS9i dWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24KICsrKyBiL2J1aWxkL2NvbmZpZy9jb21waWxl ci9CVUlMRC5nbgotQEAgLTE2Nyw2ICsxNjcsMTAgQEAKLSAgICMgRW5hYmxlIC1ILCB3aGljaCBw cmludHMgdGhlIGluY2x1ZGUgdHJlZSBkdXJpbmcgY29tcGlsYXRpb24uCi0gICAjIEZvciB1c2Ug YnkgdG9vbHMvY2xhbmcvc2NyaXB0cy9hbmFseXplX2luY2x1ZGVzLnB5Ci0gICBzaG93X2luY2x1 ZGVzID0gZmFsc2UKLSsKLSsgICMgQWxsb3cgcHJvamVjdHMgdGhhdCB3aXNoIHRvIHN0YXkgb24g QysrMTcgdG8gb3ZlcnJpZGUgQ2hyb21pdW0ncyBkZWZhdWx0LgotKyAgIyBUT0RPKGNyYnVnLmNv bS8xNDAyMjQ5KTogZXZhbHVhdGUgcmVtb3ZpbmcgdGhpcyBlbmQgb2YgMjAyMwotKyAgdXNlX2N4 eDE3ID0gZmFsc2UKK0BAIC0xOTEsNiArMTkxLDEwIEBACisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJ4NjQiKSkp KQogIH0KICAKLSBkZWNsYXJlX2FyZ3MoKSB7Ci1AQCAtNTk2LDcgKzYwMCwxMSBAQAotICAgICB9 IGVsc2UgaWYgKGlzX2xpbnV4KSB7Ci0gICAgICAgIyBUT0RPKGNyYnVnLmNvbS8xMjg0Mjc1KTog U3dpdGNoIHRvIEMrKzIwIG9uIGFsbCBwbGF0Zm9ybXMuCi0gICAgICAgaWYgKGlzX2NsYW5nKSB7 Ci0tICAgICAgICBjZmxhZ3NfY2MgKz0gWyAiLXN0ZD0ke3N0YW5kYXJkX3ByZWZpeH0rKzIwIiBd Ci0rICAgICAgICBpZiAodXNlX2N4eDE3KSB7Ci0rICAgICAgICAgIGNmbGFnc19jYyArPSBbICIt c3RkPSR7c3RhbmRhcmRfcHJlZml4fSsrMTciIF0KLSsgICAgICAgIH0gZWxzZSB7Ci0rICAgICAg ICAgIGNmbGFnc19jYyArPSBbICItc3RkPSR7c3RhbmRhcmRfcHJlZml4fSsrMjAiIF0KLSsgICAg ICAgIH0KKytkZWNsYXJlX2FyZ3MoKSB7CisrICB1c2VfY3h4MTcgPSBmYWxzZQorK30KKysKKyBp ZiAoaXNfYW5kcm9pZCB8fCAoaXNfY2hyb21lb3NfYXNoICYmIGlzX2Nocm9tZW9zX2RldmljZSkp IHsKKyAgICMgU2V0IHRoZSBwYXRoIHRvIHVzZSBvcmRlcmZpbGUgZm9yIGxpbmtpbmcgQ2hyb21l CisgICAjIE5vdGUgdGhhdCB0aGlzIGlzIGZvciB1c2luZyBvbmx5IG9uZSBvcmRlcmZpbGUgZm9y IGxpbmtpbmcKK0BAIC02MDUsNyArNjA5LDcgQEAKKyAgICAgICAgIGNmbGFnc19jYyArPSBbICIt Zm5vLXRyaWdyYXBocyIgXQorICAgICAgIH0KKyAgICAgfSBlbHNlIGlmIChpc19jbGFuZykgewor LSAgICAgIGlmIChpc19jaHJvbWVvc19kZXZpY2UpIHsKKysgICAgICBpZiAoaXNfY2hyb21lb3Nf ZGV2aWNlIHx8IHVzZV9jeHgxNykgeworICAgICAgICAgIyBUT0RPKGNyYnVnLmNvbS8xMzkyNDcx KTogU3VwcG9ydCBDKysyMCBpbiBDck9TIHRvb2xjaGFpbi4KKyAgICAgICAgIGNmbGFnc19jYyAr PSBbICItc3RkPSR7c3RhbmRhcmRfcHJlZml4fSsrMTciIF0KICAgICAgICB9IGVsc2UgewotICAg ICAgICAgIyBUaGUgZ2NjIGJvdHMgYXJlIGN1cnJlbnRseSB1c2luZyBHQ0MgOSwgd2hpY2ggaXMg bm90IG5ldyBlbm91Z2ggdG8KLSAgICAgICAgICMgc3VwcG9ydCAiYysrMjAiLyJnbnUrKzIwIi4K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtYnVpbGQtd2l0aC1vbGQt Y2xhbmcucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LWJ1aWxkLXdpdGgtb2xk LWNsYW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmYy MzIxOGU3MWU0ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Zml4LWJ1aWxkLXdpdGgtb2xkLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL2J1 aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgorKysrIGIvYnVpbGQvY29uZmlnL2NvbXBpbGVy L0JVSUxELmduCitAQCAtODA1LDE3ICs4MDUsNiBAQAorICAgICBjZmxhZ3MgKz0gWyAiLWZjb21w bGV0ZS1tZW1iZXItcG9pbnRlcnMiIF0KKyAgIH0KKyAKKy0gICMgVXNlIERXQVJGIHNpbXBsZSB0 ZW1wbGF0ZSBuYW1lcywgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnM6CistICAjCistICAj ICogV2luZG93cyBpcyBub3Qgc3VwcG9ydGVkIGFzIGl0IGRvZXNuJ3QgdXNlIERXQVJGLgorLSAg IyAqIEFwcGxlIHBsYXRmb3JtcyAoZS5nLiBNYWNPUywgaVBob25lLCBpUGFkKSBhcmVuJ3Qgc3Vw cG9ydGVkIGJlY2F1c2UgeGNvZGUKKy0gICMgICBsbGRiIGRvZXNuJ3QgaGF2ZSB0aGUgbmVlZGVk IGNoYW5nZXMgeWV0LgorLSAgIyAqIEZ1Y2hzaWEgaXNuJ3Qgc3VwcG9ydGVkIGFzIHp4ZGIgZG9l c24ndCBzdXBwb3J0IHNpbXBsZSB0ZW1wbGF0ZSBuYW1lcyB5ZXQuCistICAjIFRPRE8oY3JidWcu Y29tLzEzNzkwNzApOiBSZW1vdmUgaWYgdGhlIHVwc3RyZWFtIGRlZmF1bHQgZXZlciBjaGFuZ2Vz LgorLSAgaWYgKGlzX2NsYW5nICYmICFpc19uYWNsICYmICFpc193aW4gJiYgIWlzX2FwcGxlICYm ICFpc19mdWNoc2lhKSB7CistICAgIGNmbGFnc19jYyArPSBbICItZ3NpbXBsZS10ZW1wbGF0ZS1u YW1lcyIgXQorLSAgfQorLQorICAgIyBNTEdPIHNwZWNpZmljIGZsYWdzLiBUaGVzZSBmbGFncyBl bmFibGUgYW4gTUwtYmFzZWQgaW5saW5lciB0cmFpbmVkIG9uCisgICAjIENocm9tZSBvbiBBbmRy b2lkIChhcm0zMikgd2l0aCBUaGluTFRPIGVuYWJsZWQsIG9wdGltaXppbmcgZm9yIHNpemUuCisg ICAjIFRoZSAicmVsZWFzZSIgTUwgbW9kZWwgaXMgZW1iZWRkZWQgaW50byBjbGFuZyBhcyBwYXJ0 IG9mIGl0cyBidWlsZC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgt Y29uc3RleHByLW5hcnJvd2luZy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgt Y29uc3RleHByLW5hcnJvd2luZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwLi41NzBjYTZlNjlhODA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2ZpeC1jb25zdGV4cHItbmFycm93aW5nLnBhdGNoCkBAIC0wLDAgKzEsMjEg QEAKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL21lZGlhL3dlYl9t ZWRpYV9wbGF5ZXJfaW1wbC5jYy5vcmlnCisrKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS9tZWRpYS93ZWJfbWVkaWFfcGxheWVyX2ltcGwuY2MKK0BAIC0zODgxLDE1ICsz ODgxLDE1IEBACisgICAgIGNvbnN0IFQmLi4uIHZhbHVlcykgeworICAgc3RkOjpzdHJpbmcgc3Ry a2V5ID0gc3RkOjpzdHJpbmcoa2V5KTsKKyAKKy0gIGlmIGNvbnN0ZXhwciAoRmxhZ3MgJiBrRW5j cnlwdGVkKSB7CisrICBpZiBjb25zdGV4cHIgKEZsYWdzICYga0VuY3J5cHRlZCAhPSAwKSB7Cisg ICAgIGlmIChpc19lbmNyeXB0ZWRfKQorICAgICAgIFVtYUZ1bmN0aW9uKHN0cmtleSArICIuRU1F IiwgdmFsdWVzLi4uKTsKKyAgIH0KKyAKKy0gIGlmIGNvbnN0ZXhwciAoRmxhZ3MgJiBrVG90YWwp CisrICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1RvdGFsICE9IDApCisgICAgIFVtYUZ1bmN0aW9u KHN0cmtleSArICIuQWxsIiwgdmFsdWVzLi4uKTsKKyAKKy0gIGlmIGNvbnN0ZXhwciAoRmxhZ3Mg JiBrUGxheWJhY2tUeXBlKSB7CisrICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1BsYXliYWNrVHlw ZSAhPSAwKSB7CisgICAgIGF1dG8gZGVtdXhlcl90eXBlID0gR2V0RGVtdXhlclR5cGUoKTsKKyAg ICAgaWYgKCFkZW11eGVyX3R5cGUuaGFzX3ZhbHVlKCkpCisgICAgICAgcmV0dXJuOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1tdXNsLW5vLW1hbGxpbmZvLnBhdGNo IGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjE3MThlY2NiMjIwNDcKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW11c2wtbm8tbWFs bGluZm8ucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0 aW9uX2FsbG9jYXRvci9zaGltL2FsbG9jYXRvcl9zaGltX2RlZmF1bHRfZGlzcGF0Y2hfdG9fcGFy dGl0aW9uX2FsbG9jLmNjCisrKysgYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9y L3NoaW0vYWxsb2NhdG9yX3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90b19wYXJ0aXRpb25fYWxsb2Mu Y2MKK0BAIC03MTcsNyArNzE3LDcgQEAKKyAKKyAjZW5kaWYgIC8vICFCVUlMREZMQUcoSVNfQVBQ TEUpICYmICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKyAKKy0jaWYgQlVJTERGTEFHKElTX0xJTlVY KSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisrI2lmIChCVUlMREZMQUcoSVNfTElOVVgpICYm IGRlZmluZWQoX19HTElCQ19fKSkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TKQorIFNISU1fQUxX QVlTX0VYUE9SVCBzdHJ1Y3QgbWFsbGluZm8gbWFsbGluZm8odm9pZCkgX19USFJPVyB7CisgICBi YXNlOjpTaW1wbGVQYXJ0aXRpb25TdGF0c0R1bXBlciBhbGxvY2F0b3JfZHVtcGVyOworICAgQWxs b2NhdG9yKCktPkR1bXBTdGF0cygibWFsbG9jIiwgdHJ1ZSwgJmFsbG9jYXRvcl9kdW1wZXIpOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1tdXNsLXB0aHJlYWQtc3Rh Y2tzaXplLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1tdXNsLXB0aHJlYWQt c3RhY2tzaXplLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDU1MzMxOTBk Yjk2Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVz bC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAK LS0tLSBhL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYwotKysrIGIvYmFz ZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCi1AQCAtNDM2LDggKzQzNiwxMyBA QAotIAotIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHB0aHJlYWRfYXR0 cl90JiBhdHRyaWJ1dGVzKSB7Ci0gI2lmICFkZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpCi0rI2lm IGRlZmluZWQoX19HTElCQ19fKQotICAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSsgIC8vIG11c2wgbGli Y3MgZGVmYXVsdCBpcyB0b28gc21hbGwsIHVzZSA4bWIgbGlrZSBnbGliYwotKyAgcmV0dXJuICgx IDw8IDIzKTsKLSsjZW5kaWYKLSsjZWxzZQotICAgLy8gVGhyZWFkU2FuaXRpemVyIGJsb2F0cyB0 aGUgc3RhY2sgaGVhdmlseS4gRXZpZGVuY2UgaGFzIGJlZW4gdGhhdCB0aGUKLSAgIC8vIGRlZmF1 bHQgc3RhY2sgc2l6ZSBpc24ndCBlbm91Z2ggZm9yIHNvbWUgYnJvd3NlciB0ZXN0cy4KLSAgIHJl dHVybiAyICogKDEgPDwgMjMpOyAgLy8gMiB0aW1lcyA4MTkySyAodGhlIGRlZmF1bHQgc3RhY2sg c2l6ZSBvbiBMaW51eCkuCi0tLS0gYS9jaHJvbWUvYnJvd3Nlci9zaHV0ZG93bl9zaWduYWxfaGFu ZGxlcnNfcG9zaXguY2MKLSsrKyBiL2Nocm9tZS9icm93c2VyL3NodXRkb3duX3NpZ25hbF9oYW5k bGVyc19wb3NpeC5jYwotQEAgLTE4OCwxMSArMTg4LDIxIEBACi0gICBnX3NodXRkb3duX3BpcGVf cmVhZF9mZCA9IHBpcGVmZFswXTsKLSAgIGdfc2h1dGRvd25fcGlwZV93cml0ZV9mZCA9IHBpcGVm ZFsxXTsKLSAjaWYgIWRlZmluZWQoQUREUkVTU19TQU5JVElaRVIpCi0rI2lmIGRlZmluZWQoX19H TElCQ19fKQotICAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXpl ID0gUFRIUkVBRF9TVEFDS19NSU4gKiAyOwotICNlbHNlCi0rICAvLyBtYXRjaCB1cCBtdXNscyAy ayBQVEhSRUFEX1NUQUNLX01JTiB3aXRoIGdsaWJjcyAxNmsKLSsgIGNvbnN0IHNpemVfdCBrU2h1 dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICogMiAqIDg7 Ci0rI2VuZGlmCi0rI2Vsc2UKLSAgIC8vIEFTYW4gaW5zdHJ1bWVudGF0aW9uIGJsb2F0cyB0aGUg c3RhY2sgZnJhbWVzLCBzbyB3ZSBuZWVkIHRvIGluY3JlYXNlIHRoZQotICAgLy8gc3RhY2sgc2l6 ZSB0byBhdm9pZCBoaXR0aW5nIHRoZSBndWFyZCBwYWdlLgotKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykKLSAgIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBU SFJFQURfU1RBQ0tfTUlOICogNDsKLSsjZWxzZQotKyAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRl dGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiA0ICogODsKLSsgIC8v IG1hdGNoIHVwIG11c2xzIDJrIFBUSFJFQURfU1RBQ0tfTUlOIHdpdGggZ2xpYmNzIDE2awotKyNl bmRpZgotICNlbmRpZgotICAgU2h1dGRvd25EZXRlY3RvciogZGV0ZWN0b3IgPSBuZXcgU2h1dGRv d25EZXRlY3RvcigKLSAgICAgICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCwgc3RkOjptb3ZlKHNo dXRkb3duX2NhbGxiYWNrKSwgdGFza19ydW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2ZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKaW5kZXggYWZkNDJhMTQ4OWFlNy4uMWEy NDdlNTRmZTdjZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXJy b3dpbmctY2FzdC5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW5hcnJv d2luZy1jYXN0LnBhdGNoCkBAIC0xLDQzICsxLDYgQEAKLS0tLSBhL2Jhc2UvZmlsZXMvZmlsZV91 dGlsX2xpbnV4LmNjCi0rKysgYi9iYXNlL2ZpbGVzL2ZpbGVfdXRpbF9saW51eC5jYwotQEAgLTIz LDE0ICsyMywxNCBAQAotIAotICAgLy8gTm90IGFsbCBwb3NzaWJsZSB8c3RhdGZzX2J1Zi5mX3R5 cGV8IHZhbHVlcyBhcmUgaW4gbGludXgvbWFnaWMuaC4KLSAgIC8vIE1pc3NpbmcgdmFsdWVzIGFy ZSBjb3BpZWQgZnJvbSB0aGUgc3RhdGZzIG1hbiBwYWdlLgotLSAgc3dpdGNoIChzdGF0ZnNfYnVm LmZfdHlwZSkgewotKyAgc3dpdGNoIChzdGF0aWNfY2FzdDx1aW50bWF4X3Q+KHN0YXRmc19idWYu Zl90eXBlKSkgewotICAgICBjYXNlIDA6Ci0gICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV8wOwot ICAgICAgIGJyZWFrOwotICAgICBjYXNlIEVYVDJfU1VQRVJfTUFHSUM6ICAvLyBBbHNvIGV4dDMg YW5kIGV4dDQKLSAgICAgY2FzZSBNU0RPU19TVVBFUl9NQUdJQzoKLSAgICAgY2FzZSBSRUlTRVJG U19TVVBFUl9NQUdJQzoKLS0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KEJUUkZTX1NVUEVSX01B R0lDKToKLSsgICAgY2FzZSBCVFJGU19TVVBFUl9NQUdJQzoKLSAgICAgY2FzZSAweDUzNDY1NDRF OiAgLy8gTlRGUwotICAgICBjYXNlIDB4NTg0NjUzNDI6ICAvLyBYRlMKLSAgICAgY2FzZSAweDMx NTM0NjRBOiAgLy8gSkZTCi1AQCAtNDAsMTQgKzQwLDE0IEBACi0gICAgICAgKnR5cGUgPSBGSUxF X1NZU1RFTV9ORlM7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgU01CX1NVUEVSX01BR0lDOgot LSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oMHhGRjUzNEQ0Mik6ICAvLyBDSUZTCi0rICAgIGNh c2UgMHhGRjUzNEQ0MjogIC8vIENJRlMKLSAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX1NNQjsK LSAgICAgICBicmVhazsKLSAgICAgY2FzZSBDT0RBX1NVUEVSX01BR0lDOgotICAgICAgICp0eXBl ID0gRklMRV9TWVNURU1fQ09EQTsKLSAgICAgICBicmVhazsKLS0gICAgY2FzZSBzdGF0aWNfY2Fz dDxpbnQ+KEhVR0VUTEJGU19NQUdJQyk6Ci0tICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihSQU1G U19NQUdJQyk6Ci0rICAgIGNhc2UgSFVHRVRMQkZTX01BR0lDOgotKyAgICBjYXNlIFJBTUZTX01B R0lDOgotICAgICBjYXNlIFRNUEZTX01BR0lDOgotICAgICAgICp0eXBlID0gRklMRV9TWVNURU1f TUVNT1JZOwotICAgICAgIGJyZWFrOwogLS0tIGEvYmFzZS9zeXN0ZW0vc3lzX2luZm9fcG9zaXgu Y2MKICsrKyBiL2Jhc2Uvc3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCi1AQCAtMTAwLDEwICsxMDAs MTAgQEAKK0BAIC02MiwxMCArNjIsMTAgQEAKICAgIGlmIChIQU5ETEVfRUlOVFIoc3RhdGZzKHBh dGgudmFsdWUoKS5jX3N0cigpLCAmc3RhdHMpKSAhPSAwKQogICAgICByZXR1cm4gZmFsc2U7CiAg CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW5hc20tbXVzbC1jb25m aWcucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW5hc20tbXVzbC1jb25maWcu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhMDMzN2YzYmYzYjUuLjAwMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXNtLW11c2wtY29u ZmlnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tIGEvdGhpcmRfcGFy dHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmgKLSsrKyBiL3RoaXJkX3BhcnR5L25hc20vY29u ZmlnL2NvbmZpZy1saW51eC5oCi1AQCAtMTM5LDcgKzEzOSw5IEBACi0gI2RlZmluZSBIQVZFX0FD Q0VTUyAxCi0gCi0gLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjYW5vbmljYWxpemVf ZmlsZV9uYW1lJyBmdW5jdGlvbi4gKi8KLSsjaWZkZWYgX19HTElCQ19fCi0gI2RlZmluZSBIQVZF X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQotKyNlbmRpZgotIAotIC8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSBgY3B1X3RvX2xlMTYnIGludHJpbnNpYyBmdW5jdGlvbi4gKi8KLSAvKiAj dW5kZWYgSEFWRV9DUFVfVE9fTEUxNiAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL211c2wtcGFydGl0aW9uLWF0Zm9yay5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9tdXNsLXBhcnRpdGlvbi1hdGZvcmsucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMC4uMjkxMGFhMmJiZjliMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXBhcnRpdGlvbi1hdGZvcmsucGF0Y2gKQEAgLTAsMCAr MSwxMSBAQAorLS0tIGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRp b25fcm9vdC5jYworKysrIGIvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0 aXRpb25fcm9vdC5jYworQEAgLTIzOSw3ICsyMzksNyBAQAorICAgaWYgKCFnX2dsb2JhbF9pbml0 X2NhbGxlZC5jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyhleHBlY3RlZCwgdHJ1ZSkpCisgICAgIHJl dHVybjsKKyAKKy0jaWYgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01F T1MpCisrI2lmIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwg QlVJTERGTEFHKElTX0NIUk9NRU9TKQorICAgLy8gV2hlbiBmb3JrKCkgaXMgY2FsbGVkLCBvbmx5 IHRoZSBjdXJyZW50IHRocmVhZCBjb250aW51ZXMgdG8gZXhlY3V0ZSBpbiB0aGUKKyAgIC8vIGNo aWxkIHByb2Nlc3MuIElmIHRoZSBsb2NrIGlzIGhlbGQsIGJ1dCAqbm90KiBieSB0aGlzIHRocmVh ZCB3aGVuIGZvcmsoKSBpcworICAgLy8gY2FsbGVkLCB3ZSBoYXZlIGEgZGVhZGxvY2suCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmUtZml4LVRGTGl0ZS1idWlsZC1lcnJv ci1vbi1saW51eC13aXRoLXN5c3RlbS16bGliLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL3JlLWZpeC1URkxpdGUtYnVpbGQtZXJyb3Itb24tbGludXgtd2l0aC1zeXN0ZW0temxpYi5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTNkNTA0ZDNlNzkyMC4uMDAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmUtZml4LVRGTGl0ZS1idWls ZC1lcnJvci1vbi1saW51eC13aXRoLXN5c3RlbS16bGliLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNDEgKzAsMCBAQAotRnJvbSBkZGEwMWE3MDY0NTNkZWQ4YzAxYzQxNzc1NzA3Y2I1ZWY0ZTMx NmY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5kcmVzIFNhbG9tb24gPGRpbGlu Z2VyQHF1ZXVlZC5uZXQ+Ci1EYXRlOiBUdWUsIDI1IE9jdCAyMDIyIDIxOjExOjQ2ICswMDAwCi1T dWJqZWN0OiBbUEFUQ0hdIFJlLWZpeCBURkxpdGUgYnVpbGQgZXJyb3Igb24gbGludXggd2hlbiB1 c2luZyB0aGUgc3lzdGVtIHpsaWIKLQotSW4gY29tbWl0IGFlMGY5YWRiN2UxNGMwZDE5Y2E2OTVl ZjZhZDQwYjMyMWE4Y2I2NGMsIEkgZml4ZWQgc29tZSBidWlsZAotZXJyb3JzIHJlbGF0ZWQgdG8g bWluaXppcCBwYXRjaCBpbmNsdXNpb24gaW4gVEZMaXRlLiBIb3dldmVyLCBhZnRlciB0aGF0Ci13 aGVuIFRGTGl0ZSBTdXBwb3J0IHdhcyByb2xsZWQgdG8gSEVBRCwgYSBzbWFsbCBwYXJ0IG9mIHRo YXQgcGF0Y2ggZ290Ci1kcm9wcGVkLiBUaGUgcmVzdWx0IGlzIHRoZSBmb2xsb3dpbmcgYnVpbGQg ZXJyb3Igd2l0aCAxMDcuMC41MzA0LjYyOgotCi0uLi8uLi90aGlyZF9wYXJ0eS90ZmxpdGVfc3Vw cG9ydC9zcmMvdGVuc29yZmxvd19saXRlX3N1cHBvcnQvbWV0YWRhdGEvY2MvdXRpbHMvemlwX3Jl YWRvbmx5X21lbV9maWxlLmNjOjIyOjEwOiBmYXRhbCBlcnJvcjogJ2NvbnRyaWIvbWluaXppcC9p b2FwaS5oJyBmaWxlIG5vdCBmb3VuZAotICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgotMSBlcnJvciBnZW5lcmF0ZWQuCi0KLVRoaXMgY29tbWl0IHJlLWFkZHMgdGhlIGxvc3QgZml4 LgotCi1SPWp1bnpvdUBjaHJvbWl1bS5vcmcKLQotQ2hhbmdlLUlkOiBJZTk2YzM1NzE4OTRiNTEw MGExZTJhMjc3MWRhMjk2OTllZmYwYmViMwotUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0t cmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8zOTcyMDg3Ci1SZXZpZXdl ZC1ieTogUm9iZXJ0IE9nZGVuIDxyb2JlcnRvZ2RlbkBjaHJvbWl1bS5vcmc+Ci1Db21taXQtUXVl dWU6IFJvYmVydCBPZ2RlbiA8cm9iZXJ0b2dkZW5AY2hyb21pdW0ub3JnPgotQXV0by1TdWJtaXQ6 IEFuZHJlcyBTYWxvbW9uIDxkaWxpbmdlckBxdWV1ZWQubmV0PgotQ3ItQ29tbWl0LVBvc2l0aW9u OiByZWZzL2hlYWRzL21haW5AeyMxMDYzNDc4fQotLS0tCi0gLi4uL21ldGFkYXRhL2NjL3V0aWxz L3ppcF9yZWFkb25seV9tZW1fZmlsZS5jYyAgICAgICAgICAgICAgICAgIHwgMiArLQotIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvdGZsaXRlX3N1cHBvcnQvc3JjL3RlbnNvcmZsb3dfbGl0ZV9zdXBwb3J0L21l dGFkYXRhL2NjL3V0aWxzL3ppcF9yZWFkb25seV9tZW1fZmlsZS5jYyBiL3RoaXJkX3BhcnR5L3Rm bGl0ZV9zdXBwb3J0L3NyYy90ZW5zb3JmbG93X2xpdGVfc3VwcG9ydC9tZXRhZGF0YS9jYy91dGls cy96aXBfcmVhZG9ubHlfbWVtX2ZpbGUuY2MKLWluZGV4IDM5MmI2YjQxMWZlLi41MjVhZTRhMmI0 NSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3RmbGl0ZV9zdXBwb3J0L3NyYy90ZW5zb3JmbG93 X2xpdGVfc3VwcG9ydC9tZXRhZGF0YS9jYy91dGlscy96aXBfcmVhZG9ubHlfbWVtX2ZpbGUuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L3RmbGl0ZV9zdXBwb3J0L3NyYy90ZW5zb3JmbG93X2xpdGVfc3Vw cG9ydC9tZXRhZGF0YS9jYy91dGlscy96aXBfcmVhZG9ubHlfbWVtX2ZpbGUuY2MKLUBAIC0xOSw3 ICsxOSw3IEBAIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICNpbmNsdWRlIDxjc3Rk aW8+Ci0gCi0gI2luY2x1ZGUgImFic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5oIiAgLy8gZnJvbSBA Y29tX2dvb2dsZV9hYnNsCi0tI2luY2x1ZGUgImNvbnRyaWIvbWluaXppcC9pb2FwaS5oIgotKyNp bmNsdWRlICJ0aGlyZF9wYXJ0eS96bGliL2NvbnRyaWIvbWluaXppcC9pb2FwaS5oIgotIAotIG5h bWVzcGFjZSB0ZmxpdGUgewotIG5hbWVzcGFjZSBtZXRhZGF0YSB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaCBiL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA4YjEzYzZhMDU2YTg2Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMzIgKzAsMCBAQAotLS0tIGEvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL0JVSUxE LmduLm9yaWcKLSsrKyBiL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9CVUlMRC5nbgotQEAgLTMw OCwxMSArMzA4LDcgQEAKLSAgIH0KLSB9Ci0gCi0taWYgKGlzX2xpbnV4KSB7Ci0tICBjaHJvbWVk cml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlci51bnN0cmlwcGVkIgotLX0gZWxzZSB7Ci0tICBj aHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlciIKLS19Ci0rY2hyb21lZHJpdmVyX291 dHB1dCA9ICJjaHJvbWVkcml2ZXIiCi0gCi0gZXhlY3V0YWJsZSgiJGNocm9tZWRyaXZlcl9vdXRw dXQiKSB7Ci0gICB0ZXN0b25seSA9IHRydWUKLUBAIC0zMzYsMTYgKzMzMiw2IEBACi0gICB9Ci0g fQotIAotLWlmIChpc19saW51eCkgewotLSAgc3RyaXBfYmluYXJ5KCJjaHJvbWVkcml2ZXIiKSB7 Ci0tICAgIHRlc3Rvbmx5ID0gdHJ1ZQotLSAgICBiaW5hcnlfaW5wdXQgPSAiJHJvb3Rfb3V0X2Rp ci8kY2hyb21lZHJpdmVyX291dHB1dCIKLS0gICAgc3ltYm9sX291dHB1dCA9ICIkcm9vdF9vdXRf ZGlyL2Nocm9tZWRyaXZlci5kZWJ1ZyIKLS0gICAgc3RyaXBwZWRfYmluYXJ5X291dHB1dCA9ICIk cm9vdF9vdXRfZGlyL2Nocm9tZWRyaXZlciIKLS0gICAgZGVwcyA9IFsgIjokY2hyb21lZHJpdmVy X291dHB1dCIgXQotLSAgfQotLX0KLS0KLSBweXRob25fbGlicmFyeSgiY2hyb21lZHJpdmVyX3B5 X3Rlc3RzIikgewotICAgdGVzdG9ubHkgPSB0cnVlCi0gICBkZXBzID0gWwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLTRrLXBhZ2VzLnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLTRrLXBhZ2VzLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGM0YWQzNWYxNGUwLi4wMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS00ay1wYWdlcy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLWNvbW1pdCA0NTgwOWY4NWJjMzUyNGY4NjdlNmU5 NTRmNDQ0ZmRkZDIzMzMyNDVhCi1BdXRob3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1E YXRlOiAgIEZyaSBKYW4gNyAxODoxODo1MiAyMDIyICswMTAwCi0KLSAgICBzd2l0Y2ggcHBjNjQg dG8gNGsgcGFnZXMKLSAgICAKLSAgICBzaW5jZSB0aGUgcGFydGl0aW9uIGFsbG9jYXRvciBhcHBl YXJzIHRvIGhhdGUgbGFyZ2VyIGNvbnN0YW50cwotICAgIGFuZCBhdCB0aGlzIHBvaW50IGVycm9y cyBhdCBjb21waWxlIHRpbWUgYW5kIGkgYW0gbm90IHdpbGxpbmcKLSAgICB0byB3YWRlIHRocm91 Z2ggdGhpcyBwaWxlIG9mIGN1cnNlIGFuZCB3ZSB1c2UgNGsga2VybmVscyBhbnl3YXksCi0gICAg YXNzdW1lIDRLIHBhZ2VzIGZvciBwcGM2NAotCi1kaWZmIC0tZ2l0IGEvYmFzZS9hbGxvY2F0b3Iv cGFydGl0aW9uX2FsbG9jYXRvci9wYWdlX2FsbG9jYXRvcl9jb25zdGFudHMuaCBiL2Jhc2UvYWxs b2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFnZV9hbGxvY2F0b3JfY29uc3RhbnRzLmgKLWlu ZGV4IGJmZDU3NTMuLjA0NTA4MmIgMTAwNjQ0Ci0tLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRp b25fYWxsb2NhdG9yL3BhZ2VfYWxsb2NhdG9yX2NvbnN0YW50cy5oCi0rKysgYi9iYXNlL2FsbG9j YXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhZ2VfYWxsb2NhdG9yX2NvbnN0YW50cy5oCi1AQCAt NjksNyArNjksNyBAQCBuYW1lc3BhY2UgYmFzZSB7Ci0KLSBQQUdFX0FMTE9DQVRPUl9DT05TVEFO VFNfREVDTEFSRV9DT05TVEVYUFIgUEFfQUxXQVlTX0lOTElORSBzaXplX3QKLSBQYWdlQWxsb2Nh dGlvbkdyYW51bGFyaXR5U2hpZnQoKSB7Ci0tI2lmIEJVSUxERkxBRyhJU19XSU4pIHx8IGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjQpCi0rI2lmIEJVSUxERkxBRyhJU19XSU4pCi0gICAvLyBNb2Rlcm4g cHBjNjQgc3lzdGVtcyBzdXBwb3J0IDRrQiAoc2hpZnQgPSAxMikgYW5kIDY0a0IgKHNoaWZ0ID0g MTYpIHBhZ2UKLSAgIC8vIHNpemVzLiAgU2luY2UgNjRrQiBpcyB0aGUgZGUgZmFjdG8gc3RhbmRh cmQgb24gdGhlIHBsYXRmb3JtIGFuZCBiaW5hcmllcwotICAgLy8gY29tcGlsZWQgZm9yIDY0a0Ig YXJlIGxpa2VseSB0byB3b3JrIG9uIDRrQiBzeXN0ZW1zLCA2NGtCIGlzIGEgZ29vZCBjaG9pY2UK LWRpZmYgLS1naXQgYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlv bl9hbGxvY19jb25zdGFudHMuaCBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Iv cGFydGl0aW9uX2FsbG9jX2NvbnN0YW50cy5oCi1pbmRleCAwYjkyNjBkLi4zZTA1NGVjIDEwMDY0 NAotLS0tIGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRpb25fYWxs b2NfY29uc3RhbnRzLmgKLSsrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Iv cGFydGl0aW9uX2FsbG9jX2NvbnN0YW50cy5oCi1AQCAtOTAsMTEgKzkwLDYgQEAKLSBQYXJ0aXRp b25QYWdlU2hpZnQoKSB7Ci0gICByZXR1cm4gMTY7ICAvLyA2NCBLaUIKLSB9Ci0tI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NCkKLS1QQUdFX0FMTE9DQVRPUl9DT05TVEFOVFNfREVDTEFSRV9D T05TVEVYUFIgUEFfQUxXQVlTX0lOTElORSBzaXplX3QKLS1QYXJ0aXRpb25QYWdlU2hpZnQoKSB7 Ci0tICByZXR1cm4gMTg7ICAvLyAyNTYgS2lCCi0tfQotICNlbGlmIChCVUlMREZMQUcoSVNfQVBQ TEUpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpIHx8IFwKLSAgICAgKEJVSUxERkxBRyhJ U19MSU5VWCkgJiYgZGVmaW5lZChBUkNIX0NQVV9BUk02NCkpCi0gUEFHRV9BTExPQ0FUT1JfQ09O U1RBTlRTX0RFQ0xBUkVfQ09OU1RFWFBSIFBBX0FMV0FZU19JTkxJTkUgc2l6ZV90Ci0tLS0gYS9i YXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY19mb3J3YXJk LmgKLSsrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2Fs bG9jX2ZvcndhcmQuaAotQEAgLTI1LDEyICsyNSwxNyBAQAotIC8vIHRoZSBzZWNvbmQgb25lIDE2 LiBXZSBjb3VsZCB0ZWNobmljYWxseSByZXR1cm4gc29tZXRoaW5nIGRpZmZlcmVudCBmb3IKLSAv LyBtYWxsb2MoKSBhbmQgb3BlcmF0b3IgbmV3KCksIGJ1dCB0aGlzIHdvdWxkIGNvbXBsaWNhdGUg dGhpbmdzLCBhbmQgbW9zdCBvZgotIC8vIG91ciBhbGxvY2F0aW9ucyBhcmUgcHJlc3VtYWJseSBj b21pbmcgZnJvbSBvcGVyYXRvciBuZXcoKSBhbnl3YXkuCi0rI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsvKiB3ZSB3YW50IHRoaXMgdG8gYmUgMTYgaGVyZSBhbHdheXMgKi8KLStjb25zdGV4 cHIgc2l6ZV90IGtBbGlnbm1lbnQgPSAxNjsKLSsjZWxzZQotIGNvbnN0ZXhwciBzaXplX3Qga0Fs aWdubWVudCA9Ci0gICAgIHN0ZDo6bWF4KGFsaWdub2YobWF4X2FsaWduX3QpLAotICAgICAgICAg ICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KF9fU1REQ1BQX0RFRkFVTFRfTkVXX0FMSUdOTUVOVF9f KSk7Ci0gc3RhdGljX2Fzc2VydChrQWxpZ25tZW50IDw9IDE2LAotICAgICAgICAgICAgICAgIlBh cnRpdGlvbkFsbG9jIGRvZXNuJ3Qgc3VwcG9ydCBhIGZ1bmRhbWVudGFsIGFsaWdubWVudCBsYXJn ZXIgIgotICAgICAgICAgICAgICAgInRoYW4gMTYgYnl0ZXMuIik7Ci0rI2VuZGlmCi0gCi0gY29u c3RleHByIGJvb2wgVGhyZWFkU2FmZSA9IHRydWU7Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL3h4eC1wcGM2NGxlLWxpYnZweC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMGMwM2FkNGE2NWViNC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MzMgKzAsMCBAQAotY29tbWl0IDk4MTQzN2JjODQ2ZmNkYjg1NDA2MmU4OWZkM2Q4NmYxMTJlNWY0 MjYKLUF1dGhvcjogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KLURhdGU6ICAgU2F0IEp1biAy NSAxMjozNTozNyAyMDIyICswMjAwCi0KLSAgICBVc2UgZ2VuZXJpYyB0YXJnZXQgZm9yIG5vdy4K LSAgICAKLSAgICBUaGlzIGlzIGJlY2F1c2UgdGhlIHNvdXJjZSB0cmVlIGlzIG1pc3NpbmcgdnN4 IG9wdGltaXphdGlvbnMgdGhhdAotICAgIHRoZW4gZG8gbm90IGdldCBpbmNsdWRlZCBhbmQgcmVz dWx0IGluIGZhaWxlZCBsaW5raW5nIHN1Y2ggYXM6Ci0gICAgCi0gICAgbGQubGxkOiBlcnJvcjog dW5kZWZpbmVkIHN5bWJvbDogdnB4X21zZTE2eDE2X3ZzeAotCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaCBiL3RoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0 ZV9nbmkuc2gKLWluZGV4IDc0MjkwODAuLjQzZWUyOWEgMTAwNzU1Ci0tLS0gYS90aGlyZF9wYXJ0 eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoCi0rKysgYi90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJh dGVfZ25pLnNoCi1AQCAtNDA1LDcgKzQwNSw3IEBACi0gZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9t aXBzNjRlbCAiLS10YXJnZXQ9bWlwczY0LWxpbnV4LWdjYyAke2FsbF9wbGF0Zm9ybXN9IgotIGdl bl9jb25maWdfZmlsZXMgbGludXgvbG9vbmdhcmNoIFwKLSAgICItLXRhcmdldD1sb29uZ2FyY2g2 NC1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSIKLS1nZW5fY29uZmlnX2ZpbGVzIGxpbnV4L3Bw YzY0ICItLXRhcmdldD1wcGM2NGxlLWxpbnV4LWdjYyAke2FsbF9wbGF0Zm9ybXN9IgotK2dlbl9j b25maWdfZmlsZXMgbGludXgvcHBjNjQgIi0tdGFyZ2V0PWdlbmVyaWMtZ251ICR7YWxsX3BsYXRm b3Jtc30iCi0gZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9nZW5lcmljICItLXRhcmdldD1nZW5lcmlj LWdudSAkSElHSEJEICR7YWxsX3BsYXRmb3Jtc30iCi0gZ2VuX2NvbmZpZ19maWxlcyB3aW4vYXJt NjQgXAotICAgIi0tdGFyZ2V0PWFybTY0LXdpbjY0LXZzMTUgJHthbGxfcGxhdGZvcm1zfSAke0hJ R0hCRH0iCi1AQCAtNDY4LDcgKzQ2OCw3IEBACi0gZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L21pcHNl bCBtaXBzZWwKLSBnZW5fcnRjZF9oZWFkZXIgbGludXgvbWlwczY0ZWwgbWlwczY0ZWwKLSBnZW5f cnRjZF9oZWFkZXIgbGludXgvbG9vbmdhcmNoIGxvb25nYXJjaAotLWdlbl9ydGNkX2hlYWRlciBs aW51eC9wcGM2NCBwcGMKLStnZW5fcnRjZF9oZWFkZXIgbGludXgvcHBjNjQgZ2VuZXJpYwotIGdl bl9ydGNkX2hlYWRlciBsaW51eC9nZW5lcmljIGdlbmVyaWMKLSBnZW5fcnRjZF9oZWFkZXIgd2lu L2FybTY0IGFybXY4Ci0gZ2VuX3J0Y2RfaGVhZGVyIHdpbi9pYTMyIHg4NiAiJHtyZXF1aXJlX3Nz ZTJ9IgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXNh bmRib3gtbGludXgtc3RhdC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBj NjRsZS1zYW5kYm94LWxpbnV4LXN0YXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDRiZmI1ZDQ5NGIwNmYuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL3h4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDMxICswLDAgQEAKLS0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGlu dXhfc3RhdC5oCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N0YXQu aAotQEAgLTE1NSw2ICsxNTUsMjggQEAgc3RydWN0IGtlcm5lbF9zdGF0IHsKLSAgIHVuc2lnbmVk IGludCBfX3VudXNlZDQ7Ci0gICB1bnNpZ25lZCBpbnQgX191bnVzZWQ1OwotIH07Ci0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3N0cnVjdCBrZXJuZWxfc3RhdCB7Ci0rICB1bnNpZ25l ZCBsb25nCXN0X2RldjsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfaW5vOwotKyAgdW5zaWduZWQgbG9u ZwlzdF9ubGluazsKLSsgIHVuc2lnbmVkIGludAlzdF9tb2RlOwotKyAgdW5zaWduZWQgaW50CXN0 X3VpZDsKLSsgIHVuc2lnbmVkIGludAlzdF9naWQ7Ci0rICB1bnNpZ25lZCBsb25nCXN0X3JkZXY7 Ci0rICBsb25nCQlzdF9zaXplOwotKyAgdW5zaWduZWQgbG9uZwlzdF9ibGtzaXplOwotKyAgdW5z aWduZWQgbG9uZwlzdF9ibG9ja3M7Ci0rICB1bnNpZ25lZCBsb25nCXN0X2F0aW1lXzsKLSsgIHVu c2lnbmVkIGxvbmcJc3RfYXRpbWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25nCXN0X210aW1lXzsK LSsgIHVuc2lnbmVkIGxvbmcJc3RfbXRpbWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25nCXN0X2N0 aW1lXzsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfY3RpbWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25n CV9fdW51c2VkNDsKLSsgIHVuc2lnbmVkIGxvbmcJX191bnVzZWQ1OwotKyAgdW5zaWduZWQgbG9u ZwlfX3VudXNlZDY7Ci0rfTsKLSAjZW5kaWYKLSAKLSAvLyBPbiAzMi1iaXQgc3lzdGVtcywgd2Ug ZGVmYXVsdCB0byB0aGUgNjQtYml0IHN0YXQgc3RydWN0IGxpa2UgbGliYwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggYi9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMGJjNTA1MzU4OTE2OC4uMDAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDM1OTAgKzAsMCBAQAotY29tbWl0IDJjMDEzYTMxN2IxMTE0ZWY2N2NkYmJj MzA4MjRiMjg5MDdiOWVhOTQKLUF1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+Ci1EYXRlOiAgIFdlZCBNYXIgMyAxOTowODoyOSAyMDIxICswMTAwCi0KLSAgICBwcGM2 NGxlIHN1cHBvcnQKLQotZGlmZiAtLWdpdCBhL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlu cy5weSBiL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQotaW5kZXggMjg2YTkyYTI3 Li5lYzM2YTg1ZDMgMTAwNzU1Ci0tLS0gYS9idWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMu cHkKLSsrKyBiL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQotQEAgLTEzLDYgKzEz LDEwIEBAIGltcG9ydCBzeXMKLSAKLSAKLSBkZWYgTWFpbihhcmdzKToKLSsgICMgSWYgYGRpc2Fi bGVfbmFjbD0xYCBpcyBpbiBHWVBfREVGSU5FUywgZXhpdAotKyAgaWYgJ2Rpc2FibGVfbmFjbD0x JyBpbiBvcy5lbnZpcm9uLmdldCgnR1lQX0RFRklORVMnLCAnJyk6Ci0rICAgIHJldHVybiAwCi0r Ci0gICBzY3JpcHRfZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVf XykpCi0gICBzcmNfZGlyID0gb3MucGF0aC5kaXJuYW1lKHNjcmlwdF9kaXIpCi0gICBuYWNsX2Rp ciA9IG9zLnBhdGguam9pbihzcmNfZGlyLCAnbmF0aXZlX2NsaWVudCcpCi0tLS0gYS9jaHJvbWUv aW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi0rKysgYi9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JV SUxELmduCi1AQCAtOTcsOCArOTcsNiBAQAotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291 dF9kaXIveGRnLW1pbWUiLAotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRn LXNldHRpbmdzIiwKLSAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMv ZW4tVVMucGFrIiwKLS0gICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxv YWQvbWFuaWZlc3QuanNvbiIsCi0tICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9N RUlQcmVsb2FkL3ByZWxvYWRlZF9kYXRhLnBiIiwKLSAgICAgICAgICAgICAgICAgICBdCi0gCi0g YWN0aW9uX2ZvcmVhY2goImNhbGN1bGF0ZV9kZWJfZGVwZW5kZW5jaWVzIikgewotQEAgLTM3Nyw3 ICszNzcsNiBAQAotICAgICAiLy9jaHJvbWUiLAotICAgICAiLy9jaHJvbWU6cGFja2VkX3Jlc291 cmNlcyIsCi0gICAgICIvL2Nocm9tZS9icm93c2VyL2VudGVycHJpc2UvY29ubmVjdG9ycy9kZXZp Y2VfdHJ1c3Qva2V5X21hbmFnZW1lbnQvaW5zdGFsbGVyL21hbmFnZW1lbnRfc2VydmljZTpjaHJv bWVfbWFuYWdlbWVudF9zZXJ2aWNlIiwKLS0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2Vz L21lZGlhL21laV9wcmVsb2FkOmNvbXBvbmVudCIsCi0gICAgICIvL2NvbXBvbmVudHMvY3Jhc2gv Y29yZS9hcHA6Y2hyb21lX2NyYXNocGFkX2hhbmRsZXIiLAotICAgICAiLy9zYW5kYm94L2xpbnV4 OmNocm9tZV9zYW5kYm94IiwKLSAgIF0KLWRpZmYgLS1naXQgYS9zYW5kYm94L2ZlYXR1cmVzLmdu aSBiL3NhbmRib3gvZmVhdHVyZXMuZ25pCi1pbmRleCBkYjMwYWU2ZDYuLjlkYzA5YmY1MyAxMDA2 NDQKLS0tLSBhL3NhbmRib3gvZmVhdHVyZXMuZ25pCi0rKysgYi9zYW5kYm94L2ZlYXR1cmVzLmdu aQotQEAgLTExLDcgKzExLDggQEAgaW1wb3J0KCIvL2J1aWxkL2NvbmZpZy9uYWNsL2NvbmZpZy5n bmkiKQotIHVzZV9zZWNjb21wX2JwZiA9IChpc19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19h bmRyb2lkKSAmJgotICAgICAgICAgICAgICAgICAgIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBj dXJyZW50X2NwdSA9PSAieDY0IiB8fAotICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9 PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJtNjQiIHx8Ci0tICAgICAgICAgICAgICAgICAg IGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIpCi0r ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1 ID09ICJtaXBzNjRlbCIgfHwKLSsgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gInBw YzY0IikKLSAKLSB1c2Vfc2VjY29tcF9icGYgPSB1c2Vfc2VjY29tcF9icGYgfHwgaXNfbmFjbF9u b25zZmkKLSAKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L0JVSUxELmduIGIvc2FuZGJveC9s aW51eC9CVUlMRC5nbgotaW5kZXggZTlhOTRiNDYxLi5jY2ExYTVkYTUgMTAwNjQ0Ci0tLS0gYS9z YW5kYm94L2xpbnV4L0JVSUxELmduCi0rKysgYi9zYW5kYm94L2xpbnV4L0JVSUxELmduCi1AQCAt NDI3LDYgKzQyNyw4IEBAIGNvbXBvbmVudCgic2FuZGJveF9zZXJ2aWNlcyIpIHsKLSAKLSBzb3Vy Y2Vfc2V0KCJzYW5kYm94X3NlcnZpY2VzX2hlYWRlcnMiKSB7Ci0gICBzb3VyY2VzID0gWwotKyAg ICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCIsCi0rICAgICJzeXN0ZW1f aGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5oIiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2Fy bTY0X2xpbnV4X3N5c2NhbGxzLmgiLAotICAgICAic3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5 c2NhbGxzLmgiLAotICAgICAic3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiLAot ZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5o IGIvc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKLWluZGV4IDMx MzUxMWYyMi4uMGNhM2EzMjZmIDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9icGZfZHNsL2xp bnV4X3N5c2NhbGxfcmFuZ2VzLmgKLSsrKyBiL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9z eXNjYWxsX3Jhbmdlcy5oCi1AQCAtNTYsNiArNTYsMTMgQEAKLSAjZGVmaW5lIE1BWF9QVUJMSUNf U1lTQ0FMTCBfX05SX3N5c2NhbGxzCi0gI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZ U0NBTEwKLSAKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rI2luY2x1ZGUgPGFz bS1nZW5lcmljL3VuaXN0ZC5oPgotKyNkZWZpbmUgTUlOX1NZU0NBTEwgMHUKLSsjZGVmaW5lIE1B WF9QVUJMSUNfU1lTQ0FMTCBfX05SX3N5c2NhbGxzCi0rI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhf UFVCTElDX1NZU0NBTEwKLSsKLSAjZWxzZQotICNlcnJvciAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0 dXJlIgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21w X21hY3Jvcy5oIGIvc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLWluZGV4 IDFhNDA3Yjk1Mi4uYTZhZWM1NDRlIDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9icGZfZHNs L3NlY2NvbXBfbWFjcm9zLmgKLSsrKyBiL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21h Y3Jvcy5oCi1AQCAtMTYsNiArMTYsOSBAQAotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotIC8vIHN5 cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlvbgotICNpbmNsdWRlIDxz dGRkZWYuaD4KLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rLy8gTWFudWFsbHkgZGVm aW5lIGdyZWdfdCBvbiBwcGM2NAotK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsK LSAjZW5kaWYKLSAjZW5kaWYKLSAKLUBAIC0zNDYsNiArMzQ5LDUxIEBAIHN0cnVjdCByZWdzX3N0 cnVjdCB7Ci0gI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbM10K LSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChfcmVncykucmVnc1s0XQotICNkZWZp bmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5yZWdzWzVdCi0rCi0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0rdHlwZWRl ZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsKLSsKLSsjaWZkZWYgQVJDSF9DUFVfTElUVExF X0VORElBTgotKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjRMRQotKyNlbHNl Ci0rI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9QUEM2NAotKyNlbmRpZgotKwotKyNk ZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+ Z3ByW19yZWddKQotKwotKyNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUco X2N0eCwgMykKLSsjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCAwKQotKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3Mt Pm5pcAotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQot KyNkZWZpbmUgU0VDQ09NUF9QQVJNMihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA0KQotKyNkZWZp bmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA1KQotKyNkZWZpbmUgU0VD Q09NUF9QQVJNNChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA2KQotKyNkZWZpbmUgU0VDQ09NUF9Q QVJNNShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA3KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNihf Y3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4KQotKwotKyNkZWZpbmUgU0VDQ09NUF9OUl9JRFggKG9m ZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgbnIpKQotKyNkZWZpbmUgU0VDQ09NUF9B UkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmNoKSkKLSsjZGVm aW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29t cF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0lQX0xT Ql9JRFggXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rp b25fcG9pbnRlcikgKyAwKQotKyNkZWZpbmUgU0VDQ09NUF9BUkdfTVNCX0lEWChucikgXAotKyAg KG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDQp Ci0rI2RlZmluZSBTRUNDT01QX0FSR19MU0JfSURYKG5yKSBcCi0rICAob2Zmc2V0b2Yoc3RydWN0 IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgMCkKLSsKLSsjZGVmaW5lIFNF Q0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAoX3JlZ3MpLmdwclszXQotKyNkZWZpbmUgU0VDQ09NUF9Q VF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3MpLmdwclswXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9JUChf cmVncykgKF9yZWdzKS5uaXAKLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVn cykuZ3ByWzNdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk0yKF9yZWdzKSAoX3JlZ3MpLmdwcls0 XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMyhfcmVncykgKF9yZWdzKS5ncHJbNV0KLSsjZGVm aW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVncykuZ3ByWzZdCi0rI2RlZmluZSBTRUND T01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLmdwcls3XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9Q QVJNNihfcmVncykgKF9yZWdzKS5ncHJbOF0KLSsKLSAjZWxzZQotICNlcnJvciBVbnN1cHBvcnRl ZCB0YXJnZXQgcGxhdGZvcm0KLSAKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwotaW5kZXggNmExZWMyMzg5Li5mMjBjNTgyZGQg MTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVf cG9saWN5LmNjCi0rKysgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxp bmVfcG9saWN5LmNjCi1AQCAtODgsNyArODgsOCBAQCBib29sIElzQmFzZWxpbmVQb2xpY3lXYXRj aGVkKGludCBzeXNubykgewotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1ByY3RsKHN5c25vKSB8 fAotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NHcm91cE9yU2Vzc2lvbihzeXNubykg fHwKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1Nv Y2tldENhbGwoc3lzbm8pIHx8Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hcm1fXykKLUBAIC0y MjcsNyArMjI4LDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5p ZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICBpZiAoc3lzbm8gPT0gX19OUl9tbWFwKQotICAgICByZXR1cm4gUmVzdHJpY3RNbWFwRmxh Z3MoKTsKLSAjZW5kaWYKLUBAIC0yNDUsNyArMjQ2LDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5 c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICAgIHJldHVybiBSZXN0cmljdFByY3Rs KCk7Ci0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIGlmIChzeXNu byA9PSBfX05SX3NvY2tldHBhaXIpIHsKLSAgICAgLy8gT25seSBhbGxvdyBBRl9VTklYLCBQRl9V TklYLiBDcmFzaCBpZiBhbnl0aGluZyBlbHNlIGlzIHNlZW4uCi0gICAgIHN0YXRpY19hc3NlcnQo QUZfVU5JWCA9PSBQRl9VTklYLAotQEAgLTI4NSw3ICsyODYsOCBAQCBSZXN1bHRFeHByIEV2YWx1 YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJubywKLSAgIH0KLSAKLSAjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgaWYgKFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pKQot ICAgICByZXR1cm4gUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpOwotICNlbmRpZgotZGlmZiAt LWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lf dW5pdHRlc3QuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVf cG9saWN5X3VuaXR0ZXN0LmNjCi1pbmRleCAwMWMwNDZkZGEuLjdlNWE2YmU4MiAxMDA2NDQKLS0t LSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5p dHRlc3QuY2MJMjAyMS0wNC0xNSAxMzoxMToxMC40ODE1Nzk0NzAgLTA0MDAKLSsrKyBiL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MJ MjAyMS0wNC0xNSAxMzoxMjo0My41MjQ4MzEzNzYgLTA0MDAKLUBAIC0zMDIsNyArMzAyLDcgQEAK LSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3N5c2xvZykKLSBURVNUX0JBU0VMSU5FX1NJR1NZ UyhfX05SX3RpbWVyX2NyZWF0ZSkKLSAKLS0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFRFU1Rf QkFTRUxJTkVfU0lHU1lTKF9fTlJfaW5vdGlmeV9pbml0KQotIFRFU1RfQkFTRUxJTkVfU0lHU1lT KF9fTlJfdnNlcnZlcikKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5jYwotaW5kZXggMDFjMDQ2ZGRhLi43ZTVhNmJl ODIgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lz X2hhbmRsZXJzLmNjCi0rKysgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2ln c3lzX2hhbmRsZXJzLmNjCi1AQCAtMzU4LDcgKzM1OCwxNiBAQAotICAgaWYgKGFyZ3MubnIgPT0g X19OUl9mc3RhdGF0X2RlZmF1bHQpIHsKLSAgICAgaWYgKCpyZWludGVycHJldF9jYXN0PGNvbnN0 IGNoYXIqPihhcmdzLmFyZ3NbMV0pID09ICdcMCcgJiYKLSAgICAgICAgIGFyZ3MuYXJnc1szXSA9 PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQVRfRU1QVFlfUEFUSCkpIHsKLS0gICAgICByZXR1cm4g c3lzY2FsbChfX05SX2ZzdGF0X2RlZmF1bHQsIHN0YXRpY19jYXN0PGludD4oYXJncy5hcmdzWzBd KSwKLSsgICAgICAgICAgaW50IGZkID0gc3RhdGljX2Nhc3Q8aW50PihhcmdzLmFyZ3NbMF0pOwot KyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgLy8gT24gcHBjNjQrZ2xpYmMsIHNv bWUgc3lzY2FsbHMgc2VlbSB0byBhY2NpZGVudGFsbHkgbmVnYXRlIHRoZSBmaXJzdAotKyAgICAg IC8vIHBhcmFtZXRlciB3aGljaCBjYXVzZXMgY2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9y IG5vdywgbWFudWFsbHkKLSsgICAgICAvLyBuZWdhdGUgdGhlbSBiYWNrLgotKyAgICAgIC8vIFRP RE86IEludmVzdGlnYXRlIHRoZSByb290IGNhdXNlIGFuZCBmaXggaW4gZ2xpYmMKLSsgICAgICBp ZiAoZmQgPCAwKQotKyAgICAgICAgZmQgPSAtZmQ7Ci0rI2VuZGlmCi0rICAgICAgcmV0dXJuIHN5 c2NhbGwoX19OUl9mc3RhdF9kZWZhdWx0LCBmZCwKLSAgICAgICAgICAgICAgICAgICAgICByZWlu dGVycHJldF9jYXN0PGRlZmF1bHRfc3RhdF9zdHJ1Y3QqPihhcmdzLmFyZ3NbMl0pKTsKLSAgICAg fQotICAgICByZXR1cm4gLXJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZzX2RlbmllZF9lcnJu byk7Ci1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwotaW5kZXggMmE5N2Qz OTE2Li44ZTgxYWE2Y2YgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwkyMDIxLTA0LTE0IDE0OjQx OjA4LjAwMDAwMDAwMCAtMDQwMAotKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MJMjAyMS0wNC0xNSAxMzoxNzo1 Ny44MDg3MTU3MzMgLTA0MDAKLUBAIC0zNyw3ICszNyw4IEBACi0gCi0gI2lmIChCVUlMREZMQUco SVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPU19MQUNST1MpKSAmJiBcCi0gICAgICFk ZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAgICAgICAgICAgICBc Ci0tICAgICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpCi0rICAgICFkZWZpbmVkKFBU UkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICFk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQWxzbyBpbmNsdWRlIGFzbS9wdHJhY2UtYWJpLmgg c2luY2UgcHRyYWNlLmggaW4gb2xkZXIgbGliYyAoZm9yIGluc3RhbmNlCi0gLy8gdGhlIG9uZSBp biBVYnVudHUgMTYuMDQgTFRTKSBpcyBtaXNzaW5nIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEuCi0g Ly8gYXNtL3B0cmFjZS1hYmkuaCBkb2Vzbid0IGV4aXN0IG9uIGFybTMyIGFuZCBQVFJBQ0VfR0VU X1RIUkVBRF9BUkVBIGlzbid0Ci1AQCAtNDUsNiArNDYsMTEgQEAKLSAjaW5jbHVkZSA8YXNtL3B0 cmFjZS1hYmkuaD4KLSAjZW5kaWYKLSAKLSsvLyBPbiBQUEM2NCwgVENHRVRTIGlzIGRlZmluZWQg aW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNvIHdlIG11c3QgaW5jbHVkZSB0ZXJtaW9zLmgK LSsjaWZkZWYgX19wb3dlcnBjNjRfXwotKyNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci0rI2VuZGlmCi0r Ci0gI2lmIEJVSUxERkxBRyhJU19BTkRST0lEKQotIAotICNpZiAhZGVmaW5lZChGX0RVUEZEX0NM T0VYRUMpCi1AQCAtOTksNiArMTA1LDE0IEBACi0gICByZXR1cm4gdHJ1ZTsKLSAjZWxzZQotICAg cmV0dXJuIGZhbHNlOwotKyNlbmRpZgotK30KLSsKLStpbmxpbmUgYm9vbCBJc0FyY2hpdGVjdHVy ZVBQQzY0KCkgewotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICByZXR1cm4gdHJ1ZTsK LSsjZWxzZQotKyAgcmV0dXJuIGZhbHNlOwotICNlbmRpZgotIH0KLSAKLUBAIC0yMzksNiArMjU0 LDggQEAKLSAgIHVpbnQ2NF90IGtPTGFyZ2VGaWxlRmxhZyA9IE9fTEFSR0VGSUxFOwotICAgaWYg KElzQXJjaGl0ZWN0dXJlWDg2XzY0KCkgfHwgSXNBcmNoaXRlY3R1cmVJMzg2KCkgfHwgSXNBcmNo aXRlY3R1cmVNaXBzKCkpCi0gICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAxMDAwMDA7Ci0rICBlbHNl IGlmIChJc0FyY2hpdGVjdHVyZVBQQzY0KCkpCi0rICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAyMDAw MDA7Ci0gCi0gICBjb25zdCBBcmc8aW50PiBjbWQoMSk7Ci0gICBjb25zdCBBcmc8bG9uZz4gbG9u Z19hcmcoMik7Ci1AQCAtMjU2LDcgKzI3MywxNiBAQAotICAgICAgICAgICAgICAgRl9TRVRMS1cs Ci0gICAgICAgICAgICAgICBGX0dFVExLLAotICAgICAgICAgICAgICAgRl9EVVBGRCwKLS0gICAg ICAgICAgICAgIEZfRFVQRkRfQ0xPRVhFQyksCi0rICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VY RUMKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKy8vIE9uIFBQQzY0LCBGX1NFVExLLCBG X0dFVExLLCBGX1NFVExLVyBhcmUgZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZhcmlhbnRzCi0rLy8g YnV0IGdsaWJjIHdpbGwgc29tZXRpbWVzIHN0aWxsIHVzZSB0aGUgMzItYml0IHZlcnNpb25zLiBB bGxvdyBib3RoLgotKyAgICAgICAgICAgICAgLAotKyAgICAgICAgICAgICAgNSwgLyogRl9HRVRM SyAoMzIpICovCi0rICAgICAgICAgICAgICA2LCAvKiBGX1NFVExLICgzMikgKi8KLSsgICAgICAg ICAgICAgIDcgIC8qIEZfU0VUTEtXICgzMikgKi8KLSsjZW5kaWYKLSsJICAgICApLAotICAgICAg ICAgICAgICBBbGxvdygpKQotICAgICAgIC5DYXNlKEZfU0VURkwsCi0gICAgICAgICAgICAgSWYo KGxvbmdfYXJnICYgfmtBbGxvd2VkTWFzaykgPT0gMCwgQWxsb3coKSkuRWxzZShDcmFzaFNJR1NZ UygpKSkKLUBAIC0yNjYsNyArMjkyLDcgQEAKLSAgIC8vIGNsYW5nLWZvcm1hdCBvbgotIH0KLSAK LS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotIFJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpIHsKLSAgIC8vIFVuZm9y dHVuYXRlbHksIHdlIGFyZSB1bmFibGUgdG8gcmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRlciB0 bwotICAgLy8gc29ja2V0cGFpcigyKS4gV2hpbHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQsIGl0 J3Mgbm90ZXdvcnRoeSB0aGF0IHZlcnkKLUBAIC00MTksNyArNDQ1LDcgQEAKLSAjZW5kaWYKLSAg IHJldHVybiBTd2l0Y2gocmVxdWVzdCkKLSAgICAgICAuQ0FTRVMoKAotLSNpZiAhZGVmaW5lZChf X2FhcmNoNjRfXykKLSsjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gICAgICAgICAgICAgICAgICBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX0dFVEZQ UkVHUywgUFRSQUNFX0dFVF9USFJFQURfQVJFQSwKLSAgICAgICAgICAgICAgICAgIFBUUkFDRV9H RVRSRUdTRVQsCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaCBiL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgK LWluZGV4IGJhNDI4OWYwNS4uOWE0ZDVhYjJkIDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAotKysr IGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19y ZXN0cmljdGlvbnMuaAotQEAgLTQ4LDcgKzQ4LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6 UmVzdWx0RXhwciBSZXN0cmljdE1wcm90ZWN0RmxhZ3MoKTsKLSAvLyBPX05PTkJMT0NLIHwgT19T WU5DIHwgT19MQVJHRUZJTEUgfCBPX0NMT0VYRUMgfCBPX05PQVRJTUUuCi0gU0FOREJPWF9FWFBP UlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKTsKLSAKLS0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8v IFJlc3RyaWN0IHNvY2tldGNhbGwoMikgdG8gb25seSBhbGxvdyBzb2NrZXRwYWlyKDIpLCBzZW5k KDIpLCByZWN2KDIpLAotIC8vIHNlbmR0bygyKSwgcmVjdmZyb20oMiksIHNodXRkb3duKDIpLCBz ZW5kbXNnKDIpIGFuZCByZWN2bXNnKDIpLgotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3Vs dEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpOwotZGlmZiAtLWdpdCBhL3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MgYi9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1pbmRleCA2NDJkZjcyMDcuLjM0 ZjQ3ZWI3MyAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3NldHMuY2MKLSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3NldHMuY2MKLUBAIC0yOSw3ICsyOSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZEdldHRpbWUoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2Ug X19OUl9nZXR0aW1lb2ZkYXk6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdGltZToKLSAjZW5kaWYKLSAgICAgICByZXR1cm4g dHJ1ZTsKLUBAIC01MiwxMiArNTMsMTQgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0 dGltZShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcF90aW1lNjQ6 ICAvLyBQYXJhbWV0ZXJzIGZpbHRlcmVkIGJ5IFJlc3RyaWN0Q2xvY2tJRCgpLgotICNlbmRpZgot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29s ZXRlLgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdl ZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc3RpbWU6Ci0gI2Vu ZGlmCi0gICAgIGRlZmF1bHQ6Ci1AQCAtMTM1LDcgKzEzOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8v IEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICAgICBjYXNlIF9fTlJfZmNobW9kYXQ6Ci0gICAg IGNhc2UgX19OUl9mY2hvd25hdDogIC8vIFNob3VsZCBiZSBjYWxsZWQgY2hvd25hdCA/Ci0tI2lm IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBu b3QgYSB2YWxpZCBlcnJuby4KLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCi1AQCAtMTU0LDcgKzE1Nyw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0 ZToKLSAgICAgY2FzZSBfX05SX21rZGlyYXQ6Ci0gICAgIGNhc2UgX19OUl9ta25vZGF0OgotLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9vbGRsc3RhdDoKLSAgICAgY2FzZSBfX05SX29s ZHN0YXQ6Ci0gI2VuZGlmCi1AQCAtMTY4LDcgKzE3MSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz RmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N0YXRmczog IC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3N0YXRmczY0OgotICNlbmRpZgotICAg ICBjYXNlIF9fTlJfc3ltbGlua2F0OgotQEAgLTE3OCw3ICsxODIsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0 OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfdW5saW5rYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3V0aW1l OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAgLy8gTmV3LgotQEAgLTIwMyw3 ICsyMDgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlh RmQoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci0gLy8gVE9ETyhq bG4pOiB0aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVs b3cpLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0gICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJu by4KLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykKLUBAIC0yMTYsMTEgKzIyMiwxMiBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5 c25vKSB7Ci0gICAgIGNhc2UgX19OUl9mbG9jazogICAgICAvLyBFUEVSTSBub3QgYSB2YWxpZCBl cnJuby4KLSAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6ICAgIC8vIEdpdmUgaW5mb3JtYXRpb24gYWJv dXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfZnN0YXRmczY0OgotICNlbmRpZgotICAgICBj YXNlIF9fTlJfZnN5bmM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLS0jaWYgZGVmaW5l ZChfX2kzODZfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAot QEAgLTIyOCw2ICsyMzUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVt QWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6 ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCi0g ICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQg ZXJybm8uCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBjYXNlIF9fTlJfc3lu Y19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gICAg IGRlZmF1bHQ6Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTI0OCw3ICsyNTcsOCBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsK LSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2dldGRlbnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxp ZCBlcnJuby4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp IHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVhZGRp cjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC0yODksNyArMjk5LDcgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNHZXRTaW1wbGVJZChpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxT ZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2UoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5 c25vKSB7Ci0gICAgIGNhc2UgX19OUl9jYXBzZXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9pb3Bl cm06ICAvLyBJbnRlbCBwcml2aWxlZ2UuCi0gICAgIGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRl bCBwcml2aWxlZ2UuCi0gI2VuZGlmCi1AQCAtMzQwLDggKzM1MCwxMSBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluZyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05S X3J0X3NpZ3JldHVybjoKLSAgICAgY2FzZSBfX05SX3J0X3NpZ3RpbWVkd2FpdDoKLSAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2lmbmRlZiBfX3Bvd2VycGM2 NF9fCi0gICAgIGNhc2UgX19OUl9ydF9zaWd0aW1lZHdhaXRfdGltZTY0OgotKyNlbmRpZgotICAg ICBjYXNlIF9fTlJfc2lnYWN0aW9uOgotICAgICBjYXNlIF9fTlJfc2lncHJvY21hc2s6Ci0gICAg IGNhc2UgX19OUl9zaWdyZXR1cm46Ci1AQCAtMzU3LDcgKzM3MCw4IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5nKGludCBzeXNubykgewotICNlbmRpZgotICAgICBj YXNlIF9fTlJfc2lnbmFsZmQ0OgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NpZ3BlbmRpbmc6Ci0gICAgIGNhc2UgX19OUl9zaWdz dXNwZW5kOgotICNlbmRpZgotQEAgLTM4MSw3ICszOTUsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRPcGVyYXRpb25PbkZkKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9f TlJfZHVwMzoKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAg ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfc2h1dGRvd246Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNDE0LDcg KzQyOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgo aW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9leGl0X2dyb3VwOgotICAgICBjYXNlIF9fTlJf d2FpdDQ6Ci0gICAgIGNhc2UgX19OUl93YWl0aWQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0r I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3dhaXRwaWQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNDMxLDcg KzQ0NSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgo aW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Ci0g ICAgIGNhc2UgX19OUl91bnNoYXJlOgotLSNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmlu ZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdmZvcms6 Ci0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci1AQCAtNDg0LDcgKzQ5OCw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotICAgICAgIHJl dHVybiB0cnVlOwotICAgICBkZWZhdWx0OgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9zb2NrZXRwYWlyOiAgLy8gV2Ugd2lsbCB3YW50IHRvIGlu c3BlY3QgaXRzIGFyZ3VtZW50LgotICNlbmRpZgotICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC00 OTQsNyArNTA4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTb2Nr ZXQoaW50IHN5c25vKSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNv Y2tldChpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0g ICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYWNjZXB0OgotICAgICBjYXNlIF9f TlJfYWNjZXB0NDoKLSAgICAgY2FzZSBfX05SX2JpbmQ6Ci1AQCAtNTA5LDcgKzUyMyw4IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0g fQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQmlnIG11bHRpcGxleGluZyBzeXN0 ZW0gY2FsbCBmb3Igc29ja2V0cy4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50 IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci1AQCAtNTIzLDcgKzUzOCw4IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8pIHsKLSB9Ci0gI2VuZGlmCi0gCi0t I2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9f bWlwc19fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gYm9v bCBTeXNjYWxsU2V0czo6SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKSB7Ci0g ICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRwZWVybmFtZToKLUBAIC01NDgs NyArNTY0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNz KGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfbWluY29yZToKLSAgICAgY2FzZSBfX05SX21s b2NrYWxsOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAg ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfbW1hcDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X2FybV9fKSB8fCBcCi1AQCAtNTc4LDcgKzU5NCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2Fz ZSBfX05SX2xzZWVrOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX19sbHNlZWs6Ci0gI2VuZGlmCi0gI2lmICFkZWZpbmVkKF9fYWFy Y2g2NF9fKQotQEAgLTU5OCwyNiArNjE1LDI4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3JlYWR2OgotICAgICBjYXNl IF9fTlJfcHJlYWQ2NDoKLSAjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9y ZWN2OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1f XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQot KyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl9yZWN2ZnJvbTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgotICAgICBjYXNl IF9fTlJfcmVjdm1zZzogICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KLSAjZW5kaWYKLS0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX3NlbGVjdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6Ci0gI2VuZGlmCi0g I2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZDoKLSAjZW5kaWYKLSAj aWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZG1z ZzogIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCi0gICAgIGNhc2UgX19OUl9zZW5kdG86 ICAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KLSAjZW5kaWYKLUBAIC02NzMsNyArNjky LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIoaW50IHN5c25v KSB7Ci0gICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIGNhc2UgX19OUl9nZXRwcmlvcml0eToKLSAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9uaWNlOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0cHJpb3JpdHk6Ci1AQCAtNjg1LDcg KzcwNSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGludCBz eXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7 Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYmRmbHVzaDoKLSAjZW5kaWYKLSAgICAgY2FzZSBf X05SX2tleGVjX2xvYWQ6Ci1AQCAtNzAxLDcgKzcyMiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7Ci0gCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNLZXJu ZWxNb2R1bGUoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0tI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f bWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05S X2NyZWF0ZV9tb2R1bGU6Ci0gICAgIGNhc2UgX19OUl9nZXRfa2VybmVsX3N5bXM6ICAvLyBTaG91 bGQgRU5PU1lTLgotICAgICBjYXNlIF9fTlJfcXVlcnlfbW9kdWxlOgotQEAgLTczNCw3ICs3NTYs OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZzQ29udHJvbChpbnQgc3lzbm8pIHsKLSAgICAgY2Fz ZSBfX05SX3N3YXBvZmY6Ci0gICAgIGNhc2UgX19OUl9zd2Fwb246Ci0gI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3Vtb3VudDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05S X3Vtb3VudDI6Ci1AQCAtNzUwLDcgKzc3Myw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTnVtYShp bnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dldGNwdToKLSAgICAgY2FzZSBfX05SX21iaW5k OgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf bWlncmF0ZV9wYWdlczoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX21vdmVfcGFnZXM6Ci1AQCAt Nzg1LDE0ICs4MDgsMTUgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQcm9jZXNzRW52aXJv bm1lbnQoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9h Y2N0OiAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJj aDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX2dldHJsaW1pdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX2FybV9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3Vn ZXRybGltaXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX3VsaW1pdDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2dldHJ1c2FnZToKLUBAIC04MjYs NyArODUwLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaW50IHN5 c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zeXNpbmZvOgotICAgICBjYXNlIF9fTlJf dW5hbWU6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX29sZHVuYW1lOgotICAgICBj YXNlIF9fTlJfb2xkb2xkdW5hbWU6Ci0gI2VuZGlmCi1AQCAtODkyLDggKzkxNiwxNiBAQCBib29s IFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBzeXNubykgewotIH0KLSAjZW5k aWYKLSAKLSsvKiBzaGl0dHkgaGFjayBhcm91bmQgVm9pZCdzIDQuMTkga2VybmVsIGhlYWRlcnMg bWlzc2luZyB0aG9zZSBudW1iZXJzICovCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYg IWRlZmluZWQoX19OUl9zaG1nZXQpCi0rI2RlZmluZSBfX05SX3NobWdldCAzOTUKLSsjZGVmaW5l IF9fTlJfc2htY3RsIDM5NgotKyNkZWZpbmUgX19OUl9zaG1hdCAzOTcKLSsjZGVmaW5lIF9fTlJf c2htZHQgMzk4Ci0rI2VuZGlmCi0rCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJj aDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAg IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAotICAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9C SVRTKSkKLSAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFuZCBieXBh c3MgdGhlIHNldHVpZCBzYW5kYm94LgotIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVlNoYXJl ZE1lbW9yeShpbnQgc3lzbm8pIHsKLUBAIC05MjUsNyArOTU3LDggQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKGludCBzeXNubykgewotICNlbmRpZgotIAotICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0g Y2FsbC4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZJcGMoaW50IHN5c25vKSB7Ci0gICBz d2l0Y2ggKHN5c25vKSB7Ci1AQCAtOTQ1LDcgKzk3OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QW55U3lzdGVtVihpbnQgc3lzbm8pIHsKLSAgIHJldHVybiBJc1N5c3RlbVZNZXNzYWdlUXVldWUo c3lzbm8pIHx8IElzU3lzdGVtVlNlbWFwaG9yZXMoc3lzbm8pIHx8Ci0gICAgICAgICAgSXNTeXN0 ZW1WU2hhcmVkTWVtb3J5KHN5c25vKTsKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0t ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBy ZXR1cm4gSXNTeXN0ZW1WSXBjKHN5c25vKTsKLSAjZW5kaWYKLSB9Ci1AQCAtMTAwMiw3ICsxMDM2 LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGYU5vdGlmeShpbnQgc3lzbm8pIHsKLSBib29sIFN5 c2NhbGxTZXRzOjpJc1RpbWVyKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAg ICBjYXNlIF9fTlJfZ2V0aXRpbWVyOgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9hbGFybToKLSAjZW5kaWYKLSAg ICAgY2FzZSBfX05SX3NldGl0aW1lcjoKLUBAIC0xMDg0LDE4ICsxMTE5LDIyIEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzTWlzYyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N5bmNmczoKLSAg ICAgY2FzZSBfX05SX3ZoYW5ndXA6Ci0gLy8gVGhlIHN5c3RlbSBjYWxscyBiZWxvdyBhcmUgbm90 IGltcGxlbWVudGVkLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9hZnNfc3lzY2FsbDoKLSAjZW5kaWYKLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYnJlYWs6Ci0gI2VuZGlmCi0tI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21p cHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX2dldHBtc2c6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwK LS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX2d0dHk6Ci0gICAgIGNhc2UgX19OUl9pZGxlOgotICAgICBjYXNlIF9fTlJf bG9jazoKLUBAIC0xMTAzLDIwICsxMTQyLDIyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhp bnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3Byb2Y6Ci0gICAgIGNhc2UgX19OUl9wcm9maWw6 Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3B1dHBtc2c6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQo X194ODZfNjRfXykKLSAgICAgY2FzZSBfX05SX3NlY3VyaXR5OgotICNlbmRpZgotICNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zdHR5OgotICNlbmRpZgotLSNpZiBkZWZp bmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdHV4Y2FsbDoKLSAjZW5kaWYKLS0jaWYgIWRlZmlu ZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdnNlcnZlcjoKLSAjZW5kaWYKLSAgICAgICBy ZXR1cm4gdHJ1ZTsKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9zZXRzLmggYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmgKLWluZGV4IDkyMzUzM2VjOS4uNDExZjcyYWNkIDEwMDY0NAotLS0tIGEvc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi0rKysgYi9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLUBAIC00MywxMyAr NDMsMTQgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewotICAgc3RhdGljIGJv b2wgSXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pOwotIAotICNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsIGZvciBzb2Nr ZXRzLgotICAgc3RhdGljIGJvb2wgSXNTb2NrZXRDYWxsKGludCBzeXNubyk7Ci0gI2VuZGlmCi0g Ci0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIHN0YXRpYyBib29sIElz TmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gCi1AQCAtNzYs NyArNzcsNyBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gICBzdGF0aWMg Ym9vbCBJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykgfHwgXAotICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKLSAgIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2Yg YW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCi0gICBzdGF0 aWMgYm9vbCBJc1N5c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKTsKLUBAIC04OCw3ICs4OSw4 IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKLSAjZW5kaWYKLSAKLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0 ZW0gY2FsbC4KLSAgIHN0YXRpYyBib29sIElzU3lzdGVtVklwYyhpbnQgc3lzbm8pOwotICNlbmRp ZgotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBiL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotaW5kZXggZTQ3ZTk4YmY1Li5kNTNh N2ZmNTYgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MK LSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotQEAgLTE4LDcgKzE4 LDcgQEAgbmFtZXNwYWNlIHNhbmRib3ggewotIG5hbWVzcGFjZSB7Ci0gCi0gI2lmIGRlZmluZWQo QVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBc Ci0tICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0rICAgIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQgKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAvLyBO dW1iZXIgdGhhdCdzIG5vdCBjdXJyZW50bHkgdXNlZCBieSBhbnkgTGludXgga2VybmVsIEFCSXMu Ci0gY29uc3QgaW50IGtJbnZhbGlkU3lzY2FsbE51bWJlciA9IDB4MzUxZDM7Ci0gI2Vsc2UKLUBA IC0zMTAsMTIgKzMxMCw1NiBAQCBhc20oLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlbGwgdGhl IGtlcm5lbCBleGFjdGx5IHdoZXJlIHdlIG1hZGUgYQotICAgICAvLyBFbnRlciB0aGUga2VybmVs Ci0gICAgICJzdmMgMFxuIgotICAgICAiMjpyZXRcbiIKLSsgICAgIi5jZmlfZW5kcHJvY1xuIgot KyAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCi0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKyAgICAiLnRleHRcbiIKLSsgICAgIi5hbGlnbiA0XG4iCi0rICAgICIu dHlwZSBTeXNjYWxsQXNtIEBmdW5jdGlvblxuIgotKyAgICAiU3lzY2FsbEFzbTpcbiIKLSsgICAg Ii5jZmlfc3RhcnRwcm9jXG4iCi0rCi0rICAgIC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCi0r ICAgICJjbXBkaSAzLCAwXG4iCi0rICAgICJiZ3QgMmZcbiIKLSsKLSsgICAgLy8gTG9hZCBhZGRy ZXNzIG9mIDNmIGludG8gcjMgYW5kIHJldHVybgotKyAgICAibWZsciAxMFxuIgotKyAgICAiYmwg MWZcbiIKLSsgICAgIjE6IG1mbHIgM1xuIgotKyAgICAibXRsciAxMFxuIgotKyAgICAiYWRkaSAz LCAzLCA0KjEzXG4iCi0rICAgICJibHJcbiIKLSsKLSsgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJv bSBhcnJheSBpbnRvIHIzLTgKLSsgICAgLy8gc2F2ZSBwYXJhbSAzIGluIHIxMAotKyAgICAiMjpc biIKLSsgICAgIm1yIDAsIDNcbiIKLSsgICAgImxkIDMsIDAoNClcbiIKLSsgICAgImxkIDUsIDE2 KDQpXG4iCi0rICAgICJsZCA2LCAyNCg0KVxuIgotKyAgICAibGQgNywgMzIoNClcbiIKLSsgICAg ImxkIDgsIDQwKDQpXG4iCi0rICAgICJsZCA0LCA4KDQpXG4iCi0rICAgICJsaSA5LCAwXG4iCi0r Ci0rICAgIC8vIEVudGVyIGtlcm5lbAotKyAgICAic2NcbiIKLSsKLSsgICAgLy8gTWFnaWMgcmV0 dXJuIGFkZHJlc3MKLSsgICAgIjM6XG4iCi0rICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJu IHZhbHVlcyBhcmUgYWx3YXlzIHBvc2l0aXZlLgotKyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4g Y3IwLlNPIGFuZCBuZWdhdGUgdXBvbiBlcnJvcgotKyAgICAiYmMgNCwgMywgNGZcbiIKLSsgICAg Im5lZyAzLCAzXG4iCi0rICAgICI0OiBibHJcbiIKLSsKLSAgICAgIi5jZmlfZW5kcHJvY1xuIgot ICAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCi0gI2VuZGlmCi0gICAgICk7 ICAvLyBhc20KLSAKLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBleHRlcm4gIkMiIHsKLSBpbnRwdHJf dCBTeXNjYWxsQXNtKGludHB0cl90IG5yLCBjb25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKLSB9Ci1A QCAtNDI5LDYgKzQ3Myw4IEBAIGludHB0cl90IFN5c2NhbGw6OkNhbGwoaW50IG5yLAotICAgICBy ZXQgPSBpbm91dDsKLSAgIH0KLSAKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBp bnRwdHJfdCByZXQgPSBTeXNjYWxsQXNtKG5yLCBhcmdzKTsKLSAjZWxzZQotICNlcnJvciAiVW5p bXBsZW1lbnRlZCBhcmNoaXRlY3R1cmUiCi0gI2VuZGlmCi1AQCAtNDQ1LDggKzQ5MSwxOCBAQCB2 b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4 dF90KiBjdHgpIHsKLSAgICAgLy8gbmVlZHMgdG8gYmUgY2hhbmdlZCBiYWNrLgotICAgICByZXRf dmFsID0gLXJldF92YWw7Ci0gICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDE7Ci0tICB9IGVsc2UK LSsgIH0gZWxzZSB7Ci0gICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDA7Ci0rICB9Ci0rI2VuZGlm Ci0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0 byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKLSsgIGlmIChyZXRf dmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQwOTUpIHsKLSsgICAgcmV0X3ZhbCA9IC1yZXRfdmFs OwotKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0rICB9IGVs c2UgewotKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOwotKyAg fQotICNlbmRpZgotICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4o cmV0X3ZhbCk7Ci0gfQotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJh cC5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYwotaW5kZXggZjViODZhNzNh Li41ZTZjNGEwNjggMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAu Y2MKLSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYwotQEAgLTIzMiw2ICsy MzIsMjAgQEAgdm9pZCBUcmFwOjpTaWdTeXMoaW50IG5yLCBMaW51eFNpZ0luZm8qIGluZm8sIHVj b250ZXh0X3QqIGN0eCkgewotICAgICAgIFNldElzSW5TaWdIYW5kbGVyKCk7Ci0gICAgIH0KLSAK LSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29t ZSBzeXNjYWxscyBzZWVtIHRvIGFjY2lkZW50YWxseSBuZWdhdGUgdGhlIGZpcnN0Ci0rICAgIC8v IHBhcmFtZXRlciB3aGljaCBjYXVzZXMgY2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5v dywgbWFudWFsbHkKLSsgICAgLy8gbmVnYXRlIHRoZW0gYmFjay4KLSsgICAgLy8gVE9ETyhzaGF3 bkBhbmFzdGFzLmlvKTogaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSBmdXJ0aGVyCi0rICAgIGF1dG8g bnIgPSBTRUNDT01QX1NZU0NBTEwoY3R4KTsKLSsgICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8 IG5yID09IF9fTlJfbWtkaXJhdCB8fCBuciA9PSBfX05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05S X3JlYWRsaW5rYXQgfHwKLSsgICAgICAgIG5yID09IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19O Ul9yZW5hbWVhdDIgfHwgbnIgPT0gX19OUl9uZXdmc3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5r YXQpIHsKLSsgICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkg PiAwKSB7Ci0rICAgICAgICAgICAgU0VDQ09NUF9QQVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEo Y3R4KTsKLSsgICAgICAgIH0KLSsgICAgfQotKyNlbmRpZgotKwotICAgICAvLyBDb3B5IHRoZSBz ZWNjb21wLXNwZWNpZmljIGRhdGEgaW50byBhIGFyY2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4g VGhpcwotICAgICAvLyBpcyB3aGF0IHdlIGFyZSBzaG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tz IHRoYXQgdGhlIHN5c3RlbSBjYWxsCi0gICAgIC8vIGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGgg dGhlIHNhbmRib3guCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50 aWFscy5jYyBiL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLWluZGV4IGQ3 YjVkOGM0NC4uNGFkYzZkMGQ0IDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9j cmVkZW50aWFscy5jYwotKysrIGIvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5j YwotQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBDaHJvb3RUb1NhZmVFbXB0eURpcigpIHsKLSAgIHBp ZF90IHBpZCA9IC0xOwotICAgYWxpZ25hcygxNikgY2hhciBzdGFja19idWZbUFRIUkVBRF9TVEFD S19NSU5dOwotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJD SF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAotLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQotKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKLSAgIC8vIFRoZSBzdGFjayBncm93cyBkb3dud2FyZC4KLSAgIHZvaWQq IHN0YWNrID0gc3RhY2tfYnVmICsgc2l6ZW9mKHN0YWNrX2J1Zik7Ci0gI2Vsc2UKLUBAIC05MCw3 ICs5MCw5IEBACi0gCi0gICBpbnQgY2xvbmVfZmxhZ3MgPSBDTE9ORV9GUyB8IExJTlVYX1NJR0NI TEQ7Ci0gICB2b2lkKiB0bHMgPSBudWxscHRyOwotLSNpZiAoZGVmaW5lZChBUkNIX0NQVV9YODZf NjQpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkpICYmIFwKLSsvLyBSQUpBIHRoaXMg bWlnaHQgYmUgaXQuLi4KLSsjaWYgKGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KSB8fCBkZWZpbmVk KEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpKSAmJiBcCi0gICAgICFkZWZpbmVkKE1FTU9SWV9TQU5JVElaRVIpCi0gICAvLyBVc2Ug Q0xPTkVfVk0gfCBDTE9ORV9WRk9SSyBhcyBhbiBvcHRpbWl6YXRpb24gdG8gYXZvaWQgY29weWlu ZyBwYWdlIHRhYmxlcy4KLSAgIC8vIFNpbmNlIGNsb25lIHdyaXRlcyB0byB0aGUgbmV3IGNoaWxk J3MgVExTIGJlZm9yZSByZXR1cm5pbmcsIHdlIG11c3Qgc2V0IGEKLUBAIC05OCw2ICsxMDAsMTEg QEAKLSAgIC8vIGdsaWJjIHBlcmZvcm1zIHN5c2NhbGxzIGJ5IGNhbGxpbmcgYSBmdW5jdGlvbiBw b2ludGVyIGluIFRMUywgc28gd2UgZG8gbm90Ci0gICAvLyBhdHRlbXB0IHRoaXMgb3B0aW1pemF0 aW9uLgotICAgLy8gVE9ETyhjcmJ1Zy5jb20vMTI0NzQ1OCkgQnJva2VuIGluIE1TYW4gYnVpbGRz IGFmdGVyIExMVk0gZjFiYjMwYTQ5NTZmLgotKyAgLy8KLSsgIC8vIE5PVEU6IFdpdGhvdXQgQ0xP TkVfVk0sIGZvbnRjb25maWcgd2lsbCBhdHRlbXB0IHRvIHJlbG9hZCBjb25maWd1cmF0aW9uCi0r ICAvLyBpbiBldmVyeSB0aHJlYWQuICBTaW5jZSB0aGUgcmVuZGVyZWQgdGhyZWFkcyBhcmUgc2Fu ZGJveGVkIHdpdGhvdXQKLSsgIC8vIGZpbGVzeXN0ZW0gYWNjZXNzIChlLmcuIHRvIC9ldGMvZm9u dHMvZm9udHMuY29uZikgdGhpcyB3aWxsIGNhdXNlIGZvbnQKLSsgIC8vIGNvbmZpZ3VyYWl0b24g bG9hZGluZyBmYWlsdXJlcyBhbmQgbm8gZm9udHMgd2lsbCBiZSBkaXNwbGF5ZWQhCi0gICBjbG9u ZV9mbGFncyB8PSBDTE9ORV9WTSB8IENMT05FX1ZGT1JLIHwgQ0xPTkVfU0VUVExTOwotIAotICAg Y2hhciB0bHNfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXSA9IHswfTsKLWRpZmYgLS1naXQgYS9zYW5k Ym94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MgYi9zYW5kYm94L2xpbnV4L3Nl cnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLWluZGV4IGZjZmQyYWExMi4uZjZlYjMyZmI3IDEw MDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi0r KysgYi9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLUBAIC01OCw3 ICs1OCw3IEBAIGxvbmcgc3lzX2Nsb25lKHVuc2lnbmVkIGxvbmcgZmxhZ3MsCi0gI2lmIGRlZmlu ZWQoQVJDSF9DUFVfWDg2XzY0KQotICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3Ms IGNoaWxkX3N0YWNrLCBwdGlkLCBjdGlkLCB0bHMpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVf WDg2KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg fHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBDT05GSUdfQ0xPTkVfQkFD S1dBUkRTIGRlZmluZWQuCi0gICByZXR1cm4gc3lzY2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hp bGRfc3RhY2ssIHB0aWQsIHRscywgY3RpZCk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc2FuZGJv eC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYyBiL3NhbmRib3gvbGludXgv c3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKLWluZGV4IGQ3MmM5ZDIzOC4uNzdmMWQ5 NWY1IDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJv Y2Vzcy5jYwotKysrIGIvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vz cy5jYwotQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIEJyb2tlclByb2Nlc3M6OklzU3lzY2FsbEJy b2tlcmFibGUoaW50IHN5c25vLCBib29sIGZhc3RfY2hlY2spIGNvbnN0IHsKLSAjaWYgZGVmaW5l ZChfX05SX2ZzdGF0YXQ2NCkKLSAgICAgY2FzZSBfX05SX2ZzdGF0YXQ2NDoKLSAjZW5kaWYKLS0j aWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0 dXJuICFmYXN0X2NoZWNrIHx8IGFsbG93ZWRfY29tbWFuZF9zZXRfLnRlc3QoQ09NTUFORF9TVEFU KTsKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2Nv bXAuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi1pbmRl eCAxZmE0N2VkMDkuLjM5Y2M5YWI1MyAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3NlY2NvbXAuaAotQEAgLTQxLDYgKzQxLDkgQEAKLSAjaWZuZGVmIEVNX0FBUkNI NjQKLSAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCi0gI2VuZGlmCi0rI2lmbmRlZiBFTV9QUEM2NAot KyNkZWZpbmUgRU1fUFBDNjQgMjEKLSsjZW5kaWYKLSAKLSAjaWZuZGVmIF9fQVVESVRfQVJDSF82 NEJJVAotICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKLUBAIC03Myw2ICs3 NiwxMiBAQAotICNpZm5kZWYgQVVESVRfQVJDSF9BQVJDSDY0Ci0gI2RlZmluZSBBVURJVF9BUkNI X0FBUkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hf TEUpCi0gI2VuZGlmCi0rI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0Ci0rI2RlZmluZSBBVURJVF9B UkNIX1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCkKLSsjZW5kaWYKLSsjaWZu ZGVmIEFVRElUX0FSQ0hfUFBDNjRMRQotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9Q UEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKLSsjZW5kaWYKLSAK LSAvLyBGb3IgcHJjdGwuaAotICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKLWRpZmYgLS1naXQgYS9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oIGIvc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAotaW5kZXggZjVhNzM2NzYxLi41MTViMjFh NWYgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25h bC5oCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi1A QCAtMTMsNyArMTMsNyBAQAotIC8vIChub3QgdW5kZWZpbmVkLCBidXQgZGVmaW5lZCBkaWZmZXJl bnQgdmFsdWVzIGFuZCBpbiBkaWZmZXJlbnQgbWVtb3J5Ci0gLy8gbGF5b3V0cykuIFNvLCBmaWxs IHRoZSBnYXAgaGVyZS4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykK LSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIAot ICNkZWZpbmUgTElOVVhfU0lHSFVQIDEKLSAjZGVmaW5lIExJTlVYX1NJR0lOVCAyCi1kaWZmIC0t Z2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oIGIvc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCi1pbmRleCAyYjc4YTBj YzMuLjBhNzBmNWVhNSAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv bGludXhfc3lzY2FsbHMuaAotKysrIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51 eF9zeXNjYWxscy5oCi1AQCAtMzUsNSArMzUsOSBAQAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgiCi0gI2VuZGlmCi0gCi0rI2lm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oIgotKyNlbmRpZgotKwotICNlbmRpZiAgLy8g U0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19MSU5VWF9TWVNDQUxMU19IXwotIAotZGlmZiAt LWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMu aCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaAot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uY2NhY2ZmZTIyCi0tLS0gL2Rl di9udWxsCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5 c2NhbGxzLmgKLUBAIC0wLDAgKzEsMTIgQEAKLSsvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21p dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2Ug Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8g Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsKLSsjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lT VEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsjZGVmaW5lIFNBTkRCT1hfTElO VVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsKLSsjaW5jbHVkZSA8 YXNtL3VuaXN0ZC5oPgotKwotKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5 c2NhbGwgbnVtYmVycyBmb3IgUFBDNjQ/Ci0rCi0rI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZ U1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCi1kaWZmIC0tZ2l0IGEvc2FuZGJv eC9wb2xpY3kvbGludXgvYnBmX3V0aWxpdHlfcG9saWN5X2xpbnV4LmNjIGIvc2FuZGJveC9wb2xp Y3kvbGludXgvYnBmX3V0aWxpdHlfcG9saWN5X2xpbnV4LmNjCi1pbmRleCAyNTg4ZmM3OTIuLmQ0 NTVjNDYwMSAxMDA2NDQKLS0tLSBhL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl91dGlsaXR5X3Bv bGljeV9saW51eC5jYwotKysrIGIvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3V0aWxpdHlfcG9s aWN5X2xpbnV4LmNjCi1AQCAtMzQsNyArMzQsNyBAQAotICAgICBjYXNlIF9fTlJfZmRhdGFzeW5j OgotICAgICBjYXNlIF9fTlJfZnN5bmM6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9nZXRybGltaXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykKLWRpZmYgLS1naXQgYS9zYW5kYm94L3BvbGlj eS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjIGIvc2FuZGJveC9wb2xpY3kvbGlu dXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwotaW5kZXggMjU4OGZjNzkyLi5kNDU1YzQ2 MDEgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5 X2xpbnV4LmNjCi0rKysgYi9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5 X2xpbnV4LmNjCi1AQCAtMTUsNiArMTUsMTEgQEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oIgotICNpbmNsdWRlICJzYW5kYm94L3BvbGlj eS9saW51eC9zYW5kYm94X2xpbnV4LmgiCi0gCi0rLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZp bmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlv cy5oCi0rI2lmZGVmIF9fcG93ZXJwYzY0X18KLSsjaW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRp ZgotKwotIC8vIFRPRE8odmlnbmF0dGkpOiByZXBsYWNlIHRoZSBsb2NhbCBkZWZpbml0aW9ucyBi ZWxvdyB3aXRoICNpbmNsdWRlCi0gLy8gPGxpbnV4L2RtYS1idWYuaD4gb25jZSBrZXJuZWwgdmVy c2lvbiA0LjYgYmVjb21lcyB3aWRlbHkgdXNlZC4KLSAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4K LUBAIC03Nyw3ICs3Nyw3IEBACi0gICAgIGNhc2UgX19OUl9mdHJ1bmNhdGU2NDoKLSAjZW5kaWYK LSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2dl dHJsaW1pdDoKLSAgICAgY2FzZSBfX05SX3NldHJsaW1pdDoKLSAvLyBXZSBhbGxvdyBzZXRybGlt aXQgdG8gZHluYW1pY2FsbHkgYWRqdXN0IHRoZSBhZGRyZXNzIHNwYWNlIGxpbWl0IGFzCi1kaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1Np bmsuaCBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5r LmgKLWluZGV4IDNhODA3ZTFlMy4uNTI1ODYxN2E3IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkv YW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAotKysrIGIvdGhpcmRfcGFy dHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAotQEAgLTkyLDcgKzky LDE2IEBAIGNsYXNzIFRJbmZvU2lua0Jhc2UKLSAgICAgICAgICAgICBzdHJlYW0ucHJlY2lzaW9u KDgpOwotICAgICAgICAgICAgIHN0cmVhbSA8PCBmOwotICAgICAgICAgfQotLSAgICAgICAgc2lu ay5hcHBlbmQoc3RyZWFtLnN0cigpKTsKLSsKLSsgICAgICAgIC8vIEhhY2sgdG8gd29yayBhcm91 bmQgYSBidWcgd2hlcmUgbmVnYXRpdmUgZmxvYXRpbmcgcG9pbnQgdmFsdWVzCi0rICAgICAgICAv LyBhcmUgcmVuZGVyZWQgbGlrZSAnLjAuNScgaW5zdGVhZCBvZiAnLTAuNScKLSsgICAgICAgIHN0 ZDo6c3RyaW5nIHJlcyhzdHJlYW0uc3RyKCkpOwotKwotKyAgICAgICAgaWYgKHNpZ25iaXQoZikp IHsgLy8gdGVzdCBpZiBmIGlzIG5lZ2F0aXZlCi0rICAgICAgICAgICAgcmVzWzBdID0gJy0nOwot KyAgICAgICAgfQotKwotKyAgICAgICAgc2luay5hcHBlbmQocmVzKTsKLSAgICAgICAgIHJldHVy biAqdGhpczsKLSAgICAgfQotICAgICAvLyBXcml0ZSBib29sZWFuIHZhbHVlcyBhcyB0aGVpciBu YW1lcyBpbnN0ZWFkIG9mIGludGVncmFsIHZhbHVlLgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaCBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9s aWJBTkdMRS9Db25zdGFudHMuaAotaW5kZXggZmNiYzkyNDZhLi4zOWFlNjYxNDggMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKLSsrKyBiL3Ro aXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAotQEAgLTksNiArOSw3IEBA Ci0gI2lmbmRlZiBMSUJBTkdMRV9DT05TVEFOVFNfSF8KLSAjZGVmaW5lIExJQkFOR0xFX0NPTlNU QU5UU19IXwotIAotKyNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlICJjb21tb24vcGxhdGZv cm0uaCIKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv Ym9yaW5nc3NsL0JVSUxELmduIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1pbmRl eCAxN2NmOWNkYTkuLjhjZTk2YmQzMiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3Nz bC9CVUlMRC5nbgotKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1AQCAtMTAz LDYgKzEwMywxMyBAQCBpZiAoaXNfd2luICYmICFpc19tc2FuICYmIGN1cnJlbnRfY3B1ICE9ICJh cm02NCIpIHsKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6 bm9fYXNtX2NvbmZpZyIgXQotICAgICAgIH0KLSsgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9 PSAicHBjNjQiKSB7Ci0rICAgICAgaWYgKGlzX2xpbnV4KSB7Ci0rICAgICAgICAjIFRPRE86IHBw YzY0IChiZSkgY2hlY2sKLSsgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGludXhf cHBjNjRsZQotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpu b19hc21fY29uZmlnIiBdCi0rICAgICAgfQotICAgICB9IGVsc2UgewotICAgICAgIHB1YmxpY19j b25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KLSAgICAgfQotZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL0JVSUxELmduIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24K LWluZGV4IDRhZjNkN2JiZi4uYWRiZjU0MTU5IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvQlVJTEQuZ24KLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi1AQCAt NTk2LDcgKzU5Niw2IEBAIGlmIChpc19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lk KSB7Ci0gICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbWluaWR1bXBfZmlsZV93cml0ZXIuaCIs Ci0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vY29udmVydF9VVEYuY2MiLAotICAgICAgICJi cmVha3BhZC9zcmMvY29tbW9uL2NvbnZlcnRfVVRGLmgiLAotLSAgICAgICJicmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIsCi0gICAgICAgImJyZWFrcGFkL3Ny Yy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9j b21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1v bi9saW51eC9lbGZ1dGlscy5jYyIsCi1AQCAtNjM0LDYgKzYzMywxNCBAQCBpZiAoaXNfbGludXgg fHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pZCkgewotIAotICAgICBsaWJzID0gWyAiZGwiIF0K LSAKLSsgICAgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKLSsgICAgICAgIGRlZmluZXMg PSBbICJIQVZFX0dFVENPTlRFWFQiIF0KLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIHNvdXJjZXMg Kz0gWwotKyAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dl dGNvbnRleHQuUyIKLSsgICAgICAgIF0KLSsgICAgfQotKwotICAgICBpbmNsdWRlX2RpcnMgPSBb Ci0gICAgICAgIi4iLAotICAgICAgICJicmVha3BhZC9zcmMiLAotQEAgLTY4Miw3ICs2ODksNiBA QCBpZiAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pZCkgewotICAgICAgICJi cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJf dW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3RfdXRpbHMuY2MiLAotICAgICAgICJicmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9wcm9jX2NwdWluZm9fcmVhZGVy X3VuaXR0ZXN0LmNjIiwKLS0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3Bh ZF9nZXRjb250ZXh0X3VuaXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9s aW51eC9lbGZfY29yZV9kdW1wX3VuaXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2Nv bW1vbi9saW51eC9maWxlX2lkX3VuaXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2Nv bW1vbi9saW51eC9saW51eF9saWJjX3N1cHBvcnRfdW5pdHRlc3QuY2MiLAotZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgK LWluZGV4IDA3ZDkxNzFhMC4uOWFlZDRjYjM2IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2Nv bnRleHRfY3B1LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCi1AQCAtNDQsNiAr NDQsOCBAQCB0eXBlZGVmIE1EUmF3Q29udGV4dEFSTSBSYXdDb250ZXh0Q1BVOwotIHR5cGVkZWYg TURSYXdDb250ZXh0QVJNNjRfT2xkIFJhd0NvbnRleHRDUFU7Ci0gI2VsaWYgZGVmaW5lZChfX21p cHNfXykKLSB0eXBlZGVmIE1EUmF3Q29udGV4dE1JUFMgUmF3Q29udGV4dENQVTsKLSsjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rdHlwZWRlZiBNRFJhd0NvbnRleHRQUEM2NCBSYXdDb250 ZXh0Q1BVOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0 byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhy ZWFkX2luZm8uY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotaW5kZXggYWFlMWRjMTNiLi4w M2FmZWM3YTUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotKysrIGIvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdGhyZWFkX2luZm8uY2MKLUBAIC0yNzAsNyArMjcwLDQyIEBAIHZvaWQgVGhyZWFkSW5m bzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7Ci0gICBvdXQtPmZs b2F0X3NhdmUuZmlyID0gbWNvbnRleHQuZnBjX2VpcjsKLSAjZW5kaWYKLSB9Ci0tI2VuZGlmICAv LyBfX21pcHNfXwotKwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsKLSt1aW50cHRy X3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgewotKyAgICByZXR1 cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotK30KLSsKLSt2b2lkIFRocmVhZEluZm86OkZp bGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotKyAgICBvdXQtPmNvbnRl eHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7Ci0rICAgIGZvciAoaW50IGkgPSAwOyBp IDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+Z3ByW2ld ID0gbWNvbnRleHQuZ3BfcmVnc1tpXTsKLSsKLSsgICAgb3V0LT5sciA9IG1jb250ZXh0LmdwX3Jl Z3NbUFRfTE5LXTsKLSsgICAgb3V0LT5zcnIwID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwot KyAgICBvdXQtPnNycjEgPSBtY29udGV4dC5ncF9yZWdzW1BUX01TUl07Ci0rICAgIG91dC0+Y3Ig PSBtY29udGV4dC5ncF9yZWdzW1BUX0NDUl07Ci0rICAgIG91dC0+eGVyID0gbWNvbnRleHQuZ3Bf cmVnc1tQVF9YRVJdOwotKyAgICBvdXQtPmN0ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsK LSsgICAgCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENf RlBSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNv bnRleHQuZnBfcmVnc1tpXTsKLSsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRl eHQuZnBfcmVnc1tORlBSRUctMV07Ci0rCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVD VE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPnZlY3Rvcl9zYXZl LnNhdmVfdnJbaV0gPSBcCi0rICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tp XVswXSkgPDwgMzIpIAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJlZ3Nb aV1bMV0sIAotKyAgICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVsyXSkgPDwg MzIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MudnJyZWdzW2ldWzNdfTsKLSsK LSsgICAgb3V0LT52cnNhdmUgPSB2cmVncy52cnNhdmU7Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUu c2F2ZV92c2NyID0gezAsIHZyZWdzLnZzY3IudnNjcl93b3JkfTsKLSsgICAgb3V0LT52ZWN0b3Jf c2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZGOyAKLSt9Ci0rI2VuZGlmICAvLyBfX3Bvd2Vy cGM2NF9fCi0gCi0gdm9pZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2 b2lkKiogZ3BfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gICBhc3NlcnQoZ3BfcmVncyB8fCBzaXpl KTsKLUBAIC0yNzksNiArMzE0LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBv c2VSZWdpc3RlcnModm9pZCoqIGdwX3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICAgICAqZ3BfcmVn cyA9IG1jb250ZXh0LmdyZWdzOwotICAgaWYgKHNpemUpCi0gICAgICpzaXplID0gc2l6ZW9mKG1j b250ZXh0LmdyZWdzKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpZiAoZ3Bf cmVncykKLSsgICAgKmdwX3JlZ3MgPSBtY29udGV4dC5ncF9yZWdzOwotKyAgaWYgKHNpemUpCi0r ICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmdwX3JlZ3MpOwotICNlbHNlCi0gICBpZiAoZ3Bf cmVncykKLSAgICAgKmdwX3JlZ3MgPSAmcmVnczsKLUBAIC0yOTQsNiArMzM0LDExIEBAIHZvaWQg VGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2b2lkKiogZnBfcmVncywgc2l6 ZV90KiBzaXplKSB7Ci0gICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwcmVnczsKLSAgIGlmIChz aXplKQotICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcHJlZ3MpOwotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChmcF9yZWdzKQotKyAgICAqZnBfcmVncyA9ICZtY29u dGV4dC5mcF9yZWdzOwotKyAgaWYgKHNpemUpCi0rICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0 LmZwX3JlZ3MpOwotICNlbHNlCi0gICBpZiAoZnBfcmVncykKLSAgICAgKmZwX3JlZ3MgPSAmZnBy ZWdzOwotQEAgLTMwMiw0ICszNDcsMTMgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1Bv aW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAjZW5kaWYKLSB9 Ci0gCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSt2b2lkIFRocmVhZEluZm86OkdldFZl Y3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSsgICAgaWYgKHZf cmVncykKLSsgICAgICAgICp2X3JlZ3MgPSAmdnJlZ3M7Ci0rICAgIGlmIChzaXplKQotKyAgICAg ICAgKnNpemUgPSBzaXplb2YodnJlZ3MpOwotK30KLSsjZW5kaWYKLSsKLSB9ICAvLyBuYW1lc3Bh Y2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaCBi L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKLWluZGV4IGZiMjE2ZmE2ZC4uNTkzYWFjODIyIDEwMDY0 NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2lu Zm8uaAotQEAgLTY4LDYgKzY4LDEwIEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAgIC8vIFVzZSB0 aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdXNlci5oPgotICAgc3RydWN0IHVzZXJfcmVn c19zdHJ1Y3QgcmVnczsKLSAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZp bmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCi0rICBtY29udGV4dF90IG1jb250ZXh0OwotKyAgdnJy ZWdzZXRfdCB2cmVnczsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgLy8gVXNlIHRoZSBz dHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+LgotICAgbWNvbnRleHRfdCBtY29u dGV4dDsKLUBAIC04NCw2ICs4OCwxMSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gCi0gICAvLyBS ZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIGZsb2F0IHBvaW50IHJlZ2lzdGVyIGFyZWEu Ci0gICB2b2lkIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVf dCogc2l6ZSk7Ci0rCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFJldHVybnMg dGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgdGhlIHZlY3RvciByZWdpc3RlciBhcmVhLiAoUFBDNjQg b25seSkKLSsgIHZvaWQgR2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCog c2l6ZSk7Ci0rI2VuZGlmCi0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFk Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjIGIvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNv bnRleHRfcmVhZGVyLmNjCi1pbmRleCA2ZWVjMWJlMjQuLjc0MTk4M2ExYSAxMDA2NDQKLS0tLSBh L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVh ZGVyLmNjCi1AQCAtMjU0LDYgKzI1NCw0OCBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BV Q29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7Ci0gICBv dXQtPmZsb2F0X3NhdmUuZmlyID0gdWMtPnVjX21jb250ZXh0LmZwY19laXI7ICAvLyBVbnVzZWQu Ci0gI2VuZGlmCi0gfQotKwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsKLSt1aW50 cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldFN0YWNrUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1 YykgewotKyAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2 NF9SRUdfU1BdOwotK30KLSsKLSt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldEluc3RydWN0 aW9uUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgewotKyAgICByZXR1cm4gdWMtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSt9Ci0rCi0rdm9pZCBVQ29udGV4dFJlYWRlcjo6Rmls bENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90KiB2cmVn cykgewotKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7Ci0r Ci0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkr KykKLSsgICAgICAgIG91dC0+Z3ByW2ldID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbaV07Ci0r Ci0rICAgIG91dC0+bHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOyAgICAKLSsg ICAgb3V0LT5zcnIwID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSsgICAgb3V0 LT5zcnIxID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKLSsgICAgb3V0LT5jciA9 IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NDUl07Ci0rICAgIG91dC0+eGVyID0gdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXTsKLSsgICAgb3V0LT5jdHIgPSB1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9DVFJdOwotKyAgICAKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9G TE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+ZmxvYXRf c2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsKLSsgICAgb3V0 LT5mbG9hdF9zYXZlLmZwc2NyID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOwot KwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VO VDsgaSsrKQotKyAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0KLSsgICAgICAg ICAgICB7KCgodWludDY0X3QpdnJlZ3MtPnZycmVnc1tpXVswXSkgPDwgMzIpIAotKyAgICAgICAg ICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bMV0sIAotKyAgICAgICAgICAgICAo KCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzJdKSA8PCAzMikKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzNdfTsKLSsKLSsgICAgb3V0LT52cnNhdmUgPSB2 cmVncy0+dnJzYXZlOwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjciA9IHswLCB2cmVn cy0+dnNjci52c2NyX3dvcmR9OwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJ2YWxpZCA9 IDB4RkZGRkZGRkY7IAotK30KLSsKLSAjZW5kaWYKLSAKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xl X2JyZWFrcGFkCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmggYi90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi91Y29udGV4dF9yZWFkZXIuaAotaW5kZXggN2Q0MTAwODgxLi5jMTIyYWM5MmUgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotKysrIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRl eHRfcmVhZGVyLmgKLUBAIC01NSw2ICs1NSw5IEBAIHN0cnVjdCBVQ29udGV4dFJlYWRlciB7Ci0g I2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0 KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQqIGZwcmVncyk7Ci0r I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRl eHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKTsKLSAjZWxzZQotICAg c3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29u dGV4dF90KiB1Yyk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCi1pbmRleCBhNmNiNWY5ODQuLmFlMTZiNjRkOSAxMDA2NDQKLS0t LSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxl ci9leGNlcHRpb25faGFuZGxlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1AQCAtNDYx LDkgKzQ2MSwxNiBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OkhhbmRsZVNpZ25hbChpbnQgLypz aWcqLywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1YykgewotICAgICBtZW1jcHkoJmdfY3Jhc2hf Y29udGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwKLSAgICAgICAgICAgIHNpemVvZihnX2NyYXNo X2NvbnRleHRfLmZsb2F0X3N0YXRlKSk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgLy8gT24gUFBDNjQsIHdlIG11c3QgY29weSBWUiBzdGF0ZQotKyAgdWNvbnRleHRf dCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOwotKyAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQu dl9yZWdzKSB7Ci0rICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUsIHVj X3B0ci0+dWNfbWNvbnRleHQudl9yZWdzLAotKyAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29u dGV4dF8udmVjdG9yX3N0YXRlKSk7Ci0rICB9Ci0gI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9f KSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIC8vIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVz ZXIgQUJJIG9uIEFSTSBMaW51eC4KLS0gIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0 ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAotKyAgLy8gSW4gY2FzZSBvZiBNSVBTLCBM aW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAotICAgLy8gYW5kICdm bG9hdF9zdGF0ZScgaXMgbm90IGEgbWVtYmVyIG9mIENyYXNoQ29udGV4dC4KLSAgIHVjb250ZXh0 X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsKLSAgIGlmICh1Y19wdHItPnVjX21jb250ZXh0 LmZwcmVncykgewotQEAgLTcwOCwxMSArNzE1LDE5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6 V3JpdGVNaW5pZHVtcCgpIHsKLSAgIH0KLSAjZW5kaWYKLSAKLS0jaWYgIWRlZmluZWQoX19BUk1f RUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0r I2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFk ZWZpbmVkKF9fbWlwc19fKSBcCi0rICAgICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAv LyBGUFUgc3RhdGUgaXMgbm90IHBhcnQgb2YgQVJNIEVBQkkgdWNvbnRleHRfdC4KLSAgIG1lbWNw eSgmY29udGV4dC5mbG9hdF9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmZwcmVn cywKLSAgICAgICAgICBzaXplb2YoY29udGV4dC5mbG9hdF9zdGF0ZSkpOwotICNlbmRpZgotKwot KyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBWZWN0b3IgcmVnaXN0ZXJzIG11c3Qg YmUgY29waWVkIG9uIFBQQzY0Ci0rICBtZW1jcHkoJmNvbnRleHQudmVjdG9yX3N0YXRlLCBjb250 ZXh0LmNvbnRleHQudWNfbWNvbnRleHQudl9yZWdzLAotKyAgICAgICAgIHNpemVvZihjb250ZXh0 LnZlY3Rvcl9zdGF0ZSkpOwotKyNlbmRpZgotKwotICAgY29udGV4dC50aWQgPSBzeXNfZ2V0dGlk KCk7Ci0gCi0gICAvLyBBZGQgYW4gZXhjZXB0aW9uIHN0cmVhbSB0byB0aGUgbWluaWR1bXAgZm9y IGJldHRlciByZXBvcnRpbmcuCi1AQCAtNzMzLDYgKzc0OCw5IEBAIGJvb2wgRXhjZXB0aW9uSGFu ZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgY29u dGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNv bnRleHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF0pOwot ICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBs YXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmggYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhj ZXB0aW9uX2hhbmRsZXIuaAotaW5kZXggZjgwODQzZWE3Li4yNjBkZDEwZjcgMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIv ZXhjZXB0aW9uX2hhbmRsZXIuaAotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKLUBAIC0xOTIsNyAr MTkyLDExIEBAIGNsYXNzIEV4Y2VwdGlvbkhhbmRsZXIgewotICAgICBzaWdpbmZvX3Qgc2lnaW5m bzsKLSAgICAgcGlkX3QgdGlkOyAgLy8gdGhlIGNyYXNoaW5nIHRocmVhZC4KLSAgICAgdWNvbnRl eHRfdCBjb250ZXh0OwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9f bWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIC8vIFBQQzY0J3MgRlAg c3RhdGUgaXMgYSBwYXJ0IG9mIHVjb250ZXh0X3QgbGlrZSBNSVBTIGJ1dCB0aGUgdmVjdG9yCi0r ICAgIC8vIHN0YXRlIGlzIG5vdCwgc28gYSBzdHJ1Y3QgaXMgbmVlZGVkLgotKyAgICB2c3RhdGVf dCB2ZWN0b3Jfc3RhdGU7Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5l ZChfX21pcHNfXykKLSAgICAgLy8gI2lmZGVmIHRoaXMgb3V0IGJlY2F1c2UgRlAgc3RhdGUgaXMg bm90IHBhcnQgb2YgdXNlciBBQkkgZm9yIExpbnV4IEFSTS4KLSAgICAgLy8gSW4gY2FzZSBvZiBN SVBTIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90IHNvCi0gICAg IC8vICdmbG9hdF9zdGF0ZScgaXMgbm90IHJlcXVpcmVkLgotZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25f aGFuZGxlcl91bml0dGVzdC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYwotaW5kZXgg MzVkY2JmZDRkLi43OTM0MzcwZmQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRl c3QuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYwotQEAgLTMwNyw3ICszMDcs NyBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0LCBQYXJhbGxlbENoaWxkQ3Jhc2hlc0RvbnRI YW5nKSB7Ci0gICB9Ci0gCi0gICAvLyBXYWl0IGEgd2hpbGUgdW50aWwgdGhlIGNoaWxkIHNob3Vs ZCBoYXZlIGNyYXNoZWQuCi0tICB1c2xlZXAoMTAwMDAwMCk7Ci0rICB1c2xlZXAoMjAwMDAwMCk7 Ci0gICAvLyBLaWxsIHRoZSBjaGlsZCBpZiBpdCBpcyBzdGlsbCBydW5uaW5nLgotICAga2lsbChj aGlsZCwgU0lHS0lMTCk7Ci0gCi1AQCAtNTU5LDYgKzU1OSw4IEBAIGNvbnN0IHVuc2lnbmVkIGNo YXIga0lsbGVnYWxJbnN0cnVjdGlvbltdID0gewotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotICAg Ly8gbWZjMiB6ZXJvLEltcGwgLSB1c3VhbGx5IGlsbGVnYWwgaW4gdXNlcnNwYWNlLgotICAgMHg0 OCwgMHgwMCwgMHgwMCwgMHg0OAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIDB4 MDEsIDB4MDEsIDB4MDEsIDB4MDEgLy8gQ3Jhc2hlcyBvbiBhIHRlc3RlZCBQT1dFUjkgY3B1Ci0g I2Vsc2UKLSAgIC8vIFRoaXMgY3Jhc2hlcyB3aXRoIFNJR0lMTCBvbiB4ODYveDg2LTY0L2FybS4K LSAgIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYKLUBAIC03NTQsMTAgKzc1NiwxMCBAQCBURVNUKEV4 Y2VwdGlvbkhhbmRsZXJUZXN0LCBJbnN0cnVjdGlvblBvaW50ZXJNZW1vcnlNYXhCb3VuZCkgewot IAotICAgLy8gVGhlc2UgYXJlIGRlZmluZWQgaGVyZSBzbyB0aGUgcGFyZW50IGNhbiB1c2UgdGhl bSB0byBjaGVjayB0aGUKLSAgIC8vIGRhdGEgZnJvbSB0aGUgbWluaWR1bXAgYWZ0ZXJ3YXJkcy4K LS0gIC8vIFVzZSA0ayBoZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUg cGFnZSBldmVuCi0rICAvLyBVc2UgdGhlIHBhZ2Ugc2l6ZSBoZXJlIGJlY2F1c2UgdGhlIE9TIHdp bGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVuCi0gICAvLyBpZiBhIHNtYWxsZXIgc2l6ZSBp cyByZXF1ZXN0ZWQsIGFuZCB0aGlzIHRlc3Qgd2FudHMgdG8KLSAgIC8vIHRlc3QgdGhlIHVwcGVy IGJvdW5kIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCi0tICBjb25zdCB1aW50MzJfdCBrTWVtb3J5U2l6 ZSA9IDQwOTY7ICAvLyBieXRlcwotKyAgY29uc3QgdWludDMyX3Qga01lbW9yeVNpemUgPSBnZXRw YWdlc2l6ZSgpOyAgLy8gYnl0ZXMKLSAgIGNvbnN0IGludCBrT2Zmc2V0ID0ga01lbW9yeVNpemUg LSBzaXplb2Yoa0lsbGVnYWxJbnN0cnVjdGlvbik7Ci0gCi0gICBjb25zdCBwaWRfdCBjaGlsZCA9 IGZvcmsoKTsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYyBiL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRl ci9taWNyb2R1bXBfd3JpdGVyLmNjCi1pbmRleCBmYTNjMTcxM2EuLjZjZTcwOWUyZiAxMDA2NDQK LS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlj cm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1w X3dyaXRlci5jYwotQEAgLTEzOCw3ICsxMzgsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewot ICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pY3JvZHVtcEV4dHJhSW5mbyYgbWljcm9kdW1wX2V4 dHJhX2luZm8sCi0gICAgICAgICAgICAgICAgICAgTGludXhEdW1wZXIqIGR1bXBlcikKLSAgICAg ICA6IHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYg IWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRl eHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykg JiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZj b250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhk dW1wZXIpLAotQEAgLTMzNyw2ICszMzksOCBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICMg ZWxzZQotICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVk IChuMzIpIgotICNlbmRpZgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgY29u c3QgY2hhciBrQXJjaFtdID0gInBwYzY0IjsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhh cyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNDA5 LDcgKzQxMyw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkIER1bXBDUFVTdGF0 ZSgpIHsKLSAgICAgUmF3Q29udGV4dENQVSBjcHU7Ci0gICAgIG15X21lbXNldCgmY3B1LCAwLCBz aXplb2YoUmF3Q29udGV4dENQVSkpOwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFk ZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8p OwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0g ICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0 X3N0YXRlXyk7Ci0gI2Vsc2UKLSAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZj cHUsIHVjb250ZXh0Xyk7Ci1AQCAtNjA1LDcgKzYxMSw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRl ciB7Ci0gICB2b2lkKiBBbGxvYyh1bnNpZ25lZCBieXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxs b2NhdG9yKCktPkFsbG9jKGJ5dGVzKTsgfQotIAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3Qg dWNvbnRleHRfOwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlw c19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtw YWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJN X0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6 OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVfOwotICNlbmRpZgotICAgTGludXhEdW1wZXIq IGR1bXBlcl87Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3Qu Y2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3Jv ZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYwotaW5kZXggNjMzOWFjMGNk Li4yOTFhZjEwNmIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVz dC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLUBAIC0yNzks MTAgKzI3OSwxOSBAQCBURVNUKE1pY3JvZHVtcFdyaXRlclRlc3QsIEJhc2ljV2l0aE1hcHBpbmdz KSB7Ci0gICBDcmFzaEFuZEdldE1pY3JvZHVtcChtYXBwaW5ncywgTWljcm9kdW1wRXh0cmFJbmZv KCksICZidWYpOwotICAgQVNTRVJUX1RSVUUoQ29udGFpbnNNaWNyb2R1bXAoYnVmKSk7Ci0gCi0r ICBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKLSAjaWZkZWYgX19MUDY0X18KLS0gIEFT U0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLS0gICAgICAgICAgICBidWYuZmluZCgiTSAwMDAw MDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCi0tICAgICAg ICAgICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28u c28iKSk7Ci0rICAvLyBUaGlzIHRlc3QgaXMgb25seSBhdmFpbGFibGUgZm9yIHRoZSBmb2xsb3dp bmcgcGFnZSBzaXplcwotKyAgQVNTRVJUX1RSVUUoKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB8fCAocGFn ZV9zaXplID09IDY1NTM2KSk7Ci0rICBpZiAocGFnZV9zaXplID09IDQwOTYpIHsgCi0rICAgIEFT U0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSsgICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAw MDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAxMDAwICIKLSsgICAg ICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGli Zm9vLnNvIikpOwotKyAgfSBlbHNlIHsKLSsgICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9z LAotKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAxMDAwMCAwMDAwMDAwMDAw MDAwMDJBIDAwMDAwMDAwMDAwMTAwMDAgIgotKyAgICAgICAgICAgICAgICAgICAgICAgIjMzMjIx MTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7Ci0rICB9Ci0gI2Vsc2UK LSAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSAgICAgICAgICAgICBidWYuZmluZCgi TSAwMDAwMTAwMCAwMDAwMDAyQSAwMDAwMTAwMCAiCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf Y29yZV9kdW1wZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotaW5kZXggNDE1MDY4 OTgzLi5iOTNlNGFmY2YgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwot KysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLUBAIC0xMTIsNiArMTEyLDkgQEAgYm9v bCBMaW51eENvcmVEdW1wZXI6OkdldFRocmVhZEluZm9CeUluZGV4KHNpemVfdCBpbmRleCwgVGhy ZWFkSW5mbyogaW5mbykgewotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICBzdGFja19wb2lu dGVyID0KLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5n cmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgc3RhY2tfcG9pbnRlciA9Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90 Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0pOwotICNl bHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZv cm0geWV0LiIKLSAjZW5kaWYKLUBAIC0xOTcsNyArMjAwLDEwIEBAIGJvb2wgTGludXhDb3JlRHVt cGVyOjpFbnVtZXJhdGVUaHJlYWRzKCkgewotICAgICAgICAgbWVtc2V0KCZpbmZvLCAwLCBzaXpl b2YoVGhyZWFkSW5mbykpOwotICAgICAgICAgaW5mby50Z2lkID0gc3RhdHVzLT5wcl9wZ3JwOwot ICAgICAgICAgaW5mby5wcGlkID0gc3RhdHVzLT5wcl9wcGlkOwotLSNpZiBkZWZpbmVkKF9fbWlw c19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IDMxOyBpKyspCi0rICAgICAgICAgICAgaW5mby5tY29udGV4dC5ncF9yZWdzW2ldID0g c3RhdHVzLT5wcl9yZWdbaV07Ci0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAjaWYgZGVmaW5l ZChfX0FORFJPSURfXykKLSAgICAgICAgIGZvciAoaW50IGkgPSBFRl9SMDsgaSA8PSBFRl9SMzE7 IGkrKykKLSAgICAgICAgICAgaW5mby5tY29udGV4dC5ncmVnc1tpIC0gRUZfUjBdID0gc3RhdHVz LT5wcl9yZWdbaV07Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjIGIvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfZHVtcGVyLmNjCi1pbmRleCA3ZmQ2NTMyYWQuLjE5OWNiZmZmZCAxMDA2NDQKLS0tLSBh L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL2xpbnV4X2R1bXBlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi1AQCAt NzY1LDcgKzc2NSw5IEBAIGJvb2wgTGludXhEdW1wZXI6OkdldFN0YWNrSW5mbyhjb25zdCB2b2lk Kiogc3RhY2ssIHNpemVfdCogc3RhY2tfbGVuLAotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu dDhfdCo+KGludF9zdGFja19wb2ludGVyICYgfihwYWdlX3NpemUgLSAxKSk7Ci0gCi0gICAvLyBU aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHN0YWNrIHdoaWNoIHdlIHRyeSB0byBjYXB0dXJlLgotLSAg c3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSAzMiAqIDEwMjQ7Ci0rICAv LyBUaGlzIG5vdyBkZXBlbmRzIG9uIHBhZ2Vfc2l6ZSB0byBhdm9pZCBtaXNzaW5nIGRhdGEKLSsg IC8vIG9uIHN5c3RlbXMgd2l0aCBsYXJnZXIgcGFnZSBzaXplcy4KLSsgIHN0YXRpYyBjb25zdCBw dHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gOCAqIHBhZ2Vfc2l6ZTsKLSAKLSAgIGNvbnN0IE1h cHBpbmdJbmZvKiBtYXBwaW5nID0gRmluZE1hcHBpbmcoc3RhY2tfcG9pbnRlcik7Ci0gICBpZiAo IW1hcHBpbmcpCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmggYi90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9kdW1wZXIuaAotaW5kZXggN2JlZTE2MGYxLi4wN2JiMmI4MWEgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9kdW1wZXIuaAotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKLUBAIC02Myw3ICs2 Myw4IEBAIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgewotICAoZGVmaW5lZChfX21pcHNfXykg JiYgX01JUFNfU0lNID09IF9BQklPMzIpCi0gdHlwZWRlZiBFbGYzMl9hdXh2X3QgZWxmX2F1eF9l bnRyeTsKLSAjZWxpZiBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8 fCBcCi0tICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNICE9IF9BQklPMzIpCi0r ICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNICE9IF9BQklPMzIpIHx8IFwKLSsg ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSB0eXBlZGVmIEVsZjY0X2F1eHZfdCBlbGZfYXV4 X2VudHJ5OwotICNlbmRpZgotIAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0 dGVzdF9oZWxwZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1p bmRleCAzMzFmNGJiMzQuLjNmNzIyOTQ3ZiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBl cl91bml0dGVzdF9oZWxwZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9o ZWxwZXIuY2MKLUBAIC01MSw2ICs1MSw4IEBACi0gI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJy Y3giCi0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIg IiQxIgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjZGVmaW5lIFRJRF9QVFJfUkVH SVNURVIgInI4IgotICNlbHNlCi0gI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVk IHRvIHRoaXMgcGxhdGZvcm0uCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRy YWNlX2R1bXBlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKLWluZGV4IGUzZGRi ODFhNi4uZmEyODU3NWVmIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5j YwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYwotQEAgLTE0OSwxOSArMTQ5LDI3 IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkNvcHlGcm9tUHJvY2Vzcyh2b2lkKiBkZXN0LCBw aWRfdCBjaGlsZCwKLSAgIHJldHVybiB0cnVlOwotIH0KLSAKLS1ib29sIExpbnV4UHRyYWNlRHVt cGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKQotLXsKLSti b29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywg cGlkX3QgdGlkKSB7Ci0gI2lmZGVmIFBUUkFDRV9HRVRSRUdTRVQKLSAgIHN0cnVjdCBpb3ZlYyBp bzsKLSAgIGluZm8tPkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlv Lmlvdl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9p ZCopTlRfUFJTVEFUVVMsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFD RV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkg ewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0gCi0gICBpbmZvLT5HZXRGbG9hdGluZ1BvaW50 UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2Uo UFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09 IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQ UkVHU0VULCAodm9pZCopJmlvKSA9PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0r Ci0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIEdyYWIgdGhlIHZlY3RvciByZWdp c3RlcnMgb24gUFBDNjQgdG9vCi0rICBpbmZvLT5HZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlvdl9i YXNlLCAmaW8uaW92X2xlbik7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwg KHZvaWQqKU5UX1BQQ19WTVgsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICAgIHJldHVybiBmYWxz ZTsKLSsgIH0KLSsjZW5kaWYgLy8gZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotICAgcmV0dXJu IHRydWU7Ci0gI2Vsc2UKLSAgIHJldHVybiBmYWxzZTsKLUBAIC0yOTgsNiArMzA2LDkgQEAgYm9v bCBMaW51eFB0cmFjZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBU aHJlYWRJbmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3Bv aW50ZXIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0 LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICBzdGFja19wb2ludGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4 X3QqPihpbmZvLT5tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0g I2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0 Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1w ZXJfdW5pdHRlc3QuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi1p bmRleCBkYTcxZTE1ZGMuLjEyYmZiMzE3YSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFj ZV9kdW1wZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5p dHRlc3QuY2MKLUBAIC00NjIsNiArNDYyLDkgQEAgVEVTVChMaW51eFB0cmFjZUR1bXBlclRlc3Qs IFZlcmlmeVN0YWNrUmVhZFdpdGhNdWx0aXBsZVRocmVhZHMpIHsKLSAjZWxpZiBkZWZpbmVkKF9f bWlwc19fKQotICAgICBwaWRfdCogcHJvY2Vzc190aWRfbG9jYXRpb24gPQotICAgICAgICAgcmVp bnRlcnByZXRfY2FzdDxwaWRfdCo+KG9uZV90aHJlYWQubWNvbnRleHQuZ3JlZ3NbMV0pOwotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0 aW9uID0KLSsgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250 ZXh0LmdwX3JlZ3NbOF0pOwotICNlbHNlCi0gI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4g cG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCi0gI2VuZGlmCi1AQCAtNTU5LDYgKzU2Miw4IEBAIFRF U1RfRihMaW51eFB0cmFjZUR1bXBlclRlc3QsIFNhbml0aXplU3RhY2tDb3B5KSB7Ci0gICB1aW50 cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ucmVncy5yY3g7Ci0gI2VsaWYgZGVmaW5lZChf X21pcHNfXykKLSAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5tY29udGV4dC5n cmVnc1sxXTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICB1aW50cHRyX3QgaGVh cF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3BfcmVnc1s4XTsKLSAjZWxzZQotICNlcnJv ciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRp ZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYyBiL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1w X3dyaXRlci5jYwotaW5kZXggMzI2MzRlZjAwLi4yYTU2OTQ4ZGUgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9taW5pZHVtcF93cml0ZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYwotQEAg LTEzNiw3ICsxMzYsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgICAgOiBmZF8obWlu aWR1bXBfZmQpLAotICAgICAgICAgcGF0aF8obWluaWR1bXBfcGF0aCksCi0gICAgICAgICB1Y29u dGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVMTCksCi0tI2lmICFkZWZpbmVk KF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSsgICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0 b3Jfc3RhdGUgOiBOVUxMKSwKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZp bmVkKF9fbWlwc19fKQotICAgICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ ZmxvYXRfc3RhdGUgOiBOVUxMKSwKLSAjZW5kaWYKLSAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwK LUBAIC00NjgsNyArNDcwLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAgICAgICAgaWYg KCFjcHUuQWxsb2NhdGUoKSkKLSAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgbXlf bWVtc2V0KGNwdS5nZXQoKSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKLS0jaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5n ZXQoKSwgdWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZp bGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOwotICNlbHNl Ci0gICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29u dGV4dF8pOwotQEAgLTg5Nyw3ICs5MDEsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAg IGRpcmVudC0+bG9jYXRpb24ucnZhID0gMDsKLSAgIH0KLSAKLS0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIGJvb2wgV3JpdGVDUFVJbmZvcm1hdGlvbihN RFJhd1N5c3RlbUluZm8qIHN5c19pbmZvKSB7Ci0gICAgIGNoYXIgdmVuZG9yX2lkW3NpemVvZihz eXNfaW5mby0+Y3B1Lng4Nl9jcHVfaW5mby52ZW5kb3JfaWQpICsgMV0gPSB7MH07Ci0gICAgIHN0 YXRpYyBjb25zdCBjaGFyIHZlbmRvcl9pZF9uYW1lW10gPSAidmVuZG9yX2lkIjsKLUBAIC05MTcs NyArOTIxLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotIAotICAgICAvLyBwcm9jZXNzb3Jf YXJjaGl0ZWN0dXJlIHNob3VsZCBhbHdheXMgYmUgc2V0LCBkbyB0aGlzIGZpcnN0Ci0gICAgIHN5 c19pbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJlID0KLS0jaWYgZGVmaW5lZChfX21pcHNfXykK LSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVS RV9QUEM2NDsKLSsjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICMgaWYgX01JUFNfU0lNID09IF9B QklPMzIKLSAgICAgICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfTUlQUzsKLSAjIGVsaWYgX01JUFNf U0lNID09IF9BQkk2NAotQEAgLTEzMzMsNyArMTMzOSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVy IHsKLSAgIGNvbnN0IGNoYXIqIHBhdGhfOyAgLy8gUGF0aCB0byB0aGUgZmlsZSB3aGVyZSB0aGUg bWluaWR1bSBzaG91bGQgYmUgd3JpdHRlbi4KLSAKLSAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0 IHVjb250ZXh0XzsgIC8vIGFsc28gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKLS0jaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVj dG9yX3N0YXRlXzsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9f bWlwc19fKQotICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0 X3N0YXRlXzsgIC8vIGRpdHRvCi0gI2VuZGlmCi0gICBMaW51eER1bXBlciogZHVtcGVyXzsKLWRp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRl ci5oCi1pbmRleCBlM2IwYjE2ZGEuLmNjZDhhYTBhNCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlk dW1wX3dyaXRlci5oCi0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAotQEAgLTQ4LDYgKzQ4 LDggQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlcjsKLSAKLSAjaWYgZGVmaW5lZChfX2FhcmNoNjRf XykKLSB0eXBlZGVmIHN0cnVjdCBmcHNpbWRfY29udGV4dCBmcHN0YXRlX3Q7Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotK3R5cGVkZWYgdnJyZWdzZXRfdCB2c3RhdGVfdDsKLSAjZWxp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotIHR5cGVkZWYg c3RkOjpyZW1vdmVfcG9pbnRlcjxmcHJlZ3NldF90Pjo6dHlwZSBmcHN0YXRlX3Q7Ci0gI2VuZGlm Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIGIvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1pbmRleCBkMTkyZTVjYmIuLmZjMWJmYThkNyAx MDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYwotKysrIGIvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1AQCAtNzE1LDYgKzcxNSw5IEBAIFRFU1Qo TWluaWR1bXBXcml0ZXJUZXN0LCBJbnZhbGlkU3RhY2tQb2ludGVyKSB7Ci0gI2VsaWYgZGVmaW5l ZChfX21pcHNfXykKLSAgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncmVnc1tNRF9DT05U RVhUX01JUFNfUkVHX1NQXSA9Ci0gICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5n cF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSA9Ci0rICAgICAgaW52YWxpZF9zdGFja19w b2ludGVyOwotICNlbHNlCi0gIyBlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQg dG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNj IGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlf bWFwcGVkX2ZpbGUuY2MKLWluZGV4IDk5MzYyOTQ1Yy4uYzU0YmE3MTQ1IDEwMDY0NAotLS0tIGEv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFw cGVkX2ZpbGUuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21t b24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCi1AQCAtNjUsOCArNjUsNyBAQCBib29sIE1l bW9yeU1hcHBlZEZpbGU6Ok1hcChjb25zdCBjaGFyKiBwYXRoLCBzaXplX3Qgb2Zmc2V0KSB7Ci0g ICB9Ci0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgXAotLSAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KQotLQot KyAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICBzdHJ1Y3Qga2VybmVsX3N0YXQgc3Q7Ci0gICBpZiAoc3lzX2Zz dGF0KGZkLCAmc3QpID09IC0xIHx8IHN0LnN0X3NpemUgPCAwKSB7Ci0gI2Vsc2UKLWRpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9y eV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi1pbmRleCBm YWQ1OWY0MGMuLjYxNjQ5NmQ2NyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi0r KysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9y eV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYwotQEAgLTE3Niw5ICsxNzYsMTAgQEAgVEVTVF9GKE1l bW9yeU1hcHBlZEZpbGVUZXN0LCBSZW1hcEFmdGVyTWFwKSB7Ci0gVEVTVF9GKE1lbW9yeU1hcHBl ZEZpbGVUZXN0LCBNYXBXaXRoT2Zmc2V0KSB7Ci0gICAvLyBQdXQgbW9yZSBkYXRhIGluIHRoZSB0 ZXN0IGZpbGUgdGhpcyB0aW1lLiBPZmZzZXRzIGNhbiBvbmx5IGJlCi0gICAvLyBkb25lIG9uIHBh Z2UgYm91bmRhcmllcywgc28gd2UgbmVlZCBhIHR3byBwYWdlIGZpbGUgdG8gdGVzdCB0aGlzLgot LSAgY29uc3QgaW50IHBhZ2Vfc2l6ZSA9IDQwOTY7Ci0tICBjaGFyIGRhdGExWzIgKiBwYWdlX3Np emVdOwotLSAgc2l6ZV90IGRhdGExX3NpemUgPSBzaXplb2YoZGF0YTEpOwotKyAgY29uc3QgaW50 IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0rICBjaGFyICpkYXRhMSA9IHN0YXRpY19jYXN0 PGNoYXIqPihtYWxsb2MoMiAqIHBhZ2Vfc2l6ZSkpOwotKyAgRVhQRUNUX1RSVUUoZGF0YTEgIT0g TlVMTCk7Ci0rICBzaXplX3QgZGF0YTFfc2l6ZSA9ICgyICogcGFnZV9zaXplKTsKLSAgIGZvciAo c2l6ZV90IGkgPSAwOyBpIDwgZGF0YTFfc2l6ZTsgKytpKSB7Ci0gICAgIGRhdGExW2ldID0gaSAm IDB4N2Y7Ci0gICB9Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1p bmRleCA1ODAzYjkwZDUuLjJhMWNmMTRmMCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwotKysr IGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2Nh dG9yX3VuaXR0ZXN0LmNjCi1AQCAtNTcsOCArNTcsOSBAQCBURVNUKFBhZ2VBbGxvY2F0b3JUZXN0 LCBMYXJnZU9iamVjdCkgewotIAotICAgRVhQRUNUX0VRKDBVLCBhbGxvY2F0b3IucGFnZXNfYWxs b2NhdGVkKCkpOwotICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFs bG9jYXRvci5BbGxvYygxMDAwMCkpOwotKyAgdWludDY0X3QgZXhwZWN0ZWRfcGFnZXMgPSAxICsg KCgxMDAwMCAtIDEpIC8gZ2V0cGFnZXNpemUoKSk7Ci0gICBBU1NFUlRfRkFMU0UocCA9PSBOVUxM KTsKLS0gIEVYUEVDVF9FUSgzVSwgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSsgIEVY UEVDVF9FUShleHBlY3RlZF9wYWdlcywgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSAg IGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCAxMDsgKytpKSB7Ci0gICAgIHVpbnQ4X3QqIHAgPSBy ZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2MoaSkpOwotICAgICBBU1NF UlRfRkFMU0UocCA9PSBOVUxMKTsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjIGIvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5j YwotaW5kZXggNzk4MDU2ZGZhLi4yMmJkODFmZmYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi0r KysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRh YmlsaXR5X2xpbnV4LmNjCi1AQCAtMjAyLDEyICsyMDIsMTQgQEAgYm9vbCBFeHBsb2l0YWJpbGl0 eUxpbnV4OjpFbmRlZE9uSWxsZWdhbFdyaXRlKHVpbnQ2NF90IGluc3RydWN0aW9uX3B0cikgewot ICAgLy8gQ2hlY2sgYXJjaGl0ZWN0dXJlIGFuZCBzZXQgYXJjaGl0ZWN0dXJlIHZhcmlhYmxlIHRv IGNvcnJlc3BvbmRpbmcgZmxhZwotICAgLy8gaW4gb2JqZHVtcC4KLSAgIHN3aXRjaCAoY29udGV4 dC0+R2V0Q29udGV4dENQVSgpKSB7Ci0rI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9f eDg2XzY0KQotICAgICBjYXNlIE1EX0NPTlRFWFRfWDg2OgotICAgICAgIGFyY2hpdGVjdHVyZSA9 ICJpMzg2IjsKLSAgICAgICBicmVhazsKLSAgICAgY2FzZSBNRF9DT05URVhUX0FNRDY0OgotICAg ICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2Ong4Ni02NCI7Ci0gICAgICAgYnJlYWs7Ci0rI2VuZGlm Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgLy8gVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLiBOb3Rl IHRoYXQgQVJNIGFyY2hpdGVjdHVyZXMgYXJlIG5vdAotICAgICAgIC8vIHN1cHBvcnRlZCBiZWNh dXNlIG9iamR1bXAgZG9lcyBub3Qgc3VwcG9ydCBBUk0uCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVz dC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9p dGFiaWxpdHlfdW5pdHRlc3QuY2MKLWluZGV4IDUyOGVlNWYyMS4uNzI3NjRkNmMxIDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0 YWJpbGl0eV91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYwotQEAgLTEwNCw2ICsxMDQs OCBAQCBFeHBsb2l0YWJpbGl0eUZvcihjb25zdCBzdHJpbmcmIGZpbGVuYW1lKSB7Ci0gfQotIAot IFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2luZG93c0VuZ2luZSkgewotKy8vIFRoZSBm b2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXgg bWFjaGluZS4KLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRl ZmluZWQoX194ODZfNjQpKQotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFC SUxJVFlfSElHSCwKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigiYXNjaWlfcmVhZF9h di5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9I SUdILAotQEAgLTEzNiw5ICsxMzgsMTIgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RX aW5kb3dzRW5naW5lKSB7Ci0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoInJlYWRfYXZf Y2xvYmJlcl93cml0ZS5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBM T0lUQUJJTElUWV9MT1csCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoInJlYWRfYXZf Y29uZGl0aW9uYWwuZG1wIikpOwotKyNlbmRpZgotIH0KLSAKLSBURVNUKEV4cGxvaXRhYmlsaXR5 VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7Ci0rLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25s eSBleGVjdXRhYmxlIG9uIGFuIHg4Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgotKyNpZiBkZWZpbmVk KF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtw YWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5HLAotICAgICAgICAgICAgIEV4cGxvaXRhYmls aXR5Rm9yKCJsaW51eF9udWxsX3JlYWRfYXYuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9i cmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLUBAIC0xNzEsNyArMTc2LDggQEAgVEVTVChF eHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZSkgewotICAgICAgICAgICAgIEV4cGxv aXRhYmlsaXR5Rm9yKCJsaW51eF9leGVjdXRhYmxlX2hlYXAuZG1wIikpOwotICAgQVNTRVJUX0VR KGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAgICAgICBFeHBs b2l0YWJpbGl0eUZvcigibGludXhfam1wX3RvX21vZHVsZV9ub3RfZXhlX3JlZ2lvbi5kbXAiKSk7 Ci0tI2lmbmRlZiBfV0lOMzIKLSsjZW5kaWYKLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVm aW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotICAgQVNTRVJUX0VRKGdvb2dsZV9i cmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0 eUZvcigibGludXhfd3JpdGVfdG9fbm9ud3JpdGFibGVfbW9kdWxlLmRtcCIpKTsKLSAgIEFTU0VS VF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi1AQCAtMTgyLDEwICsx ODgsMTAgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZSkgewotICAg ICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b19vdXRzaWRlX21vZHVs ZV92aWFfbWF0aC5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lU QUJJTElUWV9JTlRFUkVTVElORywKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGlu dXhfd3JpdGVfdG9fdW5kZXJfNGsuZG1wIikpOwotLSNlbmRpZiAgLy8gX1dJTjMyCi0rI2VuZGlm ICAvLyAhZGVmaW5lZChfV0lOMzIpICYmICghZGVmaW5lZChfX2kzODYpICYmICFkZWZpbmVkKF9f eDg2XzY0KSkKLSB9Ci0gCi0tI2lmbmRlZiBfV0lOMzIKLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAm JiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotIFRFU1QoRXhwbG9pdGFi aWxpdHlMaW51eFV0aWxzVGVzdCwgRGlzYXNzZW1ibGVCeXRlc1Rlc3QpIHsKLSAgIEFTU0VSVF9G QUxTRShFeHBsb2l0YWJpbGl0eUxpbnV4VGVzdDo6RGlzYXNzZW1ibGVCeXRlcygiIiwgTlVMTCwg NSwgTlVMTCkpOwotICAgdWludDhfdCBieXRlc1s2XSA9IHsweGM3LCAweDAsIDB4NSwgMHgwLCAw eDAsIDB4MH07Ci1AQCAtMzAxLDYgKzMwNyw3IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0 aWxzVGVzdCwgQ2FsY3VsYXRlQWRkcmVzc1Rlc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3cml0ZV9hZGRy ZXNzKSk7Ci0gfQotLSNlbmRpZiAgLy8gX1dJTjMyCi0rI2VuZGlmICAvLyAhZGVmaW5lZChfV0lO MzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0rCi0gCi0gfSAg Ly8gbmFtZXNwYWNlCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjIGIvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3Jl LmNjCi1pbmRleCBhYWRlODJjOTkuLjE5NWFhNzNmMyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29y ZS5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4 L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi1AQCAtNzcsNiArNzcsOCBAQAotICAgI2RlZmlu ZSBFTEZfQVJDSCAgRU1fTUlQUwotICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICAjZGVm aW5lIEVMRl9BUkNIICBFTV9BQVJDSDY0Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgI2RlZmluZSBFTEZfQVJDSCAgRU1fUFBDNjQKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChf X2FybV9fKQotQEAgLTg3LDYgKzg5LDggQEAgdHlwZWRlZiB1c2VyX3JlZ3MgdXNlcl9yZWdzX3N0 cnVjdDsKLSAjZWxpZiBkZWZpbmVkIChfX21pcHNfXykKLSAvLyBUaGlzIGZpbGUtbG9jYWwgdHlw ZWRlZiBzaW1wbGlmaWVzIHRoZSBzb3VyY2UgY29kZS4KLSB0eXBlZGVmIGdyZWdzZXRfdCB1c2Vy X3JlZ3Nfc3RydWN0OwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSt0eXBlZGVmIHN0 cnVjdCBwdF9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7Ci0gI2VuZGlmCi0gCi0gdXNpbmcgZ29vZ2xl X2JyZWFrcGFkOjpNRFR5cGVIZWxwZXI7Ci1AQCAtMzIxLDYgKzMyNSw5IEBAIHN0cnVjdCBDcmFz aGVkUHJvY2VzcyB7Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICAgIHVz ZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsgICAgbWNvbnRleHRfdCBtY29udGV4dDsKLSAjZW5kaWYKLSAgICAgdWludHB0cl90 IHN0YWNrX2FkZHI7Ci0gICAgIGNvbnN0IHVpbnQ4X3QqIHN0YWNrOwotQEAgLTUzNSw2ICs1NDIs MzggQEAgUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFk LAotICAgdGhyZWFkLT5tY29udGV4dC5mcGNfZWlyID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5maXI7 Ci0gI2VuZGlmCi0gfQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLStzdGF0aWMgdm9p ZAotK1BhcnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHJlYWQqIHRocmVhZCwK LSsgICAgICAgICAgICAgICAgICAgICBjb25zdCBNaW5pZHVtcE1lbW9yeVJhbmdlJiByYW5nZSkg ewotKyAgY29uc3QgTURSYXdDb250ZXh0UFBDNjQqIHJhd3JlZ3MgPSByYW5nZS5HZXREYXRhPE1E UmF3Q29udGV4dFBQQzY0PigwKTsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVY VF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW2ld ID0gcmF3cmVncy0+Z3ByW2ldOwotKwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0xO S10gPSByYXdyZWdzLT5scjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdID0g cmF3cmVncy0+c3JyMDsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdID0gcmF3 cmVncy0+c3JyMTsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdID0gcmF3cmVn cy0+Y3I7Ci0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXSA9IHJhd3JlZ3MtPnhl cjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdID0gcmF3cmVncy0+Y3RyOwot KyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZyc2F2ZSA9IHJhd3JlZ3MtPnZyc2F2ZTsKLSsK LSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5U OyBpKyspCi0rICAgICAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW2ldID0gcmF3cmVncy0+Zmxv YXRfc2F2ZS5mcHJlZ3NbaV07Ci0rCi0rICB0aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3NbTkZQUkVH LTFdID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHNjcjsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBp IDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspIHsKLSsgICAgICB0aHJlYWQt Pm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzBdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2 ZV92cltpXS5oaWdoID4+IDMyOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJl Z3NbaV1bMV0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2g7Ci0rICAgICAg dGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVsyXSA9IHJhd3JlZ3MtPnZlY3Rvcl9z YXZlLnNhdmVfdnJbaV0ubG93ID4+IDMyOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdz LT52cnJlZ3NbaV1bM10gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdzsKLSsg IH0KLSsKLSsgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52c2NyLnZzY3Jfd29yZCA9IHJhd3Jl Z3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjci5sb3cgJiAweEZGRkZGRkZGOwotK30KLSsKLSAjZWxz ZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9y bSB5ZXQiCi0gI2VuZGlmCi1AQCAtNjIzLDYgKzY2MiwxMiBAQCBQYXJzZVN5c3RlbUluZm8oY29u c3QgT3B0aW9ucyYgb3B0aW9ucywgQ3Jhc2hlZFByb2Nlc3MqIGNyYXNoaW5mbywKLSAjIGVsc2UK LSAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMy KSIKLSAjIGVuZGlmCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKHN5c2lu Zm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgIT0gTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NCkg ewotKyAgICBmcHJpbnRmKHN0ZGVyciwKLSsgICAgICAgICAgICAiVGhpcyB2ZXJzaW9uIG9mIG1p bmlkdW1wLTItY29yZSBvbmx5IHN1cHBvcnRzIFBQQzY0LlxuIik7Ci0rICAgIGV4aXQoMSk7Ci0r ICB9Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlv dXIgcGxhdGZvcm0geWV0IgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L0NPTlRSSUJVVE9SUwotaW5kZXggODcyNGI3ZjMyLi44ZTI5NDI0ZWYgMTAwNjQ0Ci0tLS0gYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKLSsrKyBiL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUwotQEAgLTEzLDMgKzEzLDQgQEAgTWFy ayBNZW50b3ZhaSA8bWFya0BjaHJvbWl1bS5vcmc+Ci0gUm9iZXJ0IFNlc2VrIDxyc2VzZWtAY2hy b21pdW0ub3JnPgotIFNjb3R0IEdyYWhhbSA8c2NvdHRtZ0BjaHJvbWl1bS5vcmc+Ci0gSm9zaHVh IFBlcmF6YSA8anBlcmF6YUBjaHJvbWl1bS5vcmc+Ci0rU2hhd24gQW5hc3Rhc2lvIDxzaGF3bkBh bmFzdGFzLmlvPgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2Nv bXBhdC9saW51eC9zeXMvdXNlci5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29t cGF0L2xpbnV4L3N5cy91c2VyLmgKLWluZGV4IDZlZDc3YTk4ZS4uMWZkODM0NjlhIDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2Vy LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMv dXNlci5oCi1AQCAtMTUsNiArMTUsNyBAQAotICNpZm5kZWYgQ1JBU0hQQURfQ09NUEFUX0xJTlVY X1NZU19VU0VSX0hfCi0gI2RlZmluZSBDUkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8K LSAKLSsjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZV9uZXh0IDxzeXMvdXNlci5oPgotIAot ICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaCBiL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAotaW5kZXggM2EzZTYwM2Ni Li4zMTE4ZDllOWYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAotQEAgLTU5Miw2ICs1OTIsNzAgQEAg c3RydWN0IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7Ci0gICB1aW50NjRfdCBmaXI7Ci0gfTsKLSAK LSsvLyEgXGJyaWVmIHBwYzY0LXNwZWNpZmljIGZsYWdzIGZvciBNaW5pZHVtcFBQQzY0Ojpjb250 ZXh0X2ZsYWdzCi0rLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtw YWQKLStlbnVtIE1pbmlkdW1wQ29udGV4dFBQQzY0RmxhZ3MgOiB1aW50MzJfdCB7Ci0rICAvLyEg XGJyaWVmIElkZW50aWZpZXMgdGhlIGNvbnRleHQgYXMgUFBDNjQuCi0rICBrTWluaWR1bXBDb250 ZXh0UFBDNjQgPSAweDAxMDAwMDAwLAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZh bGlkaXR5IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdp c3RlcnMgYHIwYC1gcjMxYCwgYG5pcGAsIGBtc3JgLCBgbHJgLCBldGMuIGFyZSB2YWxpZC4KLSsg IGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAw MDAwMDAxLAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGZsb2F0 aW5nIHBvaW50IHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBgZnAwYC1gZnAz MWAsIGBmcHNjcmAgYXJlIHZhbGlkLgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcg PSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDA4LAotKwotKyAgLy8hIFxicmllZiBJ bmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIEFsdGl2ZWMvVk1YIHJlZ2lzdGVycy4KLSsgIC8vIQot KyAgLy8hIFJlZ2lzdGVycyBgdjBgLWB2MzFgLCBgdnNjcmAsIGB2cnNhdmVgLgotKyAga01pbmlk dW1wQ29udGV4dFBQQzY0VmVjdG9yID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAy MCwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBhbGwgcmVnaXN0 ZXJzCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGwgPSBrTWluaWR1bXBDb250ZXh0UFBDNjRC YXNlICAgICB8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0 UFBDNjRGbG9hdGluZyB8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBD b250ZXh0UFBDNjRWZWN0b3IKLSt9OwotKwotKy8vISBcYnJpZWYgQSBQUEM2NCBDUFUgY29udGV4 dCBjYXJyaWVkIGluIGEgbWluaWR1bXAgZmlsZS4KLSsvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1 X3BwYzY0LmggZnJvbSBicmVha3BhZC4KLStzdHJ1Y3QgTWluaWR1bXBDb250ZXh0UFBDNjQgewot KyAgdWludDY0X3QgY29udGV4dF9mbGFnczsKLSsKLSsgIC8vISBcYnJpZWYgR2VuZXJhbCBwdXJw b3NlIHJlZ2lzdGVycy4KLSsgIHVpbnQ2NF90IG5pcDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVp bnQ2NF90IHJlZ3NbMzJdOwotKyAgdWludDY0X3QgY2NyOwotKyAgdWludDY0X3QgeGVyOwotKyAg dWludDY0X3QgbG5rOwotKyAgdWludDY0X3QgY3RyOwotKwotKyAgLy8hIFxicmllZiBGbG9hdGlu ZyBwb2ludCByZWdpc3RlcnMuCi0rICBkb3VibGUgZnByZWdzWzMyXTsKLSsKLSsgIC8vISBcYnJp ZWYgRlBVIHN0YXR1cyByZWdpc3Rlci4KLSsgIGRvdWJsZSBmcHNjcjsKLSsKLSsgIC8vISBcYnJp ZWYgQWx0aXZlYy9WTVggdmVjdG9yIHJlZ2lzdGVycy4KLSsgIHN0cnVjdCB7Ci0rICAgICAgLy8h IFxicmllZiBWZWN0b3IgcmVnaXN0ZXJzIGFyZSAxMjhiaXRzLgotKyAgICAgIHVpbnQxMjhfc3Ry dWN0IHNhdmVfdnJbMzJdOwotKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnNjcjsKLSsKLSsg ICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0 aXkuCi0rICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ1WzRdOwotKwotKyAgICAgIC8vISBcYnJpZWYg VlJTQVZFIHJlZ2lzdGVyLgotKyAgICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOwotKwotKyAgICAg IC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4K LSsgICAgICB1aW50MzJfdCBzYXZlX3BhZDZbN107Ci0rICB9IHZyZWdzOwotK307Ci0rCi0gfSAg Ly8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi0gI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9N SU5JRFVNUF9DT05URVhUX0hfCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYwotaW5k ZXggZDdlNTNhNDkzLi5kODllYjllMDEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYwotKysrIGIvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0 ZXIuY2MKLUBAIC0xMDEsNiArMTAxLDEzIEBAIE1pbmlkdW1wQ29udGV4dFdyaXRlcjo6Q3JlYXRl RnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHQqIGNvbnRleHRfc25hcHNob3QpIHsKLSAgICAg ICBicmVhazsKLSAgICAgfQotIAotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDogewot KyAgICAgIGNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPE1pbmlkdW1wQ29udGV4dFBQQzY0V3Jp dGVyPigpOwotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0 ZXIqPihjb250ZXh0LmdldCgpKQotKyAgICAgICAgICAtPkluaXRhbGl6ZUZyb21TbmFwc2hvdChj b250ZXh0X3NuYXBzaG90LT5wcGM2NCk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIH0KLSsKLSAgICAg ZGVmYXVsdDogewotICAgICAgIExPRyhFUlJPUikgPDwgInVua25vd24gY29udGV4dCBhcmNoaXRl Y3R1cmUgIgotICAgICAgICAgICAgICAgICAgPDwgY29udGV4dF9zbmFwc2hvdC0+YXJjaGl0ZWN0 dXJlOwotQEAgLTQ1Myw0ICs0NjAsNDcgQEAgc2l6ZV90IE1pbmlkdW1wQ29udGV4dE1JUFM2NFdy aXRlcjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0gICByZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsK LSB9Ci0gCi0rTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6Ok1pbmlkdW1wQ29udGV4dFBQQzY0 V3JpdGVyKCkKLSsgIDogTWluaWR1bXBDb250ZXh0V3JpdGVyKCksIGNvbnRleHRfKCkgewotKyAg ICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01pbmlkdW1wQ29udGV4dFBQQzY0OwotK30KLSsK LStNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6fk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVy KCkgPSBkZWZhdWx0OwotKwotK3ZvaWQgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6OkluaXRh bGl6ZUZyb21TbmFwc2hvdCgKLSsgICAgY29uc3QgQ1BVQ29udGV4dFBQQzY0KiBjb250ZXh0X3Nu YXBzaG90KSB7Ci0rICBEQ0hFQ0tfRVEoc3RhdGUoKSwga1N0YXRlTXV0YWJsZSk7Ci0rICBEQ0hF Q0tfRVEoY29udGV4dF8uY29udGV4dF9mbGFncywga01pbmlkdW1wQ29udGV4dFBQQzY0KTsKLSsK LSsgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGw7Ci0r Ci0rICBtZW1jcHkoY29udGV4dF8ucmVncywgY29udGV4dF9zbmFwc2hvdC0+cmVncywgc2l6ZW9m KGNvbnRleHRfLnJlZ3MpKTsKLSsgIGNvbnRleHRfLm5pcCA9IGNvbnRleHRfc25hcHNob3QtPm5p cDsKLSsgIGNvbnRleHRfLm1zciA9IGNvbnRleHRfc25hcHNob3QtPm1zcjsKLSsgIGNvbnRleHRf LmNjciA9IGNvbnRleHRfc25hcHNob3QtPmNjcjsKLSsgIGNvbnRleHRfLnhlciA9IGNvbnRleHRf c25hcHNob3QtPnhlcjsKLSsgIGNvbnRleHRfLmxuayA9IGNvbnRleHRfc25hcHNob3QtPmxuazsK LSsgIGNvbnRleHRfLmN0ciA9IGNvbnRleHRfc25hcHNob3QtPmN0cjsKLSsKLSsgIG1lbWNweShj b250ZXh0Xy5mcHJlZ3MsIGNvbnRleHRfc25hcHNob3QtPmZwcmVncywgc2l6ZW9mKGNvbnRleHRf LmZwcmVncykpOwotKyAgY29udGV4dF8uZnBzY3IgPSBjb250ZXh0X3NuYXBzaG90LT5mcHNjcjsK LSsKLSsgIG1lbWNweShjb250ZXh0Xy52cmVncy5zYXZlX3ZyLCBjb250ZXh0X3NuYXBzaG90LT52 cmVncy5zYXZlX3ZyLAotKyAgICAgICAgIHNpemVvZihjb250ZXh0Xy52cmVncy5zYXZlX3ZyKSk7 Ci0rICBtZW1jcHkoJmNvbnRleHRfLnZyZWdzLnNhdmVfdnNjciwgJmNvbnRleHRfc25hcHNob3Qt PnZyZWdzLnNhdmVfdnNjciwKLSsgICAgICAgICBzaXplb2YoY29udGV4dF8udnJlZ3Muc2F2ZV92 c2NyKSk7Ci0rICBjb250ZXh0Xy52cmVncy5zYXZlX3Zyc2F2ZSA9IGNvbnRleHRfc25hcHNob3Qt PnZyZWdzLnNhdmVfdnJzYXZlOwotK30KLSsKLStib29sIE1pbmlkdW1wQ29udGV4dFBQQzY0V3Jp dGVyOjpXcml0ZU9iamVjdCgKLSsgICAgRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIp IHsKLSsgIERDSEVDS19FUShzdGF0ZSgpLCBrU3RhdGVXcml0YWJsZSk7Ci0rICByZXR1cm4gZmls ZV93cml0ZXItPldyaXRlKCZjb250ZXh0Xywgc2l6ZW9mKGNvbnRleHRfKSk7Ci0rfQotKwotK3Np emVfdCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0r ICBEQ0hFQ0tfR0Uoc3RhdGUoKSwga1N0YXRlRnJvemVuKTsKLSsgIHJldHVybiBzaXplb2YoY29u dGV4dF8pOwotK30KLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dy aXRlci5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf Y29udGV4dF93cml0ZXIuaAotaW5kZXggZDRhYjkzNmVlLi4xZDIyZmM1OWMgMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0 X3dyaXRlci5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCi1AQCAtMzE1LDYgKzMxNSw0MyBAQCBjbGFzcyBNaW5p ZHVtcENvbnRleHRNSVBTNjRXcml0ZXIgZmluYWwgOiBwdWJsaWMgTWluaWR1bXBDb250ZXh0V3Jp dGVyIHsKLSAgIE1pbmlkdW1wQ29udGV4dE1JUFM2NCBjb250ZXh0XzsKLSB9OwotIAotK2NsYXNz IE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyIGZpbmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4 dFdyaXRlciB7Ci0rIHB1YmxpYzoKLSsgIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCk7Ci0r ICB+TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKSBvdmVycmlkZTsKLSsKLSsgIC8vISBcYnJp ZWYgSW5pdGFsaXplcyB0aGUgTWluaWR1bXBDb250ZXh0UFBDNjQgYmFzZWQgb24gXGEgY29udGV4 dF9zbmFwc2hvdC4KLSsgIC8vIQotKyAgLy8hIFxwYXJhbVtpbl0gY29udGV4dF9zbmFwc2hvdCBU aGUgY29udGV4dCBzbmFwc2hvdCB0byB1c2UgYXMgc291cmNlIGRhdGEuCi0rICAvLyEKLSsgIC8v ISBcbm90ZSBWYWxpZCBpbiAja1N0YXRlTXV0YWJsZS4gTm8gbXV0YXRpb24gb2YgY29udGV4dCgp IG1heSBiZSBkb25lIGJlZm9yZQotKyAgLy8hICAgICBjYWxsaW5nIHRoaXMgbWV0aG9kLCBhbmQg aXQgaXMgbm90IG5vcm1hbGx5IG5lY2Vzc2FyeSB0byBhbHRlcgotKyAgLy8hICAgICBjb250ZXh0 KCkgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4KLSsgIHZvaWQgSW5pdGFsaXplRnJvbVNuYXBz aG90KGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29udGV4dF9zbmFwc2hvdCk7Ci0rCi0rICAvLyEg XGJyaWVmIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBjb250ZXh0IHN0cnVjdHVyZSB0aGF0IHRo aXMgb2JqZWN0IHdpbGwKLSsgIC8vISAgICAgd3JpdGUuCi0rICAvLyEKLSsgIC8vISBcYXR0ZW50 aW9uIFRoaXMgcmV0dXJucyBhIG5vbi1gY29uc3RgIHBvaW50ZXIgdG8gdGhpcyBvYmplY3TigJlz IHByaXZhdGUKLSsgIC8vISAgICAgZGF0YSBzbyB0aGF0IGEgY2FsbGVyIGNhbiBwb3B1bGF0ZSB0 aGUgY29udGV4dCBzdHJ1Y3R1cmUgZGlyZWN0bHkuCi0rICAvLyEgICAgIFRoaXMgaXMgZG9uZSBi ZWNhdXNlIHByb3ZpZGluZyBzZXR0ZXIgaW50ZXJmYWNlcyB0byBlYWNoIGZpZWxkIGluIHRoZQot KyAgLy8hICAgICBjb250ZXh0IHN0cnVjdHVyZSB3b3VsZCBiZSB1bndpZWxkeSBhbmQgY3VtYmVy c29tZS4gQ2FyZSBtdXN0IGJlIHRha2VuCi0rICAvLyEgICAgIHRvIHBvcHVsYXRlIHRoZSBjb250 ZXh0IHN0cnVjdHVyZSBjb3JyZWN0bHkuIFRoZSBjb250ZXh0IHN0cnVjdHVyZQotKyAgLy8hICAg ICBtdXN0IG9ubHkgYmUgbW9kaWZpZWQgd2hpbGUgdGhpcyBvYmplY3QgaXMgaW4gdGhlICNrU3Rh dGVNdXRhYmxlCi0rICAvLyEgICAgIHN0YXRlLgotKyAgTWluaWR1bXBDb250ZXh0UFBDNjQqIGNv bnRleHQoKSB7IHJldHVybiAmY29udGV4dF87IH0KLSsKLSsgcHJvdGVjdGVkOgotKyAgLy8gTWlu aWR1bXBXcml0YWJsZToKLSsgIGJvb2wgV3JpdGVPYmplY3QoRmlsZVdyaXRlckludGVyZmFjZSog ZmlsZV93cml0ZXIpIG92ZXJyaWRlOwotKwotKyAgLy8gTWluaWR1bXBDb250ZXh0V3JpdGVyOgot KyAgc2l6ZV90IENvbnRleHRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7Ci0rCi0rIHByaXZhdGU6Ci0r ICBNaW5pZHVtcENvbnRleHRQUEM2NCBjb250ZXh0XzsKLSt9OwotKwotIH0gIC8vIG5hbWVzcGFj ZSBjcmFzaHBhZAotIAotICNlbmRpZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09O VEVYVF9XUklURVJfSF8KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjIGIvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5j YwotaW5kZXggMzIxNmE5MDZiLi5hOWZjYmU5ZDggMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNj Ci0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0X3dyaXRlcl90ZXN0LmNjCi1AQCAtMjEzLDYgKzIxMywyMSBAQCBURVNUKE1pbmlkdW1w Q29udGV4dFdyaXRlciwgTUlQUzY0X0Zyb21TbmFwc2hvdCkgewotICAgICAgIGNvbnRleHQsIEV4 cGVjdE1pbmlkdW1wQ29udGV4dE1JUFM2NCwga1NlZWQpOwotIH0KLSAKLStURVNUKE1pbmlkdW1w Q29udGV4dFdyaXRlciwgUFBDNjRfWmVyb3MpIHsKLSsgIEVtcHR5Q29udGV4dFRlc3Q8TWluaWR1 bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1wQ29udGV4dFBQQzY0PigKLSsgICAgRXhwZWN0 TWluaWR1bXBDb250ZXh0UFBDNjQpOwotK30KLSsKLStURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRl ciwgUFBDNjRfRnJvbVNuYXBzaG90KSB7Ci0rICBjb25zdGV4cHIgdWludDMyX3Qga1NlZWQgPSA2 NDsKLSsgIENQVUNvbnRleHRQUEM2NCBjb250ZXh0X3BwYzY0OwotKyAgQ1BVQ29udGV4dCBjb250 ZXh0OwotKyAgY29udGV4dC5wcGM2NCA9ICZjb250ZXh0X3BwYzY0OwotKyAgSW5pdGlhbGl6ZUNQ VUNvbnRleHRQUEM2NCgmY29udGV4dCwga1NlZWQpOwotKyAgRnJvbVNuYXBzaG90VGVzdDxNaW5p ZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAotKyAgICAgIGNv bnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0LCBrU2VlZCk7Ci0rfQotKwotIH0gIC8v IG5hbWVzcGFjZQotIH0gIC8vIG5hbWVzcGFjZSB0ZXN0Ci0gfSAgLy8gbmFtZXNwYWNlIGNyYXNo cGFkCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAv bWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKLWluZGV4IDA5NzRlM2Rk Zi4uYjcxZWM1ODgwIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv bWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwotKysrIGIvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwot QEAgLTEzNSw2ICsxMzUsOCBAQCBzdGQ6OnN0cmluZyBNaW5pZHVtcE1pc2NJbmZvRGVidWdCdWls ZFN0cmluZygpIHsKLSAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAibWlwcyI7Ci0g I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRFTCkKLSAgIHN0YXRpYyBjb25zdGV4cHIgY2hh ciBrQ1BVW10gPSAibWlwczY0IjsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotKyAg c3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJwcGM2NCI7Ci0gI2Vsc2UKLSAjZXJyb3Ig ZGVmaW5lIGtDUFUgZm9yIHRoaXMgQ1BVCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MgYi90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotaW5kZXgg N2ExYjI3NjNjLi5iZWRhOGRhOWUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKLUBAIC0xMTIsNiArMTEy LDExIEBAIHZvaWQgQ2FwdHVyZU1lbW9yeTo6UG9pbnRlZFRvQnlDb250ZXh0KGNvbnN0IENQVUNv bnRleHQmIGNvbnRleHQsCi0gICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0ZDo6c2l6ZShjb250 ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgewotICAgICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQo ZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdzW2ldKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxl Z2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKLSsgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3Rk OjpzaXplKGNvbnRleHQucHBjNjQtPnJlZ3MpOyArK2kpIHsKLSsgICAgTWF5YmVDYXB0dXJlTWVt b3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0LnBwYzY0LT5yZWdzW2ldKTsKLSsgIH0KLSAjZWxz ZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaCBiL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAotaW5kZXggODExYTcy MDk1Li5mNGY4Mzk4MWQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAotQEAgLTQzLDcgKzQzLDEwIEBA IGVudW0gQ1BVQXJjaGl0ZWN0dXJlIHsKLSAgIGtDUFVBcmNoaXRlY3R1cmVNSVBTRUwsCi0gCi0g ICAvLyEgXGJyaWVmIDY0LWJpdCBNSVBTRUwuCi0tICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwK LSsgIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTCwKLSsKLSsgIC8vISBcYnJpZWYgNjQtYml0IFBQ QzY0LgotKyAga0NQVUFyY2hpdGVjdHVyZVBQQzY0Ci0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2Ug Y3Jhc2hwYWQKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9jcHVfY29udGV4dC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2NwdV9jb250ZXh0LmNjCi1pbmRleCBjNzViNTU1NWUuLmFlYWRlNTc3YSAxMDA2NDQKLS0t LSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNj Ci0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4 dC5jYwotQEAgLTE2OSw2ICsxNjksOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpJbnN0cnVjdGlv blBvaW50ZXIoKSBjb25zdCB7Ci0gICAgICAgcmV0dXJuIGFybS0+cGM7Ci0gICAgIGNhc2Uga0NQ VUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICAgIHJldHVybiBhcm02NC0+cGM7Ci0rICAgIGNhc2Ug a0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotKyAgICAgIHJldHVybiBwcGM2NC0+bmlwOwotICAgICBk ZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAt MTg1LDYgKzE4Nyw4IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9pbnRlcigpIGNvbnN0 IHsKLSAgICAgICByZXR1cm4gYXJtLT5zcDsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJN NjQ6Ci0gICAgICAgcmV0dXJuIGFybTY0LT5zcDsKLSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJl UFBDNjQ6Ci0rICAgICAgcmV0dXJuIHBwYzY0LT5yZWdzWzFdOwotICAgICBkZWZhdWx0OgotICAg ICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAtMTk2LDYgKzIwMCw3 IEBAIGJvb2wgQ1BVQ29udGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKLSAgICAgY2FzZSBrQ1BVQXJj aGl0ZWN0dXJlWDg2XzY0OgotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKLSAgICAg Y2FzZSBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUw6Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZVBQQzY0OgotICAgICAgIHJldHVybiB0cnVlOwotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVY ODY6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTToKLWRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oIGIvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAotaW5kZXggZmIyM2M0 Njc5Li5lZWJlZGU2M2MgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1AQCAtMzUyLDYgKzM1MiwyNCBAQCBzdHJ1Y3Qg Q1BVQ29udGV4dE1JUFM2NCB7Ci0gICB1aW50NjRfdCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVm IEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FycnlpbmcgUFBDNjQgQ1BVIHN0YXRlLgotK3N0cnVjdCBD UFVDb250ZXh0UFBDNjQgewotKyAgdWludDY0X3QgbmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAg dWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRfdCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0r ICB1aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCBjdHI7Ci0rICBkb3VibGUgZnByZWdzWzMyXTsK LSsgIGRvdWJsZSBmcHNjcjsKLSsgIHN0cnVjdCB7Ci0rICAgIHVpbnQxMjhfc3RydWN0IHNhdmVf dnJbMzJdOwotKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZzY3I7Ci0rICAgIHVpbnQzMl90IHNh dmVfdnJzYXZlOwotKyAgfSB2cmVnczsKLSt9OwotKwotIC8vISBcYnJpZWYgQSBjb250ZXh0IHN0 cnVjdHVyZSBjYXBhYmxlIG9mIGNhcnJ5aW5nIHRoZSBjb250ZXh0IG9mIGFueSBzdXBwb3J0ZWQK LSAvLyEgICAgIENQVSBhcmNoaXRlY3R1cmUuCi0gc3RydWN0IENQVUNvbnRleHQgewotQEAgLTM4 Miw2ICs0MDAsNyBAQCBzdHJ1Y3QgQ1BVQ29udGV4dCB7Ci0gICAgIENQVUNvbnRleHRBUk02NCog YXJtNjQ7Ci0gICAgIENQVUNvbnRleHRNSVBTKiBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBT NjQqIG1pcHM2NDsKLSsgICAgQ1BVQ29udGV4dFBQQzY0KiBwcGM2NDsKLSAgIH07Ci0gfTsKLSAK LWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9jcHVfY29udGV4dF9saW51eC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAotaW5kZXggOWY0NmE0ODk3Li5hYTY3N2M0 ZWIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9jcHVfY29udGV4dF9saW51eC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oCi1AQCAtMTUsNiArMTUsNyBA QAotICNpZm5kZWYgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhfQ1BVX0NPTlRFWFRfTElOVVhfSF8K LSAjZGVmaW5lIENSQVNIUEFEX1NOQVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCi0g Ci0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgot ICNpbmNsdWRlICJzbmFwc2hvdC9jcHVfY29udGV4dC5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9s aW51eC9zaWduYWxfY29udGV4dC5oIgotQEAgLTE3NCw2ICsxNzUsNzggQEAgdm9pZCBJbml0aWFs aXplQ1BVQ29udGV4dE1JUFMoCi0gCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9NSVBTX0ZBTUlMWSB8 fCBET1hZR0VOCi0gCi0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKSB8fCBET1hZ R0VOCi0rCi0rLy8hIFxicmllZiBJbml0YWxpemVzIGEgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVy ZSBmcm9tIG5hdGl2ZSBjb250ZXh0Ci0rLy8hICAgICBzdHJ1Y3R1cmVzIG9uIExpbnV4LgotKy8v IQotKy8vISBccGFyYW1baW5dIHRocmVhZF9jb250ZXh0IFRoZSBuYXRpdmUgdGhyZWFkIGNvbnRl eHQuCi0rLy8hIFxwYXJhbVtpbl0gZmxvYXRfY29udGV4dCBUaGUgbmF0aXZlIGZsb2F0IGNvbnRl eHQuCi0rLy8hIFxwYXJhbVtpbl0gdmVjdG9yX2NvbnRleHQgVGhlIG5hdGl2ZSB2ZWN0b3IgY29u dGV4dC4KLSsvLyEgXHBhcmFtW291dF0gY29udGV4dCBUaGUgQ1BVQ29udGV4dFBQQzY0IHN0cnVj dHVyZSB0byBpbml0YWxpemUuCi0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLSt2b2lkIElu aXRpYWxpemVDUFVDb250ZXh0UFBDNjQoCi0rICAgIGNvbnN0IFRocmVhZENvbnRleHQ6OnQ2NF90 JiB0aHJlYWRfY29udGV4dCwKLSsgICAgY29uc3QgRmxvYXRDb250ZXh0OjpmNjRfdCYgZmxvYXRf Y29udGV4dCwKLSsgICAgY29uc3QgVmVjdG9yQ29udGV4dDo6djY0X3QmIHZlY3Rvcl9jb250ZXh0 LAotKyAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsKLSsgIG1l bWNweShjb250ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4dC5ncHIsIHNpemVvZihjb250ZXh0LT5y ZWdzKSk7Ci0rICBjb250ZXh0LT5uaXAgPSB0aHJlYWRfY29udGV4dC5uaXA7Ci0rICBjb250ZXh0 LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7Ci0rICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29u dGV4dC5jY3I7Ci0rICBjb250ZXh0LT54ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7Ci0rICBjb250 ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7Ci0rICBjb250ZXh0LT5jdHIgPSB0aHJlYWRf Y29udGV4dC5jdHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0 LmZwcmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBm bG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkr KykgewotKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2 NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rv cl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4 dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3Nb aV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVj dG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1 aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29yZH07Ci0rfQotKwotK3RlbXBsYXRl IDx0eXBlbmFtZSBUcmFpdHM+Ci0rdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KAotKyAg ICBjb25zdCBTaWduYWxUaHJlYWRDb250ZXh0NjQgJnRocmVhZF9jb250ZXh0LAotKyAgICBjb25z dCBTaWduYWxGbG9hdENvbnRleHQ2NCAmZmxvYXRfY29udGV4dCwKLSsgICAgY29uc3QgU2lnbmFs VmVjdG9yQ29udGV4dDY0ICZ2ZWN0b3JfY29udGV4dCwKLSsgICAgdHlwZW5hbWUgVHJhaXRzOjpD UFVDb250ZXh0KiBjb250ZXh0KSB7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFk X2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQtPnJlZ3MpKTsKLSsgIGNvbnRleHQtPm5pcCA9 IHRocmVhZF9jb250ZXh0Lm5pcDsKLSsgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1z cjsKLSsgIGNvbnRleHQtPmNjciA9IHRocmVhZF9jb250ZXh0LmNjcjsKLSsgIGNvbnRleHQtPnhl ciA9IHRocmVhZF9jb250ZXh0LnhlcjsKLSsgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0 LmxuazsKLSsgIGNvbnRleHQtPmN0ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKLSsKLSsgIG1lbWNw eShjb250ZXh0LT5mcHJlZ3MsIGZsb2F0X2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQtPmZw cmVncykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAg Zm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgewotKyAgICBjb250ZXh0LT52cmVncy5z YXZlX3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tp XVswXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsg ICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0r ICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNv bnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29u dGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2Ny LnZzY3Jfd29yZH07Ci0rfQotKwotKwotKyNlbmRpZgotKwotIH0gIC8vIG5hbWVzcGFjZSBpbnRl cm5hbAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAotZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVz dC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVn X3JlbmRlenZvdXNfdGVzdC5jYwotaW5kZXggZDMyYmQxOTM3Li4yZGQ1MzhjMmIgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19y ZW5kZXp2b3VzX3Rlc3QuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYwotQEAgLTE5Miw2ICsxOTIsOCBA QCB2b2lkIFRlc3RBZ2FpbnN0VGFyZ2V0KFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsK LSAgICAgICAgICAgICAgIGRldmljZSA9PSAwICYmIGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1l ID09ICJbdmRzb10iOwotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4NikKLSAgICAgICAgICAgc3Rh dGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC1nYXRlLnNvLiI7Ci0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSsgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFy IGtQcmVmaXhbXSA9ICJsaW51eC12ZHNvNjQuc28uIjsKLSAjZWxzZQotICAgICAgICAgICBzdGF0 aWMgY29uc3RleHByIGNoYXIga1ByZWZpeFtdID0gImxpbnV4LXZkc28uc28uIjsKLSAjZW5kaWYK LWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLWluZGV4IGNk NDBiM2IxMi4uNmJjZjIzYjZmIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi0rKysgYi90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25h cHNob3RfbGludXguY2MKLUBAIC0zMjMsNiArMzIzLDY5IEBAIGJvb2wgRXhjZXB0aW9uU25hcHNo b3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKLSAgICAgICByZWFkZXIsIGNv bnRleHRfYWRkcmVzcywgY29udGV4dF8ubWlwczY0KTsKLSB9Ci0gCi0rI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rCi0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLStz dGF0aWMgYm9vbCBSZWFkQ29udGV4dChQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAg ICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBkZXN0X2Nv bnRleHQpIHsKLSsgIGNvbnN0IFByb2Nlc3NNZW1vcnkqIG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5 KCk7Ci0rCi0rICBMaW51eFZNQWRkcmVzcyBncF9yZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJl c3MgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRl eHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCBncF9yZWdzKTsKLSsKLSsgIHR5cGVuYW1l IFRyYWl0czo6U2lnbmFsVGhyZWFkQ29udGV4dCB0aHJlYWRfY29udGV4dDsKLSsgIGlmICghbWVt b3J5LT5SZWFkKGdwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKHRocmVhZF9jb250ZXh0KSwgJnRocmVh ZF9jb250ZXh0KSkgewotKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3Mh IjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgTGludXhWTUFkZHJlc3MgZnBfcmVn c19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwg ZnBfcmVncyk7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9j b250ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQoZnBfcmVnc19hZGRyZXNzLCBzaXplb2YoZnBf Y29udGV4dCksICZmcF9jb250ZXh0KSkgewotKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBy ZWFkIGZwX3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgTGludXhWTUFk ZHJlc3Mgdl9yZWdzX3B0cl9hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0 czo6TUNvbnRleHQsIHZteF9yZXNlcnZlKSArIDg7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNp Z25hbFZlY3RvckNvbnRleHQgdl9jb250ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQodl9yZWdz X3B0cl9hZGRyZXNzLCBzaXplb2Yodl9jb250ZXh0KSwgJnZfY29udGV4dCkpIHsKLSsgICAgTE9H KEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCB2X3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwot KyAgfQotKwotKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRo cmVhZF9jb250ZXh0LCBmcF9jb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 X2NvbnRleHQsIGRlc3RfY29udGV4dCk7Ci0rCi0rICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rdGVt cGxhdGU8PgotK2Jvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4 dFRyYWl0czY0PigKLSsgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4 Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgewotKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0g a0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotKyAgY29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlv bl8ucHBjNjQ7Ci0rCi0rICByZXR1cm4gaW50ZXJuYWw6OlJlYWRDb250ZXh0PENvbnRleHRUcmFp dHM2ND4oCi0rICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsK LSt9Ci0rCi0rdGVtcGxhdGU8PgotK2Jvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENv bnRleHQ8Q29udGV4dFRyYWl0czMyPigKLSsgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIs Ci0rICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgewotKyAgLy8gUFBDNjQgaXMg NjQtYml0Ci0rICByZXR1cm4gZmFsc2U7Ci0rfQotKwotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2 X0ZBTUlMWQotIAotIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9j ZXNzUmVhZGVyTGludXgqIHByb2Nlc3NfcmVhZGVyLAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51 eC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0 aW9uX3NuYXBzaG90X2xpbnV4LmgKLWluZGV4IGVhMGNkMjEwNi4uZTQyZGY1MjBmIDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0 aW9uX3NuYXBzaG90X2xpbnV4LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCi1AQCAtODQsNiArODQs OCBAQCBjbGFzcyBFeGNlcHRpb25TbmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIEV4Y2VwdGlv blNuYXBzaG90IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgICBD UFVDb250ZXh0TUlQUyBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OwotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBDUFVDb250ZXh0UFBDNjQg cHBjNjQ7Ci0gI2VuZGlmCi0gICB9IGNvbnRleHRfdW5pb25fOwotICAgQ1BVQ29udGV4dCBjb250 ZXh0XzsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYyBiL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90 ZXN0LmNjCi1pbmRleCBjMTcxNzBiNDMuLmI2YTcxNGNjNiAxMDA2NDQKLS0tLSBhL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9s aW51eF90ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYwotQEAgLTI5Niw3ICsyOTYs MjggQEAgdm9pZCBFeHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3Qg TmF0aXZlQ1BVQ29udGV4dCYgZXhwZWN0ZWQpIHsKLSAgICAgICAgICAgICAwKTsKLSAjdW5kZWYg Q1BVX0FSQ0hfTkFNRQotIH0KLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK LSt1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRleHRfdDsKLSsKLSt2b2lkIEluaXRpYWxp emVDb250ZXh0KE5hdGl2ZUNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsgIGZvciAoc2l6ZV90IHJl ZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgewotKyAgICBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzW3JlZ10gPSByZWc7Ci0rICB9Ci0rCi0rICBtZW1zZXQoJmNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3MsIDQ0LAotKyAgICAgIHNpemVvZihjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz KSk7Ci0rfQotIAotK3ZvaWQgRXhwZWN0Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWws IGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGV4cGVjdGVkKSB7Ci0rICBFWFBFQ1RfRVEoYWN0dWFs LmFyY2hpdGVjdHVyZSwga0NQVUFyY2hpdGVjdHVyZVBQQzY0KTsKLSsKLSsgIGZvciAoc2l6ZV90 IHJlZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgewotKyAgICBFWFBFQ1RfRVEoYWN0dWFsLnBwYzY0 LT5yZWdzW3JlZ10sIGV4cGVjdGVkLnVjX21jb250ZXh0LmdwX3JlZ3NbcmVnXSk7Ci0rICB9Ci0r Ci0rICBFWFBFQ1RfRVEobWVtY21wKGFjdHVhbC5wcGM2NC0+ZnByZWdzLCBleHBlY3RlZC51Y19t Y29udGV4dC5mcF9yZWdzLAotKyAgICAgICAgICAgIHNpemVvZihhY3R1YWwucHBjNjQtPmZwcmVn cykpLCAwKTsKLSt9Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3Jl YWRlcl9saW51eC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi1pbmRleCBlZTI0NmU4YmMuLjk1NTVkY2UwNCAx MDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYwotQEAgLTEwOCw2ICsx MDgsOCBAQCB2b2lkIFByb2Nlc3NSZWFkZXJMaW51eDo6VGhyZWFkOjpJbml0aWFsaXplU3RhY2so UHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIpIHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKQotICAgc3RhY2tfcG9pbnRlciA9IHJlYWRlci0+SXM2NEJpdCgpID8gdGhyZWFk X2luZm8udGhyZWFkX2NvbnRleHQudDY0LnJlZ3NbMjldCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50MzIucmVnc1syOV07 Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBzdGFja19wb2ludGVy ID0gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LmdwclsxXTsKLSAjZWxzZQotICNlcnJv ciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmggYi90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi1pbmRleCAxMTAwMjQ2 ODAuLmExZjJkYTI1OSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLUBAIC00MjIsNiAr NDIyLDg5IEBAIHN0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNvbnRleHQ8Q29udGV4dFRyYWl0czY0 PiwgbWNvbnRleHQuZnByZWdzKSA9PQotICAgICAgICAgICAgICAgImNvbnRleHQgb2Zmc2V0IG1p c21hdGNoIik7Ci0gI2VuZGlmCi0gCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCi0rCi0rc3RydWN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZWdz WzMyXTsKLSsgIHVpbnQ2NF90IG5pcDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IG9y aWdfcjM7Ci0rICB1aW50NjRfdCBjdHI7Ci0rICB1aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCB4 ZXI7Ci0rICB1aW50NjRfdCBjY3I7Ci0rICB1aW50NjRfdCBzb2Z0ZTsKLSsgIHVpbnQ2NF90IHRy YXA7Ci0rICB1aW50NjRfdCBkYXI7Ci0rICB1aW50NjRfdCBkc2lzcjsKLSsgIHVpbnQ2NF90IHJl c3VsdDsKLSsgIHVpbnQ2NF90IGRzY3I7Ci0rICB1aW50NjRfdCBmcHIwWzNdOwotK307Ci0rCi0r c3RydWN0IFNpZ25hbEZsb2F0Q29udGV4dDY0IHsKLSsgIGRvdWJsZSByZWdzWzMyXTsKLSsgIGRv dWJsZSBmcHNjcjsKLSt9OwotKwotK3N0cnVjdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgewotKyAg aW50MzJfdCB2cnJlZ3NbMzJdWzRdOwotKyAgc3RydWN0IHsKLSsgICAgaW50MzJfdCBfX3BhZFsz XTsKLSsgICAgaW50MzJfdCB2c2NyX3dvcmQ7Ci0rICB9IHZzY3I7Ci0rICBpbnQzMl90IHZyc2F2 ZTsKLSsgIGludDMyX3QgX19wYWRbM107Ci0rfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygx NikpKTsKLSsKLSsKLSsjcHJhZ21hIHBhY2socG9wKQotK3N0cnVjdCBNQ29udGV4dDY0IHsKLSsg IHVpbnQ2NF90IHJlc2VydmVkWzRdOwotKyAgaW50MzJfdCBzaWduYWw7Ci0rICBpbnQzMl90IF9f cGFkMDsKLSsgIHVpbnQ2NF90IGhhbmRsZXI7Ci0rICB1aW50NjRfdCBvbGRtYXNrOwotKyAgdWlu dDY0X3QgcHRfcmVnc19wdHI7Ci0rICBTaWduYWxUaHJlYWRDb250ZXh0NjQgZ3BfcmVnczsKLSsg IFNpZ25hbEZsb2F0Q29udGV4dDY0ICBmcF9yZWdzOwotKyAgU2lnbmFsVmVjdG9yQ29udGV4dDY0 ICp2X3JlZ3M7Ci0rICBpbnQ2NF90IHZteF9yZXNlcnZlWzY5XTsKLSt9OwotKwotK3N0cnVjdCBD b250ZXh0VHJhaXRzNjQgOiBwdWJsaWMgVHJhaXRzNjQgewotKyAgdXNpbmcgTUNvbnRleHQgPSBN Q29udGV4dDY0OwotKyAgdXNpbmcgU2lnbmFsVGhyZWFkQ29udGV4dCA9IFNpZ25hbFRocmVhZENv bnRleHQ2NDsKLSsgIHVzaW5nIFNpZ25hbEZsb2F0Q29udGV4dCA9IFNpZ25hbEZsb2F0Q29udGV4 dDY0OwotKyAgdXNpbmcgU2lnbmFsVmVjdG9yQ29udGV4dCA9IFNpZ25hbFZlY3RvckNvbnRleHQ2 NDsKLSsgIHVzaW5nIENQVUNvbnRleHQgPSBDUFVDb250ZXh0UFBDNjQ7Ci0rfTsKLSsKLStzdHJ1 Y3QgQ29udGV4dFRyYWl0czMyIDogcHVibGljIFRyYWl0czMyIHt9OwotKwotK3N0cnVjdCBVQ29u dGV4dCB7Ci0rICB1aW50NjRfdCBmbGFnczsKLSsgIHVpbnQ2NF90IGxpbms7Ci0rICBTaWduYWxT dGFjazxDb250ZXh0VHJhaXRzNjQ+IHN0YWNrOwotKyAgU2lnc2V0PENvbnRleHRUcmFpdHM2ND4g c2lnbWFzazsKLSsgIE1Db250ZXh0NjQgbWNvbnRleHQ7Ci0rfTsKLSsjcHJhZ21hIHBhY2socHVz aCwgMSkKLSsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihVQ29udGV4dCkgPT0gc2l6ZW9mKHVjb250 ZXh0X3QpLAotKyAgICAgICAgICAgICAgInVjb250ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0 YXRpY19hc3NlcnQoc2l6ZW9mKE1Db250ZXh0NjQpID09IHNpemVvZihtY29udGV4dF90KSwKLSsg ICAgICAgICAgICAgICJtY29udGV4dF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0 KHNpemVvZihTaWduYWxUaHJlYWRDb250ZXh0NjQpID09IHNpemVvZihncmVnc2V0X3QpLAotKyAg ICAgICAgICAgICAgImdyZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChz aXplb2YoU2lnbmFsRmxvYXRDb250ZXh0NjQpID09IHNpemVvZihmcHJlZ3NldF90KSwKLSsgICAg ICAgICAgICAgICJmcHJlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNp emVvZihTaWduYWxWZWN0b3JDb250ZXh0NjQpID09IHNpemVvZih2cnJlZ3NldF90KSwKLSsgICAg ICAgICAgICAgICJ2cnJlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9m ZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgPT0KLSsgICAgICAgICAgICAgIG9mZnNldG9mKHVj b250ZXh0X3QsIHVjX21jb250ZXh0KSwgIm1jb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotK3N0 YXRpY19hc3NlcnQob2Zmc2V0b2YoTUNvbnRleHQ2NCwgZ3BfcmVncykgPT0KLSsgICAgICAgICAg ICAgIG9mZnNldG9mKG1jb250ZXh0X3QsIGdwX3JlZ3MpLCAiZ3BfcmVncyBvZmZzZXQgbWlzbWF0 Y2giKTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZB TUlMWQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYwotaW5kZXggYTk5 ZGEzZTRiLi4wM2I5NzMwODMgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKLSsrKyBiL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9s aW51eC5jYwotQEAgLTIwNCw2ICsyMDQsOCBAQCBDUFVBcmNoaXRlY3R1cmUgU3lzdGVtU25hcHNo b3RMaW51eDo6R2V0Q1BVQXJjaGl0ZWN0dXJlKCkgY29uc3QgewotICNlbGlmIGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4gcHJvY2Vzc19yZWFkZXJfLT5JczY0Qml0KCkg PyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IGtDUFVBcmNoaXRlY3R1cmVNSVBTRUw7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotICNlbHNl Ci0gI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKLSAjZW5kaWYKLUBAIC0yMTksNiAr MjIxLDkgQEAgdWludDMyX3QgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVUmV2aXNpb24oKSBjb25z dCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBs ZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiAwOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0 dXJuIDA7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQotICNlbmRp ZgotQEAgLTIzOSw2ICsyNDQsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hvdExpbnV4OjpD UFVWZW5kb3IoKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkK LSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiBzdGQ6OnN0cmluZygp OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBp bXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7Ci0gI2Vsc2UKLSAj ZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQotICNlbmRpZgotQEAgLTM3Miw2ICszODAs OSBAQCBib29sIFN5c3RlbVNuYXBzaG90TGludXg6Ok5YRW5hYmxlZCgpIGNvbnN0IHsKLSAjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUg b24gTUlQUwotICAgcmV0dXJuIGZhbHNlOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIGZh bHNlOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFN SUxZCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvdGVzdF9tb2R1bGVzLmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvdGVzdF9tb2R1bGVzLmNjCi1pbmRleCBiMjQ1MGMyMDYuLjdiYTc4YjJhZSAx MDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L3Rlc3RfbW9kdWxlcy5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvdGVzdF9tb2R1bGVzLmNjCi1AQCAtMTEwLDYgKzExMCw4IEBAIGJvb2wgV3Jp dGVUZXN0TW9kdWxlKGNvbnN0IGJhc2U6OkZpbGVQYXRoJiBtb2R1bGVfcGF0aCwKLSAgIG1vZHVs ZS5laGRyLmVfbWFjaGluZSA9IEVNX0FBUkNINjQ7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTRUwpIHx8IGRlZmluZWQoQVJDSF9DUFVfTUlQUzY0RUwpCi0gICBtb2R1bGUuZWhkci5lX21h Y2hpbmUgPSBFTV9NSVBTOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0rICBtb2R1 bGUuZWhkci5lX21hY2hpbmUgPSBFTV9QUEM2NDsKLSAjZW5kaWYKLSAKLSAgIG1vZHVsZS5laGRy LmVfdmVyc2lvbiA9IEVWX0NVUlJFTlQ7Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjIGIvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90 X2xpbnV4LmNjCi1pbmRleCBlM2UyYmViZGQuLjhlZjQzNzUyZSAxMDA2NDQKLS0tLSBhL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9s aW51eC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAtMTg2LDYgKzE4NiwxNCBAQCBib29sIFRo cmVhZFNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNz X3JlYWRlciwKLSAgICAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmYzMiwK LSAgICAgICAgIGNvbnRleHRfLm1pcHNlbCk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCi0rICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0 dXJlUFBDNjQ7Ci0rICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsKLSsg IEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0PigKLSsgICAgICB0aHJl YWQudGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LAotKyAgICAgIHRocmVhZC50aHJlYWRf aW5mby5mbG9hdF9jb250ZXh0LmY2NCwKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8udmVjdG9y X2NvbnRleHQudjY0LAotKyAgICAgIGNvbnRleHRfLnBwYzY0KTsKLSAjZWxzZQotICNlcnJvciBQ b3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oIGIvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLWlu ZGV4IDQ0Y2M2ZjZkOS4uZDQxMzY0NjFlIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLSsrKyBi L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFw c2hvdF9saW51eC5oCi1AQCAtNjgsNiArNjgsOCBAQCBjbGFzcyBUaHJlYWRTbmFwc2hvdExpbnV4 IGZpbmFsIDogcHVibGljIFRocmVhZFNuYXBzaG90IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKQotICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7Ci0gICAgIENQVUNvbnRl eHRNSVBTNjQgbWlwczY0OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQot KyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbmV0L2h0dHBfdHJhbnNwb3J0X2xpYmN1cmwuY2MKLSsrKyBiL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbmV0L2h0dHBfdHJhbnNwb3J0X2xpYmN1cmwuY2MK LUBAIC0yMzYsNiArMjM2LDEyIEBACi0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9CSUdfRU5ESUFO KQotICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIgYXJjaFtdID0gImFhcmNoNjRfYmUiOwotICNl bmRpZgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaWYgZGVmaW5lZChBUkNIX0NQ VV9MSVRUTEVfRU5ESUFOKQotKyAgICBzdGF0aWMgY29uc3RleHByIGNoYXIgYXJjaFtdID0gInBw YzY0bGUiOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfQklHX0VORElBTikKLSsgICAgc3RhdGlj IGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJwcGM2NCI7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAjZXJy b3IgUG9ydAotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwotaW5kZXggZDNkNWViZGZi Li4zZmQ3MzBjYjUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91 dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwotQEAgLTU2LDYgKzU2LDEx IEBAIGJvb2wgQXV4aWxpYXJ5VmVjdG9yOjpSZWFkKFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rp b24pIHsKLSAgICAgaWYgKHR5cGUgPT0gQVRfSUdOT1JFKSB7Ci0gICAgICAgY29udGludWU7Ci0g ICAgIH0KLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIGlmICh0eXBl ID09IEFUX0lHTk9SRVBQQykgewotKyAgICAgIGNvbnRpbnVlOwotKyAgICB9Ci0rI2VuZGlmCi0g ICAgIGlmICghTWFwSW5zZXJ0T3JSZXBsYWNlKCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0 cikpIHsKLSAgICAgICBMT0coRVJST1IpIDw8ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7Ci0gICAg ICAgcmV0dXJuIGZhbHNlOwotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvcHRyYWNlci5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbGludXgvcHRyYWNlci5jYwotaW5kZXggNTU3ZTBkMzYzLi4wOGFlNDM0YjggMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIu Y2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNl ci5jYwotQEAgLTM5OCw2ICszOTgsNjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlk LAotICAgcmV0dXJuIHRydWU7Ci0gfQotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQotKy8vIFBQQzY0IGhhcyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2Ug Mi42LjI3IChldmVuIGJlZm9yZSB4ODYgaGFkIGl0KS4KLSsvLyBUaGF0IG1lYW5zIHdlIGNhbiBz aW1wbHkgdXNlIFBUUkFDRV9HRVRSRUdFU0VULgotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0 aW5hdGlvbj4KLStib29sIEdldFJlZ2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGlu YXRpb24qIGRlc3QsIGJvb2wgY2FuX2xvZykgewotKyAgaW92ZWMgaW92OwotKyAgaW92Lmlvdl9i YXNlID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZGVzdCk7Ci0rICBpb3YuaW92X2xlbiA9IHNp emVvZigqZGVzdCk7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRl cnByZXRfY2FzdDx2b2lkKj4oc2V0KSwgJmlvdikgIT0gMCkgewotKyAgICBQTE9HX0lGKEVSUk9S LCBjYW5fbG9nKSA8PCAicHRyYWNlIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKyAgaWYg KGlvdi5pb3ZfbGVuICE9IHNpemVvZigqZGVzdCkpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5f bG9nKSA8PCAiVW5leHBlY3RlZCByZWdpc3RlcnMgc2l6ZSI7Ci0rICAgIHJldHVybiBmYWxzZTsK LSsgIH0KLSsgIHJldHVybiB0cnVlOwotK30KLSsKLStib29sIEdldFZlY3RvclJlZ2lzdGVyczY0 KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNv bnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJl dHVybiBHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9s b2cpOwotK30KLSsKLStib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAg cmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2Fu X2xvZyk7Ci0rfQotKwotK2Jvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSsgICAgICAg ICAgICAgICAgICAgICBjb25zdCBUaHJlYWRDb250ZXh0JiBjb250ZXh0LAotKyAgICAgICAgICAg ICAgICAgICAgIExpbnV4Vk1BZGRyZXNzKiBhZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAg IGJvb2wgY2FuX2xvZykgewotKyAgLy8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhS RUFEX0FSRUEgc2luY2UgdGhlIHRocmVhZCBwb2ludGVyCi0rICAvLyBpcyBzdG9yZWQgaW4gR1BS IDEzLgotKyAgVGhyZWFkQ29udGV4dDo6dDY0X3QgdGM7Ci0rICBpZiAoIUdldFJlZ2lzdGVyU2V0 KHRpZCwgTlRfUFJTVEFUVVMsICZ0YywgY2FuX2xvZykpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBj YW5fbG9nKSA8PCAiVW5hYmxlIHRvIGdldCB0aHJlYWQgcG9pbnRlciEiOwotKyAgICByZXR1cm4g ZmFsc2U7Ci0rICB9Ci0rCi0rICAqYWRkcmVzcyA9IHRjLmdwclsxM107Ci0rCi0rICByZXR1cm4g dHJ1ZTsKLSt9Ci0rCi0rLy8gU3R1YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2Fi bGUgb24gUFBDNjQKLStib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1 cm4gZmFsc2U7IH0KLStib29sIEdldFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCi0rICAgICAgICAg ICAgICAgICAgICAgY29uc3QgVGhyZWFkQ29udGV4dCAmY29udGV4dCwKLSsgICAgICAgICAgICAg ICAgICAgICBMaW51eFZNQWRkcmVzcyAqYWRkcmVzcywKLSsgICAgICAgICAgICAgICAgICAgICBi b29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4K LSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC00OTQsNiArNTUyLDkgQEAgYm9v bCBQdHJhY2VyOjpHZXRUaHJlYWRJbmZvKHBpZF90IHRpZCwgVGhyZWFkSW5mbyogaW5mbykgewot ICAgaWYgKGlzXzY0X2JpdF8pIHsKLSAgICAgcmV0dXJuIEdldEdlbmVyYWxQdXJwb3NlUmVnaXN0 ZXJzNjQodGlkLCAmaW5mby0+dGhyZWFkX2NvbnRleHQsIGNhbl9sb2dfKSAmJgotICAgICAgICAg ICAgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPmZsb2F0X2NvbnRleHQs IGNhbl9sb2dfKSAmJgotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAg ICAgICAgIEdldFZlY3RvclJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnZlY3Rvcl9jb250ZXh0LCBj YW5fbG9nXykgJiYKLSsjZW5kaWYKLSAgICAgICAgICAgIEdldFRocmVhZEFyZWE2NCh0aWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+dGhyZWFkX2NvbnRleHQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmluZm8tPnRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3Ms Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90 aHJlYWRfaW5mby5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90 aHJlYWRfaW5mby5oCi1pbmRleCA1YjU1YzI0YTcuLmRlYTBkMWYzOSAxMDA2NDQKLS0tLSBhL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotKysr IGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5o Ci1AQCAtMjgsNiArMjgsMTAgQEAKLSAjaW5jbHVkZSA8YW5kcm9pZC9hcGktbGV2ZWwuaD4KLSAj ZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rI2luY2x1ZGUg PHN5cy91Y29udGV4dC5oPgotKyNlbmRpZgotKwotIG5hbWVzcGFjZSBjcmFzaHBhZCB7Ci0gCi0g Ly8hIFxicmllZiBUaGUgc2V0IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMgZm9yIGFuIGFy Y2hpdGVjdHVyZSBmYW1pbHkuCi1AQCAtNzksNiArODMsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0 IHsKLSAgICAgdWludDMyX3QgY3AwX3N0YXR1czsKLSAgICAgdWludDMyX3QgY3AwX2NhdXNlOwot ICAgICB1aW50MzJfdCBwYWRkaW5nMV87Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCi0rICAgIC8vIFBQQzY0IGlzIDY0LWJpdAotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0g I2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMTMyLDYgKzEzOCwyMSBAQCB1bmlv biBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDY0X3QgY3AwX2JhZHZhZGRyOwotICAgICB1aW50 NjRfdCBjcDBfc3RhdHVzOwotICAgICB1aW50NjRfdCBjcDBfY2F1c2U7Ci0rI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFJlZmxlY3RzIHN0cnVjdCBwdF9yZWdz IGluIGFzbS9wdHJhY2UuaC4KLSsgICAgdWludDY0X3QgZ3ByWzMyXTsKLSsgICAgdWludDY0X3Qg bmlwOwotKyAgICB1aW50NjRfdCBtc3I7Ci0rICAgIHVpbnQ2NF90IG9yaWdfZ3ByMzsKLSsgICAg dWludDY0X3QgY3RyOwotKyAgICB1aW50NjRfdCBsbms7Ci0rICAgIHVpbnQ2NF90IHhlcjsKLSsg ICAgdWludDY0X3QgY2NyOwotKyAgICB1aW50NjRfdCBzb2Z0ZTsKLSsgICAgdWludDY0X3QgdHJh cDsKLSsgICAgdWludDY0X3QgZGFyOwotKyAgICB1aW50NjRfdCBkc2lzcjsKLSsgICAgdWludDY0 X3QgcmVzdWx0OwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9Y ODZfRkFNSUxZCi1AQCAtMTQzLDYgKzE2NCw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgewotICAg dXNpbmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9IHVzZXJfcmVnczsKLSAjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKQotIC8vIE5vIGFwcHJvcHJpYXRlIE5hdGl2ZVRocmVhZHNDb250 ZXh0IHR5cGUgYXZhaWxhYmxlIGZvciBNSVBTCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCi0rICB1c2luZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0gc3RydWN0IHB0X3JlZ3M7 Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkg fHwgQVJDSF9DUFVfQVJNNjQKLUBAIC0yMTgsNiArMjQxLDkgQEAgdW5pb24gRmxvYXRDb250ZXh0 IHsKLSAgICAgfSBmcHJlZ3NbMzJdOwotICAgICB1aW50MzJfdCBmcGNzcjsKLSAgICAgdWludDMy X3QgZnB1X2lkOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAv LyBDcmFzaHBhZCdzIFBQQyBzdXBwb3J0IGlzIDY0LWJpdCBvbmx5LCBzbyB0aGlzCi0rICAgIC8v IDMyYml0LW9ubHkgc3RydWN0IGlzIGRlY2xhcmVkIGFzIGVtcHR5LgotICNlbHNlCi0gI2Vycm9y IFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMjUyLDYgKzI3OCwx MCBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotICAgICBkb3VibGUgZnByZWdzWzMyXTsKLSAgICAg dWludDMyX3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90IGZwdV9pZDsKLSsjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUmVmbGVjdHMgZnByZWdzZXRfdCBpbiBzeXMv dWNvbnRleHQuaAotKyAgICBkb3VibGUgZnByZWdzWzMyXTsKLSsgICAgZG91YmxlIGZwc2NyOwot ICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1A QCAtMjgwLDYgKzMxMCw4IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0gICBzdGF0aWNfYXNzZXJ0 KHNpemVvZihmNjQpID09IHNpemVvZih1c2VyX2Zwc2ltZF9zdHJ1Y3QpLCAiU2l6ZSBtaXNtYXRj aCIpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gLy8gTm8gYXBwcm9w cmlhdGUgZmxvYXRpbmcgcG9pbnQgY29udGV4dCBuYXRpdmUgdHlwZSBmb3IgYXZhaWxhYmxlIE1J UFMuCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBzdGF0aWNfYXNz ZXJ0KHNpemVvZihmNjQpID09IHNpemVvZihmcHJlZ3NldF90KSwgIlNpemUgbWlzbWF0Y2giKTsK LSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2Ci1AQCAtMjg3 LDYgKzMxOSwyNiBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotIHN0YXRpY19hc3NlcnQoc3RkOjpp c19zdGFuZGFyZF9sYXlvdXQ8RmxvYXRDb250ZXh0Pjo6dmFsdWUsCi0gICAgICAgICAgICAgICAi Tm90IHN0YW5kYXJkIGxheW91dCIpOwotIAotKy8vISBcYnJpZWYgVGhlIHZlY3RvciByZWdpc3Rl cnMgdXNlZCBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWlseQotK3VuaW9uIFZlY3RvckNvbnRleHQg ewotKyAgc3RydWN0IHYzMl90IHt9IHYzMjsKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCi0rICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKSAvLyBWZWN0b3IgY29u dGV4dCBtdXN0IGJlIGRvdWJsZXdvcmQgYWxpZ25lZC4KLSsjZW5kaWYKLSsgIHN0cnVjdCB2NjRf dCB7Ci0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBSZWZsZWN0 cyB2cnJlZ3NldF90IGluIHN5cy91Y29udGV4dC5oCi0rICAgIHVpbnQzMl90IHZycmVnc1szMl1b NF07Ci0rICAgIHN0cnVjdCB7Ci0rICAgICAgdWludDMyX3QgX19wYWRbM107Ci0rICAgICAgdWlu dDMyX3QgdnNjcl93b3JkOwotKyAgICB9IHZzY3I7Ci0rICAgIHVpbnQzMl90IHZyc2F2ZTsKLSsg ICAgdWludDMyX3QgX19wYWRbM107Ci0rI2VuZGlmCi0rICB9IHY2NDsKLSt9OwotKwotIC8vISBc YnJpZWYgQSBjb2xsZWN0aW9uIG9mIGBwdHJhY2VgLWFibGUgaW5mb3JtYXRpb24gYWJvdXQgYSB0 aHJlYWQuCi0gc3RydWN0IFRocmVhZEluZm8gewotICAgVGhyZWFkSW5mbygpOwotQEAgLTI5OCw2 ICszNTAsOSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gICAvLyEgXGJyaWVmIFRoZSBmbG9hdGlu ZyBwb2ludCByZWdpc3RlcnMgZm9yIHRoZSB0aHJlYWQuCi0gICBGbG9hdENvbnRleHQgZmxvYXRf Y29udGV4dDsKLSAKLSsgIC8vISBcYnJpZWYgKE9wdGlvbmFsKSBUaGUgdmVjdG9yIHJlZ2lzdGVy cyB1c2VkIGZvciB0aGUgdGhyZWFkLgotKyAgVmVjdG9yQ29udGV4dCB2ZWN0b3JfY29udGV4dDsK LSsKLSAgIC8vISBcYnJpZWYgVGhlIHRocmVhZC1sb2NhbCBzdG9yYWdlIGFkZHJlc3MgZm9yIHRo ZSB0aHJlYWQuCi0gICBMaW51eFZNQWRkcmVzcyB0aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNz OwotIH07Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9t aXNjL2NhcHR1cmVfY29udGV4dC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRp bC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi1pbmRleCBkMjFhMjRmMTkuLmFjYzMyNTM0OSAxMDA2 NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJl X2NvbnRleHQuaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNj L2NhcHR1cmVfY29udGV4dC5oCi1AQCAtNjksNiArNjksNyBAQCB1c2luZyBOYXRpdmVDUFVDb250 ZXh0ID0gdWNvbnRleHRfdDsKLSAvLyEgICAgIG1hY09TL0xpbnV4L0Z1Y2hzaWEgfCB4ODZfNjQg ICAgICAgfCBgJSVyZGlgCi0gLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgQVJNL0FSTTY0 ICAgIHwgYHIwYC9geDBgCi0gLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgTUlQUy9NSVBT NjQgIHwgYCRhMGAKLSsvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBQUEM2NCAgICAgICAg fCBgcjNgCi0gLy8hCi0gLy8hICAgICBBZGRpdGlvbmFsbHksIHRoZSB2YWx1ZSBgTFJgIG9uIEFS TS9BUk02NCB3aWxsIGJlIHRoZSByZXR1cm4gYWRkcmVzcyBvZgotIC8vISAgICAgdGhpcyBmdW5j dGlvbi4KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21p c2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKLWluZGV4IDUyMjE1ZWU1ZC4uYjNl NGEzZWM3IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9t aXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKLUBAIC0zMiw3ICszMiw3 IEBACi0gICAuYmFsaWduIDQsIDB4MAotICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MLCAl ZnVuY3Rpb24KLSAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTDIsICVmdW5jdGlvbgotLSNl bGlmIGRlZmluZWQoX19taXBzX18pCi0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgLmJhbGlnbiA0LCAweDAKLSAjZW5kaWYKLSAKLUBAIC00MjMs NCArNDIzLDIxNCBAQCBDQVBUVVJFQ09OVEVYVF9TWU1CT0wyOgotICAganIgJHJhCi0gCi0gICAu c2V0IGF0Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gU3RvcmUgcjAtcjMx Ci0rICBzdGQgMCwgMHhlOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMF0K LSsgIHN0ZCAxLCAweGYwKDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXQot KyAgc3RkIDIsIDB4ZjgoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzJdCi0r ICAvLyBub3RlIHRoYXQgcjMncyBvcmlnaW5hbCB2YWx1ZSB3YXMgbG9zdAotKyAgc3RkIDMsIDB4 MTAwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzNdCi0rICBzdGQgNCwgMHgx MDgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNF0KLSsgIHN0ZCA1LCAweDEx MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s1XQotKyAgc3RkIDYsIDB4MTE4 KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzZdCi0rICBzdGQgNywgMHgxMjAo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbN10KLSsgIHN0ZCA4LCAweDEyOCgz KSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s4XQotKyAgc3RkIDksIDB4MTMwKDMp ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzldCi0rICBzdGQgMTAsIDB4MTM4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTBdCi0rICBzdGQgMTEsIDB4MTQwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTFdCi0rICBzdGQgMTIsIDB4MTQ4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTJdCi0rICBzdGQgMTMsIDB4MTUwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTNdCi0rICBzdGQgMTQsIDB4MTU4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTRdCi0rICBzdGQgMTUsIDB4MTYwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTVdCi0rICBzdGQgMTYsIDB4MTY4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTZdCi0rICBzdGQgMTcsIDB4MTcwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTddCi0rICBzdGQgMTgsIDB4MTc4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMThdCi0rICBzdGQgMTksIDB4MTgwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTldCi0rICBzdGQgMjAsIDB4MTg4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjBdCi0rICBzdGQgMjEsIDB4MTkwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjFdCi0rICBzdGQgMjIsIDB4MTk4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjJdCi0rICBzdGQgMjMsIDB4MWEwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjNdCi0rICBzdGQgMjQsIDB4MWE4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjRdCi0rICBzdGQgMjUsIDB4MWIwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjVdCi0rICBzdGQgMjYsIDB4MWI4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjZdCi0rICBzdGQgMjcsIDB4MWMwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjddCi0rICBzdGQgMjgsIDB4MWM4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjhdCi0rICBzdGQgMjksIDB4MWQwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjldCi0rICBzdGQgMzAsIDB4MWQ4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzBdCi0rICBzdGQgMzEsIDB4MWUwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzFdCi0rCi0rICAvLyBGb3IgTklQLCB3 ZSBjYW4gdXNlIHRoZSB2YWx1ZSBpbiB0aGUgbGluayByZWdpc3RlcgotKyAgbWZsciAwCi0rICBz dGQgMCwgMHgxZTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdCi0r Ci0rICAvLyBDVFIKLSsgIG1mY3RyIDAKLSsgIHN0ZCAwLCAweDIwMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0KLSsKLSsgIC8vIEZvciBMTkssIHdlJ2xsIHVzZSB0 aGUgY2FsbGVyJ3MgTFIgc2F2ZSBhcmVhICgyIHN0YWNrIGZyYW1lcyB1cCkuCi0rICAvLyByNCBj YW4gYmUgdXNlZCBhcyBhIHNjcmF0Y2ggcmVnaXN0ZXIgc2luY2UgaXQgaGFzIGFscmVhZHkgYmVl biBzYXZlZC4KLSsgIGxkIDQsIDAoMSkKLSsgIGxkIDQsIDE2KDQpCi0rICBzdGQgNCwgMHgyMDgo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdCi0rCi0rICAvLyBYRVIK LSsgIG1meGVyIDAKLSsgIHN0ZCAwLCAweDIxMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzW1BUX1hFUl0KLSsKLSsgIC8vIENDUgotKyAgbWZjciAwCi0rICBzdGQgMCwgMHgyMTgo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdCi0rCi0rICAvLyBNU1Is IG9yaWdfcjMsIE1RLCBUUkFQLCBEQVIsIERTSVNSLCBSRVNVTFQsIERTQ1IsCi0rICAvLyBub3Qg dXNlZCBvciBub3QgcmVsZXZhbnQsICB6ZXJvIHRoZW0gb3V0LgotKyAgbGkgNCwgMAotKyAgc3Rk IDQsIDB4MWYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXQotKyAg c3RkIDQsIDB4MWY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfT1JJR19S M10KLSsgIHN0ZCA0LCAweDIyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BU X01RXQotKyAgc3RkIDQsIDB4MjI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfVFJBUF0KLSsgIHN0ZCA0LCAweDIzMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzW1BUX0RBUl0KLSsgIHN0ZCA0LCAweDIzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzW1BUX0RTSVNSXQotKyAgc3RkIDQsIDB4MjQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfUkVTVUxUXQotKyAgc3RkIDQsIDB4MjQ4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfRFNDUl0KLSsKLSsgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19t Y29udGV4dC5yZWdzIHRvIHBvaW50IHRvIGdwX3JlZ3MKLSsgIGFkZGkgMCwgMywgMHhlOAotKyAg c3RkIDAsIDB4ZTAoMykKLSsKLSsgIC8vIFNhdmUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIDAt MzEKLSsgIHN0ZmQgMCwgMHgyNjgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MF0KLSsgIHN0ZmQgMSwgMHgyNzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MV0KLSsgIHN0ZmQgMiwgMHgyNzgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb Ml0KLSsgIHN0ZmQgMywgMHgyODAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb M10KLSsgIHN0ZmQgNCwgMHgyODgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb NF0KLSsgIHN0ZmQgNSwgMHgyOTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb NV0KLSsgIHN0ZmQgNiwgMHgyOTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb Nl0KLSsgIHN0ZmQgNywgMHgyYTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb N10KLSsgIHN0ZmQgOCwgMHgyYTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb OF0KLSsgIHN0ZmQgOSwgMHgyYjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb OV0KLSsgIHN0ZmQgMTAsIDB4MmI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MTBdCi0rICBzdGZkIDExLCAweDJjMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzExXQotKyAgc3RmZCAxMiwgMHgyYzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1sxMl0KLSsgIHN0ZmQgMTMsIDB4MmQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMTNdCi0rICBzdGZkIDE0LCAweDJkOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9y ZWdzWzE0XQotKyAgc3RmZCAxNSwgMHgyZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVnc1sxNV0KLSsgIHN0ZmQgMTYsIDB4MmU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3NbMTZdCi0rICBzdGZkIDE3LCAweDJmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzWzE3XQotKyAgc3RmZCAxOCwgMHgyZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1sxOF0KLSsgIHN0ZmQgMTksIDB4MzAwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMTldCi0rICBzdGZkIDIwLCAweDMwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzIwXQotKyAgc3RmZCAyMSwgMHgzMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1syMV0KLSsgIHN0ZmQgMjIsIDB4MzE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMjJdCi0rICBzdGZkIDIzLCAweDMyMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzIzXQotKyAgc3RmZCAyNCwgMHgzMjgoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1syNF0KLSsgIHN0ZmQgMjUsIDB4MzMwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMjVdCi0rICBzdGZkIDI2LCAweDMzOCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzI2XQotKyAgc3RmZCAyNywgMHgzNDAoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1syN10KLSsgIHN0ZmQgMjgsIDB4MzQ4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMjhdCi0rICBzdGZkIDI5LCAweDM1MCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzI5XQotKyAgc3RmZCAzMCwgMHgzNTgoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1szMF0KLSsgIHN0ZmQgMzEsIDB4MzYwKDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMzFdCi0rCi0rICAvLyBGUFNDUgotKyAgbWZmcyAwCi0rICBz dGZkIDAsIDB4MzY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzJdCi0rCi0r ICAvLyBTYXZlIFZNWCBWZWN0b3IgcmVnaXN0ZXJzCi0rICAvLyBVcGRhdGUgcjQgdG8gY29udGFp biB0aGUgYmFzZSBhZGRyZXNzIG9mIHZteF9yZXNlcnZlCi0rICBhZGRpIDQsIDMsIDB4Mzc4Ci0r ICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBxdWFkd29yZCBhbGlnbmVkCi0rICBhbmRpLiA1LCA0LCAw eEYKLSsgIGJlcSAxZiAvLyBObyBhbGlnbm1lbnQgaXMgbmVjZXNzYXJ5Ci0rICAvLyBBZGRyZXNz IGlzIGRvdWJsZXdvcmQgYWxpZ25lZCBhbmQgbm90IHF1YWR3b3JkIGFsaWduZWQsIGFkZCA4Ci0r ICBhZGRpIDQsIDQsIDgKLSsKLSsxOgotKyAgLy8gU3RvcmUgVk1YIHJlZ2lzdGVycyAwLTMxCi0r ICAvLyByNCB3aWxsIGNvbnRhaW4gdGhlIGJhc2UgYWRkcmVzcwotKyAgLy8gcjUgd2lsbCBjb250 YWluIHRoZSBpbmRleAotKyAgbGkgNSwgMAotKyAgc3R2eCAwLCA0LCA1ICAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDBdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDEsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMiwgNCwgNSAgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyXQotKyAgYWRkaSA1LCA1LCAxNgot KyAgc3R2eCAzLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDQsIDQsIDUgICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNF0KLSsgIGFkZGkgNSwgNSwgMTYK LSsgIHN0dnggNSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyA1XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA2LCA0LCA1ICAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDZdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDcsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgN10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggOCwgNCwgNSAgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA4XQotKyAgYWRkaSA1LCA1LCAx NgotKyAgc3R2eCA5LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEwLCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTBdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDExLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMTFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEyLCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTJdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDEzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMTNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE0LCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTRdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDE1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMTVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE2LCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTZdCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE4LCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMThdCi0r ICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIw LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjBd Ci0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4 IDIyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MjJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBz dHZ4IDI0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMjRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI1LCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjVdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDI2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMjZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI3LCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjddCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDI4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMjhdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI5LCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjldCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDMwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMzBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMxLCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzFdCi0rICBhZGRpIDUs IDUsIDE2Ci0rCi0rICAvLyBWU0NSCi0rICBtZnZzY3IgMAotKyAgc3R2eCAwLCA0LCA1Ci0rICBh ZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWUlNBVkUKLSsgIG1mdnJzYXZlIDAKLSsgIHN0d3ggMCwg NCwgNQotKwotKyAgLy8gVXBkYXRlIGNvbnRleHQtPnVjX21jb250ZXh0LnZfcmVncyB0byBwb2lu dCB0byB2bXhfcmVzZXJ2ZSArIGFsaWdubWVudC4KLSsgIHN0ZCA0LCAweDM3MCgzKQotKwotKyAg Ly8gWmVybyBvdXQgYWxsIHVudXNlZCBmaWVsZHMKLSsgIGxpIDQsIDAKLSsgIHN0ZCA0LCAweGM4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnNpZ25hbAotKyAgc3RkIDQsIDB4ZDAoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuaGFuZGxlcgotKyAgc3RkIDQsIDB4ZDgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQub2xkbWFzawotKwotKyAgYmxyCi0gI2VuZGlmICAvLyBfX2kzODZfXwot ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0 dXJlX2NvbnRleHRfdGVzdC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYwotaW5kZXggY2YyM2MyZGVmLi41ZjI2NGJjOTIg MTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0X3Rlc3QuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYwotQEAgLTU3LDcgKzU3LDcgQEAgdm9p ZCBUZXN0Q2FwdHVyZUNvbnRleHQoKSB7Ci0gICB1aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291bnRl ckZyb21Db250ZXh0KGNvbnRleHRfMSk7Ci0gCi0gI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJ WkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgXAotLSAgICAhZGVmaW5l ZChNRU1PUllfU0FOSVRJWkVSKQotKyAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKSAmJiAh ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBTYW5pdGl6ZXJzIGNhbiBjYXVz ZSBlbm91Z2ggY29kZSBibG9hdCB0aGF0IHRoZSDigJxuZWFyYnnigJ0gY2hlY2sgd291bGQKLSAg IC8vIGxpa2VseSBmYWlsLgotICAgY29uc3QgdWludHB0cl90IGtSZWZlcmVuY2VQQyA9Ci1kaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVf Y29udGV4dF90ZXN0X3V0aWxfbGludXguY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotaW5kZXggMzBh MmFiMjFkLi42MDUwOWYyMWQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotKysrIGIv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90 ZXN0X3V0aWxfbGludXguY2MKLUBAIC0zNSw2ICszNSw4IEBAIHZvaWQgU2FuaXR5Q2hlY2tDb250 ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsKLSAgIEVYUEVDVF9FUShjb250 ZXh0LnVjX21jb250ZXh0LnJlZ3NbMF0sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250 ZXh0KSk7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIEVYUEVDVF9F UShjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzWzRdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90 PigmY29udGV4dCkpOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAg RVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1szXSwgRnJvbVBvaW50ZXJDYXN0 PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtNDksNiArNTEsOCBA QCB1aW50cHRyX3QgUHJvZ3JhbUNvdW50ZXJGcm9tQ29udGV4dChjb25zdCBOYXRpdmVDUFVDb250 ZXh0JiBjb250ZXh0KSB7Ci0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKLSAjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgcmV0dXJuIGNvbnRleHQudWNfbWNv bnRleHQucGM7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1 cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0gI2VuZGlmCi0gfQotIAot QEAgLTYzLDYgKzY3LDggQEAgdWludHB0cl90IFN0YWNrUG9pbnRlckZyb21Db250ZXh0KGNvbnN0 IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsKLSAgIHJldHVybiBjb250ZXh0LnVjX21jb250 ZXh0LnNwOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4g Y29udGV4dC51Y19tY29udGV4dC5ncmVnc1syOV07Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzWzFdOwot ICNlbmRpZgotIH0KLSAKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGlu dXgvcHBjNjQvY29uZmlnLmggYi90aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQv Y29uZmlnLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLjlmYmJmNzVj YwotLS0tIC9kZXYvbnVsbAotKysrIGIvdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3Bw YzY0L2NvbmZpZy5oCi1AQCAtMCwwICsxLDM5IEBACi0rLyoKLSsgKiBBdXRvZ2VuZXJhdGVkIGJ5 IHRoZSBNZXNvbiBidWlsZCBzeXN0ZW0uCi0rICogRG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3 aWxsIGJlIGxvc3QuCi0rICovCi0rCi0rI3ByYWdtYSBvbmNlCi0rCi0rI2RlZmluZSBBUkNIX0FB UkNINjQgMAotKwotKyNkZWZpbmUgQVJDSF9BUk0gMAotKwotKyNkZWZpbmUgQVJDSF9QUEM2NExF IDEKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2IDAKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKLSsK LSsjZGVmaW5lIEFSQ0hfWDg2XzY0IDAKLSsKLSsjZGVmaW5lIENPTkZJR18xNkJQQyAxCi0rCi0r I2RlZmluZSBDT05GSUdfOEJQQyAxCi0rCi0rLy8gI2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9n Z2luZyBpcyBjb250cm9sbGVkIGJ5IENocm9taXVtCi0rCi0rI2RlZmluZSBFTkRJQU5ORVNTX0JJ RyAwCi0rCi0rI2RlZmluZSBIQVZFX0FTTSAxCi0rCi0rI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJ TUUgMQotKwotKyNkZWZpbmUgSEFWRV9ETFNZTSAxCi0rCi0rI2RlZmluZSBIQVZFX0dFVEFVWFZB TCAxCi0rCi0rI2RlZmluZSBIQVZFX1BPU0lYX01FTUFMSUdOIDEKLSsKLSsjZGVmaW5lIEhBVkVf VU5JU1REX0ggMQotKwotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3Ny Yy9wcGMvZGF2MWRfdHlwZXMuaCBiL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMv ZGF2MWRfdHlwZXMuaAotaW5kZXggMGI0YmQ3MmYwLi5hMGNhYTVlNzEgMTAwNjQ0Ci0tLS0gYS90 aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL2RhdjFkX3R5cGVzLmgKLSsrKyBiL3Ro aXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvZGF2MWRfdHlwZXMuaAotQEAgLTUxLDQg KzUxLDE5IEBACi0gI2RlZmluZSB1MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfbWVyZ2VsKCh1 MTZ4OCkgdiwgdmVjX3NwbGF0X3UxNigwKSkpCi0gI2RlZmluZSBpMTZsX3RvX2kzMih2KSAoKGkz Mng0KSB2ZWNfdW5wYWNrbCgoaTE2eDgpdikpCi0gCi0rI2lmIGRlZmluZWQoX19jbGFuZ19fKQot KyN1bmRlZiB2ZWNfc3BsYXRzCi0rI2RlZmluZSB2ZWNfc3BsYXRzKE4pICAgICAgICAgICAgICAg ICAgICAgXAotKyAgICBfR2VuZXJpYygoTiksICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsg ICAgICAgIHVuc2lnbmVkIGNoYXI6ICAgICAgKCh1OHgxNikoTikpLCBcCi0rICAgICAgICBzaWdu ZWQgY2hhcjogICAgICAgICgoaTh4MTYpKE4pKSwgXAotKyAgICAgICAgdW5zaWduZWQgc2hvcnQ6 ICAgICAoKHUxNng4KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBzaG9ydDogICAgICAgKChpMTZ4 OCkoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBpbnQ6ICAgICAgICgodTMyeDQpKE4pKSwgXAot KyAgICAgICAgc2lnbmVkIGludDogICAgICAgICAoKGkzMng0KShOKSksIFwKLSsgICAgICAgIHVu c2lnbmVkIGxvbmcgbG9uZzogKCh1NjR4MikoTikpLCBcCi0rICAgICAgICBzaWduZWQgbG9uZyBs b25nOiAgICgoaTY0eDIpKE4pKSAgXAotKyAgICApCi0rI2VuZGlmCi0rCi0gI2VuZGlmIC8qIERB VjFEX1NSQ19QUENfVFlQRVNfSCAqLwotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2VpZ2VuMy9C VUlMRC5nbiBiL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgotaW5kZXggMGQ0ZTE4NC4uZjJj ZTQ4NCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgotKysrIGIvdGhp cmRfcGFydHkvZWlnZW4zL0JVSUxELmduCi1AQCAtMjIsNCArMjIsOCBAQCBjb25maWcoImVpZ2Vu X2luY2x1ZGVzIikgewotICAgICAjIGZvciB0aGlzIGNvbXBvbmVudCBvbiBXaW5kb3dzIG9uIEFy bSBkdWUgdG8gY29tcGlsYXRpb24gZXJyb3JzLgotICAgICBkZWZpbmVzICs9IFsgIkVJR0VOX0RP TlRfVkVDVE9SSVpFIiBdCi0gICB9Ci0rCi0rICBpZiAodGFyZ2V0X2NwdSA9PSAicHBjNjQiKSB7 Ci0rICAgIGRlZmluZXMgKz0gWyAiRUlHRU5fRE9OVF9WRUNUT1JJWkUiIF0KLSsgIH0KLSB9Ci0K LWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9s aWJhb20vQlVJTEQuZ24KLWluZGV4IDliMDY1YmQuLmRmM2FmMDIgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KLSsrKyBiL3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5n bgotQEAgLTQwLDYgKzQwLDggQEAKLSAgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJpYyIKLSB9IGVs c2UgaWYgKGN1cnJlbnRfY3B1ID09ICJsb29uZzY0IikgewotICAgY3B1X2FyY2hfZnVsbCA9ICJn ZW5lcmljIgotK30gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgY3B1X2Fy Y2hfZnVsbCA9ICJnZW5lcmljIgotIH0gZWxzZSB7Ci0gICBjcHVfYXJjaF9mdWxsID0gY3VycmVu dF9jcHUKLSB9Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3Vw cG9ydC5oIGIvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1pbmRleCBl NGFjMjI2NDQuLjFjNTcwMTVkYiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2xzcy9saW51eF9z eXNjYWxsX3N1cHBvcnQuaAotKysrIGIvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3Vw cG9ydC5oCi1AQCAtMzk0Nyw3ICszOTQ3LDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewotICAg ICAgIExTU19SRUcoMiwgYnVmKTsKLSAgICAgICBMU1NfQk9EWSh2b2lkKiwgbW1hcDIsICIwIihf X3IyKSk7Ci0gICAgIH0KLS0jZWxzZQotKyNlbGlmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pIC8q IHBwYzY0IGRvZXNuJ3QgaGF2ZSBtbWFwMiAqLwotICAgICAjZGVmaW5lIF9fTlJfX21tYXAyIF9f TlJfbW1hcDIKLSAgICAgTFNTX0lOTElORSBfc3lzY2FsbDYodm9pZCosIF9tbWFwMiwgICAgICAg ICAgICB2b2lkKiwgcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90LCAgICAgICAg ICAgICAgICAgICBsLCBpbnQsICAgICAgICAgICAgICAgcCwKLUBAIC00MDU4LDcgKzQwNTgsNyBA QCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Ci0gICAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAg IGRlZmluZWQoX19BUk1fQVJDSF8zX18pIHx8IGRlZmluZWQoX19BUk1fRUFCSV9fKSB8fCAgICAg ICAgICAgICAgICAgICAgIFwKLSAgICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0g PT0gX01JUFNfU0lNX0FCSTMyKSB8fCAgICAgICAgICAgICAgICAgICBcCi0tICAgICAgZGVmaW5l ZChfX1BQQ19fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotKyAgICAgKGRlZmluZWQoX19QUENfXykgJiYgIWRlZmluZWQoX19wb3dlcnBj NjRfXykpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgICAoZGVmaW5lZChfX3MzOTBfXykgJiYgIWRlZmluZWQoX19zMzkweF9fKSkK LSAgICAgLyogT24gdGhlc2UgYXJjaGl0ZWN0dXJlcywgaW1wbGVtZW50IG1tYXAoKSB3aXRoIG1t YXAyKCkuICovCi0gICAgIExTU19JTkxJTkUgdm9pZCogTFNTX05BTUUobW1hcCkodm9pZCAqcywg c2l6ZV90IGwsIGludCBwLCBpbnQgZiwgaW50IGQsCi1AQCAtNDg3MiwxMSArNDg3MiwxMSBAQCBz dHJ1Y3Qga2VybmVsX3N0YXR4IHsKLSAgICAgICBMU1NfU0NfQk9EWSg0LCBpbnQsIDgsIGQsIHR5 cGUsIHByb3RvY29sLCBzdik7Ci0gICAgIH0KLSAgICNlbmRpZgotLSAgI2lmIGRlZmluZWQoX19O Ul9yZWN2bXNnKQotKyAgI2lmIGRlZmluZWQoX19OUl9yZWN2bXNnKSAmJiAhZGVmaW5lZChfX1BQ Q19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsMyhzc2l6ZV90LCByZWN2bXNnLCBpbnQsIHMs IHN0cnVjdCBrZXJuZWxfbXNnaGRyKiwgbXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQsIGZsYWdzKQotICAgI2VuZGlmCi0tICAjaWYgZGVmaW5lZChfX05SX3NlbmRtc2cpCi0rICAj aWYgZGVmaW5lZChfX05SX3NlbmRtc2cpICYmICFkZWZpbmVkKF9fUFBDX18pCi0gICAgIExTU19J TkxJTkUgX3N5c2NhbGwzKHNzaXplX3QsIHNlbmRtc2csIGludCwgcywgY29uc3Qgc3RydWN0IGtl cm5lbF9tc2doZHIqLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2csIGludCwgZmxhZ3Mp Ci0gICAjZW5kaWYKLUBAIC00ODg1LDEzICs0ODg1LDEzIEBAIHN0cnVjdCBrZXJuZWxfc3RhdHgg ewotICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIGZsYWdzLCBjb25zdCBzdHJ1Y3Qga2Vy bmVsX3NvY2thZGRyKiwgdG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCwgdG9sZW4pCi0gICAjZW5kaWYKLS0gICNpZiBkZWZpbmVkKF9fTlJfc2h1dGRvd24pCi0rICAj aWYgZGVmaW5lZChfX05SX3NodXRkb3duKSAmJiAhZGVmaW5lZChfX1BQQ19fKQotICAgICBMU1Nf SU5MSU5FIF9zeXNjYWxsMihpbnQsIHNodXRkb3duLCBpbnQsIHMsIGludCwgaG93KQotICAgI2Vu ZGlmCi0tICAjaWYgZGVmaW5lZChfX05SX3NvY2tldCkKLSsgICNpZiBkZWZpbmVkKF9fTlJfc29j a2V0KSAmJiAhZGVmaW5lZChfX1BQQ19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsMyhpbnQs IHNvY2tldCwgaW50LCBkb21haW4sIGludCwgdHlwZSwgaW50LCBwcm90b2NvbCkKLSAgICNlbmRp ZgotLSAgI2lmIGRlZmluZWQoX19OUl9zb2NrZXRwYWlyKQotKyAgI2lmIGRlZmluZWQoX19OUl9z b2NrZXRwYWlyKSAmJiAhZGVmaW5lZChfX1BQQ19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxs NChpbnQsIHNvY2tldHBhaXIsIGludCwgZCwgaW50LCB0eXBlLCBpbnQsIHByb3RvY29sLAotICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQqLCBzdikKLSAgICNlbmRpZgotZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmggYi90aGly ZF9wYXJ0eS9wZGZpdW0vdGhpcmRfcGFydHkvbGlicG5nMTYvcG5ncHJpdi5oCi1pbmRleCA1ODNj MjZmLi5lMDNkNjk3IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5 L2xpYnBuZzE2L3BuZ3ByaXYuaAotKysrIGIvdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5 L2xpYnBuZzE2L3BuZ3ByaXYuaAotQEAgLTE5NiwxMSArMTk2LDcgQEAKLSAjZW5kaWYKLSAKLSAj aWZuZGVmIFBOR19QT1dFUlBDX1ZTWF9PUFQKLS0jICBpZiBkZWZpbmVkKF9fUFBDNjRfXykgJiYg ZGVmaW5lZChfX0FMVElWRUNfXykgJiYgZGVmaW5lZChfX1ZTWF9fKQotLSMgICAgIGRlZmluZSBQ TkdfUE9XRVJQQ19WU1hfT1BUIDIKLS0jICBlbHNlCi0tIyAgICAgZGVmaW5lIFBOR19QT1dFUlBD X1ZTWF9PUFQgMAotLSMgIGVuZGlmCi0rIyAgZGVmaW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMAot ICNlbmRpZgotIAotICNpZm5kZWYgUE5HX0lOVEVMX1NTRV9PUFQKLWRpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYyBiL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5j Ci1pbmRleCBiZGFjNGQ3ODQuLjUxZTBmMmNhYyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3Bm ZmZ0L3NyYy9wZmZmdC5jCi0rKysgYi90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotQEAg LTEwMCw2ICsxMDAsNyBAQAotICAgIEFsdGl2ZWMgc3VwcG9ydCBtYWNyb3MgCi0gKi8KLSAjaWYg IWRlZmluZWQoUEZGRlRfU0lNRF9ESVNBQkxFKSAmJiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZp bmVkKF9fcHBjNjRfXykpCi0rI2luY2x1ZGUgPGFsdGl2ZWMuaD4KLSB0eXBlZGVmIHZlY3RvciBm bG9hdCB2NHNmOwotICMgIGRlZmluZSBTSU1EX1NaIDQKLSAjICBkZWZpbmUgVlpFUk8oKSAoKHZl Y3RvciBmbG9hdCkgdmVjX3NwbGF0X3U4KDApKQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3Nx bGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMv YW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotaW5kZXggNmI0YTc4OTlkLi5iOGM3ZmU0MTQgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLSsr KyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotQEAgLTE0 NDc0LDcgKzE0NDc0LDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmlu ZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4 NikgfHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRf XykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0 KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwK LS0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRl ZmluZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FB UkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKLSsgICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9f KQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQo c3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FS TUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jIGIvdGhpcmRfcGFydHkvc3Fs aXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYwotaW5kZXggZDMwYzliN2RlLi5jZjc1 YTY5ZDkgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9k ZXYvc3FsaXRlMy5jCi0rKysgYi90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9k ZXYvc3FsaXRlMy5jCi1AQCAtMTQ0ODcsNyArMTQ0ODcsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUg TG9nRXN0OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAg ICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9feDg2XzY0KSAg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAg ICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmlu ZWQoX194ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQo X19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKLSsgICAgIGRlZmluZWQoX19BUk1F TF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAg XAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19P UkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEy MzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAot ICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMgYi90aGly ZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCi1pbmRleCBmNWI1N2E1ZTIuLjgw YTJkMGFkOCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0 cmVlLmMKLSsrKyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKLUBA IC00NTAsNyArNDUwLDcgQEAgc3RydWN0IFJ0cmVlTWF0Y2hBcmcgewotICNpZiBkZWZpbmVkKGkz ODYpICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAg XAotICAgICBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX01fWDY0KSAgfHwgICAgXAotICAgICBkZWZpbmVkKF9NX0FNRDY0KSB8fCBkZWZpbmVkKF9N X0FSTSkgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICBkZWZpbmVkKF9fYXJt X18pCi0rICAgIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAo X19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyBkZWZpbmUgU1FM SVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gI2VsaWYgZGVmaW5lZChzcGFyYykgICAgfHwgZGVmaW5l ZChfX3BwY19fKQotICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgNDMyMQotZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oIGIvdGhpcmRfcGFydHkv c3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLWluZGV4IDI0NTA3MGQ0Zi4uYjI1MTY0ZTk1IDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLSsrKyBi L3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCi1AQCAtODc3LDcgKzg3Nyw4 IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAg fHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAg ICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmlu ZWQoX01fWDY0KSAgfHwgICAgXAotICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQo X01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVk KF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0 KQotKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwg ZGVmaW5lZChfTV9BUk02NCkgfHwgXAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAo X19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBT UUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRl ZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5l ZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFz ZS9zeXN0ZW0vYXJjaC5oIGIvdGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNo LmgKLWluZGV4IGJlMjM2N2I4NS4uYmU0ZWU0MjMzIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkv d2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKLSsrKyBiL3RoaXJkX3BhcnR5L3dlYnJ0Yy9y dGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi1AQCAtNzksNiArNzksMTggQEAKLSAjZWxpZiBkZWZpbmVk KF9fRU1TQ1JJUFRFTl9fKQotICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUwotICNkZWZpbmUg V0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgotKyNlbGlmIGRlZmluZWQoX19QUENfXykKLSsjZGVm aW5lIFdFQlJUQ19BUkNIX1BQQ19GQU1JTFkKLSsjaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRF Ul9MSVRUTEVfRU5ESUFOX18KLSsjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KLSsj ZWxzZQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfQklHX0VORElBTgotKyNlbmRpZgotKyNpZiBkZWZp bmVkKF9fTFA2NF9fKQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfNjRfQklUUwotKyNlbHNlCi0rI2Rl ZmluZSBXRUJSVENfQVJDSF8zMl9CSVRTCi0rI2VuZGlmCi0gI2Vsc2UKLSAjZXJyb3IgUGxlYXNl IGFkZCBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBydGNfYmFzZS9zeXN0ZW0vYXJj aC5oCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdjgvQlVJTEQuZ24gYi92OC9CVUlMRC5nbgotaW5k ZXggZjM5NTI5YTNhLi5lODRmYzQ0OWUgMTAwNjQ0Ci0tLS0gYS92OC9CVUlMRC5nbgotKysrIGIv djgvQlVJTEQuZ24KLUBAIC04NTAsNiArODUwLDEyIEBAIGNvbmZpZygidG9vbGNoYWluIikgewot ICAgICB9Ci0gICAgIGlmIChob3N0X2J5dGVvcmRlciA9PSAibGl0dGxlIikgewotICAgICAgIGRl ZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0xFIiBdCi0rICAgICAgY2ZsYWdzICs9IFsK LSsgICAgICAgICMgRW5hYmxlIHVzYWdlIG9mIEFsdGlWZWMsIFZTWCwgYW5kIG90aGVyIFBPV0VS OCBhbmQgaGlnaGVyIGZlYXR1cmVzCi0rICAgICAgICAiLW1jcHU9cG93ZXI4IiwKLSsgICAgICAg ICItbWFsdGl2ZWMiLAotKyAgICAgICAgIi1tdnN4IiwKLSsgICAgICBdCi0gICAgIH0gZWxzZSBp ZiAoaG9zdF9ieXRlb3JkZXIgPT0gImJpZyIpIHsKLSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RB UkdFVF9BUkNIX1BQQ19CRSIgXQotICAgICAgIGlmIChjdXJyZW50X29zID09ICJhaXgiKSB7Ci0t LS0gYS91aS9nbC9mZWF0dXJlcy5nbmkKLSsrKyBiL3VpL2dsL2ZlYXR1cmVzLmduaQotQEAgLTMz LDUgKzMzLDUgQEAKLSAgICAgICAgaXNfY2hyb21lb3NfYXNoIHx8IGlzX2Z1Y2hzaWEpICYmCi0g ICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fCB0YXJn ZXRfY3B1ID09ICJhcm0iIHx8Ci0gICAgICAgIHRhcmdldF9jcHUgPT0gImFybTY0IiB8fCB0YXJn ZXRfY3B1ID09ICJtaXBzZWwiIHx8Ci0tICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIiB8 fCB0YXJnZXRfY3B1ID09ICJyaXNjdjY0IikKLSsgICAgICAgdGFyZ2V0X2NwdSA9PSAibWlwczY0 ZWwiIHx8IHRhcmdldF9jcHUgPT0gInJpc2N2NjQiIHx8IHRhcmdldF9jcHUgPT0gInBwYzY0IikK LSB9Ci1kaWZmIC0tZ2l0IGEvdjgvdGVzdC9CVUlMRC5nbiBiL3Y4L3Rlc3QvQlVJTEQuZ24KLWlu ZGV4IGZiODcyYWQzOS4uNDVmYzU4NWRkIDEwMDY0NAotLS0tIGEvdjgvdGVzdC9CVUlMRC5nbgot KysrIGIvdjgvdGVzdC9CVUlMRC5nbgotQEAgLTQyLDcgKzQyLDcgQEAgZ3JvdXAoImduX2FsbCIp IHsKLSAgICAgICAiYmVuY2htYXJrcy9jcHA6Z25fYWxsIiwKLSAgICAgICAiY2N0ZXN0OmNjdGVz dCIsCi0gICAgICAgInVuaXR0ZXN0czpnZW5lcmF0ZS1ieXRlY29kZS1leHBlY3RhdGlvbnMiLAot LSAgICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAgICAjInVuaXR0ZXN0czp1bml0dGVz dHMiLAotICAgICBdCi0gICB9Ci0gfQotQEAgLTg0LDcgKzg0LDcgQEAKLSAgICAgIm1lc3NhZ2U6 djhfbWVzc2FnZSIsCi0gICAgICJtanN1bml0OnY4X21qc3VuaXQiLAotICAgICAibWtncm9rZHVt cDpta2dyb2tkdW1wIiwKLS0gICAgInVuaXR0ZXN0czp1bml0dGVzdHMiLAotKyAgICAjInVuaXR0 ZXN0czp1bml0dGVzdHMiLAotICAgICAid2Via2l0OnY4X3dlYmtpdCIsCi0gICBdCi0gCi1AQCAt MTA5LDcgKzEwOSw3IEBACi0gICAgICJtZXNzYWdlOnY4X21lc3NhZ2UiLAotICAgICAibWpzdW5p dDp2OF9tanN1bml0IiwKLSAgICAgIm1rZ3Jva2R1bXA6bWtncm9rZHVtcCIsCi0tICAgICJ1bml0 dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSAgIF0KLSAK LSAgIGlmICh2OF9lbmFibGVfd2ViYXNzZW1ibHkpIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaCBiL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZGY0NTNmNDkxZDhjZS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0tLS0gYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90 aGlyZF9wYXJ0eS9sbHZtLTEwLjAvQlVJTEQuZ24KLSsrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hh ZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9CVUlMRC5nbgotQEAgLTU3NCw2ICs1NzQsNyBAQCBz d2lmdHNoYWRlcl9sbHZtX3NvdXJjZV9zZXQoInN3aWZ0c2hhZGVyCi0gICAgICJsbHZtL2xpYi9N Qy9NQ0FzbUluZm9DT0ZGLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ0FzbUluZm9EYXJ3aW4u Y3BwIiwKLSAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0VMRi5jcHAiLAotKyAgICAibGx2bS9s aWIvTUMvTUNBc21JbmZvWENPRkYuY3BwIiwKLSAgICAgImxsdm0vbGliL01DL01DQXNtTWFjcm8u Y3BwIiwKLSAgICAgImxsdm0vbGliL01DL01DQXNtU3RyZWFtZXIuY3BwIiwKLSAgICAgImxsdm0v bGliL01DL01DQXNzZW1ibGVyLmNwcCIsCi1AQCAtNjI5LDYgKzYzMCw3IEBAIHN3aWZ0c2hhZGVy X2xsdm1fc291cmNlX3NldCgic3dpZnRzaGFkZXIKLSAgICAgImxsdm0vbGliL01DL01DV2luQ09G RlN0cmVhbWVyLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ1dpbkVILmNwcCIsCi0gICAgICJs bHZtL2xpYi9NQy9NQ1hDT0ZGU3RyZWFtZXIuY3BwIiwKLSsgICAgImxsdm0vbGliL01DL01DWENP RkZPYmplY3RUYXJnZXRXcml0ZXIuY3BwIiwKLSAgICAgImxsdm0vbGliL01DL01hY2hPYmplY3RX cml0ZXIuY3BwIiwKLSAgICAgImxsdm0vbGliL01DL1N0cmluZ1RhYmxlQnVpbGRlci5jcHAiLAot ICAgICAibGx2bS9saWIvTUMvU3VidGFyZ2V0RmVhdHVyZS5jcHAiLApkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXgg N2RlYThiYmU1MGQzOS4uNzg0YjhhOGM1ZDI5OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1 bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCkBAIC0xLDkgKzEsOSBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2hyb21pdW0nCiBwa2duYW1lPWNocm9taXVtCiAjIFNl ZSBodHRwczovL2Nocm9taXVtZGFzaC5hcHBzcG90LmNvbS9yZWxlYXNlcz9wbGF0Zm9ybT1MaW51 eCBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uCi12ZXJzaW9uPTEwOC4wLjUzNTkuMTI0Cit2ZXJzaW9u PTEwOS4wLjU0MTQuNzQKIHJldmlzaW9uPTEKLWFyY2hzPSJpNjg2KiB4ODZfNjQqIGFhcmNoNjQq IGFybXY3bCogcHBjNjRsZSoiCithcmNocz0iaTY4NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12N2wq IgogaG9zdG1ha2VkZXBlbmRzPSIKICAkKHZvcHRfaWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTIi KQogICQodm9wdF9pZiBqc19vcHRpbWl6ZSBvcGVuamRrKQpAQCAtMjgsNyArMjgsNyBAQCBtYWlu dGFpbmVyPSJEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iQlNELTMt Q2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmNocm9taXVtLm9yZy8iCiBkaXN0ZmlsZXM9 Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nl ci1vZmZpY2lhbC8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDQ4ZGZh YzJhNjFiMTRhNWQ3ZDJmNDYwYjA5YjcwZWYzYWI4OGUyN2I4MmUzMTczOTM4Y2I1NGVhYTYxMmE3 NQorY2hlY2tzdW09ZWRlZDIzM2MyNmFiNjMxYmUzMjVhZDQ5Y2IzMDZjMzM4NTEzYjZhNjUyODE5 N2Q0MjY1M2U2NjE4NzU0OGU1ZAogCiBsaWIzMmRpc2FibGVkPXllcwogCkBAIC0zOSwxMCArMzks OSBAQCBkZXNjX29wdGlvbl9kZWJ1Zz0iQnVpbGQgd2l0aCBkZWJ1ZyBzeW1ib2xzIgogZGVzY19v cHRpb25fanNfb3B0aW1pemU9Ik9wdGltaXplIHRoZSBKUyB1c2VkIGZvciBDaHJvbWl1bSdzIFVJ IgogZGVzY19vcHRpb25fcGlwZXdpcmU9IkVuYWJsZSBzdXBwb3J0IGZvciBzY3JlZW4gc2hhcmlu ZyBmb3IgV2ViUlRDIHZpYSBQaXBlV2lyZSIKIAotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElO RSIgaW4KLQlwcGM2NCotbXVzbCkgbWFrZWRlcGVuZHMrPSIgbGlidWNvbnRleHQtZGV2ZWwiIDs7 Ci1lc2FjCitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCW1ha2Vk ZXBlbmRzKz0iIG11c2wtbGVnYWN5LWNvbXBhdCIKK2ZpCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIg XTsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBsaWJYMTEtZGV2ZWwgbGlieGNiLWRldmVsIHBj aXV0aWxzLWRldmVsIGxpYlhleHQtZGV2ZWwgbGliZ2x2bmQtZGV2ZWwKQEAgLTEzNSwyMCArMTM0 LDYgQEAgZG9fY29uZmlndXJlKCkgewogCQlDRkxBR1M9JENGTEFHU19GT1JfQlVJTEQgQ1hYRkxB R1M9JENYWEZMQUdTX0ZPUl9CVUlMRCBMREZMQUdTPSRMREZMQUdTX0ZPUl9CVUlMRCBcCiAJCXRv b2xzL2duL2Jvb3RzdHJhcC9ib290c3RyYXAucHkgLS1za2lwLWdlbmVyYXRlLWJ1aWxkZmlsZXMK IAotCSMgd2UgbmVlZCB0byBnZW5lcmF0ZSBwcGM2NCBzdHVmZiBmb3IgbGlidnB4IGFzIGl0J3Mg bm90IHNoaXBwZWQKLQkjIHRoaXMgaGFzIHRvIGJlIGRvbmUgYmVmb3JlIHVuYnVuZGxpbmcsIGJ1 dCBhZnRlciBnbiBpcyBidWlsdAotCSMgY29tbWVudCBvdXQgaWYgd2Ugc3dpdGNoIGJhY2sgdG8g c3lzdGVtIGxpYnZweCBhZ2FpbiBsYXRlcgotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBp bgotCQlwcGM2NCopCi0JCQlwdXNoZCB0aGlyZF9wYXJ0eS9saWJ2cHgKLQkJCW1rZGlyIC1wIHNv dXJjZS9jb25maWcvbGludXgvcHBjNjQKLQkJCSMgbmVlZCBQQVRIIHRvIGZpbmQgZ24KLQkJCVBB VEg9IiR7d3Jrc3JjfS9vdXQvUmVsZWFzZTokUEFUSCIgLi9nZW5lcmF0ZV9nbmkuc2ggfHwgXAot CQkJCW1zZ19lcnJvciAiZmFpbGVkIHRvIGdlbmVyYXRlIGxpYnZweCBnbmkiCi0JCQlwb3BkCi0J CQk7OwotCWVzYWMKLQogCSMgVXNlIHN5c3RlbS1wcm92aWRlZCBsaWJyYXJpZXMuCiAJIyBUT0RP OiB1c2Vfc3lzdGVtX2h1bnNwZWxsICh1cHN0cmVhbSBjaGFuZ2VzIG5lZWRlZCkuCiAJIyBUT0RP OiB1c2Vfc3lzdGVtX2xpYnNydHAuCkBAIC0yMjAsOSArMjA1LDYgQEAgZG9fY29uZmlndXJlKCkg ewogCiAJCSdpY3VfdXNlX2RhdGFfZmlsZT10cnVlJwogCi0JCSd1c2VfYWxsb2NhdG9yPSJub25l IicKLQkJJ3VzZV9hbGxvY2F0b3Jfc2hpbT1mYWxzZScKLQogCQknZW5hYmxlX3dpZGV2aW5lPXRy dWUnCiAJCSdlbmFibGVfaGFuZ291dF9zZXJ2aWNlc19leHRlbnNpb249dHJ1ZScKIApAQCAtMjg2 LDExICsyNjgsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCSkKIAlmaQogCi0JIyB0aGlzIGRvZXMg bm90IHdvcmsgb24gcHBjNjQgeWV0Ci0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0J CXBwYzY0KikgY29uZis9KCAiZW5hYmxlX2p4bF9kZWNvZGVyPWZhbHNlIiApOzsKLQllc2FjCi0K IAlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgogCQljb25mKz0oICdp c19tdXNsPXRydWUnICkKIAlmaQpAQCAtMzAwLDcgKzI3Nyw2IEBAIGRvX2NvbmZpZ3VyZSgpIHsK IAkJaTY4NiopIGNvbmYrPSggJ3RhcmdldF9jcHU9Ing4NiInICkgOzsKIAkJYXJtKikgY29uZis9 KCAndGFyZ2V0X2NwdT0iYXJtIicgKSA7OwogCQlhYXJjaDY0KikgY29uZis9KCAndGFyZ2V0X2Nw dT0iYXJtNjQiJyApIDs7Ci0JCXBwYzY0KikgY29uZis9KCAndGFyZ2V0X2NwdT0icHBjNjQiJyAp IDs7CiAJZXNhYwogCiAJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCkBAIC0zMDksNyArMjg1 LDYgQEAgZG9fY29uZmlndXJlKCkgewogCQkJaTY4NiopIGNvbmYrPSggJ2hvc3RfY3B1PSJ4ODYi JyApIDs7CiAJCQlhcm0qKSBjb25mKz0oICdob3N0X2NwdT0iYXJtIicgKSA7OwogCQkJYWFyY2g2 NCopIGNvbmYrPSggJ2hvc3RfY3B1PSJhcm02NCInICkgOzsKLQkJCXBwYzY0KikgY29uZis9KCAn aG9zdF9jcHU9InBwYzY0IicgKSA7OwogCQllc2FjCiAJZmkKIAlfc2V0dXBfdG9vbGNoYWluCkBA IC0zMTgsMTMgKzI5MywxMyBAQCBkb19jb25maWd1cmUoKSB7CiAKIGRvX2J1aWxkKCkgewogCV9z ZXR1cF90b29sY2hhaW4KLQlDQ0FDSEVfU0xPUFBJTkVTUz1pbmNsdWRlX2ZpbGVfbXRpbWUgbmlu amEgLUMgb3V0L1JlbGVhc2UgJHttYWtlam9ic30gY2hyb21lIGNocm9tZWRyaXZlciBjaHJvbWVf Y3Jhc2hwYWRfaGFuZGxlcgorCUNDQUNIRV9TTE9QUElORVNTPWluY2x1ZGVfZmlsZV9tdGltZSBu aW5qYSAtQyBvdXQvUmVsZWFzZSAke21ha2Vqb2JzfSBjaHJvbWUgY2hyb21lZHJpdmVyLnVuc3Ry aXBwZWQgY2hyb21lX2NyYXNocGFkX2hhbmRsZXIKIH0KIAogZG9faW5zdGFsbCgpIHsKIAl2aW5z dGFsbCBvdXQvUmVsZWFzZS9jaHJvbWUgNzU1IHVzci9saWIvJHtwa2duYW1lfSAke3BrZ25hbWV9 CiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvY2hyb21lX2NyYXNocGFkX2hhbmRsZXIgNzU1IHVzci9s aWIvJHtwa2duYW1lfSBjaHJvbWVfY3Jhc2hwYWRfaGFuZGxlcgotCXZpbnN0YWxsIG91dC9SZWxl YXNlL2Nocm9tZWRyaXZlciA3NTUgdXNyL2xpYi8ke3BrZ25hbWV9IGNocm9tZWRyaXZlcgorCXZp bnN0YWxsIG91dC9SZWxlYXNlL2Nocm9tZWRyaXZlci51bnN0cmlwcGVkIDc1NSB1c3IvbGliLyR7 cGtnbmFtZX0gY2hyb21lZHJpdmVyCiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvbGliRUdMLnNvIDc1 NSB1c3IvbGliLyR7cGtnbmFtZX0gbGliRUdMLnNvCiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvbGli R0xFU3YyLnNvIDc1NSB1c3IvbGliLyR7cGtnbmFtZX0gbGliR0xFU3YyLnNvCiAJdmluc3RhbGwg b3V0L1JlbGVhc2UvbGlidmtfc3dpZnRzaGFkZXIuc28gNzU1IHVzci9saWIvJHtwa2duYW1lfSBs aWJ2a19zd2lmdHNoYWRlci5zbwo= --===============7052094110347398645==--