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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Rebase to 7.9-branch snapshot 7.8.90.20150202. Date: Thu, 23 Jul 2026 18:31:40 GMT Message-ID: <178483150082.1.6278061579001256851.rpms-gdb-072837144cd6@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 072837144cd6fe153f540c555471dbbedc4e603f ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogMDcyODM3MTQ0Y2Q2ZmUxNTNmNTQwYzU1NTQ3MWRiYmVkYzRlNjAzZgog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNS0wMi0wMlQyMzowOTo0MiswMTowMAogICAg ICAgICAgICBTdGF0cyAgOiArMTA1NC8tMTAzMyBpbiAxNCBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMDcyODM3MTQ0 Y2Q2ZmUxNTNmNTQwYzU1NTQ3MWRiYmVkYzRlNjAzZj9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gNy45LWJyYW5jaCBzbmFwc2hvdCA3 LjguOTAuMjAxNTAyMDIuCgotIFRlbXBvcmFyaWx5IGRpc2FibGUgZGctZXh0cmFjdC1yZXN1bHRz LnB5IHRvIGZpeCBnZGIuc3VtIHNvcnRpbmcuCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUg Yi8uZ2l0aWdub3JlCmluZGV4IGQ5OGQ4NTAuLjUzMmI4Y2IgMTAwNjQ0Ci0tLSBhLy5naXRpZ25v cmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5 dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy44LjUwLjIwMTUwMTA4LnRhci54egorL2dkYi03 LjguOTAuMjAxNTAyMDIudGFyLnh6CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNS1CRUEtdGVzdHN1aXRl LnBhdGNoIGIvZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBhdGNoCmluZGV4IDdjNTc3OGMuLmIzMzhi ZjcgMTAwNjQ0Ci0tLSBhL2dkYi02LjUtQkVBLXRlc3RzdWl0ZS5wYXRjaAorKysgYi9nZGItNi41 LUJFQS10ZXN0c3VpdGUucGF0Y2gKQEAgLTQ3NCw3ICs0NzQsNyBAQCBJbmRleDogZ2RiLTcuNi9n ZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLnNoCiArICAgIGxvY2FsIEZBSUxV UkVTPTAKICsgICAgCiArICAgIG11c3ROb3RIYXZlICc/PycgfHwgKChGQUlMVVJFUysrKSkKLSsg ICAgbXVzdEhhdmVDb3JyZWN0QW1vdW50IDEyIHRocmVhZGNyYXNoLmM6IHx8ICgoRkFJTFVSRVMr KykpCisrICAgIG11c3RIYXZlQ29ycmVjdEFtb3VudCAxMSB0aHJlYWRjcmFzaC5jOiB8fCAoKEZB SUxVUkVTKyspKQogKyAgICAKICsgICAgbXVzdEhhdmVTZXZlblRocmVhZHMgfHwgKChGQUlMVVJF UysrKSkKICsgICAgbXVzdEhhdmVTZXF1ZW5jZSBzbGVlcCAibWFrZVN5c2NhbGwgKGlnbm9yZWQ9 IiB8fCAoKEZBSUxVUkVTKyspKQoKZGlmZiAtLWdpdCBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tp bmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0Y2ggYi9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5n LXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoCmluZGV4IDhjNDE2MmEuLjAyM2E3ZmYgMTAwNjQ0 Ci0tLSBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0 Y2gKKysrIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRzMi5w YXRjaApAQCAtMjEsMTAgKzIxLDEwIEBACiAKIAlQb3J0IHRvIEdEQi02LjhwcmUuCiAKLUluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYworSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5v cmlnL2dkYi9pbmZydW4uYwkyMDE0LTEyLTI4IDIxOjMzOjQxLjMwMTU0Nzg4MCArMDEwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMDEgMTc6MDA6MDguMjEy OTIwNjkwICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9pbmZydW4uYwky MDE1LTAxLTI1IDA4OjM2OjE2LjY1MTcxNjE1OSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMjUgMDg6MzY6MjYuNDkxNzU4NTcxICswMTAwCiBAQCAt ODYsNyArODYsNyBAQCBzdGF0aWMgdm9pZCBmb2xsb3dfaW5mZXJpb3JfcmVzZXRfYnJlYWtwCiAg c3RhdGljIHZvaWQgc2V0X3NjaGVkbG9ja19mdW5jIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHks CiAgCQkJCXN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mcnVuLmMKICAKICAgIC8qIFdhaXQgZm9y IGl0IHRvIHN0b3AgKGlmIG5vdCBzdGFuZGFsb25lKQogICAgICAgYW5kIGluIGFueSBjYXNlIGRl Y29kZSB3aHkgaXQgc3RvcHBlZCwgYW5kIGFjdCBhY2NvcmRpbmdseS4gICovCi1AQCAtNTY3NCwx NCArNTY5MCwxNiBAQCBzd2l0Y2hfYmFja190b19zdGVwcGVkX3RocmVhZCAoc3RydWN0IGV4CitA QCAtNTY4NCwxNCArNTcwMCwxNiBAQCBzd2l0Y2hfYmFja190b19zdGVwcGVkX3RocmVhZCAoc3Ry dWN0IGV4CiAgCiAgLyogSXMgdGhyZWFkIFRQIGluIHRoZSBtaWRkbGUgb2Ygc2luZ2xlLXN0ZXBw aW5nPyAgKi8KICAKQEAgLTE0MiwxMSArMTQyLDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9pbmZydW4uYwogIH0KICAKICAvKiBJbmZlcmlvciBoYXMgc3RlcHBlZCBpbnRvIGEg c3Vicm91dGluZSBjYWxsIHdpdGggc291cmNlIGNvZGUgdGhhdAotSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIv bGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L2xpbnV4LW5hdC5jCTIwMTQtMTItMjggMjE6MzM6NDEuMzAzNTQ3ODgyICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMJMjAxNC0xMi0yOCAyMTozMzo0NS44Mjc1 NTE2ODcgKzAxMDAKLUBAIC0yNTE5LDcgKzI1MTksMTEgQEAgc3RhdGljIGludAorLS0tIGdkYi03 LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNS0wMS0yNSAwODozNjoxNi42 NTM3MTYxNjggKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9saW51eC1uYXQuYwky MDE1LTAxLTI1IDA4OjM2OjI2LjQ5Mjc1ODU3NiArMDEwMAorQEAgLTI2NDgsNyArMjY0OCwxMSBA QCBzdGF0aWMgaW50CiAgc2VsZWN0X3NpbmdsZXN0ZXBfbHdwX2NhbGxiYWNrIChzdHJ1Y3QgbHdw X2luZm8gKmxwLCB2b2lkICpkYXRhKQogIHsKICAgIGlmIChscC0+bGFzdF9yZXN1bWVfa2luZCA9 PSByZXN1bWVfc3RlcApAQCAtMTU5LDEwICsxNTksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2xpbnV4LW5hdC5jCiAgICAgIHJldHVybiAxOwogICAgZWxzZQogICAgICByZXR1 cm4gMDsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuaAorSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDE0LTEyLTI4IDIxOjMzOjQx LjMwNDU0Nzg4MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5o CTIwMTQtMTItMjggMjE6MzM6NDUuODI3NTUxNjg3ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNS5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDE1LTAxLTI1IDA4OjM2OjE2LjY1MzcxNjE2OCAr MDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5oCTIwMTUtMDEtMjUg MDg6MzY6NDQuOTQ4ODM4MTI2ICswMTAwCiBAQCAtMTgsNiArMTgsNyBAQAogICAgIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KICAKQEAgLTE3MSwyMSArMTcxLDIxIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9saW51eC1uYXQuaAogIAogICNpbmNsdWRlIDxzaWduYWwuaD4KICAKLUBAIC01OSw4 ICs2MCw4IEBAIHN0cnVjdCBsd3BfaW5mbwotICAgLyogSWYgbm9uLXplcm8sIGEgcGVuZGluZyB3 YWl0IHN0YXR1cy4gICovCi0gICBpbnQgc3RhdHVzOworQEAgLTg4LDggKzg5LDggQEAgc3RydWN0 IGx3cF9pbmZvCisgICAgICBydW5uaW5nIGFuZCBub3Qgc3RlcHBpbmcsIHRoaXMgaXMgMC4gICov CisgICBDT1JFX0FERFIgc3RvcF9wYzsKICAKIC0gIC8qIE5vbi16ZXJvIGlmIHdlIHdlcmUgc3Rl cHBpbmcgdGhpcyBMV1AuICAqLwogLSAgaW50IHN0ZXA7CiArICAvKiBUaGUga2luZCBvZiBzdGVw cGluZyBvZiB0aGlzIExXUC4gICovCiArICBlbnVtIHJlc3VtZV9zdGVwIHN0ZXA7CiAgCi0gICAv KiBTVE9QUEVEX0JZX1dBVENIUE9JTlQgaXMgbm9uLXplcm8gaWYgdGhpcyBMV1Agc3RvcHBlZCB3 aXRoIGEgZGF0YQotICAgICAgd2F0Y2hwb2ludCB0cmFwLiAgKi8KLUluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9pbmZydW4uaAorICAgLyogVGhlIHJlYXNvbiB0aGUgTFdQIGxhc3Qgc3Rv cHBlZCwgaWYgd2UgbmVlZCB0byB0cmFjayBpdAorICAgICAgKGJyZWFrcG9pbnQsIHdhdGNocG9p bnQsIGV0Yy4pICAqLworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pbmZydW4uaAkyMDE0 LTEyLTI4IDIxOjMzOjQ1LjgyNzU1MTY4NyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2luZnJ1bi5oCTIwMTQtMTItMjggMjE6MzQ6MTMuNTE2NTc0OTgxICswMTAwCistLS0gZ2Ri LTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9pbmZydW4uaAkyMDE1LTAxLTI1IDA4OjM2OjE2LjY1 NDcxNjE3MiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5oCTIwMTUt MDEtMjUgMDg6MzY6MjYuNDkzNzU4NTgwICswMTAwCiBAQCAtOTIsNyArOTIsMTQgQEAgZXh0ZXJu IHZvaWQgcHJvY2VlZCAoQ09SRV9BRERSLCBlbnVtIGdkYgogIAogIC8qIFRoZSBgcmVzdW1lJyBy b3V0aW5lIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBzcGVjaWFsIGNpcmN1bXN0YW5jZXMuCkBA IC0yMDIsMTAgKzIwMiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mcnVu LmgKICAKICAvKiBSZXR1cm4gYSBwdGlkIHJlcHJlc2VudGluZyB0aGUgc2V0IG9mIHRocmVhZHMg dGhhdCB3ZSB3aWxsIHByb2NlZWQsCiAgICAgaW4gdGhlIHBlcnNwZWN0aXZlIG9mIHRoZSB1c2Vy L2Zyb250ZW5kLiAgKi8KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLnRocmVhZHMvc2lnbmFsLXdoaWxlLXN0ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4 cAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9z aWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv c2lnbmFsLXdoaWxlLXN0ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4cAkyMDE0LTEyLTI4 IDIxOjMzOjQxLjMwNDU0Nzg4MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10 aHJlYWQuZXhwCTIwMTQtMTItMjggMjE6MzM6NDUuODI3NTUxNjg3ICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2lnbmFsLXdoaWxl LXN0ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4cAkyMDE1LTAxLTI1IDA4OjM2OjE2LjY1 NDcxNjE3MiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rlc3RzdWl0ZS9nZGIu dGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhwCTIw MTUtMDEtMjUgMDg6MzY6MjYuNDkzNzU4NTgwICswMTAwCiBAQCAtOTcsNyArOTcsNyBAQCBnZGJf dGVzdCAic2V0IGRlYnVnIGluZnJ1biAxIgogIAogIGdkYl90ZXN0IFwKCmRpZmYgLS1naXQgYS9n ZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2ggYi9nZGItNi44LWF0 dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gKaW5kZXggYmQ1ZDA5Yy4uZmQ2NjA3 MyAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBh dGNoCisrKyBiL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaApA QCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQu YworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE1LTAxLTA1 IDIyOjUyOjAxLjExNTk3ODAyNiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xp bnV4LW5hdC5jCTIwMTUtMDEtMDUgMjI6NTI6MjMuMTQ3MDc0NzEwICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNS5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjQyOjQ5LjM4 MTQwODg5OSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5jCTIw MTUtMDEtMjUgMDg6NDM6MTYuMzc4NTI1MzIyICswMTAwCiBAQCAtMTc0LDYgKzE3NCw5IEBAIGJs b2NrZWQuICAqLwogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyAqbGludXhfb3BzOwogIHN0YXRp YyBzdHJ1Y3QgdGFyZ2V0X29wcyBsaW51eF9vcHNfc2F2ZWQ7CkBAIC0xMiw3ICsxMiw3IEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogIC8qIFRoZSBtZXRob2Qg dG8gY2FsbCwgaWYgYW55LCB3aGVuIGEgbmV3IHRocmVhZCBpcyBhdHRhY2hlZC4gICovCiAgc3Rh dGljIHZvaWQgKCpsaW51eF9uYXRfbmV3X3RocmVhZCkgKHN0cnVjdCBsd3BfaW5mbyAqKTsKICAK LUBAIC05MTUsNiArOTE4LDcgQEAgbGludXhfbmF0X3Bvc3RfYXR0YWNoX3dhaXQgKHB0aWRfdCBw dGlkLAorQEAgLTkyNCw2ICs5MjcsNyBAQCBsaW51eF9uYXRfcG9zdF9hdHRhY2hfd2FpdCAocHRp ZF90IHB0aWQsCiAgICAgICAgaWYgKGRlYnVnX2xpbnV4X25hdCkKICAJZnByaW50Zl91bmZpbHRl cmVkIChnZGJfc3RkbG9nLAogIAkJCSAgICAiTE5QQVc6IEF0dGFjaGluZyB0byBhIHN0b3BwZWQg cHJvY2Vzc1xuIik7CkBAIC0yMCw3ICsyMCw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9saW51eC1uYXQuYwogIAogICAgICAgIC8qIFRoZSBwcm9jZXNzIGlzIGRlZmluaXRlbHkg c3RvcHBlZC4gIEl0IGlzIGluIGEgam9iIGNvbnRyb2wKICAJIHN0b3AsIHVubGVzcyB0aGUga2Vy bmVsIHByZWRhdGVzIHRoZSBUQVNLX1NUT1BQRUQgLwotQEAgLTEzMzcsNiArMTM0MSw5IEBAIGdl dF9wZW5kaW5nX3N0YXR1cyAoc3RydWN0IGx3cF9pbmZvICpscCwKK0BAIC0xNDI0LDYgKzE0Mjgs OSBAQCBnZXRfcGVuZGluZ19zdGF0dXMgKHN0cnVjdCBsd3BfaW5mbyAqbHAsCiAgCQkJICAgIGdk Yl9zaWduYWxfdG9fc3RyaW5nIChzaWdubykpOwogICAgICB9CiAgCkBAIC0zMCw3ICszMCw3IEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogICAgcmV0dXJuIDA7 CiAgfQogIAotQEAgLTE0NTAsNiArMTQ1Nyw4IEBAIGxpbnV4X25hdF9kZXRhY2ggKHN0cnVjdCB0 YXJnZXRfb3BzICpvcHMKK0BAIC0xNTM3LDYgKzE1NDQsOCBAQCBsaW51eF9uYXRfZGV0YWNoIChz dHJ1Y3QgdGFyZ2V0X29wcyAqb3BzCiAgICAgIH0KICAgIGVsc2UKICAgICAgbGludXhfb3BzLT50 b19kZXRhY2ggKG9wcywgYXJncywgZnJvbV90dHkpOwpAQCAtMzgsOCArMzgsOCBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMKICsgIHBpZF93YXNfc3RvcHBlZCA9 IDA7CiAgfQogIAotIC8qIFJlc3VtZSBMUC4gICovCi1AQCAtMTYzMSw2ICsxNjQwLDE0IEBAIGxp bnV4X25hdF9yZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKKyAvKiBSZXN1bWUgZXhlY3V0 aW9uIG9mIHRoZSBpbmZlcmlvciBwcm9jZXNzLiAgSWYgU1RFUCBpcyBub256ZXJvLAorQEAgLTE3 NDEsNiArMTc1MCwxNCBAQCBsaW51eF9uYXRfcmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3Bz CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCkBAIC01NCw3ICs1NCw3IEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogICAgaWYgKHJlc3VtZV9tYW55KQogICAg ICBpdGVyYXRlX292ZXJfbHdwcyAocHRpZCwgbGludXhfbmF0X3Jlc3VtZV9jYWxsYmFjaywgbHAp OwogIAotQEAgLTM2OTYsNiArMzcxMyw4IEBAIGxpbnV4X25hdF9tb3Vybl9pbmZlcmlvciAoc3Ry dWN0IHRhcmdldF8KK0BAIC0zNzIzLDYgKzM3NDAsOCBAQCBsaW51eF9uYXRfbW91cm5faW5mZXJp b3IgKHN0cnVjdCB0YXJnZXRfCiAgCiAgICAvKiBMZXQgdGhlIGFyY2gtc3BlY2lmaWMgbmF0aXZl IGNvZGUga25vdyB0aGlzIHByb2Nlc3MgaXMgZ29uZS4gICovCiAgICBsaW51eF9uYXRfZm9yZ2V0 X3Byb2Nlc3MgKHBpZCk7CkBAIC02MywxMCArNjMsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIC8qIENvbnZlcnQgYSBuYXRpdmUvaG9zdCBz aWdpbmZvIG9iamVjdCwgaW50by9mcm9tIHRoZSBzaWdpbmZvIGluIHRoZQotSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5l eHAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv YXR0YWNoLXN0b3BwZWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTUtMDEt MDUgMjI6NTI6MDEuMTE1OTc4MDI2ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE1LTAxLTA1IDIyOjUy OjIzLjE0ODA3NDcxNCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE1LTAxLTI1IDA4OjQyOjQ5 LjM4MjQwODkwMyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rlc3RzdWl0ZS9n ZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNS0wMS0yNSAwODo0MzoxNi4zNzk1MjUz MjcgKzAxMDAKIEBAIC02MSw3ICs2MSw2NSBAQCBwcm9jIGNvcmVmdW5jIHsgdGhyZWFkdHlwZSB9 IHsKICAgICAgZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCiAgICAgIGdkYl9s b2FkICR7YmluZmlsZX0KQEAgLTEzNCwxMCArMTM0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCiAgICAg ICAgIAogICAgICBzZXQgdGVzdCAiJHRocmVhZHR5cGU6IGF0dGFjaDIgdG8gc3RvcHBlZCwgYWZ0 ZXIgc2V0dGluZyBmaWxlIgogICAgICBnZGJfdGVzdF9tdWx0aXBsZSAiYXR0YWNoICR0ZXN0cGlk IiAiJHRlc3QiIHsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYworSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pbmZydW4uYwkyMDE1LTAxLTA1IDIyOjQyOjQ4Ljc3 MzUwMTQyOSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZnJ1bi5jCTIwMTUt MDEtMDUgMjI6NTM6NDcuMjc0NDQzOTAzICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5v cmlnL2dkYi9pbmZydW4uYwkyMDE1LTAxLTI1IDA4OjQyOjQ5LjM4NTQwODkxNiArMDEwMAorKysr IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMjUgMDg6NDM6MTYuMzgx NTI1MzM1ICswMTAwCiBAQCAtNjAwLDYgKzYwMCwxMSBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9w cGVkLiAgVHJ5IFwic2V0IGRlCiAgCQkJCWNoaWxkX3BpZCk7CiAgCSAgICB9CgpkaWZmIC0tZ2l0 IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaCBiL2dkYi1hdHRhY2gtZmFpbC1y ZWFzb25zLTVvZjUucGF0Y2gKaW5kZXggZTZkOTEwMi4uMTgxOThjNSAxMDA2NDQKLS0tIGEvZ2Ri LWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAorKysgYi9nZGItYXR0YWNoLWZhaWwtcmVh c29ucy01b2Y1LnBhdGNoCkBAIC0zNywxMCArMzcsMTAgQEAgZ2RiL2dkYnNlcnZlci8KIAkobGlu dXhfY3JlYXRlX2luZmVyaW9yLCBsaW51eF90cmFjZWZvcmtfY2hpbGQpOiBDYWxsIGl0IGluc3Rl YWQgb2YKIAlkaXJlY3QgcHRyYWNlLgogCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv bmF0L2xpbnV4LXB0cmFjZS5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbmF0L2xp bnV4LXB0cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNS0wMS0wMSAyMTozODoxNC42OTEyMDkwOTQgKzAxMDAK LSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNS0wMS0w MSAyMTozOTozNC42NzAxNTc1MDYgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcv Z2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTAxLTI1IDA4OjM2OjU1LjcxMDg4NDUxMSArMDEw MAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTAx LTI1IDA4OjM4OjQzLjE1NzM0NzYyNyArMDEwMAogQEAgLTI1LDYgKzI1LDEwIEBACiAgCiAgI2lu Y2x1ZGUgPHN0ZGludC5oPgpAQCAtNjAsOCArNjAsOCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiArICBsaW51eF9wdHJhY2VfY3JlYXRlX3dhcm5p bmdzIChidWZmZXIpOwogIH0KICAKLSAjaWYgZGVmaW5lZCBfX2kzODZfXyB8fCBkZWZpbmVkIF9f eDg2XzY0X18KLUBAIC01NjgsNiArNTc0LDIyIEBAIGxpbnV4X3B0cmFjZV9pbml0X3dhcm5pbmdz ICh2b2lkKQorIC8qIFNlZSBsaW51eC1wdHJhY2UuaC4gICovCitAQCAtNTk1LDYgKzYwMSwyMiBA QCBsaW51eF9wdHJhY2VfaW5pdF93YXJuaW5ncyAodm9pZCkKICAgIGxpbnV4X3B0cmFjZV90ZXN0 X3JldF90b19ueCAoKTsKICB9CiAgCkBAIC04NCwyMyArODQsMjMgQEAgSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL25hdC9saW51eC1wdHJhY2UuYwogIC8qIFNldCBhZGRpdGlvbmFsIHB0 cmFjZSBmbGFncyB0byB1c2UuICBTb21lIHN1Y2ggZmxhZ3MgbWF5IGJlIGNoZWNrZWQKICAgICBi eSB0aGUgaW1wbGVtZW50YXRpb24gYWJvdmUuICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVk IGJlZm9yZQogICAgIGFueSBvdGhlciBmdW5jdGlvbiBpbiB0aGlzIGZpbGU7IG90aGVyd2lzZSB0 aGUgZmxhZ3MgbWF5IG5vdCB0YWtlCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0 L2xpbnV4LXB0cmFjZS5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbmF0L2xpbnV4 LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9u YXQvbGludXgtcHRyYWNlLmgJMjAxNS0wMS0wMSAyMTozODoyMS4yODAyMDQ4NDQgKzAxMDAKLSsr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0wMS0wMSAy MTozOTowMC41NDIxNzk1MTkgKzAxMDAKLUBAIC05MCw2ICs5MCw3IEBAIHN0cnVjdCBidWZmZXI7 CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAx NS0wMS0yNSAwODozNzowMi44MDA5MTUwNzEgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0wMS0yNSAwODozODoxNi41NjUyMzMwMDkgKzAx MDAKK0BAIC05OCw2ICs5OCw3IEBAIGV4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9hdHRhY2hfZmFp bF9yZWEKKyBleHRlcm4gY2hhciAqbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYXNvbl9zdHJp bmcgKHB0aWRfdCBwdGlkLCBpbnQgZXJyKTsKICAKLSBleHRlcm4gdm9pZCBsaW51eF9wdHJhY2Vf YXR0YWNoX2ZhaWxfcmVhc29uIChwaWRfdCBwaWQsIHN0cnVjdCBidWZmZXIgKmJ1ZmZlcik7CiAg ZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQpOwogK2V4dGVybiB2 b2lkIGxpbnV4X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKHN0cnVjdCBidWZmZXIgKmJ1ZmZlcik7 CiAgZXh0ZXJuIHZvaWQgbGludXhfZW5hYmxlX2V2ZW50X3JlcG9ydGluZyAocGlkX3QgcGlkLCBp bnQgYXR0YWNoZWQpOwogIGV4dGVybiB2b2lkIGxpbnV4X2Rpc2FibGVfZXZlbnRfcmVwb3J0aW5n IChwaWRfdCBwaWQpOwogIGV4dGVybiBpbnQgbGludXhfc3VwcG9ydHNfdHJhY2Vmb3JrICh2b2lk KTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWd1cmUuYWMKK0luZGV4OiBn ZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE1LTAxLTAxIDIxOjM4OjE0 LjY5MjIwOTA5NCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZ3VyZS5h YwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MTIwNDg0MyArMDEwMAotQEAgLTIxMTYsNiArMjExNiwx MCBAQCBjYXNlICRob3N0X29zIGluCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9j b25maWd1cmUuYWMJMjAxNS0wMS0yNSAwODozNjo1NS43MTI4ODQ1MjAgKzAxMDAKKysrKyBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9jb25maWd1cmUuYWMJMjAxNS0wMS0yNSAwODozNzowMi44MDE5 MTUwNzUgKzAxMDAKK0BAIC0yMTE3LDYgKzIxMTcsMTAgQEAgY2FzZSAkaG9zdF9vcyBpbgogIGVz YWMKICBBQ19ERUZJTkVfVU5RVU9URUQoR0RCSU5JVCwiJGdkYmluaXQiLFtUaGUgLmdkYmluaXQg ZmlsZW5hbWUuXSkKICAKQEAgLTExMSwxMCArMTExLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxlIG9wdGlvbmFsIGZlYXR1cmVzIHRo YXQgY2FuIGJlIGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBh IGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2dkYnNlcnZlci9jb25maWd1cmUuYWMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9n ZGJzZXJ2ZXIvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTUtMDEtMDEgMjE6Mzg6MTQuNjkz MjA5MDkzICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ric2VydmVyL2NvbmZp Z3VyZS5hYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MTIwNDg0MyArMDEwMAorLS0tIGdkYi03Ljgu OTAuMjAxNTAxMjUub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE1LTAxLTI1IDA4 OjM2OjU1LjcxMjg4NDUyMCArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnNl cnZlci9jb25maWd1cmUuYWMJMjAxNS0wMS0yNSAwODozNzowMi44MDE5MTUwNzUgKzAxMDAKIEBA IC00NjEsNiArNDYxLDEwIEBAIGlmICR3YW50X2lwYSA7IHRoZW4KICAgICBmaQogIGZpCkBAIC0x MjYsMTEgKzEyNiwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ric2VydmVy L2NvbmZpZ3VyZS5hYwogIEFDX1NVQlNUKEdEQlNFUlZFUl9ERVBGSUxFUykKICBBQ19TVUJTVChH REJTRVJWRVJfTElCUykKICBBQ19TVUJTVChzcnZfeG1sYnVpbHRpbikKLUluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKK0luZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE1LTAxLTAx IDIxOjM4OjE0LjY5NTIwOTA5MSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dk YnNlcnZlci9saW51eC1sb3cuYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MjIwNDg0MyArMDEwMAot QEAgLTUzNyw2ICs1MzcsMjkgQEAgYWRkX2x3cCAocHRpZF90IHB0aWQpCistLS0gZ2RiLTcuOC45 MC4yMDE1MDEyNS5vcmlnL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNS0wMS0yNSAwODoz Njo1NS43MTQ4ODQ1MjkgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2 ZXIvbGludXgtbG93LmMJMjAxNS0wMS0yNSAwODozNzowMi44MDM5MTUwODQgKzAxMDAKK0BAIC01 OTEsNiArNTkxLDI5IEBAIGFkZF9sd3AgKHB0aWRfdCBwdGlkKQogICAgcmV0dXJuIGx3cDsKICB9 CiAgCkBAIC0xNjAsNyArMTYwLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dk YnNlcnZlci9saW51eC1sb3cuYwogIC8qIFN0YXJ0IGFuIGluZmVyaW9yIHByb2Nlc3MgYW5kIHJl dHVybnMgaXRzIHBpZC4KICAgICBBTExBUkdTIGlzIGEgdmVjdG9yIG9mIHByb2dyYW0tbmFtZSBh bmQgYXJncy4gKi8KICAKLUBAIC01NzgsNyArNjAxLDcgQEAgbGludXhfY3JlYXRlX2luZmVyaW9y IChjaGFyICpwcm9ncmFtLCBjaAorQEAgLTYzMiw3ICs2NTUsNyBAQCBsaW51eF9jcmVhdGVfaW5m ZXJpb3IgKGNoYXIgKnByb2dyYW0sIGNoCiAgICBpZiAocGlkID09IDApCiAgICAgIHsKICAgICAg ICBjbG9zZV9tb3N0X2ZkcyAoKTsKQEAgLTE2OSwxMSArMTY5LDExIEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKICAKICAjaWZuZGVmIF9fQU5E Uk9JRF9fIC8qIEJpb25pYyBkb2Vzbid0IHVzZSBTSUdSVE1JTiB0aGUgd2F5IGdsaWJjIGRvZXMu ICAqLwogICAgICAgIHNpZ25hbCAoX19TSUdSVE1JTiArIDEsIFNJR19ERkwpOwotSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZi1wdHJhY2UuYworSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2luZi1wdHJhY2UuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvaW5mLXB0cmFjZS5jCTIwMTUtMDEtMDEgMjE6Mzg6MTQuNjk1MjA5MDkxICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mLXB0cmFjZS5jCTIwMTUtMDEtMDEg MjE6Mzg6MjEuMjgyMjA0ODQzICswMTAwCi1AQCAtNjYsNyArNjYsMTUgQEAgc3RhdGljIHZvaWQK Ky0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2luZi1wdHJhY2UuYwkyMDE1LTAxLTI1 IDA4OjM2OjU1LjcxNTg4NDUzMyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2lu Zi1wdHJhY2UuYwkyMDE1LTAxLTI1IDA4OjM3OjAyLjgwMzkxNTA4NCArMDEwMAorQEAgLTY3LDcg KzY3LDE1IEBAIHN0YXRpYyB2b2lkCiAgaW5mX3B0cmFjZV9tZSAodm9pZCkKICB7CiAgICAvKiAi VHJhY2UgbWUsIERyLiBNZW1vcnkhIiAgKi8KQEAgLTE4OSwxMSArMTg5LDExIEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmYtcHRyYWNlLmMKICB9CiAgCiAgLyogU3RhcnQgYSBu ZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAgRVhFQ19GSUxFIGlzIHRoZSBmaWxlIHRv Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMKK0luZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNS0wMS0wMSAyMTozODoxNC42OTcy MDkwOTAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwkyMDE1 LTAxLTAxIDIxOjM4OjIxLjI4MzIwNDg0MiArMDEwMAotQEAgLTEwOTksNiArMTA5OSw3IEBAIGxp bnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKKy0tLSBnZGItNy44LjkwLjIw MTUwMTI1Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6MzY6NTUuNzE3ODg0NTQx ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGludXgtbmF0LmMJMjAxNS0wMS0y NSAwODozNzo1Mi4wNTQxMjczNjIgKzAxMDAKK0BAIC0xMTA5LDYgKzExMDksNyBAQCBsaW51eF9u YXRfY3JlYXRlX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0CiAgI2lmZGVmIEhBVkVfUEVSU09OQUxJ VFkKICAgIGludCBwZXJzb25hbGl0eV9vcmlnID0gMCwgcGVyc29uYWxpdHlfc2V0ID0gMDsKICAj ZW5kaWYgLyogSEFWRV9QRVJTT05BTElUWSAqLwpAQCAtMjAxLDcgKzIwMSw3IEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogIAogICAgLyogVGhlIGZvcmtfY2hp bGQgbWVjaGFuaXNtIGlzIHN5bmNocm9ub3VzIGFuZCBjYWxscyB0YXJnZXRfd2FpdCwgc28KICAg ICAgIHdlIGhhdmUgdG8gbWFzayB0aGUgYXN5bmMgbW9kZS4gICovCi1AQCAtMTEyMyw3ICsxMTI0 LDEwIEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKK0BAIC0xMTMz LDcgKzExMzQsMTAgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldAog ICAgLyogTWFrZSBzdXJlIHdlIHJlcG9ydCBhbGwgc2lnbmFscyBkdXJpbmcgc3RhcnR1cC4gICov CiAgICBsaW51eF9uYXRfcGFzc19zaWduYWxzIChvcHMsIDAsIE5VTEwpOwogIApAQCAtMjEzLDcg KzIxMyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogIAog ICNpZmRlZiBIQVZFX1BFUlNPTkFMSVRZCiAgICBpZiAocGVyc29uYWxpdHlfc2V0KQotQEAgLTEx MzUsNiArMTEzOSwyNCBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0 CitAQCAtMTE0NSw2ICsxMTQ5LDI0IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVj dCB0YXJnZXQKICAJCSBzYWZlX3N0cmVycm9yIChlcnJubykpOwogICAgICB9CiAgI2VuZGlmIC8q IEhBVkVfUEVSU09OQUxJVFkgKi8KQEAgLTIzNywxMSArMjM3LDExIEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogKyAgICB9CiAgfQogIAotIHN0YXRpYyB2b2lk Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlnLmluCisgLyogQ2FsbGJhY2sg Zm9yIGxpbnV4X3Byb2NfYXR0YWNoX3RnaWRfdGhyZWFkcy4gIEF0dGFjaCB0byBQVElEIGlmIG5v dAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29uZmlnLmluCTIwMTUtMDEtMDEgMjE6 Mzg6MTQuNjk3MjA5MDkwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmln LmluCTIwMTUtMDEtMDEgMjE6Mzg6MjEuMjg0MjA0ODQyICswMTAwCistLS0gZ2RiLTcuOC45MC4y MDE1MDEyNS5vcmlnL2dkYi9jb25maWcuaW4JMjAxNS0wMS0yNSAwODozNjo1NS43MTg4ODQ1NDYg KzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWcuaW4JMjAxNS0wMS0yNSAw ODozNzowMi44MDU5MTUwOTIgKzAxMDAKIEBAIC0yMTMsNiArMjEzLDkgQEAKICAvKiBEZWZpbmUg aWYgbGlicnBtIGxpYnJhcnkgaXMgYmVpbmcgdXNlZC4gKi8KICAjdW5kZWYgSEFWRV9MSUJSUE0K QEAgLTI2MiwxMSArMjYyLDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25m aWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGxvY2FsZScgZnVuY3Rp b24uICovCiAgI3VuZGVmIEhBVkVfU0VUTE9DQUxFCiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvY29uZmln dXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jb25maWd1 cmUJMjAxNS0wMS0wMSAyMTozODoxNC43MDEyMDkwODcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9jb25maWd1cmUJMjAxNS0wMS0wMSAyMTozODoyMS4yODYyMDQ4NDAgKzAxMDAK LUBAIC0xMzI2OSw2ICsxMzI2OSw2NCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCistLS0g Z2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9jb25maWd1cmUJMjAxNS0wMS0yNSAwODozNjo1 NS43MjI4ODQ1NjMgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWd1cmUJ MjAxNS0wMS0yNSAwODozNzowMi44MDk5MTUxMTAgKzAxMDAKK0BAIC0xMzI3MCw2ICsxMzI3MCw2 NCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAgX0FDRU9GCiAgCiAgCkBAIC0zMzEsMTAg KzMzMSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlndXJlCiAgCiAg IyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElS LAogICMgZXhjZXB0IHRoYXQgdGhlIGFyZ3VtZW50IHRvIC0td2l0aC1zeXNyb290IGlzIG9wdGlv bmFsLgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4K K0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmln LmluCTIwMTUtMDEtMDEgMjE6Mzg6MTQuNzAyMjA5MDg3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE1LTAxLTAxIDIxOjM4OjM5LjM2NTE5 MzE3OSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvZ2Ric2VydmVyL2Nv bmZpZy5pbgkyMDE1LTAxLTI1IDA4OjM2OjU1LjcyNDg4NDU3MiArMDEwMAorKysrIGdkYi03Ljgu OTAuMjAxNTAxMjUvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNS0wMS0yNSAwODozNzowMi44 MDk5MTUxMTAgKzAxMDAKIEBAIC03NSw2ICs3NSw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIGBtY2hlY2snIGxpYnJhcnkgKC1sbWNoZWNrKS4gKi8KICAjdW5kZWYgSEFWRV9M SUJNQ0hFQ0sKQEAgLTM1NSwxMCArMzU1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxzZ3R0eS5oPiBoZWFkZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFWRV9TR1RUWV9ICiAgCi1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUJMjAxNS0w MS0wMSAyMTozODoxNC43MDQyMDkwODYgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTUtMDEtMDEgMjE6Mzg6MjEuMjg4MjA0ODM5ICswMTAw CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIw MTUtMDEtMjUgMDg6MzY6NTUuNzI2ODg0NTgwICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1LTAxLTI1IDA4OjM3OjAyLjgxMTkxNTExOCAr MDEwMAogQEAgLTYxOTksNiArNjE5OSw2NCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCiAgICAgZmkK ICBmaQoKZGlmZiAtLWdpdCBhL2dkYi1jb21waWxlLXdhcm5fdW51c2VkX3Jlc3VsdC5wYXRjaCBi L2dkYi1jb21waWxlLXdhcm5fdW51c2VkX3Jlc3VsdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNDMyNDAwNC4uMDAwMDAwMAotLS0gYS9nZGItY29tcGlsZS13YXJuX3VudXNl ZF9yZXN1bHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvY29tcGlsZS9jb21waWxlLmMtb3JpZwkyMDE0LTEyLTI4IDAyOjQ4 OjQzLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbXBpbGUv Y29tcGlsZS5jCTIwMTUtMDEtMDUgMjM6MDM6MzMuMzgzMDE2MDM5ICswMTAwCi1AQCAtMTcyLDcg KzE3Miw3IEBAIGRvX3JtZGlyICh2b2lkICphcmcpCi0gICAKLSAgIGdkYl9hc3NlcnQgKHN0cm5j bXAgKGRpciwgVE1QX1BSRUZJWCwgc3RybGVuIChUTVBfUFJFRklYKSkgPT0gMCk7Ci0gICB6YXAg PSBjb25jYXQgKCJybSAtcmYgIiwgZGlyLCAoY2hhciAqKSBOVUxMKTsKLS0gIHN5c3RlbSAoemFw KTsKLSsgIGlmIChzeXN0ZW0gKHphcCkpIHt9Ci0gfQotIAotIC8qIFJldHVybiB0aGUgbmFtZSBv ZiB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byB1c2UgZm9yIC5vIGZpbGVzLCBhbmQKCmRpZmYg LS1naXQgYS9nZGItbm8tZGctZXh0cmFjdC1yZXN1bHRzLXB5LnBhdGNoIGIvZ2RiLW5vLWRnLWV4 dHJhY3QtcmVzdWx0cy1weS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li40MGUxZmVhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLW5vLWRnLWV4dHJhY3QtcmVzdWx0cy1w eS5wYXRjaApAQCAtMCwwICsxLDU4OSBAQAorZGlmZiAtZHVwIC1ydU5wIGdkYi03LjguOTAuMjAx NTAyMDItb3JpZy9nZGIvdGVzdHN1aXRlL2RnLWV4dHJhY3QtcmVzdWx0cy5weSBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi90ZXN0c3VpdGUvZGctZXh0cmFjdC1yZXN1bHRzLnB5CistLS0gZ2RiLTcu OC45MC4yMDE1MDIwMi1vcmlnL2dkYi90ZXN0c3VpdGUvZGctZXh0cmFjdC1yZXN1bHRzLnB5CTIw MTUtMDItMDIgMDI6NTg6MjkuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvdGVzdHN1aXRlL2RnLWV4dHJhY3QtcmVzdWx0cy5weQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorQEAgLTEsNTg1ICswLDAgQEAKKy0jIS91c3IvYmluL3B5dGhvbgor LSMKKy0jIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorLSMKKy0jIFRoaXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0jIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CistIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pCist IyBhbnkgbGF0ZXIgdmVyc2lvbi4KKy0KKy1pbXBvcnQgc3lzCistaW1wb3J0IGdldG9wdAorLWlt cG9ydCByZQorLWltcG9ydCBpbworLWZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCistZnJv bSBvcGVyYXRvciBpbXBvcnQgYXR0cmdldHRlcgorLQorLSMgVHJ1ZSBpZiB1bnJlY29nbmlzZWQg bGluZXMgc2hvdWxkIGNhdXNlIGEgZmF0YWwgZXJyb3IuICBNaWdodCB3YW50IHRvIHR1cm4KKy0j IHRoaXMgb24gYnkgZGVmYXVsdCBsYXRlci4KKy1zdHJpY3QgPSBGYWxzZQorLQorLSMgVHJ1ZSBp ZiB0aGUgb3JkZXIgb2YgLmxvZyBzZWdtZW50cyBzaG91bGQgbWF0Y2ggdGhlIC5zdW0gZmlsZSwg ZmFsc2UgaWYKKy0jIHRoZXkgc2hvdWxkIGtlZXAgdGhlIG9yaWdpbmFsIG9yZGVyLgorLXNvcnRf bG9ncyA9IFRydWUKKy0KKy0jIEEgdmVyc2lvbiBvZiBvcGVuKCkgdGhhdCBpcyBzYWZlIGFnYWlu c3Qgd2hhdGV2ZXIgYmluYXJ5IG91dHB1dAorLSMgbWlnaHQgYmUgYWRkZWQgdG8gdGhlIGxvZy4K Ky1kZWYgc2FmZV9vcGVuIChmaWxlbmFtZSk6CistICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsIDApOgorLSAgICAgICAgcmV0dXJuIG9wZW4gKGZpbGVuYW1lLCAncicsIGVycm9ycyA9ICdz dXJyb2dhdGVlc2NhcGUnKQorLSAgICByZXR1cm4gb3BlbiAoZmlsZW5hbWUsICdyJykKKy0KKy0j IEZvcmNlIHN0ZG91dCB0byBoYW5kbGUgZXNjYXBlIHNlcXVlbmNlcyBmcm9tIGEgc2FmZV9vcGVu IGZpbGUuCistaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6CistICAgIHN5cy5zdGRvdXQg PSBpby5UZXh0SU9XcmFwcGVyIChzeXMuc3Rkb3V0LmJ1ZmZlciwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVycm9ycyA9ICdzdXJyb2dhdGVlc2NhcGUnKQorLQorLWNsYXNz IE5hbWVkOgorLSAgICBkZWYgX19pbml0X18gKHNlbGYsIG5hbWUpOgorLSAgICAgICAgc2VsZi5u YW1lID0gbmFtZQorLQorLWNsYXNzIFRvb2xSdW4gKE5hbWVkKToKKy0gICAgZGVmIF9faW5pdF9f IChzZWxmLCBuYW1lKToKKy0gICAgICAgIE5hbWVkLl9faW5pdF9fIChzZWxmLCBuYW1lKQorLSAg ICAgICAgIyBUaGUgdmFyaWF0aW9ucyBydW4gZm9yIHRoaXMgdG9vbCwgbWFwcGVkIGJ5IC0tdGFy Z2V0X2JvYXJkIG5hbWUuCistICAgICAgICBzZWxmLnZhcmlhdGlvbnMgPSBkaWN0KCkKKy0KKy0g ICAgIyBSZXR1cm4gdGhlIFZhcmlhdGlvblJ1biBmb3IgdmFyaWF0aW9uIE5BTUUuCistICAgIGRl ZiBnZXRfdmFyaWF0aW9uIChzZWxmLCBuYW1lKToKKy0gICAgICAgIGlmIG5hbWUgbm90IGluIHNl bGYudmFyaWF0aW9uczoKKy0gICAgICAgICAgICBzZWxmLnZhcmlhdGlvbnNbbmFtZV0gPSBWYXJp YXRpb25SdW4gKG5hbWUpCistICAgICAgICByZXR1cm4gc2VsZi52YXJpYXRpb25zW25hbWVdCist CistY2xhc3MgVmFyaWF0aW9uUnVuIChOYW1lZCk6CistICAgIGRlZiBfX2luaXRfXyAoc2VsZiwg bmFtZSk6CistICAgICAgICBOYW1lZC5fX2luaXRfXyAoc2VsZiwgbmFtZSkKKy0gICAgICAgICMg QSBzZWdtZW50IG9mIHRleHQgYmVmb3JlIHRoZSBoYXJuZXNzIHJ1bnMgc3RhcnQsIGRlc2NyaWJp bmcgd2hpY2gKKy0gICAgICAgICMgYmFzZWJvYXJkIGZpbGVzIHdlcmUgbG9hZGVkIGZvciB0aGUg dGFyZ2V0LgorLSAgICAgICAgc2VsZi5oZWFkZXIgPSBOb25lCistICAgICAgICAjIFRoZSBoYXJu ZXNzZXMgcnVuIGZvciB0aGlzIHZhcmlhdGlvbiwgbWFwcGVkIGJ5IGZpbGVuYW1lLgorLSAgICAg ICAgc2VsZi5oYXJuZXNzZXMgPSBkaWN0KCkKKy0gICAgICAgICMgQSBsaXN0IGdpdmluZyB0aGUg bnVtYmVyIG9mIHRpbWVzIGVhY2ggdHlwZSBvZiByZXN1bHQgaGFzCistICAgICAgICAjIGJlZW4g c2Vlbi4KKy0gICAgICAgIHNlbGYuY291bnRzID0gW10KKy0KKy0gICAgIyBSZXR1cm4gdGhlIEhh cm5lc3NSdW4gZm9yIGhhcm5lc3MgTkFNRS4KKy0gICAgZGVmIGdldF9oYXJuZXNzIChzZWxmLCBu YW1lKToKKy0gICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYuaGFybmVzc2VzOgorLSAgICAgICAg ICAgIHNlbGYuaGFybmVzc2VzW25hbWVdID0gSGFybmVzc1J1biAobmFtZSkKKy0gICAgICAgIHJl dHVybiBzZWxmLmhhcm5lc3Nlc1tuYW1lXQorLQorLWNsYXNzIEhhcm5lc3NSdW4gKE5hbWVkKToK Ky0gICAgZGVmIF9faW5pdF9fIChzZWxmLCBuYW1lKToKKy0gICAgICAgIE5hbWVkLl9faW5pdF9f IChzZWxmLCBuYW1lKQorLSAgICAgICAgIyBTZWdtZW50cyBvZiB0ZXh0IHRoYXQgbWFrZSB1cCB0 aGUgaGFybmVzcyBydW4sIG1hcHBlZCBieSBhIHRlc3QtYmFzZWQKKy0gICAgICAgICMga2V5IHRo YXQgY2FuIGJlIHVzZWQgdG8gb3JkZXIgdGhlbS4KKy0gICAgICAgIHNlbGYuc2VnbWVudHMgPSBk aWN0KCkKKy0gICAgICAgICMgU2VnbWVudHMgb2YgdGV4dCB0aGF0IG1ha2UgdXAgdGhlIGhhcm5l c3MgcnVuIGJ1dCB3aGljaCBoYXZlCistICAgICAgICAjIG5vIHJlY29nbml6ZWQgdGVzdCByZXN1 bHRzLiAgVGhlc2UgYXJlIHR5cGljYWxseSBoYXJuZXNzZXMgdGhhdAorLSAgICAgICAgIyBhcmUg Y29tcGxldGVseSBza2lwcGVkIGZvciB0aGUgdGFyZ2V0LgorLSAgICAgICAgc2VsZi5lbXB0eSA9 IFtdCistICAgICAgICAjIEEgbGlzdCBvZiByZXN1bHRzLiAgRWFjaCBlbnRyeSBpcyBhIHBhaXIg aW4gd2hpY2ggdGhlIGZpcnN0IGVsZW1lbnQKKy0gICAgICAgICMgaXMgYSB1bmlxdWUgc29ydGlu ZyBrZXkgYW5kIGluIHdoaWNoIHRoZSBzZWNvbmQgaXMgdGhlIGZ1bGwKKy0gICAgICAgICMgUEFT Uy9GQUlMIGxpbmUuCistICAgICAgICBzZWxmLnJlc3VsdHMgPSBbXQorLQorLSAgICAjIEFkZCBh IHNlZ21lbnQgb2YgdGV4dCB0byB0aGUgaGFybmVzcyBydW4uICBJZiB0aGUgc2VnbWVudCBpbmNs dWRlcworLSAgICAjIHRlc3QgcmVzdWx0cywgS0VZIGlzIGFuIGV4YW1wbGUgb2Ygb25lIG9mIHRo ZW0sIGFuZCBjYW4gYmUgdXNlZCB0bworLSAgICAjIGNvbWJpbmUgdGhlIGluZGl2aWR1YWwgc2Vn bWVudHMgaW4gb3JkZXIuICBJZiB0aGUgc2VnbWVudCBoYXMgbm8KKy0gICAgIyB0ZXN0IHJlc3Vs dHMgKGUuZy4gYmVjYXVzZSB0aGUgaGFybmVzcyBkb2Vzbid0IGRvIGFueXRoaW5nIGZvciB0aGUK Ky0gICAgIyBjdXJyZW50IGNvbmZpZ3VyYXRpb24pIHRoZW4gS0VZIGlzIE5vbmUgaW5zdGVhZC4g IEluIHRoYXQgY2FzZQorLSAgICAjIGp1c3QgY29sbGVjdCB0aGUgc2VnbWVudHMgaW4gdGhlIG9y ZGVyIHRoYXQgd2Ugc2VlIHRoZW0uCistICAgIGRlZiBhZGRfc2VnbWVudCAoc2VsZiwga2V5LCBz ZWdtZW50KToKKy0gICAgICAgIGlmIGtleToKKy0gICAgICAgICAgICBhc3NlcnQga2V5IG5vdCBp biBzZWxmLnNlZ21lbnRzCistICAgICAgICAgICAgc2VsZi5zZWdtZW50c1trZXldID0gc2VnbWVu dAorLSAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxmLmVtcHR5LmFwcGVuZCAoc2VnbWVu dCkKKy0KKy1jbGFzcyBTZWdtZW50OgorLSAgICBkZWYgX19pbml0X18gKHNlbGYsIGZpbGVuYW1l LCBzdGFydCk6CistICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKKy0gICAgICAgIHNl bGYuc3RhcnQgPSBzdGFydAorLSAgICAgICAgc2VsZi5saW5lcyA9IDAKKy0KKy1jbGFzcyBQcm9n OgorLSAgICBkZWYgX19pbml0X18gKHNlbGYpOgorLSAgICAgICAgIyBUaGUgdmFyaWF0aW9ucyBz cGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKy0gICAgICAgIHNlbGYudmFyaWF0aW9ucyA9 IFtdCistICAgICAgICAjIFRoZSB2YXJpYXRpb25zIHNlZW4gaW4gdGhlIGlucHV0IGZpbGVzLgor LSAgICAgICAgc2VsZi5rbm93bl92YXJpYXRpb25zID0gc2V0KCkKKy0gICAgICAgICMgVGhlIHRv b2xzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgorLSAgICAgICAgc2VsZi50b29scyA9 IFtdCistICAgICAgICAjIFdoZXRoZXIgdG8gY3JlYXRlIC5zdW0gcmF0aGVyIHRoYW4gLmxvZyBv dXRwdXQuCistICAgICAgICBzZWxmLmRvX3N1bSA9IFRydWUKKy0gICAgICAgICMgUmVnZXhwcyB1 c2VkIHdoaWxlIHBhcnNpbmcuCistICAgICAgICBzZWxmLnRlc3RfcnVuX3JlID0gcmUuY29tcGls ZSAocideVGVzdCBSdW4gQnkgKFxTKykgb24gKC4qKSQnKQorLSAgICAgICAgc2VsZi50b29sX3Jl ID0gcmUuY29tcGlsZSAocideXHRcdD09PSAoLiopIHRlc3RzID09PSQnKQorLSAgICAgICAgc2Vs Zi5yZXN1bHRfcmUgPSByZS5jb21waWxlIChyJ14oUEFTU3xYUEFTU3xGQUlMfFhGQUlMfFVOUkVT T0xWRUQnCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHInfFdBUk5JTkd8 RVJST1J8VU5TVVBQT1JURUR8VU5URVNURUQnCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHInfEtGQUlMKTpccyooLispJykKKy0gICAgICAgIHNlbGYuY29tcGxldGVkX3Jl ID0gcmUuY29tcGlsZSAocicuKiBjb21wbGV0ZWQgYXQgKC4qKScpCistICAgICAgICAjIFBpZWNl cyBvZiB0ZXh0IHRvIHdyaXRlIGF0IHRoZSBoZWFkIG9mIHRoZSBvdXRwdXQuCistICAgICAgICAj IHN0YXJ0X2xpbmUgaXMgYSBwYWlyIGluIHdoaWNoIHRoZSBmaXJzdCBlbGVtZW50IGlzIGEgZGF0 ZXRpbWUKKy0gICAgICAgICMgYW5kIGluIHdoaWNoIHRoZSBzZWNvbmQgaXMgdGhlIGFzc29jaWF0 ZWQgJ1Rlc3QgUnVuIEJ5JyBsaW5lLgorLSAgICAgICAgc2VsZi5zdGFydF9saW5lID0gTm9uZQor LSAgICAgICAgc2VsZi5uYXRpdmVfbGluZSA9ICcnCistICAgICAgICBzZWxmLnRhcmdldF9saW5l ID0gJycKKy0gICAgICAgIHNlbGYuaG9zdF9saW5lID0gJycKKy0gICAgICAgIHNlbGYuYWNhdHNf cHJlbWFibGUgPSAnJworLSAgICAgICAgIyBQaWVjZXMgb2YgdGV4dCB0byB3cml0ZSBhdCB0aGUg ZW5kIG9mIHRoZSBvdXRwdXQuCistICAgICAgICAjIGVuZF9saW5lIGlzIGxpa2Ugc3RhcnRfbGlu ZSBidXQgZm9yIHRoZSAncnVudGVzdCBjb21wbGV0ZWQnIGxpbmUuCistICAgICAgICBzZWxmLmFj YXRzX2ZhaWx1cmVzID0gW10KKy0gICAgICAgIHNlbGYudmVyc2lvbl9vdXRwdXQgPSAnJworLSAg ICAgICAgc2VsZi5lbmRfbGluZSA9IE5vbmUKKy0gICAgICAgICMgS25vd24gc3VtbWFyeSB0eXBl cy4KKy0gICAgICAgIHNlbGYuY291bnRfbmFtZXMgPSBbCistICAgICAgICAgICAgJyMgb2YgZXhw ZWN0ZWQgcGFzc2VzXHRcdCcsCistICAgICAgICAgICAgJyMgb2YgdW5leHBlY3RlZCBmYWlsdXJl c1x0JywKKy0gICAgICAgICAgICAnIyBvZiB1bmV4cGVjdGVkIHN1Y2Nlc3Nlc1x0JywKKy0gICAg ICAgICAgICAnIyBvZiBleHBlY3RlZCBmYWlsdXJlc1x0XHQnLAorLSAgICAgICAgICAgICcjIG9m IHVua25vd24gc3VjY2Vzc2VzXHRcdCcsCistICAgICAgICAgICAgJyMgb2Yga25vd24gZmFpbHVy ZXNcdFx0JywKKy0gICAgICAgICAgICAnIyBvZiB1bnRlc3RlZCB0ZXN0Y2FzZXNcdFx0JywKKy0g ICAgICAgICAgICAnIyBvZiB1bnJlc29sdmVkIHRlc3RjYXNlc1x0JywKKy0gICAgICAgICAgICAn IyBvZiB1bnN1cHBvcnRlZCB0ZXN0c1x0XHQnCistICAgICAgICBdCistICAgICAgICBzZWxmLnJ1 bnMgPSBkaWN0KCkKKy0KKy0gICAgZGVmIHVzYWdlIChzZWxmKToKKy0gICAgICAgIG5hbWUgPSBz eXMuYXJndlswXQorLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSAoJ1VzYWdlOiAnICsgbmFtZQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnJycgWy10IHRvb2xdIFstbCB2YXJpYW50LWxp c3RdIFstTF0gbG9nLW9yLXN1bS1maWxlIC4uLgorLQorLSAgICB0b29sICAgICAgICAgICBUaGUg dG9vbCAoZS5nLiBnKyssIGxpYmZmaSkgZm9yIHdoaWNoIHRvIGNyZWF0ZSBhCistICAgICAgICAg ICAgICAgICAgIG5ldyB0ZXN0IHN1bW1hcnkgZmlsZS4gIElmIG5vdCBzcGVjaWZpZWQgdGhlbiBv dXRwdXQKKy0gICAgICAgICAgICAgICAgICAgaXMgY3JlYXRlZCBmb3IgYWxsIHRvb2xzLgorLSAg ICB2YXJpYW50LWxpc3QgICBPbmUgb3IgbW9yZSB0ZXN0IHZhcmlhbnQgbmFtZXMuICBJZiB0aGUg bGlzdCBpcworLSAgICAgICAgICAgICAgICAgICBub3Qgc3BlY2lmaWVkIHRoZW4gb25lIGlzIGNv bnN0cnVjdGVkIGZyb20gYWxsCistICAgICAgICAgICAgICAgICAgIHZhcmlhbnRzIGluIHRoZSBm aWxlcyBmb3IgPHRvb2w+LgorLSAgICBzdW0tZmlsZSAgICAgICBBIHRlc3Qgc3VtbWFyeSBmaWxl IHdpdGggdGhlIGZvcm1hdCBvZiB0aG9zZQorLSAgICAgICAgICAgICAgICAgICBjcmVhdGVkIGJ5 IHJ1bnRlc3QgZnJvbSBEZWphR251LgorLSAgICBJZiAtTCBpcyB1c2VkLCBtZXJnZSAqLmxvZyBm aWxlcyBpbnN0ZWFkIG9mICouc3VtLiAgSW4gdGhpcworLSAgICBtb2RlIHRoZSBleGFjdCBvcmRl ciBvZiBsaW5lcyBtYXkgbm90IGJlIHByZXNlcnZlZCwganVzdCBkaWZmZXJlbnQKKy0gICAgUnVu bmluZyAqLmV4cCBjaHVua3Mgc2hvdWxkIGJlIGluIGNvcnJlY3Qgb3JkZXIuCistJycnKQorLSAg ICAgICAgc3lzLmV4aXQgKDEpCistCistICAgIGRlZiBmYXRhbCAoc2VsZiwgd2hhdCwgc3RyaW5n KToKKy0gICAgICAgIGlmIG5vdCB3aGF0OgorLSAgICAgICAgICAgIHdoYXQgPSBzeXMuYXJndlsw XQorLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSAod2hhdCArICc6ICcgKyBzdHJpbmcgKyAnXG4n KQorLSAgICAgICAgc3lzLmV4aXQgKDEpCistCistICAgICMgUGFyc2UgdGhlIGNvbW1hbmQtbGlu ZSBhcmd1bWVudHMuCistICAgIGRlZiBwYXJzZV9jbWRsaW5lIChzZWxmKToKKy0gICAgICAgIHRy eToKKy0gICAgICAgICAgICAob3B0aW9ucywgc2VsZi5maWxlcykgPSBnZXRvcHQuZ2V0b3B0IChz eXMuYXJndlsxOl0sICdsOnQ6TCcpCistICAgICAgICAgICAgaWYgbGVuIChzZWxmLmZpbGVzKSA9 PSAwOgorLSAgICAgICAgICAgICAgICBzZWxmLnVzYWdlKCkKKy0gICAgICAgICAgICBmb3IgKG9w dGlvbiwgdmFsdWUpIGluIG9wdGlvbnM6CistICAgICAgICAgICAgICAgIGlmIG9wdGlvbiA9PSAn LWwnOgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi52YXJpYXRpb25zLmFwcGVuZCAodmFsdWUp CistICAgICAgICAgICAgICAgIGVsaWYgb3B0aW9uID09ICctdCc6CistICAgICAgICAgICAgICAg ICAgICBzZWxmLnRvb2xzLmFwcGVuZCAodmFsdWUpCistICAgICAgICAgICAgICAgIGVsc2U6Cist ICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX3N1bSA9IEZhbHNlCistICAgICAgICBleGNlcHQg Z2V0b3B0LkdldG9wdEVycm9yIGFzIGU6CistICAgICAgICAgICAgc2VsZi5mYXRhbCAoTm9uZSwg ZS5tc2cpCistCistICAgICMgVHJ5IHRvIHBhcnNlIHRpbWUgc3RyaW5nIFRJTUUsIHJldHVybmlu ZyBhbiBhcmJpdHJhcnkgdGltZSBvbiBmYWlsdXJlLgorLSAgICAjIEdldHRpbmcgdGhpcyByaWdo dCBpcyBqdXN0IGEgbmljZS10by1oYXZlIHNvIGZhaWx1cmVzIHNob3VsZCBiZSBzaWxlbnQuCist ICAgIGRlZiBwYXJzZV90aW1lIChzZWxmLCB0aW1lKToKKy0gICAgICAgIHRyeToKKy0gICAgICAg ICAgICByZXR1cm4gZGF0ZXRpbWUuc3RycHRpbWUgKHRpbWUsICclYycpCistICAgICAgICBleGNl cHQgVmFsdWVFcnJvcjoKKy0gICAgICAgICAgICByZXR1cm4gZGF0ZXRpbWUubm93KCkKKy0KKy0g ICAgIyBQYXJzZSBhbiBpbnRlZ2VyIGFuZCBhYm9ydCBvbiBmYWlsdXJlLgorLSAgICBkZWYgcGFy c2VfaW50IChzZWxmLCBmaWxlbmFtZSwgdmFsdWUpOgorLSAgICAgICAgdHJ5OgorLSAgICAgICAg ICAgIHJldHVybiBpbnQgKHZhbHVlKQorLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CistICAg ICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdleHBlY3RlZCBhbiBpbnRlZ2VyLCBnb3Q6 ICcgKyB2YWx1ZSkKKy0KKy0gICAgIyBSZXR1cm4gYSBsaXN0IHRoYXQgcmVwcmVzZW50cyBubyB0 ZXN0IHJlc3VsdHMuCistICAgIGRlZiB6ZXJvX2NvdW50cyAoc2VsZik6CistICAgICAgICByZXR1 cm4gWzAgZm9yIHggaW4gc2VsZi5jb3VudF9uYW1lc10KKy0KKy0gICAgIyBSZXR1cm4gdGhlIFRv b2xSdW4gZm9yIHRvb2wgTkFNRS4KKy0gICAgZGVmIGdldF90b29sIChzZWxmLCBuYW1lKToKKy0g ICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYucnVuczoKKy0gICAgICAgICAgICBzZWxmLnJ1bnNb bmFtZV0gPSBUb29sUnVuIChuYW1lKQorLSAgICAgICAgcmV0dXJuIHNlbGYucnVuc1tuYW1lXQor LQorLSAgICAjIEFkZCB0aGUgcmVzdWx0IGNvdW50cyBpbiBsaXN0IEZST01DIHRvIFRPQy4KKy0g ICAgZGVmIGFjY3VtdWxhdGVfY291bnRzIChzZWxmLCB0b2MsIGZyb21jKToKKy0gICAgICAgIGZv ciBpIGluIHJhbmdlIChsZW4gKHNlbGYuY291bnRfbmFtZXMpKToKKy0gICAgICAgICAgICB0b2Nb aV0gKz0gZnJvbWNbaV0KKy0KKy0gICAgIyBQYXJzZSB0aGUgbGlzdCBvZiB2YXJpYXRpb25zIGFm dGVyICdTY2hlZHVsZSBvZiB2YXJpYXRpb25zOicuCistICAgICMgUmV0dXJuIHRoZSBudW1iZXIg c2Vlbi4KKy0gICAgZGVmIHBhcnNlX3ZhcmlhdGlvbnMgKHNlbGYsIGZpbGVuYW1lLCBmaWxlKToK Ky0gICAgICAgIG51bV92YXJpYXRpb25zID0gMAorLSAgICAgICAgd2hpbGUgVHJ1ZToKKy0gICAg ICAgICAgICBsaW5lID0gZmlsZS5yZWFkbGluZSgpCistICAgICAgICAgICAgaWYgbGluZSA9PSAn JzoKKy0gICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdjb3VsZCBub3QgcGFy c2UgdmFyaWF0aW9uIGxpc3QnKQorLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJ1xuJzoKKy0gICAg ICAgICAgICAgICAgYnJlYWsKKy0gICAgICAgICAgICBzZWxmLmtub3duX3ZhcmlhdGlvbnMuYWRk IChsaW5lLnN0cmlwKCkpCistICAgICAgICAgICAgbnVtX3ZhcmlhdGlvbnMgKz0gMQorLSAgICAg ICAgcmV0dXJuIG51bV92YXJpYXRpb25zCistCistICAgICMgUGFyc2UgZnJvbSB0aGUgZmlyc3Qg bGluZSBhZnRlciAnUnVubmluZyB0YXJnZXQgLi4uJyB0byB0aGUgZW5kCistICAgICMgb2YgdGhl IHJ1bidzIHN1bW1hcnkuCistICAgIGRlZiBwYXJzZV9ydW4gKHNlbGYsIGZpbGVuYW1lLCBmaWxl LCB0b29sLCB2YXJpYXRpb24sIG51bV92YXJpYXRpb25zKToKKy0gICAgICAgIGhlYWRlciA9IE5v bmUKKy0gICAgICAgIGhhcm5lc3MgPSBOb25lCistICAgICAgICBzZWdtZW50ID0gTm9uZQorLSAg ICAgICAgZmluYWxfdXNpbmcgPSAwCistCistICAgICAgICAjIElmIHRoaXMgaXMgdGhlIGZpcnN0 IHJ1biBmb3IgdGhpcyB2YXJpYXRpb24sIGFkZCBhbnkgdGV4dCBiZWZvcmUKKy0gICAgICAgICMg dGhlIGZpcnN0IGhhcm5lc3MgdG8gdGhlIGhlYWRlci4KKy0gICAgICAgIGlmIG5vdCB2YXJpYXRp b24uaGVhZGVyOgorLSAgICAgICAgICAgIHNlZ21lbnQgPSBTZWdtZW50IChmaWxlbmFtZSwgZmls ZS50ZWxsKCkpCistICAgICAgICAgICAgdmFyaWF0aW9uLmhlYWRlciA9IHNlZ21lbnQKKy0KKy0g ICAgICAgICMgUGFyc2UgdXAgdW50aWwgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHN1bW1hcnkuCist ICAgICAgICBpZiBudW1fdmFyaWF0aW9ucyA9PSAxOgorLSAgICAgICAgICAgIGVuZCA9ICdcdFx0 PT09ICcgKyB0b29sLm5hbWUgKyAnIFN1bW1hcnkgPT09XG4nCistICAgICAgICBlbHNlOgorLSAg ICAgICAgICAgIGVuZCA9ICgnXHRcdD09PSAnICsgdG9vbC5uYW1lICsgJyBTdW1tYXJ5IGZvciAn CistICAgICAgICAgICAgICAgICAgICsgdmFyaWF0aW9uLm5hbWUgKyAnID09PVxuJykKKy0gICAg ICAgIHdoaWxlIFRydWU6CistICAgICAgICAgICAgbGluZSA9IGZpbGUucmVhZGxpbmUoKQorLSAg ICAgICAgICAgIGlmIGxpbmUgPT0gJyc6CistICAgICAgICAgICAgICAgIHNlbGYuZmF0YWwgKGZp bGVuYW1lLCAnbm8gcmVjb2duaXNlZCBzdW1tYXJ5IGxpbmUnKQorLSAgICAgICAgICAgIGlmIGxp bmUgPT0gZW5kOgorLSAgICAgICAgICAgICAgICBicmVhaworLQorLSAgICAgICAgICAgICMgTG9v ayBmb3IgdGhlIHN0YXJ0IG9mIGEgbmV3IGhhcm5lc3MuCistICAgICAgICAgICAgaWYgbGluZS5z dGFydHN3aXRoICgnUnVubmluZyAnKSBhbmQgbGluZS5lbmRzd2l0aCAoJyAuLi5cbicpOgorLSAg ICAgICAgICAgICAgICAjIENsb3NlIG9mZiB0aGUgY3VycmVudCBoYXJuZXNzIHNlZ21lbnQsIGlm IGFueS4KKy0gICAgICAgICAgICAgICAgaWYgaGFybmVzczoKKy0gICAgICAgICAgICAgICAgICAg IHNlZ21lbnQubGluZXMgLT0gZmluYWxfdXNpbmcKKy0gICAgICAgICAgICAgICAgICAgIGhhcm5l c3MuYWRkX3NlZ21lbnQgKGZpcnN0X2tleSwgc2VnbWVudCkKKy0gICAgICAgICAgICAgICAgbmFt ZSA9IGxpbmVbbGVuICgnUnVubmluZyAnKTotbGVuKCcgLi4uXG4nKV0KKy0gICAgICAgICAgICAg ICAgaGFybmVzcyA9IHZhcmlhdGlvbi5nZXRfaGFybmVzcyAobmFtZSkKKy0gICAgICAgICAgICAg ICAgc2VnbWVudCA9IFNlZ21lbnQgKGZpbGVuYW1lLCBmaWxlLnRlbGwoKSkKKy0gICAgICAgICAg ICAgICAgZmlyc3Rfa2V5ID0gTm9uZQorLSAgICAgICAgICAgICAgICBmaW5hbF91c2luZyA9IDAK Ky0gICAgICAgICAgICAgICAgY29udGludWUKKy0KKy0gICAgICAgICAgICAjIFJlY29yZCB0ZXN0 IHJlc3VsdHMuICBBc3NvY2lhdGUgdGhlIGZpcnN0IHRlc3QgcmVzdWx0IHdpdGgKKy0gICAgICAg ICAgICAjIHRoZSBoYXJuZXNzIHNlZ21lbnQsIHNvIHRoYXQgaWYgYSBydW4gZm9yIGEgcGFydGlj dWxhciBoYXJuZXNzCistICAgICAgICAgICAgIyBoYXMgYmVlbiBzcGxpdCB1cCwgd2UgY2FuIHJl YXNzZW1ibGUgdGhlIGluZGl2aWR1YWwgc2VnbWVudHMKKy0gICAgICAgICAgICAjIGluIGEgc2Vu c2libGUgb3JkZXIuCistICAgICAgICAgICAgIworLSAgICAgICAgICAgICMgZGVqYWdudSBzb21l dGltZXMgaXNzdWVzIHdhcm5pbmdzIGFib3V0IHRoZSB0ZXN0aW5nIGVudmlyb25tZW50CistICAg ICAgICAgICAgIyBiZWZvcmUgcnVubmluZyBhbnkgdGVzdHMuICBUcmVhdCB0aGVtIGFzIHBhcnQg b2YgdGhlIGhlYWRlcgorLSAgICAgICAgICAgICMgcmF0aGVyIHRoYW4gYXMgYSB0ZXN0IHJlc3Vs dC4KKy0gICAgICAgICAgICBtYXRjaCA9IHNlbGYucmVzdWx0X3JlLm1hdGNoIChsaW5lKQorLSAg ICAgICAgICAgIGlmIG1hdGNoIGFuZCAoaGFybmVzcyBvciBub3QgbGluZS5zdGFydHN3aXRoICgn V0FSTklORzonKSk6CistICAgICAgICAgICAgICAgIGlmIG5vdCBoYXJuZXNzOgorLSAgICAgICAg ICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdzYXcgdGVzdCByZXN1bHQgYmVmb3Jl IGhhcm5lc3MgbmFtZScpCistICAgICAgICAgICAgICAgIG5hbWUgPSBtYXRjaC5ncm91cCAoMikK Ky0gICAgICAgICAgICAgICAgIyBVZ2x5IGhhY2sgdG8gZ2V0IHRoZSByaWdodCBvcmRlciBmb3Ig Z2ZvcnRyYW4uCistICAgICAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCAoJ2dmb3J0cmFu LmRnL2c3Ny8nKToKKy0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnaCcgKyBuYW1lCistICAg ICAgICAgICAgICAgIGtleSA9IChuYW1lLCBsZW4gKGhhcm5lc3MucmVzdWx0cykpCistICAgICAg ICAgICAgICAgIGhhcm5lc3MucmVzdWx0cy5hcHBlbmQgKChrZXksIGxpbmUpKQorLSAgICAgICAg ICAgICAgICBpZiBub3QgZmlyc3Rfa2V5IGFuZCBzb3J0X2xvZ3M6CistICAgICAgICAgICAgICAg ICAgICBmaXJzdF9rZXkgPSBrZXkKKy0KKy0gICAgICAgICAgICAjICdVc2luZyAuLi4nIGxpbmVz IGFyZSBvbmx5IGludGVyZXN0aW5nIGluIGEgaGVhZGVyLiAgU3BsaXR0aW5nCistICAgICAgICAg ICAgIyB0aGUgdGVzdCB1cCBpbnRvIHBhcmFsbGVsIHJ1bnMgbGVhZHMgdG8gbW9yZSAnVXNpbmcg Li4uJyBsaW5lcworLSAgICAgICAgICAgICMgdGhhbiB0aGVyZSB3b3VsZCBiZSBpbiBhIHNpbmds ZSBsb2cuCistICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoICgnVXNpbmcgJyk6CistICAg ICAgICAgICAgICAgIGZpbmFsX3VzaW5nICs9IDEKKy0gICAgICAgICAgICBlbHNlOgorLSAgICAg ICAgICAgICAgICBmaW5hbF91c2luZyA9IDAKKy0KKy0gICAgICAgICAgICAjIEFkZCBvdGhlciB0 ZXh0IHRvIHRoZSBjdXJyZW50IHNlZ21lbnQsIGlmIGFueS4KKy0gICAgICAgICAgICBpZiBzZWdt ZW50OgorLSAgICAgICAgICAgICAgICBzZWdtZW50LmxpbmVzICs9IDEKKy0KKy0gICAgICAgICMg Q2xvc2Ugb2ZmIHRoZSBmaW5hbCBoYXJuZXNzIHNlZ21lbnQsIGlmIGFueS4KKy0gICAgICAgIGlm IGhhcm5lc3M6CistICAgICAgICAgICAgc2VnbWVudC5saW5lcyAtPSBmaW5hbF91c2luZworLSAg ICAgICAgICAgIGhhcm5lc3MuYWRkX3NlZ21lbnQgKGZpcnN0X2tleSwgc2VnbWVudCkKKy0KKy0g ICAgICAgICMgUGFyc2UgdGhlIHJlc3Qgb2YgdGhlIHN1bW1hcnkgKHRoZSAnIyBvZiAnIGxpbmVz KS4KKy0gICAgICAgIGlmIGxlbiAodmFyaWF0aW9uLmNvdW50cykgPT0gMDoKKy0gICAgICAgICAg ICB2YXJpYXRpb24uY291bnRzID0gc2VsZi56ZXJvX2NvdW50cygpCistICAgICAgICB3aGlsZSBU cnVlOgorLSAgICAgICAgICAgIGJlZm9yZSA9IGZpbGUudGVsbCgpCistICAgICAgICAgICAgbGlu ZSA9IGZpbGUucmVhZGxpbmUoKQorLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJyc6CistICAgICAg ICAgICAgICAgIGJyZWFrCistICAgICAgICAgICAgaWYgbGluZSA9PSAnXG4nOgorLSAgICAgICAg ICAgICAgICBjb250aW51ZQorLSAgICAgICAgICAgIGlmIG5vdCBsaW5lLnN0YXJ0c3dpdGggKCcj ICcpOgorLSAgICAgICAgICAgICAgICBmaWxlLnNlZWsgKGJlZm9yZSkKKy0gICAgICAgICAgICAg ICAgYnJlYWsKKy0gICAgICAgICAgICBmb3VuZCA9IEZhbHNlCistICAgICAgICAgICAgZm9yIGkg aW4gcmFuZ2UgKGxlbiAoc2VsZi5jb3VudF9uYW1lcykpOgorLSAgICAgICAgICAgICAgICBpZiBs aW5lLnN0YXJ0c3dpdGggKHNlbGYuY291bnRfbmFtZXNbaV0pOgorLSAgICAgICAgICAgICAgICAg ICAgY291bnQgPSBsaW5lW2xlbiAoc2VsZi5jb3VudF9uYW1lc1tpXSk6LTFdLnN0cmlwKCkKKy0g ICAgICAgICAgICAgICAgICAgIHZhcmlhdGlvbi5jb3VudHNbaV0gKz0gc2VsZi5wYXJzZV9pbnQg KGZpbGVuYW1lLCBjb3VudCkKKy0gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQorLSAg ICAgICAgICAgICAgICAgICAgYnJlYWsKKy0gICAgICAgICAgICBpZiBub3QgZm91bmQ6CistICAg ICAgICAgICAgICAgIHNlbGYuZmF0YWwgKGZpbGVuYW1lLCAndW5rbm93biB0ZXN0IHJlc3VsdDog JyArIGxpbmVbOi0xXSkKKy0KKy0gICAgIyBQYXJzZSBhbiBhY2F0cyBydW4sIHdoaWNoIHVzZXMg YSBkaWZmZXJlbnQgZm9ybWF0IGZyb20gZGVqYWdudS4KKy0gICAgIyBXZSBoYXZlIGp1c3Qgc2tp cHBlZCBvdmVyICc9PT0gYWNhdHMgY29uZmlndXJhdGlvbiA9PT0nLgorLSAgICBkZWYgcGFyc2Vf YWNhdHNfcnVuIChzZWxmLCBmaWxlbmFtZSwgZmlsZSk6CistICAgICAgICAjIFBhcnNlIHRoZSBw cmVhbWJsZSwgd2hpY2ggZGVzY3JpYmVzIHRoZSBjb25maWd1cmF0aW9uIGFuZCBsb2dzCistICAg ICAgICAjIHRoZSBjcmVhdGlvbiBvZiBzdXBwb3J0IGZpbGVzLgorLSAgICAgICAgcmVjb3JkID0g KHNlbGYuYWNhdHNfcHJlbWFibGUgPT0gJycpCistICAgICAgICBpZiByZWNvcmQ6CistICAgICAg ICAgICAgc2VsZi5hY2F0c19wcmVtYWJsZSA9ICdcdFx0PT09IGFjYXRzIGNvbmZpZ3VyYXRpb24g PT09XG4nCistICAgICAgICB3aGlsZSBUcnVlOgorLSAgICAgICAgICAgIGxpbmUgPSBmaWxlLnJl YWRsaW5lKCkKKy0gICAgICAgICAgICBpZiBsaW5lID09ICcnOgorLSAgICAgICAgICAgICAgICBz ZWxmLmZhdGFsIChmaWxlbmFtZSwgJ2NvdWxkIG5vdCBwYXJzZSBhY2F0cyBwcmVhbWJsZScpCist ICAgICAgICAgICAgaWYgbGluZSA9PSAnXHRcdD09PSBhY2F0cyB0ZXN0cyA9PT1cbic6CistICAg ICAgICAgICAgICAgIGJyZWFrCistICAgICAgICAgICAgaWYgcmVjb3JkOgorLSAgICAgICAgICAg ICAgICBzZWxmLmFjYXRzX3ByZW1hYmxlICs9IGxpbmUKKy0KKy0gICAgICAgICMgUGFyc2UgdGhl IHRlc3QgcmVzdWx0cyB0aGVtc2VsdmVzLCB1c2luZyBhIGR1bW15IHZhcmlhdGlvbiBuYW1lLgor LSAgICAgICAgdG9vbCA9IHNlbGYuZ2V0X3Rvb2wgKCdhY2F0cycpCistICAgICAgICB2YXJpYXRp b24gPSB0b29sLmdldF92YXJpYXRpb24gKCdub25lJykKKy0gICAgICAgIHNlbGYucGFyc2VfcnVu IChmaWxlbmFtZSwgZmlsZSwgdG9vbCwgdmFyaWF0aW9uLCAxKQorLQorLSAgICAgICAgIyBQYXJz ZSB0aGUgZmFpbHVyZSBsaXN0LgorLSAgICAgICAgd2hpbGUgVHJ1ZToKKy0gICAgICAgICAgICBi ZWZvcmUgPSBmaWxlLnRlbGwoKQorLSAgICAgICAgICAgIGxpbmUgPSBmaWxlLnJlYWRsaW5lKCkK Ky0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCcqKiogRkFJTFVSRVM6ICcpOgorLSAg ICAgICAgICAgICAgICBzZWxmLmFjYXRzX2ZhaWx1cmVzLmFwcGVuZCAobGluZVtsZW4gKCcqKiog RkFJTFVSRVM6ICcpOi0xXSkKKy0gICAgICAgICAgICAgICAgY29udGludWUKKy0gICAgICAgICAg ICBmaWxlLnNlZWsgKGJlZm9yZSkKKy0gICAgICAgICAgICBicmVhaworLQorLSAgICAjIFBhcnNl IHRoZSBmaW5hbCBzdW1tYXJ5IGF0IHRoZSBlbmQgb2YgYSBsb2cgaW4gb3JkZXIgdG8gY2FwdHVy ZQorLSAgICAjIHRoZSB2ZXJzaW9uIG91dHB1dCB0aGF0IGZvbGxvd3MgaXQuCistICAgIGRlZiBw YXJzZV9maW5hbF9zdW1tYXJ5IChzZWxmLCBmaWxlbmFtZSwgZmlsZSk6CistICAgICAgICByZWNv cmQgPSAoc2VsZi52ZXJzaW9uX291dHB1dCA9PSAnJykKKy0gICAgICAgIHdoaWxlIFRydWU6Cist ICAgICAgICAgICAgbGluZSA9IGZpbGUucmVhZGxpbmUoKQorLSAgICAgICAgICAgIGlmIGxpbmUg PT0gJyc6CistICAgICAgICAgICAgICAgIGJyZWFrCistICAgICAgICAgICAgaWYgbGluZS5zdGFy dHN3aXRoICgnIyBvZiAnKToKKy0gICAgICAgICAgICAgICAgY29udGludWUKKy0gICAgICAgICAg ICBpZiByZWNvcmQ6CistICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbl9vdXRwdXQgKz0gbGlu ZQorLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJ1xuJzoKKy0gICAgICAgICAgICAgICAgYnJlYWsK Ky0KKy0gICAgIyBQYXJzZSBhIC5sb2cgb3IgLnN1bSBmaWxlLgorLSAgICBkZWYgcGFyc2VfZmls ZSAoc2VsZiwgZmlsZW5hbWUsIGZpbGUpOgorLSAgICAgICAgdG9vbCA9IE5vbmUKKy0gICAgICAg IHRhcmdldCA9IE5vbmUKKy0gICAgICAgIG51bV92YXJpYXRpb25zID0gMQorLSAgICAgICAgd2hp bGUgVHJ1ZToKKy0gICAgICAgICAgICBsaW5lID0gZmlsZS5yZWFkbGluZSgpCistICAgICAgICAg ICAgaWYgbGluZSA9PSAnJzoKKy0gICAgICAgICAgICAgICAgcmV0dXJuCistCistICAgICAgICAg ICAgIyBQYXJzZSB0aGUgbGlzdCBvZiB2YXJpYXRpb25zLCB3aGljaCBjb21lcyBiZWZvcmUgdGhl IHRlc3QKKy0gICAgICAgICAgICAjIHJ1bnMgdGhlbXNlbHZlcy4KKy0gICAgICAgICAgICBpZiBs aW5lLnN0YXJ0c3dpdGggKCdTY2hlZHVsZSBvZiB2YXJpYXRpb25zOicpOgorLSAgICAgICAgICAg ICAgICBudW1fdmFyaWF0aW9ucyA9IHNlbGYucGFyc2VfdmFyaWF0aW9ucyAoZmlsZW5hbWUsIGZp bGUpCistICAgICAgICAgICAgICAgIGNvbnRpbnVlCistCistICAgICAgICAgICAgIyBQYXJzZSBh IHRlc3RzdWl0ZSBydW4gZm9yIG9uZSB0b29sL3ZhcmlhdGlvbiBjb21iaW5hdGlvbi4KKy0gICAg ICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCdSdW5uaW5nIHRhcmdldCAnKToKKy0gICAgICAg ICAgICAgICAgbmFtZSA9IGxpbmVbbGVuICgnUnVubmluZyB0YXJnZXQgJyk6LTFdCistICAgICAg ICAgICAgICAgIGlmIG5vdCB0b29sOgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAo ZmlsZW5hbWUsICdjb3VsZCBub3QgcGFyc2UgdG9vbCBuYW1lJykKKy0gICAgICAgICAgICAgICAg aWYgbmFtZSBub3QgaW4gc2VsZi5rbm93bl92YXJpYXRpb25zOgorLSAgICAgICAgICAgICAgICAg ICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICd1bmtub3duIHRhcmdldDogJyArIG5hbWUpCistICAg ICAgICAgICAgICAgIHNlbGYucGFyc2VfcnVuIChmaWxlbmFtZSwgZmlsZSwgdG9vbCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2wuZ2V0X3ZhcmlhdGlvbiAobmFtZSksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fdmFyaWF0aW9ucykKKy0gICAgICAg ICAgICAgICAgIyBJZiB0aGVyZSBpcyBvbmx5IG9uZSB2YXJpYXRpb24gdGhlbiB0aGVyZSBpcyBu byBzZXBhcmF0ZQorLSAgICAgICAgICAgICAgICAjIHN1bW1hcnkgZm9yIGl0LiAgUmVjb3JkIGFu eSBmb2xsb3dpbmcgdmVyc2lvbiBvdXRwdXQuCistICAgICAgICAgICAgICAgIGlmIG51bV92YXJp YXRpb25zID09IDE6CistICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX2ZpbmFsX3N1bW1h cnkgKGZpbGVuYW1lLCBmaWxlKQorLSAgICAgICAgICAgICAgICBjb250aW51ZQorLQorLSAgICAg ICAgICAgICMgUGFyc2UgdGhlIHN0YXJ0IGxpbmUuICBJbiB0aGUgY2FzZSB3aGVyZSBzZXZlcmFs IGZpbGVzIGFyZSBiZWluZworLSAgICAgICAgICAgICMgcGFyc2VkLCBwaWNrIHRoZSBvbmUgd2l0 aCB0aGUgZWFybGllc3QgdGltZS4KKy0gICAgICAgICAgICBtYXRjaCA9IHNlbGYudGVzdF9ydW5f cmUubWF0Y2ggKGxpbmUpCistICAgICAgICAgICAgaWYgbWF0Y2g6CistICAgICAgICAgICAgICAg IHRpbWUgPSBzZWxmLnBhcnNlX3RpbWUgKG1hdGNoLmdyb3VwICgyKSkKKy0gICAgICAgICAgICAg ICAgaWYgbm90IHNlbGYuc3RhcnRfbGluZSBvciBzZWxmLnN0YXJ0X2xpbmVbMF0gPiB0aW1lOgor LSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFydF9saW5lID0gKHRpbWUsIGxpbmUpCistICAg ICAgICAgICAgICAgIGNvbnRpbnVlCistCistICAgICAgICAgICAgIyBQYXJzZSB0aGUgZm9ybSB1 c2VkIGZvciBuYXRpdmUgdGVzdGluZy4KKy0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgg KCdOYXRpdmUgY29uZmlndXJhdGlvbiBpcyAnKToKKy0gICAgICAgICAgICAgICAgc2VsZi5uYXRp dmVfbGluZSA9IGxpbmUKKy0gICAgICAgICAgICAgICAgY29udGludWUKKy0KKy0gICAgICAgICAg ICAjIFBhcnNlIHRoZSB0YXJnZXQgdHJpcGxldC4KKy0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0 c3dpdGggKCdUYXJnZXQgaXMgJyk6CistICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0X2xpbmUg PSBsaW5lCistICAgICAgICAgICAgICAgIGNvbnRpbnVlCistCistICAgICAgICAgICAgIyBQYXJz ZSB0aGUgaG9zdCB0cmlwbGV0LgorLSAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCAoJ0hv c3QgICBpcyAnKToKKy0gICAgICAgICAgICAgICAgc2VsZi5ob3N0X2xpbmUgPSBsaW5lCistICAg ICAgICAgICAgICAgIGNvbnRpbnVlCistCistICAgICAgICAgICAgIyBQYXJzZSB0aGUgYWNhdHMg cHJlbWFibGUuCistICAgICAgICAgICAgaWYgbGluZSA9PSAnXHRcdD09PSBhY2F0cyBjb25maWd1 cmF0aW9uID09PVxuJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5wYXJzZV9hY2F0c19ydW4gKGZp bGVuYW1lLCBmaWxlKQorLSAgICAgICAgICAgICAgICBjb250aW51ZQorLQorLSAgICAgICAgICAg ICMgUGFyc2UgdGhlIHRvb2wgbmFtZS4KKy0gICAgICAgICAgICBtYXRjaCA9IHNlbGYudG9vbF9y ZS5tYXRjaCAobGluZSkKKy0gICAgICAgICAgICBpZiBtYXRjaDoKKy0gICAgICAgICAgICAgICAg dG9vbCA9IHNlbGYuZ2V0X3Rvb2wgKG1hdGNoLmdyb3VwICgxKSkKKy0gICAgICAgICAgICAgICAg Y29udGludWUKKy0KKy0gICAgICAgICAgICAjIFNraXAgb3ZlciB0aGUgZmluYWwgc3VtbWFyeSAo d2hpY2ggd2UgaW5zdGVhZCBjcmVhdGUgZnJvbQorLSAgICAgICAgICAgICMgaW5kaXZpZHVhbCBy dW5zKSBhbmQgcGFyc2UgdGhlIHZlcnNpb24gb3V0cHV0LgorLSAgICAgICAgICAgIGlmIHRvb2wg YW5kIGxpbmUgPT0gJ1x0XHQ9PT0gJyArIHRvb2wubmFtZSArICcgU3VtbWFyeSA9PT1cbic6Cist ICAgICAgICAgICAgICAgIGlmIGZpbGUucmVhZGxpbmUoKSAhPSAnXG4nOgorLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdleHBlY3RlZCBibGFuayBsaW5lIGFmdGVy IHN1bW1hcnknKQorLSAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX2ZpbmFsX3N1bW1hcnkgKGZp bGVuYW1lLCBmaWxlKQorLSAgICAgICAgICAgICAgICBjb250aW51ZQorLQorLSAgICAgICAgICAg ICMgUGFyc2UgdGhlIGNvbXBsZXRpb24gbGluZS4gIEluIHRoZSBjYXNlIHdoZXJlIHNldmVyYWwg ZmlsZXMKKy0gICAgICAgICAgICAjIGFyZSBiZWluZyBwYXJzZWQsIHBpY2sgdGhlIG9uZSB3aXRo IHRoZSBsYXRlc3QgdGltZS4KKy0gICAgICAgICAgICBtYXRjaCA9IHNlbGYuY29tcGxldGVkX3Jl Lm1hdGNoIChsaW5lKQorLSAgICAgICAgICAgIGlmIG1hdGNoOgorLSAgICAgICAgICAgICAgICB0 aW1lID0gc2VsZi5wYXJzZV90aW1lIChtYXRjaC5ncm91cCAoMSkpCistICAgICAgICAgICAgICAg IGlmIG5vdCBzZWxmLmVuZF9saW5lIG9yIHNlbGYuZW5kX2xpbmVbMF0gPCB0aW1lOgorLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5lbmRfbGluZSA9ICh0aW1lLCBsaW5lKQorLSAgICAgICAgICAg ICAgICBjb250aW51ZQorLQorLSAgICAgICAgICAgICMgU2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3Vy ZSB0aGF0IGltcG9ydGFudCB0ZXh0IGRvZXNuJ3QgZ2V0CistICAgICAgICAgICAgIyBkcm9wcGVk IGFjY2lkZW50YWxseS4KKy0gICAgICAgICAgICBpZiBzdHJpY3QgYW5kIGxpbmUuc3RyaXAoKSAh PSAnJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICd1bnJlY29nbmlz ZWQgbGluZTogJyArIGxpbmVbOi0xXSkKKy0KKy0gICAgIyBPdXRwdXQgYSBzZWdtZW50IG9mIHRl eHQuCistICAgIGRlZiBvdXRwdXRfc2VnbWVudCAoc2VsZiwgc2VnbWVudCk6CistICAgICAgICB3 aXRoIHNhZmVfb3BlbiAoc2VnbWVudC5maWxlbmFtZSkgYXMgZmlsZToKKy0gICAgICAgICAgICBm aWxlLnNlZWsgKHNlZ21lbnQuc3RhcnQpCistICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UgKHNl Z21lbnQubGluZXMpOgorLSAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlIChmaWxlLnJl YWRsaW5lKCkpCistCistICAgICMgT3V0cHV0IGEgc3VtbWFyeSBnaXZpbmcgdGhlIG51bWJlciBv ZiB0aW1lcyBlYWNoIHR5cGUgb2YgcmVzdWx0IGhhcworLSAgICAjIGJlZW4gc2Vlbi4KKy0gICAg ZGVmIG91dHB1dF9zdW1tYXJ5IChzZWxmLCB0b29sLCBjb3VudHMpOgorLSAgICAgICAgZm9yIGkg aW4gcmFuZ2UgKGxlbiAoc2VsZi5jb3VudF9uYW1lcykpOgorLSAgICAgICAgICAgIG5hbWUgPSBz ZWxmLmNvdW50X25hbWVzW2ldCistICAgICAgICAgICAgIyBkZWphZ251IG9ubHkgcHJpbnRzIHJl c3VsdCB0eXBlcyB0aGF0IHdlcmUgc2VlbiBhdCBsZWFzdCBvbmNlLAorLSAgICAgICAgICAgICMg YnV0IGFjYXRzIGFsd2F5cyBwcmludHMgYSBudW1iZXIgb2YgdW5leHBlY3RlZCBmYWlsdXJlcy4K Ky0gICAgICAgICAgICBpZiAoY291bnRzW2ldID4gMAorLSAgICAgICAgICAgICAgICBvciAodG9v bC5uYW1lID09ICdhY2F0cycKKy0gICAgICAgICAgICAgICAgICAgIGFuZCBuYW1lLnN0YXJ0c3dp dGggKCcjIG9mIHVuZXhwZWN0ZWQgZmFpbHVyZXMnKSkpOgorLSAgICAgICAgICAgICAgICBzeXMu c3Rkb3V0LndyaXRlICgnJXMlZFxuJyAlIChuYW1lLCBjb3VudHNbaV0pKQorLQorLSAgICAjIE91 dHB1dCB1bmlmaWVkIC5sb2cgb3IgLnN1bSBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIHZh cmlhdGlvbiwKKy0gICAgIyB3aXRoIGEgc3VtbWFyeSBhdCB0aGUgZW5kLgorLSAgICBkZWYgb3V0 cHV0X3ZhcmlhdGlvbiAoc2VsZiwgdG9vbCwgdmFyaWF0aW9uKToKKy0gICAgICAgIHNlbGYub3V0 cHV0X3NlZ21lbnQgKHZhcmlhdGlvbi5oZWFkZXIpCistICAgICAgICBmb3IgaGFybmVzcyBpbiBz b3J0ZWQgKHZhcmlhdGlvbi5oYXJuZXNzZXMudmFsdWVzKCksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGtleSA9IGF0dHJnZXR0ZXIgKCduYW1lJykpOgorLSAgICAgICAgICAgIHN5 cy5zdGRvdXQud3JpdGUgKCdSdW5uaW5nICcgKyBoYXJuZXNzLm5hbWUgKyAnIC4uLlxuJykKKy0g ICAgICAgICAgICBpZiBzZWxmLmRvX3N1bToKKy0gICAgICAgICAgICAgICAgaGFybmVzcy5yZXN1 bHRzLnNvcnQoKQorLSAgICAgICAgICAgICAgICBmb3IgKGtleSwgbGluZSkgaW4gaGFybmVzcy5y ZXN1bHRzOgorLSAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAobGluZSkKKy0g ICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICAjIFJlYXJyYW5nZSB0aGUgbG9nIHNl Z21lbnRzIGludG8gdGVzdCBvcmRlciAoYnV0IHdpdGhvdXQKKy0gICAgICAgICAgICAgICAgIyBy ZWFycmFuZ2luZyB0ZXh0IHdpdGhpbiB0aG9zZSBzZWdtZW50cykuCistICAgICAgICAgICAgICAg IGZvciBrZXkgaW4gc29ydGVkIChoYXJuZXNzLnNlZ21lbnRzLmtleXMoKSk6CistICAgICAgICAg ICAgICAgICAgICBzZWxmLm91dHB1dF9zZWdtZW50IChoYXJuZXNzLnNlZ21lbnRzW2tleV0pCist ICAgICAgICAgICAgICAgIGZvciBzZWdtZW50IGluIGhhcm5lc3MuZW1wdHk6CistICAgICAgICAg ICAgICAgICAgICBzZWxmLm91dHB1dF9zZWdtZW50IChzZWdtZW50KQorLSAgICAgICAgaWYgbGVu IChzZWxmLnZhcmlhdGlvbnMpID4gMToKKy0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgn XHRcdD09PSAnICsgdG9vbC5uYW1lICsgJyBTdW1tYXJ5IGZvciAnCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKyB2YXJpYXRpb24ubmFtZSArICcgPT09XG5cbicpCistICAgICAgICAg ICAgc2VsZi5vdXRwdXRfc3VtbWFyeSAodG9vbCwgdmFyaWF0aW9uLmNvdW50cykKKy0KKy0gICAg IyBPdXRwdXQgdW5pZmllZCAubG9nIG9yIC5zdW0gaW5mb3JtYXRpb24gZm9yIGEgcGFydGljdWxh ciB0b29sLAorLSAgICAjIHdpdGggYSBzdW1tYXJ5IGF0IHRoZSBlbmQuCistICAgIGRlZiBvdXRw dXRfdG9vbCAoc2VsZiwgdG9vbCk6CistICAgICAgICBjb3VudHMgPSBzZWxmLnplcm9fY291bnRz KCkKKy0gICAgICAgIGlmIHRvb2wubmFtZSA9PSAnYWNhdHMnOgorLSAgICAgICAgICAgICMgYWNh dHMgZG9lc24ndCB1c2UgdmFyaWF0aW9ucywgc28ganVzdCBvdXRwdXQgZXZlcnl0aGluZy4KKy0g ICAgICAgICAgICAjIEl0IGFsc28gaGFzIGEgZGlmZmVyZW50IGFwcHJvYWNoIHRvIHdoaXRlc3Bh Y2UuCistICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAoJ1x0XHQ9PT0gJyArIHRvb2wubmFt ZSArICcgdGVzdHMgPT09XG4nKQorLSAgICAgICAgICAgIGZvciB2YXJpYXRpb24gaW4gdG9vbC52 YXJpYXRpb25zLnZhbHVlcygpOgorLSAgICAgICAgICAgICAgICBzZWxmLm91dHB1dF92YXJpYXRp b24gKHRvb2wsIHZhcmlhdGlvbikKKy0gICAgICAgICAgICAgICAgc2VsZi5hY2N1bXVsYXRlX2Nv dW50cyAoY291bnRzLCB2YXJpYXRpb24uY291bnRzKQorLSAgICAgICAgICAgIHN5cy5zdGRvdXQu d3JpdGUgKCdcdFx0PT09ICcgKyB0b29sLm5hbWUgKyAnIFN1bW1hcnkgPT09XG4nKQorLSAgICAg ICAgZWxzZToKKy0gICAgICAgICAgICAjIE91dHB1dCB0aGUgcmVzdWx0cyBpbiB0aGUgdXN1YWwg ZGVqYWdudSBydW50ZXN0IGZvcm1hdC4KKy0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgn XG5cdFx0PT09ICcgKyB0b29sLm5hbWUgKyAnIHRlc3RzID09PVxuXG4nCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ1NjaGVkdWxlIG9mIHZhcmlhdGlvbnM6XG4nKQorLSAgICAgICAg ICAgIGZvciBuYW1lIGluIHNlbGYudmFyaWF0aW9uczoKKy0gICAgICAgICAgICAgICAgaWYgbmFt ZSBpbiB0b29sLnZhcmlhdGlvbnM6CistICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0Lndy aXRlICgnICAgICcgKyBuYW1lICsgJ1xuJykKKy0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRl ICgnXG4nKQorLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudmFyaWF0aW9uczoKKy0gICAg ICAgICAgICAgICAgaWYgbmFtZSBpbiB0b29sLnZhcmlhdGlvbnM6CistICAgICAgICAgICAgICAg ICAgICB2YXJpYXRpb24gPSB0b29sLnZhcmlhdGlvbnNbbmFtZV0KKy0gICAgICAgICAgICAgICAg ICAgIHN5cy5zdGRvdXQud3JpdGUgKCdSdW5uaW5nIHRhcmdldCAnCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArIHZhcmlhdGlvbi5uYW1lICsgJ1xuJykKKy0gICAgICAg ICAgICAgICAgICAgIHNlbGYub3V0cHV0X3ZhcmlhdGlvbiAodG9vbCwgdmFyaWF0aW9uKQorLSAg ICAgICAgICAgICAgICAgICAgc2VsZi5hY2N1bXVsYXRlX2NvdW50cyAoY291bnRzLCB2YXJpYXRp b24uY291bnRzKQorLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCdcblx0XHQ9PT0gJyAr IHRvb2wubmFtZSArICcgU3VtbWFyeSA9PT1cblxuJykKKy0gICAgICAgIHNlbGYub3V0cHV0X3N1 bW1hcnkgKHRvb2wsIGNvdW50cykKKy0KKy0gICAgZGVmIG1haW4gKHNlbGYpOgorLSAgICAgICAg c2VsZi5wYXJzZV9jbWRsaW5lKCkKKy0gICAgICAgIHRyeToKKy0gICAgICAgICAgICAjIFBhcnNl IHRoZSBpbnB1dCBmaWxlcy4KKy0gICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gc2VsZi5maWxl czoKKy0gICAgICAgICAgICAgICAgd2l0aCBzYWZlX29wZW4gKGZpbGVuYW1lKSBhcyBmaWxlOgor LSAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJzZV9maWxlIChmaWxlbmFtZSwgZmlsZSkKKy0K Ky0gICAgICAgICAgICAjIERlY2lkZSB3aGF0IHRvIG91dHB1dC4KKy0gICAgICAgICAgICBpZiBs ZW4gKHNlbGYudmFyaWF0aW9ucykgPT0gMDoKKy0gICAgICAgICAgICAgICAgc2VsZi52YXJpYXRp b25zID0gc29ydGVkIChzZWxmLmtub3duX3ZhcmlhdGlvbnMpCistICAgICAgICAgICAgZWxzZToK Ky0gICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi52YXJpYXRpb25zOgorLSAgICAgICAg ICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5rbm93bl92YXJpYXRpb25zOgorLSAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZmF0YWwgKE5vbmUsICdubyByZXN1bHRzIGZvciAnICsg bmFtZSkKKy0gICAgICAgICAgICBpZiBsZW4gKHNlbGYudG9vbHMpID09IDA6CistICAgICAgICAg ICAgICAgIHNlbGYudG9vbHMgPSBzb3J0ZWQgKHNlbGYucnVucy5rZXlzKCkpCistCistICAgICAg ICAgICAgIyBPdXRwdXQgdGhlIGhlYWRlci4KKy0gICAgICAgICAgICBpZiBzZWxmLnN0YXJ0X2xp bmU6CistICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKHNlbGYuc3RhcnRfbGluZVsx XSkKKy0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlIChzZWxmLm5hdGl2ZV9saW5lKQorLSAg ICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKHNlbGYudGFyZ2V0X2xpbmUpCistICAgICAgICAg ICAgc3lzLnN0ZG91dC53cml0ZSAoc2VsZi5ob3N0X2xpbmUpCistICAgICAgICAgICAgc3lzLnN0 ZG91dC53cml0ZSAoc2VsZi5hY2F0c19wcmVtYWJsZSkKKy0KKy0gICAgICAgICAgICAjIE91dHB1 dCB0aGUgbWFpbiBib2R5LgorLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudG9vbHM6Cist ICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYucnVuczoKKy0gICAgICAgICAgICAg ICAgICAgIHNlbGYuZmF0YWwgKE5vbmUsICdubyByZXN1bHRzIGZvciAnICsgbmFtZSkKKy0gICAg ICAgICAgICAgICAgc2VsZi5vdXRwdXRfdG9vbCAoc2VsZi5ydW5zW25hbWVdKQorLQorLSAgICAg ICAgICAgICMgT3V0cHV0IHRoZSBmb290ZXIuCistICAgICAgICAgICAgaWYgbGVuIChzZWxmLmFj YXRzX2ZhaWx1cmVzKSA+IDA6CistICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCcq KiogRkFJTFVSRVM6ICcKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnICcu am9pbiAoc2VsZi5hY2F0c19mYWlsdXJlcykgKyAnXG4nKQorLSAgICAgICAgICAgIHN5cy5zdGRv dXQud3JpdGUgKHNlbGYudmVyc2lvbl9vdXRwdXQpCistICAgICAgICAgICAgaWYgc2VsZi5lbmRf bGluZToKKy0gICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAoc2VsZi5lbmRfbGluZVsx XSkKKy0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CistICAgICAgICAgICAgc2VsZi5mYXRh bCAoZS5maWxlbmFtZSwgZS5zdHJlcnJvcikKKy0KKy1Qcm9nKCkubWFpbigpCgpkaWZmIC0tZ2l0 IGEvZ2RiLXB5LWZyYW1lLXJpcC10ZXN0LWZpeC5wYXRjaCBiL2dkYi1weS1mcmFtZS1yaXAtdGVz dC1maXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3YTkzMGMuLjAwMDAw MDAKLS0tIGEvZ2RiLXB5LWZyYW1lLXJpcC10ZXN0LWZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDUzICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE1 LTAxL21zZzAwMTEwLmh0bWwKLVN1YmplY3Q6IFt0ZXN0c3VpdGUgcGF0Y2hdIEZpeCBuZXcgRkFJ TDogcHktZnJhbWUuZXhwOiB0ZXN0IEZyYW1lLnJlYWRfcmVnaXN0ZXIocmlwKQotCi0KLS0tLzA0 dzZldkc4WGxMbDNmdAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lp Ci1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0KLWZvciB4ODZfNjQgLW0zMiBy dW4gb25lIGdldHM6Ci0KLStGQUlMOiBnZGIucHl0aG9uL3B5LWZyYW1lLmV4cDogdGVzdCBGcmFt ZS5yZWFkX3JlZ2lzdGVyKHJpcCkKLQotSSBkbyBub3QgaGF2ZSB4MzIgT1MgaGVyZSBidXQgdGhl ICVyaXAgdGVzdCBzaG91bGQgUEFTUyB0aGVyZSBJIHRoaW5rLgotCi1PSyBmb3IgY2hlY2staW4/ Ci0KLVRoZSBjb2RlIGlzIHRoZXJlIHNpbmNlOgotCWNvbW1pdCA1ZjNiOTljZmVkMzgwM2YwYjA5 OTE1MmY1NGFhYzdjYjkwYTJiOTI2Ci0JQXV0aG9yOiBTYXNoYSBTbXVuZGFrIDxhc211bmRha0Bn b29nbGUuY29tPgotCURhdGU6ICAgV2VkIFNlcCAzIDE2OjM0OjQ3IDIwMTQgLTA3MDAKLQkgICAg QWRkIHN1cHBvcnQgZm9yIHJlYWRpbmcgZnJhbWUgcmVnaXN0ZXJzIHRvIFB5dGhvbiBBUEkuCi0K LQotSmFuCi0KLS0tLzA0dzZldkc4WGxMbDNmdAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEK LQotZ2RiL3Rlc3RzdWl0ZS8KLTIwMTUtMDEtMDcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLQotCSogZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgKHRlc3QgRnJh bWUucmVhZF9yZWdpc3RlcihyaXApKTogVXNlCi0JaXNfYW1kNjRfcmVnc190YXJnZXQuCi0KLWRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAotaW5kZXggYmYyZTFjZS4uOTg0YWNmYyAx MDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKLSsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKLUBAIC0xMDYsNyArMTA2LDcg QEAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoJ3Jlc3VsdCA9ICVzJyAlIChmMC5yZWFkX3JlZ2lz dGVyKCdwYycpID09IGYwLnBjKCkpKSIgXAotICAgInRlc3QgRnJhbWUucmVhZF9yZWdpc3Rlcihw YykiCi0gCi0gIyBPbiB4ODYtNjQsIFBDIGlzIGluICRyaXAgcmVnaXN0ZXIuCi0taWYge1tpc3Rh cmdldCB4ODZfNjQtKl19IHsKLStpZiB7W2lzX2FtZDY0X3JlZ3NfdGFyZ2V0XX0gewotICAgICBn ZGJfdGVzdCAicHl0aG9uIHByaW50ICgncmVzdWx0ID0gJXMnICUgKGYwLnJlYWRfcmVnaXN0ZXIo J3BjJykgPT0gZjAucmVhZF9yZWdpc3RlcigncmlwJykpKSIgXAotIAkiID0gVHJ1ZSIgXAotIAki dGVzdCBGcmFtZS5yZWFkX3JlZ2lzdGVyKHJpcCkiCi0KLS0tLzA0dzZldkc4WGxMbDNmdC0tCi0K CmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoIGIvZ2RiLXJo Yno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAppbmRleCAyOGU2YWJjLi5mMDhmOTc4IDEwMDY0 NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKQEAgLTQ2MywxMCArNDYzLDEwIEBAIENvbnRlbnQt VHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250 ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtbWFpbi5wYXRjaAog Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYworSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL2FkYS1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MDgzMTg3 MTcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hZGEtbGFuZy5jCTIwMTUtMDEt MDYgMjI6NDQ6NDMuMTY0MzI2NzUyICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmln L2dkYi9hZGEtbGFuZy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODEwNDY2ODE2ICswMTAwCisrKysg Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYWRhLWxhbmcuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY1 MDQ4MzM2OCArMDEwMAogQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpkZXNj X2JvdW5kc190eXBlIChzdAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfYm91bmRzIChz dHJ1Y3QgdmFsdWUgKik7CkBAIC02OTgsNyArNjk4LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2FkYS1sYW5nLmMKICAgIGdkYl9ieXRlICpidWYgPSBhbGxvY2EgKGxlbik7CiAg ICBDT1JFX0FERFIgYWRkcjsKICAKLUBAIC02NDA1LDcgKzY0MDgsNyBAQCB2YWx1ZV90YWdfZnJv bV9jb250ZW50c19hbmRfYWRkcmVzcyAoc3RyCitAQCAtNjQzNiw3ICs2NDM5LDcgQEAgdmFsdWVf dGFnX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHN0cgogIAkJCQkgICAgIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT1JF X0FERFIgYWRkcmVzcykKICB7CkBAIC03MDcsNyArNzA3LDcgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmMKICAgIHN0cnVjdCB0eXBlICp0YWdfdHlwZTsKICAKICAg IGlmIChmaW5kX3N0cnVjdF9maWVsZCAoIl90YWciLCB0eXBlLCAwLCAmdGFnX3R5cGUsICZ0YWdf Ynl0ZV9vZmZzZXQsCi1AQCAtNjg3MCw3ICs2ODczLDcgQEAgYWRhX2luX3ZhcmlhbnQgKExPTkdF U1QgdmFsLCBzdHJ1Y3QgdHlwZQorQEAgLTY5MDEsNyArNjkwNCw3IEBAIGFkYV9pbl92YXJpYW50 IChMT05HRVNUIHZhbCwgc3RydWN0IHR5cGUKICAgICBvbmx5IGluIHRoYXQgaXQgY2FuIGhhbmRs ZSBwYWNrZWQgdmFsdWVzIG9mIGFyYml0cmFyeSB0eXBlLiAgKi8KICAKICBzdGF0aWMgc3RydWN0 IHZhbHVlICoKQEAgLTcxNiw3ICs3MTYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICph cmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLUBAIC02ODgyLDcgKzY4ODUsNyBA QCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUKK0BAIC02OTEzLDcgKzY5 MTYsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUKICAKICAgIGlm IChUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBmaWVsZG5vKSAhPSAwKQogICAgICB7CkBA IC03MjUsNyArNzI1LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5n LmMKICAgICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBm aWVsZG5vKTsKICAKICAgICAgICByZXR1cm4gYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFs IChhcmcxLCB2YWx1ZV9jb250ZW50cyAoYXJnMSksCi1AQCAtNjkwOSw5ICs2OTEyLDkgQEAgYWRh X3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNjk0MCw5ICs2OTQzLDkg QEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCiAgICAgUmV0dXJucyAx IGlmIGZvdW5kLCAwIG90aGVyd2lzZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNzM3LDcgKzcz Nyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hZGEtbGFuZy5jCiAgCQkgICBp bnQgKmluZGV4X3ApCiAgewogICAgaW50IGk7Ci1AQCAtNjkyOSw4ICs2OTMyLDggQEAgZmluZF9z dHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cgorQEAgLTY5NjAsOCArNjk2Myw4IEBA IGZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHIKICAKICAgIGZvciAoaSA9 IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpICs9IDEpCiAgICAgIHsKQEAgLTc0OCw3ICs3 NDgsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogICAgICAg IGNvbnN0IGNoYXIgKnRfZmllbGRfbmFtZSA9IFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSk7CiAg CiAgICAgICAgaWYgKHRfZmllbGRfbmFtZSA9PSBOVUxMKQotQEAgLTcwMDAsNyArNzAwMyw3IEBA IG51bV92aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNzAzMSw3ICs3MDM0 LDcgQEAgbnVtX3Zpc2libGVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICBTZWFyY2hl cyByZWN1cnNpdmVseSB0aHJvdWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAg Ki8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc1Nyw3ICs3NTcsNyBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQgaTsKLUBAIC03MDMzLDcgKzcwMzYs NyBAQCBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hhciAqbmFtZSwgc3RyCitAQCAtNzA2NCw3 ICs3MDY3LDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgogICAg ICAgICAgICBpbnQgajsKICAgICAgICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBhZGFf Y2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLAogIAkJCQkJCQkJCWkpKTsKQEAg LTc2Niw3ICs3NjYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcu YwogIAogICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgVFlQRV9ORklFTERTIChmaWVsZF90eXBl KTsgaiArPSAxKQogICAgICAgICAgICAgIHsKLUBAIC03MDUxLDggKzcwNTQsOCBAQCBhZGFfc2Vh cmNoX3N0cnVjdF9maWVsZCAoY2hhciAqbmFtZSwgc3RyCitAQCAtNzA4Miw4ICs3MDg1LDggQEAg YWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgogICAgcmV0dXJuIE5VTEw7 CiAgfQogIApAQCAtNzc3LDcgKzc3Nyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9hZGEtbGFuZy5jCiAgCiAgCiAgLyogUmV0dXJuIGZpZWxkICNJTkRFWCBpbiBBUkcsIHdoZXJl IHRoZSBpbmRleCBpcyB0aGF0IHJldHVybmVkIGJ5Ci1AQCAtNzA2MSw3ICs3MDY0LDcgQEAgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqYWRhX2luZGV4X3N0cnVjdF9maQorQEAgLTcwOTIsNyArNzA5NSw3 IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmkKICAgKiBJZiBmb3Vu ZCwgcmV0dXJuIHZhbHVlLCBlbHNlIHJldHVybiBOVUxMLiAgKi8KICAKICBzdGF0aWMgc3RydWN0 IHZhbHVlICoKQEAgLTc4Niw3ICs3ODYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvYWRhLWxhbmcuYwogIAkJCXN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHJldHVybiBhZGFf aW5kZXhfc3RydWN0X2ZpZWxkXzEgKCZpbmRleCwgYXJnLCBvZmZzZXQsIHR5cGUpOwotQEAgLTcw NzMsNyArNzA3Niw3IEBAIGFkYV9pbmRleF9zdHJ1Y3RfZmllbGQgKGludCBpbmRleCwgc3RydWMK K0BAIC03MTA0LDcgKzcxMDcsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgs IHN0cnVjCiAgICogKklOREVYX1AuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAt Nzk1LDcgKzc5NSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hZGEtbGFuZy5j CiAgCQkJICBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQgaTsKLUBAIC03MTYzLDcgKzcx NjYsOCBAQCBhZGFfdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICphcmcsCitAQCAtNzE5 NCw3ICs3MTk3LDggQEAgYWRhX3ZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2YWx1ZSAqYXJnLAog ICAgICB2ID0gYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKG5hbWUsIGFyZywgMCwgdCk7CiAgICBl bHNlCiAgICAgIHsKQEAgLTgwNSw3ICs4MDUsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYWRhLWxhbmcuYwogICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlOwogICAgICAg IENPUkVfQUREUiBhZGRyZXNzOwogIAotQEAgLTc0ODAsOCArNzQ4NCw4IEBAIGFkYV9jb2VyY2Vf cmVmIChzdHJ1Y3QgdmFsdWUgKnZhbDApCitAQCAtNzUxMSw4ICs3NTE1LDggQEAgYWRhX2NvZXJj ZV9yZWYgKHN0cnVjdCB2YWx1ZSAqdmFsMCkKICAvKiBSZXR1cm4gT0ZGIHJvdW5kZWQgdXB3YXJk IGlmIG5lY2Vzc2FyeSB0byBhIG11bHRpcGxlIG9mCiAgICAgQUxJR05NRU5UIChhIHBvd2VyIG9m IDIpLiAgKi8KICAKQEAgLTgxNiw3ICs4MTYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYWRhLWxhbmcuYwogIHsKICAgIHJldHVybiAob2ZmICsgYWxpZ25tZW50IC0gMSkgJiB+ KGFsaWdubWVudCAtIDEpOwogIH0KLUBAIC03ODYzLDEwICs3ODY3LDkgQEAgYWRhX3RlbXBsYXRl X3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorQEAgLTc4OTQsMTAgKzc4OTgsOSBAQCBhZGFf dGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCiAgICBzdHJ1Y3QgdmFsdWUgKm1h cmsgPSB2YWx1ZV9tYXJrICgpOwogICAgc3RydWN0IHZhbHVlICpkdmFsOwogICAgc3RydWN0IHR5 cGUgKnJ0eXBlOwpAQCAtODI5LDcgKzgyOSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9hZGEtbGFuZy5jCiAgICBpbnQgZjsKICAKICAgIC8qIENvbXB1dGUgdGhlIG51bWJlciBv ZiBmaWVsZHMgaW4gdGhpcyByZWNvcmQgdHlwZSB0aGF0IGFyZSBnb2luZwotQEAgLTc5NDQsNyAr Nzk0Nyw3IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC03 OTc1LDcgKzc5NzgsNyBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3Ry CiAgCSAgICAgdGhhdCBmb2xsb3cgdGhpcyBvbmUuICAqLwogIAkgIGlmIChhZGFfaXNfYWxpZ25l cl90eXBlIChmaWVsZF90eXBlKSkKICAJICAgIHsKQEAgLTgzOCw3ICs4MzgsNyBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogIAogIAkgICAgICBmaWVsZF92YWxh ZGRyID0gY29uZF9vZmZzZXRfaG9zdCAoZmllbGRfdmFsYWRkciwgZmllbGRfb2Zmc2V0KTsKICAJ ICAgICAgZmllbGRfYWRkcmVzcyA9IGNvbmRfb2Zmc2V0X3RhcmdldCAoZmllbGRfYWRkcmVzcywg ZmllbGRfb2Zmc2V0KTsKLUBAIC04MDgwLDExICs4MDgzLDExIEBAIGFkYV90ZW1wbGF0ZV90b19m aXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC04MTExLDExICs4MTE0LDExIEBAIGFkYV90ZW1w bGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKICAgIGlmIChUWVBFX0xFTkdUSCAodHlw ZSkgPD0gMCkKICAgICAgewogICAgICAgIGlmIChUWVBFX05BTUUgKHJ0eXBlKSkKQEAgLTg1NCw3 ICs4NTQsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogICAg ICB9CiAgICBlbHNlCiAgICAgIHsKLUBAIC04NTA4LDcgKzg1MTEsOCBAQCB0b19maXhlZF9hcnJh eV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsCitAQCAtODUzOSw3ICs4NTQyLDggQEAgdG9fZml4 ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLAogIAkgdHlwZSB3YXMgYSByZWd1bGFy IChub24tcGFja2VkKSBhcnJheSB0eXBlLiAgQXMgYSByZXN1bHQsIHRoZQogIAkgYml0c2l6ZSBv ZiB0aGUgYXJyYXkgZWxlbWVudHMgbmVlZHMgdG8gYmUgc2V0IGFnYWluLCBhbmQgdGhlIGFycmF5 CiAgCSBsZW5ndGggbmVlZHMgdG8gYmUgcmVjb21wdXRlZCBiYXNlZCBvbiB0aGF0IGJpdHNpemUu ICAqLwpAQCAtODY0LDEwICs4NjQsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2FkYS1sYW5nLmMKICAgICAgICBpbnQgZWx0X2JpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUg KHR5cGUwLCAwKTsKICAKICAgICAgICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHJlc3VsdCwgMCkgPSBU WVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9hZGEtbGFuZy5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYWRhLWxhbmcu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYWRhLWxhbmcu aAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUwOTMxODcyMiArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2FkYS1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjQzMjY3NTIgKzAxMDAK Ky0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxNS0wMS0yNSAw ODozOToxMC44MTI0NjY4MjUgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9hZGEt bGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjUwNDgzMzY4ICswMTAwCiBAQCAtMTc5LDcgKzE3 OSw3IEBAIGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZQogIGV4dGVybiB2 b2lkIGFkYV9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAq bmV3X3N5bWJvbCwKICAJCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CkBAIC04OTUs MTAgKzg5NSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuaAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphZGFfY29lcmNlX3RvX3NpbXBs ZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9hZGEtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9hZGEt dHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L2FkYS10eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUwOTMxODcyMiArMDEwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQzLjE2NTMyNjc1NyArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvYWRh LXR5cGVwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODEyNDY2ODI1ICswMTAwCisrKysgZ2Ri LTcuOC45MC4yMDE1MDEyNS9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQu NjUxNDgzMzcyICswMTAwCiBAQCAtODgzLDggKzg4Myw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1 Y3QgdHlwZSAqdHlwZTAsIGNvbnMKICAJICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBhZGFfdHlwZV9u YW1lICh0eXBlKTsKICAKQEAgLTkyMCwxMCArOTIwLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJlYWs7CiAgICAgICAgY2FzZSBUWVBFX0NP REVfRU5VTToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2FkYS12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYWRhLXZhbHBy aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FkYS12 YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTEwMzE4NzI3ICswMTAwCi0rKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYWRhLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjUz MjY3NTcgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2FkYS12YWxwcmlu dC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE0NDY2ODM0ICswMTAwCisrKysgZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvYWRhLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxNC42NTE0ODMzNzIg KzAxMDAKIEBAIC0zMywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKQEAg LTEwNzcsMTAgKzEwNzcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS12 YWxwcmludC5jCiAgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwK ICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkgICAgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYW5ub3RhdGUuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2Fubm90YXRl LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Fubm90YXRl LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTAzMTg3MjcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9hbm5vdGF0ZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTY1MzI2NzU3ICswMTAw CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9hbm5vdGF0ZS5jCTIwMTUtMDEtMjUg MDg6Mzk6MTAuODE0NDY2ODM0ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYW5u b3RhdGUuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY1MjQ4MzM3NiArMDEwMAogQEAgLTU0MiwyMSAr NTQyLDIxIEBAIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkKICB9CiAgDApAQCAtMTEwNywxMCAr MTEwNywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW5ub3RhdGUuYwogIH0K ICAKICB2b2lkCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW5ub3RhdGUuaAorSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2Fubm90YXRlLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Fubm90YXRlLmgJMjAxNS0wMS0wNiAyMjo0NDo0 MS41MTAzMTg3MjcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hbm5vdGF0ZS5o CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTY1MzI2NzU3ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNS5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE1NDY2ODM4ICsw MTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYW5ub3RhdGUuaAkyMDE1LTAxLTI1IDA4 OjM5OjE0LjY1MjQ4MzM3NiArMDEwMAogQEAgLTkyLDggKzkyLDggQEAgZXh0ZXJuIHZvaWQgYW5u b3RhdGVfZnJhbWVfc291cmNlX2VuZCAodgogIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX3do ZXJlICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpOwpAQCAt MTEyMiwxMCArMTEyMiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW5ub3Rh dGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lkKTsKICBleHRlcm4g dm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2FycmF5X3Nl Y3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tbGlu dXgtbmF0LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9hcm0tbGludXgtbmF0LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FybS1saW51eC1u YXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxMTMxODczMiArMDEwMAotKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE2NjMyNjc2 MiArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5j CTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE1NDY2ODM4ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjUyNDgzMzc2ICsw MTAwCiBAQCAtMTE4Niw3ICsxMTg2LDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVha3BvaW50 IChzdHJ1Y3QgdAogICAgIEFERFI/ICAqLwogIHN0YXRpYyBpbnQKQEAgLTExMzUsMTAgKzExMzUs MTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FybS1saW51eC1uYXQuYwogIHsK ICAgIGNvbnN0IHN0cnVjdCBhcm1fbGludXhfaHdicF9jYXAgKmNhcCA9IGFybV9saW51eF9nZXRf aHdicF9jYXAgKCk7CiAgICBDT1JFX0FERFIgbWF4X3dwX2xlbmd0aCwgYWxpZ25lZF9hZGRyOwot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LWdkYi5jCitJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDEyNS9nZGIvYXgtZ2RiLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQx MjI4Lm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTEyMzE4NzM3ICswMTAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXgtZ2RiLmMJMjAxNS0wMS0wNiAyMjo0NDo0 My4xNjYzMjY3NjIgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2F4LWdk Yi5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE3NDY2ODQ2ICswMTAwCisrKysgZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvYXgtZ2RiLmMJMjAxNS0wMS0yNSAwODozOToxNC42NTM0ODMzODEgKzAxMDAK IEBAIC04MiwxMiArODIsMTIgQEAgc3RhdGljIHZvaWQgZ2VuX3RyYWNlZF9wb3AgKHN0cnVjdCBn ZGJhcgogIHN0YXRpYyB2b2lkIGdlbl9zaWduX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwg c3RydWN0IHR5cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4 cHIgKiwgc3RydWN0IHR5cGUgKik7CkBAIC0xMjM4LDEwICsxMjM4LDEwIEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAgaW50 IG5iYXNlcyA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvYXgtZ2VuZXJhbC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIv YXgtZ2VuZXJhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9heC1nZW5lcmFsLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTIzMTg3MzcgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC1nZW5lcmFsLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4x NjczMjY3NjcgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2F4LWdlbmVy YWwuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjgxODQ2Njg1MSArMDEwMAorKysrIGdkYi03LjguOTAu MjAxNTAxMjUvZ2RiL2F4LWdlbmVyYWwuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY1MzQ4MzM4MSAr MDEwMAogQEAgLTE5Myw3ICsxOTMsNyBAQCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIg KngsIGludCBuCiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQ UiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwpAQCAtMTI1MSwxMCArMTI1MSwxMCBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXgtZ2VuZXJhbC5jCiAgewogICAgLyogTiBtdXN0IGZp dCBpbiBhIGJ5dGUuICAqLwogICAgaWYgKG4gPCAwIHx8IG4gPiAyNTUpCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYXguaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2F4 LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2F4LmgJMjAx NS0wMS0wNiAyMjo0NDo0MS41MTIzMTg3MzcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9heC5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTY3MzI2NzY3ICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNS5vcmlnL2dkYi9heC5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE4NDY2ODUx ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYXguaAkyMDE1LTAxLTI1IDA4OjM5 OjE0LjY1NDQ4MzM4NSArMDEwMAogQEAgLTIwNyw3ICsyMDcsNyBAQCBleHRlcm4gdm9pZCBheF9l eHQgKHN0cnVjdCBhZ2VudF9leHByICpFCiAgZXh0ZXJuIHZvaWQgYXhfemVyb19leHQgKHN0cnVj dCBhZ2VudF9leHByICpFWFBSLCBpbnQgTik7CiAgCkBAIC0xMjY0LDEwICsxMjY0LDEwIEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC5oCiAgCiAgLyogQXBwZW5kIGEgZ290byBv cCB0byBFWFBSLiAgT1AgaXMgdGhlIGFjdHVhbCBvcCAobXVzdCBiZSBhb3BfZ290byBvcgogICAg IGFvcF9pZl9nb3RvKS4gIFdlIGFzc3VtZSB3ZSBkb24ndCBrbm93IHRoZSB0YXJnZXQgb2Zmc2V0 IHlldCwKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVha3BvaW50LmMKK0luZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUxNjMxODc1NiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JyZWFrcG9p bnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MDMyNjc4MSArMDEwMAorLS0tIGdkYi03LjguOTAu MjAxNTAxMjUub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODI0NDY2 ODc3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYnJlYWtwb2ludC5jCTIwMTUt MDEtMjUgMDg6Mzk6MTQuNjU3NDgzMzk4ICswMTAwCiBAQCAtMjE5MSw5ICsyMTkxLDkgQEAgc2hv dWxkX2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9jYXRpb24gKgogIAl7CiAgCSAgZnByaW50Zl91 bmZpbHRlcmVkIChnZGJfc3RkbG9nLApAQCAtMTI4MCw3ICsxMjgwLDcgQEAgSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2JyZWFrcG9pbnQuYwogIAl9CiAgICAgICAgcmV0dXJuIDA7CiAg ICAgIH0KLUBAIC02OTQzLDcgKzY5NDMsNyBAQCBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2ggKHN0 cnVjdCBhZGRyZXNzCitAQCAtNjk3Niw3ICs2OTc2LDcgQEAgYnJlYWtwb2ludF9hZGRyZXNzX21h dGNoIChzdHJ1Y3QgYWRkcmVzcwogIAogIHN0YXRpYyBpbnQKICBicmVha3BvaW50X2FkZHJlc3Nf bWF0Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBDT1JFX0FERFIgYWRk cjEsCkBAIC0xMjg5LDcgKzEyODksNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv YnJlYWtwb2ludC5jCiAgCQkJCUNPUkVfQUREUiBhZGRyMikKICB7CiAgICByZXR1cm4gKChnZGJh cmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoICgpKQotQEAgLTExNjY3 LDcgKzExNjY3LDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChzdHJ1Y3QgdmFsdQor QEAgLTExNzAwLDcgKzExNzAwLDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChzdHJ1 Y3QgdmFsdQogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZ KSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFsdWVfYWRkcmVzcyAodik7CkBAIC0x Mjk4LDEwICsxMjk4LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVha3Bv aW50LmMKICAJCSAgaW50IG51bV9yZWdzOwogIAogIAkJICBsZW4gPSAodGFyZ2V0X2V4YWN0X3dh dGNocG9pbnRzCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnJlYWtwb2ludC5oCitJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYnJlYWtwb2ludC5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9icmVha3BvaW50LmgJMjAxNS0wMS0wNiAy Mjo0NDo0MS41MTczMTg3NjEgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVh a3BvaW50LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzAzMjY3ODEgKzAxMDAKKy0tLSBnZGItNy44 LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTAxLTI1IDA4OjM5OjEwLjgy NjQ2Njg4NSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2JyZWFrcG9pbnQuaAky MDE1LTAxLTI1IDA4OjM5OjE0LjY1ODQ4MzQwMiArMDEwMAogQEAgLTIzNiw3ICsyMzYsNyBAQCBz dHJ1Y3QgYnBfdGFyZ2V0X2luZm8KICAKICAgIC8qIElmIHRoaXMgaXMgYSByYW5nZWQgYnJlYWtw b2ludCwgdGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZQpAQCAtMTMyMCwxMCArMTMyMCwxMCBA QCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBU eXBlIG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0YXJnZXRfaHdfYnBfdHlw ZSB3YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy1sYW5n LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jLWxhbmcuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0 NDo0MS41MTgzMTg3NjYgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLWxhbmcu YwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MDMyNjc4MSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAx NTAxMjUub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0wMS0yNSAwODozOToxMC44MjY0NjY4ODUgKzAx MDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jLWxhbmcuYwkyMDE1LTAxLTI1IDA4OjM5 OjE0LjY1ODQ4MzQwMiArMDEwMAogQEAgLTE4Nyw3ICsxODcsNyBAQCBjX3ByaW50Y2hhciAoaW50 IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCiAgCiAgdm9pZApAQCAtMTM1MSwxMCArMTM1MSwxMCBA QCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy1sYW5nLmMKICAKICAJCWlmIChnZXRf ZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4cGVjdF90eXBlKSwKICAJCQkJCSAm bG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2MtbGFuZy5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYy1sYW5nLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUt MDEtMDYgMjI6NDQ6NDEuNTE4MzE4NzY2ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvYy1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzEzMjY3ODYgKzAxMDAKKy0tLSBnZGIt Ny44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODI3 NDY2ODkwICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYy1sYW5nLmgJMjAxNS0w MS0yNSAwODozOToxNC42NTk0ODM0MDYgKzAxMDAKIEBAIC03NCw3ICs3NCw3IEBAIGV4dGVybiB2 b2lkIGNfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUKICAJCQkgICAgIHN0cnVjdCB1aV9maWxl ICopOwogIApAQCAtMTM5MCwxMCArMTM5MCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYy1sYW5nLmgKICAJCQkJCXN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkJCWNvbnN0 IHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg KiwKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQx LjUxODMxODc2NiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2MtdmFscHJpbnQu YwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MTMyNjc4NiArMDEwMAorLS0tIGdkYi03LjguOTAuMjAx NTAxMjUub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODI3NDY2ODkw ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYy12YWxwcmludC5jCTIwMTUtMDEt MjUgMDg6Mzk6MTQuNjU5NDgzNDA2ICswMTAwCiBAQCAtMTMyLDcgKzEzMiw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKICAKICB2b2lkCkBAIC0xNDM1LDEwICsx NDM1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLXZhbHByaW50LmMKICAg IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsKICAKICAgIG9wdHMu ZGVyZWZfcmVmID0gMTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcC1hYmkuYwor SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NwLWFiaS5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQx LjUxODMxODc2NiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NwLWFiaS5jCTIw MTUtMDEtMDYgMjI6NDQ6NDMuMTcxMzI2Nzg2ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEy NS5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjgyNzQ2Njg5MCArMDEwMAor KysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NwLWFiaS5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQu NjU5NDgzNDA2ICswMTAwCiBAQCAtNjQsMTMgKzY0LDEzIEBAIGlzX29wZXJhdG9yX25hbWUgKGNv bnN0IGNoYXIgKm5hbWUpCiAgICByZXR1cm4gKCpjdXJyZW50X2NwX2FiaS5pc19vcGVyYXRvcl9u YW1lKSAobmFtZSk7CiAgfQpAQCAtMTQ3NCwxMCArMTQ3NCwxMCBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvY3AtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqcmV0ID0gTlVMTDsK ICAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7Ci1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvY3AtYWJpLmgKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jcC1h YmkuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY3AtYWJp LmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTkzMTg3NzAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9jcC1hYmkuaAkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MTMyNjc4NiArMDEwMAor LS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvY3AtYWJpLmgJMjAxNS0wMS0yNSAwODoz OToxMC44Mjg0NjY4OTQgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jcC1hYmku aAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY1OTQ4MzQwNiArMDEwMAogQEAgLTEwOCw3ICsxMDgsNyBA QCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCiAgCQkJCQkgICAgIHN0 cnVjdCBmbl9maWVsZCAqZiwKICAJCQkJCSAgICAgaW50IGosCkBAIC0xNTMyLDEwICsxNTMyLDEw IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcC1hYmkuaAogICAgdm9pZCAoKnBy aW50X21ldGhvZF9wdHIpIChjb25zdCBnZGJfYnl0ZSAqY29udGVudHMsCiAgCQkJICAgIHN0cnVj dCB0eXBlICp0eXBlLAogIAkJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvY3AtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxOTMxODc3 MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0w MS0wNiAyMjo0NDo0My4xNzIzMjY3OTEgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9y aWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxMC44Mjk0NjY4OTggKzAxMDAK KysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jcC12YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6 Mzk6MTQuNjYwNDgzNDExICswMTAwCiBAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgdm9pZCBjcF9w cmludF9zdGF0aWNfZmllbGQgKHN0cnVjCiAgCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICopOwogIApAQCAtMTYwOSwxMCArMTYwOSwxMCBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvY3AtdmFscHJpbnQuYwogICAgICAgIGludCBza2lwOwogICAgICAgIHN0 cnVjdCB0eXBlICpiYXNlY2xhc3MgPSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAodHlw ZSwgaSkpOwogICAgICAgIGNvbnN0IGNoYXIgKmJhc2VuYW1lID0gVFlQRV9OQU1FIChiYXNlY2xh c3MpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNS9nZGIvZC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTE5MzE4Nzcw ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZC1sYW5nLmgJMjAxNS0wMS0wNiAy Mjo0NDo0My4xNzIzMjY3OTEgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2Ri L2QtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODI5NDY2ODk4ICswMTAwCisrKysgZ2RiLTcu OC45MC4yMDE1MDEyNS9nZGIvZC1sYW5nLmgJMjAxNS0wMS0yNSAwODozOToxNC42NjA0ODM0MTEg KzAxMDAKIEBAIC03MSw3ICs3MSw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kX3R5 cGUgKmJ1aWwKICAvKiBEZWZpbmVkIGluIGQtdmFscHJpbnQuYyAgKi8KICAKQEAgLTE2MjIsMTAg KzE2MjIsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2QtbGFuZy5oCiAgCQkJ IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2QtdmFscHJpbnQuYworSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2QtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6 NDEuNTE5MzE4NzcwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZC12YWxwcmlu dC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTcyMzI2NzkxICswMTAwCistLS0gZ2RiLTcuOC45MC4y MDE1MDEyNS5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxMC44Mjk0NjY4 OTggKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9kLXZhbHByaW50LmMJMjAxNS0w MS0yNSAwODozOToxNC42NjA0ODM0MTEgKzAxMDAKIEBAIC0yOSw3ICsyOSw3IEBACiAgCiAgc3Rh dGljIGludApAQCAtMTY0OCwxMCArMTY0OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZC12YWxwcmludC5jCiAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIGludCByZXQ7Ci1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvZG91Ymxlc3QuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2Rv dWJsZXN0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Rv dWJsZXN0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MjAzMTg3NzUgKzAxMDAKLSsrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9kb3VibGVzdC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTcyMzI2Nzkx ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9kb3VibGVzdC5jCTIwMTUt MDEtMjUgMDg6Mzk6MTAuODMwNDY2OTAzICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvZG91Ymxlc3QuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY2MTQ4MzQxNSArMDEwMAogQEAgLTc2 NSw3ICs3NjUsNyBAQCBmbG9hdGZvcm1hdF9mcm9tX2RvdWJsZXN0IChjb25zdCBzdHJ1Y3QKICAg ICBidXQgbm90IHBhc3NlZCBvbiBieSBHREIuICBUaGlzIHNob3VsZCBiZSBmaXhlZC4gICovCiAg CkBAIC0xNjcyLDEwICsxNjcyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9k b3VibGVzdC5jCiAgICByZXR1cm4gZm9ybWF0OwogIH0KICAKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9kd2FyZjJsb2MuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2R3 YXJmMmxvYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9k d2FyZjJsb2MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyMjMxODc4NSArMDEwMAotKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTczMzI2 Nzk2ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9kd2FyZjJsb2MuYwky MDE1LTAxLTI1IDA4OjM5OjEwLjgzMzQ2NjkxNiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMjUgMDg6NDA6MDAuNTgwNjgxMzM2ICswMTAwCiBA QCAtMTU1NywxOSArMTU1NywxOSBAQCBpbnNlcnRfYml0cyAodW5zaWduZWQgaW50IGRhdHVtLAog ICAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2guICAqLwog IApAQCAtMTc4NiwxMCArMTc4NiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv ZHdhcmYybG9jLmMKICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZSA9IE5VTEw7CiAt ICBMT05HRVNUIGJ5dGVfb2Zmc2V0OwogKyAgTE9OR0VTVCBieXRlX29mZnNldCwgYml0X29mZnNl dDsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyOwogIAogICAgdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSk7Ci0gICBpZiAoVFlQRV9DT0RFICh0eXBlKSAhPSBU WVBFX0NPREVfUFRSKQotQEAgLTIwMjUsNyArMjAyNiw3IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0yMDI2LDcgKzIwMjcsNyBAQCBpbmRpcmVjdF9waWVj ZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVj ZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9l eHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3OTgsNyArMTc5OCw3IEBAIEluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuYwogIAogICAgICAgIGlmIChiaXRf b2Zmc2V0ID4gMCkKICAJewotQEAgLTIzMDMsNyArMjMwNCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9s b2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkKK0BAIC0yMzA5LDcgKzIzMTAsNyBAQCBkd2FyZjJfZXZh bHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CiAgCSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVl ID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKICAJICAgIGdkYl9ieXRlICpjb250ZW50czsK ICAJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxfYnl0ZXM7CkBAIC0xODA3LDEwICsxODA3LDEwIEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuYwogIAogIAkgICAgaWYg KGJ5dGVfb2Zmc2V0ICsgVFlQRV9MRU5HVEggKHR5cGUpID4gbikKICAJICAgICAgaW52YWxpZF9z eW50aGV0aWNfcG9pbnRlciAoKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2Fy ZjJyZWFkLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9kd2FyZjJyZWFkLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwky MDE1LTAxLTA2IDIyOjQ0OjQxLjUyNjMxODgwNSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3NzMyNjgxNSArMDEwMAor LS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDEtMjUg MDg6Mzk6MTAuODQwNDY2OTQ2ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZHdh cmYycmVhZC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjY3NDgzNDQxICswMTAwCiBAQCAtMTg4Mywx MiArMTg4MywxMiBAQCBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoCiAg fQogIApAQCAtMTgzOSwxMCArMTgzOSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZHdhcmYycmVhZC5jCiAgCiAgCSAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF9ieXRlX3NpemUsIGN1KTsKICAJICAgICAgaWYgKGF0dHIpCi1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvZXZhbC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZXZhbC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9ldmFsLmMJMjAx NS0wMS0wNiAyMjo0NDo0MS41MjgzMTg4MTQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9ldmFsLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzgzMjY4MjAgKzAxMDAKKy0tLSBnZGIt Ny44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2V2YWwuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg0MjQ2 Njk1NCArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2V2YWwuYwkyMDE1LTAxLTI1 IDA4OjM5OjE0LjY2ODQ4MzQ0NSArMDEwMAogQEAgLTMxNCw3ICszMTQsOCBAQCBldmFsdWF0ZV9z dHJ1Y3RfdHVwbGUgKHN0cnVjdCB2YWx1ZSAqc3RyCiAgICB3aGlsZSAoLS1uYXJncyA+PSAwKQog ICAgICB7CkBAIC0xOTA1LDEwICsxOTA1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9ldmFsLmMKICAJc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsKICAKICAJZ2V0 X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZi1sYW5nLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTUt MDEtMDYgMjI6NDQ6NDEuNTI5MzE4ODE5ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZi1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzgzMjY4MjAgKzAxMDAKKy0tLSBnZGIt Ny44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODQz NDY2OTU5ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZi1sYW5nLmMJMjAxNS0w MS0yNSAwODozOToxNC42Njg0ODM0NDUgKzAxMDAKIEBAIC0xMDMsNyArMTAzLDcgQEAgZl9wcmlu dGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcwogIAogIHN0YXRpYyB2b2lkCkBAIC0x OTE4LDEwICsxOTE4LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLWxhbmcu YwogIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewog ICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGZfZ2V0X2VuY29kaW5nICh0eXBlKTsKLUlu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLWxhbmcuaAorSW5kZXg6IGdkYi03LjguOTAu MjAxNTAxMjUvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9mLWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyOTMxODgxOSArMDEwMAot KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMu MTc4MzI2ODIwICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9mLWxhbmcu aAkyMDE1LTAxLTI1IDA4OjM5OjEwLjg0MzQ2Njk1OSArMDEwMAorKysrIGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2YtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjY4NDgzNDQ1ICswMTAwCiBA QCAtMzAsNyArMzAsNyBAQCBleHRlcm4gdm9pZCBmX2Vycm9yIChjaGFyICopOwkvKiBEZWZpbmVk CiAgZXh0ZXJuIHZvaWQgZl9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBjaGFyICos IHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgIGludCwgY29uc3Qgc3RydWN0IHR5cGVfcHJp bnRfb3B0aW9ucyAqKTsKQEAgLTE5MzEsMTAgKzE5MzEsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2YtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkg Y29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICopOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFscHJpbnQuYworSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2YtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDEuNTI5MzE4ODE5ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi12YWxw cmludC5jCTIwMTUtMDEtMDYgMjI6NDU6MDcuNzQ2NDQ2MDI4ICswMTAwCistLS0gZ2RiLTcuOC45 MC4yMDE1MDEyNS5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxMC44NDM0 NjY5NTkgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9mLXZhbHByaW50LmMJMjAx NS0wMS0yNSAwODozOToxNC42Njg0ODM0NDUgKzAxMDAKIEBAIC0zOCw3ICszOCw3IEBAIGV4dGVy biB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQKICBzdGF0aWMgdm9pZCBpbmZvX2Nv bW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CiAgc3RhdGljIHZvaWQgZjc3X2dldF9keW5hbWlj X2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOwpAQCAtMTk5NCwxMCArMTk5NCwx MCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi12YWxwcmludC5jCiAgCSAgICAg Y29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvZmluZHZhci5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZmluZHZh ci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9maW5kdmFy LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MjkzMTg4MTkgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9maW5kdmFyLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzkzMjY4MjUgKzAxMDAK Ky0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDE1LTAxLTI1IDA4 OjM5OjEwLjg0NDQ2Njk2MyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2ZpbmR2 YXIuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY2OTQ4MzQ0OSArMDEwMAogQEAgLTYyNiw3ICs2MjYs NyBAQCBzdHJ1Y3QgdmFsdWUgKgogIGRlZmF1bHRfdmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IHJlZ251bSwgc3RydWN0IGZyYW1lX2lkIGZyYW1lX2lkKQpAQCAtMjAz MCwxMCArMjAzMCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZmluZHZhci5j CiAgCiAgICAgICAgLyogSWYgdGhlIHJlZ2lzdGVyIGxlbmd0aCBpcyBsYXJnZXIgdGhhbiB0aGUg bnVtYmVyIG9mIGJ5dGVzCiAgICAgICAgICAgcmVtYWluaW5nIHRvIGNvcHksIHRoZW4gb25seSBj b3B5IHRoZSBhcHByb3ByaWF0ZSBieXRlcy4gICovCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZnJhbWUuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2ZyYW1lLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNS0w MS0wNiAyMjo0NDo0MS41MzAzMTg4MjQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9mcmFtZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgwMzI2ODMwICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNS5vcmlnL2dkYi9mcmFtZS5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODQ1NDY2 OTY3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZnJhbWUuYwkyMDE1LTAxLTI1 IDA4OjM5OjE0LjY2OTQ4MzQ0OSArMDEwMAogQEAgLTEyNjksNyArMTI2OSw3IEBAIGRlcHJlY2F0 ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGYKICAKICBpbnQKQEAgLTIwNTIsMTAgKzIw NTIsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmMKICAKICAgIC8q IENvcHkgdGhlIGRhdGEuICAqLwogICAgd2hpbGUgKGxlbiA+IDApCi1JbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZnJhbWUuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2Zy YW1lLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2ZyYW1l LmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzAzMTg4MjQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9mcmFtZS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgwMzI2ODMwICswMTAwCist LS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9mcmFtZS5oCTIwMTUtMDEtMjUgMDg6Mzk6 MTAuODQ1NDY2OTY3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZnJhbWUuaAky MDE1LTAxLTI1IDA4OjM5OjE0LjY3MDQ4MzQ1NCArMDEwMAogQEAgLTU4Myw3ICs1ODMsNyBAQCBl eHRlcm4gdm9pZCBwdXRfZnJhbWVfcmVnaXN0ZXIgKHN0cnVjdCBmCiAgICAgY29udGVudHMgYXJl IG9wdGltaXplZCBvdXQgb3IgdW5hdmFpbGFibGUsIHNldCAqT1BUSU1JWkVEUCwKICAgICAqVU5B VkFJTEFCTEVQIGFjY29yZGluZ2x5LiAgKi8KQEAgLTIwNjUsMTEgKzIwNjUsMTEgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmgKICAJCQkJICAgICBnZGJfYnl0ZSAqbXlh ZGRyLAogIAkJCQkgICAgIGludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJsZXApOwogIAot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmMKK0luZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI1L2dkYi9nZGJ0eXBlcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTMyMzE4ODM0 ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYwkyMDE1LTAxLTA2 IDIyOjQ0OjQzLjE4MTMyNjgzNSArMDEwMAotQEAgLTI0NzcsNyArMjQ3Nyw3IEBAIGFsbG9jYXRl X2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1 Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wMS0yNSAwODozOToxMC44NDg0NjY5ODAgKzAxMDAK KysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMjUgMDg6Mzk6 MTQuNjcxNDgzNDU4ICswMTAwCitAQCAtMjQ3OCw3ICsyNDc4LDcgQEAgYWxsb2NhdGVfZ25hdF9h dXhfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAogICAgIGxlYXN0IGFzIGxvbmcgYXMgT0JKRklMRS4g ICovCiAgCiAgc3RydWN0IHR5cGUgKgpAQCAtMjA3OCw3ICsyMDc4LDcgQEAgSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmMKICAJICAgY29uc3QgY2hhciAqbmFtZSwgc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtMjcx Nyw4ICsyNzE3LDggQEAgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgcwor QEAgLTI3MTgsOCArMjcxOCw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJh c2UsIHMKICAKICBzdGF0aWMgaW50CiAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0 IHR5cGUgKmJhc2UsIHN0cnVjdCB0eXBlICpkY2xhc3MsCkBAIC0yMDg5LDcgKzIwODksNyBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYwogIAkJCSAgIENPUkVfQURE UiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CiAgICBpbnQgaSwgY291bnQgPSAwOwot QEAgLTI3MjksNyArMjcyOSw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0 eXBlICoKK0BAIC0yNzMwLDcgKzI3MzAsNyBAQCBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChz dHJ1Y3QgdHlwZSAqCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkY2xh c3MpICYmIGNvdW50IDwgMjsgKytpKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKml0ZXI7 CkBAIC0yMDk4LDcgKzIwOTgsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ri dHlwZXMuYwogIAogICAgICAgIGl0ZXIgPSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAo ZGNsYXNzLCBpKSk7CiAgCi1AQCAtMjc3MCw3ICsyNzcwLDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9y X3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTI3NzEsNyArMjc3MSw3IEBAIGlzX3VuaXF1ZV9h bmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKICBpbnQKICBpc191bmlxdWVfYW5jZXN0b3Ig KHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CkBAIC0yMTA3LDcgKzIx MDcsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYwogIAogICAg cmV0dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKGJhc2UsIHZhbHVlX3R5cGUgKHZhbCks ICZvZmZzZXQsCiAgCQkJCSAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKHZhbCksCi1A QCAtMzkxNSw3ICszOTE1LDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5 cGUsCitAQCAtMzkxNiw3ICszOTE2LDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUsCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIHB1dHNfZmlsdGVyZWQgKCJcbiIp OwpAQCAtMjExNiw3ICsyMTE2LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dk YnR5cGVzLmMKICAgIGlmIChUWVBFX09CSkZJTEVfT1dORUQgKHR5cGUpKQogICAgICB7CiAgICAg ICAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzLCAib2JqZmlsZSAiKTsKLUBAIC00MDM5LDggKzQw MzksOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC00MDQw LDggKzQwNDAsOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJ CQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERfRU5VTVZBTCAodHlwZSwgaWR4KSkpOwogICAg ICAgIGVsc2UKICAJcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzICsgMiwKQEAgLTIxMjcsNyArMjEy Nyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCiAgCQkJICBU WVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlkeCkpOwogICAgICAgIGdkYl9wcmludF9ob3N0X2Fk ZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaWR4KSwgZ2RiX3N0ZG91dCk7CiAgICAgICAg cHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVzJyAoIiwKLUBAIC00Mzk3LDcgKzQzOTcsNyBAQCBj b3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTQzOTgsNyArNDM5OCw3IEBA IGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgc3RydWN0IHR5cGUgKgog IGFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCkBAIC0yMTM2LDEwICsyMTM2LDEw IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCiAgewogICAgc3Ry dWN0IHR5cGUgKnR5cGU7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlw ZXMuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0wMS0w NiAyMjo0NDo0MS41MzMzMTg4MzggKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9n ZGJ0eXBlcy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgxMzI2ODM1ICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNS5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODQ5 NDY2OTg0ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ2RidHlwZXMuaAkyMDE1 LTAxLTI1IDA4OjM5OjE0LjY3MTQ4MzQ1OCArMDEwMAogQEAgLTU5OCw3ICs1OTgsNyBAQCBzdHJ1 Y3QgbWFpbl90eXBlCiAgCSAgIGdkYmFyY2hfYml0c19iaWdfZW5kaWFuPTAgdGFyZ2V0cywgaXQg aXMgdGhlIGJpdCBvZmZzZXQgdG8KICAJICAgdGhlIExTQi4gICovCkBAIC0yMTczLDEwICsyMTcz LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5oCiAgZXh0ZXJu IHN0cnVjdCB0eXBlICphcmNoX2ludGVnZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBp bnQsIGNoYXIgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2NoYXJhY3Rlcl90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUg KmFyY2hfYm9vbGVhbl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsK LUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nbnUtdjItYWJpLmMKK0luZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9nbnUtdjItYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUz MzMxODgzOCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dudS12Mi1hYmkuYwky MDE1LTAxLTA2IDIyOjQ0OjQzLjE4MTMyNjgzNSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAx MjUub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODQ5NDY2OTg0ICsw MTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMDEtMjUg MDg6Mzk6MTQuNjcyNDgzNDYyICswMTAwCiBAQCAtODIsNyArODIsNyBAQCBnbnV2Ml9pc19vcGVy YXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lCiAgICAgVFlQRSBpcyB0aGUgdHlwZSBpbiB3aGlj aCBGIGlzIGxvY2F0ZWQuICAqLwogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMjIyOCwxMCAr MjIyOCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ251LXYyLWFiaS5jCiAg CSAgICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAg ZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2dudS12My1hYmkuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2du dS12My1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv Z251LXYzLWFiaS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM0MzE4ODQzICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvZ251LXYzLWFiaS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgx MzI2ODM1ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9nbnUtdjMtYWJp LmMJMjAxNS0wMS0yNSAwODozOToxMC44NTA0NjY5ODkgKzAxMDAKKysrKyBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi9nbnUtdjMtYWJpLmMJMjAxNS0wMS0yNSAwODozOToxNC42NzI0ODM0NjIgKzAx MDAKIEBAIC0xMDgsNyArMTA4LDcgQEAgYnVpbGRfZ2RiX3Z0YWJsZV90eXBlIChzdHJ1Y3QgZ2Ri YXJjaCAqYQogIHsKICAgIHN0cnVjdCB0eXBlICp0OwpAQCAtMjMwNiwxMCArMjMwNiwxMCBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ251LXYzLWFiaS5jCiAgICAgICAgc3RydWN0 IHR5cGUgKmJhc2V0eXBlOwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAoZG9t YWluLCBpKSkKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nby1sYW5nLmgKK0luZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nby1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUz NDMxODg0MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dvLWxhbmcuaAkyMDE1 LTAxLTA2IDIyOjQ0OjQzLjE4MjMyNjg0MCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUu b3JpZy9nZGIvZ28tbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODUwNDY2OTg5ICswMTAwCisr KysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ28tbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQu NjcyNDgzNDYyICswMTAwCiBAQCAtODUsNyArODUsNyBAQCBleHRlcm4gdm9pZCBnb19wcmludF90 eXBlIChzdHJ1Y3QgdHlwZSAqCiAgLyogRGVmaW5lZCBpbiBnby12YWxwcmludC5jLiAgKi8KICAK QEAgLTIzMTksMTAgKzIzMTksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dv LWxhbmcuaAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJ ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nby12 YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ28tdmFscHJpbnQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZ28tdmFscHJpbnQu YwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNDMxODg0MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODIzMjY4NDAgKzAx MDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0w MS0yNSAwODozOToxMC44NTE0NjY5OTMgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dk Yi9nby12YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjcyNDgzNDYyICswMTAwCiBAQCAt MzcsNyArMzcsNyBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0yMzQ1LDEwICsyMzQ1LDEwIEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nby12YWxwcmludC5jCiAgCSAgICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIENIRUNLX1RZUEVE RUYgKHR5cGUpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZi10dHJhY2UuYwor SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZi10dHJhY2UuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaW5mLXR0cmFjZS5jCTIwMTUtMDEtMDYg MjI6NDQ6NDEuNTM1MzE4ODQ4ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5m LXR0cmFjZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQwICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNS5vcmlnL2dkYi9pbmYtdHRyYWNlLmMJMjAxNS0wMS0yNSAwODozOToxMC44 NTE0NjY5OTMgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9pbmYtdHRyYWNlLmMJ MjAxNS0wMS0yNSAwODozOToxNC42NzM0ODM0NjcgKzAxMDAKIEBAIC0zNjYsNyArMzY2LDcgQEAg aW5mX3R0cmFjZV9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdAogIAogIHN0YXRpYyBpbnQK QEAgLTIzNTgsMTAgKzIzNTgsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2lu Zi10dHJhY2UuYwogIHsKICAgIHJldHVybiAxOwogIH0KLUluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9qdi1sYW5nLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9qdi1sYW5n LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2p2LWxhbmcu YwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNTMxODg0OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2p2LWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MjMyNjg0MCArMDEwMAor LS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvanYtbGFuZy5jCTIwMTUtMDEtMjUgMDg6 Mzk6MTAuODUyNDY2OTk3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvanYtbGFu Zy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjczNDgzNDY3ICswMTAwCiBAQCAtNDM2LDcgKzQzNiw3 IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGZvciAoaSA9 IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7IGkgPCBuZmllbGRzOyBpKyspCiAgICAgIHsKQEAg LTIzODAsMTAgKzIzODAsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LWxh bmcuYwogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0X2VuY29kaW5nICh0 eXBlKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9qdi1sYW5nLmgKK0luZGV4OiBn ZGItNy44LjkwLjIwMTUwMTI1L2dkYi9qdi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNTMx ODg0OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LWxhbmcuaAkyMDE1LTAx LTA2IDIyOjQ0OjQzLjE4MjMyNjg0MCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3Jp Zy9nZGIvanYtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODUyNDY2OTk3ICswMTAwCisrKysg Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvanYtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjcz NDgzNDY3ICswMTAwCiBAQCAtNDMsOCArNDMsOCBAQCBzdHJ1Y3QgYnVpbHRpbl9qYXZhX3R5cGUK ICAKICBleHRlcm4gY29uc3Qgc3RydWN0IGJ1aWx0aW5famF2YV90eXBlICpidWlsdGluX2phdmFf dHlwZSAoc3RydWN0IGdkYmFyY2ggKik7CkBAIC0yMzk1LDEwICsyMzk1LDEwIEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9qdi1sYW5nLmgKICAJCQkgICAgY29uc3Qgc3RydWN0IHZh bHVlICosCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LXZhbHByaW50LmMKK0luZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9qdi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9qdi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEu NTM1MzE4ODQ4ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvanYtdmFscHJpbnQu YwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MjMyNjg0MCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAx NTAxMjUub3JpZy9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1MjQ2Njk5 NyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2p2LXZhbHByaW50LmMJMjAxNS0w MS0yNSAwODozOToxNC42NzQ0ODM0NzEgKzAxMDAKIEBAIC0yNjUsNyArMjY1LDcgQEAgamF2YV92 YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cgogIAogIHN0YXRpYyB2b2lkCkBAIC0y NDE3LDEwICsyNDE3LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9qdi12YWxw cmludC5jCiAgCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCWNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGFuZ3VhZ2UuYworSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xhbmd1YWdlLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAxNS0wMS0wNiAyMjo0NDo0 MS41MzYzMTg4NTMgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9sYW5ndWFnZS5j CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgzMzI2ODQ0ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNS5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODUzNDY3MDAyICsw MTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGFuZ3VhZ2UuYwkyMDE1LTAxLTI1IDA4 OjM5OjE0LjY3NDQ4MzQ3MSArMDEwMAogQEAgLTcyMCw3ICs3MjAsNyBAQCB1bmtfbGFuZ19wcmlu dGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqCiAgCiAgc3RhdGljIHZvaWQKQEAgLTI0MzksMTAg KzI0MzksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xhbmd1YWdlLmMKICAJ CSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9sYW5ndWFnZS5oCitJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGFuZ3VhZ2UuaAkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUzNjMxODg1MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xhbmd1YWdl LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODMzMjY4NDQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIw MTUwMTI1Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0wMS0yNSAwODozOToxMC44NTM0NjcwMDIg KzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9sYW5ndWFnZS5oCTIwMTUtMDEtMjUg MDg6Mzk6MTQuNjc0NDgzNDcxICswMTAwCiBAQCAtMTg5LDcgKzE4OSw3IEBAIHN0cnVjdCBsYW5n dWFnZV9kZWZuCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSk7CiAgCkBAIC0yNDYxLDEw ICsyNDYxLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9sYW5ndWFnZS5oCiAg CQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL20yLWxhbmcuYworSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL20yLWxhbmcuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEu NTM2MzE4ODUzICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItbGFuZy5jCTIw MTUtMDEtMDYgMjI6NDQ6NDMuMTgzMzI2ODQ0ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEy NS5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNS0wMS0yNSAwODozOToxMC44NTM0NjcwMDIgKzAxMDAK KysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9tMi1sYW5nLmMJMjAxNS0wMS0yNSAwODozOTox NC42NzQ0ODM0NzEgKzAxMDAKIEBAIC0xMDQsMTAgKzEwNCwxMCBAQCBtMl9wcmludGNoYXIgKGlu dCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAKICBzdGF0aWMgdm9pZApAQCAtMjQ5OSwxMCArMjQ5 OSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItbGFuZy5jCiAgCSAgaSA9 IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90 aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvbTItbGFuZy5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbTItbGFuZy5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tMi1sYW5nLmgJ MjAxNS0wMS0wNiAyMjo0NDo0MS41MzYzMTg4NTMgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9tMi1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODMzMjY4NDQgKzAxMDAKKy0t LSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE1LTAxLTI1IDA4OjM5 OjEwLjg1NDQ2NzAwNiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL20yLWxhbmcu aAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY3NTQ4MzQ3NSArMDEwMAogQEAgLTM0LDcgKzM0LDcgQEAg ZXh0ZXJuIHZvaWQgbTJfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cAogIGV4dGVybiBpbnQgbTJf aXNfbG9uZ19zZXQgKHN0cnVjdCB0eXBlICp0eXBlKTsKICBleHRlcm4gaW50IG0yX2lzX3VuYm91 bmRlZF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUpOwpAQCAtMjUxMiwxMCArMjUxMiwxMCBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItbGFuZy5oCiAgCQkJICBzdHJ1Y3QgdWlf ZmlsZSAqLCBpbnQsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL20yLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbTItdHlw ZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL20y LXR5cGVwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM3MzE4ODU4ICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4x ODMzMjY4NDQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL20yLXR5cGVw cmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODU0NDY3MDA2ICswMTAwCisrKysgZ2RiLTcuOC45 MC4yMDE1MDEyNS9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wMS0yNSAwODozOToxNC42NzU0ODM0 NzUgKzAxMDAKIEBAIC0yMzAsOSArMjMwLDEyIEBAIHN0YXRpYyB2b2lkIG0yX2FycmF5IChzdHJ1 Y3QgdHlwZSAqdHlwZSwKICAJICBtMl9wcmludF9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQRSAodHlw ZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CkBAIC0yNTMyLDEwICsyNTMyLDEwIEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tMi10eXBlcHJpbnQuYwogICAgICB9CiAgICBm cHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJdIE9GICIpOwogICAgbTJfcHJpbnRfdHlwZSAoVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSksICIiLCBzdHJlYW0sIHNob3csIGxldmVsLCBmbGFncyk7Ci1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItdmFscHJpbnQuYworSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL20yLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41 MzczMTg4NTggKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tMi12YWxwcmludC5j CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgzMzI2ODQ0ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNS5vcmlnL2dkYi9tMi12YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODU0NDY3MDA2 ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTAx LTI1IDA4OjM5OjE0LjY3NTQ4MzQ3NSArMDEwMAogQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIGlu dCBwcmludF91bnBhY2tlZF9wb2ludGVyIChzdHJ1YwogIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtKTsKICBzdGF0aWMgdm9pZApAQCAtMjYwMSwxMCArMjYwMSwxMCBAQCBJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvbTItdmFscHJpbnQuYwogIAogIAkJICAvKiBMb29rIGZvciBh IE5VTEwgY2hhci4gICovCiAgCQkgIGZvciAodGVtcF9sZW4gPSAwOwotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL21lbXJhbmdlLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dk Yi9tZW1yYW5nZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9tZW1yYW5nZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM3MzE4ODU4ICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvbWVtcmFuZ2UuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NDMy Njg0OSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvbWVtcmFuZ2UuYwky MDE1LTAxLTI1IDA4OjM5OjEwLjg1NDQ2NzAwNiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL21lbXJhbmdlLmMJMjAxNS0wMS0yNSAwODozOToxNC42NzU0ODM0NzUgKzAxMDAKIEBA IC0yMSw4ICsyMSw4IEBACiAgI2luY2x1ZGUgIm1lbXJhbmdlLmgiCiAgCkBAIC0yNjE2LDEwICsy NjE2LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tZW1yYW5nZS5jCiAgewog ICAgVUxPTkdFU1QgaCwgbDsKICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tZW1y YW5nZS5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbWVtcmFuZ2UuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbWVtcmFuZ2UuaAkyMDE1LTAx LTA2IDIyOjQ0OjQxLjUzNzMxODg1OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L21lbXJhbmdlLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODQzMjY4NDkgKzAxMDAKKy0tLSBnZGIt Ny44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNS0wMS0yNSAwODozOToxMC44 NTU0NjcwMTAgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9tZW1yYW5nZS5oCTIw MTUtMDEtMjUgMDg6Mzk6MTQuNjc1NDgzNDc1ICswMTAwCiBAQCAtMzAsNyArMzAsNyBAQCBzdHJ1 Y3QgbWVtX3JhbmdlCiAgICBDT1JFX0FERFIgc3RhcnQ7CiAgCkBAIC0yNjQwLDEwICsyNjQwLDEw IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tZW1yYW5nZS5oCiAgCiAgLyogUmV0 dXJucyB0cnVlIGlmIEFERFIgaXMgaW4gUkFOR0UuICAqLwogIAotSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL21pcHMtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM3MzE4ODU4 ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1 LTAxLTA2IDIyOjQ0OjQzLjE4NDMyNjg0OSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUu b3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1NTQ2NzAxMCAr MDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNS0w MS0yNSAwODozOToxNC42NzY0ODM0ODAgKzAxMDAKIEBAIC01ODYsNyArNTg2LDcgQEAgbWlwc19s aW51eF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0CiAgCiAgc3RhdGljIGludApAQCAtMjY1 MywxMCArMjY1MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWlwcy1saW51 eC1uYXQuYwogIHsKICAgIHN0cnVjdCBwdF93YXRjaF9yZWdzIGR1bW15X3JlZ3M7CiAgICBpbnQg aTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9vcGVuY2wtbGFuZy5jCitJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvb3BlbmNsLWxhbmcuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUzODMxODg2MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL29wZW5jbC1s YW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODQzMjY4NDkgKzAxMDAKKy0tLSBnZGItNy44Ljkw LjIwMTUwMTI1Lm9yaWcvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNS0wMS0yNSAwODozOToxMC44NTY0 NjcwMTUgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9vcGVuY2wtbGFuZy5jCTIw MTUtMDEtMjUgMDg6Mzk6MTQuNjc2NDgzNDgwICswMTAwCiBAQCAtNzgsMTEgKzc4LDExIEBAIGJ1 aWx0aW5fb3BlbmNsX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGIKICAKICBzdGF0aWMgc3RydWN0 IHR5cGUgKgpAQCAtMjczMywxMCArMjczMywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvb3BlbmNsLWxhbmcuYwogIAogICAgICAgIGlmICghdmFsdWVfYml0c19zeW50aGV0aWNf cG9pbnRlciAoYy0+dmFsLAogIAkJCQkJIGMtPmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21wX29m ZnNldCwKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wLWxhbmcuYworSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjUvZ2RiL3AtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi9wLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzODMxODg2 MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3AtbGFuZy5jCTIwMTUtMDEtMDYg MjI6NDQ6NDMuMTg0MzI2ODQ5ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dk Yi9wLWxhbmcuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1NjQ2NzAxNSArMDEwMAorKysrIGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL3AtbGFuZy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjc2NDgzNDgw ICswMTAwCiBAQCAtOTUsOCArOTUsOCBAQCBwYXNjYWxfbWFpbl9uYW1lICh2b2lkKQogICAgIGFy ZSBub3QgbXVsdGlwbGUgb2YgVEFSR0VUX0NIQVJfQklUIHRoZW4gdGhlIHJlc3VsdHMgYXJlIHdy b25nCiAgICAgYnV0IHRoaXMgZG9lcyBub3QgaGFwcGVuIGZvciBGcmVlIFBhc2NhbCBub3IgZm9y IEdQQy4gICovCkBAIC0yNzg0LDEwICsyNzg0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9wLWxhbmcuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCAr PSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3AtbGFuZy5oCitJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDEyNS9nZGIvcC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQx MjI4Lm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM4MzE4ODYzICswMTAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcC1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0 My4xODQzMjY4NDkgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3AtbGFu Zy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODU2NDY3MDE1ICswMTAwCisrKysgZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvcC1sYW5nLmgJMjAxNS0wMS0yNSAwODozOToxNC42NzY0ODM0ODAgKzAxMDAK IEBAIC0zNiw3ICszNiw3IEBAIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludF90eXBlIChzdHJ1Y3Qg dHkKICBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKiwgc3Ry dWN0IHN5bWJvbCAqLAogIAkJCQkgIHN0cnVjdCB1aV9maWxlICopOwpAQCAtMjgyMiwxMCArMjgy MiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcC1sYW5nLmgKICAJCQkJCSAg ICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwKICAJCQkJCSAgICAgIGludCwKICAJCQkJ CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3AtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3AtdmFscHJp bnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcC12YWxw cmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM5MzE4ODY4ICswMTAwCi0rKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvcC12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTg1MzI2ODU0 ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9wLXZhbHByaW50LmMJMjAx NS0wMS0yNSAwODozOToxMC44NTc0NjcwMTkgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9wLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxNC42Nzc0ODM0ODQgKzAxMDAKIEBA IC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUK ICAKICB2b2lkCkBAIC0yODg3LDEwICsyODg3LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9wLXZhbHByaW50LmMKICAgICAgICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlv biBleDsKICAgICAgICBpbnQgc2tpcCA9IDA7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvcHBjLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcHBj LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9wcGMtbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzkzMTg4NjggKzAxMDAKLSsr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0 NDo0My4xODUzMjY4NTQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3Bw Yy1saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1ODQ2NzAyMyArMDEwMAorKysrIGdk Yi03LjguOTAuMjAxNTAxMjUvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0 LjY3NzQ4MzQ4NCArMDEwMAogQEAgLTE1MDEsNyArMTUwMSw3IEBAIHBwY19saW51eF9jYW5fdXNl X2h3X2JyZWFrcG9pbnQgKHN0cnVjdAogIAogIHN0YXRpYyBpbnQKQEAgLTI5MDAsMTAgKzI5MDAs MTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsK ICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1YW50aXRpZXMuICAqLwogICAgaWYgKGxlbiA8PSAw KQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ByaW50Y21kLmMKK0luZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9wcmludGNtZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi9wcmludGNtZC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQwMzE4 ODcyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHJpbnRjbWQuYwkyMDE1LTAx LTA2IDIyOjQ0OjQzLjE4NTMyNjg1NCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3Jp Zy9nZGIvcHJpbnRjbWQuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1ODQ2NzAyMyArMDEwMAorKysr IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3ByaW50Y21kLmMJMjAxNS0wMS0yNSAwODozOToxNC42 Nzg0ODM0ODggKzAxMDAKIEBAIC0yODUsNyArMjg1LDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1 Y3QgdmFsdWUgKnZhbCwgaW50CiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CkBAIC0y OTIyLDEwICsyOTIyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcmludGNt ZC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCk7CiAgCiAgICAvKiBTdHJpbmcgcHJpbnRpbmcgc2hvdWxkIGdvIHRocm91Z2ggdmFs X3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQuICAqLwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3Byb2Nmcy5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcHJvY2ZzLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTUt MDEtMDYgMjI6NDQ6NDEuNTQxMzE4ODc3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvcHJvY2ZzLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODYzMjY4NTkgKzAxMDAKKy0tLSBnZGIt Ny44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODYw NDY3MDMyICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcHJvY2ZzLmMJMjAxNS0w MS0yNSAwODozOToxNC42Nzk0ODM0OTMgKzAxMDAKIEBAIC00ODU5LDcgKzQ4NTksNyBAQCBwcm9j ZnNfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfCiAgCiAgc3RhdGljIGludApAQCAt MjkzNSwxMCArMjkzNSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHJvY2Zz LmMKICB7CiAgICAvKiBUaGUgbWFuIHBhZ2UgZm9yIHByb2MoNCkgb24gU29sYXJpcyAyLjYgYW5k IHVwIHNheXMgdGhhdCB0aGUKICAgICAgIHN5c3RlbSBjYW4gc3VwcG9ydCAidGhvdXNhbmRzIiBv ZiBoYXJkd2FyZSB3YXRjaHBvaW50cywgYnV0IGdpdmVzCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUw MTI1L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxNS0wMS0wNiAy Mjo0NDo0MS41NDEzMTg4NzcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRo b24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NjMyNjg1OSArMDEwMAor LS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJ MjAxNS0wMS0yNSAwODozOToxMC44NjA0NjcwMzIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUw MTI1L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY3OTQ4 MzQ5MyArMDEwMAogQEAgLTY4Niw3ICs2ODYsNyBAQCBwcmludF9jaGlsZHJlbiAoUHlPYmplY3Qg KnByaW50ZXIsIGNvbnN0CiAgZW51bSBleHRfbGFuZ19yYwogIGdkYnB5X2FwcGx5X3ZhbF9wcmV0 dHlfcHJpbnRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRsYW5n LApAQCAtMjk0OCwxMCArMjk0OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv cHl0aG9uL3B5LXByZXR0eXByaW50LmMKICAJCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCiAgCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCQljb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9yZWdjYWNoZS5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcmVnY2Fj aGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcmVnY2Fj aGUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0MjMxODg4MiArMDEwMAotKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODczMjY4NjQgKzAx MDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0wMS0y NSAwODozOToxMC44NjE0NjcwMzYgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9y ZWdjYWNoZS5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjgwNDgzNDk3ICswMTAwCiBAQCAtOTQxLDcg Kzk0MSw3IEBAIHR5cGVkZWYgdm9pZCAocmVnY2FjaGVfd3JpdGVfZnR5cGUpIChzdHIKICAKICBz dGF0aWMgZW51bSByZWdpc3Rlcl9zdGF0dXMKQEAgLTI5OTcsMTAgKzI5OTcsMTAgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2Fj aGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmgKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9y ZWdjYWNoZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9y ZWdjYWNoZS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQyMzE4ODgyICswMTAwCi0rKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvcmVnY2FjaGUuaAkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NzMyNjg2 NCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE1 LTAxLTI1IDA4OjM5OjEwLjg2MTQ2NzAzNiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUv Z2RiL3JlZ2NhY2hlLmgJMjAxNS0wMS0yNSAwODozOToxNC42ODA0ODM0OTcgKzAxMDAKIEBAIC05 Miw5ICs5Miw5IEBAIGV4dGVybiB2b2lkIHJlZ2NhY2hlX3Jhd193cml0ZV91bnNpZ25lZAogIAog IGV4dGVybiBlbnVtIHJlZ2lzdGVyX3N0YXR1cwpAQCAtMzAyOCwxMCArMzAyOCwxMCBAQCBJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVnY2FjaGUuaAogIAogIC8qIFNwZWNpYWwgcm91 dGluZXMgdG8gcmVhZC93cml0ZSB0aGUgUEMuICAqLwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcmVtb3Rl LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3JlbW90ZS5j CTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQ0MzE4ODkyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvcmVtb3RlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODgzMjY4NjkgKzAxMDAKKy0t LSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTUtMDEtMjUgMDg6Mzk6 MTAuODY0NDY3MDQ5ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcmVtb3RlLmMJ MjAxNS0wMS0yNSAwODozOToxNC42ODI0ODM1MDUgKzAxMDAKIEBAIC04MzcxLDcgKzgzNzEsNyBA QCBpbnQgcmVtb3RlX2h3X2JyZWFrcG9pbnRfbGltaXQgPSAtMTsKICAKICBzdGF0aWMgaW50CkBA IC0zMDQxLDEwICszMDQxLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9yZW1v dGUuYwogIHsKICAgIGlmIChyZW1vdGVfaHdfd2F0Y2hwb2ludF9sZW5ndGhfbGltaXQgPT0gMCkK ICAgICAgcmV0dXJuIDA7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3B1LW11bHRp YXJjaC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvc3B1LW11bHRpYXJjaC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zcHUtbXVsdGlhcmNo LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDUzMTg4OTcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODgzMjY4Njkg KzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwky MDE1LTAxLTI1IDA4OjM5OjEwLjg2NTQ2NzA1MyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4MzQ4MzUxMCArMDEw MAogQEAgLTExNyw3ICsxMTcsNyBAQCBzcHVfdGhyZWFkX2FyY2hpdGVjdHVyZSAoc3RydWN0IHRh cmdldF9vCiAgLyogT3ZlcnJpZGUgdGhlIHRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCBy b3V0aW5lLiAgKi8KICBzdGF0aWMgaW50CkBAIC0zMDU0LDEwICszMDU0LDEwIEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcHUtbXVsdGlhcmNoLmMKICB7CiAgICBzdHJ1Y3QgdGFy Z2V0X29wcyAqb3BzX2JlbmVhdGggPSBmaW5kX3RhcmdldF9iZW5lYXRoIChzZWxmKTsKICAKLUlu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zdGFjay5jCitJbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvc3RhY2suYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvc3RhY2suYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0NjMxODkwMiArMDEwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N0YWNrLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODkz MjY4NzQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3N0YWNrLmMJMjAx NS0wMS0yNSAwODozOToxMC44NjY0NjcwNTggKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9zdGFjay5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjgzNDgzNTEwICswMTAwCiBAQCAtMTc1 LDcgKzE3NSw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIKICAg ICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVsZXNzIGFyZ3VtZW50KS4gICovCiAg CkBAIC0zMDk2LDEwICszMDk2LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9z dGFjay5jCiAgCiAgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09IC0xKQogIAlzdGFydCA9IGdk YmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUpKTsKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1taXNjLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUw MTI1L2dkYi9zeW1taXNjLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL3N5bW1pc2MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0NjMxODkwMiArMDEwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5bW1pc2MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4 OTMyNjg3NCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvc3ltbWlzYy5j CTIwMTUtMDEtMjUgMDg6Mzk6MTAuODY2NDY3MDU4ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvc3ltbWlzYy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjg0NDgzNTE0ICswMTAwCiBA QCAtNTM0LDExICs1MzQsMTEgQEAgcHJpbnRfc3ltYm9sICh2b2lkICphcmdzKQogIAogIAljYXNl IExPQ19DT05TVF9CWVRFUzoKQEAgLTMxMTUsMTAgKzMxMTUsMTAgQEAgSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3N5bW1pc2MuYwogIAkgICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTEVO R1RIICh0eXBlKTsgaSsrKQogIAkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChvdXRmaWxlLCAiICUw MngiLAogIAkJCQkodW5zaWduZWQpIFNZTUJPTF9WQUxVRV9CWVRFUyAoc3ltYm9sKVtpXSk7Ci1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmMKK0luZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi90YXJnZXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDczMTg5MDYgKzAxMDAK LSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQz LjE5MDMyNjg3OCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvdGFyZ2V0 LmMJMjAxNS0wMS0yNSAwODozOToxMC44Njc0NjcwNjIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi90YXJnZXQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4NDQ4MzUxNCArMDEwMAog QEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGludCBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRo aQogIAkJCQkJCSBDT1JFX0FERFIsIENPUkVfQUREUiwgaW50KTsKICAKQEAgLTMxMzcsMTAgKzMx MzcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5jCiAgewogICAg cmV0dXJuIChsZW4gPD0gZ2RiYXJjaF9wdHJfYml0ICh0YXJnZXRfZ2RiYXJjaCAoKSkgLyBUQVJH RVRfQ0hBUl9CSVQpOwogIH0KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQu aAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjU0NzMxODkwNiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5o CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTkwMzI2ODc4ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNS5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTAxLTI1IDA4OjM5OjEwLjg2ODQ2NzA2NiArMDEw MAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3RhcmdldC5oCTIwMTUtMDEtMjUgMDg6Mzk6 MTQuNjg1NDgzNTE4ICswMTAwCiBAQCAtNDg5LDcgKzQ4OSw3IEBAIHN0cnVjdCB0YXJnZXRfb3Bz CiAgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3ZpZGVkIHdpdGgg dGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAqLwpAQCAtMzE1MCwx MCArMzE1MCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmgKICAg ICAgICBUQVJHRVRfREVGQVVMVF9GVU5DIChkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hw b2ludCk7CiAgCiAgICAgIGludCAoKnRvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbikg KHN0cnVjdCB0YXJnZXRfb3BzICosCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdHJh Y2Vwb2ludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdHJhY2Vwb2ludC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90cmFjZXBvaW50LmMJ MjAxNS0wMS0wNiAyMjo0NDo0MS41NDkzMTg5MTYgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90cmFjZXBvaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTEzMjY4ODMgKzAxMDAK Ky0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE1LTAxLTI1 IDA4OjM5OjEwLjg3MDQ2NzA3NSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Ry YWNlcG9pbnQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4NjQ4MzUyMyArMDEwMAogQEAgLTkyOCwx MyArOTI4LDEzIEBAIGFkZF9yZWdpc3RlciAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqY28KICBz dGF0aWMgdm9pZAogIGFkZF9tZW1yYW5nZSAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqbWVtcmFu Z2VzLCAKQEAgLTMyNDcsMTAgKzMyNDcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3RyYWNlcG9pbnQuYwogIAl9CiAgICAgICAgaWYgKEJMT0NLX0ZVTkNUSU9OIChibG9jaykp CiAgCWJyZWFrOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3R5cGVwcmludC5jCitJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdHlwZXByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDEuNTUwMzE4OTIxICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdHlwZXBy aW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTEzMjY4ODMgKzAxMDAKKy0tLSBnZGItNy44Ljkw LjIwMTUwMTI1Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODcxNDY3 MDc5ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdHlwZXByaW50LmMJMjAxNS0w MS0yNSAwODozOToxNC42ODY0ODM1MjMgKzAxMDAKIEBAIC00MDIsNyArNDAyLDcgQEAgd2hhdGlz X2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKICAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUgPSBO VUxMOwogICAgc3RydWN0IHR5cGUgKnR5cGU7CkBAIC0zMjYwLDEwICszMjYwLDEwIEBAIEluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90eXBlcHJpbnQuYwogICAgaW50IHVzaW5nX2VuYyA9 IDA7CiAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogICAgc3RydWN0IHR5cGVf cHJpbnRfb3B0aW9ucyBmbGFncyA9IGRlZmF1bHRfcHR5cGVfZmxhZ3M7Ci1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUv Z2RiL3ZhbGFyaXRoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL3ZhbGFyaXRoLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NTAzMTg5MjEgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMDYgMjI6NDU6NTQuMDEx NjcwNTEyICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi92YWxhcml0aC5j CTIwMTUtMDEtMjUgMDg6Mzk6MTAuODcyNDY3MDg0ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvdmFsYXJpdGguYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4NjQ4MzUyMyArMDEwMAog QEAgLTE4OCwxMiArMTg4LDEzIEBAIHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0IHZhbHVlICphcnJh eSwgTE8KICAgICB0byBkb3VibGVzLCBidXQgbm8gbG9uZ2VyIGRvZXMuICAqLwogIApAQCAtMzMy MywxMCArMzMyMywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGgu YwogIAogICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdmFsb3BzLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dk Yi92YWxvcHMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv dmFsb3BzLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NTUzMTg5NDUgKzAxMDAKLSsrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi92YWxvcHMuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE5MjMyNjg4OCAr MDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0wMS0y NSAwODozOToxMC44Nzc0NjcxMDUgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi92 YWxvcHMuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4NzQ4MzUyNyArMDEwMAogQEAgLTQ3LDExICs0 NywxMSBAQCBzdGF0aWMgaW50IHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQgdmFyCiAgCQkgICAg c3RydWN0IGZpZWxkIHQxW10sIHN0cnVjdCB2YWx1ZSAqdDJbXSk7CiAgCkBAIC0zNjQ1LDEwICsz NjQ1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxvcHMuYwogICAgaW50 IHVzaW5nX2VuYyA9IDA7CiAgICBzdHJ1Y3QgdmFsdWUgKm5ld192YWw7CiAgCi1JbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL3ZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL3ZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NTczMTg5NTUgKzAxMDAKLSsr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMu MTkzMzI2ODkzICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi92YWxwcmlu dC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODc5NDY3MTE0ICswMTAwCisrKysgZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvdmFscHJpbnQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4ODQ4MzUzMSArMDEw MAogQEAgLTI5OCw3ICsyOTgsNyBAQCB2YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5 cGUgKnR5CiAgaW50CiAgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpz dHJlYW0sCkBAIC0zNzQxLDEwICszNzQxLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi92YWxwcmludC5jCiAgCQkgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxs aXBzZXMsCiAgCQkgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJ ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvdmFscHJpbnQuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU1NzMxODk1NSArMDEwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4x OTMzMjY4OTMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3ZhbHByaW50 LmgJMjAxNS0wMS0yNSAwODozOToxMC44ODA0NjcxMTggKzAxMDAKKysrKyBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi92YWxwcmludC5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjg4NDgzNTMxICswMTAw CiBAQCAtMTE1LDExICsxMTUsMTEgQEAgZXh0ZXJuIHZvaWQgbWF5YmVfcHJpbnRfYXJyYXlfaW5k ZXggKHN0cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLAogIAkJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICopOwpAQCAtMzc5NSwxMCArMzc5NSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdmFscHJpbnQuaAogIAkJCSAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2Vf ZWxsaXBzZXMsCiAgCQkJICAgICAgaW50IHF1b3RlX2NoYXIsIGludCBjX3N0eWxlX3Rlcm1pbmF0 b3IsCiAgCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp OwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMKK0luZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI1L2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTYyMzE4OTc5ICswMTAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsdWUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQz LjE5NDMyNjg5OCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvdmFsdWUu YwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg4NTQ2NzE0MCArMDEwMAorKysrIGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL3ZhbHVlLmMJMjAxNS0wMS0yNSAwODozOToxNC42ODk0ODM1MzYgKzAxMDAKIEBA IC02NiwxMCArNjYsMTAgQEAgc3RydWN0IGludGVybmFsX2Z1bmN0aW9uCiAgc3RydWN0IHJhbmdl CiAgewpAQCAtNDEyOSwxMCArNDEyOSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdmFsdWUuYwogIAogICAgLyogTm9ybWFsaXplIEJJVFBPUy4gICovCiAgICBhZGRyICs9IGJp dHBvcyAvIDg7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsdWUuaAorSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3ZhbHVlLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41NjMzMTg5 ODQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWx1ZS5oCTIwMTUtMDEtMDYg MjI6NDQ6NDMuMTk1MzI2OTAzICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dk Yi92YWx1ZS5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODg3NDY3MTQ4ICswMTAwCisrKysgZ2RiLTcu OC45MC4yMDE1MDEyNS9nZGIvdmFsdWUuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY5MDQ4MzU0MCAr MDEwMAogQEAgLTEzMSw4ICsxMzEsOCBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVfcGFyZW50IChz dHJ1Y3QgdmFsCiAgICAgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0dXJlLiAgTm90ZSBhbHNv IHRoZSBtZW1iZXIKICAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwpAQCAtNDM3MywxMCAr NDM3MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsdWUuaAogIAogIC8q IFVzZXIgZnVuY3Rpb24gaGFuZGxlci4gICovCiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvczM5MC1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Mz OTAtbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NjQzMTg5ODkgKzAxMDAK LSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMDEtMDYg MjI6NDQ6NDMuMTk1MzI2OTAzICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dk Yi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODg3NDY3MTQ4ICswMTAwCisr KysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4 OjM5OjE0LjY5MDQ4MzU0MCArMDEwMAogQEAgLTU0NCw3ICs1NDQsNyBAQCBzMzkwX2Nhbl91c2Vf aHdfYnJlYWtwb2ludCAoc3RydWN0IHRhcmdlCiAgCiAgc3RhdGljIGludApAQCAtNDM4NiwxMCAr NDM4NiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvczM5MC1saW51eC1uYXQu YwogIHsKICAgIHJldHVybiAxOwogIH0KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9l eHRlbnNpb24tcHJpdi5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZXh0ZW5zaW9u LXByaXYuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZXh0 ZW5zaW9uLXByaXYuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NDMxODk4OSArMDEwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0wMS0wNiAyMjo0NDo0 My4xOTUzMjY5MDMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2V4dGVu c2lvbi1wcml2LmgJMjAxNS0wMS0yNSAwODozOToxMC44ODc0NjcxNDggKzAxMDAKKysrKyBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQu NjkwNDgzNTQwICswMTAwCiBAQCAtMTc1LDcgKzE3NSw3IEBAIHN0cnVjdCBleHRlbnNpb25fbGFu Z3VhZ2Vfb3BzCiAgICBlbnVtIGV4dF9sYW5nX3JjICgqYXBwbHlfdmFsX3ByZXR0eV9wcmludGVy KQogICAgICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCkBAIC00Mzk5 LDEwICs0Mzk5LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9leHRlbnNpb24t cHJpdi5oCiAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucywKICAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSk7 Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5o CitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9weXRob24vcHl0 aG9uLWludGVybmFsLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41NjQzMTg5ODkgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wMS0w NiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcv Z2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTAxLTI1IDA4OjM5OjEwLjg4ODQ2NzE1 MyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3B5dGhvbi9weXRob24taW50ZXJu YWwuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY5MTQ4MzU0NCArMDEwMAogQEAgLTMxMyw3ICszMTMs NyBAQCBleHRlcm4gaW50IGdkYnB5X2F1dG9fbG9hZF9lbmFibGVkIChjb25zCiAgZXh0ZXJuIGVu dW0gZXh0X2xhbmdfcmMgZ2RicHlfYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyCiAgICAoY29uc3Qg c3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCkBAIC00NDEyLDEwICs0NDEyLDEwIEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgK ICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCwKICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucywKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMK K0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMu YwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NTMxODk5NCArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE5NjMyNjkw NyArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvdGFyZ2V0LWRlbGVnYXRl cy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODg5NDY3MTU3ICswMTAwCisrKysgZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjkxNDgz NTQ0ICswMTAwCiBAQCAtNjM0LDE0ICs2MzQsMTQgQEAgZGVidWdfd2F0Y2hwb2ludF9hZGRyX3dp dGhpbl9yYW5nZSAoc3RydQogIH0KICAKQEAgLTQ0NDIsMTAgKzQ0NDIsMTAgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogICAgZnB1dHNfdW5maWx0 ZXJlZCAoIikgPSAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKHJl c3VsdCk7CiAgICBmcHV0c191bmZpbHRlcmVkICgiXG4iLCBnZGJfc3RkbG9nKTsKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNS9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTAxLTA2 IDIyOjQ0OjQxLjU2NTMxODk5NCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Fh cmNoNjQtbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTYzMjY5MDcgKzAxMDAKKy0t LSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNS0w MS0yNSAwODozOToxMC44ODk0NjcxNTcgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjkyNDgzNTQ5ICswMTAw CiBAQCAtMTM4OSw3ICsxMzg5LDcgQEAgYWFyY2g2NF9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAo c3RydWN0CiAgCiAgc3RhdGljIGludApAQCAtNDQ1NSwxMCArNDQ1NSwxMCBAQCBJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIHsKICAgIENPUkVfQURE UiBhbGlnbmVkX2FkZHI7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L3g4 Ni1kcmVncy5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbmF0L3g4Ni1kcmVncy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9uYXQveDg2LWRy ZWdzLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NjYzMTg5OTkgKzAxMDAKLSsrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTczMjY5 MTIgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3Mu YwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg5MDQ2NzE2MSArMDEwMAorKysrIGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY5MjQ4MzU0OSAr MDEwMAogQEAgLTM4NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hwb2ludCAo c3RydWN0IHg4CiAgCiAgc3RhdGljIGludApAQCAtNDQ3NywxMCArNDQ3NywxMCBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgewogICAgaW50IG5yZWdz OwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1 cHBvcnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbXBpbGUvY29tcGlsZS1j LXN1cHBvcnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv Y29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTY2MzE4OTk5 ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29tcGlsZS9jb21waWxlLWMtc3Vw cG9ydC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk3MzI2OTEyICswMTAwCistLS0gZ2RiLTcuOC45 MC4yMDE1MDEyNS5vcmlnL2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMJMjAxNS0wMS0y NSAwODozOToxMC44OTA0NjcxNjEgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9j b21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMJMjAxNS0wMS0yNSAwODozOToxNC42OTI0ODM1NDkg KzAxMDAKIEBAIC0yNzcsMTEgKzI3NywxMSBAQCBnZW5lcmF0ZV9yZWdpc3Rlcl9zdHJ1Y3QgKHN0 cnVjdCB1aV9maWxlCiAgCiAgCSAgICAgIGRlZmF1bHQ6CkBAIC00NDk1LDEwICs0NDk1LDEwIEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0 LmMKICAJICAgICAgfQogIAkgICAgZnB1dHNfdW5maWx0ZXJlZCAoIjtcbiIsIHN0cmVhbSk7CiAg Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L3g4Ni1kcmVncy5oCitJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbmF0L3g4Ni1kcmVncy5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0wMS0wNiAy Mjo0NDo0MS41NjYzMTg5OTkgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9uYXQv eDg2LWRyZWdzLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTczMjY5MTIgKzAxMDAKKy0tLSBnZGIt Ny44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE1LTAxLTI1IDA4OjM5 OjEwLjg5MDQ2NzE2MSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL25hdC94ODYt ZHJlZ3MuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY5MjQ4MzU0OSArMDEwMAogQEAgLTExMiw3ICsx MTIsNyBAQCBleHRlcm4gaW50IHg4Nl9kcl9yZW1vdmVfd2F0Y2hwb2ludCAoc3RyCiAgLyogUmV0 dXJuIG5vbi16ZXJvIGlmIHdlIGNhbiB3YXRjaCBhIG1lbW9yeSByZWdpb24gdGhhdCBzdGFydHMg YXQKICAgICBhZGRyZXNzIEFERFIgYW5kIHdob3NlIGxlbmd0aCBpcyBMRU4gYnl0ZXMuICAqLwpA QCAtNDUwOCwxMCArNDUwOCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0 L3g4Ni1kcmVncy5oCiAgCiAgLyogSWYgdGhlIGluZmVyaW9yIGhhcyBzb21lIGJyZWFrL3dhdGNo cG9pbnQgdGhhdCB0cmlnZ2VyZWQsIHNldCB0aGUKICAgICBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0 aCB0aGF0IGJyZWFrL3dhdGNocG9pbnQgYW5kIHJldHVybiB0cnVlLgotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3g4Ni1uYXQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2Ri L3g4Ni1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv eDg2LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTY2MzE4OTk5ICswMTAwCi0rKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIveDg2LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk3MzI2OTEy ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi94ODYtbmF0LmMJMjAxNS0w MS0yNSAwODozOToxMC44OTA0NjcxNjEgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dk Yi94ODYtbmF0LmMJMjAxNS0wMS0yNSAwODozOToxNC42OTM0ODM1NTMgKzAxMDAKIEBAIC0xNzgs NyArMTc4LDcgQEAgeDg2X3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcwogIAog IHN0YXRpYyBpbnQKCmRpZmYgLS1naXQgYS9nZGItc2xvdy1nc3RhY2stcGVyZm9ybWFuY2UucGF0 Y2ggYi9nZGItc2xvdy1nc3RhY2stcGVyZm9ybWFuY2UucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGM4OTVlN2YuLjAwMDAwMDAKLS0tIGEvZ2RiLXNsb3ctZ3N0YWNrLXBlcmZv cm1hbmNlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQ5ICswLDAgQEAKLURhdGU6IFRodSwg MiBPY3QgMjAxNCAxNzo1Njo1MyArMDIwMAotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbiBkb3Qg a3JhdG9jaHZpbCBhdCByZWRoYXQgZG90IGNvbT4KLVRvOiBEb3VnIEV2YW5zIDxkamUgYXQgZ29v Z2xlIGRvdCBjb20+Ci1DYzogZ2RiLXBhdGNoZXMgYXQgc291cmNld2FyZSBkb3Qgb3JnCi1TdWJq ZWN0OiBbcGF0Y2h2Ml0gRml4IDEwMHggc2xvd2Rvd24gcmVncmVzc2lvbiBvbiBEV1ogZmlsZXMK LU1lc3NhZ2UtSUQ6IDwyMDE0MTAwMjE1NTY1My5HQTkwMDFAaG9zdDIuamFua3JhdG9jaHZpbC5u ZXQ+Ci0KLS0tY05keG5Ia1g1UXFzeUEwZQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotT24gVGh1LCAwMiBP Y3QgMjAxNCAwMTo1MTozOCArMDIwMCwgRG91ZyBFdmFucyB3cm90ZToKLT4gSSB0ZXN0ZWQgdGhp cyBwYXRjaCB3aXRoIC0tdGFyZ2V0X2JvYXJkPWR3YXJmNC1nZGItaW5kZXgKLT4gYW5kIGdvdCBh IGZhaWx1cmUgaW4gbS1zdGF0aWMuZXhwOgotCi1UaGF0IGlzIHBhcnRpY3VsYXJseSB3aXRoIC1m ZGVidWctdHlwZXMtc2VjdGlvbi4KLQotCi0+IFR5cGUgdW5pdHMgcmVhZCB0aGUgbGluZSB0YWJs ZSBpbiBhIHNlcGFyYXRlIHBhdGgsCi0KLU9LLCB0aGVyZWZvcmUgSSBkcm9wcGVkIHRoYXQgc2Vw YXJhdGUgc3RydWN0IGR3YXJmMl9saW5laW5mbwotYW5kIHJldXNlZCBzdHJ1Y3QgbGluZV9oZWFk ZXIgaW5zdGVhZC4KLQotCi0+IE9UT0gsIEkgZG8gd2FudCB0byBhdm9pZCBhbnkgY29uZnVzaW9u IHRoYXQgdGhpcyBwYXRjaCBtYXkgaW5hZHZlcnRlbnRseQotPiBpbnRyb2R1Y2UuIEZvciBleGFt cGxlLCBJSVVDIHdpdGggeW91ciBwYXRjaCBhcyBpcywKLT4gaWYgd2UgcmVhZCBhIHBhcnRpYWxf dW5pdCBmaXJzdCwgYmVmb3JlIGEgY29tcGlsZV91bml0Ci0+IHRoYXQgaGFzIHRoZSBzYW1lIHN0 bXRfbGlzdCB2YWx1ZSwgd2UnbGwgZG8gbW9yZSBwcm9jZXNzaW5nIGluCi0+IGR3YXJmX2RlY29k ZV9saW5lcyB0aGFuIHdlIHJlYWxseSBuZWVkIHRvIHNpbmNlIHdlIG9ubHkgbmVlZCBhIGZpbGUK LT4gbnVtYmVyIHRvIHN5bXRhYiBtYXBwaW5nLiBBbmQgaWYgd2UgbGF0ZXIgcmVhZCBpbiBhIGNv bXBpbGVfdW5pdAotPiB3aXRoIHRoZSBzYW1lIHN0bXRfdmFsdWUgd2UnbGwgY2FsbCBkd2FyZl9k ZWNvZGVfbGluZXMgYWdhaW4sCi0+IGFuZCB0aGlzIHRpbWUgd2UgbmVlZCB0aGUgcGMvbGluZSBt YXBwaW5nIGl0IGNvbXB1dGVzLgotPiBXaGVyZWFzIGlmIHdlIHByb2Nlc3MgdGhlc2UgaW4gdGhl IG9wcG9zaXRlIG9yZGVyIHdlJ2xsIG9ubHkgY2FsbAotPiBkd2FyZl9kZWNvZGVfbGluZXMgb25j ZS4gSSdtIHN1cmUgdGhpcyB3aWxsIGJlIGNvbmZ1c2luZyBhdCBmaXJzdAotPiB0byBzb21lIGxh dGVyIGRldmVsb3BlciBnb2luZyB0aHJvdWdoIHRoaXMgY29kZS4KLT4gW0kgY291bGQgYmUgbWlz c2luZyBzb21ldGhpbmcgb2YgY291cnNlLCBhbmQgSSdtIGhhcHB5IGZvciBhbnkgY29ycmVjdGlv bnMuXQotCi1JbXBsZW1lbnRlZCAob21pdHRpbmcgc29tZSBzdG9yeSB3aHkgSSBkaWQgbm90IGlu Y2x1ZGUgaXQgYmVmb3JlKS4KLQotCi0+IFRoZSBjb2RlIHRoYXQgcHJvY2Vzc2VzIHN0bXRfbGlz dCBmb3IgdHlwZV91bml0cyBpcyBpbiBzZXR1cF90eXBlX3VuaXRfZ3JvdXBzLgotPiBOb3RlIHRo YXQgdGhpcyBjb2RlIGdvZXMgdG8gdGhlIHRyb3VibGUgb2YgcmUtaW5pdGlhbGl6aW5nIHRoZSBi dWlsZHN5bQotPiBtYWNoaW5lcnkgKHNlZSB0aGUgY2FsbHMgdG8gcmVzdGFydF9zeW10YWIgaW4g ZHdhcmYycmVhZC5jKSB3aGVuIHdlIHByb2Nlc3MKLT4gdGhlIHNlY29uZCBhbmQgc3Vic2VxdWVu dCB0eXBlIHVuaXRzIHRoYXQgc2hhcmUgYSBzdG10X2xpc3QgdmFsdWUuCi0+IFRoaXMgaXMgc29t ZXRoaW5nIHRoYXQgdXNlZCB0byBiZSBkb25lIGJlZm9yZSB5b3VyIHBhdGNoIGFuZCB3aWxsIG5v Ci0+IGxvbmdlciBiZSBkb25lIHdpdGggeW91ciBwYXRjaCAoc2luY2UgaWYgd2UgZ2V0IGEgY2Fj aGUgaGl0IHdlIGV4aXQpLgotPiBJdCBtYXkgYmUgdGhhdCB0aGUgdHlwZV91bml0IHN1cHBvcnQg aXMgZG9pbmcgdGhpcyB1bm5lY2Vzc2FyaWx5LAotPiB3aGljaCB3b3VsZCBiZSBncmVhdCBiZWNh dXNlIHdlIGNhbiB0aGVuIHNpbXBsaWZ5IGl0LgotCi1JIGhvcGUgdGhpcyBwYXRjaCBzaG91bGQg bm8gbG9uZ2VyIGJyZWFrIC1mZGVidWctdHlwZXMtc2VjdGlvbi4KLUlmIGl0IGFkZGl0aW9uYWxs eSBlbmFibGVzIHNvbWUgZnV0dXJlIG9wdGltaXphdGlvbiBmb3IgLWZkZWJ1Zy10eXBlcy1zZWN0 aW9uCi10aGUgYmV0dGVyLgotCi0KLT4gID4gKyAgLyogT2Zmc2V0IG9mIGxpbmUgbnVtYmVyIGlu Zm9ybWF0aW9uIGluIC5kZWJ1Z19saW5lIHNlY3Rpb24uICAqLwotPiAgPiArICBzZWN0X29mZnNl dCBvZmZzZXQ7Ci0+ICA+ICsgIHVuc2lnbmVkIG9mZnNldF9pbl9kd3ogOiAxOwotPiAKLT4gSVdC TiB0byBkb2N1bWVudCB3aHkgb2Zmc2V0X2luX2R3eiBpcyBoZXJlLgotPiBJdCdzIG5vdCBvYnZp b3VzIHdoeSBpdCdzIG5lZWRlZC4KLSsKLU9uIFRodSwgMDIgT2N0IDIwMTQgMDE6NTc6MDMgKzAy MDAsIERvdWcgRXZhbnMgd3JvdGU6Ci0+IEFoLCBJIGd1ZXNzIHRoZSBvZmZzZXRfaW5fZHd6IGZs YWcgd2lsbCBlbnN1cmUgZHdhcmZfZGVjb2RlX2xpbmVzIGdldHMgY2FsbGVkCi0+IHR3aWNlIHJl Z2FyZGxlc3Mgb2Ygb3JkZXIuICBCdXQgaXMgdGhhdCB0aGUgb25seSByZWFzb24gZm9yIHRoZSBm bGFnPwotCi1JIGhhdmUgYWRkZWQgdGhlcmUgbm93OgotKyAgLyogT0ZGU0VUIGlzIGZvciBzdHJ1 Y3QgZHd6X2ZpbGUgYXNzb2NpYXRlZCB3aXRoIGR3YXJmMl9wZXJfb2JqZmlsZS4gICovCi0KLUlm IG9uZSByZW1vdmVzIGl0IHJlZ3Jlc3Npb25zIHJlYWxseSBoYXBwZW4uICBXaGF0IGhhcHBlbnMg aXMgdGhhdCB0aGlzCi1saW5lX2hlYWRlcl9oYXNoIChmb3JtZXIgbGluZWluZm9faGFzaCkgaXMg aW4gc3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSB3aGljaAotaXMgY29tbW9uIGZvciBib3RoIG9i amZpbGUgYW5kIGl0cyBvYmpmaWxlLmR3eiAodGhhdCBvbmUgaXMgbm9ybWFsbHkgaW4KLS91c3Iv bGliL2RlYnVnLy5kd3ovIC0gY29tbW9uIGZvciBtdWx0aXBsZSBvYmpmaWxlcykuICBBbmQgdGhl cmUgYXJlIHR3bwotZGlmZmVyZW50IERJRXMgYXQgb2Zmc2V0IDB4YiAtIG9uZSBpbiBvYmpmaWxl IGFuZCBvbmUgaW4gb2JqZmlsZS5kd3ogLSB3aGljaAotd291bGQgbWF0Y2ggc2luZ2xlIGxpbmVf aGVhZGVyIGlmIG9mZnNldF9pbl9kd3ogd2FzIG5vdCB0aGVyZS4KLQotQWxzbyBleGlzdGluZyBk d2FyZjJyZWFkLmMgY29kZSB1c3VhbGx5IHRyYW5zZmVycyAiZHd6IGZsYWciIHRvZ2V0aGVyIHdp dGggRElFCi1vZmZzZXQsIHN1Y2ggYXM6Ci0JZHdhcmYyX2ZpbmRfY29udGFpbmluZ19jb21wX3Vu aXQgKHNlY3Rfb2Zmc2V0IG9mZnNldCwKLQkJCQkJICB1bnNpZ25lZCBpbnQgb2Zmc2V0X2luX2R3 eiwKLQkJCQkJICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKLVRoaXMgcmVtaW5kcyBtZSAtIHdo eSBkb2Vzbid0IHNpbWlsYXIgYW1iaWd1aXR5IGhhcHBlbiBhbHNvIGZvciBkd3BfZmlsZT8KLUkg YW0gdW5mb3J0dW5hdGVseSBub3QgbXVjaCBhd2FyZSBvZiB0aGUgZHdwIGltcGxlbWVudGF0aW9u IGRldGFpbHMuCi0KLQotPiAgPiAtICAgICAgc3RydWN0IGxpbmVfaGVhZGVyICpsaW5lX2hlYWRl cgotPiAgPiAtCT0gZHdhcmZfZGVjb2RlX2xpbmVfaGVhZGVyIChsaW5lX29mZnNldCwgY3UpOwot PiAgPiArICAgICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5saW5laW5mb19oYXNoID0KLT4gCi0+IEFz IG11Y2ggYXMgSSBwcmVmZXIgIj0iIGdvaW5nIGhlcmUsIGNvbnZlbnRpb24gc2F5cyB0byBwdXQg aXQgb24gdGhlCi0+IG5leHQgbGluZS4KLQotSSBoYXZlIGNoYW5nZWQgaXQgYnV0IHRoaXMgd2Fz IGp1c3QgYmxpbmQgY29weSBmcm9tIGV4aXN0aW5nIGxpbmUgMjE4MTguCi0KLQotPiAgPiArCWh0 YWJfY3JlYXRlX2FsbG9jX2V4ICgxMjcsIGR3YXJmMl9saW5laW5mb19oYXNoLCBkd2FyZjJfbGlu ZWluZm9fZXEsCi0+IAotPiBJIGRvbid0IGhhdmUgYW55IGRhdGEsIGJ1dCAxMjcgc2VlbXMgaGln aC4KLQotSSBoYXZlIG5vdCBjaGFuZ2VkIGl0IGJ1dCB0aGlzIHdhcyBqdXN0IGJsaW5kIGNvcHkg ZnJvbSBleGlzdGluZyBsaW5lIDIxODE4LgotCi0KLT4gSSB3b3VsZG4ndCBjaGFuZ2UgaXQsIEkg anVzdCB3YW50ZWQgdG8gYXNrIGlmIHlvdSBoYXZlIGFueSBkYXRhCi0+IGd1aWRpbmcgdGhpcyBj aG9pY2UuCi0KLVR1bmluZyBzb21lIGNvbnN0YW50cyByZWFsbHkgbWFrZXMgbm8gc2Vuc2Ugd2hl biBHREIgaGFzIG1pc3NpbmcgKyBpbnNhbmVseQotY29tcGxpY2F0ZWQgZGF0YSBzdHJ1Y3R1cmVz IGFuZCBpbiBjb25zZXF1ZW5jZSBHREIgaXMgdXNpbmcgaW5hcHByb3ByaWF0ZSBkYXRhCi1zdHJ1 Y3R1cmVzIHdpdGggYmFkIGFsZ29yaXRobWljIGNvbXBsZXhpdHkuICBPbmUgbmVlZHMgdG8gc3dp dGNoIEdEQiB0byBDKysKLWFuZCBpdHMgU1RMIGJlZm9yZSBvbmUgY2FuIHN0YXJ0IHRhbGtpbmcg YWJvdXQgZGF0YSBzdHJ1Y3R1cmVzIHBlcmZvcm1hbmNlLgotCi0KLU5vIHJlZ3Jlc3Npb25zIG9u IHt4ODZfNjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmEyMC1saW51eC1nbnUgaW4gRFdaIG1vZGUg YW5kCi1pbiAtZmRlYnVnLXR5cGVzLXNlY3Rpb24gbW9kZS4KLQotCi1UaGFua3MsCi1KYW4KLQot LS1jTmR4bkhrWDVRcXN5QTBlCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMt YXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9InBhcnRpYWx1bml0 NS5wYXRjaCIKLQotZ2RiLwotMjAxNC0xMC0wMiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPgotCi0JRml4IDEwMHggc2xvd2Rvd24gcmVncmVzc2lvbiBvbiBEV1og ZmlsZXMuCi0JKiBkd2FyZjJyZWFkLmMgKHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUpOiBBZGQg bGluZV9oZWFkZXJfaGFzaC4KLQkoc3RydWN0IGxpbmVfaGVhZGVyKTogQWRkIG9mZnNldCBhbmQg b2Zmc2V0X2luX2R3ei4KLQkoZHdhcmZfZGVjb2RlX2xpbmVzKTogQWRkIHBhcmFtZXRlciBkZWNv ZGVfbWFwcGluZyB0byB0aGUgZGVjbGFyYXRpb24uCi0JKGZyZWVfbGluZV9oZWFkZXJfdm9pZHAp OiBOZXcgZGVjbGFyYXRpb24uCi0JKGxpbmVfaGVhZGVyX2hhc2gsIGxpbmVfaGVhZGVyX2VxKTog TmV3IGZ1bmN0aW9ucy4KLQkoZHdhcmYyX2J1aWxkX2luY2x1ZGVfcHN5bXRhYnMpOiBVcGRhdGUg ZHdhcmZfZGVjb2RlX2xpbmVzIGNhbGxlci4KLQkoaGFuZGxlX0RXX0FUX3N0bXRfbGlzdCk6IFVz ZSBkd2FyZjJfcGVyX29iamZpbGUtPmxpbmVfaGVhZGVyX2hhc2guCi0JKGZyZWVfbGluZV9oZWFk ZXJfdm9pZHApOiBOZXcgZnVuY3Rpb24uCi0JKGR3YXJmX2RlY29kZV9saW5lX2hlYWRlcik6IElu aXRpYWxpemUgb2Zmc2V0IGFuZCBvZmZzZXRfaW5fZHd6LgotCShkd2FyZl9kZWNvZGVfbGluZXMp OiBOZXcgcGFyYW1ldGVyIGRlY29kZV9tYXBwaW5nLCB1c2UgaXQuCi0KLUluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA1IDIyOjQ1OjMyLjgyMzI0 MDQ1MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1 LTAxLTA1IDIyOjQ5OjM1LjI3MDMzMjY0NyArMDEwMAotQEAgLTMwOSw2ICszMDksOSBAQCBzdHJ1 Y3QgZHdhcmYyX3Blcl9vYmpmaWxlCi0gCi0gICAvKiBUaGUgQ1VzIHdlIHJlY2VudGx5IHJlYWQu ICAqLwotICAgVkVDIChkd2FyZjJfcGVyX2N1X3B0cikgKmp1c3RfcmVhZF9jdXM7Ci0rCi0rICAv KiBUYWJsZSBjb250YWluaW5nIGxpbmVfaGVhZGVyIGluZGV4ZWQgYnkgb2Zmc2V0IGFuZCBvZmZz ZXRfaW5fZHd6LiAgKi8KLSsgIGh0YWJfdCBsaW5lX2hlYWRlcl9oYXNoOwotIH07Ci0gCi0gc3Rh dGljIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUgKmR3YXJmMl9wZXJfb2JqZmlsZTsKLUBAIC0x MDI1LDYgKzEwMjgsMTIgQEAgdHlwZWRlZiB2b2lkIChkaWVfcmVhZGVyX2Z1bmNfZnR5cGUpIChj bwotICAgIHdoaWNoIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24uICAqLwotIHN0 cnVjdCBsaW5lX2hlYWRlcgotIHsKLSsgIC8qIE9mZnNldCBvZiBsaW5lIG51bWJlciBpbmZvcm1h dGlvbiBpbiAuZGVidWdfbGluZSBzZWN0aW9uLiAgKi8KLSsgIHNlY3Rfb2Zmc2V0IG9mZnNldDsK LSsKLSsgIC8qIE9GRlNFVCBpcyBmb3Igc3RydWN0IGR3el9maWxlIGFzc29jaWF0ZWQgd2l0aCBk d2FyZjJfcGVyX29iamZpbGUuICAqLwotKyAgdW5zaWduZWQgb2Zmc2V0X2luX2R3eiA6IDE7Ci0r Ci0gICB1bnNpZ25lZCBpbnQgdG90YWxfbGVuZ3RoOwotICAgdW5zaWduZWQgc2hvcnQgdmVyc2lv bjsKLSAgIHVuc2lnbmVkIGludCBoZWFkZXJfbGVuZ3RoOwotQEAgLTE1MTMsNyArMTUyMiw3IEBA IHN0YXRpYyBzdHJ1Y3QgbGluZV9oZWFkZXIgKmR3YXJmX2RlY29kZV8KLSAKLSBzdGF0aWMgdm9p ZCBkd2FyZl9kZWNvZGVfbGluZXMgKHN0cnVjdCBsaW5lX2hlYWRlciAqLCBjb25zdCBjaGFyICos Ci0gCQkJCXN0cnVjdCBkd2FyZjJfY3UgKiwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICosCi0tCQkJ CUNPUkVfQUREUik7Ci0rCQkJCUNPUkVfQUREUiwgaW50IGRlY29kZV9tYXBwaW5nKTsKLSAKLSBz dGF0aWMgdm9pZCBkd2FyZjJfc3RhcnRfc3ViZmlsZSAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy ICopOwotIAotQEAgLTIwNTcsNiArMjA2Niw4IEBAIGdldF9zZWN0aW9uX2ZpbGVfbmFtZSAoY29u c3Qgc3RydWN0IGR3YXIKLSAvKiBSZXR1cm4gdGhlIGlkIG9mIFNFQ1RJT04uCi0gICAgUmV0dXJu cyAwIGlmIFNFQ1RJT04gZG9lc24ndCBleGlzdC4gICovCi0gCi0rc3RhdGljIHZvaWQgZnJlZV9s aW5lX2hlYWRlcl92b2lkcCAodm9pZCAqYXJnKTsKLSsKLSBzdGF0aWMgaW50Ci0gZ2V0X3NlY3Rp b25faWQgKGNvbnN0IHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICpzZWN0aW9uKQotIHsKLUBA IC0yNDYxLDYgKzI0NzIsMjkgQEAgZHdhcmYyX2dldF9kd3pfZmlsZSAodm9pZCkKLSAgIGR3YXJm Ml9wZXJfb2JqZmlsZS0+ZHd6X2ZpbGUgPSByZXN1bHQ7Ci0gICByZXR1cm4gcmVzdWx0OwotIH0K LSsKLSsvKiBIYXNoIGZ1bmN0aW9uIGZvciBsaW5lX2hlYWRlcl9oYXNoLiAgKi8KLSsKLStzdGF0 aWMgaGFzaHZhbF90Ci0rbGluZV9oZWFkZXJfaGFzaCAoY29uc3Qgdm9pZCAqaXRlbSkKLSt7Ci0r ICBjb25zdCBzdHJ1Y3QgbGluZV9oZWFkZXIgKm9mcyA9IGl0ZW07Ci0rCi0rICByZXR1cm4gb2Zz LT5vZmZzZXQuc2VjdF9vZmYgXiBvZnMtPm9mZnNldF9pbl9kd3o7Ci0rfQotKwotKy8qIEVxdWFs aXR5IGZ1bmN0aW9uIGZvciBsaW5lX2hlYWRlcl9oYXNoLiAgKi8KLSsKLStzdGF0aWMgaW50Ci0r bGluZV9oZWFkZXJfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3Jo cykKLSt7Ci0rICBjb25zdCBzdHJ1Y3QgbGluZV9oZWFkZXIgKm9mc19saHMgPSBpdGVtX2xoczsK LSsgIGNvbnN0IHN0cnVjdCBsaW5lX2hlYWRlciAqb2ZzX3JocyA9IGl0ZW1fcmhzOwotKwotKyAg cmV0dXJuIChvZnNfbGhzLT5vZmZzZXQuc2VjdF9vZmYgPT0gb2ZzX3Jocy0+b2Zmc2V0LnNlY3Rf b2ZmCi0rCSAgJiYgb2ZzX2xocy0+b2Zmc2V0X2luX2R3eiA9PSBvZnNfcmhzLT5vZmZzZXRfaW5f ZHd6KTsKLSt9Ci0rCi0gDAotIC8qIERXQVJGIHF1aWNrX3N5bWJvbHNfZnVuY3Rpb25zIHN1cHBv cnQuICAqLwotIAotQEAgLTQ0NTQsNyArNDQ4OCw3IEBAIGR3YXJmMl9idWlsZF9pbmNsdWRlX3Bz eW10YWJzIChzdHJ1Y3QgZHcKLSAgICAgcmV0dXJuOyAgLyogTm8gbGluZXRhYmxlLCBzbyBubyBp bmNsdWRlcy4gICovCi0gCi0gICAvKiBOT1RFOiBwc3QtPmRpcm5hbWUgaXMgRFdfQVRfY29tcF9k aXIgKGlmIHByZXNlbnQpLiAgKi8KLS0gIGR3YXJmX2RlY29kZV9saW5lcyAobGgsIHBzdC0+ZGly bmFtZSwgY3UsIHBzdCwgcHN0LT50ZXh0bG93KTsKLSsgIGR3YXJmX2RlY29kZV9saW5lcyAobGgs IHBzdC0+ZGlybmFtZSwgY3UsIHBzdCwgcHN0LT50ZXh0bG93LCAxKTsKLSAKLSAgIGZyZWVfbGlu ZV9oZWFkZXIgKGxoKTsKLSB9Ci1AQCAtOTAwMiwyNCArOTAzNiw2NCBAQCBzdGF0aWMgdm9pZAot IGhhbmRsZV9EV19BVF9zdG10X2xpc3QgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSwKLSAJCQljb25zdCBjaGFyICpjb21wX2RpciwgQ09SRV9BRERSIGxvd3BjKSAv KiBBUkk6IGVkaXRDYXNlIGZ1bmN0aW9uICovCi0gewotKyAgc3RydWN0IG9iamZpbGUgKm9iamZp bGUgPSBkd2FyZjJfcGVyX29iamZpbGUtPm9iamZpbGU7Ci0gICBzdHJ1Y3QgYXR0cmlidXRlICph dHRyOwotKyAgdW5zaWduZWQgaW50IGxpbmVfb2Zmc2V0OwotKyAgc3RydWN0IGxpbmVfaGVhZGVy ICpsaW5lX2hlYWRlciwgbGluZV9oZWFkZXJfbG9jYWw7Ci0rICB1bnNpZ25lZCB1OwotKyAgdm9p ZCAqKnNsb3Q7Ci0rICBpbnQgZGVjb2RlX21hcHBpbmc7Ci0gCi0gICBnZGJfYXNzZXJ0ICghIGN1 LT5wZXJfY3UtPmlzX2RlYnVnX3R5cGVzKTsKLSAKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGll LCBEV19BVF9zdG10X2xpc3QsIGN1KTsKLS0gIGlmIChhdHRyKQotKyAgaWYgKGF0dHIgPT0gTlVM TCkKLSsgICAgcmV0dXJuOwotKwotKyAgbGluZV9vZmZzZXQgPSBEV19VTlNORCAoYXR0cik7Ci0r Ci0rICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5saW5lX2hlYWRlcl9oYXNoID09IE5VTEwpCi0g ICAgIHsKLS0gICAgICB1bnNpZ25lZCBpbnQgbGluZV9vZmZzZXQgPSBEV19VTlNORCAoYXR0cik7 Ci0tICAgICAgc3RydWN0IGxpbmVfaGVhZGVyICpsaW5lX2hlYWRlcgotLQk9IGR3YXJmX2RlY29k ZV9saW5lX2hlYWRlciAobGluZV9vZmZzZXQsIGN1KTsKLS0KLS0gICAgICBpZiAobGluZV9oZWFk ZXIpCi0tCXsKLS0JICBjdS0+bGluZV9oZWFkZXIgPSBsaW5lX2hlYWRlcjsKLS0JICBtYWtlX2Ns ZWFudXAgKGZyZWVfY3VfbGluZV9oZWFkZXIsIGN1KTsKLS0JICBkd2FyZl9kZWNvZGVfbGluZXMg KGxpbmVfaGVhZGVyLCBjb21wX2RpciwgY3UsIE5VTEwsIGxvd3BjKTsKLS0JfQotKyAgICAgIGR3 YXJmMl9wZXJfb2JqZmlsZS0+bGluZV9oZWFkZXJfaGFzaAotKwk9IGh0YWJfY3JlYXRlX2FsbG9j X2V4ICgxMjcsIGxpbmVfaGVhZGVyX2hhc2gsIGxpbmVfaGVhZGVyX2VxLAotKwkJCQlmcmVlX2xp bmVfaGVhZGVyX3ZvaWRwLAotKwkJCQkmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAotKwkJCQlo YXNodGFiX29ic3RhY2tfYWxsb2NhdGUsCi0rCQkJCWR1bW15X29ic3RhY2tfZGVhbGxvY2F0ZSk7 Ci0rICAgIH0KLSsKLSsgIGxpbmVfaGVhZGVyX2xvY2FsLm9mZnNldC5zZWN0X29mZiA9IGxpbmVf b2Zmc2V0OwotKyAgbGluZV9oZWFkZXJfbG9jYWwub2Zmc2V0X2luX2R3eiA9IGN1LT5wZXJfY3Ut PmlzX2R3ejsKLSsgIHNsb3QgPSBodGFiX2ZpbmRfc2xvdCAoZHdhcmYyX3Blcl9vYmpmaWxlLT5s aW5lX2hlYWRlcl9oYXNoLAotKwkJCSAmbGluZV9oZWFkZXJfbG9jYWwsIE5PX0lOU0VSVCk7Ci0r Ci0rICAvKiBGb3IgRFdfVEFHX2NvbXBpbGVfdW5pdCB3ZSBuZWVkIGluZm8gbGlrZSBzeW10YWI6 OmxpbmV0YWJsZSB3aGljaAotKyAgICAgaXMgbm90IHByZXNlbnQgaW4gKlNMT1QuICAqLwotKyAg aWYgKGRpZS0+dGFnID09IERXX1RBR19wYXJ0aWFsX3VuaXQgJiYgc2xvdCAhPSBOVUxMKQotKyAg ICB7Ci0rICAgICAgZ2RiX2Fzc2VydCAoKnNsb3QgIT0gTlVMTCk7Ci0rICAgICAgY3UtPmxpbmVf aGVhZGVyID0gKnNsb3Q7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBsaW5lX2hlYWRl ciA9IGR3YXJmX2RlY29kZV9saW5lX2hlYWRlciAobGluZV9vZmZzZXQsIGN1KTsKLSsgIGlmIChs aW5lX2hlYWRlciA9PSBOVUxMKQotKyAgICByZXR1cm47Ci0rICBjdS0+bGluZV9oZWFkZXIgPSBs aW5lX2hlYWRlcjsKLSsKLSsgIHNsb3QgPSBodGFiX2ZpbmRfc2xvdCAoZHdhcmYyX3Blcl9vYmpm aWxlLT5saW5lX2hlYWRlcl9oYXNoLAotKwkJCSAmbGluZV9oZWFkZXJfbG9jYWwsIElOU0VSVCk7 Ci0rICBnZGJfYXNzZXJ0IChzbG90ICE9IE5VTEwpOwotKyAgaWYgKCpzbG90ID09IE5VTEwpCi0r ICAgICpzbG90ID0gbGluZV9oZWFkZXI7Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBnZGJfYXNz ZXJ0IChkaWUtPnRhZyAhPSBEV19UQUdfcGFydGlhbF91bml0KTsKLSsgICAgICBtYWtlX2NsZWFu dXAgKGZyZWVfY3VfbGluZV9oZWFkZXIsIGN1KTsKLSAgICAgfQotKyAgZGVjb2RlX21hcHBpbmcg PSAoZGllLT50YWcgIT0gRFdfVEFHX3BhcnRpYWxfdW5pdCk7Ci0rICBkd2FyZl9kZWNvZGVfbGlu ZXMgKGxpbmVfaGVhZGVyLCBjb21wX2RpciwgY3UsIE5VTEwsIGxvd3BjLAotKwkJICAgICAgZGVj b2RlX21hcHBpbmcpOwotIH0KLSAKLSAvKiBQcm9jZXNzIERXX1RBR19jb21waWxlX3VuaXQgb3Ig RFdfVEFHX3BhcnRpYWxfdW5pdC4gICovCi1AQCAtMTY5MTcsNiArMTY5OTEsMTYgQEAgZnJlZV9s aW5lX2hlYWRlciAoc3RydWN0IGxpbmVfaGVhZGVyICpsaAotICAgeGZyZWUgKGxoKTsKLSB9Ci0g Ci0rLyogU3R1YiBmb3IgZnJlZV9saW5lX2hlYWRlciB0byBtYXRjaCB2b2lkICogY2FsbGJhY2sg dHlwZXMuICAqLwotKwotK3N0YXRpYyB2b2lkCi0rZnJlZV9saW5lX2hlYWRlcl92b2lkcCAodm9p ZCAqYXJnKQotK3sKLSsgIHN0cnVjdCBsaW5lX2hlYWRlciAqbGggPSBhcmc7Ci0rCi0rICBmcmVl X2xpbmVfaGVhZGVyIChsaCk7Ci0rfQotKwotIC8qIEFkZCBhbiBlbnRyeSB0byBMSCdzIGluY2x1 ZGUgZGlyZWN0b3J5IHRhYmxlLiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTE3MDQ3LDYgKzE3 MTMxLDkgQEAgZHdhcmZfZGVjb2RlX2xpbmVfaGVhZGVyICh1bnNpZ25lZCBpbnQgbwotICAgYmFj a190byA9IG1ha2VfY2xlYW51cCAoKG1ha2VfY2xlYW51cF9mdHlwZSAqKSBmcmVlX2xpbmVfaGVh ZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgbGgpOwotIAotKyAgbGgt Pm9mZnNldC5zZWN0X29mZiA9IG9mZnNldDsKLSsgIGxoLT5vZmZzZXRfaW5fZHd6ID0gY3UtPnBl cl9jdS0+aXNfZHd6OwotKwotICAgbGluZV9wdHIgPSBzZWN0aW9uLT5idWZmZXIgKyBvZmZzZXQ7 Ci0gCi0gICAvKiBSZWFkIGluIHRoZSBoZWFkZXIuICAqLwotQEAgLTE3Njc0LDE3ICsxNzc2MSwy MiBAQCBkd2FyZl9kZWNvZGVfbGluZXNfMSAoc3RydWN0IGxpbmVfaGVhZGVyCi0gICAgRS5nLiBl eHBhbmRfbGluZV9zYWwgcmVxdWlyZXMgdGhpcyB3aGVuIGZpbmRpbmcgcHN5bXRhYnMgdG8gZXhw YW5kLgotICAgIEEgZ29vZCB0ZXN0Y2FzZSBmb3IgdGhpcyBpcyBtYi1pbmxpbmUuZXhwLgotIAot LSAgIExPV1BDIGlzIHRoZSBsb3dlc3QgYWRkcmVzcyBpbiBDVSAob3IgMCBpZiBub3Qga25vd24p LiAgKi8KLSsgICBMT1dQQyBpcyB0aGUgbG93ZXN0IGFkZHJlc3MgaW4gQ1UgKG9yIDAgaWYgbm90 IGtub3duKS4KLSsKLSsgICBCb29sZWFuIERFQ09ERV9NQVBQSU5HIHNwZWNpZmllcyB3ZSBuZWVk IHRvIGZ1bGx5IGRlY29kZSAuZGVidWdfbGluZQotKyAgIGZvciBpdHMgUEM8LT5saW5lcyBtYXBw aW5nIGluZm9ybWF0aW9uLiAgT3RoZXJ3aXNlIG9ubHkgZmlsZW5hbWVzCi0rICAgdGFibGVzIGlz IHJlYWQgaW4uICAqLwotIAotIHN0YXRpYyB2b2lkCi0gZHdhcmZfZGVjb2RlX2xpbmVzIChzdHJ1 Y3QgbGluZV9oZWFkZXIgKmxoLCBjb25zdCBjaGFyICpjb21wX2RpciwKLSAJCSAgICBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3QsCi0tCQkgICAgQ09SRV9B RERSIGxvd3BjKQotKwkJICAgIENPUkVfQUREUiBsb3dwYywgaW50IGRlY29kZV9tYXBwaW5nKQot IHsKLSAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZpbGU7Ci0gICBjb25zdCBp bnQgZGVjb2RlX2Zvcl9wc3RfcCA9IChwc3QgIT0gTlVMTCk7Ci0gCi0tICBkd2FyZl9kZWNvZGVf bGluZXNfMSAobGgsIGN1LCBkZWNvZGVfZm9yX3BzdF9wLCBsb3dwYyk7Ci0rICBpZiAoZGVjb2Rl X21hcHBpbmcpCi0rICAgIGR3YXJmX2RlY29kZV9saW5lc18xIChsaCwgY3UsIGRlY29kZV9mb3Jf cHN0X3AsIGxvd3BjKTsKLSAKLSAgIGlmIChkZWNvZGVfZm9yX3BzdF9wKQotICAgICB7CgpkaWZm IC0tZ2l0IGEvZ2RiLXRla2hleC1yZWdyZXNzaW9uLXJldmVydC5wYXRjaCBiL2dkYi10ZWtoZXgt cmVncmVzc2lvbi1yZXZlcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4 Mzc3NWYuLjAwMDAwMDAKLS0tIGEvZ2RiLXRla2hleC1yZWdyZXNzaW9uLXJldmVydC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDE1MSArMCwwIEBACi0tUiBmb3IgODU4ODAyNTBlNTkxYTUxNjI0 ZDI0ZGI2NTNhYWFjZTBjNWNlNTk0MwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvZ2l0d2Vi LmNnaT9wPWJpbnV0aWxzLWdkYi5naXQ7YT1jb21taXRkaWZmO2g9ODU4ODAyNTBlNTkxYTUxNjI0 ZDI0ZGI2NTNhYWFjZTBjNWNlNTk0MztocD1mY2UxMGE4NDk0ZWZhOGZhZWMKLQotW2J1aWxkYm90 XSBHREIgcmVncmVzc2lvbiBvbiA4NTg4MDI1MGU1OTFhNTE2MjRkMjRkYjY1M2FhYWNlMGM1Y2U1 OTQzCi1odHRwczovL3NvdXJjZXdhcmUub3JnL21sL2JpbnV0aWxzLzIwMTUtMDEvbXNnMDAwNDQu aHRtbAotCi1kaWZmIC0tZ2l0IGEvYmZkL2NvZmYtaTg2MC5jIGIvYmZkL2NvZmYtaTg2MC5jCi1p bmRleCA4NTczYThkLi4yMTIyYzBkIDEwMDY0NAotLS0tIGEvYmZkL2NvZmYtaTg2MC5jCi0rKysg Yi9iZmQvY29mZi1pODYwLmMKLUBAIC00NjcsMTAgKzQ2Nyw3IEBAIHN0YXRpYyByZWxvY19ob3d0 b190eXBlIGhvd3RvX3RhYmxlW10gPQotICAgIEZJWE1FOiBUaGlzIG1hY3JvIHJlZmVycyB0byBz eW1ib2xzIGFuZCBhc2VjdDsgdGhlc2UgYXJlIGZyb20gdGhlCi0gICAgY2FsbGluZyBmdW5jdGlv biwgbm90IHRoZSBtYWNybyBhcmd1bWVudHMuICAqLwotIAotLS8qIFBSIDE3NTEyOiBmaWxlOiAw YTM4ZmI3YwotLSAgIFNldCBhbiBhZGRlbmQgdmFsdWUsIGV2ZW4gaWYgaXQgaXMgbm90IGdvaW5n IHRvIGJlIHVzZWQuICBBIHRvb2wKLS0gICBsaWtlIGNvZmZkdW1wIG1pZ2h0IGJlIHVzZWQgdG8g cHJpbnQgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUgcmVsb2MuICAqLwotLSNkZWZpbmUgQ0FMQ19B RERFTkQoYWJmZCwgcHRyLCByZWxvYywgY2FjaGVfcHRyKSAoY2FjaGVfcHRyKS0+YWRkZW5kID0g MAotKyNkZWZpbmUgQ0FMQ19BRERFTkQoYWJmZCwgcHRyLCByZWxvYywgY2FjaGVfcHRyKQotIAot IC8qIFdlIHVzZSB0aGUgc3BlY2lhbCBDT0ZGIGJhY2tlbmQgbGlua2VyLiAgKi8KLSAjZGVmaW5l IGNvZmZfcmVsb2NhdGVfc2VjdGlvbiBfYmZkX2NvZmZfZ2VuZXJpY19yZWxvY2F0ZV9zZWN0aW9u Ci1kaWZmIC0tZ2l0IGEvYmZkL3Rla2hleC5jIGIvYmZkL3Rla2hleC5jCi1pbmRleCA5NDQ0MTE3 Li45NjliODEyIDEwMDY0NAotLS0tIGEvYmZkL3Rla2hleC5jCi0rKysgYi9iZmQvdGVraGV4LmMK LUBAIC0yNjcsNyArMjY3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgdGVraGV4X2RhdGFfc3RydWN0Ci0g I2RlZmluZSBlbmRhKHgpICh4LT52bWEgKyB4LT5zaXplKQotIAotIHN0YXRpYyBiZmRfYm9vbGVh bgotLWdldHZhbHVlIChjaGFyICoqc3JjcCwgYmZkX3ZtYSAqdmFsdWVwLCBjaGFyICogZW5kcCkK LStnZXR2YWx1ZSAoY2hhciAqKnNyY3AsIGJmZF92bWEgKnZhbHVlcCkKLSB7Ci0gICBjaGFyICpz cmMgPSAqc3JjcDsKLSAgIGJmZF92bWEgdmFsdWUgPSAwOwotQEAgLTI3OSw3ICsyNzksNyBAQCBn ZXR2YWx1ZSAoY2hhciAqKnNyY3AsIGJmZF92bWEgKnZhbHVlcCwgY2hhciAqIGVuZHApCi0gICBs ZW4gPSBoZXhfdmFsdWUgKCpzcmMrKyk7Ci0gICBpZiAobGVuID09IDApCi0gICAgIGxlbiA9IDE2 OwotLSAgd2hpbGUgKGxlbi0tICYmIHNyYyA8IGVuZHApCi0rICB3aGlsZSAobGVuLS0pCi0gICAg IHsKLSAgICAgICBpZiAoIUlTSEVYICgqc3JjKSkKLSAJcmV0dXJuIEZBTFNFOwotQEAgLTI4OCwx MSArMjg4LDExIEBAIGdldHZhbHVlIChjaGFyICoqc3JjcCwgYmZkX3ZtYSAqdmFsdWVwLCBjaGFy ICogZW5kcCkKLSAKLSAgICpzcmNwID0gc3JjOwotICAgKnZhbHVlcCA9IHZhbHVlOwotLSAgcmV0 dXJuIGxlbiA9PSAwOwotKyAgcmV0dXJuIFRSVUU7Ci0gfQotIAotIHN0YXRpYyBiZmRfYm9vbGVh bgotLWdldHN5bSAoY2hhciAqZHN0cCwgY2hhciAqKnNyY3AsIHVuc2lnbmVkIGludCAqbGVucCwg Y2hhciAqIGVuZHApCi0rZ2V0c3ltIChjaGFyICpkc3RwLCBjaGFyICoqc3JjcCwgdW5zaWduZWQg aW50ICpsZW5wKQotIHsKLSAgIGNoYXIgKnNyYyA9ICpzcmNwOwotICAgdW5zaWduZWQgaW50IGk7 Ci1AQCAtMzA0LDcgKzMwNCw3IEBAIGdldHN5bSAoY2hhciAqZHN0cCwgY2hhciAqKnNyY3AsIHVu c2lnbmVkIGludCAqbGVucCwgY2hhciAqIGVuZHApCi0gICBsZW4gPSBoZXhfdmFsdWUgKCpzcmMr Kyk7Ci0gICBpZiAobGVuID09IDApCi0gICAgIGxlbiA9IDE2OwotLSAgZm9yIChpID0gMDsgaSA8 IGxlbiAmJiBzcmMgPCBlbmRwOyBpKyspCi0rICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCi0g ICAgIGRzdHBbaV0gPSBzcmNbaV07Ci0gICBkc3RwW2ldID0gMDsKLSAgICpzcmNwID0gc3JjICsg aTsKLUBAIC0zNTQsNyArMzU0LDcgQEAgaW5zZXJ0X2J5dGUgKGJmZCAqYWJmZCwgaW50IHZhbHVl LCBiZmRfdm1hIGFkZHIpCi0gICBob3cgYmlnIHRoZSBkYXRhIGlzLiAgKi8KLSAKLSBzdGF0aWMg YmZkX2Jvb2xlYW4KLS1maXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlwZSwgY2hhciAqc3Jj LCBjaGFyICogc3JjX2VuZCkKLStmaXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlwZSwgY2hh ciAqc3JjKQotIHsKLSAgIGFzZWN0aW9uICpzZWN0aW9uLCAqYWx0X3NlY3Rpb247Ci0gICB1bnNp Z25lZCBpbnQgbGVuOwotQEAgLTM2OCwyMSArMzY4LDIxIEBAIGZpcnN0X3BoYXNlIChiZmQgKmFi ZmQsIGludCB0eXBlLCBjaGFyICpzcmMsIGNoYXIgKiBzcmNfZW5kKQotICAgICAgIHsKLSAJYmZk X3ZtYSBhZGRyOwotIAotLQlpZiAoIWdldHZhbHVlICgmc3JjLCAmYWRkciwgc3JjX2VuZCkpCi0r CWlmICghZ2V0dmFsdWUgKCZzcmMsICZhZGRyKSkKLSAJICByZXR1cm4gRkFMU0U7Ci0gCi0tCXdo aWxlICgqc3JjICYmIHNyYyA8IHNyY19lbmQgLSAxKQotKwl3aGlsZSAoKnNyYykKLSAJICB7Ci0g CSAgICBpbnNlcnRfYnl0ZSAoYWJmZCwgSEVYIChzcmMpLCBhZGRyKTsKLSAJICAgIHNyYyArPSAy OwotIAkgICAgYWRkcisrOwotIAkgIH0KLS0JcmV0dXJuIFRSVUU7Ci0gICAgICAgfQotIAotKyAg ICAgIHJldHVybiBUUlVFOwotICAgICBjYXNlICczJzoKLSAgICAgICAvKiBTeW1ib2wgcmVjb3Jk LCByZWFkIHRoZSBzZWdtZW50LiAgKi8KLS0gICAgICBpZiAoIWdldHN5bSAoc3ltLCAmc3JjLCAm bGVuLCBzcmNfZW5kKSkKLSsgICAgICBpZiAoIWdldHN5bSAoc3ltLCAmc3JjLCAmbGVuKSkKLSAJ cmV0dXJuIEZBTFNFOwotICAgICAgIHNlY3Rpb24gPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAo YWJmZCwgc3ltKTsKLSAgICAgICBpZiAoc2VjdGlvbiA9PSBOVUxMKQotQEAgLTQwMyw5ICs0MDMs OSBAQCBmaXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlwZSwgY2hhciAqc3JjLCBjaGFyICog c3JjX2VuZCkKLSAJICAgIHsKLSAJICAgIGNhc2UgJzEnOgkJLyogU2VjdGlvbiByYW5nZS4gICov Ci0gCSAgICAgIHNyYysrOwotLQkgICAgICBpZiAoIWdldHZhbHVlICgmc3JjLCAmc2VjdGlvbi0+ dm1hLCBzcmNfZW5kKSkKLSsJICAgICAgaWYgKCFnZXR2YWx1ZSAoJnNyYywgJnNlY3Rpb24tPnZt YSkpCi0gCQlyZXR1cm4gRkFMU0U7Ci0tCSAgICAgIGlmICghZ2V0dmFsdWUgKCZzcmMsICZ2YWws IHNyY19lbmQpKQotKwkgICAgICBpZiAoIWdldHZhbHVlICgmc3JjLCAmdmFsKSkKLSAJCXJldHVy biBGQUxTRTsKLSAJICAgICAgc2VjdGlvbi0+c2l6ZSA9IHZhbCAtIHNlY3Rpb24tPnZtYTsKLSAJ ICAgICAgc2VjdGlvbi0+ZmxhZ3MgPSBTRUNfSEFTX0NPTlRFTlRTIHwgU0VDX0xPQUQgfCBTRUNf QUxMT0M7Ci1AQCAtNDMyLDcgKzQzMiw3IEBAIGZpcnN0X3BoYXNlIChiZmQgKmFiZmQsIGludCB0 eXBlLCBjaGFyICpzcmMsIGNoYXIgKiBzcmNfZW5kKQotIAkJYWJmZC0+ZmxhZ3MgfD0gSEFTX1NZ TVM7Ci0gCQluZXdfc3ltYm9sLT5wcmV2ID0gYWJmZC0+dGRhdGEudGVraGV4X2RhdGEtPnN5bWJv bHM7Ci0gCQlhYmZkLT50ZGF0YS50ZWtoZXhfZGF0YS0+c3ltYm9scyA9IG5ld19zeW1ib2w7Ci0t CQlpZiAoIWdldHN5bSAoc3ltLCAmc3JjLCAmbGVuLCBzcmNfZW5kKSkKLSsJCWlmICghZ2V0c3lt IChzeW0sICZzcmMsICZsZW4pKQotIAkJICByZXR1cm4gRkFMU0U7Ci0gCQluZXdfc3ltYm9sLT5z eW1ib2wubmFtZSA9IChjb25zdCBjaGFyICopCi0gICAgICAgICAgICAgICAgICAgICBiZmRfYWxs b2MgKGFiZmQsIChiZmRfc2l6ZV90eXBlKSBsZW4gKyAxKTsKLUBAIC00ODAsNyArNDgwLDcgQEAg Zmlyc3RfcGhhc2UgKGJmZCAqYWJmZCwgaW50IHR5cGUsIGNoYXIgKnNyYywgY2hhciAqIHNyY19l bmQpCi0gCQkJbmV3X3N5bWJvbC0+c3ltYm9sLnNlY3Rpb24gPSBhbHRfc2VjdGlvbjsKLSAJCSAg ICAgIH0KLSAJCSAgfQotLQkJaWYgKCFnZXR2YWx1ZSAoJnNyYywgJnZhbCwgc3JjX2VuZCkpCi0r CQlpZiAoIWdldHZhbHVlICgmc3JjLCAmdmFsKSkKLSAJCSAgcmV0dXJuIEZBTFNFOwotIAkJbmV3 X3N5bWJvbC0+c3ltYm9sLnZhbHVlID0gdmFsIC0gc2VjdGlvbi0+dm1hOwotIAkJYnJlYWs7Ci1A QCAtNDk4LDcgKzQ5OCw3IEBAIGZpcnN0X3BoYXNlIChiZmQgKmFiZmQsIGludCB0eXBlLCBjaGFy ICpzcmMsIGNoYXIgKiBzcmNfZW5kKQotICAgIHJlY29yZC4gICovCi0gCi0gc3RhdGljIGJmZF9i b29sZWFuCi0tcGFzc19vdmVyIChiZmQgKmFiZmQsIGJmZF9ib29sZWFuICgqZnVuYykgKGJmZCAq LCBpbnQsIGNoYXIgKiwgY2hhciAqKSkKLStwYXNzX292ZXIgKGJmZCAqYWJmZCwgYmZkX2Jvb2xl YW4gKCpmdW5jKSAoYmZkICosIGludCwgY2hhciAqKSkKLSB7Ci0gICB1bnNpZ25lZCBpbnQgY2hh cnNfb25fbGluZTsKLSAgIGJmZF9ib29sZWFuIGlzX2VvZiA9IEZBTFNFOwotQEAgLTUzOSw3ICs1 MzksOCBAQCBwYXNzX292ZXIgKGJmZCAqYWJmZCwgYmZkX2Jvb2xlYW4gKCpmdW5jKSAoYmZkICos IGludCwgY2hhciAqLCBjaGFyICopKQotIAotICAgICAgIC8qIFB1dCBhIG51bGwgYXQgdGhlIGVu ZC4gICovCi0gICAgICAgc3JjW2NoYXJzX29uX2xpbmVdID0gMDsKLS0gICAgICBpZiAoIWZ1bmMg KGFiZmQsIHR5cGUsIHNyYywgc3JjICsgY2hhcnNfb25fbGluZSkpCi0rCi0rICAgICAgaWYgKCFm dW5jIChhYmZkLCB0eXBlLCBzcmMpKQotIAlyZXR1cm4gRkFMU0U7Ci0gICAgIH0KLSAKCmRpZmYg LS1naXQgYS9nZGItdmxhLWludGVsLnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC5wYXRjaAppbmRleCAx NzMwOGY1Li45Yjg2YmRlIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVsLnBhdGNoCisrKyBiL2dk Yi12bGEtaW50ZWwucGF0Y2gKQEAgLTYsMTAgKzYsMTAgQEAgR0lUIHNuYXBzaG90OgogY29tbWl0 IDUxMWJmZjUyMDM3MmZmYzEwZmEyZmY1NjljMTc2YmRmMWU2ZTQ3NWQKIAogCi1JbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvYy12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDEyNi9nZGIvYy12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAx MDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLXZhbHByaW50LmMJMjAxNS0wMS0wNiAy MzowMzowNy40MjQ2ODQ3NTMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2Ri L2MtdmFscHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1LjgzMjc1ODMxNCArMDEwMAorKysrIGdk Yi03LjguOTAuMjAxNTAxMjYvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3OjQyLjM5 NDgyOTg2MSArMDEwMAogQEAgLTUzNyw3ICs1MzcsMTYgQEAgY192YWx1ZV9wcmludCAoc3RydWN0 IHZhbHVlICp2YWwsIHN0cnVjdAogIAl7CiAgCSAgLyogbm9ybWFsIGNhc2UgKi8KQEAgLTI4LDEw ICsyOCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy12YWxwcmludC5jCiAg CSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsKICAJfQogICAgICB9Ci1JbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYybG9jLmgKK0luZGV4OiBnZGItNy44LjkwLjIw MTUwMTI2L2dkYi9kd2FyZjJsb2MuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvZHdhcmYybG9jLmgJMjAxNS0wMS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAx MDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuaAkyMDE1LTAxLTA2IDIz OjAzOjA3LjQyNDY4NDc1MyArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjYub3JpZy9nZGIv ZHdhcmYybG9jLmgJMjAxNS0wMS0yNiAwNzo0NzoyNS44MzI3NTgzMTQgKzAxMDAKKysrKyBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJsb2MuaAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjM5NTgy OTg2NSArMDEwMAogQEAgLTExMSw2ICsxMTEsMTEgQEAgaW50IGR3YXJmMl9ldmFsdWF0ZV9wcm9w ZXJ0eSAoY29uc3Qgc3RydQogIAkJCSAgICAgIENPUkVfQUREUiBhZGRyZXNzLAogIAkJCSAgICAg IENPUkVfQUREUiAqdmFsdWUpOwpAQCAtNDQsMTQgKzQ0LDE0IEBAIEluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuaAogIC8qIEEgaGVscGVyIGZvciB0aGUgY29tcGlsZXIg aW50ZXJmYWNlIHRoYXQgY29tcGlsZXMgYSBzaW5nbGUgZHluYW1pYwogICAgIHByb3BlcnR5IHRv IEMgY29kZS4KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMK K0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA2 IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE1LTAxLTA2IDIzOjA0OjA5LjY5MTk4Njg4MSArMDEwMAotQEAgLTE4NDQs NiArMTg0NCwxMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2R3b19maWxlX2NsZWFudXAgKHZvaWQKLSBz dGF0aWMgdm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVzICh2b2lkKTsKLSAKKy0tLSBnZGItNy44Ljkw LjIwMTUwMTI2Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg0NTc1 ODM3MSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1 LTAxLTI2IDA3OjQ4OjA1LjgzMzkzMTExNiArMDEwMAorQEAgLTE4NTUsNiArMTg1NSwxMiBAQCBz dGF0aWMgdm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVzICh2b2lkKTsKICBzdGF0aWMgdm9pZCBjaGVj a19wcm9kdWNlciAoc3RydWN0IGR3YXJmMl9jdSAqY3UpOworIAorIHN0YXRpYyB2b2lkIGZyZWVf bGluZV9oZWFkZXJfdm9pZHAgKHZvaWQgKmFyZyk7CiArCiArc3RhdGljIGludAogK2F0dHJfdG9f ZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwKQEAgLTYxLDcgKzYxLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2R3YXJmMnJlYWQuYwogIAwKICAvKiBWYXJpb3VzIGNvbXBsYWludHMgYWJvdXQgc3ltYm9sIHJl YWRpbmcgdGhhdCBkb24ndCBhYm9ydCB0aGUgcHJvY2Vzcy4gICovCiAgCi1AQCAtMTQyNDEsMjkg KzE0MjQ3LDkyIEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmQKK0BA IC0xNDM1NCwyOSArMTQzNjAsOTIgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChv YmpmaWxlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4X3R5cGUs ICpjaGFyX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtMTYxLDcgKzE2MSw3 IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKICAgIGNoYXJf dHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJh cmNoKTsKICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFu Z2VfdHlwZSk7CiAgCi1AQCAtMTQ1ODAsMTMgKzE0NjQ5LDE1IEBAIHJlYWRfYmFzZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3QKK0BAIC0xNDY5MywxMyArMTQ3NjIsMTUgQEAgcmVhZF9i YXNlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdAogICAgcmV0dXJuIHNldF9kaWVfdHlw ZSAoZGllLCB0eXBlLCBjdSk7CiAgfQogIApAQCAtMTc4LDcgKzE3OCw3IEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX3By b3BlcnR5X2JhdG9uICpiYXRvbjsKICAgIHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrID0gJmN1LT5v YmpmaWxlLT5vYmpmaWxlX29ic3RhY2s7Ci1AQCAtMTQ1OTksOCArMTQ2NzAsMjUgQEAgYXR0cl90 b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaQorQEAgLTE0NzEyLDggKzE0NzgzLDI1 IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKICAgICAgICBiYXRv biA9IG9ic3RhY2tfYWxsb2MgKG9ic3RhY2ssIHNpemVvZiAoKmJhdG9uKSk7CiAgICAgICAgYmF0 b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CiAgICAgICAgYmF0b24tPmxvY2V4cHIucGVyX2N1 ID0gY3UtPnBlcl9jdTsKQEAgLTIwNiw3ICsyMDYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwog ICAgICAgIHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VYUFI7CiAgICAgICAgZ2RiX2Fzc2VydCAocHJv cC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNDYzMCw4ICsxNDcxOCwyOCBAQCBhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpCitAQCAtMTQ3NDMsOCArMTQ4MzEsMjgg QEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaQogIAkgIGJhdG9uID0g b2JzdGFja19hbGxvYyAob2JzdGFjaywgc2l6ZW9mICgqYmF0b24pKTsKICAJICBiYXRvbi0+cmVm ZXJlbmNlZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CiAgCSAgYmF0 b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAgCSAgcHJvcC0+ZGF0YS5i YXRvbiA9IGJhdG9uOwogIAkgIHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VYUFI7CiAgCSAgZ2RiX2Fz c2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNDY2Niw3ICsxNDc3NCw3IEBA IHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKK0BAIC0xNDc3OSw3ICsx NDg4Nyw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAgIHN0 cnVjdCB0eXBlICpiYXNlX3R5cGUsICpvcmlnX2Jhc2VfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpy YW5nZV90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTI0Niw3ICsyNDYsNyBA QCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAgICBpbnQgbG93 X2RlZmF1bHRfaXNfdmFsaWQ7CiAgICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7CiAgICBj b25zdCBjaGFyICpuYW1lOwotQEAgLTE0Njg2LDcgKzE0Nzk0LDkgQEAgcmVhZF9zdWJyYW5nZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQorQEAgLTE0Nzk5LDcgKzE0OTA3LDkgQEAgcmVhZF9z dWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQogIAogICAgbG93LmtpbmQgPSBQUk9Q X0NPTlNUOwogICAgaGlnaC5raW5kID0gUFJPUF9DT05TVDsKQEAgLTI1Niw3ICsyNTYsNyBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICAvKiBTZXQg TE9XX0RFRkFVTFRfSVNfVkFMSUQgaWYgY3VycmVudCBsYW5ndWFnZSBhbmQgRFdBUkYgdmVyc2lv biBhbGxvdwogICAgICAgb21pdHRpbmcgRFdfQVRfbG93ZXJfYm91bmQuICAqLwotQEAgLTE0NzE5 LDE5ICsxNDgyOSwyNiBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll CitAQCAtMTQ4MzIsMTkgKzE0OTQyLDI2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtMjg2LDcgKzI4Niw3IEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKICAJewogIAkgIC8q IElmIGJvdW5kcyBhcmUgY29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0aW9uIGhlcmUuICAq LwogIAkgIGlmIChsb3cua2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2luZCA9PSBQUk9QX0NP TlNUKQotQEAgLTE0Nzk1LDcgKzE0OTEyLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZQorQEAgLTE0OTA4LDcgKzE1MDI1LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZQogICAgICAgICYmICFUWVBFX1VOU0lHTkVEIChiYXNlX3R5 cGUpICYmIChoaWdoLmRhdGEuY29uc3RfdmFsICYgbmVnYXRpdmVfbWFzaykpCiAgICAgIGhpZ2gu ZGF0YS5jb25zdF92YWwgfD0gbmVnYXRpdmVfbWFzazsKICAKQEAgLTI5NSw3ICsyOTUsNyBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICBpZiAoaGln aF9ib3VuZF9pc19jb3VudCkKICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+Zmxh Z191cHBlcl9ib3VuZF9pc19jb3VudCA9IDE7Ci1AQCAtMjE4NjAsNyArMjE5NzcsNDQgQEAgc2V0 X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQorQEAgLTIxOTk0LDcgKzIyMTEx LDQ0IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnUKICAKICAgIC8q IFJlYWQgRFdfQVRfZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLwogICAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKQEAgLTM0MSwxMCAr MzQxLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKICAg ICAgewogICAgICAgIFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkKICAgICAgICAgID0gb2JzdGFj a19hbGxvYyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc2l6ZW9mIChwcm9wKSk7Ci1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQuYworSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL2YtdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo1MToxNy42NjMy NDA5MDcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLXR5cGVwcmludC5jCTIw MTUtMDEtMDYgMjM6MDM6MDcuNDI4Njg0NzcyICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEy Ni5vcmlnL2dkYi9mLXR5cGVwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6MjUuODQ2NzU4Mzc1ICsw MTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTAxLTI2 IDA3OjQ3OjQyLjQwMjgyOTg5NSArMDEwMAogQEAgLTMwLDYgKzMwLDcgQEAKICAjaW5jbHVkZSAi Z2RiY29yZS5oIgogICNpbmNsdWRlICJ0YXJnZXQuaCIKQEAgLTQyOSwxMCArNDI5LDEwIEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLXR5cGVwcmludC5jCiAgICAgICAgaWYgKGFy cmF5cHJpbnRfcmVjdXJzZV9sZXZlbCA9PSAxKQogIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0s ICIpIik7CiAgICAgICAgZWxzZQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFs cHJpbnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2YtdmFscHJpbnQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi12YWxwcmludC5jCTIw MTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQwOTA3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI4Njg0NzcyICswMTAwCist LS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0wMS0yNiAw Nzo0NzoyNS44NDc3NTgzNzkgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9mLXZh bHByaW50LmMJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDM4Mjk5MDAgKzAxMDAKIEBAIC0zNiw4ICsz Niw2IEBACiAgCiAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZl92YWxwcmludCAodm9pZCk7CkBA IC02MTksMTAgKzYxOSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi12YWxw cmludC5jCiAgICAgICAgICAgIGlmIChpbmRleCAhPSBUWVBFX05GSUVMRFMgKHR5cGUpIC0gMSkK ICAgICAgICAgICAgICBmcHV0c19maWx0ZXJlZCAoIiwgIiwgc3RyZWFtKTsKICAgICAgICAgIH0K LUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCitJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkw NyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wMS0w NiAyMzowMzowNy40Mjk2ODQ3NzcgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcv Z2RiL2dkYnR5cGVzLmMJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTA3NTgzOTIgKzAxMDAKKysrKyBn ZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA0 ODI5OTA0ICswMTAwCiBAQCAtODE1LDcgKzgxNSw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9kIChz dHJ1Y3QgdHlwZSAqdHlwZSkKICBzdHJ1Y3QgdHlwZSAqCiAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0 cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCkBAIC05NDYs MTAgKzk0NiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYwog ICAgcmV0dXJuIG5ld190eXBlOwogIH0KICAMCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJ MjAxNS0wMS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI5Njg0Nzc3ICswMTAwCist LS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDEtMjYgMDc6 NDc6MjUuODUyNzU4NDAxICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZ2RidHlw ZXMuaAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNTgyOTkwOCArMDEwMAogQEAgLTY2MCw2ICs2NjAs MTAgQEAgc3RydWN0IG1haW5fdHlwZQogIAogICAgICAgIHN0cnVjdCBkeW5hbWljX3Byb3AgaGln aDsKQEAgLTEwMzgsMTAgKzEwMzgsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2dkYnR5cGVzLmgKICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKik7CiAg CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwg c3RydWN0IHR5cGUgKiwKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYWxsb2MtYXNzb2MuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1hbGxv Yy1hc3NvYy5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40Mjk2ODQ3NzcgKzAxMDAKKysrKyBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29j LmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNTgyOTkwOCArMDEwMAogQEAgLTAsMCArMSw2NSBA QAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0xMTA4LDEwICsxMTA4LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAogK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJ2bGEyLWRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwcmludCBsIiAiID0gXFwu RkFMU0VcXC4iICJwcmludCB2bGEyIGRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwcmludCB2bGEy IiAiID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHJpbnQgZGVhbGxvY2F0ZWQgdmxhMiIKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBl cy5leHAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLWRhdGF0eXBlcy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5leHAJMjAxNS0wMS0wNiAyMzowMzow Ny40Mjk2ODQ3NzcgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDU4Mjk5 MDggKzAxMDAKIEBAIC0wLDAgKzEsODIgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTE5NSwxMCArMTE5NSwxMCBAQCBJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMu ZXhwCiArICAicHJpbnQgbG9naWNhbHZsYSg1LDUsNSkgKDJuZCkiCiArZ2RiX3Rlc3QgInByaW50 IGNoYXJhY3RlcnZsYSg1LDUsNSkiICIgPSAnWCciIFwKICsgICJwcmludCBjaGFyYWN0ZXJ2bGEo NSw1LDUpICgybmQpIgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVz LmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQyOTY4NDc3NyArMDEwMAorKysrIGdkYi03LjguOTAu MjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAkyMDE1 LTAxLTI2IDA3OjQ3OjQyLjQwNTgyOTkwOCArMDEwMAogQEAgLTAsMCArMSw1MSBAQAogKyEgQ29w eXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTI1MSwx MCArMTI1MSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZjkwCiArICAhIGR1bW15IHN0YXRlbWVudCBmb3IgYnAK ICsgIGwgPSAuRkFMU0UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhIHZsYXMtbW9kaWZp ZWQKICtlbmQgcHJvZ3JhbSB2bGFfcHJpbWl0aXZlcwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKK0luZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1m dW5jLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAorKysrIGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAJMjAxNS0w MS0yNiAwNzo0Nzo0Mi40MDY4Mjk5MTMgKzAxMDAKIEBAIC0wLDAgKzEsNjEgQEAKICsjIENvcHly aWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTMxNywxMCAr MTMxNywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1mdW5jLmV4cAogKyAgInByaW50IHZsYTMgKGFmdGVyIGZ1bmMyKSIKICtnZGJf dGVzdCAicHR5cGUgdmxhMyIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEwXFxc KSIgXAogKyAgInB0eXBlIHZsYTMgKGFmdGVyIGZ1bmMyKSIKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCitJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtZnVuYy5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKKysrKyBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCTIw MTUtMDEtMjYgMDc6NDc6NDIuNDA2ODI5OTEzICswMTAwCiBAQCAtMCwwICsxLDcxIEBACiArISBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xMzkz LDEwICsxMzkzLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCiArCiArICByZXQgPSAuVFJVRS4gICAgICAgICAgICAg ICAgISBmdW5jMi1yZXR1cm5lZAogK2VuZCBwcm9ncmFtIHZsYV9mdW5jCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1oaXN0b3J5LmV4cAor SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt aGlzdG9yeS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhwCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDMwNjg0Nzgy ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1oaXN0b3J5LmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNjgyOTkxMyArMDEwMAogQEAg LTAsMCArMSw2MiBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0xNDYwLDEwICsxNDYwLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhwCiArIyBUcnkgdG8g YWNjZXNzIGhpc3RvcnkgdmFsdWVzIGZvciB2bGEgdmFsdWVzLgogK2dkYl90ZXN0ICJwcmludCBc JDkiICIgPSAxMzExIiAicHJpbnQgXCQ5IgogK2dkYl90ZXN0ICJwcmludCBcJDEwIiAiID0gMTAw MSIgInByaW50IFwkMTAiCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1zdWIuZXhwCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy Ni9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1zdWIuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1z dWIuZXhwCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDMwNjg0NzgyICswMTAwCisrKysgZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1zdWIuZXhwCTIw MTUtMDEtMjYgMDc6NDc6NDIuNDA2ODI5OTEzICswMTAwCiBAQCAtMCwwICsxLDg3IEBACiArIyBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE1NTIs MTAgKzE1NTIsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAogKyAgInB0eXBlIGFycmF5MSgxMDApIChhcmJp dHJhcnkgbGVuZ3RoKSIKICtnZGJfdGVzdCAicHR5cGUgYXJyYXkyKDQsMTAwKSIgInR5cGUgPSBp bnRlZ2VyXFxcKGtpbmQ9NFxcXCkiIFwKICsgICJwdHlwZSBhcnJheTIoNCwxMDApIChhcmJpdHJh cnkgbGVuZ3RoKSIKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXB0eXBlLmV4cAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAJMjAxNS0wMS0w NiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQw NjgyOTkxMyArMDEwMAogQEAgLTAsMCArMSw5NiBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNjUzLDEwICsxNjUzLDEwIEBAIEluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBl LmV4cAogK2dkYl90ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkiIFwKICsgICJubyBzdWNoIHZl Y3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAogKyAgInB0eXBlIHZsYTIoNSwg NDUsIDIwKSBub3QgYWxsb2NhdGVkIgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAorSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9m LmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAorKysrIGdkYi03LjguOTAu MjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAkyMDE1LTAx LTI2IDA3OjQ3OjQyLjQwNjgyOTkxMyArMDEwMAogQEAgLTAsMCArMSw0NiBAQAogKyMgQ29weXJp Z2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNzA0LDEwICsx NzA0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXNpemVvZi5leHAKICtnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAicHZsYS1hc3NvY2lhdGVkIl0KICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicHZsYS1h c3NvY2lhdGVkIgogK2dkYl90ZXN0ICJwcmludCBzaXplb2YocHZsYSkiICIgPSA0MDAwIiAicHJp bnQgc2l6ZW9mIGFzc29jaWF0ZWQgcHZsYSIKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKK0luZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0 cmlkZS5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKKysrKyBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAJMjAx NS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKIEBAIC0wLDAgKzEsNDQgQEAKICsjIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTc1Mywx MCArMTc1MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInNp bmdsZS1lbGVtZW50IgogK2dkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gXFxcKDVcXFwpIiAicHJp bnQgc2luZ2xlLWVsZW1lbnQiCiArZ2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSA1IiAicHJp bnQgb25lIHNpbmdsZS1lbGVtZW50IgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAorSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRl LmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAorKysrIGdkYi03LjguOTAu MjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAkyMDE1LTAx LTI2IDA3OjQ3OjQyLjQwNzgyOTkxNyArMDEwMAogQEAgLTAsMCArMSwzMCBAQAogKyEgQ29weXJp Z2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTc4OCwxMCAr MTc4OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1zdHJpZGUuZjkwCiArCiArICBwdmxhID0+IG51bGwoKSAgICAgICAgISBzaW5n bGUtZWxlbWVudAogK2VuZCBwcm9ncmFtIHZsYV9zdHJpZGUKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCitJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdz LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtc3RyaW5ncy5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAK KysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0 cmluZ3MuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA3ODI5OTE3ICswMTAwCiBAQCAtMCwwICsx LDEwNCBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiArCkBAIC0xODk3LDEwICsxODk3LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCiArICAid2hhdGlzIHZhcl9j aGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKICtnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXJfcCIgInR5 cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpIiBcCiArICAicHR5cGUgdmFyX2No YXJfcCBhZnRlciBhc3NvY2lhdGVkIgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKK0luZGV4OiBnZGItNy44LjkwLjIw MTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJp bmdzLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAorKysrIGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAJMjAx NS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKIEBAIC0wLDAgKzEsNDAgQEAKICshIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTE5NDIs MTAgKzE5NDIsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKICsgIHZhcl9jaGFyX3AgPT4gbnVsbCgpCiArICBs ID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLW5vdC1h c3NvY2lhdGVkCiArZW5kIHByb2dyYW0gdmxhX3N0cmluZ3MKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAKK0luZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN1Yi5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKKysrKyBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAJMjAxNS0w MS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKIEBAIC0wLDAgKzEsODIgQEAKICshIENvcHly aWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTIwMjksMTAg KzIwMjksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtc3ViLmY5MAogKwogKyAgY2FsbCBiYXIoc3ViX2FycjMsIHN1Yl9hcnIxKQog K2VuZCBwcm9ncmFtIHZsYV9zdWIKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhwCitJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIt YXJiaXRyYXJ5LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWFyYml0cmFyeS5leHAJMjAxNS0wMS0wNiAyMzow MzowNy40MzA2ODQ3ODIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhwCTIwMTUtMDEtMjYgMDc6 NDc6NDIuNDA3ODI5OTE3ICswMTAwCiBAQCAtMCwwICsxLDM1IEBACiArIyBDb3B5cmlnaHQgMjAx NCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIwNjksMTAgKzIwNjksMTAg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtdmFsdWUtc3ViLWFyYml0cmFyeS5leHAKICtnZGJfdGVzdCAicCBhcnJheTEoMTAwKSIgIiA9 IDEwMCIgInByaW50IGFyYml0YXJ5IGFycmF5MSgxMDApIgogK2dkYl90ZXN0ICJwIGFycmF5Mig0 LDEwKSIgIiA9IDEiICJwcmludCBhcmJpdGFyeSBhcnJheTIoNCwxMCkiCiArZ2RiX3Rlc3QgInAg YXJyYXkyKDQsMTAwKSIgIiA9IDEiICJwcmludCBhcmJpdGFyeSBhcnJheTIoNCwxMDApIgotSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFs dWUtc3ViLWZpbmlzaC5leHAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2guZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWItZmlu aXNoLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAorKysrIGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWZpbmlz aC5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKIEBAIC0wLDAgKzEsNDkg QEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtMjEyMywxMCArMjEyMywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWItZmluaXNoLmV4cAogK2dkYl90ZXN0ICJw IHN1Yl9hcnIyKDEsIDEsIDEpIiAiID0gMzAiICJzdWJfYXJyMigxLCAxLCAxKSBhZnRlciBmaW5p c2giCiArZ2RiX3Rlc3QgInAgc3ViX2FycjIoMiwgMSwgMSkiICIgPSAyMCIgInN1Yl9hcnIyKDIs IDEsIDEpIGFmdGVyIGZpbmlzaCIKICsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAKK0luZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXZhbHVlLXN1Yi5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcgKzAxMDAKKysrKyBn ZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1 Yi5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDg4Mjk5MjIgKzAxMDAKIEBAIC0wLDAgKzEsOTAg QEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtMjIxOCwxMCArMjIxOCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIuZXhwCiArICAic2V0IGFycmF5KDIsMiwy KSB0byAyMCBpbiBzdWJyb3V0aW5lIChwYXNzZWQgdmxhKSIKICtnZGJfdGVzdCAicHJpbnQgYXJy YXkyIiAiID0gXFwoICpcXCggKlxcKCAqMzAsICoyMCwgKjMsXFsoKTMsIC5cXSpcXCkiIFwKICsg ICJwcmludCBhcnJheTIgaW4gZm9vIGFmdGVyIGl0IHdhcyBtb2ZpZmllZCBpbiBkZWJ1Z2dlciAo cGFzc2VkIHZsYSkiCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCTIwMTUtMDEt MDYgMjM6MDM6MDcuNDMxNjg0Nzg3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40 MDg4Mjk5MjIgKzAxMDAKIEBAIC0wLDAgKzEsMTQ4IEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIzNzEsMTAgKzIzNzEsMTAgQEAgSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFs dWUuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtZGVhc3NvY2lhdGVkIgog K2dkYl90ZXN0ICJwcmludCBcJG15cHZhcigxLDMsOCkiICIgPSAxMDAxIiBcCiArICAicHJpbnQg XCRteXB2YXIoMSwzLDgpIGFmdGVyIGRlYWxsb2NhdGVkIgotSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCitJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLmY5MAkyMDE1 LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA4 ODI5OTIyICswMTAwCiBAQCAtMCwwICsxLDU2IEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yNDMyLDEwICsyNDMyLDEwIEBAIEluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLmY5MAog KyAgYWxsb2NhdGUgKHZsYTMgKDIsMikpICAgICAgICAgICAgICAgISB2bGEyLWRlYWxsb2NhdGVk CiArICB2bGEzKDosOikgPSAxMwogK2VuZCBwcm9ncmFtIHZsYQotSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCitJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5l eHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21p LXZsYS1mb3J0cmFuLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAorKysr IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4u ZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA4ODI5OTIyICswMTAwCiBAQCAtMCwwICsxLDE4MiBA QAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0yNjE5LDEwICsyNjE5LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAogKwogK21pX2dkYl9leGl0CiArcmV0dXJu IDAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5m OTAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5m OTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3Zs YS5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcgKzAxMDAKKysrKyBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAJMjAxNS0wMS0yNiAwNzo0Nzo0 Mi40MDk4Mjk5MjYgKzAxMDAKIEBAIC0wLDAgKzEsNDIgQEAKICshIENvcHlyaWdodCAyMDE0IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTI2NjYsMTAgKzI2NjYsMTAgQEAg SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdmxhLmY5MAog KyAgcHZsYTIgPT4gbnVsbCgpCiArICBsID0gYXNzb2NpYXRlZChwdmxhMikgICAgICAgISBwdmxh Mi1zZXQtdG8tbnVsbAogK2VuZCBwcm9ncmFtIHZsYQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3R5cGVwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdHlwZXBy aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3R5cGVw cmludC5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQwOTA3ICswMTAwCi0rKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcg KzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTUt MDEtMjYgMDc6NDc6MjUuODU2NzU4NDE4ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvdHlwZXByaW50LmMJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDk4Mjk5MjYgKzAxMDAKIEBAIC00 NTYsNiArNDU2LDEzIEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCiAgCiAgICB0 eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKQEAgLTI2ODQsMTAgKzI2ODQsMTAgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3R5cGVwcmludC5jCiAgICBnZXRfdXNlcl9wcmludF9vcHRp b25zICgmb3B0cyk7CiAgICBpZiAob3B0cy5vYmplY3RwcmludCkKICAgICAgewotSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUw MTI2L2dkYi92YWxhcml0aC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5v cmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQwOTA3ICswMTAwCi0r KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYwkyMDE1LTAxLTA2IDIzOjAzOjA3 LjQzMjY4NDc5MiArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjYub3JpZy9nZGIvdmFsYXJp dGguYwkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg1Nzc1ODQyMiArMDEwMAorKysrIGdkYi03LjguOTAu MjAxNTAxMjYvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDk4Mjk5MjYgKzAx MDAKIEBAIC0xOTMsMTIgKzE5MywzMSBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVj dCB2YWx1ZSAqCiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKGFycmF5KSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBl ZGVmIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7CkBAIC0yNzIyLDEwICsyNzIyLDEw IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxhcml0aC5jCiAgCiAgICBpZiAo VkFMVUVfTFZBTCAoYXJyYXkpID09IGx2YWxfbWVtb3J5ICYmIHZhbHVlX2xhenkgKGFycmF5KSkK ICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKGVsdF90eXBlKTsKLUluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmMJMjAxNS0wMS0wNiAyMzowMzowNy40MzI2 ODQ3OTIgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL3ZhbHByaW50LmMJ MjAxNS0wMS0yNiAwNzo0NzoyNS44NTg3NTg0MjcgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUw MTI2L2dkYi92YWxwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDEwODI5OTMwICswMTAwCiBA QCAtMzAzLDYgKzMwMywxOCBAQCB2YWxwcmludF9jaGVja192YWxpZGl0eSAoc3RydWN0IHVpX2Zp bGUKICB7CiAgICBDSEVDS19UWVBFREVGICh0eXBlKTsKQEAgLTI4MDAsMTAgKzI4MDAsMTAgQEAg SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmMKICAgIHJldHVybiAxOwog IH0KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5oCitJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2 MzI0MDkwNyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmgJMjAx NS0wMS0wNiAyMzowMzowNy40MzI2ODQ3OTIgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI2 Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTk3NTg0MzEgKzAxMDAK KysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi92YWxwcmludC5oCTIwMTUtMDEtMjYgMDc6NDc6 NDIuNDEwODI5OTMwICswMTAwCiBAQCAtMjE3LDQgKzIxNyw4IEBAIGV4dGVybiB2b2lkIG91dHB1 dF9jb21tYW5kX2NvbnN0IChjb25zdAogIAogIGV4dGVybiBpbnQgdmFsX3ByaW50X3NjYWxhcl90 eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKTsKQEAgLTI4MTMsMTAgKzI4MTMsMTAgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmgKICtleHRlcm4gdm9pZCB2YWxfcHJp bnRfbm90X2Fzc29jaWF0ZWQgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwogKwogICNlbmRpZgot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMKK0luZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQwOTA3ICswMTAwCi0r KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsdWUuYwkyMDE1LTAxLTA2IDIzOjAzOjA3LjQz MzY4NDc5NyArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjYub3JpZy9nZGIvdmFsdWUuYwky MDE1LTAxLTI2IDA3OjQ3OjI1Ljg2MDc1ODQzNSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAx MjYvZ2RiL3ZhbHVlLmMJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MTE4Mjk5MzUgKzAxMDAKIEBAIC00 MCw2ICs0MCw3IEBACiAgI2luY2x1ZGUgInRyYWNlcG9pbnQuaCIKICAjaW5jbHVkZSAiY3AtYWJp LmgiCkBAIC0yOTE5LDExICsyOTE5LDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi92YWx1ZS5jCiAgCiAgICAgICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSkKICAJcmVhZF92YWx1 ZV9tZW1vcnkgKHZhbCwgMCwgdmFsdWVfc3RhY2sgKHZhbCksCi1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvZHdhcmYybG9jLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9k d2FyZjJsb2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv ZHdhcmYybG9jLmMJMjAxNC0xMi0yOCAwMjo0ODo0My4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuYwkyMDE1LTAxLTA2IDIzOjA1OjU1LjI5NjQ5 OTI4NyArMDEwMAotQEAgLTIzMjYsNiArMjM0NiwxMSBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rl c2NfZnVsbCAoc3RydWN0IHR5CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi9kd2Fy ZjJsb2MuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg2Mjc1ODQ0NCArMDEwMAorKysrIGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDEyODI5OTM5 ICswMTAwCitAQCAtMjI5Myw2ICsyMjkzLDExIEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19m dWxsIChzdHJ1Y3QgdHkKICAJICAgIGludCBpbl9zdGFja19tZW1vcnkgPSBkd2FyZl9leHByX2Zl dGNoX2luX3N0YWNrX21lbW9yeSAoY3R4LCAwKTsKICAKICAJICAgIGRvX2NsZWFudXBzICh2YWx1 ZV9jaGFpbik7CkBAIC0yOTM1LDcgKzI5MzUsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZHdhcmYybG9jLmMKICAJICAgIHJldHZhbCA9IHZhbHVlX2F0X2xhenkgKHR5cGUsIGFk ZHJlc3MgKyBieXRlX29mZnNldCk7CiAgCSAgICBpZiAoaW5fc3RhY2tfbWVtb3J5KQogIAkgICAg ICBzZXRfdmFsdWVfc3RhY2sgKHJldHZhbCwgMSk7Ci1AQCAtMjU0Niw2ICsyNTQ2LDE5IEBAIGR3 YXJmMl9jb21waWxlX3Byb3BlcnR5X3RvX2MgKHN0cnVjdCB1aV8KK0BAIC0yNTUyLDYgKzI1NTcs MTkgQEAgZHdhcmYyX2NvbXBpbGVfcHJvcGVydHlfdG9fYyAoc3RydWN0IHVpXwogIAkJCSAgICAg ZGF0YSwgZGF0YSArIHNpemUsIHBlcl9jdSk7CiAgfQogIAoKZGlmZiAtLWdpdCBhL2dkYi5zcGVj IGIvZ2RiLnNwZWMKaW5kZXggYTE1OTJjNS4uZDRhZjkyYiAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMK KysrIGIvZ2RiLnNwZWMKQEAgLTIyLDExICsyMiwxMSBAQCBOYW1lOiAlez9zY2xfcHJlZml4fWdk YgogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5zdGFsbGVkIGludG8gZ2RiL2du dWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTIxMjEzCiAlZ2xvYmFsIHRhcm5hbWUgZ2Ri LSV7dmVyc2lvbn0KLVZlcnNpb246IDcuOC41MC4yMDE1MDEwOAorVmVyc2lvbjogNy44LjkwLjIw MTUwMjAyCiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZl ZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBg bmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0 ZXN0aW5nLgotUmVsZWFzZTogMSV7P2Rpc3R9CitSZWxlYXNlOiAyJXs/ZGlzdH0KIAogTGljZW5z ZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYy KyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIEJTRCBhbmQgUHVibGlj IERvbWFpbiBhbmQgR0ZETAogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtNTIwLDE5 ICs1MjAsMTQgQEAgUGF0Y2g5MjU6IGdkYi1mb3J0cmFuLWZyYW1lLXN0cmluZy5wYXRjaAogIyBG aXggUHl0aG9uIEdJTCB3aXRoIGdkYi5leGVjdXRlKCJjb250aW51ZSIpIChQaGlsIE11bGRvb24s IEJaIDExMTY5NTcpLgogUGF0Y2g5Mjc6IGdkYi1weXRob24tZ2lsLnBhdGNoCiAKLSMgRml4ICdT bG93IGdzdGFjayBwZXJmb3JtYW5jZScgKFJIIEJaIDExMDM4OTQsIEphbiBLcmF0b2NodmlsKS4K LVBhdGNoOTczOiBnZGItc2xvdy1nc3RhY2stcGVyZm9ybWFuY2UucGF0Y2gKLQotIyBGaXggJ2Nv bXBpbGUnIGNvbXBpbGF0aW9uIHdhcm5pbmcvZXJyb3IuCi1QYXRjaDk3NzogZ2RiLWNvbXBpbGUt d2Fybl91bnVzZWRfcmVzdWx0LnBhdGNoCi0KICMgRml4IGppdC1yZWFkZXIuaCBmb3IgbXVsdGkt bGliLgogUGF0Y2g5Nzg6IGdkYi1qaXQtcmVhZGVyLW11bHRpbGliLnBhdGNoCiAKICMgRml4IGdk Yi03LjlwcmUgcmVncmVzc2lvbnMgLyBuZXcgRkFJTHMuCiBQYXRjaDk3OTogZ2RiLTYuOC1iejQ1 NzE4Ny1sYXJnZWZpbGUtdGVzdC1yZWdyZXNzaW9uLWZpeC5wYXRjaAotUGF0Y2g5ODA6IGdkYi1w eS1mcmFtZS1yaXAtdGVzdC1maXgucGF0Y2gKLVBhdGNoOTgxOiBnZGItdGVraGV4LXJlZ3Jlc3Np b24tcmV2ZXJ0LnBhdGNoCisKKyMgVGVtcG9yYXJpbHkgZGlzYWJsZSBkZy1leHRyYWN0LXJlc3Vs dHMucHkgdG8gZml4IGdkYi5zdW0gc29ydGluZy4KK1BhdGNoOTgyOiBnZGItbm8tZGctZXh0cmFj dC1yZXN1bHRzLXB5LnBhdGNoCiAKICVpZiAwJXshP3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNgog IyBSTF9TVEFURV9GRURPUkFfR0RCIHdvdWxkIG5vdCBiZSBmb3VuZCBmb3I6CkBAIC04MTUsMTIg KzgxMCw5IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0Y2g5MTggLXAx CiAlcGF0Y2g5MjUgLXAxCiAlcGF0Y2g5MjcgLXAxCi0lcGF0Y2g5NzMgLXAxCi0lcGF0Y2g5Nzcg LXAxCiAlcGF0Y2g5NzggLXAxCiAlcGF0Y2g5NzkgLXAxCi0lcGF0Y2g5ODAgLXAxCi0lcGF0Y2g5 ODEgLXAxCislcGF0Y2g5ODIgLXAxCiAKICVwYXRjaDg0OCAtcDEKICVpZiAwJXshP2VsNjoxfQpA QCAtMTMyMSw2ICsxMzEzLDEwIEBAIHRoZW4KIGZpCiAKICVjaGFuZ2Vsb2cKKyogTW9uIEZlYiAg MiAyMDE1IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuOC45 MC4yMDE1MDIwMi0yLmZjMjIKKy0gUmViYXNlIHRvIDcuOS1icmFuY2ggc25hcHNob3QgNy44Ljkw LjIwMTUwMjAyLgorLSBUZW1wb3JhcmlseSBkaXNhYmxlIGRnLWV4dHJhY3QtcmVzdWx0cy5weSB0 byBmaXggZ2RiLnN1bSBzb3J0aW5nLgorCiAqIFRodSBKYW4gIDggMjAxNSBKYW4gS3JhdG9jaHZp bCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjguNTAuMjAxNTAxMDgtMS5mYzIyCiAt IFJlYmFzZSB0byBwcmUtNy45IHNuYXBzaG90IDcuOC41MC4yMDE1MDEwOC4KIC0gRml4IGppdC1y ZWFkZXIuaCBmb3IgbXVsdGktbGliLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmlu ZGV4IGVkOTYzODYuLjg0OGJkZTMgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpA QCAtMSwyICsxLDIgQEAKIDQ5ODEzMDdhYTk2MTliYmVjNWI3MzI2MWU0ZTQxYzhkICBnZGItbGli c3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLTZiNDNmMTA3OWU5YTY0MDFjNzI3N2Q2 YmQ3NzdiZDdmICBnZGItNy44LjUwLjIwMTUwMTA4LnRhci54egorMzgyMWQwNTVhNjM5NjQ0ZDA5 YmQ5NzM0ZTU5YjA1MWMgIGdkYi03LjguOTAuMjAxNTAyMDIudGFyLnh6Cg==