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 31522 invoked from network); 3 Oct 2020 13:59:45 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Oct 2020 13:59:45 -0000 Content-Type: multipart/mixed; boundary="===============9204375664043755097==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_New_package=3A_electron10-10=2E1=2E3?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 03 Oct 2020 15:59:44 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============9204375664043755097== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IEpvaG5ueW5hdG9yIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9Kb2hu bnluYXRvci92b2lkLXBhY2thZ2VzIGVsZWN0cm9uMTAKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI1MzE0CgpOZXcgcGFja2FnZTogZWxlY3Ryb24xMC0x MC4xLjMKW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjUzMTQucGF0Y2ggaXMgYXR0YWNoZWQ= --===============9204375664043755097== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron10-25314.patch" RnJvbSAyOWRlZGI2ZTUyNGY5MmFlNTc4YWQ0Y2FlZmUyNjJkYjllMjNiMTM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwg MyBPY3QgMjAyMCAxMzo0NjowMyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIE5ldyBwYWNrYWdlOiBl bGVjdHJvbjEwLTEwLjEuMwoKW2NpIHNraXBdCi0tLQogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1 bS1tdXNsLWNyYXNocGFkLnBhdGNoIHwgICAyMyArCiAuLi5vbWl1bS1tdXNsLWRlZmF1bHQtcHRo cmVhZC1zdGFja3NpemUucGF0Y2ggfCAgIDMxICsKIC4uLi9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbC1zYW5kYm94LnBhdGNoICB8ICAxNzYgKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsLXN0cmluZ19oLnBhdGNoIHwgICAxMCArCiAuLi5jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6 ZV9maWxlX25hbWUucGF0Y2ggfCAgIDEzICsKIC4uLi9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVz bF9jZGVmcy5wYXRjaCAgICB8ICAgNDUgKwogLi4ub21pdW0tbXVzbF9kZWZpbmVfdGVtcF9mYWls dXJlX3JldHJ5LnBhdGNoIHwgICAxOCArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xf ZG5zLnBhdGNoICAgICAgfCAgIDYxICsKIC4uLi9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9l eGVpbmZvLnBhdGNoICB8ICAgOTYgKwogLi4uL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5wYXRj aCAgICAgICAgICAgIHwgICAyNSArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFs bGluZm8ucGF0Y2ggfCAgIDU0ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0ZTY0LnBh dGNoICAgICAgICB8ICAgMTggKwogLi4uL2Nocm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoICAg ICAgICAgICAgIHwgICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBhdGNoICAg ICAgICAgICAgfCAgIDQxICsKIC4uLi9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoICAg ICAgICAgICB8ICAgNDQgKwogLi4uL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRjaCAgICAg ICAgICAgIHwgICAxNCArCiAuLi4vY2hyb21pdW0tbXVzbF94eHgtcHBjNjRsZS1zdXBwb3J0LnBh dGNoICAgfCAgMTc5ICsKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTgzLWdjYy0xMC5wYXRj aCAgICB8ICAgNjQgKwogLi4uY2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBhdGNoLnBh dGNoIHwgICAxNSArCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1mZm1wZWctNC4zLnBhdGNo ICAgfCAgIDIxICsKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1zaGFyZWQucGF0Y2gg ICB8ICAgMjAgKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2gg IHwgICAyNCArCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1za2lhLWhhcm1vbnkucGF0Y2gg fCAgIDE0ICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLXRvb2xjaGFpbi1ob3N0LnBhdGNoICAgICB8 ICAgMTEgKwogLi4uL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoIHwg ICA4MSArCiAuLi4vY2hyb21pdW0teHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCAgICAgICAgfCAz NjU1ICsrKysrKysrKysrKysrKysrCiAuLi4vY2hyb21pdW0teHh4LXBwYzY0bGUtc3dpZnRzaGFk ZXIucGF0Y2ggICAgfCAgIDE4ICsKIC4uLmEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5w YXRjaC5wYXRjaCB8ICAgNDIgKwogLi4uL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0 Y2gucGF0Y2ggIHwgICA0NyArCiAuLi5lY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhv bjIucGF0Y2ggfCAgIDE3ICsKIC4uLmxlY3Ryb24tZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hl cy5wYXRjaCB8ICAgMTAgKwogLi4uL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5j YyAgICAgIHwgIDE0OCArCiAuLi4vZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVu YnNkLmggfCAgIDY1ICsKIC4uLi9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5jYyAgICAg ICAgICB8ICAyMDAgKwogLi4uL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmggICAgICAg ICAgIHwgICA5MSArCiAuLi4vZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0LmNjICAgICAg ICAgfCAgMTgzICsKIC4uLi9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuaCAgICAgICAg ICB8ICAgODYgKwogLi4uYV9hdWRpb19saW51eF9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjLnBhdGNo IHwgICA0MyArCiAuLi5zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0Y2gg fCAgIDEyICsKIC4uLmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9hdWRpb19CVUlMRC5nbi5wYXRjaCB8 ICAgMjMgKwogLi4udHlfY2hyb21pdW1fbWVkaWFfbWVkaWFfX29wdGlvbnMuZ25pLnBhdGNoIHwg ICAxMiArCiBzcmNwa2dzL2VsZWN0cm9uMTAvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgfCAg MzUzICsrCiBzcmNwa2dzL2VsZWN0cm9uMTAvdXBkYXRlICAgICAgICAgICAgICAgICAgICAgfCAg ICAyICsKIDQzIGZpbGVzIGNoYW5nZWQsIDYxMTggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVz bC1jcmFzaHBhZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9m aWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXpl LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc3RyaW5n X2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF9jZGVmcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kZWZpbmVfdGVtcF9mYWlsdXJl X3JldHJ5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Rucy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9leGVp bmZvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2dldGNvbnRleHQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xf bWFsbGluZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3NpemUucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2xfc3RhY2tfdHJhY2UucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rl bi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbF94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tODMt Z2NjLTEwLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBhdGNoLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t ZmZtcGVnLTQuMy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1zaGFyZWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJjX21hbGxvYy5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVz L2Nocm9taXVtLXNraWEtaGFybW9ueS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXRvb2xjaGFpbi1ob3N0LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0teHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2No cm9taXVtLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0LXRv LWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMv ZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1leGNsdWRl LWNvbnRlbnQtdGVzdC1wYXRjaGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1maWxlcy9hdWRp b19tYW5hZ2VyX29wZW5ic2QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5jYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291 dHB1dC5jYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRp by1maWxlcy9zbmRpb19vdXRwdXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9zbmRpby1wYXRjaGVzL21lZGlhX2F1ZGlvX2xpbnV4X2F1ZGlvX21hbmFnZXJf bGludXguY2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmls ZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tcGF0 Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tcGF0Y2hlcy9z cmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfbWVkaWFfX29wdGlvbnMuZ25pLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxl Y3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaCBi L3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1jcmFz aHBhZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzBjZmZh MzAwMmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorLS0t IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCisr KysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MK K0BAIC0yNiw2ICsyNiw3IEBACisgCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkK KyAjaW5jbHVkZSA8YXNtL2xkdC5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLWFiaS5oPgorICNl bmRpZgorIAorIG5hbWVzcGFjZSBjcmFzaHBhZCB7CisKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKKysrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKK0BAIC0xNyw3ICsx Nyw5IEBACisgCisgI2luY2x1ZGVfbmV4dCA8c3lzL3B0cmFjZS5oPgorIAorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisrI2VuZGlmCisgCisgLy8gaHR0 cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzMKKyAjaWYg IWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkgJiYgIWRlZmluZWQoUFRfR0VUX1RIUkVB RF9BUkVBKSAmJiBcCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2wtZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1kZWZhdWx0 LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5kMGMxMzYxYjhlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tz aXplLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK2RpZmYgLS1naXQgYS9iYXNlL3RocmVhZGluZy9w bGF0Zm9ybV90aHJlYWRfbGludXguY2MgYi9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRf bGludXguY2MKK2luZGV4IDA5NWM0OWIuLjUwNDRiYjggMTAwNjQ0CistLS0gYS9iYXNlL3RocmVh ZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKKysrKyBiL2Jhc2UvdGhyZWFkaW5nL3BsYXRm b3JtX3RocmVhZF9saW51eC5jYworQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIFRlcm1pbmF0ZU9u VGhyZWFkKCkge30KKyAKKyBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25zdCBw dGhyZWFkX2F0dHJfdCYgYXR0cmlidXRlcykgeworICNpZiAhZGVmaW5lZChUSFJFQURfU0FOSVRJ WkVSKQorLSAgcmV0dXJuIDA7CisrICByZXR1cm4gKDEgPDwgMjMpOworICNlbHNlCisgICAvLyBU aHJlYWRTYW5pdGl6ZXIgYmxvYXRzIHRoZSBzdGFjayBoZWF2aWx5LiBFdmlkZW5jZSBoYXMgYmVl biB0aGF0IHRoZQorICAgLy8gZGVmYXVsdCBzdGFjayBzaXplIGlzbid0IGVub3VnaCBmb3Igc29t ZSBicm93c2VyIHRlc3RzLgorZGlmZiAtLWdpdCBhL2Nocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFs X2hhbmRsZXJzX3Bvc2l4LmNjIGIvY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNf cG9zaXguY2MKK2luZGV4IDYyMWQ0NDEuLmJlMjExMDYgMTAwNjQ0CistLS0gYS9jaHJvbWUvYXBw L3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYworKysrIGIvY2hyb21lL2FwcC9zaHV0 ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXguY2MKK0BAIC0xODcsMTEgKzE4NywxMSBAQCB2b2lk IEluc3RhbGxTaHV0ZG93blNpZ25hbEhhbmRsZXJzKAorICAgZ19zaHV0ZG93bl9waXBlX3JlYWRf ZmQgPSBwaXBlZmRbMF07CisgICBnX3NodXRkb3duX3BpcGVfd3JpdGVfZmQgPSBwaXBlZmRbMV07 CisgI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKQorLSAgY29uc3Qgc2l6ZV90IGtTaHV0 ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiAyOworKyAg Y29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9T VEFDS19NSU4gKiAyICo4OworICNlbHNlCisgICAvLyBBU2FuIGluc3RydW1lbnRhdGlvbiBibG9h dHMgdGhlIHN0YWNrIGZyYW1lcywgc28gd2UgbmVlZCB0byBpbmNyZWFzZSB0aGUKKyAgIC8vIHN0 YWNrIHNpemUgdG8gYXZvaWQgaGl0dGluZyB0aGUgZ3VhcmQgcGFnZS4KKy0gIGNvbnN0IHNpemVf dCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICog NDsKKysgIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBU SFJFQURfU1RBQ0tfTUlOICogNCAqODsKKyAjZW5kaWYKKyAgIFNodXRkb3duRGV0ZWN0b3IqIGRl dGVjdG9yID0gbmV3IFNodXRkb3duRGV0ZWN0b3IoCisgICAgICAgZ19zaHV0ZG93bl9waXBlX3Jl YWRfZmQsIHN0ZDo6bW92ZShzaHV0ZG93bl9jYWxsYmFjayksIHRhc2tfcnVubmVyKTsKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVz bC1zYW5kYm94LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmY0ODVmNmNjNzVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJv bjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTAs MCArMSwxNzYgQEAKK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYyBiL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitpbmRl eCAzNDhhYjZlLi40NTUwZjllIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKKysrKyAuL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rp b25zLmNjCitAQCAtMTM5LDIxICsxMzksMTEgQEAgbmFtZXNwYWNlIHNhbmRib3ggeworIC8vIHBy ZXNlbnQgKGFzIGluIG5ld2VyIHZlcnNpb25zIG9mIHBvc2l4X3NwYXduKS4KKyBSZXN1bHRFeHBy IFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICBjb25zdCBBcmc8dW5z aWduZWQgbG9uZz4gZmxhZ3MoMCk7CistCistICAvLyBUT0RPKG1kZW1wc2t5KTogRXh0ZW5kIERT TCB0byBzdXBwb3J0IChmbGFncyAmIH5tYXNrMSkgPT0gbWFzazIuCistICBjb25zdCB1aW50NjRf dCBrQW5kcm9pZENsb25lTWFzayA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT05FX1NJR0hBTkQgfCBD TE9ORV9USFJFQUQgfAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTE9O RV9TWVNWU0VNOworLSAgY29uc3QgdWludDY0X3Qga09ic29sZXRlQW5kcm9pZENsb25lTWFzayA9 IGtBbmRyb2lkQ2xvbmVNYXNrIHwgQ0xPTkVfREVUQUNIRUQ7CistCistICBjb25zdCB1aW50NjRf dCBrR2xpYmNQdGhyZWFkRmxhZ3MgPQorLSAgICAgIENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9O RV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfCBDTE9ORV9USFJFQUQgfAorLSAgICAgIENMT05FX1NZ U1ZTRU0gfCBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVfQ0hJTERf Q0xFQVJUSUQ7CistICBjb25zdCBCb29sRXhwciBnbGliY190ZXN0ID0gZmxhZ3MgPT0ga0dsaWJj UHRocmVhZEZsYWdzOworLQorLSAgY29uc3QgQm9vbEV4cHIgYW5kcm9pZF90ZXN0ID0KKy0gICAg ICBBbnlPZihmbGFncyA9PSBrQW5kcm9pZENsb25lTWFzaywgZmxhZ3MgPT0ga09ic29sZXRlQW5k cm9pZENsb25lTWFzaywKKy0gICAgICAgICAgICBmbGFncyA9PSBrR2xpYmNQdGhyZWFkRmxhZ3Mp OworKyAgY29uc3QgaW50IHJlcXVpcmVkID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJ TEVTIHwgQ0xPTkVfU0lHSEFORCB8CisrICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9USFJF QUQgfCBDTE9ORV9TWVNWU0VNOworKyAgY29uc3QgaW50IHNhZmUgPSBDTE9ORV9TRVRUTFMgfCBD TE9ORV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQgfAorKyAgICAgICAgICAg ICAgICAgICBDTE9ORV9ERVRBQ0hFRDsKKysgIGNvbnN0IEJvb2xFeHByIHRocmVhZF9jbG9uZV9v ayA9IChmbGFncyZ+c2FmZSk9PXJlcXVpcmVkOworIAorICAgLy8gVGhlIGZvbGxvd2luZyB0d28g ZmxhZ3MgYXJlIHRoZSB0d28gaW1wb3J0YW50IGZsYWdzIGluIGFueSB2Zm9yay1lbXVsYXRpbmcK KyAgIC8vIGNsb25lIGNhbGwuIEVQRVJNIGFueSBjbG9uZSBjYWxsIHRoYXQgY29udGFpbnMgYm90 aCBvZiB0aGVtLgorQEAgLTE2Myw3ICsxNTMsNyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVU b1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICAgICAgQW55T2YoKGZsYWdzICYgKENMT05FX1ZN IHwgQ0xPTkVfVEhSRUFEKSkgPT0gMCwKKyAgICAgICAgICAgICAoZmxhZ3MgJiBrSW1wb3J0YW50 Q2xvbmVWZm9ya0ZsYWdzKSA9PSBrSW1wb3J0YW50Q2xvbmVWZm9ya0ZsYWdzKTsKKyAKKy0gIHJl dHVybiBJZihJc0FuZHJvaWQoKSA/IGFuZHJvaWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFsbG93KCkp CisrICByZXR1cm4gSWYodGhyZWFkX2Nsb25lX29rLCBBbGxvdygpKQorICAgICAgIC5FbHNlSWYo aXNfZm9ya19vcl9jbG9uZV92Zm9yaywgRXJyb3IoRVBFUk0pKQorICAgICAgIC5FbHNlKENyYXNo U0lHU1lTQ2xvbmUoKSk7CisgfQorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9zZXRzLmNjCitpbmRleCA3ZGJjYzg3Li41ODkyNjJmIDEwMDY0NAorLS0t IC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysr IC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworQEAg LTM5MSw2ICszOTEsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRP ckRlYXRoKGludCBzeXNubykgeworICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgICBjYXNlIF9f TlJfd2FpdHBpZDoKKyAjZW5kaWYKKysgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKyAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBh cmFtZXRlci1yZXN0cmljdGVkLgorICAgICBjYXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2aWxlZ2Vk LgorQEAgLTQwMyw3ICs0MDQsNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNz U3RhcnRPckRlYXRoKGludCBzeXNubykgeworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisgICAgIGNhc2UgX19OUl9zZXRf dGhyZWFkX2FyZWE6CisgI2VuZGlmCistICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Cisg ICAgIGNhc2UgX19OUl91bnNoYXJlOgorICNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmlu ZWQoX19hYXJjaDY0X18pCisgICAgIGNhc2UgX19OUl92Zm9yazoKK0BAIC01MTMsNiArNTEzLDgg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNu bykgeworICAgICBjYXNlIF9fTlJfbWxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5sb2NrOgorICAg ICBjYXNlIF9fTlJfbXVubWFwOgorKyAgICBjYXNlIF9fTlJfbXJlbWFwOgorKyAgICBjYXNlIF9f TlJfbWVtYmFycmllcjoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX21hZHZp c2U6CisgICAgIGNhc2UgX19OUl9taW5jb3JlOgorQEAgLTUzMCw3ICs1MzIsNiBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBY2Nlc3MoaW50IHN5c25vKSB7CisgICAg IGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfbXByb3RlY3Q6 CistICAgIGNhc2UgX19OUl9tcmVtYXA6CisgICAgIGNhc2UgX19OUl9tc3luYzoKKyAgICAgY2Fz ZSBfX05SX211bmxvY2thbGw6CisgICAgIGNhc2UgX19OUl9yZWFkYWhlYWQ6CitkaWZmIC0tZ2l0 IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIGIv c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCitpbmRl eCA1OWQwZWFiLi43YWU3MDAyIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMDYzLDQgKzEwNjMsOCBAQAorICNk ZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMjc5CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9f TlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAyODMKKysjZW5kaWYKKysK KyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfQVJNNjRfTElOVVhfU1lT Q0FMTFNfSF8KK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9s aW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhf c3lzY2FsbHMuaAoraW5kZXggMWFkZGQ1My4uNzg0M2I1ZSAxMDA2NDQKKy0tLSAuL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMzg1LDYgKzEz ODUsMTAgQEAKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIChfX05SX1NZU0NBTExfQkFTRSsz ODUpCisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5l IF9fTlJfbWVtYmFycmllciAoX19OUl9TWVNDQUxMX0JBU0UrMzg5KQorKyNlbmRpZgorKworIC8v IEFSTSBwcml2YXRlIHN5c2NhbGxzLgorICNpZiAhZGVmaW5lZChfX0FSTV9OUl9CQVNFKQorICNk ZWZpbmUgX19BUk1fTlJfQkFTRSAoX19OUl9TWVNDQUxMX0JBU0UgKyAweEYwMDAwKQorZGlmZiAt LWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwczY0X2xpbnV4X3N5c2NhbGxz LmggYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHM2NF9saW51eF9zeXNjYWxscy5o CitpbmRleCBlYzc1ODE1Li42MTJmY2ZhIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lzY2FsbHMuaAorKysrIC4vc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lzY2FsbHMuaAorQEAgLTEyNzEsNCArMTI3MSw4 IEBACisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAoX19OUl9MaW51eCArIDMxNCkKKyAjZW5k aWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1i YXJyaWVyIChfX05SX0xpbnV4ICsgMzE4KQorKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJP WF9MSU5VWF9TWVNURU1fSEVBREVSU19NSVBTNjRfTElOVVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1n aXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHNfbGludXhfc3lzY2FsbHMuaCBi L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwc19saW51eF9zeXNjYWxscy5oCitpbmRl eCBkZGJmOTdmLi4xNzQyYWNkIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9taXBzX2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvbWlwc19saW51eF9zeXNjYWxscy5oCitAQCAtMTQzMyw0ICsxNDMzLDggQEAKKyAjZGVm aW5lIF9fTlJfbWVtZmRfY3JlYXRlIChfX05SX0xpbnV4ICsgMzU0KQorICNlbmRpZgorIAorKyNp ZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9f TlJfTGludXggKyAzNTgpCisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZ U1RFTV9IRUFERVJTX01JUFNfTElOVVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1naXQgYS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAoraW5kZXggYTZhZmM2 Mi4uN2VkMGEzYiAxMDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2 XzMyX2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv eDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xNDIyLDUgKzE0MjIsOSBAQAorICNkZWZpbmUg X19OUl9tZW1mZF9jcmVhdGUgMzU2CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVt YmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzNzUKKysjZW5kaWYKKysKKyAjZW5k aWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzMyX0xJTlVYX1NZU0NBTExT X0hfCisgCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRf bGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xp bnV4X3N5c2NhbGxzLmgKK2luZGV4IDM0OTUwNGEuLmVhM2M3YzkgMTAwNjQ0CistLS0gLi9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCisrKysgLi9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCitAQCAt MTI5MCw1ICsxMjkwLDkgQEAKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDMxOQorICNlbmRp ZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJh cnJpZXIgMzI0CisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9I RUFERVJTX1g4Nl82NF9MSU5VWF9TWVNDQUxMU19IXworIAorZGlmZiAtLWdpdCBhL3NlcnZpY2Vz L3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXgu Y2MgYi9zZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJf cG9saWN5X2xpbnV4LmNjCitpbmRleCAwMTdmMTNjLi41MGFlZWMzIDEwMDY0NAorLS0tIC4vc2Vy dmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9s aW51eC5jYworKysrIC4vc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBm X3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworQEAgLTg4LDEwICs4OCwxMCBAQCBSZXN1bHRFeHBy IFJlbmRlcmVyUHJvY2Vzc1BvbGljeTo6RXZhbHVhdGVTeXNjYWxsKGludCBzeXNubykgY29uc3Qg eworICAgICBjYXNlIF9fTlJfc3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3RpbWVzOgorICAgICBj YXNlIF9fTlJfdW5hbWU6CistICAgICAgcmV0dXJuIEFsbG93KCk7CistICAgIGNhc2UgX19OUl9z Y2hlZF9nZXRhZmZpbml0eToKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBj YXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyOgorKyAgICAgIHJldHVybiBBbGxvdygpOworKyAg ICBjYXNlIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHk6CisgICAgIGNhc2UgX19OUl9zY2hlZF9zZXRz Y2hlZHVsZXI6CisgICAgICAgcmV0dXJuIHNhbmRib3g6OlJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0 UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAgY2FzZSBfX05SX3BybGltaXQ2NDoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1z dHJpbmdfaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbC1zdHJpbmdfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZTNjOGE4MzRkZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9u MTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc3RyaW5nX2gucGF0Y2gKQEAgLTAs MCArMSwxMCBAQAorLS0tIGEvbW9qby9wdWJsaWMvY3BwL3BsYXRmb3JtL25hbWVkX3BsYXRmb3Jt X2NoYW5uZWxfcG9zaXguY2Mub3JpZyAgICAgICAyMDIwLTA3LTE5IDEzOjI2OjEwLjY5NjE3MTA2 MyAtMDQwMAorKysrIGIvbW9qby9wdWJsaWMvY3BwL3BsYXRmb3JtL25hbWVkX3BsYXRmb3JtX2No YW5uZWxfcG9zaXguY2MgICAgMjAyMC0wNy0xOSAxMzoyNjo0My42ODAxNTE3MTQgLTA0MDAKK0BA IC01LDYgKzUsNyBAQAorICNpbmNsdWRlICJtb2pvL3B1YmxpYy9jcHAvcGxhdGZvcm0vbmFtZWRf cGxhdGZvcm1fY2hhbm5lbC5oIgorIAorICNpbmNsdWRlIDxlcnJuby5oPgorKyNpbmNsdWRlIDxz dHJpbmcuaD4KKyAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorICNpbmNsdWRlIDxzeXMvdW4uaD4K KyAjaW5jbHVkZSA8dW5pc3RkLmg+CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFtZS5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9j YW5vbmljYWxpemVfZmlsZV9uYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi4wNTYxNGRhYTc1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jYW5vbmljYWxpemVfZmlsZV9u YW1lLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9uYXNt L2NvbmZpZy9jb25maWctbGludXguaCBiL3RoaXJkX3BhcnR5L25hc20vY29uZmlnL2NvbmZpZy1s aW51eC5oCitpbmRleCA3ZWI3YzIwLi44ODJiNzM2IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv bmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmgKKysrKyBiL3RoaXJkX3BhcnR5L25hc20vY29uZmln L2NvbmZpZy1saW51eC5oCitAQCAtMTE3LDcgKzExNyw3IEBACisgI2RlZmluZSBIQVZFX0FDQ0VT UyAxCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjYW5vbmljYWxpemVfZmls ZV9uYW1lJyBmdW5jdGlvbi4gKi8KKy0jZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFN RSAxCisrLyogI3VuZGVmIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAqLworIAorIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY3B1X3RvX2xlMTYnIGludHJpbnNpYyBmdW5jdGlv bi4gKi8KKyAvKiAjdW5kZWYgSEFWRV9DUFVfVE9fTEUxNiAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nk ZWZzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mYzdkYzA2 ZmYyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9jZGVmcy5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitkaWZmIC0t Z2l0IGEvYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1faW50ZXJuYWxzLmggYi9iYXNlL2Fs bG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRlcm5hbAorcy5oCitpbmRleCAwMTk2Zjg5Li5iYjQy YjVkIDEwMDY0NAorLS0tIGEvYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1faW50ZXJuYWxz LmgKKysrKyBiL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2ludGVybmFscy5oCitAQCAt Nyw3ICs3LDkgQEAKKworICNpZiBkZWZpbmVkKF9fR05VQ19fKQorCisrI2lmIGRlZmluZWQoX19H TElCQ19fKQorICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4gIC8vIGZvciBfX1RIUk9XCisrI2VuZGlm CisKKyAjaWZuZGVmIF9fVEhST1cgIC8vIE5vdCBhIGdsaWJjIHN5c3RlbQorICNpZmRlZiBfTk9F WENFUFQgIC8vIExMVk0gbGliYysrIHVzZXMgbm9leGNlcHQgaW5zdGVhZAorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmggYi90aGlyZF9wYXJ0 eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCitpbmRleCA1MGVkMGFjLi43NTUyYTQ5 IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMu aAorKysrIGIvdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaAorQEAg LTE5LDEyICsxOSwxMyBAQAorICNpZm5kZWYgX19TWVNfQ09SRV9TWU5DX0gKKyAjZGVmaW5lIF9f U1lTX0NPUkVfU1lOQ19ICisgCistI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorICNpbmNsdWRlIDxz dGRpbnQuaD4KKyAKKyAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyAKKy1fX0JFR0lOX0RFQ0xT CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7CisrI2VuZGlmIC8qIF9fY3BsdXNw bHVzICovCisgCisgc3RydWN0IHN5bmNfbGVnYWN5X21lcmdlX2RhdGEgeworICBpbnQzMl90IGZk MjsKK0BAIC0xNTgsNiArMTU5LDggQEAgc3RydWN0IHN5bmNfcHRfaW5mbyAqc3luY19wdF9pbmZv KHN0cnVjdCBzeW5jX2ZlbmNlX2luZm9fZGF0YSAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHN5bmNfcHRfaW5mbyAqaXRyKTsKKyB2b2lkIHN5bmNfZmVu Y2VfaW5mb19mcmVlKHN0cnVjdCBzeW5jX2ZlbmNlX2luZm9fZGF0YSAqaW5mbyk7CisgCistX19F TkRfREVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmIC8qIF9fY3BsdXNwbHVz ICovCisgCisgI2VuZGlmIC8qIF9fU1lTX0NPUkVfU1lOQ19IICovCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZGVmaW5lX3Rl bXBfZmFpbHVyZV9yZXRyeS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9kZWZpbmVfdGVtcF9mYWlsdXJlX3JldHJ5LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MWRiNjU4Zjg0OQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9kZWZpbmVfdGVtcF9mYWlsdXJlX3JldHJ5LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0t LSBhL3NhbmRib3gvbGludXgvc3VpZC9zYW5kYm94LmMJMjAxOS0xMS0xOSAwOToyODowNS4wMDAw MDAwMDAgKzA4MDAKKysrKyBiL3NhbmRib3gvbGludXgvc3VpZC9zYW5kYm94LmMJMjAyMC0wNC0y NCAxMTo1MDoxMi43MTk4ODA3MjggKzA4MDAKK0BAIC00Miw2ICs0MiwxNSBAQAorICNkZWZpbmUg Q0xPTkVfTkVXTkVUIDB4NDAwMDAwMDAKKyAjZW5kaWYKKyAKKysjaWZuZGVmIFRFTVBfRkFJTFVS RV9SRVRSWQorKyNkZWZpbmUgVEVNUF9GQUlMVVJFX1JFVFJZKGV4cHJlc3Npb24pIFwKKysgIChf X2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgICAgKHsgbG9uZyBpbnQgX19yZXN1bHQ7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgZG8gX19y ZXN1bHQgPSAobG9uZyBpbnQpIChleHByZXNzaW9uKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgICAgICAgd2hpbGUgKF9fcmVzdWx0ID09IC0xTCAmJiBlcnJubyA9PSBFSU5U Uik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgX19yZXN1bHQ7IH0pKQor KyNlbmRpZgorKworIHN0YXRpYyBib29sIERyb3BSb290KCk7CisgCisgI2RlZmluZSBIQU5ETEVf RUlOVFIoeCkgVEVNUF9GQUlMVVJFX1JFVFJZKHgpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZG5zLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Rucy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjQ5ZDhiZDBhZmEKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfZG5zLnBhdGNoCkBAIC0wLDAgKzEsNjEgQEAKK2RpZmYgLS1naXQgYS9uZXQvZG5z L2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYyBiL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNl X3Bvc2l4LmNjCitpbmRleCAyZjk0ODMyLi4yZGQxYTk4IDEwMDY0NAorLS0tIGEvbmV0L2Rucy9k bnNfY29uZmlnX3NlcnZpY2VfcG9zaXguY2MKKysrKyBiL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2 aWNlX3Bvc2l4LmNjCitAQCAtMTUwLDcgKzE1MCw3IEBAIENvbmZpZ1BhcnNlUG9zaXhSZXN1bHQg UmVhZERuc0NvbmZpZyhEbnNDb25maWcqIGRuc19jb25maWcpIHsKKyAjaWYgIWRlZmluZWQoT1Nf QU5EUk9JRCkKKyAgIENvbmZpZ1BhcnNlUG9zaXhSZXN1bHQgcmVzdWx0OworIC8vIFRPRE8oZnVj aHNpYSk6IFVzZSByZXNfbmluaXQoKSB3aGVuIGl0J3MgaW1wbGVtZW50ZWQgb24gRnVjaHNpYS4K Ky0jaWYgZGVmaW5lZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2lmIGRl ZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVmaW5lZChPU19GVUNIU0lBKSB8fCAoZGVmaW5lZChPU19M SU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAgIC8vIE5vdGU6IHJlc19uaW5pdCBpbiBn bGliYyBhbHdheXMgcmV0dXJucyAwIGFuZCBzZXRzIFJFU19JTklULgorICAgLy8gcmVzX2luaXQg YmVoYXZlcyB0aGUgc2FtZSB3YXkuCisgICBtZW1zZXQoJl9yZXMsIDAsIHNpemVvZihfcmVzKSk7 CitAQCAtMTczLDcgKzE3Myw3IEBAIENvbmZpZ1BhcnNlUG9zaXhSZXN1bHQgUmVhZERuc0NvbmZp ZyhEbnNDb25maWcqIGRuc19jb25maWcpIHsKKyAjZWxzZQorICAgcmVzX25jbG9zZSgmcmVzKTsK KyAjZW5kaWYgIC8vIGRlZmluZWQoT1NfTUFDT1NYKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpCist I2VuZGlmICAvLyBkZWZpbmVkKE9TX09QRU5CU0QpCisrI2VuZGlmICAvLyBkZWZpbmVkKE9TX09Q RU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkgfHwgKGRlZmluZWQoT1NfTElOVVgpICYmICFk ZWZpbmVkKF9fR0xJQkNfXykpCisgCisgI2lmIGRlZmluZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5l ZChPU19JT1MpCisgICBDb25maWdQYXJzZVBvc2l4UmVzdWx0IGVycm9yID0gRG5zQ29uZmlnV2F0 Y2hlcjo6Q2hlY2tEbnNDb25maWcoKTsKK2RpZmYgLS1naXQgYS9uZXQvZG5zL2Ruc19yZWxvYWRl ci5jYyBiL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjCitpbmRleCA5NTJjZmY0Li40YjM2NmY0IDEw MDY0NAorLS0tIGEvbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MKKysrKyBiL25ldC9kbnMvZG5zX3Jl bG9hZGVyLmNjCitAQCAtNCw3ICs0LDcgQEAKKyAKKyAjaW5jbHVkZSAibmV0L2Rucy9kbnNfcmVs b2FkZXIuaCIKKyAKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1NfTUFDT1NY KSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisrI2lmIGRlZmluZWQoT1NfUE9TSVgpICYm IGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9T X09QRU5CU0QpICYmIFwKKyAgICAgIWRlZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRlZmluZWQoT1Nf RlVDSFNJQSkKKyAKKyAjaW5jbHVkZSA8cmVzb2x2Lmg+CitkaWZmIC0tZ2l0IGEvbmV0L2Rucy9o b3N0X3Jlc29sdmVyX21hbmFnZXIuY2MgYi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5j YworaW5kZXggZThkZWE0Ni4uYzg2YTgzMCAxMDA2NDQKKy0tLSBhL25ldC9kbnMvaG9zdF9yZXNv bHZlcl9tYW5hZ2VyLmNjCisrKysgYi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYwor QEAgLTIzODYsNyArMjM4Niw3IEBAIEhvc3RSZXNvbHZlck1hbmFnZXI6Okhvc3RSZXNvbHZlck1h bmFnZXIoCisgICBOZXR3b3JrQ2hhbmdlTm90aWZpZXI6OkFkZENvbm5lY3Rpb25UeXBlT2JzZXJ2 ZXIodGhpcyk7CisgICBpZiAoc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfKQorICAgICBzeXN0 ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8tPkFkZE9ic2VydmVyKHRoaXMpOworLSNpZiBkZWZpbmVk KE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9TX09QRU5CU0Qp ICYmIFwKKysjaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pICYmICFk ZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorICAgICAhZGVm aW5lZChPU19BTkRST0lEKQorICAgRW5zdXJlRG5zUmVsb2FkZXJJbml0KCk7CisgI2VuZGlmCitk aWZmIC0tZ2l0IGEvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MgYi9uZXQvZG5zL2hvc3Rf cmVzb2x2ZXJfcHJvYy5jYworaW5kZXggMDgyNDU0MC4uMzM4NDk3OCAxMDA2NDQKKy0tLSBhL25l dC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCisrKysgYi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJf cHJvYy5jYworQEAgLTE5Nyw3ICsxOTcsNyBAQCBpbnQgU3lzdGVtSG9zdFJlc29sdmVyQ2FsbChj b25zdCBzdGQ6OnN0cmluZyYgaG9zdCwKKyAgIGJhc2U6OlNjb3BlZEJsb2NraW5nQ2FsbCBzY29w ZWRfYmxvY2tpbmdfY2FsbChGUk9NX0hFUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYmFzZTo6QmxvY2tpbmdUeXBlOjpXSUxMX0JMT0NLKTsKKyAK Ky0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5l ZChPU19PUEVOQlNEKSAmJiBcCisrI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmIGRlZmluZWQoX19H TElCQ19fKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYm IFwKKyAgICAgIWRlZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRlZmluZWQoT1NfRlVDSFNJQSkKKyAg IERuc1JlbG9hZGVyTWF5YmVSZWxvYWQoKTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9leGVpbmZvLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4 ZWluZm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYxYWZj N2MxYjE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWluZm8ucGF0Y2gKQEAgLTAsMCArMSw5NiBAQAorZGlm ZiAtLWdpdCBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MgYi9iYXNlL2RlYnVnL3N0 YWNrX3RyYWNlX3Bvc2l4LmNjCitpbmRleCBkZTJmMzU2Li5mNjk3YzY2IDEwMDY0NAorLS0tIGEv YmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYworKysrIGIvYmFzZS9kZWJ1Zy9zdGFja190 cmFjZV9wb3NpeC5jYworQEAgLTI3LDcgKzI3LDcgQEAKKyAjaWYgIWRlZmluZWQoVVNFX1NZTUJP TElaRSkKKyAjaW5jbHVkZSA8Y3h4YWJpLmg+CisgI2VuZGlmCistI2lmICFkZWZpbmVkKF9fVUNM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVm aW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICNpbmNsdWRlIDxleGVjaW5mby5o PgorICNlbmRpZgorIAorQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBEZW1hbmdsZVN5bWJvbHMoc3Rk OjpzdHJpbmcqIHRleHQpIHsKKyAgIC8vIE5vdGU6IGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyBO T1QgYXN5bmMtc2lnbmFsIHNhZmUgKHN0ZDo6c3RyaW5nIHVzZXMKKyAgIC8vIG1hbGxvYyBpbnRl cm5hbGx5KS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK KysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIHNlYXJjaF9mcm9tID0gMDsKKyAg IHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNpemUoKSkgeworICAgICAvLyBMb29rIGZvciB0 aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwgZnJvbSBzZWFyY2hfZnJvbS4KK0BAIC0xMjEs NyArMTIxLDcgQEAgdm9pZCBEZW1hbmdsZVN5bWJvbHMoc3RkOjpzdHJpbmcqIHRleHQpIHsKKyAg ICAgICBzZWFyY2hfZnJvbSA9IG1hbmdsZWRfc3RhcnQgKyAyOworICAgICB9CisgICB9CistI2Vu ZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNlbmRpZiAg Ly8gZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVk KF9BSVgpCisgfQorICNlbmRpZiAgLy8gIWRlZmluZWQoVVNFX1NZTUJPTElaRSkKKyAKK0BAIC0x MzMsNyArMTMzLDcgQEAgY2xhc3MgQmFja3RyYWNlT3V0cHV0SGFuZGxlciB7CisgICB2aXJ0dWFs IH5CYWNrdHJhY2VPdXRwdXRIYW5kbGVyKCkgPSBkZWZhdWx0OworIH07CisgCistI2lmICFkZWZp bmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19f KSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZvaWQgT3V0cHV0 UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyKiBoYW5kbGVyKSB7 CisgICAvLyBUaGlzIHNob3VsZCBiZSBtb3JlIHRoYW4gZW5vdWdoIHRvIHN0b3JlIGEgNjQtYml0 IG51bWJlciBpbiBoZXg6CisgICAvLyAxNiBoZXggZGlnaXRzICsgMSBmb3IgbnVsbC10ZXJtaW5h dG9yLgorQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFByb2Nlc3NCYWNrdHJhY2Uodm9pZCogY29u c3QqIHRyYWNlLAorICAgfQorICNlbmRpZiAgLy8gZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorIH0K Ky0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2Vu ZGlmICAvLyBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRl ZmluZWQoX0FJWCkKKyAKKyB2b2lkIFByaW50VG9TdGRlcnIoY29uc3QgY2hhciogb3V0cHV0KSB7 CisgICAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1 c2VkIGJ5IGluLXByb2Nlc3MKK0BAIC04MjgsNyArODI4LDcgQEAgc2l6ZV90IENvbGxlY3RTdGFj a1RyYWNlKHZvaWQqKiB0cmFjZSwgc2l6ZV90IGNvdW50KSB7CisgICAvLyBOT1RFOiBUaGlzIGNv ZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAg IC8vIHN0YWNrIGR1bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMg YWxsb3dlZCBoZXJlLgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKyAgIC8vIFRob3VnaCB0aGUgYmFja3RyYWNlIEFQSSBtYW4gcGFnZSBk b2VzIG5vdCBsaXN0IGFueSBwb3NzaWJsZSBuZWdhdGl2ZQorICAgLy8gcmV0dXJuIHZhbHVlcywg d2UgdGFrZSBubyBjaGFuY2UuCisgICByZXR1cm4gYmFzZTo6c2F0dXJhdGVkX2Nhc3Q8c2l6ZV90 PihiYWNrdHJhY2UodHJhY2UsIGNvdW50KSk7CitAQCAtODQxLDEzICs4NDEsMTMgQEAgdm9pZCBT dGFja1RyYWNlOjpQcmludFdpdGhQcmVmaXgoY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29u c3QgeworIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdz IHVzZWQgYnkgaW4tcHJvY2VzcworIC8vIHN0YWNrIGR1bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBO TyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJlLgorIAorLSNpZiAhZGVmaW5lZChfX1VD TElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIFByaW50QmFja3RyYWNlT3V0 cHV0SGFuZGxlciBoYW5kbGVyOworICAgUHJvY2Vzc0JhY2t0cmFjZSh0cmFjZV8sIGNvdW50Xywg cHJlZml4X3N0cmluZywgJmhhbmRsZXIpOworICNlbmRpZgorIH0KKyAKKy0jaWYgIWRlZmluZWQo X19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgdm9pZCBTdGFja1RyYWNl OjpPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgoc3RkOjpvc3RyZWFtKiBvcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5n KSBjb25zdCB7CisgICBTdHJlYW1CYWNrdHJhY2VPdXRwdXRIYW5kbGVyIGhhbmRsZXIob3MpOwor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3Vi emVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oIGIvdGhpcmRfcGFy dHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1 ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKK2luZGV4IDc5OGYxNTAuLjk3YWNjN2MgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVp bGQvTGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAorKysrIGIvdGhpcmRfcGFydHkv c3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUv bGx2bS9Db25maWcvY29uZmlnLmgKK0BAIC0xNCw3ICsxNCw3IEBACisgI2RlZmluZSBFTkFCTEVf Q1JBU0hfT1ZFUlJJREVTIDEKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGJh Y2t0cmFjZScgZnVuY3Rpb24uICovCistI2RlZmluZSBIQVZFX0JBQ0tUUkFDRSAxCisrLyogI3Vu ZGVmIEhBVkVfQkFDS1RSQUNFICovCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxDcmFzaFJlcG9ydGVyQ2xpZW50Lmg+IGhlYWRlciBmaWxlLiAqLworIC8qICN1bmRlZiBIQVZF X0NSQVNIUkVQT1JURVJDTElFTlRfSCAqLworQEAgLTU1LDcgKzU1LDcgQEAKKyAjZGVmaW5lIEhB VkVfRVJSTk9fSCAxCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxleGVjaW5m by5oPiBoZWFkZXIgZmlsZS4gKi8KKy0jZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAxCisrLyogI3Vu ZGVmIEhBVkVfRVhFQ0lORk9fSCAqLworIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICovCisgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX2dldGNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNzY5NzI0M2E5MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5w YXRjaApAQCAtMCwwICsxLDI1IEBACitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCitpbmRleCBiODk1ZjZkLi40ZjEzMzUyIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK0BAIC00OTAsNyAr NDkwLDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpTaW11bGF0ZVNpZ25hbERlbGl2ZXJ5KGlu dCBzaWcpIHsKKyAgIHNpZ2luZm8uc2lfY29kZSA9IFNJX1VTRVI7CisgICBzaWdpbmZvLnNpX3Bp ZCA9IGdldHBpZCgpOworICAgdWNvbnRleHRfdCBjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJ QkNfXykKKyAgIGdldGNvbnRleHQoJmNvbnRleHQpOworKyNlbmRpZgorICAgcmV0dXJuIEhhbmRs ZVNpZ25hbChzaWcsICZzaWdpbmZvLCAmY29udGV4dCk7CisgfQorIAorQEAgLTY3NSw4ICs2Nzcs MTAgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICAgc3lzX3By Y3RsKFBSX1NFVF9EVU1QQUJMRSwgMSwgMCwgMCwgMCk7CisgCisgICBDcmFzaENvbnRleHQgY29u dGV4dDsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBpbnQgZ2V0Y29udGV4dF9yZXN1bHQg PSBnZXRjb250ZXh0KCZjb250ZXh0LmNvbnRleHQpOworICAgaWYgKGdldGNvbnRleHRfcmVzdWx0 KQorKyNlbmRpZgorICAgICByZXR1cm4gZmFsc2U7CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18p CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfbWFsbGluZm8ucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmRmZTdjNjU5NWVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBh dGNoCkBAIC0wLDAgKzEsNTQgQEAKKy0tLSBhL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBf cHJvdmlkZXIuY2Mub3JpZworKysrIGIvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92 aWRlci5jYworQEAgLTI0Myw3ICsyNDMsNyBAQAorICAgYWxsb2NhdGVkX29iamVjdHNfY291bnQg PSBtYWluX2hlYXBfaW5mby5ibG9ja19jb3VudDsKKyAjZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEp CisgLy8gVE9ETyhmdWNoc2lhKTogUG9ydCwgc2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjU5Mi4K Ky0jZWxzZQorKyNlbGlmIGRlZmluZWQoX19HTElCQ19fKQorICAgc3RydWN0IG1hbGxpbmZvIGlu Zm8gPSBtYWxsaW5mbygpOworICAgRENIRUNLX0dFKGluZm8uYXJlbmEgKyBpbmZvLmhibGtoZCwg aW5mby51b3JkYmxrcyk7CisgCistLS0gYS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bv c2l4LmNjLm9yaWcJMjAxOS0xMC0yNCAxMToxMDo0OC41NTMxNTkyNDUgLTA0MDAKKysrKyBiL2Jh c2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MJMjAxOS0xMC0yNCAxMToxNDoyOS4w MjUwMjU4NTQgLTA0MDAKK0BAIC0xMTAsMTQgKzExMCwxNCBAQAorICAgbWFsbG9jX3N0YXRpc3Rp Y3NfdCBzdGF0cyA9IHswfTsKKyAgIG1hbGxvY196b25lX3N0YXRpc3RpY3MobnVsbHB0ciwgJnN0 YXRzKTsKKyAgIHJldHVybiBzdGF0cy5zaXplX2luX3VzZTsKKy0jZWxpZiBkZWZpbmVkKE9TX0xJ TlVYKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisrI2VsaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8 IGRlZmluZWQoT1NfQU5EUk9JRCkKKyAgIHN0cnVjdCBtYWxsaW5mbyBtaW5mbyA9IG1hbGxpbmZv KCk7CisgI2lmIEJVSUxERkxBRyhVU0VfVENNQUxMT0MpCisgICByZXR1cm4gbWluZm8udW9yZGJs a3M7CisgI2Vsc2UKKyAgIHJldHVybiBtaW5mby5oYmxraGQgKyBtaW5mby5hcmVuYTsKKyAjZW5k aWYKKy0jZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2Vsc2UKKyAgIC8vIFRPRE8oZnVjaHNp YSk6IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6Ly9jcmJ1Zy5jb20vNzM1MDg3LgorICAg cmV0dXJuIDA7CisgI2VuZGlmCistLS0gYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9w YXJ0eS9sbHZtLXN1Ynplcm8vbGliL1N1cHBvcnQvVW5peC9Qcm9jZXNzLmluYworKysrIGIvdGhp cmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2xpYi9TdXBwb3J0 L1VuaXgvUHJvY2Vzcy5pbmMub3JpZworQEAgLTg0LDcgKzg0LDcgQEAKKyB9CisgCisgc2l6ZV90 IFByb2Nlc3M6OkdldE1hbGxvY1VzYWdlKCkgeworLSNpZiBkZWZpbmVkKEhBVkVfTUFMTElORk8p CisrI2lmIGRlZmluZWQoSEFWRV9NQUxMSU5GTykgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgICBz dHJ1Y3QgbWFsbGluZm8gbWk7CisgICBtaSA9IDo6bWFsbGluZm8oKTsKKyAgIHJldHVybiBtaS51 b3JkYmxrczsKKworLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2 bS0xMC4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaC5vcmlnCTIw MTktMDktMzAgMTM6MDM6NDIuNTU2ODgwNTM3IC0wNDAwCisrKysgYi90aGlyZF9wYXJ0eS9zd2lm dHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0v Q29uZmlnL2NvbmZpZy5oCTIwMTktMDktMzAgMTM6MDc6MjcuOTg5ODIxMjI3IC0wNDAwCitAQCAt MTIyLDcgKzEyMiw5IEBACisgLyogI3VuZGVmIEhBVkVfTUFMTENUTCAqLworIAorIC8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8nIGZ1bmN0aW9uLiAqLworKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykKKyAjZGVmaW5lIEhBVkVfTUFMTElORk8gMQorKyNlbmRpZgorIAorIC8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFsbG9jLmg+IGhlYWRlciBmaWxlLiAqLwor ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHJlYWRf cHdyaXRlNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJh ZWFhZWI3NTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0ZTY0LnBhdGNoCkBAIC0wLDAgKzEs MTggQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0 LmggYi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKK2luZGV4IDVkOWMy ZTguLjI2ODIzNDkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9z dXBwb3J0LmgKKysrKyBiL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAor QEAgLTE2Niw2ICsxNjYsMTMgQEAgZXh0ZXJuICJDIiB7CisgIyB1bmRlZiBfX05SX3dhaXRwaWQK KyAjZW5kaWYKKyAKKysjaWZkZWYgcHJlYWQ2NAorKyN1bmRlZiBwcmVhZDY0CisrI2VuZGlmCisr I2lmZGVmIHB3cml0ZTY0CisrI3VuZGVmIHB3cml0ZTY0CisrI2VuZGlmCisrCisgLyogQXMgZ2xp YmMgb2Z0ZW4gcHJvdmlkZXMgc3VidGx5IGluY29tcGF0aWJsZSBkYXRhIHN0cnVjdHVyZXMgKGFu ZCBpbXBsaWNpdAorICAqIHdyYXBwZXIgZnVuY3Rpb25zIHRoYXQgY29udmVydCB0aGVtKSwgd2Ug cHJvdmlkZSBvdXIgb3duIGtlcm5lbCBkYXRhCisgICogc3RydWN0dXJlcyBmb3IgdXNlIGJ5IHRo ZSBzeXN0ZW0gY2FsbHMuCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJv bjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2ZmMzQwMjg3ZGEKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfcHVzaF9iYWNrLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK2RpZmYgLS1naXQgYS9uZXQv c29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MgYi9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXgu Y2MKK2luZGV4IDA4YmY3OWMuLjNlZTUzNTMgMTAwNjQ0CistLS0gYS9uZXQvc29ja2V0L3VkcF9z b2NrZXRfcG9zaXguY2MKKysrKyBiL25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYworQEAg LTExOTQsNyArMTE5NCw3IEBAIFNlbmRSZXN1bHQgVURQU29ja2V0UG9zaXhTZW5kZXI6OkludGVy bmFsU2VuZG1tc2dCdWZmZXJzKAorICAgICBtc2dfaW92LT5wdXNoX2JhY2soe2NvbnN0X2Nhc3Q8 Y2hhcio+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5sZW5ndGgoKX0pOworICAgbXNndmVjLT5y ZXNlcnZlKGJ1ZmZlcnMuc2l6ZSgpKTsKKyAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgYnVmZmVy cy5zaXplKCk7IGorKykKKy0gICAgbXNndmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNn X2lvdltqXSwgMSwgbnVsbHB0ciwgMCwgMH0sIDB9KTsKKysgICAgbXNndmVjLT5wdXNoX2JhY2so e3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgMCwgbnVsbHB0ciwgMCwgMCwgMH0sIDB9KTsK KyAgIGludCByZXN1bHQgPSBIQU5ETEVfRUlOVFIoU2VuZG1tc2coZmQsICZtc2d2ZWNbMF0sIGJ1 ZmZlcnMuc2l6ZSgpLCAwKSk7CisgICBTZW5kUmVzdWx0IHNlbmRfcmVzdWx0KDAsIDAsIHN0ZDo6 bW92ZShidWZmZXJzKSk7CisgICBpZiAocmVzdWx0IDwgMCkgewpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3NpemUu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11 c2xfc3RhY2tfc2l6ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uY2Y0MWQyN2FkZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfc2l6ZS5wYXRjaApAQCAtMCwwICsx LDQxIEBACitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0v d3RmL3N0YWNrX3V0aWwuY2MgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93 dGYvc3RhY2tfdXRpbC5jYworaW5kZXggYjI0MjE2NC4uMWEwYjUxOSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCisrKysg Yi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYwor QEAgLTI4LDcgKzI4LDcgQEAKKyAvLyBGSVhNRTogT24gTWFjIE9TWCBhbmQgTGludXgsIHRoaXMg bWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXplCisgLy8gY29ycmVjdGx5IGZvciB0aGUg bWFpbiB0aHJlYWQuCisgCistI2VsaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoT1Nf QU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisrI2VsaWYgZGVmaW5lZChPU19M SU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwK KyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgLy8gcHRocmVhZF9nZXRhdHRyX25wKCkgY2Fu IGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tlZCBieQorICAgLy8gcHRocmVhZF9jcmVh dGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5rX3VuaXR0ZXN0cykuCitAQCAtNTUs NiArNTUsOSBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7CisgICBwdGhy ZWFkX2F0dHJfZGVzdHJveSgmYXR0cik7CisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoT1NfTElO VVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgIHJldHVybiAwOworKyNlbHNlCisgICAvLyBS ZXR1cm4gYSA1MTJrIHN0YWNrIHNpemUsIChjb25zZXJ2YXRpdmVseSkgYXNzdW1pbmcgdGhlIGZv bGxvd2luZzoKKyAgIC8vICAtIHRoYXQgc2l6ZSBpcyBtdWNoIGxvd2VyIHRoYW4gdGhlIHB0aHJl YWRzIGRlZmF1bHQgKHg4NiBwdGhyZWFkcyBoYXMgYSAyTQorICAgLy8gICAgZGVmYXVsdC4pCitA QCAtNjIsNiArNjUsOCBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7Cisg ICAvLyAgICBsb3cgYXMgNTEyay4KKyAgIC8vCisgICByZXR1cm4gNTEyICogMTAyNDsKKysjZW5k aWYKKysKKyAjZWxpZiBkZWZpbmVkKE9TX01BQ09TWCkKKyAgIC8vIHB0aHJlYWRfZ2V0X3N0YWNr c2l6ZV9ucCgpIHJldHVybnMgdG9vIGxvdyBhIHZhbHVlIGZvciB0aGUgbWFpbiB0aHJlYWQgb24K KyAgIC8vIE9TWCAxMC45LAorQEAgLTk3LDcgKzEwMiw3IEBAIHJldHVybiBUaHJlYWRpbmc6OlRo cmVhZFN0YWNrU2l6ZSgpOworIH0KKyAKKyB2b2lkKiBHZXRTdGFja1N0YXJ0KCkgeworLSNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZS RUVCU0QpIHx8IFwKKysjaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lE KSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQor ICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKyAgIGludCBlcnJvcjsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja190cmFj ZS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9zdGFja190cmFjZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uOWExZjJiMDQ0NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfdHJhY2UucGF0Y2gKQEAgLTAs MCArMSw0NCBAQAorZGlmZiAtLWdpdCBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MgYi9iYXNl L2RlYnVnL3N0YWNrX3RyYWNlLmNjCitpbmRleCBkOGNhODIyLi5mZmUxZjA4IDEwMDY0NAorLS0t IGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworKysrIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFj ZS5jYworQEAgLTIyNSw3ICsyMjUsOSBAQCB2b2lkIFN0YWNrVHJhY2U6OlByaW50KCkgY29uc3Qg eworIH0KKworIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0oc3RkOjpvc3RyZWFtKiBv cykgY29uc3QgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNf XykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChvcywgbnVs bHB0cik7CisrI2VuZGlmCisgfQorCisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9TdHJpbmco KSBjb25zdCB7CitAQCAtMjMzLDE0ICsyMzMsMTQgQEAgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6 VG9TdHJpbmcoKSBjb25zdCB7CisgfQorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5n V2l0aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBzdGQ6OnN0 cmluZ3N0cmVhbSBzdHJlYW07CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVk KF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAm JiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KCZzdHJlYW0sIHBy ZWZpeF9zdHJpbmcpOworICNlbmRpZgorICAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKKyB9CisgCisg c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFN0YWNrVHJh Y2UmIHMpIHsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiAhZGVmaW5lZChfQUlYKQorKyNp ZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiAhZGVmaW5lZChf QUlYKQorICAgcy5PdXRwdXRUb1N0cmVhbSgmb3MpOworICNlbHNlCisgICBvcyA8PCAiU3RhY2tU cmFjZTo6T3V0cHV0VG9TdHJlYW0gbm90IGltcGxlbWVudGVkLiI7CitkaWZmIC0tZ2l0IGEvYmFz ZS9sb2dnaW5nLmNjIGIvYmFzZS9sb2dnaW5nLmNjCitpbmRleCAzNmI4YmZjLi5kZDgzMGZlIDEw MDY0NAorLS0tIGEvYmFzZS9sb2dnaW5nLmNjCisrKysgYi9iYXNlL2xvZ2dpbmcuY2MKK0BAIC02 MDcsNyArNjA3LDcgQEAgTG9nTWVzc2FnZTo6TG9nTWVzc2FnZShjb25zdCBjaGFyKiBmaWxlLCBp bnQgbGluZSwgTG9nU2V2ZXJpdHkgc2V2ZXJpdHksCisgTG9nTWVzc2FnZTo6fkxvZ01lc3NhZ2Uo KSB7CisgICBzaXplX3Qgc3RhY2tfc3RhcnQgPSBzdHJlYW1fLnRlbGxwKCk7CisgI2lmICFkZWZp bmVkKE9GRklDSUFMX0JVSUxEKSAmJiAhZGVmaW5lZChPU19OQUNMKSAmJiAhZGVmaW5lZChfX1VD TElCQ19fKSAmJiBcCistICAgICFkZWZpbmVkKE9TX0FJWCkKKysgICAgIWRlZmluZWQoT1NfQUlY KSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGlmIChzZXZlcml0eV8gPT0gTE9HX0ZBVEFMICYm ICFiYXNlOjpkZWJ1Zzo6QmVpbmdEZWJ1Z2dlZCgpKSB7CisgICAgIC8vIEluY2x1ZGUgYSBzdGFj ayB0cmFjZSBvbiBhIGZhdGFsLCB1bmxlc3MgYSBkZWJ1Z2dlciBpcyBhdHRhY2hlZC4KKyAgICAg YmFzZTo6ZGVidWc6OlN0YWNrVHJhY2Ugc3RhY2tfdHJhY2U7CmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rlbi5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVz bF90Y3BfbGlzdGVuLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5mYTYyMzE3YjExYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxl cy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF90Y3BfbGlzdGVuLnBhdGNoCkBAIC0wLDAgKzEs MTQgQEAKK2RpZmYgLS1naXQgYS9jb250ZW50L3B1YmxpYy9jb21tb24vc29ja2V0X3Blcm1pc3Np b25fcmVxdWVzdC5oIGIvY29udGVudC9wdWJsaWMvY29tbW9uL3NvY2tldF9wZXJtaXNzaW9uX3Jl cXVlc3QuaAoraW5kZXggNzMxNjYyMS4uNjE3MTIxOSAxMDA2NDQKKy0tLSBhL2NvbnRlbnQvcHVi bGljL2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKKysrKyBiL2NvbnRlbnQvcHVi bGljL2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKK0BAIC05LDYgKzksOSBAQAor IAorICNpbmNsdWRlIDxzdHJpbmc+CisgCisrI2lmZGVmIFRDUF9MSVNURU4KKysjdW5kZWYgVENQ X0xJU1RFTgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBjb250ZW50IHsKKyAKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF94eHgt cHBjNjRsZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE3ZDY2MGZlYjAyCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3h4 eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwxNzkgQEAKK2RpZmYgLS1naXQgc2Fu ZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggc2FuZGJveC9saW51eC9icGZfZHNs L3NlY2NvbXBfbWFjcm9zLmgKK2luZGV4IGE2YWVjNTQ0ZS4uMmE0YTdmMWJjIDEwMDY0NAorLS0t IGEvc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKKysrKyBiL3NhbmRib3gv bGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCitAQCAtMTYsNyArMTYsNyBAQAorICNpZiBk ZWZpbmVkKF9fbWlwc19fKQorIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3Qg ZGVmaW5pdGlvbgorICNpbmNsdWRlIDxzdGRkZWYuaD4KKy0jZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiBkZWZpbmVkKF9fR0xJQkNf XykKKyAvLyBNYW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBwYzY0CisgdHlwZWRlZiB1bnNpZ25l ZCBsb25nIGxvbmcgZ3JlZ190OworICNlbmRpZgorQEAgLTM2MSwxMSArMzYxLDExIEBAIHR5cGVk ZWYgc3RydWN0IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7CisgI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVE SVRfQVJDSF9QUEM2NAorICNlbmRpZgorIAorLSNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3Jl ZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQorKyNkZWZpbmUgU0VDQ09N UF9SRUcoX2N0eCwgX3JlZykgKCgoc3RydWN0IHB0X3JlZ3MgKikoX2N0eCktPnVjX21jb250ZXh0 LnJlZ3MpLT5ncHJbX3JlZ10pCisgCisgI2RlZmluZSBTRUNDT01QX1JFU1VMVChfY3R4KSBTRUND T01QX1JFRyhfY3R4LCAzKQorICNkZWZpbmUgU0VDQ09NUF9TWVNDQUxMKF9jdHgpIFNFQ0NPTVBf UkVHKF9jdHgsIDApCistI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpIChfY3R4KS0+dWNfbWNvbnRl eHQucmVncy0+bmlwCisrI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpICgoc3RydWN0IHB0X3JlZ3Mg KikoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MpLT5uaXAKKyAjZGVmaW5lIFNFQ0NPTVBfUEFSTTEo X2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKKyAjZGVmaW5lIFNFQ0NPTVBfUEFSTTIoX2N0eCkg U0VDQ09NUF9SRUcoX2N0eCwgNCkKKyAjZGVmaW5lIFNFQ0NPTVBfUEFSTTMoX2N0eCkgU0VDQ09N UF9SRUcoX2N0eCwgNSkKK2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNj YWxsLmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYworaW5kZXggZDUzYTdm ZjU2Li5jMjkwZjBlOTIgMTAwNjQ0CistLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5 c2NhbGwuY2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYworQEAg LTQ5OSw5ICs0OTksOSBAQCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJf dCByZXRfdmFsLCB1Y29udGV4dF90KiBjdHgpIHsKKyAgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0 byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKKyAgIGlmIChyZXRf dmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQwOTUpIHsKKyAgICAgcmV0X3ZhbCA9IC1yZXRfdmFs OworLSAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7CisrICAgICgo c3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250ZXh0LnJlZ3MpLT5jY3IgfD0gKDEgPDwgMjgp OworICAgfSBlbHNlIHsKKy0gICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgJj0gfigxIDw8 IDI4KTsKKysgICAgKChzdHJ1Y3QgcHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNj ciAmPSB+KDEgPDwgMjgpOworICAgfQorICNlbmRpZgorICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9 IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Fi c2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oIHRoaXJkX3Bh cnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oCitp bmRleCBjZGNlOWJmOC4uNzNkNzdkZGEgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9hYnNlaWwt Y3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAorKysrIGIvdGhpcmRf cGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrLmgK K0BAIC00Niw3ICs0Niw3IEBACisgCisgLy8gVGhlIGZvbGxvd2luZyBwbGF0Zm9ybXMgaGF2ZSBh biBpbXBsZW1lbnRhdGlvbiBvZiBhIGhhcmR3YXJlIGNvdW50ZXIuCisgI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwg XAorLSAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBcCisrICAo KGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wcGNfXykpICYmIGRlZmluZWQoX19H TElCQ19fKSkgfHwgXAorICAgZGVmaW5lZChfTV9JWDg2KSB8fCBkZWZpbmVkKF9NX1g2NCkKKyAj ZGVmaW5lIEFCU0xfSEFWRV9VTlNDQUxFRF9DWUNMRUNMT0NLX0lNUExFTUVOVEFUSU9OIDEKKyAj ZWxzZQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbiB0aGlyZF9wYXJ0 eS9icmVha3BhZC9CVUlMRC5nbgoraW5kZXggZjlhNjBlMzcuLjI1ZjNhMGI3IDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFr cGFkL0JVSUxELmduCitAQCAtNjM3LDYgKzYzNyw3IEBAIGlmIChpc19saW51eCB8fCBpc19hbmRy b2lkKSB7CisgCisgICAgIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisgICAgICAgICBk ZWZpbmVzID0gWyAiSEFWRV9HRVRDT05URVhUIiBdCisrICAgICAgICBsaWJzICs9IFsgInVjb250 ZXh0IiBdCisgICAgIH0gZWxzZSB7CisgICAgICAgICBzb3VyY2VzICs9IFsKKyAgICAgICAgICAg ICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0LlMiCitkaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCitp bmRleCAwM2FmZWM3YS4uMDI2NGVjZjEgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5m by5jYworKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKK0BAIC0yNzMsNiArMjczLDkgQEAg dm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0 IHsKKyAKKyAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgCisrI2luY2x1ZGUgPGFzbS9l bGYuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworIHVpbnRwdHJfdCBUaHJlYWRJbmZv OjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7CisgICAgIHJldHVybiBtY29udGV4dC5n cF9yZWdzW1BUX05JUF07CisgfQorQEAgLTI5MCw5ICsyOTMsOSBAQCB2b2lkIFRocmVhZEluZm86 OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgeworICAgICBvdXQtPmN0 ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKKyAgICAgCisgICAgIGZvciAoaW50IGkgPSAw OyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCistICAgICAgICBv dXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKKysgICAgICAg IG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3Jl Z3MpW2ldOworIAorLSAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdz W05GUFJFRy0xXTsKKysgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZt Y29udGV4dC5mcF9yZWdzKVtFTEZfTkZQUkVHLTFdOworIAorICAgICBmb3IgKGludCBpID0gMDsg aSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQorICAgICAgICAgb3V0LT52 ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0gXAorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCitpbmRleCAxMDkwNDcwZi4uZTU4 MDIzM2QgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKKysrKyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYworQEAgLTI1Nyw2ICsyNTcsOSBAQCB2b2lkIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250 ZXh0X3QgKnVjKSB7CisgCisgI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIAorKyNpbmNs dWRlIDxhc20vZWxmLmg+CisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyB1aW50cHRyX3Qg VUNvbnRleHRSZWFkZXI6OkdldFN0YWNrUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1Yykgewor ICAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdf U1BdOworIH0KK0BAIC0yODAsOSArMjgzLDkgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQ VUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywKKyAgICAg b3V0LT5jdHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOworICAgICAKKyAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkr KykKKy0gICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQu ZnBfcmVnc1tpXTsKKysgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2 NF90ICopJnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtpXTsKKyAKKy0gICAgb3V0LT5mbG9hdF9z YXZlLmZwc2NyID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOworKyAgICBvdXQt PmZsb2F0X3NhdmUuZnBzY3IgPSAoKHVpbnQ2NF90ICopJnVjLT51Y19tY29udGV4dC5mcF9yZWdz KVtFTEZfTkZQUkVHLTFdOworIAorICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNB VkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQorICAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZl X3ZyW2ldID0KK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YworaW5kZXggNWE3YWI1MGMuLmVlOGI4NThjIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVy LmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK0BAIC0xMDUsNiArMTA1LDExIEBACisgI2Rl ZmluZSBQUl9TRVRfUFRSQUNFUiAweDU5NjE2ZDYxCisgI2VuZGlmCisgCisrLyogbXVzbCBoYWNr LCBjYW4ndCBpbmNsdWRlIGFzbS9wdHJhY2UuaCBhcyB0aGF0IGNhdXNlcyBjb25mbGljdHMgKi8K KysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAhZGVmaW5lZChQVF9OSVApCisrI2RlZmlu ZSBQVF9OSVAgMzIKKysjZW5kaWYKKysKKyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkIHsKKyAK KyBuYW1lc3BhY2UgeworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKK2luZGV4IDhlMzM1YTA5Li5iMmEw ZjE1NSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKK0BAIC00NjksNyArNDY5LDcgQEAg c3RydWN0IE1Db250ZXh0NjQgeworICAgU2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7Cisg ICBTaWduYWxGbG9hdENvbnRleHQ2NCAgZnBfcmVnczsKKyAgIFNpZ25hbFZlY3RvckNvbnRleHQ2 NCAqdl9yZWdzOworLSAgaW50NjRfdCB2bXhfcmVzZXJ2ZVs2OV07CisrICBpbnQ2NF90IHZteF9y ZXNlcnZlWzEwMV07CisgfTsKKyAKKyBzdHJ1Y3QgQ29udGV4dFRyYWl0czY0IDogcHVibGljIFRy YWl0czY0IHsKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9s aW51eC90aHJlYWRfaW5mby5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvdGhyZWFkX2luZm8uaAoraW5kZXggZGVhMGQxZjMuLmIyMDNlNWIyIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCisr KysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZv LmgKK0BAIC0zMCw2ICszMCw3IEBACisgCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQorICNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5o PgorICNlbmRpZgorIAorIG5hbWVzcGFjZSBjcmFzaHBhZCB7CitkaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lz Y2FsbF9zdXBwb3J0LmgKK2luZGV4IDk5NTVjZTQ0Li40YzFjYzQ4OCAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIGIvdGhpcmRfcGFydHkv bHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCitAQCAtNDIxNiw5ICs0MjE2LDEzIEBAIHN0cnVj dCBrZXJuZWxfc3RhdGZzIHsKKyAgICAgfQorICAgI2VuZGlmCisgICAjaWYgZGVmaW5lZChfX05S X2ZzdGF0YXQ2NCkKKysgICAgLy8gbXVzbCBkb2VzICNkZWZpbmUgZnN0YXRhdDY0IGZzdGF0YXQK KysgICAgI3VuZGVmIGZzdGF0YXQ2NAorICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsNChpbnQsICAg ZnN0YXRhdDY0LCAgICAgICAgaW50LCAgIGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKiwgICAgICBwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga2Vy bmVsX3N0YXQ2NCAqLCAgIGIsICAgIGludCwgICBmKQorKyAgICAvLyBzZXQgaXQgYmFjayBsaWtl IGl0IHdhcworKyAgICAjZGVmaW5lIGZzdGF0YXQ2NCBmc3RhdGF0CisgICAjZW5kaWYKKyAgICNp ZiBkZWZpbmVkKF9fTlJfd2FpdHBpZCkKKyAgICAgLy8gd2FpdHBpZCBpcyBwb2x5ZmlsbGVkIGJl bG93IHdoZW4gbm90IGF2YWlsYWJsZS4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLTgzLWdjYy0xMC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTgzLWdjYy0xMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTc0YjQ5Y2RlNzAKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS04My1nY2MtMTAucGF0Y2gK QEAgLTAsMCArMSw2NCBAQAorRnJvbSBlNDczZjQxMjg0Y2NjOGZhNGJjNDYyMmQwODcxOTRiMThh MWVjMjNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8 c3RoYTA5QGdvb2dsZW1haWwuY29tPgorRGF0ZTogVHVlLCA3IEFwciAyMDIwIDE2OjM3OjEwICsw MDAwCitTdWJqZWN0OiBbUEFUQ0hdIEdDQzogZml4IGluY2x1ZGVzIGZvciBnY2MtMTAKKworLS0t CisgY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91bmQvbnRwX2JhY2tncm91bmRzLmggICAg ICAgICAgICAgIHwgMSArCisgdGhpcmRfcGFydHkvd2VicnRjL2NhbGwvcnR4X3JlY2VpdmVfc3Ry ZWFtLmggICAgICAgICAgICAgICAgICAgIHwgMSArCisgLi4uL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlv X3Byb2Nlc3NpbmcvYWVjMy9jbG9ja2RyaWZ0X2RldGVjdG9yLmggIHwgMSArCisgdWkvZ2Z4L2xp bnV4L2RybV91dGlsX2xpbnV4LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MiArKworIDUgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9j aHJvbWUvYnJvd3Nlci9zZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3VuZHMuaCBiL2Nocm9t ZS9icm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oCitpbmRleCA3YWZj MGEyLi5lYTU4MThlIDEwMDY0NAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91 bmQvbnRwX2JhY2tncm91bmRzLmgKKysrKyBiL2Nocm9tZS9icm93c2VyL3NlYXJjaC9iYWNrZ3Jv dW5kL250cF9iYWNrZ3JvdW5kcy5oCitAQCAtNiw2ICs2LDcgQEAKKyAjZGVmaW5lIENIUk9NRV9C Uk9XU0VSX1NFQVJDSF9CQUNLR1JPVU5EX05UUF9CQUNLR1JPVU5EU19IXworIAorICNpbmNsdWRl IDxhcnJheT4KKysjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAKKyBjbGFzcyBHVVJMOworIAorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9jYWxsL3J0eF9yZWNlaXZlX3N0cmVhbS5oIGIvdGhp cmRfcGFydHkvd2VicnRjL2NhbGwvcnR4X3JlY2VpdmVfc3RyZWFtLmgKK2luZGV4IDhmZmE0NDAu LjExM2E4MTYgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS93ZWJydGMvY2FsbC9ydHhfcmVjZWl2 ZV9zdHJlYW0uaAorKysrIGIvdGhpcmRfcGFydHkvd2VicnRjL2NhbGwvcnR4X3JlY2VpdmVfc3Ry ZWFtLmgKK0BAIC0xMiw2ICsxMiw3IEBACisgI2RlZmluZSBDQUxMX1JUWF9SRUNFSVZFX1NUUkVB TV9IXworIAorICNpbmNsdWRlIDxtYXA+CisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgCisgI2luY2x1 ZGUgImNhbGwvcnRwX3BhY2tldF9zaW5rX2ludGVyZmFjZS5oIgorIAorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjMy9jbG9ja2RyaWZ0 X2RldGVjdG9yLmggYi90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9hdWRpb19wcm9jZXNzaW5n L2FlYzMvY2xvY2tkcmlmdF9kZXRlY3Rvci5oCitpbmRleCAyMjUyOGM5Li42OWU2MjRlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vzc2luZy9hZWMz L2Nsb2NrZHJpZnRfZGV0ZWN0b3IuaAorKysrIGIvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMv YXVkaW9fcHJvY2Vzc2luZy9hZWMzL2Nsb2NrZHJpZnRfZGV0ZWN0b3IuaAorQEAgLTEyLDYgKzEy LDcgQEAKKyAjZGVmaW5lIE1PRFVMRVNfQVVESU9fUFJPQ0VTU0lOR19BRUMzX0NMT0NLRFJJRlRf REVURUNUT1JfSF8KKyAKKyAjaW5jbHVkZSA8YXJyYXk+CisrI2luY2x1ZGUgPGNzdGRkZWY+Cisg CisgbmFtZXNwYWNlIHdlYnJ0YyB7CisgCitkaWZmIC0tZ2l0IGEvdWkvZ2Z4L2xpbnV4L2RybV91 dGlsX2xpbnV4LmggYi91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguaAoraW5kZXggODZmZjJl Yi4uOTkwZjEyYyAxMDA2NDQKKy0tLSBhL3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5oCisr KysgYi91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguaAorQEAgLTcsNiArNyw4IEBACisgCisg I2luY2x1ZGUgInVpL2dmeC9idWZmZXJfdHlwZXMuaCIKKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4K KysKKyBuYW1lc3BhY2UgdWkgeworIAorIGludCBHZXRGb3VyQ0NGb3JtYXRGcm9tQnVmZmVyRm9y bWF0KGdmeDo6QnVmZmVyRm9ybWF0IGZvcm1hdCk7CistLSAKKzIuMjQuMQorCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtf b3B0aW9uYWwucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY2N2I0YTdhMDBjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW1fYXRrX29w dGlvbmFsLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKKy0tLSBhL2J1aWxkL2NvbmZpZy91 aS5nbmkJMjAyMC0wNi0yNSAwMDozOToyOC4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMjAtMDgt MjIgMTg6MDE6MDEuMTgyNzQ5NzI2ICswMjAwCitAQCAtNDcsOCArNDcsMTAgQEAKKyAjIE1ha2Ug c3VyZSBnbGliIGlzIG5vdCB1c2VkIGlmIGJ1aWxkaW5nIGZvciBDaHJvbWVPUy9DaHJvbWVjYXN0 CisgYXNzZXJ0KCF1c2VfZ2xpYiB8fCAoaXNfbGludXggJiYgIWlzX2Nocm9tZW9zICYmICFpc19j aHJvbWVjYXN0KSkKKyAKKy0jIFdoZXRoZXIgdG8gdXNlIGF0aywgdGhlIEFjY2Vzc2liaWxpdHkg VG9vbEtpdCBsaWJyYXJ5CistdXNlX2F0ayA9IGlzX2Rlc2t0b3BfbGludXggJiYgIWlzX2Nocm9t ZWNhc3QgJiYgdXNlX2dsaWIKKytkZWNsYXJlX2FyZ3MoKSB7CisrICAjIFdoZXRoZXIgdG8gdXNl IGF0aywgdGhlIEFjY2Vzc2liaWxpdHkgVG9vbEtpdCBsaWJyYXJ5CisrICB1c2VfYXRrID0gaXNf ZGVza3RvcF9saW51eCAmJiAhaXNfY2hyb21lY2FzdCAmJiB1c2VfZ2xpYgorK30KKyAjID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICMgICBQTEVBU0UgRE8g Tk9UIEFERCBNT1JFIEZMQUdTIFRPIFRISVMgRklMRQorICMgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1mZm1wZWctNC4zLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJv bjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZmZtcGVnLTQuMy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmFiYjg4NmFiOTkKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1mZm1wZWctNC4zLnBh dGNoCkBAIC0wLDAgKzEsMjEgQEAKK2RpZmYgLS1naXQgYS9tZWRpYS9iYXNlL21lZGlhLmNjIGIv bWVkaWEvYmFzZS9tZWRpYS5jYworaW5kZXggYzI4MmVlNDlhMDMuLmEyOThiNDBjNzliIDEwMDY0 NAorLS0tIGEvbWVkaWEvYmFzZS9tZWRpYS5jYworKysrIGIvbWVkaWEvYmFzZS9tZWRpYS5jYwor QEAgLTE0LDYgKzE0LDcgQEAKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvbGlieXV2L2luY2x1ZGUv bGlieXV2LmgiCisgCisgI2lmIEJVSUxERkxBRyhFTkFCTEVfRkZNUEVHKQorKyNpbmNsdWRlIDxs aW1pdHM+CisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2ZmbXBlZy9mZm1wZWdfZmVhdHVyZXMuaCIg IC8vIG5vZ25jaGVjaworIGV4dGVybiAiQyIgeworICNpbmNsdWRlIDxsaWJhdnV0aWwvY3B1Lmg+ CitAQCAtNDEsNyArNDIsNyBAQCBjbGFzcyBNZWRpYUluaXRpYWxpemVyIHsKKyAKKyAjaWYgQlVJ TERGTEFHKFVTRV9BTExPQ0FUT1JfU0hJTSkKKyAgICAgLy8gUmVtb3ZlIGFsbG9jYXRpb24gbGlt aXQgZnJvbSBmZm1wZWcsIHNvIGNhbGxzIGdvIGRvd24gdG8gc2hpbSBsYXllci4KKy0gICAgYXZf bWF4X2FsbG9jKDApOworKyAgICBhdl9tYXhfYWxsb2Moc3RkOjpudW1lcmljX2xpbWl0czxzaXpl X3Q+OjptYXgoKSk7CisgI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX0FMTE9DQVRPUl9TSElNKQor IAorICNlbmRpZiAgLy8gQlVJTERGTEFHKEVOQUJMRV9GRk1QRUcpCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nY2Mtc2hhcmVkLnBhdGNoIGIv c3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ2NjLXNoYXJlZC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk4YjY4MzIyNDIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS1nY2Mtc2hhcmVkLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL2J1aWxkL3Rvb2xjaGFp bi9nY2NfdG9vbGNoYWluLmduaQkyMDE5LTExLTE5IDAyOjI3OjQzLjAwMDAwMDAwMCArMDEwMAor KysrIC0JMjAyMC0wNy0yMSAwMDo1OTowOS4yMDE0MjE0NjkgKzAyMDAKK0BAIC0zNzEsNyArMzcx LDcgQEAKKyAgICAgICAjIC5UT0MgZmlsZSwgb3ZlcndyaXRlIGl0LCBvdGhlcndpc2UsIGRvbid0 IGNoYW5nZSBpdC4KKyAgICAgICB0b2NmaWxlID0gc29maWxlICsgIi5UT0MiCisgCistICAgICAg bGlua19jb21tYW5kID0gIiRsZCAtc2hhcmVkIC1XbCwtc29uYW1lPVwiJHNvbmFtZVwiIHt7bGRm bGFnc319JHtleHRyYV9sZGZsYWdzfSAtbyBcIiR1bnN0cmlwcGVkX3NvZmlsZVwiIEBcIiRyc3Bm aWxlXCIiCisrICAgICAgbGlua19jb21tYW5kID0gIiRsZCAtc2hhcmVkIC1XbCwtc29uYW1lPVwi JHNvbmFtZVwiIHt7bGRmbGFnc319JHtleHRyYV9sZGZsYWdzfSAtbyBcIiR1bnN0cmlwcGVkX3Nv ZmlsZVwiIC1zaGFyZWQgQFwiJHJzcGZpbGVcIiIKKyAKKyAgICAgICAjIEdlbmVyYXRlIGEgbWFw IGZpbGUgdG8gYmUgdXNlZCBmb3IgYmluYXJ5IHNpemUgYW5hbHlzaXMuCisgICAgICAgIyBNYXAg ZmlsZSBhZGRzIH4xMCUgdG8gdGhlIGxpbmsgdGltZSBvbiBhIHo2MjAuCitAQCAtNDUwLDcgKzQ1 MCw3IEBACisgICAgICAgICB1bnN0cmlwcGVkX3NvZmlsZSA9IHNvZmlsZQorICAgICAgIH0KKyAK Ky0gICAgICBjb21tYW5kID0gIiRsZCAtc2hhcmVkIHt7bGRmbGFnc319JHtleHRyYV9sZGZsYWdz fSAtbyBcIiR1bnN0cmlwcGVkX3NvZmlsZVwiIC1XbCwtc29uYW1lPVwiJHNvbmFtZVwiIEBcIiRy c3BmaWxlXCIiCisrICAgICAgY29tbWFuZCA9ICIkbGQgLXNoYXJlZCB7e2xkZmxhZ3N9fSR7ZXh0 cmFfbGRmbGFnc30gLW8gXCIkdW5zdHJpcHBlZF9zb2ZpbGVcIiAtV2wsLXNvbmFtZT1cIiRzb25h bWVcIiAtc2hhcmVkIEBcIiRyc3BmaWxlXCIiCisgCisgICAgICAgaWYgKGRlZmluZWQoaW52b2tl ci5zdHJpcCkpIHsKKyAgICAgICAgIHN0cmlwX2NvbW1hbmQgPSAiJHtpbnZva2VyLnN0cmlwfSAt byBcIiRzb2ZpbGVcIiBcIiR1bnN0cmlwcGVkX3NvZmlsZVwiIgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJjX21hbGxvYy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTU3MjBiOTNjZTcKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS1saWJjX21hbGxvYy5wYXRjaApAQCAtMCwwICsxLDI0IEBACistLS0gYS9iYXNlL3Byb2Nlc3Mv bWVtb3J5X2xpbnV4LmNjCTIwMjAtMDktMjEgMjA6Mzk6MDEuMDAwMDAwMDAwICswMjAwCisrKysg LQkyMDIwLTEwLTAyIDIwOjIzOjE3Ljk3MjEwODgxNSArMDIwMAorQEAgLTIzLDYgKzIzLDEyIEBA CisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3NyYy9ncGVyZnRvb2xz L3RjbWFsbG9jLmgiCisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoTElCQ19HTElCQykKKytleHRl cm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qgc2l6ZSk7CisrfQor KyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBzaXplX3QgZ19vb21fc2l6ZSA9IDBV OworQEAgLTEzNSw3ICsxNDEsNyBAQAorICAgICAoIWRlZmluZWQoTElCQ19HTElCQykgJiYgIUJV SUxERkxBRyhVU0VfVENNQUxMT0MpKQorICAgKnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKKyAjZWxp ZiBkZWZpbmVkKExJQkNfR0xJQkMpICYmICFCVUlMREZMQUcoVVNFX1RDTUFMTE9DKQorLSAgKnJl c3VsdCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7CisrICAqcmVzdWx0ID0gOjpfX2xpYmNfbWFsbG9j KHNpemUpOworICNlbGlmIEJVSUxERkxBRyhVU0VfVENNQUxMT0MpCisgICAqcmVzdWx0ID0gdGNf bWFsbG9jX3NraXBfbmV3X2hhbmRsZXIoc2l6ZSk7CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1za2lhLWhhcm1vbnkucGF0Y2gg Yi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1za2lhLWhhcm1vbnku cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFjYjhhZWJmMjQw Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tc2tpYS1oYXJtb255LnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBhL3RoaXJkX3Bh cnR5L3NraWEvc3JjL3BvcnRzL1NrRm9udEhvc3RfRnJlZVR5cGUuY3BwLm9yaWcJMjAxOS0wNy0x OSAxMTowODozNC43NzA5NzI2NjUgKzAwMDAKKysrKyBiL3RoaXJkX3BhcnR5L3NraWEvc3JjL3Bv cnRzL1NrRm9udEhvc3RfRnJlZVR5cGUuY3BwCTIwMTktMDctMTkgMTE6MDg6NDQuMjc0NDQyMDY1 ICswMDAwCitAQCAtMTI4LDkgKzEyOCw5IEBAIHB1YmxpYzoKKyAgICAgICAgIDogZkdldFZhckRl c2lnbkNvb3JkaW5hdGVzKG51bGxwdHIpCisgICAgICAgICAsIGZHZXRWYXJBeGlzRmxhZ3MobnVs bHB0cikKKyAgICAgICAgICwgZkxpYnJhcnkobnVsbHB0cikKKy0gICAgICAgICwgZklzTENEU3Vw cG9ydGVkKGZhbHNlKQorKyAgICAgICAgLCBmSXNMQ0RTdXBwb3J0ZWQodHJ1ZSkKKyAgICAgICAg ICwgZkxpZ2h0SGludGluZ0lzWU9ubHkoZmFsc2UpCistICAgICAgICAsIGZMQ0RFeHRyYSgwKQor KyAgICAgICAgLCBmTENERXh0cmEoMikKKyAgICAgeworICAgICAgICAgaWYgKEZUX05ld19MaWJy YXJ5KCZnRlRNZW1vcnksICZmTGlicmFyeSkpIHsKKyAgICAgICAgICAgICByZXR1cm47CmRpZmYg LS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS10b29sY2hh aW4taG9zdC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVt LXRvb2xjaGFpbi1ob3N0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi4wZGFjZTI2MWEwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLXRvb2xjaGFpbi1ob3N0LnBhdGNoCkBAIC0wLDAgKzEsMTEg QEAKKy0tLSBzcmMvYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCTIwMjAt MDctMjEgMTc6MzY6MzQuMDY0NzQ4MjYxICswMjAwCisrKysgLQkyMDIwLTA3LTIxIDE3OjM5OjAz LjExNTc0MDUyMiArMDIwMAorQEAgLTM1LDcgKzM1LDcgQEAKKyAgIGV4dHJhX2xkZmxhZ3MgPSBn ZXRlbnYoIkJVSUxEX0xERkxBR1MiKQorIAorICAgdG9vbGNoYWluX2FyZ3MgPSB7CistICAgIGN1 cnJlbnRfY3B1ID0gY3VycmVudF9jcHUKKysgICAgY3VycmVudF9jcHUgPSBob3N0X2NwdQorICAg ICBjdXJyZW50X29zID0gY3VycmVudF9vcworICAgfQorIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXh4eC1wcGM2NGxl LWxpYnZweC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTll ZTljYTJhZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS14eHgtcHBjNjRsZS1saWJ2cHgucGF0Y2gKQEAgLTAsMCArMSw4MSBAQAor VXNlcyBnZW5lcmljIHRhcmdldCBmb3Igbm93LiBUbyB1c2UgcHBjNjRsZSwgY2hhbmdlIC0tdGFy Z2V0IHRvIHBwYzY0bGUtZ251CithbmQgYWRkIC0tZW5hYmxlLXZzeCwgYW5kIGNoYW5nZSBnZW5l cmljIHRvIHBwYyBmb3IgdGhlIHJ0Y2QgaGVhZGVyLgorCitGcm9tIDE4ZTZjNWM1NWNmYWUwY2Zi NDU4ZDgyMTBkN2JjNzA5MzYwYTBlOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBx NjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCA5IFNlcCAyMDIwIDE5OjA4OjI1 ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGVuYWJsZSBnZW5lcmF0aW9uIG9mIHBwYzY0IGxpYnZw eCBiaXRzCisKK3RoaXMgZG9lc24ndCB1cGRhdGUgdGhlIGduaSBmaWxlLCB0aGF0J3MgZG9uZSBm cm9tCit0aGUgdGVtcGxhdGUgYnkgcnVubmluZyB0aGUgYXBwcm9wcmlhdGUgc2NyaXB0cworLS0t CisgdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduICAgICAgICB8IDQgKysrKworIHRoaXJkX3Bh cnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2ggfCA5ICsrKysrKysrKworIDIgZmlsZXMgY2hhbmdl ZCwgMTMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xpYnZweC9CVUlM RC5nbiB0aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KK2luZGV4IDcxOThlNTkuLjMzMDA0ODUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KKysrKyBiL3RoaXJkX3Bh cnR5L2xpYnZweC9CVUlMRC5nbgorQEAgLTMzNiw2ICszMzYsOCBAQCBzdGF0aWNfbGlicmFyeSgi bGlidnB4IikgeworICAgICB9IGVsc2UgeworICAgICAgIHNvdXJjZXMgPSBsaWJ2cHhfc3Jjc19h cm02NAorICAgICB9CisrICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysg ICAgc291cmNlcyA9IGxpYnZweF9zcmNzX3BwYzY0CisgICB9CisgCisgICBjb25maWdzIC09IFsg Ii8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KK0BAIC00MDEsNiArNDAz LDggQEAgc3RhdGljX2xpYnJhcnkoImxpYnZwOXJjIikgeworICAgICB9IGVsc2UgeworICAgICAg IHNvdXJjZXMgPSBsaWJ2cHhfc3Jjc19hcm02NAorICAgICB9CisrICB9IGVsc2UgaWYgKGN1cnJl bnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgc291cmNlcyA9IGxpYnZweF9zcmNzX3BwYzY0Cisg ICB9CisgICBzb3VyY2VzICs9IFsgIi8vdGhpcmRfcGFydHkvbGlidnB4L3NvdXJjZS9saWJ2cHgv dnA5L3JhdGVjdHJsX3J0Yy5jYyIgXQorICAgc291cmNlcyArPSBbICIvL3RoaXJkX3BhcnR5L2xp YnZweC9zb3VyY2UvbGlidnB4L3ZwOS9yYXRlY3RybF9ydGMuaCIgXQorZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoIHRoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0 ZV9nbmkuc2gKK2luZGV4IGJjZjg0YjAuLjhhM2Y0ZjEgMTAwNzU1CistLS0gYS90aGlyZF9wYXJ0 eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoCisrKysgYi90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJh dGVfZ25pLnNoCitAQCAtMzYxLDYgKzM2MSw3IEBAIGdlbl9jb25maWdfZmlsZXMgbGludXgvYXJt LW5lb24taGlnaGJkICItLXRhcmdldD1hcm12Ny1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zCisg Z2VuX2NvbmZpZ19maWxlcyBsaW51eC9hcm02NC1oaWdoYmQgIi0tdGFyZ2V0PWFybXY4LWxpbnV4 LWdjYyAke2FsbF9wbGF0Zm9ybXN9ICR7SElHSEJEfSIKKyBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4 L21pcHNlbCAiLS10YXJnZXQ9bWlwczMyLWxpbnV4LWdjYyAke2FsbF9wbGF0Zm9ybXN9IgorIGdl bl9jb25maWdfZmlsZXMgbGludXgvbWlwczY0ZWwgIi0tdGFyZ2V0PW1pcHM2NC1saW51eC1nY2Mg JHthbGxfcGxhdGZvcm1zfSIKKytnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L3BwYzY0ICItLXRhcmdl dD1nZW5lcmljLWdudSAkSElHSEJEICR7YWxsX3BsYXRmb3Jtc30iCisgZ2VuX2NvbmZpZ19maWxl cyBsaW51eC9nZW5lcmljICItLXRhcmdldD1nZW5lcmljLWdudSAkSElHSEJEICR7YWxsX3BsYXRm b3Jtc30iCisgZ2VuX2NvbmZpZ19maWxlcyB3aW4vYXJtNjQgIi0tdGFyZ2V0PWFybTY0LXdpbjY0 LXZzMTUgJHthbGxfcGxhdGZvcm1zfSAke0hJR0hCRH0iCisgZ2VuX2NvbmZpZ19maWxlcyB3aW4v aWEzMiAiLS10YXJnZXQ9eDg2LXdpbjMyLXZzMTQgJHthbGxfcGxhdGZvcm1zfSAke3g4Nl9wbGF0 Zm9ybXN9IgorQEAgLTM4Niw2ICszODcsNyBAQCBsaW50X2NvbmZpZyBsaW51eC9hcm0tbmVvbi1o aWdoYmQKKyBsaW50X2NvbmZpZyBsaW51eC9hcm02NC1oaWdoYmQKKyBsaW50X2NvbmZpZyBsaW51 eC9taXBzZWwKKyBsaW50X2NvbmZpZyBsaW51eC9taXBzNjRlbAorK2xpbnRfY29uZmlnIGxpbnV4 L3BwYzY0CisgbGludF9jb25maWcgbGludXgvZ2VuZXJpYworIGxpbnRfY29uZmlnIHdpbi9hcm02 NAorIGxpbnRfY29uZmlnIHdpbi9pYTMyCitAQCAtNDE1LDYgKzQxNyw3IEBAIGdlbl9ydGNkX2hl YWRlciBsaW51eC9hcm0tbmVvbi1oaWdoYmQgYXJtdjcKKyBnZW5fcnRjZF9oZWFkZXIgbGludXgv YXJtNjQtaGlnaGJkIGFybXY4CisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L21pcHNlbCBtaXBzZWwK KyBnZW5fcnRjZF9oZWFkZXIgbGludXgvbWlwczY0ZWwgbWlwczY0ZWwKKytnZW5fcnRjZF9oZWFk ZXIgbGludXgvcHBjNjQgZ2VuZXJpYworIGdlbl9ydGNkX2hlYWRlciBsaW51eC9nZW5lcmljIGdl bmVyaWMKKyBnZW5fcnRjZF9oZWFkZXIgd2luL2FybTY0IGFybXY4CisgZ2VuX3J0Y2RfaGVhZGVy IHdpbi9pYTMyIHg4NiAiJHtyZXF1aXJlX3NzZTJ9IgorQEAgLTUwMCw2ICs1MDMsMTIgQEAgaWYg WyAteiAkT05MWV9DT05GSUdTIF07IHRoZW4KKyAKKyAgIGVjaG8gIk1JUFM2NCBzb3VyY2UgbGlz dCBpcyBpZGVudGljYWwgdG8gTUlQUyBzb3VyY2UgbGlzdC4gTm8gbmVlZCB0byBnZW5lcmF0ZSBp dC4iCisgCisrICBlY2hvICJHZW5lcmF0ZSBwcGM2NCBzb3VyY2UgbGlzdC4iCisrICBjb25maWc9 JChwcmludF9jb25maWdfYmFzaWMgbGludXgvcHBjNjQpCisrICBtYWtlX2NsZWFuCisrICBtYWtl IGxpYnZweF9zcmNzLnR4dCB0YXJnZXQ9bGlicyAkY29uZmlnID4gL2Rldi9udWxsCisrICBjb252 ZXJ0X3NyY3NfdG9fcHJvamVjdF9maWxlcyBsaWJ2cHhfc3Jjcy50eHQgbGlidnB4X3NyY3NfcHBj NjQKKysKKyAgIGVjaG8gIkdlbmVyYXRlIE5hQ2wgc291cmNlIGxpc3QuIgorICAgY29uZmlnPSQo cHJpbnRfY29uZmlnX2Jhc2ljIG5hY2wpCisgICBtYWtlX2NsZWFuCistLSAKKzIuMjguMAorCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS14eHgt cHBjNjRsZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0teHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uODZiYWQwZGYzM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS14eHgtcHBjNjRsZS1zdXBwb3J0LnBh dGNoCkBAIC0wLDAgKzEsMzY1NSBAQAorY29tbWl0IGU3OTQ0YzE2MmNhMTNiMmMzMGIxODBjMDZm OTE3ZjQ1NjQzYjhjY2EKK0F1dGhvcjogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6 ICAgVHVlIEF1ZyA0IDE5OjU3OjQ4IDIwMjAgKzAyMDAKKworICAgIHBwYzY0bGUgc3VwcG9ydAor CitkaWZmIC0tZ2l0IGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weSBidWlsZC9kb3du bG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKK2luZGV4IDI4NmE5MmEyNy4uZWMzNmE4NWQzIDEwMDc1 NQorLS0tIGEvYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5CisrKysgYi9idWlsZC9k b3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKK0BAIC0xMyw2ICsxMywxMCBAQCBpbXBvcnQgc3lz CisgCisgCisgZGVmIE1haW4oYXJncyk6CisrICAjIElmIGBkaXNhYmxlX25hY2w9MWAgaXMgaW4g R1lQX0RFRklORVMsIGV4aXQKKysgIGlmICdkaXNhYmxlX25hY2w9MScgaW4gb3MuZW52aXJvbi5n ZXQoJ0dZUF9ERUZJTkVTJywgJycpOgorKyAgICByZXR1cm4gMAorKworICAgc2NyaXB0X2RpciA9 IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKQorICAgc3JjX2RpciA9 IG9zLnBhdGguZGlybmFtZShzY3JpcHRfZGlyKQorICAgbmFjbF9kaXIgPSBvcy5wYXRoLmpvaW4o c3JjX2RpciwgJ25hdGl2ZV9jbGllbnQnKQorZGlmZiAtLWdpdCBjaHJvbWUvaW5zdGFsbGVyL2xp bnV4L0JVSUxELmduIGNocm9tZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KK2luZGV4IGIxMDFi MGNiMi4uOWZkNWE3NjE3IDEwMDY0NAorLS0tIGEvY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlM RC5nbgorKysrIGIvY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgorQEAgLTkyLDggKzky LDYgQEAgcGFja2FnaW5nX2ZpbGVzID0gcGFja2FnaW5nX2ZpbGVzX2JpbmFyaWVzICsgWworICAg ICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLW1pbWUiLAorICAgICAgICAgICAg ICAgICAgICAgIiRyb290X291dF9kaXIveGRnLXNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAg ICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMvZW4tVVMucGFrIiwKKy0gICAgICAgICAgICAgICAg ICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvbWFuaWZlc3QuanNvbiIsCistICAgICAgICAg ICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL3ByZWxvYWRlZF9kYXRhLnBiIiwK KyAgICAgICAgICAgICAgICAgICBdCisgCisgYWN0aW9uX2ZvcmVhY2goImNhbGN1bGF0ZV9kZWJf ZGVwZW5kZW5jaWVzIikgeworQEAgLTMyOSw3ICszMjcsNiBAQCBncm91cCgiaW5zdGFsbGVyX2Rl cHMiKSB7CisgICAgICI6dGhlbWVfZmlsZXMiLAorICAgICAiLy9jaHJvbWUiLAorICAgICAiLy9j aHJvbWU6cGFja2VkX3Jlc291cmNlcyIsCistICAgICIvL2Nocm9tZS9icm93c2VyL3Jlc291cmNl cy9tZWRpYS9tZWlfcHJlbG9hZDpjb21wb25lbnQiLAorICAgICAiLy9zYW5kYm94L2xpbnV4OmNo cm9tZV9zYW5kYm94IiwKKyAgICAgIi8vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvaGFu ZGxlcjpjcmFzaHBhZF9oYW5kbGVyIiwKKyAgIF0KK2RpZmYgLS1naXQgc2FuZGJveC9mZWF0dXJl cy5nbmkgc2FuZGJveC9mZWF0dXJlcy5nbmkKK2luZGV4IDA5MjgwZDM1Zi4uNDI1MTQxNTdmIDEw MDY0NAorLS0tIGEvc2FuZGJveC9mZWF0dXJlcy5nbmkKKysrKyBiL3NhbmRib3gvZmVhdHVyZXMu Z25pCitAQCAtMTEsNiArMTEsNyBAQCBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL25hY2wvY29uZmln LmduaSIpCisgdXNlX3NlY2NvbXBfYnBmID0gKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpICYmCisg ICAgICAgICAgICAgICAgICAgKGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1ID09 ICJ4NjQiIHx8CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1 cnJlbnRfY3B1ID09ICJhcm02NCIgfHwKKy0gICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUg PT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIikKKysgICAgICAgICAgICAg ICAgICAgY3VycmVudF9jcHUgPT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVs IiB8fAorKyAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAicHBjNjQiKQorIAorIHVz ZV9zZWNjb21wX2JwZiA9IHVzZV9zZWNjb21wX2JwZiB8fCBpc19uYWNsX25vbnNmaQorZGlmZiAt LWdpdCBzYW5kYm94L2xpbnV4L0JVSUxELmduIHNhbmRib3gvbGludXgvQlVJTEQuZ24KK2luZGV4 IGMyNzM1MWY5YS4uOTE0MWUxMjM5IDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51eC9CVUlMRC5n bgorKysrIGIvc2FuZGJveC9saW51eC9CVUlMRC5nbgorQEAgLTQwNyw2ICs0MDcsOCBAQCBjb21w b25lbnQoInNhbmRib3hfc2VydmljZXMiKSB7CisgCisgc291cmNlX3NldCgic2FuZGJveF9zZXJ2 aWNlc19oZWFkZXJzIikgeworICAgc291cmNlcyA9IFsKKysgICAgInN5c3RlbV9oZWFkZXJzL3Bw YzY0X2xpbnV4X3N5c2NhbGxzLmgiLAorKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhf dWNvbnRleHQuaCIsCisgICAgICJzeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5o IiwKKyAgICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIiwKKyAgICAgInN5 c3RlbV9oZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIiwKK2RpZmYgLS1naXQgc2FuZGJveC9s aW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmggc2FuZGJveC9saW51eC9icGZfZHNs L2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKK2luZGV4IDMxMzUxMWYyMi4uMGNhM2EzMjZmIDEwMDY0 NAorLS0tIGEvc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKKysr KyBiL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCitAQCAtNTYs NiArNTYsMTMgQEAKKyAjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBfX05SX3N5c2NhbGxzCisg I2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKKyAKKysjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrCisrI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KKysjZGVmaW5lIE1J Tl9TWVNDQUxMIDB1CisrI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgMzg2dQorKyNkZWZpbmUg TUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCisrCisgI2Vsc2UKKyAjZXJyb3IgIlVuc3Vw cG9ydGVkIGFyY2hpdGVjdHVyZSIKKyAjZW5kaWYKK2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9i cGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFj cm9zLmgKK2luZGV4IDFhNDA3Yjk1Mi4uYTZhZWM1NDRlIDEwMDY0NAorLS0tIGEvc2FuZGJveC9s aW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKKysrKyBiL3NhbmRib3gvbGludXgvYnBmX2Rz bC9zZWNjb21wX21hY3Jvcy5oCitAQCAtMTYsNiArMTYsOSBAQAorICNpZiBkZWZpbmVkKF9fbWlw c19fKQorIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlvbgor ICNpbmNsdWRlIDxzdGRkZWYuaD4KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrLy8g TWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAorK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBs b25nIGdyZWdfdDsKKyAjZW5kaWYKKyAjZW5kaWYKKyAKK0BAIC0zNDYsNiArMzQ5LDUxIEBAIHN0 cnVjdCByZWdzX3N0cnVjdCB7CisgI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9yZWdzKSAoX3Jl Z3MpLnJlZ3NbM10KKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChfcmVncykucmVn c1s0XQorICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5yZWdzWzVdCisr CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+ CisrCisrdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsKKysKKysjaWZkZWYgQVJD SF9DUFVfTElUVExFX0VORElBTgorKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBD NjRMRQorKyNlbHNlCisrI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9QUEM2NAorKyNl bmRpZgorKworKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKChfY3R4KS0+dWNfbWNv bnRleHQucmVncy0+Z3ByW19yZWddKQorKworKyNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkg U0VDQ09NUF9SRUcoX2N0eCwgMykKKysjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUND T01QX1JFRyhfY3R4LCAwKQorKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21j b250ZXh0LnJlZ3MtPm5pcAorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMShfY3R4KSBTRUNDT01QX1JF RyhfY3R4LCAzKQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMihfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCA0KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA1KQor KyNkZWZpbmUgU0VDQ09NUF9QQVJNNChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA2KQorKyNkZWZp bmUgU0VDQ09NUF9QQVJNNShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA3KQorKyNkZWZpbmUgU0VD Q09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4KQorKworKyNkZWZpbmUgU0VDQ09N UF9OUl9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgbnIpKQorKyNkZWZp bmUgU0VDQ09NUF9BUkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBh cmNoKSkKKysjZGVmaW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBcCisrICAob2Zmc2V0b2Yoc3RydWN0 IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDQpCisrI2RlZmluZSBT RUNDT01QX0lQX0xTQl9JRFggXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0 YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyAwKQorKyNkZWZpbmUgU0VDQ09NUF9BUkdfTVNCX0lE WChucikgXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJncykgKyA4 ICogKG5yKSArIDQpCisrI2RlZmluZSBTRUNDT01QX0FSR19MU0JfSURYKG5yKSBcCisrICAob2Zm c2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgMCkKKysK KysjZGVmaW5lIFNFQ0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAoX3JlZ3MpLmdwclszXQorKyNkZWZp bmUgU0VDQ09NUF9QVF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3MpLmdwclswXQorKyNkZWZpbmUgU0VD Q09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5uaXAKKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEo X3JlZ3MpIChfcmVncykuZ3ByWzNdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk0yKF9yZWdzKSAo X3JlZ3MpLmdwcls0XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMyhfcmVncykgKF9yZWdzKS5n cHJbNV0KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVncykuZ3ByWzZdCisr I2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLmdwcls3XQorKyNkZWZpbmUg U0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5ncHJbOF0KKysKKyAjZWxzZQorICNlcnJv ciBVbnN1cHBvcnRlZCB0YXJnZXQgcGxhdGZvcm0KKyAKK2RpZmYgLS1naXQgc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYyBzYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCitpbmRleCBhNmQyYzBkZmIuLjM3 ZmRjMTc5YSAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9i YXNlbGluZV9wb2xpY3kuY2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVy cy9iYXNlbGluZV9wb2xpY3kuY2MKK0BAIC04OCw3ICs4OCw4IEBAIGJvb2wgSXNCYXNlbGluZVBv bGljeVdhdGNoZWQoaW50IHN5c25vKSB7CisgICAgICAgICAgU3lzY2FsbFNldHM6OklzUHJjdGwo c3lzbm8pIHx8CisgICAgICAgICAgU3lzY2FsbFNldHM6OklzUHJvY2Vzc0dyb3VwT3JTZXNzaW9u KHN5c25vKSB8fAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgICAgICAgU3lzY2FsbFNl dHM6OklzU29ja2V0Q2FsbChzeXNubykgfHwKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2FybV9f KQorQEAgLTIxMCw3ICsyMTEsNyBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50 IGZzX2RlbmllZF9lcnJubywKKyAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQo X19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKKyAgIGlmIChzeXNubyA9PSBfX05SX21tYXApCisgICAgIHJldHVybiBSZXN0cmlj dE1tYXBGbGFncygpOworICNlbmRpZgorQEAgLTIyOCw3ICsyMjksNyBAQCBSZXN1bHRFeHByIEV2 YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJubywKKyAgICAgcmV0dXJuIFJlc3Ry aWN0UHJjdGwoKTsKKyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykK KysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAg aWYgKHN5c25vID09IF9fTlJfc29ja2V0cGFpcikgeworICAgICAvLyBPbmx5IGFsbG93IEFGX1VO SVgsIFBGX1VOSVguIENyYXNoIGlmIGFueXRoaW5nIGVsc2UgaXMgc2Vlbi4KKyAgICAgc3RhdGlj X2Fzc2VydChBRl9VTklYID09IFBGX1VOSVgsCitAQCAtMjY4LDcgKzI2OSw4IEBAIFJlc3VsdEV4 cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVkX2Vycm5vLAorICAgfQorIAorICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBpZiAoU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChz eXNubykpCisgICAgIHJldHVybiBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7CisgI2VuZGlm CitkaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9w b2xpY3lfdW5pdHRlc3QuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2Vs aW5lX3BvbGljeV91bml0dGVzdC5jYworaW5kZXggZmMzNjE4N2M5Li4xYWZmYzkxODkgMTAwNjQ0 CistLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5 X3VuaXR0ZXN0LmNjCisrKysgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFz ZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCitAQCAtMjkxLDggKzI5MSwxMCBAQCBURVNUX0JBU0VM SU5FX1NJR1NZUyhfX05SX3RpbWVyX2NyZWF0ZSkKKyAjaWYgIWRlZmluZWQoX19hYXJjaDY0X18p CisgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9ldmVudGZkKQorIFRFU1RfQkFTRUxJTkVfU0lH U1lTKF9fTlJfaW5vdGlmeV9pbml0KQorKyNpZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIFRF U1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfdnNlcnZlcikKKyAjZW5kaWYKKysjZW5kaWYKKyAKKyAj aWYgZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhZGVmaW5lZChPU19DSFJPTUVPUykKKyBCUEZfVEVT VF9DKEJhc2VsaW5lUG9saWN5LCBGdXRleEVJTlZBTCwgQmFzZWxpbmVQb2xpY3kpIHsKK2RpZmYg LS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVy c19yZXN0cmljdGlvbnMuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKK2luZGV4IGY1MTkxNWVkYy4uY2EyZjRmMTA2 IDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf cGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitAQCAtMzYsNyAr MzYsOCBAQAorICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5o PgorICNpZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChPU19DSFJPTUVPUykgJiYgIWRl ZmluZWQoX19hcm1fXykgJiYgXAorLSAgICAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmlu ZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkKKysgICAgIWRlZmluZWQoX19hYXJjaDY0X18pICYm ICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmIFwKKysgICAgIWRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAvLyBBbHNvIGluY2x1ZGUgYXNtL3B0cmFjZS1hYmkuaCBzaW5jZSBwdHJh Y2UuaCBpbiBvbGRlciBsaWJjIChmb3IgaW5zdGFuY2UKKyAvLyB0aGUgb25lIGluIFVidW50dSAx Ni4wNCBMVFMpIGlzIG1pc3NpbmcgUFRSQUNFX0dFVF9USFJFQURfQVJFQS4KKyAvLyBhc20vcHRy YWNlLWFiaS5oIGRvZXNuJ3QgZXhpc3Qgb24gYXJtMzIgYW5kIFBUUkFDRV9HRVRfVEhSRUFEX0FS RUEgaXNuJ3QKK0BAIC00NSw2ICs0NiwxMSBAQAorICNlbmRpZgorICNlbmRpZiAgLy8gIU9TX05B Q0xfTk9OU0ZJCisgCisrLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9m IHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCisrI2lmZGVmIF9f cG93ZXJwYzY0X18KKysjaW5jbHVkZSA8dGVybWlvcy5oPgorKyNlbmRpZgorKworICNpZiBkZWZp bmVkKE9TX0FORFJPSUQpCisgCisgI2lmICFkZWZpbmVkKEZfRFVQRkRfQ0xPRVhFQykKK0BAIC0x MDcsNiArMTEzLDE1IEBAIGlubGluZSBib29sIElzQXJjaGl0ZWN0dXJlTWlwcygpIHsKKyAjZW5k aWYKKyB9CisgCisraW5saW5lIGJvb2wgSXNBcmNoaXRlY3R1cmVQUEM2NCgpIHsKKysjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKyAgcmV0dXJuIHRydWU7CisrI2Vsc2UKKysgIHJldHVybiBm YWxzZTsKKysjZW5kaWYKKyt9CisrCisrCisgLy8gVWJ1bnR1J3MgdmVyc2lvbiBvZiBnbGliYyBo YXMgYSByYWNlIGNvbmRpdGlvbiBpbiBzZW1fcG9zdCB0aGF0IGNhbiBjYXVzZQorIC8vIGl0IHRv IGNhbGwgZnV0ZXgoMikgd2l0aCBib2d1cyBvcCBhcmd1bWVudHMuIFRvIHdvcmthcm91bmQgdGhp cywgd2UgbmVlZAorIC8vIHRvIGFsbG93IHRob3NlIGZ1dGV4KDIpIGNhbGxzIHRvIGZhaWwgd2l0 aCBFSU5WQUwsIGluc3RlYWQgb2YgY3Jhc2hpbmcgdGhlCitAQCAtMjQ4LDYgKzI2Myw4IEBAIFJl c3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCkgeworICAgdWludDY0X3Qga09MYXJnZUZp bGVGbGFnID0gT19MQVJHRUZJTEU7CisgICBpZiAoSXNBcmNoaXRlY3R1cmVYODZfNjQoKSB8fCBJ c0FyY2hpdGVjdHVyZUkzODYoKSB8fCBJc0FyY2hpdGVjdHVyZU1pcHMoKSkKKyAgICAga09MYXJn ZUZpbGVGbGFnID0gMDEwMDAwMDsKKysgIGVsc2UgaWYgKElzQXJjaGl0ZWN0dXJlUFBDNjQoKSkK KysgICAga09MYXJnZUZpbGVGbGFnID0gMDIwMDAwMDsKKyAKKyAgIGNvbnN0IEFyZzxpbnQ+IGNt ZCgxKTsKKyAgIGNvbnN0IEFyZzxsb25nPiBsb25nX2FyZygyKTsKK0BAIC0yNjIsMTQgKzI3OSwy MyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpIHsKKyAgICAgICAgICAgICAg IEZfU0VUTEtXLAorICAgICAgICAgICAgICAgRl9HRVRMSywKKyAgICAgICAgICAgICAgIEZfRFVQ RkQsCistICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMpLAorLSAgICAgICAgICAgICBBbGxv dygpKQorKyAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVDCisrI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysvLyBPbiBQUEM2NCwgRl9TRVRMSywgRl9HRVRMSywgRl9TRVRMS1cgYXJlIGRl ZmluZWQgYXMgdGhlIDY0LWJpdCB2YXJpYW50cworKy8vIGJ1dCBnbGliYyB3aWxsIHNvbWV0aW1l cyBzdGlsbCB1c2UgdGhlIDMyLWJpdCB2ZXJzaW9ucy4gQWxsb3cgYm90aC4KKysgICAgICAgICAg ICAgICwKKysgICAgICAgICAgICAgIDUsIC8qIEZfR0VUTEsgKDMyKSAqLworKyAgICAgICAgICAg ICAgNiwgLyogRl9TRVRMSyAoMzIpICovCisrICAgICAgICAgICAgICA3ICAvKiBGX1NFVExLVyAo MzIpICovCisrI2VuZGlmCisrICAgICAgICAgICAgICApLAorKyAgICAgICAgICAgIEFsbG93KCkp CisgICAgICAgLkNhc2UoRl9TRVRGTCwKKyAgICAgICAgICAgICBJZigobG9uZ19hcmcgJiB+a0Fs bG93ZWRNYXNrKSA9PSAwLCBBbGxvdygpKS5FbHNlKENyYXNoU0lHU1lTKCkpKQorICAgICAgIC5E ZWZhdWx0KENyYXNoU0lHU1lTKCkpOworIH0KKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIFJlc3VsdEV4cHIgUmVzdHJpY3RTb2Nr ZXRjYWxsQ29tbWFuZCgpIHsKKyAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGFyZSB1bmFibGUgdG8g cmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRlciB0bworICAgLy8gc29ja2V0cGFpcigyKS4gV2hp bHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQsIGl0J3Mgbm90ZXdvcnRoeSB0aGF0IHZlcnkKK0BA IC00MTgsNyArNDQ0LDcgQEAgUmVzdWx0RXhwciBSZXN0cmljdFBybGltaXRUb0dldHJsaW1pdChw aWRfdCB0YXJnZXRfcGlkKSB7CisgUmVzdWx0RXhwciBSZXN0cmljdFB0cmFjZSgpIHsKKyAgIGNv bnN0IEFyZzxpbnQ+IHJlcXVlc3QoMCk7CisgICByZXR1cm4gU3dpdGNoKHJlcXVlc3QpLkNBU0VT KCgKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9f KSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICAgICAgUFRSQUNFX0dFVFJFR1MsCisg ICAgICAgICBQVFJBQ0VfR0VURlBSRUdTLAorICAgICAgICAgUFRSQUNFX0dFVF9USFJFQURfQVJF QSwKK2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf cGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCitpbmRleCBiYTQyODlmMDUuLjlh NGQ1YWIyZCAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKKysrKyBiL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKK0BAIC00 OCw3ICs0OCw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RN cHJvdGVjdEZsYWdzKCk7CisgLy8gT19OT05CTE9DSyB8IE9fU1lOQyB8IE9fTEFSR0VGSUxFIHwg T19DTE9FWEVDIHwgT19OT0FUSU1FLgorIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4 cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCk7CisgCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAvLyBSZXN0cmljdCBzb2NrZXRjYWxs KDIpIHRvIG9ubHkgYWxsb3cgc29ja2V0cGFpcigyKSwgc2VuZCgyKSwgcmVjdigyKSwKKyAvLyBz ZW5kdG8oMiksIHJlY3Zmcm9tKDIpLCBzaHV0ZG93bigyKSwgc2VuZG1zZygyKSBhbmQgcmVjdm1z ZygyKS4KKyBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0U29ja2V0 Y2FsbENvbW1hbmQoKTsKK2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfc2V0cy5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmNjCitpbmRleCBkMzY5M2ZkNzguLmQ0OTJjZjk0YiAxMDA2NDQKKy0tLSBhL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKKysrKyBiL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC0yOSw3 ICsyOSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHN5c25vKSB7 CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXR0aW1lb2ZkYXk6CisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgXAorLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9f TlJfdGltZToKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKK0BAIC00MSwxMiArNDIsMTQg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgc3lzbm8pIHsKKyAgICAg Y2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcDogIC8vIFBhcmFtZXRlcnMgZmlsdGVyZWQgYnkgUmVz dHJpY3RDbG9ja0lEKCkuCisgICAgIGNhc2UgX19OUl9jbG9ja19zZXR0aW1lOiAgICAvLyBQcml2 aWxlZ2VkLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkg fHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9mdGltZTog IC8vIE9ic29sZXRlLgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8g UHJpdmlsZWdlZC4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc3Rp bWU6CisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CitAQCAtMTEyLDcgKzExNSw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2ZhY2Nl c3NhdDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICAgICBjYXNlIF9fTlJfZmNobW9k YXQ6CisgICAgIGNhc2UgX19OUl9mY2hvd25hdDogIC8vIFNob3VsZCBiZSBjYWxsZWQgY2hvd25h dCA/CistI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKysj aWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OiAgLy8gZnN0YXRhdCgp LiBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCitAQCAtMTMxLDcgKzEzNCw3IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX21l bWZkX2NyZWF0ZToKKyAgICAgY2FzZSBfX05SX21rZGlyYXQ6CisgICAgIGNhc2UgX19OUl9ta25v ZGF0OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9vbGRsc3RhdDoKKyAgICAgY2Fz ZSBfX05SX29sZHN0YXQ6CisgI2VuZGlmCitAQCAtMTQ1LDcgKzE0OCw4IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05S X3N0YXRmczogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisr ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3N0YXRmczY0OgorICNl bmRpZgorICAgICBjYXNlIF9fTlJfc3ltbGlua2F0OgorQEAgLTE1NSw3ICsxNTksOCBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl90 cnVuY2F0ZTY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfdW5saW5rYXQ6CistI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBf X05SX3V0aW1lOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAgLy8gTmV3Lgor QEAgLTE3NCw3ICsxNzksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVt QWNjZXNzVmlhRmQoaW50IHN5c25vKSB7CisgI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7Cisg Ly8gVE9ETyhqbG4pOiB0aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdyYWNlZnVsbHkgYXMgd2VsbCAo bW92ZWQgYmVsb3cpLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6ICAvLyBFUEVSTSBub3QgYSB2 YWxpZCBlcnJuby4KKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKK0BAIC0xODcsMTEg KzE5MywxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlh RmQoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9mbG9jazogICAgICAvLyBFUEVSTSBub3Qg YSB2YWxpZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6ICAgIC8vIEdpdmUgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCisgI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfZnN0YXRmczY0OgorICNlbmRp ZgorICAgICBjYXNlIF9fTlJfZnN5bmM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKy0j aWYgZGVmaW5lZChfX2kzODZfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6CisgI2VuZGlmCisgI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAorQEAgLTE5OSw2ICsyMDYsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRG aWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9zeW5jX2Zp bGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZWxpZiBkZWZpbmVkKF9f YXJtX18pCisgICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90 IGEgdmFsaWQgZXJybm8uCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBjYXNl IF9fTlJfc3luY19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2Vu ZGlmCisgICAgIGRlZmF1bHQ6CisgICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTIyNCw3ICsyMzMs OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQg c3lzbm8pIHsKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2dldGRlbnRzNjQ6ICAvLyBFUEVSTSBu b3QgYSB2YWxpZCBlcnJuby4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9f TlJfcmVhZGRpcjoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKK0BAIC0yNjUsNyArMjc1 LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHZXRTaW1wbGVJZChpbnQgc3lzbm8pIHsKKyBib29s IFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2UoaW50IHN5c25vKSB7CisgICBz d2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9jYXBzZXQ6CistI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2Ug X19OUl9pb3Blcm06ICAvLyBJbnRlbCBwcml2aWxlZ2UuCisgICAgIGNhc2UgX19OUl9pb3BsOiAg ICAvLyBJbnRlbCBwcml2aWxlZ2UuCisgI2VuZGlmCitAQCAtMzE2LDcgKzMyNiw4IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5nKGludCBzeXNubykgeworICAgICBj YXNlIF9fTlJfcnRfc2lncmV0dXJuOgorICAgICBjYXNlIF9fTlJfcnRfc2lndGltZWR3YWl0Ogor ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp CisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBf X05SX3NpZ2FjdGlvbjoKKyAgICAgY2FzZSBfX05SX3NpZ3Byb2NtYXNrOgorICAgICBjYXNlIF9f TlJfc2lncmV0dXJuOgorQEAgLTMzMiw3ICszNDMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Fs bG93ZWRTaWduYWxIYW5kbGluZyhpbnQgc3lzbm8pIHsKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05S X3NpZ25hbGZkNDoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl9zaWdwZW5kaW5nOgorICAgICBjYXNlIF9fTlJfc2lnc3VzcGVuZDoK KyAjZW5kaWYKK0BAIC0zNTYsNyArMzY4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2Vk T3BlcmF0aW9uT25GZChpbnQgc3lzbm8pIHsKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2R1cDM6 CisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3No dXRkb3duOgorICNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworQEAgLTM5MCw3ICs0MDIsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNu bykgeworICAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKKyAgICAgY2FzZSBfX05SX3dhaXQ0Ogor ICAgICBjYXNlIF9fTlJfd2FpdGlkOgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl93 YWl0cGlkOgorICNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworQEAgLTQwNyw3ICs0MTksNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNu bykgeworICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorICAgICBjYXNl IF9fTlJfdW5zaGFyZToKKy0jaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFy Y2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3Zmb3JrOgorICNlbmRp ZgorICAgICBkZWZhdWx0OgorQEAgLTQ1Niw3ICs0NjgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKKyAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgZGVmYXVsdDoKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRf XykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgICBjYXNlIF9fTlJfc29ja2V0cGFpcjogIC8vIFdlIHdpbGwgd2FudCB0byBpbnNwZWN0IGl0 cyBhcmd1bWVudC4KKyAjZW5kaWYKKyAgICAgICByZXR1cm4gZmFsc2U7CitAQCAtNDY2LDcgKzQ3 OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U29ja2V0KGludCBz eXNubykgeworIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50 IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgI2lmIGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2FjY2VwdDoKKyAgICAgY2FzZSBfX05SX2FjY2Vw dDQ6CisgICAgIGNhc2UgX19OUl9iaW5kOgorQEAgLTQ4MSw3ICs0OTMsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgeworIH0KKyAKKyAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIC8vIEJpZyBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwg Zm9yIHNvY2tldHMuCisgYm9vbCBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKGludCBzeXNubykg eworICAgc3dpdGNoIChzeXNubykgeworQEAgLTQ5NSw3ICs1MDgsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7CisgfQorICNlbmRpZgorIAorLSNpZiBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIGJvb2wgU3lzY2Fs bFNldHM6OklzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubykgeworICAgc3dpdGNo IChzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0cGVlcm5hbWU6CitAQCAtNTIwLDcgKzUzNCw3 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUFjY2VzcyhpbnQgc3lz bm8pIHsKKyAgICAgY2FzZSBfX05SX21pbmNvcmU6CisgICAgIGNhc2UgX19OUl9tbG9ja2FsbDoK KyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX21t YXA6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgXAorQEAgLTU1MCw3ICs1NjQsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5l cmFsSW8oaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9s c2VlazoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCist ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAg IGNhc2UgX19OUl9fbGxzZWVrOgorICNlbmRpZgorICNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykK K0BAIC01NjIsMjYgKzU3NywyOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFs SW8oaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9yZWFkdjoKKyAgICAgY2FzZSBfX05SX3By ZWFkNjQ6CisgI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8 IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfcmVjdjoKKyAj ZW5kaWYKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRl ZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9f TlJfcmVjdmZyb206ICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KKyAgICAgY2FzZSBfX05SX3Jl Y3Ztc2c6ICAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCisgI2VuZGlmCistI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNh c2UgX19OUl9zZWxlY3Q6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9fbmV3c2VsZWN0OgorICNlbmRpZgorICNpZiBkZWZp bmVkKF9fYXJtX18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3NlbmQ6CisgI2VuZGlmCisgI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3NlbmRtc2c6ICAvLyBD b3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgorICAgICBjYXNlIF9fTlJfc2VuZHRvOiAgIC8vIENv dWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCisgI2VuZGlmCitAQCAtNjM4LDcgKzY1NSw4IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGludCBzeXNubykgeworICAg ICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIF9fTlJfZ2V0cHJpb3JpdHk6CisgI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp IHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfbmljZToK KyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3NldHByaW9yaXR5OgorQEAgLTY1MCw3ICs2NjgsOCBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlcihpbnQgc3lzbm8pIHsK KyBib29sIFN5c2NhbGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBzeXNubykgeworICAgc3dp dGNoIChzeXNubykgeworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgICAgY2FzZSBfX05SX2JkZmx1c2g6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9rZXhl Y19sb2FkOgorQEAgLTY2Niw3ICs2ODUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FkbWluT3Bl cmF0aW9uKGludCBzeXNubykgeworIAorIGJvb2wgU3lzY2FsbFNldHM6OklzS2VybmVsTW9kdWxl KGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9jcmVhdGVf bW9kdWxlOgorICAgICBjYXNlIF9fTlJfZ2V0X2tlcm5lbF9zeW1zOiAgLy8gU2hvdWxkIEVOT1NZ Uy4KKyAgICAgY2FzZSBfX05SX3F1ZXJ5X21vZHVsZToKK0BAIC02OTksNyArNzE5LDggQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNGc0NvbnRyb2woaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9z d2Fwb2ZmOgorICAgICBjYXNlIF9fTlJfc3dhcG9uOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl91bW91bnQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl91bW91bnQy OgorQEAgLTcxNSw3ICs3MzYsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc051bWEoaW50IHN5c25v KSB7CisgICAgIGNhc2UgX19OUl9nZXRjcHU6CisgICAgIGNhc2UgX19OUl9tYmluZDoKKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJj aDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX21pZ3JhdGVf cGFnZXM6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9tb3ZlX3BhZ2VzOgorQEAgLTc0NCwxNCAr NzY1LDE1IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsUHJvY2Vzc0Vudmlyb25tZW50KGlu dCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfYWNjdDogIC8v IFByaXZpbGVnZWQuCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQor KyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAg IGNhc2UgX19OUl9nZXRybGltaXQ6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19hcm1fXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl91Z2V0cmxpbWl0 OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl91bGlt aXQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9nZXRydXNhZ2U6CitAQCAtNzg1LDcgKzgwNyw3 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsU3lzdGVtU3RhdHVzKGludCBzeXNubykgewor ICNlbmRpZgorICAgICBjYXNlIF9fTlJfc3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgor LSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9vbGR1bmFtZToKKyAgICAgY2FzZSBfX05S X29sZG9sZHVuYW1lOgorICNlbmRpZgorQEAgLTg0Nyw4ICs4NjksMTYgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pIHsKKyB9CisgI2VuZGlmCisgCisr Lyogc2hpdHR5IGhhY2sgYXJvdW5kIFZvaWQncyA0LjE5IGtlcm5lbCBoZWFkZXJzIG1pc3Npbmcg dGhvc2UgbnVtYmVycyAqLworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICFkZWZpbmVk KF9fTlJfc2htZ2V0KQorKyNkZWZpbmUgX19OUl9zaG1nZXQgMzk1CisrI2RlZmluZSBfX05SX3No bWN0bCAzOTYKKysjZGVmaW5lIF9fTlJfc2htYXQgMzk3CisrI2RlZmluZSBfX05SX3NobWR0IDM5 OAorKyNlbmRpZgorKworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8 fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBkZWZpbmVk KF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCisg Ly8gVGhlc2UgZ2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBhbmQgYnlwYXNzIHRoZSBz ZXR1aWQgc2FuZGJveC4KKyBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTaGFyZWRNZW1vcnko aW50IHN5c25vKSB7CitAQCAtODgwLDcgKzkxMCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU3lz dGVtVk1lc3NhZ2VRdWV1ZShpbnQgc3lzbm8pIHsKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCisg Ym9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WSXBjKGludCBzeXNubykgeworICAgc3dpdGNoIChz eXNubykgeworQEAgLTkwMCw3ICs5MzEsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FueVN5c3Rl bVYoaW50IHN5c25vKSB7CisgICByZXR1cm4gSXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKHN5c25vKSB8 fCBJc1N5c3RlbVZTZW1hcGhvcmVzKHN5c25vKSB8fAorICAgICAgICAgIElzU3lzdGVtVlNoYXJl ZE1lbW9yeShzeXNubyk7CisgI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgcmV0dXJuIElz U3lzdGVtVklwYyhzeXNubyk7CisgI2VuZGlmCisgfQorQEAgLTk1Myw3ICs5ODUsOCBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0ZhTm90aWZ5KGludCBzeXNubykgeworIGJvb2wgU3lzY2FsbFNldHM6 OklzVGltZXIoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19O Ul9nZXRpdGltZXI6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2FsYXJtOgorICNlbmRpZgorICAgICBjYXNlIF9f TlJfc2V0aXRpbWVyOgorQEAgLTEwMTIsMTggKzEwNDUsMjIgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNNaXNjKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfc3luY2ZzOgorICAgICBjYXNlIF9f TlJfdmhhbmd1cDoKKyAvLyBUaGUgc3lzdGVtIGNhbGxzIGJlbG93IGFyZSBub3QgaW1wbGVtZW50 ZWQuCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgICAgY2FzZSBfX05SX2Fmc19zeXNjYWxsOgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9icmVhazoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJf Z2V0cG1zZzoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9f TlJfZ3R0eToKKyAgICAgY2FzZSBfX05SX2lkbGU6CisgICAgIGNhc2UgX19OUl9sb2NrOgorQEAg LTEwMzEsMjAgKzEwNjgsMjIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykg eworICAgICBjYXNlIF9fTlJfcHJvZjoKKyAgICAgY2FzZSBfX05SX3Byb2ZpbDoKKyAjZW5kaWYK Ky0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9f KQorICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgICAgY2FzZSBfX05SX3N0dHk6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX194ODZf NjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl90dXhjYWxsOgorICNlbmRpZgorLSNpZiAhZGVmaW5lZChfX2FhcmNo NjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisgICAgIGNhc2UgX19OUl92c2VydmVyOgorICNlbmRpZgorICAgICAgIHJldHVybiB0cnVl OworZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9z ZXRzLmggc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCitp bmRleCA5MjM1MzNlYzkuLjQxMWY3MmFjZCAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAorKysrIGIvc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCitAQCAtNDMsMTMgKzQzLDE0IEBAIGNsYXNz IFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKKyAgIHN0YXRpYyBib29sIElzRGVuaWVkR2V0 T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKTsKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KKyAgIHN0YXRp YyBib29sIElzU29ja2V0Q2FsbChpbnQgc3lzbm8pOworICNlbmRpZgorIAorICNpZiBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg XAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBzdGF0aWMgYm9vbCBJc05ldHdvcmtTb2NrZXRJ bmZvcm1hdGlvbihpbnQgc3lzbm8pOworICNlbmRpZgorIAorQEAgLTc2LDcgKzc3LDcgQEAgY2xh c3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgeworICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1W U2VtYXBob3JlcyhpbnQgc3lzbm8pOworICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p IHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfNjRfQklUUykpCisgICAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9y aXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgorICAgc3RhdGljIGJvb2wgSXNTeXN0 ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNubyk7CitAQCAtODgsNyArODksOCBAQCBjbGFzcyBTQU5E Qk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7CisgI2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCisgICBz dGF0aWMgYm9vbCBJc1N5c3RlbVZJcGMoaW50IHN5c25vKTsKKyAjZW5kaWYKK2RpZmYgLS1naXQg c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjIHNhbmRib3gvbGludXgvc2VjY29t cC1icGYvc3lzY2FsbC5jYworaW5kZXggZTQ3ZTk4YmY1Li5kNTNhN2ZmNTYgMTAwNjQ0CistLS0g YS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKKysrKyBiL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYworQEAgLTE4LDcgKzE4LDcgQEAgbmFtZXNwYWNlIHNh bmRib3ggeworIG5hbWVzcGFjZSB7CisgCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlM WSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCistICAgIGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpCisrICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8 IGRlZmluZWQgKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKyAvLyBOdW1iZXIgdGhhdCdzIG5vdCBj dXJyZW50bHkgdXNlZCBieSBhbnkgTGludXgga2VybmVsIEFCSXMuCisgY29uc3QgaW50IGtJbnZh bGlkU3lzY2FsbE51bWJlciA9IDB4MzUxZDM7CisgI2Vsc2UKK0BAIC0zMTAsMTIgKzMxMCw1NiBA QCBhc20oLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlbGwgdGhlIGtlcm5lbCBleGFjdGx5IHdo ZXJlIHdlIG1hZGUgYQorICAgICAvLyBFbnRlciB0aGUga2VybmVsCisgICAgICJzdmMgMFxuIgor ICAgICAiMjpyZXRcbiIKKysgICAgIi5jZmlfZW5kcHJvY1xuIgorKyAgICAiLnNpemUgU3lzY2Fs bEFzbSwgLi1TeXNjYWxsQXNtXG4iCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAg ICAiLnRleHRcbiIKKysgICAgIi5hbGlnbiA0XG4iCisrICAgICIudHlwZSBTeXNjYWxsQXNtIEBm dW5jdGlvblxuIgorKyAgICAiU3lzY2FsbEFzbTpcbiIKKysgICAgIi5jZmlfc3RhcnRwcm9jXG4i CisrCisrICAgIC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCisrICAgICJjbXBkaSAzLCAwXG4i CisrICAgICJiZ3QgMmZcbiIKKysKKysgICAgLy8gTG9hZCBhZGRyZXNzIG9mIDNmIGludG8gcjMg YW5kIHJldHVybgorKyAgICAibWZsciAxMFxuIgorKyAgICAiYmwgMWZcbiIKKysgICAgIjE6IG1m bHIgM1xuIgorKyAgICAibXRsciAxMFxuIgorKyAgICAiYWRkaSAzLCAzLCA0KjEzXG4iCisrICAg ICJibHJcbiIKKysKKysgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJvbSBhcnJheSBpbnRvIHIzLTgK KysgICAgLy8gc2F2ZSBwYXJhbSAzIGluIHIxMAorKyAgICAiMjpcbiIKKysgICAgIm1yIDAsIDNc biIKKysgICAgImxkIDMsIDAoNClcbiIKKysgICAgImxkIDUsIDE2KDQpXG4iCisrICAgICJsZCA2 LCAyNCg0KVxuIgorKyAgICAibGQgNywgMzIoNClcbiIKKysgICAgImxkIDgsIDQwKDQpXG4iCisr ICAgICJsZCA0LCA4KDQpXG4iCisrICAgICJsaSA5LCAwXG4iCisrCisrICAgIC8vIEVudGVyIGtl cm5lbAorKyAgICAic2NcbiIKKysKKysgICAgLy8gTWFnaWMgcmV0dXJuIGFkZHJlc3MKKysgICAg IjM6XG4iCisrICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJuIHZhbHVlcyBhcmUgYWx3YXlz IHBvc2l0aXZlLgorKyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4gY3IwLlNPIGFuZCBuZWdhdGUg dXBvbiBlcnJvcgorKyAgICAiYmMgNCwgMywgNGZcbiIKKysgICAgIm5lZyAzLCAzXG4iCisrICAg ICI0OiBibHJcbiIKKysKKyAgICAgIi5jZmlfZW5kcHJvY1xuIgorICAgICAiLnNpemUgU3lzY2Fs bEFzbSwgLi1TeXNjYWxsQXNtXG4iCisgI2VuZGlmCisgICAgICk7ICAvLyBhc20KKyAKKy0jaWYg ZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKKyBleHRlcm4gIkMiIHsKKyBpbnRwdHJfdCBTeXNjYWxsQXNtKGludHB0 cl90IG5yLCBjb25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKKyB9CitAQCAtNDI5LDYgKzQ3Myw4IEBA IGludHB0cl90IFN5c2NhbGw6OkNhbGwoaW50IG5yLAorICAgICByZXQgPSBpbm91dDsKKyAgIH0K KyAKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBpbnRwdHJfdCByZXQgPSBTeXNj YWxsQXNtKG5yLCBhcmdzKTsKKyAjZWxzZQorICNlcnJvciAiVW5pbXBsZW1lbnRlZCBhcmNoaXRl Y3R1cmUiCisgI2VuZGlmCitAQCAtNDQ1LDggKzQ5MSwxOCBAQCB2b2lkIFN5c2NhbGw6OlB1dFZh bHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBjdHgpIHsKKyAgICAg Ly8gbmVlZHMgdG8gYmUgY2hhbmdlZCBiYWNrLgorICAgICByZXRfdmFsID0gLXJldF92YWw7Cisg ICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDE7CistICB9IGVsc2UKKysgIH0gZWxzZSB7CisgICAg IFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDA7CisrICB9CisrI2VuZGlmCisrI2lmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBz ZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKKysgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92 YWwgPj0gLTQwOTUpIHsKKysgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOworKyAgICBjdHgtPnVjX21j b250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7CisrICB9IGVsc2UgeworKyAgICBjdHgtPnVj X21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOworKyAgfQorICNlbmRpZgorICAgU0VD Q09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7CisgfQorZGlm ZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2Mgc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi90cmFwLmNjCitpbmRleCA5ODg0YmU4YmIuLjk4ZTQzNzFhYSAxMDA2NDQKKy0t LSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworKysrIGIvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi90cmFwLmNjCitAQCAtMjMyLDYgKzIzMiwyMCBAQCB2b2lkIFRyYXA6OlNp Z1N5cyhpbnQgbnIsIExpbnV4U2lnSW5mbyogaW5mbywgdWNvbnRleHRfdCogY3R4KSB7CisgICAg ICAgU2V0SXNJblNpZ0hhbmRsZXIoKTsKKyAgICAgfQorIAorKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrICAgIC8vIE9uIHBwYzY0K2dsaWJjLCBzb21lIHN5c2NhbGxzIHNlZW0gdG8gYWNj aWRlbnRhbGx5IG5lZ2F0ZSB0aGUgZmlyc3QKKysgICAgLy8gcGFyYW1ldGVyIHdoaWNoIGNhdXNl cyBjaGVja3MgYWdhaW5zdCBpdCB0byBmYWlsLiBGb3Igbm93LCBtYW51YWxseQorKyAgICAvLyBu ZWdhdGUgdGhlbSBiYWNrLgorKyAgICAvLyBUT0RPKHNoYXduQGFuYXN0YXMuaW8pOiBpbnZlc3Rp Z2F0ZSB0aGlzIGlzc3VlIGZ1cnRoZXIKKysgICAgYXV0byBuciA9IFNFQ0NPTVBfU1lTQ0FMTChj dHgpOworKyAgICBpZiAobnIgPT0gX19OUl9vcGVuYXQgfHwgbnIgPT0gX19OUl9ta2RpcmF0IHx8 IG5yID09IF9fTlJfZmFjY2Vzc2F0IHx8IG5yID09IF9fTlJfcmVhZGxpbmthdCB8fAorKyAgICAg ICAgbnIgPT0gX19OUl9yZW5hbWVhdCB8fCBuciA9PSBfX05SX3JlbmFtZWF0MiB8fCBuciA9PSBf X05SX25ld2ZzdGF0YXQgfHwgbnIgPT0gX19OUl91bmxpbmthdCkgeworKyAgICAgICAgaWYgKHN0 YXRpY19jYXN0PGludD4oU0VDQ09NUF9QQVJNMShjdHgpKSA+IDApIHsKKysgICAgICAgICAgICBT RUNDT01QX1BBUk0xKGN0eCkgPSAtU0VDQ09NUF9QQVJNMShjdHgpOworKyAgICAgICAgfQorKyAg ICB9CisrI2VuZGlmCisrCisgICAgIC8vIENvcHkgdGhlIHNlY2NvbXAtc3BlY2lmaWMgZGF0YSBp bnRvIGEgYXJjaF9zZWNjb21wX2RhdGEgc3RydWN0dXJlLiBUaGlzCisgICAgIC8vIGlzIHdoYXQg d2UgYXJlIHNob3dpbmcgdG8gVHJhcEZuYyBjYWxsYmFja3MgdGhhdCB0aGUgc3lzdGVtIGNhbGwK KyAgICAgLy8gZXZhbHVhdG9yIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc2FuZGJveC4KK2RpZmYgLS1n aXQgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYyBzYW5kYm94L2xpbnV4L3Nl cnZpY2VzL2NyZWRlbnRpYWxzLmNjCitpbmRleCBkN2I1ZDhjNDQuLjRhZGM2ZDBkNCAxMDA2NDQK Ky0tLSBhL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKKysrKyBiL3NhbmRi b3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKK0BAIC04MSw3ICs4MSw3IEBAIGJvb2wg Q2hyb290VG9TYWZlRW1wdHlEaXIoKSB7CisgICBwaWRfdCBwaWQgPSAtMTsKKyAgIGFsaWduYXMo MTYpIGNoYXIgc3RhY2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsKKyAjaWYgZGVmaW5lZChBUkNI X0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKKy0g ICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKysgICAgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgICAvLyBUaGUg c3RhY2sgZ3Jvd3MgZG93bndhcmQuCisgICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVv ZihzdGFja19idWYpOworICNlbHNlCitkaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VydmljZXMv c3lzY2FsbF93cmFwcGVycy5jYyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBl cnMuY2MKK2luZGV4IGZjZmQyYWExMi4uZjZlYjMyZmI3IDEwMDY0NAorLS0tIGEvc2FuZGJveC9s aW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCisrKysgYi9zYW5kYm94L2xpbnV4L3Nl cnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKK0BAIC01OCw3ICs1OCw3IEBAIGxvbmcgc3lzX2Ns b25lKHVuc2lnbmVkIGxvbmcgZmxhZ3MsCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KQor ICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCBj dGlkLCB0bHMpOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfWDg2KSB8fCBkZWZpbmVkKEFSQ0hf Q1BVX0FSTV9GQU1JTFkpIHx8IFwKKy0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkK KysgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCisgICAvLyBDT05GSUdfQ0xPTkVfQkFDS1dBUkRTIGRlZmluZWQuCisgICBy ZXR1cm4gc3lzY2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIHRscywg Y3RpZCk7CisgI2VuZGlmCitkaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIv YnJva2VyX3Byb2Nlc3MuY2Mgc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJv Y2Vzcy5jYworaW5kZXggODMyMWQyMzc5Li43ZTVhZDFkZTMgMTAwNjQ0CistLS0gYS9zYW5kYm94 L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCisrKysgYi9zYW5kYm94L2xp bnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCitAQCAtMTU3LDcgKzE1Nyw3IEBA IGJvb2wgQnJva2VyUHJvY2Vzczo6SXNTeXNjYWxsQWxsb3dlZChpbnQgc3lzbm8pIGNvbnN0IHsK KyAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQpCisgICAgIGNhc2UgX19OUl9mc3RhdGF0OgorICNl bmRpZgorLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCisr I2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfbmV3ZnN0YXRhdDoKKyAjZW5kaWYKKyAg ICAgICByZXR1cm4gIWZhc3RfY2hlY2tfaW5fY2xpZW50XyB8fCBhbGxvd2VkX2NvbW1hbmRfc2V0 Xy50ZXN0KENPTU1BTkRfU1RBVCk7CitkaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvbGludXhfc2VjY29tcC5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhf c2VjY29tcC5oCitpbmRleCBhNjBmZTJhZDMuLjlkY2NkYjUxZCAxMDA2NDQKKy0tLSBhL3NhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCisrKysgYi9zYW5kYm94L2xp bnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAorQEAgLTI5LDYgKzI5LDkgQEAKKyAj aWZuZGVmIEVNX0FBUkNINjQKKyAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCisgI2VuZGlmCisrI2lm bmRlZiBFTV9QUEM2NAorKyNkZWZpbmUgRU1fUFBDNjQgMjEKKysjZW5kaWYKKyAKKyAjaWZuZGVm IF9fQVVESVRfQVJDSF82NEJJVAorICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAw MDAKK0BAIC01NCw2ICs1NywxMiBAQAorICNpZm5kZWYgQVVESVRfQVJDSF9BQVJDSDY0CisgI2Rl ZmluZSBBVURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQg fCBfX0FVRElUX0FSQ0hfTEUpCisgI2VuZGlmCisrI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0Cisr I2RlZmluZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCkK KysjZW5kaWYKKysjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRMRQorKyNkZWZpbmUgQVVESVRfQVJD SF9QUEM2NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9M RSkKKysjZW5kaWYKKyAKKyAvLyBGb3IgcHJjdGwuaAorICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAK K2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaCBz YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCitpbmRleCBmNWE3MzY3 NjEuLjUxNWIyMWE1ZiAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv bGludXhfc2lnbmFsLmgKKysrKyBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhf c2lnbmFsLmgKK0BAIC0xMyw3ICsxMyw3IEBACisgLy8gKG5vdCB1bmRlZmluZWQsIGJ1dCBkZWZp bmVkIGRpZmZlcmVudCB2YWx1ZXMgYW5kIGluIGRpZmZlcmVudCBtZW1vcnkKKyAvLyBsYXlvdXRz KS4gU28sIGZpbGwgdGhlIGdhcCBoZXJlLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisgCisgI2RlZmluZSBMSU5VWF9TSUdIVVAgMQorICNkZWZpbmUgTElOVVhfU0lHSU5U IDIKK2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxs cy5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAoraW5kZXgg MmI3OGEwY2MzLi4wYTcwZjVlYTUgMTAwNjQ0CistLS0gYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKKysrKyBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvbGludXhfc3lzY2FsbHMuaAorQEAgLTM1LDUgKzM1LDkgQEAKKyAjaW5jbHVkZSAic2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIgorICNlbmRpZgor IAorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2luY2x1ZGUgInNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCIKKysjZW5kaWYKKysKKyAjZW5k aWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfTElOVVhfU1lTQ0FMTFNfSF8KKyAK K2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF91Y29udGV4dC5o IHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAoraW5kZXggMjJj ZTc4MDI3Li5hNjliMDI0YzIgMTAwNjQ0CistLS0gYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3Vjb250ZXh0LmgKKysrKyBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv bGludXhfdWNvbnRleHQuaAorQEAgLTExLDYgKzExLDggQEAKKyAjaW5jbHVkZSAic2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRleHQuaCIKKyAjZWxpZiBkZWZpbmVk KF9faTM4Nl9fKQorICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2kzODZf bGludXhfdWNvbnRleHQuaCIKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2luY2x1 ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCIK KyAjZWxzZQorICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gUE5h Q2wgaGVhZGVyIgorICNlbmRpZgorZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmggc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9w cGM2NF9saW51eF9zeXNjYWxscy5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MDAwLi5jY2FjZmZlMjIKKy0tLSBhLy9kZXYvbnVsbAorKysrIGIvc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCitAQCAtMCwwICsxLDEyIEBACisrLy8g Q29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisr I2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExT X0hfCisrI2RlZmluZSBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZ U0NBTExTX0hfCisrCisrI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KKysKKysvL1RPRE86IGlzIGl0 IG5lY2Vzc2FyeSB0byByZWRlZmluZSBzeXNjYWxsIG51bWJlcnMgZm9yIFBQQzY0PworKworKyNl bmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9TWVNDQUxM U19IXworZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4 X3Vjb250ZXh0Lmggc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29u dGV4dC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwLi4wNzcyOGUwODcK Ky0tLSBhLy9kZXYvbnVsbAorKysrIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2 NF9saW51eF91Y29udGV4dC5oCitAQCAtMCwwICsxLDEyIEBACisrLy8gQ29weXJpZ2h0IDIwMTQg VGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRo aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNh biBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBTQU5EQk9Y X0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCisrI2RlZmluZSBT QU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCisrCisr I2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorKworKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRv IHJlZGVmaW5lIHVjb250ZXh0IG9uIFBQQzY0PworKworKyNlbmRpZiAgLy8gU0FOREJPWF9MSU5V WF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXworZGlmZiAtLWdpdCBzZXJ2 aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xp bnV4LmNjIHNlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJl cl9wb2xpY3lfbGludXguY2MKK2luZGV4IGZiODliMzM1Ni4uMWU5ODQ3MzFlIDEwMDY0NAorLS0t IGEvc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3Bv bGljeV9saW51eC5jYworKysrIGIvc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGlu dXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworQEAgLTE1LDYgKzE1LDExIEBACisgI2lu Y2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCIKKyAj aW5jbHVkZSAic2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvc2FuZGJveF9s aW51eC5oIgorIAorKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBz dHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1pb3MuaAorKyNpZmRlZiBfX3Bv d2VycGM2NF9fCisrI2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjZW5kaWYKKysKKyAvLyBUT0RPKHZp Z25hdHRpKTogcmVwbGFjZSB0aGUgbG9jYWwgZGVmaW5pdGlvbnMgYmVsb3cgd2l0aCAjaW5jbHVk ZQorIC8vIDxsaW51eC9kbWEtYnVmLmg+IG9uY2Uga2VybmVsIHZlcnNpb24gNC42IGJlY29tZXMg d2lkZWx5IHVzZWQuCisgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CitkaWZmIC0tZ2l0IHRoaXJk X3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmggdGhpcmRfcGFy dHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAoraW5kZXggM2E4MDdl MWUuLjUyNTg2MTdhIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVy L3RyYW5zbGF0b3IvSW5mb1NpbmsuaAorKysrIGIvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBp bGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAorQEAgLTkyLDcgKzkyLDE2IEBAIGNsYXNzIFRJbmZv U2lua0Jhc2UKKyAgICAgICAgICAgICBzdHJlYW0ucHJlY2lzaW9uKDgpOworICAgICAgICAgICAg IHN0cmVhbSA8PCBmOworICAgICAgICAgfQorLSAgICAgICAgc2luay5hcHBlbmQoc3RyZWFtLnN0 cigpKTsKKysKKysgICAgICAgIC8vIEhhY2sgdG8gd29yayBhcm91bmQgYSBidWcgd2hlcmUgbmVn YXRpdmUgZmxvYXRpbmcgcG9pbnQgdmFsdWVzCisrICAgICAgICAvLyBhcmUgcmVuZGVyZWQgbGlr ZSAnLjAuNScgaW5zdGVhZCBvZiAnLTAuNScKKysgICAgICAgIHN0ZDo6c3RyaW5nIHJlcyhzdHJl YW0uc3RyKCkpOworKworKyAgICAgICAgaWYgKHNpZ25iaXQoZikpIHsgLy8gdGVzdCBpZiBmIGlz IG5lZ2F0aXZlCisrICAgICAgICAgICAgcmVzWzBdID0gJy0nOworKyAgICAgICAgfQorKworKyAg ICAgICAgc2luay5hcHBlbmQocmVzKTsKKyAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgfQor ICAgICAvLyBXcml0ZSBib29sZWFuIHZhbHVlcyBhcyB0aGVpciBuYW1lcyBpbnN0ZWFkIG9mIGlu dGVncmFsIHZhbHVlLgorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUv Q29uc3RhbnRzLmggdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCitp bmRleCA0Mjk2NGNjMS4uNjYwN2RlZWIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9hbmdsZS9z cmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKKysrKyBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJB TkdMRS9Db25zdGFudHMuaAorQEAgLTksNiArOSw3IEBACisgI2lmbmRlZiBMSUJBTkdMRV9DT05T VEFOVFNfSF8KKyAjZGVmaW5lIExJQkFOR0xFX0NPTlNUQU5UU19IXworIAorKyNpbmNsdWRlIDxj c3RkZGVmPgorICNpbmNsdWRlICJjb21tb24vcGxhdGZvcm0uaCIKKyAKKyAjaW5jbHVkZSA8c3Rk aW50Lmg+CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbiB0aGlyZF9w YXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KK2luZGV4IGI0MzU0OTlmNC4uYWM4YTg0YjZkIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCisrKysgYi90aGlyZF9wYXJ0 eS9ib3Jpbmdzc2wvQlVJTEQuZ24KK0BAIC0xMDEsNiArMTAxLDEzIEBAIGlmIChpc193aW4gJiYg IWlzX21zYW4gJiYgY3VycmVudF9jcHUgIT0gImFybTY0IikgeworICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCisgICAgICAgfQor KyAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgICBpZiAoaXNf bGludXgpIHsKKysgICAgICAgICMgVE9ETzogcHBjNjQgKGJlKSBjaGVjaworKyAgICAgICAgc291 cmNlcyArPSBjcnlwdG9fc291cmNlc19saW51eF9wcGM2NGxlCisrICAgICAgfSBlbHNlIHsKKysg ICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKysgICAgICB9Cisg ICAgIH0gZWxzZSB7CisgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIg XQorICAgICB9CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduIHRoaXJk X3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCitpbmRleCA1NjE3ZGU4OC4uZGM4YmMxNzYgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgorKysrIGIvdGhpcmRfcGFydHkv YnJlYWtwYWQvQlVJTEQuZ24KK0BAIC01OTgsNyArNTk4LDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlz X2FuZHJvaWQpIHsKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9taW5pZHVtcF9maWxlX3dy aXRlci5oIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9jb252ZXJ0X1VURi5jYyIsCisg ICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vY29udmVydF9VVEYuaCIsCistICAgICAgImJyZWFr cGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TIiwKKyAgICAgICAiYnJl YWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmNjIiwKKyAgICAgICAiYnJlYWtw YWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgiLAorICAgICAgICJicmVha3BhZC9z cmMvY29tbW9uL2xpbnV4L2VsZnV0aWxzLmNjIiwKK0BAIC02MzYsNiArNjM1LDE0IEBAIGlmIChp c19saW51eCB8fCBpc19hbmRyb2lkKSB7CisgCisgICAgIGxpYnMgPSBbICJkbCIgXQorIAorKyAg ICBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICAgICAgZGVmaW5lcyA9IFsgIkhB VkVfR0VUQ09OVEVYVCIgXQorKyAgICB9IGVsc2UgeworKyAgICAgICAgc291cmNlcyArPSBbCisr ICAgICAgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4 dC5TIgorKyAgICAgICAgXQorKyAgICB9CisrCisgICAgIGluY2x1ZGVfZGlycyA9IFsKKyAgICAg ICAiLiIsCisgICAgICAgImJyZWFrcGFkL3NyYyIsCitAQCAtNjg2LDcgKzY5Myw2IEBAIGlmIChp c19saW51eCB8fCBpc19hbmRyb2lkKSB7CisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYyIsCisgICAgICAg ImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRl cl91bml0dGVzdF91dGlscy5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL3Byb2NfY3B1aW5mb19yZWFkZXJfdW5pdHRlc3QuY2MiLAorLSAgICAg ICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHRfdW5pdHRlc3Qu Y2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXBfdW5p dHRlc3QuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2ZpbGVfaWRfdW5p dHRlc3QuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2xpbnV4X2xpYmNf c3VwcG9ydF91bml0dGVzdC5jYyIsCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2Nw dS5oIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93 cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCitpbmRleCAwN2Q5MTcxYS4uOWFlZDRjYjMg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAorKysrIGIvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v cmF3X2NvbnRleHRfY3B1LmgKK0BAIC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgTURSYXdDb250ZXh0 QVJNIFJhd0NvbnRleHRDUFU7CisgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk02NF9PbGQgUmF3Q29u dGV4dENQVTsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorIHR5cGVkZWYgTURSYXdDb250ZXh0 TUlQUyBSYXdDb250ZXh0Q1BVOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt0eXBl ZGVmIE1EUmF3Q29udGV4dFBQQzY0IFJhd0NvbnRleHRDUFU7CisgI2Vsc2UKKyAjZXJyb3IgIlRo aXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5k aWYKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2lu Zm8uY2MKK2luZGV4IGFhZTFkYzEzLi4wM2FmZWM3YSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Ro cmVhZF9pbmZvLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYworQEAgLTI3MCw3ICsy NzAsNDIgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBv dXQpIGNvbnN0IHsKKyAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSBtY29udGV4dC5mcGNfZWlyOwor ICNlbmRpZgorIH0KKy0jZW5kaWYgIC8vIF9fbWlwc19fCisrCisrI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorKworK3VpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlvblBvaW50 ZXIoKSBjb25zdCB7CisrICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07CisrfQor KworK3ZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBj b25zdCB7CisrICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUFBDNjRfRlVMTDsK KysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsr KQorKyAgICAgICAgb3V0LT5ncHJbaV0gPSBtY29udGV4dC5ncF9yZWdzW2ldOworKworKyAgICBv dXQtPmxyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOworKyAgICBvdXQtPnNycjAgPSBtY29u dGV4dC5ncF9yZWdzW1BUX05JUF07CisrICAgIG91dC0+c3JyMSA9IG1jb250ZXh0LmdwX3JlZ3Nb UFRfTVNSXTsKKysgICAgb3V0LT5jciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsKKysgICAg b3V0LT54ZXIgPSBtY29udGV4dC5ncF9yZWdzW1BUX1hFUl07CisrICAgIG91dC0+Y3RyID0gbWNv bnRleHQuZ3BfcmVnc1tQVF9DVFJdOworKyAgICAKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBN RF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+Zmxv YXRfc2F2ZS5mcHJlZ3NbaV0gPSBtY29udGV4dC5mcF9yZWdzW2ldOworKworKyAgICBvdXQtPmZs b2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKKysKKysgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKKysg ICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKKysgICAgICAgICAgICB7KCgo dWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzBdKSA8PCAzMikgCisrICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVsxXSwgCisrICAgICAgICAgICAgKCgodWludDY0X3Qp dnJlZ3MudnJyZWdzW2ldWzJdKSA8PCAzMikKKysgICAgICAgICAgICAgICAgICAgICAgICAgfCB2 cmVncy52cnJlZ3NbaV1bM119OworKworKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLnZyc2F2ZTsK KysgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MudnNjci52c2NyX3dv cmR9OworKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZGRkY7IAor K30KKysjZW5kaWYgIC8vIF9fcG93ZXJwYzY0X18KKyAKKyB2b2lkIFRocmVhZEluZm86OkdldEdl bmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQqKiBncF9yZWdzLCBzaXplX3QqIHNpemUpIHsKKyAg IGFzc2VydChncF9yZWdzIHx8IHNpemUpOworQEAgLTI3OSw2ICszMTQsMTEgQEAgdm9pZCBUaHJl YWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywgc2l6ZV90 KiBzaXplKSB7CisgICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3JlZ3M7CisgICBpZiAoc2l6ZSkK KyAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3JlZ3MpOworKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysgIGlmIChncF9yZWdzKQorKyAgICAqZ3BfcmVncyA9IG1jb250ZXh0Lmdw X3JlZ3M7CisrICBpZiAoc2l6ZSkKKysgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3BfcmVn cyk7CisgI2Vsc2UKKyAgIGlmIChncF9yZWdzKQorICAgICAqZ3BfcmVncyA9ICZyZWdzOworQEAg LTI5NCw2ICszMzQsMTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0 ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpIHsKKyAgICAgKmZwX3JlZ3MgPSAmbWNv bnRleHQuZnByZWdzOworICAgaWYgKHNpemUpCisgICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0 LmZwcmVncyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgaWYgKGZwX3JlZ3Mp CisrICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwX3JlZ3M7CisrICBpZiAoc2l6ZSkKKysgICAg KnNpemUgPSBzaXplb2YobWNvbnRleHQuZnBfcmVncyk7CisgI2Vsc2UKKyAgIGlmIChmcF9yZWdz KQorICAgICAqZnBfcmVncyA9ICZmcHJlZ3M7CitAQCAtMzAyLDQgKzM0NywxMyBAQCB2b2lkIFRo cmVhZEluZm86OkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVf dCogc2l6ZSkgeworICNlbmRpZgorIH0KKyAKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor K3ZvaWQgVGhyZWFkSW5mbzo6R2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVf dCogc2l6ZSkgeworKyAgICBpZiAodl9yZWdzKQorKyAgICAgICAgKnZfcmVncyA9ICZ2cmVnczsK KysgICAgaWYgKHNpemUpCisrICAgICAgICAqc2l6ZSA9IHNpemVvZih2cmVncyk7CisrfQorKyNl bmRpZgorKworIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKK2RpZmYgLS1naXQgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCitpbmRleCBmYjIxNmZh Ni4uNTkzYWFjODIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCisrKysgYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi90aHJlYWRfaW5mby5oCitAQCAtNjgsNiArNjgsMTAgQEAgc3RydWN0IFRocmVhZElu Zm8geworICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmVzIGRlZmluZWQgaW4gPHN5cy91c2VyLmg+Cisg ICBzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCByZWdzOworICAgc3RydWN0IHVzZXJfZnBzaW1kX3N0 cnVjdCBmcHJlZ3M7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8gVXNlIHRo ZSBzdHJ1Y3R1cmVzIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5oPi4KKysgIG1jb250ZXh0X3Qg bWNvbnRleHQ7CisrICB2cnJlZ3NldF90IHZyZWdzOworICNlbGlmIGRlZmluZWQoX19taXBzX18p CisgICAvLyBVc2UgdGhlIHN0cnVjdHVyZSBkZWZpbmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCisg ICBtY29udGV4dF90IG1jb250ZXh0OworQEAgLTg0LDYgKzg4LDExIEBAIHN0cnVjdCBUaHJlYWRJ bmZvIHsKKyAKKyAgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgZmxvYXQgcG9p bnQgcmVnaXN0ZXIgYXJlYS4KKyAgIHZvaWQgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2b2lk KiogZnBfcmVncywgc2l6ZV90KiBzaXplKTsKKysKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBvZiB0aGUgdmVjdG9yIHJlZ2lz dGVyIGFyZWEuIChQUEM2NCBvbmx5KQorKyAgdm9pZCBHZXRWZWN0b3JSZWdpc3RlcnModm9pZCoq IHZfcmVncywgc2l6ZV90KiBzaXplKTsKKysjZW5kaWYKKyB9OworIAorIH0gIC8vIG5hbWVzcGFj ZSBnb29nbGVfYnJlYWtwYWQKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNj IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYworaW5kZXggZWU1MTVjNDEuLjEwOTA0NzBmIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCisrKysgYi90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91 Y29udGV4dF9yZWFkZXIuY2MKK0BAIC0yNTQsNiArMjU0LDQ4IEBAIHZvaWQgVUNvbnRleHRSZWFk ZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAq dWMpIHsKKyAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSB1Yy0+dWNfbWNvbnRleHQuZnBjX2Vpcjsg IC8vIFVudXNlZC4KKyAjZW5kaWYKKyB9CisrCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKworK3VpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0U3RhY2tQb2ludGVyKGNvbnN0IHVj b250ZXh0X3QqIHVjKSB7CisrICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9D T05URVhUX1BQQzY0X1JFR19TUF07CisrfQorKworK3VpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6 R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CisrICAgIHJldHVy biB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworK30KKysKKyt2b2lkIFVDb250ZXh0 UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0 X3QqIHVjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZycmVn c2V0X3QqIHZyZWdzKSB7CisrICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUFBD NjRfRlVMTDsKKysKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQ Ul9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5ncHJbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tpXTsKKysKKysgICAgb3V0LT5sciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0xO S107ICAgIAorKyAgICBvdXQtPnNycjAgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBd OworKyAgICBvdXQtPnNycjEgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdOworKyAg ICBvdXQtPmNyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsKKysgICAgb3V0LT54 ZXIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOworKyAgICBvdXQtPmN0ciA9IHVj LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl07CisrICAgIAorKyAgICBmb3IgKGludCBpID0g MDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgICAg b3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOwor KworKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tO RlBSRUctMV07CisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFf UFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0g PQorKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzBdKSA8PCAzMikg CisrICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MtPnZycmVnc1tpXVsxXSwgCisrICAg ICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMl0pIDw8IDMyKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bM119OworKworKyAgICBvdXQt PnZyc2F2ZSA9IHZyZWdzLT52cnNhdmU7CisrICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2Ny ID0gezAsIHZyZWdzLT52c2NyLnZzY3Jfd29yZH07CisrICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2 ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsgCisrfQorKworICNlbmRpZgorIAorIH0gIC8vIG5hbWVz cGFjZSBnb29nbGVfYnJlYWtwYWQKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVy LmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKK2luZGV4IDhlNzRhOGE1Li43Y2I2NjdhNyAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCisrKysgYi90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91 Y29udGV4dF9yZWFkZXIuaAorQEAgLTU1LDYgKzU1LDkgQEAgc3RydWN0IFVDb250ZXh0UmVhZGVy IHsKKyAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNv bnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmcHNpbWRfY29udGV4dCogZnByZWdz KTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBzdGF0aWMgdm9pZCBGaWxsQ1BV Q29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpOworICNlbHNl CisgICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0 IHVjb250ZXh0X3QgKnVjKTsKKyAjZW5kaWYKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNj IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5jYworaW5kZXggYzY1ZmVhYTEuLjVhN2FiNTBjIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVy L2V4Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK0BAIC00NjEs OSArNDYxLDE2IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6SGFuZGxlU2lnbmFsKGludCAvKnNp ZyovLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIHVjKSB7CisgICAgIG1lbWNweSgmZ19jcmFzaF9j b250ZXh0Xy5mbG9hdF9zdGF0ZSwgZnBfcHRyLAorICAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hf Y29udGV4dF8uZmxvYXRfc3RhdGUpKTsKKyAgIH0KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisrICAvLyBPbiBQUEM2NCwgd2UgbXVzdCBjb3B5IFZSIHN0YXRlCisrICB1Y29udGV4dF90 KiB1Y19wdHIgPSAodWNvbnRleHRfdCopdWM7CisrICBpZiAodWNfcHRyLT51Y19tY29udGV4dC52 X3JlZ3MpIHsKKysgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0ZSwgdWNf cHRyLT51Y19tY29udGV4dC52X3JlZ3MsCisrICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250 ZXh0Xy52ZWN0b3Jfc3RhdGUpKTsKKysgIH0KKyAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgLy8gRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNl ciBBQkkgb24gQVJNIExpbnV4LgorLSAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRl IGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90CisrICAvLyBJbiBjYXNlIG9mIE1JUFMsIExp bnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90CisgICAvLyBhbmQgJ2Zs b2F0X3N0YXRlJyBpcyBub3QgYSBtZW1iZXIgb2YgQ3Jhc2hDb250ZXh0LgorICAgdWNvbnRleHRf dCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOworICAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQu ZnByZWdzKSB7CitAQCAtNzAxLDExICs3MDgsMTkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpX cml0ZU1pbmlkdW1wKCkgeworICAgfQorICNlbmRpZgorIAorLSNpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysj aWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRl ZmluZWQoX19taXBzX18pIFwKKysgICAgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC8v IEZQVSBzdGF0ZSBpcyBub3QgcGFydCBvZiBBUk0gRUFCSSB1Y29udGV4dF90LgorICAgbWVtY3B5 KCZjb250ZXh0LmZsb2F0X3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZnByZWdz LAorICAgICAgICAgIHNpemVvZihjb250ZXh0LmZsb2F0X3N0YXRlKSk7CisgI2VuZGlmCisrCisr I2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFZlY3RvciByZWdpc3RlcnMgbXVzdCBi ZSBjb3BpZWQgb24gUFBDNjQKKysgIG1lbWNweSgmY29udGV4dC52ZWN0b3Jfc3RhdGUsIGNvbnRl eHQuY29udGV4dC51Y19tY29udGV4dC52X3JlZ3MsCisrICAgICAgICAgc2l6ZW9mKGNvbnRleHQu dmVjdG9yX3N0YXRlKSk7CisrI2VuZGlmCisrCisgICBjb250ZXh0LnRpZCA9IHN5c19nZXR0aWQo KTsKKyAKKyAgIC8vIEFkZCBhbiBleGNlcHRpb24gc3RyZWFtIHRvIHRoZSBtaW5pZHVtcCBmb3Ig YmV0dGVyIHJlcG9ydGluZy4KK0BAIC03MjYsNiArNzQxLDkgQEAgYm9vbCBFeGNlcHRpb25IYW5k bGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICBjb250 ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29u dGV4dC5jb250ZXh0LnVjX21jb250ZXh0LnBjKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisrICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisrICAgICAgcmVpbnRlcnByZXRfY2Fz dDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSk7Cisg I2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxh dGZvcm0geWV0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmggdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlv bl9oYW5kbGVyLmgKK2luZGV4IGY0NDQ4M2ZmLi4zNmNlNmQ2YyAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRp b25faGFuZGxlci5oCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAorQEAgLTE5Miw3ICsxOTIsMTEg QEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlciB7CisgICAgIHNpZ2luZm9fdCBzaWdpbmZvOworICAg ICBwaWRfdCB0aWQ7ICAvLyB0aGUgY3Jhc2hpbmcgdGhyZWFkLgorICAgICB1Y29udGV4dF90IGNv bnRleHQ7CistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p CisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgLy8gUFBDNjQncyBGUCBzdGF0ZSBp cyBhIHBhcnQgb2YgdWNvbnRleHRfdCBsaWtlIE1JUFMgYnV0IHRoZSB2ZWN0b3IKKysgICAgLy8g c3RhdGUgaXMgbm90LCBzbyBhIHN0cnVjdCBpcyBuZWVkZWQuCisrICAgIHZzdGF0ZV90IHZlY3Rv cl9zdGF0ZTsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlw c19fKQorICAgICAvLyAjaWZkZWYgdGhpcyBvdXQgYmVjYXVzZSBGUCBzdGF0ZSBpcyBub3QgcGFy dCBvZiB1c2VyIEFCSSBmb3IgTGludXggQVJNLgorICAgICAvLyBJbiBjYXNlIG9mIE1JUFMgTGlu dXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3Qgc28KKyAgICAgLy8gJ2Zs b2F0X3N0YXRlJyBpcyBub3QgcmVxdWlyZWQuCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91 bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKK2luZGV4IDhkODgwOWZhLi5l MmViMDMxZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYworKysrIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCitAQCAtMzA3LDcgKzMwNyw3IEBAIFRFU1QoRXhj ZXB0aW9uSGFuZGxlclRlc3QsIFBhcmFsbGVsQ2hpbGRDcmFzaGVzRG9udEhhbmcpIHsKKyAgIH0K KyAKKyAgIC8vIFdhaXQgYSB3aGlsZSB1bnRpbCB0aGUgY2hpbGQgc2hvdWxkIGhhdmUgY3Jhc2hl ZC4KKy0gIHVzbGVlcCgxMDAwMDAwKTsKKysgIHVzbGVlcCgyMDAwMDAwKTsKKyAgIC8vIEtpbGwg dGhlIGNoaWxkIGlmIGl0IGlzIHN0aWxsIHJ1bm5pbmcuCisgICBraWxsKGNoaWxkLCBTSUdLSUxM KTsKKyAKK0BAIC01NTksNiArNTU5LDggQEAgY29uc3QgdW5zaWduZWQgY2hhciBrSWxsZWdhbElu c3RydWN0aW9uW10gPSB7CisgI2lmIGRlZmluZWQoX19taXBzX18pCisgICAvLyBtZmMyIHplcm8s SW1wbCAtIHVzdWFsbHkgaWxsZWdhbCBpbiB1c2Vyc3BhY2UuCisgICAweDQ4LCAweDAwLCAweDAw LCAweDQ4CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgMHgwMSwgMHgwMSwgMHgw MSwgMHgwMSAvLyBDcmFzaGVzIG9uIGEgdGVzdGVkIFBPV0VSOSBjcHUKKyAjZWxzZQorICAgLy8g VGhpcyBjcmFzaGVzIHdpdGggU0lHSUxMIG9uIHg4Ni94ODYtNjQvYXJtLgorICAgMHhmZiwgMHhm ZiwgMHhmZiwgMHhmZgorQEAgLTc1NCwxMCArNzU2LDEwIEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxl clRlc3QsIEluc3RydWN0aW9uUG9pbnRlck1lbW9yeU1heEJvdW5kKSB7CisgCisgICAvLyBUaGVz ZSBhcmUgZGVmaW5lZCBoZXJlIHNvIHRoZSBwYXJlbnQgY2FuIHVzZSB0aGVtIHRvIGNoZWNrIHRo ZQorICAgLy8gZGF0YSBmcm9tIHRoZSBtaW5pZHVtcCBhZnRlcndhcmRzLgorLSAgLy8gVXNlIDRr IGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KKysg IC8vIFVzZSB0aGUgcGFnZSBzaXplIGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBh IHNpbmdsZSBwYWdlIGV2ZW4KKyAgIC8vIGlmIGEgc21hbGxlciBzaXplIGlzIHJlcXVlc3RlZCwg YW5kIHRoaXMgdGVzdCB3YW50cyB0bworICAgLy8gdGVzdCB0aGUgdXBwZXIgYm91bmQgb2YgdGhl IG1lbW9yeSByYW5nZS4KKy0gIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0gNDA5NjsgIC8v IGJ5dGVzCisrICBjb25zdCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IGdldHBhZ2VzaXplKCk7ICAv LyBieXRlcworICAgY29uc3QgaW50IGtPZmZzZXQgPSBrTWVtb3J5U2l6ZSAtIHNpemVvZihrSWxs ZWdhbEluc3RydWN0aW9uKTsKKyAKKyAgIGNvbnN0IHBpZF90IGNoaWxkID0gZm9yaygpOworZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p Y3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRl ci5jYworaW5kZXggZmEzYzE3MTMuLjZjZTcwOWUyIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3Jv ZHVtcF93cml0ZXIuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCitAQCAtMTM4 LDcgKzEzOCw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICAgICAgICAgICAgICAgICAg Y29uc3QgTWljcm9kdW1wRXh0cmFJbmZvJiBtaWNyb2R1bXBfZXh0cmFfaW5mbywKKyAgICAgICAg ICAgICAgICAgICBMaW51eER1bXBlciogZHVtcGVyKQorICAgICAgIDogdWNvbnRleHRfKGNvbnRl eHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAorLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJ X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr ICAgICAgICB2ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+dmVjdG9yX3N0YXRlIDog TlVMTCksCisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNf XykKKyAgICAgICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPmZsb2F0X3N0YXRl IDogTlVMTCksCisgI2VuZGlmCisgICAgICAgICBkdW1wZXJfKGR1bXBlciksCitAQCAtMzM3LDYg KzMzOSw4IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgIyBlbHNlCisgIyAgZXJyb3IgIlRo aXMgbWlwcyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCisgI2VuZGlmCisr I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBjb25zdCBjaGFyIGtBcmNoW10gPSAi cHBjNjQiOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0 byB5b3VyIHBsYXRmb3JtIHlldCIKKyAjZW5kaWYKK0BAIC00MDksNyArNDEzLDkgQEAgY2xhc3Mg TWljcm9kdW1wV3JpdGVyIHsKKyAgIHZvaWQgRHVtcENQVVN0YXRlKCkgeworICAgICBSYXdDb250 ZXh0Q1BVIGNwdTsKKyAgICAgbXlfbWVtc2V0KCZjcHUsIDAsIHNpemVvZihSYXdDb250ZXh0Q1BV KSk7CistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisr I2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVD b250ZXh0KCZjcHUsIHVjb250ZXh0XywgdmVjdG9yX3N0YXRlXyk7CisrI2VsaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAgICAgVUNvbnRleHRSZWFkZXI6 OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsKKyAjZWxzZQor ICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfKTsKK0BA IC02MDUsNyArNjExLDkgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKKyAgIHZvaWQqIEFsbG9j KHVuc2lnbmVkIGJ5dGVzKSB7IHJldHVybiBkdW1wZXJfLT5hbGxvY2F0b3IoKS0+QWxsb2MoYnl0 ZXMpOyB9CisgCisgICBjb25zdCB1Y29udGV4dF90KiBjb25zdCB1Y29udGV4dF87CistI2lmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKKysgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3QqIGNvbnN0 IHZlY3Rvcl9zdGF0ZV87CisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5l ZChfX21pcHNfXykKKyAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBm bG9hdF9zdGF0ZV87CisgI2VuZGlmCisgICBMaW51eER1bXBlciogZHVtcGVyXzsKK2RpZmYgLS1n aXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1 bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93 cml0ZXJfdW5pdHRlc3QuY2MKK2luZGV4IDYzMzlhYzBjLi4yOTFhZjEwNiAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1w X3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9k dW1wX3dyaXRlcl91bml0dGVzdC5jYworQEAgLTI3OSwxMCArMjc5LDE5IEBAIFRFU1QoTWljcm9k dW1wV3JpdGVyVGVzdCwgQmFzaWNXaXRoTWFwcGluZ3MpIHsKKyAgIENyYXNoQW5kR2V0TWljcm9k dW1wKG1hcHBpbmdzLCBNaWNyb2R1bXBFeHRyYUluZm8oKSwgJmJ1Zik7CisgICBBU1NFUlRfVFJV RShDb250YWluc01pY3JvZHVtcChidWYpKTsKKyAKKysgIGludCBwYWdlX3NpemUgPSBnZXRwYWdl c2l6ZSgpOworICNpZmRlZiBfX0xQNjRfXworLSAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9z LAorLSAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAw MDAyQSAwMDAwMDAwMDAwMDAxMDAwICIKKy0gICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1 NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIC8vIFRoaXMgdGVzdCBp cyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIGZvbGxvd2luZyBwYWdlIHNpemVzCisrICBBU1NFUlRf VFJVRSgocGFnZV9zaXplID09IDQwOTYpIHx8IChwYWdlX3NpemUgPT0gNjU1MzYpKTsKKysgIGlm IChwYWdlX3NpemUgPT0gNDA5NikgeyAKKysgICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9z LAorKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAwMDAwMDAwMDAw MDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAgIgorKyAgICAgICAgICAgICAgICAgICAgICAgIjMzMjIx MTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7CisrICB9IGVsc2Ugewor KyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCisrICAgICAgICAgICAgICBidWYuZmlu ZCgiTSAwMDAwMDAwMDAwMDEwMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAxMDAwMCAi CisrICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVF RkYwIGxpYmZvby5zbyIpKTsKKysgIH0KKyAjZWxzZQorICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5n OjpucG9zLAorICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAxMDAwIDAwMDAwMDJBIDAwMDAx MDAwICIKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf Y29yZV9kdW1wZXIuY2MKK2luZGV4IDQxNTA2ODk4Li5iOTNlNGFmYyAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5j YworQEAgLTExMiw2ICsxMTIsOSBAQCBib29sIExpbnV4Q29yZUR1bXBlcjo6R2V0VGhyZWFkSW5m b0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJbmZvKiBpbmZvKSB7CisgI2VsaWYgZGVmaW5l ZChfX21pcHNfXykKKyAgIHN0YWNrX3BvaW50ZXIgPQorICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8 dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsK KysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBzdGFja19wb2ludGVyID0KKysgICAg ICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncF9yZWdzW01EX0NP TlRFWFRfUFBDNjRfUkVHX1NQXSk7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXNuJ3Qg YmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorQEAgLTE5Nyw3ICsy MDAsMTAgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkVudW1lcmF0ZVRocmVhZHMoKSB7CisgICAg ICAgICBtZW1zZXQoJmluZm8sIDAsIHNpemVvZihUaHJlYWRJbmZvKSk7CisgICAgICAgICBpbmZv LnRnaWQgPSBzdGF0dXMtPnByX3BncnA7CisgICAgICAgICBpbmZvLnBwaWQgPSBzdGF0dXMtPnBy X3BwaWQ7CistI2lmIGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzE7IGkrKykKKysgICAgICAgICAgICBp bmZvLm1jb250ZXh0LmdwX3JlZ3NbaV0gPSBzdGF0dXMtPnByX3JlZ1tpXTsKKysjZWxpZiBkZWZp bmVkKF9fbWlwc19fKQorICNpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKQorICAgICAgICAgZm9yIChp bnQgaSA9IEVGX1IwOyBpIDw9IEVGX1IzMTsgaSsrKQorICAgICAgICAgICBpbmZvLm1jb250ZXh0 LmdyZWdzW2kgLSBFRl9SMF0gPSBzdGF0dXMtPnByX3JlZ1tpXTsKK2RpZmYgLS1naXQgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfZHVtcGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYworaW5kZXggMTExMjAzNWIuLjg1 MjNkYWQ2IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCisrKysgYi90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9s aW51eF9kdW1wZXIuY2MKK0BAIC03NjUsNyArNzY1LDkgQEAgYm9vbCBMaW51eER1bXBlcjo6R2V0 U3RhY2tJbmZvKGNvbnN0IHZvaWQqKiBzdGFjaywgc2l6ZV90KiBzdGFja19sZW4sCisgICAgICAg cmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW50X3N0YWNrX3BvaW50ZXIgJiB+KHBhZ2Vfc2l6 ZSAtIDEpKTsKKyAKKyAgIC8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3RhY2sgd2hpY2ggd2Ug dHJ5IHRvIGNhcHR1cmUuCistICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IGtTdGFja1RvQ2FwdHVy ZSA9IDMyICogMTAyNDsKKysgIC8vIFRoaXMgbm93IGRlcGVuZHMgb24gcGFnZV9zaXplIHRvIGF2 b2lkIG1pc3NpbmcgZGF0YQorKyAgLy8gb24gc3lzdGVtcyB3aXRoIGxhcmdlciBwYWdlIHNpemVz LgorKyAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSA4ICogcGFnZV9z aXplOworIAorICAgY29uc3QgTWFwcGluZ0luZm8qIG1hcHBpbmcgPSBGaW5kTWFwcGluZyhzdGFj a19wb2ludGVyKTsKKyAgIGlmICghbWFwcGluZykKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVt cGVyLmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKK2luZGV4IGY0YTc1ZDkwLi4wMjA5ODFmNSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIu aAorQEAgLTYzLDcgKzYzLDggQEAgbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7CisgIChkZWZp bmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSU8zMikKKyB0eXBlZGVmIEVsZjMyX2F1 eHZfdCBlbGZfYXV4X2VudHJ5OworICNlbGlmIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQo X19hYXJjaDY0X18pIHx8IFwKKy0gICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0g IT0gX0FCSU8zMikKKysgICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FC SU8zMikgfHwgXAorKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIHR5cGVkZWYgRWxmNjRf YXV4dl90IGVsZl9hdXhfZW50cnk7CisgI2VuZGlmCisgCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hl bHBlci5jYworaW5kZXggM2FkNDhlNTAuLjE2ODhjMzY1IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGlu dXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYworKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3Vu aXR0ZXN0X2hlbHBlci5jYworQEAgLTUxLDYgKzUxLDggQEAKKyAjZGVmaW5lIFRJRF9QVFJfUkVH SVNURVIgInJjeCIKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICNkZWZpbmUgVElEX1BUUl9S RUdJU1RFUiAiJDEiCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNkZWZpbmUgVElE X1BUUl9SRUdJU1RFUiAicjgiCisgI2Vsc2UKKyAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVl biBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYKK2RpZmYgLS1naXQgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGlu dXhfcHRyYWNlX2R1bXBlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCitpbmRleCBl M2RkYjgxYS4uZmEyODU3NWUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVy LmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCitAQCAtMTQ5LDE5ICsxNDks MjcgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6Q29weUZyb21Qcm9jZXNzKHZvaWQqIGRlc3Qs IHBpZF90IGNoaWxkLAorICAgcmV0dXJuIHRydWU7CisgfQorIAorLWJvb2wgTGludXhQdHJhY2VE dW1wZXI6OlJlYWRSZWdpc3RlclNldChUaHJlYWRJbmZvKiBpbmZvLCBwaWRfdCB0aWQpCistewor K2Jvb2wgTGludXhQdHJhY2VEdW1wZXI6OlJlYWRSZWdpc3RlclNldChUaHJlYWRJbmZvKiBpbmZv LCBwaWRfdCB0aWQpIHsKKyAjaWZkZWYgUFRSQUNFX0dFVFJFR1NFVAorICAgc3RydWN0IGlvdmVj IGlvOworICAgaW5mby0+R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAm aW8uaW92X2xlbik7CistICBpZiAoc3lzX3B0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2 b2lkKilOVF9QUlNUQVRVUywgKHZvaWQqKSZpbykgPT0gLTEpIHsKKysgIGlmIChwdHJhY2UoUFRS QUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFJTVEFUVVMsICh2b2lkKikmaW8pID09IC0x KSB7CisgICAgIHJldHVybiBmYWxzZTsKKyAgIH0KKyAKKyAgIGluZm8tPkdldEZsb2F0aW5nUG9p bnRSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7CistICBpZiAoc3lzX3B0cmFj ZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9GUFJFR1NFVCwgKHZvaWQqKSZpbykg PT0gLTEpIHsKKysgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRf RlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7CisgICAgIHJldHVybiBmYWxzZTsKKyAgIH0K KysKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8gR3JhYiB0aGUgdmVjdG9yIHJl Z2lzdGVycyBvbiBQUEM2NCB0b28KKysgIGluZm8tPkdldFZlY3RvclJlZ2lzdGVycygmaW8uaW92 X2Jhc2UsICZpby5pb3ZfbGVuKTsKKysgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlk LCAodm9pZCopTlRfUFBDX1ZNWCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKKysgICAgcmV0dXJuIGZh bHNlOworKyAgfQorKyNlbmRpZiAvLyBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrCisgICByZXR1 cm4gdHJ1ZTsKKyAjZWxzZQorICAgcmV0dXJuIGZhbHNlOworQEAgLTI5OCw2ICszMDYsOSBAQCBi b29sIExpbnV4UHRyYWNlRHVtcGVyOjpHZXRUaHJlYWRJbmZvQnlJbmRleChzaXplX3QgaW5kZXgs IFRocmVhZEluZm8qIGluZm8pIHsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgc3RhY2tf cG9pbnRlciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRl eHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0pOworKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgIHN0YWNrX3BvaW50ZXIgPQorKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu dDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdKTsK KyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRlZCB0byB5b3VyIHBs YXRmb3JtIHlldC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1w ZXJfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYworaW5k ZXggZWE2YjlhMTIuLjliMzE4ZmUwIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1 bXBlcl91bml0dGVzdC5jYworKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVz dC5jYworQEAgLTQ2Miw2ICs0NjIsOSBAQCBURVNUKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgVmVy aWZ5U3RhY2tSZWFkV2l0aE11bHRpcGxlVGhyZWFkcykgeworICNlbGlmIGRlZmluZWQoX19taXBz X18pCisgICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9CisgICAgICAgICByZWludGVy cHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncmVnc1sxXSk7CisrI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBwaWRfdCogcHJvY2Vzc190aWRfbG9jYXRpb24g PQorKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+KG9uZV90aHJlYWQubWNvbnRleHQu Z3BfcmVnc1s4XSk7CisgI2Vsc2UKKyAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0 ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYKK0BAIC01NTksNiArNTYyLDggQEAgVEVTVF9G KExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgU2FuaXRpemVTdGFja0NvcHkpIHsKKyAgIHVpbnRwdHJf dCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5yZWdzLnJjeDsKKyAjZWxpZiBkZWZpbmVkKF9fbWlw c19fKQorICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdyZWdz WzFdOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIHVpbnRwdHJfdCBoZWFwX2Fk ZHIgPSB0aHJlYWRfaW5mby5tY29udGV4dC5ncF9yZWdzWzhdOworICNlbHNlCisgI2Vycm9yIFRo aXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCisgI2VuZGlmCitk aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIu Y2MKK2luZGV4IGY4Y2RmMmExLi5jYjgwOGMxNSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1w X3dyaXRlci5jYworKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCitAQCAtMTM2LDcgKzEz Niw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAgICAgICA6IGZkXyhtaW5pZHVtcF9mZCks CisgICAgICAgICBwYXRoXyhtaW5pZHVtcF9wYXRoKSwKKyAgICAgICAgIHVjb250ZXh0Xyhjb250 ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6 IE5VTEwpLAorKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBz X18pCisgICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0 ZSA6IE5VTEwpLAorICNlbmRpZgorICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAorQEAgLTQ2OCw3 ICs0NzAsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgICAgICAgICBpZiAoIWNwdS5BbGxv Y2F0ZSgpKQorICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICBteV9tZW1zZXQoY3B1 LmdldCgpLCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOworLSNpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29u dGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCisgICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRl eHQoY3B1LmdldCgpLCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7CisgI2Vsc2UKKyAgICAgICAg IFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0Xyk7CitA QCAtODk3LDcgKzkwMSw3IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAgICAgZGlyZW50LT5s b2NhdGlvbi5ydmEgPSAwOworICAgfQorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgYm9vbCBXcml0ZUNQVUluZm9ybWF0aW9uKE1EUmF3U3lzdGVt SW5mbyogc3lzX2luZm8pIHsKKyAgICAgY2hhciB2ZW5kb3JfaWRbc2l6ZW9mKHN5c19pbmZvLT5j cHUueDg2X2NwdV9pbmZvLnZlbmRvcl9pZCkgKyAxXSA9IHswfTsKKyAgICAgc3RhdGljIGNvbnN0 IGNoYXIgdmVuZG9yX2lkX25hbWVbXSA9ICJ2ZW5kb3JfaWQiOworQEAgLTkxNyw3ICs5MjEsOSBA QCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgCisgICAgIC8vIHByb2Nlc3Nvcl9hcmNoaXRlY3R1 cmUgc2hvdWxkIGFsd2F5cyBiZSBzZXQsIGRvIHRoaXMgZmlyc3QKKyAgICAgc3lzX2luZm8tPnBy b2Nlc3Nvcl9hcmNoaXRlY3R1cmUgPQorLSNpZiBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisrICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJFX1BQQzY0Owor KyNlbGlmIGRlZmluZWQoX19taXBzX18pCisgIyBpZiBfTUlQU19TSU0gPT0gX0FCSU8zMgorICAg ICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9NSVBTOworICMgZWxpZiBfTUlQU19TSU0gPT0gX0FC STY0CitAQCAtMTMzMyw3ICsxMzM5LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgY29u c3QgY2hhciogcGF0aF87ICAvLyBQYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBtaW5pZHVtIHNo b3VsZCBiZSB3cml0dGVuLgorIAorICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRf OyAgLy8gYWxzbyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgorLSNpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3RhdGVf OworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisg ICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVfOyAg Ly8gZGl0dG8KKyAjZW5kaWYKKyAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOworZGlmZiAtLWdpdCB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9taW5pZHVtcF93cml0ZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAoraW5kZXggZTNi MGIxNmQuLmNjZDhhYTBhIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKKysr KyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCitAQCAtNDgsNiArNDgsOCBAQCBjbGFzcyBFeGNl cHRpb25IYW5kbGVyOworIAorICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIHR5cGVkZWYgc3Ry dWN0IGZwc2ltZF9jb250ZXh0IGZwc3RhdGVfdDsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisrdHlwZWRlZiB2cnJlZ3NldF90IHZzdGF0ZV90OworICNlbGlmICFkZWZpbmVkKF9fQVJN X0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgdHlwZWRlZiBzdGQ6OnJlbW92ZV9wb2lu dGVyPGZwcmVnc2V0X3Q+Ojp0eXBlIGZwc3RhdGVfdDsKKyAjZW5kaWYKK2RpZmYgLS1naXQgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0 dGVzdC5jYworaW5kZXggMzAxN2E0OWEuLjM2NGVmZDc5IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWlu aWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5p dHRlc3QuY2MKK0BAIC03MTUsNiArNzE1LDkgQEAgVEVTVChNaW5pZHVtcFdyaXRlclRlc3QsIElu dmFsaWRTdGFja1BvaW50ZXIpIHsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgY29udGV4 dC5jb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdID0KKyAg ICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2 NF9SRUdfU1BdID0KKysgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisgI2Vsc2UKKyAjIGVy cm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4i CisgI2VuZGlmCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j b21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCitpbmRleCA0ZTkz ODI2OS4uZjBmZjE1ZDkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYworKysrIGIvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUu Y2MKK0BAIC02NSw4ICs2NSw3IEBAIGJvb2wgTWVtb3J5TWFwcGVkRmlsZTo6TWFwKGNvbnN0IGNo YXIqIHBhdGgsIHNpemVfdCBvZmZzZXQpIHsKKyAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICAgKGRlZmluZWQoX19taXBzX18p ICYmIF9NSVBTX1NJTSA9PSBfQUJJNjQpCistCisrICAgKGRlZmluZWQoX19taXBzX18pICYmIF9N SVBTX1NJTSA9PSBfQUJJNjQpIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIHN0cnVjdCBr ZXJuZWxfc3RhdCBzdDsKKyAgIGlmIChzeXNfZnN0YXQoZmQsICZzdCkgPT0gLTEgfHwgc3Quc3Rf c2l6ZSA8IDApIHsKKyAjZWxzZQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRf ZmlsZV91bml0dGVzdC5jYworaW5kZXggZmFkNTlmNDAuLjYxNjQ5NmQ2IDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFw cGVkX2ZpbGVfdW5pdHRlc3QuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCitAQCAtMTc2 LDkgKzE3NiwxMCBAQCBURVNUX0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIFJlbWFwQWZ0ZXJNYXAp IHsKKyBURVNUX0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIE1hcFdpdGhPZmZzZXQpIHsKKyAgIC8v IFB1dCBtb3JlIGRhdGEgaW4gdGhlIHRlc3QgZmlsZSB0aGlzIHRpbWUuIE9mZnNldHMgY2FuIG9u bHkgYmUKKyAgIC8vIGRvbmUgb24gcGFnZSBib3VuZGFyaWVzLCBzbyB3ZSBuZWVkIGEgdHdvIHBh Z2UgZmlsZSB0byB0ZXN0IHRoaXMuCistICBjb25zdCBpbnQgcGFnZV9zaXplID0gNDA5NjsKKy0g IGNoYXIgZGF0YTFbMiAqIHBhZ2Vfc2l6ZV07CistICBzaXplX3QgZGF0YTFfc2l6ZSA9IHNpemVv ZihkYXRhMSk7CisrICBjb25zdCBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKKysgIGNo YXIgKmRhdGExID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYygyICogcGFnZV9zaXplKSk7Cisr ICBFWFBFQ1RfVFJVRShkYXRhMSAhPSBOVUxMKTsKKysgIHNpemVfdCBkYXRhMV9zaXplID0gKDIg KiBwYWdlX3NpemUpOworICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhMV9zaXplOyArK2kp IHsKKyAgICAgZGF0YTFbaV0gPSBpICYgMHg3ZjsKKyAgIH0KK2RpZmYgLS1naXQgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0 LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9j YXRvcl91bml0dGVzdC5jYworaW5kZXggNDNjODYzMTQuLjI3MzI1YjgxIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9y X3VuaXR0ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29t bW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKK0BAIC01Nyw4ICs1Nyw5IEBACisgCisg ICBFWFBFQ1RfRVEoMFUsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7CisgICB1aW50OF90 KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKDEwMDAwKSk7 CisrICB1aW50NjRfdCBleHBlY3RlZF9wYWdlcyA9IDEgKyAoKDEwMDAwIC0gMSkgLyBnZXRwYWdl c2l6ZSgpKTsKKyAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOworLSAgRVhQRUNUX0VRKDNVLCBh bGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOworKyAgRVhQRUNUX0VRKGV4cGVjdGVkX3BhZ2Vz LCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOworICAgZm9yICh1bnNpZ25lZCBpID0gMTsg aSA8IDEwOyArK2kpIHsKKyAgICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf dCo+KGFsbG9jYXRvci5BbGxvYyhpKSk7CisgICAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOwor ZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4 cGxvaXRhYmlsaXR5X2xpbnV4LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9w cm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKK2luZGV4IGNjYzlmMTQ1Li5kZWJhZWQ0 ZCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNz b3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKK0BAIC0yMDIsMTIg KzIwMiwxNCBAQCBib29sIEV4cGxvaXRhYmlsaXR5TGludXg6OkVuZGVkT25JbGxlZ2FsV3JpdGUo dWludDY0X3QgaW5zdHJ1Y3Rpb25fcHRyKSB7CisgICAvLyBDaGVjayBhcmNoaXRlY3R1cmUgYW5k IHNldCBhcmNoaXRlY3R1cmUgdmFyaWFibGUgdG8gY29ycmVzcG9uZGluZyBmbGFnCisgICAvLyBp biBvYmpkdW1wLgorICAgc3dpdGNoIChjb250ZXh0LT5HZXRDb250ZXh0Q1BVKCkpIHsKKysjaWYg ZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpCisgICAgIGNhc2UgTURfQ09OVEVY VF9YODY6CisgICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODYiOworICAgICAgIGJyZWFrOworICAg ICBjYXNlIE1EX0NPTlRFWFRfQU1ENjQ6CisgICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODY6eDg2 LTY0IjsKKyAgICAgICBicmVhazsKKysjZW5kaWYKKyAgICAgZGVmYXVsdDoKKyAgICAgICAvLyBV bnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuIE5vdGUgdGhhdCBBUk0gYXJjaGl0ZWN0dXJlcyBhcmUg bm90CisgICAgICAgLy8gc3VwcG9ydGVkIGJlY2F1c2Ugb2JqZHVtcCBkb2VzIG5vdCBzdXBwb3J0 IEFSTS4KK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nl c3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCitpbmRleCA1Mjhl ZTVmMi4uNzI3NjRkNmMgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCisrKysgYi90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0 ZXN0LmNjCitAQCAtMTA0LDYgKzEwNCw4IEBAIEV4cGxvaXRhYmlsaXR5Rm9yKGNvbnN0IHN0cmlu ZyYgZmlsZW5hbWUpIHsKKyB9CisgCisgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5k b3dzRW5naW5lKSB7CisrLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25seSBleGVjdXRhYmxl IG9uIGFuIHg4Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgorKyNpZiAhZGVmaW5lZChfV0lOMzIpICYm IChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCisgICBBU1NFUlRfRVEoZ29v Z2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAorICAgICAgICAgICAgIEV4cGxvaXRh YmlsaXR5Rm9yKCJhc2NpaV9yZWFkX2F2LmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJl YWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCitAQCAtMTM2LDkgKzEzOCwxMiBAQCBURVNUKEV4 cGxvaXRhYmlsaXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKKyAgICAgICAgICAgICBFeHBs b2l0YWJpbGl0eUZvcigicmVhZF9hdl9jbG9iYmVyX3dyaXRlLmRtcCIpKTsKKyAgIEFTU0VSVF9F UShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0xPVywKKyAgICAgICAgICAgICBFeHBs b2l0YWJpbGl0eUZvcigicmVhZF9hdl9jb25kaXRpb25hbC5kbXAiKSk7CisrI2VuZGlmCisgfQor IAorIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKKysvLyBUaGUg Zm9sbG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4 IG1hY2hpbmUuCisrI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KQorICAg QVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJFU1RJTkcsCisg ICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X251bGxfcmVhZF9hdi5kbXAiKSk7 CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAorQEAg LTE3MSw3ICsxNzYsOCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5l KSB7CisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X2V4ZWN1dGFibGVfaGVh cC5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9I SUdILAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9qbXBfdG9fbW9kdWxl X25vdF9leGVfcmVnaW9uLmRtcCIpKTsKKy0jaWZuZGVmIF9XSU4zMgorKyNlbmRpZgorKyNpZiAh ZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkp CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAorICAg ICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b19ub253cml0YWJsZV9t b2R1bGUuZG1wIikpOworICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJ VFlfSElHSCwKK0BAIC0xODIsMTAgKzE4OCwxMCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwg VGVzdExpbnV4RW5naW5lKSB7CisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4 X3dyaXRlX3RvX291dHNpZGVfbW9kdWxlX3ZpYV9tYXRoLmRtcCIpKTsKKyAgIEFTU0VSVF9FUShn b29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5HLAorICAgICAgICAgICAg IEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b191bmRlcl80ay5kbXAiKSk7CistI2Vu ZGlmICAvLyBfV0lOMzIKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKCFkZWZpbmVk KF9faTM4NikgJiYgIWRlZmluZWQoX194ODZfNjQpKQorIH0KKyAKKy0jaWZuZGVmIF9XSU4zMgor KyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4 Nl82NCkpCisgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBEaXNhc3NlbWJsZUJ5 dGVzVGVzdCkgeworICAgQVNTRVJUX0ZBTFNFKEV4cGxvaXRhYmlsaXR5TGludXhUZXN0OjpEaXNh c3NlbWJsZUJ5dGVzKCIiLCBOVUxMLCA1LCBOVUxMKSk7CisgICB1aW50OF90IGJ5dGVzWzZdID0g ezB4YzcsIDB4MCwgMHg1LCAweDAsIDB4MCwgMHgwfTsKK0BAIC0zMDEsNiArMzA3LDcgQEAgVEVT VChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBDYWxjdWxhdGVBZGRyZXNzVGVzdCkgewor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJndyaXRlX2FkZHJlc3MpKTsKKyB9CistI2VuZGlmICAvLyBfV0lOMzIKKysj ZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVk KF9feDg2XzY0KSkKKysKKyAKKyB9ICAvLyBuYW1lc3BhY2UKK2RpZmYgLS1naXQgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1j b3JlLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJj b3JlL21pbmlkdW1wLTItY29yZS5jYworaW5kZXggYTYwYmUzMjMuLjM1YjExYjZkIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNv cmUvbWluaWR1bXAtMi1jb3JlLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKK0BAIC03Nyw2ICs3 Nyw4IEBACisgICAjZGVmaW5lIEVMRl9BUkNIICBFTV9NSVBTCisgI2VsaWYgZGVmaW5lZChfX2Fh cmNoNjRfXykKKyAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX0FBUkNINjQKKysjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrICAjZGVmaW5lIEVMRl9BUkNIICBFTV9QUEM2NAorICNlbmRpZgor IAorICNpZiBkZWZpbmVkKF9fYXJtX18pCitAQCAtODcsNiArODksOCBAQCB0eXBlZGVmIHVzZXJf cmVncyB1c2VyX3JlZ3Nfc3RydWN0OworICNlbGlmIGRlZmluZWQgKF9fbWlwc19fKQorIC8vIFRo aXMgZmlsZS1sb2NhbCB0eXBlZGVmIHNpbXBsaWZpZXMgdGhlIHNvdXJjZSBjb2RlLgorIHR5cGVk ZWYgZ3JlZ3NldF90IHVzZXJfcmVnc19zdHJ1Y3Q7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsKKyAjZW5kaWYK KyAKKyB1c2luZyBnb29nbGVfYnJlYWtwYWQ6Ok1EVHlwZUhlbHBlcjsKK0BAIC0zMjEsNiArMzI1 LDkgQEAgc3RydWN0IENyYXNoZWRQcm9jZXNzIHsKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2Fh cmNoNjRfXykKKyAgICAgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKKysjZW5kaWYKKysjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBtY29udGV4dF90IG1jb250ZXh0OworICNlbmRp ZgorICAgICB1aW50cHRyX3Qgc3RhY2tfYWRkcjsKKyAgICAgY29uc3QgdWludDhfdCogc3RhY2s7 CitAQCAtNTM1LDYgKzU0MiwzOCBAQCBQYXJzZVRocmVhZFJlZ2lzdGVycyhDcmFzaGVkUHJvY2Vz czo6VGhyZWFkKiB0aHJlYWQsCisgICB0aHJlYWQtPm1jb250ZXh0LmZwY19laXIgPSByYXdyZWdz LT5mbG9hdF9zYXZlLmZpcjsKKyAjZW5kaWYKKyB9CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorK3N0YXRpYyB2b2lkCisrUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6 OlRocmVhZCogdGhyZWFkLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pbmlkdW1wTWVt b3J5UmFuZ2UmIHJhbmdlKSB7CisrICBjb25zdCBNRFJhd0NvbnRleHRQUEM2NCogcmF3cmVncyA9 IHJhbmdlLkdldERhdGE8TURSYXdDb250ZXh0UFBDNjQ+KDApOworKworKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQorKyAgICB0aHJlYWQtPm1j b250ZXh0LmdwX3JlZ3NbaV0gPSByYXdyZWdzLT5ncHJbaV07CisrCisrICB0aHJlYWQtPm1jb250 ZXh0LmdwX3JlZ3NbUFRfTE5LXSA9IHJhd3JlZ3MtPmxyOworKyAgdGhyZWFkLT5tY29udGV4dC5n cF9yZWdzW1BUX05JUF0gPSByYXdyZWdzLT5zcnIwOworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9y ZWdzW1BUX01TUl0gPSByYXdyZWdzLT5zcnIxOworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdz W1BUX0NDUl0gPSByYXdyZWdzLT5jcjsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9Y RVJdID0gcmF3cmVncy0+eGVyOworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0g PSByYXdyZWdzLT5jdHI7CisrICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJzYXZlID0gcmF3 cmVncy0+dnJzYXZlOworKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVB UkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3Nb aV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwcmVnc1tpXTsKKysKKysgIHRocmVhZC0+bWNvbnRl eHQuZnBfcmVnc1tORlBSRUctMV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwc2NyOworKworKyAg Zm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykg eworKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMF0gPSByYXdyZWdz LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2ggPj4gMzI7CisrICAgICAgdGhyZWFkLT5tY29u dGV4dC52X3JlZ3MtPnZycmVnc1tpXVsxXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJb aV0uaGlnaDsKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzJdID0g cmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3cgPj4gMzI7CisrICAgICAgdGhyZWFk LT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVszXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNh dmVfdnJbaV0ubG93OworKyAgfQorKworKyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZzY3Iu dnNjcl93b3JkID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyLmxvdyAmIDB4RkZGRkZG RkY7CisrfQorKworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRl ZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKKyAjZW5kaWYKK0BAIC02MjMsNiArNjYyLDEyIEBAIFBh cnNlU3lzdGVtSW5mbyhjb25zdCBPcHRpb25zJiBvcHRpb25zLCBDcmFzaGVkUHJvY2VzcyogY3Jh c2hpbmZvLAorICMgZWxzZQorICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBu b3Qgc3VwcG9ydGVkIChuMzIpIgorICMgZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisrICBpZiAoc3lzaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSAhPSBNRF9DUFVfQVJD SElURUNUVVJFX1BQQzY0KSB7CisrICAgIGZwcmludGYoc3RkZXJyLAorKyAgICAgICAgICAgICJU aGlzIHZlcnNpb24gb2YgbWluaWR1bXAtMi1jb3JlIG9ubHkgc3VwcG9ydHMgUFBDNjQuXG4iKTsK KysgICAgZXhpdCgxKTsKKysgIH0KKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3Qg YmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlmCitkaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUyB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKK2luZGV4IDg3MjRiN2YzLi44ZTI5NDI0ZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUworKysr IGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTCitAQCAtMTMsMyAr MTMsNCBAQCBNYXJrIE1lbnRvdmFpIDxtYXJrQGNocm9taXVtLm9yZz4KKyBSb2JlcnQgU2VzZWsg PHJzZXNla0BjaHJvbWl1bS5vcmc+CisgU2NvdHQgR3JhaGFtIDxzY290dG1nQGNocm9taXVtLm9y Zz4KKyBKb3NodWEgUGVyYXphIDxqcGVyYXphQGNocm9taXVtLm9yZz4KKytTaGF3biBBbmFzdGFz aW8gPHNoYXduQGFuYXN0YXMuaW8+CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCitpbmRleCA2ZWQ3N2E5OC4uMWZkODM0NjkgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lz L3VzZXIuaAorKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4 L3N5cy91c2VyLmgKK0BAIC0xNSw2ICsxNSw3IEBACisgI2lmbmRlZiBDUkFTSFBBRF9DT01QQVRf TElOVVhfU1lTX1VTRVJfSF8KKyAjZGVmaW5lIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNF Ul9IXworIAorKyNpbmNsdWRlIDxjc3RkZGVmPgorICNpbmNsdWRlX25leHQgPHN5cy91c2VyLmg+ CisgCisgI2luY2x1ZGUgPGZlYXR1cmVzLmg+CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKK2luZGV4IDNhM2U2MDNj Li4zMTE4ZDllOSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21p bmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAorKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5oCitAQCAtNTkyLDYgKzU5Miw3MCBAQCBz dHJ1Y3QgTWluaWR1bXBDb250ZXh0TUlQUzY0IHsKKyAgIHVpbnQ2NF90IGZpcjsKKyB9OworIAor Ky8vISBcYnJpZWYgcHBjNjQtc3BlY2lmaWMgZmxhZ3MgZm9yIE1pbmlkdW1wUFBDNjQ6OmNvbnRl eHRfZmxhZ3MKKysvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3Bh ZAorK2VudW0gTWluaWR1bXBDb250ZXh0UFBDNjRGbGFncyA6IHVpbnQzMl90IHsKKysgIC8vISBc YnJpZWYgSWRlbnRpZmllcyB0aGUgY29udGV4dCBhcyBQUEM2NC4KKysgIGtNaW5pZHVtcENvbnRl eHRQUEM2NCA9IDB4MDEwMDAwMDAsCisrCisrICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFs aWRpdHkgb2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lz dGVycyBgcjBgLWByMzFgLCBgbmlwYCwgYG1zcmAsIGBscmAsIGV0Yy4gYXJlIHZhbGlkLgorKyAg a01pbmlkdW1wQ29udGV4dFBQQzY0QmFzZSA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAw MDAwMDEsCisrCisrICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZmxvYXRp bmcgcG9pbnQgcmVnaXN0ZXJzLgorKyAgLy8hCisrICAvLyEgUmVnaXN0ZXJzIGBmcDBgLWBmcDMx YCwgYGZwc2NyYCBhcmUgdmFsaWQuCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyA9 IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMDgsCisrCisrICAvLyEgXGJyaWVmIElu ZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgQWx0aXZlYy9WTVggcmVnaXN0ZXJzLgorKyAgLy8hCisr ICAvLyEgUmVnaXN0ZXJzIGB2MGAtYHYzMWAsIGB2c2NyYCwgYHZyc2F2ZWAuCisrICBrTWluaWR1 bXBDb250ZXh0UFBDNjRWZWN0b3IgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDIw LAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGFsbCByZWdpc3Rl cnMKKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NEFsbCA9IGtNaW5pZHVtcENvbnRleHRQUEM2NEJh c2UgICAgIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQ UEM2NEZsb2F0aW5nIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENv bnRleHRQUEM2NFZlY3RvcgorK307CisrCisrLy8hIFxicmllZiBBIFBQQzY0IENQVSBjb250ZXh0 IGNhcnJpZWQgaW4gYSBtaW5pZHVtcCBmaWxlLgorKy8vISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVf cHBjNjQuaCBmcm9tIGJyZWFrcGFkLgorK3N0cnVjdCBNaW5pZHVtcENvbnRleHRQUEM2NCB7Cisr ICB1aW50NjRfdCBjb250ZXh0X2ZsYWdzOworKworKyAgLy8hIFxicmllZiBHZW5lcmFsIHB1cnBv c2UgcmVnaXN0ZXJzLgorKyAgdWludDY0X3QgbmlwOworKyAgdWludDY0X3QgbXNyOworKyAgdWlu dDY0X3QgcmVnc1szMl07CisrICB1aW50NjRfdCBjY3I7CisrICB1aW50NjRfdCB4ZXI7CisrICB1 aW50NjRfdCBsbms7CisrICB1aW50NjRfdCBjdHI7CisrCisrICAvLyEgXGJyaWVmIEZsb2F0aW5n IHBvaW50IHJlZ2lzdGVycy4KKysgIGRvdWJsZSBmcHJlZ3NbMzJdOworKworKyAgLy8hIFxicmll ZiBGUFUgc3RhdHVzIHJlZ2lzdGVyLgorKyAgZG91YmxlIGZwc2NyOworKworKyAgLy8hIFxicmll ZiBBbHRpdmVjL1ZNWCB2ZWN0b3IgcmVnaXN0ZXJzLgorKyAgc3RydWN0IHsKKysgICAgICAvLyEg XGJyaWVmIFZlY3RvciByZWdpc3RlcnMgYXJlIDEyOGJpdHMuCisrICAgICAgdWludDEyOF9zdHJ1 Y3Qgc2F2ZV92clszMl07CisrICAgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOworKworKyAg ICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRp eS4KKysgICAgICB1aW50MzJfdCBzYXZlX3BhZDVbNF07CisrCisrICAgICAgLy8hIFxicmllZiBW UlNBVkUgcmVnaXN0ZXIuCisrICAgICAgdWludDMyX3Qgc2F2ZV92cnNhdmU7CisrCisrICAgICAg Ly8hIFxicmllZiBQYWRkaW5nIGluY2x1ZGVkIGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5Lgor KyAgICAgIHVpbnQzMl90IHNhdmVfcGFkNls3XTsKKysgIH0gdnJlZ3M7CisrfTsKKysKKyB9ICAv LyBuYW1lc3BhY2UgY3Jhc2hwYWQKKyAKKyAjZW5kaWYgIC8vIENSQVNIUEFEX01JTklEVU1QX01J TklEVU1QX0NPTlRFWFRfSF8KK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKK2luZGV4IGQ3 ZTUzYTQ5Li5kODllYjllMCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCisrKysgYi90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYwor QEAgLTEwMSw2ICsxMDEsMTMgQEAgTWluaWR1bXBDb250ZXh0V3JpdGVyOjpDcmVhdGVGcm9tU25h cHNob3QoY29uc3QgQ1BVQ29udGV4dCogY29udGV4dF9zbmFwc2hvdCkgeworICAgICAgIGJyZWFr OworICAgICB9CisgCisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OiB7CisrICAgICAg Y29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI+KCk7 CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcio+KGNv bnRleHQuZ2V0KCkpCisrICAgICAgICAgIC0+SW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnRleHRf c25hcHNob3QtPnBwYzY0KTsKKysgICAgICBicmVhazsKKysgICAgfQorKworICAgICBkZWZhdWx0 OiB7CisgICAgICAgTE9HKEVSUk9SKSA8PCAidW5rbm93biBjb250ZXh0IGFyY2hpdGVjdHVyZSAi CisgICAgICAgICAgICAgICAgICA8PCBjb250ZXh0X3NuYXBzaG90LT5hcmNoaXRlY3R1cmU7CitA QCAtNDUzLDQgKzQ2MCw0NyBAQCBzaXplX3QgTWluaWR1bXBDb250ZXh0TUlQUzY0V3JpdGVyOjpD b250ZXh0U2l6ZSgpIGNvbnN0IHsKKyAgIHJldHVybiBzaXplb2YoY29udGV4dF8pOworIH0KKyAK KytNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIo KQorKyAgOiBNaW5pZHVtcENvbnRleHRXcml0ZXIoKSwgY29udGV4dF8oKSB7CisrICAgIGNvbnRl eHRfLmNvbnRleHRfZmxhZ3MgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQ7CisrfQorKworK01pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyOjp+TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKSA9IGRl ZmF1bHQ7CisrCisrdm9pZCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6SW5pdGFsaXplRnJv bVNuYXBzaG90KAorKyAgICBjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRfc25hcHNob3Qp IHsKKysgIERDSEVDS19FUShzdGF0ZSgpLCBrU3RhdGVNdXRhYmxlKTsKKysgIERDSEVDS19FUShj b250ZXh0Xy5jb250ZXh0X2ZsYWdzLCBrTWluaWR1bXBDb250ZXh0UFBDNjQpOworKworKyAgY29u dGV4dF8uY29udGV4dF9mbGFncyA9IGtNaW5pZHVtcENvbnRleHRQUEM2NEFsbDsKKysKKysgIG1l bWNweShjb250ZXh0Xy5yZWdzLCBjb250ZXh0X3NuYXBzaG90LT5yZWdzLCBzaXplb2YoY29udGV4 dF8ucmVncykpOworKyAgY29udGV4dF8ubmlwID0gY29udGV4dF9zbmFwc2hvdC0+bmlwOworKyAg Y29udGV4dF8ubXNyID0gY29udGV4dF9zbmFwc2hvdC0+bXNyOworKyAgY29udGV4dF8uY2NyID0g Y29udGV4dF9zbmFwc2hvdC0+Y2NyOworKyAgY29udGV4dF8ueGVyID0gY29udGV4dF9zbmFwc2hv dC0+eGVyOworKyAgY29udGV4dF8ubG5rID0gY29udGV4dF9zbmFwc2hvdC0+bG5rOworKyAgY29u dGV4dF8uY3RyID0gY29udGV4dF9zbmFwc2hvdC0+Y3RyOworKworKyAgbWVtY3B5KGNvbnRleHRf LmZwcmVncywgY29udGV4dF9zbmFwc2hvdC0+ZnByZWdzLCBzaXplb2YoY29udGV4dF8uZnByZWdz KSk7CisrICBjb250ZXh0Xy5mcHNjciA9IGNvbnRleHRfc25hcHNob3QtPmZwc2NyOworKworKyAg bWVtY3B5KGNvbnRleHRfLnZyZWdzLnNhdmVfdnIsIGNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNh dmVfdnIsCisrICAgICAgICAgc2l6ZW9mKGNvbnRleHRfLnZyZWdzLnNhdmVfdnIpKTsKKysgIG1l bWNweSgmY29udGV4dF8udnJlZ3Muc2F2ZV92c2NyLCAmY29udGV4dF9zbmFwc2hvdC0+dnJlZ3Mu c2F2ZV92c2NyLAorKyAgICAgICAgIHNpemVvZihjb250ZXh0Xy52cmVncy5zYXZlX3ZzY3IpKTsK KysgIGNvbnRleHRfLnZyZWdzLnNhdmVfdnJzYXZlID0gY29udGV4dF9zbmFwc2hvdC0+dnJlZ3Mu c2F2ZV92cnNhdmU7CisrfQorKworK2Jvb2wgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6Oldy aXRlT2JqZWN0KAorKyAgICBGaWxlV3JpdGVySW50ZXJmYWNlKiBmaWxlX3dyaXRlcikgeworKyAg RENIRUNLX0VRKHN0YXRlKCksIGtTdGF0ZVdyaXRhYmxlKTsKKysgIHJldHVybiBmaWxlX3dyaXRl ci0+V3JpdGUoJmNvbnRleHRfLCBzaXplb2YoY29udGV4dF8pKTsKKyt9CisrCisrc2l6ZV90IE1p bmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpDb250ZXh0U2l6ZSgpIGNvbnN0IHsKKysgIERDSEVD S19HRShzdGF0ZSgpLCBrU3RhdGVGcm96ZW4pOworKyAgcmV0dXJuIHNpemVvZihjb250ZXh0Xyk7 CisrfQorKworIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3Jp dGVyLmgKK2luZGV4IGQ0YWI5MzZlLi4xZDIyZmM1OSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKKysr KyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRl eHRfd3JpdGVyLmgKK0BAIC0zMTUsNiArMzE1LDQ1IEBAIGNsYXNzIE1pbmlkdW1wQ29udGV4dE1J UFM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgeworICAgRElT QUxMT1dfQ09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcik7CisgfTsK KyAKKytjbGFzcyBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5p ZHVtcENvbnRleHRXcml0ZXIgeworKyBwdWJsaWM6CisrICBNaW5pZHVtcENvbnRleHRQUEM2NFdy aXRlcigpOworKyAgfk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgb3ZlcnJpZGU7CisrCisr ICAvLyEgXGJyaWVmIEluaXRhbGl6ZXMgdGhlIE1pbmlkdW1wQ29udGV4dFBQQzY0IGJhc2VkIG9u IFxhIGNvbnRleHRfc25hcHNob3QuCisrICAvLyEKKysgIC8vISBccGFyYW1baW5dIGNvbnRleHRf c25hcHNob3QgVGhlIGNvbnRleHQgc25hcHNob3QgdG8gdXNlIGFzIHNvdXJjZSBkYXRhLgorKyAg Ly8hCisrICAvLyEgXG5vdGUgVmFsaWQgaW4gI2tTdGF0ZU11dGFibGUuIE5vIG11dGF0aW9uIG9m IGNvbnRleHQoKSBtYXkgYmUgZG9uZSBiZWZvcmUKKysgIC8vISAgICAgY2FsbGluZyB0aGlzIG1l dGhvZCwgYW5kIGl0IGlzIG5vdCBub3JtYWxseSBuZWNlc3NhcnkgdG8gYWx0ZXIKKysgIC8vISAg ICAgY29udGV4dCgpIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuCisrICB2b2lkIEluaXRhbGl6 ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRfc25hcHNob3QpOwor KworKyAgLy8hIFxicmllZiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY29udGV4dCBzdHJ1Y3R1 cmUgdGhhdCB0aGlzIG9iamVjdCB3aWxsCisrICAvLyEgICAgIHdyaXRlLgorKyAgLy8hCisrICAv LyEgXGF0dGVudGlvbiBUaGlzIHJldHVybnMgYSBub24tYGNvbnN0YCBwb2ludGVyIHRvIHRoaXMg b2JqZWN04oCZcyBwcml2YXRlCisrICAvLyEgICAgIGRhdGEgc28gdGhhdCBhIGNhbGxlciBjYW4g cG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGRpcmVjdGx5LgorKyAgLy8hICAgICBUaGlz IGlzIGRvbmUgYmVjYXVzZSBwcm92aWRpbmcgc2V0dGVyIGludGVyZmFjZXMgdG8gZWFjaCBmaWVs ZCBpbiB0aGUKKysgIC8vISAgICAgY29udGV4dCBzdHJ1Y3R1cmUgd291bGQgYmUgdW53aWVsZHkg YW5kIGN1bWJlcnNvbWUuIENhcmUgbXVzdCBiZSB0YWtlbgorKyAgLy8hICAgICB0byBwb3B1bGF0 ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgY29ycmVjdGx5LiBUaGUgY29udGV4dCBzdHJ1Y3R1cmUK KysgIC8vISAgICAgbXVzdCBvbmx5IGJlIG1vZGlmaWVkIHdoaWxlIHRoaXMgb2JqZWN0IGlzIGlu IHRoZSAja1N0YXRlTXV0YWJsZQorKyAgLy8hICAgICBzdGF0ZS4KKysgIE1pbmlkdW1wQ29udGV4 dFBQQzY0KiBjb250ZXh0KCkgeyByZXR1cm4gJmNvbnRleHRfOyB9CisrCisrIHByb3RlY3RlZDoK KysgIC8vIE1pbmlkdW1wV3JpdGFibGU6CisrICBib29sIFdyaXRlT2JqZWN0KEZpbGVXcml0ZXJJ bnRlcmZhY2UqIGZpbGVfd3JpdGVyKSBvdmVycmlkZTsKKysKKysgIC8vIE1pbmlkdW1wQ29udGV4 dFdyaXRlcjoKKysgIHNpemVfdCBDb250ZXh0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworKworKyBw cml2YXRlOgorKyAgTWluaWR1bXBDb250ZXh0UFBDNjQgY29udGV4dF87CisrCisrICBESVNBTExP V19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIpOworK307CisrCisg fSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCisgI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVN UF9NSU5JRFVNUF9DT05URVhUX1dSSVRFUl9IXworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3Jp dGVyX3Rlc3QuY2MKK2luZGV4IDMyMTZhOTA2Li5hOWZjYmU5ZCAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVy X3Rlc3QuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MKK0BAIC0yMTMsNiArMjEzLDIxIEBAIFRFU1Qo TWluaWR1bXBDb250ZXh0V3JpdGVyLCBNSVBTNjRfRnJvbVNuYXBzaG90KSB7CisgICAgICAgY29u dGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0TUlQUzY0LCBrU2VlZCk7CisgfQorIAorK1RFU1Qo TWluaWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2NF9aZXJvcykgeworKyAgRW1wdHlDb250ZXh0VGVz dDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAorKyAg ICBFeHBlY3RNaW5pZHVtcENvbnRleHRQUEM2NCk7CisrfQorKworK1RFU1QoTWluaWR1bXBDb250 ZXh0V3JpdGVyLCBQUEM2NF9Gcm9tU25hcHNob3QpIHsKKysgIGNvbnN0ZXhwciB1aW50MzJfdCBr U2VlZCA9IDY0OworKyAgQ1BVQ29udGV4dFBQQzY0IGNvbnRleHRfcHBjNjQ7CisrICBDUFVDb250 ZXh0IGNvbnRleHQ7CisrICBjb250ZXh0LnBwYzY0ID0gJmNvbnRleHRfcHBjNjQ7CisrICBJbml0 aWFsaXplQ1BVQ29udGV4dFBQQzY0KCZjb250ZXh0LCBrU2VlZCk7CisrICBGcm9tU25hcHNob3RU ZXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENvbnRleHRQUEM2ND4oCisr ICAgICAgY29udGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQsIGtTZWVkKTsKKyt9Cisr CisgfSAgLy8gbmFtZXNwYWNlCisgfSAgLy8gbmFtZXNwYWNlIHRlc3QKKyB9ICAvLyBuYW1lc3Bh Y2UgY3Jhc2hwYWQKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCitpbmRleCBhMTM0 MDc2MC4uOTVkYzkyNTIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCisrKysgYi90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNj CitAQCAtMTI2LDYgKzEyNiw4IEBAIHN0ZDo6c3RyaW5nIE1pbmlkdW1wTWlzY0luZm9EZWJ1Z0J1 aWxkU3RyaW5nKCkgeworICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJtaXBzIjsK KyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAgc3RhdGljIGNvbnN0ZXhwciBj aGFyIGtDUFVbXSA9ICJtaXBzNjQiOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisr ICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gInBwYzY0IjsKKyAjZWxzZQorICNlcnJv ciBkZWZpbmUga0NQVSBmb3IgdGhpcyBDUFUKKyAjZW5kaWYKK2RpZmYgLS1naXQgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKK2luZGV4IGE1 MTYyNmNjLi42MWUwYjIwYSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYworQEAgLTExMSw2ICsxMTEsMTEg QEAgdm9pZCBDYXB0dXJlTWVtb3J5OjpQb2ludGVkVG9CeUNvbnRleHQoY29uc3QgQ1BVQ29udGV4 dCYgY29udGV4dCwKKyAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6ZShjb250ZXh0 Lm1pcHNlbC0+cmVncyk7ICsraSkgeworICAgICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVs ZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdzW2ldKTsKKyAgIH0KKysjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0 ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKKysgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6 c2l6ZShjb250ZXh0LnBwYzY0LT5yZWdzKTsgKytpKSB7CisrICAgIE1heWJlQ2FwdHVyZU1lbW9y eUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+cmVnc1tpXSk7CisrICB9CisgI2Vsc2UK KyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAoraW5kZXggODExYTcyMDkuLmY0 ZjgzOTgxIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY3B1X2FyY2hpdGVjdHVyZS5oCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKK0BAIC00Myw3ICs0MywxMCBAQCBlbnVtIENQ VUFyY2hpdGVjdHVyZSB7CisgICBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMLAorIAorICAgLy8hIFxi cmllZiA2NC1iaXQgTUlQU0VMLgorLSAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMCisrICBrQ1BV QXJjaGl0ZWN0dXJlTUlQUzY0RUwsCisrCisrICAvLyEgXGJyaWVmIDY0LWJpdCBQUEM2NC4KKysg IGtDUFVBcmNoaXRlY3R1cmVQUEM2NAorIH07CisgCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFk CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9j b250ZXh0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250 ZXh0LmNjCitpbmRleCA2ZmI4ZDdlNy4uYjAxZjdjYWQgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYworKysrIGIvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKK0BAIC0xNjks NiArMTY5LDggQEAgdWludDY0X3QgQ1BVQ29udGV4dDo6SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29u c3QgeworICAgICAgIHJldHVybiBhcm0tPnBjOworICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVB Uk02NDoKKyAgICAgICByZXR1cm4gYXJtNjQtPnBjOworKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1 cmVQUEM2NDoKKysgICAgICByZXR1cm4gcHBjNjQtPm5pcDsKKyAgICAgZGVmYXVsdDoKKyAgICAg ICBOT1RSRUFDSEVEKCk7CisgICAgICAgcmV0dXJuIH4wdWxsOworQEAgLTE4NSw2ICsxODcsOCBA QCB1aW50NjRfdCBDUFVDb250ZXh0OjpTdGFja1BvaW50ZXIoKSBjb25zdCB7CisgICAgICAgcmV0 dXJuIGFybS0+c3A7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgorICAgICAgIHJl dHVybiBhcm02NC0+c3A7CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgorKyAgICAg IHJldHVybiBwcGM2NC0+cmVnc1sxXTsKKyAgICAgZGVmYXVsdDoKKyAgICAgICBOT1RSRUFDSEVE KCk7CisgICAgICAgcmV0dXJuIH4wdWxsOworQEAgLTE5Niw2ICsyMDAsNyBAQCBib29sIENQVUNv bnRleHQ6OklzNjRCaXQoKSBjb25zdCB7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVg4Nl82 NDoKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6CisgICAgIGNhc2Uga0NQVUFyY2hp dGVjdHVyZU1JUFM2NEVMOgorKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKKyAgICAg ICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2OgorICAgICBjYXNl IGtDUFVBcmNoaXRlY3R1cmVBUk06CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAoraW5kZXggZmIyM2M0NjcuLmVlYmVkZTYzIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRl eHQuaAorKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2Nv bnRleHQuaAorQEAgLTM1Miw2ICszNTIsMjQgQEAgc3RydWN0IENQVUNvbnRleHRNSVBTNjQgewor ICAgdWludDY0X3QgZmlyOworIH07CisgCisrLy8hIFxicmllZiBBIGNvbnRleHQgc3RydWN0dXJl IGNhcnJ5aW5nIFBQQzY0IENQVSBzdGF0ZS4KKytzdHJ1Y3QgQ1BVQ29udGV4dFBQQzY0IHsKKysg IHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOwor KyAgdWludDY0X3QgY2NyOworKyAgdWludDY0X3QgeGVyOworKyAgdWludDY0X3QgbG5rOworKyAg dWludDY0X3QgY3RyOworKyAgZG91YmxlIGZwcmVnc1szMl07CisrICBkb3VibGUgZnBzY3I7Cisr ICBzdHJ1Y3QgeworKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKKysgICAgdWludDEy OF9zdHJ1Y3Qgc2F2ZV92c2NyOworKyAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKKysgIH0gdnJl Z3M7CisrfTsKKysKKyAvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJsZSBvZiBj YXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkgc3VwcG9ydGVkCisgLy8hICAgICBDUFUgYXJjaGl0 ZWN0dXJlLgorIHN0cnVjdCBDUFVDb250ZXh0IHsKK0BAIC0zODIsNiArNDAwLDcgQEAgc3RydWN0 IENQVUNvbnRleHQgeworICAgICBDUFVDb250ZXh0QVJNNjQqIGFybTY0OworICAgICBDUFVDb250 ZXh0TUlQUyogbWlwc2VsOworICAgICBDUFVDb250ZXh0TUlQUzY0KiBtaXBzNjQ7CisrICAgIENQ VUNvbnRleHRQUEM2NCogcHBjNjQ7CisgICB9OworIH07CisgCitkaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4Lmgg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRf bGludXguaAoraW5kZXggOWY0NmE0ODkuLmFhNjc3YzRlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAor KysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2Nv bnRleHRfbGludXguaAorQEAgLTE1LDYgKzE1LDcgQEAKKyAjaWZuZGVmIENSQVNIUEFEX1NOQVBT SE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCisgI2RlZmluZSBDUkFTSFBBRF9TTkFQU0hP VF9MSU5VWF9DUFVfQ09OVEVYVF9MSU5VWF9IXworIAorKyNpbmNsdWRlIDxjc3RyaW5nPgorICNp bmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKKyAjaW5jbHVkZSAic25hcHNob3QvY3B1X2Nv bnRleHQuaCIKKyAjaW5jbHVkZSAic25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaCIKK0BA IC0xNzQsNiArMTc1LDc4IEBAIHZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRNSVBTKAorIAorICNl bmRpZiAgLy8gQVJDSF9DUFVfTUlQU19GQU1JTFkgfHwgRE9YWUdFTgorIAorKyNpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkgfHwgRE9YWUdFTgorKworKy8vISBcYnJpZWYgSW5pdGFs aXplcyBhIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUgZnJvbSBuYXRpdmUgY29udGV4dAorKy8v ISAgICAgc3RydWN0dXJlcyBvbiBMaW51eC4KKysvLyEKKysvLyEgXHBhcmFtW2luXSB0aHJlYWRf Y29udGV4dCBUaGUgbmF0aXZlIHRocmVhZCBjb250ZXh0LgorKy8vISBccGFyYW1baW5dIGZsb2F0 X2NvbnRleHQgVGhlIG5hdGl2ZSBmbG9hdCBjb250ZXh0LgorKy8vISBccGFyYW1baW5dIHZlY3Rv cl9jb250ZXh0IFRoZSBuYXRpdmUgdmVjdG9yIGNvbnRleHQuCisrLy8hIFxwYXJhbVtvdXRdIGNv bnRleHQgVGhlIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUgdG8gaW5pdGFsaXplLgorK3RlbXBs YXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisrdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KAor KyAgICBjb25zdCBUaHJlYWRDb250ZXh0Ojp0NjRfdCYgdGhyZWFkX2NvbnRleHQsCisrICAgIGNv bnN0IEZsb2F0Q29udGV4dDo6ZjY0X3QmIGZsb2F0X2NvbnRleHQsCisrICAgIGNvbnN0IFZlY3Rv ckNvbnRleHQ6OnY2NF90JiB2ZWN0b3JfY29udGV4dCwKKysgICAgdHlwZW5hbWUgVHJhaXRzOjpD UFVDb250ZXh0KiBjb250ZXh0KSB7CisrCisrICBtZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFk X2NvbnRleHQuZ3ByLCBzaXplb2YoY29udGV4dC0+cmVncykpOworKyAgY29udGV4dC0+bmlwID0g dGhyZWFkX2NvbnRleHQubmlwOworKyAgY29udGV4dC0+bXNyID0gdGhyZWFkX2NvbnRleHQubXNy OworKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2NyOworKyAgY29udGV4dC0+eGVy ID0gdGhyZWFkX2NvbnRleHQueGVyOworKyAgY29udGV4dC0+bG5rID0gdGhyZWFkX2NvbnRleHQu bG5rOworKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQuY3RyOworKworKyAgbWVtY3B5 KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5mcHJlZ3MsIHNpemVvZihjb250ZXh0LT5m cHJlZ3MpKTsKKysgIGNvbnRleHQtPmZwc2NyID0gZmxvYXRfY29udGV4dC5mcHNjcjsKKysKKysg IGZvciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBpKyspIHsKKysgICAgY29udGV4dC0+dnJlZ3Mu c2F2ZV92cltpXSA9IHsKKysgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3Nb aV1bMF0pIDw8IDMyKSB8CisrICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCisr ICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAor KyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzNdCisrICAgIH07CisrICB9CisrICBj b250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsKKysgIGNv bnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNj ci52c2NyX3dvcmR9OworK30KKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgorK3ZvaWQg SW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKKysgICAgY29uc3QgU2lnbmFsVGhyZWFkQ29udGV4 dDY0ICZ0aHJlYWRfY29udGV4dCwKKysgICAgY29uc3QgU2lnbmFsRmxvYXRDb250ZXh0NjQgJmZs b2F0X2NvbnRleHQsCisrICAgIGNvbnN0IFNpZ25hbFZlY3RvckNvbnRleHQ2NCAmdmVjdG9yX2Nv bnRleHQsCisrICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29udGV4dCkgeworKwor KyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0LnJlZ3MsIHNpemVvZihjb250 ZXh0LT5yZWdzKSk7CisrICBjb250ZXh0LT5uaXAgPSB0aHJlYWRfY29udGV4dC5uaXA7CisrICBj b250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7CisrICBjb250ZXh0LT5jY3IgPSB0aHJl YWRfY29udGV4dC5jY3I7CisrICBjb250ZXh0LT54ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7Cisr ICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7CisrICBjb250ZXh0LT5jdHIgPSB0 aHJlYWRfY29udGV4dC5jdHI7CisrCisrICBtZW1jcHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9j b250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJlZ3MpKTsKKysgIGNvbnRleHQtPmZwc2Ny ID0gZmxvYXRfY29udGV4dC5mcHNjcjsKKysKKysgIGZvciAodWludDhfdCBpID0gMDsgaSA8IDMy OyBpKyspIHsKKysgICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cltpXSA9IHsKKysgICAgICAoKCh1 aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMF0pIDw8IDMyKSB8CisrICAgICAgICB2 ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCisrICAgICAgKCgodWludDY0X3QpdmVjdG9yX2Nv bnRleHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAorKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJy ZWdzW2ldWzNdCisrICAgIH07CisrICB9CisrICBjb250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9 IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsKKysgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHsw LCAodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52c2NyX3dvcmR9OworK30KKysKKysKKysj ZW5kaWYKKysKKyB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKyB9ICAvLyBuYW1lc3BhY2UgY3Jh c2hwYWQKKyAKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYworaW5kZXggYmUy MmM5MDMuLmM1ZGYyM2QxIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCisrKysgYi90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rl c3QuY2MKK0BAIC0xNTksOSArMTU5LDExIEBAIHZvaWQgVGVzdEFnYWluc3RUYXJnZXQoUHRyYWNl Q29ubmVjdGlvbiogY29ubmVjdGlvbikgeworICAgICAgICAgICBjb25zdCBib29sIGlzX3Zkc29f bWFwcGluZyA9CisgICAgICAgICAgICAgICBkZXZpY2UgPT0gMCAmJiBpbm9kZSA9PSAwICYmIG1h cHBpbmdfbmFtZSA9PSAiW3Zkc29dIjsKKyAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFy IGtQcmVmaXhbXSA9ICJsaW51eC12ZHNvLnNvLiI7CisrICAgICAgICAgIHN0YXRpYyBjb25zdGV4 cHIgY2hhciBrUHJlZml4NjRbXSA9ICJsaW51eC12ZHNvNjQuc28uIjsKKyAgICAgICAgICAgcmV0 dXJuIGlzX3Zkc29fbWFwcGluZyA9PQorICAgICAgICAgICAgICAgICAgKG1vZHVsZV9uYW1lLmVt cHR5KCkgfHwKKy0gICAgICAgICAgICAgICAgICBtb2R1bGVfbmFtZS5jb21wYXJlKDAsIHN0cmxl bihrUHJlZml4KSwga1ByZWZpeCkgPT0gMCk7CisrICAgICAgICAgICAgICAgICAgbW9kdWxlX25h bWUuY29tcGFyZSgwLCBzdHJsZW4oa1ByZWZpeCksIGtQcmVmaXgpID09IDAgfHwKKysgICAgICAg ICAgICAgICAgICBtb2R1bGVfbmFtZS5jb21wYXJlKDAsIHN0cmxlbihrUHJlZml4NjQpLCBrUHJl Zml4NjQpID09IDApOworICAgICAgICAgfSwKKyAgICAgICAgIG1vZHVsZV9tYXBwaW5nLT5uYW1l LAorICAgICAgICAgbW9kdWxlX21hcHBpbmctPmRldmljZSwKK2RpZmYgLS1naXQgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xp bnV4LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2Vw dGlvbl9zbmFwc2hvdF9saW51eC5jYworaW5kZXggY2Q0MGIzYjEuLjZiY2YyM2I2IDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0 aW9uX3NuYXBzaG90X2xpbnV4LmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKK0BAIC0zMjMsNiAr MzIzLDY5IEBAIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4 dFRyYWl0czY0PigKKyAgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ubWlw czY0KTsKKyB9CisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrCisr dGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KKytzdGF0aWMgYm9vbCBSZWFkQ29udGV4dChQcm9j ZXNzUmVhZGVyTGludXgqIHJlYWRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICBMaW51eFZN QWRkcmVzcyBjb250ZXh0X2FkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5h bWUgVHJhaXRzOjpDUFVDb250ZXh0KiBkZXN0X2NvbnRleHQpIHsKKysgIGNvbnN0IFByb2Nlc3NN ZW1vcnkqIG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5KCk7CisrCisrICBMaW51eFZNQWRkcmVzcyBn cF9yZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250 ZXh0LCBncF9yZWdzKTsKKysKKysgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVGhyZWFkQ29udGV4 dCB0aHJlYWRfY29udGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFkKGdwX3JlZ3NfYWRkcmVzcywg c2l6ZW9mKHRocmVhZF9jb250ZXh0KSwgJnRocmVhZF9jb250ZXh0KSkgeworKyAgICBMT0coRVJS T1IpIDw8ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3MhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAg fQorKworKyAgTGludXhWTUFkZHJlc3MgZnBfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNz ICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0 LCBtY29udGV4dCkgKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZnBfcmVncyk7CisrCisrICB0eXBlbmFtZSBU cmFpdHM6OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9jb250ZXh0OworKyAgaWYgKCFtZW1vcnktPlJl YWQoZnBfcmVnc19hZGRyZXNzLCBzaXplb2YoZnBfY29udGV4dCksICZmcF9jb250ZXh0KSkgewor KyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGZwX3JlZ3MhIjsKKysgICAgcmV0dXJu IGZhbHNlOworKyAgfQorKworKyAgTGludXhWTUFkZHJlc3Mgdl9yZWdzX3B0cl9hZGRyZXNzID0g Y29udGV4dF9hZGRyZXNzICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIHZteF9yZXNlcnZlKSAr IDg7CisrCisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFZlY3RvckNvbnRleHQgdl9jb250ZXh0 OworKyAgaWYgKCFtZW1vcnktPlJlYWQodl9yZWdzX3B0cl9hZGRyZXNzLCBzaXplb2Yodl9jb250 ZXh0KSwgJnZfY29udGV4dCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCB2 X3JlZ3MhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgSW5pdGlhbGl6ZUNQVUNv bnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRocmVhZF9jb250ZXh0LCBmcF9jb250ZXh0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2X2NvbnRleHQsIGRlc3RfY29udGV4dCk7Cisr CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrdGVtcGxhdGU8PgorK2Jvb2wgRXhjZXB0aW9uU25h cHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKKysgICAgUHJvY2Vzc1Jl YWRlckxpbnV4KiByZWFkZXIsCisrICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykg eworKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OworKyAg Y29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7CisrCisrICByZXR1cm4gaW50 ZXJuYWw6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCisrICAgICAgcmVhZGVyLCBjb250 ZXh0X2FkZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsKKyt9CisrCisrdGVtcGxhdGU8PgorK2Jvb2wg RXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czMyPigKKysg ICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRl eHRfYWRkcmVzcykgeworKyAgLy8gUFBDNjQgaXMgNjQtYml0CisrICByZXR1cm4gZmFsc2U7Cisr fQorKworICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorIAorIGJvb2wgRXhjZXB0aW9u U25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nlc3NfcmVh ZGVyLAorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAoraW5kZXggZWEw Y2QyMTAuLmU0MmRmNTIwIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKKysrKyBiL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hv dF9saW51eC5oCitAQCAtODQsNiArODQsOCBAQCBjbGFzcyBFeGNlcHRpb25TbmFwc2hvdExpbnV4 IGZpbmFsIDogcHVibGljIEV4Y2VwdGlvblNuYXBzaG90IHsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKQorICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7CisgICAgIENQVUNv bnRleHRNSVBTNjQgbWlwczY0OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQorKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7CisgI2VuZGlmCisgICB9IGNvbnRleHRfdW5p b25fOworICAgQ1BVQ29udGV4dCBjb250ZXh0XzsKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rl c3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0 aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKK2luZGV4IGU0ZmYxYWI3Li4yNTUzNGRkMCAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4 Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5j YworQEAgLTI5Niw3ICsyOTYsMjggQEAgdm9pZCBFeHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRl eHQmIGFjdHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgZXhwZWN0ZWQpIHsKKyAgICAgICAg ICAgICAwKTsKKyAjdW5kZWYgQ1BVX0FSQ0hfTkFNRQorIH0KKysjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKyt1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRleHRfdDsK KysKKyt2b2lkIEluaXRpYWxpemVDb250ZXh0KE5hdGl2ZUNQVUNvbnRleHQqIGNvbnRleHQpIHsK KysgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgeworKyAgICBjb250ZXh0 LT51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10gPSByZWc7CisrICB9CisrCisrICBtZW1zZXQoJmNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MsIDQ0LAorKyAgICAgIHNpemVvZihjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzKSk7CisrfQorIAorK3ZvaWQgRXhwZWN0Q29udGV4dChjb25zdCBD UFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGV4cGVjdGVkKSB7Cisr ICBFWFBFQ1RfRVEoYWN0dWFsLmFyY2hpdGVjdHVyZSwga0NQVUFyY2hpdGVjdHVyZVBQQzY0KTsK KysKKysgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgeworKyAgICBFWFBF Q1RfRVEoYWN0dWFsLnBwYzY0LT5yZWdzW3JlZ10sIGV4cGVjdGVkLnVjX21jb250ZXh0LmdwX3Jl Z3NbcmVnXSk7CisrICB9CisrCisrICBFWFBFQ1RfRVEobWVtY21wKGFjdHVhbC5wcGM2NC0+ZnBy ZWdzLCBleHBlY3RlZC51Y19tY29udGV4dC5mcF9yZWdzLAorKyAgICAgICAgICAgIHNpemVvZihh Y3R1YWwucHBjNjQtPmZwcmVncykpLCAwKTsKKyt9CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAj ZW5kaWYKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MKK2luZGV4IGI5NmFiZmU3 Li5kZjEyY2E1NiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCisrKysgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYwor QEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIFByb2Nlc3NSZWFkZXJMaW51eDo6VGhyZWFkOjpJbml0 aWFsaXplU3RhY2soUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIpIHsKKyAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgc3RhY2tfcG9pbnRlciA9IHJlYWRlci0+SXM2NEJp dCgpID8gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LnJlZ3NbMjldCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50 MzIucmVnc1syOV07CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBz dGFja19wb2ludGVyID0gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LmdwclsxXTsKKyAj ZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZgorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eF90ZXN0LmNj IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVh ZGVyX2xpbnV4X3Rlc3QuY2MKK2luZGV4IDViNTcyMzYxLi4wNDljMzI4NSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVh ZGVyX2xpbnV4X3Rlc3QuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MKK0BAIC02MTIsNiArNjEy LDggQEAgYm9vbCBXcml0ZVRlc3RNb2R1bGUoY29uc3QgYmFzZTo6RmlsZVBhdGgmIG1vZHVsZV9w YXRoKSB7CisgICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9BQVJDSDY0OworICNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfTUlQU0VMKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAg bW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fTUlQUzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0KQorKyAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fUFBDNjQ7CisgI2VuZGlmCisg CisgICBtb2R1bGUuZWhkci5lX3ZlcnNpb24gPSBFVl9DVVJSRU5UOworZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5o IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250 ZXh0LmgKK2luZGV4IDExMDAyNDY4Li44ZTMzNWEwOSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKKysrKyBi L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250 ZXh0LmgKK0BAIC00MjIsNiArNDIyLDg5IEBAIHN0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNvbnRl eHQ8Q29udGV4dFRyYWl0czY0PiwgbWNvbnRleHQuZnByZWdzKSA9PQorICAgICAgICAgICAgICAg ImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7CisgI2VuZGlmCisgCisrI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrCisrc3RydWN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCB7 CisrICB1aW50NjRfdCByZWdzWzMyXTsKKysgIHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1z cjsKKysgIHVpbnQ2NF90IG9yaWdfcjM7CisrICB1aW50NjRfdCBjdHI7CisrICB1aW50NjRfdCBs bms7CisrICB1aW50NjRfdCB4ZXI7CisrICB1aW50NjRfdCBjY3I7CisrICB1aW50NjRfdCBzb2Z0 ZTsKKysgIHVpbnQ2NF90IHRyYXA7CisrICB1aW50NjRfdCBkYXI7CisrICB1aW50NjRfdCBkc2lz cjsKKysgIHVpbnQ2NF90IHJlc3VsdDsKKysgIHVpbnQ2NF90IGRzY3I7CisrICB1aW50NjRfdCBm cHIwWzNdOworK307CisrCisrc3RydWN0IFNpZ25hbEZsb2F0Q29udGV4dDY0IHsKKysgIGRvdWJs ZSByZWdzWzMyXTsKKysgIGRvdWJsZSBmcHNjcjsKKyt9OworKworK3N0cnVjdCBTaWduYWxWZWN0 b3JDb250ZXh0NjQgeworKyAgaW50MzJfdCB2cnJlZ3NbMzJdWzRdOworKyAgc3RydWN0IHsKKysg ICAgaW50MzJfdCBfX3BhZFszXTsKKysgICAgaW50MzJfdCB2c2NyX3dvcmQ7CisrICB9IHZzY3I7 CisrICBpbnQzMl90IHZyc2F2ZTsKKysgIGludDMyX3QgX19wYWRbM107CisrfSBfX2F0dHJpYnV0 ZV9fKChfX2FsaWduZWRfXygxNikpKTsKKysKKysKKysjcHJhZ21hIHBhY2socG9wKQorK3N0cnVj dCBNQ29udGV4dDY0IHsKKysgIHVpbnQ2NF90IHJlc2VydmVkWzRdOworKyAgaW50MzJfdCBzaWdu YWw7CisrICBpbnQzMl90IF9fcGFkMDsKKysgIHVpbnQ2NF90IGhhbmRsZXI7CisrICB1aW50NjRf dCBvbGRtYXNrOworKyAgdWludDY0X3QgcHRfcmVnc19wdHI7CisrICBTaWduYWxUaHJlYWRDb250 ZXh0NjQgZ3BfcmVnczsKKysgIFNpZ25hbEZsb2F0Q29udGV4dDY0ICBmcF9yZWdzOworKyAgU2ln bmFsVmVjdG9yQ29udGV4dDY0ICp2X3JlZ3M7CisrICBpbnQ2NF90IHZteF9yZXNlcnZlWzY5XTsK Kyt9OworKworK3N0cnVjdCBDb250ZXh0VHJhaXRzNjQgOiBwdWJsaWMgVHJhaXRzNjQgeworKyAg dXNpbmcgTUNvbnRleHQgPSBNQ29udGV4dDY0OworKyAgdXNpbmcgU2lnbmFsVGhyZWFkQ29udGV4 dCA9IFNpZ25hbFRocmVhZENvbnRleHQ2NDsKKysgIHVzaW5nIFNpZ25hbEZsb2F0Q29udGV4dCA9 IFNpZ25hbEZsb2F0Q29udGV4dDY0OworKyAgdXNpbmcgU2lnbmFsVmVjdG9yQ29udGV4dCA9IFNp Z25hbFZlY3RvckNvbnRleHQ2NDsKKysgIHVzaW5nIENQVUNvbnRleHQgPSBDUFVDb250ZXh0UFBD NjQ7CisrfTsKKysKKytzdHJ1Y3QgQ29udGV4dFRyYWl0czMyIDogcHVibGljIFRyYWl0czMyIHt9 OworKworK3N0cnVjdCBVQ29udGV4dCB7CisrICB1aW50NjRfdCBmbGFnczsKKysgIHVpbnQ2NF90 IGxpbms7CisrICBTaWduYWxTdGFjazxDb250ZXh0VHJhaXRzNjQ+IHN0YWNrOworKyAgU2lnc2V0 PENvbnRleHRUcmFpdHM2ND4gc2lnbWFzazsKKysgIE1Db250ZXh0NjQgbWNvbnRleHQ7CisrfTsK KysjcHJhZ21hIHBhY2socHVzaCwgMSkKKysKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihVQ29udGV4 dCkgPT0gc2l6ZW9mKHVjb250ZXh0X3QpLAorKyAgICAgICAgICAgICAgInVjb250ZXh0X3Qgc2l6 ZSBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQoc2l6ZW9mKE1Db250ZXh0NjQpID09IHNpemVv ZihtY29udGV4dF90KSwKKysgICAgICAgICAgICAgICJtY29udGV4dF90IHNpemUgbWlzbWF0Y2gi KTsKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxUaHJlYWRDb250ZXh0NjQpID09IHNpemVv ZihncmVnc2V0X3QpLAorKyAgICAgICAgICAgICAgImdyZWdzZXRfdCBzaXplIG1pc21hdGNoIik7 Cisrc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsRmxvYXRDb250ZXh0NjQpID09IHNpemVvZihm cHJlZ3NldF90KSwKKysgICAgICAgICAgICAgICJmcHJlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsK KytzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxWZWN0b3JDb250ZXh0NjQpID09IHNpemVvZih2 cnJlZ3NldF90KSwKKysgICAgICAgICAgICAgICJ2cnJlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsK KytzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgPT0KKysgICAgICAg ICAgICAgIG9mZnNldG9mKHVjb250ZXh0X3QsIHVjX21jb250ZXh0KSwgIm1jb250ZXh0IG9mZnNl dCBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoTUNvbnRleHQ2NCwgZ3BfcmVn cykgPT0KKysgICAgICAgICAgICAgIG9mZnNldG9mKG1jb250ZXh0X3QsIGdwX3JlZ3MpLCAiZ3Bf cmVncyBvZmZzZXQgbWlzbWF0Y2giKTsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAg Ly8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3NuYXBzaG90X2xpbnV4 LmNjCitpbmRleCA4NTY0ZDNkNC4uYjY5MGVjZDQgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MK KysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3Rl bV9zbmFwc2hvdF9saW51eC5jYworQEAgLTIwMyw2ICsyMDMsOCBAQCBDUFVBcmNoaXRlY3R1cmUg U3lzdGVtU25hcHNob3RMaW51eDo6R2V0Q1BVQXJjaGl0ZWN0dXJlKCkgY29uc3QgeworICNlbGlm IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICByZXR1cm4gcHJvY2Vzc19yZWFkZXJf LT5JczY0Qml0KCkgPyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGtDUFVBcmNoaXRlY3R1cmVNSVBTRUw7CisrI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICByZXR1cm4ga0NQVUFyY2hpdGVjdHVyZVBQ QzY0OworICNlbHNlCisgI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5kaWYK K0BAIC0yMTgsNiArMjIwLDkgQEAgdWludDMyX3QgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVUmV2 aXNpb24oKSBjb25zdCB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAg IC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiAwOworKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQ UEM2NAorKyAgcmV0dXJuIDA7CisgI2Vsc2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVj dHVyZQorICNlbmRpZgorQEAgLTIzOCw2ICsyNDMsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFw c2hvdExpbnV4OjpDUFVWZW5kb3IoKSBjb25zdCB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiBz dGQ6OnN0cmluZygpOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAg Ly8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAorKyAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7 CisgI2Vsc2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQorICNlbmRpZgorQEAg LTM3MSw2ICszNzksOSBAQCBib29sIFN5c3RlbVNuYXBzaG90TGludXg6Ok5YRW5hYmxlZCgpIGNv bnN0IHsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgLy8gTm90IGlt cGxlbWVudGFibGUgb24gTUlQUworICAgcmV0dXJuIGZhbHNlOworKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAor KyAgcmV0dXJuIGZhbHNlOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNI X0NQVV9YODZfRkFNSUxZCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKK2lu ZGV4IGUzZTJiZWJkLi44ZWY0Mzc1MiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYworKysrIGIv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBz aG90X2xpbnV4LmNjCitAQCAtMTg2LDYgKzE4NiwxNCBAQCBib29sIFRocmVhZFNuYXBzaG90TGlu dXg6OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNzX3JlYWRlciwKKyAgICAg ICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmYzMiwKKyAgICAgICAgIGNvbnRl eHRfLm1pcHNlbCk7CisgICB9CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp CisrICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7CisrICBj b250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsKKysgIEluaXRpYWxpemVDUFVD b250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0PigKKysgICAgICB0aHJlYWQudGhyZWFkX2luZm8u dGhyZWFkX2NvbnRleHQudDY0LAorKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250 ZXh0LmY2NCwKKysgICAgICB0aHJlYWQudGhyZWFkX2luZm8udmVjdG9yX2NvbnRleHQudjY0LAor KyAgICAgIGNvbnRleHRfLnBwYzY0KTsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZgor ZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90 aHJlYWRfc25hcHNob3RfbGludXguaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAoraW5kZXggNDRjYzZmNmQuLmQ0MTM2 NDYxIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCitAQCAtNjgs NiArNjgsOCBAQCBjbGFzcyBUaHJlYWRTbmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIFRocmVh ZFNuYXBzaG90IHsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgICBD UFVDb250ZXh0TUlQUyBtaXBzZWw7CisgICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OworKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICBDUFVDb250ZXh0UFBDNjQg cHBjNjQ7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9G QU1JTFkKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51 eC9hdXhpbGlhcnlfdmVjdG9yLmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYworaW5kZXggZDNkNWViZGYuLjNmZDczMGNiIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlh cnlfdmVjdG9yLmNjCisrKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xp bnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKK0BAIC01Niw2ICs1NiwxMSBAQCBib29sIEF1eGlsaWFy eVZlY3Rvcjo6UmVhZChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7CisgICAgIGlmICh0 eXBlID09IEFUX0lHTk9SRSkgeworICAgICAgIGNvbnRpbnVlOworICAgICB9CisrI2lmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICBpZiAodHlwZSA9PSBBVF9JR05PUkVQUEMp IHsKKysgICAgICBjb250aW51ZTsKKysgICAgfQorKyNlbmRpZgorICAgICBpZiAoIU1hcEluc2Vy dE9yUmVwbGFjZSgmdmFsdWVzXywgdHlwZSwgdmFsdWUsIG51bGxwdHIpKSB7CisgICAgICAgTE9H KEVSUk9SKSA8PCAiZHVwbGljYXRlIGF1eHYgZW50cnkiOworICAgICAgIHJldHVybiBmYWxzZTsK K2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJh Y2VfYnJva2VyLmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRy YWNlX2Jyb2tlci5jYworaW5kZXggMTU1YTFlMGMuLjVlNTBjZWI1IDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNjCisr KysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZV9icm9r ZXIuY2MKK0BAIC05NCw4ICs5NCw4IEBAIGludCBQdHJhY2VCcm9rZXI6OlJ1bigpIHsKKyB9Cisg CisgYm9vbCBQdHJhY2VCcm9rZXI6OkFsbG9jYXRlQXR0YWNobWVudHMoKSB7CistICBjb25zdGV4 cHIgc2l6ZV90IHBhZ2Vfc2l6ZSA9IDQwOTY7CistICBjb25zdGV4cHIgc2l6ZV90IGFsbG9jX3Np emUgPQorKyAgc3RhdGljIHNpemVfdCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOworKyAgc2l6 ZV90IGFsbG9jX3NpemUgPQorICAgICAgIChzaXplb2YoU2NvcGVkUHRyYWNlQXR0YWNoKSArIHBh Z2Vfc2l6ZSAtIDEpICYgfihwYWdlX3NpemUgLSAxKTsKKyAgIHZvaWQqIGFsbG9jID0gc2Jyayhh bGxvY19zaXplKTsKKyAgIGlmIChyZWludGVycHJldF9jYXN0PGludHB0cl90PihhbGxvYykgPT0g LTEpIHsKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51 eC9wdHJhY2VyLmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRy YWNlci5jYworaW5kZXggNTU3ZTBkMzYuLjA4YWU0MzRiIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCisrKysgYi90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKK0BAIC0zOTgsNiAr Mzk4LDY0IEBAIGJvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKyAgIHJldHVybiB0cnVl OworIH0KKyAKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysvLyBQUEM2 NCBoYXMgaGFkIEhBVkVfQVJDSF9UUkFDRUhPT0sgc2V0IHNpbmNlIDIuNi4yNyAoZXZlbiBiZWZv cmUgeDg2IGhhZCBpdCkuCisrLy8gVGhhdCBtZWFucyB3ZSBjYW4gc2ltcGx5IHVzZSBQVFJBQ0Vf R0VUUkVHRVNFVC4KKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVzdGluYXRpb24+CisrYm9vbCBH ZXRSZWdpc3RlclNldChwaWRfdCB0aWQsIGludCBzZXQsIERlc3RpbmF0aW9uKiBkZXN0LCBib29s IGNhbl9sb2cpIHsKKysgIGlvdmVjIGlvdjsKKysgIGlvdi5pb3ZfYmFzZSA9IHJlaW50ZXJwcmV0 X2Nhc3Q8dm9pZCo+KGRlc3QpOworKyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoKmRlc3QpOworKyAg aWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+ KHNldCksICZpb3YpICE9IDApIHsKKysgICAgUExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgInB0 cmFjZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIGlmIChpb3YuaW92X2xlbiAhPSBz aXplb2YoKmRlc3QpKSB7CisrICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuZXhwZWN0 ZWQgcmVnaXN0ZXJzIHNpemUiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrICByZXR1cm4g dHJ1ZTsKKyt9CisrCisrYm9vbCBHZXRWZWN0b3JSZWdpc3RlcnM2NChwaWRfdCB0aWQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3JDb250ZXh0KiBjb250ZXh0LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7CisrICByZXR1cm4gR2V0UmVnaXN0ZXJT ZXQodGlkLCBOVF9QUENfVk1YLCAmY29udGV4dC0+djY0LCBjYW5fbG9nKTsKKyt9CisrCisrYm9v bCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzNjQocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysgIHJldHVybiBHZXRSZWdpc3Rl clNldCh0aWQsIE5UX1BSRlBSRUcsICZjb250ZXh0LT5mNjQsIGNhbl9sb2cpOworK30KKysKKyti b29sIEdldFRocmVhZEFyZWE2NChwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAgY29u c3QgVGhyZWFkQ29udGV4dCYgY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICBMaW51eFZN QWRkcmVzcyogYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsK KysgIC8vIFBQQzY0IGRvZXNuJ3QgaGF2ZSBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBIHNpbmNlIHRo ZSB0aHJlYWQgcG9pbnRlcgorKyAgLy8gaXMgc3RvcmVkIGluIEdQUiAxMy4KKysgIFRocmVhZENv bnRleHQ6OnQ2NF90IHRjOworKyAgaWYgKCFHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BSU1RBVFVT LCAmdGMsIGNhbl9sb2cpKSB7CisrICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuYWJs ZSB0byBnZXQgdGhyZWFkIHBvaW50ZXIhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKwor KyAgKmFkZHJlc3MgPSB0Yy5ncHJbMTNdOworKworKyAgcmV0dXJuIHRydWU7CisrfQorKworKy8v IFN0dWJzIGZvciAzMi1iaXQgZnVuY3Rpb25zIG5vdCBhcHBsaWNhYmxlIG9uIFBQQzY0CisrYm9v bCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzMzIocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9CisrYm9v bCBHZXRUaHJlYWRBcmVhMzIocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IFRocmVhZENvbnRleHQgJmNvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFk ZHJlc3MgKmFkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7IHJl dHVybiBmYWxzZTsgfQorKworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNI X0NQVV9YODZfRkFNSUxZCitAQCAtNDk0LDYgKzU1Miw5IEBAIGJvb2wgUHRyYWNlcjo6R2V0VGhy ZWFkSW5mbyhwaWRfdCB0aWQsIFRocmVhZEluZm8qIGluZm8pIHsKKyAgIGlmIChpc182NF9iaXRf KSB7CisgICAgIHJldHVybiBHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVyczY0KHRpZCwgJmluZm8t PnRocmVhZF9jb250ZXh0LCBjYW5fbG9nXykgJiYKKyAgICAgICAgICAgIEdldEZsb2F0aW5nUG9p bnRSZWdpc3RlcnM2NCh0aWQsICZpbmZvLT5mbG9hdF9jb250ZXh0LCBjYW5fbG9nXykgJiYKKysj aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgICAgICAgICBHZXRWZWN0b3JS ZWdpc3RlcnM2NCh0aWQsICZpbmZvLT52ZWN0b3JfY29udGV4dCwgY2FuX2xvZ18pICYmCisrI2Vu ZGlmCisgICAgICAgICAgICBHZXRUaHJlYWRBcmVhNjQodGlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluZm8tPnRocmVhZF9jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZpbmZvLT50aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzLAorZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmggdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCitpbmRleCA1 YjU1YzI0YS4uZGVhMGQxZjMgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAorQEAgLTI4LDYgKzI4LDEwIEBACisg I2luY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+CisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKysjZW5k aWYKKysKKyBuYW1lc3BhY2UgY3Jhc2hwYWQgeworIAorIC8vISBcYnJpZWYgVGhlIHNldCBvZiBn ZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzIGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5LgorQEAg LTc5LDYgKzgzLDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7CisgICAgIHVpbnQzMl90IGNwMF9z dGF0dXM7CisgICAgIHVpbnQzMl90IGNwMF9jYXVzZTsKKyAgICAgdWludDMyX3QgcGFkZGluZzFf OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBQUEM2NCBp cyA2NC1iaXQKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2 X0ZBTUlMWQorQEAgLTEzMiw2ICsxMzgsMjEgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7CisgICAg IHVpbnQ2NF90IGNwMF9iYWR2YWRkcjsKKyAgICAgdWludDY0X3QgY3AwX3N0YXR1czsKKyAgICAg dWludDY0X3QgY3AwX2NhdXNlOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQorKyAgICAvLyBSZWZsZWN0cyBzdHJ1Y3QgcHRfcmVncyBpbiBhc20vcHRyYWNlLmguCisrICAg IHVpbnQ2NF90IGdwclszMl07CisrICAgIHVpbnQ2NF90IG5pcDsKKysgICAgdWludDY0X3QgbXNy OworKyAgICB1aW50NjRfdCBvcmlnX2dwcjM7CisrICAgIHVpbnQ2NF90IGN0cjsKKysgICAgdWlu dDY0X3QgbG5rOworKyAgICB1aW50NjRfdCB4ZXI7CisrICAgIHVpbnQ2NF90IGNjcjsKKysgICAg dWludDY0X3Qgc29mdGU7CisrICAgIHVpbnQ2NF90IHRyYXA7CisrICAgIHVpbnQ2NF90IGRhcjsK KysgICAgdWludDY0X3QgZHNpc3I7CisrICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAjZWxzZQorICNl cnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTE0Myw2ICsx NjQsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKKyAgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRl eHQgPSB1c2VyX3JlZ3M7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAv LyBObyBhcHByb3ByaWF0ZSBOYXRpdmVUaHJlYWRzQ29udGV4dCB0eXBlIGF2YWlsYWJsZSBmb3Ig TUlQUworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgdXNpbmcgTmF0 aXZlVGhyZWFkQ29udGV4dCA9IHN0cnVjdCBwdF9yZWdzOworICNlbHNlCisgI2Vycm9yIFBvcnQu CisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZIHx8IEFSQ0hfQ1BVX0FSTTY0CitAQCAt MjE4LDYgKzI0MSw5IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7CisgICAgIH0gZnByZWdzWzMyXTsK KyAgICAgdWludDMyX3QgZnBjc3I7CisgICAgIHVpbnQzMl90IGZwdV9pZDsKKysjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgLy8gQ3Jhc2hwYWQncyBQUEMgc3VwcG9y dCBpcyA2NC1iaXQgb25seSwgc28gdGhpcworKyAgICAvLyAzMmJpdC1vbmx5IHN0cnVjdCBpcyBk ZWNsYXJlZCBhcyBlbXB0eS4KKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJD SF9DUFVfWDg2X0ZBTUlMWQorQEAgLTI1Miw2ICsyNzgsMTAgQEAgdW5pb24gRmxvYXRDb250ZXh0 IHsKKyAgICAgZG91YmxlIGZwcmVnc1szMl07CisgICAgIHVpbnQzMl90IGZwY3NyOworICAgICB1 aW50MzJfdCBmcHVfaWQ7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisr ICAgIC8vIFJlZmxlY3RzIGZwcmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0LmgKKysgICAgZG91Ymxl IGZwcmVnc1szMl07CisrICAgIGRvdWJsZSBmcHNjcjsKKyAjZWxzZQorICNlcnJvciBQb3J0Lgor ICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTI4MCw2ICszMTAsOCBAQCB1bmlv biBGbG9hdENvbnRleHQgeworICAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2Yo dXNlcl9mcHNpbWRfc3RydWN0KSwgIlNpemUgbWlzbWF0Y2giKTsKKyAjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKQorIC8vIE5vIGFwcHJvcHJpYXRlIGZsb2F0aW5nIHBvaW50IGNv bnRleHQgbmF0aXZlIHR5cGUgZm9yIGF2YWlsYWJsZSBNSVBTLgorKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXpl b2YoZnByZWdzZXRfdCksICJTaXplIG1pc21hdGNoIik7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4K KyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4NgorQEAgLTI4Nyw2ICszMTksMjYgQEAgdW5pb24gRmxv YXRDb250ZXh0IHsKKyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc3RhbmRhcmRfbGF5b3V0PEZsb2F0 Q29udGV4dD46OnZhbHVlLAorICAgICAgICAgICAgICAgIk5vdCBzdGFuZGFyZCBsYXlvdXQiKTsK KyAKKysvLyEgXGJyaWVmIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIGFuIGFyY2hpdGVj dHVyZSBmYW1pbHkKKyt1bmlvbiBWZWN0b3JDb250ZXh0IHsKKysgIHN0cnVjdCB2MzJfdCB7fSB2 MzI7CisrI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgX19hdHRyaWJ1dGVf XygoX19hbGlnbmVkX18oMTYpKSkgLy8gVmVjdG9yIGNvbnRleHQgbXVzdCBiZSBkb3VibGV3b3Jk IGFsaWduZWQuCisrI2VuZGlmCisrICBzdHJ1Y3QgdjY0X3QgeworKyNpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgLy8gUmVmbGVjdHMgdnJyZWdzZXRfdCBpbiBzeXMvdWNv bnRleHQuaAorKyAgICB1aW50MzJfdCB2cnJlZ3NbMzJdWzRdOworKyAgICBzdHJ1Y3QgeworKyAg ICAgIHVpbnQzMl90IF9fcGFkWzNdOworKyAgICAgIHVpbnQzMl90IHZzY3Jfd29yZDsKKysgICAg fSB2c2NyOworKyAgICB1aW50MzJfdCB2cnNhdmU7CisrICAgIHVpbnQzMl90IF9fcGFkWzNdOwor KyNlbmRpZgorKyAgfSB2NjQ7CisrfTsKKysKKyAvLyEgXGJyaWVmIEEgY29sbGVjdGlvbiBvZiBg cHRyYWNlYC1hYmxlIGluZm9ybWF0aW9uIGFib3V0IGEgdGhyZWFkLgorIHN0cnVjdCBUaHJlYWRJ bmZvIHsKKyAgIFRocmVhZEluZm8oKTsKK0BAIC0yOTgsNiArMzUwLDkgQEAgc3RydWN0IFRocmVh ZEluZm8geworICAgLy8hIFxicmllZiBUaGUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGZvciB0 aGUgdGhyZWFkLgorICAgRmxvYXRDb250ZXh0IGZsb2F0X2NvbnRleHQ7CisgCisrICAvLyEgXGJy aWVmIChPcHRpb25hbCkgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgdGhlIHRocmVhZC4K KysgIFZlY3RvckNvbnRleHQgdmVjdG9yX2NvbnRleHQ7CisrCisgICAvLyEgXGJyaWVmIFRoZSB0 aHJlYWQtbG9jYWwgc3RvcmFnZSBhZGRyZXNzIGZvciB0aGUgdGhyZWFkLgorICAgTGludXhWTUFk ZHJlc3MgdGhyZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVzczsKKyB9OworZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmggdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCitp bmRleCAzZmY3MTE4NC4uM2U4MmY0YjkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKKysrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAorQEAgLTY4LDYg KzY4LDcgQEAgdXNpbmcgTmF0aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7CisgLy8hICAgICBt YWNPUy9MaW51eC9GdWNoc2lhIHwgeDg2XzY0ICAgICAgIHwgYCUlcmRpYAorIC8vISAgICAgTGlu dXggICAgICAgICAgICAgICB8IEFSTS9BUk02NCAgICB8IGByMGAvYHgwYAorIC8vISAgICAgTGlu dXggICAgICAgICAgICAgICB8IE1JUFMvTUlQUzY0ICB8IGAkYTBgCisrLy8hICAgICBMaW51eCAg ICAgICAgICAgICAgIHwgUFBDNjQgICAgICAgIHwgYHIzYAorIC8vIQorIC8vISAgICAgQWRkaXRp b25hbGx5LCB0aGUgdmFsdWUgYExSYCBvbiBBUk0vQVJNNjQgd2lsbCBiZSB0aGUgcmV0dXJuIGFk ZHJlc3Mgb2YKKyAvLyEgICAgIHRoaXMgZnVuY3Rpb24uCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUyB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4 LlMKK2luZGV4IDUyMjE1ZWU1Li5iM2U0YTNlYyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUworKysrIGIv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9s aW51eC5TCitAQCAtMzIsNyArMzIsNyBAQAorICAgLmJhbGlnbiA0LCAweDAKKyAgIC50eXBlIENB UFRVUkVDT05URVhUX1NZTUJPTCwgJWZ1bmN0aW9uCisgICAudHlwZSBDQVBUVVJFQ09OVEVYVF9T WU1CT0wyLCAlZnVuY3Rpb24KKy0jZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorKyNlbGlmIGRlZmlu ZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC5iYWxpZ24gNCwgMHgw CisgI2VuZGlmCisgCitAQCAtNDIzLDQgKzQyMywyMTQgQEAgQ0FQVFVSRUNPTlRFWFRfU1lNQk9M MjoKKyAgIGpyICRyYQorIAorICAgLnNldCBhdAorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysgIC8vIFN0b3JlIHIwLXIzMQorKyAgc3RkIDAsIDB4ZTgoMykgICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzBdCisrICBzdGQgMSwgMHhmMCgzKSAgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbMV0KKysgIHN0ZCAyLCAweGY4KDMpICAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1syXQorKyAgLy8gbm90ZSB0aGF0IHIzJ3Mgb3JpZ2luYWwgdmFsdWUg d2FzIGxvc3QKKysgIHN0ZCAzLCAweDEwMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1szXQorKyAgc3RkIDQsIDB4MTA4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzWzRdCisrICBzdGQgNSwgMHgxMTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbNV0KKysgIHN0ZCA2LCAweDExOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1s2XQorKyAgc3RkIDcsIDB4MTIwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz WzddCisrICBzdGQgOCwgMHgxMjgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb OF0KKysgIHN0ZCA5LCAweDEzMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s5 XQorKyAgc3RkIDEwLCAweDEzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEw XQorKyAgc3RkIDExLCAweDE0MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEx XQorKyAgc3RkIDEyLCAweDE0OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEy XQorKyAgc3RkIDEzLCAweDE1MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEz XQorKyAgc3RkIDE0LCAweDE1OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE0 XQorKyAgc3RkIDE1LCAweDE2MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE1 XQorKyAgc3RkIDE2LCAweDE2OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE2 XQorKyAgc3RkIDE3LCAweDE3MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE3 XQorKyAgc3RkIDE4LCAweDE3OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE4 XQorKyAgc3RkIDE5LCAweDE4MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE5 XQorKyAgc3RkIDIwLCAweDE4OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIw XQorKyAgc3RkIDIxLCAweDE5MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIx XQorKyAgc3RkIDIyLCAweDE5OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIy XQorKyAgc3RkIDIzLCAweDFhMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIz XQorKyAgc3RkIDI0LCAweDFhOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI0 XQorKyAgc3RkIDI1LCAweDFiMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI1 XQorKyAgc3RkIDI2LCAweDFiOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI2 XQorKyAgc3RkIDI3LCAweDFjMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI3 XQorKyAgc3RkIDI4LCAweDFjOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI4 XQorKyAgc3RkIDI5LCAweDFkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI5 XQorKyAgc3RkIDMwLCAweDFkOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMw XQorKyAgc3RkIDMxLCAweDFlMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMx XQorKworKyAgLy8gRm9yIE5JUCwgd2UgY2FuIHVzZSB0aGUgdmFsdWUgaW4gdGhlIGxpbmsgcmVn aXN0ZXIKKysgIG1mbHIgMAorKyAgc3RkIDAsIDB4MWU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfTklQXQorKworKyAgLy8gQ1RSCisrICBtZmN0ciAwCisrICBzdGQgMCwg MHgyMDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdCisrCisrICAv LyBGb3IgTE5LLCB3ZSdsbCB1c2UgdGhlIGNhbGxlcidzIExSIHNhdmUgYXJlYSAoMiBzdGFjayBm cmFtZXMgdXApLgorKyAgLy8gcjQgY2FuIGJlIHVzZWQgYXMgYSBzY3JhdGNoIHJlZ2lzdGVyIHNp bmNlIGl0IGhhcyBhbHJlYWR5IGJlZW4gc2F2ZWQuCisrICBsZCA0LCAwKDEpCisrICBsZCA0LCAx Nig0KQorKyAgc3RkIDQsIDB4MjA4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfTE5LXQorKworKyAgLy8gWEVSCisrICBtZnhlciAwCisrICBzdGQgMCwgMHgyMTAoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdCisrCisrICAvLyBDQ1IKKysgIG1m Y3IgMAorKyAgc3RkIDAsIDB4MjE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfQ0NSXQorKworKyAgLy8gTVNSLCBvcmlnX3IzLCBNUSwgVFJBUCwgREFSLCBEU0lTUiwgUkVT VUxULCBEU0NSLAorKyAgLy8gbm90IHVzZWQgb3Igbm90IHJlbGV2YW50LCAgemVybyB0aGVtIG91 dC4KKysgIGxpIDQsIDAKKysgIHN0ZCA0LCAweDFmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5ncF9yZWdzW1BUX01TUl0KKysgIHN0ZCA0LCAweDFmOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX09SSUdfUjNdCisrICBzdGQgNCwgMHgyMjAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NUV0KKysgIHN0ZCA0LCAweDIyOCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1RSQVBdCisrICBzdGQgNCwgMHgyMzAoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EQVJdCisrICBzdGQgNCwgMHgyMzgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EU0lTUl0KKysgIHN0ZCA0LCAweDI0MCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1JFU1VMVF0KKysgIHN0ZCA0LCAw eDI0OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTQ1JdCisrCisrICAv LyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRleHQucmVncyB0byBwb2ludCB0byBncF9yZWdzCisr ICBhZGRpIDAsIDMsIDB4ZTgKKysgIHN0ZCAwLCAweGUwKDMpCisrCisrICAvLyBTYXZlIGZsb2F0 aW5nIHBvaW50IHJlZ2lzdGVycyAwLTMxCisrICBzdGZkIDAsIDB4MjY4KDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzBdCisrICBzdGZkIDEsIDB4MjcwKDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzFdCisrICBzdGZkIDIsIDB4Mjc4KDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzJdCisrICBzdGZkIDMsIDB4MjgwKDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzNdCisrICBzdGZkIDQsIDB4Mjg4KDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzRdCisrICBzdGZkIDUsIDB4MjkwKDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzVdCisrICBzdGZkIDYsIDB4Mjk4KDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzZdCisrICBzdGZkIDcsIDB4MmEwKDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzddCisrICBzdGZkIDgsIDB4MmE4KDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzhdCisrICBzdGZkIDksIDB4MmIwKDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzldCisrICBzdGZkIDEwLCAweDJiOCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzEwXQorKyAgc3RmZCAxMSwgMHgyYzAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMV0KKysgIHN0ZmQgMTIsIDB4MmM4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTJdCisrICBzdGZkIDEzLCAweDJkMCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEzXQorKyAgc3RmZCAxNCwgMHgyZDgoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNF0KKysgIHN0ZmQgMTUsIDB4MmUwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTVdCisrICBzdGZkIDE2LCAweDJlOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE2XQorKyAgc3RmZCAxNywgMHgyZjAoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxN10KKysgIHN0ZmQgMTgsIDB4MmY4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMThdCisrICBzdGZkIDE5LCAweDMwMCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE5XQorKyAgc3RmZCAyMCwgMHgzMDgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMF0KKysgIHN0ZmQgMjEsIDB4MzEwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjFdCisrICBzdGZkIDIyLCAweDMxOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIyXQorKyAgc3RmZCAyMywgMHgzMjAo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syM10KKysgIHN0ZmQgMjQsIDB4MzI4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjRdCisrICBzdGZkIDI1LCAweDMz MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI1XQorKyAgc3RmZCAyNiwgMHgz MzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNl0KKysgIHN0ZmQgMjcsIDB4 MzQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjddCisrICBzdGZkIDI4LCAw eDM0OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI4XQorKyAgc3RmZCAyOSwg MHgzNTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syOV0KKysgIHN0ZmQgMzAs IDB4MzU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzBdCisrICBzdGZkIDMx LCAweDM2MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMxXQorKworKyAgLy8g RlBTQ1IKKysgIG1mZnMgMAorKyAgc3RmZCAwLCAweDM2OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzMyXQorKworKyAgLy8gU2F2ZSBWTVggVmVjdG9yIHJlZ2lzdGVycworKyAg Ly8gVXBkYXRlIHI0IHRvIGNvbnRhaW4gdGhlIGJhc2UgYWRkcmVzcyBvZiB2bXhfcmVzZXJ2ZQor KyAgYWRkaSA0LCAzLCAweDM3OAorKyAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgcXVhZHdvcmQgYWxp Z25lZAorKyAgYW5kaS4gNSwgNCwgMHhGCisrICBiZXEgMWYgLy8gTm8gYWxpZ25tZW50IGlzIG5l Y2Vzc2FyeQorKyAgLy8gQWRkcmVzcyBpcyBkb3VibGV3b3JkIGFsaWduZWQgYW5kIG5vdCBxdWFk d29yZCBhbGlnbmVkLCBhZGQgOAorKyAgYWRkaSA0LCA0LCA4CisrCisrMToKKysgIC8vIFN0b3Jl IFZNWCByZWdpc3RlcnMgMC0zMQorKyAgLy8gcjQgd2lsbCBjb250YWluIHRoZSBiYXNlIGFkZHJl c3MKKysgIC8vIHI1IHdpbGwgY29udGFpbiB0aGUgaW5kZXgKKysgIGxpIDUsIDAKKysgIHN0dngg MCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAw XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDFdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4 IDIsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg Ml0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2 eCA0LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDRdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDUsIDQsIDUgICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0 dnggNiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyA2XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA3LCA0LCA1ICAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDddCisrICBhZGRpIDUsIDUsIDE2CisrICBz dHZ4IDgsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgOF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggOSwgNCwgNSAgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA5XQorKyAgYWRkaSA1LCA1LCAxNgorKyAg c3R2eCAxMCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDEwXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxMSwgNCwgNSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDExXQorKyAgYWRkaSA1LCA1LCAxNgor KyAgc3R2eCAxMiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDEyXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxMywgNCwgNSAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEzXQorKyAgYWRkaSA1LCA1LCAx NgorKyAgc3R2eCAxNCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDE0XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxNSwgNCwgNSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE1XQorKyAgYWRkaSA1LCA1 LCAxNgorKyAgc3R2eCAxNiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDE2XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxNywgNCwgNSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE3XQorKyAgYWRkaSA1 LCA1LCAxNgorKyAgc3R2eCAxOCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDE4XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxOSwgNCwgNSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE5XQorKyAgYWRk aSA1LCA1LCAxNgorKyAgc3R2eCAyMCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDIwXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyMSwgNCwg NSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIxXQorKyAg YWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyMiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDIyXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyMywg NCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIzXQor KyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyNCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI0XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAy NSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI1 XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyNiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI2XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2 eCAyNywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDI3XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyOCwgNCwgNSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI4XQorKyAgYWRkaSA1LCA1LCAxNgorKyAg c3R2eCAyOSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDI5XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAzMCwgNCwgNSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDMwXQorKyAgYWRkaSA1LCA1LCAxNgor KyAgc3R2eCAzMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDMxXQorKyAgYWRkaSA1LCA1LCAxNgorKworKyAgLy8gVlNDUgorKyAgbWZ2c2NyIDAK KysgIHN0dnggMCwgNCwgNQorKyAgYWRkaSA1LCA1LCAxNgorKworKyAgLy8gVlJTQVZFCisrICBt ZnZyc2F2ZSAwCisrICBzdHd4IDAsIDQsIDUKKysKKysgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19t Y29udGV4dC52X3JlZ3MgdG8gcG9pbnQgdG8gdm14X3Jlc2VydmUgKyBhbGlnbm1lbnQuCisrICBz dGQgNCwgMHgzNzAoMykKKysKKysgIC8vIFplcm8gb3V0IGFsbCB1bnVzZWQgZmllbGRzCisrICBs aSA0LCAwCisrICBzdGQgNCwgMHhjOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5zaWduYWwK KysgIHN0ZCA0LCAweGQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmhhbmRsZXIKKysgIHN0 ZCA0LCAweGQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lm9sZG1hc2sKKysKKysgIGJscgor ICNlbmRpZiAgLy8gX19pMzg2X18KK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYworaW5kZXggY2Yy M2MyZGUuLjVmMjY0YmM5IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKK0BAIC01 Nyw3ICs1Nyw3IEBAIHZvaWQgVGVzdENhcHR1cmVDb250ZXh0KCkgeworICAgdWludHB0cl90IHBj ID0gUHJvZ3JhbUNvdW50ZXJGcm9tQ29udGV4dChjb250ZXh0XzEpOworIAorICNpZiAhZGVmaW5l ZChBRERSRVNTX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IFwKKy0gICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikKKysgICAgIWRlZmluZWQoTUVNT1JZ X1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorICAgLy8gU2Fu aXRpemVycyBjYW4gY2F1c2UgZW5vdWdoIGNvZGUgYmxvYXQgdGhhdCB0aGUg4oCcbmVhcmJ54oCd IGNoZWNrIHdvdWxkCisgICAvLyBsaWtlbHkgZmFpbC4KKyAgIGNvbnN0IHVpbnRwdHJfdCBrUmVm ZXJlbmNlUEMgPQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5j YworaW5kZXggOWZjNWRiMjguLjVmNjlmOGRjIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXgu Y2MKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJl X2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNjCitAQCAtMzYsNiArMzYsOCBAQCB2b2lkIFNhbml0 eUNoZWNrQ29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7CisgICBFWFBF Q1RfRVEoY29udGV4dC51Y19tY29udGV4dC5yZWdzWzBdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0 cl90PigmY29udGV4dCkpOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisg ICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJDYXN0 PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZB TUlMWSkKKysgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbM10sIEZyb21Q b2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7CisgI2VuZGlmCisgfQorIAorQEAgLTUw LDYgKzUyLDggQEAgdWludHB0cl90IFByb2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29uc3QgTmF0 aXZlQ1BVQ29udGV4dCYgY29udGV4dCkgeworICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQu cGM7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBjb250 ZXh0LnVjX21jb250ZXh0LnBjOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQorKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworICNlbmRp ZgorIH0KKyAKK0BAIC02NCw2ICs2OCw4IEBAIHVpbnRwdHJfdCBTdGFja1BvaW50ZXJGcm9tQ29u dGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7CisgICByZXR1cm4gY29udGV4 dC51Y19tY29udGV4dC5zcDsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQor ICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbMjldOworKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3Bf cmVnc1sxXTsKKyAjZW5kaWYKKyB9CisgCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjCitpbmRleCA1OGJmYThmOC4uOGZj MzdjNDYgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bv c2l4L3NpZ25hbHNfdGVzdC5jYworKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MKK0BAIC00NiwxMiArNDYsMTIgQEAgYm9vbCBDYW5D YXVzZVNpZ25hbChpbnQgc2lnKSB7CisgICByZXR1cm4gc2lnID09IFNJR0FCUlQgfHwKKyAgICAg ICAgICBzaWcgPT0gU0lHQUxSTSB8fAorICAgICAgICAgIHNpZyA9PSBTSUdCVVMgfHwKKy0jaWYg IWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCisrI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAm JiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKyAgICAgICAgICBzaWcgPT0gU0lHRlBFIHx8Cist I2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKKysjZW5kaWYgIC8vICFkZWZpbmVk KEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKyAjaWYgZGVmaW5l ZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQorICAgICAg ICAgIHNpZyA9PSBTSUdJTEwgfHwKKy0jZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZB TUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTAorKyNlbmRpZiAgLy8gZGVmaW5lZChBUkNI X0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQorICAgICAgICAgIHNp ZyA9PSBTSUdQSVBFIHx8CisgICAgICAgICAgc2lnID09IFNJR1NFR1YgfHwKKyAjaWYgZGVmaW5l ZChPU19NQUNPU1gpCitAQCAtMTE3LDkgKzExNywxMSBAQCB2b2lkIENhdXNlU2lnbmFsKGludCBz aWcpIHsKKyAgICAgICBicmVhazsKKyAgICAgfQorIAorLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9B Uk02NCkKKysjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0KQorICAgICAvLyBBUk02NCBoYXMgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiBpbnN0 cnVjdGlvbnMgdGhhdCBkb27igJl0IGdlbmVyYXRlIGEKKyAgICAgLy8gdHJhcCBmb3IgZGl2aWRl LWJ5LXplcm8sIHNvIHRoaXMgZG9lc27igJl0IHByb2R1Y2UgU0lHRlBFLgorKyAgICAvLworKyAg ICAvLyBQUEM2NCBmaXhlZC1wb2ludCBkaXZpc2lvbiBieSB6ZXJvIGFsc28gZG9lc24ndCBwcm9k dWNlIGEgU0lHRlBFLgorICAgICBjYXNlIFNJR0ZQRTogeworICAgICAgIC8vIE9wdGltaXphdGlv biBtYWtlcyB0aGlzIHRyaWNreSwgc28gZ2V0IHplcm8gZnJvbSBhIHN5c3RlbSBjYWxsIGxpa2Vs eQorICAgICAgIC8vIHRvIHN1Y2NlZWQsIGFuZCB0cnkgdG8gZG8gc29tZXRoaW5nIHdpdGggdGhl IHJlc3VsdC4KK0BAIC0xMzcsNyArMTM5LDcgQEAgdm9pZCBDYXVzZVNpZ25hbChpbnQgc2lnKSB7 CisgICAgICAgZnN0YXQocXVvdGllbnQsICZzdGF0X2J1Zik7CisgICAgICAgYnJlYWs7CisgICAg IH0KKy0jZW5kaWYgIC8vIEFSQ0hfQ1BVX0FSTTY0CisrI2VuZGlmICAvLyAhZGVmaW5lZChBUkNI X0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgCisgI2lmIGRlZmluZWQo QVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKKyAgICAgY2Fz ZSBTSUdJTEw6IHsKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24gdGhpcmRf cGFydHkvZGF2MWQvQlVJTEQuZ24KK2luZGV4IDc4OGRjNmNmLi41ZmQ3ZThmZCAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCisrKysgYi90aGlyZF9wYXJ0eS9kYXYxZC9C VUlMRC5nbgorQEAgLTE4Miw2ICsxODIsOCBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWRfOGJpdCIp IHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworICAgfSBlbHNlIGlmIChj dXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRlX3Nv dXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICBzb3Vy Y2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0KKyAKKyAgIGNmbGFncyA9IGRhdjFk X2NvcHRzCitAQCAtMjEwLDYgKzIxMiw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF8xMGJpdCIp IHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworICAgfSBlbHNlIGlmIChj dXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRlX3Nv dXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICBzb3Vy Y2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0KKyAKKyAgIGNmbGFncyA9IGRhdjFk X2NvcHRzCitAQCAtMjU2LDYgKzI2MCwyMSBAQCBpZiAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwg Y3VycmVudF9jcHUgPT0gIng2NCIpIHsKKyAgICAgICAiOmRhdjFkX2NvbmZpZyIsCisgICAgIF0K KyAKKysgICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKKysgIH0KKyt9IGVsc2UgaWYgKGN1cnJlbnRf Y3B1ID09ICJwcGM2NCIpIHsKKysgIHN0YXRpY19saWJyYXJ5KCJkYXYxZF9wcGMiKSB7CisrICAg IHNvdXJjZXMgPSBbCisrICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmMiLAorKyAgICAgICJs aWJkYXYxZC9zcmMvcHBjL2NwdS5oIiwKKysgICAgXQorKworKyAgICBjb25maWdzIC09IFsgIi8v YnVpbGQvY29uZmlnL2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KKysgICAgY29uZmlncyArPSBb CisrICAgICAgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOm5vX2Nocm9taXVtX2NvZGUiLAorKyAg ICAgICI6ZGF2MWRfY29uZmlnIiwKKysgICAgXQorKworICAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0 cworICAgfQorIH0KK0BAIC0yODUsNSArMzA0LDcgQEAgc3RhdGljX2xpYnJhcnkoImRhdjFkIikg eworICAgICB9CisgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1cnJlbnRf Y3B1ID09ICJhcm02NCIpIHsKKyAgICAgZGVwcyArPSBbICI6ZGF2MWRfYXJtIiBdCisrICB9IGVs c2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgZGVwcyArPSBbICI6ZGF2MWRf cHBjIiBdCisgICB9CisgfQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGlu dXgvcHBjNjQvY29uZmlnLmggdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2Nv bmZpZy5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLmY2Y2E1N2Y3Cist LS0gYS8vZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2 NC9jb25maWcuaAorQEAgLTAsMCArMSwzNSBAQAorKy8qCisrICogQXV0b2dlbmVyYXRlZCBieSB0 aGUgTWVzb24gYnVpbGQgc3lzdGVtLgorKyAqIERvIG5vdCBlZGl0LCB5b3VyIGNoYW5nZXMgd2ls bCBiZSBsb3N0LgorKyAqLworKworKyNwcmFnbWEgb25jZQorKworKyNkZWZpbmUgQVJDSF9BQVJD SDY0IDAKKysKKysjZGVmaW5lIEFSQ0hfQVJNIDAKKysKKysjZGVmaW5lIEFSQ0hfUFBDNjRMRSAx CisrCisrI2RlZmluZSBBUkNIX1g4NiAwCisrCisrI2RlZmluZSBBUkNIX1g4Nl8zMiAwCisrCisr I2RlZmluZSBBUkNIX1g4Nl82NCAwCisrCisrI2RlZmluZSBDT05GSUdfMTZCUEMgMQorKworKyNk ZWZpbmUgQ09ORklHXzhCUEMgMQorKworKyNkZWZpbmUgQ09ORklHX0xPRyAxCisrCisrI2RlZmlu ZSBFTkRJQU5ORVNTX0JJRyAwCisrCisrI2RlZmluZSBIQVZFX0FTTSAxCisrCisrI2RlZmluZSBI QVZFX0dFVEFVWFZBTCAxCisrCisrI2RlZmluZSBIQVZFX1BPU0lYX01FTUFMSUdOIDEKKysKKysj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorKworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYxZC9k YXYxZF9nZW5lcmF0ZWQuZ25pIHRoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5nbmkK K2luZGV4IDhiZWNhYzAyLi5kNWY0ZmNhYyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2RhdjFk L2RhdjFkX2dlbmVyYXRlZC5nbmkKKysrKyBiL3RoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVy YXRlZC5nbmkKK0BAIC03MSw2ICs3MSwxMSBAQCBhcm1fdGVtcGxhdGVfc291cmNlcyA9IFsKKyAg ICJsaWJkYXYxZC9zcmMvYXJtL21jX2luaXRfdG1wbC5jIiwKKyBdCisgCisrcHBjNjRfdGVtcGxh dGVfc291cmNlcyA9IFsKKysgICJsaWJkYXYxZC9zcmMvcHBjL2NkZWZfaW5pdF90bXBsLmMiLAor KyAgImxpYmRhdjFkL3NyYy9wcGMvbG9vcHJlc3RvcmF0aW9uX2luaXRfdG1wbC5jIiwKKytdCisr CisgdGVtcGxhdGVfc291cmNlcyA9IFsKKyAgICJsaWJkYXYxZC9zcmMvY2RlZl9hcHBseV90bXBs LmMiLAorICAgImxpYmRhdjFkL3NyYy9jZGVmX3RtcGwuYyIsCitkaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weSB0aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9z b3VyY2UucHkKK2luZGV4IDlhYjVlMDBiLi5hZDNmZWZmZSAxMDA3NTUKKy0tLSBhL3RoaXJkX3Bh cnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weQorKysrIGIvdGhpcmRfcGFydHkvZGF2MWQvZ2Vu ZXJhdGVfc291cmNlLnB5CitAQCAtNTAsNyArNTAsOCBAQCBkZWYgV3JpdGVHbihmZCk6CisgICBX cml0ZUFycmF5KGZkLCAiYXJtMzJfYXNtX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFkL3Ny Yy9hcm0vMzIvKi5TIikpCisgICBXcml0ZUFycmF5KGZkLCAiYXJtNjRfYXNtX3NvdXJjZXMiLCBn bG9iLmdsb2IoImxpYmRhdjFkL3NyYy9hcm0vNjQvKi5TIikpCisgICBXcml0ZUFycmF5KGZkLCAi YXJtX3RlbXBsYXRlX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFkL3NyYy9hcm0vKl90bXBs LmMiKSkKKy0KKysgIFdyaXRlQXJyYXkoZmQsICJwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzIiwgZ2xv Yi5nbG9iKCJsaWJkYXYxZC9zcmMvcHBjLypfdG1wbC5jIikpCisrIAorICAgdGVtcGxhdGVfc291 cmNlcyA9IGdsb2IuZ2xvYigibGliZGF2MWQvc3JjLypfdG1wbC5jIikKKyAgIFdyaXRlQXJyYXko ZmQsICJ0ZW1wbGF0ZV9zb3VyY2VzIiwgdGVtcGxhdGVfc291cmNlcykKKyAKK2RpZmYgLS1naXQg dGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oIHRoaXJkX3BhcnR5L2Rh djFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAoraW5kZXggMGI0YmQ3MmYuLmEwY2FhNWU3IDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oCisr KysgYi90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKK0BAIC01MSw0 ICs1MSwxOSBAQAorICNkZWZpbmUgdTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX21lcmdlbCgo dTE2eDgpIHYsIHZlY19zcGxhdF91MTYoMCkpKQorICNkZWZpbmUgaTE2bF90b19pMzIodikgKChp MzJ4NCkgdmVjX3VucGFja2woKGkxNng4KXYpKQorIAorKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykK KysjdW5kZWYgdmVjX3NwbGF0cworKyNkZWZpbmUgdmVjX3NwbGF0cyhOKSAgICAgICAgICAgICAg ICAgICAgIFwKKysgICAgX0dlbmVyaWMoKE4pLCAgICAgICAgICAgICAgICAgICAgICAgICBcCisr ICAgICAgICB1bnNpZ25lZCBjaGFyOiAgICAgICgodTh4MTYpKE4pKSwgXAorKyAgICAgICAgc2ln bmVkIGNoYXI6ICAgICAgICAoKGk4eDE2KShOKSksIFwKKysgICAgICAgIHVuc2lnbmVkIHNob3J0 OiAgICAgKCh1MTZ4OCkoTikpLCBcCisrICAgICAgICBzaWduZWQgc2hvcnQ6ICAgICAgICgoaTE2 eDgpKE4pKSwgXAorKyAgICAgICAgdW5zaWduZWQgaW50OiAgICAgICAoKHUzMng0KShOKSksIFwK KysgICAgICAgIHNpZ25lZCBpbnQ6ICAgICAgICAgKChpMzJ4NCkoTikpLCBcCisrICAgICAgICB1 bnNpZ25lZCBsb25nIGxvbmc6ICgodTY0eDIpKE4pKSwgXAorKyAgICAgICAgc2lnbmVkIGxvbmcg bG9uZzogICAoKGk2NHgyKShOKSkgIFwKKysgICAgKQorKyNlbmRpZgorKworICNlbmRpZiAvKiBE QVYxRF9TUkNfUFBDX1RZUEVTX0ggKi8KK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvbHNzL2xpbnV4 X3N5c2NhbGxfc3VwcG9ydC5oIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQu aAoraW5kZXggZDJiYWVlOWQuLjk5NTVjZTQ0IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbHNz L2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCisrKysgYi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lz Y2FsbF9zdXBwb3J0LmgKK0BAIC0zOTIyLDcgKzM5MjIsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRm cyB7CisgICAgICAgTFNTX1JFRygyLCBidWYpOworICAgICAgIExTU19CT0RZKHZvaWQqLCBtbWFw MiwgIjAiKF9fcjIpKTsKKyAgICAgfQorLSNlbHNlCisrI2VsaWYgIWRlZmluZWQoX19wb3dlcnBj NjRfXykgLyogcHBjNjQgZG9lc24ndCBoYXZlIG1tYXAyICovCisgICAgICNkZWZpbmUgX19OUl9f bW1hcDIgX19OUl9tbWFwMgorICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsNih2b2lkKiwgX21tYXAy LCAgICAgICAgICAgIHZvaWQqLCBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qs ICAgICAgICAgICAgICAgICAgIGwsIGludCwgICAgICAgICAgICAgICBwLAorQEAgLTQwMzMsNyAr NDAzMyw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKKyAgICNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgZGVmaW5lZChfX0FSTV9BUkNIXzNfXykgfHwgZGVmaW5lZChfX0FSTV9FQUJJX18p IHx8ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9N SVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJMzIpIHx8ICAgICAgICAgICAgICAgICAgIFwKKy0gICAg ICBkZWZpbmVkKF9fUFBDX18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisrICAgICAoZGVmaW5lZChfX1BQQ19fKSAmJiAhZGVmaW5lZChf X3Bvd2VycGM2NF9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgIChkZWZpbmVkKF9fczM5MF9fKSAmJiAhZGVmaW5lZChfX3Mz OTB4X18pKQorICAgICAvKiBPbiB0aGVzZSBhcmNoaXRlY3R1cmVzLCBpbXBsZW1lbnQgbW1hcCgp IHdpdGggbW1hcDIoKS4gKi8KKyAgICAgTFNTX0lOTElORSB2b2lkKiBMU1NfTkFNRShtbWFwKSh2 b2lkICpzLCBzaXplX3QgbCwgaW50IHAsIGludCBmLCBpbnQgZCwKK2RpZmYgLS1naXQgdGhpcmRf cGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMgdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKK2lu ZGV4IGJkYWM0ZDc4NC4uNTFlMGYyY2FjIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcGZmZnQv c3JjL3BmZmZ0LmMKKysrKyBiL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCitAQCAtMTAw LDYgKzEwMCw3IEBACisgICAgQWx0aXZlYyBzdXBwb3J0IG1hY3JvcyAKKyAqLworICNpZiAhZGVm aW5lZChQRkZGVF9TSU1EX0RJU0FCTEUpICYmIChkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQo X19wcGM2NF9fKSkKKysjaW5jbHVkZSA8YWx0aXZlYy5oPgorIHR5cGVkZWYgdmVjdG9yIGZsb2F0 IHY0c2Y7CisgIyAgZGVmaW5lIFNJTURfU1ogNAorICMgIGRlZmluZSBWWkVSTygpICgodmVjdG9y IGZsb2F0KSB2ZWNfc3BsYXRfdTgoMCkpCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NraWEvc3Jj L3Nrc2wvU2tTTFN0cmluZy5jcHAgdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5n LmNwcAoraW5kZXggODhlYjFjN2QuLjRiZTMzZmE1IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv c2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNwcAorKysrIGIvdGhpcmRfcGFydHkvc2tpYS9zcmMv c2tzbC9Ta1NMU3RyaW5nLmNwcAorQEAgLTI0MCw3ICsyNDAsMTIgQEAgU3RyaW5nIHRvX3N0cmlu Zyhkb3VibGUgdmFsdWUpIHsKKyAgICAgaWYgKG5lZWRzRG90WmVybykgeworICAgICAgICAgYnVm ZmVyIDw8ICIuMCI7CisgICAgIH0KKy0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIuc3RyKCkuY19z dHIoKSk7CisrCisrICAgIHN0ZDo6c3RyaW5nIHJldChidWZmZXIuc3RyKCkpOworKyAgICBpZiAo c2lnbmJpdCh2YWx1ZSkgJiYgcmV0WzBdID09ICcuJykgeworKyAgICAgICAgcmV0WzBdID0gJy0n OworKyAgICB9CisrICAgIHJldHVybiBTdHJpbmcocmV0LmNfc3RyKCkpOworIH0KKyAKKyBTS1NM X0lOVCBzdG9pKGNvbnN0IFN0cmluZyYgcykgeworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9zcWxp dGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFs Z2FtYXRpb24vc3FsaXRlMy5jCitpbmRleCAxYjJjMmVjNy4uNzU5M2RiYTEgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKKysrKyBiL3Ro aXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYworQEAgLTE0NDAwLDcg KzE0NDAwLDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKKyAjIGlmIGRlZmluZWQoaTM4 NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwg ICAgXAorICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAg fHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCisgICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwg ZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAg IGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQo X01fQVJNNjQpCisrICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRF TF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKKysgICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMg ICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBlbGlmIGRlZmluZWQoc3BhcmMp ICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAgZGVmaW5lZChfX0FSTUVCX18p IHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvc3FsaXRl L3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2Ft YWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCitpbmRleCAxOWM4NzY4OS4uYzdhYjAzOWUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5j CisrKysgYi90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5j CitAQCAtMTQ0MTMsNyArMTQ0MTMsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OworICMg aWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5l ZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKKyAgICAgIGRlZmluZWQo X01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAg fHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxf XykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZp bmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAorKyAgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVf RU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKKyAjIGVsaWYg ZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorICAgICAgICBkZWZp bmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jIHRoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvZXh0L3J0cmVlL3J0cmVlLmMKK2luZGV4IGVmYWVmODEzLi40Y2Q1N2Q1NSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKKysrKyBiL3RoaXJk X3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKK0BAIC00MzIsNyArNDMyLDcgQEAg c3RydWN0IFJ0cmVlTWF0Y2hBcmcgeworICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBkZWZpbmVk KF9faTM4Nl9fKSAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAorICAgICBkZWZpbmVkKF9f eDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAg XAorICAgICBkZWZpbmVkKF9NX0FNRDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8IGRlZmlu ZWQoX194ODYpICAgfHwgICAgXAorLSAgICBkZWZpbmVkKF9fYXJtX18pCisrICAgIGRlZmluZWQo X19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0g X19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCisgIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAx MjM0CisgI2VsaWYgZGVmaW5lZChzcGFyYykgICAgfHwgZGVmaW5lZChfX3BwY19fKQorICMgZGVm aW5lIFNRTElURV9CWVRFT1JERVIgICAgNDMyMQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9zcWxp dGUvc3JjL3NyYy9zcWxpdGVJbnQuaCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJ bnQuaAoraW5kZXggMTIyZTI2YWQuLmVjMjFkY2I1IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv c3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKKysrKyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMv c3JjL3NxbGl0ZUludC5oCitAQCAtODY4LDcgKzg2OCw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBM b2dFc3Q7CisgIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAg ICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX194ODZfNjQpICB8 fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAorICAg ICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5l ZChfX3g4NikgICB8fCAgICBcCistICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChf X0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQorKyAgICAgZGVmaW5lZChfX0FSTUVM X18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwgXAor KyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRF Ul9MSVRUTEVfRU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQK KyAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorICAg ICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Js b2NrLmNjIHRoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJf YmxvY2suY2MKK2luZGV4IGRkOWFiNDU3Li5jMDA1ZDk1OSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKKysrKyBi L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2su Y2MKK0BAIC0zMCwxMSArMzAsNyBAQCBib29sIFZlY3RvckRpZmZlcmVuY2UoY29uc3QgdWludDhf dCogaW1hZ2UxLCBjb25zdCB1aW50OF90KiBpbWFnZTIpIHsKKyAgIHN0YXRpYyBib29sICgqZGlm Zl9wcm9jKShjb25zdCB1aW50OF90KiwgY29uc3QgdWludDhfdCopID0gbnVsbHB0cjsKKyAKKyAg IGlmICghZGlmZl9wcm9jKSB7CistI2lmIGRlZmluZWQoV0VCUlRDX0FSQ0hfQVJNX0ZBTUlMWSkg fHwgZGVmaW5lZChXRUJSVENfQVJDSF9NSVBTX0ZBTUlMWSkKKy0gICAgLy8gRm9yIEFSTSBhbmQg TUlQUyBwcm9jZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4KKy0gICAgLy8gVE9ETyhoY2xh bSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lvbi4KKy0gICAgZGlmZl9wcm9jID0gJlZlY3RvckRp ZmZlcmVuY2VfQzsKKy0jZWxzZQorKyNpZiBkZWZpbmVkKFdFQlJUQ19BUkNIX1g4Nl9GQU1JTFkp CisgICAgIGJvb2wgaGF2ZV9zc2UyID0gV2ViUnRjX0dldENQVUluZm8oa1NTRTIpICE9IDA7Cisg ICAgIC8vIEZvciB4ODYgcHJvY2Vzc29ycywgY2hlY2sgaWYgU1NFMiBpcyBzdXBwb3J0ZWQuCisg ICAgIGlmIChoYXZlX3NzZTIgJiYga0Jsb2NrU2l6ZSA9PSAzMikgeworQEAgLTQ0LDYgKzQwLDEw IEBAIGJvb2wgVmVjdG9yRGlmZmVyZW5jZShjb25zdCB1aW50OF90KiBpbWFnZTEsIGNvbnN0IHVp bnQ4X3QqIGltYWdlMikgeworICAgICB9IGVsc2UgeworICAgICAgIGRpZmZfcHJvYyA9ICZWZWN0 b3JEaWZmZXJlbmNlX0M7CisgICAgIH0KKysjZWxzZQorKyAgICAvLyBGb3Igb3RoZXIgcHJvY2Vz c29ycywgYWx3YXlzIHVzZSBDIHZlcnNpb24uCisrICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1l bnQgYSBORU9OIHZlcnNpb24uCisrICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7 CisgI2VuZGlmCisgICB9CisgCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFz ZS9zeXN0ZW0vYXJjaC5oIHRoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5o CitpbmRleCBlZDIxNmU2Ni4uMjVkMzZjMDcgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS93ZWJy dGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAorKysrIGIvdGhpcmRfcGFydHkvd2VicnRjL3J0Y19i YXNlL3N5c3RlbS9hcmNoLmgKK0BAIC01MCw2ICs1MCwxOCBAQAorICNlbGlmIGRlZmluZWQoX19F TVNDUklQVEVOX18pCisgI2RlZmluZSBXRUJSVENfQVJDSF8zMl9CSVRTCisgI2RlZmluZSBXRUJS VENfQVJDSF9MSVRUTEVfRU5ESUFOCisrI2VsaWYgZGVmaW5lZChfX1BQQ19fKQorKyNkZWZpbmUg V0VCUlRDX0FSQ0hfUFBDX0ZBTUlMWQorKyNpZiBfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJ VFRMRV9FTkRJQU5fXworKyNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgorKyNlbHNl CisrI2RlZmluZSBXRUJSVENfQVJDSF9CSUdfRU5ESUFOCisrI2VuZGlmCisrI2lmIGRlZmluZWQo X19MUDY0X18pCisrI2RlZmluZSBXRUJSVENfQVJDSF82NF9CSVRTCisrI2Vsc2UKKysjZGVmaW5l IFdFQlJUQ19BUkNIXzMyX0JJVFMKKysjZW5kaWYKKyAjZWxzZQorICNlcnJvciBQbGVhc2UgYWRk IHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIHJ0Y19iYXNlL3N5c3RlbS9hcmNoLmgK KyAjZW5kaWYKKyBkaWZmIC0tZ2l0IHY4L0JVSUxELmduIHY4L0JVSUxELmduCitpbmRleCAxNjdl NjM1MDMuLjEyNWM0NDVlYSAxMDA2NDQKKy0tLSBhL3Y4L0JVSUxELmduCisrKysgYi92OC9CVUlM RC5nbgorQEAgLTY5Niw2ICs2OTYsMTIgQEAgY29uZmlnKCJ0b29sY2hhaW4iKSB7CisgICAgIH0K KyAgICAgaWYgKGhvc3RfYnl0ZW9yZGVyID09ICJsaXR0bGUiKSB7CisgICAgICAgZGVmaW5lcyAr PSBbICJWOF9UQVJHRVRfQVJDSF9QUENfTEUiIF0KKysgICAgICAgIGNmbGFncyArPSBbCisrICAg ICAgICAjIEVuYWJsZSB1c2FnZSBvZiBBbHRpVmVjLCBWU1gsIGFuZCBvdGhlciBQT1dFUjggYW5k IGhpZ2hlciBmZWF0dXJlcworKyAgICAgICAgIi1tY3B1PXBvd2VyOCIsCisrICAgICAgICAiLW1h bHRpdmVjIiwKKysgICAgICAgICItbXZzeCIsCisrICAgICAgXQorICAgICB9IGVsc2UgaWYgKGhv c3RfYnl0ZW9yZGVyID09ICJiaWciKSB7CisgICAgICAgZGVmaW5lcyArPSBbICJWOF9UQVJHRVRf QVJDSF9QUENfQkUiIF0KKyAgICAgICBpZiAoY3VycmVudF9vcyA9PSAiYWl4IikgeworZGlmZiAt LWdpdCB1aS9nbC9mZWF0dXJlcy5nbmkgdWkvZ2wvZmVhdHVyZXMuZ25pCitpbmRleCBjYjJjOTg2 NDkuLjVlMDliYzFmNyAxMDA2NDQKKy0tLSBhL3VpL2dsL2ZlYXR1cmVzLmduaQorKysrIGIvdWkv Z2wvZmVhdHVyZXMuZ25pCitAQCAtMjUsNSArMjUsNiBAQCBkZWNsYXJlX2FyZ3MoKSB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgaXNfY2hyb21lb3MgfHwgaXNfZnVjaHNpYSkgJiYKKyAgICAg ICAgICAgICAgICAgICAgICAgICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8IHRhcmdldF9jcHUgPT0g Ing2NCIgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJhcm0iIHx8 IHRhcmdldF9jcHUgPT0gImFybTY0IiB8fAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdl dF9jcHUgPT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwiKQorKyAgICAgICAg ICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAi bWlwczY0ZWwiIHx8CisrICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAicHBj NjQiKQorIH0KK2RpZmYgLS1naXQgdjgvdGVzdC9CVUlMRC5nbiB2OC90ZXN0L0JVSUxELmduCitp bmRleCBmNmQzMDUzN2EuLjI4N2IyNzA4MCAxMDA2NDQKKy0tLSBhL3Y4L3Rlc3QvQlVJTEQuZ24K KysrKyBiL3Y4L3Rlc3QvQlVJTEQuZ24KK0BAIC0zMSw3ICszMSw3IEBAIGdyb3VwKCJnbl9hbGwi KSB7CisgICAgIGRlcHMgKz0gWworICAgICAgICJjY3Rlc3Q6Y2N0ZXN0IiwKKyAgICAgICAiY2N0 ZXN0OmdlbmVyYXRlLWJ5dGVjb2RlLWV4cGVjdGF0aW9ucyIsCistICAgICAgInVuaXR0ZXN0czp1 bml0dGVzdHMiLAorKyAgICAgICMidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCisgICAgIF0KKyAgIH0K KyB9CitAQCAtNzMsNyArNzMsNyBAQCBncm91cCgidjhfYm90X2RlZmF1bHQiKSB7CisgICAgICJt ZXNzYWdlOnY4X21lc3NhZ2UiLAorICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKKyAgICAgIm1r Z3Jva2R1bXA6bWtncm9rZHVtcCIsCistICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKysgICAg IyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgICAgIndhc20tYXBpLXRlc3RzOndhc21fYXBpX3Rl c3RzIiwKKyAgICAgIndhc20tanM6djhfd2FzbV9qcyIsCisgICAgICJ3YXNtLXNwZWMtdGVzdHM6 djhfd2FzbV9zcGVjX3Rlc3RzIiwKK0BAIC05Myw3ICs5Myw3IEBAIGdyb3VwKCJ2OF9kZWZhdWx0 IikgeworICAgICAibWVzc2FnZTp2OF9tZXNzYWdlIiwKKyAgICAgIm1qc3VuaXQ6djhfbWpzdW5p dCIsCisgICAgICJta2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAorLSAgICAidW5pdHRlc3RzOnVuaXR0 ZXN0cyIsCisrICAgICMidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCisgICAgICJ3YXNtLWFwaS10ZXN0 czp3YXNtX2FwaV90ZXN0cyIsCisgICAgICJ3YXNtLWpzOnY4X3dhc21fanMiLAorICAgICAid2Fz bS1zcGVjLXRlc3RzOnY4X3dhc21fc3BlY190ZXN0cyIsCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Vs ZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS14eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXh4eC1wcGM2 NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5kZjQ1M2Y0OTFkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCkBAIC0w LDAgKzEsMTggQEAKKy0tLSBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xs dm0tMTAuMC9CVUlMRC5nbgorKysrIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFy dHkvbGx2bS0xMC4wL0JVSUxELmduCitAQCAtNTc0LDYgKzU3NCw3IEBAIHN3aWZ0c2hhZGVyX2xs dm1fc291cmNlX3NldCgic3dpZnRzaGFkZXIKKyAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0NP RkYuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0Rhcndpbi5jcHAiLAorICAgICAi bGx2bS9saWIvTUMvTUNBc21JbmZvRUxGLmNwcCIsCisrICAgICJsbHZtL2xpYi9NQy9NQ0FzbUlu Zm9YQ09GRi5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21NYWNyby5jcHAiLAorICAgICAi bGx2bS9saWIvTUMvTUNBc21TdHJlYW1lci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc3Nl bWJsZXIuY3BwIiwKK0BAIC02MjksNiArNjMwLDcgQEAgc3dpZnRzaGFkZXJfbGx2bV9zb3VyY2Vf c2V0KCJzd2lmdHNoYWRlcgorICAgICAibGx2bS9saWIvTUMvTUNXaW5DT0ZGU3RyZWFtZXIuY3Bw IiwKKyAgICAgImxsdm0vbGliL01DL01DV2luRUguY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01D WENPRkZTdHJlYW1lci5jcHAiLAorKyAgICAibGx2bS9saWIvTUMvTUNYQ09GRk9iamVjdFRhcmdl dFdyaXRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTWFjaE9iamVjdFdyaXRlci5jcHAiLAor ICAgICAibGx2bS9saWIvTUMvU3RyaW5nVGFibGVCdWlsZGVyLmNwcCIsCisgICAgICJsbHZtL2xp Yi9NQy9TdWJ0YXJnZXRGZWF0dXJlLmNwcCIsCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u MTAvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10YXJn ZXRzLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvZWxlY3Ry b24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTE2ZGJhOWRjM2IKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1z Y3JpcHQtdG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAK K0Zyb20gZmY0MTIyZjIzNmI3MGMyNzJjNzQ2ZDBjMzM2Y2RiZDU4OGQ3OGNkMSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVsdmlzIFByYW5za2V2aWNodXMgPGVsdmlzQG1hZ2ljLmlv PgorRGF0ZTogVGh1LCAxMiBEZWMgMjAxOSAxNjoxMjoxOCAtMDUwMAorU3ViamVjdDogW1BBVENI XSBBZGQgYSBzY3JpcHQgdG8gbGlzdCBwYXRjaCB0YXJnZXRzCisKKy0tLQorIHNjcmlwdC9saXN0 X3BhdGNoX3RhcmdldHMucHkgfCAyMyArKysrKysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBj aGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNzU1IHNjcmlwdC9saXN0 X3BhdGNoX3RhcmdldHMucHkKKworZGlmZiAtLWdpdCBhL3NjcmlwdC9saXN0X3BhdGNoX3Rhcmdl dHMucHkgYi9zY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5CituZXcgZmlsZSBtb2RlIDEwMDc1 NQoraW5kZXggMDAwMDAwMDAwLi41NTE3M2JhYzkKKy0tLSAvZGV2L251bGwKKysrKyBiL3Njcmlw dC9saXN0X3BhdGNoX3RhcmdldHMucHkKK0BAIC0wLDAgKzEsMjMgQEAKKysjIS91c3IvYmluL2Vu diBweXRob24KKysKKytpbXBvcnQgYXJncGFyc2UKKytpbXBvcnQganNvbgorKworKworK2RlZiBw YXJzZV9hcmdzKCk6CisrICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlw dGlvbj0nQXBwbHkgRWxlY3Ryb24gcGF0Y2hlcycpCisrICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdj b25maWcnLCBuYXJncz0nKycsCisrICAgICAgICAgICAgICAgICAgICAgIHR5cGU9YXJncGFyc2Uu RmlsZVR5cGUoJ3InKSwKKysgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncGF0Y2hlc1wnIGNv bmZpZyhzKSBpbiB0aGUgSlNPTiBmb3JtYXQnKQorKyAgcmV0dXJuIHBhcnNlci5wYXJzZV9hcmdz KCkKKysKKysKKytkZWYgbWFpbigpOgorKyAgY29uZmlncyA9IHBhcnNlX2FyZ3MoKS5jb25maWcK KysgIGZvciBjb25maWdfanNvbiBpbiBjb25maWdzOgorKyAgICBmb3IgcGF0Y2hfZGlyLCByZXBv IGluIGpzb24ubG9hZChjb25maWdfanNvbikuaXRlcml0ZW1zKCk6CisrICAgICAgcHJpbnQocmVw bykKKysKKysKKytpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorKyAgbWFpbigpCistLSAKKzIu MjMuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9lbGVj dHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9w YXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yOThiZmE5YmNiMgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNo LnBhdGNoCkBAIC0wLDAgKzEsNDcgQEAKK2RpZmYgLS1naXQgYS9idWlsZC9hcmdzL3JlbGVhc2Uu Z24gYi9idWlsZC9hcmdzL3JlbGVhc2UuZ24KK2luZGV4IGU1MDE3ZjZlMS4uNTkyMDdiMzg5IDEw MDY0NAorLS0tIGEvYnVpbGQvYXJncy9yZWxlYXNlLmduCisrKysgYi9idWlsZC9hcmdzL3JlbGVh c2UuZ24KK0BAIC0xLDYgKzEsNCBAQAorIGltcG9ydCgiYWxsLmduIikKKy1pc19jb21wb25lbnRf YnVpbGQgPSBmYWxzZQorLWlzX29mZmljaWFsX2J1aWxkID0gdHJ1ZQorIAorICMgVGhpcyBtYXkg YmUgZ3VhcmRlZCBiZWhpbmQgaXNfY2hyb21lX2JyYW5kZWQgYWxvbmdzaWRlCisgIyBwcm9wcmll dGFyeV9jb2RlY3MgaHR0cHM6Ly93ZWJydGMtcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9zcmMv Ky8zNjMyMSwKK0BAIC04LDkgKzYsMyBAQCBpc19vZmZpY2lhbF9idWlsZCA9IHRydWUKKyAjIFRo ZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZGVjb2RlciBkZXBlbmRzIG9uIHdoZXRoZXIgZmZtcGVn IGhhcworICMgYmVlbiBidWlsdCB3aXRoIEguMjY0IHN1cHBvcnQuCisgcnRjX3VzZV9oMjY0ID0g cHJvcHJpZXRhcnlfY29kZWNzCistCistIyBCeSBkZWZhdWx0LCBFbGVjdHJvbiBidWlsZHMgZmZt cGVnIHdpdGggcHJvcHJpZXRhcnkgY29kZWNzIGVuYWJsZWQuIEluIG9yZGVyCistIyB0byBmYWNp bGl0YXRlIHVzZXJzIHdobyBkb24ndCB3YW50IHRvIHNoaXAgcHJvcHJpZXRhcnkgY29kZWNzIGlu IGZmbXBlZywgb3IKKy0jIHdobyBoYXZlIGFuIExHUEwgcmVxdWlyZW1lbnQgdG8gc2hpcCBmZm1w ZWcgYXMgYSBkeW5hbWljYWxseSBsaW5rZWQgbGlicmFyeSwKKy0jIHdlIGJ1aWxkIGZmbXBlZyBh cyBhIHNoYXJlZCBsaWJyYXJ5LgorLWlzX2NvbXBvbmVudF9mZm1wZWcgPSB0cnVlCitkaWZmIC0t Z2l0IGEvYnVpbGQvbnBtLmduaSBiL2J1aWxkL25wbS5nbmkKK2luZGV4IGExOTg3ZDA5NS4uZmIz M2ExNGMzIDEwMDY0NAorLS0tIGEvYnVpbGQvbnBtLmduaQorKysrIGIvYnVpbGQvbnBtLmduaQor QEAgLTM1LDcgKzM1LDYgQEAgdGVtcGxhdGUoIm5wbV9hY3Rpb24iKSB7CisgICAgIGlmICghZGVm aW5lZChkZXBzKSkgeworICAgICAgIGRlcHMgPSBbXQorICAgICB9CistICAgIGRlcHMgKz0gWyAi Om5wbV9wcmVfZmxpZ2h0XyIgKyB0YXJnZXRfbmFtZSBdCisgCisgICAgIHNjcmlwdCA9ICIvL2Vs ZWN0cm9uL2J1aWxkL25wbS1ydW4ucHkiCisgICAgIGFyZ3MgPSBbCitkaWZmIC0tZ2l0IGEvcGF0 Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2VuYWJsZV9sdG9fYW5kX2J1aWxk X3Y4X3dpdGhfZ25faW4ucGF0Y2ggYi9wYXRjaGVzL25vZGUvZml4X2FkZF9kZWZhdWx0X3ZhbHVl c19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9pbi5wYXRjaAoraW5kZXggMGRj OTkxNmJlLi43ZWFhNDZiZjUgMTAwNjQ0CistLS0gYS9wYXRjaGVzL25vZGUvZml4X2FkZF9kZWZh dWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9pbi5wYXRjaAor KysrIGIvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2VuYWJsZV9sdG9f YW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKK0BAIC0zMCw3ICszMCw3IEBACisgKyAgICAj IHRoZXNlIHZhbHVlcyBiZWluZyBhY2N1cmF0ZS4KKyArICAgICdidWlsZF92OF93aXRoX2duJzog J2ZhbHNlJywKKyArICAgICdlbmFibGVfbHRvJSc6ICdmYWxzZScsCistKworKysgICAgJ29wZW5z c2xfZmlwcyc6ICcnLAorICAgICAgJ2NvbmRpdGlvbnMnOiBbCisgICAgICAgIFsndGFyZ2V0X2Fy Y2g9PSJhcm02NCInLCB7CisgICAgICAgICAgIyBEaXNhYmxlZCBwZW5kaW5nIGh0dHBzOi8vZ2l0 aHViLmNvbS9ub2RlanMvbm9kZS9pc3N1ZXMvMjM5MTMuCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1w eXRob24yLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24t ZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmZiMTM0NzQ4MDI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlz LXB5dGhvbjIucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorLS0tIGEvYnVpbGQvemlwLnB5Lm9yaWcJ MjAyMC0wNC0yNyAxNzo1OTo1My40OTkyODE2NjcgKzAyMDAKKysrKyBiL2J1aWxkL3ppcC5weQky MDIwLTA0LTI3IDE3OjU5OjU3LjY1NTgzOTE0MyArMDIwMAorQEAgLTEsNCArMSw0IEBACistIyEv dXNyL2Jpbi9lbnYgcHl0aG9uCisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMgorIGZyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyBpbXBvcnQgb3MKKyBpbXBvcnQgc3VicHJvY2Vz cworCistLS0gYS9idWlsZC9ucG0tcnVuLnB5Lm9yaWcJMjAyMC0wNC0yNyAxNzo1OTo1MC44Mjkz NTE4MDcgKzAyMDAKKysrKyBiL2J1aWxkL25wbS1ydW4ucHkJMjAyMC0wNC0yNyAxODowMDowMi43 MDIzNzMyNTYgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vZW52IHB5dGhvbgor KyMhL3Vzci9iaW4vZW52IHB5dGhvbjIKKyBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1 bmN0aW9uCisgaW1wb3J0IG9zCisgaW1wb3J0IHN1YnByb2Nlc3MKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWV4Y2x1ZGUtY29udGVudC10ZXN0 LXBhdGNoZXMucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9lbGVjdHJv bi1leGNsdWRlLWNvbnRlbnQtdGVzdC1wYXRjaGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5iZWYxNmUxZjBlMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWV4Y2x1ZGUtY29udGVudC10ZXN0 LXBhdGNoZXMucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc2NyaXB0L2FwcGx5X2FsbF9w YXRjaGVzLnB5CTIwMjAtMDgtMjIgMTc6NDY6NDEuNzk2NzA3NTA2ICswMjAwCisrKysgLQkyMDIw LTA4LTIyIDE3OjQ3OjA1Ljg4NzgxMzUxMiArMDIwMAorQEAgLTE0LDYgKzE0LDcgQEAKKyAgIGZv ciBwYXRjaF9kaXIsIHJlcG8gaW4gZGlycy5pdGVtcygpOgorICAgICBnaXQuaW1wb3J0X3BhdGNo ZXMocmVwbz1yZXBvLCBwYXRjaF9kYXRhPXBhdGNoX2Zyb21fZGlyKHBhdGNoX2RpciksCisgICAg ICAgdGhyZWV3YXk9dGhyZWV3YXkgaXMgbm90IE5vbmUsCisrICAgICAgZXhjbHVkZT1bJ2NvbnRl bnQvdGVzdC8qKicsICd0ZXN0L2NjdGVzdC93YXNtLyoqJ10sCisgICAgICAgY29tbWl0dGVyX25h bWU9IkVsZWN0cm9uIFNjcmlwdHMiLCBjb21taXR0ZXJfZW1haWw9InNjcmlwdHNAZWxlY3Ryb24i KQorIAorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVz L2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYyBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRp by1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjJjN2FhOGVmYTY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYwpAQCAt MCwwICsxLDE0OCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3Jz LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292 ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhl IExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgImJhc2UvbWV0cmljcy9oaXN0b2dyYW1fbWFjcm9z LmgiCisjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcHRyX3V0aWwuaCIKKworI2luY2x1ZGUgIm1lZGlh L2F1ZGlvL29wZW5ic2QvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLmgiCisKKyNpbmNsdWRlICJtZWRp YS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRp by9hdWRpb19vdXRwdXRfZGlzcGF0Y2hlci5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlv L3NuZGlvX2lucHV0LmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0 LmgiCisjaW5jbHVkZSAibWVkaWEvYmFzZS9saW1pdHMuaCIKKyNpbmNsdWRlICJtZWRpYS9iYXNl L21lZGlhX3N3aXRjaGVzLmgiCisKK25hbWVzcGFjZSBtZWRpYSB7CisKKy8vIE1heGltdW0gbnVt YmVyIG9mIG91dHB1dCBzdHJlYW1zIHRoYXQgY2FuIGJlIG9wZW4gc2ltdWx0YW5lb3VzbHkuCitz dGF0aWMgY29uc3QgaW50IGtNYXhPdXRwdXRTdHJlYW1zID0gNDsKKworLy8gRGVmYXVsdCBzYW1w bGUgcmF0ZSBmb3IgaW5wdXQgYW5kIG91dHB1dCBzdHJlYW1zLgorc3RhdGljIGNvbnN0IGludCBr RGVmYXVsdFNhbXBsZVJhdGUgPSA0ODAwMDsKKwordm9pZCBBZGREZWZhdWx0RGV2aWNlKEF1ZGlv RGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworICBEQ0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0 eSgpKTsKKyAgZGV2aWNlX25hbWVzLT5wdXNoX2Zyb250KEF1ZGlvRGV2aWNlTmFtZTo6Q3JlYXRl RGVmYXVsdCgpKTsKK30KKworYm9vbCBBdWRpb01hbmFnZXJPcGVuQlNEOjpIYXNBdWRpb091dHB1 dERldmljZXMoKSB7CisgIHJldHVybiB0cnVlOworfQorCitib29sIEF1ZGlvTWFuYWdlck9wZW5C U0Q6Okhhc0F1ZGlvSW5wdXREZXZpY2VzKCkgeworICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBB dWRpb01hbmFnZXJPcGVuQlNEOjpHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoCisgICAgQXVkaW9E ZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisgIERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5 KCkpOworICBBZGREZWZhdWx0RGV2aWNlKGRldmljZV9uYW1lcyk7Cit9CisKK3ZvaWQgQXVkaW9N YW5hZ2VyT3BlbkJTRDo6R2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcygKKyAgICBBdWRpb0Rldmlj ZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKyAgQWRkRGVmYXVsdERldmljZShkZXZpY2VfbmFtZXMp OworfQorCitjb25zdCBjaGFyKiBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXROYW1lKCkgeworICBy ZXR1cm4gIlNORElPIjsKK30KKworQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlck9wZW5CU0Q6 OkdldElucHV0U3RyZWFtUGFyYW1ldGVycygKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNl X2lkKSB7CisgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemUgPSAxMDI0 OworCisgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZlclNpemUoKTsKKyAgaW50 IGJ1ZmZlcl9zaXplID0gdXNlcl9idWZmZXJfc2l6ZSA/CisgICAgICB1c2VyX2J1ZmZlcl9zaXpl IDoga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemU7CisKKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygK KyAgICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBDSEFOTkVMX0xB WU9VVF9TVEVSRU8sCisgICAgICBrRGVmYXVsdFNhbXBsZVJhdGUsIGJ1ZmZlcl9zaXplKTsKK30K KworQXVkaW9NYW5hZ2VyT3BlbkJTRDo6QXVkaW9NYW5hZ2VyT3BlbkJTRChzdGQ6OnVuaXF1ZV9w dHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBhdWRpb19sb2dfZmFjdG9yeSkKKyAgICA6 IEF1ZGlvTWFuYWdlckJhc2Uoc3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisgICAgICAgICAgICAg ICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KSB7CisgIERMT0coV0FSTklORykgPDwgIkF1ZGlv TWFuYWdlck9wZW5CU0QiOworICBTZXRNYXhPdXRwdXRTdHJlYW1zQWxsb3dlZChrTWF4T3V0cHV0 U3RyZWFtcyk7Cit9CisKK0F1ZGlvTWFuYWdlck9wZW5CU0Q6On5BdWRpb01hbmFnZXJPcGVuQlNE KCkgeworICBTaHV0ZG93bigpOworfQorCitBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2Vy T3BlbkJTRDo6TWFrZUxpbmVhck91dHB1dFN0cmVhbSgKKyAgICBjb25zdCBBdWRpb1BhcmFtZXRl cnMmIHBhcmFtcywKKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisgIERD SEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIsIHBhcmFtcy5mb3JtYXQo KSk7CisgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7Cit9CisKK0F1ZGlvT3V0cHV0 U3RyZWFtKiBBdWRpb01hbmFnZXJPcGVuQlNEOjpNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgK KyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKyAgICBjb25zdCBzdGQ6OnN0cmlu ZyYgZGV2aWNlX2lkLAorICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKyAg RExPR19JRihFUlJPUiwgIWRldmljZV9pZC5lbXB0eSgpKSA8PCAiTm90IGltcGxlbWVudGVkISI7 CisgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgcGFy YW1zLmZvcm1hdCgpKTsKKyAgcmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKK30KKwor QXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6TWFrZUxpbmVhcklucHV0U3Ry ZWFtKAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgIGNvbnN0IHN0ZDo6 c3RyaW5nJiBkZXZpY2VfaWQsCisgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykg eworICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSLCBwYXJhbXMu Zm9ybWF0KCkpOworICByZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBhcmFtcyk7Cit9CisKK0F1ZGlv SW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VMb3dMYXRlbmN5SW5wdXRTdHJl YW0oCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgY29uc3Qgc3RkOjpz dHJpbmcmIGRldmljZV9pZCwKKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7 CisgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgcGFy YW1zLmZvcm1hdCgpKTsKKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMpOworfQorCitB dWRpb1BhcmFtZXRlcnMgQXVkaW9NYW5hZ2VyT3BlbkJTRDo6R2V0UHJlZmVycmVkT3V0cHV0U3Ry ZWFtUGFyYW1ldGVycygKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCwK KyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgeworICAvLyBUT0RPKHRv bW1pKTogU3VwcG9ydCB8b3V0cHV0X2RldmljZV9pZHwuCisgIERMT0dfSUYoRVJST1IsICFvdXRw dXRfZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1wbGVtZW50ZWQhIjsKKyAgc3RhdGljIGNv bnN0IGludCBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemUgPSAyMDQ4OworCisgIENoYW5uZWxMYXlv dXQgY2hhbm5lbF9sYXlvdXQgPSBDSEFOTkVMX0xBWU9VVF9TVEVSRU87CisgIGludCBzYW1wbGVf cmF0ZSA9IGtEZWZhdWx0U2FtcGxlUmF0ZTsKKyAgaW50IGJ1ZmZlcl9zaXplID0ga0RlZmF1bHRP dXRwdXRCdWZmZXJTaXplOworICBpZiAoaW5wdXRfcGFyYW1zLklzVmFsaWQoKSkgeworICAgIHNh bXBsZV9yYXRlID0gaW5wdXRfcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisgICAgY2hhbm5lbF9sYXlv dXQgPSBpbnB1dF9wYXJhbXMuY2hhbm5lbF9sYXlvdXQoKTsKKyAgICBidWZmZXJfc2l6ZSA9IHN0 ZDo6bWluKGJ1ZmZlcl9zaXplLCBpbnB1dF9wYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKSk7Cisg IH0KKworICBpbnQgdXNlcl9idWZmZXJfc2l6ZSA9IEdldFVzZXJCdWZmZXJTaXplKCk7CisgIGlm ICh1c2VyX2J1ZmZlcl9zaXplKQorICAgIGJ1ZmZlcl9zaXplID0gdXNlcl9idWZmZXJfc2l6ZTsK KworICByZXR1cm4gQXVkaW9QYXJhbWV0ZXJzKAorICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJ T19QQ01fTE9XX0xBVEVOQ1ksIGNoYW5uZWxfbGF5b3V0LAorICAgICAgc2FtcGxlX3JhdGUsIGJ1 ZmZlcl9zaXplKTsKK30KKworQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6 TWFrZUlucHV0U3RyZWFtKAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKSB7Cisg IERMT0coV0FSTklORykgPDwgIk1ha2VJbnB1dFN0cmVhbSI7CisgIHJldHVybiBuZXcgU25kaW9B dWRpb0lucHV0U3RyZWFtKHRoaXMsCisgICAgICAgICAgICAgQXVkaW9EZXZpY2VEZXNjcmlwdGlv bjo6a0RlZmF1bHREZXZpY2VJZCwgcGFyYW1zKTsKK30KKworQXVkaW9PdXRwdXRTdHJlYW0qIEF1 ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VPdXRwdXRTdHJlYW0oCisgICAgY29uc3QgQXVkaW9QYXJh bWV0ZXJzJiBwYXJhbXMpIHsKKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZU91dHB1dFN0cmVhbSI7 CisgIHJldHVybiBuZXcgU25kaW9BdWRpb091dHB1dFN0cmVhbShwYXJhbXMsIHRoaXMpOworfQor Cit9ICAvLyBuYW1lc3BhY2UgbWVkaWEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9m aWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaCBiL3NyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGM5OWRiOTY2ZDYKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9v cGVuYnNkLmgKQEAgLTAsMCArMSw2NSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJv bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNl IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8g Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2lmbmRlZiBNRURJQV9BVURJT19PUEVOQlNE X0FVRElPX01BTkFHRVJfT1BFTkJTRF9IXworI2RlZmluZSBNRURJQV9BVURJT19PUEVOQlNEX0FV RElPX01BTkFHRVJfT1BFTkJTRF9IXworCisjaW5jbHVkZSA8c2V0PgorCisjaW5jbHVkZSAiYmFz ZS9jb21waWxlcl9zcGVjaWZpYy5oIgorI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCisjaW5jbHVk ZSAiYmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaCIKKyNpbmNsdWRlICJiYXNlL3RocmVhZGluZy90 aHJlYWQuaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2VyX2Jhc2UuaCIKKwor bmFtZXNwYWNlIG1lZGlhIHsKKworY2xhc3MgTUVESUFfRVhQT1JUIEF1ZGlvTWFuYWdlck9wZW5C U0QgOiBwdWJsaWMgQXVkaW9NYW5hZ2VyQmFzZSB7CisgcHVibGljOgorICBBdWRpb01hbmFnZXJP cGVuQlNEKHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAorICAgICAg ICAgICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSogYXVkaW9fbG9nX2ZhY3RvcnkpOworICB+QXVk aW9NYW5hZ2VyT3BlbkJTRCgpIG92ZXJyaWRlOworCisgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1 ZGlvTWFuYWdlci4KKyAgYm9vbCBIYXNBdWRpb091dHB1dERldmljZXMoKSBvdmVycmlkZTsKKyAg Ym9vbCBIYXNBdWRpb0lucHV0RGV2aWNlcygpIG92ZXJyaWRlOworICB2b2lkIEdldEF1ZGlvSW5w dXREZXZpY2VOYW1lcyhBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIG92ZXJyaWRlOwor ICB2b2lkIEdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNl X25hbWVzKSBvdmVycmlkZTsKKyAgQXVkaW9QYXJhbWV0ZXJzIEdldElucHV0U3RyZWFtUGFyYW1l dGVycygKKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIG92ZXJyaWRlOworICBj b25zdCBjaGFyKiBHZXROYW1lKCkgb3ZlcnJpZGU7CisKKyAgLy8gSW1wbGVtZW50YXRpb24gb2Yg QXVkaW9NYW5hZ2VyQmFzZS4KKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMaW5lYXJPdXRwdXRT dHJlYW0oCisgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKyAgICAgIGNvbnN0 IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworICBBdWRpb091dHB1dFN0cmVh bSogTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisgICAgICBjb25zdCBBdWRpb1BhcmFtZXRl cnMmIHBhcmFtcywKKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisgICAgICBj b25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKyAgQXVkaW9JbnB1dFN0 cmVhbSogTWFrZUxpbmVhcklucHV0U3RyZWFtKAorICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMsCisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorICAgICAgY29u c3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisgIEF1ZGlvSW5wdXRTdHJl YW0qIE1ha2VMb3dMYXRlbmN5SW5wdXRTdHJlYW0oCisgICAgICBjb25zdCBBdWRpb1BhcmFtZXRl cnMmIHBhcmFtcywKKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisgICAgICBj b25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKworIHByb3RlY3RlZDoK KyAgQXVkaW9QYXJhbWV0ZXJzIEdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBhcmFtZXRlcnMoCisg ICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCwKKyAgICAgIGNvbnN0IEF1 ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSBvdmVycmlkZTsKKworIHByaXZhdGU6CisgIC8v IENhbGxlZCBieSBNYWtlTGluZWFyT3V0cHV0U3RyZWFtIGFuZCBNYWtlTG93TGF0ZW5jeU91dHB1 dFN0cmVhbS4KKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VPdXRwdXRTdHJlYW0oY29uc3QgQXVk aW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlSW5wdXRTdHJl YW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworCisgIERJU0FMTE9XX0NPUFlfQU5E X0FTU0lHTihBdWRpb01hbmFnZXJPcGVuQlNEKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBtZWRp YQorCisjZW5kaWYgIC8vIE1FRElBX0FVRElPX09QRU5CU0RfQVVESU9fTUFOQUdFUl9PUEVOQlNE X0hfCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvc25k aW9faW5wdXQuY2MgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9f aW5wdXQuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVmNTQzOWI0 OWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZp bGVzL3NuZGlvX2lucHV0LmNjCkBAIC0wLDAgKzEsMjAwIEBACisvLyBDb3B5cmlnaHQgMjAxMyBU aGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlz IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g YmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJiYXNlL2JpbmQu aCIKKyNpbmNsdWRlICJiYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgor I2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1wX2hlbHBlci5oIgorI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL29wZW5ic2QvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLmgiCisjaW5jbHVkZSAi bWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlci5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlv L3NuZGlvX2lucHV0LmgiCisKK25hbWVzcGFjZSBtZWRpYSB7CisKK3N0YXRpYyBjb25zdCBTYW1w bGVGb3JtYXQga1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7CisKK3ZvaWQgU25kaW9B dWRpb0lucHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkKK3sK KyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb0lu cHV0U3RyZWFtKj4oYXJnKTsKKworICBzZWxmLT5od19kZWxheSArPSBkZWx0YTsKK30KKwordm9p ZCAqU25kaW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRFbnRyeSh2b2lkICphcmcpIHsKKyAgU25k aW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb0lucHV0U3Ry ZWFtKj4oYXJnKTsKKworICBzZWxmLT5UaHJlYWRMb29wKCk7CisgIHJldHVybiBOVUxMOworfQor CitTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFn ZXJCYXNlKiBtYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMp CisgICAgOiBtYW5hZ2VyKG1hbmFnZXIpLAorICAgICAgcGFyYW1zKHBhcmFtcyksCisgICAgICBh dWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKyAgICAgIHN0YXRlKGtDbG9zZWQp IHsKK30KKworU25kaW9BdWRpb0lucHV0U3RyZWFtOjp+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkg eworICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKyAgICBDbG9zZSgpOworfQorCitib29sIFNuZGlv QXVkaW9JbnB1dFN0cmVhbTo6T3BlbigpIHsKKyAgc3RydWN0IHNpb19wYXIgcGFyOworICBpbnQg c2lnOworCisgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorICAgIHJldHVybiBmYWxzZTsKKworICBp ZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAm JgorICAgICAgcGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZKSB7CisgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3Jt YXQuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBzaW9faW5pdHBhcigmcGFyKTsKKyAg cGFyLnJhdGUgPSBwYXJhbXMuc2FtcGxlX3JhdGUoKTsKKyAgcGFyLnJjaGFuID0gcGFyYW1zLmNo YW5uZWxzKCk7CisgIHBhci5iaXRzID0gU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2Ft cGxlRm9ybWF0KTsKKyAgcGFyLmJwcyA9IHBhci5iaXRzIC8gODsKKyAgcGFyLnNpZyA9IHNpZyA9 IHBhci5iaXRzICE9IDggPyAxIDogMDsKKyAgcGFyLmxlID0gU0lPX0xFX05BVElWRTsKKyAgcGFy LmFwcGJ1ZnN6ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCk7CisKKyAgaGRsID0gc2lvX29w ZW4oU0lPX0RFVkFOWSwgU0lPX1JFQywgMCk7CisKKyAgaWYgKGhkbCA9PSBOVUxMKSB7CisgICAg TE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZpY2UuIjsKKyAgICByZXR1cm4g ZmFsc2U7CisgIH0KKworICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBh cihoZGwsICZwYXIpKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgc2V0IGF1ZGlvIHBh cmFtZXRlcnMuIjsKKyAgICBnb3RvIGJhZF9jbG9zZTsKKyAgfQorCisgIGlmIChwYXIucmF0ZSAg IT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUoKSB8fAorICAgICAgcGFyLnJjaGFu ICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKyAgICAgIHBhci5iaXRzICAh PSAodW5zaWduZWQgaW50KVNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1h dCkgfHwKKyAgICAgIHBhci5zaWcgICAhPSAodW5zaWduZWQgaW50KXNpZyB8fAorICAgICAgKHBh ci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorICAgICAgKHBhci5iaXRz ICE9IHBhci5icHMgKiA4KSkgeworICAgIExPRyhFUlJPUikgPDwgIlVuc3VwcG9ydGVkIGF1ZGlv IHBhcmFtZXRlcnMuIjsKKyAgICBnb3RvIGJhZF9jbG9zZTsKKyAgfQorICBzdGF0ZSA9IGtTdG9w cGVkOworICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdl dEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92 ZUNhbGxiYWNrLCB0aGlzKTsKKyAgcmV0dXJuIHRydWU7CitiYWRfY2xvc2U6CisgIHNpb19jbG9z ZShoZGwpOworICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFt OjpTdGFydChBdWRpb0lucHV0Q2FsbGJhY2sqIGNiKSB7CisKKyAgU3RhcnRBZ2MoKTsKKworICBz dGF0ZSA9IGtSdW5uaW5nOworICBod19kZWxheSA9IDA7CisgIGNhbGxiYWNrID0gY2I7CisgIHNp b19zdGFydChoZGwpOworICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgJlRocmVh ZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0 ZSByZWFsLXRpbWUgdGhyZWFkIGZvciByZWNvcmRpbmcuIjsKKyAgICBzaW9fc3RvcChoZGwpOwor ICAgIHN0YXRlID0ga1N0b3BwZWQ7CisgIH0KK30KKwordm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJl YW06OlN0b3AoKSB7CisKKyAgaWYgKHN0YXRlID09IGtTdG9wcGVkKQorICAgIHJldHVybjsKKwor ICBzdGF0ZSA9IGtTdG9wV2FpdDsKKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisgIHNp b19zdG9wKGhkbCk7CisgIHN0YXRlID0ga1N0b3BwZWQ7CisKKyAgU3RvcEFnYygpOworfQorCit2 b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6Q2xvc2UoKSB7CisKKyAgaWYgKHN0YXRlID09IGtD bG9zZWQpCisgICAgcmV0dXJuOworCisgIGlmIChzdGF0ZSA9PSBrUnVubmluZykKKyAgICBTdG9w KCk7CisKKyAgc3RhdGUgPSBrQ2xvc2VkOworICBkZWxldGUgW10gYnVmZmVyOworICBzaW9fY2xv c2UoaGRsKTsKKworICBtYW5hZ2VyLT5SZWxlYXNlSW5wdXRTdHJlYW0odGhpcyk7Cit9CisKK2Rv dWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldE1heFZvbHVtZSgpIHsKKyAgLy8gTm90IHN1 cHBvcnRlZAorICByZXR1cm4gMC4wOworfQorCit2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6 U2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIHsKKyAgLy8gTm90IHN1cHBvcnRlZC4gRG8gbm90aGlu Zy4KK30KKworZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6R2V0Vm9sdW1lKCkgeworICAv LyBOb3Qgc3VwcG9ydGVkLgorICByZXR1cm4gMC4wOworfQorCitib29sIFNuZGlvQXVkaW9JbnB1 dFN0cmVhbTo6SXNNdXRlZCgpIHsKKyAgLy8gTm90IHN1cHBvcnRlZC4KKyAgcmV0dXJuIGZhbHNl OworfQorCit2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0T3V0cHV0RGV2aWNlRm9yQWVj KAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkKSB7CisgIC8vIE5vdCBz dXBwb3J0ZWQuCit9CisKK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRMb29wKHZv aWQpIHsKKyAgc2l6ZV90IHRvZG8sIG47CisgIGNoYXIgKmRhdGE7CisgIHVuc2lnbmVkIGludCBu ZnJhbWVzOworICBkb3VibGUgbm9ybWFsaXplZF92b2x1bWUgPSAwLjA7CisKKyAgbmZyYW1lcyA9 IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisKKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5nICYmICFz aW9fZW9mKGhkbCkpIHsKKworICAgIEdldEFnY1ZvbHVtZSgmbm9ybWFsaXplZF92b2x1bWUpOwor CisgICAgLy8gcmVhZCBvbmUgYmxvY2sKKyAgICB0b2RvID0gbmZyYW1lcyAqIHBhcmFtcy5HZXRC eXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOworICAgIGRhdGEgPSBidWZmZXI7CisgICAgd2hp bGUgKHRvZG8gPiAwKSB7CisgICAgICBuID0gc2lvX3JlYWQoaGRsLCBkYXRhLCB0b2RvKTsKKyAg ICAgIGlmIChuID09IDApCisgICAgICAgIHJldHVybjsJLy8gdW5yZWNvdmVyYWJsZSBJL08gZXJy b3IKKyAgICAgIHRvZG8gLT0gbjsKKyAgICAgIGRhdGEgKz0gbjsKKyAgICB9CisgICAgaHdfZGVs YXkgLT0gbmZyYW1lczsKKworICAgIC8vIGNvbnZlcnQgZnJhbWVzIGNvdW50IHRvIFRpbWVEZWx0 YQorICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxheSA9IEF1ZGlvVGltZXN0YW1wSGVscGVy OjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisgICAgICBwYXJhbXMuc2FtcGxlX3JhdGUoKSk7CisK KyAgICAvLyBwdXNoIGludG8gYnVzCisgICAgYXVkaW9fYnVzLT5Gcm9tSW50ZXJsZWF2ZWQoYnVm ZmVyLCBuZnJhbWVzLCBTYW1wbGVGb3JtYXRUb0J5dGVzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0 KSk7CisKKyAgICAvLyBpbnZva2UgY2FsbGJhY2sKKyAgICBjYWxsYmFjay0+T25EYXRhKGF1ZGlv X2J1cy5nZXQoKSwgYmFzZTo6VGltZVRpY2tzOjpOb3coKSAtIGRlbGF5LCAxLik7CisgIH0KK30K KworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAv ZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxl cy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5kODY4ZTA0NjlkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5oCkBAIC0wLDAgKzEsOTEgQEAKKy8v IENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk LgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2lm bmRlZiBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworI2RlZmluZSBNRURJQV9BVURJ T19TTkRJT19TTkRJT19JTlBVVF9IXworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8 c3RyaW5nPgorI2luY2x1ZGUgPHNuZGlvLmg+CisKKyNpbmNsdWRlICJiYXNlL2NvbXBpbGVyX3Nw ZWNpZmljLmgiCisjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKyNpbmNsdWRlICJiYXNlL21lbW9y eS93ZWFrX3B0ci5oIgorI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisjaW5jbHVkZSAibWVk aWEvYXVkaW8vYWdjX2F1ZGlvX3N0cmVhbS5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlv X2lvLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fZGV2aWNlX2Rlc2NyaXB0aW9uLmgi CisjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb19wYXJhbWV0ZXJzLmgiCisKK25hbWVzcGFjZSBt ZWRpYSB7CisKK2NsYXNzIEF1ZGlvTWFuYWdlckJhc2U7CisKKy8vIEltcGxlbWVudGF0aW9uIG9m IEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCitjbGFzcyBTbmRpb0F1ZGlvSW5wdXRT dHJlYW0gOiBwdWJsaWMgQWdjQXVkaW9TdHJlYW08QXVkaW9JbnB1dFN0cmVhbT4geworIHB1Ymxp YzoKKyAgLy8gUGFzcyB0aGlzIHRvIHRoZSBjb25zdHJ1Y3RvciBpZiB5b3Ugd2FudCB0byBhdHRl bXB0IGF1dG8tc2VsZWN0aW9uCisgIC8vIG9mIHRoZSBhdWRpbyByZWNvcmRpbmcgZGV2aWNlLgor ICBzdGF0aWMgY29uc3QgY2hhciBrQXV0b1NlbGVjdERldmljZVtdOworCisgIC8vIENyZWF0ZSBh IFBDTSBPdXRwdXQgc3RyZWFtIGZvciB0aGUgU05ESU8gZGV2aWNlIGlkZW50aWZpZWQgYnkKKyAg Ly8gfGRldmljZV9uYW1lfC4gSWYgdW5zdXJlIG9mIHdoYXQgdG8gdXNlIGZvciB8ZGV2aWNlX25h bWV8LCB1c2UKKyAgLy8gfGtBdXRvU2VsZWN0RGV2aWNlfC4KKyAgU25kaW9BdWRpb0lucHV0U3Ry ZWFtKEF1ZGlvTWFuYWdlckJhc2UqIGF1ZGlvX21hbmFnZXIsCisgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICBj b25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisKKyAgflNuZGlvQXVkaW9JbnB1dFN0cmVh bSgpIG92ZXJyaWRlOworCisgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvSW5wdXRTdHJlYW0u CisgIGJvb2wgT3BlbigpIG92ZXJyaWRlOworICB2b2lkIFN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFj ayogY2FsbGJhY2spIG92ZXJyaWRlOworICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKyAgdm9pZCBD bG9zZSgpIG92ZXJyaWRlOworICBkb3VibGUgR2V0TWF4Vm9sdW1lKCkgb3ZlcnJpZGU7CisgIHZv aWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRlOworICBkb3VibGUgR2V0Vm9sdW1l KCkgb3ZlcnJpZGU7CisgIGJvb2wgSXNNdXRlZCgpIG92ZXJyaWRlOworICB2b2lkIFNldE91dHB1 dERldmljZUZvckFlYyhjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkgb3ZlcnJp ZGU7CisKKyBwcml2YXRlOgorCisgIGVudW0gU3RyZWFtU3RhdGUgeworICAgIGtDbG9zZWQsICAg ICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKyAgICBrU3RvcHBlZCwgICAgICAgICAgIC8vIERl dmljZSBvcGVuZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQKKyAgICBrUnVubmluZywgICAgICAgICAg IC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisgICAga1N0b3BXYWl0ICAgICAgICAgICAvLyBT dG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8gZXhpdAorICB9Owor CisgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworICBzdGF0aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2 b2lkICphcmcsIGludCBkZWx0YSk7CisgIHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRyeSh2b2lkICph cmcpOworCisgIC8vIENvbnRpbnVvdXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIGRldmljZSB0byB0 aGUgY29uc3VtZXIKKyAgdm9pZCBUaHJlYWRMb29wKCk7CisgIC8vIE91ciBjcmVhdG9yLCB0aGUg YXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNsb3NlLgorICBBdWRp b01hbmFnZXJCYXNlKiBtYW5hZ2VyOworICAvLyBQYXJhbWV0ZXJzIG9mIHRoZSBzb3VyY2UKKyAg QXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKyAgLy8gV2Ugc3RvcmUgZGF0YSBoZXJlIGZvciBjb25z dW1lcgorICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdXM+IGF1ZGlvX2J1czsKKyAgLy8gQ2FsbC1i YWNrIHRoYXQgY29uc3VtZXMgcmVjb3JkZWQgZGF0YQorICBBdWRpb0lucHV0Q2FsbGJhY2sqIGNh bGxiYWNrOyAgLy8gVmFsaWQgZHVyaW5nIGEgcmVjb3JkaW5nIHNlc3Npb24uCisgIC8vIEhhbmRs ZSBvZiB0aGUgYXVkaW8gZGV2aWNlCisgIHN0cnVjdCBzaW9faGRsKiBoZGw7CisgIC8vIEN1cnJl bnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorICBlbnVtIFN0cmVhbVN0YXRlIHN0YXRlOworICAvLyBI aWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExvb3AoKQorICBwdGhyZWFkX3QgdGhy ZWFkOworICAvLyBOdW1iZXIgb2YgZnJhbWVzIGJ1ZmZlcmVkIGluIHRoZSBoYXJkd2FyZQorICBp bnQgaHdfZGVsYXk7CisgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQg c25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKyAgY2hhciogYnVmZmVyOworCisgIERJU0FMTE9XX0NP UFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvSW5wdXRTdHJlYW0pOworfTsKKworfSAgLy8gbmFtZXNw YWNlIG1lZGlhCisKKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19v dXRwdXQuY2MgYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0 cHV0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNjcxOWY5YWFj OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1maWxl cy9zbmRpb19vdXRwdXQuY2MKQEAgLTAsMCArMSwxODMgQEAKKy8vIENvcHlyaWdodCAoYykgMjAx MiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0 aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj YW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJiYXNlL2xv Z2dpbmcuaCIKKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorI2luY2x1ZGUgImJhc2UvdGlt ZS9kZWZhdWx0X3RpY2tfY2xvY2suaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5h Z2VyX2Jhc2UuaCIKKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIu aCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaCIKKworbmFtZXNw YWNlIG1lZGlhIHsKKworc3RhdGljIGNvbnN0IFNhbXBsZUZvcm1hdCBrU2FtcGxlRm9ybWF0ID0g a1NhbXBsZUZvcm1hdFMxNjsKKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpPbk1vdmVD YWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkgeworICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt KiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisKKyAg c2VsZi0+aHdfZGVsYXkgLT0gZGVsdGE7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVh bTo6T25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpIHsKKyAgU25kaW9B dWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJl YW0qPihhcmcpOworCisgIHNlbGYtPnZvbCA9IHZvbDsKK30KKwordm9pZCAqU25kaW9BdWRpb091 dHB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7CisgIFNuZGlvQXVkaW9PdXRwdXRT dHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsK KworICBzZWxmLT5UaHJlYWRMb29wKCk7CisgIHJldHVybiBOVUxMOworfQorCitTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtOjpTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVy cyYgcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKQorICAgIDogbWFuYWdlcihtYW5hZ2VyKSwKKyAg ICAgIHBhcmFtcyhwYXJhbXMpLAorICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFy YW1zKSksCisgICAgICBzdGF0ZShrQ2xvc2VkKSwKKyAgICAgIG11dGV4KFBUSFJFQURfTVVURVhf SU5JVElBTElaRVIpIHsKK30KKworU25kaW9BdWRpb091dHB1dFN0cmVhbTo6flNuZGlvQXVkaW9P dXRwdXRTdHJlYW0oKSB7CisgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorICAgIENsb3NlKCk7Cit9 CisKK2Jvb2wgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T3BlbigpIHsKKyAgc3RydWN0IHNpb19w YXIgcGFyOworICBpbnQgc2lnOworCisgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJh bWV0ZXJzOjpBVURJT19QQ01fTElORUFSICYmCisgICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVk aW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1kpIHsKKyAgICBMT0coV0FSTklORykg PDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQor ICBzaW9faW5pdHBhcigmcGFyKTsKKyAgcGFyLnJhdGUgPSBwYXJhbXMuc2FtcGxlX3JhdGUoKTsK KyAgcGFyLnBjaGFuID0gcGFyYW1zLmNoYW5uZWxzKCk7CisgIHBhci5iaXRzID0gU2FtcGxlRm9y bWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KTsKKyAgcGFyLmJwcyA9IHBhci5iaXRz IC8gODsKKyAgcGFyLnNpZyA9IHNpZyA9IHBhci5iaXRzICE9IDggPyAxIDogMDsKKyAgcGFyLmxl ID0gU0lPX0xFX05BVElWRTsKKyAgcGFyLmFwcGJ1ZnN6ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVm ZmVyKCk7CisKKyAgaGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1BMQVksIDApOworICBp ZiAoaGRsID09IE5VTEwpIHsKKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlv IGRldmljZS4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAoIXNpb19zZXRwYXIoaGRs LCAmcGFyKSB8fCAhc2lvX2dldHBhcihoZGwsICZwYXIpKSB7CisgICAgTE9HKEVSUk9SKSA8PCAi Q291bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKyAgICBnb3RvIGJhZF9jbG9zZTsKKyAg fQorICBpZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLnNhbXBsZV9yYXRlKCkg fHwKKyAgICAgIHBhci5wY2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFubmVscygpIHx8 CisgICAgICBwYXIuYml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJD aGFubmVsKGtTYW1wbGVGb3JtYXQpIHx8CisgICAgICBwYXIuc2lnICAgIT0gKHVuc2lnbmVkIGlu dClzaWcgfHwKKyAgICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lPX0xFX05BVElWRSkg fHwKKyAgICAgIChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKyAgICBMT0coRVJST1IpIDw8 ICJVbnN1cHBvcnRlZCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisgICAgZ290byBiYWRfY2xvc2U7Cisg IH0KKyAgc3RhdGUgPSBrU3RvcHBlZDsKKyAgdm9scGVuZGluZyA9IDA7CisgIHZvbCA9IDA7Cisg IGJ1ZmZlciA9IG5ldyBjaGFyW2F1ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQ ZXJGcmFtZShrU2FtcGxlRm9ybWF0KV07CisgIHNpb19vbm1vdmUoaGRsLCAmT25Nb3ZlQ2FsbGJh Y2ssIHRoaXMpOworICBzaW9fb252b2woaGRsLCAmT25Wb2xDYWxsYmFjaywgdGhpcyk7CisgIHJl dHVybiB0cnVlOworIGJhZF9jbG9zZToKKyAgc2lvX2Nsb3NlKGhkbCk7CisgIHJldHVybiBmYWxz ZTsKK30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpDbG9zZSgpIHsKKyAgaWYgKHN0 YXRlID09IGtDbG9zZWQpCisgICAgcmV0dXJuOworICBpZiAoc3RhdGUgPT0ga1J1bm5pbmcpCisg ICAgU3RvcCgpOworICBzdGF0ZSA9IGtDbG9zZWQ7CisgIGRlbGV0ZSBbXSBidWZmZXI7CisgIHNp b19jbG9zZShoZGwpOworICBtYW5hZ2VyLT5SZWxlYXNlT3V0cHV0U3RyZWFtKHRoaXMpOyAgLy8g Q2FsbHMgdGhlIGRlc3RydWN0b3IKK30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpT dGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgeworICBzdGF0ZSA9IGtSdW5uaW5n OworICBod19kZWxheSA9IDA7CisgIHNvdXJjZSA9IGNhbGxiYWNrOworICBzaW9fc3RhcnQoaGRs KTsKKyAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsICZUaHJlYWRFbnRyeSwgdGhp cykgIT0gMCkgeworICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbC10aW1l IHRocmVhZC4iOworICAgIHNpb19zdG9wKGhkbCk7CisgICAgc3RhdGUgPSBrU3RvcHBlZDsKKyAg fQorfQorCit2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0b3AoKSB7CisgIGlmIChzdGF0 ZSA9PSBrU3RvcHBlZCkKKyAgICByZXR1cm47CisgIHN0YXRlID0ga1N0b3BXYWl0OworICBwdGhy ZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKyAgc2lvX3N0b3AoaGRsKTsKKyAgc3RhdGUgPSBrU3Rv cHBlZDsKK30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91Ymxl IHYpIHsKKyAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisgIHZvbCA9IHYgKiBTSU9fTUFY Vk9MOworICB2b2xwZW5kaW5nID0gMTsKKyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsK K30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpHZXRWb2x1bWUoZG91YmxlKiB2KSB7 CisgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworICAqdiA9IHZvbCAqICgxLiAvIFNJT19N QVhWT0wpOworICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworfQorCisvLyBUaGlzIHN0 cmVhbSBpcyBhbHdheXMgdXNlZCB3aXRoIHN1YiBzZWNvbmQgYnVmZmVyIHNpemVzLCB3aGVyZSBp dCdzCisvLyBzdWZmaWNpZW50IHRvIHNpbXBseSBhbHdheXMgZmx1c2ggdXBvbiBTdGFydCgpLgor dm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpGbHVzaCgpIHt9CisKK3ZvaWQgU25kaW9BdWRp b091dHB1dFN0cmVhbTo6VGhyZWFkTG9vcCh2b2lkKSB7CisgIGludCBhdmFpbCwgY291bnQsIHJl c3VsdDsKKworICB3aGlsZSAoc3RhdGUgPT0ga1J1bm5pbmcpIHsKKyAgICAvLyBVcGRhdGUgdm9s dW1lIGlmIG5lZWRlZAorICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworICAgIGlmICh2 b2xwZW5kaW5nKSB7CisgICAgICB2b2xwZW5kaW5nID0gMDsKKyAgICAgIHNpb19zZXR2b2woaGRs LCB2b2wpOworICAgIH0KKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworCisgICAg Ly8gR2V0IGRhdGEgdG8gcGxheQorICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxheSA9IEF1 ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisJcGFyYW1zLnNhbXBs ZV9yYXRlKCkpOworICAgIGNvdW50ID0gc291cmNlLT5Pbk1vcmVEYXRhKGRlbGF5LCBiYXNlOjpU aW1lVGlja3M6Ok5vdygpLCAwLCBhdWRpb19idXMuZ2V0KCkpOworICAgIGF1ZGlvX2J1cy0+VG9J bnRlcmxlYXZlZChjb3VudCwgU2FtcGxlRm9ybWF0VG9CeXRlc1BlckNoYW5uZWwoa1NhbXBsZUZv cm1hdCksIGJ1ZmZlcik7CisgICAgaWYgKGNvdW50ID09IDApIHsKKyAgICAgIC8vIFdlIGhhdmUg dG8gc3VibWl0IHNvbWV0aGluZyB0byB0aGUgZGV2aWNlCisgICAgICBjb3VudCA9IGF1ZGlvX2J1 cy0+ZnJhbWVzKCk7CisgICAgICBtZW1zZXQoYnVmZmVyLCAwLCBjb3VudCAqIHBhcmFtcy5HZXRC eXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpKTsKKyAgICAgIExPRyhXQVJOSU5HKSA8PCAiTm8g ZGF0YSB0byBwbGF5LCBydW5uaW5nIGVtcHR5IGN5Y2xlLiI7CisgICAgfQorCisgICAgLy8gU3Vi bWl0IGRhdGEgdG8gdGhlIGRldmljZQorICAgIGF2YWlsID0gY291bnQgKiBwYXJhbXMuR2V0Qnl0 ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsKKyAgICByZXN1bHQgPSBzaW9fd3JpdGUoaGRsLCBi dWZmZXIsIGF2YWlsKTsKKyAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgIExPRyhXQVJOSU5H KSA8PCAiQXVkaW8gZGV2aWNlIGRpc2Nvbm5lY3RlZC4iOworICAgICAgYnJlYWs7CisgICAgfQor CisgICAgLy8gVXBkYXRlIGhhcmR3YXJlIHBvaW50ZXIKKyAgICBod19kZWxheSArPSBjb3VudDsK KyAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgbWVkaWEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxl Y3Ryb24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuaCBiL3NyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uZWFkMjIwY2E5NmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0LmgKQEAgLTAsMCAr MSw4NiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwg cmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg YnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VO U0UgZmlsZS4KKworI2lmbmRlZiBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKyNk ZWZpbmUgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCisKKyNpbmNsdWRlIDxwdGhy ZWFkLmg+CisjaW5jbHVkZSA8c25kaW8uaD4KKworI2luY2x1ZGUgImJhc2UvdGltZS90aWNrX2Ns b2NrLmgiCisjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRp by9hdWRpb19pby5oIgorCituYW1lc3BhY2UgbWVkaWEgeworCitjbGFzcyBBdWRpb01hbmFnZXJC YXNlOworCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRp byg3KQorY2xhc3MgU25kaW9BdWRpb091dHB1dFN0cmVhbSA6IHB1YmxpYyBBdWRpb091dHB1dFN0 cmVhbSB7CisgcHVibGljOgorICAvLyBUaGUgbWFuYWdlciBpcyBjcmVhdGluZyB0aGlzIG9iamVj dAorICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1z LAorICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIpOwor ICB2aXJ0dWFsIH5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKCk7CisKKyAgLy8gSW1wbGVtZW50YXRp b24gb2YgQXVkaW9PdXRwdXRTdHJlYW0uCisgIGJvb2wgT3BlbigpIG92ZXJyaWRlOworICB2b2lk IENsb3NlKCkgb3ZlcnJpZGU7CisgIHZvaWQgU3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2Fs bGJhY2spIG92ZXJyaWRlOworICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKyAgdm9pZCBTZXRWb2x1 bWUoZG91YmxlIHZvbHVtZSkgb3ZlcnJpZGU7CisgIHZvaWQgR2V0Vm9sdW1lKGRvdWJsZSogdm9s dW1lKSBvdmVycmlkZTsKKyAgdm9pZCBGbHVzaCgpIG92ZXJyaWRlOworCisgIGZyaWVuZCB2b2lk IHNuZGlvX29ubW92ZSh2b2lkICphcmcsIGludCBkZWx0YSk7CisgIGZyaWVuZCB2b2lkIHNuZGlv X29udm9sKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7CisgIGZyaWVuZCB2b2lkICpzbmRp b190aHJlYWRzdGFydCh2b2lkICphcmcpOworCisgcHJpdmF0ZToKKyAgZW51bSBTdHJlYW1TdGF0 ZSB7CisgICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHlldAorICAgIGtTdG9w cGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorICAg IGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcKKyAgICBrU3Rv cFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRo cmVhZCB0byBleGl0CisgIH07CisKKyAgLy8gQy1zdHlsZSBjYWxsLWJhY2tzCisgIHN0YXRpYyB2 b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKyAgc3RhdGljIHZvaWQg T25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpOworICBzdGF0aWMgdm9p ZCogVGhyZWFkRW50cnkodm9pZCAqYXJnKTsKKworICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0 YSBmcm9tIHRoZSBwcm9kdWNlciB0byB0aGUgZGV2aWNlCisgIHZvaWQgVGhyZWFkTG9vcCh2b2lk KTsKKworICAvLyBPdXIgY3JlYXRvciwgdGhlIGF1ZGlvIG1hbmFnZXIgbmVlZHMgdG8gYmUgbm90 aWZpZWQgd2hlbiB3ZSBjbG9zZS4KKyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKyAgLy8g UGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisgIEF1ZGlvUGFyYW1ldGVycyBwYXJhbXM7CisgIC8v IFNvdXJjZSBzdG9yZXMgZGF0YSBoZXJlCisgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVk aW9fYnVzOworICAvLyBDYWxsLWJhY2sgdGhhdCBwcm9kdWNlcyBkYXRhIHRvIHBsYXkKKyAgQXVk aW9Tb3VyY2VDYWxsYmFjayogc291cmNlOworICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmlj ZQorICBzdHJ1Y3Qgc2lvX2hkbCogaGRsOworICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJl YW0KKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKyAgLy8gSGlnaCBwcmlvcml0eSB0aHJlYWQg cnVubmluZyBUaHJlYWRMb29wKCkKKyAgcHRocmVhZF90IHRocmVhZDsKKyAgLy8gUHJvdGVjdHMg dm9sLCB2b2xwZW5kaW5nIGFuZCBod19kZWxheQorICBwdGhyZWFkX211dGV4X3QgbXV0ZXg7Cisg IC8vIEN1cnJlbnQgdm9sdW1lIGluIHRoZSAwLi5TSU9fTUFYVk9MIHJhbmdlCisgIGludCB2b2w7 CisgIC8vIFNldCB0byAxIGlmIHZvbHVtZXMgbXVzdCBiZSByZWZyZXNoZWQgaW4gdGhlIHJlYWx0 aW1lIHRocmVhZAorICBpbnQgdm9scGVuZGluZzsKKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZm ZXJlZCBpbiB0aGUgaGFyZHdhcmUKKyAgaW50IGh3X2RlbGF5OworICAvLyBUZW1wb3JhcnkgYnVm ZmVyIHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisgIGNoYXIq IGJ1ZmZlcjsKKworICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb091dHB1dFN0 cmVhbSk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKworI2VuZGlmICAvLyBNRURJQV9B VURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9zbmRpby1wYXRjaGVzL21lZGlhX2F1ZGlvX2xpbnV4X2F1ZGlvX21hbmFnZXJfbGlu dXguY2MucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tcGF0Y2hlcy9tZWRp YV9hdWRpb19saW51eF9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZjhlODFiMTFkNgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1wYXRjaGVzL21lZGlhX2F1ZGlvX2xpbnV4 X2F1ZGlvX21hbmFnZXJfbGludXguY2MucGF0Y2gKQEAgLTAsMCArMSw0MyBAQAorZGlmZiAtLWdp dCBhL2Nocm9taXVtL21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MgYi9j aHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCitpbmRleCA1 ZDcwMzU0OTM3Mi4uOWU2MGI0MGM3NDkgMTAwNjQ0CistLS0gbWVkaWEvYXVkaW8vbGludXgvYXVk aW9fbWFuYWdlcl9saW51eC5jYworKysrIG1lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJf bGludXguY2MKK0BAIC0yMCw2ICsyMCwxMCBAQAorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxz ZS9hdWRpb19tYW5hZ2VyX3B1bHNlLmgiCisgI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3B1bHNlL3B1 bHNlX3V0aWwuaCIKKyAjZW5kaWYKKysjaWYgZGVmaW5lZChVU0VfU05ESU8pCisrI2luY2x1ZGUg PHNuZGlvLmg+CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL29wZW5ic2QvYXVkaW9fbWFuYWdlcl9v cGVuYnNkLmgiCisrI2VuZGlmCisgCisgbmFtZXNwYWNlIG1lZGlhIHsKKyAKK0BAIC0yNyw3ICsz MSw4IEBAIGVudW0gTGludXhBdWRpb0lPIHsKKyAgIGtQdWxzZSwKKyAgIGtBbHNhLAorICAga0Ny YXMsCistICBrQXVkaW9JT01heCA9IGtDcmFzICAvLyBNdXN0IGFsd2F5cyBiZSBlcXVhbCB0byBs YXJnZXN0IGxvZ2dlZCBlbnRyeS4KKysgIGtTbmRpbywKKysgIGtBdWRpb0lPTWF4ID0ga1NuZGlv ICAvLyBNdXN0IGFsd2F5cyBiZSBlcXVhbCB0byBsYXJnZXN0IGxvZ2dlZCBlbnRyeS4KKyB9Owor IAorIHN0ZDo6dW5pcXVlX3B0cjxtZWRpYTo6QXVkaW9NYW5hZ2VyPiBDcmVhdGVBdWRpb01hbmFn ZXIoCitAQCAtNDEsNiArNDYsMTcgQEAgc3RkOjp1bmlxdWVfcHRyPG1lZGlhOjpBdWRpb01hbmFn ZXI+IENyZWF0ZUF1ZGlvTWFuYWdlcigKKyAgIH0KKyAjZW5kaWYKKyAKKysjaWYgZGVmaW5lZChV U0VfU05ESU8pCisrICBzdHJ1Y3Qgc2lvX2hkbCAqIGhkbCA9IE5VTEw7CisrICBpZiAoKGhkbD1z aW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUExBWSwgMSkpICE9IE5VTEwpIHsKKysgICAgc2lvX2Ns b3NlKGhkbCk7CisrICAgIFVNQV9ISVNUT0dSQU1fRU5VTUVSQVRJT04oIk1lZGlhLkxpbnV4QXVk aW9JTyIsIGtTbmRpbywga0F1ZGlvSU9NYXggKzEpOworKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu aXF1ZTxBdWRpb01hbmFnZXJPcGVuQlNEPihzdGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0 b3J5KTsKKysgIH0KKysgIERWTE9HKDEpIDw8ICJTbmRpbyBpcyBub3QgYXZhaWxhYmxlIG9uIHRo ZSBPUyI7CisrI2VuZGlmCisrCisgI2lmIGRlZmluZWQoVVNFX1BVTFNFQVVESU8pCisgICBwYV90 aHJlYWRlZF9tYWlubG9vcCogcGFfbWFpbmxvb3AgPSBudWxscHRyOworICAgcGFfY29udGV4dCog cGFfY29udGV4dCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmls ZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlf Y2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmVjNjA0MDAyNjY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX0JV SUxELmduLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBtZWRpYS9CVUlMRC5nbgkyMDIwLTAz LTI0IDEwOjE2OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIC0JMjAyMC0wNC0wNiAxNDozMjoyNy45 NjA4MTc1MTMgKzAyMDAKK0BAIC02NSw2ICs2NSw5IEBACisgICBpZiAodXNlX2NyYXMpIHsKKyAg ICAgZGVmaW5lcyArPSBbICJVU0VfQ1JBUyIgXQorICAgfQorKyAgaWYgKHVzZV9zbmRpbykgewor KyAgICBkZWZpbmVzICs9IFsgIlVTRV9TTkRJTyIgXQorKyAgfQorIH0KKyAKKyAjIEludGVybmFs IGdyb3VwaW5nIG9mIHRoZSBjb25maWdzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IHN1Yi1mb2xkZXJz IGhhdmluZyB0aGVpcgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlv LXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX2F1ZGlvX0JVSUxELmduLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2No cm9taXVtX21lZGlhX2F1ZGlvX0JVSUxELmduLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5jODU2ZGUwYmYyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb24xMC9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRp YV9hdWRpb19CVUlMRC5nbi5wYXRjaApAQCAtMCwwICsxLDIzIEBACistLS0gbWVkaWEvYXVkaW8v QlVJTEQuZ24JMjAyMC0wMy0yNCAxMDoxNjozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAtCTIwMjAt MDQtMDYgMTQ6MzE6MjguODcxNDUwMjE3ICswMjAwCitAQCAtMjMyLDkgKzIzMiwxOSBAQAorICAg ICBkZXBzICs9IFsgIi8vbWVkaWEvYmFzZS9hbmRyb2lkOm1lZGlhX2puaV9oZWFkZXJzIiBdCisg ICB9CisgCistICBpZiAoaXNfbGludXgpIHsKKysgIGlmIChpc19saW51eCkgeworICAgICBzb3Vy Y2VzICs9IFsgImxpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MiIF0KKyAgIH0KKysgIGlmICh1 c2Vfc25kaW8pIHsKKysgICAgbGlicyArPSBbICJzbmRpbyIgXQorKyAgICBzb3VyY2VzICs9IFsK KysgICAgICAib3BlbmJzZC9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2MiLAorKyAgICAgICJzbmRp by9zbmRpb19pbnB1dC5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmgiLAorKyAgICAg ICJzbmRpby9zbmRpb19vdXRwdXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19vdXRwdXQuaCIK KysgICBdCisrIH0KKyAKKyAgIGlmICh1c2VfYWxzYSkgeworICAgICBsaWJzICs9IFsgImFzb3Vu ZCIgXQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMv c3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX21lZGlhX19vcHRpb25zLmduaS5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1 bV9tZWRpYV9tZWRpYV9fb3B0aW9ucy5nbmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjE0ODA3ZDhlMWQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlh X21lZGlhX19vcHRpb25zLmduaS5wYXRjaApAQCAtMCwwICsxLDEyIEBACistLS0gbWVkaWEvbWVk aWFfb3B0aW9ucy5nbmkJMjAyMC0wMy0yNCAxMDoxNjozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAt CTIwMjAtMDQtMDYgMTQ6Mjk6MjIuOTU4NjMwNzgzICswMjAwCitAQCAtMTE0LDYgKzExNCw5IEBA CisgICAjIEVuYWJsZXMgcnVudGltZSBzZWxlY3Rpb24gb2YgQUxTQSBsaWJyYXJ5IGZvciBhdWRp by4KKyAgIHVzZV9hbHNhID0gZmFsc2UKKyAKKysgICMgRW5hYmxlcyBydW50aW1lIHNlbGVjdGlv biBvZiBzbmRpbyBsaWJyYXJ5IGZvciBhdWRpby4KKysgIHVzZV9zbmRpbyA9IGZhbHNlCisrCisg ICAjIEFsc2Egc2hvdWxkIGJlIHVzZWQgb24gbm9uLUFuZHJvaWQsIG5vbi1NYWMgUE9TSVggc3lz dGVtcy4KKyAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBvbiBkZXNrdG9wIENocm9tZWNhc3QgYW5k IGF1ZGlvLW9ubHkgQ2hyb21lY2FzdCBidWlsZHMuCisgICBpZiAoaXNfcG9zaXggJiYgIWlzX2Fu ZHJvaWQgJiYgIWlzX21hYyAmJgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL3RlbXBs YXRlIGIvc3JjcGtncy9lbGVjdHJvbjEwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi4zZTc5OTVlMDFjNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb24xMC90ZW1wbGF0ZQpAQCAtMCwwICsxLDM1MyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZWxlY3Ryb24xMCcKK3BrZ25hbWU9ZWxlY3Ryb24xMAordmVyc2lvbj0xMC4xLjMKK19ub2Rl dmVyPTEyLjE2LjMKK19jaHJvbWl1bXZlcj04NS4wLjQxODMuMTIxCityZXZpc2lvbj0xCithcmNo cz0ieDg2XzY0KiBpNjg2KiBhYXJjaDY0KiBwcGM2NGxlKiIKK2J1aWxkX3dya3NyYz0ic3JjIgor Y3JlYXRlX3dya3NyYz15ZXMKK2hvc3RtYWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNsYW5nIGNsYW5n KSBweXRob24gcGtnY29uZiBwZXJsIGdwZXJmIGJpc29uIG5pbmphIG5vZGVqcyBod2lkcworIGxp YndlYnAtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgaGFyZmJ1enotZGV2ZWwgbGlicG5nLWRldmVsIG5z cy1kZXZlbCB3aGljaCBnaXQgbGliZXZlbnQtZGV2ZWwKKyBwY2l1dGlscy1kZXZlbCBsaWJhdG9t aWMtZGV2ZWwgZmZtcGVnLWRldmVsIGxpYnhtbDItZGV2ZWwgbGliZ2xpYi1kZXZlbCB5YXJuIG9w ZW5qZGsgbGlieHNsdC1kZXZlbAorIG9wdXMtZGV2ZWwgbGliWGN1cnNvci1kZXZlbCBsaWJYY29t cG9zaXRlLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHJhbmRyLWRldmVsIGxpYlhTY3JuU2F2ZXIt ZGV2ZWwKKyBhbHNhLWxpYi1kZXZlbCByZTItZGV2ZWwgc25hcHB5LWRldmVsIG1pdC1rcmI1LWRl dmVsICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwpCisgJCh2b3B0X2lmIHNu ZGlvIHNuZGlvLWRldmVsKSIKK21ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgZ3RrKy1kZXZlbCBn dGsrMy1kZXZlbCBuc3MtZGV2ZWwgcGNpdXRpbHMtZGV2ZWwKKyBsaWJYaS1kZXZlbCBsaWJnY3J5 cHQtZGV2ZWwgbGliZ25vbWUta2V5cmluZy1kZXZlbCBjdXBzLWRldmVsIGVsZnV0aWxzLWRldmVs CisgbGliWGNvbXBvc2l0ZS1kZXZlbCBzcGVlY2gtZGlzcGF0Y2hlci1kZXZlbCBsaWJYcmFuZHIt ZGV2ZWwgbWl0LWtyYjUtZGV2ZWwKKyBsaWJYU2NyblNhdmVyLWRldmVsIGFsc2EtbGliLWRldmVs IHNuYXBweS1kZXZlbCBsaWJkcm0tZGV2ZWwKKyBsaWJ4bWwyLWRldmVsIGxpYnhzbHQtZGV2ZWwg JCh2b3B0X2lmIHB1bHNlYXVkaW8gcHVsc2VhdWRpby1kZXZlbCkgbGliZXhpZi1kZXZlbAorIGxp YlhjdXJzb3ItZGV2ZWwgbGliZmxhYy1kZXZlbCBzcGVleC1kZXZlbCBsaWJtdHAtZGV2ZWwgbGli d2VicC1kZXZlbAorIGxpYmpwZWctdHVyYm8tZGV2ZWwgbGliZXZlbnQtZGV2ZWwganNvbi1jLWRl dmVsIGhhcmZidXp6LWRldmVsCisgbWluaXppcC1kZXZlbCBqc29uY3BwLWRldmVsIHpsaWItZGV2 ZWwgbGliY2FwLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKKyByZTItZGV2ZWwgZm9udGNvbmZpZy1k ZXZlbCBmcmVldHlwZS1kZXZlbCBvcHVzLWRldmVsIGxpYmF0b21pYy1kZXZlbAorICQodm9wdF9p ZiBzbmRpbyBzbmRpby1kZXZlbCkgZmZtcGVnLWRldmVsIGxpYnZhLWRldmVsIGxpYnV2LWRldmVs IGMtYXJlcy1kZXZlbCBsaWJub3RpZnktZGV2ZWwiCitzaG9ydF9kZXNjPSJDcm9zcyBwbGF0Zm9y bSBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBmcmFtZXdvcmsgYmFzZWQgb24gd2ViIHRlY2hub2xv Z2llcyIKK21haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCitsaWNlbnNlPSJC U0QtMy1DbGF1c2UiCitob21lcGFnZT0iaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZyIKK2Rpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL2VsZWN0cm9uL2VsZWN0cm9uL2FyY2hpdmUvdiR2ZXJzaW9u LnRhci5nej5lbGVjdHJvbi0ke3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vY29tbW9uZGF0YXN0 b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nlci1vZmZpY2lhbC9jaHJvbWl1bS0k X2Nocm9taXVtdmVyLnRhci54egorIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9hcmNo aXZlL3YkX25vZGV2ZXIudGFyLmd6Pm5vZGUtJF9ub2RldmVyLnRhci5neiIKK2NoZWNrc3VtPSJi NTBlMmI4NmFiYjM2NDFhNjY0YTg3ZDkyY2IwOTgzNWU2ZDBlYTViODFjNGQzZTAzMWYwNDFjNzVl YTc0MTU4CisgZTAxODU0N2U1NDU2NjQxMGZiMzY1ZDlmM2RhZTEwMDM3YzMwZmNhNWRlYmU2YmE4 YmFjZWVmM2FkM2IwM2QyOAorIGRjZDBhMWU2MTlmZjMyNjM5OWNhOGZkODdmNjFjMjU1ZjRkMWU5 YmZmNDc4NjAwNjQ5OTNmMDFlNGZmMzdmZTEiCisKK25vX2dlbmVyaWNfcGtnY29uZmlnX2xpbms9 eWVzCitsaWIzMmRpc2FibGVkPXllcworbm9kZWJ1Zz15ZXMKK25vcGllPXllcyAgIyBjb250YWlu cyB0b29scyB0aGF0IGFyZSBub3QgUElFLCBlbmFibGVzIFBJRSBpdHNlbGYKKworYnVpbGRfb3B0 aW9ucz0icHVsc2VhdWRpbyBzbmRpbyBjbGFuZyIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0icHVs c2VhdWRpbyBzbmRpbyBjbGFuZyIKKworaWYgWyAiJGJ1aWxkX29wdGlvbl9jbGFuZyIgXTsgdGhl bgorCW5vY3Jvc3M9Ik5vIHByb3BlciBzZXR1cCBmb3IgdXNpbmcgY2xhbmcgYXMgY3Jvc3MgY29t cGlsZXIgaW4gdm9pZCB5ZXQiCitlbGlmIFsgIiR7WEJQU19UQVJHRVRfTUFDSElORSUlLW11c2x9 IiA9ICJhYXJjaDY0IiBdOyB0aGVuCisJYnJva2VuPSJGYWxscyBhcGFydCBhdCBydW50aW1lIHdo ZW4gY29tcGlsZWQgd2l0aCBnY2MiCitmaQorCitfYnVpbGR0eXBlPVJlbGVhc2UKK19pc19kZWJ1 Zz1mYWxzZQorCitDRkxBR1M9Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbiAtZlBJQyIKK0NY WEZMQUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24gLWZQSUMiCisKK19hcHBseV9wYXRj aCgpIHsKKwlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgorCisJaWYgWyAh IC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgorCQltc2dfbm9ybWFsICIkcGtndmVyOiBwYXRj aGluZzogJHtwbmFtZX0uXG4iCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRvdWNoIC4ke3Bu YW1lfV9kb25lCisJZmkKK30KKworX2dldF9jaHJvbWl1bV9hcmNoKCkgeworCWNhc2UgIiQxIiBp bgorCQl4ODZfNjQqKSBlY2hvIHg2NCA7OworCQlpNjg2KikgZWNobyB4ODYgOzsKKwkJYXJtKikg ZWNobyBhcm0gOzsKKwkJYWFyY2g2NCopIGVjaG8gYXJtNjQgOzsKKwkJcHBjNjQqKSBlY2hvIHBw YzY0IDs7CisJCXBwYyopIGVjaG8gcHBjIDs7CisJCW1pcHNlbCopIGVjaG8gbWlwc2VsIDs7CisJ CW1pcHMqKSBlY2hvIG1pcHMgOzsKKwkJKikgbXNnX2Vycm9yICIkcGtndmVyOiBjYW5ub3QgYmUg Y29tcGlsZWQgZm9yICR7WEJQU19UQVJHRVRfTUFDSElORX0uXG4iIDs7CisJZXNhYworfQorCitw b3N0X2V4dHJhY3QoKSB7CisJbG4gLXMgY2hyb21pdW0tJF9jaHJvbWl1bXZlciBzcmMKKwlta2Rp ciAtcCBzcmMvdGhpcmRfcGFydHkvCisJbG4gLXMgLi4vLi4vbm9kZS0kX25vZGV2ZXIgc3JjL3Ro aXJkX3BhcnR5L2VsZWN0cm9uX25vZGUKKwlsbiAtcyAuLi9lbGVjdHJvbi0ke3ZlcnNpb259IHNy Yy9lbGVjdHJvbgorCit9Citwb3N0X3BhdGNoKCkgeworCWNkICR3cmtzcmMKKwlmb3IgeCBpbiAk RklMRVNESVIvcGF0Y2hlcy8qOyBkbworCQljYXNlICIke3gjIyovfSIgaW4KKwkJCWVsZWN0cm9u Ki5wYXRjaCkKKwkJCQljZCBzcmMvZWxlY3Ryb24KKwkJCQlfYXBwbHlfcGF0Y2ggLXAxICIkeCIK KwkJCQljZCAiJHdya3NyYyI7OworCQllc2FjCisJZG9uZQorCisJIyBTaWdoLCBlbGVjdHJvbiB1 c2VzIGdpdCBhbS4uLgorCWlmIFsgISAtZiAiLmVsZWN0cm9uX3BhdGNoZXNfZG9uZSIgXTsgdGhl bgorCXB5dGhvbjIgc3JjL2VsZWN0cm9uL3NjcmlwdC9saXN0X3BhdGNoX3RhcmdldHMucHkgc3Jj L2VsZWN0cm9uL3BhdGNoZXMvY29uZmlnLmpzb24gfCB3aGlsZSByZWFkIC1yIHJlcG9wYXRoOyBk bworCQljZCAiJHdya3NyYyIvIiRyZXBvcGF0aCIKKwkJZ2l0IGluaXQgLXEKKwkJZ2l0IGNvbmZp ZyAiZ2MuYXV0byIgMAorCQlpZiBbICIkcmVwb3BhdGgiICE9ICJzcmMiIF07IHRoZW4KKwkJCWVj aG8gIi8ke3JlcG9wYXRoI3NyYy99IiA+PiAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjLy5naXRpZ25v cmUiCisJCWZpCisJCWdpdCBhZGQgLgorCQlnaXQgLWMgJ3VzZXIubmFtZT1FbGVjdHJvbiBidWls ZCcgLWMgJ3VzZXIuZW1haWw9ZWxlY3Ryb25AZWJ1aWxkJyBcCisJCQljb21taXQgLXEgLW0gIi4i IHx8IHRydWUKKwlkb25lCisJY2QgJHdya3NyYworCXB5dGhvbjIgc3JjL2VsZWN0cm9uL3Njcmlw dC9hcHBseV9hbGxfcGF0Y2hlcy5weSBzcmMvZWxlY3Ryb24vcGF0Y2hlcy9jb25maWcuanNvbgor CXRvdWNoIC5lbGVjdHJvbl9wYXRjaGVzX2RvbmUKKwlmaQorCisJZm9yIHggaW4gJEZJTEVTRElS L3BhdGNoZXMvKjsgZG8KKwkJY2FzZSAiJHt4IyMqL30iIGluCisJCQljaHJvbWl1bSoucGF0Y2gp CisJCQkJY2Qgc3JjCisJCQkJX2FwcGx5X3BhdGNoIC1wMSAiJHgiCisJCQkJY2QgIiR3cmtzcmMi OzsKKwkJZXNhYworCWRvbmUKKworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBd OyB0aGVuCisJZm9yIHggaW4gJEZJTEVTRElSL211c2wtcGF0Y2hlcy8qOyBkbworCQljYXNlICIk e3gjIyovfSIgaW4KKwkJCWNocm9taXVtKi5wYXRjaCkKKwkJCQljZCBzcmMKKwkJCQlfYXBwbHlf cGF0Y2ggLXAxICIkeCIKKwkJCQljZCAiJHdya3NyYyI7OworCQkJZWxlY3Ryb24qLnBhdGNoKQor CQkJCWNkIHNyYy9lbGVjdHJvbgorCQkJCV9hcHBseV9wYXRjaCAtcDEgIiR4IgorCQkJCWNkICIk d3Jrc3JjIjs7CisJCWVzYWMKKwlkb25lCisJZmkKKwlpZiBbICIkYnVpbGRfb3B0aW9uX3NuZGlv IiBdOyB0aGVuCisJCW1rZGlyIC1wICR7d3Jrc3JjfS8ke2J1aWxkX3dya3NyY30vbWVkaWEvYXVk aW8ve3NuZGlvLG9wZW5ic2R9CisJCWNwICR7RklMRVNESVJ9L3NuZGlvLWZpbGVzL3NuZGlvXypw dXQuKiBcCisJCQkke3dya3NyY30vJHtidWlsZF93cmtzcmN9L21lZGlhL2F1ZGlvL3NuZGlvCisJ CWNwICR7RklMRVNESVJ9L3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC4qIFwKKwkJ CSR7d3Jrc3JjfS8ke2J1aWxkX3dya3NyY30vbWVkaWEvYXVkaW8vb3BlbmJzZAorCQlmb3IgZiBp biAiJHtGSUxFU0RJUn0iL3NuZGlvLXBhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCWNkIHNyYworCQkJ X2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCQljZCAiJHdya3NyYyIKKwkJZG9uZQorCWZpCit9CisK K3ByZV9jb25maWd1cmUoKSB7CisJY2QgIiR3cmtzcmMvJGJ1aWxkX3dya3NyYyIKKworCSMgaHR0 cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9hL2Nocm9taXVtLm9yZy9kL3RvcGljL2Nocm9taXVtLXBh Y2thZ2Vycy85SlgxTjJuZjRQVS9kaXNjdXNzaW9uCisJdG91Y2ggY2hyb21lL3Rlc3QvZGF0YS93 ZWJ1aS9pMThuX3Byb2Nlc3NfY3NzX3Rlc3QuaHRtbAorCSMgVXNlIHRoZSBmaWxlIGF0IHJ1biB0 aW1lIGluc3RlYWQgb2YgZWZmZWN0aXZlbHkgY29tcGlsaW5nIGl0IGluCisJc2VkICdzfC8vdGhp cmRfcGFydHkvdXNiX2lkcy91c2IuaWRzfC91c3Ivc2hhcmUvaHdkYXRhL3VzYi5pZHN8ZycgXAor CQktaSBzZXJ2aWNlcy9kZXZpY2UvcHVibGljL2NwcC91c2IvQlVJTEQuZ24KKworCW1rZGlyIC1w IHRoaXJkX3BhcnR5L25vZGUvbGludXgvbm9kZS1saW51eC14NjQvYmluCisJbG4gLXMgL3Vzci9i aW4vbm9kZSB0aGlyZF9wYXJ0eS9ub2RlL2xpbnV4L25vZGUtbGludXgteDY0L2Jpbi8KKworCSMg cmV1c2FibGUgc3lzdGVtIGxpYnJhcnkgc2V0dGluZ3MKKwlsb2NhbCB1c2Vfc3lzdGVtPSIKKwkJ ZmZtcGVnCisJCWZsYWMKKwkJZm9udGNvbmZpZworCQlmcmVldHlwZQorCQloYXJmYnV6ei1uZwor CQlsaWJkcm0KKwkJbGliZXZlbnQKKwkJbGlianBlZworCQlsaWJwbmcKKwkJbGlid2VicAorCQls aWJ4bWwKKwkJbGlieHNsdAorCQlvcHVzCisJCXJlMgorCQlzbmFwcHkKKwkJIgorCWZvciBfbGli IGluICR1c2Vfc3lzdGVtIGxpYmpwZWdfdHVyYm87IGRvCisJCW1zZ19ub3JtYWwgIlJlbW92aW5n IGJ1aWxkc2NyaXB0cyBmb3Igc3lzdGVtIHByb3ZpZGVkICRfbGliXG4iCisJCWZpbmQgLXR5cGUg ZiAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGliLyoiIFwKKwkJCVwhIC1wYXRoICIqdGhpcmRfcGFy dHkvJF9saWIvY2hyb21pdW0vKiIgXAorCQkJXCEgLXBhdGggIip0aGlyZF9wYXJ0eS8kX2xpYi9n b29nbGUvKiIgXAorCQkJXCEgLXBhdGggJy4vYmFzZS90aGlyZF9wYXJ0eS9pY3UvKicgXAorCQkJ XCEgLXBhdGggJy4vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2ZyZWV0eXBlL2luY2x1 ZGUvcHN0YWJsZXMuaCcgXAorCQkJXCEgLXBhdGggJy4vdGhpcmRfcGFydHkvaGFyZmJ1enotbmcv dXRpbHMvaGJfc2NvcGVkLmgnIFwKKwkJCVwhIC1yZWdleCAnLipcLlwoZ25cfGduaVx8aXNvbGF0 ZVx8cHlcKScgXAorCQkJLWRlbGV0ZQorCWRvbmUKKworCisJbXNnX25vcm1hbCAiUmVwbGFjaW5n IGduIGZpbGVzXG4iCisJcHl0aG9uMiBidWlsZC9saW51eC91bmJ1bmRsZS9yZXBsYWNlX2duX2Zp bGVzLnB5IC0tc3lzdGVtLWxpYnJhcmllcyBcCisJCSR1c2Vfc3lzdGVtCisJdGhpcmRfcGFydHkv bGliYWRkcmVzc2lucHV0L2Nocm9taXVtL3Rvb2xzL3VwZGF0ZS1zdHJpbmdzLnB5Cit9CisKK2Rv X2NvbmZpZ3VyZSgpIHsKKwlsb2NhbCB0YXJnZXRfYXJjaD0iJChfZ2V0X2Nocm9taXVtX2FyY2gg JHtYQlBTX1RBUkdFVF9NQUNISU5FfSkiCisJbG9jYWwgaG9zdF9hcmNoPSIkKF9nZXRfY2hyb21p dW1fYXJjaCAke1hCUFNfTUFDSElORX0pIgorCSMgdGhlIGJ1aWxkIHN5c3RlbSB3aWxsIHNldCBt YXJjaCBmb3IgdXNlLCBhZGRpbmcgaXQgdG8gY2ZsYWdzIHdpbGwgYnJlYWsgYnVpbGRzCisJZXhw b3J0IENYWEZMQUdTPSQoIHNob3B0IC1zIGV4dGdsb2I7IGVjaG8gJHtDWFhGTEFHUy8tbWFyY2g9 KihbXiBdKX0gKQorCWV4cG9ydCBDRkxBR1M9JCggc2hvcHQgLXMgZXh0Z2xvYjsgZWNobyAke0NG TEFHUy8tbWFyY2g9KihbXiBdKX0gKQorCWV4cG9ydCBDRkxBR1MrPSIgLWcxIgorCWV4cG9ydCBD WFhGTEFHUys9IiAtZzEiCisJbG9jYWwgY29uZj0oKQorCWNkIHRoaXJkX3BhcnR5L2VsZWN0cm9u X25vZGUKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJY29uZl9hcmdzPSIgLS1kZXN0 LWNwdT0ke3RhcmdldF9hcmNofSAtLWNyb3NzLWNvbXBpbGluZyIKKwlmaQorCS4vY29uZmlndXJl IC0tcHJlZml4PS91c3IgXAorCQktLXNoYXJlZC16bGliIFwKKwkJLS1zaGFyZWQtbGlidXYgXAor CQktLXNoYXJlZC1vcGVuc3NsIFwKKwkJLS1zaGFyZWQtY2FyZXMgXAorCQktLW9wZW5zc2wtdXNl LWRlZi1jYS1zdG9yZSBcCisJCS0td2l0aG91dC1ucG0gXAorCQktLXdpdGhvdXQtZHRyYWNlIFwK KwkJLS13aXRob3V0LWJ1bmRsZWQtdjggXAorCQkke2NvbmZfYXJnc30KKworCWNkICIkd3Jrc3Jj LyRidWlsZF93cmtzcmMiL2VsZWN0cm9uCisJeWFybiBpbnN0YWxsCisJY2QgIiR3cmtzcmMvJGJ1 aWxkX3dya3NyYyIKKworCWlmIFsgIiRidWlsZF9vcHRpb25fY2xhbmciIF07IHRoZW4KKwkJZXhw b3J0IENDPWNsYW5nCisJCWV4cG9ydCBDWFg9Y2xhbmcrKworCQlleHBvcnQgSE9TVF9DQz1jbGFu ZworCQlleHBvcnQgSE9TVF9DWFg9Y2xhbmcrKworCWVsc2UKKwkJZXhwb3J0IENYWEZMQUdTPSIk Q1hYRkxBR1MgLWZwZXJtaXNzaXZlIgorCQlleHBvcnQgQlVJTERfQ1hYRkxBR1M9IiRCVUlMRF9D WFhGTEFHUyAtZnBlcm1pc3NpdmUiCisJCWV4cG9ydCBCVUlMRF9BUj0iJEFSX2hvc3QiCisJCWV4 cG9ydCBCVUlMRF9OTT0iJE5NX2hvc3QiCisJZmkKKworCSMgR29vZ2xlIEFQSSBrZXlzIChzZWUg aHR0cDovL3d3dy5jaHJvbWl1bS5vcmcvZGV2ZWxvcGVycy9ob3ctdG9zL2FwaS1rZXlzKQorCSMg Tm90ZTogVGhlc2UgYXJlIGZvciBWb2lkIExpbnV4IHVzZSBPTkxZLgorCWNvbmYrPSgKKwkJJ2dv b2dsZV9hcGlfa2V5PSJBSXphU3lBOWdXYXpLYUhhTklQUGcyaHJNajZfWlNHOEFGbXE3MzgiJwor CQknZ29vZ2xlX2RlZmF1bHRfY2xpZW50X2lkPSIxMjY2NTkxNDk0MjMtaG9vNmlja2JrM3AxdTJx anNkc3AwZGRjaXVyZnZiNHQuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iJworCQknZ29vZ2xl X2RlZmF1bHRfY2xpZW50X3NlY3JldD0iX296SXgyRC1ES21fc2VfMk5Qd1Y0bDViIicKKwkpCisK Kwljb25mKz0oCisJCSdibGlua19zeW1ib2xfbGV2ZWw9MCcKKwkJJ2NsYW5nX3VzZV9jaHJvbWVf cGx1Z2lucz1mYWxzZScKKwkJJ2N1c3RvbV90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xp bnV4L3VuYnVuZGxlOmRlZmF1bHQiJworCSkKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K KwkJY29uZis9KAorCQkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91 bmJ1bmRsZTpob3N0IicKKwkJCSd2OF9zbmFwc2hvdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNo YWluL2xpbnV4L3VuYnVuZGxlOmhvc3QiJworCQkJImhvc3RfcGtnX2NvbmZpZz1cIiRQS0dfQ09O RklHX0ZPUl9CVUlMRFwiIgorCQkJInBrZ19jb25maWc9XCIkUEtHX0NPTkZJR1wiIgorCQkpCisJ ZWxzZQorCQljb25mKz0oCisJCQknaG9zdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xp bnV4L3VuYnVuZGxlOmRlZmF1bHQiJworCQkJJ3Y4X3NuYXBzaG90X3Rvb2xjaGFpbj0iLy9idWls ZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6ZGVmYXVsdCInCisJCSkKKwlmaQorCWlmIFsgIiRi dWlsZF9vcHRpb25fc25kaW8iIF07IHRoZW4KKwkJY29uZis9KAorCQkJJ3VzZV9zbmRpbz10cnVl JworCQkpCisJZmkKKwljb25mKz0oCisJCSdlbmFibGVfaGFuZ291dF9zZXJ2aWNlc19leHRlbnNp b249dHJ1ZScKKwkJJ2VuYWJsZV9uYWNsX25vbnNmaT1mYWxzZScKKwkJJ2VuYWJsZV9uYWNsPWZh bHNlJworCQknZW5hYmxlX3ByZWNvbXBpbGVkX2hlYWRlcnM9ZmFsc2UnCisJCSdmYXRhbF9saW5r ZXJfd2FybmluZ3M9ZmFsc2UnCisJCSdmZm1wZWdfYnJhbmRpbmc9IkNocm9tZSInCisJCSdmaWVs ZHRyaWFsX3Rlc3RpbmdfbGlrZV9vZmZpY2lhbF9idWlsZD10cnVlJworCQknZ29sZF9wYXRoPSIv dXNyL2Jpbi9sZC5nb2xkIicKKwkJJ2ljdV91c2VfZGF0YV9maWxlPXRydWUnCisJCSJpc19jbGFu Zz0kKHZvcHRfaWYgY2xhbmcgdHJ1ZSBmYWxzZSkiCisJCSdpc19jb21wb25lbnRfYnVpbGQ9ZmFs c2UnCisJCSJpc19kZWJ1Zz0kX2lzX2RlYnVnIgorCQknaXNfZGVza3RvcF9saW51eD10cnVlJwor CQknbGludXhfdXNlX2J1bmRsZWRfYmludXRpbHM9ZmFsc2UnCisJCSdwcm9wcmlldGFyeV9jb2Rl Y3M9dHJ1ZScKKwkJJ3N5bWJvbF9sZXZlbD0wJworCQkndHJlYXRfd2FybmluZ3NfYXNfZXJyb3Jz PWZhbHNlJworCQkndXNlX2FsbG9jYXRvcl9zaGltPWZhbHNlJworCQkndXNlX2FsbG9jYXRvcj0i bm9uZSInCisJCSd1c2VfY3Vwcz10cnVlJworCQkndXNlX2N1c3RvbV9saWJjeHg9ZmFsc2UnCisJ CSd1c2VfZ25vbWVfa2V5cmluZz1mYWxzZScKKwkJJ3VzZV9nb2xkPWZhbHNlJworCQkndXNlX2xs ZD1mYWxzZScKKwkJInVzZV9wdWxzZWF1ZGlvPSQodm9wdF9pZiBwdWxzZWF1ZGlvICd0cnVlJyAn ZmFsc2UnKSIKKwkJJ3VzZV9zeXNyb290PWZhbHNlJworCQkndXNlX3N5c3RlbV9oYXJmYnV6ej10 cnVlJworCQkidGFyZ2V0X2NwdT1cIiR0YXJnZXRfYXJjaFwiIgorCQkiaG9zdF9jcHU9XCIkaG9z dF9hcmNoXCIiCisJCSdpbXBvcnQoIi8vZWxlY3Ryb24vYnVpbGQvYXJncy9yZWxlYXNlLmduIikn CisJKQorCisJbXNnX25vcm1hbCAiQm9vdHN0cmFwcGluZyBHTlxuIgorCUNDPSIke0NDX0ZPUl9C VUlMRDotJENDfSIgQ1hYPSIke0NYWF9GT1JfQlVJTEQ6LSRDWFh9IiBMRD0iJHtMRF9GT1JfQlVJ TEQ6LSRMRH0iIFwKKwlDRkxBR1M9IiR7Q0ZMQUdTX0ZPUl9CVUlMRDotJENGTEFHU30iIENYWEZM QUdTPSIke0NYWEZMQUdTX0ZPUl9CVUlMRDotJENYWEZMQUdTfSIgXAorCUxERkxBR1M9IiR7WEJQ U19MREZMQUdTfSIgXAorCQlweXRob24yIHRvb2xzL2duL2Jvb3RzdHJhcC9ib290c3RyYXAucHkg LXMgLXYgLS1za2lwLWdlbmVyYXRlLWJ1aWxkZmlsZXMKKworCW1zZ19ub3JtYWwgIkNvbmZpZ3Vy aW5nIGJ1aWxkXG4iCisJb3V0L1JlbGVhc2UvZ24gZ2VuIG91dC8kX2J1aWxkdHlwZSAtLWFyZ3M9 IiR7Y29uZlsqXX0iCit9CisKK2RvX2J1aWxkKCkgeworCWV4cG9ydCBDWFhGTEFHUz0kKCBzaG9w dCAtcyBleHRnbG9iOyBlY2hvICR7Q1hYRkxBR1MvLW1hcmNoPSooW14gXSl9ICkKKwlleHBvcnQg Q0ZMQUdTPSQoIHNob3B0IC1zIGV4dGdsb2I7IGVjaG8gJHtDRkxBR1MvLW1hcmNoPSooW14gXSl9 ICkKKwlpZiBbICIkYnVpbGRfb3B0aW9uX2NsYW5nIiBdOyB0aGVuCisJCWV4cG9ydCBDQz1jbGFu ZworCQlleHBvcnQgQ1hYPWNsYW5nKysKKwkJZXhwb3J0IEhPU1RfQ0M9Y2xhbmcKKwkJZXhwb3J0 IEhPU1RfQ1hYPWNsYW5nKysKKwllbHNlCisJCWV4cG9ydCBCVUlMRF9DWFhGTEFHUz0iJEJVSUxE X0NYWEZMQUdTIC1mcGVybWlzc2l2ZSIKKwkJZXhwb3J0IENYWEZMQUdTPSIkQ1hYRkxBR1MgLWZw ZXJtaXNzaXZlIgorCQlleHBvcnQgQlVJTERfQVI9IiRBUl9ob3N0IgorCQlleHBvcnQgQlVJTERf Tk09IiROTV9ob3N0IgorCWZpCisJbXNnX25vcm1hbCAiTmluamEgdHVydGxlcyBHTyFcbiIKKwlu aW5qYSAke21ha2Vqb2JzfSAtQyBvdXQvJF9idWlsZHR5cGUgZWxlY3Ryb24gdGhpcmRfcGFydHkv ZWxlY3Ryb25fbm9kZTpoZWFkZXJzCisJIyBmaW5pc2ggcmVzdCBvZiB0aGUgYnVpbGQKKwlzdHJp cCAtcyBvdXQvJF9idWlsZHR5cGUvZWxlY3Ryb24KKwluaW5qYSAke21ha2Vqb2JzfSAtQyBvdXQv JF9idWlsZHR5cGUgZWxlY3Ryb25fZGlzdF96aXAKK30KKworZG9faW5zdGFsbCgpIHsKKwl2bWtk aXIgL3Vzci9saWIvJHBrZ25hbWUKKwl2bWtkaXIgL3Vzci9pbmNsdWRlLyRwa2duYW1lCisJYnNk dGFyIC14ZiBvdXQvJF9idWlsZHR5cGUvZGlzdC56aXAgLUMgIiRERVNURElSL3Vzci9saWIvJHBr Z25hbWUiCisKKwljaG1vZCB1K3MgIiRERVNURElSL3Vzci9saWIvJHBrZ25hbWUvY2hyb21lLXNh bmRib3giCisKKwljcCBvdXQvJF9idWlsZHR5cGUvZ2VuL25vZGVfaGVhZGVycy50YXIuZ3ogIiRE RVNURElSIi91c3IvaW5jbHVkZS8kcGtnbmFtZQorCisJdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy9M SUNFTlNFIGNocm9taXVtLkxJQ0VOU0UKKwl2bGljZW5zZSAke3dya3NyY30vc3JjL2VsZWN0cm9u L0xJQ0VOU0UgZWxlY3Ryb24uTElDRU5TRQorCXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvdGhpcmRf cGFydHkvZWxlY3Ryb25fbm9kZS9MSUNFTlNFIG5vZGUuTElDRU5TRQorCisJdm1rZGlyIC91c3Iv YmluCisJbG4gLXMgLi4vbGliLyRwa2duYW1lL2VsZWN0cm9uICIkREVTVERJUiIvdXNyL2Jpbi8k cGtnbmFtZQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL3VwZGF0ZSBiL3NyY3Br Z3MvZWxlY3Ryb24xMC91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjNhZjhlNThiNTM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjEwL3Vw ZGF0ZQpAQCAtMCwwICsxLDIgQEAKK3NpdGU9aHR0cHM6Ly93d3cuZWxlY3Ryb25qcy5vcmcvcmVs ZWFzZXMvc3RhYmxlP3ZlcnNpb249JHt2ZXJzaW9uJSUuKn0KK3BhdHRlcm49J3RhZy92XEtbXGRc Ll0rKD89IiknCg== --===============9204375664043755097==--