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 FSF GDB 7.2.50.20110328 (which is a 7.3 pre-release). Date: Thu, 23 Jul 2026 18:29:54 GMT Message-ID: <178483139493.1.3220408311349104319.rpms-gdb-46a1caf62e3a@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 46a1caf62e3a06c7d6e37e1c422262fdde193e2e ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogNDZhMWNhZjYyZTNhMDZjN2Q2ZTM3ZTFjNDIyMjYyZmRkZTE5M2UyZQog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wMy0yOFQyMDowNjozMSswMjowMAogICAg ICAgICAgICBTdGF0cyAgOiArNzY2Ly0zNjEgaW4gOSBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAg ICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvNDZhMWNhZjYyZTNh MDZjN2Q2ZTM3ZTFjNDIyMjYyZmRkZTE5M2UyZT9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAgICAg ICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gRlNGIEdEQiA3LjIuNTAuMjAxMTAzMjgg KHdoaWNoIGlzIGEgNy4zIHByZS1yZWxlYXNlKS4KQnVuZGxlICV7bGlic3RkY3h4cHl0aG9ufS50 YXIuYnoyIHVuY29uZGl0aW9uYWxseSAtIGZvciByZWJ1bGRzIG9uIFJIRUxzLgoKLS0tCmRpZmYg LS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBhNWVkYTNmLi5iMWRhMzA3IDEw MDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMiArMSwyIEBACiAv bGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy4yLjUwLjIwMTEwMzIw LnRhci5iejIKKy9nZGItNy4yLjUwLjIwMTEwMzI4LnRhci5iejIKCmRpZmYgLS1naXQgYS9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaApp bmRleCA3MjBiZjIxLi44Y2U1ZjAyIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRl LnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAgLTEsNyArMSw3IEBA Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvY29yZWxvdy5jCitJbmRleDogZ2RiLTcu Mi41MC4yMDExMDMyOC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4y MDExMDMyMC5vcmlnL2dkYi9jb3JlbG93LmMJMjAxMS0wMi0yNiAwMzowNzowNy4wMDAwMDAwMDAg KzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9jb3JlbG93LmMJMjAxMS0wMy0yMCAx NToxOTo1Mi4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMzI4Lm9yaWcvZ2Ri L2NvcmVsb3cuYwkyMDExLTAyLTI2IDAzOjA3OjA3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03 LjIuNTAuMjAxMTAzMjgvZ2RiL2NvcmVsb3cuYwkyMDExLTAzLTI4IDE4OjQxOjIwLjAwMDAwMDAw MCArMDIwMAogQEAgLTQ3LDYgKzQ3LDkgQEAKICAjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCiAgI2lu Y2x1ZGUgInByb2dzcGFjZS5oIgpAQCAtOTAsMTEgKzkwLDExIEBAIEluZGV4OiBnZGItNy4yLjUw LjIwMTEwMzIwL2dkYi9jb3JlbG93LmMKICsJCQkgICBOVUxMLCBOVUxMLCBOVUxMLAogKwkJCSAg ICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogIH0KLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dk Yi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9kb2MvZ2Ri LnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMzIwLm9yaWcvZ2RiL2Rv Yy9nZGIudGV4aW5mbwkyMDExLTAzLTIwIDE1OjE3OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIGdk Yi03LjIuNTAuMjAxMTAzMjAvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDExLTAzLTIwIDE1OjE5OjUy LjAwMDAwMDAwMCArMDEwMAotQEAgLTE1MzQzLDYgKzE1MzQzLDI3IEBAIGluZm9ybWF0aW9uIGZp bGVzLgorLS0tIGdkYi03LjIuNTAuMjAxMTAzMjgub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIw MTEtMDMtMjggMTg6NDA6MTUuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi41MC4yMDExMDMy OC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDMtMjggMTg6NDE6MjAuMDAwMDAwMDAwICswMjAw CitAQCAtMTUzNDYsNiArMTUzNDYsMjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCiAgCiAgQGVuZCB0 YWJsZQogIApAQCAtMTIyLDEwICsxMjIsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjAv Z2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5kZXggQGNvZGV7LmdudV9kZWJ1Z2xpbmt9IHNlY3Rp b25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNlY3Rpb25zCiAgQSBkZWJ1ZyBsaW5rIGlzIGEgc3Bl Y2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRhYmxlIGZpbGUgbmFtZWQKLUluZGV4OiBnZGItNy4y LjUwLjIwMTEwMzIwL2dkYi9zb2xpYi1zdnI0LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMzI4 L2dkYi9zb2xpYi1zdnI0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMzIwLm9y aWcvZ2RiL3NvbGliLXN2cjQuYwkyMDExLTAzLTIwIDE1OjE3OjQzLjAwMDAwMDAwMCArMDEwMAot KysrIGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL3NvbGliLXN2cjQuYwkyMDExLTAzLTIwIDE1OjE5 OjUyLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAzMjgub3JpZy9nZGIvc29s aWItc3ZyNC5jCTIwMTEtMDMtMjggMTg6NDA6MTQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDMyOC9nZGIvc29saWItc3ZyNC5jCTIwMTEtMDMtMjggMTg6NDE6MjAuMDAwMDAw MDAwICswMjAwCiBAQCAtMTE3OSw5ICsxMTc5LDQ5IEBAIHN2cjRfY3VycmVudF9zb3MgKHZvaWQp CiAgCQkgICAgIHNhZmVfc3RyZXJyb3IgKGVycmNvZGUpKTsKICAJICBlbHNlCkBAIC0xNzksMTQg KzE3OSwxNCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvc29saWItc3ZyNC5jCiAg CSAgICB9CiAgCSAgeGZyZWUgKGJ1ZmZlcik7CiAgCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDMy MC9nZGIvZWxmcmVhZC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvZWxmcmVhZC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDMyMC5vcmlnL2dkYi9lbGZyZWFkLmMJ MjAxMS0wMy0yMCAxNToxNzo0Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEw MzIwL2dkYi9lbGZyZWFkLmMJMjAxMS0wMy0yMCAxNToyMjozNC4wMDAwMDAwMDAgKzAxMDAKKy0t LSBnZGItNy4yLjUwLjIwMTEwMzI4Lm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDExLTAzLTI4IDE4OjQw OjE0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuNTAuMjAxMTAzMjgvZ2RiL2VsZnJlYWQu YwkyMDExLTAzLTI4IDE4OjQ1OjM5LjAwMDAwMDAwMCArMDIwMAogQEAgLTQ1LDYgKzQ1LDEwIEBA CisgI2luY2x1ZGUgInJlZ2NhY2hlLmgiCiAgI2luY2x1ZGUgInN0YXAtcHJvYmUuaCIKICAjaW5j bHVkZSAiYXJjaC11dGlscy5oIgotICNpbmNsdWRlICJnZGJ0eXBlcy5oIgogKyNpbmNsdWRlICJs aWJiZmQuaCIKICsjaW5jbHVkZSAiZ2RiY29yZS5oIgogKyNpbmNsdWRlICJnZGJjbWQuaCIKQEAg LTg1OCw4ICs4NTgsOCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvZWxmcmVhZC5j CiArCQkJCQkgICAgMSk7CiAgICAgICAgeGZyZWUgKGJ1aWxkX2lkKTsKICAgICAgICAvKiBQcmV2 ZW50IGxvb3Bpbmcgb24gYSBzdHJpcHBlZCAuZGVidWcgZmlsZS4gICovCi0gICAgICAgaWYgKGJ1 aWxkX2lkX25hbWUgIT0gTlVMTCAmJiBzdHJjbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5h bWUpID09IDApCi1AQCAtMTIwOSw3ICsxNzg0LDcgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxl X2J5X2J1aWxkaWQgKHN0cgorICAgICAgIGlmIChidWlsZF9pZF9uYW1lICE9IE5VTEwKK0BAIC0x MjEwLDcgKzE3ODUsNyBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3Ry CiAgCSAgeGZyZWUgKGJ1aWxkX2lkX25hbWUpOwogIAl9CiAgICAgICAgZWxzZSBpZiAoYnVpbGRf aWRfbmFtZSAhPSBOVUxMKQpAQCAtODY4LDcgKzg2OCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTEwMzIwL2dkYi9lbGZyZWFkLmMKICAgICAgfQogICAgcmV0dXJuIE5VTEw7CiAgfQotQEAgLTE0 MDcsOSArMTk4MiwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls CitAQCAtMTQwOCw5ICsxOTgzLDEwIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWwKICAgICAgIGAubm90ZS5nbnUuYnVpbGQtaWQnLiAgKi8KICAgIGVsc2UgaWYgKCFv YmpmaWxlX2hhc19wYXJ0aWFsX3N5bWJvbHMgKG9iamZpbGUpKQogICAgICB7CkBAIC04ODEsNyAr ODgxLDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL2VsZnJlYWQuYwogIAogICAg ICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVMTCkKICAJZGVidWdmaWxlID0gZmluZF9zZXBhcmF0ZV9k ZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7Ci1AQCAtMTQyMSw2ICsxOTk3LDEyIEBA IGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKK0BAIC0xNDIyLDYgKzE5 OTgsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAogIAkgIHN5 bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJmZCwgc3ltZmlsZV9mbGFncywgb2JqZmlsZSk7CiAg CSAgeGZyZWUgKGRlYnVnZmlsZSk7CiAgCX0KQEAgLTg5NCw3ICs4OTQsNyBAQCBJbmRleDogZ2Ri LTcuMi41MC4yMDExMDMyMC9nZGIvZWxmcmVhZC5jCiAgICAgIH0KICB9CiAgCi1AQCAtMTg3OSw0 ICsyNDYxLDE2IEBAIF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpCitAQCAtMTg3Myw0ICsyNDU1 LDE2IEBAIF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpCiAgCiAgICBlbGZfb2JqZmlsZV9nbnVf aWZ1bmNfY2FjaGVfZGF0YSA9IHJlZ2lzdGVyX29iamZpbGVfZGF0YSAoKTsKICAgIGdudV9pZnVu Y19mbnNfcCA9ICZlbGZfZ251X2lmdW5jX2ZuczsKQEAgLTkxMSwxMCArOTExLDEwIEBAIEluZGV4 OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9lbGZyZWFkLmMKICsKICsgIG9ic2VydmVyX2F0dGFj aF9leGVjdXRhYmxlX2NoYW5nZWQgKGRlYnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCk7CiAg fQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi03 LjIuNTAuMjAxMTAzMjgvZ2RiL3N5bWZpbGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAu MjAxMTAzMjAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTEtMDMtMjAgMTU6MTc6NDMuMDAwMDAwMDAw ICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvc3ltZmlsZS5oCTIwMTEtMDMtMjAg MTU6MTk6NTIuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDMyOC5vcmlnL2dk Yi9zeW1maWxlLmgJMjAxMS0wMy0yOCAxODo0MDoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ny4yLjUwLjIwMTEwMzI4L2dkYi9zeW1maWxlLmgJMjAxMS0wMy0yOCAxODo0MToyMC4wMDAwMDAw MDAgKzAyMDAKIEBAIC02MTEsNiArNjExLDEzIEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRf ZGF0YSAoc3RydWN0IHMKICAKICBleHRlcm4gc3RydWN0IGNsZWFudXAgKmluY3JlbWVudF9yZWFk aW5nX3N5bXRhYiAodm9pZCk7CkBAIC05MjksMTEgKzkyOSwxMSBAQCBJbmRleDogZ2RiLTcuMi41 MC4yMDExMDMyMC9nZGIvc3ltZmlsZS5oCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKICBl eHRlcm4gaW50IGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKik7Ci1JbmRleDogZ2Ri LTcuMi41MC4yMDExMDMyMC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcu Mi41MC4yMDExMDMyOC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMi41MC4yMDExMDMyMC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMS0w My0yMCAxNToxNzo0My4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMzIwL2dk Yi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMS0wMy0yMCAxNToxOTo1Mi4wMDAwMDAwMDAgKzAx MDAKLUBAIC0xMzk3LDYgKzEzOTcsMTYgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0gewor LS0tIGdkYi03LjIuNTAuMjAxMTAzMjgub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIw MTEtMDMtMjggMTg6NDA6MTQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi41MC4yMDExMDMy OC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTEtMDMtMjggMTg6NDE6MjAuMDAwMDAwMDAw ICswMjAwCitAQCAtMTM4MSw2ICsxMzgxLDE2IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9 IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KICAg ICAgfQpAQCAtOTUwLDEwICs5NTAsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjAvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogICAgICByZXR1cm4gMDsKICB9CiAgCi1JbmRleDogZ2Ri LTcuMi41MC4yMDExMDMyMC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAorSW5kZXg6 IGdkYi03LjIuNTAuMjAxMTAzMjgvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMzIwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIv bWktc3VwcG9ydC5leHAJMjAxMS0wMy0wNyAxNzowMzowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn ZGItNy4yLjUwLjIwMTEwMzIwL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTEt MDMtMjAgMTU6MTk6NTIuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDMyOC5v cmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTEtMDMtMDcgMTc6MDM6MDQu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvdGVzdHN1aXRlL2xp Yi9taS1zdXBwb3J0LmV4cAkyMDExLTAzLTI4IDE4OjQxOjIwLjAwMDAwMDAwMCArMDIwMAogQEAg LTIyMSw2ICsyMjEsMTYgQEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAg CSAgICB9CiAgICAgIAl9CkBAIC05NzEsMTAgKzk3MSwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4y MDExMDMyMC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogIAogICAgICBkZXRlY3Rf YXN5bmMKICAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9vYmpmaWxlcy5oCitJbmRl eDogZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvb2JqZmlsZXMuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjIuNTAuMjAxMTAzMjAub3JpZy9nZGIvb2JqZmlsZXMuaAkyMDExLTAzLTA3IDE3OjE3OjI5 LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL29iamZpbGVzLmgJ MjAxMS0wMy0yMCAxNToyMDoyOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEw MzI4Lm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxMS0wMy0wNyAxNzoxNzoyOS4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9vYmpmaWxlcy5oCTIwMTEtMDMtMjggMTg6 NDE6MjAuMDAwMDAwMDAwICswMjAwCiBAQCAtNDQxLDYgKzQ0MSwxMCBAQCBzdHJ1Y3Qgb2JqZmls ZQogIAogICNkZWZpbmUgT0JKRl9QU1lNVEFCU19SRUFEICgxIDw8IDQpCgpkaWZmIC0tZ2l0IGEv Z2RiLWFkYS1nZGJhcmNoLWNyYXNoLnBhdGNoIGIvZ2RiLWFkYS1nZGJhcmNoLWNyYXNoLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjFmY2UxLi4wMDAwMDAwCi0tLSBhL2dk Yi1hZGEtZ2RiYXJjaC1jcmFzaC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAK LWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDExLTAzL21zZzAwOTQ2Lmh0 bWwKLVN1YmplY3Q6IFtwYXRjaF0gYWRhOiBGaXggcmFzaGVzIG9uIGdkYmFyY2ggZ2FyYmFnZQot Ci1IaSBKb2VsLAotCi1mb3IgZ2RiLmFkYS9zdHJfcmVmX2NtcC5leHAgb24geDg2XzY0LWZlZG9y YTE1LWxpbnV4LWdudSBpdCB0dXJuczoKLQotKGdkYikgcHJpbnQgU3RyaW5nX1ZhciAoMSAuLiAz KSA9ICJIZWwiCi1FUlJPUjogUHJvY2VzcyBubyBsb25nZXIgZXhpc3RzCi1VTlJFU09MVkVEOiBn ZGIuYWRhL3N0cl9yZWZfY21wLmV4cDogcHJpbnQgU3RyaW5nX1ZhciAoMSAuLiAzKSA9ICJIZWwi Ci0tPgotKGdkYikgcHJpbnQgU3RyaW5nX1ZhciAoMSAuLiAzKSA9ICJIZWwiCi0kMSA9IGZhbHNl Ci0oZ2RiKSBGQUlMOiBnZGIuYWRhL3N0cl9yZWZfY21wLmV4cDogcHJpbnQgU3RyaW5nX1ZhciAo MSAuLiAzKSA9ICJIZWwiCi0KLUdEQiBjcmFzaGVzIHRoZSBmb3JtZXIgd2F5IHdpdGhvdXQgdGhp cyBmaXggb246Ci0JZ2NjLWduYXQtNC42LjAtMC4xNC5mYzE1Lng4Nl82NAotCWdjYy1nbmF0LTQu NS4xLTQuZmMxNC54ODZfNjQKLQotSSBjYW5ub3QgdGVzdCBGU0YgZ2NjIDw9NC41IG15c2VsZiBh cyBpdHMgQWRhIGJ1aWxkIGVycm9ycyBvdXQgZm9yIG1lIG9uOgotCXVpbnRwLmFkYjoyNDI6MjI6 IGV4cGVjdCB0eXBlICJIbnVtIiBkZWZpbmVkIGF0IGxpbmUgOTEKLQotR0RCIFBBU1NlcyBvbiB0 aGVzZSBHTkFUcyBldmVuIHdpdGhvdXQgdGhpcyBmaXggYnV0IHRoYXQgaXMgbm90IHRoZSBwb2lu dDoKLQlHTkFUIDQuNy4wIDIwMTEwMzIwIChleHBlcmltZW50YWwpCi0JR05BVCA0LjYuMCAyMDEx MDMyMCAocHJlcmVsZWFzZSkKLQotVGhpcyBpcyBvbmx5IGEgc3VnZ2VzdGlvbiwgSSBkbyBub3Qg a25vdyBtdWNoIGFib3V0IHRoZSBhZGEtKiBjb2RlLgotCi0KLVRoYW5rcywKLUphbgotCi0KLWdk Yi8KLTIwMTEtMDMtMjAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KLQotCSogYWRhLWxhbmcuYyAocmVwbGFjZV9vcGVyYXRvcl93aXRoX2NhbGwpOiBDb3B5IGFs c28gR0RCQVJDSC4KLQotLS0tIGEvZ2RiL2FkYS1sYW5nLmMKLSsrKyBiL2dkYi9hZGEtbGFuZy5j Ci1AQCAtMzY2MSw2ICszNjYxLDcgQEAgcmVwbGFjZV9vcGVyYXRvcl93aXRoX2NhbGwgKHN0cnVj dCBleHByZXNzaW9uICoqZXhwcCwgaW50IHBjLCBpbnQgbmFyZ3MsCi0gCi0gICBuZXdleHAtPm5l bHRzID0gZXhwLT5uZWx0cyArIDcgLSBvcGxlbjsKLSAgIG5ld2V4cC0+bGFuZ3VhZ2VfZGVmbiA9 IGV4cC0+bGFuZ3VhZ2VfZGVmbjsKLSsgIG5ld2V4cC0+Z2RiYXJjaCA9IGV4cC0+Z2RiYXJjaDsK LSAgIG1lbWNweSAobmV3ZXhwLT5lbHRzLCBleHAtPmVsdHMsIEVYUF9FTEVNX1RPX0JZVEVTIChw YykpOwotICAgbWVtY3B5IChuZXdleHAtPmVsdHMgKyBwYyArIDcsIGV4cC0+ZWx0cyArIHBjICsg b3BsZW4sCi0gICAgICAgICAgIEVYUF9FTEVNX1RPX0JZVEVTIChleHAtPm5lbHRzIC0gcGMgLSBv cGxlbikpOwotCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci1waWUtYWRkb25zLWtlZXAtZGlzYWJs ZWQucGF0Y2ggYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMta2VlcC1kaXNhYmxlZC5wYXRjaAppbmRl eCA4ZDE2ZTZhLi41MGQ5NGEzIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLXBpZS1hZGRvbnMta2Vl cC1kaXNhYmxlZC5wYXRjaAorKysgYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMta2VlcC1kaXNhYmxl ZC5wYXRjaApAQCAtMSw4ICsxLDggQEAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9i cmVha3BvaW50LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9icmVha3BvaW50LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMzIwLm9yaWcvZ2RiL2JyZWFrcG9pbnQu YwkyMDExLTAzLTIwIDE1OjE3OjQyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAx MTAzMjAvZ2RiL2JyZWFrcG9pbnQuYwkyMDExLTAzLTIwIDE1OjI4OjQ4LjAwMDAwMDAwMCArMDEw MAotQEAgLTEwNjc4LDYgKzEwNjc4LDUwIEBAIHVwZGF0ZV9icmVha3BvaW50X2xvY2F0aW9ucyAo c3RydWN0IGJyZWEKKy0tLSBnZGItNy4yLjUwLjIwMTEwMzI4Lm9yaWcvZ2RiL2JyZWFrcG9pbnQu YwkyMDExLTAzLTI4IDE4OjQwOjE0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuNTAuMjAx MTAzMjgvZ2RiL2JyZWFrcG9pbnQuYwkyMDExLTAzLTI4IDE4OjQ1OjU3LjAwMDAwMDAwMCArMDIw MAorQEAgLTEwNzA3LDYgKzEwNzA3LDUwIEBAIHVwZGF0ZV9icmVha3BvaW50X2xvY2F0aW9ucyAo c3RydWN0IGJyZWEKICAgIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoMSk7CiAgfQogIApA QCAtNTMsMjIgKzUzLDIyIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9icmVha3Bv aW50LmMKICAvKiBSZXNldCBhIGJyZWFrcG9pbnQgZ2l2ZW4gaXQncyBzdHJ1Y3QgYnJlYWtwb2lu dCAqIEJJTlQuCiAgICAgVGhlIHZhbHVlIHdlIHJldHVybiBlbmRzIHVwIGJlaW5nIHRoZSByZXR1 cm4gdmFsdWUgZnJvbSBjYXRjaF9lcnJvcnMuCiAgICAgVW51c2VkIGluIHRoaXMgY2FzZS4gICov Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvYnJlYWtwb2ludC5oCitJbmRleDogZ2Ri LTcuMi41MC4yMDExMDMyOC9nZGIvYnJlYWtwb2ludC5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Mi41MC4yMDExMDMyMC5vcmlnL2dkYi9icmVha3BvaW50LmgJMjAxMS0wMy0yMCAxNToxNzo0Mi4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9icmVha3BvaW50LmgJ MjAxMS0wMy0yMCAxNToyOTozMy4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMjEwLDQgKzEyMTAsNyBA QCBleHRlcm4gc3RydWN0IGJyZWFrcG9pbnQgKml0ZXJhdGVfb3Zlcl9iCistLS0gZ2RiLTcuMi41 MC4yMDExMDMyOC5vcmlnL2dkYi9icmVha3BvaW50LmgJMjAxMS0wMy0yOCAxODo0MDoxNC4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9icmVha3BvaW50LmgJMjAx MS0wMy0yOCAxODo0NjowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMjE5LDQgKzEyMTksNyBAQCBl eHRlcm4gaW50IHVzZXJfYnJlYWtwb2ludF9wIChzdHJ1Y3QgYnJlCiAgCi0gZXh0ZXJuIGludCB1 c2VyX2JyZWFrcG9pbnRfcCAoc3RydWN0IGJyZWFrcG9pbnQgKik7CisgZXh0ZXJuIHZvaWQgbW9k aWZ5X3NlbWFwaG9yZSAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2NhdGlvbiwgaW50IHNldCk7CiAg CiArZXh0ZXJuIHZvaWQgYnJlYWtwb2ludHNfcmVsb2NhdGUgKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLAogKwkJCQkgIHN0cnVjdCBzZWN0aW9uX29mZnNldHMgKmRlbHRhKTsKICsKICAjZW5kaWYg LyogIWRlZmluZWQgKEJSRUFLUE9JTlRfSCkgKi8KLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIw L2dkYi9vYmpmaWxlcy5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvb2JqZmlsZXMu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAzMjAub3JpZy9nZGIvb2JqZmlsZXMu YwkyMDExLTAzLTIwIDE1OjE3OjQyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAx MTAzMjAvZ2RiL29iamZpbGVzLmMJMjAxMS0wMy0yMCAxNToyOTowNS4wMDAwMDAwMDAgKzAxMDAK Ky0tLSBnZGItNy4yLjUwLjIwMTEwMzI4Lm9yaWcvZ2RiL29iamZpbGVzLmMJMjAxMS0wMy0yOCAx ODo0MDoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9vYmpm aWxlcy5jCTIwMTEtMDMtMjggMTg6NDU6NTcuMDAwMDAwMDAwICswMjAwCiBAQCAtODUxLDYgKzg1 MSwxMSBAQCBvYmpmaWxlX3JlbG9jYXRlMSAoc3RydWN0IG9iamZpbGUgKm9iamZpCiAgICAgIG9i amZpbGUtPnNmLT5zeW1fcHJvYmVfZm5zLT5zeW1fcmVsb2NhdGVfcHJvYmUgKG9iamZpbGUsCiAg CQkJCQkJICAgIG5ld19vZmZzZXRzLCBkZWx0YSk7CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5w YXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggNGI0YTZhNi4uYTJkZDFmOCAxMDA2NDQKLS0t IGEvZ2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBA QCBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3Nv dXJjZXdhcmUub3JnL2dkYi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBz aG90OgotY29tbWl0IDZiMmEwYmY3NTgyNjNkMjJiZjJiM2JkMmUwMjY2NWNmMGMyNGIwYmUKK2Nv bW1pdCAxNmYzNWEyYzU1NTU2OTcwZWQxMTE0MTkyMDIzMDU3ODJhMGY3OWVjCiAKIGJyYW5jaCBg YXJjaGVyJyAtIHRoZSBtZXJnZSBvZiBicmFuY2hlczoKIGFyY2hlci1qYW5rcmF0b2NodmlsLXZs YQpAQCAtMTAsOCArMTAsNiBAQCBhcmNoZXItamFua3JhdG9jaHZpbC13YXRjaHBvaW50MwogYXJj aGVyLWphbmtyYXRvY2h2aWwtaWZ1bmMKIGFyY2hlci10cm9tZXktcHl0aG9uCiBhcmNoZXItc2Vy Z2lvZGotc3RhcAotI1RPRE8/OmFyY2hlci10cm9tZXktb3B0aW9uYWwtcHN5bXRhYiAoY2hlcnJ5 LXBpY2tlZCBmcm9tIHBvc3QtNy4yIG1hc3RlcikKLSNUT0RPPzphcmNoZXItdHJvbWV5LXRocmVh ZGVkLWR3YXJmCiAKIAogZGlmZiAtLWdpdCBhL2JmZC9lbGYtYmZkLmggYi9iZmQvZWxmLWJmZC5o CkBAIC0xNDQsNyArMTQyLDcgQEAgaW5kZXggNDg5YjFlOS4uYzMzMmIxYiAxMDA2NDQKICAJJChT SEVMTCkgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKICAKIGRpZmYgLS1naXQgYS9nZGIvTkVXUyBi L2dkYi9ORVdTCi1pbmRleCBmZWViZjYxLi4yNzlhMWM5IDEwMDY0NAoraW5kZXggMjI4ODQ5Ny4u NmRmOTg2OCAxMDA2NDQKIC0tLSBhL2dkYi9ORVdTCiArKysgYi9nZGIvTkVXUwogQEAgLTM2LDYg KzM2LDEwIEBACkBAIC0xNTcsMTIgKzE1NSwxMiBAQCBpbmRleCBmZWViZjYxLi4yNzlhMWM5IDEw MDY0NAogKwogICogUHl0aG9uIHNjcmlwdGluZwogIAotICAgKiogUGFyYW1ldGVycyBjYW4gbm93 IGJlIGJlIHN1Yi1jbGFzc2VkIGluIFB5dGhvbiwgYW5kIGluIHBhcnRpY3VsYXIKKyAgICoqIFRo ZSBmdW5jdGlvbiBnZGIuV3JpdGUgbm93IGFjY2VwdHMgYW4gb3B0aW9uYWwga2V5d29yZCAnc3Ry ZWFtJy4KIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCi1pbmRl eCBlZDUxYWIwLi42ODUxODEwIDEwMDY0NAoraW5kZXggNTcyOGFjOC4uNzQ0ZDJmYSAxMDA2NDQK IC0tLSBhL2dkYi9hZGEtbGFuZy5jCiArKysgYi9nZGIvYWRhLWxhbmcuYwotQEAgLTExMzkwLDYg KzExMzkwLDcgQEAgYWRhX29wZXJhdG9yX2xlbmd0aCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgaW50IHBjLCBpbnQgKm9wbGVucCwKK0BAIC0xMTM5MSw2ICsxMTM5MSw3IEBAIGFkYV9v cGVyYXRvcl9sZW5ndGggKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwYywgaW50 ICpvcGxlbnAsCiAgCiAgc3RhdGljIGludAogIGFkYV9vcGVyYXRvcl9jaGVjayAoc3RydWN0IGV4 cHJlc3Npb24gKmV4cCwgaW50IHBvcywKQEAgLTE3MCw3ICsxNjgsNyBAQCBpbmRleCBlZDUxYWIw Li42ODUxODEwIDEwMDY0NAogIAkJICAgIGludCAoKm9iamZpbGVfZnVuYykgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCB2b2lkICpkYXRhKSwKICAJCSAgICB2b2lkICpkYXRhKQogIHsKLUBAIC0x MTQwNCwxMiArMTE0MDUsMTUgQEAgYWRhX29wZXJhdG9yX2NoZWNrIChzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLCBpbnQgcG9zLAorQEAgLTExNDA1LDEyICsxMTQwNiwxNSBAQCBhZGFfb3BlcmF0b3Jf Y2hlY2sgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwb3MsCiAgCWJyZWFrOwogIAogICAg ICAgIGRlZmF1bHQ6CkBAIC01NjUsMTAgKzU2MywxMCBAQCBpbmRleCA1YmM1OTMwLi4zYjU0NmE3 IDEwMDY0NAogICAgIGlmIHRoZXJlIGlzIG5vIHN1Y2ggZnJhbWUuICBJZiBCTE9DSyBpcyBOVUxM LCBqdXN0IHJldHVybiBOVUxMLiAgKi8KICAKIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5j IGIvZ2RiL2JyZWFrcG9pbnQuYwotaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKK2luZGV4 IGRiZDk1ODguLmQ1NTFkZGQgMTAwNjQ0CiAtLS0gYS9nZGIvYnJlYWtwb2ludC5jCiArKysgYi9n ZGIvYnJlYWtwb2ludC5jCi1AQCAtNjIsNiArNjIsOCBAQAorQEAgLTYzLDYgKzYzLDggQEAKICAj aW5jbHVkZSAiaml0LmgiCiAgI2luY2x1ZGUgInhtbC1zeXNjYWxsLmgiCiAgI2luY2x1ZGUgInBh cnNlci1kZWZzLmgiCkBAIC01NzcsNyArNTc1LDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAx MDA2NDQKICAjaW5jbHVkZSAiY2xpL2NsaS11dGlscy5oIgogIAogIC8qIHJlYWRsaW5lIGluY2x1 ZGUgZmlsZXMgKi8KLUBAIC0xMDYsNiArMTA4LDkgQEAgc3RhdGljIHZvaWQgYnJlYWtfY29tbWFu ZF8xIChjaGFyICosIGludCwgaW50KTsKK0BAIC0xMDcsNiArMTA5LDkgQEAgc3RhdGljIHZvaWQg YnJlYWtfY29tbWFuZF8xIChjaGFyICosIGludCwgaW50KTsKICAKICBzdGF0aWMgdm9pZCBtZW50 aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqKTsKICAKQEAgLTU4Nyw3ICs1ODUsNyBAQCBpbmRleCBj NTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIC8qIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbiBnZGJ0 ayBzb3VyY2VzIGFuZCB0aHVzIGNhbiBub3QgYmUgbWFkZQogICAgIHN0YXRpYy4gICovCiAgc3Ry dWN0IGJyZWFrcG9pbnQgKnNldF9yYXdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsCi1AQCAtMTE1OCw2ICsxMTYzLDI1IEBAIHdhdGNocG9pbnRfaW5fdGhyZWFkX3Njb3BlIChz dHJ1Y3QgYnJlYWtwb2ludCAqYikKK0BAIC0xMTU5LDYgKzExNjQsMjUgQEAgd2F0Y2hwb2ludF9p bl90aHJlYWRfc2NvcGUgKHN0cnVjdCBicmVha3BvaW50ICpiKQogIAkgICAgICAmJiAhaXNfZXhl Y3V0aW5nIChpbmZlcmlvcl9wdGlkKSkpOwogIH0KICAKQEAgLTYxMyw3ICs2MTEsNyBAQCBpbmRl eCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIC8qIEFzc3VtaW5nIHRoYXQgQiBpcyBhIHdhdGNo cG9pbnQ6CiAgICAgLSBSZXBhcnNlIHdhdGNocG9pbnQgZXhwcmVzc2lvbiwgaWYgUkVQQVJTRSBp cyBub24temVybwogICAgIC0gRXZhbHVhdGUgZXhwcmVzc2lvbiBhbmQgc3RvcmUgdGhlIHJlc3Vs dCBpbiBCLT52YWwKLUBAIC0xMjE3LDEyICsxMjQxLDE3IEBAIHVwZGF0ZV93YXRjaHBvaW50IChz dHJ1Y3QgYnJlYWtwb2ludCAqYiwgaW50IHJlcGFyc2UpCitAQCAtMTIxOCwxMiArMTI0MiwxNyBA QCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQog ICAgc3RydWN0IGZyYW1lX2lkIHNhdmVkX2ZyYW1lX2lkOwogICAgaW50IGZyYW1lX3NhdmVkOwog IApAQCAtNjMxLDcgKzYyOSw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICBp ZiAoYi0+ZGlzcG9zaXRpb24gPT0gZGlzcF9kZWxfYXRfbmV4dF9zdG9wKQogICAgICByZXR1cm47 CiAgIAotQEAgLTE0NTIsMTMgKzE0ODEsNyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJy ZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQorQEAgLTE0NTMsMTMgKzE0ODIsNyBAQCB1cGRhdGVf d2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQogIFdhdGNocG9p bnQgJWQgZGVsZXRlZCBiZWNhdXNlIHRoZSBwcm9ncmFtIGhhcyBsZWZ0IHRoZSBibG9ja1xuXAog IGluIHdoaWNoIGl0cyBleHByZXNzaW9uIGlzIHZhbGlkLlxuIiksCiAgCQkgICAgICAgYi0+bnVt YmVyKTsKQEAgLTY0Niw0MiArNjQ0LDU3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0 CiAgICAgIH0KICAKICAgIC8qIFJlc3RvcmUgdGhlIHNlbGVjdGVkIGZyYW1lLiAgKi8KLUBAIC0x NTAwLDYgKzE1MjMsMjQgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9jYXRpb24g KmJsKQorQEAgLTE1MDEsNiArMTUyNCw0MCBAQCBzaG91bGRfYmVfaW5zZXJ0ZWQgKHN0cnVjdCBi cF9sb2NhdGlvbiAqYmwpCiAgICByZXR1cm4gMTsKICB9CiAgCi0rLyogU2V0IG9yIGNsZWFyIGEg U3lzdGVtVGFwIHNlbWFwaG9yZS4gIEFSQ0ggaXMgdGhlIHRhcmdldAotKyAgIGFyY2hpdGVjdHVy ZTsgQUREUkVTUyBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgc2VtYXBob3JlLCBhbmQgU0VUVElORwot KyAgIGlzIGVpdGhlciB6ZXJvIG9yIG9uZS4gICovCisrLyogU2VlIHRoZSBjb21tZW50IGluIGJy ZWFrcG9pbnQuaC4gICovCiArCi0rc3RhdGljIHZvaWQKLSttb2RpZnlfc2VtYXBob3JlIChzdHJ1 Y3QgZ2RiYXJjaCAqYXJjaCwgQ09SRV9BRERSIGFkZHJlc3MsIGludCBzZXR0aW5nKQorK3ZvaWQK Kyttb2RpZnlfc2VtYXBob3JlIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYywgaW50IHNldCkKICt7 CisrICBzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCA9IGxvYy0+Z2RiYXJjaDsKICsgIGdkYl9ieXRlIGJ5 dGVzW3NpemVvZiAoTE9OR0VTVCldOwogKyAgLyogVGhlIEFCSSBzcGVjaWZpZXMgInVuc2lnbmVk IHNob3J0Ii4gICovCiArICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGJ1aWx0aW5fdHlwZSAoYXJjaCkt PmJ1aWx0aW5fdW5zaWduZWRfc2hvcnQ7CisrICBDT1JFX0FERFIgYWRkcmVzcyA9IGxvYy0+c2Vt YXBob3JlOworKyAgVUxPTkdFU1QgdmFsdWU7CisrCisrICBpZiAoYWRkcmVzcyA9PSAwKQorKyAg ICByZXR1cm47CisrCisrICAvKiBTd2FsbG93IGVycm9ycy4gICovCisrICBpZiAodGFyZ2V0X3Jl YWRfbWVtb3J5IChhZGRyZXNzLCBieXRlcywgVFlQRV9MRU5HVEggKHR5cGUpKSAhPSAwKQorKyAg ICByZXR1cm47CisrCisrICB2YWx1ZSA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnl0ZXMs IFRZUEVfTEVOR1RIICh0eXBlKSwKKysJCQkJICAgIGdkYmFyY2hfYnl0ZV9vcmRlciAoYXJjaCkp OworKyAgLyogTm90ZSB0aGF0IHdlIGV4cGxpY2l0bHkgZG9uJ3Qgd29ycnkgYWJvdXQgb3ZlcmZs b3cgb3IKKysgICAgIHVuZGVyZmxvdy4gICovCisrICBpZiAoc2V0KQorKyAgICArK3ZhbHVlOwor KyAgZWxzZQorKyAgICAtLXZhbHVlOwogKwogKyAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnl0 ZXMsIFRZUEVfTEVOR1RIICh0eXBlKSwKLSsJCQkgIGdkYmFyY2hfYnl0ZV9vcmRlciAoYXJjaCks IHNldHRpbmcpOworKwkJCSAgZ2RiYXJjaF9ieXRlX29yZGVyIChhcmNoKSwgdmFsdWUpOwogKwot KyAgLyogSWdub3JlIGVycm9ycy4gIEZJWE1FLiAgKi8KICsgIHRhcmdldF93cml0ZV9tZW1vcnkg KGFkZHJlc3MsIGJ5dGVzLCBUWVBFX0xFTkdUSCAodHlwZSkpOwogK30KICsKICAvKiBJbnNlcnQg YSBsb3ctbGV2ZWwgImJyZWFrcG9pbnQiIG9mIHNvbWUgdHlwZS4gIEJMIGlzIHRoZSBicmVha3Bv aW50CiAgICAgbG9jYXRpb24uICBBbnkgZXJyb3IgbWVzc2FnZXMgYXJlIHByaW50ZWQgdG8gVE1Q X0VSUk9SX1NUUkVBTTsgYW5kCiAgICAgRElTQUJMRURfQlJFQUtTLCBhbmQgSFdfQlJFQUtQT0lO VF9FUlJPUiBhcmUgdXNlZCB0byByZXBvcnQgcHJvYmxlbXMuCi1AQCAtMTU5NSw2ICsxNjM2LDkg QEAgaW5zZXJ0X2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLAorQEAgLTE1OTYs NiArMTY1Myw4IEBAIGluc2VydF9icF9sb2NhdGlvbiAoc3RydWN0IGJwX2xvY2F0aW9uICpibCwK ICAJICBlbHNlCiAgCSAgICB2YWwgPSB0YXJnZXRfaW5zZXJ0X2JyZWFrcG9pbnQgKGJsLT5nZGJh cmNoLAogIAkJCQkJICAgICZibC0+dGFyZ2V0X2luZm8pOwogKwotKwkgIGlmIChibC0+c2VtYXBo b3JlICE9IDApCi0rCSAgICBtb2RpZnlfc2VtYXBob3JlIChibC0+Z2RiYXJjaCwgYmwtPnNlbWFw aG9yZSwgMSk7CisrCSAgbW9kaWZ5X3NlbWFwaG9yZSAoYmwsIDEpOwogIAl9CiAgICAgICAgZWxz ZQogIAl7Ci1AQCAtMTg0OSw2ICsxODkzLDcgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25z ICh2b2lkKQorQEAgLTE4NTAsNiArMTkwOSw3IEBAIGluc2VydF9icmVha3BvaW50X2xvY2F0aW9u cyAodm9pZCkKICAgIGludCB2YWwgPSAwOwogICAgaW50IGRpc2FibGVkX2JyZWFrcyA9IDA7CiAg ICBpbnQgaHdfYnJlYWtwb2ludF9lcnJvciA9IDA7CkBAIC02ODksNyArNzAyLDcgQEAgaW5kZXgg YzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAKICAgIHN0cnVjdCB1aV9maWxlICp0bXBfZXJyb3Jf c3RyZWFtID0gbWVtX2ZpbGVvcGVuICgpOwogICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBzID0g bWFrZV9jbGVhbnVwX3VpX2ZpbGVfZGVsZXRlICh0bXBfZXJyb3Jfc3RyZWFtKTsKLUBAIC0xODc2 LDkgKzE5MjEsMTMgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25zICh2b2lkKQorQEAgLTE4 NzcsOSArMTkzNywxMyBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCiAgICAg ICAgLyogRm9yIHRhcmdldHMgdGhhdCBzdXBwb3J0IGdsb2JhbCBicmVha3BvaW50cywgdGhlcmUn cyBubyBuZWVkCiAgCSB0byBzZWxlY3QgYW4gaW5mZXJpb3IgdG8gaW5zZXJ0IGJyZWFrcG9pbnQg dG8uICBJbiBmYWN0LCBldmVuCiAgCSBpZiB3ZSBhcmVuJ3QgYXR0YWNoZWQgdG8gYW55IHByb2Nl c3MgeWV0LCB3ZSBzaG91bGQgc3RpbGwKQEAgLTcwNSw3ICs3MTgsNyBAQCBpbmRleCBjNTVlNWMw Li4xYTcxY2Y4IDEwMDY0NAogIAljb250aW51ZTsKICAKICAgICAgICB2YWwgPSBpbnNlcnRfYnBf bG9jYXRpb24gKGJsLCB0bXBfZXJyb3Jfc3RyZWFtLCAmZGlzYWJsZWRfYnJlYWtzLAotQEAgLTE5 MDIsMTMgKzE5NTEsMTkgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25zICh2b2lkKQorQEAg LTE5MDMsMTMgKzE5NjcsMTkgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25zICh2b2lkKQog IAogICAgICAgIGlmIChicHQtPmRpc3Bvc2l0aW9uID09IGRpc3BfZGVsX2F0X25leHRfc3RvcCkK ICAJY29udGludWU7CkBAIC03MzEsNyArNzQ0LDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAx MDA2NDQKICAgICAgICBpZiAoc29tZV9mYWlsZWQpCiAgCXsKICAJICBmb3IgKGxvYyA9IGJwdC0+ bG9jOyBsb2M7IGxvYyA9IGxvYy0+bmV4dCkKLUBAIC0yMDkwLDE1ICsyMTQ1LDI0IEBAIHN0cnVj dCBicmVha3BvaW50X29iamZpbGVfZGF0YQorQEAgLTIwOTEsMTUgKzIxNjEsMjQgQEAgc3RydWN0 IGJyZWFrcG9pbnRfb2JqZmlsZV9kYXRhCiAgICAvKiBNaW5pbWFsIHN5bWJvbChzKSBmb3IgImxv bmdqbXAiLCAic2lnbG9uZ2ptcCIsIGV0Yy4gKGlmIGFueSkuICAqLwogICAgc3RydWN0IG1pbmlt YWxfc3ltYm9sICpsb25nam1wX21zeW1bTlVNX0xPTkdKTVBfTkFNRVNdOwogIApAQCAtNzU2LDcg Kzc2OSw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgLyogTWluaW1hbCBzeW1i b2wgbm90IGZvdW5kIHNlbnRpbmVsLiAgKi8KICBzdGF0aWMgc3RydWN0IG1pbmltYWxfc3ltYm9s IG1zeW1fbm90X2ZvdW5kOwogIAotQEAgLTIyMDYsNiArMjI3MCwyOSBAQCBjcmVhdGVfbG9uZ2pt cF9tYXN0ZXJfYnJlYWtwb2ludCAodm9pZCkKK0BAIC0yMjA3LDYgKzIyODYsMjkgQEAgY3JlYXRl X2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKHZvaWQpCiAgCiAgICAgICAgYnBfb2JqZmlsZV9k YXRhID0gZ2V0X2JyZWFrcG9pbnRfb2JqZmlsZV9kYXRhIChvYmpmaWxlKTsKICAKQEAgLTc4Niw3 ICs3OTksNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogICAgICAgIGZvciAoaSA9 IDA7IGkgPCBOVU1fTE9OR0pNUF9OQU1FUzsgaSsrKQogIAl7CiAgCSAgc3RydWN0IGJyZWFrcG9p bnQgKmI7Ci1AQCAtMjMxNCw2ICsyNDAxLDMxIEBAIGNyZWF0ZV9leGNlcHRpb25fbWFzdGVyX2Jy ZWFrcG9pbnQgKHZvaWQpCitAQCAtMjMxNSw2ICsyNDE3LDMxIEBAIGNyZWF0ZV9leGNlcHRpb25f bWFzdGVyX2JyZWFrcG9pbnQgKHZvaWQpCiAgCiAgICAgICAgYnBfb2JqZmlsZV9kYXRhID0gZ2V0 X2JyZWFrcG9pbnRfb2JqZmlsZV9kYXRhIChvYmpmaWxlKTsKICAKQEAgLTgxOCwxNyArODMxLDE2 IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICAgICAgaWYgKG1zeW1fbm90X2Zv dW5kX3AgKGJwX29iamZpbGVfZGF0YS0+ZXhjZXB0aW9uX21zeW0pKQogIAljb250aW51ZTsKICAK LUBAIC0yNTMyLDYgKzI2NDQsOSBAQCByZW1vdmVfYnJlYWtwb2ludF8xIChzdHJ1Y3QgYnBfbG9j YXRpb24gKmJsLCBpbnNlcnRpb25fc3RhdGVfdCBpcykKK0BAIC0yNTMzLDYgKzI2NjAsOCBAQCBy ZW1vdmVfYnJlYWtwb2ludF8xIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLCBpbnNlcnRpb25fc3Rh dGVfdCBpcykKICAJICAgIHZhbCA9IHRhcmdldF9yZW1vdmVfaHdfYnJlYWtwb2ludCAoYmwtPmdk YmFyY2gsICZibC0+dGFyZ2V0X2luZm8pOwogIAkgIGVsc2UKICAJICAgIHZhbCA9IHRhcmdldF9y ZW1vdmVfYnJlYWtwb2ludCAoYmwtPmdkYmFyY2gsICZibC0+dGFyZ2V0X2luZm8pOwogKwotKwkg IGlmIChibC0+c2VtYXBob3JlICE9IDApCi0rCSAgICBtb2RpZnlfc2VtYXBob3JlIChibC0+Z2Ri YXJjaCwgYmwtPnNlbWFwaG9yZSwgMCk7CisrCSAgbW9kaWZ5X3NlbWFwaG9yZSAoYmwsIDApOwog IAl9CiAgICAgICAgZWxzZQogIAl7Ci1AQCAtMzQ4OCw2ICszNjAzLDggQEAgcHJpbnRfaXRfdHlw aWNhbCAoYnBzdGF0IGJzKQorQEAgLTM0ODksNiArMzYxOCw4IEBAIHByaW50X2l0X3R5cGljYWwg KGJwc3RhdCBicykKICAgICAgY2FzZSBicF90cmFjZXBvaW50OgogICAgICBjYXNlIGJwX2Zhc3Rf dHJhY2Vwb2ludDoKICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC04MzcsNyArODQ5LDcgQEAg aW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAgICAgZGVmYXVsdDoKICAgICAgICByZXN1 bHQgPSBQUklOVF9VTktOT1dOOwogICAgICAgIGJyZWFrOwotQEAgLTM3MTMsNiArMzgzMCw4IEBA IHdhdGNocG9pbnRfY2hlY2sgKHZvaWQgKnApCitAQCAtMzcxNCw2ICszODQ1LDggQEAgd2F0Y2hw b2ludF9jaGVjayAodm9pZCAqcCkKICAgIGdkYl9hc3NlcnQgKGJzLT5icmVha3BvaW50X2F0ICE9 IE5VTEwpOwogICAgYiA9IGJzLT5icmVha3BvaW50X2F0OwogIApAQCAtODQ2LDcgKzg1OCw3IEBA IGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICAvKiBJZiB0aGlzIGlzIGEgbG9jYWwg d2F0Y2hwb2ludCwgd2Ugb25seSB3YW50IHRvIGNoZWNrIGlmIHRoZQogICAgICAgd2F0Y2hwb2lu dCBmcmFtZSBpcyBpbiBzY29wZSBpZiB0aGUgY3VycmVudCB0aHJlYWQgaXMgdGhlIHRocmVhZAog ICAgICAgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhlIHdhdGNocG9pbnQuICAqLwotQEAgLTM4 MjIsMTMgKzM5NDEsNyBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQorQEAgLTM4MjMsMTMg KzM5NTYsNyBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQogIAkJICAgIiBkZWxldGVkIGJl Y2F1c2UgdGhlIHByb2dyYW0gaGFzIGxlZnQgdGhlIGJsb2NrIGluXG5cCiAgd2hpY2ggaXRzIGV4 cHJlc3Npb24gaXMgdmFsaWQuXG4iKTsgICAgIAogIApAQCAtODYxLDcgKzg3Myw3IEBAIGluZGV4 IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgCiAgICAgICAgcmV0dXJuIFdQX0RFTEVURUQ7CiAg ICAgIH0KLUBAIC00MDMzLDkgKzQxNDYsNyBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBz dGF0IGJzKQorQEAgLTQwMzQsOSArNDE2MSw3IEBAIGJwc3RhdF9jaGVja193YXRjaHBvaW50IChi cHN0YXQgYnMpCiAgCSAgICBjYXNlIDA6CiAgCSAgICAgIC8qIEVycm9yIGZyb20gY2F0Y2hfZXJy b3JzLiAgKi8KICAJICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJXYXRjaHBvaW50ICVkIGRlbGV0 ZWQuXG4iKSwgYi0+bnVtYmVyKTsKQEAgLTg3Miw3ICs4ODQsNyBAQCBpbmRleCBjNTVlNWMwLi4x YTcxY2Y4IDEwMDY0NAogIAkgICAgICAvKiBXZSd2ZSBhbHJlYWR5IHByaW50ZWQgd2hhdCBuZWVk cyB0byBiZSBwcmludGVkLiAgKi8KICAJICAgICAgYnMtPnByaW50X2l0ID0gcHJpbnRfaXRfZG9u ZTsKICAJICAgICAgYnJlYWs7Ci1AQCAtNDI0Niw3ICs0MzU3LDcgQEAgYnBzdGF0X3N0b3Bfc3Rh dHVzIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlLAorQEAgLTQyNDcsNyArNDM3Miw3IEBA IGJwc3RhdF9zdG9wX3N0YXR1cyAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKICAJICAg ICB3YXRjaHBvaW50IGFzIHRyaWdnZXJlZCBzbyB0aGF0IHdlIHdpbGwgaGFuZGxlIHRoZQogIAkg ICAgIG91dC1vZi1zY29wZSBldmVudC4gIFdlJ2xsIGdldCB0byB0aGUgd2F0Y2hwb2ludCBuZXh0 CiAgCSAgICAgaXRlcmF0aW9uLiAgKi8KQEAgLTg4MSw3ICs4OTMsNyBAQCBpbmRleCBjNTVlNWMw Li4xYTcxY2Y4IDEwMDY0NAogIAkgICAgYi0+cmVsYXRlZF9icmVha3BvaW50LT53YXRjaHBvaW50 X3RyaWdnZXJlZCA9IHdhdGNoX3RyaWdnZXJlZF95ZXM7CiAgCX0KICAgICAgfQotQEAgLTQzNjgs NyArNDQ3OSw3IEBAIGhhbmRsZV9qaXRfZXZlbnQgKHZvaWQpCitAQCAtNDM2OSw3ICs0NDk0LDcg QEAgaGFuZGxlX2ppdF9ldmVudCAodm9pZCkKICAvKiBEZWNpZGUgd2hhdCBpbmZydW4gbmVlZHMg dG8gZG8gd2l0aCB0aGlzIGJwc3RhdC4gICovCiAgCiAgc3RydWN0IGJwc3RhdF93aGF0CkBAIC04 OTAsNyArOTAyLDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICB7CiAgICBzdHJ1 Y3QgYnBzdGF0X3doYXQgcmV0dmFsOwogICAgLyogV2UgbmVlZCB0byBkZWZlciBjYWxsaW5nIGBz b2xpYl9hZGQnLCBhcyBhZGRpbmcgbmV3IHN5bWJvbHMKLUBAIC00Mzc2LDEyICs0NDg3LDEzIEBA IGJwc3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAtNDM3NywxMiArNDUwMiwxMyBAQCBicHN0YXRf d2hhdCAoYnBzdGF0IGJzKQogICAgICAgYW5kIGhlbmNlIG1heSBjbGVhciB1bnByb2Nlc3NlZCBl bnRyaWVzIGluIHRoZSBCUyBjaGFpbi4gICovCiAgICBpbnQgc2hsaWJfZXZlbnQgPSAwOwogICAg aW50IGppdF9ldmVudCA9IDA7CkBAIC05MDUsNyArOTE3LDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3 MWNmOCAxMDA2NDQKICAgICAgewogICAgICAgIC8qIEV4dHJhY3QgdGhpcyBCUydzIGFjdGlvbi4g IEFmdGVyIHByb2Nlc3NpbmcgZWFjaCBCUywgd2UgY2hlY2sKICAJIGlmIGl0cyBhY3Rpb24gb3Zl cnJpZGVzIGFsbCB3ZSd2ZSBzZWVtIHNvIGZhci4gICovCi1AQCAtNDUxMSw2ICs0NjIzLDE2IEBA IGJwc3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAtNDUxMiw2ICs0NjM4LDE2IEBAIGJwc3RhdF93 aGF0IChicHN0YXQgYnMpCiAgCSAgICAgb3V0IGFscmVhZHkuICAqLwogIAkgIGludGVybmFsX2Vy cm9yIChfX0ZJTEVfXywgX19MSU5FX18sCiAgCQkJICBfKCJicHN0YXRfd2hhdDogdHJhY2Vwb2lu dCBlbmNvdW50ZXJlZCIpKTsKQEAgLTkyMiw3ICs5MzQsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcx Y2Y4IDEwMDY0NAogIAlkZWZhdWx0OgogIAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19M SU5FX18sCiAgCQkJICBfKCJicHN0YXRfd2hhdDogdW5oYW5kbGVkIGJwdHlwZSAlZCIpLCAoaW50 KSBicHR5cGUpOwotQEAgLTQ1MTksNiArNDY0MSw5IEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMp CitAQCAtNDUyMCw2ICs0NjU2LDkgQEAgYnBzdGF0X3doYXQgKGJwc3RhdCBicykKICAgICAgICBy ZXR2YWwubWFpbl9hY3Rpb24gPSBtYXggKHJldHZhbC5tYWluX2FjdGlvbiwgdGhpc19hY3Rpb24p OwogICAgICB9CiAgCkBAIC05MzIsNyArOTQ0LDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAx MDA2NDQKICAgIGlmIChzaGxpYl9ldmVudCkKICAgICAgewogICAgICAgIGlmIChkZWJ1Z19pbmZy dW4pCi1AQCAtNDU0OCw2ICs0NjczLDIzIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAt NDU0OSw2ICs0Njg4LDIzIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCiAgICAgICAgaGFuZGxl X2ppdF9ldmVudCAoKTsKICAgICAgfQogIApAQCAtOTU2LDcgKzk2OCw3IEBAIGluZGV4IGM1NWU1 YzAuLjFhNzFjZjggMTAwNjQ0CiAgICByZXR1cm4gcmV0dmFsOwogIH0KICAKLUBAIC00NzAzLDYg KzQ4NDUsOCBAQCBicHR5cGVfc3RyaW5nIChlbnVtIGJwdHlwZSB0eXBlKQorQEAgLTQ3MDYsNiAr NDg2Miw4IEBAIGJwdHlwZV9zdHJpbmcgKGVudW0gYnB0eXBlIHR5cGUpCiAgICAgIHticF9mYXN0 X3RyYWNlcG9pbnQsICJmYXN0IHRyYWNlcG9pbnQifSwKICAgICAge2JwX3N0YXRpY190cmFjZXBv aW50LCAic3RhdGljIHRyYWNlcG9pbnQifSwKICAgICAge2JwX2ppdF9ldmVudCwgImppdCBldmVu dHMifSwKQEAgLTk2NSw3ICs5NzcsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAog ICAgfTsKICAKICAgIGlmICgoKGludCkgdHlwZSA+PSAoc2l6ZW9mIChicHR5cGVzKSAvIHNpemVv ZiAoYnB0eXBlc1swXSkpKQotQEAgLTQ4MzcsNiArNDk4MSw4IEBAIHByaW50X29uZV9icmVha3Bv aW50X2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC00ODQwLDYgKzQ5OTgsOCBA QCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAg ICAgICAgY2FzZSBicF9mYXN0X3RyYWNlcG9pbnQ6CiAgICAgICAgY2FzZSBicF9zdGF0aWNfdHJh Y2Vwb2ludDoKICAgICAgICBjYXNlIGJwX2ppdF9ldmVudDoKQEAgLTk3NCw3ICs5ODYsNyBAQCBp bmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAlpZiAob3B0cy5hZGRyZXNzcHJpbnQpCiAg CSAgewogIAkgICAgYW5ub3RhdGVfZmllbGQgKDQpOwotQEAgLTUxMTIsNyArNTI1OCw4IEBAIHVz ZXJfc2V0dGFibGVfYnJlYWtwb2ludCAoY29uc3Qgc3RydWN0IGJyZWFrcG9pbnQgKmIpCitAQCAt NTExNSw3ICs1Mjc1LDggQEAgdXNlcl9zZXR0YWJsZV9icmVha3BvaW50IChjb25zdCBzdHJ1Y3Qg YnJlYWtwb2ludCAqYikKICAJICB8fCBiLT50eXBlID09IGJwX2NhdGNocG9pbnQKICAJICB8fCBi LT50eXBlID09IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQKICAJICB8fCBpc190cmFjZXBvaW50IChi KQpAQCAtOTg0LDcgKzk5Niw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgfQog IAogIC8qIFJldHVybiB0cnVlIGlmIHRoaXMgYnJlYWtwb2ludCB3YXMgc2V0IGJ5IHRoZSB1c2Vy LCBmYWxzZSBpZiBpdCBpcwotQEAgLTU2MDgsNiArNTc1NSw4IEBAIGFsbG9jYXRlX2JwX2xvY2F0 aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQorQEAgLTU2MTEsNiArNTc3Miw4IEBAIGFsbG9j YXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQogICAgICBjYXNlIGJwX2xv bmdqbXBfbWFzdGVyOgogICAgICBjYXNlIGJwX3N0ZF90ZXJtaW5hdGVfbWFzdGVyOgogICAgICBj YXNlIGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CkBAIC05OTMsNyArMTAwNSw3IEBAIGluZGV4IGM1NWU1 YzAuLjFhNzFjZjggMTAwNjQ0CiAgICAgICAgbG9jLT5sb2NfdHlwZSA9IGJwX2xvY19zb2Z0d2Fy ZV9icmVha3BvaW50OwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIGJwX2hhcmR3YXJlX2JyZWFr cG9pbnQ6Ci1AQCAtNTY5Nyw2ICs1ODQ2LDcgQEAgc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRf bG9jYXRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU3MDAsNiArNTg2Myw3IEBA IHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0X2xvY2F0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwKICAgIGItPm9wcyA9IE5VTEw7CiAgICBiLT5jb25kaXRpb25fbm90X3BhcnNlZCA9IDA7 CiAgICBiLT5weV9icF9vYmplY3QgPSBOVUxMOwpAQCAtMTAwMSw3ICsxMDEzLDcgQEAgaW5kZXgg YzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAKICAgIC8qIEFkZCB0aGlzIGJyZWFrcG9pbnQgdG8g dGhlIGVuZCBvZiB0aGUgY2hhaW4gc28gdGhhdCBhIGxpc3Qgb2YKICAgICAgIGJyZWFrcG9pbnRz IHdpbGwgY29tZSBvdXQgaW4gb3JkZXIgb2YgaW5jcmVhc2luZyBudW1iZXJzLiAgKi8KLUBAIC01 NzEzLDkgKzU4NjMsMTIgQEAgc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU3MTYsOSArNTg4MCwxMiBAQCBzZXRfcmF3X2Jy ZWFrcG9pbnRfd2l0aG91dF9sb2NhdGlvbiAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgICBy ZXR1cm4gYjsKICB9CiAgCkBAIC0xMDE2LDcgKzEwMjgsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcx Y2Y4IDEwMDY0NAogIHsKICAgIGdkYl9hc3NlcnQgKGxvYy0+b3duZXIgIT0gTlVMTCk7CiAgCi1A QCAtNTcyMyw4ICs1ODc2LDMzIEBAIHNldF9icmVha3BvaW50X2xvY2F0aW9uX2Z1bmN0aW9uIChz dHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKK0BAIC01NzI2LDggKzU4OTMsMzMgQEAgc2V0X2JyZWFr cG9pbnRfbG9jYXRpb25fZnVuY3Rpb24gKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQogICAgICAg IHx8IGxvYy0+b3duZXItPnR5cGUgPT0gYnBfaGFyZHdhcmVfYnJlYWtwb2ludAogICAgICAgIHx8 IGlzX3RyYWNlcG9pbnQgKGxvYy0+b3duZXIpKQogICAgICB7CkBAIC0xMDUyLDcgKzEwNjQsNyBA QCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogICAgICAgIGlmIChsb2MtPmZ1bmN0aW9u X25hbWUpCiAgCWxvYy0+ZnVuY3Rpb25fbmFtZSA9IHhzdHJkdXAgKGxvYy0+ZnVuY3Rpb25fbmFt ZSk7CiAgICAgIH0KLUBAIC01Nzg3LDYgKzU5NjUsNyBAQCBzZXRfcmF3X2JyZWFrcG9pbnQgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU3OTAsNiArNTk4Miw3IEBAIHNldF9yYXdfYnJl YWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgICBiLT5sb2MtPnJlcXVlc3RlZF9h ZGRyZXNzID0gc2FsLnBjOwogICAgYi0+bG9jLT5hZGRyZXNzID0gYWRqdXN0ZWRfYWRkcmVzczsK ICAgIGItPmxvYy0+cHNwYWNlID0gc2FsLnBzcGFjZTsKQEAgLTEwNjAsNyArMTA3Miw3IEBAIGlu ZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgCiAgICAvKiBTdG9yZSB0aGUgcHJvZ3JhbSBz cGFjZSB0aGF0IHdhcyB1c2VkIHRvIHNldCB0aGUgYnJlYWtwb2ludCwgZm9yCiAgICAgICBicmVh a3BvaW50IHJlc2V0dGluZy4gICovCi1AQCAtNTc5OSw3ICs1OTc4LDggQEAgc2V0X3Jhd19icmVh a3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC01ODAyLDcgKzU5OTUsOCBAQCBz ZXRfcmF3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgYi0+bG9jLT5z ZWN0aW9uID0gc2FsLnNlY3Rpb247CiAgICBiLT5saW5lX251bWJlciA9IHNhbC5saW5lOwogIApA QCAtMTA3MCw3ICsxMDgyLDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAKICAg IGJyZWFrcG9pbnRzX2NoYW5nZWQgKCk7CiAgCi1AQCAtNjkxNiwxMyArNzA5NiwxNCBAQCBjbG9u ZV9tb21lbnRhcnlfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKm9yaWcpCitAQCAtNjkx OSwxMyArNzExMywxNCBAQCBjbG9uZV9tb21lbnRhcnlfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFr cG9pbnQgKm9yaWcpCiAgCiAgICBjb3B5ID0gc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9j YXRpb24gKG9yaWctPmdkYmFyY2gsIG9yaWctPnR5cGUpOwogICAgY29weS0+bG9jID0gYWxsb2Nh dGVfYnBfbG9jYXRpb24gKGNvcHkpOwpAQCAtMTA4Niw3ICsxMDk4LDcgQEAgaW5kZXggYzU1ZTVj MC4uMWE3MWNmOCAxMDA2NDQKICAKICAgIGlmIChvcmlnLT5zb3VyY2VfZmlsZSA9PSBOVUxMKQog ICAgICBjb3B5LT5zb3VyY2VfZmlsZSA9IE5VTEw7Ci1AQCAtNzAxNiw2ICs3MTk3LDcgQEAgbWVu dGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCitAQCAtNzAxOSw2ICs3MjE0LDcgQEAgbWVudGlv biAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCiAgCWRvX2NsZWFudXBzICh1aV9vdXRfY2hhaW4pOwog IAlicmVhazsKICAgICAgICBjYXNlIGJwX2JyZWFrcG9pbnQ6CkBAIC0xMDk0LDcgKzExMDYsNyBA QCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAlpZiAodWlfb3V0X2lzX21pX2xpa2Vf cCAodWlvdXQpKQogIAkgIHsKICAJICAgIHNheV93aGVyZSA9IDA7Ci1AQCAtNzAyNiw2ICs3MjA4 LDggQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCitAQCAtNzAyOSw2ICs3MjI1LDgg QEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCiAgCWVsc2UKICAJICBwcmludGZfZmls dGVyZWQgKF8oIkJyZWFrcG9pbnQiKSk7CiAgCXByaW50Zl9maWx0ZXJlZCAoXygiICVkIiksIGIt Pm51bWJlcik7CkBAIC0xMTAzLDcgKzExMTUsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEw MDY0NAogIAlzYXlfd2hlcmUgPSAxOwogIAlicmVhazsKICAgICAgICBjYXNlIGJwX2hhcmR3YXJl X2JyZWFrcG9pbnQ6Ci1AQCAtNzA4NSw2ICs3MjY5LDcgQEAgbWVudGlvbiAoc3RydWN0IGJyZWFr cG9pbnQgKmIpCitAQCAtNzA4OCw2ICs3Mjg2LDcgQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9p bnQgKmIpCiAgICAgICAgY2FzZSBicF9sb25nam1wX21hc3RlcjoKICAgICAgICBjYXNlIGJwX3N0 ZF90ZXJtaW5hdGVfbWFzdGVyOgogICAgICAgIGNhc2UgYnBfZXhjZXB0aW9uX21hc3RlcjoKQEAg LTExMTEsNyArMTEyMyw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgCWJyZWFr OwogICAgICAgIH0KICAKLUBAIC03MTQyLDEwICs3MzI3LDEyIEBAIGFkZF9sb2NhdGlvbl90b19i cmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC03MTQ1LDEwICs3MzQ0LDEyIEBA IGFkZF9sb2NhdGlvbl90b19icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKICAgIGxv Yy0+YWRkcmVzcyA9IGFkanVzdF9icmVha3BvaW50X2FkZHJlc3MgKGxvYy0+Z2RiYXJjaCwKICAJ CQkJCSAgICBsb2MtPnJlcXVlc3RlZF9hZGRyZXNzLCBiLT50eXBlKTsKICAgIGxvYy0+cHNwYWNl ID0gc2FsLT5wc3BhY2U7CkBAIC0xMTI1LDcgKzExMzcsMzMgQEAgaW5kZXggYzU1ZTVjMC4uMWE3 MWNmOCAxMDA2NDQKICAgIHJldHVybiBsb2M7CiAgfQogIAwKLUBAIC04NTgwLDYgKzg3NjcsNyBA QCB3YXRjaF9jb21tYW5kXzEgKGNoYXIgKmFyZywgaW50IGFjY2Vzc2ZsYWcsIGludCBmcm9tX3R0 eSwKK0BAIC03NDkzLDYgKzc2OTQsMTYgQEAgY3JlYXRlX2JyZWFrcG9pbnRzX3NhbCAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCisgeworICAgaW50IGk7CisgCisrICBpZiAoY2Fub25pY2FsLT5w cmVfZXhwYW5kZWQpCisrICAgIHsKKysgICAgICBjcmVhdGVfYnJlYWtwb2ludF9zYWwgKGdkYmFy Y2gsIHNhbHMsIGNhbm9uaWNhbC0+Y2Fub25pY2FsWzBdLAorKwkJCSAgICAgY29uZF9zdHJpbmcs IHR5cGUsIGRpc3Bvc2l0aW9uLAorKwkJCSAgICAgdGhyZWFkLCB0YXNrLCBpZ25vcmVfY291bnQs IG9wcywKKysJCQkgICAgIGZyb21fdHR5LCBlbmFibGVkLCBpbnRlcm5hbCwKKysJCQkgICAgIGNh bm9uaWNhbC0+c3BlY2lhbF9kaXNwbGF5KTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysKKyAg IGZvciAoaSA9IDA7IGkgPCBzYWxzLm5lbHRzOyArK2kpCisgICAgIHsKKyAgICAgICBzdHJ1Y3Qg c3ltdGFic19hbmRfbGluZXMgZXhwYW5kZWQgPSAKK0BAIC04MDE4LDcgKzgyMjksNyBAQCBjcmVh dGVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgICAgICAgICBtZW50aW9u IChiKTsKKyAgICAgfQorICAgCistICBpZiAoc2Fscy5uZWx0cyA+IDEpCisrICBpZiAoc2Fscy5u ZWx0cyA+IDEgJiYgIWNhbm9uaWNhbC5wcmVfZXhwYW5kZWQpCisgICAgIHsKKyAgICAgICB3YXJu aW5nIChfKCJNdWx0aXBsZSBicmVha3BvaW50cyB3ZXJlIHNldC5cblVzZSB0aGUgIgorIAkJICJc ImRlbGV0ZVwiIGNvbW1hbmQgdG8gZGVsZXRlIHVud2FudGVkIGJyZWFrcG9pbnRzLiIpKTsKK0BA IC04NTg2LDYgKzg3OTcsNyBAQCB3YXRjaF9jb21tYW5kXzEgKGNoYXIgKmFyZywgaW50IGFjY2Vz c2ZsYWcsIGludCBmcm9tX3R0eSwKICAgIGIgPSBzZXRfcmF3X2JyZWFrcG9pbnRfd2l0aG91dF9s b2NhdGlvbiAoTlVMTCwgYnBfdHlwZSk7CiAgICBzZXRfYnJlYWtwb2ludF9udW1iZXIgKGludGVy bmFsLCBiKTsKICAgIGItPnRocmVhZCA9IHRocmVhZDsKQEAgLTExMzMsNyArMTE3MSw3IEBAIGlu ZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICBiLT5kaXNwb3NpdGlvbiA9IGRpc3BfZG9u dHRvdWNoOwogICAgYi0+ZXhwID0gZXhwOwogICAgYi0+ZXhwX3ZhbGlkX2Jsb2NrID0gZXhwX3Zh bGlkX2Jsb2NrOwotQEAgLTk3NDIsNiArOTkzMCw5IEBAIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25f bGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCitAQCAtOTc0Nyw2ICs5OTU5LDkgQEAgdXBkYXRlX2ds b2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKICAgICAgICBpbnQga2VlcF9p bl90YXJnZXQgPSAwOwogICAgICAgIGludCByZW1vdmVkID0gMDsKICAKQEAgLTExNDMsNyArMTE4 MSw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICAgICAgLyogU2tpcCBMT0NQ IGVudHJpZXMgd2hpY2ggd2lsbCBkZWZpbml0ZWx5IG5ldmVyIGJlIG5lZWRlZC4KICAJIFN0b3Ag ZWl0aGVyIGF0IG9yIGJlaW5nIHRoZSBvbmUgbWF0Y2hpbmcgT0xEX0xPQy4gICovCiAgICAgICAg d2hpbGUgKGxvY3AgPCBicF9sb2NhdGlvbiArIGJwX2xvY2F0aW9uX2NvdW50Ci1AQCAtMTAwNTgs MTIgKzEwMjQ5LDIwIEBAIGRlbGV0ZV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0 KQorQEAgLTEwMDYzLDEyICsxMDI3OCwyMCBAQCBkZWxldGVfYnJlYWtwb2ludCAoc3RydWN0IGJy ZWFrcG9pbnQgKmJwdCkKICAKICAgIC8qIEF0IGxlYXN0IGF2b2lkIHRoaXMgc3RhbGUgcmVmZXJl bmNlIHVudGlsIHRoZSByZWZlcmVuY2UgY291bnRpbmcKICAgICAgIG9mIGJyZWFrcG9pbnRzIGdl dHMgcmVzb2x2ZWQuICAqLwpAQCAtMTE2OSw3ICsxMjA3LDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3 MWNmOCAxMDA2NDQKICAgICAgfQogIAogICAgb2JzZXJ2ZXJfbm90aWZ5X2JyZWFrcG9pbnRfZGVs ZXRlZCAoYnB0LT5udW1iZXIpOwotQEAgLTEwMzc2LDcgKzEwNTc1LDcgQEAgdXBkYXRlX3N0YXRp Y190cmFjZXBvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgc3RydWN0IHN5bXRhYl9hbmRfbGlu ZSBzYWwpCitAQCAtMTAzODEsNyArMTA2MDQsNyBAQCB1cGRhdGVfc3RhdGljX3RyYWNlcG9pbnQg KHN0cnVjdCBicmVha3BvaW50ICpiLCBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIHNhbCkKICAgIHJl dHVybiBzYWw7CiAgfQogIApAQCAtMTE3OCw3ICsxMjE2LDE1IEBAIGluZGV4IGM1NWU1YzAuLjFh NzFjZjggMTAwNjQ0CiAgdXBkYXRlX2JyZWFrcG9pbnRfbG9jYXRpb25zIChzdHJ1Y3QgYnJlYWtw b2ludCAqYiwKICAJCQkgICAgIHN0cnVjdCBzeW10YWJzX2FuZF9saW5lcyBzYWxzKQogIHsKLUBA IC0xMDUwOCw2ICsxMDcwNyw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkK K0BAIC0xMDUwMSw2ICsxMDcyNCw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmlu dCkKKyAgIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7CisgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51 cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7CisgICBpbnQgbWFya2VyX3Nw ZWMgPSAwOworKyAgaW50IHByZV9leHBhbmRlZCA9IDA7CisgCisgICBzd2l0Y2ggKGItPnR5cGUp CisgICAgIHsKK0BAIC0xMDUxMyw2ICsxMDczNyw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAo dm9pZCAqYmludCkKICAgICAgY2FzZSBicF90cmFjZXBvaW50OgogICAgICBjYXNlIGJwX2Zhc3Rf dHJhY2Vwb2ludDoKICAgICAgY2FzZSBicF9zdGF0aWNfdHJhY2Vwb2ludDoKQEAgLTExODYsNyAr MTIzMiw1NiBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogICAgICAgIC8qIERvIG5v dCBhdHRlbXB0IHRvIHJlLXNldCBicmVha3BvaW50cyBkaXNhYmxlZCBkdXJpbmcgc3RhcnR1cC4g ICovCiAgICAgICAgaWYgKGItPmVuYWJsZV9zdGF0ZSA9PSBicF9zdGFydHVwX2Rpc2FibGVkKQog IAlyZXR1cm4gMDsKLUBAIC0xMDY3OCw2ICsxMDg3OCw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29u ZSAodm9pZCAqYmludCkKK0BAIC0xMDU0Nyw4ICsxMDc3MiwyNSBAQCBicmVha3BvaW50X3JlX3Nl dF9vbmUgKHZvaWQgKmJpbnQpCisgCQllcnJvciAoXygibWFya2VyICVzIG5vdCBmb3VuZCIpLCBi LT5zdGF0aWNfdHJhY2VfbWFya2VyX2lkKTsKKyAJICAgIH0KKyAJICBlbHNlCistCSAgICBzYWxz ID0gZGVjb2RlX2xpbmVfMSAoJnMsIDEsIChzdHJ1Y3Qgc3ltdGFiICopIE5VTEwsIDAsCistCQkJ CSAgTlVMTCwgbm90X2ZvdW5kX3B0cik7CisrCSAgICB7CisrCSAgICAgIHN0cnVjdCBsaW5lc3Bl Y19yZXN1bHQgY2Fub25pY2FsOworKworKwkgICAgICBpbml0X2xpbmVzcGVjX3Jlc3VsdCAoJmNh bm9uaWNhbCk7CisrCSAgICAgIHNhbHMgPSBkZWNvZGVfbGluZV8xICgmcywgMSwgKHN0cnVjdCBz eW10YWIgKikgTlVMTCwgMCwKKysJCQkJICAgICZjYW5vbmljYWwsIG5vdF9mb3VuZF9wdHIpOwor KworKwkgICAgICAvKiBXZSBkb24ndCBuZWVkIHRoZSBjb250ZW50cy4gICovCisrCSAgICAgIGlm IChjYW5vbmljYWwuY2Fub25pY2FsKQorKwkJeworKwkJICBpbnQgaTsKKysKKysJCSAgZm9yIChp ID0gMDsgaSA8IHNhbHMubmVsdHM7ICsraSkKKysJCSAgICB4ZnJlZSAoY2Fub25pY2FsLmNhbm9u aWNhbFtpXSk7CisrCQkgIHhmcmVlIChjYW5vbmljYWwuY2Fub25pY2FsKTsKKysJCX0KKysKKysJ ICAgICAgcHJlX2V4cGFuZGVkID0gY2Fub25pY2FsLnByZV9leHBhbmRlZDsKKysJICAgIH0KKyAJ fQorICAgICAgIGlmIChlLnJlYXNvbiA8IDApCisgCXsKK0BAIC0xMDU4MSw3ICsxMDgyMyw3IEBA IGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKKyAKKyAgICAgICBpZiAoIW5vdF9m b3VuZCkKKyAJeworLQkgIGdkYl9hc3NlcnQgKHNhbHMubmVsdHMgPT0gMSk7CisrCSAgZ2RiX2Fz c2VydCAocHJlX2V4cGFuZGVkIHx8IHNhbHMubmVsdHMgPT0gMSk7CisgCisgCSAgcmVzb2x2ZV9z YWxfcGMgKCZzYWxzLnNhbHNbMF0pOworIAkgIGlmIChiLT5jb25kaXRpb25fbm90X3BhcnNlZCAm JiBzICYmIHNbMF0pCitAQCAtMTA2MDIsNyArMTA4NDQsMTAgQEAgYnJlYWtwb2ludF9yZV9zZXRf b25lICh2b2lkICpiaW50KQorIAkgIGlmIChiLT50eXBlID09IGJwX3N0YXRpY190cmFjZXBvaW50 ICYmICFtYXJrZXJfc3BlYykKKyAJICAgIHNhbHMuc2Fsc1swXSA9IHVwZGF0ZV9zdGF0aWNfdHJh Y2Vwb2ludCAoYiwgc2Fscy5zYWxzWzBdKTsKKyAKKy0JICBleHBhbmRlZCA9IGV4cGFuZF9saW5l X3NhbF9tYXliZSAoc2Fscy5zYWxzWzBdKTsKKysJICBpZiAocHJlX2V4cGFuZGVkKQorKwkgICAg ZXhwYW5kZWQgPSBzYWxzOworKwkgIGVsc2UKKysJICAgIGV4cGFuZGVkID0gZXhwYW5kX2xpbmVf c2FsX21heWJlIChzYWxzLnNhbHNbMF0pOworIAl9CisgCisgICAgICAgbWFrZV9jbGVhbnVwICh4 ZnJlZSwgc2Fscy5zYWxzKTsKK0BAIC0xMDY4Myw2ICsxMDkyOCw3IEBAIGJyZWFrcG9pbnRfcmVf c2V0X29uZSAodm9pZCAqYmludCkKICAgICAgY2FzZSBicF9leGNlcHRpb246CiAgICAgIGNhc2Ug YnBfZXhjZXB0aW9uX3Jlc3VtZToKICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC0xMTk0LDcg KzEyODksNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogICAgICAgIGJyZWFrOwog ICAgICB9CiAgCi1AQCAtMTA4NDQsMTEgKzExMDQ1LDI1IEBAIG1hcF9icmVha3BvaW50X251bWJl cnMgKGNoYXIgKmFyZ3MsIHZvaWQgKCpmdW5jdGlvbikgKHN0cnVjdCBicmVha3BvaW50ICosCitA QCAtMTA4NDksMTEgKzExMDk1LDI1IEBAIG1hcF9icmVha3BvaW50X251bWJlcnMgKGNoYXIgKmFy Z3MsIHZvaWQgKCpmdW5jdGlvbikgKHN0cnVjdCBicmVha3BvaW50ICosCiAgCSAgQUxMX0JSRUFL UE9JTlRTX1NBRkUgKGIsIHRtcCkKICAJICAgIGlmIChiLT5udW1iZXIgPT0gbnVtKQogIAkgICAg ICB7CkBAIC0xMjI0LDcgKzEzMTksNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAog IAkJYnJlYWs7CiAgCSAgICAgIH0KICAJICBpZiAobWF0Y2ggPT0gMCkKLUBAIC0xMTk3OSw2ICsx MjE5NCwyNCBAQCBhbGxfdHJhY2Vwb2ludHMgKHZvaWQpCitAQCAtMTE5ODQsNiArMTIyNDQsMjQg QEAgYWxsX3RyYWNlcG9pbnRzICh2b2lkKQogICAgcmV0dXJuIHRwX3ZlYzsKICB9CiAgCkBAIC0x MjQ5LDcgKzEzNDQsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAwKICAvKiBU aGlzIGhlbHAgc3RyaW5nIGlzIHVzZWQgZm9yIHRoZSBicmVhaywgaGJyZWFrLCB0YnJlYWsgYW5k IHRoYnJlYWsKICAgICBjb21tYW5kcy4gIEl0IGlzIGRlZmluZWQgYXMgYSBtYWNybyB0byBwcmV2 ZW50IGR1cGxpY2F0aW9uLgotQEAgLTEyNTk4LDQgKzEyODMxLDcgQEAgaW5mZXJpb3IgaW4gYWxs LXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2VydGVkIG1vZGUgaXMgb2Zm LiIpLAorQEAgLTEyNjAzLDQgKzEyODgxLDcgQEAgaW5mZXJpb3IgaW4gYWxsLXN0b3AgbW9kZSwg Z2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2VydGVkIG1vZGUgaXMgb2ZmLiIpLAogICAgYXV0 b21hdGljX2hhcmR3YXJlX2JyZWFrcG9pbnRzID0gMTsKICAKICAgIG9ic2VydmVyX2F0dGFjaF9h Ym91dF90b19wcm9jZWVkIChicmVha3BvaW50X2Fib3V0X3RvX3Byb2NlZWQpOwpAQCAtMTI1OCw3 ICsxMzUzLDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICsjZW5kaWYKICB9CiBk aWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuaCBiL2dkYi9icmVha3BvaW50LmgKLWluZGV4IGJk MDk3MTMuLjU4N2UzYTEgMTAwNjQ0CitpbmRleCBkNWFmOTI4Li5jOGEzMTYxIDEwMDY0NAogLS0t IGEvZ2RiL2JyZWFrcG9pbnQuaAogKysrIGIvZ2RiL2JyZWFrcG9pbnQuaAogQEAgLTE0OSw2ICsx NDksMTkgQEAgZW51bSBicHR5cGUKQEAgLTEyOTMsNyArMTM4OCw3IEBAIGluZGV4IGJkMDk3MTMu LjU4N2UzYTEgMTAwNjQ0CiAgICBjaGFyICpmdW5jdGlvbl9uYW1lOwogIAogICAgLyogRGV0YWls cyBvZiB0aGUgcGxhY2VkIGJyZWFrcG9pbnQsIHdoZW4gaW5zZXJ0ZWQuICAqLwotQEAgLTg4OCw2 ICs5MDYsOSBAQCBleHRlcm4gaW50IGJyZWFrcG9pbnRfdGhyZWFkX21hdGNoIChzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqLAorQEAgLTg5MCw2ICs5MDgsOSBAQCBleHRlcm4gaW50IGJyZWFrcG9pbnRf dGhyZWFkX21hdGNoIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLAogIAogIGV4dGVybiB2b2lkIHVu dGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKiwgaW50LCBpbnQpOwogIApAQCAtMTMwMywxMSArMTM5 OCwyMyBAQCBpbmRleCBiZDA5NzEzLi41ODdlM2ExIDEwMDY0NAogIGV4dGVybiB2b2lkIGJyZWFr cG9pbnRfcmVfc2V0ICh2b2lkKTsKICAKICBleHRlcm4gdm9pZCBicmVha3BvaW50X3JlX3NldF90 aHJlYWQgKHN0cnVjdCBicmVha3BvaW50ICopOworQEAgLTExOTEsNCArMTIxMiwxMSBAQCBleHRl cm4gc3RydWN0IGJyZWFrcG9pbnQgKml0ZXJhdGVfb3Zlcl9icmVha3BvaW50cyAoaW50ICgqKSAo c3RydWN0IGJyZWFrcG9pbnQgKgorIAorIGV4dGVybiBpbnQgdXNlcl9icmVha3BvaW50X3AgKHN0 cnVjdCBicmVha3BvaW50ICopOworIAorKy8qIFNldCBvciBjbGVhciBhIFN5c3RlbVRhcCBzZW1h cGhvcmUuICBMT0MgaXMgdGhlIGxvY2F0aW9uIHdoaWNoIG1heQorKyAgIGhvbGQgYSBzZW1hcGhv cmUuICBTRVQgaXMgbm9uLXplcm8gaWYgdGhlIHNlbWFwaG9yZSBzaG91bGQgYmUgc2V0LAorKyAg IG9yIHplcm8gaWYgdGhlIHNlbWFwaG9yZSBzaG91bGQgYmUgY2xlYXJlZC4gIFNlbWFwaG9yZXMg YWN0IGFzCisrICAgcmVmZXJlbmNlIGNvdW50ZXJzLCBzbyBjYWxscyB0byB0aGlzIGZ1bmN0aW9u IG11c3QgYmUgcGFpcmVkLiAgKi8KKysKKytleHRlcm4gdm9pZCBtb2RpZnlfc2VtYXBob3JlIChz dHJ1Y3QgYnBfbG9jYXRpb24gKmxvY2F0aW9uLCBpbnQgc2V0KTsKKysKKyAjZW5kaWYgLyogIWRl ZmluZWQgKEJSRUFLUE9JTlRfSCkgKi8KIGRpZmYgLS1naXQgYS9nZGIvYy10eXBlcHJpbnQuYyBi L2dkYi9jLXR5cGVwcmludC5jCi1pbmRleCBjNzBmYTRiLi42YmMzMzk3IDEwMDY0NAoraW5kZXgg MmUyM2RkNy4uYWVmYzgwNyAxMDA2NDQKIC0tLSBhL2dkYi9jLXR5cGVwcmludC5jCiArKysgYi9n ZGIvYy10eXBlcHJpbnQuYwotQEAgLTYyNiw5ICs2MjYsMTQgQEAgY190eXBlX3ByaW50X3ZhcnNw ZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC02MjUsOSArNjI1LDE0IEBAIGNfdHlw ZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUgKnR5cGUsCiAgCSAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiKSIpOwogIAogIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJb Iik7CkBAIC0xMzY5LDcgKzE0NzYsNyBAQCBpbmRleCAxMWNmMmU2Li45YTJhOGY4IDEwMDY0NAog IEZMQUdTX1RPX1BBU1MgPSBcCiAgCSJwcmVmaXg9JChwcmVmaXgpIiBcCiBkaWZmIC0tZ2l0IGEv Z2RiL2RieHJlYWQuYyBiL2dkYi9kYnhyZWFkLmMKLWluZGV4IDgyNDJjZjguLmIyZGI2OTkgMTAw NjQ0CitpbmRleCA1MWRkZDlkLi5hNTlhZTEwIDEwMDY0NAogLS0tIGEvZ2RiL2RieHJlYWQuYwog KysrIGIvZ2RiL2RieHJlYWQuYwogQEAgLTEsNiArMSw2IEBACkBAIC0xMzgwLDcgKzE0ODcsNyBA QCBpbmRleCA4MjQyY2Y4Li5iMmRiNjk5IDEwMDY0NAogICAgIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLUBAIC0zNTg2LDYg KzM1ODYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgYW91dF9zeW1fZm5zID0KK0BA IC0zNTg3LDYgKzM1ODcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgYW91dF9zeW1f Zm5zID0KICAgIGRlZmF1bHRfc3ltZmlsZV9zZWdtZW50cywJLyogR2V0IHNlZ21lbnQgaW5mb3Jt YXRpb24gZnJvbSBhIGZpbGUuICAqLwogICAgTlVMTCwKICAgIGRlZmF1bHRfc3ltZmlsZV9yZWxv Y2F0ZSwJLyogUmVsb2NhdGUgYSBkZWJ1ZyBzZWN0aW9uLiAgKi8KQEAgLTE0MDIsNyArMTUwOSw3 IEBAIGluZGV4IDk0MDlkZGUuLmYwZmE0YzcgMTAwNjQ0CiAgZXh0ZXJuIGNoYXIgKnhmdWxscGF0 aCAoY29uc3QgY2hhciAqKTsKICAKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIv Z2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXggZmNiYmQ2Yy4uODc2NzQ5ZCAxMDA2NDQKK2luZGV4 IGUwMjMwNTguLmJmNTRlOWEgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysg Yi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAtMTE3Nyw2ICsxMTc3LDE2IEBAIGZvciByZW1vdGUg ZGVidWdnaW5nLgpAQCAtMTQ4MSw3ICsxNTg4LDcgQEAgaW5kZXggZmNiYmQ2Yy4uODc2NzQ5ZCAx MDA2NDQKICBAYyAgQGlmY2xlYXIgQkFSRVRBUkdFVAogIEBub2RlIEVycm9yIGluIEJyZWFrcG9p bnRzCiAgQHN1YnNlY3Rpb24gYGBDYW5ub3QgaW5zZXJ0IGJyZWFrcG9pbnRzJycKLUBAIC02NDEx LDYgKzY0NjYsMjkgQEAgc3BlY2lmeSB0aGUgZnVuY3Rpb24gdW5hbWJpZ3VvdXNseSwgZS5nLiwg aWYgdGhlcmUgYXJlIHNldmVyYWwKK0BAIC02NDE0LDYgKzY0NjksMjkgQEAgc3BlY2lmeSB0aGUg ZnVuY3Rpb24gdW5hbWJpZ3VvdXNseSwgZS5nLiwgaWYgdGhlcmUgYXJlIHNldmVyYWwKICBmdW5j dGlvbnMgd2l0aCBpZGVudGljYWwgbmFtZXMgaW4gZGlmZmVyZW50IHNvdXJjZSBmaWxlcy4KICBA ZW5kIHRhYmxlCiAgCkBAIC0xNTExLDcgKzE2MTgsNyBAQCBpbmRleCBmY2JiZDZjLi44NzY3NDlk IDEwMDY0NAogIEBlbmQgdGFibGUKICAKICAKLUBAIC04NDk3LDYgKzg1NzUsMTAgQEAgdG8gbWF0 Y2ggdGhlIGZvcm1hdCBpbiB3aGljaCB0aGUgZGF0YSB3YXMgcHJpbnRlZC4KK0BAIC04NTAwLDYg Kzg1NzgsMTAgQEAgdG8gbWF0Y2ggdGhlIGZvcm1hdCBpbiB3aGljaCB0aGUgZGF0YSB3YXMgcHJp bnRlZC4KICBUaGUgdmFyaWFibGUgQGNvZGV7JF9leGl0Y29kZX0gaXMgYXV0b21hdGljYWxseSBz ZXQgdG8gdGhlIGV4aXQgY29kZSB3aGVuCiAgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWQgdGVy bWluYXRlcy4KICAKQEAgLTE1MjIsNyArMTYyOSw3IEBAIGluZGV4IGZjYmJkNmMuLjg3Njc0OWQg MTAwNjQ0CiAgQGl0ZW0gJF9zZGF0YQogIEB2aW5kZXggJF9zZGF0YUByeywgaW5zcGVjdCwgY29u dmVuaWVuY2UgdmFyaWFibGV9CiAgVGhlIHZhcmlhYmxlIEBjb2RleyRfc2RhdGF9IGNvbnRhaW5z IGV4dHJhIGNvbGxlY3RlZCBzdGF0aWMgdHJhY2Vwb2ludAotQEAgLTIwNjg5LDggKzIwNzcxLDYg QEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CitAQCAtMjA2OTIsOCArMjA3 NzQsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToKICAKICBAc21hbGxl eGFtcGxlCiAgKEB2YWx1ZXtHREJQfSkgcHl0aG9uCkBAIC0xNTMxLDcgKzE2MzgsNyBAQCBpbmRl eCBmY2JiZDZjLi44NzY3NDlkIDEwMDY0NAogID5wcmludCAyMwogID5lbmQKICAyMwotQEAgLTIw NzAzLDYgKzIwNzgzLDE0IEBAIGluIGEgUHl0aG9uIHNjcmlwdC4gIFRoaXMgY2FuIGJlIGNvbnRy b2xsZWQgdXNpbmcgQGNvZGV7bWFpbnQgc2V0CitAQCAtMjA3MDYsNiArMjA3ODYsMTQgQEAgaW4g YSBQeXRob24gc2NyaXB0LiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWlu dCBzZXQKICBweXRob24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtvbn0sIHRoZSBkZWZhdWx0LCB0 aGVuIFB5dGhvbiBzdGFjawogIHByaW50aW5nIGlzIGVuYWJsZWQ7IGlmIEBjb2Rle29mZn0sIHRo ZW4gUHl0aG9uIHN0YWNrIHByaW50aW5nIGlzCiAgZGlzYWJsZWQuCkBAIC0xNTQ2LDcgKzE2NTMs NyBAQCBpbmRleCBmY2JiZDZjLi44NzY3NDlkIDEwMDY0NAogIEBlbmQgdGFibGUKICAKICBJdCBp cyBhbHNvIHBvc3NpYmxlIHRvIGV4ZWN1dGUgYSBQeXRob24gc2NyaXB0IGZyb20gdGhlIEB2YWx1 ZXtHREJOfQotQEAgLTIwNzI0LDYgKzIwODEyLDE0IEBAIGFuZCB0aHVzIGlzIGFsd2F5cyBhdmFp bGFibGUuCitAQCAtMjA3MjcsNiArMjA4MTUsMTQgQEAgYW5kIHRodXMgaXMgYWx3YXlzIGF2YWls YWJsZS4KICBAY2luZGV4IHB5dGhvbiBhcGkKICBAY2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhv bgogIApAQCAtMTcwNywxMiArMTgxNCwxMiBAQCBpbmRleCBkMTZjODY1Li45NDZhZDk1IDEwMDY0 NAogIFRoaXMgb2JzZXJ2ZXIgaXMgdXNlZCBmb3IgaW50ZXJuYWwgdGVzdGluZy4gIERvIG5vdCB1 c2UuICAKICBTZWUgdGVzdHN1aXRlL2dkYi5nZGIvb2JzZXJ2ZXIuZXhwLgogZGlmZiAtLWdpdCBh L2dkYi9kd2FyZjJleHByLmMgYi9nZGIvZHdhcmYyZXhwci5jCi1pbmRleCA4ZDE4MTBlLi40YTNl MmYyIDEwMDY0NAoraW5kZXggOTFmY2NmOS4uNGNkNTk0OSAxMDA2NDQKIC0tLSBhL2dkYi9kd2Fy ZjJleHByLmMKICsrKyBiL2dkYi9kd2FyZjJleHByLmMKLUBAIC05MDUsNiArOTA1LDEzIEBAIGV4 ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKLSAJICBjdHgt PmR3YXJmX2NhbGwgKGN0eCwgcmVzdWx0KTsKLSAJICBnb3RvIG5vX3B1c2g7CitAQCAtOTEyLDYg KzkxMiwxMyBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpj dHgsCisgCSAgY3R4LT5udW1fcGllY2VzID0gMDsKKyAJICBnb3RvIGFib3J0X2V4cHJlc3Npb247 CiAgCiArCWNhc2UgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzczoKICsJICBpZiAoY3R4LT5nZXRf b2JqZWN0X2FkZHJlc3MgPT0gTlVMTCkKQEAgLTE3NDYsNyArMTg1Myw3IEBAIGluZGV4IDc4ZmY1 M2YuLmM4M2YyM2QgMTAwNjQ0CiAgICAvKiBUaGUgY3VycmVudCBkZXB0aCBvZiBkd2FyZiBleHBy ZXNzaW9uIHJlY3Vyc2lvbiwgdmlhIERXX09QX2NhbGwqLAogICAgICAgRFdfT1BfZmJyZWcsIERX X09QX3B1c2hfb2JqZWN0X2FkZHJlc3MsIGV0Yy4sIGFuZCB0aGUgbWF4aW11bQogZGlmZiAtLWdp dCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwotaW5kZXggOWZkOGRmMC4uY2Jm YjZkNiAxMDA2NDQKK2luZGV4IDRjMTMzMDcuLjliMGUxYWQgMTAwNjQ0CiAtLS0gYS9nZGIvZHdh cmYybG9jLmMKICsrKyBiL2dkYi9kd2FyZjJsb2MuYwogQEAgLTEzNCw2ICsxMzQsOSBAQCBzdHJ1 Y3QgZHdhcmZfZXhwcl9iYXRvbgpAQCAtMTc3OSw3ICsxODg2LDcgQEAgaW5kZXggOWZkOGRmMC4u Y2JmYjZkNiAxMDA2NDQKICsgICAgICBnZGJfYXNzZXJ0IChzeW1iYXRvbiAhPSBOVUxMKTsKICsg ICAgICAqc3RhcnQgPSBzeW1iYXRvbi0+ZGF0YTsKICsgICAgICAqbGVuZ3RoID0gc3ltYmF0b24t PnNpemU7Ci0rICAgIH0KKyAgICAgfQogKyAgZWxzZSBpZiAoU1lNQk9MX0NPTVBVVEVEX09QUyAo ZnJhbWVmdW5jKSA9PSAmZHdhcmYyX21pc3NpbmdfZnVuY3MpCiArICAgIHsKICsgICAgICBzdHJ1 Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKnN5bWJhdG9uOwpAQCAtMTc4OCw3ICsxODk1LDcgQEAg aW5kZXggOWZkOGRmMC4uY2JmYjZkNiAxMDA2NDQKICsgICAgICBnZGJfYXNzZXJ0IChzeW1iYXRv biA9PSBOVUxMKTsKICsgICAgICAqc3RhcnQgPSBOVUxMOwogKyAgICAgICpsZW5ndGggPSAwOwkv KiB1bnVzZWQgKi8KLSAgICAgfQorKyAgICB9CiArICBlbHNlCiArICAgIGludGVybmFsX2Vycm9y IChfX0ZJTEVfXywgX19MSU5FX18sCiArCQkgICAgXygiVW5zdXBwb3J0ZWQgU1lNQk9MX0NPTVBV VEVEX09QUyAlcCBmb3IgXCIlc1wiIiksCkBAIC0yMDQ4LDcgKzIxNTUsNyBAQCBpbmRleCA5ZmQ4 ZGYwLi5jYmZiNmQ2IDEwMDY0NAogIAkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAo dHlwZSk7CiAgCSAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0gbHZhbF9tZW1vcnk7CiAgCSAgICBp ZiAoaW5fc3RhY2tfbWVtb3J5KQotQEAgLTI4NTAsMTEgKzMwMTEsNTEgQEAgbG9jbGlzdF90cmFj ZXBvaW50X3Zhcl9yZWYgKHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwgc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCitAQCAtMjg1NSwxMSArMzAxNiw1MSBAQCBsb2NsaXN0X3RyYWNlcG9pbnRfdmFyX3Jl ZiAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAJCQkg ICAgICAgZGxiYXRvbi0+cGVyX2N1KTsKICB9CiAgCkBAIC0yMTIzLDcgKzIyMzAsNyBAQCBpbmRl eCA5NmE0OTBlLi5iMGViYjA2IDEwMDY0NAogIC8qIENvbXBpbGUgYSBEV0FSRiBsb2NhdGlvbiBl eHByZXNzaW9uIHRvIGFuIGFnZW50IGV4cHJlc3Npb24uCiAgICAgCiBkaWZmIC0tZ2l0IGEvZ2Ri L2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKLWluZGV4IDgxMGY2NmEuLmY4ZDIwYWMg MTAwNjQ0CitpbmRleCAwY2M1Y2EwLi5iN2ZlYjA5IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMnJl YWQuYwogKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwogQEAgLTEyMTEsNiArMTIxMSw5IEBAIHN0YXRp YyB2b2lkIGZpbGxfaW5fbG9jbGlzdF9iYXRvbiAoc3RydWN0IGR3YXJmMl9jdSAqY3UsCkBAIC0y Nzk4LDEzICsyOTA1LDEzIEBAIGluZGV4IDgxMGY2NmEuLmY4ZDIwYWMgMTAwNjQ0CiAgICAgICBp bml0aWFsaXplZCAoaWYgbm90IGFscmVhZHkgc2V0KS4gIFRoZXJlIGFyZSBhIGZldyB0eXBlcyB3 aGVyZQogICAgICAgd2Ugc2hvdWxkIG5vdCBiZSBkb2luZyBzbywgYmVjYXVzZSB0aGUgdHlwZS1z cGVjaWZpYyBhcmVhIGlzCiBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFk LmMKLWluZGV4IGU2MzhhMzYuLmMxODkzZmUgMTAwNjQ0CitpbmRleCBkYWNjNmYwLi5mNzk2ODUx IDEwMDY0NAogLS0tIGEvZ2RiL2VsZnJlYWQuYwogKysrIGIvZ2RiL2VsZnJlYWQuYwotQEAgLTM3 LDYgKzM3LDE0IEBACi0gI2luY2x1ZGUgImNvbXBsYWludHMuaCIKK0BAIC0zOCw2ICszOCwxMyBA QAogICNpbmNsdWRlICJkZW1hbmdsZS5oIgogICNpbmNsdWRlICJwc3ltcHJpdi5oIgorICNpbmNs dWRlICJmaWxlbmFtZXMuaCIKICsjaW5jbHVkZSAiZ2RidHlwZXMuaCIKICsjaW5jbHVkZSAidmFs dWUuaCIKICsjaW5jbHVkZSAiaW5mY2FsbC5oIgpAQCAtMjgxMiwxMSArMjkxOSwxMCBAQCBpbmRl eCBlNjM4YTM2Li5jMTg5M2ZlIDEwMDY0NAogKyNpbmNsdWRlICJyZWdjYWNoZS5oIgogKyNpbmNs dWRlICJzdGFwLXByb2JlLmgiCiArI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIKLSsjaW5jbHVkZSAi Z2RidHlwZXMuaCIKICAKICBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9lbGZyZWFkICh2b2lkKTsK ICAKLUBAIC01NSw4ICs2MywzMCBAQCBzdHJ1Y3QgZWxmaW5mbworQEAgLTU2LDggKzYzLDMwIEBA IHN0cnVjdCBlbGZpbmZvCiAgICAgIGFzZWN0aW9uICptZGVidWdzZWN0OwkvKiBTZWN0aW9uIHBv aW50ZXIgZm9yIC5tZGVidWcgc2VjdGlvbiAqLwogICAgfTsKICAKQEAgLTI4NDcsNyArMjk1Myw3 IEBAIGluZGV4IGU2MzhhMzYuLmMxODkzZmUgMTAwNjQ0CiAgLyogTG9jYXRlIHRoZSBzZWdtZW50 cyBpbiBBQkZELiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHN5bWZpbGVfc2VnbWVudF9kYXRhICoK LUBAIC0xODQsNyArMjE0LDggQEAgcmVjb3JkX21pbmltYWxfc3ltYm9sIChjb25zdCBjaGFyICpu YW1lLCBpbnQgbmFtZV9sZW4sIGludCBjb3B5X25hbWUsCitAQCAtMTg1LDcgKzIxNCw4IEBAIHJl Y29yZF9taW5pbWFsX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVfbGVuLCBpbnQg Y29weV9uYW1lLAogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVf YXJjaCAob2JqZmlsZSk7CiAgCkBAIC0yODU3LDcgKzI5NjMsNyBAQCBpbmRleCBlNjM4YTM2Li5j MTg5M2ZlIDEwMDY0NAogICAgICBhZGRyZXNzID0gZ2RiYXJjaF9zbWFzaF90ZXh0X2FkZHJlc3Mg KGdkYmFyY2gsIGFkZHJlc3MpOwogIAogICAgcmV0dXJuIHByaW1fcmVjb3JkX21pbmltYWxfc3lt Ym9sX2Z1bGwgKG5hbWUsIG5hbWVfbGVuLCBjb3B5X25hbWUsIGFkZHJlc3MsCi1AQCAtMzkzLDcg KzQyNCwxMCBAQCBlbGZfc3ltdGFiX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBpbnQg dHlwZSwKK0BAIC0zOTQsNyArNDI0LDEwIEBAIGVsZl9zeW10YWJfcmVhZCAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUsIGludCB0eXBlLAogIAkgICAgewogIAkgICAgICBpZiAoc3ltLT5mbGFncyAm IChCU0ZfR0xPQkFMIHwgQlNGX1dFQUspKQogIAkJewpAQCAtMjg2OSw3ICsyOTc1LDcgQEAgaW5k ZXggZTYzOGEzNi4uYzE4OTNmZSAxMDA2NDQKICAJCX0KICAJICAgICAgZWxzZSBpZiAoKHN5bS0+ bmFtZVswXSA9PSAnLicgJiYgc3ltLT5uYW1lWzFdID09ICdMJykKICAJCSAgICAgICB8fCAoKHN5 bS0+ZmxhZ3MgJiBCU0ZfTE9DQUwpCi1AQCAtNTc3LDYgKzYxMSw0NjcgQEAgZWxmX3N5bXRhYl9y ZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHR5cGUsCitAQCAtNTc4LDYgKzYxMSw0 NjcgQEAgZWxmX3N5bXRhYl9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHR5cGUs CiAgICBkb19jbGVhbnVwcyAoYmFja190byk7CiAgfQogIApAQCAtMzMzNyw3ICszNDQzLDcgQEAg aW5kZXggZTYzOGEzNi4uYzE4OTNmZSAxMDA2NDQKICBzdHJ1Y3QgYnVpbGRfaWQKICAgIHsKICAg ICAgc2l6ZV90IHNpemU7Ci1AQCAtODE3LDYgKzEzMTIsOCBAQCBlbGZfc3ltZmlsZV9yZWFkIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCitAQCAtODE5LDYgKzEz MTMsOCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHN5 bWZpbGVfZmxhZ3MpCiAgCSAgICAgICBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7CiAg CiAgICAgICAgZWxmX3N5bXRhYl9yZWFkIChvYmpmaWxlLCBTVF9EWU5BTUlDLCBkeW5zeW1jb3Vu dCwgZHluX3N5bWJvbF90YWJsZSwgMCk7CkBAIC0zMzQ2LDcgKzM0NTIsNyBAQCBpbmRleCBlNjM4 YTM2Li5jMTg5M2ZlIDEwMDY0NAogICAgICB9CiAgCiAgICAvKiBBZGQgc3ludGhldGljIHN5bWJv bHMgLSBmb3IgaW5zdGFuY2UsIG5hbWVzIGZvciBhbnkgUExUIGVudHJpZXMuICAqLwotQEAgLTEw NzEsNyArMTU2OCwyNDMgQEAgZWxmc3RhYl9vZmZzZXRfc2VjdGlvbnMgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCkKK0BAIC0xMDcxLDcgKzE1Njcs MjM4IEBAIGVsZnN0YWJfb2Zmc2V0X3NlY3Rpb25zIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwg c3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3QpCiAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29t cGxhaW50cywKICAJICAgICAgIF8oImVsZi9zdGFiIHNlY3Rpb24gaW5mb3JtYXRpb24gbWlzc2lu ZyBmb3IgJXMiKSwgZmlsZW5hbWUpOwogIH0KQEAgLTM0NDQsMTEgKzM1NTAsNiBAQCBpbmRleCBl NjM4YTM2Li5jMTg5M2ZlIDEwMDY0NAogKyAgcmV0dXJuIGJhc2U7CiArfQogKwotKy8qIEZJWE1F IEpVU1QgRk9SIFRFU1RJTkcgKiovCi0rc3RhdGljIGludAotK2VsZl9nZXRfcHJvYmVfYXJndW1l bnRfY291bnQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAotKwkJCSAgICAgIGNvbnN0IHN0cnVj dCBzdGFwX3Byb2JlICpwcm9iZSk7Ci0rCiArc3RhdGljIGNvbnN0IHN0cnVjdCBzdGFwX3Byb2Jl ICoKICtlbGZfZ2V0X3Byb2JlcyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCAqbnVtX3By b2JlcykKICt7CkBAIC0zNTkwLDcgKzM2OTEsNyBAQCBpbmRleCBlNjM4YTM2Li5jMTg5M2ZlIDEw MDY0NAogIC8qIFJlZ2lzdGVyIHRoYXQgd2UgYXJlIGFibGUgdG8gaGFuZGxlIEVMRiBvYmplY3Qg ZmlsZSBmb3JtYXRzLiAgKi8KICAKICBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgZWxmX3N5 bV9mbnMgPQotQEAgLTEwODYsNiArMTgxOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3ltX2Zu cyBlbGZfc3ltX2ZucyA9CitAQCAtMTA4Niw2ICsxODEzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBzeW1fZm5zIGVsZl9zeW1fZm5zID0KICAgIGVsZl9zeW1maWxlX3NlZ21lbnRzLAkJLyogR2V0 IHNlZ21lbnQgaW5mb3JtYXRpb24gZnJvbSBhIGZpbGUuICAqLwogICAgTlVMTCwKICAgIGRlZmF1 bHRfc3ltZmlsZV9yZWxvY2F0ZSwJLyogUmVsb2NhdGUgYSBkZWJ1ZyBzZWN0aW9uLiAgKi8KQEAg LTM1OTgsNyArMzY5OSw3IEBAIGluZGV4IGU2MzhhMzYuLmMxODkzZmUgMTAwNjQ0CiAgICAmcHN5 bV9mdW5jdGlvbnMKICB9OwogIAotQEAgLTExMDQsNiArMTgzOCw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgc3ltX2ZucyBlbGZfc3ltX2Zuc19sYXp5X3BzeW1zID0KK0BAIC0xMTA0LDYgKzE4MzIs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgZWxmX3N5bV9mbnNfbGF6eV9wc3ltcyA9 CiAgICBlbGZfc3ltZmlsZV9zZWdtZW50cywJCS8qIEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZy b20gYSBmaWxlLiAgKi8KICAgIE5VTEwsCiAgICBkZWZhdWx0X3N5bWZpbGVfcmVsb2NhdGUsCS8q IFJlbG9jYXRlIGEgZGVidWcgc2VjdGlvbi4gICovCkBAIC0zNjA2LDcgKzM3MDcsNyBAQCBpbmRl eCBlNjM4YTM2Li5jMTg5M2ZlIDEwMDY0NAogICAgJnBzeW1fZnVuY3Rpb25zCiAgfTsKICAKLUBA IC0xMTIxLDExICsxODU2LDI3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3ltX2ZucyBlbGZfc3lt X2Zuc19nZGJfaW5kZXggPQorQEAgLTExMjEsMTEgKzE4NTAsMjcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBzeW1fZm5zIGVsZl9zeW1fZm5zX2dkYl9pbmRleCA9CiAgICBlbGZfc3ltZmlsZV9zZWdt ZW50cywJCS8qIEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20gYSBmaWxlLiAgKi8KICAgIE5V TEwsCiAgICBkZWZhdWx0X3N5bWZpbGVfcmVsb2NhdGUsCS8qIFJlbG9jYXRlIGEgZGVidWcgc2Vj dGlvbi4gICovCkBAIC02NjA2LDcgKzY3MDcsNyBAQCBpbmRleCA3Y2VlN2M4Li43NTFjOWVmIDEw MDY0NAogICAgYWRkX3NldHNob3dfYm9vbGVhbl9jbWQgKCJvYnNlcnZlciIsIG5vX2NsYXNzLAog IAkJCSAgICZvYnNlcnZlcl9tb2RlXzEsIF8oIlwKIGRpZmYgLS1naXQgYS9nZGIvbGluZXNwZWMu YyBiL2dkYi9saW5lc3BlYy5jCi1pbmRleCAzOTU5NDAyLi4yNGJmNTM0IDEwMDY0NAoraW5kZXgg NzBkZjNjYS4uYWY1M2Y5NyAxMDA2NDQKIC0tLSBhL2dkYi9saW5lc3BlYy5jCiArKysgYi9nZGIv bGluZXNwZWMuYwogQEAgLTQzLDYgKzQzLDcgQEAKQEAgLTY2MTcsNyArNjcxOCw3IEBAIGluZGV4 IDM5NTk0MDIuLjI0YmY1MzQgMTAwNjQ0CiAgCiAgLyogV2Ugc2hhcmUgdGhpcyBvbmUgd2l0aCBz eW10YWIuYywgYnV0IGl0IGlzIG5vdCBleHBvcnRlZCB3aWRlbHkuICAqLwogIAotQEAgLTc1Niw2 ICs3NTcsNyBAQCBrZWVwX25hbWVfaW5mbyAoY2hhciAqcHRyKQorQEAgLTc2Miw2ICs3NjMsNyBA QCBrZWVwX25hbWVfaW5mbyAoY2hhciAqcHRyKQogICAgIFBDIHJldHVybmVkIGlzIDAuCiAgICAg RklMRTpGVU5DVElPTiAtLSBsaWtld2lzZSwgYnV0IHByZWZlciBmdW5jdGlvbnMgaW4gdGhhdCBm aWxlLgogICAgICpFWFBSIC0tIGxpbmUgaW4gd2hpY2ggYWRkcmVzcyBFWFBSIGFwcGVhcnMuCkBA IC02NjI1LDE2ICs2NzI2LDMxIEBAIGluZGV4IDM5NTk0MDIuLjI0YmY1MzQgMTAwNjQ0CiAgCiAg ICAgVGhpcyBtYXkgYWxsIGJlIGZvbGxvd2VkIGJ5IGFuICJpZiBFWFBSIiwgd2hpY2ggd2UgaWdu b3JlLgogIAotQEAgLTgyMyw2ICs4MjUsOSBAQCBkZWNvZGVfbGluZV8xIChjaGFyICoqYXJncHRy LCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwKK0BAIC04 MzcsNiArODM5LDkgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0 bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCiAgICBpZiAoKiphcmdwdHIgPT0g JyonKQogICAgICByZXR1cm4gZGVjb2RlX2luZGlyZWN0IChhcmdwdHIpOwogIAogKyAgaWYgKHN0 cm5jbXAgKCphcmdwdHIsICJwcm9iZToiLCA2KSA9PSAwKQotKyAgICByZXR1cm4gcGFyc2Vfc3Rh cF9wcm9iZSAoYXJncHRyKTsKKysgICAgcmV0dXJuIHBhcnNlX3N0YXBfcHJvYmUgKGFyZ3B0ciwg Y2Fub25pY2FsLCBub3RfZm91bmRfcHRyKTsKICsKICAgIGlzX3F1b3RlZCA9IChzdHJjaHIgKGdl dF9nZGJfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnMgKCksCiAgCQkgICAgICAgKiphcmdwdHIp ICE9IE5VTEwpOwogIAorZGlmZiAtLWdpdCBhL2dkYi9saW5lc3BlYy5oIGIvZ2RiL2xpbmVzcGVj LmgKK2luZGV4IGQ4ZDJlYzkuLjQ1ODIzNWMgMTAwNjQ0CistLS0gYS9nZGIvbGluZXNwZWMuaAor KysrIGIvZ2RiL2xpbmVzcGVjLmgKK0BAIC0zMCw2ICszMCwxMCBAQCBzdHJ1Y3QgbGluZXNwZWNf cmVzdWx0CisgICAgICBkaXNwbGF5IG1lY2hhbmlzbSB3b3VsZCBkbyB0aGUgd3JvbmcgdGhpbmcu ICAqLworICAgaW50IHNwZWNpYWxfZGlzcGxheTsKKyAKKysgIC8qIElmIG5vbi16ZXJvLCB0aGUg bGluZXNwZWMgcmVzdWx0IHNob3VsZCBiZSBjb25zaWRlcmVkIHRvIGJlIGEKKysgICAgICJwcmUt ZXhwYW5kZWQiIG11bHRpLWxvY2F0aW9uIGxpbmVzcGVjLiAgKi8KKysgIGludCBwcmVfZXhwYW5k ZWQ7CisrCisgICAvKiBJZiBub24tTlVMTCwgYW4gYXJyYXkgb2YgY2Fub25pY2FsIG5hbWVzIGZv ciByZXR1cm5lZAorICAgICAgc3ltdGFiX2FuZF9saW5lIG9iamVjdHMuICBUaGUgYXJyYXkgaGFz IGFzIG1hbnkgZWxlbWVudHMgYXMgdGhlCisgICAgICBgbmVsdHMnIGZpZWxkIGluIHRoZSBzeW10 YWJzX2FuZF9saW5lIHJldHVybmVkIGJ5IGRlY29kZV9saW5lXzEuCiBkaWZmIC0tZ2l0IGEvZ2Ri L2xpbnV4LW5hdC5jIGIvZ2RiL2xpbnV4LW5hdC5jCiBpbmRleCA3MzI4MTJkLi4wM2IzZDE5IDEw MDY0NAogLS0tIGEvZ2RiL2xpbnV4LW5hdC5jCkBAIC02ODk2LDEwICs3MDEyLDEwIEBAIGluZGV4 IGE0MDE4NDYuLjI2ZGNhOGMgMTAwNjQ0CiAgCiAgICAgICAgdmFyb2JqX3VwZGF0ZV9vbmUgKHZh ciwgcHJpbnRfdmFsdWVzLCAxIC8qIGV4cGxpY2l0ICovKTsKIGRpZmYgLS1naXQgYS9nZGIvbWlu c3ltcy5jIGIvZ2RiL21pbnN5bXMuYwotaW5kZXggNGFlN2YyNy4uOTdkNDI1ZSAxMDA2NDQKK2lu ZGV4IDQ1NTFiMDcuLmIwNTRlM2YgMTAwNjQ0CiAtLS0gYS9nZGIvbWluc3ltcy5jCiArKysgYi9n ZGIvbWluc3ltcy5jCi1AQCAtMzMzLDggKzMzMyw5IEBAIGxvb2t1cF9taW5pbWFsX3N5bWJvbF90 ZXh0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZikKK0BAIC0zMzQsOCAr MzM0LDkgQEAgbG9va3VwX21pbmltYWxfc3ltYm9sX3RleHQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0 cnVjdCBvYmpmaWxlICpvYmpmKQogIAkgICAgICAgbXN5bWJvbCA9IG1zeW1ib2wtPmhhc2hfbmV4 dCkKICAJICAgIHsKICAJICAgICAgaWYgKHN0cmNtcCAoU1lNQk9MX0xJTktBR0VfTkFNRSAobXN5 bWJvbCksIG5hbWUpID09IDAgJiYKQEAgLTY5MTEsNyArNzAyNyw3IEBAIGluZGV4IDRhZTdmMjcu Ljk3ZDQyNWUgMTAwNjQ0CiAgCQl7CiAgCQkgIHN3aXRjaCAoTVNZTUJPTF9UWVBFIChtc3ltYm9s KSkKICAJCSAgICB7Ci1AQCAtNjk2LDYgKzY5Nyw2OSBAQCBsb29rdXBfbWluaW1hbF9zeW1ib2xf YnlfcGMgKENPUkVfQUREUiBwYykKK0BAIC02OTcsNiArNjk4LDY5IEBAIGxvb2t1cF9taW5pbWFs X3N5bWJvbF9ieV9wYyAoQ09SRV9BRERSIHBjKQogICAgcmV0dXJuIGxvb2t1cF9taW5pbWFsX3N5 bWJvbF9ieV9wY19zZWN0aW9uIChwYywgTlVMTCk7CiAgfQogIApAQCAtNjk4MSw3ICs3MDk3LDcg QEAgaW5kZXggNGFlN2YyNy4uOTdkNDI1ZSAxMDA2NDQKICAvKiBGaW5kIHRoZSBtaW5pbWFsIHN5 bWJvbCBuYW1lZCBOQU1FLCBhbmQgcmV0dXJuIGJvdGggdGhlIG1pbnN5bQogICAgIHN0cnVjdCBh bmQgaXRzIG9iamZpbGUuICBUaGlzIG9ubHkgY2hlY2tzIHRoZSBsaW5rYWdlIG5hbWUuICBTZXRz CiAgICAgKk9CSkZJTEVfUCBhbmQgcmV0dXJucyB0aGUgbWluaW1hbCBzeW1ib2wsIGlmIGl0IGlz IGZvdW5kLiAgSWYgaXQKLUBAIC03NjUsNiArODI5LDcgQEAgcHJpbV9yZWNvcmRfbWluaW1hbF9z eW1ib2wgKGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBhZGRyZXNzLAorQEAgLTc2Niw2ICs4 MzAsNyBAQCBwcmltX3JlY29yZF9taW5pbWFsX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgQ09S RV9BRERSIGFkZHJlc3MsCiAgICBzd2l0Y2ggKG1zX3R5cGUpCiAgICAgIHsKICAgICAgY2FzZSBt c3RfdGV4dDoKQEAgLTY5ODksNyArNzEwNSw3IEBAIGluZGV4IDRhZTdmMjcuLjk3ZDQyNWUgMTAw NjQ0CiAgICAgIGNhc2UgbXN0X2ZpbGVfdGV4dDoKICAgICAgY2FzZSBtc3Rfc29saWJfdHJhbXBv bGluZToKICAgICAgICBzZWN0aW9uID0gU0VDVF9PRkZfVEVYVCAob2JqZmlsZSk7Ci1AQCAtMTIz MCw3ICsxMjk1LDggQEAgZmluZF9zb2xpYl90cmFtcG9saW5lX3RhcmdldCAoc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLCBDT1JFX0FERFIgcGMpCitAQCAtMTIzMSw3ICsxMjk2LDggQEAgZmluZF9z b2xpYl90cmFtcG9saW5lX3RhcmdldCAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBDT1JFX0FE RFIgcGMpCiAgICAgIHsKICAgICAgICBBTExfTVNZTUJPTFMgKG9iamZpbGUsIG1zeW1ib2wpCiAg ICAgICAgewpAQCAtNzQ0MCwxMCArNzU1NiwxMCBAQCBpbmRleCAwNDljZGU4Li5mM2QzNWVjIDEw MDY0NAogIAogICAgcmV0dXJuIHJldDsKIGRpZmYgLS1naXQgYS9nZGIvcHJpbnRjbWQuYyBiL2dk Yi9wcmludGNtZC5jCi1pbmRleCA4MTM2MGFkLi44ZmE5YTk5IDEwMDY0NAoraW5kZXggZjFlYmI3 ZS4uZTk3ZDdmMSAxMDA2NDQKIC0tLSBhL2dkYi9wcmludGNtZC5jCiArKysgYi9nZGIvcHJpbnRj bWQuYwotQEAgLTk3Nyw2ICs5NzcsMTEgQEAgcHJpbnRfY29tbWFuZF8xIChjaGFyICpleHAsIGlu dCBpbnNwZWN0LCBpbnQgdm9pZHByaW50KQorQEAgLTk3NSw2ICs5NzUsMTEgQEAgcHJpbnRfY29t bWFuZF8xIChjaGFyICpleHAsIGludCBpbnNwZWN0LCBpbnQgdm9pZHByaW50KQogICAgZWxzZQog ICAgICB2YWwgPSBhY2Nlc3NfdmFsdWVfaGlzdG9yeSAoMCk7CiAgCkBAIC03NDU1LDcgKzc1NzEs NyBAQCBpbmRleCA4MTM2MGFkLi44ZmE5YTk5IDEwMDY0NAogICAgaWYgKHZvaWRwcmludCB8fCAo dmFsICYmIHZhbHVlX3R5cGUgKHZhbCkgJiYKICAJCSAgICBUWVBFX0NPREUgKHZhbHVlX3R5cGUg KHZhbCkpICE9IFRZUEVfQ09ERV9WT0lEKSkKICAgICAgewotQEAgLTE0NzgsNiArMTQ4MywyNCBA QCB4X2NvbW1hbmQgKGNoYXIgKmV4cCwgaW50IGZyb21fdHR5KQorQEAgLTE0NzYsNiArMTQ4MSwy NCBAQCB4X2NvbW1hbmQgKGNoYXIgKmV4cCwgaW50IGZyb21fdHR5KQogIAlzZXRfaW50ZXJuYWx2 YXIgKGxvb2t1cF9pbnRlcm5hbHZhciAoIl9fIiksIGxhc3RfZXhhbWluZV92YWx1ZSk7CiAgICAg IH0KICB9CkBAIC03NDgwLDcgKzc1OTYsNyBAQCBpbmRleCA4MTM2MGFkLi44ZmE5YTk5IDEwMDY0 NAogIAwKICAKICAvKiBBZGQgYW4gZXhwcmVzc2lvbiB0byB0aGUgYXV0by1kaXNwbGF5IGNoYWlu LgotQEAgLTI4NzIsNCArMjg5NSw4IEBAIFNob3cgcHJpbnRpbmcgb2Ygc291cmNlIGZpbGVuYW1l IGFuZCBsaW5lIG51bWJlciB3aXRoIDxzeW1ib2w+LiIpLCBOVUxMLAorQEAgLTI4NzAsNCArMjg5 Myw4IEBAIFNob3cgcHJpbnRpbmcgb2Ygc291cmNlIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJlciB3 aXRoIDxzeW1ib2w+LiIpLCBOVUxMLAogICAgYWRkX2NvbSAoImV2YWwiLCBub19jbGFzcywgZXZh bF9jb21tYW5kLCBfKCJcCiAgQ29udmVydCBcInByaW50ZiBmb3JtYXQgc3RyaW5nXCIsIGFyZzEs IGFyZzIsIGFyZzMsIC4uLiwgYXJnbiB0b1xuXAogIGEgY29tbWFuZCBsaW5lLCBhbmQgY2FsbCBp dC4iKSk7CkBAIC04NzAzLDEwICs4ODE5LDEwIEBAIGluZGV4IDA4ODhiNjkuLmMzZWZkNWIgMTAw NjQ0CiAgCSAgICAgIGVsc2UKIGRpZmYgLS1naXQgYS9nZGIvc3RhcC1wcm9iZS5jIGIvZ2RiL3N0 YXAtcHJvYmUuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmViMmZiN2YK K2luZGV4IDAwMDAwMDAuLmUyNTFiZDMKIC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi9zdGFwLXBy b2JlLmMKLUBAIC0wLDAgKzEsMTkzOSBAQAorQEAgLTAsMCArMSwyMDMxIEBACiArLyogU3lzdGVt dGFwIHByb2JlIHN1cHBvcnQgZm9yIEdEQi4KICsKICsgICBDb3B5cmlnaHQgKEMpIDIwMTEgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBAIC04NzQyLDYgKzg4NTgsNyBAQCBpbmRleCAw MDAwMDAwLi5lYjJmYjdmCiArI2luY2x1ZGUgInVzZXItcmVncy5oIgogKyNpbmNsdWRlICJjb21w bGFpbnRzLmgiCiArI2luY2x1ZGUgImNsaS9jbGktdXRpbHMuaCIKKysjaW5jbHVkZSAibGluZXNw ZWMuaCIKICsKICsjaW5jbHVkZSA8Y3R5cGUuaD4KICsKQEAgLTg4MDksNyArODkyNiw3IEBAIGlu ZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgIHN0cnVjdCBhZ2VudF9leHByICphZXhwcjsKICsKICsg IC8qIFRoZSB2YWx1ZSB3ZSBhcmUgbW9kaWZ5aW5nIChmb3IgYWdlbnQgZXhwcmVzc2lvbikuICAq LwotKyAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWU7CisrICBzdHJ1Y3QgYXhzX3ZhbHVlICphdmFs dWU7CiArfTsKICsKICsvKiBUaGlzIGR1bW15IHZhcmlhYmxlIGlzIHVzZWQgd2hlbiBwYXJzaW5n IGEgcHJvYmUncyBhcmd1bWVudCBmYWlscy4KQEAgLTg4MjMsMTIgKzg5NDAsMjAgQEAgaW5kZXgg MDAwMDAwMC4uZWIyZmI3ZgogKyAgIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGV4cHJlc3Npb24sIGFu ZCBQUkVDIGlzIHRoZSBwcmVjZWRlbmNlIG9mIHRoZQogKyAgIGxhc3Qgb3BlcmF0b3IgaWRlbnRp ZmllZCBiZWZvcmUgY2FsbGluZyB0aGUgZnVuY3Rpb24uICAqLwogKwotK3N0YXRpYyBzdHJ1Y3Qg dmFsdWUgKgotK3N0YXBfZXZhbHVhdGVfcHJvYmVfYXJndW1lbnRfMiAoc3RydWN0IHN0YXBfZXZh bHVhdGlvbl9pbmZvICpldmFsX2luZm8sCi0rCQkJCXN0cnVjdCB2YWx1ZSAqbGhzLCBpbnQgcHJl Yyk7Cisrc3RhdGljIHN0cnVjdCB2YWx1ZSAqc3RhcF9ldmFsdWF0ZV9wcm9iZV9hcmd1bWVudF8y CisrICAoc3RydWN0IHN0YXBfZXZhbHVhdGlvbl9pbmZvICpldmFsX2luZm8sCisrICAgc3RydWN0 IHZhbHVlICpsaHMsIGludCBwcmVjKTsKICsKLStzdGF0aWMgc3RydWN0IHZhbHVlICoKLStzdGFw X2V2YWx1YXRlX2NvbmRpdGlvbmFsbHkgKHN0cnVjdCBzdGFwX2V2YWx1YXRpb25faW5mbyAqZXZh bF9pbmZvKTsKKysvKiBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBjaGVja2luZyB0 aGUgbmVjZXNzYXJ5IHR5cGUgb2YgZXZhbHVhdGlvbgorKyAgIGRlcGVuZGluZyBvbiB3aGF0IGlz IHRoZSBuZXh0ICJ0aGluZyIgaW4gdGhlIGJ1ZmZlci4gIFZhbGlkIHZhbHVlcyBhcmU6CisrCisr ICAgLSBVbmFyeSBvcGVyYXRvcnM7CisrICAgLSBJbnRlZ2VyIGNvbnN0YW50czsKKysgICAtIFJl Z2lzdGVyIGRpc3BsYWNlbWVudCwgaW5kaXJlY3Rpb24sIGFuZCBkaXJlY3QgYWNjZXNzOworKyAg IC0gUGFyZW50aGVzaXplZCBvcGVyYW5kLiAgKi8KKysKKytzdGF0aWMgc3RydWN0IHZhbHVlICpz dGFwX2V2YWx1YXRlX2NvbmRpdGlvbmFsbHkKKysgIChzdHJ1Y3Qgc3RhcF9ldmFsdWF0aW9uX2lu Zm8gKmV2YWxfaW5mbyk7CiArCiArc3RhdGljIHZvaWQKICtzdGFwX3NraXBfd2hpdGVzcGFjZV9j b25kIChjaGFyICoqcywgaW50IGluc2lkZV9wYXJlbikKQEAgLTkzNTAsNiArOTQ3NSw5IEBAIGlu ZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgIHJldHVybiByZXQ7CiArfQogKworKy8qIEdpdmVuIHRo ZSBvcGVyYXRvciBPUENPREUsIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGFnZW50IGJ5dGVjb2Rl CisrICAgZm9yIGl0LiAgKi8KKysKICtzdGF0aWMgdm9pZAogK3N0YXBfb3Bjb2RlX3RvX2F4IChz dHJ1Y3Qgc3RhcF9ldmFsdWF0aW9uX2luZm8gKmV2YWxfaW5mbywKICsJCSAgIGVudW0gZXhwX29w Y29kZSBvcGNvZGUpCkBAIC05MzYzLDcgKzk0OTEsNiBAQCBpbmRleCAwMDAwMDAwLi5lYjJmYjdm CiArICAgICAgYnJlYWs7CiArCiArICAgIGNhc2UgQklOT1BfRElWOgotKyAgICAgIC8qIEZJWE1F OiBTaG91bGQgd2Ugc2lnbi1leHRlbmQgdGhlIG9wZXJhbmRzPyAgKi8KICsgICAgICBheF9zaW1w bGUgKGV4cHIsIGFvcF9kaXZfc2lnbmVkKTsKICsgICAgICBicmVhazsKICsKQEAgLTkzNzIsNyAr OTQ5OSw2IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgICAgICBicmVhazsKICsKICsgICAg Y2FzZSBCSU5PUF9MRVNTOgotKyAgICAgIC8qIEZJWE1FOiBTaG91bGQgd2Ugc2lnbi1leHRlbmQg dGhlIG9wZXJhbmRzPyAgKi8KICsgICAgICBheF9zaW1wbGUgKGV4cHIsIGFvcF9sZXNzX3NpZ25l ZCk7CiArICAgICAgYnJlYWs7CiArCkBAIC05NDEzLDggKzk1MzksNyBAQCBpbmRleCAwMDAwMDAw Li5lYjJmYjdmCiArICAgICAgYnJlYWs7CiArICAgICAKICsgICAgY2FzZSBCSU5PUF9MT0dJQ0FM X09SOgotKyAgICAgIC8qIEZJWE1FOiA/Pz8/PyAqLwotKy8vICAgICAgYXhfc2ltcGxlIChleHBy LCBhb3BfCisrICAgICAgZXJyb3IgKF8oIk9wZXJhdG9yIGxvZ2ljYWwtb3IgKGB8fCcpIG5vdCBz dXBwb3J0ZWQgeWV0LiIpKTsKICsgICAgICBicmVhazsKICsKICsgICAgY2FzZSBCSU5PUF9CSVRX SVNFX0FORDoKQEAgLTk0MjIsNyArOTU0Nyw3IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsg ICAgICBicmVhazsKICsKICsgICAgY2FzZSBCSU5PUF9MT0dJQ0FMX0FORDoKLSsgICAgICAvKiBG SVhNRTogPz8/PyAqLworKyAgICAgIGVycm9yIChfKCJPcGVyYXRvciBsb2dpY2FsLWFuZCAoYCYm Jykgbm90IHN1cHBvcnRlZCB5ZXQuIikpOwogKyAgICAgIGJyZWFrOwogKwogKyAgICBjYXNlIEJJ Tk9QX0JJVFdJU0VfWE9SOgpAQCAtOTQ4OSwxMiArOTYxNCwxOSBAQCBpbmRleCAwMDAwMDAwLi5l YjJmYjdmCiArI2RlZmluZSBSRUdfTkFNRV9NQVhfU0laRSAyMAogKyAgY2hhciByZWduYW1lW1JF R19OQU1FX01BWF9TSVpFICsgMV07CiArICBpbnQgbGVuLCByZWdudW0sIGluZGlyZWN0X3AgPSAw OwotKyAgc3RydWN0IHZhbHVlICpyZXQ7CisrICBzdHJ1Y3QgdmFsdWUgKnJldCA9IE5VTEw7CiAr ICAKICsgIC8qIFRoZSBmdW5jdGlvbiB3aGljaCBjYWxsZWQgdXMgZGlkIG5vdCBjaGVjayBpZiB0 aGUgZXhwcmVzc2lvbgogKyAgICAgYnVmZmVyIHdhcyBlbXB0eS4gICovCiArICBnZGJfYXNzZXJ0 IChzICYmICpzKTsKICsKKysgIGlmIChldmFsX2luZm8tPmNvbXBpbGluZ19wKQorKyAgICAvKiBJ ZiB3ZSBhcmUgY29tcGlsaW5nLCB3ZSBjYW5ub3QgcmV0dXJuIE5VTEwgYmVjYXVzZSB0aGF0IHdv dWxkCisrICAgICAgIGxlYWQgdG8gZXJyb3JzIGluIGZ1dHVyZSBldmFsdWF0aW9ucy4gIFRoYXQn cyB3aHkgd2UganVzdCBtYWtlCisrICAgICAgIHRoaXMgZHVtbXkgdmFsdWUsIHJlcHJlc2VudGlu ZyB0aGF0IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcworKyAgICAgICBmdW5jdGlvbiBpcyBub3Qg TlVMTC4gICovCisrICAgIHJldCA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRpbl90eXBlIChn ZGJhcmNoKS0+YnVpbHRpbl9pbnQsIDApOworKwogKyAgLyogVmFsaWQgcmVnaXN0ZXIgbmFtZSBv biB4ODYgcGxhdGZvcm1zIGFyZToKICsKICsgICAgIFtwYXJlbl0le2EtejAtOX1bcGFyZW5dCkBA IC05NTM1LDcgKzk2NjcsNyBAQCBpbmRleCAwMDAwMDAwLi5lYjJmYjdmCiArCiArICBsZW4gPSBz IC0gc3RhcnQ7CiArCi0rICBpZiAoKnMgPT0gJyknKQorKyAgaWYgKGluZGlyZWN0X3AgJiYgKnMg PT0gJyknKQogKyAgICArK3M7CiArCiArICBpZiAobGVuID49IFJFR19OQU1FX01BWF9TSVpFKQpA QCAtOTU2MCw3ICs5NjkyLDcgQEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKyAgaWYgKGluZGly ZWN0X3ApCiArICAgIHsKICsgICAgICBzdHJ1Y3QgdHlwZSAqdCA9IE5VTEw7Ci0rICAgICAgZW51 bSBhZ2VudF9vcCBhb3A7CisrICAgICAgZW51bSBhZ2VudF9vcCBhb3AgPSBhb3BfcmVmMzI7CiAr CiArICAgICAgLyogSWYgdGhlIHVzZXIgaGFzIHNwZWNpZmllZCB0aGF0IHRoZSByZWdpc3RlciBt dXN0IGJlIGluZGlyZWN0ZWQsCiArCSB3ZSBzaG91bGQga25vdyB3aGF0J3MgdGhlIGNvcnJlY3Qg dHlwZSB0byBjYXN0IGl0IGJlZm9yZSBtYWtpbmcKQEAgLTk1NzIsMTAgKzk3MDQsMjEgQEAgaW5k ZXggMDAwMDAwMC4uZWIyZmI3ZgogKwl7CiArCWNhc2UgU1RBUF9BUkdfQklUTkVTU19VTkRFRklO RUQ6CiArCSAgaWYgKGV2YWxfaW5mby0+Y29tcGlsaW5nX3ApCi0rCSAgICBhb3AgPSBhb3BfcmVm MzI7CisrCSAgICB7CisrCSAgICAgIGlmIChnZGJhcmNoX2FkZHJfYml0IChnZGJhcmNoKSA9PSAz MikKKysJCWFvcCA9IGFvcF9yZWYzMjsKKysJICAgICAgZWxzZQorKwkJYW9wID0gYW9wX3JlZjY0 OworKwkgICAgfQogKwkgIGVsc2UKLSsJICAgIHQgPSBsb29rdXBfcG9pbnRlcl90eXBlCi0rCSAg ICAgIChidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX3Vuc2lnbmVkX2xvbmcpOworKwkg ICAgeworKwkgICAgICBpZiAoZ2RiYXJjaF9hZGRyX2JpdCAoZ2RiYXJjaCkgPT0gMzIpCisrCQl0 ID0gbG9va3VwX3BvaW50ZXJfdHlwZQorKwkJICAoYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVp bHRpbl91aW50MzIpOworKwkgICAgICBlbHNlCisrCQl0ID0gbG9va3VwX3BvaW50ZXJfdHlwZQor KwkJICAoYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50NjQpOworKwkgICAgfQog KwkgIGJyZWFrOwogKwogKwljYXNlIFNUQVBfQVJHX0JJVE5FU1NfMzJCSVRfU0lHTkVEOgpAQCAt OTYyMSw3ICs5NzY0LDYgQEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKwkgIGlmIChldmFsX2lu Zm8tPmNvbXBpbGluZ19wKQogKwkgICAgewogKwkgICAgICBheF9jb25zdF9sIChldmFsX2luZm8t PmFleHByLCB2YWx1ZV9hc19sb25nIChkaXNwbGFjZW1lbnQpKTsKLSsJICAgICAgLyogRklYTUU6 IElzIHRoaXMgY29ycmVjdD8gICovCiArCSAgICAgIGF4X3NpbXBsZSAoZXZhbF9pbmZvLT5hZXhw ciwgYW9wX2FkZCk7CiArCSAgICB9CiArCSAgZWxzZQpAQCAtOTYyOSw3ICs5NzcxLDE0IEBAIGlu ZGV4IDAwMDAwMDAuLmViMmZiN2YKICsJfQogKwogKyAgICAgIGlmIChldmFsX2luZm8tPmNvbXBp bGluZ19wKQotKwlheF9zaW1wbGUgKGV2YWxfaW5mby0+YWV4cHIsIGFvcCk7CisrCXsKKysJICBp ZiAodHJhY2Vfa2x1ZGdlKQorKwkgICAgeworKwkgICAgICBnZGJfYXNzZXJ0IChhb3AgPT0gYW9w X3JlZjMyIHx8IGFvcCA9PSBhb3BfcmVmNjQpOworKwkgICAgICBheF90cmFjZV9xdWljayAoZXZh bF9pbmZvLT5hZXhwciwgYW9wID09IGFvcF9yZWYzMiA/IDQgOiA4KTsKKysJICAgIH0KKysJICBh eF9zaW1wbGUgKGV2YWxfaW5mby0+YWV4cHIsIGFvcCk7CisrCX0KICsgICAgICBlbHNlCiArCXsK ICsJICByZXQgPSB2YWx1ZV9jYXN0ICh0LCByZXQpOwpAQCAtOTY0MSw3ICs5NzkwLDcgQEAgaW5k ZXggMDAwMDAwMC4uZWIyZmI3ZgogKyAgICAgc29tZSBtb2RpZmljYXRpb25zIHRvIGl0IGJlZm9y ZS4gICovCiArICBldmFsX2luZm8tPmV4cF9idWYgPSBzOwogKwotKyAgcmV0dXJuIGV2YWxfaW5m by0+Y29tcGlsaW5nX3AgPyAoc3RydWN0IHZhbHVlICopIDEgOiByZXQ7CisrICByZXR1cm4gcmV0 OwogK30KICsKICsvKiBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIGV2YWx1YXRlIGEgc2luZ2xlIG9w ZXJhbmQgb2YgdGhlIGV4cHJlc3Npb24uCkBAIC05NjU4LDcgKzk4MDcsMTQgQEAgaW5kZXggMDAw MDAwMC4uZWIyZmI3ZgogKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBldmFsX2luZm8tPmdk YmFyY2g7CiArICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBldmFsX2luZm8tPmZyYW1lOwog KyAgZW51bSBzdGFwX2FyZ19iaXRuZXNzIGJpdG5lc3MgPSBldmFsX2luZm8tPmJpdG5lc3M7Ci0r ICBzdHJ1Y3QgdmFsdWUgKnJlczsKKysgIHN0cnVjdCB2YWx1ZSAqcmVzID0gTlVMTDsKKysKKysg IGlmIChldmFsX2luZm8tPmNvbXBpbGluZ19wKQorKyAgICAvKiBJZiB3ZSBhcmUgY29tcGlsaW5n LCB3ZSBjYW5ub3QgcmV0dXJuIE5VTEwgYmVjYXVzZSB0aGF0IHdvdWxkCisrICAgICAgIGxlYWQg dG8gZXJyb3JzIGluIGZ1dHVyZSBldmFsdWF0aW9ucy4gIFRoYXQncyB3aHkgd2UganVzdCBtYWtl CisrICAgICAgIHRoaXMgZHVtbXkgdmFsdWUsIHJlcHJlc2VudGluZyB0aGF0IHRoZSByZXR1cm4g dmFsdWUgb2YgdGhpcworKyAgICAgICBmdW5jdGlvbiBpcyBub3QgTlVMTC4gICovCisrICAgIHJl cyA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9p bnQsIDApOwogKwogKyAgc3dpdGNoICgqZXZhbF9pbmZvLT5leHBfYnVmKQogKyAgICB7CkBAIC05 NjY2LDcgKzk4MjIsNyBAQCBpbmRleCAwMDAwMDAwLi5lYjJmYjdmCiArCXsKICsJICBjaGFyIGMg PSAqZXZhbF9pbmZvLT5leHBfYnVmOwogKwotKwkgIC8qIFRoaXMgaXMgYSBiaW5hcnkgb3BlcmF0 b3IgKGVpdGhlciBgLScgb3IgYH4nKS4KKysJICAvKiBUaGlzIGlzIGFuIHVuYXJ5IG9wZXJhdG9y IChlaXRoZXIgYC0nIG9yIGB+JykuCiArCiArCSAgICAgSWYgaXQgaXMgZm9sbG93ZWQgYnkgYSBw YXJlbnRoZXNpcywgYW5kIHRoaXMgcGFyZW50aGVzaXMKICsJICAgICBpcyBOT1QgZm9sbG93ZWQg YnkgYSBgJScsIHRoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBhbiBleHByZXNzaW9uCkBAIC05ODMx LDYgKzk5ODcsNyBAQCBpbmRleCAwMDAwMDAwLi5lYjJmYjdmCiArICAgICAgewogKwkvKiBSZWdp c3RlciBhY2Nlc3MsIHdpdGggb3Igd2l0aG91dCBpbmRpcmVjdGlvbi4gICovCiArCXJlcyA9IHN0 YXBfZmV0Y2hfcmVnX3ZhbHVlIChldmFsX2luZm8sIC8qZGlzcGxhY2VtZW50PSovTlVMTCk7Cisr CWV2YWxfaW5mby0+ZXhwX2J1ZiA9IHNraXBfc3BhY2VzIChldmFsX2luZm8tPmV4cF9idWYpOwog KyAgICAgIH0KICsgICAgYnJlYWs7CiArCkBAIC05ODQxLDE3ICs5OTk4LDkgQEAgaW5kZXggMDAw MDAwMC4uZWIyZmI3ZgogKyAgICAgIH0KICsgICAgfQogKwotKyAgcmV0dXJuIGV2YWxfaW5mby0+ Y29tcGlsaW5nX3AgPyAoc3RydWN0IHZhbHVlICopIDEgOiByZXM7CisrICByZXR1cm4gcmVzOwog K30KICsKLSsvKiBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBjaGVja2luZyB0aGUg bmVjZXNzYXJ5IHR5cGUgb2YgZXZhbHVhdGlvbgotKyAgIGRlcGVuZGluZyBvbiB3aGF0IGlzIHRo ZSBuZXh0ICJ0aGluZyIgaW4gdGhlIGJ1ZmZlci4gIFZhbGlkIHZhbHVlcyBhcmU6Ci0rCi0rICAg LSBVbmFyeSBvcGVyYXRvcnM7Ci0rICAgLSBJbnRlZ2VyIGNvbnN0YW50czsKLSsgICAtIFJlZ2lz dGVyIGRpc3BsYWNlbWVudCwgaW5kaXJlY3Rpb24sIGFuZCBkaXJlY3QgYWNjZXNzOwotKyAgIC0g UGFyZW50aGVzaXplZCBvcGVyYW5kLiAgKi8KLSsKICtzdGF0aWMgc3RydWN0IHZhbHVlICoKICtz dGFwX2V2YWx1YXRlX2NvbmRpdGlvbmFsbHkgKHN0cnVjdCBzdGFwX2V2YWx1YXRpb25faW5mbyAq ZXZhbF9pbmZvKQogK3sKQEAgLTk4NzksNiArMTAwMjgsNyBAQCBpbmRleCAwMDAwMDAwLi5lYjJm YjdmCiArICAgICAgaWYgKCpldmFsX2luZm8tPmV4cF9idWYgIT0gJyknKQogKwllcnJvciAoXygi TWlzc2lnbiBjbG9zZS1wYXJlbiBvbiBleHByZXNzaW9uIGAlcycuIiksCiArCSAgICAgICBldmFs X2luZm8tPnNhdmVkX2V4cHIpOworKwogKyAgICAgICsrZXZhbF9pbmZvLT5leHBfYnVmOwogKyAg ICAgIGV2YWxfaW5mby0+ZXhwX2J1ZiA9IHNraXBfc3BhY2VzIChldmFsX2luZm8tPmV4cF9idWYp OwogKyAgICB9CkBAIC0xMDAxNCw2ICsxMDE2NCw3IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YK ICsgIC8qIFdlIGFyZSBub3QgY29tcGlsaW5nIHRvIGFuIGFnZW50IGV4cHJlc3Npb24uICAqLwog KyAgZXZhbF9pbmZvLmNvbXBpbGluZ19wID0gMDsKICsgIGV2YWxfaW5mby5hZXhwciA9IE5VTEw7 CisrICBldmFsX2luZm8uYXZhbHVlID0gTlVMTDsKICsKICsgIHJlcyA9IHN0YXBfZXZhbHVhdGVf cHJvYmVfYXJndW1lbnRfMiAoJmV2YWxfaW5mbywKICsJCQkJCS8qbGhzPSovTlVMTCwgLypwcmVj PSovMCk7CkBAIC0xMDA2MCw2ICsxMDIxMSw3IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsJ CSAgICAgIGludCBuKQogK3sKICsgIHN0cnVjdCBzdGFwX2V2YWx1YXRpb25faW5mbyBldmFsX2lu Zm87CisrICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGV4cHItPmdkYmFyY2g7CiArICBjaGFy ICpzID0gKGNoYXIgKikgcHJvYmUtPnBhcnNlZF9hcmdzLT5hcmdbbl0uYXJnX3N0cjsKICsKICsg IC8qIEZpbGxpbmcgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZvciBldmFsdWF0aW9uIGZ1bmN0aW9u LiAgKi8KQEAgLTEwMDcxLDYgKzEwMjIzLDQyIEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsg IC8qIFdlIGFyZSBjb21waWxpbmcgdG8gYW4gYWdlbnQgZXhwcmVzc2lvbi4gICovCiArICBldmFs X2luZm8uY29tcGlsaW5nX3AgPSAxOwogKyAgZXZhbF9pbmZvLmFleHByID0gZXhwcjsKKysgIGV2 YWxfaW5mby5hdmFsdWUgPSB2YWx1ZTsKKysKKysgIC8qIFdlIGNhbiBhbHdheXMgdXNlIHRoaXMg a2luZC4gICovCisrICB2YWx1ZS0+a2luZCA9IGF4c19ydmFsdWU7CisrCisrICAvKiBGaWd1cmlu ZyBvdXQgdGhlIGNvcnJlY3QgdHlwZSBmb3IgdGhpcyBheHNfdmFsdWUuICAqLworKyAgc3dpdGNo IChldmFsX2luZm8uYml0bmVzcykKKysgICAgeworKyAgICBjYXNlIFNUQVBfQVJHX0JJVE5FU1Nf VU5ERUZJTkVEOgorKyAgICAgIGlmIChnZGJhcmNoX2FkZHJfYml0IChnZGJhcmNoKSA9PSAzMikK KysJdmFsdWUtPnR5cGUgPSBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX3VpbnQzMjsK KysgICAgICBlbHNlCisrCXZhbHVlLT50eXBlID0gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVp bHRpbl91aW50NjQ7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgU1RBUF9BUkdfQklUTkVT U18zMkJJVF9TSUdORUQ6CisrICAgICAgdmFsdWUtPnR5cGUgPSBidWlsdGluX3R5cGUgKGdkYmFy Y2gpLT5idWlsdGluX2ludDMyOworKyAgICAgIGJyZWFrOworKworKyAgICBjYXNlIFNUQVBfQVJH X0JJVE5FU1NfMzJCSVRfVU5TSUdORUQ6CisrICAgICAgdmFsdWUtPnR5cGUgPSBidWlsdGluX3R5 cGUgKGdkYmFyY2gpLT5idWlsdGluX3VpbnQzMjsKKysgICAgICBicmVhazsKKysKKysgICAgY2Fz ZSBTVEFQX0FSR19CSVRORVNTXzY0QklUX1NJR05FRDoKKysgICAgICB2YWx1ZS0+dHlwZSA9IGJ1 aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50NjQ7CisrICAgICAgYnJlYWs7CisrCisr ICAgIGNhc2UgU1RBUF9BUkdfQklUTkVTU182NEJJVF9VTlNJR05FRDoKKysgICAgICB2YWx1ZS0+ dHlwZSA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fdWludDY0OworKyAgICAgIGJy ZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywg X19MSU5FX18sCisrCQkgICAgICBfKCJVbmRlZmluZWQgYml0bmVzcyBmb3IgcHJvYmUuIikpOwor KyAgICAgIGJyZWFrOworKyAgICB9CiArCiArICBzdGFwX2V2YWx1YXRlX3Byb2JlX2FyZ3VtZW50 XzIgKCZldmFsX2luZm8sCiArCQkJCSAgLypsaHM9Ki9OVUxMLCAvKnByZWM9Ki8wKTsKQEAgLTEw Mzg5LDkgKzEwNTc3LDExIEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICt9CiArCiArc3RydWN0 IHN5bXRhYnNfYW5kX2xpbmVzCi0rcGFyc2Vfc3RhcF9wcm9iZSAoY2hhciAqKmFyZ3B0cikKKytw YXJzZV9zdGFwX3Byb2JlIChjaGFyICoqYXJncHRyLCBzdHJ1Y3QgbGluZXNwZWNfcmVzdWx0ICpj YW5vbmljYWwsCisrCQkgIGludCAqbm90X2ZvdW5kX3B0cikKICt7Ci0rICBjaGFyICphcmcgPSBl eHRyYWN0X2FyZyAoYXJncHRyKTsKKysgIGNoYXIgKmZ1bGxfYXJnID0gZXh0cmFjdF9hcmcgKGFy Z3B0cik7CisrICBjaGFyICphcmcgPSB4c3RyZHVwIChmdWxsX2FyZyk7CiArICBjaGFyICpvYmpm aWxlX25hbWUgPSBOVUxMLCAqcHJvdmlkZXIgPSBOVUxMLCAqbmFtZSwgKnA7CiArICBzdHJ1Y3Qg Y2xlYW51cCAqY2xlYW51cDsKICsgIHN0cnVjdCBzeW10YWJzX2FuZF9saW5lcyByZXN1bHQ7CkBA IC0xMDQwMyw2ICsxMDU5Myw3IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgIC8qIFRoZSBj YWxsZXIgZW5zdXJlZCB0aGF0IHRoaXMgc3RhcnRzIHdpdGggJ3Byb2JlOicuICAqLwogKyAgZ2Ri X2Fzc2VydCAoYXJnICYmIHN0cm5jbXAgKGFyZywgInByb2JlOiIsIDYpID09IDApOwogKyAgY2xl YW51cCA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGFyZyk7CisrICBtYWtlX2NsZWFudXAgKHhmcmVl LCBmdWxsX2FyZyk7CiArICBhcmcgKz0gNjsKICsKICsgIC8qIEV4dHJhY3QgZWFjaCB3b3JkIGZy b20gdGhlIGFyZ3VtZW50LCBzZXBhcmF0ZWQgYnkgIjoicy4gICovCkBAIC0xMDQ0MSw2ICsxMDYz Miw5IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgIGlmIChvYmpmaWxlX25hbWUgJiYgKm9i amZpbGVfbmFtZSA9PSAnXDAnKQogKyAgICBlcnJvciAoXygiaW52YWxpZCBvYmpmaWxlIG5hbWUi KSk7CiArCisrICBpZiAoY2Fub25pY2FsKQorKyAgICBjYW5vbmljYWwtPmNhbm9uaWNhbCA9IE5V TEw7CisrCiArICBBTExfT0JKRklMRVMgKG9iamZpbGUpCiArICB7CiArICAgIGNvbnN0IHN0cnVj dCBzdGFwX3Byb2JlICpwcm9iZXM7CkBAIC0xMDQ3NywxNSArMTA2NzEsMzIgQEAgaW5kZXggMDAw MDAwMC4uZWIyZmI3ZgogKwlzYWwtPnNlY3Rpb24gPSBmaW5kX3BjX292ZXJsYXkgKHNhbC0+cGMp OwogKwlzYWwtPnBzcGFjZSA9IGN1cnJlbnRfcHJvZ3JhbV9zcGFjZTsKICsJc2FsLT5zZW1hcGhv cmUgPSBwcm9iZXNbaV0uc2VtX2FkZHI7CisrCisrCWlmIChjYW5vbmljYWwpCisrCSAgeworKwkg ICAgY2Fub25pY2FsLT5jYW5vbmljYWwgPSB4cmVhbGxvYyAoY2Fub25pY2FsLT5jYW5vbmljYWws CisrCQkJCQkgICAgIHJlc3VsdC5uZWx0cyAqIHNpemVvZiAoY2hhciAqKikpOworKwkgICAgY2Fu b25pY2FsLT5jYW5vbmljYWxbcmVzdWx0Lm5lbHRzIC0gMV0gPSB4c3RyZHVwIChmdWxsX2FyZyk7 CisrCSAgfQogKyAgICAgIH0KICsgIH0KICsKICsgIGlmIChyZXN1bHQubmVsdHMgPT0gMCkKLSsg ICAgdGhyb3dfZXJyb3IgKE5PVF9GT1VORF9FUlJPUiwKLSsJCSBfKCJObyBwcm9iZSBtYXRjaGlu ZyBvYmpmaWxlPWAlcycsIHByb3ZpZGVyPWAlcycsIG5hbWU9YCVzJyIpLAotKwkJIG9iamZpbGVf bmFtZSA/IG9iamZpbGVfbmFtZSA6IF8oIjxhbnk+IiksCi0rCQkgcHJvdmlkZXIgPyBwcm92aWRl ciA6IF8oIjxhbnk+IiksCi0rCQkgbmFtZSk7CisrICAgIHsKKysgICAgICBpZiAobm90X2ZvdW5k X3B0cikKKysJKm5vdF9mb3VuZF9wdHIgPSAxOworKyAgICAgIHRocm93X2Vycm9yIChOT1RfRk9V TkRfRVJST1IsCisrCQkgICBfKCJObyBwcm9iZSBtYXRjaGluZyBvYmpmaWxlPWAlcycsIHByb3Zp ZGVyPWAlcycsIG5hbWU9YCVzJyIpLAorKwkJICAgb2JqZmlsZV9uYW1lID8gb2JqZmlsZV9uYW1l IDogXygiPGFueT4iKSwKKysJCSAgIHByb3ZpZGVyID8gcHJvdmlkZXIgOiBfKCI8YW55PiIpLAor KwkJICAgbmFtZSk7CisrICAgIH0KKysKKysgIGlmIChjYW5vbmljYWwpCisrICAgIHsKKysgICAg ICBjYW5vbmljYWwtPnNwZWNpYWxfZGlzcGxheSA9IDE7CisrICAgICAgY2Fub25pY2FsLT5wcmVf ZXhwYW5kZWQgPSAxOworKyAgICB9CiArCiArICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CiArCkBA IC0xMDU5Niw5ICsxMDgwNyw2IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgICAgZXJyb3Ig KF8oIkludmFsaWQgcHJvYmUgYXJndW1lbnQgJWQgLS0gcHJvYmUgaGFzICVkIGFyZ3VtZW50cyBh dmFpbGFibGUiKSwKICsJICAgc2VsLCBuX3Byb2Jlcyk7CiArCi0rICAvKiBGSVhNRTogdGhpcyBp cyB0ZW1wb3JhcnkgdW50aWwgQVggdHJhbnNsYXRpb24gaXMgaW1wbGVtZW50ZWQuICAqLwotKyAg aWYgKCFvYmpmaWxlLT5zZi0+c3ltX3Byb2JlX2Zucy0+c3ltX2NvbXBpbGVfdG9fYXgpCi0rICAg IGVycm9yIChfKCJjYW5ub3QgdHJhbnNsYXRlIGAkX3Byb2JlX2FyZyVkJyB0byBieXRlY29kZSIp LCBzZWwpOwogKyAgb2JqZmlsZS0+c2YtPnN5bV9wcm9iZV9mbnMtPnN5bV9jb21waWxlX3RvX2F4 IChvYmpmaWxlLCBwY19wcm9iZSwKICsJCQkJCQkgZXhwciwgdmFsdWUsIHNlbCk7CiArfQpAQCAt MTA2NDgsMTAgKzEwODU2LDEwIEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICt9CiBkaWZmIC0t Z2l0IGEvZ2RiL3N0YXAtcHJvYmUuaCBiL2dkYi9zdGFwLXByb2JlLmgKIG5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4zYTc5NDFmCitpbmRleCAwMDAwMDAwLi5kNzAwYjE5CiAt LS0gL2Rldi9udWxsCiArKysgYi9nZGIvc3RhcC1wcm9iZS5oCi1AQCAtMCwwICsxLDExMCBAQAor QEAgLTAsMCArMSwxMTMgQEAKICsvKiBTeXN0ZW10YXAgcHJvYmUgc3VwcG9ydCBmb3IgR0RCLgog KwogKyAgIENvcHlyaWdodCAoQykgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K QEAgLTEwNjc2LDYgKzEwODg0LDcgQEAgaW5kZXggMDAwMDAwMC4uM2E3OTQxZgogKwogK3N0cnVj dCBzdGFwX2FyZ3NfaW5mbzsKICtzdHJ1Y3QgYXhzX3ZhbHVlOworK3N0cnVjdCBsaW5lc3BlY19y ZXN1bHQ7CiArCiArc3RydWN0IHN0YXBfcHJvYmUKICt7CkBAIC0xMDcwNyw3ICsxMDkxNiw5IEBA IGluZGV4IDAwMDAwMDAuLjNhNzk0MWYKICsgICByZXR1cm5zIGEgc3ltdGFic19hbmRfbGluZXMg b2JqZWN0IGFuZCB1cGRhdGVzICpBUkdQVFIgb3IgdGhyb3dzIGFuCiArICAgZXJyb3IuICAqLwog KwotK2V4dGVybiBzdHJ1Y3Qgc3ltdGFic19hbmRfbGluZXMgcGFyc2Vfc3RhcF9wcm9iZSAoY2hh ciAqKmFyZ3B0cik7CisrZXh0ZXJuIHN0cnVjdCBzeW10YWJzX2FuZF9saW5lcyBwYXJzZV9zdGFw X3Byb2JlIChjaGFyICoqYXJncHRyLAorKwkJCQkJCSAgc3RydWN0IGxpbmVzcGVjX3Jlc3VsdCAq Y2Fub24sCisrCQkJCQkJICBpbnQgKm5vdF9mb3VuZF9wdHIpOwogKwogKy8qIFNlYXJjaCBPQkpG SUxFIGZvciBhIHByb2JlIHdpdGggdGhlIGdpdmVuIFBST1ZJREVSIGFuZCBOQU1FLiAgSWYgYQog KyAgIHByb2JlIGlzIGZvdW5kLCByZXR1cm4gaXQuICBJZiBubyBwcm9iZSBpcyBmb3VuZCwgcmV0 dXJuIE5VTEwuICAqLwpAQCAtMTA4NDMsMTAgKzExMDU0LDEwIEBAIGluZGV4IGEwMTUxZWEuLjc1 MmM0NmEgMTAwNjQ0CiAgICAgICByZWFkZXIuICAqLwogICAgY29uc3Qgc3RydWN0IHF1aWNrX3N5 bWJvbF9mdW5jdGlvbnMgKnFmOwogZGlmZiAtLWdpdCBhL2dkYi9zeW1taXNjLmMgYi9nZGIvc3lt bWlzYy5jCi1pbmRleCA0YmU4MTA2Li4wODFiNTMyIDEwMDY0NAoraW5kZXggNzRlNDk0MS4uNjZj MmYwNSAxMDA2NDQKIC0tLSBhL2dkYi9zeW1taXNjLmMKICsrKyBiL2dkYi9zeW1taXNjLmMKLUBA IC0yNjQsNiArMjY0LDkgQEAgZHVtcF9tc3ltYm9scyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IHN0cnVjdCB1aV9maWxlICpvdXRmaWxlKQorQEAgLTI2NSw2ICsyNjUsOSBAQCBkdW1wX21zeW1i b2xzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IHVpX2ZpbGUgKm91dGZpbGUpCiAg CWNhc2UgbXN0X3RleHQ6CiAgCSAgbXNfdHlwZSA9ICdUJzsKICAJICBicmVhazsKQEAgLTEwODU3 LDcgKzExMDY4LDcgQEAgaW5kZXggNGJlODEwNi4uMDgxYjUzMiAxMDA2NDQKICAJICBtc190eXBl ID0gJ1MnOwogIAkgIGJyZWFrOwogZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIuYyBiL2dkYi9zeW10 YWIuYwotaW5kZXggNjBiYzU4NS4uNzM0ZDMxMiAxMDA2NDQKK2luZGV4IDMwNjFmM2MuLjBiY2Ji ZjcgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltdGFiLmMKICsrKyBiL2dkYi9zeW10YWIuYwogQEAgLTc3 MCw2ICs3NzAsNyBAQCBpbml0X3NhbCAoc3RydWN0IHN5bXRhYl9hbmRfbGluZSAqc2FsKQpAQCAt MTIxNTAsNiArMTIzNjEsMjggQEAgaW5kZXggZDhlZTVjMC4uZGU0YmE3NSAxMDA2NDQKICsJdW5z dXBwb3J0ZWQgIiR0ZXN0IChubyBHQ0MpIgogKyAgICB9CiArfQorZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvZGVmYXVsdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Rl ZmF1bHQuZXhwCitpbmRleCBkNThjNTE5Li5hYmIxYjA1IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9k ZWZhdWx0LmV4cAorQEAgLTYwNyw2ICs2MDcsMTcgQEAgZ2RiX3Rlc3RfbGlzdF9leGFjdCAic2hv dyBjb252ZW5pZW5jZSIgInNob3cgY29udmVuaWVuY2UiIFwKKyAJeyRfc2RhdGEgPSB2b2lkfSBc CisgCXskX3NpZ2luZm8gPSB2b2lkfSBcCisgCXskX3RocmVhZCA9IDB9IFwKKysJeyRfcHJvYmVf YXJnYyA9IDxlcnJvcjogTm8gZnJhbWUgc2VsZWN0ZWQ+fSBcCisrCXskX3Byb2JlX2FyZzAgPSA8 ZXJyb3I6IE5vIGZyYW1lIHNlbGVjdGVkPn0gXAorKwl7JF9wcm9iZV9hcmcxID0gPGVycm9yOiBO byBmcmFtZSBzZWxlY3RlZD59IFwKKysJeyRfcHJvYmVfYXJnMiA9IDxlcnJvcjogTm8gZnJhbWUg c2VsZWN0ZWQ+fSBcCisrCXskX3Byb2JlX2FyZzMgPSA8ZXJyb3I6IE5vIGZyYW1lIHNlbGVjdGVk Pn0gXAorKwl7JF9wcm9iZV9hcmc0ID0gPGVycm9yOiBObyBmcmFtZSBzZWxlY3RlZD59IFwKKysJ eyRfcHJvYmVfYXJnNSA9IDxlcnJvcjogTm8gZnJhbWUgc2VsZWN0ZWQ+fSBcCisrCXskX3Byb2Jl X2FyZzYgPSA8ZXJyb3I6IE5vIGZyYW1lIHNlbGVjdGVkPn0gXAorKwl7JF9wcm9iZV9hcmc3ID0g PGVycm9yOiBObyBmcmFtZSBzZWxlY3RlZD59IFwKKysJeyRfcHJvYmVfYXJnOCA9IDxlcnJvcjog Tm8gZnJhbWUgc2VsZWN0ZWQ+fSBcCisrCXskX3Byb2JlX2FyZzkgPSA8ZXJyb3I6IE5vIGZyYW1l IHNlbGVjdGVkPn0gXAorICAgICB9CisgCisgI3Rlc3Qgc2hvdyBkaXJlY3RvcmllcwogZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ251LWlmdW5jLWxpYi5jIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9nbnUtaWZ1bmMtbGliLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRl eCAwMDAwMDAwLi5kYzY3MTBlCkBAIC0xMjU0Myw3ICsxMjc3Niw3IEBAIGluZGV4IDAwMDAwMDAu LjQ3ZTRiMzkKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zdGFwLXBy b2JlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3RhcC1wcm9iZS5leHAKIG5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iYzNkNDBjCitpbmRleCAwMDAwMDAwLi4zZmI3 Mzc3CiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3N0YXAtcHJv YmUuZXhwCiBAQCAtMCwwICsxLDcyIEBACkBAIC0xMjYwOCw3ICsxMjg0MSw3IEBAIGluZGV4IDAw MDAwMDAuLmJjM2Q0MGMKICsKICsgICAgIyBTZXQgYSBicmVha3BvaW50IHdpdGggbXVsdGlwbGUg cHJvYmUgbG9jYXRpb25zLgogKyAgICBnZGJfdGVzdCAiYnJlYWsgcHJvYmU6dGVzdGU6dHdvIiBc Ci0rCSJCcmVha3BvaW50IC4qIGF0ICRoZXguKkJyZWFrcG9pbnQgLiogYXQgJGhleC4qIiBcCisr CSJCcmVha3BvaW50IC4qIGF0ICRoZXguKjIgbG9jYXRpb25zLioiIFwKICsJInNldCBtdWx0aS1s b2NhdGlvbiBwcm9iZSBicmVha3BvaW50JGFkZGVuZHVtIgogKwogKyAgICByZXR1cm4gMApAQCAt MTU1NDYsOCArMTU3NzksMjIwIEBAIGluZGV4IDAwMDAwMDAuLjMxZjc2NTYKICsKICtleHRlcm4g dm9pZCBtYXJrZXIgKHZvaWQpOwogK2V4dGVybiB2b2lkIGZvcmtvZmYgKGludCBucik7CitkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5jIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMC4uMjdmMzE3ZQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu dHJhY2Uvc3RhcC10cmFjZS5jCitAQCAtMCwwICsxLDcxIEBACisrLyogVGhpcyB0ZXN0Y2FzZSBp cyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAxMSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmIFVTRV9QUk9CRVMKKysKKysjZGVmaW5lIF9TRFRf SEFTX1NFTUFQSE9SRVMKKytfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIHNob3J0IHRlc3RlX3VzZXJf c2VtYXBob3JlIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlv biAoIi5wcm9iZXMiKSkpOworKyNkZWZpbmUgVEVTVCB0ZXN0ZV91c2VyX3NlbWFwaG9yZQorKwor K19fZXh0ZW5zaW9uX18gdW5zaWduZWQgc2hvcnQgdGVzdGVfdHdvX3NlbWFwaG9yZSBfX2F0dHJp YnV0ZV9fICgodW51c2VkKSkgX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCIucHJvYmVzIikpKTsK KysjZGVmaW5lIFRFU1QyIHRlc3RlX3R3b19zZW1hcGhvcmUKKysKKysjZWxzZQorKworKyNkZWZp bmUgVEVTVCAxCisrI2RlZmluZSBURVNUMiAxCisrCisrI2VuZGlmIC8qIFVTRV9QUk9CRVMgKi8K KysKKysjaW5jbHVkZSA8c3lzL3NkdC5oPgorKworKy8qIFdlIG9ubHkgc3VwcG9ydCBTeXN0ZW1U YXAgYW5kIG9ubHkgdGhlIHYzIGZvcm0uICAqLworKyNpZiBfU0RUX05PVEVfVFlQRSAhPSAzCisr I2Vycm9yICJub3QgdXNpbmcgU3lzdGVtVGFwIHYzIHByb2JlcyIKKysjZW5kaWYKKysKKyt2b2lk CisrbTEgKGludCB4KQorK3sKKysgIGlmIChURVNUMikKKysgICAgU1RBUF9QUk9CRTEgKHRlc3Rl LCB0d28sIHgpOworK30KKysKKytpbnQKKytmIChpbnQgeCkKKyt7CisrICBpZiAoVEVTVCkKKysg ICAgU1RBUF9QUk9CRTEodGVzdGUsIHVzZXIsIHgpOworKyAgcmV0dXJuIHgrNTsKKyt9CisrCisr dm9pZAorK25vdGhpbmcgKHZvaWQpCisreworKyAgaW50IGEgPSAxICsgMTsKKysgIHJldHVybjsK Kyt9CisrCisraW50CisrbWFpbigpCisreworKyAgZiAoZiAoMjMpKTsKKysgIG0xICg0Nik7Cisr ICBub3RoaW5nICgpOyAvKiBlbmQtaGVyZSAqLworKworKyAgcmV0dXJuIDA7CisrfQorZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRyYWNlL3N0YXAtdHJhY2UuZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwLi4xODkzNTVmCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi50cmFjZS9zdGFwLXRyYWNlLmV4cAorQEAgLTAsMCArMSwxMjkgQEAKKysjIENvcHlyaWdodCAy MDExCisrIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisrCisrbG9hZF9saWIgInRyYWNlLXN1cHBvcnQuZXhwIgorKworK2lm ICR0cmFjZWxldmVsIHRoZW4geworKwlzdHJhY2UgJHRyYWNlbGV2ZWwKKyt9CisrCisrc2V0IHRl c3RmaWxlICJzdGFwLXRyYWNlIgorK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKKytzZXQgZXhl Y3V0YWJsZSAkdGVzdGZpbGUKKytzZXQgYmluZmlsZSAkb2JqZGlyLyRzdWJkaXIvJGV4ZWN1dGFi bGUKKysKKytzZXQgd3MgIlxbXHJcblx0IFxdKyIKKytzZXQgY3IgIlxbXHJcblxdKyIKKysKKysj IE9ubHkgeDg2IGFuZCB4ODZfNjQgdGFyZ2V0cyBhcmUgc3VwcG9ydGVkIGZvciBub3cuCisrCisr aWYgeyAhW2lzdGFyZ2V0ICJ4ODZfNjQtKiJdICYmICFbaXN0YXJnZXQgImk/ODYtKiJdIH0gewor KyAgICBjb250aW51ZQorK30KKysKKytwcm9jIGNvbXBpbGVfc3RhcF9iaW4ge3sgYXJnICIiIH19 IHsKKysgICAgZ2xvYmFsIHNyY2ZpbGUKKysgICAgZ2xvYmFsIGJpbmZpbGUKKysgICAgZ2xvYmFs IHNyY2RpcgorKyAgICBnbG9iYWwgc3ViZGlyCisrCisrICAgIGlmIHsgJGFyZyAhPSAiIiB9IHsK KysJc2V0IGFyZyAiYWRkaXRpb25hbF9mbGFncz0kYXJnIgorKyAgICB9CisrCisrICAgIGlmIHsg W2dkYl9jb21waWxlICIkc3JjZGlyLyRzdWJkaXIvJHNyY2ZpbGUiICRiaW5maWxlIFwKKysJICAg IGV4ZWN1dGFibGUgW2NvbmNhdCAkYXJnIGRlYnVnIG5vd2FybmluZ3NdXSAhPSAiIiB9IHsKKysJ dW50ZXN0ZWQgIkNvdWxkIG5vdCBjb21waWxlICR7c3JjZmlsZX0iCisrCXJldHVybiAtMQorKyAg ICB9CisrfQorKworK3Byb2MgcHJlcGFyZV9mb3JfdHJhY2VfdGVzdCB7fSB7CisrICAgIGdsb2Jh bCBleGVjdXRhYmxlCisrCisrICAgIGNsZWFuX3Jlc3RhcnQgJGV4ZWN1dGFibGUKKysKKysgICAg aWYgeyAhW3J1bnRvX21haW5dIH0geworKwlwZXJyb3IgIkNvdWxkIG5vdCBydW4gdG8gYG1haW4n LiIKKysJY29udGludWUKKysgICAgfQorKworKyAgICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9s aW5lX251bWJlciAiZW5kLWhlcmUiXQorK30KKysKKytwcm9jIHJ1bl90cmFjZV9leHBlcmltZW50 IHsgdGVzdF9wcm9iZSBtc2cgfSB7CisrICAgIGdsb2JhbCBnZGJfcHJvbXB0CisrCisrICAgIHNl dCB0ZXN0ICJjb2xsZWN0ICRtc2c6IHN0YXJ0IHRyYWNlIGV4cGVyaW1lbnQiCisrICAgIGdkYl90 ZXN0X211bHRpcGxlICJ0c3RhcnQiICIkdGVzdCIgeworKwktcmUgIl50c3RhcnRcclxuJGdkYl9w cm9tcHQgJCIgeworKwkgICAgcGFzcyAiJHRlc3QiCisrCX0KKysgICAgfQorKworKyAgICBnZGJf dGVzdCAiY29udGludWUiIFwKKysJICAgICJDb250aW51aW5nLipCcmVha3BvaW50IFxbMC05XF0r LioiIFwKKysJICAgICJjb2xsZWN0ICRtc2c6IHJ1biB0cmFjZSBleHBlcmltZW50IgorKyAgICBn ZGJfdGVzdCAidHN0b3AiIFwKKysJICAgICJcW1xyXG5cXSsiIFwKKysJICAgICJjb2xsZWN0ICRt c2c6IHN0b3AgdHJhY2UgZXhwZXJpbWVudCIKKysgICAgZ2RiX3Rlc3QgInRmaW5kIHN0YXJ0IiBc CisrCSAgICAiIzAgLioiIFwKKysJICAgICJjb2xsZWN0ICRtc2c6IHRmaW5kIHRlc3QgZnJhbWUi CisrfQorKworK3Byb2MgZ2RiX2NvbGxlY3RfcHJvYmVfYXJnIHsgbXNnIHByb2JlIHZhbF9hcmcw IH0geworKyAgICBnbG9iYWwgZ2RiX3Byb21wdAorKyAgICBnbG9iYWwgY3IKKysKKysgICAgcHJl cGFyZV9mb3JfdHJhY2VfdGVzdAorKworKyAgICBnZGJfdGVzdCAidHJhY2UgJHByb2JlIiBcCisr CSAgICAiVHJhY2Vwb2ludCBcWzAtOVxdKyBhdCAuKiIgXAorKwkgICAgImNvbGxlY3QgJG1zZzog c2V0IHRyYWNlcG9pbnQiCisrICAgIGdkYl90cmFjZV9zZXRhY3Rpb25zICJjb2xsZWN0ICRtc2c6 IGRlZmluZSBhY3Rpb25zIiBcCisrCSAgICAiIiBcCisrCSAgICAiY29sbGVjdCBcJF9wcm9iZV9h cmcwIiAiXiQiCisrCisrICAgICMgQmVnaW4gdGhlIHRlc3QuCisrICAgIHJ1bl90cmFjZV9leHBl cmltZW50ICRtc2cgJHByb2JlCisrCisrICAgIGdkYl90ZXN0ICJwcmludCBcJF9wcm9iZV9hcmcw IiBcCisrCSAgICAiXFwkXFswLTlcXSsgPSAkdmFsX2FyZzAkY3IiIFwKKysJICAgICJjb2xsZWN0 ICRtc2c6IGNvbGxlY3RlZCBwcm9iZSBhcmcwIgorK30KKysKKytjb21waWxlX3N0YXBfYmluICIi CisrCisrY2xlYW5fcmVzdGFydCAkZXhlY3V0YWJsZQorK2lmIHsgIVtydW50b19tYWluXSB9IHsK KysgICAgcGVycm9yICJDb3VsZCBub3QgcnVuIHRvIGBtYWluJy4iCisrICAgIGNvbnRpbnVlCisr fQorKworK2lmIHsgIVtnZGJfdGFyZ2V0X3N1cHBvcnRzX3RyYWNlXSB9IHsKKysgICAgIyBUZXN0 IGNhbm5vdCBydW4gb24gdGhpcyB0YXJnZXQuCisrICAgIHJldHVybiAxOworK30KKysKKytnZGJf Y29sbGVjdF9wcm9iZV9hcmcgInByb2JlIGFyZ3Mgd2l0aG91dCBzZW1hcGhvcmUiICJwcm9iZTp1 c2VyIiAiMjMiCisrZ2RiX2V4aXQKKysKKytjb21waWxlX3N0YXBfYmluICItRFVTRV9QUk9CRVMi CisrZ2RiX2NvbGxlY3RfcHJvYmVfYXJnICJwcm9iZSBhcmdzIHdpdGggc2VtYXBob3JlIiAicHJv YmU6dHdvIiAiNDYiCisrCisrIyBGaW5pc2hlZCEKKytnZGJfdGVzdCAidGZpbmQgbm9uZSIgIi4q IiAiIgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAgYi9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCi1pbmRleCA2YTJmMWEyLi5jNzVhN2YwIDEwMDY0NAoraW5kZXggYTUx MjUyNy4uNjU0ZTNjOSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICsr KyBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKIEBAIC0xNDEsNiArMTQxLDExIEBAIHByb2Mg Z2RiX3VubG9hZCB7fSB7CkBAIC0xNTY0NywxMCArMTYwOTIsNTggQEAgaW5kZXggYTI1NTUwZi4u ODdmMGI0MSAxMDA2NDQKICAgIC8qIFdpdGggbXVsdGlwbGUgdGhyZWFkcyBydW5uaW5nIHdoaWxl IHRoZSBvbmUgd2UncmUgZXhhbWluaW5nIGlzCiAgICAgICBzdG9wcGVkLCB0aGUgZGNhY2hlIGNh biBnZXQgc3RhbGUgd2l0aG91dCB1cyBiZWluZyBhYmxlIHRvIGRldGVjdAogZGlmZiAtLWdpdCBh L2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCi1pbmRleCAzYWUzNWQwLi5lMWQy ZTgyIDEwMDY0NAoraW5kZXggM2FlMzVkMC4uZDNjZDU5MyAxMDA2NDQKIC0tLSBhL2dkYi90cmFj ZXBvaW50LmMKICsrKyBiL2dkYi90cmFjZXBvaW50LmMKLUBAIC00NDk3LDcgKzQ0OTcsOCBAQCBp bmZvX3N0YXRpY190cmFjZXBvaW50X21hcmtlcnNfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJv bV90dHkpCitAQCAtMTYwMCw2ICsxNjAwLDggQEAgc3RhcnRfdHJhY2luZyAodm9pZCkKKyAKKyAg IGZvciAoaXggPSAwOyBWRUNfaXRlcmF0ZSAoYnJlYWtwb2ludF9wLCB0cF92ZWMsIGl4LCB0KTsg aXgrKykKKyAgICAgeworKyAgICAgIHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jOworKworICAgICAg IGlmICgodC0+dHlwZSA9PSBicF9mYXN0X3RyYWNlcG9pbnQKKyAJICAgPyAhbWF5X2luc2VydF9m YXN0X3RyYWNlcG9pbnRzCisgCSAgIDogIW1heV9pbnNlcnRfdHJhY2Vwb2ludHMpKQorQEAgLTE2 MDgsNiArMTYxMCw5IEBAIHN0YXJ0X3RyYWNpbmcgKHZvaWQpCisgICAgICAgdC0+bnVtYmVyX29u X3RhcmdldCA9IDA7CisgICAgICAgdGFyZ2V0X2Rvd25sb2FkX3RyYWNlcG9pbnQgKHQpOworICAg ICAgIHQtPm51bWJlcl9vbl90YXJnZXQgPSB0LT5udW1iZXI7CisrCisrICAgICAgZm9yIChsb2Mg PSB0LT5sb2M7IGxvYzsgbG9jID0gbG9jLT5uZXh0KQorKwltb2RpZnlfc2VtYXBob3JlIChsb2Ms IDEpOworICAgICB9CisgICBWRUNfZnJlZSAoYnJlYWtwb2ludF9wLCB0cF92ZWMpOworIAorQEAg LTE2NjksNyArMTY3NCwyOCBAQCB0cmFjZV9zdG9wX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBm cm9tX3R0eSkKKyB2b2lkCisgc3RvcF90cmFjaW5nICh2b2lkKQorIHsKKysgIFZFQyhicmVha3Bv aW50X3ApICp0cF92ZWMgPSBOVUxMOworKyAgaW50IGl4OworKyAgc3RydWN0IGJyZWFrcG9pbnQg KnQ7CisrCisgICB0YXJnZXRfdHJhY2Vfc3RvcCAoKTsKKysKKysgIHRwX3ZlYyA9IGFsbF90cmFj ZXBvaW50cyAoKTsKKysgIGZvciAoaXggPSAwOyBWRUNfaXRlcmF0ZSAoYnJlYWtwb2ludF9wLCB0 cF92ZWMsIGl4LCB0KTsgaXgrKykKKysgICAgeworKyAgICAgIHN0cnVjdCBicF9sb2NhdGlvbiAq bG9jOworKworKyAgICAgIGlmICgodC0+dHlwZSA9PSBicF9mYXN0X3RyYWNlcG9pbnQKKysJICAg PyAhbWF5X2luc2VydF9mYXN0X3RyYWNlcG9pbnRzCisrCSAgIDogIW1heV9pbnNlcnRfdHJhY2Vw b2ludHMpKQorKwljb250aW51ZTsKKysKKysgICAgICBmb3IgKGxvYyA9IHQtPmxvYzsgbG9jOyBs b2MgPSBsb2MtPm5leHQpCisrCW1vZGlmeV9zZW1hcGhvcmUgKGxvYywgMCk7CisrICAgIH0KKysK KysgIFZFQ19mcmVlIChicmVha3BvaW50X3AsIHRwX3ZlYyk7CisrCisgICAvKiBTaG91bGQgY2hh bmdlIGluIHJlc3BvbnNlIHRvIHJlcGx5PyAgKi8KKyAgIGN1cnJlbnRfdHJhY2Vfc3RhdHVzICgp LT5ydW5uaW5nID0gMDsKKyB9CitAQCAtNDQ5Nyw3ICs0NTIzLDggQEAgaW5mb19zdGF0aWNfdHJh Y2Vwb2ludF9tYXJrZXJzX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogICAgIGF2 YWlsYWJsZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0xNTY2MCw3ICsxNjE1 Myw3IEBAIGluZGV4IDNhZTM1ZDAuLmUxZDJlODIgMTAwNjQ0CiAgewogICAgTE9OR0VTVCBzaXpl OwogICAgZ2RiX2J5dGUgKmJ1ZjsKLUBAIC00Njc2LDYgKzQ2NzcsMTMgQEAgdHJhY2VmcmFtZV9h dmFpbGFibGVfbWVtb3J5IChWRUMobWVtX3JhbmdlX3MpICoqcmVzdWx0LAorQEAgLTQ2NzYsNiAr NDcwMywxMyBAQCB0cmFjZWZyYW1lX2F2YWlsYWJsZV9tZW1vcnkgKFZFQyhtZW1fcmFuZ2Vfcykg KipyZXN1bHQsCiAgICByZXR1cm4gMDsKICB9CiAgCkBAIC0xNTY3NCw3ICsxNjE2Nyw3IEBAIGlu ZGV4IDNhZTM1ZDAuLmUxZDJlODIgMTAwNjQ0CiAgLyogbW9kdWxlIGluaXRpYWxpemF0aW9uICov CiAgdm9pZAogIF9pbml0aWFsaXplX3RyYWNlcG9pbnQgKHZvaWQpCi1AQCAtNDY4Niw3ICs0Njk0 LDcgQEAgX2luaXRpYWxpemVfdHJhY2Vwb2ludCAodm9pZCkKK0BAIC00Njg2LDcgKzQ3MjAsNyBA QCBfaW5pdGlhbGl6ZV90cmFjZXBvaW50ICh2b2lkKQogICAgICAgdmFsdWUgd2l0aCBhIHZvaWQg dHlwZWQgdmFsdWUsIGFuZCB3aGVuIHdlIGdldCBoZXJlLCBnZGJhcmNoCiAgICAgICBpc24ndCBp bml0aWFsaXplZCB5ZXQuICBBdCB0aGlzIHBvaW50LCB3ZSdyZSBxdWl0ZSBzdXJlIHRoZXJlCiAg ICAgICBpc24ndCBhbm90aGVyIGNvbnZlbmllbmNlIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUu ICAqLwpAQCAtMTYwMzcsNyArMTY1MzAsNyBAQCBpbmRleCAyODZlZjllLi4xZmU1OGIxIDEwMDY0 NAogIAogIC8qIFJlYWQgTEVOIGJ5dGVzIG9mIHRhcmdldCBtZW1vcnkgYXQgYWRkcmVzcyBNRU1B RERSLCBwbGFjaW5nIHRoZQogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5jIGIvZ2RiL3ZhbHVlLmMK LWluZGV4IDJhY2IxZGYuLmFiZTc3NGUgMTAwNjQ0CitpbmRleCAyYWNiMWRmLi5jZjhkZGEwIDEw MDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmMKICsrKyBiL2dkYi92YWx1ZS5jCiBAQCAtNDMsNiArNDMs NyBAQApAQCAtMTYyNTAsNyArMTY3NDMsMzMgQEAgaW5kZXggMmFjYjFkZi4uYWJlNzc0ZSAxMDA2 NDQKICAgICAgICBicmVhazsKICAKICAgICAgY2FzZSBJTlRFUk5BTFZBUl9WQUxVRToKLUBAIC0z MDQ3LDcgKzMxNDUsMjQgQEAgdmFsdWVfZnJvbV9oaXN0b3J5X3JlZiAoY2hhciAqaCwgY2hhciAq KmVuZHApCitAQCAtMjA4MCwxNCArMjE3OCwyMiBAQCBzaG93X2NvbnZlbmllbmNlIChjaGFyICpp Z25vcmUsIGludCBmcm9tX3R0eSkKKyAgIGdldF91c2VyX3ByaW50X29wdGlvbnMgKCZvcHRzKTsK KyAgIGZvciAodmFyID0gaW50ZXJuYWx2YXJzOyB2YXI7IHZhciA9IHZhci0+bmV4dCkKKyAgICAg eworKyAgICAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7CisrCisgICAgICAgaWYg KCF2YXJzZWVuKQorIAl7CisgCSAgdmFyc2VlbiA9IDE7CisgCX0KKyAgICAgICBwcmludGZfZmls dGVyZWQgKCgiJCVzID0gIiksIHZhci0+bmFtZSk7CistICAgICAgdmFsdWVfcHJpbnQgKHZhbHVl X29mX2ludGVybmFsdmFyIChnZGJhcmNoLCB2YXIpLCBnZGJfc3Rkb3V0LAorLQkJICAgJm9wdHMp OworLSAgICAgIHByaW50Zl9maWx0ZXJlZCAoKCJcbiIpKTsKKysKKysgICAgICBUUllfQ0FUQ0gg KGUsIFJFVFVSTl9NQVNLX0VSUk9SKQorKwl7CisrCSAgdmFsdWVfcHJpbnQgKHZhbHVlX29mX2lu dGVybmFsdmFyIChnZGJhcmNoLCB2YXIpLCBnZGJfc3Rkb3V0LAorKwkJICAgICAgICZvcHRzKTsK KysJICBwcmludGZfZmlsdGVyZWQgKCgiXG4iKSk7CisrCX0KKysgICAgICBpZiAoZS5yZWFzb24g PCAwKQorKwlwcmludGZfZmlsdGVyZWQgKF8oIjxlcnJvcjogJXM+XG4iKSwgZS5tZXNzYWdlKTsK KyAgICAgfQorICAgaWYgKCF2YXJzZWVuKQorICAgICBwcmludGZfdW5maWx0ZXJlZCAoXygiTm8g ZGVidWdnZXIgY29udmVuaWVuY2UgdmFyaWFibGVzIG5vdyBkZWZpbmVkLlxuIgorQEAgLTMwNDcs NyArMzE1MywyNCBAQCB2YWx1ZV9mcm9tX2hpc3RvcnlfcmVmIChjaGFyICpoLCBjaGFyICoqZW5k cCkKICBzdHJ1Y3QgdmFsdWUgKgogIGNvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqYXJnKQogIHsK QEAgLTE2Mjc2LDcgKzE2Nzk1LDcgQEAgaW5kZXggMmFjYjFkZi4uYWJlNzc0ZSAxMDA2NDQKICAK ICAgIGlmIChUWVBFX0NPREUgKHZhbHVlX3R5cGVfYXJnX3RtcCkgPT0gVFlQRV9DT0RFX1JFRikK ICAgICAgYXJnID0gdmFsdWVfYXRfbGF6eSAoVFlQRV9UQVJHRVRfVFlQRSAodmFsdWVfdHlwZV9h cmdfdG1wKSwKLUBAIC0zMTQ1LDQgKzMyNjAsMTAgQEAgVkFSSUFCTEUgaXMgYWxyZWFkeSBpbml0 aWFsaXplZC4iKSk7CitAQCAtMzE0NSw0ICszMjY4LDEwIEBAIFZBUklBQkxFIGlzIGFscmVhZHkg aW5pdGlhbGl6ZWQuIikpOwogICAgYWRkX3ByZWZpeF9jbWQgKCJmdW5jdGlvbiIsIG5vX2NsYXNz LCBmdW5jdGlvbl9jb21tYW5kLCBfKCJcCiAgUGxhY2Vob2xkZXIgY29tbWFuZCBmb3Igc2hvd2lu ZyBoZWxwIG9uIGNvbnZlbmllbmNlIGZ1bmN0aW9ucy4iKSwKICAJCSAgJmZ1bmN0aW9ubGlzdCwg ImZ1bmN0aW9uICIsIDAsICZjbWRsaXN0KTsKCmRpZmYgLS1naXQgYS9nZGItcmhlbDUtY29tcGF0 LnBhdGNoIGIvZ2RiLXJoZWw1LWNvbXBhdC5wYXRjaAppbmRleCBmMjY5YjM5Li43ZGVmZGRiIDEw MDY0NAotLS0gYS9nZGItcmhlbDUtY29tcGF0LnBhdGNoCisrKyBiL2dkYi1yaGVsNS1jb21wYXQu cGF0Y2gKQEAgLTEsMTEgKzEsMTEgQEAKIGdkYi9saW51eC1uYXQuYzoKIC0gV29ya2Fyb3VuZCBS SEVMLTUga2VybmVscyBmb3IgZGV0YWNoaW5nIFNJR1NUT1BwZWQgcHJvY2Vzc2VzIChCWiA0OTg1 OTUpLgogCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxmcmVhZC5jCitJbmRleDog Z2RiLTcuMi41MC4yMDExMDMyOC9nZGIvZWxmcmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Mi41MC4yMDExMDEwNC5vcmlnL2dkYi9lbGZyZWFkLmMJMjAxMS0wMS0wNCAwNjoxNTo1OS4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9lbGZyZWFkLmMJMjAxMS0w MS0wNCAwNjoxNzo1NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC04MzIsNyArODMyLDcgQEAgcmVzb2x2 ZV9nbnVfaWZ1bmMgKGNvbnN0IGNoYXIgKmZ1bmN0aW9uXworLS0tIGdkYi03LjIuNTAuMjAxMTAz Mjgub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTEtMDMtMjggMTg6NDY6MTYuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvZWxmcmVhZC5jCTIwMTEtMDMtMjggMTg6NDg6 MTkuMDAwMDAwMDAwICswMjAwCitAQCAtMTA4Myw3ICsxMDgzLDcgQEAgZWxmX2dudV9pZnVuY19y ZXNvbHZlcl9yZXR1cm5fc3RvcCAoc3RydQogICNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9OT05F IDAKICAjZGVmaW5lIEJVSUxEX0lEX1ZFUkJPU0VfRklMRU5BTUVTIDEKICAjZGVmaW5lIEJVSUxE X0lEX1ZFUkJPU0VfQklOQVJZX1BBUlNFIDIKQEAgLTE0LDkgKzE0LDkgQEAgSW5kZXg6IGdkYi03 LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwogIHN0YXRpYyB2b2lkCiAgc2hvd19idWlsZF9p ZF92ZXJib3NlIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAogIAkJICAgICAg IHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1ZSkKLUBAIC0xOTIw LDggKzE5MjAsMTAgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgot ICAgICAgIC8qIFByZXZlbnQgbG9vcGluZyBvbiBhIHN0cmlwcGVkIC5kZWJ1ZyBmaWxlLiAgKi8K LSAgICAgICBpZiAoYnVpbGRfaWRfbmFtZSAhPSBOVUxMICYmIHN0cmNtcCAoYnVpbGRfaWRfbmFt ZSwgb2JqZmlsZS0+bmFtZSkgPT0gMCkKK0BAIC0yMTczLDggKzIxNzMsMTAgQEAgZmluZF9zZXBh cmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgorICAgICAgIGlmIChidWlsZF9pZF9uYW1l ICE9IE5VTEwKKyAJICAmJiBmaWxlbmFtZV9jbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5h bWUpID09IDApCiAgICAgICAgICB7CiArI2lmIDAgLyogUkhFTC01IGJhY2t3YXJkIGJlaGF2aW9y IGNvbXBhdGliaWxpdHkuICAqLwogIAkgIHdhcm5pbmcgKF8oIlwiJXNcIjogc2VwYXJhdGUgZGVi dWcgaW5mbyBmaWxlIGhhcyBubyBkZWJ1ZyBpbmZvIiksCkBAIC0yNSwxMSArMjUsMTEgQEAgSW5k ZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwogIAkgIHhmcmVlIChidWlsZF9p ZF9uYW1lKTsKICAJfQogICAgICAgIGVsc2UgaWYgKGJ1aWxkX2lkX25hbWUgIT0gTlVMTCkKLUlu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKK0luZGV4OiBnZGItNy4yLjUw LjIwMTEwMzI4L2dkYi9jb3JlbG93LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEw MTA0Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDExLTAxLTA0IDA2OjE1OjU3LjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2NvcmVsb3cuYwkyMDExLTAxLTA0IDA2OjE4 OjA4LjAwMDAwMDAwMCArMDEwMAotQEAgLTI4MCw3ICsyODAsNyBAQCBhZGRfdG9fdGhyZWFkX2xp c3QgKGJmZCAqYWJmZCwgYXNlY3Rpb24gCistLS0gZ2RiLTcuMi41MC4yMDExMDMyOC5vcmlnL2dk Yi9jb3JlbG93LmMJMjAxMS0wMy0yOCAxODo0NjoxNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ny4yLjUwLjIwMTEwMzI4L2dkYi9jb3JlbG93LmMJMjAxMS0wMy0yOCAxODo0Nzo1Ni4wMDAwMDAw MDAgKzAyMDAKK0BAIC0yODIsNyArMjgyLDcgQEAgYWRkX3RvX3RocmVhZF9saXN0IChiZmQgKmFi ZmQsIGFzZWN0aW9uIAogICAgICBpbmZlcmlvcl9wdGlkID0gcHRpZDsJCQkvKiBZZXMsIG1ha2Ug aXQgY3VycmVudC4gICovCiAgfQogIApAQCAtMzgsMTEgKzM4LDExIEBAIEluZGV4OiBnZGItNy4y LjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKICAKICBzdGF0aWMgdm9pZAogIGJ1aWxkX2lkX2xv Y2F0ZV9leGVjIChpbnQgZnJvbV90dHkpCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIv bGludXgtbmF0LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9saW51eC1uYXQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDQub3JpZy9nZGIvbGludXgtbmF0LmMJ MjAxMS0wMS0wNCAwNjoxNTo1OS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEw MTA0L2dkYi9saW51eC1uYXQuYwkyMDExLTAxLTA0IDA2OjE3OjU0LjAwMDAwMDAwMCArMDEwMAot QEAgLTE3NjIsOCArMTc2MiwyMiBAQCBHUFQ6IGx3cCAlcyBoYWQgc2lnbmFsICVzLCBidXQgaXQg aXMgaW4gCistLS0gZ2RiLTcuMi41MC4yMDExMDMyOC5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDEx LTAzLTI4IDE4OjQ2OjE2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuNTAuMjAxMTAzMjgv Z2RiL2xpbnV4LW5hdC5jCTIwMTEtMDMtMjggMTg6NDc6NTYuMDAwMDAwMDAwICswMjAwCitAQCAt MTc3NCw4ICsxNzc0LDIyIEBAIGdldF9wZW5kaW5nX3N0YXR1cyAoc3RydWN0IGx3cF9pbmZvICps cCwKICAJCQkgICAgdGFyZ2V0X3NpZ25hbF90b19zdHJpbmcgKHNpZ25vKSk7CiAgICAgIH0KICAK CmRpZmYgLS1naXQgYS9nZGItc3RhcC13YXJuaW5ncy5wYXRjaCBiL2dkYi1zdGFwLXdhcm5pbmdz LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4ZTA3ZTA4Li4wMDAwMDAwCi0t LSBhL2dkYi1zdGFwLXdhcm5pbmdzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBA QAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2FyY2hlci8yMDExLXExL21zZzAwMTM2Lmh0bWwK LVN1YmplY3Q6IGFyY2hlci1zZXJnaW9kai1zdGFwIC1PMiAtV2FsbCB3YXJuaW5ncz1lcnJvcnMK LQotSGkgU2VyZ2lvLAotCi13aXRoIC1PMiAoK3NvbWUgLVdhbGwgb3Igc28gb3B0aW9ucyBwb3Nz aWJseSAtIHdoYXQgYXBwbGllcyBmb3IgRmVkb3JhIGJ1aWxkcykKLW9uZSBnZXRzOgotCi1nY2Mt NC42LjAtMC4xNC5mYzE1Lng4Nl82NAotc3RhcC1wcm9iZS5jOiBJbiBmdW5jdGlvbiAbJEIhRhso QnN0YXBfZmV0Y2hfcmVnX3ZhbHVlGyRCIUcbKEI6Ci1zdGFwLXByb2JlLmM6OTIzOjEyOiBlcnJv cjogGyRCIUYbKEJhb3AbJEIhRxsoQiBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMg ZnVuY3Rpb24gWy1XZXJyb3I9dW5pbml0aWFsaXplZF0KLXN0YXAtcHJvYmUuYzo5MTk6MTA6IGVy cm9yOiAbJEIhRhsoQnJldBskQiFHGyhCIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhp cyBmdW5jdGlvbiBbLVdlcnJvcj11bmluaXRpYWxpemVkXQotc3RhcC1wcm9iZS5jOiBJbiBmdW5j dGlvbiAbJEIhRhsoQnN0YXBfZXZhbHVhdGVfY29uZGl0aW9uYWxseRskQiFHGyhCOgotc3RhcC1w cm9iZS5jOjExODQ6MzogZXJyb3I6IBskQiFGGyhCcmVzGyRCIUcbKEIgbWF5IGJlIHVzZWQgdW5p bml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV2Vycm9yPXVuaW5pdGlhbGl6ZWRdCi0KLVRo ZSBhdHRhY2hlZCBwYXRjaCBuZWVkcyBhIHJldmlldywgSSBoYXZlIG9ubHkgYnJpZWZseSBjaGVj a2VkIGl0IGlzIG5vdAotY29tcGxldGVseSBib2d1cy4KLQotCi1UaGFua3MsCi1KYW4KLQotCi0t LS0gYS9nZGIvc3RhcC1wcm9iZS5jCi0rKysgYi9nZGIvc3RhcC1wcm9iZS5jCi1AQCAtNzgwLDcg Kzc4MCw5IEBAIHN0YXBfZmV0Y2hfcmVnX3ZhbHVlIChzdHJ1Y3Qgc3RhcF9ldmFsdWF0aW9uX2lu Zm8gKmV2YWxfaW5mbywKLSAjZGVmaW5lIFJFR19OQU1FX01BWF9TSVpFIDIwCi0gICBjaGFyIHJl Z25hbWVbUkVHX05BTUVfTUFYX1NJWkUgKyAxXTsKLSAgIGludCBsZW4sIHJlZ251bSwgaW5kaXJl Y3RfcCA9IDA7Ci0tICBzdHJ1Y3QgdmFsdWUgKnJldDsKLSsgIC8qIEdDQyBmYWxzZSB3YXJuaW5n OiAbJEIhRhsoQnJldBskQiFHGyhCIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBm dW5jdGlvbgotKyAgICAgKi8KLSsgIHN0cnVjdCB2YWx1ZSAqcmV0ID0gTlVMTDsKLSAgIAotICAg LyogVGhlIGZ1bmN0aW9uIHdoaWNoIGNhbGxlZCB1cyBkaWQgbm90IGNoZWNrIGlmIHRoZSBleHBy ZXNzaW9uCi0gICAgICBidWZmZXIgd2FzIGVtcHR5LiAgKi8KLUBAIC04NTEsNyArODUzLDkgQEAg c3RhcF9mZXRjaF9yZWdfdmFsdWUgKHN0cnVjdCBzdGFwX2V2YWx1YXRpb25faW5mbyAqZXZhbF9p bmZvLAotICAgaWYgKGluZGlyZWN0X3ApCi0gICAgIHsKLSAgICAgICBzdHJ1Y3QgdHlwZSAqdCA9 IE5VTEw7Ci0tICAgICAgZW51bSBhZ2VudF9vcCBhb3A7Ci0rICAgICAgLyogR0NDIGZhbHNlIHdh cm5pbmc6IBskQiFGGyhCYW9wGyRCIUcbKEIgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0 aGlzIGZ1bmN0aW9uLgotKyAgICAgICAgICovCi0rICAgICAgZW51bSBhZ2VudF9vcCBhb3AgPSAw OwotIAotICAgICAgIC8qIElmIHRoZSB1c2VyIGhhcyBzcGVjaWZpZWQgdGhhdCB0aGUgcmVnaXN0 ZXIgbXVzdCBiZSBpbmRpcmVjdGVkLAotIAkgd2Ugc2hvdWxkIGtub3cgd2hhdCdzIHRoZSBjb3Jy ZWN0IHR5cGUgdG8gY2FzdCBpdCBiZWZvcmUgbWFraW5nCi1AQCAtOTQ5LDcgKzk1Myw5IEBAIHN0 YXBfZXZhbHVhdGVfc2luZ2xlX29wZXJhbmQgKHN0cnVjdCBzdGFwX2V2YWx1YXRpb25faW5mbyAq ZXZhbF9pbmZvKQotICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBldmFsX2luZm8tPmdkYmFy Y2g7Ci0gICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBldmFsX2luZm8tPmZyYW1lOwotICAg ZW51bSBzdGFwX2FyZ19iaXRuZXNzIGJpdG5lc3MgPSBldmFsX2luZm8tPmJpdG5lc3M7Ci0tICBz dHJ1Y3QgdmFsdWUgKnJlczsKLSsgIC8qIEdDQyBmYWxzZSB3YXJuaW5nOiAbJEIhRhsoQnJlcxsk QiFHGyhCIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgotKyAgICAg Ki8KLSsgIHN0cnVjdCB2YWx1ZSAqcmVzID0gTlVMTDsKLSAKLSAgIHN3aXRjaCAoKmV2YWxfaW5m by0+ZXhwX2J1ZikKLSAgICAgewotCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwpp bmRleCBmZWU5ZDc1Li41NGIyYmIyIDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3Bl YwpAQCAtMjMsMTEgKzIzLDExIEBAIE5hbWU6IGdkYiV7P193aXRoX2RlYnVnOi1kZWJ1Z30KICMg U2V0IHZlcnNpb24gdG8gY29udGVudHMgb2YgZ2RiL3ZlcnNpb24uaW4uCiAjIE5PVEU6IHRoZSBG U0YgZ2RiIHZlcnNpb25zIGFyZSBudW1iZXJlZCBOLk0gZm9yIG9mZmljaWFsIHJlbGVhc2VzLCBs aWtlIDYuMwogIyBhbmQsIHNpbmNlIEphbnVhcnkgMjAwNSwgWC5ZLlouZGF0ZSBmb3IgZGFpbHkg c25hcHNob3RzLCBsaWtlIDYuMy41MC4yMDA1MDExMiAjIChkYWlseSBzbmFwc2hvdCBmcm9tIG1h aWxpbmUpLCBvciA2LjMuMC4yMDA0MDExMiAoaGVhZCBvZiB0aGUgcmVsZWFzZSBicmFuY2gpLgot VmVyc2lvbjogNy4yLjUwLjIwMTEwMzIwCitWZXJzaW9uOiA3LjIuNTAuMjAxMTAzMjgKIAogIyBU aGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3Rh cnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5 IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxl YXNlOiAzMCV7P193aXRoX3Vwc3RyZWFtOi51cHN0cmVhbX0lez9kaXN0fQorUmVsZWFzZTogMzEl ez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFu ZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2Vw dGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbgogR3Jv dXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtOTIsMTEgKzkyLDkgQEAgU291cmNlMzogZ2Ri LWdzdGFjay5tYW4KICM9ZmVkb3JhCiBTb3VyY2U0OiBnZGJpbml0CiAKLSVpZiAwJXs/cmhlbDox fQogIyBsaWJzdGRjKysgcHJldHR5IHByaW50ZXJzIGZyb20gR0NDIFNWTiBIRUFEICg0LjUgZXhw ZXJpbWVudGFsKS4KICVkZWZpbmUgbGlic3RkY3h4cHl0aG9uIGxpYnN0ZGMrKy12My1weXRob24t cjE1NTk3OAotU291cmNlNDogJXtsaWJzdGRjeHhweXRob259LnRhci5iejIKLSVlbmRpZiAjIDAl ez9yaGVsOjF9CitTb3VyY2U1OiAle2xpYnN0ZGN4eHB5dGhvbn0udGFyLmJ6MgogCiAjIFdvcmsg YXJvdW5kIG91dC1vZi1kYXRlIGRlamFnbnUgdGhhdCBkb2VzIG5vdCBoYXZlIEtGQUlMCiAjPWRy b3A6IFRoYXQgZGVqYWdudSBpcyB0b28gb2xkIHRvIGJlIHN1cHBvcnRlZC4KQEAgLTU1OCwxMiAr NTU2LDYgQEAgUGF0Y2g1NzI6IGdkYi1jb3JlLXRocmVhZC1pbnRlcm5hbGVyci0xb2YzLnBhdGNo CiBQYXRjaDU3MzogZ2RiLWNvcmUtdGhyZWFkLWludGVybmFsZXJyLTJvZjMucGF0Y2gKIFBhdGNo NTc0OiBnZGItY29yZS10aHJlYWQtaW50ZXJuYWxlcnItM29mMy5wYXRjaAogCi0jIFtzdGFwXSBG aXggLU8yIHdhcm5pbmdzLgotUGF0Y2g1NzY6IGdkYi1zdGFwLXdhcm5pbmdzLnBhdGNoCi0KLSMg Rml4IEFkYSBzdXBwb3J0IGNyYXNoIG9uIHVuaW5pdGlhbGl6ZWQgZ2RiYXJjaC4KLVBhdGNoNTc3 OiBnZGItYWRhLWdkYmFyY2gtY3Jhc2gucGF0Y2gKLQogQnVpbGRSZXF1aXJlczogbmN1cnNlcy1k ZXZlbCV7P19pc2F9IHRleGluZm8gZ2V0dGV4dCBmbGV4IGJpc29uIGV4cGF0LWRldmVsJXs/X2lz YX0KIFJlcXVpcmVzOiByZWFkbGluZSV7P19pc2F9CiBCdWlsZFJlcXVpcmVzOiByZWFkbGluZS1k ZXZlbCV7P19pc2F9CkBAIC03MDYsNyArNjk4LDcgQEAgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIElO Rk8sIEhUTUwgYW5kIFBERiB1c2VyIG1hbnVhbCBmb3IgR0RCLgogCiAlaWYgMCV7P3JoZWw6MX0K ICMgbGlic3RkYysrIHByZXR0eSBwcmludGVycy4KLXRhciB4amYgJXtTT1VSQ0U0fQordGFyIHhq ZiAle1NPVVJDRTV9CiAlZW5kaWYgIyAwJXs/cmhlbDoxfQogCiAjIEZpbGVzIGhhdmUgYCMgPG51 bWJlcj4gPGZpbGU+JyBzdGF0ZW1lbnRzIGJyZWFraW5nIFZQQVRIIC8gZmluZC1kZWJ1Z2luZm8u c2ggLgpAQCAtODM1LDggKzgyNyw2IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMg Z2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKICVwYXRjaDU3MiAtcDEKICVwYXRjaDU3MyAtcDEK ICVwYXRjaDU3NCAtcDEKLSVwYXRjaDU3NiAtcDEKLSVwYXRjaDU3NyAtcDEKIAogJXBhdGNoMzkw IC1wMQogJXBhdGNoMzkzIC1wMQpAQCAtMTI2Miw2ICsxMjUyLDEwIEBAIGZpCiAle19pbmZvZGly fS9nZGIuaW5mbyoKIAogJWNoYW5nZWxvZworKiBNb24gTWFyIDI4IDIwMTEgSmFuIEtyYXRvY2h2 aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4yLjUwLjIwMTEwMzI4LTMxLmZjMTUK Ky0gUmViYXNlIHRvIEZTRiBHREIgNy4yLjUwLjIwMTEwMzI4ICh3aGljaCBpcyBhIDcuMyBwcmUt cmVsZWFzZSkuCistIEJ1bmRsZSAlJXtsaWJzdGRjeHhweXRob259LnRhci5iejIgdW5jb25kaXRp b25hbGx5IC0gZm9yIHJlYnVsZHMgb24gUkhFTHMuCisKICogU3VuIE1hciAyMCAyMDExIEphbiBL cmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMi41MC4yMDExMDMyMC0z MC5mYzE1CiAtIEZpeCB0aHJlYWRpbmcgaW50ZXJuYWwgZXJyb3Igb24gY29ycnVwdGVkIG1lbW9y eSAoQlogNjc3NjU0KS4KIC0gRml4IGkzODYgcndhdGNoK2F3YXRjaCBiZWZvcmUgcnVuIChCWiA2 ODg3ODgsIG9uIHRvcCBvZiBCWiA1NDE4NjYpLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3Vy Y2VzCmluZGV4IGZlYzIxYzMuLmU3ZjViYTcgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291 cmNlcwpAQCAtMSwyICsxLDIgQEAKIDA0ZTVjNGIxYjllNjMzNDIyY2M0ODk5MGZlNjE5NThkICBs aWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotY2M0OGQ2MmIyM2I1MzgxNmViOTYz OWE4ZTk1MDRkNDcgIGdkYi03LjIuNTAuMjAxMTAzMjAudGFyLmJ6MgorYjU5MGUwYzEyYTUwNjAx MWVmMmMyN2Y2NzdhYTY5ZjcgIGdkYi03LjIuNTAuMjAxMTAzMjgudGFyLmJ6Mgo=