From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 25116 invoked from network); 27 Aug 2020 18:03:20 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 27 Aug 2020 18:03:20 -0000 Content-Type: multipart/mixed; boundary="===============4769341651141133972==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_firefox=3A_build_with_pipewire_patch_to_enable_screenshare_for_wayland_users?= To: ml@inbox.vuxu.org From: absrd Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 27 Aug 2020 20:03:20 +0200 List-Id: Message-ID: <20200827180320.YYv-H7U9yyBhjdxBbsHvkN335_dXllX-CW8p5poVUCE@z> GitHub notification mails are now in MIME to allow UTF8. --===============4769341651141133972== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYWJzcmQgYWdhaW5zdCBtYXN0ZXIg b24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2Fic3Jk L3ZvaWQtcGFja2FnZXMgZmlyZWZveC1waXBld2lyZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjMyOTEKCmZpcmVmb3g6IGJ1aWxkIHdpdGggcGlwZXdp cmUgcGF0Y2ggdG8gZW5hYmxlIHNjcmVlbnNoYXJlIGZvciB3YXlsYW5kIHVzZXJzCkVuYWJsZXMg d2VicnRjIHBpcGV3aXJlIHNjcmVlbnNoYXJpbmcgd2l0aCBwaXBld2lyZSwgeGRnLWRlc2t0b3At cG9ydGFsIGFuZCBodHRwczovL2dpdGh1Yi5jb20vZW1lcnNpb24veGRnLWRlc2t0b3AtcG9ydGFs LXdscgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzIzMjkxLnBhdGNoIGlzIGF0dGFjaGVk --===============4769341651141133972== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-firefox-pipewire-23291.patch" RnJvbSBhYzA4OTdkNDA2NzYzNzI1YjE0MDJkMDA5MjQzMjVlYzM5MmZlMjA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWxpeCBLbGVpbnNjaG1pZHQgPGZrQGJzcmQuaW8+CkRhdGU6 IFN1biwgMjggSnVuIDIwMjAgMjA6Mzg6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBmaXJlZm94 OiBhZGQgcGlwZXdpcmUgcGF0Y2ggdG8gZW5hYmxlIHNjcmVlbnNoYXJlIGZvciB3YXlsYW5kCgpb Y2kgc2tpcF0KLS0tCiBzcmNwa2dzL2ZpcmVmb3gvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gg fCA4MjggKysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2ZpcmVmb3gvdGVtcGxhdGUgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgODI5IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZpcmVmb3gvcGF0 Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmVmb3gvcGF0 Y2hlcy9waXBld2lyZS0wLjMucGF0Y2ggYi9zcmNwa2dzL2ZpcmVmb3gvcGF0Y2hlcy9waXBld2ly ZS0wLjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI1MTA5 M2M4ZTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9maXJlZm94L3BhdGNoZXMvcGlwZXdp cmUtMC4zLnBhdGNoCkBAIC0wLDAgKzEsODI4IEBACitJbXBvcnRlZCBmcm9tIEZlZG9yYSdzIGJ1 aWxkIHNyYyBvZiBGaXJlZm94OiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2Zp cmVmb3gvYmxvYi8xOGZkMDQyZGVjZGI1ZjI5MTFmMGQzZGJlNjY1YzM2NWVmZWQyOGE1L2YvZmly ZWZveC1waXBld2lyZS0wLTMucGF0Y2gKKworLS0tIGNvbmZpZy9zeXN0ZW0taGVhZGVycy5tb3pi dWlsZAorKysrIGNvbmZpZy9zeXN0ZW0taGVhZGVycy5tb3pidWlsZAorQEAgLTMxNCw2ICszMTQs NyBAQCBzeXN0ZW1faGVhZGVycyA9IFsKKyAgICAgJ0dlc3RhbHQuaCcsCisgICAgICdnZXRvcHQu aCcsCisgICAgICdnaW8vZ2lvLmgnLAorKyAgICAnZ2lvL2d1bml4ZmRsaXN0LmgnLAorICAgICAn Z2xpYmNvbmZpZy5oJywKKyAgICAgJ2dsaWIuaCcsCisgICAgICdnbGliLW9iamVjdC5oJywKK0BA IC02MDcsNiArNjA4LDcgQEAgc3lzdGVtX2hlYWRlcnMgPSBbCisgICAgICdQZ2VuZXJyLmgnLAor ICAgICAnUEdlbkVyci5oJywKKyAgICAgJ1BoLmgnLAorKyAgICAncGlwZXdpcmUvcGlwZXdpcmUu aCcsCisgICAgICdwaXhtYW4uaCcsCisgICAgICdwazExZnVuYy5oJywKKyAgICAgJ3BrMTFwcWcu aCcsCistLS0gbWVkaWEvd2VicnRjL3RydW5rL3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVy ZS9CVUlMRC5nbgorKysrIG1lZGlhL3dlYnJ0Yy90cnVuay93ZWJydGMvbW9kdWxlcy9kZXNrdG9w X2NhcHR1cmUvQlVJTEQuZ24KK0BAIC0xNTgsNyArMTU4LDcgQEAgaWYgKHJ0Y19pbmNsdWRlX3Rl c3RzKSB7CisgaWYgKGlzX2xpbnV4KSB7CisgICBpZiAocnRjX3VzZV9waXBld2lyZSkgeworICAg ICBwa2dfY29uZmlnKCJwaXBld2lyZSIpIHsKKy0gICAgICBwYWNrYWdlcyA9IFsgImxpYnBpcGV3 aXJlLTAuMiIgXQorKyAgICAgIHBhY2thZ2VzID0gWyAibGlicGlwZXdpcmUtMC4zIiBdCisKKyAg ICAgICBkZWZpbmVzID0gWyAiV0VCUlRDX1VTRV9QSVBFV0lSRSIgXQorICAgICB9CistLS0gbWVk aWEvd2VicnRjL3RydW5rL3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kZXNrdG9wX2Nh cHR1cmVfZ2VuZXJpY19nbi9tb3ouYnVpbGQKKysrKyBtZWRpYS93ZWJydGMvdHJ1bmsvd2VicnRj L21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2Rlc2t0b3BfY2FwdHVyZV9nZW5lcmljX2duL21vei5i dWlsZAorQEAgLTE5NCw2ICsxOTQsMzAgQEAgaWYgQ09ORklHWyJPU19UQVJHRVQiXSA9PSAiTGlu dXgiOgorICAgICAgICAgIi9tZWRpYS93ZWJydGMvdHJ1bmsvd2VicnRjL21vZHVsZXMvZGVza3Rv cF9jYXB0dXJlL3dpbmRvd19jYXB0dXJlcl9saW51eC5jYyIKKyAgICAgXQorCisrIyBQaXBlV2ly ZSBzcGVjaWZpYyBmaWxlcworK2lmIENPTkZJR1siT1NfVEFSR0VUIl0gPT0gIkxpbnV4IjoKKysK KysgICAgREVGSU5FU1siV0VCUlRDX1VTRV9QSVBFV0lSRSJdID0gIjEiCisrCisrICAgIE9TX0xJ QlMgKz0gWworKyAgICAgICAgInJ0IiwKKysgICAgICAgICJwaXBld2lyZS0wLjMiLAorKyAgICAg ICAgImdsaWItMi4wIiwKKysgICAgICAgICJnaW8tMi4wIiwKKysgICAgICAgICJnb2JqZWN0LTIu MCIKKysgICAgXQorKworKyAgICBDWFhGTEFHUyArPSBDT05GSUdbJ1RLX0NGTEFHUyddCisrICAg IENYWEZMQUdTICs9IFsgIi1JL3Vzci9pbmNsdWRlL3BpcGV3aXJlLTAuMyIgXQorKyAgICBDWFhG TEFHUyArPSBbICItSS91c3IvaW5jbHVkZS9zcGEtMC4yIiBdCisrCisrICAgIFVOSUZJRURfU09V UkNFUyArPSBbCisrICAgICAgICAiL21lZGlhL3dlYnJ0Yy90cnVuay93ZWJydGMvbW9kdWxlcy9k ZXNrdG9wX2NhcHR1cmUvbGludXgvYmFzZV9jYXB0dXJlcl9waXBld2lyZS5jYyIsCisrICAgICAg ICAiL21lZGlhL3dlYnJ0Yy90cnVuay93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGlu dXgvc2NyZWVuX2NhcHR1cmVyX3BpcGV3aXJlLmNjIiwKKysgICAgICAgICIvbWVkaWEvd2VicnRj L3RydW5rL3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC93aW5kb3dfY2FwdHVy ZXJfcGlwZXdpcmUuY2MiCisrICAgIF0KKysKKysKKyBpZiBDT05GSUdbIk9TX1RBUkdFVCJdID09 ICJOZXRCU0QiOgorCisgICAgIERFRklORVNbIlVTRV9YMTEiXSA9ICIxIgorLS0tIG1lZGlhL3dl YnJ0Yy90cnVuay93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGVza3RvcF9jYXB0dXJl X29wdGlvbnMuaAorKysrIG1lZGlhL3dlYnJ0Yy90cnVuay93ZWJydGMvbW9kdWxlcy9kZXNrdG9w X2NhcHR1cmUvZGVza3RvcF9jYXB0dXJlX29wdGlvbnMuaAorQEAgLTE0MSw3ICsxNDEsNyBAQCBj bGFzcyBEZXNrdG9wQ2FwdHVyZU9wdGlvbnMgeworICAgYm9vbCBkaXNhYmxlX2VmZmVjdHNfID0g dHJ1ZTsKKyAgIGJvb2wgZGV0ZWN0X3VwZGF0ZWRfcmVnaW9uXyA9IGZhbHNlOworICNpZiBkZWZp bmVkKFdFQlJUQ19VU0VfUElQRVdJUkUpCistICBib29sIGFsbG93X3BpcGV3aXJlXyA9IGZhbHNl OworKyAgYm9vbCBhbGxvd19waXBld2lyZV8gPSB0cnVlOworICNlbmRpZgorIH07CisKKy0tLSBt ZWRpYS93ZWJydGMvdHJ1bmsvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L2Jh c2VfY2FwdHVyZXJfcGlwZXdpcmUuY2MKKysrKyBtZWRpYS93ZWJydGMvdHJ1bmsvd2VicnRjL21v ZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L2Jhc2VfY2FwdHVyZXJfcGlwZXdpcmUuY2MKK0BA IC0xNSw4ICsxNSwxMSBAQAorCisgI2luY2x1ZGUgPHNwYS9wYXJhbS9mb3JtYXQtdXRpbHMuaD4K KyAjaW5jbHVkZSA8c3BhL3BhcmFtL3Byb3BzLmg+CistI2luY2x1ZGUgPHNwYS9wYXJhbS92aWRl by9yYXctdXRpbHMuaD4KKy0jaW5jbHVkZSA8c3BhL3N1cHBvcnQvdHlwZS1tYXAuaD4KKysKKysj aW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgorKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorKyNpbmNs dWRlIDxzeXMvaW9jdGwuaD4KKysjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKworICNpbmNsdWRl IDxtZW1vcnk+CisgI2luY2x1ZGUgPHV0aWxpdHk+CitAQCAtMzYsMzEgKzM5LDM2IEBAIGNvbnN0 IGNoYXIga1Nlc3Npb25JbnRlcmZhY2VOYW1lW10gPSAib3JnLmZyZWVkZXNrdG9wLnBvcnRhbC5T ZXNzaW9uIjsKKyBjb25zdCBjaGFyIGtSZXF1ZXN0SW50ZXJmYWNlTmFtZVtdID0gIm9yZy5mcmVl ZGVza3RvcC5wb3J0YWwuUmVxdWVzdCI7CisgY29uc3QgY2hhciBrU2NyZWVuQ2FzdEludGVyZmFj ZU5hbWVbXSA9ICJvcmcuZnJlZWRlc2t0b3AucG9ydGFsLlNjcmVlbkNhc3QiOworCistLy8gc3Rh dGljCistdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6T25TdGF0ZUNoYW5nZWQodm9pZCogZGF0 YSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwd19yZW1vdGVf c3RhdGUgb2xkX3N0YXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHB3X3JlbW90ZV9zdGF0ZSBzdGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBjaGFyKiBlcnJvcl9tZXNzYWdlKSB7CistICBCYXNlQ2FwdHVy ZXJQaXBlV2lyZSogdGhhdCA9IHN0YXRpY19jYXN0PEJhc2VDYXB0dXJlclBpcGVXaXJlKj4oZGF0 YSk7CistICBSVENfRENIRUNLKHRoYXQpOworCistICBzd2l0Y2ggKHN0YXRlKSB7CistICAgIGNh c2UgUFdfUkVNT1RFX1NUQVRFX0VSUk9SOgorLSAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJQ aXBlV2lyZSByZW1vdGUgc3RhdGUgZXJyb3I6ICIgPDwgZXJyb3JfbWVzc2FnZTsKKy0gICAgICBi cmVhazsKKy0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgorLSAgICAgIFJUQ19M T0coTFNfSU5GTykgPDwgIlBpcGVXaXJlIHJlbW90ZSBzdGF0ZTogY29ubmVjdGVkLiI7CistICAg ICAgdGhhdC0+Q3JlYXRlUmVjZWl2aW5nU3RyZWFtKCk7CistICAgICAgYnJlYWs7CistICAgIGNh c2UgUFdfUkVNT1RFX1NUQVRFX0NPTk5FQ1RJTkc6CistICAgICAgUlRDX0xPRyhMU19JTkZPKSA8 PCAiUGlwZVdpcmUgcmVtb3RlIHN0YXRlOiBjb25uZWN0aW5nLiI7CisrLy8gc3RhdGljCisrdm9p ZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6U3luY0RtYUJ1ZihpbnQgZmQsIHVpbnQ2NF90IHN0YXJ0 X29yX2VuZCkgeworKyAgc3RydWN0IGRtYV9idWZfc3luYyBzeW5jID0geyAwIH07CisrCisrICBz eW5jLmZsYWdzID0gc3RhcnRfb3JfZW5kIHwgRE1BX0JVRl9TWU5DX1JFQUQ7CisrCisrICB3aGls ZSh0cnVlKSB7CisrICAgIGludCByZXQ7CisrICAgIHJldCA9IGlvY3RsIChmZCwgRE1BX0JVRl9J T0NUTF9TWU5DLCAmc3luYyk7CisrICAgIGlmIChyZXQgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIp IHsKKysgICAgICBjb250aW51ZTsKKysgICAgfSBlbHNlIGlmIChyZXQgPT0gLTEpIHsKKysgICAg ICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHN5bmNocm9uaXplIERNQSBidWZmZXI6 ICIgPDwgZ19zdHJlcnJvcihlcnJubyk7CisgICAgICAgYnJlYWs7CistICAgIGNhc2UgUFdfUkVN T1RFX1NUQVRFX1VOQ09OTkVDVEVEOgorLSAgICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIlBpcGVX aXJlIHJlbW90ZSBzdGF0ZTogdW5jb25uZWN0ZWQuIjsKKysgICAgfSBlbHNlIHsKKyAgICAgICBi cmVhazsKKysgICAgfQorICAgfQorIH0KKworKy8vIHN0YXRpYworK3ZvaWQgQmFzZUNhcHR1cmVy UGlwZVdpcmU6Ok9uQ29yZUVycm9yKHZvaWQgKmRhdGEsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHNlcSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgcmVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKm1lc3NhZ2UpIHsKKysgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJjb3JlIGVy cm9yOiAiIDw8IG1lc3NhZ2U7CisrfQorKworIC8vIHN0YXRpYworIHZvaWQgQmFzZUNhcHR1cmVy UGlwZVdpcmU6Ok9uU3RyZWFtU3RhdGVDaGFuZ2VkKHZvaWQqIGRhdGEsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHdfc3RyZWFtX3N0YXRlIG9sZF9z dGF0ZSwKK0BAIC03Myw3NiArODEsNTQgQEAgdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6T25T dHJlYW1TdGF0ZUNoYW5nZWQodm9pZCogZGF0YSwKKyAgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVf RVJST1I6CisgICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIlBpcGVXaXJlIHN0cmVhbSBzdGF0 ZSBlcnJvcjogIiA8PCBlcnJvcl9tZXNzYWdlOworICAgICAgIGJyZWFrOworLSAgICBjYXNlIFBX X1NUUkVBTV9TVEFURV9DT05GSUdVUkU6CistICAgICAgcHdfc3RyZWFtX3NldF9hY3RpdmUodGhh dC0+cHdfc3RyZWFtXywgdHJ1ZSk7CistICAgICAgYnJlYWs7CistICAgIGNhc2UgUFdfU1RSRUFN X1NUQVRFX1VOQ09OTkVDVEVEOgorLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5H OgorLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9SRUFEWToKKyAgICAgY2FzZSBQV19TVFJFQU1f U1RBVEVfUEFVU0VEOgorICAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9TVFJFQU1JTkc6CisrICAg IGNhc2UgUFdfU1RSRUFNX1NUQVRFX1VOQ09OTkVDVEVEOgorKyAgICBjYXNlIFBXX1NUUkVBTV9T VEFURV9DT05ORUNUSU5HOgorICAgICAgIGJyZWFrOworICAgfQorIH0KKworIC8vIHN0YXRpYwor LXZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9uU3RyZWFtRm9ybWF0Q2hhbmdlZCh2b2lkKiBk YXRhLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3Qgc3BhX3BvZCogZm9ybWF0KSB7Cisrdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2ly ZTo6T25TdHJlYW1QYXJhbUNoYW5nZWQodm9pZCAqZGF0YSwgdWludDMyX3QgaWQsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNw YV9wb2QgKmZvcm1hdCkgeworICAgQmFzZUNhcHR1cmVyUGlwZVdpcmUqIHRoYXQgPSBzdGF0aWNf Y2FzdDxCYXNlQ2FwdHVyZXJQaXBlV2lyZSo+KGRhdGEpOworICAgUlRDX0RDSEVDSyh0aGF0KTsK KworLSAgUlRDX0xPRyhMU19JTkZPKSA8PCAiUGlwZVdpcmUgc3RyZWFtIGZvcm1hdCBjaGFuZ2Vk LiI7CisrICBSVENfTE9HKExTX0lORk8pIDw8ICJQaXBlV2lyZSBzdHJlYW0gcGFyYW0gY2hhbmdl ZC4iOworCistICBpZiAoIWZvcm1hdCkgeworLSAgICBwd19zdHJlYW1fZmluaXNoX2Zvcm1hdCh0 aGF0LT5wd19zdHJlYW1fLCAvKnJlcz0qLzAsIC8qcGFyYW1zPSovbnVsbHB0ciwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLypuX3BhcmFtcz0qLzApOworKyAgaWYgKCFmb3JtYXQgfHwg aWQgIT0gU1BBX1BBUkFNX0Zvcm1hdCkgeworICAgICByZXR1cm47CisgICB9CisKKy0gIHRoYXQt PnNwYV92aWRlb19mb3JtYXRfID0gbmV3IHNwYV92aWRlb19pbmZvX3JhdygpOworLSAgc3BhX2Zv cm1hdF92aWRlb19yYXdfcGFyc2UoZm9ybWF0LCB0aGF0LT5zcGFfdmlkZW9fZm9ybWF0XywKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aGF0LT5wd190eXBlXy0+Zm9ybWF0X3ZpZGVv KTsKKysgIHNwYV9mb3JtYXRfdmlkZW9fcmF3X3BhcnNlKGZvcm1hdCwgJnRoYXQtPnNwYV92aWRl b19mb3JtYXRfKTsKKworLSAgYXV0byB3aWR0aCA9IHRoYXQtPnNwYV92aWRlb19mb3JtYXRfLT5z aXplLndpZHRoOworLSAgYXV0byBoZWlnaHQgPSB0aGF0LT5zcGFfdmlkZW9fZm9ybWF0Xy0+c2l6 ZS5oZWlnaHQ7CisrICBhdXRvIHdpZHRoID0gdGhhdC0+c3BhX3ZpZGVvX2Zvcm1hdF8uc2l6ZS53 aWR0aDsKKysgIGF1dG8gaGVpZ2h0ID0gdGhhdC0+c3BhX3ZpZGVvX2Zvcm1hdF8uc2l6ZS5oZWln aHQ7CisgICBhdXRvIHN0cmlkZSA9IFNQQV9ST1VORF9VUF9OKHdpZHRoICoga0J5dGVzUGVyUGl4 ZWwsIDQpOworICAgYXV0byBzaXplID0gaGVpZ2h0ICogc3RyaWRlOworCisrICB0aGF0LT5kZXNr dG9wX3NpemVfID0gRGVza3RvcFNpemUod2lkdGgsIGhlaWdodCk7CisrCisgICB1aW50OF90IGJ1 ZmZlclsxMDI0XSA9IHt9OworICAgYXV0byBidWlsZGVyID0gc3BhX3BvZF9idWlsZGVye2J1ZmZl ciwgc2l6ZW9mKGJ1ZmZlcil9OworCisgICAvLyBTZXR1cCBidWZmZXJzIGFuZCBtZXRhIGhlYWRl ciBmb3IgbmV3IGZvcm1hdC4KKy0gIGNvbnN0IHN0cnVjdCBzcGFfcG9kKiBwYXJhbXNbMl07Cist ICBwYXJhbXNbMF0gPSByZWludGVycHJldF9jYXN0PHNwYV9wb2QqPihzcGFfcG9kX2J1aWxkZXJf b2JqZWN0KAorLSAgICAgICZidWlsZGVyLAorLSAgICAgIC8vIGlkIHRvIGVudW1lcmF0ZSBidWZm ZXIgcmVxdWlyZW1lbnRzCistICAgICAgdGhhdC0+cHdfY29yZV90eXBlXy0+cGFyYW0uaWRCdWZm ZXJzLAorLSAgICAgIHRoYXQtPnB3X2NvcmVfdHlwZV8tPnBhcmFtX2J1ZmZlcnMuQnVmZmVycywK Ky0gICAgICAvLyBTaXplOiBzcGVjaWZpZWQgYXMgaW50ZWdlciAoaSkgYW5kIHNldCB0byBzcGVj aWZpZWQgc2l6ZQorLSAgICAgICI6IiwgdGhhdC0+cHdfY29yZV90eXBlXy0+cGFyYW1fYnVmZmVy cy5zaXplLCAiaSIsIHNpemUsCistICAgICAgLy8gU3RyaWRlOiBzcGVjaWZpZWQgYXMgaW50ZWdl ciAoaSkgYW5kIHNldCB0byBzcGVjaWZpZWQgc3RyaWRlCistICAgICAgIjoiLCB0aGF0LT5wd19j b3JlX3R5cGVfLT5wYXJhbV9idWZmZXJzLnN0cmlkZSwgImkiLCBzdHJpZGUsCistICAgICAgLy8g QnVmZmVyczogc3BlY2lmaWVzIGhvdyBtYW55IGJ1ZmZlcnMgd2Ugd2FudCB0byBkZWFsIHdpdGgs IHNldCBhcworLSAgICAgIC8vIGludGVnZXIgKGkpIHdoZXJlIHByZWZlcnJlZCBudW1iZXIgaXMg OCwgdGhlbiBhbGxvd2VkIG51bWJlciBpcyBkZWZpbmVkCistICAgICAgLy8gYXMgcmFuZ2UgKHIp IGZyb20gbWluIGFuZCBtYXggdmFsdWVzIGFuZCBpdCBpcyB1bmRlY2lkZWQgKHUpIHRvIGFsbG93 CistICAgICAgLy8gbmVnb3RpYXRpb24KKy0gICAgICAiOiIsIHRoYXQtPnB3X2NvcmVfdHlwZV8t PnBhcmFtX2J1ZmZlcnMuYnVmZmVycywgImlydSIsIDgsCistICAgICAgU1BBX1BPRF9QUk9QX01J Tl9NQVgoMSwgMzIpLAorLSAgICAgIC8vIEFsaWduOiBtZW1vcnkgYWxpZ25tZW50IG9mIHRoZSBi dWZmZXIsIHNldCBhcyBpbnRlZ2VyIChpKSB0byBzcGVjaWZpZWQKKy0gICAgICAvLyB2YWx1ZQor LSAgICAgICI6IiwgdGhhdC0+cHdfY29yZV90eXBlXy0+cGFyYW1fYnVmZmVycy5hbGlnbiwgImki LCAxNikpOworLSAgcGFyYW1zWzFdID0gcmVpbnRlcnByZXRfY2FzdDxzcGFfcG9kKj4oc3BhX3Bv ZF9idWlsZGVyX29iamVjdCgKKy0gICAgICAmYnVpbGRlciwKKy0gICAgICAvLyBpZCB0byBlbnVt ZXJhdGUgc3VwcG9ydGVkIG1ldGFkYXRhCistICAgICAgdGhhdC0+cHdfY29yZV90eXBlXy0+cGFy YW0uaWRNZXRhLCB0aGF0LT5wd19jb3JlX3R5cGVfLT5wYXJhbV9tZXRhLk1ldGEsCistICAgICAg Ly8gVHlwZTogc3BlY2lmaWVkIGFzIGlkIG9yIGVudW0gKEkpCistICAgICAgIjoiLCB0aGF0LT5w d19jb3JlX3R5cGVfLT5wYXJhbV9tZXRhLnR5cGUsICJJIiwKKy0gICAgICB0aGF0LT5wd19jb3Jl X3R5cGVfLT5tZXRhLkhlYWRlciwKKy0gICAgICAvLyBTaXplOiBzaXplIG9mIHRoZSBtZXRhZGF0 YSwgc3BlY2lmaWVkIGFzIGludGVnZXIgKGkpCistICAgICAgIjoiLCB0aGF0LT5wd19jb3JlX3R5 cGVfLT5wYXJhbV9tZXRhLnNpemUsICJpIiwKKy0gICAgICBzaXplb2Yoc3RydWN0IHNwYV9tZXRh X2hlYWRlcikpKTsKKy0KKy0gIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0KHRoYXQtPnB3X3N0cmVh bV8sIC8qcmVzPSovMCwgcGFyYW1zLCAvKm5fcGFyYW1zPSovMik7CisrICBjb25zdCBzdHJ1Y3Qg c3BhX3BvZCogcGFyYW1zWzNdOworKyAgcGFyYW1zWzBdID0gcmVpbnRlcnByZXRfY2FzdDxzcGFf cG9kICo+KHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0KCZidWlsZGVyLAorKyAgICAgICAgICAg ICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtQnVmZmVycywgU1BBX1BBUkFNX0J1ZmZlcnMsCisrICAg ICAgICAgICAgICBTUEFfUEFSQU1fQlVGRkVSU19zaXplLCBTUEFfUE9EX0ludChzaXplKSwKKysg ICAgICAgICAgICAgIFNQQV9QQVJBTV9CVUZGRVJTX3N0cmlkZSwgU1BBX1BPRF9JbnQoc3RyaWRl KSwKKysgICAgICAgICAgICAgIFNQQV9QQVJBTV9CVUZGRVJTX2J1ZmZlcnMsIFNQQV9QT0RfQ0hP SUNFX1JBTkdFX0ludCg4LCAxLCAzMikpKTsKKysgIHBhcmFtc1sxXSA9IHJlaW50ZXJwcmV0X2Nh c3Q8c3BhX3BvZCAqPihzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCgmYnVpbGRlciwKKysgICAg ICAgICAgICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbU1ldGEsIFNQQV9QQVJBTV9NZXRhLAorKyAg ICAgICAgICAgICAgU1BBX1BBUkFNX01FVEFfdHlwZSwgU1BBX1BPRF9JZChTUEFfTUVUQV9IZWFk ZXIpLAorKyAgICAgICAgICAgICAgU1BBX1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BPRF9JbnQoc2l6 ZW9mKHN0cnVjdCBzcGFfbWV0YV9oZWFkZXIpKSkpOworKyAgcGFyYW1zWzJdID0gcmVpbnRlcnBy ZXRfY2FzdDxzcGFfcG9kICo+KHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0KCZidWlsZGVyLAor KyAgICAgICAgICAgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFNX01ldGEs CisrICAgICAgICAgICAgICBTUEFfUEFSQU1fTUVUQV90eXBlLCBTUEFfUE9EX0lkIChTUEFfTUVU QV9WaWRlb0Nyb3ApLAorKyAgICAgICAgICAgICAgU1BBX1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BP RF9JbnQgKHNpemVvZihzdHJ1Y3Qgc3BhX21ldGFfcmVnaW9uKSkpKTsKKysgIHB3X3N0cmVhbV91 cGRhdGVfcGFyYW1zKHRoYXQtPnB3X3N0cmVhbV8sIHBhcmFtcywgMyk7CisgfQorCisgLy8gc3Rh dGljCitAQCAtMTUwLDE1ICsxMzYsMjUgQEAgdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6T25T dHJlYW1Qcm9jZXNzKHZvaWQqIGRhdGEpIHsKKyAgIEJhc2VDYXB0dXJlclBpcGVXaXJlKiB0aGF0 ID0gc3RhdGljX2Nhc3Q8QmFzZUNhcHR1cmVyUGlwZVdpcmUqPihkYXRhKTsKKyAgIFJUQ19EQ0hF Q0sodGhhdCk7CisKKy0gIHB3X2J1ZmZlciogYnVmID0gbnVsbHB0cjsKKysgIHN0cnVjdCBwd19i dWZmZXIgKm5leHRfYnVmZmVyOworKyAgc3RydWN0IHB3X2J1ZmZlciAqYnVmZmVyID0gbnVsbHB0 cjsKKysKKysgIG5leHRfYnVmZmVyID0gcHdfc3RyZWFtX2RlcXVldWVfYnVmZmVyKHRoYXQtPnB3 X3N0cmVhbV8pOworKyAgd2hpbGUgKG5leHRfYnVmZmVyKSB7CisrICAgIGJ1ZmZlciA9IG5leHRf YnVmZmVyOworKyAgICBuZXh0X2J1ZmZlciA9IHB3X3N0cmVhbV9kZXF1ZXVlX2J1ZmZlcih0aGF0 LT5wd19zdHJlYW1fKTsKKworLSAgaWYgKCEoYnVmID0gcHdfc3RyZWFtX2RlcXVldWVfYnVmZmVy KHRoYXQtPnB3X3N0cmVhbV8pKSkgeworKyAgICBpZiAobmV4dF9idWZmZXIpCisrICAgICAgcHdf c3RyZWFtX3F1ZXVlX2J1ZmZlciAodGhhdC0+cHdfc3RyZWFtXywgYnVmZmVyKTsKKysgIH0KKysK KysgIGlmICghYnVmZmVyKSB7CisgICAgIHJldHVybjsKKyAgIH0KKworLSAgdGhhdC0+SGFuZGxl QnVmZmVyKGJ1Zik7CisrICB0aGF0LT5IYW5kbGVCdWZmZXIoYnVmZmVyKTsKKworLSAgcHdfc3Ry ZWFtX3F1ZXVlX2J1ZmZlcih0aGF0LT5wd19zdHJlYW1fLCBidWYpOworKyAgcHdfc3RyZWFtX3F1 ZXVlX2J1ZmZlcih0aGF0LT5wd19zdHJlYW1fLCBidWZmZXIpOworIH0KKworIEJhc2VDYXB0dXJl clBpcGVXaXJlOjpCYXNlQ2FwdHVyZXJQaXBlV2lyZShDYXB0dXJlU291cmNlVHlwZSBzb3VyY2Vf dHlwZSkKK0BAIC0xNjksMzggKzE2NSwyMiBAQCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6fkJhc2VD YXB0dXJlclBpcGVXaXJlKCkgeworICAgICBwd190aHJlYWRfbG9vcF9zdG9wKHB3X21haW5fbG9v cF8pOworICAgfQorCistICBpZiAocHdfdHlwZV8pIHsKKy0gICAgZGVsZXRlIHB3X3R5cGVfOwor LSAgfQorLQorLSAgaWYgKHNwYV92aWRlb19mb3JtYXRfKSB7CistICAgIGRlbGV0ZSBzcGFfdmlk ZW9fZm9ybWF0XzsKKy0gIH0KKy0KKyAgIGlmIChwd19zdHJlYW1fKSB7CisgICAgIHB3X3N0cmVh bV9kZXN0cm95KHB3X3N0cmVhbV8pOworICAgfQorCistICBpZiAocHdfcmVtb3RlXykgeworLSAg ICBwd19yZW1vdGVfZGVzdHJveShwd19yZW1vdGVfKTsKKysgIGlmIChwd19jb3JlXykgeworKyAg ICBwd19jb3JlX2Rpc2Nvbm5lY3QocHdfY29yZV8pOworICAgfQorCistICBpZiAocHdfY29yZV8p IHsKKy0gICAgcHdfY29yZV9kZXN0cm95KHB3X2NvcmVfKTsKKysgIGlmIChwd19jb250ZXh0Xykg eworKyAgICBwd19jb250ZXh0X2Rlc3Ryb3kocHdfY29udGV4dF8pOworICAgfQorCisgICBpZiAo cHdfbWFpbl9sb29wXykgeworICAgICBwd190aHJlYWRfbG9vcF9kZXN0cm95KHB3X21haW5fbG9v cF8pOworICAgfQorCistICBpZiAocHdfbG9vcF8pIHsKKy0gICAgcHdfbG9vcF9kZXN0cm95KHB3 X2xvb3BfKTsKKy0gIH0KKy0KKy0gIGlmIChjdXJyZW50X2ZyYW1lXykgeworLSAgICBmcmVlKGN1 cnJlbnRfZnJhbWVfKTsKKy0gIH0KKy0KKyAgIGlmIChzdGFydF9yZXF1ZXN0X3NpZ25hbF9pZF8p IHsKKyAgICAgZ19kYnVzX2Nvbm5lY3Rpb25fc2lnbmFsX3Vuc3Vic2NyaWJlKGNvbm5lY3Rpb25f LCBzdGFydF9yZXF1ZXN0X3NpZ25hbF9pZF8pOworICAgfQorQEAgLTI1MCwyNyArMjMwLDM1IEBA IHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkluaXRQb3J0YWwoKSB7Cisgdm9pZCBCYXNlQ2Fw dHVyZXJQaXBlV2lyZTo6SW5pdFBpcGVXaXJlKCkgeworICAgcHdfaW5pdCgvKmFyZ2M9Ki9udWxs cHRyLCAvKmFyZ2M9Ki9udWxscHRyKTsKKworLSAgcHdfbG9vcF8gPSBwd19sb29wX25ldygvKnBy b3BlcnRpZXM9Ki9udWxscHRyKTsKKy0gIHB3X21haW5fbG9vcF8gPSBwd190aHJlYWRfbG9vcF9u ZXcocHdfbG9vcF8sICJwaXBld2lyZS1tYWluLWxvb3AiKTsKKy0KKy0gIHB3X2NvcmVfID0gcHdf Y29yZV9uZXcocHdfbG9vcF8sIC8qcHJvcGVydGllcz0qL251bGxwdHIpOworLSAgcHdfY29yZV90 eXBlXyA9IHB3X2NvcmVfZ2V0X3R5cGUocHdfY29yZV8pOworLSAgcHdfcmVtb3RlXyA9IHB3X3Jl bW90ZV9uZXcocHdfY29yZV8sIG51bGxwdHIsIC8qdXNlcl9kYXRhX3NpemU9Ki8wKTsKKysgIHB3 X21haW5fbG9vcF8gPSBwd190aHJlYWRfbG9vcF9uZXcoInBpcGV3aXJlLW1haW4tbG9vcCIsIG51 bGxwdHIpOworKyAgcHdfY29udGV4dF8gPSBwd19jb250ZXh0X25ldyhwd190aHJlYWRfbG9vcF9n ZXRfbG9vcChwd19tYWluX2xvb3BfKSwgbnVsbHB0ciwgMCk7CisrICBpZiAoIXB3X2NvbnRleHRf KSB7CisrICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIFBpcGVXaXJl IGNvbnRleHQiOworKyAgICByZXR1cm47CisrICB9CisKKy0gIEluaXRQaXBlV2lyZVR5cGVzKCk7 CisrICBwd19jb3JlXyA9IHB3X2NvbnRleHRfY29ubmVjdChwd19jb250ZXh0XywgbnVsbHB0ciwg MCk7CisrICBpZiAoIXB3X2NvcmVfKSB7CisrICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWls ZWQgdG8gY29ubmVjdCBQaXBlV2lyZSBjb250ZXh0IjsKKysgICAgcmV0dXJuOworKyAgfQorCisg ICAvLyBJbml0aWFsaXplIGV2ZW50IGhhbmRsZXJzLCByZW1vdGUgZW5kIGFuZCBzdHJlYW0tcmVs YXRlZC4KKy0gIHB3X3JlbW90ZV9ldmVudHNfLnZlcnNpb24gPSBQV19WRVJTSU9OX1JFTU9URV9F VkVOVFM7CistICBwd19yZW1vdGVfZXZlbnRzXy5zdGF0ZV9jaGFuZ2VkID0gJk9uU3RhdGVDaGFu Z2VkOworKyAgcHdfY29yZV9ldmVudHNfLnZlcnNpb24gPSBQV19WRVJTSU9OX0NPUkVfRVZFTlRT OworKyAgcHdfY29yZV9ldmVudHNfLmVycm9yID0gJk9uQ29yZUVycm9yOworCisgICBwd19zdHJl YW1fZXZlbnRzXy52ZXJzaW9uID0gUFdfVkVSU0lPTl9TVFJFQU1fRVZFTlRTOworICAgcHdfc3Ry ZWFtX2V2ZW50c18uc3RhdGVfY2hhbmdlZCA9ICZPblN0cmVhbVN0YXRlQ2hhbmdlZDsKKy0gIHB3 X3N0cmVhbV9ldmVudHNfLmZvcm1hdF9jaGFuZ2VkID0gJk9uU3RyZWFtRm9ybWF0Q2hhbmdlZDsK KysgIHB3X3N0cmVhbV9ldmVudHNfLnBhcmFtX2NoYW5nZWQgPSAmT25TdHJlYW1QYXJhbUNoYW5n ZWQ7CisgICBwd19zdHJlYW1fZXZlbnRzXy5wcm9jZXNzID0gJk9uU3RyZWFtUHJvY2VzczsKKwor LSAgcHdfcmVtb3RlX2FkZF9saXN0ZW5lcihwd19yZW1vdGVfLCAmc3BhX3JlbW90ZV9saXN0ZW5l cl8sICZwd19yZW1vdGVfZXZlbnRzXywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyk7 CistICBwd19yZW1vdGVfY29ubmVjdF9mZChwd19yZW1vdGVfLCBwd19mZF8pOworKyAgcHdfY29y ZV9hZGRfbGlzdGVuZXIocHdfY29yZV8sICZzcGFfY29yZV9saXN0ZW5lcl8sICZwd19jb3JlX2V2 ZW50c18sIHRoaXMpOworKworKyAgcHdfc3RyZWFtXyA9IENyZWF0ZVJlY2VpdmluZ1N0cmVhbSgp OworKyAgaWYgKCFwd19zdHJlYW1fKSB7CisrICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWls ZWQgdG8gY3JlYXRlIFBpcGVXaXJlIHN0cmVhbSI7CisrICAgIHJldHVybjsKKysgIH0KKworICAg aWYgKHB3X3RocmVhZF9sb29wX3N0YXJ0KHB3X21haW5fbG9vcF8pIDwgMCkgeworICAgICBSVENf TE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHN0YXJ0IG1haW4gUGlwZVdpcmUgbG9vcCI7CitA QCAtMjc4LDgxICsyNjYsMTMyIEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkluaXRQaXBl V2lyZSgpIHsKKyAgIH0KKyB9CisKKy12b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpJbml0UGlw ZVdpcmVUeXBlcygpIHsKKy0gIHNwYV90eXBlX21hcCogbWFwID0gcHdfY29yZV90eXBlXy0+bWFw OworLSAgcHdfdHlwZV8gPSBuZXcgUGlwZVdpcmVUeXBlKCk7CistCistICBzcGFfdHlwZV9tZWRp YV90eXBlX21hcChtYXAsICZwd190eXBlXy0+bWVkaWFfdHlwZSk7CistICBzcGFfdHlwZV9tZWRp YV9zdWJ0eXBlX21hcChtYXAsICZwd190eXBlXy0+bWVkaWFfc3VidHlwZSk7CistICBzcGFfdHlw ZV9mb3JtYXRfdmlkZW9fbWFwKG1hcCwgJnB3X3R5cGVfLT5mb3JtYXRfdmlkZW8pOworLSAgc3Bh X3R5cGVfdmlkZW9fZm9ybWF0X21hcChtYXAsICZwd190eXBlXy0+dmlkZW9fZm9ybWF0KTsKKy19 CistCistdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6Q3JlYXRlUmVjZWl2aW5nU3RyZWFtKCkg eworK3B3X3N0cmVhbSogQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkNyZWF0ZVJlY2VpdmluZ1N0cmVh bSgpIHsKKyAgIHNwYV9yZWN0YW5nbGUgcHdNaW5TY3JlZW5Cb3VuZHMgPSBzcGFfcmVjdGFuZ2xl ezEsIDF9OworLSAgc3BhX3JlY3RhbmdsZSBwd1NjcmVlbkJvdW5kcyA9CistICAgICAgc3BhX3Jl Y3RhbmdsZXtzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGVza3RvcF9zaXplXy53aWR0aCgpKSwKKy0g ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXNrdG9wX3NpemVfLmhl aWdodCgpKX07CisrICBzcGFfcmVjdGFuZ2xlIHB3TWF4U2NyZWVuQm91bmRzID0gc3BhX3JlY3Rh bmdsZXtJTlQzMl9NQVgsIElOVDMyX01BWH07CisKKy0gIHNwYV9mcmFjdGlvbiBwd0ZyYW1lUmF0 ZU1pbiA9IHNwYV9mcmFjdGlvbnswLCAxfTsKKy0gIHNwYV9mcmFjdGlvbiBwd0ZyYW1lUmF0ZU1h eCA9IHNwYV9mcmFjdGlvbns2MCwgMX07CisrICBhdXRvIHN0cmVhbSA9IHB3X3N0cmVhbV9uZXco cHdfY29yZV8sICJ3ZWJydGMtcGlwZXdpcmUtc3RyZWFtIiwgbnVsbHB0cik7CisKKy0gIHB3X3By b3BlcnRpZXMqIHJldXNlUHJvcHMgPSBwd19wcm9wZXJ0aWVzX25ldygicGlwZXdpcmUuY2xpZW50 LnJldXNlIiwgIjEiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qZW5kIG9mIHZhcmFyZ3MqLyBudWxscHRyKTsKKy0gIHB3X3N0cmVhbV8gPSBwd19z dHJlYW1fbmV3KHB3X3JlbW90ZV8sICJ3ZWJydGMtY29uc3VtZS1zdHJlYW0iLCByZXVzZVByb3Bz KTsKKysgIGlmICghc3RyZWFtKSB7CisrICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJDb3VsZCBu b3QgY3JlYXRlIHJlY2VpdmluZyBzdHJlYW0uIjsKKysgICAgcmV0dXJuIG51bGxwdHI7CisrICB9 CisKKyAgIHVpbnQ4X3QgYnVmZmVyWzEwMjRdID0ge307CistICBjb25zdCBzcGFfcG9kKiBwYXJh bXNbMV07CistICBzcGFfcG9kX2J1aWxkZXIgYnVpbGRlciA9IHNwYV9wb2RfYnVpbGRlcntidWZm ZXIsIHNpemVvZihidWZmZXIpfTsKKy0gIHBhcmFtc1swXSA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3Bh X3BvZCo+KHNwYV9wb2RfYnVpbGRlcl9vYmplY3QoCistICAgICAgJmJ1aWxkZXIsCistICAgICAg Ly8gaWQgdG8gZW51bWVyYXRlIGZvcm1hdHMKKy0gICAgICBwd19jb3JlX3R5cGVfLT5wYXJhbS5p ZEVudW1Gb3JtYXQsIHB3X2NvcmVfdHlwZV8tPnNwYV9mb3JtYXQsICJJIiwKKy0gICAgICBwd190 eXBlXy0+bWVkaWFfdHlwZS52aWRlbywgIkkiLCBwd190eXBlXy0+bWVkaWFfc3VidHlwZS5yYXcs CistICAgICAgLy8gVmlkZW8gZm9ybWF0OiBzcGVjaWZpZWQgYXMgaWQgb3IgZW51bSAoSSksIHBy ZWZlcnJlZCBmb3JtYXQgaXMgQkdSeCwKKy0gICAgICAvLyB0aGVuIGFsbG93ZWQgZm9ybWF0cyBh cmUgZW51bWVyYXRlZCAoZSkgYW5kIHRoZSBmb3JtYXQgaXMgdW5kZWNpZGVkICh1KQorLSAgICAg IC8vIHRvIGFsbG93IG5lZ290aWF0aW9uCistICAgICAgIjoiLCBwd190eXBlXy0+Zm9ybWF0X3Zp ZGVvLmZvcm1hdCwgIklldSIsIHB3X3R5cGVfLT52aWRlb19mb3JtYXQuQkdSeCwKKy0gICAgICBT UEFfUE9EX1BST1BfRU5VTSgyLCBwd190eXBlXy0+dmlkZW9fZm9ybWF0LlJHQngsCistICAgICAg ICAgICAgICAgICAgICAgICAgcHdfdHlwZV8tPnZpZGVvX2Zvcm1hdC5CR1J4KSwKKy0gICAgICAv LyBWaWRlbyBzaXplOiBzcGVjaWZpZWQgYXMgcmVjdGFuZ2xlIChSKSwgcHJlZmVycmVkIHNpemUg aXMgc3BlY2lmaWVkIGFzCistICAgICAgLy8gZmlyc3QgcGFyYW1ldGVyLCB0aGVuIGFsbG93ZWQg c2l6ZSBpcyBkZWZpbmVkIGFzIHJhbmdlIChyKSBmcm9tIG1pbiBhbmQKKy0gICAgICAvLyBtYXgg dmFsdWVzIGFuZCB0aGUgZm9ybWF0IGlzIHVuZGVjaWRlZCAodSkgdG8gYWxsb3cgbmVnb3RpYXRp b24KKy0gICAgICAiOiIsIHB3X3R5cGVfLT5mb3JtYXRfdmlkZW8uc2l6ZSwgIlJydSIsICZwd1Nj cmVlbkJvdW5kcywgMiwKKy0gICAgICAmcHdNaW5TY3JlZW5Cb3VuZHMsICZwd1NjcmVlbkJvdW5k cywKKy0gICAgICAvLyBGcmFtZSByYXRlOiBzcGVjaWZpZWQgYXMgZnJhY3Rpb24gKEYpIGFuZCBz ZXQgdG8gbWluaW11bSBmcmFtZSByYXRlCistICAgICAgLy8gdmFsdWUKKy0gICAgICAiOiIsIHB3 X3R5cGVfLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIsICZwd0ZyYW1lUmF0ZU1pbiwKKy0g ICAgICAvLyBNYXggZnJhbWUgcmF0ZTogc3BlY2lmaWVkIGFzIGZyYWN0aW9uIChGKSwgcHJlZmVy cmVkIGZyYW1lIHJhdGUgaXMgc2V0CistICAgICAgLy8gdG8gbWF4aW11bSB2YWx1ZSwgdGhlbiBh bGxvd2VkIGZyYW1lIHJhdGUgaXMgZGVmaW5lZCBhcyByYW5nZSAocikgZnJvbQorLSAgICAgIC8v IG1pbiBhbmQgbWF4IHZhbHVlcyBhbmQgaXQgaXMgdW5kZWNpZGVkICh1KSB0byBhbGxvdyBuZWdv dGlhdGlvbgorLSAgICAgICI6IiwgcHdfdHlwZV8tPmZvcm1hdF92aWRlby5tYXhfZnJhbWVyYXRl LCAiRnJ1IiwgJnB3RnJhbWVSYXRlTWF4LCAyLAorLSAgICAgICZwd0ZyYW1lUmF0ZU1pbiwgJnB3 RnJhbWVSYXRlTWF4KSk7CistCistICBwd19zdHJlYW1fYWRkX2xpc3RlbmVyKHB3X3N0cmVhbV8s ICZzcGFfc3RyZWFtX2xpc3RlbmVyXywgJnB3X3N0cmVhbV9ldmVudHNfLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICB0aGlzKTsKKysgIGNvbnN0IHNwYV9wb2QqIHBhcmFtc1syXTsKKysgIHNw YV9wb2RfYnVpbGRlciBidWlsZGVyID0gU1BBX1BPRF9CVUlMREVSX0lOSVQoYnVmZmVyLCBzaXpl b2YgKGJ1ZmZlcikpOworKworKyAgcGFyYW1zWzBdID0gcmVpbnRlcnByZXRfY2FzdDxzcGFfcG9k ICo+KHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0KCZidWlsZGVyLAorKyAgICAgICAgICAgICAg U1BBX1RZUEVfT0JKRUNUX0Zvcm1hdCwgU1BBX1BBUkFNX0VudW1Gb3JtYXQsCisrICAgICAgICAg ICAgICBTUEFfRk9STUFUX21lZGlhVHlwZSwgU1BBX1BPRF9JZChTUEFfTUVESUFfVFlQRV92aWRl byksCisrICAgICAgICAgICAgICBTUEFfRk9STUFUX21lZGlhU3VidHlwZSwgU1BBX1BPRF9JZChT UEFfTUVESUFfU1VCVFlQRV9yYXcpLAorKyAgICAgICAgICAgICAgU1BBX0ZPUk1BVF9WSURFT19m b3JtYXQsIFNQQV9QT0RfQ0hPSUNFX0VOVU1fSWQoNSwgU1BBX1ZJREVPX0ZPUk1BVF9CR1J4LCBT UEFfVklERU9fRk9STUFUX1JHQngsIFNQQV9WSURFT19GT1JNQVRfUkdCQSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQ QV9WSURFT19GT1JNQVRfQkdSeCwgU1BBX1ZJREVPX0ZPUk1BVF9CR1JBKSwKKysgICAgICAgICAg ICAgIFNQQV9GT1JNQVRfVklERU9fc2l6ZSwgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfUmVjdGFuZ2xl KCZwd01pblNjcmVlbkJvdW5kcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwd01pblNjcmVlbkJvdW5kcywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZwd01heFNjcmVlbkJvdW5kcyksCisrICAgICAgICAgICAgICAwKSk7CisrICBw d19zdHJlYW1fYWRkX2xpc3RlbmVyKHN0cmVhbSwgJnNwYV9zdHJlYW1fbGlzdGVuZXJfLCAmcHdf c3RyZWFtX2V2ZW50c18sIHRoaXMpOworKworICAgcHdfc3RyZWFtX2ZsYWdzIGZsYWdzID0gc3Rh dGljX2Nhc3Q8cHdfc3RyZWFtX2ZsYWdzPigKKy0gICAgICBQV19TVFJFQU1fRkxBR19BVVRPQ09O TkVDVCB8IFBXX1NUUkVBTV9GTEFHX0lOQUNUSVZFIHwKKy0gICAgICBQV19TVFJFQU1fRkxBR19N QVBfQlVGRkVSUyk7CistICBpZiAocHdfc3RyZWFtX2Nvbm5lY3QocHdfc3RyZWFtXywgUFdfRElS RUNUSU9OX0lOUFVULCAvKnBvcnRfcGF0aD0qL251bGxwdHIsCistICAgICAgICAgICAgICAgICAg ICAgICAgZmxhZ3MsIHBhcmFtcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAvKm5fcGFyYW1z PSovMSkgIT0gMCkgeworKyAgICAgIFBXX1NUUkVBTV9GTEFHX0FVVE9DT05ORUNUIHwgUFdfU1RS RUFNX0ZMQUdfSU5BQ1RJVkUpOworKworKyAgaWYgKHB3X3N0cmVhbV9jb25uZWN0KHN0cmVhbSwg UFdfRElSRUNUSU9OX0lOUFVULCBwd19zdHJlYW1fbm9kZV9pZF8sIFBXX1NUUkVBTV9GTEFHX0FV VE9DT05ORUNULCBwYXJhbXMsIDEpICE9IDApIHsKKyAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwg IkNvdWxkIG5vdCBjb25uZWN0IHJlY2VpdmluZyBzdHJlYW0uIjsKKyAgICAgcG9ydGFsX2luaXRf ZmFpbGVkXyA9IHRydWU7CistICAgIHJldHVybjsKKyAgIH0KKysKKysgIHJldHVybiBzdHJlYW07 CisgfQorCisgdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6SGFuZGxlQnVmZmVyKHB3X2J1ZmZl ciogYnVmZmVyKSB7CisrICBzdHJ1Y3Qgc3BhX21ldGFfcmVnaW9uKiB2aWRlb19jcm9wOworICAg c3BhX2J1ZmZlciogc3BhQnVmZmVyID0gYnVmZmVyLT5idWZmZXI7CistICB2b2lkKiBzcmMgPSBu dWxscHRyOworKyAgdWludDhfdCAqbWFwID0gbnVsbHB0cjsKKysgIHVpbnQ4X3QqIHNyYyA9IG51 bGxwdHI7CisrICB1aW50OF90KiBkc3QgPSBudWxscHRyOworKworKyAgaWYgKHNwYUJ1ZmZlci0+ ZGF0YXNbMF0uY2h1bmstPnNpemUgPT0gMCkgeworKyAgICBtYXAgPSBudWxscHRyOworKyAgICBz cmMgPSBudWxscHRyOworKyAgfSBlbHNlIGlmIChzcGFCdWZmZXItPmRhdGFzWzBdLnR5cGUgPT0g U1BBX0RBVEFfTWVtRmQpIHsKKysgICAgbWFwID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1tYXAo CisrICAgICAgICBudWxscHRyLCBzcGFCdWZmZXItPmRhdGFzWzBdLm1heHNpemUgKyBzcGFCdWZm ZXItPmRhdGFzWzBdLm1hcG9mZnNldCwKKysgICAgICAgIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUs IHNwYUJ1ZmZlci0+ZGF0YXNbMF0uZmQsIDApKTsKKysKKysgICAgaWYgKG1hcCA9PSBNQVBfRkFJ TEVEKSB7CisrICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBtbWFwIHRoZSBt ZW1vcnk6ICIgPDwgc3RkOjpzdHJlcnJvcihlcnJubyk7CisrICAgICAgcmV0dXJuOworKyAgICB9 CisrCisrICAgIHNyYyA9IFNQQV9NRU1CRVIobWFwLCBzcGFCdWZmZXItPmRhdGFzWzBdLm1hcG9m ZnNldCwgdWludDhfdCk7CisrICB9IGVsc2UgaWYgKHNwYUJ1ZmZlci0+ZGF0YXNbMF0udHlwZSA9 PSBTUEFfREFUQV9EbWFCdWYpIHsKKysgICAgaW50IGZkOworKyAgICBmZCA9IHNwYUJ1ZmZlci0+ ZGF0YXNbMF0uZmQ7CisKKy0gIGlmICghKHNyYyA9IHNwYUJ1ZmZlci0+ZGF0YXNbMF0uZGF0YSkp IHsKKysgICAgbWFwID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1tYXAoCisrICAgICAgICBudWxs cHRyLCBzcGFCdWZmZXItPmRhdGFzWzBdLm1heHNpemUgKyBzcGFCdWZmZXItPmRhdGFzWzBdLm1h cG9mZnNldCwKKysgICAgICAgIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUsIGZkLCAwKSk7CisrCisr ICAgIGlmIChtYXAgPT0gTUFQX0ZBSUxFRCkgeworKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8 ICJGYWlsZWQgdG8gbW1hcCB0aGUgbWVtb3J5OiAiIDw8IHN0ZDo6c3RyZXJyb3IoZXJybm8pOwor KyAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgICBTeW5jRG1hQnVmKGZkLCBETUFfQlVGX1NZ TkNfU1RBUlQpOworKworKyAgICBzcmMgPSBTUEFfTUVNQkVSKG1hcCwgc3BhQnVmZmVyLT5kYXRh c1swXS5tYXBvZmZzZXQsIHVpbnQ4X3QpOworKyAgfSBlbHNlIGlmIChzcGFCdWZmZXItPmRhdGFz WzBdLnR5cGUgPT0gU1BBX0RBVEFfTWVtUHRyKSB7CisrICAgIG1hcCA9IG51bGxwdHI7CisrICAg IHNyYyA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzcGFCdWZmZXItPmRhdGFzWzBdLmRhdGEpOwor KyAgfSBlbHNlIHsKKyAgICAgcmV0dXJuOworICAgfQorCistICB1aW50MzJfdCBtYXhTaXplID0g c3BhQnVmZmVyLT5kYXRhc1swXS5tYXhzaXplOworLSAgaW50MzJfdCBzcmNTdHJpZGUgPSBzcGFC dWZmZXItPmRhdGFzWzBdLmNodW5rLT5zdHJpZGU7CisrICBpZiAoIXNyYykgeworKyAgICByZXR1 cm47CisrICB9CisrCisrICBEZXNrdG9wU2l6ZSBwcmV2X2Nyb3Bfc2l6ZSA9IERlc2t0b3BTaXpl KDAsIDApOworKyAgaWYgKHZpZGVvX2Nyb3Bfc2l6ZV9pbml0aWFsaXplZF8pIHsKKysgICAgcHJl dl9jcm9wX3NpemUgPSB2aWRlb19jcm9wX3NpemVfOworKyAgfQorKworKyAgaWYgKCh2aWRlb19j cm9wID0gc3RhdGljX2Nhc3Q8c3RydWN0IHNwYV9tZXRhX3JlZ2lvbio+KAorKyAgICAgICAgICAg c3BhX2J1ZmZlcl9maW5kX21ldGFfZGF0YShzcGFCdWZmZXIsIFNQQV9NRVRBX1ZpZGVvQ3JvcCwg c2l6ZW9mKCp2aWRlb19jcm9wKSkpKSkgeworKyAgICBSVENfRENIRUNLKHZpZGVvX2Nyb3AtPnJl Z2lvbi5zaXplLndpZHRoIDw9IGRlc2t0b3Bfc2l6ZV8ud2lkdGgoKSAmJgorKyAgICAgICAgICAg ICAgIHZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCA8PSBkZXNrdG9wX3NpemVfLmhlaWdo dCgpKTsKKysgICAgaWYgKCh2aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCAhPSBkZXNrdG9w X3NpemVfLndpZHRoKCkgfHwKKysgICAgICAgIHZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdo dCAhPSBkZXNrdG9wX3NpemVfLmhlaWdodCgpKSAmJiB2aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53 aWR0aCAmJiB2aWRlb19jcm9wLT5yZWdpb24uc2l6ZS5oZWlnaHQpIHsKKysgICAgICB2aWRlb19j cm9wX3NpemVfID0gRGVza3RvcFNpemUodmlkZW9fY3JvcC0+cmVnaW9uLnNpemUud2lkdGgsIHZp ZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCk7CisrICAgICAgdmlkZW9fY3JvcF9zaXplX2lu aXRpYWxpemVkXyA9IHRydWU7CisrICAgIH0gZWxzZSB7CisrICAgICAgdmlkZW9fY3JvcF9zaXpl X2luaXRpYWxpemVkXyA9IGZhbHNlOworKyAgICB9CisrICB9IGVsc2UgeworKyAgICB2aWRlb19j cm9wX3NpemVfaW5pdGlhbGl6ZWRfID0gZmFsc2U7CisrICB9CisrCisrICBzaXplX3QgZnJhbWVf c2l6ZTsKKysgIGlmICh2aWRlb19jcm9wX3NpemVfaW5pdGlhbGl6ZWRfKSB7CisrICAgIGZyYW1l X3NpemUgPQorKyAgICAgICAgdmlkZW9fY3JvcF9zaXplXy53aWR0aCgpICogdmlkZW9fY3JvcF9z aXplXy5oZWlnaHQoKSAqIGtCeXRlc1BlclBpeGVsOworKyAgfSBlbHNlIHsKKysgICAgZnJhbWVf c2l6ZSA9CisrICAgICAgICBkZXNrdG9wX3NpemVfLndpZHRoKCkgKiBkZXNrdG9wX3NpemVfLmhl aWdodCgpICoga0J5dGVzUGVyUGl4ZWw7CisrICB9CisrCisrICBpZiAoIWN1cnJlbnRfZnJhbWVf IHx8CisrICAgICAgKHZpZGVvX2Nyb3Bfc2l6ZV9pbml0aWFsaXplZF8gJiYgIXZpZGVvX2Nyb3Bf c2l6ZV8uZXF1YWxzKHByZXZfY3JvcF9zaXplKSkpIHsKKysgICAgY3VycmVudF9mcmFtZV8gPSBz dGQ6Om1ha2VfdW5pcXVlPHVpbnQ4X3RbXT4oZnJhbWVfc2l6ZSk7CisrICB9CisrICBSVENfRENI RUNLKGN1cnJlbnRfZnJhbWVfICE9IG51bGxwdHIpOworKworKyAgY29uc3QgaW50MzJfdCBkc3RT dHJpZGUgPSB2aWRlb19jcm9wX3NpemVfaW5pdGlhbGl6ZWRfCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA/IHZpZGVvX2Nyb3Bfc2l6ZV8ud2lkdGgoKSAqIGtCeXRlc1BlclBpeGVs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGRlc2t0b3Bfc2l6ZV8ud2lkdGgo KSAqIGtCeXRlc1BlclBpeGVsOworKyAgY29uc3QgaW50MzJfdCBzcmNTdHJpZGUgPSBzcGFCdWZm ZXItPmRhdGFzWzBdLmNodW5rLT5zdHJpZGU7CisrCisgICBpZiAoc3JjU3RyaWRlICE9IChkZXNr dG9wX3NpemVfLndpZHRoKCkgKiBrQnl0ZXNQZXJQaXhlbCkpIHsKKyAgICAgUlRDX0xPRyhMU19F UlJPUikgPDwgIkdvdCBidWZmZXIgd2l0aCBzdHJpZGUgZGlmZmVyZW50IGZyb20gc2NyZWVuIHN0 cmlkZTogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCBzcmNTdHJpZGUKK0BAIC0zNjEsMjEg KzQwMCw0MCBAQCB2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpIYW5kbGVCdWZmZXIocHdfYnVm ZmVyKiBidWZmZXIpIHsKKyAgICAgcmV0dXJuOworICAgfQorCistICBpZiAoIWN1cnJlbnRfZnJh bWVfKSB7CistICAgIGN1cnJlbnRfZnJhbWVfID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1hbGxv YyhtYXhTaXplKSk7CisrICBkc3QgPSBjdXJyZW50X2ZyYW1lXy5nZXQoKTsKKysKKysgIC8vIEFk anVzdCBzb3VyY2UgY29udGVudCBiYXNlZCBvbiBjcm9wIHZpZGVvIHBvc2l0aW9uCisrICBpZiAo dmlkZW9fY3JvcF9zaXplX2luaXRpYWxpemVkXyAmJgorKyAgICAgICh2aWRlb19jcm9wLT5yZWdp b24ucG9zaXRpb24ueSArIHZpZGVvX2Nyb3Bfc2l6ZV8uaGVpZ2h0KCkgPD0gZGVza3RvcF9zaXpl Xy5oZWlnaHQoKSkpIHsKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2aWRlb19jcm9wLT5yZWdp b24ucG9zaXRpb24ueTsgKytpKSB7CisrICAgICAgc3JjICs9IHNyY1N0cmlkZTsKKysgICAgfQor KyAgfQorKyAgY29uc3QgaW50IHhPZmZzZXQgPQorKyAgICAgIHZpZGVvX2Nyb3Bfc2l6ZV9pbml0 aWFsaXplZF8gJiYgKHZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi54ICsgdmlkZW9fY3JvcF9z aXplXy53aWR0aCgpIDw9CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVza3RvcF9zaXpl Xy53aWR0aCgpKQorKyAgICAgICAgICA/IHZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi54ICog a0J5dGVzUGVyUGl4ZWwKKysgICAgICAgICAgOiAwOworKyAgY29uc3QgaW50IGhlaWdodCA9IHZp ZGVvX2Nyb3Bfc2l6ZV9pbml0aWFsaXplZF8gPyB2aWRlb19jcm9wX3NpemVfLmhlaWdodCgpIDog ZGVza3RvcF9zaXplXy5oZWlnaHQoKTsKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgaGVpZ2h0OyAr K2kpIHsKKysgICAgLy8gQWRqdXN0IHNvdXJjZSBjb250ZW50IGJhc2VkIG9uIGNyb3AgdmlkZW8g cG9zaXRpb24gaWYgbmVlZGVkCisrICAgIHNyYyArPSB4T2Zmc2V0OworKyAgICBzdGQ6Om1lbWNw eShkc3QsIHNyYywgZHN0U3RyaWRlKTsKKysgICAgLy8gSWYgYm90aCBzaWRlcyBkZWNpZGVkIHRv IGdvIHdpdGggdGhlIFJHQnggZm9ybWF0IHdlIG5lZWQgdG8gY29udmVydCBpdCB0bworKyAgICAv LyBCR1J4IHRvIG1hdGNoIGNvbG9yIGZvcm1hdCBleHBlY3RlZCBieSBXZWJSVEMuCisrICAgIGlm IChzcGFfdmlkZW9fZm9ybWF0Xy5mb3JtYXQgPT0gU1BBX1ZJREVPX0ZPUk1BVF9SR0J4IHx8Cisr ICAgICAgICBzcGFfdmlkZW9fZm9ybWF0Xy5mb3JtYXQgPT0gU1BBX1ZJREVPX0ZPUk1BVF9SR0JB KSB7CisrICAgICAgQ29udmVydFJHQnhUb0JHUngoZHN0LCBkc3RTdHJpZGUpOworKyAgICB9Cisr ICAgIHNyYyArPSBzcmNTdHJpZGUgLSB4T2Zmc2V0OworKyAgICBkc3QgKz0gZHN0U3RyaWRlOwor ICAgfQorLSAgUlRDX0RDSEVDSyhjdXJyZW50X2ZyYW1lXyAhPSBudWxscHRyKTsKKworLSAgLy8g SWYgYm90aCBzaWRlcyBkZWNpZGVkIHRvIGdvIHdpdGggdGhlIFJHQnggZm9ybWF0IHdlIG5lZWQg dG8gY29udmVydCBpdCB0bworLSAgLy8gQkdSeCB0byBtYXRjaCBjb2xvciBmb3JtYXQgZXhwZWN0 ZWQgYnkgV2ViUlRDLgorLSAgaWYgKHNwYV92aWRlb19mb3JtYXRfLT5mb3JtYXQgPT0gcHdfdHlw ZV8tPnZpZGVvX2Zvcm1hdC5SR0J4KSB7CistICAgIHVpbnQ4X3QqIHRlbXBGcmFtZSA9IHN0YXRp Y19jYXN0PHVpbnQ4X3QqPihtYWxsb2MobWF4U2l6ZSkpOworLSAgICBzdGQ6Om1lbWNweSh0ZW1w RnJhbWUsIHNyYywgbWF4U2l6ZSk7CistICAgIENvbnZlcnRSR0J4VG9CR1J4KHRlbXBGcmFtZSwg bWF4U2l6ZSk7CistICAgIHN0ZDo6bWVtY3B5KGN1cnJlbnRfZnJhbWVfLCB0ZW1wRnJhbWUsIG1h eFNpemUpOworLSAgICBmcmVlKHRlbXBGcmFtZSk7CistICB9IGVsc2UgeworLSAgICBzdGQ6Om1l bWNweShjdXJyZW50X2ZyYW1lXywgc3JjLCBtYXhTaXplKTsKKysgIGlmIChtYXApIHsKKysgICAg aWYgKHNwYUJ1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBTUEFfREFUQV9EbWFCdWYpIHsKKysgICAg ICBTeW5jRG1hQnVmKHNwYUJ1ZmZlci0+ZGF0YXNbMF0uZmQsIERNQV9CVUZfU1lOQ19FTkQpOwor KyAgICB9CisrICAgIG11bm1hcChtYXAsIHNwYUJ1ZmZlci0+ZGF0YXNbMF0ubWF4c2l6ZSArIHNw YUJ1ZmZlci0+ZGF0YXNbMF0ubWFwb2Zmc2V0KTsKKyAgIH0KKyB9CisKK0BAIC03MjUsMTAgKzc4 Myw3IEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9uU3RhcnRSZXF1ZXN0UmVzcG9uc2VT aWduYWwoCisgICAgICAgZ192YXJpYW50X2dldCh2YXJpYW50LCAiKHVAYXtzdn0pIiwgJnN0cmVh bV9pZCwgJm9wdGlvbnMpOworICAgICAgIFJUQ19EQ0hFQ0sob3B0aW9ucyAhPSBudWxscHRyKTsK KworLSAgICAgIGdfdmFyaWFudF9sb29rdXAob3B0aW9ucywgInNpemUiLCAiKGlpKSIsICZ3aWR0 aCwgJmhlaWdodCk7CistCistICAgICAgdGhhdC0+ZGVza3RvcF9zaXplXy5zZXQod2lkdGgsIGhl aWdodCk7CistCisrICAgICAgdGhhdC0+cHdfc3RyZWFtX25vZGVfaWRfID0gc3RyZWFtX2lkOwor ICAgICAgIGdfdmFyaWFudF91bnJlZihvcHRpb25zKTsKKyAgICAgICBnX3ZhcmlhbnRfdW5yZWYo dmFyaWFudCk7CisgICAgIH0KK0BAIC04MTMsMTAgKzg2OCwxNSBAQCB2b2lkIEJhc2VDYXB0dXJl clBpcGVXaXJlOjpDYXB0dXJlRnJhbWUoKSB7CisgICAgIHJldHVybjsKKyAgIH0KKworLSAgc3Rk Ojp1bmlxdWVfcHRyPERlc2t0b3BGcmFtZT4gcmVzdWx0KG5ldyBCYXNpY0Rlc2t0b3BGcmFtZShk ZXNrdG9wX3NpemVfKSk7CisrICBEZXNrdG9wU2l6ZSBmcmFtZV9zaXplID0gZGVza3RvcF9zaXpl XzsKKysgIGlmICh2aWRlb19jcm9wX3NpemVfaW5pdGlhbGl6ZWRfKSB7CisrICAgIGZyYW1lX3Np emUgPSB2aWRlb19jcm9wX3NpemVfOworKyAgfQorKworKyAgc3RkOjp1bmlxdWVfcHRyPERlc2t0 b3BGcmFtZT4gcmVzdWx0KG5ldyBCYXNpY0Rlc2t0b3BGcmFtZShmcmFtZV9zaXplKSk7CisgICBy ZXN1bHQtPkNvcHlQaXhlbHNGcm9tKAorLSAgICAgIGN1cnJlbnRfZnJhbWVfLCAoZGVza3RvcF9z aXplXy53aWR0aCgpICoga0J5dGVzUGVyUGl4ZWwpLAorLSAgICAgIERlc2t0b3BSZWN0OjpNYWtl V0goZGVza3RvcF9zaXplXy53aWR0aCgpLCBkZXNrdG9wX3NpemVfLmhlaWdodCgpKSk7CisrICAg ICAgY3VycmVudF9mcmFtZV8uZ2V0KCksIChmcmFtZV9zaXplLndpZHRoKCkgKiBrQnl0ZXNQZXJQ aXhlbCksCisrICAgICAgRGVza3RvcFJlY3Q6Ok1ha2VXSChmcmFtZV9zaXplLndpZHRoKCksIGZy YW1lX3NpemUuaGVpZ2h0KCkpKTsKKyAgIGlmICghcmVzdWx0KSB7CisgICAgIGNhbGxiYWNrXy0+ T25DYXB0dXJlUmVzdWx0KFJlc3VsdDo6RVJST1JfVEVNUE9SQVJZLCBudWxscHRyKTsKKyAgICAg cmV0dXJuOworQEAgLTgzNyw0ICs4OTcsMjIgQEAgYm9vbCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6 U2VsZWN0U291cmNlKFNvdXJjZUlkIGlkKSB7CisgICByZXR1cm4gdHJ1ZTsKKyB9CisKKysvLyBz dGF0aWMKKytzdGQ6OnVuaXF1ZV9wdHI8RGVza3RvcENhcHR1cmVyPgorK0Jhc2VDYXB0dXJlclBp cGVXaXJlOjpDcmVhdGVSYXdTY3JlZW5DYXB0dXJlcigKKysgICAgY29uc3QgRGVza3RvcENhcHR1 cmVPcHRpb25zJiBvcHRpb25zKSB7CisrICBzdGQ6OnVuaXF1ZV9wdHI8QmFzZUNhcHR1cmVyUGlw ZVdpcmU+IGNhcHR1cmVyID0KKysgICAgICBzdGQ6Om1ha2VfdW5pcXVlPEJhc2VDYXB0dXJlclBp cGVXaXJlPihCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6Q2FwdHVyZVNvdXJjZVR5cGU6OmtBbnkpOwor KyAgcmV0dXJuIHN0ZDo6bW92ZShjYXB0dXJlcik7fQorKworKy8vIHN0YXRpYworK3N0ZDo6dW5p cXVlX3B0cjxEZXNrdG9wQ2FwdHVyZXI+CisrQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkNyZWF0ZVJh d1dpbmRvd0NhcHR1cmVyKAorKyAgICBjb25zdCBEZXNrdG9wQ2FwdHVyZU9wdGlvbnMmIG9wdGlv bnMpIHsKKysKKysgIHN0ZDo6dW5pcXVlX3B0cjxCYXNlQ2FwdHVyZXJQaXBlV2lyZT4gY2FwdHVy ZXIgPQorKyAgICAgIHN0ZDo6bWFrZV91bmlxdWU8QmFzZUNhcHR1cmVyUGlwZVdpcmU+KEJhc2VD YXB0dXJlclBpcGVXaXJlOjpDYXB0dXJlU291cmNlVHlwZTo6a0FueSk7CisrICByZXR1cm4gc3Rk Ojptb3ZlKGNhcHR1cmVyKTsKKyt9CisrCisgfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworLS0tIG1l ZGlhL3dlYnJ0Yy90cnVuay93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgvYmFz ZV9jYXB0dXJlcl9waXBld2lyZS5oCisrKysgbWVkaWEvd2VicnRjL3RydW5rL3dlYnJ0Yy9tb2R1 bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9iYXNlX2NhcHR1cmVyX3BpcGV3aXJlLmgKK0BAIC0y MiwxNyArMjIsMTMgQEAKKworIG5hbWVzcGFjZSB3ZWJydGMgeworCistY2xhc3MgUGlwZVdpcmVU eXBlIHsKKy0gcHVibGljOgorLSAgc3BhX3R5cGVfbWVkaWFfdHlwZSBtZWRpYV90eXBlOworLSAg c3BhX3R5cGVfbWVkaWFfc3VidHlwZSBtZWRpYV9zdWJ0eXBlOworLSAgc3BhX3R5cGVfZm9ybWF0 X3ZpZGVvIGZvcm1hdF92aWRlbzsKKy0gIHNwYV90eXBlX3ZpZGVvX2Zvcm1hdCB2aWRlb19mb3Jt YXQ7CistfTsKKy0KKyBjbGFzcyBCYXNlQ2FwdHVyZXJQaXBlV2lyZSA6IHB1YmxpYyBEZXNrdG9w Q2FwdHVyZXIgeworICBwdWJsaWM6CistICBlbnVtIENhcHR1cmVTb3VyY2VUeXBlIHsgU2NyZWVu ID0gMSwgV2luZG93IH07CisrICBlbnVtIENhcHR1cmVTb3VyY2VUeXBlIDogdWludDMyX3Qgewor KyAgICBrU2NyZWVuID0gMGIwMSwKKysgICAga1dpbmRvdyA9IDBiMTAsCisrICAgIGtBbnkgPSAw YjExCisrICB9OworCisgICBleHBsaWNpdCBCYXNlQ2FwdHVyZXJQaXBlV2lyZShDYXB0dXJlU291 cmNlVHlwZSBzb3VyY2VfdHlwZSk7CisgICB+QmFzZUNhcHR1cmVyUGlwZVdpcmUoKSBvdmVycmlk ZTsKK0BAIC00MywyOCArMzksMzIgQEAgY2xhc3MgQmFzZUNhcHR1cmVyUGlwZVdpcmUgOiBwdWJs aWMgRGVza3RvcENhcHR1cmVyIHsKKyAgIGJvb2wgR2V0U291cmNlTGlzdChTb3VyY2VMaXN0KiBz b3VyY2VzKSBvdmVycmlkZTsKKyAgIGJvb2wgU2VsZWN0U291cmNlKFNvdXJjZUlkIGlkKSBvdmVy cmlkZTsKKworKyAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxEZXNrdG9wQ2FwdHVyZXI+IENyZWF0 ZVJhd1NjcmVlbkNhcHR1cmVyKAorKyAgICAgIGNvbnN0IERlc2t0b3BDYXB0dXJlT3B0aW9ucyYg b3B0aW9ucyk7CisrCisrICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPERlc2t0b3BDYXB0dXJlcj4g Q3JlYXRlUmF3V2luZG93Q2FwdHVyZXIoCisrICAgICAgY29uc3QgRGVza3RvcENhcHR1cmVPcHRp b25zJiBvcHRpb25zKTsKKysKKyAgcHJpdmF0ZToKKyAgIC8vIFBpcGVXaXJlIHR5cGVzIC0tPgor KyAgcHdfY29udGV4dCogcHdfY29udGV4dF8gPSBudWxscHRyOworICAgcHdfY29yZSogcHdfY29y ZV8gPSBudWxscHRyOworLSAgcHdfdHlwZSogcHdfY29yZV90eXBlXyA9IG51bGxwdHI7CisgICBw d19zdHJlYW0qIHB3X3N0cmVhbV8gPSBudWxscHRyOworLSAgcHdfcmVtb3RlKiBwd19yZW1vdGVf ID0gbnVsbHB0cjsKKy0gIHB3X2xvb3AqIHB3X2xvb3BfID0gbnVsbHB0cjsKKyAgIHB3X3RocmVh ZF9sb29wKiBwd19tYWluX2xvb3BfID0gbnVsbHB0cjsKKy0gIFBpcGVXaXJlVHlwZSogcHdfdHlw ZV8gPSBudWxscHRyOworCisrICBzcGFfaG9vayBzcGFfY29yZV9saXN0ZW5lcl8gPSB7fTsKKyAg IHNwYV9ob29rIHNwYV9zdHJlYW1fbGlzdGVuZXJfID0ge307CistICBzcGFfaG9vayBzcGFfcmVt b3RlX2xpc3RlbmVyXyA9IHt9OworCisrICBwd19jb3JlX2V2ZW50cyBwd19jb3JlX2V2ZW50c18g PSB7fTsKKyAgIHB3X3N0cmVhbV9ldmVudHMgcHdfc3RyZWFtX2V2ZW50c18gPSB7fTsKKy0gIHB3 X3JlbW90ZV9ldmVudHMgcHdfcmVtb3RlX2V2ZW50c18gPSB7fTsKKworLSAgc3BhX3ZpZGVvX2lu Zm9fcmF3KiBzcGFfdmlkZW9fZm9ybWF0XyA9IG51bGxwdHI7CisrICBzdHJ1Y3Qgc3BhX3ZpZGVv X2luZm9fcmF3IHNwYV92aWRlb19mb3JtYXRfOworCisrICBndWludDMyIHB3X3N0cmVhbV9ub2Rl X2lkXyA9IDA7CisgICBnaW50MzIgcHdfZmRfID0gLTE7CisKKyAgIENhcHR1cmVTb3VyY2VUeXBl IGNhcHR1cmVfc291cmNlX3R5cGVfID0KKy0gICAgICBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6Q2Fw dHVyZVNvdXJjZVR5cGU6OlNjcmVlbjsKKysgICAgICBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6Q2Fw dHVyZVNvdXJjZVR5cGU6OmtBbnk7CisKKyAgIC8vIDwtLSBlbmQgb2YgUGlwZVdpcmUgdHlwZXMK KworQEAgLTc4LDMzICs3OCwzNyBAQCBjbGFzcyBCYXNlQ2FwdHVyZXJQaXBlV2lyZSA6IHB1Ymxp YyBEZXNrdG9wQ2FwdHVyZXIgeworICAgZ3VpbnQgc291cmNlc19yZXF1ZXN0X3NpZ25hbF9pZF8g PSAwOworICAgZ3VpbnQgc3RhcnRfcmVxdWVzdF9zaWduYWxfaWRfID0gMDsKKworKyAgYm9vbCB2 aWRlb19jcm9wX3NpemVfaW5pdGlhbGl6ZWRfID0gZmFsc2U7CisrICBEZXNrdG9wU2l6ZSB2aWRl b19jcm9wX3NpemVfOzsKKyAgIERlc2t0b3BTaXplIGRlc2t0b3Bfc2l6ZV8gPSB7fTsKKyAgIERl c2t0b3BDYXB0dXJlT3B0aW9ucyBvcHRpb25zXyA9IHt9OworCistICB1aW50OF90KiBjdXJyZW50 X2ZyYW1lXyA9IG51bGxwdHI7CisrICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBjdXJyZW50 X2ZyYW1lXzsKKyAgIENhbGxiYWNrKiBjYWxsYmFja18gPSBudWxscHRyOworCisgICBib29sIHBv cnRhbF9pbml0X2ZhaWxlZF8gPSBmYWxzZTsKKworICAgdm9pZCBJbml0UG9ydGFsKCk7CisgICB2 b2lkIEluaXRQaXBlV2lyZSgpOworLSAgdm9pZCBJbml0UGlwZVdpcmVUeXBlcygpOworCistICB2 b2lkIENyZWF0ZVJlY2VpdmluZ1N0cmVhbSgpOworKyAgcHdfc3RyZWFtKiBDcmVhdGVSZWNlaXZp bmdTdHJlYW0oKTsKKyAgIHZvaWQgSGFuZGxlQnVmZmVyKHB3X2J1ZmZlciogYnVmZmVyKTsKKwor ICAgdm9pZCBDb252ZXJ0UkdCeFRvQkdSeCh1aW50OF90KiBmcmFtZSwgdWludDMyX3Qgc2l6ZSk7 CisKKy0gIHN0YXRpYyB2b2lkIE9uU3RhdGVDaGFuZ2VkKHZvaWQqIGRhdGEsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwd19yZW1vdGVfc3RhdGUgb2xkX3N0YXRlLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHdfcmVtb3RlX3N0YXRlIHN0YXRlLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZXJyb3IpOworKyAgc3RhdGljIHZvaWQgU3lu Y0RtYUJ1ZihpbnQgZmQsIHVpbnQ2NF90IHN0YXJ0X29yX2VuZCk7CisrICBzdGF0aWMgdm9pZCBP bkNvcmVFcnJvcih2b2lkICpkYXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VxLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHJlcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm1lc3NhZ2UpOworKyAgc3RhdGljIHZvaWQgT25TdHJlYW1QYXJhbUNoYW5nZWQodm9p ZCAqZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlk LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNwYV9w b2QgKmZvcm1hdCk7CisgICBzdGF0aWMgdm9pZCBPblN0cmVhbVN0YXRlQ2hhbmdlZCh2b2lkKiBk YXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHdfc3RyZWFtX3N0YXRl IG9sZF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3X3N0cmVh bV9zdGF0ZSBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIqIGVycm9yX21lc3NhZ2UpOworLQorLSAgc3RhdGljIHZvaWQgT25TdHJlYW1Gb3JtYXRD aGFuZ2VkKHZvaWQqIGRhdGEsIGNvbnN0IHN0cnVjdCBzcGFfcG9kKiBmb3JtYXQpOworICAgc3Rh dGljIHZvaWQgT25TdHJlYW1Qcm9jZXNzKHZvaWQqIGRhdGEpOworICAgc3RhdGljIHZvaWQgT25O ZXdCdWZmZXIodm9pZCogZGF0YSwgdWludDMyX3QgaWQpOworCistLS0gbWVkaWEvd2VicnRjL3Ry dW5rL3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9zY3JlZW5fY2FwdHVyZXJf cGlwZXdpcmUuY2MKKysrKyBtZWRpYS93ZWJydGMvdHJ1bmsvd2VicnRjL21vZHVsZXMvZGVza3Rv cF9jYXB0dXJlL2xpbnV4L3NjcmVlbl9jYXB0dXJlcl9waXBld2lyZS5jYworQEAgLTE1LDcgKzE1 LDcgQEAKKyBuYW1lc3BhY2Ugd2VicnRjIHsKKworIFNjcmVlbkNhcHR1cmVyUGlwZVdpcmU6OlNj cmVlbkNhcHR1cmVyUGlwZVdpcmUoKQorLSAgICA6IEJhc2VDYXB0dXJlclBpcGVXaXJlKEJhc2VD YXB0dXJlclBpcGVXaXJlOjpDYXB0dXJlU291cmNlVHlwZTo6U2NyZWVuKSB7fQorKyAgICA6IEJh c2VDYXB0dXJlclBpcGVXaXJlKEJhc2VDYXB0dXJlclBpcGVXaXJlOjpDYXB0dXJlU291cmNlVHlw ZTo6a1NjcmVlbikge30KKyBTY3JlZW5DYXB0dXJlclBpcGVXaXJlOjp+U2NyZWVuQ2FwdHVyZXJQ aXBlV2lyZSgpIHt9CisKKyAvLyBzdGF0aWMKKy0tLSBtZWRpYS93ZWJydGMvdHJ1bmsvd2VicnRj L21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L3dpbmRvd19jYXB0dXJlcl9waXBld2lyZS5j YworKysrIG1lZGlhL3dlYnJ0Yy90cnVuay93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUv bGludXgvd2luZG93X2NhcHR1cmVyX3BpcGV3aXJlLmNjCitAQCAtMTUsNyArMTUsNyBAQAorIG5h bWVzcGFjZSB3ZWJydGMgeworCisgV2luZG93Q2FwdHVyZXJQaXBlV2lyZTo6V2luZG93Q2FwdHVy ZXJQaXBlV2lyZSgpCistICAgIDogQmFzZUNhcHR1cmVyUGlwZVdpcmUoQmFzZUNhcHR1cmVyUGlw ZVdpcmU6OkNhcHR1cmVTb3VyY2VUeXBlOjpXaW5kb3cpIHt9CisrICAgIDogQmFzZUNhcHR1cmVy UGlwZVdpcmUoQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkNhcHR1cmVTb3VyY2VUeXBlOjprV2luZG93 KSB7fQorIFdpbmRvd0NhcHR1cmVyUGlwZVdpcmU6On5XaW5kb3dDYXB0dXJlclBpcGVXaXJlKCkg e30KKworIC8vIHN0YXRpYworLS0tIG1lZGlhL3dlYnJ0Yy90cnVuay93ZWJydGMvbW9kdWxlcy9k ZXNrdG9wX2NhcHR1cmUvc2NyZWVuX2NhcHR1cmVyX2xpbnV4LmNjCisrKysgbWVkaWEvd2VicnRj L3RydW5rL3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9zY3JlZW5fY2FwdHVyZXJfbGlu dXguY2MKK0BAIC0yNiw3ICsyNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZXNrdG9wQ2FwdHVyZXI+ IERlc2t0b3BDYXB0dXJlcjo6Q3JlYXRlUmF3U2NyZWVuQ2FwdHVyZXIoCisgICAgIGNvbnN0IERl c2t0b3BDYXB0dXJlT3B0aW9ucyYgb3B0aW9ucykgeworICNpZiBkZWZpbmVkKFdFQlJUQ19VU0Vf UElQRVdJUkUpCisgICBpZiAob3B0aW9ucy5hbGxvd19waXBld2lyZSgpICYmIERlc2t0b3BDYXB0 dXJlcjo6SXNSdW5uaW5nVW5kZXJXYXlsYW5kKCkpIHsKKy0gICAgcmV0dXJuIFNjcmVlbkNhcHR1 cmVyUGlwZVdpcmU6OkNyZWF0ZVJhd1NjcmVlbkNhcHR1cmVyKG9wdGlvbnMpOworKyAgICByZXR1 cm4gQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkNyZWF0ZVJhd1NjcmVlbkNhcHR1cmVyKG9wdGlvbnMp OworICAgfQorICNlbmRpZiAgLy8gZGVmaW5lZChXRUJSVENfVVNFX1BJUEVXSVJFKQorCistLS0g bWVkaWEvd2VicnRjL3RydW5rL3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS93aW5kb3df Y2FwdHVyZXJfbGludXguY2MKKysrKyBtZWRpYS93ZWJydGMvdHJ1bmsvd2VicnRjL21vZHVsZXMv ZGVza3RvcF9jYXB0dXJlL3dpbmRvd19jYXB0dXJlcl9saW51eC5jYworQEAgLTI2LDcgKzI2LDcg QEAgc3RkOjp1bmlxdWVfcHRyPERlc2t0b3BDYXB0dXJlcj4gRGVza3RvcENhcHR1cmVyOjpDcmVh dGVSYXdXaW5kb3dDYXB0dXJlcigKKyAgICAgY29uc3QgRGVza3RvcENhcHR1cmVPcHRpb25zJiBv cHRpb25zKSB7CisgI2lmIGRlZmluZWQoV0VCUlRDX1VTRV9QSVBFV0lSRSkKKyAgIGlmIChvcHRp b25zLmFsbG93X3BpcGV3aXJlKCkgJiYgRGVza3RvcENhcHR1cmVyOjpJc1J1bm5pbmdVbmRlcldh eWxhbmQoKSkgeworLSAgICByZXR1cm4gV2luZG93Q2FwdHVyZXJQaXBlV2lyZTo6Q3JlYXRlUmF3 V2luZG93Q2FwdHVyZXIob3B0aW9ucyk7CisrICAgIHJldHVybiBCYXNlQ2FwdHVyZXJQaXBlV2ly ZTo6Q3JlYXRlUmF3V2luZG93Q2FwdHVyZXIob3B0aW9ucyk7CisgICB9CisgI2VuZGlmICAvLyBk ZWZpbmVkKFdFQlJUQ19VU0VfUElQRVdJUkUpCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmlyZWZv eC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmlyZWZveC90ZW1wbGF0ZQppbmRleCA2YTdlYmE4ZDk1Ny4u YTFmMzU3YzVhZjEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlyZWZveC90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2ZpcmVmb3gvdGVtcGxhdGUKQEAgLTE4LDcgKzE4LDcgQEAgbGliMzJkaXNhYmxlZD15 ZXMKIGhvc3RtYWtlZGVwZW5kcz0iYXV0b2NvbmYyMTMgdW56aXAgemlwIHBrZy1jb25maWcgcGVy bCBweXRob24zIHlhc20gcnVzdCBjYXJnbwogIGxsdm0gY2xhbmcgbm9kZWpzLWx0cy0xMCBjYmlu ZGdlbiBweXRob24gbmFzbSB3aGljaCB0YXIiCiBtYWtlZGVwZW5kcz0ibnNzLWRldmVsIGxpYmpw ZWctdHVyYm8tZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBpY3UtZGV2ZWwKLSBwaXhtYW4t ZGV2ZWwgbGliZXZlbnQtZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnZweC1kZXZlbAorIHBpeG1h bi1kZXZlbCBsaWJldmVudC1kZXZlbCBsaWJub3RpZnktZGV2ZWwgbGlidnB4LWRldmVsIHBpcGV3 aXJlLWRldmVsCiAgbGliWHJlbmRlci1kZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYlNNLWRl dmVsIGxpYlh0LWRldmVsIHJ1c3Qtc3RkCiAgbGliWGRhbWFnZS1kZXZlbCBmcmVldHlwZS1kZXZl bCAkKHZvcHRfaWYgYWxzYSBhbHNhLWxpYi1kZXZlbCkKICAkKHZvcHRfaWYgZGJ1cyBkYnVzLWds aWItZGV2ZWwpICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwpCg== --===============4769341651141133972==--