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, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28186 invoked from network); 5 Nov 2023 14:04:56 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Nov 2023 14:04:56 -0000 Content-Type: multipart/mixed; boundary="===============8557027415480316045==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_chromium=3A_update_to_119=2E0=2E6045=2E105=2E?= To: ml@inbox.vuxu.org From: Duncaen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 05 Nov 2023 15:04:56 +0100 List-Id: Message-ID: <20231105140456.1aEwMk--ijg4TzcYc56QULQ_1OQZM8E2g_kpsUaMims@z> GitHub notification mails are now in MIME to allow UTF8. --===============8557027415480316045== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGNocm9taXVtLTExOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDcwNTgKCmNocm9taXVtOiB1cGRhdGUgdG8gMTE5LjAu NjA0NS4xMDUuCltjaSBza2lwXQ0KDQoqIFt4XSB4ODZfNjQtZ2xpYmMNCiogW3hdIHg4Nl82NC1t dXNsDQoqIFsgXSBhYXJjaDY0LW11c2wNCiogWyBdIGk2ODYKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80NzA1OC5wYXRj aCBpcyBhdHRhY2hlZA== --===============8557027415480316045== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-119-47058.patch" RnJvbSA3MGM2OGViMzIzODM4NTA1MjkzZjc0NmZkOTVjODE2YzJiZmZlMmVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFNhdCwgNCBOb3YgMjAyMyAxNjowMjozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGNocm9taXVt OiB1cGRhdGUgdG8gMTE5LjAuNjA0NS4xMDUuCgotLS0KIC4uLi9jaHJvbWl1bS0xMTgtdXNlX3N5 c3RlbV9mcmVldHlwZS5wYXRjaCAgICB8ICA5MSAtLS0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTEx OS1hc3NlcnQucGF0Y2ggICAgICAgICB8ICAxMiArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS0xMTkt Y29uc3RleHByLnBhdGNoICAgICAgfCAgMTIgKwogLi4uLjQucGF0Y2ggPT4gY2hyb21pdW0tMTE5 LWZmbXBlZy00LjQucGF0Y2h9IHwgIDE0ICstCiAuLi50VmlkZW9EZWNvZGVyLWZsYWctb24tVkEt QVBJLWRldmljZXMucGF0Y2ggfCAxOTUgKysrKysrCiAuLi4+IGNocm9taXVtLTExOS1taXNzaW5n LWhlYWRlci1maWxlcy5wYXRjaH0gfCAgMTIgLQogLi4uaHJvbWl1bS0xMTktbm9fbWF0Y2hpbmdf Y29uc3RydWN0b3IucGF0Y2h9IHwgNjA4ICsrKysrKysrKysrLS0tLS0tLQogLi4uLTExOS1udWxs cHRyX3Qtd2l0aG91dC1uYW1lc3BhY2Utc3RkLnBhdGNoIHwgIDIxICsKIC4uLmEtdXNlLXNlcGFy YXRlLWJvLXRvLXZlcmlmeS1tb2RpZmllci5wYXRjaCB8IDE2NCArKysrKwogc3JjcGtncy9jaHJv bWl1bS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiAxMCBmaWxlcyBjaGFu Z2VkLCA3ODYgaW5zZXJ0aW9ucygrKSwgMzUwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTgtdXNlX3N5c3RlbV9mcmVl dHlwZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9j aHJvbWl1bS0xMTktYXNzZXJ0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1jb25zdGV4cHIucGF0Y2gKIHJlbmFtZSBzcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMve2Nocm9taXVtLTExOC1mZm1wZWctNC40LnBhdGNoID0+IGNocm9t aXVtLTExOS1mZm1wZWctNC40LnBhdGNofSAoNTMlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktaGlkZS1Vc2VDaHJvbWVPU0RpcmVjdFZp ZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2VzLnBhdGNoCiByZW5hbWUgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL3tjaHJvbWl1bS0xMTgtbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gg PT4gY2hyb21pdW0tMTE5LW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNofSAoOTclKQogcmVuYW1l IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy97Y2hyb21pdW0tMTE4LW5vX21hdGNoaW5nX2NvbnN0 cnVjdG9yLnBhdGNoID0+IGNocm9taXVtLTExOS1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRj aH0gKDU2JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hy b21pdW0tMTE5LW51bGxwdHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LW52aWRpYS11 c2Utc2VwYXJhdGUtYm8tdG8tdmVyaWZ5LW1vZGlmaWVyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOC11c2Vfc3lzdGVtX2ZyZWV0eXBlLnBh dGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOC11c2Vfc3lzdGVtX2Zy ZWV0eXBlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTlmYmRlYmUyZmI3 Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0x MTgtdXNlX3N5c3RlbV9mcmVldHlwZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAg QEAKLWNvbW1pdCBlZDM1NGQwMGFlZGE4NDY5MzYxMWIxNGJhYTU2YTI4NzU1N2EyNmI1Ci1BdXRo b3I6IE11bmlyYSBUdXJzdW5vdmEgPG1vb25pcmFAZ29vZ2xlLmNvbT4KLURhdGU6ICAgVHVlIFNl cCAxMiAxMTo1NDo0OCAyMDIzICswMDAwCi0KLSAgICBBZGQgY2hlY2sgZm9yIHVzZV9zeXN0ZW1f ZnJlZXR5cGUgd2hlbiBpbXBvcnRpbmcgcHJpdmF0ZSBmcmVldHlwZSBoZWFkZXIKLSAgICAKLSAg ICBJbiBbMF0gdGhlIGluY2x1ZGUgb2YgcHJpdmF0ZSBmcmVldHlwZSBoZWFkZXIgd2FzIGFkZGVk LCB3aGljaCBjYXVzZWQKLSAgICBidWlsZCBicmVha2FnZSB3aGVuIHVzZV9zeXN0ZW1fZnJlZXR5 cGU9dHJ1ZSwgc2VlIFsxXS4KLSAgICAKLSAgICBUaGlzIENMIGZpeGVzIHRoZSBicmVha2FnZSBi eSBpbnRyb2R1Y2luZyBVU0VfU1lTVEVNX0ZSRUVUWVBFIGJ1aWxkIGZsYWcuCi0gICAgCi0gICAg WzBdIGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9z cmMvKy80NzE3NDg1Ci0gICAgWzFdIGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJj ZS5jb20vYy9jaHJvbWl1bS9zcmMvKy80NzE3NDg1L2NvbW1lbnRzL2NkZmNhN2I5XzhlNjFiMmUw Ci0gICAgCi0gICAgQnVnOiAxNDI5NTgxCi0gICAgQ2hhbmdlLUlkOiBJN2Y3ZGU0Y2RiMmRjNDYw OTJhOTFhNDdkNzY2YmVkYjU4ZGRjY2I3YwotICAgIFJldmlld2VkLW9uOiBodHRwczovL2Nocm9t aXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvNDg0MzQyOAotICAg IENvbW1pdC1RdWV1ZTogTXVuaXJhIFR1cnN1bm92YSA8bW9vbmlyYUBnb29nbGUuY29tPgotICAg IFJldmlld2VkLWJ5OiBEb21pbmlrIFLDtnR0c2NoZXMgPGRyb3R0QGNocm9taXVtLm9yZz4KLSAg ICBSZXZpZXdlZC1ieTogUmljayBCeWVycyA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KLSAgICBDci1D b21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFpbkB7IzExOTUzMjN9Ci0KLWRpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9CVUlMRC5nbiBiL3RoaXJkX3BhcnR5L0JVSUxELmduCi1pbmRleCA3YjA4 NmY5NTQxM2ZmLi40Y2U3OTdlYmFkNzIyIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvQlVJTEQu Z24KLSsrKyBiL3RoaXJkX3BhcnR5L0JVSUxELmduCi1AQCAtMiw2ICsyLDcgQEAKLSAjIFVzZSBv ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhh dCBjYW4gYmUKLSAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0gCi0raW1wb3J0KCIvL2J1 aWxkL2J1aWxkZmxhZ19oZWFkZXIuZ25pIikKLSBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL2ZlYXR1 cmVzLmduaSIpCi0gaW1wb3J0KCIvL2J1aWxkL2NvbmZpZy9mcmVldHlwZS9mcmVldHlwZS5nbmki KQotIGltcG9ydCgiLy90aGlyZF9wYXJ0eS9oYXJmYnV6ei1uZy9oYXJmYnV6ei5nbmkiKQotQEAg LTY1LDMgKzY2LDggQEAgY29tcG9uZW50KCJmcmVldHlwZV9oYXJmYnV6eiIpIHsKLSAgICAgcHVi bGljX2RlcHMgKz0gWyAiLy90aGlyZF9wYXJ0eS9oYXJmYnV6ei1uZzpoYXJmYnV6el9zb3VyY2Ui IF0KLSAgIH0KLSB9Ci0rCi0rYnVpbGRmbGFnX2hlYWRlcigiZnJlZXR5cGVfYnVpbGRmbGFncyIp IHsKLSsgIGhlYWRlciA9ICJmcmVldHlwZV9idWlsZGZsYWdzLmgiCi0rICBmbGFncyA9IFsgIlVT RV9TWVNURU1fRlJFRVRZUEU9JHVzZV9zeXN0ZW1fZnJlZXR5cGUiIF0KLSt9Ci1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vQlVJTEQuZ24gYi90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbgotaW5kZXggNTkxZDJmOTM5NjA1 Yi4uZjZhMmNkMjE2OGQxZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVy L3BsYXRmb3JtL0JVSUxELmduCi0rKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS9CVUlMRC5nbgotQEAgLTE3MTcsNiArMTcxNyw3IEBAIGNvbXBvbmVudCgicGxhdGZvcm0i KSB7Ci0gICAgICIvL3NlcnZpY2VzL3Zpei9wdWJsaWMvY3BwL2dwdSIsCi0gICAgICIvL3NraWEi LAotICAgICAiLy9za2lhOnNrY21zIiwKLSsgICAgIi8vdGhpcmRfcGFydHk6ZnJlZXR5cGVfYnVp bGRmbGFncyIsCi0gICAgICIvL3RoaXJkX3BhcnR5OmZyZWV0eXBlX2hhcmZidXp6IiwKLSAgICAg Ii8vdGhpcmRfcGFydHkvYWJzZWlsLWNwcDphYnNsIiwKLSAgICAgIi8vdGhpcmRfcGFydHkvYmxp bmsvcHVibGljOmltYWdlX3Jlc291cmNlcyIsCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvc2ltcGxlX2ZvbnRfZGF0YS5jYyBiL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3NpbXBsZV9mb250X2RhdGEuY2MKLWlu ZGV4IGFiZTA2ZjM1YzE0YTUuLmIyYmZkODhmMGQ4NWQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9zaW1wbGVfZm9udF9kYXRhLmNjCi0rKysg Yi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9zaW1wbGVfZm9udF9k YXRhLmNjCi1AQCAtNDgsNyArNDgsNyBAQAotICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS93dGYvbWF0aF9leHRyYXMuaCIKLSAjaW5jbHVkZSAidGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvY2hhcmFjdGVyX25hbWVzLmgiCi0g I2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi90ZXh0L3Vu aWNvZGUuaCIKLS0jaW5jbHVkZSAidGhpcmRfcGFydHkvZnJlZXR5cGUvc3JjL3NyYy9hdXRvZml0 L2Fmd3MtZGVjbC5oIgotKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9mcmVldHlwZV9idWlsZGZsYWdz LmgiCi0gI2luY2x1ZGUgInRoaXJkX3BhcnR5L3NraWEvaW5jbHVkZS9jb3JlL1NrRm9udE1ldHJp Y3MuaCIKLSAjaW5jbHVkZSAidGhpcmRfcGFydHkvc2tpYS9pbmNsdWRlL2NvcmUvU2tQYXRoLmgi Ci0gI2luY2x1ZGUgInRoaXJkX3BhcnR5L3NraWEvaW5jbHVkZS9jb3JlL1NrVHlwZWZhY2UuaCIK LUBAIC01NywxMiArNTcsMjIgQEAKLSAjaW5jbHVkZSAidWkvZ2Z4L2dlb21ldHJ5L3NraWFfY29u dmVyc2lvbnMuaCIKLSAjaW5jbHVkZSAidjgvaW5jbHVkZS92OC5oIgotIAotKyNpZiAhQlVJTERG TEFHKFVTRV9TWVNURU1fRlJFRVRZUEUpCi0rI2luY2x1ZGUgInRoaXJkX3BhcnR5L2ZyZWV0eXBl L3NyYy9zcmMvYXV0b2ZpdC9hZndzLWRlY2wuaCIKLSsjZW5kaWYKLSsKLSBuYW1lc3BhY2UgYmxp bmsgewotIAotIGNvbnN0ZXhwciBmbG9hdCBrU21hbGxDYXBzRm9udFNpemVNdWx0aXBsaWVyID0g MC43ZjsKLSBjb25zdGV4cHIgZmxvYXQga0VtcGhhc2lzTWFya0ZvbnRTaXplTXVsdGlwbGllciA9 IDAuNWY7Ci0rCi0rI2lmICFCVUlMREZMQUcoVVNFX1NZU1RFTV9GUkVFVFlQRSkKLSBjb25zdGV4 cHIgaW50MzJfdCBrRm9udE9iamVjdHNNZW1vcnlDb25zdW1wdGlvbiA9Ci0gICAgIHN0ZDo6bWF4 KHNpemVvZihBRl9MYXRpbk1ldHJpY3NSZWMpLCBzaXplb2YoQUZfQ0pLTWV0cmljc1JlYykpOwot KyNlbHNlCi0rLy8gc2l6ZW9mKEFGX0xhdGluTWV0cmljc1JlYykgPSAyMTI4Ci0rY29uc3RleHBy IGludDMyX3Qga0ZvbnRPYmplY3RzTWVtb3J5Q29uc3VtcHRpb24gPSAyMTI4OwotKyNlbmRpZgot IAotIFNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRh JiBwbGF0Zm9ybV9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZWRf cmVmcHRyPEN1c3RvbUZvbnREYXRhPiBjdXN0b21fZGF0YSwKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktYXNzZXJ0LnBhdGNoIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1hc3NlcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNmM1MDJmMTNhNTk1NQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktYXNzZXJ0LnBhdGNoCkBAIC0w LDAgKzEsMTIgQEAKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdjgvc3JjL2Jhc2Uv c21hbGwtdmVjdG9yLmgudGhhbiBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3Y4L3NyYy9iYXNlL3Nt YWxsLXZlY3Rvci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS92OC9zcmMvYmFzZS9zbWFs bC12ZWN0b3IuaC50aGFuCTIwMjMtMTEtMDEgMTY6MTM6MTIuNjQ1MzAxMzQ1ICswMTAwCisrKysg Y2hyb21pdW0tMTE5LjAuNjA0NS41OS92OC9zcmMvYmFzZS9zbWFsbC12ZWN0b3IuaAkyMDIzLTEx LTAxIDE2OjEzOjI5LjY2MDYxMDE4MiArMDEwMAorQEAgLTIyLDcgKzIyLDcgQEAgdGVtcGxhdGUg PHR5cGVuYW1lIFQsIHNpemVfdCBrU2l6ZSwgdHlwZQorIGNsYXNzIFNtYWxsVmVjdG9yIHsKKyAg IC8vIEN1cnJlbnRseSBvbmx5IHN1cHBvcnQgdHJpdmlhbGx5IGNvcHlhYmxlIGFuZCB0cml2aWFs bHkgZGVzdHJ1Y3RpYmxlIGRhdGEKKyAgIC8vIHR5cGVzLCBhcyBpdCB1c2VzIG1lbWNweSB0byBj b3B5IGVsZW1lbnRzIGFuZCBuZXZlciBjYWxscyBkZXN0cnVjdG9ycy4KKy0gIEFTU0VSVF9UUklW SUFMTFlfQ09QWUFCTEUoVCk7CisrICAvL0FTU0VSVF9UUklWSUFMTFlfQ09QWUFCTEUoVCk7Cisg ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUp OworIAorICBwdWJsaWM6CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hy b21pdW0tMTE5LWNvbnN0ZXhwci5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJv bWl1bS0xMTktY29uc3RleHByLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLmIxOTVmZjQwOGJhODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LWNvbnN0ZXhwci5wYXRjaApAQCAtMCwwICsxLDEyIEBA CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvbWlyYWNsZV9wYXJh bWV0ZXIvY29tbW9uL3B1YmxpYy9taXJhY2xlX3BhcmFtZXRlci5oLm1lIGNocm9taXVtLTExOS4w LjYwNDUuNTkvY29tcG9uZW50cy9taXJhY2xlX3BhcmFtZXRlci9jb21tb24vcHVibGljL21pcmFj bGVfcGFyYW1ldGVyLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvbWly YWNsZV9wYXJhbWV0ZXIvY29tbW9uL3B1YmxpYy9taXJhY2xlX3BhcmFtZXRlci5oLm1lCTIwMjMt MTAtMzEgMjE6MDU6MDUuNTQ4NTY1MjQxICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41 OS9jb21wb25lbnRzL21pcmFjbGVfcGFyYW1ldGVyL2NvbW1vbi9wdWJsaWMvbWlyYWNsZV9wYXJh bWV0ZXIuaAkyMDIzLTEwLTMxIDIxOjIwOjUzLjk0NTUzMjA5NCArMDEwMAorQEAgLTkzLDcgKzkz LDcgQEAgY2xhc3MgTWlyYWNsZVBhcmFtZXRlciB7CisgdGVtcGxhdGUgPD4KKyBjbGFzcyBNaXJh Y2xlUGFyYW1ldGVyPHN0ZDo6c3RyaW5nPiA6IHB1YmxpYyBNaXJhY2xlUGFyYW1ldGVyQmFzZTxz dGQ6OnN0cmluZz4geworICBwdWJsaWM6CistICBjb25zdGV4cHIgTWlyYWNsZVBhcmFtZXRlcihj b25zdCBiYXNlOjpGZWF0dXJlKiBmZWF0dXJlLAorKyAgTWlyYWNsZVBhcmFtZXRlcihjb25zdCBi YXNlOjpGZWF0dXJlKiBmZWF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciogcGFyYW1fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6 c3RyaW5nIGRlZmF1bHRfdmFsdWUpCisgICAgICAgOiBNaXJhY2xlUGFyYW1ldGVyQmFzZShmZWF0 dXJlLCBwYXJhbV9uYW1lLCBzdGQ6Om1vdmUoZGVmYXVsdF92YWx1ZSkpIHt9CmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LWZmbXBlZy00LjQucGF0Y2gg Yi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LWZmbXBlZy00LjQucGF0Y2gK c2ltaWxhcml0eSBpbmRleCA1MyUKcmVuYW1lIGZyb20gc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTExOC1mZm1wZWctNC40LnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tMTE5LWZmbXBlZy00LjQucGF0Y2gKaW5kZXggNTU2YzczNGQ0ZTAy ZS4uMDRkMDRiMTY2YmEzNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2No cm9taXVtLTExOC1mZm1wZWctNC40LnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9jaHJvbWl1bS0xMTktZmZtcGVnLTQuNC5wYXRjaApAQCAtMSwxNyArMSwxNSBAQAotZGlmZiAt LWdpdCBhL21lZGlhL2ZpbHRlcnMvZmZtcGVnX2RlbXV4ZXIuY2MgYi9tZWRpYS9maWx0ZXJzL2Zm bXBlZ19kZW11eGVyLmNjCi1pbmRleCBhYzQ3MTNiMDcyNjguLjQ5MmE5YTM3ZDA5NiAxMDA2NDQK LS0tLSBhL21lZGlhL2ZpbHRlcnMvZmZtcGVnX2RlbXV4ZXIuY2MKKy0tLSBhL21lZGlhL2ZpbHRl cnMvZmZtcGVnX2RlbXV4ZXIuY2Mub3JpZwogKysrIGIvbWVkaWEvZmlsdGVycy9mZm1wZWdfZGVt dXhlci5jYwotQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIEZGbXBlZ0RlbXV4ZXJTdHJlYW06OkVu cXVldWVQYWNrZXQoU2NvcGVkQVZQYWNrZXQgcGFja2V0KSB7Ci0gICAgIGJ1ZmZlciA9IERlY29k ZXJCdWZmZXI6OkNvcHlGcm9tKHBhY2tldC0+ZGF0YSwgcGFja2V0LT5zaXplLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlX2RhdGEuZGF0YSgpLCBzaWRlX2RhdGEu c2l6ZSgpKTsKLSAgIH0gZWxzZSB7CitAQCAtMzkwLDcgKzM5MCw3IEBACisgCisgICBzY29wZWRf cmVmcHRyPERlY29kZXJCdWZmZXI+IGJ1ZmZlcjsKKyAKIC0gICAgc2l6ZV90IHNpZGVfZGF0YV9z aXplID0gMDsKICsgICAgaW50IHNpZGVfZGF0YV9zaXplID0gMDsKICAgICAgdWludDhfdCogc2lk ZV9kYXRhID0gYXZfcGFja2V0X2dldF9zaWRlX2RhdGEoCiAgICAgICAgICBwYWNrZXQuZ2V0KCks IEFWX1BLVF9EQVRBX01BVFJPU0tBX0JMT0NLQURESVRJT05BTCwgJnNpZGVfZGF0YV9zaXplKTsK ICAKLUBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBGRm1wZWdEZW11eGVyU3RyZWFtOjpFbnF1ZXVl UGFja2V0KFNjb3BlZEFWUGFja2V0IHBhY2tldCkgeworQEAgLTQ1Myw3ICs0NTMsNyBAQAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2tldC0+c2l6ZSAtIGRhdGFf b2Zmc2V0KTsKICAgICAgfQogIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTExOS1oaWRlLVVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyLWZsYWctb24t VkEtQVBJLWRldmljZXMucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t MTE5LWhpZGUtVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXItZmxhZy1vbi1WQS1BUEktZGV2 aWNlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi44OGQ2 NzVlODA0N2YwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2No cm9taXVtLTExOS1oaWRlLVVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyLWZsYWctb24tVkEt QVBJLWRldmljZXMucGF0Y2gKQEAgLTAsMCArMSwxOTUgQEAKK2NvbW1pdCA4N2ZjYTdmMTc1OWU4 MDBiZDcyYjVhYjY1MTFlZWExN2Q2NDAwYTc2CitBdXRob3I6IFBpbGFyIE1vbGluYSBMb3BleiA8 cG1vbGluYWxvcGV6QGNocm9taXVtLm9yZz4KK0RhdGU6ICAgVHVlIE9jdCAyNCAxOTo1Nzo1NSAy MDIzICswMDAwCisKKyAgICB2aWRlbzogaGlkZSBVc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rl ciBmbGFnIG9uIFZBLUFQSSBkZXZpY2VzCisgICAgCisgICAgV2UgYXJlIHNlZWluZyBjcmFzaGVz IGNhdXNlcyBieSB0aGlzIENIRUNLIHN0YXRlbWVudDoKKyAgICBodHRwczovL3NvdXJjZS5jaHJv bWl1bS5vcmcvY2hyb21pdW0vY2hyb21pdW0vc3JjLysvbWFpbjpjb250ZW50L3B1YmxpYy9icm93 c2VyL2dwdV91dGlscy5jYztsPTE1MTtkcmM9MGU3NzdiYTliNmMzNDYxMTcwNWQ1YjE0NWM5MmJj ZDA5NTM5MDExYworICAgIEl0J3MgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgbWFudWFsbHkgZGlz YWJsZXMgdGhlIFVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyCisgICAgZmxhZyBvbiBWQS1B UEkgZGV2aWNlcyAoSW50ZWwgYW5kIEFNRCkuIFRoaXMgZmxhZyBpcyBzdXBwb3J0ZWQgb25seSBv bgorICAgIG5vbi1JbnRlbCBhbmQgbm9uLUFNRCBkZXZpY2VzLiBUaGlzIENMIGFkZHMgdGhpcyBp bmZvcm1hdGlvbiB0byB0aGUgZmxhZworICAgIGRlc2NyaXB0aW9uIGFuZCBoaWRlcyB0aGUgZmxh ZyBpbiBjYXNlIFZBLUFQSSBpcyB1c2VkLgorICAgIAorICAgIEJ1ZzogMTQ2OTI4NQorICAgIFRl c3Q6IG1hbnVhbCB0ZXN0IG9uIHZvbHRlZXIKKyAgICBDaGFuZ2UtSWQ6IEkxNTNiOWNjYjM4MTU0 OThjOTFjZTVlZWU5NjY4MzQwNjA3NDllMjQ3CisgICAgUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hy b21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy80OTYwOTE5Cisg ICAgUmV2aWV3ZWQtYnk6IERhbGUgQ3VydGlzIDxkYWxlY3VydGlzQGNocm9taXVtLm9yZz4KKyAg ICBSZXZpZXdlZC1ieTogQW5kcmVzIENhbGRlcm9uIEphcmFtaWxsbyA8YW5kcmVzY2pAY2hyb21p dW0ub3JnPgorICAgIFJldmlld2VkLWJ5OiBBdmkgRHJpc3NtYW4gPGF2aUBjaHJvbWl1bS5vcmc+ CisgICAgQ29tbWl0LVF1ZXVlOiBQaWxhciBNb2xpbmEgTG9wZXogPHBtb2xpbmFsb3BlekBjaHJv bWl1bS5vcmc+CisgICAgQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyMxMjE0 NDExfQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dzZXIvREVQUyBiL2Nocm9tZS9icm93c2Vy L0RFUFMKK2luZGV4IGVlOWZiMjA2Y2RlMzYuLjBmZTE4MDEzYWIwNDQgMTAwNjQ0CistLS0gYS9j aHJvbWUvYnJvd3Nlci9ERVBTCisrKysgYi9jaHJvbWUvYnJvd3Nlci9ERVBTCitAQCAtNDE4LDYg KzQxOCw3IEBAIGluY2x1ZGVfcnVsZXMgPSBbCisgICAiK21lZGlhL2Jhc2UiLCAgIyBGb3IgbWVk aWEgc3dpdGNoZXMKKyAgICIrbWVkaWEvY2FwYWJpbGl0aWVzIiwgIyBGb3IgSW5NZW1vcnlWaWRl b0RlY29kZVN0YXRzREIKKyAgICIrbWVkaWEvY2RtIiwKKysgICIrbWVkaWEvZ3B1L2J1aWxkZmxh Z3MuaCIsCisgICAiK21lZGlhL3JlbW90aW5nL2RldmljZV9jYXBhYmlsaXR5X2NoZWNrZXIuaCIs CisgICAiK21lZGlhL2NhcHR1cmUiLAorICAgIittZWRpYS9taWRpIiwgICMgRm9yIG1pZGkgc3dp dGNoZXMKK2RpZmYgLS1naXQgYS9jaHJvbWUvYnJvd3Nlci9hYm91dF9mbGFncy5jYyBiL2Nocm9t ZS9icm93c2VyL2Fib3V0X2ZsYWdzLmNjCitpbmRleCA4NDcwOWFmYWEzNGQwLi43NzdiZWJlYjMz ZDllIDEwMDY0NAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvYWJvdXRfZmxhZ3MuY2MKKysrKyBiL2No cm9tZS9icm93c2VyL2Fib3V0X2ZsYWdzLmNjCitAQCAtNzU3OCwxMSArNzU3OCwxMyBAQCBjb25z dCBGZWF0dXJlRW50cnkga0ZlYXR1cmVFbnRyaWVzW10gPSB7CisgI2VuZGlmICAvLyBCVUlMREZM QUcoSVNfQ0hST01FT1NfQVNIKQorIAorICNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1MpICYmIEJV SUxERkxBRyhVU0VfQ0hST01FT1NfTUVESUFfQUNDRUxFUkFUSU9OKQorKyNpZiAhQlVJTERGTEFH KFVTRV9WQUFQSSkKKyAgICAgeyJjaHJvbWVvcy1kaXJlY3QtdmlkZW8tZGVjb2RlciIsCisgICAg ICBmbGFnX2Rlc2NyaXB0aW9uczo6a0Nocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyTmFtZSwKKyAg ICAgIGZsYWdfZGVzY3JpcHRpb25zOjprQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXJEZXNjcmlw dGlvbiwKKyAgICAgIGtPc0NyT1MgfCBrT3NMYWNyb3MsCisgICAgICBGRUFUVVJFX1ZBTFVFX1RZ UEUobWVkaWE6OmtVc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlcil9LAorKyNlbmRpZiAgLy8g IUJVSUxERkxBRyhVU0VfVkFBUEkpCisgCisgICAgIHsiZW5hYmxlLXZici1lbmNvZGUtYWNjZWxl cmF0aW9uIiwKKyAgICAgIGZsYWdfZGVzY3JpcHRpb25zOjprQ2hyb21lT1NIV1ZCUkVuY29kaW5n TmFtZSwKK2RpZmYgLS1naXQgYS9jaHJvbWUvYnJvd3Nlci9mbGFnX2Rlc2NyaXB0aW9ucy5jYyBi L2Nocm9tZS9icm93c2VyL2ZsYWdfZGVzY3JpcHRpb25zLmNjCitpbmRleCAzMThhOGJlOWFiMWE2 Li5kMjQ5N2QwYzQwM2YzIDEwMDY0NAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvZmxhZ19kZXNjcmlw dGlvbnMuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2ZsYWdfZGVzY3JpcHRpb25zLmNjCitAQCAt Nyw2ICs3LDcgQEAKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisgI2luY2x1ZGUg ImJ1aWxkL2Nocm9tZW9zX2J1aWxkZmxhZ3MuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9zdXBl cnZpc2VkX3VzZXIvY29yZS9jb21tb24vYnVpbGRmbGFncy5oIgorKyNpbmNsdWRlICJtZWRpYS9n cHUvYnVpbGRmbGFncy5oIgorICNpbmNsdWRlICJwZGYvYnVpbGRmbGFncy5oIgorIAorIC8vIEtl ZXAgaW4gaWRlbnRpY2FsIG9yZGVyIGFzIHRoZSBoZWFkZXIgZmlsZSwgc2VlIHRoZSBjb21tZW50 IGF0IHRoZSB0b3AKK0BAIC03MzM4LDYgKzczMzksNyBAQCBjb25zdCBjaGFyIGtRdWlja09mZmlj ZUZvcmNlRmlsZURvd25sb2FkRGVzY3JpcHRpb25bXSA9CisgI2VuZGlmICAvLyBCVUlMREZMQUco SVNfQ0hST01FT1MpCisgCisgI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykgJiYgQlVJTERGTEFH KFVTRV9DSFJPTUVPU19NRURJQV9BQ0NFTEVSQVRJT04pCisrI2lmICFCVUlMREZMQUcoVVNFX1ZB QVBJKQorIGNvbnN0IGNoYXIga0Nocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyTmFtZVtdID0gIkNo cm9tZU9TIERpcmVjdCBWaWRlbyBEZWNvZGVyIjsKKyBjb25zdCBjaGFyIGtDaHJvbWVPU0RpcmVj dFZpZGVvRGVjb2RlckRlc2NyaXB0aW9uW10gPQorICAgICAiRW5hYmxlcyB0aGUgaGFyZHdhcmUt YWNjZWxlcmF0ZWQgQ2hyb21lT1MgZGlyZWN0IG1lZGlhOjpWaWRlb0RlY29kZXIgIgorQEAgLTcz NDUsNyArNzM0Nyw4IEBAIGNvbnN0IGNoYXIga0Nocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyRGVz Y3JpcHRpb25bXSA9CisgICAgICItLXBsYXRmb3JtLWRpc2FsbG93cy1jaHJvbWVvcy1kaXJlY3Qt dmlkZW8tZGVjb2RlciBjb21tYW5kIGxpbmUgc3dpdGNoICIKKyAgICAgIndoaWNoIGlzIGFkZGVk IGZvciBwbGF0Zm9ybXMgd2hlcmUgc2FpZCBkaXJlY3QgVmlkZW9EZWNvZGVyIGRvZXMgbm90IHdv cmsgIgorICAgICAib3IgaXMgbm90IHdlbGwgdGVzdGVkIChzZWUgdGhlIGRpc2FibGVfY3Jvc192 aWRlb19kZWNvZGVyIFVTRSBmbGFnIGluICIKKy0gICAgIkNocm9tZU9TKSI7CisrICAgICJDaHJv bWVPUykuIFRoaXMgZmxhZyBpcyBzdXBwb3J0ZWQgb25seSBvbiBub24tSW50ZWwgYW5kIG5vbi1B TUQgZGV2aWNlcy4iOworKyNlbmRpZiAgLy8gIUJVSUxERkxBRyhVU0VfVkFBUEkpCisgY29uc3Qg Y2hhciBrQ2hyb21lT1NIV1ZCUkVuY29kaW5nTmFtZVtdID0KKyAgICAgIkNocm9tZU9TIEhhcmR3 YXJlIFZhcmlhYmxlIEJpdHJhdGUgRW5jb2RpbmciOworIGNvbnN0IGNoYXIga0Nocm9tZU9TSFdW QlJFbmNvZGluZ0Rlc2NyaXB0aW9uW10gPQorZGlmZiAtLWdpdCBhL2NvbnRlbnQvcHVibGljL2Jy b3dzZXIvZ3B1X3V0aWxzLmNjIGIvY29udGVudC9wdWJsaWMvYnJvd3Nlci9ncHVfdXRpbHMuY2MK K2luZGV4IGRjZWVjYTk2NTlhODUuLjNkMDkxMzU5Nzc3Y2MgMTAwNjQ0CistLS0gYS9jb250ZW50 L3B1YmxpYy9icm93c2VyL2dwdV91dGlscy5jYworKysrIGIvY29udGVudC9wdWJsaWMvYnJvd3Nl ci9ncHVfdXRpbHMuY2MKK0BAIC0xMzMsMjAgKzEzMywyNiBAQCBjb25zdCBncHU6OkdwdVByZWZl cmVuY2VzIEdldEdwdVByZWZlcmVuY2VzRnJvbUNvbW1hbmRMaW5lKCkgeworICNpZiBCVUlMREZM QUcoVVNFX0NIUk9NRU9TX01FRElBX0FDQ0VMRVJBVElPTikKKyAgIC8vIFRoZSBkaXJlY3QgVmlk ZW9EZWNvZGVyIGlzIGRpc2FsbG93ZWQgb24gc29tZSBwYXJ0aWN1bGFyIFNvQy9wbGF0Zm9ybXMu CisgICBjb25zdCBib29sIHNob3VsZF91c2VfZGlyZWN0X3ZpZGVvX2RlY29kZXIgPQorKyNpZiBC VUlMREZMQUcoVVNFX1ZBQVBJKQorKyAgICAgIHRydWU7CisrI2Vsc2UKKyAgICAgICAhY29tbWFu ZF9saW5lLT5IYXNTd2l0Y2goCisgICAgICAgICAgIHN3aXRjaGVzOjprUGxhdGZvcm1EaXNhbGxv d3NDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2RlcikgJiYKKyAgICAgICBiYXNlOjpGZWF0dXJlTGlz dDo6SXNFbmFibGVkKG1lZGlhOjprVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXIpOworKyNl bmRpZiAgLy8gQlVJTERGTEFHKFVTRV9WQUFQSSkKKysKKysgIGdwdV9wcmVmZXJlbmNlcy5lbmFi bGVfY2hyb21lb3NfZGlyZWN0X3ZpZGVvX2RlY29kZXIgPQorKyNpZiBCVUlMREZMQUcoVVNFX1ZB QVBJKQorKyAgICAgIHNob3VsZF91c2VfZGlyZWN0X3ZpZGVvX2RlY29kZXI7CisrI2Vsc2UKKysg ICAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlcywgdGhlIGZvbGxvd2luZyBmbGFnIGFsbG93cyB1 c2luZyB0aGUgIm90aGVyIiB2aWRlbworKyAgICAgIC8vIGRlY29kZXIgaW1wbGVtZW50YXRpb24u CisrICAgICAgYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZCgKKysgICAgICAgICAgbWVkaWE6 OmtVc2VBbHRlcm5hdGVWaWRlb0RlY29kZXJJbXBsZW1lbnRhdGlvbikKKysgICAgICAgICAgPyAh c2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9fZGVjb2RlcgorKyAgICAgICAgICA6IHNob3VsZF91c2Vf ZGlyZWN0X3ZpZGVvX2RlY29kZXI7CisrI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJKQor IAorLSAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMsIHRoZSBmb2xsb3dpbmcgZmxhZyBhbGxvd3Mg dXNpbmcgdGhlICJvdGhlciIgdmlkZW8KKy0gIC8vIGRlY29kZXIgaW1wbGVtZW50YXRpb24uCist ICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZCgKKy0gICAgICAgICAgbWVkaWE6OmtV c2VBbHRlcm5hdGVWaWRlb0RlY29kZXJJbXBsZW1lbnRhdGlvbikpIHsKKy0gICAgZ3B1X3ByZWZl cmVuY2VzLmVuYWJsZV9jaHJvbWVvc19kaXJlY3RfdmlkZW9fZGVjb2RlciA9CistICAgICAgICAh c2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9fZGVjb2RlcjsKKy0gIH0gZWxzZSB7CistICAgIGdwdV9w cmVmZXJlbmNlcy5lbmFibGVfY2hyb21lb3NfZGlyZWN0X3ZpZGVvX2RlY29kZXIgPQorLSAgICAg ICAgc2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9fZGVjb2RlcjsKKy0gIH0KKyAjaWYgQlVJTERGTEFH KFVTRV9WQUFQSSkKKyAgIENIRUNLKGdwdV9wcmVmZXJlbmNlcy5lbmFibGVfY2hyb21lb3NfZGly ZWN0X3ZpZGVvX2RlY29kZXIpOworICNlbmRpZiAgLy8gQlVJTERGTEFHKFVTRV9WQUFQSSkKK2Rp ZmYgLS1naXQgYS9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjIGIvbWVkaWEvYmFzZS9tZWRp YV9zd2l0Y2hlcy5jYworaW5kZXggMWFmNGRlNDZlMmEwMi4uMzA4NmIxYmVjMjEzNCAxMDA2NDQK Ky0tLSBhL21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MKKysrKyBiL21lZGlhL2Jhc2UvbWVk aWFfc3dpdGNoZXMuY2MKK0BAIC0xMTkyLDYgKzExOTIsNyBAQCBCQVNFX0ZFQVRVUkUoa0Nocm9t ZU9TSFdWQlJFbmNvZGluZywKKyAgICAgICAgICAgICAgIkNocm9tZU9TSFdWQlJFbmNvZGluZyIs CisgICAgICAgICAgICAgIGJhc2U6OkZFQVRVUkVfRElTQUJMRURfQllfREVGQVVMVCk7CisgCisr I2lmICFCVUlMREZMQUcoVVNFX1ZBQVBJKQorIC8vIEVuYWJsZSB0aGUgaGFyZHdhcmUtYWNjZWxl cmF0ZWQgZGlyZWN0IHZpZGVvIGRlY29kZXIgaW5zdGVhZCBvZiB0aGUgb25lCisgLy8gbmVlZGlu ZyB0aGUgVmRhVmlkZW9EZWNvZGVyIGFkYXB0ZXIuIFRoaXMgZmxhZyBpcyB1c2VkIG1haW5seSBh cyBhCisgLy8gY2hyb21lOmZsYWcgZm9yIGRldmVsb3BlcnMgZGVidWdnaW5nIGlzc3VlcyBhcyB3 ZWxsIGFzIHRvIGJlIGFibGUgdG8KK0BAIC0xMjAwLDYgKzEyMDEsNyBAQCBCQVNFX0ZFQVRVUkUo a0Nocm9tZU9TSFdWQlJFbmNvZGluZywKKyBCQVNFX0ZFQVRVUkUoa1VzZUNocm9tZU9TRGlyZWN0 VmlkZW9EZWNvZGVyLAorICAgICAgICAgICAgICAiVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29k ZXIiLAorICAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0VOQUJMRURfQllfREVGQVVMVCk7Cisr I2VuZGlmICAvLyAhQlVJTERGTEFHKFVTRV9WQUFQSSkKKyAKKyAvLyBMaW1pdCB0aGUgbnVtYmVy IG9mIGNvbmN1cnJlbnQgaGFyZHdhcmUgZGVjb2RlciBpbnN0YW5jZXMgb24gQ2hyb21lT1MuCisg QkFTRV9GRUFUVVJFKGtMaW1pdENvbmN1cnJlbnREZWNvZGVySW5zdGFuY2VzLAorQEAgLTEyMjgs NyArMTIzMCw3IEBAIEJBU0VfRkVBVFVSRShrUHJlZmVyU29mdHdhcmVNVDIxLAorICAgICAgICAg ICAgICAiUHJlZmVyU29mdHdhcmVNVDIxIiwKKyAgICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9E SVNBQkxFRF9CWV9ERUZBVUxUKTsKKyAjZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZB TUlMWSkKKy0jaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TKQorKyNpZiBCVUlMREZMQUcoSVNfQ0hS T01FT1MpICYmICFCVUlMREZMQUcoVVNFX1ZBQVBJKQorIC8vIENocm9tZU9TIGhhcyBvbmUgb2Yg dHdvIFZpZGVvRGVjb2RlciBpbXBsZW1lbnRhdGlvbnMgYWN0aXZlIGJhc2VkIG9uCisgLy8gU29D L2JvYXJkIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIHNlbnQgdmlhIGNvbW1hbmQg bGluZSBmbGFncy4gVGhpcworIC8vIHN3aXRjaCBhbGxvd3MgdXNpbmcgdGhlIG5vbiBkZWZhdWx0 IGltcGxlbWVudGF0aW9uIGZvciB0ZXN0aW5nLgorQEAgLTEyMzYsNyArMTIzOCw3IEBAIEJBU0Vf RkVBVFVSRShrUHJlZmVyU29mdHdhcmVNVDIxLAorIEJBU0VfRkVBVFVSRShrVXNlQWx0ZXJuYXRl VmlkZW9EZWNvZGVySW1wbGVtZW50YXRpb24sCisgICAgICAgICAgICAgICJVc2VBbHRlcm5hdGVW aWRlb0RlY29kZXJJbXBsZW1lbnRhdGlvbiIsCisgICAgICAgICAgICAgIGJhc2U6OkZFQVRVUkVf RElTQUJMRURfQllfREVGQVVMVCk7CistI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQ0hST01FT1Mp CisrI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpICYmICFCVUlMREZMQUcoVVNFX1ZB QVBJKQorICNlbmRpZiAgLy8gQlVJTERGTEFHKFVTRV9DSFJPTUVPU19NRURJQV9BQ0NFTEVSQVRJ T04pCisgCisgI2lmIEJVSUxERkxBRyhJU19XSU4pCitkaWZmIC0tZ2l0IGEvbWVkaWEvYmFzZS9t ZWRpYV9zd2l0Y2hlcy5oIGIvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5oCitpbmRleCAxZDlj MmMyZDlkZjczLi45NmQ5NTk1YmUxMTBlIDEwMDY0NAorLS0tIGEvbWVkaWEvYmFzZS9tZWRpYV9z d2l0Y2hlcy5oCisrKysgYi9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmgKK0BAIC0xNCw2ICsx NCw3IEBACisgI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgorICNpbmNsdWRlICJidWls ZC9jaHJvbWVvc19idWlsZGZsYWdzLmgiCisgI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbWVkaWFfZXhw b3J0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2dwdS9idWlsZGZsYWdzLmgiCisgI2luY2x1ZGUgIm1l ZGlhL21lZGlhX2J1aWxkZmxhZ3MuaCIKKyAKKyBuYW1lc3BhY2UgYmFzZSB7CitAQCAtMzgxLDE2 ICszODIsMTggQEAgTUVESUFfRVhQT1JUIEJBU0VfREVDTEFSRV9GRUFUVVJFKGtCdWlsdEluSGxz UGxheWVyKTsKKyAjaWYgQlVJTERGTEFHKFVTRV9DSFJPTUVPU19NRURJQV9BQ0NFTEVSQVRJT04p CisgTUVESUFfRVhQT1JUIEJBU0VfREVDTEFSRV9GRUFUVVJFKGtDaHJvbWVPU0hXQVYxRGVjb2Rl cik7CisgTUVESUFfRVhQT1JUIEJBU0VfREVDTEFSRV9GRUFUVVJFKGtDaHJvbWVPU0hXVkJSRW5j b2RpbmcpOworKyNpZiAhQlVJTERGTEFHKFVTRV9WQUFQSSkKKyBNRURJQV9FWFBPUlQgQkFTRV9E RUNMQVJFX0ZFQVRVUkUoa1VzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyKTsKKysjZW5kaWYg IC8vICFCVUlMREZMQUcoVVNFX1ZBQVBJKQorIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVfRkVB VFVSRShrTGltaXRDb25jdXJyZW50RGVjb2Rlckluc3RhbmNlcyk7CisgTUVESUFfRVhQT1JUIEJB U0VfREVDTEFSRV9GRUFUVVJFKGtVU2VTZXF1ZW5jZWRUYXNrUnVubmVyRm9yVkVBKTsKKyAjaWYg ZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKQorIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVf RkVBVFVSRShrUHJlZmVyR0xJbWFnZVByb2Nlc3Nvcik7CisgTUVESUFfRVhQT1JUIEJBU0VfREVD TEFSRV9GRUFUVVJFKGtQcmVmZXJTb2Z0d2FyZU1UMjEpOworICNlbmRpZiAgLy8gZGVmaW5lZChB UkNIX0NQVV9BUk1fRkFNSUxZKQorLSNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisrI2lmIEJV SUxERkxBRyhJU19DSFJPTUVPUykgJiYgIUJVSUxERkxBRyhVU0VfVkFBUEkpCisgTUVESUFfRVhQ T1JUIEJBU0VfREVDTEFSRV9GRUFUVVJFKGtVc2VBbHRlcm5hdGVWaWRlb0RlY29kZXJJbXBsZW1l bnRhdGlvbik7CistI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisrI2VuZGlmICAv LyBCVUlMREZMQUcoSVNfQ0hST01FT1MpICYmICFCVUlMREZMQUcoVVNFX1ZBQVBJKQorICNlbmRp ZiAgLy8gQlVJTERGTEFHKFVTRV9DSFJPTUVPU19NRURJQV9BQ0NFTEVSQVRJT04pCisgCisgI2lm IEJVSUxERkxBRyhJU19XSU4pCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tMTE4LW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTExOS1taXNzaW5nLWhlYWRlci1maWxlcy5wYXRjaApzaW1pbGFy aXR5IGluZGV4IDk3JQpyZW5hbWUgZnJvbSBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21p dW0tMTE4LW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCmluZGV4 IGVhNDE1ZGYzMjgzNWIuLmEyNTQyZWY0MjBlYWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTgtbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gKKysrIGIv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1taXNzaW5nLWhlYWRlci1maWxl cy5wYXRjaApAQCAtNDY4LDE1ICs0NjgsMyBAQCBkaWZmIC11cCBjaHJvbWl1bS0xMTguMC41OTkz LjMyL3NlcnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL2dlbmVyaWNfc2Vuc29yL3NlbnNvcgogICNp bmNsdWRlIDx0eXBlX3RyYWl0cz4KICAKICBuYW1lc3BhY2UgZGV2aWNlIHsKLWRpZmYgLXVwIGNo cm9taXVtLTExOC4wLjU5OTMuMzIvY29tcG9uZW50cy9nd3BfYXNhbi9jbGllbnQvbGlnaHR3ZWln aHRfZGV0ZWN0b3IuaC5tZSBjaHJvbWl1bS0xMTguMC41OTkzLjMyL2NvbXBvbmVudHMvZ3dwX2Fz YW4vY2xpZW50L2xpZ2h0d2VpZ2h0X2RldGVjdG9yLmgKLS0tLSBjaHJvbWl1bS0xMTguMC41OTkz LjMyL2NvbXBvbmVudHMvZ3dwX2FzYW4vY2xpZW50L2xpZ2h0d2VpZ2h0X2RldGVjdG9yLmgubWUJ MjAyMy0xMC0wMiAxMzozODozMS4yMTc4MDY0MjggKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTguMC41 OTkzLjMyL2NvbXBvbmVudHMvZ3dwX2FzYW4vY2xpZW50L2xpZ2h0d2VpZ2h0X2RldGVjdG9yLmgJ MjAyMy0xMC0wMiAxMzozOTowNS4wMDY0MjcxNjggKzAyMDAKLUBAIC01LDYgKzUsOCBAQAotICNp Zm5kZWYgQ09NUE9ORU5UU19HV1BfQVNBTl9DTElFTlRfTElHSFRXRUlHSFRfREVURUNUT1JfSF8K LSAjZGVmaW5lIENPTVBPTkVOVFNfR1dQX0FTQU5fQ0xJRU5UX0xJR0hUV0VJR0hUX0RFVEVDVE9S X0hfCi0gCi0rI2luY2x1ZGUgPGF0b21pYz4KLSsKLSAjaW5jbHVkZSAiYmFzZS9ndGVzdF9wcm9k X3V0aWwuaCIKLSAjaW5jbHVkZSAiY29tcG9uZW50cy9nd3BfYXNhbi9jbGllbnQvZXhwb3J0Lmgi Ci0gI2luY2x1ZGUgImNvbXBvbmVudHMvZ3dwX2FzYW4vY29tbW9uL2xpZ2h0d2VpZ2h0X2RldGVj dG9yX3N0YXRlLmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21p dW0tMTE4LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTExOS1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaApzaW1pbGFy aXR5IGluZGV4IDU2JQpyZW5hbWUgZnJvbSBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21p dW0tMTE4LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNo CmluZGV4IDNkNzc0OGMzZDVhMjYuLmExNmM5NzljMzdmMWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTgtbm9fbWF0Y2hpbmdfY29uc3RydWN0b3IucGF0 Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1ub19tYXRjaGlu Z19jb25zdHJ1Y3Rvci5wYXRjaApAQCAtMSwxOSArMSwxMTIgQEAKLWRpZmYgLXVwIGNocm9taXVt LTExNi4wLjU4NDUuNTAvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjLm1lIGNocm9taXVt LTExNi4wLjU4NDUuNTAvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjCi0tLS0gY2hyb21p dW0tMTE2LjAuNTg0NS41MC9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MubWUKLSsrKyBj aHJvbWl1bS0xMTYuMC41ODQ1LjUwL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNoZS5jYwotQEAg LTE2MSw3ICsxNjEsNyBAQCB2b2lkIEhvc3RSZXNvbHZlckNhY2hlOjpTZXQoCitkaWZmIC11cCBj aHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvYmFzZS90cmFjZV9ldmVu dC90cmFjZV9sb2cuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Jhc2UvdHJhY2VfZXZl bnQvdHJhY2VfbG9nLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTY6 NTEuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL3RyYWNl X2V2ZW50L3RyYWNlX2xvZy5jYwkyMDIzLTEwLTMwIDE2OjUxOjAyLjI3MDE1MTQ4NyArMDEwMAor QEAgLTIxOTEsOCArMjE5MSw4IEBAIHZvaWQgVHJhY2VMb2c6OlNldFRyYWNlQnVmZmVyRm9yVGVz dGluZygKKyAjaWYgQlVJTERGTEFHKFVTRV9QRVJGRVRUT19DTElFTlRfTElCUkFSWSkKKyB2b2lk IFRyYWNlTG9nOjpPblNldHVwKGNvbnN0IHBlcmZldHRvOjpEYXRhU291cmNlQmFzZTo6U2V0dXBB cmdzJiBhcmdzKSB7CisgICBBdXRvTG9jayBsb2NrKHRyYWNrX2V2ZW50X2xvY2tfKTsKKy0gIHRy YWNrX2V2ZW50X3Nlc3Npb25zXy5lbXBsYWNlX2JhY2soYXJncy5pbnRlcm5hbF9pbnN0YW5jZV9p bmRleCwgKmFyZ3MuY29uZmlnLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhcmdzLmJhY2tlbmRfdHlwZSk7CisrICB0cmFja19ldmVudF9zZXNzaW9uc18uZW1wbGFjZV9i YWNrKCkgPSB7YXJncy5pbnRlcm5hbF9pbnN0YW5jZV9pbmRleCwgKmFyZ3MuY29uZmlnLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLmJhY2tlbmRfdHlwZX07Cisg fQogIAotICAgc3RkOjpzdHJpbmcgZG9tYWluX25hbWUgPSByZXN1bHQtPmRvbWFpbl9uYW1lKCk7 Ci0gICBlbnRyaWVzXy5lbXBsYWNlKAotLSAgICAgIEtleShzdGQ6Om1vdmUoZG9tYWluX25hbWUp LCBuZXR3b3JrX2Fub255bWl6YXRpb25fa2V5KSwKLSsgICAgICBLZXl7c3RkOjptb3ZlKGRvbWFp bl9uYW1lKSwgbmV0d29ya19hbm9ueW1pemF0aW9uX2tleX0sCi0gICAgICAgRW50cnkoc3RkOjpt b3ZlKHJlc3VsdCksIHNvdXJjZSwgc2VjdXJlLCBzdGFsZW5lc3NfZ2VuZXJhdGlvbl8pKTsKKyB2 b2lkIFRyYWNlTG9nOjpPblN0YXJ0KGNvbnN0IHBlcmZldHRvOjpEYXRhU291cmNlQmFzZTo6U3Rh cnRBcmdzJikgeworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nl ci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2Mubm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci9j b250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2MKKy0tLSBjaHJv bWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3Rp bWVfcGVybWlzc2lvbl9wcm92aWRlci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEw LTI2IDE4OjE2OjU3LjAwMDAwMDAwMCArMDIwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkv Y2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJtaXNzaW9uX3Byb3Zp ZGVyLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjY5MTUxNDYyICswMTAwCitAQCAtMjI2LDggKzIy Niw4IEBAIHZvaWQgT25lVGltZVBlcm1pc3Npb25Qcm92aWRlcjo6T25TdXNwZW4KICAKLSAgIGlm IChlbnRyaWVzXy5zaXplKCkgPiBtYXhfZW50cmllc18pIHsKLWRpZmYgLXVwIGNocm9taXVtLTEx Ni4wLjU4NDUuNTAvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFf b3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2MubWUgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9j b21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFj ZV9pbXBsX29uX2dwdS5jYwotLS0tIGNocm9taXVtLTExNi4wLjU4NDUuNTAvY29tcG9uZW50cy92 aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9n cHUuY2MubWUJMjAyMy0wOC0wMiAxNToxNzo1Mi42MTM4NTg0MjMgKzAyMDAKLSsrKyBjaHJvbWl1 bS0xMTYuMC41ODQ1LjUwL2NvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxheV9lbWJlZGRlci9z a2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjCTIwMjMtMDgtMDIgMTU6MTg6NDMuMjY5 NzkwODc3ICswMjAwCi1AQCAtMTQ5Niw3ICsxNDk2LDcgQEAgdm9pZCBTa2lhT3V0cHV0U3VyZmFj ZUltcGxPbkdwdTo6Q29weU91dAorICAgICAgIHdoaWxlIChydWxlX2l0ZXJhdG9yICYmIHJ1bGVf aXRlcmF0b3ItPkhhc05leHQoKSkgeworICAgICAgICAgYXV0byBydWxlID0gcnVsZV9pdGVyYXRv ci0+TmV4dCgpOworLSAgICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjayhzZXR0 aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm4pOworKyAgICAgICAgcGF0 dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjaygpID0ge3NldHRpbmdfdHlwZSwgcnVsZS0+cHJp bWFyeV9wYXR0ZXJuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy dWxlLT5zZWNvbmRhcnlfcGF0dGVybn07CisgICAgICAgICBwZXJtaXNzaW9uczo6UGVybWlzc2lv blVtYVV0aWw6OlJlY29yZE9uZVRpbWVQZXJtaXNzaW9uRXZlbnQoCisgICAgICAgICAgICAgc2V0 dGluZ190eXBlLAorICAgICAgICAgICAgIHBlcm1pc3Npb25zOjpPbmVUaW1lUGVybWlzc2lvbkV2 ZW50OjpFWFBJUkVEX09OX1NVU1BFTkQpOworQEAgLTMyOSw4ICszMjksOCBAQCB2b2lkIE9uZVRp bWVQZXJtaXNzaW9uUHJvdmlkZXI6OkRlbGV0ZUVuCisgICAgIGF1dG8gcnVsZSA9IHJ1bGVfaXRl cmF0b3ItPk5leHQoKTsKKyAgICAgaWYgKHJ1bGUtPnByaW1hcnlfcGF0dGVybi5NYXRjaGVzKG9y aWdpbl9ndXJsKSAmJgorICAgICAgICAgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm4uTWF0Y2hlcyhv cmlnaW5fZ3VybCkpIHsKKy0gICAgICBwYXR0ZXJuc190b19kZWxldGUuZW1wbGFjZV9iYWNrKAor LSAgICAgICAgICBjb250ZW50X3NldHRpbmdfdHlwZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLCBy dWxlLT5zZWNvbmRhcnlfcGF0dGVybik7CisrICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxh Y2VfYmFjaygpID0geworKyAgICAgICAgICBjb250ZW50X3NldHRpbmdfdHlwZSwgcnVsZS0+cHJp bWFyeV9wYXR0ZXJuLCBydWxlLT5zZWNvbmRhcnlfcGF0dGVybn07CisgICAgICAgcGVybWlzc2lv bnM6OlBlcm1pc3Npb25VbWFVdGlsOjpSZWNvcmRPbmVUaW1lUGVybWlzc2lvbkV2ZW50KAorICAg ICAgICAgICBjb250ZW50X3NldHRpbmdfdHlwZSwgdHJpZ2dlcl9ldmVudCk7CisgICAgIH0KK2Rp ZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9w cm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUu Y2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUv YnJvd3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRf bmF2aWdhdGlvbl90aHJvdHRsZS5jYworLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21l L2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50 X25hdmlnYXRpb25fdGhyb3R0bGUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMC0y NiAxODoxNjo1Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2No cm9tZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdl bWVudF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjY3MTUxNDEy ICswMTAwCitAQCAtNjcsOCArNjcsOCBAQCBiYXNlOjpmbGF0X21hcDxzdGQ6OnN0cmluZywgU0FN TFByb2ZpbGVBCisgICAvLyBUT0RPKGNyYnVnLmNvbS8xNDQ1MDcyKTogQWRkIGFjdHVhbCBkb21h aW5zIHdpdGggYXR0cmlidXRlIG5hbWVzLgorICAgcHJvZmlsZV9hdHRyaWJ1dGVzLT5pbnNlcnQo c3RkOjptYWtlX3BhaXIoCisgICAgICAgInN1cHBvcnRlZC50ZXN0IiwKKy0gICAgICBTQU1MUHJv ZmlsZUF0dHJpYnV0ZXMoInBsYWNlaG9sZGVyTmFtZSIsICJwbGFjZWhvbGRlckRvbWFpbiIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGFjZWhvbGRlclRva2VuIikpKTsKKysgICAg ICBTQU1MUHJvZmlsZUF0dHJpYnV0ZXN7InBsYWNlaG9sZGVyTmFtZSIsICJwbGFjZWhvbGRlckRv bWFpbiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGFjZWhvbGRlclRva2VuIn0p KTsKKyAKKyAgIC8vIEV4dHJhY3QgZG9tYWlucyBhbmQgYXR0cmlidXRlcyBmcm9tIHRoZSBjb21t YW5kIGxpbmUgc3dpdGNoLgorICAgY29uc3QgYmFzZTo6Q29tbWFuZExpbmUmIGNvbW1hbmRfbGlu ZSA9CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL29t bmlib3gvY2hyb21lX29tbmlib3hfY2xpZW50LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNo cm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21u aWJveF9jbGllbnQuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2Vy L3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xpZW50LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVj dG9yCTIwMjMtMTAtMjYgMTg6MTc6MDAuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE5 LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVu dC5jYwkyMDIzLTEwLTMwIDE2OjUxOjAyLjI2MjE1MTI4OCArMDEwMAorQEAgLTQ3NCwxMCArNDc0 LDEwIEBAIHZvaWQgQ2hyb21lT21uaWJveENsaWVudDo6T25BdXRvY29tcGxldGUKKyAgICAgICAg ICAgICAgIGFsdGVybmF0aXZlX25hdl9tYXRjaCk7CisgCisgICAvLyBTdG9yZSB0aGUgZGV0YWls cyBuZWNlc3NhcnkgdG8gb3BlbiB0aGUgb21uaWJveCBtYXRjaCB2aWEgYnJvd3NlciBjb21tYW5k cy4KKy0gIGxvY2F0aW9uX2Jhcl8tPnNldF9uYXZpZ2F0aW9uX3BhcmFtcyhMb2NhdGlvbkJhcjo6 TmF2aWdhdGlvblBhcmFtcygKKysgIGxvY2F0aW9uX2Jhcl8tPnNldF9uYXZpZ2F0aW9uX3BhcmFt cyhMb2NhdGlvbkJhcjo6TmF2aWdhdGlvblBhcmFtc3sKKyAgICAgICBkZXN0aW5hdGlvbl91cmws IGRpc3Bvc2l0aW9uLCB0cmFuc2l0aW9uLCBtYXRjaF9zZWxlY3Rpb25fdGltZXN0YW1wLAorICAg ICAgIGRlc3RpbmF0aW9uX3VybF9lbnRlcmVkX3dpdGhvdXRfc2NoZW1lLAorLSAgICAgIGRlc3Rp bmF0aW9uX3VybF9lbnRlcmVkX3dpdGhfaHR0cF9zY2hlbWUpKTsKKysgICAgICBkZXN0aW5hdGlv bl91cmxfZW50ZXJlZF93aXRoX2h0dHBfc2NoZW1lfSk7CisgCisgICBpZiAoYnJvd3Nlcl8pIHsK KyAgICAgYXV0byBuYXZpZ2F0aW9uID0gY2hyb21lOjpPcGVuQ3VycmVudFVSTChicm93c2VyXyk7 CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZl ci9jYXBhYmlsaXRpZXMuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAu NjA0NS41OS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjCistLS0gY2hy b21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVz LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6MDEuMDAwMDAwMDAw ICswMjAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2 ZXIvY2FwYWJpbGl0aWVzLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjY4MTUxNDM3ICswMTAwCitA QCAtMzQ2LDcgKzM0Niw3IEBAIFN0YXR1cyBQYXJzZU1vYmlsZUVtdWxhdGlvbihjb25zdCBiYXNl OjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJ3ZlcnNpb24nIGZpZWxkIG9mIHR5cGUgc3Ry aW5nIik7CisgICAgICAgICB9CisgCistICAgICAgICBicmFuZHMuZW1wbGFjZV9iYWNrKCpicmFu ZCwgKnZlcnNpb24pOworKyAgICAgICAgYnJhbmRzLmVtcGxhY2VfYmFjaygpID0geypicmFuZCwg KnZlcnNpb259OworICAgICAgIH0KKyAKKyAgICAgICBjbGllbnRfaGludHMuYnJhbmRzID0gc3Rk Ojptb3ZlKGJyYW5kcyk7CitAQCAtMzg0LDcgKzM4NCw3IEBAIFN0YXR1cyBQYXJzZU1vYmlsZUVt dWxhdGlvbihjb25zdCBiYXNlOjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAiYSAndmVyc2lv bicgZmllbGQgb2YgdHlwZSBzdHJpbmciKTsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIGZ1bGxf dmVyc2lvbl9saXN0LmVtcGxhY2VfYmFjaygqYnJhbmQsICp2ZXJzaW9uKTsKKysgICAgICAgIGZ1 bGxfdmVyc2lvbl9saXN0LmVtcGxhY2VfYmFjaygpID0geypicmFuZCwgKnZlcnNpb259OworICAg ICAgIH0KKyAKKyAgICAgICBjbGllbnRfaGludHMuZnVsbF92ZXJzaW9uX2xpc3QgPSBzdGQ6Om1v dmUoZnVsbF92ZXJzaW9uX2xpc3QpOworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j b21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9fc3luY191dGlsLmNj Lm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50 cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYworLS0tIGNo cm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29u dGFjdF9pbmZvX3N5bmNfdXRpbC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEwLTMw IDE2OjUxOjAyLjI3MzE1MTU2MiArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29t cG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYwky MDIzLTEwLTMwIDE3OjQxOjEyLjY4NTg4NzUzOCArMDEwMAorQEAgLTE5NSw5ICsxOTUsOSBAQCBj bGFzcyBDb250YWN0SW5mb1Byb2ZpbGVTZXR0ZXIgeworICAgICAgIENIRUNLKG9ic2VydmF0aW9u cy5lbXB0eSgpKTsKKyAgICAgICBmb3IgKGNvbnN0IHN5bmNfcGI6OkNvbnRhY3RJbmZvU3BlY2lm aWNzOjpPYnNlcnZhdGlvbiYgcHJvdG9fb2JzZXJ2YXRpb24gOgorICAgICAgICAgICAgbWV0YWRh dGEub2JzZXJ2YXRpb25zKCkpIHsKKy0gICAgICAgIG9ic2VydmF0aW9ucy5lbXBsYWNlX2JhY2so cHJvdG9fb2JzZXJ2YXRpb24udHlwZSgpLAorKyAgICAgICAgb2JzZXJ2YXRpb25zLmVtcGxhY2Vf YmFjaygpID0ge3N0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHByb3RvX29ic2VydmF0aW9uLnR5 cGUoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2ZpbGVUb2tlblF1 YWxpdHk6OkZvcm1TaWduYXR1cmVIYXNoKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJvdG9fb2JzZXJ2YXRpb24uZm9ybV9oYXNoKCkpKTsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvX29ic2VydmF0aW9uLmZvcm1faGFzaCgpKX07 CisgICAgICAgfQorICAgICB9CisgICB9CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L2NvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJm YWNlX2ltcGxfb25fZ3B1LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4w LjYwNDUuNTkvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFfb3V0 cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nv bXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNl X2ltcGxfb25fZ3B1LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6 MTIuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRz L3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29u X2dwdS5jYwkyMDIzLTEwLTMwIDE2OjUxOjAyLjI2MDE1MTIzOCArMDEwMAorQEAgLTE1MzAsNyAr MTUzMCw3IEBAIHZvaWQgU2tpYU91dHB1dFN1cmZhY2VJbXBsT25HcHU6OkNvcHlPdXQKICAKICAg ICAgICAvLyBJc3N1ZSByZWFkYmFja3MgZnJvbSB0aGUgc3VyZmFjZXM6CiAgICAgICAgZm9yIChz aXplX3QgaSA9IDA7IGkgPCBDb3B5T3V0cHV0UmVzdWx0OjprTlYxMk1heFBsYW5lczsgKytpKSB7 CkBAIC0yMiw5ICsxMTUsODcgQEAgZGlmZiAtdXAgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jb21w b25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIvc2tpYV9vdXQKICAgICAgICAgIFNr SW1hZ2VJbmZvIGRzdF9pbmZvID0gU2tJbWFnZUluZm86Ok1ha2UoCiAgICAgICAgICAgICAgc2l6 ZSwgKGkgPT0gMCkgPyBrQWxwaGFfOF9Ta0NvbG9yVHlwZSA6IGtSOEc4X3Vub3JtX1NrQ29sb3JU eXBlLAogICAgICAgICAgICAgIGtVbnByZW11bF9Ta0FscGhhVHlwZSk7Ci1kaWZmIC11cCBjaHJv bWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2Zv bnRzL3BhbGV0dGVfaW50ZXJwb2xhdGlvbi5jYy5tZSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJwb2xh dGlvbi5jYwotLS0tIGNocm9taXVtLTExNi4wLjU4NDUuNTAvdGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjLm1lCTIwMjMtMDgt MDIgMjE6MzI6MTQuMTk1NzA1NDk0ICswMjAwCi0rKysgY2hyb21pdW0tMTE2LjAuNTg0NS41MC90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9s YXRpb24uY2MJMjAyMy0wOC0wMiAyMTo1OTowOC4xNTY1MzI5MzQgKzAyMDAKK2RpZmYgLXVwIGNo cm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL2Rvd25sb2FkL3NhdmVfcGFja2Fn ZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRl bnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42 MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2Mubm9fbWF0Y2hp bmdfY29uc3RydWN0b3IJMjAyMy0xMC0yNiAxODoxNzoxMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBj aHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2th Z2UuY2MJMjAyMy0xMC0zMCAxNjo1MTowMi4yNzExNTE1MTIgKzAxMDAKK0BAIC03NjksOCArNzY5 LDggQEAgdm9pZCBTYXZlUGFja2FnZTo6RmluaXNoKCkgeworICAgaWYgKGRvd25sb2FkXykgewor ICAgICBzdGQ6OnZlY3Rvcjxkb3dubG9hZDo6RG93bmxvYWRTYXZlSXRlbURhdGE6Okl0ZW1JbmZv PiBmaWxlczsKKyAgICAgZm9yIChhdXRvJiBpdGVtIDogc2F2ZWRfc3VjY2Vzc19pdGVtc18pIHsK Ky0gICAgICBmaWxlcy5lbXBsYWNlX2JhY2soaXRlbS5zZWNvbmQtPmZ1bGxfcGF0aCgpLCBpdGVt LnNlY29uZC0+dXJsKCksCistICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2Vjb25kLT5y ZWZlcnJlcigpLnVybCk7CisrICAgICAgZmlsZXMuZW1wbGFjZV9iYWNrKCkgPSB7aXRlbS5zZWNv bmQtPmZ1bGxfcGF0aCgpLCBpdGVtLnNlY29uZC0+dXJsKCksCisrICAgICAgICAgICAgICAgICAg ICAgICAgIGl0ZW0uc2Vjb25kLT5yZWZlcnJlcigpLnVybH07CisgICAgIH0KKyAgICAgZG93bmxv YWQ6OkRvd25sb2FkU2F2ZUl0ZW1EYXRhOjpBdHRhY2hJdGVtRGF0YShkb3dubG9hZF8sIHN0ZDo6 bW92ZShmaWxlcykpOworICAgfQorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250 ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNjLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2Vy L3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYworLS0tIGNocm9taXVtLTEx OS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hv c3RfaW1wbC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE3OjEyLjAw MDAwMDAwMCArMDIwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2Vy L3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYwkyMDIzLTEwLTMwIDE3OjM4 OjA5LjM1MTM4OTk4NCArMDEwMAorQEAgLTg1NjcsNyArODU2Nyw3IEBAIHZvaWQgUmVuZGVyRnJh bWVIb3N0SW1wbDo6U2VuZEZlbmNlZEZyYW0KKyAgIGZvciAoY29uc3QgYmxpbms6OkZlbmNlZEZy YW1lOjpSZXBvcnRpbmdEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24gOgorICAgICAgICBkZXN0aW5h dGlvbnMpIHsKKyAgICAgU2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5nQmVhY29uSW50ZXJuYWwoCist ICAgICAgICBEZXN0aW5hdGlvbkVudW1FdmVudChldmVudF90eXBlLCBldmVudF9kYXRhKSwgZGVz dGluYXRpb24sCisrICAgICAgICBEZXN0aW5hdGlvbkVudW1FdmVudHtldmVudF90eXBlLCBldmVu dF9kYXRhfSwgZGVzdGluYXRpb24sCisgICAgICAgICAvKmZyb21fcmVuZGVyZXI9Ki90cnVlLCBh dHRyaWJ1dGlvbl9yZXBvcnRpbmdfcnVudGltZV9mZWF0dXJlcywKKyAgICAgICAgIEdldEZyYW1l VHJlZU5vZGVJZCgpKTsKKyAgIH0KK0BAIC04NjAzLDcgKzg2MDMsNyBAQCB2b2lkIFJlbmRlckZy YW1lSG9zdEltcGw6OlNlbmRGZW5jZWRGcmFtCisgICB9CisgCisgICBTZW5kRmVuY2VkRnJhbWVS ZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKKy0gICAgICBEZXN0aW5hdGlvblVSTEV2ZW50KGRlc3Rp bmF0aW9uX3VybCksCisrICAgICAgRGVzdGluYXRpb25VUkxFdmVudHtkZXN0aW5hdGlvbl91cmx9 LAorICAgICAgIGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVwb3J0aW5nRGVzdGluYXRpb246OmtCdXll ciwKKyAgICAgICAvKmZyb21fcmVuZGVyZXI9Ki90cnVlLCBhdHRyaWJ1dGlvbl9yZXBvcnRpbmdf cnVudGltZV9mZWF0dXJlcywKKyAgICAgICBHZXRGcmFtZVRyZWVOb2RlSWQoKSk7CitAQCAtODcw Myw4ICs4NzAzLDggQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpNYXliZVNlbmRGZW5jZQor ICAgICAgICAgZGF0YSA9IGluZm8tPmRhdGE7CisgICAgICAgfQorICAgICAgIGluaXRpYXRvcl9y ZmgtPlNlbmRGZW5jZWRGcmFtZVJlcG9ydGluZ0JlYWNvbkludGVybmFsKAorLSAgICAgICAgICBE ZXN0aW5hdGlvbkVudW1FdmVudChibGluazo6a0ZlbmNlZEZyYW1lVG9wTmF2aWdhdGlvbkJlYWNv blR5cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEpLAorKyAgICAgICAg ICBEZXN0aW5hdGlvbkVudW1FdmVudHtibGluazo6a0ZlbmNlZEZyYW1lVG9wTmF2aWdhdGlvbkJl YWNvblR5cGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF9LAorICAgICAg ICAgICBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgLypmcm9tX3JlbmRlcmVyPSovZmFsc2UsIGF0 dHJpYnV0aW9uX3JlcG9ydGluZ19mZWF0dXJlcywKKyAgICAgICAgICAgR2V0RnJhbWVUcmVlTm9k ZUlkKCksIG5hdmlnYXRpb25fcmVxdWVzdC5HZXROYXZpZ2F0aW9uSWQoKSk7CitAQCAtODcxNyw4 ICs4NzE3LDggQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpNYXliZVNlbmRGZW5jZQorICAg ICBmb3IgKGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVwb3J0aW5nRGVzdGluYXRpb24gZGVzdGluYXRp b24gOgorICAgICAgICAgIGluZm8tPmRlc3RpbmF0aW9ucykgeworICAgICAgIGluaXRpYXRvcl9y ZmgtPlNlbmRGZW5jZWRGcmFtZVJlcG9ydGluZ0JlYWNvbkludGVybmFsKAorLSAgICAgICAgICBE ZXN0aW5hdGlvbkVudW1FdmVudChibGluazo6a0ZlbmNlZEZyYW1lVG9wTmF2aWdhdGlvbkJlYWNv blR5cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPmRhdGEpLAorKyAg ICAgICAgICBEZXN0aW5hdGlvbkVudW1FdmVudHtibGluazo6a0ZlbmNlZEZyYW1lVG9wTmF2aWdh dGlvbkJlYWNvblR5cGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPmRh dGF9LAorICAgICAgICAgICBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgLypmcm9tX3JlbmRlcmVy PSovZmFsc2UsIGluZm8tPmF0dHJpYnV0aW9uX3JlcG9ydGluZ19ydW50aW1lX2ZlYXR1cmVzLAor ICAgICAgICAgICBHZXRGcmFtZVRyZWVOb2RlSWQoKSwgbmF2aWdhdGlvbl9yZXF1ZXN0LkdldE5h dmlnYXRpb25JZCgpKTsKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9wYWxldHRlLmgubm9fbWF0Y2hp bmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaAorLS0tIGNocm9taXVtLTExOS4w LjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9w YWxldHRlLmgubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMC0yNiAxODoxNzoyNC4wMDAw MDAwMDAgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oCTIwMjMtMTAtMzAgMTY6NTE6 MDIuMjYyMTUxMjg4ICswMTAwCitAQCAtOTYsNyArOTYsNyBAQCBjbGFzcyBQTEFURk9STV9FWFBP UlQgRm9udFBhbGV0dGUgOiBwdWJsCisgICAgICAgQ29sb3I6OkNvbG9yU3BhY2UgY29sb3JfaW50 ZXJwb2xhdGlvbl9zcGFjZSwKKyAgICAgICBhYnNsOjpvcHRpb25hbDxDb2xvcjo6SHVlSW50ZXJw b2xhdGlvbk1ldGhvZD4gaHVlX2ludGVycG9sYXRpb25fbWV0aG9kKSB7CisgICAgIHJldHVybiBi YXNlOjpBZG9wdFJlZihuZXcgRm9udFBhbGV0dGUoCistICAgICAgICBzdGFydCwgZW5kLCBOb25O b3JtYWxpemVkUGVyY2VudGFnZXMoc3RhcnRfcGVyY2VudGFnZSwgZW5kX3BlcmNlbnRhZ2UpLAor KyAgICAgICAgc3RhcnQsIGVuZCwgTm9uTm9ybWFsaXplZFBlcmNlbnRhZ2Vze3N0YXJ0X3BlcmNl bnRhZ2UsIGVuZF9wZXJjZW50YWdlfSwKKyAgICAgICAgIG5vcm1hbGl6ZWRfcGVyY2VudGFnZSwg YWxwaGFfbXVsdGlwbGllciwgY29sb3JfaW50ZXJwb2xhdGlvbl9zcGFjZSwKKyAgICAgICAgIGh1 ZV9pbnRlcnBvbGF0aW9uX21ldGhvZCkpOworICAgfQorQEAgLTE3MCw3ICsxNzAsNyBAQCBjbGFz cyBQTEFURk9STV9FWFBPUlQgRm9udFBhbGV0dGUgOiBwdWJsCisgICAgICAgZG91YmxlIG5vcm1h bGl6ZWRfcGVyY2VudGFnZSkgeworICAgICBkb3VibGUgZW5kX3BlcmNlbnRhZ2UgPSBub3JtYWxp emVkX3BlcmNlbnRhZ2UgKiAxMDAuMDsKKyAgICAgZG91YmxlIHN0YXJ0X3BlcmNlbnRhZ2UgPSAx MDAuMCAtIGVuZF9wZXJjZW50YWdlOworLSAgICByZXR1cm4gTm9uTm9ybWFsaXplZFBlcmNlbnRh Z2VzKHN0YXJ0X3BlcmNlbnRhZ2UsIGVuZF9wZXJjZW50YWdlKTsKKysgICAgcmV0dXJuIE5vbk5v cm1hbGl6ZWRQZXJjZW50YWdlc3tzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZX07Cisg ICB9CisgCisgICBkb3VibGUgR2V0QWxwaGFNdWx0aXBsaWVyKCkgY29uc3QgeworZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS9mb250cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3Ig Y2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS9mb250cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1 LjU5L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50 ZXJwb2xhdGlvbi5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE3OjI0 LjAwMDAwMDAwMCArMDIwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjCTIw MjMtMTAtMzAgMTY6NTE6MDIuMjYxMTUxMjYzICswMTAwCiBAQCAtMzEsNyArMzEsNyBAQCBWZWN0 b3I8Rm9udFBhbGV0dGU6OkZvbnRQYWxldHRlT3ZlcnJpZGU+CiAgICAgICAgICBjb2xvcl9pbnRl cnBvbGF0aW9uX3NwYWNlLCBodWVfaW50ZXJwb2xhdGlvbl9tZXRob2QsIHN0YXJ0X2NvbG9yLAog ICAgICAgICAgZW5kX2NvbG9yLCBwZXJjZW50YWdlLCBhbHBoYV9tdWx0aXBsaWVyKTsKQEAgLTM0 LDEwICsyMDUsMTEzIEBAIGRpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuNTAvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0CiAgICAgIHJlc3VsdF9jb2xv cl9yZWNvcmRzLnB1c2hfYmFjayhyZXN1bHRfY29sb3JfcmVjb3JkKTsKICAgIH0KICAgIHJldHVy biByZXN1bHRfY29sb3JfcmVjb3JkczsKLWRpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuNTAv dWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oLm1lIGNocm9taXVtLTExNi4wLjU4 NDUuNTAvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oCi0tLS0gY2hyb21pdW0t MTE2LjAuNTg0NS41MC91aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdlcl91dGlsLmgubWUJMjAy My0wOC0wMyAwODoyNzoxMS4zNzE3NTAxNzggKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTYuMC41ODQ1 LjUwL3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwuaAkyMDIzLTA4LTAzIDEwOjM5 OjA3LjI2Njk4OTMyMyArMDIwMAotQEAgLTUyLDUzICs1Miw1MyBAQCBjb25zdGV4cHIgYXV0byBr Q2hyb21hdGljaXR5TWFwID0gYmFzZTo6CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L3VpL2d0ay9ndGtfdWkuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAu NjA0NS41OS91aS9ndGsvZ3RrX3VpLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS91aS9n dGsvZ3RrX3VpLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTg6MTQu MDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS91aS9ndGsvZ3RrX3Vp LmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjcyMTUxNTM3ICswMTAwCitAQCAtOTkzLDExICs5OTMs MTEgQEAgdWk6OkRpc3BsYXlDb25maWcgR3RrVWk6OkdldERpc3BsYXlDb25maQorICAgICBHZGtS ZWN0YW5nbGUgZ2VvbWV0cnk7CisgICAgIGdka19tb25pdG9yX2dldF9nZW9tZXRyeShtb25pdG9y LCAmZ2VvbWV0cnkpOworICAgICBpbnQgbW9uaXRvcl9zY2FsZSA9IHN0ZDo6bWF4KDEsIGdka19t b25pdG9yX2dldF9zY2FsZV9mYWN0b3IobW9uaXRvcikpOworLSAgICBjb25maWcuZGlzcGxheV9n ZW9tZXRyaWVzLmVtcGxhY2VfYmFjaygKKysgICAgY29uZmlnLmRpc3BsYXlfZ2VvbWV0cmllcy5l bXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICAgIGdmeDo6UmVjdChtb25pdG9yX3NjYWxlICogZ2Vv bWV0cnkueCwgbW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LnksCisgICAgICAgICAgICAgICAgICAg bW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LndpZHRoLAorICAgICAgICAgICAgICAgICAgIG1vbml0 b3Jfc2NhbGUgKiBnZW9tZXRyeS5oZWlnaHQpLAorLSAgICAgICAgbW9uaXRvcl9zY2FsZSAqIGZv bnRfc2NhbGUpOworKyAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1vbml0b3Jfc2NhbGUgKiBm b250X3NjYWxlKX07CisgICB9CisgICByZXR1cm4gY29uZmlnOworIH0KK2RpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuNTkvYmFzZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9j YXRvci5jYy5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Jhc2UvbWV0cmljcy9wZXJzaXN0ZW50 X2hpc3RvZ3JhbV9hbGxvY2F0b3IuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Jhc2Uv bWV0cmljcy9wZXJzaXN0ZW50X2hpc3RvZ3JhbV9hbGxvY2F0b3IuY2MubWUJMjAyMy0xMC0zMSAx ODoxNDo0OS4yNzU3MjgwOTkgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Jhc2Uv bWV0cmljcy9wZXJzaXN0ZW50X2hpc3RvZ3JhbV9hbGxvY2F0b3IuY2MJMjAyMy0xMC0zMSAxODox OTo1NC41OTkyMjMyMzkgKzAxMDAKK0BAIC0yMjEsMTMgKzIyMSwxMyBAQCBQZXJzaXN0ZW50U3Bh cnNlSGlzdG9ncmFtRGF0YU1hbmFnZXI6OkxvCisgICAgIC8vIFRoZSBzYW1wbGUtcmVjb3JkIGNv dWxkIGJlIGZvciBhbnkgc3BhcnNlIGhpc3RvZ3JhbS4gQWRkIHRoZSByZWZlcmVuY2UKKyAgICAg Ly8gdG8gdGhlIGFwcHJvcHJpYXRlIGNvbGxlY3Rpb24gZm9yIGxhdGVyIHVzZS4KKyAgICAgaWYg KGZvdW5kX2lkID09IG1hdGNoX2lkKSB7CistICAgICAgZm91bmRfcmVjb3Jkcy5lbXBsYWNlX2Jh Y2socmVmLCB2YWx1ZSk7CisrICAgICAgZm91bmRfcmVjb3Jkcy5lbXBsYWNlX2JhY2soKSA9IHty ZWYsIHZhbHVlfTsKKyAgICAgICBmb3VuZCA9IHRydWU7CisgICAgIH0gZWxzZSB7CisgICAgICAg c3RkOjp2ZWN0b3I8UmVmZXJlbmNlQW5kU2FtcGxlPiogc2FtcGxlcyA9CisgICAgICAgICAgIEdl dFNhbXBsZU1hcFJlY29yZHNXaGlsZUxvY2tlZChmb3VuZF9pZCk7CisgICAgICAgQ0hFQ0soc2Ft cGxlcyk7CistICAgICAgc2FtcGxlcy0+ZW1wbGFjZV9iYWNrKHJlZiwgdmFsdWUpOworKyAgICAg IHNhbXBsZXMtPmVtcGxhY2VfYmFjaygpID0ge3JlZiwgdmFsdWV9OworICAgICB9CisgICB9Cisg CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9j YWNoZS5jYy5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9j YWNoZS5jYworLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvbmV0L2Rucy9ob3N0X3Jlc29sdmVy X2NhY2hlLmNjLm1lCTIwMjMtMTAtMzEgMjA6NDg6MTkuMTUzODY4MzM4ICswMTAwCisrKysgY2hy b21pdW0tMTE5LjAuNjA0NS41OS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MJMjAyMy0x MC0zMSAyMDo1MTozNy42MzQ1MjY1NDkgKzAxMDAKK0BAIC0zNjgsNyArMzY4LDcgQEAgdm9pZCBI b3N0UmVzb2x2ZXJDYWNoZTo6U2V0KAorIAorICAgc3RkOjpzdHJpbmcgZG9tYWluX25hbWUgPSBy ZXN1bHQtPmRvbWFpbl9uYW1lKCk7CisgICBlbnRyaWVzXy5lbXBsYWNlKAorLSAgICAgIEtleShz dGQ6Om1vdmUoZG9tYWluX25hbWUpLCBuZXR3b3JrX2Fub255bWl6YXRpb25fa2V5KSwKKysgICAg ICBLZXl7c3RkOjptb3ZlKGRvbWFpbl9uYW1lKSwgbmV0d29ya19hbm9ueW1pemF0aW9uX2tleX0s CisgICAgICAgRW50cnkoc3RkOjptb3ZlKHJlc3VsdCksIHNvdXJjZSwgc2VjdXJlLCBzdGFsZW5l c3NfZ2VuZXJhdGlvbikpOworIAorICAgaWYgKGVudHJpZXNfLnNpemUoKSA+IG1heF9lbnRyaWVz XykgeworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL2F1dG9maWxs L2NvcmUvYnJvd3Nlci93ZWJkYXRhL2F1dG9maWxsX3RhYmxlLmNjLm1lIGNocm9taXVtLTExOS4w LjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmls bF90YWJsZS5jYworLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmls bC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmlsbF90YWJsZS5jYy5tZQkyMDIzLTEwLTMxIDIy OjMyOjU4Ljk5NTk5Nzg5NyArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9u ZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmlsbF90YWJsZS5jYwkyMDIz LTEwLTMxIDIyOjMzOjI4LjI5MDUyMDYwMSArMDEwMAorQEAgLTE3MzMsMTAgKzE3MzMsMTAgQEAg c3RkOjp1bmlxdWVfcHRyPEF1dG9maWxsUHJvZmlsZT4gQXV0b2ZpbAorICAgICB9CisgCisgICAg IGJhc2U6OnNwYW48Y29uc3QgdWludDhfdD4gb2JzZXJ2YXRpb25zX2RhdGEgPSBzLkNvbHVtbkJs b2IoMyk7CistICAgIGZpZWxkX3R5cGVfdmFsdWVzLmVtcGxhY2VfYmFjaygKKysgICAgZmllbGRf dHlwZV92YWx1ZXMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAgICB0eXBlLCBzLkNvbHVtblN0 cmluZzE2KDEpLCBzLkNvbHVtbkludCgyKSwKKyAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ KG9ic2VydmF0aW9uc19kYXRhLmJlZ2luKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvYnNlcnZhdGlvbnNfZGF0YS5lbmQoKSkpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2JzZXJ2YXRpb25zX2RhdGEuZW5kKCkpfTsKKyAKKyAgICAgaWYgKHR5cGUgPT0gQUREUkVT U19IT01FX0NPVU5UUlkpIHsKKyAgICAgICBjb3VudHJ5X2NvZGUgPSBiYXNlOjpVVEYxNlRvVVRG OChzLkNvbHVtblN0cmluZzE2KDEpKTsKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkv Y29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9wYXNzd29yZF9tYW5hZ2Vy LmNjLnRoYW4gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFn ZXIvY29yZS9icm93c2VyL3Bhc3N3b3JkX21hbmFnZXIuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42 MDQ1LjU5L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRf bWFuYWdlci5jYy50aGFuCTIwMjMtMTAtMzEgMjI6NDE6MjIuODUwMjMzMDA1ICswMTAwCisrKysg Y2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9i cm93c2VyL3Bhc3N3b3JkX21hbmFnZXIuY2MJMjAyMy0xMC0zMSAyMjo0MjozNy4yNzY5MzE5MzMg KzAxMDAKK0BAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBQYXNzd29yZE1hbmFnZXI6Ok9uVXNlck1v ZGlmaWVkTm9uUAorICAgLy8gfGRyaXZlcnwgbWlnaHQgYmUgZW1wdHkgb24gaU9TIG9yIGluIHRl c3RzLgorICAgaW50IGRyaXZlcl9pZCA9IGRyaXZlciA/IGRyaXZlci0+R2V0SWQoKSA6IDA7Cisg ICBwb3NzaWJsZV91c2VybmFtZXNfLlB1dCgKKy0gICAgICBQb3NzaWJsZVVzZXJuYW1lRmllbGRJ ZGVudGlmaWVyKGRyaXZlcl9pZCwgcmVuZGVyZXJfaWQpLAorKyAgICAgIFBvc3NpYmxlVXNlcm5h bWVGaWVsZElkZW50aWZpZXJ7ZHJpdmVyX2lkLCByZW5kZXJlcl9pZH0sCisgICAgICAgUG9zc2li bGVVc2VybmFtZURhdGEoR2V0U2lnbm9uUmVhbG0oZHJpdmVyLT5HZXRMYXN0Q29tbWl0dGVkVVJM KCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyX2lkLCB2YWx1ZSwgYmFz ZTo6VGltZTo6Tm93KCksIGRyaXZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh dXRvY29tcGxldGVfYXR0cmlidXRlX2hhc191c2VybmFtZSwgaXNfbGlrZWx5X290cCkpOworZGlm ZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3Jv dXAvaW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5jYy50aGFuIGNocm9taXVtLTExOS4wLjYwNDUuNTkv Y29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2MK Ky0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91 cC9pbnRlcmVzdF9ncm91cF9zdG9yYWdlLmNjLnRoYW4JMjAyMy0xMC0zMSAyMzozMTowOC40Mzgy Njc5MDggKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9p bnRlcmVzdF9ncm91cC9pbnRlcmVzdF9ncm91cF9zdG9yYWdlLmNjCTIwMjMtMTAtMzEgMjM6MzI6 MDguOTc5MzU4NzExICswMTAwCitAQCAtMjg1NCwxMCArMjg1NCwxMCBAQCBEb0dldEtBbm9ueW1p dHlEYXRhKHNxbDo6RGF0YWJhc2UmIGRiLAorIAorICAgc3RkOjp2ZWN0b3I8U3RvcmFnZUludGVy ZXN0R3JvdXA6OktBbm9ueW1pdHlEYXRhPiBrX2Fub25fZGF0YTsKKyAgIHdoaWxlIChpbnRlcmVz dF9ncm91cF9rYW5vbl9xdWVyeS5TdGVwKCkpIHsKKy0gICAga19hbm9uX2RhdGEuZW1wbGFjZV9i YWNrKAorKyAgICBrX2Fub25fZGF0YS5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICAgIC8qa2V5 PSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuQ29sdW1uU3RyaW5nKDApLAorICAgICAgICAg Lyppc19rX2Fub255bW91cz0qL2ludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtbkJvb2wo MSksCistICAgICAgICAvKmxhc3RfdXBkYXRlZD0qL2ludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5 LkNvbHVtblRpbWUoMikpOworKyAgICAgICAgLypsYXN0X3VwZGF0ZWQ9Ki9pbnRlcmVzdF9ncm91 cF9rYW5vbl9xdWVyeS5Db2x1bW5UaW1lKDIpfTsKKyAgIH0KKyAgIGlmICghaW50ZXJlc3RfZ3Jv dXBfa2Fub25fcXVlcnkuU3VjY2VlZGVkKCkpIHsKKyAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7 CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci93ZWJpZC9m ZWRlcmF0ZWRfYXV0aF9yZXF1ZXN0X2ltcGwuY2MudGhhbiBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L2NvbnRlbnQvYnJvd3Nlci93ZWJpZC9mZWRlcmF0ZWRfYXV0aF9yZXF1ZXN0X2ltcGwuY2MKKy0t LSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci93ZWJpZC9mZWRlcmF0ZWRf YXV0aF9yZXF1ZXN0X2ltcGwuY2MudGhhbgkyMDIzLTExLTAxIDExOjE5OjQyLjc0NTM5NTc5NyAr MDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL3dlYmlkL2Zl ZGVyYXRlZF9hdXRoX3JlcXVlc3RfaW1wbC5jYwkyMDIzLTExLTAxIDExOjIyOjE2LjY3MDkyMDY3 OSArMDEwMAorQEAgLTE4ODEsNyArMTg4MSw3IEBAIHZvaWQgRmVkZXJhdGVkQXV0aFJlcXVlc3RJ bXBsOjpTaG93RXJyb3IKKyAgICAgICBiYXNlOjpCaW5kT25jZSgmRmVkZXJhdGVkQXV0aFJlcXVl c3RJbXBsOjpDb21wbGV0ZVJlcXVlc3RXaXRoRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAg d2Vha19wdHJfZmFjdG9yeV8uR2V0V2Vha1B0cigpKSk7CisgICBhYnNsOjpvcHRpb25hbDxUb2tl bkVycm9yPiB0b2tlbl9lcnJvciA9CistICAgICAgZXJyb3IgPyBhYnNsOjptYWtlX29wdGlvbmFs PFRva2VuRXJyb3I+KGVycm9yLT5jb2RlLCBlcnJvci0+dXJsKQorKyAgICAgIGVycm9yID8gYWJz bDo6bWFrZV9vcHRpb25hbDxUb2tlbkVycm9yPih7ZXJyb3ItPmNvZGUsIGVycm9yLT51cmx9KQor ICAgICAgICAgICAgIDogYWJzbDo6bnVsbG9wdDsKKyAKKyAgIC8vIFRPRE8oY3JidWcuY29tLzE0 ODU3MTApOiBSZWZhY3RvciBJZGVudGl0eUNyZWRlbnRpYWxUb2tlbkVycm9yCistLS0gY2hyb21p dW0tMTE5LjAuNjA0NS41OS91aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdlcl91dGlsLmgubm9f bWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMC0yNiAxODoxODoxNC4wMDAwMDAwMDAgKzAyMDAK KysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2Vy X3V0aWwuaAkyMDIzLTExLTAxIDE3OjI5OjU0LjI2OTgyMDQxNSArMDEwMAorQEAgLTUyLDUzICs1 Miw1MyBAQAogICAgICB6Y3JfY29sb3JfbWFuYWdlcl92MV9jaHJvbWF0aWNpdHlfbmFtZXMsCiAg ICAgIFByaW1hcnlWZXJzaW9uPigKICAgICAge3taQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFU SUNJVFlfTkFNRVNfQlQ2MDFfNTI1X0xJTkUsCkBAIC0xMTcsNyArMzkxLDcgQEAgZGlmZiAtdXAg Y2hyb21pdW0tMTE2LjAuNTg0NS41MC91aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdlcl91dGls LmgubWUgY2hyb21pdW0KICAKICAvLyBBIG1hcCBmcm9tIHRoZSB6Y3JfY29sb3JfbWFuYWdlcl92 MSBlb3RmX25hbWVzIGVudW0gdmFsdWVzCiAgLy8gcmVwcmVzZW50aW5nIHdlbGwta25vd24gRU9U RnMsIHRvIHRoZWlyIGVxdWl2YWxlbnQgVHJhbnNmZXJJRHMuCi1AQCAtMTA3LDY1ICsxMDcsNjUg QEAgY29uc3RleHByIGF1dG8ga0VvdGZNYXAgPSBiYXNlOjpNYWtlRml4ZQorQEAgLTEwNyw2OCAr MTA3LDY4IEBACiAgICAgIHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMsCiAgICAgIFRy YW5zZmVyVmVyc2lvbj4oewogICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19M SU5FQVIsCkBAIC0xMjgsNiArNDAyLDExIEBAIGRpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUu NTAvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oLm1lIGNocm9taXVtCiAgICAg IHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0IsCiAtICAgICBUcmFuc2ZlclZl cnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTUkdCLCBrRGVmYXVsdFNpbmNlVmVy c2lvbil9LAogKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJ RDo6U1JHQiwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VS X1YxX0VPVEZfTkFNRVNfU1JHQl9IRFIsCistICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xv clNwYWNlOjpUcmFuc2ZlcklEOjpTUkdCX0hEUiwKKy0gICAgICAgICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT04pfSwKKysg ICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0JfSERS LAorKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf U1JHQl9IRFJfU0lOQ0VfVkVSU0lPTn19LAogICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19CVDcwOSwKIC0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRy YW5zZmVySUQ6OkJUNzA5LAogLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VS X1YxX0VPVEZfTkFNRVNfQlQ3MDlfU0lOQ0VfVkVSU0lPTil9LApAQCAtMjE5LDcgKzQ5OCw3IEBA IGRpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuNTAvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21h bmFnZXJfdXRpbC5oLm1lIGNocm9taXVtCiAgfSk7CiAgCiAgLy8gQSBtYXAgZnJvbSB0aGUgU0RS IHpjcl9jb2xvcl9tYW5hZ2VyX3YxIGVvdGZfbmFtZXMgZW51bSB2YWx1ZXMKLUBAIC0xNzQsMTgg KzE3NCwxOCBAQCBjb25zdGV4cHIgYXV0byBrRW90Zk1hcCA9IGJhc2U6Ok1ha2VGaXhlCitAQCAt MTc3LDE4ICsxNzcsMTggQEAKICBjb25zdGV4cHIgYXV0byBrVHJhbnNmZXJNYXAgPQogICAgICBi YXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMsIFRy YW5zZmVyRm5WZXJzaW9uPih7CiAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9O QU1FU19MSU5FQVIsCkBAIC0yNDUsMTUgKzUyNCwxOCBAQCBkaWZmIC11cCBjaHJvbWl1bS0xMTYu MC41ODQ1LjUwL3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwuaC5tZSBjaHJvbWl1 bQogICAgICB9KTsKICAKICAvLyBBIG1hcCBmcm9tIHRoZSBIRFIgemNyX2NvbG9yX21hbmFnZXJf djEgZW90Zl9uYW1lcyBlbnVtIHZhbHVlcwotQEAgLTE5NCw2OCArMTk0LDY4IEBAIGNvbnN0ZXhw ciBhdXRvIGtUcmFuc2Zlck1hcCA9CitAQCAtMTk3LDcwICsxOTcsNzAgQEAKICBjb25zdGV4cHIg YXV0byBrSERSVHJhbnNmZXJNYXAgPQogICAgICBiYXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9j b2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMsIFRyYW5zZmVyRm5WZXJzaW9uPigKICAgICAgICAg IHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MSU5FQVIsCiAtICAgICAgICAgIFRy YW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRUcmFuc2ZlckZuOjprTGluZWFyLCBrRGVmYXVsdFNpbmNl VmVyc2lvbil9LAogKyAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJG bjo6a0xpbmVhciwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCLAotLSAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lv bihTa05hbWVkVHJhbnNmZXJGbkV4dDo6a1NSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0r ICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuRXh0OjprU1JHQiwg a0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19TUkdCX0hEUiwKKy0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oCisrICAg ICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ueworICAgICAgICAgICAgICAgU2tOYW1lZFRyYW5zZmVy Rm5FeHQ6OmtTUkdCLAorLSAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9O QU1FU19TUkdCX0hEUl9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgICAgICBaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT059fSwKICAgICAgICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19QUSwKIC0gICAgICAgICAgVHJhbnNm ZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm46OmtQUSwga0RlZmF1bHRTaW5jZVZlcnNpb24p fSwKICsgICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46OmtQUSwg a0RlZmF1bHRTaW5jZVZlcnNpb259fSwKQEAgLTM0NiwyMjIgKzYyOCw3NiBAQCBkaWZmIC11cCBj aHJvbWl1bS0xMTYuMC41ODQ1LjUwL3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwu aC5tZSBjaHJvbWl1bQogIAogIHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2Nocm9tYXRpY2l0eV9uYW1l cyBUb0NvbG9yTWFuYWdlckNocm9tYXRpY2l0eSgKICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmlt YXJ5SUQgcHJpbWFyeUlELAotZGlmZiAtdXAgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jaHJvbWUv YnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYy5tZSBjaHJvbWl1bS0x MTYuMC41ODQ1LjUwL2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xp ZW50LmNjCi0tLS0gY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jaHJvbWUvYnJvd3Nlci91aS9vbW5p Ym94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYy5tZQkyMDIzLTA4LTAzIDEzOjIzOjMzLjc0ODM5 NDYxNSArMDIwMAotKysrIGNocm9taXVtLTExNi4wLjU4NDUuNTAvY2hyb21lL2Jyb3dzZXIvdWkv b21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2MJMjAyMy0wOC0wMyAxMzoyNTowMS4xNDA0 ODk4NDAgKzAyMDAKLUBAIC00NzAsMTAgKzQ3MCwxMCBAQCB2b2lkIENocm9tZU9tbmlib3hDbGll bnQ6Ok9uQXV0b2NvbXBsZXRlCi0gICAgICAgICAgICAgICBhbHRlcm5hdGl2ZV9uYXZfbWF0Y2gp OwotIAotICAgLy8gU3RvcmUgdGhlIGRldGFpbHMgbmVjZXNzYXJ5IHRvIG9wZW4gdGhlIG9tbmli b3ggbWF0Y2ggdmlhIGJyb3dzZXIgY29tbWFuZHMuCi0tICBsb2NhdGlvbl9iYXJfLT5zZXRfbmF2 aWdhdGlvbl9wYXJhbXMoTG9jYXRpb25CYXI6Ok5hdmlnYXRpb25QYXJhbXMoCi0rICBsb2NhdGlv bl9iYXJfLT5zZXRfbmF2aWdhdGlvbl9wYXJhbXMoTG9jYXRpb25CYXI6Ok5hdmlnYXRpb25QYXJh bXN7Ci0gICAgICAgZGVzdGluYXRpb25fdXJsLCBkaXNwb3NpdGlvbiwgdHJhbnNpdGlvbiwgbWF0 Y2hfc2VsZWN0aW9uX3RpbWVzdGFtcCwKLSAgICAgICBkZXN0aW5hdGlvbl91cmxfZW50ZXJlZF93 aXRob3V0X3NjaGVtZSwKLS0gICAgICBkZXN0aW5hdGlvbl91cmxfZW50ZXJlZF93aXRoX2h0dHBf c2NoZW1lKSk7Ci0rICAgICAgZGVzdGluYXRpb25fdXJsX2VudGVyZWRfd2l0aF9odHRwX3NjaGVt ZX0pOwotIAotICAgaWYgKGJyb3dzZXJfKSB7Ci0gICAgIGF1dG8gbmF2aWdhdGlvbiA9IGNocm9t ZTo6T3BlbkN1cnJlbnRVUkwoYnJvd3Nlcl8pOwotZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkz OC42Mi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MubWUgY2hyb21pdW0tMTE3LjAuNTkz OC42Mi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MKLWRpZmYgLXVwIGNocm9taXVtLTEx Ny4wLjU5MzguNjIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9u dF9wYWxldHRlLmgubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaAotLS0tIGNocm9taXVtLTExNy4w LjU5MzguNjIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9w YWxldHRlLmgubWUJMjAyMy0wOS0xNSAxMDo0ODo0MS4zMzAyOTQyNDEgKzAyMDAKLSsrKyBjaHJv bWl1bS0xMTcuMC41OTM4LjYyL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2Zv bnRzL2ZvbnRfcGFsZXR0ZS5oCTIwMjMtMDktMTUgMTA6NTE6MjQuNTAxMzI0NDE2ICswMjAwCi1A QCAtOTYsNyArOTYsNyBAQCBjbGFzcyBQTEFURk9STV9FWFBPUlQgRm9udFBhbGV0dGUgOiBwdWJs Ci0gICAgICAgQ29sb3I6OkNvbG9yU3BhY2UgY29sb3JfaW50ZXJwb2xhdGlvbl9zcGFjZSwKLSAg ICAgICBhYnNsOjpvcHRpb25hbDxDb2xvcjo6SHVlSW50ZXJwb2xhdGlvbk1ldGhvZD4gaHVlX2lu dGVycG9sYXRpb25fbWV0aG9kKSB7Ci0gICAgIHJldHVybiBiYXNlOjpBZG9wdFJlZihuZXcgRm9u dFBhbGV0dGUoCi0tICAgICAgICBzdGFydCwgZW5kLCBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXMo c3RhcnRfcGVyY2VudGFnZSwgZW5kX3BlcmNlbnRhZ2UpLAotKyAgICAgICAgc3RhcnQsIGVuZCwg Tm9uTm9ybWFsaXplZFBlcmNlbnRhZ2Vze3N0YXJ0X3BlcmNlbnRhZ2UsIGVuZF9wZXJjZW50YWdl fSwKLSAgICAgICAgIG5vcm1hbGl6ZWRfcGVyY2VudGFnZSwgYWxwaGFfbXVsdGlwbGllciwgY29s b3JfaW50ZXJwb2xhdGlvbl9zcGFjZSwKLSAgICAgICAgIGh1ZV9pbnRlcnBvbGF0aW9uX21ldGhv ZCkpOwotICAgfQotQEAgLTE3MCw3ICsxNzAsNyBAQCBjbGFzcyBQTEFURk9STV9FWFBPUlQgRm9u dFBhbGV0dGUgOiBwdWJsCi0gICAgICAgZG91YmxlIG5vcm1hbGl6ZWRfcGVyY2VudGFnZSkgewot ICAgICBkb3VibGUgZW5kX3BlcmNlbnRhZ2UgPSBub3JtYWxpemVkX3BlcmNlbnRhZ2UgKiAxMDAu MDsKLSAgICAgZG91YmxlIHN0YXJ0X3BlcmNlbnRhZ2UgPSAxMDAuMCAtIGVuZF9wZXJjZW50YWdl OwotLSAgICByZXR1cm4gTm9uTm9ybWFsaXplZFBlcmNlbnRhZ2VzKHN0YXJ0X3BlcmNlbnRhZ2Us IGVuZF9wZXJjZW50YWdlKTsKLSsgICAgcmV0dXJuIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdlc3tz dGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZX07Ci0gICB9Ci0gCi0gICBkb3VibGUgR2V0 QWxwaGFNdWx0aXBsaWVyKCkgY29uc3QgewotZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkzOC42 Mi9jb250ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNj Lm1lIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3Qv cmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYwotLS0tIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29u dGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYy5tZQky MDIzLTA5LTE1IDEyOjE3OjM1LjY2NDg2MTI1NyArMDIwMAotKysrIGNocm9taXVtLTExNy4wLjU5 MzguNjIvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1w bC5jYwkyMDIzLTA5LTE1IDEyOjIxOjA2LjExMjY5NDI1NiArMDIwMAotQEAgLTg1MDksNyArODUw OSw3IEBAIHZvaWQgUmVuZGVyRnJhbWVIb3N0SW1wbDo6U2VuZEZlbmNlZEZyYW0KLSAgIGZvciAo Y29uc3QgYmxpbms6OkZlbmNlZEZyYW1lOjpSZXBvcnRpbmdEZXN0aW5hdGlvbiYgZGVzdGluYXRp b24gOgotICAgICAgICBkZXN0aW5hdGlvbnMpIHsKLSAgICAgU2VuZEZlbmNlZEZyYW1lUmVwb3J0 aW5nQmVhY29uSW50ZXJuYWwoCi0tICAgICAgICBEZXN0aW5hdGlvbkVudW1FdmVudChldmVudF90 eXBlLCBldmVudF9kYXRhKSwgZGVzdGluYXRpb24sCi0rICAgICAgICBEZXN0aW5hdGlvbkVudW1F dmVudHtldmVudF90eXBlLCBldmVudF9kYXRhfSwgZGVzdGluYXRpb24sCi0gICAgICAgICAvKmZy b21fcmVuZGVyZXI9Ki90cnVlLCBhdHRyaWJ1dGlvbl9yZXBvcnRpbmdfcnVudGltZV9mZWF0dXJl cywKLSAgICAgICAgIEdldEZyYW1lVHJlZU5vZGVJZCgpKTsKLSAgIH0KLUBAIC04NTQ1LDcgKzg1 NDUsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdEltcGw6OlNlbmRGZW5jZWRGcmFtCi0gICB9Ci0g Ci0gICBTZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKLS0gICAgICBEZXN0 aW5hdGlvblVSTEV2ZW50KGRlc3RpbmF0aW9uX3VybCksCi0rICAgICAgRGVzdGluYXRpb25VUkxF dmVudHtkZXN0aW5hdGlvbl91cmx9LAotICAgICAgIGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVwb3J0 aW5nRGVzdGluYXRpb246OmtCdXllciwKLSAgICAgICAvKmZyb21fcmVuZGVyZXI9Ki90cnVlLCBh dHRyaWJ1dGlvbl9yZXBvcnRpbmdfcnVudGltZV9mZWF0dXJlcywKLSAgICAgICBHZXRGcmFtZVRy ZWVOb2RlSWQoKSk7Ci1AQCAtODYxNyw4ICs4NjE3LDggQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJ bXBsOjpNYXliZVNlbmRGZW5jZQotICAgZm9yIChibGluazo6RmVuY2VkRnJhbWU6OlJlcG9ydGlu Z0Rlc3RpbmF0aW9uIGRlc3RpbmF0aW9uIDoKLSAgICAgICAgaW5mby0+ZGVzdGluYXRpb25zKSB7 Ci0gICAgIGluaXRpYXRvcl9yZmgtPlNlbmRGZW5jZWRGcmFtZVJlcG9ydGluZ0JlYWNvbkludGVy bmFsKAotLSAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnQoYmxpbms6OmtGZW5jZWRGcmFtZVRv cE5hdmlnYXRpb25CZWFjb25UeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5m by0+ZGF0YSksCi0rICAgICAgICBEZXN0aW5hdGlvbkVudW1FdmVudHtibGluazo6a0ZlbmNlZEZy YW1lVG9wTmF2aWdhdGlvbkJlYWNvblR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbmZvLT5kYXRhfSwKLSAgICAgICAgIGRlc3RpbmF0aW9uLAotICAgICAgICAgLypmcm9tX3Jl bmRlcmVyPSovZmFsc2UsIGluZm8tPmF0dHJpYnV0aW9uX3JlcG9ydGluZ19ydW50aW1lX2ZlYXR1 cmVzLAotICAgICAgICAgR2V0RnJhbWVUcmVlTm9kZUlkKCksIG5hdmlnYXRpb25fcmVxdWVzdC5H ZXROYXZpZ2F0aW9uSWQoKSk7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2Nocm9t ZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVu dF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjLm1lIGNocm9taXVtLTExNy4wLjU5MzguNjIvY2hyb21l L2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50 X25hdmlnYXRpb25fdGhyb3R0bGUuY2MKLS0tLSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2Nocm9t ZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVu dF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjLm1lCTIwMjMtMDktMTUgMjI6MDQ6MDkuMjMzMzU2NjI3 ICswMjAwCi0rKysgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jaHJvbWUvYnJvd3Nlci9lbnRlcnBy aXNlL3Byb2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJv dHRsZS5jYwkyMDIzLTA5LTE1IDIyOjA1OjQ0LjEyNjA2Mzk5MiArMDIwMAotQEAgLTY3LDggKzY3 LDggQEAgYmFzZTo6ZmxhdF9tYXA8c3RkOjpzdHJpbmcsIFNBTUxQcm9maWxlQQotICAgLy8gVE9E TyhjcmJ1Zy5jb20vMTQ0NTA3Mik6IEFkZCBhY3R1YWwgZG9tYWlucyB3aXRoIGF0dHJpYnV0ZSBu YW1lcy4KLSAgIHByb2ZpbGVfYXR0cmlidXRlcy0+aW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKAotICAg ICAgICJzdXBwb3J0ZWQudGVzdCIsCi0tICAgICAgU0FNTFByb2ZpbGVBdHRyaWJ1dGVzKCJwbGFj ZWhvbGRlck5hbWUiLCAicGxhY2Vob2xkZXJEb21haW4iLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicGxhY2Vob2xkZXJUb2tlbiIpKSk7Ci0rICAgICAgU0FNTFByb2ZpbGVBdHRyaWJ1 dGVzeyJwbGFjZWhvbGRlck5hbWUiLCAicGxhY2Vob2xkZXJEb21haW4iLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAicGxhY2Vob2xkZXJUb2tlbiJ9KSk7Ci0gCi0gICAvLyBFeHRyYWN0 IGRvbWFpbnMgYW5kIGF0dHJpYnV0ZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lIHN3aXRjaC4KLSAg IGNvbnN0IGJhc2U6OkNvbW1hbmRMaW5lJiBjb21tYW5kX2xpbmUgPQotZGlmZiAtdXAgY2hyb21p dW0tMTE1LjAuNTc5MC40MC9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNj Lm1lIGNocm9taXVtLTExNS4wLjU3OTAuNDAvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2NhcGFi aWxpdGllcy5jYwotLS0tIGNocm9taXVtLTExNS4wLjU3OTAuNDAvY2hyb21lL3Rlc3QvY2hyb21l ZHJpdmVyL2NhcGFiaWxpdGllcy5jYy5tZQkyMDIzLTA2LTI1IDEwOjA2OjU4LjQ0NTk5MDA2OSAr MDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuNDAvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVy L2NhcGFiaWxpdGllcy5jYwkyMDIzLTA2LTI1IDEwOjUxOjE3LjY0MDgxODIzMSArMDIwMAotQEAg LTM1NSw3ICszNTUsNyBAQCBTdGF0dXMgUGFyc2VNb2JpbGVFbXVsYXRpb24oY29uc3QgYmFzZTo6 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIid2ZXJzaW9uJyBmaWVsZCBvZiB0eXBlIHN0cmlu ZyIpOwotICAgICAgICAgfQotIAotLSAgICAgICAgYnJhbmRzLmVtcGxhY2VfYmFjaygqYnJhbmQs ICp2ZXJzaW9uKTsKLSsgICAgICAgIGJyYW5kcy5lbXBsYWNlX2JhY2soKSA9IHsqYnJhbmQsICp2 ZXJzaW9ufTsKLSAgICAgICB9Ci0gCi0gICAgICAgY2xpZW50X2hpbnRzLmJyYW5kcyA9IHN0ZDo6 bW92ZShicmFuZHMpOwotQEAgLTM5Miw3ICszOTIsNyBAQCBTdGF0dXMgUGFyc2VNb2JpbGVFbXVs YXRpb24oY29uc3QgYmFzZTo6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgImEgJ3ZlcnNpb24n IGZpZWxkIG9mIHR5cGUgc3RyaW5nIik7Ci0gICAgICAgICB9CitAQCAtMjgzLDQgKzI4Myw0IEBA CiAgCi0tICAgICAgICBmdWxsX3ZlcnNpb25fbGlzdC5lbXBsYWNlX2JhY2soKmJyYW5kLCAqdmVy c2lvbik7Ci0rICAgICAgICBmdWxsX3ZlcnNpb25fbGlzdC5lbXBsYWNlX2JhY2soKSA9IHsqYnJh bmQsICp2ZXJzaW9ufTsKLSAgICAgICB9CisgfSAgLy8gbmFtZXNwYWNlIHVpOjp3YXlsYW5kCiAg Ci0gICAgICAgY2xpZW50X2hpbnRzLmZ1bGxfdmVyc2lvbl9saXN0ID0gc3RkOjptb3ZlKGZ1bGxf dmVyc2lvbl9saXN0KTsKLWRpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuOTYvY2hyb21lL2Jy b3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjLm1l IGNocm9taXVtLTExNi4wLjU4NDUuOTYvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9v bmVfdGltZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjCi0tLS0gY2hyb21pdW0tMTE2LjAuNTg0NS45 Ni9jaHJvbWUvYnJvd3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJv dmlkZXIuY2MubWUJMjAyMy0wOC0xNSAyMTozNDo1OC45MjI4NTU0MjggKzAyMDAKLSsrKyBjaHJv bWl1bS0xMTYuMC41ODQ1Ljk2L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3Rp bWVfcGVybWlzc2lvbl9wcm92aWRlci5jYwkyMDIzLTA4LTE1IDIxOjM5OjIzLjMxMDQzNDIzNyAr MDIwMAotQEAgLTIwNyw4ICsyMDcsOCBAQCB2b2lkIE9uZVRpbWVQZXJtaXNzaW9uUHJvdmlkZXI6 Ok9uU3VzcGVuCistI2VuZGlmICAvLyBVSV9CQVNFX1dBWUxBTkRfQ09MT1JfTUFOQUdFUl9VVElM X0hfCitcIEtlaW4gWmVpbGVudW1icnVjaCBhbSBEYXRlaWVuZGUuCisrI2VuZGlmICAvLyBVSV9C QVNFX1dBWUxBTkRfQ09MT1JfTUFOQUdFUl9VVElMX0hfCitkaWZmIC11cCBjaHJvbWl1bS0xMTku MC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Bl cm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92aWV3LmNjLm1lIGNocm9taXVtLTEx OS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRf cGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9ncmFudGVkX3ZpZXcuY2MKKy0tLSBjaHJvbWl1 bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVk ZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92aWV3LmNjLm1lCTIwMjMt MTEtMDEgMjA6NDY6MTUuOTk3ODYxMjc4ICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41 OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9u X3Byb21wdF9wcmV2aW91c2x5X2dyYW50ZWRfdmlldy5jYwkyMDIzLTExLTAxIDIwOjQ5OjMzLjYw MzM3MTY4MCArMDEwMAorQEAgLTU4LDEzICs1OCwxMyBAQCBFbWJlZGRlZFBlcm1pc3Npb25Qcm9t cHRQcmV2aW91c2x5R3JhbnRlCisgc3RkOjp2ZWN0b3I8RW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0 UHJldmlvdXNseUdyYW50ZWRWaWV3OjpCdXR0b25Db25maWd1cmF0aW9uPgorIEVtYmVkZGVkUGVy bWlzc2lvblByb21wdFByZXZpb3VzbHlHcmFudGVkVmlldzo6R2V0QnV0dG9uc0NvbmZpZ3VyYXRp b24oKSB7CisgICBzdGQ6OnZlY3RvcjxCdXR0b25Db25maWd1cmF0aW9uPiBidXR0b25zOworLSAg YnV0dG9ucy5lbXBsYWNlX2JhY2soCisrICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0geworICAg ICAgIGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9DT05USU5V RV9BTExPV0lORyksCistICAgICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVlQWxsb3dpbmcsIHVpOjpC dXR0b25TdHlsZTo6a1RvbmFsKTsKKysgICAgICBCdXR0b25UeXBlOjprQ29udGludWVBbGxvd2lu ZywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OwogIAotICAgICAgIHdoaWxlIChydWxlX2l0ZXJh dG9yICYmIHJ1bGVfaXRlcmF0b3ItPkhhc05leHQoKSkgewotICAgICAgICAgYXV0byBydWxlID0g cnVsZV9pdGVyYXRvci0+TmV4dCgpOwotLSAgICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxh Y2VfYmFjayhzZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm4pOwot KyAgICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjaygpID0ge3NldHRpbmdfdHlw ZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBydWxlLT5zZWNvbmRhcnlfcGF0dGVybn07Ci0gICAgICAgICBwZXJtaXNzaW9u czo6UGVybWlzc2lvblVtYVV0aWw6OlJlY29yZE9uZVRpbWVQZXJtaXNzaW9uRXZlbnQoCi0gICAg ICAgICAgICAgc2V0dGluZ190eXBlLAotICAgICAgICAgICAgIHBlcm1pc3Npb25zOjpPbmVUaW1l UGVybWlzc2lvbkV2ZW50OjpFWFBJUkVEX09OX1NVU1BFTkQpOwotQEAgLTMwMiw4ICszMDIsOCBA QCB2b2lkIE9uZVRpbWVQZXJtaXNzaW9uUHJvdmlkZXI6OkRlbGV0ZUVuCi0gICAgIGF1dG8gcnVs ZSA9IHJ1bGVfaXRlcmF0b3ItPk5leHQoKTsKLSAgICAgaWYgKHJ1bGUtPnByaW1hcnlfcGF0dGVy bi5NYXRjaGVzKG9yaWdpbl9ndXJsKSAmJgotICAgICAgICAgcnVsZS0+c2Vjb25kYXJ5X3BhdHRl cm4uTWF0Y2hlcyhvcmlnaW5fZ3VybCkpIHsKLS0gICAgICBwYXR0ZXJuc190b19kZWxldGUuZW1w bGFjZV9iYWNrKAotLSAgICAgICAgICBjb250ZW50X3NldHRpbmdfdHlwZSwgcnVsZS0+cHJpbWFy eV9wYXR0ZXJuLCBydWxlLT5zZWNvbmRhcnlfcGF0dGVybik7Ci0rICAgICAgcGF0dGVybnNfdG9f ZGVsZXRlLmVtcGxhY2VfYmFjaygpID0gewotKyAgICAgICAgICBjb250ZW50X3NldHRpbmdfdHlw ZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLCBydWxlLT5zZWNvbmRhcnlfcGF0dGVybn07Ci0gICAg ICAgcGVybWlzc2lvbnM6OlBlcm1pc3Npb25VbWFVdGlsOjpSZWNvcmRPbmVUaW1lUGVybWlzc2lv bkV2ZW50KAotICAgICAgICAgICBjb250ZW50X3NldHRpbmdfdHlwZSwgdHJpZ2dlcl9ldmVudCk7 Ci0gICAgIH0KLWRpZmYgLXVwIGNocm9taXVtLTExNy4wLjU5MzguNjIvYmFzZS90cmFjZV9ldmVu dC90cmFjZV9sb2cuY2MubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9iYXNlL3RyYWNlX2V2ZW50 L3RyYWNlX2xvZy5jYwotLS0tIGNocm9taXVtLTExNy4wLjU5MzguNjIvYmFzZS90cmFjZV9ldmVu dC90cmFjZV9sb2cuY2MubWUJMjAyMy0wOS0xMyAyMDoxNDo0Mi40NDEyNDg3ODEgKzAyMDAKLSsr KyBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjCTIw MjMtMDktMTMgMjA6MTY6MTIuMTg2NjM4NjAxICswMjAwCi1AQCAtMjE4Nyw4ICsyMTg3LDggQEAg dm9pZCBUcmFjZUxvZzo6U2V0VHJhY2VCdWZmZXJGb3JUZXN0aW5nKAotICNpZiBCVUlMREZMQUco VVNFX1BFUkZFVFRPX0NMSUVOVF9MSUJSQVJZKQotIHZvaWQgVHJhY2VMb2c6Ok9uU2V0dXAoY29u c3QgcGVyZmV0dG86OkRhdGFTb3VyY2VCYXNlOjpTZXR1cEFyZ3MmIGFyZ3MpIHsKLSAgIEF1dG9M b2NrIGxvY2sodHJhY2tfZXZlbnRfbG9ja18pOwotLSAgdHJhY2tfZXZlbnRfc2Vzc2lvbnNfLmVt cGxhY2VfYmFjayhhcmdzLmludGVybmFsX2luc3RhbmNlX2luZGV4LCAqYXJncy5jb25maWcsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MuYmFja2VuZF90eXBlKTsK LSsgIHRyYWNrX2V2ZW50X3Nlc3Npb25zXy5lbXBsYWNlX2JhY2soKSA9IHthcmdzLmludGVybmFs X2luc3RhbmNlX2luZGV4LCAqYXJncy5jb25maWcsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFyZ3MuYmFja2VuZF90eXBlfTsKKy0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNr KAorKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICBsMTBuX3V0aWw6OkdldFN0 cmluZ1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfU1RPUF9BTExPV0lORyksCistICAgICAgQnV0 dG9uVHlwZTo6a1N0b3BBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOworKyAgICAg IEJ1dHRvblR5cGU6OmtTdG9wQWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKKyAg IHJldHVybiBidXR0b25zOwogIH0KICAKLSB2b2lkIFRyYWNlTG9nOjpPblN0YXJ0KGNvbnN0IHBl cmZldHRvOjpEYXRhU291cmNlQmFzZTo6U3RhcnRBcmdzJikgewotZGlmZiAtdXAgY2hyb21pdW0t MTE3LjAuNTkzOC42Mi9jb250ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9wYWNrYWdlLmNjLm1l IGNocm9taXVtLTExNy4wLjU5MzguNjIvY29udGVudC9icm93c2VyL2Rvd25sb2FkL3NhdmVfcGFj a2FnZS5jYwotLS0tIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29udGVudC9icm93c2VyL2Rvd25s b2FkL3NhdmVfcGFja2FnZS5jYy5tZQkyMDIzLTA5LTE1IDEyOjAyOjQzLjg2NjYyMjU5MSArMDIw MAotKysrIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29udGVudC9icm93c2VyL2Rvd25sb2FkL3Nh dmVfcGFja2FnZS5jYwkyMDIzLTA5LTE1IDEyOjAzOjU4LjcxNTk4NDUxMSArMDIwMAotQEAgLTc2 NCw4ICs3NjQsOCBAQCB2b2lkIFNhdmVQYWNrYWdlOjpGaW5pc2goKSB7Ci0gICBpZiAoZG93bmxv YWRfKSB7Ci0gICAgIHN0ZDo6dmVjdG9yPGRvd25sb2FkOjpEb3dubG9hZFNhdmVJdGVtRGF0YTo6 SXRlbUluZm8+IGZpbGVzOwotICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBzYXZlZF9zdWNjZXNzX2l0 ZW1zXykgewotLSAgICAgIGZpbGVzLmVtcGxhY2VfYmFjayhpdGVtLnNlY29uZC0+ZnVsbF9wYXRo KCksIGl0ZW0uc2Vjb25kLT51cmwoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5z ZWNvbmQtPnJlZmVycmVyKCkudXJsKTsKLSsgICAgICBmaWxlcy5lbXBsYWNlX2JhY2soKSA9IHtp dGVtLnNlY29uZC0+ZnVsbF9wYXRoKCksIGl0ZW0uc2Vjb25kLT51cmwoKSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgaXRlbS5zZWNvbmQtPnJlZmVycmVyKCkudXJsfTsKLSAgICAgfQotICAg ICBkb3dubG9hZDo6RG93bmxvYWRTYXZlSXRlbURhdGE6OkF0dGFjaEl0ZW1EYXRhKGRvd25sb2Fk Xywgc3RkOjptb3ZlKGZpbGVzKSk7Ci0gICB9Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4 LjYyL3VpL2d0ay9ndGtfdWkuY2MubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi91aS9ndGsvZ3Rr X3VpLmNjCi0tLS0gY2hyb21pdW0tMTE3LjAuNTkzOC42Mi91aS9ndGsvZ3RrX3VpLmNjLm1lCTIw MjMtMDktMTUgMjA6Mjk6NDIuNjI2NTAyMzQzICswMjAwCi0rKysgY2hyb21pdW0tMTE3LjAuNTkz OC42Mi91aS9ndGsvZ3RrX3VpLmNjCTIwMjMtMDktMTUgMjA6MzY6MTguNzYzMDkxMTc5ICswMjAw Ci1AQCAtOTU1LDExICs5NTUsMTEgQEAgdWk6OkRpc3BsYXlDb25maWcgR3RrVWk6OkdldERpc3Bs YXlDb25maQotICAgICBHZGtSZWN0YW5nbGUgZ2VvbWV0cnk7Ci0gICAgIGdka19tb25pdG9yX2dl dF9nZW9tZXRyeShtb25pdG9yLCAmZ2VvbWV0cnkpOwotICAgICBpbnQgbW9uaXRvcl9zY2FsZSA9 IHN0ZDo6bWF4KDEsIGdka19tb25pdG9yX2dldF9zY2FsZV9mYWN0b3IobW9uaXRvcikpOwotLSAg ICBjb25maWcuZGlzcGxheV9nZW9tZXRyaWVzLmVtcGxhY2VfYmFjaygKLSsgICAgY29uZmlnLmRp c3BsYXlfZ2VvbWV0cmllcy5lbXBsYWNlX2JhY2soKSA9IHsKLSAgICAgICAgIGdmeDo6UmVjdCht b25pdG9yX3NjYWxlICogZ2VvbWV0cnkueCwgbW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LnksCi0g ICAgICAgICAgICAgICAgICAgbW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LndpZHRoLAotICAgICAg ICAgICAgICAgICAgIG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS5oZWlnaHQpLAotLSAgICAgICAg bW9uaXRvcl9zY2FsZSAqIGZvbnRfc2NhbGUpOwotKyAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+ KG1vbml0b3Jfc2NhbGUgKiBmb250X3NjYWxlKX07CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42 MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1p c3Npb25fcHJvbXB0X2Fza192aWV3LmNjLnRoYW4gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJv bWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21w dF9hc2tfdmlldy5jYworLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIv dWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcu Y2MudGhhbgkyMDIzLTExLTAxIDIwOjUyOjI5LjAwNTQ2NDQ5NCArMDEwMAorKysrIGNocm9taXVt LTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRk ZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2MJMjAyMy0xMS0wMSAyMToxNDoxMi43NDE4 NTk2MDQgKzAxMDAKK0BAIC01NiwxMiArNTYsMTIgQEAgc3RkOjp2ZWN0b3I8RW1iZWRkZWRQZXJt aXNzaW9uUHJvbXB0QXNrVgorIEVtYmVkZGVkUGVybWlzc2lvblByb21wdEFza1ZpZXc6OkdldEJ1 dHRvbnNDb25maWd1cmF0aW9uKCkgeworICAgc3RkOjp2ZWN0b3I8QnV0dG9uQ29uZmlndXJhdGlv bj4gYnV0dG9uczsKKyAgIGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKHBlcm1pc3Np b25zOjpmZWF0dXJlczo6a09uZVRpbWVQZXJtaXNzaW9uKSkgeworLSAgICBidXR0b25zLmVtcGxh Y2VfYmFjaygKKysgICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICAgIGwxMG5f dXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1dfVEhJU19USU1FKSwKKy0g ICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvd1RoaXNUaW1lLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25h bCk7CisrICAgICAgICBCdXR0b25UeXBlOjprQWxsb3dUaGlzVGltZSwgdWk6OkJ1dHRvblN0eWxl OjprVG9uYWx9OwogICAgfQotICAgcmV0dXJuIGNvbmZpZzsKKy0gIGJ1dHRvbnMuZW1wbGFjZV9i YWNrKGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1cpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6QnV0dG9uU3R5bGU6 OmtUb25hbCk7CisrICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0ge2wxMG5fdXRpbDo6R2V0U3Ry aW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1cpLAorKyAgICAgICAgICAgICAgICAgICAgICAg QnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07CisgICByZXR1cm4g YnV0dG9uczsKICB9Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTguMC41OTkzLjU0L2NvbXBvbmVudHMv YXV0b2ZpbGwvY29yZS9icm93c2VyL2NvbnRhY3RfaW5mb19zeW5jX3V0aWwuY2MubWUgY2hyb21p dW0tMTE4LjAuNTk5My41NC9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0 X2luZm9fc3luY191dGlsLmNjCi0tLS0gY2hyb21pdW0tMTE4LjAuNTk5My41NC9jb21wb25lbnRz L2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9fc3luY191dGlsLmNjLm1lCTIwMjMt MTAtMDYgMTA6Mzg6NTIuNDczMTQ1NjkyICswMjAwCi0rKysgY2hyb21pdW0tMTE4LjAuNTk5My41 NC9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9fc3luY191dGls LmNjCTIwMjMtMTAtMDYgMTA6Mzc6MzAuMjY4NjE3MTY5ICswMjAwCi1AQCAtMTc0LDkgKzE3NCw5 IEBAIGNsYXNzIENvbnRhY3RJbmZvUHJvZmlsZVNldHRlciB7Ci0gICAgIENIRUNLKG9ic2VydmF0 aW9ucy5lbXB0eSgpKTsKLSAgICAgZm9yIChjb25zdCBzeW5jX3BiOjpDb250YWN0SW5mb1NwZWNp Zmljczo6T2JzZXJ2YXRpb24mIHByb3RvX29ic2VydmF0aW9uIDoKLSAgICAgICAgICBwcm90b19v YnNlcnZhdGlvbnMpIHsKLS0gICAgICBvYnNlcnZhdGlvbnMuZW1wbGFjZV9iYWNrKHByb3RvX29i c2VydmF0aW9uLnR5cGUoKSwKLSsgICAgICBvYnNlcnZhdGlvbnMuZW1wbGFjZV9iYWNrKCkgPSB7 c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4ocHJvdG9fb2JzZXJ2YXRpb24udHlwZSgpKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2ZpbGVUb2tlblF1YWxpdHk6OkZvcm1T aWduYXR1cmVIYXNoKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3Rv X29ic2VydmF0aW9uLmZvcm1faGFzaCgpKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJvdG9fb2JzZXJ2YXRpb24uZm9ybV9oYXNoKCkpfTsKLSAgICAgfQotICAgfQog IAotZGlmZiAtdXAgY2hyb21pdW0tMTE4LjAuNTk5My41NC9jb21wb25lbnRzL2F1dG9maWxsL2Nv cmUvYnJvd3Nlci93ZWJkYXRhL2F1dG9maWxsX3N5bmNfYnJpZGdlX3V0aWwuY2MubWUgY2hyb21p dW0tMTE4LjAuNTk5My41NC9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJkYXRh L2F1dG9maWxsX3N5bmNfYnJpZGdlX3V0aWwuY2MKLS0tLSBjaHJvbWl1bS0xMTguMC41OTkzLjU0 L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfc3luY19i cmlkZ2VfdXRpbC5jYy5tZQkyMDIzLTEwLTA2IDEwOjQxOjM3Ljc0NjQwMjIxNSArMDIwMAotKysr IGNocm9taXVtLTExOC4wLjU5OTMuNTQvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIv d2ViZGF0YS9hdXRvZmlsbF9zeW5jX2JyaWRnZV91dGlsLmNjCTIwMjMtMTAtMDYgMTA6NDI6Mjgu NDY5NTYyOTI3ICswMjAwCi1AQCAtNTUzLDExICs1NTMsMTEgQEAgU2VydmVyQ3ZjIEF1dG9maWxs V2FsbGV0Q3ZjU3RydWN0RGF0YUZybwotICAgYmFzZTo6U3RyaW5nVG9JbnQ2NCh3YWxsZXRfY3Jl ZGVudGlhbF9zcGVjaWZpY3MuaW5zdHJ1bWVudF9pZCgpLAotICAgICAgICAgICAgICAgICAgICAg ICAmaW5zdHJ1bWVudF9pZCk7Ci0gCi0tICByZXR1cm4gU2VydmVyQ3ZjKAotKyAgcmV0dXJuIFNl cnZlckN2Y3sKLSAgICAgICBpbnN0cnVtZW50X2lkLCBiYXNlOjpVVEY4VG9VVEYxNih3YWxsZXRf Y3JlZGVudGlhbF9zcGVjaWZpY3MuY3ZjKCkpLAotICAgICAgIGJhc2U6OlRpbWU6OlVuaXhFcG9j aCgpICsKLSAgICAgICAgICAgYmFzZTo6TWlsbGlzZWNvbmRzKHdhbGxldF9jcmVkZW50aWFsX3Nw ZWNpZmljcwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sYXN0X3VwZGF0ZWRf dGltZV91bml4X2Vwb2NoX21pbGxpcygpKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLmxhc3RfdXBkYXRlZF90aW1lX3VuaXhfZXBvY2hfbWlsbGlzKCkpfTsKLSB9CitkaWZm IC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1p c3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmlldy5oLm1lIGNocm9taXVt LTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRk ZWRfcGVybWlzc2lvbl9wcm9tcHRfYmFzZV92aWV3LmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1 LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Np b25fcHJvbXB0X2Jhc2Vfdmlldy5oLm1lCTIwMjMtMTEtMDEgMjE6MjI6MDIuMjIyNjQ2OTAzICsw MTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9w ZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaAkyMDIzLTEx LTAxIDIxOjE5OjU4Ljc2OTYxOTM5MyArMDEwMAorQEAgLTcyLDYgKzcyLDcgQEAgY2xhc3MgRW1i ZWRkZWRQZXJtaXNzaW9uUHJvbXB0QmFzZVZpZXcgOgorICAgc3RydWN0IFJlcXVlc3RMaW5lQ29u ZmlndXJhdGlvbiB7CisgICAgIGNvbnN0IHJhd19wdHI8Y29uc3QgZ2Z4OjpWZWN0b3JJY29uPiBp Y29uOworICAgICBzdGQ6OnUxNnN0cmluZyBtZXNzYWdlOworKyAgICBSZXF1ZXN0TGluZUNvbmZp Z3VyYXRpb24oYXV0byBpLCBhdXRvIG0pIDogaWNvbihpKSwgbWVzc2FnZShtKSB7IH0KKyAgIH07 CiAgCi0gVmlydHVhbENhcmRVc2FnZURhdGEgVmlydHVhbENhcmRVc2FnZURhdGFGcm9tVXNhZ2VT cGVjaWZpY3MoCi1kaWZmIC11cCBjaHJvbWl1bS0xMTguMC41OTkzLjU0L2NvbnRlbnQvYnJvd3Nl ci93ZWJpZC9pZHBfbmV0d29ya19yZXF1ZXN0X21hbmFnZXIuY2MubWUgY2hyb21pdW0tMTE4LjAu NTk5My41NC9jb250ZW50L2Jyb3dzZXIvd2ViaWQvaWRwX25ldHdvcmtfcmVxdWVzdF9tYW5hZ2Vy LmNjCi0tLS0gY2hyb21pdW0tMTE4LjAuNTk5My41NC9jb250ZW50L2Jyb3dzZXIvd2ViaWQvaWRw X25ldHdvcmtfcmVxdWVzdF9tYW5hZ2VyLmNjLm1lCTIwMjMtMTAtMDYgMTM6NDY6NTcuMjg3MDg5 MDQwICswMjAwCi0rKysgY2hyb21pdW0tMTE4LjAuNTk5My41NC9jb250ZW50L2Jyb3dzZXIvd2Vi aWQvaWRwX25ldHdvcmtfcmVxdWVzdF9tYW5hZ2VyLmNjCTIwMjMtMTAtMDYgMTM6NDc6MjUuNDUw NjMyMTU2ICswMjAwCi1AQCAtNjA0LDcgKzYwNCw3IEBAIHZvaWQgT25Ub2tlblJlcXVlc3RQYXJz ZWQoCi0gICAgIGlmIChyZXNwb25zZV9lcnJvcikgewotICAgICAgIGludCBlcnJvcl9jb2RlID0g cmVzcG9uc2VfZXJyb3ItPkZpbmRJbnQoa0Vycm9yQ29kZUtleSkudmFsdWVfb3IoMCk7Ci0gICAg ICAgR1VSTCBlcnJvcl91cmwgPSBFeHRyYWN0VXJsKCpyZXNwb25zZV9lcnJvciwga0Vycm9yVXJs S2V5KTsKLS0gICAgICB0b2tlbl9yZXN1bHQuZXJyb3IgPSBUb2tlbkVycm9yKGVycm9yX2NvZGUs IGVycm9yX3VybCk7Ci0rICAgICAgdG9rZW5fcmVzdWx0LmVycm9yID0gVG9rZW5FcnJvcntlcnJv cl9jb2RlLCBlcnJvcl91cmx9OwotICAgICB9Ci0gICB9CisgICBzdHJ1Y3QgQnV0dG9uQ29uZmln dXJhdGlvbiB7CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92 aWV3LmNjLnRoYW4gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3 cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYwor LS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlz c2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcG9saWN5X3ZpZXcuY2MudGhhbgkyMDIz LTExLTAxIDIxOjI1OjMxLjExODYyNjQ3MyArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUu NTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lv bl9wcm9tcHRfcG9saWN5X3ZpZXcuY2MJMjAyMy0xMS0wMSAyMTozMDowNi4zODMzNDAyNzQgKzAx MDAKK0BAIC00OCw4ICs0OCw4IEBAIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZpZXc6 OkdldFIKKyBzdGQ6OnZlY3RvcjxFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQb2xpY3lWaWV3OjpC dXR0b25Db25maWd1cmF0aW9uPgorIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZpZXc6 OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgeworICAgc3RkOjp2ZWN0b3I8QnV0dG9uQ29uZmln dXJhdGlvbj4gYnV0dG9uczsKKy0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKGwxMG5fdXRpbDo6R2V0 U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9PS19MQUJFTCksCistICAgICAgICAgICAg ICAgICAgICAgICBCdXR0b25UeXBlOjprUG9saWN5T0ssIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFs KTsKKysgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7bDEwbl91dGlsOjpHZXRTdHJpbmdVVEYx NihJRFNfRU1CRURERURfUFJPTVBUX09LX0xBQkVMKSwKKysgICAgICAgICAgICAgICAgICAgICAg IEJ1dHRvblR5cGU6OmtQb2xpY3lPSywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OworICAgcmV0 dXJuIGJ1dHRvbnM7CisgfQogIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTExOS1udWxscHRyX3Qtd2l0aG91dC1uYW1lc3BhY2Utc3RkLnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1udWxscHRyX3Qtd2l0aG91dC1uYW1l c3BhY2Utc3RkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAu LjVjYjk2OWY0ZjQwY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMvY2hyb21pdW0tMTE5LW51bGxwdHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2gKQEAg LTAsMCArMSwyMSBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L2ZyYWdtZW50X2RhdGFfaXRlcmF0b3IuaC5tZSBj aHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFp bnQvZnJhZ21lbnRfZGF0YV9pdGVyYXRvci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L2ZyYWdtZW50X2RhdGFfaXRlcmF0 b3IuaC5tZQkyMDIzLTEwLTI3IDIwOjA3OjE2LjQyMTIzMDgxNSArMDIwMAorKysrIGNocm9taXVt LTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9wYWludC9mcmFn bWVudF9kYXRhX2l0ZXJhdG9yLmgJMjAyMy0xMC0yNyAyMDowNzozNi44ODM2MDAwODUgKzAyMDAK K0BAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEZyYWdtZW50RGF0YUl0ZXJhdG9yCisgIHB1YmxpYzoK KyAgIGV4cGxpY2l0IEZyYWdtZW50RGF0YUl0ZXJhdG9yKGNvbnN0IExheW91dE9iamVjdCYgb2Jq ZWN0KQorICAgICAgIDogRnJhZ21lbnREYXRhSXRlcmF0b3JCYXNlKCZvYmplY3QuRmlyc3RGcmFn bWVudCgpKSB7fQorLSAgZXhwbGljaXQgRnJhZ21lbnREYXRhSXRlcmF0b3IobnVsbHB0cl90KQor KyAgZXhwbGljaXQgRnJhZ21lbnREYXRhSXRlcmF0b3Ioc3RkOjpudWxscHRyX3QpCisgICAgICAg OiBGcmFnbWVudERhdGFJdGVyYXRvckJhc2UobnVsbHB0cikge30KKyB9OworIAorQEAgLTYzLDcg KzYzLDcgQEAgY2xhc3MgTXV0YWJsZUZyYWdtZW50RGF0YUl0ZXJhdG9yCisgICBleHBsaWNpdCBN dXRhYmxlRnJhZ21lbnREYXRhSXRlcmF0b3IoY29uc3QgTGF5b3V0T2JqZWN0JiBvYmplY3QpCisg ICAgICAgOiBGcmFnbWVudERhdGFJdGVyYXRvckJhc2UoCisgICAgICAgICAgICAgJm9iamVjdC5H ZXRNdXRhYmxlRm9yUGFpbnRpbmcoKS5GaXJzdEZyYWdtZW50KCkpIHt9CistICBleHBsaWNpdCBN dXRhYmxlRnJhZ21lbnREYXRhSXRlcmF0b3IobnVsbHB0cl90KQorKyAgZXhwbGljaXQgTXV0YWJs ZUZyYWdtZW50RGF0YUl0ZXJhdG9yKHN0ZDo6bnVsbHB0cl90KQorICAgICAgIDogRnJhZ21lbnRE YXRhSXRlcmF0b3JCYXNlKG51bGxwdHIpIHt9CisgfTsKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktbnZpZGlhLXVzZS1zZXBhcmF0ZS1iby10by12 ZXJpZnktbW9kaWZpZXIucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t MTE5LW52aWRpYS11c2Utc2VwYXJhdGUtYm8tdG8tdmVyaWZ5LW1vZGlmaWVyLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjcxN2Q4OTc0NDZjN2MKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LW52aWRp YS11c2Utc2VwYXJhdGUtYm8tdG8tdmVyaWZ5LW1vZGlmaWVyLnBhdGNoCkBAIC0wLDAgKzEsMTY0 IEBACitjb21taXQgYmRjYzIzZTBhNWU3ZTIyMDY2MGQzZjU0Yzk3MjYyZjlhNGMzMTYwNgorQXV0 aG9yOiBOaWNrIERpZWdvIFlhbWFuZSA8bmlja2RpZWdvQGlnYWxpYS5jb20+CitEYXRlOiAgIFRo dSBOb3YgMiAxNzoyNjoyNSAyMDIzICswMDAwCisKKyAgICBnYm06IG52aWRpYTogdXNlIHNlcGFy YXRlIGJvIHRvIHZlcmlmeSBtb2RpZmllcnMKKyAgICAKKyAgICBCdWdneSBOdmlkaWEgZHJpdmVy cyBmYWlsIHRvIHJldHVybiBGRHMgZm9yIHBsYW5lcyBvZiBhIEJPIHdoaWNoIGhhZAorICAgIGFs cmVhZHkgYW4gaW1wb3J0ZWQgQk8gZGVzdHJveWVkIGJlZm9yZS4gVGhpcyBpcyBhIHdvcmthcm91 bmQgZm9yIHRoYXQKKyAgICBpc3N1ZSwgd2hpY2ggY29uc2lzdHMgb2YgY3JlYXRpbmcvZGVzdHJv eWluZyBhIHNlcGFyYXRlIDF4MSBCTyBmb3IKKyAgICB2YWxpZGF0aW5nIHRoZSBtb2RpZmllcnMg YmVmb3JlIGFjdHVhbGx5IGNyZWF0aW5nIHRoZSBmaW5hbCByZXF1ZXN0ZWQKKyAgICBCTywgd2hp Y2ggZm9yIG5vdyBpcyBsaW1pdGVkIHRvIElTX0xJTlVYIGJ1aWxkcy4KKyAgICAKKyAgICBUaGUg TnZpZGlhIGRyaXZlciBidWcgaXMgYmVpbmcgdHJhY2tlZCB1bmRlciBpbnRlcm5hbCBidWcgNDMx NTUyOS4gVGhlcmUKKyAgICBzZWVtcyB0byBiZSBvdGhlciBpc3N1ZXMgd2hlbiBydW5uaW5nIHVu ZGVyIFdheWxhbmQgd2l0aCBOdmlkaWEsIHdoaWNoCisgICAgd2lsbCBiZSB0cmFja2VkIGFuZCBh ZGRyZXNzZWQgaW4gc2VwYXJhdGUgcGF0Y2hlcy4KKyAgICAKKyAgICBSPWRjYXN0YWduYSwgbXNp c292QGlnYWxpYS5jb20KKyAgICAKKyAgICAgIHdpdGggb3pvbmUvd2F5bGFuZCBiYWNrZW5kIGFu ZCB2ZXJpZnkgR1BVIGFjY2VsZXJhdGlvbiBpcyBub3QgYnJva2VuLgorICAgIAorICAgIFRlc3Q6 IEluIGEgc2luZ2xlIE52aWRpYSBHUFUgc2V0dXAsIHdpdGggcHJvcHJpZXRhcnkgZHJpdmVyLCBy dW4gQ2hyb21lCisgICAgQnVnOiAxMjczNzU4LCAxNDc4Njg0LCAxNDYzODUxCisgICAgQ2hhbmdl LUlkOiBJOWYzMjJiY2Y0MGI0NjBiY2Q0ZWFkMDJmMDVkZDJlOWE4ZDI3MWNlYQorICAgIFJldmll d2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21p dW0vc3JjLysvNDk4OTc4MgorICAgIFJldmlld2VkLWJ5OiBNYWtzaW0gU2lzb3YgPG1zaXNvdkBp Z2FsaWEuY29tPgorICAgIENvbW1pdC1RdWV1ZTogTmljayBZYW1hbmUgPG5pY2tkaWVnb0BpZ2Fs aWEuY29tPgorICAgIENyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTIxODky NH0KKworZGlmZiAtLWdpdCBhL3VpL2dmeC9saW51eC9nYm1fd3JhcHBlci5jYyBiL3VpL2dmeC9s aW51eC9nYm1fd3JhcHBlci5jYworaW5kZXggYmY5MGI3NjYwNWY2OC4uMTQ5MThjMTljMGFiMCAx MDA2NDQKKy0tLSBhL3VpL2dmeC9saW51eC9nYm1fd3JhcHBlci5jYworKysrIGIvdWkvZ2Z4L2xp bnV4L2dibV93cmFwcGVyLmNjCitAQCAtMTEsNiArMTEsNyBAQAorICNpbmNsdWRlICJiYXNlL2xv Z2dpbmcuaCIKKyAjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcmF3X3B0ci5oIgorICNpbmNsdWRlICJi YXNlL21lbW9yeS9yYXdfcHRyX2V4Y2x1c2lvbi5oIgorKyNpbmNsdWRlICJiYXNlL251bWVyaWNz L3NhZmVfY29udmVyc2lvbnMuaCIKKyAjaW5jbHVkZSAiYmFzZS9wb3NpeC9laW50cl93cmFwcGVy LmgiCisgI2luY2x1ZGUgInNraWEvZXh0L2xlZ2FjeV9kaXNwbGF5X2dsb2JhbHMuaCIKKyAjaW5j bHVkZSAidGhpcmRfcGFydHkvc2tpYS9pbmNsdWRlL2NvcmUvU2tTdXJmYWNlLmgiCitAQCAtNzEs NiArNzIsNyBAQCBiYXNlOjpTY29wZWRGRCBHZXRQbGFuZUZkRm9yQm8oZ2JtX2JvKiBibywgc2l6 ZV90IHBsYW5lKSB7CisgICBpbnQgcmV0OworICAgLy8gVXNlIERSTV9SRFdSIHRvIGFsbG93IHRo ZSBmZCB0byBiZSBtYXBwYWJsZSBpbiBhbm90aGVyIHByb2Nlc3MuCisgICByZXQgPSBkcm1Qcmlt ZUhhbmRsZVRvRkQoZGV2X2ZkLCBwbGFuZV9oYW5kbGUsIERSTV9DTE9FWEVDIHwgRFJNX1JEV1Is ICZmZCk7CisrICBQTE9HX0lGKEVSUk9SLCByZXQgIT0gMCkgPDwgIkZhaWxlZCB0byBnZXQgZmQg Zm9yIHBsYW5lLiI7CisgCisgICAvLyBPbGRlciBEUk0gaW1wbGVtZW50YXRpb25zIGJsb2NrZWQg RFJNX1JEV1IsIGJ1dCBnYXZlIGEgcmVhZC93cml0ZSBtYXBwaW5nCisgICAvLyBhbnl3YXlzCitA QCAtMzAxLDU4ICszMDMsODIgQEAgY2xhc3MgRGV2aWNlIGZpbmFsIDogcHVibGljIHVpOjpHYm1E ZXZpY2UgeworIAorICAgc3RkOjp1bmlxdWVfcHRyPHVpOjpHYm1CdWZmZXI+IENyZWF0ZUJ1ZmZl cldpdGhNb2RpZmllcnMoCisgICAgICAgdWludDMyX3QgZm9ybWF0LAorLSAgICAgIGNvbnN0IGdm eDo6U2l6ZSYgc2l6ZSwKKysgICAgICBjb25zdCBnZng6OlNpemUmIHJlcXVlc3RlZF9zaXplLAor ICAgICAgIHVpbnQzMl90IGZsYWdzLAorICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ2NF90 PiYgbW9kaWZpZXJzKSBvdmVycmlkZSB7CistICAgIGlmIChtb2RpZmllcnMuZW1wdHkoKSkKKy0g ICAgICByZXR1cm4gQ3JlYXRlQnVmZmVyKGZvcm1hdCwgc2l6ZSwgZmxhZ3MpOworLQorLSAgICBz dGQ6OnZlY3Rvcjx1aW50NjRfdD4gZmlsdGVyZWRfbW9kaWZpZXJzID0KKy0gICAgICAgIEdldEZp bHRlcmVkTW9kaWZpZXJzKGZvcm1hdCwgZmxhZ3MsIG1vZGlmaWVycyk7CistICAgIHN0cnVjdCBn Ym1fYm8qIGJvID0gbnVsbHB0cjsKKy0gICAgd2hpbGUgKGZpbHRlcmVkX21vZGlmaWVycy5zaXpl KCkgPiAwKSB7CistICAgICAgYm8gPSBnYm1fYm9fY3JlYXRlX3dpdGhfbW9kaWZpZXJzKGRldmlj ZV8sIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9ybWF0LCBmaWx0ZXJlZF9tb2RpZmllcnMuZGF0YSgpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZF9tb2RpZmllcnMu c2l6ZSgpKTsKKy0gICAgICBpZiAoIWJvKSB7CisrICAgIGlmIChtb2RpZmllcnMuZW1wdHkoKSkg eworKyAgICAgIHJldHVybiBDcmVhdGVCdWZmZXIoZm9ybWF0LCByZXF1ZXN0ZWRfc2l6ZSwgZmxh Z3MpOworKyAgICB9CisrCisrICAgIC8vIEJ1Z2d5IGRyaXZlcnMgcHJldmVudCB1cyBmcm9tIGdl dHRpbmcgcGxhbmUgRkRzIGZyb20gYSBCTyB3aGljaCBoYWQgaXRzCisrICAgIC8vIHByZXZpb3Vz bHkgaW1wb3J0ZWQgQk8gZGVzdHJveWVkLiBFLmc6IE52aWRpYS4gVGh1cywgb24gTGludXggRGVz a3RvcCwgd2UKKysgICAgLy8gZG8gdGhlIGNyZWF0ZS9pbXBvcnQgbW9kaWZpZXJzIHZhbGlkYXRp b24gbG9vcCBiZWxvdyB1c2luZyBhIHNlcGFyYXRlIHNldAorKyAgICAvLyBvZiAxeDEgQk9zIHdo aWNoIGFyZSBkZXN0cm95ZWQgYmVmb3JlIGNyZWF0aW5nIHRoZSBmaW5hbCBCTyBjcmVhdGlvbiB1 c2VkCisrICAgIC8vIHRvIGluc3RhbnRpYXRlIHRoZSByZXR1cm5lZCBHYm1CdWZmZXIuCisrICAg IGdmeDo6U2l6ZSBzaXplID0KKysjaWYgQlVJTERGTEFHKElTX0xJTlVYKQorKyAgICAgICAgZ2Z4 OjpTaXplKDEsIDEpOworKyNlbHNlCisrICAgICAgICByZXF1ZXN0ZWRfc2l6ZTsKKysjZW5kaWYK KysgICAgYXV0byBmaWx0ZXJlZF9tb2RpZmllcnMgPSBHZXRGaWx0ZXJlZE1vZGlmaWVycyhmb3Jt YXQsIGZsYWdzLCBtb2RpZmllcnMpOworKyAgICBzdHJ1Y3QgZ2JtX2JvKiBjcmVhdGVkX2JvID0g bnVsbHB0cjsKKysgICAgYm9vbCB2YWxpZF9tb2RpZmllcnMgPSBmYWxzZTsKKysKKysgICAgd2hp bGUgKCF2YWxpZF9tb2RpZmllcnMgJiYgIWZpbHRlcmVkX21vZGlmaWVycy5lbXB0eSgpKSB7Cisr ICAgICAgY3JlYXRlZF9ibyA9IGdibV9ib19jcmVhdGVfd2l0aF9tb2RpZmllcnMoCisrICAgICAg ICAgIGRldmljZV8sIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgZm9ybWF0LAorKyAgICAg ICAgICBmaWx0ZXJlZF9tb2RpZmllcnMuZGF0YSgpLCBmaWx0ZXJlZF9tb2RpZmllcnMuc2l6ZSgp KTsKKysgICAgICBpZiAoIWNyZWF0ZWRfYm8pIHsKKyAgICAgICAgIHJldHVybiBudWxscHRyOwor ICAgICAgIH0KKyAKKy0gICAgICBzdHJ1Y3QgZ2JtX2ltcG9ydF9mZF9tb2RpZmllcl9kYXRhIGZk X2RhdGE7CistICAgICAgZmRfZGF0YS53aWR0aCA9IHNpemUud2lkdGgoKTsKKy0gICAgICBmZF9k YXRhLmhlaWdodCA9IHNpemUuaGVpZ2h0KCk7CistICAgICAgZmRfZGF0YS5mb3JtYXQgPSBmb3Jt YXQ7CistICAgICAgZmRfZGF0YS5udW1fZmRzID0gZ2JtX2JvX2dldF9wbGFuZV9jb3VudChibyk7 CistICAgICAgZmRfZGF0YS5tb2RpZmllciA9IGdibV9ib19nZXRfbW9kaWZpZXIoYm8pOworLQor LSAgICAgIC8vIFN0b3JlIGZkcyBpbiB0aGUgdmVjdG9yIG9mIGJhc2U6OlNjb3BlZEZEcy4gV2ls bCBiZSByZWxlYXNlZAorLSAgICAgIC8vIGF1dG9tYXRpY2FsbHkuCisrICAgICAgY29uc3QgaW50 IHBsYW5lc19jb3VudCA9IGdibV9ib19nZXRfcGxhbmVfY291bnQoY3JlYXRlZF9ibyk7CisrICAg ICAgc3RydWN0IGdibV9pbXBvcnRfZmRfbW9kaWZpZXJfZGF0YSBmZF9kYXRhID0geworKyAgICAg ICAgICAud2lkdGggPSBiYXNlOjpjaGVja2VkX2Nhc3Q8dWludDMyX3Q+KHNpemUud2lkdGgoKSks CisrICAgICAgICAgIC5oZWlnaHQgPSBiYXNlOjpjaGVja2VkX2Nhc3Q8dWludDMyX3Q+KHNpemUu aGVpZ2h0KCkpLAorKyAgICAgICAgICAuZm9ybWF0ID0gZm9ybWF0LAorKyAgICAgICAgICAubnVt X2ZkcyA9IGJhc2U6OmNoZWNrZWRfY2FzdDx1aW50MzJfdD4ocGxhbmVzX2NvdW50KSwKKysgICAg ICAgICAgLm1vZGlmaWVyID0gZ2JtX2JvX2dldF9tb2RpZmllcihjcmVhdGVkX2JvKX07CisrICAg ICAgLy8gU3RvcmUgZmRzIGluIGEgYmFzZTo6U2NvcGVkRkRzIHZlY3Rvci4gV2lsbCBiZSByZWxl YXNlZCBhdXRvbWF0aWNhbGx5LgorICAgICAgIHN0ZDo6dmVjdG9yPGJhc2U6OlNjb3BlZEZEPiBm ZHM7CisgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGZk X2RhdGEubnVtX2Zkcyk7ICsraSkgeworLSAgICAgICAgZmRzLmVtcGxhY2VfYmFjayhHZXRQbGFu ZUZkRm9yQm8oYm8sIGkpKTsKKysgICAgICAgIGZkcy5lbXBsYWNlX2JhY2soR2V0UGxhbmVGZEZv ckJvKGNyZWF0ZWRfYm8sIGkpKTsKKyAgICAgICAgIGZkX2RhdGEuZmRzW2ldID0gZmRzLmJhY2so KS5nZXQoKTsKKy0gICAgICAgIGZkX2RhdGEuc3RyaWRlc1tpXSA9IGdibV9ib19nZXRfc3RyaWRl X2Zvcl9wbGFuZShibywgaSk7CistICAgICAgICBmZF9kYXRhLm9mZnNldHNbaV0gPSBnYm1fYm9f Z2V0X29mZnNldChibywgaSk7CisrICAgICAgICBmZF9kYXRhLnN0cmlkZXNbaV0gPSBnYm1fYm9f Z2V0X3N0cmlkZV9mb3JfcGxhbmUoY3JlYXRlZF9ibywgaSk7CisrICAgICAgICBmZF9kYXRhLm9m ZnNldHNbaV0gPSBnYm1fYm9fZ2V0X29mZnNldChjcmVhdGVkX2JvLCBpKTsKKyAgICAgICB9Cisg CistICAgICAgc3RydWN0IGdibV9ibyogYm9faW1wb3J0ID0KKysgICAgICBzdHJ1Y3QgZ2JtX2Jv KiBpbXBvcnRlZF9ibyA9CisgICAgICAgICAgIGdibV9ib19pbXBvcnQoZGV2aWNlXywgR0JNX0JP X0lNUE9SVF9GRF9NT0RJRklFUiwgJmZkX2RhdGEsIGZsYWdzKTsKKy0gICAgICBpZiAoYm9faW1w b3J0KSB7CistICAgICAgICBnYm1fYm9fZGVzdHJveShib19pbXBvcnQpOworLSAgICAgICAgYnJl YWs7CisrCisrICAgICAgaWYgKGltcG9ydGVkX2JvKSB7CisrICAgICAgICB2YWxpZF9tb2RpZmll cnMgPSB0cnVlOworKyAgICAgICAgZ2JtX2JvX2Rlc3Ryb3koaW1wb3J0ZWRfYm8pOworICAgICAg IH0gZWxzZSB7CistICAgICAgICBnYm1fYm9fZGVzdHJveShibyk7CistICAgICAgICBibyA9IG51 bGxwdHI7CisgICAgICAgICBBZGRNb2RpZmllclRvQmxvY2tsaXN0KGZvcm1hdCwgZmxhZ3MsIGZk X2RhdGEubW9kaWZpZXIpOworICAgICAgICAgZmlsdGVyZWRfbW9kaWZpZXJzID0KKyAgICAgICAg ICAgICBHZXRGaWx0ZXJlZE1vZGlmaWVycyhmb3JtYXQsIGZsYWdzLCBmaWx0ZXJlZF9tb2RpZmll cnMpOworICAgICAgIH0KKysKKysgICAgICBpZiAoIXZhbGlkX21vZGlmaWVycyB8fCBzaXplICE9 IHJlcXVlc3RlZF9zaXplKSB7CisrICAgICAgICBnYm1fYm9fZGVzdHJveShjcmVhdGVkX2JvKTsK KysgICAgICAgIGNyZWF0ZWRfYm8gPSBudWxscHRyOworKyAgICAgIH0KKyAgICAgfQorLSAgICBp ZiAoIWJvKSB7CistICAgICAgcmV0dXJuIG51bGxwdHI7CisrCisrICAgIC8vIElmIG1vZGlmaWVy cyB3ZXJlIHN1Y2Nlc3NmdWxseSB2ZXJpZmllZCB0aG91Z2ggYGNyZWF0ZWRfYm9gIGlzIG51bGwg aGVyZSwKKysgICAgLy8gaXQgaXQgbWVhbnMgdGhhdCB0aGUgYnVmZmVyIGNyZWF0ZWQgZm9yIHZl cmlmaWNhdGlvbiBjb3VsZCBub3QgYmUgcmV1c2VkLAorKyAgICAvLyBpZTogZGlmZmVyZW50IHNp emUsIHNvIGNyZWF0ZSBpdCBub3cgd2l0aCB0aGUgYHJlcXVlc3RlZF9zaXplYC4KKysgICAgaWYg KHZhbGlkX21vZGlmaWVycyAmJiAhY3JlYXRlZF9ibykgeworKyAgICAgIGNyZWF0ZWRfYm8gPSBn Ym1fYm9fY3JlYXRlX3dpdGhfbW9kaWZpZXJzKAorKyAgICAgICAgICBkZXZpY2VfLCByZXF1ZXN0 ZWRfc2l6ZS53aWR0aCgpLCByZXF1ZXN0ZWRfc2l6ZS5oZWlnaHQoKSwgZm9ybWF0LAorKyAgICAg ICAgICBmaWx0ZXJlZF9tb2RpZmllcnMuZGF0YSgpLCBmaWx0ZXJlZF9tb2RpZmllcnMuc2l6ZSgp KTsKKysgICAgICBQTE9HX0lGKEVSUk9SLCAhY3JlYXRlZF9ibykgPDwgIkZhaWxlZCB0byBjcmVh dGUgQk8gd2l0aCBtb2RpZmllcnMuIjsKKyAgICAgfQorIAorLSAgICByZXR1cm4gQ3JlYXRlQnVm ZmVyRm9yQk8oYm8sIGZvcm1hdCwgc2l6ZSwgZmxhZ3MpOworKyAgICByZXR1cm4gY3JlYXRlZF9i byA/IENyZWF0ZUJ1ZmZlckZvckJPKGNyZWF0ZWRfYm8sIGZvcm1hdCwgc2l6ZSwgZmxhZ3MpCisr ICAgICAgICAgICAgICAgICAgICAgIDogbnVsbHB0cjsKKyAgIH0KKyAKKyAgIHN0ZDo6dW5pcXVl X3B0cjx1aTo6R2JtQnVmZmVyPiBDcmVhdGVCdWZmZXJGcm9tSGFuZGxlKApkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5k ZXggY2MzNjkxMWNkMzM4ZC4uYzRiNzY0ODY1NzBlMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJv bWl1bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2hyb21pdW0nCiBwa2duYW1lPWNocm9taXVtCiAj IFNlZSBodHRwczovL2Nocm9taXVtZGFzaC5hcHBzcG90LmNvbS9yZWxlYXNlcz9wbGF0Zm9ybT1M aW51eCBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uCi12ZXJzaW9uPTExOC4wLjU5OTMuNzAKK3ZlcnNp b249MTE5LjAuNjA0NS4xMDUKIHJldmlzaW9uPTEKIGFyY2hzPSJpNjg2KiB4ODZfNjQqIGFhcmNo NjQqIGFybXY3bCoiCiBob3N0bWFrZWRlcGVuZHM9IgpAQCAtMjcsNyArMjcsNyBAQCBtYWludGFp bmVyPSJEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iQlNELTMtQ2xh dXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmNocm9taXVtLm9yZy8iCiBkaXN0ZmlsZXM9Imh0 dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nlci1v ZmZpY2lhbC8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NDllZTAwYTcz NGRlM2RhZTdjNDIxZWIzYzk3NGU4ZDQ1MWI0ZGU2ZjViNGUzNGI2MDNmZDY0MzVlYWI2OTkzZAor Y2hlY2tzdW09NzNjYjhjMzllOTI4ZjhjNjI3ZDc0N2QzN2EzYjAyMGYwODkxM2VmNTUwOGY4OTM3 NThkNzBiZGJkNTQ1ZGJjZgogCiBsaWIzMmRpc2FibGVkPXllcwogCkBAIC01Miw3ICs1Miw4IEBA IGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCSAkKHZvcHRfaWYgcGlwZXdpcmUgcGlwZXdp cmUtZGV2ZWwpIGZmbXBlZy1kZXZlbCBvcHVzLWRldmVsIHBhbmdvLWRldmVsIGxpYnZhLWRldmVs CiAJIGxpYmN1cmwtZGV2ZWwgc25hcHB5LWRldmVsIGxpYlhyYW5kci1kZXZlbCBsaWJYY29tcG9z aXRlLWRldmVsIGN1cHMtZGV2ZWwKIAkgbWl0LWtyYjUtZGV2ZWwgYWxzYS1saWItZGV2ZWwgbGli WGRhbWFnZS1kZXZlbCBsaWJlcG94eS1kZXZlbCBsaWJldmRldi1kZXZlbAotCSBsaWJhdmlmLWRl dmVsIGxpYmFvbS1kZXZlbCBqc29uY3BwLWRldmVsIHdvZmYyLWRldmVsIGxpYmRhdjFkLWRldmVs IGxpYmZsYWMtZGV2ZWwiCisJIGxpYmF2aWYtZGV2ZWwgbGliYW9tLWRldmVsIGpzb25jcHAtZGV2 ZWwgd29mZjItZGV2ZWwgbGliZGF2MWQtZGV2ZWwgbGliZmxhYy1kZXZlbAorCSBsaWJkcm0tZGV2 ZWwgbGliZ2JtLWRldmVsIgogZmkKIAogaWYgWyAhICIkWEJQU19XT1JEU0laRSIgPSAiJFhCUFNf VEFSR0VUX1dPUkRTSVpFIiBdOyB0aGVuCg== --===============8557027415480316045==--