From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Steve Cossette To: git-commits@fedoraproject.org Subject: [rpms/karton] rawhide: Update to latest git snapshot + added upstream patch Date: Fri, 21 Aug 2026 21:33:02 GMT Message-ID: <178734798271.1.10794625759998318274.rpms-karton-40cd9b0adc8d@fedoraproject.org> List-ID: X-Git-Repo: rpms/karton X-Git-Branch: rawhide X-Git-Rev: 40cd9b0adc8debe1f348f1e9ea7e5acafe0720fa QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMva2FydG9uCkJyYW5j aCA6IHJhd2hpZGUKQ29tbWl0IDogNDBjZDliMGFkYzhkZWJlMWYzNDhmMWU5ZWE3ZTVhY2FmZTA3 MjBmYQpBdXRob3IgOiBTdGV2ZSBDb3NzZXR0ZSA8ZmFyY2hvcmRAZ21haWwuY29tPgpEYXRlICAg OiAyMDI2LTA4LTIxVDE3OjMyOjU1LTA0OjAwClN0YXRzICA6ICs5OTUvLTQgaW4gNCBmaWxlKHMp ClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMva2FydG9uL2MvNDBj ZDliMGFkYzhkZWJlMWYzNDhmMWU5ZWE3ZTVhY2FmZTA3MjBmYT9icmFuY2g9cmF3aGlkZQoKTG9n OgpVcGRhdGUgdG8gbGF0ZXN0IGdpdCBzbmFwc2hvdCArIGFkZGVkIHVwc3RyZWFtIHBhdGNoCgot LS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDRhMjcwYWIuLjk4 YWYwMGUgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwzICsx LDQgQEAKIC9rYXJ0b24tYjMxOGRjYTMwMGM3YTM5YTgwYjRhMjFkOTc5YzQ1Yzg2OWNlYWM3Ni50 YXIuZ3oKIC9rYXJ0b24tMDc1MjBlMDZmNWE2NmU5Y2ZlMzNhMjk4YTExZTU0ODJhMjM5NWFhMC50 YXIuZ3oKIC9rYXJ0b24tYTQyNjEzMmNmMzFkYTNiNWE0YzEwOWNhZmJhMDJjYzg3ZDBhZDI3YS50 YXIuZ3oKKy9rYXJ0b24tNTU2NDU4ZWNhYzBjMDM0MThiYTM2NjExYmY3NDMwOTU3YmY0MGFmYi50 YXIuZ3oKCmRpZmYgLS1naXQgYS82My5wYXRjaCBiLzYzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjVjNWFmMmMKLS0tIC9kZXYvbnVsbAorKysgYi82My5wYXRjaApA QCAtMCwwICsxLDk4MiBAQAorRnJvbSA5NWU1ZGViZWRmZmI5NmNiMzEzMTNiMTE2YWU5ZjdkNjg1 MGU2ZjlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT251cmFscCBTRVpFUiA8dGh1 bmRlcmJpcmR0ckBmZWRvcmFwcm9qZWN0Lm9yZz4KK0RhdGU6IFR1ZSwgMTggQXVnIDIwMjYgMDE6 Mjc6MjIgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzRdIEZpeCBHTCBzY2Fub3V0IHRleHR1cmUg aGFuZGxpbmcKKworU2lnbmVkLW9mZi1ieTogT251cmFscCBTRVpFUiA8dGh1bmRlcmJpcmR0ckBm ZWRvcmFwcm9qZWN0Lm9yZz4KKy0tLQorIHNyYy9nbHNjYW5vdXRyZW5kZXJlci5jcHAgfCAxNDgg KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KKyBzcmMvZ2xzY2Fub3V0cmVu ZGVyZXIuaCAgIHwgIDE1ICsrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCsp LCA0OCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9nbHNjYW5vdXRyZW5kZXJlci5j cHAgYi9zcmMvZ2xzY2Fub3V0cmVuZGVyZXIuY3BwCitpbmRleCBlYzFiNjZhLi42YTMyYzUyIDEw MDY0NAorLS0tIGEvc3JjL2dsc2Nhbm91dHJlbmRlcmVyLmNwcAorKysrIGIvc3JjL2dsc2Nhbm91 dHJlbmRlcmVyLmNwcAorQEAgLTIzLDggKzIzLDE0IEBAIHZvaWQgR2xTY2Fub3V0UmVuZGVyZXI6 OmF0dGFjaChTcGljZURpc3BsYXlDaGFubmVsICpjaGFubmVsKQorIHsKKyAgICAgZGV0YWNoKCk7 CisgICAgIG1fY2hhbm5lbCA9IGNoYW5uZWw7CisrICAgIC8vIGdsLWRyYXcgbWVhbnMgYSBuZXcg ZnJhbWUgaW4gdGhlIGV4aXN0aW5nIGJ1ZmZlciwgZ2wtc2Nhbm91dCBtZWFucyBhIG5ldyBidWZm ZXIKKyAgICAgbV9nbERyYXdIYW5kbGVySWQgPSBnX3NpZ25hbF9jb25uZWN0KGNoYW5uZWwsICJn bC1kcmF3IiwgR19DQUxMQkFDSyhnbF9kcmF3X2NhbGxiYWNrKSwgdGhpcyk7CisrICAgIG1fZ2xT Y2Fub3V0SGFuZGxlcklkID0gZ19zaWduYWxfY29ubmVjdChjaGFubmVsLCAibm90aWZ5OjpnbC1z Y2Fub3V0IiwgR19DQUxMQkFDSyhnbF9zY2Fub3V0X25vdGlmeV9jYWxsYmFjayksIHRoaXMpOwor ICAgICAvLyBUT0RPOiBNaWdodCBuZWVkIHRvIGNoZWNrIGlmIGdsIGlzIGVuYWJsZWQuIERvbWFp bnMgY3JlYXRlZCBieSB2aXJ0LW1hbmFnZXIgYXJlIG5vdCBhY2NlbDNkIGJ5IGRlZmF1bHQuCisr CisrICAgIGlmIChhdXRvIHNjYW5vdXQgPSBzcGljZV9kaXNwbGF5X2NoYW5uZWxfZ2V0X2dsX3Nj YW5vdXQoY2hhbm5lbCkpIHsKKysgICAgICAgIGhhbmRsZUdsU2Nhbm91dChzY2Fub3V0KTsKKysg ICAgfQorIH0KKyAKKyB2b2lkIEdsU2Nhbm91dFJlbmRlcmVyOjpkZXRhY2goKQorQEAgLTMyLDcg KzM4LDExIEBAIHZvaWQgR2xTY2Fub3V0UmVuZGVyZXI6OmRldGFjaCgpCisgICAgIGlmIChtX2No YW5uZWwgJiYgbV9nbERyYXdIYW5kbGVySWQpIHsKKyAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJf ZGlzY29ubmVjdChtX2NoYW5uZWwsIG1fZ2xEcmF3SGFuZGxlcklkKTsKKyAgICAgfQorKyAgICBp ZiAobV9jaGFubmVsICYmIG1fZ2xTY2Fub3V0SGFuZGxlcklkKSB7CisrICAgICAgICBnX3NpZ25h bF9oYW5kbGVyX2Rpc2Nvbm5lY3QobV9jaGFubmVsLCBtX2dsU2Nhbm91dEhhbmRsZXJJZCk7Cisr ICAgIH0KKyAgICAgbV9nbERyYXdIYW5kbGVySWQgPSAwOworKyAgICBtX2dsU2Nhbm91dEhhbmRs ZXJJZCA9IDA7CisgICAgIG1fY2hhbm5lbCA9IG51bGxwdHI7CisgCisgICAgIGNsZWFudXBFR0xS ZXNvdXJjZXMoKTsKK0BAIC00Niw0MCArNTYsNTUgQEAgdm9pZCBHbFNjYW5vdXRSZW5kZXJlcjo6 Z2xfZHJhd19jYWxsYmFjayhTcGljZURpc3BsYXlDaGFubmVsICpjaGFubmVsLCBndWludCB4LAor ICAgICBRX1VOVVNFRChoZWlnaHQpOworIAorICAgICBhdXRvICpzZWxmID0gc3RhdGljX2Nhc3Q8 R2xTY2Fub3V0UmVuZGVyZXIgKj4odXNlcl9kYXRhKTsKKy0gICAgYXV0byBzY2Fub3V0ID0gc3Bp Y2VfZGlzcGxheV9jaGFubmVsX2dldF9nbF9zY2Fub3V0KGNoYW5uZWwpOworLSAgICBpZiAoIXNj YW5vdXQpIHsKKy0gICAgICAgIHJldHVybjsKKy0gICAgfQorLSAgICBzZWxmLT5oYW5kbGVHbFNj YW5vdXQoc2Nhbm91dCk7CisrICAgIFFfRU1JVCBzZWxmLT5mcmFtZVJlYWR5KCk7CisgICAgIHNw aWNlX2Rpc3BsYXlfY2hhbm5lbF9nbF9kcmF3X2RvbmUoY2hhbm5lbCk7IC8vIHJlbGVhc2VzIHRo ZSBHTCByZXNvdXJjZQorIH0KKyAKKy12b2lkIEdsU2Nhbm91dFJlbmRlcmVyOjpoYW5kbGVHbFNj YW5vdXQoY29uc3QgU3BpY2VHbFNjYW5vdXQgKnNjYW5vdXQpCisrdm9pZCBHbFNjYW5vdXRSZW5k ZXJlcjo6Z2xfc2Nhbm91dF9ub3RpZnlfY2FsbGJhY2soR09iamVjdCAqb2JqZWN0LCBHUGFyYW1T cGVjICpwc3BlYywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIHsKKy0gICAgaWYgKG1faGFzU2Nhbm91 dCAmJiBtX3NjYW5vdXQuZmQgPj0gMCkgeworLSAgICAgICAgY2xvc2UobV9zY2Fub3V0LmZkKTsK Ky0gICAgICAgIG1fc2Nhbm91dC5mZCA9IC0xOworKyAgICBRX1VOVVNFRChwc3BlYyk7CisrCisr ICAgIGF1dG8gKnNlbGYgPSBzdGF0aWNfY2FzdDxHbFNjYW5vdXRSZW5kZXJlciAqPih1c2VyX2Rh dGEpOworKyAgICBpZiAoYXV0byBzY2Fub3V0ID0gc3BpY2VfZGlzcGxheV9jaGFubmVsX2dldF9n bF9zY2Fub3V0KFNQSUNFX0RJU1BMQVlfQ0hBTk5FTChvYmplY3QpKSkgeworKyAgICAgICAgc2Vs Zi0+aGFuZGxlR2xTY2Fub3V0KHNjYW5vdXQpOworICAgICB9CisrfQorIAorLSAgICBjbGVhbnVw RUdMSW1hZ2UoKTsKKyt2b2lkIEdsU2Nhbm91dFJlbmRlcmVyOjpoYW5kbGVHbFNjYW5vdXQoY29u c3QgU3BpY2VHbFNjYW5vdXQgKnNjYW5vdXQpCisreworKyAgICBib29sIHNpemVDaGFuZ2VkID0g ZmFsc2U7CisgCistICAgIG1fc2Nhbm91dCA9ICpzY2Fub3V0OyAvLyBzdHJ1Y3QgY29weQorKyAg ICB7CisrICAgICAgICBRTXV0ZXhMb2NrZXIgbG9ja2VyKCZtX3NjYW5vdXRMb2NrKTsKKyAKKy0g ICAgLy8gZHVwbGljYXRlIHRoZSBmaWxlIGRlc2NyaXB0b3IgaWYgZXhpc3RzCistICAgIC8vIHdl IHdpbGwgYmUgdXNpbmcgdGhlIGR1cGxpY2F0ZSwgYW5kIHRoZSBvcmlnaW5hbCBpcyBmcmVlZCBi eSBTUElDRSAoZ2xfZHJhd19kb25lKS4KKy0gICAgaWYgKHNjYW5vdXQtPmZkID49IDApIHsKKy0g ICAgICAgIG1fc2Nhbm91dC5mZCA9IGR1cChzY2Fub3V0LT5mZCk7CistICAgICAgICBpZiAobV9z Y2Fub3V0LmZkIDwgMCkgeworLSAgICAgICAgICAgIHFDV2FybmluZyhLQVJUT05fREVCVUcpIDw8 ICJGYWlsZWQgdG8gZHVwbGljYXRlIHNjYW5vdXQgRkQiOworLSAgICAgICAgICAgIHJldHVybjsK KysgICAgICAgIGlmIChtX2hhc1NjYW5vdXQgJiYgbV9zY2Fub3V0LmZkID49IDApIHsKKysgICAg ICAgICAgICBjbG9zZShtX3NjYW5vdXQuZmQpOworKyAgICAgICAgICAgIG1fc2Nhbm91dC5mZCA9 IC0xOworICAgICAgICAgfQorLSAgICB9CisgCistICAgIG1faW1hZ2VIZWlnaHQgPSBzY2Fub3V0 LT5oZWlnaHQ7CistICAgIG1faW1hZ2VXaWR0aCA9IHNjYW5vdXQtPndpZHRoOworLSAgICBtX2hh c1NjYW5vdXQgPSB0cnVlOworKyAgICAgICAgbV9zY2Fub3V0ID0gKnNjYW5vdXQ7IC8vIHN0cnVj dCBjb3B5CisrCisrICAgICAgICAvLyBkdXBsaWNhdGUgdGhlIGZpbGUgZGVzY3JpcHRvciBpZiBl eGlzdHMKKysgICAgICAgIC8vIHdlIHdpbGwgYmUgdXNpbmcgdGhlIGR1cGxpY2F0ZSwgYW5kIHRo ZSBvcmlnaW5hbCBpcyBmcmVlZCBieSBTUElDRSAoZ2xfZHJhd19kb25lKS4KKysgICAgICAgIGlm IChzY2Fub3V0LT5mZCA+PSAwKSB7CisrICAgICAgICAgICAgbV9zY2Fub3V0LmZkID0gZHVwKHNj YW5vdXQtPmZkKTsKKysgICAgICAgICAgICBpZiAobV9zY2Fub3V0LmZkIDwgMCkgeworKyAgICAg ICAgICAgICAgICBxQ1dhcm5pbmcoS0FSVE9OX0RFQlVHKSA8PCAiRmFpbGVkIHRvIGR1cGxpY2F0 ZSBzY2Fub3V0IEZEIjsKKysgICAgICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgICAgIH0K KysgICAgICAgIH0KKyAKKy0gICAgUV9FTUlUIGZyYW1lU2l6ZUNoYW5nZWQoKTsKKysgICAgICAg IG1fc2Nhbm91dERpcnR5ID0gdHJ1ZTsKKysKKysgICAgICAgIHNpemVDaGFuZ2VkID0gbV9pbWFn ZVdpZHRoICE9IHN0YXRpY19jYXN0PGludD4oc2Nhbm91dC0+d2lkdGgpIHx8IG1faW1hZ2VIZWln aHQgIT0gc3RhdGljX2Nhc3Q8aW50PihzY2Fub3V0LT5oZWlnaHQpOworKyAgICAgICAgbV9pbWFn ZUhlaWdodCA9IHNjYW5vdXQtPmhlaWdodDsKKysgICAgICAgIG1faW1hZ2VXaWR0aCA9IHNjYW5v dXQtPndpZHRoOworKyAgICAgICAgbV9oYXNTY2Fub3V0ID0gdHJ1ZTsKKysgICAgfQorKworKyAg ICBpZiAoc2l6ZUNoYW5nZWQpIHsKKysgICAgICAgIFFfRU1JVCBmcmFtZVNpemVDaGFuZ2VkKCk7 CisrICAgIH0KKyAgICAgUV9FTUlUIGZyYW1lUmVhZHkoKTsKKyB9CisgCitAQCAtMTA3LDYgKzEz Miw5IEBAIHZvaWQgR2xTY2Fub3V0UmVuZGVyZXI6OmNyZWF0ZVRleHR1cmVGcm9tU2Nhbm91dChj b25zdCBTcGljZUdsU2Nhbm91dCAqc2Nhbm91dCkKKyAgICAgICAgIHJldHVybjsKKyAgICAgfQor IAorKyAgICAvLyBub3QgaW4gaGFuZGxlR2xTY2Fub3V0KCk6IG5vIEVHTCBkaXNwbGF5IGlzIGN1 cnJlbnQgdGhlcmUsIHNvIHRoZSBkZXN0cm95IGlzIHNraXBwZWQKKysgICAgY2xlYW51cEVHTElt YWdlKCk7CisrCisgICAgIC8vIGdlbmVyYXRlIHRleHR1cmUgaWYgZW1wdHkKKyAgICAgaWYgKG1f dGV4SWQgPT0gMCkgeworICAgICAgICAgZ2wtPmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4SWQpOwor QEAgLTE1NSw3ICsxODMsNyBAQCB2b2lkIEdsU2Nhbm91dFJlbmRlcmVyOjpjcmVhdGVUZXh0dXJl RnJvbVNjYW5vdXQoY29uc3QgU3BpY2VHbFNjYW5vdXQgKnNjYW5vdXQpCisgCisgICAgIGdsLT5n bEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4SWQpOworIAorLSAgICBnbC0+Z2xUZXhQ YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTkVBUkVT VCk7CisrICAgIGdsLT5nbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9N SU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgICBnbC0+Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRV UkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAgZ2wtPmdsVGV4 UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9f RURHRSk7CisgICAgIGdsLT5nbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVS RV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworQEAgLTE4Miw4ICsyMTAsMTQgQEAgdm9pZCBH bFNjYW5vdXRSZW5kZXJlcjo6Y3JlYXRlVGV4dHVyZUZyb21TY2Fub3V0KGNvbnN0IFNwaWNlR2xT Y2Fub3V0ICpzY2Fub3V0KQorIFFTR05vZGUgKkdsU2Nhbm91dFJlbmRlcmVyOjp1cGRhdGVQYWlu dE5vZGUoUVF1aWNrV2luZG93ICp3aW5kb3csIFFTR05vZGUgKm9sZE5vZGUsIGNvbnN0IFFSZWN0 RiAmYm91bmRzKQorIHsKKyAgICAgLy8gY3JlYXRlIG9wZW5nbCB0ZXh0dXJlIGZyb20gc2Nhbm91 dCBkYXRhCistICAgIGlmIChtX2hhc1NjYW5vdXQgJiYgbV90ZXhJZCA9PSAwKSB7CistICAgICAg ICBjcmVhdGVUZXh0dXJlRnJvbVNjYW5vdXQoJm1fc2Nhbm91dCk7CisrICAgIFFTaXplIGZyYW1l U2l6ZTsKKysgICAgeworKyAgICAgICAgUU11dGV4TG9ja2VyIGxvY2tlcigmbV9zY2Fub3V0TG9j ayk7CisrICAgICAgICBpZiAobV9oYXNTY2Fub3V0ICYmIChtX3RleElkID09IDAgfHwgbV9zY2Fu b3V0RGlydHkpKSB7CisrICAgICAgICAgICAgY3JlYXRlVGV4dHVyZUZyb21TY2Fub3V0KCZtX3Nj YW5vdXQpOworKyAgICAgICAgICAgIG1fc2Nhbm91dERpcnR5ID0gZmFsc2U7CisrICAgICAgICB9 CisrICAgICAgICBmcmFtZVNpemUgPSBRU2l6ZShtX2ltYWdlV2lkdGgsIG1faW1hZ2VIZWlnaHQp OworICAgICB9CisgCisgICAgIGlmICghbV90ZXhJZCkgeworQEAgLTE5Niw2ICsyMzAsOCBAQCBR U0dOb2RlICpHbFNjYW5vdXRSZW5kZXJlcjo6dXBkYXRlUGFpbnROb2RlKFFRdWlja1dpbmRvdyAq d2luZG93LCBRU0dOb2RlICpvbGRObworICAgICBpZiAoIXRleHR1cmVOb2RlKSB7CisgICAgICAg ICB0ZXh0dXJlTm9kZSA9IG5ldyBRU0dTaW1wbGVUZXh0dXJlTm9kZSgpOworICAgICAgICAgdGV4 dHVyZU5vZGUtPnNldE93bnNUZXh0dXJlKHRydWUpOworKyAgICAgICAgLy8gdGhlIG5vZGUgZGVm YXVsdHMgdG8gbmVhcmVzdCwgd2hpY2ggYWxpYXNlcyBiYWRseSBvbmNlIHRoZSBmcmFtZSBpcyBz Y2FsZWQKKysgICAgICAgIHRleHR1cmVOb2RlLT5zZXRGaWx0ZXJpbmcoUVNHVGV4dHVyZTo6TGlu ZWFyKTsKKyAgICAgfQorIAorICAgICBRT3BlbkdMQ29udGV4dCAqY29udGV4dCA9IFFPcGVuR0xD b250ZXh0OjpjdXJyZW50Q29udGV4dCgpOworQEAgLTIwNyw3ICsyNDMsNyBAQCBRU0dOb2RlICpH bFNjYW5vdXRSZW5kZXJlcjo6dXBkYXRlUGFpbnROb2RlKFFRdWlja1dpbmRvdyAqd2luZG93LCBR U0dOb2RlICpvbGRObworICAgICBRT3BlbkdMRnVuY3Rpb25zICpnbCA9IGNvbnRleHQtPmZ1bmN0 aW9ucygpOworICAgICBpZiAoZ2wpIHsKKyAgICAgICAgIGdsLT5nbEJpbmRUZXh0dXJlKEdMX1RF WFRVUkVfMkQsIG1fdGV4SWQpOworLSAgICAgICAgZ2wtPmdsVGV4UGFyYW1ldGVyaShHTF9URVhU VVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX05FQVJFU1QpOworKyAgICAgICAgZ2wt PmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdM X0xJTkVBUik7CisgICAgICAgICBnbC0+Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM X1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgIGdsLT5nbEJpbmRUZXh0 dXJlKEdMX1RFWFRVUkVfMkQsIDApOworICAgICB9CitAQCAtMjIwLDMyICsyNTYsNDEgQEAgUVNH Tm9kZSAqR2xTY2Fub3V0UmVuZGVyZXI6OnVwZGF0ZVBhaW50Tm9kZShRUXVpY2tXaW5kb3cgKndp bmRvdywgUVNHTm9kZSAqb2xkTm8KKyAgICAgICAgIHJldHVybiB0ZXh0dXJlTm9kZTsKKyAgICAg fQorIAorLSAgICBRUmhpVGV4dHVyZTo6Rm9ybWF0IHJoaUZvcm1hdCA9IFFSaGlUZXh0dXJlOjpS R0JBODsKKy0gICAgUVJoaVRleHR1cmUgKnJoaVRleHR1cmUgPSByaGktPm5ld1RleHR1cmUocmhp Rm9ybWF0LCBRU2l6ZShtX2ltYWdlV2lkdGgsIG1faW1hZ2VIZWlnaHQpKTsKKy0gICAgaWYgKCFy aGlUZXh0dXJlKSB7CistICAgICAgICBxQ0RlYnVnKEtBUlRPTl9ERUJVRykgPDwgIkZhaWxlZCB0 byBjcmVhdGUgUkhJIHRleHR1cmUiOworLSAgICAgICAgcmV0dXJuIHRleHR1cmVOb2RlOworLSAg ICB9CisrICAgIC8vIHRoZSBHTCB0ZXh0dXJlIGlkIGlzIHN0YWJsZSwgc28gb25seSByZWJ1aWxk IHRoZSB3cmFwcGVycyB3aGVuIHRoZSBmcmFtZSBzaXplIGNoYW5nZXMKKysgICAgaWYgKCFtX3Jo aVRleHR1cmUgfHwgbV9yaGlUZXh0dXJlU2l6ZSAhPSBmcmFtZVNpemUgfHwgIXRleHR1cmVOb2Rl LT50ZXh0dXJlKCkpIHsKKysgICAgICAgIFFSaGlUZXh0dXJlICpyaGlUZXh0dXJlID0gcmhpLT5u ZXdUZXh0dXJlKFFSaGlUZXh0dXJlOjpSR0JBOCwgZnJhbWVTaXplKTsKKysgICAgICAgIGlmICgh cmhpVGV4dHVyZSkgeworKyAgICAgICAgICAgIHFDRGVidWcoS0FSVE9OX0RFQlVHKSA8PCAiRmFp bGVkIHRvIGNyZWF0ZSBSSEkgdGV4dHVyZSI7CisrICAgICAgICAgICAgcmV0dXJuIHRleHR1cmVO b2RlOworKyAgICAgICAgfQorIAorLSAgICAvLyBjcmVhdGUgbmF0aXZlIHRleHR1cmUgdG8gYmUg Y29udGFpbmVkIGluIFJISQorLSAgICBRUmhpVGV4dHVyZTo6TmF0aXZlVGV4dHVyZSBuYXRpdmVU ZXg7CistICAgIG5hdGl2ZVRleC5vYmplY3QgPSBtX3RleElkOworLSAgICBuYXRpdmVUZXgubGF5 b3V0ID0gMDsKKysgICAgICAgIC8vIGNyZWF0ZSBuYXRpdmUgdGV4dHVyZSB0byBiZSBjb250YWlu ZWQgaW4gUkhJCisrICAgICAgICBRUmhpVGV4dHVyZTo6TmF0aXZlVGV4dHVyZSBuYXRpdmVUZXg7 CisrICAgICAgICBuYXRpdmVUZXgub2JqZWN0ID0gbV90ZXhJZDsKKysgICAgICAgIG5hdGl2ZVRl eC5sYXlvdXQgPSAwOworIAorLSAgICBpZiAoIXJoaVRleHR1cmUtPmNyZWF0ZUZyb20obmF0aXZl VGV4KSkgeworLSAgICAgICAgcUNEZWJ1ZyhLQVJUT05fREVCVUcpIDw8ICJGYWlsZWQgdG8gY3Jl YXRlIFJISSB0ZXh0dXJlIGZyb20gbmF0aXZlIjsKKy0gICAgICAgIGRlbGV0ZSByaGlUZXh0dXJl OworLSAgICAgICAgcmV0dXJuIHRleHR1cmVOb2RlOworLSAgICB9CisrICAgICAgICBpZiAoIXJo aVRleHR1cmUtPmNyZWF0ZUZyb20obmF0aXZlVGV4KSkgeworKyAgICAgICAgICAgIHFDRGVidWco S0FSVE9OX0RFQlVHKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBSSEkgdGV4dHVyZSBmcm9tIG5hdGl2 ZSI7CisrICAgICAgICAgICAgZGVsZXRlIHJoaVRleHR1cmU7CisrICAgICAgICAgICAgcmV0dXJu IHRleHR1cmVOb2RlOworKyAgICAgICAgfQorIAorLSAgICBRU0dUZXh0dXJlICp0ZXh0dXJlID0g d2luZG93LT5jcmVhdGVUZXh0dXJlRnJvbVJoaVRleHR1cmUocmhpVGV4dHVyZSwgb3B0aW9ucyk7 CistICAgIGlmICghdGV4dHVyZSkgeworLSAgICAgICAgcUNEZWJ1ZyhLQVJUT05fREVCVUcpIDw8 ICJGYWlsZWQgdG8gY3JlYXRlIFFTRyB0ZXh0dXJlIjsKKy0gICAgICAgIGRlbGV0ZSByaGlUZXh0 dXJlOworLSAgICAgICAgcmV0dXJuIHRleHR1cmVOb2RlOworKyAgICAgICAgUVNHVGV4dHVyZSAq dGV4dHVyZSA9IHdpbmRvdy0+Y3JlYXRlVGV4dHVyZUZyb21SaGlUZXh0dXJlKHJoaVRleHR1cmUs IG9wdGlvbnMpOworKyAgICAgICAgaWYgKCF0ZXh0dXJlKSB7CisrICAgICAgICAgICAgcUNEZWJ1 ZyhLQVJUT05fREVCVUcpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIFFTRyB0ZXh0dXJlIjsKKysgICAg ICAgICAgICBkZWxldGUgcmhpVGV4dHVyZTsKKysgICAgICAgICAgICByZXR1cm4gdGV4dHVyZU5v ZGU7CisrICAgICAgICB9CisrCisrICAgICAgICAvLyB0aGUgbm9kZSBvd25zIHRoZSBRU0cgd3Jh cHBlciwgdGhlIFFSaGlUZXh0dXJlIHVuZGVybmVhdGggaXMgb3VycyB0byBmcmVlCisrICAgICAg ICBRUmhpVGV4dHVyZSAqcHJldmlvdXMgPSBtX3JoaVRleHR1cmU7CisrICAgICAgICB0ZXh0dXJl Tm9kZS0+c2V0VGV4dHVyZSh0ZXh0dXJlKTsKKysgICAgICAgIGRlbGV0ZSBwcmV2aW91czsKKysK KysgICAgICAgIG1fcmhpVGV4dHVyZSA9IHJoaVRleHR1cmU7CisrICAgICAgICBtX3JoaVRleHR1 cmVTaXplID0gZnJhbWVTaXplOworICAgICB9CisgCistICAgIHRleHR1cmVOb2RlLT5zZXRUZXh0 dXJlKHRleHR1cmUpOworICAgICB0ZXh0dXJlTm9kZS0+c2V0UmVjdChib3VuZHMpOworIAorICAg ICBxQ0RlYnVnKEtBUlRPTl9ERUJVRykgPDwgIkdsU2Nhbm91dFJlbmRlcmVyOiBTdWNjZXNzZnVs bHkgdXBkYXRlZCBjYW52YXMuIjsKK0BAIC0yNTgsMTQgKzMwMywyMSBAQCBRU0dOb2RlICpHbFNj YW5vdXRSZW5kZXJlcjo6dXBkYXRlUGFpbnROb2RlKFFRdWlja1dpbmRvdyAqd2luZG93LCBRU0dO b2RlICpvbGRObworIC8vIGNsZWFucyB1cCBzY2Fub3V0IGFuZCBlZ2wgaW1hZ2UsIHRleHR1cmVz Cisgdm9pZCBHbFNjYW5vdXRSZW5kZXJlcjo6Y2xlYW51cEVHTFJlc291cmNlcygpCisgeworKyAg ICBRTXV0ZXhMb2NrZXIgbG9ja2VyKCZtX3NjYW5vdXRMb2NrKTsKKysKKyAgICAgaWYgKG1faGFz U2Nhbm91dCAmJiBtX3NjYW5vdXQuZmQgPj0gMCkgeworICAgICAgICAgY2xvc2UobV9zY2Fub3V0 LmZkKTsKKyAgICAgICAgIG1fc2Nhbm91dC5mZCA9IC0xOworICAgICB9CisgICAgIG1faGFzU2Nh bm91dCA9IGZhbHNlOworKyAgICBtX3NjYW5vdXREaXJ0eSA9IGZhbHNlOworIAorICAgICBjbGVh bnVwRUdMSW1hZ2UoKTsKKyAKKysgICAgZGVsZXRlIG1fcmhpVGV4dHVyZTsKKysgICAgbV9yaGlU ZXh0dXJlID0gbnVsbHB0cjsKKysgICAgbV9yaGlUZXh0dXJlU2l6ZSA9IFFTaXplKCk7CisrCisg ICAgIFFPcGVuR0xDb250ZXh0ICpjb250ZXh0ID0gUU9wZW5HTENvbnRleHQ6OmN1cnJlbnRDb250 ZXh0KCk7CisgICAgIGlmIChtX3RleElkICYmIGNvbnRleHQpIHsKKyAgICAgICAgIFFPcGVuR0xG dW5jdGlvbnMgKmdsID0gY29udGV4dC0+ZnVuY3Rpb25zKCk7CitkaWZmIC0tZ2l0IGEvc3JjL2ds c2Nhbm91dHJlbmRlcmVyLmggYi9zcmMvZ2xzY2Fub3V0cmVuZGVyZXIuaAoraW5kZXggNTQ4NDk1 Ni4uYWJjOTUyOSAxMDA2NDQKKy0tLSBhL3NyYy9nbHNjYW5vdXRyZW5kZXJlci5oCisrKysgYi9z cmMvZ2xzY2Fub3V0cmVuZGVyZXIuaAorQEAgLTEwLDYgKzEwLDExIEBACisgI2luY2x1ZGUgPEdM RVMyL2dsMi5oPgorICNpbmNsdWRlIDxHTEVTMi9nbDJleHQuaD4KKyAKKysjaW5jbHVkZSA8UU11 dGV4PgorKyNpbmNsdWRlIDxRU2l6ZT4KKysKKysjaW5jbHVkZSA8cmhpL3FyaGkuaD4KKysKKyAv LyBoYXJkd2FyZS1hY2NlbCByZW5kZXJlcgorIGNsYXNzIEdsU2Nhbm91dFJlbmRlcmVyIDogcHVi bGljIFNwaWNlRGlzcGxheVJlbmRlcmVyCisgeworQEAgLTI2LDExICszMSwxMyBAQCBwdWJsaWM6 CisgCisgICAgIFFTaXplIGZyYW1lU2l6ZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgIHsKKysgICAg ICAgIFFNdXRleExvY2tlciBsb2NrZXIoJm1fc2Nhbm91dExvY2spOworICAgICAgICAgcmV0dXJu IFFTaXplKG1faW1hZ2VXaWR0aCwgbV9pbWFnZUhlaWdodCk7CisgICAgIH0KKyAKKyBwcml2YXRl OgorICAgICBzdGF0aWMgdm9pZCBnbF9kcmF3X2NhbGxiYWNrKFNwaWNlRGlzcGxheUNoYW5uZWwg KmNoYW5uZWwsIGd1aW50IHgsIGd1aW50IHksIGd1aW50IHdpZHRoLCBndWludCBoZWlnaHQsIGdw b2ludGVyIHVzZXJfZGF0YSk7CisrICAgIHN0YXRpYyB2b2lkIGdsX3NjYW5vdXRfbm90aWZ5X2Nh bGxiYWNrKEdPYmplY3QgKm9iamVjdCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIHVzZXJf ZGF0YSk7CisgICAgIHZvaWQgaGFuZGxlR2xTY2Fub3V0KGNvbnN0IFNwaWNlR2xTY2Fub3V0ICpz Y2Fub3V0KTsKKyAgICAgdm9pZCBjcmVhdGVUZXh0dXJlRnJvbVNjYW5vdXQoY29uc3QgU3BpY2VH bFNjYW5vdXQgKnNjYW5vdXQpOworICAgICB2b2lkIGNsZWFudXBFR0xJbWFnZSgpOworQEAgLTM4 LDE0ICs0NSwyMiBAQCBwcml2YXRlOgorIAorICAgICBTcGljZURpc3BsYXlDaGFubmVsICptX2No YW5uZWwgPSBudWxscHRyOworICAgICBndWxvbmcgbV9nbERyYXdIYW5kbGVySWQgPSAwOworKyAg ICBndWxvbmcgbV9nbFNjYW5vdXRIYW5kbGVySWQgPSAwOworIAorKyAgICAvLyBndWFyZHMgdGhl IHNjYW5vdXQgYWdhaW5zdCB0aGUgcmVuZGVyIHRocmVhZCBpbXBvcnRpbmcgaXQgd2hpbGUgaXQg aXMgYmVpbmcgcmVwbGFjZWQKKysgICAgbXV0YWJsZSBRTXV0ZXggbV9zY2Fub3V0TG9jazsKKyAg ICAgaW50IG1faW1hZ2VXaWR0aCA9IDA7CisgICAgIGludCBtX2ltYWdlSGVpZ2h0ID0gMDsKKyAg ICAgU3BpY2VHbFNjYW5vdXQgbV9zY2Fub3V0ID0ge307CisgICAgIGJvb2wgbV9oYXNTY2Fub3V0 ID0gZmFsc2U7CisrICAgIGJvb2wgbV9zY2Fub3V0RGlydHkgPSBmYWxzZTsKKyAgICAgRUdMSW1h Z2VLSFIgbV9lZ2xJbWFnZSA9IEVHTF9OT19JTUFHRV9LSFI7CisgICAgIFBGTkVHTERFU1RST1lJ TUFHRUtIUlBST0MgbV9lZ2xEZXN0cm95SW1hZ2VLSFIgPSBudWxscHRyOworICAgICBQRk5HTEVH TElNQUdFVEFSR0VUVEVYVFVSRTJET0VTUFJPQyBtX2dsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkRP RVMgPSBudWxscHRyOworICAgICBQRk5FR0xDUkVBVEVJTUFHRUtIUlBST0MgbV9lZ2xDcmVhdGVJ bWFnZUtIUiA9IG51bGxwdHI7CisgICAgIEdMdWludCBtX3RleElkID0gMDsKKysKKysgICAgLy8g Y2FjaGVkIGFjcm9zcyBmcmFtZXM6IHJlYnVpbGRpbmcgdGhlc2UgcGVyIHBhaW50IGxlYWtzIEdQ VSBtZW1vcnkgdW50aWwgdGhlIGRyaXZlciBkaWVzCisrICAgIFFSaGlUZXh0dXJlICptX3JoaVRl eHR1cmUgPSBudWxscHRyOworKyAgICBRU2l6ZSBtX3JoaVRleHR1cmVTaXplOworIH07CistLSAK K0dpdExhYgorCisKK0Zyb20gODQ5NmNlZWFmYTBkOWFjNjY1MDcxNDA2ZjYxY2RjNzM0NDI4YTdi NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9udXJhbHAgU0VaRVIgPHRodW5kZXJi aXJkdHJAZmVkb3JhcHJvamVjdC5vcmc+CitEYXRlOiBUdWUsIDE4IEF1ZyAyMDI2IDAxOjI3OjIy ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggMi80XSBBZGQgYSBTUElDRSBhZ2VudCBjaGFubmVsIHNv IGd1ZXN0cyBjYW4gYmUgcmVzaXplZAorCitTaWduZWQtb2ZmLWJ5OiBPbnVyYWxwIFNFWkVSIDx0 aHVuZGVyYmlyZHRyQGZlZG9yYXByb2plY3Qub3JnPgorLS0tCisgc3JjL2RvbWFpbnhtbGJ1aWxk ZXIuY3BwIHwgNTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIHNy Yy9kb21haW54bWxidWlsZGVyLmggICB8IDE2ICsrKysrKysrKysrCisgc3JjL2thcnRvbi5jcHAg ICAgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL2thcnRvbi5oICAg ICAgICAgICAgIHwgIDEgKworIDQgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKykKKwor ZGlmZiAtLWdpdCBhL3NyYy9kb21haW54bWxidWlsZGVyLmNwcCBiL3NyYy9kb21haW54bWxidWls ZGVyLmNwcAoraW5kZXggODUxZjI5OC4uYjc1Y2MyYiAxMDA2NDQKKy0tLSBhL3NyYy9kb21haW54 bWxidWlsZGVyLmNwcAorKysrIGIvc3JjL2RvbWFpbnhtbGJ1aWxkZXIuY3BwCitAQCAtMjA5LDYg KzIwOSwxNCBAQCBRU3RyaW5nIERvbWFpblhtbEJ1aWxkZXI6OmdlbmVyYXRlWE1MKHZpckNvbm5l Y3RQdHIgY29ubiwgY29uc3QgRG9tYWluQ29uZmlnICpjbworIAorICAgICBhZGRDb25zb2xlRGV2 aWNlcyhkb2N1bWVudCwgZGV2aWNlcywgey50eXBlID0gUVN0cmluZ0xpdGVyYWwoInB0eSIpfSk7 CisgCisrICAgIC8vIGRldmljZXMtPmNvbnRyb2xsZXIgYW5kIGRldmljZXMtPmNoYW5uZWwgZWxl bWVudHMKKysgICAgLy8gdmlydGlvLXNlcmlhbCBwb3J0IGZvciBzcGljZS12ZGFnZW50LCByZXF1 aXJlZCBmb3IgdGhlIGd1ZXN0IHRvIGZvbGxvdyB0aGUgdmlld2VyIHNpemUKKysgICAgYWRkQ29u dHJvbGxlckRldmljZXMoZG9jdW1lbnQsIGRldmljZXMsIHsudHlwZSA9IFFTdHJpbmdMaXRlcmFs KCJ2aXJ0aW8tc2VyaWFsIiksIC5pbmRleCA9IFFTdHJpbmdMaXRlcmFsKCIwIil9KTsKKysKKysg ICAgYWRkQ2hhbm5lbERldmljZXMoZG9jdW1lbnQsCisrICAgICAgICAgICAgICAgICAgICAgIGRl dmljZXMsCisrICAgICAgICAgICAgICAgICAgICAgIHsudHlwZSA9IFFTdHJpbmdMaXRlcmFsKCJz cGljZXZtYyIpLCAudGFyZ2V0VHlwZSA9IFFTdHJpbmdMaXRlcmFsKCJ2aXJ0aW8iKSwgLnRhcmdl dE5hbWUgPSBRU3RyaW5nTGl0ZXJhbCgiY29tLnJlZGhhdC5zcGljZS4wIil9KTsKKysKKyAgICAg Ly8gd3JpdGUgdG8gZmlsZQorICAgICBRU3RyaW5nIHhtbFN0cmluZyA9IGRvY3VtZW50LnRvU3Ry aW5nKDQpOworIAorQEAgLTI0Niw2ICsyNTQsMzcgQEAgUVN0cmluZyBEb21haW5YbWxCdWlsZGVy OjpnZW5lcmF0ZURpc2tYTUwoY29uc3QgRGlza0RldmljZUNvbmZpZyAmY29uZmlnKQorICAgICBy ZXR1cm4gZG9jdW1lbnQudG9TdHJpbmcoNCk7CisgfQorIAorK1FTdHJpbmcgRG9tYWluWG1sQnVp bGRlcjo6Z2VuZXJhdGVTcGljZUFnZW50Q2hhbm5lbFhNTCgpCisreworKyAgICBRRG9tRG9jdW1l bnQgZG9jdW1lbnQ7CisrICAgIFFEb21FbGVtZW50IGRldmljZXMgPSBkb2N1bWVudC5jcmVhdGVF bGVtZW50KFFTdHJpbmdMaXRlcmFsKCJkZXZpY2VzIikpOworKyAgICAvLyBsaWJ2aXJ0IGFkZHMg dGhlIHZpcnRpby1zZXJpYWwgY29udHJvbGxlciBpdHNlbGYKKysgICAgYWRkQ2hhbm5lbERldmlj ZXMoZG9jdW1lbnQsCisrICAgICAgICAgICAgICAgICAgICAgIGRldmljZXMsCisrICAgICAgICAg ICAgICAgICAgICAgIHsudHlwZSA9IFFTdHJpbmdMaXRlcmFsKCJzcGljZXZtYyIpLCAudGFyZ2V0 VHlwZSA9IFFTdHJpbmdMaXRlcmFsKCJ2aXJ0aW8iKSwgLnRhcmdldE5hbWUgPSBRU3RyaW5nTGl0 ZXJhbCgiY29tLnJlZGhhdC5zcGljZS4wIil9KTsKKysgICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQo ZGV2aWNlcy5maXJzdENoaWxkRWxlbWVudCgpKTsKKysKKysgICAgcmV0dXJuIGRvY3VtZW50LnRv U3RyaW5nKDQpOworK30KKysKKytib29sIERvbWFpblhtbEJ1aWxkZXI6Omhhc1NwaWNlQWdlbnRD aGFubmVsKGNvbnN0IFFTdHJpbmcgJnhtbERlc2MpCisreworKyAgICBRRG9tRG9jdW1lbnQgZG9j dW1lbnQ7CisrICAgIGlmICghZG9jdW1lbnQuc2V0Q29udGVudCh4bWxEZXNjKSkgeworKyAgICAg ICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisrICAgIGNvbnN0IFFEb21Ob2RlTGlzdCBjaGFu bmVscyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpLmVsZW1lbnRzQnlUYWdOYW1lKFFTdHJp bmdMaXRlcmFsKCJjaGFubmVsIikpOworKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYW5uZWxz LmNvdW50KCk7ICsraSkgeworKyAgICAgICAgY29uc3QgUURvbUVsZW1lbnQgdGFyZ2V0ID0gY2hh bm5lbHMuYXQoaSkudG9FbGVtZW50KCkuZmlyc3RDaGlsZEVsZW1lbnQoUVN0cmluZ0xpdGVyYWwo InRhcmdldCIpKTsKKysgICAgICAgIGlmICh0YXJnZXQuYXR0cmlidXRlKFFTdHJpbmdMaXRlcmFs KCJuYW1lIikpID09IFFTdHJpbmdMaXRlcmFsKCJjb20ucmVkaGF0LnNwaWNlLjAiKSkgeworKyAg ICAgICAgICAgIHJldHVybiB0cnVlOworKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIHJldHVy biBmYWxzZTsKKyt9CisrCisgdm9pZCBEb21haW5YbWxCdWlsZGVyOjphZGRIYXJkd2FyZUVsZW1l bnRzKFFEb21Eb2N1bWVudCAmZG9jdW1lbnQsIFFEb21FbGVtZW50ICZyb290LCBpbnQgbWF4UmFt LCBpbnQgY3B1cykKKyB7CisgICAgIFFNYXA8UVN0cmluZywgUVN0cmluZz4gbWVtOworQEAgLTM5 NSw2ICs0MzQsMjYgQEAgdm9pZCBEb21haW5YbWxCdWlsZGVyOjphZGRDb25zb2xlRGV2aWNlcyhR RG9tRG9jdW1lbnQgJmRvY3VtZW50LCBRRG9tRWxlbWVudCAmcGEKKyAgICAgY29uc29sZS5zZXRB dHRyaWJ1dGUoUVN0cmluZ0xpdGVyYWwoInR5cGUiKSwgY29uZmlnLnR5cGUpOworIH0KKyAKKyt2 b2lkIERvbWFpblhtbEJ1aWxkZXI6OmFkZENvbnRyb2xsZXJEZXZpY2VzKFFEb21Eb2N1bWVudCAm ZG9jdW1lbnQsIFFEb21FbGVtZW50ICZwYXJlbnQsIGNvbnN0IENvbnRyb2xsZXJDb25maWcgJmNv bmZpZykKKyt7CisrICAgIFFEb21FbGVtZW50IGNvbnRyb2xsZXIgPSBkb2N1bWVudC5jcmVhdGVF bGVtZW50KFFTdHJpbmdMaXRlcmFsKCJjb250cm9sbGVyIikpOworKyAgICBwYXJlbnQuYXBwZW5k Q2hpbGQoY29udHJvbGxlcik7CisrICAgIGNvbnRyb2xsZXIuc2V0QXR0cmlidXRlKFFTdHJpbmdM aXRlcmFsKCJ0eXBlIiksIGNvbmZpZy50eXBlKTsKKysgICAgY29udHJvbGxlci5zZXRBdHRyaWJ1 dGUoUVN0cmluZ0xpdGVyYWwoImluZGV4IiksIGNvbmZpZy5pbmRleCk7CisrfQorKworK3ZvaWQg RG9tYWluWG1sQnVpbGRlcjo6YWRkQ2hhbm5lbERldmljZXMoUURvbURvY3VtZW50ICZkb2N1bWVu dCwgUURvbUVsZW1lbnQgJnBhcmVudCwgY29uc3QgQ2hhbm5lbENvbmZpZyAmY29uZmlnKQorK3sK KysgICAgUURvbUVsZW1lbnQgY2hhbm5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoUVN0cmlu Z0xpdGVyYWwoImNoYW5uZWwiKSk7CisrICAgIHBhcmVudC5hcHBlbmRDaGlsZChjaGFubmVsKTsK KysgICAgY2hhbm5lbC5zZXRBdHRyaWJ1dGUoUVN0cmluZ0xpdGVyYWwoInR5cGUiKSwgY29uZmln LnR5cGUpOworKworKyAgICBRTWFwPFFTdHJpbmcsIFFTdHJpbmc+IHRhcmdldDsKKysgICAgdGFy Z2V0W1FTdHJpbmdMaXRlcmFsKCJ0eXBlIildID0gY29uZmlnLnRhcmdldFR5cGU7CisrICAgIHRh cmdldFtRU3RyaW5nTGl0ZXJhbCgibmFtZSIpXSA9IGNvbmZpZy50YXJnZXROYW1lOworKyAgICBh ZGRFbGVtZW50V2l0aEF0dHJpYnV0ZXMoZG9jdW1lbnQsIGNoYW5uZWwsIFFTdHJpbmdMaXRlcmFs KCJ0YXJnZXQiKSwgUVN0cmluZygpLCB0YXJnZXQpOworK30KKysKKyAvLyBUZW1wb3JhcmlseTog Z2VuZXJhdGUgYSByYW5kb20gbWFjIGFkZHJlc3MgKGluIHVuaWNhc3QpLi4uCisgLy8gZXZlbnR1 YWxseSBnZW5lcmF0ZSBhIG5ldHdvcmsgZG9tYWluLgorIFFTdHJpbmcgRG9tYWluWG1sQnVpbGRl cjo6Z2VuTWFjKCkKK2RpZmYgLS1naXQgYS9zcmMvZG9tYWlueG1sYnVpbGRlci5oIGIvc3JjL2Rv bWFpbnhtbGJ1aWxkZXIuaAoraW5kZXggMzUzMmU2Mi4uZTAwYjBlNSAxMDA2NDQKKy0tLSBhL3Ny Yy9kb21haW54bWxidWlsZGVyLmgKKysrKyBiL3NyYy9kb21haW54bWxidWlsZGVyLmgKK0BAIC0z OSw2ICszOSw5IEBAIHB1YmxpYzoKKyAgICAgUVN0cmluZyB1cGRhdGVYTUwoY29uc3QgUVN0cmlu ZyAmeG1sRGVzYywgY29uc3QgRWRpdGFibGVDb25maWcgJmNvbmZpZyk7CisgICAgIFFTdHJpbmcg Z2VuZXJhdGVEaXNrWE1MKGNvbnN0IERpc2tEZXZpY2VDb25maWcgJmNvbmZpZyk7CisgCisrICAg IFFTdHJpbmcgZ2VuZXJhdGVTcGljZUFnZW50Q2hhbm5lbFhNTCgpOworKyAgICBzdGF0aWMgYm9v bCBoYXNTcGljZUFnZW50Q2hhbm5lbChjb25zdCBRU3RyaW5nICZ4bWxEZXNjKTsKKysKKyBwcml2 YXRlOgorICAgICBzdHJ1Y3QgTmV0d29ya0ludGVyZmFjZUNvbmZpZyB7CisgICAgICAgICBRU3Ry aW5nIHR5cGU7CitAQCAtODIsNiArODUsMTcgQEAgcHJpdmF0ZToKKyAgICAgICAgIFFTdHJpbmcg dHlwZTsKKyAgICAgfTsKKyAKKysgICAgc3RydWN0IENvbnRyb2xsZXJDb25maWcgeworKyAgICAg ICAgUVN0cmluZyB0eXBlOworKyAgICAgICAgUVN0cmluZyBpbmRleDsKKysgICAgfTsKKysKKysg ICAgc3RydWN0IENoYW5uZWxDb25maWcgeworKyAgICAgICAgUVN0cmluZyB0eXBlOworKyAgICAg ICAgUVN0cmluZyB0YXJnZXRUeXBlOworKyAgICAgICAgUVN0cmluZyB0YXJnZXROYW1lOworKyAg ICB9OworKworICAgICB2b2lkIGFkZERpc2tEZXZpY2VzKFFEb21Eb2N1bWVudCAmZG9jdW1lbnQs IFFEb21FbGVtZW50ICZwYXJlbnQsIGNvbnN0IERpc2tEZXZpY2VDb25maWcgJmNvbmZpZyk7Cisg ICAgIHZvaWQgYWRkTmV0d29ya0ludGVyZmFjZURldmljZXMoUURvbURvY3VtZW50ICZkb2N1bWVu dCwgUURvbUVsZW1lbnQgJnBhcmVudCwgY29uc3QgTmV0d29ya0ludGVyZmFjZUNvbmZpZyAmY29u ZmlnKTsKKyAgICAgdm9pZCBhZGRHcmFwaGljc0RldmljZXMoUURvbURvY3VtZW50ICZkb2N1bWVu dCwgUURvbUVsZW1lbnQgJnBhcmVudCwgY29uc3QgR3JhcGhpY3NDb25maWcgJmNvbmZpZyk7CitA QCAtOTAsNiArMTA0LDggQEAgcHJpdmF0ZToKKyAgICAgdm9pZCBhZGRWaWRlb0RldmljZXMoUURv bURvY3VtZW50ICZkb2N1bWVudCwgUURvbUVsZW1lbnQgJnBhcmVudCwgY29uc3QgVmlkZW9Db25m aWcgJmNvbmZpZyk7CisgICAgIHZvaWQgYWRkSW5wdXREZXZpY2VzKFFEb21Eb2N1bWVudCAmZG9j dW1lbnQsIFFEb21FbGVtZW50ICZwYXJlbnQsIGNvbnN0IElucHV0Q29uZmlnICZjb25maWcpOwor ICAgICB2b2lkIGFkZENvbnNvbGVEZXZpY2VzKFFEb21Eb2N1bWVudCAmZG9jdW1lbnQsIFFEb21F bGVtZW50ICZwYXJlbnQsIGNvbnN0IENvbnNvbGVDb25maWcgJmNvbmZpZyk7CisrICAgIHZvaWQg YWRkQ29udHJvbGxlckRldmljZXMoUURvbURvY3VtZW50ICZkb2N1bWVudCwgUURvbUVsZW1lbnQg JnBhcmVudCwgY29uc3QgQ29udHJvbGxlckNvbmZpZyAmY29uZmlnKTsKKysgICAgdm9pZCBhZGRD aGFubmVsRGV2aWNlcyhRRG9tRG9jdW1lbnQgJmRvY3VtZW50LCBRRG9tRWxlbWVudCAmcGFyZW50 LCBjb25zdCBDaGFubmVsQ29uZmlnICZjb25maWcpOworICAgICB2b2lkIGFkZEhhcmR3YXJlRWxl bWVudHMoUURvbURvY3VtZW50ICZkb2N1bWVudCwgUURvbUVsZW1lbnQgJnJvb3QsIGludCBtYXhS YW0sIGludCBjcHVzKTsKKyAKKyAgICAgUVN0cmluZyBnZW5NYWMoKTsKK2RpZmYgLS1naXQgYS9z cmMva2FydG9uLmNwcCBiL3NyYy9rYXJ0b24uY3BwCitpbmRleCA0MTM3ZDQ5Li4wMDczMDAyIDEw MDY0NAorLS0tIGEvc3JjL2thcnRvbi5jcHAKKysrKyBiL3NyYy9rYXJ0b24uY3BwCitAQCAtNCw2 ICs0LDcgQEAKKyAjaW5jbHVkZSAia2FydG9uLmgiCisgCisgI2luY2x1ZGUgPGxpYnZpcnQvbGli dmlydC5oPgorKyNpbmNsdWRlIDxsaWJ2aXJ0L3ZpcnRlcnJvci5oPgorIAorICNpbmNsdWRlIDxL TG9jYWxpemVkU3RyaW5nPgorICNpbmNsdWRlIDxRRGlyPgorQEAgLTI0Myw2ICsyNDQsOSBAQCBR VmVjdG9yPERvbWFpbiAqPiBLYXJ0b246OmRvbWFpbnMoKQorIGJvb2wgS2FydG9uOjpzdGFydERv bWFpbihjb25zdCBEb21haW4gKmRvbWFpbikKKyB7CisgICAgIHZpckRvbWFpblB0ciBkb21haW5Q dHIgPSBkb21haW4tPmRvbWFpblB0cigpOworKworKyAgICBlbnN1cmVTcGljZUFnZW50Q2hhbm5l bChkb21haW4pOworKworICAgICBpbnQgcmVzdWx0ID0gdmlyRG9tYWluQ3JlYXRlKGRvbWFpblB0 cik7CisgCisgICAgIGlmIChyZXN1bHQgPCAwKSB7CitAQCAtMjU1LDYgKzI1OSwzNyBAQCBib29s IEthcnRvbjo6c3RhcnREb21haW4oY29uc3QgRG9tYWluICpkb21haW4pCisgICAgIHJldHVybiB0 cnVlOworIH0KKyAKKysvLyBhdHRhY2hlZCB3aGlsZSB0aGUgZG9tYWluIGlzIGluYWN0aXZlLCBz byBpdCBhcHBsaWVzIG9uIHRoZSBib290IHRoYXQgZm9sbG93cworK3ZvaWQgS2FydG9uOjplbnN1 cmVTcGljZUFnZW50Q2hhbm5lbChjb25zdCBEb21haW4gKmRvbWFpbikKKyt7CisrICAgIHZpckRv bWFpblB0ciBkb21haW5QdHIgPSBkb21haW4tPmRvbWFpblB0cigpOworKyAgICBpZiAodmlyRG9t YWluSXNBY3RpdmUoZG9tYWluUHRyKSAhPSAwKSB7CisrICAgICAgICByZXR1cm47CisrICAgIH0K KysKKysgICAgY2hhciAqeG1sRGVzYyA9IHZpckRvbWFpbkdldFhNTERlc2MoZG9tYWluUHRyLCBW SVJfRE9NQUlOX1hNTF9JTkFDVElWRSk7CisrICAgIGlmICgheG1sRGVzYykgeworKyAgICAgICAg cUNXYXJuaW5nKEtBUlRPTl9ERUJVRykgPDwgIkNvdWxkIG5vdCByZWFkIGNvbmZpZ3VyYXRpb24g dG8gY2hlY2sgZm9yIGEgU1BJQ0UgYWdlbnQgY2hhbm5lbDoiIDw8IGRvbWFpbi0+Y29uZmlnKCkt Pm5hbWUoKTsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKyAgICBjb25zdCBRU3RyaW5nIGRl c2MgPSBRU3RyaW5nOjpmcm9tVXRmOCh4bWxEZXNjKTsKKysgICAgZnJlZSh4bWxEZXNjKTsKKysK KysgICAgaWYgKERvbWFpblhtbEJ1aWxkZXI6Omhhc1NwaWNlQWdlbnRDaGFubmVsKGRlc2MpKSB7 CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysgICAgRG9tYWluWG1sQnVpbGRlciBidWls ZGVyOworKyAgICBjb25zdCBRU3RyaW5nIGZyYWdtZW50ID0gYnVpbGRlci5nZW5lcmF0ZVNwaWNl QWdlbnRDaGFubmVsWE1MKCk7CisrICAgIC8vIG9ubHkgd2FybnM6IGEgbWlzc2luZyBhZ2VudCBj aGFubmVsIG11c3QgbmV2ZXIgc3RvcCBhIFZNIGZyb20gc3RhcnRpbmcKKysgICAgaWYgKHZpckRv bWFpbkF0dGFjaERldmljZUZsYWdzKGRvbWFpblB0ciwgZnJhZ21lbnQudG9VdGY4KCkuY29uc3RE YXRhKCksIFZJUl9ET01BSU5fQUZGRUNUX0NPTkZJRykgPCAwKSB7CisrICAgICAgICBxQ1dhcm5p bmcoS0FSVE9OX0RFQlVHKSA8PCAiQ291bGQgbm90IGFkZCBhIFNQSUNFIGFnZW50IGNoYW5uZWwg dG8iIDw8IGRvbWFpbi0+Y29uZmlnKCktPm5hbWUoKSA8PCAiOiIgPDwgdmlyR2V0TGFzdEVycm9y TWVzc2FnZSgpOworKyAgICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICAgIHFDSW5mbyhLQVJU T05fREVCVUcpIDw8ICJBZGRlZCBhIFNQSUNFIGFnZW50IGNoYW5uZWwgdG8iIDw8IGRvbWFpbi0+ Y29uZmlnKCktPm5hbWUoKTsKKyt9CisrCisgYm9vbCBLYXJ0b246OnN0b3BEb21haW4oY29uc3Qg RG9tYWluICpkb21haW4pCisgeworICAgICB2aXJEb21haW5QdHIgZG9tYWluUHRyID0gZG9tYWlu LT5kb21haW5QdHIoKTsKK2RpZmYgLS1naXQgYS9zcmMva2FydG9uLmggYi9zcmMva2FydG9uLmgK K2luZGV4IDk0NWYzMWEuLjIyMTI4ZjYgMTAwNjQ0CistLS0gYS9zcmMva2FydG9uLmgKKysrKyBi L3NyYy9rYXJ0b24uaAorQEAgLTc2LDQgKzc2LDUgQEAgcHJpdmF0ZToKKyAgICAgQ29tbWFuZFJ1 bm5lciAqbV9jb21tYW5kUnVubmVyOworIAorICAgICBib29sIGluaXQoKTsKKysgICAgdm9pZCBl bnN1cmVTcGljZUFnZW50Q2hhbm5lbChjb25zdCBEb21haW4gKmRvbWFpbik7CisgfTsKKy0tIAor R2l0TGFiCisKKworRnJvbSAxYWY2NTgzNGNmZGRkMGJiODFiYWI0NzdiOTUyNGRiNjU2OWFmNjdh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT251cmFscCBTRVpFUiA8dGh1bmRlcmJp cmR0ckBmZWRvcmFwcm9qZWN0Lm9yZz4KK0RhdGU6IFR1ZSwgMTggQXVnIDIwMjYgMDE6Mjc6MjIg KzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzRdIFNlbmQgdGhlIHZpZXdlciBzaXplIHRvIHRoZSBn dWVzdCBvdmVyIHRoZSBTUElDRSBtYWluCisgY2hhbm5lbAorCitTaWduZWQtb2ZmLWJ5OiBPbnVy YWxwIFNFWkVSIDx0aHVuZGVyYmlyZHRyQGZlZG9yYXByb2plY3Qub3JnPgorLS0tCisgc3JjL2Rv bWFpbnZpZXdlci5jcHAgfCAxMTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLQorIHNyYy9kb21haW52aWV3ZXIuaCAgIHwgIDI0ICsrKysrKysrKworIDIgZmlsZXMg Y2hhbmdlZCwgMTM0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9zcmMvZG9tYWludmlld2VyLmNwcCBiL3NyYy9kb21haW52aWV3ZXIuY3BwCitpbmRleCAwYTRi M2RkLi44NTFjNDQ5IDEwMDY0NAorLS0tIGEvc3JjL2RvbWFpbnZpZXdlci5jcHAKKysrKyBiL3Ny Yy9kb21haW52aWV3ZXIuY3BwCitAQCAtMTAsNiArMTAsOCBAQAorICNpbmNsdWRlIDxRU3RyaW5n PgorICNpbmNsdWRlIDxRVXJsPgorIAorKyNpbmNsdWRlIDxhbGdvcml0aG0+CisrCisgI2luY2x1 ZGUgImRvbWFpbi5oIgorICNpbmNsdWRlICJnbGliLmgiCisgI2luY2x1ZGUgImdsc2Nhbm91dHJl bmRlcmVyLmgiCitAQCAtNDIsNiArNDQsMTIgQEAgRG9tYWluVmlld2VyOjpEb21haW5WaWV3ZXIo UVF1aWNrSXRlbSAqcGFyZW50KQorICAgICBzZXRBY2NlcHRIb3ZlckV2ZW50cyh0cnVlKTsKKyAg ICAgc2V0RmxhZyhJdGVtSXNGb2N1c1Njb3BlLCB0cnVlKTsKKyAKKysgICAgLy8gY29hbGVzY2Ug YSByZXNpemUgZHJhZyBpbnRvIGEgc2luZ2xlIGd1ZXN0IG1vZGVzZXQKKysgICAgbV9yZXNpemVE ZWJvdW5jZSA9IG5ldyBRVGltZXIodGhpcyk7CisrICAgIG1fcmVzaXplRGVib3VuY2UtPnNldFNp bmdsZVNob3QodHJ1ZSk7CisrICAgIG1fcmVzaXplRGVib3VuY2UtPnNldEludGVydmFsKDEwMDAp OworKyAgICBjb25uZWN0KG1fcmVzaXplRGVib3VuY2UsICZRVGltZXI6OnRpbWVvdXQsIHRoaXMs ICZEb21haW5WaWV3ZXI6OnNlbmRHdWVzdFJlc2l6ZSk7CisrCisgICAgIGNvbm5lY3QobV9jb21t YW5kUnVubmVyLCAmQ29tbWFuZFJ1bm5lcjo6Y29tbWFuZEZpbmlzaGVkLCB0aGlzLCAmRG9tYWlu Vmlld2VyOjpoYW5kbGVIb3N0UG9ydCk7CisgfQorIAorQEAgLTE1OSwxMiArMTY3LDI0IEBAIHZv aWQgRG9tYWluVmlld2VyOjpkaXNjb25uZWN0RnJvbVNwaWNlKCkKKyAgICAgICAgIG1fcmVuZGVy ZXIucmVzZXQoKTsKKyAgICAgfQorIAorKyAgICBtX3Jlc2l6ZURlYm91bmNlLT5zdG9wKCk7Cisr ICAgIG1fbGFzdFJlcXVlc3RlZEd1ZXN0U2l6ZSA9IFFTaXplKCk7CisrCisrICAgIGlmIChtX21h aW5fY2hhbm5lbCAmJiBtX2FnZW50Tm90aWZ5SWQpIHsKKysgICAgICAgIGdfc2lnbmFsX2hhbmRs ZXJfZGlzY29ubmVjdChtX21haW5fY2hhbm5lbCwgbV9hZ2VudE5vdGlmeUlkKTsKKysgICAgfQor KyAgICBtX2FnZW50Tm90aWZ5SWQgPSAwOworKyAgICBtX21haW5fY2hhbm5lbCA9IG51bGxwdHI7 CisrCisrICAgIG1fYWdlbnRDb25uZWN0ZWQgPSBmYWxzZTsKKysKKyAgICAgaWYgKG1fc2Vzc2lv bikgeworICAgICAgICAgc3BpY2Vfc2Vzc2lvbl9kaXNjb25uZWN0KG1fc2Vzc2lvbik7CisgCisg ICAgICAgICBnX29iamVjdF91bnJlZihtX3Nlc3Npb24pOworICAgICAgICAgbV9zZXNzaW9uID0g bnVsbHB0cjsKKyAgICAgICAgIG1fZGlzcGxheV9jaGFubmVsID0gbnVsbHB0cjsKKysgICAgICAg IG1faW5wdXRzX2NoYW5uZWwgPSBudWxscHRyOworICAgICAgICAgbV9hdWRpbyA9IG51bGxwdHI7 CisgICAgICAgICBtX3BsYXliYWNrX2NoYW5uZWwgPSBudWxscHRyOworICAgICAgICAgbV9jb25u ZWN0ZWQgPSBmYWxzZTsKK0BAIC0xNzgsNyArMTk4LDEwIEBAIHZvaWQgRG9tYWluVmlld2VyOjpj aGFubmVsX25ld19jYWxsYmFjayhTcGljZVNlc3Npb24gKnNlc3Npb24sIFNwaWNlQ2hhbm5lbCAq Y2hhCisgICAgIERvbWFpblZpZXdlciAqaXRlbSA9IHN0YXRpY19jYXN0PERvbWFpblZpZXdlciAq Pih1c2VyX2RhdGEpOworIAorICAgICBpdGVtLT5jaGVja0NoYW5uZWxTdGF0dXMoKTsgLy8gdW5j b21tZW50IGZvciBjaGFubmVsIGRlYnVnIG1zZ3MKKy0gICAgaWYgKFNQSUNFX0lTX0RJU1BMQVlf Q0hBTk5FTChjaGFubmVsKSkgeworKyAgICBpZiAoU1BJQ0VfSVNfTUFJTl9DSEFOTkVMKGNoYW5u ZWwpKSB7CisrICAgICAgICBxQ0luZm8oS0FSVE9OX0RFQlVHKSA8PCAiU1BJQ0U6IG1haW4gY2hh bm5lbCBjb25uZWN0ZWQiOworKyAgICAgICAgaXRlbS0+YXR0YWNoTWFpbkNoYW5uZWwoY2hhbm5l bCk7CisrICAgIH0gZWxzZSBpZiAoU1BJQ0VfSVNfRElTUExBWV9DSEFOTkVMKGNoYW5uZWwpKSB7 CisgICAgICAgICBxQ0luZm8oS0FSVE9OX0RFQlVHKSA8PCAiU1BJQ0UgZGlzcGxheSBjb25uZWN0 ZWQiOworICAgICAgICAgaXRlbS0+YXR0YWNoRGlzcGxheUNoYW5uZWwoY2hhbm5lbCk7CisgICAg IH0gZWxzZSBpZiAoU1BJQ0VfSVNfSU5QVVRTX0NIQU5ORUwoY2hhbm5lbCkpIHsKK0BAIC0xOTQs MTQgKzIxNyw5OCBAQCB2b2lkIERvbWFpblZpZXdlcjo6Y2hhbm5lbF9uZXdfY2FsbGJhY2soU3Bp Y2VTZXNzaW9uICpzZXNzaW9uLCBTcGljZUNoYW5uZWwgKmNoYQorICAgICAgICAgZ19zaWduYWxf Y29ubmVjdChjaGFubmVsLCAicGxheWJhY2stZGF0YSIsIEdfQ0FMTEJBQ0socGxheWJhY2tfZGF0 YV9jYWxsYmFjayksIGl0ZW0pOworICAgICAgICAgZ19zaWduYWxfY29ubmVjdChjaGFubmVsLCAi cGxheWJhY2stc3RvcCIsIEdfQ0FMTEJBQ0socGxheWJhY2tfc3RvcF9jYWxsYmFjayksIGl0ZW0p OworICAgICB9IGVsc2UgeworLSAgICAgICAgcUNXYXJuaW5nKEtBUlRPTl9ERUJVRykgPDwgIlVu cmVjb2duaXNlZCBTUElDRSBjaGFubmVsIHR5cGUiOworKyAgICAgICAgcUNEZWJ1ZyhLQVJUT05f REVCVUcpIDw8ICJVbmhhbmRsZWQgU1BJQ0UgY2hhbm5lbCB0eXBlIjsKKyAgICAgfQorIH0KKyAK KyAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBEaXNwbGF5IHJlbmRlcmluZyAgPT09PT09 PT09PT09PT09PT09PT09PT09CisgCisrdm9pZCBEb21haW5WaWV3ZXI6OmF0dGFjaE1haW5DaGFu bmVsKFNwaWNlQ2hhbm5lbCAqY2hhbm5lbCkKKyt7CisrICAgIG1fbWFpbl9jaGFubmVsID0gU1BJ Q0VfTUFJTl9DSEFOTkVMKGNoYW5uZWwpOworKyAgICBtX2FnZW50Tm90aWZ5SWQgPSBnX3NpZ25h bF9jb25uZWN0KGNoYW5uZWwsICJub3RpZnk6OmFnZW50LWNvbm5lY3RlZCIsIEdfQ0FMTEJBQ0so JkRvbWFpblZpZXdlcjo6bWFpbl9hZ2VudF9jb25uZWN0ZWRfY2FsbGJhY2spLCB0aGlzKTsKKysK KysgICAgc3BpY2VfY2hhbm5lbF9jb25uZWN0KGNoYW5uZWwpOworKyAgICB1cGRhdGVBZ2VudENv bm5lY3RlZCgpOworK30KKysKKyt2b2lkIERvbWFpblZpZXdlcjo6bWFpbl9hZ2VudF9jb25uZWN0 ZWRfY2FsbGJhY2soR09iamVjdCAqb2JqZWN0LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIg dXNlcl9kYXRhKQorK3sKKysgICAgUV9VTlVTRUQob2JqZWN0KTsKKysgICAgUV9VTlVTRUQocHNw ZWMpOworKworKyAgICBzdGF0aWNfY2FzdDxEb21haW5WaWV3ZXIgKj4odXNlcl9kYXRhKS0+dXBk YXRlQWdlbnRDb25uZWN0ZWQoKTsKKyt9CisrCisrdm9pZCBEb21haW5WaWV3ZXI6OnVwZGF0ZUFn ZW50Q29ubmVjdGVkKCkKKyt7CisrICAgIGlmICghbV9tYWluX2NoYW5uZWwpIHsKKysgICAgICAg IHJldHVybjsKKysgICAgfQorKworKyAgICBnYm9vbGVhbiBjb25uZWN0ZWQgPSBGQUxTRTsKKysg ICAgZ19vYmplY3RfZ2V0KG1fbWFpbl9jaGFubmVsLCAiYWdlbnQtY29ubmVjdGVkIiwgJmNvbm5l Y3RlZCwgbnVsbHB0cik7CisrCisrICAgIGlmIChzdGF0aWNfY2FzdDxib29sPihjb25uZWN0ZWQp ID09IG1fYWdlbnRDb25uZWN0ZWQpIHsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKyAgICBt X2FnZW50Q29ubmVjdGVkID0gY29ubmVjdGVkOworKyAgICBxQ0luZm8oS0FSVE9OX0RFQlVHKSA8 PCAiU1BJQ0UgZ3Vlc3QgYWdlbnQgY29ubmVjdGVkOiIgPDwgbV9hZ2VudENvbm5lY3RlZDsKKysK KysgICAgLy8gZm9yZ2V0IHRoZSBsYXN0IHJlcXVlc3Qgc28gdGhlIHNpemUgaXMgcHVzaGVkIGFn YWluIGFmdGVyIGEgZ3Vlc3QgcmVib290CisrICAgIG1fbGFzdFJlcXVlc3RlZEd1ZXN0U2l6ZSA9 IFFTaXplKCk7CisrCisrICAgIGlmIChtX2FnZW50Q29ubmVjdGVkKSB7CisrICAgICAgICBzZW5k R3Vlc3RSZXNpemUoKTsKKysgICAgfQorK30KKysKKyt2b2lkIERvbWFpblZpZXdlcjo6c2V0QXZh aWxhYmxlQXJlYShjb25zdCBRU2l6ZUYgJmFyZWEpCisreworKyAgICBpZiAobV9hdmFpbGFibGVB cmVhID09IGFyZWEpIHsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgICBtX2F2YWls YWJsZUFyZWEgPSBhcmVhOworKyAgICBRX0VNSVQgYXZhaWxhYmxlQXJlYUNoYW5nZWQoKTsKKysK KysgICAgbV9yZXNpemVEZWJvdW5jZS0+c3RhcnQoKTsKKyt9CisrCisrdm9pZCBEb21haW5WaWV3 ZXI6OnNlbmRHdWVzdFJlc2l6ZSgpCisreworKyAgICBpZiAoIW1fbWFpbl9jaGFubmVsIHx8ICFt X2FnZW50Q29ubmVjdGVkIHx8ICFtX2Nvbm5lY3RlZCkgeworKyAgICAgICAgcmV0dXJuOworKyAg ICB9CisrICAgIGlmICghd2luZG93KCkgfHwgbV9hdmFpbGFibGVBcmVhLndpZHRoKCkgPD0gMCB8 fCBtX2F2YWlsYWJsZUFyZWEuaGVpZ2h0KCkgPD0gMCkgeworKyAgICAgICAgcmV0dXJuOworKyAg ICB9CisrCisrICAgIC8vICYgfjEga2VlcHMgdGhlIHNpemUgZXZlbiwgd2hpY2ggdGhlIHZpZGVv IGVuY29kZSBwYXRoIHByZWZlcnMKKysgICAgY29uc3QgcXJlYWwgZHByID0gd2luZG93KCktPmRl dmljZVBpeGVsUmF0aW8oKTsKKysgICAgY29uc3QgaW50IHdpZHRoID0gc3RkOjptYXgoc3RhdGlj X2Nhc3Q8aW50PihxUm91bmQobV9hdmFpbGFibGVBcmVhLndpZHRoKCkgKiBkcHIpKSAmIH4xLCBt aW5pbXVtR3Vlc3RTaXplLndpZHRoKCkpOworKyAgICBjb25zdCBpbnQgaGVpZ2h0ID0gc3RkOjpt YXgoc3RhdGljX2Nhc3Q8aW50PihxUm91bmQobV9hdmFpbGFibGVBcmVhLmhlaWdodCgpICogZHBy KSkgJiB+MSwgbWluaW11bUd1ZXN0U2l6ZS5oZWlnaHQoKSk7CisrCisrICAgIGNvbnN0IFFTaXpl IHJlcXVlc3RlZCh3aWR0aCwgaGVpZ2h0KTsKKysgICAgaWYgKHJlcXVlc3RlZCA9PSBtX2xhc3RS ZXF1ZXN0ZWRHdWVzdFNpemUpIHsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKyAgICBtX2xh c3RSZXF1ZXN0ZWRHdWVzdFNpemUgPSByZXF1ZXN0ZWQ7CisrCisrICAgIHFDSW5mbyhLQVJUT05f REVCVUcpIDw8ICJSZXF1ZXN0aW5nIGd1ZXN0IHJlc29sdXRpb24iIDw8IHJlcXVlc3RlZDsKKysg ICAgLy8gd2l0aG91dCB0aGUgZW5hYmxlIGNhbGwgdGhlIGRpc3BsYXkgc3RheXMgdW5kZWZpbmVk IGFuZCBub3RoaW5nIGlzIHNlbnQgYXQgYWxsCisrICAgIHNwaWNlX21haW5fY2hhbm5lbF91cGRh dGVfZGlzcGxheV9lbmFibGVkKG1fbWFpbl9jaGFubmVsLCBtX2Rpc3BsYXlJZCwgVFJVRSwgRkFM U0UpOworKyAgICAvLyBzZW50IGJ5IGhhbmQsIGxldHRpbmcgc3BpY2UtZ3RrIHNlbmQgaXQgY29z dHMgYW5vdGhlciBzZWNvbmQKKysgICAgc3BpY2VfbWFpbl9jaGFubmVsX3VwZGF0ZV9kaXNwbGF5 KG1fbWFpbl9jaGFubmVsLCBtX2Rpc3BsYXlJZCwgMCwgMCwgd2lkdGgsIGhlaWdodCwgRkFMU0Up OworKyAgICBzcGljZV9tYWluX2NoYW5uZWxfc2VuZF9tb25pdG9yX2NvbmZpZyhtX21haW5fY2hh bm5lbCk7CisrfQorKworIHZvaWQgRG9tYWluVmlld2VyOjphdHRhY2hEaXNwbGF5Q2hhbm5lbChT cGljZUNoYW5uZWwgKmNoYW5uZWwpCisgeworKyAgICBnaW50IGNoYW5uZWxJZCA9IDA7CisrICAg IGdfb2JqZWN0X2dldChjaGFubmVsLCAiY2hhbm5lbC1pZCIsICZjaGFubmVsSWQsIG51bGxwdHIp OworKyAgICBtX2Rpc3BsYXlJZCA9IGNoYW5uZWxJZDsKKysKKyAgICAgc3BpY2VfY2hhbm5lbF9j b25uZWN0KGNoYW5uZWwpOworICAgICBtX2Rpc3BsYXlfY2hhbm5lbCA9IGNoYW5uZWw7CisgCitA QCAtNDQyLDcgKzU0OSw3IEBAIHZvaWQgRG9tYWluVmlld2VyOjpob3Zlck1vdmVFdmVudChRSG92 ZXJFdmVudCAqZXZlbnQpCisgeworICAgICBzdGF0aWMgaW50IGhvdmVyQ291bnRlciA9IDA7Cisg ICAgIGlmICgrK2hvdmVyQ291bnRlciAlIDIwID09IDApIHsKKy0gICAgICAgIHFDSW5mbyhLQVJU T05fREVCVUcpIDw8ICJNb3VzZSBob3ZlciBhdCAoIiA8PCBldmVudC0+cG9zaXRpb24oKS54KCkg PDwgIiwiIDw8IGV2ZW50LT5wb3NpdGlvbigpLnkoKSA8PCAiKSI7CisrICAgICAgICBxQ0RlYnVn KEtBUlRPTl9ERUJVRykgPDwgIk1vdXNlIGhvdmVyIGF0ICgiIDw8IGV2ZW50LT5wb3NpdGlvbigp LngoKSA8PCAiLCIgPDwgZXZlbnQtPnBvc2l0aW9uKCkueSgpIDw8ICIpIjsKKyAgICAgfQorICAg ICBpZiAobV9pbnB1dHNfY2hhbm5lbCAmJiBtX2Nvbm5lY3RlZCkgeworICAgICAgICAgcXJlYWwg eCA9IGV2ZW50LT5wb3NpdGlvbigpLngoKTsKK2RpZmYgLS1naXQgYS9zcmMvZG9tYWludmlld2Vy LmggYi9zcmMvZG9tYWludmlld2VyLmgKK2luZGV4IDVmOTM0MDAuLjNiZjJiNTQgMTAwNjQ0Cist LS0gYS9zcmMvZG9tYWludmlld2VyLmgKKysrKyBiL3NyYy9kb21haW52aWV3ZXIuaAorQEAgLTE0 LDYgKzE0LDcgQEAKKyAjaW5jbHVkZSA8UUF1ZGlvRm9ybWF0PgorICNpbmNsdWRlIDxRQXVkaW9T aW5rPgorICNpbmNsdWRlIDxRSU9EZXZpY2U+CisrI2luY2x1ZGUgPFFUaW1lcj4KKyAKKyAjaW5j bHVkZSA8bWVtb3J5PgorIAorQEAgLTI4LDYgKzI5LDcgQEAgY2xhc3MgRG9tYWluVmlld2VyIDog cHVibGljIFFRdWlja0l0ZW0KKyAgICAgUV9QUk9QRVJUWShEb21haW4gKmRvbWFpbiBSRUFEIGRv bWFpbiBXUklURSBzZXREb21haW4gTk9USUZZIGRvbWFpbkNoYW5nZWQgUkVRVUlSRUQpCisgICAg IFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IE1FTUJFUiBtX2hvc3QgTk9USUZZIGhvc3RDaGFuZ2Vk KQorICAgICBRX1BST1BFUlRZKGludCBwb3J0IE1FTUJFUiBtX3BvcnQgTk9USUZZIHBvcnRDaGFu Z2VkKQorKyAgICBRX1BST1BFUlRZKFFTaXplRiBhdmFpbGFibGVBcmVhIFJFQUQgYXZhaWxhYmxl QXJlYSBXUklURSBzZXRBdmFpbGFibGVBcmVhIE5PVElGWSBhdmFpbGFibGVBcmVhQ2hhbmdlZCkK KyAKKyBwdWJsaWM6CisgICAgIGV4cGxpY2l0IERvbWFpblZpZXdlcihRUXVpY2tJdGVtICpwYXJl bnQgPSBudWxscHRyKTsKK0BAIC02MCw2ICs2MiwxMiBAQCBwdWJsaWM6CisgCisgICAgIFFfSU5W T0tBQkxFIHZvaWQgc2F2ZUZyYW1lVG9Eb21haW4oKTsKKyAKKysgICAgUVNpemVGIGF2YWlsYWJs ZUFyZWEoKSBjb25zdAorKyAgICB7CisrICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVBcmVhOwor KyAgICB9CisrICAgIHZvaWQgc2V0QXZhaWxhYmxlQXJlYShjb25zdCBRU2l6ZUYgJmFyZWEpOwor KworICAgICBRU3RyaW5nIGhvc3QoKSBjb25zdAorICAgICB7CisgICAgICAgICByZXR1cm4gbV9o b3N0OworQEAgLTkxLDYgKzk5LDcgQEAgUV9TSUdOQUxTOgorIAorICAgICB2b2lkIHBvcnRDaGFu Z2VkKCk7CisgICAgIHZvaWQgaG9zdENoYW5nZWQoKTsKKysgICAgdm9pZCBhdmFpbGFibGVBcmVh Q2hhbmdlZCgpOworIAorIHByaXZhdGUgUV9TTE9UUzoKKyAgICAgdm9pZCBoYW5kbGVIb3N0UG9y dChpbnQgZXhpdENvZGUsIGNvbnN0IFFTdHJpbmcgJm91dHB1dCk7CitAQCAtMTAzLDcgKzExMiwx MSBAQCBwcml2YXRlOgorICAgICB9OworIAorICAgICBzdGF0aWMgdm9pZCBjaGFubmVsX25ld19j YWxsYmFjayhTcGljZVNlc3Npb24gKnNlc3Npb24sIFNwaWNlQ2hhbm5lbCAqY2hhbm5lbCwgZ3Bv aW50ZXIgdXNlcl9kYXRhKTsKKysgICAgc3RhdGljIHZvaWQgbWFpbl9hZ2VudF9jb25uZWN0ZWRf Y2FsbGJhY2soR09iamVjdCAqb2JqZWN0LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgdXNl cl9kYXRhKTsKKyAgICAgdm9pZCBhdHRhY2hEaXNwbGF5Q2hhbm5lbChTcGljZUNoYW5uZWwgKmNo YW5uZWwpOworKyAgICB2b2lkIGF0dGFjaE1haW5DaGFubmVsKFNwaWNlQ2hhbm5lbCAqY2hhbm5l bCk7CisrICAgIHZvaWQgdXBkYXRlQWdlbnRDb25uZWN0ZWQoKTsKKysgICAgdm9pZCBzZW5kR3Vl c3RSZXNpemUoKTsKKyAgICAgc3RhdGljIHVpbnQ4X3QgZXZkZXZUb1BjWHQodWludDMyX3QgZXZk ZXZfc2NhbmNvZGUpOworIAorICAgICBzdGF0aWMgdm9pZCBwbGF5YmFja19zdGFydF9jYWxsYmFj ayhTcGljZVBsYXliYWNrQ2hhbm5lbCAqY2hhbm5lbCwgZ2ludCBmb3JtYXQsIGdpbnQgY2hhbm5l bHMsIGdpbnQgcmF0ZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKK0BAIC0xMjUsNiArMTM4LDE3IEBA IHByaXZhdGU6CisgICAgIFNwaWNlQ2hhbm5lbCAqbV9kaXNwbGF5X2NoYW5uZWwgPSBudWxscHRy OworICAgICBTcGljZUlucHV0c0NoYW5uZWwgKm1faW5wdXRzX2NoYW5uZWwgPSBudWxscHRyOwor ICAgICBTcGljZVBsYXliYWNrQ2hhbm5lbCAqbV9wbGF5YmFja19jaGFubmVsOworKyAgICBTcGlj ZU1haW5DaGFubmVsICptX21haW5fY2hhbm5lbCA9IG51bGxwdHI7CisrCisrICAgIGd1bG9uZyBt X2FnZW50Tm90aWZ5SWQgPSAwOworKyAgICBib29sIG1fYWdlbnRDb25uZWN0ZWQgPSBmYWxzZTsK KysgICAgaW50IG1fZGlzcGxheUlkID0gMDsKKysgICAgUVRpbWVyICptX3Jlc2l6ZURlYm91bmNl ID0gbnVsbHB0cjsKKysgICAgUVNpemUgbV9sYXN0UmVxdWVzdGVkR3Vlc3RTaXplOworKyAgICBR U2l6ZUYgbV9hdmFpbGFibGVBcmVhOworKworKyAgICAvLyBzYW1lIGZsb29yIHZpcnQtdmlld2Vy IHVzZXM7IGEgemVybyBzaXplIG1ha2VzIHNwaWNlLWd0ayBkcm9wIHRoZSBjb25maWcgd2l0aG91 dCBhIHdvcmQKKysgICAgc3RhdGljIGNvbnN0ZXhwciBRU2l6ZSBtaW5pbXVtR3Vlc3RTaXplID0g ezMyMCwgMjAwfTsKKyAKKyAgICAgaW50IG1fY3VycmVudF9idXR0b25fbWFzayA9IDA7CisgCist LSAKK0dpdExhYgorCisKK0Zyb20gZDgzNWQ5Yjk0ZWQwM2FiOGMyMjFmNWMxZjA1NWRjM2FkMjY2 MmE1ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9udXJhbHAgU0VaRVIgPHRodW5k ZXJiaXJkdHJAZmVkb3JhcHJvamVjdC5vcmc+CitEYXRlOiBUdWUsIDE4IEF1ZyAyMDI2IDAxOjI3 OjIyICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBTY2FsZSB0aGUgZ3Vlc3QgZGlzcGxheSB0 byBmaXQgdGhlIHZpZXdlciB3aW5kb3cKKworU2lnbmVkLW9mZi1ieTogT251cmFscCBTRVpFUiA8 dGh1bmRlcmJpcmR0ckBmZWRvcmFwcm9qZWN0Lm9yZz4KKy0tLQorIHNyYy9wcmltYXJ5c3VyZmFj ZXJlbmRlcmVyLmNwcCB8IDE3ICsrKy0tLQorIHNyYy9xbWwvVk1WaWV3ZXJXaW5kb3cucW1sICAg ICB8IDk1ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KKyAyIGZpbGVzIGNoYW5n ZWQsIDc1IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3Jj L3ByaW1hcnlzdXJmYWNlcmVuZGVyZXIuY3BwIGIvc3JjL3ByaW1hcnlzdXJmYWNlcmVuZGVyZXIu Y3BwCitpbmRleCA0ZmZjOGNiLi4yYWQ1MDQ1IDEwMDY0NAorLS0tIGEvc3JjL3ByaW1hcnlzdXJm YWNlcmVuZGVyZXIuY3BwCisrKysgYi9zcmMvcHJpbWFyeXN1cmZhY2VyZW5kZXJlci5jcHAKK0BA IC05NCw3ICs5NCw3IEBAIFFTR05vZGUgKlByaW1hcnlTdXJmYWNlUmVuZGVyZXI6OnVwZGF0ZVBh aW50Tm9kZShRUXVpY2tXaW5kb3cgKndpbmRvdywgUVNHTm9kZSAqCisgeworICAgICBRTXV0ZXhM b2NrZXIgbG9ja2VyKCZtX2ZyYW1lTG9jayk7CisgCistICAgIGlmICghbV9mcmFtZVVwZGF0ZWQg fHwgbV9mcmFtZS5pc051bGwoKSB8fCBtX2ZyYW1lLndpZHRoKCkgPD0gMCB8fCBtX2ZyYW1lLmhl aWdodCgpIDw9IDApIHsKKysgICAgaWYgKG1fZnJhbWUuaXNOdWxsKCkgfHwgbV9mcmFtZS53aWR0 aCgpIDw9IDAgfHwgbV9mcmFtZS5oZWlnaHQoKSA8PSAwKSB7CisgICAgICAgICBkZWxldGUgb2xk Tm9kZTsKKyAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICB9CitAQCAtMTAzLDE0ICsxMDMs MTkgQEAgUVNHTm9kZSAqUHJpbWFyeVN1cmZhY2VSZW5kZXJlcjo6dXBkYXRlUGFpbnROb2RlKFFR dWlja1dpbmRvdyAqd2luZG93LCBRU0dOb2RlICoKKyAgICAgaWYgKCFub2RlKSB7CisgICAgICAg ICBub2RlID0gbmV3IFFTR1NpbXBsZVRleHR1cmVOb2RlKCk7CisgICAgICAgICBub2RlLT5zZXRP d25zVGV4dHVyZSh0cnVlKTsKKysgICAgICAgIC8vIHRoZSBub2RlIGRlZmF1bHRzIHRvIG5lYXJl c3QsIHdoaWNoIGFsaWFzZXMgYmFkbHkgb25jZSB0aGUgZnJhbWUgaXMgc2NhbGVkCisrICAgICAg ICBub2RlLT5zZXRGaWx0ZXJpbmcoUVNHVGV4dHVyZTo6TGluZWFyKTsKKyAgICAgfQorIAorLSAg ICBRU0dUZXh0dXJlICp0ZXh0dXJlID0gd2luZG93LT5jcmVhdGVUZXh0dXJlRnJvbUltYWdlKG1f ZnJhbWUpOworLSAgICBpZiAodGV4dHVyZSkgeworLSAgICAgICAgbm9kZS0+c2V0VGV4dHVyZSh0 ZXh0dXJlKTsKKy0gICAgICAgIG5vZGUtPnNldFJlY3QoYm91bmRzKTsKKy0gICAgICAgIG1fZnJh bWVVcGRhdGVkID0gZmFsc2U7CisrICAgIC8vIGEgcmVzaXplIHJlcGFpbnRzIHdpdGhvdXQgYSBu ZXcgZnJhbWUsIHNvIGtlZXAgc2hvd2luZyB0aGUgbGFzdCBvbmUgcmF0aGVyIHRoYW4gYmxhbmtp bmcKKysgICAgaWYgKG1fZnJhbWVVcGRhdGVkIHx8ICFub2RlLT50ZXh0dXJlKCkpIHsKKysgICAg ICAgIGlmIChRU0dUZXh0dXJlICp0ZXh0dXJlID0gd2luZG93LT5jcmVhdGVUZXh0dXJlRnJvbUlt YWdlKG1fZnJhbWUpKSB7CisrICAgICAgICAgICAgbm9kZS0+c2V0VGV4dHVyZSh0ZXh0dXJlKTsK KysgICAgICAgICAgICBtX2ZyYW1lVXBkYXRlZCA9IGZhbHNlOworKyAgICAgICAgfQorICAgICB9 CisgCisrICAgIG5vZGUtPnNldFJlY3QoYm91bmRzKTsKKysKKyAgICAgcmV0dXJuIG5vZGU7Cisg fQorZGlmZiAtLWdpdCBhL3NyYy9xbWwvVk1WaWV3ZXJXaW5kb3cucW1sIGIvc3JjL3FtbC9WTVZp ZXdlcldpbmRvdy5xbWwKK2luZGV4IGRhYzVhZGQuLmM3NDA0ZjAgMTAwNjQ0CistLS0gYS9zcmMv cW1sL1ZNVmlld2VyV2luZG93LnFtbAorKysrIGIvc3JjL3FtbC9WTVZpZXdlcldpbmRvdy5xbWwK K0BAIC0zLDEyICszLDE0IEBACisgCisgaW1wb3J0IFF0UXVpY2sKKyBpbXBvcnQgUXRRdWljay5D b250cm9scyBhcyBDb250cm9scworK2ltcG9ydCBRdFF1aWNrLldpbmRvdworIGltcG9ydCBvcmcu a2RlLmtpcmlnYW1pIGFzIEtpcmlnYW1pCisgaW1wb3J0IG9yZy5rZGUua2FydG9uCisgCisgS2ly aWdhbWkuQXBwbGljYXRpb25XaW5kb3cgeworICAgICBpZDogdmlld2VyV2luZG93CisgICAgIHJl cXVpcmVkIHByb3BlcnR5IERvbWFpbiBkb21haW4KKysgICAgcHJvcGVydHkgYm9vbCBpbml0aWFs U2l6ZUFwcGxpZWQ6IGZhbHNlCisgICAgIAorICAgICB0aXRsZTogZG9tYWluID8gaTE4bmMoIiUx IGlzIHRoZSBuYW1lIG9mIHRoZSB2aXJ0dWFsIG1hY2hpbmUiLCAiVk0gVmlld2VyIC0gJTEiLCBk b21haW4uY29uZmlnLm5hbWUpIDogaTE4bigiVk0gVmlld2VyIikKKyAgICAgCitAQCAtMjAsMTYg KzIyLDI4IEBAIEtpcmlnYW1pLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAgIGRvbWFpblZp ZXdlci5kaXNjb25uZWN0RnJvbVNwaWNlKCk7CisgICAgIH0KKyAKKysgICAgZnVuY3Rpb24gYXBw bHlJbml0aWFsU2l6ZSgpIHsKKysgICAgICAgIGlmIChpbml0aWFsU2l6ZUFwcGxpZWQKKysgICAg ICAgICAgICB8fCB2aWV3ZXJXaW5kb3cudmlzaWJpbGl0eSAhPT0gV2luZG93LldpbmRvd2VkCisr ICAgICAgICAgICAgfHwgZG9tYWluVmlld2VyLmltcGxpY2l0V2lkdGggPD0gMAorKyAgICAgICAg ICAgIHx8IGRvbWFpblZpZXdlci5pbXBsaWNpdEhlaWdodCA8PSAwKSB7CisrICAgICAgICAgICAg cmV0dXJuCisrICAgICAgICB9CisrICAgICAgICBpbml0aWFsU2l6ZUFwcGxpZWQgPSB0cnVlCisr CisrICAgICAgICBjb25zdCBkcHIgPSBkb21haW5WaWV3ZXIuZHBySGVscGVyLmRldmljZVBpeGVs UmF0aW8KKysgICAgICAgIHZpZXdlcldpbmRvdy53aWR0aCA9IE1hdGgubWluKFNjcmVlbi5kZXNr dG9wQXZhaWxhYmxlV2lkdGgsIGRvbWFpblZpZXdlci5pbXBsaWNpdFdpZHRoIC8gZHByKQorKyAg ICAgICAgdmlld2VyV2luZG93LmhlaWdodCA9IE1hdGgubWluKFNjcmVlbi5kZXNrdG9wQXZhaWxh YmxlSGVpZ2h0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFp blZpZXdlci5pbXBsaWNpdEhlaWdodCAvIGRwciArIHBhZ2VTdGFjay5nbG9iYWxUb29sQmFyLmhl aWdodCkKKysgICAgfQorKworICAgICBDb25uZWN0aW9ucyB7CisgICAgICAgICB0YXJnZXQ6IGRv bWFpblZpZXdlcgorICAgICAgICAgZnVuY3Rpb24gb25JbXBsaWNpdFdpZHRoQ2hhbmdlZCgpIHsK Ky0gICAgICAgICAgICBpZiAoZG9tYWluVmlld2VyLmltcGxpY2l0V2lkdGggPiAwKQorLSAgICAg ICAgICAgICAgICB2aWV3ZXJXaW5kb3cud2lkdGggPSBkb21haW5WaWV3ZXIuaW1wbGljaXRXaWR0 aCAvIGRvbWFpblZpZXdlci5kcHJIZWxwZXIuZGV2aWNlUGl4ZWxSYXRpbworKyAgICAgICAgICAg IHZpZXdlcldpbmRvdy5hcHBseUluaXRpYWxTaXplKCkKKyAgICAgICAgIH0KKyAgICAgICAgIGZ1 bmN0aW9uIG9uSW1wbGljaXRIZWlnaHRDaGFuZ2VkKCkgeworLSAgICAgICAgICAgIGlmIChkb21h aW5WaWV3ZXIuaW1wbGljaXRIZWlnaHQgPiAwKQorLSAgICAgICAgICAgICAgICB2aWV3ZXJXaW5k b3cuaGVpZ2h0ID0gZG9tYWluVmlld2VyLmltcGxpY2l0SGVpZ2h0IC8gZG9tYWluVmlld2VyLmRw ckhlbHBlci5kZXZpY2VQaXhlbFJhdGlvCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArIHBhZ2VTdGFjay5nbG9iYWxUb29sQmFyLmhlaWdodAorKyAgICAgICAgICAgIHZp ZXdlcldpbmRvdy5hcHBseUluaXRpYWxTaXplKCkKKyAgICAgICAgIH0KKyAgICAgfQorIAorQEAg LTM5LDcgKzUzLDEwIEBAIEtpcmlnYW1pLkFwcGxpY2F0aW9uV2luZG93IHsKKyAKKyAgICAgICAg IGFjdGlvbnM6IFsKKyAgICAgICAgICAgICBLaXJpZ2FtaS5BY3Rpb24geworLSAgICAgICAgICAg ICAgICBpY29uLm5hbWU6ICJ2aWV3LWZ1bGxzY3JlZW4iCisrICAgICAgICAgICAgICAgIHRleHQ6 IHZpZXdlcldpbmRvdy52aXNpYmlsaXR5ID09PSBXaW5kb3cuRnVsbFNjcmVlbiA/IGkxOG4oIkV4 aXQgRnVsbCBTY3JlZW4iKSA6IGkxOG4oIkZ1bGwgU2NyZWVuIikKKysgICAgICAgICAgICAgICAg aWNvbi5uYW1lOiB2aWV3ZXJXaW5kb3cudmlzaWJpbGl0eSA9PT0gV2luZG93LkZ1bGxTY3JlZW4g PyAidmlldy1yZXN0b3JlIiA6ICJ2aWV3LWZ1bGxzY3JlZW4iCisrICAgICAgICAgICAgICAgIGNo ZWNrYWJsZTogdHJ1ZQorKyAgICAgICAgICAgICAgICBjaGVja2VkOiB2aWV3ZXJXaW5kb3cudmlz aWJpbGl0eSA9PT0gV2luZG93LkZ1bGxTY3JlZW4KKyAgICAgICAgICAgICAgICAgb25UcmlnZ2Vy ZWQ6IHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICh2aWV3ZXJXaW5kb3cudmlzaWJpbGl0eSA9 PT0gV2luZG93LkZ1bGxTY3JlZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3ZXJX aW5kb3cuc2hvd05vcm1hbCgpCitAQCAtNTAsMzUgKzY3LDUxIEBAIEtpcmlnYW1pLkFwcGxpY2F0 aW9uV2luZG93IHsKKyAgICAgICAgICAgICB9CisgICAgICAgICBdCisgCistICAgICAgICBEb21h aW5WaWV3ZXIgeworLSAgICAgICAgICAgIGlkOiBkb21haW5WaWV3ZXIKKysgICAgICAgIFJlY3Rh bmdsZSB7CisrICAgICAgICAgICAgaWQ6IHZpZXdlckFyZWEKKyAKKy0gICAgICAgICAgICBwcm9w ZXJ0eSBEZXZpY2VQaXhlbFJhdGlvSGVscGVyIGRwckhlbHBlcjogRGV2aWNlUGl4ZWxSYXRpb0hl bHBlciB7CistICAgICAgICAgICAgICAgIHdpbmRvdzogZG9tYWluVmlld2VyLldpbmRvdy53aW5k b3cKKy0gICAgICAgICAgICB9CisrICAgICAgICAgICAgYW5jaG9ycy5maWxsOiBwYXJlbnQKKysg ICAgICAgICAgICBjb2xvcjogImJsYWNrIgorIAorLSAgICAgICAgICAgIC8vIFByZS1jYW5jZWwg b3V0IHNjYWxpbmcsIGFuZCBzaG93IFZNIHBpeGVscyBhdCAxOjEKKy0gICAgICAgICAgICAvLyBm YWxscyBiYWNrIHRvIGEgZGVmYXVsdCBzaXplIChoYXJkY29kZWQpIHVudGlsIHRoZSBmaXJzdCBH TCBzY2Fub3V0IHNldHMgaW1wbGljaXRXaWR0aC9IZWlnaHQuCistICAgICAgICAgICAgLy8gZml4 ZXMgMCB3aWR0aC9oZWlnaHQgYnVnLgorLSAgICAgICAgICAgIHdpZHRoOiBpbXBsaWNpdFdpZHRo ID4gMCA/IGltcGxpY2l0V2lkdGggLyBkcHJIZWxwZXIuZGV2aWNlUGl4ZWxSYXRpbyA6IEtpcmln YW1pLlVuaXRzLmdyaWRVbml0ICogNTYuNTUKKy0gICAgICAgICAgICBoZWlnaHQ6IGltcGxpY2l0 SGVpZ2h0ID4gMCA/IGltcGxpY2l0SGVpZ2h0IC8gZHBySGVscGVyLmRldmljZVBpeGVsUmF0aW8g OiBLaXJpZ2FtaS5Vbml0cy5ncmlkVW5pdCAqIDM2CisrICAgICAgICAgICAgRG9tYWluVmlld2Vy IHsKKysgICAgICAgICAgICAgICAgaWQ6IGRvbWFpblZpZXdlcgorIAorLSAgICAgICAgICAgIGRv bWFpbjogdmlld2VyV2luZG93LmRvbWFpbgorKyAgICAgICAgICAgICAgICBhbmNob3JzLmNlbnRl ckluOiBwYXJlbnQKKyAKKy0gICAgICAgICAgICBmb2N1czogdHJ1ZQorLSAgICAgICAgICAgIGFj dGl2ZUZvY3VzT25UYWI6IHRydWUKKy0gICAgICAgICAgICBvbkFjdGl2ZUZvY3VzQ2hhbmdlZDog eworLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiRG9tYWluVmlld2VyIGZvY3VzIGNoYW5n ZWQgdG86IiwgYWN0aXZlRm9jdXMpCistICAgICAgICAgICAgfQorLSAgICAgICAgICAgIG9uRm9j dXNDaGFuZ2VkOiB7CistICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJEb21haW5WaWV3ZXIg Zm9jdXMgcHJvcGVydHkgY2hhbmdlZCB0bzoiLCBmb2N1cykKKy0gICAgICAgICAgICB9CistICAg ICAgICAgICAgTW91c2VBcmVhIHsKKy0gICAgICAgICAgICAgICAgYW5jaG9ycy5maWxsOiBwYXJl bnQKKy0gICAgICAgICAgICAgICAgb25QcmVzc2VkOiB7CistICAgICAgICAgICAgICAgICAgICBj b25zb2xlLmxvZygiTW91c2VBcmVhIGNsaWNrLiBnaXZpbmcgZm9jdXMgdG8gZG9tYWludmlld2Vy IikKKy0gICAgICAgICAgICAgICAgICAgIHBhcmVudC5mb3JjZUFjdGl2ZUZvY3VzKCkKKy0gICAg ICAgICAgICAgICAgICAgIG1vdXNlLmFjY2VwdGVkID0gZmFsc2UKKysgICAgICAgICAgICAgICAg cHJvcGVydHkgRGV2aWNlUGl4ZWxSYXRpb0hlbHBlciBkcHJIZWxwZXI6IERldmljZVBpeGVsUmF0 aW9IZWxwZXIgeworKyAgICAgICAgICAgICAgICAgICAgd2luZG93OiBkb21haW5WaWV3ZXIuV2lu ZG93LndpbmRvdworKyAgICAgICAgICAgICAgICB9CisrCisrICAgICAgICAgICAgICAgIHJlYWRv bmx5IHByb3BlcnR5IHJlYWwgbmF0aXZlV2lkdGg6IGltcGxpY2l0V2lkdGggPiAwID8gaW1wbGlj aXRXaWR0aCAvIGRwckhlbHBlci5kZXZpY2VQaXhlbFJhdGlvIDogMAorKyAgICAgICAgICAgICAg ICByZWFkb25seSBwcm9wZXJ0eSByZWFsIG5hdGl2ZUhlaWdodDogaW1wbGljaXRIZWlnaHQgPiAw ID8gaW1wbGljaXRIZWlnaHQgLyBkcHJIZWxwZXIuZGV2aWNlUGl4ZWxSYXRpbyA6IDAKKysgICAg ICAgICAgICAgICAgcmVhZG9ubHkgcHJvcGVydHkgcmVhbCBmaXRTY2FsZTogbmF0aXZlV2lkdGgg PiAwICYmIG5hdGl2ZUhlaWdodCA+IDAKKysgICAgICAgICAgICAgICAgICAgID8gTWF0aC5taW4o dmlld2VyQXJlYS53aWR0aCAvIG5hdGl2ZVdpZHRoLCB2aWV3ZXJBcmVhLmhlaWdodCAvIG5hdGl2 ZUhlaWdodCkKKysgICAgICAgICAgICAgICAgICAgIDogMS4wCisrCisrICAgICAgICAgICAgICAg IC8vIHRoZSBjb250YWluZXIgc2l6ZSwgbm90IHRoZSBmaXR0ZWQgc2l6ZSwgb3IgdGhlIGd1ZXN0 IG5ldmVyIGZpbGxzIHRoZSB3aW5kb3cKKysgICAgICAgICAgICAgICAgYXZhaWxhYmxlQXJlYTog UXQuc2l6ZSh2aWV3ZXJBcmVhLndpZHRoLCB2aWV3ZXJBcmVhLmhlaWdodCkKKysKKysgICAgICAg ICAgICAgICAgLy8gc2l6ZWQgcmF0aGVyIHRoYW4gc2NhbGVkLCB0aGUgbW91c2UgbWFwcGluZyBk aXZpZGVzIGJ5IHdpZHRoKCkKKysgICAgICAgICAgICAgICAgd2lkdGg6IG5hdGl2ZVdpZHRoID4g MCA/IE1hdGgucm91bmQobmF0aXZlV2lkdGggKiBmaXRTY2FsZSkgOiBLaXJpZ2FtaS5Vbml0cy5n cmlkVW5pdCAqIDU2LjU1CisrICAgICAgICAgICAgICAgIGhlaWdodDogbmF0aXZlSGVpZ2h0ID4g MCA/IE1hdGgucm91bmQobmF0aXZlSGVpZ2h0ICogZml0U2NhbGUpIDogS2lyaWdhbWkuVW5pdHMu Z3JpZFVuaXQgKiAzNgorKworKyAgICAgICAgICAgICAgICBkb21haW46IHZpZXdlcldpbmRvdy5k b21haW4KKysKKysgICAgICAgICAgICAgICAgZm9jdXM6IHRydWUKKysgICAgICAgICAgICAgICAg YWN0aXZlRm9jdXNPblRhYjogdHJ1ZQorKyAgICAgICAgICAgICAgICBvbkFjdGl2ZUZvY3VzQ2hh bmdlZDogeworKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkRvbWFpblZpZXdlciBm b2N1cyBjaGFuZ2VkIHRvOiIsIGFjdGl2ZUZvY3VzKQorKyAgICAgICAgICAgICAgICB9CisrICAg ICAgICAgICAgICAgIG9uRm9jdXNDaGFuZ2VkOiB7CisrICAgICAgICAgICAgICAgICAgICBjb25z b2xlLmxvZygiRG9tYWluVmlld2VyIGZvY3VzIHByb3BlcnR5IGNoYW5nZWQgdG86IiwgZm9jdXMp CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgTW91c2VBcmVhIHsKKysgICAg ICAgICAgICAgICAgICAgIGFuY2hvcnMuZmlsbDogcGFyZW50CisrICAgICAgICAgICAgICAgICAg ICBvblByZXNzZWQ6IChtb3VzZSkgPT4geworKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNv bGUubG9nKCJNb3VzZUFyZWEgY2xpY2suIGdpdmluZyBmb2N1cyB0byBkb21haW52aWV3ZXIiKQor KyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5mb3JjZUFjdGl2ZUZvY3VzKCkKKysgICAg ICAgICAgICAgICAgICAgICAgICBtb3VzZS5hY2NlcHRlZCA9IGZhbHNlCisrICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICB9 CistLSAKK0dpdExhYgorCgpkaWZmIC0tZ2l0IGEva2FydG9uLnNwZWMgYi9rYXJ0b24uc3BlYwpp bmRleCBkZDAwZTYxLi42N2E4MTFkIDEwMDY0NAotLS0gYS9rYXJ0b24uc3BlYworKysgYi9rYXJ0 b24uc3BlYwpAQCAtMSw1ICsxLDUgQEAKLSVnbG9iYWwgZ2l0Y29tbWl0IGE0MjYxMzJjZjMxZGEz YjVhNGMxMDljYWZiYTAyY2M4N2QwYWQyN2EKLSVnbG9iYWwgZ2l0ZGF0ZSAyMDI2MDgwNS4xNDMz NTAKKyVnbG9iYWwgZ2l0Y29tbWl0IDU1NjQ1OGVjYWMwYzAzNDE4YmEzNjYxMWJmNzQzMDk1N2Jm NDBhZmIKKyVnbG9iYWwgZ2l0ZGF0ZSAyMDI2MDgxOC4xMDQ0MzYKICVnbG9iYWwgc2hvcnRjb21t aXQgJShjPSV7Z2l0Y29tbWl0fTsgZWNobyAke2M6MDo3fSkKIAogTmFtZTogICAgICAgICAgIGth cnRvbgpAQCAtOSwxMiArOSwxNyBAQCBTdW1tYXJ5OiAgICAgICAgQSBMaWJ2aXJ0LWJhc2VkIFZp cnR1YWwgTWFjaGluZSBNYW5hZ2VyIGZvciBLREUKIAogTGljZW5zZTogICAgICAgIEJTRC0yLUNs YXVzZSBBTkQgQ0MtQlktU0EtNC4wIEFORCBDQzAtMS4wIEFORCBHUEwtMy4wLW9yLWxhdGVyCiAj IEl0J2xsIGNoYW5nZSBhdCBzb21lIHBvaW50Ci1VUkw6ICAgICAgICAgICAgaHR0cHM6Ly9pbnZl bnQua2RlLm9yZy9zaXR0ZXIvJXtuYW1lfQorVVJMOiAgICAgICAgICAgIGh0dHBzOi8vaW52ZW50 LmtkZS5vcmcvc3lzdGVtLyV7bmFtZX0KIFNvdXJjZTA6ICAgICAgICAle3VybH0vLS9hcmNoaXZl LyV7Z2l0Y29tbWl0fS8le25hbWV9LSV7Z2l0Y29tbWl0fS50YXIuZ3oKIAogIyBEb3duc3RyZWFt IFBhdGNoZXMKIFBhdGNoMDogICAgICAgICBod2FjY2VsLWRlZmF1bHQtb2ZmLnBhdGNoCiAKKyMg VXBzdHJlYW0gUGF0Y2hlcworIyBSZXNpemUgdGhlIGd1ZXN0IGRpc3BsYXkgdG8gZm9sbG93IHRo ZSB2aWV3ZXIgd2luZG93CisjIGh0dHBzOi8vaW52ZW50LmtkZS5vcmcvc3lzdGVtL2thcnRvbi8t L21lcmdlX3JlcXVlc3RzLzYzCitQYXRjaDEwMDogICAgICAgNjMucGF0Y2gKKwogIyBxZW11IGlz bid0IGF2YWlsYWJsZSBvbiAzMi1iaXQKIEV4Y2x1ZGVBcmNoOiAle2l4ODZ9CiAKQEAgLTc2LDYg KzgxLDkgQEAgZGVza3RvcC1maWxlLXZhbGlkYXRlICV7YnVpbGRyb290fS8le19kYXRhZGlyfS9h cHBsaWNhdGlvbnMvb3JnLmtkZS5rYXJ0b24uZGVza3QKICV7X2tmNl9kYXRhZGlyfS9xbG9nZ2lu Zy1jYXRlZ29yaWVzNi9rYXJ0b24uY2F0ZWdvcmllcwogCiAlY2hhbmdlbG9nCisqIEZyaSBBdWcg MjEgMjAyNiBTdGV2ZSBDb3NzZXR0ZSA8ZmFyY2hvcmRAZ21haWwuY29tPiAtIDAuMV4yMDI2MDgx OC4xMDQ0MzYuNTU2NDU4ZS0xCistIExhdGVzdCBnaXQgc25hcHNob3QgKyB1cHN0cmVhbSBwYXRj aAorCiAqIE1vbiBBdWcgMTcgMjAyNiBTdGV2ZSBDb3NzZXR0ZSA8ZmFyY2hvcmRAZ21haWwuY29t PiAtIDAuMV4yMDI2MDgwNS4xNDMzNTAuYTQyNjEzMi0xCiAtIFVwZGF0ZWQgdG8gYSBuZXdlciBn aXQgY29tbWl0CiAKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBkYjc1NjAy Li5mMGE3NmM2IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAK LVNIQTUxMiAoa2FydG9uLWE0MjYxMzJjZjMxZGEzYjVhNGMxMDljYWZiYTAyY2M4N2QwYWQyN2Eu dGFyLmd6KSA9IGJlOTJjZWVjNzA5N2E2YzJmNDc0NmUzMzVlOTAyM2EyNTBlMDk1ZGM2MDM3MTMw NTNiMzMyMWFlMDY5YWRlMmQ1ZTlhZmU5ZTMwZTU5MjZlNTk1MmEzZDEyZWY1YWNhNWFmNTM2OTJk NWE0MjhiNmJmNDYyNjI3MjA1ZmM4YWVkCitTSEE1MTIgKGthcnRvbi01NTY0NThlY2FjMGMwMzQx OGJhMzY2MTFiZjc0MzA5NTdiZjQwYWZiLnRhci5neikgPSBhNmEyZjE4YWVmYmJjZmJkMDVhNjIw Zjg1Y2IxODljOGRjMTUyZTU3MzA2ZDE2YTE2NjllODljMGJmZjgxNjE5MGMzZTZiMTk2Y2VjMDZl MDkzNWRlZmM1ZjVlODEyMzQ3NGI5NWFiZjU5MWI1N2VhNDNjNTdiZDRhMzJlZWRhZQo=