From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 10349 invoked from network); 23 Aug 2020 15:34:40 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 23 Aug 2020 15:34:40 -0000 Content-Type: multipart/mixed; boundary="===============5449081971100025011==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_New_package=3A_electron9-9=2E2=2E1?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sun, 23 Aug 2020 17:34:37 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============5449081971100025011== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IEpvaG5ueW5hdG9yIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9Kb2hu bnluYXRvci92b2lkLXBhY2thZ2VzIGVsZWN0cm9uOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjQ0MzUKCk5ldyBwYWNrYWdlOiBlbGVjdHJvbjktOS4y LjEKCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMjQ0MzUucGF0Y2ggaXMgYXR0YWNoZWQ= --===============5449081971100025011== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron9-24435.patch" RnJvbSA5Zjk4MGZlNGNiOTY5OWRmMWQ0ZjgwYjdhMDJhZTM2M2E4ZDI3MDkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwg MTAgTWF5IDIwMjAgMTU6MDU6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gTmV3IHBhY2th Z2U6IGVsZWN0cm9uOS05LjIuMQoKW2NpIHNraXBdCi0tLQogLi4uL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoIHwgIDIzICsKIC4uLm9taXVtLW11c2wtZGVmYXVsdC1w dGhyZWFkLXN0YWNrc2l6ZS5wYXRjaCB8ICAzMSArKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1 bS1tdXNsLXNhbmRib3gucGF0Y2ggIHwgMTc2ICsrKysrKysKIC4uLmNocm9taXVtLW11c2xfY2Fu b25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaCB8ICAxMyArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfY2RlZnMucGF0Y2ggICAgfCAgNDUgKysKIC4uLm9taXVtLW11c2xfZGVmaW5lX3Rl bXBfZmFpbHVyZV9yZXRyeS5wYXRjaCB8ICAxOCArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfZG5zLnBhdGNoICAgICAgfCAgNjEgKysrCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfZXhlaW5mby5wYXRjaCAgfCAgOTYgKysrKwogLi4uL2Nocm9taXVtLW11c2xfZnBzdGF0 ZV90LnBhdGNoICAgICAgICAgICAgIHwgIDQ4ICsrCiAuLi4vY2hyb21pdW0tbXVzbF9nZXRjb250 ZXh0LnBhdGNoICAgICAgICAgICAgfCAgMjUgKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX21hbGxpbmZvLnBhdGNoIHwgIDYxICsrKwogLi4uL2Nocm9taXVtLW11c2xfcHJlYWRfcHdy aXRlNjQucGF0Y2ggICAgICAgIHwgIDE4ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5w YXRjaCAgICAgICAgICAgICB8ICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBh dGNoICAgICAgICAgICAgfCAgNDEgKysKIC4uLi9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBh dGNoICAgICAgICAgICB8ICA0NCArKwogLi4uL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRj aCAgICAgICAgICAgIHwgIDE0ICsKIC4uLi9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF93b3Jk c2l6ZS5wYXRjaCB8ICAyNCArCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS04My1nY2MtMTAu cGF0Y2ggICAgfCAgNjQgKysrCiAuLi5yaXRobS1oZWFkZXItaW4tY3J4X2luc3RhbGxfZXJyb3Iu Y2MucGF0Y2ggfCAgMjkgKysKIC4uLnN0cnVjdGlvbi1vZi1TZXJ2aWNlV29ya2VyT2JqZWN0SG9z dC5wYXRjaCB8IDEzOCArKysrKysKIC4uLmNocm9taXVtLWNocm9taXVtX2F0a19vcHRpb25hbC5w YXRjaC5wYXRjaCB8ICAxNSArCiAuLi5jaHJvbWl1bS1jbGVhbi11cC1hLWNhbGwtdG8tc2V0X3V0 ZjgucGF0Y2ggfCAgMzQgKysKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZmbXBlZy00LjMu cGF0Y2ggICB8ICAyMSArCiAuLi5lYWRlci10by1nZXQtdGhlLWRlZmluaXRpb24tb2Ytc3RkLXUu cGF0Y2ggfCAgMzIgKysKIC4uLi1udW1lcmljX2xpbWl0cy1pcy1kZWZpbmVkLWluLWxpbWl0cy5w YXRjaCB8ICAyOSArKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0 Y2ggIHwgIDI2ICsrCiAuLi5tcGxldGUtdHlwZS1pbi1BWFRyZWUtZm9yLU5vZGVTZXRTaXoucGF0 Y2ggfCAgNjIgKysrCiAuLi5saW5rLWN1c3RvbS1pdGVyYXRvcnMtU1RMLWNvbXBhdGlibGUucGF0 Y2ggfCAgOTUgKysrKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc2tpYS1oYXJtb255LnBh dGNoIHwgIDE0ICsKIC4uLmwtaW4tU0RSLUhEUi1EaXNwbGF5Q29sb3JTcGFjZXMtQ3JPUy5wYXRj aCB8IDQzNiArKysrKysrKysrKysrKysrKysKIC4uLnJtb250LUFGRE8tcHJvZmlsZS1mcm9tLTgz LTQxMDMuOTctMS5wYXRjaCB8ICA0MSArKwogLi4ubHZlcm1vbnQtQUZETy1wcm9maWxlLWZyb20t ODMtNDEwMy45LnBhdGNoIHwgIDQxICsrCiAuLi5vYWR3ZWxsLUFGRE8tcHJvZmlsZS1mcm9tLTgz LTQxMDMuOTcucGF0Y2ggfCAgNDEgKysKIC4uLm5jcmVtZW50aW5nLVZFUlNJT04tdG8tODMuMC40 MTAzLjEyMC5wYXRjaCB8ICAyOSArKwogLi4uUFctYm9va2tlZXBpbmctb3V0LW9mLWZvcmtlZC1w cm9jZXNzLnBhdGNoIHwgMTUwICsrKysrKwogLi4ub3J0LUdDUFctbG9naW4tdG8tcGVybWl0dGVk LWFjY291bnRzLnBhdGNoIHwgMTk3ICsrKysrKysrCiAuLi5kbGUtbHNhX2FjY291bnRfcmlnaHRz LXNpemUtcHJvcGVybHkucGF0Y2ggfCAgNTUgKysrCiAuLi5uY3JlbWVudGluZy1WRVJTSU9OLXRv LTgzLjAuNDEwMy4xMjEucGF0Y2ggfCAgMjkgKysKIC4uLmNlTWFuYWdlQWNjb3VudEJyb3dzZXJU ZXN0LkNsZWFyTWFuYS5wYXRjaCB8ICA0MyArKwogLi4ubmNyZW1lbnRpbmctVkVSU0lPTi10by04 My4wLjQxMDMuMTIyLnBhdGNoIHwgIDI5ICsrCiAuLi5uLXRvLWJlLXJlbW92ZWQtZ2V0QWxsRmll bGRQb3NpdGlvbnMucGF0Y2ggfCAxNzIgKysrKysrKwogLi4uYS1zY3JpcHQtdG8tbGlzdC1wYXRj aC10YXJnZXRzLnBhdGNoLnBhdGNoIHwgIDQyICsrCiAuLi4vcGF0Y2hlcy9lbGVjdHJvbi1CdWls ZC1maXhlcy5wYXRjaC5wYXRjaCAgfCAgNDcgKysKIC4uLmVjdHJvbi1kb250LWFzc3VtZS1weXRo b24taXMtcHl0aG9uMi5wYXRjaCB8ICAxNyArCiAuLi5lbGVjdHJvbi1leGx1Y2UtY29udGVudC10 ZXN0LXBhdGNoZXMucGF0Y2ggfCAgMTAgKwogLi4uL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJf b3BlbmJzZC5jYyAgICAgIHwgMTQ4ICsrKysrKwogLi4uL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlv X21hbmFnZXJfb3BlbmJzZC5oIHwgIDY1ICsrKwogLi4uL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlv X2lucHV0LmNjICAgICAgICAgIHwgMjAxICsrKysrKysrCiAuLi4vZWxlY3Ryb245L2ZpbGVzL3Nu ZGlvLWZpbGVzL3NuZGlvX2lucHV0LmggfCAgOTEgKysrKwogLi4uL2ZpbGVzL3NuZGlvLWZpbGVz L3NuZGlvX291dHB1dC5jYyAgICAgICAgIHwgMTgzICsrKysrKysrCiAuLi4vZmlsZXMvc25kaW8t ZmlsZXMvc25kaW9fb3V0cHV0LmggICAgICAgICAgfCAgODYgKysrKwogLi4uYV9hdWRpb19saW51 eF9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjLnBhdGNoIHwgIDQzICsrCiAuLi5zcmNfM3JkcGFydHlf Y2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0Y2ggfCAgMTIgKwogLi4uZHBhcnR5X2Nocm9taXVt X21lZGlhX2F1ZGlvX0JVSUxELmduLnBhdGNoIHwgIDIzICsKIC4uLnR5X2Nocm9taXVtX21lZGlh X21lZGlhX19vcHRpb25zLmduaS5wYXRjaCB8ICAxMiArCiBzcmNwa2dzL2VsZWN0cm9uOS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgfCAzNDQgKysrKysrKysrKysrKysKIHNyY3BrZ3MvZWxl Y3Ryb245L3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiA1NyBmaWxlcyBjaGFu Z2VkLCAzODk5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1z YW5kYm94LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZGVmaW5lX3RlbXBfZmFpbHVy ZV9yZXRyeS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Rucy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWlu Zm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9nZXRj b250ZXh0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9w cmVhZF9wd3JpdGU2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1 bS1tdXNsX3N0YWNrX3NpemUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja190cmFjZS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX3RjcF9saXN0ZW4ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF93b3Jkc2l6ZS5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tODMtZ2NjLTEwLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1hZGQtbWlzc2luZy1hbGdvcml0aG0taGVhZGVyLWlu LWNyeF9pbnN0YWxsX2Vycm9yLmNjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1hdm9pZC1kb3VibGUtZGVzdHJ1Y3Rpb24t b2YtU2VydmljZVdvcmtlck9iamVjdEhvc3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtX2F0a19vcHRpb25h bC5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tY2xlYW4tdXAtYS1jYWxsLXRvLXNldF91dGY4LnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1m Zm1wZWctNC4zLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS1pbmNsdWRlLW1lbW9yeS1oZWFkZXItdG8tZ2V0LXRoZS1kZWZp bml0aW9uLW9mLXN0ZC11LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1pd3l1LXN0ZC1udW1lcmljX2xpbWl0cy1pcy1kZWZp bmVkLWluLWxpbWl0cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYnN0ZGMtZml4 LWluY29tcGxldGUtdHlwZS1pbi1BWFRyZWUtZm9yLU5vZGVTZXRTaXoucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW1ha2Ut c29tZS1vZi1ibGluay1jdXN0b20taXRlcmF0b3JzLVNUTC1jb21wYXRpYmxlLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1z a2lhLWhhcm1vbnkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDEtUmV2ZXJ0LXVpLWZpbGwtaW4tU0RS LUhEUi1EaXNwbGF5Q29sb3JTcGFjZXMtQ3JPUy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwMi1Sb2xs LUNocm9tZU9TLUFpcm1vbnQtQUZETy1wcm9maWxlLWZyb20tODMtNDEwMy45Ny0xLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS11cHN0cmVhbS0wMDAzLVJvbGwtQ2hyb21lT1MtU2lsdmVybW9udC1BRkRPLXByb2ZpbGUtZnJv bS04My00MTAzLjkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDQtUm9sbC1DaHJvbWVPUy1Ccm9hZHdl bGwtQUZETy1wcm9maWxlLWZyb20tODMtNDEwMy45Ny5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwNS1J bmNyZW1lbnRpbmctVkVSU0lPTi10by04My4wLjQxMDMuMTIwLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0w MDA2LU1vdmUtR0NQVy1ib29ra2VlcGluZy1vdXQtb2YtZm9ya2VkLXByb2Nlc3MucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVt LXVwc3RyZWFtLTAwMDctU3VwcG9ydC1HQ1BXLWxvZ2luLXRvLXBlcm1pdHRlZC1hY2NvdW50cy5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tdXBzdHJlYW0tMDAwOC1IYW5kbGUtbHNhX2FjY291bnRfcmlnaHRzLXNpemUtcHJv cGVybHkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9w YXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDktSW5jcmVtZW50aW5nLVZFUlNJT04tdG8tODMu MC40MTAzLjEyMS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAxMC1EaXNhYmxlLWZsYWt5LURpY2VNYW5h Z2VBY2NvdW50QnJvd3NlclRlc3QuQ2xlYXJNYW5hLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDExLUlu Y3JlbWVudGluZy1WRVJTSU9OLXRvLTgzLjAuNDEwMy4xMjIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXY4LXJlbW92ZS1z b29uLXRvLWJlLXJlbW92ZWQtZ2V0QWxsRmllbGRQb3NpdGlvbnMucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1hLXNj cmlwdC10by1saXN0LXBhdGNoLXRhcmdldHMucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBh dGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0 Y2hlcy9lbGVjdHJvbi1kb250LWFzc3VtZS1weXRob24taXMtcHl0aG9uMi5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhs dWNlLWNvbnRlbnQtdGVzdC1wYXRjaGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLmNjCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvYXVk aW9fbWFuYWdlcl9vcGVuYnNkLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5jYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRw dXQuY2MKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1m aWxlcy9zbmRpb19vdXRwdXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3NuZGlvLXBhdGNoZXMvbWVkaWFfYXVkaW9fbGludXhfYXVkaW9fbWFuYWdlcl9saW51 eC5jYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3Nu ZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX0JVSUxELmduLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tcGF0Y2hlcy9z cmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRw YXJ0eV9jaHJvbWl1bV9tZWRpYV9tZWRpYV9fb3B0aW9ucy5nbmkucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb245L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2Zp bGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoIGIvc3JjcGtncy9l bGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcwY2ZmYTMwMDJiCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorLS0tIGEvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCisrKysgYi90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKK0BAIC0yNiw2ICsy Niw3IEBACisgCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkKKyAjaW5jbHVkZSA8 YXNtL2xkdC5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLWFiaS5oPgorICNlbmRpZgorIAorIG5h bWVzcGFjZSBjcmFzaHBhZCB7CisKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKK0BAIC0xNyw3ICsxNyw5IEBACisgCisg I2luY2x1ZGVfbmV4dCA8c3lzL3B0cmFjZS5oPgorIAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykK KyAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisrI2VuZGlmCisgCisgLy8gaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzMKKyAjaWYgIWRlZmluZWQoUFRS QUNFX0dFVF9USFJFQURfQVJFQSkgJiYgIWRlZmluZWQoUFRfR0VUX1RIUkVBRF9BUkVBKSAmJiBc CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJv bjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZGVmYXVsdC1wdGhyZWFkLXN0YWNr c2l6ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDBjMTM2 MWI4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCkBAIC0w LDAgKzEsMzEgQEAKK2RpZmYgLS1naXQgYS9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRf bGludXguY2MgYi9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKK2luZGV4 IDA5NWM0OWIuLjUwNDRiYjggMTAwNjQ0CistLS0gYS9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90 aHJlYWRfbGludXguY2MKKysrKyBiL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51 eC5jYworQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIFRlcm1pbmF0ZU9uVGhyZWFkKCkge30KKyAK KyBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25zdCBwdGhyZWFkX2F0dHJfdCYg YXR0cmlidXRlcykgeworICNpZiAhZGVmaW5lZChUSFJFQURfU0FOSVRJWkVSKQorLSAgcmV0dXJu IDA7CisrICByZXR1cm4gKDEgPDwgMjMpOworICNlbHNlCisgICAvLyBUaHJlYWRTYW5pdGl6ZXIg YmxvYXRzIHRoZSBzdGFjayBoZWF2aWx5LiBFdmlkZW5jZSBoYXMgYmVlbiB0aGF0IHRoZQorICAg Ly8gZGVmYXVsdCBzdGFjayBzaXplIGlzbid0IGVub3VnaCBmb3Igc29tZSBicm93c2VyIHRlc3Rz LgorZGlmZiAtLWdpdCBhL2Nocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4 LmNjIGIvY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXguY2MKK2luZGV4 IDYyMWQ0NDEuLmJlMjExMDYgMTAwNjQ0CistLS0gYS9jaHJvbWUvYXBwL3NodXRkb3duX3NpZ25h bF9oYW5kbGVyc19wb3NpeC5jYworKysrIGIvY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFu ZGxlcnNfcG9zaXguY2MKK0BAIC0xODcsMTEgKzE4NywxMSBAQCB2b2lkIEluc3RhbGxTaHV0ZG93 blNpZ25hbEhhbmRsZXJzKAorICAgZ19zaHV0ZG93bl9waXBlX3JlYWRfZmQgPSBwaXBlZmRbMF07 CisgICBnX3NodXRkb3duX3BpcGVfd3JpdGVfZmQgPSBwaXBlZmRbMV07CisgI2lmICFkZWZpbmVk KEFERFJFU1NfU0FOSVRJWkVSKQorLSAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhy ZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiAyOworKyAgY29uc3Qgc2l6ZV90IGtT aHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiAyICo4 OworICNlbHNlCisgICAvLyBBU2FuIGluc3RydW1lbnRhdGlvbiBibG9hdHMgdGhlIHN0YWNrIGZy YW1lcywgc28gd2UgbmVlZCB0byBpbmNyZWFzZSB0aGUKKyAgIC8vIHN0YWNrIHNpemUgdG8gYXZv aWQgaGl0dGluZyB0aGUgZ3VhcmQgcGFnZS4KKy0gIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRl Y3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICogNDsKKysgIGNvbnN0IHNp emVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlO ICogNCAqODsKKyAjZW5kaWYKKyAgIFNodXRkb3duRGV0ZWN0b3IqIGRldGVjdG9yID0gbmV3IFNo dXRkb3duRGV0ZWN0b3IoCisgICAgICAgZ19zaHV0ZG93bl9waXBlX3JlYWRfZmQsIHN0ZDo6bW92 ZShzaHV0ZG93bl9jYWxsYmFjayksIHRhc2tfcnVubmVyKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gg Yi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1zYW5k Ym94LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNDg1ZjZj Yzc1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTAsMCArMSwxNzYgQEAKK2RpZmYg LS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0 ZXJzX3Jlc3RyaWN0aW9ucy5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitpbmRleCAzNDhhYjZlLi40NTUwZjll IDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf cGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKKysrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitAQCAtMTM5LDIx ICsxMzksMTEgQEAgbmFtZXNwYWNlIHNhbmRib3ggeworIC8vIHByZXNlbnQgKGFzIGluIG5ld2Vy IHZlcnNpb25zIG9mIHBvc2l4X3NwYXduKS4KKyBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1Ro cmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICBjb25zdCBBcmc8dW5zaWduZWQgbG9uZz4gZmxhZ3Mo MCk7CistCistICAvLyBUT0RPKG1kZW1wc2t5KTogRXh0ZW5kIERTTCB0byBzdXBwb3J0IChmbGFn cyAmIH5tYXNrMSkgPT0gbWFzazIuCistICBjb25zdCB1aW50NjRfdCBrQW5kcm9pZENsb25lTWFz ayA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENMT05FX1NJR0hBTkQgfCBDTE9ORV9USFJFQUQgfAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9TWVNWU0VNOworLSAgY29u c3QgdWludDY0X3Qga09ic29sZXRlQW5kcm9pZENsb25lTWFzayA9IGtBbmRyb2lkQ2xvbmVNYXNr IHwgQ0xPTkVfREVUQUNIRUQ7CistCistICBjb25zdCB1aW50NjRfdCBrR2xpYmNQdGhyZWFkRmxh Z3MgPQorLSAgICAgIENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENMT05FX1NJ R0hBTkQgfCBDTE9ORV9USFJFQUQgfAorLSAgICAgIENMT05FX1NZU1ZTRU0gfCBDTE9ORV9TRVRU TFMgfCBDTE9ORV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQ7CistICBjb25z dCBCb29sRXhwciBnbGliY190ZXN0ID0gZmxhZ3MgPT0ga0dsaWJjUHRocmVhZEZsYWdzOworLQor LSAgY29uc3QgQm9vbEV4cHIgYW5kcm9pZF90ZXN0ID0KKy0gICAgICBBbnlPZihmbGFncyA9PSBr QW5kcm9pZENsb25lTWFzaywgZmxhZ3MgPT0ga09ic29sZXRlQW5kcm9pZENsb25lTWFzaywKKy0g ICAgICAgICAgICBmbGFncyA9PSBrR2xpYmNQdGhyZWFkRmxhZ3MpOworKyAgY29uc3QgaW50IHJl cXVpcmVkID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFO RCB8CisrICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9USFJFQUQgfCBDTE9ORV9TWVNWU0VN OworKyAgY29uc3QgaW50IHNhZmUgPSBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VUVElE IHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQgfAorKyAgICAgICAgICAgICAgICAgICBDTE9ORV9ERVRB Q0hFRDsKKysgIGNvbnN0IEJvb2xFeHByIHRocmVhZF9jbG9uZV9vayA9IChmbGFncyZ+c2FmZSk9 PXJlcXVpcmVkOworIAorICAgLy8gVGhlIGZvbGxvd2luZyB0d28gZmxhZ3MgYXJlIHRoZSB0d28g aW1wb3J0YW50IGZsYWdzIGluIGFueSB2Zm9yay1lbXVsYXRpbmcKKyAgIC8vIGNsb25lIGNhbGwu IEVQRVJNIGFueSBjbG9uZSBjYWxsIHRoYXQgY29udGFpbnMgYm90aCBvZiB0aGVtLgorQEAgLTE2 Myw3ICsxNTMsNyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZv cmsoKSB7CisgICAgICAgQW55T2YoKGZsYWdzICYgKENMT05FX1ZNIHwgQ0xPTkVfVEhSRUFEKSkg PT0gMCwKKyAgICAgICAgICAgICAoZmxhZ3MgJiBrSW1wb3J0YW50Q2xvbmVWZm9ya0ZsYWdzKSA9 PSBrSW1wb3J0YW50Q2xvbmVWZm9ya0ZsYWdzKTsKKyAKKy0gIHJldHVybiBJZihJc0FuZHJvaWQo KSA/IGFuZHJvaWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFsbG93KCkpCisrICByZXR1cm4gSWYodGhy ZWFkX2Nsb25lX29rLCBBbGxvdygpKQorICAgICAgIC5FbHNlSWYoaXNfZm9ya19vcl9jbG9uZV92 Zm9yaywgRXJyb3IoRVBFUk0pKQorICAgICAgIC5FbHNlKENyYXNoU0lHU1lTQ2xvbmUoKSk7Cisg fQorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3NldHMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRz LmNjCitpbmRleCA3ZGJjYzg3Li41ODkyNjJmIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIC4vc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworQEAgLTM5MSw2ICszOTEsNyBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykg eworICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5k aWYKKysgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKyAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgY2FzZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVk LgorICAgICBjYXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2aWxlZ2VkLgorQEAgLTQwMyw3ICs0MDQs NiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBz eXNubykgeworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19taXBzX18pCisgICAgIGNhc2UgX19OUl9zZXRfdGhyZWFkX2FyZWE6CisgI2Vu ZGlmCistICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6CisgICAgIGNhc2UgX19OUl91bnNo YXJlOgorICNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCisg ICAgIGNhc2UgX19OUl92Zm9yazoKK0BAIC01MTMsNiArNTEzLDggQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNubykgeworICAgICBjYXNlIF9f TlJfbWxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5sb2NrOgorICAgICBjYXNlIF9fTlJfbXVubWFw OgorKyAgICBjYXNlIF9fTlJfbXJlbWFwOgorKyAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKKyAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX21hZHZpc2U6CisgICAgIGNhc2UgX19O Ul9taW5jb3JlOgorQEAgLTUzMCw3ICs1MzIsNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93 ZWRBZGRyZXNzU3BhY2VBY2Nlc3MoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9tb2RpZnlf bGR0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfbXByb3RlY3Q6CistICAgIGNhc2UgX19OUl9t cmVtYXA6CisgICAgIGNhc2UgX19OUl9tc3luYzoKKyAgICAgY2FzZSBfX05SX211bmxvY2thbGw6 CisgICAgIGNhc2UgX19OUl9yZWFkYWhlYWQ6CitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCitpbmRleCA1OWQwZWFiLi43YWU3MDAy IDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9z eXNjYWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4 X3N5c2NhbGxzLmgKK0BAIC0xMDYzLDQgKzEwNjMsOCBAQAorICNkZWZpbmUgX19OUl9tZW1mZF9j cmVhdGUgMjc5CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysj ZGVmaW5lIF9fTlJfbWVtYmFycmllciAyODMKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRC T1hfTElOVVhfU1lTVEVNX0hFQURFUlNfQVJNNjRfTElOVVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1n aXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIGIv c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaAoraW5kZXgg MWFkZGQ1My4uNzg0M2I1ZSAxMDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMzg1LDYgKzEzODUsMTAgQEAKKyAjZGVmaW5l IF9fTlJfbWVtZmRfY3JlYXRlIChfX05SX1NZU0NBTExfQkFTRSszODUpCisgI2VuZGlmCisgCisr I2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAo X19OUl9TWVNDQUxMX0JBU0UrMzg5KQorKyNlbmRpZgorKworIC8vIEFSTSBwcml2YXRlIHN5c2Nh bGxzLgorICNpZiAhZGVmaW5lZChfX0FSTV9OUl9CQVNFKQorICNkZWZpbmUgX19BUk1fTlJfQkFT RSAoX19OUl9TWVNDQUxMX0JBU0UgKyAweEYwMDAwKQorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbWlwczY0X2xpbnV4X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL21pcHM2NF9saW51eF9zeXNjYWxscy5oCitpbmRleCBlYzc1ODE1Li42 MTJmY2ZhIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzNjRf bGludXhfc3lzY2FsbHMuaAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBz NjRfbGludXhfc3lzY2FsbHMuaAorQEAgLTEyNzEsNCArMTI3MSw4IEBACisgI2RlZmluZSBfX05S X21lbWZkX2NyZWF0ZSAoX19OUl9MaW51eCArIDMxNCkKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmlu ZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChfX05SX0xpbnV4 ICsgMzE4KQorKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVB REVSU19NSVBTNjRfTElOVVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL21pcHNfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbWlwc19saW51eF9zeXNjYWxscy5oCitpbmRleCBkZGJmOTdmLi4xNzQyYWNk IDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzX2xpbnV4X3N5 c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwc19saW51eF9z eXNjYWxscy5oCitAQCAtMTQzMyw0ICsxNDMzLDggQEAKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3Jl YXRlIChfX05SX0xpbnV4ICsgMzU0KQorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21l bWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9fTlJfTGludXggKyAzNTgpCisr I2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX01JUFNf TElOVVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAoraW5kZXggYTZhZmM2Mi4uN2VkMGEzYiAxMDA2NDQK Ky0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxz LmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2Nh bGxzLmgKK0BAIC0xNDIyLDUgKzE0MjIsOSBAQAorICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUg MzU2CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5l IF9fTlJfbWVtYmFycmllciAzNzUKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElO VVhfU1lTVEVNX0hFQURFUlNfWDg2XzMyX0xJTlVYX1NZU0NBTExTX0hfCisgCitkaWZmIC0tZ2l0 IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaCBi L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgKK2lu ZGV4IDM0OTUwNGEuLmVhM2M3YzkgMTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCitAQCAtMTI5MCw1ICsxMjkwLDkgQEAK KyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDMxOQorICNlbmRpZgorIAorKyNpZiAhZGVmaW5l ZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMzI0CisrI2VuZGlm CisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1g4Nl82NF9MSU5V WF9TWVNDQUxMU19IXworIAorZGlmZiAtLWdpdCBhL3NlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9z YW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MgYi9zZXJ2aWNlcy9zZXJ2 aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCitp bmRleCAwMTdmMTNjLi41MGFlZWMzIDEwMDY0NAorLS0tIC4vc2VydmljZXMvc2VydmljZV9tYW5h Z2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworKysrIC4vc2Vy dmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9s aW51eC5jYworQEAgLTg4LDEwICs4OCwxMCBAQCBSZXN1bHRFeHByIFJlbmRlcmVyUHJvY2Vzc1Bv bGljeTo6RXZhbHVhdGVTeXNjYWxsKGludCBzeXNubykgY29uc3QgeworICAgICBjYXNlIF9fTlJf c3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3RpbWVzOgorICAgICBjYXNlIF9fTlJfdW5hbWU6Cist ICAgICAgcmV0dXJuIEFsbG93KCk7CistICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToK KyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0 c2NoZWR1bGVyOgorKyAgICAgIHJldHVybiBBbGxvdygpOworKyAgICBjYXNlIF9fTlJfc2NoZWRf Z2V0YWZmaW5pdHk6CisgICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisgICAgICAg cmV0dXJuIHNhbmRib3g6OlJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlkKCksIHN5c25v KTsKKyAgICAgY2FzZSBfX05SX3BybGltaXQ2NDoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25h bWUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9jYW5vbmljYWxpemVfZmlsZV9uYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi4wNTYxNGRhYTc1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6ZV9m aWxlX25hbWUucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oIGIvdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29u ZmlnLWxpbnV4LmgKK2luZGV4IDdlYjdjMjAuLjg4MmI3MzYgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9uYXNtL2NvbmZpZy9jb25maWctbGludXguaAorKysrIGIvdGhpcmRfcGFydHkvbmFzbS9j b25maWcvY29uZmlnLWxpbnV4LmgKK0BAIC0xMTcsNyArMTE3LDcgQEAKKyAjZGVmaW5lIEhBVkVf QUNDRVNTIDEKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNhbm9uaWNhbGl6 ZV9maWxlX25hbWUnIGZ1bmN0aW9uLiAqLworLSNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklM RV9OQU1FIDEKKysvKiAjdW5kZWYgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FICovCisgCisg LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjcHVfdG9fbGUxNicgaW50cmluc2ljIGZ1 bmN0aW9uLiAqLworIC8qICN1bmRlZiBIQVZFX0NQVV9UT19MRTE2ICovCmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jZGVmcy5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs X2NkZWZzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mYzdk YzA2ZmYyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK2RpZmYg LS1naXQgYS9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRlcm5hbHMuaCBiL2Jhc2Uv YWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2ludGVybmFsCitzLmgKK2luZGV4IDAxOTZmODkuLmJi NDJiNWQgMTAwNjQ0CistLS0gYS9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRlcm5h bHMuaAorKysrIGIvYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1faW50ZXJuYWxzLmgKK0BA IC03LDcgKzcsOSBAQAorCisgI2lmIGRlZmluZWQoX19HTlVDX18pCisKKysjaWYgZGVmaW5lZChf X0dMSUJDX18pCisgI2luY2x1ZGUgPHN5cy9jZGVmcy5oPiAgLy8gZm9yIF9fVEhST1cKKysjZW5k aWYKKworICNpZm5kZWYgX19USFJPVyAgLy8gTm90IGEgZ2xpYmMgc3lzdGVtCisgI2lmZGVmIF9O T0VYQ0VQVCAgLy8gTExWTSBsaWJjKysgdXNlcyBub2V4Y2VwdCBpbnN0ZWFkCitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaCBiL3RoaXJkX3Bh cnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKK2luZGV4IDUwZWQwYWMuLjc1NTJh NDkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3lu Yy5oCisrKysgYi90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCitA QCAtMTksMTIgKzE5LDEzIEBACisgI2lmbmRlZiBfX1NZU19DT1JFX1NZTkNfSAorICNkZWZpbmUg X19TWVNfQ09SRV9TWU5DX0gKKyAKKy0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisgI2luY2x1ZGUg PHN0ZGludC5oPgorIAorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorIAorLV9fQkVHSU5fREVD TFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYgLyogX19jcGx1 c3BsdXMgKi8KKyAKKyBzdHJ1Y3Qgc3luY19sZWdhY3lfbWVyZ2VfZGF0YSB7CisgIGludDMyX3Qg ZmQyOworQEAgLTE1OCw2ICsxNTksOCBAQCBzdHJ1Y3Qgc3luY19wdF9pbmZvICpzeW5jX3B0X2lu Zm8oc3RydWN0IHN5bmNfZmVuY2VfaW5mb19kYXRhICppbmZvLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3luY19wdF9pbmZvICppdHIpOworIHZvaWQgc3luY19m ZW5jZV9pbmZvX2ZyZWUoc3RydWN0IHN5bmNfZmVuY2VfaW5mb19kYXRhICppbmZvKTsKKyAKKy1f X0VORF9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWYgLyogX19jcGx1c3Bs dXMgKi8KKyAKKyAjZW5kaWYgLyogX19TWVNfQ09SRV9TWU5DX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2RlZmluZV90 ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9kZWZpbmVfdGVtcF9mYWlsdXJlX3JldHJ5LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MWRiNjU4Zjg0OQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0t IGEvc2FuZGJveC9saW51eC9zdWlkL3NhbmRib3guYwkyMDE5LTExLTE5IDA5OjI4OjA1LjAwMDAw MDAwMCArMDgwMAorKysrIGIvc2FuZGJveC9saW51eC9zdWlkL3NhbmRib3guYwkyMDIwLTA0LTI0 IDExOjUwOjEyLjcxOTg4MDcyOCArMDgwMAorQEAgLTQyLDYgKzQyLDE1IEBACisgI2RlZmluZSBD TE9ORV9ORVdORVQgMHg0MDAwMDAwMAorICNlbmRpZgorIAorKyNpZm5kZWYgVEVNUF9GQUlMVVJF X1JFVFJZCisrI2RlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkoZXhwcmVzc2lvbikgXAorKyAgKF9f ZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICAoeyBsb25nIGludCBfX3Jlc3VsdDsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICBkbyBfX3Jl c3VsdCA9IChsb25nIGludCkgKGV4cHJlc3Npb24pOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgICAgICB3aGlsZSAoX19yZXN1bHQgPT0gLTFMICYmIGVycm5vID09IEVJTlRS KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICBfX3Jlc3VsdDsgfSkpCisr I2VuZGlmCisrCisgc3RhdGljIGJvb2wgRHJvcFJvb3QoKTsKKyAKKyAjZGVmaW5lIEhBTkRMRV9F SU5UUih4KSBURU1QX0ZBSUxVUkVfUkVUUlkoeCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Rucy5wYXRjaCBiL3NyY3BrZ3Mv ZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Rucy5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjQ5ZDhiZDBhZmEKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9kbnMucGF0Y2gKQEAgLTAsMCArMSw2MSBAQAorZGlmZiAtLWdpdCBhL25ldC9kbnMvZG5z X2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjIGIvbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9z aXguY2MKK2luZGV4IDJmOTQ4MzIuLjJkZDFhOTggMTAwNjQ0CistLS0gYS9uZXQvZG5zL2Ruc19j b25maWdfc2VydmljZV9wb3NpeC5jYworKysrIGIvbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2Vf cG9zaXguY2MKK0BAIC0xNTAsNyArMTUwLDcgQEAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCBSZWFk RG5zQ29uZmlnKERuc0NvbmZpZyogZG5zX2NvbmZpZykgeworICNpZiAhZGVmaW5lZChPU19BTkRS T0lEKQorICAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCByZXN1bHQ7CisgLy8gVE9ETyhmdWNoc2lh KTogVXNlIHJlc19uaW5pdCgpIHdoZW4gaXQncyBpbXBsZW1lbnRlZCBvbiBGdWNoc2lhLgorLSNp ZiBkZWZpbmVkKE9TX09QRU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWYgZGVmaW5l ZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9TX0xJTlVY KSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorICAgLy8gTm90ZTogcmVzX25pbml0IGluIGdsaWJj IGFsd2F5cyByZXR1cm5zIDAgYW5kIHNldHMgUkVTX0lOSVQuCisgICAvLyByZXNfaW5pdCBiZWhh dmVzIHRoZSBzYW1lIHdheS4KKyAgIG1lbXNldCgmX3JlcywgMCwgc2l6ZW9mKF9yZXMpKTsKK0BA IC0xNzMsNyArMTczLDcgQEAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCBSZWFkRG5zQ29uZmlnKERu c0NvbmZpZyogZG5zX2NvbmZpZykgeworICNlbHNlCisgICByZXNfbmNsb3NlKCZyZXMpOworICNl bmRpZiAgLy8gZGVmaW5lZChPU19NQUNPU1gpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkKKy0jZW5k aWYgIC8vIGRlZmluZWQoT1NfT1BFTkJTRCkKKysjZW5kaWYgIC8vIGRlZmluZWQoT1NfT1BFTkJT RCkgfHwgZGVmaW5lZChPU19GVUNIU0lBKSB8fCAoZGVmaW5lZChPU19MSU5VWCkgJiYgIWRlZmlu ZWQoX19HTElCQ19fKSkKKyAKKyAjaWYgZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9T X0lPUykKKyAgIENvbmZpZ1BhcnNlUG9zaXhSZXN1bHQgZXJyb3IgPSBEbnNDb25maWdXYXRjaGVy OjpDaGVja0Ruc0NvbmZpZygpOworZGlmZiAtLWdpdCBhL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNj IGIvbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MKK2luZGV4IDk1MmNmZjQuLjRiMzY2ZjQgMTAwNjQ0 CistLS0gYS9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYworKysrIGIvbmV0L2Rucy9kbnNfcmVsb2Fk ZXIuY2MKK0BAIC00LDcgKzQsNyBAQAorIAorICNpbmNsdWRlICJuZXQvZG5zL2Ruc19yZWxvYWRl ci5oIgorIAorLSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYm ICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKysjaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgZGVm aW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BF TkJTRCkgJiYgXAorICAgICAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChPU19GVUNI U0lBKQorIAorICNpbmNsdWRlIDxyZXNvbHYuaD4KK2RpZmYgLS1naXQgYS9uZXQvZG5zL2hvc3Rf cmVzb2x2ZXJfbWFuYWdlci5jYyBiL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCitp bmRleCBlOGRlYTQ2Li5jODZhODMwIDEwMDY0NAorLS0tIGEvbmV0L2Rucy9ob3N0X3Jlc29sdmVy X21hbmFnZXIuY2MKKysrKyBiL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCitAQCAt MjM4Niw3ICsyMzg2LDcgQEAgSG9zdFJlc29sdmVyTWFuYWdlcjo6SG9zdFJlc29sdmVyTWFuYWdl cigKKyAgIE5ldHdvcmtDaGFuZ2VOb3RpZmllcjo6QWRkQ29ubmVjdGlvblR5cGVPYnNlcnZlcih0 aGlzKTsKKyAgIGlmIChzeXN0ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8pCisgICAgIHN5c3RlbV9k bnNfY29uZmlnX25vdGlmaWVyXy0+QWRkT2JzZXJ2ZXIodGhpcyk7CistI2lmIGRlZmluZWQoT1Nf UE9TSVgpICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYg XAorKyNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisgICAgICFkZWZpbmVk KE9TX0FORFJPSUQpCisgICBFbnN1cmVEbnNSZWxvYWRlckluaXQoKTsKKyAjZW5kaWYKK2RpZmYg LS1naXQgYS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYyBiL25ldC9kbnMvaG9zdF9yZXNv bHZlcl9wcm9jLmNjCitpbmRleCAwODI0NTQwLi4zMzg0OTc4IDEwMDY0NAorLS0tIGEvbmV0L2Ru cy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MKKysrKyBiL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9j LmNjCitAQCAtMTk3LDcgKzE5Nyw3IEBAIGludCBTeXN0ZW1Ib3N0UmVzb2x2ZXJDYWxsKGNvbnN0 IHN0ZDo6c3RyaW5nJiBob3N0LAorICAgYmFzZTo6U2NvcGVkQmxvY2tpbmdDYWxsIHNjb3BlZF9i bG9ja2luZ19jYWxsKEZST01fSEVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBiYXNlOjpCbG9ja2luZ1R5cGU6OldJTExfQkxPQ0spOworIAorLSNp ZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9T X09QRU5CU0QpICYmIFwKKysjaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgZGVmaW5lZChfX0dMSUJD X18pICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAor ICAgICAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChPU19GVUNIU0lBKQorICAgRG5z UmVsb2FkZXJNYXliZVJlbG9hZCgpOworICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWluZm8u cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYxYWZjN2MxYjE3 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRjaApAQCAtMCwwICsxLDk2IEBACitkaWZmIC0tZ2l0 IGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYyBiL2Jhc2UvZGVidWcvc3RhY2tfdHJh Y2VfcG9zaXguY2MKK2luZGV4IGRlMmYzNTYuLmY2OTdjNjYgMTAwNjQ0CistLS0gYS9iYXNlL2Rl YnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCisrKysgYi9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bv c2l4LmNjCitAQCAtMjcsNyArMjcsNyBAQAorICNpZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQor ICNpbmNsdWRlIDxjeHhhYmkuaD4KKyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykg JiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9f VUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CisgI2Vu ZGlmCisgCitAQCAtODYsNyArODYsNyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0cmlu ZyogdGV4dCkgeworICAgLy8gTm90ZTogY29kZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIE5PVCBhc3lu Yy1zaWduYWwgc2FmZSAoc3RkOjpzdHJpbmcgdXNlcworICAgLy8gbWFsbG9jIGludGVybmFsbHkp LgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJ WCkKKyAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgc2VhcmNoX2Zyb20gPSAwOworICAgd2hpbGUg KHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6ZSgpKSB7CisgICAgIC8vIExvb2sgZm9yIHRoZSBzdGFy dCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBmcm9tIHNlYXJjaF9mcm9tLgorQEAgLTEyMSw3ICsxMjEs NyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0cmluZyogdGV4dCkgeworICAgICAgIHNl YXJjaF9mcm9tID0gbWFuZ2xlZF9zdGFydCArIDI7CisgICAgIH0KKyAgIH0KKy0jZW5kaWYgIC8v ICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2VuZGlmICAvLyBkZWZp bmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK KyB9CisgI2VuZGlmICAvLyAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorIAorQEAgLTEzMyw3ICsx MzMsNyBAQCBjbGFzcyBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyIHsKKyAgIHZpcnR1YWwgfkJhY2t0 cmFjZU91dHB1dEhhbmRsZXIoKSA9IGRlZmF1bHQ7CisgfTsKKyAKKy0jaWYgIWRlZmluZWQoX19V Q0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFk ZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgdm9pZCBPdXRwdXRQb2ludGVy KHZvaWQqIHBvaW50ZXIsIEJhY2t0cmFjZU91dHB1dEhhbmRsZXIqIGhhbmRsZXIpIHsKKyAgIC8v IFRoaXMgc2hvdWxkIGJlIG1vcmUgdGhhbiBlbm91Z2ggdG8gc3RvcmUgYSA2NC1iaXQgbnVtYmVy IGluIGhleDoKKyAgIC8vIDE2IGhleCBkaWdpdHMgKyAxIGZvciBudWxsLXRlcm1pbmF0b3IuCitA QCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgUHJvY2Vzc0JhY2t0cmFjZSh2b2lkKiBjb25zdCogdHJh Y2UsCisgICB9CisgI2VuZGlmICAvLyBkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgfQorLSNlbmRp ZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjZW5kaWYgIC8v IGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQorIAorIHZvaWQgUHJpbnRUb1N0ZGVycihjb25zdCBjaGFyKiBvdXRwdXQpIHsKKyAgIC8v IE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkg aW4tcHJvY2VzcworQEAgLTgyOCw3ICs4MjgsNyBAQCBzaXplX3QgQ29sbGVjdFN0YWNrVHJhY2Uo dm9pZCoqIHRyYWNlLCBzaXplX3QgY291bnQpIHsKKyAgIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNU IGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcworICAgLy8gc3Rh Y2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBvciBzdGRpbyBpcyBhbGxvd2Vk IGhlcmUuCisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisr I2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQorICAgLy8gVGhvdWdoIHRoZSBiYWNrdHJhY2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90 IGxpc3QgYW55IHBvc3NpYmxlIG5lZ2F0aXZlCisgICAvLyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtl IG5vIGNoYW5jZS4KKyAgIHJldHVybiBiYXNlOjpzYXR1cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0 cmFjZSh0cmFjZSwgY291bnQpKTsKK0BAIC04NDEsMTMgKzg0MSwxMyBAQCB2b2lkIFN0YWNrVHJh Y2U6OlByaW50V2l0aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7Cisg Ly8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBi eSBpbi1wcm9jZXNzCisgLy8gc3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxv YyBvciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18p ICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf X1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgUHJpbnRCYWNrdHJhY2VPdXRwdXRIYW5k bGVyIGhhbmRsZXI7CisgICBQcm9jZXNzQmFja3RyYWNlKHRyYWNlXywgY291bnRfLCBwcmVmaXhf c3RyaW5nLCAmaGFuZGxlcik7CisgI2VuZGlmCisgfQorIAorLSNpZiAhZGVmaW5lZChfX1VDTElC Q19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1 dFRvU3RyZWFtV2l0aFByZWZpeChzdGQ6Om9zdHJlYW0qIG9zLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0 IHsKKyAgIFN0cmVhbUJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxlcihvcyk7CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1 aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmggYi90aGlyZF9wYXJ0eS9zd2lm dHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9sbHZt L0NvbmZpZy9jb25maWcuaAoraW5kZXggNzk4ZjE1MC4uOTdhY2M3YyAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51 eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCisrKysgYi90aGlyZF9wYXJ0eS9zd2lmdHNo YWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9sbHZtL0Nv bmZpZy9jb25maWcuaAorQEAgLTE0LDcgKzE0LDcgQEAKKyAjZGVmaW5lIEVOQUJMRV9DUkFTSF9P VkVSUklERVMgMQorIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgYmFja3RyYWNl JyBmdW5jdGlvbi4gKi8KKy0jZGVmaW5lIEhBVkVfQkFDS1RSQUNFIDEKKysvKiAjdW5kZWYgSEFW RV9CQUNLVFJBQ0UgKi8KKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPENyYXNo UmVwb3J0ZXJDbGllbnQuaD4gaGVhZGVyIGZpbGUuICovCisgLyogI3VuZGVmIEhBVkVfQ1JBU0hS RVBPUlRFUkNMSUVOVF9IICovCitAQCAtNTUsNyArNTUsNyBAQAorICNkZWZpbmUgSEFWRV9FUlJO T19IIDEKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGV4ZWNpbmZvLmg+IGhl YWRlciBmaWxlLiAqLworLSNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKKysvKiAjdW5kZWYgSEFW RV9FWEVDSU5GT19IICovCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxmY250 bC5oPiBoZWFkZXIgZmlsZS4gKi8KKyAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0 YXRlX3QucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmQ4YzQxY2NkOWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZnBzdGF0ZV90LnBhdGNoCkBAIC0wLDAg KzEsNDggQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MgYi90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi91Y29udGV4dF9yZWFkZXIuY2MKK2luZGV4IDZlZTZjYzEuLmE4ZjljY2MgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBf d3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0 X3JlYWRlci5jYworQEAgLTQ5LDcgKzQ5LDcgQEAgdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpH ZXRJbnN0cnVjdGlvblBvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKKyB9CisgCisgdm9p ZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25z dCB1Y29udGV4dF90ICp1YywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSogZnApIHsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2Zwc3RhdGUqIGZwKSB7CisgICBjb25zdCBncmVn X3QqIHJlZ3MgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3M7CisgCisgICBvdXQtPmNvbnRleHRfZmxh Z3MgPSBNRF9DT05URVhUX1g4Nl9GVUxMIHwKK0BAIC05Nyw3ICs5Nyw3IEBAIHVpbnRwdHJfdCBV Q29udGV4dFJlYWRlcjo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVj KSB7CisgfQorIAorIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRl eHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IF9saWJjX2Zwc3RhdGUqIGZwcmVncykgeworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBfZnBzdGF0ZSog ZnByZWdzKSB7CisgICBjb25zdCBncmVnX3QqIHJlZ3MgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3M7 CisgCisgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX0FNRDY0X0ZVTEw7CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuaAoraW5kZXggZjgzMDYxOC4uZjNkZGUxZiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vj b250ZXh0X3JlYWRlci5oCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAorQEAgLTUw LDcgKzUwLDcgQEAgc3RydWN0IFVDb250ZXh0UmVhZGVyIHsKKyAgIC8vICAgaW5mbzogdGhlIGNv bGxlY3Rpb24gb2YgcmVnaXN0ZXIgc3RydWN0dXJlcy4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NCkKKyAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0Nv bnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSogZnApOworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IF9mcHN0YXRlKiBmcCk7CisgI2VsaWYgZGVm aW5lZChfX2FhcmNoNjRfXykKKyAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRl eHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQqIGZwcmVncyk7CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAoraW5k ZXggZDFkYzMzMS4uZDFjYzU2MiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5o CisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAorQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3Mg RXhjZXB0aW9uSGFuZGxlcjsKKyAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyB0eXBlZGVmIHN0 cnVjdCBmcHNpbWRfY29udGV4dCBmcHN0YXRlX3Q7CisgI2VsaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKy10eXBlZGVmIHN0cnVjdCBfbGliY19mcHN0YXRl IGZwc3RhdGVfdDsKKyt0eXBlZGVmIHN0cnVjdCBfZnBzdGF0ZSBmcHN0YXRlX3Q7CisgI2VuZGlm CisgCisgLy8gVGhlc2UgZW50cmllcyBzdG9yZSBhIGxpc3Qgb2YgbWVtb3J5IHJlZ2lvbnMgdGhh dCB0aGUgY2xpZW50IHdhbnRzIGluY2x1ZGVkCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9nZXRjb250ZXh0LnBhdGNoIGIvc3Jj cGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4 dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzY5NzI0M2E5 MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNo ZXMvY2hyb21pdW0tbXVzbF9nZXRjb250ZXh0LnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK2luZGV4IGI4 OTVmNmQuLjRmMTMzNTIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKKysrKyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNl cHRpb25faGFuZGxlci5jYworQEAgLTQ5MCw3ICs0OTAsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRs ZXI6OlNpbXVsYXRlU2lnbmFsRGVsaXZlcnkoaW50IHNpZykgeworICAgc2lnaW5mby5zaV9jb2Rl ID0gU0lfVVNFUjsKKyAgIHNpZ2luZm8uc2lfcGlkID0gZ2V0cGlkKCk7CisgICB1Y29udGV4dF90 IGNvbnRleHQ7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgZ2V0Y29udGV4dCgmY29udGV4 dCk7CisrI2VuZGlmCisgICByZXR1cm4gSGFuZGxlU2lnbmFsKHNpZywgJnNpZ2luZm8sICZjb250 ZXh0KTsKKyB9CisgCitAQCAtNjc1LDggKzY3NywxMCBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6 OldyaXRlTWluaWR1bXAoKSB7CisgICBzeXNfcHJjdGwoUFJfU0VUX0RVTVBBQkxFLCAxLCAwLCAw LCAwKTsKKyAKKyAgIENyYXNoQ29udGV4dCBjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykKKyAgIGludCBnZXRjb250ZXh0X3Jlc3VsdCA9IGdldGNvbnRleHQoJmNvbnRleHQuY29udGV4 dCk7CisgICBpZiAoZ2V0Y29udGV4dF9yZXN1bHQpCisrI2VuZGlmCisgICAgIHJldHVybiBmYWxz ZTsKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBhdGNoIGIvc3Jj cGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8u cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk0MTMxM2U0OTM5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2gKQEAgLTAsMCArMSw2MSBAQAorZGlmZiAtLWdp dCBhL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MgYi9iYXNlL3Byb2Nlc3Mv cHJvY2Vzc19tZXRyaWNzX3Bvc2l4LmNjCitpbmRleCAwNDRiZDhkLi4wNTIxMzIxIDEwMDY0NAor LS0tIGEvYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworKysrIGIvYmFzZS9w cm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworQEAgLTExMCwxNCArMTEwLDE0IEBAIHNp emVfdCBQcm9jZXNzTWV0cmljczo6R2V0TWFsbG9jVXNhZ2UoKSB7CisgICBtYWxsb2Nfc3RhdGlz dGljc190IHN0YXRzID0gezB9OworICAgbWFsbG9jX3pvbmVfc3RhdGlzdGljcyhudWxscHRyLCAm c3RhdHMpOworICAgcmV0dXJuIHN0YXRzLnNpemVfaW5fdXNlOworLSNlbGlmIGRlZmluZWQoT1Nf TElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysjZWxpZiAoZGVmaW5lZChPU19MSU5VWCkg JiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisgICBzdHJ1Y3Qg bWFsbGluZm8gbWluZm8gPSBtYWxsaW5mbygpOworICNpZiBCVUlMREZMQUcoVVNFX1RDTUFMTE9D KQorICAgcmV0dXJuIG1pbmZvLnVvcmRibGtzOworICNlbHNlCisgICByZXR1cm4gbWluZm8uaGJs a2hkICsgbWluZm8uYXJlbmE7CisgI2VuZGlmCistI2VsaWYgZGVmaW5lZChPU19GVUNIU0lBKQor KyNlbHNlCisgICAvLyBUT0RPKGZ1Y2hzaWEpOiBOb3QgY3VycmVudGx5IGV4cG9zZWQuIGh0dHBz Oi8vY3JidWcuY29tLzczNTA4Ny4KKyAgIHJldHVybiAwOworICNlbmRpZgorZGlmZiAtLWdpdCBh L2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MgYi9iYXNlL3RyYWNlX2V2 ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCitpbmRleCBlODk1OTdjLi5lY2EyNThjIDEwMDY0 NAorLS0tIGEvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworKysrIGIv YmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworQEAgLTEzMiw3ICsxMzIs NyBAQCBib29sIE1hbGxvY0R1bXBQcm92aWRlcjo6T25NZW1vcnlEdW1wKGNvbnN0IE1lbW9yeUR1 bXBBcmdzJiBhcmdzLAorICAgfQorICNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAvLyBUT0RP KGZ1Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NTkyLgorLSNlbHNlCisr I2VsaWYgZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgICBzdHJ1Y3Qg bWFsbGluZm8gaW5mbyA9IG1hbGxpbmZvKCk7CisgICBEQ0hFQ0tfR0UoaW5mby5hcmVuYSArIGlu Zm8uaGJsa2hkLCBpbmZvLnVvcmRibGtzKTsKKyAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9z d2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9s bHZtL0NvbmZpZy9jb25maWcuaCBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5 L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitp bmRleCBhYTk4MjQyLi45N2FjYzdjIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFk ZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25m aWcvY29uZmlnLmgKKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xs dm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitAQCAt MTMwLDcgKzEzMCw3IEBACisgLyogI3VuZGVmIEhBVkVfTUFMTENUTCAqLworIAorIC8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8nIGZ1bmN0aW9uLiAqLworLSNkZWZpbmUg SEFWRV9NQUxMSU5GTyAxCisrLyogI3VuZGVmIEhBVkVfTUFMTElORk8gKi8KKyAKKyAvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KKyAjZGVm aW5lIEhBVkVfTUFMTE9DX0ggMQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVy L3RoaXJkX3BhcnR5L2xsdm0tNy4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9j b25maWcuaCBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tNy4wL2Nv bmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAoraW5kZXggNmUxNzAyMC4u ZDRhOWVkMCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5 L2xsdm0tNy4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAorKysr IGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS03LjAvY29uZmlncy9s aW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitAQCAtMTIyLDcgKzEyMiw3IEBACisg LyogI3VuZGVmIEhBVkVfTUFMTENUTCAqLworCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIGBtYWxsaW5mbycgZnVuY3Rpb24uICovCistI2RlZmluZSBIQVZFX01BTExJTkZPIDEKKysv KiAjdW5kZWYgSEFWRV9NQUxMSU5GTyAqLworCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICovCisgI2RlZmluZSBIQVZFX01BTExPQ19IIDEK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wcmVhZF9wd3JpdGU2NC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmFlYWFlYjc1OTMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9w cmVhZF9wd3JpdGU2NC5wYXRjaApAQCAtMCwwICsxLDE4IEBACitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIGIvdGhpcmRfcGFydHkvbHNzL2xpbnV4 X3N5c2NhbGxfc3VwcG9ydC5oCitpbmRleCA1ZDljMmU4Li4yNjgyMzQ5IDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCisrKysgYi90aGlyZF9wYXJ0 eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKK0BAIC0xNjYsNiArMTY2LDEzIEBAIGV4dGVy biAiQyIgeworICMgdW5kZWYgX19OUl93YWl0cGlkCisgI2VuZGlmCisgCisrI2lmZGVmIHByZWFk NjQKKysjdW5kZWYgcHJlYWQ2NAorKyNlbmRpZgorKyNpZmRlZiBwd3JpdGU2NAorKyN1bmRlZiBw d3JpdGU2NAorKyNlbmRpZgorKworIC8qIEFzIGdsaWJjIG9mdGVuIHByb3ZpZGVzIHN1YnRseSBp bmNvbXBhdGlibGUgZGF0YSBzdHJ1Y3R1cmVzIChhbmQgaW1wbGljaXQKKyAgKiB3cmFwcGVyIGZ1 bmN0aW9ucyB0aGF0IGNvbnZlcnQgdGhlbSksIHdlIHByb3ZpZGUgb3VyIG93biBrZXJuZWwgZGF0 YQorICAqIHN0cnVjdHVyZXMgZm9yIHVzZSBieSB0aGUgc3lzdGVtIGNhbGxzLgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVz aF9iYWNrLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5jZmYzNDAyODdkYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5wYXRjaApAQCAtMCww ICsxLDEzIEBACitkaWZmIC0tZ2l0IGEvbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjIGIv bmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCitpbmRleCAwOGJmNzljLi4zZWU1MzUzIDEw MDY0NAorLS0tIGEvbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCisrKysgYi9uZXQvc29j a2V0L3VkcF9zb2NrZXRfcG9zaXguY2MKK0BAIC0xMTk0LDcgKzExOTQsNyBAQCBTZW5kUmVzdWx0 IFVEUFNvY2tldFBvc2l4U2VuZGVyOjpJbnRlcm5hbFNlbmRtbXNnQnVmZmVycygKKyAgICAgbXNn X2lvdi0+cHVzaF9iYWNrKHtjb25zdF9jYXN0PGNoYXIqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZl ci0+bGVuZ3RoKCl9KTsKKyAgIG1zZ3ZlYy0+cmVzZXJ2ZShidWZmZXJzLnNpemUoKSk7CisgICBm b3IgKHNpemVfdCBqID0gMDsgaiA8IGJ1ZmZlcnMuc2l6ZSgpOyBqKyspCistICAgIG1zZ3ZlYy0+ cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEsIG51bGxwdHIsIDAsIDB9LCAw fSk7CisrICAgIG1zZ3ZlYy0+cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEs IDAsIG51bGxwdHIsIDAsIDAsIDB9LCAwfSk7CisgICBpbnQgcmVzdWx0ID0gSEFORExFX0VJTlRS KFNlbmRtbXNnKGZkLCAmbXNndmVjWzBdLCBidWZmZXJzLnNpemUoKSwgMCkpOworICAgU2VuZFJl c3VsdCBzZW5kX3Jlc3VsdCgwLCAwLCBzdGQ6Om1vdmUoYnVmZmVycykpOworICAgaWYgKHJlc3Vs dCA8IDApIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsX3N0YWNrX3NpemUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZjQxZDI3YWRlNgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0 YWNrX3NpemUucGF0Y2gKQEAgLTAsMCArMSw0MSBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjIGIvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MKK2luZGV4IGIyNDIxNjQu LjFhMGI1MTkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS93dGYvc3RhY2tfdXRpbC5jYworKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxh dGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MKK0BAIC0yOCw3ICsyOCw3IEBACisgLy8gRklYTUU6IE9u IE1hYyBPU1ggYW5kIExpbnV4LCB0aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6 ZQorIC8vIGNvcnJlY3RseSBmb3IgdGhlIG1haW4gdGhyZWFkLgorIAorLSNlbGlmIGRlZmluZWQo X19HTElCQ19fKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkg fHwgXAorKyNlbGlmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwg ZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisgICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAgIC8v IHB0aHJlYWRfZ2V0YXR0cl9ucCgpIGNhbiBmYWlsIGlmIHRoZSB0aHJlYWQgaXMgbm90IGludm9r ZWQgYnkKKyAgIC8vIHB0aHJlYWRfY3JlYXRlKCkgKGUuZy4sIHRoZSBtYWluIHRocmVhZCBvZiBi bGlua191bml0dGVzdHMpLgorQEAgLTU1LDYgKzU1LDkgQEAgc2l6ZV90IEdldFVuZGVyZXN0aW1h dGVkU3RhY2tTaXplKCkgeworICAgcHRocmVhZF9hdHRyX2Rlc3Ryb3koJmF0dHIpOworICNlbmRp ZgorIAorKyNpZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCisrICBy ZXR1cm4gMDsKKysjZWxzZQorICAgLy8gUmV0dXJuIGEgNTEyayBzdGFjayBzaXplLCAoY29uc2Vy dmF0aXZlbHkpIGFzc3VtaW5nIHRoZSBmb2xsb3dpbmc6CisgICAvLyAgLSB0aGF0IHNpemUgaXMg bXVjaCBsb3dlciB0aGFuIHRoZSBwdGhyZWFkcyBkZWZhdWx0ICh4ODYgcHRocmVhZHMgaGFzIGEg Mk0KKyAgIC8vICAgIGRlZmF1bHQuKQorQEAgLTYyLDYgKzY1LDggQEAgc2l6ZV90IEdldFVuZGVy ZXN0aW1hdGVkU3RhY2tTaXplKCkgeworICAgLy8gICAgbG93IGFzIDUxMmsuCisgICAvLworICAg cmV0dXJuIDUxMiAqIDEwMjQ7CisrI2VuZGlmCisrCisgI2VsaWYgZGVmaW5lZChPU19NQUNPU1gp CisgICAvLyBwdGhyZWFkX2dldF9zdGFja3NpemVfbnAoKSByZXR1cm5zIHRvbyBsb3cgYSB2YWx1 ZSBmb3IgdGhlIG1haW4gdGhyZWFkIG9uCisgICAvLyBPU1ggMTAuOSwKK0BAIC05Nyw3ICsxMDIs NyBAQCByZXR1cm4gVGhyZWFkaW5nOjpUaHJlYWRTdGFja1NpemUoKTsKKyB9CisgCisgdm9pZCog R2V0U3RhY2tTdGFydCgpIHsKKy0jaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoT1Nf QU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisrI2lmIGRlZmluZWQoT1NfTElO VVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisg ICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAgIHB0aHJlYWRfYXR0cl90IGF0dHI7CisgICBpbnQg ZXJyb3I7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF9zdGFja190cmFjZS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45YTFmMmIwNDQ1OAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0 YWNrX3RyYWNlLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK2RpZmYgLS1naXQgYS9iYXNlL2RlYnVn L3N0YWNrX3RyYWNlLmNjIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworaW5kZXggZDhjYTgy Mi4uZmZlMWYwOCAxMDA2NDQKKy0tLSBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MKKysrKyBi L2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MKK0BAIC0yMjUsNyArMjI1LDkgQEAgdm9pZCBTdGFj a1RyYWNlOjpQcmludCgpIGNvbnN0IHsKKyB9CisKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1dFRv U3RyZWFtKHN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18p ICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBPdXRwdXRUb1N0 cmVhbVdpdGhQcmVmaXgob3MsIG51bGxwdHIpOworKyNlbmRpZgorIH0KKworIHN0ZDo6c3RyaW5n IFN0YWNrVHJhY2U6OlRvU3RyaW5nKCkgY29uc3QgeworQEAgLTIzMywxNCArMjMzLDE0IEBAIHN0 ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nKCkgY29uc3QgeworIH0KKyBzdGQ6OnN0cmlu ZyBTdGFja1RyYWNlOjpUb1N0cmluZ1dpdGhQcmVmaXgoY29uc3QgY2hhciogcHJlZml4X3N0cmlu ZykgY29uc3QgeworICAgc3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOworLSNpZiAhZGVmaW5lZChf X1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYg IWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91dHB1dFRvU3RyZWFt V2l0aFByZWZpeCgmc3RyZWFtLCBwcmVmaXhfc3RyaW5nKTsKKyAjZW5kaWYKKyAgIHJldHVybiBz dHJlYW0uc3RyKCk7CisgfQorIAorIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJl YW0mIG9zLCBjb25zdCBTdGFja1RyYWNlJiBzKSB7CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18p ICYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9f VUNMSUJDX18pICYgIWRlZmluZWQoX0FJWCkKKyAgIHMuT3V0cHV0VG9TdHJlYW0oJm9zKTsKKyAj ZWxzZQorICAgb3MgPDwgIlN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtIG5vdCBpbXBsZW1lbnRl ZC4iOworZGlmZiAtLWdpdCBhL2Jhc2UvbG9nZ2luZy5jYyBiL2Jhc2UvbG9nZ2luZy5jYworaW5k ZXggMzZiOGJmYy4uZGQ4MzBmZSAxMDA2NDQKKy0tLSBhL2Jhc2UvbG9nZ2luZy5jYworKysrIGIv YmFzZS9sb2dnaW5nLmNjCitAQCAtNjA3LDcgKzYwNyw3IEBAIExvZ01lc3NhZ2U6OkxvZ01lc3Nh Z2UoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIExvZ1NldmVyaXR5IHNldmVyaXR5LAorIExv Z01lc3NhZ2U6On5Mb2dNZXNzYWdlKCkgeworICAgc2l6ZV90IHN0YWNrX3N0YXJ0ID0gc3RyZWFt Xy50ZWxscCgpOworICNpZiAhZGVmaW5lZChPRkZJQ0lBTF9CVUlMRCkgJiYgIWRlZmluZWQoT1Nf TkFDTCkgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgXAorLSAgICAhZGVmaW5lZChPU19BSVgp CisrICAgICFkZWZpbmVkKE9TX0FJWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgICBpZiAoc2V2 ZXJpdHlfID09IExPR19GQVRBTCAmJiAhYmFzZTo6ZGVidWc6OkJlaW5nRGVidWdnZWQoKSkgewor ICAgICAvLyBJbmNsdWRlIGEgc3RhY2sgdHJhY2Ugb24gYSBmYXRhbCwgdW5sZXNzIGEgZGVidWdn ZXIgaXMgYXR0YWNoZWQuCisgICAgIGJhc2U6OmRlYnVnOjpTdGFja1RyYWNlIHN0YWNrX3RyYWNl OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3RjcF9saXN0ZW4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNjIzMTdiMTFhCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rl bi5wYXRjaApAQCAtMCwwICsxLDE0IEBACitkaWZmIC0tZ2l0IGEvY29udGVudC9wdWJsaWMvY29t bW9uL3NvY2tldF9wZXJtaXNzaW9uX3JlcXVlc3QuaCBiL2NvbnRlbnQvcHVibGljL2NvbW1vbi9z b2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKK2luZGV4IDczMTY2MjEuLjYxNzEyMTkgMTAwNjQ0 CistLS0gYS9jb250ZW50L3B1YmxpYy9jb21tb24vc29ja2V0X3Blcm1pc3Npb25fcmVxdWVzdC5o CisrKysgYi9jb250ZW50L3B1YmxpYy9jb21tb24vc29ja2V0X3Blcm1pc3Npb25fcmVxdWVzdC5o CitAQCAtOSw2ICs5LDkgQEAKKyAKKyAjaW5jbHVkZSA8c3RyaW5nPgorIAorKyNpZmRlZiBUQ1Bf TElTVEVOCisrI3VuZGVmIFRDUF9MSVNURU4KKysjZW5kaWYKKyAKKyBuYW1lc3BhY2UgY29udGVu dCB7CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF93b3Jkc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3dvcmRzaXplLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjA4Y2ZmYWZiZQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3dvcmRzaXpl LnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaCBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oCitpbmRl eCBkMDNjN2E4Li43OGNhOWRkIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKKysrKyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oCitAQCAt MzYsNiArMzYsNyBAQAorICNpbmNsdWRlIDxlbGYuaD4KKyAjaW5jbHVkZSA8bGluay5oPgorICNp bmNsdWRlIDxzdGRkZWYuaD4KKysjaW5jbHVkZSA8bGltaXRzLmg+CisgCisgI2luY2x1ZGUgImNv bW1vbi9tZW1vcnlfcmFuZ2UuaCIKKyAKK0BAIC01MSw5ICs1Miw5IEBAIGNsYXNzIEVsZkNvcmVE dW1wIHsKKyAgIHR5cGVkZWYgRWxmVyhQaGRyKSBQaGRyOworICAgdHlwZWRlZiBFbGZXKFdvcmQp IFdvcmQ7CisgICB0eXBlZGVmIEVsZlcoQWRkcikgQWRkcjsKKy0jaWYgX19XT1JEU0laRSA9PSAz MgorKyNpZiBVTE9OR19NQVggPT0gMHhmZmZmZmZmZgorICAgc3RhdGljIGNvbnN0IGludCBrQ2xh c3MgPSBFTEZDTEFTUzMyOworLSNlbGlmIF9fV09SRFNJWkUgPT0gNjQKKysjZWxpZiBVTE9OR19N QVggPT0gMHhmZmZmZmZmZmZmZmZmZmZmCisgICBzdGF0aWMgY29uc3QgaW50IGtDbGFzcyA9IEVM RkNMQVNTNjQ7CisgI2Vsc2UKKyAjZXJyb3IgIlVuc3VwcG9ydGVkIF9fV09SRFNJWkUgZm9yIEVs ZkNvcmVEdW1wLiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tODMtZ2NjLTEwLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS04My1nY2MtMTAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjk3NGI0OWNkZTcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJv bjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS04My1nY2MtMTAucGF0Y2gKQEAgLTAsMCArMSw2NCBA QAorRnJvbSBlNDczZjQxMjg0Y2NjOGZhNGJjNDYyMmQwODcxOTRiMThhMWVjMjNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1h aWwuY29tPgorRGF0ZTogVHVlLCA3IEFwciAyMDIwIDE2OjM3OjEwICswMDAwCitTdWJqZWN0OiBb UEFUQ0hdIEdDQzogZml4IGluY2x1ZGVzIGZvciBnY2MtMTAKKworLS0tCisgY2hyb21lL2Jyb3dz ZXIvc2VhcmNoL2JhY2tncm91bmQvbnRwX2JhY2tncm91bmRzLmggICAgICAgICAgICAgIHwgMSAr CisgdGhpcmRfcGFydHkvd2VicnRjL2NhbGwvcnR4X3JlY2VpdmVfc3RyZWFtLmggICAgICAgICAg ICAgICAgICAgIHwgMSArCisgLi4uL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVj My9jbG9ja2RyaWZ0X2RldGVjdG9yLmggIHwgMSArCisgdWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xp bnV4LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArKworIDUgZmlsZXMg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9jaHJvbWUvYnJvd3Nlci9z ZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3VuZHMuaCBiL2Nocm9tZS9icm93c2VyL3NlYXJj aC9iYWNrZ3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oCitpbmRleCA3YWZjMGEyLi5lYTU4MThlIDEw MDY0NAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91bmQvbnRwX2JhY2tncm91 bmRzLmgKKysrKyBiL2Nocm9tZS9icm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250cF9iYWNrZ3Jv dW5kcy5oCitAQCAtNiw2ICs2LDcgQEAKKyAjZGVmaW5lIENIUk9NRV9CUk9XU0VSX1NFQVJDSF9C QUNLR1JPVU5EX05UUF9CQUNLR1JPVU5EU19IXworIAorICNpbmNsdWRlIDxhcnJheT4KKysjaW5j bHVkZSA8Y3N0ZGRlZj4KKyAKKyBjbGFzcyBHVVJMOworIAorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3dlYnJ0Yy9jYWxsL3J0eF9yZWNlaXZlX3N0cmVhbS5oIGIvdGhpcmRfcGFydHkvd2VicnRj L2NhbGwvcnR4X3JlY2VpdmVfc3RyZWFtLmgKK2luZGV4IDhmZmE0NDAuLjExM2E4MTYgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS93ZWJydGMvY2FsbC9ydHhfcmVjZWl2ZV9zdHJlYW0uaAorKysr IGIvdGhpcmRfcGFydHkvd2VicnRjL2NhbGwvcnR4X3JlY2VpdmVfc3RyZWFtLmgKK0BAIC0xMiw2 ICsxMiw3IEBACisgI2RlZmluZSBDQUxMX1JUWF9SRUNFSVZFX1NUUkVBTV9IXworIAorICNpbmNs dWRlIDxtYXA+CisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgCisgI2luY2x1ZGUgImNhbGwvcnRwX3Bh Y2tldF9zaW5rX2ludGVyZmFjZS5oIgorIAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3dlYnJ0 Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjMy9jbG9ja2RyaWZ0X2RldGVjdG9yLmggYi90 aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9hdWRpb19wcm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlm dF9kZXRlY3Rvci5oCitpbmRleCAyMjUyOGM5Li42OWU2MjRlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vzc2luZy9hZWMzL2Nsb2NrZHJpZnRfZGV0 ZWN0b3IuaAorKysrIGIvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vzc2lu Zy9hZWMzL2Nsb2NrZHJpZnRfZGV0ZWN0b3IuaAorQEAgLTEyLDYgKzEyLDcgQEAKKyAjZGVmaW5l IE1PRFVMRVNfQVVESU9fUFJPQ0VTU0lOR19BRUMzX0NMT0NLRFJJRlRfREVURUNUT1JfSF8KKyAK KyAjaW5jbHVkZSA8YXJyYXk+CisrI2luY2x1ZGUgPGNzdGRkZWY+CisgCisgbmFtZXNwYWNlIHdl YnJ0YyB7CisgCitkaWZmIC0tZ2l0IGEvdWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmggYi91 aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguaAoraW5kZXggODZmZjJlYi4uOTkwZjEyYyAxMDA2 NDQKKy0tLSBhL3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5oCisrKysgYi91aS9nZngvbGlu dXgvZHJtX3V0aWxfbGludXguaAorQEAgLTcsNiArNyw4IEBACisgCisgI2luY2x1ZGUgInVpL2dm eC9idWZmZXJfdHlwZXMuaCIKKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKysKKyBuYW1lc3BhY2Ug dWkgeworIAorIGludCBHZXRGb3VyQ0NGb3JtYXRGcm9tQnVmZmVyRm9ybWF0KGdmeDo6QnVmZmVy Rm9ybWF0IGZvcm1hdCk7CistLSAKKzIuMjQuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWFkZC1taXNzaW5nLWFsZ29yaXRobS1oZWFkZXIt aW4tY3J4X2luc3RhbGxfZXJyb3IuY2MucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9w YXRjaGVzL2Nocm9taXVtLWFkZC1taXNzaW5nLWFsZ29yaXRobS1oZWFkZXItaW4tY3J4X2luc3Rh bGxfZXJyb3IuY2MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjU3MGY3YjMxOTUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1hZGQtbWlzc2luZy1hbGdvcml0aG0taGVhZGVyLWluLWNyeF9pbnN0 YWxsX2Vycm9yLmNjLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gMmI5ZDZkYWEwYWI1Y2U0 NWVjNTU1NTQ2NmQ1YTVhNTgzYTAyMGVhOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IERhbmllbCBQbGF5ZmFpciBDYWwgPGRhbmllbC5wbGF5ZmFpci5jYWxAZ21haWwuY29tPgorRGF0 ZTogU2F0LCAxOCBBcHIgMjAyMCAwMDoyNzozOCArMDAwMAorU3ViamVjdDogW1BBVENIXSBBZGQg bWlzc2luZyBhbGdvcml0aG0gaGVhZGVyIGluIGNyeF9pbnN0YWxsX2Vycm9yLmNjCisKK1RoaXMg aXMgbmVlZGVkIGZvciB0aGUgdXNlIG9mIHN0ZDo6ZmluZC4KKworQ2hhbmdlLUlkOiBJMmRjNDNi Mzg4N2M0Njc5ODZjNTM0NmJlNWE5ZTI3YTk4N2UxZTViMworUmV2aWV3ZWQtb246IGh0dHBzOi8v Y2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMTUyMzMz CitSZXZpZXdlZC1ieTogS2VuIFJvY2tvdCA8cm9ja290QGdvb2dsZS5jb20+CitDb21taXQtUXVl dWU6IEtlbiBSb2Nrb3QgPHJvY2tvdEBnb29nbGUuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiBy ZWZzL2hlYWRzL21hc3RlckB7Izc2MDI3Mn0KKy0tLQorIGV4dGVuc2lvbnMvYnJvd3Nlci9pbnN0 YWxsL2NyeF9pbnN0YWxsX2Vycm9yLmNjIHwgMiArKworIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2V4dGVuc2lvbnMvYnJvd3Nlci9pbnN0YWxsL2NyeF9p bnN0YWxsX2Vycm9yLmNjIGIvZXh0ZW5zaW9ucy9icm93c2VyL2luc3RhbGwvY3J4X2luc3RhbGxf ZXJyb3IuY2MKK2luZGV4IGE5NzY1YmIwYTVhLi5iZDBkM2UzNWExNiAxMDA2NDQKKy0tLSBhL2V4 dGVuc2lvbnMvYnJvd3Nlci9pbnN0YWxsL2NyeF9pbnN0YWxsX2Vycm9yLmNjCisrKysgYi9leHRl bnNpb25zL2Jyb3dzZXIvaW5zdGFsbC9jcnhfaW5zdGFsbF9lcnJvci5jYworQEAgLTQsNiArNCw4 IEBACisgCisgI2luY2x1ZGUgImV4dGVuc2lvbnMvYnJvd3Nlci9pbnN0YWxsL2NyeF9pbnN0YWxs X2Vycm9yLmgiCisgCisrI2luY2x1ZGUgPGFsZ29yaXRobT4KKysKKyAjaW5jbHVkZSAiYmFzZS9s b2dnaW5nLmgiCisgI2luY2x1ZGUgImV4dGVuc2lvbnMvYnJvd3Nlci9pbnN0YWxsL3NhbmRib3hl ZF91bnBhY2tlcl9mYWlsdXJlX3JlYXNvbi5oIgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1hdm9pZC1kb3VibGUtZGVzdHJ1Y3Rpb24tb2Yt U2VydmljZVdvcmtlck9iamVjdEhvc3QucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9w YXRjaGVzL2Nocm9taXVtLWF2b2lkLWRvdWJsZS1kZXN0cnVjdGlvbi1vZi1TZXJ2aWNlV29ya2Vy T2JqZWN0SG9zdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NWUxZGYwMDVjOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9w YXRjaGVzL2Nocm9taXVtLWF2b2lkLWRvdWJsZS1kZXN0cnVjdGlvbi1vZi1TZXJ2aWNlV29ya2Vy T2JqZWN0SG9zdC5wYXRjaApAQCAtMCwwICsxLDEzOCBAQAorRnJvbSBiZDU5Y2UzMjYyOWVmNjg0 NjI0ODIxNDE5YzQzOTY3YjczZDI5ODllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog SGlyb2tpIE5ha2FnYXdhIDxuaGlyb2tpQGNocm9taXVtLm9yZz4KK0RhdGU6IEZyaSwgOCBNYXkg MjAyMCAwODoyNTozMSArMDAwMAorU3ViamVjdDogW1BBVENIXSBTZXJ2aWNlV29ya2VyOiBBdm9p ZCBkb3VibGUgZGVzdHJ1Y3Rpb24gb2YKKyBTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdCBvbiBjb25u ZWN0aW9uIGVycm9yCisKK1RoaXMgQ0wgYXZvaWRzIHRoZSBjYXNlIHdoZXJlIFNlcnZpY2VXb3Jr ZXJPYmplY3RIb3N0IGlzIGRlc3Ryb3llZCB0d2ljZQorb24gU2VydmljZVdvcmtlck9iamVjdEhv c3Q6Ok9uQ29ubmVjdGlvbkVycm9yKCkgd2hlbiBDaHJvbWl1bSBpcyBidWlsdAord2l0aCB0aGUg R0NDIGJ1aWxkIHRvb2xjaGFpbi4KKworPiBIb3cgZG9lcyB0aGUgaXNzdWUgaGFwcGVuPworCitT ZXJ2aWNlV29ya2VyT2JqZWN0SG9zdCBoYXMgYSBjeWNsaWMgcmVmZXJlbmNlIGxpa2UgdGhpczoK KworU2VydmljZVdvcmtlck9iamVjdEhvc3QKKyAgLS0oWzFdIHNjb3BlZF9yZWZwdHIpLS0+IFNl cnZpY2VXb3JrZXJWZXJzaW9uCisgICAgLS0oWzJdIHN0ZDo6dW5pcXVlX3B0ciktLT4gU2Vydmlj ZVdvcmtlclByb3ZpZGVySG9zdAorICAgICAgLS0oWzNdIHN0ZDo6dW5pcXVlX3B0ciktLT4gU2Vy dmljZVdvcmtlckNvbnRhaW5lckhvc3QKKyAgICAgICAgLS0oWzRdIHN0ZDo6dW5pcXVlX3B0cikt LT4gU2VydmljZVdvcmtlck9iamVjdEhvc3QKKworTm90ZSB0aGF0IFNlcnZpY2VXb3JrZXJDb250 YWluZXJIb3N0IG1hbmFnZXMgU2VydmljZVdvcmtlck9iamVjdEhvc3QgaW4KK21hcDxpbnQ2NF90 IHZlcnNpb25faWQsIHN0ZDo6dW5pcXVlX3B0cjxTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdD4+Lgor CitXaGVuIFNlcnZpY2VXb3JrZXJPYmplY3RIb3N0OjpPbkNvbm5lY3Rpb25FcnJvcigpIGlzIGNh bGxlZCwgdGhlCitmdW5jdGlvbiByZW1vdmVzIHRoZSByZWZlcmVuY2UgWzRdIGZyb20gdGhlIG1h cCwgYW5kIGRlc3Ryb3lzCitTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdC4gSWYgdGhlIG9iamVjdCBo b3N0IGhhcyB0aGUgbGFzdCByZWZlcmVuY2UgWzFdCit0byBTZXJ2aWNlV29ya2VyVmVyc2lvbiwg dGhlIGRlc3RydWN0aW9uIGFsc28gY3V0cyBvZmYgdGhlIHJlZmVyZW5jZXMKK1syXSBhbmQgWzNd LCBhbmQgZGVzdHJveXMgU2VydmljZVdvcmtlclByb3ZpZGVySG9zdCBhbmQKK1NlcnZpY2VXb3Jr ZXJDb250YWluZXJIb3N0LgorCitUaGlzIHNlZW1zIHRvIHdvcmsgd2VsbCBvbiB0aGUgQ2hyb21p dW0ncyBkZWZhdWx0IHRvb2xjaGFpbiwgYnV0IG5vdAord29yayBvbiB0aGUgR0NDIHRvb2xjaGFp bi4gQWNjb3JkaW5nIHRvIHRoZSByZXBvcnQsIGRlc3RydWN0aW9uIG9mCitTZXJ2aWNlV29ya2Vy Q29udGFpbmVySG9zdCBoYXBwZW5zIHdoaWxlIHRoZSBtYXAgb3duZWQgYnkgdGhlIGNvbnRhaW5l cgoraG9zdCBpcyBlcmFzaW5nIHRoZSBTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdCwgYW5kIHRoaXMg cmVzdWx0cyBpbiBjcmFzaAorZHVlIHRvIGRvdWJsZSBkZXN0cnVjdGlvbiBvZiB0aGUgb2JqZWN0 IGhvc3QuCisKK0kgZG9uJ3Qga25vdyB0aGUgcmVhc29uIHdoeSB0aGlzIGhhcHBlbnMgb25seSBv biB0aGUgR0NDIHRvb2xjaGFpbiwgYnV0CitJIHN1c3BlY3QgdGhlIG9yZGVyIG9mIG9iamVjdCBk ZXN0cnVjdGlvbiBvbiBzdGQ6Om1hcDo6ZXJhc2UoKSBjb3VsZCBiZQorZGlmZmVyZW50IGRlcGVu ZGluZyBvbiB0aGUgdG9vbGNoYWlucy4KKworPiBIb3cgZG9lcyB0aGlzIENMIGZpeCB0aGlzPwor CitUaGUgaWRlYWwgZml4IGlzIHRvIHJlZGVzaWduIHRoZSBvd25lcnNoaXAgbW9kZWwgb2YKK1Nl cnZpY2VXb3JrZXJWZXJzaW9uLCBidXQgaXQncyBub3QgZmVhc2libGUgaW4gdGhlIHNob3J0IHRl cm0uCisKK0luc3RlYWQsIHRoaXMgQ0wgYXZvaWRzIGRlc3RydWN0aW9uIG9mIFNlcnZpY2VXb3Jr ZXJPYmplY3RIb3N0IG9uCitzdGQ6Om1hcDo6ZXJhc2UoKS4gVGhlIG5ldyBjb2RlIHRha2VzIHRo ZSBvd25lcnNoaXAgb2YgdGhlIG9iamVjdCBob3N0Citmcm9tIHRoZSBtYXAgZmlyc3QsIGFuZCB0 aGVuIGVyYXNlcyB0aGUgZW50cnkgZnJvbSB0aGUgbWFwLiBUaGlzCitzZXBhcmF0ZXMgdGltaW5n cyB0byBlcmFzZSB0aGUgbWFwIGVudHJ5IGFuZCB0byBkZXN0cm95IHRoZSBvYmplY3QgaG9zdCwK K3NvIHRoZSBjcmFzaCBzaG91bGQgbm8gbG9uZ2VyIGhhcHBlbi4KKworQnVnOiAxMDU2NTk4CitD aGFuZ2UtSWQ6IElkMzA2NTRjYjU3NWJjNTU3YzQyMDQ0ZDZmMGM2ZjFmOWJmYWVkNjEzCitSZXZp ZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9t aXVtL3NyYy8rLzIwOTQ0OTYKK1Jldmlld2VkLWJ5OiBNYWtvdG8gU2hpbWF6dSA8c2hpbWF6dUBj aHJvbWl1bS5vcmc+CitDb21taXQtUXVldWU6IEhpcm9raSBOYWthZ2F3YSA8bmhpcm9raUBjaHJv bWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzY2Nzcw fQorLS0tCisgLi4uL3NlcnZpY2Vfd29ya2VyX2NvbnRhaW5lcl9ob3N0LmNjICAgICAgICAgIHwg MTAgKysrKysKKyAuLi4vc2VydmljZV93b3JrZXJfb2JqZWN0X2hvc3RfdW5pdHRlc3QuY2MgICAg fCAzOCArKysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25z KCspCisKK2RpZmYgLS1naXQgYS9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93b3JrZXIvc2Vydmlj ZV93b3JrZXJfY29udGFpbmVyX2hvc3QuY2MgYi9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93b3Jr ZXIvc2VydmljZV93b3JrZXJfY29udGFpbmVyX2hvc3QuY2MKK2luZGV4IGVjN2ZiMTQ0OWFmLi45 OGM2MjA5M2IwZSAxMDA2NDQKKy0tLSBhL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9z ZXJ2aWNlX3dvcmtlcl9jb250YWluZXJfaG9zdC5jYworKysrIGIvY29udGVudC9icm93c2VyL3Nl cnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRhaW5lcl9ob3N0LmNjCitAQCAtNjY5LDYg KzY2OSwxNiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXJIb3N0OjpSZW1vdmVTZXJ2aWNl V29ya2VyT2JqZWN0SG9zdCgKKyAgICAgaW50NjRfdCB2ZXJzaW9uX2lkKSB7CisgICBEQ0hFQ0tf Q1VSUkVOVExZX09OKFNlcnZpY2VXb3JrZXJDb250ZXh0OjpHZXRDb3JlVGhyZWFkSWQoKSk7Cisg ICBEQ0hFQ0soYmFzZTo6Q29udGFpbnMoc2VydmljZV93b3JrZXJfb2JqZWN0X2hvc3RzXywgdmVy c2lvbl9pZCkpOworKworKyAgLy8gU2VydmljZVdvcmtlck9iamVjdEhvc3QgdG8gYmUgZGVsZXRl ZCBtYXkgaGF2ZSB0aGUgbGFzdCByZWZlcmVuY2UgdG8KKysgIC8vIFNlcnZpY2VXb3JrZXJWZXJz aW9uIHRoYXQgaW5kaXJlY3RseSBvd25zIHRoaXMgU2VydmljZVdvcmtlckNvbnRhaW5lckhvc3Qu CisrICAvLyBJZiB3ZSBlcmFzZSB0aGUgb2JqZWN0IGhvc3QgZGlyZWN0bHkgZnJvbSB0aGUgbWFw LCB8dGhpc3wgY291bGQgYmUgZGVsZXRlZAorKyAgLy8gZHVyaW5nIHRoZSBtYXAgb3BlcmF0aW9u IGFuZCBtYXkgY3Jhc2guIFRvIGF2b2lkIHRoZSBjYXNlLCB3ZSB0YWtlIHRoZQorKyAgLy8gb3du ZXJzaGlwIG9mIHRoZSBvYmplY3QgaG9zdCBmcm9tIHRoZSBtYXAgZmlyc3QsIGFuZCB0aGVuIGVy YXNlIHRoZSBlbnRyeQorKyAgLy8gZnJvbSB0aGUgbWFwLiBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20v MTA1NjU5OCBmb3IgZGV0YWlscy4KKysgIHN0ZDo6dW5pcXVlX3B0cjxTZXJ2aWNlV29ya2VyT2Jq ZWN0SG9zdD4gdG9fYmVfZGVsZXRlZCA9CisrICAgICAgc3RkOjptb3ZlKHNlcnZpY2Vfd29ya2Vy X29iamVjdF9ob3N0c19bdmVyc2lvbl9pZF0pOworKyAgRENIRUNLKHRvX2JlX2RlbGV0ZWQpOwor ICAgc2VydmljZV93b3JrZXJfb2JqZWN0X2hvc3RzXy5lcmFzZSh2ZXJzaW9uX2lkKTsKKyB9Cisg CitkaWZmIC0tZ2l0IGEvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29y a2VyX29iamVjdF9ob3N0X3VuaXR0ZXN0LmNjIGIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29y a2VyL3NlcnZpY2Vfd29ya2VyX29iamVjdF9ob3N0X3VuaXR0ZXN0LmNjCitpbmRleCA0MDhkN2Mx ZjlkMS4uNmVhYjU5MDQwYWIgMTAwNjQ0CistLS0gYS9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93 b3JrZXIvc2VydmljZV93b3JrZXJfb2JqZWN0X2hvc3RfdW5pdHRlc3QuY2MKKysrKyBiL2NvbnRl bnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9vYmplY3RfaG9zdF91bml0 dGVzdC5jYworQEAgLTIwMCw2ICsyMDAsMTkgQEAgY2xhc3MgU2VydmljZVdvcmtlck9iamVjdEhv c3RUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworICAgICByZXR1cm4gcmVnaXN0cmF0aW9u X2luZm87CisgICB9CisgCisrICB2b2lkIENhbGxPbkNvbm5lY3Rpb25FcnJvcihTZXJ2aWNlV29y a2VyQ29udGFpbmVySG9zdCogY29udGFpbmVyX2hvc3QsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQ2NF90IHZlcnNpb25faWQpIHsKKysgICAgLy8gU2VydmljZVdvcmtlck9iamVj dEhvc3QgaGFzIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGUgdmVyc2lvbi4KKysgICAgU2Vydmlj ZVdvcmtlck9iamVjdEhvc3QqIG9iamVjdF9ob3N0ID0KKysgICAgICAgIEdldFNlcnZpY2VXb3Jr ZXJPYmplY3RIb3N0KGNvbnRhaW5lcl9ob3N0LCB2ZXJzaW9uX2lkKTsKKysgICAgRVhQRUNUX1RS VUUob2JqZWN0X2hvc3QtPnZlcnNpb25fLT5IYXNPbmVSZWYoKSk7CisrCisrICAgIC8vIE1ha2Ug c3VyZSB0aGF0IE9uQ29ubmVjdGlvbkVycm9yIGluZHVjZXMgZGVzdHJ1Y3Rpb24gb2YgdGhlIHZl cnNpb24gYW5kCisrICAgIC8vIHRoZSBvYmplY3QgaG9zdC4KKysgICAgb2JqZWN0X2hvc3QtPnJl Y2VpdmVyc18uQ2xlYXIoKTsKKysgICAgb2JqZWN0X2hvc3QtPk9uQ29ubmVjdGlvbkVycm9yKCk7 CisrICB9CisrCisgICBCcm93c2VyVGFza0Vudmlyb25tZW50IHRhc2tfZW52aXJvbm1lbnRfOwor ICAgc3RkOjp1bmlxdWVfcHRyPEVtYmVkZGVkV29ya2VyVGVzdEhlbHBlcj4gaGVscGVyXzsKKyAg IHNjb3BlZF9yZWZwdHI8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gcmVnaXN0cmF0aW9uXzsK K0BAIC00MDksNSArNDIyLDMwIEBAIFRFU1RfRihTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdFRlc3Qs IERpc3BhdGNoRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudF9Gcm9tQ2xpZW50KSB7CisgICAgICAgICAg ICAgZXZlbnRzWzBdLT5zb3VyY2VfaW5mb19mb3JfY2xpZW50LT5jbGllbnRfdHlwZSk7CisgfQor IAorKy8vIFRoaXMgaXMgYSByZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vY3JidWcuY29tLzEw NTY1OTguCisrVEVTVF9GKFNlcnZpY2VXb3JrZXJPYmplY3RIb3N0VGVzdCwgT25Db25uZWN0aW9u RXJyb3IpIHsKKysgIGNvbnN0IEdVUkwgc2NvcGUoImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tLyIp OworKyAgY29uc3QgR1VSTCBzY3JpcHRfdXJsKCJodHRwczovL3d3dy5leGFtcGxlLmNvbS9zZXJ2 aWNlX3dvcmtlci5qcyIpOworKyAgSW5pdGlhbGl6ZShzdGQ6Om1ha2VfdW5pcXVlPEVtYmVkZGVk V29ya2VyVGVzdEhlbHBlcj4oYmFzZTo6RmlsZVBhdGgoKSkpOworKyAgU2V0VXBSZWdpc3RyYXRp b24oc2NvcGUsIHNjcmlwdF91cmwpOworKworKyAgLy8gQ3JlYXRlIHRoZSBwcm92aWRlciBob3N0 LgorKyAgQVNTRVJUX0VRKGJsaW5rOjpTZXJ2aWNlV29ya2VyU3RhdHVzQ29kZTo6a09rLAorKyAg ICAgICAgICAgIFN0YXJ0U2VydmljZVdvcmtlcih2ZXJzaW9uXy5nZXQoKSkpOworKworKyAgLy8g U2V0IHVwIHRoZSBjYXNlIHdoZXJlIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGUgdmVyc2lvbiBp cyBvd25lZCBieSB0aGUKKysgIC8vIHNlcnZpY2Ugd29ya2VyIG9iamVjdCBob3N0LgorKyAgU2Vy dmljZVdvcmtlckNvbnRhaW5lckhvc3QqIGNvbnRhaW5lcl9ob3N0ID0KKysgICAgICB2ZXJzaW9u Xy0+cHJvdmlkZXJfaG9zdCgpLT5jb250YWluZXJfaG9zdCgpOworKyAgU2VydmljZVdvcmtlclZl cnNpb24qIHZlcnNpb25fcmF3cHRyID0gdmVyc2lvbl8uZ2V0KCk7CisrICB2ZXJzaW9uXyA9IG51 bGxwdHI7CisrICBBU1NFUlRfVFJVRSh2ZXJzaW9uX3Jhd3B0ci0+SGFzT25lUmVmKCkpOworKwor KyAgLy8gU2ltdWxhdGUgdGhlIGNvbm5lY3Rpb24gZXJyb3IgdGhhdCBpbmR1Y2VzIHRoZSBvYmpl Y3QgaG9zdCBkZXN0cnVjdGlvbi4KKysgIC8vIFRoaXMgc2hvdWxkbid0IGNyYXNoLgorKyAgQ2Fs bE9uQ29ubmVjdGlvbkVycm9yKGNvbnRhaW5lcl9ob3N0LCB2ZXJzaW9uX3Jhd3B0ci0+dmVyc2lv bl9pZCgpKTsKKysgIGJhc2U6OlJ1bkxvb3AoKS5SdW5VbnRpbElkbGUoKTsKKyt9CisrCisgfSAg Ly8gbmFtZXNwYWNlIHNlcnZpY2Vfd29ya2VyX29iamVjdF9ob3N0X3VuaXR0ZXN0CisgfSAgLy8g bmFtZXNwYWNlIGNvbnRlbnQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBhdGNoLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwu cGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY2N2I0 YTdhMDBjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwx NSBAQAorLS0tIGEvYnVpbGQvY29uZmlnL3VpLmduaQkyMDIwLTA2LTI1IDAwOjM5OjI4LjAwMDAw MDAwMCArMDIwMAorKysrIC0JMjAyMC0wOC0yMiAxODowMTowMS4xODI3NDk3MjYgKzAyMDAKK0BA IC00Nyw4ICs0NywxMCBAQAorICMgTWFrZSBzdXJlIGdsaWIgaXMgbm90IHVzZWQgaWYgYnVpbGRp bmcgZm9yIENocm9tZU9TL0Nocm9tZWNhc3QKKyBhc3NlcnQoIXVzZV9nbGliIHx8IChpc19saW51 eCAmJiAhaXNfY2hyb21lb3MgJiYgIWlzX2Nocm9tZWNhc3QpKQorIAorLSMgV2hldGhlciB0byB1 c2UgYXRrLCB0aGUgQWNjZXNzaWJpbGl0eSBUb29sS2l0IGxpYnJhcnkKKy11c2VfYXRrID0gaXNf ZGVza3RvcF9saW51eCAmJiAhaXNfY2hyb21lY2FzdCAmJiB1c2VfZ2xpYgorK2RlY2xhcmVfYXJn cygpIHsKKysgICMgV2hldGhlciB0byB1c2UgYXRrLCB0aGUgQWNjZXNzaWJpbGl0eSBUb29sS2l0 IGxpYnJhcnkKKysgIHVzZV9hdGsgPSBpc19kZXNrdG9wX2xpbnV4ICYmICFpc19jaHJvbWVjYXN0 ICYmIHVzZV9nbGliCisrfQorICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisgIyAgIFBMRUFTRSBETyBOT1QgQUREIE1PUkUgRkxBR1MgVE8gVEhJUyBGSUxF CisgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2xlYW4tdXAt YS1jYWxsLXRvLXNldF91dGY4LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1jbGVhbi11cC1hLWNhbGwtdG8tc2V0X3V0ZjgucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAxMzg0YzAzOTQxCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jbGVhbi11cC1hLWNh bGwtdG8tc2V0X3V0ZjgucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSBlZGUzOTBhMGIxOGU0 NTY1YWJmOGFjMWUxZmY3MTdlMWQ0M2ZjMzIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogUGF1bCBXYW5rYWRpYSA8anVueWVyQGNocm9taXVtLm9yZz4KK0RhdGU6IFR1ZSwgMTQgQXBy IDIwMjAgMTY6NTQ6NTEgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gQ2xlYW4gdXAgYSBjYWxsIHRv IHNldF91dGY4KCkuCisKK1RoaXMgaXMgcGFydCBvZiBhbiBlZmZvcnQgdG8gcmV3cml0ZSBjYWxs cyB0byB1dGY4KCkgYW5kIHNldF91dGY4KCkKKyhpbiBSRTI6Ok9wdGlvbnMpIGFzIGNhbGxzIHRv IGVuY29kaW5nKCkgYW5kIHNldF9lbmNvZGluZygpLAorcmVzcGVjdGl2ZWx5LiB1dGY4KCkgYW5k IHNldF91dGY4KCkgaGF2ZSBiZWVuIG1hcmtlZCBhcyB0aGUgImxlZ2FjeSIKK2ludGVyZmFjZSBz aW5jZSAyMDA4LCBzbyBpdCBpcyBsb25nIHBhc3QgdGltZSB0aGF0IHdlIGdldCByaWQgb2YgdGhl bS4KKworUj1wYXJhc3Rvb2dAZ29vZ2xlLmNvbQorCitDaGFuZ2UtSWQ6IEk2MmM0OGNkNTc1YTU1 YjUxOWQ1MjY0ZWQ4NTdmOTI3YzE2MzA2OGIyCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1 bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIxNDUyNjEKK1Jldmll d2VkLWJ5OiBQYXJhc3RvbyBHZXJhbm1heWVoIDxwYXJhc3Rvb2dAZ29vZ2xlLmNvbT4KK0NvbW1p dC1RdWV1ZTogUGF1bCBXYW5rYWRpYSA8anVueWVyQGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Q b3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3NTg4ODZ9CistLS0KKyBjb21wb25lbnRzL2F1 dG9maWxsL2NvcmUvYnJvd3Nlci9hZGRyZXNzX3Jld3JpdGVyLmNjIHwgMiArLQorIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY29t cG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvYWRkcmVzc19yZXdyaXRlci5jYyBiL2NvbXBv bmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2FkZHJlc3NfcmV3cml0ZXIuY2MKK2luZGV4IDFi ODVhNTA5NzRjLi4wMzBhNWFiYTE0NiAxMDA2NDQKKy0tLSBhL2NvbXBvbmVudHMvYXV0b2ZpbGwv Y29yZS9icm93c2VyL2FkZHJlc3NfcmV3cml0ZXIuY2MKKysrKyBiL2NvbXBvbmVudHMvYXV0b2Zp bGwvY29yZS9icm93c2VyL2FkZHJlc3NfcmV3cml0ZXIuY2MKK0BAIC01Nyw3ICs1Nyw3IEBAIHZv aWQgQ29tcGlsZVJ1bGVzRnJvbURhdGEoY29uc3Qgc3RkOjpzdHJpbmcmIGRhdGFfc3RyaW5nLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGlsZWRSdWxlVmVjdG9yKiBjb21waWxlZF9y dWxlcykgeworICAgYmFzZTo6U3RyaW5nUGllY2UgZGF0YSA9IGRhdGFfc3RyaW5nOworICAgcmUy OjpSRTI6Ok9wdGlvbnMgb3B0aW9uczsKKy0gIG9wdGlvbnMuc2V0X3V0ZjgodHJ1ZSk7CisrICBv cHRpb25zLnNldF9lbmNvZGluZyhSRTI6Ok9wdGlvbnM6OkVuY29kaW5nVVRGOCk7CisgICBvcHRp b25zLnNldF93b3JkX2JvdW5kYXJ5KHRydWUpOworIAorICAgc2l6ZV90IHRva2VuX2VuZCA9IDA7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZm bXBlZy00LjMucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVt LWZmbXBlZy00LjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjZhYmI4ODZhYjk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1mZm1wZWctNC4zLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKK2RpZmYg LS1naXQgYS9tZWRpYS9iYXNlL21lZGlhLmNjIGIvbWVkaWEvYmFzZS9tZWRpYS5jYworaW5kZXgg YzI4MmVlNDlhMDMuLmEyOThiNDBjNzliIDEwMDY0NAorLS0tIGEvbWVkaWEvYmFzZS9tZWRpYS5j YworKysrIGIvbWVkaWEvYmFzZS9tZWRpYS5jYworQEAgLTE0LDYgKzE0LDcgQEAKKyAjaW5jbHVk ZSAidGhpcmRfcGFydHkvbGlieXV2L2luY2x1ZGUvbGlieXV2LmgiCisgCisgI2lmIEJVSUxERkxB RyhFTkFCTEVfRkZNUEVHKQorKyNpbmNsdWRlIDxsaW1pdHM+CisgI2luY2x1ZGUgInRoaXJkX3Bh cnR5L2ZmbXBlZy9mZm1wZWdfZmVhdHVyZXMuaCIgIC8vIG5vZ25jaGVjaworIGV4dGVybiAiQyIg eworICNpbmNsdWRlIDxsaWJhdnV0aWwvY3B1Lmg+CitAQCAtNDEsNyArNDIsNyBAQCBjbGFzcyBN ZWRpYUluaXRpYWxpemVyIHsKKyAKKyAjaWYgQlVJTERGTEFHKFVTRV9BTExPQ0FUT1JfU0hJTSkK KyAgICAgLy8gUmVtb3ZlIGFsbG9jYXRpb24gbGltaXQgZnJvbSBmZm1wZWcsIHNvIGNhbGxzIGdv IGRvd24gdG8gc2hpbSBsYXllci4KKy0gICAgYXZfbWF4X2FsbG9jKDApOworKyAgICBhdl9tYXhf YWxsb2Moc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgI2VuZGlmICAvLyBC VUlMREZMQUcoVVNFX0FMTE9DQVRPUl9TSElNKQorIAorICNlbmRpZiAgLy8gQlVJTERGTEFHKEVO QUJMRV9GRk1QRUcpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVz L2Nocm9taXVtLWluY2x1ZGUtbWVtb3J5LWhlYWRlci10by1nZXQtdGhlLWRlZmluaXRpb24tb2Yt c3RkLXUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWlu Y2x1ZGUtbWVtb3J5LWhlYWRlci10by1nZXQtdGhlLWRlZmluaXRpb24tb2Ytc3RkLXUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmViMzBhZDI0MzdmCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1p bmNsdWRlLW1lbW9yeS1oZWFkZXItdG8tZ2V0LXRoZS1kZWZpbml0aW9uLW9mLXN0ZC11LnBhdGNo CkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNDBkOTk0ZTRhYTJlNGQ1MDc3YzE4MTBlNDYyMzU0OTYx OGExOWMwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBpb3RyIFR3b3JlayA8cHR3 b3Jla0B2ZXdkLmNvbT4KK0RhdGU6IE1vbiwgMjcgQXByIDIwMjAgMTY6MzE6NDYgKzAwMDAKK1N1 YmplY3Q6IFtQQVRDSF0gSW5jbHVkZSAibWVtb3J5IiBoZWFkZXIgdG8gZ2V0IHRoZSBkZWZpbml0 aW9uIG9mCisgc3RkOjp1bmlxdWVfcHRyLgorCitSaWdodCBub3cgdGhlIGNvZGUgaW0gdGhlIGFm ZmVjdGVkIGZhaWxzIHRvIGJ1aWxkIHdoZW4gdXNpbmcgbGlic3RkYysrCitpbnN0ZWFkIG9mIGJ1 bmRsZWQgbGliY3h4LiBBcHBhcmVudGx5IGxpYmN4eCBwdWxscyB0aGUgbmVjZXNzYXJ5IGhlYWRl cgoraW5kaXJlY3RseS4KKworQ2hhbmdlLUlkOiBJZTVlODZmMjI4NDM0YWIxNmQ2MjJhZTdhOTEy ZDljZTYwNzI1ODkzMQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2ds ZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMTY0NjQ1CitSZXZpZXdlZC1ieTogSm9jaGVu IEVpc2luZ2VyIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBKb2NoZW4gRWlz aW5nZXIgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVh ZHMvbWFzdGVyQHsjNzYyODgxfQorLS0tCisgLi4uL2JsaW5rL3JlbmRlcmVyL2NvcmUvaHRtbC90 cnVzdF90b2tlbl9hdHRyaWJ1dGVfcGFyc2luZy5oICAgIHwgMiArKworIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL2NvcmUvaHRtbC90cnVzdF90b2tlbl9hdHRyaWJ1dGVfcGFyc2luZy5oIGIvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvY29yZS9odG1sL3RydXN0X3Rva2VuX2F0dHJpYnV0ZV9wYXJzaW5n LmgKK2luZGV4IGY1YTdhYjAzODkyLi5lZjE5Y2ZhZjY4MCAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvaHRtbC90cnVzdF90b2tlbl9hdHRyaWJ1dGVfcGFyc2lu Zy5oCisrKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2h0bWwvdHJ1c3RfdG9r ZW5fYXR0cmlidXRlX3BhcnNpbmcuaAorQEAgLTUsNiArNSw4IEBACisgI2lmbmRlZiBUSElSRF9Q QVJUWV9CTElOS19SRU5ERVJFUl9DT1JFX0hUTUxfVFJVU1RfVE9LRU5fQVRUUklCVVRFX1BBUlNJ TkdfSF8KKyAjZGVmaW5lIFRISVJEX1BBUlRZX0JMSU5LX1JFTkRFUkVSX0NPUkVfSFRNTF9UUlVT VF9UT0tFTl9BVFRSSUJVVEVfUEFSU0lOR19IXworIAorKyNpbmNsdWRlIDxtZW1vcnk+CisrCisg I2luY2x1ZGUgImJhc2Uvb3B0aW9uYWwuaCIKKyAjaW5jbHVkZSAic2VydmljZXMvbmV0d29yay9w dWJsaWMvbW9qb20vdHJ1c3RfdG9rZW5zLm1vam9tLWJsaW5rLWZvcndhcmQuaCIKKyAjaW5jbHVk ZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9jb3JlX2V4cG9ydC5oIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1pd3l1LXN0ZC1u dW1lcmljX2xpbWl0cy1pcy1kZWZpbmVkLWluLWxpbWl0cy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0taXd5dS1zdGQtbnVtZXJpY19saW1pdHMtaXMtZGVm aW5lZC1pbi1saW1pdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjM5YmU0MTAwMmE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS1pd3l1LXN0ZC1udW1lcmljX2xpbWl0cy1pcy1kZWZpbmVkLWlu LWxpbWl0cy5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDc0Zjc2YTZiZTM4NWVmMDU2YjBi ZTIzNjJjMzJjNzI4MTQxY2NhMTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTdGVw aGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRlOiBGcmksIDE3IEFwciAy MDIwIDE2OjA0OjEyICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIElXWVU6IHN0ZDo6bnVtZXJpY19s aW1pdHMgaXMgZGVmaW5lZCBpbiBsaW1pdHMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKKworQ2hhbmdlLUlkOiBJZmJjMzc5YWRjNWJiNzI0MmMyMWU3ZGEwYmNmYzI4ZjQ5ZTRk ZDA2ZgorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5j b20vYy9jaHJvbWl1bS9zcmMvKy8yMTUzMTExCitSZXZpZXdlZC1ieTogRnJhbsOnb2lzIERvcmF5 IDxmZG9yYXlAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBGcmFuw6dvaXMgRG9yYXkgPGZk b3JheUBjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVy QHsjNzYwMDc1fQorLS0tCisgLi4uL2dyYXBoL3BvbGljaWVzL2JhY2tncm91bmRfdGFiX2xvYWRp bmdfcG9saWN5X2hlbHBlcnMuY2MgICAgICB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dzZXIvcGVyZm9ybWFuY2VfbWFuYWdl ci9ncmFwaC9wb2xpY2llcy9iYWNrZ3JvdW5kX3RhYl9sb2FkaW5nX3BvbGljeV9oZWxwZXJzLmNj IGIvY2hyb21lL2Jyb3dzZXIvcGVyZm9ybWFuY2VfbWFuYWdlci9ncmFwaC9wb2xpY2llcy9iYWNr Z3JvdW5kX3RhYl9sb2FkaW5nX3BvbGljeV9oZWxwZXJzLmNjCitpbmRleCA0ODgxYzAxMGJiOS4u NTkzNTAxZDE2YTcgMTAwNjQ0CistLS0gYS9jaHJvbWUvYnJvd3Nlci9wZXJmb3JtYW5jZV9tYW5h Z2VyL2dyYXBoL3BvbGljaWVzL2JhY2tncm91bmRfdGFiX2xvYWRpbmdfcG9saWN5X2hlbHBlcnMu Y2MJMjAyMC0wNi0yNSAwMDozOTozMS4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMjAtMDgtMjIg MTg6MzM6NTUuODc5NDY0ODIwICswMjAwCitAQCAtMyw2ICszLDcgQEAKKyAvLyBmb3VuZCBpbiB0 aGUgTElDRU5TRSBmaWxlLgorIAorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9wZXJmb3JtYW5j ZV9tYW5hZ2VyL2dyYXBoL3BvbGljaWVzL2JhY2tncm91bmRfdGFiX2xvYWRpbmdfcG9saWN5X2hl bHBlcnMuaCIKKysjaW5jbHVkZSA8bGltaXRzPgorICNpbmNsdWRlICJiYXNlL2xvZ2dpbmcuaCIK KyAKKyBuYW1lc3BhY2UgcGVyZm9ybWFuY2VfbWFuYWdlciB7CmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoIGIvc3Jj cGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJjX21hbGxvYy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjdjZDJjZWZjNDYKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxp YmNfbWFsbG9jLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKKy0tLSBhL2Jhc2UvcHJvY2Vzcy9tZW1v cnlfbGludXguY2Mub3JpZwkyMDE3LTA5LTE1IDA4OjQxOjQzLjAwMDAwMDAwMCArMDAwMAorKysr IGIvYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYwkyMDE3LTA5LTE1IDA4OjQ0OjM5LjgwNDk5 NTQ2OSArMDAwMAorQEAgLTIxLDYgKzIxLDEyIEBACisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3Rj bWFsbG9jL2Nocm9taXVtL3NyYy9ncGVyZnRvb2xzL3RjbWFsbG9jLmgiCisgI2VuZGlmCisgCisr I2lmIGRlZmluZWQoTElCQ19HTElCQykKKytleHRlcm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19s aWJjX21hbGxvYyhzaXplX3Qgc2l6ZSk7CisrfQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNl IHsKKyAKKyBzaXplX3QgZ19vb21fc2l6ZSA9IDBVOworLS0tIGEvYmFzZS9wcm9jZXNzL21lbW9y eV9saW51eC5jYy5vcmlnCTIwMTctMDktMTUgMDg6NDY6NTUuMDAwMDAwMDAwICswMDAwCisrKysg Yi9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCTIwMTctMDktMTUgMDg6NTE6MzQuNDIyMDE2 ODU4ICswMDAwCitAQCAtMTA3LDcgKzEwNyw3IEBACisgICAgICghZGVmaW5lZChMSUJDX0dMSUJD KSAmJiAhZGVmaW5lZChVU0VfVENNQUxMT0MpKQorICAgKnJlc3VsdCA9IG1hbGxvYyhzaXplKTsK KyAjZWxpZiBkZWZpbmVkKExJQkNfR0xJQkMpICYmICFkZWZpbmVkKFVTRV9UQ01BTExPQykKKy0g ICpyZXN1bHQgPSBfX2xpYmNfbWFsbG9jKHNpemUpOworKyAgKnJlc3VsdCA9IDo6X19saWJjX21h bGxvYyhzaXplKTsKKyAjZWxpZiBkZWZpbmVkKFVTRV9UQ01BTExPQykKKyAgICpyZXN1bHQgPSB0 Y19tYWxsb2Nfc2tpcF9uZXdfaGFuZGxlcihzaXplKTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGlic3RkYy1maXgtaW5jb21w bGV0ZS10eXBlLWluLUFYVHJlZS1mb3ItTm9kZVNldFNpei5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGlic3RkYy1maXgtaW5jb21wbGV0ZS10eXBlLWlu LUFYVHJlZS1mb3ItTm9kZVNldFNpei5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNWU5ZDM3YWFlNTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYnN0ZGMtZml4LWluY29tcGxldGUtdHlwZS1p bi1BWFRyZWUtZm9yLU5vZGVTZXRTaXoucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorRnJvbSBhZWVm Njg4ODhkNGMwMGI2OWZhY2VhZDJiOTM0MDk1YThjZDE3MzI5IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgorRGF0 ZTogTW9uLCAyMCBBcHIgMjAyMCAxODoyMTo0MyArMDAwMAorU3ViamVjdDogW1BBVENIXSBsaWJz dGRjKys6IGZpeCBpbmNvbXBsZXRlLXR5cGUgaW4gQVhUcmVlIGZvcgorIE5vZGVTZXRTaXplUG9z SW5TZXRJbmZvCisKK2hhcyBvbmx5IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgTm9kZVNldFNpemVQ b3NJblNldEluZm8uIFRoZXJlZm9yZSwKK21vdmUgZGVjbGFyYXRpb24gZnJvbSBheF90cmVlLmNj LgorCitzdGQ6IDp1bm9yZGVyZWRfbWFwPFQsIFU+IHJlcXVpcmVzIFUgdG8gYmUgZnVsbHkgZGVj bGFyZWQuIGF4X3RyZWUuaAorQnVnOiA5NTc1MTkKK0NoYW5nZS1JZDogSWMxZjRiZjNlYmZlYTIy OWVjZTg0MjUxZTQ2ZDQ0NjFiMzE4NzM4NjgKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVt LXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjEzMjQwMworUmV2aWV3 ZWQtYnk6IERhdmlkIFRzZW5nIDxkdHNlbmdAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBE YXZpZCBUc2VuZyA8ZHRzZW5nQGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVm cy9oZWFkcy9tYXN0ZXJAeyM3NjA1ODh9CistLS0KKyB1aS9hY2Nlc3NpYmlsaXR5L2F4X3RyZWUu Y2MgfCAxMCArKy0tLS0tLS0tCisgdWkvYWNjZXNzaWJpbGl0eS9heF90cmVlLmggIHwgIDkgKysr KysrKystCisgMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvdWkvYWNjZXNzaWJpbGl0eS9heF90cmVlLmNjIGIvdWkvYWNjZXNz aWJpbGl0eS9heF90cmVlLmNjCitpbmRleCA3YjhkOWIxYjE2MS4uZTkxNTQwMjhkNjYgMTAwNjQ0 CistLS0gYS91aS9hY2Nlc3NpYmlsaXR5L2F4X3RyZWUuY2MKKysrKyBiL3VpL2FjY2Vzc2liaWxp dHkvYXhfdHJlZS5jYworQEAgLTU2NywxNCArNTY3LDggQEAgc3RydWN0IEFYVHJlZVVwZGF0ZVN0 YXRlIHsKKyAgIGNvbnN0IEFYVHJlZSYgdHJlZTsKKyB9OworIAorLXN0cnVjdCBBWFRyZWU6Ok5v ZGVTZXRTaXplUG9zSW5TZXRJbmZvIHsKKy0gIE5vZGVTZXRTaXplUG9zSW5TZXRJbmZvKCkgPSBk ZWZhdWx0OworLSAgfk5vZGVTZXRTaXplUG9zSW5TZXRJbmZvKCkgPSBkZWZhdWx0OworLQorLSAg aW50MzJfdCBwb3NfaW5fc2V0ID0gMDsKKy0gIGludDMyX3Qgc2V0X3NpemUgPSAwOworLSAgYmFz ZTo6T3B0aW9uYWw8aW50PiBsb3dlc3RfaGllcmFyY2hpY2FsX2xldmVsOworLX07CisrQVhUcmVl OjpOb2RlU2V0U2l6ZVBvc0luU2V0SW5mbzo6Tm9kZVNldFNpemVQb3NJblNldEluZm8oKSA9IGRl ZmF1bHQ7CisrQVhUcmVlOjpOb2RlU2V0U2l6ZVBvc0luU2V0SW5mbzo6fk5vZGVTZXRTaXplUG9z SW5TZXRJbmZvKCkgPSBkZWZhdWx0OworIAorIHN0cnVjdCBBWFRyZWU6Ok9yZGVyZWRTZXRDb250 ZW50IHsKKyAgIGV4cGxpY2l0IE9yZGVyZWRTZXRDb250ZW50KGNvbnN0IEFYTm9kZSogb3JkZXJl ZF9zZXQgPSBudWxscHRyKQorZGlmZiAtLWdpdCBhL3VpL2FjY2Vzc2liaWxpdHkvYXhfdHJlZS5o IGIvdWkvYWNjZXNzaWJpbGl0eS9heF90cmVlLmgKK2luZGV4IGE1MWNhOGRlNGM4Li44YzFjNTc1 MTdhYyAxMDA2NDQKKy0tLSBhL3VpL2FjY2Vzc2liaWxpdHkvYXhfdHJlZS5oCisrKysgYi91aS9h Y2Nlc3NpYmlsaXR5L2F4X3RyZWUuaAorQEAgLTMyOCw3ICszMjgsMTQgQEAgY2xhc3MgQVhfRVhQ T1JUIEFYVHJlZSA6IHB1YmxpYyBBWE5vZGU6Ok93bmVyVHJlZSB7CisgICBib29sIGVuYWJsZV9l eHRyYV9tYWNfbm9kZXNfID0gZmFsc2U7CisgCisgICAvLyBDb250YWlucyBwb3NfaW5fc2V0IGFu ZCBzZXRfc2l6ZSBkYXRhIGZvciBhbiBBWE5vZGUuCistICBzdHJ1Y3QgTm9kZVNldFNpemVQb3NJ blNldEluZm87CisrICBzdHJ1Y3QgTm9kZVNldFNpemVQb3NJblNldEluZm8geworKyAgICBOb2Rl U2V0U2l6ZVBvc0luU2V0SW5mbygpOworKyAgICB+Tm9kZVNldFNpemVQb3NJblNldEluZm8oKTsK KysKKysgICAgaW50MzJfdCBwb3NfaW5fc2V0ID0gMDsKKysgICAgaW50MzJfdCBzZXRfc2l6ZSA9 IDA7CisrICAgIGJhc2U6Ok9wdGlvbmFsPGludD4gbG93ZXN0X2hpZXJhcmNoaWNhbF9sZXZlbDsK KysgIH07CisgCisgICAvLyBSZXByZXNlbnRzIHRoZSBjb250ZW50IG9mIGFuIG9yZGVyZWQgc2V0 IHdoaWNoIGluY2x1ZGVzIHRoZSBvcmRlcmVkIHNldAorICAgLy8gaXRlbXMgYW5kIHRoZSBvcmRl cmVkIHNldCBjb250YWluZXIgaWYgaXQgZXhpc3RzLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tYWtlLXNvbWUtb2YtYmxpbmstY3VzdG9tLWl0 ZXJhdG9ycy1TVEwtY29tcGF0aWJsZS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tbWFrZS1zb21lLW9mLWJsaW5rLWN1c3RvbS1pdGVyYXRvcnMtU1RMLWNv bXBhdGlibGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMw Y2JkZWZjYzY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1tYWtlLXNvbWUtb2YtYmxpbmstY3VzdG9tLWl0ZXJhdG9ycy1TVEwtY29t cGF0aWJsZS5wYXRjaApAQCAtMCwwICsxLDk1IEBACitGcm9tIGQzY2FiYmM3MzIxZDM0OWE5YmZm ZGE0ODJkZjVhZmMwZDRkZjFhYzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQaW90 ciBUd29yZWsgPHB0d29yZWtAdmV3ZC5jb20+CitEYXRlOiBUaHUsIDMwIEFwciAyMDIwIDIxOjMz OjQ3ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIE1ha2Ugc29tZSBvZiBibGluayBjdXN0b20gaXRl cmF0b3JzIFNUTCBjb21wYXRpYmxlLgorCitCbGluayBoYXMgcmVjZW50bHkgc3RhcnRlZCB1c2lu ZyBmdW5jdGlvbnMgbGlrZSBzdGQ6OmFueV9vZiB3aXRoIHNvbWUgb2YKK3RoZSBjdXN0b20gaXRl cmF0b3JzIGl0IHByb3ZpZGVzLiBPbiBMaW51eCB0aGlzIHdvcmtzIGluIHRoZSBkZWZhdWx0Citz ZXR1cCB1c2luZyBsaWJjeHgsIGJ1dCBmYWlscyB3aXRoIGV2ZW4gdGhlIG1vc3QgcmVjZW50IHZl cnNpb25zIG9mCitsaWJzdGRjKysuIEluIGFsbCBjYXNlcyB0aGUgZXJyb3IgbWVzc2FnZSAodGV4 dCBpbiBidWcgcmVwb3J0KSBjb21wbGFpbnMKK2Fib3V0IGxhY2sgb2YgbWF0Y2hpbmcgc3RkOjpf X2l0ZXJhdG9yX2NhdGVnb3J5IGRlZmluaXRpb24uCisKK0Zyb20gd2hhdCBJIHVuZGVyc3RhbmQg dGhlIGVycm9yIG1lc3NhZ2UgaXMgYmFzaWNhbGx5IHNheWluZyB0aG9zZQoraXRlcmF0b3JzIGFy ZSBub3QgU1RMIGNvbXBhdGlibGUgZHVlIHRvIG1pc3NpbmcgdHJhaXRzIGFzIGRlc2NyaWJlZAor aW4gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2l0ZXJhdG9yL2l0ZXJhdG9yX3Ry YWl0cy4gU3VjaAordHJhaXRzIGFyZSBwcm92aWRlZCBieSBjdXN0b20gaXRlcmF0b3JzIGRlZmlu ZWQgaW4gLy9iYXNlLCBvciAvL2NjLgorCitUaGlzIHBhdGNoIGFkZHMgdGhlIG5lY2Vzc2FyeSB0 cmFpdHMgdG8gaXRlcmF0b3JzIHRoYXQgYXJlIGN1cnJlbnRseQorYWZmZWN0ZWQgYnkgdGhpcyBw cm9ibGVtLgorCitCdWc6IDEwNzY4NjkKK0NoYW5nZS1JZDogSTk5NTBhNzEwMGMzMjQ5OWJhOTY2 NDczMTdmYTcwYjg3ZGMyMmVhZjkKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmll dy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjE3NDE5OQorUmV2aWV3ZWQtYnk6 IEtlbnRhcm8gSGFyYSA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CitDb21taXQtUXVldWU6IFBpb3Ry IFR3b3JlayA8cHR3b3Jla0B2ZXdkLmNvbT4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFk cy9tYXN0ZXJAeyM3NjQ0MjZ9CistLS0KKyAuLi4vY29yZS9sYXlvdXQvbmcvbmdfcGh5c2ljYWxf Y29udGFpbmVyX2ZyYWdtZW50LmggIHwgIDYgKysrKysrCisgLi4uL2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL3d0Zi9oYXNoX2l0ZXJhdG9ycy5oICAgICB8IDEyICsrKysrKysrKysrKworIHRoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9oYXNoX3RhYmxlLmggfCAgNiArKysr KysKKyAzIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L25nL25nX3BoeXNpY2FsX2NvbnRh aW5lcl9mcmFnbWVudC5oIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQv bmcvbmdfcGh5c2ljYWxfY29udGFpbmVyX2ZyYWdtZW50LmgKK2luZGV4IDEyNTZlNzdjMTQ2Li44 YjkzMTA3ZjJmYyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUv bGF5b3V0L25nL25nX3BoeXNpY2FsX2NvbnRhaW5lcl9mcmFnbWVudC5oCisrKysgYi90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2xheW91dC9uZy9uZ19waHlzaWNhbF9jb250YWluZXJf ZnJhZ21lbnQuaAorQEAgLTM4LDYgKzM4LDEyIEBAIGNsYXNzIENPUkVfRVhQT1JUIE5HUGh5c2lj YWxDb250YWluZXJGcmFnbWVudCA6IHB1YmxpYyBOR1BoeXNpY2FsRnJhZ21lbnQgeworICAgICAg IFNUQUNLX0FMTE9DQVRFRCgpOworIAorICAgICAgcHVibGljOgorKyAgICAgIHVzaW5nIGl0ZXJh dG9yX2NhdGVnb3J5ID0gc3RkOjpiaWRpcmVjdGlvbmFsX2l0ZXJhdG9yX3RhZzsKKysgICAgICB1 c2luZyB2YWx1ZV90eXBlID0gTkdMaW5rOworKyAgICAgIHVzaW5nIGRpZmZlcmVuY2VfdHlwZSA9 IHB0cmRpZmZfdDsKKysgICAgICB1c2luZyBwb2ludGVyID0gdmFsdWVfdHlwZSo7CisrICAgICAg dXNpbmcgcmVmZXJlbmNlID0gdmFsdWVfdHlwZSY7CisrCisgICAgICAgQ29uc3RJdGVyYXRvcihj b25zdCBOR0xpbmsqIGN1cnJlbnQpIDogY3VycmVudF8oY3VycmVudCkge30KKyAKKyAgICAgICBj b25zdCBOR0xpbmsmIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuICpQb3N0TGF5b3V0T3JDdXJy ZW50KCk7IH0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS93dGYvaGFzaF9pdGVyYXRvcnMuaCBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRm b3JtL3d0Zi9oYXNoX2l0ZXJhdG9ycy5oCitpbmRleCBmOGU2NmU2YmU4NS4uNjAwM2QwMmM1MDkg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvaGFz aF9pdGVyYXRvcnMuaAorKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0v d3RmL2hhc2hfaXRlcmF0b3JzLmgKK0BAIC01Myw2ICs1MywxMiBAQCBzdHJ1Y3QgSGFzaFRhYmxl Q29uc3RJdGVyYXRvckFkYXB0ZXI8SGFzaFRhYmxlVHlwZSwKKyAgIHR5cGVkZWYgSGFzaFRhYmxl Q29uc3RWYWx1ZXNJdGVyYXRvcjxIYXNoVGFibGVUeXBlLCBLZXlUeXBlLCBNYXBwZWRUeXBlPgor ICAgICAgIFZhbHVlc0l0ZXJhdG9yOworIAorKyAgdXNpbmcgaXRlcmF0b3JfY2F0ZWdvcnkgPSBz dGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnOworKyAgdXNpbmcgdmFsdWVfdHlwZSA9IEhh c2hUYWJsZVR5cGU7CisrICB1c2luZyBkaWZmZXJlbmNlX3R5cGUgPSBwdHJkaWZmX3Q7CisrICB1 c2luZyBwb2ludGVyID0gdmFsdWVfdHlwZSo7CisrICB1c2luZyByZWZlcmVuY2UgPSB2YWx1ZV90 eXBlJjsKKysKKyAgIEhhc2hUYWJsZUNvbnN0SXRlcmF0b3JBZGFwdGVyKCkgPSBkZWZhdWx0Owor ICAgSGFzaFRhYmxlQ29uc3RJdGVyYXRvckFkYXB0ZXIoCisgICAgICAgY29uc3QgdHlwZW5hbWUg SGFzaFRhYmxlVHlwZTo6Y29uc3RfaXRlcmF0b3ImIGltcGwpCitAQCAtOTQsNiArMTAwLDEyIEBA IHN0cnVjdCBIYXNoVGFibGVJdGVyYXRvckFkYXB0ZXI8SGFzaFRhYmxlVHlwZSwKKyAgIHR5cGVk ZWYgSGFzaFRhYmxlVmFsdWVzSXRlcmF0b3I8SGFzaFRhYmxlVHlwZSwgS2V5VHlwZSwgTWFwcGVk VHlwZT4KKyAgICAgICBWYWx1ZXNJdGVyYXRvcjsKKyAKKysgIHVzaW5nIGl0ZXJhdG9yX2NhdGVn b3J5ID0gc3RkOjpiaWRpcmVjdGlvbmFsX2l0ZXJhdG9yX3RhZzsKKysgIHVzaW5nIHZhbHVlX3R5 cGUgPSBIYXNoVGFibGVUeXBlOworKyAgdXNpbmcgZGlmZmVyZW5jZV90eXBlID0gcHRyZGlmZl90 OworKyAgdXNpbmcgcG9pbnRlciA9IHZhbHVlX3R5cGUqOworKyAgdXNpbmcgcmVmZXJlbmNlID0g dmFsdWVfdHlwZSY7CisrCisgICBIYXNoVGFibGVJdGVyYXRvckFkYXB0ZXIoKSA9IGRlZmF1bHQ7 CisgICBIYXNoVGFibGVJdGVyYXRvckFkYXB0ZXIoY29uc3QgdHlwZW5hbWUgSGFzaFRhYmxlVHlw ZTo6aXRlcmF0b3ImIGltcGwpCisgICAgICAgOiBpbXBsXyhpbXBsKSB7fQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9oYXNoX3RhYmxlLmggYi90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvaGFzaF90YWJsZS5oCitpbmRl eCBmNTk2ZmI1ZDQxZS4uNWE0NDY4ZDZiZDEgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvaGFzaF90YWJsZS5oCisrKysgYi90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvaGFzaF90YWJsZS5oCitAQCAtMjIwNCw2ICsyMjA0 LDEyIEBAIHN0cnVjdCBIYXNoVGFibGVDb25zdEl0ZXJhdG9yQWRhcHRlciB7CisgICBTVEFDS19B TExPQ0FURUQoKTsKKyAKKyAgcHVibGljOgorKyAgdXNpbmcgaXRlcmF0b3JfY2F0ZWdvcnkgPSBz dGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnOworKyAgdXNpbmcgdmFsdWVfdHlwZSA9IEhh c2hUYWJsZVR5cGU7CisrICB1c2luZyBkaWZmZXJlbmNlX3R5cGUgPSBwdHJkaWZmX3Q7CisrICB1 c2luZyBwb2ludGVyID0gdmFsdWVfdHlwZSo7CisrICB1c2luZyByZWZlcmVuY2UgPSB2YWx1ZV90 eXBlJjsKKysKKyAgIEhhc2hUYWJsZUNvbnN0SXRlcmF0b3JBZGFwdGVyKCkgPSBkZWZhdWx0Owor ICAgSGFzaFRhYmxlQ29uc3RJdGVyYXRvckFkYXB0ZXIoCisgICAgICAgY29uc3QgdHlwZW5hbWUg SGFzaFRhYmxlVHlwZTo6Y29uc3RfaXRlcmF0b3ImIGltcGwpCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNraWEtaGFybW9ueS5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc2tpYS1oYXJtb255LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xY2I4YWViZjI0MAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t c2tpYS1oYXJtb255LnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBhL3RoaXJkX3BhcnR5L3Nr aWEvc3JjL3BvcnRzL1NrRm9udEhvc3RfRnJlZVR5cGUuY3BwLm9yaWcJMjAxOS0wNy0xOSAxMTow ODozNC43NzA5NzI2NjUgKzAwMDAKKysrKyBiL3RoaXJkX3BhcnR5L3NraWEvc3JjL3BvcnRzL1Nr Rm9udEhvc3RfRnJlZVR5cGUuY3BwCTIwMTktMDctMTkgMTE6MDg6NDQuMjc0NDQyMDY1ICswMDAw CitAQCAtMTI4LDkgKzEyOCw5IEBAIHB1YmxpYzoKKyAgICAgICAgIDogZkdldFZhckRlc2lnbkNv b3JkaW5hdGVzKG51bGxwdHIpCisgICAgICAgICAsIGZHZXRWYXJBeGlzRmxhZ3MobnVsbHB0cikK KyAgICAgICAgICwgZkxpYnJhcnkobnVsbHB0cikKKy0gICAgICAgICwgZklzTENEU3VwcG9ydGVk KGZhbHNlKQorKyAgICAgICAgLCBmSXNMQ0RTdXBwb3J0ZWQodHJ1ZSkKKyAgICAgICAgICwgZkxp Z2h0SGludGluZ0lzWU9ubHkoZmFsc2UpCistICAgICAgICAsIGZMQ0RFeHRyYSgwKQorKyAgICAg ICAgLCBmTENERXh0cmEoMikKKyAgICAgeworICAgICAgICAgaWYgKEZUX05ld19MaWJyYXJ5KCZn RlRNZW1vcnksICZmTGlicmFyeSkpIHsKKyAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDEt UmV2ZXJ0LXVpLWZpbGwtaW4tU0RSLUhEUi1EaXNwbGF5Q29sb3JTcGFjZXMtQ3JPUy5wYXRjaCBi L3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwMS1S ZXZlcnQtdWktZmlsbC1pbi1TRFItSERSLURpc3BsYXlDb2xvclNwYWNlcy1Dck9TLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NjE2MzU3Zjg5OQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBz dHJlYW0tMDAwMS1SZXZlcnQtdWktZmlsbC1pbi1TRFItSERSLURpc3BsYXlDb2xvclNwYWNlcy1D ck9TLnBhdGNoCkBAIC0wLDAgKzEsNDM2IEBACitGcm9tIDQ0ZjVkMjU1MjQ1MTUzYWMzZjVhYTRi NjUzMDgxMGNhOTNmZjQ2ZTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWd1ZWwg Q2FzYXMgPG1jYXNhc0BjaHJvbWl1bS5vcmc+CitEYXRlOiBNb24sIDIyIEp1biAyMDIwIDIwOjI0 OjU3ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDEvMTJdIFJldmVydCAidWk6IGZpbGwgaW4gU0RS L0hEUiBEaXNwbGF5Q29sb3JTcGFjZXMsIENyT1MiCisKK1RoaXMgcmV2ZXJ0cyBjb21taXQgMDcx OTlmZjExMWNiM2IzMWRhMDc1MmFkYzYyZmZiZTA1MTAxZGZkZS4KKworU2FpZCBjb21taXQgaW5h ZHZlcnRlbnRseSBpbnN0cnVjdGVkIHRoZSBjb21wb3NpdG9yIHRvIHVzZSB0aGUKK0VESUQtcHJv dmlkZWQgQ29sb3JTcGFjZSBhcyB0YXJnZXQgZm9yIHJhc3RlcmluZywgY2F1c2luZyBjb2xvdXJz Cit0byBiZSBhY2N1cmF0ZSwgYnV0IHdhc2hlZCBvdXQuCisKK09yaWdpbmFsIENvbW1pdCBkZXNj cmlwdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUaGlzIENM IGFkZHMgY29kZSBmb3IgcG9wdWxhdGluZyB0aGUgbmVjZXNzYXJ5IGdmeDo6RGlzcGxheUNvbG9y U3BhY2VzCitpbiBDcmVhdGVNYW5hZ2VkRGlzcGxheUluZm8gZm9yIHN1cHBvcnRpbmcgU0RSIGFu ZCBIRFIgdGFyZ2V0IGNvbG9yCitzcGFjZXMgKGRlcGVuZGluZyBvbiB0aGUgbW9uaXRvciBjYXBh YmlsaXRpZXMgYW5kIHRoZSBiaWcgaGRyIGZsYWcpLgorCitJdCBuZWVkcyBhIHNpYmxpbmcgQ0wg dG8gYWxsb3cgQVIvQjMwIEZCcyBvbiBDck9zIGNycmV2LmNvbS9jLzIwNzg2NTUsCitUZXN0ZWQg d2l0aCB0aGF0IENMIGFuZCBieSBwbGF5aW5nIGFuIEhEUiB2aWRlbzogdGhlIHByaW1hcnkKK2Zy YW1lYnVmZmVyIGZvcm1hdCBpbiAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC8vc3RhdGUgY29ycmVj dGx5IGNoYW5nZXMKK3RvIFhCMzAsIHdoZXJlYXMgd2hlbiB0aGVyZSBhcmUgbm90IEhEUiBxdWFk cyBpbiB0aGUgQnVmZmVyUXVldWUsIGl0J3MKK1hSMjQuCisKK0J1ZzogOTU4MTY2CitSZXZpZXdl ZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVt L3NyYy8rLzIwNzI2MjEKK1Jldmlld2VkLWJ5OiBjY2FtZXJvbiA8Y2NhbWVyb25AY2hyb21pdW0u b3JnPgorQ29tbWl0LVF1ZXVlOiBNaWd1ZWwgQ2FzYXMgPG1jYXNhc0BjaHJvbWl1bS5vcmc+CitD ci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzQ1NDYxfQorCisKKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IGY4MDdhNTc3NGJjMWFmNmVmNDNjNDA4YmQwYTFhMGIwZDU1 ZTJjNGEpCisKK0J1ZzogYjoxNTgxMjY5MzEsIDk1ODE2NgorQ2hhbmdlLUlkOiBJZWU1YzlhNDMx YTljMGY5ZjZhNWI0ZDIyOWFiNzAxODNjMjY0YWQ5YgorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hy b21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjMyNzYxCitB dXRvLVN1Ym1pdDogTWlndWVsIENhc2FzIDxtY2FzYXNAY2hyb21pdW0ub3JnPgorUmV2aWV3ZWQt Ynk6IGNjYW1lcm9uIDxjY2FtZXJvbkBjaHJvbWl1bS5vcmc+CitDb21taXQtUXVldWU6IGNjYW1l cm9uIDxjY2FtZXJvbkBjaHJvbWl1bS5vcmc+CitDb21taXQtUXVldWU6IE1pZ3VlbCBDYXNhcyA8 bWNhc2FzQGNocm9taXVtLm9yZz4KK0NyLU9yaWdpbmFsLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9o ZWFkcy9tYXN0ZXJAeyM3NzU3NzV9CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZp ZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIyNTgyOTMKK1Jldmlld2VkLWJ5 OiBNaWd1ZWwgQ2FzYXMgPG1jYXNhc0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246 IHJlZnMvYnJhbmNoLWhlYWRzLzQxMDNAeyM3MjR9CitDci1CcmFuY2hlZC1Gcm9tOiA4YWQ0N2U4 ZDIxZjY4NjZlNGEzN2Y0N2Q4M2E4NjBkNDFkZWJmNTE0LXJlZnMvaGVhZHMvbWFzdGVyQHsjNzU2 MDY2fQorLS0tCisgdWkvY29tcG9zaXRvci9jb21wb3NpdG9yLmNjICAgICAgICAgICAgICAgICAg IHwgIDEwICsrCisgdWkvZGlzcGxheS9mYWtlL2Zha2VfZGlzcGxheV9zbmFwc2hvdC5jYyAgICAg IHwgIDIxICstLQorIHVpL2Rpc3BsYXkvZmFrZS9mYWtlX2Rpc3BsYXlfc25hcHNob3QuaCAgICAg ICB8ICAgOCArLQorIHVpL2Rpc3BsYXkvbWFuYWdlci9kaXNwbGF5X2NoYW5nZV9vYnNlcnZlci5j YyB8ICA2OSArKy0tLS0tLS0KKyB1aS9kaXNwbGF5L21hbmFnZXIvZGlzcGxheV9jaGFuZ2Vfb2Jz ZXJ2ZXIuaCAgfCAgIDIgLQorIC4uLi9kaXNwbGF5X2NoYW5nZV9vYnNlcnZlcl91bml0dGVzdC5j YyAgICAgICB8IDEzNCArLS0tLS0tLS0tLS0tLS0tLS0KKyA2IGZpbGVzIGNoYW5nZWQsIDI1IGlu c2VydGlvbnMoKyksIDIxOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3VpL2NvbXBvc2l0 b3IvY29tcG9zaXRvci5jYyBiL3VpL2NvbXBvc2l0b3IvY29tcG9zaXRvci5jYworaW5kZXggZTk0 ZDAyMmFmY2MuLmRkNGY4OWQ3Njc2IDEwMDY0NAorLS0tIGEvdWkvY29tcG9zaXRvci9jb21wb3Np dG9yLmNjCisrKysgYi91aS9jb21wb3NpdG9yL2NvbXBvc2l0b3IuY2MKK0BAIC00NDQsNiArNDQ0 LDE2IEBAIHZvaWQgQ29tcG9zaXRvcjo6U2V0RGlzcGxheUNvbG9yU3BhY2VzKAorICAgaWYgKGRp c3BsYXlfY29sb3Jfc3BhY2VzXyA9PSBkaXNwbGF5X2NvbG9yX3NwYWNlcykKKyAgICAgcmV0dXJu OworICAgZGlzcGxheV9jb2xvcl9zcGFjZXNfID0gZGlzcGxheV9jb2xvcl9zcGFjZXM7CisrICAv LyBUT0RPKGNyYnVnLmNvbS8xMDEyODQ2KTogUmVtb3ZlIHRoaXMgZmxhZyBhbmQgcHJvdmlzaW9u IHdoZW4gSERSIGlzIGZ1bGx5CisrICAvLyBzdXBwb3J0ZWQgb24gQ2hyb21lT1MuCisrI2lmIGRl ZmluZWQoT1NfQ0hST01FT1MpCisrICBpZiAoZGlzcGxheV9jb2xvcl9zcGFjZXNfLlN1cHBvcnRz SERSKCkgJiYKKysgICAgICAhYmFzZTo6Q29tbWFuZExpbmU6OkZvckN1cnJlbnRQcm9jZXNzKCkt Pkhhc1N3aXRjaCgKKysgICAgICAgICAgc3dpdGNoZXM6OmtFbmFibGVVc2VIRFJUcmFuc2ZlckZ1 bmN0aW9uKSkgeworKyAgICBkaXNwbGF5X2NvbG9yX3NwYWNlc18gPQorKyAgICAgICAgZ2Z4OjpE aXNwbGF5Q29sb3JTcGFjZXMoZ2Z4OjpDb2xvclNwYWNlOjpDcmVhdGVTUkdCKCkpOworKyAgfQor KyNlbmRpZgorIAorICAgaG9zdF8tPlNldFJhc3RlckNvbG9yU3BhY2UoZGlzcGxheV9jb2xvcl9z cGFjZXNfLkdldFJhc3RlckNvbG9yU3BhY2UoKSk7CisgICAvLyBBbHdheXMgZm9yY2UgdGhlIHVp OjpDb21wb3NpdG9yIHRvIHJlLWRyYXcgYWxsIGxheWVycywgYmVjYXVzZSBkYW1hZ2UKK2RpZmYg LS1naXQgYS91aS9kaXNwbGF5L2Zha2UvZmFrZV9kaXNwbGF5X3NuYXBzaG90LmNjIGIvdWkvZGlz cGxheS9mYWtlL2Zha2VfZGlzcGxheV9zbmFwc2hvdC5jYworaW5kZXggMzU2OGMyOTYzMjcuLjk0 ZGEyYzRlMzk4IDEwMDY0NAorLS0tIGEvdWkvZGlzcGxheS9mYWtlL2Zha2VfZGlzcGxheV9zbmFw c2hvdC5jYworKysrIGIvdWkvZGlzcGxheS9mYWtlL2Zha2VfZGlzcGxheV9zbmFwc2hvdC5jYwor QEAgLTE2Myw4ICsxNjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RmFrZURpc3BsYXlTbmFwc2hvdD4g QnVpbGRlcjo6QnVpbGQoKSB7CisgICAgICAgaWRfLCBvcmlnaW5fLCBwaHlzaWNhbF9zaXplLCB0 eXBlXywgaXNfYXNwZWN0X3ByZXNlcnZpbmdfc2NhbGluZ18sCisgICAgICAgaGFzX292ZXJzY2Fu XywgcHJpdmFjeV9zY3JlZW5fc3RhdGVfLCBoYXNfY29sb3JfY29ycmVjdGlvbl9tYXRyaXhfLAor ICAgICAgIGNvbG9yX2NvcnJlY3Rpb25faW5fbGluZWFyX3NwYWNlXywgbmFtZV8sIHN0ZDo6bW92 ZShtb2Rlc18pLAorLSAgICAgIGN1cnJlbnRfbW9kZV8sIG5hdGl2ZV9tb2RlXywgcHJvZHVjdF9j b2RlXywgbWF4aW11bV9jdXJzb3Jfc2l6ZV8sCistICAgICAgY29sb3Jfc3BhY2VfLCBiaXRzX3Bl cl9jaGFubmVsXyk7CisrICAgICAgY3VycmVudF9tb2RlXywgbmF0aXZlX21vZGVfLCBwcm9kdWN0 X2NvZGVfLCBtYXhpbXVtX2N1cnNvcl9zaXplXyk7CisgfQorIAorIEJ1aWxkZXImIEJ1aWxkZXI6 OlNldElkKGludDY0X3QgaWQpIHsKK0BAIC0yNjUsMTYgKzI2NCw2IEBAIEJ1aWxkZXImIEJ1aWxk ZXI6OlNldFByaXZhY3lTY3JlZW4oUHJpdmFjeVNjcmVlblN0YXRlIHN0YXRlKSB7CisgICByZXR1 cm4gKnRoaXM7CisgfQorIAorLUJ1aWxkZXImIEJ1aWxkZXI6OlNldENvbG9yU3BhY2UoY29uc3Qg Z2Z4OjpDb2xvclNwYWNlJiBjb2xvcl9zcGFjZSkgeworLSAgY29sb3Jfc3BhY2VfID0gY29sb3Jf c3BhY2U7CistICByZXR1cm4gKnRoaXM7CistfQorLQorLUJ1aWxkZXImIEJ1aWxkZXI6OlNldEJp dHNQZXJDaGFubmVsKHVpbnQzMl90IGJpdHNfcGVyX2NoYW5uZWwpIHsKKy0gIGJpdHNfcGVyX2No YW5uZWxfID0gYml0c19wZXJfY2hhbm5lbDsKKy0gIHJldHVybiAqdGhpczsKKy19CistCisgY29u c3QgRGlzcGxheU1vZGUqIEJ1aWxkZXI6OkFkZE9yRmluZERpc3BsYXlNb2RlKGNvbnN0IGdmeDo6 U2l6ZSYgc2l6ZSkgeworICAgZm9yIChhdXRvJiBtb2RlIDogbW9kZXNfKSB7CisgICAgIGlmICht b2RlLT5zaXplKCkgPT0gc2l6ZSkKK0BAIC0zMTYsOSArMzA1LDcgQEAgRmFrZURpc3BsYXlTbmFw c2hvdDo6RmFrZURpc3BsYXlTbmFwc2hvdCgKKyAgICAgY29uc3QgRGlzcGxheU1vZGUqIGN1cnJl bnRfbW9kZSwKKyAgICAgY29uc3QgRGlzcGxheU1vZGUqIG5hdGl2ZV9tb2RlLAorICAgICBpbnQ2 NF90IHByb2R1Y3RfY29kZSwKKy0gICAgY29uc3QgZ2Z4OjpTaXplJiBtYXhpbXVtX2N1cnNvcl9z aXplLAorLSAgICBjb25zdCBnZng6OkNvbG9yU3BhY2UmIGNvbG9yX3NwYWNlLAorLSAgICB1aW50 MzJfdCBiaXRzX3Blcl9jaGFubmVsKQorKyAgICBjb25zdCBnZng6OlNpemUmIG1heGltdW1fY3Vy c29yX3NpemUpCisgICAgIDogRGlzcGxheVNuYXBzaG90KGRpc3BsYXlfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgIG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgcGh5c2ljYWxfc2l6 ZSwKK0BAIC0zMjgsOCArMzE1LDggQEAgRmFrZURpc3BsYXlTbmFwc2hvdDo6RmFrZURpc3BsYXlT bmFwc2hvdCgKKyAgICAgICAgICAgICAgICAgICAgICAgcHJpdmFjeV9zY3JlZW5fc3RhdGUsCisg ICAgICAgICAgICAgICAgICAgICAgIGhhc19jb2xvcl9jb3JyZWN0aW9uX21hdHJpeCwKKyAgICAg ICAgICAgICAgICAgICAgICAgY29sb3JfY29ycmVjdGlvbl9pbl9saW5lYXJfc3BhY2UsCistICAg ICAgICAgICAgICAgICAgICAgIGNvbG9yX3NwYWNlLAorLSAgICAgICAgICAgICAgICAgICAgICBi aXRzX3Blcl9jaGFubmVsLAorKyAgICAgICAgICAgICAgICAgICAgICBnZng6OkNvbG9yU3BhY2Uo KSwKKysgICAgICAgICAgICAgICAgICAgICAgOHUgLyogYml0c19wZXJfY2hhbm5lbCAqLywKKyAg ICAgICAgICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICBiYXNlOjpGaWxlUGF0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUobW9k ZXMpLAorZGlmZiAtLWdpdCBhL3VpL2Rpc3BsYXkvZmFrZS9mYWtlX2Rpc3BsYXlfc25hcHNob3Qu aCBiL3VpL2Rpc3BsYXkvZmFrZS9mYWtlX2Rpc3BsYXlfc25hcHNob3QuaAoraW5kZXggZDUyMWZi MzQwNzguLjgzM2FjNzQ0ZDA4IDEwMDY0NAorLS0tIGEvdWkvZGlzcGxheS9mYWtlL2Zha2VfZGlz cGxheV9zbmFwc2hvdC5oCisrKysgYi91aS9kaXNwbGF5L2Zha2UvZmFrZV9kaXNwbGF5X3NuYXBz aG90LmgKK0BAIC03MCw4ICs3MCw2IEBAIGNsYXNzIEZBS0VfRElTUExBWV9FWFBPUlQgRmFrZURp c3BsYXlTbmFwc2hvdCA6IHB1YmxpYyBEaXNwbGF5U25hcHNob3QgeworICAgICAvLyBTZXRzIHBo eXNpY2FsX3NpemUgZm9yIGhpZ2ggRFBJIGRpc3BsYXkuCisgICAgIEJ1aWxkZXImIFNldEhpZ2hE UEkoKTsKKyAgICAgQnVpbGRlciYgU2V0UHJpdmFjeVNjcmVlbihQcml2YWN5U2NyZWVuU3RhdGUg c3RhdGUpOworLSAgICBCdWlsZGVyJiBTZXRDb2xvclNwYWNlKGNvbnN0IGdmeDo6Q29sb3JTcGFj ZSYgY29sb3Jfc3BhY2UpOworLSAgICBCdWlsZGVyJiBTZXRCaXRzUGVyQ2hhbm5lbCh1aW50MzJf dCBiaXRzX3Blcl9jaGFubmVsKTsKKyAKKyAgICBwcml2YXRlOgorICAgICAvLyBSZXR1cm5zIGEg ZGlzcGxheSBtb2RlIHdpdGggfHNpemV8LiBJZiB0aGVyZSBpcyBubyBleGlzdGluZyBtb2RlLCBp bnNlcnQKK0BAIC05Niw4ICs5NCw2IEBAIGNsYXNzIEZBS0VfRElTUExBWV9FWFBPUlQgRmFrZURp c3BsYXlTbmFwc2hvdCA6IHB1YmxpYyBEaXNwbGF5U25hcHNob3QgeworICAgICBEaXNwbGF5TW9k ZUxpc3QgbW9kZXNfOworICAgICBjb25zdCBEaXNwbGF5TW9kZSogY3VycmVudF9tb2RlXyA9IG51 bGxwdHI7CisgICAgIGNvbnN0IERpc3BsYXlNb2RlKiBuYXRpdmVfbW9kZV8gPSBudWxscHRyOwor LSAgICBnZng6OkNvbG9yU3BhY2UgY29sb3Jfc3BhY2VfOworLSAgICB1aW50MzJfdCBiaXRzX3Bl cl9jaGFubmVsXyA9IDh1OworIAorICAgICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oQnVpbGRl cik7CisgICB9OworQEAgLTExNiw5ICsxMTIsNyBAQCBjbGFzcyBGQUtFX0RJU1BMQVlfRVhQT1JU IEZha2VEaXNwbGF5U25hcHNob3QgOiBwdWJsaWMgRGlzcGxheVNuYXBzaG90IHsKKyAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgRGlzcGxheU1vZGUqIGN1cnJlbnRfbW9kZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgRGlzcGxheU1vZGUqIG5hdGl2ZV9tb2RlLAorICAgICAgICAg ICAgICAgICAgICAgICBpbnQ2NF90IHByb2R1Y3RfY29kZSwKKy0gICAgICAgICAgICAgICAgICAg ICAgY29uc3QgZ2Z4OjpTaXplJiBtYXhpbXVtX2N1cnNvcl9zaXplLAorLSAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBnZng6OkNvbG9yU3BhY2UmIGNvbG9yX3NwYWNlLAorLSAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBiaXRzX3Blcl9jaGFubmVsKTsKKysgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgZ2Z4OjpTaXplJiBtYXhpbXVtX2N1cnNvcl9zaXplKTsKKyAgIH5GYWtlRGlz cGxheVNuYXBzaG90KCkgb3ZlcnJpZGU7CisgCisgICAvLyBDcmVhdGVzIGEgZGlzcGxheSBzbmFw c2hvdCBmcm9tIHRoZSBwcm92aWRlZCB8c3BlY3wgc3RyaW5nLiBSZXR1cm5zIG51bGwgaWYKK2Rp ZmYgLS1naXQgYS91aS9kaXNwbGF5L21hbmFnZXIvZGlzcGxheV9jaGFuZ2Vfb2JzZXJ2ZXIuY2Mg Yi91aS9kaXNwbGF5L21hbmFnZXIvZGlzcGxheV9jaGFuZ2Vfb2JzZXJ2ZXIuY2MKK2luZGV4IDI4 ZGJkMTBlYzE5Li43OTlkODk2ZDhlNyAxMDA2NDQKKy0tLSBhL3VpL2Rpc3BsYXkvbWFuYWdlci9k aXNwbGF5X2NoYW5nZV9vYnNlcnZlci5jYworKysrIGIvdWkvZGlzcGxheS9tYW5hZ2VyL2Rpc3Bs YXlfY2hhbmdlX29ic2VydmVyLmNjCitAQCAtNzcsNTUgKzc3LDYgQEAgTWFuYWdlZERpc3BsYXlJ bmZvOjpNYW5hZ2VkRGlzcGxheU1vZGVMaXN0IEdldE1vZGVMaXN0V2l0aEFsbFJlZnJlc2hSYXRl cygKKyAgIHJldHVybiBkaXNwbGF5X21vZGVfbGlzdDsKKyB9CisgCistLy8gQ29uc3RydWN0cyB0 aGUgcmFzdGVyIERpc3BsYXlDb2xvclNwYWNlcyBvdXQgb2YgfHNuYXBzaG90X2NvbG9yX3NwYWNl fCwKKy0vLyBpbmNsdWRpbmcgdGhlIEhEUiBvbmVzIGlmIHByZXNlbnQgYW5kIHxhbGxvd19oaWdo X2JpdF9kZXB0aHwgaXMgc2V0LgorLWdmeDo6RGlzcGxheUNvbG9yU3BhY2VzIEZpbGxEaXNwbGF5 Q29sb3JTcGFjZXMoCistICAgIGNvbnN0IGdmeDo6Q29sb3JTcGFjZSYgc25hcHNob3RfY29sb3Jf c3BhY2UsCistICAgIGJvb2wgYWxsb3dfaGlnaF9iaXRfZGVwdGgpIHsKKy0gIC8vIENocm9tZU9T IFZNcyAoZS5nLiBhbWQ2NC1nZW5lcmljIG9yIGJldHR5KSBoYXZlIElOVkFMSUQgUHJpbWFyaWVz OyBqdXN0CistICAvLyBwYXNzIHRoZSBjb2xvciBzcGFjZSBhbG9uZy4KKy0gIGlmICghc25hcHNo b3RfY29sb3Jfc3BhY2UuSXNWYWxpZCgpKSB7CistICAgIHJldHVybiBnZng6OkRpc3BsYXlDb2xv clNwYWNlcyhzbmFwc2hvdF9jb2xvcl9zcGFjZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERpc3BsYXlTbmFwc2hvdDo6UHJpbWFyeUZvcm1hdCgpKTsKKy0gIH0KKy0KKy0g IGNvbnN0ZXhwciBhdXRvIGtTRFJUcmFuc2ZlcklkID0gZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2Zl cklEOjpJRUM2MTk2Nl8yXzE7CistICBjb25zdCBhdXRvIHByaW1hcnlfaWQgPSBzbmFwc2hvdF9j b2xvcl9zcGFjZS5HZXRQcmltYXJ5SUQoKTsKKy0KKy0gIGdmeDo6Q29sb3JTcGFjZSBzZHJfY29s b3Jfc3BhY2U7CistICBpZiAocHJpbWFyeV9pZCA9PSBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJ RDo6Q1VTVE9NKSB7CistICAgIHNrY21zX01hdHJpeDN4MyBwcmltYXJ5X21hdHJpeHt9OworLSAg ICBzbmFwc2hvdF9jb2xvcl9zcGFjZS5HZXRQcmltYXJ5TWF0cml4KCZwcmltYXJ5X21hdHJpeCk7 CistICAgIHNkcl9jb2xvcl9zcGFjZSA9CistICAgICAgICBnZng6OkNvbG9yU3BhY2U6OkNyZWF0 ZUN1c3RvbShwcmltYXJ5X21hdHJpeCwga1NEUlRyYW5zZmVySWQpOworLSAgfSBlbHNlIHsKKy0g ICAgc2RyX2NvbG9yX3NwYWNlID0gZ2Z4OjpDb2xvclNwYWNlKHByaW1hcnlfaWQsIGtTRFJUcmFu c2ZlcklkKTsKKy0gIH0KKy0gIGdmeDo6RGlzcGxheUNvbG9yU3BhY2VzIGRpc3BsYXlfY29sb3Jf c3BhY2VzKAorLSAgICAgIHNkcl9jb2xvcl9zcGFjZSwgRGlzcGxheVNuYXBzaG90OjpQcmltYXJ5 Rm9ybWF0KCkpOworLQorLSAgaWYgKGFsbG93X2hpZ2hfYml0X2RlcHRoKSB7CistICAgIGdmeDo6 Q29sb3JTcGFjZSBoZHJfY29sb3Jfc3BhY2U7CistICAgIGlmIChwcmltYXJ5X2lkID09IGdmeDo6 Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpDVVNUT00pIHsKKy0gICAgICBza2Ntc19NYXRyaXgzeDMg cHJpbWFyeV9tYXRyaXh7fTsKKy0gICAgICBzbmFwc2hvdF9jb2xvcl9zcGFjZS5HZXRQcmltYXJ5 TWF0cml4KCZwcmltYXJ5X21hdHJpeCk7CistICAgICAgaGRyX2NvbG9yX3NwYWNlID0gZ2Z4OjpD b2xvclNwYWNlOjpDcmVhdGVQaWVjZXdpc2VIRFIoCistICAgICAgICAgIHByaW1hcnlfaWQsIDAu OTksIDIuMCwgJnByaW1hcnlfbWF0cml4KTsKKy0gICAgfSBlbHNlIHsKKy0gICAgICBoZHJfY29s b3Jfc3BhY2UgPQorLSAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OkNyZWF0ZVBpZWNld2lzZUhE UihwcmltYXJ5X2lkLCAwLjk5LCAyLjApOworLSAgICB9CistCistICAgIGRpc3BsYXlfY29sb3Jf c3BhY2VzLlNldE91dHB1dENvbG9yU3BhY2VBbmRCdWZmZXJGb3JtYXQoCistICAgICAgICBnZng6 OkNvbnRlbnRDb2xvclVzYWdlOjprSERSLCBmYWxzZSAvKiBuZWVkc19hbHBoYSAqLywgaGRyX2Nv bG9yX3NwYWNlLAorLSAgICAgICAgZ2Z4OjpCdWZmZXJGb3JtYXQ6OlJHQkFfMTAxMDEwMik7Cist ICAgIGRpc3BsYXlfY29sb3Jfc3BhY2VzLlNldE91dHB1dENvbG9yU3BhY2VBbmRCdWZmZXJGb3Jt YXQoCistICAgICAgICBnZng6OkNvbnRlbnRDb2xvclVzYWdlOjprSERSLCB0cnVlIC8qIG5lZWRz X2FscGhhICovLCBoZHJfY29sb3Jfc3BhY2UsCistICAgICAgICBnZng6OkJ1ZmZlckZvcm1hdDo6 UkdCQV8xMDEwMTAyKTsKKy0gIH0KKy0gIHJldHVybiBkaXNwbGF5X2NvbG9yX3NwYWNlczsKKy19 CistCisgfSAgLy8gbmFtZXNwYWNlCisgCisgLy8gc3RhdGljCitAQCAtMzg2LDIzICszMzcsMjEg QEAgTWFuYWdlZERpc3BsYXlJbmZvIERpc3BsYXlDaGFuZ2VPYnNlcnZlcjo6Q3JlYXRlTWFuYWdl ZERpc3BsYXlJbmZvKAorICAgaWYgKGRwaSkKKyAgICAgbmV3X2luZm8uc2V0X2RldmljZV9kcGko ZHBpKTsKKyAKKy0jaWYgIWRlZmluZWQoT1NfQ0hST01FT1MpCisgICAvLyBUT0RPKGNyYnVnLmNv bS8xMDEyODQ2KTogVGhpcyBzaG91bGQgY29uZmlndXJlIHRoZSBIRFIgY29sb3Igc3BhY2VzLgor ICAgZ2Z4OjpEaXNwbGF5Q29sb3JTcGFjZXMgZGlzcGxheV9jb2xvcl9zcGFjZXMoCisgICAgICAg c25hcHNob3QtPmNvbG9yX3NwYWNlKCksIERpc3BsYXlTbmFwc2hvdDo6UHJpbWFyeUZvcm1hdCgp KTsKKyAgIG5ld19pbmZvLnNldF9kaXNwbGF5X2NvbG9yX3NwYWNlcyhkaXNwbGF5X2NvbG9yX3Nw YWNlcyk7CisgICBuZXdfaW5mby5zZXRfYml0c19wZXJfY2hhbm5lbChzbmFwc2hvdC0+Yml0c19w ZXJfY2hhbm5lbCgpKTsKKy0jZWxzZQorLSAgLy8gVE9ETyhjcmJ1Zy5jb20vMTAxMjg0Nik6IFJl bW92ZSBrRW5hYmxlVXNlSERSVHJhbnNmZXJGdW5jdGlvbiB1c2FnZSB3aGVuCistICAvLyBIRFIg aXMgZnVsbHkgc3VwcG9ydGVkIG9uIENocm9tZU9TLgorLSAgY29uc3QgYm9vbCBhbGxvd19oaWdo X2JpdF9kZXB0aCA9CistICAgICAgYmFzZTo6Q29tbWFuZExpbmU6OkZvckN1cnJlbnRQcm9jZXNz KCktPkhhc1N3aXRjaCgKKy0gICAgICAgICAgc3dpdGNoZXM6OmtFbmFibGVVc2VIRFJUcmFuc2Zl ckZ1bmN0aW9uKTsKKy0gIG5ld19pbmZvLnNldF9kaXNwbGF5X2NvbG9yX3NwYWNlcygKKy0gICAg ICBGaWxsRGlzcGxheUNvbG9yU3BhY2VzKHNuYXBzaG90LT5jb2xvcl9zcGFjZSgpLCBhbGxvd19o aWdoX2JpdF9kZXB0aCkpOworKworKyAgLy8gVE9ETyhjcmJ1Zy5jb20vMTAxMjg0Nik6IFJlbW92 ZSB0aGlzIGZsYWcgYW5kIHByb3Zpc2lvbiB3aGVuIEhEUiBpcyBmdWxseQorKyAgLy8gc3VwcG9y dGVkIG9uIENocm9tZU9TLgorKyNpZiBkZWZpbmVkKE9TX0NIUk9NRU9TKQorICAgY29uc3RleHBy IGludDMyX3Qga05vcm1hbEJpdERlcHRoID0gODsKKy0gIG5ld19pbmZvLnNldF9iaXRzX3Blcl9j aGFubmVsKAorLSAgICAgIGFsbG93X2hpZ2hfYml0X2RlcHRoID8gc25hcHNob3QtPmJpdHNfcGVy X2NoYW5uZWwoKSA6IGtOb3JtYWxCaXREZXB0aCk7CisrICBpZiAobmV3X2luZm8uYml0c19wZXJf Y2hhbm5lbCgpID4ga05vcm1hbEJpdERlcHRoICYmCisrICAgICAgIWJhc2U6OkNvbW1hbmRMaW5l OjpGb3JDdXJyZW50UHJvY2VzcygpLT5IYXNTd2l0Y2goCisrICAgICAgICAgIHN3aXRjaGVzOjpr RW5hYmxlVXNlSERSVHJhbnNmZXJGdW5jdGlvbikpIHsKKysgICAgbmV3X2luZm8uc2V0X2JpdHNf cGVyX2NoYW5uZWwoa05vcm1hbEJpdERlcHRoKTsKKysgIH0KKyAjZW5kaWYKKyAKKyAgIG5ld19p bmZvLnNldF9yZWZyZXNoX3JhdGUobW9kZV9pbmZvLT5yZWZyZXNoX3JhdGUoKSk7CitkaWZmIC0t Z2l0IGEvdWkvZGlzcGxheS9tYW5hZ2VyL2Rpc3BsYXlfY2hhbmdlX29ic2VydmVyLmggYi91aS9k aXNwbGF5L21hbmFnZXIvZGlzcGxheV9jaGFuZ2Vfb2JzZXJ2ZXIuaAoraW5kZXggNWMxN2NlNjA5 NzcuLjBlODk2ZTI0ZTVlIDEwMDY0NAorLS0tIGEvdWkvZGlzcGxheS9tYW5hZ2VyL2Rpc3BsYXlf Y2hhbmdlX29ic2VydmVyLmgKKysrKyBiL3VpL2Rpc3BsYXkvbWFuYWdlci9kaXNwbGF5X2NoYW5n ZV9vYnNlcnZlci5oCitAQCAtNjAsOCArNjAsNiBAQCBjbGFzcyBESVNQTEFZX01BTkFHRVJfRVhQ T1JUIERpc3BsYXlDaGFuZ2VPYnNlcnZlcgorICAgRElTUExBWV9FWFBPUlQgc3RhdGljIGZsb2F0 IEZpbmREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBkcGkpOworIAorICBwcml2YXRlOgorLSAgZnJp ZW5kIGNsYXNzIERpc3BsYXlDaGFuZ2VPYnNlcnZlclRlc3Q7CistCisgICB2b2lkIFVwZGF0ZUlu dGVybmFsRGlzcGxheSgKKyAgICAgICBjb25zdCBEaXNwbGF5Q29uZmlndXJhdG9yOjpEaXNwbGF5 U3RhdGVMaXN0JiBkaXNwbGF5X3N0YXRlcyk7CisgCitkaWZmIC0tZ2l0IGEvdWkvZGlzcGxheS9t YW5hZ2VyL2Rpc3BsYXlfY2hhbmdlX29ic2VydmVyX3VuaXR0ZXN0LmNjIGIvdWkvZGlzcGxheS9t YW5hZ2VyL2Rpc3BsYXlfY2hhbmdlX29ic2VydmVyX3VuaXR0ZXN0LmNjCitpbmRleCAxYjI5MDcx MzdmOS4uYmI5MDAyMDliYWMgMTAwNjQ0CistLS0gYS91aS9kaXNwbGF5L21hbmFnZXIvZGlzcGxh eV9jaGFuZ2Vfb2JzZXJ2ZXJfdW5pdHRlc3QuY2MKKysrKyBiL3VpL2Rpc3BsYXkvbWFuYWdlci9k aXNwbGF5X2NoYW5nZV9vYnNlcnZlcl91bml0dGVzdC5jYworQEAgLTE0LDExICsxNCw4IEBACisg I2luY2x1ZGUgInVpL2Rpc3BsYXkvZGlzcGxheV9zd2l0Y2hlcy5oIgorICNpbmNsdWRlICJ1aS9k aXNwbGF5L2Zha2UvZmFrZV9kaXNwbGF5X3NuYXBzaG90LmgiCisgI2luY2x1ZGUgInVpL2Rpc3Bs YXkvbWFuYWdlci9kaXNwbGF5X2NvbmZpZ3VyYXRvci5oIgorLSNpbmNsdWRlICJ1aS9kaXNwbGF5 L21hbmFnZXIvZGlzcGxheV9tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInVpL2Rpc3BsYXkvbWFuYWdl ci9tYW5hZ2VkX2Rpc3BsYXlfaW5mby5oIgorLSNpbmNsdWRlICJ1aS9kaXNwbGF5L3NjcmVlbi5o IgorICNpbmNsdWRlICJ1aS9kaXNwbGF5L3R5cGVzL2Rpc3BsYXlfbW9kZS5oIgorLSNpbmNsdWRl ICJ1aS9ldmVudHMvZGV2aWNlcy9kZXZpY2VfZGF0YV9tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInVp L2dmeC9nZW9tZXRyeS9yZWN0LmgiCisgI2luY2x1ZGUgInVpL2dmeC9nZW9tZXRyeS9zaXplLmgi CisgCitAQCAtNjMsMTMgKzYwLDYgQEAgY2xhc3MgRGlzcGxheUNoYW5nZU9ic2VydmVyVGVzdCA6 IHB1YmxpYyB0ZXN0aW5nOjpUZXN0LAorICAgICBUZXN0OjpTZXRVcCgpOworICAgfQorIAorLSAg Ly8gUGFzcyB0aHJvdWdoIG1ldGhvZCB0byBiZSBjYWxsZWQgYnkgaW5kaXZpZHVhbCB0ZXN0IGNh c2VzLgorLSAgTWFuYWdlZERpc3BsYXlJbmZvIENyZWF0ZU1hbmFnZWREaXNwbGF5SW5mbyhEaXNw bGF5Q2hhbmdlT2JzZXJ2ZXIqIG9ic2VydmVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBEaXNwbGF5U25hcHNob3QqIHNuYXBzaG90LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBEaXNwbGF5 TW9kZSogbW9kZV9pbmZvKSB7CistICAgIHJldHVybiBvYnNlcnZlci0+Q3JlYXRlTWFuYWdlZERp c3BsYXlJbmZvKHNuYXBzaG90LCBtb2RlX2luZm8pOworLSAgfQorLQorICBwcml2YXRlOgorICAg YmFzZTo6dGVzdDo6U2NvcGVkRmVhdHVyZUxpc3Qgc2NvcGVkX2ZlYXR1cmVfbGlzdF87CisgCitA QCAtMTg1LDggKzE3NSw3IEBAIFRFU1RfUChEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXJUZXN0LCBHZXRF bXB0eUV4dGVybmFsTWFuYWdlZERpc3BsYXlNb2RlTGlzdCkgeworICAgRmFrZURpc3BsYXlTbmFw c2hvdCBkaXNwbGF5X3NuYXBzaG90KAorICAgICAgIDEyMywgZ2Z4OjpQb2ludCgpLCBnZng6OlNp emUoKSwgRElTUExBWV9DT05ORUNUSU9OX1RZUEVfVU5LTk9XTiwgZmFsc2UsCisgICAgICAgZmFs c2UsIFByaXZhY3lTY3JlZW5TdGF0ZTo6a05vdFN1cHBvcnRlZCwgZmFsc2UsIGZhbHNlLCBzdGQ6 OnN0cmluZygpLCB7fSwKKy0gICAgICBudWxscHRyLCBudWxscHRyLCAwLCBnZng6OlNpemUoKSwg Z2Z4OjpDb2xvclNwYWNlKCksCistICAgICAgLypiaXRzX3Blcl9jaGFubmVsPSovOHUpOworKyAg ICAgIG51bGxwdHIsIG51bGxwdHIsIDAsIGdmeDo6U2l6ZSgpKTsKKyAKKyAgIE1hbmFnZWREaXNw bGF5SW5mbzo6TWFuYWdlZERpc3BsYXlNb2RlTGlzdCBkaXNwbGF5X21vZGVzID0KKyAgICAgICBE aXNwbGF5Q2hhbmdlT2JzZXJ2ZXI6OkdldEV4dGVybmFsTWFuYWdlZERpc3BsYXlNb2RlTGlzdCgK K0BAIC0zMDUsMTI3ICsyOTQsNiBAQCBURVNUX1AoRGlzcGxheUNoYW5nZU9ic2VydmVyVGVzdCwK KyAgIH0KKyB9CisgCistVEVTVF9QKERpc3BsYXlDaGFuZ2VPYnNlcnZlclRlc3QsIEludmFsaWRE aXNwbGF5Q29sb3JTcGFjZXMpIHsKKy0gIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5U25h cHNob3Q+IGRpc3BsYXlfc25hcHNob3QgPQorLSAgICAgIEZha2VEaXNwbGF5U25hcHNob3Q6OkJ1 aWxkZXIoKQorLSAgICAgICAgICAuU2V0SWQoMTIzKQorLSAgICAgICAgICAuU2V0TmFtZSgiQW1h emluZ0Zha2VEaXNwbGF5IikKKy0gICAgICAgICAgLlNldE5hdGl2ZU1vZGUoTWFrZURpc3BsYXlN b2RlKDE5MjAsIDEwODAsIHRydWUsIDYwKSkKKy0gICAgICAgICAgLlNldENvbG9yU3BhY2UoZ2Z4 OjpDb2xvclNwYWNlKCkpCistICAgICAgICAgIC5CdWlsZCgpOworLQorLSAgdWk6OkRldmljZURh dGFNYW5hZ2VyOjpDcmVhdGVJbnN0YW5jZSgpOworLSAgRGlzcGxheU1hbmFnZXIgbWFuYWdlcihu dWxscHRyKTsKKy0gIGNvbnN0IGF1dG8gZGlzcGxheV9tb2RlID0gTWFrZURpc3BsYXlNb2RlKDE5 MjAsIDEwODAsIHRydWUsIDYwKTsKKy0gIERpc3BsYXlDaGFuZ2VPYnNlcnZlciBvYnNlcnZlcigm bWFuYWdlcik7CistICBjb25zdCBNYW5hZ2VkRGlzcGxheUluZm8gZGlzcGxheV9pbmZvID0gQ3Jl YXRlTWFuYWdlZERpc3BsYXlJbmZvKAorLSAgICAgICZvYnNlcnZlciwgZGlzcGxheV9zbmFwc2hv dC5nZXQoKSwgZGlzcGxheV9tb2RlLmdldCgpKTsKKy0KKy0gIEVYUEVDVF9FUShkaXNwbGF5X2lu Zm8uYml0c19wZXJfY2hhbm5lbCgpLCA4dSk7CistICBjb25zdCBhdXRvIGRpc3BsYXlfY29sb3Jf c3BhY2VzID0gZGlzcGxheV9pbmZvLmRpc3BsYXlfY29sb3Jfc3BhY2VzKCk7CistICBFWFBFQ1Rf RkFMU0UoZGlzcGxheV9jb2xvcl9zcGFjZXMuU3VwcG9ydHNIRFIoKSk7CistCistICBFWFBFQ1Rf RVEoCistICAgICAgRGlzcGxheVNuYXBzaG90OjpQcmltYXJ5Rm9ybWF0KCksCistICAgICAgZGlz cGxheV9jb2xvcl9zcGFjZXMuR2V0T3V0cHV0QnVmZmVyRm9ybWF0KGdmeDo6Q29udGVudENvbG9y VXNhZ2U6OmtTUkdCLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKm5lZWRzX2FscGhhPSovdHJ1ZSkpOworLQorLSAgY29uc3QgYXV0byBjb2xvcl9z cGFjZSA9IGRpc3BsYXlfY29sb3Jfc3BhY2VzLkdldFJhc3RlckNvbG9yU3BhY2UoKTsKKy0gIC8v IERpc3BsYXlDb2xvclNwYWNlcyB3aWxsIGZpeCBhbiBpbnZhbGlkIENvbG9yU3BhY2UgdG8gcmV0 dXJuIHNSR0IuCistICBFWFBFQ1RfVFJVRShjb2xvcl9zcGFjZS5Jc1ZhbGlkKCkpOworLSAgRVhQ RUNUX0VRKGNvbG9yX3NwYWNlLCBnZng6OkNvbG9yU3BhY2U6OkNyZWF0ZVNSR0IoKSk7CistfQor LQorLVRFU1RfUChEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXJUZXN0LCBTRFJEaXNwbGF5Q29sb3JTcGFj ZXMpIHsKKy0gIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5U25hcHNob3Q+IGRpc3BsYXlf c25hcHNob3QgPQorLSAgICAgIEZha2VEaXNwbGF5U25hcHNob3Q6OkJ1aWxkZXIoKQorLSAgICAg ICAgICAuU2V0SWQoMTIzKQorLSAgICAgICAgICAuU2V0TmFtZSgiQW1hemluZ0Zha2VEaXNwbGF5 IikKKy0gICAgICAgICAgLlNldE5hdGl2ZU1vZGUoTWFrZURpc3BsYXlNb2RlKDE5MjAsIDEwODAs IHRydWUsIDYwKSkKKy0gICAgICAgICAgLlNldENvbG9yU3BhY2UoZ2Z4OjpDb2xvclNwYWNlOjpD cmVhdGVTUkdCKCkpCistICAgICAgICAgIC5CdWlsZCgpOworLQorLSAgdWk6OkRldmljZURhdGFN YW5hZ2VyOjpDcmVhdGVJbnN0YW5jZSgpOworLSAgRGlzcGxheU1hbmFnZXIgbWFuYWdlcihudWxs cHRyKTsKKy0gIGNvbnN0IGF1dG8gZGlzcGxheV9tb2RlID0gTWFrZURpc3BsYXlNb2RlKDE5MjAs IDEwODAsIHRydWUsIDYwKTsKKy0gIERpc3BsYXlDaGFuZ2VPYnNlcnZlciBvYnNlcnZlcigmbWFu YWdlcik7CistICBjb25zdCBNYW5hZ2VkRGlzcGxheUluZm8gZGlzcGxheV9pbmZvID0gQ3JlYXRl TWFuYWdlZERpc3BsYXlJbmZvKAorLSAgICAgICZvYnNlcnZlciwgZGlzcGxheV9zbmFwc2hvdC5n ZXQoKSwgZGlzcGxheV9tb2RlLmdldCgpKTsKKy0KKy0gIEVYUEVDVF9FUShkaXNwbGF5X2luZm8u Yml0c19wZXJfY2hhbm5lbCgpLCA4dSk7CistCistICBjb25zdCBhdXRvIGRpc3BsYXlfY29sb3Jf c3BhY2VzID0gZGlzcGxheV9pbmZvLmRpc3BsYXlfY29sb3Jfc3BhY2VzKCk7CistICBFWFBFQ1Rf RkFMU0UoZGlzcGxheV9jb2xvcl9zcGFjZXMuU3VwcG9ydHNIRFIoKSk7CistCistICBFWFBFQ1Rf RVEoCistICAgICAgRGlzcGxheVNuYXBzaG90OjpQcmltYXJ5Rm9ybWF0KCksCistICAgICAgZGlz cGxheV9jb2xvcl9zcGFjZXMuR2V0T3V0cHV0QnVmZmVyRm9ybWF0KGdmeDo6Q29udGVudENvbG9y VXNhZ2U6OmtTUkdCLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKm5lZWRzX2FscGhhPSovdHJ1ZSkpOworLQorLSAgY29uc3QgYXV0byBjb2xvcl9z cGFjZSA9IGRpc3BsYXlfY29sb3Jfc3BhY2VzLkdldFJhc3RlckNvbG9yU3BhY2UoKTsKKy0gIEVY UEVDVF9UUlVFKGNvbG9yX3NwYWNlLklzVmFsaWQoKSk7CistICBFWFBFQ1RfRVEoY29sb3Jfc3Bh Y2UuR2V0UHJpbWFyeUlEKCksIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDcwOSk7Cist ICBFWFBFQ1RfRVEoY29sb3Jfc3BhY2UuR2V0VHJhbnNmZXJJRCgpLAorLSAgICAgICAgICAgIGdm eDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6SUVDNjE5NjZfMl8xKTsKKy19CistCistI2lmIGRl ZmluZWQoT1NfQ0hST01FT1MpCistVEVTVF9QKERpc3BsYXlDaGFuZ2VPYnNlcnZlclRlc3QsIEhE UkRpc3BsYXlDb2xvclNwYWNlcykgeworLSAgLy8gVE9ETyhjcmJ1Zy5jb20vMTAxMjg0Nik6IFJl bW92ZSB0aGlzIGZsYWcgYW5kIHByb3Zpc2lvbiB3aGVuIEhEUiBpcyBmdWxseQorLSAgLy8gc3Vw cG9ydGVkIG9uIENocm9tZU9TLgorLSAgYmFzZTo6Q29tbWFuZExpbmU6OkZvckN1cnJlbnRQcm9j ZXNzKCktPkFwcGVuZFN3aXRjaCgKKy0gICAgICBzd2l0Y2hlczo6a0VuYWJsZVVzZUhEUlRyYW5z ZmVyRnVuY3Rpb24pOworLQorLSAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlTbmFwc2hv dD4gZGlzcGxheV9zbmFwc2hvdCA9CistICAgICAgRmFrZURpc3BsYXlTbmFwc2hvdDo6QnVpbGRl cigpCistICAgICAgICAgIC5TZXRJZCgxMjMpCistICAgICAgICAgIC5TZXROYW1lKCJBbWF6aW5n RmFrZURpc3BsYXkiKQorLSAgICAgICAgICAuU2V0TmF0aXZlTW9kZShNYWtlRGlzcGxheU1vZGUo MTkyMCwgMTA4MCwgdHJ1ZSwgNjApKQorLSAgICAgICAgICAuU2V0Q29sb3JTcGFjZShnZng6OkNv bG9yU3BhY2U6OkNyZWF0ZUhEUjEwKDEwMC4wZikpCistICAgICAgICAgIC5TZXRCaXRzUGVyQ2hh bm5lbCgxMHUpCistICAgICAgICAgIC5CdWlsZCgpOworLQorLSAgdWk6OkRldmljZURhdGFNYW5h Z2VyOjpDcmVhdGVJbnN0YW5jZSgpOworLSAgRGlzcGxheU1hbmFnZXIgbWFuYWdlcihudWxscHRy KTsKKy0gIGNvbnN0IGF1dG8gZGlzcGxheV9tb2RlID0gTWFrZURpc3BsYXlNb2RlKDE5MjAsIDEw ODAsIHRydWUsIDYwKTsKKy0gIERpc3BsYXlDaGFuZ2VPYnNlcnZlciBvYnNlcnZlcigmbWFuYWdl cik7CistICBjb25zdCBNYW5hZ2VkRGlzcGxheUluZm8gZGlzcGxheV9pbmZvID0gQ3JlYXRlTWFu YWdlZERpc3BsYXlJbmZvKAorLSAgICAgICZvYnNlcnZlciwgZGlzcGxheV9zbmFwc2hvdC5nZXQo KSwgZGlzcGxheV9tb2RlLmdldCgpKTsKKy0KKy0gIEVYUEVDVF9FUShkaXNwbGF5X2luZm8uYml0 c19wZXJfY2hhbm5lbCgpLCAxMHUpOworLQorLSAgY29uc3QgYXV0byBkaXNwbGF5X2NvbG9yX3Nw YWNlcyA9IGRpc3BsYXlfaW5mby5kaXNwbGF5X2NvbG9yX3NwYWNlcygpOworLSAgRVhQRUNUX1RS VUUoZGlzcGxheV9jb2xvcl9zcGFjZXMuU3VwcG9ydHNIRFIoKSk7CistCistICAvLyB8ZGlzcGxh eV9jb2xvcl9zcGFjZXN8IHN0aWxsIHN1cHBvcnRzIFNEUiByZW5kZXJpbmcuCistICBFWFBFQ1Rf RVEoCistICAgICAgRGlzcGxheVNuYXBzaG90OjpQcmltYXJ5Rm9ybWF0KCksCistICAgICAgZGlz cGxheV9jb2xvcl9zcGFjZXMuR2V0T3V0cHV0QnVmZmVyRm9ybWF0KGdmeDo6Q29udGVudENvbG9y VXNhZ2U6OmtTUkdCLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKm5lZWRzX2FscGhhPSovdHJ1ZSkpOworLQorLSAgY29uc3QgYXV0byBzZHJfY29s b3Jfc3BhY2UgPQorLSAgICAgIGRpc3BsYXlfY29sb3Jfc3BhY2VzLkdldE91dHB1dENvbG9yU3Bh Y2UoZ2Z4OjpDb250ZW50Q29sb3JVc2FnZTo6a1NSR0IsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5lZWRzX2FscGhhPSovdHJ1ZSk7CistICBFWFBF Q1RfVFJVRShzZHJfY29sb3Jfc3BhY2UuSXNWYWxpZCgpKTsKKy0gIEVYUEVDVF9FUShzZHJfY29s b3Jfc3BhY2UuR2V0UHJpbWFyeUlEKCksIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDIw MjApOworLSAgRVhQRUNUX0VRKHNkcl9jb2xvcl9zcGFjZS5HZXRUcmFuc2ZlcklEKCksCistICAg ICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpJRUM2MTk2Nl8yXzEpOworLQor LSAgRVhQRUNUX0VRKAorLSAgICAgIGRpc3BsYXlfY29sb3Jfc3BhY2VzLkdldE91dHB1dEJ1ZmZl ckZvcm1hdChnZng6OkNvbnRlbnRDb2xvclVzYWdlOjprSERSLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5lZWRzX2FscGhhPSovdHJ1ZSksCist ICAgICAgZ2Z4OjpCdWZmZXJGb3JtYXQ6OlJHQkFfMTAxMDEwMik7CistCistICBjb25zdCBhdXRv IGhkcl9jb2xvcl9zcGFjZSA9CistICAgICAgZGlzcGxheV9jb2xvcl9zcGFjZXMuR2V0T3V0cHV0 Q29sb3JTcGFjZShnZng6OkNvbnRlbnRDb2xvclVzYWdlOjprSERSLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuZWVkc19hbHBoYT0qL3RydWUpOwor LSAgRVhQRUNUX1RSVUUoaGRyX2NvbG9yX3NwYWNlLklzVmFsaWQoKSk7CistICBFWFBFQ1RfRVEo aGRyX2NvbG9yX3NwYWNlLkdldFByaW1hcnlJRCgpLCBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJ RDo6QlQyMDIwKTsKKy0gIEVYUEVDVF9FUShoZHJfY29sb3Jfc3BhY2UuR2V0VHJhbnNmZXJJRCgp LAorLSAgICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6UElFQ0VXSVNFX0hE Uik7CistfQorLSNlbmRpZgorLQorIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChBbGwsCisgICAg ICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlDaGFuZ2VPYnNlcnZlclRlc3QsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzKGZhbHNlLCB0cnVlKSk7CistLSAK KzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2No cm9taXVtLXVwc3RyZWFtLTAwMDItUm9sbC1DaHJvbWVPUy1BaXJtb250LUFGRE8tcHJvZmlsZS1m cm9tLTgzLTQxMDMuOTctMS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tdXBzdHJlYW0tMDAwMi1Sb2xsLUNocm9tZU9TLUFpcm1vbnQtQUZETy1wcm9maWxl LWZyb20tODMtNDEwMy45Ny0xLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi40ZjQ1ZWY4OTgwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwMi1Sb2xsLUNocm9tZU9TLUFpcm1v bnQtQUZETy1wcm9maWxlLWZyb20tODMtNDEwMy45Ny0xLnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAK K0Zyb20gZDhjYjQ1NGU3OWRjMTYzNTEzM2UzNzc2NDVlNTU5MWFlYmFhYzYxZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IENocm9tZSBSZWxlYXNlIEF1dG9yb2xsCisgPGNocm9taXVt LXJlbGVhc2UtYXV0b3JvbGxAc2tpYS1wdWJsaWMuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20+CitE YXRlOiBUaHUsIDI1IEp1biAyMDIwIDA4OjUxOjU5ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDIv MTJdIFJvbGwgQ2hyb21lT1MgQWlybW9udCBBRkRPIHByb2ZpbGUgZnJvbQorIDgzLTQxMDMuOTct MTU5MjIxNDYxOC1iZW5jaG1hcmstODMuMC40MTAzLjExNy1yMSB0bworIDgzLTQxMDMuMTEyLTE1 OTI4MjM2NTgtYmVuY2htYXJrLTgzLjAuNDEwMy4xMTktcjEKKworSWYgdGhpcyByb2xsIGhhcyBj YXVzZWQgYSBicmVha2FnZSwgcmV2ZXJ0IHRoaXMgQ0wgYW5kIHN0b3AgdGhlIHJvbGxlcgordXNp bmcgdGhlIGNvbnRyb2xzIGhlcmU6CitodHRwczovL2F1dG9yb2xsLnNraWEub3JnL3IvY3Jvcy1h ZmRvLWFpcm1vbnQtY2hyb21pdW0tc3RhYmxlCitQbGVhc2UgQ0MgYy1jb21waWxlci1jaHJvbWVA Z29vZ2xlLmNvbSBvbiB0aGUgcmV2ZXJ0IHRvIGVuc3VyZSB0aGF0IGEgaHVtYW4KK2lzIGF3YXJl IG9mIHRoZSBwcm9ibGVtLgorCitUbyByZXBvcnQgYSBwcm9ibGVtIHdpdGggdGhlIEF1dG9Sb2xs ZXIgaXRzZWxmLCBwbGVhc2UgZmlsZSBhIGJ1ZzoKK2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcv cC9za2lhL2lzc3Vlcy9lbnRyeT90ZW1wbGF0ZT1BdXRvcm9sbGVyK0J1ZworCitEb2N1bWVudGF0 aW9uIGZvciB0aGUgQXV0b1JvbGxlciBpcyBoZXJlOgoraHR0cHM6Ly9za2lhLmdvb2dsZXNvdXJj ZS5jb20vYnVpbGRib3QvK2RvYy9tYXN0ZXIvYXV0b3JvbGwvUkVBRE1FLm1kCisKK1RicjogYy1j b21waWxlci1jaHJvbWVAZ29vZ2xlLmNvbQorQ2hhbmdlLUlkOiBJOWI1ZmZiYzk2YjA1ZWQ1ZmQx Y2U2NDEzNjM5ODc4NDE3MWYzNGFmNworUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2 aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY2MDEzCitSZXZpZXdlZC1i eTogQ2hyb21lIFJlbGVhc2UgQXV0b3JvbGwgPGNocm9taXVtLXJlbGVhc2UtYXV0b3JvbGxAc2tp YS1wdWJsaWMuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20+CitDb21taXQtUXVldWU6IENocm9tZSBS ZWxlYXNlIEF1dG9yb2xsIDxjaHJvbWl1bS1yZWxlYXNlLWF1dG9yb2xsQHNraWEtcHVibGljLmlh bS5nc2VydmljZWFjY291bnQuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1o ZWFkcy80MTAzQHsjNzI1fQorQ3ItQnJhbmNoZWQtRnJvbTogOGFkNDdlOGQyMWY2ODY2ZTRhMzdm NDdkODNhODYwZDQxZGViZjUxNC1yZWZzL2hlYWRzL21hc3RlckB7Izc1NjA2Nn0KKy0tLQorIGNo cm9tZW9zL3Byb2ZpbGVzL2Fpcm1vbnQuYWZkby5uZXdlc3QudHh0IHwgMiArLQorIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY2hy b21lb3MvcHJvZmlsZXMvYWlybW9udC5hZmRvLm5ld2VzdC50eHQgYi9jaHJvbWVvcy9wcm9maWxl cy9haXJtb250LmFmZG8ubmV3ZXN0LnR4dAoraW5kZXggNzI5OGVhYmJjYWQuLjEzMGI4ZmU4NjJk IDEwMDY0NAorLS0tIGEvY2hyb21lb3MvcHJvZmlsZXMvYWlybW9udC5hZmRvLm5ld2VzdC50eHQK KysrKyBiL2Nocm9tZW9zL3Byb2ZpbGVzL2Fpcm1vbnQuYWZkby5uZXdlc3QudHh0CitAQCAtMSAr MSBAQAorLWNocm9tZW9zLWNocm9tZS1hbWQ2NC1haXJtb250LTgzLTQxMDMuOTctMTU5MjIxNDYx OC1iZW5jaG1hcmstODMuMC40MTAzLjExNy1yMS1yZWRhY3RlZC5hZmRvLnh6CisrY2hyb21lb3Mt Y2hyb21lLWFtZDY0LWFpcm1vbnQtODMtNDEwMy4xMTItMTU5MjgyMzY1OC1iZW5jaG1hcmstODMu MC40MTAzLjExOS1yMS1yZWRhY3RlZC5hZmRvLnh6CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDMt Um9sbC1DaHJvbWVPUy1TaWx2ZXJtb250LUFGRE8tcHJvZmlsZS1mcm9tLTgzLTQxMDMuOS5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAw My1Sb2xsLUNocm9tZU9TLVNpbHZlcm1vbnQtQUZETy1wcm9maWxlLWZyb20tODMtNDEwMy45LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NzI5ZWNlNzdjZgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tdXBzdHJlYW0tMDAwMy1Sb2xsLUNocm9tZU9TLVNpbHZlcm1vbnQtQUZETy1wcm9maWxlLWZy b20tODMtNDEwMy45LnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAKK0Zyb20gZTdmYjM4ZDg5MjdhN2Qx NGJlYmEwZmVkNGQxNGQwMTEwYWYzZWQxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IENocm9tZSBSZWxlYXNlIEF1dG9yb2xsCisgPGNocm9taXVtLXJlbGVhc2UtYXV0b3JvbGxAc2tp YS1wdWJsaWMuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20+CitEYXRlOiBUaHUsIDI1IEp1biAyMDIw IDA4OjU1OjQwICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDMvMTJdIFJvbGwgQ2hyb21lT1MgU2ls dmVybW9udCBBRkRPIHByb2ZpbGUgZnJvbQorIDgzLTQxMDMuOTctMTU5MjIxNjU1Ny1iZW5jaG1h cmstODMuMC40MTAzLjExNy1yMSB0bworIDgzLTQxMDMuMTEyLTE1OTI4MTk4ODQtYmVuY2htYXJr LTgzLjAuNDEwMy4xMTktcjEKKworSWYgdGhpcyByb2xsIGhhcyBjYXVzZWQgYSBicmVha2FnZSwg cmV2ZXJ0IHRoaXMgQ0wgYW5kIHN0b3AgdGhlIHJvbGxlcgordXNpbmcgdGhlIGNvbnRyb2xzIGhl cmU6CitodHRwczovL2F1dG9yb2xsLnNraWEub3JnL3IvY3Jvcy1hZmRvLXNpbHZlcm1vbnQtY2hy b21pdW0tc3RhYmxlCitQbGVhc2UgQ0MgYy1jb21waWxlci1jaHJvbWVAZ29vZ2xlLmNvbSBvbiB0 aGUgcmV2ZXJ0IHRvIGVuc3VyZSB0aGF0IGEgaHVtYW4KK2lzIGF3YXJlIG9mIHRoZSBwcm9ibGVt LgorCitUbyByZXBvcnQgYSBwcm9ibGVtIHdpdGggdGhlIEF1dG9Sb2xsZXIgaXRzZWxmLCBwbGVh c2UgZmlsZSBhIGJ1ZzoKK2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9za2lhL2lzc3Vlcy9l bnRyeT90ZW1wbGF0ZT1BdXRvcm9sbGVyK0J1ZworCitEb2N1bWVudGF0aW9uIGZvciB0aGUgQXV0 b1JvbGxlciBpcyBoZXJlOgoraHR0cHM6Ly9za2lhLmdvb2dsZXNvdXJjZS5jb20vYnVpbGRib3Qv K2RvYy9tYXN0ZXIvYXV0b3JvbGwvUkVBRE1FLm1kCisKK1RicjogYy1jb21waWxlci1jaHJvbWVA Z29vZ2xlLmNvbQorQ2hhbmdlLUlkOiBJN2EyYzA5MWM5NjI2NmRmNTM5OGI0ZDUyNjU2OGU1Nzli NDJiYTc3MgorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJj ZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY2MDE0CitSZXZpZXdlZC1ieTogQ2hyb21lIFJlbGVh c2UgQXV0b3JvbGwgPGNocm9taXVtLXJlbGVhc2UtYXV0b3JvbGxAc2tpYS1wdWJsaWMuaWFtLmdz ZXJ2aWNlYWNjb3VudC5jb20+CitDb21taXQtUXVldWU6IENocm9tZSBSZWxlYXNlIEF1dG9yb2xs IDxjaHJvbWl1bS1yZWxlYXNlLWF1dG9yb2xsQHNraWEtcHVibGljLmlhbS5nc2VydmljZWFjY291 bnQuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1oZWFkcy80MTAzQHsjNzI2 fQorQ3ItQnJhbmNoZWQtRnJvbTogOGFkNDdlOGQyMWY2ODY2ZTRhMzdmNDdkODNhODYwZDQxZGVi ZjUxNC1yZWZzL2hlYWRzL21hc3RlckB7Izc1NjA2Nn0KKy0tLQorIGNocm9tZW9zL3Byb2ZpbGVz L3NpbHZlcm1vbnQuYWZkby5uZXdlc3QudHh0IHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lb3MvcHJvZmls ZXMvc2lsdmVybW9udC5hZmRvLm5ld2VzdC50eHQgYi9jaHJvbWVvcy9wcm9maWxlcy9zaWx2ZXJt b250LmFmZG8ubmV3ZXN0LnR4dAoraW5kZXggNjg3ODY2MDBhNDkuLmRmNDhlMzVjMmU5IDEwMDY0 NAorLS0tIGEvY2hyb21lb3MvcHJvZmlsZXMvc2lsdmVybW9udC5hZmRvLm5ld2VzdC50eHQKKysr KyBiL2Nocm9tZW9zL3Byb2ZpbGVzL3NpbHZlcm1vbnQuYWZkby5uZXdlc3QudHh0CitAQCAtMSAr MSBAQAorLWNocm9tZW9zLWNocm9tZS1hbWQ2NC1zaWx2ZXJtb250LTgzLTQxMDMuOTctMTU5MjIx NjU1Ny1iZW5jaG1hcmstODMuMC40MTAzLjExNy1yMS1yZWRhY3RlZC5hZmRvLnh6CisrY2hyb21l b3MtY2hyb21lLWFtZDY0LXNpbHZlcm1vbnQtODMtNDEwMy4xMTItMTU5MjgxOTg4NC1iZW5jaG1h cmstODMuMC40MTAzLjExOS1yMS1yZWRhY3RlZC5hZmRvLnh6CistLSAKKzIuMjguMAorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFt LTAwMDQtUm9sbC1DaHJvbWVPUy1Ccm9hZHdlbGwtQUZETy1wcm9maWxlLWZyb20tODMtNDEwMy45 Ny5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJl YW0tMDAwNC1Sb2xsLUNocm9tZU9TLUJyb2Fkd2VsbC1BRkRPLXByb2ZpbGUtZnJvbS04My00MTAz Ljk3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NzNmMmU3 MDU4ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tdXBzdHJlYW0tMDAwNC1Sb2xsLUNocm9tZU9TLUJyb2Fkd2VsbC1BRkRPLXByb2Zp bGUtZnJvbS04My00MTAzLjk3LnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAKK0Zyb20gYzkwMDcxZTJj YWFmMjhkYTE0NTM2ZTRiM2Y2Yzc0Y2JhNzFjOTI0YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IENocm9tZSBSZWxlYXNlIEF1dG9yb2xsCisgPGNocm9taXVtLXJlbGVhc2UtYXV0b3Jv bGxAc2tpYS1wdWJsaWMuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20+CitEYXRlOiBUaHUsIDI1IEp1 biAyMDIwIDA5OjUyOjQ4ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDQvMTJdIFJvbGwgQ2hyb21l T1MgQnJvYWR3ZWxsIEFGRE8gcHJvZmlsZSBmcm9tCisgODMtNDEwMy45Ny0xNTkyMjE4Njg3LWJl bmNobWFyay04My4wLjQxMDMuMTE3LXIxIHRvCisgODMtNDEwMy45Ny0xNTkyODE5MTk3LWJlbmNo bWFyay04My4wLjQxMDMuMTE5LXIxCisKK0lmIHRoaXMgcm9sbCBoYXMgY2F1c2VkIGEgYnJlYWth Z2UsIHJldmVydCB0aGlzIENMIGFuZCBzdG9wIHRoZSByb2xsZXIKK3VzaW5nIHRoZSBjb250cm9s cyBoZXJlOgoraHR0cHM6Ly9hdXRvcm9sbC5za2lhLm9yZy9yL2Nyb3MtYWZkby1icm9hZHdlbGwt Y2hyb21pdW0tc3RhYmxlCitQbGVhc2UgQ0MgYy1jb21waWxlci1jaHJvbWVAZ29vZ2xlLmNvbSBv biB0aGUgcmV2ZXJ0IHRvIGVuc3VyZSB0aGF0IGEgaHVtYW4KK2lzIGF3YXJlIG9mIHRoZSBwcm9i bGVtLgorCitUbyByZXBvcnQgYSBwcm9ibGVtIHdpdGggdGhlIEF1dG9Sb2xsZXIgaXRzZWxmLCBw bGVhc2UgZmlsZSBhIGJ1ZzoKK2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9za2lhL2lzc3Vl cy9lbnRyeT90ZW1wbGF0ZT1BdXRvcm9sbGVyK0J1ZworCitEb2N1bWVudGF0aW9uIGZvciB0aGUg QXV0b1JvbGxlciBpcyBoZXJlOgoraHR0cHM6Ly9za2lhLmdvb2dsZXNvdXJjZS5jb20vYnVpbGRi b3QvK2RvYy9tYXN0ZXIvYXV0b3JvbGwvUkVBRE1FLm1kCisKK1RicjogYy1jb21waWxlci1jaHJv bWVAZ29vZ2xlLmNvbQorQ2hhbmdlLUlkOiBJM2RlMWJkNjhlZGEyNmE5MjUwMmMyZTM4MDQ0YjJi ZDRkZDg1NWQ3MQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNv dXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY2MDE5CitSZXZpZXdlZC1ieTogQ2hyb21lIFJl bGVhc2UgQXV0b3JvbGwgPGNocm9taXVtLXJlbGVhc2UtYXV0b3JvbGxAc2tpYS1wdWJsaWMuaWFt LmdzZXJ2aWNlYWNjb3VudC5jb20+CitDb21taXQtUXVldWU6IENocm9tZSBSZWxlYXNlIEF1dG9y b2xsIDxjaHJvbWl1bS1yZWxlYXNlLWF1dG9yb2xsQHNraWEtcHVibGljLmlhbS5nc2VydmljZWFj Y291bnQuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1oZWFkcy80MTAzQHsj NzI3fQorQ3ItQnJhbmNoZWQtRnJvbTogOGFkNDdlOGQyMWY2ODY2ZTRhMzdmNDdkODNhODYwZDQx ZGViZjUxNC1yZWZzL2hlYWRzL21hc3RlckB7Izc1NjA2Nn0KKy0tLQorIGNocm9tZW9zL3Byb2Zp bGVzL2Jyb2Fkd2VsbC5hZmRvLm5ld2VzdC50eHQgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jaHJvbWVvcy9wcm9m aWxlcy9icm9hZHdlbGwuYWZkby5uZXdlc3QudHh0IGIvY2hyb21lb3MvcHJvZmlsZXMvYnJvYWR3 ZWxsLmFmZG8ubmV3ZXN0LnR4dAoraW5kZXggN2NhNjQxMDdjYTkuLjk1M2FiYTU4YTY0IDEwMDY0 NAorLS0tIGEvY2hyb21lb3MvcHJvZmlsZXMvYnJvYWR3ZWxsLmFmZG8ubmV3ZXN0LnR4dAorKysr IGIvY2hyb21lb3MvcHJvZmlsZXMvYnJvYWR3ZWxsLmFmZG8ubmV3ZXN0LnR4dAorQEAgLTEgKzEg QEAKKy1jaHJvbWVvcy1jaHJvbWUtYW1kNjQtYnJvYWR3ZWxsLTgzLTQxMDMuOTctMTU5MjIxODY4 Ny1iZW5jaG1hcmstODMuMC40MTAzLjExNy1yMS1yZWRhY3RlZC5hZmRvLnh6CisrY2hyb21lb3Mt Y2hyb21lLWFtZDY0LWJyb2Fkd2VsbC04My00MTAzLjk3LTE1OTI4MTkxOTctYmVuY2htYXJrLTgz LjAuNDEwMy4xMTktcjEtcmVkYWN0ZWQuYWZkby54egorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA1 LUluY3JlbWVudGluZy1WRVJTSU9OLXRvLTgzLjAuNDEwMy4xMjAucGF0Y2ggYi9zcmNwa2dzL2Vs ZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDUtSW5jcmVtZW50aW5n LVZFUlNJT04tdG8tODMuMC40MTAzLjEyMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZWFlNDVkMTAzMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Vs ZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDUtSW5jcmVtZW50aW5n LVZFUlNJT04tdG8tODMuMC40MTAzLjEyMC5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIGRk NjhkOGVmZTJjNGE1YzNmMDQzMTdkNzFlMzU5YjJkNTc5ZmNmNTkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBjaHJvbWUtcmVsZWFzZS1ib3QgPGNocm9tZS1yZWxlYXNlLWJvdEBjaHJv bWl1bS5vcmc+CitEYXRlOiBGcmksIDI2IEp1biAyMDIwIDE1OjA1OjIxICswMDAwCitTdWJqZWN0 OiBbUEFUQ0ggMDUvMTJdIEluY3JlbWVudGluZyBWRVJTSU9OIHRvIDgzLjAuNDEwMy4xMjAKKwor VEJSPWJlbm1hc29uQGNocm9taXVtLm9yZworCitDaGFuZ2UtSWQ6IEkyZGU2ZmJlZjZiMWQ1YmE2 ZDliYmQ1Mjk2ZTk3MDZkN2NhMzE5NGUyCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1y ZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIyNjk1MDUKK1Jldmlld2Vk LWJ5OiBDaHJvbWUgUmVsZWFzZSBCb3QgKExVQ0kpIDxjaHJvbWUtb2ZmaWNpYWwtYnJhbmNoZXJA Y2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbT4KK0NyLUNvbW1p dC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvNDEwM0B7IzcyOH0KK0NyLUJyYW5jaGVkLUZy b206IDhhZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3ZDgzYTg2MGQ0MWRlYmY1MTQtcmVmcy9oZWFkcy9t YXN0ZXJAeyM3NTYwNjZ9CistLS0KKyBjaHJvbWUvVkVSU0lPTiB8IDIgKy0KKyAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2Nocm9t ZS9WRVJTSU9OIGIvY2hyb21lL1ZFUlNJT04KK2luZGV4IDdjMDQ5OWNhZmFjLi5mNzMxMGE5MmNm MyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9WRVJTSU9OCisrKysgYi9jaHJvbWUvVkVSU0lPTgorQEAg LTEsNCArMSw0IEBACisgTUFKT1I9ODMKKyBNSU5PUj0wCisgQlVJTEQ9NDEwMworLVBBVENIPTEx OQorK1BBVENIPTEyMAorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJv bjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA2LU1vdmUtR0NQVy1ib29ra2Vl cGluZy1vdXQtb2YtZm9ya2VkLXByb2Nlc3MucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDYtTW92ZS1HQ1BXLWJvb2trZWVwaW5nLW91 dC1vZi1mb3JrZWQtcHJvY2Vzcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMGE1ZTAwMjc2NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDYtTW92ZS1HQ1BXLWJvb2trZWVw aW5nLW91dC1vZi1mb3JrZWQtcHJvY2Vzcy5wYXRjaApAQCAtMCwwICsxLDE1MCBAQAorRnJvbSA4 Yjc4MjAzZDhkMTk5MWU0ZWQ4YjUwYjVkNDRlMWM4ZTc2YzYwMDAxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogWXVzdWYgU2VuZ3VsIDx5dXN1ZnNuQGdvb2dsZS5jb20+CitEYXRlOiBG cmksIDI2IEp1biAyMDIwIDE5OjU0OjM4ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDYvMTJdIE1v dmUgR0NQVyBib29ra2VlcGluZyBvdXQgb2YgZm9ya2VkIHByb2Nlc3MKKworKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgZjJlMzU2NTU2MmUzOGU3NjAyMjBhNGM2ZDJlYTg5NTQ3NzA4MTA5NSkK KworQnVnOiAxMDk3NDA3CitDaGFuZ2UtSWQ6IEk4MGIwZmE1N2NjMTkxOTZiMDZiM2NiZWM1YWZj N2M0NDg4ZmY3MzI1CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xl c291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIyNTUxMTMKK0NvbW1pdC1RdWV1ZTogWXVzdWYg U2VuZ3VsIDx5dXN1ZnNuQGdvb2dsZS5jb20+CitSZXZpZXdlZC1ieTogUmFrZXNoIFNvbWEgPHJh a2VzaHNvbWFAZ29vZ2xlLmNvbT4KK0NyLU9yaWdpbmFsLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9o ZWFkcy9tYXN0ZXJAeyM3ODE3MjF9CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZp ZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIyNjgxMTcKK0NyLUNvbW1pdC1Q b3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvNDEwM0B7IzcyOX0KK0NyLUJyYW5jaGVkLUZyb206 IDhhZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3ZDgzYTg2MGQ0MWRlYmY1MTQtcmVmcy9oZWFkcy9tYXN0 ZXJAeyM3NTYwNjZ9CistLS0KKyAuLi4vZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmNjICAg ICAgICAgICAgfCA2NyArKysrKysrKysrLS0tLS0tLS0tCisgLi4uL2dhaWFjcC9nYWlhX2NyZWRl bnRpYWxfYmFzZS5oICAgICAgICAgICAgIHwgIDUgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDM3IGlu c2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL2NyZWRl bnRpYWxfcHJvdmlkZXIvZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmNjIGIvY2hyb21lL2Ny ZWRlbnRpYWxfcHJvdmlkZXIvZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmNjCitpbmRleCA2 NzA0YTlkYjljOC4uMzBlODAxMWI3M2QgMTAwNjQ0CistLS0gYS9jaHJvbWUvY3JlZGVudGlhbF9w cm92aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuY2MKKysrKyBiL2Nocm9tZS9jcmVk ZW50aWFsX3Byb3ZpZGVyL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5jYworQEAgLTE5ODYs NyArMTk4Niw3IEBAIHVuc2lnbmVkIF9fc3RkY2FsbCBDR2FpYUNyZWRlbnRpYWxCYXNlOjpXYWl0 Rm9yTG9naW5VSSh2b2lkKiBwYXJhbSkgeworIH0KKyAKKyAvLyBzdGF0aWMKKy1IUkVTVUxUIENH YWlhQ3JlZGVudGlhbEJhc2U6OlNhdmVBY2NvdW50SW5mbyhjb25zdCBiYXNlOjpWYWx1ZSYgcHJv cGVydGllcykgeworK0hSRVNVTFQgQ0dhaWFDcmVkZW50aWFsQmFzZTo6UGVyZm9ybUFjdGlvbnMo Y29uc3QgYmFzZTo6VmFsdWUmIHByb3BlcnRpZXMpIHsKKyAgIExPR0ZOKFZFUkJPU0UpOworIAor ICAgYmFzZTo6c3RyaW5nMTYgc2lkID0gR2V0RGljdFN0cmluZyhwcm9wZXJ0aWVzLCBrS2V5U0lE KTsKK0BAIC0yMDA5LDM1ICsyMDA5LDkgQEAgSFJFU1VMVCBDR2FpYUNyZWRlbnRpYWxCYXNlOjpT YXZlQWNjb3VudEluZm8oY29uc3QgYmFzZTo6VmFsdWUmIHByb3BlcnRpZXMpIHsKKyAKKyAgIGJh c2U6OnN0cmluZzE2IGRvbWFpbiA9IEdldERpY3RTdHJpbmcocHJvcGVydGllcywga0tleURvbWFp bik7CisgCistICAvLyBUT0RPKGNyYnVnLmNvbS85NzY3NDQpOiBVc2UgdGhlIGRvd24gc2NvcGVk IGtLZXlNZG1BY2Nlc3NUb2tlbiBpbnN0ZWFkCistICAvLyBvZiBsb2dpbiBzY29wZWQgdG9rZW4u CistICBzdGQ6OnN0cmluZyBhY2Nlc3NfdG9rZW4gPSBHZXREaWN0U3RyaW5nVVRGOChwcm9wZXJ0 aWVzLCBrS2V5QWNjZXNzVG9rZW4pOworLSAgaWYgKCFhY2Nlc3NfdG9rZW4uZW1wdHkoKSkgewor LSAgICAvLyBVcGRhdGUgdGhlIHBhc3N3b3JkIHJlY292ZXJ5IGluZm9ybWF0aW9uIGlmIHBvc3Np YmxlLgorLSAgICBIUkVTVUxUIGhyID0gUGFzc3dvcmRSZWNvdmVyeU1hbmFnZXI6OkdldCgpLT5T dG9yZVdpbmRvd3NQYXNzd29yZElmTmVlZGVkKAorLSAgICAgICAgc2lkLCBhY2Nlc3NfdG9rZW4s IHBhc3N3b3JkKTsKKy0gICAgaWYgKEZBSUxFRChocikgJiYgaHIgIT0gRV9OT1RJTVBMKQorLSAg ICAgIExPR0ZOKEVSUk9SKSA8PCAiU3RvcmVXaW5kb3dzUGFzc3dvcmRJZk5lZWRlZCBocj0iIDw8 IHB1dEhSKGhyKTsKKy0KKy0gICAgLy8gVXBsb2FkIGRldmljZSBkZXRhaWxzIHRvIGdlbSBkYXRh YmFzZS4KKy0gICAgaHIgPSBHZW1EZXZpY2VEZXRhaWxzTWFuYWdlcjo6R2V0KCktPlVwbG9hZERl dmljZURldGFpbHMoYWNjZXNzX3Rva2VuLCBzaWQsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLCBkb21haW4pOwor LSAgICBpZiAoRkFJTEVEKGhyKSAmJiBociAhPSBFX05PVElNUEwpCistICAgICAgTE9HRk4oRVJS T1IpIDw8ICJVcGxvYWREZXZpY2VEZXRhaWxzIGhyPSIgPDwgcHV0SFIoaHIpOworLQorLSAgICBT ZXRVc2VyUHJvcGVydHkoc2lkLCBrUmVnRGV2aWNlRGV0YWlsc1VwbG9hZFN0YXR1cywgU1VDQ0VF REVEKGhyKSA/IDEgOiAwKTsKKy0KKy0gICAgLy8gQmVsb3cgc2V0dGVyIGlzIG9ubHkgdXNlZCBm b3IgdW5pdCB0ZXN0aW5nLgorLSAgICBHZW1EZXZpY2VEZXRhaWxzTWFuYWdlcjo6R2V0KCktPlNl dFVwbG9hZFN0YXR1c0ZvclRlc3RpbmcoaHIpOworLSAgfSBlbHNlIHsKKy0gICAgTE9HRk4oRVJS T1IpIDw8ICJBY2Nlc3MgdG9rZW4gaXMgZW1wdHkuIENhbm5vdCBzYXZlIFdpbmRvd3MgcGFzc3dv cmQuIjsKKy0gIH0KKy0KKyAgIC8vIExvYWQgdGhlIHVzZXIncyBwcm9maWxlIHNvIHRoYXQgdGhl aXIgcmVnaXN0cnkgaGl2ZSBpcyBhdmFpbGFibGUuCisgICBhdXRvIHByb2ZpbGUgPSBTY29wZWRV c2VyUHJvZmlsZTo6Q3JlYXRlKHNpZCwgZG9tYWluLCB1c2VybmFtZSwgcGFzc3dvcmQpOworIAor LSAgU2VjdXJlbHlDbGVhclN0cmluZyhwYXNzd29yZCk7CistCisgICBpZiAoIXByb2ZpbGUpIHsK KyAgICAgTE9HRk4oRVJST1IpIDw8ICJDb3VsZCBub3QgbG9hZCB1c2VyIHByb2ZpbGUiOworICAg ICByZXR1cm4gRV9VTkVYUEVDVEVEOworQEAgLTIwNDcsNiArMjAyMSwzMiBAQCBIUkVTVUxUIENH YWlhQ3JlZGVudGlhbEJhc2U6OlNhdmVBY2NvdW50SW5mbyhjb25zdCBiYXNlOjpWYWx1ZSYgcHJv cGVydGllcykgeworICAgaWYgKEZBSUxFRChocikpCisgICAgIExPR0ZOKEVSUk9SKSA8PCAicHJv ZmlsZS5TYXZlQWNjb3VudEluZm8gZmFpbGVkIChjb250KSBocj0iIDw8IHB1dEhSKGhyKTsKKyAK KysgIC8vIFRPRE8oY3JidWcuY29tLzk3Njc0NCk6IFVzZSB0aGUgZG93biBzY29wZWQga0tleU1k bUFjY2Vzc1Rva2VuIGluc3RlYWQKKysgIC8vIG9mIGxvZ2luIHNjb3BlZCB0b2tlbi4KKysgIHN0 ZDo6c3RyaW5nIGFjY2Vzc190b2tlbiA9IEdldERpY3RTdHJpbmdVVEY4KHByb3BlcnRpZXMsIGtL ZXlBY2Nlc3NUb2tlbik7CisrICBpZiAoYWNjZXNzX3Rva2VuLmVtcHR5KCkpIHsKKysgICAgTE9H Rk4oRVJST1IpIDw8ICJBY2Nlc3MgdG9rZW4gaXMgZW1wdHkuIjsKKysgICAgcmV0dXJuIEVfRkFJ TDsKKysgIH0KKysKKysgIC8vIFVwZGF0ZSB0aGUgcGFzc3dvcmQgcmVjb3ZlcnkgaW5mb3JtYXRp b24gaWYgcG9zc2libGUuCisrICBociA9IFBhc3N3b3JkUmVjb3ZlcnlNYW5hZ2VyOjpHZXQoKS0+ U3RvcmVXaW5kb3dzUGFzc3dvcmRJZk5lZWRlZCgKKysgICAgc2lkLCBhY2Nlc3NfdG9rZW4sIHBh c3N3b3JkKTsKKysgIFNlY3VyZWx5Q2xlYXJTdHJpbmcocGFzc3dvcmQpOworKyAgaWYgKEZBSUxF RChocikgJiYgaHIgIT0gRV9OT1RJTVBMKQorKyAgICBMT0dGTihFUlJPUikgPDwgIlN0b3JlV2lu ZG93c1Bhc3N3b3JkSWZOZWVkZWQgaHI9IiA8PCBwdXRIUihocik7CisrCisrICAvLyBVcGxvYWQg ZGV2aWNlIGRldGFpbHMgdG8gZ2VtIGRhdGFiYXNlLgorKyAgaHIgPSBHZW1EZXZpY2VEZXRhaWxz TWFuYWdlcjo6R2V0KCktPlVwbG9hZERldmljZURldGFpbHMoYWNjZXNzX3Rva2VuLCBzaWQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1c2VybmFtZSwgZG9tYWluKTsKKysgIGlmIChGQUlMRUQoaHIpICYmIGhyICE9IEVfTk9USU1Q TCkKKysgICAgTE9HRk4oRVJST1IpIDw8ICJVcGxvYWREZXZpY2VEZXRhaWxzIGhyPSIgPDwgcHV0 SFIoaHIpOworKworKyAgU2V0VXNlclByb3BlcnR5KHNpZCwga1JlZ0RldmljZURldGFpbHNVcGxv YWRTdGF0dXMsIFNVQ0NFRURFRChocikgPyAxIDogMCk7CisrCisrICAvLyBCZWxvdyBzZXR0ZXIg aXMgb25seSB1c2VkIGZvciB1bml0IHRlc3RpbmcuCisrICBHZW1EZXZpY2VEZXRhaWxzTWFuYWdl cjo6R2V0KCktPlNldFVwbG9hZFN0YXR1c0ZvclRlc3RpbmcoaHIpOworKworICAgcmV0dXJuIGhy OworIH0KKyAKK0BAIC0yMDU4LDkgKzIwNTgsOSBAQCBIUkVTVUxUIENHYWlhQ3JlZGVudGlhbEJh c2U6OlBlcmZvcm1Qb3N0U2lnbmluQWN0aW9ucygKKyAgIEhSRVNVTFQgaHIgPSBTX09LOworIAor ICAgaWYgKGNvbV9pbml0aWFsaXplZCkgeworLSAgICBociA9IGNyZWRlbnRpYWxfcHJvdmlkZXI6 OkNHYWlhQ3JlZGVudGlhbEJhc2U6OlNhdmVBY2NvdW50SW5mbyhwcm9wZXJ0aWVzKTsKKysgICAg aHIgPSBjcmVkZW50aWFsX3Byb3ZpZGVyOjpDR2FpYUNyZWRlbnRpYWxCYXNlOjpQZXJmb3JtQWN0 aW9ucyhwcm9wZXJ0aWVzKTsKKyAgICAgaWYgKEZBSUxFRChocikpCistICAgICAgTE9HRk4oRVJS T1IpIDw8ICJTYXZlQWNjb3VudEluZm8gaHI9IiA8PCBwdXRIUihocik7CisrICAgICAgTE9HRk4o RVJST1IpIDw8ICJQZXJmb3JtQWN0aW9ucyBocj0iIDw8IHB1dEhSKGhyKTsKKyAKKyAgICAgLy8g VHJ5IHRvIGVucm9sbCB0aGUgbWFjaGluZSB0byBNRE0gaGVyZS4gTURNIHJlcXVpcmVzIGEgdXNl ciB0byBiZSBzaWduZWQKKyAgICAgLy8gb24gdG8gYW4gaW50ZXJhY3RpdmUgc2Vzc2lvbiB0byBz dWNjZWVkIGFuZCB3aGVuIHdlIGNhbGwgdGhpcyBmdW5jdGlvbgorQEAgLTIwODksMTAgKzIwODks MTEgQEAgSFJFU1VMVCBDR2FpYUNyZWRlbnRpYWxCYXNlOjpQZXJmb3JtUG9zdFNpZ25pbkFjdGlv bnMoCisgCisgLy8gUmVnaXN0ZXJzIE9TIHVzZXIgLSBnYWlhIHVzZXIgYXNzb2NpYXRpb24gaW4g SEtFWV9MT0NBTF9NQUNISU5FIHJlZ2lzdHJ5CisgLy8gaGl2ZS4KKy1IUkVTVUxUIFJlZ2lzdGVy QXNzb2NpYXRpb24oY29uc3QgYmFzZTo6c3RyaW5nMTYmIHNpZCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgYmFzZTo6c3RyaW5nMTYmIGlkLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBiYXNlOjpzdHJpbmcxNiYgZW1haWwsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGJhc2U6OnN0cmluZzE2JiB0b2tlbl9oYW5kbGUpIHsKKytIUkVT VUxUCisrUmVnaXN0ZXJBc3NvY2lhdGlvbihjb25zdCBiYXNlOjpzdHJpbmcxNiYgc2lkLAorKyAg ICAgICAgICAgICAgICAgICAgY29uc3QgYmFzZTo6c3RyaW5nMTYmIGlkLAorKyAgICAgICAgICAg ICAgICAgICAgY29uc3QgYmFzZTo6c3RyaW5nMTYmIGVtYWlsLAorKyAgICAgICAgICAgICAgICAg ICAgY29uc3QgYmFzZTo6c3RyaW5nMTYmIHRva2VuX2hhbmRsZSkgeworICAgLy8gU2F2ZSB0b2tl biBoYW5kbGUuICBUaGlzIGhhbmRsZSB3aWxsIGJlIHVzZWQgbGF0ZXIgdG8gZGV0ZXJtaW5lIGlm IHRoZQorICAgLy8gdGhlIHVzZXIgaGFzIGNoYW5nZWQgdGhlaXIgcGFzc3dvcmQgc2luY2UgdGhl IGFjY291bnQgd2FzIGNyZWF0ZWQuCisgICBIUkVTVUxUIGhyID0gU2V0VXNlclByb3BlcnR5KHNp ZCwga1VzZXJUb2tlbkhhbmRsZSwgdG9rZW5faGFuZGxlKTsKK2RpZmYgLS1naXQgYS9jaHJvbWUv Y3JlZGVudGlhbF9wcm92aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuaCBiL2Nocm9t ZS9jcmVkZW50aWFsX3Byb3ZpZGVyL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5oCitpbmRl eCA2YWFhZjQ0MjQ0Yi4uNmJmMzNmZjRkM2IgMTAwNjQ0CistLS0gYS9jaHJvbWUvY3JlZGVudGlh bF9wcm92aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuaAorKysrIGIvY2hyb21lL2Ny ZWRlbnRpYWxfcHJvdmlkZXIvZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmgKK0BAIC05Nyw4 ICs5Nyw5IEBAIGNsYXNzIEFUTF9OT19WVEFCTEUgQ0dhaWFDcmVkZW50aWFsQmFzZQorICAgICBy ZXR1cm4gYXV0aGVudGljYXRpb25fcmVzdWx0c187CisgICB9CisgCistICAvLyBTYXZlcyBnYWlh IGluZm9ybWF0aW9uIGluIHRoZSBPUyBhY2NvdW50IHRoYXQgd2FzIGp1c3QgY3JlYXRlZC4KKy0g IHN0YXRpYyBIUkVTVUxUIFNhdmVBY2NvdW50SW5mbyhjb25zdCBiYXNlOjpWYWx1ZSYgcHJvcGVy dGllcyk7CisrICAvLyBTYXZlcyBhY2NvdW50IGFzc29jaWF0aW9uIGFuZCB1c2VyIHByb2ZpbGUg aW5mb3JtYXRpb24uIE1ha2VzIHZhcmlvdXMgSFRUUAorKyAgLy8gY2FsbHMgcmVnYXJkaW5nIGRl dmljZSBwcm92aXNpb25pbmcgYW5kIHBhc3N3b3JkIG1hbmFnZW1lbnQuCisrICBzdGF0aWMgSFJF U1VMVCBQZXJmb3JtQWN0aW9ucyhjb25zdCBiYXNlOjpWYWx1ZSYgcHJvcGVydGllcyk7CisgCisg ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgY3JlZGVudGlhbHMgc3RvcmVkIGluIHx1 c2VybmFtZV98IGFuZAorICAgLy8gfHBhc3N3b3JkX3wgYXJlIHZhbGlkIGFuZCBzaG91bGQgc3Vj Y2VlZCBhIGxvY2FsIFdpbmRvd3MgbG9nb24uIFRoaXMKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAw Ny1TdXBwb3J0LUdDUFctbG9naW4tdG8tcGVybWl0dGVkLWFjY291bnRzLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA3LVN1cHBvcnQt R0NQVy1sb2dpbi10by1wZXJtaXR0ZWQtYWNjb3VudHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmY2M0ZDFmYzk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA3LVN1cHBv cnQtR0NQVy1sb2dpbi10by1wZXJtaXR0ZWQtYWNjb3VudHMucGF0Y2gKQEAgLTAsMCArMSwxOTcg QEAKK0Zyb20gZDEzODMyMTZjYmNlYjEwYWFhODBmMzU3Njg5ZTg1MzU0YWY2YWYzYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFl1c3VmIFNlbmd1bCA8eXVzdWZzbkBnb29nbGUuY29t PgorRGF0ZTogRnJpLCAyNiBKdW4gMjAyMCAyMDozODozMyArMDAwMAorU3ViamVjdDogW1BBVENI IDA3LzEyXSBTdXBwb3J0IEdDUFcgbG9naW4gdG8gcGVybWl0dGVkIGFjY291bnRzCisKKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IGY0MTQxNTJmYTlhNjY0Y2E1ZTk5ZDRjMGQwYTJlMjYxZjk4 NDZlYWUpCisKK0J1ZzogMTA5NzM4NgorQ2hhbmdlLUlkOiBJMmE5ZTYzNDg2OGZjZGE2YzhhY2M0 NmU0ODJjMmY2ZGMxNGJkYzA2NAorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3 Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjU1MDI4CitDb21taXQtUXVldWU6 IFJha2VzaCBTb21hIDxyYWtlc2hzb21hQGdvb2dsZS5jb20+CitSZXZpZXdlZC1ieTogUmFrZXNo IFNvbWEgPHJha2VzaHNvbWFAZ29vZ2xlLmNvbT4KK0NyLU9yaWdpbmFsLUNvbW1pdC1Qb3NpdGlv bjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3ODE5OTd9CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJv bWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIyNjgwODMKK0Nv bW1pdC1RdWV1ZTogWXVzdWYgU2VuZ3VsIDx5dXN1ZnNuQGdvb2dsZS5jb20+CitDci1Db21taXQt UG9zaXRpb246IHJlZnMvYnJhbmNoLWhlYWRzLzQxMDNAeyM3MzB9CitDci1CcmFuY2hlZC1Gcm9t OiA4YWQ0N2U4ZDIxZjY4NjZlNGEzN2Y0N2Q4M2E4NjBkNDFkZWJmNTE0LXJlZnMvaGVhZHMvbWFz dGVyQHsjNzU2MDY2fQorLS0tCisgLi4uL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5jYyAg ICAgICAgICAgIHwgMzAgKysrKy0tCisgLi4uL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZV91 bml0dGVzdHMuY2MgIHwgOTIgKysrKysrKysrKysrKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwg MTE2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jaHJvbWUv Y3JlZGVudGlhbF9wcm92aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuY2MgYi9jaHJv bWUvY3JlZGVudGlhbF9wcm92aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuY2MKK2lu ZGV4IDMwZTgwMTFiNzNkLi5jYzU3Mzg2Mzk5MSAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jcmVkZW50 aWFsX3Byb3ZpZGVyL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5jYworKysrIGIvY2hyb21l L2NyZWRlbnRpYWxfcHJvdmlkZXIvZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmNjCitAQCAt NzAsNiArNzAsOCBAQCBuYW1lc3BhY2UgeworIAorIGNvbnN0ZXhwciB3Y2hhcl90IGtFbWFpbERv bWFpbnNLZXlbXSA9IEwiZWQiOyAgLy8gZGVwcmVjYXRlZC4KKyBjb25zdGV4cHIgd2NoYXJfdCBr RW1haWxEb21haW5zS2V5TmV3W10gPSBMImRvbWFpbnNfYWxsb3dlZF90b19sb2dpbiI7CisrY29u c3RleHByIHdjaGFyX3Qga1Blcm1pdHRlZEFjY291bnRzW10gPSBMInBlcm1pdHRlZF9hY2NvdW50 cyI7CisrY29uc3RleHByIHdjaGFyX3Qga1Blcm1pdHRlZEFjY291bnRzU2VwYXJhdG9yW10gPSBM IiwiOworIGNvbnN0ZXhwciBjaGFyIGtHZXRBY2Nlc3NUb2tlbkJvZHlXaXRoU2NvcGVGb3JtYXRb XSA9CisgICAgICJjbGllbnRfaWQ9JXMmIgorICAgICAiY2xpZW50X3NlY3JldD0lcyYiCitAQCAt OTUsNiArOTcsMTYgQEAgY29uc3RleHByIFVJTlQga1Bhc3N3b3JkRXJyb3JzW10gPSB7SURTX1BB U1NXT1JEX0NPTVBMRVhJVFlfRVJST1JfQkFTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJRFNfVVNFUl9OT1RfRk9VTkRfUEFTU1dPUkRfRVJST1JfQkFTRSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRFNfQURfUEFTU1dPUkRfQ0hBTkdFX0RF TklFRF9CQVNFfTsKKyAKKytzdGQ6OnZlY3RvcjxiYXNlOjpzdHJpbmcxNj4gR2V0UGVybWl0dGVk QWNjb3VudHMoKSB7CisrICBiYXNlOjpzdHJpbmcxNiBwZXJtaXR0ZWRfYWNjb3VudHNfcmVnID0K KysgICAgICBHZXRHbG9iYWxGbGFnT3JEZWZhdWx0KGtQZXJtaXR0ZWRBY2NvdW50cywgTCIiKTsK KysKKysgIHJldHVybiBiYXNlOjpTcGxpdFN0cmluZyhiYXNlOjpUb0xvd2VyQVNDSUkocGVybWl0 dGVkX2FjY291bnRzX3JlZyksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAga1Blcm1pdHRl ZEFjY291bnRzU2VwYXJhdG9yLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U6Oldo aXRlc3BhY2VIYW5kbGluZzo6VFJJTV9XSElURVNQQUNFLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJhc2U6OlNwbGl0UmVzdWx0OjpTUExJVF9XQU5UX05PTkVNUFRZKTsKKyt9CisrCisg YmFzZTo6c3RyaW5nMTYgR2V0RW1haWxEb21haW5zKAorICAgICBjb25zdCBiYXNlOjpzdHJpbmcx NiByZXN0cmljdGVkX2RvbWFpbnNfcmVnX2tleSkgeworICAgcmV0dXJuIEdldEdsb2JhbEZsYWdP ckRlZmF1bHQocmVzdHJpY3RlZF9kb21haW5zX3JlZ19rZXksIEwiIik7CitAQCAtMTE4LDEyICsx MzAsOSBAQCBiYXNlOjpzdHJpbmcxNiBHZXRFbWFpbERvbWFpbnNQcmludGFibGVTdHJpbmcoKSB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6QVNDSUlUb1VURjE2KGtFbWFpbERvbWFp bnNTZXBhcmF0b3IpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U6OldoaXRlc3BhY2VI YW5kbGluZzo6VFJJTV9XSElURVNQQUNFLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U6 OlNwbGl0UmVzdWx0OjpTUExJVF9XQU5UX05PTkVNUFRZKTsKKy0gIGJhc2U6OnN0cmluZzE2IGVt YWlsX2RvbWFpbnNfc3RyOworLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkb21haW5zLnNpemUo KTsgKytpKSB7CistICAgIGVtYWlsX2RvbWFpbnNfc3RyICs9IGRvbWFpbnNbaV07CistICAgIGlm IChpIDwgZG9tYWlucy5zaXplKCkgLSAxKQorLSAgICAgIGVtYWlsX2RvbWFpbnNfc3RyICs9IEwi LCAiOworLSAgfQorKyAgYmFzZTo6c3RyaW5nMTYgZW1haWxfZG9tYWluc19zdHIgPQorKyAgICAg IGJhc2U6OkpvaW5TdHJpbmcoZG9tYWlucywgYmFzZTo6c3RyaW5nMTYoTCIsICIpKTsKKysKKyAg IHJldHVybiBlbWFpbF9kb21haW5zX3N0cjsKKyB9CisgCitAQCAtMjQwMyw2ICsyNDEyLDE1IEBA IEhSRVNVTFQgQ0dhaWFDcmVkZW50aWFsQmFzZTo6T25Vc2VyQXV0aGVudGljYXRlZChCU1RSIGF1 dGhlbnRpY2F0aW9uX2luZm8sCisgICAgICAgcmV0dXJuIGhyOworICAgICB9CisgCisrICAgIGJh c2U6OnN0cmluZzE2IGVtYWlsID0gR2V0RGljdFN0cmluZygqcHJvcGVydGllcywga0tleUVtYWls KTsKKysgICAgc3RkOjp2ZWN0b3I8YmFzZTo6c3RyaW5nMTY+IHBlcm1pdHRlZF9hY2NvdW50cyA9 IEdldFBlcm1pdHRlZEFjY291bnRzKCk7CisrICAgIGlmICghcGVybWl0dGVkX2FjY291bnRzLmVt cHR5KCkgJiYKKysgICAgICAgIHN0ZDo6ZmluZChwZXJtaXR0ZWRfYWNjb3VudHMuYmVnaW4oKSwg cGVybWl0dGVkX2FjY291bnRzLmVuZCgpLAorKyAgICAgICAgICAgICAgICAgIGVtYWlsKSA9PSBw ZXJtaXR0ZWRfYWNjb3VudHMuZW5kKCkpIHsKKysgICAgICAqc3RhdHVzX3RleHQgPSBBbGxvY0Vy cm9yU3RyaW5nKElEU19FTUFJTF9NSVNNQVRDSF9CQVNFKTsKKysgICAgICByZXR1cm4gRV9GQUlM OworKyAgICB9CisrCisgICAgIC8vIFRoZSB2YWx1ZSBpbiB8ZGljdHwgaXMgbm93IGtub3duIHRv IGNvbnRhaW4gZXZlcnl0aGluZyB0aGF0IGlzIG5lZWRlZAorICAgICAvLyBmcm9tIHRoZSBHTFMu IFRyeSB0byB2YWxpZGF0ZSB0aGUgdXNlciB0aGF0IHdhbnRzIHRvIHNpZ24gaW4gYW5kIHRoZW4K KyAgICAgLy8gYWRkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW50byB8ZGljdHwgYXMgbmVlZGVk LgorZGlmZiAtLWdpdCBhL2Nocm9tZS9jcmVkZW50aWFsX3Byb3ZpZGVyL2dhaWFjcC9nYWlhX2Ny ZWRlbnRpYWxfYmFzZV91bml0dGVzdHMuY2MgYi9jaHJvbWUvY3JlZGVudGlhbF9wcm92aWRlci9n YWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2VfdW5pdHRlc3RzLmNjCitpbmRleCAzY2M0OGZhNWIy Ni4uMzE5ZjIzOWU0Y2QgMTAwNjQ0CistLS0gYS9jaHJvbWUvY3JlZGVudGlhbF9wcm92aWRlci9n YWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2VfdW5pdHRlc3RzLmNjCisrKysgYi9jaHJvbWUvY3Jl ZGVudGlhbF9wcm92aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2VfdW5pdHRlc3RzLmNj CitAQCAtNiw2ICs2LDggQEAKKyAKKyAjaW5jbHVkZSA8c2RkbC5oPiAgLy8gRm9yIENvbnZlcnRT aWRUb1N0cmluZ1NpZCgpCisgI2luY2x1ZGUgPHdybC9jbGllbnQuaD4KKysjaW5jbHVkZSA8YWxn b3JpdGhtPgorKyNpbmNsdWRlIDx2ZWN0b3I+CisgCisgI2luY2x1ZGUgImJhc2UvZmlsZXMvc2Nv cGVkX3RlbXBfZGlyLmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfbnVtYmVyX2Nv bnZlcnNpb25zLmgiCitAQCAtNzM4LDYgKzc0MCw5NiBAQCBJTlNUQU5USUFURV9URVNUX1NVSVRF X1AoCisgICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcyhMImFjbWUuY29t LGFjbWUyLmNvbSxhY21lMy5jb20iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTCIiKSkpOworIAorK2NsYXNzIEdjcEdhaWFDcmVkZW50aWFsQmFzZVBlcm1pdHRl ZEFjY291bnRUZXN0CisrICAgIDogcHVibGljIEdjcEdhaWFDcmVkZW50aWFsQmFzZVRlc3QsCisr ICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPAorKyAgICAgICAgICBz dGQ6OnR1cGxlPGNvbnN0IHdjaGFyX3QqLCBjb25zdCB3Y2hhcl90Kj4+IHsKKysgcHVibGljOgor KyAgLy8gR2V0IGEgcHJldHR5LXByaW50ZWQgc3RyaW5nIG9mIHRoZSBsaXN0IG9mIGVtYWlsIGRv bWFpbnMgdGhhdCB3ZSBjYW4KKysgIC8vIGRpc3BsYXkgdG8gdGhlIGVuZC11c2VyLgorKyAgYmFz ZTo6c3RyaW5nMTYgR2V0RW1haWxEb21haW5zUHJpbnRhYmxlU3RyaW5nKCkgeworKyAgICBiYXNl OjpzdHJpbmcxNiBlbWFpbF9kb21haW5zX3JlZ19vbGQgPSBHZXRHbG9iYWxGbGFnT3JEZWZhdWx0 KEwiZWQiLCBMIiIpOworKyAgICBiYXNlOjpzdHJpbmcxNiBlbWFpbF9kb21haW5zX3JlZ19uZXcg PQorKyAgICAgICAgR2V0R2xvYmFsRmxhZ09yRGVmYXVsdChMImRvbWFpbnNfYWxsb3dlZF90b19s b2dpbiIsIEwiIik7CisrCisrICAgIGJhc2U6OnN0cmluZzE2IGVtYWlsX2RvbWFpbnNfcmVnID0g ZW1haWxfZG9tYWluc19yZWdfb2xkLmVtcHR5KCkKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPyBlbWFpbF9kb21haW5zX3JlZ19uZXcKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlbWFpbF9kb21haW5zX3JlZ19vbGQ7Cisr ICAgIGlmIChlbWFpbF9kb21haW5zX3JlZy5lbXB0eSgpKQorKyAgICAgIHJldHVybiBlbWFpbF9k b21haW5zX3JlZzsKKysKKysgICAgc3RkOjp2ZWN0b3I8YmFzZTo6c3RyaW5nMTY+IGRvbWFpbnMg PQorKyAgICAgICAgYmFzZTo6U3BsaXRTdHJpbmcoYmFzZTo6VG9Mb3dlckFTQ0lJKGVtYWlsX2Rv bWFpbnNfcmVnKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U6OkFTQ0lJVG9VVEYx NihrRW1haWxEb21haW5zU2VwYXJhdG9yKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGJh c2U6OldoaXRlc3BhY2VIYW5kbGluZzo6VFJJTV9XSElURVNQQUNFLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgYmFzZTo6U3BsaXRSZXN1bHQ6OlNQTElUX1dBTlRfTk9ORU1QVFkpOworKyAg ICBiYXNlOjpzdHJpbmcxNiBlbWFpbF9kb21haW5zX3N0cjsKKysgICAgZm9yIChzaXplX3QgaSA9 IDA7IGkgPCBkb21haW5zLnNpemUoKTsgKytpKSB7CisrICAgICAgZW1haWxfZG9tYWluc19zdHIg Kz0gZG9tYWluc1tpXTsKKysgICAgICBpZiAoaSA8IGRvbWFpbnMuc2l6ZSgpIC0gMSkKKysgICAg ICAgIGVtYWlsX2RvbWFpbnNfc3RyICs9IEwiLCAiOworKyAgICB9CisrICAgIHJldHVybiBlbWFp bF9kb21haW5zX3N0cjsKKysgIH0KKyt9OworKworK1RFU1RfUChHY3BHYWlhQ3JlZGVudGlhbEJh c2VQZXJtaXR0ZWRBY2NvdW50VGVzdCwgUGVybWl0dGVkQWNjb3VudHMpIHsKKysgIGNvbnN0IGJh c2U6OnN0cmluZzE2IHBlcm1pdHRlZF9hY291bnRzID0gc3RkOjpnZXQ8MD4oR2V0UGFyYW0oKSk7 CisrICBjb25zdCBiYXNlOjpzdHJpbmcxNiByZXN0cmljdGVkX2RvbWFpbnMgPSBzdGQ6OmdldDwx PihHZXRQYXJhbSgpKTsKKysKKysgIEFTU0VSVF9FUShTX09LLAorKyAgICAgICAgICAgIFNldEds b2JhbEZsYWdGb3JUZXN0aW5nKEwicGVybWl0dGVkX2FjY291bnRzIiwgcGVybWl0dGVkX2Fjb3Vu dHMpKTsKKysgIEFTU0VSVF9FUShTX09LLCBTZXRHbG9iYWxGbGFnRm9yVGVzdGluZyhMImRvbWFp bnNfYWxsb3dlZF90b19sb2dpbiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzdHJpY3RlZF9kb21haW5zKSk7CisrCisrICAvLyBDcmVhdGUgcHJvdmlkZXIg YW5kIHN0YXJ0IGxvZ29uLgorKyAgTWljcm9zb2Z0OjpXUkw6OkNvbVB0cjxJQ3JlZGVudGlhbFBy b3ZpZGVyQ3JlZGVudGlhbD4gY3JlZDsKKysKKysgIEFTU0VSVF9FUShTX09LLCBJbml0aWFsaXpl UHJvdmlkZXJBbmRHZXRDcmVkZW50aWFsKDAsICZjcmVkKSk7CisrICBNaWNyb3NvZnQ6OldSTDo6 Q29tUHRyPElUZXN0Q3JlZGVudGlhbD4gdGVzdDsKKysgIEFTU0VSVF9FUShTX09LLCBjcmVkLkFz KCZ0ZXN0KSk7CisrCisrICBiYXNlOjpzdHJpbmcxNiBlbWFpbCA9IEwidXNlckB0ZXN0LmNvbSI7 CisrICBiYXNlOjpzdHJpbmcxNiBlbWFpbF9kb21haW4gPSBlbWFpbC5zdWJzdHIoZW1haWwuZmlu ZChMIkAiKSArIDEpOworKworKyAgQVNTRVJUX0VRKFNfT0ssIHRlc3QtPlNldEdsc0VtYWlsQWRk cmVzcyhiYXNlOjpVVEYxNlRvVVRGOChlbWFpbCkpKTsKKysKKysgIGJvb2wgYWxsb3dlZF9lbWFp bCA9IHBlcm1pdHRlZF9hY291bnRzLmVtcHR5KCkgfHwKKysgICAgICAgICAgICAgICAgICAgICAg IHBlcm1pdHRlZF9hY291bnRzLmZpbmQoZW1haWwpICE9IGJhc2U6OnN0cmluZzE2OjpucG9zOwor KyAgYm9vbCBmb3VuZF9kb21haW4gPQorKyAgICAgIHJlc3RyaWN0ZWRfZG9tYWlucy5maW5kKGVt YWlsX2RvbWFpbikgIT0gYmFzZTo6c3RyaW5nMTY6Om5wb3M7CisrCisrICBpZiAoIWZvdW5kX2Rv bWFpbikKKysgICAgQVNTRVJUX0VRKFNfT0ssIHRlc3QtPlNldERlZmF1bHRFeGl0Q29kZShrVWll Y0ludmFsaWRFbWFpbERvbWFpbikpOworKworKyAgQVNTRVJUX0VRKFNfT0ssIFN0YXJ0TG9nb25Q cm9jZXNzQW5kV2FpdCgpKTsKKysKKysgIGlmIChhbGxvd2VkX2VtYWlsICYmIGZvdW5kX2RvbWFp bikgeworKyAgICBBU1NFUlRfRVEoU19PSywgRmluaXNoTG9nb25Qcm9jZXNzKHRydWUsIHRydWUs IDApKTsKKysgIH0gZWxzZSB7CisrICAgIGJhc2U6OnN0cmluZzE2IGV4cGVjdGVkX2Vycm9yX21z ZzsKKysgICAgaWYgKCFmb3VuZF9kb21haW4pIHsKKysgICAgICBleHBlY3RlZF9lcnJvcl9tc2cg PSBiYXNlOjpSZXBsYWNlU3RyaW5nUGxhY2Vob2xkZXJzKAorKyAgICAgICAgICBHZXRTdHJpbmdS ZXNvdXJjZShJRFNfSU5WQUxJRF9FTUFJTF9ET01BSU5fQkFTRSksCisrICAgICAgICAgIHtHZXRF bWFpbERvbWFpbnNQcmludGFibGVTdHJpbmcoKX0sIG51bGxwdHIpOworKyAgICB9IGVsc2Ugewor KyAgICAgIGV4cGVjdGVkX2Vycm9yX21zZyA9IEdldFN0cmluZ1Jlc291cmNlKElEU19FTUFJTF9N SVNNQVRDSF9CQVNFKTsKKysgICAgfQorKyAgICAvLyBMb2dvbiBwcm9jZXNzIHNob3VsZCBmYWls IHdpdGggdGhlIHNwZWNpZmllZCBlcnJvciBtZXNzYWdlLgorKyAgICBBU1NFUlRfRVEoU19PSywg RmluaXNoTG9nb25Qcm9jZXNzKGZhbHNlLCBmYWxzZSwgZXhwZWN0ZWRfZXJyb3JfbXNnKSk7Cisr ICB9CisrfQorKworK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgKKysgICAgQWxsLAorKyAgICBH Y3BHYWlhQ3JlZGVudGlhbEJhc2VQZXJtaXR0ZWRBY2NvdW50VGVzdCwKKysgICAgOjp0ZXN0aW5n OjpDb21iaW5lKAorKyAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoTCIiLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgTCJ1c2VyQHRlc3QuY29tIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIEwib3RoZXJAdGVzdC5jb20iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgTCJvdGhl ckB0ZXN0LmNvbSx1c2VyQHRlc3QuY29tIiksCisrICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcyhM InRlc3QuY29tIiwgTCJiZXN0LmNvbSIsIEwidGVzdC5jb20sYmVzdC5jb20iKSkpOworKworIFRF U1RfRihHY3BHYWlhQ3JlZGVudGlhbEJhc2VUZXN0LCBTdHJpcEVtYWlsVExEKSB7CisgICBVU0VT X0NPTlZFUlNJT047CisgICAvLyBDcmVhdGUgcHJvdmlkZXIgYW5kIHN0YXJ0IGxvZ29uLgorLS0g CisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS11cHN0cmVhbS0wMDA4LUhhbmRsZS1sc2FfYWNjb3VudF9yaWdodHMtc2l6ZS1wcm9w ZXJseS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBz dHJlYW0tMDAwOC1IYW5kbGUtbHNhX2FjY291bnRfcmlnaHRzLXNpemUtcHJvcGVybHkucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVmZDEzZDdkZGY0Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11 cHN0cmVhbS0wMDA4LUhhbmRsZS1sc2FfYWNjb3VudF9yaWdodHMtc2l6ZS1wcm9wZXJseS5wYXRj aApAQCAtMCwwICsxLDU1IEBACitGcm9tIGJmZjg0NTg0OGZhMzM5ZmM5YmFlNzBlZWY4OTQzYzQ5 NTZiOWE2ZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSYWtlc2ggU29tYSA8cmFr ZXNoc29tYUBnb29nbGUuY29tPgorRGF0ZTogRnJpLCAyNiBKdW4gMjAyMCAyMzo1NTo0NiArMDAw MAorU3ViamVjdDogW1BBVENIIDA4LzEyXSBIYW5kbGUgbHNhX2FjY291bnRfcmlnaHRzIHNpemUg cHJvcGVybHkuCisKK0J1ZzogMTA5OTg5MAorQ2hhbmdlLUlkOiBJYjI3ZDUyYmU1MWIwMDY3ZWY3 NmMyMTJhYWE1ZTA2N2VjMjBhZjZkZQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2 aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY5ODgyCitDb21taXQtUXVl dWU6IFJha2VzaCBTb21hIDxyYWtlc2hzb21hQGdvb2dsZS5jb20+CitDb21taXQtUXVldWU6IFl1 c3VmIFNlbmd1bCA8eXVzdWZzbkBnb29nbGUuY29tPgorUmV2aWV3ZWQtYnk6IFl1c3VmIFNlbmd1 bCA8eXVzdWZzbkBnb29nbGUuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21h c3RlckB7Izc4MzIwMH0KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDAwNzBmZThiZmE1MTI2 Y2ViYzc4ZTFjMjIwODFmODNiN2Y5YzQyMWMpCisKK05PVFJZPXRydWUKKworQ2hhbmdlLUlkOiBJ YjI3ZDUyYmU1MWIwMDY3ZWY3NmMyMTJhYWE1ZTA2N2VjMjBhZjZkZQorUmV2aWV3ZWQtb246IGh0 dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8y MjcwNjMwCitDb21taXQtUXVldWU6IFJha2VzaCBTb21hIDxyYWtlc2hzb21hQGdvb2dsZS5jb20+ CitSZXZpZXdlZC1ieTogUmFrZXNoIFNvbWEgPHJha2VzaHNvbWFAZ29vZ2xlLmNvbT4KK1Jldmll d2VkLWJ5OiBZdXN1ZiBTZW5ndWwgPHl1c3Vmc25AZ29vZ2xlLmNvbT4KK0NyLUNvbW1pdC1Qb3Np dGlvbjogcmVmcy9icmFuY2gtaGVhZHMvNDEwM0B7IzczMX0KK0NyLUJyYW5jaGVkLUZyb206IDhh ZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3ZDgzYTg2MGQ0MWRlYmY1MTQtcmVmcy9oZWFkcy9tYXN0ZXJA eyM3NTYwNjZ9CistLS0KKyBjaHJvbWUvY3JlZGVudGlhbF9wcm92aWRlci9nYWlhY3Avc2NvcGVk X2xzYV9wb2xpY3kuY2MgfCA3ICsrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL2NyZWRlbnRpYWxfcHJv dmlkZXIvZ2FpYWNwL3Njb3BlZF9sc2FfcG9saWN5LmNjIGIvY2hyb21lL2NyZWRlbnRpYWxfcHJv dmlkZXIvZ2FpYWNwL3Njb3BlZF9sc2FfcG9saWN5LmNjCitpbmRleCA0MjVmMzA1NzE2ZC4uNWMw NWQwOGU4MWYgMTAwNjQ0CistLS0gYS9jaHJvbWUvY3JlZGVudGlhbF9wcm92aWRlci9nYWlhY3Av c2NvcGVkX2xzYV9wb2xpY3kuY2MKKysrKyBiL2Nocm9tZS9jcmVkZW50aWFsX3Byb3ZpZGVyL2dh aWFjcC9zY29wZWRfbHNhX3BvbGljeS5jYworQEAgLTEzMyw3ICsxMzMsOCBAQCBIUkVTVUxUIFNj b3BlZExzYVBvbGljeTo6QWRkQWNjb3VudFJpZ2h0cygKKyAgICAgSW5pdExzYVN0cmluZyhyaWdo dC5jX3N0cigpLCAmbHNhX3JpZ2h0KTsKKyAgICAgbHNhX3JpZ2h0cy5wdXNoX2JhY2sobHNhX3Jp Z2h0KTsKKyAgIH0KKy0gIE5UU1RBVFVTIHN0cyA9IDo6THNhQWRkQWNjb3VudFJpZ2h0cyhoYW5k bGVfLCBzaWQsIGxzYV9yaWdodHMuZGF0YSgpLCAxKTsKKysgIE5UU1RBVFVTIHN0cyA9CisrICAg ICAgOjpMc2FBZGRBY2NvdW50UmlnaHRzKGhhbmRsZV8sIHNpZCwgbHNhX3JpZ2h0cy5kYXRhKCks IGxzYV9yaWdodHMuc2l6ZSgpKTsKKyAgIGlmIChzdHMgIT0gU1RBVFVTX1NVQ0NFU1MpIHsKKyAg ICAgSFJFU1VMVCBociA9IEhSRVNVTFRfRlJPTV9OVChzdHMpOworICAgICBMT0dGTihFUlJPUikg PDwgIkxzYUFkZEFjY291bnRSaWdodHMgc3RzPSIgPDwgcHV0SFIoc3RzKQorQEAgLTE1Miw4ICsx NTMsOCBAQCBIUkVTVUxUIFNjb3BlZExzYVBvbGljeTo6UmVtb3ZlQWNjb3VudFJpZ2h0cygKKyAg ICAgSW5pdExzYVN0cmluZyhyaWdodC5jX3N0cigpLCAmbHNhX3JpZ2h0KTsKKyAgICAgbHNhX3Jp Z2h0cy5wdXNoX2JhY2sobHNhX3JpZ2h0KTsKKyAgIH0KKy0gIE5UU1RBVFVTIHN0cyA9CistICAg ICAgOjpMc2FSZW1vdmVBY2NvdW50UmlnaHRzKGhhbmRsZV8sIHNpZCwgRkFMU0UsIGxzYV9yaWdo dHMuZGF0YSgpLCAxKTsKKysgIE5UU1RBVFVTIHN0cyA9IDo6THNhUmVtb3ZlQWNjb3VudFJpZ2h0 cyhoYW5kbGVfLCBzaWQsIEZBTFNFLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxzYV9yaWdodHMuZGF0YSgpLCBsc2FfcmlnaHRzLnNpemUoKSk7CisgICBpZiAo c3RzICE9IFNUQVRVU19TVUNDRVNTKSB7CisgICAgIEhSRVNVTFQgaHIgPSBIUkVTVUxUX0ZST01f TlQoc3RzKTsKKyAgICAgTE9HRk4oRVJST1IpIDw8ICJMc2FSZW1vdmVBY2NvdW50UmlnaHRzIHN0 cz0iIDw8IHB1dEhSKHN0cykKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxl Y3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwOS1JbmNyZW1lbnRpbmct VkVSU0lPTi10by04My4wLjQxMDMuMTIxLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA5LUluY3JlbWVudGluZy1WRVJTSU9OLXRvLTgz LjAuNDEwMy4xMjEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjU0ODIyOTI1MzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA5LUluY3JlbWVudGluZy1WRVJTSU9OLXRvLTgz LjAuNDEwMy4xMjEucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSA5MDY4MDY3ZTNmYzEzY2M3 Yzg5YzA0ZWMwNTI3MWQyN2NiMzAzODEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog Y2hyb21lLXJlbGVhc2UtYm90IDxjaHJvbWUtcmVsZWFzZS1ib3RAY2hyb21pdW0ub3JnPgorRGF0 ZTogU2F0LCAyNyBKdW4gMjAyMCAwMDoyMjowNCArMDAwMAorU3ViamVjdDogW1BBVENIIDA5LzEy XSBJbmNyZW1lbnRpbmcgVkVSU0lPTiB0byA4My4wLjQxMDMuMTIxCisKK1RCUj1rYXJpYWhAY2hy b21pdW0ub3JnCisKK0NoYW5nZS1JZDogSWE5MWQxNDBhNTkzMjg0ODBmMzg5Yzk0YWI4NTcxNTMw OGJmZWUyZWEKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3Vy Y2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjI3MTI2MAorUmV2aWV3ZWQtYnk6IENocm9tZSBSZWxl YXNlIEJvdCAoTFVDSSkgPGNocm9tZS1vZmZpY2lhbC1icmFuY2hlckBjaG9wcy1zZXJ2aWNlLWFj Y291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZz L2JyYW5jaC1oZWFkcy80MTAzQHsjNzMyfQorQ3ItQnJhbmNoZWQtRnJvbTogOGFkNDdlOGQyMWY2 ODY2ZTRhMzdmNDdkODNhODYwZDQxZGViZjUxNC1yZWZzL2hlYWRzL21hc3RlckB7Izc1NjA2Nn0K Ky0tLQorIGNocm9tZS9WRVJTSU9OIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL1ZFUlNJT04gYi9jaHJv bWUvVkVSU0lPTgoraW5kZXggZjczMTBhOTJjZjMuLmZmMjJmZjA4YTgzIDEwMDY0NAorLS0tIGEv Y2hyb21lL1ZFUlNJT04KKysrKyBiL2Nocm9tZS9WRVJTSU9OCitAQCAtMSw0ICsxLDQgQEAKKyBN QUpPUj04MworIE1JTk9SPTAKKyBCVUlMRD00MTAzCistUEFUQ0g9MTIwCisrUEFUQ0g9MTIxCist LSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVz L2Nocm9taXVtLXVwc3RyZWFtLTAwMTAtRGlzYWJsZS1mbGFreS1EaWNlTWFuYWdlQWNjb3VudEJy b3dzZXJUZXN0LkNsZWFyTWFuYS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAxMC1EaXNhYmxlLWZsYWt5LURpY2VNYW5hZ2VBY2NvdW50 QnJvd3NlclRlc3QuQ2xlYXJNYW5hLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5iN2MzZGM1ZDkxMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAxMC1EaXNhYmxlLWZsYWt5LURp Y2VNYW5hZ2VBY2NvdW50QnJvd3NlclRlc3QuQ2xlYXJNYW5hLnBhdGNoCkBAIC0wLDAgKzEsNDMg QEAKK0Zyb20gNGYzZDJkZWU4N2Q0MDQ5MWVmNGEyNjY0ZTIxMTY4NDYyZjNiYjY4MSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsZXhhbmRlciBIZW5kcmljaCA8aGVuZHJpY2hAY2hy b21pdW0ub3JnPgorRGF0ZTogU2F0LCAyNyBKdW4gMjAyMCAwMTozMzowMCArMDAwMAorU3ViamVj dDogW1BBVENIIDEwLzEyXSBEaXNhYmxlIGZsYWt5CisgRGljZU1hbmFnZUFjY291bnRCcm93c2Vy VGVzdC5DbGVhck1hbmFnZWRQcm9maWxlT25TdGFydHVwIFtNODMgbWVyZ2VdCisKK1RCUj1tc2Fy ZGFAY2hyb21pdW0ub3JnLGhlbmRyaWNoQGNocm9taXVtLm9yZworCisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCA5ZWViNzJmZjgxMTAzNjZiMjUwMTMyMWQ0YjdmNmUzZTQ3MDc5NmU2KQorCitC dWc6IDEwNzU4OTYKK0NoYW5nZS1JZDogSTZjNWU5YzYwZmZmYWU1YmI5ZmNiYjdiMjlmYjNlZDFk NmY3MWZiZmQKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3Vy Y2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjE3MDAyNgorUmV2aWV3ZWQtYnk6IEFsZXhhbmRlciBI ZW5kcmljaCA8aGVuZHJpY2hAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBBbGV4YW5kZXIg SGVuZHJpY2ggPGhlbmRyaWNoQGNocm9taXVtLm9yZz4KK0NyLU9yaWdpbmFsLUNvbW1pdC1Qb3Np dGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3NjMyNTh9CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9j aHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIyNjgzODYK K1Jldmlld2VkLWJ5OiBDYXJsb3MgS25pcHBzY2hpbGQgPGNhcmxvc2tAY2hyb21pdW0ub3JnPgor Q29tbWl0LVF1ZXVlOiBDYXJsb3MgS25pcHBzY2hpbGQgPGNhcmxvc2tAY2hyb21pdW0ub3JnPgor Q3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1oZWFkcy80MTAzQHsjNzMzfQorQ3ItQnJh bmNoZWQtRnJvbTogOGFkNDdlOGQyMWY2ODY2ZTRhMzdmNDdkODNhODYwZDQxZGViZjUxNC1yZWZz L2hlYWRzL21hc3RlckB7Izc1NjA2Nn0KKy0tLQorIGNocm9tZS9icm93c2VyL3NpZ25pbi9kaWNl X2Jyb3dzZXJ0ZXN0LmNjIHwgMyArKy0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jaHJvbWUvYnJvd3Nlci9zaWduaW4vZGlj ZV9icm93c2VydGVzdC5jYyBiL2Nocm9tZS9icm93c2VyL3NpZ25pbi9kaWNlX2Jyb3dzZXJ0ZXN0 LmNjCitpbmRleCBlMDczM2NjYjllYi4uYjM2MmY1Nzg4ODIgMTAwNjQ0CistLS0gYS9jaHJvbWUv YnJvd3Nlci9zaWduaW4vZGljZV9icm93c2VydGVzdC5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIv c2lnbmluL2RpY2VfYnJvd3NlcnRlc3QuY2MKK0BAIC0xMDE1LDggKzEwMTUsOSBAQCBJTl9QUk9D X0JST1dTRVJfVEVTVF9GKERpY2VNYW5hZ2VBY2NvdW50QnJvd3NlclRlc3QsCisgICAgICAgcHJl ZnM6OmtTaWduaW5BbGxvd2VkT25OZXh0U3RhcnR1cCwgZmFsc2UpOworIH0KKyAKKysvLyBUT0RP KGh0dHBzOi8vY3JidWcuY29tLzEwNzU4OTYpIGRpc2FibGluZyB0ZXN0IGR1ZSB0byBmbGFraW5l c3MKKyBJTl9QUk9DX0JST1dTRVJfVEVTVF9GKERpY2VNYW5hZ2VBY2NvdW50QnJvd3NlclRlc3Qs CistICAgICAgICAgICAgICAgICAgICAgICBDbGVhck1hbmFnZWRQcm9maWxlT25TdGFydHVwKSB7 CisrICAgICAgICAgICAgICAgICAgICAgICBESVNBQkxFRF9DbGVhck1hbmFnZWRQcm9maWxlT25T dGFydHVwKSB7CisgICAvLyBJbml0aWFsIHByb2ZpbGUgc2hvdWxkIGhhdmUgYmVlbiBkZWxldGVk IGFzIHNpZ24taW4gYW5kIHNpZ24gb3V0IHdlcmUgbm8KKyAgIC8vIGxvbmdlciBhbGxvd2VkLgor ICAgUHJlZlNlcnZpY2UqIGxvY2FsX3N0YXRlID0gZ19icm93c2VyX3Byb2Nlc3MtPmxvY2FsX3N0 YXRlKCk7CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMTEtSW5jcmVtZW50aW5nLVZFUlNJT04tdG8t ODMuMC40MTAzLjEyMi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tdXBzdHJlYW0tMDAxMS1JbmNyZW1lbnRpbmctVkVSU0lPTi10by04My4wLjQxMDMuMTIy LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMzJiMzkwODc1 NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tdXBzdHJlYW0tMDAxMS1JbmNyZW1lbnRpbmctVkVSU0lPTi10by04My4wLjQxMDMuMTIy LnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gNTI3NzE2OGQxNjkxY2U0MGZjMDRmYjRhZGVm ZDg5ZDhlYjM5YzgxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGNocm9tZS1yZWxl YXNlLWJvdCA8Y2hyb21lLXJlbGVhc2UtYm90QGNocm9taXVtLm9yZz4KK0RhdGU6IFNhdCwgMjcg SnVuIDIwMjAgMTg6MDc6NDUgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAxMS8xMl0gSW5jcmVtZW50 aW5nIFZFUlNJT04gdG8gODMuMC40MTAzLjEyMgorCitUQlI9bGFrcGFtYXJ0aHlAY2hyb21pdW0u b3JnCisKK0NoYW5nZS1JZDogSTViOTBjMjM0YmFmZjYyMDRmYjE2ODRhNGQ5OTg3ODc3MWExMTJl MzgKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29t L2MvY2hyb21pdW0vc3JjLysvMjI3MTYxOAorUmV2aWV3ZWQtYnk6IENocm9tZSBSZWxlYXNlIEJv dCAoTFVDSSkgPGNocm9tZS1vZmZpY2lhbC1icmFuY2hlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRz LmlhbS5nc2VydmljZWFjY291bnQuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5j aC1oZWFkcy80MTAzQHsjNzM0fQorQ3ItQnJhbmNoZWQtRnJvbTogOGFkNDdlOGQyMWY2ODY2ZTRh MzdmNDdkODNhODYwZDQxZGViZjUxNC1yZWZzL2hlYWRzL21hc3RlckB7Izc1NjA2Nn0KKy0tLQor IGNocm9tZS9WRVJTSU9OIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL1ZFUlNJT04gYi9jaHJvbWUvVkVS U0lPTgoraW5kZXggZmYyMmZmMDhhODMuLmVhOWZmMzQ0NDEzIDEwMDY0NAorLS0tIGEvY2hyb21l L1ZFUlNJT04KKysrKyBiL2Nocm9tZS9WRVJTSU9OCitAQCAtMSw0ICsxLDQgQEAKKyBNQUpPUj04 MworIE1JTk9SPTAKKyBCVUlMRD00MTAzCistUEFUQ0g9MTIxCisrUEFUQ0g9MTIyCistLSAKKzIu MjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLXY4LXJlbW92ZS1zb29uLXRvLWJlLXJlbW92ZWQtZ2V0QWxsRmllbGRQb3NpdGlvbnMucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXY4LXJlbW92ZS1z b29uLXRvLWJlLXJlbW92ZWQtZ2V0QWxsRmllbGRQb3NpdGlvbnMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQyNTFjZWI2YWM4Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS12OC1yZW1vdmUtc29v bi10by1iZS1yZW1vdmVkLWdldEFsbEZpZWxkUG9zaXRpb25zLnBhdGNoCkBAIC0wLDAgKzEsMTcy IEBACitGcm9tIDNmOGRjNGIyZTViYWY3N2I0NjMzMzRjNzY5YWY4NWI3OWQ4YzE0NjMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGcmFuayBUYW5nIDxmdGFuZ0BjaHJvbWl1bS5vcmc+ CitEYXRlOiBGcmksIDMgQXByIDIwMjAgMjM6MTM6NTQgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0g W2ludGxdIFJlbW92ZSBzb29uLXRvLWJlIHJlbW92ZWQgZ2V0QWxsRmllbGRQb3NpdGlvbnMKKwor TmVlZGVkIHRvIGxhbmQgSUNVNjcuMSBzb29uLgorCitCdWc6IHY4OjEwMzkzCitDaGFuZ2UtSWQ6 IEkzYzc3MzdjYTYwMGQ2Y2NmZGM0NmZmYWRkZmIzMThjZTYwYmM3NjE4CitSZXZpZXdlZC1vbjog aHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL3Y4L3Y4LysvMjEzNjQ4 OQorUmV2aWV3ZWQtYnk6IEpha29iIEt1bW1lcm93IDxqa3VtbWVyb3dAY2hyb21pdW0ub3JnPgor Q29tbWl0LVF1ZXVlOiBGcmFuayBUYW5nIDxmdGFuZ0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQt UG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNjcwMjd9CistLS0KKyBzcmMvb2JqZWN0cy9q cy1udW1iZXItZm9ybWF0LmNjIHwgNzcgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t CisgMSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvdjgvc3JjL29iamVjdHMvanMtbnVtYmVyLWZvcm1hdC5jYyBiL3Y4L3NyYy9v YmplY3RzL2pzLW51bWJlci1mb3JtYXQuY2MKK2luZGV4IGFkODMxYzVjMzYuLmJjZDQ0MDMxZDUg MTAwNjQ0CistLS0gYS92OC9zcmMvb2JqZWN0cy9qcy1udW1iZXItZm9ybWF0LmNjCisrKysgYi92 OC9zcmMvb2JqZWN0cy9qcy1udW1iZXItZm9ybWF0LmNjCitAQCAtMTI0MSw0NCArMTI0MSwzMyBA QCBNYXliZUhhbmRsZTxKU051bWJlckZvcm1hdD4gSlNOdW1iZXJGb3JtYXQ6Ok5ldyhJc29sYXRl KiBpc29sYXRlLAorIH0KKyAKKyBuYW1lc3BhY2UgeworLU1heWJlPGljdTo6VW5pY29kZVN0cmlu Zz4gSWN1Rm9ybWF0TnVtYmVyKAorK01heWJlPGJvb2w+IEljdUZvcm1hdE51bWJlcigKKyAgICAg SXNvbGF0ZSogaXNvbGF0ZSwKKyAgICAgY29uc3QgaWN1OjpudW1iZXI6OkxvY2FsaXplZE51bWJl ckZvcm1hdHRlciYgbnVtYmVyX2Zvcm1hdCwKKy0gICAgSGFuZGxlPE9iamVjdD4gbnVtZXJpY19v YmosIGljdTo6RmllbGRQb3NpdGlvbkl0ZXJhdG9yKiBmcF9pdGVyKSB7CisrICAgIEhhbmRsZTxP YmplY3Q+IG51bWVyaWNfb2JqLCBpY3U6Om51bWJlcjo6Rm9ybWF0dGVkTnVtYmVyKiBmb3JtYXR0 ZWQpIHsKKyAgIC8vIElmIGl0IGlzIEJpZ0ludCwgaGFuZGxlIGl0IGRpZmZlcmVudGx5LgorICAg VUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CistICBpY3U6Om51bWJlcjo6Rm9ybWF0 dGVkTnVtYmVyIGZvcm1hdHRlZDsKKyAgIGlmIChudW1lcmljX29iai0+SXNCaWdJbnQoKSkgewor ICAgICBIYW5kbGU8QmlnSW50PiBiaWdfaW50ID0gSGFuZGxlPEJpZ0ludD46OmNhc3QobnVtZXJp Y19vYmopOworICAgICBIYW5kbGU8U3RyaW5nPiBiaWdfaW50X3N0cmluZzsKKyAgICAgQVNTSUdO X1JFVFVSTl9PTl9FWENFUFRJT05fVkFMVUUoaXNvbGF0ZSwgYmlnX2ludF9zdHJpbmcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZ0ludDo6VG9TdHJpbmcoaXNvbGF0 ZSwgYmlnX2ludCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGhp bmc8aWN1OjpVbmljb2RlU3RyaW5nPigpKTsKKy0gICAgZm9ybWF0dGVkID0gbnVtYmVyX2Zvcm1h dC5mb3JtYXREZWNpbWFsKAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO b3RoaW5nPGJvb2w+KCkpOworKyAgICAqZm9ybWF0dGVkID0gbnVtYmVyX2Zvcm1hdC5mb3JtYXRE ZWNpbWFsKAorICAgICAgICAge2JpZ19pbnRfc3RyaW5nLT5Ub0NTdHJpbmcoKS5nZXQoKSwgYmln X2ludF9zdHJpbmctPmxlbmd0aCgpfSwgc3RhdHVzKTsKKyAgIH0gZWxzZSB7CisgICAgIGRvdWJs ZSBudW1iZXIgPSBudW1lcmljX29iai0+SXNOYU4oKQorICAgICAgICAgICAgICAgICAgICAgICAg ID8gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKQorICAgICAgICAgICAg ICAgICAgICAgICAgIDogbnVtZXJpY19vYmotPk51bWJlcigpOworLSAgICBmb3JtYXR0ZWQgPSBu dW1iZXJfZm9ybWF0LmZvcm1hdERvdWJsZShudW1iZXIsIHN0YXR1cyk7CisrICAgICpmb3JtYXR0 ZWQgPSBudW1iZXJfZm9ybWF0LmZvcm1hdERvdWJsZShudW1iZXIsIHN0YXR1cyk7CisgICB9Cisg ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgLy8gVGhpcyBoYXBwZW4gYmVjYXVzZSBv ZiBpY3UgZGF0YSB0cmltbWluZyB0cmltIG91dCAidW5pdCIuCisgICAgIC8vIFNlZSBodHRwczov L2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD04NjQxCistICAgIFRIUk9X X05FV19FUlJPUl9SRVRVUk5fVkFMVUUoaXNvbGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOZXdUeXBlRXJyb3IoTWVzc2FnZVRlbXBsYXRlOjprSWN1RXJyb3IpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGhpbmc8aWN1OjpVbmljb2RlU3RyaW5n PigpKTsKKy0gIH0KKy0gIGlmIChmcF9pdGVyKSB7CistICAgIGZvcm1hdHRlZC5nZXRBbGxGaWVs ZFBvc2l0aW9ucygqZnBfaXRlciwgc3RhdHVzKTsKKy0gIH0KKy0gIGljdTo6VW5pY29kZVN0cmlu ZyByZXN1bHQgPSBmb3JtYXR0ZWQudG9TdHJpbmcoc3RhdHVzKTsKKy0gIGlmIChVX0ZBSUxVUkUo c3RhdHVzKSkgeworLSAgICBUSFJPV19ORVdfRVJST1JfUkVUVVJOX1ZBTFVFKGlzb2xhdGUsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3VHlwZUVycm9yKE1lc3NhZ2VUZW1w bGF0ZTo6a0ljdUVycm9yKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3Ro aW5nPGljdTo6VW5pY29kZVN0cmluZz4oKSk7CisrICAgIFRIUk9XX05FV19FUlJPUl9SRVRVUk5f VkFMVUUoCisrICAgICAgICBpc29sYXRlLCBOZXdUeXBlRXJyb3IoTWVzc2FnZVRlbXBsYXRlOjpr SWN1RXJyb3IpLCBOb3RoaW5nPGJvb2w+KCkpOworICAgfQorLSAgcmV0dXJuIEp1c3QocmVzdWx0 KTsKKysgIHJldHVybiBKdXN0KHRydWUpOworIH0KKyAKKyB9ICAvLyBuYW1lc3BhY2UKK0BAIC0x Mjg5LDEwICsxMjc4LDE2IEBAIE1heWJlSGFuZGxlPFN0cmluZz4gSlNOdW1iZXJGb3JtYXQ6OkZv cm1hdE51bWVyaWMoCisgICAgIEhhbmRsZTxPYmplY3Q+IG51bWVyaWNfb2JqKSB7CisgICBEQ0hF Q0sobnVtZXJpY19vYmotPklzTnVtZXJpYygpKTsKKyAKKy0gIE1heWJlPGljdTo6VW5pY29kZVN0 cmluZz4gbWF5YmVfZm9ybWF0ID0KKy0gICAgICBJY3VGb3JtYXROdW1iZXIoaXNvbGF0ZSwgbnVt YmVyX2Zvcm1hdCwgbnVtZXJpY19vYmosIG51bGxwdHIpOworKyAgaWN1OjpudW1iZXI6OkZvcm1h dHRlZE51bWJlciBmb3JtYXR0ZWQ7CisrICBNYXliZTxib29sPiBtYXliZV9mb3JtYXQgPQorKyAg ICAgIEljdUZvcm1hdE51bWJlcihpc29sYXRlLCBudW1iZXJfZm9ybWF0LCBudW1lcmljX29iaiwg JmZvcm1hdHRlZCk7CisgICBNQVlCRV9SRVRVUk4obWF5YmVfZm9ybWF0LCBIYW5kbGU8U3RyaW5n PigpKTsKKy0gIHJldHVybiBJbnRsOjpUb1N0cmluZyhpc29sYXRlLCBtYXliZV9mb3JtYXQuRnJv bUp1c3QoKSk7CisrICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKysgIGljdTo6 VW5pY29kZVN0cmluZyByZXN1bHQgPSBmb3JtYXR0ZWQudG9TdHJpbmcoc3RhdHVzKTsKKysgIGlm IChVX0ZBSUxVUkUoc3RhdHVzKSkgeworKyAgICBUSFJPV19ORVdfRVJST1IoaXNvbGF0ZSwgTmV3 VHlwZUVycm9yKE1lc3NhZ2VUZW1wbGF0ZTo6a0ljdUVycm9yKSwgU3RyaW5nKTsKKysgIH0KKysg IHJldHVybiBJbnRsOjpUb1N0cmluZyhpc29sYXRlLCByZXN1bHQpOworIH0KKyAKKyBuYW1lc3Bh Y2UgeworQEAgLTE0MDUsMTIgKzE0MDAsMTggQEAgc3RkOjp2ZWN0b3I8TnVtYmVyRm9ybWF0U3Bh bj4gRmxhdHRlblJlZ2lvbnNUb1BhcnRzKAorIH0KKyAKKyBuYW1lc3BhY2UgeworLU1heWJlPGlu dD4gQ29uc3RydWN0UGFydHMoSXNvbGF0ZSogaXNvbGF0ZSwgY29uc3QgaWN1OjpVbmljb2RlU3Ry aW5nJiBmb3JtYXR0ZWQsCistICAgICAgICAgICAgICAgICAgICAgICAgICBpY3U6OkZpZWxkUG9z aXRpb25JdGVyYXRvciogZnBfaXRlciwKKytNYXliZTxpbnQ+IENvbnN0cnVjdFBhcnRzKElzb2xh dGUqIGlzb2xhdGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpY3U6Om51bWJlcjo6Rm9y bWF0dGVkTnVtYmVyKiBmb3JtYXR0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBIYW5k bGU8SlNBcnJheT4gcmVzdWx0LCBpbnQgc3RhcnRfaW5kZXgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBIYW5kbGU8T2JqZWN0PiBudW1lcmljX29iaiwgYm9vbCBzdHlsZV9pc191bml0KSB7 CisrICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKysgIGljdTo6VW5pY29kZVN0 cmluZyBmb3JtYXR0ZWRfdGV4dCA9IGZvcm1hdHRlZC0+dG9TdHJpbmcoc3RhdHVzKTsKKysgIGlm IChVX0ZBSUxVUkUoc3RhdHVzKSkgeworKyAgICBUSFJPV19ORVdfRVJST1JfUkVUVVJOX1ZBTFVF KAorKyAgICAgICAgaXNvbGF0ZSwgTmV3VHlwZUVycm9yKE1lc3NhZ2VUZW1wbGF0ZTo6a0ljdUVy cm9yKSwgTm90aGluZzxpbnQ+KCkpOworKyAgfQorICAgRENIRUNLKG51bWVyaWNfb2JqLT5Jc051 bWVyaWMoKSk7CistICBpbnQzMl90IGxlbmd0aCA9IGZvcm1hdHRlZC5sZW5ndGgoKTsKKysgIGlu dDMyX3QgbGVuZ3RoID0gZm9ybWF0dGVkX3RleHQubGVuZ3RoKCk7CisgICBpbnQgaW5kZXggPSBz dGFydF9pbmRleDsKKyAgIGlmIChsZW5ndGggPT0gMCkgcmV0dXJuIEp1c3QoaW5kZXgpOworIAor QEAgLTE0MTksMTMgKzE0MjAsMTQgQEAgTWF5YmU8aW50PiBDb25zdHJ1Y3RQYXJ0cyhJc29sYXRl KiBpc29sYXRlLCBjb25zdCBpY3U6OlVuaWNvZGVTdHJpbmcmIGZvcm1hdHRlZCwKKyAgIC8vIG90 aGVyIHJlZ2lvbiBjb3ZlcnMgc29tZSBwYXJ0IG9mIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLiBJdCdz IHBvc3NpYmxlCisgICAvLyB0aGVyZSdzIGFub3RoZXIgZmllbGQgd2l0aCBleGFjdGx5IHRoZSBz YW1lIGJlZ2luIGFuZCBlbmQgYXMgdGhpcyBiYWNrZHJvcCwKKyAgIC8vIGluIHdoaWNoIGNhc2Ug dGhlIGJhY2tkcm9wJ3MgZmllbGRfaWQgb2YgLTEgd2lsbCBnaXZlIGl0IGxvd2VyIHByaW9yaXR5 LgorLSAgcmVnaW9ucy5wdXNoX2JhY2soTnVtYmVyRm9ybWF0U3BhbigtMSwgMCwgZm9ybWF0dGVk Lmxlbmd0aCgpKSk7CisrICByZWdpb25zLnB1c2hfYmFjayhOdW1iZXJGb3JtYXRTcGFuKC0xLCAw LCBmb3JtYXR0ZWRfdGV4dC5sZW5ndGgoKSkpOworIAorICAgeworLSAgICBpY3U6OkZpZWxkUG9z aXRpb24gZnA7CistICAgIHdoaWxlIChmcF9pdGVyLT5uZXh0KGZwKSkgeworLSAgICAgIHJlZ2lv bnMucHVzaF9iYWNrKE51bWJlckZvcm1hdFNwYW4oZnAuZ2V0RmllbGQoKSwgZnAuZ2V0QmVnaW5J bmRleCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnAuZ2V0 RW5kSW5kZXgoKSkpOworKyAgICBpY3U6OkNvbnN0cmFpbmVkRmllbGRQb3NpdGlvbiBjZnA7Cisr ICAgIGNmcC5jb25zdHJhaW5DYXRlZ29yeShVRklFTERfQ0FURUdPUllfTlVNQkVSKTsKKysgICAg d2hpbGUgKGZvcm1hdHRlZC0+bmV4dFBvc2l0aW9uKGNmcCwgc3RhdHVzKSkgeworKyAgICAgIHJl Z2lvbnMucHVzaF9iYWNrKAorKyAgICAgICAgICBOdW1iZXJGb3JtYXRTcGFuKGNmcC5nZXRGaWVs ZCgpLCBjZnAuZ2V0U3RhcnQoKSwgY2ZwLmdldExpbWl0KCkpKTsKKyAgICAgfQorICAgfQorIAor QEAgLTE0NDcsNyArMTQ0OSw3IEBAIE1heWJlPGludD4gQ29uc3RydWN0UGFydHMoSXNvbGF0ZSog aXNvbGF0ZSwgY29uc3QgaWN1OjpVbmljb2RlU3RyaW5nJiBmb3JtYXR0ZWQsCisgICAgIEhhbmRs ZTxTdHJpbmc+IHN1YnN0cmluZzsKKyAgICAgQVNTSUdOX1JFVFVSTl9PTl9FWENFUFRJT05fVkFM VUUoCisgICAgICAgICBpc29sYXRlLCBzdWJzdHJpbmcsCistICAgICAgICBJbnRsOjpUb1N0cmlu Zyhpc29sYXRlLCBmb3JtYXR0ZWQsIHBhcnQuYmVnaW5fcG9zLCBwYXJ0LmVuZF9wb3MpLAorKyAg ICAgICAgSW50bDo6VG9TdHJpbmcoaXNvbGF0ZSwgZm9ybWF0dGVkX3RleHQsIHBhcnQuYmVnaW5f cG9zLCBwYXJ0LmVuZF9wb3MpLAorICAgICAgICAgTm90aGluZzxpbnQ+KCkpOworICAgICBJbnRs OjpBZGRFbGVtZW50KGlzb2xhdGUsIHJlc3VsdCwgaW5kZXgsIGZpZWxkX3R5cGVfc3RyaW5nLCBz dWJzdHJpbmcpOworICAgICArK2luZGV4OworQEAgLTE0NjcsMjAgKzE0NjksMTkgQEAgTWF5YmVI YW5kbGU8SlNBcnJheT4gSlNOdW1iZXJGb3JtYXQ6OkZvcm1hdFRvUGFydHMoCisgICAgICAgbnVt YmVyX2Zvcm1hdC0+aWN1X251bWJlcl9mb3JtYXR0ZXIoKS5yYXcoKTsKKyAgIENIRUNLX05PVF9O VUxMKGZtdCk7CisgCistICBpY3U6OkZpZWxkUG9zaXRpb25JdGVyYXRvciBmcF9pdGVyOworLSAg TWF5YmU8aWN1OjpVbmljb2RlU3RyaW5nPiBtYXliZV9mb3JtYXQgPQorLSAgICAgIEljdUZvcm1h dE51bWJlcihpc29sYXRlLCAqZm10LCBudW1lcmljX29iaiwgJmZwX2l0ZXIpOworKyAgaWN1Ojpu dW1iZXI6OkZvcm1hdHRlZE51bWJlciBmb3JtYXR0ZWQ7CisrICBNYXliZTxib29sPiBtYXliZV9m b3JtYXQgPQorKyAgICAgIEljdUZvcm1hdE51bWJlcihpc29sYXRlLCAqZm10LCBudW1lcmljX29i aiwgJmZvcm1hdHRlZCk7CisgICBNQVlCRV9SRVRVUk4obWF5YmVfZm9ybWF0LCBIYW5kbGU8SlNB cnJheT4oKSk7CistCisgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKysKKyAg IGJvb2wgc3R5bGVfaXNfdW5pdCA9CisgICAgICAgU3R5bGU6OlVOSVQgPT0gU3R5bGVGcm9tU2tl bGV0b24oZm10LT50b1NrZWxldG9uKHN0YXR1cykpOworICAgQ0hFQ0soVV9TVUNDRVNTKHN0YXR1 cykpOworIAorICAgSGFuZGxlPEpTQXJyYXk+IHJlc3VsdCA9IGZhY3RvcnktPk5ld0pTQXJyYXko MCk7CistICBNYXliZTxpbnQ+IG1heWJlX2Zvcm1hdF90b19wYXJ0cyA9CistICAgICAgQ29uc3Ry dWN0UGFydHMoaXNvbGF0ZSwgbWF5YmVfZm9ybWF0LkZyb21KdXN0KCksICZmcF9pdGVyLCByZXN1 bHQsIDAsCistICAgICAgICAgICAgICAgICAgICAgbnVtZXJpY19vYmosIHN0eWxlX2lzX3VuaXQp OworKyAgTWF5YmU8aW50PiBtYXliZV9mb3JtYXRfdG9fcGFydHMgPSBDb25zdHJ1Y3RQYXJ0cygK KysgICAgICBpc29sYXRlLCAmZm9ybWF0dGVkLCByZXN1bHQsIDAsIG51bWVyaWNfb2JqLCBzdHls ZV9pc191bml0KTsKKyAgIE1BWUJFX1JFVFVSTihtYXliZV9mb3JtYXRfdG9fcGFydHMsIEhhbmRs ZTxKU0FycmF5PigpKTsKKyAKKyAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1hLXNjcmlwdC10by1saXN0LXBh dGNoLXRhcmdldHMucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVz L2VsZWN0cm9uLUFkZC1hLXNjcmlwdC10by1saXN0LXBhdGNoLXRhcmdldHMucGF0Y2gucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkxNmRiYTlkYzNiCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1B ZGQtYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEs NDIgQEAKK0Zyb20gZmY0MTIyZjIzNmI3MGMyNzJjNzQ2ZDBjMzM2Y2RiZDU4OGQ3OGNkMSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVsdmlzIFByYW5za2V2aWNodXMgPGVsdmlzQG1h Z2ljLmlvPgorRGF0ZTogVGh1LCAxMiBEZWMgMjAxOSAxNjoxMjoxOCAtMDUwMAorU3ViamVjdDog W1BBVENIXSBBZGQgYSBzY3JpcHQgdG8gbGlzdCBwYXRjaCB0YXJnZXRzCisKKy0tLQorIHNjcmlw dC9saXN0X3BhdGNoX3RhcmdldHMucHkgfCAyMyArKysrKysrKysrKysrKysrKysrKysrKworIDEg ZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNzU1IHNjcmlw dC9saXN0X3BhdGNoX3RhcmdldHMucHkKKworZGlmZiAtLWdpdCBhL3NjcmlwdC9saXN0X3BhdGNo X3RhcmdldHMucHkgYi9zY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5CituZXcgZmlsZSBtb2Rl IDEwMDc1NQoraW5kZXggMDAwMDAwMDAwLi41NTE3M2JhYzkKKy0tLSAvZGV2L251bGwKKysrKyBi L3NjcmlwdC9saXN0X3BhdGNoX3RhcmdldHMucHkKK0BAIC0wLDAgKzEsMjMgQEAKKysjIS91c3Iv YmluL2VudiBweXRob24KKysKKytpbXBvcnQgYXJncGFyc2UKKytpbXBvcnQganNvbgorKworKwor K2RlZiBwYXJzZV9hcmdzKCk6CisrICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihk ZXNjcmlwdGlvbj0nQXBwbHkgRWxlY3Ryb24gcGF0Y2hlcycpCisrICBwYXJzZXIuYWRkX2FyZ3Vt ZW50KCdjb25maWcnLCBuYXJncz0nKycsCisrICAgICAgICAgICAgICAgICAgICAgIHR5cGU9YXJn cGFyc2UuRmlsZVR5cGUoJ3InKSwKKysgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncGF0Y2hl c1wnIGNvbmZpZyhzKSBpbiB0aGUgSlNPTiBmb3JtYXQnKQorKyAgcmV0dXJuIHBhcnNlci5wYXJz ZV9hcmdzKCkKKysKKysKKytkZWYgbWFpbigpOgorKyAgY29uZmlncyA9IHBhcnNlX2FyZ3MoKS5j b25maWcKKysgIGZvciBjb25maWdfanNvbiBpbiBjb25maWdzOgorKyAgICBmb3IgcGF0Y2hfZGly LCByZXBvIGluIGpzb24ubG9hZChjb25maWdfanNvbikuaXRlcml0ZW1zKCk6CisrICAgICAgcHJp bnQocmVwbykKKysKKysKKytpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorKyAgbWFpbigpCist LSAKKzIuMjMuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVz L2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmls ZXMvcGF0Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjk4YmZhOWJjYjIKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBh dGNoLnBhdGNoCkBAIC0wLDAgKzEsNDcgQEAKK2RpZmYgLS1naXQgYS9idWlsZC9hcmdzL3JlbGVh c2UuZ24gYi9idWlsZC9hcmdzL3JlbGVhc2UuZ24KK2luZGV4IGU1MDE3ZjZlMS4uNTkyMDdiMzg5 IDEwMDY0NAorLS0tIGEvYnVpbGQvYXJncy9yZWxlYXNlLmduCisrKysgYi9idWlsZC9hcmdzL3Jl bGVhc2UuZ24KK0BAIC0xLDYgKzEsNCBAQAorIGltcG9ydCgiYWxsLmduIikKKy1pc19jb21wb25l bnRfYnVpbGQgPSBmYWxzZQorLWlzX29mZmljaWFsX2J1aWxkID0gdHJ1ZQorIAorICMgVGhpcyBt YXkgYmUgZ3VhcmRlZCBiZWhpbmQgaXNfY2hyb21lX2JyYW5kZWQgYWxvbmdzaWRlCisgIyBwcm9w cmlldGFyeV9jb2RlY3MgaHR0cHM6Ly93ZWJydGMtcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9z cmMvKy8zNjMyMSwKK0BAIC04LDkgKzYsMyBAQCBpc19vZmZpY2lhbF9idWlsZCA9IHRydWUKKyAj IFRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZGVjb2RlciBkZXBlbmRzIG9uIHdoZXRoZXIgZmZt cGVnIGhhcworICMgYmVlbiBidWlsdCB3aXRoIEguMjY0IHN1cHBvcnQuCisgcnRjX3VzZV9oMjY0 ID0gcHJvcHJpZXRhcnlfY29kZWNzCistCistIyBCeSBkZWZhdWx0LCBFbGVjdHJvbiBidWlsZHMg ZmZtcGVnIHdpdGggcHJvcHJpZXRhcnkgY29kZWNzIGVuYWJsZWQuIEluIG9yZGVyCistIyB0byBm YWNpbGl0YXRlIHVzZXJzIHdobyBkb24ndCB3YW50IHRvIHNoaXAgcHJvcHJpZXRhcnkgY29kZWNz IGluIGZmbXBlZywgb3IKKy0jIHdobyBoYXZlIGFuIExHUEwgcmVxdWlyZW1lbnQgdG8gc2hpcCBm Zm1wZWcgYXMgYSBkeW5hbWljYWxseSBsaW5rZWQgbGlicmFyeSwKKy0jIHdlIGJ1aWxkIGZmbXBl ZyBhcyBhIHNoYXJlZCBsaWJyYXJ5LgorLWlzX2NvbXBvbmVudF9mZm1wZWcgPSB0cnVlCitkaWZm IC0tZ2l0IGEvYnVpbGQvbnBtLmduaSBiL2J1aWxkL25wbS5nbmkKK2luZGV4IGExOTg3ZDA5NS4u ZmIzM2ExNGMzIDEwMDY0NAorLS0tIGEvYnVpbGQvbnBtLmduaQorKysrIGIvYnVpbGQvbnBtLmdu aQorQEAgLTM1LDcgKzM1LDYgQEAgdGVtcGxhdGUoIm5wbV9hY3Rpb24iKSB7CisgICAgIGlmICgh ZGVmaW5lZChkZXBzKSkgeworICAgICAgIGRlcHMgPSBbXQorICAgICB9CistICAgIGRlcHMgKz0g WyAiOm5wbV9wcmVfZmxpZ2h0XyIgKyB0YXJnZXRfbmFtZSBdCisgCisgICAgIHNjcmlwdCA9ICIv L2VsZWN0cm9uL2J1aWxkL25wbS1ydW4ucHkiCisgICAgIGFyZ3MgPSBbCitkaWZmIC0tZ2l0IGEv cGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2VuYWJsZV9sdG9fYW5kX2J1 aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2ggYi9wYXRjaGVzL25vZGUvZml4X2FkZF9kZWZhdWx0X3Zh bHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9pbi5wYXRjaAoraW5kZXgg MGRjOTkxNmJlLi43ZWFhNDZiZjUgMTAwNjQ0CistLS0gYS9wYXRjaGVzL25vZGUvZml4X2FkZF9k ZWZhdWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9pbi5wYXRj aAorKysrIGIvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2VuYWJsZV9s dG9fYW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKK0BAIC0zMCw3ICszMCw3IEBACisgKyAg ICAjIHRoZXNlIHZhbHVlcyBiZWluZyBhY2N1cmF0ZS4KKyArICAgICdidWlsZF92OF93aXRoX2du JzogJ2ZhbHNlJywKKyArICAgICdlbmFibGVfbHRvJSc6ICdmYWxzZScsCistKworKysgICAgJ29w ZW5zc2xfZmlwcyc6ICcnLAorICAgICAgJ2NvbmRpdGlvbnMnOiBbCisgICAgICAgIFsndGFyZ2V0 X2FyY2g9PSJhcm02NCInLCB7CisgICAgICAgICAgIyBEaXNhYmxlZCBwZW5kaW5nIGh0dHBzOi8v Z2l0aHViLmNvbS9ub2RlanMvbm9kZS9pc3N1ZXMvMjM5MTMuCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlz LXB5dGhvbjIucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2VsZWN0cm9u LWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5mYjEzNDc0ODAyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlz LXB5dGhvbjIucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorLS0tIGEvYnVpbGQvemlwLnB5Lm9yaWcJ MjAyMC0wNC0yNyAxNzo1OTo1My40OTkyODE2NjcgKzAyMDAKKysrKyBiL2J1aWxkL3ppcC5weQky MDIwLTA0LTI3IDE3OjU5OjU3LjY1NTgzOTE0MyArMDIwMAorQEAgLTEsNCArMSw0IEBACistIyEv dXNyL2Jpbi9lbnYgcHl0aG9uCisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMgorIGZyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyBpbXBvcnQgb3MKKyBpbXBvcnQgc3VicHJvY2Vz cworCistLS0gYS9idWlsZC9ucG0tcnVuLnB5Lm9yaWcJMjAyMC0wNC0yNyAxNzo1OTo1MC44Mjkz NTE4MDcgKzAyMDAKKysrKyBiL2J1aWxkL25wbS1ydW4ucHkJMjAyMC0wNC0yNyAxODowMDowMi43 MDIzNzMyNTYgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vZW52IHB5dGhvbgor KyMhL3Vzci9iaW4vZW52IHB5dGhvbjIKKyBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1 bmN0aW9uCisgaW1wb3J0IG9zCisgaW1wb3J0IHN1YnByb2Nlc3MKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhsdWNlLWNvbnRlbnQtdGVzdC1w YXRjaGVzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1l eGx1Y2UtY29udGVudC10ZXN0LXBhdGNoZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjZlMWJiOTE4NGE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1leGx1Y2UtY29udGVudC10ZXN0LXBhdGNo ZXMucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc2NyaXB0L2FwcGx5X2FsbF9wYXRjaGVz LnB5CTIwMjAtMDgtMjIgMTc6NDY6NDEuNzk2NzA3NTA2ICswMjAwCisrKysgLQkyMDIwLTA4LTIy IDE3OjQ3OjA1Ljg4NzgxMzUxMiArMDIwMAorQEAgLTE0LDYgKzE0LDcgQEAKKyAgIGZvciBwYXRj aF9kaXIsIHJlcG8gaW4gZGlycy5pdGVtcygpOgorICAgICBnaXQuaW1wb3J0X3BhdGNoZXMocmVw bz1yZXBvLCBwYXRjaF9kYXRhPXBhdGNoX2Zyb21fZGlyKHBhdGNoX2RpciksCisgICAgICAgdGhy ZWV3YXk9dGhyZWV3YXkgaXMgbm90IE5vbmUsCisrICAgICAgZXhjbHVkZT1bJ2NvbnRlbnQvdGVz dC8qKiddLAorICAgICAgIGNvbW1pdHRlcl9uYW1lPSJFbGVjdHJvbiBTY3JpcHRzIiwgY29tbWl0 dGVyX2VtYWlsPSJzY3JpcHRzQGVsZWN0cm9uIikKKyAKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb245L2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYyBiL3Ny Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5j YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmM3YWE4ZWZhNjYKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9hdWRp b19tYW5hZ2VyX29wZW5ic2QuY2MKQEAgLTAsMCArMSwxNDggQEAKKy8vIENvcHlyaWdodCAoYykg MjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBv ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhh dCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJiYXNl L21ldHJpY3MvaGlzdG9ncmFtX21hY3Jvcy5oIgorI2luY2x1ZGUgImJhc2UvbWVtb3J5L3B0cl91 dGlsLmgiCisKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9vcGVuYnNkL2F1ZGlvX21hbmFnZXJfb3Bl bmJzZC5oIgorCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fZGV2aWNlX2Rlc2NyaXB0aW9u LmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fb3V0cHV0X2Rpc3BhdGNoZXIuaCIKKyNp bmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorI2luY2x1ZGUgIm1lZGlh L2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbGltaXRz LmgiCisjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5oIgorCituYW1lc3BhY2Ug bWVkaWEgeworCisvLyBNYXhpbXVtIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyB0aGF0IGNhbiBi ZSBvcGVuIHNpbXVsdGFuZW91c2x5Lgorc3RhdGljIGNvbnN0IGludCBrTWF4T3V0cHV0U3RyZWFt cyA9IDQ7CisKKy8vIERlZmF1bHQgc2FtcGxlIHJhdGUgZm9yIGlucHV0IGFuZCBvdXRwdXQgc3Ry ZWFtcy4KK3N0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7CisKK3Zv aWQgQWRkRGVmYXVsdERldmljZShBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKyAg RENIRUNLKGRldmljZV9uYW1lcy0+ZW1wdHkoKSk7CisgIGRldmljZV9uYW1lcy0+cHVzaF9mcm9u dChBdWRpb0RldmljZU5hbWU6OkNyZWF0ZURlZmF1bHQoKSk7Cit9CisKK2Jvb2wgQXVkaW9NYW5h Z2VyT3BlbkJTRDo6SGFzQXVkaW9PdXRwdXREZXZpY2VzKCkgeworICByZXR1cm4gdHJ1ZTsKK30K KworYm9vbCBBdWRpb01hbmFnZXJPcGVuQlNEOjpIYXNBdWRpb0lucHV0RGV2aWNlcygpIHsKKyAg cmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQXVkaW9NYW5hZ2VyT3BlbkJTRDo6R2V0QXVkaW9JbnB1 dERldmljZU5hbWVzKAorICAgIEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworICBE Q0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0eSgpKTsKKyAgQWRkRGVmYXVsdERldmljZShkZXZpY2Vf bmFtZXMpOworfQorCit2b2lkIEF1ZGlvTWFuYWdlck9wZW5CU0Q6OkdldEF1ZGlvT3V0cHV0RGV2 aWNlTmFtZXMoCisgICAgQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisgIEFkZERl ZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKK30KKworY29uc3QgY2hhciogQXVkaW9NYW5hZ2Vy T3BlbkJTRDo6R2V0TmFtZSgpIHsKKyAgcmV0dXJuICJTTkRJTyI7Cit9CisKK0F1ZGlvUGFyYW1l dGVycyBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMoCisgICAg Y29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCkgeworICBzdGF0aWMgY29uc3QgaW50IGtEZWZh dWx0SW5wdXRCdWZmZXJTaXplID0gMTAyNDsKKworICBpbnQgdXNlcl9idWZmZXJfc2l6ZSA9IEdl dFVzZXJCdWZmZXJTaXplKCk7CisgIGludCBidWZmZXJfc2l6ZSA9IHVzZXJfYnVmZmVyX3NpemUg PworICAgICAgdXNlcl9idWZmZXJfc2l6ZSA6IGtEZWZhdWx0SW5wdXRCdWZmZXJTaXplOworCisg IHJldHVybiBBdWRpb1BhcmFtZXRlcnMoCisgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BD TV9MT1dfTEFURU5DWSwgQ0hBTk5FTF9MQVlPVVRfU1RFUkVPLAorICAgICAga0RlZmF1bHRTYW1w bGVSYXRlLCBidWZmZXJfc2l6ZSk7Cit9CisKK0F1ZGlvTWFuYWdlck9wZW5CU0Q6OkF1ZGlvTWFu YWdlck9wZW5CU0Qoc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJlYWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSog YXVkaW9fbG9nX2ZhY3RvcnkpCisgICAgOiBBdWRpb01hbmFnZXJCYXNlKHN0ZDo6bW92ZShhdWRp b190aHJlYWQpLAorICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9yeSkgewor ICBETE9HKFdBUk5JTkcpIDw8ICJBdWRpb01hbmFnZXJPcGVuQlNEIjsKKyAgU2V0TWF4T3V0cHV0 U3RyZWFtc0FsbG93ZWQoa01heE91dHB1dFN0cmVhbXMpOworfQorCitBdWRpb01hbmFnZXJPcGVu QlNEOjp+QXVkaW9NYW5hZ2VyT3BlbkJTRCgpIHsKKyAgU2h1dGRvd24oKTsKK30KKworQXVkaW9P dXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VMaW5lYXJPdXRwdXRTdHJlYW0o CisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgY29uc3QgTG9nQ2FsbGJh Y2smIGxvZ19jYWxsYmFjaykgeworICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19Q Q01fTElORUFSLCBwYXJhbXMuZm9ybWF0KCkpOworICByZXR1cm4gTWFrZU91dHB1dFN0cmVhbShw YXJhbXMpOworfQorCitBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6TWFr ZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJh bXMsCisgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKyAgICBjb25zdCBMb2dDYWxs YmFjayYgbG9nX2NhbGxiYWNrKSB7CisgIERMT0dfSUYoRVJST1IsICFkZXZpY2VfaWQuZW1wdHko KSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpB VURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisgIHJldHVybiBNYWtlT3V0 cHV0U3RyZWFtKHBhcmFtcyk7Cit9CisKK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlck9w ZW5CU0Q6Ok1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMm IHBhcmFtcywKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorICAgIGNvbnN0IExv Z0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6 QVVESU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsKKyAgcmV0dXJuIE1ha2VJbnB1dFN0 cmVhbShwYXJhbXMpOworfQorCitBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJPcGVuQlNE OjpNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYg cGFyYW1zLAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisgICAgY29uc3QgTG9n Q2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpB VURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisgIHJldHVybiBNYWtlSW5w dXRTdHJlYW0ocGFyYW1zKTsKK30KKworQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlck9wZW5C U0Q6OkdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBhcmFtZXRlcnMoCisgICAgY29uc3Qgc3RkOjpz dHJpbmcmIG91dHB1dF9kZXZpY2VfaWQsCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1 dF9wYXJhbXMpIHsKKyAgLy8gVE9ETyh0b21taSk6IFN1cHBvcnQgfG91dHB1dF9kZXZpY2VfaWR8 LgorICBETE9HX0lGKEVSUk9SLCAhb3V0cHV0X2RldmljZV9pZC5lbXB0eSgpKSA8PCAiTm90IGlt cGxlbWVudGVkISI7CisgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRPdXRwdXRCdWZmZXJTaXpl ID0gMjA0ODsKKworICBDaGFubmVsTGF5b3V0IGNoYW5uZWxfbGF5b3V0ID0gQ0hBTk5FTF9MQVlP VVRfU1RFUkVPOworICBpbnQgc2FtcGxlX3JhdGUgPSBrRGVmYXVsdFNhbXBsZVJhdGU7CisgIGlu dCBidWZmZXJfc2l6ZSA9IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZTsKKyAgaWYgKGlucHV0X3Bh cmFtcy5Jc1ZhbGlkKCkpIHsKKyAgICBzYW1wbGVfcmF0ZSA9IGlucHV0X3BhcmFtcy5zYW1wbGVf cmF0ZSgpOworICAgIGNoYW5uZWxfbGF5b3V0ID0gaW5wdXRfcGFyYW1zLmNoYW5uZWxfbGF5b3V0 KCk7CisgICAgYnVmZmVyX3NpemUgPSBzdGQ6Om1pbihidWZmZXJfc2l6ZSwgaW5wdXRfcGFyYW1z LmZyYW1lc19wZXJfYnVmZmVyKCkpOworICB9CisKKyAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBH ZXRVc2VyQnVmZmVyU2l6ZSgpOworICBpZiAodXNlcl9idWZmZXJfc2l6ZSkKKyAgICBidWZmZXJf c2l6ZSA9IHVzZXJfYnVmZmVyX3NpemU7CisKKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygKKyAg ICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBjaGFubmVsX2xheW91 dCwKKyAgICAgIHNhbXBsZV9yYXRlLCBidWZmZXJfc2l6ZSk7Cit9CisKK0F1ZGlvSW5wdXRTdHJl YW0qIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VJbnB1dFN0cmVhbSgKKyAgICBjb25zdCBBdWRp b1BhcmFtZXRlcnMmIHBhcmFtcykgeworICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlSW5wdXRTdHJl YW0iOworICByZXR1cm4gbmV3IFNuZGlvQXVkaW9JbnB1dFN0cmVhbSh0aGlzLAorICAgICAgICAg ICAgIEF1ZGlvRGV2aWNlRGVzY3JpcHRpb246OmtEZWZhdWx0RGV2aWNlSWQsIHBhcmFtcyk7Cit9 CisKK0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJPcGVuQlNEOjpNYWtlT3V0cHV0U3Ry ZWFtKAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKSB7CisgIERMT0coV0FSTklO RykgPDwgIk1ha2VPdXRwdXRTdHJlYW0iOworICByZXR1cm4gbmV3IFNuZGlvQXVkaW9PdXRwdXRT dHJlYW0ocGFyYW1zLCB0aGlzKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29w ZW5ic2QuaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFn ZXJfb3BlbmJzZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44Yzk5 ZGI5NjZkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlv LWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5oCkBAIC0wLDAgKzEsNjUgQEAKKy8vIENvcHly aWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpZm5k ZWYgTUVESUFfQVVESU9fT1BFTkJTRF9BVURJT19NQU5BR0VSX09QRU5CU0RfSF8KKyNkZWZpbmUg TUVESUFfQVVESU9fT1BFTkJTRF9BVURJT19NQU5BR0VSX09QRU5CU0RfSF8KKworI2luY2x1ZGUg PHNldD4KKworI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKyNpbmNsdWRlICJi YXNlL21hY3Jvcy5oIgorI2luY2x1ZGUgImJhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgiCisjaW5j bHVkZSAiYmFzZS90aHJlYWRpbmcvdGhyZWFkLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVk aW9fbWFuYWdlcl9iYXNlLmgiCisKK25hbWVzcGFjZSBtZWRpYSB7CisKK2NsYXNzIE1FRElBX0VY UE9SVCBBdWRpb01hbmFnZXJPcGVuQlNEIDogcHVibGljIEF1ZGlvTWFuYWdlckJhc2UgeworIHB1 YmxpYzoKKyAgQXVkaW9NYW5hZ2VyT3BlbkJTRChzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9UaHJlYWQ+ IGF1ZGlvX3RocmVhZCwKKyAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlv X2xvZ19mYWN0b3J5KTsKKyAgfkF1ZGlvTWFuYWdlck9wZW5CU0QoKSBvdmVycmlkZTsKKworICAv LyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXIuCisgIGJvb2wgSGFzQXVkaW9PdXRwdXRE ZXZpY2VzKCkgb3ZlcnJpZGU7CisgIGJvb2wgSGFzQXVkaW9JbnB1dERldmljZXMoKSBvdmVycmlk ZTsKKyAgdm9pZCBHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2 aWNlX25hbWVzKSBvdmVycmlkZTsKKyAgdm9pZCBHZXRBdWRpb091dHB1dERldmljZU5hbWVzKEF1 ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgb3ZlcnJpZGU7CisgIEF1ZGlvUGFyYW1ldGVy cyBHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMoCisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX2lkKSBvdmVycmlkZTsKKyAgY29uc3QgY2hhciogR2V0TmFtZSgpIG92ZXJyaWRlOworCisg IC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvTWFuYWdlckJhc2UuCisgIEF1ZGlvT3V0cHV0U3Ry ZWFtKiBNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMsCisgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlk ZTsKKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtKAorICAg ICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgICBjb25zdCBzdGQ6OnN0cmlu ZyYgZGV2aWNlX2lkLAorICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3Zl cnJpZGU7CisgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKyAgICAg IGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgICAgY29uc3Qgc3RkOjpzdHJpbmcm IGRldmljZV9pZCwKKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJy aWRlOworICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorICAg ICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgICBjb25zdCBzdGQ6OnN0cmlu ZyYgZGV2aWNlX2lkLAorICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3Zl cnJpZGU7CisKKyBwcm90ZWN0ZWQ6CisgIEF1ZGlvUGFyYW1ldGVycyBHZXRQcmVmZXJyZWRPdXRw dXRTdHJlYW1QYXJhbWV0ZXJzKAorICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZp Y2VfaWQsCisgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgb3ZlcnJp ZGU7CisKKyBwcml2YXRlOgorICAvLyBDYWxsZWQgYnkgTWFrZUxpbmVhck91dHB1dFN0cmVhbSBh bmQgTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0uCisgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtl T3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKyAgQXVkaW9JbnB1 dFN0cmVhbSogTWFrZUlucHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsK KworICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oQXVkaW9NYW5hZ2VyT3BlbkJTRCk7Cit9Owor Cit9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKworI2VuZGlmICAvLyBNRURJQV9BVURJT19PUEVOQlNE X0FVRElPX01BTkFHRVJfT1BFTkJTRF9IXwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuY2MgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNmM3YmM4YjgwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5jYwpAQCAtMCwwICsxLDIwMSBAQAor Ly8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisj aW5jbHVkZSAiYmFzZS9iaW5kLmgiCisjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVk ZSAiYmFzZS9tYWNyb3MuaCIKKyNpbmNsdWRlICJiYXNlL21lc3NhZ2VfbG9vcC9tZXNzYWdlX2xv b3AuaCIKKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKyNp bmNsdWRlICJtZWRpYS9hdWRpby9vcGVuYnNkL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5oIgorI2lu Y2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXIuaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRp by9zbmRpby9zbmRpb19pbnB1dC5oIgorCituYW1lc3BhY2UgbWVkaWEgeworCitzdGF0aWMgY29u c3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2OworCit2b2lk IFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVs dGEpCit7CisgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlv QXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisKKyAgc2VsZi0+aHdfZGVsYXkgKz0gZGVsdGE7Cit9 CisKK3ZvaWQgKlNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7 CisgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9J bnB1dFN0cmVhbSo+KGFyZyk7CisKKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworICByZXR1cm4gTlVM TDsKK30KKworU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVk aW9NYW5hZ2VyQmFzZSogbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYg cGFyYW1zKQorICAgIDogbWFuYWdlcihtYW5hZ2VyKSwKKyAgICAgIHBhcmFtcyhwYXJhbXMpLAor ICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisgICAgICBzdGF0ZShr Q2xvc2VkKSB7Cit9CisKK1NuZGlvQXVkaW9JbnB1dFN0cmVhbTo6flNuZGlvQXVkaW9JbnB1dFN0 cmVhbSgpIHsKKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisgICAgQ2xvc2UoKTsKK30KKworYm9v bCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9wZW4oKSB7CisgIHN0cnVjdCBzaW9fcGFyIHBhcjsK KyAgaW50IHNpZzsKKworICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKyAgICByZXR1cm4gZmFsc2U7 CisKKyAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M SU5FQVIgJiYKKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElP X1BDTV9MT1dfTEFURU5DWSkgeworICAgIExPRyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0ZWQgYXVk aW8gZm9ybWF0LiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgc2lvX2luaXRwYXIoJnBh cik7CisgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisgIHBhci5yY2hhbiA9IHBh cmFtcy5jaGFubmVscygpOworICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5u ZWwoa1NhbXBsZUZvcm1hdCk7CisgIHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisgIHBhci5zaWcg PSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7CisgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7 CisgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworCisgIGhkbCA9 IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19SRUMsIDApOworCisgIGlmIChoZGwgPT0gTlVMTCkg eworICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7CisgICAg cmV0dXJuIGZhbHNlOworICB9CisKKyAgaWYgKCFzaW9fc2V0cGFyKGhkbCwgJnBhcikgfHwgIXNp b19nZXRwYXIoaGRsLCAmcGFyKSkgeworICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBh dWRpbyBwYXJhbWV0ZXJzLiI7CisgICAgZ290byBiYWRfY2xvc2U7CisgIH0KKworICBpZiAocGFy LnJhdGUgICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLnNhbXBsZV9yYXRlKCkgfHwKKyAgICAgIHBh ci5yY2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFubmVscygpIHx8CisgICAgICBwYXIu Yml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1w bGVGb3JtYXQpIHx8CisgICAgICBwYXIuc2lnICAgIT0gKHVuc2lnbmVkIGludClzaWcgfHwKKyAg ICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lPX0xFX05BVElWRSkgfHwKKyAgICAgIChw YXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKyAgICBMT0coRVJST1IpIDw8ICJVbnN1cHBvcnRl ZCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisgICAgZ290byBiYWRfY2xvc2U7CisgIH0KKyAgc3RhdGUg PSBrU3RvcHBlZDsKKyAgYnVmZmVyID0gbmV3IGNoYXJbYXVkaW9fYnVzLT5mcmFtZXMoKSAqIHBh cmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpXTsKKyAgc2lvX29ubW92ZShoZGws ICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7CisgIHJldHVybiB0cnVlOworYmFkX2Nsb3NlOgorICBz aW9fY2xvc2UoaGRsKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFNuZGlvQXVkaW9JbnB1 dFN0cmVhbTo6U3RhcnQoQXVkaW9JbnB1dENhbGxiYWNrKiBjYikgeworCisgIFN0YXJ0QWdjKCk7 CisKKyAgc3RhdGUgPSBrUnVubmluZzsKKyAgaHdfZGVsYXkgPSAwOworICBjYWxsYmFjayA9IGNi OworICBzaW9fc3RhcnQoaGRsKTsKKyAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEws ICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgeworICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0 byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZCBmb3IgcmVjb3JkaW5nLiI7CisgICAgc2lvX3N0b3Ao aGRsKTsKKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworICB9Cit9CisKK3ZvaWQgU25kaW9BdWRpb0lu cHV0U3RyZWFtOjpTdG9wKCkgeworCisgIGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKyAgICByZXR1 cm47CisKKyAgc3RhdGUgPSBrU3RvcFdhaXQ7CisgIHB0aHJlYWRfam9pbih0aHJlYWQsIE5VTEwp OworICBzaW9fc3RvcChoZGwpOworICBzdGF0ZSA9IGtTdG9wcGVkOworCisgIFN0b3BBZ2MoKTsK K30KKwordm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkNsb3NlKCkgeworCisgIGlmIChzdGF0 ZSA9PSBrQ2xvc2VkKQorICAgIHJldHVybjsKKworICBpZiAoc3RhdGUgPT0ga1J1bm5pbmcpCisg ICAgU3RvcCgpOworCisgIHN0YXRlID0ga0Nsb3NlZDsKKyAgZGVsZXRlIFtdIGJ1ZmZlcjsKKyAg c2lvX2Nsb3NlKGhkbCk7CisKKyAgbWFuYWdlci0+UmVsZWFzZUlucHV0U3RyZWFtKHRoaXMpOwor fQorCitkb3VibGUgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRNYXhWb2x1bWUoKSB7CisgIC8v IE5vdCBzdXBwb3J0ZWQKKyAgcmV0dXJuIDAuMDsKK30KKwordm9pZCBTbmRpb0F1ZGlvSW5wdXRT dHJlYW06OlNldFZvbHVtZShkb3VibGUgdm9sdW1lKSB7CisgIC8vIE5vdCBzdXBwb3J0ZWQuIERv IG5vdGhpbmcuCit9CisKK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldFZvbHVtZSgp IHsKKyAgLy8gTm90IHN1cHBvcnRlZC4KKyAgcmV0dXJuIDAuMDsKK30KKworYm9vbCBTbmRpb0F1 ZGlvSW5wdXRTdHJlYW06OklzTXV0ZWQoKSB7CisgIC8vIE5vdCBzdXBwb3J0ZWQuCisgIHJldHVy biBmYWxzZTsKK30KKwordm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNldE91dHB1dERldmlj ZUZvckFlYygKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkgeworICAv LyBOb3Qgc3VwcG9ydGVkLgorfQorCit2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFk TG9vcCh2b2lkKSB7CisgIHNpemVfdCB0b2RvLCBuOworICBjaGFyICpkYXRhOworICB1bnNpZ25l ZCBpbnQgbmZyYW1lczsKKyAgZG91YmxlIG5vcm1hbGl6ZWRfdm9sdW1lID0gMC4wOworCisgIG5m cmFtZXMgPSBhdWRpb19idXMtPmZyYW1lcygpOworCisgIHdoaWxlIChzdGF0ZSA9PSBrUnVubmlu ZyAmJiAhc2lvX2VvZihoZGwpKSB7CisKKyAgICBHZXRBZ2NWb2x1bWUoJm5vcm1hbGl6ZWRfdm9s dW1lKTsKKworICAgIC8vIHJlYWQgb25lIGJsb2NrCisgICAgdG9kbyA9IG5mcmFtZXMgKiBwYXJh bXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsKKyAgICBkYXRhID0gYnVmZmVyOwor ICAgIHdoaWxlICh0b2RvID4gMCkgeworICAgICAgbiA9IHNpb19yZWFkKGhkbCwgZGF0YSwgdG9k byk7CisgICAgICBpZiAobiA9PSAwKQorICAgICAgICByZXR1cm47CS8vIHVucmVjb3ZlcmFibGUg SS9PIGVycm9yCisgICAgICB0b2RvIC09IG47CisgICAgICBkYXRhICs9IG47CisgICAgfQorICAg IGh3X2RlbGF5IC09IG5mcmFtZXM7CisKKyAgICAvLyBjb252ZXJ0IGZyYW1lcyBjb3VudCB0byBU aW1lRGVsdGEKKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFt cEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorICAgICAgcGFyYW1zLnNhbXBsZV9yYXRl KCkpOworCisgICAgLy8gcHVzaCBpbnRvIGJ1cworICAgIGF1ZGlvX2J1cy0+RnJvbUludGVybGVh dmVkKGJ1ZmZlciwgbmZyYW1lcywgU2FtcGxlRm9ybWF0VG9CeXRlc1BlckNoYW5uZWwoa1NhbXBs ZUZvcm1hdCkpOworCisgICAgLy8gaW52b2tlIGNhbGxiYWNrCisgICAgY2FsbGJhY2stPk9uRGF0 YShhdWRpb19idXMuZ2V0KCksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCkgLSBkZWxheSwgMS4pOwor ICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBtZWRpYQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuaCBiL3NyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmQ4NjhlMDQ2OWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuaApAQCAtMCwwICsxLDkxIEBA CisvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl cnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0 eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK KyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKyNkZWZpbmUgTUVESUFf QVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1 ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxzbmRpby5oPgorCisjaW5jbHVkZSAiYmFzZS9jb21waWxl cl9zcGVjaWZpYy5oIgorI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCisjaW5jbHVkZSAiYmFzZS9t ZW1vcnkvd2Vha19wdHIuaCIKKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL2FnY19hdWRpb19zdHJlYW0uaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9h dWRpb19pby5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNjcmlwdGlv bi5oIgorI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fcGFyYW1ldGVycy5oIgorCituYW1lc3Bh Y2UgbWVkaWEgeworCitjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworCisvLyBJbXBsZW1lbnRhdGlv biBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorY2xhc3MgU25kaW9BdWRpb0lu cHV0U3RyZWFtIDogcHVibGljIEFnY0F1ZGlvU3RyZWFtPEF1ZGlvSW5wdXRTdHJlYW0+IHsKKyBw dWJsaWM6CisgIC8vIFBhc3MgdGhpcyB0byB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdhbnQgdG8g YXR0ZW1wdCBhdXRvLXNlbGVjdGlvbgorICAvLyBvZiB0aGUgYXVkaW8gcmVjb3JkaW5nIGRldmlj ZS4KKyAgc3RhdGljIGNvbnN0IGNoYXIga0F1dG9TZWxlY3REZXZpY2VbXTsKKworICAvLyBDcmVh dGUgYSBQQ00gT3V0cHV0IHN0cmVhbSBmb3IgdGhlIFNORElPIGRldmljZSBpZGVudGlmaWVkIGJ5 CisgIC8vIHxkZXZpY2VfbmFtZXwuIElmIHVuc3VyZSBvZiB3aGF0IHRvIHVzZSBmb3IgfGRldmlj ZV9uYW1lfCwgdXNlCisgIC8vIHxrQXV0b1NlbGVjdERldmljZXwuCisgIFNuZGlvQXVkaW9JbnB1 dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBhdWRpb19tYW5hZ2VyLAorICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworCisgIH5TbmRpb0F1ZGlvSW5wdXRT dHJlYW0oKSBvdmVycmlkZTsKKworICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb0lucHV0U3Ry ZWFtLgorICBib29sIE9wZW4oKSBvdmVycmlkZTsKKyAgdm9pZCBTdGFydChBdWRpb0lucHV0Q2Fs bGJhY2sqIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisgIHZv aWQgQ2xvc2UoKSBvdmVycmlkZTsKKyAgZG91YmxlIEdldE1heFZvbHVtZSgpIG92ZXJyaWRlOwor ICB2b2lkIFNldFZvbHVtZShkb3VibGUgdm9sdW1lKSBvdmVycmlkZTsKKyAgZG91YmxlIEdldFZv bHVtZSgpIG92ZXJyaWRlOworICBib29sIElzTXV0ZWQoKSBvdmVycmlkZTsKKyAgdm9pZCBTZXRP dXRwdXREZXZpY2VGb3JBZWMoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIG92 ZXJyaWRlOworCisgcHJpdmF0ZToKKworICBlbnVtIFN0cmVhbVN0YXRlIHsKKyAgICBrQ2xvc2Vk LCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisgICAga1N0b3BwZWQsICAgICAgICAgICAv LyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisgICAga1J1bm5pbmcsICAgICAg ICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWluZworICAgIGtTdG9wV2FpdCAgICAgICAgICAg Ly8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4aXQKKyAg fTsKKworICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKyAgc3RhdGljIHZvaWQgT25Nb3ZlQ2FsbGJh Y2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworICBzdGF0aWMgdm9pZCogVGhyZWFkRW50cnkodm9p ZCAqYXJnKTsKKworICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9tIHRoZSBkZXZpY2Ug dG8gdGhlIGNvbnN1bWVyCisgIHZvaWQgVGhyZWFkTG9vcCgpOworICAvLyBPdXIgY3JlYXRvciwg dGhlIGF1ZGlvIG1hbmFnZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgd2hlbiB3ZSBjbG9zZS4KKyAg QXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNl CisgIEF1ZGlvUGFyYW1ldGVycyBwYXJhbXM7CisgIC8vIFdlIHN0b3JlIGRhdGEgaGVyZSBmb3Ig Y29uc3VtZXIKKyAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVzPiBhdWRpb19idXM7CisgIC8vIENh bGwtYmFjayB0aGF0IGNvbnN1bWVzIHJlY29yZGVkIGRhdGEKKyAgQXVkaW9JbnB1dENhbGxiYWNr KiBjYWxsYmFjazsgIC8vIFZhbGlkIGR1cmluZyBhIHJlY29yZGluZyBzZXNzaW9uLgorICAvLyBI YW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorICBzdHJ1Y3Qgc2lvX2hkbCogaGRsOworICAvLyBD dXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKyAg Ly8gSGlnaCBwcmlvcml0eSB0aHJlYWQgcnVubmluZyBUaHJlYWRMb29wKCkKKyAgcHRocmVhZF90 IHRocmVhZDsKKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUK KyAgaW50IGh3X2RlbGF5OworICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEgaXMgc3Rv cmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisgIGNoYXIqIGJ1ZmZlcjsKKworICBESVNBTExP V19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb0lucHV0U3RyZWFtKTsKK307CisKK30gIC8vIG5h bWVzcGFjZSBtZWRpYQorCisjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVU X0hfCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9zbmRp b19vdXRwdXQuY2MgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9zbmRpb19v dXRwdXQuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE2NzE5Zjlh YWM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmls ZXMvc25kaW9fb3V0cHV0LmNjCkBAIC0wLDAgKzEsMTgzIEBACisvLyBDb3B5cmlnaHQgKGMpIDIw MTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2Yg dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQg Y2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSAiYmFzZS9s b2dnaW5nLmgiCisjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKyNpbmNsdWRlICJiYXNlL3Rp bWUvZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFu YWdlcl9iYXNlLmgiCisjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBfaGVscGVy LmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisKK25hbWVz cGFjZSBtZWRpYSB7CisKK3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQga1NhbXBsZUZvcm1hdCA9 IGtTYW1wbGVGb3JtYXRTMTY7CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Nb3Zl Q2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpIHsKKyAgU25kaW9BdWRpb091dHB1dFN0cmVh bSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworCisg IHNlbGYtPmh3X2RlbGF5IC09IGRlbHRhOworfQorCit2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJl YW06Ok9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKSB7CisgIFNuZGlv QXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtKj4oYXJnKTsKKworICBzZWxmLT52b2wgPSB2b2w7Cit9CisKK3ZvaWQgKlNuZGlvQXVkaW9P dXRwdXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgeworICBTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7 CisKKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworICByZXR1cm4gTlVMTDsKK30KKworU25kaW9BdWRp b091dHB1dFN0cmVhbTo6U25kaW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRl cnMmIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcikKKyAgICA6IG1hbmFnZXIobWFuYWdlciksCisg ICAgICBwYXJhbXMocGFyYW1zKSwKKyAgICAgIGF1ZGlvX2J1cyhBdWRpb0J1czo6Q3JlYXRlKHBh cmFtcykpLAorICAgICAgc3RhdGUoa0Nsb3NlZCksCisgICAgICBtdXRleChQVEhSRUFEX01VVEVY X0lOSVRJQUxJWkVSKSB7Cit9CisKK1NuZGlvQXVkaW9PdXRwdXRTdHJlYW06On5TbmRpb0F1ZGlv T3V0cHV0U3RyZWFtKCkgeworICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKyAgICBDbG9zZSgpOwor fQorCitib29sIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9wZW4oKSB7CisgIHN0cnVjdCBzaW9f cGFyIHBhcjsKKyAgaW50IHNpZzsKKworICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFy YW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorICAgICAgcGFyYW1zLmZvcm1hdCgpICE9IEF1 ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisgICAgTE9HKFdBUk5JTkcp IDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0K KyAgc2lvX2luaXRwYXIoJnBhcik7CisgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7 CisgIHBhci5wY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworICBwYXIuYml0cyA9IFNhbXBsZUZv cm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7CisgIHBhci5icHMgPSBwYXIuYml0 cyAvIDg7CisgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7CisgIHBhci5s ZSA9IFNJT19MRV9OQVRJVkU7CisgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNfcGVyX2J1 ZmZlcigpOworCisgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAwKTsKKyAg aWYgKGhkbCA9PSBOVUxMKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRp byBkZXZpY2UuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKCFzaW9fc2V0cGFyKGhk bCwgJnBhcikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworICAgIExPRyhFUlJPUikgPDwg IkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisgICAgZ290byBiYWRfY2xvc2U7Cisg IH0KKyAgaWYgKHBhci5yYXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgp IHx8CisgICAgICBwYXIucGNoYW4gIT0gKHVuc2lnbmVkIGludClwYXJhbXMuY2hhbm5lbHMoKSB8 fAorICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0VG9CaXRzUGVy Q2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAorICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBp bnQpc2lnIHx8CisgICAgICAocGFyLmJwcyA+IDEgJiYgcGFyLmxlICE9IFNJT19MRV9OQVRJVkUp IHx8CisgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7CisgICAgTE9HKEVSUk9SKSA8 PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworICAgIGdvdG8gYmFkX2Nsb3NlOwor ICB9CisgIHN0YXRlID0ga1N0b3BwZWQ7CisgIHZvbHBlbmRpbmcgPSAwOworICB2b2wgPSAwOwor ICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdldEJ5dGVz UGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxi YWNrLCB0aGlzKTsKKyAgc2lvX29udm9sKGhkbCwgJk9uVm9sQ2FsbGJhY2ssIHRoaXMpOworICBy ZXR1cm4gdHJ1ZTsKKyBiYWRfY2xvc2U6CisgIHNpb19jbG9zZShoZGwpOworICByZXR1cm4gZmFs c2U7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Q2xvc2UoKSB7CisgIGlmIChz dGF0ZSA9PSBrQ2xvc2VkKQorICAgIHJldHVybjsKKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQor ICAgIFN0b3AoKTsKKyAgc3RhdGUgPSBrQ2xvc2VkOworICBkZWxldGUgW10gYnVmZmVyOworICBz aW9fY2xvc2UoaGRsKTsKKyAgbWFuYWdlci0+UmVsZWFzZU91dHB1dFN0cmVhbSh0aGlzKTsgIC8v IENhbGxzIHRoZSBkZXN0cnVjdG9yCit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6 U3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2FsbGJhY2spIHsKKyAgc3RhdGUgPSBrUnVubmlu ZzsKKyAgaHdfZGVsYXkgPSAwOworICBzb3VyY2UgPSBjYWxsYmFjazsKKyAgc2lvX3N0YXJ0KGhk bCk7CisgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnksIHRo aXMpICE9IDApIHsKKyAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJlYWwtdGlt ZSB0aHJlYWQuIjsKKyAgICBzaW9fc3RvcChoZGwpOworICAgIHN0YXRlID0ga1N0b3BwZWQ7Cisg IH0KK30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTdG9wKCkgeworICBpZiAoc3Rh dGUgPT0ga1N0b3BwZWQpCisgICAgcmV0dXJuOworICBzdGF0ZSA9IGtTdG9wV2FpdDsKKyAgcHRo cmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisgIHNpb19zdG9wKGhkbCk7CisgIHN0YXRlID0ga1N0 b3BwZWQ7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U2V0Vm9sdW1lKGRvdWJs ZSB2KSB7CisgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworICB2b2wgPSB2ICogU0lPX01B WFZPTDsKKyAgdm9scGVuZGluZyA9IDE7CisgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7 Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6R2V0Vm9sdW1lKGRvdWJsZSogdikg eworICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKyAgKnYgPSB2b2wgKiAoMS4gLyBTSU9f TUFYVk9MKTsKKyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKK30KKworLy8gVGhpcyBz dHJlYW0gaXMgYWx3YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25kIGJ1ZmZlciBzaXplcywgd2hlcmUg aXQncworLy8gc3VmZmljaWVudCB0byBzaW1wbHkgYWx3YXlzIGZsdXNoIHVwb24gU3RhcnQoKS4K K3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Rmx1c2goKSB7fQorCit2b2lkIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW06OlRocmVhZExvb3Aodm9pZCkgeworICBpbnQgYXZhaWwsIGNvdW50LCBy ZXN1bHQ7CisKKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5nKSB7CisgICAgLy8gVXBkYXRlIHZv bHVtZSBpZiBuZWVkZWQKKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKyAgICBpZiAo dm9scGVuZGluZykgeworICAgICAgdm9scGVuZGluZyA9IDA7CisgICAgICBzaW9fc2V0dm9sKGhk bCwgdm9sKTsKKyAgICB9CisgICAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKKworICAg IC8vIEdldCBkYXRhIHRvIHBsYXkKKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBB dWRpb1RpbWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorCXBhcmFtcy5zYW1w bGVfcmF0ZSgpKTsKKyAgICBjb3VudCA9IHNvdXJjZS0+T25Nb3JlRGF0YShkZWxheSwgYmFzZTo6 VGltZVRpY2tzOjpOb3coKSwgMCwgYXVkaW9fYnVzLmdldCgpKTsKKyAgICBhdWRpb19idXMtPlRv SW50ZXJsZWF2ZWQoY291bnQsIFNhbXBsZUZvcm1hdFRvQnl0ZXNQZXJDaGFubmVsKGtTYW1wbGVG b3JtYXQpLCBidWZmZXIpOworICAgIGlmIChjb3VudCA9PSAwKSB7CisgICAgICAvLyBXZSBoYXZl IHRvIHN1Ym1pdCBzb21ldGhpbmcgdG8gdGhlIGRldmljZQorICAgICAgY291bnQgPSBhdWRpb19i dXMtPmZyYW1lcygpOworICAgICAgbWVtc2V0KGJ1ZmZlciwgMCwgY291bnQgKiBwYXJhbXMuR2V0 Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KSk7CisgICAgICBMT0coV0FSTklORykgPDwgIk5v IGRhdGEgdG8gcGxheSwgcnVubmluZyBlbXB0eSBjeWNsZS4iOworICAgIH0KKworICAgIC8vIFN1 Ym1pdCBkYXRhIHRvIHRoZSBkZXZpY2UKKyAgICBhdmFpbCA9IGNvdW50ICogcGFyYW1zLkdldEJ5 dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisgICAgcmVzdWx0ID0gc2lvX3dyaXRlKGhkbCwg YnVmZmVyLCBhdmFpbCk7CisgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICBMT0coV0FSTklO RykgPDwgIkF1ZGlvIGRldmljZSBkaXNjb25uZWN0ZWQuIjsKKyAgICAgIGJyZWFrOworICAgIH0K KworICAgIC8vIFVwZGF0ZSBoYXJkd2FyZSBwb2ludGVyCisgICAgaHdfZGVsYXkgKz0gY291bnQ7 CisgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Vs ZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuaCBiL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5lYWQyMjBjYTk2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5oCkBAIC0wLDAgKzEs ODYgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJp Z2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5 IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCisKKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCisjZGVm aW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXworCisjaW5jbHVkZSA8cHRocmVh ZC5oPgorI2luY2x1ZGUgPHNuZGlvLmg+CisKKyNpbmNsdWRlICJiYXNlL3RpbWUvdGlja19jbG9j ay5oIgorI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8v YXVkaW9faW8uaCIKKworbmFtZXNwYWNlIG1lZGlhIHsKKworY2xhc3MgQXVkaW9NYW5hZ2VyQmFz ZTsKKworLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25kaW8o NykKK2NsYXNzIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRwdXRTdHJl YW0geworIHB1YmxpYzoKKyAgLy8gVGhlIG1hbmFnZXIgaXMgY3JlYXRpbmcgdGhpcyBvYmplY3QK KyAgU25kaW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywK KyAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKTsKKyAg dmlydHVhbCB+U25kaW9BdWRpb091dHB1dFN0cmVhbSgpOworCisgIC8vIEltcGxlbWVudGF0aW9u IG9mIEF1ZGlvT3V0cHV0U3RyZWFtLgorICBib29sIE9wZW4oKSBvdmVycmlkZTsKKyAgdm9pZCBD bG9zZSgpIG92ZXJyaWRlOworICB2b2lkIFN0YXJ0KEF1ZGlvU291cmNlQ2FsbGJhY2sqIGNhbGxi YWNrKSBvdmVycmlkZTsKKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisgIHZvaWQgU2V0Vm9sdW1l KGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRlOworICB2b2lkIEdldFZvbHVtZShkb3VibGUqIHZvbHVt ZSkgb3ZlcnJpZGU7CisgIHZvaWQgRmx1c2goKSBvdmVycmlkZTsKKworICBmcmllbmQgdm9pZCBz bmRpb19vbm1vdmUodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworICBmcmllbmQgdm9pZCBzbmRpb19v bnZvbCh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpOworICBmcmllbmQgdm9pZCAqc25kaW9f dGhyZWFkc3RhcnQodm9pZCAqYXJnKTsKKworIHByaXZhdGU6CisgIGVudW0gU3RyZWFtU3RhdGUg eworICAgIGtDbG9zZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKyAgICBrU3RvcHBl ZCwgICAgICAgICAgIC8vIERldmljZSBvcGVuZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQKKyAgICBr UnVubmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisgICAga1N0b3BX YWl0ICAgICAgICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJl YWQgdG8gZXhpdAorICB9OworCisgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworICBzdGF0aWMgdm9p ZCBPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSk7CisgIHN0YXRpYyB2b2lkIE9u Vm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKyAgc3RhdGljIHZvaWQq IFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisKKyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRhdGEg ZnJvbSB0aGUgcHJvZHVjZXIgdG8gdGhlIGRldmljZQorICB2b2lkIFRocmVhZExvb3Aodm9pZCk7 CisKKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlm aWVkIHdoZW4gd2UgY2xvc2UuCisgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7CisgIC8vIFBh cmFtZXRlcnMgb2YgdGhlIHNvdXJjZQorICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOworICAvLyBT b3VyY2Ugc3RvcmVzIGRhdGEgaGVyZQorICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdXM+IGF1ZGlv X2J1czsKKyAgLy8gQ2FsbC1iYWNrIHRoYXQgcHJvZHVjZXMgZGF0YSB0byBwbGF5CisgIEF1ZGlv U291cmNlQ2FsbGJhY2sqIHNvdXJjZTsKKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UK KyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKyAgLy8gQ3VycmVudCBzdGF0ZSBvZiB0aGUgc3RyZWFt CisgIGVudW0gU3RyZWFtU3RhdGUgc3RhdGU7CisgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1 bm5pbmcgVGhyZWFkTG9vcCgpCisgIHB0aHJlYWRfdCB0aHJlYWQ7CisgIC8vIFByb3RlY3RzIHZv bCwgdm9scGVuZGluZyBhbmQgaHdfZGVsYXkKKyAgcHRocmVhZF9tdXRleF90IG11dGV4OworICAv LyBDdXJyZW50IHZvbHVtZSBpbiB0aGUgMC4uU0lPX01BWFZPTCByYW5nZQorICBpbnQgdm9sOwor ICAvLyBTZXQgdG8gMSBpZiB2b2x1bWVzIG11c3QgYmUgcmVmcmVzaGVkIGluIHRoZSByZWFsdGlt ZSB0aHJlYWQKKyAgaW50IHZvbHBlbmRpbmc7CisgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVy ZWQgaW4gdGhlIGhhcmR3YXJlCisgIGludCBod19kZWxheTsKKyAgLy8gVGVtcG9yYXJ5IGJ1ZmZl ciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1jb21wYXRpYmxlIGZvcm1hdAorICBjaGFyKiBi dWZmZXI7CisKKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFNuZGlvQXVkaW9PdXRwdXRTdHJl YW0pOworfTsKKworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisKKyNlbmRpZiAgLy8gTUVESUFfQVVE SU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9zbmRpby1wYXRjaGVzL21lZGlhX2F1ZGlvX2xpbnV4X2F1ZGlvX21hbmFnZXJfbGludXgu Y2MucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1wYXRjaGVzL21lZGlhX2F1 ZGlvX2xpbnV4X2F1ZGlvX21hbmFnZXJfbGludXguY2MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNmOGU4MWIxMWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tcGF0Y2hlcy9tZWRpYV9hdWRpb19saW51eF9hdWRp b19tYW5hZ2VyX2xpbnV4LmNjLnBhdGNoCkBAIC0wLDAgKzEsNDMgQEAKK2RpZmYgLS1naXQgYS9j aHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjIGIvY2hyb21p dW0vbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYworaW5kZXggNWQ3MDM1 NDkzNzIuLjllNjBiNDBjNzQ5IDEwMDY0NAorLS0tIG1lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21h bmFnZXJfbGludXguY2MKKysrKyBtZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4 LmNjCitAQCAtMjAsNiArMjAsMTAgQEAKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvYXVk aW9fbWFuYWdlcl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9wdWxzZV91 dGlsLmgiCisgI2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NORElPKQorKyNpbmNsdWRlIDxzbmRp by5oPgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9vcGVuYnNkL2F1ZGlvX21hbmFnZXJfb3BlbmJz ZC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBtZWRpYSB7CisgCitAQCAtMjcsNyArMzEsOCBA QCBlbnVtIExpbnV4QXVkaW9JTyB7CisgICBrUHVsc2UsCisgICBrQWxzYSwKKyAgIGtDcmFzLAor LSAga0F1ZGlvSU9NYXggPSBrQ3JhcyAgLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFyZ2Vz dCBsb2dnZWQgZW50cnkuCisrICBrU25kaW8sCisrICBrQXVkaW9JT01heCA9IGtTbmRpbyAgLy8g TXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQgZW50cnkuCisgfTsKKyAKKyBz dGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRlQXVkaW9NYW5hZ2VyKAor QEAgLTQxLDYgKzQ2LDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxtZWRpYTo6QXVkaW9NYW5hZ2VyPiBD cmVhdGVBdWRpb01hbmFnZXIoCisgICB9CisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoVVNFX1NO RElPKQorKyAgc3RydWN0IHNpb19oZGwgKiBoZGwgPSBOVUxMOworKyAgaWYgKChoZGw9c2lvX29w ZW4oU0lPX0RFVkFOWSwgU0lPX1BMQVksIDEpKSAhPSBOVUxMKSB7CisrICAgIHNpb19jbG9zZSho ZGwpOworKyAgICBVTUFfSElTVE9HUkFNX0VOVU1FUkFUSU9OKCJNZWRpYS5MaW51eEF1ZGlvSU8i LCBrU25kaW8sIGtBdWRpb0lPTWF4ICsxKTsKKysgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8 QXVkaW9NYW5hZ2VyT3BlbkJTRD4oc3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9yeSk7 CisrICB9CisrICBEVkxPRygxKSA8PCAiU25kaW8gaXMgbm90IGF2YWlsYWJsZSBvbiB0aGUgT1Mi OworKyNlbmRpZgorKworICNpZiBkZWZpbmVkKFVTRV9QVUxTRUFVRElPKQorICAgcGFfdGhyZWFk ZWRfbWFpbmxvb3AqIHBhX21haW5sb29wID0gbnVsbHB0cjsKKyAgIHBhX2NvbnRleHQqIHBhX2Nv bnRleHQgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25k aW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1 bV9tZWRpYV9CVUlMRC5nbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZWM2MDQwMDI2NjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9CVUlMRC5nbi5w YXRjaApAQCAtMCwwICsxLDEyIEBACistLS0gbWVkaWEvQlVJTEQuZ24JMjAyMC0wMy0yNCAxMDox NjozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAtCTIwMjAtMDQtMDYgMTQ6MzI6MjcuOTYwODE3NTEz ICswMjAwCitAQCAtNjUsNiArNjUsOSBAQAorICAgaWYgKHVzZV9jcmFzKSB7CisgICAgIGRlZmlu ZXMgKz0gWyAiVVNFX0NSQVMiIF0KKyAgIH0KKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgZGVm aW5lcyArPSBbICJVU0VfU05ESU8iIF0KKysgIH0KKyB9CisgCisgIyBJbnRlcm5hbCBncm91cGlu ZyBvZiB0aGUgY29uZmlncyBuZWNlc3NhcnkgdG8gc3VwcG9ydCBzdWItZm9sZGVycyBoYXZpbmcg dGhlaXIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLXBhdGNoZXMv c3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX2F1ZGlvX0JVSUxELmduLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVk aWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmM4NTZkZTBiZjJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfYXVkaW9fQlVJ TEQuZ24ucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorLS0tIG1lZGlhL2F1ZGlvL0JVSUxELmduCTIw MjAtMDMtMjQgMTA6MTY6MzAuMDAwMDAwMDAwICswMTAwCisrKysgLQkyMDIwLTA0LTA2IDE0OjMx OjI4Ljg3MTQ1MDIxNyArMDIwMAorQEAgLTIzMiw5ICsyMzIsMTkgQEAKKyAgICAgZGVwcyArPSBb ICIvL21lZGlhL2Jhc2UvYW5kcm9pZDptZWRpYV9qbmlfaGVhZGVycyIgXQorICAgfQorIAorLSAg aWYgKGlzX2xpbnV4KSB7CisrICBpZiAoaXNfbGludXgpIHsKKyAgICAgc291cmNlcyArPSBbICJs aW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjIiBdCisgICB9CisrICBpZiAodXNlX3NuZGlvKSB7 CisrICAgIGxpYnMgKz0gWyAic25kaW8iIF0KKysgICAgc291cmNlcyArPSBbCisrICAgICAgIm9w ZW5ic2QvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLmNjIiwKKysgICAgICAic25kaW8vc25kaW9faW5w dXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19pbnB1dC5oIiwKKysgICAgICAic25kaW8vc25k aW9fb3V0cHV0LmNjIiwKKysgICAgICAic25kaW8vc25kaW9fb3V0cHV0LmgiCisrICAgXQorKyB9 CisgCisgICBpZiAodXNlX2Fsc2EpIHsKKyAgICAgbGlicyArPSBbICJhc291bmQiIF0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5 X2Nocm9taXVtX21lZGlhX21lZGlhX19vcHRpb25zLmduaS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX21lZGlh X19vcHRpb25zLmduaS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uMTQ4MDdkOGUxZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9tZWRpYV9fb3B0aW9u cy5nbmkucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorLS0tIG1lZGlhL21lZGlhX29wdGlvbnMuZ25p CTIwMjAtMDMtMjQgMTA6MTY6MzAuMDAwMDAwMDAwICswMTAwCisrKysgLQkyMDIwLTA0LTA2IDE0 OjI5OjIyLjk1ODYzMDc4MyArMDIwMAorQEAgLTExNCw2ICsxMTQsOSBAQAorICAgIyBFbmFibGVz IHJ1bnRpbWUgc2VsZWN0aW9uIG9mIEFMU0EgbGlicmFyeSBmb3IgYXVkaW8uCisgICB1c2VfYWxz YSA9IGZhbHNlCisgCisrICAjIEVuYWJsZXMgcnVudGltZSBzZWxlY3Rpb24gb2Ygc25kaW8gbGli cmFyeSBmb3IgYXVkaW8uCisrICB1c2Vfc25kaW8gPSBmYWxzZQorKworICAgIyBBbHNhIHNob3Vs ZCBiZSB1c2VkIG9uIG5vbi1BbmRyb2lkLCBub24tTWFjIFBPU0lYIHN5c3RlbXMuCisgICAjIEFs c2Egc2hvdWxkIGJlIHVzZWQgb24gZGVza3RvcCBDaHJvbWVjYXN0IGFuZCBhdWRpby1vbmx5IENo cm9tZWNhc3QgYnVpbGRzLgorICAgaWYgKGlzX3Bvc2l4ICYmICFpc19hbmRyb2lkICYmICFpc19t YWMgJiYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L3RlbXBsYXRlIGIvc3JjcGtncy9l bGVjdHJvbjkvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjBlNjZmYjE5ZWEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvdGVtcGxh dGUKQEAgLTAsMCArMSwzNDQgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VsZWN0cm9uOScKK3Br Z25hbWU9ZWxlY3Ryb245Cit2ZXJzaW9uPTkuMi4xCitfbm9kZXZlcj0xMi4xNC4xCitfY2hyb21p dW12ZXI9ODMuMC40MTAzLjExOQorcmV2aXNpb249MQorYXJjaHM9Ing4Nl82NCogaTY4NioiCiti dWlsZF93cmtzcmM9InNyYyIKK2NyZWF0ZV93cmtzcmM9eWVzCitob3N0bWFrZWRlcGVuZHM9IiQo dm9wdF9pZiBjbGFuZyBjbGFuZykgeWFzbSBweXRob24gcGtnY29uZiBwZXJsIGdwZXJmIGJpc29u IG5pbmphIG5vZGVqcworIGh3aWRzIHdoaWNoIGdpdCBsaWJhdG9taWMtZGV2ZWwgbGliZXZlbnQt ZGV2ZWwgbGliZ2xpYi1kZXZlbCB5YXJuIG9wZW5qZGsiCittYWtlZGVwZW5kcz0ibGlicG5nLWRl dmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCisgbGli WGktZGV2ZWwgbGliZ2NyeXB0LWRldmVsIGxpYmdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1kZXZl bCBlbGZ1dGlscy1kZXZlbAorIGxpYlhjb21wb3NpdGUtZGV2ZWwgc3BlZWNoLWRpc3BhdGNoZXIt ZGV2ZWwgbGliWHJhbmRyLWRldmVsIG1pdC1rcmI1LWRldmVsCisgbGliWFNjcm5TYXZlci1kZXZl bCBhbHNhLWxpYi1kZXZlbCBzbmFwcHktZGV2ZWwgbGliZHJtLWRldmVsCisgbGlieG1sMi1kZXZl bCBsaWJ4c2x0LWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwgbGliZXhpZi1kZXZlbAorIGxpYlhjdXJz b3ItZGV2ZWwgbGliZmxhYy1kZXZlbCBzcGVleC1kZXZlbCBsaWJtdHAtZGV2ZWwgbGlid2VicC1k ZXZlbAorIGxpYmpwZWctdHVyYm8tZGV2ZWwgbGliZXZlbnQtZGV2ZWwganNvbi1jLWRldmVsIGhh cmZidXp6LWRldmVsCisgbWluaXppcC1kZXZlbCBqc29uY3BwLWRldmVsIHpsaWItZGV2ZWwgbGli Y2FwLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKKyByZTItZGV2ZWwgZm9udGNvbmZpZy1kZXZlbCBm cmVldHlwZS1kZXZlbCBvcHVzLWRldmVsICQodm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCkKKyBm Zm1wZWctZGV2ZWwgbGlidmEtZGV2ZWwgbGlidXYtZGV2ZWwgYy1hcmVzLWRldmVsIGxpYm5vdGlm eS1kZXZlbCIKK2RlcGVuZHM9IiIKK3Nob3J0X2Rlc2M9IkNyb3NzIHBsYXRmb3JtIGFwcGxpY2F0 aW9uIGRldmVsb3BtZW50IGZyYW1ld29yayBiYXNlZCBvbiB3ZWIgdGVjaG5vbG9naWVzIgorbWFp bnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKK2xpY2Vuc2U9IkJTRC0zLUNsYXVz ZSIKK2hvbWVwYWdlPSJodHRwczovL2VsZWN0cm9uanMub3JnIgorZGlzdGZpbGVzPSJodHRwczov L2dpdGh1Yi5jb20vZWxlY3Ryb24vZWxlY3Ryb24vYXJjaGl2ZS92JHZlcnNpb24udGFyLmd6PmVs ZWN0cm9uLSR7dmVyc2lvbn0udGFyLmd6CisgaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29n bGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9mZmljaWFsL2Nocm9taXVtLSRfY2hyb21pdW12 ZXIudGFyLnh6CisgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2FyY2hpdmUvdiRfbm9k ZXZlci50YXIuZ3o+bm9kZS0kX25vZGV2ZXIudGFyLmd6IgorY2hlY2tzdW09IjkxZmFlNGM5OGQz NTFjYWM1M2Y5ZTNjNDk3NGM2MDJmYTkzZDBhNzM2NWZkY2UzMWNmODMyZDgwOTVlMzdiMTEKKyA0 NTJjYmM1ODg5NWE0NmIyYjg3YmE0NTBhM2Y4Njg5N2RlOTJhZDA4Y2UyOGZmZGJlZDZiM2YxMjEw MWQzNzg4CisgMDFlNGE5NjBiZTNlMjZiODdjNTU1MDllZTFjYjQ0YTE0OTQ2YTQxNjlkNWNkZWMw NDZkZDA1MDU4ZDk5NWIyNiIKKworbGliMzJkaXNhYmxlZD15ZXMKK25vZGVidWc9eWVzCitub3Bp ZT15ZXMgICMgY29udGFpbnMgdG9vbHMgdGhhdCBhcmUgbm90IFBJRSwgZW5hYmxlcyBQSUUgaXRz ZWxmCisKK2J1aWxkX29wdGlvbnM9InB1bHNlYXVkaW8gc25kaW8gY2xhbmciCitidWlsZF9vcHRp b25zX2RlZmF1bHQ9InB1bHNlYXVkaW8gc25kaW8gY2xhbmciCisKK19idWlsZHR5cGU9UmVsZWFz ZQorX2lzX2RlYnVnPWZhbHNlCisKK0NGTEFHUz0iLVduby11bmtub3duLXdhcm5pbmctb3B0aW9u IC1mUElDIgorQ1hYRkxBR1M9Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbiAtZlBJQyIKKwor X2FwcGx5X3BhdGNoKCkgeworCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMiki CisKKwlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCisJCW1zZ19ub3JtYWwgIiRw a2d2ZXI6IHBhdGNoaW5nOiAke3BuYW1lfS5cbiIKKwkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKKwkJ dG91Y2ggLiR7cG5hbWV9X2RvbmUKKwlmaQorfQorCitfZ2V0X2Nocm9taXVtX2FyY2goKSB7CisJ Y2FzZSAiJDEiIGluCisJCXg4Nl82NCopIGVjaG8geDY0IDs7CisJCWk2ODYqKSBlY2hvIHg4NiA7 OworCQlhcm0qKSBlY2hvIGFybSA7OworCQlhYXJjaDY0KikgZWNobyBhcm02NCA7OworCQlwcGM2 NCopIGVjaG8gcHBjNjQgOzsKKwkJcHBjKikgZWNobyBwcGMgOzsKKwkJbWlwc2VsKikgZWNobyBt aXBzZWwgOzsKKwkJbWlwcyopIGVjaG8gbWlwcyA7OworCQkqKSBtc2dfZXJyb3IgIiRwa2d2ZXI6 IGNhbm5vdCBiZSBjb21waWxlZCBmb3IgJHtYQlBTX1RBUkdFVF9NQUNISU5FfS5cbiIgOzsKKwll c2FjCit9CisKK3Bvc3RfZXh0cmFjdCgpIHsKKwlsbiAtcyBjaHJvbWl1bS0kX2Nocm9taXVtdmVy IHNyYworCW1rZGlyIC1wIHNyYy90aGlyZF9wYXJ0eS8KKwlsbiAtcyAuLi8uLi9ub2RlLSRfbm9k ZXZlciBzcmMvdGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZQorCWxuIC1zIC4uL2VsZWN0cm9uLSR7 dmVyc2lvbn0gc3JjL2VsZWN0cm9uCisKK30KK3Bvc3RfcGF0Y2goKSB7CisJY2QgJHdya3NyYwor CWZvciB4IGluICRGSUxFU0RJUi9wYXRjaGVzLyo7IGRvCisJCWNhc2UgIiR7eCMjKi99IiBpbgor CQkJZWxlY3Ryb24qLnBhdGNoKQorCQkJCWNkIHNyYy9lbGVjdHJvbgorCQkJCV9hcHBseV9wYXRj aCAtcDEgIiR4IgorCQkJCWNkICIkd3Jrc3JjIjs7CisJCWVzYWMKKwlkb25lCisKKwkjIFNpZ2gs IGVsZWN0cm9uIHVzZXMgZ2l0IGFtLi4uCisJaWYgWyAhIC1mICIuZWxlY3Ryb25fcGF0Y2hlc19k b25lIiBdOyB0aGVuCisJcHl0aG9uMiBzcmMvZWxlY3Ryb24vc2NyaXB0L2xpc3RfcGF0Y2hfdGFy Z2V0cy5weSBzcmMvZWxlY3Ryb24vcGF0Y2hlcy9jb25maWcuanNvbiB8IHdoaWxlIHJlYWQgLXIg cmVwb3BhdGg7IGRvCisJCWNkICIkd3Jrc3JjIi8iJHJlcG9wYXRoIgorCQlnaXQgaW5pdCAtcQor CQlnaXQgY29uZmlnICJnYy5hdXRvIiAwCisJCWlmIFsgIiRyZXBvcGF0aCIgIT0gInNyYyIgXTsg dGhlbgorCQkJZWNobyAiLyR7cmVwb3BhdGgjc3JjL30iID4+ICIkd3Jrc3JjLyRidWlsZF93cmtz cmMvLmdpdGlnbm9yZSIKKwkJZmkKKwkJZ2l0IGFkZCAuCisJCWdpdCAtYyAndXNlci5uYW1lPUVs ZWN0cm9uIGJ1aWxkJyAtYyAndXNlci5lbWFpbD1lbGVjdHJvbkBlYnVpbGQnIFwKKwkJCWNvbW1p dCAtcSAtbSAiLiIgfHwgdHJ1ZQorCWRvbmUKKwljZCAkd3Jrc3JjCisJcHl0aG9uMiBzcmMvZWxl Y3Ryb24vc2NyaXB0L2FwcGx5X2FsbF9wYXRjaGVzLnB5IHNyYy9lbGVjdHJvbi9wYXRjaGVzL2Nv bmZpZy5qc29uCisJdG91Y2ggLmVsZWN0cm9uX3BhdGNoZXNfZG9uZQorCWZpCisKKwlmb3IgeCBp biAkRklMRVNESVIvcGF0Y2hlcy8qOyBkbworCQljYXNlICIke3gjIyovfSIgaW4KKwkJCWNocm9t aXVtKi5wYXRjaCkKKwkJCQljZCBzcmMKKwkJCQlfYXBwbHlfcGF0Y2ggLXAxICIkeCIKKwkJCQlj ZCAiJHdya3NyYyI7OworCQllc2FjCisJZG9uZQorCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KKwlmb3IgeCBpbiAkRklMRVNESVIvbXVzbC1wYXRjaGVzLyo7IGRv CisJCWNhc2UgIiR7eCMjKi99IiBpbgorCQkJY2hyb21pdW0qLnBhdGNoKQorCQkJCWNkIHNyYwor CQkJCV9hcHBseV9wYXRjaCAtcDEgIiR4IgorCQkJCWNkICIkd3Jrc3JjIjs7CisJCQllbGVjdHJv bioucGF0Y2gpCisJCQkJY2Qgc3JjL2VsZWN0cm9uCisJCQkJX2FwcGx5X3BhdGNoIC1wMSAiJHgi CisJCQkJY2QgIiR3cmtzcmMiOzsKKwkJZXNhYworCWRvbmUKKwlmaQorCWlmIFsgIiRidWlsZF9v cHRpb25fc25kaW8iIF07IHRoZW4KKwkJbWtkaXIgLXAgJHt3cmtzcmN9LyR7YnVpbGRfd3Jrc3Jj fS9tZWRpYS9hdWRpby97c25kaW8sb3BlbmJzZH0KKwkJY3AgJHtGSUxFU0RJUn0vc25kaW8tZmls ZXMvc25kaW9fKnB1dC4qIFwKKwkJCSR7d3Jrc3JjfS8ke2J1aWxkX3dya3NyY30vbWVkaWEvYXVk aW8vc25kaW8KKwkJY3AgJHtGSUxFU0RJUn0vc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVu YnNkLiogXAorCQkJJHt3cmtzcmN9LyR7YnVpbGRfd3Jrc3JjfS9tZWRpYS9hdWRpby9vcGVuYnNk CisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvc25kaW8tcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJ Y2Qgc3JjCisJCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKKwkJCWNkICIkd3Jrc3JjIgorCQlkb25l CisJZmkKK30KKworcHJlX2NvbmZpZ3VyZSgpIHsKKwljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3Jj IgorCisJIyBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2EvY2hyb21pdW0ub3JnL2QvdG9waWMv Y2hyb21pdW0tcGFja2FnZXJzLzlKWDFOMm5mNFBVL2Rpc2N1c3Npb24KKwl0b3VjaCBjaHJvbWUv dGVzdC9kYXRhL3dlYnVpL2kxOG5fcHJvY2Vzc19jc3NfdGVzdC5odG1sCisJIyBVc2UgdGhlIGZp bGUgYXQgcnVuIHRpbWUgaW5zdGVhZCBvZiBlZmZlY3RpdmVseSBjb21waWxpbmcgaXQgaW4KKwlz ZWQgJ3N8Ly90aGlyZF9wYXJ0eS91c2JfaWRzL3VzYi5pZHN8L3Vzci9zaGFyZS9od2RhdGEvdXNi Lmlkc3xnJyBcCisJCS1pIHNlcnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL3VzYi9CVUlMRC5nbgor CisJbWtkaXIgLXAgdGhpcmRfcGFydHkvbm9kZS9saW51eC9ub2RlLWxpbnV4LXg2NC9iaW4KKwls biAtcyAvdXNyL2Jpbi9ub2RlIHRoaXJkX3BhcnR5L25vZGUvbGludXgvbm9kZS1saW51eC14NjQv YmluLworCisJIyByZXVzYWJsZSBzeXN0ZW0gbGlicmFyeSBzZXR0aW5ncworCWxvY2FsIHVzZV9z eXN0ZW09IgorCQlmZm1wZWcKKwkJZmxhYworCQlmb250Y29uZmlnCisJCWZyZWV0eXBlCisJCWhh cmZidXp6LW5nCisJCWxpYmRybQorCQlsaWJldmVudAorCQlsaWJqcGVnCisJCWxpYnBuZworCQls aWJ3ZWJwCisJCWxpYnhtbAorCQlsaWJ4c2x0CisJCW9wdXMKKwkJcmUyCisJCXNuYXBweQorCQl5 YXNtCisJCSIKKwlmb3IgX2xpYiBpbiAkdXNlX3N5c3RlbSBsaWJqcGVnX3R1cmJvOyBkbworCQlt c2dfbm9ybWFsICJSZW1vdmluZyBidWlsZHNjcmlwdHMgZm9yIHN5c3RlbSBwcm92aWRlZCAkX2xp YlxuIgorCQlmaW5kIC10eXBlIGYgLXBhdGggIip0aGlyZF9wYXJ0eS8kX2xpYi8qIiBcCisJCQlc ISAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGliL2Nocm9taXVtLyoiIFwKKwkJCVwhIC1wYXRoICIq dGhpcmRfcGFydHkvJF9saWIvZ29vZ2xlLyoiIFwKKwkJCVwhIC1wYXRoICcuL2Jhc2UvdGhpcmRf cGFydHkvaWN1LyonIFwKKwkJCVwhIC1wYXRoICcuL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9w YXJ0eS9mcmVldHlwZS9pbmNsdWRlL3BzdGFibGVzLmgnIFwKKwkJCVwhIC1wYXRoICcuL3RoaXJk X3BhcnR5L2hhcmZidXp6LW5nL3V0aWxzL2hiX3Njb3BlZC5oJyBcCisJCQlcISAtcGF0aCAnLi90 aGlyZF9wYXJ0eS95YXNtL3J1bl95YXNtLnB5JyBcCisJCQlcISAtcmVnZXggJy4qXC5cKGduXHxn bmlcfGlzb2xhdGVcfHB5XCknIFwKKwkJCS1kZWxldGUKKwlkb25lCisKKworCW1zZ19ub3JtYWwg IlJlcGxhY2luZyBnbiBmaWxlc1xuIgorCXB5dGhvbjIgYnVpbGQvbGludXgvdW5idW5kbGUvcmVw bGFjZV9nbl9maWxlcy5weSAtLXN5c3RlbS1saWJyYXJpZXMgXAorCQkkdXNlX3N5c3RlbQorCXRo aXJkX3BhcnR5L2xpYmFkZHJlc3NpbnB1dC9jaHJvbWl1bS90b29scy91cGRhdGUtc3RyaW5ncy5w eQorfQorCitkb19jb25maWd1cmUoKSB7CisJbG9jYWwgdGFyZ2V0X2FyY2g9IiQoX2dldF9jaHJv bWl1bV9hcmNoICR7WEJQU19UQVJHRVRfTUFDSElORX0pIgorCWxvY2FsIGhvc3RfYXJjaD0iJChf Z2V0X2Nocm9taXVtX2FyY2ggJHtYQlBTX01BQ0hJTkV9KSIKKwkjIHRoZSBidWlsZCBzeXN0ZW0g d2lsbCBzZXQgbWFyY2ggZm9yIHVzZSwgYWRkaW5nIGl0IHRvIGNmbGFncyB3aWxsIGJyZWFrIGJ1 aWxkcworCWV4cG9ydCBDWFhGTEFHUz0kKCBzaG9wdCAtcyBleHRnbG9iOyBlY2hvICR7Q1hYRkxB R1MvLW1hcmNoPSooW14gXSl9ICkKKwlleHBvcnQgQ0ZMQUdTPSQoIHNob3B0IC1zIGV4dGdsb2I7 IGVjaG8gJHtDRkxBR1MvLW1hcmNoPSooW14gXSl9ICkKKwlsb2NhbCBjb25mPSgpCisJY2QgdGhp cmRfcGFydHkvZWxlY3Ryb25fbm9kZQorCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQlj b25mX2FyZ3M9IiAtLWRlc3QtY3B1PSR7dGFyZ2V0X2FyY2h9IC0tY3Jvc3MtY29tcGlsaW5nIgor CWZpCisJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciBcCisJCS0tc2hhcmVkLXpsaWIgXAorCQkt LXNoYXJlZC1saWJ1diBcCisJCS0tc2hhcmVkLW9wZW5zc2wgXAorCQktLXNoYXJlZC1jYXJlcyBc CisJCS0tb3BlbnNzbC11c2UtZGVmLWNhLXN0b3JlIFwKKwkJLS13aXRob3V0LW5wbSBcCisJCS0t d2l0aG91dC1kdHJhY2UgXAorCQktLXdpdGhvdXQtYnVuZGxlZC12OCBcCisJCSR7Y29uZl9hcmdz fQorCisJY2QgIiR3cmtzcmMvJGJ1aWxkX3dya3NyYyIvZWxlY3Ryb24KKwl5YXJuIGluc3RhbGwK KwljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjIgorCisJaWYgWyAiJGJ1aWxkX29wdGlvbl9jbGFu ZyIgXTsgdGhlbgorCQlleHBvcnQgQ0M9Y2xhbmcKKwkJZXhwb3J0IENYWD1jbGFuZysrCisJCWV4 cG9ydCBIT1NUX0NDPWNsYW5nCisJCWV4cG9ydCBIT1NUX0NYWD1jbGFuZysrCisJZWxzZQorCQll eHBvcnQgQ1hYRkxBR1M9IiRDWFhGTEFHUyAtZnBlcm1pc3NpdmUiCisJCWV4cG9ydCBCVUlMRF9D WFhGTEFHUz0iJEJVSUxEX0NYWEZMQUdTIC1mcGVybWlzc2l2ZSIKKwkJZXhwb3J0IEJVSUxEX0FS PSIkQVJfaG9zdCIKKwkJZXhwb3J0IEJVSUxEX05NPSIkTk1faG9zdCIKKwlmaQorCisJIyBHb29n bGUgQVBJIGtleXMgKHNlZSBodHRwOi8vd3d3LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2hvdy10 b3MvYXBpLWtleXMpCisJIyBOb3RlOiBUaGVzZSBhcmUgZm9yIFZvaWQgTGludXggdXNlIE9OTFku CisJY29uZis9KAorCQknZ29vZ2xlX2FwaV9rZXk9IkFJemFTeUE5Z1dhekthSGFOSVBQZzJock1q Nl9aU0c4QUZtcTczOCInCisJCSdnb29nbGVfZGVmYXVsdF9jbGllbnRfaWQ9IjEyNjY1OTE0OTQy My1ob282aWNrYmszcDF1MnFqc2RzcDBkZGNpdXJmdmI0dC5hcHBzLmdvb2dsZXVzZXJjb250ZW50 LmNvbSInCisJCSdnb29nbGVfZGVmYXVsdF9jbGllbnRfc2VjcmV0PSJfb3pJeDJELURLbV9zZV8y TlB3VjRsNWIiJworCSkKKworCWNvbmYrPSgKKwkJJ2JsaW5rX3N5bWJvbF9sZXZlbD0wJworCQkn Y2xhbmdfdXNlX2Nocm9tZV9wbHVnaW5zPWZhbHNlJworCQknY2xvc3VyZV9jb21waWxlPXRydWUn CisJCSdjdXN0b21fdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZTpk ZWZhdWx0IicKKwkpCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWNvbmYrPSgKKwkJ CSdob3N0X3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6aG9zdCIn CisJCQkndjhfc25hcHNob3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1 bmRsZTpob3N0IicKKwkJCSJob3N0X3BrZ19jb25maWc9XCIkUEtHX0NPTkZJR19GT1JfQlVJTERc IiIKKwkJCSJwa2dfY29uZmlnPVwiJFBLR19DT05GSUdcIiIKKwkJKQorCWVsc2UKKwkJY29uZis9 KAorCQkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZTpk ZWZhdWx0IicKKwkJCSd2OF9zbmFwc2hvdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xp bnV4L3VuYnVuZGxlOmRlZmF1bHQiJworCQkpCisJZmkKKwlpZiBbICIkYnVpbGRfb3B0aW9uX3Nu ZGlvIiBdOyB0aGVuCisJCWNvbmYrPSgKKwkJCSd1c2Vfc25kaW89dHJ1ZScKKwkJKQorCWZpCisJ Y29uZis9KAorCQknZW5hYmxlX2hhbmdvdXRfc2VydmljZXNfZXh0ZW5zaW9uPXRydWUnCisJCSdl bmFibGVfbmFjbF9ub25zZmk9ZmFsc2UnCisJCSdlbmFibGVfbmFjbD1mYWxzZScKKwkJJ2VuYWJs ZV9wcmVjb21waWxlZF9oZWFkZXJzPWZhbHNlJworCQknZmF0YWxfbGlua2VyX3dhcm5pbmdzPWZh bHNlJworCQknZmZtcGVnX2JyYW5kaW5nPSJDaHJvbWUiJworCQknZmllbGR0cmlhbF90ZXN0aW5n X2xpa2Vfb2ZmaWNpYWxfYnVpbGQ9dHJ1ZScKKwkJJ2dvbGRfcGF0aD0iL3Vzci9iaW4vbGQuZ29s ZCInCisJCSdpY3VfdXNlX2RhdGFfZmlsZT10cnVlJworCQkiaXNfY2xhbmc9JCh2b3B0X2lmIGNs YW5nIHRydWUgZmFsc2UpIgorCQknaXNfY29tcG9uZW50X2J1aWxkPWZhbHNlJworCQkiaXNfZGVi dWc9JF9pc19kZWJ1ZyIKKwkJJ2lzX2Rlc2t0b3BfbGludXg9dHJ1ZScKKwkJJ2xpbnV4X3VzZV9i dW5kbGVkX2JpbnV0aWxzPWZhbHNlJworCQkncHJvcHJpZXRhcnlfY29kZWNzPXRydWUnCisJCSdz eW1ib2xfbGV2ZWw9MCcKKwkJJ3RyZWF0X3dhcm5pbmdzX2FzX2Vycm9ycz1mYWxzZScKKwkJJ3Vz ZV9hbGxvY2F0b3Jfc2hpbT1mYWxzZScKKwkJJ3VzZV9hbGxvY2F0b3I9Im5vbmUiJworCQkndXNl X2N1cHM9dHJ1ZScKKwkJJ3VzZV9jdXN0b21fbGliY3h4PWZhbHNlJworCQkndXNlX2dub21lX2tl eXJpbmc9ZmFsc2UnCisJCSd1c2VfZ29sZD1mYWxzZScKKwkJJ3VzZV9sbGQ9ZmFsc2UnCisJCSJ1 c2VfcHVsc2VhdWRpbz0kKHZvcHRfaWYgcHVsc2VhdWRpbyAndHJ1ZScgJ2ZhbHNlJykiCisJCSd1 c2Vfc3lzcm9vdD1mYWxzZScKKwkJJ3VzZV9zeXN0ZW1faGFyZmJ1eno9dHJ1ZScKKwkJInRhcmdl dF9jcHU9XCIkdGFyZ2V0X2FyY2hcIiIKKwkJImhvc3RfY3B1PVwiJGhvc3RfYXJjaFwiIgorCQkn aW1wb3J0KCIvL2VsZWN0cm9uL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbiIpJworCSkKKworCW1zZ19u b3JtYWwgIkJvb3RzdHJhcHBpbmcgR05cbiIKKwlDQz0iJHtDQ19GT1JfQlVJTEQ6LSRDQ30iIENY WD0iJHtDWFhfRk9SX0JVSUxEOi0kQ1hYfSIgTEQ9IiR7TERfRk9SX0JVSUxEOi0kTER9IiBcCisJ Q0ZMQUdTPSIke0NGTEFHU19GT1JfQlVJTEQ6LSRDRkxBR1N9IiBDWFhGTEFHUz0iJHtDWFhGTEFH U19GT1JfQlVJTEQ6LSRDWFhGTEFHU30iIFwKKwlMREZMQUdTPSIke1hCUFNfTERGTEFHU30iIFwK KwkJcHl0aG9uMiB0b29scy9nbi9ib290c3RyYXAvYm9vdHN0cmFwLnB5IC1zIC12IC0tc2tpcC1n ZW5lcmF0ZS1idWlsZGZpbGVzCisKKwltc2dfbm9ybWFsICJDb25maWd1cmluZyBidWlsZFxuIgor CW91dC9SZWxlYXNlL2duIGdlbiBvdXQvJF9idWlsZHR5cGUgLS1hcmdzPSIke2NvbmZbKl19Igor fQorCitkb19idWlsZCgpIHsKKwlleHBvcnQgQ1hYRkxBR1M9JCggc2hvcHQgLXMgZXh0Z2xvYjsg ZWNobyAke0NYWEZMQUdTLy1tYXJjaD0qKFteIF0pfSApCisJZXhwb3J0IENGTEFHUz0kKCBzaG9w dCAtcyBleHRnbG9iOyBlY2hvICR7Q0ZMQUdTLy1tYXJjaD0qKFteIF0pfSApCisJaWYgWyAiJGJ1 aWxkX29wdGlvbl9jbGFuZyIgXTsgdGhlbgorCQlleHBvcnQgQ0M9Y2xhbmcKKwkJZXhwb3J0IENY WD1jbGFuZysrCisJCWV4cG9ydCBIT1NUX0NDPWNsYW5nCisJCWV4cG9ydCBIT1NUX0NYWD1jbGFu ZysrCisJZWxzZQorCQlleHBvcnQgQlVJTERfQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyAtZnBl cm1pc3NpdmUiCisJCWV4cG9ydCBDWFhGTEFHUz0iJENYWEZMQUdTIC1mcGVybWlzc2l2ZSIKKwkJ ZXhwb3J0IEJVSUxEX0FSPSIkQVJfaG9zdCIKKwkJZXhwb3J0IEJVSUxEX05NPSIkTk1faG9zdCIK KwlmaQorCW1zZ19ub3JtYWwgIk5pbmphIHR1cnRsZXMgR08hXG4iCisJbmluamEgJHttYWtlam9i c30gLUMgb3V0LyRfYnVpbGR0eXBlIGVsZWN0cm9uIHRoaXJkX3BhcnR5L2VsZWN0cm9uX25vZGU6 aGVhZGVycworCSMgZmluaXNoIHJlc3Qgb2YgdGhlIGJ1aWxkCisJc3RyaXAgLXMgb3V0LyRfYnVp bGR0eXBlL2VsZWN0cm9uCisJbmluamEgJHttYWtlam9ic30gLUMgb3V0LyRfYnVpbGR0eXBlIGVs ZWN0cm9uX2Rpc3RfemlwCit9CisKK2RvX2luc3RhbGwoKSB7CisJdm1rZGlyIC91c3IvbGliLyRw a2duYW1lIAorCXZta2RpciAvdXNyL2luY2x1ZGUvJHBrZ25hbWUKKwlic2R0YXIgLXhmIG91dC8k X2J1aWxkdHlwZS9kaXN0LnppcCAtQyAiJERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZSIKKworCWNo bW9kIHUrcyAiJERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZS9jaHJvbWUtc2FuZGJveCIKKworCWNw IG91dC8kX2J1aWxkdHlwZS9nZW4vbm9kZV9oZWFkZXJzLnRhci5neiAiJERFU1RESVIiL3Vzci9p bmNsdWRlLyRwa2duYW1lCisKKwl2bGljZW5zZSAke3dya3NyY30vc3JjL0xJQ0VOU0UgY2hyb21p dW0uTElDRU5TRQorCXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvZWxlY3Ryb24vTElDRU5TRSBlbGVj dHJvbi5MSUNFTlNFCisJdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy90aGlyZF9wYXJ0eS9lbGVjdHJv bl9ub2RlL0xJQ0VOU0Ugbm9kZS5MSUNFTlNFCisKKwl2bWtkaXIgL3Vzci9iaW4KKwlsbiAtcyAu Li9saWIvJHBrZ25hbWUvZWxlY3Ryb24gIiRERVNURElSIi91c3IvYmluLyRwa2duYW1lCit9CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS91cGRhdGUgYi9zcmNwa2dzL2VsZWN0cm9uOS91 cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNhZjhlNThiNTM1 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvdXBkYXRlCkBAIC0wLDAgKzEs MiBAQAorc2l0ZT1odHRwczovL3d3dy5lbGVjdHJvbmpzLm9yZy9yZWxlYXNlcy9zdGFibGU/dmVy c2lvbj0ke3ZlcnNpb24lJS4qfQorcGF0dGVybj0ndGFnL3ZcS1tcZFwuXSsoPz0iKScKCkZyb20g ZDA2MGIxNGQ1NzdhY2Q2ZWFiNmI5NWZmMzI3OWQ1OGUwOTlmNjQ5MCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDIzIEF1 ZyAyMDIwIDE3OjE4OjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIGVsZW1lbnQtZGVza3Rv cDogdXNlIHN5c3RlbSBlbGVjdHJvbjkKCltjaSBza2lwXQotLS0KIGNvbW1vbi9zaGxpYnMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxIC0KIHNyY3BrZ3MvZWxlbWVudC1kZXNr dG9wL2ZpbGVzL2VsZW1lbnQtZGVza3RvcCB8ICAyICsrCiBzcmNwa2dzL2VsZW1lbnQtZGVza3Rv cC90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAxNiArKysrKysrKy0tLS0tLS0tCiAzIGZpbGVzIGNo YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9lbGVtZW50LWRlc2t0b3AvZmlsZXMvZWxlbWVudC1kZXNrdG9wCgpkaWZmIC0t Z2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNjc2ZWI5NDM2NmIuLjEx NmM2YTg2ODI0IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMK QEAgLTEyMyw3ICsxMjMsNiBAQCBsaWJHTEVTdjIuc28gYXRvbS0xLjQxLjBfMQogbGliR0xFU3Yy LnNvIG9wZXJhLTU1LjAuMjk5NC4zN18yCiBsaWJHTEVTdjIuc28gZGlzY29yZC0wLjAuN18xCiBs aWJHTEVTdjIuc28ga2V5YmFzZS1kZXNrdG9wLTMuMS4yXzEKLWxpYkdMRVN2Mi5zbyByaW90LWRl c2t0b3AtMC4xNy45XzIKIGxpYkdMRVN2Mi5zbyB3aXJlLWRlc2t0b3AtMy42LjI4ODVfMQogbGli R0xFU3YyLnNvIFNpZ25hbC1EZXNrdG9wLTEuMjMuMl8xCiBsaWJHTEVTdjIuc28gc2xhY2stZGVz a3RvcC0zLjQuMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZW1lbnQtZGVza3RvcC9maWxlcy9l bGVtZW50LWRlc2t0b3AgYi9zcmNwa2dzL2VsZW1lbnQtZGVza3RvcC9maWxlcy9lbGVtZW50LWRl c2t0b3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQxNmU4MjUwNDZj Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVtZW50LWRlc2t0b3AvZmlsZXMvZWxlbWVu dC1kZXNrdG9wCkBAIC0wLDAgKzEsMiBAQAorIyEvYmluL3NoCitleGVjIGVsZWN0cm9uOSAvdXNy L2xpYi9lbGVtZW50LWRlc2t0b3AvcmVzb3VyY2VzL2FwcC5hc2FyICIkQCIKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlbWVudC1kZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtncy9lbGVtZW50LWRlc2t0 b3AvdGVtcGxhdGUKaW5kZXggOTc5ODk5MDE4ODUuLjcxODE2ZDUxMzIxIDEwMDY0NAotLS0gYS9z cmNwa2dzL2VsZW1lbnQtZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VsZW1lbnQtZGVz a3RvcC90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZWxl bWVudC1kZXNrdG9wJwogcGtnbmFtZT1lbGVtZW50LWRlc2t0b3AKIHZlcnNpb249MS43LjQKLXJl dmlzaW9uPTEKLWFyY2hzPSJ4ODZfNjQiCityZXZpc2lvbj0yCiB3cmtzcmM9ImVsZW1lbnQtd2Vi LSR7dmVyc2lvbn0iCiBjb25mX2ZpbGVzPSIvZXRjLyR7cGtnbmFtZX0vY29uZmlnLmpzb24iCiBo b3N0bWFrZWRlcGVuZHM9ImdpdCB5YXJuIG5vZGVqcyBydXN0IGNhcmdvIHB5dGhvbiBzcWxjaXBo ZXItZGV2ZWwgY3VybCBsaWJhcHBpbmRpY2F0b3ItZGV2ZWwgbGlibm90aWZ5LWRldmVsIHBrZy1j b25maWciCiBtYWtlZGVwZW5kcz0ibGlic2VjcmV0LWRldmVsIgotZGVwZW5kcz0iYy1hcmVzIGZm bXBlZyBndGsrMyBodHRwLXBhcnNlciBsaWJldmVudCBsaWJ4c2x0IG1pbml6aXAgbnNzIHJlMiBz bmFwcHkgc3FsY2lwaGVyIgorZGVwZW5kcz0iYy1hcmVzIGZmbXBlZyBndGsrMyBodHRwLXBhcnNl ciBsaWJldmVudCBsaWJ4c2x0IG1pbml6aXAgbnNzIHJlMiBzbmFwcHkgc3FsY2lwaGVyIGVsZWN0 cm9uOSIKIHNob3J0X2Rlc2M9Ikdsb3NzeSBNYXRyaXggY29sbGFib3JhdGlvbiBjbGllbnQsIGRl c2t0b3AgdmVyc2lvbiIKIG1haW50YWluZXI9InByb2plY3Rtb29uIDxwcm9qZWN0bW9vbkBhZ25v cy5pcz4iCiBsaWNlbnNlPSJBcGFjaGUtMi4wIgpAQCAtMTYsNyArMTUsNiBAQCBkaXN0ZmlsZXM9 Imh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vZWxlbWVudC1kZXNrdG9wL2FyY2hpdmUvdiR7 dmVyc2lvbn0udGFyLgogY2hlY2tzdW09ImU5ZjU4NTVlNDMyODQxYWE1MDNmM2EyZTg1MDczYzQ2 Njk5MmUxYTI4YjY5N2IyMWNiMzcwNDg1YzZjNGFhMzUKICA5NmIzOGEzNDhiYzdiYTE1MzAxNzFh YTczMGY4YTAyYTQ2OWZiNWU1N2U1MjQwMzRlYmQyNzY4ZWQyMWYxYzk3Igogbm9jcm9zcz15ZXMK LW5vc3RyaXA9eWVzCiAKIHByZV9idWlsZCgpIHsKIAkjIEJ1aWxkIGRlcGVuZGVuY2llcyBmb3Ig cmlvdC13ZWIKQEAgLTQwLDE0ICszOCwxNiBAQCBkb19idWlsZCgpIHsKIGRvX2luc3RhbGwoKSB7 CiAJdm1rZGlyIHVzci9saWIvZWxlbWVudC1kZXNrdG9wCiAJdm1rZGlyIGV0Yy9lbGVtZW50LWRl c2t0b3AKLQl2Y29weSAuLi9lbGVtZW50LWRlc2t0b3AtJHt2ZXJzaW9ufS9kaXN0L2xpbnV4LXVu cGFja2VkLyogL3Vzci9saWIvZWxlbWVudC1kZXNrdG9wCisJY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCisJCWk2ODYqKSB2Y29weSAuLi9lbGVtZW50LWRlc2t0b3AtJHt2ZXJzaW9ufS9k aXN0L2xpbnV4LWlhMzItdW5wYWNrZWQvcmVzb3VyY2VzIC91c3IvbGliL2VsZW1lbnQtZGVza3Rv cC9yZXNvdXJjZXM7OworCQkqKSB2Y29weSAuLi9lbGVtZW50LWRlc2t0b3AtJHt2ZXJzaW9ufS9k aXN0L2xpbnV4LXVucGFja2VkL3Jlc291cmNlcyAvdXNyL2xpYi9lbGVtZW50LWRlc2t0b3AvcmVz b3VyY2VzCisJZXNhYwogCXZpbnN0YWxsIGNvbmZpZy5zYW1wbGUuanNvbiA2NDQgL2V0Yy9lbGVt ZW50LWRlc2t0b3AvIGNvbmZpZy5qc29uCiAJdmNvcHkgd2ViYXBwIC91c3IvbGliL2VsZW1lbnQt ZGVza3RvcC9yZXNvdXJjZXMKIAlsbiAtcyAvZXRjL2VsZW1lbnQtZGVza3RvcC9jb25maWcuanNv biAkREVTVERJUi91c3IvbGliL2VsZW1lbnQtZGVza3RvcC9yZXNvdXJjZXMvd2ViYXBwL2NvbmZp Zy5qc29uCiAKLQl2bWtkaXIgdXNyL2JpbgotCWxuIC1zIC91c3IvbGliL2VsZW1lbnQtZGVza3Rv cC9lbGVtZW50LWRlc2t0b3AgJERFU1RESVIvdXNyL2Jpbi9lbGVtZW50LWRlc2t0b3AKLQlsbiAt cyAvdXNyL2xpYi9lbGVtZW50LWRlc2t0b3AvZWxlbWVudC1kZXNrdG9wICRERVNURElSL3Vzci9i aW4vcmlvdC1kZXNrdG9wCisJdmJpbiAke0ZJTEVTRElSfS9lbGVtZW50LWRlc2t0b3AKKwlsbiAt cyBlbGVtZW50LWRlc2t0b3AgJERFU1RESVIvdXNyL2Jpbi9yaW90LWRlc2t0b3AKIAl2aW5zdGFs bCAke0ZJTEVTRElSfS9lbGVtZW50LWRlc2t0b3AuZGVza3RvcCA2NDQgL3Vzci9zaGFyZS9hcHBs aWNhdGlvbnMvIGVsZW1lbnQtZGVza3RvcC5kZXNrdG9wCiAJdmluc3RhbGwgd2ViYXBwL3RoZW1l cy9lbGVtZW50L2ltZy9sb2dvcy9lbGVtZW50LWxvZ28uc3ZnIDY0NCAvdXNyL3NoYXJlL2ljb25z L2hpY29sb3Ivc2NhbGFibGUvYXBwcy8gZWxlbWVudC5zdmcKIAo= --===============5449081971100025011==--