From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 18044 invoked from network); 13 Dec 2023 23:44:33 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 13 Dec 2023 23:44:33 -0000 Content-Type: multipart/mixed; boundary="===============8900204601627377245==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_chromium=3A_update_to_120=2E0=2E6099=2E109=2E?= To: ml@inbox.vuxu.org From: Duncaen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 14 Dec 2023 00:44:33 +0100 List-Id: Message-ID: <20231213234433.8brHTCuCsMCNqUP-f23PRk2mJKOtvtbWpJqd1am0980@z> GitHub notification mails are now in MIME to allow UTF8. --===============8900204601627377245== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGNocm9taXVtLTEyMApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDc3MzkKCmNocm9taXVtOiB1cGRhdGUgdG8gMTIwLjAu NjA5OS4xMDkuCltjaSBza2lwXQ0KDQoqIFt4XSB4ODZfNjQtZ2xpYmMNCiogW3hdIHg4Nl82NC1t dXNsDQoqIFsgXSBhYXJjaDY0LW11c2wNCiogWyBdIGk2ODYKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80NzczOS5wYXRj aCBpcyBhdHRhY2hlZA== --===============8900204601627377245== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-120-47739.patch" RnJvbSBjOGEzYzYzMTdjYWVkZDViYjY1ZjdlYjJjMGJhZDYyMDFiZGI1MzcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFdlZCwgMTMgRGVjIDIwMjMgMTQ6NTM6MzYgKzAxMDAKU3ViamVjdDogW1BBVENIXSBjaHJvbWl1 bTogdXBkYXRlIHRvIDEyMC4wLjYwOTkuMTA5LgoKLS0tCiBzcmNwa2dzL2Nocm9taXVtL2ZpbGVz L2Nocm9taXVtLmRlc2t0b3AgICAgICAgfCAxMTIgLS0tLQogLi4uL2ZpbGVzL211c2wtcGF0Y2hl cy9saWJjKystbXVzbC5wYXRjaCAgICAgIHwgIDEyICsKIC4uLi9jaHJvbWl1bS0xMTgtcHl0aG9u LTMuMTItZGVwcmVjYXRlZC5wYXRjaCB8IDEzOCAtLS0tLQogLi4ua2Fyb3VuZF9jbGFuZ19idWct c3RydWN0dXJlZF9iaW5kaW5nLnBhdGNoIHwgIDk2IC0tLS0KIC4uLi9wYXRjaGVzL2Nocm9taXVt LTExOS1jb25zdGV4cHIucGF0Y2ggICAgICB8ICAxMiAtCiAuLi50VmlkZW9EZWNvZGVyLWZsYWct b24tVkEtQVBJLWRldmljZXMucGF0Y2ggfCAxOTUgLS0tLS0tLQogLi4uLTExOS1udWxscHRyX3Qt d2l0aG91dC1uYW1lc3BhY2Utc3RkLnBhdGNoIHwgIDIxIC0KIC4uLmEtdXNlLXNlcGFyYXRlLWJv LXRvLXZlcmlmeS1tb2RpZmllci5wYXRjaCB8IDE2NCAtLS0tLS0KIC4uLi9jaHJvbWl1bS0xMjAt YXJtNjQtbWVtb3J5X3RhZ2dpbmcucGF0Y2ggICB8ICAxNCArCiAuLi5ocm9taXVtLTEyMC1kaXNh YmxlLUZGbXBlZ0FsbG93TGlzdHMucGF0Y2ggfCAgMTIgKwogLi4uYmxlLUdsb2JhbE1lZGlhQ29u dHJvbHNDYXN0U3RhcnRTdG9wLnBhdGNoIHwgIDE0ICsKIC4uLmNocm9taXVtLTEyMC1lbDctY2xh bmctYnVpbGQtZmFpbHVyZS5wYXRjaCB8IDIzMCArKysrKysrKwogLi4uaXVtLTEyMC1lbDctY2xh bmctYnVpbGQtZmFpbHVyZS5wYXRjaC5hcmdzIHwgICAxICsKIC4uLnJvbWl1bS0xMjAtZWw3LWNs YW5nLXZlcnNpb24td2FybmluZy5wYXRjaCB8ICAxNiArCiAuLi4vY2hyb21pdW0tMTIwLWduLXdv cmthcm91bmQtYXRzcGkucGF0Y2ggICAgfCAgMTMgKwogLi4uPiBjaHJvbWl1bS0xMjAtbWlzc2lu Zy1oZWFkZXItZmlsZXMucGF0Y2h9IHwgIDExIC0KIC4uLmhyb21pdW0tMTIwLW5vX21hdGNoaW5n X2NvbnN0cnVjdG9yLnBhdGNofSB8IDQ5MyArKysrKysrKysrLS0tLS0tLS0KIC4uLjIwLXNwbGl0 LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludC5wYXRjaCB8ICAyOCArCiAuLi5uYW1lLnBhdGNo ID0+IGNocm9taXVtLTEyMC10eXBlbmFtZS5wYXRjaH0gfCAgNDEgKysKIC4uLmthcm91bmRfY2xh bmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRjaCB8ICA1MSArKwogLi4ueC1hYXJjaDY0LW11 c2wtbWVtb3J5LXRhZ2dpbmctbWFjcm9zLnBhdGNoIHwgICA0ICstCiAuLi4vY2hyb21pdW0vcGF0 Y2hlcy9tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoICAgfCAgIDkgLQogLi4uL2Nocm9taXVtL3BhdGNo ZXMvbXVzbC1uby1tYWxsaW5mby5wYXRjaCAgIHwgICA4ICstCiAuLi4vcGF0Y2hlcy9tdXNsLXBh cnRpdGlvbi1hdGZvcmsucGF0Y2ggICAgICAgfCAgIDQgKy0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9uby1tdGUucGF0Y2ggICAgICAgICB8ICAxMSAtCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgfCAgMzggKy0KIHNyY3BrZ3MvY2hyb21pdW0vdXBkYXRl ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogMjcgZmlsZXMgY2hhbmdlZCwgNzM0IGlu c2VydGlvbnMoKyksIDEwMTggZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9jaHJvbWl1bS9maWxlcy9jaHJvbWl1bS5kZXNrdG9wCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbGliYysrLW11c2wucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LXB5dGhv bi0zLjEyLWRlcHJlY2F0ZWQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LXdvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRf YmluZGluZy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9jaHJvbWl1bS0xMTktY29uc3RleHByLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1oaWRlLVVzZUNocm9tZU9TRGlyZWN0Vmlk ZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJLWRldmljZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LW51bGxwdHJfdC13aXRob3V0 LW5hbWVzcGFjZS1zdGQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tMTE5LW52aWRpYS11c2Utc2VwYXJhdGUtYm8tdG8tdmVyaWZ5LW1v ZGlmaWVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTEyMC1hcm02NC1tZW1vcnlfdGFnZ2luZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZGlzYWJsZS1GRm1wZWdB bGxvd0xpc3RzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2Nocm9taXVtLTEyMC1kaXNhYmxlLUdsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9w LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9t aXVtLTEyMC1lbDctY2xhbmctYnVpbGQtZmFpbHVyZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLWJ1aWxkLWZh aWx1cmUucGF0Y2guYXJncwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLXZlcnNpb24td2FybmluZy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZ24td29y a2Fyb3VuZC1hdHNwaS5wYXRjaAogcmVuYW1lIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy97Y2hy b21pdW0tMTE5LW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoID0+IGNocm9taXVtLTEyMC1taXNz aW5nLWhlYWRlci1maWxlcy5wYXRjaH0gKDk3JSkKIHJlbmFtZSBzcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMve2Nocm9taXVtLTExOS1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaCA9PiBjaHJv bWl1bS0xMjAtbm9fbWF0Y2hpbmdfY29uc3RydWN0b3IucGF0Y2h9ICg2NyUpCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1zcGxpdC10aHJl c2hvbGQtZm9yLXJlZy13aXRoLWhpbnQucGF0Y2gKIHJlbmFtZSBzcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMve2Nocm9taXVtLTExNy10eXBlbmFtZS5wYXRjaCA9PiBjaHJvbWl1bS0xMjAtdHlwZW5h bWUucGF0Y2h9ICg4MyUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2Nocm9taXVtLTEyMC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tbXRl LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9jaHJvbWl1bS5kZXNr dG9wIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9jaHJvbWl1bS5kZXNrdG9wCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwNTc4OGY3MTM1ZGFhLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvY2hyb21pdW0vZmlsZXMvY2hyb21pdW0uZGVza3RvcAorKysgL2Rldi9udWxsCkBAIC0x LDExMiArMCwwIEBACi1bRGVza3RvcCBFbnRyeV0KLU5hbWU9Q2hyb21pdW0KLSMgT25seSBLREUg NCBzZWVtcyB0byB1c2UgR2VuZXJpY05hbWUsIHNvIHdlIHJldXNlIHRoZSBLREUgc3RyaW5ncy4K LSMgRnJvbSBVYnVudHUncyBsYW5ndWFnZS1wYWNrLWtkZS1YWC1iYXNlIHBhY2thZ2VzLCB2ZXJz aW9uIDkuMDQtMjAwOTA0MTMuCi1HZW5lcmljTmFtZT1XZWIgQnJvd3NlcgotR2VuZXJpY05hbWVb YXJdPdmF2KrYtdmB2K0g2KfZhNi02KjZg9ipCi1HZW5lcmljTmFtZVtiZ1090KPQtdCxINCx0YDQ sNGD0LfRitGACi1HZW5lcmljTmFtZVtjYV09TmF2ZWdhZG9yIHdlYgotR2VuZXJpY05hbWVbY3Nd PVdXVyBwcm9obMOtxb5lxI0KLUdlbmVyaWNOYW1lW2RhXT1Ccm93c2VyCi1HZW5lcmljTmFtZVtk ZV09V2ViLUJyb3dzZXIKLUdlbmVyaWNOYW1lW2VsXT3OoM61z4HOuc63zrPOt8+Ezq7PgiDOuc+D z4TOv8+NCi1HZW5lcmljTmFtZVtlbl9HQl09V2ViIEJyb3dzZXIKLUdlbmVyaWNOYW1lW2VzXT1O YXZlZ2Fkb3Igd2ViCi1HZW5lcmljTmFtZVtldF09VmVlYmlicmF1c2VyCi1HZW5lcmljTmFtZVtm aV09V1dXLXNlbGFpbgotR2VuZXJpY05hbWVbZnJdPU5hdmlnYXRldXIgV2ViCi1HZW5lcmljTmFt ZVtndV094Kq14KuH4KqsIOCqrOCrjeCqsOCqvuCqieCqneCqsAotR2VuZXJpY05hbWVbaGVdPdeT 16TXk9ek158g15DXmdeg15jXqNeg15gKLUdlbmVyaWNOYW1lW2hpXT3gpLXgpYfgpKwg4KSs4KWN 4KSw4KS+4KSJ4KSc4KS84KSwCi1HZW5lcmljTmFtZVtodV09V2ViYsO2bmfDqXN6xZEKLUdlbmVy aWNOYW1lW2l0XT1Ccm93c2VyIFdlYgotR2VuZXJpY05hbWVbamFdPeOCpuOCp+ODluODluODqeOC puOCtgotR2VuZXJpY05hbWVba25dPeCynOCyvuCysiDgsrXgs4DgspXgs43gsrfgspUKLUdlbmVy aWNOYW1lW2tvXT3sm7kg67iM65287Jqw7KCACi1HZW5lcmljTmFtZVtsdF09xb1pbmlhdGlua2xp byBuYXLFoXlrbMSXCi1HZW5lcmljTmFtZVtsdl09VMSrbWVrxLxhIHDEgXJsxatrcwotR2VuZXJp Y05hbWVbbWxdPeC0teC1huC0rOC1jSDgtKzgtY3gtLDgtYzgtLjgtLDgtY3igI0KLUdlbmVyaWNO YW1lW21yXT3gpLXgpYfgpKwg4KSs4KWN4KSw4KS+4KSK4KSc4KSwCi1HZW5lcmljTmFtZVtuYl09 TmV0dGxlc2VyCi1HZW5lcmljTmFtZVtubF09V2ViYnJvd3NlcgotR2VuZXJpY05hbWVbcGxdPVBy emVnbMSFZGFya2EgV1dXCi1HZW5lcmljTmFtZVtwdF09TmF2ZWdhZG9yIFdlYgotR2VuZXJpY05h bWVbcHRfQlJdPU5hdmVnYWRvciBkYSBJbnRlcm5ldAotR2VuZXJpY05hbWVbcm9dPU5hdmlnYXRv ciBkZSBJbnRlcm5ldAotR2VuZXJpY05hbWVbcnVdPdCS0LXQsS3QsdGA0LDRg9C30LXRgAotR2Vu ZXJpY05hbWVbc2xdPVNwbGV0bmkgYnJza2FsbmlrCi1HZW5lcmljTmFtZVtzdl09V2ViYmzDpHNh cmUKLUdlbmVyaWNOYW1lW3RhXT3grofgrqPgr4jgrq8g4K6J4K6y4K6+4K614K6/Ci1HZW5lcmlj TmFtZVt0aF094LmA4Lin4LmH4Lia4LmA4Lia4Lij4Liy4Lin4LmM4LmA4LiL4Lit4Lij4LmMCi1H ZW5lcmljTmFtZVt0cl09V2ViIFRhcmF5xLFjxLEKLUdlbmVyaWNOYW1lW3VrXT3QndCw0LLRltCz 0LDRgtC+0YAg0KLQtdC90LXRggotR2VuZXJpY05hbWVbemhfQ05dPee9kemhtea1j+iniOWZqAot R2VuZXJpY05hbWVbemhfSEtdPee2sumggeeAj+imveWZqAotR2VuZXJpY05hbWVbemhfVFddPee2 sumggeeAj+imveWZqAotIyBOb3QgdHJhbnNsYXRlZCBpbiBLREUsIGZyb20gRXBpcGhhbnkgMi4y Ni4xLTB1YnVudHUxLgotR2VuZXJpY05hbWVbYm5dPeCmk+Cnn+Cnh+CmrCDgpqzgp43gprDgpr7g pongppzgpr7gprAKLUdlbmVyaWNOYW1lW2ZpbF09V2ViIEJyb3dzZXIKLUdlbmVyaWNOYW1lW2hy XT1XZWIgcHJlZ2xlZG5pawotR2VuZXJpY05hbWVbaWRdPUJyb3dzZXIgV2ViCi1HZW5lcmljTmFt ZVtvcl094KyT4K2N4Kys4K2H4KysIOCsrOCtjeCssOCsvuCsieCsnOCssAotR2VuZXJpY05hbWVb c2tdPVdXVyBwcmVobGlhZGHEjQotR2VuZXJpY05hbWVbc3JdPdCY0L3RgtC10YDQvdC10YIg0L/R gNC10LPQu9C10LTQvdC40LoKLUdlbmVyaWNOYW1lW3RlXT3gsK7gsLngsL7gsKTgsLIg4LCF4LCo 4LGN4LC14LGH4LC34LC/Ci1HZW5lcmljTmFtZVt2aV09QuG7mSBkdXnhu4d0IFdlYgotIyBHbm9t ZSBhbmQgS0RFIDMgdXNlcyBDb21tZW50LgotQ29tbWVudD1BY2Nlc3MgdGhlIEludGVybmV0Ci1D b21tZW50W2FyXT3Yp9mE2K/YrtmI2YQg2KXZhNmJINin2YTYpdmG2KrYsdmG2KoKLUNvbW1lbnRb YmddPdCU0L7RgdGC0YrQvyDQtNC+INC40L3RgtC10YDQvdC10YIKLUNvbW1lbnRbYm5dPeCmh+Cm qOCnjeCmn+CmvuCmsOCmqOCnh+Cmn+Cmn+CmvyDgpoXgp43gpq/gpr7gppXgp43gprjgp4fgprgg 4KaV4Kaw4KeB4KaoCi1Db21tZW50W2NhXT1BY2NlZGVpeCBhIEludGVybmV0Ci1Db21tZW50W2Nz XT1QxZnDrXN0dXAgayBpbnRlcm5ldHUKLUNvbW1lbnRbZGFdPUbDpSBhZGdhbmcgdGlsIGludGVy bmV0dGV0Ci1Db21tZW50W2RlXT1JbnRlcm5ldHp1Z3JpZmYKLUNvbW1lbnRbZWxdPc6gz4HPjM+D zrLOsc+Dzrcgz4PPhM6/IM6UzrnOsc60zq/Ous+Ez4XOvwotQ29tbWVudFtlbl9HQl09QWNjZXNz IHRoZSBJbnRlcm5ldAotQ29tbWVudFtlc109QWNjZWRlIGEgSW50ZXJuZXQuCi1Db21tZW50W2V0 XT1Qw6TDpHMgSW50ZXJuZXR0aQotQ29tbWVudFtmaV09S8OkeXTDpCBpbnRlcm5ldGnDpAotQ29t bWVudFtmaWxdPUktYWNjZXNzIGFuZyBJbnRlcm5ldAotQ29tbWVudFtmcl09QWNjw6lkZXIgw6Ag SW50ZXJuZXQKLUNvbW1lbnRbZ3VdPeCqh+CqguCqn+CqsOCqqOCrh+CqnyDgqo3gqpXgq43gqrjg q4fgqrgg4KqV4Kqw4KuLCi1Db21tZW50W2hlXT3XkteZ16nXlCDXkNecINeU15DXmdeg15jXqNeg 15gKLUNvbW1lbnRbaGldPeCkh+CkguCkn+CksOCkqOClh+CknyDgpKTgpJUg4KSq4KS54KWB4KSC 4KSaIOCkuOCljeCkpeCkvuCkquCkv+CkpCDgpJXgpLDgpYfgpIIKLUNvbW1lbnRbaHJdPVByaXN0 dXAgSW50ZXJuZXR1Ci1Db21tZW50W2h1XT1JbnRlcm5ldGVsw6lyw6lzCi1Db21tZW50W2lkXT1B a3NlcyBJbnRlcm5ldAotQ29tbWVudFtpdF09QWNjZXNzbyBhIEludGVybmV0Ci1Db21tZW50W2ph XT3jgqTjg7Pjgr/jg7zjg43jg4Pjg4jjgavjgqLjgq/jgrvjgrkKLUNvbW1lbnRba25dPeCyh+Cy guCyn+CysOCzjeCyqOCzhuCyn+CzjSDgsoXgsqjgs43gsqjgs4Eg4LKq4LON4LKw4LK14LOH4LK2 4LK/4LK44LK/Ci1Db21tZW50W2tvXT3snbjthLDrhLcg7Jew6rKwCi1Db21tZW50W2x0XT1JbnRl cm5ldG8gcHJpZWlnYQotQ29tbWVudFtsdl09UGlla8S8xat0IGludGVybmV0YW0KLUNvbW1lbnRb bWxdPeC0h+C0qOC1jeC0seC0sOC1jeKAjeKAjOC0qOC1huC0seC1jeC0seC1jSDgtIbgtJXgtY3i gIzgtLjgtLjgtY0g4LSa4LWG4LSv4LWN4LSv4LWB4LSVCi1Db21tZW50W21yXT3gpIfgpILgpJ/g pLDgpKjgpYfgpJ/gpK7gpKfgpY3gpK/gpYcg4KSq4KWN4KSw4KS14KWH4KS2IOCkleCksOCkvgot Q29tbWVudFtuYl09R8OlIHRpbCBJbnRlcm5ldHQKLUNvbW1lbnRbbmxdPVZlcmJpbmRpbmcgbWFr ZW4gbWV0IGludGVybmV0Ci1Db21tZW50W29yXT3grIfgrKPgrY3grJ/grLDgrY3grKjgrYfgrJ/g rY0g4Kyq4K2N4Kyw4Kys4K2H4Ky2IOCsleCssOCsqOCtjeCspOCtgQotQ29tbWVudFtwbF09U2tv cnp5c3RhaiB6IGludGVybmV0dQotQ29tbWVudFtwdF09QWNlZGVyIMOgIEludGVybmV0Ci1Db21t ZW50W3B0X0JSXT1BY2Vzc2FyIGEgaW50ZXJuZXQKLUNvbW1lbnRbcm9dPUFjY2VzYcWjaSBJbnRl cm5ldHVsCi1Db21tZW50W3J1XT3QlNC+0YHRgtGD0L8g0LIg0JjQvdGC0LXRgNC90LXRggotQ29t bWVudFtza109UHLDrXN0dXAgZG8gc2lldGUgSW50ZXJuZXQKLUNvbW1lbnRbc2xdPURvc3RvcCBk byBpbnRlcm5ldGEKLUNvbW1lbnRbc3JdPdCf0YDQuNGB0YLRg9C/0LjRgtC1INCY0L3RgtC10YDQ vdC10YLRgwotQ29tbWVudFtzdl09R8OlIHV0IHDDpSBJbnRlcm5ldAotQ29tbWVudFt0YV094K6H 4K6j4K+I4K6v4K6k4K+N4K6k4K+IIOCuheCuo+CvgeCuleCvgeCupOCusuCvjQotQ29tbWVudFt0 ZV094LCH4LCC4LCf4LCw4LGN4LCo4LGG4LCf4LGN4oCM4LCo4LGBIOCwhuCwleCxjeCwuOCxhuCw uOCxjSDgsJrgsYbgsK/gsY3gsK/gsILgsKHgsL8KLUNvbW1lbnRbdGhdPeC5gOC4guC5ieC4suC4 luC4tuC4h+C4reC4tOC4meC5gOC4l+C4reC4o+C5jOC5gOC4meC5h+C4lQotQ29tbWVudFt0cl09 xLBudGVybmV0J2UgZXJpxZ9pbgotQ29tbWVudFt1a1090JTQvtGB0YLRg9C/INC00L4g0IbQvdGC 0LXRgNC90LXRgtGDCi1Db21tZW50W3ZpXT1UcnV5IGPhuq1wIEludGVybmV0Ci1Db21tZW50W3po X0NOXT3orr/pl67kupLogZTnvZEKLUNvbW1lbnRbemhfSEtdPemAo+e3muWIsOe2sumam+e2sui3 rwotQ29tbWVudFt6aF9UV1096YCj57ea5Yiw57ay6Zqb57ay6LevCi1FeGVjPWNocm9taXVtICVV Ci1UZXJtaW5hbD1mYWxzZQotSWNvbj1jaHJvbWl1bQotVHlwZT1BcHBsaWNhdGlvbgotQ2F0ZWdv cmllcz1HVEs7TmV0d29yaztXZWJCcm93c2VyOwotTWltZVR5cGU9dGV4dC9odG1sO3RleHQveG1s O2FwcGxpY2F0aW9uL3hodG1sK3htbDt0ZXh0L21tbDt4LXNjaGVtZS1oYW5kbGVyL2h0dHA7eC1z Y2hlbWUtaGFuZGxlci9odHRwczsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMv bXVzbC1wYXRjaGVzL2xpYmMrKy1tdXNsLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9t dXNsLXBhdGNoZXMvbGliYysrLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uYjkwYTU0ZGFhOGI0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv Y2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL2xpYmMrKy1tdXNsLnBhdGNoCkBAIC0wLDAgKzEs MTIgQEAKK1NvdXJjZTogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy90cmVlL2Nv bW11bml0eS9jaHJvbWl1bS95ZXMtbXVzbC5wYXRjaAorLS0tIC4vYnVpbGR0b29scy90aGlyZF9w YXJ0eS9saWJjKysvX19jb25maWdfc2l0ZS5vcmlnCisrKysgLi9idWlsZHRvb2xzL3RoaXJkX3Bh cnR5L2xpYmMrKy9fX2NvbmZpZ19zaXRlCitAQCAtMTgsNyArMTgsNyBAQAorIC8qICN1bmRlZiBf TElCQ1BQX0FCSV9GT1JDRV9NSUNST1NPRlQgKi8KKyAvKiAjdW5kZWYgX0xJQkNQUF9IQVNfTk9f VEhSRUFEUyAqLworIC8qICN1bmRlZiBfTElCQ1BQX0hBU19OT19NT05PVE9OSUNfQ0xPQ0sgKi8K Ky0vKiAjdW5kZWYgX0xJQkNQUF9IQVNfTVVTTF9MSUJDICovCisrI2RlZmluZSBfTElCQ1BQX0hB U19NVVNMX0xJQkMgMQorIC8qICN1bmRlZiBfTElCQ1BQX0hBU19USFJFQURfQVBJX1BUSFJFQUQg Ki8KKyAvKiAjdW5kZWYgX0xJQkNQUF9IQVNfVEhSRUFEX0FQSV9FWFRFUk5BTCAqLworIC8qICN1 bmRlZiBfTElCQ1BQX0hBU19USFJFQURfQVBJX1dJTjMyICovCmRpZmYgLS1naXQgYS9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LXB5dGhvbi0zLjEyLWRlcHJlY2F0ZWQucGF0 Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LXB5dGhvbi0zLjEyLWRl cHJlY2F0ZWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4MzdhZTU4NDEx N2QuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTExOC1weXRob24tMy4xMi1kZXByZWNhdGVkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM4 ICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL2Jhc2Uvd3JpdGVfYnVp bGRfZGF0ZV9oZWFkZXIucHkubWUgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvYmFzZS93cml0ZV9i dWlsZF9kYXRlX2hlYWRlci5weQotLS0tIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL2Jhc2Uvd3Jp dGVfYnVpbGRfZGF0ZV9oZWFkZXIucHkubWUJMjAyMy0wNy0yMiAxNDoyMzo0Mi42MjA2NzkzOTcg KzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi9iYXNlL3dyaXRlX2J1aWxkX2RhdGVf aGVhZGVyLnB5CTIwMjMtMDctMjIgMTU6MjQ6NDYuODMzMzEwMzEwICswMjAwCi1AQCAtMTcsNyAr MTcsNyBAQCBkZWYgbWFpbigpOgotICAgYXJncyA9IGFyZ3VtZW50X3BhcnNlci5wYXJzZV9hcmdz KCkKLSAKLSAgIGRhdGVfdmFsID0gaW50KGFyZ3MudGltZXN0YW1wKQotLSAgZGF0ZSA9IGRhdGV0 aW1lLmRhdGV0aW1lLnV0Y2Zyb210aW1lc3RhbXAoZGF0ZV92YWwpCi0rICBkYXRlID0gIGRhdGV0 aW1lLmRhdGV0aW1lLmZyb210aW1lc3RhbXAoZGF0ZV92YWwsIGRhdGV0aW1lLnRpbWV6b25lLnV0 YykKLSAgIG91dHB1dCA9ICgnLy8gR2VuZXJhdGVkIGJ5IC8vYmFzZS93cml0ZV9idWlsZF9kYXRl X2hlYWRlci5weVxuJwotICAgICAgICAgICAgICcjaWZuZGVmIEJBU0VfR0VORVJBVEVEX0JVSUxE X0RBVEVfVElNRVNUQU1QIFxuJwotICAgICAgICAgICAgIGYnI2RlZmluZSBCQVNFX0dFTkVSQVRF RF9CVUlMRF9EQVRFX1RJTUVTVEFNUCB7ZGF0ZV92YWx9JwotZGlmZiAtdXAgY2hyb21pdW0tMTE1 LjAuNTc5MC4xMDIvYnVpbGQvd3JpdGVfYnVpbGRmbGFnX2hlYWRlci5weS5tZSBjaHJvbWl1bS0x MTUuMC41NzkwLjEwMi9idWlsZC93cml0ZV9idWlsZGZsYWdfaGVhZGVyLnB5Ci0tLS0gY2hyb21p dW0tMTE1LjAuNTc5MC4xMDIvYnVpbGQvd3JpdGVfYnVpbGRmbGFnX2hlYWRlci5weS5tZQkyMDIz LTA3LTIyIDE0OjE2OjE0LjE5Njk3NTQ1MSArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAu MTAyL2J1aWxkL3dyaXRlX2J1aWxkZmxhZ19oZWFkZXIucHkJMjAyMy0wNy0yMiAxNDoyMDoyNC45 NzcyMzk5OTQgKzAyMDAKLUBAIC00NCw3ICs0NCw3IEBAIGRlZiBHZXRPcHRpb25zKCk6Ci0gICBo ZWFkZXJfZ3VhcmQgPSBjbWRsaW5lX29wdGlvbnMub3V0cHV0LnVwcGVyKCkKLSAgIGlmIGhlYWRl cl9ndWFyZFswXS5pc2RpZ2l0KCk6Ci0gICAgIGhlYWRlcl9ndWFyZCA9ICdfJyArIGhlYWRlcl9n dWFyZAotLSAgaGVhZGVyX2d1YXJkID0gcmUuc3ViKCdbXlx3XScsICdfJywgaGVhZGVyX2d1YXJk KQotKyAgaGVhZGVyX2d1YXJkID0gcmUuc3ViKHInW15cd10nLCAnXycsIGhlYWRlcl9ndWFyZCkK LSAgIGhlYWRlcl9ndWFyZCArPSAnXycKLSAKLSAgICMgVGhlIGFjdHVhbCBvdXRwdXQgZmlsZSBp cyBpbnNpZGUgdGhlIGdlbiBkaXIuCi1kaWZmIC11cCBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi9j b21wb25lbnRzL3Jlc291cmNlcy9wcm90b2J1ZnMvYmluYXJ5X3Byb3RvX2dlbmVyYXRvci5weS5t ZSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi9jb21wb25lbnRzL3Jlc291cmNlcy9wcm90b2J1ZnMv YmluYXJ5X3Byb3RvX2dlbmVyYXRvci5weQotLS0tIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL2Nv bXBvbmVudHMvcmVzb3VyY2VzL3Byb3RvYnVmcy9iaW5hcnlfcHJvdG9fZ2VuZXJhdG9yLnB5Lm1l CTIwMjMtMDctMjIgMTQ6NDc6MzQuMjMwNzY0MjEwICswMjAwCi0rKysgY2hyb21pdW0tMTE1LjAu NTc5MC4xMDIvY29tcG9uZW50cy9yZXNvdXJjZXMvcHJvdG9idWZzL2JpbmFyeV9wcm90b19nZW5l cmF0b3IucHkJMjAyMy0wNy0yMiAxNToxMTo1MC4zNjA5ODMzODMgKzAyMDAKLUBAIC05LDcgKzks OCBAQAotICIiIgotIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSBpbXBv cnQgYWJjCi0taW1wb3J0IGltcAotK2ltcG9ydCB0eXBlcwotK2ltcG9ydCBpbXBvcnRsaWIKLSBp bXBvcnQgb3B0cGFyc2UKLSBpbXBvcnQgb3MKLSBpbXBvcnQgcmUKLUBAIC00MCw2ICs0MSwxMiBA QCBjbGFzcyBHb29nbGVQcm90b2J1Zk1vZHVsZUltcG9ydGVyOgotICAgICAgICAgcmV0dXJuIGZp bGVwYXRoCi0gICAgIHJldHVybiBOb25lCi0gCi0rICBkZWYgbG9hZF9zb3VyY2UobmFtZTogc3Ry LCBwYXRoOiBzdHIpIC0+IHR5cGVzLk1vZHVsZVR5cGU6Ci0rICAgIHNwZWMgPSBpbXBvcnRsaWIu dXRpbC5zcGVjX2Zyb21fZmlsZV9sb2NhdGlvbihuYW1lLCBwYXRoKQotKyAgICBtb2R1bGUgPSBp bXBvcnRsaWIudXRpbC5tb2R1bGVfZnJvbV9zcGVjKHNwZWMpCi0rICAgIHNwZWMubG9hZGVyLmV4 ZWNfbW9kdWxlKG1vZHVsZSkKLSsgICAgcmV0dXJuIG1vZHVsZQotKwotICAgZGVmIF9tb2R1bGVf ZXhpc3RzKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgcmV0dXJuIHNlbGYuX2Z1bGxuYW1lX3RvX2Zp bGVwYXRoKGZ1bGxuYW1lKSBpcyBub3QgTm9uZQotIAotQEAgLTY4LDcgKzc1LDcgQEAgY2xhc3Mg R29vZ2xlUHJvdG9idWZNb2R1bGVJbXBvcnRlcjoKLSAgICAgICByYWlzZSBJbXBvcnRFcnJvcihm dWxsbmFtZSkKLSAKLSAgICAgZmlsZXBhdGggPSBzZWxmLl9mdWxsbmFtZV90b19maWxlcGF0aChm dWxsbmFtZSkKLS0gICAgcmV0dXJuIGltcC5sb2FkX3NvdXJjZShmdWxsbmFtZSwgZmlsZXBhdGgp Ci0rICAgIHJldHVybiBsb2FkX3NvdXJjZShmdWxsbmFtZSwgZmlsZXBhdGgpCi0gCi0gY2xhc3Mg QmluYXJ5UHJvdG9HZW5lcmF0b3I6Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMTUuMC41NzkwLjEw Mi9tb2pvL3B1YmxpYy90b29scy9iaW5kaW5ncy9jb25jYXRlbmF0ZV9hbmRfcmVwbGFjZV9jbG9z dXJlX2V4cG9ydHMucHkubWUgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvbW9qby9wdWJsaWMvdG9v bHMvYmluZGluZ3MvY29uY2F0ZW5hdGVfYW5kX3JlcGxhY2VfY2xvc3VyZV9leHBvcnRzLnB5Ci0t LS0gY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvbW9qby9wdWJsaWMvdG9vbHMvYmluZGluZ3MvY29u Y2F0ZW5hdGVfYW5kX3JlcGxhY2VfY2xvc3VyZV9leHBvcnRzLnB5Lm1lCTIwMjMtMDctMjIgMTU6 MTc6MTkuMTE0MjU4ODAxICswMjAwCi0rKysgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvbW9qby9w dWJsaWMvdG9vbHMvYmluZGluZ3MvY29uY2F0ZW5hdGVfYW5kX3JlcGxhY2VfY2xvc3VyZV9leHBv cnRzLnB5CTIwMjMtMDctMjIgMTU6MTc6NDMuMzY4MjAwNDkxICswMjAwCi1AQCAtMzIsNyArMzIs NyBAQCBkZWYgRmlsdGVyTGluZShmaWxlbmFtZSwgbGluZSwgb3V0cHV0KToKLSAgICAgcmV0dXJu Ci0gCi0gICBpZiBsaW5lLnN0YXJ0c3dpdGgoImdvb2cucHJvdmlkZSIpOgotLSAgICBtYXRjaCA9 IHJlLm1hdGNoKCJnb29nLnByb3ZpZGVcKCcoW14nXSspJ1wpOyIsIGxpbmUpCi0rICAgIG1hdGNo ID0gcmUubWF0Y2gociJnb29nLnByb3ZpZGVcKCcoW14nXSspJ1wpOyIsIGxpbmUpCi0gICAgIGlm IG5vdCBtYXRjaDoKLSAgICAgICBwcmludCgiSW52YWxpZCBnb29nLnByb3ZpZGUgbGluZSBpbiAl czpcbiVzIiAlIChmaWxlbmFtZSwgbGluZSkpCi0gICAgICAgc3lzLmV4aXQoMSkKLWRpZmYgLXVw IGNocm9taXVtLTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92 dWxjYW5pemUvcHlfdnVsY2FuaXplL2h0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLnB5Lm1lIGNo cm9taXVtLTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxj YW5pemUvcHlfdnVsY2FuaXplL2h0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLnB5Ci0tLS0gY2hy b21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNh bml6ZS9weV92dWxjYW5pemUvaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIucHkubWUJMjAyMy0w Ny0yMiAxNToxMjo0MS44NTA4OTUxNzkgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjEw Mi90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9o dG1sX2dlbmVyYXRpb25fY29udHJvbGxlci5weQkyMDIzLTA3LTIyIDE1OjEyOjU1Ljg0NDg3MTIw NyArMDIwMAotQEAgLTE4LDcgKzE4LDcgQEAgY2xhc3MgSFRNTEdlbmVyYXRpb25Db250cm9sbGVy KG9iamVjdCk6Ci0gCi0gICBkZWYgR2V0SFRNTEZvcklubGluZVN0eWxlc2hlZXQoc2VsZiwgY29u dGVudHMpOgotICAgICBpZiBzZWxmLmN1cnJlbnRfbW9kdWxlIGlzIE5vbmU6Ci0tICAgICAgaWYg cmUuc2VhcmNoKCd1cmxcKC4rXCknLCBjb250ZW50cyk6Ci0rICAgICAgaWYgcmUuc2VhcmNoKHIn dXJsXCguK1wpJywgY29udGVudHMpOgotICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAg ICAgICAgICdEZWZhdWx0IEhUTUxHZW5lcmF0aW9uQ29udHJvbGxlciBjYW5ub3QgaGFuZGxlIGlu bGluZSBzdHlsZSB1cmxzJykKLSAgICAgICByZXR1cm4gY29udGVudHMKLWRpZmYgLXVwIGNocm9t aXVtLTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5p emUvcHlfdnVsY2FuaXplL2pzX3V0aWxzLnB5Lm1lIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL3Ro aXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL2pzX3V0 aWxzLnB5Ci0tLS0gY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRfcGFydHkvY2F0YXB1bHQv Y29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvanNfdXRpbHMucHkubWUJMjAyMy0wNy0y MiAxNToxNDowNi45MjM3MTc5MTAgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90 aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9qc191 dGlscy5weQkyMDIzLTA3LTIyIDE1OjE4OjAzLjcwNDE1MDYxNCArMDIwMAotQEAgLTQsNCArNCw0 IEBACi0gCi0gCi0gZGVmIEVzY2FwZUpTSWZOZWVkZWQoanMpOgotLSAgcmV0dXJuIGpzLnJlcGxh Y2UoJzwvc2NyaXB0PicsICc8XC9zY3JpcHQ+JykKLSsgIHJldHVybiBqcy5yZXBsYWNlKHInPC9z Y3JpcHQ+Jywgcic8XC9zY3JpcHQ+JykKLWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMTAy L3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL3Bh cnNlX2h0bWxfZGVwcy5weS5tZSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90aGlyZF9wYXJ0eS9j YXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9wYXJzZV9odG1sX2RlcHMu cHkKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21t b24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9wYXJzZV9odG1sX2RlcHMucHkubWUJMjAyMy0w Ny0yMiAxNToxNDozMC4xMDU2NjI1MzIgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjEw Mi90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9w YXJzZV9odG1sX2RlcHMucHkJMjAyMy0wNy0yMiAxNToxNDo1Ny45Nzc1OTU5NTAgKzAyMDAKLUBA IC0yOTMsNiArMjkzLDYgQEAgY2xhc3MgSFRNTE1vZHVsZVBhcnNlcigpOgotICAgICAgIGh0bWwg PSAnJwotICAgICBlbHNlOgotICAgICAgIGlmIGh0bWwuZmluZCgnPCAvc2NyaXB0PicpICE9IC0x OgotLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFc2NhcGUgc2NyaXB0IHRhZ3Mgd2l0aCA8XC9z Y3JpcHQ+JykKLSsgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihyJ0VzY2FwZSBzY3JpcHQgdGFncyB3 aXRoIDxcL3NjcmlwdD4nKQotIAotICAgICByZXR1cm4gSFRNTE1vZHVsZVBhcnNlclJlc3VsdHMo aHRtbCkKLWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFw dWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL3N0eWxlX3NoZWV0LnB5Lm1lIGNo cm9taXVtLTExNS4wLjU3OTAuMTAyL3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxj YW5pemUvcHlfdnVsY2FuaXplL3N0eWxlX3NoZWV0LnB5Ci0tLS0gY2hyb21pdW0tMTE1LjAuNTc5 MC4xMDIvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5p emUvc3R5bGVfc2hlZXQucHkubWUJMjAyMy0wNy0yMiAxNToxMzoxMi4zMTY4NDI5OTAgKzAyMDAK LSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24v cHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9zdHlsZV9zaGVldC5weQkyMDIzLTA3LTIyIDE1OjEz OjQ5LjY4NDc1OTA5MSArMDIwMAotQEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgUGFyc2VkU3R5bGVT aGVldChvYmplY3QpOgotICAgICAgIHJldHVybiAndXJsKGRhdGE6aW1hZ2UvJXM7YmFzZTY0LCVz KScgJSAoZXh0WzE6XSwgZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gCi0gICAgICMgSSdtIGFzc3Vt aW5nIHdlIG9ubHkgaGF2ZSB1cmwoKSdzIGFzc29jaWF0ZWQgd2l0aCBpbWFnZXMKLS0gICAgcmV0 dXJuIHJlLnN1YigndXJsXCgoP1A8cXVvdGU+InxcJ3wpKD9QPHVybD5bXiJcJygpXSopKD9QPXF1 b3RlKVwpJywKLSsgICAgcmV0dXJuIHJlLnN1YihyJ3VybFwoKD9QPHF1b3RlPiJ8XCd8KSg/UDx1 cmw+W14iXCcoKV0qKSg/UD1xdW90ZSlcKScsCi0gICAgICAgICAgICAgICAgICAgSW5saW5lVXJs LCBzZWxmLmNvbnRlbnRzKQotIAotICAgZGVmIEFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5h bWVzVG8oc2VsZiwgZGVwZW5kZW50X2ZpbGVuYW1lcyk6Ci1AQCAtNzIsNyArNzIsNyBAQCBjbGFz cyBQYXJzZWRTdHlsZVNoZWV0KG9iamVjdCk6Ci0gICAgICAgcmFpc2UgRXhjZXB0aW9uKCdAaW1w b3J0cyBhcmUgbm90IHN1cHBvcnRlZCcpCi0gCi0gICAgIG1hdGNoZXMgPSByZS5maW5kYWxsKAot LSAgICAgICAgJ3VybFwoKD86WyJ8XCddPykoW14iXCcoKV0qKSg/OlsifFwnXT8pXCknLAotKyAg ICAgICAgcid1cmxcKCg/OlsifFwnXT8pKFteIlwnKCldKikoPzpbInxcJ10/KVwpJywKLSAgICAg ICAgIHNlbGYuY29udGVudHMpCi0gCi0gICAgIGRlZiByZXNvbHZlX3VybCh1cmwpOgotZGlmZiAt dXAgY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIvdGhpcmRfcGFydHkvZGF3bi9nZW5lcmF0b3IvZ2Vu ZXJhdG9yX2xpYi5weS5tZSBjaHJvbWl1bS0xMTUuMC41NzkwLjEwMi90aGlyZF9wYXJ0eS9kYXdu L2dlbmVyYXRvci9nZW5lcmF0b3JfbGliLnB5Ci0tLS0gY2hyb21pdW0tMTE1LjAuNTc5MC4xMDIv dGhpcmRfcGFydHkvZGF3bi9nZW5lcmF0b3IvZ2VuZXJhdG9yX2xpYi5weS5tZQkyMDIzLTA3LTIy IDE1OjExOjU2LjgyNjk3MjMwNiArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMTAyL3Ro aXJkX3BhcnR5L2Rhd24vZ2VuZXJhdG9yL2dlbmVyYXRvcl9saWIucHkJMjAyMy0wNy0yMiAxNTox MjozNy41NTA5MDI1NDUgKzAyMDAKLUBAIC0xMTksOCArMTE5LDggQEAgY2xhc3MgX1ByZXByb2Nl c3NpbmdMb2FkZXIoamluamEyLkJhc2VMbwotICAgICAgICAgICAgIHNvdXJjZSA9IHNlbGYucHJl cHJvY2VzcyhmLnJlYWQoKSkKLSAgICAgICAgIHJldHVybiBzb3VyY2UsIHBhdGgsIGxhbWJkYTog bXRpbWUgPT0gb3MucGF0aC5nZXRtdGltZShwYXRoKQotIAotLSAgICBibG9ja3N0YXJ0ID0gcmUu Y29tcGlsZSgneyUtP1xzKihpZnxlbGlmfGVsc2V8Zm9yfGJsb2NrfG1hY3JvKVtefV0qJX0nKQot LSAgICBibG9ja2VuZCA9IHJlLmNvbXBpbGUoJ3slLT9ccyooZW5kKGlmfGZvcnxibG9ja3xtYWNy byl8ZWxpZnxlbHNlKVtefV0qJX0nKQotKyAgICBibG9ja3N0YXJ0ID0gcmUuY29tcGlsZShyJ3sl LT9ccyooaWZ8ZWxpZnxlbHNlfGZvcnxibG9ja3xtYWNybylbXn1dKiV9JykKLSsgICAgYmxvY2tl bmQgPSByZS5jb21waWxlKHIneyUtP1xzKihlbmQoaWZ8Zm9yfGJsb2NrfG1hY3JvKXxlbGlmfGVs c2UpW159XSolfScpCi0gCi0gICAgIGRlZiBwcmVwcm9jZXNzKHNlbGYsIHNvdXJjZSk6Ci0gICAg ICAgICBsaW5lcyA9IHNvdXJjZS5zcGxpdCgnXG4nKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVk X2JpbmRpbmcucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LXdv cmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggM2I3OWY1MTI0ODdhZS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LXdvcmthcm91bmRfY2xhbmdfYnVnLXN0 cnVjdHVyZWRfYmluZGluZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLWRp ZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFw dGVyLmNjLndvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZyBjaHJvbWl1bS0x MTUuMC41NzkwLjI0L21lZGlhL2Jhc2UvY2RtX3Byb21pc2VfYWRhcHRlci5jYwotLS0tIGNocm9t aXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVyLmNjLndvcmth cm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZwkyMDIzLTA2LTA3IDIxOjQ4OjM3LjAw MDAwMDAwMCArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1f cHJvbWlzZV9hZGFwdGVyLmNjCTIwMjMtMDYtMTcgMTY6NTM6MjAuMjE2NjI4NTU3ICswMjAwCi1A QCAtOTQsNyArOTQsOSBAQCB2b2lkIENkbVByb21pc2VBZGFwdGVyOjpSZWplY3RQcm9taXNlKHVp Ci0gdm9pZCBDZG1Qcm9taXNlQWRhcHRlcjo6Q2xlYXIoQ2xlYXJSZWFzb24gcmVhc29uKSB7Ci0g ICAvLyBSZWplY3QgYWxsIG91dHN0YW5kaW5nIHByb21pc2VzLgotICAgRENIRUNLKHRocmVhZF9j aGVja2VyXy5DYWxsZWRPblZhbGlkVGhyZWFkKCkpOwotLSAgZm9yIChhdXRvJiBbcHJvbWlzZV9p ZCwgcHJvbWlzZV0gOiBwcm9taXNlc18pIHsKLSsgIGZvciAoYXV0byYgW3BfaSwgcF9lXSA6IHBy b21pc2VzXykgewotKyAgICBhdXRvJiBwcm9taXNlX2lkID0gcF9pOwotKyAgICBhdXRvJiBwcm9t aXNlID0gcF9lOwotICAgICBUUkFDRV9FVkVOVF9ORVNUQUJMRV9BU1lOQ19FTkQxKAotICAgICAg ICAgIm1lZGlhIiwgIkNkbVByb21pc2UiLCBUUkFDRV9JRF9XSVRIX1NDT1BFKCJDZG1Qcm9taXNl IiwgcHJvbWlzZV9pZCksCi0gICAgICAgICAic3RhdHVzIiwgImNsZWFyZWQiKTsKLWRpZmYgLXVw IGNocm9taXVtLTExNS4wLjU3OTAuMjQvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9s YXlvdXQvbmcvZ3JpZC9uZ19ncmlkX2xheW91dF9hbGdvcml0aG0uY2Mud29ya2Fyb3VuZF9jbGFu Z19idWctc3RydWN0dXJlZF9iaW5kaW5nIGNocm9taXVtLTExNS4wLjU3OTAuMjQvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvbmcvZ3JpZC9uZ19ncmlkX2xheW91dF9hbGdv cml0aG0uY2MKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL2NvcmUvbGF5b3V0L25nL2dyaWQvbmdfZ3JpZF9sYXlvdXRfYWxnb3JpdGhtLmNjLndv cmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZwkyMDIzLTA2LTA3IDIxOjQ4OjQx LjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMjQvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvbmcvZ3JpZC9uZ19ncmlkX2xheW91dF9hbGdvcml0 aG0uY2MJMjAyMy0wNi0xNyAxODo0NzowNi4wMDE0MDM5NjYgKzAyMDAKLUBAIC02NTUsOCArNjU4 LDEwIEBAIE5HR3JpZFNpemluZ1RyZWUgTkdHcmlkTGF5b3V0QWxnb3JpdGhtOjoKLSAgIE5HR3Jp ZFNpemluZ1RyZWUgc2l6aW5nX3RyZWU7Ci0gCi0gICBpZiAoY29uc3QgYXV0byogbGF5b3V0X3N1 YnRyZWUgPSBDb25zdHJhaW50U3BhY2UoKS5HcmlkTGF5b3V0U3VidHJlZSgpKSB7Ci0tICAgIGF1 dG8mIFtncmlkX2l0ZW1zLCBsYXlvdXRfZGF0YSwgc3VidHJlZV9zaXplXSA9Ci0tICAgICAgICBz aXppbmdfdHJlZS5DcmVhdGVTaXppbmdEYXRhKCk7Ci0rICAgIGF1dG8mIFtnX2ksIGxfZCwgc19z XSA9IHNpemluZ190cmVlLkNyZWF0ZVNpemluZ0RhdGEoKTsKLSsgICAgYXV0byYgZ3JpZF9pdGVt cyA9IGdfaTsKLSsgICAgYXV0byYgbGF5b3V0X2RhdGEgPSBsX2Q7Ci0rICAgIGF1dG8mIHN1YnRy ZWVfc2l6ZSA9IHNfczsKLSAKLSAgICAgY29uc3QgYXV0byYgbm9kZSA9IE5vZGUoKTsKLSAgICAg Z3JpZF9pdGVtcyA9Ci1AQCAtMTc5OCw4ICsxODAzLDEwIEBAIHZvaWQgTkdHcmlkTGF5b3V0QWxn b3JpdGhtOjpDb21wbGV0ZVRyYWMKLSAgICAgYm9vbCogb3B0X25lZWRzX2FkZGl0aW9uYWxfcGFz cykgY29uc3QgewotICAgRENIRUNLKHNpemluZ19zdWJ0cmVlKTsKLSAKLS0gIGF1dG8mIFtncmlk X2l0ZW1zLCBsYXlvdXRfZGF0YSwgc3VidHJlZV9zaXplXSA9Ci0tICAgICAgc2l6aW5nX3N1YnRy ZWUuU3VidHJlZVJvb3REYXRhKCk7Ci0rICBhdXRvJiBbZ19pLCBsX2QsIHNfc10gPSBzaXppbmdf c3VidHJlZS5TdWJ0cmVlUm9vdERhdGEoKTsKLSsgIGF1dG8mIGdyaWRfaXRlbXMgPSBnX2k7Ci0r ICBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsKLSsgIGF1dG8mIHN1YnRyZWVfc2l6ZSA9IHNfczsK LSAKLSAgIGNvbnN0IGJvb2wgaXNfZm9yX2NvbHVtbnMgPSB0cmFja19kaXJlY3Rpb24gPT0ga0Zv ckNvbHVtbnM7Ci0gICBjb25zdCBib29sIGhhc19ub25fZGVmaW5pdGVfdHJhY2sgPQotQEAgLTE5 MjQsOCArMTkzMSwxMCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2FsbGJhY2tGdW5jPgotIHZvaWQg TkdHcmlkTGF5b3V0QWxnb3JpdGhtOjpGb3JFYWNoU3ViZ3JpZCgKLSAgICAgY29uc3QgTkdHcmlk U2l6aW5nU3VidHJlZSYgc2l6aW5nX3N1YnRyZWUsCi0gICAgIGNvbnN0IENhbGxiYWNrRnVuYyYg Y2FsbGJhY2tfZnVuYykgY29uc3QgewotLSAgYXV0byYgW2dyaWRfaXRlbXMsIGxheW91dF9kYXRh LCBzdWJ0cmVlX3NpemVdID0KLS0gICAgICBzaXppbmdfc3VidHJlZS5TdWJ0cmVlUm9vdERhdGEo KTsKLSsgIGF1dG8mIFtnX2ksIGxfZCwgc19zXSA9IHNpemluZ19zdWJ0cmVlLlN1YnRyZWVSb290 RGF0YSgpOwotKyAgYXV0byYgZ3JpZF9pdGVtcyA9IGdfaTsKLSsgIGF1dG8mIGxheW91dF9kYXRh ID0gbF9kOwotKyAgYXV0byYgc3VidHJlZV9zaXplID0gc19zOwotIAotICAgLy8gSWYgd2Uga25v dyB0aGlzIHN1YnRyZWUgZG9lc24ndCBoYXZlIG5lc3RlZCBzdWJncmlkcyB3ZSBjYW4gZXhpdCBl YXJseQotICAgLy8gaW5zdGVhZCBvZiBpdGVyYXRpbmcgb3ZlciBldmVyeSBncmlkIGl0ZW0gbG9v a2luZyBmb3IgdGhlbS4KLWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29udGVudC9i cm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRleHRfd3JhcHBlci5jYy5t ZSBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9z ZXJ2aWNlX3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MKLS0tLSBjaHJvbWl1bS0xMTUuMC41Nzkw LjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9jb250ZXh0 X3dyYXBwZXIuY2MubWUJMjAyMy0wNi0xOSAwODowNDowMi4yODcwNzI3MjIgKzAyMDAKLSsrKyBj aHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2 aWNlX3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MJMjAyMy0wNi0xOSAwODoxODoyNC41NzY4MTQ5 NTAgKzAyMDAKLUBAIC0xMzkzLDcgKzEzOTMsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0 V3JhcHBlcjo6TWF5YmVQCi0gICAgIHJldHVybjsKLSAgIH0KLSAKLS0gIGF1dG8gW2RvY3VtZW50 X3VybCwga2V5LCBjYWxsYmFja10gPSBzdGQ6Om1vdmUoKnJlcXVlc3QpOwotKyAgYXV0byBbZF91 LCBrZXksIGNhbGxiYWNrXSA9IHN0ZDo6bW92ZSgqcmVxdWVzdCk7Ci0rICBhdXRvIGRvY3VtZW50 X3VybCA9IGRfdTsKLSAKLSAgIERDSEVDSyhkb2N1bWVudF91cmwuaXNfdmFsaWQoKSk7Ci0gICBU UkFDRV9FVkVOVDEoIlNlcnZpY2VXb3JrZXIiLAotZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkz OC42Mi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2xheW91dC9uZy9ncmlkL25nX2dy aWRfbGF5b3V0X2FsZ29yaXRobS5jYy5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L25nL2dyaWQvbmdfZ3JpZF9sYXlvdXRfYWxn b3JpdGhtLmNjCi0tLS0gY2hyb21pdW0tMTE3LjAuNTkzOC42Mi90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9jb3JlL2xheW91dC9uZy9ncmlkL25nX2dyaWRfbGF5b3V0X2FsZ29yaXRobS5jYy5t ZQkyMDIzLTA5LTE1IDEzOjAzOjAwLjc4NzI1NzA0OCArMDIwMAotKysrIGNocm9taXVtLTExNy4w LjU5MzguNjIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvbmcvZ3JpZC9u Z19ncmlkX2xheW91dF9hbGdvcml0aG0uY2MJMjAyMy0wOS0xNSAxMzoxNTowNS41MDI3MDY1MjIg KzAyMDAKLUBAIC0zNDM3LDcgKzM0MzcsMTAgQEAgdm9pZCBOR0dyaWRMYXlvdXRBbGdvcml0aG06 OlBsYWNlR3JpZEl0ZQotICAgRENIRUNLKG91dF9yb3dfYnJlYWtfYmV0d2Vlbik7Ci0gCi0gICBj b25zdCBhdXRvJiBjb250YWluZXJfc3BhY2UgPSBDb25zdHJhaW50U3BhY2UoKTsKLS0gIGNvbnN0 IGF1dG8mIFtncmlkX2l0ZW1zLCBsYXlvdXRfZGF0YSwgdHJlZV9zaXplXSA9IHNpemluZ190cmVl LlRyZWVSb290RGF0YSgpOwotKyAgY29uc3QgYXV0byYgW2dfaSwgbF9kLCB0X3NdID0gc2l6aW5n X3RyZWUuVHJlZVJvb3REYXRhKCk7Ci0rICBjb25zdCBhdXRvJiBncmlkX2l0ZW1zID0gZ19pOwot KyAgY29uc3QgYXV0byYgbGF5b3V0X2RhdGEgPSBsX2Q7Ci0rICBjb25zdCBhdXRvJiB0cmVlX3Np emUgPSB0X3M7Ci0gCi0gICBjb25zdCBhdXRvKiBjYWNoZWRfbGF5b3V0X3N1YnRyZWUgPSBjb250 YWluZXJfc3BhY2UuR3JpZExheW91dFN1YnRyZWUoKTsKLSAgIGNvbnN0IGF1dG8gY29udGFpbmVy X3dyaXRpbmdfZGlyZWN0aW9uID0KLUBAIC0zNjAxLDcgKzM2MDQsMTAgQEAgdm9pZCBOR0dyaWRM YXlvdXRBbGdvcml0aG06OlBsYWNlR3JpZEl0ZQotIAotICAgLy8gVE9ETyhpa2lscGF0cmljayk6 IFVwZGF0ZSB8U2V0SGFzU2VlbkFsbENoaWxkcmVufCBhbmQgZWFybHkgZXhpdCBpZiB0cnVlLgot ICAgY29uc3QgYXV0byYgY29uc3RyYWludF9zcGFjZSA9IENvbnN0cmFpbnRTcGFjZSgpOwotLSAg Y29uc3QgYXV0byYgW2dyaWRfaXRlbXMsIGxheW91dF9kYXRhLCB0cmVlX3NpemVdID0gc2l6aW5n X3RyZWUuVHJlZVJvb3REYXRhKCk7Ci0rICBjb25zdCBhdXRvJiBbZ19pLCBsX2QsIHRfc10gPSBz aXppbmdfdHJlZS5UcmVlUm9vdERhdGEoKTsKLSsgIGNvbnN0IGF1dG8mIGdyaWRfaXRlbXMgPSBn X2k7Ci0rICBjb25zdCBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsKLSsgIGNvbnN0IGF1dG8mIHRy ZWVfc2l6ZSA9dF9zOwotIAotICAgY29uc3QgYXV0byogY2FjaGVkX2xheW91dF9zdWJ0cmVlID0g Y29uc3RyYWludF9zcGFjZS5HcmlkTGF5b3V0U3VidHJlZSgpOwotICAgY29uc3QgYXV0byBjb250 YWluZXJfd3JpdGluZ19kaXJlY3Rpb24gPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTExOS1jb25zdGV4cHIucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tMTE5LWNvbnN0ZXhwci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYjE5NWZmNDA4YmE4MS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LWNvbnN0ZXhwci5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEyICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50 cy9taXJhY2xlX3BhcmFtZXRlci9jb21tb24vcHVibGljL21pcmFjbGVfcGFyYW1ldGVyLmgubWUg Y2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL21pcmFjbGVfcGFyYW1ldGVyL2NvbW1v bi9wdWJsaWMvbWlyYWNsZV9wYXJhbWV0ZXIuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkv Y29tcG9uZW50cy9taXJhY2xlX3BhcmFtZXRlci9jb21tb24vcHVibGljL21pcmFjbGVfcGFyYW1l dGVyLmgubWUJMjAyMy0xMC0zMSAyMTowNTowNS41NDg1NjUyNDEgKzAxMDAKLSsrKyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvbWlyYWNsZV9wYXJhbWV0ZXIvY29tbW9uL3B1Ymxp Yy9taXJhY2xlX3BhcmFtZXRlci5oCTIwMjMtMTAtMzEgMjE6MjA6NTMuOTQ1NTMyMDk0ICswMTAw Ci1AQCAtOTMsNyArOTMsNyBAQCBjbGFzcyBNaXJhY2xlUGFyYW1ldGVyIHsKLSB0ZW1wbGF0ZSA8 PgotIGNsYXNzIE1pcmFjbGVQYXJhbWV0ZXI8c3RkOjpzdHJpbmc+IDogcHVibGljIE1pcmFjbGVQ YXJhbWV0ZXJCYXNlPHN0ZDo6c3RyaW5nPiB7Ci0gIHB1YmxpYzoKLS0gIGNvbnN0ZXhwciBNaXJh Y2xlUGFyYW1ldGVyKGNvbnN0IGJhc2U6OkZlYXR1cmUqIGZlYXR1cmUsCi0rICBNaXJhY2xlUGFy YW1ldGVyKGNvbnN0IGJhc2U6OkZlYXR1cmUqIGZlYXR1cmUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyKiBwYXJhbV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RkOjpzdHJpbmcgZGVmYXVsdF92YWx1ZSkKLSAgICAgICA6IE1pcmFjbGVQYXJh bWV0ZXJCYXNlKGZlYXR1cmUsIHBhcmFtX25hbWUsIHN0ZDo6bW92ZShkZWZhdWx0X3ZhbHVlKSkg e30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktaGlk ZS1Vc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2VzLnBh dGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1oaWRlLVVzZUNocm9t ZU9TRGlyZWN0VmlkZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJLWRldmljZXMucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4ZDY3NWU4MDQ3ZjAuLjAwMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1oaWRlLVVzZUNocm9tZU9T RGlyZWN0VmlkZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJLWRldmljZXMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxOTUgKzAsMCBAQAotY29tbWl0IDg3ZmNhN2YxNzU5ZTgwMGJkNzJiNWFiNjUx MWVlYTE3ZDY0MDBhNzYKLUF1dGhvcjogUGlsYXIgTW9saW5hIExvcGV6IDxwbW9saW5hbG9wZXpA Y2hyb21pdW0ub3JnPgotRGF0ZTogICBUdWUgT2N0IDI0IDE5OjU3OjU1IDIwMjMgKzAwMDAKLQot ICAgIHZpZGVvOiBoaWRlIFVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyIGZsYWcgb24gVkEt QVBJIGRldmljZXMKLSAgICAKLSAgICBXZSBhcmUgc2VlaW5nIGNyYXNoZXMgY2F1c2VzIGJ5IHRo aXMgQ0hFQ0sgc3RhdGVtZW50OgotICAgIGh0dHBzOi8vc291cmNlLmNocm9taXVtLm9yZy9jaHJv bWl1bS9jaHJvbWl1bS9zcmMvKy9tYWluOmNvbnRlbnQvcHVibGljL2Jyb3dzZXIvZ3B1X3V0aWxz LmNjO2w9MTUxO2RyYz0wZTc3N2JhOWI2YzM0NjExNzA1ZDViMTQ1YzkyYmNkMDk1MzkwMTFjCi0g ICAgSXQncyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBtYW51YWxseSBkaXNhYmxlcyB0aGUgVXNl Q2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXIKLSAgICBmbGFnIG9uIFZBLUFQSSBkZXZpY2VzIChJ bnRlbCBhbmQgQU1EKS4gVGhpcyBmbGFnIGlzIHN1cHBvcnRlZCBvbmx5IG9uCi0gICAgbm9uLUlu dGVsIGFuZCBub24tQU1EIGRldmljZXMuIFRoaXMgQ0wgYWRkcyB0aGlzIGluZm9ybWF0aW9uIHRv IHRoZSBmbGFnCi0gICAgZGVzY3JpcHRpb24gYW5kIGhpZGVzIHRoZSBmbGFnIGluIGNhc2UgVkEt QVBJIGlzIHVzZWQuCi0gICAgCi0gICAgQnVnOiAxNDY5Mjg1Ci0gICAgVGVzdDogbWFudWFsIHRl c3Qgb24gdm9sdGVlcgotICAgIENoYW5nZS1JZDogSTE1M2I5Y2NiMzgxNTQ5OGM5MWNlNWVlZTk2 NjgzNDA2MDc0OWUyNDcKLSAgICBSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcu Z29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzQ5NjA5MTkKLSAgICBSZXZpZXdlZC1i eTogRGFsZSBDdXJ0aXMgPGRhbGVjdXJ0aXNAY2hyb21pdW0ub3JnPgotICAgIFJldmlld2VkLWJ5 OiBBbmRyZXMgQ2FsZGVyb24gSmFyYW1pbGxvIDxhbmRyZXNjakBjaHJvbWl1bS5vcmc+Ci0gICAg UmV2aWV3ZWQtYnk6IEF2aSBEcmlzc21hbiA8YXZpQGNocm9taXVtLm9yZz4KLSAgICBDb21taXQt UXVldWU6IFBpbGFyIE1vbGluYSBMb3BleiA8cG1vbGluYWxvcGV6QGNocm9taXVtLm9yZz4KLSAg ICBDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFpbkB7IzEyMTQ0MTF9Ci0KLWRpZmYg LS1naXQgYS9jaHJvbWUvYnJvd3Nlci9ERVBTIGIvY2hyb21lL2Jyb3dzZXIvREVQUwotaW5kZXgg ZWU5ZmIyMDZjZGUzNi4uMGZlMTgwMTNhYjA0NCAxMDA2NDQKLS0tLSBhL2Nocm9tZS9icm93c2Vy L0RFUFMKLSsrKyBiL2Nocm9tZS9icm93c2VyL0RFUFMKLUBAIC00MTgsNiArNDE4LDcgQEAgaW5j bHVkZV9ydWxlcyA9IFsKLSAgICIrbWVkaWEvYmFzZSIsICAjIEZvciBtZWRpYSBzd2l0Y2hlcwot ICAgIittZWRpYS9jYXBhYmlsaXRpZXMiLCAjIEZvciBJbk1lbW9yeVZpZGVvRGVjb2RlU3RhdHNE QgotICAgIittZWRpYS9jZG0iLAotKyAgIittZWRpYS9ncHUvYnVpbGRmbGFncy5oIiwKLSAgICIr bWVkaWEvcmVtb3RpbmcvZGV2aWNlX2NhcGFiaWxpdHlfY2hlY2tlci5oIiwKLSAgICIrbWVkaWEv Y2FwdHVyZSIsCi0gICAiK21lZGlhL21pZGkiLCAgIyBGb3IgbWlkaSBzd2l0Y2hlcwotZGlmZiAt LWdpdCBhL2Nocm9tZS9icm93c2VyL2Fib3V0X2ZsYWdzLmNjIGIvY2hyb21lL2Jyb3dzZXIvYWJv dXRfZmxhZ3MuY2MKLWluZGV4IDg0NzA5YWZhYTM0ZDAuLjc3N2JlYmViMzNkOWUgMTAwNjQ0Ci0t LS0gYS9jaHJvbWUvYnJvd3Nlci9hYm91dF9mbGFncy5jYwotKysrIGIvY2hyb21lL2Jyb3dzZXIv YWJvdXRfZmxhZ3MuY2MKLUBAIC03NTc4LDExICs3NTc4LDEzIEBAIGNvbnN0IEZlYXR1cmVFbnRy eSBrRmVhdHVyZUVudHJpZXNbXSA9IHsKLSAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVP U19BU0gpCi0gCi0gI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykgJiYgQlVJTERGTEFHKFVTRV9D SFJPTUVPU19NRURJQV9BQ0NFTEVSQVRJT04pCi0rI2lmICFCVUlMREZMQUcoVVNFX1ZBQVBJKQot ICAgICB7ImNocm9tZW9zLWRpcmVjdC12aWRlby1kZWNvZGVyIiwKLSAgICAgIGZsYWdfZGVzY3Jp cHRpb25zOjprQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXJOYW1lLAotICAgICAgZmxhZ19kZXNj cmlwdGlvbnM6OmtDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2RlckRlc2NyaXB0aW9uLAotICAgICAg a09zQ3JPUyB8IGtPc0xhY3JvcywKLSAgICAgIEZFQVRVUkVfVkFMVUVfVFlQRShtZWRpYTo6a1Vz ZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyKX0sCi0rI2VuZGlmICAvLyAhQlVJTERGTEFHKFVT RV9WQUFQSSkKLSAKLSAgICAgeyJlbmFibGUtdmJyLWVuY29kZS1hY2NlbGVyYXRpb24iLAotICAg ICAgZmxhZ19kZXNjcmlwdGlvbnM6OmtDaHJvbWVPU0hXVkJSRW5jb2RpbmdOYW1lLAotZGlmZiAt LWdpdCBhL2Nocm9tZS9icm93c2VyL2ZsYWdfZGVzY3JpcHRpb25zLmNjIGIvY2hyb21lL2Jyb3dz ZXIvZmxhZ19kZXNjcmlwdGlvbnMuY2MKLWluZGV4IDMxOGE4YmU5YWIxYTYuLmQyNDk3ZDBjNDAz ZjMgMTAwNjQ0Ci0tLS0gYS9jaHJvbWUvYnJvd3Nlci9mbGFnX2Rlc2NyaXB0aW9ucy5jYwotKysr IGIvY2hyb21lL2Jyb3dzZXIvZmxhZ19kZXNjcmlwdGlvbnMuY2MKLUBAIC03LDYgKzcsNyBAQAot ICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKLSAjaW5jbHVkZSAiYnVpbGQvY2hyb21l b3NfYnVpbGRmbGFncy5oIgotICNpbmNsdWRlICJjb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9j b3JlL2NvbW1vbi9idWlsZGZsYWdzLmgiCi0rI2luY2x1ZGUgIm1lZGlhL2dwdS9idWlsZGZsYWdz LmgiCi0gI2luY2x1ZGUgInBkZi9idWlsZGZsYWdzLmgiCi0gCi0gLy8gS2VlcCBpbiBpZGVudGlj YWwgb3JkZXIgYXMgdGhlIGhlYWRlciBmaWxlLCBzZWUgdGhlIGNvbW1lbnQgYXQgdGhlIHRvcAot QEAgLTczMzgsNiArNzMzOSw3IEBAIGNvbnN0IGNoYXIga1F1aWNrT2ZmaWNlRm9yY2VGaWxlRG93 bmxvYWREZXNjcmlwdGlvbltdID0KLSAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykK LSAKLSAjaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TKSAmJiBCVUlMREZMQUcoVVNFX0NIUk9NRU9T X01FRElBX0FDQ0VMRVJBVElPTikKLSsjaWYgIUJVSUxERkxBRyhVU0VfVkFBUEkpCi0gY29uc3Qg Y2hhciBrQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXJOYW1lW10gPSAiQ2hyb21lT1MgRGlyZWN0 IFZpZGVvIERlY29kZXIiOwotIGNvbnN0IGNoYXIga0Nocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVy RGVzY3JpcHRpb25bXSA9Ci0gICAgICJFbmFibGVzIHRoZSBoYXJkd2FyZS1hY2NlbGVyYXRlZCBD aHJvbWVPUyBkaXJlY3QgbWVkaWE6OlZpZGVvRGVjb2RlciAiCi1AQCAtNzM0NSw3ICs3MzQ3LDgg QEAgY29uc3QgY2hhciBrQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXJEZXNjcmlwdGlvbltdID0K LSAgICAgIi0tcGxhdGZvcm0tZGlzYWxsb3dzLWNocm9tZW9zLWRpcmVjdC12aWRlby1kZWNvZGVy IGNvbW1hbmQgbGluZSBzd2l0Y2ggIgotICAgICAid2hpY2ggaXMgYWRkZWQgZm9yIHBsYXRmb3Jt cyB3aGVyZSBzYWlkIGRpcmVjdCBWaWRlb0RlY29kZXIgZG9lcyBub3Qgd29yayAiCi0gICAgICJv ciBpcyBub3Qgd2VsbCB0ZXN0ZWQgKHNlZSB0aGUgZGlzYWJsZV9jcm9zX3ZpZGVvX2RlY29kZXIg VVNFIGZsYWcgaW4gIgotLSAgICAiQ2hyb21lT1MpIjsKLSsgICAgIkNocm9tZU9TKS4gVGhpcyBm bGFnIGlzIHN1cHBvcnRlZCBvbmx5IG9uIG5vbi1JbnRlbCBhbmQgbm9uLUFNRCBkZXZpY2VzLiI7 Ci0rI2VuZGlmICAvLyAhQlVJTERGTEFHKFVTRV9WQUFQSSkKLSBjb25zdCBjaGFyIGtDaHJvbWVP U0hXVkJSRW5jb2RpbmdOYW1lW10gPQotICAgICAiQ2hyb21lT1MgSGFyZHdhcmUgVmFyaWFibGUg Qml0cmF0ZSBFbmNvZGluZyI7Ci0gY29uc3QgY2hhciBrQ2hyb21lT1NIV1ZCUkVuY29kaW5nRGVz Y3JpcHRpb25bXSA9Ci1kaWZmIC0tZ2l0IGEvY29udGVudC9wdWJsaWMvYnJvd3Nlci9ncHVfdXRp bHMuY2MgYi9jb250ZW50L3B1YmxpYy9icm93c2VyL2dwdV91dGlscy5jYwotaW5kZXggZGNlZWNh OTY1OWE4NS4uM2QwOTEzNTk3NzdjYyAxMDA2NDQKLS0tLSBhL2NvbnRlbnQvcHVibGljL2Jyb3dz ZXIvZ3B1X3V0aWxzLmNjCi0rKysgYi9jb250ZW50L3B1YmxpYy9icm93c2VyL2dwdV91dGlscy5j YwotQEAgLTEzMywyMCArMTMzLDI2IEBAIGNvbnN0IGdwdTo6R3B1UHJlZmVyZW5jZXMgR2V0R3B1 UHJlZmVyZW5jZXNGcm9tQ29tbWFuZExpbmUoKSB7Ci0gI2lmIEJVSUxERkxBRyhVU0VfQ0hST01F T1NfTUVESUFfQUNDRUxFUkFUSU9OKQotICAgLy8gVGhlIGRpcmVjdCBWaWRlb0RlY29kZXIgaXMg ZGlzYWxsb3dlZCBvbiBzb21lIHBhcnRpY3VsYXIgU29DL3BsYXRmb3Jtcy4KLSAgIGNvbnN0IGJv b2wgc2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9fZGVjb2RlciA9Ci0rI2lmIEJVSUxERkxBRyhVU0Vf VkFBUEkpCi0rICAgICAgdHJ1ZTsKLSsjZWxzZQotICAgICAgICFjb21tYW5kX2xpbmUtPkhhc1N3 aXRjaCgKLSAgICAgICAgICAgc3dpdGNoZXM6OmtQbGF0Zm9ybURpc2FsbG93c0Nocm9tZU9TRGly ZWN0VmlkZW9EZWNvZGVyKSAmJgotICAgICAgIGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQo bWVkaWE6OmtVc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2Rlcik7Ci0rI2VuZGlmICAvLyBCVUlM REZMQUcoVVNFX1ZBQVBJKQotKwotKyAgZ3B1X3ByZWZlcmVuY2VzLmVuYWJsZV9jaHJvbWVvc19k aXJlY3RfdmlkZW9fZGVjb2RlciA9Ci0rI2lmIEJVSUxERkxBRyhVU0VfVkFBUEkpCi0rICAgICAg c2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9fZGVjb2RlcjsKLSsjZWxzZQotKyAgICAgIC8vIEZvciB0 ZXN0aW5nIHB1cnBvc2VzLCB0aGUgZm9sbG93aW5nIGZsYWcgYWxsb3dzIHVzaW5nIHRoZSAib3Ro ZXIiIHZpZGVvCi0rICAgICAgLy8gZGVjb2RlciBpbXBsZW1lbnRhdGlvbi4KLSsgICAgICBiYXNl OjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKAotKyAgICAgICAgICBtZWRpYTo6a1VzZUFsdGVybmF0 ZVZpZGVvRGVjb2RlckltcGxlbWVudGF0aW9uKQotKyAgICAgICAgICA/ICFzaG91bGRfdXNlX2Rp cmVjdF92aWRlb19kZWNvZGVyCi0rICAgICAgICAgIDogc2hvdWxkX3VzZV9kaXJlY3RfdmlkZW9f ZGVjb2RlcjsKLSsjZW5kaWYgIC8vIEJVSUxERkxBRyhVU0VfVkFBUEkpCi0gCi0tICAvLyBGb3Ig dGVzdGluZyBwdXJwb3NlcywgdGhlIGZvbGxvd2luZyBmbGFnIGFsbG93cyB1c2luZyB0aGUgIm90 aGVyIiB2aWRlbwotLSAgLy8gZGVjb2RlciBpbXBsZW1lbnRhdGlvbi4KLS0gIGlmIChiYXNlOjpG ZWF0dXJlTGlzdDo6SXNFbmFibGVkKAotLSAgICAgICAgICBtZWRpYTo6a1VzZUFsdGVybmF0ZVZp ZGVvRGVjb2RlckltcGxlbWVudGF0aW9uKSkgewotLSAgICBncHVfcHJlZmVyZW5jZXMuZW5hYmxl X2Nocm9tZW9zX2RpcmVjdF92aWRlb19kZWNvZGVyID0KLS0gICAgICAgICFzaG91bGRfdXNlX2Rp cmVjdF92aWRlb19kZWNvZGVyOwotLSAgfSBlbHNlIHsKLS0gICAgZ3B1X3ByZWZlcmVuY2VzLmVu YWJsZV9jaHJvbWVvc19kaXJlY3RfdmlkZW9fZGVjb2RlciA9Ci0tICAgICAgICBzaG91bGRfdXNl X2RpcmVjdF92aWRlb19kZWNvZGVyOwotLSAgfQotICNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJKQot ICAgQ0hFQ0soZ3B1X3ByZWZlcmVuY2VzLmVuYWJsZV9jaHJvbWVvc19kaXJlY3RfdmlkZW9fZGVj b2Rlcik7Ci0gI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJKQotZGlmZiAtLWdpdCBhL21l ZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MgYi9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNj Ci1pbmRleCAxYWY0ZGU0NmUyYTAyLi4zMDg2YjFiZWMyMTM0IDEwMDY0NAotLS0tIGEvbWVkaWEv YmFzZS9tZWRpYV9zd2l0Y2hlcy5jYwotKysrIGIvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5j YwotQEAgLTExOTIsNiArMTE5Miw3IEBAIEJBU0VfRkVBVFVSRShrQ2hyb21lT1NIV1ZCUkVuY29k aW5nLAotICAgICAgICAgICAgICAiQ2hyb21lT1NIV1ZCUkVuY29kaW5nIiwKLSAgICAgICAgICAg ICAgYmFzZTo6RkVBVFVSRV9ESVNBQkxFRF9CWV9ERUZBVUxUKTsKLSAKLSsjaWYgIUJVSUxERkxB RyhVU0VfVkFBUEkpCi0gLy8gRW5hYmxlIHRoZSBoYXJkd2FyZS1hY2NlbGVyYXRlZCBkaXJlY3Qg dmlkZW8gZGVjb2RlciBpbnN0ZWFkIG9mIHRoZSBvbmUKLSAvLyBuZWVkaW5nIHRoZSBWZGFWaWRl b0RlY29kZXIgYWRhcHRlci4gVGhpcyBmbGFnIGlzIHVzZWQgbWFpbmx5IGFzIGEKLSAvLyBjaHJv bWU6ZmxhZyBmb3IgZGV2ZWxvcGVycyBkZWJ1Z2dpbmcgaXNzdWVzIGFzIHdlbGwgYXMgdG8gYmUg YWJsZSB0bwotQEAgLTEyMDAsNiArMTIwMSw3IEBAIEJBU0VfRkVBVFVSRShrQ2hyb21lT1NIV1ZC UkVuY29kaW5nLAotIEJBU0VfRkVBVFVSRShrVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXIs Ci0gICAgICAgICAgICAgICJVc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2RlciIsCi0gICAgICAg ICAgICAgIGJhc2U6OkZFQVRVUkVfRU5BQkxFRF9CWV9ERUZBVUxUKTsKLSsjZW5kaWYgIC8vICFC VUlMREZMQUcoVVNFX1ZBQVBJKQotIAotIC8vIExpbWl0IHRoZSBudW1iZXIgb2YgY29uY3VycmVu dCBoYXJkd2FyZSBkZWNvZGVyIGluc3RhbmNlcyBvbiBDaHJvbWVPUy4KLSBCQVNFX0ZFQVRVUkUo a0xpbWl0Q29uY3VycmVudERlY29kZXJJbnN0YW5jZXMsCi1AQCAtMTIyOCw3ICsxMjMwLDcgQEAg QkFTRV9GRUFUVVJFKGtQcmVmZXJTb2Z0d2FyZU1UMjEsCi0gICAgICAgICAgICAgICJQcmVmZXJT b2Z0d2FyZU1UMjEiLAotICAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0RJU0FCTEVEX0JZX0RF RkFVTFQpOwotICNlbmRpZiAgLy8gZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKQotLSNpZiBC VUlMREZMQUcoSVNfQ0hST01FT1MpCi0rI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykgJiYgIUJV SUxERkxBRyhVU0VfVkFBUEkpCi0gLy8gQ2hyb21lT1MgaGFzIG9uZSBvZiB0d28gVmlkZW9EZWNv ZGVyIGltcGxlbWVudGF0aW9ucyBhY3RpdmUgYmFzZWQgb24KLSAvLyBTb0MvYm9hcmQgc3BlY2lm aWMgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgc2VudCB2aWEgY29tbWFuZCBsaW5lIGZsYWdzLiBU aGlzCi0gLy8gc3dpdGNoIGFsbG93cyB1c2luZyB0aGUgbm9uIGRlZmF1bHQgaW1wbGVtZW50YXRp b24gZm9yIHRlc3RpbmcuCi1AQCAtMTIzNiw3ICsxMjM4LDcgQEAgQkFTRV9GRUFUVVJFKGtQcmVm ZXJTb2Z0d2FyZU1UMjEsCi0gQkFTRV9GRUFUVVJFKGtVc2VBbHRlcm5hdGVWaWRlb0RlY29kZXJJ bXBsZW1lbnRhdGlvbiwKLSAgICAgICAgICAgICAgIlVzZUFsdGVybmF0ZVZpZGVvRGVjb2Rlcklt cGxlbWVudGF0aW9uIiwKLSAgICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9ESVNBQkxFRF9CWV9E RUZBVUxUKTsKLS0jZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKLSsjZW5kaWYgIC8v IEJVSUxERkxBRyhJU19DSFJPTUVPUykgJiYgIUJVSUxERkxBRyhVU0VfVkFBUEkpCi0gI2VuZGlm ICAvLyBCVUlMREZMQUcoVVNFX0NIUk9NRU9TX01FRElBX0FDQ0VMRVJBVElPTikKLSAKLSAjaWYg QlVJTERGTEFHKElTX1dJTikKLWRpZmYgLS1naXQgYS9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVz LmggYi9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmgKLWluZGV4IDFkOWMyYzJkOWRmNzMuLjk2 ZDk1OTViZTExMGUgMTAwNjQ0Ci0tLS0gYS9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmgKLSsr KyBiL21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaAotQEAgLTE0LDYgKzE0LDcgQEAKLSAjaW5j bHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCi0gI2luY2x1ZGUgImJ1aWxkL2Nocm9tZW9zX2J1 aWxkZmxhZ3MuaCIKLSAjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9leHBvcnQuaCIKLSsjaW5j bHVkZSAibWVkaWEvZ3B1L2J1aWxkZmxhZ3MuaCIKLSAjaW5jbHVkZSAibWVkaWEvbWVkaWFfYnVp bGRmbGFncy5oIgotIAotIG5hbWVzcGFjZSBiYXNlIHsKLUBAIC0zODEsMTYgKzM4MiwxOCBAQCBN RURJQV9FWFBPUlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUoa0J1aWx0SW5IbHNQbGF5ZXIpOwotICNp ZiBCVUlMREZMQUcoVVNFX0NIUk9NRU9TX01FRElBX0FDQ0VMRVJBVElPTikKLSBNRURJQV9FWFBP UlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUoa0Nocm9tZU9TSFdBVjFEZWNvZGVyKTsKLSBNRURJQV9F WFBPUlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUoa0Nocm9tZU9TSFdWQlJFbmNvZGluZyk7Ci0rI2lm ICFCVUlMREZMQUcoVVNFX1ZBQVBJKQotIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVfRkVBVFVS RShrVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXIpOwotKyNlbmRpZiAgLy8gIUJVSUxERkxB RyhVU0VfVkFBUEkpCi0gTUVESUFfRVhQT1JUIEJBU0VfREVDTEFSRV9GRUFUVVJFKGtMaW1pdENv bmN1cnJlbnREZWNvZGVySW5zdGFuY2VzKTsKLSBNRURJQV9FWFBPUlQgQkFTRV9ERUNMQVJFX0ZF QVRVUkUoa1VTZVNlcXVlbmNlZFRhc2tSdW5uZXJGb3JWRUEpOwotICNpZiBkZWZpbmVkKEFSQ0hf Q1BVX0FSTV9GQU1JTFkpCi0gTUVESUFfRVhQT1JUIEJBU0VfREVDTEFSRV9GRUFUVVJFKGtQcmVm ZXJHTEltYWdlUHJvY2Vzc29yKTsKLSBNRURJQV9FWFBPUlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUo a1ByZWZlclNvZnR3YXJlTVQyMSk7Ci0gI2VuZGlmICAvLyBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9G QU1JTFkpCi0tI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykKLSsjaWYgQlVJTERGTEFHKElTX0NI Uk9NRU9TKSAmJiAhQlVJTERGTEFHKFVTRV9WQUFQSSkKLSBNRURJQV9FWFBPUlQgQkFTRV9ERUNM QVJFX0ZFQVRVUkUoa1VzZUFsdGVybmF0ZVZpZGVvRGVjb2RlckltcGxlbWVudGF0aW9uKTsKLS0j ZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKLSsjZW5kaWYgIC8vIEJVSUxERkxBRyhJ U19DSFJPTUVPUykgJiYgIUJVSUxERkxBRyhVU0VfVkFBUEkpCi0gI2VuZGlmICAvLyBCVUlMREZM QUcoVVNFX0NIUk9NRU9TX01FRElBX0FDQ0VMRVJBVElPTikKLSAKLSAjaWYgQlVJTERGTEFHKElT X1dJTikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTkt bnVsbHB0cl90LXdpdGhvdXQtbmFtZXNwYWNlLXN0ZC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9jaHJvbWl1bS0xMTktbnVsbHB0cl90LXdpdGhvdXQtbmFtZXNwYWNlLXN0ZC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNiOTY5ZjRmNDBjZi4uMDAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LW51bGxwdHJf dC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCww IEBACi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL2NvcmUvcGFpbnQvZnJhZ21lbnRfZGF0YV9pdGVyYXRvci5oLm1lIGNocm9taXVtLTEx OS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9wYWludC9mcmFnbWVu dF9kYXRhX2l0ZXJhdG9yLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvZnJhZ21lbnRfZGF0YV9pdGVyYXRvci5oLm1lCTIw MjMtMTAtMjcgMjA6MDc6MTYuNDIxMjMwODE1ICswMjAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0 NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L2ZyYWdtZW50X2RhdGFf aXRlcmF0b3IuaAkyMDIzLTEwLTI3IDIwOjA3OjM2Ljg4MzYwMDA4NSArMDIwMAotQEAgLTUyLDcg KzUyLDcgQEAgY2xhc3MgRnJhZ21lbnREYXRhSXRlcmF0b3IKLSAgcHVibGljOgotICAgZXhwbGlj aXQgRnJhZ21lbnREYXRhSXRlcmF0b3IoY29uc3QgTGF5b3V0T2JqZWN0JiBvYmplY3QpCi0gICAg ICAgOiBGcmFnbWVudERhdGFJdGVyYXRvckJhc2UoJm9iamVjdC5GaXJzdEZyYWdtZW50KCkpIHt9 Ci0tICBleHBsaWNpdCBGcmFnbWVudERhdGFJdGVyYXRvcihudWxscHRyX3QpCi0rICBleHBsaWNp dCBGcmFnbWVudERhdGFJdGVyYXRvcihzdGQ6Om51bGxwdHJfdCkKLSAgICAgICA6IEZyYWdtZW50 RGF0YUl0ZXJhdG9yQmFzZShudWxscHRyKSB7fQotIH07Ci0gCi1AQCAtNjMsNyArNjMsNyBAQCBj bGFzcyBNdXRhYmxlRnJhZ21lbnREYXRhSXRlcmF0b3IKLSAgIGV4cGxpY2l0IE11dGFibGVGcmFn bWVudERhdGFJdGVyYXRvcihjb25zdCBMYXlvdXRPYmplY3QmIG9iamVjdCkKLSAgICAgICA6IEZy YWdtZW50RGF0YUl0ZXJhdG9yQmFzZSgKLSAgICAgICAgICAgICAmb2JqZWN0LkdldE11dGFibGVG b3JQYWludGluZygpLkZpcnN0RnJhZ21lbnQoKSkge30KLS0gIGV4cGxpY2l0IE11dGFibGVGcmFn bWVudERhdGFJdGVyYXRvcihudWxscHRyX3QpCi0rICBleHBsaWNpdCBNdXRhYmxlRnJhZ21lbnRE YXRhSXRlcmF0b3Ioc3RkOjpudWxscHRyX3QpCi0gICAgICAgOiBGcmFnbWVudERhdGFJdGVyYXRv ckJhc2UobnVsbHB0cikge30KLSB9OwotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTExOS1udmlkaWEtdXNlLXNlcGFyYXRlLWJvLXRvLXZlcmlmeS1tb2Rp Zmllci5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktbnZpZGlh LXVzZS1zZXBhcmF0ZS1iby10by12ZXJpZnktbW9kaWZpZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDcxN2Q4OTc0NDZjN2MuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1udmlkaWEtdXNlLXNlcGFyYXRlLWJvLXRv LXZlcmlmeS1tb2RpZmllci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2NCArMCwwIEBACi1j b21taXQgYmRjYzIzZTBhNWU3ZTIyMDY2MGQzZjU0Yzk3MjYyZjlhNGMzMTYwNgotQXV0aG9yOiBO aWNrIERpZWdvIFlhbWFuZSA8bmlja2RpZWdvQGlnYWxpYS5jb20+Ci1EYXRlOiAgIFRodSBOb3Yg MiAxNzoyNjoyNSAyMDIzICswMDAwCi0KLSAgICBnYm06IG52aWRpYTogdXNlIHNlcGFyYXRlIGJv IHRvIHZlcmlmeSBtb2RpZmllcnMKLSAgICAKLSAgICBCdWdneSBOdmlkaWEgZHJpdmVycyBmYWls IHRvIHJldHVybiBGRHMgZm9yIHBsYW5lcyBvZiBhIEJPIHdoaWNoIGhhZAotICAgIGFscmVhZHkg YW4gaW1wb3J0ZWQgQk8gZGVzdHJveWVkIGJlZm9yZS4gVGhpcyBpcyBhIHdvcmthcm91bmQgZm9y IHRoYXQKLSAgICBpc3N1ZSwgd2hpY2ggY29uc2lzdHMgb2YgY3JlYXRpbmcvZGVzdHJveWluZyBh IHNlcGFyYXRlIDF4MSBCTyBmb3IKLSAgICB2YWxpZGF0aW5nIHRoZSBtb2RpZmllcnMgYmVmb3Jl IGFjdHVhbGx5IGNyZWF0aW5nIHRoZSBmaW5hbCByZXF1ZXN0ZWQKLSAgICBCTywgd2hpY2ggZm9y IG5vdyBpcyBsaW1pdGVkIHRvIElTX0xJTlVYIGJ1aWxkcy4KLSAgICAKLSAgICBUaGUgTnZpZGlh IGRyaXZlciBidWcgaXMgYmVpbmcgdHJhY2tlZCB1bmRlciBpbnRlcm5hbCBidWcgNDMxNTUyOS4g VGhlcmUKLSAgICBzZWVtcyB0byBiZSBvdGhlciBpc3N1ZXMgd2hlbiBydW5uaW5nIHVuZGVyIFdh eWxhbmQgd2l0aCBOdmlkaWEsIHdoaWNoCi0gICAgd2lsbCBiZSB0cmFja2VkIGFuZCBhZGRyZXNz ZWQgaW4gc2VwYXJhdGUgcGF0Y2hlcy4KLSAgICAKLSAgICBSPWRjYXN0YWduYSwgbXNpc292QGln YWxpYS5jb20KLSAgICAKLSAgICAgIHdpdGggb3pvbmUvd2F5bGFuZCBiYWNrZW5kIGFuZCB2ZXJp ZnkgR1BVIGFjY2VsZXJhdGlvbiBpcyBub3QgYnJva2VuLgotICAgIAotICAgIFRlc3Q6IEluIGEg c2luZ2xlIE52aWRpYSBHUFUgc2V0dXAsIHdpdGggcHJvcHJpZXRhcnkgZHJpdmVyLCBydW4gQ2hy b21lCi0gICAgQnVnOiAxMjczNzU4LCAxNDc4Njg0LCAxNDYzODUxCi0gICAgQ2hhbmdlLUlkOiBJ OWYzMjJiY2Y0MGI0NjBiY2Q0ZWFkMDJmMDVkZDJlOWE4ZDI3MWNlYQotICAgIFJldmlld2VkLW9u OiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3Jj LysvNDk4OTc4MgotICAgIFJldmlld2VkLWJ5OiBNYWtzaW0gU2lzb3YgPG1zaXNvdkBpZ2FsaWEu Y29tPgotICAgIENvbW1pdC1RdWV1ZTogTmljayBZYW1hbmUgPG5pY2tkaWVnb0BpZ2FsaWEuY29t PgotICAgIENyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTIxODkyNH0KLQot ZGlmZiAtLWdpdCBhL3VpL2dmeC9saW51eC9nYm1fd3JhcHBlci5jYyBiL3VpL2dmeC9saW51eC9n Ym1fd3JhcHBlci5jYwotaW5kZXggYmY5MGI3NjYwNWY2OC4uMTQ5MThjMTljMGFiMCAxMDA2NDQK LS0tLSBhL3VpL2dmeC9saW51eC9nYm1fd3JhcHBlci5jYwotKysrIGIvdWkvZ2Z4L2xpbnV4L2di bV93cmFwcGVyLmNjCi1AQCAtMTEsNiArMTEsNyBAQAotICNpbmNsdWRlICJiYXNlL2xvZ2dpbmcu aCIKLSAjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcmF3X3B0ci5oIgotICNpbmNsdWRlICJiYXNlL21l bW9yeS9yYXdfcHRyX2V4Y2x1c2lvbi5oIgotKyNpbmNsdWRlICJiYXNlL251bWVyaWNzL3NhZmVf Y29udmVyc2lvbnMuaCIKLSAjaW5jbHVkZSAiYmFzZS9wb3NpeC9laW50cl93cmFwcGVyLmgiCi0g I2luY2x1ZGUgInNraWEvZXh0L2xlZ2FjeV9kaXNwbGF5X2dsb2JhbHMuaCIKLSAjaW5jbHVkZSAi dGhpcmRfcGFydHkvc2tpYS9pbmNsdWRlL2NvcmUvU2tTdXJmYWNlLmgiCi1AQCAtNzEsNiArNzIs NyBAQCBiYXNlOjpTY29wZWRGRCBHZXRQbGFuZUZkRm9yQm8oZ2JtX2JvKiBibywgc2l6ZV90IHBs YW5lKSB7Ci0gICBpbnQgcmV0OwotICAgLy8gVXNlIERSTV9SRFdSIHRvIGFsbG93IHRoZSBmZCB0 byBiZSBtYXBwYWJsZSBpbiBhbm90aGVyIHByb2Nlc3MuCi0gICByZXQgPSBkcm1QcmltZUhhbmRs ZVRvRkQoZGV2X2ZkLCBwbGFuZV9oYW5kbGUsIERSTV9DTE9FWEVDIHwgRFJNX1JEV1IsICZmZCk7 Ci0rICBQTE9HX0lGKEVSUk9SLCByZXQgIT0gMCkgPDwgIkZhaWxlZCB0byBnZXQgZmQgZm9yIHBs YW5lLiI7Ci0gCi0gICAvLyBPbGRlciBEUk0gaW1wbGVtZW50YXRpb25zIGJsb2NrZWQgRFJNX1JE V1IsIGJ1dCBnYXZlIGEgcmVhZC93cml0ZSBtYXBwaW5nCi0gICAvLyBhbnl3YXlzCi1AQCAtMzAx LDU4ICszMDMsODIgQEAgY2xhc3MgRGV2aWNlIGZpbmFsIDogcHVibGljIHVpOjpHYm1EZXZpY2Ug ewotIAotICAgc3RkOjp1bmlxdWVfcHRyPHVpOjpHYm1CdWZmZXI+IENyZWF0ZUJ1ZmZlcldpdGhN b2RpZmllcnMoCi0gICAgICAgdWludDMyX3QgZm9ybWF0LAotLSAgICAgIGNvbnN0IGdmeDo6U2l6 ZSYgc2l6ZSwKLSsgICAgICBjb25zdCBnZng6OlNpemUmIHJlcXVlc3RlZF9zaXplLAotICAgICAg IHVpbnQzMl90IGZsYWdzLAotICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ2NF90PiYgbW9k aWZpZXJzKSBvdmVycmlkZSB7Ci0tICAgIGlmIChtb2RpZmllcnMuZW1wdHkoKSkKLS0gICAgICBy ZXR1cm4gQ3JlYXRlQnVmZmVyKGZvcm1hdCwgc2l6ZSwgZmxhZ3MpOwotLQotLSAgICBzdGQ6OnZl Y3Rvcjx1aW50NjRfdD4gZmlsdGVyZWRfbW9kaWZpZXJzID0KLS0gICAgICAgIEdldEZpbHRlcmVk TW9kaWZpZXJzKGZvcm1hdCwgZmxhZ3MsIG1vZGlmaWVycyk7Ci0tICAgIHN0cnVjdCBnYm1fYm8q IGJvID0gbnVsbHB0cjsKLS0gICAgd2hpbGUgKGZpbHRlcmVkX21vZGlmaWVycy5zaXplKCkgPiAw KSB7Ci0tICAgICAgYm8gPSBnYm1fYm9fY3JlYXRlX3dpdGhfbW9kaWZpZXJzKGRldmljZV8sIHNp emUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9ybWF0LCBmaWx0ZXJlZF9tb2RpZmllcnMuZGF0YSgpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZF9tb2RpZmllcnMuc2l6ZSgp KTsKLS0gICAgICBpZiAoIWJvKSB7Ci0rICAgIGlmIChtb2RpZmllcnMuZW1wdHkoKSkgewotKyAg ICAgIHJldHVybiBDcmVhdGVCdWZmZXIoZm9ybWF0LCByZXF1ZXN0ZWRfc2l6ZSwgZmxhZ3MpOwot KyAgICB9Ci0rCi0rICAgIC8vIEJ1Z2d5IGRyaXZlcnMgcHJldmVudCB1cyBmcm9tIGdldHRpbmcg cGxhbmUgRkRzIGZyb20gYSBCTyB3aGljaCBoYWQgaXRzCi0rICAgIC8vIHByZXZpb3VzbHkgaW1w b3J0ZWQgQk8gZGVzdHJveWVkLiBFLmc6IE52aWRpYS4gVGh1cywgb24gTGludXggRGVza3RvcCwg d2UKLSsgICAgLy8gZG8gdGhlIGNyZWF0ZS9pbXBvcnQgbW9kaWZpZXJzIHZhbGlkYXRpb24gbG9v cCBiZWxvdyB1c2luZyBhIHNlcGFyYXRlIHNldAotKyAgICAvLyBvZiAxeDEgQk9zIHdoaWNoIGFy ZSBkZXN0cm95ZWQgYmVmb3JlIGNyZWF0aW5nIHRoZSBmaW5hbCBCTyBjcmVhdGlvbiB1c2VkCi0r ICAgIC8vIHRvIGluc3RhbnRpYXRlIHRoZSByZXR1cm5lZCBHYm1CdWZmZXIuCi0rICAgIGdmeDo6 U2l6ZSBzaXplID0KLSsjaWYgQlVJTERGTEFHKElTX0xJTlVYKQotKyAgICAgICAgZ2Z4OjpTaXpl KDEsIDEpOwotKyNlbHNlCi0rICAgICAgICByZXF1ZXN0ZWRfc2l6ZTsKLSsjZW5kaWYKLSsgICAg YXV0byBmaWx0ZXJlZF9tb2RpZmllcnMgPSBHZXRGaWx0ZXJlZE1vZGlmaWVycyhmb3JtYXQsIGZs YWdzLCBtb2RpZmllcnMpOwotKyAgICBzdHJ1Y3QgZ2JtX2JvKiBjcmVhdGVkX2JvID0gbnVsbHB0 cjsKLSsgICAgYm9vbCB2YWxpZF9tb2RpZmllcnMgPSBmYWxzZTsKLSsKLSsgICAgd2hpbGUgKCF2 YWxpZF9tb2RpZmllcnMgJiYgIWZpbHRlcmVkX21vZGlmaWVycy5lbXB0eSgpKSB7Ci0rICAgICAg Y3JlYXRlZF9ibyA9IGdibV9ib19jcmVhdGVfd2l0aF9tb2RpZmllcnMoCi0rICAgICAgICAgIGRl dmljZV8sIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgZm9ybWF0LAotKyAgICAgICAgICBm aWx0ZXJlZF9tb2RpZmllcnMuZGF0YSgpLCBmaWx0ZXJlZF9tb2RpZmllcnMuc2l6ZSgpKTsKLSsg ICAgICBpZiAoIWNyZWF0ZWRfYm8pIHsKLSAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAg IH0KLSAKLS0gICAgICBzdHJ1Y3QgZ2JtX2ltcG9ydF9mZF9tb2RpZmllcl9kYXRhIGZkX2RhdGE7 Ci0tICAgICAgZmRfZGF0YS53aWR0aCA9IHNpemUud2lkdGgoKTsKLS0gICAgICBmZF9kYXRhLmhl aWdodCA9IHNpemUuaGVpZ2h0KCk7Ci0tICAgICAgZmRfZGF0YS5mb3JtYXQgPSBmb3JtYXQ7Ci0t ICAgICAgZmRfZGF0YS5udW1fZmRzID0gZ2JtX2JvX2dldF9wbGFuZV9jb3VudChibyk7Ci0tICAg ICAgZmRfZGF0YS5tb2RpZmllciA9IGdibV9ib19nZXRfbW9kaWZpZXIoYm8pOwotLQotLSAgICAg IC8vIFN0b3JlIGZkcyBpbiB0aGUgdmVjdG9yIG9mIGJhc2U6OlNjb3BlZEZEcy4gV2lsbCBiZSBy ZWxlYXNlZAotLSAgICAgIC8vIGF1dG9tYXRpY2FsbHkuCi0rICAgICAgY29uc3QgaW50IHBsYW5l c19jb3VudCA9IGdibV9ib19nZXRfcGxhbmVfY291bnQoY3JlYXRlZF9ibyk7Ci0rICAgICAgc3Ry dWN0IGdibV9pbXBvcnRfZmRfbW9kaWZpZXJfZGF0YSBmZF9kYXRhID0gewotKyAgICAgICAgICAu d2lkdGggPSBiYXNlOjpjaGVja2VkX2Nhc3Q8dWludDMyX3Q+KHNpemUud2lkdGgoKSksCi0rICAg ICAgICAgIC5oZWlnaHQgPSBiYXNlOjpjaGVja2VkX2Nhc3Q8dWludDMyX3Q+KHNpemUuaGVpZ2h0 KCkpLAotKyAgICAgICAgICAuZm9ybWF0ID0gZm9ybWF0LAotKyAgICAgICAgICAubnVtX2ZkcyA9 IGJhc2U6OmNoZWNrZWRfY2FzdDx1aW50MzJfdD4ocGxhbmVzX2NvdW50KSwKLSsgICAgICAgICAg Lm1vZGlmaWVyID0gZ2JtX2JvX2dldF9tb2RpZmllcihjcmVhdGVkX2JvKX07Ci0rICAgICAgLy8g U3RvcmUgZmRzIGluIGEgYmFzZTo6U2NvcGVkRkRzIHZlY3Rvci4gV2lsbCBiZSByZWxlYXNlZCBh dXRvbWF0aWNhbGx5LgotICAgICAgIHN0ZDo6dmVjdG9yPGJhc2U6OlNjb3BlZEZEPiBmZHM7Ci0g ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGZkX2RhdGEu bnVtX2Zkcyk7ICsraSkgewotLSAgICAgICAgZmRzLmVtcGxhY2VfYmFjayhHZXRQbGFuZUZkRm9y Qm8oYm8sIGkpKTsKLSsgICAgICAgIGZkcy5lbXBsYWNlX2JhY2soR2V0UGxhbmVGZEZvckJvKGNy ZWF0ZWRfYm8sIGkpKTsKLSAgICAgICAgIGZkX2RhdGEuZmRzW2ldID0gZmRzLmJhY2soKS5nZXQo KTsKLS0gICAgICAgIGZkX2RhdGEuc3RyaWRlc1tpXSA9IGdibV9ib19nZXRfc3RyaWRlX2Zvcl9w bGFuZShibywgaSk7Ci0tICAgICAgICBmZF9kYXRhLm9mZnNldHNbaV0gPSBnYm1fYm9fZ2V0X29m ZnNldChibywgaSk7Ci0rICAgICAgICBmZF9kYXRhLnN0cmlkZXNbaV0gPSBnYm1fYm9fZ2V0X3N0 cmlkZV9mb3JfcGxhbmUoY3JlYXRlZF9ibywgaSk7Ci0rICAgICAgICBmZF9kYXRhLm9mZnNldHNb aV0gPSBnYm1fYm9fZ2V0X29mZnNldChjcmVhdGVkX2JvLCBpKTsKLSAgICAgICB9Ci0gCi0tICAg ICAgc3RydWN0IGdibV9ibyogYm9faW1wb3J0ID0KLSsgICAgICBzdHJ1Y3QgZ2JtX2JvKiBpbXBv cnRlZF9ibyA9Ci0gICAgICAgICAgIGdibV9ib19pbXBvcnQoZGV2aWNlXywgR0JNX0JPX0lNUE9S VF9GRF9NT0RJRklFUiwgJmZkX2RhdGEsIGZsYWdzKTsKLS0gICAgICBpZiAoYm9faW1wb3J0KSB7 Ci0tICAgICAgICBnYm1fYm9fZGVzdHJveShib19pbXBvcnQpOwotLSAgICAgICAgYnJlYWs7Ci0r Ci0rICAgICAgaWYgKGltcG9ydGVkX2JvKSB7Ci0rICAgICAgICB2YWxpZF9tb2RpZmllcnMgPSB0 cnVlOwotKyAgICAgICAgZ2JtX2JvX2Rlc3Ryb3koaW1wb3J0ZWRfYm8pOwotICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICBnYm1fYm9fZGVzdHJveShibyk7Ci0tICAgICAgICBibyA9IG51bGxwdHI7 Ci0gICAgICAgICBBZGRNb2RpZmllclRvQmxvY2tsaXN0KGZvcm1hdCwgZmxhZ3MsIGZkX2RhdGEu bW9kaWZpZXIpOwotICAgICAgICAgZmlsdGVyZWRfbW9kaWZpZXJzID0KLSAgICAgICAgICAgICBH ZXRGaWx0ZXJlZE1vZGlmaWVycyhmb3JtYXQsIGZsYWdzLCBmaWx0ZXJlZF9tb2RpZmllcnMpOwot ICAgICAgIH0KLSsKLSsgICAgICBpZiAoIXZhbGlkX21vZGlmaWVycyB8fCBzaXplICE9IHJlcXVl c3RlZF9zaXplKSB7Ci0rICAgICAgICBnYm1fYm9fZGVzdHJveShjcmVhdGVkX2JvKTsKLSsgICAg ICAgIGNyZWF0ZWRfYm8gPSBudWxscHRyOwotKyAgICAgIH0KLSAgICAgfQotLSAgICBpZiAoIWJv KSB7Ci0tICAgICAgcmV0dXJuIG51bGxwdHI7Ci0rCi0rICAgIC8vIElmIG1vZGlmaWVycyB3ZXJl IHN1Y2Nlc3NmdWxseSB2ZXJpZmllZCB0aG91Z2ggYGNyZWF0ZWRfYm9gIGlzIG51bGwgaGVyZSwK LSsgICAgLy8gaXQgaXQgbWVhbnMgdGhhdCB0aGUgYnVmZmVyIGNyZWF0ZWQgZm9yIHZlcmlmaWNh dGlvbiBjb3VsZCBub3QgYmUgcmV1c2VkLAotKyAgICAvLyBpZTogZGlmZmVyZW50IHNpemUsIHNv IGNyZWF0ZSBpdCBub3cgd2l0aCB0aGUgYHJlcXVlc3RlZF9zaXplYC4KLSsgICAgaWYgKHZhbGlk X21vZGlmaWVycyAmJiAhY3JlYXRlZF9ibykgewotKyAgICAgIGNyZWF0ZWRfYm8gPSBnYm1fYm9f Y3JlYXRlX3dpdGhfbW9kaWZpZXJzKAotKyAgICAgICAgICBkZXZpY2VfLCByZXF1ZXN0ZWRfc2l6 ZS53aWR0aCgpLCByZXF1ZXN0ZWRfc2l6ZS5oZWlnaHQoKSwgZm9ybWF0LAotKyAgICAgICAgICBm aWx0ZXJlZF9tb2RpZmllcnMuZGF0YSgpLCBmaWx0ZXJlZF9tb2RpZmllcnMuc2l6ZSgpKTsKLSsg ICAgICBQTE9HX0lGKEVSUk9SLCAhY3JlYXRlZF9ibykgPDwgIkZhaWxlZCB0byBjcmVhdGUgQk8g d2l0aCBtb2RpZmllcnMuIjsKLSAgICAgfQotIAotLSAgICByZXR1cm4gQ3JlYXRlQnVmZmVyRm9y Qk8oYm8sIGZvcm1hdCwgc2l6ZSwgZmxhZ3MpOwotKyAgICByZXR1cm4gY3JlYXRlZF9ibyA/IENy ZWF0ZUJ1ZmZlckZvckJPKGNyZWF0ZWRfYm8sIGZvcm1hdCwgc2l6ZSwgZmxhZ3MpCi0rICAgICAg ICAgICAgICAgICAgICAgIDogbnVsbHB0cjsKLSAgIH0KLSAKLSAgIHN0ZDo6dW5pcXVlX3B0cjx1 aTo6R2JtQnVmZmVyPiBDcmVhdGVCdWZmZXJGcm9tSGFuZGxlKApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1hcm02NC1tZW1vcnlfdGFnZ2luZy5wYXRj aCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtYXJtNjQtbWVtb3J5X3Rh Z2dpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYmI0 NjFlZjM2NjRhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9j aHJvbWl1bS0xMjAtYXJtNjQtbWVtb3J5X3RhZ2dpbmcucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAor LS0tIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9j YXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3BhcnRpdGlvbl9hbGxvY19jb25maWcuaC50aGFuCTIw MjMtMTEtMjYgMTM6NTA6MDcuMDA1NTE5ODc3ICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5 OS4zNS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxs b2MvcGFydGl0aW9uX2FsbG9jX2NvbmZpZy5oCTIwMjMtMTEtMjYgMTM6NTA6NDkuNzI3MjY3MjQw ICswMTAwCitAQCAtMTUyLDEwICsxNTIsNyBAQAorICAgKCFCVUlMREZMQUcoUFVUX1JFRl9DT1VO VF9JTl9QUkVWSU9VU19TTE9UKSAmJiBcCisgICAgZGVmaW5lZChBUkNIX0NQVV9MSVRUTEVfRU5E SUFOKSkKKyAKKy0jZGVmaW5lIFBBX0NPTkZJR19IQVNfTUVNT1JZX1RBR0dJTkcoKSAgICAgICAg ICAgICAgXAorLSAgKGRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmIGRlZmluZWQoX19jbGFuZ19f KSAmJiBcCistICAgIWRlZmluZWQoQUREUkVTU19TQU5JVElaRVIpICYmICAgICAgICAgICAgICAg ICAgIFwKKy0gICAoQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkp KQorKyNkZWZpbmUgUEFfQ09ORklHX0hBU19NRU1PUllfVEFHR0lORygpIDAKKyAKKyAjaWYgUEFf Q09ORklHKEhBU19NRU1PUllfVEFHR0lORykKKyBzdGF0aWNfYXNzZXJ0KHNpemVvZih2b2lkKikg PT0gOCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIw LWRpc2FibGUtRkZtcGVnQWxsb3dMaXN0cy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9jaHJvbWl1bS0xMjAtZGlzYWJsZS1GRm1wZWdBbGxvd0xpc3RzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjk4MjE2ZGRiNDY1Y2EKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLWRpc2FibGUtRkZt cGVnQWxsb3dMaXN0cy5wYXRjaApAQCAtMCwwICsxLDEyIEBACitkaWZmIC11cCBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MubWUgY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjCistLS0gY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjLm1lCTIwMjMtMTItMDIgMTE6 NDM6MjEuOTkwNzc1ODk3ICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9tZWRpYS9i YXNlL21lZGlhX3N3aXRjaGVzLmNjCTIwMjMtMTItMDIgMTE6NDU6MjMuMjQ4MDA2Mzc3ICswMTAw CitAQCAtMTYzNiw3ICsxNjM2LDcgQEAgQkFTRV9GRUFUVVJFKGtVc2VTaGFyZWRJbWFnZXNGb3JQ ZXBwZXJWaQorIC8vIEVuYWJsZXMgRkZtcGVnIGFsbG93IGxpc3RzIGZvciBzdXBwb3J0ZWQgY29k ZWNzIC8gY29udGFpbmVycy4KKyBCQVNFX0ZFQVRVUkUoa0ZGbXBlZ0FsbG93TGlzdHMsCisgICAg ICAgICAgICAgICJGRm1wZWdBbGxvd0xpc3RzIiwKKy0gICAgICAgICAgICAgYmFzZTo6RkVBVFVS RV9FTkFCTEVEX0JZX0RFRkFVTFQpOworKyAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0RJU0FC TEVEX0JZX0RFRkFVTFQpOworIAorICNpZiBCVUlMREZMQUcoRU5BQkxFX0ZGTVBFR19WSURFT19E RUNPREVSUykKKyAvLyBBbGxvd3MgZGVjb2Rpbmcgb2YgdGhlb3JhIC8gdnAzIGNvbnRlbnQuCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLWRpc2FibGUt R2xvYmFsTWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tMTIwLWRpc2FibGUtR2xvYmFsTWVkaWFDb250cm9sc0Nhc3RTdGFy dFN0b3AucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNmEy NTg1Yjk1M2MzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9j aHJvbWl1bS0xMjAtZGlzYWJsZS1HbG9iYWxNZWRpYUNvbnRyb2xzQ2FzdFN0YXJ0U3RvcC5wYXRj aApAQCAtMCwwICsxLDE0IEBACistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS4zNS9jaHJvbWUvYnJv d3Nlci9tZWRpYS9yb3V0ZXIvbWVkaWFfcm91dGVyX2ZlYXR1cmUuY2Mub3JpZwkyMDIzLTExLTI2 IDEzOjI1OjM0LjcyNDIyODc1NSArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvY2hy b21lL2Jyb3dzZXIvbWVkaWEvcm91dGVyL21lZGlhX3JvdXRlcl9mZWF0dXJlLmNjCTIwMjMtMTEt MjYgMTM6Mjg6MjYuNDUyMzU5MTQ2ICswMTAwCitAQCAtNzEsMTEgKzcxLDcgQEAKKyAvLyBUT0RP KGIvMjAyMjk0OTQ2KTogUmVtb3ZlIHdoZW4gZW5hYmxlZCBieSBkZWZhdWx0IG9uIENocm9tZU9T LgorIEJBU0VfRkVBVFVSRShrR2xvYmFsTWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AsCisgICAg ICAgICAgICAgICJHbG9iYWxNZWRpYUNvbnRyb2xzQ2FzdFN0YXJ0U3RvcCIsCistI2lmIEJVSUxE RkxBRyhJU19DSFJPTUVPUykKKyAgICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9ESVNBQkxFRF9C WV9ERUZBVUxUKTsKKy0jZWxzZQorLSAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0VOQUJMRURf QllfREVGQVVMVCk7CistI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisgI2VuZGlm ICAvLyAhQlVJTERGTEFHKElTX0FORFJPSUQpCisgCisgbmFtZXNwYWNlIHsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLWJ1aWxkLWZh aWx1cmUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1j bGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLjk2MjU4ZTY3YWFlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1jbGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoCkBA IC0wLDAgKzEsMjMwIEBACitjb21taXQgNTc1MjZiOGRjNDViMmU2YzY3YmJhNzMwNmYxZGRlNzNi MWYyOTEwYworQXV0aG9yOiBzaXNpZG92c2tpIDxzaXNpZG92c2tpQGNocm9taXVtLm9yZz4KK0Rh dGU6ICAgVHVlIE9jdCAyNCAwOTozMjo0OSAyMDIzICswMDAwCisKKyAgICBSZW1vdmUgdW51c2Vk IGl0ZW1zIGZyb20gdGhlIFJhY2VOZXR3b3JrUmVxdWVzdCBoYXNobWFwCisgICAgCisgICAgV2hl biB0aGUgQXV0b1ByZWxvYWQgb3IgdGhlIHJhY2UtbmV0d29yay1hbmQtZmV0Y2gtaGFuZGxlciBv cHRpb24gaW4gdGhlCisgICAgc3RhdGljIHJvdXRpbmcgQVBJIGlzIGVuYWJsZWQsIG5ldHdvcmsg cmVxdWVzdHMgYXJlIGRpc3BhdGNoZWQgYW5kCisgICAgVVJMTG9hZGVyRmFjdG9yaWVzIGFyZSBo ZWxkIGluIGEgaGFzaG1hcCBpbiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuCisgICAgVGhvc2Ug YXJlIGNvbnN1bWVkIGluc2lkZSB0aGUgZmV0Y2ggaGFuZGxlciB3aGVuIGZldGNoKGUucmVxdWVz dCkgaXMKKyAgICBjYWxsZWQuIEJ1dCBpZiB0aGUgZmV0Y2ggaGFuZGxlciBkb2Vzbid0IGNhbGwg ZmV0Y2goKSBlLmcuIGZhbGxiYWNrLAorICAgIHRob3NlIGhhc2htYXAgaXRlbXMgZG9lcyBub3Qg aGF2ZSBhIGNoYW5jZSB0byBiZSByZW1vdmVkLgorICAgIAorICAgIFRoaXMgQ0wgY2hhbmdlcyB0 aGUgaGFzaG1hcCBpdGVtcyB0byBiZSByZW1vdmVkIHdoZW4gdGhlIGZldGNoIGV2ZW50CisgICAg ZmluaXNoZXMsIGFuZCB0aGUgVVJMTG9hZGVyRmFjdG9yeSBpcyBzdGlsbCBub3QgY29uc3VtZWQg YXQgdGhhdCB0aW1lLgorICAgIFRoaXMgbWF5IGxvb3NlIHRoZSBkZWR1cGUgY2FwYWJpbGl0eSBp ZiBmZXRjaCgpIGlzIGNhbGxlZCBsYXRlciBlLmcuCisgICAgc2V0VGltZW91dCgoKSA9PiBmZXRj aCgpKSwgYnV0IGl0IG1ha2VzIHNlbnNlIHRvIHByaW9yaXRpemUga2VlcGluZyB0aGUKKyAgICBo YXNobWFwIHNtYWxsLgorICAgIAorICAgIENoYW5nZS1JZDogSTUxYmRjOWQ1ZWI1MTg1ZjJiNWI0 ZGY2ZWU3ODU3MTViMTE4MGM4NDgKKyAgICBCdWc6IDE0OTI2NDAKKyAgICBSZXZpZXdlZC1vbjog aHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8r LzQ5NjQ4NDAKKyAgICBSZXZpZXdlZC1ieTogTWlub3J1IENoaWthbXVuZSA8Y2hpa2FtdW5lQGNo cm9taXVtLm9yZz4KKyAgICBDb21taXQtUXVldWU6IFlvc2hpc2F0byBZYW5hZ2lzYXdhIDx5eWFu YWdpc2F3YUBjaHJvbWl1bS5vcmc+CisgICAgUmV2aWV3ZWQtYnk6IFlvc2hpc2F0byBZYW5hZ2lz YXdhIDx5eWFuYWdpc2F3YUBjaHJvbWl1bS5vcmc+CisgICAgQ3ItQ29tbWl0LVBvc2l0aW9uOiBy ZWZzL2hlYWRzL21haW5AeyMxMjE0MDY0fQorCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9nbG9iYWxf c2NvcGUuY2MgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3NlcnZpY2Vfd29y a2VyL3NlcnZpY2Vfd29ya2VyX2dsb2JhbF9zY29wZS5jYworaW5kZXggMDI4ODdlZGMxMDg4My4u YjM2MjRmYzAxNjJkZiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21v ZHVsZXMvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xvYmFsX3Njb3BlLmNjCisrKysg Yi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3NlcnZpY2Vfd29ya2VyL3NlcnZp Y2Vfd29ya2VyX2dsb2JhbF9zY29wZS5jYworQEAgLTQ2LDYgKzQ2LDcgQEAKKyAjaW5jbHVkZSAi c2VydmljZXMvbmV0d29yay9wdWJsaWMvY3BwL2Nyb3NzX29yaWdpbl9lbWJlZGRlcl9wb2xpY3ku aCIKKyAjaW5jbHVkZSAic2VydmljZXMvbmV0d29yay9wdWJsaWMvbW9qb20vY29va2llX21hbmFn ZXIubW9qb20tYmxpbmsuaCIKKyAjaW5jbHVkZSAic2VydmljZXMvbmV0d29yay9wdWJsaWMvbW9q b20vY3Jvc3Nfb3JpZ2luX2VtYmVkZGVyX3BvbGljeS5tb2pvbS5oIgorKyNpbmNsdWRlICJzZXJ2 aWNlcy9uZXR3b3JrL3B1YmxpYy9tb2pvbS91cmxfbG9hZGVyX2ZhY3RvcnkubW9qb20tYmxpbmsu aCIKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcHVibGljL2NvbW1vbi9mZWF0dXJlcy5o IgorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMvbW9qb20vZmV0Y2gvZmV0Y2hf YXBpX3JlcXVlc3QubW9qb20tYmxpbmsuaCIKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsv cHVibGljL21vam9tL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLm1vam9tLWJsaW5rLmgiCitA QCAtMTA5Niw2ICsxMDk3LDEwIEBAIHZvaWQgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpEaWRI YW5kbGVGZXRjaEV2ZW50KAorICAgICAgIFRSQUNFX0lEX1dJVEhfU0NPUEUoa1NlcnZpY2VXb3Jr ZXJHbG9iYWxTY29wZVRyYWNlU2NvcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUUkFD RV9JRF9MT0NBTChldmVudF9pZCkpLAorICAgICAgIFRSQUNFX0VWRU5UX0ZMQUdfRkxPV19JTiwg InN0YXR1cyIsIE1vam9FbnVtVG9TdHJpbmcoc3RhdHVzKSk7CisrCisrICAvLyBEZWxldGUgdGhl IFVSTExvYWRlckZhY3RvcnkgZm9yIHRoZSBSYWNlTmV0d29ya1JlcXVlc3QgaWYgaXQncyBub3Qg dXNlZC4KKysgIFJlbW92ZUl0ZW1Gcm9tUmFjZU5ldHdvcmtSZXF1ZXN0cyhldmVudF9pZCk7Cisr CisgICBpZiAoIVJ1bkV2ZW50Q2FsbGJhY2soJmZldGNoX2V2ZW50X2NhbGxiYWNrc18sIGV2ZW50 X3F1ZXVlXy5nZXQoKSwgZXZlbnRfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz KSkgeworICAgICAvLyBUaGUgZXZlbnQgbWF5IGhhdmUgYmVlbiBhYm9ydGVkLiBJdHMgcmVzcG9u c2UgY2FsbGJhY2sgYWxzbyBuZWVkcyB0byBiZQorQEAgLTE0OTUsNiArMTUwMCw3IEBAIHZvaWQg U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpBYm9ydENhbGxiYWNrRm9yRmV0Y2hFdmVudCgKKyAg ICAgcmVzcG9uc2VfY2FsbGJhY2tfaXRlci0+dmFsdWUtPlRha2VWYWx1ZSgpLnJlc2V0KCk7Cisg ICAgIGZldGNoX3Jlc3BvbnNlX2NhbGxiYWNrc18uZXJhc2UocmVzcG9uc2VfY2FsbGJhY2tfaXRl cik7CisgICB9CisrICBSZW1vdmVJdGVtRnJvbVJhY2VOZXR3b3JrUmVxdWVzdHMoZXZlbnRfaWQp OworIAorICAgLy8gUnVuIHRoZSBldmVudCBjYWxsYmFjayB3aXRoIHRoZSBlcnJvciBjb2RlLgor ICAgYXV0byBldmVudF9jYWxsYmFja19pdGVyID0gZmV0Y2hfZXZlbnRfY2FsbGJhY2tzXy5maW5k KGV2ZW50X2lkKTsKK0BAIC0xNTUxLDUyICsxNTU3LDExIEBAIHZvaWQgU2VydmljZVdvcmtlckds b2JhbFNjb3BlOjpTdGFydEZldGNoRXZlbnQoCisgCisgICBpZiAocGFyYW1zLT5yYWNlX25ldHdv cmtfcmVxdWVzdF9sb2FkZXJfZmFjdG9yeSAmJgorICAgICAgIHBhcmFtcy0+cmVxdWVzdC0+c2Vy dmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4pIHsKKy0gICAgYXV0byBpbnNl cnRfcmVzdWx0ID0gcmFjZV9uZXR3b3JrX3JlcXVlc3RfbG9hZGVyX2ZhY3Rvcmllc18uaW5zZXJ0 KAorLSAgICAgICAgU3RyaW5nKHBhcmFtcy0+cmVxdWVzdC0+c2VydmljZV93b3JrZXJfcmFjZV9u ZXR3b3JrX3JlcXVlc3RfdG9rZW4KKy0gICAgICAgICAgICAgICAgICAgLT5Ub1N0cmluZygpKSwK Ky0gICAgICAgIHN0ZDo6bW92ZShwYXJhbXMtPnJhY2VfbmV0d29ya19yZXF1ZXN0X2xvYWRlcl9m YWN0b3J5KSk7CistCistICAgIC8vIER1bXBXaXRob3V0Q3Jhc2hpbmcgaWYgdGhlIHRva2VuIGlz IGVtcHR5LCBvciBub3QgaW5zZXJ0ZWQgYXMgYSBuZXcgZW50cnkKKy0gICAgLy8gdG8gfHJhY2Vf bmV0d29ya19yZXF1ZXN0X2xvYWRlcl9mYWN0b3JpZXNffC4KKy0gICAgLy8gVE9ETyhjcmJ1Zy5j b20vMTQ5MjY0MCkgUmVtb3ZlIER1bXBXaXRob3V0Q3Jhc2hpbmcgb25jZSB3ZSBjb2xsZWN0IGRh dGEKKy0gICAgLy8gYW5kIGlkZW50aWZ5IHRoZSBjYXVzZS4KKy0gICAgc3RhdGljIGJvb2wgaGFz X2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9lbXB0eV90b2tlbiA9IGZhbHNlOworLSAgICBz dGF0aWMgYm9vbCBoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX25vdF9uZXdfZW50cnkg PSBmYWxzZTsKKy0gICAgaWYgKCFoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX2VtcHR5 X3Rva2VuICYmCistICAgICAgICBwYXJhbXMtPnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2Vf bmV0d29ya19yZXF1ZXN0X3Rva2VuCistICAgICAgICAgICAgLT5pc19lbXB0eSgpKSB7CistICAg ICAgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9lbXB0eV90b2tlbiA9IHRydWU7Cist ICAgICAgU0NPUEVEX0NSQVNIX0tFWV9CT09MKAorLSAgICAgICAgICAiU1dHbG9iYWxTY29wZSIs ICJlbXB0eV9yYWNlX3Rva2VuIiwKKy0gICAgICAgICAgcGFyYW1zLT5yZXF1ZXN0LT5zZXJ2aWNl X3dvcmtlcl9yYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbgorLSAgICAgICAgICAgICAgLT5pc19l bXB0eSgpKTsKKy0gICAgICBTQ09QRURfQ1JBU0hfS0VZX1NUUklORzY0KAorLSAgICAgICAgICAi U1dHbG9iYWxTY29wZSIsICJyYWNlX3Rva2VuX3N0cmluZyIsCistICAgICAgICAgIHBhcmFtcy0+ cmVxdWVzdC0+c2VydmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4KKy0gICAg ICAgICAgICAgIC0+VG9TdHJpbmcoKSk7CistICAgICAgU0NPUEVEX0NSQVNIX0tFWV9CT09MKCJT V0dsb2JhbFNjb3BlIiwgInJhY2VfaW5zZXJ0X25ld19lbnRyeSIsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluc2VydF9yZXN1bHQuaXNfbmV3X2VudHJ5KTsKKy0gICAgICBTQ09QRURf Q1JBU0hfS0VZX1NUUklORzI1NigiU1dHbG9iYWxTY29wZSIsICJyYWNlX3JlcXVlc3RfdXJsIiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPnJlcXVlc3QtPnVybC5H ZXRTdHJpbmcoKS5VdGY4KCkpOworLSAgICAgIGJhc2U6OmRlYnVnOjpEdW1wV2l0aG91dENyYXNo aW5nKCk7CistICAgIH0KKy0gICAgaWYgKCFoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9y X25vdF9uZXdfZW50cnkgJiYKKy0gICAgICAgICFpbnNlcnRfcmVzdWx0LmlzX25ld19lbnRyeSkg eworLSAgICAgIGhhc19kdW1wZWRfd2l0aG91dF9jcmFzaGluZ19mb3Jfbm90X25ld19lbnRyeSA9 IHRydWU7CistICAgICAgU0NPUEVEX0NSQVNIX0tFWV9CT09MKAorLSAgICAgICAgICAiU1dHbG9i YWxTY29wZSIsICJlbXB0eV9yYWNlX3Rva2VuIiwKKy0gICAgICAgICAgcGFyYW1zLT5yZXF1ZXN0 LT5zZXJ2aWNlX3dvcmtlcl9yYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbgorLSAgICAgICAgICAg ICAgLT5pc19lbXB0eSgpKTsKKy0gICAgICBTQ09QRURfQ1JBU0hfS0VZX1NUUklORzY0KAorLSAg ICAgICAgICAiU1dHbG9iYWxTY29wZSIsICJyYWNlX3Rva2VuX3N0cmluZyIsCistICAgICAgICAg IHBhcmFtcy0+cmVxdWVzdC0+c2VydmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9r ZW4KKy0gICAgICAgICAgICAgIC0+VG9TdHJpbmcoKSk7CistICAgICAgU0NPUEVEX0NSQVNIX0tF WV9CT09MKCJTV0dsb2JhbFNjb3BlIiwgInJhY2VfaW5zZXJ0X25ld19lbnRyeSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluc2VydF9yZXN1bHQuaXNfbmV3X2VudHJ5KTsKKy0gICAg ICBTQ09QRURfQ1JBU0hfS0VZX1NUUklORzI1NigiU1dHbG9iYWxTY29wZSIsICJyYWNlX3JlcXVl c3RfdXJsIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPnJlcXVl c3QtPnVybC5HZXRTdHJpbmcoKS5VdGY4KCkpOworLSAgICAgIGJhc2U6OmRlYnVnOjpEdW1wV2l0 aG91dENyYXNoaW5nKCk7CistICAgIH0KKysgICAgSW5zZXJ0TmV3SXRlbVRvUmFjZU5ldHdvcmtS ZXF1ZXN0cygKKysgICAgICAgIGV2ZW50X2lkLAorKyAgICAgICAgcGFyYW1zLT5yZXF1ZXN0LT5z ZXJ2aWNlX3dvcmtlcl9yYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbi52YWx1ZSgpLAorKyAgICAg ICAgc3RkOjptb3ZlKHBhcmFtcy0+cmFjZV9uZXR3b3JrX3JlcXVlc3RfbG9hZGVyX2ZhY3Rvcnkp LAorKyAgICAgICAgcGFyYW1zLT5yZXF1ZXN0LT51cmwpOworICAgfQorIAorICAgUmVxdWVzdCog cmVxdWVzdCA9IFJlcXVlc3Q6OkNyZWF0ZSgKK0BAIC0yODA4LDEyICsyNzczLDcxIEBAIGJvb2wg U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpTZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKAorIGFi c2w6Om9wdGlvbmFsPG1vam86OlBlbmRpbmdSZW1vdGU8bmV0d29yazo6bW9qb206OmJsaW5rOjpV UkxMb2FkZXJGYWN0b3J5Pj4KKyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OkZpbmRSYWNlTmV0 d29ya1JlcXVlc3RVUkxMb2FkZXJGYWN0b3J5KAorICAgICBjb25zdCBiYXNlOjpVbmd1ZXNzYWJs ZVRva2VuJiB0b2tlbikgeworLSAgbW9qbzo6UGVuZGluZ1JlbW90ZTxuZXR3b3JrOjptb2pvbTo6 Ymxpbms6OlVSTExvYWRlckZhY3Rvcnk+IHJlc3VsdCA9CistICAgICAgcmFjZV9uZXR3b3JrX3Jl cXVlc3RfbG9hZGVyX2ZhY3Rvcmllc18uVGFrZShTdHJpbmcodG9rZW4uVG9TdHJpbmcoKSkpOwor KyAgc3RkOjp1bmlxdWVfcHRyPFJhY2VOZXR3b3JrUmVxdWVzdEluZm8+IHJlc3VsdCA9CisrICAg ICAgcmFjZV9uZXR3b3JrX3JlcXVlc3RzXy5UYWtlKFN0cmluZyh0b2tlbi5Ub1N0cmluZygpKSk7 CisgICBpZiAocmVzdWx0KSB7CistICAgIHJldHVybiByZXN1bHQ7CisrICAgIHJhY2VfbmV0d29y a19yZXF1ZXN0X2ZldGNoX2V2ZW50X2lkc18uZXJhc2UocmVzdWx0LT5mZXRjaF9ldmVudF9pZCk7 CisrICAgIHJldHVybiBhYnNsOjpvcHRpb25hbDwKKysgICAgICAgIG1vam86OlBlbmRpbmdSZW1v dGU8bmV0d29yazo6bW9qb206OmJsaW5rOjpVUkxMb2FkZXJGYWN0b3J5Pj4oCisrICAgICAgICBz dGQ6Om1vdmUocmVzdWx0LT51cmxfbG9hZGVyX2ZhY3RvcnkpKTsKKyAgIH0KKyAgIHJldHVybiBh YnNsOjpudWxsb3B0OworIH0KKyAKKyt2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6SW5z ZXJ0TmV3SXRlbVRvUmFjZU5ldHdvcmtSZXF1ZXN0cygKKysgICAgaW50IGZldGNoX2V2ZW50X2lk LAorKyAgICBjb25zdCBiYXNlOjpVbmd1ZXNzYWJsZVRva2VuJiB0b2tlbiwKKysgICAgbW9qbzo6 UGVuZGluZ1JlbW90ZTxuZXR3b3JrOjptb2pvbTo6Ymxpbms6OlVSTExvYWRlckZhY3Rvcnk+Cisr ICAgICAgICB1cmxfbG9hZGVyX2ZhY3RvcnksCisrICAgIGNvbnN0IEtVUkwmIHJlcXVlc3RfdXJs KSB7CisrICBhdXRvIHJhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2VuID0gU3RyaW5nKHRva2VuLlRv U3RyaW5nKCkpOworKyAgYXV0byBpbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxSYWNlTmV0d29ya1Jl cXVlc3RJbmZvPigKKysgICAgICBmZXRjaF9ldmVudF9pZCwgcmFjZV9uZXR3b3JrX3JlcXVlc3Rf dG9rZW4sCisrICAgICAgc3RkOjptb3ZlKHVybF9sb2FkZXJfZmFjdG9yeSkpOworKyAgcmFjZV9u ZXR3b3JrX3JlcXVlc3RfZmV0Y2hfZXZlbnRfaWRzXy5pbnNlcnQoZmV0Y2hfZXZlbnRfaWQsIGlu Zm8uZ2V0KCkpOworKyAgYXV0byBpbnNlcnRfcmVzdWx0ID0gcmFjZV9uZXR3b3JrX3JlcXVlc3Rz Xy5pbnNlcnQocmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUoaW5mbykpOworKwor KyAgLy8gRHVtcFdpdGhvdXRDcmFzaGluZyBpZiB0aGUgdG9rZW4gaXMgZW1wdHksIG9yIG5vdCBp bnNlcnRlZCBhcyBhIG5ldyBlbnRyeQorKyAgLy8gdG8gfHJhY2VfbmV0d29ya19yZXF1ZXN0X2xv YWRlcl9mYWN0b3JpZXNffC4KKysgIC8vIFRPRE8oY3JidWcuY29tLzE0OTI2NDApIFJlbW92ZSBE dW1wV2l0aG91dENyYXNoaW5nIG9uY2Ugd2UgY29sbGVjdCBkYXRhCisrICAvLyBhbmQgaWRlbnRp ZnkgdGhlIGNhdXNlLgorKyAgc3RhdGljIGJvb2wgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5n X2Zvcl9lbXB0eV90b2tlbiA9IGZhbHNlOworKyAgc3RhdGljIGJvb2wgaGFzX2R1bXBlZF93aXRo b3V0X2NyYXNoaW5nX2Zvcl9ub3RfbmV3X2VudHJ5ID0gZmFsc2U7CisrICBpZiAoIWhhc19kdW1w ZWRfd2l0aG91dF9jcmFzaGluZ19mb3JfZW1wdHlfdG9rZW4gJiYgdG9rZW4uaXNfZW1wdHkoKSkg eworKyAgICBoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX2VtcHR5X3Rva2VuID0gdHJ1 ZTsKKysgICAgU0NPUEVEX0NSQVNIX0tFWV9CT09MKCJTV0dsb2JhbFNjb3BlIiwgImVtcHR5X3Jh Y2VfdG9rZW4iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uaXNfZW1wdHkoKSk7 CisrICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RSSU5HNjQoIlNXR2xvYmFsU2NvcGUiLCAicmFjZV90 b2tlbl9zdHJpbmciLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLlRvU3Ry aW5nKCkpOworKyAgICBTQ09QRURfQ1JBU0hfS0VZX0JPT0woIlNXR2xvYmFsU2NvcGUiLCAicmFj ZV9pbnNlcnRfbmV3X2VudHJ5IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydF9y ZXN1bHQuaXNfbmV3X2VudHJ5KTsKKysgICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkcyNTYoIlNX R2xvYmFsU2NvcGUiLCAicmFjZV9yZXF1ZXN0X3VybCIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlcXVlc3RfdXJsLkdldFN0cmluZygpLlV0ZjgoKSk7CisrICAgIGJhc2U6OmRl YnVnOjpEdW1wV2l0aG91dENyYXNoaW5nKCk7CisrICB9CisrICBpZiAoIWhhc19kdW1wZWRfd2l0 aG91dF9jcmFzaGluZ19mb3Jfbm90X25ld19lbnRyeSAmJgorKyAgICAgICFpbnNlcnRfcmVzdWx0 LmlzX25ld19lbnRyeSkgeworKyAgICBoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX25v dF9uZXdfZW50cnkgPSB0cnVlOworKyAgICBTQ09QRURfQ1JBU0hfS0VZX0JPT0woIlNXR2xvYmFs U2NvcGUiLCAiZW1wdHlfcmFjZV90b2tlbiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICB0 b2tlbi5pc19lbXB0eSgpKTsKKysgICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkc2NCgiU1dHbG9i YWxTY29wZSIsICJyYWNlX3Rva2VuX3N0cmluZyIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdG9rZW4uVG9TdHJpbmcoKSk7CisrICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgiU1dH bG9iYWxTY29wZSIsICJyYWNlX2luc2VydF9uZXdfZW50cnkiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0X3Jlc3VsdC5pc19uZXdfZW50cnkpOworKyAgICBTQ09QRURfQ1JBU0hf S0VZX1NUUklORzI1NigiU1dHbG9iYWxTY29wZSIsICJyYWNlX3JlcXVlc3RfdXJsIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF91cmwuR2V0U3RyaW5nKCkuVXRmOCgp KTsKKysgICAgYmFzZTo6ZGVidWc6OkR1bXBXaXRob3V0Q3Jhc2hpbmcoKTsKKysgIH0KKyt9Cisr Cisrdm9pZCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OlJlbW92ZUl0ZW1Gcm9tUmFjZU5ldHdv cmtSZXF1ZXN0cygKKysgICAgaW50IGZldGNoX2V2ZW50X2lkKSB7CisrICBSYWNlTmV0d29ya1Jl cXVlc3RJbmZvKiBpbmZvID0KKysgICAgICByYWNlX25ldHdvcmtfcmVxdWVzdF9mZXRjaF9ldmVu dF9pZHNfLlRha2UoZmV0Y2hfZXZlbnRfaWQpOworKyAgaWYgKGluZm8pIHsKKysgICAgcmFjZV9u ZXR3b3JrX3JlcXVlc3RzXy5lcmFzZShpbmZvLT50b2tlbik7CisrICB9CisrfQorKworIH0gIC8v IG5hbWVzcGFjZSBibGluaworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVy L21vZHVsZXMvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xvYmFsX3Njb3BlLmggYi90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vf d29ya2VyX2dsb2JhbF9zY29wZS5oCitpbmRleCA0NmM0MzFiMzk1ODI1Li5hYzRjYWMwYjFkOGZi IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNl X3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9nbG9iYWxfc2NvcGUuaAorKysrIGIvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9nbG9i YWxfc2NvcGUuaAorQEAgLTYyMyw2ICs2MjMsMTQgQEAgY2xhc3MgTU9EVUxFU19FWFBPUlQgU2Vy dmljZVdvcmtlckdsb2JhbFNjb3BlIGZpbmFsCisgICAvLyBTZXJ2aWNlV29ya2VyLkZldGNoRXZl bnQuUXVldWluZ1RpbWUgaGlzdG9ncmFtLgorICAgdm9pZCBSZWNvcmRRdWV1aW5nVGltZShiYXNl OjpUaW1lVGlja3MgY3JlYXRlZF90aW1lKTsKKyAKKysgIHZvaWQgSW5zZXJ0TmV3SXRlbVRvUmFj ZU5ldHdvcmtSZXF1ZXN0cygKKysgICAgICBpbnQgZmV0Y2hfZXZlbnRfaWQsCisrICAgICAgY29u c3QgYmFzZTo6VW5ndWVzc2FibGVUb2tlbiYgdG9rZW4sCisrICAgICAgbW9qbzo6UGVuZGluZ1Jl bW90ZTxuZXR3b3JrOjptb2pvbTo6Ymxpbms6OlVSTExvYWRlckZhY3Rvcnk+CisrICAgICAgICAg IHVybF9sb2FkZXJfZmFjdG9yeSwKKysgICAgICBjb25zdCBLVVJMJiByZXF1ZXN0X3VybCk7Cisr ICB2b2lkIFJlbW92ZUl0ZW1Gcm9tUmFjZU5ldHdvcmtSZXF1ZXN0cyhpbnQgZmV0Y2hfZXZlbnRf aWQpOworKworICAgTWVtYmVyPFNlcnZpY2VXb3JrZXJDbGllbnRzPiBjbGllbnRzXzsKKyAgIE1l bWJlcjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPiByZWdpc3RyYXRpb25fOworICAgTWVtYmVy PDo6Ymxpbms6OlNlcnZpY2VXb3JrZXI+IHNlcnZpY2Vfd29ya2VyXzsKK0BAIC03NjgsMTAgKzc3 NiwxNyBAQCBjbGFzcyBNT0RVTEVTX0VYUE9SVCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgZmlu YWwKKyAKKyAgIGJsaW5rOjpCbGlua1N0b3JhZ2VLZXkgc3RvcmFnZV9rZXlfOworIAorKyAgc3Ry dWN0IFJhY2VOZXR3b3JrUmVxdWVzdEluZm8geworKyAgICBpbnQgZmV0Y2hfZXZlbnRfaWQ7Cisr ICAgIFN0cmluZyB0b2tlbjsKKysgICAgbW9qbzo6UGVuZGluZ1JlbW90ZTxuZXR3b3JrOjptb2pv bTo6Ymxpbms6OlVSTExvYWRlckZhY3Rvcnk+CisrICAgICAgICB1cmxfbG9hZGVyX2ZhY3Rvcnk7 CisrICB9OworICAgLy8gVE9ETyhjcmJ1Zy5jb20vOTE4NzAyKSBXVEY6Okhhc2hNYXAgY2Fubm90 IHVzZSBiYXNlOjpVbmd1ZXNzYWJsZVRva2VuIGFzIGEKKyAgIC8vIGtleS4gQXMgYSB3b3JrYXJv dW5kIHVzZXMgV1RGOjpTdHJpbmcgYXMgYSBrZXkgaW5zdGVhZC4KKy0gIEhhc2hNYXA8U3RyaW5n LCBtb2pvOjpQZW5kaW5nUmVtb3RlPG5ldHdvcms6Om1vam9tOjpibGluazo6VVJMTG9hZGVyRmFj dG9yeT4+CistICAgICAgcmFjZV9uZXR3b3JrX3JlcXVlc3RfbG9hZGVyX2ZhY3Rvcmllc187Cisr ICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJhY2VOZXR3b3JrUmVxdWVzdEluZm8+ PgorKyAgICAgIHJhY2VfbmV0d29ya19yZXF1ZXN0c187CisrICBIYXNoTWFwPGludCwgUmFjZU5l dHdvcmtSZXF1ZXN0SW5mbyo+IHJhY2VfbmV0d29ya19yZXF1ZXN0X2ZldGNoX2V2ZW50X2lkc187 CisgCisgICBIZWFwTW9qb0Fzc29jaWF0ZWRSZW1vdGU8bW9qb206OmJsaW5rOjpBc3NvY2lhdGVk SW50ZXJmYWNlUHJvdmlkZXI+CisgICAgICAgcmVtb3RlX2Fzc29jaWF0ZWRfaW50ZXJmYWNlc197 dGhpc307CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIw LWVsNy1jbGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoLmFyZ3MgYi9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tMTIwLWVsNy1jbGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoLmFyZ3MKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOGJiYmJlOTQ4MzYzMgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZWw3 LWNsYW5nLWJ1aWxkLWZhaWx1cmUucGF0Y2guYXJncwpAQCAtMCwwICsxIEBACistUk5wMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1lbDctY2xhbmct dmVyc2lvbi13YXJuaW5nLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTEyMC1lbDctY2xhbmctdmVyc2lvbi13YXJuaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAuLjExMmRhNjViNGQ5YjYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1jbGFuZy12ZXJzaW9uLXdh cm5pbmcucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni90aGlyZF9wYXJ0eS9saWJjKysvc3JjL2luY2x1ZGUvX19jb25maWcubWUgY2hyb21pdW0t MTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9saWJjKysvc3JjL2luY2x1ZGUvX19jb25maWcKKy0t LSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2xpYmMrKy9zcmMvaW5jbHVkZS9f X2NvbmZpZy5tZQkyMDIzLTEyLTAzIDAwOjA1OjUxLjI1NDQ4MzQ3NCArMDEwMAorKysrIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvbGliYysrL3NyYy9pbmNsdWRlL19fY29uZmln CTIwMjMtMTItMDMgMDA6MDY6MDUuODcyODYzMTY4ICswMTAwCitAQCAtMzIsMTEgKzMyLDcgQEAK KyAKKyAvLyBXYXJuIGlmIGEgY29tcGlsZXIgdmVyc2lvbiBpcyB1c2VkIHRoYXQgaXMgbm90IHN1 cHBvcnRlZCBhbnltb3JlCisgLy8gTExWTSBSRUxFQVNFIFVwZGF0ZSB0aGUgbWluaW11bSBjb21w aWxlciB2ZXJzaW9ucworLSMgIGlmIGRlZmluZWQoX0xJQkNQUF9DTEFOR19WRVIpCistIyAgICBp ZiBfTElCQ1BQX0NMQU5HX1ZFUiA8IDE1MDAKKy0jICAgICAgd2FybmluZyAiTGliYysrIG9ubHkg c3VwcG9ydHMgQ2xhbmcgMTUgYW5kIGxhdGVyIgorLSMgICAgZW5kaWYKKy0jICBlbGlmIGRlZmlu ZWQoX0xJQkNQUF9BUFBMRV9DTEFOR19WRVIpCisrIyAgaWYgZGVmaW5lZChfTElCQ1BQX0FQUExF X0NMQU5HX1ZFUikKKyAjICAgIGlmIF9MSUJDUFBfQVBQTEVfQ0xBTkdfVkVSIDwgMTUwMAorICMg ICAgICB3YXJuaW5nICJMaWJjKysgb25seSBzdXBwb3J0cyBBcHBsZUNsYW5nIDE1IGFuZCBsYXRl ciIKKyAjICAgIGVuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hy b21pdW0tMTIwLWduLXdvcmthcm91bmQtYXRzcGkucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tMTIwLWduLXdvcmthcm91bmQtYXRzcGkucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNzJjN2I3ZWM0MWMyOAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZ24td29ya2Fyb3Vu ZC1hdHNwaS5wYXRjaApAQCAtMCwwICsxLDEzIEBACitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42 MDk5LjM1L2J1aWxkL2NvbmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24ubWUgY2hyb21pdW0tMTIw LjAuNjA5OS4zNS9idWlsZC9jb25maWcvbGludXgvYXRzcGkyL0JVSUxELmduCistLS0gY2hyb21p dW0tMTIwLjAuNjA5OS4zNS9idWlsZC9jb25maWcvbGludXgvYXRzcGkyL0JVSUxELmduLm1lCTIw MjMtMTEtMjYgMTY6MTQ6MTUuMzY0MDY0MTI2ICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5 OS4zNS9idWlsZC9jb25maWcvbGludXgvYXRzcGkyL0JVSUxELmduCTIwMjMtMTEtMjYgMTY6NDE6 MTYuODc3MzIxOTkwICswMTAwCitAQCAtMjEsNiArMjEsOSBAQCBpZiAodXNlX2F0aykgeworICAg ICBtaW5vciA9IGF0c3BpX3ZlcnNpb25bMV0KKyAgICAgbWljcm8gPSBhdHNwaV92ZXJzaW9uWzJd CisgCisrICAgICMgZ24gd29ya2Fyb3VuZCBmb3IgdGhlIGVycm9yOiBBc3NpZ25tZW50IGhhZCBu byBlZmZlY3QKKysgICAgcHJpbnQoIkFUU1BJIFZlcnNpb246ICRtYWpvci4kbWlub3IuJG1pY3Jv IikKKysKKyAgICAgIyBBVFNQSSAyLjQ5LjkwIG5vdyBkZWZpbmVzIHRoZXNlIGZvciB1cyBhbmQg aXQncyBhbiBlcnJvciBmb3IgdXMgdG8KKyAgICAgIyByZWRlZmluZSB0aGVtIG9uIHRoZSBjb21w aWxlciBjb21tYW5kIGxpbmUuCisgICAgICMgU2VlIEFUU1BJIDkyNzM0NGEzNGNkNWJmODFmYzY0 ZGE0OTY4MjQxNzM1ZWNiNGYwM2IKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9jaHJvbWl1bS0xMTktbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2ggYi9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCnNpbWls YXJpdHkgaW5kZXggOTclCnJlbmFtZSBmcm9tIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJv bWl1bS0xMTktbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gKcmVuYW1lIHRvIHNyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gKaW5k ZXggYTI1NDJlZjQyMGVhZi4uNDRmODY3NDc1YjIxOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1taXNzaW5nLWhlYWRlci1maWxlcy5wYXRjaAorKysg Yi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLW1pc3NpbmctaGVhZGVyLWZp bGVzLnBhdGNoCkBAIC0xMzEsMTcgKzEzMSw2IEBAIGRpZmYgLXVwIGNocm9taXVtLTEwOS4wLjU0 MTQuNzQvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvc3JjL1N5c3RlbS9MUlVDYWNoZS5ocHAuCiAg I2luY2x1ZGUgPGNzdGRkZWY+CiAgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAgI2luY2x1ZGUgPHVu b3JkZXJlZF9zZXQ+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJkX3BhcnR5 L3Z1bGthbl9tZW1vcnlfYWxsb2NhdG9yL2luY2x1ZGUvdmtfbWVtX2FsbG9jLmgubWUgY2hyb21p dW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS92dWxrYW5fbWVtb3J5X2FsbG9jYXRvci9pbmNs dWRlL3ZrX21lbV9hbGxvYy5oCi0tLS0gY2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0 eS92dWxrYW5fbWVtb3J5X2FsbG9jYXRvci9pbmNsdWRlL3ZrX21lbV9hbGxvYy5oLm1lCTIwMjMt MDEtMTcgMTU6NDA6MjMuODU0Mzg2MjA2ICswMTAwCi0rKysgY2hyb21pdW0tMTA5LjAuNTQxNC43 NC90aGlyZF9wYXJ0eS92dWxrYW5fbWVtb3J5X2FsbG9jYXRvci9pbmNsdWRlL3ZrX21lbV9hbGxv Yy5oCTIwMjMtMDEtMTcgMTY6NTg6MTkuMzk3ODYyODg1ICswMTAwCi1AQCAtMjM4OCw2ICsyMzg4 LDcgQEAgVk1BX0NBTExfUFJFIHZvaWQgVk1BX0NBTExfUE9TVCB2bWFGcmVlVgotICNpZmRlZiBW TUFfSU1QTEVNRU5UQVRJT04NCi0gI3VuZGVmIFZNQV9JTVBMRU1FTlRBVElPTg0KLSANCi0rI2lu Y2x1ZGUgPGNzdGRpbz4NCi0gI2luY2x1ZGUgPGNzdGRpbnQ+DQotICNpbmNsdWRlIDxjc3RkbGli Pg0KLSAjaW5jbHVkZSA8Y3N0cmluZz4NCiBkaWZmIC11cCBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0 L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJfZ3JhZGllbnQuaC5tZSBjaHJvbWl1bS0xMDkuMC41NDE0 Ljc0L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJfZ3JhZGllbnQuaAogLS0tIGNocm9taXVtLTEwOS4w LjU0MTQuNzQvdWkvZ2Z4L2dlb21ldHJ5L2xpbmVhcl9ncmFkaWVudC5oLm1lCTIwMjMtMDEtMTcg MTg6MDg6MjUuNzQ1NDkxMzUzICswMTAwCiArKysgY2hyb21pdW0tMTA5LjAuNTQxNC43NC91aS9n ZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50LmgJMjAyMy0wMS0xNyAxODowODozNS43Nzc2Njc2 MzIgKzAxMDAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0x MTktbm9fbWF0Y2hpbmdfY29uc3RydWN0b3IucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMvY2hyb21pdW0tMTIwLW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCnNpbWlsYXJpdHkg aW5kZXggNjclCnJlbmFtZSBmcm9tIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0x MTktbm9fbWF0Y2hpbmdfY29uc3RydWN0b3IucGF0Y2gKcmVuYW1lIHRvIHNyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtbm9fbWF0Y2hpbmdfY29uc3RydWN0b3IucGF0Y2gKaW5k ZXggYTE2Yzk3OWMzN2YxYy4uYjFkOTg3YWRlZmY4ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaAor KysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLW5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yLnBhdGNoCkBAIC0xLDYgKzEsMjUgQEAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4w LjYwNDUuNTkvYmFzZS90cmFjZV9ldmVudC90cmFjZV9sb2cuY2Mubm9fbWF0Y2hpbmdfY29uc3Ry dWN0b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL3RyYWNlX2V2ZW50L3RyYWNlX2xvZy5j YwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvYmFzZS90cmFjZV9ldmVudC90cmFjZV9sb2cu Y2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMC0yNiAxODoxNjo1MS4wMDAwMDAwMDAg KzAyMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2Vf bG9nLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjcwMTUxNDg3ICswMTAwCitkaWZmIC11cCBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvbWV0cmljcy9wZXJzaXN0ZW50X2hpc3RvZ3JhbV9hbGxv Y2F0b3IuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9i YXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjCistLS0gY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2Nh dG9yLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NDAuMDAwMDAw MDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL21ldHJpY3MvcGVyc2lz dGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzQ4NDIwMTg5 ICswMTAwCitAQCAtMjE4LDEzICsyMTgsMTMgQEAgUGVyc2lzdGVudFNwYXJzZUhpc3RvZ3JhbURh dGFNYW5hZ2VyOjpMbworICAgICAvLyBUaGUgc2FtcGxlLXJlY29yZCBjb3VsZCBiZSBmb3IgYW55 IHNwYXJzZSBoaXN0b2dyYW0uIEFkZCB0aGUgcmVmZXJlbmNlCisgICAgIC8vIHRvIHRoZSBhcHBy b3ByaWF0ZSBjb2xsZWN0aW9uIGZvciBsYXRlciB1c2UuCisgICAgIGlmIChmb3VuZF9pZCA9PSBt YXRjaF9pZCkgeworLSAgICAgIGZvdW5kX3JlY29yZHMuZW1wbGFjZV9iYWNrKHJlZiwgdmFsdWUp OworKyAgICAgIGZvdW5kX3JlY29yZHMuZW1wbGFjZV9iYWNrKCkgPSB7cmVmLCB2YWx1ZX07Cisg ICAgICAgZm91bmQgPSB0cnVlOworICAgICB9IGVsc2UgeworICAgICAgIHN0ZDo6dmVjdG9yPFJl ZmVyZW5jZUFuZFNhbXBsZT4qIHNhbXBsZXMgPQorICAgICAgICAgICBHZXRTYW1wbGVNYXBSZWNv cmRzV2hpbGVMb2NrZWQoZm91bmRfaWQpOworICAgICAgIENIRUNLKHNhbXBsZXMpOworLSAgICAg IHNhbXBsZXMtPmVtcGxhY2VfYmFjayhyZWYsIHZhbHVlKTsKKysgICAgICBzYW1wbGVzLT5lbXBs YWNlX2JhY2soKSA9IHtyZWYsIHZhbHVlfTsKKyAgICAgfQorICAgfQorIAorZGlmZiAtdXAgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL3RyYWNlX2V2ZW50L3RyYWNlX2xvZy5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvdHJhY2VfZXZlbnQv dHJhY2VfbG9nLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL3RyYWNlX2V2ZW50 L3RyYWNlX2xvZy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjQw LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFzZS90cmFjZV9l dmVudC90cmFjZV9sb2cuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAyMDggKzAxMDAKIEBA IC0yMTkxLDggKzIxOTEsOCBAQCB2b2lkIFRyYWNlTG9nOjpTZXRUcmFjZUJ1ZmZlckZvclRlc3Rp bmcoCiAgI2lmIEJVSUxERkxBRyhVU0VfUEVSRkVUVE9fQ0xJRU5UX0xJQlJBUlkpCiAgdm9pZCBU cmFjZUxvZzo6T25TZXR1cChjb25zdCBwZXJmZXR0bzo6RGF0YVNvdXJjZUJhc2U6OlNldHVwQXJn cyYgYXJncykgewpAQCAtMTIsOSArMzEsOSBAQCBkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjU5L2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjLm5vX21hdGNoaW5nX2NvbnN0cgogIH0K ICAKICB2b2lkIFRyYWNlTG9nOjpPblN0YXJ0KGNvbnN0IHBlcmZldHRvOjpEYXRhU291cmNlQmFz ZTo6U3RhcnRBcmdzJikgewotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUv YnJvd3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2Mu bm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJv d3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2MKLS0t LSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mv b25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3Rvcgky MDIzLTEwLTI2IDE4OjE2OjU3LjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9taXVtLTExOS4wLjYw NDUuNTkvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJtaXNzaW9u X3Byb3ZpZGVyLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjY5MTUxNDYyICswMTAwCitkaWZmIC11 cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mv b25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25l X3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYv Y2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJtaXNzaW9uX3Byb3Zp ZGVyLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NDcuMDAwMDAw MDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9jb250 ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2MJMjAyMy0xMi0wMyAx NzozMToyNS43NDk0MjAyMDggKzAxMDAKIEBAIC0yMjYsOCArMjI2LDggQEAgdm9pZCBPbmVUaW1l UGVybWlzc2lvblByb3ZpZGVyOjpPblN1c3BlbgogIAogICAgICAgIHdoaWxlIChydWxlX2l0ZXJh dG9yICYmIHJ1bGVfaXRlcmF0b3ItPkhhc05leHQoKSkgewpAQCAtMzcsOSArNTYsOSBAQCBkaWZm IC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGlu Z3Mvb25lX3RpbWVfcGVybWlzcwogICAgICAgIHBlcm1pc3Npb25zOjpQZXJtaXNzaW9uVW1hVXRp bDo6UmVjb3JkT25lVGltZVBlcm1pc3Npb25FdmVudCgKICAgICAgICAgICAgY29udGVudF9zZXR0 aW5nX3R5cGUsIHRyaWdnZXJfZXZlbnQpOwogICAgICB9Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTku MC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3By b2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjLm5vX21hdGNoaW5nX2NvbnN0 cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9w cm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUu Y2MKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL2VudGVycHJpc2Uv cHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxl LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTY6NTcuMDAwMDAwMDAw ICswMjAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci9lbnRlcnBy aXNlL3Byb2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJv dHRsZS5jYwkyMDIzLTEwLTMwIDE2OjUxOjAyLjI2NzE1MTQxMiArMDEwMAorZGlmZiAtdXAgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVfbWFu YWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2Vu dGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9u X3Rocm90dGxlLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9l bnRlcnByaXNlL3Byb2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlv bl90aHJvdHRsZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjQ4 LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dz ZXIvZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmln YXRpb25fdGhyb3R0bGUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAyMDggKzAxMDAKIEBA IC02Nyw4ICs2Nyw4IEBAIGJhc2U6OmZsYXRfbWFwPHN0ZDo6c3RyaW5nLCBTQU1MUHJvZmlsZUEK ICAgIC8vIFRPRE8oY3JidWcuY29tLzE0NDUwNzIpOiBBZGQgYWN0dWFsIGRvbWFpbnMgd2l0aCBh dHRyaWJ1dGUgbmFtZXMuCiAgICBwcm9maWxlX2F0dHJpYnV0ZXMtPmluc2VydChzdGQ6Om1ha2Vf cGFpcigKQEAgLTUxLDkgKzcwLDkgQEAgZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j aHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVfbWFuYWdlbWVudC9wcm8KICAKICAgIC8v IEV4dHJhY3QgZG9tYWlucyBhbmQgYXR0cmlidXRlcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUgc3dp dGNoLgogICAgY29uc3QgYmFzZTo6Q29tbWFuZExpbmUmIGNvbW1hbmRfbGluZSA9Ci1kaWZmIC11 cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21l X29tbmlib3hfY2xpZW50LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4w LjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQu Y2MKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gv Y2hyb21lX29tbmlib3hfY2xpZW50LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAt MjYgMTg6MTc6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j aHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYwkyMDIzLTEw LTMwIDE2OjUxOjAyLjI2MjE1MTI4OCArMDEwMAorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYy5u b19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93 c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xpZW50LmNjCistLS0gY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVu dC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjUyLjAwMDAwMDAw MCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvb21u aWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAy MDggKzAxMDAKIEBAIC00NzQsMTAgKzQ3NCwxMCBAQCB2b2lkIENocm9tZU9tbmlib3hDbGllbnQ6 Ok9uQXV0b2NvbXBsZXRlCiAgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZV9uYXZfbWF0Y2gpOwog IApAQCAtNjcsOSArODYsMTE3IEBAIGRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hy b21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuCiAgCiAgICBpZiAo YnJvd3Nlcl8pIHsKICAgICAgYXV0byBuYXZpZ2F0aW9uID0gY2hyb21lOjpPcGVuQ3VycmVudFVS TChicm93c2VyXyk7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS90ZXN0 L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hy b21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVz LmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIv Y2FwYWJpbGl0aWVzLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6 MDEuMDAwMDAwMDAwICswMjAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvdGVz dC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjY4MTUx NDM3ICswMTAwCitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2Vy L3VpL3NhZmV0eV9odWIvbWVudV9ub3RpZmljYXRpb25fc2VydmljZS5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3NhZmV0 eV9odWIvbWVudV9ub3RpZmljYXRpb25fc2VydmljZS5jYworLS0tIGNocm9taXVtLTEyMC4wLjYw OTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvc2FmZXR5X2h1Yi9tZW51X25vdGlmaWNhdGlvbl9zZXJ2 aWNlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTIuMDAwMDAw MDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9z YWZldHlfaHViL21lbnVfbm90aWZpY2F0aW9uX3NlcnZpY2UuY2MJMjAyMy0xMi0wMyAxNzozMToy NS43NTY0MjAzNDIgKzAxMDAKK0BAIC0xNDgsOCArMTQ4LDggQEAgU2FmZXR5SHViTWVudU5vdGlm aWNhdGlvblNlcnZpY2U6OkdldE5vdAorICAgLy8gVGhlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8g c2hvd2luZyB0aGUgbm90aWZpY2F0aW9uIG5lZWRzIHRvIGJlIHBlcnNpc3RlZAorICAgLy8gYXMg d2VsbC4KKyAgIFNhdmVOb3RpZmljYXRpb25zVG9QcmVmcygpOworLSAgcmV0dXJuIE1lbnVOb3Rp ZmljYXRpb25FbnRyeShub3RpZmljYXRpb25fdG9fc2hvdy0+R2V0Tm90aWZpY2F0aW9uQ29tbWFu ZElkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbl90b19z aG93LT5HZXROb3RpZmljYXRpb25TdHJpbmcoKSk7CisrICByZXR1cm4gTWVudU5vdGlmaWNhdGlv bkVudHJ5e25vdGlmaWNhdGlvbl90b19zaG93LT5HZXROb3RpZmljYXRpb25Db21tYW5kSWQoKSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uX3RvX3Nob3ctPkdl dE5vdGlmaWNhdGlvblN0cmluZygpfTsKKyB9CisgCisgYWJzbDo6b3B0aW9uYWw8UmVzdWx0TWFw PgorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3 cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9hc2tfdmlldy5jYy5ub19t YXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3 LmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9w ZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9hc2tfdmlldy5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjUzLjAwMDAwMDAwMCArMDEwMAorKysr IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lv bnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2MJMjAyMy0xMi0wMyAxNzoz MToyNS43NDk0MjAyMDggKzAxMDAKK0BAIC01NSwxMiArNTUsMTIgQEAgc3RkOjp2ZWN0b3I8RW1i ZWRkZWRQZXJtaXNzaW9uUHJvbXB0QXNrVgorIEVtYmVkZGVkUGVybWlzc2lvblByb21wdEFza1Zp ZXc6OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgY29uc3QgeworICAgc3RkOjp2ZWN0b3I8QnV0 dG9uQ29uZmlndXJhdGlvbj4gYnV0dG9uczsKKyAgIGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNF bmFibGVkKHBlcm1pc3Npb25zOjpmZWF0dXJlczo6a09uZVRpbWVQZXJtaXNzaW9uKSkgeworLSAg ICBidXR0b25zLmVtcGxhY2VfYmFjaygKKysgICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsK KyAgICAgICAgIGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1df VEhJU19USU1FKSwKKy0gICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvd1RoaXNUaW1lLCB1aTo6QnV0 dG9uU3R5bGU6OmtUb25hbCk7CisrICAgICAgICBCdXR0b25UeXBlOjprQWxsb3dUaGlzVGltZSwg dWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OworICAgfQorLSAgYnV0dG9ucy5lbXBsYWNlX2JhY2so bDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lPTl9BTExPVyksCistICAgICAg ICAgICAgICAgICAgICAgICBCdXR0b25UeXBlOjprQWxsb3csIHVpOjpCdXR0b25TdHlsZTo6a1Rv bmFsKTsKKysgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7bDEwbl91dGlsOjpHZXRTdHJpbmdV VEYxNihJRFNfUEVSTUlTU0lPTl9BTExPVyksCisrICAgICAgICAgICAgICAgICAgICAgICBCdXR0 b25UeXBlOjprQWxsb3csIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKKyAgIHJldHVybiBidXR0 b25zOworIH0KKyAKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dz ZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYmFzZV92 aWV3Lmgubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJv bWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21w dF9iYXNlX3ZpZXcuaAorLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIv dWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYmFzZV92aWV3 Lmgubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1My4wMDAwMDAwMDAg KzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdz L3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmlldy5oCTIwMjMt MTItMDMgMTc6MzE6MjUuNzUwNDIwMjI3ICswMTAwCitAQCAtODYsNiArODYsNyBAQCBjbGFzcyBF bWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRCYXNlVmlldyA6CisgICBzdHJ1Y3QgUmVxdWVzdExpbmVD b25maWd1cmF0aW9uIHsKKyAgICAgY29uc3QgcmF3X3B0cjxjb25zdCBnZng6OlZlY3Rvckljb24+ IGljb247CisgICAgIHN0ZDo6dTE2c3RyaW5nIG1lc3NhZ2U7CisrICAgIFJlcXVlc3RMaW5lQ29u ZmlndXJhdGlvbihhdXRvIGksIGF1dG8gbSkgOiBpY29uKGkpLCBtZXNzYWdlKG0pIHsgfQorICAg fTsKKyAKKyAgIHN0cnVjdCBCdXR0b25Db25maWd1cmF0aW9uIHsKK2RpZmYgLXVwIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRk ZWRfcGVybWlzc2lvbl9wcm9tcHRfcG9saWN5X3ZpZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0 b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNz aW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYworLS0tIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1i ZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcG9saWN5X3ZpZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3Ry dWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVk X3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92aWV3LmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUw NDIwMjI3ICswMTAwCitAQCAtNDgsOCArNDgsOCBAQCBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQ b2xpY3lWaWV3OjpHZXRSCisgc3RkOjp2ZWN0b3I8RW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UG9s aWN5Vmlldzo6QnV0dG9uQ29uZmlndXJhdGlvbj4KKyBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQ b2xpY3lWaWV3OjpHZXRCdXR0b25zQ29uZmlndXJhdGlvbigpIGNvbnN0IHsKKyAgIHN0ZDo6dmVj dG9yPEJ1dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7CistICBidXR0b25zLmVtcGxhY2VfYmFj ayhsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfT0tfTEFCRUwp LAorLSAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uVHlwZTo6a1BvbGljeU9LLCB1aTo6QnV0 dG9uU3R5bGU6OmtUb25hbCk7CisrICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0ge2wxMG5fdXRp bDo6R2V0U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9PS19MQUJFTCksCisrICAgICAg ICAgICAgICAgICAgICAgICBCdXR0b25UeXBlOjprUG9saWN5T0ssIHVpOjpCdXR0b25TdHlsZTo6 a1RvbmFsfTsKKyAgIHJldHVybiBidXR0b25zOworIH0KKyAKK2RpZmYgLXVwIGNocm9taXVtLTEy MC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRf cGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9kZW5pZWRfdmlldy5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdz L3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZGVuaWVk X3ZpZXcuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3Zp ZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZGVu aWVkX3ZpZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1My4w MDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3Vz bHlfZGVuaWVkX3ZpZXcuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTY0MjAzNDIgKzAxMDAKK0BA IC02MywxOCArNjMsMTggQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseURlbmll ZAorIHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlEZW5pZWRW aWV3OjpCdXR0b25Db25maWd1cmF0aW9uPgorIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZp b3VzbHlEZW5pZWRWaWV3OjpHZXRCdXR0b25zQ29uZmlndXJhdGlvbigpIGNvbnN0IHsKKyAgIHN0 ZDo6dmVjdG9yPEJ1dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7CistICBidXR0b25zLmVtcGxh Y2VfYmFjaygKKysgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAgbDEwbl91dGls OjpHZXRTdHJpbmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBUX0NPTlRJTlVFX05PVF9BTExPV0lO RyksCistICAgICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVlTm90QWxsb3dpbmcsIHVpOjpCdXR0b25T dHlsZTo6a1RvbmFsKTsKKysgICAgICBCdXR0b25UeXBlOjprQ29udGludWVOb3RBbGxvd2luZywg dWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OworIAorICAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJ c0VuYWJsZWQocGVybWlzc2lvbnM6OmZlYXR1cmVzOjprT25lVGltZVBlcm1pc3Npb24pKSB7Cist ICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAorKyAgICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0g eworICAgICAgICAgbDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lPTl9BTExP V19USElTX1RJTUUpLAorLSAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93VGhpc1RpbWUsIHVpOjpC dXR0b25TdHlsZTo6a1RvbmFsKTsKKysgICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvd1RoaXNUaW1l LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07CisgICB9IGVsc2UgeworLSAgICBidXR0b25zLmVt cGxhY2VfYmFjaygKKysgICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICAgIGwx MG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1dfVEhJU19USU1FKSwK Ky0gICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvdywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOwor KyAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07Cisg ICB9CisgICByZXR1cm4gYnV0dG9uczsKKyB9CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Np b25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVj dG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlz c2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9ncmFudGVkX3ZpZXcu Y2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Bl cm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92 aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTMuMDAwMDAw MDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92 aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2dy YW50ZWRfdmlldy5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1MDQyMDIyNyArMDEwMAorQEAgLTU3 LDEzICs1NywxMyBAQCBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5R3JhbnRlCisg c3RkOjp2ZWN0b3I8RW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseUdyYW50ZWRWaWV3 OjpCdXR0b25Db25maWd1cmF0aW9uPgorIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3Vz bHlHcmFudGVkVmlldzo6R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSBjb25zdCB7CisgICBzdGQ6 OnZlY3RvcjxCdXR0b25Db25maWd1cmF0aW9uPiBidXR0b25zOworLSAgYnV0dG9ucy5lbXBsYWNl X2JhY2soCisrICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0geworICAgICAgIGwxMG5fdXRpbDo6 R2V0U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9DT05USU5VRV9BTExPV0lORyksCist ICAgICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVlQWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1Rv bmFsKTsKKysgICAgICBCdXR0b25UeXBlOjprQ29udGludWVBbGxvd2luZywgdWk6OkJ1dHRvblN0 eWxlOjprVG9uYWx9OworIAorLSAgYnV0dG9ucy5lbXBsYWNlX2JhY2soCisrICBidXR0b25zLmVt cGxhY2VfYmFjaygpID0geworICAgICAgIGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX0VN QkVEREVEX1BST01QVF9TVE9QX0FMTE9XSU5HKSwKKy0gICAgICBCdXR0b25UeXBlOjprU3RvcEFs bG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICAgICAgQnV0dG9uVHlwZTo6a1N0 b3BBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OworICAgcmV0dXJuIGJ1dHRvbnM7 CisgfQorIAorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvdGVzdC9jaHJv bWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2NhcGFiaWxpdGllcy5jYwor LS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2NhcGFi aWxpdGllcy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjU0LjAw MDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL3Rlc3QvY2hy b21lZHJpdmVyL2NhcGFiaWxpdGllcy5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1MDQyMDIyNyAr MDEwMAogQEAgLTM0Niw3ICszNDYsNyBAQCBTdGF0dXMgUGFyc2VNb2JpbGVFbXVsYXRpb24oY29u c3QgYmFzZTo6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIid2ZXJzaW9uJyBmaWVsZCBvZiB0 eXBlIHN0cmluZyIpOwogICAgICAgICAgfQpAQCAtODgsMTAgKzIxNSwxMCBAQCBkaWZmIC11cCBj aHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRp ZXMuY2Mubm9fbWF0YwogICAgICAgIH0KICAKICAgICAgICBjbGllbnRfaGludHMuZnVsbF92ZXJz aW9uX2xpc3QgPSBzdGQ6Om1vdmUoZnVsbF92ZXJzaW9uX2xpc3QpOwotZGlmZiAtdXAgY2hyb21p dW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0 X2luZm9fc3luY191dGlsLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4w LjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5 bmNfdXRpbC5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmls bC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYy5ub19tYXRjaGluZ19jb25z dHJ1Y3RvcgkyMDIzLTEwLTMwIDE2OjUxOjAyLjI3MzE1MTU2MiArMDEwMAotKysrIGNocm9taXVt LTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9p bmZvX3N5bmNfdXRpbC5jYwkyMDIzLTEwLTMwIDE3OjQxOjEyLjY4NTg4NzUzOCArMDEwMAotQEAg LTE5NSw5ICsxOTUsOSBAQCBjbGFzcyBDb250YWN0SW5mb1Byb2ZpbGVTZXR0ZXIgeworZGlmZiAt dXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nl ci9jb250YWN0X2luZm9fc3luY191dGlsLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFj dF9pbmZvX3N5bmNfdXRpbC5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50 cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjU3LjAwMDAwMDAwMCArMDEwMAorKysr IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIv Y29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1MDQyMDIyNyAr MDEwMAorQEAgLTE5Nyw5ICsxOTcsOSBAQCBjbGFzcyBDb250YWN0SW5mb1Byb2ZpbGVTZXR0ZXIg ewogICAgICAgIENIRUNLKG9ic2VydmF0aW9ucy5lbXB0eSgpKTsKICAgICAgICBmb3IgKGNvbnN0 IHN5bmNfcGI6OkNvbnRhY3RJbmZvU3BlY2lmaWNzOjpPYnNlcnZhdGlvbiYgcHJvdG9fb2JzZXJ2 YXRpb24gOgogICAgICAgICAgICAgbWV0YWRhdGEub2JzZXJ2YXRpb25zKCkpIHsKQEAgLTEwMywx MCArMjMwLDM4IEBAIGRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9h dXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5CiAgICAgICAgfQogICAgICB9CiAg ICB9Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvdml6L3NlcnZp Y2UvZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjLm5v X21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy92 aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9n cHUuY2MKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvdml6L3NlcnZpY2Uv ZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6MTIuMDAwMDAwMDAwICswMjAwCi0r KysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlf ZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYwkyMDIzLTEwLTMwIDE2 OjUxOjAyLjI2MDE1MTIzOCArMDEwMAotQEAgLTE1MzAsNyArMTUzMCw3IEBAIHZvaWQgU2tpYU91 dHB1dFN1cmZhY2VJbXBsT25HcHU6OkNvcHlPdXQKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYw OTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmlsbF90 YWJsZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nv bXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2MK Ky0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93 c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAy My0xMS0yOSAyMjozOTo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFi bGUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTE0MjAyNDYgKzAxMDAKK0BAIC0xNzYzLDEwICsx NzYzLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxBdXRvZmlsbFByb2ZpbGU+IEF1dG9maWwKKyAgICAg fQorIAorICAgICBiYXNlOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IG9ic2VydmF0aW9uc19kYXRhID0g cy5Db2x1bW5CbG9iKDMpOworLSAgICBmaWVsZF90eXBlX3ZhbHVlcy5lbXBsYWNlX2JhY2soCisr ICAgIGZpZWxkX3R5cGVfdmFsdWVzLmVtcGxhY2VfYmFjaygpID0geworICAgICAgICAgdHlwZSwg cy5Db2x1bW5TdHJpbmcxNigxKSwgcy5Db2x1bW5JbnQoMiksCisgICAgICAgICBzdGQ6OnZlY3Rv cjx1aW50OF90PihvYnNlcnZhdGlvbnNfZGF0YS5iZWdpbigpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2JzZXJ2YXRpb25zX2RhdGEuZW5kKCkpKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9ic2VydmF0aW9uc19kYXRhLmVuZCgpKX07CisgCisgICAgIGlmICh0eXBl ID09IEFERFJFU1NfSE9NRV9DT1VOVFJZKSB7CisgICAgICAgY291bnRyeV9jb2RlID0gYmFzZTo6 VVRGMTZUb1VURjgocy5Db2x1bW5TdHJpbmcxNigxKSk7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dv cmRfbWFuYWdlci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFu YWdlci5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9wYXNzd29yZF9t YW5hZ2VyL2NvcmUvYnJvd3Nlci9wYXNzd29yZF9tYW5hZ2VyLmNjLm5vX21hdGNoaW5nX2NvbnN0 cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTguMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0t MTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL3Bh c3N3b3JkX21hbmFnZXIuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTE0MjAyNDYgKzAxMDAKK0BA IC02MzAsNyArNjMwLDcgQEAgdm9pZCBQYXNzd29yZE1hbmFnZXI6Ok9uVXNlck1vZGlmaWVkTm9u UAorICAgLy8gfGRyaXZlcnwgbWlnaHQgYmUgZW1wdHkgb24gaU9TIG9yIGluIHRlc3RzLgorICAg aW50IGRyaXZlcl9pZCA9IGRyaXZlciA/IGRyaXZlci0+R2V0SWQoKSA6IDA7CisgICBwb3NzaWJs ZV91c2VybmFtZXNfLlB1dCgKKy0gICAgICBQb3NzaWJsZVVzZXJuYW1lRmllbGRJZGVudGlmaWVy KGRyaXZlcl9pZCwgcmVuZGVyZXJfaWQpLAorKyAgICAgIFBvc3NpYmxlVXNlcm5hbWVGaWVsZElk ZW50aWZpZXJ7ZHJpdmVyX2lkLCByZW5kZXJlcl9pZH0sCisgICAgICAgUG9zc2libGVVc2VybmFt ZURhdGEoR2V0U2lnbm9uUmVhbG0oZHJpdmVyLT5HZXRMYXN0Q29tbWl0dGVkVVJMKCkpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyX2lkLCB2YWx1ZSwgYmFzZTo6VGltZTo6 Tm93KCksIGRyaXZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxl dGVfYXR0cmlidXRlX2hhc191c2VybmFtZSwgaXNfbGlrZWx5X290cCkpOworZGlmZiAtdXAgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRk ZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRjaGluZ19jb25zdHJ1 Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxh eV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjCistLS0gY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIv c2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3Rv cgkyMDIzLTExLTI5IDIyOjQwOjAxLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFfb3V0 cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTE0MjAyNDYg KzAxMDAKK0BAIC0xNTY3LDcgKzE1NjcsNyBAQCB2b2lkIFNraWFPdXRwdXRTdXJmYWNlSW1wbE9u R3B1OjpDb3B5T3V0CiAgCiAgICAgICAgLy8gSXNzdWUgcmVhZGJhY2tzIGZyb20gdGhlIHN1cmZh Y2VzOgogICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQ29weU91dHB1dFJlc3VsdDo6a05W MTJNYXhQbGFuZXM7ICsraSkgewpAQCAtMTE1LDEwICsyNzAsMTAgQEAgZGlmZiAtdXAgY2hyb21p dW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIv c2tpYV9vdXQKICAgICAgICAgIFNrSW1hZ2VJbmZvIGRzdF9pbmZvID0gU2tJbWFnZUluZm86Ok1h a2UoCiAgICAgICAgICAgICAgc2l6ZSwgKGkgPT0gMCkgPyBrQWxwaGFfOF9Ta0NvbG9yVHlwZSA6 IGtSOEc4X3Vub3JtX1NrQ29sb3JUeXBlLAogICAgICAgICAgICAgIGtVbnByZW11bF9Ta0FscGhh VHlwZSk7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9k b3dubG9hZC9zYXZlX3BhY2thZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0t MTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9wYWNrYWdlLmNjCi0t LS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9w YWNrYWdlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTc6MTIuMDAw MDAwMDAwICswMjAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIv ZG93bmxvYWQvc2F2ZV9wYWNrYWdlLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjcxMTUxNTEyICsw MTAwCi1AQCAtNzY5LDggKzc2OSw4IEBAIHZvaWQgU2F2ZVBhY2thZ2U6OkZpbmlzaCgpIHsKK2Rp ZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL2Rvd25sb2FkL3Nh dmVfcGFja2FnZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2MKKy0tLSBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2Mu bm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAx MDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9z YXZlX3BhY2thZ2UuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTI0MjAyNjUgKzAxMDAKK0BAIC03 NjcsOCArNzY3LDggQEAgdm9pZCBTYXZlUGFja2FnZTo6RmluaXNoKCkgewogICAgaWYgKGRvd25s b2FkXykgewogICAgICBzdGQ6OnZlY3Rvcjxkb3dubG9hZDo6RG93bmxvYWRTYXZlSXRlbURhdGE6 Okl0ZW1JbmZvPiBmaWxlczsKICAgICAgZm9yIChhdXRvJiBpdGVtIDogc2F2ZWRfc3VjY2Vzc19p dGVtc18pIHsKQEAgLTEyOSw1MiArMjg0LDc2IEBAIGRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYw NDUuNTkvY29udGVudC9icm93c2VyL2Rvd25sb2FkL3NhdmVfcGFja2FnZS5jYy5ub19tYXRjCiAg ICAgIH0KICAgICAgZG93bmxvYWQ6OkRvd25sb2FkU2F2ZUl0ZW1EYXRhOjpBdHRhY2hJdGVtRGF0 YShkb3dubG9hZF8sIHN0ZDo6bW92ZShmaWxlcykpOwogICAgfQotZGlmZiAtdXAgY2hyb21pdW0t MTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVf aG9zdF9pbXBsLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUu NTkvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5j YwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hv c3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIz LTEwLTI2IDE4OjE3OjEyLjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUu NTkvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5j YwkyMDIzLTEwLTMwIDE3OjM4OjA5LjM1MTM4OTk4NCArMDEwMAotQEAgLTg1NjcsNyArODU2Nyw3 IEBAIHZvaWQgUmVuZGVyRnJhbWVIb3N0SW1wbDo6U2VuZEZlbmNlZEZyYW0KK2RpZmYgLXVwIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2ludGVy ZXN0X2dyb3VwX3N0b3JhZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3RfZ3JvdXBf c3RvcmFnZS5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL2lu dGVyZXN0X2dyb3VwL2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3Ry dWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91cC9pbnRlcmVzdF9ncm91 cF9zdG9yYWdlLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUyNDIwMjY1ICswMTAwCitAQCAtMzAw MiwxMCArMzAwMiwxMCBAQCBEb0dldEtBbm9ueW1pdHlEYXRhKHNxbDo6RGF0YWJhc2UmIGRiLAor IAorICAgc3RkOjp2ZWN0b3I8U3RvcmFnZUludGVyZXN0R3JvdXA6OktBbm9ueW1pdHlEYXRhPiBr X2Fub25fZGF0YTsKKyAgIHdoaWxlIChpbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5TdGVwKCkp IHsKKy0gICAga19hbm9uX2RhdGEuZW1wbGFjZV9iYWNrKAorKyAgICBrX2Fub25fZGF0YS5lbXBs YWNlX2JhY2soKSA9IHsKKyAgICAgICAgIC8qa2V5PSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVl cnkuQ29sdW1uU3RyaW5nKDApLAorICAgICAgICAgLyppc19rX2Fub255bW91cz0qL2ludGVyZXN0 X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtbkJvb2woMSksCistICAgICAgICAvKmxhc3RfdXBkYXRl ZD0qL2ludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtblRpbWUoMikpOworKyAgICAgICAg LypsYXN0X3VwZGF0ZWQ9Ki9pbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5Db2x1bW5UaW1lKDIp fTsKKyAgIH0KKyAgIGlmICghaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuU3VjY2VlZGVkKCkp IHsKKyAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42 MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2lt cGwuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250 ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNjCistLS0g Y2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5k ZXJfZnJhbWVfaG9zdF9pbXBsLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkg MjI6NDA6MDEuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250 ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNjCTIwMjMt MTItMDMgMjA6NDk6MjguMDU5MDQyNjcyICswMTAwCitAQCAtODY4NSw3ICs4Njg1LDcgQEAgdm9p ZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpTZW5kRmVuY2VkRnJhbQogICAgZm9yIChjb25zdCBibGlu azo6RmVuY2VkRnJhbWU6OlJlcG9ydGluZ0Rlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbiA6CiAgICAg ICAgIGRlc3RpbmF0aW9ucykgewogICAgICBTZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdCZWFjb25J bnRlcm5hbCgKIC0gICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50KGV2ZW50X3R5cGUsIGV2ZW50 X2RhdGEpLCBkZXN0aW5hdGlvbiwKICsgICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50e2V2ZW50 X3R5cGUsIGV2ZW50X2RhdGF9LCBkZXN0aW5hdGlvbiwKLSAgICAgICAgIC8qZnJvbV9yZW5kZXJl cj0qL3RydWUsIGF0dHJpYnV0aW9uX3JlcG9ydGluZ19ydW50aW1lX2ZlYXR1cmVzLAotICAgICAg ICAgR2V0RnJhbWVUcmVlTm9kZUlkKCkpOworICAgICAgICAgLypmcm9tX3JlbmRlcmVyPSovdHJ1 ZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMpOwogICAgfQotQEAgLTg2 MDMsNyArODYwMyw3IEBAIHZvaWQgUmVuZGVyRnJhbWVIb3N0SW1wbDo6U2VuZEZlbmNlZEZyYW0K KyB9CitAQCAtODcyMCw3ICs4NzIwLDcgQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpTZW5k RmVuY2VkRnJhbQogICAgfQogIAogICAgU2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5nQmVhY29uSW50 ZXJuYWwoCiAtICAgICAgRGVzdGluYXRpb25VUkxFdmVudChkZXN0aW5hdGlvbl91cmwpLAogKyAg ICAgIERlc3RpbmF0aW9uVVJMRXZlbnR7ZGVzdGluYXRpb25fdXJsfSwKICAgICAgICBibGluazo6 RmVuY2VkRnJhbWU6OlJlcG9ydGluZ0Rlc3RpbmF0aW9uOjprQnV5ZXIsCi0gICAgICAgLypmcm9t X3JlbmRlcmVyPSovdHJ1ZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMs Ci0gICAgICAgR2V0RnJhbWVUcmVlTm9kZUlkKCkpOwotQEAgLTg3MDMsOCArODcwMyw4IEBAIHZv aWQgUmVuZGVyRnJhbWVIb3N0SW1wbDo6TWF5YmVTZW5kRmVuY2UKKyAgICAgICAvKmZyb21fcmVu ZGVyZXI9Ki90cnVlLCBhdHRyaWJ1dGlvbl9yZXBvcnRpbmdfcnVudGltZV9mZWF0dXJlcyk7Cisg fQorQEAgLTg4MjAsNyArODgyMCw3IEBAIHZvaWQgUmVuZGVyRnJhbWVIb3N0SW1wbDo6TWF5YmVT ZW5kRmVuY2UKICAgICAgICAgIGRhdGEgPSBpbmZvLT5kYXRhOwogICAgICAgIH0KICAgICAgICBp bml0aWF0b3JfcmZoLT5TZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKLS0g ICAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnQoYmxpbms6OmtGZW5jZWRGcmFtZVRvcE5hdmln YXRpb25CZWFjb25UeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhKSwK LSsgICAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnR7Ymxpbms6OmtGZW5jZWRGcmFtZVRvcE5h dmlnYXRpb25CZWFjb25UeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh fSwKLSAgICAgICAgICAgZGVzdGluYXRpb24sCistICAgICAgICAgIEF1dG9tYXRpY0JlYWNvbkV2 ZW50KGV2ZW50X3R5cGUsIGRhdGEpLCBkZXN0aW5hdGlvbiwKKysgICAgICAgICAgQXV0b21hdGlj QmVhY29uRXZlbnR7ZXZlbnRfdHlwZSwgZGF0YX0sIGRlc3RpbmF0aW9uLAogICAgICAgICAgICAv KmZyb21fcmVuZGVyZXI9Ki9mYWxzZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX2ZlYXR1cmVzLAot ICAgICAgICAgICBHZXRGcmFtZVRyZWVOb2RlSWQoKSwgbmF2aWdhdGlvbl9yZXF1ZXN0LkdldE5h dmlnYXRpb25JZCgpKTsKLUBAIC04NzE3LDggKzg3MTcsOCBAQCB2b2lkIFJlbmRlckZyYW1lSG9z dEltcGw6Ok1heWJlU2VuZEZlbmNlCisgICAgICAgICAgIG5hdmlnYXRpb25fcmVxdWVzdC5HZXRO YXZpZ2F0aW9uSWQoKSk7CisgICAgIH0KK0BAIC04ODMyLDcgKzg4MzIsNyBAQCB2b2lkIFJlbmRl ckZyYW1lSG9zdEltcGw6Ok1heWJlU2VuZEZlbmNlCiAgICAgIGZvciAoYmxpbms6OkZlbmNlZEZy YW1lOjpSZXBvcnRpbmdEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiA6CiAgICAgICAgICAgaW5mby0+ ZGVzdGluYXRpb25zKSB7CiAgICAgICAgaW5pdGlhdG9yX3JmaC0+U2VuZEZlbmNlZEZyYW1lUmVw b3J0aW5nQmVhY29uSW50ZXJuYWwoCi0tICAgICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50KGJs aW5rOjprRmVuY2VkRnJhbWVUb3BOYXZpZ2F0aW9uQmVhY29uVHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5mby0+ZGF0YSksCi0rICAgICAgICAgIERlc3RpbmF0aW9uRW51 bUV2ZW50e2JsaW5rOjprRmVuY2VkRnJhbWVUb3BOYXZpZ2F0aW9uQmVhY29uVHlwZSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+ZGF0YX0sCi0gICAgICAgICAgIGRlc3Rp bmF0aW9uLAorLSAgICAgICAgICBBdXRvbWF0aWNCZWFjb25FdmVudChldmVudF90eXBlLCBpbmZv LT5kYXRhKSwgZGVzdGluYXRpb24sCisrICAgICAgICAgIEF1dG9tYXRpY0JlYWNvbkV2ZW50e2V2 ZW50X3R5cGUsIGluZm8tPmRhdGF9LCBkZXN0aW5hdGlvbiwKICAgICAgICAgICAgLypmcm9tX3Jl bmRlcmVyPSovZmFsc2UsIGluZm8tPmF0dHJpYnV0aW9uX3JlcG9ydGluZ19ydW50aW1lX2ZlYXR1 cmVzLAotICAgICAgICAgICBHZXRGcmFtZVRyZWVOb2RlSWQoKSwgbmF2aWdhdGlvbl9yZXF1ZXN0 LkdldE5hdmlnYXRpb25JZCgpKTsKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9wYWxldHRlLmgubm9f bWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaAotLS0tIGNocm9taXVt LTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMv Zm9udF9wYWxldHRlLmgubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMC0yNiAxODoxNzoy NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oCTIwMjMtMTAtMzAg MTY6NTE6MDIuMjYyMTUxMjg4ICswMTAwCisgICAgICAgICAgIG5hdmlnYXRpb25fcmVxdWVzdC5H ZXROYXZpZ2F0aW9uSWQoKSk7CisgICAgIH0KK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTku NTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9y IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjCist LS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2Mu bm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowNy4wMDAwMDAwMDAgKzAx MDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNo ZS5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NDQyMDMwMyArMDEwMAorQEAgLTM2OCw3ICszNjgs NyBAQCB2b2lkIEhvc3RSZXNvbHZlckNhY2hlOjpTZXQoCisgCisgICBzdGQ6OnN0cmluZyBkb21h aW5fbmFtZSA9IHJlc3VsdC0+ZG9tYWluX25hbWUoKTsKKyAgIGVudHJpZXNfLmVtcGxhY2UoCist ICAgICAgS2V5KHN0ZDo6bW92ZShkb21haW5fbmFtZSksIG5ldHdvcmtfYW5vbnltaXphdGlvbl9r ZXkpLAorKyAgICAgIEtleXtzdGQ6Om1vdmUoZG9tYWluX25hbWUpLCBuZXR3b3JrX2Fub255bWl6 YXRpb25fa2V5fSwKKyAgICAgICBFbnRyeShzdGQ6Om1vdmUocmVzdWx0KSwgc291cmNlLCBzZWN1 cmUsIHN0YWxlbmVzc19nZW5lcmF0aW9uKSk7CisgCisgICBpZiAoZW50cmllc18uc2l6ZSgpID4g bWF4X2VudHJpZXNfKSB7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9wYWxldHRlLmgKKy0tLSBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRf cGFsZXR0ZS5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6MTIuMDAw MDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaAkyMDIzLTEyLTAzIDE3OjMx OjI1Ljc1NDQyMDMwMyArMDEwMAogQEAgLTk2LDcgKzk2LDcgQEAgY2xhc3MgUExBVEZPUk1fRVhQ T1JUIEZvbnRQYWxldHRlIDogcHVibAogICAgICAgIENvbG9yOjpDb2xvclNwYWNlIGNvbG9yX2lu dGVycG9sYXRpb25fc3BhY2UsCiAgICAgICAgYWJzbDo6b3B0aW9uYWw8Q29sb3I6Okh1ZUludGVy cG9sYXRpb25NZXRob2Q+IGh1ZV9pbnRlcnBvbGF0aW9uX21ldGhvZCkgewpAQCAtMTkzLDkgKzM3 Miw5IEBAIGRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9wCiAgICB9CiAgCiAgICBkb3VibGUgR2V0QWxw aGFNdWx0aXBsaWVyKCkgY29uc3QgewotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9s YXRpb24uY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTE5LjAuNjA0NS41OS90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9s YXRpb24uY2MKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJwb2xhdGlvbi5jYy5ub19tYXRjaGlu Z19jb25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE3OjI0LjAwMDAwMDAwMCArMDIwMAotKysrIGNo cm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0v Zm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjYxMTUx MjYzICswMTAwCitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2Js aW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJwb2xhdGlvbi5jYy5ub19t YXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2Js aW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJwb2xhdGlvbi5jYworLS0t IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9y CTIwMjMtMTEtMjkgMjI6NDA6MTIuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAu NjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9wYWxldHRl X2ludGVycG9sYXRpb24uY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTU0MjAzMjMgKzAxMDAKIEBA IC0zMSw3ICszMSw3IEBAIFZlY3RvcjxGb250UGFsZXR0ZTo6Rm9udFBhbGV0dGVPdmVycmlkZT4K ICAgICAgICAgIGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsIGh1ZV9pbnRlcnBvbGF0aW9uX21l dGhvZCwgc3RhcnRfY29sb3IsCiAgICAgICAgICBlbmRfY29sb3IsIHBlcmNlbnRhZ2UsIGFscGhh X211bHRpcGxpZXIpOwpAQCAtMjA1LDExMyArMzg0LDIyIEBAIGRpZmYgLXVwIGNocm9taXVtLTEx OS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFs ZXR0CiAgICAgIHJlc3VsdF9jb2xvcl9yZWNvcmRzLnB1c2hfYmFjayhyZXN1bHRfY29sb3JfcmVj b3JkKTsKICAgIH0KICAgIHJldHVybiByZXN1bHRfY29sb3JfcmVjb3JkczsKLWRpZmYgLXVwIGNo cm9taXVtLTExOS4wLjYwNDUuNTkvdWkvZ3RrL2d0a191aS5jYy5ub19tYXRjaGluZ19jb25zdHJ1 Y3RvciBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3VpL2d0ay9ndGtfdWkuY2MKLS0tLSBjaHJvbWl1 bS0xMTkuMC42MDQ1LjU5L3VpL2d0ay9ndGtfdWkuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJ MjAyMy0xMC0yNiAxODoxODoxNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjU5L3VpL2d0ay9ndGtfdWkuY2MJMjAyMy0xMC0zMCAxNjo1MTowMi4yNzIxNTE1MzcgKzAx MDAKLUBAIC05OTMsMTEgKzk5MywxMSBAQCB1aTo6RGlzcGxheUNvbmZpZyBHdGtVaTo6R2V0RGlz cGxheUNvbmZpCi0gICAgIEdka1JlY3RhbmdsZSBnZW9tZXRyeTsKLSAgICAgZ2RrX21vbml0b3Jf Z2V0X2dlb21ldHJ5KG1vbml0b3IsICZnZW9tZXRyeSk7Ci0gICAgIGludCBtb25pdG9yX3NjYWxl ID0gc3RkOjptYXgoMSwgZ2RrX21vbml0b3JfZ2V0X3NjYWxlX2ZhY3Rvcihtb25pdG9yKSk7Ci0t ICAgIGNvbmZpZy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFjZV9iYWNrKAotKyAgICBjb25maWcu ZGlzcGxheV9nZW9tZXRyaWVzLmVtcGxhY2VfYmFjaygpID0gewotICAgICAgICAgZ2Z4OjpSZWN0 KG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS54LCBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkueSwK LSAgICAgICAgICAgICAgICAgICBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkud2lkdGgsCi0gICAg ICAgICAgICAgICAgICAgbW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LmhlaWdodCksCi0tICAgICAg ICBtb25pdG9yX3NjYWxlICogZm9udF9zY2FsZSk7Ci0rICAgICAgICBzdGF0aWNfY2FzdDxmbG9h dD4obW9uaXRvcl9zY2FsZSAqIGZvbnRfc2NhbGUpfTsKLSAgIH0KLSAgIHJldHVybiBjb25maWc7 Ci0gfQotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL21ldHJpY3MvcGVyc2lz dGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjLm1lIGNocm9taXVtLTExOS4wLjYwNDUuNTkvYmFz ZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9jYXRvci5jYwotLS0tIGNocm9taXVt LTExOS4wLjYwNDUuNTkvYmFzZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9jYXRv ci5jYy5tZQkyMDIzLTEwLTMxIDE4OjE0OjQ5LjI3NTcyODA5OSArMDEwMAotKysrIGNocm9taXVt LTExOS4wLjYwNDUuNTkvYmFzZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9jYXRv ci5jYwkyMDIzLTEwLTMxIDE4OjE5OjU0LjU5OTIyMzIzOSArMDEwMAotQEAgLTIyMSwxMyArMjIx LDEzIEBAIFBlcnNpc3RlbnRTcGFyc2VIaXN0b2dyYW1EYXRhTWFuYWdlcjo6TG8KLSAgICAgLy8g VGhlIHNhbXBsZS1yZWNvcmQgY291bGQgYmUgZm9yIGFueSBzcGFyc2UgaGlzdG9ncmFtLiBBZGQg dGhlIHJlZmVyZW5jZQotICAgICAvLyB0byB0aGUgYXBwcm9wcmlhdGUgY29sbGVjdGlvbiBmb3Ig bGF0ZXIgdXNlLgotICAgICBpZiAoZm91bmRfaWQgPT0gbWF0Y2hfaWQpIHsKLS0gICAgICBmb3Vu ZF9yZWNvcmRzLmVtcGxhY2VfYmFjayhyZWYsIHZhbHVlKTsKLSsgICAgICBmb3VuZF9yZWNvcmRz LmVtcGxhY2VfYmFjaygpID0ge3JlZiwgdmFsdWV9OwotICAgICAgIGZvdW5kID0gdHJ1ZTsKK2Rp ZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvcGRmaXVtL2NvcmUvZnBk ZmFwaS9yZW5kZXIvY3BkZl9yZW5kZXJzdGF0dXMuY3BwLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9y IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvcGRmaXVtL2NvcmUvZnBkZmFwaS9y ZW5kZXIvY3BkZl9yZW5kZXJzdGF0dXMuY3BwCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90 aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9mcGRmYXBpL3JlbmRlci9jcGRmX3JlbmRlcnN0YXR1cy5j cHAubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MTo0Ni4wMDAwMDAwMDAg KzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L3BkZml1bS9jb3Jl L2ZwZGZhcGkvcmVuZGVyL2NwZGZfcmVuZGVyc3RhdHVzLmNwcAkyMDIzLTEyLTAzIDE3OjMxOjI1 Ljc1NjQyMDM0MiArMDEwMAorQEAgLTQ5MSw3ICs0OTEsNyBAQCB2b2lkIENQREZfUmVuZGVyU3Rh dHVzOjpQcm9jZXNzQ2xpcFBhdGgoCiAgICAgIH0gZWxzZSB7Ci0gICAgICAgc3RkOjp2ZWN0b3I8 UmVmZXJlbmNlQW5kU2FtcGxlPiogc2FtcGxlcyA9Ci0gICAgICAgICAgIEdldFNhbXBsZU1hcFJl Y29yZHNXaGlsZUxvY2tlZChmb3VuZF9pZCk7Ci0gICAgICAgQ0hFQ0soc2FtcGxlcyk7Ci0tICAg ICAgc2FtcGxlcy0+ZW1wbGFjZV9iYWNrKHJlZiwgdmFsdWUpOwotKyAgICAgIHNhbXBsZXMtPmVt cGxhY2VfYmFjaygpID0ge3JlZiwgdmFsdWV9OworICAgICAgIG1fcERldmljZS0+U2V0Q2xpcF9Q YXRoRmlsbCgKKyAgICAgICAgICAgKnBQYXRoLCAmbXRPYmoyRGV2aWNlLAorLSAgICAgICAgICBD RlhfRmlsbFJlbmRlck9wdGlvbnMoQ2xpcFBhdGguR2V0Q2xpcFR5cGUoaSkpKTsKKysgICAgICAg ICAgQ0ZYX0ZpbGxSZW5kZXJPcHRpb25ze0NsaXBQYXRoLkdldENsaXBUeXBlKGkpfSk7CiAgICAg IH0KICAgIH0KICAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvbmV0L2Rucy9ob3N0 X3Jlc29sdmVyX2NhY2hlLmNjLm1lIGNocm9taXVtLTExOS4wLjYwNDUuNTkvbmV0L2Rucy9ob3N0 X3Jlc29sdmVyX2NhY2hlLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9uZXQvZG5zL2hv c3RfcmVzb2x2ZXJfY2FjaGUuY2MubWUJMjAyMy0xMC0zMSAyMDo0ODoxOS4xNTM4NjgzMzggKzAx MDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNo ZS5jYwkyMDIzLTEwLTMxIDIwOjUxOjM3LjYzNDUyNjU0OSArMDEwMAotQEAgLTM2OCw3ICszNjgs NyBAQCB2b2lkIEhvc3RSZXNvbHZlckNhY2hlOjpTZXQoCi0gCi0gICBzdGQ6OnN0cmluZyBkb21h aW5fbmFtZSA9IHJlc3VsdC0+ZG9tYWluX25hbWUoKTsKLSAgIGVudHJpZXNfLmVtcGxhY2UoCi0t ICAgICAgS2V5KHN0ZDo6bW92ZShkb21haW5fbmFtZSksIG5ldHdvcmtfYW5vbnltaXphdGlvbl9r ZXkpLAotKyAgICAgIEtleXtzdGQ6Om1vdmUoZG9tYWluX25hbWUpLCBuZXR3b3JrX2Fub255bWl6 YXRpb25fa2V5fSwKLSAgICAgICBFbnRyeShzdGQ6Om1vdmUocmVzdWx0KSwgc291cmNlLCBzZWN1 cmUsIHN0YWxlbmVzc19nZW5lcmF0aW9uKSk7Ci0gCi0gICBpZiAoZW50cmllc18uc2l6ZSgpID4g bWF4X2VudHJpZXNfKSB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVu dHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2MubWUgY2hy b21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJk YXRhL2F1dG9maWxsX3RhYmxlLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25l bnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJkYXRhL2F1dG9maWxsX3RhYmxlLmNjLm1lCTIw MjMtMTAtMzEgMjI6MzI6NTguOTk1OTk3ODk3ICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0 NS41OS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJkYXRhL2F1dG9maWxsX3Rh YmxlLmNjCTIwMjMtMTAtMzEgMjI6MzM6MjguMjkwNTIwNjAxICswMTAwCi1AQCAtMTczMywxMCAr MTczMywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXV0b2ZpbGxQcm9maWxlPiBBdXRvZmlsCi0gICAg IH0KLSAKLSAgICAgYmFzZTo6c3Bhbjxjb25zdCB1aW50OF90PiBvYnNlcnZhdGlvbnNfZGF0YSA9 IHMuQ29sdW1uQmxvYigzKTsKLS0gICAgZmllbGRfdHlwZV92YWx1ZXMuZW1wbGFjZV9iYWNrKAot KyAgICBmaWVsZF90eXBlX3ZhbHVlcy5lbXBsYWNlX2JhY2soKSA9IHsKLSAgICAgICAgIHR5cGUs IHMuQ29sdW1uU3RyaW5nMTYoMSksIHMuQ29sdW1uSW50KDIpLAotICAgICAgICAgc3RkOjp2ZWN0 b3I8dWludDhfdD4ob2JzZXJ2YXRpb25zX2RhdGEuYmVnaW4oKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9ic2VydmF0aW9uc19kYXRhLmVuZCgpKSk7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvYnNlcnZhdGlvbnNfZGF0YS5lbmQoKSl9OwotIAotICAgICBpZiAodHlw ZSA9PSBBRERSRVNTX0hPTUVfQ09VTlRSWSkgewotICAgICAgIGNvdW50cnlfY29kZSA9IGJhc2U6 OlVURjE2VG9VVEY4KHMuQ29sdW1uU3RyaW5nMTYoMSkpOwotZGlmZiAtdXAgY2hyb21pdW0tMTE5 LjAuNjA0NS41OS9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL3Bhc3N3 b3JkX21hbmFnZXIuY2MudGhhbiBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvcGFz c3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYwotLS0tIGNocm9t aXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nl ci9wYXNzd29yZF9tYW5hZ2VyLmNjLnRoYW4JMjAyMy0xMC0zMSAyMjo0MToyMi44NTAyMzMwMDUg KzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFu YWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYwkyMDIzLTEwLTMxIDIyOjQyOjM3 LjI3NjkzMTkzMyArMDEwMAotQEAgLTYyNSw3ICs2MjUsNyBAQCB2b2lkIFBhc3N3b3JkTWFuYWdl cjo6T25Vc2VyTW9kaWZpZWROb25QCi0gICAvLyB8ZHJpdmVyfCBtaWdodCBiZSBlbXB0eSBvbiBp T1Mgb3IgaW4gdGVzdHMuCi0gICBpbnQgZHJpdmVyX2lkID0gZHJpdmVyID8gZHJpdmVyLT5HZXRJ ZCgpIDogMDsKLSAgIHBvc3NpYmxlX3VzZXJuYW1lc18uUHV0KAotLSAgICAgIFBvc3NpYmxlVXNl cm5hbWVGaWVsZElkZW50aWZpZXIoZHJpdmVyX2lkLCByZW5kZXJlcl9pZCksCi0rICAgICAgUG9z c2libGVVc2VybmFtZUZpZWxkSWRlbnRpZmllcntkcml2ZXJfaWQsIHJlbmRlcmVyX2lkfSwKLSAg ICAgICBQb3NzaWJsZVVzZXJuYW1lRGF0YShHZXRTaWdub25SZWFsbShkcml2ZXItPkdldExhc3RD b21taXR0ZWRVUkwoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXJfaWQs IHZhbHVlLCBiYXNlOjpUaW1lOjpOb3coKSwgZHJpdmVyX2lkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGF1dG9jb21wbGV0ZV9hdHRyaWJ1dGVfaGFzX3VzZXJuYW1lLCBpc19saWtlbHlf b3RwKSk7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9p bnRlcmVzdF9ncm91cC9pbnRlcmVzdF9ncm91cF9zdG9yYWdlLmNjLnRoYW4gY2hyb21pdW0tMTE5 LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3RfZ3JvdXBf c3RvcmFnZS5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL2lu dGVyZXN0X2dyb3VwL2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2MudGhhbgkyMDIzLTEwLTMxIDIz OjMxOjA4LjQzODI2NzkwOCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVu dC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2MJMjAyMy0x MC0zMSAyMzozMjowOC45NzkzNTg3MTEgKzAxMDAKLUBAIC0yODU0LDEwICsyODU0LDEwIEBAIERv R2V0S0Fub255bWl0eURhdGEoc3FsOjpEYXRhYmFzZSYgZGIsCi0gCi0gICBzdGQ6OnZlY3RvcjxT dG9yYWdlSW50ZXJlc3RHcm91cDo6S0Fub255bWl0eURhdGE+IGtfYW5vbl9kYXRhOwotICAgd2hp bGUgKGludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LlN0ZXAoKSkgewotLSAgICBrX2Fub25fZGF0 YS5lbXBsYWNlX2JhY2soCi0rICAgIGtfYW5vbl9kYXRhLmVtcGxhY2VfYmFjaygpID0gewotICAg ICAgICAgLyprZXk9Ki9pbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5Db2x1bW5TdHJpbmcoMCks Ci0gICAgICAgICAvKmlzX2tfYW5vbnltb3VzPSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnku Q29sdW1uQm9vbCgxKSwKLS0gICAgICAgIC8qbGFzdF91cGRhdGVkPSovaW50ZXJlc3RfZ3JvdXBf a2Fub25fcXVlcnkuQ29sdW1uVGltZSgyKSk7Ci0rICAgICAgICAvKmxhc3RfdXBkYXRlZD0qL2lu dGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtblRpbWUoMil9OwotICAgfQotICAgaWYgKCFp bnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5TdWNjZWVkZWQoKSkgewotICAgICByZXR1cm4gYWJz bDo6bnVsbG9wdDsKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93 c2VyL3dlYmlkL2ZlZGVyYXRlZF9hdXRoX3JlcXVlc3RfaW1wbC5jYy50aGFuIGNocm9taXVtLTEx OS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL3dlYmlkL2ZlZGVyYXRlZF9hdXRoX3JlcXVlc3Rf aW1wbC5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL3dlYmlk L2ZlZGVyYXRlZF9hdXRoX3JlcXVlc3RfaW1wbC5jYy50aGFuCTIwMjMtMTEtMDEgMTE6MTk6NDIu NzQ1Mzk1Nzk3ICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dz ZXIvd2ViaWQvZmVkZXJhdGVkX2F1dGhfcmVxdWVzdF9pbXBsLmNjCTIwMjMtMTEtMDEgMTE6MjI6 MTYuNjcwOTIwNjc5ICswMTAwCi1AQCAtMTg4MSw3ICsxODgxLDcgQEAgdm9pZCBGZWRlcmF0ZWRB dXRoUmVxdWVzdEltcGw6OlNob3dFcnJvcgotICAgICAgIGJhc2U6OkJpbmRPbmNlKCZGZWRlcmF0 ZWRBdXRoUmVxdWVzdEltcGw6OkNvbXBsZXRlUmVxdWVzdFdpdGhFcnJvciwKLSAgICAgICAgICAg ICAgICAgICAgICB3ZWFrX3B0cl9mYWN0b3J5Xy5HZXRXZWFrUHRyKCkpKTsKLSAgIGFic2w6Om9w dGlvbmFsPFRva2VuRXJyb3I+IHRva2VuX2Vycm9yID0KLS0gICAgICBlcnJvciA/IGFic2w6Om1h a2Vfb3B0aW9uYWw8VG9rZW5FcnJvcj4oZXJyb3ItPmNvZGUsIGVycm9yLT51cmwpCi0rICAgICAg ZXJyb3IgPyBhYnNsOjptYWtlX29wdGlvbmFsPFRva2VuRXJyb3I+KHtlcnJvci0+Y29kZSwgZXJy b3ItPnVybH0pCi0gICAgICAgICAgICAgOiBhYnNsOjpudWxsb3B0OwotIAotICAgLy8gVE9ETyhj cmJ1Zy5jb20vMTQ4NTcxMCk6IFJlZmFjdG9yIElkZW50aXR5Q3JlZGVudGlhbFRva2VuRXJyb3IK LS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2Vy X3V0aWwuaC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE4OjE0LjAwMDAw MDAwMCArMDIwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdWkvYmFzZS93YXlsYW5kL2Nv bG9yX21hbmFnZXJfdXRpbC5oCTIwMjMtMTEtMDEgMTc6Mjk6NTQuMjY5ODIwNDE1ICswMTAwCi1A QCAtNTIsNTMgKzUyLDUzIEBACitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2Jh c2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwuaC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwu aAorLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFn ZXJfdXRpbC5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6NDQuMDAw MDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni91aS9iYXNlL3dheWxhbmQv Y29sb3JfbWFuYWdlcl91dGlsLmgJMjAyMy0xMi0wMyAxNzozMToyNS43NTU0MjAzMjMgKzAxMDAK K0BAIC01Miw1MyArNTIsNTMgQEAgY29uc3RleHByIGF1dG8ga0Nocm9tYXRpY2l0eU1hcCA9IGJh c2U6OgogICAgICB6Y3JfY29sb3JfbWFuYWdlcl92MV9jaHJvbWF0aWNpdHlfbmFtZXMsCiAgICAg IFByaW1hcnlWZXJzaW9uPigKICAgICAge3taQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJ VFlfTkFNRVNfQlQ2MDFfNTI1X0xJTkUsCkBAIC0zOTEsNyArNDc5LDcgQEAgZGlmZiAtdXAgY2hy b21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvd2ViaWQvZmVkZXJhdGVkX2F1dGhf cmVxdWVzdF9pbXAKICAKICAvLyBBIG1hcCBmcm9tIHRoZSB6Y3JfY29sb3JfbWFuYWdlcl92MSBl b3RmX25hbWVzIGVudW0gdmFsdWVzCiAgLy8gcmVwcmVzZW50aW5nIHdlbGwta25vd24gRU9URnMs IHRvIHRoZWlyIGVxdWl2YWxlbnQgVHJhbnNmZXJJRHMuCi1AQCAtMTA3LDY4ICsxMDcsNjggQEAK K0BAIC0xMDcsNjggKzEwNyw2OCBAQCBjb25zdGV4cHIgYXV0byBrRW90Zk1hcCA9IGJhc2U6Ok1h a2VGaXhlCiAgICAgIHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMsCiAgICAgIFRyYW5z ZmVyVmVyc2lvbj4oewogICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MSU5F QVIsCkBAIC00OTgsNyArNTg2LDcgQEAgZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j b250ZW50L2Jyb3dzZXIvd2ViaWQvZmVkZXJhdGVkX2F1dGhfcmVxdWVzdF9pbXAKICB9KTsKICAK ICAvLyBBIG1hcCBmcm9tIHRoZSBTRFIgemNyX2NvbG9yX21hbmFnZXJfdjEgZW90Zl9uYW1lcyBl bnVtIHZhbHVlcwotQEAgLTE3NywxOCArMTc3LDE4IEBACitAQCAtMTc3LDE4ICsxNzcsMTggQEAg Y29uc3RleHByIGF1dG8ga0VvdGZNYXAgPSBiYXNlOjpNYWtlRml4ZQogIGNvbnN0ZXhwciBhdXRv IGtUcmFuc2Zlck1hcCA9CiAgICAgIGJhc2U6Ok1ha2VGaXhlZEZsYXRNYXA8emNyX2NvbG9yX21h bmFnZXJfdjFfZW90Zl9uYW1lcywgVHJhbnNmZXJGblZlcnNpb24+KHsKICAgICAgICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xJTkVBUiwKQEAgLTUyNCw3ICs2MTIsNyBAQCBk aWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci93ZWJpZC9mZWRl cmF0ZWRfYXV0aF9yZXF1ZXN0X2ltcAogICAgICB9KTsKICAKICAvLyBBIG1hcCBmcm9tIHRoZSBI RFIgemNyX2NvbG9yX21hbmFnZXJfdjEgZW90Zl9uYW1lcyBlbnVtIHZhbHVlcwotQEAgLTE5Nyw3 MCArMTk3LDcwIEBACitAQCAtMTk3LDcwICsxOTcsNzAgQEAgY29uc3RleHByIGF1dG8ga1RyYW5z ZmVyTWFwID0KICBjb25zdGV4cHIgYXV0byBrSERSVHJhbnNmZXJNYXAgPQogICAgICBiYXNlOjpN YWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMsIFRyYW5zZmVy Rm5WZXJzaW9uPigKICAgICAgICAgIHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19M SU5FQVIsCkBAIC02MjgsNzYgKzcxNiwyNyBAQCBkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjU5L2NvbnRlbnQvYnJvd3Nlci93ZWJpZC9mZWRlcmF0ZWRfYXV0aF9yZXF1ZXN0X2ltcAogIAog IHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2Nocm9tYXRpY2l0eV9uYW1lcyBUb0NvbG9yTWFuYWdlckNo cm9tYXRpY2l0eSgKICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQgcHJpbWFyeUlELAot QEAgLTI4Myw0ICsyODMsNCBAQAorQEAgLTI4Myw0ICsyODMsNCBAQCB6Y3JfY29sb3JfbWFuYWdl cl92MV9lb3RmX25hbWVzIFRvQ29sb3JNCiAgCiAgfSAgLy8gbmFtZXNwYWNlIHVpOjp3YXlsYW5k CiAgCiAtI2VuZGlmICAvLyBVSV9CQVNFX1dBWUxBTkRfQ09MT1JfTUFOQUdFUl9VVElMX0hfCiBc IEtlaW4gWmVpbGVudW1icnVjaCBhbSBEYXRlaWVuZGUuCiArI2VuZGlmICAvLyBVSV9CQVNFX1dB WUxBTkRfQ09MT1JfTUFOQUdFUl9VVElMX0hfCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Np b25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92aWV3LmNjLm1lIGNocm9taXVtLTExOS4wLjYw NDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlz c2lvbl9wcm9tcHRfcHJldmlvdXNseV9ncmFudGVkX3ZpZXcuY2MKLS0tLSBjaHJvbWl1bS0xMTku MC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Bl cm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92aWV3LmNjLm1lCTIwMjMtMTEtMDEg MjA6NDY6MTUuOTk3ODYxMjc4ICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJv bWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21w dF9wcmV2aW91c2x5X2dyYW50ZWRfdmlldy5jYwkyMDIzLTExLTAxIDIwOjQ5OjMzLjYwMzM3MTY4 MCArMDEwMAotQEAgLTU4LDEzICs1OCwxMyBAQCBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2 aW91c2x5R3JhbnRlCi0gc3RkOjp2ZWN0b3I8RW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlv dXNseUdyYW50ZWRWaWV3OjpCdXR0b25Db25maWd1cmF0aW9uPgotIEVtYmVkZGVkUGVybWlzc2lv blByb21wdFByZXZpb3VzbHlHcmFudGVkVmlldzo6R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSB7 Ci0gICBzdGQ6OnZlY3RvcjxCdXR0b25Db25maWd1cmF0aW9uPiBidXR0b25zOwotLSAgYnV0dG9u cy5lbXBsYWNlX2JhY2soCi0rICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0gewotICAgICAgIGwx MG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9DT05USU5VRV9BTExP V0lORyksCi0tICAgICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVlQWxsb3dpbmcsIHVpOjpCdXR0b25T dHlsZTo6a1RvbmFsKTsKLSsgICAgICBCdXR0b25UeXBlOjprQ29udGludWVBbGxvd2luZywgdWk6 OkJ1dHRvblN0eWxlOjprVG9uYWx9OwotIAotLSAgYnV0dG9ucy5lbXBsYWNlX2JhY2soCi0rICBi dXR0b25zLmVtcGxhY2VfYmFjaygpID0gewotICAgICAgIGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRG MTYoSURTX0VNQkVEREVEX1BST01QVF9TVE9QX0FMTE9XSU5HKSwKLS0gICAgICBCdXR0b25UeXBl OjprU3RvcEFsbG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7Ci0rICAgICAgQnV0dG9u VHlwZTo6a1N0b3BBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OwotICAgcmV0dXJu IGJ1dHRvbnM7Ci0gfQotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUv YnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9h c2tfdmlldy5jYy50aGFuIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkv dmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2MK LS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1p c3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3LmNjLnRoYW4JMjAyMy0x MS0wMSAyMDo1MjoyOS4wMDU0NjQ0OTQgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25f cHJvbXB0X2Fza192aWV3LmNjCTIwMjMtMTEtMDEgMjE6MTQ6MTIuNzQxODU5NjA0ICswMTAwCi1A QCAtNTYsMTIgKzU2LDEyIEBAIHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdEFz a1YKLSBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRBc2tWaWV3OjpHZXRCdXR0b25zQ29uZmlndXJh dGlvbigpIHsKLSAgIHN0ZDo6dmVjdG9yPEJ1dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7Ci0g ICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZChwZXJtaXNzaW9uczo6ZmVhdHVyZXM6 OmtPbmVUaW1lUGVybWlzc2lvbikpIHsKLS0gICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soCi0rICAg IGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7Ci0gICAgICAgICBsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XX1RISVNfVElNRSksCi0tICAgICAgICBCdXR0b25U eXBlOjprQWxsb3dUaGlzVGltZSwgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOwotKyAgICAgICAg QnV0dG9uVHlwZTo6a0FsbG93VGhpc1RpbWUsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKK2Rp ZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvZ3RrL2d0a191aS5jYy5ub19tYXRjaGlu Z19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2MKKy0t LSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2Mubm9fbWF0Y2hpbmdfY29u c3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTY0 MjAzNDIgKzAxMDAKK0BAIC0xMDEzLDExICsxMDEzLDExIEBAIHVpOjpEaXNwbGF5Q29uZmlnIEd0 a1VpOjpHZXREaXNwbGF5Q29uZmkKKyAgICAgR2RrUmVjdGFuZ2xlIGdlb21ldHJ5OworICAgICBn ZGtfbW9uaXRvcl9nZXRfZ2VvbWV0cnkobW9uaXRvciwgJmdlb21ldHJ5KTsKKyAgICAgaW50IG1v bml0b3Jfc2NhbGUgPSBzdGQ6Om1heCgxLCBnZGtfbW9uaXRvcl9nZXRfc2NhbGVfZmFjdG9yKG1v bml0b3IpKTsKKy0gICAgY29uZmlnLmRpc3BsYXlfZ2VvbWV0cmllcy5lbXBsYWNlX2JhY2soCisr ICAgIGNvbmZpZy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAg ICBnZng6OlJlY3QobW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LngsIG1vbml0b3Jfc2NhbGUgKiBn ZW9tZXRyeS55LAorICAgICAgICAgICAgICAgICAgIG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS53 aWR0aCwKKyAgICAgICAgICAgICAgICAgICBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkuaGVpZ2h0 KSwKKy0gICAgICAgIG1vbml0b3Jfc2NhbGUgKiBmb250X3NjYWxlKTsKKysgICAgICAgIHN0YXRp Y19jYXN0PGZsb2F0Pihtb25pdG9yX3NjYWxlICogZm9udF9zY2FsZSl9OwogICAgfQotLSAgYnV0 dG9ucy5lbXBsYWNlX2JhY2sobDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lP Tl9BTExPVyksCi0tICAgICAgICAgICAgICAgICAgICAgICBCdXR0b25UeXBlOjprQWxsb3csIHVp OjpCdXR0b25TdHlsZTo6a1RvbmFsKTsKLSsgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7bDEw bl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lPTl9BTExPVyksCi0rICAgICAgICAg ICAgICAgICAgICAgICBCdXR0b25UeXBlOjprQWxsb3csIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFs fTsKLSAgIHJldHVybiBidXR0b25zOwotIH0KLSAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYw NDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlz c2lvbl9wcm9tcHRfYmFzZV92aWV3LmgubWUgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUv YnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9i YXNlX3ZpZXcuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkv dmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYmFzZV92aWV3Lmgu bWUJMjAyMy0xMS0wMSAyMToyMjowMi4yMjI2NDY5MDMgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTku MC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Bl cm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmlldy5oCTIwMjMtMTEtMDEgMjE6MTk6NTguNzY5NjE5Mzkz ICswMTAwCi1AQCAtNzIsNiArNzIsNyBAQCBjbGFzcyBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRC YXNlVmlldyA6Ci0gICBzdHJ1Y3QgUmVxdWVzdExpbmVDb25maWd1cmF0aW9uIHsKLSAgICAgY29u c3QgcmF3X3B0cjxjb25zdCBnZng6OlZlY3Rvckljb24+IGljb247Ci0gICAgIHN0ZDo6dTE2c3Ry aW5nIG1lc3NhZ2U7Ci0rICAgIFJlcXVlc3RMaW5lQ29uZmlndXJhdGlvbihhdXRvIGksIGF1dG8g bSkgOiBpY29uKGkpLCBtZXNzYWdlKG0pIHsgfQotICAgfTsKLSAKLSAgIHN0cnVjdCBCdXR0b25D b25maWd1cmF0aW9uIHsKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jy b3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcG9s aWN5X3ZpZXcuY2MudGhhbiBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3Vp L3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92aWV3 LmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9w ZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYy50aGFu CTIwMjMtMTEtMDEgMjE6MjU6MzEuMTE4NjI2NDczICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAu NjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJt aXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYwkyMDIzLTExLTAxIDIxOjMwOjA2LjM4MzM0MDI3 NCArMDEwMAotQEAgLTQ4LDggKzQ4LDggQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UG9saWN5 Vmlldzo6R2V0UgotIHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZp ZXc6OkJ1dHRvbkNvbmZpZ3VyYXRpb24+Ci0gRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UG9saWN5 Vmlldzo6R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSB7Ci0gICBzdGQ6OnZlY3RvcjxCdXR0b25D b25maWd1cmF0aW9uPiBidXR0b25zOwotLSAgYnV0dG9ucy5lbXBsYWNlX2JhY2sobDEwbl91dGls OjpHZXRTdHJpbmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBUX09LX0xBQkVMKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgIEJ1dHRvblR5cGU6OmtQb2xpY3lPSywgdWk6OkJ1dHRvblN0eWxlOjpr VG9uYWwpOwotKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHtsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfT0tfTEFCRUwpLAotKyAgICAgICAgICAgICAgICAg ICAgICAgQnV0dG9uVHlwZTo6a1BvbGljeU9LLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07Ci0g ICByZXR1cm4gYnV0dG9uczsKKyAgIHJldHVybiBjb25maWc7CiAgfQotIApkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1zcGxpdC10aHJlc2hvbGQtZm9y LXJlZy13aXRoLWhpbnQucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t MTIwLXNwbGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lODBlZDcxNWFhZjI5Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1zcGxpdC10aHJlc2hv bGQtZm9yLXJlZy13aXRoLWhpbnQucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorZGlmZiAtdXAgY2hy b21pdW0tMTIwLjAuNjA5OS4zNS9idWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24udGhhbiBj aHJvbWl1bS0xMjAuMC42MDk5LjM1L2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgorLS0t IGNocm9taXVtLTEyMC4wLjYwOTkuMzUvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduLnRo YW4JMjAyMy0xMS0yNiAxNzowMjoyNS42NDcwMjI3NDYgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAu MC42MDk5LjM1L2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgkyMDIzLTExLTI2IDE3OjE1 OjU4LjAyNTU4NTM1OCArMDEwMAorQEAgLTYxNiwyNCArNjE2LDYgQEAgY29uZmlnKCJjb21waWxl ciIpIHsKKyAgICAgICB9CisgICAgIH0KKyAKKy0gICAgIyBUT0RPKGNyYnVnLmNvbS8xNDg4Mzc0 KTogVGhpcyBjYXVzZXMgYmluYXJ5IHNpemUgZ3Jvd3RoIGFuZCBwb3RlbnRpYWxseQorLSAgICAj IG90aGVyIHByb2JsZW1zLgorLSAgICAjIFRPRE8oY3JidWcuY29tLzE0OTEwMzYpOiBUaGlzIGlz bid0IHN1cHBvcnRlZCBieSBDcm9uZXQncyBtYWlubGluZSBsbHZtIHZlcnNpb24uCistICAgIGlm IChkZWZhdWx0X3Rvb2xjaGFpbiAhPSAiLy9idWlsZC90b29sY2hhaW4vY3Jvczp0YXJnZXQiICYm CistICAgICAgICAhbGx2bV9hbmRyb2lkX21haW5saW5lKSB7CistICAgICAgY2ZsYWdzICs9IFsK Ky0gICAgICAgICItbWxsdm0iLAorLSAgICAgICAgIi1zcGxpdC10aHJlc2hvbGQtZm9yLXJlZy13 aXRoLWhpbnQ9MCIsCistICAgICAgXQorLSAgICAgIGlmICh1c2VfdGhpbl9sdG8gJiYgaXNfYV90 YXJnZXRfdG9vbGNoYWluKSB7CistICAgICAgICBpZiAoaXNfd2luKSB7CistICAgICAgICAgIGxk ZmxhZ3MgKz0gWyAiLW1sbHZtOi1zcGxpdC10aHJlc2hvbGQtZm9yLXJlZy13aXRoLWhpbnQ9MCIg XQorLSAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgbGRmbGFncyArPSBbICItV2wsLW1sbHZt LC1zcGxpdC10aHJlc2hvbGQtZm9yLXJlZy13aXRoLWhpbnQ9MCIgXQorLSAgICAgICAgfQorLSAg ICAgIH0KKy0gICAgfQorLQorICAgICAjIFRPRE8oY3JidWcuY29tLzEyMzUxNDUpOiBJbnZlc3Rp Z2F0ZSB3aHkvaWYgdGhpcyBzaG91bGQgYmUgbmVlZGVkLgorICAgICBpZiAoaXNfd2luKSB7Cisg ICAgICAgY2ZsYWdzICs9IFsgIi9jbGFuZzotZmZwLWNvbnRyYWN0PW9mZiIgXQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExNy10eXBlbmFtZS5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtdHlwZW5hbWUucGF0Y2gKc2lt aWxhcml0eSBpbmRleCA4MyUKcmVuYW1lIGZyb20gc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2No cm9taXVtLTExNy10eXBlbmFtZS5wYXRjaApyZW5hbWUgdG8gc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2Nocm9taXVtLTEyMC10eXBlbmFtZS5wYXRjaAppbmRleCBkM2IwMGU3MzIzNjAzLi45YTJk ODc4YjEyYjU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t MTE3LXR5cGVuYW1lLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1 bS0xMjAtdHlwZW5hbWUucGF0Y2gKQEAgLTEsMyArMSwyMyBAQAorLS0tIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvYmFzZS9jb250YWluZXJzL21hcF91dGlsLmgubWUJMjAyMy0xMi0wMiAxOTowMDox OS42OTY4MDE1NjMgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvY29udGFp bmVycy9tYXBfdXRpbC5oCTIwMjMtMTItMDIgMTk6MDA6NDcuMDQ5MzM3NTQ3ICswMTAwCitAQCAt NDIsNyArNDIsNyBAQAorIHRlbXBsYXRlIDx0eXBlbmFtZSBNYXAsCisgICAgICAgICAgIHR5cGVu YW1lIEtleSwKKyAgICAgICAgICAgdHlwZW5hbWUgTWFwcGVkRWxlbWVudFR5cGUgPQorLSAgICAg ICAgICAgICAgc3RkOjpwb2ludGVyX3RyYWl0czxpbnRlcm5hbDo6TWFwcGVkVHlwZTxNYXA+Pjo6 ZWxlbWVudF90eXBlPgorKyAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpwb2ludGVyX3RyYWl0 czxpbnRlcm5hbDo6TWFwcGVkVHlwZTxNYXA+Pjo6ZWxlbWVudF90eXBlPgorIGNvbnN0ZXhwciBj b25zdCBNYXBwZWRFbGVtZW50VHlwZSogRmluZFB0ck9yTnVsbChjb25zdCBNYXAmIG1hcCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS2V5 JiBrZXkpIHsKKyAgIGF1dG8gaXQgPSBtYXAuZmluZChrZXkpOworQEAgLTU4LDcgKzU4LDcgQEAK KyB0ZW1wbGF0ZSA8dHlwZW5hbWUgTWFwLAorICAgICAgICAgICB0eXBlbmFtZSBLZXksCisgICAg ICAgICAgIHR5cGVuYW1lIE1hcHBlZEVsZW1lbnRUeXBlID0KKy0gICAgICAgICAgICAgIHN0ZDo6 cG9pbnRlcl90cmFpdHM8aW50ZXJuYWw6Ok1hcHBlZFR5cGU8TWFwPj46OmVsZW1lbnRfdHlwZT4K KysgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cG9pbnRlcl90cmFpdHM8aW50ZXJuYWw6Ok1h cHBlZFR5cGU8TWFwPj46OmVsZW1lbnRfdHlwZT4KKyBjb25zdGV4cHIgTWFwcGVkRWxlbWVudFR5 cGUqIEZpbmRQdHJPck51bGwoTWFwJiBtYXAsIGNvbnN0IEtleSYga2V5KSB7CisgICBhdXRvIGl0 ID0gbWFwLmZpbmQoa2V5KTsKKyAgIHJldHVybiBpdCAhPSBtYXAuZW5kKCkgPyBzdGQ6OnRvX2Fk ZHJlc3MoaXQtPnNlY29uZCkgOiBudWxscHRyOwogZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5 MC4yNC9jaHJvbWUvYnJvd3Nlci9kb3dubG9hZC9idWJibGUvZG93bmxvYWRfYnViYmxlX3VwZGF0 ZV9zZXJ2aWNlLmNjLm1lIGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIvZG93 bmxvYWQvYnViYmxlL2Rvd25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYwogLS0tIGNocm9t aXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIvZG93bmxvYWQvYnViYmxlL2Rvd25sb2Fk X2J1YmJsZV91cGRhdGVfc2VydmljZS5jYy5tZQkyMDIzLTA2LTE3IDE0OjUwOjU2LjM0MjU5MTcw MiArMDIwMAogKysrIGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIvZG93bmxv YWQvYnViYmxlL2Rvd25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYwkyMDIzLTA2LTE3IDE0 OjU3OjQ4LjAyNDM3NzM3NSArMDIwMApAQCAtMTYyLDMgKzE4MiwyNCBAQCBkaWZmIC11cCBjaHJv bWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nl ci9wcm90b19mZQogIAogICAgLy8gUmVtb3ZlIGZldGNoZXIgdW5kZXIga2V5IGZyb20gcmVxdWVz dHNfaW5fZmxpZ2h0Xy4KICAgIHZvaWQgUmVtb3ZlKEtleVR5cGUga2V5KTsKK2RpZmYgLXVwIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3Mv Y29yZS92OC9hc3luY19pdGVyYWJsZS5oLm1lIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3MvY29yZS92OC9hc3luY19pdGVyYWJsZS5oCist LS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5k aW5ncy9jb3JlL3Y4L2FzeW5jX2l0ZXJhYmxlLmgubWUJMjAyMy0xMi0wNCAwMDoyOTozNS4xOTcy MDk1MzggKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL2JpbmRpbmdzL2NvcmUvdjgvYXN5bmNfaXRlcmFibGUuaAkyMDIzLTEyLTA0IDAw OjMwOjI0LjQzNjIzMzI0OSArMDEwMAorQEAgLTIyMCw3ICsyMjAsNyBAQCBjbGFzcyBQYWlyQXN5 bmNJdGVyYWJsZSB7CisgIHByaXZhdGU6CisgICB2aXJ0dWFsIEl0ZXJhdGlvblNvdXJjZSogQ3Jl YXRlSXRlcmF0aW9uU291cmNlKAorICAgICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRfc3RhdGUsCist ICAgICAgSXRlcmF0aW9uU291cmNlOjpLaW5kIGtpbmQsCisrICAgICAgdHlwZW5hbWUgSXRlcmF0 aW9uU291cmNlOjpLaW5kIGtpbmQsCisgICAgICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9z dGF0ZSkgPSAwOworIH07CisgCitAQCAtMjYyLDcgKzI2Miw3IEBAIGNsYXNzIFZhbHVlQXN5bmNJ dGVyYWJsZSB7CisgIHByaXZhdGU6CisgICB2aXJ0dWFsIEl0ZXJhdGlvblNvdXJjZSogQ3JlYXRl SXRlcmF0aW9uU291cmNlKAorICAgICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRfc3RhdGUsCistICAg ICAgSXRlcmF0aW9uU291cmNlOjpLaW5kIGtpbmQsCisrICAgICAgdHlwZW5hbWUgSXRlcmF0aW9u U291cmNlOjpLaW5kIGtpbmQsCisgICAgICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0 ZSkgPSAwOworIH07CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hy b21pdW0tMTIwLXdvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtd29ya2Fyb3VuZF9jbGFuZ19i dWctc3RydWN0dXJlZF9iaW5kaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAuLmIwNmUyOWYyOTA0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLXdvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVy ZWRfYmluZGluZy5wYXRjaApAQCAtMCwwICsxLDUxIEBACitkaWZmIC11cCBjaHJvbWl1bS0xMTUu MC41NzkwLjI0L21lZGlhL2Jhc2UvY2RtX3Byb21pc2VfYWRhcHRlci5jYy53b3JrYXJvdW5kX2Ns YW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcgY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9tZWRpYS9i YXNlL2NkbV9wcm9taXNlX2FkYXB0ZXIuY2MKKy0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L21l ZGlhL2Jhc2UvY2RtX3Byb21pc2VfYWRhcHRlci5jYy53b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1 Y3R1cmVkX2JpbmRpbmcJMjAyMy0wNi0wNyAyMTo0ODozNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBj aHJvbWl1bS0xMTUuMC41NzkwLjI0L21lZGlhL2Jhc2UvY2RtX3Byb21pc2VfYWRhcHRlci5jYwky MDIzLTA2LTE3IDE2OjUzOjIwLjIxNjYyODU1NyArMDIwMAorQEAgLTk0LDcgKzk0LDkgQEAgdm9p ZCBDZG1Qcm9taXNlQWRhcHRlcjo6UmVqZWN0UHJvbWlzZSh1aQorIHZvaWQgQ2RtUHJvbWlzZUFk YXB0ZXI6OkNsZWFyKENsZWFyUmVhc29uIHJlYXNvbikgeworICAgLy8gUmVqZWN0IGFsbCBvdXRz dGFuZGluZyBwcm9taXNlcy4KKyAgIERDSEVDSyh0aHJlYWRfY2hlY2tlcl8uQ2FsbGVkT25WYWxp ZFRocmVhZCgpKTsKKy0gIGZvciAoYXV0byYgW3Byb21pc2VfaWQsIHByb21pc2VdIDogcHJvbWlz ZXNfKSB7CisrICBmb3IgKGF1dG8mIFtwX2ksIHBfZV0gOiBwcm9taXNlc18pIHsKKysgICAgYXV0 byYgcHJvbWlzZV9pZCA9IHBfaTsKKysgICAgYXV0byYgcHJvbWlzZSA9IHBfZTsKKyAgICAgVFJB Q0VfRVZFTlRfTkVTVEFCTEVfQVNZTkNfRU5EMSgKKyAgICAgICAgICJtZWRpYSIsICJDZG1Qcm9t aXNlIiwgVFJBQ0VfSURfV0lUSF9TQ09QRSgiQ2RtUHJvbWlzZSIsIHByb21pc2VfaWQpLAorICAg ICAgICAgInN0YXR1cyIsICJjbGVhcmVkIik7CitkaWZmIC11cCBjaHJvbWl1bS0xMTUuMC41Nzkw LjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9jb250ZXh0 X3dyYXBwZXIuY2MubWUgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9jb250ZW50L2Jyb3dzZXIvc2Vy dmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfY29udGV4dF93cmFwcGVyLmNjCistLS0gY2hyb21p dW0tMTE1LjAuNTc5MC4zMi9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93b3JrZXIvc2VydmljZV93 b3JrZXJfY29udGV4dF93cmFwcGVyLmNjLm1lCTIwMjMtMDYtMTkgMDg6MDQ6MDIuMjg3MDcyNzIy ICswMjAwCisrKysgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9jb250ZW50L2Jyb3dzZXIvc2Vydmlj ZV93b3JrZXIvc2VydmljZV93b3JrZXJfY29udGV4dF93cmFwcGVyLmNjCTIwMjMtMDYtMTkgMDg6 MTg6MjQuNTc2ODE0OTUwICswMjAwCitAQCAtMTM5Myw3ICsxMzkzLDggQEAgdm9pZCBTZXJ2aWNl V29ya2VyQ29udGV4dFdyYXBwZXI6Ok1heWJlUAorICAgICByZXR1cm47CisgICB9CisgCistICBh dXRvIFtkb2N1bWVudF91cmwsIGtleSwgY2FsbGJhY2tdID0gc3RkOjptb3ZlKCpyZXF1ZXN0KTsK KysgIGF1dG8gW2RfdSwga2V5LCBjYWxsYmFja10gPSBzdGQ6Om1vdmUoKnJlcXVlc3QpOworKyAg YXV0byBkb2N1bWVudF91cmwgPSBkX3U7CisgCisgICBEQ0hFQ0soZG9jdW1lbnRfdXJsLmlzX3Zh bGlkKCkpOworICAgVFJBQ0VfRVZFTlQxKCJTZXJ2aWNlV29ya2VyIiwKK2RpZmYgLXVwIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQv Z3JpZC9ncmlkX2xheW91dF9hbGdvcml0aG0uY2MubWUgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2xheW91dC9ncmlkL2dyaWRfbGF5b3V0X2Fs Z29yaXRobS5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvY29yZS9sYXlvdXQvZ3JpZC9ncmlkX2xheW91dF9hbGdvcml0aG0uY2MubWUJMjAy My0xMi0wMyAyMjoxNzo1MC45MjIwODMyMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L2dyaWQvZ3JpZF9sYXlv dXRfYWxnb3JpdGhtLmNjCTIwMjMtMTItMDMgMjI6MjI6NTUuNDM3NDg0MzQzICswMTAwCitAQCAt MzQ0Nyw3ICszNDQ3LDggQEAgdm9pZCBHcmlkTGF5b3V0QWxnb3JpdGhtOjpQbGFjZUdyaWRJdGVt cworICAgRENIRUNLKG91dF9yb3dfYnJlYWtfYmV0d2Vlbik7CisgCisgICBjb25zdCBhdXRvJiBj b250YWluZXJfc3BhY2UgPSBDb25zdHJhaW50U3BhY2UoKTsKKy0gIGNvbnN0IGF1dG8mIFtncmlk X2l0ZW1zLCBsYXlvdXRfZGF0YSwgdHJlZV9zaXplXSA9IHNpemluZ190cmVlLlRyZWVSb290RGF0 YSgpOworKyAgY29uc3QgYXV0byYgW2dyaWRfaXRlbXMsIGxfZCwgdHJlZV9zaXplXSA9IHNpemlu Z190cmVlLlRyZWVSb290RGF0YSgpOworKyAgY29uc3QgYXV0byYgbGF5b3V0X2RhdGEgPSBsX2Q7 CisgCisgICBjb25zdCBhdXRvKiBjYWNoZWRfbGF5b3V0X3N1YnRyZWUgPSBjb250YWluZXJfc3Bh Y2UuR2V0R3JpZExheW91dFN1YnRyZWUoKTsKKyAgIGNvbnN0IGF1dG8gY29udGFpbmVyX3dyaXRp bmdfZGlyZWN0aW9uID0KK0BAIC0zNjExLDcgKzM2MTIsOSBAQCB2b2lkIEdyaWRMYXlvdXRBbGdv cml0aG06OlBsYWNlR3JpZEl0ZW1zCisgCisgICAvLyBUT0RPKGlraWxwYXRyaWNrKTogVXBkYXRl IHxTZXRIYXNTZWVuQWxsQ2hpbGRyZW58IGFuZCBlYXJseSBleGl0IGlmIHRydWUuCisgICBjb25z dCBhdXRvJiBjb25zdHJhaW50X3NwYWNlID0gQ29uc3RyYWludFNwYWNlKCk7CistICBjb25zdCBh dXRvJiBbZ3JpZF9pdGVtcywgbGF5b3V0X2RhdGEsIHRyZWVfc2l6ZV0gPSBzaXppbmdfdHJlZS5U cmVlUm9vdERhdGEoKTsKKysgIGNvbnN0IGF1dG8mIFtnX2ksIGxfZCwgdHJlZV9zaXplXSA9IHNp emluZ190cmVlLlRyZWVSb290RGF0YSgpOworKyAgY29uc3QgYXV0byYgZ3JpZF9pdGVtcyA9IGdf aTsKKysgIGNvbnN0IGF1dG8mIGxheW91dF9kYXRhID0gbF9kOworIAorICAgY29uc3QgYXV0byog Y2FjaGVkX2xheW91dF9zdWJ0cmVlID0gY29uc3RyYWludF9zcGFjZS5HZXRHcmlkTGF5b3V0U3Vi dHJlZSgpOworICAgY29uc3QgYXV0byBjb250YWluZXJfd3JpdGluZ19kaXJlY3Rpb24gPQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1hYXJjaDY0LW11c2wtbWVtb3J5 LXRhZ2dpbmctbWFjcm9zLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1hYXJj aDY0LW11c2wtbWVtb3J5LXRhZ2dpbmctbWFjcm9zLnBhdGNoCmluZGV4IGFmY2RhZTE3OTg1MGEu LmIzZGQyYzMzZjBmMjEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgt YWFyY2g2NC1tdXNsLW1lbW9yeS10YWdnaW5nLW1hY3Jvcy5wYXRjaAorKysgYi9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvZml4LWFhcmNoNjQtbXVzbC1tZW1vcnktdGFnZ2luZy1tYWNyb3MucGF0 Y2gKQEAgLTEsNSArMSw1IEBACi0tLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2Nh dG9yL3RhZ2dpbmcuY2MKLSsrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Iv dGFnZ2luZy5jYworLS0tIGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMv cGFydGl0aW9uX2FsbG9jL3RhZ2dpbmcuY2MKKysrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlv bl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy90YWdnaW5nLmNjCiBAQCAtMjgsMTMgKzI4 LDI1IEBACiAgI2VuZGlmCiAgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvbXVzbC1uby1leGVjaW5mby5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9t dXNsLW5vLWV4ZWNpbmZvLnBhdGNoCmluZGV4IGZhYzJiNmQxOTBlNzguLjc0MDdmMWI5ZGIzOGEg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLW5vLWV4ZWNpbmZvLnBh dGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLW5vLWV4ZWNpbmZvLnBhdGNo CkBAIC04MywxMiArODMsMyBAQCBmb3IgZGlzY3Vzc2lvbiBhYm91dCB0aGlzLCBzZWUgaHR0cHM6 Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL211c2wvMjAyMS8wNy8xNi8xCiAgLy8gU3RhY2tUcmFj ZTo6T3V0cHV0VG9TdHJlYW0oKSBpcyBub3QgaW1wbGVtZW50ZWQgdW5kZXIgdWNsaWJjLCBub3Ig QUlYLgogIC8vIFNlZSBodHRwczovL2NyYnVnLmNvbS83MDY3MjgKICAKLUBAIC0xNTYsNyArMTU2 LDcgQEAKLSAKLSAjZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCi0gCi0tI2lmIEJVSUxERkxBRyhJU19QT1NJWCkgJiYgIUJVSUxERkxBRyhJU19BTkRST0lE KQotKyNpZiAoQlVJTERGTEFHKElTX1BPU0lYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpICYmICFC VUlMREZMQUcoSVNfQU5EUk9JRCkKLSAjaWYgIUJVSUxERkxBRyhJU19JT1MpCi0gc3RhdGljIGNo YXIqIG5ld0FycmF5KCkgewotICAgLy8gQ2xhbmcgd2FybnMgYWJvdXQgdGhlIG1pc21hdGNoZWQg bmV3W10vZGVsZXRlIGlmIHRoZXkgb2NjdXIgaW4gdGhlIHNhbWUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLW5vLW1hbGxpbmZvLnBhdGNoIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL211c2wtbm8tbWFsbGluZm8ucGF0Y2gKaW5kZXggY2Q3MjhlY2ZiMTEyZC4u YTU4ZWUwOGE0MzVhMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wt bm8tbWFsbGluZm8ucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wtbm8t bWFsbGluZm8ucGF0Y2gKQEAgLTEwMSw4ICsxMDEsOCBAQCBtdXNsIGRvZXMgbm90IGltcGxlbWVu dCBtYWxsaW5mbygpL21hbGxpbmZvMigpCiAgCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICovCiAgI2RlZmluZSBIQVZFX01BTExPQ19IIDEK LS0tLSBhL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc2hpbS9hbGxvY2F0b3Jf c2hpbV9kZWZhdWx0X2Rpc3BhdGNoX3RvX3BhcnRpdGlvbl9hbGxvYy5jYwotKysrIGIvYmFzZS9h bGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zaGltL2FsbG9jYXRvcl9zaGltX2RlZmF1bHRf ZGlzcGF0Y2hfdG9fcGFydGl0aW9uX2FsbG9jLmNjCistLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0 aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2Mvc2hpbS9hbGxvY2F0b3Jfc2hpbV9k ZWZhdWx0X2Rpc3BhdGNoX3RvX3BhcnRpdGlvbl9hbGxvYy5jYworKysrIGIvYmFzZS9hbGxvY2F0 b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3NoaW0vYWxsb2NhdG9y X3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90b19wYXJ0aXRpb25fYWxsb2MuY2MKIEBAIC03MTcsNyAr NzE3LDcgQEAKICAKICAjZW5kaWYgIC8vICFCVUlMREZMQUcoSVNfQVBQTEUpICYmICFCVUlMREZM QUcoSVNfQU5EUk9JRCkKQEAgLTExMiw4ICsxMTIsOCBAQCBtdXNsIGRvZXMgbm90IGltcGxlbWVu dCBtYWxsaW5mbygpL21hbGxpbmZvMigpCiAgU0hJTV9BTFdBWVNfRVhQT1JUIHN0cnVjdCBtYWxs aW5mbyBtYWxsaW5mbyh2b2lkKSBfX1RIUk9XIHsKICAgIGJhc2U6OlNpbXBsZVBhcnRpdGlvblN0 YXRzRHVtcGVyIGFsbG9jYXRvcl9kdW1wZXI7CiAgICBBbGxvY2F0b3IoKS0+RHVtcFN0YXRzKCJt YWxsb2MiLCB0cnVlLCAmYWxsb2NhdG9yX2R1bXBlcik7Ci0tLS0gYS9iYXNlL2FsbG9jYXRvci9w YXJ0aXRpb25fYWxsb2NhdG9yL3NoaW0vYWxsb2NhdG9yX3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90 b19wYXJ0aXRpb25fYWxsb2NfdW5pdHRlc3QuY2MKLSsrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRp dGlvbl9hbGxvY2F0b3Ivc2hpbS9hbGxvY2F0b3Jfc2hpbV9kZWZhdWx0X2Rpc3BhdGNoX3RvX3Bh cnRpdGlvbl9hbGxvY191bml0dGVzdC5jYworLS0tIGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9u X2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3NoaW0vYWxsb2NhdG9yX3NoaW1fZGVmYXVs dF9kaXNwYXRjaF90b19wYXJ0aXRpb25fYWxsb2NfdW5pdHRlc3QuY2MKKysrKyBiL2Jhc2UvYWxs b2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy9zaGltL2FsbG9j YXRvcl9zaGltX2RlZmF1bHRfZGlzcGF0Y2hfdG9fcGFydGl0aW9uX2FsbG9jX3VuaXR0ZXN0LmNj CiBAQCAtMjQsNyArMjQsNyBAQAogICNpZiBCVUlMREZMQUcoVVNFX1BBUlRJVElPTl9BTExPQ19B U19NQUxMT0MpCiAgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC1w YXJ0aXRpb24tYXRmb3JrLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wtcGFy dGl0aW9uLWF0Zm9yay5wYXRjaAppbmRleCAyOTEwYWEyYmJmOWIxLi4zNWQ4MTAwNTVmYmI1IDEw MDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC1wYXJ0aXRpb24tYXRmb3Jr LnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXBhcnRpdGlvbi1hdGZv cmsucGF0Y2gKQEAgLTEsNSArMSw1IEBACi0tLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25f YWxsb2NhdG9yL3BhcnRpdGlvbl9yb290LmNjCi0rKysgYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRp b25fYWxsb2NhdG9yL3BhcnRpdGlvbl9yb290LmNjCistLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0 aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2MvcGFydGl0aW9uX3Jvb3QuY2MKKysr KyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxv Yy9wYXJ0aXRpb25fcm9vdC5jYwogQEAgLTIzOSw3ICsyMzksNyBAQAogICAgaWYgKCFnX2dsb2Jh bF9pbml0X2NhbGxlZC5jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyhleHBlY3RlZCwgdHJ1ZSkpCiAg ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1tdGUu cGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tbXRlLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA1NjE2N2UxZTVjNTc2Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1tdGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MSArMCwwIEBACi0tLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRp dGlvbl9hbGxvY19jb25maWcuaAotKysrIGIvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9j YXRvci9wYXJ0aXRpb25fYWxsb2NfY29uZmlnLmgKLUBAIC0xNTMsNyArMTUzLDcgQEAKLSAgICBk ZWZpbmVkKEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4pKQotIAotICNkZWZpbmUgUEFfQ09ORklHX0hB U19NRU1PUllfVEFHR0lORygpICAgICAgICAgICAgICBcCi0tICAoZGVmaW5lZChBUkNIX0NQVV9B Uk02NCkgJiYgZGVmaW5lZChfX2NsYW5nX18pICYmIFwKLSsgICgwICYmIGRlZmluZWQoQVJDSF9D UFVfQVJNNjQpICYmIGRlZmluZWQoX19jbGFuZ19fKSAmJiBcCi0gICAgIWRlZmluZWQoQUREUkVT U19TQU5JVElaRVIpICYmICAgICAgICAgICAgICAgICAgIFwKLSAgICAoQlVJTERGTEFHKElTX0xJ TlVYKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkpKQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9j aHJvbWl1bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXggYjAyMzk0 NmYzZWM3Yi4uZDA3YzIwNDc3ZmUyYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCkBAIC0xLDggKzEsOCBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnY2hyb21pdW0nCiBwa2duYW1lPWNocm9taXVtCiAjIFNlZSBodHRw czovL2Nocm9taXVtZGFzaC5hcHBzcG90LmNvbS9yZWxlYXNlcz9wbGF0Zm9ybT1MaW51eCBmb3Ig dGhlIGxhdGVzdCB2ZXJzaW9uCi12ZXJzaW9uPTExOS4wLjYwNDUuMTA1Ci1yZXZpc2lvbj0zCit2 ZXJzaW9uPTEyMC4wLjYwOTkuMTA5CityZXZpc2lvbj0xCiBhcmNocz0iaTY4NiogeDg2XzY0KiBh YXJjaDY0KiBhcm12N2wqIgogaG9zdG1ha2VkZXBlbmRzPSIKICAkKHZvcHRfaWYgY2xhbmcgImNs YW5nIGxsZCBsbHZtMTUiKQpAQCAtMTAsMTIgKzEwLDEyIEBAIGhvc3RtYWtlZGVwZW5kcz0iCiAg bGliZXBveHktZGV2ZWwgbGliZXZlbnQtZGV2ZWwgbGliZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRz PSIKICBhbHNhLWxpYi1kZXZlbCBsaWJkYXYxZC1kZXZlbCBicm90bGktZGV2ZWwgY3Vwcy1kZXZl bCBlbGZ1dGlscy1kZXZlbCBmZm1wZWctZGV2ZWwKLSBmb250Y29uZmlnLWRldmVsIGZyZWV0eXBl LWRldmVsIGd0ayszLWRldmVsIGpzb25jcHAtZGV2ZWwgbGliWFNjcm5TYXZlci1kZXZlbAorIGZv bnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliWFNjcm5TYXZlci1k ZXZlbAogIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWGN1cnNvci1kZXZlbCBsaWJYZGFtYWdlLWRl dmVsIGxpYlhpLWRldmVsIGxpYlhyYW5kci1kZXZlbAogIGxpYmF2aWYtZGV2ZWwgbGliY2FwLWRl dmVsIGxpYmN1cmwtZGV2ZWwgbGliZHJtLWRldmVsIGxpYmV2ZW50LWRldmVsCiAgbGliZXhpZi1k ZXZlbCBsaWJmbGFjLWRldmVsIGxpYmdjcnlwdC1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGxp Ym10cC1kZXZlbAogIGxpYnBuZy1kZXZlbCBsaWJ2YS1kZXZlbCBsaWJ3ZWJwLWRldmVsIGxpYnht bDItZGV2ZWwgbGlieHNobWZlbmNlLWRldmVsCi0gbGlieHNsdC1kZXZlbCB3b2ZmMi1kZXZlbCBt aW5pemlwLWRldmVsIG1pdC1rcmI1LWRldmVsIG5zcy1kZXZlbCBvcHVzLWRldmVsCisgbGlieHNs dC1kZXZlbCBtaW5pemlwLWRldmVsIG1pdC1rcmI1LWRldmVsIG5zcy1kZXZlbCBvcHVzLWRldmVs CiAgcGNpdXRpbHMtZGV2ZWwgc25hcHB5LWRldmVsIHNwZWVjaC1kaXNwYXRjaGVyLWRldmVsIHNw ZWV4LWRldmVsCiAgeGNiLXByb3RvIHpsaWItZGV2ZWwgbGliYW9tLWRldmVsIGxpYmZmaS1kZXZl bCBsaWJldmRldi1kZXZlbAogICQodm9wdF9pZiBwaXBld2lyZSBwaXBld2lyZS1kZXZlbCkKQEAg LTI3LDEzICsyNywxNCBAQCBtYWludGFpbmVyPSJEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmNocm9t aXVtLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBp cy5jb20vY2hyb21pdW0tYnJvd3Nlci1vZmZpY2lhbC8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09NzNjYjhjMzllOTI4ZjhjNjI3ZDc0N2QzN2EzYjAyMGYwODkxM2VmNTUw OGY4OTM3NThkNzBiZGJkNTQ1ZGJjZgorY2hlY2tzdW09ODdjMDBjNTI1ZWUwN2MyMjMzYjc4ZGJl Y2UxNDk2YjY5N2Y2ODYyNDRhNjdmYWMyYzcxZTRhMzBiZDk2ODQ5YgogCiBsaWIzMmRpc2FibGVk PXllcwogCi1idWlsZF9vcHRpb25zPSJjbGFuZyBkZWJ1ZyB2YWFwaSBwdWxzZWF1ZGlvIHNuZGlv IHBpcGV3aXJlIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJjbGFuZyB2YWFwaSBwdWxzZWF1ZGlv IHBpcGV3aXJlIgorYnVpbGRfb3B0aW9ucz0iY2xhbmcgbGliY3h4IGRlYnVnIHZhYXBpIHB1bHNl YXVkaW8gc25kaW8gcGlwZXdpcmUiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImNsYW5nIGxpYmN4 eCB2YWFwaSBwdWxzZWF1ZGlvIHBpcGV3aXJlIgogZGVzY19vcHRpb25fY2xhbmc9IlVzZSBjbGFu ZyB0byBidWlsZCIKK2Rlc2Nfb3B0aW9uX2xpYmN4eD0iVXNlIGJ1bmRsZWQgbGliYysrIgogZGVz Y19vcHRpb25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3ltYm9scyIKIGRlc2Nfb3B0aW9uX3Bp cGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Igc2NyZWVuIHNoYXJpbmcgZm9yIFdlYlJUQyB2aWEg UGlwZVdpcmUiCiAKQEAgLTUyLDcgKzUzLDcgQEAgaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVu CiAJICQodm9wdF9pZiBwaXBld2lyZSBwaXBld2lyZS1kZXZlbCkgZmZtcGVnLWRldmVsIG9wdXMt ZGV2ZWwgcGFuZ28tZGV2ZWwgbGlidmEtZGV2ZWwKIAkgbGliY3VybC1kZXZlbCBzbmFwcHktZGV2 ZWwgbGliWHJhbmRyLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgY3Vwcy1kZXZlbAogCSBtaXQt a3JiNS1kZXZlbCBhbHNhLWxpYi1kZXZlbCBsaWJYZGFtYWdlLWRldmVsIGxpYmVwb3h5LWRldmVs IGxpYmV2ZGV2LWRldmVsCi0JIGxpYmF2aWYtZGV2ZWwgbGliYW9tLWRldmVsIGpzb25jcHAtZGV2 ZWwgd29mZjItZGV2ZWwgbGliZGF2MWQtZGV2ZWwgbGliZmxhYy1kZXZlbAorCSBsaWJhdmlmLWRl dmVsIGxpYmFvbS1kZXZlbCBsaWJkYXYxZC1kZXZlbCBsaWJmbGFjLWRldmVsCiAJIGxpYmRybS1k ZXZlbCBsaWJnYm0tZGV2ZWwiCiBmaQogCkBAIC04Miw2ICs4Myw5IEBAIHBvc3RfcGF0Y2goKSB7 CiAJIyBhbGxvdyBzeXN0ZW0gZGVwZW5kZW5jaWVzIGluICJvZmZpY2lhbCBidWlsZHMiCiAJdnNl ZCAtaSAncy9PRkZJQ0lBTF9CVUlMRC9HT09HTEVfQ0hST01FX0JVSUxELycgXAogCQl0b29scy9n ZW5lcmF0ZV9zaGltX2hlYWRlcnMvZ2VuZXJhdGVfc2hpbV9oZWFkZXJzLnB5CisKKwlta2RpciAt cCB0aGlyZF9wYXJ0eS9ub2RlL2xpbnV4L25vZGUtbGludXgteDY0L2JpbgorCWxuIC1zIC91c3Iv YmluL25vZGUgdGhpcmRfcGFydHkvbm9kZS9saW51eC9ub2RlLWxpbnV4LXg2NC9iaW4vCiB9CiAK IF9zZXR1cF9jbGFuZygpIHsKQEAgLTEwMCw3ICsxMDQsNyBAQCBfc2V0dXBfY2xhbmcoKSB7CiAJ ZXhwb3J0IEJVSUxEX05NPWxsdm0tbm0KIAlleHBvcnQgQlVJTERfQ0ZMQUdTPSItV25vLXVua25v d24td2FybmluZy1vcHRpb24iCiAJZXhwb3J0IEJVSUxEX0NYWEZMQUdTPSItV25vLXVua25vd24t d2FybmluZy1vcHRpb24iCi0JaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJaWYgW1sgLW4g IiRDUk9TU19CVUlMRCIgJiYgLW4gIiRidWlsZF9vcHRpb25fbGliY3h4IiBdXTsgdGhlbgogCQlD RkxBR1MrPSIgLS1nY2MtdG9vbGNoYWluPS91c3IiCiAJCUNGTEFHUys9IiAtLXN5c3Jvb3Q9JHtY QlBTX0NST1NTX0JBU0V9IgogCQlDRkxBR1MrPSIgLW5vc3RkaW5jIgpAQCAtMTQ0LDYgKzE0OCw4 IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkjIHVzZV9zeXN0ZW1fdjg9MQogCSMgYnppcDIgeGRnX3V0 aWxzIHNwZWV4CiAJIyBYWFg6IGhhcmZidXp6LW5nIHVzZSBidWlsdGluIG9uZSB1bnRpbCBzeXN0 ZW0td2lkZSBpcyB1cGRhdGVkID49My4wLjAKKwkjIGxpYmN4eCBodHRwczovL2dpdGh1Yi5jb20v bGx2bS9sbHZtLXByb2plY3QvaXNzdWVzLzYxNzA1OgorCSMgc25hcHB5CiAJc3lzdGVtPSIKIAkJ ZmZtcGVnCiAJCWZsYWMKQEAgLTE1Nyw3ICsxNjMsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCWxp YnhtbAogCQlsaWJ4c2x0CiAJCW9wdXMKLQkJc25hcHB5CiAJIgogCiAJIyByZW1vdmUgYnVpbGQg c2NyaXB0cyBmb3Igc3lzdGVtIHByb3ZpZGVkIGRlcGVuZGVuY2llcyAtIGJhc2ljYWxseSBkb2Vz IHRoZQpAQCAtMTkyLDcgKzE5Nyw3IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJJ2NsYW5nX2Jhc2Vf cGF0aD0iL3VzciInCiAKIAkJImdvbGRfcGF0aD1cIiR7WEJQU19DUk9TU19CQVNFfS91c3IvYmlu L2xkLmdvbGRcIiIKLQkJJ3VzZV9jdXN0b21fbGliY3h4PWZhbHNlJworCQkidXNlX2N1c3RvbV9s aWJjeHg9JCh2b3B0X2lmIGxpYmN4eCB0cnVlIGZhbHNlKSIgIyBodHRwczovL2dpdGh1Yi5jb20v bGx2bS9sbHZtLXByb2plY3QvaXNzdWVzLzYxNzA1CiAJCSd1c2VfZ29sZD1mYWxzZScKIAogCQkn cnVzdF9zeXNyb290X2Fic29sdXRlPSIvdXNyIicKQEAgLTMwNCw3ICszMDksNiBAQCBkb19pbnN0 YWxsKCkgewogCXZta2RpciB1c3IvbGliL2Nocm9taXVtL2xvY2FsZXMKIAl2Y29weSAib3V0L1Jl bGVhc2UvbG9jYWxlcy8qLnBhayIgdXNyL2xpYi9jaHJvbWl1bS9sb2NhbGVzCiAKLQl2aW5zdGFs bCAke0ZJTEVTRElSfS9jaHJvbWl1bS5kZXNrdG9wIDY0NCB1c3Ivc2hhcmUvYXBwbGljYXRpb25z CiAKIAl2aW5zdGFsbCBvdXQvUmVsZWFzZS9pY3VkdGwuZGF0IDA2NDQgdXNyL2xpYi9jaHJvbWl1 bQogCkBAIC0zMjIsNCArMzI2LDE0IEBAIGRvX2luc3RhbGwoKSB7CiAJdmJpbiAke0ZJTEVTRElS fS9jaHJvbWl1bS5zaCBjaHJvbWl1bQogCXZsaWNlbnNlIExJQ0VOU0UKIAlsbiAtc2YgL3Vzci9s aWIvY2hyb21pdW0vY2hyb21lZHJpdmVyICR7REVTVERJUn0vdXNyL2Jpbi9jaHJvbWVkcml2ZXIK KworCXZpbnN0YWxsIGNocm9tZS9pbnN0YWxsZXIvbGludXgvY29tbW9uL2Rlc2t0b3AudGVtcGxh dGUgNjQ0IHVzci9zaGFyZS9hcHBsaWNhdGlvbnMgY2hyb21pdW0uZGVza3RvcAorCXZtYW4gY2hy b21lL2FwcC9yZXNvdXJjZXMvbWFucGFnZS4xLmluIGNocm9taXVtLjEKKworCXNlZCAtaSBcCisJ CS1lICdzL0BATUVOVU5BTUVAQC9DaHJvbWl1bS9nJyBcCisJCS1lICdzL0BAUEFDS0FHRUBAL2No cm9taXVtL2cnIFwKKwkJLWUgJ3MvQEBVU1JfQklOX1NZTUxJTktfTkFNRUBAL2Nocm9taXVtL2cn IFwKKwkJJHtERVNURElSfS91c3Ivc2hhcmUvbWFuL21hbjEvY2hyb21pdW0uMSBcCisJCSR7REVT VERJUn0vdXNyL3NoYXJlL2FwcGxpY2F0aW9ucy9jaHJvbWl1bS5kZXNrdG9wCiB9CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nocm9taXVtL3VwZGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdXBkYXRlCmlu ZGV4IGMwMzVhOGZlMWMzYjMuLmFmNDI4NjcyNzU0ODggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hy b21pdW0vdXBkYXRlCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vdXBkYXRlCkBAIC0xLDIgKzEsMiBA QAotc2l0ZT0naHR0cHM6Ly9vbWFoYXByb3h5LmFwcHNwb3QuY29tL2FsbCcKLXBhdHRlcm49J2xp bnV4LHN0YWJsZSxcS1teLF0qJworc2l0ZT0naHR0cHM6Ly9jaHJvbWl1bWRhc2guYXBwc3BvdC5j b20vZmV0Y2hfcmVsZWFzZXM/Y2hhbm5lbD1TdGFibGUmcGxhdGZvcm09TGludXgmbnVtPTEmb2Zm c2V0PTAnCitwYXR0ZXJuPScidmVyc2lvbiI6XHMqIlxLW14sXSsoPz0iKScK --===============8900204601627377245==--