From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29697 invoked from network); 29 Aug 2021 00:26:55 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 29 Aug 2021 00:26:55 -0000 Content-Type: multipart/mixed; boundary="===============7838902039359332067==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_electron13-13=2E2=2E2?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 29 Aug 2021 02:26:55 +0200 List-Id: Message-ID: <20210829002655.jxMEqBMvsx0oMJcbO_ZfMC3H6qbEPCcAcQ5dQ6JYiMk@z> GitHub notification mails are now in MIME to allow UTF8. --===============7838902039359332067== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgSm9obm55bmF0b3IgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0pvaG5ueW5hdG9yL3ZvaWQtcGFja2FnZXMgZWxlY3Ryb24xMwpodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzExMzYKCmVsZWN0cm9uMTMtMTMuMi4yCjwh LS0gTWFyayBpdGVtcyB3aXRoIFt4XSB3aGVyZSBhcHBsaWNhYmxlIC0tPg0KDQojIyMjIEdlbmVy YWwNCi0gWyBdIFRoaXMgaXMgYSBuZXcgcGFja2FnZSBhbmQgaXQgY29uZm9ybXMgdG8gdGhlIFtx dWFsaXR5IHJlcXVpcmVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9ibG9iL21hc3Rlci9NYW51YWwubWQjcXVhbGl0eS1yZXF1aXJlbWVudHMpDQoNCiMj IyMgSGF2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgcHJvcG9zZWQgY2hhbmdlcyBiZWVuIHRlc3RlZD8N Ci0gWyBdIEkgdXNlIHRoZSBwYWNrYWdlcyBhZmZlY3RlZCBieSB0aGUgcHJvcG9zZWQgY2hhbmdl cyBvbiBhIHJlZ3VsYXIgYmFzaXMgYW5kIGNvbmZpcm0gdGhpcyBQUiB3b3JrcyBmb3IgbWUNCi0g WyBdIEkgZ2VuZXJhbGx5IGRvbid0IHVzZSB0aGUgYWZmZWN0ZWQgcGFja2FnZXMgYnV0IGJyaWVm bHkgdGVzdGVkIHRoaXMgUFINCg0KLSBUaGlzIGRvZXNuJ3QgY29tcGlsZSB5ZXQgb24gbXVzbCwg dGhleSBtb3ZlIGEgbG90IG9mIGRucyBzdHVmZiBmcm9tIGdlbmVyaWMgcG9zaXggdG8gYSBsaW51 eCBzcGVjaWZpYyBmaWxlLCB0aGF0IG9mYyBvbmx5IHdvcmtzIGZvciBnbGliYy4NCg0KW2NpIHNr aXBdDQoNCjwhLS0NCklmIEdpdEh1YiBDSSBjYW5ub3QgYmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUg YnVpbGQgcmVzdWx0IChmb3IgZXhhbXBsZSwgaWYgdGhlDQpidWlsZCBpcyBsaWtlbHkgdG8gdGFr ZSBzZXZlcmFsIGhvdXJzKSwgbWFrZSBzdXJlIHRvDQpbc2tpcCBDSV0oaHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQj Y29udGludW91cy1pbnRlZ3JhdGlvbikuDQpXaGVuIHNraXBwaW5nIENJLCB1bmNvbW1lbnQgYW5k IGZpbGwgb3V0IHRoZSBmb2xsb3dpbmcgc2VjdGlvbi4NCk5vdGU6IGZvciBidWlsZHMgdGhhdCBh cmUgbGlrZWx5IHRvIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAyIGhvdXJzLCBpdCBpcyBub3QNCmFj Y2VwdGFibGUgdG8gc2tpcCBDSS4NCi0tPg0KPCEtLSANCiMjIyMgRG9lcyBpdCBidWlsZCBhbmQg cnVuIHN1Y2Nlc3NmdWxseT8gDQooUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1 aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuIE1vcmUgYXJl IGJldHRlci4pDQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFy Y2hpdGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gWyBdIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZv ciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0K ICAtIFsgXSBhYXJjaDY0LW11c2wNCiAgLSBbIF0gYXJtdjdsDQogIC0gWyBdIGFybXY2bC1tdXNs DQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzMxMTM2LnBhdGNoIGlzIGF0dGFjaGVk --===============7838902039359332067== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron13-31136.patch" RnJvbSBlNmEyZmE2OTQ3ZWE5ZDJlYmQwYjc1MjRjODY5ZjVmNmFhZGI5YWY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFdlZCwg MjYgTWF5IDIwMjEgMjE6Mzg6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvM10gTmV3IHBhY2th Z2U6IGVsZWN0cm9uMTMtMTMuMi4yCgotLS0KIC4uLi9jaHJvbWl1bS1kZWZhdWx0LXB0aHJlYWQt c3RhY2tzaXplLnBhdGNoICB8ICAgMjkgKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs LWNyYXNocGFkLnBhdGNoIHwgICAyMyArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wt ZG5zLnBhdGNoICAgICAgfCAgIDMyICsKIC4uLi9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1m aXhlcy5wYXRjaCAgICB8ICAyMTIgKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWhh Y2tzLnBhdGNoICAgIHwgICAzNCArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtbGli YysrLnBhdGNoICAgfCAgIDU1ICsKIC4uLi9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1zYW5k Ym94LnBhdGNoICB8ICAgOTIgKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXN5bmMu cGF0Y2ggICAgIHwgICAzMCArCiAuLi4vY2hyb21pdW0tbXVzbC14eHgtcHBjNjRsZS5wYXRjaCAg ICAgICAgICAgfCAgMTkwICsKIC4uLi9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbm8tbWFsbGluZm8u cGF0Y2ggICB8ICAgNTQgKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1yZXNvbHZlci5wYXRj aCAgICAgIHwgICAzOCArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1icm93c2VyLXNpemVfdC5wYXRj aCAgICAgfCAgIDEwICsKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBh dGNoICB8ICAgMjYgKwogLi4uLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBh dGNoIHwgICAyNCArCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1uby1leGVjaW5mby5wYXRj aCAgfCAgIDcyICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLW5vLWdldGNvbnRleHQucGF0Y2ggICAg ICB8ICAgMjcgKwogLi4uL2Nocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNo IHwgICAxNSArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gg fCAgIDEwICsKIC4uLi9jaHJvbWl1bS1zYW5kYm94LXNjaGVkX2dldHBhcmFtLnBhdGNoICAgICB8 ICAgMjAgKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc25kaW8ucGF0Y2ggICAgICAgIHwg IDg4NiArKysrCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoICAgICAg fCAgIDIwICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLXdlYnJ0Yy1pbmNsdWRlLnBhdGNoICAgICB8 ICAgMTAgKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0td2VicnRjLXIwLnBhdGNoICAgIHwg ICAzMyArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoICAgICAgfCAg IDEwICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRjaCB8ICAg NzIgKwogLi4uL2Nocm9taXVtLXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggICAgICAgIHwgMzcw NyArKysrKysrKysrKysrKysrKwogLi4uL2Nocm9taXVtLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVy LnBhdGNoICAgIHwgICAxOCArCiAuLi5hLXNjcmlwdC10by1saXN0LXBhdGNoLXRhcmdldHMucGF0 Y2gucGF0Y2ggfCAgIDQyICsKIC4uLi9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNo LnBhdGNoICB8ICAgNDcgKwogLi4uZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24y LnBhdGNoIHwgICAxNyArCiAuLi5sZWN0cm9uLWV4Y2x1ZGUtY29udGVudC10ZXN0LXBhdGNoZXMu cGF0Y2ggfCAgIDEwICsKIC4uLi9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2Mg ICAgICB8ICAxNDggKwogLi4uL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJz ZC5oIHwgICA2NSArCiAuLi4vZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuY2MgICAgICAg ICAgfCAgMjAwICsKIC4uLi9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5oICAgICAgICAg ICB8ICAgOTEgKwogLi4uL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5jYyAgICAgICAg IHwgIDE4MyArCiAuLi4vZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0LmggICAgICAgICAg fCAgIDg2ICsKIC4uLmFfYXVkaW9fbGludXhfYXVkaW9fbWFuYWdlcl9saW51eC5jYy5wYXRjaCB8 ICAgNDMgKwogLi4uc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX0JVSUxELmduLnBhdGNoIHwg ICAxMiArCiAuLi5kcGFydHlfY2hyb21pdW1fbWVkaWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2ggfCAg IDIzICsKIC4uLnR5X2Nocm9taXVtX21lZGlhX21lZGlhX19vcHRpb25zLmduaS5wYXRjaCB8ICAg MTIgKwogc3JjcGtncy9lbGVjdHJvbjEzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgIHwgIDM3 NyArKwogc3JjcGtncy9lbGVjdHJvbjEzL3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAg MiArCiA0MyBmaWxlcyBjaGFuZ2VkLCA3MTA3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLWRlZmF1 bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Vs ZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2wtZG5zLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsLWhhY2tzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWxpYmMrKy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbC1zYW5kYm94LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXN5bmMucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2wteHh4LXBwYzY0bGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW5vLW1hbGxpbmZvLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1yZXNvbHZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24x My9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWJyb3dzZXItc2l6ZV90LnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19t YWxsb2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tbm8tZXhlY2luZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1uby1nZXRjb250ZXh0LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJp ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1zYW5kYm94LXNjaGVkX2dldHBhcmFtLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc25kaW8ucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0td2VicnRjLWluY2x1ZGUucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS13ZWJydGMtcjAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0 bGUtbGlidnB4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXh4eC1w cGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjEzL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gt dGFyZ2V0cy5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24x My9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9u dC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1leGNsdWRlLWNvbnRlbnQtdGVz dC1wYXRjaGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEzL2Zp bGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29w ZW5ic2QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRp by1maWxlcy9zbmRpb19pbnB1dC5jYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ry b24xMy9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5jYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRpby1maWxlcy9zbmRp b19vdXRwdXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9z bmRpby1wYXRjaGVzL21lZGlhX2F1ZGlvX2xpbnV4X2F1ZGlvX21hbmFnZXJfbGludXguY2MucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tcGF0 Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3Jk cGFydHlfY2hyb21pdW1fbWVkaWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlf Y2hyb21pdW1fbWVkaWFfbWVkaWFfX29wdGlvbnMuZ25pLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9lbGVjdHJvbjEzL3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjEzL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxl cy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaCBi L3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tZGVmYXVsdC1w dGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjE2ZTRkMjFlNmVkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24x My9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5w YXRjaApAQCAtMCwwICsxLDI5IEBACistLS0gYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFk X2xpbnV4LmNjLm9yaWcKKysrKyBiYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXgu Y2MKK0BAIC05OSArOTksMiBAQCBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25z dCBwCistICByZXR1cm4gMDsKKysgIC8vIHVzZSA4bWIgbGlrZSBnbGliYyB0byBhdm9pZCBydW5u aW5nIG91dCBvZiBzcGFjZQorKyAgcmV0dXJuICgxIDw8IDIzKTsKKy0tLSBjaHJvbWUvYXBwL3No dXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYy5vcmlnCisrKysgY2hyb21lL2FwcC9zaHV0 ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXguY2MKK0BAIC0xODQsMTEgKzE4NCwxOSBAQAorICAg Z19zaHV0ZG93bl9waXBlX3JlYWRfZmQgPSBwaXBlZmRbMF07CisgICBnX3NodXRkb3duX3BpcGVf d3JpdGVfZmQgPSBwaXBlZmRbMV07CisgI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKQor KyMgaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBjb25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0 b3JUaHJlYWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01JTiAqIDI7CisrIyBlbHNlCisrICBj b25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJlYWRTdGFja1NpemUgPSBQVEhSRUFEX1NU QUNLX01JTiAqIDIgKiA4OyAvLyBtYXRjaCB1cCBtdXNscyAyayBQVEhSRUFEX1NUQUNLX01JTiB3 aXRoIGdsaWJjcyAxNmsKKysjIGVuZGlmCisgI2Vsc2UKKyAgIC8vIEFTYW4gaW5zdHJ1bWVudGF0 aW9uIGJsb2F0cyB0aGUgc3RhY2sgZnJhbWVzLCBzbyB3ZSBuZWVkIHRvIGluY3JlYXNlIHRoZQor ICAgLy8gc3RhY2sgc2l6ZSB0byBhdm9pZCBoaXR0aW5nIHRoZSBndWFyZCBwYWdlLgorKyMgaWYg ZGVmaW5lZChfX0dMSUJDX18pCisgICBjb25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJl YWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01JTiAqIDQ7CisrIyBlbHNlCisrICBjb25zdCBz aXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJlYWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01J TiAqIDQgKiA4OyAvLyBtYXRjaCB1cCBtdXNscyAyayBQVEhSRUFEX1NUQUNLX01JTiB3aXRoIGds aWJjcyAxNmsKKysjIGVuZGlmCisgI2VuZGlmCisgICBTaHV0ZG93bkRldGVjdG9yKiBkZXRlY3Rv ciA9IG5ldyBTaHV0ZG93bkRldGVjdG9yKAorICAgICAgIGdfc2h1dGRvd25fcGlwZV9yZWFkX2Zk LCBzaHV0ZG93bl9jYWxsYmFjaywgdGFza19ydW5uZXIpOworCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wt Y3Jhc2hwYWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4w M2EwYzA2ZjNjYTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKQEAgLTAsMCArMSwyMyBA QAorLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5j YworKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5j YworQEAgLTI2LDYgKzI2LDcgQEAKKyAKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZ KQorICNpbmNsdWRlIDxhc20vbGR0Lmg+CisrI2luY2x1ZGUgPGFzbS9wdHJhY2UtYWJpLmg+Cisg I2VuZGlmCisgCisgbmFtZXNwYWNlIGNyYXNocGFkIHsKKworLS0tIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKKysrKyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3B0cmFjZS5oCitAQCAtMTcsNyArMTcs OSBAQAorIAorICNpbmNsdWRlX25leHQgPHN5cy9wdHJhY2UuaD4KKyAKKysjaWYgZGVmaW5lZChf X0dMSUJDX18pCisgI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorKyNlbmRpZgorIAorIC8vIGh0dHBz Oi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIyNDMzCisgI2lmICFk ZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmICFkZWZpbmVkKFBUX0dFVF9USFJFQURf QVJFQSkgJiYgXApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsLWRucy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1kbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi41N2NjMGFjNmMxOGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZG5zLnBhdGNo CkBAIC0wLDAgKzEsMzIgQEAKKy0tLSBuZXQvZmVhdHVyZXMuZ25pCTIwMjEtMDUtMjAgMDQ6MTc6 MTEuMDAwMDAwMDAwICswMjAwCisrKysgLQkyMDIxLTA1LTI2IDE2OjAzOjI1LjgyNjExMzYwOCAr MDIwMAorQEAgLTI4LDYgKzI4LDkgQEAKKyAgICMgUmVwb3J0aW5nIG5vdCB1c2VkIG9uIGlPUy4K KyAgIGVuYWJsZV9yZXBvcnRpbmcgPSAhaXNfaW9zCisgCisrICAjIEZvcmNlIFBvc2l4IGRucyBj b25maWcKKysgIGZvcmNlX3Bvc2l4X2RucyA9IHRydWUKKysKKyAgICMgSW5jbHVkZXMgdGhlIHRy YW5zcG9ydCBzZWN1cml0eSBzdGF0ZSBwcmVsb2FkIGxpc3QuIFRoaXMgbGlzdCBpbmNsdWRlcwor ICAgIyBtZWNoYW5pc21zIChlLmcuIEhTVFMsIEhQS1ApIHRvIGVuZm9yY2UgdHJ1c3RlZCBjb25u ZWN0aW9ucyB0byBhIHNpZ25pZmljYW50CisgICAjIHNldCBvZiBoYXJkY29kZWQgZG9tYWlucy4g V2hpbGUgdGhpcyBsaXN0IGhhcyBhIHNldmVyYWwgaHVuZHJlZCBLQiBvZiBiaW5hcnkKKy0tLSBu ZXQvZG5zL0JVSUxELmduCTIwMjEtMDUtMjAgMDQ6MTc6MTEuMDAwMDAwMDAwICswMjAwCisrKysg LQkyMDIxLTA1LTI2IDE2OjA1OjAxLjUxMDYyMjEwMiArMDIwMAorQEAgLTExNCw3ICsxMTQsNyBA QAorICAgICAgICAgImRuc19jb25maWdfc2VydmljZV9hbmRyb2lkLmNjIiwKKyAgICAgICAgICJk bnNfY29uZmlnX3NlcnZpY2VfYW5kcm9pZC5oIiwKKyAgICAgICBdCistICAgIH0gZWxzZSBpZiAo aXNfbGludXgpIHsKKysgICAgfSBlbHNlIGlmIChpc19saW51eCAmJiAhZm9yY2VfcG9zaXhfZG5z KSB7CisgICAgICAgc291cmNlcyArPSBbCisgICAgICAgICAiZG5zX2NvbmZpZ19zZXJ2aWNlX2xp bnV4LmNjIiwKKyAgICAgICAgICJkbnNfY29uZmlnX3NlcnZpY2VfbGludXguaCIsCitAQCAtNDMz LDcgKzQzMyw3IEBACisgCisgICBpZiAoaXNfYW5kcm9pZCkgeworICAgICBzb3VyY2VzICs9IFsg ImRuc19jb25maWdfc2VydmljZV9hbmRyb2lkX3VuaXR0ZXN0LmNjIiBdCistICB9IGVsc2UgaWYg KGlzX2xpbnV4KSB7CisrICB9IGVsc2UgaWYgKGlzX2xpbnV4ICYmICFmb3JjZV9wb3NpeF9kbnMp IHsKKyAgICAgc291cmNlcyArPSBbICJkbnNfY29uZmlnX3NlcnZpY2VfbGludXhfdW5pdHRlc3Qu Y2MiIF0KKyAgIH0gZWxzZSBpZiAoaXNfcG9zaXgpIHsKKyAgICAgc291cmNlcyArPSBbICJkbnNf Y29uZmlnX3NlcnZpY2VfcG9zaXhfdW5pdHRlc3QuY2MiIF0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1maXhlcy5wYXRjaCBi L3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1maXhl cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcyOGYyYjQ3 M2NlMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbC1maXhlcy5wYXRjaApAQCAtMCwwICsxLDIxMiBAQAorLS0tIC4v dGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oLm9yaWcKKysrKyAuL3RoaXJk X3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorQEAgLTExMjcsNiArMTEyNywxMiBA QAorICNpZm5kZWYgX19OUl9mYWxsb2NhdGUKKyAjZGVmaW5lIF9fTlJfZmFsbG9jYXRlICAgICAg ICAgIDI4NQorICNlbmRpZgorKworKyN1bmRlZiBfX05SX3ByZWFkCisrI2RlZmluZSBfX05SX3By ZWFkIF9fTlJfcHJlYWQ2NAorKyN1bmRlZiBfX05SX3B3cml0ZQorKyNkZWZpbmUgX19OUl9wd3Jp dGUgX19OUl9wd3JpdGU2NAorKworIC8qIEVuZCBvZiB4ODYtNjQgZGVmaW5pdGlvbnMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAjZWxpZiBkZWZp bmVkKF9fbWlwc19fKQorICNpZiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTMyCistLS0gLi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaC5vcmlnCisrKysgLi90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuaAorQEAgLTM3LDYgKzM3LDEwIEBACisgI2luY2x1ZGUgImNvbW1vbi9tZW1vcnkuaCIK KyAjaW5jbHVkZSAiZ29vZ2xlX2JyZWFrcGFkL2NvbW1vbi9taW5pZHVtcF9mb3JtYXQuaCIKKyAK KysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKwkjZGVmaW5lIF9saWJjX2Zwc3RhdGUgX2Zwc3Rh dGUKKysjZW5kaWYKKysKKyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkIHsKKyAKKyAvLyBXcmFw cyBwbGF0Zm9ybS1kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIG9mIGFjY2Vzc29ycyB0byB1Y29u dGV4dF90IHN0cnVjdHMuCistLS0gLi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaC5vcmlnCisrKysgLi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaAorQEAgLTM2LDYg KzM2LDcgQEAKKyAjaW5jbHVkZSA8ZWxmLmg+CisgI2luY2x1ZGUgPGxpbmsuaD4KKyAjaW5jbHVk ZSA8c3RkZGVmLmg+CisrI2luY2x1ZGUgPGxpbWl0cy5oPgorIAorICNpbmNsdWRlICJjb21tb24v bWVtb3J5X3JhbmdlLmgiCisgCistLS0gLi9zYW5kYm94L2xpbnV4L3N1aWQvcHJvY2Vzc191dGls Lmgub3JpZworKysrIC4vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCitAQCAtMTEs NiArMTEsMTQgQEAKKyAjaW5jbHVkZSA8c3RkYm9vbC5oPgorICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKyAKKysvLyBTb21lIGFkZGl0aW9uYWwgZnVuY3Rpb25zCisrIyBkZWZpbmUgVEVNUF9GQUlM VVJFX1JFVFJZKGV4cHJlc3Npb24pIFwKKysJKF9fZXh0ZW5zaW9uX18JCQlcCisrCSAoeyBsb25n IGludCBfX3Jlc3VsdDsJCVwKKysJICBkbyBfX3Jlc3VsdCA9IChsb25nIGludCkgKGV4cHJlc3Np b24pOyBcCisrCSAgd2hpbGUgKF9fcmVzdWx0ID09IC0xTCAmJiBlcnJubyA9PSBFSU5UUik7IFwK KysJICBfX3Jlc3VsdDsgfSkpCisrCisgLy8gVGhpcyBhZGp1c3RzIC9wcm9jL3Byb2Nlc3Mvb29t X3Njb3JlX2FkaiBzbyB0aGUgTGludXggT09NIGtpbGxlcgorIC8vIHdpbGwgcHJlZmVyIGNlcnRh aW4gcHJvY2VzcyB0eXBlcyBvdmVyIG90aGVycy4gVGhlIHJhbmdlIGZvciB0aGUKKyAvLyBhZGp1 c3RtZW50IGlzIFstMTAwMCwgMTAwMF0sIHdpdGggWzAsIDEwMDBdIGJlaW5nIHVzZXIgYWNjZXNz aWJsZS4KKy0tLSAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYy5vcmlnCTIwMjAt MDQtMTIgMDg6MjY6NDAuMTg0MTU5MjE3IC0wNDAwCisrKysgLi9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmL3RyYXAuY2MJMjAyMC0wNC0xMiAwODo0NjoxNi43MzcxOTEyMjIgLTA0MDAKK0BAIC0x NzQsNyArMTc0LDcgQEAKKyAgIC8vIElmIHRoZSB2ZXJzaW9uIG9mIGdsaWJjIGRvZXNuJ3QgaW5j bHVkZSB0aGlzIGluZm9ybWF0aW9uIGluCisgICAvLyBzaWdpbmZvX3QgKG9sZGVyIHRoYW4gMi4x NyksIHdlIG5lZWQgdG8gZXhwbGljaXRseSBjb3B5IGl0CisgICAvLyBpbnRvIGFuIGFyY2hfc2ln c3lzIHN0cnVjdHVyZS4KKy0gIG1lbWNweSgmc2lnc3lzLCAmaW5mby0+X3NpZmllbGRzLCBzaXpl b2Yoc2lnc3lzKSk7CisrICBtZW1jcHkoJnNpZ3N5cywgJmluZm8tPl9fc2lmaWVsZHMsIHNpemVv ZihzaWdzeXMpKTsKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX21pcHNfXykKKy0tLSAuL3Ro aXJkX3BhcnR5L2ZmbXBlZy9saWJhdnV0aWwvY3B1LmMub3JpZworKysrIC4vdGhpcmRfcGFydHkv ZmZtcGVnL2xpYmF2dXRpbC9jcHUuYworQEAgLTM4LDcgKzM4LDYgQEAKKyAjaW5jbHVkZSA8c3lz L3BhcmFtLmg+CisgI2VuZGlmCisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxz eXMvc3lzY3RsLmg+CisgI2VuZGlmCisgI2lmIEhBVkVfVU5JU1REX0gKKyAjaW5jbHVkZSA8dW5p c3RkLmg+CitkaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJvbWVfYnJvd3Nl cl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3MuY2MgYi9jaHJvbWUvYnJvd3Nlci9tZXRyaWNzL2No cm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYworLS0tIGNocm9tZS9icm93 c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0c19tZXRyaWNzLmNjLm9y aWcJMjAyMS0wMy0xMCAwNzoyMzowMC4xNDU4MTAwODggLTA1MDAKKysrKyBjaHJvbWUvYnJvd3Nl ci9tZXRyaWNzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYwkyMDIx LTAzLTEwIDEwOjU3OjE5LjQwNTk2MjY3MSAtMDUwMAorQEAgLTU1LDcgKzU1LDkgQEAKKyAvLyBU T0RPKGNyYnVnLmNvbS8xMDUyMzk3KTogUmV2aXNpdCB0aGUgbWFjcm8gZXhwcmVzc2lvbiBvbmNl IGJ1aWxkIGZsYWcgc3dpdGNoCisgLy8gb2YgbGFjcm9zLWNocm9tZSBpcyBjb21wbGV0ZS4KKyAj aWYgZGVmaW5lZChPU19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TX0xBQ1JPUykKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KKysj ZW5kaWYKKyAKKyAjaW5jbHVkZSAiYmFzZS9saW51eF91dGlsLmgiCisgI2luY2x1ZGUgImJhc2Uv c3RyaW5ncy9zdHJpbmdfc3BsaXQuaCIKK0BAIC0zMTYsNyArMzE4LDcgQEAKKyB2b2lkIFJlY29y ZExpbnV4R2xpYmNWZXJzaW9uKCkgeworIC8vIFRPRE8oY3JidWcuY29tLzEwNTIzOTcpOiBSZXZp c2l0IHRoZSBtYWNybyBleHByZXNzaW9uIG9uY2UgYnVpbGQgZmxhZyBzd2l0Y2gKKyAvLyBvZiBs YWNyb3MtY2hyb21lIGlzIGNvbXBsZXRlLgorLSNpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBCVUlM REZMQUcoSVNfQ0hST01FT1NfTEFDUk9TKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgQlVJ TERGTEFHKElTX0NIUk9NRU9TX0xBQ1JPUykKKyAgIGJhc2U6OlZlcnNpb24gdmVyc2lvbihnbnVf Z2V0X2xpYmNfdmVyc2lvbigpKTsKKyAKKyAgIFVNQUxpbnV4R2xpYmNWZXJzaW9uIGdsaWJjX3Zl cnNpb25fcmVzdWx0ID0gVU1BX0xJTlVYX0dMSUJDX05PVF9QQVJTRUFCTEU7CistLS0gc2Vydmlj ZXMvZGV2aWNlL3NlcmlhbC9zZXJpYWxfaW9faGFuZGxlcl9wb3NpeC5jYy5vcmlnCTIwMTktMDct MDMgMTA6NTc6MzIuNTY4MTcxODM1IC0wNDAwCisrKysgc2VydmljZXMvZGV2aWNlL3NlcmlhbC9z ZXJpYWxfaW9faGFuZGxlcl9wb3NpeC5jYwkyMDE5LTA3LTAzIDEwOjU3OjE2Ljg2Nzk4MzAzMSAt MDQwMAorQEAgLTYsNiArNiw3IEBACisgCisgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorICNpbmNs dWRlIDx0ZXJtaW9zLmg+CisrI2luY2x1ZGUgPGFzbS1nZW5lcmljL2lvY3Rscy5oPgorIAorICNp bmNsdWRlIDxhbGdvcml0aG0+CisgI2luY2x1ZGUgPHV0aWxpdHk+CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvb3RzL2luY2x1ZGUvb3BlbnR5cGUtc2FuaXRpc2VyLmggYi90aGlyZF9wYXJ0eS9v dHMvaW5jbHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaAorLS0tIHRoaXJkX3BhcnR5L290cy9zcmMv aW5jbHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaAorKysrIHRoaXJkX3BhcnR5L290cy9zcmMvaW5j bHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaAorQEAgLTIwLDYgKzIwLDcgQEAgdHlwZWRlZiB1bnNp Z25lZCBfX2ludDY0IHVpbnQ2NF90OworICNkZWZpbmUgaHRvbmwoeCkgX2J5dGVzd2FwX3Vsb25n ICh4KQorICNkZWZpbmUgaHRvbnMoeCkgX2J5dGVzd2FwX3VzaG9ydCAoeCkKKyAjZWxzZQorKyNp bmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisgI2luY2x1ZGUg PHN0ZGludC5oPgorICNlbmRpZgorLS0tIC4vYmFzZS9sb2dnaW5nLmNjLm9yaWcJMjAyMS0wMS0y MCAxMjowOTo1NC4yMjcwMzg3NTcgLTA1MDAKKysrKyAuL2Jhc2UvbG9nZ2luZy5jYwkyMDIxLTAx LTIwIDEyOjI0OjMyLjYwMDMwMTM1MSAtMDUwMAorQEAgLTU1Nyw4ICs1NTcsNyBAQAorIAorIExv Z01lc3NhZ2U6On5Mb2dNZXNzYWdlKCkgeworICAgc2l6ZV90IHN0YWNrX3N0YXJ0ID0gc3RyZWFt Xy50ZWxscCgpOworLSNpZiAhZGVmaW5lZChPRkZJQ0lBTF9CVUlMRCkgJiYgIWRlZmluZWQoT1Nf TkFDTCkgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgXAorLSAgICAhZGVmaW5lZChPU19BSVgp CisrI2lmICFkZWZpbmVkKE9GRklDSUFMX0JVSUxEKSAmJiAhZGVmaW5lZChPU19OQUNMKSAmJiBk ZWZpbmVkKF9fR0xJQkNfXykKKyAgIGlmIChzZXZlcml0eV8gPT0gTE9HR0lOR19GQVRBTCAmJiAh YmFzZTo6ZGVidWc6OkJlaW5nRGVidWdnZWQoKSkgeworICAgICAvLyBJbmNsdWRlIGEgc3RhY2sg dHJhY2Ugb24gYSBmYXRhbCwgdW5sZXNzIGEgZGVidWdnZXIgaXMgYXR0YWNoZWQuCisgICAgIGJh c2U6OmRlYnVnOjpTdGFja1RyYWNlIHN0YWNrX3RyYWNlOworLS0tIC4vdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2Mub3JpZworKysrIC4vdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MKK0BAIC0yOCw3 ICsyOCw3IEBACisgLy8gRklYTUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0aGlzIG1ldGhvZCBj YW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6ZQorIC8vIGNvcnJlY3RseSBmb3IgdGhlIG1haW4gdGhy ZWFkLgorIAorLSNlbGlmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQp IHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwgXAorKyNlbGlmIGRlZmluZWQoT1NfTElOVVgpIHx8 IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisgICAgIGRl ZmluZWQoT1NfRlVDSFNJQSkKKyAgIC8vIHB0aHJlYWRfZ2V0YXR0cl9ucCgpIGNhbiBmYWlsIGlm IHRoZSB0aHJlYWQgaXMgbm90IGludm9rZWQgYnkKKyAgIC8vIHB0aHJlYWRfY3JlYXRlKCkgKGUu Zy4sIHRoZSBtYWluIHRocmVhZCBvZiBibGlua191bml0dGVzdHMpLgorQEAgLTk2LDcgKzk2LDcg QEAKKyB9CisgCisgdm9pZCogR2V0U3RhY2tTdGFydCgpIHsKKy0jaWYgZGVmaW5lZChfX0dMSUJD X18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisr I2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChP U19GUkVFQlNEKSB8fCBcCisgICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAgIHB0aHJlYWRfYXR0 cl90IGF0dHI7CisgICBpbnQgZXJyb3I7CistLS0gLi9uZXQvZG5zL2Ruc19jb25maWdfc2Vydmlj ZV9wb3NpeC5jYy5vcmlnCisrKysgLi9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5j YworQEAgLTEyMiw3ICsxMjIsNyBAQAorICAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCByZXN1bHQ7 CisgICBjb25maWctPnVuaGFuZGxlZF9vcHRpb25zID0gZmFsc2U7CisgLy8gVE9ETyhmdWNoc2lh KTogVXNlIHJlc19uaW5pdCgpIHdoZW4gaXQncyBpbXBsZW1lbnRlZCBvbiBGdWNoc2lhLgorLSNp ZiBkZWZpbmVkKE9TX09QRU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWYgZGVmaW5l ZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IGRlZmluZWQoX0dOVV9TT1VS Q0UpCisgICAvLyBOb3RlOiByZXNfbmluaXQgaW4gZ2xpYmMgYWx3YXlzIHJldHVybnMgMCBhbmQg c2V0cyBSRVNfSU5JVC4KKyAgIC8vIHJlc19pbml0IGJlaGF2ZXMgdGhlIHNhbWUgd2F5LgorICAg bWVtc2V0KCZfcmVzLCAwLCBzaXplb2YoX3JlcykpOworLS0tIHRoaXJkX3BhcnR5L3N3aWZ0c2hh ZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9saWIvU3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5j Lm9yaWcJMjAxOS0wNi0xOCAxMTo1MToxNy4wMDAwMDAwMDAgLTA0MDAKKysrKyB0aGlyZF9wYXJ0 eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vbGliL1N1cHBvcnQvVW5peC9T aWduYWxzLmluYwkyMDE5LTA3LTAzIDEyOjMyOjUwLjkzODc1ODE4NiAtMDQwMAorQEAgLTI1LDcg KzI1LDcgQEAKKyAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L3Jhd19vc3RyZWFtLmgiCisgI2luY2x1 ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8c3RyaW5nPgorLSNpZiBIQVZFX0VYRUNJTkZPX0gK KysjaWYgSEFWRV9FWEVDSU5GT19IICYmIGRlZmluZWQoX19HTElCQ19fKQorICMgaW5jbHVkZSA8 ZXhlY2luZm8uaD4gICAgICAgICAvLyBGb3IgYmFja3RyYWNlKCkuCisgI2VuZGlmCisgI2lmIEhB VkVfU0lHTkFMX0gKK0BAIC01Miw2ICs1Miw3IEBACisgI2luY2x1ZGUgPHVud2luZC5oPgorICNl bHNlCisgI3VuZGVmIEhBVkVfX1VOV0lORF9CQUNLVFJBQ0UKKysjdW5kZWYgSEFWRV9CQUNLVFJB Q0UKKyAjZW5kaWYKKyAjZW5kaWYKKyAKKy0tLSB0aGlyZF9wYXJ0eS9uYXNtL25hc21saWIvcmVh bHBhdGguYy5vcmlnCTIwMTktMDctMDMgMTI6MjM6MDUuMDIxOTQ5ODk1IC0wNDAwCisrKysgdGhp cmRfcGFydHkvbmFzbS9uYXNtbGliL3JlYWxwYXRoLmMJMjAxOS0wNy0wMyAxMjoyNDoyNC4yNDY4 NjI2NjUgLTA0MDAKK0BAIC00OSw3ICs0OSw3IEBACisgCisgI2luY2x1ZGUgIm5hc21saWIuaCIK KyAKKy0jaWZkZWYgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FCisrI2lmIGRlZmluZWQoX19H TElCQ19fKQorIAorIC8qCisgICogR05VLXNwZWNpZmljLCBidXQgYXZvaWRzIHRoZSByZWFscGF0 aCguLi4sIE5VTEwpCistLS0gdGhpcmRfcGFydHkvcGVyZmV0dG8vaW5jbHVkZS9wZXJmZXR0by9l eHQvYmFzZS90aHJlYWRfdXRpbHMuaAorKysrIHRoaXJkX3BhcnR5L3BlcmZldHRvL2luY2x1ZGUv cGVyZmV0dG8vZXh0L2Jhc2UvdGhyZWFkX3V0aWxzLmgKK0BAIC0yOSw3ICsyOSw3IEBACisgI2lu Y2x1ZGUgPGFsZ29yaXRobT4KKyAjZW5kaWYKKyAKKy0jaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBF UkZFVFRPX09TX0FORFJPSUQpCisrI2lmIDEKKyAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CisgI2Vu ZGlmCisgCitAQCAtNTgsNyArNTgsNyBAQCBpbmxpbmUgYm9vbCBNYXliZVNldFRocmVhZE5hbWUo Y29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUpIHsKKyAKKyBpbmxpbmUgYm9vbCBHZXRUaHJlYWROYW1l KHN0ZDo6c3RyaW5nJiBvdXRfcmVzdWx0KSB7CisgICBjaGFyIGJ1ZlsxNl0gPSB7fTsKKy0jaWYg UEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0FORFJPSUQpCisrI2lmIDEKKyAgIGlmIChw cmN0bChQUl9HRVRfTkFNRSwgYnVmKSAhPSAwKQorICAgICByZXR1cm4gZmFsc2U7CisgI2Vsc2UK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbC1oYWNrcy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNo ZXMvY2hyb21pdW0tbXVzbC1oYWNrcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjRiNGU5Njk1YTlkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1oYWNrcy5wYXRjaApAQCAt MCwwICsxLDM0IEBACistLS0gYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYy5vcmlnCTIwMTgtMTIt MDggMTQ6MTE6MjUuMzAzNDc1MTE2ICswMTAwCisrKysgYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5j YwkyMDE4LTEyLTA4IDE4OjAwOjQzLjg3NDk0Njk5OSArMDEwMAorQEAgLTIyOSw3ICsyMjksNyBA QAorIH0KKyBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZ1dpdGhQcmVmaXgoY29uc3Qg Y2hhciogcHJlZml4X3N0cmluZykgY29uc3QgeworICAgc3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFt OworLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91dHB1dFRvU3RyZWFtV2l0aFBy ZWZpeCgmc3RyZWFtLCBwcmVmaXhfc3RyaW5nKTsKKyAjZW5kaWYKKyAgIHJldHVybiBzdHJlYW0u c3RyKCk7CistLS0gbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjLm9yaWcJMjAxOS0wNy0w MyAxMzoxMzo0Ni4wMzQzNDI2NDkgLTA0MDAKKysrKyBuZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9z aXguY2MJMjAxOS0wNy0wMyAxMzoyMzo1My4xMTcwODE5MDkgLTA0MDAKK0BAIC0xMTk0LDcgKzEx OTQsNyBAQAorICAgICBtc2dfaW92LT5wdXNoX2JhY2soe2NvbnN0X2Nhc3Q8Y2hhcio+KGJ1ZmZl ci0+ZGF0YSgpKSwgYnVmZmVyLT5sZW5ndGgoKX0pOworICAgbXNndmVjLT5yZXNlcnZlKGJ1ZmZl cnMuc2l6ZSgpKTsKKyAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgYnVmZmVycy5zaXplKCk7IGor KykKKy0gICAgbXNndmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwg bnVsbHB0ciwgMCwgMH0sIDB9KTsKKysgICAgbXNndmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAw LCAmbXNnX2lvdltqXSwgMSwgMCwgMCwgMH0sIDB9KTsKKyAgIGludCByZXN1bHQgPSBIQU5ETEVf RUlOVFIoU2VuZG1tc2coZmQsICZtc2d2ZWNbMF0sIGJ1ZmZlcnMuc2l6ZSgpLCAwKSk7CisgICBT ZW5kUmVzdWx0IHNlbmRfcmVzdWx0KDAsIDAsIHN0ZDo6bW92ZShidWZmZXJzKSk7CisgICBpZiAo cmVzdWx0IDwgMCkgeworLS0tIGJhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MgICAyMDIxLTA1LTI1 IDAwOjA1OjMxLjAwMDAwMDAwMCArMDIwMAorKysrIC0gICAyMDIxLTA1LTI3IDEzOjQ2OjQzLjc0 MDM4MDE0MCArMDIwMAorQEAgLTIxNyw3ICsyMTcsOSBAQAorIH0KKyAKKyB2b2lkIFN0YWNrVHJh Y2U6Ok91dHB1dFRvU3RyZWFtKHN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKysjaWYgZGVmaW5l ZChfX0dMSUJDX18pCisgICBPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgob3MsIG51bGxwdHIpOwor KyNlbmRpZgorIH0KKyAKKyBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNvbnN0 IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbC1saWJjKysucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2wtbGliYysrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uMDg4ZDgwZmFkNTJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWxpYmMrKy5wYXRj aApAQCAtMCwwICsxLDU1IEBACitkaWZmIC0tZ2l0IGEvYnVpbGR0b29scy90aGlyZF9wYXJ0eS9s aWJjKysvdHJ1bmsvaW5jbHVkZS9sb2NhbGUgYi9idWlsZHRvb2xzL3RoaXJkX3BhcnR5L2xpYmMr Ky90cnVuay9pbmNsdWRlL2xvY2FsZQoraW5kZXggZDI5YTJkYy4uNTM5OThiYyAxMDA2NDQKKy0t LSBidWlsZHRvb2xzL3RoaXJkX3BhcnR5L2xpYmMrKy90cnVuay9pbmNsdWRlL2xvY2FsZQorKysr IGJ1aWxkdG9vbHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL2luY2x1ZGUvbG9jYWxlCitAQCAt MTEsNiArMTEsMTUgQEAKKyAjaWZuZGVmIF9MSUJDUFBfTE9DQUxFCisgI2RlZmluZSBfTElCQ1BQ X0xPQ0FMRQorIAorKy8vIG11c2wgZG9lc24ndCBkZWZpbmUgX2wgKHdpdGggbG9jYWxlKSB2YXJp YW50cyBvZiBmdW5jdGlvbnMsIGFzIGl0IG9ubHkgc3VwcG9ydHMgVVRGLTguCisrLy8gd2UgY2Fu IHNpbXBseSBtYWtlIG1hY3JvcyB0aGF0IHdpbGwgY2FsbCB0aGUgbm9uLWxvY2FsYXRlZCBvbmVz IGlmIHdlJ3JlIHVzaW5nIG11c2wsIG9yIHJhdGhlciBub3QtdXNpbmcgc29tZXRoaW5nIHRoYXQg aGFzIHRoZSBfbCBvbmVzLgorKy8vIGNvdWxkbid0IGZpbmQgYW55dGhpbmcgZ2xpYmMgI2RlZmlu ZXMgd2hlbiBpdCBjcmVhdGVzIHN0cnRvdWxsX2wgKHRoYXQgaXQgZG9lc24ndCB1bmRlZmluZSBh IGZldyBsaW5lcyBsYXRlciksIHNvIGxldCdzIHRlc3QgYWdhaW5zdCBnbGliYyBhbmQgZ2xpYmMt bGlrZXMuCisrLy8gYWxtb3N0IGFsbCBnbGliYy1saWtlcyBkZWZpbmUgX19HTlVfTElCUkFSWV9f IGZvciBjb21wYXRpYmlsaXR5CisrI2lmbmRlZiBfX0dOVV9MSUJSQVJZX18KKysjZGVmaW5lIHN0 cnRvdWxsX2woQSwgQiwgQywgTE9DKSBzdHJ0b3VsbChBLEIsQykKKysjZGVmaW5lIHN0cnRvbGxf bChBLCBCLCBDLCBMT0MpIHN0cnRvbGwoQSxCLEMpCisrI2VuZGlmCisrCisgLyoKKyAgICAgbG9j YWxlIHN5bm9wc2lzCisgCitkaWZmIC0tZ2l0IGEvYnVpbGR0b29scy90aGlyZF9wYXJ0eS9saWJj KysvdHJ1bmsvc3JjL2xvY2FsZS5jcHAgYi9idWlsZHRvb2xzL3RoaXJkX3BhcnR5L2xpYmMrKy90 cnVuay9zcmMvbG9jYWxlLmNwcAoraW5kZXggNDE2M2MyYy4uM2QxOTAyYSAxMDA2NDQKKy0tLSBh L2J1aWxkdG9vbHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL3NyYy9sb2NhbGUuY3BwCisrKysg YnVpbGR0b29scy90aGlyZF9wYXJ0eS9saWJjKysvdHJ1bmsvc3JjL2xvY2FsZS5jcHAKK0BAIC0x MDI4LDExICsxMDI4LDExIEBAIGN0eXBlPGNoYXI+Ojpkb19uYXJyb3coY29uc3QgY2hhcl90eXBl KiBsb3csIGNvbnN0IGNoYXJfdHlwZSogaGlnaCwgY2hhciBkZmF1bHQsCisgICAgIHJldHVybiBs b3c7CisgfQorIAorLSNpZiBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQorKy8vI2lmIGRlZmluZWQo X19FTVNDUklQVEVOX18pCisgZXh0ZXJuICJDIiBjb25zdCB1bnNpZ25lZCBzaG9ydCAqKiBfX2N0 eXBlX2JfbG9jKCk7CisgZXh0ZXJuICJDIiBjb25zdCBpbnQgKiogX19jdHlwZV90b2xvd2VyX2xv YygpOworIGV4dGVybiAiQyIgY29uc3QgaW50ICoqIF9fY3R5cGVfdG91cHBlcl9sb2MoKTsKKy0j ZW5kaWYKKysvLyNlbmRpZgorIAorICNpZmRlZiBfTElCQ1BQX1BST1ZJREVTX0RFRkFVTFRfUlVO RV9UQUJMRQorIGNvbnN0IGN0eXBlPGNoYXI+OjptYXNrKgorQEAgLTExMzYsMTIgKzExMzYsMTAg QEAgY3R5cGU8Y2hhcj46OmNsYXNzaWNfdGFibGUoKSAgX05PRVhDRVBUCisgI2VsaWYgZGVmaW5l ZChfQUlYKQorICAgICByZXR1cm4gKGNvbnN0IHVuc2lnbmVkIGludCAqKV9fbGNfY3R5cGVfcHRy LT5vYmotPm1hc2s7CisgI2Vsc2UKKy0gICAgLy8gUGxhdGZvcm0gbm90IHN1cHBvcnRlZDogYWJv cnQgc28gdGhlIHBlcnNvbiBkb2luZyB0aGUgcG9ydCBrbm93cyB3aGF0IHRvCistICAgIC8vIGZp eAorLSMgd2FybmluZyAgY3R5cGU8Y2hhcj46OmNsYXNzaWNfdGFibGUoKSBpcyBub3QgaW1wbGVt ZW50ZWQKKy0gICAgcHJpbnRmKCJjdHlwZTxjaGFyPjo6Y2xhc3NpY190YWJsZSgpIGlzIG5vdCBp bXBsZW1lbnRlZFxuIik7CistICAgIGFib3J0KCk7CistICAgIHJldHVybiBOVUxMOworKy8vIG5v dCBzdXJlIGFueSBvdGhlciBsaWJjIGxpa2UgdGhpcyBleGlzdHMsIGJ1dCB0aGVyZSBpcyBubyB3 YXkgdG8gZGlmZmVyZW50aWF0ZSBtdXNsIGFzIG9mIHJpZ2h0IG5vdworKy8vIHRvIGJlIGZhaXIs IHdpdGggdGhlIGNoYW5nZSBhYm92ZSwgdGhpcyBzaG91bGQgYWx3YXlzIHdvcmsKKysvLyBhbHNv LCAjd2FybmluZyBpcyBhIGdjYyBleHRlbnNpb24KKysgICAgcmV0dXJuIChjb25zdCB1bnNpZ25l ZCBsb25nICopKl9fY3R5cGVfYl9sb2MoKTsKKyAjZW5kaWYKKyB9CisgI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wt c2FuZGJveC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbC1zYW5kYm94LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uMjMwYmI3YmJkMjk3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJv bjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTAs MCArMSw5MiBAQAorLS0tIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2Mub3JpZwkyMDE5LTA3LTAzIDExOjUzOjIxLjIx MzQ3OTczNiAtMDQwMAorKysrIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5 c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MJMjAxOS0wNy0wMyAxMTo1NzowMS4zMDQ5 OTgyNTMgLTA0MDAKK0BAIC0xNDAsMzEgKzE0MCwxNCBAQAorIFJlc3VsdEV4cHIgUmVzdHJpY3RD bG9uZVRvVGhyZWFkc0FuZEVQRVJNRm9yaygpIHsKKyAgIGNvbnN0IEFyZzx1bnNpZ25lZCBsb25n PiBmbGFncygwKTsKKyAKKy0gIC8vIFRPRE8obWRlbXBza3kpOiBFeHRlbmQgRFNMIHRvIHN1cHBv cnQgKGZsYWdzICYgfm1hc2sxKSA9PSBtYXNrMi4KKy0gIGNvbnN0IHVpbnQ2NF90IGtBbmRyb2lk Q2xvbmVNYXNrID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVB RCB8CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT05FX1NZU1ZTRU07 CistICBjb25zdCB1aW50NjRfdCBrT2Jzb2xldGVBbmRyb2lkQ2xvbmVNYXNrID0ga0FuZHJvaWRD bG9uZU1hc2sgfCBDTE9ORV9ERVRBQ0hFRDsKKysgIGNvbnN0IGludCByZXF1aXJlZCA9IENMT05F X1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfAorKyAgICAgICAg ICAgICAgICAgICAgICAgQ0xPTkVfVEhSRUFEIHwgQ0xPTkVfU1lTVlNFTTsKKysgIGNvbnN0IGlu dCBzYWZlID0gQ0xPTkVfU0VUVExTIHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxE X0NMRUFSVElEIHwgCisrICAgICAgICAgICAgICAgICAgIENMT05FX0RFVEFDSEVEOworKyAgY29u c3QgQm9vbEV4cHIgdGhyZWFkX2Nsb25lX29rID0gKGZsYWdzJn5zYWZlKT09cmVxdWlyZWQ7Cisg CistICBjb25zdCB1aW50NjRfdCBrR2xpYmNQdGhyZWFkRmxhZ3MgPQorLSAgICAgIENMT05FX1ZN IHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfCBDTE9ORV9USFJFQUQg fAorLSAgICAgIENMT05FX1NZU1ZTRU0gfCBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VU VElEIHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQ7CistICBjb25zdCBCb29sRXhwciBnbGliY190ZXN0 ID0gZmxhZ3MgPT0ga0dsaWJjUHRocmVhZEZsYWdzOworLQorLSAgY29uc3QgQm9vbEV4cHIgYW5k cm9pZF90ZXN0ID0KKy0gICAgICBBbnlPZihmbGFncyA9PSBrQW5kcm9pZENsb25lTWFzaywgZmxh Z3MgPT0ga09ic29sZXRlQW5kcm9pZENsb25lTWFzaywKKy0gICAgICAgICAgICBmbGFncyA9PSBr R2xpYmNQdGhyZWFkRmxhZ3MpOworLQorLSAgLy8gVGhlIGZvbGxvd2luZyB0d28gZmxhZ3MgYXJl IHRoZSB0d28gaW1wb3J0YW50IGZsYWdzIGluIGFueSB2Zm9yay1lbXVsYXRpbmcKKy0gIC8vIGNs b25lIGNhbGwuIEVQRVJNIGFueSBjbG9uZSBjYWxsIHRoYXQgY29udGFpbnMgYm90aCBvZiB0aGVt LgorLSAgY29uc3QgdWludDY0X3Qga0ltcG9ydGFudENsb25lVmZvcmtGbGFncyA9IENMT05FX1ZG T1JLIHwgQ0xPTkVfVk07CistCistICBjb25zdCBCb29sRXhwciBpc19mb3JrX29yX2Nsb25lX3Zm b3JrID0KKy0gICAgICBBbnlPZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9ORV9USFJFQUQpKSA9 PSAwLAorLSAgICAgICAgICAgIChmbGFncyAmIGtJbXBvcnRhbnRDbG9uZVZmb3JrRmxhZ3MpID09 IGtJbXBvcnRhbnRDbG9uZVZmb3JrRmxhZ3MpOworLQorLSAgcmV0dXJuIElmKElzQW5kcm9pZCgp ID8gYW5kcm9pZF90ZXN0IDogZ2xpYmNfdGVzdCwgQWxsb3coKSkKKy0gICAgICAuRWxzZUlmKGlz X2Zvcmtfb3JfY2xvbmVfdmZvcmssIEVycm9yKEVQRVJNKSkKKysgIHJldHVybiBJZih0aHJlYWRf Y2xvbmVfb2ssIEFsbG93KCkpCisrICAgICAgLkVsc2VJZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBD TE9ORV9USFJFQUQpKSA9PSAwLCBFcnJvcihFUEVSTSkpCisgICAgICAgLkVsc2UoQ3Jhc2hTSUdT WVNDbG9uZSgpKTsKKyB9CisgCistLS0gLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9zZXRzLmNjLm9yaWcKKysrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC00OTQsNiArNDk0LDcgQEAKKyAgICAgY2FzZSBf X05SX21sb2NrOgorICAgICBjYXNlIF9fTlJfbXVubG9jazoKKyAgICAgY2FzZSBfX05SX211bm1h cDoKKysgICAgY2FzZSBfX05SX21yZW1hcDoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2Fz ZSBfX05SX21hZHZpc2U6CisgICAgIGNhc2UgX19OUl9taW5jb3JlOgorQEAgLTUwOSw3ICs1MTAs NiBAQAorICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xkdDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05S X21wcm90ZWN0OgorLSAgICBjYXNlIF9fTlJfbXJlbWFwOgorICAgICBjYXNlIF9fTlJfbXN5bmM6 CisgICAgIGNhc2UgX19OUl9tdW5sb2NrYWxsOgorICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgor ZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Nl dHMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNj CitpbmRleCA4MGYwMmMwLi4yMWZiZTIxIDEwMDY0NAorLS0tIHNhbmRib3gvbGludXgvc2VjY29t cC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKKysrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtMzczLDYgKzM3Myw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7CisgI2lm IGRlZmluZWQoX19pMzg2X18pCisgICAgIGNhc2UgX19OUl93YWl0cGlkOgorICNlbmRpZgorKyAg ICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorICAgICAgIHJldHVybiB0cnVlOworICAgICBj YXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQuCisgICAg IGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtMzg1LDcgKzM4Niw2IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7 CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX21pcHNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToKKyAjZW5kaWYKKy0g ICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6Cisg I2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAgY2Fz ZSBfX05SX3Zmb3JrOgorLS0tIHNhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xp Y3lfbGludXguY2MKKysrKyBzYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5 X2xpbnV4LmNjCitAQCAtMTAwLDkgKzEwMCw5IEBACisgICAgIGNhc2UgX19OUl91bmFtZToKKyAg ICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2No ZWR1bGVyOgorKyAgICBjYXNlIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyOgorICAgICAgIHJldHVy biBBbGxvdygpOworICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHk6CistICAgIGNhc2Ug X19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisgICAgICAgcmV0dXJuIFJlc3RyaWN0U2NoZWRUYXJn ZXQoR2V0UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAgY2FzZSBfX05SX3BybGltaXQ2NDoKKyAg ICAgICAvLyBTZWUgY3JidWcuY29tLzY2MjQ1MCBhbmQgc2V0cmxpbWl0IGNvbW1lbnQgYWJvdmUu CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2wtc3luYy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNo ZXMvY2hyb21pdW0tbXVzbC1zeW5jLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uYmMyZmExOTM3YmQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXN5bmMucGF0Y2gKQEAgLTAs MCArMSwzMCBAQAorLS0tIHRoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5j Lmgub3JpZwkyMDIwLTAyLTIxIDA3OjQzOjMzLjc0ODMyNTE3NSAtMDUwMAorKysrIHRoaXJkX3Bh cnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgJMjAyMC0wMi0yMSAwNzo0NDowNy4y ODgzMjg3ODQgLTA1MDAKK0BAIC0xOSwxMiArMTksMTYgQEAKKyAjaWZuZGVmIF9fU1lTX0NPUkVf U1lOQ19ICisgI2RlZmluZSBfX1NZU19DT1JFX1NZTkNfSAorIAorKyNpZiBkZWZpbmVkKF9fR0xJ QkNfXykKKyAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPHN0ZGlu dC5oPgorIAorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorIAorLV9fQkVHSU5fREVDTFMKKysj aWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYKKyAKKyBzdHJ1Y3Qgc3lu Y19sZWdhY3lfbWVyZ2VfZGF0YSB7CisgIGludDMyX3QgZmQyOworQEAgLTE1OCw2ICsxNjIsOCBA QAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3luY19wdF9pbmZv ICppdHIpOworIHZvaWQgc3luY19mZW5jZV9pbmZvX2ZyZWUoc3RydWN0IHN5bmNfZmVuY2VfaW5m b19kYXRhICppbmZvKTsKKyAKKy1fX0VORF9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1cworK30K KysjZW5kaWYKKyAKKyAjZW5kaWYgLyogX19TWVNfQ09SRV9TWU5DX0ggKi8KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC14eHgt cHBjNjRsZS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbC14eHgtcHBjNjRsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjkwMDFhMmE4NTRkMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC14eHgtcHBjNjRsZS5wYXRj aApAQCAtMCwwICsxLDE5MCBAQAorZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2Vj Y29tcF9tYWNyb3MuaCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAoraW5k ZXggYTZhZWM1NDRlLi4yYTRhN2YxYmMgMTAwNjQ0CistLS0gc2FuZGJveC9saW51eC9icGZfZHNs L3NlY2NvbXBfbWFjcm9zLmgKKysrKyBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNy b3MuaAorQEAgLTE2LDcgKzE2LDcgQEAKKyAjaWYgZGVmaW5lZChfX21pcHNfXykKKyAvLyBzeXMv dXNlci5oIGluIGVnbGliYyBtaXNzZXMgc2l6ZV90IGRlZmluaXRpb24KKyAjaW5jbHVkZSA8c3Rk ZGVmLmg+CistI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgLy8gTWFudWFsbHkgZGVmaW5lIGdy ZWdfdCBvbiBwcGM2NAorIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsKKyAjZW5k aWYKK0BAIC0zNjEsMTEgKzM2MSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3Ry dWN0OworICNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjQKKyAjZW5kaWYKKyAK Ky0jZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoX2N0eCktPnVjX21jb250ZXh0LnJl Z3MtPmdwcltfcmVnXSkKKysjZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoKHN0cnVj dCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+Z3ByW19yZWddKQorIAorICNk ZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKKyAjZGVmaW5l IFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQorLSNkZWZpbmUgU0VD Q09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAorKyNkZWZpbmUgU0VD Q09NUF9JUChfY3R4KSAoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdz KS0+bmlwCisgI2RlZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMp CisgI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQpCisgI2Rl ZmluZSBTRUNDT01QX1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCitkaWZmIC0tZ2l0 IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmL3N5c2NhbGwuY2MKK2luZGV4IGQ1M2E3ZmY1Ni4uYzI5MGYwZTkyIDEwMDY0NAorLS0t IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYworKysrIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYvc3lzY2FsbC5jYworQEAgLTQ5OSw5ICs0OTksOSBAQCB2b2lkIFN5c2NhbGw6 OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBjdHgpIHsK KyAgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVn aXN0ZXIgKGNyMC5TTykKKyAgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQwOTUp IHsKKyAgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOworLSAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3Mt PmNjciB8PSAoMSA8PCAyOCk7CisrICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250 ZXh0LnJlZ3MpLT5jY3IgfD0gKDEgPDwgMjgpOworICAgfSBlbHNlIHsKKy0gICAgY3R4LT51Y19t Y29udGV4dC5yZWdzLT5jY3IgJj0gfigxIDw8IDI4KTsKKysgICAgKChzdHJ1Y3QgcHRfcmVncyAq KWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciAmPSB+KDEgPDwgMjgpOworICAgfQorICNlbmRp ZgorICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7 CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vu c2NhbGVkY3ljbGVjbG9jay5oIHRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVy bmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oCitpbmRleCBjZGNlOWJmOC4uNzNkNzdkZGEgMTAwNjQ0 CistLS0gdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRj eWNsZWNsb2NrLmgKKysrKyB0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5h bC91bnNjYWxlZGN5Y2xlY2xvY2suaAorQEAgLTQ2LDcgKzQ2LDcgQEAKKyAKKyAvLyBUaGUgZm9s bG93aW5nIHBsYXRmb3JtcyBoYXZlIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgaGFyZHdhcmUgY291 bnRlci4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZp bmVkKF9fcHBjX18pIHx8IFwKKysgICgoZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChf X3BwY19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBcCisgICBkZWZpbmVkKF9NX0lYODYp IHx8IGRlZmluZWQoX01fWDY0KQorICNkZWZpbmUgQUJTTF9IQVZFX1VOU0NBTEVEX0NZQ0xFQ0xP Q0tfSU1QTEVNRU5UQVRJT04gMQorICNlbHNlCistLS0gdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9h YnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX2NvbmZpZy5oCisrKysgdGhpcmRfcGFy dHkvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX2NvbmZpZy5o CitAQCAtNjQsNyArNjQsNyBAQAorICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X194ODZfNjRfXykKKyAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKKyAgICJh YnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3g4Ni1pbmwuaW5jIgorLSNlbGlmIGRl ZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX1BQQ19fKQorKyNlbGlmIChkZWZpbmVkKF9fcHBj X18pIHx8IGRlZmluZWQoX19QUENfXykpICYmIGRlZmluZWQoX19HTElCQ19fKQorICNkZWZpbmUg QUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIgXAorICAgImFic2wvZGVidWdnaW5nL2ludGVybmFs L3N0YWNrdHJhY2VfcG93ZXJwYy1pbmwuaW5jIgorICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18p CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL0JVSUxELmduCitpbmRleCBmOWE2MGUzNy4uMjVmM2EwYjcgMTAwNjQ0CistLS0gdGhp cmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KKysrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlM RC5nbgorQEAgLTYzNyw2ICs2MzcsNyBAQCBpZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewor IAorICAgICBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworICAgICAgICAgZGVmaW5lcyA9 IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQorKyAgICAgICAgbGlicyArPSBbICJ1Y29udGV4dCIgXQor ICAgICB9IGVsc2UgeworICAgICAgICAgc291cmNlcyArPSBbCisgICAgICAgICAgICAgImJyZWFr cGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TIgorZGlmZiAtLWdpdCB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi90aHJlYWRfaW5mby5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYworaW5kZXggMDNh ZmVjN2EuLjAyNjRlY2YxIDEwMDY0NAorLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCisrKysg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRl cl9jb21tb24vdGhyZWFkX2luZm8uY2MKK0BAIC0yNzMsNiArMjczLDkgQEAgdm9pZCBUaHJlYWRJ bmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKKyAKKyAjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgCisrI2luY2x1ZGUgPGFzbS9lbGYuaD4KKysjaW5j bHVkZSA8YXNtL3B0cmFjZS5oPgorKworIHVpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVj dGlvblBvaW50ZXIoKSBjb25zdCB7CisgICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05J UF07CisgfQorQEAgLTI5MCw5ICsyOTMsOSBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250 ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgeworICAgICBvdXQtPmN0ciA9IG1jb250ZXh0 LmdwX3JlZ3NbUFRfQ1RSXTsKKyAgICAgCisgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxP QVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCistICAgICAgICBvdXQtPmZsb2F0X3Nh dmUuZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKKysgICAgICAgIG91dC0+ZmxvYXRf c2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW2ldOworIAor LSAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsK KysgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9y ZWdzKVtFTEZfTkZQUkVHLTFdOworIAorICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RP UlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQorICAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5z YXZlX3ZyW2ldID0gXAorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdWNvbnRleHRfcmVhZGVyLmNjCitpbmRleCAxMDkwNDcwZi4uZTU4MDIzM2QgMTAwNjQ0 CistLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCisrKysgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRf cmVhZGVyLmNjCitAQCAtMjU3LDYgKzI1Nyw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxD UFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpIHsKKyAK KyAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgCisrI2luY2x1ZGUgPGFzbS9lbGYuaD4K KysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworIHVpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6 R2V0U3RhY2tQb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CisgICAgIHJldHVybiB1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF07CisgfQorQEAgLTI4 MCw5ICsyODMsOSBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250 ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjLAorICAgICBvdXQtPmN0ciA9IHVjLT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl07CisgICAgIAorICAgICBmb3IgKGludCBpID0gMDsg aSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorLSAgICAgICAgb3V0 LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOworKyAg ICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9ICgodWludDY0X3QgKikmdWMtPnVjX21j b250ZXh0LmZwX3JlZ3MpW2ldOworIAorLSAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+ dWNfbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07CisrICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNj ciA9ICgodWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3JlZ3MpW0VMRl9ORlBSRUctMV07 CisgCisgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NP VU5UOyBpKyspCisgICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPQorZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRs ZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitpbmRleCA1YTdhYjUw Yy4uZWU4Yjg1OGMgMTAwNjQ0CistLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9o YW5kbGVyLmNjCitAQCAtMTA1LDYgKzEwNSwxMSBAQAorICNkZWZpbmUgUFJfU0VUX1BUUkFDRVIg MHg1OTYxNmQ2MQorICNlbmRpZgorIAorKy8qIG11c2wgaGFjaywgY2FuJ3QgaW5jbHVkZSBhc20v cHRyYWNlLmggYXMgdGhhdCBjYXVzZXMgY29uZmxpY3RzICovCisrI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykgJiYgIWRlZmluZWQoUFRfTklQKQorKyNkZWZpbmUgUFRfTklQIDMyCisrI2VuZGlm CisrCisgbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7CisgCisgbmFtZXNwYWNlIHsKK2RpZmYg LS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFs X2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9z aWduYWxfY29udGV4dC5oCitpbmRleCA4ZTMzNWEwOS4uYjJhMGYxNTUgMTAwNjQ0CistLS0gdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQu aAorKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25h bF9jb250ZXh0LmgKK0BAIC00NjksNyArNDY5LDcgQEAgc3RydWN0IE1Db250ZXh0NjQgeworICAg U2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7CisgICBTaWduYWxGbG9hdENvbnRleHQ2NCAg ZnBfcmVnczsKKyAgIFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9yZWdzOworLSAgaW50NjRfdCB2 bXhfcmVzZXJ2ZVs2OV07CisrICBpbnQ2NF90IHZteF9yZXNlcnZlWzEwMV07CisgfTsKKyAKKyBz dHJ1Y3QgQ29udGV4dFRyYWl0czY0IDogcHVibGljIFRyYWl0czY0IHsKK2RpZmYgLS1naXQgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAoraW5kZXgg ZGVhMGQxZjMuLmIyMDNlNWIyIDEwMDY0NAorLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAorKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAorQEAgLTMwLDYgKzMwLDcgQEAKKyAKKyAj aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgI2luY2x1ZGUgPHN5cy91Y29udGV4 dC5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgI2VuZGlmCisgCisgbmFtZXNwYWNlIGNy YXNocGFkIHsKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9y dC5oIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAoraW5kZXggOTk1NWNl NDQuLjRjMWNjNDg4IDEwMDY0NAorLS0tIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1 cHBvcnQuaAorKysrIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorQEAg LTQyMTYsOSArNDIxNiwxMyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgICAgIH0KKyAgICNl bmRpZgorICAgI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCisrICAgIC8vIG11c2wgZG9lcyAj ZGVmaW5lIGZzdGF0YXQ2NCBmc3RhdGF0CisrICAgICN1bmRlZiBmc3RhdGF0NjQKKyAgICAgTFNT X0lOTElORSBfc3lzY2FsbDQoaW50LCAgIGZzdGF0YXQ2NCwgICAgICAgIGludCwgICBkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosICAgICAgcCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGtlcm5lbF9zdGF0NjQgKiwgICBiLCAgICBpbnQsICAgZikK KysgICAgLy8gc2V0IGl0IGJhY2sgbGlrZSBpdCB3YXMKKysgICAgI2RlZmluZSBmc3RhdGF0NjQg ZnN0YXRhdAorICAgI2VuZGlmCisgICAjaWYgZGVmaW5lZChfX05SX3dhaXRwaWQpCisgICAgIC8v IHdhaXRwaWQgaXMgcG9seWZpbGxlZCBiZWxvdyB3aGVuIG5vdCBhdmFpbGFibGUuCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW5vLW1h bGxpbmZvLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1uby1tYWxsaW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjI1NGExZjYzMmRhNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24x My9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTAsMCAr MSw1NCBAQAorLS0tIGJhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2Mub3Jp ZworKysrIGJhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MKK0BAIC0yNDMs NyArMjQzLDcgQEAKKyAgIGFsbG9jYXRlZF9vYmplY3RzX2NvdW50ID0gbWFpbl9oZWFwX2luZm8u YmxvY2tfY291bnQ7CisgI2VsaWYgZGVmaW5lZChPU19GVUNIU0lBKQorIC8vIFRPRE8oZnVjaHNp YSk6IFBvcnQsIHNlZSBodHRwczovL2NyYnVnLmNvbS83MDY1OTIuCistI2Vsc2UKKysjZWxpZiBk ZWZpbmVkKF9fR0xJQkNfXykKKyAgIHN0cnVjdCBtYWxsaW5mbyBpbmZvID0gbWFsbGluZm8oKTsK KyAgIERDSEVDS19HRShpbmZvLmFyZW5hICsgaW5mby5oYmxraGQsIGluZm8udW9yZGJsa3MpOwor IAorLS0tIGJhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2Mub3JpZwkyMDIwLTEx LTE4IDIzOjUwOjMzLjk1ODIyMzQ5NyAtMDUwMAorKysrIGJhc2UvcHJvY2Vzcy9wcm9jZXNzX21l dHJpY3NfcG9zaXguY2MJMjAyMC0xMS0xOCAyMzo1Mzo1Mi4wMjQ1ODkzMTYgLTA1MDAKK0BAIC0x MTksMTQgKzExOSwxNCBAQAorICAgbWFsbG9jX3N0YXRpc3RpY3NfdCBzdGF0cyA9IHswfTsKKyAg IG1hbGxvY196b25lX3N0YXRpc3RpY3MobnVsbHB0ciwgJnN0YXRzKTsKKyAgIHJldHVybiBzdGF0 cy5zaXplX2luX3VzZTsKKy0jZWxpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0NI Uk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisrI2VsaWYgZGVmaW5lZChfX0dMSUJDX18p IHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKyAgIHN0cnVj dCBtYWxsaW5mbyBtaW5mbyA9IG1hbGxpbmZvKCk7CisgI2lmIEJVSUxERkxBRyhVU0VfVENNQUxM T0MpCisgICByZXR1cm4gbWluZm8udW9yZGJsa3M7CisgI2Vsc2UKKyAgIHJldHVybiBtaW5mby5o YmxraGQgKyBtaW5mby5hcmVuYTsKKyAjZW5kaWYKKy0jZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEp CisrI2Vsc2UKKyAgIC8vIFRPRE8oZnVjaHNpYSk6IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0 cHM6Ly9jcmJ1Zy5jb20vNzM1MDg3LgorICAgcmV0dXJuIDA7CisgI2VuZGlmCistLS0gdGhpcmRf cGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2xpYi9TdXBwb3J0L1Vu aXgvUHJvY2Vzcy5pbmMKKysrKyB0aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9s bHZtLXN1Ynplcm8vbGliL1N1cHBvcnQvVW5peC9Qcm9jZXNzLmluYy5vcmlnCitAQCAtODQsNyAr ODQsNyBAQAorIH0KKyAKKyBzaXplX3QgUHJvY2Vzczo6R2V0TWFsbG9jVXNhZ2UoKSB7CistI2lm IGRlZmluZWQoSEFWRV9NQUxMSU5GTykKKysjaWYgZGVmaW5lZChIQVZFX01BTExJTkZPKSAmJiBk ZWZpbmVkKF9fR0xJQkNfXykKKyAgIHN0cnVjdCBtYWxsaW5mbyBtaTsKKyAgIG1pID0gOjptYWxs aW5mbygpOworICAgcmV0dXJuIG1pLnVvcmRibGtzOworCistLS0gdGhpcmRfcGFydHkvc3dpZnRz aGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0Nv bmZpZy9jb25maWcuaC5vcmlnCTIwMTktMDktMzAgMTM6MDM6NDIuNTU2ODgwNTM3IC0wNDAwCisr KysgdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL2NvbmZpZ3Mv bGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAkyMDE5LTA5LTMwIDEzOjA3OjI3Ljk4 OTgyMTIyNyAtMDQwMAorQEAgLTEyMiw3ICsxMjIsOSBAQAorIC8qICN1bmRlZiBIQVZFX01BTExD VEwgKi8KKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1hbGxpbmZvJyBmdW5j dGlvbi4gKi8KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2RlZmluZSBIQVZFX01BTExJTkZP IDEKKysjZW5kaWYKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5o PiBoZWFkZXIgZmlsZS4gKi8KKyAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1yZXNvbHZlci5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tcmVz b2x2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yOWZl MmQyZjFmM2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLXJlc29sdmVyLnBhdGNoCkBAIC0wLDAgKzEsMzggQEAKKy0tLSBu ZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYy5vcmlnCTIwMjAtMTAtMDkgMTY6Mzk6MTIu MDY0MDY5ODM1IC0wNDAwCisrKysgbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2MJMjAy MC0xMC0wOSAxNjo0Mjo0OS43MzgzMDI3NzIgLTA0MDAKK0BAIC0yNzc5LDggKzI3NzksNyBAQAor ICAgTmV0d29ya0NoYW5nZU5vdGlmaWVyOjpBZGRDb25uZWN0aW9uVHlwZU9ic2VydmVyKHRoaXMp OworICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXykKKyAgICAgc3lzdGVtX2Ruc19j b25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0aGlzKTsKKy0jaWYgZGVmaW5lZChPU19QT1NJ WCkgJiYgIWRlZmluZWQoT1NfQVBQTEUpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKy0g ICAgIWRlZmluZWQoT1NfQU5EUk9JRCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBFbnN1 cmVEbnNSZWxvYWRlckluaXQoKTsKKyAjZW5kaWYKKyAKKy0tLSBuZXQvZG5zL2Ruc19yZWxvYWRl ci5jYy5vcmlnCTIwMjAtMTAtMDkgMTY6Mzk6MTIuMDY0MDY5ODM1IC0wNDAwCisrKysgbmV0L2Ru cy9kbnNfcmVsb2FkZXIuY2MJMjAyMC0xMC0wOSAxNjo0NDozMC40NDI0MTk4MjMgLTA0MDAKK0BA IC00LDkgKzQsOCBAQAorIAorICNpbmNsdWRlICJuZXQvZG5zL2Ruc19yZWxvYWRlci5oIgorIAor LSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19BUFBMRSkgJiYgIWRlZmluZWQo T1NfT1BFTkJTRCkgJiYgXAorLSAgICAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChP U19GVUNIU0lBKQorLQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKysgCisgI2luY2x1ZGUgPHJl c29sdi5oPgorIAorICNpbmNsdWRlICJiYXNlL2xhenlfaW5zdGFuY2UuaCIKKy0tLSBuZXQvZG5z L2hvc3RfcmVzb2x2ZXJfcHJvYy5jYy5vcmlnCTIwMjAtMTAtMDkgMTY6Mzk6MTIuMDY1MDY5ODM2 IC0wNDAwCisrKysgbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MJMjAyMC0xMC0wOSAxNjo0 NTowOS42NDE0NjY2NDQgLTA0MDAKK0BAIC0xNTksOCArMTU5LDcgQEAKKyAgIGJhc2U6OlNjb3Bl ZEJsb2NraW5nQ2FsbCBzY29wZWRfYmxvY2tpbmdfY2FsbChGUk9NX0hFUkUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6QmxvY2tpbmdUeXBl OjpXSUxMX0JMT0NLKTsKKyAKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1Nf QVBQTEUpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKy0gICAgIWRlZmluZWQoT1NfQU5E Uk9JRCkgJiYgIWRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisg ICBEbnNSZWxvYWRlck1heWJlUmVsb2FkKCk7CisgI2VuZGlmCisgICBiYXNlOjpPcHRpb25hbDxB ZGRyZXNzSW5mbz4gYWk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1icm93c2VyLXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWJyb3dzZXItc2l6ZV90LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzZhZjBlYzZjNGE3Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYnJvd3Nlci1zaXpl X3QucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2Jh Y2tncm91bmQvbnRwX2JhY2tncm91bmRzLmgJMjAyMC0wOC0xMCAyMDozOToyMC4wMDAwMDAwMDAg KzAyMDAKKysrKyBiL2Nocm9tZS9icm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250cF9iYWNrZ3Jv dW5kcy5oCTIwMjAtMDktMDQgMTM6NDg6MjIuNjQwMDIzMjU2ICswMjAwCitAQCAtNiw2ICs2LDcg QEAKKyAjZGVmaW5lIENIUk9NRV9CUk9XU0VSX1NFQVJDSF9CQUNLR1JPVU5EX05UUF9CQUNLR1JP VU5EU19IXworIAorICNpbmNsdWRlIDxhcnJheT4KKysjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAKKyBj bGFzcyBHVVJMOworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1saWJjX21hbGxvYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjM2NDY2NmNhYTc0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoCkBA IC0wLDAgKzEsMjYgQEAKKy0tLSBhL2Jhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2Mub3JpZwky MDE3LTA5LTE1IDA4OjQxOjQzLjAwMDAwMDAwMCArMDAwMAorKysrIGEvYmFzZS9wcm9jZXNzL21l bW9yeV9saW51eC5jYwkyMDE3LTA5LTE1IDA4OjQ0OjM5LjgwNDk5NTQ2OSArMDAwMAorQEAgLTIx LDYgKzIxLDEyIEBACisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3Ny Yy9ncGVyZnRvb2xzL3RjbWFsbG9jLmgiCisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoTElCQ19H TElCQykKKytleHRlcm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qg c2l6ZSk7CisrfQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBzaXplX3QgZ19v b21fc2l6ZSA9IDBVOworLS0tIGEvYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmlnCTIw MjAtMDgtMzAgMTQ6MTg6MzUuNDAxMTMyNTkzIC0wNDAwCisrKysgYS9iYXNlL3Byb2Nlc3MvbWVt b3J5X2xpbnV4LmNjCTIwMjAtMDgtMzAgMTQ6MTk6MDguMDMwMTk5MTg5IC0wNDAwCitAQCAtMTQx LDcgKzE0MSw3IEBACisgICAgICghZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhQlVJTERGTEFHKFVT RV9UQ01BTExPQykpCisgICAqcmVzdWx0ID0gbWFsbG9jKHNpemUpOworICNlbGlmIGRlZmluZWQo TElCQ19HTElCQykgJiYgIUJVSUxERkxBRyhVU0VfVENNQUxMT0MpCistICAqcmVzdWx0ID0gX19s aWJjX21hbGxvYyhzaXplKTsKKysgICpyZXN1bHQgPSA6Ol9fbGliY19tYWxsb2Moc2l6ZSk7Cisg I2VsaWYgQlVJTERGTEFHKFVTRV9UQ01BTExPQykKKyAgICpyZXN1bHQgPSB0Y19tYWxsb2Nfc2tp cF9uZXdfaGFuZGxlcihzaXplKTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ry b24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW11c2wtdjgtbW9ub3RvbmljLXB0aHJlYWQtY29u dF90aW1lZHdhaXQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS1tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2IyZTcxNWZlMjA2Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbXVz bC12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaApAQCAtMCwwICsxLDI0 IEBACitVc2UgbW9ub3RvbmljIGNsb2NrIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0IHdpdGgg bXVzbCB0b28uCisKK2RpZmYgLS1naXQgYS92OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24t dmFyaWFibGUuY2MgYi92OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MK K2luZGV4IDVlYTcwODMuLmMxMzAyN2UgMTAwNjQ0CistLS0gYS92OC9zcmMvYmFzZS9wbGF0Zm9y bS9jb25kaXRpb24tdmFyaWFibGUuY2MKKysrKyBhL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRp dGlvbi12YXJpYWJsZS5jYworQEAgLTE2LDcgKzE2LDcgQEAgbmFtZXNwYWNlIGJhc2UgeworIAor IENvbmRpdGlvblZhcmlhYmxlOjpDb25kaXRpb25WYXJpYWJsZSgpIHsKKyAjaWYgKFY4X09TX0ZS RUVCU0QgfHwgVjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0QgfHwgXAorLSAgICAgKFY4X09T X0xJTlVYICYmIFY4X0xJQkNfR0xJQkMpKQorKyAgICAgVjhfT1NfTElOVVgpCisgICAvLyBPbiBG cmVlL05ldC9PcGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdlIGNhbiBjaGFuZ2UgdGhlIHRp bWUKKyAgIC8vIHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRvIHVzZSB0aGUg bW9ub3RvbmljIGNsb2NrLgorICAgcHRocmVhZF9jb25kYXR0cl90IGF0dHI7CitAQCAtOTIsNyAr OTIsNyBAQCBib29sIENvbmRpdGlvblZhcmlhYmxlOjpXYWl0Rm9yKE11dGV4KiBtdXRleCwgY29u c3QgVGltZURlbHRhJiByZWxfdGltZSkgeworICAgICAgICZuYXRpdmVfaGFuZGxlXywgJm11dGV4 LT5uYXRpdmVfaGFuZGxlKCksICZ0cyk7CisgI2Vsc2UKKyAjaWYgKFY4X09TX0ZSRUVCU0QgfHwg VjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0QgfHwgXAorLSAgICAgKFY4X09TX0xJTlVYICYm IFY4X0xJQkNfR0xJQkMpKQorKyAgICAgVjhfT1NfTElOVVgpCisgICAvLyBPbiBGcmVlL05ldC9P cGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdlIGNhbiBjaGFuZ2UgdGhlIHRpbWUKKyAgIC8v IHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRvIHVzZSB0aGUgbW9ub3Rvbmlj IGNsb2NrLgorICAgcmVzdWx0ID0gY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0cyk7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1u by1leGVjaW5mby5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLW5vLWV4ZWNpbmZvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uM2NlZGUxYjBhNTcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEz L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbm8tZXhlY2luZm8ucGF0Y2gKQEAgLTAsMCArMSw3MiBA QAorLS0tIGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYy5vcmlnCTIwMTktMDUtMTQg MTQ6NDk6NDQuMDAwMDAwMDAwIC0wNDAwCisrKysgYS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bv c2l4LmNjCTIwMTktMDctMDIgMTA6NDM6NDMuNDkwMDQ1MDEzIC0wNDAwCitAQCAtMjcsNyArMjcs NyBAQAorICNpZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorICNpbmNsdWRlIDxjeHhhYmkuaD4K KyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPGV4ZWNp bmZvLmg+CisgI2VuZGlmCisgCitAQCAtODYsNyArODYsNyBAQAorICAgLy8gTm90ZTogY29kZSBp biB0aGlzIGZ1bmN0aW9uIGlzIE5PVCBhc3luYy1zaWduYWwgc2FmZSAoc3RkOjpzdHJpbmcgdXNl cworICAgLy8gbWFsbG9jIGludGVybmFsbHkpLgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19f KSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQo X0FJWCkKKyAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgc2VhcmNoX2Zyb20gPSAwOworICAgd2hp bGUgKHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6ZSgpKSB7CisgICAgIC8vIExvb2sgZm9yIHRoZSBz dGFydCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBmcm9tIHNlYXJjaF9mcm9tLgorQEAgLTEyMSw3ICsx MjEsNyBAQAorICAgICAgIHNlYXJjaF9mcm9tID0gbWFuZ2xlZF9zdGFydCArIDI7CisgICAgIH0K KyAgIH0KKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisrI2VuZGlmICAvLyBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyB9Cisg I2VuZGlmICAvLyAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorIAorQEAgLTEzMyw3ICsxMzMsNyBA QAorICAgdmlydHVhbCB+QmFja3RyYWNlT3V0cHV0SGFuZGxlcigpID0gZGVmYXVsdDsKKyB9Owor IAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyB2b2lkIE91dHB1dFBvaW50ZXIodm9p ZCogcG9pbnRlciwgQmFja3RyYWNlT3V0cHV0SGFuZGxlciogaGFuZGxlcikgeworICAgLy8gVGhp cyBzaG91bGQgYmUgbW9yZSB0aGFuIGVub3VnaCB0byBzdG9yZSBhIDY0LWJpdCBudW1iZXIgaW4g aGV4OgorICAgLy8gMTYgaGV4IGRpZ2l0cyArIDEgZm9yIG51bGwtdGVybWluYXRvci4KK0BAIC0y MTYsNyArMjE2LDcgQEAKKyAgIH0KKyAjZW5kaWYgIC8vIGRlZmluZWQoVVNFX1NZTUJPTElaRSkK KyB9CistI2VuZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQor KyNlbmRpZiAgLy8gZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgCisgdm9p ZCBQcmludFRvU3RkZXJyKGNvbnN0IGNoYXIqIG91dHB1dCkgeworICAgLy8gTk9URTogVGhpcyBj b2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCitA QCAtODEyLDcgKzgxMiw3IEBACisgICAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1z aWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAgIC8vIHN0YWNrIGR1bXBpbmcg c2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJlLgorIAor LSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIC8vIFRob3VnaCB0aGUgYmFja3RyYWNl IEFQSSBtYW4gcGFnZSBkb2VzIG5vdCBsaXN0IGFueSBwb3NzaWJsZSBuZWdhdGl2ZQorICAgLy8g cmV0dXJuIHZhbHVlcywgd2UgdGFrZSBubyBjaGFuY2UuCisgICByZXR1cm4gYmFzZTo6c2F0dXJh dGVkX2Nhc3Q8c2l6ZV90PihiYWNrdHJhY2UodHJhY2UsIGNvdW50KSk7CitAQCAtODI1LDEzICs4 MjUsMTMgQEAKKyAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAo aXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAvLyBzdGFjayBkdW1waW5nIHNpZ25hbCBoYW5kbGVy KS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KKyAKKy0jaWYgIWRlZmluZWQo X19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCisgICBQcmludEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxlcjsK KyAgIFByb2Nlc3NCYWNrdHJhY2UodHJhY2VfLCBjb3VudF8sIHByZWZpeF9zdHJpbmcsICZoYW5k bGVyKTsKKyAjZW5kaWYKKyB9CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZv aWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KHN0ZDo6b3N0cmVhbSogb3Ms CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog cHJlZml4X3N0cmluZykgY29uc3QgeworICAgU3RyZWFtQmFja3RyYWNlT3V0cHV0SGFuZGxlciBo YW5kbGVyKG9zKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVz L2Nocm9taXVtLW5vLWdldGNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1uby1nZXRjb250ZXh0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMjUwMmI1YTA2YWNiCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbm8tZ2V0Y29udGV4dC5wYXRj aApAQCAtMCwwICsxLDI3IEBACistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2Mub3JpZwkyMDE1LTEy LTA2IDA5OjU5OjU1LjU1NDUzNjY0NiArMDEwMAorKysrIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCTIw MTUtMTItMDYgMTA6MDE6MTYuODE4MjM4MDM1ICswMTAwCitAQCAtNDc3LDcgKzQ3Nyw5IEBAIGJv b2wgRXhjZXB0aW9uSGFuZGxlcjo6U2ltdWxhdGVTaWduYWxEZWwKKyAgIHNpZ2luZm8uc2lfY29k ZSA9IFNJX1VTRVI7CisgICBzaWdpbmZvLnNpX3BpZCA9IGdldHBpZCgpOworICAgdWNvbnRleHRf dCBjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGdldGNvbnRleHQoJmNvbnRl eHQpOworKyNlbmRpZgorICAgcmV0dXJuIEhhbmRsZVNpZ25hbChzaWcsICZzaWdpbmZvLCAmY29u dGV4dCk7CisgfQorIAorQEAgLTY0Nyw5ICs2NDksMTQgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVy OjpXcml0ZU1pbmlkdW1wKCkgeworICAgc3lzX3ByY3RsKFBSX1NFVF9EVU1QQUJMRSwgMSwgMCwg MCwgMCk7CisgCisgICBDcmFzaENvbnRleHQgY29udGV4dDsKKysKKysjaWYgZGVmaW5lZChfX0dM SUJDX18pCisgICBpbnQgZ2V0Y29udGV4dF9yZXN1bHQgPSBnZXRjb250ZXh0KCZjb250ZXh0LmNv bnRleHQpOworICAgaWYgKGdldGNvbnRleHRfcmVzdWx0KQorICAgICByZXR1cm4gZmFsc2U7Cisr I2Vsc2UKKysgIHJldHVybiBmYWxzZTsKKysjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZf XykKKyAgIC8vIEluIENQVUZpbGxGcm9tVUNvbnRleHQgaW4gbWluaWR1bXB3cml0ZXIuY2MgdGhl IHN0YWNrIHBvaW50ZXIgaXMgcmV0cmlldmVkCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u MTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXJldmVydC1kcm9w LW9mLXN5c3RlbS1qYXZhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uYzNmOTdjN2M0ZDFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEz L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2gK QEAgLTAsMCArMSwxNSBAQAorVGhpcyB3YXMgZHJvcHBlZCBmb3Igc29tZSByZWFzb24gaW4gNjk1 MWMzN2NlY2QwNTk3OWIyMzJhMzllNWMxMGU2MzQ2YTBmNzRlZgorLS0tIGEvdGhpcmRfcGFydHkv Y2xvc3VyZV9jb21waWxlci9jb21waWxlci5weQkyMDIxLTA1LTIwIDA0OjE3OjUzLjAwMDAwMDAw MCArMDIwMAorKysrIC0JMjAyMS0wNS0yNSAyMDozMToxMC4xMDI5NzE3NjUgKzAyMDAKK0BAIC0x Myw4ICsxMyw5IEBACisgCisgCisgX0NVUlJFTlRfRElSID0gb3MucGF0aC5qb2luKG9zLnBhdGgu ZGlybmFtZShfX2ZpbGVfXykpCistX0pBVkFfUEFUSCA9IG9zLnBhdGguam9pbihfQ1VSUkVOVF9E SVIsICIuLiIsICJqZGsiLCAiY3VycmVudCIsICJiaW4iLCAiamF2YSIpCistYXNzZXJ0IG9zLnBh dGguaXNmaWxlKF9KQVZBX1BBVEgpLCAiamF2YSBvbmx5IGFsbG93ZWQgaW4gYW5kcm9pZCBidWls ZHMiCisrX0pBVkFfQklOID0gImphdmEiCisrX0pES19QQVRIID0gb3MucGF0aC5qb2luKF9DVVJS RU5UX0RJUiwgIi4uIiwgImpkayIsICJjdXJyZW50IiwgImJpbiIsICJqYXZhIikKKytfSkFWQV9Q QVRIID0gX0pES19QQVRIIGlmIG9zLnBhdGguaXNmaWxlKF9KREtfUEFUSCkgZWxzZSBfSkFWQV9C SU4KKyAKKyBjbGFzcyBDb21waWxlcihvYmplY3QpOgorICAgIiIiUnVucyB0aGUgQ2xvc3VyZSBj b21waWxlciBvbiBnaXZlbiBzb3VyY2UgZmlsZXMgdG8gdHlwZWNoZWNrIHRoZW0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNhbmRib3gtbWVt YmFycmllci5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVt LXNhbmRib3gtbWVtYmFycmllci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjk5ODU1MmMyZjllNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaApAQCAt MCwwICsxLDEwIEBACistLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmNjCisrKysgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmNjCitAQCAtMzcwLDYgKzM3MCw3IEBACisgICBzd2l0Y2ggKHN5c25vKSB7Cisg ICAgIGNhc2UgX19OUl9leGl0OgorICAgICBjYXNlIF9fTlJfZXhpdF9ncm91cDoKKysgICAgY2Fz ZSBfX05SX21lbWJhcnJpZXI6CisgICAgIGNhc2UgX19OUl93YWl0NDoKKyAgICAgY2FzZSBfX05S X3dhaXRpZDoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxl Y3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNhbmRib3gtc2NoZWRfZ2V0cGFyYW0ucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zYW5kYm94LXNj aGVkX2dldHBhcmFtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uODdmMTFhZjQzYzA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEzL2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tc2FuZGJveC1zY2hlZF9nZXRwYXJhbS5wYXRjaApAQCAtMCww ICsxLDIwIEBACitBbGxvdyBTWVNfc2NoZWRfZ2V0cGFyYW0gYW5kIFNZU19zY2hlZF9nZXRzY2hl ZHVsZXIKK211c2wgdXNlcyB0aGVtIGZvciBwdGhyZWFkX2dldHNjaGVkcGFyYW0oKQorCitzb3Vy Y2U6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0L2NvbW11bml0eS9j aHJvbWl1bT9pZD01NGFmOWY4YWMyNGY1MmQzODJjNTc1OGUyNDQ1YmYwMjA2ZWZmNDBlCisKKy0t LSBhL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2Mub3Jp ZwkyMDE5LTEwLTA4IDIxOjAzOjE4LjI1MzA4MDQyNSArMDIwMAorKysrIGEvc2FuZGJveC9wb2xp Y3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwkyMDE5LTEwLTA4IDIxOjA0OjE5 LjY0ODU0OTcxOCArMDIwMAorQEAgLTg4LDEwICs4OCwxMCBAQAorICAgICBjYXNlIF9fTlJfc3lz aW5mbzoKKyAgICAgY2FzZSBfX05SX3RpbWVzOgorICAgICBjYXNlIF9fTlJfdW5hbWU6CistICAg ICAgcmV0dXJuIEFsbG93KCk7CistICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToKKyAg ICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2No ZWR1bGVyOgorKyAgICAgIHJldHVybiBBbGxvdygpOworKyAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0 YWZmaW5pdHk6CisgICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisgICAgICAgcmV0 dXJuIHNhbmRib3g6OlJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlkKCksIHN5c25vKTsK KyAgICAgY2FzZSBfX05SX3BybGltaXQ2NDoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24x My9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNuZGlvLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEz L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc25kaW8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi40Y2FiNDhkNTA4MjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zbmRpby5wYXRjaApAQCAtMCww ICsxLDg4NiBAQAorZGlmZiAtTmF1ciBjaHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9C VUlMRC5nbiBjaHJvbWl1bS04My4wLjQxMDMuOTcvbWVkaWEvQlVJTEQuZ24KKy0tLSBhL21lZGlh L0JVSUxELmduLm9yaWcJMjAyMC0wNi0wMyAyMDo0MDoyNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBh L21lZGlhL0JVSUxELmduCTIwMjAtMDYtMTMgMTc6MzI6MjguNTEwMzk1OTc1ICswMjAwCitAQCAt NjUsNiArNjUsOSBAQAorICAgICAgIGRlZmluZXMgKz0gWyAiRExPUEVOX1BVTFNFQVVESU8iIF0K KyAgICAgfQorICAgfQorKyAgaWYgKHVzZV9zbmRpbykgeworKyAgICBkZWZpbmVzICs9IFsgIlVT RV9TTkRJTyIgXQorKyAgfQorICAgaWYgKHVzZV9jcmFzKSB7CisgICAgIGRlZmluZXMgKz0gWyAi VVNFX0NSQVMiIF0KKyAgIH0KK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcv bWVkaWEvYXVkaW8vQlVJTEQuZ24gY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL0JV SUxELmduCistLS0gYS9tZWRpYS9hdWRpby9CVUlMRC5nbi5vcmlnCTIwMjAtMDYtMDMgMjA6Mzk6 MzcuMDAwMDAwMDAwICswMjAwCisrKysgYS9tZWRpYS9hdWRpby9CVUlMRC5nbgkyMDIwLTA2LTEz IDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTIzNiw2ICsyMzYsMTcgQEAKKyAgICAgc291 cmNlcyArPSBbICJsaW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjIiBdCisgICB9CisgCisrICBp ZiAodXNlX3NuZGlvKSB7CisrICAgIGxpYnMgKz0gWyAic25kaW8iIF0KKysgICAgc291cmNlcyAr PSBbCisrICAgICAgInNuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uY2MiLAorKyAgICAgICJzbmRp by9zbmRpb19pbnB1dC5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmgiLAorKyAgICAg ICJzbmRpby9zbmRpb19vdXRwdXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19vdXRwdXQuaCIK KysgICAgXQorKyAgfQorKworICAgaWYgKHVzZV9hbHNhKSB7CisgICAgIGxpYnMgKz0gWyAiYXNv dW5kIiBdCisgICAgIHNvdXJjZXMgKz0gWworZGlmZiAtTmF1ciBjaHJvbWl1bS04My4wLjQxMDMu OTcub3JpZy9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjIGNocm9taXVt LTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCist LS0gYS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjLm9yaWcJMjAyMC0w Ni0wMyAyMDozOTozNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBhL21lZGlhL2F1ZGlvL2xpbnV4L2F1 ZGlvX21hbmFnZXJfbGludXguY2MJMjAyMC0wNi0xMyAxODowOTo0My42MjMzMzMxNjcgKzAyMDAK K0BAIC0xOSw2ICsxOSwxMSBAQAorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9hdWRpb19t YW5hZ2VyX3B1bHNlLmgiCisgI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3B1bHNlL3B1bHNlX3V0aWwu aCIKKyAjZW5kaWYKKysjaWYgZGVmaW5lZChVU0VfU05ESU8pCisrI2luY2x1ZGUgIm1lZGlhL2F1 ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8v c25kaW8vc25kaW9faW5wdXQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9f b3V0cHV0LmgiCisrI2VuZGlmCisgCisgbmFtZXNwYWNlIG1lZGlhIHsKKyAKK0BAIC0yNiw3ICsz MSw4IEBACisgICBrUHVsc2UsCisgICBrQWxzYSwKKyAgIGtDcmFzLAorLSAga0F1ZGlvSU9NYXgg PSBrQ3JhcyAgLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQgZW50cnku CisrICBrU25kaW8sCisrICBrQXVkaW9JT01heCA9IGtTbmRpbyAvLyBNdXN0IGFsd2F5cyBiZSBl cXVhbCB0byBsYXJnZXN0IGxvZ2dlZCBlbnRyeS4KKyB9OworIAorIHN0ZDo6dW5pcXVlX3B0cjxt ZWRpYTo6QXVkaW9NYW5hZ2VyPiBDcmVhdGVBdWRpb01hbmFnZXIoCitAQCAtMzksNiArNDUsMTYg QEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9f bG9nX2ZhY3RvcnkpOworICAgfQorIAorKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykKKysgIHN0cnVj dCBzaW9faGRsICpoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUExBWSwgMCk7CisrICBp ZiAoaGRsICE9IE5VTEwpIHsKKysgICAgc2lvX2Nsb3NlKGhkbCk7CisrICAgIFVNQV9ISVNUT0dS QU1fRU5VTUVSQVRJT04oIk1lZGlhLkxpbnV4QXVkaW9JTyIsIGtTbmRpbywga0F1ZGlvSU9NYXgg KyAxKTsKKysgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9NYW5hZ2VyU25kaW8+KHN0 ZDo6bW92ZShhdWRpb190aHJlYWQpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAgfQorKyNlbmRpZgorKwor ICNpZiBkZWZpbmVkKFVTRV9DUkFTKQorICAgaWYgKGJhc2U6OkNvbW1hbmRMaW5lOjpGb3JDdXJy ZW50UHJvY2VzcygpLT5IYXNTd2l0Y2goc3dpdGNoZXM6OmtVc2VDcmFzKSkgeworICAgICBVTUFf SElTVE9HUkFNX0VOVU1FUkFUSU9OKCJNZWRpYS5MaW51eEF1ZGlvSU8iLCBrQ3Jhcywga0F1ZGlv SU9NYXggKyAxKTsKK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEv YXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5jYyBjaHJvbWl1bS04My4wLjQxMDMuOTcv bWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5jYworLS0tIGEvbWVkaWEvYXVk aW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5jYy5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgYS9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3Nu ZGlvLmNjCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5ICswMjAwCitAQCAtMCwwICsxLDE0 OCBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJp Z2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi eSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VO U0UgZmlsZS4KKysKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9z bmRpby5oIgorKworKyNpbmNsdWRlICJiYXNlL21ldHJpY3MvaGlzdG9ncmFtX21hY3Jvcy5oIgor KyNpbmNsdWRlICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRp by9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVk aW9fb3V0cHV0X2Rpc3BhdGNoZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25k aW9faW5wdXQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0Lmgi CisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbGltaXRzLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2Uv bWVkaWFfc3dpdGNoZXMuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworKworKy8vIE1heGlt dW0gbnVtYmVyIG9mIG91dHB1dCBzdHJlYW1zIHRoYXQgY2FuIGJlIG9wZW4gc2ltdWx0YW5lb3Vz bHkuCisrc3RhdGljIGNvbnN0IGludCBrTWF4T3V0cHV0U3RyZWFtcyA9IDQ7CisrCisrLy8gRGVm YXVsdCBzYW1wbGUgcmF0ZSBmb3IgaW5wdXQgYW5kIG91dHB1dCBzdHJlYW1zLgorK3N0YXRpYyBj b25zdCBpbnQga0RlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7CisrCisrdm9pZCBBZGREZWZhdWx0 RGV2aWNlKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgRENIRUNLKGRldmlj ZV9uYW1lcy0+ZW1wdHkoKSk7CisrICBkZXZpY2VfbmFtZXMtPnB1c2hfZnJvbnQoQXVkaW9EZXZp Y2VOYW1lOjpDcmVhdGVEZWZhdWx0KCkpOworK30KKysKKytib29sIEF1ZGlvTWFuYWdlclNuZGlv OjpIYXNBdWRpb091dHB1dERldmljZXMoKSB7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrYm9v bCBBdWRpb01hbmFnZXJTbmRpbzo6SGFzQXVkaW9JbnB1dERldmljZXMoKSB7CisrICByZXR1cm4g dHJ1ZTsKKyt9CisrCisrdm9pZCBBdWRpb01hbmFnZXJTbmRpbzo6R2V0QXVkaW9JbnB1dERldmlj ZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKysgIERDSEVD SyhkZXZpY2VfbmFtZXMtPmVtcHR5KCkpOworKyAgQWRkRGVmYXVsdERldmljZShkZXZpY2VfbmFt ZXMpOworK30KKysKKyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRBdWRpb091dHB1dERldmlj ZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKysgIEFkZERl ZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisrY29uc3QgY2hhciogQXVkaW9NYW5h Z2VyU25kaW86OkdldE5hbWUoKSB7CisrICByZXR1cm4gIlNORElPIjsKKyt9CisrCisrQXVkaW9Q YXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMoCisr ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIHsKKysgIHN0YXRpYyBjb25zdCBpbnQg a0RlZmF1bHRJbnB1dEJ1ZmZlclNpemUgPSAxMDI0OworKworKyAgaW50IHVzZXJfYnVmZmVyX3Np emUgPSBHZXRVc2VyQnVmZmVyU2l6ZSgpOworKyAgaW50IGJ1ZmZlcl9zaXplID0gdXNlcl9idWZm ZXJfc2l6ZSA/CisrICAgICAgdXNlcl9idWZmZXJfc2l6ZSA6IGtEZWZhdWx0SW5wdXRCdWZmZXJT aXplOworKworKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygKKysgICAgICBBdWRpb1BhcmFtZXRl cnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgQ0hBTk5FTF9MQVlPVVRfU1RFUkVPLAorKyAgICAg IGtEZWZhdWx0U2FtcGxlUmF0ZSwgYnVmZmVyX3NpemUpOworK30KKysKKytBdWRpb01hbmFnZXJT bmRpbzo6QXVkaW9NYW5hZ2VyU25kaW8oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRp b190aHJlYWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRp b0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5KQorKyAgICA6IEF1ZGlvTWFuYWdlckJhc2Uo c3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19s b2dfZmFjdG9yeSkgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiQXVkaW9NYW5hZ2VyU25kaW8iOwor KyAgU2V0TWF4T3V0cHV0U3RyZWFtc0FsbG93ZWQoa01heE91dHB1dFN0cmVhbXMpOworK30KKysK KytBdWRpb01hbmFnZXJTbmRpbzo6fkF1ZGlvTWFuYWdlclNuZGlvKCkgeworKyAgU2h1dGRvd24o KTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTGlu ZWFyT3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysg ICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNLX0VRKEF1ZGlv UGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVy biBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvT3V0cHV0U3RyZWFtKiBB dWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0 IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNl X2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBETE9HX0lG KEVSUk9SLCAhZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1wbGVtZW50ZWQhIjsKKysgIERD SEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgcGFyYW1zLmZv cm1hdCgpKTsKKysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1 ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTGluZWFySW5wdXRTdHJlYW0o CisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0 cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7 CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSLCBwYXJhbXMu Zm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytB dWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xhdGVuY3lJbnB1dFN0 cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IHN0 ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJh Y2spIHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5D WSwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlSW5wdXRTdHJlYW0ocGFyYW1zKTsK Kyt9CisrCisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRQcmVmZXJyZWRP dXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2Rl dmljZV9pZCwKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9wYXJhbXMpIHsKKysg IC8vIFRPRE8odG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2aWNlX2lkfC4KKysgIERMT0dfSUYo RVJST1IsICFvdXRwdXRfZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1wbGVtZW50ZWQhIjsK KysgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRPdXRwdXRCdWZmZXJTaXplID0gMjA0ODsKKysK KysgIENoYW5uZWxMYXlvdXQgY2hhbm5lbF9sYXlvdXQgPSBDSEFOTkVMX0xBWU9VVF9TVEVSRU87 CisrICBpbnQgc2FtcGxlX3JhdGUgPSBrRGVmYXVsdFNhbXBsZVJhdGU7CisrICBpbnQgYnVmZmVy X3NpemUgPSBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7CisrICBpZiAoaW5wdXRfcGFyYW1zLklz VmFsaWQoKSkgeworKyAgICBzYW1wbGVfcmF0ZSA9IGlucHV0X3BhcmFtcy5zYW1wbGVfcmF0ZSgp OworKyAgICBjaGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFtcy5jaGFubmVsX2xheW91dCgpOwor KyAgICBidWZmZXJfc2l6ZSA9IHN0ZDo6bWluKGJ1ZmZlcl9zaXplLCBpbnB1dF9wYXJhbXMuZnJh bWVzX3Blcl9idWZmZXIoKSk7CisrICB9CisrCisrICBpbnQgdXNlcl9idWZmZXJfc2l6ZSA9IEdl dFVzZXJCdWZmZXJTaXplKCk7CisrICBpZiAodXNlcl9idWZmZXJfc2l6ZSkKKysgICAgYnVmZmVy X3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplOworKworKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygK KysgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgY2hhbm5lbF9s YXlvdXQsCisrICAgICAgc2FtcGxlX3JhdGUsIGJ1ZmZlcl9zaXplKTsKKyt9CisrCisrQXVkaW9J bnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VJbnB1dFN0cmVhbSgKKysgICAgY29u c3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERMT0coV0FSTklORykgPDwgIk1ha2VJ bnB1dFN0cmVhbSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVkaW9JbnB1dFN0cmVhbSh0aGlzLAor KyAgICAgICAgICAgICBBdWRpb0RldmljZURlc2NyaXB0aW9uOjprRGVmYXVsdERldmljZUlkLCBw YXJhbXMpOworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1h a2VPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKSB7Cisr ICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlT3V0cHV0U3RyZWFtIjsKKysgIHJldHVybiBuZXcgU25k aW9BdWRpb091dHB1dFN0cmVhbShwYXJhbXMsIHRoaXMpOworK30KKysKKyt9ICAvLyBuYW1lc3Bh Y2UgbWVkaWEKK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvYXVk aW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRp YS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgKKy0tLSBhL21lZGlhL2F1ZGlvL3Nu ZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaC5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgYS9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgJ MjAyMC0wNi0xMyAxNzozMjoyOC41MTEzOTU5NjkgKzAyMDAKK0BAIC0wLDAgKzEsNjUgQEAKKysv LyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu CisrCisrI2lmbmRlZiBNRURJQV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCisr I2RlZmluZSBNRURJQV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCisrCisrI2lu Y2x1ZGUgPHNldD4KKysKKysjaW5jbHVkZSAiYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgorKyNp bmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS9yZWZfY291bnRl ZC5oIgorKyNpbmNsdWRlICJiYXNlL3RocmVhZGluZy90aHJlYWQuaCIKKysjaW5jbHVkZSAibWVk aWEvYXVkaW8vYXVkaW9fbWFuYWdlcl9iYXNlLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysK KytjbGFzcyBNRURJQV9FWFBPUlQgQXVkaW9NYW5hZ2VyU25kaW8gOiBwdWJsaWMgQXVkaW9NYW5h Z2VyQmFzZSB7CisrIHB1YmxpYzoKKysgIEF1ZGlvTWFuYWdlclNuZGlvKHN0ZDo6dW5pcXVlX3B0 cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAorKyAgICAgICAgICAgICAgICAgICBBdWRpb0xv Z0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5KTsKKysgIH5BdWRpb01hbmFnZXJTbmRpbygpIG92 ZXJyaWRlOworKworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9NYW5hZ2VyLgorKyAgYm9v bCBIYXNBdWRpb091dHB1dERldmljZXMoKSBvdmVycmlkZTsKKysgIGJvb2wgSGFzQXVkaW9JbnB1 dERldmljZXMoKSBvdmVycmlkZTsKKysgIHZvaWQgR2V0QXVkaW9JbnB1dERldmljZU5hbWVzKEF1 ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgb3ZlcnJpZGU7CisrICB2b2lkIEdldEF1ZGlv T3V0cHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlk ZTsKKysgIEF1ZGlvUGFyYW1ldGVycyBHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgICAg Y29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCkgb3ZlcnJpZGU7CisrICBjb25zdCBjaGFyKiBH ZXROYW1lKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFn ZXJCYXNlLgorKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0oCisr ICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3QgTG9nQ2Fs bGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisrICBBdWRpb091dHB1dFN0cmVhbSogTWFr ZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBw YXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgICBjb25z dCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlvSW5wdXRTdHJl YW0qIE1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMm IHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNv bnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKyAgQXVkaW9JbnB1dFN0 cmVhbSogTWFrZUxvd0xhdGVuY3lJbnB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFt ZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAg ICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKworKyBwcm90 ZWN0ZWQ6CisrICBBdWRpb1BhcmFtZXRlcnMgR2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFyYW1l dGVycygKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCwKKysgICAg ICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgb3ZlcnJpZGU7CisrCisrIHBy aXZhdGU6CisrICAvLyBDYWxsZWQgYnkgTWFrZUxpbmVhck91dHB1dFN0cmVhbSBhbmQgTWFrZUxv d0xhdGVuY3lPdXRwdXRTdHJlYW0uCisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZU91dHB1dFN0 cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisrICBBdWRpb0lucHV0U3RyZWFt KiBNYWtlSW5wdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworKworKyAg RElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKEF1ZGlvTWFuYWdlclNuZGlvKTsKKyt9OworKworK30g IC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fQVVE SU9fTUFOQUdFUl9TTkRJT19IXworZGlmZiAtTmF1ciBjaHJvbWl1bS04My4wLjQxMDMuOTcub3Jp Zy9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5jYyBjaHJvbWl1bS04My4wLjQxMDMuOTcv bWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuY2MKKy0tLSBhL21lZGlhL2F1ZGlvL3NuZGlv L3NuZGlvX2lucHV0LmNjLm9yaWcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBhL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjCTIwMjAtMDYtMTMgMTc6MzI6 MjguNTExMzk1OTY5ICswMjAwCitAQCAtMCwwICsxLDIwMCBAQAorKy8vIENvcHlyaWdodCAyMDEz IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0 aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj YW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpbmNsdWRlICJiYXNl L2JpbmQuaCIKKysjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisrI2luY2x1ZGUgImJhc2UvbWFj cm9zLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1wX2hlbHBlci5oIgor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrI2lu Y2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVk aW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK3N0YXRp YyBjb25zdCBTYW1wbGVGb3JtYXQga1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7Cisr Cisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywg aW50IGRlbHRhKQorK3sKKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19j YXN0PFNuZGlvQXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5od19kZWxheSAr PSBkZWx0YTsKKyt9CisrCisrdm9pZCAqU25kaW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRFbnRy eSh2b2lkICphcmcpIHsKKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19j YXN0PFNuZGlvQXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5UaHJlYWRMb29w KCk7CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTbmRp b0F1ZGlvSW5wdXRTdHJlYW0oQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlciwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpCisrICAgIDogbWFuYWdlcihtYW5hZ2VyKSwK KysgICAgICBwYXJhbXMocGFyYW1zKSwKKysgICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0 ZShwYXJhbXMpKSwKKysgICAgICBzdGF0ZShrQ2xvc2VkKSB7CisrfQorKworK1NuZGlvQXVkaW9J bnB1dFN0cmVhbTo6flNuZGlvQXVkaW9JbnB1dFN0cmVhbSgpIHsKKysgIGlmIChzdGF0ZSAhPSBr Q2xvc2VkKQorKyAgICBDbG9zZSgpOworK30KKysKKytib29sIFNuZGlvQXVkaW9JbnB1dFN0cmVh bTo6T3BlbigpIHsKKysgIHN0cnVjdCBzaW9fcGFyIHBhcjsKKysgIGludCBzaWc7CisrCisrICBp ZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuIGZhbHNlOworKworKyAgaWYgKHBhcmFt cy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIgJiYKKysgICAg ICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVO Q1kpIHsKKysgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsK KysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgc2lvX2luaXRwYXIoJnBhcik7CisrICBw YXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFyLnJjaGFuID0gcGFyYW1zLmNo YW5uZWxzKCk7CisrICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1Nh bXBsZUZvcm1hdCk7CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworKyAgcGFyLnNpZyA9IHNp ZyA9IHBhci5iaXRzICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7Cisr ICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKysKKysgIGhkbCA9 IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19SRUMsIDApOworKworKyAgaWYgKGhkbCA9PSBOVUxM KSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7Cisr ICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIGlmICghc2lvX3NldHBhcihoZGwsICZwYXIp IHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRu J3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRfY2xvc2U7CisrICB9Cisr CisrICBpZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLnNhbXBsZV9yYXRlKCkg fHwKKysgICAgICBwYXIucmNoYW4gIT0gKHVuc2lnbmVkIGludClwYXJhbXMuY2hhbm5lbHMoKSB8 fAorKyAgICAgIHBhci5iaXRzICAhPSAodW5zaWduZWQgaW50KVNhbXBsZUZvcm1hdFRvQml0c1Bl ckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkgfHwKKysgICAgICBwYXIuc2lnICAgIT0gKHVuc2lnbmVk IGludClzaWcgfHwKKysgICAgICAocGFyLmJwcyA+IDEgJiYgcGFyLmxlICE9IFNJT19MRV9OQVRJ VkUpIHx8CisrICAgICAgKHBhci5iaXRzICE9IHBhci5icHMgKiA4KSkgeworKyAgICBMT0coRVJS T1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Ns b3NlOworKyAgfQorKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIGJ1ZmZlciA9IG5ldyBjaGFyW2F1 ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0 KV07CisrICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsKKysgIHJldHVy biB0cnVlOworK2JhZF9jbG9zZToKKysgIHNpb19jbG9zZShoZGwpOworKyAgcmV0dXJuIGZhbHNl OworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RhcnQoQXVkaW9JbnB1dENh bGxiYWNrKiBjYikgeworKworKyAgU3RhcnRBZ2MoKTsKKysKKysgIHN0YXRlID0ga1J1bm5pbmc7 CisrICBod19kZWxheSA9IDA7CisrICBjYWxsYmFjayA9IGNiOworKyAgc2lvX3N0YXJ0KGhkbCk7 CisrICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgJlRocmVhZEVudHJ5LCB0aGlz KSAhPSAwKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbC10aW1l IHRocmVhZCBmb3IgcmVjb3JkaW5nLiI7CisrICAgIHNpb19zdG9wKGhkbCk7CisrICAgIHN0YXRl ID0ga1N0b3BwZWQ7CisrICB9CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpT dG9wKCkgeworKworKyAgaWYgKHN0YXRlID09IGtTdG9wcGVkKQorKyAgICByZXR1cm47CisrCisr ICBzdGF0ZSA9IGtTdG9wV2FpdDsKKysgIHB0aHJlYWRfam9pbih0aHJlYWQsIE5VTEwpOworKyAg c2lvX3N0b3AoaGRsKTsKKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrCisrICBTdG9wQWdjKCk7Cisr fQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpDbG9zZSgpIHsKKysKKysgIGlmIChz dGF0ZSA9PSBrQ2xvc2VkKQorKyAgICByZXR1cm47CisrCisrICBpZiAoc3RhdGUgPT0ga1J1bm5p bmcpCisrICAgIFN0b3AoKTsKKysKKysgIHN0YXRlID0ga0Nsb3NlZDsKKysgIGRlbGV0ZSBbXSBi dWZmZXI7CisrICBzaW9fY2xvc2UoaGRsKTsKKysKKysgIG1hbmFnZXItPlJlbGVhc2VJbnB1dFN0 cmVhbSh0aGlzKTsKKyt9CisrCisrZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6R2V0TWF4 Vm9sdW1lKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZAorKyAgcmV0dXJuIDAuMDsKKyt9CisrCisr dm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNldFZvbHVtZShkb3VibGUgdm9sdW1lKSB7Cisr ICAvLyBOb3Qgc3VwcG9ydGVkLiBEbyBub3RoaW5nLgorK30KKysKKytkb3VibGUgU25kaW9BdWRp b0lucHV0U3RyZWFtOjpHZXRWb2x1bWUoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLgorKyAgcmV0 dXJuIDAuMDsKKyt9CisrCisrYm9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OklzTXV0ZWQoKSB7 CisrICAvLyBOb3Qgc3VwcG9ydGVkLgorKyAgcmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFNu ZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0T3V0cHV0RGV2aWNlRm9yQWVjKAorKyAgICBjb25zdCBz dGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4KKyt9 CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZExvb3Aodm9pZCkgeworKyAg c2l6ZV90IHRvZG8sIG47CisrICBjaGFyICpkYXRhOworKyAgdW5zaWduZWQgaW50IG5mcmFtZXM7 CisrICBkb3VibGUgbm9ybWFsaXplZF92b2x1bWUgPSAwLjA7CisrCisrICBuZnJhbWVzID0gYXVk aW9fYnVzLT5mcmFtZXMoKTsKKysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVubmluZyAmJiAhc2lv X2VvZihoZGwpKSB7CisrCisrICAgIEdldEFnY1ZvbHVtZSgmbm9ybWFsaXplZF92b2x1bWUpOwor KworKyAgICAvLyByZWFkIG9uZSBibG9jaworKyAgICB0b2RvID0gbmZyYW1lcyAqIHBhcmFtcy5H ZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOworKyAgICBkYXRhID0gYnVmZmVyOworKyAg ICB3aGlsZSAodG9kbyA+IDApIHsKKysgICAgICBuID0gc2lvX3JlYWQoaGRsLCBkYXRhLCB0b2Rv KTsKKysgICAgICBpZiAobiA9PSAwKQorKyAgICAgICAgcmV0dXJuOwkvLyB1bnJlY292ZXJhYmxl IEkvTyBlcnJvcgorKyAgICAgIHRvZG8gLT0gbjsKKysgICAgICBkYXRhICs9IG47CisrICAgIH0K KysgICAgaHdfZGVsYXkgLT0gbmZyYW1lczsKKysKKysgICAgLy8gY29udmVydCBmcmFtZXMgY291 bnQgdG8gVGltZURlbHRhCisrICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxheSA9IEF1ZGlv VGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisrICAgICAgcGFyYW1zLnNh bXBsZV9yYXRlKCkpOworKworKyAgICAvLyBwdXNoIGludG8gYnVzCisrICAgIGF1ZGlvX2J1cy0+ RnJvbUludGVybGVhdmVkKGJ1ZmZlciwgbmZyYW1lcywgU2FtcGxlRm9ybWF0VG9CeXRlc1BlckNo YW5uZWwoa1NhbXBsZUZvcm1hdCkpOworKworKyAgICAvLyBpbnZva2UgY2FsbGJhY2sKKysgICAg Y2FsbGJhY2stPk9uRGF0YShhdWRpb19idXMuZ2V0KCksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCkg LSBkZWxheSwgMS4pOworKyAgfQorK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKK2RpZmYg LU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9f aW5wdXQuaCBjaHJvbWl1bS04My4wLjQxMDMuOTcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5w dXQuaAorLS0tIGEvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaC5vcmlnCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgYS9tZWRpYS9hdWRpby9zbmRpby9zbmRp b19pbnB1dC5oCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5ICswMjAwCitAQCAtMCwwICsx LDkxIEBACisrLy8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworKyNk ZWZpbmUgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKysKKysjaW5jbHVkZSA8c3Rk aW50Lmg+CisrI2luY2x1ZGUgPHN0cmluZz4KKysjaW5jbHVkZSA8c25kaW8uaD4KKysKKysjaW5j bHVkZSAiYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5o IgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS93ZWFrX3B0ci5oIgorKyNpbmNsdWRlICJiYXNlL3Rp bWUvdGltZS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hZ2NfYXVkaW9fc3RyZWFtLmgiCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2lvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlv L2F1ZGlvX2RldmljZV9kZXNjcmlwdGlvbi5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlv X3BhcmFtZXRlcnMuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK2NsYXNzIEF1ZGlvTWFu YWdlckJhc2U7CisrCisrLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNp bmcgc25kaW8oNykKKytjbGFzcyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0gOiBwdWJsaWMgQWdjQXVk aW9TdHJlYW08QXVkaW9JbnB1dFN0cmVhbT4geworKyBwdWJsaWM6CisrICAvLyBQYXNzIHRoaXMg dG8gdGhlIGNvbnN0cnVjdG9yIGlmIHlvdSB3YW50IHRvIGF0dGVtcHQgYXV0by1zZWxlY3Rpb24K KysgIC8vIG9mIHRoZSBhdWRpbyByZWNvcmRpbmcgZGV2aWNlLgorKyAgc3RhdGljIGNvbnN0IGNo YXIga0F1dG9TZWxlY3REZXZpY2VbXTsKKysKKysgIC8vIENyZWF0ZSBhIFBDTSBPdXRwdXQgc3Ry ZWFtIGZvciB0aGUgU05ESU8gZGV2aWNlIGlkZW50aWZpZWQgYnkKKysgIC8vIHxkZXZpY2VfbmFt ZXwuIElmIHVuc3VyZSBvZiB3aGF0IHRvIHVzZSBmb3IgfGRldmljZV9uYW1lfCwgdXNlCisrICAv LyB8a0F1dG9TZWxlY3REZXZpY2V8LgorKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKEF1ZGlvTWFu YWdlckJhc2UqIGF1ZGlvX21hbmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Rk OjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlv UGFyYW1ldGVycyYgcGFyYW1zKTsKKysKKysgIH5TbmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSBvdmVy cmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvSW5wdXRTdHJlYW0uCisrICBi b29sIE9wZW4oKSBvdmVycmlkZTsKKysgIHZvaWQgU3RhcnQoQXVkaW9JbnB1dENhbGxiYWNrKiBj YWxsYmFjaykgb3ZlcnJpZGU7CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysgIHZvaWQgQ2xv c2UoKSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRNYXhWb2x1bWUoKSBvdmVycmlkZTsKKysgIHZv aWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgZG91YmxlIEdldFZvbHVt ZSgpIG92ZXJyaWRlOworKyAgYm9vbCBJc011dGVkKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldE91 dHB1dERldmljZUZvckFlYyhjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkgb3Zl cnJpZGU7CisrCisrIHByaXZhdGU6CisrCisrICBlbnVtIFN0cmVhbVN0YXRlIHsKKysgICAga0Ns b3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHlldAorKyAgICBrU3RvcHBlZCwgICAgICAg ICAgIC8vIERldmljZSBvcGVuZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQKKysgICAga1J1bm5pbmcs ICAgICAgICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWluZworKyAgICBrU3RvcFdhaXQgICAg ICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRocmVhZCB0byBl eGl0CisrICB9OworKworKyAgLy8gQy1zdHlsZSBjYWxsLWJhY2tzCisrICBzdGF0aWMgdm9pZCBP bk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSk7CisrICBzdGF0aWMgdm9pZCogVGhy ZWFkRW50cnkodm9pZCAqYXJnKTsKKysKKysgIC8vIENvbnRpbnVvdXNseSBtb3ZlcyBkYXRhIGZy b20gdGhlIGRldmljZSB0byB0aGUgY29uc3VtZXIKKysgIHZvaWQgVGhyZWFkTG9vcCgpOworKyAg Ly8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdo ZW4gd2UgY2xvc2UuCisrICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworKyAgLy8gUGFyYW1l dGVycyBvZiB0aGUgc291cmNlCisrICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOworKyAgLy8gV2Ug c3RvcmUgZGF0YSBoZXJlIGZvciBjb25zdW1lcgorKyAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVz PiBhdWRpb19idXM7CisrICAvLyBDYWxsLWJhY2sgdGhhdCBjb25zdW1lcyByZWNvcmRlZCBkYXRh CisrICBBdWRpb0lucHV0Q2FsbGJhY2sqIGNhbGxiYWNrOyAgLy8gVmFsaWQgZHVyaW5nIGEgcmVj b3JkaW5nIHNlc3Npb24uCisrICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorKyAgc3Ry dWN0IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorKyAg ZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5p bmcgVGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhyZWFkOworKyAgLy8gTnVtYmVyIG9mIGZy YW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGludCBod19kZWxheTsKKysgIC8vIFRl bXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3Jt YXQKKysgIGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRp b0F1ZGlvSW5wdXRTdHJlYW0pOworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisrCisr I2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworZGlmZiAtTmF1ciBj aHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQu Y2MgY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5j YworLS0tIGEvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNjLm9yaWcJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBhL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlv X291dHB1dC5jYwkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCAr MSwxODMgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBM SUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJi YXNlL3RpbWUvdGltZS5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvZGVmYXVsdF90aWNrX2Nsb2Nr LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgorKyNpbmNs dWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVk aWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysK KytzdGF0aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0 UzE2OworKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9p ZCAqYXJnLCBpbnQgZGVsdGEpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBz dGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3 X2RlbGF5IC09IGRlbHRhOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9u Vm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKSB7CisrICBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+ KGFyZyk7CisrCisrICBzZWxmLT52b2wgPSB2b2w7CisrfQorKworK3ZvaWQgKlNuZGlvQXVkaW9P dXRwdXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb091dHB1 dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcp OworKworKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK1Nu ZGlvQXVkaW9PdXRwdXRTdHJlYW06OlNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9Q YXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKQorKyAgICA6IG1hbmFnZXIobWFu YWdlciksCisrICAgICAgcGFyYW1zKHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVz OjpDcmVhdGUocGFyYW1zKSksCisrICAgICAgc3RhdGUoa0Nsb3NlZCksCisrICAgICAgbXV0ZXgo UFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUikgeworK30KKysKKytTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtOjp+U25kaW9BdWRpb091dHB1dFN0cmVhbSgpIHsKKysgIGlmIChzdGF0ZSAhPSBrQ2xvc2Vk KQorKyAgICBDbG9zZSgpOworK30KKysKKytib29sIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9w ZW4oKSB7CisrICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHBh cmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIgJiYKKysg ICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xB VEVOQ1kpIHsKKysgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQu IjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgc2lvX2luaXRwYXIoJnBhcik7CisrICBw YXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFyLnBjaGFuID0gcGFyYW1zLmNo YW5uZWxzKCk7CisrICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1Nh bXBsZUZvcm1hdCk7CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworKyAgcGFyLnNpZyA9IHNp ZyA9IHBhci5iaXRzICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7Cisr ICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKysKKysgIGhkbCA9 IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAwKTsKKysgIGlmIChoZGwgPT0gTlVMTCkg eworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAg ICByZXR1cm4gZmFsc2U7CisrICB9CisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAh c2lvX2dldHBhcihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNl dCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgaWYg KHBhci5yYXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAg ICAgcGFyLnBjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAg ICBwYXIuYml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVs KGtTYW1wbGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2ln IHx8CisrICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAor KyAgICAgIChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAi VW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysg IH0KKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrICB2b2xwZW5kaW5nID0gMDsKKysgIHZvbCA9IDA7 CisrICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdldEJ5 dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVD YWxsYmFjaywgdGhpcyk7CisrICBzaW9fb252b2woaGRsLCAmT25Wb2xDYWxsYmFjaywgdGhpcyk7 CisrICByZXR1cm4gdHJ1ZTsKKysgYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICBy ZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Q2xvc2Uo KSB7CisrICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuOworKyAgaWYgKHN0YXRl ID09IGtSdW5uaW5nKQorKyAgICBTdG9wKCk7CisrICBzdGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxl dGUgW10gYnVmZmVyOworKyAgc2lvX2Nsb3NlKGhkbCk7CisrICBtYW5hZ2VyLT5SZWxlYXNlT3V0 cHV0U3RyZWFtKHRoaXMpOyAgLy8gQ2FsbHMgdGhlIGRlc3RydWN0b3IKKyt9CisrCisrdm9pZCBT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFj aykgeworKyAgc3RhdGUgPSBrUnVubmluZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIHNvdXJjZSA9 IGNhbGxiYWNrOworKyAgc2lvX3N0YXJ0KGhkbCk7CisrICBpZiAocHRocmVhZF9jcmVhdGUoJnRo cmVhZCwgTlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisrICAgIExPRyhFUlJPUikg PDwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZC4iOworKyAgICBzaW9fc3RvcCho ZGwpOworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW06OlN0b3AoKSB7CisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAg IHJldHVybjsKKysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwg TlVMTCk7CisrICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsKKyt9CisrCisr dm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHYpIHsKKysgIHB0 aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgdm9sID0gdiAqIFNJT19NQVhWT0w7CisrICB2 b2xwZW5kaW5nID0gMTsKKysgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrfQorKwor K3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6R2V0Vm9sdW1lKGRvdWJsZSogdikgeworKyAg cHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisrICAqdiA9IHZvbCAqICgxLiAvIFNJT19NQVhW T0wpOworKyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrLy8gVGhpcyBz dHJlYW0gaXMgYWx3YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25kIGJ1ZmZlciBzaXplcywgd2hlcmUg aXQncworKy8vIHN1ZmZpY2llbnQgdG8gc2ltcGx5IGFsd2F5cyBmbHVzaCB1cG9uIFN0YXJ0KCku Cisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpGbHVzaCgpIHt9CisrCisrdm9pZCBTbmRp b0F1ZGlvT3V0cHV0U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIGludCBhdmFpbCwgY291 bnQsIHJlc3VsdDsKKysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVubmluZykgeworKyAgICAvLyBV cGRhdGUgdm9sdW1lIGlmIG5lZWRlZAorKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsK KysgICAgaWYgKHZvbHBlbmRpbmcpIHsKKysgICAgICB2b2xwZW5kaW5nID0gMDsKKysgICAgICBz aW9fc2V0dm9sKGhkbCwgdm9sKTsKKysgICAgfQorKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygm bXV0ZXgpOworKworKyAgICAvLyBHZXQgZGF0YSB0byBwbGF5CisrICAgIGNvbnN0IGJhc2U6OlRp bWVEZWx0YSBkZWxheSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVs YXksCisrCXBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKysgICAgY291bnQgPSBzb3VyY2UtPk9uTW9y ZURhdGEoZGVsYXksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCksIDAsIGF1ZGlvX2J1cy5nZXQoKSk7 CisrICAgIGF1ZGlvX2J1cy0+VG9JbnRlcmxlYXZlZChjb3VudCwgU2FtcGxlRm9ybWF0VG9CeXRl c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCksIGJ1ZmZlcik7CisrICAgIGlmIChjb3VudCA9PSAw KSB7CisrICAgICAgLy8gV2UgaGF2ZSB0byBzdWJtaXQgc29tZXRoaW5nIHRvIHRoZSBkZXZpY2UK KysgICAgICBjb3VudCA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisrICAgICAgbWVtc2V0KGJ1ZmZl ciwgMCwgY291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KSk7Cisr ICAgICAgTE9HKFdBUk5JTkcpIDw8ICJObyBkYXRhIHRvIHBsYXksIHJ1bm5pbmcgZW1wdHkgY3lj bGUuIjsKKysgICAgfQorKworKyAgICAvLyBTdWJtaXQgZGF0YSB0byB0aGUgZGV2aWNlCisrICAg IGF2YWlsID0gY291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsK KysgICAgcmVzdWx0ID0gc2lvX3dyaXRlKGhkbCwgYnVmZmVyLCBhdmFpbCk7CisrICAgIGlmIChy ZXN1bHQgPT0gMCkgeworKyAgICAgIExPRyhXQVJOSU5HKSA8PCAiQXVkaW8gZGV2aWNlIGRpc2Nv bm5lY3RlZC4iOworKyAgICAgIGJyZWFrOworKyAgICB9CisrCisrICAgIC8vIFVwZGF0ZSBoYXJk d2FyZSBwb2ludGVyCisrICAgIGh3X2RlbGF5ICs9IGNvdW50OworKyAgfQorK30KKysKKyt9ICAv LyBuYW1lc3BhY2UgbWVkaWEKK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcv bWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmggY2hyb21pdW0tODMuMC40MTAzLjk3L21l ZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCistLS0gYS9tZWRpYS9hdWRpby9zbmRpby9z bmRpb19vdXRwdXQuaC5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KysgYS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaAkyMDIwLTA2LTEzIDE3OjMyOjI4 LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSw4NiBAQAorKy8vIENvcHlyaWdodCAoYykgMjAx MiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2Yg dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQg Y2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIE1FRElB X0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9f U05ESU9fT1VUUFVUX0hfCisrCisrI2luY2x1ZGUgPHB0aHJlYWQuaD4KKysjaW5jbHVkZSA8c25k aW8uaD4KKysKKysjaW5jbHVkZSAiYmFzZS90aW1lL3RpY2tfY2xvY2suaCIKKysjaW5jbHVkZSAi YmFzZS90aW1lL3RpbWUuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9faW8uaCIKKysK KytuYW1lc3BhY2UgbWVkaWEgeworKworK2NsYXNzIEF1ZGlvTWFuYWdlckJhc2U7CisrCisrLy8g SW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25kaW8oNykKKytjbGFz cyBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtIDogcHVibGljIEF1ZGlvT3V0cHV0U3RyZWFtIHsKKysg cHVibGljOgorKyAgLy8gVGhlIG1hbmFnZXIgaXMgY3JlYXRpbmcgdGhpcyBvYmplY3QKKysgIFNu ZGlvQXVkaW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIpOworKyAgdmly dHVhbCB+U25kaW9BdWRpb091dHB1dFN0cmVhbSgpOworKworKyAgLy8gSW1wbGVtZW50YXRpb24g b2YgQXVkaW9PdXRwdXRTdHJlYW0uCisrICBib29sIE9wZW4oKSBvdmVycmlkZTsKKysgIHZvaWQg Q2xvc2UoKSBvdmVycmlkZTsKKysgIHZvaWQgU3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2Fs bGJhY2spIG92ZXJyaWRlOworKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldFZv bHVtZShkb3VibGUgdm9sdW1lKSBvdmVycmlkZTsKKysgIHZvaWQgR2V0Vm9sdW1lKGRvdWJsZSog dm9sdW1lKSBvdmVycmlkZTsKKysgIHZvaWQgRmx1c2goKSBvdmVycmlkZTsKKysKKysgIGZyaWVu ZCB2b2lkIHNuZGlvX29ubW92ZSh2b2lkICphcmcsIGludCBkZWx0YSk7CisrICBmcmllbmQgdm9p ZCBzbmRpb19vbnZvbCh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpOworKyAgZnJpZW5kIHZv aWQgKnNuZGlvX3RocmVhZHN0YXJ0KHZvaWQgKmFyZyk7CisrCisrIHByaXZhdGU6CisrICBlbnVt IFN0cmVhbVN0YXRlIHsKKysgICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHll dAorKyAgICBrU3RvcHBlZCwgICAgICAgICAgIC8vIERldmljZSBvcGVuZWQsIGJ1dCBub3Qgc3Rh cnRlZCB5ZXQKKysgICAga1J1bm5pbmcsICAgICAgICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxh eWluZworKyAgICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0 aGUgcmVhbC10aW1lIHRocmVhZCB0byBleGl0CisrICB9OworKworKyAgLy8gQy1zdHlsZSBjYWxs LWJhY2tzCisrICBzdGF0aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0 YSk7CisrICBzdGF0aWMgdm9pZCBPblZvbENhbGxiYWNrKHZvaWQgKmFyZywgdW5zaWduZWQgaW50 IHZvbCk7CisrICBzdGF0aWMgdm9pZCogVGhyZWFkRW50cnkodm9pZCAqYXJnKTsKKysKKysgIC8v IENvbnRpbnVvdXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIHByb2R1Y2VyIHRvIHRoZSBkZXZpY2UK KysgIHZvaWQgVGhyZWFkTG9vcCh2b2lkKTsKKysKKysgIC8vIE91ciBjcmVhdG9yLCB0aGUgYXVk aW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNsb3NlLgorKyAgQXVkaW9N YW5hZ2VyQmFzZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQorKyAg QXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKysgIC8vIFNvdXJjZSBzdG9yZXMgZGF0YSBoZXJlCisr ICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdXM+IGF1ZGlvX2J1czsKKysgIC8vIENhbGwtYmFjayB0 aGF0IHByb2R1Y2VzIGRhdGEgdG8gcGxheQorKyAgQXVkaW9Tb3VyY2VDYWxsYmFjayogc291cmNl OworKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVjdCBzaW9faGRsKiBo ZGw7CisrICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVudW0gU3RyZWFtU3Rh dGUgc3RhdGU7CisrICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExvb3Ao KQorKyAgcHRocmVhZF90IHRocmVhZDsKKysgIC8vIFByb3RlY3RzIHZvbCwgdm9scGVuZGluZyBh bmQgaHdfZGVsYXkKKysgIHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsKKysgIC8vIEN1cnJlbnQgdm9s dW1lIGluIHRoZSAwLi5TSU9fTUFYVk9MIHJhbmdlCisrICBpbnQgdm9sOworKyAgLy8gU2V0IHRv IDEgaWYgdm9sdW1lcyBtdXN0IGJlIHJlZnJlc2hlZCBpbiB0aGUgcmVhbHRpbWUgdGhyZWFkCisr ICBpbnQgdm9scGVuZGluZzsKKysgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQgaW4gdGhl IGhhcmR3YXJlCisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJl IGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisrICBjaGFyKiBidWZmZXI7 CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb091dHB1dFN0cmVhbSk7 CisrfTsKKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKysKKysjZW5kaWYgIC8vIE1FRElBX0FV RElPX1NORElPX1NORElPX09VVFBVVF9IXworZGlmZiAtTmF1ciBjaHJvbWl1bS04My4wLjQxMDMu OTcub3JpZy9tZWRpYS9tZWRpYV9vcHRpb25zLmduaSBjaHJvbWl1bS04My4wLjQxMDMuOTcvbWVk aWEvbWVkaWFfb3B0aW9ucy5nbmkKKy0tLSBhL21lZGlhL21lZGlhX29wdGlvbnMuZ25pLm9yaWcJ MjAyMC0wNi0wMyAyMDo0MDoyNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBhL21lZGlhL21lZGlhX29w dGlvbnMuZ25pCTIwMjAtMDYtMTMgMTc6MzI6MjguNTEyMzk1OTYzICswMjAwCitAQCAtMTE5LDYg KzExOSw5IEBACisgICAjIEVuYWJsZXMgcnVudGltZSBzZWxlY3Rpb24gb2YgQUxTQSBsaWJyYXJ5 IGZvciBhdWRpby4KKyAgIHVzZV9hbHNhID0gZmFsc2UKKyAKKysgICMgRW5hYmxlIHJ1bnRpbWUg c2VsZWN0aW9uIG9mIHNuZGlvKDcpCisrICB1c2Vfc25kaW8gPSBmYWxzZQorKworICAgIyBBbHNh IHNob3VsZCBiZSB1c2VkIG9uIG5vbi1BbmRyb2lkLCBub24tTWFjIFBPU0lYIHN5c3RlbXMuCisg ICAjIEFsc2Egc2hvdWxkIGJlIHVzZWQgb24gZGVza3RvcCBDaHJvbWVjYXN0IGFuZCBhdWRpby1v bmx5IENocm9tZWNhc3QgYnVpbGRzLgorICAgaWYgKGlzX3Bvc2l4ICYmICFpc19hbmRyb2lkICYm ICFpc19tYWMgJiYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVz L2Nocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMTYxMDg4N2Y1MzA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRj aApAQCAtMCwwICsxLDIwIEBACistLS0gYS90aGlyZF9wYXJ0eS9ub2RlL25vZGUucHkJMjAyMS0w NS0yMCAwNDoxNzo1NC4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMjEtMDUtMjUgMTE6NTc6MzIu ODk1MjIyNTU5ICswMjAwCitAQCAtMTcsMTEgKzE3LDEyIEBACisgICBpZiBwbGF0Zm9ybS5zeXN0 ZW0oKSA9PSAnRGFyd2luJyBhbmQgcGxhdGZvcm0ubWFjaGluZSgpID09ICdhcm02NCc6CisgICAg ICAgcmV0dXJuIG9zLnBhdGguam9pbihvc19wYXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9fZmls ZV9fKSwgJ21hYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZS1kYXJ3aW4tYXJt NjQnLCAnYmluJywgJ25vZGUnKSkKKy0gIHJldHVybiBvc19wYXRoLmpvaW4ob3NfcGF0aC5kaXJu YW1lKF9fZmlsZV9fKSwgKnsKKy0gICAgJ0Rhcndpbic6ICgnbWFjJywgJ25vZGUtZGFyd2luLXg2 NCcsICdiaW4nLCAnbm9kZScpLAorLSAgICAnTGludXgnOiAoJ2xpbnV4JywgJ25vZGUtbGludXgt eDY0JywgJ2JpbicsICdub2RlJyksCistICAgICdXaW5kb3dzJzogKCd3aW4nLCAnbm9kZS5leGUn KSwKKy0gIH1bcGxhdGZvcm0uc3lzdGVtKCldKQorKyAgcmV0dXJuICIvdXNyL2Jpbi9ub2RlIgor KyAgI3JldHVybiBvc19wYXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgKnsKKysg ICMgICdEYXJ3aW4nOiAoJ21hYycsICdub2RlLWRhcndpbi14NjQnLCAnYmluJywgJ25vZGUnKSwK KysgICMgICdMaW51eCc6ICgnbGludXgnLCAnbm9kZS1saW51eC14NjQnLCAnYmluJywgJ25vZGUn KSwKKysgICMgICdXaW5kb3dzJzogKCd3aW4nLCAnbm9kZS5leGUnKSwKKysgICN9W3BsYXRmb3Jt LnN5c3RlbSgpXSkKKyAKKyAKKyBkZWYgUnVuTm9kZShjbWRfcGFydHMsIHN0ZG91dD1Ob25lKToK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXdl YnJ0Yy1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0td2VicnRjLWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi40MWJhN2YyODQ2YzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS13ZWJydGMtaW5jbHVkZS5wYXRjaApAQCAtMCww ICsxLDEwIEBACistLS0gYS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1 cmUvbGludXgvd2luZG93X2NhcHR1cmVyX3gxMS5jYy5vcmlnCTIwMTktMDItMjEgMjE6MjE6MjQu NDg4MDU4OTkwICswMTAwCisrKysgYS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9w X2NhcHR1cmUvbGludXgvd2luZG93X2NhcHR1cmVyX3gxMS5jYwkyMDE5LTAyLTIxIDIxOjIxOjM2 LjE1MTk2MTA2NCArMDEwMAorQEAgLTE2LDYgKzE2LDcgQEAKKyAKKyAjaW5jbHVkZSA8bWVtb3J5 PgorICNpbmNsdWRlIDxzdHJpbmc+CisrI2luY2x1ZGUgPHN0cmluZy5oPgorICNpbmNsdWRlIDx1 dGlsaXR5PgorIAorICNpbmNsdWRlICJtb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kZXNrdG9wX2Zy YW1lLmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS13ZWJydGMtcjAucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS13ZWJydGMtcjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5jOWI2ZTA4NmVmMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9u MTMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS13ZWJydGMtcjAucGF0Y2gKQEAgLTAsMCArMSwzMyBA QAorVXBzdHJlYW06IFllcywgaHR0cHM6Ly93ZWJydGMtcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20v OTM4NAorUmVhc29uOiBGaXhlcyBtdXNsIGJ1aWxkcyBvZiB3ZWJydGMKKworRnJvbSA3ZjkwZTJj Y2VkYTA0NThjZjU2MDI2ZWI2Y2NmZmI5NjFhNDc4MDRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogUmFwaGFlbCBLdWJvIGRhIENvc3RhIDxyYXBoYWVsLmt1Ym8uZGEuY29zdGFAaW50 ZWwuY29tPgorRGF0ZTogRnJpLCAxMyBPY3QgMjAxNyAxNTo0OTozMiArMDIwMAorU3ViamVjdDog W1BBVENIXSBJV1lVOiBJbmNsdWRlIG1hdGguaCBmb3Igcm91bmQoMykuCisKK21hdGguaCB3YXMg YmVpbmcgaW1wbGljaXRseSBpbmNsdWRlZCwgd2hpY2ggY2FuIGJyZWFrIHRoZSBidWlsZCB3aXRo CithbHRlcm5hdGl2ZSBsaWJjIGltcGxlbWVudGF0aW9ucy4KKworQnVnOiBOb25lCitDaGFuZ2Ut SWQ6IEk5NjliMzIwYjY1ZDBmNDRhYmIzM2QzZTEwMzZjZmJjYjg1OWE0OTUyCitSZXZpZXdlZC1v bjogaHR0cHM6Ly93ZWJydGMtcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vOTM4NAorUmV2aWV3ZWQt Ynk6IFRvbW1pIDx0b21taUB3ZWJydGMub3JnPgorQ29tbWl0LVF1ZXVlOiBSYXBoYWVsIEt1Ym8g ZGEgQ29zdGEgKHJha3VjbykgPHJhcGhhZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CitDci1D b21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjMjAyOTJ9CistLS0KKworLS0tIGEv dGhpcmRfcGFydHkvd2VicnRjL3AycC9iYXNlL3BvcnQuY2MKKysrKyBhL3RoaXJkX3BhcnR5L3dl YnJ0Yy9wMnAvYmFzZS9wb3J0LmNjCitAQCAtMTAsNiArMTAsOCBAQAorIAorICNpbmNsdWRlICJw MnAvYmFzZS9wb3J0LmgiCisgCisrI2luY2x1ZGUgPG1hdGguaD4KKysKKyAjaW5jbHVkZSA8YWxn b3JpdGhtPgorICNpbmNsdWRlIDx2ZWN0b3I+CisgCistLSAKKzIuMTUuMC5yYzIKKwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0td2VicnRjLXNp emVfdC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXdl YnJ0Yy1zaXplX3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5hMWZiZDQzYjMwMTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAK Ky0tLSBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjMy9j bG9ja2RyaWZ0X2RldGVjdG9yLmgJMjAyMC0wOC0xMCAyMDo0MjoyOS4wMDAwMDAwMDAgKzAyMDAK KysrKyBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjMy9j bG9ja2RyaWZ0X2RldGVjdG9yLmgJMjAyMC0wOS0wNCAxMjo0NzowNy4wMTQ4MzM2MzMgKzAyMDAK K0BAIC0xMiw2ICsxMiw3IEBACisgI2RlZmluZSBNT0RVTEVTX0FVRElPX1BST0NFU1NJTkdfQUVD M19DTE9DS0RSSUZUX0RFVEVDVE9SX0hfCisgCisgI2luY2x1ZGUgPGFycmF5PgorKyNpbmNsdWRl IDxjc3RkZGVmPgorIAorIG5hbWVzcGFjZSB3ZWJydGMgeworIApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtbGlidnB4LnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0 bGUtbGlidnB4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NmQ0MjNkNDA5MWM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCkBAIC0wLDAgKzEsNzIg QEAKK1VzZXMgZ2VuZXJpYyB0YXJnZXQgZm9yIG5vdy4gVG8gdXNlIHBwYzY0bGUsIGNoYW5nZSAt LXRhcmdldCB0byBwcGM2NGxlLWdudQorYW5kIGFkZCAtLWVuYWJsZS12c3gsIGFuZCBjaGFuZ2Ug Z2VuZXJpYyB0byBwcGMgZm9yIHRoZSBydGNkIGhlYWRlci4KKworRnJvbSAxOGU2YzVjNTVjZmFl MGNmYjQ1OGQ4MjEwZDdiYzcwOTM2MGEwZTkwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgOSBTZXAgMjAyMCAxOTow ODoyNSArMDIwMAorU3ViamVjdDogW1BBVENIXSBlbmFibGUgZ2VuZXJhdGlvbiBvZiBwcGM2NCBs aWJ2cHggYml0cworCit0aGlzIGRvZXNuJ3QgdXBkYXRlIHRoZSBnbmkgZmlsZSwgdGhhdCdzIGRv bmUgZnJvbQordGhlIHRlbXBsYXRlIGJ5IHJ1bm5pbmcgdGhlIGFwcHJvcHJpYXRlIHNjcmlwdHMK Ky0tLQorIHRoaXJkX3BhcnR5L2xpYnZweC9CVUlMRC5nbiAgICAgICAgfCA0ICsrKysKKyB0aGly ZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoIHwgOSArKysrKysrKysKKyAyIGZpbGVzIGNo YW5nZWQsIDEzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9saWJ2cHgv QlVJTEQuZ24gdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduCitpbmRleCA3MTk4ZTU5Li4zMzAw NDg1IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduCisrKysgYi90aGly ZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KK0BAIC0zMzYsNiArMzM2LDggQEAgc3RhdGljX2xpYnJh cnkoImxpYnZweCIpIHsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBzb3VyY2VzID0gbGlidnB4X3Ny Y3NfYXJtNjQKKyAgICAgfQorKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7 CisrICAgIHNvdXJjZXMgPSBsaWJ2cHhfc3Jjc19wcGM2NAorICAgfQorIAorICAgY29uZmlncyAt PSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBdCitkaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2ggdGhpcmRfcGFydHkvbGlidnB4L2dl bmVyYXRlX2duaS5zaAoraW5kZXggYmNmODRiMC4uOGEzZjRmMSAxMDA3NTUKKy0tLSBhL3RoaXJk X3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2gKKysrKyBiL3RoaXJkX3BhcnR5L2xpYnZweC9n ZW5lcmF0ZV9nbmkuc2gKK0BAIC0zNjEsNiArMzYxLDcgQEAgZ2VuX2NvbmZpZ19maWxlcyBsaW51 eC9hcm0tbmVvbi1oaWdoYmQgIi0tdGFyZ2V0PWFybXY3LWxpbnV4LWdjYyAke2FsbF9wbGF0Zm9y bXMKKyBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L2FybTY0LWhpZ2hiZCAiLS10YXJnZXQ9YXJtdjgt bGludXgtZ2NjICR7YWxsX3BsYXRmb3Jtc30gJHtISUdIQkR9IgorIGdlbl9jb25maWdfZmlsZXMg bGludXgvbWlwc2VsICItLXRhcmdldD1taXBzMzItbGludXgtZ2NjICR7YWxsX3BsYXRmb3Jtc30i CisgZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9taXBzNjRlbCAiLS10YXJnZXQ9bWlwczY0LWxpbnV4 LWdjYyAke2FsbF9wbGF0Zm9ybXN9IgorK2dlbl9jb25maWdfZmlsZXMgbGludXgvcHBjNjQgIi0t dGFyZ2V0PWdlbmVyaWMtZ251ICRISUdIQkQgJHthbGxfcGxhdGZvcm1zfSIKKyBnZW5fY29uZmln X2ZpbGVzIGxpbnV4L2dlbmVyaWMgIi0tdGFyZ2V0PWdlbmVyaWMtZ251ICRISUdIQkQgJHthbGxf cGxhdGZvcm1zfSIKKyBnZW5fY29uZmlnX2ZpbGVzIHdpbi9hcm02NCAiLS10YXJnZXQ9YXJtNjQt d2luNjQtdnMxNSAke2FsbF9wbGF0Zm9ybXN9ICR7SElHSEJEfSIKKyBnZW5fY29uZmlnX2ZpbGVz IHdpbi9pYTMyICItLXRhcmdldD14ODYtd2luMzItdnMxNCAke2FsbF9wbGF0Zm9ybXN9ICR7eDg2 X3BsYXRmb3Jtc30iCitAQCAtMzg2LDYgKzM4Nyw3IEBAIGxpbnRfY29uZmlnIGxpbnV4L2FybS1u ZW9uLWhpZ2hiZAorIGxpbnRfY29uZmlnIGxpbnV4L2FybTY0LWhpZ2hiZAorIGxpbnRfY29uZmln IGxpbnV4L21pcHNlbAorIGxpbnRfY29uZmlnIGxpbnV4L21pcHM2NGVsCisrbGludF9jb25maWcg bGludXgvcHBjNjQKKyBsaW50X2NvbmZpZyBsaW51eC9nZW5lcmljCisgbGludF9jb25maWcgd2lu L2FybTY0CisgbGludF9jb25maWcgd2luL2lhMzIKK0BAIC00MTUsNiArNDE3LDcgQEAgZ2VuX3J0 Y2RfaGVhZGVyIGxpbnV4L2FybS1uZW9uLWhpZ2hiZCBhcm12NworIGdlbl9ydGNkX2hlYWRlciBs aW51eC9hcm02NC1oaWdoYmQgYXJtdjgKKyBnZW5fcnRjZF9oZWFkZXIgbGludXgvbWlwc2VsIG1p cHNlbAorIGdlbl9ydGNkX2hlYWRlciBsaW51eC9taXBzNjRlbCBtaXBzNjRlbAorK2dlbl9ydGNk X2hlYWRlciBsaW51eC9wcGM2NCBnZW5lcmljCisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L2dlbmVy aWMgZ2VuZXJpYworIGdlbl9ydGNkX2hlYWRlciB3aW4vYXJtNjQgYXJtdjgKKyBnZW5fcnRjZF9o ZWFkZXIgd2luL2lhMzIgeDg2ICIke3JlcXVpcmVfc3NlMn0iCitAQCAtNTAwLDYgKzUwMywxMiBA QCBpZiBbIC16ICRPTkxZX0NPTkZJR1MgXTsgdGhlbgorIAorICAgZWNobyAiTUlQUzY0IHNvdXJj ZSBsaXN0IGlzIGlkZW50aWNhbCB0byBNSVBTIHNvdXJjZSBsaXN0LiBObyBuZWVkIHRvIGdlbmVy YXRlIGl0LiIKKyAKKysgIGVjaG8gIkdlbmVyYXRlIHBwYzY0IHNvdXJjZSBsaXN0LiIKKysgIGNv bmZpZz0kKHByaW50X2NvbmZpZ19iYXNpYyBsaW51eC9wcGM2NCkKKysgIG1ha2VfY2xlYW4KKysg IG1ha2UgbGlidnB4X3NyY3MudHh0IHRhcmdldD1saWJzICRjb25maWcgPiAvZGV2L251bGwKKysg IGNvbnZlcnRfc3Jjc190b19wcm9qZWN0X2ZpbGVzIGxpYnZweF9zcmNzLnR4dCBsaWJ2cHhfc3Jj c19wcGM2NAorKworICAgZWNobyAiR2VuZXJhdGUgTmFDbCBzb3VyY2UgbGlzdC4iCisgICBjb25m aWc9JChwcmludF9jb25maWdfYmFzaWMgbmFjbCkKKyAgIG1ha2VfY2xlYW4KKy0tIAorMi4yOC4w CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2Nocm9taXVt LXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS14eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTQwZWQ5ZDVhYzczCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtc3Vw cG9ydC5wYXRjaApAQCAtMCwwICsxLDM3MDcgQEAKK2NvbW1pdCAyYzAxM2EzMTdiMTExNGVmNjdj ZGJiYzMwODI0YjI4OTA3YjllYTk0CitBdXRob3I6IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgorRGF0ZTogICBXZWQgTWFyIDMgMTk6MDg6MjkgMjAyMSArMDEwMAorCisgICAg cHBjNjRsZSBzdXBwb3J0CisKK2RpZmYgLS1naXQgYS9idWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xj aGFpbnMucHkgYi9idWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKK2luZGV4IDI4NmE5 MmEyNy4uZWMzNmE4NWQzIDEwMDc1NQorLS0tIGEvYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hh aW5zLnB5CisrKysgYi9idWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKK0BAIC0xMyw2 ICsxMywxMCBAQCBpbXBvcnQgc3lzCisgCisgCisgZGVmIE1haW4oYXJncyk6CisrICAjIElmIGBk aXNhYmxlX25hY2w9MWAgaXMgaW4gR1lQX0RFRklORVMsIGV4aXQKKysgIGlmICdkaXNhYmxlX25h Y2w9MScgaW4gb3MuZW52aXJvbi5nZXQoJ0dZUF9ERUZJTkVTJywgJycpOgorKyAgICByZXR1cm4g MAorKworICAgc2NyaXB0X2RpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19m aWxlX18pKQorICAgc3JjX2RpciA9IG9zLnBhdGguZGlybmFtZShzY3JpcHRfZGlyKQorICAgbmFj bF9kaXIgPSBvcy5wYXRoLmpvaW4oc3JjX2RpciwgJ25hdGl2ZV9jbGllbnQnKQorZGlmZiAtLWdp dCBhL2Nocm9tZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24gYi9jaHJvbWUvaW5zdGFsbGVyL2xp bnV4L0JVSUxELmduCitpbmRleCAzNWYwMWQwYTQuLjI4ZjJlNzQ3NSAxMDA2NDQKKy0tLSBhL2No cm9tZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9pbnN0YWxsZXIvbGlu dXgvQlVJTEQuZ24KK0BAIC05NCw4ICs5NCw2IEBAIHBhY2thZ2luZ19maWxlcyA9IHBhY2thZ2lu Z19maWxlc19iaW5hcmllcyArIFsKKyAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGly L3hkZy1taW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL3hkZy1zZXR0 aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9sb2NhbGVzL2VuLVVT LnBhayIsCistICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL21h bmlmZXN0Lmpzb24iLAorLSAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvTUVJUHJl bG9hZC9wcmVsb2FkZWRfZGF0YS5wYiIsCisgICAgICAgICAgICAgICAgICAgXQorIAorIGFjdGlv bl9mb3JlYWNoKCJjYWxjdWxhdGVfZGViX2RlcGVuZGVuY2llcyIpIHsKK0BAIC0zMTUsNyArMzEz LDYgQEAgZ3JvdXAoImluc3RhbGxlcl9kZXBzIikgeworICAgICAiOnRoZW1lX2ZpbGVzIiwKKyAg ICAgIi8vY2hyb21lIiwKKyAgICAgIi8vY2hyb21lOnBhY2tlZF9yZXNvdXJjZXMiLAorLSAgICAi Ly9jaHJvbWUvYnJvd3Nlci9yZXNvdXJjZXMvbWVkaWEvbWVpX3ByZWxvYWQ6Y29tcG9uZW50IiwK KyAgICAgIi8vc2FuZGJveC9saW51eDpjaHJvbWVfc2FuZGJveCIsCisgICAgICIvL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL2hhbmRsZXI6Y3Jhc2hwYWRfaGFuZGxlciIsCisgICBdCitk aWZmIC0tZ2l0IGEvc2FuZGJveC9mZWF0dXJlcy5nbmkgYi9zYW5kYm94L2ZlYXR1cmVzLmduaQor aW5kZXggZGIzMGFlNmQ2Li45ZGMwOWJmNTMgMTAwNjQ0CistLS0gYS9zYW5kYm94L2ZlYXR1cmVz LmduaQorKysrIGIvc2FuZGJveC9mZWF0dXJlcy5nbmkKK0BAIC0xMSw3ICsxMSw4IEBAIGltcG9y dCgiLy9idWlsZC9jb25maWcvbmFjbC9jb25maWcuZ25pIikKKyB1c2Vfc2VjY29tcF9icGYgPSAo aXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pZCkgJiYKKyAgICAgICAgICAgICAg ICAgICAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwgY3VycmVudF9jcHUgPT0gIng2NCIgfHwKKyAg ICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0g ImFybTY0IiB8fAorLSAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8 fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiKQorKyAgICAgICAgICAgICAgICAgICBjdXJyZW50 X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiIHx8CisrICAgICAg ICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpCisgCisgdXNlX3NlY2NvbXBfYnBm ID0gdXNlX3NlY2NvbXBfYnBmIHx8IGlzX25hY2xfbm9uc2ZpCisgCitkaWZmIC0tZ2l0IGEvc2Fu ZGJveC9saW51eC9CVUlMRC5nbiBiL3NhbmRib3gvbGludXgvQlVJTEQuZ24KK2luZGV4IGU5YTk0 YjQ2MS4uY2NhMWE1ZGE1IDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51eC9CVUlMRC5nbgorKysr IGIvc2FuZGJveC9saW51eC9CVUlMRC5nbgorQEAgLTQyNyw2ICs0MjcsOCBAQCBjb21wb25lbnQo InNhbmRib3hfc2VydmljZXMiKSB7CisgCisgc291cmNlX3NldCgic2FuZGJveF9zZXJ2aWNlc19o ZWFkZXJzIikgeworICAgc291cmNlcyA9IFsKKysgICAgInN5c3RlbV9oZWFkZXJzL3BwYzY0X2xp bnV4X3N5c2NhbGxzLmgiLAorKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRl eHQuaCIsCisgICAgICJzeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIiwKKyAg ICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIiwKKyAgICAgInN5c3RlbV9o ZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIiwKK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4 L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaCBiL3NhbmRib3gvbGludXgvYnBmX2RzbC9s aW51eF9zeXNjYWxsX3Jhbmdlcy5oCitpbmRleCAzMTM1MTFmMjIuLjBjYTNhMzI2ZiAxMDA2NDQK Ky0tLSBhL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCisrKysg Yi9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAorQEAgLTU2LDYg KzU2LDEzIEBACisgI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgX19OUl9zeXNjYWxscworICNk ZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCisgCisrI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorKworKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CisrI2RlZmluZSBNSU5f U1lTQ0FMTCAwdQorKyNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIDM4NnUKKysjZGVmaW5lIE1B WF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAorKworICNlbHNlCisgI2Vycm9yICJVbnN1cHBv cnRlZCBhcmNoaXRlY3R1cmUiCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9i cGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggYi9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9t YWNyb3MuaAoraW5kZXggMWE0MDdiOTUyLi5hNmFlYzU0NGUgMTAwNjQ0CistLS0gYS9zYW5kYm94 L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAorKysrIGIvc2FuZGJveC9saW51eC9icGZf ZHNsL3NlY2NvbXBfbWFjcm9zLmgKK0BAIC0xNiw2ICsxNiw5IEBACisgI2lmIGRlZmluZWQoX19t aXBzX18pCisgLy8gc3lzL3VzZXIuaCBpbiBlZ2xpYmMgbWlzc2VzIHNpemVfdCBkZWZpbml0aW9u CisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysv LyBNYW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBwYzY0CisrdHlwZWRlZiB1bnNpZ25lZCBsb25n IGxvbmcgZ3JlZ190OworICNlbmRpZgorICNlbmRpZgorIAorQEAgLTM0Niw2ICszNDksNTEgQEAg c3RydWN0IHJlZ3Nfc3RydWN0IHsKKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChf cmVncykucmVnc1szXQorICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNShfcmVncykgKF9yZWdzKS5y ZWdzWzRdCisgI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbNV0K KysKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2luY2x1ZGUgPGFzbS9wdHJhY2Uu aD4KKysKKyt0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3RydWN0OworKworKyNpZmRlZiBB UkNIX0NQVV9MSVRUTEVfRU5ESUFOCisrI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9Q UEM2NExFCisrI2Vsc2UKKysjZGVmaW5lIFNFQ0NPTVBfQVJDSCBBVURJVF9BUkNIX1BQQzY0Cisr I2VuZGlmCisrCisrI2RlZmluZSBTRUNDT01QX1JFRyhfY3R4LCBfcmVnKSAoKF9jdHgpLT51Y19t Y29udGV4dC5yZWdzLT5ncHJbX3JlZ10pCisrCisrI2RlZmluZSBTRUNDT01QX1JFU1VMVChfY3R4 KSBTRUNDT01QX1JFRyhfY3R4LCAzKQorKyNkZWZpbmUgU0VDQ09NUF9TWVNDQUxMKF9jdHgpIFNF Q0NPTVBfUkVHKF9jdHgsIDApCisrI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpIChfY3R4KS0+dWNf bWNvbnRleHQucmVncy0+bmlwCisrI2RlZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBf UkVHKF9jdHgsIDMpCisrI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9j dHgsIDQpCisrI2RlZmluZSBTRUNDT01QX1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUp CisrI2RlZmluZSBTRUNDT01QX1BBUk00KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDYpCisrI2Rl ZmluZSBTRUNDT01QX1BBUk01KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDcpCisrI2RlZmluZSBT RUNDT01QX1BBUk02KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDgpCisrCisrI2RlZmluZSBTRUND T01QX05SX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBucikpCisrI2Rl ZmluZSBTRUNDT01QX0FSQ0hfSURYIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEs IGFyY2gpKQorKyNkZWZpbmUgU0VDQ09NUF9JUF9NU0JfSURYIFwKKysgIChvZmZzZXRvZihzdHJ1 Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9uX3BvaW50ZXIpICsgNCkKKysjZGVmaW5l IFNFQ0NPTVBfSVBfTFNCX0lEWCBcCisrICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9k YXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDApCisrI2RlZmluZSBTRUNDT01QX0FSR19NU0Jf SURYKG5yKSBcCisrICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSAr IDggKiAobnIpICsgNCkKKysjZGVmaW5lIFNFQ0NPTVBfQVJHX0xTQl9JRFgobnIpIFwKKysgIChv ZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyZ3MpICsgOCAqIChucikgKyAwKQor KworKyNkZWZpbmUgU0VDQ09NUF9QVF9SRVNVTFQoX3JlZ3MpIChfcmVncykuZ3ByWzNdCisrI2Rl ZmluZSBTRUNDT01QX1BUX1NZU0NBTEwoX3JlZ3MpIChfcmVncykuZ3ByWzBdCisrI2RlZmluZSBT RUNDT01QX1BUX0lQKF9yZWdzKSAoX3JlZ3MpLm5pcAorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJN MShfcmVncykgKF9yZWdzKS5ncHJbM10KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTIoX3JlZ3Mp IChfcmVncykuZ3ByWzRdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk0zKF9yZWdzKSAoX3JlZ3Mp Lmdwcls1XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNChfcmVncykgKF9yZWdzKS5ncHJbNl0K KysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChfcmVncykuZ3ByWzddCisrI2RlZmlu ZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3MpLmdwcls4XQorKworICNlbHNlCisgI2Vy cm9yIFVuc3VwcG9ydGVkIHRhcmdldCBwbGF0Zm9ybQorIAorZGlmZiAtLWdpdCBhL3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MgYi9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCitpbmRleCA2YTFlYzIz ODkuLmYyMGM1ODJkZCAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9iYXNlbGluZV9wb2xpY3kuY2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MKK0BAIC04OCw3ICs4OCw4IEBAIGJvb2wgSXNCYXNl bGluZVBvbGljeVdhdGNoZWQoaW50IHN5c25vKSB7CisgICAgICAgICAgU3lzY2FsbFNldHM6Oklz UHJjdGwoc3lzbm8pIHx8CisgICAgICAgICAgU3lzY2FsbFNldHM6OklzUHJvY2Vzc0dyb3VwT3JT ZXNzaW9uKHN5c25vKSB8fAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQor KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgICAgICAgU3lz Y2FsbFNldHM6OklzU29ja2V0Q2FsbChzeXNubykgfHwKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChf X2FybV9fKQorQEAgLTIyNyw3ICsyMjgsNyBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbElt cGwoaW50IGZzX2RlbmllZF9lcnJubywKKyAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRl ZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKKyAgIGlmIChzeXNubyA9PSBfX05SX21tYXApCisgICAgIHJldHVybiBS ZXN0cmljdE1tYXBGbGFncygpOworICNlbmRpZgorQEAgLTI0NSw3ICsyNDYsNyBAQCBSZXN1bHRF eHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJubywKKyAgICAgcmV0dXJu IFJlc3RyaWN0UHJjdGwoKTsKKyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNo NjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgaWYgKHN5c25vID09IF9fTlJfc29ja2V0cGFpcikgeworICAgICAvLyBPbmx5IGFsbG93 IEFGX1VOSVgsIFBGX1VOSVguIENyYXNoIGlmIGFueXRoaW5nIGVsc2UgaXMgc2Vlbi4KKyAgICAg c3RhdGljX2Fzc2VydChBRl9VTklYID09IFBGX1VOSVgsCitAQCAtMjg1LDcgKzI4Niw4IEBAIFJl c3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVkX2Vycm5vLAorICAgfQor IAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAor KyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBpZiAoU3lzY2FsbFNldHM6OklzU29ja2V0 Q2FsbChzeXNubykpCisgICAgIHJldHVybiBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7Cisg I2VuZGlmCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jh c2VsaW5lX3BvbGljeV91bml0dGVzdC5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MKK2luZGV4IDAxYzA0NmRkYS4uN2U1YTZi ZTgyIDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2Vs aW5lX3BvbGljeV91bml0dGVzdC5jYwkyMDIxLTA0LTE1IDEzOjExOjEwLjQ4MTU3OTQ3MCAtMDQw MAorKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGlj eV91bml0dGVzdC5jYwkyMDIxLTA0LTE1IDEzOjEyOjQzLjUyNDgzMTM3NiAtMDQwMAorQEAgLTMw Miw3ICszMDIsNyBAQAorIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfc3lzbG9nKQorIFRFU1Rf QkFTRUxJTkVfU0lHU1lTKF9fTlJfdGltZXJfY3JlYXRlKQorIAorLSNpZiAhZGVmaW5lZChfX2Fh cmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9pbm90aWZ5X2luaXQpCisgVEVTVF9C QVNFTElORV9TSUdTWVMoX19OUl92c2VydmVyKQorICNlbmRpZgorZGlmZiAtLWdpdCBhL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rp b25zLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1l dGVyc19yZXN0cmljdGlvbnMuY2MKK2luZGV4IDJhOTdkMzkxNi4uOGU4MWFhNmNmIDEwMDY0NAor LS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVy c19yZXN0cmljdGlvbnMuY2MJMjAyMS0wNC0xNCAxNDo0MTowOC4wMDAwMDAwMDAgLTA0MDAKKysr KyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNf cmVzdHJpY3Rpb25zLmNjCTIwMjEtMDQtMTUgMTM6MTc6NTcuODA4NzE1NzMzIC0wNDAwCitAQCAt NDAsNyArNDAsOCBAQAorICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+CisgI2lmIChkZWZpbmVkKE9T X0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1NfTEFDUk9TKSkgJiYgXAorICAgICAhZGVm aW5lZChfX2FybV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgICAgICAgICAgIFwKKy0g ICAgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkKKysgICAgIWRlZmluZWQoUFRSQUNF X0dFVF9USFJFQURfQVJFQSkgJiYJCQkgICAgXAorKyAgICAhZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorIC8vIEFsc28gaW5jbHVkZSBhc20vcHRyYWNlLWFiaS5oIHNpbmNlIHB0cmFjZS5oIGluIG9s ZGVyIGxpYmMgKGZvciBpbnN0YW5jZQorIC8vIHRoZSBvbmUgaW4gVWJ1bnR1IDE2LjA0IExUUykg aXMgbWlzc2luZyBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLgorIC8vIGFzbS9wdHJhY2UtYWJpLmgg ZG9lc24ndCBleGlzdCBvbiBhcm0zMiBhbmQgUFRSQUNFX0dFVF9USFJFQURfQVJFQSBpc24ndAor QEAgLTQ5LDYgKzUwLDExIEBACisgI2VuZGlmCisgI2VuZGlmICAvLyAhT1NfTkFDTF9OT05TRkkK KyAKKysvLyBPbiBQUEM2NCwgVENHRVRTIGlzIGRlZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRl cm1pb3MsIHNvIHdlIG11c3QgaW5jbHVkZSB0ZXJtaW9zLmgKKysjaWZkZWYgX19wb3dlcnBjNjRf XworKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisrI2VuZGlmCisrCisgI2lmIGRlZmluZWQoT1NfQU5E Uk9JRCkKKyAKKyAjaWYgIWRlZmluZWQoRl9EVVBGRF9DTE9FWEVDKQorQEAgLTk4LDYgKzEwNCwx NSBAQAorICNlbmRpZgorIH0KKyAKKytpbmxpbmUgYm9vbCBJc0FyY2hpdGVjdHVyZVBQQzY0KCkg eworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICByZXR1cm4gdHJ1ZTsKKysjZWxzZQor KyAgcmV0dXJuIGZhbHNlOworKyNlbmRpZgorK30KKysKKysKKyAvLyBVYnVudHUncyB2ZXJzaW9u IG9mIGdsaWJjIGhhcyBhIHJhY2UgY29uZGl0aW9uIGluIHNlbV9wb3N0IHRoYXQgY2FuIGNhdXNl CisgLy8gaXQgdG8gY2FsbCBmdXRleCgyKSB3aXRoIGJvZ3VzIG9wIGFyZ3VtZW50cy4gVG8gd29y a2Fyb3VuZCB0aGlzLCB3ZSBuZWVkCisgLy8gdG8gYWxsb3cgdGhvc2UgZnV0ZXgoMikgY2FsbHMg dG8gZmFpbCB3aXRoIEVJTlZBTCwgaW5zdGVhZCBvZiBjcmFzaGluZyB0aGUKK0BAIC0yMzksNiAr MjU0LDggQEAKKyAgIHVpbnQ2NF90IGtPTGFyZ2VGaWxlRmxhZyA9IE9fTEFSR0VGSUxFOworICAg aWYgKElzQXJjaGl0ZWN0dXJlWDg2XzY0KCkgfHwgSXNBcmNoaXRlY3R1cmVJMzg2KCkgfHwgSXNB cmNoaXRlY3R1cmVNaXBzKCkpCisgICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAxMDAwMDA7CisrICBl bHNlIGlmIChJc0FyY2hpdGVjdHVyZVBQQzY0KCkpCisrICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAy MDAwMDA7CisgCisgICBjb25zdCBBcmc8aW50PiBjbWQoMSk7CisgICBjb25zdCBBcmc8bG9uZz4g bG9uZ19hcmcoMik7CitAQCAtMjU2LDcgKzI3MywxNiBAQAorICAgICAgICAgICAgICAgRl9TRVRM S1csCisgICAgICAgICAgICAgICBGX0dFVExLLAorICAgICAgICAgICAgICAgRl9EVVBGRCwKKy0g ICAgICAgICAgICAgIEZfRFVQRkRfQ0xPRVhFQyksCisrICAgICAgICAgICAgICBGX0RVUEZEX0NM T0VYRUMKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKy8vIE9uIFBQQzY0LCBGX1NFVExL LCBGX0dFVExLLCBGX1NFVExLVyBhcmUgZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZhcmlhbnRzCisr Ly8gYnV0IGdsaWJjIHdpbGwgc29tZXRpbWVzIHN0aWxsIHVzZSB0aGUgMzItYml0IHZlcnNpb25z LiBBbGxvdyBib3RoLgorKyAgICAgICAgICAgICAgLAorKyAgICAgICAgICAgICAgNSwgLyogRl9H RVRMSyAoMzIpICovCisrICAgICAgICAgICAgICA2LCAvKiBGX1NFVExLICgzMikgKi8KKysgICAg ICAgICAgICAgIDcgIC8qIEZfU0VUTEtXICgzMikgKi8KKysjZW5kaWYKKysJICAgICApLAorICAg ICAgICAgICAgICBBbGxvdygpKQorICAgICAgIC5DYXNlKEZfU0VURkwsCisgICAgICAgICAgICAg SWYoKGxvbmdfYXJnICYgfmtBbGxvd2VkTWFzaykgPT0gMCwgQWxsb3coKSkuRWxzZShDcmFzaFNJ R1NZUygpKSkKK0BAIC0yNjYsNyArMjkyLDcgQEAKKyAgIC8vIGNsYW5nLWZvcm1hdCBvbgorIH0K KyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorIFJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpIHsKKyAgIC8vIFVu Zm9ydHVuYXRlbHksIHdlIGFyZSB1bmFibGUgdG8gcmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRl ciB0bworICAgLy8gc29ja2V0cGFpcigyKS4gV2hpbHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQs IGl0J3Mgbm90ZXdvcnRoeSB0aGF0IHZlcnkKK0BAIC00MTksNyArNDQ1LDcgQEAKKyAjZW5kaWYK KyAgIHJldHVybiBTd2l0Y2gocmVxdWVzdCkKKyAgICAgICAuQ0FTRVMoKAorLSNpZiAhZGVmaW5l ZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisgICAgICAgICAgICAgICAgICBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX0dF VEZQUkVHUywgUFRSQUNFX0dFVF9USFJFQURfQVJFQSwKKyAgICAgICAgICAgICAgICAgIFBUUkFD RV9HRVRSRUdTRVQsCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaCBiL3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25z LmgKK2luZGV4IGJhNDI4OWYwNS4uOWE0ZDVhYjJkIDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAor KysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVy c19yZXN0cmljdGlvbnMuaAorQEAgLTQ4LDcgKzQ4LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2Rz bDo6UmVzdWx0RXhwciBSZXN0cmljdE1wcm90ZWN0RmxhZ3MoKTsKKyAvLyBPX05PTkJMT0NLIHwg T19TWU5DIHwgT19MQVJHRUZJTEUgfCBPX0NMT0VYRUMgfCBPX05PQVRJTUUuCisgU0FOREJPWF9F WFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKTsKKyAKKy0j aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor IC8vIFJlc3RyaWN0IHNvY2tldGNhbGwoMikgdG8gb25seSBhbGxvdyBzb2NrZXRwYWlyKDIpLCBz ZW5kKDIpLCByZWN2KDIpLAorIC8vIHNlbmR0bygyKSwgcmVjdmZyb20oMiksIHNodXRkb3duKDIp LCBzZW5kbXNnKDIpIGFuZCByZWN2bXNnKDIpLgorIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJl c3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpOworZGlmZiAtLWdpdCBhL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MgYi9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitpbmRleCA2NDJkZjcyMDcu LjM0ZjQ3ZWI3MyAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVy cy9zeXNjYWxsX3NldHMuY2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVy cy9zeXNjYWxsX3NldHMuY2MKK0BAIC0yOSw3ICsyOSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZEdldHRpbWUoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNh c2UgX19OUl9nZXR0aW1lb2ZkYXk6CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X194ODZfNjRfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfdGltZToKKyAjZW5kaWYKKyAgICAgICByZXR1 cm4gdHJ1ZTsKK0BAIC01MiwxMiArNTMsMTQgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2Vk R2V0dGltZShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcF90aW1l NjQ6ICAvLyBQYXJhbWV0ZXJzIGZpbHRlcmVkIGJ5IFJlc3RyaWN0Q2xvY2tJRCgpLgorICNlbmRp ZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAor KyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9mdGltZTogIC8vIE9i c29sZXRlLgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8gUHJpdmls ZWdlZC4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8 IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc3RpbWU6Cisg I2VuZGlmCisgICAgIGRlZmF1bHQ6CitAQCAtMTM1LDcgKzEzOCw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDog IC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICAgICBjYXNlIF9fTlJfZmNobW9kYXQ6Cisg ICAgIGNhc2UgX19OUl9mY2hvd25hdDogIC8vIFNob3VsZCBiZSBjYWxsZWQgY2hvd25hdCA/Cist I2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVS TSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCitAQCAtMTU0LDcgKzE1Nyw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX21lbWZkX2Ny ZWF0ZToKKyAgICAgY2FzZSBfX05SX21rZGlyYXQ6CisgICAgIGNhc2UgX19OUl9ta25vZGF0Ogor LSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9vbGRsc3RhdDoKKyAgICAgY2FzZSBfX05S X29sZHN0YXQ6CisgI2VuZGlmCitAQCAtMTY4LDcgKzE3MSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3N0YXRm czogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3N0YXRmczY0OgorICNlbmRpZgor ICAgICBjYXNlIF9fTlJfc3ltbGlua2F0OgorQEAgLTE3OCw3ICsxODIsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl90cnVuY2F0 ZTY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfdW5saW5rYXQ6CistI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3V0 aW1lOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAgLy8gTmV3LgorQEAgLTIw Myw3ICsyMDgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNz VmlhRmQoaW50IHN5c25vKSB7CisgI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CisgLy8gVE9E TyhqbG4pOiB0aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQg YmVsb3cpLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisgICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBl cnJuby4KKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKK0BAIC0yMTYsMTEgKzIyMiwx MiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50 IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9mbG9jazogICAgICAvLyBFUEVSTSBub3QgYSB2YWxp ZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6ICAgIC8vIEdpdmUgaW5mb3JtYXRpb24g YWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfZnN0YXRmczY0OgorICNlbmRpZgorICAg ICBjYXNlIF9fTlJfZnN5bmM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKy0jaWYgZGVm aW5lZChfX2kzODZfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6CisgI2VuZGlmCisgI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg XAorQEAgLTIyOCw2ICsyMzUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lz dGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFu Z2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZWxpZiBkZWZpbmVkKF9fYXJtX18p CisgICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFs aWQgZXJybm8uCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBjYXNlIF9fTlJf c3luY19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2VuZGlmCisg ICAgIGRlZmF1bHQ6CisgICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTI0OCw3ICsyNTcsOCBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8p IHsKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2dldGRlbnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2 YWxpZCBlcnJuby4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfcmVh ZGRpcjoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKK0BAIC0yODksNyArMjk5LDcgQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNHZXRTaW1wbGVJZChpbnQgc3lzbm8pIHsKKyBib29sIFN5c2Nh bGxTZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2UoaW50IHN5c25vKSB7CisgICBzd2l0Y2gg KHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9jYXBzZXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9p b3Blcm06ICAvLyBJbnRlbCBwcml2aWxlZ2UuCisgICAgIGNhc2UgX19OUl9pb3BsOiAgICAvLyBJ bnRlbCBwcml2aWxlZ2UuCisgI2VuZGlmCitAQCAtMzQwLDggKzM1MCwxMSBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluZyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBf X05SX3J0X3NpZ3JldHVybjoKKyAgICAgY2FzZSBfX05SX3J0X3NpZ3RpbWVkd2FpdDoKKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2lmbmRlZiBfX3Bvd2Vy cGM2NF9fCisgICAgIGNhc2UgX19OUl9ydF9zaWd0aW1lZHdhaXRfdGltZTY0OgorKyNlbmRpZgor ICAgICBjYXNlIF9fTlJfc2lnYWN0aW9uOgorICAgICBjYXNlIF9fTlJfc2lncHJvY21hc2s6Cisg ICAgIGNhc2UgX19OUl9zaWdyZXR1cm46CitAQCAtMzU3LDcgKzM3MCw4IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5nKGludCBzeXNubykgeworICNlbmRpZgorICAg ICBjYXNlIF9fTlJfc2lnbmFsZmQ0OgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3NpZ3BlbmRpbmc6CisgICAgIGNhc2UgX19OUl9z aWdzdXNwZW5kOgorICNlbmRpZgorQEAgLTM4MSw3ICszOTUsNyBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRPcGVyYXRpb25PbkZkKGludCBzeXNubykgeworICNlbmRpZgorICAgICBjYXNl IF9fTlJfZHVwMzoKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysg ICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBj YXNlIF9fTlJfc2h1dGRvd246CisgI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CitAQCAtNDE0 LDcgKzQyOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVh dGgoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9leGl0X2dyb3VwOgorICAgICBjYXNlIF9f TlJfd2FpdDQ6CisgICAgIGNhc2UgX19OUl93YWl0aWQ6CistI2lmIGRlZmluZWQoX19pMzg2X18p CisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAg Y2FzZSBfX05SX3dhaXRwaWQ6CisgI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CitAQCAtNDMx LDcgKzQ0NSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVh dGgoaW50IHN5c25vKSB7CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6 CisgICAgIGNhc2UgX19OUl91bnNoYXJlOgorLSNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRl ZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfdmZv cms6CisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CitAQCAtNDg0LDcgKzQ5OCw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgeworICAgICAg IHJldHVybiB0cnVlOworICAgICBkZWZhdWx0OgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVk KF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9zb2NrZXRwYWlyOiAgLy8gV2Ugd2lsbCB3YW50IHRv IGluc3BlY3QgaXRzIGFyZ3VtZW50LgorICNlbmRpZgorICAgICAgIHJldHVybiBmYWxzZTsKK0BA IC00OTQsNyArNTA4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlT b2NrZXQoaW50IHN5c25vKSB7CisgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlm eVNvY2tldChpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAjaWYgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwK Ky0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYWNjZXB0OgorICAgICBjYXNl IF9fTlJfYWNjZXB0NDoKKyAgICAgY2FzZSBfX05SX2JpbmQ6CitAQCAtNTA5LDcgKzUyMyw4IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7 CisgfQorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkg fHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgLy8gQmlnIG11bHRpcGxleGluZyBz eXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KKyBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwo aW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CitAQCAtNTIzLDcgKzUzOCw4IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8pIHsKKyB9CisgI2VuZGlmCisg CistI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg Ym9vbCBTeXNjYWxsU2V0czo6SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKSB7 CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXRwZWVybmFtZToKK0BAIC01 NDgsNyArNTY0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNj ZXNzKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfbWluY29yZToKKyAgICAgY2FzZSBfX05S X21sb2NrYWxsOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysg ICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBj YXNlIF9fTlJfbW1hcDoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBcCitAQCAtNTc4LDcgKzU5NCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAg Y2FzZSBfX05SX2xzZWVrOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgICAgY2FzZSBfX05SX19sbHNlZWs6CisgI2VuZGlmCisgI2lmICFkZWZpbmVkKF9f YWFyY2g2NF9fKQorQEAgLTU5OCwyNiArNjE1LDI4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX3JlYWR2OgorICAgICBj YXNlIF9fTlJfcHJlYWQ2NDoKKyAjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQor KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19O Ul9yZWN2OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg ICAgIGNhc2UgX19OUl9yZWN2ZnJvbTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgorICAgICBj YXNlIF9fTlJfcmVjdm1zZzogICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KKyAjZW5kaWYKKy0j aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgICAgY2FzZSBfX05SX3NlbGVjdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6CisgI2VuZGlm CisgI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc2VuZDoKKyAjZW5kaWYK KyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc2Vu ZG1zZzogIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCisgICAgIGNhc2UgX19OUl9zZW5k dG86ICAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KKyAjZW5kaWYKK0BAIC02NzMsNyAr NjkyLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIoaW50IHN5 c25vKSB7CisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2UgX19OUl9nZXRwcmlvcml0eToK KyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2Ug X19OUl9uaWNlOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0cHJpb3JpdHk6CitAQCAtNjg1 LDcgKzcwNSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGlu dCBzeXNubykgeworIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25v KSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYmRmbHVzaDoKKyAjZW5kaWYKKyAgICAgY2Fz ZSBfX05SX2tleGVjX2xvYWQ6CitAQCAtNzAxLDcgKzcyMiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7CisgCisgYm9vbCBTeXNjYWxsU2V0czo6SXNL ZXJuZWxNb2R1bGUoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CistI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBf X05SX2NyZWF0ZV9tb2R1bGU6CisgICAgIGNhc2UgX19OUl9nZXRfa2VybmVsX3N5bXM6ICAvLyBT aG91bGQgRU5PU1lTLgorICAgICBjYXNlIF9fTlJfcXVlcnlfbW9kdWxlOgorQEAgLTczNCw3ICs3 NTYsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZzQ29udHJvbChpbnQgc3lzbm8pIHsKKyAgICAg Y2FzZSBfX05SX3N3YXBvZmY6CisgICAgIGNhc2UgX19OUl9zd2Fwb246CisgI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3Vtb3VudDoKKyAjZW5kaWYKKyAgICAgY2FzZSBf X05SX3Vtb3VudDI6CitAQCAtNzUwLDcgKzc3Myw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTnVt YShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2dldGNwdToKKyAgICAgY2FzZSBfX05SX21i aW5kOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9f TlJfbWlncmF0ZV9wYWdlczoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX21vdmVfcGFnZXM6CitA QCAtNzg1LDE0ICs4MDgsMTUgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQcm9jZXNzRW52 aXJvbm1lbnQoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19O Ul9hY2N0OiAgLy8gUHJpdmlsZWdlZC4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19h YXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgICAgY2FzZSBfX05SX2dldHJsaW1pdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X3VnZXRybGltaXQ6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2Fz ZSBfX05SX3VsaW1pdDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2dldHJ1c2FnZToKK0BAIC04 MjYsNyArODUwLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaW50 IHN5c25vKSB7CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9zeXNpbmZvOgorICAgICBjYXNlIF9f TlJfdW5hbWU6CistI2lmIGRlZmluZWQoX19pMzg2X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX29sZHVuYW1lOgorICAg ICBjYXNlIF9fTlJfb2xkb2xkdW5hbWU6CisgI2VuZGlmCitAQCAtODkyLDggKzkxNiwxNiBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBzeXNubykgeworIH0KKyAj ZW5kaWYKKyAKKysvKiBzaGl0dHkgaGFjayBhcm91bmQgVm9pZCdzIDQuMTkga2VybmVsIGhlYWRl cnMgbWlzc2luZyB0aG9zZSBudW1iZXJzICovCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykg JiYgIWRlZmluZWQoX19OUl9zaG1nZXQpCisrI2RlZmluZSBfX05SX3NobWdldCAzOTUKKysjZGVm aW5lIF9fTlJfc2htY3RsIDM5NgorKyNkZWZpbmUgX19OUl9zaG1hdCAzOTcKKysjZGVmaW5lIF9f TlJfc2htZHQgMzk4CisrI2VuZGlmCisrCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIGRlZmluZWQoX19h YXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisr ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAor ICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82 NF9CSVRTKSkKKyAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFuZCBi eXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgorIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVlNo YXJlZE1lbW9yeShpbnQgc3lzbm8pIHsKK0BAIC05MjUsNyArOTU3LDggQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKGludCBzeXNubykgeworICNlbmRpZgorIAorICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0 ZW0gY2FsbC4KKyBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZJcGMoaW50IHN5c25vKSB7Cisg ICBzd2l0Y2ggKHN5c25vKSB7CitAQCAtOTQ1LDcgKzk3OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQW55U3lzdGVtVihpbnQgc3lzbm8pIHsKKyAgIHJldHVybiBJc1N5c3RlbVZNZXNzYWdlUXVl dWUoc3lzbm8pIHx8IElzU3lzdGVtVlNlbWFwaG9yZXMoc3lzbm8pIHx8CisgICAgICAgICAgSXNT eXN0ZW1WU2hhcmVkTWVtb3J5KHN5c25vKTsKKyAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBc CistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg ICByZXR1cm4gSXNTeXN0ZW1WSXBjKHN5c25vKTsKKyAjZW5kaWYKKyB9CitAQCAtMTAwMiw3ICsx MDM2LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGYU5vdGlmeShpbnQgc3lzbm8pIHsKKyBib29s IFN5c2NhbGxTZXRzOjpJc1RpbWVyKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgewor ICAgICBjYXNlIF9fTlJfZ2V0aXRpbWVyOgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9hbGFybToKKyAjZW5kaWYK KyAgICAgY2FzZSBfX05SX3NldGl0aW1lcjoKK0BAIC0xMDg0LDE4ICsxMTE5LDIyIEBAIGJvb2wg U3lzY2FsbFNldHM6OklzTWlzYyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX3N5bmNmczoK KyAgICAgY2FzZSBfX05SX3ZoYW5ndXA6CisgLy8gVGhlIHN5c3RlbSBjYWxscyBiZWxvdyBhcmUg bm90IGltcGxlbWVudGVkLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9hZnNfc3lzY2FsbDoKKyAjZW5kaWYKKyAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYnJlYWs6CisgI2VuZGlmCist I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAg ICAgY2FzZSBfX05SX2dldHBtc2c6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KyAgICAgY2FzZSBfX05SX2d0dHk6CisgICAgIGNhc2UgX19OUl9pZGxlOgorICAgICBjYXNlIF9f TlJfbG9jazoKK0BAIC0xMTAzLDIwICsxMTQyLDIyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlz YyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX3Byb2Y6CisgICAgIGNhc2UgX19OUl9wcm9m aWw6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3B1dHBtc2c6CisgI2VuZGlmCisgI2lmIGRlZmlu ZWQoX194ODZfNjRfXykKKyAgICAgY2FzZSBfX05SX3NlY3VyaXR5OgorICNlbmRpZgorICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9zdHR5OgorICNlbmRpZgorLSNpZiBk ZWZpbmVkKF9feDg2XzY0X18pCisrI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfdHV4Y2FsbDoKKyAjZW5kaWYKKy0jaWYgIWRl ZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfdnNlcnZlcjoKKyAjZW5kaWYKKyAgICAg ICByZXR1cm4gdHJ1ZTsKK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9zZXRzLmggYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMv c3lzY2FsbF9zZXRzLmgKK2luZGV4IDkyMzUzM2VjOS4uNDExZjcyYWNkIDEwMDY0NAorLS0tIGEv c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCisrKysgYi9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKK0BAIC00Mywx MyArNDMsMTQgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgeworICAgc3RhdGlj IGJvb2wgSXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pOworIAorICNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsIGZvciBz b2NrZXRzLgorICAgc3RhdGljIGJvb2wgSXNTb2NrZXRDYWxsKGludCBzeXNubyk7CisgI2VuZGlm CisgCisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIHN0YXRpYyBib29s IElzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubyk7CisgI2VuZGlmCisgCitAQCAt NzYsNyArNzcsNyBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7CisgICBzdGF0 aWMgYm9vbCBJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBzeXNubyk7CisgI2VuZGlmCisgI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKKyAgIC8vIFRoZXNlIGdpdmUgYSBsb3Qg b2YgYW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCisgICBz dGF0aWMgYm9vbCBJc1N5c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKTsKK0BAIC04OCw3ICs4 OSw4IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKKyAjZW5kaWYKKyAKKyAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBz eXN0ZW0gY2FsbC4KKyAgIHN0YXRpYyBib29sIElzU3lzdGVtVklwYyhpbnQgc3lzbm8pOworICNl bmRpZgorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBi L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYworaW5kZXggZTQ3ZTk4YmY1Li5k NTNhN2ZmNTYgMTAwNjQ0CistLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwu Y2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYworQEAgLTE4LDcg KzE4LDcgQEAgbmFtZXNwYWNlIHNhbmRib3ggeworIG5hbWVzcGFjZSB7CisgCisgI2lmIGRlZmlu ZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8 fCBcCistICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisrICAgIGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQgKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKyAv LyBOdW1iZXIgdGhhdCdzIG5vdCBjdXJyZW50bHkgdXNlZCBieSBhbnkgTGludXgga2VybmVsIEFC SXMuCisgY29uc3QgaW50IGtJbnZhbGlkU3lzY2FsbE51bWJlciA9IDB4MzUxZDM7CisgI2Vsc2UK K0BAIC0zMTAsMTIgKzMxMCw1NiBAQCBhc20oLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlbGwg dGhlIGtlcm5lbCBleGFjdGx5IHdoZXJlIHdlIG1hZGUgYQorICAgICAvLyBFbnRlciB0aGUga2Vy bmVsCisgICAgICJzdmMgMFxuIgorICAgICAiMjpyZXRcbiIKKysgICAgIi5jZmlfZW5kcHJvY1xu IgorKyAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCisrI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorKyAgICAiLnRleHRcbiIKKysgICAgIi5hbGlnbiA0XG4iCisrICAg ICIudHlwZSBTeXNjYWxsQXNtIEBmdW5jdGlvblxuIgorKyAgICAiU3lzY2FsbEFzbTpcbiIKKysg ICAgIi5jZmlfc3RhcnRwcm9jXG4iCisrCisrICAgIC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZl CisrICAgICJjbXBkaSAzLCAwXG4iCisrICAgICJiZ3QgMmZcbiIKKysKKysgICAgLy8gTG9hZCBh ZGRyZXNzIG9mIDNmIGludG8gcjMgYW5kIHJldHVybgorKyAgICAibWZsciAxMFxuIgorKyAgICAi YmwgMWZcbiIKKysgICAgIjE6IG1mbHIgM1xuIgorKyAgICAibXRsciAxMFxuIgorKyAgICAiYWRk aSAzLCAzLCA0KjEzXG4iCisrICAgICJibHJcbiIKKysKKysgICAgLy8gTG9hZCBhcmd1bWVudHMg ZnJvbSBhcnJheSBpbnRvIHIzLTgKKysgICAgLy8gc2F2ZSBwYXJhbSAzIGluIHIxMAorKyAgICAi MjpcbiIKKysgICAgIm1yIDAsIDNcbiIKKysgICAgImxkIDMsIDAoNClcbiIKKysgICAgImxkIDUs IDE2KDQpXG4iCisrICAgICJsZCA2LCAyNCg0KVxuIgorKyAgICAibGQgNywgMzIoNClcbiIKKysg ICAgImxkIDgsIDQwKDQpXG4iCisrICAgICJsZCA0LCA4KDQpXG4iCisrICAgICJsaSA5LCAwXG4i CisrCisrICAgIC8vIEVudGVyIGtlcm5lbAorKyAgICAic2NcbiIKKysKKysgICAgLy8gTWFnaWMg cmV0dXJuIGFkZHJlc3MKKysgICAgIjM6XG4iCisrICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0 dXJuIHZhbHVlcyBhcmUgYWx3YXlzIHBvc2l0aXZlLgorKyAgICAvLyBDaGVjayBmb3IgZXJyb3Ig aW4gY3IwLlNPIGFuZCBuZWdhdGUgdXBvbiBlcnJvcgorKyAgICAiYmMgNCwgMywgNGZcbiIKKysg ICAgIm5lZyAzLCAzXG4iCisrICAgICI0OiBibHJcbiIKKysKKyAgICAgIi5jZmlfZW5kcHJvY1xu IgorICAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCisgI2VuZGlmCisgICAg ICk7ICAvLyBhc20KKyAKKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyBleHRlcm4gIkMiIHsKKyBpbnRw dHJfdCBTeXNjYWxsQXNtKGludHB0cl90IG5yLCBjb25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKKyB9 CitAQCAtNDI5LDYgKzQ3Myw4IEBAIGludHB0cl90IFN5c2NhbGw6OkNhbGwoaW50IG5yLAorICAg ICByZXQgPSBpbm91dDsKKyAgIH0KKyAKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr ICBpbnRwdHJfdCByZXQgPSBTeXNjYWxsQXNtKG5yLCBhcmdzKTsKKyAjZWxzZQorICNlcnJvciAi VW5pbXBsZW1lbnRlZCBhcmNoaXRlY3R1cmUiCisgI2VuZGlmCitAQCAtNDQ1LDggKzQ5MSwxOCBA QCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29u dGV4dF90KiBjdHgpIHsKKyAgICAgLy8gbmVlZHMgdG8gYmUgY2hhbmdlZCBiYWNrLgorICAgICBy ZXRfdmFsID0gLXJldF92YWw7CisgICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDE7CistICB9IGVs c2UKKysgIH0gZWxzZSB7CisgICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDA7CisrICB9CisrI2Vu ZGlmCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFNhbWUgYXMgTUlQUywgbmVl ZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKKysgIGlmIChy ZXRfdmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQwOTUpIHsKKysgICAgcmV0X3ZhbCA9IC1yZXRf dmFsOworKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7CisrICB9 IGVsc2UgeworKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOwor KyAgfQorICNlbmRpZgorICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdf dD4ocmV0X3ZhbCk7CisgfQorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYv dHJhcC5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworaW5kZXggZjViODZh NzNhLi41ZTZjNGEwNjggMTAwNjQ0CistLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3Ry YXAuY2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworQEAgLTIzMiw2 ICsyMzIsMjAgQEAgdm9pZCBUcmFwOjpTaWdTeXMoaW50IG5yLCBMaW51eFNpZ0luZm8qIGluZm8s IHVjb250ZXh0X3QqIGN0eCkgeworICAgICAgIFNldElzSW5TaWdIYW5kbGVyKCk7CisgICAgIH0K KyAKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAvLyBPbiBwcGM2NCtnbGliYywg c29tZSBzeXNjYWxscyBzZWVtIHRvIGFjY2lkZW50YWxseSBuZWdhdGUgdGhlIGZpcnN0CisrICAg IC8vIHBhcmFtZXRlciB3aGljaCBjYXVzZXMgY2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9y IG5vdywgbWFudWFsbHkKKysgICAgLy8gbmVnYXRlIHRoZW0gYmFjay4KKysgICAgLy8gVE9ETyhz aGF3bkBhbmFzdGFzLmlvKTogaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSBmdXJ0aGVyCisrICAgIGF1 dG8gbnIgPSBTRUNDT01QX1NZU0NBTEwoY3R4KTsKKysgICAgaWYgKG5yID09IF9fTlJfb3BlbmF0 IHx8IG5yID09IF9fTlJfbWtkaXJhdCB8fCBuciA9PSBfX05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBf X05SX3JlYWRsaW5rYXQgfHwKKysgICAgICAgIG5yID09IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0g X19OUl9yZW5hbWVhdDIgfHwgbnIgPT0gX19OUl9uZXdmc3RhdGF0IHx8IG5yID09IF9fTlJfdW5s aW5rYXQpIHsKKysgICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4 KSkgPiAwKSB7CisrICAgICAgICAgICAgU0VDQ09NUF9QQVJNMShjdHgpID0gLVNFQ0NPTVBfUEFS TTEoY3R4KTsKKysgICAgICAgIH0KKysgICAgfQorKyNlbmRpZgorKworICAgICAvLyBDb3B5IHRo ZSBzZWNjb21wLXNwZWNpZmljIGRhdGEgaW50byBhIGFyY2hfc2VjY29tcF9kYXRhIHN0cnVjdHVy ZS4gVGhpcworICAgICAvLyBpcyB3aGF0IHdlIGFyZSBzaG93aW5nIHRvIFRyYXBGbmMgY2FsbGJh Y2tzIHRoYXQgdGhlIHN5c3RlbSBjYWxsCisgICAgIC8vIGV2YWx1YXRvciByZWdpc3RlcmVkIHdp dGggdGhlIHNhbmRib3guCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVk ZW50aWFscy5jYyBiL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKK2luZGV4 IGQ3YjVkOGM0NC4uNGFkYzZkMGQ0IDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51eC9zZXJ2aWNl cy9jcmVkZW50aWFscy5jYworKysrIGIvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFs cy5jYworQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBDaHJvb3RUb1NhZmVFbXB0eURpcigpIHsKKyAg IHBpZF90IHBpZCA9IC0xOworICAgYWxpZ25hcygxNikgY2hhciBzdGFja19idWZbUFRIUkVBRF9T VEFDS19NSU5dOworICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQo QVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKyAgIC8vIFRoZSBzdGFjayBncm93cyBkb3dud2FyZC4KKyAgIHZv aWQqIHN0YWNrID0gc3RhY2tfYnVmICsgc2l6ZW9mKHN0YWNrX2J1Zik7CisgI2Vsc2UKK2RpZmYg LS1naXQgYS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MgYi9zYW5k Ym94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKK2luZGV4IGZjZmQyYWExMi4u ZjZlYjMyZmI3IDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dy YXBwZXJzLmNjCisrKysgYi9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMu Y2MKK0BAIC01OCw3ICs1OCw3IEBAIGxvbmcgc3lzX2Nsb25lKHVuc2lnbmVkIGxvbmcgZmxhZ3Ms CisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KQorICAgcmV0dXJuIHN5c2NhbGwoX19OUl9j bG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCBjdGlkLCB0bHMpOworICNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfWDg2KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKKy0g ICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKysgICAgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgICAvLyBDT05G SUdfQ0xPTkVfQkFDS1dBUkRTIGRlZmluZWQuCisgICByZXR1cm4gc3lzY2FsbChfX05SX2Nsb25l LCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIHRscywgY3RpZCk7CisgI2VuZGlmCitkaWZmIC0t Z2l0IGEvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYyBiL3Nh bmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKK2luZGV4IGQ3MmM5 ZDIzOC4uNzdmMWQ5NWY1IDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tl ci9icm9rZXJfcHJvY2Vzcy5jYworKysrIGIvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9i cm9rZXJfcHJvY2Vzcy5jYworQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIEJyb2tlclByb2Nlc3M6 OklzU3lzY2FsbEJyb2tlcmFibGUoaW50IHN5c25vLCBib29sIGZhc3RfY2hlY2spIGNvbnN0IHsK KyAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKKyAgICAgY2FzZSBfX05SX2ZzdGF0YXQ2NDoK KyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9f KQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6CisgI2VuZGlm CisgICAgICAgcmV0dXJuICFmYXN0X2NoZWNrIHx8IGFsbG93ZWRfY29tbWFuZF9zZXRfLnRlc3Qo Q09NTUFORF9TVEFUKTsKK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3NlY2NvbXAuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2Vj Y29tcC5oCitpbmRleCAxZmE0N2VkMDkuLjM5Y2M5YWI1MyAxMDA2NDQKKy0tLSBhL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCisrKysgYi9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAorQEAgLTQxLDYgKzQxLDkgQEAKKyAjaWZu ZGVmIEVNX0FBUkNINjQKKyAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCisgI2VuZGlmCisrI2lmbmRl ZiBFTV9QUEM2NAorKyNkZWZpbmUgRU1fUFBDNjQgMjEKKysjZW5kaWYKKyAKKyAjaWZuZGVmIF9f QVVESVRfQVJDSF82NEJJVAorICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAK K0BAIC03Myw2ICs3NiwxMiBAQAorICNpZm5kZWYgQVVESVRfQVJDSF9BQVJDSDY0CisgI2RlZmlu ZSBBVURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBf X0FVRElUX0FSQ0hfTEUpCisgI2VuZGlmCisrI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0CisrI2Rl ZmluZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCkKKysj ZW5kaWYKKysjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRMRQorKyNkZWZpbmUgQVVESVRfQVJDSF9Q UEM2NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkK KysjZW5kaWYKKyAKKyAvLyBGb3IgcHJjdGwuaAorICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKK2Rp ZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oIGIv c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAoraW5kZXggZjVhNzM2 NzYxLi41MTViMjFhNWYgMTAwNjQ0CistLS0gYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3NpZ25hbC5oCisrKysgYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4 X3NpZ25hbC5oCitAQCAtMTMsNyArMTMsNyBAQAorIC8vIChub3QgdW5kZWZpbmVkLCBidXQgZGVm aW5lZCBkaWZmZXJlbnQgdmFsdWVzIGFuZCBpbiBkaWZmZXJlbnQgbWVtb3J5CisgLy8gbGF5b3V0 cykuIFNvLCBmaWxsIHRoZSBnYXAgaGVyZS4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgZGVmaW5lZChf X2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorIAorICNkZWZpbmUgTElOVVhfU0lHSFVQIDEKKyAjZGVmaW5lIExJTlVYX1NJR0lO VCAyCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNj YWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCitp bmRleCAyYjc4YTBjYzMuLjBhNzBmNWVhNSAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAorKysrIGIvc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9saW51eF9zeXNjYWxscy5oCitAQCAtMzUsNSArMzUsOSBAQAorICNpbmNsdWRlICJz YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgiCisgI2Vu ZGlmCisgCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaW5jbHVkZSAic2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oIgorKyNlbmRpZgorKwor ICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19MSU5VWF9TWVNDQUxMU19I XworIAorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNv bnRleHQuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAor aW5kZXggMjJjZTc4MDI3Li5hNjliMDI0YzIgMTAwNjQ0CistLS0gYS9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgKKysrKyBiL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAorQEAgLTExLDYgKzExLDggQEAKKyAjaW5jbHVkZSAi c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRleHQuaCIKKyAjZWxp ZiBkZWZpbmVkKF9faTM4Nl9fKQorICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2kzODZfbGludXhfdWNvbnRleHQuaCIKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNv bnRleHQuaCIKKyAjZWxzZQorICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1 cmUgaW4gUE5hQ2wgaGVhZGVyIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMC4uY2NhY2ZmZTIyCistLS0gL2Rldi9udWxsCisrKysgYi9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0wLDAgKzEs MTIgQEAKKysvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh IEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0Ug ZmlsZS4KKysKKysjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElO VVhfU1lTQ0FMTFNfSF8KKysjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBD NjRfTElOVVhfU1lTQ0FMTFNfSF8KKysKKysjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorKworKy8v VE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5c2NhbGwgbnVtYmVycyBmb3IgUFBD NjQ/CisrCisrI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJ TlVYX1NZU0NBTExTX0hfCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9wcGM2NF9saW51eF91Y29udGV4dC5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9w cGM2NF9saW51eF91Y29udGV4dC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MDAwLi4wNzcyOGUwODcKKy0tLSAvZGV2L251bGwKKysrKyBiL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaAorQEAgLTAsMCArMSwxMiBAQAorKy8vIENv cHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNp Zm5kZWYgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9I XworKyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09O VEVYVF9IXworKworKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKysKKysvL1RPRE86IGlzIGl0 IG5lY2Vzc2FyeSB0byByZWRlZmluZSB1Y29udGV4dCBvbiBQUEM2ND8KKysKKysjZW5kaWYgIC8v IFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KK2Rp ZmYgLS1naXQgYS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4 LmNjIGIvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwor aW5kZXggMjU4OGZjNzkyLi5kNDU1YzQ2MDEgMTAwNjQ0CistLS0gYS9zYW5kYm94L3BvbGljeS9s aW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysgYi9zYW5kYm94L3BvbGljeS9s aW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCitAQCAtMTUsNiArMTUsMTEgQEAKKyAj aW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oIgor ICNpbmNsdWRlICJzYW5kYm94L3BvbGljeS9saW51eC9zYW5kYm94X2xpbnV4LmgiCisgCisrLy8g T24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBz byB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCisrI2lmZGVmIF9fcG93ZXJwYzY0X18KKysjaW5j bHVkZSA8dGVybWlvcy5oPgorKyNlbmRpZgorKworIC8vIFRPRE8odmlnbmF0dGkpOiByZXBsYWNl IHRoZSBsb2NhbCBkZWZpbml0aW9ucyBiZWxvdyB3aXRoICNpbmNsdWRlCisgLy8gPGxpbnV4L2Rt YS1idWYuaD4gb25jZSBrZXJuZWwgdmVyc2lvbiA0LjYgYmVjb21lcyB3aWRlbHkgdXNlZC4KKyAj aW5jbHVkZSA8bGludXgvdHlwZXMuaD4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9hbmdsZS9z cmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oIGIvdGhpcmRfcGFydHkvYW5nbGUvc3Jj L2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAoraW5kZXggM2E4MDdlMWUzLi41MjU4NjE3 YTcgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRv ci9JbmZvU2luay5oCisrKysgYi90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNs YXRvci9JbmZvU2luay5oCitAQCAtOTIsNyArOTIsMTYgQEAgY2xhc3MgVEluZm9TaW5rQmFzZQor ICAgICAgICAgICAgIHN0cmVhbS5wcmVjaXNpb24oOCk7CisgICAgICAgICAgICAgc3RyZWFtIDw8 IGY7CisgICAgICAgICB9CistICAgICAgICBzaW5rLmFwcGVuZChzdHJlYW0uc3RyKCkpOworKwor KyAgICAgICAgLy8gSGFjayB0byB3b3JrIGFyb3VuZCBhIGJ1ZyB3aGVyZSBuZWdhdGl2ZSBmbG9h dGluZyBwb2ludCB2YWx1ZXMKKysgICAgICAgIC8vIGFyZSByZW5kZXJlZCBsaWtlICcuMC41JyBp bnN0ZWFkIG9mICctMC41JworKyAgICAgICAgc3RkOjpzdHJpbmcgcmVzKHN0cmVhbS5zdHIoKSk7 CisrCisrICAgICAgICBpZiAoc2lnbmJpdChmKSkgeyAvLyB0ZXN0IGlmIGYgaXMgbmVnYXRpdmUK KysgICAgICAgICAgICByZXNbMF0gPSAnLSc7CisrICAgICAgICB9CisrCisrICAgICAgICBzaW5r LmFwcGVuZChyZXMpOworICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICB9CisgICAgIC8vIFdy aXRlIGJvb2xlYW4gdmFsdWVzIGFzIHRoZWlyIG5hbWVzIGluc3RlYWQgb2YgaW50ZWdyYWwgdmFs dWUuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50 cy5oIGIvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCitpbmRleCBm Y2JjOTI0NmEuLjM5YWU2NjE0OCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9s aWJBTkdMRS9Db25zdGFudHMuaAorKysrIGIvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xF L0NvbnN0YW50cy5oCitAQCAtOSw2ICs5LDcgQEAKKyAjaWZuZGVmIExJQkFOR0xFX0NPTlNUQU5U U19IXworICNkZWZpbmUgTElCQU5HTEVfQ09OU1RBTlRTX0hfCisgCisrI2luY2x1ZGUgPGNzdGRk ZWY+CisgI2luY2x1ZGUgImNvbW1vbi9wbGF0Zm9ybS5oIgorIAorICNpbmNsdWRlIDxzdGRpbnQu aD4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24gYi90aGlyZF9w YXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KK2luZGV4IDE3Y2Y5Y2RhOS4uOGNlOTZiZDMyIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCisrKysgYi90aGlyZF9wYXJ0 eS9ib3Jpbmdzc2wvQlVJTEQuZ24KK0BAIC0xMDMsNiArMTAzLDEzIEBAIGlmIChpc193aW4gJiYg IWlzX21zYW4gJiYgY3VycmVudF9jcHUgIT0gImFybTY0IikgeworICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCisgICAgICAgfQor KyAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgICBpZiAoaXNf bGludXgpIHsKKysgICAgICAgICMgVE9ETzogcHBjNjQgKGJlKSBjaGVjaworKyAgICAgICAgc291 cmNlcyArPSBjcnlwdG9fc291cmNlc19saW51eF9wcGM2NGxlCisrICAgICAgfSBlbHNlIHsKKysg ICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKysgICAgICB9Cisg ICAgIH0gZWxzZSB7CisgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIg XQorICAgICB9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24gYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgoraW5kZXggNGFmM2Q3YmJmLi5hZGJmNTQxNTkg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgorKysrIGIvdGhpcmRf cGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KK0BAIC01OTYsNyArNTk2LDYgQEAgaWYgKGlzX2xpbnV4 IHx8IGlzX2Nocm9tZW9zIHx8IGlzX2FuZHJvaWQpIHsKKyAgICAgICAiYnJlYWtwYWQvc3JjL2Ns aWVudC9taW5pZHVtcF9maWxlX3dyaXRlci5oIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1v bi9jb252ZXJ0X1VURi5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vY29udmVydF9V VEYuaCIsCistICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29u dGV4dC5TIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1w LmNjIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgi LAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZnV0aWxzLmNjIiwKK0BAIC02 MzQsNiArNjMzLDE0IEBAIGlmIChpc19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lk KSB7CisgCisgICAgIGxpYnMgPSBbICJkbCIgXQorIAorKyAgICBpZiAoY3VycmVudF9jcHUgPT0g InBwYzY0IikgeworKyAgICAgICAgZGVmaW5lcyA9IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQorKyAg ICB9IGVsc2UgeworKyAgICAgICAgc291cmNlcyArPSBbCisrICAgICAgICAgICAgImJyZWFrcGFk L3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TIgorKyAgICAgICAgXQorKyAg ICB9CisrCisgICAgIGluY2x1ZGVfZGlycyA9IFsKKyAgICAgICAiLiIsCisgICAgICAgImJyZWFr cGFkL3NyYyIsCitAQCAtNjgyLDcgKzY4OSw2IEBAIGlmIChpc19saW51eCB8fCBpc19jaHJvbWVv cyB8fCBpc19hbmRyb2lkKSB7CisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYyIsCisgICAgICAgImJyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0 dGVzdF91dGlscy5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL3Byb2NfY3B1aW5mb19yZWFkZXJfdW5pdHRlc3QuY2MiLAorLSAgICAgICJicmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHRfdW5pdHRlc3QuY2MiLAor ICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXBfdW5pdHRlc3Qu Y2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2ZpbGVfaWRfdW5pdHRlc3Qu Y2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2xpbnV4X2xpYmNfc3VwcG9y dF91bml0dGVzdC5jYyIsCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1Lmgg Yi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3Jp dGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAoraW5kZXggMDdkOTE3MWEwLi45YWVkNGNiMzYg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAorKysrIGIvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v cmF3X2NvbnRleHRfY3B1LmgKK0BAIC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgTURSYXdDb250ZXh0 QVJNIFJhd0NvbnRleHRDUFU7CisgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk02NF9PbGQgUmF3Q29u dGV4dENQVTsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorIHR5cGVkZWYgTURSYXdDb250ZXh0 TUlQUyBSYXdDb250ZXh0Q1BVOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt0eXBl ZGVmIE1EUmF3Q29udGV4dFBQQzY0IFJhd0NvbnRleHRDUFU7CisgI2Vsc2UKKyAjZXJyb3IgIlRo aXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5k aWYKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYyBiL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVh ZF9pbmZvLmNjCitpbmRleCBhYWUxZGMxM2IuLjAzYWZlYzdhNSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29t bW9uL3RocmVhZF9pbmZvLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYworQEAgLTI3 MCw3ICsyNzAsNDIgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0 Q1BVKiBvdXQpIGNvbnN0IHsKKyAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSBtY29udGV4dC5mcGNf ZWlyOworICNlbmRpZgorIH0KKy0jZW5kaWYgIC8vIF9fbWlwc19fCisrCisrI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorKworK3VpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlv blBvaW50ZXIoKSBjb25zdCB7CisrICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07 CisrfQorKworK3ZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSog b3V0KSBjb25zdCB7CisrICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUFBDNjRf RlVMTDsKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VO VDsgaSsrKQorKyAgICAgICAgb3V0LT5ncHJbaV0gPSBtY29udGV4dC5ncF9yZWdzW2ldOworKwor KyAgICBvdXQtPmxyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOworKyAgICBvdXQtPnNycjAg PSBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07CisrICAgIG91dC0+c3JyMSA9IG1jb250ZXh0Lmdw X3JlZ3NbUFRfTVNSXTsKKysgICAgb3V0LT5jciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsK KysgICAgb3V0LT54ZXIgPSBtY29udGV4dC5ncF9yZWdzW1BUX1hFUl07CisrICAgIG91dC0+Y3Ry ID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOworKyAgICAKKysgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91 dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSBtY29udGV4dC5mcF9yZWdzW2ldOworKworKyAgICBv dXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKKysKKysg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkr KykKKysgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKKysgICAgICAgICAg ICB7KCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzBdKSA8PCAzMikgCisrICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVsxXSwgCisrICAgICAgICAgICAgKCgodWlu dDY0X3QpdnJlZ3MudnJyZWdzW2ldWzJdKSA8PCAzMikKKysgICAgICAgICAgICAgICAgICAgICAg ICAgfCB2cmVncy52cnJlZ3NbaV1bM119OworKworKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLnZy c2F2ZTsKKysgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MudnNjci52 c2NyX3dvcmR9OworKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZG RkY7IAorK30KKysjZW5kaWYgIC8vIF9fcG93ZXJwYzY0X18KKyAKKyB2b2lkIFRocmVhZEluZm86 OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQqKiBncF9yZWdzLCBzaXplX3QqIHNpemUp IHsKKyAgIGFzc2VydChncF9yZWdzIHx8IHNpemUpOworQEAgLTI3OSw2ICszMTQsMTEgQEAgdm9p ZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywg c2l6ZV90KiBzaXplKSB7CisgICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3JlZ3M7CisgICBpZiAo c2l6ZSkKKyAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3JlZ3MpOworKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKysgIGlmIChncF9yZWdzKQorKyAgICAqZ3BfcmVncyA9IG1jb250 ZXh0LmdwX3JlZ3M7CisrICBpZiAoc2l6ZSkKKysgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQu Z3BfcmVncyk7CisgI2Vsc2UKKyAgIGlmIChncF9yZWdzKQorICAgICAqZ3BfcmVncyA9ICZyZWdz OworQEAgLTI5NCw2ICszMzQsMTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50 UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpIHsKKyAgICAgKmZwX3JlZ3Mg PSAmbWNvbnRleHQuZnByZWdzOworICAgaWYgKHNpemUpCisgICAgICpzaXplID0gc2l6ZW9mKG1j b250ZXh0LmZwcmVncyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgaWYgKGZw X3JlZ3MpCisrICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwX3JlZ3M7CisrICBpZiAoc2l6ZSkK KysgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZnBfcmVncyk7CisgI2Vsc2UKKyAgIGlmIChm cF9yZWdzKQorICAgICAqZnBfcmVncyA9ICZmcHJlZ3M7CitAQCAtMzAyLDQgKzM0NywxMyBAQCB2 b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3Ms IHNpemVfdCogc2l6ZSkgeworICNlbmRpZgorIH0KKyAKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorK3ZvaWQgVGhyZWFkSW5mbzo6R2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3Ms IHNpemVfdCogc2l6ZSkgeworKyAgICBpZiAodl9yZWdzKQorKyAgICAgICAgKnZfcmVncyA9ICZ2 cmVnczsKKysgICAgaWYgKHNpemUpCisrICAgICAgICAqc2l6ZSA9IHNpemVvZih2cmVncyk7Cisr fQorKyNlbmRpZgorKworIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBf d3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAoraW5k ZXggZmIyMTZmYTZkLi41OTNhYWM4MjIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5m by5oCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCitAQCAtNjgsNiArNjgsMTAgQEAgc3Ry dWN0IFRocmVhZEluZm8geworICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmVzIGRlZmluZWQgaW4gPHN5 cy91c2VyLmg+CisgICBzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCByZWdzOworICAgc3RydWN0IHVz ZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmVzIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5oPi4KKysg IG1jb250ZXh0X3QgbWNvbnRleHQ7CisrICB2cnJlZ3NldF90IHZyZWdzOworICNlbGlmIGRlZmlu ZWQoX19taXBzX18pCisgICAvLyBVc2UgdGhlIHN0cnVjdHVyZSBkZWZpbmVkIGluIDxzeXMvdWNv bnRleHQuaD4uCisgICBtY29udGV4dF90IG1jb250ZXh0OworQEAgLTg0LDYgKzg4LDExIEBAIHN0 cnVjdCBUaHJlYWRJbmZvIHsKKyAKKyAgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUg b2YgZmxvYXQgcG9pbnQgcmVnaXN0ZXIgYXJlYS4KKyAgIHZvaWQgR2V0RmxvYXRpbmdQb2ludFJl Z2lzdGVycyh2b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKTsKKysKKysjaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorKyAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBvZiB0aGUg dmVjdG9yIHJlZ2lzdGVyIGFyZWEuIChQUEM2NCBvbmx5KQorKyAgdm9pZCBHZXRWZWN0b3JSZWdp c3RlcnModm9pZCoqIHZfcmVncywgc2l6ZV90KiBzaXplKTsKKysjZW5kaWYKKyB9OworIAorIH0g IC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29u dGV4dF9yZWFkZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKK2luZGV4IDZlZWMx YmUyNC4uNzQxOTgzYTFhIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNj CisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKK0BAIC0yNTQsNiArMjU0LDQ4IEBA IHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwg Y29uc3QgdWNvbnRleHRfdCogdWMpIHsKKyAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSB1Yy0+dWNf bWNvbnRleHQuZnBjX2VpcjsgIC8vIFVudXNlZC4KKyAjZW5kaWYKKyB9CisrCisrI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKworK3VpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0U3Rh Y2tQb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CisrICAgIHJldHVybiB1Yy0+dWNfbWNv bnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF07CisrfQorKworK3VpbnRwdHJf dCBVQ29udGV4dFJlYWRlcjo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKGNvbnN0IHVjb250ZXh0X3Qq IHVjKSB7CisrICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworK30K KysKKyt2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBv dXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKSB7CisrICAgIG91dC0+Y29udGV4dF9mbGFn cyA9IE1EX0NPTlRFWFRfUFBDNjRfRlVMTDsKKysKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBN RF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5ncHJbaV0gPSB1 Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tpXTsKKysKKysgICAgb3V0LT5sciA9IHVjLT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX0xOS107ICAgIAorKyAgICBvdXQtPnNycjAgPSB1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9OSVBdOworKyAgICBvdXQtPnNycjEgPSB1Yy0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9NU1JdOworKyAgICBvdXQtPmNyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf Q0NSXTsKKysgICAgb3V0LT54ZXIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOwor KyAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl07CisrICAgIAor KyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VO VDsgaSsrKQorKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IHVjLT51Y19tY29u dGV4dC5mcF9yZWdzW2ldOworKworKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+dWNf bWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07CisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwg TURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPnZlY3Rv cl9zYXZlLnNhdmVfdnJbaV0gPQorKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy0+dnJy ZWdzW2ldWzBdKSA8PCAzMikgCisrICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MtPnZy cmVnc1tpXVsxXSwgCisrICAgICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1b Ml0pIDw8IDMyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1b M119OworKworKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLT52cnNhdmU7CisrICAgIG91dC0+dmVj dG9yX3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLT52c2NyLnZzY3Jfd29yZH07CisrICAgIG91 dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsgCisrfQorKworICNlbmRp ZgorIAorIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi91Y29udGV4dF9yZWFkZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCitpbmRl eCA3ZDQxMDA4ODEuLmMxMjJhYzkyZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3Jl YWRlci5oCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAorQEAgLTU1LDYgKzU1LDkg QEAgc3RydWN0IFVDb250ZXh0UmVhZGVyIHsKKyAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQor ICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1 Y29udGV4dF90KiB1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBmcHNpbWRfY29udGV4dCogZnByZWdzKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0 IHVjb250ZXh0X3QgKnVjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdnJy ZWdzZXRfdCogdnJlZ3MpOworICNlbHNlCisgICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChS YXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjKTsKKyAjZW5kaWYKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK2luZGV4IGE2 Y2I1Zjk4NC4uYWUxNmI2NGQ5IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysg Yi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIv ZXhjZXB0aW9uX2hhbmRsZXIuY2MKK0BAIC00NjEsOSArNDYxLDE2IEBAIGJvb2wgRXhjZXB0aW9u SGFuZGxlcjo6SGFuZGxlU2lnbmFsKGludCAvKnNpZyovLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQq IHVjKSB7CisgICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy5mbG9hdF9zdGF0ZSwgZnBfcHRy LAorICAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUpKTsKKyAg IH0KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBPbiBQUEM2NCwgd2UgbXVz dCBjb3B5IFZSIHN0YXRlCisrICB1Y29udGV4dF90KiB1Y19wdHIgPSAodWNvbnRleHRfdCopdWM7 CisrICBpZiAodWNfcHRyLT51Y19tY29udGV4dC52X3JlZ3MpIHsKKysgICAgbWVtY3B5KCZnX2Ny YXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0ZSwgdWNfcHRyLT51Y19tY29udGV4dC52X3JlZ3MsCisr ICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUpKTsKKysgIH0K KyAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAg Ly8gRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBBQkkgb24gQVJNIExpbnV4LgorLSAgLy8g SW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4 dF90CisrICAvLyBJbiBjYXNlIG9mIE1JUFMsIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFy dCBvZiB1Y29udGV4dF90CisgICAvLyBhbmQgJ2Zsb2F0X3N0YXRlJyBpcyBub3QgYSBtZW1iZXIg b2YgQ3Jhc2hDb250ZXh0LgorICAgdWNvbnRleHRfdCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVj OworICAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQuZnByZWdzKSB7CitAQCAtNzA4LDExICs3MTUs MTkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICAgfQorICNl bmRpZgorIAorLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2 NF9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAm JiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBzX18pIFwKKysgICAgJiYg IWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC8vIEZQVSBzdGF0ZSBpcyBub3QgcGFydCBvZiBB Uk0gRUFCSSB1Y29udGV4dF90LgorICAgbWVtY3B5KCZjb250ZXh0LmZsb2F0X3N0YXRlLCBjb250 ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZnByZWdzLAorICAgICAgICAgIHNpemVvZihjb250ZXh0 LmZsb2F0X3N0YXRlKSk7CisgI2VuZGlmCisrCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysgIC8vIFZlY3RvciByZWdpc3RlcnMgbXVzdCBiZSBjb3BpZWQgb24gUFBDNjQKKysgIG1lbWNw eSgmY29udGV4dC52ZWN0b3Jfc3RhdGUsIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC52X3Jl Z3MsCisrICAgICAgICAgc2l6ZW9mKGNvbnRleHQudmVjdG9yX3N0YXRlKSk7CisrI2VuZGlmCisr CisgICBjb250ZXh0LnRpZCA9IHN5c19nZXR0aWQoKTsKKyAKKyAgIC8vIEFkZCBhbiBleGNlcHRp b24gc3RyZWFtIHRvIHRoZSBtaW5pZHVtcCBmb3IgYmV0dGVyIHJlcG9ydGluZy4KK0BAIC03MzMs NiArNzQ4LDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICNl bGlmIGRlZmluZWQoX19taXBzX18pCisgICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisgICAg ICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LnBj KTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBjb250ZXh0LnNpZ2luZm8uc2lf YWRkciA9CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSk7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBo YXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCitpbmRleCBmODA4 NDNlYTcuLjI2MGRkMTBmNyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCisrKysgYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhj ZXB0aW9uX2hhbmRsZXIuaAorQEAgLTE5Miw3ICsxOTIsMTEgQEAgY2xhc3MgRXhjZXB0aW9uSGFu ZGxlciB7CisgICAgIHNpZ2luZm9fdCBzaWdpbmZvOworICAgICBwaWRfdCB0aWQ7ICAvLyB0aGUg Y3Jhc2hpbmcgdGhyZWFkLgorICAgICB1Y29udGV4dF90IGNvbnRleHQ7CistI2lmICFkZWZpbmVk KF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgICAgLy8gUFBDNjQncyBGUCBzdGF0ZSBpcyBhIHBhcnQgb2YgdWNvbnRleHRf dCBsaWtlIE1JUFMgYnV0IHRoZSB2ZWN0b3IKKysgICAgLy8gc3RhdGUgaXMgbm90LCBzbyBhIHN0 cnVjdCBpcyBuZWVkZWQuCisrICAgIHZzdGF0ZV90IHZlY3Rvcl9zdGF0ZTsKKysjZWxpZiAhZGVm aW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAvLyAjaWZkZWYg dGhpcyBvdXQgYmVjYXVzZSBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBmb3IgTGlu dXggQVJNLgorICAgICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFk eSBwYXJ0IG9mIHVjb250ZXh0X3Qgc28KKyAgICAgLy8gJ2Zsb2F0X3N0YXRlJyBpcyBub3QgcmVx dWlyZWQuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjIGIvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlv bl9oYW5kbGVyX3VuaXR0ZXN0LmNjCitpbmRleCAzNWRjYmZkNGQuLjc5MzQzNzBmZCAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFu ZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYworKysrIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVy X3VuaXR0ZXN0LmNjCitAQCAtMzA3LDcgKzMwNyw3IEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRl c3QsIFBhcmFsbGVsQ2hpbGRDcmFzaGVzRG9udEhhbmcpIHsKKyAgIH0KKyAKKyAgIC8vIFdhaXQg YSB3aGlsZSB1bnRpbCB0aGUgY2hpbGQgc2hvdWxkIGhhdmUgY3Jhc2hlZC4KKy0gIHVzbGVlcCgx MDAwMDAwKTsKKysgIHVzbGVlcCgyMDAwMDAwKTsKKyAgIC8vIEtpbGwgdGhlIGNoaWxkIGlmIGl0 IGlzIHN0aWxsIHJ1bm5pbmcuCisgICBraWxsKGNoaWxkLCBTSUdLSUxMKTsKKyAKK0BAIC01NTks NiArNTU5LDggQEAgY29uc3QgdW5zaWduZWQgY2hhciBrSWxsZWdhbEluc3RydWN0aW9uW10gPSB7 CisgI2lmIGRlZmluZWQoX19taXBzX18pCisgICAvLyBtZmMyIHplcm8sSW1wbCAtIHVzdWFsbHkg aWxsZWdhbCBpbiB1c2Vyc3BhY2UuCisgICAweDQ4LCAweDAwLCAweDAwLCAweDQ4CisrI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSAvLyBDcmFz aGVzIG9uIGEgdGVzdGVkIFBPV0VSOSBjcHUKKyAjZWxzZQorICAgLy8gVGhpcyBjcmFzaGVzIHdp dGggU0lHSUxMIG9uIHg4Ni94ODYtNjQvYXJtLgorICAgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZgor QEAgLTc1NCwxMCArNzU2LDEwIEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIEluc3RydWN0 aW9uUG9pbnRlck1lbW9yeU1heEJvdW5kKSB7CisgCisgICAvLyBUaGVzZSBhcmUgZGVmaW5lZCBo ZXJlIHNvIHRoZSBwYXJlbnQgY2FuIHVzZSB0aGVtIHRvIGNoZWNrIHRoZQorICAgLy8gZGF0YSBm cm9tIHRoZSBtaW5pZHVtcCBhZnRlcndhcmRzLgorLSAgLy8gVXNlIDRrIGhlcmUgYmVjYXVzZSB0 aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KKysgIC8vIFVzZSB0aGUgcGFn ZSBzaXplIGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2 ZW4KKyAgIC8vIGlmIGEgc21hbGxlciBzaXplIGlzIHJlcXVlc3RlZCwgYW5kIHRoaXMgdGVzdCB3 YW50cyB0bworICAgLy8gdGVzdCB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG1lbW9yeSByYW5nZS4K Ky0gIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0gNDA5NjsgIC8vIGJ5dGVzCisrICBjb25z dCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IGdldHBhZ2VzaXplKCk7ICAvLyBieXRlcworICAgY29u c3QgaW50IGtPZmZzZXQgPSBrTWVtb3J5U2l6ZSAtIHNpemVvZihrSWxsZWdhbEluc3RydWN0aW9u KTsKKyAKKyAgIGNvbnN0IHBpZF90IGNoaWxkID0gZm9yaygpOworZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRl ci9taWNyb2R1bXBfd3JpdGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKK2luZGV4 IGZhM2MxNzEzYS4uNmNlNzA5ZTJmIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0 ZXIuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCitAQCAtMTM4LDcgKzEzOCw5 IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICAgICAgICAgICAgICAgICAgY29uc3QgTWlj cm9kdW1wRXh0cmFJbmZvJiBtaWNyb2R1bXBfZXh0cmFfaW5mbywKKyAgICAgICAgICAgICAgICAg ICBMaW51eER1bXBlciogZHVtcGVyKQorICAgICAgIDogdWNvbnRleHRfKGNvbnRleHQgPyAmY29u dGV4dC0+Y29udGV4dCA6IE5VTEwpLAorLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFk ZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgICAgICB2 ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+dmVjdG9yX3N0YXRlIDogTlVMTCksCisr I2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAgICAg ICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPmZsb2F0X3N0YXRlIDogTlVMTCks CisgI2VuZGlmCisgICAgICAgICBkdW1wZXJfKGR1bXBlciksCitAQCAtMzM3LDYgKzMzOSw4IEBA IGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgIyBlbHNlCisgIyAgZXJyb3IgIlRoaXMgbWlwcyBB QkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCisgI2VuZGlmCisrI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBjb25zdCBjaGFyIGtBcmNoW10gPSAicHBjNjQiOwor ICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBs YXRmb3JtIHlldCIKKyAjZW5kaWYKK0BAIC00MDksNyArNDEzLDkgQEAgY2xhc3MgTWljcm9kdW1w V3JpdGVyIHsKKyAgIHZvaWQgRHVtcENQVVN0YXRlKCkgeworICAgICBSYXdDb250ZXh0Q1BVIGNw dTsKKyAgICAgbXlfbWVtc2V0KCZjcHUsIDAsIHNpemVvZihSYXdDb250ZXh0Q1BVKSk7CistI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKysgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZj cHUsIHVjb250ZXh0XywgdmVjdG9yX3N0YXRlXyk7CisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVD b250ZXh0KCZjcHUsIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsKKyAjZWxzZQorICAgICBVQ29u dGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfKTsKK0BAIC02MDUsNyAr NjExLDkgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKKyAgIHZvaWQqIEFsbG9jKHVuc2lnbmVk IGJ5dGVzKSB7IHJldHVybiBkdW1wZXJfLT5hbGxvY2F0b3IoKS0+QWxsb2MoYnl0ZXMpOyB9Cisg CisgICBjb25zdCB1Y29udGV4dF90KiBjb25zdCB1Y29udGV4dF87CistI2lmICFkZWZpbmVkKF9f QVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3QqIGNvbnN0IHZlY3Rvcl9z dGF0ZV87CisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNf XykKKyAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBmbG9hdF9zdGF0 ZV87CisgI2VuZGlmCisgICBMaW51eER1bXBlciogZHVtcGVyXzsKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0 ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVy X3VuaXR0ZXN0LmNjCitpbmRleCA2MzM5YWMwY2QuLjI5MWFmMTA2YiAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dy aXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1w X3dyaXRlcl91bml0dGVzdC5jYworQEAgLTI3OSwxMCArMjc5LDE5IEBAIFRFU1QoTWljcm9kdW1w V3JpdGVyVGVzdCwgQmFzaWNXaXRoTWFwcGluZ3MpIHsKKyAgIENyYXNoQW5kR2V0TWljcm9kdW1w KG1hcHBpbmdzLCBNaWNyb2R1bXBFeHRyYUluZm8oKSwgJmJ1Zik7CisgICBBU1NFUlRfVFJVRShD b250YWluc01pY3JvZHVtcChidWYpKTsKKyAKKysgIGludCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6 ZSgpOworICNpZmRlZiBfX0xQNjRfXworLSAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAor LSAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAwMDAy QSAwMDAwMDAwMDAwMDAxMDAwICIKKy0gICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0 Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIC8vIFRoaXMgdGVzdCBpcyBv bmx5IGF2YWlsYWJsZSBmb3IgdGhlIGZvbGxvd2luZyBwYWdlIHNpemVzCisrICBBU1NFUlRfVFJV RSgocGFnZV9zaXplID09IDQwOTYpIHx8IChwYWdlX3NpemUgPT0gNjU1MzYpKTsKKysgIGlmIChw YWdlX3NpemUgPT0gNDA5NikgeyAKKysgICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAor KyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAwMDAwMDAwMDAwMDAw MDJBIDAwMDAwMDAwMDAwMDEwMDAgIgorKyAgICAgICAgICAgICAgICAgICAgICAgIjMzMjIxMTAw NTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7CisrICB9IGVsc2UgeworKyAg ICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCisrICAgICAgICAgICAgICBidWYuZmluZCgi TSAwMDAwMDAwMDAwMDEwMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAxMDAwMCAiCisr ICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYw IGxpYmZvby5zbyIpKTsKKysgIH0KKyAjZWxzZQorICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpu cG9zLAorICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAxMDAwIDAwMDAwMDJBIDAwMDAxMDAw ICIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2NvcmVfZHVtcGVyLmNjCitpbmRleCA0MTUwNjg5ODMuLmI5M2U0YWZjZiAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBl ci5jYworQEAgLTExMiw2ICsxMTIsOSBAQCBib29sIExpbnV4Q29yZUR1bXBlcjo6R2V0VGhyZWFk SW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJbmZvKiBpbmZvKSB7CisgI2VsaWYgZGVm aW5lZChfX21pcHNfXykKKyAgIHN0YWNrX3BvaW50ZXIgPQorICAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1Bd KTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBzdGFja19wb2ludGVyID0KKysg ICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncF9yZWdzW01E X0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXNu J3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorQEAgLTE5Nyw3 ICsyMDAsMTAgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkVudW1lcmF0ZVRocmVhZHMoKSB7Cisg ICAgICAgICBtZW1zZXQoJmluZm8sIDAsIHNpemVvZihUaHJlYWRJbmZvKSk7CisgICAgICAgICBp bmZvLnRnaWQgPSBzdGF0dXMtPnByX3BncnA7CisgICAgICAgICBpbmZvLnBwaWQgPSBzdGF0dXMt PnByX3BwaWQ7CistI2lmIGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzE7IGkrKykKKysgICAgICAgICAg ICBpbmZvLm1jb250ZXh0LmdwX3JlZ3NbaV0gPSBzdGF0dXMtPnByX3JlZ1tpXTsKKysjZWxpZiBk ZWZpbmVkKF9fbWlwc19fKQorICNpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKQorICAgICAgICAgZm9y IChpbnQgaSA9IEVGX1IwOyBpIDw9IEVGX1IzMTsgaSsrKQorICAgICAgICAgICBpbmZvLm1jb250 ZXh0LmdyZWdzW2kgLSBFRl9SMF0gPSBzdGF0dXMtPnByX3JlZ1tpXTsKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9saW51eF9kdW1wZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuY2MKK2luZGV4IDdmZDY1 MzJhZC4uMTk5Y2JmZmZkIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCisrKysg Yi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9kdW1wZXIuY2MKK0BAIC03NjUsNyArNzY1LDkgQEAgYm9vbCBMaW51eER1 bXBlcjo6R2V0U3RhY2tJbmZvKGNvbnN0IHZvaWQqKiBzdGFjaywgc2l6ZV90KiBzdGFja19sZW4s CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW50X3N0YWNrX3BvaW50ZXIgJiB+ KHBhZ2Vfc2l6ZSAtIDEpKTsKKyAKKyAgIC8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3RhY2sg d2hpY2ggd2UgdHJ5IHRvIGNhcHR1cmUuCistICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IGtTdGFj a1RvQ2FwdHVyZSA9IDMyICogMTAyNDsKKysgIC8vIFRoaXMgbm93IGRlcGVuZHMgb24gcGFnZV9z aXplIHRvIGF2b2lkIG1pc3NpbmcgZGF0YQorKyAgLy8gb24gc3lzdGVtcyB3aXRoIGxhcmdlciBw YWdlIHNpemVzLgorKyAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSA4 ICogcGFnZV9zaXplOworIAorICAgY29uc3QgTWFwcGluZ0luZm8qIG1hcHBpbmcgPSBGaW5kTWFw cGluZyhzdGFja19wb2ludGVyKTsKKyAgIGlmICghbWFwcGluZykKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9kdW1wZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCitpbmRleCA3YmVlMTYwZjEu LjA3YmIyYjgxYSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCisrKysgYi90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9kdW1wZXIuaAorQEAgLTYzLDcgKzYzLDggQEAgbmFtZXNwYWNlIGdvb2dsZV9icmVh a3BhZCB7CisgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSU8zMikKKyB0 eXBlZGVmIEVsZjMyX2F1eHZfdCBlbGZfYXV4X2VudHJ5OworICNlbGlmIGRlZmluZWQoX194ODZf NjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKKy0gICAgIChkZWZpbmVkKF9fbWlwc19f KSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikKKysgICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBf TUlQU19TSU0gIT0gX0FCSU8zMikgfHwgXAorKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor IHR5cGVkZWYgRWxmNjRfYXV4dl90IGVsZl9hdXhfZW50cnk7CisgI2VuZGlmCisgCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKK2luZGV4IDMzMWY0YmIzNC4uM2Y3MjI5NDdmIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYworKysrIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYworQEAgLTUxLDYgKzUxLDggQEAK KyAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInJjeCIKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19f KQorICNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAiJDEiCisrI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorKyNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicjgiCisgI2Vsc2UKKyAjZXJyb3Ig VGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjIGIvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf cHRyYWNlX2R1bXBlci5jYworaW5kZXggZTNkZGI4MWE2Li5mYTI4NTc1ZWYgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2Vf ZHVtcGVyLmNjCitAQCAtMTQ5LDE5ICsxNDksMjcgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6 Q29weUZyb21Qcm9jZXNzKHZvaWQqIGRlc3QsIHBpZF90IGNoaWxkLAorICAgcmV0dXJuIHRydWU7 CisgfQorIAorLWJvb2wgTGludXhQdHJhY2VEdW1wZXI6OlJlYWRSZWdpc3RlclNldChUaHJlYWRJ bmZvKiBpbmZvLCBwaWRfdCB0aWQpCisteworK2Jvb2wgTGludXhQdHJhY2VEdW1wZXI6OlJlYWRS ZWdpc3RlclNldChUaHJlYWRJbmZvKiBpbmZvLCBwaWRfdCB0aWQpIHsKKyAjaWZkZWYgUFRSQUNF X0dFVFJFR1NFVAorICAgc3RydWN0IGlvdmVjIGlvOworICAgaW5mby0+R2V0R2VuZXJhbFB1cnBv c2VSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7CistICBpZiAoc3lzX3B0cmFj ZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUlNUQVRVUywgKHZvaWQqKSZpbykg PT0gLTEpIHsKKysgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRf UFJTVEFUVVMsICh2b2lkKikmaW8pID09IC0xKSB7CisgICAgIHJldHVybiBmYWxzZTsKKyAgIH0K KyAKKyAgIGluZm8tPkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8u aW92X2xlbik7CistICBpZiAoc3lzX3B0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lk KilOVF9GUFJFR1NFVCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKKysgIGlmIChwdHJhY2UoUFRSQUNF X0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7 CisgICAgIHJldHVybiBmYWxzZTsKKyAgIH0KKysKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgLy8gR3JhYiB0aGUgdmVjdG9yIHJlZ2lzdGVycyBvbiBQUEM2NCB0b28KKysgIGluZm8t PkdldFZlY3RvclJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKKysgIGlmIChw dHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFBDX1ZNWCwgKHZvaWQqKSZp bykgPT0gLTEpIHsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyNlbmRpZiAvLyBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrCisgICByZXR1cm4gdHJ1ZTsKKyAjZWxzZQorICAgcmV0dXJuIGZh bHNlOworQEAgLTI5OCw2ICszMDYsOSBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpHZXRUaHJl YWRJbmZvQnlJbmRleChzaXplX3QgaW5kZXgsIFRocmVhZEluZm8qIGluZm8pIHsKKyAjZWxpZiBk ZWZpbmVkKF9fbWlwc19fKQorICAgc3RhY2tfcG9pbnRlciA9CisgICAgICAgcmVpbnRlcnByZXRf Y2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19T UF0pOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIHN0YWNrX3BvaW50ZXIgPQor KyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3Nb TURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdKTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhh c24ndCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKK2luZGV4IGRhNzFlMTVkYy4uMTJiZmIzMTdhIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYworKysrIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYworQEAgLTQ2Miw2ICs0NjIsOSBA QCBURVNUKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgVmVyaWZ5U3RhY2tSZWFkV2l0aE11bHRpcGxl VGhyZWFkcykgeworICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICAgIHBpZF90KiBwcm9jZXNz X3RpZF9sb2NhdGlvbiA9CisgICAgICAgICByZWludGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3Ro cmVhZC5tY29udGV4dC5ncmVnc1sxXSk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyAgICBwaWRfdCogcHJvY2Vzc190aWRfbG9jYXRpb24gPQorKyAgICAgICAgcmVpbnRlcnByZXRf Y2FzdDxwaWRfdCo+KG9uZV90aHJlYWQubWNvbnRleHQuZ3BfcmVnc1s4XSk7CisgI2Vsc2UKKyAj ZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAj ZW5kaWYKK0BAIC01NTksNiArNTYyLDggQEAgVEVTVF9GKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwg U2FuaXRpemVTdGFja0NvcHkpIHsKKyAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5m by5yZWdzLnJjeDsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgdWludHB0cl90IGhlYXBf YWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdyZWdzWzFdOworKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5tY29udGV4 dC5ncF9yZWdzWzhdOworICNlbHNlCisgI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9y dGVkIHRvIHRoaXMgcGxhdGZvcm0uCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1 bXBfd3JpdGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCitpbmRleCAzMjYzNGVmMDAu LjJhNTY5NDhkZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYworKysrIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCitAQCAtMTM2LDcgKzEzNiw5IEBAIGNsYXNzIE1pbmlk dW1wV3JpdGVyIHsKKyAgICAgICA6IGZkXyhtaW5pZHVtcF9mZCksCisgICAgICAgICBwYXRoXyht aW5pZHVtcF9wYXRoKSwKKyAgICAgICAgIHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNv bnRleHQgOiBOVUxMKSwKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgdmVjdG9yX3N0 YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAorKyNlbGlmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICAgICAgICBmbG9h dF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwpLAorICNlbmRp ZgorICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAorQEAgLTQ2OCw3ICs0NzAsOSBAQCBjbGFzcyBN aW5pZHVtcFdyaXRlciB7CisgICAgICAgICBpZiAoIWNwdS5BbGxvY2F0ZSgpKQorICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICBteV9tZW1zZXQoY3B1LmdldCgpLCAwLCBzaXplb2Yo UmF3Q29udGV4dENQVSkpOworLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgICAgICBVQ29udGV4 dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0 ZV8pOworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p CisgICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29u dGV4dF8sIGZsb2F0X3N0YXRlXyk7CisgI2Vsc2UKKyAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpG aWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0Xyk7CitAQCAtODk3LDcgKzkwMSw3IEBA IGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAgICAgZGlyZW50LT5sb2NhdGlvbi5ydmEgPSAwOwor ICAgfQorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgYm9vbCBXcml0ZUNQVUluZm9ybWF0aW9uKE1EUmF3U3lzdGVtSW5mbyogc3lzX2luZm8pIHsK KyAgICAgY2hhciB2ZW5kb3JfaWRbc2l6ZW9mKHN5c19pbmZvLT5jcHUueDg2X2NwdV9pbmZvLnZl bmRvcl9pZCkgKyAxXSA9IHswfTsKKyAgICAgc3RhdGljIGNvbnN0IGNoYXIgdmVuZG9yX2lkX25h bWVbXSA9ICJ2ZW5kb3JfaWQiOworQEAgLTkxNyw3ICs5MjEsOSBAQCBjbGFzcyBNaW5pZHVtcFdy aXRlciB7CisgCisgICAgIC8vIHByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgc2hvdWxkIGFsd2F5cyBi ZSBzZXQsIGRvIHRoaXMgZmlyc3QKKyAgICAgc3lzX2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1 cmUgPQorLSNpZiBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJFX1BQQzY0OworKyNlbGlmIGRlZmluZWQoX19t aXBzX18pCisgIyBpZiBfTUlQU19TSU0gPT0gX0FCSU8zMgorICAgICAgICAgTURfQ1BVX0FSQ0hJ VEVDVFVSRV9NSVBTOworICMgZWxpZiBfTUlQU19TSU0gPT0gX0FCSTY0CitAQCAtMTMzMyw3ICsx MzM5LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgY29uc3QgY2hhciogcGF0aF87ICAv LyBQYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBtaW5pZHVtIHNob3VsZCBiZSB3cml0dGVuLgor IAorICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRfOyAgLy8gYWxzbyBmcm9tIHRo ZSBzaWduYWwgaGFuZGxlcgorLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBjb25zdCBnb29nbGVf YnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3RhdGVfOworKyNlbGlmICFkZWZpbmVk KF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICBjb25zdCBnb29nbGVfYnJl YWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVfOyAgLy8gZGl0dG8KKyAjZW5kaWYK KyAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dy aXRlci5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKK2luZGV4IGUzYjBiMTZkYS4uY2NkOGFh MGE0IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKKysrKyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21p bmlkdW1wX3dyaXRlci5oCitAQCAtNDgsNiArNDgsOCBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVy OworIAorICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIHR5cGVkZWYgc3RydWN0IGZwc2ltZF9j b250ZXh0IGZwc3RhdGVfdDsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrdHlwZWRl ZiB2cnJlZ3NldF90IHZzdGF0ZV90OworICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCisgdHlwZWRlZiBzdGQ6OnJlbW92ZV9wb2ludGVyPGZwcmVnc2V0 X3Q+Ojp0eXBlIGZwc3RhdGVfdDsKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVt cF93cml0ZXJfdW5pdHRlc3QuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MK K2luZGV4IGQxOTJlNWNiYi4uZmMxYmZhOGQ3IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBf d3JpdGVyX3VuaXR0ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3Qu Y2MKK0BAIC03MTUsNiArNzE1LDkgQEAgVEVTVChNaW5pZHVtcFdyaXRlclRlc3QsIEludmFsaWRT dGFja1BvaW50ZXIpIHsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgY29udGV4dC5jb250 ZXh0LnVjX21jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdID0KKyAgICAgICBp bnZhbGlkX3N0YWNrX3BvaW50ZXI7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAg Y29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdf U1BdID0KKysgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisgI2Vsc2UKKyAjIGVycm9yICJU aGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2Vu ZGlmCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1v bi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYworaW5kZXggOTkzNjI5 NDVjLi5jNTRiYTcxNDUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYworKysrIGIvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUu Y2MKK0BAIC02NSw4ICs2NSw3IEBAIGJvb2wgTWVtb3J5TWFwcGVkRmlsZTo6TWFwKGNvbnN0IGNo YXIqIHBhdGgsIHNpemVfdCBvZmZzZXQpIHsKKyAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICAgKGRlZmluZWQoX19taXBzX18p ICYmIF9NSVBTX1NJTSA9PSBfQUJJNjQpCistCisrICAgKGRlZmluZWQoX19taXBzX18pICYmIF9N SVBTX1NJTSA9PSBfQUJJNjQpIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIHN0cnVjdCBr ZXJuZWxfc3RhdCBzdDsKKyAgIGlmIChzeXNfZnN0YXQoZmQsICZzdCkgPT0gLTEgfHwgc3Quc3Rf c2l6ZSA8IDApIHsKKyAjZWxzZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFw cGVkX2ZpbGVfdW5pdHRlc3QuY2MKK2luZGV4IGZhZDU5ZjQwYy4uNjE2NDk2ZDY3IDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1v cnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCitA QCAtMTc2LDkgKzE3NiwxMCBAQCBURVNUX0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIFJlbWFwQWZ0 ZXJNYXApIHsKKyBURVNUX0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIE1hcFdpdGhPZmZzZXQpIHsK KyAgIC8vIFB1dCBtb3JlIGRhdGEgaW4gdGhlIHRlc3QgZmlsZSB0aGlzIHRpbWUuIE9mZnNldHMg Y2FuIG9ubHkgYmUKKyAgIC8vIGRvbmUgb24gcGFnZSBib3VuZGFyaWVzLCBzbyB3ZSBuZWVkIGEg dHdvIHBhZ2UgZmlsZSB0byB0ZXN0IHRoaXMuCistICBjb25zdCBpbnQgcGFnZV9zaXplID0gNDA5 NjsKKy0gIGNoYXIgZGF0YTFbMiAqIHBhZ2Vfc2l6ZV07CistICBzaXplX3QgZGF0YTFfc2l6ZSA9 IHNpemVvZihkYXRhMSk7CisrICBjb25zdCBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsK KysgIGNoYXIgKmRhdGExID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYygyICogcGFnZV9zaXpl KSk7CisrICBFWFBFQ1RfVFJVRShkYXRhMSAhPSBOVUxMKTsKKysgIHNpemVfdCBkYXRhMV9zaXpl ID0gKDIgKiBwYWdlX3NpemUpOworICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhMV9zaXpl OyArK2kpIHsKKyAgICAgZGF0YTFbaV0gPSBpICYgMHg3ZjsKKyAgIH0KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3Jf dW5pdHRlc3QuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21l bW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKK2luZGV4IDU4MDNiOTBkNS4uMmExY2YxNGYwIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1v cnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKK0BAIC01Nyw4ICs1 Nyw5IEBAIFRFU1QoUGFnZUFsbG9jYXRvclRlc3QsIExhcmdlT2JqZWN0KSB7CisgCisgICBFWFBF Q1RfRVEoMFUsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7CisgICB1aW50OF90KiBwID0g cmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKDEwMDAwKSk7CisrICB1 aW50NjRfdCBleHBlY3RlZF9wYWdlcyA9IDEgKyAoKDEwMDAwIC0gMSkgLyBnZXRwYWdlc2l6ZSgp KTsKKyAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOworLSAgRVhQRUNUX0VRKDNVLCBhbGxvY2F0 b3IucGFnZXNfYWxsb2NhdGVkKCkpOworKyAgRVhQRUNUX0VRKGV4cGVjdGVkX3BhZ2VzLCBhbGxv Y2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOworICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IDEw OyArK2kpIHsKKyAgICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFs bG9jYXRvci5BbGxvYyhpKSk7CisgICAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOworZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9p dGFiaWxpdHlfbGludXguY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJv Y2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCitpbmRleCA3OTgwNTZkZmEuLjIyYmQ4MWZm ZiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNz b3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKK0BAIC0yMDIsMTIg KzIwMiwxNCBAQCBib29sIEV4cGxvaXRhYmlsaXR5TGludXg6OkVuZGVkT25JbGxlZ2FsV3JpdGUo dWludDY0X3QgaW5zdHJ1Y3Rpb25fcHRyKSB7CisgICAvLyBDaGVjayBhcmNoaXRlY3R1cmUgYW5k IHNldCBhcmNoaXRlY3R1cmUgdmFyaWFibGUgdG8gY29ycmVzcG9uZGluZyBmbGFnCisgICAvLyBp biBvYmpkdW1wLgorICAgc3dpdGNoIChjb250ZXh0LT5HZXRDb250ZXh0Q1BVKCkpIHsKKysjaWYg ZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpCisgICAgIGNhc2UgTURfQ09OVEVY VF9YODY6CisgICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODYiOworICAgICAgIGJyZWFrOworICAg ICBjYXNlIE1EX0NPTlRFWFRfQU1ENjQ6CisgICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODY6eDg2 LTY0IjsKKyAgICAgICBicmVhazsKKysjZW5kaWYKKyAgICAgZGVmYXVsdDoKKyAgICAgICAvLyBV bnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuIE5vdGUgdGhhdCBBUk0gYXJjaGl0ZWN0dXJlcyBhcmUg bm90CisgICAgICAgLy8gc3VwcG9ydGVkIGJlY2F1c2Ugb2JqZHVtcCBkb2VzIG5vdCBzdXBwb3J0 IEFSTS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJv Y2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYworaW5kZXgg NTI4ZWU1ZjIxLi43Mjc2NGQ2YzEgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCisrKysgYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5 X3VuaXR0ZXN0LmNjCitAQCAtMTA0LDYgKzEwNCw4IEBAIEV4cGxvaXRhYmlsaXR5Rm9yKGNvbnN0 IHN0cmluZyYgZmlsZW5hbWUpIHsKKyB9CisgCisgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRl c3RXaW5kb3dzRW5naW5lKSB7CisrLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25seSBleGVj dXRhYmxlIG9uIGFuIHg4Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgorKyNpZiAhZGVmaW5lZChfV0lO MzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCisgICBBU1NFUlRf RVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAorICAgICAgICAgICAgIEV4 cGxvaXRhYmlsaXR5Rm9yKCJhc2NpaV9yZWFkX2F2LmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29n bGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCitAQCAtMTM2LDkgKzEzOCwxMiBAQCBU RVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKKyAgICAgICAgICAg ICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jbG9iYmVyX3dyaXRlLmRtcCIpKTsKKyAgIEFT U0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0xPVywKKyAgICAgICAgICAg ICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jb25kaXRpb25hbC5kbXAiKSk7CisrI2VuZGlm CisgfQorIAorIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKKysv LyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNz IGxpbnV4IG1hY2hpbmUuCisrI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0 KQorICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJFU1RJ TkcsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X251bGxfcmVhZF9hdi5k bXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdI LAorQEAgLTE3MSw3ICsxNzYsOCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4 RW5naW5lKSB7CisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X2V4ZWN1dGFi bGVfaGVhcC5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJ TElUWV9ISUdILAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9qbXBfdG9f bW9kdWxlX25vdF9leGVfcmVnaW9uLmRtcCIpKTsKKy0jaWZuZGVmIF9XSU4zMgorKyNlbmRpZgor KyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4 Nl82NCkpCisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdI LAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b19ub253cml0 YWJsZV9tb2R1bGUuZG1wIikpOworICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9J VEFCSUxJVFlfSElHSCwKK0BAIC0xODIsMTAgKzE4OCwxMCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5 VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7CisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3Io ImxpbnV4X3dyaXRlX3RvX291dHNpZGVfbW9kdWxlX3ZpYV9tYXRoLmRtcCIpKTsKKyAgIEFTU0VS VF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5HLAorICAgICAg ICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b191bmRlcl80ay5kbXAiKSk7 CistI2VuZGlmICAvLyBfV0lOMzIKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKCFk ZWZpbmVkKF9faTM4NikgJiYgIWRlZmluZWQoX194ODZfNjQpKQorIH0KKyAKKy0jaWZuZGVmIF9X SU4zMgorKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5l ZChfX3g4Nl82NCkpCisgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBEaXNhc3Nl bWJsZUJ5dGVzVGVzdCkgeworICAgQVNTRVJUX0ZBTFNFKEV4cGxvaXRhYmlsaXR5TGludXhUZXN0 OjpEaXNhc3NlbWJsZUJ5dGVzKCIiLCBOVUxMLCA1LCBOVUxMKSk7CisgICB1aW50OF90IGJ5dGVz WzZdID0gezB4YzcsIDB4MCwgMHg1LCAweDAsIDB4MCwgMHgwfTsKK0BAIC0zMDEsNiArMzA3LDcg QEAgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBDYWxjdWxhdGVBZGRyZXNzVGVz dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJndyaXRlX2FkZHJlc3MpKTsKKyB9CistI2VuZGlmICAvLyBfV0lO MzIKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBk ZWZpbmVkKF9feDg2XzY0KSkKKysKKyAKKyB9ICAvLyBuYW1lc3BhY2UKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5p ZHVtcC0yLWNvcmUuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMv bGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKK2luZGV4IGFhZGU4MmM5OS4uMTk1YWE3 M2YzIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xz L2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MK K0BAIC03Nyw2ICs3Nyw4IEBACisgICAjZGVmaW5lIEVMRl9BUkNIICBFTV9NSVBTCisgI2VsaWYg ZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX0FBUkNINjQKKysj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAjZGVmaW5lIEVMRl9BUkNIICBFTV9QUEM2 NAorICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9fYXJtX18pCitAQCAtODcsNiArODksOCBAQCB0 eXBlZGVmIHVzZXJfcmVncyB1c2VyX3JlZ3Nfc3RydWN0OworICNlbGlmIGRlZmluZWQgKF9fbWlw c19fKQorIC8vIFRoaXMgZmlsZS1sb2NhbCB0eXBlZGVmIHNpbXBsaWZpZXMgdGhlIHNvdXJjZSBj b2RlLgorIHR5cGVkZWYgZ3JlZ3NldF90IHVzZXJfcmVnc19zdHJ1Y3Q7CisrI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgdXNlcl9yZWdzX3N0cnVj dDsKKyAjZW5kaWYKKyAKKyB1c2luZyBnb29nbGVfYnJlYWtwYWQ6Ok1EVHlwZUhlbHBlcjsKK0BA IC0zMjEsNiArMzI1LDkgQEAgc3RydWN0IENyYXNoZWRQcm9jZXNzIHsKKyAjZW5kaWYKKyAjaWYg ZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKKysj ZW5kaWYKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBtY29udGV4dF90IG1jb250 ZXh0OworICNlbmRpZgorICAgICB1aW50cHRyX3Qgc3RhY2tfYWRkcjsKKyAgICAgY29uc3QgdWlu dDhfdCogc3RhY2s7CitAQCAtNTM1LDYgKzU0MiwzOCBAQCBQYXJzZVRocmVhZFJlZ2lzdGVycyhD cmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJlYWQsCisgICB0aHJlYWQtPm1jb250ZXh0LmZwY19l aXIgPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZpcjsKKyAjZW5kaWYKKyB9CisrI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorK3N0YXRpYyB2b2lkCisrUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jh c2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFkLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IE1pbmlkdW1wTWVtb3J5UmFuZ2UmIHJhbmdlKSB7CisrICBjb25zdCBNRFJhd0NvbnRleHRQUEM2 NCogcmF3cmVncyA9IHJhbmdlLkdldERhdGE8TURSYXdDb250ZXh0UFBDNjQ+KDApOworKworKyAg Zm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQorKyAg ICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbaV0gPSByYXdyZWdzLT5ncHJbaV07CisrCisrICB0 aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXSA9IHJhd3JlZ3MtPmxyOworKyAgdGhyZWFk LT5tY29udGV4dC5ncF9yZWdzW1BUX05JUF0gPSByYXdyZWdzLT5zcnIwOworKyAgdGhyZWFkLT5t Y29udGV4dC5ncF9yZWdzW1BUX01TUl0gPSByYXdyZWdzLT5zcnIxOworKyAgdGhyZWFkLT5tY29u dGV4dC5ncF9yZWdzW1BUX0NDUl0gPSByYXdyZWdzLT5jcjsKKysgIHRocmVhZC0+bWNvbnRleHQu Z3BfcmVnc1tQVF9YRVJdID0gcmF3cmVncy0+eGVyOworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9y ZWdzW1BUX0NUUl0gPSByYXdyZWdzLT5jdHI7CisrICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+ dnJzYXZlID0gcmF3cmVncy0+dnJzYXZlOworKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9G TE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICB0aHJlYWQtPm1jb250 ZXh0LmZwX3JlZ3NbaV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwcmVnc1tpXTsKKysKKysgIHRo cmVhZC0+bWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZw c2NyOworKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJf Q09VTlQ7IGkrKykgeworKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1b MF0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2ggPj4gMzI7CisrICAgICAg dGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVsxXSA9IHJhd3JlZ3MtPnZlY3Rvcl9z YXZlLnNhdmVfdnJbaV0uaGlnaDsKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJy ZWdzW2ldWzJdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3cgPj4gMzI7Cisr ICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVszXSA9IHJhd3JlZ3MtPnZl Y3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93OworKyAgfQorKworKyAgdGhyZWFkLT5tY29udGV4dC52 X3JlZ3MtPnZzY3IudnNjcl93b3JkID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyLmxv dyAmIDB4RkZGRkZGRkY7CisrfQorKworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5v dCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKKyAjZW5kaWYKK0BAIC02MjMsNiAr NjYyLDEyIEBAIFBhcnNlU3lzdGVtSW5mbyhjb25zdCBPcHRpb25zJiBvcHRpb25zLCBDcmFzaGVk UHJvY2VzcyogY3Jhc2hpbmZvLAorICMgZWxzZQorICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlz IGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgorICMgZW5kaWYKKysjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrICBpZiAoc3lzaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSAh PSBNRF9DUFVfQVJDSElURUNUVVJFX1BQQzY0KSB7CisrICAgIGZwcmludGYoc3RkZXJyLAorKyAg ICAgICAgICAgICJUaGlzIHZlcnNpb24gb2YgbWluaWR1bXAtMi1jb3JlIG9ubHkgc3VwcG9ydHMg UFBDNjQuXG4iKTsKKysgICAgZXhpdCgxKTsKKysgIH0KKyAjZWxzZQorICNlcnJvciAiVGhpcyBj b2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlmCitk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTIGIv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTCitpbmRleCA4NzI0Yjdm MzIuLjhlMjk0MjRlZiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L0NPTlRSSUJVVE9SUworKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJ QlVUT1JTCitAQCAtMTMsMyArMTMsNCBAQCBNYXJrIE1lbnRvdmFpIDxtYXJrQGNocm9taXVtLm9y Zz4KKyBSb2JlcnQgU2VzZWsgPHJzZXNla0BjaHJvbWl1bS5vcmc+CisgU2NvdHQgR3JhaGFtIDxz Y290dG1nQGNocm9taXVtLm9yZz4KKyBKb3NodWEgUGVyYXphIDxqcGVyYXphQGNocm9taXVtLm9y Zz4KKytTaGF3biBBbmFzdGFzaW8gPHNoYXduQGFuYXN0YXMuaW8+CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmggYi90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAoraW5kZXgg NmVkNzdhOThlLi4xZmQ4MzQ2OWEgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAorKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKK0BAIC0xNSw2ICsxNSw3IEBACisg I2lmbmRlZiBDUkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KKyAjZGVmaW5lIENSQVNI UEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXworIAorKyNpbmNsdWRlIDxjc3RkZGVmPgorICNp bmNsdWRlX25leHQgPHN5cy91c2VyLmg+CisgCisgI2luY2x1ZGUgPGZlYXR1cmVzLmg+CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf Y29udGV4dC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfY29udGV4dC5oCitpbmRleCAzYTNlNjAzY2IuLjMxMThkOWU5ZiAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAor KysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29u dGV4dC5oCitAQCAtNTkyLDYgKzU5Miw3MCBAQCBzdHJ1Y3QgTWluaWR1bXBDb250ZXh0TUlQUzY0 IHsKKyAgIHVpbnQ2NF90IGZpcjsKKyB9OworIAorKy8vISBcYnJpZWYgcHBjNjQtc3BlY2lmaWMg ZmxhZ3MgZm9yIE1pbmlkdW1wUFBDNjQ6OmNvbnRleHRfZmxhZ3MKKysvLyEgQmFzZWQgb24gbWlu aWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZAorK2VudW0gTWluaWR1bXBDb250ZXh0UFBD NjRGbGFncyA6IHVpbnQzMl90IHsKKysgIC8vISBcYnJpZWYgSWRlbnRpZmllcyB0aGUgY29udGV4 dCBhcyBQUEM2NC4KKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NCA9IDB4MDEwMDAwMDAsCisrCisr ICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZ2VuZXJhbCBwdXJwb3NlIHJl Z2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lzdGVycyBgcjBgLWByMzFgLCBgbmlwYCwgYG1z cmAsIGBscmAsIGV0Yy4gYXJlIHZhbGlkLgorKyAga01pbmlkdW1wQ29udGV4dFBQQzY0QmFzZSA9 IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMDEsCisrCisrICAvLyEgXGJyaWVmIElu ZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgorKyAgLy8h CisrICAvLyEgUmVnaXN0ZXJzIGBmcDBgLWBmcDMxYCwgYGZwc2NyYCBhcmUgdmFsaWQuCisrICBr TWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4 MDAwMDAwMDgsCisrCisrICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgQWx0 aXZlYy9WTVggcmVnaXN0ZXJzLgorKyAgLy8hCisrICAvLyEgUmVnaXN0ZXJzIGB2MGAtYHYzMWAs IGB2c2NyYCwgYHZyc2F2ZWAuCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IgPSBrTWlu aWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDIwLAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0 ZXMgdGhlIHZhbGlkaXR5IG9mIGFsbCByZWdpc3RlcnMKKysgIGtNaW5pZHVtcENvbnRleHRQUEM2 NEFsbCA9IGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgICAgIHwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQUEM2NEZsb2F0aW5nIHwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQUEM2NFZlY3RvcgorK307CisrCisr Ly8hIFxicmllZiBBIFBQQzY0IENQVSBjb250ZXh0IGNhcnJpZWQgaW4gYSBtaW5pZHVtcCBmaWxl LgorKy8vISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVfcHBjNjQuaCBmcm9tIGJyZWFrcGFkLgorK3N0 cnVjdCBNaW5pZHVtcENvbnRleHRQUEM2NCB7CisrICB1aW50NjRfdCBjb250ZXh0X2ZsYWdzOwor KworKyAgLy8hIFxicmllZiBHZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzLgorKyAgdWludDY0X3Qg bmlwOworKyAgdWludDY0X3QgbXNyOworKyAgdWludDY0X3QgcmVnc1szMl07CisrICB1aW50NjRf dCBjY3I7CisrICB1aW50NjRfdCB4ZXI7CisrICB1aW50NjRfdCBsbms7CisrICB1aW50NjRfdCBj dHI7CisrCisrICAvLyEgXGJyaWVmIEZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KKysgIGRvdWJs ZSBmcHJlZ3NbMzJdOworKworKyAgLy8hIFxicmllZiBGUFUgc3RhdHVzIHJlZ2lzdGVyLgorKyAg ZG91YmxlIGZwc2NyOworKworKyAgLy8hIFxicmllZiBBbHRpdmVjL1ZNWCB2ZWN0b3IgcmVnaXN0 ZXJzLgorKyAgc3RydWN0IHsKKysgICAgICAvLyEgXGJyaWVmIFZlY3RvciByZWdpc3RlcnMgYXJl IDEyOGJpdHMuCisrICAgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92clszMl07CisrICAgICAgdWlu dDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOworKworKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNs dWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4KKysgICAgICB1aW50MzJfdCBzYXZlX3Bh ZDVbNF07CisrCisrICAgICAgLy8hIFxicmllZiBWUlNBVkUgcmVnaXN0ZXIuCisrICAgICAgdWlu dDMyX3Qgc2F2ZV92cnNhdmU7CisrCisrICAgICAgLy8hIFxicmllZiBQYWRkaW5nIGluY2x1ZGVk IGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5LgorKyAgICAgIHVpbnQzMl90IHNhdmVfcGFkNls3 XTsKKysgIH0gdnJlZ3M7CisrfTsKKysKKyB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKKyAKKyAj ZW5kaWYgIC8vIENSQVNIUEFEX01JTklEVU1QX01JTklEVU1QX0NPTlRFWFRfSF8KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250 ZXh0X3dyaXRlci5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCitpbmRleCBkN2U1M2E0OTMuLmQ4OWViOWUwMSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1w X2NvbnRleHRfd3JpdGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYworQEAgLTEwMSw2ICsxMDEsMTMgQEAg TWluaWR1bXBDb250ZXh0V3JpdGVyOjpDcmVhdGVGcm9tU25hcHNob3QoY29uc3QgQ1BVQ29udGV4 dCogY29udGV4dF9zbmFwc2hvdCkgeworICAgICAgIGJyZWFrOworICAgICB9CisgCisrICAgIGNh c2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OiB7CisrICAgICAgY29udGV4dCA9IHN0ZDo6bWFrZV91 bmlxdWU8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI+KCk7CisrICAgICAgcmVpbnRlcnByZXRf Y2FzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcio+KGNvbnRleHQuZ2V0KCkpCisrICAgICAg ICAgIC0+SW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnRleHRfc25hcHNob3QtPnBwYzY0KTsKKysg ICAgICBicmVhazsKKysgICAgfQorKworICAgICBkZWZhdWx0OiB7CisgICAgICAgTE9HKEVSUk9S KSA8PCAidW5rbm93biBjb250ZXh0IGFyY2hpdGVjdHVyZSAiCisgICAgICAgICAgICAgICAgICA8 PCBjb250ZXh0X3NuYXBzaG90LT5hcmNoaXRlY3R1cmU7CitAQCAtNDUzLDQgKzQ2MCw0NyBAQCBz aXplX3QgTWluaWR1bXBDb250ZXh0TUlQUzY0V3JpdGVyOjpDb250ZXh0U2l6ZSgpIGNvbnN0IHsK KyAgIHJldHVybiBzaXplb2YoY29udGV4dF8pOworIH0KKyAKKytNaW5pZHVtcENvbnRleHRQUEM2 NFdyaXRlcjo6TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKQorKyAgOiBNaW5pZHVtcENvbnRl eHRXcml0ZXIoKSwgY29udGV4dF8oKSB7CisrICAgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBr TWluaWR1bXBDb250ZXh0UFBDNjQ7CisrfQorKworK01pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVy Ojp+TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKSA9IGRlZmF1bHQ7CisrCisrdm9pZCBNaW5p ZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6SW5pdGFsaXplRnJvbVNuYXBzaG90KAorKyAgICBjb25z dCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRfc25hcHNob3QpIHsKKysgIERDSEVDS19FUShzdGF0 ZSgpLCBrU3RhdGVNdXRhYmxlKTsKKysgIERDSEVDS19FUShjb250ZXh0Xy5jb250ZXh0X2ZsYWdz LCBrTWluaWR1bXBDb250ZXh0UFBDNjQpOworKworKyAgY29udGV4dF8uY29udGV4dF9mbGFncyA9 IGtNaW5pZHVtcENvbnRleHRQUEM2NEFsbDsKKysKKysgIG1lbWNweShjb250ZXh0Xy5yZWdzLCBj b250ZXh0X3NuYXBzaG90LT5yZWdzLCBzaXplb2YoY29udGV4dF8ucmVncykpOworKyAgY29udGV4 dF8ubmlwID0gY29udGV4dF9zbmFwc2hvdC0+bmlwOworKyAgY29udGV4dF8ubXNyID0gY29udGV4 dF9zbmFwc2hvdC0+bXNyOworKyAgY29udGV4dF8uY2NyID0gY29udGV4dF9zbmFwc2hvdC0+Y2Ny OworKyAgY29udGV4dF8ueGVyID0gY29udGV4dF9zbmFwc2hvdC0+eGVyOworKyAgY29udGV4dF8u bG5rID0gY29udGV4dF9zbmFwc2hvdC0+bG5rOworKyAgY29udGV4dF8uY3RyID0gY29udGV4dF9z bmFwc2hvdC0+Y3RyOworKworKyAgbWVtY3B5KGNvbnRleHRfLmZwcmVncywgY29udGV4dF9zbmFw c2hvdC0+ZnByZWdzLCBzaXplb2YoY29udGV4dF8uZnByZWdzKSk7CisrICBjb250ZXh0Xy5mcHNj ciA9IGNvbnRleHRfc25hcHNob3QtPmZwc2NyOworKworKyAgbWVtY3B5KGNvbnRleHRfLnZyZWdz LnNhdmVfdnIsIGNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnIsCisrICAgICAgICAgc2l6 ZW9mKGNvbnRleHRfLnZyZWdzLnNhdmVfdnIpKTsKKysgIG1lbWNweSgmY29udGV4dF8udnJlZ3Mu c2F2ZV92c2NyLCAmY29udGV4dF9zbmFwc2hvdC0+dnJlZ3Muc2F2ZV92c2NyLAorKyAgICAgICAg IHNpemVvZihjb250ZXh0Xy52cmVncy5zYXZlX3ZzY3IpKTsKKysgIGNvbnRleHRfLnZyZWdzLnNh dmVfdnJzYXZlID0gY29udGV4dF9zbmFwc2hvdC0+dnJlZ3Muc2F2ZV92cnNhdmU7CisrfQorKwor K2Jvb2wgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6OldyaXRlT2JqZWN0KAorKyAgICBGaWxl V3JpdGVySW50ZXJmYWNlKiBmaWxlX3dyaXRlcikgeworKyAgRENIRUNLX0VRKHN0YXRlKCksIGtT dGF0ZVdyaXRhYmxlKTsKKysgIHJldHVybiBmaWxlX3dyaXRlci0+V3JpdGUoJmNvbnRleHRfLCBz aXplb2YoY29udGV4dF8pKTsKKyt9CisrCisrc2l6ZV90IE1pbmlkdW1wQ29udGV4dFBQQzY0V3Jp dGVyOjpDb250ZXh0U2l6ZSgpIGNvbnN0IHsKKysgIERDSEVDS19HRShzdGF0ZSgpLCBrU3RhdGVG cm96ZW4pOworKyAgcmV0dXJuIHNpemVvZihjb250ZXh0Xyk7CisrfQorKworIH0gIC8vIG5hbWVz cGFjZSBjcmFzaHBhZAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmggYi90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCitpbmRleCBkNGFi OTM2ZWUuLjFkMjJmYzU5YyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKKysrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKK0BA IC0zMTUsNiArMzE1LDQ1IEBAIGNsYXNzIE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlciBmaW5h bCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgeworICAgRElTQUxMT1dfQ09QWV9BTkRf QVNTSUdOKE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcik7CisgfTsKKyAKKytjbGFzcyBNaW5p ZHVtcENvbnRleHRQUEM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0 ZXIgeworKyBwdWJsaWM6CisrICBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpOworKyAgfk1p bmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgb3ZlcnJpZGU7CisrCisrICAvLyEgXGJyaWVmIElu aXRhbGl6ZXMgdGhlIE1pbmlkdW1wQ29udGV4dFBQQzY0IGJhc2VkIG9uIFxhIGNvbnRleHRfc25h cHNob3QuCisrICAvLyEKKysgIC8vISBccGFyYW1baW5dIGNvbnRleHRfc25hcHNob3QgVGhlIGNv bnRleHQgc25hcHNob3QgdG8gdXNlIGFzIHNvdXJjZSBkYXRhLgorKyAgLy8hCisrICAvLyEgXG5v dGUgVmFsaWQgaW4gI2tTdGF0ZU11dGFibGUuIE5vIG11dGF0aW9uIG9mIGNvbnRleHQoKSBtYXkg YmUgZG9uZSBiZWZvcmUKKysgIC8vISAgICAgY2FsbGluZyB0aGlzIG1ldGhvZCwgYW5kIGl0IGlz IG5vdCBub3JtYWxseSBuZWNlc3NhcnkgdG8gYWx0ZXIKKysgIC8vISAgICAgY29udGV4dCgpIGFm dGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuCisrICB2b2lkIEluaXRhbGl6ZUZyb21TbmFwc2hvdChj b25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRfc25hcHNob3QpOworKworKyAgLy8hIFxicmll ZiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgdGhhdCB0aGlzIG9i amVjdCB3aWxsCisrICAvLyEgICAgIHdyaXRlLgorKyAgLy8hCisrICAvLyEgXGF0dGVudGlvbiBU aGlzIHJldHVybnMgYSBub24tYGNvbnN0YCBwb2ludGVyIHRvIHRoaXMgb2JqZWN04oCZcyBwcml2 YXRlCisrICAvLyEgICAgIGRhdGEgc28gdGhhdCBhIGNhbGxlciBjYW4gcG9wdWxhdGUgdGhlIGNv bnRleHQgc3RydWN0dXJlIGRpcmVjdGx5LgorKyAgLy8hICAgICBUaGlzIGlzIGRvbmUgYmVjYXVz ZSBwcm92aWRpbmcgc2V0dGVyIGludGVyZmFjZXMgdG8gZWFjaCBmaWVsZCBpbiB0aGUKKysgIC8v ISAgICAgY29udGV4dCBzdHJ1Y3R1cmUgd291bGQgYmUgdW53aWVsZHkgYW5kIGN1bWJlcnNvbWUu IENhcmUgbXVzdCBiZSB0YWtlbgorKyAgLy8hICAgICB0byBwb3B1bGF0ZSB0aGUgY29udGV4dCBz dHJ1Y3R1cmUgY29ycmVjdGx5LiBUaGUgY29udGV4dCBzdHJ1Y3R1cmUKKysgIC8vISAgICAgbXVz dCBvbmx5IGJlIG1vZGlmaWVkIHdoaWxlIHRoaXMgb2JqZWN0IGlzIGluIHRoZSAja1N0YXRlTXV0 YWJsZQorKyAgLy8hICAgICBzdGF0ZS4KKysgIE1pbmlkdW1wQ29udGV4dFBQQzY0KiBjb250ZXh0 KCkgeyByZXR1cm4gJmNvbnRleHRfOyB9CisrCisrIHByb3RlY3RlZDoKKysgIC8vIE1pbmlkdW1w V3JpdGFibGU6CisrICBib29sIFdyaXRlT2JqZWN0KEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVf d3JpdGVyKSBvdmVycmlkZTsKKysKKysgIC8vIE1pbmlkdW1wQ29udGV4dFdyaXRlcjoKKysgIHNp emVfdCBDb250ZXh0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworKworKyBwcml2YXRlOgorKyAgTWlu aWR1bXBDb250ZXh0UFBDNjQgY29udGV4dF87CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJ R04oTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIpOworK307CisrCisgfSAgLy8gbmFtZXNwYWNl IGNyYXNocGFkCisgCisgI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05U RVhUX1dSSVRFUl9IXworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNj CitpbmRleCAzMjE2YTkwNmIuLmE5ZmNiZTlkOCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MK KysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2Nv bnRleHRfd3JpdGVyX3Rlc3QuY2MKK0BAIC0yMTMsNiArMjEzLDIxIEBAIFRFU1QoTWluaWR1bXBD b250ZXh0V3JpdGVyLCBNSVBTNjRfRnJvbVNuYXBzaG90KSB7CisgICAgICAgY29udGV4dCwgRXhw ZWN0TWluaWR1bXBDb250ZXh0TUlQUzY0LCBrU2VlZCk7CisgfQorIAorK1RFU1QoTWluaWR1bXBD b250ZXh0V3JpdGVyLCBQUEM2NF9aZXJvcykgeworKyAgRW1wdHlDb250ZXh0VGVzdDxNaW5pZHVt cENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAorKyAgICBFeHBlY3RN aW5pZHVtcENvbnRleHRQUEM2NCk7CisrfQorKworK1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVy LCBQUEM2NF9Gcm9tU25hcHNob3QpIHsKKysgIGNvbnN0ZXhwciB1aW50MzJfdCBrU2VlZCA9IDY0 OworKyAgQ1BVQ29udGV4dFBQQzY0IGNvbnRleHRfcHBjNjQ7CisrICBDUFVDb250ZXh0IGNvbnRl eHQ7CisrICBjb250ZXh0LnBwYzY0ID0gJmNvbnRleHRfcHBjNjQ7CisrICBJbml0aWFsaXplQ1BV Q29udGV4dFBQQzY0KCZjb250ZXh0LCBrU2VlZCk7CisrICBGcm9tU25hcHNob3RUZXN0PE1pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENvbnRleHRQUEM2ND4oCisrICAgICAgY29u dGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQsIGtTZWVkKTsKKyt9CisrCisgfSAgLy8g bmFtZXNwYWNlCisgfSAgLy8gbmFtZXNwYWNlIHRlc3QKKyB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hw YWQKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYworaW5kZXggMDk3NGUzZGRm Li5iNzFlYzU4ODAgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCitA QCAtMTM1LDYgKzEzNSw4IEBAIHN0ZDo6c3RyaW5nIE1pbmlkdW1wTWlzY0luZm9EZWJ1Z0J1aWxk U3RyaW5nKCkgeworICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJtaXBzIjsKKyAj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAgc3RhdGljIGNvbnN0ZXhwciBjaGFy IGtDUFVbXSA9ICJtaXBzNjQiOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisrICBz dGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gInBwYzY0IjsKKyAjZWxzZQorICNlcnJvciBk ZWZpbmUga0NQVSBmb3IgdGhpcyBDUFUKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYyBiL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCitpbmRleCA3 YTFiMjc2M2MuLmJlZGE4ZGE5ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYworQEAgLTExMiw2ICsxMTIs MTEgQEAgdm9pZCBDYXB0dXJlTWVtb3J5OjpQb2ludGVkVG9CeUNvbnRleHQoY29uc3QgQ1BVQ29u dGV4dCYgY29udGV4dCwKKyAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6ZShjb250 ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgeworICAgICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQo ZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdzW2ldKTsKKyAgIH0KKysjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxl Z2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKKysgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFz ZTo6c2l6ZShjb250ZXh0LnBwYzY0LT5yZWdzKTsgKytpKSB7CisrICAgIE1heWJlQ2FwdHVyZU1l bW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+cmVnc1tpXSk7CisrICB9CisgI2Vs c2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmggYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKK2luZGV4IDgxMWE3 MjA5NS4uZjRmODM5ODFkIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKK0BAIC00Myw3ICs0MywxMCBA QCBlbnVtIENQVUFyY2hpdGVjdHVyZSB7CisgICBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMLAorIAor ICAgLy8hIFxicmllZiA2NC1iaXQgTUlQU0VMLgorLSAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVM CisrICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwsCisrCisrICAvLyEgXGJyaWVmIDY0LWJpdCBQ UEM2NC4KKysgIGtDUFVBcmNoaXRlY3R1cmVQUEM2NAorIH07CisgCisgfSAgLy8gbmFtZXNwYWNl IGNyYXNocGFkCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvY3B1X2NvbnRleHQuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9jcHVfY29udGV4dC5jYworaW5kZXggYzc1YjU1NTVlLi5hZWFkZTU3N2EgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5j YworKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRl eHQuY2MKK0BAIC0xNjksNiArMTY5LDggQEAgdWludDY0X3QgQ1BVQ29udGV4dDo6SW5zdHJ1Y3Rp b25Qb2ludGVyKCkgY29uc3QgeworICAgICAgIHJldHVybiBhcm0tPnBjOworICAgICBjYXNlIGtD UFVBcmNoaXRlY3R1cmVBUk02NDoKKyAgICAgICByZXR1cm4gYXJtNjQtPnBjOworKyAgICBjYXNl IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKKysgICAgICByZXR1cm4gcHBjNjQtPm5pcDsKKyAgICAg ZGVmYXVsdDoKKyAgICAgICBOT1RSRUFDSEVEKCk7CisgICAgICAgcmV0dXJuIH4wdWxsOworQEAg LTE4NSw2ICsxODcsOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpTdGFja1BvaW50ZXIoKSBjb25z dCB7CisgICAgICAgcmV0dXJuIGFybS0+c3A7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFS TTY0OgorICAgICAgIHJldHVybiBhcm02NC0+c3A7CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZVBQQzY0OgorKyAgICAgIHJldHVybiBwcGM2NC0+cmVnc1sxXTsKKyAgICAgZGVmYXVsdDoKKyAg ICAgICBOT1RSRUFDSEVEKCk7CisgICAgICAgcmV0dXJuIH4wdWxsOworQEAgLTE5Niw2ICsyMDAs NyBAQCBib29sIENQVUNvbnRleHQ6OklzNjRCaXQoKSBjb25zdCB7CisgICAgIGNhc2Uga0NQVUFy Y2hpdGVjdHVyZVg4Nl82NDoKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6CisgICAg IGNhc2Uga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMOgorKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1 cmVQUEM2NDoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJl WDg2OgorICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk06CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaCBiL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmgKK2luZGV4IGZiMjNj NDY3OS4uZWViZWRlNjNjIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAorKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAorQEAgLTM1Miw2ICszNTIsMjQgQEAgc3RydWN0 IENQVUNvbnRleHRNSVBTNjQgeworICAgdWludDY0X3QgZmlyOworIH07CisgCisrLy8hIFxicmll ZiBBIGNvbnRleHQgc3RydWN0dXJlIGNhcnJ5aW5nIFBQQzY0IENQVSBzdGF0ZS4KKytzdHJ1Y3Qg Q1BVQ29udGV4dFBQQzY0IHsKKysgIHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysg IHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0X3QgY2NyOworKyAgdWludDY0X3QgeGVyOwor KyAgdWludDY0X3QgbG5rOworKyAgdWludDY0X3QgY3RyOworKyAgZG91YmxlIGZwcmVnc1szMl07 CisrICBkb3VibGUgZnBzY3I7CisrICBzdHJ1Y3QgeworKyAgICB1aW50MTI4X3N0cnVjdCBzYXZl X3ZyWzMyXTsKKysgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOworKyAgICB1aW50MzJfdCBz YXZlX3Zyc2F2ZTsKKysgIH0gdnJlZ3M7CisrfTsKKysKKyAvLyEgXGJyaWVmIEEgY29udGV4dCBz dHJ1Y3R1cmUgY2FwYWJsZSBvZiBjYXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkgc3VwcG9ydGVk CisgLy8hICAgICBDUFUgYXJjaGl0ZWN0dXJlLgorIHN0cnVjdCBDUFVDb250ZXh0IHsKK0BAIC0z ODIsNiArNDAwLDcgQEAgc3RydWN0IENQVUNvbnRleHQgeworICAgICBDUFVDb250ZXh0QVJNNjQq IGFybTY0OworICAgICBDUFVDb250ZXh0TUlQUyogbWlwc2VsOworICAgICBDUFVDb250ZXh0TUlQ UzY0KiBtaXBzNjQ7CisrICAgIENQVUNvbnRleHRQUEM2NCogcHBjNjQ7CisgICB9OworIH07Cisg CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvY3B1X2NvbnRleHRfbGludXguaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKK2luZGV4IDlmNDZhNDg5Ny4uYWE2Nzdj NGViIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvY3B1X2NvbnRleHRfbGludXguaAorKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAorQEAgLTE1LDYgKzE1LDcg QEAKKyAjaWZuZGVmIENSQVNIUEFEX1NOQVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hf CisgI2RlZmluZSBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVfQ09OVEVYVF9MSU5VWF9IXwor IAorKyNpbmNsdWRlIDxjc3RyaW5nPgorICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIK KyAjaW5jbHVkZSAic25hcHNob3QvY3B1X2NvbnRleHQuaCIKKyAjaW5jbHVkZSAic25hcHNob3Qv bGludXgvc2lnbmFsX2NvbnRleHQuaCIKK0BAIC0xNzQsNiArMTc1LDc4IEBAIHZvaWQgSW5pdGlh bGl6ZUNQVUNvbnRleHRNSVBTKAorIAorICNlbmRpZiAgLy8gQVJDSF9DUFVfTUlQU19GQU1JTFkg fHwgRE9YWUdFTgorIAorKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkgfHwgRE9Y WUdFTgorKworKy8vISBcYnJpZWYgSW5pdGFsaXplcyBhIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1 cmUgZnJvbSBuYXRpdmUgY29udGV4dAorKy8vISAgICAgc3RydWN0dXJlcyBvbiBMaW51eC4KKysv LyEKKysvLyEgXHBhcmFtW2luXSB0aHJlYWRfY29udGV4dCBUaGUgbmF0aXZlIHRocmVhZCBjb250 ZXh0LgorKy8vISBccGFyYW1baW5dIGZsb2F0X2NvbnRleHQgVGhlIG5hdGl2ZSBmbG9hdCBjb250 ZXh0LgorKy8vISBccGFyYW1baW5dIHZlY3Rvcl9jb250ZXh0IFRoZSBuYXRpdmUgdmVjdG9yIGNv bnRleHQuCisrLy8hIFxwYXJhbVtvdXRdIGNvbnRleHQgVGhlIENQVUNvbnRleHRQUEM2NCBzdHJ1 Y3R1cmUgdG8gaW5pdGFsaXplLgorK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisrdm9pZCBJ bml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KAorKyAgICBjb25zdCBUaHJlYWRDb250ZXh0Ojp0NjRf dCYgdGhyZWFkX2NvbnRleHQsCisrICAgIGNvbnN0IEZsb2F0Q29udGV4dDo6ZjY0X3QmIGZsb2F0 X2NvbnRleHQsCisrICAgIGNvbnN0IFZlY3RvckNvbnRleHQ6OnY2NF90JiB2ZWN0b3JfY29udGV4 dCwKKysgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7CisrCisrICBt ZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQuZ3ByLCBzaXplb2YoY29udGV4dC0+ cmVncykpOworKyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOworKyAgY29udGV4 dC0+bXNyID0gdGhyZWFkX2NvbnRleHQubXNyOworKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2Nv bnRleHQuY2NyOworKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOworKyAgY29u dGV4dC0+bG5rID0gdGhyZWFkX2NvbnRleHQubG5rOworKyAgY29udGV4dC0+Y3RyID0gdGhyZWFk X2NvbnRleHQuY3RyOworKworKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4 dC5mcHJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJlZ3MpKTsKKysgIGNvbnRleHQtPmZwc2NyID0g ZmxvYXRfY29udGV4dC5mcHNjcjsKKysKKysgIGZvciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBp KyspIHsKKysgICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cltpXSA9IHsKKysgICAgICAoKCh1aW50 NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMF0pIDw8IDMyKSB8CisrICAgICAgICB2ZWN0 b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCisrICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRl eHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAorKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdz W2ldWzNdCisrICAgIH07CisrICB9CisrICBjb250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZl Y3Rvcl9jb250ZXh0LnZyc2F2ZTsKKysgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAo dWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52c2NyX3dvcmR9OworK30KKysKKyt0ZW1wbGF0 ZSA8dHlwZW5hbWUgVHJhaXRzPgorK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKKysg ICAgY29uc3QgU2lnbmFsVGhyZWFkQ29udGV4dDY0ICZ0aHJlYWRfY29udGV4dCwKKysgICAgY29u c3QgU2lnbmFsRmxvYXRDb250ZXh0NjQgJmZsb2F0X2NvbnRleHQsCisrICAgIGNvbnN0IFNpZ25h bFZlY3RvckNvbnRleHQ2NCAmdmVjdG9yX2NvbnRleHQsCisrICAgIHR5cGVuYW1lIFRyYWl0czo6 Q1BVQ29udGV4dCogY29udGV4dCkgeworKworKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVh ZF9jb250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7CisrICBjb250ZXh0LT5uaXAg PSB0aHJlYWRfY29udGV4dC5uaXA7CisrICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5t c3I7CisrICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7CisrICBjb250ZXh0LT54 ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7CisrICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4 dC5sbms7CisrICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5jdHI7CisrCisrICBtZW1j cHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5m cHJlZ3MpKTsKKysgIGNvbnRleHQtPmZwc2NyID0gZmxvYXRfY29udGV4dC5mcHNjcjsKKysKKysg IGZvciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBpKyspIHsKKysgICAgY29udGV4dC0+dnJlZ3Mu c2F2ZV92cltpXSA9IHsKKysgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3Nb aV1bMF0pIDw8IDMyKSB8CisrICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCisr ICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAor KyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzNdCisrICAgIH07CisrICB9CisrICBj b250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsKKysgIGNv bnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNj ci52c2NyX3dvcmR9OworK30KKysKKysKKysjZW5kaWYKKysKKyB9ICAvLyBuYW1lc3BhY2UgaW50 ZXJuYWwKKyB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKKyAKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rl c3QuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1 Z19yZW5kZXp2b3VzX3Rlc3QuY2MKK2luZGV4IGQzMmJkMTkzNy4uMmRkNTM4YzJiIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVidWdf cmVuZGV6dm91c190ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKK0BAIC0xOTIsNiArMTkyLDgg QEAgdm9pZCBUZXN0QWdhaW5zdFRhcmdldChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7 CisgICAgICAgICAgICAgICBkZXZpY2UgPT0gMCAmJiBpbm9kZSA9PSAwICYmIG1hcHBpbmdfbmFt ZSA9PSAiW3Zkc29dIjsKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODYpCisgICAgICAgICAgIHN0 YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4W10gPSAibGludXgtZ2F0ZS5zby4iOworKyNlbGlm IGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisrICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hh ciBrUHJlZml4W10gPSAibGludXgtdmRzbzY0LnNvLiI7CisgI2Vsc2UKKyAgICAgICAgICAgc3Rh dGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC12ZHNvLnNvLiI7CisgI2VuZGlm CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCitpbmRleCBj ZDQwYjNiMTIuLjZiY2YyM2I2ZiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYworKysrIGIv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3Nu YXBzaG90X2xpbnV4LmNjCitAQCAtMzIzLDYgKzMyMyw2OSBAQCBib29sIEV4Y2VwdGlvblNuYXBz aG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCisgICAgICAgcmVhZGVyLCBj b250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLm1pcHM2NCk7CisgfQorIAorKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisr c3RhdGljIGJvb2wgUmVhZENvbnRleHQoUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogZGVzdF9j b250ZXh0KSB7CisrICBjb25zdCBQcm9jZXNzTWVtb3J5KiBtZW1vcnkgPSByZWFkZXItPk1lbW9y eSgpOworKworKyAgTGludXhWTUFkZHJlc3MgZ3BfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRy ZXNzICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250 ZXh0LCBtY29udGV4dCkgKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZ3BfcmVncyk7CisrCisrICB0eXBlbmFt ZSBUcmFpdHM6OlNpZ25hbFRocmVhZENvbnRleHQgdGhyZWFkX2NvbnRleHQ7CisrICBpZiAoIW1l bW9yeS0+UmVhZChncF9yZWdzX2FkZHJlc3MsIHNpemVvZih0aHJlYWRfY29udGV4dCksICZ0aHJl YWRfY29udGV4dCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBncF9yZWdz ISI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIExpbnV4Vk1BZGRyZXNzIGZwX3Jl Z3NfYWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpICsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQs IGZwX3JlZ3MpOworKworKyAgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxGbG9hdENvbnRleHQgZnBf Y29udGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFkKGZwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKGZw X2NvbnRleHQpLCAmZnBfY29udGV4dCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qg cmVhZCBmcF9yZWdzISI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIExpbnV4Vk1B ZGRyZXNzIHZfcmVnc19wdHJfYWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFp dHM6Ok1Db250ZXh0LCB2bXhfcmVzZXJ2ZSkgKyA4OworKworKyAgdHlwZW5hbWUgVHJhaXRzOjpT aWduYWxWZWN0b3JDb250ZXh0IHZfY29udGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFkKHZfcmVn c19wdHJfYWRkcmVzcywgc2l6ZW9mKHZfY29udGV4dCksICZ2X2NvbnRleHQpKSB7CisrICAgIExP RyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgdl9yZWdzISI7CisrICAgIHJldHVybiBmYWxzZTsK KysgIH0KKysKKysgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0Pih0 aHJlYWRfY29udGV4dCwgZnBfY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg dl9jb250ZXh0LCBkZXN0X2NvbnRleHQpOworKworKyAgcmV0dXJuIHRydWU7CisrfQorKworK3Rl bXBsYXRlPD4KKytib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRl eHRUcmFpdHM2ND4oCisrICAgIFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAorKyAgICBMaW51 eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MpIHsKKysgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9 IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKKysgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5p b25fLnBwYzY0OworKworKyAgcmV0dXJuIGludGVybmFsOjpSZWFkQ29udGV4dDxDb250ZXh0VHJh aXRzNjQ+KAorKyAgICAgIHJlYWRlciwgY29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5wcGM2NCk7 CisrfQorKworK3RlbXBsYXRlPD4KKytib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRD b250ZXh0PENvbnRleHRUcmFpdHMzMj4oCisrICAgIFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVy LAorKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MpIHsKKysgIC8vIFBQQzY0IGlz IDY0LWJpdAorKyAgcmV0dXJuIGZhbHNlOworK30KKysKKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4 Nl9GQU1JTFkKKyAKKyBib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJv Y2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNzX3JlYWRlciwKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGlu dXguaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2Vw dGlvbl9zbmFwc2hvdF9saW51eC5oCitpbmRleCBlYTBjZDIxMDYuLmU0MmRmNTIwZiAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2Vw dGlvbl9zbmFwc2hvdF9saW51eC5oCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAorQEAgLTg0LDYgKzg0 LDggQEAgY2xhc3MgRXhjZXB0aW9uU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYyBFeGNlcHRp b25TbmFwc2hvdCB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgICAg Q1BVQ29udGV4dE1JUFMgbWlwc2VsOworICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2NDsKKysj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgQ1BVQ29udGV4dFBQQzY0 IHBwYzY0OworICNlbmRpZgorICAgfSBjb250ZXh0X3VuaW9uXzsKKyAgIENQVUNvbnRleHQgY29u dGV4dF87CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhf dGVzdC5jYworaW5kZXggYzE3MTcwYjQzLi5iNmE3MTRjYzYgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3Rf bGludXhfdGVzdC5jYworKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKK0BAIC0yOTYsNyArMjk2 LDI4IEBAIHZvaWQgRXhwZWN0Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0 IE5hdGl2ZUNQVUNvbnRleHQmIGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgMCk7CisgI3VuZGVm IENQVV9BUkNIX05BTUUKKyB9CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp CisrdXNpbmcgTmF0aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7CisrCisrdm9pZCBJbml0aWFs aXplQ29udGV4dChOYXRpdmVDUFVDb250ZXh0KiBjb250ZXh0KSB7CisrICBmb3IgKHNpemVfdCBy ZWcgPSAwOyByZWcgPCAzMjsgKytyZWcpIHsKKysgICAgY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tyZWddID0gcmVnOworKyAgfQorKworKyAgbWVtc2V0KCZjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzLCA0NCwKKysgICAgICBzaXplb2YoY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn cykpOworK30KKyAKKyt2b2lkIEV4cGVjdENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFs LCBjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBleHBlY3RlZCkgeworKyAgRVhQRUNUX0VRKGFjdHVh bC5hcmNoaXRlY3R1cmUsIGtDUFVBcmNoaXRlY3R1cmVQUEM2NCk7CisrCisrICBmb3IgKHNpemVf dCByZWcgPSAwOyByZWcgPCAzMjsgKytyZWcpIHsKKysgICAgRVhQRUNUX0VRKGFjdHVhbC5wcGM2 NC0+cmVnc1tyZWddLCBleHBlY3RlZC51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10pOworKyAgfQor KworKyAgRVhQRUNUX0VRKG1lbWNtcChhY3R1YWwucHBjNjQtPmZwcmVncywgZXhwZWN0ZWQudWNf bWNvbnRleHQuZnBfcmVncywKKysgICAgICAgICAgICBzaXplb2YoYWN0dWFsLnBwYzY0LT5mcHJl Z3MpKSwgMCk7CisrfQorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmCitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19y ZWFkZXJfbGludXguY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYworaW5kZXggZWUyNDZlOGJjLi45NTU1ZGNlMDQg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYworKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MKK0BAIC0xMDgsNiAr MTA4LDggQEAgdm9pZCBQcm9jZXNzUmVhZGVyTGludXg6OlRocmVhZDo6SW5pdGlhbGl6ZVN0YWNr KFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyKSB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKKyAgIHN0YWNrX3BvaW50ZXIgPSByZWFkZXItPklzNjRCaXQoKSA/IHRocmVh ZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NC5yZWdzWzI5XQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDMyLnJlZ3NbMjld OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgc3RhY2tfcG9pbnRl ciA9IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NC5ncHJbMV07CisgI2Vsc2UKKyAjZXJy b3IgUG9ydC4KKyAjZW5kaWYKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAoraW5kZXggMTEwMDI0 NjgwLi5hMWYyZGEyNTkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCisrKysgYi90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCitAQCAtNDIyLDYg KzQyMiw4OSBAQCBzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0PENvbnRleHRUcmFpdHM2 ND4sIG1jb250ZXh0LmZwcmVncykgPT0KKyAgICAgICAgICAgICAgICJjb250ZXh0IG9mZnNldCBt aXNtYXRjaCIpOworICNlbmRpZgorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQorKworK3N0cnVjdCBTaWduYWxUaHJlYWRDb250ZXh0NjQgeworKyAgdWludDY0X3QgcmVn c1szMl07CisrICB1aW50NjRfdCBuaXA7CisrICB1aW50NjRfdCBtc3I7CisrICB1aW50NjRfdCBv cmlnX3IzOworKyAgdWludDY0X3QgY3RyOworKyAgdWludDY0X3QgbG5rOworKyAgdWludDY0X3Qg eGVyOworKyAgdWludDY0X3QgY2NyOworKyAgdWludDY0X3Qgc29mdGU7CisrICB1aW50NjRfdCB0 cmFwOworKyAgdWludDY0X3QgZGFyOworKyAgdWludDY0X3QgZHNpc3I7CisrICB1aW50NjRfdCBy ZXN1bHQ7CisrICB1aW50NjRfdCBkc2NyOworKyAgdWludDY0X3QgZnByMFszXTsKKyt9OworKwor K3N0cnVjdCBTaWduYWxGbG9hdENvbnRleHQ2NCB7CisrICBkb3VibGUgcmVnc1szMl07CisrICBk b3VibGUgZnBzY3I7CisrfTsKKysKKytzdHJ1Y3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0IHsKKysg IGludDMyX3QgdnJyZWdzWzMyXVs0XTsKKysgIHN0cnVjdCB7CisrICAgIGludDMyX3QgX19wYWRb M107CisrICAgIGludDMyX3QgdnNjcl93b3JkOworKyAgfSB2c2NyOworKyAgaW50MzJfdCB2cnNh dmU7CisrICBpbnQzMl90IF9fcGFkWzNdOworK30gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18o MTYpKSk7CisrCisrCisrI3ByYWdtYSBwYWNrKHBvcCkKKytzdHJ1Y3QgTUNvbnRleHQ2NCB7Cisr ICB1aW50NjRfdCByZXNlcnZlZFs0XTsKKysgIGludDMyX3Qgc2lnbmFsOworKyAgaW50MzJfdCBf X3BhZDA7CisrICB1aW50NjRfdCBoYW5kbGVyOworKyAgdWludDY0X3Qgb2xkbWFzazsKKysgIHVp bnQ2NF90IHB0X3JlZ3NfcHRyOworKyAgU2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7Cisr ICBTaWduYWxGbG9hdENvbnRleHQ2NCAgZnBfcmVnczsKKysgIFNpZ25hbFZlY3RvckNvbnRleHQ2 NCAqdl9yZWdzOworKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVs2OV07CisrfTsKKysKKytzdHJ1Y3Qg Q29udGV4dFRyYWl0czY0IDogcHVibGljIFRyYWl0czY0IHsKKysgIHVzaW5nIE1Db250ZXh0ID0g TUNvbnRleHQ2NDsKKysgIHVzaW5nIFNpZ25hbFRocmVhZENvbnRleHQgPSBTaWduYWxUaHJlYWRD b250ZXh0NjQ7CisrICB1c2luZyBTaWduYWxGbG9hdENvbnRleHQgPSBTaWduYWxGbG9hdENvbnRl eHQ2NDsKKysgIHVzaW5nIFNpZ25hbFZlY3RvckNvbnRleHQgPSBTaWduYWxWZWN0b3JDb250ZXh0 NjQ7CisrICB1c2luZyBDUFVDb250ZXh0ID0gQ1BVQ29udGV4dFBQQzY0OworK307CisrCisrc3Ry dWN0IENvbnRleHRUcmFpdHMzMiA6IHB1YmxpYyBUcmFpdHMzMiB7fTsKKysKKytzdHJ1Y3QgVUNv bnRleHQgeworKyAgdWludDY0X3QgZmxhZ3M7CisrICB1aW50NjRfdCBsaW5rOworKyAgU2lnbmFs U3RhY2s8Q29udGV4dFRyYWl0czY0PiBzdGFjazsKKysgIFNpZ3NldDxDb250ZXh0VHJhaXRzNjQ+ IHNpZ21hc2s7CisrICBNQ29udGV4dDY0IG1jb250ZXh0OworK307CisrI3ByYWdtYSBwYWNrKHB1 c2gsIDEpCisrCisrc3RhdGljX2Fzc2VydChzaXplb2YoVUNvbnRleHQpID09IHNpemVvZih1Y29u dGV4dF90KSwKKysgICAgICAgICAgICAgICJ1Y29udGV4dF90IHNpemUgbWlzbWF0Y2giKTsKKytz dGF0aWNfYXNzZXJ0KHNpemVvZihNQ29udGV4dDY0KSA9PSBzaXplb2YobWNvbnRleHRfdCksCisr ICAgICAgICAgICAgICAibWNvbnRleHRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2Vy dChzaXplb2YoU2lnbmFsVGhyZWFkQ29udGV4dDY0KSA9PSBzaXplb2YoZ3JlZ3NldF90KSwKKysg ICAgICAgICAgICAgICJncmVnc2V0X3Qgc2l6ZSBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQo c2l6ZW9mKFNpZ25hbEZsb2F0Q29udGV4dDY0KSA9PSBzaXplb2YoZnByZWdzZXRfdCksCisrICAg ICAgICAgICAgICAiZnByZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChz aXplb2YoU2lnbmFsVmVjdG9yQ29udGV4dDY0KSA9PSBzaXplb2YodnJyZWdzZXRfdCksCisrICAg ICAgICAgICAgICAidnJyZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChv ZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpID09CisrICAgICAgICAgICAgICBvZmZzZXRvZih1 Y29udGV4dF90LCB1Y19tY29udGV4dCksICJtY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKKytz dGF0aWNfYXNzZXJ0KG9mZnNldG9mKE1Db250ZXh0NjQsIGdwX3JlZ3MpID09CisrICAgICAgICAg ICAgICBvZmZzZXRvZihtY29udGV4dF90LCBncF9yZWdzKSwgImdwX3JlZ3Mgb2Zmc2V0IG1pc21h dGNoIik7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9G QU1JTFkKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKK2luZGV4IGE5 OWRhM2U0Yi4uMDNiOTczMDgzIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3NuYXBzaG90X2xpbnV4LmNjCisrKysgYi90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3Rf bGludXguY2MKK0BAIC0yMDQsNiArMjA0LDggQEAgQ1BVQXJjaGl0ZWN0dXJlIFN5c3RlbVNuYXBz aG90TGludXg6OkdldENQVUFyY2hpdGVjdHVyZSgpIGNvbnN0IHsKKyAjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKQorICAgcmV0dXJuIHByb2Nlc3NfcmVhZGVyXy0+SXM2NEJpdCgp ID8ga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMOworKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQorKyAgcmV0dXJuIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKKyAjZWxz ZQorICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0dXJlCisgI2VuZGlmCitAQCAtMjE5LDYg KzIyMSw5IEBAIHVpbnQzMl90IFN5c3RlbVNuYXBzaG90TGludXg6OkNQVVJldmlzaW9uKCkgY29u c3QgeworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICAvLyBOb3QgaW1w bGVtZW50YWJsZSBvbiBNSVBTCisgICByZXR1cm4gMDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKKysgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKKysgIHJl dHVybiAwOworICNlbHNlCisgI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5k aWYKK0BAIC0yMzksNiArMjQ0LDkgQEAgc3RkOjpzdHJpbmcgU3lzdGVtU25hcHNob3RMaW51eDo6 Q1BVVmVuZG9yKCkgY29uc3QgeworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp CisgICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCisgICByZXR1cm4gc3RkOjpzdHJpbmco KTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIC8vIE5vdCB5ZXQg aW1wbGVtZW50ZWQgb24gUFBDNjQKKysgIHJldHVybiBzdGQ6OnN0cmluZygpOworICNlbHNlCisg I2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5kaWYKK0BAIC0zNzIsNiArMzgw LDkgQEAgYm9vbCBTeXN0ZW1TbmFwc2hvdExpbnV4OjpOWEVuYWJsZWQoKSBjb25zdCB7CisgI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxl IG9uIE1JUFMKKyAgIHJldHVybiBmYWxzZTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKKysgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKKysgIHJldHVybiBm YWxzZTsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZB TUlMWQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYworaW5kZXggYjI0NTBjMjA2Li43YmE3OGIyYWUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC90ZXN0X21vZHVsZXMuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYworQEAgLTExMCw2ICsxMTAsOCBAQCBib29sIFdy aXRlVGVzdE1vZHVsZShjb25zdCBiYXNlOjpGaWxlUGF0aCYgbW9kdWxlX3BhdGgsCisgICBtb2R1 bGUuZWhkci5lX21hY2hpbmUgPSBFTV9BQVJDSDY0OworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVf TUlQU0VMKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAgbW9kdWxlLmVoZHIuZV9t YWNoaW5lID0gRU1fTUlQUzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorKyAgbW9k dWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fUFBDNjQ7CisgI2VuZGlmCisgCisgICBtb2R1bGUuZWhk ci5lX3ZlcnNpb24gPSBFVl9DVVJSRU5UOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYyBiL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hv dF9saW51eC5jYworaW5kZXggZTNlMmJlYmRkLi44ZWY0Mzc1MmUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3Rf bGludXguY2MKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYworQEAgLTE4Niw2ICsxODYsMTQgQEAgYm9vbCBU aHJlYWRTbmFwc2hvdExpbnV4OjpJbml0aWFsaXplKFByb2Nlc3NSZWFkZXJMaW51eCogcHJvY2Vz c19yZWFkZXIsCisgICAgICAgICB0aHJlYWQudGhyZWFkX2luZm8uZmxvYXRfY29udGV4dC5mMzIs CisgICAgICAgICBjb250ZXh0Xy5taXBzZWwpOworICAgfQorKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQorKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVj dHVyZVBQQzY0OworKyAgY29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7Cisr ICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0PENvbnRleHRUcmFpdHM2ND4oCisrICAgICAgdGhy ZWFkLnRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NCwKKysgICAgICB0aHJlYWQudGhyZWFk X2luZm8uZmxvYXRfY29udGV4dC5mNjQsCisrICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLnZlY3Rv cl9jb250ZXh0LnY2NCwKKysgICAgICBjb250ZXh0Xy5wcGM2NCk7CisgI2Vsc2UKKyAjZXJyb3Ig UG9ydC4KKyAjZW5kaWYKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaCBiL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCitp bmRleCA0NGNjNmY2ZDkuLmQ0MTM2NDYxZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCisrKysg Yi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25h cHNob3RfbGludXguaAorQEAgLTY4LDYgKzY4LDggQEAgY2xhc3MgVGhyZWFkU25hcHNob3RMaW51 eCBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTbmFwc2hvdCB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkKKyAgICAgQ1BVQ29udGV4dE1JUFMgbWlwc2VsOworICAgICBDUFVDb250 ZXh0TUlQUzY0IG1pcHM2NDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK KysgICAgQ1BVQ29udGV4dFBQQzY0IHBwYzY0OworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2Vu ZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL25ldC9odHRwX3RyYW5zcG9ydF9saWJjdXJsLmNjCisrKysgYi90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL25ldC9odHRwX3RyYW5zcG9ydF9saWJjdXJsLmNj CitAQCAtMjM2LDYgKzIzNiwxMiBAQAorICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfQklHX0VORElB TikKKyAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJhYXJjaDY0X2JlIjsKKyAj ZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2lmIGRlZmluZWQoQVJDSF9D UFVfTElUVExFX0VORElBTikKKysgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJw cGM2NGxlIjsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX0JJR19FTkRJQU4pCisrICAgIHN0YXRp YyBjb25zdGV4cHIgY2hhciBhcmNoW10gPSAicHBjNjQiOworKyNlbmRpZgorICNlbHNlCisgI2Vy cm9yIFBvcnQKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKK2luZGV4IGQzZDVlYmRm Yi4uM2ZkNzMwY2I1IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKK0BAIC01Niw2ICs1Niwx MSBAQCBib29sIEF1eGlsaWFyeVZlY3Rvcjo6UmVhZChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0 aW9uKSB7CisgICAgIGlmICh0eXBlID09IEFUX0lHTk9SRSkgeworICAgICAgIGNvbnRpbnVlOwor ICAgICB9CisrI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICBpZiAodHlw ZSA9PSBBVF9JR05PUkVQUEMpIHsKKysgICAgICBjb250aW51ZTsKKysgICAgfQorKyNlbmRpZgor ICAgICBpZiAoIU1hcEluc2VydE9yUmVwbGFjZSgmdmFsdWVzXywgdHlwZSwgdmFsdWUsIG51bGxw dHIpKSB7CisgICAgICAgTE9HKEVSUk9SKSA8PCAiZHVwbGljYXRlIGF1eHYgZW50cnkiOworICAg ICAgIHJldHVybiBmYWxzZTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKK2luZGV4IDU1N2UwZDM2My4uMDhhZTQzNGI4IDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2Vy LmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFj ZXIuY2MKK0BAIC0zOTgsNiArMzk4LDY0IEBAIGJvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRp ZCwKKyAgIHJldHVybiB0cnVlOworIH0KKyAKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKKysvLyBQUEM2NCBoYXMgaGFkIEhBVkVfQVJDSF9UUkFDRUhPT0sgc2V0IHNpbmNl IDIuNi4yNyAoZXZlbiBiZWZvcmUgeDg2IGhhZCBpdCkuCisrLy8gVGhhdCBtZWFucyB3ZSBjYW4g c2ltcGx5IHVzZSBQVFJBQ0VfR0VUUkVHRVNFVC4KKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVz dGluYXRpb24+CisrYm9vbCBHZXRSZWdpc3RlclNldChwaWRfdCB0aWQsIGludCBzZXQsIERlc3Rp bmF0aW9uKiBkZXN0LCBib29sIGNhbl9sb2cpIHsKKysgIGlvdmVjIGlvdjsKKysgIGlvdi5pb3Zf YmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGRlc3QpOworKyAgaW92Lmlvdl9sZW4gPSBz aXplb2YoKmRlc3QpOworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIHJlaW50 ZXJwcmV0X2Nhc3Q8dm9pZCo+KHNldCksICZpb3YpICE9IDApIHsKKysgICAgUExPR19JRihFUlJP UiwgY2FuX2xvZykgPDwgInB0cmFjZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIGlm IChpb3YuaW92X2xlbiAhPSBzaXplb2YoKmRlc3QpKSB7CisrICAgIExPR19JRihFUlJPUiwgY2Fu X2xvZykgPDwgIlVuZXhwZWN0ZWQgcmVnaXN0ZXJzIHNpemUiOworKyAgICByZXR1cm4gZmFsc2U7 CisrICB9CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrYm9vbCBHZXRWZWN0b3JSZWdpc3RlcnM2 NChwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3JDb250ZXh0KiBj b250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7CisrICBy ZXR1cm4gR2V0UmVnaXN0ZXJTZXQodGlkLCBOVF9QUENfVk1YLCAmY29udGV4dC0+djY0LCBjYW5f bG9nKTsKKyt9CisrCisrYm9vbCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzNjQocGlkX3QgdGlk LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4 dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysg IHJldHVybiBHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BSRlBSRUcsICZjb250ZXh0LT5mNjQsIGNh bl9sb2cpOworK30KKysKKytib29sIEdldFRocmVhZEFyZWE2NChwaWRfdCB0aWQsCisrICAgICAg ICAgICAgICAgICAgICAgY29uc3QgVGhyZWFkQ29udGV4dCYgY29udGV4dCwKKysgICAgICAgICAg ICAgICAgICAgICBMaW51eFZNQWRkcmVzcyogYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAg ICBib29sIGNhbl9sb2cpIHsKKysgIC8vIFBQQzY0IGRvZXNuJ3QgaGF2ZSBQVFJBQ0VfR0VUX1RI UkVBRF9BUkVBIHNpbmNlIHRoZSB0aHJlYWQgcG9pbnRlcgorKyAgLy8gaXMgc3RvcmVkIGluIEdQ UiAxMy4KKysgIFRocmVhZENvbnRleHQ6OnQ2NF90IHRjOworKyAgaWYgKCFHZXRSZWdpc3RlclNl dCh0aWQsIE5UX1BSU1RBVFVTLCAmdGMsIGNhbl9sb2cpKSB7CisrICAgIExPR19JRihFUlJPUiwg Y2FuX2xvZykgPDwgIlVuYWJsZSB0byBnZXQgdGhyZWFkIHBvaW50ZXIhIjsKKysgICAgcmV0dXJu IGZhbHNlOworKyAgfQorKworKyAgKmFkZHJlc3MgPSB0Yy5ncHJbMTNdOworKworKyAgcmV0dXJu IHRydWU7CisrfQorKworKy8vIFN0dWJzIGZvciAzMi1iaXQgZnVuY3Rpb25zIG5vdCBhcHBsaWNh YmxlIG9uIFBQQzY0CisrYm9vbCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzMzIocGlkX3QgdGlk LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4 dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0 dXJuIGZhbHNlOyB9CisrYm9vbCBHZXRUaHJlYWRBcmVhMzIocGlkX3QgdGlkLAorKyAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IFRocmVhZENvbnRleHQgJmNvbnRleHQsCisrICAgICAgICAgICAg ICAgICAgICAgTGludXhWTUFkZHJlc3MgKmFkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAg Ym9vbCBjYW5fbG9nKSB7IHJldHVybiBmYWxzZTsgfQorKworICNlbHNlCisgI2Vycm9yIFBvcnQu CisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitAQCAtNDk0LDYgKzU1Miw5IEBAIGJv b2wgUHRyYWNlcjo6R2V0VGhyZWFkSW5mbyhwaWRfdCB0aWQsIFRocmVhZEluZm8qIGluZm8pIHsK KyAgIGlmIChpc182NF9iaXRfKSB7CisgICAgIHJldHVybiBHZXRHZW5lcmFsUHVycG9zZVJlZ2lz dGVyczY0KHRpZCwgJmluZm8tPnRocmVhZF9jb250ZXh0LCBjYW5fbG9nXykgJiYKKyAgICAgICAg ICAgIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NCh0aWQsICZpbmZvLT5mbG9hdF9jb250ZXh0 LCBjYW5fbG9nXykgJiYKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAg ICAgICAgICBHZXRWZWN0b3JSZWdpc3RlcnM2NCh0aWQsICZpbmZvLT52ZWN0b3JfY29udGV4dCwg Y2FuX2xvZ18pICYmCisrI2VuZGlmCisgICAgICAgICAgICBHZXRUaHJlYWRBcmVhNjQodGlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPnRocmVhZF9jb250ZXh0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZpbmZvLT50aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNz LAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv dGhyZWFkX2luZm8uaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv dGhyZWFkX2luZm8uaAoraW5kZXggNWI1NWMyNGE3Li5kZWEwZDFmMzkgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKKysr KyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8u aAorQEAgLTI4LDYgKzI4LDEwIEBACisgI2luY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+Cisg I2VuZGlmCisgCisrI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyNpbmNsdWRl IDxzeXMvdWNvbnRleHQuaD4KKysjZW5kaWYKKysKKyBuYW1lc3BhY2UgY3Jhc2hwYWQgeworIAor IC8vISBcYnJpZWYgVGhlIHNldCBvZiBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzIGZvciBhbiBh cmNoaXRlY3R1cmUgZmFtaWx5LgorQEAgLTc5LDYgKzgzLDggQEAgdW5pb24gVGhyZWFkQ29udGV4 dCB7CisgICAgIHVpbnQzMl90IGNwMF9zdGF0dXM7CisgICAgIHVpbnQzMl90IGNwMF9jYXVzZTsK KyAgICAgdWludDMyX3QgcGFkZGluZzFfOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQorKyAgICAvLyBQUEM2NCBpcyA2NC1iaXQKKyAjZWxzZQorICNlcnJvciBQb3J0Lgor ICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTEzMiw2ICsxMzgsMjEgQEAgdW5p b24gVGhyZWFkQ29udGV4dCB7CisgICAgIHVpbnQ2NF90IGNwMF9iYWR2YWRkcjsKKyAgICAgdWlu dDY0X3QgY3AwX3N0YXR1czsKKyAgICAgdWludDY0X3QgY3AwX2NhdXNlOworKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBSZWZsZWN0cyBzdHJ1Y3QgcHRfcmVn cyBpbiBhc20vcHRyYWNlLmguCisrICAgIHVpbnQ2NF90IGdwclszMl07CisrICAgIHVpbnQ2NF90 IG5pcDsKKysgICAgdWludDY0X3QgbXNyOworKyAgICB1aW50NjRfdCBvcmlnX2dwcjM7CisrICAg IHVpbnQ2NF90IGN0cjsKKysgICAgdWludDY0X3QgbG5rOworKyAgICB1aW50NjRfdCB4ZXI7Cisr ICAgIHVpbnQ2NF90IGNjcjsKKysgICAgdWludDY0X3Qgc29mdGU7CisrICAgIHVpbnQ2NF90IHRy YXA7CisrICAgIHVpbnQ2NF90IGRhcjsKKysgICAgdWludDY0X3QgZHNpc3I7CisrICAgIHVpbnQ2 NF90IHJlc3VsdDsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVf WDg2X0ZBTUlMWQorQEAgLTE0Myw2ICsxNjQsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKKyAg IHVzaW5nIE5hdGl2ZVRocmVhZENvbnRleHQgPSB1c2VyX3JlZ3M7CisgI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAvLyBObyBhcHByb3ByaWF0ZSBOYXRpdmVUaHJlYWRzQ29u dGV4dCB0eXBlIGF2YWlsYWJsZSBmb3IgTUlQUworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQorKyAgdXNpbmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9IHN0cnVjdCBwdF9yZWdz OworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZ IHx8IEFSQ0hfQ1BVX0FSTTY0CitAQCAtMjE4LDYgKzI0MSw5IEBAIHVuaW9uIEZsb2F0Q29udGV4 dCB7CisgICAgIH0gZnByZWdzWzMyXTsKKyAgICAgdWludDMyX3QgZnBjc3I7CisgICAgIHVpbnQz Ml90IGZwdV9pZDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAg Ly8gQ3Jhc2hwYWQncyBQUEMgc3VwcG9ydCBpcyA2NC1iaXQgb25seSwgc28gdGhpcworKyAgICAv LyAzMmJpdC1vbmx5IHN0cnVjdCBpcyBkZWNsYXJlZCBhcyBlbXB0eS4KKyAjZWxzZQorICNlcnJv ciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTI1Miw2ICsyNzgs MTAgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyAgICAgZG91YmxlIGZwcmVnc1szMl07CisgICAg IHVpbnQzMl90IGZwY3NyOworICAgICB1aW50MzJfdCBmcHVfaWQ7CisrI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8vIFJlZmxlY3RzIGZwcmVnc2V0X3QgaW4gc3lz L3Vjb250ZXh0LmgKKysgICAgZG91YmxlIGZwcmVnc1szMl07CisrICAgIGRvdWJsZSBmcHNjcjsK KyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQor QEAgLTI4MCw2ICszMTAsOCBAQCB1bmlvbiBGbG9hdENvbnRleHQgeworICAgc3RhdGljX2Fzc2Vy dChzaXplb2YoZjY0KSA9PSBzaXplb2YodXNlcl9mcHNpbWRfc3RydWN0KSwgIlNpemUgbWlzbWF0 Y2giKTsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorIC8vIE5vIGFwcHJv cHJpYXRlIGZsb2F0aW5nIHBvaW50IGNvbnRleHQgbmF0aXZlIHR5cGUgZm9yIGF2YWlsYWJsZSBN SVBTLgorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgc3RhdGljX2Fz c2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YoZnByZWdzZXRfdCksICJTaXplIG1pc21hdGNoIik7 CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4NgorQEAgLTI4 Nyw2ICszMTksMjYgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyBzdGF0aWNfYXNzZXJ0KHN0ZDo6 aXNfc3RhbmRhcmRfbGF5b3V0PEZsb2F0Q29udGV4dD46OnZhbHVlLAorICAgICAgICAgICAgICAg Ik5vdCBzdGFuZGFyZCBsYXlvdXQiKTsKKyAKKysvLyEgXGJyaWVmIFRoZSB2ZWN0b3IgcmVnaXN0 ZXJzIHVzZWQgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1pbHkKKyt1bmlvbiBWZWN0b3JDb250ZXh0 IHsKKysgIHN0cnVjdCB2MzJfdCB7fSB2MzI7CisrI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQorKyAgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMTYpKSkgLy8gVmVjdG9yIGNv bnRleHQgbXVzdCBiZSBkb3VibGV3b3JkIGFsaWduZWQuCisrI2VuZGlmCisrICBzdHJ1Y3QgdjY0 X3QgeworKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgLy8gUmVmbGVj dHMgdnJyZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAorKyAgICB1aW50MzJfdCB2cnJlZ3NbMzJd WzRdOworKyAgICBzdHJ1Y3QgeworKyAgICAgIHVpbnQzMl90IF9fcGFkWzNdOworKyAgICAgIHVp bnQzMl90IHZzY3Jfd29yZDsKKysgICAgfSB2c2NyOworKyAgICB1aW50MzJfdCB2cnNhdmU7Cisr ICAgIHVpbnQzMl90IF9fcGFkWzNdOworKyNlbmRpZgorKyAgfSB2NjQ7CisrfTsKKysKKyAvLyEg XGJyaWVmIEEgY29sbGVjdGlvbiBvZiBgcHRyYWNlYC1hYmxlIGluZm9ybWF0aW9uIGFib3V0IGEg dGhyZWFkLgorIHN0cnVjdCBUaHJlYWRJbmZvIHsKKyAgIFRocmVhZEluZm8oKTsKK0BAIC0yOTgs NiArMzUwLDkgQEAgc3RydWN0IFRocmVhZEluZm8geworICAgLy8hIFxicmllZiBUaGUgZmxvYXRp bmcgcG9pbnQgcmVnaXN0ZXJzIGZvciB0aGUgdGhyZWFkLgorICAgRmxvYXRDb250ZXh0IGZsb2F0 X2NvbnRleHQ7CisgCisrICAvLyEgXGJyaWVmIChPcHRpb25hbCkgVGhlIHZlY3RvciByZWdpc3Rl cnMgdXNlZCBmb3IgdGhlIHRocmVhZC4KKysgIFZlY3RvckNvbnRleHQgdmVjdG9yX2NvbnRleHQ7 CisrCisgICAvLyEgXGJyaWVmIFRoZSB0aHJlYWQtbG9jYWwgc3RvcmFnZSBhZGRyZXNzIGZvciB0 aGUgdGhyZWFkLgorICAgTGludXhWTUFkZHJlc3MgdGhyZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVz czsKKyB9OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bWlzYy9jYXB0dXJlX2NvbnRleHQuaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAoraW5kZXggZDIxYTI0ZjE5Li5hY2MzMjUzNDkgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVy ZV9jb250ZXh0LmgKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlz Yy9jYXB0dXJlX2NvbnRleHQuaAorQEAgLTY5LDYgKzY5LDcgQEAgdXNpbmcgTmF0aXZlQ1BVQ29u dGV4dCA9IHVjb250ZXh0X3Q7CisgLy8hICAgICBtYWNPUy9MaW51eC9GdWNoc2lhIHwgeDg2XzY0 ICAgICAgIHwgYCUlcmRpYAorIC8vISAgICAgTGludXggICAgICAgICAgICAgICB8IEFSTS9BUk02 NCAgICB8IGByMGAvYHgwYAorIC8vISAgICAgTGludXggICAgICAgICAgICAgICB8IE1JUFMvTUlQ UzY0ICB8IGAkYTBgCisrLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgUFBDNjQgICAgICAg IHwgYHIzYAorIC8vIQorIC8vISAgICAgQWRkaXRpb25hbGx5LCB0aGUgdmFsdWUgYExSYCBvbiBB Uk0vQVJNNjQgd2lsbCBiZSB0aGUgcmV0dXJuIGFkZHJlc3Mgb2YKKyAvLyEgICAgIHRoaXMgZnVu Y3Rpb24uCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9t aXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCitpbmRleCA1MjIxNWVlNWQuLmIz ZTRhM2VjNyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUworKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCitAQCAtMzIsNyArMzIs NyBAQAorICAgLmJhbGlnbiA0LCAweDAKKyAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTCwg JWZ1bmN0aW9uCisgICAudHlwZSBDQVBUVVJFQ09OVEVYVF9TWU1CT0wyLCAlZnVuY3Rpb24KKy0j ZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorKyNlbGlmIGRlZmluZWQoX19taXBzX18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKyAgIC5iYWxpZ24gNCwgMHgwCisgI2VuZGlmCisgCitAQCAtNDIz LDQgKzQyMywyMTQgQEAgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MMjoKKyAgIGpyICRyYQorIAorICAg LnNldCBhdAorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFN0b3JlIHIwLXIz MQorKyAgc3RkIDAsIDB4ZTgoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzBd CisrICBzdGQgMSwgMHhmMCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMV0K KysgIHN0ZCAyLCAweGY4KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syXQor KyAgLy8gbm90ZSB0aGF0IHIzJ3Mgb3JpZ2luYWwgdmFsdWUgd2FzIGxvc3QKKysgIHN0ZCAzLCAw eDEwMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szXQorKyAgc3RkIDQsIDB4 MTA4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzRdCisrICBzdGQgNSwgMHgx MTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNV0KKysgIHN0ZCA2LCAweDEx OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s2XQorKyAgc3RkIDcsIDB4MTIw KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzddCisrICBzdGQgOCwgMHgxMjgo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbOF0KKysgIHN0ZCA5LCAweDEzMCgz KSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s5XQorKyAgc3RkIDEwLCAweDEzOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEwXQorKyAgc3RkIDExLCAweDE0MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzExXQorKyAgc3RkIDEyLCAweDE0OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEyXQorKyAgc3RkIDEzLCAweDE1MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEzXQorKyAgc3RkIDE0LCAweDE1OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE0XQorKyAgc3RkIDE1LCAweDE2MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE1XQorKyAgc3RkIDE2LCAweDE2OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE2XQorKyAgc3RkIDE3LCAweDE3MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE3XQorKyAgc3RkIDE4LCAweDE3OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE4XQorKyAgc3RkIDE5LCAweDE4MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE5XQorKyAgc3RkIDIwLCAweDE4OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIwXQorKyAgc3RkIDIxLCAweDE5MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIxXQorKyAgc3RkIDIyLCAweDE5OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIyXQorKyAgc3RkIDIzLCAweDFhMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIzXQorKyAgc3RkIDI0LCAweDFhOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI0XQorKyAgc3RkIDI1LCAweDFiMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI1XQorKyAgc3RkIDI2LCAweDFiOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI2XQorKyAgc3RkIDI3LCAweDFjMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI3XQorKyAgc3RkIDI4LCAweDFjOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI4XQorKyAgc3RkIDI5LCAweDFkMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI5XQorKyAgc3RkIDMwLCAweDFkOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMwXQorKyAgc3RkIDMxLCAweDFlMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMxXQorKworKyAgLy8gRm9yIE5JUCwg d2UgY2FuIHVzZSB0aGUgdmFsdWUgaW4gdGhlIGxpbmsgcmVnaXN0ZXIKKysgIG1mbHIgMAorKyAg c3RkIDAsIDB4MWU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXQor KworKyAgLy8gQ1RSCisrICBtZmN0ciAwCisrICBzdGQgMCwgMHgyMDAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdCisrCisrICAvLyBGb3IgTE5LLCB3ZSdsbCB1c2Ug dGhlIGNhbGxlcidzIExSIHNhdmUgYXJlYSAoMiBzdGFjayBmcmFtZXMgdXApLgorKyAgLy8gcjQg Y2FuIGJlIHVzZWQgYXMgYSBzY3JhdGNoIHJlZ2lzdGVyIHNpbmNlIGl0IGhhcyBhbHJlYWR5IGJl ZW4gc2F2ZWQuCisrICBsZCA0LCAwKDEpCisrICBsZCA0LCAxNig0KQorKyAgc3RkIDQsIDB4MjA4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXQorKworKyAgLy8gWEVS CisrICBtZnhlciAwCisrICBzdGQgMCwgMHgyMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9YRVJdCisrCisrICAvLyBDQ1IKKysgIG1mY3IgMAorKyAgc3RkIDAsIDB4MjE4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXQorKworKyAgLy8gTVNS LCBvcmlnX3IzLCBNUSwgVFJBUCwgREFSLCBEU0lTUiwgUkVTVUxULCBEU0NSLAorKyAgLy8gbm90 IHVzZWQgb3Igbm90IHJlbGV2YW50LCAgemVybyB0aGVtIG91dC4KKysgIGxpIDQsIDAKKysgIHN0 ZCA0LCAweDFmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl0KKysg IHN0ZCA0LCAweDFmOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX09SSUdf UjNdCisrICBzdGQgNCwgMHgyMjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9NUV0KKysgIHN0ZCA0LCAweDIyOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz W1BUX1RSQVBdCisrICBzdGQgNCwgMHgyMzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9EQVJdCisrICBzdGQgNCwgMHgyMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9EU0lTUl0KKysgIHN0ZCA0LCAweDI0MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX1JFU1VMVF0KKysgIHN0ZCA0LCAweDI0OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTQ1JdCisrCisrICAvLyBVcGRhdGUgY29udGV4dC0+dWNf bWNvbnRleHQucmVncyB0byBwb2ludCB0byBncF9yZWdzCisrICBhZGRpIDAsIDMsIDB4ZTgKKysg IHN0ZCAwLCAweGUwKDMpCisrCisrICAvLyBTYXZlIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyAw LTMxCisrICBzdGZkIDAsIDB4MjY4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzBdCisrICBzdGZkIDEsIDB4MjcwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzFdCisrICBzdGZkIDIsIDB4Mjc4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzJdCisrICBzdGZkIDMsIDB4MjgwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzNdCisrICBzdGZkIDQsIDB4Mjg4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzRdCisrICBzdGZkIDUsIDB4MjkwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzVdCisrICBzdGZkIDYsIDB4Mjk4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzZdCisrICBzdGZkIDcsIDB4MmEwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzddCisrICBzdGZkIDgsIDB4MmE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzhdCisrICBzdGZkIDksIDB4MmIwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzldCisrICBzdGZkIDEwLCAweDJiOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzEwXQorKyAgc3RmZCAxMSwgMHgyYzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1sxMV0KKysgIHN0ZmQgMTIsIDB4MmM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMTJdCisrICBzdGZkIDEzLCAweDJkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9y ZWdzWzEzXQorKyAgc3RmZCAxNCwgMHgyZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVnc1sxNF0KKysgIHN0ZmQgMTUsIDB4MmUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3NbMTVdCisrICBzdGZkIDE2LCAweDJlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzWzE2XQorKyAgc3RmZCAxNywgMHgyZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1sxN10KKysgIHN0ZmQgMTgsIDB4MmY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMThdCisrICBzdGZkIDE5LCAweDMwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzE5XQorKyAgc3RmZCAyMCwgMHgzMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1syMF0KKysgIHN0ZmQgMjEsIDB4MzEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMjFdCisrICBzdGZkIDIyLCAweDMxOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzIyXQorKyAgc3RmZCAyMywgMHgzMjAoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1syM10KKysgIHN0ZmQgMjQsIDB4MzI4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMjRdCisrICBzdGZkIDI1LCAweDMzMCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzI1XQorKyAgc3RmZCAyNiwgMHgzMzgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1syNl0KKysgIHN0ZmQgMjcsIDB4MzQwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMjddCisrICBzdGZkIDI4LCAweDM0OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzI4XQorKyAgc3RmZCAyOSwgMHgzNTAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1syOV0KKysgIHN0ZmQgMzAsIDB4MzU4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMzBdCisrICBzdGZkIDMxLCAweDM2MCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzMxXQorKworKyAgLy8gRlBTQ1IKKysgIG1mZnMgMAorKyAg c3RmZCAwLCAweDM2OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMyXQorKwor KyAgLy8gU2F2ZSBWTVggVmVjdG9yIHJlZ2lzdGVycworKyAgLy8gVXBkYXRlIHI0IHRvIGNvbnRh aW4gdGhlIGJhc2UgYWRkcmVzcyBvZiB2bXhfcmVzZXJ2ZQorKyAgYWRkaSA0LCAzLCAweDM3OAor KyAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgcXVhZHdvcmQgYWxpZ25lZAorKyAgYW5kaS4gNSwgNCwg MHhGCisrICBiZXEgMWYgLy8gTm8gYWxpZ25tZW50IGlzIG5lY2Vzc2FyeQorKyAgLy8gQWRkcmVz cyBpcyBkb3VibGV3b3JkIGFsaWduZWQgYW5kIG5vdCBxdWFkd29yZCBhbGlnbmVkLCBhZGQgOAor KyAgYWRkaSA0LCA0LCA4CisrCisrMToKKysgIC8vIFN0b3JlIFZNWCByZWdpc3RlcnMgMC0zMQor KyAgLy8gcjQgd2lsbCBjb250YWluIHRoZSBiYXNlIGFkZHJlc3MKKysgIC8vIHI1IHdpbGwgY29u dGFpbiB0aGUgaW5kZXgKKysgIGxpIDUsIDAKKysgIHN0dnggMCwgNCwgNSAgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAwXQorKyAgYWRkaSA1LCA1LCAxNgor KyAgc3R2eCAxLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDFdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIsIDQsIDUgICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMl0KKysgIGFkZGkgNSwgNSwgMTYK KysgIHN0dnggMywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAzXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA0LCA0LCA1ICAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDRdCisrICBhZGRpIDUsIDUsIDE2 CisrICBzdHZ4IDUsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgNV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggNiwgNCwgNSAgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA2XQorKyAgYWRkaSA1LCA1LCAx NgorKyAgc3R2eCA3LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDddCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDgsIDQsIDUgICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgOF0KKysgIGFkZGkgNSwgNSwg MTYKKysgIHN0dnggOSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyA5XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxMCwgNCwgNSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEwXQorKyAgYWRkaSA1LCA1 LCAxNgorKyAgc3R2eCAxMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDExXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxMiwgNCwgNSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEyXQorKyAgYWRkaSA1 LCA1LCAxNgorKyAgc3R2eCAxMywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDEzXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxNCwgNCwgNSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE0XQorKyAgYWRk aSA1LCA1LCAxNgorKyAgc3R2eCAxNSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDE1XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxNiwgNCwg NSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE2XQorKyAg YWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxNywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDE3XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxOCwg NCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE4XQor KyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxOSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE5XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAy MCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIw XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIxXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2 eCAyMiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDIyXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyMywgNCwgNSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIzXQorKyAgYWRkaSA1LCA1LCAxNgorKyAg c3R2eCAyNCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDI0XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyNSwgNCwgNSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI1XQorKyAgYWRkaSA1LCA1LCAxNgor KyAgc3R2eCAyNiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDI2XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyNywgNCwgNSAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI3XQorKyAgYWRkaSA1LCA1LCAx NgorKyAgc3R2eCAyOCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDI4XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyOSwgNCwgNSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI5XQorKyAgYWRkaSA1LCA1 LCAxNgorKyAgc3R2eCAzMCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDMwXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAzMSwgNCwgNSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDMxXQorKyAgYWRkaSA1 LCA1LCAxNgorKworKyAgLy8gVlNDUgorKyAgbWZ2c2NyIDAKKysgIHN0dnggMCwgNCwgNQorKyAg YWRkaSA1LCA1LCAxNgorKworKyAgLy8gVlJTQVZFCisrICBtZnZyc2F2ZSAwCisrICBzdHd4IDAs IDQsIDUKKysKKysgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC52X3JlZ3MgdG8gcG9p bnQgdG8gdm14X3Jlc2VydmUgKyBhbGlnbm1lbnQuCisrICBzdGQgNCwgMHgzNzAoMykKKysKKysg IC8vIFplcm8gb3V0IGFsbCB1bnVzZWQgZmllbGRzCisrICBsaSA0LCAwCisrICBzdGQgNCwgMHhj OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5zaWduYWwKKysgIHN0ZCA0LCAweGQwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmhhbmRsZXIKKysgIHN0ZCA0LCAweGQ4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0Lm9sZG1hc2sKKysKKysgIGJscgorICNlbmRpZiAgLy8gX19pMzg2X18K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0X3Rlc3QuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKK2luZGV4IGNmMjNjMmRlZi4uNWYyNjRiYzky IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2Nh cHR1cmVfY29udGV4dF90ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKK0BAIC01Nyw3ICs1Nyw3IEBAIHZv aWQgVGVzdENhcHR1cmVDb250ZXh0KCkgeworICAgdWludHB0cl90IHBjID0gUHJvZ3JhbUNvdW50 ZXJGcm9tQ29udGV4dChjb250ZXh0XzEpOworIAorICNpZiAhZGVmaW5lZChBRERSRVNTX1NBTklU SVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIFwKKy0gICAgIWRlZmlu ZWQoTUVNT1JZX1NBTklUSVpFUikKKysgICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikgJiYg IWRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorICAgLy8gU2FuaXRpemVycyBjYW4gY2F1 c2UgZW5vdWdoIGNvZGUgYmxvYXQgdGhhdCB0aGUg4oCcbmVhcmJ54oCdIGNoZWNrIHdvdWxkCisg ICAvLyBsaWtlbHkgZmFpbC4KKyAgIGNvbnN0IHVpbnRwdHJfdCBrUmVmZXJlbmNlUEMgPQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJl X2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKK2luZGV4IDMw YTJhYjIxZC4uNjA1MDlmMjFkIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKKysrKyBi L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRf dGVzdF91dGlsX2xpbnV4LmNjCitAQCAtMzUsNiArMzUsOCBAQCB2b2lkIFNhbml0eUNoZWNrQ29u dGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7CisgICBFWFBFQ1RfRVEoY29u dGV4dC51Y19tY29udGV4dC5yZWdzWzBdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29u dGV4dCkpOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICBFWFBFQ1Rf RVEoY29udGV4dC51Y19tY29udGV4dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJf dD4oJmNvbnRleHQpKTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysg IEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbM10sIEZyb21Qb2ludGVyQ2Fz dDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7CisgI2VuZGlmCisgfQorIAorQEAgLTQ5LDYgKzUxLDgg QEAgdWludHB0cl90IFByb2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29u dGV4dCYgY29udGV4dCkgeworICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7CisgI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBjb250ZXh0LnVjX21j b250ZXh0LnBjOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgcmV0 dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworICNlbmRpZgorIH0KKyAK K0BAIC02Myw2ICs2Nyw4IEBAIHVpbnRwdHJfdCBTdGFja1BvaW50ZXJGcm9tQ29udGV4dChjb25z dCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7CisgICByZXR1cm4gY29udGV4dC51Y19tY29u dGV4dC5zcDsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgcmV0dXJu IGNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbMjldOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQorKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1sxXTsK KyAjZW5kaWYKKyB9CisgCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYworaW5kZXggNTRjYzJmMTlmLi4yOThiNWM5 OTMgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4 L3NpZ25hbHNfdGVzdC5jYworKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRp bC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MKK0BAIC00Niw5ICs0Niw5IEBAIGJvb2wgQ2FuQ2F1c2VT aWduYWwoaW50IHNpZykgeworICAgcmV0dXJuIHNpZyA9PSBTSUdBQlJUIHx8CisgICAgICAgICAg c2lnID09IFNJR0FMUk0gfHwKKyAgICAgICAgICBzaWcgPT0gU0lHQlVTIHx8CistI2lmICFkZWZp bmVkKEFSQ0hfQ1BVX0FSTTY0KQorKyNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRl ZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgICAgICAgICAgc2lnID09IFNJR0ZQRSB8fAorLSNlbmRp ZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCisrI2VuZGlmICAvLyAhZGVmaW5lZChBUkNI X0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgI2lmIGRlZmluZWQoQVJD SF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKKyAgICAgICAgICBz aWcgPT0gU0lHSUxMIHx8CisgI2VuZGlmICAvLyBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkp IHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCitAQCAtMTE3LDkgKzExNywxMSBAQCB2b2lkIENh dXNlU2lnbmFsKGludCBzaWcpIHsKKyAgICAgICBicmVhazsKKyAgICAgfQorIAorLSNpZiAhZGVm aW5lZChBUkNIX0NQVV9BUk02NCkKKysjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorICAgICAvLyBBUk02NCBoYXMgaGFyZHdhcmUgaW50ZWdl ciBkaXZpc2lvbiBpbnN0cnVjdGlvbnMgdGhhdCBkb27igJl0IGdlbmVyYXRlIGEKKyAgICAgLy8g dHJhcCBmb3IgZGl2aWRlLWJ5LXplcm8sIHNvIHRoaXMgZG9lc27igJl0IHByb2R1Y2UgU0lHRlBF LgorKyAgICAvLworKyAgICAvLyBQUEM2NCBmaXhlZC1wb2ludCBkaXZpc2lvbiBieSB6ZXJvIGFs c28gZG9lc24ndCBwcm9kdWNlIGEgU0lHRlBFLgorICAgICBjYXNlIFNJR0ZQRTogeworICAgICAg IC8vIE9wdGltaXphdGlvbiBtYWtlcyB0aGlzIHRyaWNreSwgc28gZ2V0IHplcm8gZnJvbSBhIHN5 c3RlbSBjYWxsIGxpa2VseQorICAgICAgIC8vIHRvIHN1Y2NlZWQsIGFuZCB0cnkgdG8gZG8gc29t ZXRoaW5nIHdpdGggdGhlIHJlc3VsdC4KK0BAIC0xMzcsNyArMTM5LDcgQEAgdm9pZCBDYXVzZVNp Z25hbChpbnQgc2lnKSB7CisgICAgICAgZnN0YXQocXVvdGllbnQsICZzdGF0X2J1Zik7CisgICAg ICAgYnJlYWs7CisgICAgIH0KKy0jZW5kaWYgIC8vIEFSQ0hfQ1BVX0FSTTY0CisrI2VuZGlmICAv LyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisg CisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9B Uk1FTCkKKyAgICAgY2FzZSBTSUdJTEw6IHsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9kYXYx ZC9CVUlMRC5nbiBiL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCitpbmRleCA2YjQ1NjZmYzMu LmMwN2Y3MzJhZCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCisrKysg Yi90aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgorQEAgLTE4NCw2ICsxODQsOCBAQCBzdGF0aWNf bGlicmFyeSgiZGF2MWRfOGJpdCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291 cmNlcworICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJj ZXMgKz0gYXJtX3RlbXBsYXRlX3NvdXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0g InBwYzY0IikgeworKyAgICBzb3VyY2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0K KyAKKyAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCitAQCAtMjEyLDYgKzIxNCw4IEBAIHN0YXRpY19s aWJyYXJ5KCJkYXYxZF8xMGJpdCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291 cmNlcworICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJj ZXMgKz0gYXJtX3RlbXBsYXRlX3NvdXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0g InBwYzY0IikgeworKyAgICBzb3VyY2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0K KyAKKyAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCitAQCAtMjYzLDYgKzI2NywyMSBAQCBpZiAoY3Vy cmVudF9jcHUgPT0gIng4NiIgfHwgY3VycmVudF9jcHUgPT0gIng2NCIpIHsKKyAgICAgICBkZWZp bmVzID0gWyAiUFJFRklYIiBdCisgICAgIH0KKyAKKysgICAgY2ZsYWdzID0gZGF2MWRfY29wdHMK KysgIH0KKyt9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgIHN0YXRpY19s aWJyYXJ5KCJkYXYxZF9wcGMiKSB7CisrICAgIHNvdXJjZXMgPSBbCisrICAgICAgImxpYmRhdjFk L3NyYy9wcGMvY3B1LmMiLAorKyAgICAgICJsaWJkYXYxZC9zcmMvcHBjL2NwdS5oIiwKKysgICAg XQorKworKyAgICBjb25maWdzIC09IFsgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOmNocm9taXVt X2NvZGUiIF0KKysgICAgY29uZmlncyArPSBbCisrICAgICAgIi8vYnVpbGQvY29uZmlnL2NvbXBp bGVyOm5vX2Nocm9taXVtX2NvZGUiLAorKyAgICAgICI6ZGF2MWRfY29uZmlnIiwKKysgICAgXQor KworICAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cworICAgfQorIH0KK0BAIC0yOTIsNSArMzExLDcg QEAgc3RhdGljX2xpYnJhcnkoImRhdjFkIikgeworICAgICB9CisgICB9IGVsc2UgaWYgKGN1cnJl bnRfY3B1ID09ICJhcm0iIHx8IGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKKyAgICAgZGVwcyAr PSBbICI6ZGF2MWRfYXJtIiBdCisrICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIp IHsKKysgICAgZGVwcyArPSBbICI6ZGF2MWRfcHBjIiBdCisgICB9CisgfQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaCBiL3RoaXJkX3Bh cnR5L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwMC4uOWZiYmY3NWNjCistLS0gL2Rldi9udWxsCisrKysgYi90aGly ZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmgKK0BAIC0wLDAgKzEsMzkg QEAKKysvKgorKyAqIEF1dG9nZW5lcmF0ZWQgYnkgdGhlIE1lc29uIGJ1aWxkIHN5c3RlbS4KKysg KiBEbyBub3QgZWRpdCwgeW91ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4KKysgKi8KKysKKysjcHJh Z21hIG9uY2UKKysKKysjZGVmaW5lIEFSQ0hfQUFSQ0g2NCAwCisrCisrI2RlZmluZSBBUkNIX0FS TSAwCisrCisrI2RlZmluZSBBUkNIX1BQQzY0TEUgMQorKworKyNkZWZpbmUgQVJDSF9YODYgMAor KworKyNkZWZpbmUgQVJDSF9YODZfMzIgMAorKworKyNkZWZpbmUgQVJDSF9YODZfNjQgMAorKwor KyNkZWZpbmUgQ09ORklHXzE2QlBDIDEKKysKKysjZGVmaW5lIENPTkZJR184QlBDIDEKKysKKysv LyAjZGVmaW5lIENPTkZJR19MT0cgMSAtLSBMb2dnaW5nIGlzIGNvbnRyb2xsZWQgYnkgQ2hyb21p dW0KKysKKysjZGVmaW5lIEVORElBTk5FU1NfQklHIDAKKysKKysjZGVmaW5lIEhBVkVfQVNNIDEK KysKKysjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxCisrCisrI2RlZmluZSBIQVZFX0RMU1lN IDEKKysKKysjZGVmaW5lIEhBVkVfR0VUQVVYVkFMIDEKKysKKysjZGVmaW5lIEhBVkVfUE9TSVhf TUVNQUxJR04gMQorKworKyNkZWZpbmUgSEFWRV9VTklTVERfSCAxCisrCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaSBiL3RoaXJkX3BhcnR5L2RhdjFk L2RhdjFkX2dlbmVyYXRlZC5nbmkKK2luZGV4IGM1OWNiMDgyMS4uMzA2MDI4NGE4IDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQorKysrIGIvdGhpcmRf cGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQorQEAgLTgyLDYgKzgyLDExIEBAIGFybV90 ZW1wbGF0ZV9zb3VyY2VzID0gWworICAgImxpYmRhdjFkL3NyYy9hcm0vbWNfaW5pdF90bXBsLmMi LAorIF0KKyAKKytwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzID0gWworKyAgImxpYmRhdjFkL3NyYy9w cGMvY2RlZl9pbml0X3RtcGwuYyIsCisrICAibGliZGF2MWQvc3JjL3BwYy9sb29wcmVzdG9yYXRp b25faW5pdF90bXBsLmMiLAorK10KKysKKyB0ZW1wbGF0ZV9zb3VyY2VzID0gWworICAgImxpYmRh djFkL3NyYy9jZGVmX2FwcGx5X3RtcGwuYyIsCisgICAibGliZGF2MWQvc3JjL2NkZWZfdG1wbC5j IiwKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkgYi90 aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKK2luZGV4IDlhYjVlMDBiOC4uYWQz ZmVmZmVlIDEwMDc1NQorLS0tIGEvdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVfc291cmNlLnB5 CTIwMjEtMDQtMTUgMTM6MTE6MTAuNDg5NTc5NDkwIC0wNDAwCisrKysgYi90aGlyZF9wYXJ0eS9k YXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkJMjAyMS0wNC0xNSAxMzoxOTowOC4yMjk5MTM4OTIgLTA0 MDAKK0BAIC01Nyw2ICs1Nyw4IEBACisgICBfV3JpdGVBcnJheShmZCwgImFybTY0X2FzbV9zb3Vy Y2VzIiwgX0dsb2IoImxpYmRhdjFkL3NyYy9hcm0vNjQvKi5TIikpCisgICBfV3JpdGVBcnJheShm ZCwgImFybV90ZW1wbGF0ZV9zb3VyY2VzIiwgX0dsb2IoImxpYmRhdjFkL3NyYy9hcm0vKl90bXBs LmMiKSkKKyAKKysgIF9Xcml0ZUFycmF5KGZkLCAicHBjNjRfdGVtcGxhdGVfc291cmNlcyIsIF9H bG9iKCJsaWJkYXYxZC9zcmMvcHBjLypfdG1wbC5jIikpCisrCisgICB0ZW1wbGF0ZV9zb3VyY2Vz ID0gX0dsb2IoImxpYmRhdjFkL3NyYy8qX3RtcGwuYyIpCisgICBfV3JpdGVBcnJheShmZCwgInRl bXBsYXRlX3NvdXJjZXMiLCB0ZW1wbGF0ZV9zb3VyY2VzKQorIAorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaCBiL3RoaXJkX3BhcnR5L2RhdjFk L2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAoraW5kZXggMGI0YmQ3MmYwLi5hMGNhYTVlNzEgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKKysr KyBiL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAorQEAgLTUxLDQg KzUxLDE5IEBACisgI2RlZmluZSB1MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfbWVyZ2VsKCh1 MTZ4OCkgdiwgdmVjX3NwbGF0X3UxNigwKSkpCisgI2RlZmluZSBpMTZsX3RvX2kzMih2KSAoKGkz Mng0KSB2ZWNfdW5wYWNrbCgoaTE2eDgpdikpCisgCisrI2lmIGRlZmluZWQoX19jbGFuZ19fKQor KyN1bmRlZiB2ZWNfc3BsYXRzCisrI2RlZmluZSB2ZWNfc3BsYXRzKE4pICAgICAgICAgICAgICAg ICAgICAgXAorKyAgICBfR2VuZXJpYygoTiksICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysg ICAgICAgIHVuc2lnbmVkIGNoYXI6ICAgICAgKCh1OHgxNikoTikpLCBcCisrICAgICAgICBzaWdu ZWQgY2hhcjogICAgICAgICgoaTh4MTYpKE4pKSwgXAorKyAgICAgICAgdW5zaWduZWQgc2hvcnQ6 ICAgICAoKHUxNng4KShOKSksIFwKKysgICAgICAgIHNpZ25lZCBzaG9ydDogICAgICAgKChpMTZ4 OCkoTikpLCBcCisrICAgICAgICB1bnNpZ25lZCBpbnQ6ICAgICAgICgodTMyeDQpKE4pKSwgXAor KyAgICAgICAgc2lnbmVkIGludDogICAgICAgICAoKGkzMng0KShOKSksIFwKKysgICAgICAgIHVu c2lnbmVkIGxvbmcgbG9uZzogKCh1NjR4MikoTikpLCBcCisrICAgICAgICBzaWduZWQgbG9uZyBs b25nOiAgICgoaTY0eDIpKE4pKSAgXAorKyAgICApCisrI2VuZGlmCisrCisgI2VuZGlmIC8qIERB VjFEX1NSQ19QUENfVFlQRVNfSCAqLworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2VpZ2VuMy9C VUlMRC5nbiBiL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgoraW5kZXggMGQ0ZTE4NC4uZjJj ZTQ4NCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgorKysrIGIvdGhp cmRfcGFydHkvZWlnZW4zL0JVSUxELmduCitAQCAtMjIsNCArMjIsOCBAQCBjb25maWcoImVpZ2Vu X2luY2x1ZGVzIikgeworICAgICAjIGZvciB0aGlzIGNvbXBvbmVudCBvbiBXaW5kb3dzIG9uIEFy bSBkdWUgdG8gY29tcGlsYXRpb24gZXJyb3JzLgorICAgICBkZWZpbmVzICs9IFsgIkVJR0VOX0RP TlRfVkVDVE9SSVpFIiBdCisgICB9CisrCisrICBpZiAodGFyZ2V0X2NwdSA9PSAicHBjNjQiKSB7 CisrICAgIGRlZmluZXMgKz0gWyAiRUlHRU5fRE9OVF9WRUNUT1JJWkUiIF0KKysgIH0KKyB9CisK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9s aWJhb20vQlVJTEQuZ24KK2luZGV4IDliMDY1YmQuLmRmM2FmMDIgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KKysrKyBiL3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5n bgorQEAgLTM2LDYgKzM2LDggQEAgaWYgKGVuYWJsZV9saWJhb20pIHsKKyAgICAgfSBlbHNlIHsK KyAgICAgICBjcHVfYXJjaF9mdWxsID0gImFybSIKKyAgICAgfQorKyAgfSBlbHNlIGlmIChjdXJy ZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJpYyIKKyAg IH0gZWxzZSB7CisgICAgIGNwdV9hcmNoX2Z1bGwgPSBjdXJyZW50X2NwdQorICAgfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2xpYmdhdjEvb3B0aW9ucy5nbmkgYi90aGlyZF9wYXJ0eS9saWJn YXYxL29wdGlvbnMuZ25pCitpbmRleCAxMWFmODAxLi40YjEzZDA1IDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvbGliZ2F2MS9vcHRpb25zLmduaQorKysrIGIvdGhpcmRfcGFydHkvbGliZ2F2MS9v cHRpb25zLmduaQorQEAgLTEyLDUgKzEyLDUgQEAgZGVjbGFyZV9hcmdzKCkgeworICAgICAgIGlz X2Nocm9tZW9zX2FzaCAmJiAodGFyZ2V0X2NwdSA9PSAiYXJtIiB8fCB0YXJnZXRfY3B1ID09ICJh cm02NCIpCisgICB1c2VfbGliZ2F2MV9wYXJzZXIgPQorICAgICAgIChpc19jaHJvbWVvcyB8fCBp c19saW51eCB8fCBpc193aW4pICYmCistICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFy Z2V0X2NwdSA9PSAieDY0IiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIpCisrICAgICAgKHRhcmdl dF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fCB0YXJnZXRfY3B1ID09ICJh cm02NCIgfHwgdGFyZ2V0X2NwdSA9PSAicHBjNjQiKQorIH0KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmggYi90aGlyZF9wYXJ0eS9sc3MvbGludXhf c3lzY2FsbF9zdXBwb3J0LmgKK2luZGV4IGU0YWMyMjY0NC4uMWM1NzAxNWRiIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCisrKysgYi90aGlyZF9w YXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKK0BAIC0zOTQ3LDcgKzM5NDcsNyBAQCBz dHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgICAgICAgTFNTX1JFRygyLCBidWYpOworICAgICAgIExT U19CT0RZKHZvaWQqLCBtbWFwMiwgIjAiKF9fcjIpKTsKKyAgICAgfQorLSNlbHNlCisrI2VsaWYg IWRlZmluZWQoX19wb3dlcnBjNjRfXykgLyogcHBjNjQgZG9lc24ndCBoYXZlIG1tYXAyICovCisg ICAgICNkZWZpbmUgX19OUl9fbW1hcDIgX19OUl9tbWFwMgorICAgICBMU1NfSU5MSU5FIF9zeXNj YWxsNih2b2lkKiwgX21tYXAyLCAgICAgICAgICAgIHZvaWQqLCBzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplX3QsICAgICAgICAgICAgICAgICAgIGwsIGludCwgICAgICAgICAgICAg ICBwLAorQEAgLTQwNTgsNyArNDA1OCw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKKyAgICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgZGVmaW5lZChfX0FSTV9BUkNIXzNfXykgfHwgZGVm aW5lZChfX0FSTV9FQUJJX18pIHx8ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKGRlZmlu ZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJMzIpIHx8ICAgICAgICAg ICAgICAgICAgIFwKKy0gICAgICBkZWZpbmVkKF9fUFBDX18pIHx8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAoZGVmaW5lZChfX1BQ Q19fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIChkZWZpbmVkKF9fczM5MF9f KSAmJiAhZGVmaW5lZChfX3MzOTB4X18pKQorICAgICAvKiBPbiB0aGVzZSBhcmNoaXRlY3R1cmVz LCBpbXBsZW1lbnQgbW1hcCgpIHdpdGggbW1hcDIoKS4gKi8KKyAgICAgTFNTX0lOTElORSB2b2lk KiBMU1NfTkFNRShtbWFwKSh2b2lkICpzLCBzaXplX3QgbCwgaW50IHAsIGludCBmLCBpbnQgZCwK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9wZGZpdW0vdGhpcmRfcGFydHkvbGlicG5nMTYvcG5n cHJpdi5oIGIvdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYu aAoraW5kZXggNTgzYzI2Zi4uZTAzZDY5NyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3BkZml1 bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmgKKysrKyBiL3RoaXJkX3BhcnR5L3BkZml1 bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmgKK0BAIC0xOTYsMTEgKzE5Niw3IEBACisg I2VuZGlmCisgCisgI2lmbmRlZiBQTkdfUE9XRVJQQ19WU1hfT1BUCistIyAgaWYgZGVmaW5lZChf X1BQQzY0X18pICYmIGRlZmluZWQoX19BTFRJVkVDX18pICYmIGRlZmluZWQoX19WU1hfXykKKy0j ICAgICBkZWZpbmUgUE5HX1BPV0VSUENfVlNYX09QVCAyCistIyAgZWxzZQorLSMgICAgIGRlZmlu ZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDAKKy0jICBlbmRpZgorKyMgIGRlZmluZSBQTkdfUE9XRVJQ Q19WU1hfT1BUIDAKKyAjZW5kaWYKKyAKKyAjaWZuZGVmIFBOR19JTlRFTF9TU0VfT1BUCitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMgYi90aGlyZF9wYXJ0eS9wZmZm dC9zcmMvcGZmZnQuYworaW5kZXggYmRhYzRkNzg0Li41MWUwZjJjYWMgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYworKysrIGIvdGhpcmRfcGFydHkvcGZmZnQvc3Jj L3BmZmZ0LmMKK0BAIC0xMDAsNiArMTAwLDcgQEAKKyAgICBBbHRpdmVjIHN1cHBvcnQgbWFjcm9z IAorICovCisgI2lmICFkZWZpbmVkKFBGRkZUX1NJTURfRElTQUJMRSkgJiYgKGRlZmluZWQoX19w cGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pKQorKyNpbmNsdWRlIDxhbHRpdmVjLmg+CisgdHlw ZWRlZiB2ZWN0b3IgZmxvYXQgdjRzZjsKKyAjICBkZWZpbmUgU0lNRF9TWiA0CisgIyAgZGVmaW5l IFZaRVJPKCkgKCh2ZWN0b3IgZmxvYXQpIHZlY19zcGxhdF91OCgwKSkKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwIGIvdGhpcmRfcGFydHkvc2tp YS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNwcAoraW5kZXggZWMzZTU2OTY0Li40Y2Y4OTk5YTIgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCisrKysg Yi90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCitAQCAtMjM0LDcgKzIz NCwxMiBAQCBTdHJpbmcgdG9fc3RyaW5nKGRvdWJsZSB2YWx1ZSkgeworICAgICBpZiAobmVlZHNE b3RaZXJvKSB7CisgICAgICAgICBidWZmZXIgPDwgIi4wIjsKKyAgICAgfQorLSAgICByZXR1cm4g U3RyaW5nKGJ1ZmZlci5zdHIoKS5jX3N0cigpKTsKKysKKysgICAgc3RkOjpzdHJpbmcgcmV0KGJ1 ZmZlci5zdHIoKSk7CisrICAgIGlmIChzaWduYml0KHZhbHVlKSAmJiByZXRbMF0gPT0gJy4nKSB7 CisrICAgICAgICByZXRbMF0gPSAnLSc7CisrICAgIH0KKysgICAgcmV0dXJuIFN0cmluZyhyZXQu Y19zdHIoKSk7CisgfQorIAorIGJvb2wgc3RvZChjb25zdCBTdHJpbmdGcmFnbWVudCYgcywgU0tT TF9GTE9BVCogdmFsdWUpIHsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2Ft YWxnYW1hdGlvbi9zcWxpdGUzLmMgYi90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlv bi9zcWxpdGUzLmMKK2luZGV4IDZiNGE3ODk5ZC4uYjhjN2ZlNDE0IDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5jCisrKysgYi90aGlyZF9w YXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKK0BAIC0xNDQ3NCw3ICsxNDQ3 NCw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7CisgIyBpZiBkZWZpbmVkKGkzODYpICAg ICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwK KyAgICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRl ZmluZWQoX01fWDY0KSAgfHwgICAgXAorICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmlu ZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCistICAgICBkZWZp bmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FS TTY0KQorKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykg fHwgZGVmaW5lZChfTV9BUk02NCkgfHwgICBcCisrICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p ICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKKyAjICAgZGVm aW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIzNAorICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAg fHwgZGVmaW5lZChfX3BwY19fKSB8fCBcCisgICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBk ZWZpbmVkKF9fQUFSQ0g2NEVCX18pCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvc3FsaXRlL3Ny Yy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1h bGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKK2luZGV4IGQzMGM5YjdkZS4uY2Y3NWE2OWQ5IDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMu YworKysrIGIvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMu YworQEAgLTE0NDg3LDcgKzE0NDg3LDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKKyAj IGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmlu ZWQoX01fSVg4NikgfHwgICAgXAorICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQo X194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCisgICAgICBkZWZpbmVk KF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAg IHx8ICAgIFwKKy0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVM X18pIHx8IGRlZmluZWQoX01fQVJNNjQpCisrICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVm aW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKKysgICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExF X0VORElBTl9fKQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBlbGlm IGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAgZGVm aW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jIGIvdGhpcmRfcGFydHkvc3Fs aXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYworaW5kZXggZjViNTdhNWUyLi44MGEyZDBhZDggMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCisrKysg Yi90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCitAQCAtNDUwLDcgKzQ1 MCw3IEBAIHN0cnVjdCBSdHJlZU1hdGNoQXJnIHsKKyAjaWYgZGVmaW5lZChpMzg2KSAgICAgfHwg ZGVmaW5lZChfX2kzODZfXykgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKKyAgICAgZGVm aW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9NX1g2NCkg IHx8ICAgIFwKKyAgICAgZGVmaW5lZChfTV9BTUQ2NCkgfHwgZGVmaW5lZChfTV9BUk0pICAgICB8 fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAgZGVmaW5lZChfX2FybV9fKQorKyAgICBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRF Ul9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMgZGVmaW5lIFNRTElURV9CWVRFT1JE RVIgICAgMTIzNAorICNlbGlmIGRlZmluZWQoc3BhcmMpICAgIHx8IGRlZmluZWQoX19wcGNfXykK KyAjIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDQzMjEKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaCBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMv c3JjL3NxbGl0ZUludC5oCitpbmRleCAyNDUwNzBkNGYuLmIyNTE2NGU5NSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCisrKysgYi90aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAorQEAgLTg3Nyw3ICs4NzcsOCBAQCB0eXBlZGVm IElOVDE2X1RZUEUgTG9nRXN0OworICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQo X19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVk KF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkg IHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAg ICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18p IHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRl ZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01f QVJNNjQpIHx8IFwKKysgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRF Ul9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVP UkRFUiAgICAxMjM0CisgIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBj X18pIHx8IFwKKyAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0 RUJfXykKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2Nh cHR1cmUvZGlmZmVyX2Jsb2NrLmNjIGIvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3Rv cF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYworaW5kZXggNGYwYzU0MzBjLi41NGVlMDgyOWUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlm ZmVyX2Jsb2NrLmNjCisrKysgYi90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2Nh cHR1cmUvZGlmZmVyX2Jsb2NrLmNjCitAQCAtMzAsMTEgKzMwLDcgQEAgYm9vbCBWZWN0b3JEaWZm ZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGltYWdlMSwgY29uc3QgdWludDhfdCogaW1hZ2UyKSB7Cisg ICBzdGF0aWMgYm9vbCAoKmRpZmZfcHJvYykoY29uc3QgdWludDhfdCosIGNvbnN0IHVpbnQ4X3Qq KSA9IG51bGxwdHI7CisgCisgICBpZiAoIWRpZmZfcHJvYykgeworLSNpZiBkZWZpbmVkKFdFQlJU Q19BUkNIX0FSTV9GQU1JTFkpIHx8IGRlZmluZWQoV0VCUlRDX0FSQ0hfTUlQU19GQU1JTFkpCist ICAgIC8vIEZvciBBUk0gYW5kIE1JUFMgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBDIHZlcnNpb24u CistICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24uCistICAgIGRp ZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7CistI2Vsc2UKKysjaWYgZGVmaW5lZChXRUJS VENfQVJDSF9YODZfRkFNSUxZKQorICAgICBib29sIGhhdmVfc3NlMiA9IEdldENQVUluZm8oa1NT RTIpICE9IDA7CisgICAgIC8vIEZvciB4ODYgcHJvY2Vzc29ycywgY2hlY2sgaWYgU1NFMiBpcyBz dXBwb3J0ZWQuCisgICAgIGlmIChoYXZlX3NzZTIgJiYga0Jsb2NrU2l6ZSA9PSAzMikgeworQEAg LTQ0LDYgKzQwLDEwIEBAIGJvb2wgVmVjdG9yRGlmZmVyZW5jZShjb25zdCB1aW50OF90KiBpbWFn ZTEsIGNvbnN0IHVpbnQ4X3QqIGltYWdlMikgeworICAgICB9IGVsc2UgeworICAgICAgIGRpZmZf cHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7CisgICAgIH0KKysjZWxzZQorKyAgICAvLyBGb3Ig b3RoZXIgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBDIHZlcnNpb24uCisrICAgIC8vIFRPRE8oaGNs YW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24uCisrICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JE aWZmZXJlbmNlX0M7CisgI2VuZGlmCisgICB9CisgCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv d2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmggYi90aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jh c2Uvc3lzdGVtL2FyY2guaAoraW5kZXggYmUyMzY3Yjg1Li5iZTRlZTQyMzMgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAorKysrIGIvdGhpcmRf cGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKK0BAIC03OSw2ICs3OSwxOCBAQAor ICNlbGlmIGRlZmluZWQoX19FTVNDUklQVEVOX18pCisgI2RlZmluZSBXRUJSVENfQVJDSF8zMl9C SVRTCisgI2RlZmluZSBXRUJSVENfQVJDSF9MSVRUTEVfRU5ESUFOCisrI2VsaWYgZGVmaW5lZChf X1BQQ19fKQorKyNkZWZpbmUgV0VCUlRDX0FSQ0hfUFBDX0ZBTUlMWQorKyNpZiBfX0JZVEVfT1JE RVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXworKyNkZWZpbmUgV0VCUlRDX0FSQ0hfTElU VExFX0VORElBTgorKyNlbHNlCisrI2RlZmluZSBXRUJSVENfQVJDSF9CSUdfRU5ESUFOCisrI2Vu ZGlmCisrI2lmIGRlZmluZWQoX19MUDY0X18pCisrI2RlZmluZSBXRUJSVENfQVJDSF82NF9CSVRT CisrI2Vsc2UKKysjZGVmaW5lIFdFQlJUQ19BUkNIXzMyX0JJVFMKKysjZW5kaWYKKyAjZWxzZQor ICNlcnJvciBQbGVhc2UgYWRkIHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIHJ0Y19i YXNlL3N5c3RlbS9hcmNoLmgKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS92OC9CVUlMRC5nbiBiL3Y4 L0JVSUxELmduCitpbmRleCBmMzk1MjlhM2EuLmU4NGZjNDQ5ZSAxMDA2NDQKKy0tLSBhL3Y4L0JV SUxELmduCisrKysgYi92OC9CVUlMRC5nbgorQEAgLTg1MCw2ICs4NTAsMTIgQEAgY29uZmlnKCJ0 b29sY2hhaW4iKSB7CisgICAgIH0KKyAgICAgaWYgKGhvc3RfYnl0ZW9yZGVyID09ICJsaXR0bGUi KSB7CisgICAgICAgZGVmaW5lcyArPSBbICJWOF9UQVJHRVRfQVJDSF9QUENfTEUiIF0KKysgICAg ICBjZmxhZ3MgKz0gWworKyAgICAgICAgIyBFbmFibGUgdXNhZ2Ugb2YgQWx0aVZlYywgVlNYLCBh bmQgb3RoZXIgUE9XRVI4IGFuZCBoaWdoZXIgZmVhdHVyZXMKKysgICAgICAgICItbWNwdT1wb3dl cjgiLAorKyAgICAgICAgIi1tYWx0aXZlYyIsCisrICAgICAgICAiLW12c3giLAorKyAgICAgIF0K KyAgICAgfSBlbHNlIGlmIChob3N0X2J5dGVvcmRlciA9PSAiYmlnIikgeworICAgICAgIGRlZmlu ZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0JFIiBdCisgICAgICAgaWYgKGN1cnJlbnRfb3Mg PT0gImFpeCIpIHsKK2RpZmYgLS1naXQgYS91aS9nbC9mZWF0dXJlcy5nbmkgYi91aS9nbC9mZWF0 dXJlcy5nbmkKK2luZGV4IDVmZGE5YjYuLjNkMmRkOGIgMTAwNjQ0CistLS0gYS91aS9nbC9mZWF0 dXJlcy5nbmkKKysrKyBiL3VpL2dsL2ZlYXR1cmVzLmduaQorQEAgLTMyLDUgKzMyLDYgQEAgZGVj bGFyZV9hcmdzKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgIChpc19tYWMgJiYgdXNlX2Vn bCkgfHwgaXNfY2hyb21lb3NfYXNoIHx8IGlzX2Z1Y2hzaWEpICYmCisgICAgICAgICAgICAgICAg ICAgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQiIHx8Cisg ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAiYXJtIiB8fCB0YXJnZXRfY3B1 ID09ICJhcm02NCIgfHwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJt aXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIikKKysgICAgICAgICAgICAgICAgICAg ICAgICB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIiB8 fAorKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gInBwYzY0IikKKyB9Citk aWZmIC0tZ2l0IGEvdjgvdGVzdC9CVUlMRC5nbiBiL3Y4L3Rlc3QvQlVJTEQuZ24KK2luZGV4IGZi ODcyYWQzOS4uNDVmYzU4NWRkIDEwMDY0NAorLS0tIGEvdjgvdGVzdC9CVUlMRC5nbgorKysrIGIv djgvdGVzdC9CVUlMRC5nbgorQEAgLTM2LDcgKzM2LDcgQEAgZ3JvdXAoImduX2FsbCIpIHsKKyAg ICAgICAiYmVuY2htYXJrcy9jcHA6Z25fYWxsIiwKKyAgICAgICAiY2N0ZXN0OmNjdGVzdCIsCisg ICAgICAgImNjdGVzdDpnZW5lcmF0ZS1ieXRlY29kZS1leHBlY3RhdGlvbnMiLAorLSAgICAgICJ1 bml0dGVzdHM6dW5pdHRlc3RzIiwKKysgICAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAorICAg ICBdCisgICB9CisgfQorQEAgLTgzLDcgKzgzLDcgQEAKKyAgICAgIm1lc3NhZ2U6djhfbWVzc2Fn ZSIsCisgICAgICJtanN1bml0OnY4X21qc3VuaXQiLAorICAgICAibWtncm9rZHVtcDpta2dyb2tk dW1wIiwKKy0gICAgInVuaXR0ZXN0czp1bml0dGVzdHMiLAorKyAgICAjInVuaXR0ZXN0czp1bml0 dGVzdHMiLAorICAgICAid2Via2l0OnY4X3dlYmtpdCIsCisgICBdCisgCitAQCAtMTA4LDcgKzEw OCw3IEBACisgICAgICJtZXNzYWdlOnY4X21lc3NhZ2UiLAorICAgICAibWpzdW5pdDp2OF9tanN1 bml0IiwKKyAgICAgIm1rZ3Jva2R1bXA6bWtncm9rZHVtcCIsCistICAgICJ1bml0dGVzdHM6dW5p dHRlc3RzIiwKKysgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgIF0KKyAKKyAgIGlmICh2 OF9lbmFibGVfd2ViYXNzZW1ibHkpIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoIGIvc3Jj cGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtc3dpZnRz aGFkZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kZjQ1 M2Y0OTFkOGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS14eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaApAQCAtMCwwICsxLDE4 IEBACistLS0gYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAv QlVJTEQuZ24KKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0t MTAuMC9CVUlMRC5nbgorQEAgLTU3NCw2ICs1NzQsNyBAQCBzd2lmdHNoYWRlcl9sbHZtX3NvdXJj ZV9zZXQoInN3aWZ0c2hhZGVyCisgICAgICJsbHZtL2xpYi9NQy9NQ0FzbUluZm9DT0ZGLmNwcCIs CisgICAgICJsbHZtL2xpYi9NQy9NQ0FzbUluZm9EYXJ3aW4uY3BwIiwKKyAgICAgImxsdm0vbGli L01DL01DQXNtSW5mb0VMRi5jcHAiLAorKyAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvWENPRkYu Y3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtTWFjcm8uY3BwIiwKKyAgICAgImxsdm0vbGli L01DL01DQXNtU3RyZWFtZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNzZW1ibGVyLmNw cCIsCitAQCAtNjI5LDYgKzYzMCw3IEBAIHN3aWZ0c2hhZGVyX2xsdm1fc291cmNlX3NldCgic3dp ZnRzaGFkZXIKKyAgICAgImxsdm0vbGliL01DL01DV2luQ09GRlN0cmVhbWVyLmNwcCIsCisgICAg ICJsbHZtL2xpYi9NQy9NQ1dpbkVILmNwcCIsCisgICAgICJsbHZtL2xpYi9NQy9NQ1hDT0ZGU3Ry ZWFtZXIuY3BwIiwKKysgICAgImxsdm0vbGliL01DL01DWENPRkZPYmplY3RUYXJnZXRXcml0ZXIu Y3BwIiwKKyAgICAgImxsdm0vbGliL01DL01hY2hPYmplY3RXcml0ZXIuY3BwIiwKKyAgICAgImxs dm0vbGliL01DL1N0cmluZ1RhYmxlQnVpbGRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvU3Vi dGFyZ2V0RmVhdHVyZS5jcHAiLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVz L3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRj aC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1h LXNjcmlwdC10by1saXN0LXBhdGNoLXRhcmdldHMucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45MTZkYmE5ZGMzYmMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQt dG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20g ZmY0MTIyZjIzNmI3MGMyNzJjNzQ2ZDBjMzM2Y2RiZDU4OGQ3OGNkMSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEVsdmlzIFByYW5za2V2aWNodXMgPGVsdmlzQG1hZ2ljLmlvPgorRGF0 ZTogVGh1LCAxMiBEZWMgMjAxOSAxNjoxMjoxOCAtMDUwMAorU3ViamVjdDogW1BBVENIXSBBZGQg YSBzY3JpcHQgdG8gbGlzdCBwYXRjaCB0YXJnZXRzCisKKy0tLQorIHNjcmlwdC9saXN0X3BhdGNo X3RhcmdldHMucHkgfCAyMyArKysrKysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2Vk LCAyMyBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNzU1IHNjcmlwdC9saXN0X3BhdGNo X3RhcmdldHMucHkKKworZGlmZiAtLWdpdCBhL3NjcmlwdC9saXN0X3BhdGNoX3RhcmdldHMucHkg Yi9zY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5CituZXcgZmlsZSBtb2RlIDEwMDc1NQoraW5k ZXggMDAwMDAwMDAwLi41NTE3M2JhYzkKKy0tLSAvZGV2L251bGwKKysrKyBiL3NjcmlwdC9saXN0 X3BhdGNoX3RhcmdldHMucHkKK0BAIC0wLDAgKzEsMjMgQEAKKysjIS91c3IvYmluL2VudiBweXRo b24KKysKKytpbXBvcnQgYXJncGFyc2UKKytpbXBvcnQganNvbgorKworKworK2RlZiBwYXJzZV9h cmdzKCk6CisrICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0n QXBwbHkgRWxlY3Ryb24gcGF0Y2hlcycpCisrICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdjb25maWcn LCBuYXJncz0nKycsCisrICAgICAgICAgICAgICAgICAgICAgIHR5cGU9YXJncGFyc2UuRmlsZVR5 cGUoJ3InKSwKKysgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncGF0Y2hlc1wnIGNvbmZpZyhz KSBpbiB0aGUgSlNPTiBmb3JtYXQnKQorKyAgcmV0dXJuIHBhcnNlci5wYXJzZV9hcmdzKCkKKysK KysKKytkZWYgbWFpbigpOgorKyAgY29uZmlncyA9IHBhcnNlX2FyZ3MoKS5jb25maWcKKysgIGZv ciBjb25maWdfanNvbiBpbiBjb25maWdzOgorKyAgICBmb3IgcGF0Y2hfZGlyLCByZXBvIGluIGpz b24ubG9hZChjb25maWdfanNvbikuaXRlcml0ZW1zKCk6CisrICAgICAgcHJpbnQocmVwbykKKysK KysKKytpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorKyAgbWFpbigpCistLSAKKzIuMjMuMAor CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1C dWlsZC1maXhlcy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVz L2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uMjk4YmZhOWJjYjJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gucGF0 Y2gKQEAgLTAsMCArMSw0NyBAQAorZGlmZiAtLWdpdCBhL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbiBi L2J1aWxkL2FyZ3MvcmVsZWFzZS5nbgoraW5kZXggZTUwMTdmNmUxLi41OTIwN2IzODkgMTAwNjQ0 CistLS0gYS9idWlsZC9hcmdzL3JlbGVhc2UuZ24KKysrKyBiL2J1aWxkL2FyZ3MvcmVsZWFzZS5n bgorQEAgLTEsNiArMSw0IEBACisgaW1wb3J0KCJhbGwuZ24iKQorLWlzX2NvbXBvbmVudF9idWls ZCA9IGZhbHNlCistaXNfb2ZmaWNpYWxfYnVpbGQgPSB0cnVlCisgCisgIyBUaGlzIG1heSBiZSBn dWFyZGVkIGJlaGluZCBpc19jaHJvbWVfYnJhbmRlZCBhbG9uZ3NpZGUKKyAjIHByb3ByaWV0YXJ5 X2NvZGVjcyBodHRwczovL3dlYnJ0Yy1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL3NyYy8rLzM2 MzIxLAorQEAgLTgsOSArNiwzIEBAIGlzX29mZmljaWFsX2J1aWxkID0gdHJ1ZQorICMgVGhlIGlu aXRpYWxpemF0aW9uIG9mIHRoZSBkZWNvZGVyIGRlcGVuZHMgb24gd2hldGhlciBmZm1wZWcgaGFz CisgIyBiZWVuIGJ1aWx0IHdpdGggSC4yNjQgc3VwcG9ydC4KKyBydGNfdXNlX2gyNjQgPSBwcm9w cmlldGFyeV9jb2RlY3MKKy0KKy0jIEJ5IGRlZmF1bHQsIEVsZWN0cm9uIGJ1aWxkcyBmZm1wZWcg d2l0aCBwcm9wcmlldGFyeSBjb2RlY3MgZW5hYmxlZC4gSW4gb3JkZXIKKy0jIHRvIGZhY2lsaXRh dGUgdXNlcnMgd2hvIGRvbid0IHdhbnQgdG8gc2hpcCBwcm9wcmlldGFyeSBjb2RlY3MgaW4gZmZt cGVnLCBvcgorLSMgd2hvIGhhdmUgYW4gTEdQTCByZXF1aXJlbWVudCB0byBzaGlwIGZmbXBlZyBh cyBhIGR5bmFtaWNhbGx5IGxpbmtlZCBsaWJyYXJ5LAorLSMgd2UgYnVpbGQgZmZtcGVnIGFzIGEg c2hhcmVkIGxpYnJhcnkuCistaXNfY29tcG9uZW50X2ZmbXBlZyA9IHRydWUKK2RpZmYgLS1naXQg YS9idWlsZC9ucG0uZ25pIGIvYnVpbGQvbnBtLmduaQoraW5kZXggYTE5ODdkMDk1Li5mYjMzYTE0 YzMgMTAwNjQ0CistLS0gYS9idWlsZC9ucG0uZ25pCisrKysgYi9idWlsZC9ucG0uZ25pCitAQCAt MzUsNyArMzUsNiBAQCB0ZW1wbGF0ZSgibnBtX2FjdGlvbiIpIHsKKyAgICAgaWYgKCFkZWZpbmVk KGRlcHMpKSB7CisgICAgICAgZGVwcyA9IFtdCisgICAgIH0KKy0gICAgZGVwcyArPSBbICI6bnBt X3ByZV9mbGlnaHRfIiArIHRhcmdldF9uYW1lIF0KKyAKKyAgICAgc2NyaXB0ID0gIi8vZWxlY3Ry b24vYnVpbGQvbnBtLXJ1bi5weSIKKyAgICAgYXJncyA9IFsKK2RpZmYgLS1naXQgYS9wYXRjaGVz L25vZGUvZml4X2FkZF9kZWZhdWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhf d2l0aF9nbl9pbi5wYXRjaCBiL3BhdGNoZXMvbm9kZS9maXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zv cl9lbmFibGVfbHRvX2FuZF9idWlsZF92OF93aXRoX2duX2luLnBhdGNoCitpbmRleCAwZGM5OTE2 YmUuLjdlYWE0NmJmNSAxMDA2NDQKKy0tLSBhL3BhdGNoZXMvbm9kZS9maXhfYWRkX2RlZmF1bHRf dmFsdWVzX2Zvcl9lbmFibGVfbHRvX2FuZF9idWlsZF92OF93aXRoX2duX2luLnBhdGNoCisrKysg Yi9wYXRjaGVzL25vZGUvZml4X2FkZF9kZWZhdWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRf YnVpbGRfdjhfd2l0aF9nbl9pbi5wYXRjaAorQEAgLTMwLDcgKzMwLDcgQEAKKyArICAgICMgdGhl c2UgdmFsdWVzIGJlaW5nIGFjY3VyYXRlLgorICsgICAgJ2J1aWxkX3Y4X3dpdGhfZ24nOiAnZmFs c2UnLAorICsgICAgJ2VuYWJsZV9sdG8lJzogJ2ZhbHNlJywKKy0rCisrKyAgICAnb3BlbnNzbF9m aXBzJzogJycsCisgICAgICAnY29uZGl0aW9ucyc6IFsKKyAgICAgICAgWyd0YXJnZXRfYXJjaD09 ImFybTY0IicsIHsKKyAgICAgICAgICAjIERpc2FibGVkIHBlbmRpbmcgaHR0cHM6Ly9naXRodWIu Y29tL25vZGVqcy9ub2RlL2lzc3Vlcy8yMzkxMy4KKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjEzL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhv bjIucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1kb250 LWFzc3VtZS1weXRob24taXMtcHl0aG9uMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLmZiMTM0NzQ4MDI1YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1w eXRob24yLnBhdGNoCkBAIC0wLDAgKzEsMTcgQEAKKy0tLSBhL2J1aWxkL3ppcC5weS5vcmlnCTIw MjAtMDQtMjcgMTc6NTk6NTMuNDk5MjgxNjY3ICswMjAwCisrKysgYi9idWlsZC96aXAucHkJMjAy MC0wNC0yNyAxNzo1OTo1Ny42NTU4MzkxNDMgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vz ci9iaW4vZW52IHB5dGhvbgorKyMhL3Vzci9iaW4vZW52IHB5dGhvbjIKKyBmcm9tIF9fZnV0dXJl X18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisgaW1wb3J0IG9zCisgaW1wb3J0IHN1YnByb2Nlc3MK KworLS0tIGEvYnVpbGQvbnBtLXJ1bi5weS5vcmlnCTIwMjAtMDQtMjcgMTc6NTk6NTAuODI5MzUx ODA3ICswMjAwCisrKysgYi9idWlsZC9ucG0tcnVuLnB5CTIwMjAtMDQtMjcgMTg6MDA6MDIuNzAy MzczMjU2ICswMjAwCitAQCAtMSw0ICsxLDQgQEAKKy0jIS91c3IvYmluL2VudiBweXRob24KKysj IS91c3IvYmluL2VudiBweXRob24yCisgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j dGlvbgorIGltcG9ydCBvcworIGltcG9ydCBzdWJwcm9jZXNzCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uMTMvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1leGNsdWRlLWNvbnRlbnQtdGVzdC1w YXRjaGVzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24t ZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjQ1NjIyMzY0NDI3OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb24xMy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWV4Y2x1ZGUtY29udGVudC10ZXN0 LXBhdGNoZXMucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc2NyaXB0L2FwcGx5X2FsbF9w YXRjaGVzLnB5CTIwMjAtMDgtMjIgMTc6NDY6NDEuNzk2NzA3NTA2ICswMjAwCisrKysgLQkyMDIw LTA4LTIyIDE3OjQ3OjA1Ljg4NzgxMzUxMiArMDIwMAorQEAgLTE0LDYgKzE0LDcgQEAKKyAgIGZv ciBwYXRjaF9kaXIsIHJlcG8gaW4gZGlycy5pdGVtcygpOgorICAgICBnaXQuaW1wb3J0X3BhdGNo ZXMocmVwbz1yZXBvLCBwYXRjaF9kYXRhPXBhdGNoX2Zyb21fZGlyKHBhdGNoX2RpciksCisgICAg ICAgdGhyZWV3YXk9dGhyZWV3YXkgaXMgbm90IE5vbmUsCisrICAgICAgZXhjbHVkZT1bJ3Rlc3Qv bWpzdW5pdC8qKicsICdjb250ZW50L3Rlc3QvKionLCAndGVzdC9jY3Rlc3QvKionLCAndGVzdC91 bml0dGVzdHMvKionLCAndGhpcmRfcGFydHkvYmxpbmsvd2ViX3Rlc3RzLyoqJ10sCisgICAgICAg Y29tbWl0dGVyX25hbWU9IkVsZWN0cm9uIFNjcmlwdHMiLCBjb21taXR0ZXJfZW1haWw9InNjcmlw dHNAZWxlY3Ryb24iKQorIAorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVz L3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYyBiL3NyY3BrZ3MvZWxlY3Ryb24x My9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2MKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yYzdhYThlZmE2NmYKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9v cGVuYnNkLmNjCkBAIC0wLDAgKzEsMTQ4IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENo cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisv LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSAiYmFzZS9tZXRyaWNzL2hp c3RvZ3JhbV9tYWNyb3MuaCIKKyNpbmNsdWRlICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgorCisj aW5jbHVkZSAibWVkaWEvYXVkaW8vb3BlbmJzZC9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaCIKKwor I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNjcmlwdGlvbi5oIgorI2luY2x1 ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX291dHB1dF9kaXNwYXRjaGVyLmgiCisjaW5jbHVkZSAibWVk aWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRp by9zbmRpb19vdXRwdXQuaCIKKyNpbmNsdWRlICJtZWRpYS9iYXNlL2xpbWl0cy5oIgorI2luY2x1 ZGUgIm1lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaCIKKworbmFtZXNwYWNlIG1lZGlhIHsKKwor Ly8gTWF4aW11bSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgdGhhdCBjYW4gYmUgb3BlbiBzaW11 bHRhbmVvdXNseS4KK3N0YXRpYyBjb25zdCBpbnQga01heE91dHB1dFN0cmVhbXMgPSA0OworCisv LyBEZWZhdWx0IHNhbXBsZSByYXRlIGZvciBpbnB1dCBhbmQgb3V0cHV0IHN0cmVhbXMuCitzdGF0 aWMgY29uc3QgaW50IGtEZWZhdWx0U2FtcGxlUmF0ZSA9IDQ4MDAwOworCit2b2lkIEFkZERlZmF1 bHREZXZpY2UoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisgIERDSEVDSyhkZXZp Y2VfbmFtZXMtPmVtcHR5KCkpOworICBkZXZpY2VfbmFtZXMtPnB1c2hfZnJvbnQoQXVkaW9EZXZp Y2VOYW1lOjpDcmVhdGVEZWZhdWx0KCkpOworfQorCitib29sIEF1ZGlvTWFuYWdlck9wZW5CU0Q6 Okhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIHsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQXVk aW9NYW5hZ2VyT3BlbkJTRDo6SGFzQXVkaW9JbnB1dERldmljZXMoKSB7CisgIHJldHVybiB0cnVl OworfQorCit2b2lkIEF1ZGlvTWFuYWdlck9wZW5CU0Q6OkdldEF1ZGlvSW5wdXREZXZpY2VOYW1l cygKKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKyAgRENIRUNLKGRldmlj ZV9uYW1lcy0+ZW1wdHkoKSk7CisgIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKK30K Kwordm9pZCBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXRBdWRpb091dHB1dERldmljZU5hbWVzKAor ICAgIEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworICBBZGREZWZhdWx0RGV2aWNl KGRldmljZV9uYW1lcyk7Cit9CisKK2NvbnN0IGNoYXIqIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Okdl dE5hbWUoKSB7CisgIHJldHVybiAiU05ESU8iOworfQorCitBdWRpb1BhcmFtZXRlcnMgQXVkaW9N YW5hZ2VyT3BlbkJTRDo6R2V0SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAorICAgIGNvbnN0IHN0ZDo6 c3RyaW5nJiBkZXZpY2VfaWQpIHsKKyAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdElucHV0QnVm ZmVyU2l6ZSA9IDEwMjQ7CisKKyAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVy U2l6ZSgpOworICBpbnQgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplID8KKyAgICAgIHVz ZXJfYnVmZmVyX3NpemUgOiBrRGVmYXVsdElucHV0QnVmZmVyU2l6ZTsKKworICByZXR1cm4gQXVk aW9QYXJhbWV0ZXJzKAorICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVO Q1ksIENIQU5ORUxfTEFZT1VUX1NURVJFTywKKyAgICAgIGtEZWZhdWx0U2FtcGxlUmF0ZSwgYnVm ZmVyX3NpemUpOworfQorCitBdWRpb01hbmFnZXJPcGVuQlNEOjpBdWRpb01hbmFnZXJPcGVuQlNE KHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19m YWN0b3J5KQorICAgIDogQXVkaW9NYW5hZ2VyQmFzZShzdGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwK KyAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpIHsKKyAgRExPRyhXQVJO SU5HKSA8PCAiQXVkaW9NYW5hZ2VyT3BlbkJTRCI7CisgIFNldE1heE91dHB1dFN0cmVhbXNBbGxv d2VkKGtNYXhPdXRwdXRTdHJlYW1zKTsKK30KKworQXVkaW9NYW5hZ2VyT3BlbkJTRDo6fkF1ZGlv TWFuYWdlck9wZW5CU0QoKSB7CisgIFNodXRkb3duKCk7Cit9CisKK0F1ZGlvT3V0cHV0U3RyZWFt KiBBdWRpb01hbmFnZXJPcGVuQlNEOjpNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorICAgIGNvbnN0 IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2Fs bGJhY2spIHsKKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwg cGFyYW1zLmZvcm1hdCgpKTsKKyAgcmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKK30K KworQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VMb3dMYXRlbmN5 T3V0cHV0U3RyZWFtKAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgIGNv bnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19j YWxsYmFjaykgeworICBETE9HX0lGKEVSUk9SLCAhZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3Qg aW1wbGVtZW50ZWQhIjsKKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworICByZXR1cm4gTWFrZU91dHB1dFN0cmVhbShw YXJhbXMpOworfQorCitBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJPcGVuQlNEOjpNYWtl TGluZWFySW5wdXRTdHJlYW0oCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisg ICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKyAgICBjb25zdCBMb2dDYWxsYmFjayYg bG9nX2NhbGxiYWNrKSB7CisgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M SU5FQVIsIHBhcmFtcy5mb3JtYXQoKSk7CisgIHJldHVybiBNYWtlSW5wdXRTdHJlYW0ocGFyYW1z KTsKK30KKworQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6TWFrZUxvd0xh dGVuY3lJbnB1dFN0cmVhbSgKKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKyAg ICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBs b2dfY2FsbGJhY2spIHsKKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworICByZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBh cmFtcyk7Cit9CisKK0F1ZGlvUGFyYW1ldGVycyBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXRQcmVm ZXJyZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRw dXRfZGV2aWNlX2lkLAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSB7 CisgIC8vIFRPRE8odG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2aWNlX2lkfC4KKyAgRExPR19J RihFUlJPUiwgIW91dHB1dF9kZXZpY2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEi OworICBzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZSA9IDIwNDg7CisK KyAgQ2hhbm5lbExheW91dCBjaGFubmVsX2xheW91dCA9IENIQU5ORUxfTEFZT1VUX1NURVJFTzsK KyAgaW50IHNhbXBsZV9yYXRlID0ga0RlZmF1bHRTYW1wbGVSYXRlOworICBpbnQgYnVmZmVyX3Np emUgPSBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7CisgIGlmIChpbnB1dF9wYXJhbXMuSXNWYWxp ZCgpKSB7CisgICAgc2FtcGxlX3JhdGUgPSBpbnB1dF9wYXJhbXMuc2FtcGxlX3JhdGUoKTsKKyAg ICBjaGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFtcy5jaGFubmVsX2xheW91dCgpOworICAgIGJ1 ZmZlcl9zaXplID0gc3RkOjptaW4oYnVmZmVyX3NpemUsIGlucHV0X3BhcmFtcy5mcmFtZXNfcGVy X2J1ZmZlcigpKTsKKyAgfQorCisgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZl clNpemUoKTsKKyAgaWYgKHVzZXJfYnVmZmVyX3NpemUpCisgICAgYnVmZmVyX3NpemUgPSB1c2Vy X2J1ZmZlcl9zaXplOworCisgIHJldHVybiBBdWRpb1BhcmFtZXRlcnMoCisgICAgICBBdWRpb1Bh cmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgY2hhbm5lbF9sYXlvdXQsCisgICAgICBz YW1wbGVfcmF0ZSwgYnVmZmVyX3NpemUpOworfQorCitBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01h bmFnZXJPcGVuQlNEOjpNYWtlSW5wdXRTdHJlYW0oCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMpIHsKKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZUlucHV0U3RyZWFtIjsKKyAgcmV0 dXJuIG5ldyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0odGhpcywKKyAgICAgICAgICAgICBBdWRpb0Rl dmljZURlc2NyaXB0aW9uOjprRGVmYXVsdERldmljZUlkLCBwYXJhbXMpOworfQorCitBdWRpb091 dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6TWFrZU91dHB1dFN0cmVhbSgKKyAgICBj b25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykgeworICBETE9HKFdBUk5JTkcpIDw8ICJNYWtl T3V0cHV0U3RyZWFtIjsKKyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKHBhcmFt cywgdGhpcyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBtZWRpYQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjEzL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5oIGIv c3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJz ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGM5OWRiOTY2ZDY1 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3NuZGlvLWZpbGVz L2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5oCkBAIC0wLDAgKzEsNjUgQEAKKy8vIENvcHlyaWdodCAo YykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVz ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2Ug dGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpZm5kZWYgTUVE SUFfQVVESU9fT1BFTkJTRF9BVURJT19NQU5BR0VSX09QRU5CU0RfSF8KKyNkZWZpbmUgTUVESUFf QVVESU9fT1BFTkJTRF9BVURJT19NQU5BR0VSX09QRU5CU0RfSF8KKworI2luY2x1ZGUgPHNldD4K KworI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKyNpbmNsdWRlICJiYXNlL21h Y3Jvcy5oIgorI2luY2x1ZGUgImJhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgiCisjaW5jbHVkZSAi YmFzZS90aHJlYWRpbmcvdGhyZWFkLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFu YWdlcl9iYXNlLmgiCisKK25hbWVzcGFjZSBtZWRpYSB7CisKK2NsYXNzIE1FRElBX0VYUE9SVCBB dWRpb01hbmFnZXJPcGVuQlNEIDogcHVibGljIEF1ZGlvTWFuYWdlckJhc2UgeworIHB1YmxpYzoK KyAgQXVkaW9NYW5hZ2VyT3BlbkJTRChzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlv X3RocmVhZCwKKyAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19m YWN0b3J5KTsKKyAgfkF1ZGlvTWFuYWdlck9wZW5CU0QoKSBvdmVycmlkZTsKKworICAvLyBJbXBs ZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXIuCisgIGJvb2wgSGFzQXVkaW9PdXRwdXREZXZpY2Vz KCkgb3ZlcnJpZGU7CisgIGJvb2wgSGFzQXVkaW9JbnB1dERldmljZXMoKSBvdmVycmlkZTsKKyAg dm9pZCBHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25h bWVzKSBvdmVycmlkZTsKKyAgdm9pZCBHZXRBdWRpb091dHB1dERldmljZU5hbWVzKEF1ZGlvRGV2 aWNlTmFtZXMqIGRldmljZV9uYW1lcykgb3ZlcnJpZGU7CisgIEF1ZGlvUGFyYW1ldGVycyBHZXRJ bnB1dFN0cmVhbVBhcmFtZXRlcnMoCisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lk KSBvdmVycmlkZTsKKyAgY29uc3QgY2hhciogR2V0TmFtZSgpIG92ZXJyaWRlOworCisgIC8vIElt cGxlbWVudGF0aW9uIG9mIEF1ZGlvTWFuYWdlckJhc2UuCisgIEF1ZGlvT3V0cHV0U3RyZWFtKiBN YWtlTGluZWFyT3V0cHV0U3RyZWFtKAorICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJh bXMsCisgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKyAg QXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtKAorICAgICAgY29u c3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX2lkLAorICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7 CisgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKyAgICAgIGNvbnN0 IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmlj ZV9pZCwKKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOwor ICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorICAgICAgY29u c3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX2lkLAorICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7 CisKKyBwcm90ZWN0ZWQ6CisgIEF1ZGlvUGFyYW1ldGVycyBHZXRQcmVmZXJyZWRPdXRwdXRTdHJl YW1QYXJhbWV0ZXJzKAorICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQs CisgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgb3ZlcnJpZGU7CisK KyBwcml2YXRlOgorICAvLyBDYWxsZWQgYnkgTWFrZUxpbmVhck91dHB1dFN0cmVhbSBhbmQgTWFr ZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0uCisgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtlT3V0cHV0 U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKyAgQXVkaW9JbnB1dFN0cmVh bSogTWFrZUlucHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKworICBE SVNBTExPV19DT1BZX0FORF9BU1NJR04oQXVkaW9NYW5hZ2VyT3BlbkJTRCk7Cit9OworCit9ICAv LyBuYW1lc3BhY2UgbWVkaWEKKworI2VuZGlmICAvLyBNRURJQV9BVURJT19PUEVOQlNEX0FVRElP X01BTkFHRVJfT1BFTkJTRF9IXwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVz L3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmNjIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3Nu ZGlvLWZpbGVzL3NuZGlvX2lucHV0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uZWY1NDM5YjQ5YTA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJv bjEzL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmNjCkBAIC0wLDAgKzEsMjAwIEBACisv LyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxl IGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNp bmNsdWRlICJiYXNlL2JpbmQuaCIKKyNpbmNsdWRlICJiYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRl ICJiYXNlL21hY3Jvcy5oIgorI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1wX2hl bHBlci5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL29wZW5ic2QvYXVkaW9fbWFuYWdlcl9vcGVu YnNkLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlci5oIgorI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisKK25hbWVzcGFjZSBtZWRpYSB7CisK K3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQga1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRT MTY7CisKK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICph cmcsIGludCBkZWx0YSkKK3sKKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGlj X2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKworICBzZWxmLT5od19kZWxheSAr PSBkZWx0YTsKK30KKwordm9pZCAqU25kaW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRFbnRyeSh2 b2lkICphcmcpIHsKKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8 U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKworICBzZWxmLT5UaHJlYWRMb29wKCk7Cisg IHJldHVybiBOVUxMOworfQorCitTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNuZGlvQXVkaW9JbnB1 dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9Q YXJhbWV0ZXJzJiBwYXJhbXMpCisgICAgOiBtYW5hZ2VyKG1hbmFnZXIpLAorICAgICAgcGFyYW1z KHBhcmFtcyksCisgICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKyAg ICAgIHN0YXRlKGtDbG9zZWQpIHsKK30KKworU25kaW9BdWRpb0lucHV0U3RyZWFtOjp+U25kaW9B dWRpb0lucHV0U3RyZWFtKCkgeworICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKyAgICBDbG9zZSgp OworfQorCitib29sIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6T3BlbigpIHsKKyAgc3RydWN0IHNp b19wYXIgcGFyOworICBpbnQgc2lnOworCisgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorICAgIHJl dHVybiBmYWxzZTsKKworICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6 QVVESU9fUENNX0xJTkVBUiAmJgorICAgICAgcGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1l dGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1 cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBzaW9f aW5pdHBhcigmcGFyKTsKKyAgcGFyLnJhdGUgPSBwYXJhbXMuc2FtcGxlX3JhdGUoKTsKKyAgcGFy LnJjaGFuID0gcGFyYW1zLmNoYW5uZWxzKCk7CisgIHBhci5iaXRzID0gU2FtcGxlRm9ybWF0VG9C aXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KTsKKyAgcGFyLmJwcyA9IHBhci5iaXRzIC8gODsK KyAgcGFyLnNpZyA9IHNpZyA9IHBhci5iaXRzICE9IDggPyAxIDogMDsKKyAgcGFyLmxlID0gU0lP X0xFX05BVElWRTsKKyAgcGFyLmFwcGJ1ZnN6ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCk7 CisKKyAgaGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1JFQywgMCk7CisKKyAgaWYgKGhk bCA9PSBOVUxMKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZp Y2UuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBpZiAoIXNpb19zZXRwYXIoaGRsLCAm cGFyKSB8fCAhc2lvX2dldHBhcihoZGwsICZwYXIpKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiQ291 bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKyAgICBnb3RvIGJhZF9jbG9zZTsKKyAgfQor CisgIGlmIChwYXIucmF0ZSAgIT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUoKSB8 fAorICAgICAgcGFyLnJjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwK KyAgICAgIHBhci5iaXRzICAhPSAodW5zaWduZWQgaW50KVNhbXBsZUZvcm1hdFRvQml0c1BlckNo YW5uZWwoa1NhbXBsZUZvcm1hdCkgfHwKKyAgICAgIHBhci5zaWcgICAhPSAodW5zaWduZWQgaW50 KXNpZyB8fAorICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8 fAorICAgICAgKHBhci5iaXRzICE9IHBhci5icHMgKiA4KSkgeworICAgIExPRyhFUlJPUikgPDwg IlVuc3VwcG9ydGVkIGF1ZGlvIHBhcmFtZXRlcnMuIjsKKyAgICBnb3RvIGJhZF9jbG9zZTsKKyAg fQorICBzdGF0ZSA9IGtTdG9wcGVkOworICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZy YW1lcygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworICBzaW9f b25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsKKyAgcmV0dXJuIHRydWU7CitiYWRf Y2xvc2U6CisgIHNpb19jbG9zZShoZGwpOworICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU25k aW9BdWRpb0lucHV0U3RyZWFtOjpTdGFydChBdWRpb0lucHV0Q2FsbGJhY2sqIGNiKSB7CisKKyAg U3RhcnRBZ2MoKTsKKworICBzdGF0ZSA9IGtSdW5uaW5nOworICBod19kZWxheSA9IDA7CisgIGNh bGxiYWNrID0gY2I7CisgIHNpb19zdGFydChoZGwpOworICBpZiAocHRocmVhZF9jcmVhdGUoJnRo cmVhZCwgTlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisgICAgTE9HKEVSUk9SKSA8 PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRpbWUgdGhyZWFkIGZvciByZWNvcmRpbmcuIjsKKyAg ICBzaW9fc3RvcChoZGwpOworICAgIHN0YXRlID0ga1N0b3BwZWQ7CisgIH0KK30KKwordm9pZCBT bmRpb0F1ZGlvSW5wdXRTdHJlYW06OlN0b3AoKSB7CisKKyAgaWYgKHN0YXRlID09IGtTdG9wcGVk KQorICAgIHJldHVybjsKKworICBzdGF0ZSA9IGtTdG9wV2FpdDsKKyAgcHRocmVhZF9qb2luKHRo cmVhZCwgTlVMTCk7CisgIHNpb19zdG9wKGhkbCk7CisgIHN0YXRlID0ga1N0b3BwZWQ7CisKKyAg U3RvcEFnYygpOworfQorCit2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6Q2xvc2UoKSB7CisK KyAgaWYgKHN0YXRlID09IGtDbG9zZWQpCisgICAgcmV0dXJuOworCisgIGlmIChzdGF0ZSA9PSBr UnVubmluZykKKyAgICBTdG9wKCk7CisKKyAgc3RhdGUgPSBrQ2xvc2VkOworICBkZWxldGUgW10g YnVmZmVyOworICBzaW9fY2xvc2UoaGRsKTsKKworICBtYW5hZ2VyLT5SZWxlYXNlSW5wdXRTdHJl YW0odGhpcyk7Cit9CisKK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldE1heFZvbHVt ZSgpIHsKKyAgLy8gTm90IHN1cHBvcnRlZAorICByZXR1cm4gMC4wOworfQorCit2b2lkIFNuZGlv QXVkaW9JbnB1dFN0cmVhbTo6U2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIHsKKyAgLy8gTm90IHN1 cHBvcnRlZC4gRG8gbm90aGluZy4KK30KKworZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6 R2V0Vm9sdW1lKCkgeworICAvLyBOb3Qgc3VwcG9ydGVkLgorICByZXR1cm4gMC4wOworfQorCiti b29sIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6SXNNdXRlZCgpIHsKKyAgLy8gTm90IHN1cHBvcnRl ZC4KKyAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0 T3V0cHV0RGV2aWNlRm9yQWVjKAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNl X2lkKSB7CisgIC8vIE5vdCBzdXBwb3J0ZWQuCit9CisKK3ZvaWQgU25kaW9BdWRpb0lucHV0U3Ry ZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKyAgc2l6ZV90IHRvZG8sIG47CisgIGNoYXIgKmRhdGE7 CisgIHVuc2lnbmVkIGludCBuZnJhbWVzOworICBkb3VibGUgbm9ybWFsaXplZF92b2x1bWUgPSAw LjA7CisKKyAgbmZyYW1lcyA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisKKyAgd2hpbGUgKHN0YXRl ID09IGtSdW5uaW5nICYmICFzaW9fZW9mKGhkbCkpIHsKKworICAgIEdldEFnY1ZvbHVtZSgmbm9y bWFsaXplZF92b2x1bWUpOworCisgICAgLy8gcmVhZCBvbmUgYmxvY2sKKyAgICB0b2RvID0gbmZy YW1lcyAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOworICAgIGRhdGEg PSBidWZmZXI7CisgICAgd2hpbGUgKHRvZG8gPiAwKSB7CisgICAgICBuID0gc2lvX3JlYWQoaGRs LCBkYXRhLCB0b2RvKTsKKyAgICAgIGlmIChuID09IDApCisgICAgICAgIHJldHVybjsJLy8gdW5y ZWNvdmVyYWJsZSBJL08gZXJyb3IKKyAgICAgIHRvZG8gLT0gbjsKKyAgICAgIGRhdGEgKz0gbjsK KyAgICB9CisgICAgaHdfZGVsYXkgLT0gbmZyYW1lczsKKworICAgIC8vIGNvbnZlcnQgZnJhbWVz IGNvdW50IHRvIFRpbWVEZWx0YQorICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxheSA9IEF1 ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisgICAgICBwYXJhbXMu c2FtcGxlX3JhdGUoKSk7CisKKyAgICAvLyBwdXNoIGludG8gYnVzCisgICAgYXVkaW9fYnVzLT5G cm9tSW50ZXJsZWF2ZWQoYnVmZmVyLCBuZnJhbWVzLCBTYW1wbGVGb3JtYXRUb0J5dGVzUGVyQ2hh bm5lbChrU2FtcGxlRm9ybWF0KSk7CisKKyAgICAvLyBpbnZva2UgY2FsbGJhY2sKKyAgICBjYWxs YmFjay0+T25EYXRhKGF1ZGlvX2J1cy5nZXQoKSwgYmFzZTo6VGltZVRpY2tzOjpOb3coKSAtIGRl bGF5LCAxLik7CisgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuaCBiL3NyY3Br Z3MvZWxlY3Ryb24xMy9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDg2OGUwNDY5ZGI1Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmgK QEAgLTAsMCArMSw5MSBAQAorLy8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMu IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl cm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUg TElDRU5TRSBmaWxlLgorCisjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hf CisjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCisKKyNpbmNsdWRlIDxz dGRpbnQuaD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8c25kaW8uaD4KKworI2luY2x1 ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgor I2luY2x1ZGUgImJhc2UvbWVtb3J5L3dlYWtfcHRyLmgiCisjaW5jbHVkZSAiYmFzZS90aW1lL3Rp bWUuaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hZ2NfYXVkaW9fc3RyZWFtLmgiCisjaW5jbHVk ZSAibWVkaWEvYXVkaW8vYXVkaW9faW8uaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19k ZXZpY2VfZGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3BhcmFtZXRl cnMuaCIKKworbmFtZXNwYWNlIG1lZGlhIHsKKworY2xhc3MgQXVkaW9NYW5hZ2VyQmFzZTsKKwor Ly8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25kaW8oNykKK2Ns YXNzIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSA6IHB1YmxpYyBBZ2NBdWRpb1N0cmVhbTxBdWRpb0lu cHV0U3RyZWFtPiB7CisgcHVibGljOgorICAvLyBQYXNzIHRoaXMgdG8gdGhlIGNvbnN0cnVjdG9y IGlmIHlvdSB3YW50IHRvIGF0dGVtcHQgYXV0by1zZWxlY3Rpb24KKyAgLy8gb2YgdGhlIGF1ZGlv IHJlY29yZGluZyBkZXZpY2UuCisgIHN0YXRpYyBjb25zdCBjaGFyIGtBdXRvU2VsZWN0RGV2aWNl W107CisKKyAgLy8gQ3JlYXRlIGEgUENNIE91dHB1dCBzdHJlYW0gZm9yIHRoZSBTTkRJTyBkZXZp Y2UgaWRlbnRpZmllZCBieQorICAvLyB8ZGV2aWNlX25hbWV8LiBJZiB1bnN1cmUgb2Ygd2hhdCB0 byB1c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVzZQorICAvLyB8a0F1dG9TZWxlY3REZXZpY2V8Lgor ICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVkaW9NYW5hZ2VyQmFzZSogYXVkaW9fbWFuYWdlciwK KyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKworICB+ U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3ZlcnJpZGU7CisKKyAgLy8gSW1wbGVtZW50YXRpb24g b2YgQXVkaW9JbnB1dFN0cmVhbS4KKyAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7CisgIHZvaWQgU3Rh cnQoQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgIHZvaWQgU3RvcCgp IG92ZXJyaWRlOworICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7CisgIGRvdWJsZSBHZXRNYXhWb2x1 bWUoKSBvdmVycmlkZTsKKyAgdm9pZCBTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgb3ZlcnJpZGU7 CisgIGRvdWJsZSBHZXRWb2x1bWUoKSBvdmVycmlkZTsKKyAgYm9vbCBJc011dGVkKCkgb3ZlcnJp ZGU7CisgIHZvaWQgU2V0T3V0cHV0RGV2aWNlRm9yQWVjKGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRw dXRfZGV2aWNlX2lkKSBvdmVycmlkZTsKKworIHByaXZhdGU6CisKKyAgZW51bSBTdHJlYW1TdGF0 ZSB7CisgICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHlldAorICAgIGtTdG9w cGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorICAg IGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcKKyAgICBrU3Rv cFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRo cmVhZCB0byBleGl0CisgIH07CisKKyAgLy8gQy1zdHlsZSBjYWxsLWJhY2tzCisgIHN0YXRpYyB2 b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKyAgc3RhdGljIHZvaWQq IFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisKKyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRhdGEg ZnJvbSB0aGUgZGV2aWNlIHRvIHRoZSBjb25zdW1lcgorICB2b2lkIFRocmVhZExvb3AoKTsKKyAg Ly8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdo ZW4gd2UgY2xvc2UuCisgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7CisgIC8vIFBhcmFtZXRl cnMgb2YgdGhlIHNvdXJjZQorICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOworICAvLyBXZSBzdG9y ZSBkYXRhIGhlcmUgZm9yIGNvbnN1bWVyCisgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVk aW9fYnVzOworICAvLyBDYWxsLWJhY2sgdGhhdCBjb25zdW1lcyByZWNvcmRlZCBkYXRhCisgIEF1 ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2s7ICAvLyBWYWxpZCBkdXJpbmcgYSByZWNvcmRpbmcg c2Vzc2lvbi4KKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKyAgc3RydWN0IHNpb19o ZGwqIGhkbDsKKyAgLy8gQ3VycmVudCBzdGF0ZSBvZiB0aGUgc3RyZWFtCisgIGVudW0gU3RyZWFt U3RhdGUgc3RhdGU7CisgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9v cCgpCisgIHB0aHJlYWRfdCB0aHJlYWQ7CisgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQg aW4gdGhlIGhhcmR3YXJlCisgIGludCBod19kZWxheTsKKyAgLy8gVGVtcG9yYXJ5IGJ1ZmZlciB3 aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1jb21wYXRpYmxlIGZvcm1hdAorICBjaGFyKiBidWZm ZXI7CisKKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFNuZGlvQXVkaW9JbnB1dFN0cmVhbSk7 Cit9OworCit9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKworI2VuZGlmICAvLyBNRURJQV9BVURJT19T TkRJT19TTkRJT19JTlBVVF9IXwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVz L3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5jYyBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9z bmRpby1maWxlcy9zbmRpb19vdXRwdXQuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5hNjcxOWY5YWFjOGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uMTMvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0LmNjCkBAIC0wLDAgKzEsMTgzIEBA CisvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT RC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl LgorCisjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUu aCIKKyNpbmNsdWRlICJiYXNlL3RpbWUvZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisjaW5jbHVkZSAi bWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlcl9iYXNlLmgiCisjaW5jbHVkZSAibWVkaWEvYmFzZS9h dWRpb190aW1lc3RhbXBfaGVscGVyLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25k aW9fb3V0cHV0LmgiCisKK25hbWVzcGFjZSBtZWRpYSB7CisKK3N0YXRpYyBjb25zdCBTYW1wbGVG b3JtYXQga1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7CisKK3ZvaWQgU25kaW9BdWRp b091dHB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpIHsKKyAg U25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRw dXRTdHJlYW0qPihhcmcpOworCisgIHNlbGYtPmh3X2RlbGF5IC09IGRlbHRhOworfQorCit2b2lk IFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25l ZCBpbnQgdm9sKSB7CisgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2Fz dDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKworICBzZWxmLT52b2wgPSB2b2w7Cit9 CisKK3ZvaWQgKlNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykg eworICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRp b091dHB1dFN0cmVhbSo+KGFyZyk7CisKKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworICByZXR1cm4g TlVMTDsKK30KKworU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U25kaW9BdWRpb091dHB1dFN0cmVh bShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcikKKyAgICA6 IG1hbmFnZXIobWFuYWdlciksCisgICAgICBwYXJhbXMocGFyYW1zKSwKKyAgICAgIGF1ZGlvX2J1 cyhBdWRpb0J1czo6Q3JlYXRlKHBhcmFtcykpLAorICAgICAgc3RhdGUoa0Nsb3NlZCksCisgICAg ICBtdXRleChQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSKSB7Cit9CisKK1NuZGlvQXVkaW9PdXRw dXRTdHJlYW06On5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKCkgeworICBpZiAoc3RhdGUgIT0ga0Ns b3NlZCkKKyAgICBDbG9zZSgpOworfQorCitib29sIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9w ZW4oKSB7CisgIHN0cnVjdCBzaW9fcGFyIHBhcjsKKyAgaW50IHNpZzsKKworICBpZiAocGFyYW1z LmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorICAgICAg cGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZ KSB7CisgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKyAg ICByZXR1cm4gZmFsc2U7CisgIH0KKyAgc2lvX2luaXRwYXIoJnBhcik7CisgIHBhci5yYXRlID0g cGFyYW1zLnNhbXBsZV9yYXRlKCk7CisgIHBhci5wY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOwor ICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7 CisgIHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAh PSA4ID8gMSA6IDA7CisgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7CisgIHBhci5hcHBidWZzeiA9 IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworCisgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZB TlksIFNJT19QTEFZLCAwKTsKKyAgaWYgKGhkbCA9PSBOVUxMKSB7CisgICAgTE9HKEVSUk9SKSA8 PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZpY2UuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0K KyAgaWYgKCFzaW9fc2V0cGFyKGhkbCwgJnBhcikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkg eworICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7Cisg ICAgZ290byBiYWRfY2xvc2U7CisgIH0KKyAgaWYgKHBhci5yYXRlICAhPSAodW5zaWduZWQgaW50 KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisgICAgICBwYXIucGNoYW4gIT0gKHVuc2lnbmVkIGlu dClwYXJhbXMuY2hhbm5lbHMoKSB8fAorICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQp U2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAorICAgICAgcGFy LnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisgICAgICAocGFyLmJwcyA+IDEgJiYgcGFy LmxlICE9IFNJT19MRV9OQVRJVkUpIHx8CisgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgp KSB7CisgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOwor ICAgIGdvdG8gYmFkX2Nsb3NlOworICB9CisgIHN0YXRlID0ga1N0b3BwZWQ7CisgIHZvbHBlbmRp bmcgPSAwOworICB2b2wgPSAwOworICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1l cygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworICBzaW9fb25t b3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsKKyAgc2lvX29udm9sKGhkbCwgJk9uVm9s Q2FsbGJhY2ssIHRoaXMpOworICByZXR1cm4gdHJ1ZTsKKyBiYWRfY2xvc2U6CisgIHNpb19jbG9z ZShoZGwpOworICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVh bTo6Q2xvc2UoKSB7CisgIGlmIChzdGF0ZSA9PSBrQ2xvc2VkKQorICAgIHJldHVybjsKKyAgaWYg KHN0YXRlID09IGtSdW5uaW5nKQorICAgIFN0b3AoKTsKKyAgc3RhdGUgPSBrQ2xvc2VkOworICBk ZWxldGUgW10gYnVmZmVyOworICBzaW9fY2xvc2UoaGRsKTsKKyAgbWFuYWdlci0+UmVsZWFzZU91 dHB1dFN0cmVhbSh0aGlzKTsgIC8vIENhbGxzIHRoZSBkZXN0cnVjdG9yCit9CisKK3ZvaWQgU25k aW9BdWRpb091dHB1dFN0cmVhbTo6U3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2FsbGJhY2sp IHsKKyAgc3RhdGUgPSBrUnVubmluZzsKKyAgaHdfZGVsYXkgPSAwOworICBzb3VyY2UgPSBjYWxs YmFjazsKKyAgc2lvX3N0YXJ0KGhkbCk7CisgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBO VUxMLCAmVGhyZWFkRW50cnksIHRoaXMpICE9IDApIHsKKyAgICBMT0coRVJST1IpIDw8ICJGYWls ZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQuIjsKKyAgICBzaW9fc3RvcChoZGwpOworICAg IHN0YXRlID0ga1N0b3BwZWQ7CisgIH0KK30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt OjpTdG9wKCkgeworICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisgICAgcmV0dXJuOworICBzdGF0 ZSA9IGtTdG9wV2FpdDsKKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisgIHNpb19zdG9w KGhkbCk7CisgIHN0YXRlID0ga1N0b3BwZWQ7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0 cmVhbTo6U2V0Vm9sdW1lKGRvdWJsZSB2KSB7CisgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgp OworICB2b2wgPSB2ICogU0lPX01BWFZPTDsKKyAgdm9scGVuZGluZyA9IDE7CisgIHB0aHJlYWRf bXV0ZXhfdW5sb2NrKCZtdXRleCk7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6 R2V0Vm9sdW1lKGRvdWJsZSogdikgeworICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKyAg KnYgPSB2b2wgKiAoMS4gLyBTSU9fTUFYVk9MKTsKKyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11 dGV4KTsKK30KKworLy8gVGhpcyBzdHJlYW0gaXMgYWx3YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25k IGJ1ZmZlciBzaXplcywgd2hlcmUgaXQncworLy8gc3VmZmljaWVudCB0byBzaW1wbHkgYWx3YXlz IGZsdXNoIHVwb24gU3RhcnQoKS4KK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Rmx1c2go KSB7fQorCit2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZExvb3Aodm9pZCkgewor ICBpbnQgYXZhaWwsIGNvdW50LCByZXN1bHQ7CisKKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5n KSB7CisgICAgLy8gVXBkYXRlIHZvbHVtZSBpZiBuZWVkZWQKKyAgICBwdGhyZWFkX211dGV4X2xv Y2soJm11dGV4KTsKKyAgICBpZiAodm9scGVuZGluZykgeworICAgICAgdm9scGVuZGluZyA9IDA7 CisgICAgICBzaW9fc2V0dm9sKGhkbCwgdm9sKTsKKyAgICB9CisgICAgcHRocmVhZF9tdXRleF91 bmxvY2soJm11dGV4KTsKKworICAgIC8vIEdldCBkYXRhIHRvIHBsYXkKKyAgICBjb25zdCBiYXNl OjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3 X2RlbGF5LAorCXBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKyAgICBjb3VudCA9IHNvdXJjZS0+T25N b3JlRGF0YShkZWxheSwgYmFzZTo6VGltZVRpY2tzOjpOb3coKSwgMCwgYXVkaW9fYnVzLmdldCgp KTsKKyAgICBhdWRpb19idXMtPlRvSW50ZXJsZWF2ZWQoY291bnQsIFNhbXBsZUZvcm1hdFRvQnl0 ZXNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpLCBidWZmZXIpOworICAgIGlmIChjb3VudCA9PSAw KSB7CisgICAgICAvLyBXZSBoYXZlIHRvIHN1Ym1pdCBzb21ldGhpbmcgdG8gdGhlIGRldmljZQor ICAgICAgY291bnQgPSBhdWRpb19idXMtPmZyYW1lcygpOworICAgICAgbWVtc2V0KGJ1ZmZlciwg MCwgY291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KSk7CisgICAg ICBMT0coV0FSTklORykgPDwgIk5vIGRhdGEgdG8gcGxheSwgcnVubmluZyBlbXB0eSBjeWNsZS4i OworICAgIH0KKworICAgIC8vIFN1Ym1pdCBkYXRhIHRvIHRoZSBkZXZpY2UKKyAgICBhdmFpbCA9 IGNvdW50ICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisgICAgcmVz dWx0ID0gc2lvX3dyaXRlKGhkbCwgYnVmZmVyLCBhdmFpbCk7CisgICAgaWYgKHJlc3VsdCA9PSAw KSB7CisgICAgICBMT0coV0FSTklORykgPDwgIkF1ZGlvIGRldmljZSBkaXNjb25uZWN0ZWQuIjsK KyAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIFVwZGF0ZSBoYXJkd2FyZSBwb2ludGVyCisg ICAgaHdfZGVsYXkgKz0gY291bnQ7CisgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0 cHV0LmggYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0 LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYWQyMjBjYTk2ZTcK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tZmlsZXMv c25kaW9fb3V0cHV0LmgKQEAgLTAsMCArMSw4NiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRo ZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMg c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi ZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2lmbmRlZiBNRURJQV9BVURJT19T TkRJT19TTkRJT19PVVRQVVRfSF8KKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VU UFVUX0hfCisKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c25kaW8uaD4KKworI2lu Y2x1ZGUgImJhc2UvdGltZS90aWNrX2Nsb2NrLmgiCisjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUu aCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorCituYW1lc3BhY2UgbWVkaWEg eworCitjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRp b091dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorY2xhc3MgU25kaW9BdWRpb091dHB1dFN0cmVh bSA6IHB1YmxpYyBBdWRpb091dHB1dFN0cmVhbSB7CisgcHVibGljOgorICAvLyBUaGUgbWFuYWdl ciBpcyBjcmVhdGluZyB0aGlzIG9iamVjdAorICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKGNvbnN0 IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlv TWFuYWdlckJhc2UqIG1hbmFnZXIpOworICB2aXJ0dWFsIH5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFt KCk7CisKKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0uCisgIGJvb2wg T3BlbigpIG92ZXJyaWRlOworICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7CisgIHZvaWQgU3RhcnQo QXVkaW9Tb3VyY2VDYWxsYmFjayogY2FsbGJhY2spIG92ZXJyaWRlOworICB2b2lkIFN0b3AoKSBv dmVycmlkZTsKKyAgdm9pZCBTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgb3ZlcnJpZGU7CisgIHZv aWQgR2V0Vm9sdW1lKGRvdWJsZSogdm9sdW1lKSBvdmVycmlkZTsKKyAgdm9pZCBGbHVzaCgpIG92 ZXJyaWRlOworCisgIGZyaWVuZCB2b2lkIHNuZGlvX29ubW92ZSh2b2lkICphcmcsIGludCBkZWx0 YSk7CisgIGZyaWVuZCB2b2lkIHNuZGlvX29udm9sKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZv bCk7CisgIGZyaWVuZCB2b2lkICpzbmRpb190aHJlYWRzdGFydCh2b2lkICphcmcpOworCisgcHJp dmF0ZToKKyAgZW51bSBTdHJlYW1TdGF0ZSB7CisgICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBO b3Qgb3BlbmVkIHlldAorICAgIGtTdG9wcGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwg YnV0IG5vdCBzdGFydGVkIHlldAorICAgIGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRlZCwg ZGV2aWNlIHBsYXlpbmcKKyAgICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0 aW5nIGZvciB0aGUgcmVhbC10aW1lIHRocmVhZCB0byBleGl0CisgIH07CisKKyAgLy8gQy1zdHls ZSBjYWxsLWJhY2tzCisgIHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50 IGRlbHRhKTsKKyAgc3RhdGljIHZvaWQgT25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2lnbmVk IGludCB2b2wpOworICBzdGF0aWMgdm9pZCogVGhyZWFkRW50cnkodm9pZCAqYXJnKTsKKworICAv LyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9tIHRoZSBwcm9kdWNlciB0byB0aGUgZGV2aWNl CisgIHZvaWQgVGhyZWFkTG9vcCh2b2lkKTsKKworICAvLyBPdXIgY3JlYXRvciwgdGhlIGF1ZGlv IG1hbmFnZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgd2hlbiB3ZSBjbG9zZS4KKyAgQXVkaW9NYW5h Z2VyQmFzZSogbWFuYWdlcjsKKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisgIEF1ZGlv UGFyYW1ldGVycyBwYXJhbXM7CisgIC8vIFNvdXJjZSBzdG9yZXMgZGF0YSBoZXJlCisgIHN0ZDo6 dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworICAvLyBDYWxsLWJhY2sgdGhhdCBwcm9k dWNlcyBkYXRhIHRvIHBsYXkKKyAgQXVkaW9Tb3VyY2VDYWxsYmFjayogc291cmNlOworICAvLyBI YW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorICBzdHJ1Y3Qgc2lvX2hkbCogaGRsOworICAvLyBD dXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKyAg Ly8gSGlnaCBwcmlvcml0eSB0aHJlYWQgcnVubmluZyBUaHJlYWRMb29wKCkKKyAgcHRocmVhZF90 IHRocmVhZDsKKyAgLy8gUHJvdGVjdHMgdm9sLCB2b2xwZW5kaW5nIGFuZCBod19kZWxheQorICBw dGhyZWFkX211dGV4X3QgbXV0ZXg7CisgIC8vIEN1cnJlbnQgdm9sdW1lIGluIHRoZSAwLi5TSU9f TUFYVk9MIHJhbmdlCisgIGludCB2b2w7CisgIC8vIFNldCB0byAxIGlmIHZvbHVtZXMgbXVzdCBi ZSByZWZyZXNoZWQgaW4gdGhlIHJlYWx0aW1lIHRocmVhZAorICBpbnQgdm9scGVuZGluZzsKKyAg Ly8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUKKyAgaW50IGh3X2Rl bGF5OworICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNv bXBhdGlibGUgZm9ybWF0CisgIGNoYXIqIGJ1ZmZlcjsKKworICBESVNBTExPV19DT1BZX0FORF9B U1NJR04oU25kaW9BdWRpb091dHB1dFN0cmVhbSk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgbWVk aWEKKworI2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRpby1wYXRjaGVzL21lZGlhX2F1ZGlv X2xpbnV4X2F1ZGlvX21hbmFnZXJfbGludXguY2MucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTMv ZmlsZXMvc25kaW8tcGF0Y2hlcy9tZWRpYV9hdWRpb19saW51eF9hdWRpb19tYW5hZ2VyX2xpbnV4 LmNjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2Y4ZTgx YjExZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEzL2ZpbGVzL3NuZGlv LXBhdGNoZXMvbWVkaWFfYXVkaW9fbGludXhfYXVkaW9fbWFuYWdlcl9saW51eC5jYy5wYXRjaApA QCAtMCwwICsxLDQzIEBACitkaWZmIC0tZ2l0IGEvY2hyb21pdW0vbWVkaWEvYXVkaW8vbGludXgv YXVkaW9fbWFuYWdlcl9saW51eC5jYyBiL2Nocm9taXVtL21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlv X21hbmFnZXJfbGludXguY2MKK2luZGV4IDVkNzAzNTQ5MzcyLi45ZTYwYjQwYzc0OSAxMDA2NDQK Ky0tLSBtZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCisrKysgbWVkaWEv YXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYworQEAgLTIwLDYgKzIwLDEwIEBACisg I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3B1bHNlL2F1ZGlvX21hbmFnZXJfcHVsc2UuaCIKKyAjaW5j bHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvcHVsc2VfdXRpbC5oIgorICNlbmRpZgorKyNpZiBkZWZp bmVkKFVTRV9TTkRJTykKKysjaW5jbHVkZSA8c25kaW8uaD4KKysjaW5jbHVkZSAibWVkaWEvYXVk aW8vb3BlbmJzZC9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaCIKKysjZW5kaWYKKyAKKyBuYW1lc3Bh Y2UgbWVkaWEgeworIAorQEAgLTI3LDcgKzMxLDggQEAgZW51bSBMaW51eEF1ZGlvSU8geworICAg a1B1bHNlLAorICAga0Fsc2EsCisgICBrQ3JhcywKKy0gIGtBdWRpb0lPTWF4ID0ga0NyYXMgIC8v IE11c3QgYWx3YXlzIGJlIGVxdWFsIHRvIGxhcmdlc3QgbG9nZ2VkIGVudHJ5LgorKyAga1NuZGlv LAorKyAga0F1ZGlvSU9NYXggPSBrU25kaW8gIC8vIE11c3QgYWx3YXlzIGJlIGVxdWFsIHRvIGxh cmdlc3QgbG9nZ2VkIGVudHJ5LgorIH07CisgCisgc3RkOjp1bmlxdWVfcHRyPG1lZGlhOjpBdWRp b01hbmFnZXI+IENyZWF0ZUF1ZGlvTWFuYWdlcigKK0BAIC00MSw2ICs0NiwxNyBAQCBzdGQ6OnVu aXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRlQXVkaW9NYW5hZ2VyKAorICAgfQor ICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykKKysgIHN0cnVjdCBzaW9faGRsICog aGRsID0gTlVMTDsKKysgIGlmICgoaGRsPXNpb19vcGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAx KSkgIT0gTlVMTCkgeworKyAgICBzaW9fY2xvc2UoaGRsKTsKKysgICAgVU1BX0hJU1RPR1JBTV9F TlVNRVJBVElPTigiTWVkaWEuTGludXhBdWRpb0lPIiwga1NuZGlvLCBrQXVkaW9JT01heCArMSk7 CisrICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvTWFuYWdlck9wZW5CU0Q+KHN0ZDo6 bW92ZShhdWRpb190aHJlYWQpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAgfQorKyAgRFZMT0coMSkgPDwgIlNu ZGlvIGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIE9TIjsKKysjZW5kaWYKKysKKyAjaWYgZGVmaW5l ZChVU0VfUFVMU0VBVURJTykKKyAgIHBhX3RocmVhZGVkX21haW5sb29wKiBwYV9tYWlubG9vcCA9 IG51bGxwdHI7CisgICBwYV9jb250ZXh0KiBwYV9jb250ZXh0ID0gbnVsbHB0cjsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9j aHJvbWl1bV9tZWRpYV9CVUlMRC5nbi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9z bmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9CVUlMRC5nbi5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVjNjA0MDAyNjY4OAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRpby1wYXRjaGVzL3Ny Y18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9CVUlMRC5nbi5wYXRjaApAQCAtMCwwICsxLDEyIEBA CistLS0gbWVkaWEvQlVJTEQuZ24JMjAyMC0wMy0yNCAxMDoxNjozMC4wMDAwMDAwMDAgKzAxMDAK KysrKyAtCTIwMjAtMDQtMDYgMTQ6MzI6MjcuOTYwODE3NTEzICswMjAwCitAQCAtNjUsNiArNjUs OSBAQAorICAgaWYgKHVzZV9jcmFzKSB7CisgICAgIGRlZmluZXMgKz0gWyAiVVNFX0NSQVMiIF0K KyAgIH0KKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgZGVmaW5lcyArPSBbICJVU0VfU05ESU8i IF0KKysgIH0KKyB9CisgCisgIyBJbnRlcm5hbCBncm91cGluZyBvZiB0aGUgY29uZmlncyBuZWNl c3NhcnkgdG8gc3VwcG9ydCBzdWItZm9sZGVycyBoYXZpbmcgdGhlaXIKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1 bV9tZWRpYV9hdWRpb19CVUlMRC5nbi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9z bmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9hdWRpb19CVUlMRC5nbi5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM4NTZkZTBiZjJl YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRpby1wYXRj aGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9hdWRpb19CVUlMRC5nbi5wYXRjaApAQCAt MCwwICsxLDIzIEBACistLS0gbWVkaWEvYXVkaW8vQlVJTEQuZ24JMjAyMC0wMy0yNCAxMDoxNjoz MC4wMDAwMDAwMDAgKzAxMDAKKysrKyAtCTIwMjAtMDQtMDYgMTQ6MzE6MjguODcxNDUwMjE3ICsw MjAwCitAQCAtMjMyLDkgKzIzMiwxOSBAQAorICAgICBkZXBzICs9IFsgIi8vbWVkaWEvYmFzZS9h bmRyb2lkOm1lZGlhX2puaV9oZWFkZXJzIiBdCisgICB9CisgCistICBpZiAoaXNfbGludXgpIHsK KysgIGlmIChpc19saW51eCkgeworICAgICBzb3VyY2VzICs9IFsgImxpbnV4L2F1ZGlvX21hbmFn ZXJfbGludXguY2MiIF0KKyAgIH0KKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgbGlicyArPSBb ICJzbmRpbyIgXQorKyAgICBzb3VyY2VzICs9IFsKKysgICAgICAib3BlbmJzZC9hdWRpb19tYW5h Z2VyX29wZW5ic2QuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19pbnB1dC5jYyIsCisrICAgICAg InNuZGlvL3NuZGlvX2lucHV0LmgiLAorKyAgICAgICJzbmRpby9zbmRpb19vdXRwdXQuY2MiLAor KyAgICAgICJzbmRpby9zbmRpb19vdXRwdXQuaCIKKysgICBdCisrIH0KKyAKKyAgIGlmICh1c2Vf YWxzYSkgeworICAgICBsaWJzICs9IFsgImFzb3VuZCIgXQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9l bGVjdHJvbjEzL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlh X21lZGlhX19vcHRpb25zLmduaS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMy9maWxlcy9zbmRp by1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9tZWRpYV9fb3B0aW9ucy5nbmku cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xNDgwN2Q4ZTFk MzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTMvZmlsZXMvc25kaW8tcGF0 Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfbWVkaWFfX29wdGlvbnMuZ25pLnBhdGNo CkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBtZWRpYS9tZWRpYV9vcHRpb25zLmduaQkyMDIwLTAzLTI0 IDEwOjE2OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIC0JMjAyMC0wNC0wNiAxNDoyOToyMi45NTg2 MzA3ODMgKzAyMDAKK0BAIC0xMTQsNiArMTE0LDkgQEAKKyAgICMgRW5hYmxlcyBydW50aW1lIHNl bGVjdGlvbiBvZiBBTFNBIGxpYnJhcnkgZm9yIGF1ZGlvLgorICAgdXNlX2Fsc2EgPSBmYWxzZQor IAorKyAgIyBFbmFibGVzIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIHNuZGlvIGxpYnJhcnkgZm9yIGF1 ZGlvLgorKyAgdXNlX3NuZGlvID0gZmFsc2UKKysKKyAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBv biBub24tQW5kcm9pZCwgbm9uLU1hYyBQT1NJWCBzeXN0ZW1zLgorICAgIyBBbHNhIHNob3VsZCBi ZSB1c2VkIG9uIGRlc2t0b3AgQ2hyb21lY2FzdCBhbmQgYXVkaW8tb25seSBDaHJvbWVjYXN0IGJ1 aWxkcy4KKyAgIGlmIChpc19wb3NpeCAmJiAhaXNfYW5kcm9pZCAmJiAhaXNfbWFjICYmCmRpZmYg LS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvdGVtcGxhdGUgYi9zcmNwa2dzL2VsZWN0cm9uMTMv dGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40Y2IxM2Qz MzNiM2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTMvdGVtcGxhdGUKQEAg LTAsMCArMSwzNzcgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VsZWN0cm9uMTMnCitwa2duYW1l PWVsZWN0cm9uMTMKK3ZlcnNpb249MTMuMi4yCityZXZpc2lvbj0xCitfbm9kZXZlcj0xNC4xNi4w CitfY2hyb21pdW12ZXI9OTEuMC40NDcyLjY5CithcmNocz0ieDg2XzY0KiBpNjg2KiBhYXJjaDY0 KiBwcGM2NGxlKiIKK2NyZWF0ZV93cmtzcmM9eWVzCitidWlsZF93cmtzcmM9InNyYyIKK2hvc3Rt YWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNsYW5nIGNsYW5nKSBweXRob24gcGtnY29uZiBwZXJsIGdw ZXJmIGJpc29uIG5pbmphIG5vZGVqcyBod2lkcworIGxpYndlYnAtZGV2ZWwgZnJlZXR5cGUtZGV2 ZWwgaGFyZmJ1enotZGV2ZWwgbGlicG5nLWRldmVsIG5zcy1kZXZlbCB3aGljaCBnaXQgbGliZXZl bnQtZGV2ZWwKKyBwY2l1dGlscy1kZXZlbCBsaWJhdG9taWMtZGV2ZWwgZmZtcGVnLWRldmVsIGxp YnhtbDItZGV2ZWwgbGliZ2xpYi1kZXZlbCB5YXJuIG9wZW5qZGsgbGlieHNsdC1kZXZlbAorIG9w dXMtZGV2ZWwgbGliWGN1cnNvci1kZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYlh0c3QtZGV2 ZWwgbGliWHJhbmRyLWRldmVsIGxpYlhTY3JuU2F2ZXItZGV2ZWwKKyBhbHNhLWxpYi1kZXZlbCBy ZTItZGV2ZWwgc25hcHB5LWRldmVsIG1pdC1rcmI1LWRldmVsICQodm9wdF9pZiBwdWxzZWF1ZGlv IHB1bHNlYXVkaW8tZGV2ZWwpCisgJCh2b3B0X2lmIHNuZGlvIHNuZGlvLWRldmVsKSBqcSIKK21h a2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBuc3MtZGV2ZWwg cGNpdXRpbHMtZGV2ZWwKKyBsaWJYaS1kZXZlbCBsaWJnY3J5cHQtZGV2ZWwgbGliZ25vbWUta2V5 cmluZy1kZXZlbCBjdXBzLWRldmVsIGVsZnV0aWxzLWRldmVsCisgbGliWGNvbXBvc2l0ZS1kZXZl bCBzcGVlY2gtZGlzcGF0Y2hlci1kZXZlbCBsaWJYcmFuZHItZGV2ZWwgbWl0LWtyYjUtZGV2ZWwK KyBsaWJYU2NyblNhdmVyLWRldmVsIGFsc2EtbGliLWRldmVsIHNuYXBweS1kZXZlbCBsaWJkcm0t ZGV2ZWwKKyBsaWJ4bWwyLWRldmVsIGxpYnhzbHQtZGV2ZWwgJCh2b3B0X2lmIHB1bHNlYXVkaW8g cHVsc2VhdWRpby1kZXZlbCkgbGliZXhpZi1kZXZlbAorIGxpYlhjdXJzb3ItZGV2ZWwgbGliZmxh Yy1kZXZlbCBzcGVleC1kZXZlbCBsaWJtdHAtZGV2ZWwgbGlid2VicC1kZXZlbAorIGxpYmpwZWct dHVyYm8tZGV2ZWwgbGliZXZlbnQtZGV2ZWwganNvbi1jLWRldmVsIGhhcmZidXp6LWRldmVsCisg bWluaXppcC1kZXZlbCBqc29uY3BwLWRldmVsIHpsaWItZGV2ZWwgbGliY2FwLWRldmVsIGxpYlhk YW1hZ2UtZGV2ZWwKKyByZTItZGV2ZWwgZm9udGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbCBv cHVzLWRldmVsIGxpYmF0b21pYy1kZXZlbAorICQodm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCkg ZmZtcGVnLWRldmVsIGxpYnZhLWRldmVsIGxpYnV2LWRldmVsIGMtYXJlcy1kZXZlbCBsaWJub3Rp ZnktZGV2ZWwKKyAkKHZvcHRfaWYgcGlwZXdpcmUgcGlwZXdpcmUtZGV2ZWwpIHdheWxhbmQtZGV2 ZWwgbGliY3VybC1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzIHBsYXRmb3JtIGFwcGxpY2F0aW9u IGZyYW1ld29yayBiYXNlZCBvbiB3ZWIgdGVjaG5vbG9naWVzIgorbWFpbnRhaW5lcj0iSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PiIKK2xpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKK2hvbWVwYWdlPSJo dHRwczovL2VsZWN0cm9uanMub3JnIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZWxl Y3Ryb24vZWxlY3Ryb24vYXJjaGl2ZS92JHZlcnNpb24udGFyLmd6PmVsZWN0cm9uLSR7dmVyc2lv bn0udGFyLmd6CisgaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jaHJv bWl1bS1icm93c2VyLW9mZmljaWFsL2Nocm9taXVtLSRfY2hyb21pdW12ZXIudGFyLnh6CisgaHR0 cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2FyY2hpdmUvdiRfbm9kZXZlci50YXIuZ3o+bm9k ZS0kX25vZGV2ZXIudGFyLmd6IgorY2hlY2tzdW09ImQ1ZTM1YjQxMmZjMDU1ZTZmYzU2MzY3MTcz OTIxOTMwMDRiMzdmZGQ2NjkzMDJmNTI4ZWVlNzIzMmIzNGQ5YzUKKyAxZjY4NDNjNjM2ZjRhZGVl NmIwNmMzMDExOTM4MTBjY2UxMDNlZTNlNDU4MmQ0Y2JjMzFjOTE1ZWZjM2QwYzdiCisgYmNkZjg2 OWIwNzQzNDA1NTE1ZWU4OTdiMTA0N2I1ZTg1MWE3MTdlNDI2YjQ5NzRkMjY1MzdjOWIxMGRmZDUz YSIKKworY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqLW11c2wpIG1ha2Vk ZXBlbmRzKz0iIGxpYnVjb250ZXh0LWRldmVsIiA7OworZXNhYworCitub19nZW5lcmljX3BrZ2Nv bmZpZ19saW5rPXllcworbGliMzJkaXNhYmxlZD15ZXMKK25vcGllPXllcyAgIyBjb250YWlucyB0 b29scyB0aGF0IGFyZSBub3QgUElFLCBlbmFibGVzIFBJRSBpdHNlbGYKKworYnVpbGRfb3B0aW9u cz0icHVsc2VhdWRpbyBzbmRpbyBjbGFuZyBwaXBld2lyZSIKK2J1aWxkX29wdGlvbnNfZGVmYXVs dD0icHVsc2VhdWRpbyBjbGFuZyBwaXBld2lyZSIKKworaWYgWyAiJGJ1aWxkX29wdGlvbl9jbGFu ZyIgXTsgdGhlbgorCW5vY3Jvc3M9Ik5vIHByb3BlciBzZXR1cCBmb3IgdXNpbmcgY2xhbmcgYXMg Y3Jvc3MgY29tcGlsZXIgaW4gdm9pZCB5ZXQiCitlbGlmIFsgIiR7WEJQU19UQVJHRVRfTUFDSElO RSUlLW11c2x9IiA9ICJhYXJjaDY0IiBdOyB0aGVuCisJYnJva2VuPSJGYWxscyBhcGFydCBhdCBy dW50aW1lIHdoZW4gY29tcGlsZWQgd2l0aCBnY2MiCitmaQorCitfYnVpbGR0eXBlPVJlbGVhc2UK K19pc19kZWJ1Zz1mYWxzZQorCitDRkxBR1M9Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbiAt ZlBJQyIKK0NYWEZMQUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24gLWZQSUMiCisKK19h cHBseV9wYXRjaCgpIHsKKwlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgor CisJaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgorCQltc2dfbm9ybWFsICIkcGtn dmVyOiBwYXRjaGluZzogJHtwbmFtZX0uXG4iCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRv dWNoIC4ke3BuYW1lfV9kb25lCisJZmkKK30KKworX2dldF9jaHJvbWl1bV9hcmNoKCkgeworCWNh c2UgIiQxIiBpbgorCQl4ODZfNjQqKSBlY2hvIHg2NCA7OworCQlpNjg2KikgZWNobyB4ODYgOzsK KwkJYXJtKikgZWNobyBhcm0gOzsKKwkJYWFyY2g2NCopIGVjaG8gYXJtNjQgOzsKKwkJcHBjNjQq KSBlY2hvIHBwYzY0IDs7CisJCXBwYyopIGVjaG8gcHBjIDs7CisJCW1pcHNlbCopIGVjaG8gbWlw c2VsIDs7CisJCW1pcHMqKSBlY2hvIG1pcHMgOzsKKwkJKikgbXNnX2Vycm9yICIkcGtndmVyOiBj YW5ub3QgYmUgY29tcGlsZWQgZm9yICR7WEJQU19UQVJHRVRfTUFDSElORX0uXG4iIDs7CisJZXNh YworfQorCitwb3N0X2V4dHJhY3QoKSB7CisJbG4gLXMgY2hyb21pdW0tJF9jaHJvbWl1bXZlciBz cmMKKwlta2RpciAtcCBzcmMvdGhpcmRfcGFydHkvCisJbG4gLXMgLi4vLi4vbm9kZS0kX25vZGV2 ZXIgc3JjL3RoaXJkX3BhcnR5L2VsZWN0cm9uX25vZGUKKwlsbiAtcyAuLi9lbGVjdHJvbi0ke3Zl cnNpb259IHNyYy9lbGVjdHJvbgorCit9Citwb3N0X3BhdGNoKCkgeworCWNkICR3cmtzcmMKKwlm b3IgeCBpbiAkRklMRVNESVIvcGF0Y2hlcy8qOyBkbworCQljYXNlICIke3gjIyovfSIgaW4KKwkJ CWVsZWN0cm9uKi5wYXRjaCkKKwkJCQljZCBzcmMvZWxlY3Ryb24KKwkJCQlfYXBwbHlfcGF0Y2gg LXAxICIkeCIKKwkJCQljZCAiJHdya3NyYyI7OworCQllc2FjCisJZG9uZQorCisJIyBTaWdoLCBl bGVjdHJvbiB1c2VzIGdpdCBhbS4uLgorCWlmIFsgISAtZiAiLmVsZWN0cm9uX3BhdGNoZXNfZG9u ZSIgXTsgdGhlbgorCW12IHNyYy9lbGVjdHJvbi9wYXRjaGVzL2NvbmZpZy5qc29uIGNvbmZpZy5q c29uLm9sZAorCWpxICdkZWwoLiJzcmMvZWxlY3Ryb24vcGF0Y2hlcy9NYW50bGUiLCAuInNyYy9l bGVjdHJvbi9wYXRjaGVzL1JlYWN0aXZlT2JqQyIsCisJCS4ic3JjL2VsZWN0cm9uL3BhdGNoZXMv c3F1aXJyZWwubWFjIiwgLiJzcmMvZWxlY3Ryb24vcGF0Y2hlcy9uYW4iKScgXAorCQljb25maWcu anNvbi5vbGQgPiBzcmMvZWxlY3Ryb24vcGF0Y2hlcy9jb25maWcuanNvbgorCisJcHl0aG9uMiBz cmMvZWxlY3Ryb24vc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSBzcmMvZWxlY3Ryb24vcGF0 Y2hlcy9jb25maWcuanNvbiB8IHdoaWxlIHJlYWQgLXIgcmVwb3BhdGg7IGRvCisJCWNkICIkd3Jr c3JjIi8iJHJlcG9wYXRoIgorCQlnaXQgaW5pdCAtcQorCQlnaXQgY29uZmlnICJnYy5hdXRvIiAw CisJCWlmIFsgIiRyZXBvcGF0aCIgIT0gInNyYyIgXTsgdGhlbgorCQkJZWNobyAiLyR7cmVwb3Bh dGgjc3JjL30iID4+ICIkd3Jrc3JjLyRidWlsZF93cmtzcmMvLmdpdGlnbm9yZSIKKwkJZmkKKwkJ Z2l0IGFkZCAuCisJCWdpdCAtYyAndXNlci5uYW1lPUVsZWN0cm9uIGJ1aWxkJyAtYyAndXNlci5l bWFpbD1lbGVjdHJvbkBlYnVpbGQnIFwKKwkJCWNvbW1pdCAtcSAtbSAiLiIgfHwgdHJ1ZQorCWRv bmUKKwljZCAkd3Jrc3JjCisJcHl0aG9uMiBzcmMvZWxlY3Ryb24vc2NyaXB0L2FwcGx5X2FsbF9w YXRjaGVzLnB5IHNyYy9lbGVjdHJvbi9wYXRjaGVzL2NvbmZpZy5qc29uCisJdG91Y2ggLmVsZWN0 cm9uX3BhdGNoZXNfZG9uZQorCWZpCisKKwlmb3IgeCBpbiAkRklMRVNESVIvcGF0Y2hlcy8qOyBk bworCQljYXNlICIke3gjIyovfSIgaW4KKwkJCWNocm9taXVtKi5wYXRjaCkKKwkJCQljZCBzcmMK KwkJCQlfYXBwbHlfcGF0Y2ggLXAxICIkeCIKKwkJCQljZCAiJHdya3NyYyI7OworCQllc2FjCisJ ZG9uZQorCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwlmb3Ig eCBpbiAkRklMRVNESVIvbXVzbC1wYXRjaGVzLyo7IGRvCisJCWNhc2UgIiR7eCMjKi99IiBpbgor CQkJY2hyb21pdW0qLnBhdGNoKQorCQkJCWNkIHNyYworCQkJCV9hcHBseV9wYXRjaCAtcDAgIiR4 IgorCQkJCWNkICIkd3Jrc3JjIjs7CisJCQllbGVjdHJvbioucGF0Y2gpCisJCQkJY2Qgc3JjL2Vs ZWN0cm9uCisJCQkJX2FwcGx5X3BhdGNoIC1wMSAiJHgiCisJCQkJY2QgIiR3cmtzcmMiOzsKKwkJ ZXNhYworCWRvbmUKKwlmaQorCWlmIFsgIiRidWlsZF9vcHRpb25fc25kaW8iIF07IHRoZW4KKwkJ bWtkaXIgLXAgJHt3cmtzcmN9LyR7YnVpbGRfd3Jrc3JjfS9tZWRpYS9hdWRpby97c25kaW8sb3Bl bmJzZH0KKwkJY3AgJHtGSUxFU0RJUn0vc25kaW8tZmlsZXMvc25kaW9fKnB1dC4qIFwKKwkJCSR7 d3Jrc3JjfS8ke2J1aWxkX3dya3NyY30vbWVkaWEvYXVkaW8vc25kaW8KKwkJY3AgJHtGSUxFU0RJ Un0vc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLiogXAorCQkJJHt3cmtzcmN9LyR7 YnVpbGRfd3Jrc3JjfS9tZWRpYS9hdWRpby9vcGVuYnNkCisJCWZvciBmIGluICIke0ZJTEVTRElS fSIvc25kaW8tcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJY2Qgc3JjCisJCQlfYXBwbHlfcGF0Y2gg LXAwICIkZiIKKwkJCWNkICIkd3Jrc3JjIgorCQlkb25lCisJZmkKK30KKworcHJlX2NvbmZpZ3Vy ZSgpIHsKKwljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjIgorCisJIyBodHRwczovL2dyb3Vwcy5n b29nbGUuY29tL2EvY2hyb21pdW0ub3JnL2QvdG9waWMvY2hyb21pdW0tcGFja2FnZXJzLzlKWDFO Mm5mNFBVL2Rpc2N1c3Npb24KKwl0b3VjaCBjaHJvbWUvdGVzdC9kYXRhL3dlYnVpL2kxOG5fcHJv Y2Vzc19jc3NfdGVzdC5odG1sCisJIyBVc2UgdGhlIGZpbGUgYXQgcnVuIHRpbWUgaW5zdGVhZCBv ZiBlZmZlY3RpdmVseSBjb21waWxpbmcgaXQgaW4KKwlzZWQgJ3N8Ly90aGlyZF9wYXJ0eS91c2Jf aWRzL3VzYi5pZHN8L3Vzci9zaGFyZS9od2RhdGEvdXNiLmlkc3xnJyBcCisJCS1pIHNlcnZpY2Vz L2RldmljZS9wdWJsaWMvY3BwL3VzYi9CVUlMRC5nbgorCisJbWtkaXIgLXAgdGhpcmRfcGFydHkv bm9kZS9saW51eC9ub2RlLWxpbnV4LXg2NC9iaW4KKwlsbiAtcyAvdXNyL2Jpbi9ub2RlIHRoaXJk X3BhcnR5L25vZGUvbGludXgvbm9kZS1saW51eC14NjQvYmluLworCisJIyBjb21waWxlIGduIGVh cmx5LCBzbyBpdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBnbmkgc3R1ZmYKKwltc2dfbm9ybWFs ICJCb290c3RyYXBwaW5nIEdOXG4iCisJQ0M9IiR7Q0NfRk9SX0JVSUxEOi0kQ0N9IiBDWFg9IiR7 Q1hYX0ZPUl9CVUlMRDotJENYWH0iIExEPSIke0xEX0ZPUl9CVUlMRDotJExEfSIgXAorCUNGTEFH Uz0iJHtDRkxBR1NfRk9SX0JVSUxEOi0kQ0ZMQUdTfSIgQ1hYRkxBR1M9IiR7Q1hYRkxBR1NfRk9S X0JVSUxEOi0kQ1hYRkxBR1N9IiBcCisJTERGTEFHUz0iJHtYQlBTX0xERkxBR1N9IiBcCisJCXB5 dGhvbjIgdG9vbHMvZ24vYm9vdHN0cmFwL2Jvb3RzdHJhcC5weSAtcyAtdiAtLXNraXAtZ2VuZXJh dGUtYnVpbGRmaWxlcworCisJIyB3ZSBuZWVkIHRvIGdlbmVyYXRlIHBwYzY0IHN0dWZmIGZvciBs aWJ2cHggYXMgaXQncyBub3Qgc2hpcHBlZAorCSMgdGhpcyBoYXMgdG8gYmUgZG9uZSBiZWZvcmUg dW5idW5kbGluZywgYnV0IGFmdGVyIGduIGlzIGJ1aWx0CisJIyBjb21tZW50IG91dCBpZiB3ZSBz d2l0Y2ggYmFjayB0byBzeXN0ZW0gbGlidnB4IGFnYWluIGxhdGVyCisJY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCXB1c2hkIHRoaXJkX3BhcnR5L2xpYnZweAor CQkJbWtkaXIgLXAgc291cmNlL2NvbmZpZy9saW51eC9wcGM2NAorCQkJIyBuZWVkIFBBVEggdG8g ZmluZCBnbgorCQkJUEFUSD0iJHt3cmtzcmN9LyR7YnVpbGRfd3Jrc3JjfS9vdXQvUmVsZWFzZTok UEFUSCIgXAorCQkJCS4vZ2VuZXJhdGVfZ25pLnNoIHx8IFwKKwkJCQkJbXNnX2Vycm9yICJmYWls ZWQgdG8gZ2VuZXJhdGUgbGlidnB4IGduaSIKKwkJCXBvcGQKKwkJCTs7CisJZXNhYworCisJIyBy ZXVzYWJsZSBzeXN0ZW0gbGlicmFyeSBzZXR0aW5ncworCWxvY2FsIHVzZV9zeXN0ZW09IgorCQlm Zm1wZWcKKwkJZmxhYworCQlmb250Y29uZmlnCisJCWZyZWV0eXBlCisJCWhhcmZidXp6LW5nCisJ CWxpYmRybQorCQlsaWJldmVudAorCQlsaWJqcGVnCisJCWxpYnBuZworCQlsaWJ3ZWJwCisJCWxp YnhtbAorCQlsaWJ4c2x0CisJCW9wdXMKKwkJcmUyCisJCXNuYXBweQorCQkiCisJZm9yIF9saWIg aW4gJHVzZV9zeXN0ZW0gbGlianBlZ190dXJibzsgZG8KKwkJbXNnX25vcm1hbCAiUmVtb3Zpbmcg YnVpbGRzY3JpcHRzIGZvciBzeXN0ZW0gcHJvdmlkZWQgJF9saWJcbiIKKwkJZmluZCAtdHlwZSBm IC1wYXRoICIqdGhpcmRfcGFydHkvJF9saWIvKiIgXAorCQkJXCEgLXBhdGggIip0aGlyZF9wYXJ0 eS8kX2xpYi9jaHJvbWl1bS8qIiBcCisJCQlcISAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGliL2dv b2dsZS8qIiBcCisJCQlcISAtcGF0aCAnLi9iYXNlL3RoaXJkX3BhcnR5L2ljdS8qJyBcCisJCQlc ISAtcGF0aCAnLi90aGlyZF9wYXJ0eS9wZGZpdW0vdGhpcmRfcGFydHkvZnJlZXR5cGUvaW5jbHVk ZS9wc3RhYmxlcy5oJyBcCisJCQlcISAtcGF0aCAnLi90aGlyZF9wYXJ0eS9oYXJmYnV6ei1uZy91 dGlscy9oYl9zY29wZWQuaCcgXAorCQkJXCEgLXJlZ2V4ICcuKlwuXChnblx8Z25pXHxpc29sYXRl XHxweVwpJyBcCisJCQktZGVsZXRlCisJZG9uZQorCisKKwltc2dfbm9ybWFsICJSZXBsYWNpbmcg Z24gZmlsZXNcbiIKKwlweXRob24yIGJ1aWxkL2xpbnV4L3VuYnVuZGxlL3JlcGxhY2VfZ25fZmls ZXMucHkgLS1zeXN0ZW0tbGlicmFyaWVzIFwKKwkJJHVzZV9zeXN0ZW0KKwl0aGlyZF9wYXJ0eS9s aWJhZGRyZXNzaW5wdXQvY2hyb21pdW0vdG9vbHMvdXBkYXRlLXN0cmluZ3MucHkKK30KKworZG9f Y29uZmlndXJlKCkgeworCWxvY2FsIHRhcmdldF9hcmNoPSIkKF9nZXRfY2hyb21pdW1fYXJjaCAk e1hCUFNfVEFSR0VUX01BQ0hJTkV9KSIKKwlsb2NhbCBob3N0X2FyY2g9IiQoX2dldF9jaHJvbWl1 bV9hcmNoICR7WEJQU19NQUNISU5FfSkiCisJIyB0aGUgYnVpbGQgc3lzdGVtIHdpbGwgc2V0IG1h cmNoIGZvciB1c2UsIGFkZGluZyBpdCB0byBjZmxhZ3Mgd2lsbCBicmVhayBidWlsZHMKKwlleHBv cnQgQ1hYRkxBR1M9JCggc2hvcHQgLXMgZXh0Z2xvYjsgZWNobyAke0NYWEZMQUdTLy1tYXJjaD0q KFteIF0pfSApCisJZXhwb3J0IENGTEFHUz0kKCBzaG9wdCAtcyBleHRnbG9iOyBlY2hvICR7Q0ZM QUdTLy1tYXJjaD0qKFteIF0pfSApCisJZXhwb3J0IENGTEFHUz0ke0NGTEFHUy8tZy99CisJZXhw b3J0IENYWEZMQUdTPSR7Q1hYRkxBR1MvLWcvfQorCWxvY2FsIGNvbmY9KCkKKwljZCB0aGlyZF9w YXJ0eS9lbGVjdHJvbl9ub2RlCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWNvbmZf YXJncz0iIC0tZGVzdC1jcHU9JHt0YXJnZXRfYXJjaH0gLS1jcm9zcy1jb21waWxpbmciCisJZmkK KwkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIFwKKwkJLS1zaGFyZWQtemxpYiBcCisJCS0tc2hh cmVkLWxpYnV2IFwKKwkJLS1zaGFyZWQtb3BlbnNzbCBcCisJCS0tc2hhcmVkLWNhcmVzIFwKKwkJ LS1vcGVuc3NsLXVzZS1kZWYtY2Etc3RvcmUgXAorCQktLXdpdGhvdXQtbnBtIFwKKwkJLS13aXRo b3V0LWR0cmFjZSBcCisJCS0td2l0aG91dC1idW5kbGVkLXY4IFwKKwkJJHtjb25mX2FyZ3N9CisK KwljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjIi9lbGVjdHJvbgorCXlhcm4gaW5zdGFsbAorCWNk ICIkd3Jrc3JjLyRidWlsZF93cmtzcmMiCisKKwlpZiBbICIkYnVpbGRfb3B0aW9uX2NsYW5nIiBd OyB0aGVuCisJCWV4cG9ydCBDQz1jbGFuZworCQlleHBvcnQgQ1hYPWNsYW5nKysKKwkJZXhwb3J0 IEhPU1RfQ0M9Y2xhbmcKKwkJZXhwb3J0IEhPU1RfQ1hYPWNsYW5nKysKKwllbHNlCisJCWV4cG9y dCBDWFhGTEFHUz0iJENYWEZMQUdTIC1mcGVybWlzc2l2ZSIKKwkJZXhwb3J0IEJVSUxEX0NYWEZM QUdTPSIkQlVJTERfQ1hYRkxBR1MgLWZwZXJtaXNzaXZlIgorCQlleHBvcnQgQlVJTERfQVI9IiRB Ul9ob3N0IgorCQlleHBvcnQgQlVJTERfTk09IiROTV9ob3N0IgorCWZpCisKKwljb25mKz0oCisJ CSdibGlua19zeW1ib2xfbGV2ZWw9MCcKKwkJJ2NsYW5nX3VzZV9jaHJvbWVfcGx1Z2lucz1mYWxz ZScKKwkJJ2N1c3RvbV90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxl OmRlZmF1bHQiJworCSkKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJY29uZis9KAor CQkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZTpob3N0 IicKKwkJCSd2OF9zbmFwc2hvdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3Vu YnVuZGxlOmhvc3QiJworCQkJImhvc3RfcGtnX2NvbmZpZz1cIiRQS0dfQ09ORklHX0ZPUl9CVUlM RFwiIgorCQkJInBrZ19jb25maWc9XCIkUEtHX0NPTkZJR1wiIgorCQkpCisJZWxzZQorCQljb25m Kz0oCisJCQknaG9zdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxl OmRlZmF1bHQiJworCQkJJ3Y4X3NuYXBzaG90X3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4v bGludXgvdW5idW5kbGU6ZGVmYXVsdCInCisJCSkKKwlmaQorCWlmIFsgIiRidWlsZF9vcHRpb25f c25kaW8iIF07IHRoZW4KKwkJY29uZis9KAorCQkJJ3VzZV9zbmRpbz10cnVlJworCQkpCisJZmkK KwlpZiBbIC1uICIkWEJQU19ERUJVR19QS0dTIiBdOyB0aGVuCisJCWNvbmYrPSgnc3ltYm9sX2xl dmVsPTEnKQorCWVsc2UKKwkJY29uZis9KCdzeW1ib2xfbGV2ZWw9MCcpCisJZmkKKwljb25mKz0o CisJCSdlbmFibGVfaGFuZ291dF9zZXJ2aWNlc19leHRlbnNpb249dHJ1ZScKKwkJJ2VuYWJsZV9u YWNsX25vbnNmaT1mYWxzZScKKwkJJ2VuYWJsZV9uYWNsPWZhbHNlJworCQknZW5hYmxlX3ByZWNv bXBpbGVkX2hlYWRlcnM9ZmFsc2UnCisJCSdmYXRhbF9saW5rZXJfd2FybmluZ3M9ZmFsc2UnCisJ CSdmZm1wZWdfYnJhbmRpbmc9IkNocm9tZSInCisJCSdmaWVsZHRyaWFsX3Rlc3RpbmdfbGlrZV9v ZmZpY2lhbF9idWlsZD10cnVlJworCQknZ29sZF9wYXRoPSIvdXNyL2Jpbi9sZC5nb2xkIicKKwkJ J2ljdV91c2VfZGF0YV9maWxlPXRydWUnCisJCSJpc19jbGFuZz0kKHZvcHRfaWYgY2xhbmcgdHJ1 ZSBmYWxzZSkiCisJCSdpc19jb21wb25lbnRfYnVpbGQ9ZmFsc2UnCisJCSJpc19kZWJ1Zz0kX2lz X2RlYnVnIgorCQkncHJvcHJpZXRhcnlfY29kZWNzPXRydWUnCisJCSd0cmVhdF93YXJuaW5nc19h c19lcnJvcnM9ZmFsc2UnCisJCSd1c2VfYWxsb2NhdG9yX3NoaW09ZmFsc2UnCisJCSd1c2VfYWxs b2NhdG9yPSJub25lIicKKwkJJ3VzZV9jdXBzPXRydWUnCisJCSd1c2VfY3VzdG9tX2xpYmN4eD1m YWxzZScKKwkJJ3VzZV9nbm9tZV9rZXlyaW5nPWZhbHNlJworCQkndXNlX2dvbGQ9ZmFsc2UnCisJ CSd1c2VfbGxkPWZhbHNlJworCQkndXNlX3N5c3RlbV9saWJ3YXlsYW5kPXRydWUnCisJCSJ1c2Vf cHVsc2VhdWRpbz0kKHZvcHRfaWYgcHVsc2VhdWRpbyAndHJ1ZScgJ2ZhbHNlJykiCisJCSJydGNf dXNlX3BpcGV3aXJlPSQodm9wdF9pZiBwaXBld2lyZSB0cnVlIGZhbHNlKSIKKwkJJ3J0Y19waXBl d2lyZV92ZXJzaW9uPSIwLjMiJworCQkndXNlX3N5c3Jvb3Q9ZmFsc2UnCisJCSd1c2Vfc3lzdGVt X2hhcmZidXp6PXRydWUnCisJCSJ0YXJnZXRfY3B1PVwiJHRhcmdldF9hcmNoXCIiCisJCSJob3N0 X2NwdT1cIiRob3N0X2FyY2hcIiIKKwkJJ2ltcG9ydCgiLy9lbGVjdHJvbi9idWlsZC9hcmdzL3Jl bGVhc2UuZ24iKScKKwkpCisKKwltc2dfbm9ybWFsICJDb25maWd1cmluZyBidWlsZFxuIgorCW91 dC9SZWxlYXNlL2duIGdlbiBvdXQvJF9idWlsZHR5cGUgLS1hcmdzPSIke2NvbmZbKl19IgorfQor Citkb19idWlsZCgpIHsKKwlleHBvcnQgQ1hYRkxBR1M9JCggc2hvcHQgLXMgZXh0Z2xvYjsgZWNo byAke0NYWEZMQUdTLy1tYXJjaD0qKFteIF0pfSApCisJZXhwb3J0IENGTEFHUz0kKCBzaG9wdCAt cyBleHRnbG9iOyBlY2hvICR7Q0ZMQUdTLy1tYXJjaD0qKFteIF0pfSApCisJZXhwb3J0IENGTEFH Uz0ke0NGTEFHUy8tZy99CisJZXhwb3J0IENYWEZMQUdTPSR7Q1hYRkxBR1MvLWcvfQorCWlmIFsg IiRidWlsZF9vcHRpb25fY2xhbmciIF07IHRoZW4KKwkJZXhwb3J0IENDPWNsYW5nCisJCWV4cG9y dCBDWFg9Y2xhbmcrKworCQlleHBvcnQgSE9TVF9DQz1jbGFuZworCQlleHBvcnQgSE9TVF9DWFg9 Y2xhbmcrKworCWVsc2UKKwkJZXhwb3J0IEJVSUxEX0NYWEZMQUdTPSIkQlVJTERfQ1hYRkxBR1Mg LWZwZXJtaXNzaXZlIgorCQlleHBvcnQgQ1hYRkxBR1M9IiRDWFhGTEFHUyAtZnBlcm1pc3NpdmUi CisJCWV4cG9ydCBCVUlMRF9BUj0iJEFSX2hvc3QiCisJCWV4cG9ydCBCVUlMRF9OTT0iJE5NX2hv c3QiCisJZmkKKwltc2dfbm9ybWFsICJOaW5qYSB0dXJ0bGVzIEdPIVxuIgorCW5pbmphICR7bWFr ZWpvYnN9IC1DIG91dC8kX2J1aWxkdHlwZSBlbGVjdHJvbiB0aGlyZF9wYXJ0eS9lbGVjdHJvbl9u b2RlOmhlYWRlcnMKKwkjIGZpbmlzaCByZXN0IG9mIHRoZSBidWlsZAorCXN0cmlwIC1zIG91dC8k X2J1aWxkdHlwZS9lbGVjdHJvbgorCW5pbmphICR7bWFrZWpvYnN9IC1DIG91dC8kX2J1aWxkdHlw ZSBlbGVjdHJvbl9kaXN0X3ppcAorfQorCitkb19pbnN0YWxsKCkgeworCXZta2RpciAvdXNyL2xp Yi8kcGtnbmFtZQorCXZta2RpciAvdXNyL2luY2x1ZGUvJHBrZ25hbWUKKwlic2R0YXIgLXhmIG91 dC8kX2J1aWxkdHlwZS9kaXN0LnppcCAtQyAiJERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZSIKKwor CWNobW9kIHUrcyAiJERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZS9jaHJvbWUtc2FuZGJveCIKKwor CWNwIG91dC8kX2J1aWxkdHlwZS9nZW4vbm9kZV9oZWFkZXJzLnRhci5neiAiJERFU1RESVIiL3Vz ci9pbmNsdWRlLyRwa2duYW1lCisKKwl2bGljZW5zZSAke3dya3NyY30vc3JjL0xJQ0VOU0UgY2hy b21pdW0uTElDRU5TRQorCXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvZWxlY3Ryb24vTElDRU5TRSBl bGVjdHJvbi5MSUNFTlNFCisJdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy90aGlyZF9wYXJ0eS9lbGVj dHJvbl9ub2RlL0xJQ0VOU0Ugbm9kZS5MSUNFTlNFCisKKwl2bWtkaXIgL3Vzci9iaW4KKwlsbiAt cyAuLi9saWIvJHBrZ25hbWUvZWxlY3Ryb24gIiRERVNURElSIi91c3IvYmluLyRwa2duYW1lCit9 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTMvdXBkYXRlIGIvc3JjcGtncy9lbGVjdHJv bjEzL3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNhZjhl NThiNTM1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMy91cGRhdGUKQEAg LTAsMCArMSwyIEBACitzaXRlPWh0dHBzOi8vd3d3LmVsZWN0cm9uanMub3JnL3JlbGVhc2VzL3N0 YWJsZT92ZXJzaW9uPSR7dmVyc2lvbiUlLip9CitwYXR0ZXJuPSd0YWcvdlxLW1xkXC5dKyg/PSIp JwoKRnJvbSA4ZTE2ZDc0MWUxZTE1MmIzYTVjNWY2YjRlN2EyYWM0NmY0ZDI1ZGZiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNh dCwgMjggQXVnIDIwMjEgMTI6NDM6NDggKzAyMDAKU3ViamVjdDogW1BBVENIIDIvM10gdnNjb2Rl OiB1c2UgZWxlY3Ryb24xMwoKLS0tCiAuLi4vcGF0Y2hlcy9kaXNhYmxlLWNyYXNoLXJlcG9ydGVy LnBhdGNoICAgICAgfCA3MSArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3ZzY29kZS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArLS0KIDIgZmlsZXMgY2hhbmdlZCwgNzUg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3ZzY29kZS9wYXRjaGVzL2Rpc2FibGUtY3Jhc2gtcmVwb3J0ZXIucGF0Y2gKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3ZzY29kZS9wYXRjaGVzL2Rpc2FibGUtY3Jhc2gtcmVwb3J0ZXIucGF0Y2ggYi9z cmNwa2dzL3ZzY29kZS9wYXRjaGVzL2Rpc2FibGUtY3Jhc2gtcmVwb3J0ZXIucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41OTU1M2ZhYmY3NTMKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3ZzY29kZS9wYXRjaGVzL2Rpc2FibGUtY3Jhc2gtcmVwb3J0ZXIu cGF0Y2gKQEAgLTAsMCArMSw3MSBAQAorRnJvbSBhZmEyMDZkYzQ2NjA2NmMzZDI3M2RmYzg3OTEw MzcwMDUwNWIzZDdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm9zaHVhIFN0cm9i bCA8am9zaHVhQHN0cmVhbWJpdHMuaW8+CitEYXRlOiBTdW4sIDIyIEF1ZyAyMDIxIDE0OjAyOjA1 ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggMS8xXSBEaXNhYmxlIGNyYXNoIHJlcG9ydGVyIHNpbmNl IE1pY3Jvc29mdCByZWZ1c2VzIHRvIGZpeAorIHRoaXMgdXBzdHJlYW0uCisKK1VuZm9ydHVuYXRl bHkgYSBQUiBzdWJtaXR0ZWQgYnkgYSB0aGlyZC1wYXJ0eSB3YXMgcmVqZWN0ZWQgYnkgTWljcm9z b2Z0LCB3aGljaCB3b3VsZCBjaGFuZ2UgdGhlIGRlZmF1bHQgZm9yIGNyYXNoIHJlcG9ydGluZyBm cm9tIHRydWUgdG8gZmFsc2UgYW5kIG1vdmUgdGhlIHRlbGVtZXRyeSBjb25maWd1cmF0aW9uIHRv IGVuc3VyZSBjcmFzaCByZXBvcnRpbmcgd2FzIG5vdCBiZWluZyBmb3JjZWQgb24sIHBsYWNlZCBp biB0aGUgYXJndi5qc29uLCBhbmQgY2F1c2UgYSBjcmFzaCB3aGVuIGltcHJvcGVybHkgc2V0Lgor CitTbywgZGlzYWJsZSBpdCBlbnRpcmVseS4gTm8gY29va2llcyBmb3IgeW91LCBWaXN1YWwgU3R1 ZGlvIENvZGUgdGVhbS4KKy0tLQorIHNyYy9ib290c3RyYXAtZm9yay5qcyAgICAgICAgICAgIHwg IDMgLS0tCisgc3JjL21haW4uanMgICAgICAgICAgICAgICAgICAgICAgfCAxNiAtLS0tLS0tLS0t LS0tLS0tCisgc3JjL3ZzL2NvZGUvZWxlY3Ryb24tbWFpbi9hcHAudHMgfCAgMiArLQorIDMgZmls ZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvc3JjL2Jvb3RzdHJhcC1mb3JrLmpzIGIvc3JjL2Jvb3RzdHJhcC1mb3JrLmpzCitpbmRleCA1 NTMwM2Q5YTU1Ni4uZWFkNWQwODY2M2YgMTAwNjQ0CistLS0gYS9zcmMvYm9vdHN0cmFwLWZvcmsu anMKKysrKyBiL3NyYy9ib290c3RyYXAtZm9yay5qcworQEAgLTM3LDkgKzM3LDYgQEAgaWYgKHBy b2Nlc3MuZW52WydWU0NPREVfUEFSRU5UX1BJRCddKSB7CisgCXRlcm1pbmF0ZVdoZW5QYXJlbnRU ZXJtaW5hdGVzKCk7CisgfQorIAorLS8vIENvbmZpZ3VyZSBDcmFzaCBSZXBvcnRlcgorLWNvbmZp Z3VyZUNyYXNoUmVwb3J0ZXIoKTsKKy0KKyAvLyBMb2FkIEFNRCBlbnRyeSBwb2ludAorIHJlcXVp cmUoJy4vYm9vdHN0cmFwLWFtZCcpLmxvYWQocHJvY2Vzcy5lbnZbJ1ZTQ09ERV9BTURfRU5UUllQ T0lOVCddKTsKKyAKK2RpZmYgLS1naXQgYS9zcmMvbWFpbi5qcyBiL3NyYy9tYWluLmpzCitpbmRl eCA5Y2Y3MzdlMDY0OS4uMWQ3Nzk2MzI0OTggMTAwNjQ0CistLS0gYS9zcmMvbWFpbi5qcworKysr IGIvc3JjL21haW4uanMKK0BAIC00NiwyMiArNDYsNiBAQCBjb25zdCBjb2RlQ2FjaGVQYXRoID0g Z2V0Q29kZUNhY2hlUGF0aCgpOworIC8vIENvbmZpZ3VyZSBzdGF0aWMgY29tbWFuZCBsaW5lIGFy Z3VtZW50cworIGNvbnN0IGFyZ3ZDb25maWcgPSBjb25maWd1cmVDb21tYW5kbGluZVN3aXRjaGVz U3luYyhhcmdzKTsKKyAKKy0vLyBDb25maWd1cmUgY3Jhc2ggcmVwb3J0ZXIKKy1wZXJmLm1hcmso J2NvZGUvd2lsbFN0YXJ0Q3Jhc2hSZXBvcnRlcicpOworLS8vIElmIGEgY3Jhc2gtcmVwb3J0ZXIt ZGlyZWN0b3J5IGlzIHNwZWNpZmllZCB3ZSBzdG9yZSB0aGUgY3Jhc2ggcmVwb3J0cworLS8vIGlu IHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGFuZCBkb24ndCB1cGxvYWQgdGhlbSB0byB0aGUgY3Jh c2ggc2VydmVyLgorLS8vCistLy8gQXBwY2VudGVyIGNyYXNoIHJlcG9ydGluZyBpcyBlbmFibGVk IGlmCistLy8gKiBlbmFibGUtY3Jhc2gtcmVwb3J0ZXIgcnVudGltZSBhcmd1bWVudCBpcyBzZXQg dG8gJ3RydWUnCistLy8gKiAtLWRpc2FibGUtY3Jhc2gtcmVwb3J0ZXIgY29tbWFuZCBsaW5lIHBh cmFtZXRlciBpcyBub3Qgc2V0CistLy8KKy0vLyBEaXNhYmxlIGNyYXNoIHJlcG9ydGluZyBpbiBh bGwgb3RoZXIgY2FzZXMuCistaWYgKGFyZ3NbJ2NyYXNoLXJlcG9ydGVyLWRpcmVjdG9yeSddIHx8 CistCShhcmd2Q29uZmlnWydlbmFibGUtY3Jhc2gtcmVwb3J0ZXInXSAmJiAhYXJnc1snZGlzYWJs ZS1jcmFzaC1yZXBvcnRlciddKSkgeworLQljb25maWd1cmVDcmFzaFJlcG9ydGVyKCk7CistfQor LXBlcmYubWFyaygnY29kZS9kaWRTdGFydENyYXNoUmVwb3J0ZXInKTsKKy0KKyAvLyBTZXQgbG9n cyBwYXRoIGJlZm9yZSBhcHAgJ3JlYWR5JyBldmVudCBpZiBydW5uaW5nIHBvcnRhYmxlCisgLy8g dG8gZW5zdXJlIHRoYXQgbm8gJ2xvZ3MnIGZvbGRlciBpcyBjcmVhdGVkIG9uIGRpc2sgYXQgYQor IC8vIGxvY2F0aW9uIG91dHNpZGUgb2YgdGhlIHBvcnRhYmxlIGRpcmVjdG9yeQorZGlmZiAtLWdp dCBhL3NyYy92cy9jb2RlL2VsZWN0cm9uLW1haW4vYXBwLnRzIGIvc3JjL3ZzL2NvZGUvZWxlY3Ry b24tbWFpbi9hcHAudHMKK2luZGV4IDEzNWY0NDRiZGJmLi45ZDIwN2E5MWJjZiAxMDA2NDQKKy0t LSBhL3NyYy92cy9jb2RlL2VsZWN0cm9uLW1haW4vYXBwLnRzCisrKysgYi9zcmMvdnMvY29kZS9l bGVjdHJvbi1tYWluL2FwcC50cworQEAgLTk4Miw3ICs5ODIsNyBAQCBleHBvcnQgY2xhc3MgQ29k ZUFwcGxpY2F0aW9uIGV4dGVuZHMgRGlzcG9zYWJsZSB7CisgCQkJY29uc3QgYXJndkpTT04gPSBK U09OLnBhcnNlKHN0cmlwQ29tbWVudHMoYXJndlN0cmluZykpOworIAkJCWlmIChhcmd2SlNPTlsn ZW5hYmxlLWNyYXNoLXJlcG9ydGVyJ10gPT09IHVuZGVmaW5lZCkgeworIAkJCQljb25zdCBlbmFi bGVDcmFzaFJlcG9ydGVyU2V0dGluZyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuZ2V0VmFs dWUoJ3RlbGVtZXRyeS5lbmFibGVDcmFzaFJlcG9ydGVyJyk7CistCQkJCWNvbnN0IGVuYWJsZUNy YXNoUmVwb3J0ZXIgPSB0eXBlb2YgZW5hYmxlQ3Jhc2hSZXBvcnRlclNldHRpbmcgPT09ICdib29s ZWFuJyA/IGVuYWJsZUNyYXNoUmVwb3J0ZXJTZXR0aW5nIDogdHJ1ZTsKKysJCQkJY29uc3QgZW5h YmxlQ3Jhc2hSZXBvcnRlciA9IHR5cGVvZiBlbmFibGVDcmFzaFJlcG9ydGVyU2V0dGluZyA9PT0g J2Jvb2xlYW4nID8gZW5hYmxlQ3Jhc2hSZXBvcnRlclNldHRpbmcgOiBmYWxzZTsKKyAJCQkJY29u c3QgYWRkaXRpb25hbEFyZ3ZDb250ZW50ID0gWworIAkJCQkJJycsCisgCQkJCQknCS8vIEFsbG93 cyB0byBkaXNhYmxlIGNyYXNoIHJlcG9ydGluZy4nLAorLS0gCisyLjMyLjAKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvdnNjb2RlL3RlbXBsYXRlIGIvc3JjcGtncy92c2NvZGUvdGVtcGxhdGUKaW5kZXgg ZGE3ZDVjYmU1YmNmLi40YTE0MTU0M2M5YzIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdnNjb2RlL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvdnNjb2RlL3RlbXBsYXRlCkBAIC0xLDExICsxLDExIEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICd2c2NvZGUnCiBwa2duYW1lPXZzY29kZQogdmVyc2lvbj0xLjU5 LjEKLXJldmlzaW9uPTIKLV9lbGVjdHJvbnZlcj0xMi4wLjE0CityZXZpc2lvbj0zCitfZWxlY3Ry b252ZXI9MTMuMi4yCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcHl0aG9uIG5vZGVqcyB5 YXJuIHRhciBnaXQiCi1tYWtlZGVwZW5kcz0ibGlieGtiZmlsZS1kZXZlbCBsaWJzZWNyZXQtZGV2 ZWwgZWxlY3Ryb24xMiIKLWRlcGVuZHM9ImxpYlh0c3QgbGlieGtiZmlsZSBuc3MgZGVqYXZ1LWZv bnRzLXR0ZiB4ZGctdXRpbHMgcmlwZ3JlcCBlbGVjdHJvbjEyIgorbWFrZWRlcGVuZHM9ImxpYnhr YmZpbGUtZGV2ZWwgbGlic2VjcmV0LWRldmVsIGVsZWN0cm9uMTMiCitkZXBlbmRzPSJsaWJYdHN0 IGxpYnhrYmZpbGUgbnNzIGRlamF2dS1mb250cy10dGYgeGRnLXV0aWxzIHJpcGdyZXAgZWxlY3Ry b24xMyIKIHNob3J0X2Rlc2M9Ik1pY3Jvc29mdCBDb2RlIGZvciBMaW51eCIKIG1haW50YWluZXI9 InNoaXpvbmljIDxyZWFsdGlhekBnbWFpbC5jb20+IgogbGljZW5zZT0iTUlUIgoKRnJvbSAxYTY5 OGFiYzllNGU3NDM1NmMzMzUyMjZmMWM1OGE3NGNjNTE2YTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwgMjggQXVnIDIw MjEgMTI6NDU6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDMvM10gUm9ja2V0LkNoYXQtRGVza3Rv cDogdXBkYXRlIHRvIDMuNC4wLgoKLS0tCiBzcmNwa2dzL1JvY2tldC5DaGF0LURlc2t0b3AvZmls ZXMvUm9ja2V0LkNoYXQtRGVza3RvcCB8IDIgKy0KIHNyY3BrZ3MvUm9ja2V0LkNoYXQtRGVza3Rv cC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvUm9j a2V0LkNoYXQtRGVza3RvcC9maWxlcy9Sb2NrZXQuQ2hhdC1EZXNrdG9wIGIvc3JjcGtncy9Sb2Nr ZXQuQ2hhdC1EZXNrdG9wL2ZpbGVzL1JvY2tldC5DaGF0LURlc2t0b3AKaW5kZXggOTBkNDgyYWIx NzhkLi4yMTRiOTc3YjU5ODkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvUm9ja2V0LkNoYXQtRGVza3Rv cC9maWxlcy9Sb2NrZXQuQ2hhdC1EZXNrdG9wCisrKyBiL3NyY3BrZ3MvUm9ja2V0LkNoYXQtRGVz a3RvcC9maWxlcy9Sb2NrZXQuQ2hhdC1EZXNrdG9wCkBAIC0xLDIgKzEsMiBAQAogIyEvYmluL3No Ci1leGVjIGVsZWN0cm9uMTAgL3Vzci9saWIvUm9ja2V0LkNoYXQtRGVza3RvcC5hc2FyICIkQCIK K2V4ZWMgZWxlY3Ryb24xMyAvdXNyL2xpYi9Sb2NrZXQuQ2hhdC1EZXNrdG9wLmFzYXIgIiRAIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9Sb2NrZXQuQ2hhdC1EZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtn cy9Sb2NrZXQuQ2hhdC1EZXNrdG9wL3RlbXBsYXRlCmluZGV4IGQ4NjZjM2M1MTg1Mi4uYjJkNDcw OTdlYzM1IDEwMDY0NAotLS0gYS9zcmNwa2dzL1JvY2tldC5DaGF0LURlc2t0b3AvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9Sb2NrZXQuQ2hhdC1EZXNrdG9wL3RlbXBsYXRlCkBAIC0xLDggKzEsOCBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnUm9ja2V0LkNoYXQtRGVza3RvcCcKIHBrZ25hbWU9Um9j a2V0LkNoYXQtRGVza3RvcAotdmVyc2lvbj0zLjMuMAordmVyc2lvbj0zLjQuMAogcmV2aXNpb249 MQotX2VsZWN0cm9uX3Zlcj0xMAorX2VsZWN0cm9uX3Zlcj0xMwogd3Jrc3JjPSJSb2NrZXQuQ2hh dC5FbGVjdHJvbi0ke3ZlcnNpb259IgogaG9zdG1ha2VkZXBlbmRzPSJ5YXJuIG5vZGVqcyBweXRo b24zIHBrZy1jb25maWcgYXBwLWJ1aWxkZXIiCiBtYWtlZGVwZW5kcz0iZWxlY3Ryb24ke19lbGVj dHJvbl92ZXJ9IGxpYnZpcHMtZGV2ZWwiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9Ikpv aG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJNSVQiCiBob21lcGFnZT0iaHR0cHM6 Ly9yb2NrZXQuY2hhdC8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9Sb2NrZXRDaGF0 L1JvY2tldC5DaGF0LkVsZWN0cm9uL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1 bT1hMDhkNzljMjBiODlkNGU5NTRiM2Y5MWQ3MjhkNTFmMGQyNDA5NDg3OGRhNmIyNGM5MzBjZWJj MWNlN2NlNjRjCitjaGVja3N1bT1mZDc3Y2Y1YTA1ZTg4NjZlOTY0N2ZlZjhlNzkzMzY1MTQ4NDkw YmRjOGMxYzg5ODZlYjI0NmI0NTQwYTRiNzI4CiAKIGV4cG9ydCBVU0VfU1lTVEVNX0FQUF9CVUlM REVSPXRydWUKIAo= --===============7838902039359332067==--