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] gdb-17.2-rebase-f44: Rebase to FSF GDB 7.4.91.20120801. Date: Sat, 27 Jun 2026 23:55:49 GMT Message-ID: <178260454998.1.2709267293967056720.rpms-gdb-4945b2263dd3@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 4945b2263dd31df6f0999ae1060374e6bb838022 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogNDk0NWIyMjYzZGQzMWRmNmYwOTk5YWUxMDYwMzc0ZTZiYjgz ODAyMgogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMi0wOC0wMVQyMTo0MDoxMiswMjow MAogICAgICAgICAgICBTdGF0cyAgOiArMTA2Ny8tODk2IGluIDEyIGZpbGUocykKICAgICAgICAg ICAgVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy80OTQ1 YjIyNjNkZDMxZGY2ZjA5OTlhZTEwNjAzNzRlNmJiODM4MDIyP2JyYW5jaD1nZGItMTcuMi1yZWJh c2UtZjQ0CgogICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIFJlYmFzZSB0byBGU0YgR0RCIDcu NC45MS4yMDEyMDgwMS4KCi0gW2R3el0gUmViYXNlIGl0IGZyb20gRlNGIEdEQiBIRUFELgoKLS0t CmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCA2NDNhMTVmLi4zMzdh OWJlIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMiArMSwy IEBACiAvbGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy40LjUwLjIw MTIwNzE0LnRhci5iejIKKy9nZGItNy40LjkxLjIwMTIwODAxLnRhci5iejIKCmRpZmYgLS1naXQg YS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoIGIvZ2RiLTYuNi1idWls ZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaAppbmRleCBjMjhiMDAwLi4yZmFhMzA2IDEwMDY0 NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCisrKyBiL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKQEAgLTU4LDEwICs1OCwxMCBA QCBIdHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMS9tc2cwMDUxNy5o dG1sCiAJKiBleGVjLmMgKGV4ZWNfZmlsZV9hdHRhY2gpOiBQcmludCBhIG1vcmUgdXNlZnVsIGVy cm9yIG1lc3NhZ2UgaWYgdGhlCiAJdXNlciBkaWQgImdkYiBjb3JlIi4KIAotSW5kZXg6IGdkYi03 LjQuNTAuMjAxMjA3MDMvZ2RiL2V4Y2VwdGlvbnMuaAorSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4 MDEvZ2RiL2V4Y2VwdGlvbnMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMu b3JpZy9nZGIvZXhjZXB0aW9ucy5oCTIwMTItMDEtMDQgMDk6MTc6MDEuMDAwMDAwMDAwICswMTAw Ci0rKysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvZXhjZXB0aW9ucy5oCTIwMTItMDctMDMgMTc6 MzY6MjcuODQwMjk3MjY0ICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9l eGNlcHRpb25zLmgJMjAxMi0wMS0wNCAwOToxNzowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny40LjkxLjIwMTIwODAxL2dkYi9leGNlcHRpb25zLmgJMjAxMi0wOC0wMSAxODo0MzozOS44MDY5 NTk5OTIgKzAyMDAKIEBAIC04Niw2ICs4Niw5IEBAIGVudW0gZXJyb3JzIHsKICAgIC8qIERXX09Q X0dOVV9lbnRyeV92YWx1ZSByZXNvbHZpbmcgZmFpbGVkLiAgKi8KICAgIE5PX0VOVFJZX1ZBTFVF X0VSUk9SLApAQCAtNzIsMTAgKzcyLDEwIEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dk Yi9leGNlcHRpb25zLmgKICAgIC8qIEFkZCBtb3JlIGVycm9ycyBoZXJlLiAgKi8KICAgIE5SX0VS Uk9SUwogIH07Ci1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvZXhlYy5jCitJbmRleDog Z2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvZXhlYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41 MC4yMDEyMDcwMy5vcmlnL2dkYi9leGVjLmMJMjAxMi0wNy0wMyAxNzozMDowNy4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9leGVjLmMJMjAxMi0wNy0wMyAxNzoz NzoyNy43NzcyMjUxNzUgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL2V4 ZWMuYwkyMDEyLTA4LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEu MjAxMjA4MDEvZ2RiL2V4ZWMuYwkyMDEyLTA4LTAxIDE4OjQ0OjM5LjkyODYyNzI4NyArMDIwMAog QEAgLTM0LDYgKzM0LDcgQEAKICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCiAgI2luY2x1ZGUgInBy b2dzcGFjZS5oIgpAQCAtODQsNyArODQsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9n ZGIvZXhlYy5jCiAgCiAgI2luY2x1ZGUgPGZjbnRsLmg+CiAgI2luY2x1ZGUgInJlYWRsaW5lL3Jl YWRsaW5lLmgiCi1AQCAtMjQ1LDEyICsyNDYsMjcgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAq ZmlsZW5hbWUsIGludCBmcgorQEAgLTI0MiwxMiArMjQzLDI3IEBAIGV4ZWNfZmlsZV9hdHRhY2gg KGNoYXIgKmZpbGVuYW1lLCBpbnQgZnIKICAKICAgICAgICBpZiAoIWJmZF9jaGVja19mb3JtYXRf bWF0Y2hlcyAoZXhlY19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCiAgCXsKQEAgLTExNCwx MSArMTE0LDExIEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9leGVjLmMKICsJCSAg IGdkYl9iZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpLCBtYXRjaGluZykpOwogIAl9CiAgCi0g ICAgICAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAoZXhlY19iZmQpOwotSW5kZXg6IGdkYi03LjQu NTAuMjAxMjA3MDMvZ2RiL21haW4uYworICAgICAgIC8qIEZJWE1FIC0gVGhpcyBzaG91bGQgb25s eSBiZSBydW4gZm9yIFJTNjAwMCwgYnV0IHRoZSBpZmRlZiBpcyBhIHBvb3IKK0luZGV4OiBnZGIt Ny40LjkxLjIwMTIwODAxL2dkYi9tYWluLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIw MTIwNzAzLm9yaWcvZ2RiL21haW4uYwkyMDEyLTA3LTAzIDE3OjMxOjQwLjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL21haW4uYwkyMDEyLTA3LTAzIDE3OjM2OjI3 Ljg0MzI5NzI2MSArMDIwMAorLS0tIGdkYi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIvbWFpbi5j CTIwMTItMDgtMDEgMTg6MzY6NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEy MDgwMS9nZGIvbWFpbi5jCTIwMTItMDgtMDEgMTg6NDM6MzkuODEwOTU5OTcwICswMjAwCiBAQCAt MjY2LDYgKzI2NiwzNiBAQCB0eXBlZGVmIHN0cnVjdCBjbWRhcmcgewogIC8qIERlZmluZSB0eXBl IFZFQyAoY21kYXJnX3MpLiAgKi8KICBERUZfVkVDX08gKGNtZGFyZ19zKTsKQEAgLTE1Niw3ICsx NTYsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvbWFpbi5jCiAgc3RhdGljIGlu dAogIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgewotQEAgLTc2NCw2ICs3OTQsOCBAQCBj YXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTc2Miw2ICs3OTIsOCBAQCBjYXB0dXJlZF9t YWluICh2b2lkICpkYXRhKQogIAl7CiAgCSAgc3ltYXJnID0gYXJndltvcHRpbmRdOwogIAkgIGV4 ZWNhcmcgPSBhcmd2W29wdGluZF07CkBAIC0xNjUsNyArMTY1LDcgQEAgSW5kZXg6IGdkYi03LjQu NTAuMjAxMjA3MDMvZ2RiL21haW4uYwogIAkgIG9wdGluZCsrOwogIAl9CiAgCi1AQCAtOTE5LDEx ICs5NTEsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC05MTcsMTEgKzk0OSwy NSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogICAgICAgICYmIHN5bWFyZyAhPSBOVUxM CiAgICAgICAgJiYgc3RyY21wIChleGVjYXJnLCBzeW1hcmcpID09IDApCiAgICAgIHsKCmRpZmYg LS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxv Y2F0ZS5wYXRjaAppbmRleCBmYTNhYWNhLi5hZGEzMzEwIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAg LTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29yZWxvdy5jCitJ bmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9jb3JlbG93LmMJMjAxMi0wNy0wNiAxNTowNDow NC4zNzg0ODc4NjAgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb3JlbG93LmMJ MjAxMi0wNy0wNiAxNTozODo0MS4yNzI5MDgxMTMgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIw ODAxLm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDEyLTA4LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2NvcmVsb3cuYwkyMDEyLTA4LTAxIDE4OjM3 OjQ0LjU4NDkyNTc1MCArMDIwMAogQEAgLTQ3LDYgKzQ3LDkgQEAKICAjaW5jbHVkZSAicHJvZ3Nw YWNlLmgiCiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCkBAIC02NSw3ICs2NSw3IEBAIEluZGV4OiBn ZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb3JlbG93LmMKICAvKiBUaGlzIHJvdXRpbmUgb3BlbnMg YW5kIHNldHMgdXAgdGhlIGNvcmUgZmlsZSBiZmQuICAqLwogIAogIHN0YXRpYyB2b2lkCi1AQCAt NDIwLDYgKzQ2OSwxNCBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkp CitAQCAtNDE4LDYgKzQ2NywxNCBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJv bV90dHkpCiAgCXN3aXRjaF90b190aHJlYWQgKHRocmVhZC0+cHRpZCk7CiAgICAgIH0KICAKQEAg LTgwLDcgKzgwLDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2NvcmVsb3cuYwog ICAgcG9zdF9jcmVhdGVfaW5mZXJpb3IgKCZjb3JlX29wcywgZnJvbV90dHkpOwogIAogICAgLyog Tm93IGdvIHRocm91Z2ggdGhlIHRhcmdldCBzdGFjayBsb29raW5nIGZvciB0aHJlYWRzIHNpbmNl IHRoZXJlCi1AQCAtOTQxLDQgKzk5OCwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQor QEAgLTkzOSw0ICs5OTYsMTEgQEAgX2luaXRpYWxpemVfY29yZWxvdyAodm9pZCkKICAgIGluaXRf Y29yZV9vcHMgKCk7CiAgCiAgICBhZGRfdGFyZ2V0ICgmY29yZV9vcHMpOwpAQCAtOTIsMTAgKzky LDEwIEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb3JlbG93LmMKICsJCQkgICBO VUxMLCBOVUxMLCBOVUxMLAogKwkJCSAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogIH0KLUluZGV4 OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGItNy40 LjkxLjIwMTIwODAxL2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40 LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEyLTA3LTA2IDE1OjA0OjA0 LjM3ODQ4Nzg2MCArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2RvYy9nZGIudGV4 aW5mbwkyMDEyLTA3LTA2IDE1OjA0OjI2LjA2OTQ2MzMzMCArMDIwMAorLS0tIGdkYi03LjQuOTEu MjAxMjA4MDEub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTItMDgtMDEgMTg6MzY6NTEuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMTItMDgtMDEgMTg6Mzc6NDQuNTk4OTI1NjcyICswMjAwCiBAQCAtMTY1MzAsNiArMTY1MzAs MjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCiAgCiAgQGVuZCB0YWJsZQpAQCAtMTI0LDExICsxMjQs MTEgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBj aW5kZXggQGNvZGV7LmdudV9kZWJ1Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5r IHNlY3Rpb25zCiAgQSBkZWJ1ZyBsaW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBleGVj dXRhYmxlIGZpbGUgbmFtZWQKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9zb2xpYi1z dnI0LmMKK0luZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9zb2xpYi1zdnI0LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDEy LTA3LTA2IDE1OjA0OjA0LjM3ODQ4Nzg2MCArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMv Z2RiL3NvbGliLXN2cjQuYwkyMDEyLTA3LTA2IDE1OjM4OjQxLjQzMzkwNzkyOCArMDIwMAotQEAg LTEyMjcsOSArMTIyNyw1MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBzdHJ1 Y3QKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDEyLTA4 LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2Ri L3NvbGliLXN2cjQuYwkyMDEyLTA4LTAxIDE4OjM3OjQ0LjU5OTkyNTY2NyArMDIwMAorQEAgLTEy MjgsOSArMTIyOCw1MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBzdHJ1Y3QK ICAJICBjb250aW51ZTsKICAJfQogIApAQCAtMTg0LDEwICsxODQsMTAgQEAgSW5kZXg6IGdkYi03 LjQuNTAuMjAxMjA3MDMvZ2RiL3NvbGliLXN2cjQuYwogICAgICAgIHhmcmVlIChidWZmZXIpOwog IAogICAgICAgIC8qIElmIHRoaXMgZW50cnkgaGFzIG5vIG5hbWUsIG9yIGl0cyBuYW1lIG1hdGNo ZXMgdGhlIG5hbWUKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9lbGZyZWFkLmMKK0lu ZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDEyLTA3LTA2IDE1OjA0OjA0 LjM3ODQ4Nzg2MCArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2VsZnJlYWQuYwky MDEyLTA3LTA2IDE1OjM4OjQxLjI3MjkwODExMyArMDIwMAorLS0tIGdkYi03LjQuOTEuMjAxMjA4 MDEub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTItMDgtMDEgMTg6MzY6NTEuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvZWxmcmVhZC5jCTIwMTItMDgtMDEgMTg6Mzg6 MDguOTU2NzkwODc5ICswMjAwCiBAQCAtNDUsNiArNDUsMTEgQEAKICAjaW5jbHVkZSAicmVnY2Fj aGUuaCIKICAjaW5jbHVkZSAiYmNhY2hlLmgiCkBAIC05MzIsOSArOTMyLDkgQEAgSW5kZXg6IGdk Yi03LjQuNTAuMjAxMjA3MDMvZ2RiL2VsZnJlYWQuYwogIAogICAgICAgIGlmIChkZWJ1Z2ZpbGUg PT0gTlVMTCkKICAJZGVidWdmaWxlID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVn bGluayAob2JqZmlsZSk7Ci1AQCAtMTQ1MCw2ICsyMDUzLDEyIEBAIGVsZl9zeW1maWxlX3JlYWQg KHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKK0BAIC0xNDUyLDYgKzIwNTUsMTIgQEAgZWxmX3N5bWZp bGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAogIAkgIHN5bWJvbF9maWxlX2FkZF9zZXBh cmF0ZSAoYWJmZCwgc3ltZmlsZV9mbGFncywgb2JqZmlsZSk7Ci0gCSAgeGZyZWUgKGRlYnVnZmls ZSk7CisgCSAgZG9fY2xlYW51cHMgKGNsZWFudXApOwogIAl9CiArICAgICAgLyogQ2hlY2sgaWYg YW55IHNlcGFyYXRlIGRlYnVnIGluZm8gaGFzIGJlZW4gZXh0cmFjdGVkIG91dC4gICovCiArICAg ICAgZWxzZSBpZiAoYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKG9iamZpbGUtPm9iZmQsICIuZ251 X2RlYnVnbGluayIpCkBAIC05NDUsNyArOTQ1LDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3 MDMvZ2RiL2VsZnJlYWQuYwogICAgICB9CiAgCiAgICBpZiAoc3ltdGFiX2NyZWF0ZV9kZWJ1ZykK LUBAIC0xNzgyLDQgKzIzOTEsMTYgQEAgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCkKK0BAIC0x Nzg0LDQgKzIzOTMsMTYgQEAgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCkKICAKICAgIGVsZl9v YmpmaWxlX2dudV9pZnVuY19jYWNoZV9kYXRhID0gcmVnaXN0ZXJfb2JqZmlsZV9kYXRhICgpOwog ICAgZ251X2lmdW5jX2Zuc19wID0gJmVsZl9nbnVfaWZ1bmNfZm5zOwpAQCAtOTYyLDEwICs5NjIs MTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2VsZnJlYWQuYwogKwogKyAgb2Jz ZXJ2ZXJfYXR0YWNoX2V4ZWN1dGFibGVfY2hhbmdlZCAoZGVidWdfcHJpbnRfZXhlY3V0YWJsZV9j aGFuZ2VkKTsKICB9Ci1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvc3ltZmlsZS5oCitJ bmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9zeW1maWxlLmgJMjAxMi0wNy0wNiAxNTowNDow NC4zNzg0ODc4NjAgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9zeW1maWxlLmgJ MjAxMi0wNy0wNiAxNTozODo0MS4yNzI5MDgxMTMgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIw ODAxLm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDEyLTA4LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3N5bWZpbGUuaAkyMDEyLTA4LTAxIDE4OjM3 OjQ0LjYwMDkyNTY2MiArMDIwMAogQEAgLTYxNSw2ICs2MTUsMTMgQEAgdm9pZCBmcmVlX3N5bWZp bGVfc2VnbWVudF9kYXRhIChzdHJ1Y3QgcwogIAogIGV4dGVybiBzdHJ1Y3QgY2xlYW51cCAqaW5j cmVtZW50X3JlYWRpbmdfc3ltdGFiICh2b2lkKTsKQEAgLTk4MCwxMCArOTgwLDEwIEBAIEluZGV4 OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9zeW1maWxlLmgKICAvKiBGcm9tIGR3YXJmMnJlYWQu YyAqLwogIAogIC8qIE5hbWVzIGZvciBhIGR3YXJmMiBkZWJ1Z2dpbmcgc2VjdGlvbi4gIFRoZSBm aWVsZCBOT1JNQUwgaXMgdGhlIG5vcm1hbAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3Rl c3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMu b3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTItMDctMDYgMTU6MDQ6MDQuMzc4NDg3 ODYwICswMjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCTIwMTItMDctMDYgMTU6Mzg6NDEuMjcyOTA4MTEzICswMjAwCistLS0gZ2RiLTcuNC45MS4y MDEyMDgwMS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMi0wOC0wMSAxODozNjo1 MS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAxL2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAJMjAxMi0wOC0wMSAxODozNzo0NC42MDE5MjU2NTYgKzAyMDAKIEBAIC0xMzg4 LDYgKzEzODgsMTYgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0gewogIAkgICAgd2Fybmlu ZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQpAQCAtMTAwMSwxMCArMTAwMSwx MCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhw CiAgICAgIHJldHVybiAwOwogIH0KICAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi90 ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9n ZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQu NTAuMjAxMjA3MDMub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDEyLTA3 LTA2IDE1OjA0OjA0LjM3ODQ4Nzg2MCArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2Ri L3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxMi0wNy0wNiAxNTozODo0MS4yNzI5MDgx MTMgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIv bWktc3VwcG9ydC5leHAJMjAxMi0wNy0yNSAyMjozNTozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNy40LjkxLjIwMTIwODAxL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTIt MDgtMDEgMTg6Mzc6NDQuNjAxOTI1NjU2ICswMjAwCiBAQCAtMjEzLDYgKzIxMywxNiBAQCBwcm9j IGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0 IHNldCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KQEAgLTEwMjIsMTAgKzEwMjIsMTAgQEAgSW5kZXg6 IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICAg ICAgIyBJZiBhbGxvd2luZyB0aGUgaW5mZXJpb3IgdG8gaGF2ZSBpdHMgb3duIFBUWSB0aGVuIGFz c2lnbiB0aGUgaW5mZXJpb3IKICAgICAgIyBpdHMgb3duIHRlcm1pbmFsIGRldmljZSBoZXJlLgog ICAgICBpZiB7ICRzZXBhcmF0ZV9pbmZlcmlvcl9wdHkgfSB7Ci1JbmRleDogZ2RiLTcuNC41MC4y MDEyMDcwMy9nZGIvb2JqZmlsZXMuaAorSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL29i amZpbGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL29i amZpbGVzLmgJMjAxMi0wNy0wNiAxNTowNDowNC4zNzg0ODc4NjAgKzAyMDAKLSsrKyBnZGItNy40 LjUwLjIwMTIwNzAzL2dkYi9vYmpmaWxlcy5oCTIwMTItMDctMDYgMTU6MDQ6MjYuMDczNDYzMzI0 ICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9vYmpmaWxlcy5oCTIwMTIt MDgtMDEgMTg6MzY6NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9n ZGIvb2JqZmlsZXMuaAkyMDEyLTA4LTAxIDE4OjM3OjQ0LjYwMTkyNTY1NiArMDIwMAogQEAgLTQz Miw2ICs0MzIsMTAgQEAgc3RydWN0IG9iamZpbGUKICAKICAjZGVmaW5lIE9CSkZfTUFJTkxJTkUg KDEgPDwgNSkKQEAgLTEwMzcsMTAgKzEwMzcsMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3 MDMvZ2RiL29iamZpbGVzLmgKICAvKiBUaGUgb2JqZWN0IGZpbGUgdGhhdCBjb250YWlucyB0aGUg cnVudGltZSBjb21tb24gbWluaW1hbCBzeW1ib2xzCiAgICAgZm9yIFN1bk9TNC4gIE5vdGUgdGhh dCB0aGlzIG9iamZpbGUgaGFzIG5vIGFzc29jaWF0ZWQgQkZELiAgKi8KICAKLUluZGV4OiBnZGIt Ny40LjUwLjIwMTIwNzAzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCitJbmRl eDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDEyLTA2LTIxIDIyOjQ2OjIxLjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmls ZS5leHAJMjAxMi0wNy0wNiAxNTozOTo0MS42MDE4Mzg2MzMgKzAyMDAKKy0tLSBnZGItNy40Ljkx LjIwMTIwODAxLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxMi0w Ni0yMSAyMjo0NjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAxL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTItMDgtMDEgMTg6Mzc6NDQuNjAy OTI1NjUwICswMjAwCiBAQCAtMjU2LDMgKzI1NiwzMyBAQCBpZiAhW2lzX3JlbW90ZSB0YXJnZXRd IHsKICAKICAgICAgZ2RiX2V4aXQKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIvZ2Ri LWFyY2hlci5wYXRjaAppbmRleCAzNTMxZWUwLi44MGUzY2YyIDEwMDY0NAotLS0gYS9nZGItYXJj aGVyLnBhdGNoCisrKyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsMTIgKzIsMTIgQEAgaHR0cDov L3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL1Byb2plY3RBcmNoZXIKIGh0dHA6Ly9zb3VyY2V3YXJl Lm9yZy9nZGIvd2lraS9BcmNoZXJCcmFuY2hNYW5hZ2VtZW50CiAKIEdJVCBzbmFwc2hvdDoKLWNv bW1pdCA4MTRkYjllZTg3ZThkNjA5Y2U2MDMyNDc2MGNmODBjZDRlNGVjNDNhCitjb21taXQgODk3 Njg2YzBhZWRiN2E2ZGE1OWI4MjNmMjJiMWQyNGVjNWExZDJiYQogCiBicmFuY2ggYGFyY2hlcicg LSB0aGUgbWVyZ2Ugb2YgYnJhbmNoZXM6CiBhcmNoZXItamFua3JhdG9jaHZpbC12bGEKIGFyY2hl ci10cm9tZXktcHl0aG9uCi1hcmNoZXItdHJvbWV5LWR3ei1tdWx0aWZpbGUtcmViYXNlCithcmNo ZXItdHJvbWV5LWR3ei1tdWx0aWZpbGUtcmViYXNlIChidXQgZnJvbSBwb3N0LTcuNSBGU0YgR0RC IGNvbW1pdHMpCiAKIAogZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmls ZS5pbgpAQCAtNTQsNiArNTQsMjQgQEAgaW5kZXggYTQxY2ZmOS4uZDc3ODZhNiAxMDA2NDQKICBj b25maWcuc3RhdHVzOiAkKHNyY2RpcikvY29uZmlndXJlIGNvbmZpZ3VyZS50Z3QgY29uZmlndXJl Lmhvc3QKICAJJChTSEVMTCkgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKICAKK2RpZmYgLS1naXQg YS9nZGIvTkVXUyBiL2dkYi9ORVdTCitpbmRleCBiMjgxODI0Li40ZGE4ODZjIDEwMDY0NAorLS0t IGEvZ2RiL05FV1MKKysrKyBiL2dkYi9ORVdTCitAQCAtMSw2ICsxLDEzIEBACisgCQlXaGF0IGhh cyBjaGFuZ2VkIGluIEdEQj8KKyAJICAgICAoT3JnYW5pemVkIHJlbGVhc2UgYnkgcmVsZWFzZSkK KyAKKysqKiogQ2hhbmdlcyBzaW5jZSBHREIgNy41CisrCisrKiBOZXcgY29tbWFuZHMgKGZvciBz ZXQvc2hvdywgc2VlICJOZXcgb3B0aW9ucyIgYmVsb3cpCisrCisrbWFpbnQgaW5mbyBiZmRzCisr ICBMaXN0IHRoZSBCRkRzIGtub3duIHRvIEdEQi4KKysKKyAqKiogQ2hhbmdlcyBpbiBHREIgNy41 CisgCisgKiBHREIgbm93IHN1cHBvcnRzIHgzMiBBQkkuICBWaXNpdCA8aHR0cDovL3NpdGVzLmdv b2dsZS5jb20vc2l0ZS94MzJhYmkvPgogZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2Ri L2FkYS1sYW5nLmMKIGluZGV4IGFhMDkwYWYuLmU2NzI3MzEgMTAwNjQ0CiAtLS0gYS9nZGIvYWRh LWxhbmcuYwpAQCAtODUsNyArMTAzLDcgQEAgaW5kZXggYWEwOTBhZi4uZTY3MjczMSAxMDA2NDQK ICAgICAgcmV0dXJuIDE7CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2JmZC10YXJnZXQuYyBiL2dkYi9i ZmQtdGFyZ2V0LmMKLWluZGV4IDY3Mjg4MDAuLjIxZjUzYmIgMTAwNjQ0CitpbmRleCA2NzI4ODAw Li40NTVkM2U2IDEwMDY0NAogLS0tIGEvZ2RiL2JmZC10YXJnZXQuYwogKysrIGIvZ2RiL2JmZC10 YXJnZXQuYwogQEAgLTIxLDYgKzIxLDcgQEAKQEAgLTEwNSwxNSArMTIzLDMxIEBAIGluZGV4IDY3 Mjg4MDAuLjIxZjUzYmIgMTAwNjQ0CiAgICB4ZnJlZSAoZGF0YS0+dGFibGUuc2VjdGlvbnMpOwog ICAgeGZyZWUgKGRhdGEpOwogICAgeGZyZWUgKHQpOwotQEAgLTgzLDcgKzg0LDcgQEAgdGFyZ2V0 X2JmZF9yZW9wZW4gKHN0cnVjdCBiZmQgKmFiZmQpCi0gICBzdHJ1Y3QgdGFyZ2V0X2JmZF9kYXRh ICpkYXRhOworQEAgLTg0LDYgKzg1LDcgQEAgdGFyZ2V0X2JmZF9yZW9wZW4gKHN0cnVjdCBiZmQg KmFiZmQpCiAgCiAgICBkYXRhID0gWFpBTExPQyAoc3RydWN0IHRhcmdldF9iZmRfZGF0YSk7Ci0t ICBkYXRhLT5iZmQgPSBhYmZkOwotKyAgZGF0YS0+YmZkID0gZ2RiX2JmZF9yZWYgKGFiZmQpOwor ICAgZGF0YS0+YmZkID0gYWJmZDsKKysgIGdkYl9iZmRfcmVmIChhYmZkKTsKICAgIGJ1aWxkX3Nl Y3Rpb25fdGFibGUgKGFiZmQsICZkYXRhLT50YWJsZS5zZWN0aW9ucywgJmRhdGEtPnRhYmxlLnNl Y3Rpb25zX2VuZCk7CiAgCiAgICB0ID0gWFpBTExPQyAoc3RydWN0IHRhcmdldF9vcHMpOworZGlm ZiAtLWdpdCBhL2dkYi9iZmQtdGFyZ2V0LmggYi9nZGIvYmZkLXRhcmdldC5oCitpbmRleCA3MTAw MWM1Li43ZjRlNjI4IDEwMDY0NAorLS0tIGEvZ2RiL2JmZC10YXJnZXQuaAorKysrIGIvZ2RiL2Jm ZC10YXJnZXQuaAorQEAgLTIzLDkgKzIzLDkgQEAKKyBzdHJ1Y3QgYmZkOworIHN0cnVjdCB0YXJn ZXRfb3BzOworIAorLS8qIEdpdmVuIGFuIGV4aXN0aW5nIEJGRCwgcmUtb3BlbiBpdCBhcyBhICJz dHJ1Y3QgdGFyZ2V0X29wcyIuICBPbgorLSAgIGNsb3NlLCBpdCB3aWxsIGFsc28gY2xvc2UgdGhl IGNvcnJlc3BvbmRpbmcgQkZEICh3aGljaCBpcyBsaWtlCistICAgZnJlb3BlbiBhbmQgZmRvcGVu KS4gICovCisrLyogR2l2ZW4gYW4gZXhpc3RpbmcgQkZELCByZS1vcGVuIGl0IGFzIGEgInN0cnVj dCB0YXJnZXRfb3BzIi4gIFRoaXMKKysgICBhY3F1aXJlcyBhIG5ldyByZWZlcmVuY2UgdG8gdGhl IEJGRC4gIFRoaXMgcmVmZXJlbmNlIHdpbGwgYmUKKysgICByZWxlYXNlZCB3aGVuIHRoZSB0YXJn ZXQgaXMgY2xvc2VkLiAgKi8KKyBzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0X2JmZF9yZW9wZW4g KHN0cnVjdCBiZmQgKmJmZCk7CisgCisgI2VuZGlmCiBkaWZmIC0tZ2l0IGEvZ2RiL2Jsb2NrLmMg Yi9nZGIvYmxvY2suYwogaW5kZXggYTBmODJlYy4uMDk3ZGJmNiAxMDA2NDQKIC0tLSBhL2dkYi9i bG9jay5jCkBAIC0xNTIsMTAgKzE4NiwxMCBAQCBpbmRleCA5OWM0Nzg4Li42Y2ViNzA0IDEwMDY0 NAogKwogICNlbmRpZiAvKiBCTE9DS19IICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQu YyBiL2dkYi9icmVha3BvaW50LmMKLWluZGV4IDZiOWZhZjMuLjQzZmYxNmEgMTAwNjQ0CitpbmRl eCA3OGZmZmQzLi4yMjRiYTQ5IDEwMDY0NAogLS0tIGEvZ2RiL2JyZWFrcG9pbnQuYwogKysrIGIv Z2RiL2JyZWFrcG9pbnQuYwotQEAgLTE1NTA4LDYgKzE1NTA4LDI0IEBAIGFsbF90cmFjZXBvaW50 cyAodm9pZCkKK0BAIC0xNTUxOSw2ICsxNTUxOSwyNCBAQCBhbGxfdHJhY2Vwb2ludHMgKHZvaWQp CiAgICByZXR1cm4gdHBfdmVjOwogIH0KICAKQEAgLTE4MCw3ICsyMTQsNyBAQCBpbmRleCA2Yjlm YWYzLi40M2ZmMTZhIDEwMDY0NAogIAwKICAvKiBUaGlzIGhlbHAgc3RyaW5nIGlzIHVzZWQgZm9y IHRoZSBicmVhaywgaGJyZWFrLCB0YnJlYWsgYW5kIHRoYnJlYWsKICAgICBjb21tYW5kcy4gIEl0 IGlzIGRlZmluZWQgYXMgYSBtYWNybyB0byBwcmV2ZW50IGR1cGxpY2F0aW9uLgotQEAgLTE2NDcz LDQgKzE2NDkxLDcgQEAgYWdlbnQtcHJpbnRmIFwicHJpbnRmIGZvcm1hdCBzdHJpbmdcIiwgYXJn MSwgYXJnMiwgYXJnMywgLi4uLCBhcmduXG5cCitAQCAtMTY0ODQsNCArMTY1MDIsNyBAQCBhZ2Vu dC1wcmludGYgXCJwcmludGYgZm9ybWF0IHN0cmluZ1wiLCBhcmcxLCBhcmcyLCBhcmczLCAuLi4s IGFyZ25cblwKICAgIGF1dG9tYXRpY19oYXJkd2FyZV9icmVha3BvaW50cyA9IDE7CiAgCiAgICBv YnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2VlZCAoYnJlYWtwb2ludF9hYm91dF90b19wcm9j ZWVkKTsKQEAgLTE4OSwxMCArMjIzLDE4IEBAIGluZGV4IDZiOWZhZjMuLjQzZmYxNmEgMTAwNjQ0 CiArI2VuZGlmCiAgfQogZGlmZiAtLWdpdCBhL2dkYi9idWlsZHN5bS5jIGIvZ2RiL2J1aWxkc3lt LmMKLWluZGV4IGQ1NDcwMTIuLmUyZjMxOTIgMTAwNjQ0CitpbmRleCBkNTQ3MDEyLi5lNDg4MmZi IDEwMDY0NAogLS0tIGEvZ2RiL2J1aWxkc3ltLmMKICsrKyBiL2dkYi9idWlsZHN5bS5jCi1AQCAt OTcwLDcgKzk3MCw3IEBAIHJlc2V0X3N5bXRhYl9nbG9iYWxzICh2b2lkKQorQEAgLTk2NiwxMSAr OTY2LDE0IEBAIHJlc2V0X3N5bXRhYl9nbG9iYWxzICh2b2lkKQorICAgIGZpbGUncyB0ZXh0Lgor IAorICAgIElmIEVYUEFOREFCTEUgaXMgbm9uLXplcm8gdGhlIFNUQVRJQ19CTE9DSyBkaWN0aW9u YXJ5IGlzIG1hZGUKKy0gICBleHBhbmRhYmxlLiAgKi8KKysgICBleHBhbmRhYmxlLgorKworKyAg IElmIFJFUVVJUkVEIGlzIG5vbi16ZXJvLCB0aGVuIGEgc3ltdGFiIGlzIGNyZWF0ZWQgZXZlbiBp ZiBpdCBkb2VzCisrICAgbm90IGNvbnRhaW4gYW55IHN5bWJvbHMuICAqLwogIAogIHN0cnVjdCBi bG9jayAqCiAgZW5kX3N5bXRhYl9nZXRfc3RhdGljX2Jsb2NrIChDT1JFX0FERFIgZW5kX2FkZHIs IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLApAQCAtMjAxLDcgKzI0Myw3IEBAIGluZGV4IGQ1NDcw MTIuLmUyZjMxOTIgMTAwNjQ0CiAgewogICAgLyogRmluaXNoIHRoZSBsZXhpY2FsIGNvbnRleHQg b2YgdGhlIGxhc3QgZnVuY3Rpb24gaW4gdGhlIGZpbGU7IHBvcAogICAgICAgdGhlIGNvbnRleHQg c3RhY2suICAqLwotQEAgLTEwMzgsNyArMTAzOCw4IEBAIGVuZF9zeW10YWJfZ2V0X3N0YXRpY19i bG9jayAoQ09SRV9BRERSIGVuZF9hZGRyLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0x MDM4LDcgKzEwNDEsOCBAQCBlbmRfc3ltdGFiX2dldF9zdGF0aWNfYmxvY2sgKENPUkVfQUREUiBl bmRfYWRkciwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBjbGVhbnVwX3VuZGVmaW5lZF9z dGFic190eXBlcyAob2JqZmlsZSk7CiAgICBmaW5pc2hfZ2xvYmFsX3N0YWJzIChvYmpmaWxlKTsK ICAKQEAgLTIxMSw3ICsyNTMsNyBAQCBpbmRleCBkNTQ3MDEyLi5lMmYzMTkyIDEwMDY0NAogICAg ICAgICYmIGZpbGVfc3ltYm9scyA9PSBOVUxMCiAgICAgICAgJiYgZ2xvYmFsX3N5bWJvbHMgPT0g TlVMTAogICAgICAgICYmIGhhdmVfbGluZV9udW1iZXJzID09IDAKLUBAIC0xMjk2LDcgKzEyOTcs NyBAQCBlbmRfc3ltdGFiIChDT1JFX0FERFIgZW5kX2FkZHIsIHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLCBpbnQgc2VjdGlvbikKK0BAIC0xMjk2LDcgKzEzMDAsNyBAQCBlbmRfc3ltdGFiIChDT1JF X0FERFIgZW5kX2FkZHIsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBpbnQgc2VjdGlvbikKICB7 CiAgICBzdHJ1Y3QgYmxvY2sgKnN0YXRpY19ibG9jazsKICAKQEAgLTIyMCw3ICsyNjIsNyBAQCBp bmRleCBkNTQ3MDEyLi5lMmYzMTkyIDEwMDY0NAogICAgcmV0dXJuIGVuZF9zeW10YWJfZnJvbV9z dGF0aWNfYmxvY2sgKHN0YXRpY19ibG9jaywgb2JqZmlsZSwgc2VjdGlvbiwgMCk7CiAgfQogIAot QEAgLTEzMDgsNyArMTMwOSw3IEBAIGVuZF9leHBhbmRhYmxlX3N5bXRhYiAoQ09SRV9BRERSIGVu ZF9hZGRyLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0xMzA4LDcgKzEzMTIsNyBAQCBl bmRfZXhwYW5kYWJsZV9zeW10YWIgKENPUkVfQUREUiBlbmRfYWRkciwgc3RydWN0IG9iamZpbGUg Km9iamZpbGUsCiAgewogICAgc3RydWN0IGJsb2NrICpzdGF0aWNfYmxvY2s7CiAgCkBAIC0yMzAs MTUgKzI3MiwxNiBAQCBpbmRleCBkNTQ3MDEyLi5lMmYzMTkyIDEwMDY0NAogIH0KICAKIGRpZmYg LS1naXQgYS9nZGIvYnVpbGRzeW0uaCBiL2dkYi9idWlsZHN5bS5oCi1pbmRleCAxNjJlZThjLi4y YzFkMTc5IDEwMDY0NAoraW5kZXggMTYyZWU4Yy4uMzNiMzRjOCAxMDA2NDQKIC0tLSBhL2dkYi9i dWlsZHN5bS5oCiArKysgYi9nZGIvYnVpbGRzeW0uaAotQEAgLTI2MCw3ICsyNjAsNyBAQCBleHRl cm4gY2hhciAqcG9wX3N1YmZpbGUgKHZvaWQpOworQEAgLTI2MCw3ICsyNjAsOCBAQCBleHRlcm4g Y2hhciAqcG9wX3N1YmZpbGUgKHZvaWQpOwogIAogIGV4dGVybiBzdHJ1Y3QgYmxvY2sgKmVuZF9z eW10YWJfZ2V0X3N0YXRpY19ibG9jayAoQ09SRV9BRERSIGVuZF9hZGRyLAogIAkJCQkJCSAgc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsCiAtCQkJCQkJICBpbnQgZXhwYW5kYWJsZSk7Ci0rCQkJCQkJ ICBpbnQgZXhwYW5kYWJsZSwgaW50IHJlcXVpcmVkKTsKKysJCQkJCQkgIGludCBleHBhbmRhYmxl LAorKwkJCQkJCSAgaW50IHJlcXVpcmVkKTsKICAKICBleHRlcm4gc3RydWN0IHN5bXRhYiAqZW5k X3N5bXRhYl9mcm9tX3N0YXRpY19ibG9jayAoc3RydWN0IGJsb2NrICpzdGF0aWNfYmxvY2ssCiAg CQkJCQkJICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLApAQCAtNDgzLDcgKzUyNiw3IEBAIGlu ZGV4IDY0NGJhMzQuLjAwMDAwMDAKIC1ybSAtZiAiJGluZGV4X2ZpbGUiCiAtZXhpdCAkcmMKIGRp ZmYgLS1naXQgYS9nZGIvY2xpL2NsaS1kdW1wLmMgYi9nZGIvY2xpL2NsaS1kdW1wLmMKLWluZGV4 IDRhOGI1ZDEuLjEyNDQ3NjcgMTAwNjQ0CitpbmRleCA0YThiNWQxLi43MzQxZjAwIDEwMDY0NAog LS0tIGEvZ2RiL2NsaS9jbGktZHVtcC5jCiArKysgYi9nZGIvY2xpL2NsaS1kdW1wLmMKIEBAIC0z Miw2ICszMiw3IEBACkBAIC00OTksNyArNTQyLDcgQEAgaW5kZXggNGE4YjVkMS4uMTI0NDc2NyAx MDA2NDQKICAgIGJmZCAqaWJmZDsKICAKIC0gIGliZmQgPSBiZmRfb3BlbnIgKGZpbGVuYW1lLCB0 YXJnZXQpOwotKyAgaWJmZCA9IGdkYl9iZmRfcmVmIChiZmRfb3BlbnIgKGZpbGVuYW1lLCB0YXJn ZXQpKTsKKysgIGliZmQgPSBnZGJfYmZkX29wZW5yIChmaWxlbmFtZSwgdGFyZ2V0KTsKICAgIGlm IChpYmZkID09IE5VTEwpCiAgICAgIGVycm9yIChfKCJGYWlsZWQgdG8gb3BlbiAlczogJXMuIiks IGZpbGVuYW1lLCAKICAJICAgYmZkX2Vycm1zZyAoYmZkX2dldF9lcnJvciAoKSkpOwpAQCAtNTE0 LDcgKzU1Nyw3IEBAIGluZGV4IDRhOGI1ZDEuLjEyNDQ3NjcgMTAwNjQ0CiAgICBpZiAoKm1vZGUg PT0gJ3cnKQkvKiBXcml0ZTogY3JlYXRlIG5ldyBmaWxlICovCiAgICAgIHsKIC0gICAgICBvYmZk ID0gYmZkX29wZW53IChmaWxlbmFtZSwgdGFyZ2V0KTsKLSsgICAgICBvYmZkID0gZ2RiX2JmZF9y ZWYgKGJmZF9vcGVudyAoZmlsZW5hbWUsIHRhcmdldCkpOworKyAgICAgIG9iZmQgPSBnZGJfYmZk X29wZW53IChmaWxlbmFtZSwgdGFyZ2V0KTsKICAgICAgICBpZiAob2JmZCA9PSBOVUxMKQogIAll cnJvciAoXygiRmFpbGVkIHRvIG9wZW4gJXM6ICVzLiIpLCBmaWxlbmFtZSwgCiAgCSAgICAgICBi ZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7CkBAIC01MjMsOSArNTY2LDI5IEBAIGluZGV4 IDRhOGI1ZDEuLjEyNDQ3NjcgMTAwNjQ0CiAgICAgICAgaWYgKCFiZmRfc2V0X2Zvcm1hdCAob2Jm ZCwgYmZkX29iamVjdCkpCiAgCWVycm9yIChfKCJiZmRfb3Blbndfd2l0aF9jbGVhbnVwOiAlcy4i KSwgYmZkX2Vycm1zZyAoYmZkX2dldF9lcnJvciAoKSkpOwogICAgICB9CitkaWZmIC0tZ2l0IGEv Z2RiL2NvZmZyZWFkLmMgYi9nZGIvY29mZnJlYWQuYworaW5kZXggYjBhOGI4Mi4uMGM3ZTZkOSAx MDA2NDQKKy0tLSBhL2dkYi9jb2ZmcmVhZC5jCisrKysgYi9nZGIvY29mZnJlYWQuYworQEAgLTY1 MywxMyArNjUzLDE0IEBAIGNvZmZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwgaW50IHN5bWZpbGVfZmxhZ3MpCisgICAgICAgY2hhciAqZGVidWdmaWxlOworIAorICAgICAg IGRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9kZWJ1Z2xpbmsgKG9iamZp bGUpOworKyAgICAgIG1ha2VfY2xlYW51cCAoeGZyZWUsIGRlYnVnZmlsZSk7CisgCisgICAgICAg aWYgKGRlYnVnZmlsZSkKKyAJeworIAkgIGJmZCAqYWJmZCA9IHN5bWZpbGVfYmZkX29wZW4gKGRl YnVnZmlsZSk7CisgCisrCSAgbWFrZV9jbGVhbnVwX2JmZF91bnJlZiAoYWJmZCk7CisgCSAgc3lt Ym9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZkLCBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKy0J ICB4ZnJlZSAoZGVidWdmaWxlKTsKKyAJfQorICAgICB9CisgCiBkaWZmIC0tZ2l0IGEvZ2RiL2Nv bnRyaWIvY2Mtd2l0aC10d2Vha3Muc2ggYi9nZGIvY29udHJpYi9jYy13aXRoLXR3ZWFrcy5zaAog bmV3IGZpbGUgbW9kZSAxMDA3NTUKLWluZGV4IDAwMDAwMDAuLjkyNzBkYjQKK2luZGV4IDAwMDAw MDAuLjdkNzkzMmMKIC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi9jb250cmliL2NjLXdpdGgtdHdl YWtzLnNoCiBAQCAtMCwwICsxLDE2MiBAQApAQCAtNTU3LDggKzYyMCw4IEBAIGluZGV4IDAwMDAw MDAuLjkyNzBkYjQKICsjCiArIyBiYXNoJCBjZCAkb2JqZGlyL2dkYi90ZXN0c3VpdGUKICsjIGJh c2gkIHJ1bnRlc3QgXAotKyMgICBDQ19GT1JfVEFSR0VUPSIvYmluL3NoICRzcmNkaXIvY2Mtd2l0 aC10d2Vha3Muc2ggQVJHUyBnY2MiIFwKLSsjICAgQ1hYX0ZPUl9UQVJHRVQ9Ii9iaW4vc2ggJHNy Y2Rpci9jYy13aXRoLXR3ZWFrcy5zaCBBUkdTIGcrKyIKKysjICAgQ0NfRk9SX1RBUkdFVD0iL2Jp bi9zaCAkc3JjZGlyL2dkYi9jb250cmliL2NjLXdpdGgtdHdlYWtzLnNoIEFSR1MgZ2NjIiBcCisr IyAgIENYWF9GT1JfVEFSR0VUPSIvYmluL3NoICRzcmNkaXIvZ2RiL2NvbnRyaWIvY2Mtd2l0aC10 d2Vha3Muc2ggQVJHUyBnKysiCiArIwogKyMgRm9yIGRvY3VtZW50YXRpb24gb24gaW5kZXggZmls ZXM6IGluZm8gLWYgZ2RiLmluZm8gLW4gIkluZGV4IEZpbGVzIgogKyMgRm9yIGluZm9ybWF0aW9u IGFib3V0ICdkd3onLCBzZWUgdGhlIGFubm91bmNlbWVudDoKQEAgLTY5Miw3ICs3NTUsNyBAQCBp bmRleCAwMDAwMDAwLi45MjcwZGI0CiArcm0gLWYgIiRpbmRleF9maWxlIgogK2V4aXQgJHJjCiBk aWZmIC0tZ2l0IGEvZ2RiL2NvcmVsb3cuYyBiL2dkYi9jb3JlbG93LmMKLWluZGV4IGRkNjI1NjAu LjM4MGMwZGMgMTAwNjQ0CitpbmRleCBkZDYyNTYwLi4zNDBiMTQ5IDEwMDY0NAogLS0tIGEvZ2Ri L2NvcmVsb3cuYwogKysrIGIvZ2RiL2NvcmVsb3cuYwogQEAgLTQ2LDYgKzQ2LDcgQEAKQEAgLTcx NCwyNSArNzc3LDIwIEBAIGluZGV4IGRkNjI1NjAuLjM4MGMwZGMgMTAwNjQ0CiAgICAgICAgY29y ZV9iZmQgPSBOVUxMOwogICAgICB9CiAgICBjb3JlX3ZlYyA9IE5VTEw7Ci1AQCAtMzE5LDEyICsz MTgsMTQgQEAgY29yZV9vcGVuIChjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQorQEAgLTMx OSw5ICszMTgsOSBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkpCiAg ICBpZiAoc2NyYXRjaF9jaGFuIDwgMCkKICAgICAgcGVycm9yX3dpdGhfbmFtZSAoZmlsZW5hbWUp OwogIAogLSAgdGVtcF9iZmQgPSBiZmRfZm9wZW4gKGZpbGVuYW1lLCBnbnV0YXJnZXQsIAogLQkJ CXdyaXRlX2ZpbGVzID8gRk9QRU5fUlVCIDogRk9QRU5fUkIsCiAtCQkJc2NyYXRjaF9jaGFuKTsK LSsgIHRlbXBfYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9mb3BlbiAoZmlsZW5hbWUsIGdudXRhcmdl dCwgCi0rCQkJCSAgICAgd3JpdGVfZmlsZXMgPyBGT1BFTl9SVUIgOiBGT1BFTl9SQiwKLSsJCQkJ ICAgICBzY3JhdGNoX2NoYW4pKTsKKysgIHRlbXBfYmZkID0gZ2RiX2JmZF9mb3BlbiAoZmlsZW5h bWUsIGdudXRhcmdldCwgCisrCQkJICAgIHdyaXRlX2ZpbGVzID8gRk9QRU5fUlVCIDogRk9QRU5f UkIsCisrCQkJICAgIHNjcmF0Y2hfY2hhbik7CiAgICBpZiAodGVtcF9iZmQgPT0gTlVMTCkKICAg ICAgcGVycm9yX3dpdGhfbmFtZSAoZmlsZW5hbWUpOwogIAotKyAgZ2RiX2JmZF9zdGFzaF9maWxl bmFtZSAodGVtcF9iZmQpOwotKwotICAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0ICh0ZW1wX2JmZCwg YmZkX2NvcmUpCi0gICAgICAgJiYgIWdkYl9jaGVja19mb3JtYXQgKHRlbXBfYmZkKSkKLSAgICAg ewotQEAgLTMzMiw3ICszMzMsNyBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJv bV90dHkpCitAQCAtMzMyLDcgKzMzMSw3IEBAIGNvcmVfb3BlbiAoY2hhciAqZmlsZW5hbWUsIGlu dCBmcm9tX3R0eSkKICAgICAgICAvKiBGSVhNRTogc2hvdWxkIGJlIGNoZWNraW5nIGZvciBlcnJv cnMgZnJvbSBiZmRfY2xvc2UgKGZvciBvbmUKICAgICAgICAgICB0aGluZywgb24gZXJyb3IgaXQg ZG9lcyBub3QgZnJlZSBhbGwgdGhlIHN0b3JhZ2UgYXNzb2NpYXRlZAogICAgICAgICAgIHdpdGgg dGhlIGJmZCkuICAqLwpAQCAtNzQxLDcgKzc5OSw3IEBAIGluZGV4IGRkNjI1NjAuLjM4MGMwZGMg MTAwNjQ0CiAgICAgICAgZXJyb3IgKF8oIlwiJXNcIiBpcyBub3QgYSBjb3JlIGR1bXA6ICVzIiks CiAgCSAgICAgZmlsZW5hbWUsIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKICAgICAg fQotQEAgLTM0MCw3ICszNDEsNyBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJv bV90dHkpCitAQCAtMzQwLDcgKzMzOSw3IEBAIGNvcmVfb3BlbiAoY2hhciAqZmlsZW5hbWUsIGlu dCBmcm9tX3R0eSkKICAgIC8qIExvb2tzIHNlbWktcmVhc29uYWJsZS4gIFRvc3MgdGhlIG9sZCBj b3JlIGZpbGUgYW5kIHdvcmsgb24gdGhlCiAgICAgICBuZXcuICAqLwogIApAQCAtODA3LDcgKzg2 NSw3IEBAIGluZGV4IDFjNmZhNzkuLmVjMDgzNDggMTAwNjQ0CiAgZXh0ZXJuIGNoYXIgKnhmdWxs cGF0aCAoY29uc3QgY2hhciAqKTsKICAKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZv IGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXggYTkyZGY4Ni4uMjlhNjJhZCAxMDA2NDQKK2lu ZGV4IDY4ZWE4MTcuLjU5NDViYWMgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiAr KysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAtMTIwMCw2ICsxMjAwLDE2IEBAIGZvciByZW1v dGUgZGVidWdnaW5nLgpAQCAtODI3LDcgKzg4NSw3IEBAIGluZGV4IGE5MmRmODYuLjI5YTYyYWQg MTAwNjQ0CiAgQGMgcmVzb2x2ZSB0aGUgc2l0dWF0aW9uIG9mIHRoZXNlIGV2ZW50dWFsbHkKICBA aXRlbSAtdHVpCiAgQGNpbmRleCBAY29kZXstLXR1aX0KLUBAIC0yMjU0OCw4ICsyMjU1OCw2IEBA IGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFtcGxlOgorQEAgLTIyNTYzLDggKzIyNTcz LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CiAgCiAgQHNtYWxsZXhh bXBsZQogIChAdmFsdWV7R0RCUH0pIHB5dGhvbgpAQCAtODM2LDcgKzg5NCw3IEBAIGluZGV4IGE5 MmRmODYuLjI5YTYyYWQgMTAwNjQ0CiAgPnByaW50IDIzCiAgPmVuZAogIDIzCi1AQCAtMjI1NjMs NiArMjI1NzEsMTQgQEAgY29udHJvbGxlZCB1c2luZyBAY29kZXtzZXQgcHl0aG9uIHByaW50LXN0 YWNrfTogaWYgQGNvZGV7ZnVsbH0sIHRoZW4KK0BAIC0yMjU3OCw2ICsyMjU4NiwxNCBAQCBjb250 cm9sbGVkIHVzaW5nIEBjb2Rle3NldCBweXRob24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtmdWxs fSwgdGhlbgogIGZ1bGwgUHl0aG9uIHN0YWNrIHByaW50aW5nIGlzIGVuYWJsZWQ7IGlmIEBjb2Rl e25vbmV9LCB0aGVuIFB5dGhvbiBzdGFjawogIGFuZCBtZXNzYWdlIHByaW50aW5nIGlzIGRpc2Fi bGVkOyBpZiBAY29kZXttZXNzYWdlfSwgdGhlIGRlZmF1bHQsIG9ubHkKICB0aGUgbWVzc2FnZSBj b21wb25lbnQgb2YgdGhlIGVycm9yIGlzIHByaW50ZWQuCkBAIC04NTEsNyArOTA5LDcgQEAgaW5k ZXggYTkyZGY4Ni4uMjlhNjJhZCAxMDA2NDQKICBAZW5kIHRhYmxlCiAgCiAgSXQgaXMgYWxzbyBw b3NzaWJsZSB0byBleGVjdXRlIGEgUHl0aG9uIHNjcmlwdCBmcm9tIHRoZSBAdmFsdWV7R0RCTn0K LUBAIC0yMjU4NCw2ICsyMjYwMCwxNCBAQCBhbmQgdGh1cyBpcyBhbHdheXMgYXZhaWxhYmxlLgor QEAgLTIyNTk5LDYgKzIyNjE1LDE0IEBAIGFuZCB0aHVzIGlzIGFsd2F5cyBhdmFpbGFibGUuCiAg QGNpbmRleCBweXRob24gYXBpCiAgQGNpbmRleCBwcm9ncmFtbWluZyBpbiBweXRob24KICAKQEAg LTg2Niw2ICs5MjQsMTggQEAgaW5kZXggYTkyZGY4Ni4uMjlhNjJhZCAxMDA2NDQKICBAY2luZGV4 IHB5dGhvbiBzdGRvdXQKICBAY2luZGV4IHB5dGhvbiBwYWdpbmF0aW9uCiAgQXQgc3RhcnR1cCwg QHZhbHVle0dEQk59IG92ZXJyaWRlcyBQeXRob24ncyBAY29kZXtzeXMuc3Rkb3V0fSBhbmQKK0BA IC0zNDUzNiw2ICszNDU2MCwxMSBAQCBTaGFyZWQgbGlicmFyeSBldmVudHMuCisgCisgQGVuZCB0 YWJsZQorIAorK0BraW5kZXggbWFpbnQgaW5mbyBiZmRzCisrQGl0ZW0gbWFpbnQgaW5mbyBiZmRz CisrVGhpcyBwcmludHMgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBAY29kZXtiZmR9IG9iamVjdCB0 aGF0IGlzIGtub3duIHRvCisrQHZhbHVle0dEQk59LiAgQHhyZWZ7VG9wLCAsIEJGRCwgYmZkLCBU aGUgQmluYXJ5IEZpbGUgRGVzY3JpcHRvciBMaWJyYXJ5fS4KKysKKyBAa2luZGV4IHNldCBkaXNw bGFjZWQtc3RlcHBpbmcKKyBAa2luZGV4IHNob3cgZGlzcGxhY2VkLXN0ZXBwaW5nCisgQGNpbmRl eCBkaXNwbGFjZWQgc3RlcHBpbmcgc3VwcG9ydAogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiaW50 LnRleGluZm8gYi9nZGIvZG9jL2dkYmludC50ZXhpbmZvCiBpbmRleCA1ZTAwZjFmLi5jNWM0MzJi IDEwMDY0NAogLS0tIGEvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwpAQCAtMTAxMiw3ICsxMDgyLDcg QEAgaW5kZXggNjgyN2VkOC4uYzYzYjkwMSAxMDA2NDQKICBUaGlzIG9ic2VydmVyIGlzIHVzZWQg Zm9yIGludGVybmFsIHRlc3RpbmcuICBEbyBub3QgdXNlLiAgCiAgU2VlIHRlc3RzdWl0ZS9nZGIu Z2RiL29ic2VydmVyLmV4cC4KIGRpZmYgLS1naXQgYS9nZGIvZHNyZWMuYyBiL2dkYi9kc3JlYy5j Ci1pbmRleCBkMmM5OWIyLi42NmQ0YzEzIDEwMDY0NAoraW5kZXggZDJjOTliMi4uZjM5ZDBlZCAx MDA2NDQKIC0tLSBhL2dkYi9kc3JlYy5jCiArKysgYi9nZGIvZHNyZWMuYwogQEAgLTIzLDYgKzIz LDcgQEAKQEAgLTEwMzIsNyArMTEwMiw3IEBAIGluZGV4IGQyYzk5YjIuLjY2ZDRjMTMgMTAwNjQ0 CiAgICBzcmVjID0gKGNoYXIgKikgYWxsb2NhIChtYXhyZWNzaXplICsgMSk7CiAgCiAtICBhYmZk ID0gYmZkX29wZW5yIChmaWxlLCAwKTsKLSsgIGFiZmQgPSBnZGJfYmZkX3JlZiAoYmZkX29wZW5y IChmaWxlLCAwKSk7CisrICBhYmZkID0gZ2RiX2JmZF9vcGVuciAoZmlsZSwgMCk7CiAgICBpZiAo IWFiZmQpCiAgICAgIHsKICAgICAgICBwcmludGZfZmlsdGVyZWQgKF8oIlVuYWJsZSB0byBvcGVu IGZpbGUgJXNcbiIpLCBmaWxlKTsKQEAgLTE1MDMsNyArMTU3Myw3IEBAIGluZGV4IGU5ZDA2YTMu LmJmYTY3NzYgMTAwNjQ0CiAgLyogQ29tcGlsZSBhIERXQVJGIGxvY2F0aW9uIGV4cHJlc3Npb24g dG8gYW4gYWdlbnQgZXhwcmVzc2lvbi4KICAgICAKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVh ZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKK2lu ZGV4IGRlZWU1YTIuLmIyZjA1MmIgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiArKysg Yi9nZGIvZHdhcmYycmVhZC5jCiBAQCAtNjQsMjAgKzY0LDEyIEBACkBAIC0xNTMwLDcgKzE2MDAs NyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIERFRl9WRUNfUCAoc3ltYm9scCk7 CiBAQCAtOTUsOCArODcsNiBAQCBzdGF0aWMgaW50IGNoZWNrX3BoeXNuYW1lID0gMDsKICAvKiBX aGVuIG5vbi16ZXJvLCBkbyBub3QgcmVqZWN0IGRlcHJlY2F0ZWQgLmdkYl9pbmRleCBzZWN0aW9u cy4gICovCi0gaW50IHVzZV9kZXByZWNhdGVkX2luZGV4X3NlY3Rpb25zID0gMDsKKyBzdGF0aWMg aW50IHVzZV9kZXByZWNhdGVkX2luZGV4X3NlY3Rpb25zID0gMDsKICAKIC1zdGF0aWMgaW50IHBh Z2VzaXplOwogLQpAQCAtMTU4Nyw3ICsxNjU3LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAx MDA2NDQKICAgIC8qIFRoZSBzZWN0aW9uIHRoaXMgQ1UvVFUgbGl2ZXMgaW4uCiAgICAgICBJZiB0 aGUgRElFIHJlZmVycyB0byBhIERXTyBmaWxlLCB0aGlzIGlzIGFsd2F5cyB0aGUgb3JpZ2luYWwg ZGllLAogICAgICAgbm90IHRoZSBEV08gZmlsZS4gICovCi1AQCAtNjk1LDYgKzY4NiwyMiBAQCBz dHJ1Y3QgZHdvX2ZpbGUKK0BAIC03MTUsNiArNzA2LDIyIEBAIHN0cnVjdCBkd29fZmlsZQogICAg aHRhYl90IHR1czsKICB9OwogIApAQCAtMTYxMCw3ICsxNjgwLDcgQEAgaW5kZXggMWQ1MWRiMi4u ZmU1NjcwOSAxMDA2NDQKICAvKiBTdHJ1Y3QgdXNlZCB0byBwYXNzIG1pc2MuIHBhcmFtZXRlcnMg dG8gcmVhZF9kaWVfYW5kX2NoaWxkcmVuLCBldAogICAgIGFsLiAgd2hpY2ggYXJlIHVzZWQgZm9y IGJvdGggLmRlYnVnX2luZm8gYW5kIC5kZWJ1Z190eXBlcyBkaWVzLgogICAgIEFsbCBwYXJhbWV0 ZXJzIGhlcmUgYXJlIHVuY2hhbmdpbmcgZm9yIHRoZSBsaWZlIG9mIHRoZSBjYWxsLiAgVGhpcwot QEAgLTgwOCw2ICs4MTUsMTIgQEAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8KK0BAIC04MjgsNiAr ODM1LDEyIEBAIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvCiAgICAgIC8qIEZsYWcgc2V0IGlmIGZp eHVwX3BhcnRpYWxfZGllIGhhcyBiZWVuIGNhbGxlZCBvbiB0aGlzIGRpZS4gICovCiAgICAgIHVu c2lnbmVkIGludCBmaXh1cF9jYWxsZWQgOiAxOwogIApAQCAtMTYyMyw3ICsxNjkzLDcgQEAgaW5k ZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgICAgLyogVGhlIG5hbWUgb2YgdGhpcyBESUUu ICBOb3JtYWxseSB0aGUgdmFsdWUgb2YgRFdfQVRfbmFtZSwgYnV0CiAgICAgICAgIHNvbWV0aW1l cyBhIGRlZmF1bHQgbmFtZSBmb3IgdW5uYW1lZCBESUVzLiAgKi8KICAgICAgY2hhciAqbmFtZTsK LUBAIC0xMTkzLDcgKzEyMDYsNyBAQCBzdGF0aWMgZ2RiX2J5dGUgKnJlYWRfcGFydGlhbF9kaWUg KGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICosCitAQCAtMTIxMyw3ICsxMjI2LDcgQEAg c3RhdGljIGdkYl9ieXRlICpyZWFkX3BhcnRpYWxfZGllIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRl cl9zcGVjcyAqLAogIAkJCQkgICB1bnNpZ25lZCBpbnQsCiAgCQkJCSAgIGdkYl9ieXRlICopOwog IApAQCAtMTYzMiw3ICsxNzAyLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJ CQkJCQkgIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCiAgc3RhdGljIHZvaWQgZml4dXBfcGFydGlh bF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICosCi1AQCAtMTIzOCw2ICsxMjUxLDggQEAg c3RhdGljIGNoYXIgKnJlYWRfaW5kaXJlY3Rfc3RyaW5nIChiZmQgKiwgZ2RiX2J5dGUgKiwKK0BA IC0xMjU4LDYgKzEyNzEsOCBAQCBzdGF0aWMgY2hhciAqcmVhZF9pbmRpcmVjdF9zdHJpbmcgKGJm ZCAqLCBnZGJfYnl0ZSAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGNvbXBfdW5pdF9oZWFkICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgKik7CiAgCkBAIC0xNjQxLDcgKzE3MTEsNyBAQCBpbmRleCAx ZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIHN0YXRpYyBVTE9OR0VTVCByZWFkX3Vuc2lnbmVkX2xl YjEyOCAoYmZkICosIGdkYl9ieXRlICosIHVuc2lnbmVkIGludCAqKTsKICAKICBzdGF0aWMgTE9O R0VTVCByZWFkX3NpZ25lZF9sZWIxMjggKGJmZCAqLCBnZGJfYnl0ZSAqLCB1bnNpZ25lZCBpbnQg Kik7Ci1AQCAtMTQ4OSw2ICsxNTA0LDkgQEAgc3RhdGljIHZvaWQgZmlsbF9pbl9sb2NsaXN0X2Jh dG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKK0BAIC0xNTA5LDYgKzE1MjQsOSBAQCBzdGF0aWMg dm9pZCBmaWxsX2luX2xvY2xpc3RfYmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogIAkJCQkg ICBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24gKmJhdG9uLAogIAkJCQkgICBzdHJ1Y3QgYXR0 cmlidXRlICphdHRyKTsKICAKQEAgLTE2NTEsNyArMTcyMSw3IEBAIGluZGV4IDFkNTFkYjIuLmZl NTY3MDkgMTAwNjQ0CiAgc3RhdGljIHZvaWQgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChz dHJ1Y3QgYXR0cmlidXRlICphdHRyLAogIAkJCQkJIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkJ CSBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7Ci1AQCAtMTUwNCw3ICsxNTIyLDcgQEAgc3RhdGljIGhh c2h2YWxfdCBwYXJ0aWFsX2RpZV9oYXNoIChjb25zdCB2b2lkICppdGVtKTsKK0BAIC0xNTI0LDcg KzE1NDIsNyBAQCBzdGF0aWMgaGFzaHZhbF90IHBhcnRpYWxfZGllX2hhc2ggKGNvbnN0IHZvaWQg Kml0ZW0pOwogIHN0YXRpYyBpbnQgcGFydGlhbF9kaWVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhz LCBjb25zdCB2b2lkICppdGVtX3Jocyk7CiAgCiAgc3RhdGljIHN0cnVjdCBkd2FyZjJfcGVyX2N1 X2RhdGEgKmR3YXJmMl9maW5kX2NvbnRhaW5pbmdfY29tcF91bml0CkBAIC0xNjYwLDcgKzE3MzAs NyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogIHN0YXRpYyB2b2lkIGluaXRf b25lX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9jdSAqY3UsCiAgCQkJCXN0cnVjdCBkd2FyZjJf cGVyX2N1X2RhdGEgKnBlcl9jdSk7Ci1AQCAtMTUyMSw2ICsxNTM5LDkgQEAgc3RhdGljIHZvaWQg YWdlX2NhY2hlZF9jb21wX3VuaXRzICh2b2lkKTsKK0BAIC0xNTQxLDYgKzE1NTksOSBAQCBzdGF0 aWMgdm9pZCBhZ2VfY2FjaGVkX2NvbXBfdW5pdHMgKHZvaWQpOwogIAogIHN0YXRpYyB2b2lkIGZy ZWVfb25lX2NhY2hlZF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7CiAg CkBAIC0xNjcwLDcgKzE3NDAsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIHN0 YXRpYyBzdHJ1Y3QgdHlwZSAqc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0 IHR5cGUgKiwKICAJCQkJICBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAotQEAgLTE1NDksNiArMTU3 MCw5IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90eXBlX2F0X29mZnNldCAoc2VjdF9v ZmZzZXQsCitAQCAtMTU2OSw2ICsxNTkwLDkgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfZGll X3R5cGVfYXRfb2Zmc2V0IChzZWN0X29mZnNldCwKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKmdl dF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsK ICAKQEAgLTE2ODAsNyArMTc1MCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAg c3RhdGljIHZvaWQgZHdhcmYyX3JlbGVhc2VfcXVldWUgKHZvaWQgKmR1bW15KTsKICAKICBzdGF0 aWMgdm9pZCBxdWV1ZV9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9j dSwKLUBAIC0xNTY3LDYgKzE1OTEsMTIgQEAgc3RhdGljIHZvaWQgZmluZF9maWxlX2FuZF9kaXJl Y3RvcnkgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTE1ODcsNiArMTYxMSwxMiBAQCBzdGF0 aWMgdm9pZCBmaW5kX2ZpbGVfYW5kX2RpcmVjdG9yeSAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAg c3RhdGljIGNoYXIgKmZpbGVfZnVsbF9uYW1lIChpbnQgZmlsZSwgc3RydWN0IGxpbmVfaGVhZGVy ICpsaCwKICAJCQkgICAgIGNvbnN0IGNoYXIgKmNvbXBfZGlyKTsKICAKQEAgLTE2OTMsNyArMTc2 Myw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgc3RhdGljIHZvaWQgaW5pdF9j dXR1X2FuZF9yZWFkX2RpZXMKICAgIChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICp0aGlzX2N1 LCBzdHJ1Y3QgYWJicmV2X3RhYmxlICphYmJyZXZfdGFibGUsCiAgICAgaW50IHVzZV9leGlzdGlu Z19jdSwgaW50IGtlZXAsCi1AQCAtMTU4OCw4ICsxNjE4LDYgQEAgc3RhdGljIHN0cnVjdCBkd29f dW5pdCAqbG9va3VwX2R3b190eXBlX3VuaXQKK0BAIC0xNjA4LDggKzE2MzgsNiBAQCBzdGF0aWMg c3RydWN0IGR3b191bml0ICpsb29rdXBfZHdvX3R5cGVfdW5pdAogIAogIHN0YXRpYyB2b2lkIGZy ZWVfZHdvX2ZpbGVfY2xlYW51cCAodm9pZCAqKTsKICAKQEAgLTE3MDIsNyArMTc3Miw3IEBAIGlu ZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgc3RhdGljIHZvaWQgcHJvY2Vzc19jdV9pbmNs dWRlcyAodm9pZCk7CiAgCiAgI2lmIFdPUkRTX0JJR0VORElBTgotQEAgLTE3NTksODUgKzE3ODcs NiBAQCBkd2FyZjJfbG9jYXRlX3NlY3Rpb25zIChiZmQgKmFiZmQsIGFzZWN0aW9uICpzZWN0cCwg dm9pZCAqdm5hbWVzKQorQEAgLTE3NzksODUgKzE4MDcsNiBAQCBkd2FyZjJfbG9jYXRlX3NlY3Rp b25zIChiZmQgKmFiZmQsIGFzZWN0aW9uICpzZWN0cCwgdm9pZCAqdm5hbWVzKQogICAgICBkd2Fy ZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8gPSAxOwogIH0KICAKQEAgLTE3ODgs NyArMTg1OCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgLyogQSBoZWxwZXIg ZnVuY3Rpb24gdGhhdCBkZWNpZGVzIHdoZXRoZXIgYSBzZWN0aW9uIGlzIGVtcHR5LAogICAgIG9y IG5vdCBwcmVzZW50LiAgKi8KICAKLUBAIC0xODY0LDU2ICsxODEzLDI3IEBAIGR3YXJmMl9yZWFk X3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25f aW5mbyAqaW5mbykKK0BAIC0xODg0LDU2ICsxODMzLDI3IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5m bykKICAgIGlmIChpbmZvLT5yZWFkaW4pCiAgICAgIHJldHVybjsKICAgIGluZm8tPmJ1ZmZlciA9 IE5VTEw7CkBAIC0xODU1LDcgKzE5MjUsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0 NAogIAogICAgLyogV2hlbiBkZWJ1Z2dpbmcgLm8gZmlsZXMsIHdlIG1heSBuZWVkIHRvIGFwcGx5 IHJlbG9jYXRpb25zOyBzZWUKICAgICAgIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0 Y2hlcy8yMDAyLTA0L21zZzAwMTM2Lmh0bWwgLgotQEAgLTE5ODksNiArMTkwOSwxMTEgQEAgZHdh cmYyX2dldF9zZWN0aW9uX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTIwMDks NiArMTkyOSwxMTEgQEAgZHdhcmYyX2dldF9zZWN0aW9uX2luZm8gKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAogICAgKnNpemVwID0gaW5mby0+c2l6ZTsKICB9CiAgCkBAIC0xOTY3LDcgKzIwMzcs NyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAwKICAvKiBEV0FSRiBxdWlja19z eW1ib2xzX2Z1bmN0aW9ucyBzdXBwb3J0LiAgKi8KICAKLUBAIC0yMjM3LDIzICsyMjYyLDE5IEBA IGV4dHJhY3RfY3VfdmFsdWUgKGNvbnN0IGNoYXIgKmJ5dGVzLCBVTE9OR0VTVCAqcmVzdWx0KQor QEAgLTIyNzksMjMgKzIzMDQsMTkgQEAgZXh0cmFjdF9jdV92YWx1ZSAoY29uc3QgY2hhciAqYnl0 ZXMsIFVMT05HRVNUICpyZXN1bHQpCiAgICByZXR1cm4gMTsKICB9CiAgCkBAIC0xOTk5LDcgKzIw NjksNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgICB7CiAgICAgICAgc3Ry dWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqdGhlX2N1OwogICAgICAgIFVMT05HRVNUIG9mZnNldCwg bGVuZ3RoOwotQEAgLTIyNjgsMTUgKzIyODksNDUgQEAgY3JlYXRlX2N1c19mcm9tX2luZGV4IChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgY29uc3QgZ2RiX2J5dGUgKmN1X2xpc3QsCitAQCAtMjMx MCwxNSArMjMzMSw0NSBAQCBjcmVhdGVfY3VzX2Zyb21faW5kZXggKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLCBjb25zdCBnZGJfYnl0ZSAqY3VfbGlzdCwKICAgICAgICB0aGVfY3UtPm9mZnNldC5z ZWN0X29mZiA9IG9mZnNldDsKICAgICAgICB0aGVfY3UtPmxlbmd0aCA9IGxlbmd0aDsKICAgICAg ICB0aGVfY3UtPm9iamZpbGUgPSBvYmpmaWxlOwpAQCAtMjA0Nyw3ICsyMTE3LDcgQEAgaW5kZXgg MWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAvKiBDcmVhdGUgdGhlIHNpZ25hdHVyZWQgdHlwZSBo YXNoIHRhYmxlIGZyb20gdGhlIGluZGV4LiAgKi8KICAKICBzdGF0aWMgaW50Ci1AQCAtMjQ2Niwz MyArMjUxNyw0NCBAQCBmaW5kX3Nsb3RfaW5fbWFwcGVkX2hhc2ggKHN0cnVjdCBtYXBwZWRfaW5k ZXggKmluZGV4LCBjb25zdCBjaGFyICpuYW1lLAorQEAgLTI1MDgsMzMgKzI1NTksNDQgQEAgZmlu ZF9zbG90X2luX21hcHBlZF9oYXNoIChzdHJ1Y3QgbWFwcGVkX2luZGV4ICppbmRleCwgY29uc3Qg Y2hhciAqbmFtZSwKICAgICAgfQogIH0KICAKQEAgLTIxMDUsNyArMjE3NSw3IEBAIGluZGV4IDFk NTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICAvKiBWZXJzaW9uIGNoZWNrLiAgKi8KICAgIHZlcnNp b24gPSBNQVlCRV9TV0FQICgqKG9mZnNldF90eXBlICopIGFkZHIpOwogICAgLyogVmVyc2lvbnMg ZWFybGllciB0aGFuIDMgZW1pdHRlZCBldmVyeSBjb3B5IG9mIGEgcHN5bWJvbC4gIFRoaXMKLUBA IC0yNTA1LDcgKzI1NjcsNyBAQCBkd2FyZjJfcmVhZF9pbmRleCAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUpCitAQCAtMjU0Nyw3ICsyNjA5LDcgQEAgZHdhcmYyX3JlYWRfaW5kZXggKHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlKQogICAgICAgIGlmICghd2FybmluZ19wcmludGVkKQogIAl7CiAgCSAg d2FybmluZyAoXygiU2tpcHBpbmcgb2Jzb2xldGUgLmdkYl9pbmRleCBzZWN0aW9uIGluICVzLiIp LApAQCAtMjExNCwyNCArMjE4NCwyNSBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAog IAkgIHdhcm5pbmdfcHJpbnRlZCA9IDE7CiAgCX0KICAgICAgICByZXR1cm4gMDsKLUBAIC0yNTE4 LDE0ICsyNTgwLDE0IEBAIGR3YXJmMl9yZWFkX2luZGV4IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSkKK0BAIC0yNTYwLDcgKzI2MjIsNyBAQCBkd2FyZjJfcmVhZF9pbmRleCAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUpCiAgICAgICBzZXQgYnJlYWtwb2ludHMgb24gaW5saW5lZCBmdW5jdGlvbnMg YnkgbmFtZSwgc28gd2UgaWdub3JlIHRoZXNlCi0gICAgICBpbmRpY2VzIHVubGVzcyB0aGUgLS11 c2UtZGVwcmVjYXRlZC1pbmRleC1zZWN0aW9ucyBjb21tYW5kIGxpbmUKLSAgICAgIG9wdGlvbiB3 YXMgc3VwcGxpZWQuICAqLworICAgICAgaW5kaWNlcyB1bmxlc3MgdGhlIHVzZXIgaGFzIGRvbmUK KyAgICAgICJzZXQgdXNlLWRlcHJlY2F0ZWQtaW5kZXgtc2VjdGlvbnMgb24iLiAgKi8KIC0gIGlm ICh2ZXJzaW9uIDwgNiAmJiAhdXNlX2RlcHJlY2F0ZWRfaW5kZXhfc2VjdGlvbnMpCiArICBpZiAo dmVyc2lvbiA8IDYgJiYgIWRlcHJlY2F0ZWRfb2spCiAgICAgIHsKICAgICAgICBzdGF0aWMgaW50 IHdhcm5pbmdfcHJpbnRlZCA9IDA7CiAgICAgICAgaWYgKCF3YXJuaW5nX3ByaW50ZWQpCi0gCXsK LSAJICB3YXJuaW5nIChfKCJTa2lwcGluZyBkZXByZWNhdGVkIC5nZGJfaW5kZXggc2VjdGlvbiBp biAlcywgcGFzcyAiCi0gCQkgICAgICItLXVzZS1kZXByZWNhdGVkLWluZGV4LXNlY3Rpb25zIHRv IHVzZSB0aGVtIGFueXdheSIpLAorQEAgLTI1NjksNyArMjYzMSw3IEBAIGR3YXJmMl9yZWFkX2lu ZGV4IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKKyBTa2lwcGluZyBkZXByZWNhdGVkIC5nZGJf aW5kZXggc2VjdGlvbiBpbiAlcy5cblwKKyBEbyBcInNldCB1c2UtZGVwcmVjYXRlZC1pbmRleC1z ZWN0aW9ucyBvblwiIGJlZm9yZSB0aGUgZmlsZSBpcyByZWFkXG5cCisgdG8gdXNlIHRoZSBzZWN0 aW9uIGFueXdheS4iKSwKIC0JCSAgIG9iamZpbGUtPm5hbWUpOwogKwkJICAgZmlsZW5hbWUpOwog IAkgIHdhcm5pbmdfcHJpbnRlZCA9IDE7CiAgCX0KICAgICAgICByZXR1cm4gMDsKLUBAIC0yNTM1 LDIyICsyNTk3LDIxIEBAIGR3YXJmMl9yZWFkX2luZGV4IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSkKK0BAIC0yNTc5LDIyICsyNjQxLDIxIEBAIHRvIHVzZSB0aGUgc2VjdGlvbiBhbnl3YXkuIiks CiAgICBpZiAodmVyc2lvbiA+IDcpCiAgICAgIHJldHVybiAwOwogIApAQCAtMjE2Miw3ICsyMjMz LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgICsraTsKICAKICAgIG1hcC0+ YWRkcmVzc190YWJsZSA9IGFkZHIgKyBNQVlCRV9TV0FQIChtZXRhZGF0YVtpXSk7Ci1AQCAtMjU2 NiwxMSArMjYyNyw1NSBAQCBkd2FyZjJfcmVhZF9pbmRleCAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUpCitAQCAtMjYxMCwxMSArMjY3MSw1NSBAQCB0byB1c2UgdGhlIHNlY3Rpb24gYW55d2F5LiIp LAogIAogICAgbWFwLT5jb25zdGFudF9wb29sID0gYWRkciArIE1BWUJFX1NXQVAgKG1ldGFkYXRh W2ldKTsKICAKQEAgLTIyMjAsNyArMjI5MSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAw NjQ0CiAgICAgIHJldHVybiAwOwogIAogICAgaWYgKHR5cGVzX2xpc3RfZWxlbWVudHMpCi1AQCAt MjU5MSw3ICsyNjk2LDEwIEBAIGR3YXJmMl9yZWFkX2luZGV4IChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSkKK0BAIC0yNjM1LDcgKzI3NDAsMTAgQEAgdG8gdXNlIHRoZSBzZWN0aW9uIGFueXdheS4i KSwKICAJcmV0dXJuIDA7CiAgICAgIH0KICAKQEAgLTIyMzIsNyArMjMwMyw3IEBAIGluZGV4IDFk NTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgCiAgICBkd2FyZjJfcGVyX29iamZpbGUtPmluZGV4X3Rh YmxlID0gbWFwOwogICAgZHdhcmYyX3Blcl9vYmpmaWxlLT51c2luZ19pbmRleCA9IDE7Ci1AQCAt MzYyNCw2ICszNzMyLDIyIEBAIHJlYWRfY29tcF91bml0X2hlYWQgKHN0cnVjdCBjb21wX3VuaXRf aGVhZCAqY3VfaGVhZGVyLAorQEAgLTM2ODYsNiArMzc5NCwyMiBAQCByZWFkX2NvbXBfdW5pdF9o ZWFkIChzdHJ1Y3QgY29tcF91bml0X2hlYWQgKmN1X2hlYWRlciwKICAgIHJldHVybiBpbmZvX3B0 cjsKICB9CiAgCkBAIC0yMjU1LDcgKzIzMjYsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEw MDY0NAogIC8qIFN1YnJvdXRpbmUgb2YgcmVhZF9hbmRfY2hlY2tfY29tcF91bml0X2hlYWQgYW5k CiAgICAgcmVhZF9hbmRfY2hlY2tfdHlwZV91bml0X2hlYWQgdG8gc2ltcGxpZnkgdGhlbS4KICAg ICBQZXJmb3JtIHZhcmlvdXMgZXJyb3IgY2hlY2tpbmcgb24gdGhlIGhlYWRlci4gICovCi1AQCAt MzY0Miw4ICszNzY2LDcgQEAgZXJyb3JfY2hlY2tfY29tcF91bml0X2hlYWQgKHN0cnVjdCBjb21w X3VuaXRfaGVhZCAqaGVhZGVyLAorQEAgLTM3MDQsOCArMzgyOCw3IEBAIGVycm9yX2NoZWNrX2Nv bXBfdW5pdF9oZWFkIChzdHJ1Y3QgY29tcF91bml0X2hlYWQgKmhlYWRlciwKICAJICAgZmlsZW5h bWUpOwogIAogICAgaWYgKGhlYWRlci0+YWJicmV2X29mZnNldC5zZWN0X29mZgpAQCAtMjI2NSw3 ICsyMzM2LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgICAgZXJyb3IgKF8o IkR3YXJmIEVycm9yOiBiYWQgb2Zmc2V0ICgweCVseCkgaW4gY29tcGlsYXRpb24gdW5pdCBoZWFk ZXIgIgogIAkgICAiKG9mZnNldCAweCVseCArIDYpIFtpbiBtb2R1bGUgJXNdIiksCiAgCSAgIChs b25nKSBoZWFkZXItPmFiYnJldl9vZmZzZXQuc2VjdF9vZmYsIChsb25nKSBoZWFkZXItPm9mZnNl dC5zZWN0X29mZiwKLUBAIC0zODgwLDYgKzQwMDMsNyBAQCBjcmVhdGVfZGVidWdfdHlwZXNfaGFz aF90YWJsZSAoc3RydWN0IGR3b19maWxlICpkd29fZmlsZSwKK0BAIC0zOTQyLDYgKzQwNjUsNyBA QCBjcmVhdGVfZGVidWdfdHlwZXNfaGFzaF90YWJsZSAoc3RydWN0IGR3b19maWxlICpkd29fZmls ZSwKICAgICAgewogICAgICAgIGJmZCAqYWJmZDsKICAgICAgICBnZGJfYnl0ZSAqaW5mb19wdHIs ICplbmRfcHRyOwpAQCAtMjI3Myw3ICsyMzQ0LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAx MDA2NDQKICAKICAgICAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCBzZWN0aW9uKTsK ICAgICAgICBpbmZvX3B0ciA9IHNlY3Rpb24tPmJ1ZmZlcjsKLUBAIC0zODkxLDYgKzQwMTUsMTEg QEAgY3JlYXRlX2RlYnVnX3R5cGVzX2hhc2hfdGFibGUgKHN0cnVjdCBkd29fZmlsZSAqZHdvX2Zp bGUsCitAQCAtMzk1Myw2ICs0MDc3LDExIEBAIGNyZWF0ZV9kZWJ1Z190eXBlc19oYXNoX3RhYmxl IChzdHJ1Y3QgZHdvX2ZpbGUgKmR3b19maWxlLAogIAkgbm90IHByZXNlbnQsIGluIHdoaWNoIGNh c2Ugc2VjdGlvbi0+YXNlY3Rpb24gd2lsbCBiZSBOVUxMLiAgKi8KICAgICAgICBhYmZkID0gc2Vj dGlvbi0+YXNlY3Rpb24tPm93bmVyOwogIApAQCAtMjI4NSw3ICsyMzU2LDcgQEAgaW5kZXggMWQ1 MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgICAgICBpZiAodHlwZXNfaHRhYiA9PSBOVUxMKQogIAl7 CiAgCSAgaWYgKGR3b19maWxlKQotQEAgLTQxMzAsNyArNDI1OSw4IEBAIGluaXRfY3V0dV9hbmRf cmVhZF9kaWVzIChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICp0aGlzX2N1LAorQEAgLTQxOTIs NyArNDMyMSw4IEBAIGluaXRfY3V0dV9hbmRfcmVhZF9kaWVzIChzdHJ1Y3QgZHdhcmYyX3Blcl9j dV9kYXRhICp0aGlzX2N1LAogICAgZHdhcmYyX3JlYWRfc2VjdGlvbiAob2JqZmlsZSwgc2VjdGlv bik7CiAgCiAgICBiZWdpbl9pbmZvX3B0ciA9IGluZm9fcHRyID0gc2VjdGlvbi0+YnVmZmVyICsg dGhpc19jdS0+b2Zmc2V0LnNlY3Rfb2ZmOwpAQCAtMjI5NSw3ICsyMzY2LDcgQEAgaW5kZXggMWQ1 MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAKICAgIGlmICh1c2VfZXhpc3RpbmdfY3UgJiYgdGhpc19j dS0+Y3UgIT0gTlVMTCkKICAgICAgewotQEAgLTQ1MTIsNyArNDY0Miw3IEBAIGluaXRfY3V0dV9h bmRfcmVhZF9kaWVzX3NpbXBsZSAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqdGhpc19jdSwK K0BAIC00NTc0LDcgKzQ3MDQsNyBAQCBpbml0X2N1dHVfYW5kX3JlYWRfZGllc19zaW1wbGUgKHN0 cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnRoaXNfY3UsCiAgCQkJCXZvaWQgKmRhdGEpCiAgewog ICAgaW5pdF9jdXR1X2FuZF9yZWFkX2RpZXNfbm9fZm9sbG93ICh0aGlzX2N1LApAQCAtMjMwNCw3 ICsyMzc1LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJCQkJICAgICBOVUxM LAogIAkJCQkgICAgIGRpZV9yZWFkZXJfZnVuYywgZGF0YSk7CiAgfQotQEAgLTUxMzIsNiArNTI2 Miw5IEBAIHNldF9wYXJ0aWFsX3VzZXIgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTUy MDIsNiArNTMzMiw5IEBAIHNldF9wYXJ0aWFsX3VzZXIgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl KQogICAgICAgIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0ID0gcGVyX2N1LT52LnBzeW10YWI7 CiAgICAgICAgaW50IGo7CiAgCkBAIC0yMzE0LDcgKzIzODUsNyBAQCBpbmRleCAxZDUxZGIyLi5m ZTU2NzA5IDEwMDY0NAogICAgICAgIGZvciAoaiA9IDA7IGogPCBwc3QtPm51bWJlcl9vZl9kZXBl bmRlbmNpZXM7ICsraikKICAJewogIAkgIC8qIFNldCB0aGUgJ3VzZXInIGZpZWxkIG9ubHkgaWYg aXQgaXMgbm90IGFscmVhZHkgc2V0LiAgKi8KLUBAIC01MjI2LDM4ICs1MzU5LDMyIEBAIGxvYWRf cGFydGlhbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnRoaXNfY3UpCitA QCAtNTI5NiwzOCArNTQyOSwzMiBAQCBsb2FkX3BhcnRpYWxfY29tcF91bml0IChzdHJ1Y3QgZHdh cmYyX3Blcl9jdV9kYXRhICp0aGlzX2N1KQogIAkJCSAgIGxvYWRfcGFydGlhbF9jb21wX3VuaXRf cmVhZGVyLCBOVUxMKTsKICB9CiAgCkBAIC0yMzY1LDcgKzI0MzYsNyBAQCBpbmRleCAxZDUxZGIy Li5mZTU2NzA5IDEwMDY0NAogIAogICAgICAgIC8qIFNhdmUgdGhlIGNvbXBpbGF0aW9uIHVuaXQg Zm9yIGxhdGVyIGxvb2t1cC4gICovCiAgICAgICAgdGhpc19jdSA9IG9ic3RhY2tfYWxsb2MgKCZv YmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCi1AQCAtNTI2NSwyMCArNTM5Miw1MCBAQCBjcmVhdGVf YWxsX2NvbXBfdW5pdHMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTUzMzUsMjAgKzU0 NjIsNTAgQEAgY3JlYXRlX2FsbF9jb21wX3VuaXRzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkK ICAgICAgICBtZW1zZXQgKHRoaXNfY3UsIDAsIHNpemVvZiAoKnRoaXNfY3UpKTsKICAgICAgICB0 aGlzX2N1LT5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgdGhpc19jdS0+bGVuZ3RoID0gbGVuZ3Ro ICsgaW5pdGlhbF9sZW5ndGhfc2l6ZTsKQEAgLTI0MjMsNyArMjQ5NCw3IEBAIGluZGV4IDFkNTFk YjIuLmZlNTY3MDkgMTAwNjQ0CiAgCiAgICBkd2FyZjJfcGVyX29iamZpbGUtPmFsbF9jb21wX3Vu aXRzCiAgICAgID0gb2JzdGFja19hbGxvYyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLUBA IC01MzcxLDYgKzU1MjgsNyBAQCBzY2FuX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKmZpcnN0X2RpZSwgQ09SRV9BRERSICpsb3dwYywKK0BAIC01NDQxLDYgKzU1OTgs NyBAQCBzY2FuX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKmZpcnN0 X2RpZSwgQ09SRV9BRERSICpsb3dwYywKICAJCSAgfQogIAogIAkJcGVyX2N1ID0gZHdhcmYyX2Zp bmRfY29udGFpbmluZ19jb21wX3VuaXQgKHBkaS0+ZC5vZmZzZXQsCkBAIC0yNDMxLDcgKzI1MDIs NyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJCQkJCQkgICBjdS0+b2JqZmls ZSk7CiAgCiAgCQkvKiBHbyByZWFkIHRoZSBwYXJ0aWFsIHVuaXQsIGlmIG5lZWRlZC4gICovCi1A QCAtNTQyOCw3ICs1NTg2LDggQEAgcGFydGlhbF9kaWVfcGFyZW50X3Njb3BlIChzdHJ1Y3QgcGFy dGlhbF9kaWVfaW5mbyAqcGRpLAorQEAgLTU0OTgsNyArNTY1Niw4IEBAIHBhcnRpYWxfZGllX3Bh cmVudF9zY29wZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKICAKICAgIHJlYWxfcGRp ID0gcGRpOwogICAgd2hpbGUgKHJlYWxfcGRpLT5oYXNfc3BlY2lmaWNhdGlvbikKQEAgLTI0NDEs NyArMjUxMiw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgCiAgICBwYXJlbnQg PSByZWFsX3BkaS0+ZGllX3BhcmVudDsKICAgIGlmIChwYXJlbnQgPT0gTlVMTCkKLUBAIC01OTI4 LDYgKzYwODcsOSBAQCBza2lwX29uZV9kaWUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNz ICpyZWFkZXIsIGdkYl9ieXRlICppbmZvX3B0ciwKK0BAIC01OTk4LDYgKzYxNTcsOSBAQCBza2lw X29uZV9kaWUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFkZXIsIGdkYl9ieXRl ICppbmZvX3B0ciwKICAJICBlbHNlCiAgCSAgICBpbmZvX3B0ciArPSBjdS0+aGVhZGVyLm9mZnNl dF9zaXplOwogIAkgIGJyZWFrOwpAQCAtMjQ1MSw3ICsyNTIyLDcgQEAgaW5kZXggMWQ1MWRiMi4u ZmU1NjcwOSAxMDA2NDQKICAJY2FzZSBEV19GT1JNX2FkZHI6CiAgCSAgaW5mb19wdHIgKz0gY3Ut PmhlYWRlci5hZGRyX3NpemU7CiAgCSAgYnJlYWs7Ci1AQCAtNTk1Nyw2ICs2MTE5LDcgQEAgc2tp cF9vbmVfZGllIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLCBnZGJfYnl0 ZSAqaW5mb19wdHIsCitAQCAtNjAyNyw2ICs2MTg5LDcgQEAgc2tpcF9vbmVfZGllIChjb25zdCBz dHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLCBnZGJfYnl0ZSAqaW5mb19wdHIsCiAgCSAg YnJlYWs7CiAgCWNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgogIAljYXNlIERXX0ZPUk1fc3RycDoK QEAgLTI0NTksMTcgKzI1MzAsMTggQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJ ICBpbmZvX3B0ciArPSBjdS0+aGVhZGVyLm9mZnNldF9zaXplOwogIAkgIGJyZWFrOwogIAljYXNl IERXX0ZPUk1fZXhwcmxvYzoKLUBAIC02NjI0LDcgKzY3ODcsOCBAQCBwcm9jZXNzX2Z1bGxfY29t cF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UsCitAQCAtNjY5NCw3ICs2 ODU3LDkgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0 YSAqcGVyX2N1LAogICAgICAgaXQsIGJ5IHNjYW5uaW5nIHRoZSBESUUncyBiZWxvdyB0aGUgY29t cGlsYXRpb24gdW5pdC4gICovCiAgICBnZXRfc2NvcGVfcGNfYm91bmRzIChjdS0+ZGllcywgJmxv d3BjLCAmaGlnaHBjLCBjdSk7CiAgCiAtICBzdGF0aWNfYmxvY2sgPSBlbmRfc3ltdGFiX2dldF9z dGF0aWNfYmxvY2sgKGhpZ2hwYyArIGJhc2VhZGRyLCBvYmpmaWxlLCAwKTsKLSsgIHN0YXRpY19i bG9jayA9IGVuZF9zeW10YWJfZ2V0X3N0YXRpY19ibG9jayAoaGlnaHBjICsgYmFzZWFkZHIsIG9i amZpbGUsIDAsCi0rCQkJCQkgICAgcGVyX2N1LT5zLmltcG9ydGVkX3N5bXRhYnMgIT0gTlVMTCk7 CisrICBzdGF0aWNfYmxvY2sKKysgICAgPSBlbmRfc3ltdGFiX2dldF9zdGF0aWNfYmxvY2sgKGhp Z2hwYyArIGJhc2VhZGRyLCBvYmpmaWxlLCAwLAorKwkJCQkgICBwZXJfY3UtPnMuaW1wb3J0ZWRf c3ltdGFicyAhPSBOVUxMKTsKICAKICAgIC8qIElmIHRoZSBjb21wIHVuaXQgaGFzIERXX0FUX3Jh bmdlcywgaXQgbWF5IGhhdmUgZGlzY29udGlndW91cyByYW5nZXMuCiAgICAgICBBbHNvLCBEV19B VF9yYW5nZXMgbWF5IHJlY29yZCByYW5nZXMgbm90IGJlbG9uZ2luZyB0byBhbnkgY2hpbGQgRElF cwotQEAgLTY3NzUsOSArNjkzOSwxMSBAQCBwcm9jZXNzX2ltcG9ydGVkX3VuaXRfZGllIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNjg0NSw5ICs3MDEw LDExIEBAIHByb2Nlc3NfaW1wb3J0ZWRfdW5pdF9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpw ZXJfY3U7CiAgICAgICAgc3RydWN0IHN5bXRhYiAqaW1wb3J0ZWRfc3ltdGFiOwogICAgICAgIHNl Y3Rfb2Zmc2V0IG9mZnNldDsKQEAgLTI0ODIsNyArMjU1NCw3IEBAIGluZGV4IDFkNTFkYjIuLmZl NTY3MDkgMTAwNjQ0CiAgCiAgICAgICAgLyogUXVldWUgdGhlIHVuaXQsIGlmIG5lZWRlZC4gICov CiAgICAgICAgaWYgKG1heWJlX3F1ZXVlX2NvbXBfdW5pdCAoY3UsIHBlcl9jdSwgY3UtPmxhbmd1 YWdlKSkKLUBAIC04MDQ2LDI0ICs4MjEyLDIyIEBAIHRyeV9vcGVuX2R3b19maWxlIChjb25zdCBj aGFyICpmaWxlX25hbWUpCitAQCAtODExNiwyNCArODI4MywyMSBAQCB0cnlfb3Blbl9kd29fZmls ZSAoY29uc3QgY2hhciAqZmlsZV9uYW1lKQogICAgaWYgKGRlc2MgPCAwKQogICAgICByZXR1cm4g TlVMTDsKICAKQEAgLTI0OTMsNyArMjU2NSw2IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAw NjQ0CiAgICAgICAgeGZyZWUgKGFic29sdXRlX25hbWUpOwogICAgICAgIHJldHVybiBOVUxMOwog ICAgICB9Ci0rICBnZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChzeW1fYmZkKTsKICsgIHhmcmVlIChh YnNvbHV0ZV9uYW1lKTsKICAgIGJmZF9zZXRfY2FjaGVhYmxlIChzeW1fYmZkLCAxKTsKICAKQEAg LTI1MTEsNyArMjU4Miw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICByZXR1 cm4gc3ltX2JmZDsKICB9CiAgCi1AQCAtODI1NSwyMCArODQxOSw3IEBAIGZyZWVfZHdvX2ZpbGUg KHN0cnVjdCBkd29fZmlsZSAqZHdvX2ZpbGUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAg LTgzMjUsMjAgKzg0ODksNyBAQCBmcmVlX2R3b19maWxlIChzdHJ1Y3QgZHdvX2ZpbGUgKmR3b19m aWxlLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKICAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9p bmZvICpzZWN0aW9uOwogIAogICAgZ2RiX2Fzc2VydCAoZHdvX2ZpbGUtPmR3b19iZmQgIT0gb2Jq ZmlsZS0+b2JmZCk7CkBAIC0yNTMzLDcgKzI2MDQsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5 IDEwMDY0NAogIAogICAgVkVDX2ZyZWUgKGR3YXJmMl9zZWN0aW9uX2luZm9fZGVmLCBkd29fZmls ZS0+c2VjdGlvbnMudHlwZXMpOwogIH0KLUBAIC0xMDY1MSw2ICsxMDgwMiwyOSBAQCBwcm9jZXNz X2VudW1lcmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtMTA3MjEsNiArMTA4NzIsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29w ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgbmV3X3N5 bWJvbCAoZGllLCB0aGlzX3R5cGUsIGN1KTsKICB9CiAgCkBAIC0yNTYzLDcgKzI2MzQsNyBAQCBp bmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIC8qIEV4dHJhY3QgYWxsIGluZm9ybWF0aW9u IGZyb20gYSBEV19UQUdfYXJyYXlfdHlwZSBESUUgYW5kIHB1dCBpdCBpbgogICAgIHRoZSBESUUn cyB0eXBlIGZpZWxkLiAgRm9yIG5vdywgdGhpcyBvbmx5IGhhbmRsZXMgb25lIGRpbWVuc2lvbmFs CiAgICAgYXJyYXlzLiAgKi8KLUBAIC0xMDY2NCw3ICsxMDgzOCw3IEBAIHJlYWRfYXJyYXlfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTEwNzM0 LDcgKzEwOTA4LDcgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlLCAqcmFuZ2Vf dHlwZSwgKmluZGV4X3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqKnJhbmdlX3R5cGVzID0gTlVMTDsK ICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0yNTcyLDcgKzI2NDMsNyBAQCBpbmRleCAx ZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgICBj aGFyICpuYW1lOwogIAotQEAgLTEwNzE3LDE3ICsxMDg5MSwxOSBAQCByZWFkX2FycmF5X3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMDc4Nywx NyArMTA5NjEsMTkgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBlOwogIAogICAgaWYgKHJl YWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFqb3IpCkBAIC0yNjAzLDcg KzI2NzQsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogICAgLyogVW5kZXJz dGFuZCBEd2FyZjIgc3VwcG9ydCBmb3IgdmVjdG9yIHR5cGVzIChsaWtlIHRoZXkgb2NjdXIgb24K ICAgICAgIHRoZSBQb3dlclBDIHcvIEFsdGlWZWMpLiAgR2NjIGp1c3QgYWRkcyBhbm90aGVyIGF0 dHJpYnV0ZSB0byB0aGUKLUBAIC0xMTIxMSwyOSArMTEzODcsMTE0IEBAIHJlYWRfdGFnX3N0cmlu Z190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt MTEyODEsMjkgKzExNDU3LDExNCBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAq cmFuZ2VfdHlwZSwgKmluZGV4X3R5cGUsICpjaGFyX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyOwpAQCAtMjczMSw3ICsyODAyLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2 NDQKICAgIGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFn ZV9kZWZuLCBnZGJhcmNoKTsKICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNo YXJfdHlwZSwgcmFuZ2VfdHlwZSk7CiAgCi1AQCAtMTE1MzcsNyArMTE3OTgsNyBAQCByZWFkX3N1 YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC0xMTYwNyw3ICsxMTg2OCw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmJhc2VfdHlw ZTsKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 cjsKQEAgLTI3NDAsNyArMjgxMSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAg ICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7CiAgICBjaGFyICpuYW1lOwogICAgTE9OR0VTVCBu ZWdhdGl2ZV9tYXNrOwotQEAgLTExNTkzLDQyICsxMTg1NCw2IEBAIHJlYWRfc3VicmFuZ2VfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTExNjYz LDQyICsxMTkyNCw2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkJCQkgICAgICAiLSBESUUgYXQgMHgleCBbaW4gbW9k dWxlICVzXSIpLAogIAkgICAgICAgZGllLT5vZmZzZXQuc2VjdF9vZmYsIGN1LT5vYmpmaWxlLT5u YW1lKTsKICAKQEAgLTI3ODMsNyArMjg1NCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAw NjQ0CiAgICAvKiBEd2FyZi0yIHNwZWNpZmljYXRpb25zIGV4cGxpY2l0bHkgYWxsb3dzIHRvIGNy ZWF0ZSBzdWJyYW5nZSB0eXBlcwogICAgICAgd2l0aG91dCBzcGVjaWZ5aW5nIGEgYmFzZSB0eXBl LgogICAgICAgSW4gdGhhdCBjYXNlLCB0aGUgYmFzZSB0eXBlIG11c3QgYmUgc2V0IHRvIHRoZSB0 eXBlIG9mCi1AQCAtMTE2NjcsMjQgKzExODkyLDE2MyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMTczNywyNCAr MTE5NjIsMTYzIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogIAl9CiAgICAgIH0KICAKQEAgLTI5NjEsNyArMzAzMiw3IEBA IGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgCiAgICBuYW1lID0gZHdhcmYyX25hbWUg KGRpZSwgY3UpOwogICAgaWYgKG5hbWUpCi1AQCAtMTI0NzQsNiArMTI4MzgsOCBAQCByZWFkX3Bh cnRpYWxfZGllIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAorQEAgLTEy NTQ0LDYgKzEyOTA4LDggQEAgcmVhZF9wYXJ0aWFsX2RpZSAoY29uc3Qgc3RydWN0IGRpZV9yZWFk ZXJfc3BlY3MgKnJlYWRlciwKICAJY2FzZSBEV19BVF9leHRlbnNpb246CiAgCSAgcGFydF9kaWUt Pmhhc19zcGVjaWZpY2F0aW9uID0gMTsKICAJICBwYXJ0X2RpZS0+c3BlY19vZmZzZXQgPSBkd2Fy ZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0ICgmYXR0cik7CkBAIC0yOTcwLDcgKzMwNDEsNyBAQCBpbmRl eCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkgIGJyZWFrOwogIAljYXNlIERXX0FUX3NpYmxp bmc6CiAgCSAgLyogSWdub3JlIGFic29sdXRlIHNpYmxpbmdzLCB0aGV5IG1pZ2h0IHBvaW50IG91 dHNpZGUgb2YKLUBAIC0xMjUyMCw3ICsxMjg4NiwxMSBAQCByZWFkX3BhcnRpYWxfZGllIChjb25z dCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAorQEAgLTEyNTkwLDcgKzEyOTU2LDEx IEBAIHJlYWRfcGFydGlhbF9kaWUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFk ZXIsCiAgCiAgCWNhc2UgRFdfQVRfaW1wb3J0OgogIAkgIGlmIChwYXJ0X2RpZS0+dGFnID09IERX X1RBR19pbXBvcnRlZF91bml0KQpAQCAtMjk4Myw3ICszMDU0LDcgQEAgaW5kZXggMWQ1MWRiMi4u ZmU1NjcwOSAxMDA2NDQKICAJICBicmVhazsKICAKICAJZGVmYXVsdDoKLUBAIC0xMjU5MSwxMyAr MTI5NjEsMTQgQEAgZmluZF9wYXJ0aWFsX2RpZV9pbl9jb21wX3VuaXQgKHNlY3Rfb2Zmc2V0IG9m ZnNldCwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTI2NjEsMTMgKzEzMDMxLDE0IEBAIGZp bmRfcGFydGlhbF9kaWVfaW5fY29tcF91bml0IChzZWN0X29mZnNldCBvZmZzZXQsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogICAgIERXX0ZPUk1fcmVmX3NpZzgpLiAgKi8KICAKICBzdGF0aWMgc3Ry dWN0IHBhcnRpYWxfZGllX2luZm8gKgpAQCAtMzAwMCw3ICszMDcxLDcgQEAgaW5kZXggMWQ1MWRi Mi4uZmU1NjcwOSAxMDA2NDQKICAgICAgewogICAgICAgIHBkID0gZmluZF9wYXJ0aWFsX2RpZV9p bl9jb21wX3VuaXQgKG9mZnNldCwgY3UpOwogICAgICAgIGlmIChwZCAhPSBOVUxMKQotQEAgLTEy NjE2LDcgKzEyOTg3LDggQEAgZmluZF9wYXJ0aWFsX2RpZSAoc2VjdF9vZmZzZXQgb2Zmc2V0LCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMjY4Niw3ICsxMzA1Nyw4IEBAIGZpbmRfcGFydGlh bF9kaWUgKHNlY3Rfb2Zmc2V0IG9mZnNldCwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkgKGxv bmcpIGN1LT5oZWFkZXIub2Zmc2V0LnNlY3Rfb2ZmLCAobG9uZykgb2Zmc2V0LnNlY3Rfb2ZmLAog IAkJIGJmZF9nZXRfZmlsZW5hbWUgKG9iamZpbGUtPm9iZmQpKTsKICAJfQpAQCAtMzAxMCw3ICsz MDgxLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAKICAgICAgICBpZiAocGVy X2N1LT5jdSA9PSBOVUxMIHx8IHBlcl9jdS0+Y3UtPnBhcnRpYWxfZGllcyA9PSBOVUxMKQogIAls b2FkX3BhcnRpYWxfY29tcF91bml0IChwZXJfY3UpOwotQEAgLTEyNjc0LDcgKzEzMDQ2LDggQEAg Z3Vlc3NfcGFydGlhbF9kaWVfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpzdHJ1Y3RfcGRpLAorQEAgLTEyNzQ0LDcgKzEzMTE2LDggQEAgZ3Vlc3NfcGFydGlhbF9kaWVf c3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpzdHJ1Y3RfcGRpLAogIAog ICAgcmVhbF9wZGkgPSBzdHJ1Y3RfcGRpOwogICAgd2hpbGUgKHJlYWxfcGRpLT5oYXNfc3BlY2lm aWNhdGlvbikKQEAgLTMwMjAsNyArMzA5MSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAw NjQ0CiAgCiAgICBpZiAocmVhbF9wZGktPmRpZV9wYXJlbnQgIT0gTlVMTCkKICAgICAgcmV0dXJu OwotQEAgLTEyNzIyLDcgKzEzMDk1LDggQEAgZml4dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0 aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKK0BAIC0xMjc5Miw3ICsxMzE2NSw4IEBAIGZpeHVwX3Bh cnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgICAgIHsKICAg ICAgICBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3BlY19kaWU7CiAgCkBAIC0zMDMwLDcgKzMx MDEsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogICAgICAgIGZpeHVwX3Bh cnRpYWxfZGllIChzcGVjX2RpZSwgY3UpOwogIAotQEAgLTEyODEwLDYgKzEzMTg0LDEwIEBAIHJl YWRfYXR0cmlidXRlX3ZhbHVlIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVy LAorQEAgLTEyODgwLDYgKzEzMjU0LDEwIEBAIHJlYWRfYXR0cmlidXRlX3ZhbHVlIChjb25zdCBz dHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAogIAkJCQkgICAgICAgJmN1LT5oZWFkZXIs ICZieXRlc19yZWFkKTsKICAgICAgICBpbmZvX3B0ciArPSBieXRlc19yZWFkOwogICAgICAgIGJy ZWFrOwpAQCAtMzA0MSw3ICszMTEyLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQK ICAgICAgY2FzZSBEV19GT1JNX2FkZHI6CiAgICAgICAgRFdfQUREUiAoYXR0cikgPSByZWFkX2Fk ZHJlc3MgKGFiZmQsIGluZm9fcHRyLCBjdSwgJmJ5dGVzX3JlYWQpOwogICAgICAgIGluZm9fcHRy ICs9IGJ5dGVzX3JlYWQ7Ci1AQCAtMTI4NTIsMTAgKzEzMjMwLDI1IEBAIHJlYWRfYXR0cmlidXRl X3ZhbHVlIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAorQEAgLTEyOTIy LDEwICsxMzMwMCwyNSBAQCByZWFkX2F0dHJpYnV0ZV92YWx1ZSAoY29uc3Qgc3RydWN0IGRpZV9y ZWFkZXJfc3BlY3MgKnJlYWRlciwKICAgICAgICBpbmZvX3B0ciArPSBieXRlc19yZWFkOwogICAg ICAgIGJyZWFrOwogICAgICBjYXNlIERXX0ZPUk1fc3RycDoKQEAgLTMwNzEsNyArMzE0Miw3IEBA IGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2Ug RFdfRk9STV9leHBybG9jOgogICAgICBjYXNlIERXX0ZPUk1fYmxvY2s6Ci1AQCAtMTI5NjcsNiAr MTMzNjAsMTAgQEAgcmVhZF9hdHRyaWJ1dGVfdmFsdWUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVy X3NwZWNzICpyZWFkZXIsCitAQCAtMTMwMzcsNiArMTM0MzAsMTAgQEAgcmVhZF9hdHRyaWJ1dGVf dmFsdWUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFkZXIsCiAgCSAgICAgYmZk X2dldF9maWxlbmFtZSAoYWJmZCkpOwogICAgICB9CiAgCkBAIC0zMDgyLDcgKzMxNTMsNyBAQCBp bmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgLyogV2UgaGF2ZSBzZWVuIGluc3RhbmNl cyB3aGVyZSB0aGUgY29tcGlsZXIgdHJpZWQgdG8gZW1pdCBhIGJ5dGUKICAgICAgIHNpemUgYXR0 cmlidXRlIG9mIC0xIHdoaWNoIGVuZGVkIHVwIGJlaW5nIGVuY29kZWQgYXMgYW4gdW5zaWduZWQK ICAgICAgIDB4ZmZmZmZmZmYuICBBbHRob3VnaCAweGZmZmZmZmZmIGlzIHRlY2huaWNhbGx5IGEg dmFsaWQgc2l6ZSB2YWx1ZSwKLUBAIC0xMzI2Myw2ICsxMzY2MCwzMCBAQCByZWFkX2luZGlyZWN0 X3N0cmluZ19hdF9vZmZzZXQgKGJmZCAqYWJmZCwgTE9OR0VTVCBzdHJfb2Zmc2V0KQorQEAgLTEz MzMzLDYgKzEzNzMwLDMwIEBAIHJlYWRfaW5kaXJlY3Rfc3RyaW5nX2F0X29mZnNldCAoYmZkICph YmZkLCBMT05HRVNUIHN0cl9vZmZzZXQpCiAgICByZXR1cm4gKGNoYXIgKikgKGR3YXJmMl9wZXJf b2JqZmlsZS0+c3RyLmJ1ZmZlciArIHN0cl9vZmZzZXQpOwogIH0KICAKQEAgLTMxMTMsNyArMzE4 NCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgc3RhdGljIGNoYXIgKgogIHJl YWRfaW5kaXJlY3Rfc3RyaW5nIChiZmQgKmFiZmQsIGdkYl9ieXRlICpidWYsCiAgCQkgICAgICBj b25zdCBzdHJ1Y3QgY29tcF91bml0X2hlYWQgKmN1X2hlYWRlciwKLUBAIC0xMzczNCw2ICsxNDE1 NSwzMCBAQCBhZGRfZmlsZV9uYW1lIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLAorQEAgLTEzODA0 LDYgKzE0MjI1LDMwIEBAIGFkZF9maWxlX25hbWUgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsCiAg ICBmZS0+c3ltdGFiID0gTlVMTDsKICB9CiAgCkBAIC0zMTQ0LDcgKzMyMTUsNyBAQCBpbmRleCAx ZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIC8qIFJlYWQgdGhlIHN0YXRlbWVudCBwcm9ncmFtIGhl YWRlciBzdGFydGluZyBhdCBPRkZTRVQgaW4KICAgICAuZGVidWdfbGluZSwgb3IgLmRlYnVnX2xp bmUuZHdvLiAgUmV0dXJuIGEgcG9pbnRlcgogICAgIHRvIGEgc3RydWN0IGxpbmVfaGVhZGVyLCBh bGxvY2F0ZWQgdXNpbmcgeG1hbGxvYy4KLUBAIC0xMzc1NCwxMyArMTQxOTksNyBAQCBkd2FyZl9k ZWNvZGVfbGluZV9oZWFkZXIgKHVuc2lnbmVkIGludCBvZmZzZXQsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTEzODI0LDEzICsxNDI2OSw3IEBAIGR3YXJmX2RlY29kZV9saW5lX2hlYWRlciAo dW5zaWduZWQgaW50IG9mZnNldCwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgZHdh cmYyX3NlY3Rpb25faW5mbyAqc2VjdGlvbjsKICAgIGJmZCAqYWJmZDsKICAKQEAgLTMxNTksNyAr MzIzMCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICBkd2FyZjJfcmVhZF9z ZWN0aW9uIChkd2FyZjJfcGVyX29iamZpbGUtPm9iamZpbGUsIHNlY3Rpb24pOwogICAgaWYgKHNl Y3Rpb24tPmJ1ZmZlciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMTQwODUsNyArMTQ1MjQsNyBAQCBk d2FyZl9kZWNvZGVfbGluZXNfMSAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgY29uc3QgY2hhciAq Y29tcF9kaXIsCitAQCAtMTQxNTUsNyArMTQ1OTQsNyBAQCBkd2FyZl9kZWNvZGVfbGluZXNfMSAo c3RydWN0IGxpbmVfaGVhZGVyICpsaCwgY29uc3QgY2hhciAqY29tcF9kaXIsCiAgCQkJIEdDZCBi eSB0aGUgbGlua2VyLiAgSWdub3JlIGl0LiAgUFIgZ2RiLzEyNTI4ICovCiAgCiAgCQkgICAgICBs b25nIGxpbmVfb2Zmc2V0CkBAIC0zMTY4LDcgKzMyMzksNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2 NzA5IDEwMDY0NAogIAogIAkJICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAog IAkJCQkgXygiLmRlYnVnX2xpbmUgYWRkcmVzcyBhdCBvZmZzZXQgMHglbHggaXMgMCAiCi1AQCAt MTQ0NjQsMTAgKzE0OTAzLDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKK0BAIC0xNDUzNCwxMCArMTQ5NzMsMTIgQEAg dmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJv bCAqc3ltLAogICAgICAgKGkuZS4gd2hlbiB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciBvciBtZW1v cnkgbG9jYXRpb24gaXMKICAgICAgIHJlZmVyZW5jZWQsIG9yIGEgdGhyZWFkLWxvY2FsIGJsb2Nr LCBldGMuKS4gIFRoZW4gYWdhaW4sIGl0IG1pZ2h0CiAgICAgICBub3QgYmUgd29ydGh3aGlsZS4g IEknbSBhc3N1bWluZyB0aGF0IGl0IGlzbid0IHVubGVzcyBwZXJmb3JtYW5jZQpAQCAtMzE4Myw3 ICszMjU0LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAKICAgIGlmIChTWU1C T0xfQ09NUFVURURfT1BTIChzeW0pID09ICZkd2FyZjJfbG9jbGlzdF9mdW5jcykKICAgICAgY3Ut Pmhhc19sb2NsaXN0ID0gMTsKLUBAIC0xNDUwOCw2ICsxNDk0OSw4IEBAIG5ld19zeW1ib2xfZnVs bCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSwKK0BAIC0xNDU3OCw2ICsxNTAxOSw4IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwK ICAgICAgICBlbHNlCiAgCXN5bSA9IE9CU1RBQ0tfWkFMTE9DICgmb2JqZmlsZS0+b2JqZmlsZV9v YnN0YWNrLCBzdHJ1Y3Qgc3ltYm9sKTsKICAgICAgICBPQkpTVEFUIChvYmpmaWxlLCBuX3N5bXMr Kyk7CkBAIC0zMTkyLDcgKzMyNjMsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAog IAogICAgICAgIC8qIENhY2hlIHRoaXMgc3ltYm9sJ3MgbmFtZSBhbmQgdGhlIG5hbWUncyBkZW1h bmdsZWQgZm9ybSAoaWYgYW55KS4gICovCiAgICAgICAgU1lNQk9MX1NFVF9MQU5HVUFHRSAoc3lt LCBjdS0+bGFuZ3VhZ2UpOwotQEAgLTE0OTMxLDYgKzE1Mzc0LDcgQEAgZHdhcmYyX2NvbnN0X3Zh bHVlX2F0dHIgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCB0eXBlICp0eXBlLAorQEAg LTE1MDAxLDYgKzE1NDQ0LDcgQEAgZHdhcmYyX2NvbnN0X3ZhbHVlX2F0dHIgKHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHIsIHN0cnVjdCB0eXBlICp0eXBlLAogICAgICBjYXNlIERXX0ZPUk1fc3RyaW5n OgogICAgICBjYXNlIERXX0ZPUk1fc3RycDoKICAgICAgY2FzZSBEV19GT1JNX0dOVV9zdHJfaW5k ZXg6CkBAIC0zMjAwLDcgKzMyNzEsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAog ICAgICAgIC8qIERXX1NUUklORyBpcyBhbHJlYWR5IGFsbG9jYXRlZCBvbiB0aGUgb2JqZmlsZSBv YnN0YWNrLCBwb2ludAogIAkgZGlyZWN0bHkgdG8gaXQuICAqLwogICAgICAgICpieXRlcyA9IChn ZGJfYnl0ZSAqKSBEV19TVFJJTkcgKGF0dHIpOwotQEAgLTE1MTE3LDcgKzE1NTYxLDE1IEBAIGxv b2t1cF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHIsCitAQCAtMTUxODcsNyArMTU2MzEsMTUgQEAgbG9va3VwX2RpZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKICAKICAgIC8qIEZpcnN0IHNlZSBp ZiB3ZSBoYXZlIGl0IGNhY2hlZC4gICovCiAgCkBAIC0zMjE3LDcgKzMyODgsNyBAQCBpbmRleCAx ZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgICB7CiAgICAgICAgc2VjdF9vZmZzZXQgb2Zmc2V0 ID0gZHdhcmYyX2dldF9yZWZfZGllX29mZnNldCAoYXR0cik7CiAgCi1AQCAtMTUyODIsNiArMTU3 MzQsOSBAQCByZWFkX3R5cGVfZGllXzEgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKK0BAIC0xNTM1Miw2ICsxNTgwNCw5IEBAIHJlYWRfdHlwZV9kaWVfMSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGJyZWFrOwog ICAgICB9CiAgCkBAIC0zMjI3LDcgKzMyOTgsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEw MDY0NAogICAgcmV0dXJuIHRoaXNfdHlwZTsKICB9CiAgCi1AQCAtMTU4OTAsNiArMTYzNDUsMTAg QEAgZHVtcF9kaWVfc2hhbGxvdyAoc3RydWN0IHVpX2ZpbGUgKmYsIGludCBpbmRlbnQsIHN0cnVj dCBkaWVfaW5mbyAqZGllKQorQEAgLTE1OTYwLDYgKzE2NDE1LDEwIEBAIGR1bXBfZGllX3NoYWxs b3cgKHN0cnVjdCB1aV9maWxlICpmLCBpbnQgaW5kZW50LCBzdHJ1Y3QgZGllX2luZm8gKmRpZSkK ICAJICBmcHJpbnRmX3VuZmlsdGVyZWQgKGYsICJyZWYgYWRkcmVzczogIik7CiAgCSAgZnB1dHNf ZmlsdGVyZWQgKGhleF9zdHJpbmcgKERXX1VOU05EICgmZGllLT5hdHRyc1tpXSkpLCBmKTsKICAJ ICBicmVhazsKQEAgLTMyMzgsNyArMzMwOSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAw NjQ0CiAgCWNhc2UgRFdfRk9STV9yZWYxOgogIAljYXNlIERXX0ZPUk1fcmVmMjoKICAJY2FzZSBE V19GT1JNX3JlZjQ6Ci1AQCAtMTU5MjEsNiArMTYzODAsNyBAQCBkdW1wX2RpZV9zaGFsbG93IChz dHJ1Y3QgdWlfZmlsZSAqZiwgaW50IGluZGVudCwgc3RydWN0IGRpZV9pbmZvICpkaWUpCitAQCAt MTU5OTEsNiArMTY0NTAsNyBAQCBkdW1wX2RpZV9zaGFsbG93IChzdHJ1Y3QgdWlfZmlsZSAqZiwg aW50IGluZGVudCwgc3RydWN0IGRpZV9pbmZvICpkaWUpCiAgCWNhc2UgRFdfRk9STV9zdHJpbmc6 CiAgCWNhc2UgRFdfRk9STV9zdHJwOgogIAljYXNlIERXX0ZPUk1fR05VX3N0cl9pbmRleDoKQEAg LTMyNDYsNyArMzMxNyw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgCSAgZnBy aW50Zl91bmZpbHRlcmVkIChmLCAic3RyaW5nOiBcIiVzXCIgKCVzIGNhbm9uaWNhbGl6ZWQpIiwK ICAJCSAgIERXX1NUUklORyAoJmRpZS0+YXR0cnNbaV0pCiAgCQkgICA/IERXX1NUUklORyAoJmRp ZS0+YXR0cnNbaV0pIDogIiIsCi1AQCAtMTYwMjQsNiArMTY0ODQsNyBAQCBpc19yZWZfYXR0ciAo c3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKK0BAIC0xNjA5NCw2ICsxNjU1NCw3IEBAIGlzX3JlZl9h dHRyIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQogICAgICBjYXNlIERXX0ZPUk1fcmVmNDoKICAg ICAgY2FzZSBEV19GT1JNX3JlZjg6CiAgICAgIGNhc2UgRFdfRk9STV9yZWZfdWRhdGE6CkBAIC0z MjU0LDcgKzMzMjUsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgICAgIHJl dHVybiAxOwogICAgICBkZWZhdWx0OgogICAgICAgIHJldHVybiAwOwotQEAgLTE2MTAxLDcgKzE2 NTYyLDggQEAgZm9sbG93X2RpZV9yZWZfb3Jfc2lnIChzdHJ1Y3QgZGllX2luZm8gKnNyY19kaWUs IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCitAQCAtMTYxNzEsNyArMTY2MzIsOCBAQCBmb2xsb3df ZGllX3JlZl9vcl9zaWcgKHN0cnVjdCBkaWVfaW5mbyAqc3JjX2RpZSwgc3RydWN0IGF0dHJpYnV0 ZSAqYXR0ciwKICAgICBSZXR1cm5zIE5VTEwgaWYgT0ZGU0VUIGlzIGludmFsaWQuICAqLwogIAog IHN0YXRpYyBzdHJ1Y3QgZGllX2luZm8gKgpAQCAtMzI2NCw3ICszMzM1LDcgQEAgaW5kZXggMWQ1 MWRiMi4uZmU1NjcwOSAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgZGllX2luZm8gdGVtcF9kaWU7CiAg ICBzdHJ1Y3QgZHdhcmYyX2N1ICp0YXJnZXRfY3UsICpjdSA9ICpyZWZfY3U7Ci1AQCAtMTYxMTgs MTEgKzE2NTgwLDEzIEBAIGZvbGxvd19kaWVfb2Zmc2V0IChzZWN0X29mZnNldCBvZmZzZXQsIHN0 cnVjdCBkd2FyZjJfY3UgKipyZWZfY3UpCitAQCAtMTYxODgsMTEgKzE2NjUwLDEzIEBAIGZvbGxv d19kaWVfb2Zmc2V0IChzZWN0X29mZnNldCBvZmZzZXQsIHN0cnVjdCBkd2FyZjJfY3UgKipyZWZf Y3UpCiAgICAgICAgaWYgKCEgb2Zmc2V0X2luX2N1X3AgKCZjdS0+aGVhZGVyLCBvZmZzZXQpKQog IAlyZXR1cm4gTlVMTDsKICAgICAgfQpAQCAtMzI4MCw3ICszMzUxLDcgQEAgaW5kZXggMWQ1MWRi Mi4uZmU1NjcwOSAxMDA2NDQKICAKICAgICAgICAvKiBJZiBuZWNlc3NhcnksIGFkZCBpdCB0byB0 aGUgcXVldWUgYW5kIGxvYWQgaXRzIERJRXMuICAqLwogICAgICAgIGlmIChtYXliZV9xdWV1ZV9j b21wX3VuaXQgKGN1LCBwZXJfY3UsIGN1LT5sYW5ndWFnZSkpCi1AQCAtMTYxNTQsNyArMTY2MTgs MTAgQEAgZm9sbG93X2RpZV9yZWYgKHN0cnVjdCBkaWVfaW5mbyAqc3JjX2RpZSwgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0ciwKK0BAIC0xNjIyNCw3ICsxNjY4OCwxMCBAQCBmb2xsb3dfZGllX3JlZiAo c3RydWN0IGRpZV9pbmZvICpzcmNfZGllLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAogICAgc3Ry dWN0IGR3YXJmMl9jdSAqY3UgPSAqcmVmX2N1OwogICAgc3RydWN0IGRpZV9pbmZvICpkaWU7CiAg CkBAIC0zMjkyLDcgKzMzNjMsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAg aWYgKCFkaWUpCiAgICAgIGVycm9yIChfKCJEd2FyZiBFcnJvcjogQ2Fubm90IGZpbmQgRElFIGF0 IDB4JXggcmVmZXJlbmNlZCBmcm9tIERJRSAiCiAgCSAgICJhdCAweCV4IFtpbiBtb2R1bGUgJXNd IiksCi1AQCAtMTYxODUsNyArMTY2NTIsNyBAQCBkd2FyZjJfZmV0Y2hfZGllX2xvY2F0aW9uX2Js b2NrIChjdV9vZmZzZXQgb2Zmc2V0X2luX2N1LAorQEAgLTE2MjU1LDcgKzE2NzIyLDcgQEAgZHdh cmYyX2ZldGNoX2RpZV9sb2NhdGlvbl9ibG9jayAoY3Vfb2Zmc2V0IG9mZnNldF9pbl9jdSwKICAg ICAgbG9hZF9jdSAocGVyX2N1KTsKICAgIGN1ID0gcGVyX2N1LT5jdTsKICAKQEAgLTMzMDEsNyAr MzM3Miw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICBpZiAoIWRpZSkKICAg ICAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBDYW5ub3QgZmluZCBESUUgYXQgMHgleCByZWZlcmVu Y2VkIGluIG1vZHVsZSAlcyIpLAogIAkgICBvZmZzZXQuc2VjdF9vZmYsIHBlcl9jdS0+b2JqZmls ZS0+bmFtZSk7Ci1AQCAtMTY5NzksNiArMTc0NDYsNyBAQCBza2lwX2Zvcm1fYnl0ZXMgKGJmZCAq YWJmZCwgZ2RiX2J5dGUgKmJ5dGVzLCBnZGJfYnl0ZSAqYnVmZmVyX2VuZCwKK0BAIC0xNzA0OSw2 ICsxNzUxNiw3IEBAIHNraXBfZm9ybV9ieXRlcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqYnl0ZXMs IGdkYl9ieXRlICpidWZmZXJfZW5kLAogIAogICAgICBjYXNlIERXX0ZPUk1fc2VjX29mZnNldDoK ICAgICAgY2FzZSBEV19GT1JNX3N0cnA6CkBAIC0zMzA5LDcgKzMzODAsNyBAQCBpbmRleCAxZDUx ZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgICAgIGJ5dGVzICs9IG9mZnNldF9zaXplOwogICAgICAg IGJyZWFrOwogIAotQEAgLTE3MTM0LDcgKzE3NjAyLDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvX2J5 dGVzIChiZmQgKmFiZmQsIGdkYl9ieXRlICptYWNfcHRyLCBnZGJfYnl0ZSAqbWFjX2VuZCwKK0BA IC0xNzIwNCw3ICsxNzY3Miw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb19ieXRlcyAoYmZkICphYmZk LCBnZGJfYnl0ZSAqbWFjX3B0ciwgZ2RiX2J5dGUgKm1hY19lbmQsCiAgCQkJICBzdHJ1Y3QgbWFj cm9fc291cmNlX2ZpbGUgKmN1cnJlbnRfZmlsZSwKICAJCQkgIHN0cnVjdCBsaW5lX2hlYWRlciAq bGgsIGNoYXIgKmNvbXBfZGlyLAogIAkJCSAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKnNl Y3Rpb24sCkBAIC0zMzE4LDcgKzMzODksNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0 NAogIAkJCSAgdW5zaWduZWQgaW50IG9mZnNldF9zaXplLAogIAkJCSAgc3RydWN0IG9iamZpbGUg Km9iamZpbGUsCiAgCQkJICBodGFiX3QgaW5jbHVkZV9oYXNoKQotQEAgLTE3MTg1LDYgKzE3NjUz LDggQEAgZHdhcmZfZGVjb2RlX21hY3JvX2J5dGVzIChiZmQgKmFiZmQsIGdkYl9ieXRlICptYWNf cHRyLCBnZGJfYnl0ZSAqbWFjX2VuZCwKK0BAIC0xNzI1NSw2ICsxNzcyMyw4IEBAIGR3YXJmX2Rl Y29kZV9tYWNyb19ieXRlcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqbWFjX3B0ciwgZ2RiX2J5dGUg Km1hY19lbmQsCiAgICAgICAgICBjYXNlIERXX01BQ1JPX0dOVV91bmRlZjoKICAJY2FzZSBEV19N QUNST19HTlVfZGVmaW5lX2luZGlyZWN0OgogIAljYXNlIERXX01BQ1JPX0dOVV91bmRlZl9pbmRp cmVjdDoKQEAgLTMzMjcsMTMgKzMzOTgsMTQgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2 NDQKICAgICAgICAgICAgewogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBieXRlc19yZWFkOwog ICAgICAgICAgICAgIGludCBsaW5lOwotQEAgLTE3MjA3LDExICsxNzY3NywyMCBAQCBkd2FyZl9k ZWNvZGVfbWFjcm9fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRl ICptYWNfZW5kLAorQEAgLTE3Mjc3LDExICsxNzc0NywyMSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9f Ynl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNfZW5kLAog IAkJc3RyX29mZnNldCA9IHJlYWRfb2Zmc2V0XzEgKGFiZmQsIG1hY19wdHIsIG9mZnNldF9zaXpl KTsKICAJCW1hY19wdHIgKz0gb2Zmc2V0X3NpemU7CiAgCiAtCQlib2R5ID0gcmVhZF9pbmRpcmVj dF9zdHJpbmdfYXRfb2Zmc2V0IChhYmZkLCBzdHJfb2Zmc2V0KTsKICsJCWlmIChtYWNpbmZvX3R5 cGUgPT0gRFdfTUFDUk9fR05VX2RlZmluZV9pbmRpcmVjdF9hbHQKLSsJCSAgICB8fCBtYWNpbmZv X3R5cGUgPT0gRFdfTUFDUk9fR05VX3VuZGVmX2luZGlyZWN0X2FsdCkKKysJCSAgICB8fCBtYWNp bmZvX3R5cGUgPT0gRFdfTUFDUk9fR05VX3VuZGVmX2luZGlyZWN0X2FsdAorKwkJICAgIHx8IHNl Y3Rpb25faXNfZHd6KQogKwkJICB7CiArCQkgICAgc3RydWN0IGR3el9maWxlICpkd3ogPSBkd2Fy ZjJfZ2V0X2R3el9maWxlICgpOwogKwpAQCAtMzM1MCw3ICszNDIyLDcgQEAgaW5kZXggMWQ1MWRi Mi4uZmU1NjcwOSAxMDA2NDQKICAgICAgICAgICAgICBpZiAoISBjdXJyZW50X2ZpbGUpCiAgCSAg ICAgIHsKICAJCS8qIERXQVJGIHZpb2xhdGlvbiBhcyBubyBtYWluIHNvdXJjZSBpcyBwcmVzZW50 LiAgKi8KLUBAIC0xNzIzNSw3ICsxNzcxNCw4IEBAIGR3YXJmX2RlY29kZV9tYWNyb19ieXRlcyAo YmZkICphYmZkLCBnZGJfYnl0ZSAqbWFjX3B0ciwgZ2RiX2J5dGUgKm1hY19lbmQsCitAQCAtMTcz MDUsNyArMTc3ODUsOCBAQCBkd2FyZl9kZWNvZGVfbWFjcm9fYnl0ZXMgKGJmZCAqYWJmZCwgZ2Ri X2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNfZW5kLAogIAkgICAgZWxzZQogIAkgICAgICB7 CiAgCQlnZGJfYXNzZXJ0IChtYWNpbmZvX3R5cGUgPT0gRFdfTUFDUk9fR05VX3VuZGVmCkBAIC0z MzYwLDcgKzM0MzIsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJbWFjcm9f dW5kZWYgKGN1cnJlbnRfZmlsZSwgbGluZSwgYm9keSk7CiAgCSAgICAgIH0KICAgICAgICAgICAg fQotQEAgLTE3MzEwLDYgKzE3NzkwLDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvX2J5dGVzIChiZmQg KmFiZmQsIGdkYl9ieXRlICptYWNfcHRyLCBnZGJfYnl0ZSAqbWFjX2VuZCwKK0BAIC0xNzM4MCw2 ICsxNzg2MSw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb19ieXRlcyAoYmZkICphYmZkLCBnZGJfYnl0 ZSAqbWFjX3B0ciwgZ2RiX2J5dGUgKm1hY19lbmQsCiAgICAgICAgICAgIGJyZWFrOwogIAogIAlj YXNlIERXX01BQ1JPX0dOVV90cmFuc3BhcmVudF9pbmNsdWRlOgpAQCAtMzM2OCw3ICszNDQwLDcg QEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJICB7CiAgCSAgICBMT05HRVNUIG9m ZnNldDsKICAJICAgIHZvaWQgKipzbG90OwotQEAgLTE3MzI4LDEzICsxNzgwOSwzMiBAQCBkd2Fy Zl9kZWNvZGVfbWFjcm9fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9i eXRlICptYWNfZW5kLAorQEAgLTE3Mzk4LDEzICsxNzg4MCwzMiBAQCBkd2FyZl9kZWNvZGVfbWFj cm9fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNfZW5k LAogIAkgICAgICB9CiAgCSAgICBlbHNlCiAgCSAgICAgIHsKQEAgLTM0MDUsNyArMzQ3NywyNCBA QCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJCQkJICBvZmZzZXRfc2l6ZSwgb2Jq ZmlsZSwgaW5jbHVkZV9oYXNoKTsKICAKICAJCWh0YWJfcmVtb3ZlX2VsdCAoaW5jbHVkZV9oYXNo LCBtYWNfcHRyKTsKLUBAIC0xNzU1Myw3ICsxODA1Myw4IEBAIGR3YXJmX2RlY29kZV9tYWNyb3Mg KHN0cnVjdCBkd2FyZjJfY3UgKmN1LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTE3NTcxLDYg KzE4MDcyLDggQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGR3YXJmMl9jdSAqY3UsIHVu c2lnbmVkIGludCBvZmZzZXQsCisgCisgCWNhc2UgRFdfTUFDUk9fR05VX2RlZmluZV9pbmRpcmVj dDoKKyAJY2FzZSBEV19NQUNST19HTlVfdW5kZWZfaW5kaXJlY3Q6CisrCWNhc2UgRFdfTUFDUk9f R05VX2RlZmluZV9pbmRpcmVjdF9hbHQ6CisrCWNhc2UgRFdfTUFDUk9fR05VX3VuZGVmX2luZGly ZWN0X2FsdDoKKyAJICB7CisgCSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKKyAKK0BAIC0x NzU4MSw2ICsxODA4NCw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBkd2FyZjJfY3Ug KmN1LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorIAkgIGJyZWFrOworIAorIAljYXNlIERXX01BQ1JP X0dOVV90cmFuc3BhcmVudF9pbmNsdWRlOgorKwljYXNlIERXX01BQ1JPX0dOVV90cmFuc3BhcmVu dF9pbmNsdWRlX2FsdDoKKyAJICAvKiBOb3RlIHRoYXQsIGFjY29yZGluZyB0byB0aGUgc3BlYywg YSB0cmFuc3BhcmVudCBpbmNsdWRlCisgCSAgICAgY2hhaW4gY2Fubm90IGNhbGwgRFdfTUFDUk9f R05VX3N0YXJ0X2ZpbGUuICBTbywgd2UgY2FuIGp1c3QKKyAJICAgICBza2lwIHRoaXMgb3Bjb2Rl LiAgKi8KK0BAIC0xNzYyMyw3ICsxODEyNyw4IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVj dCBkd2FyZjJfY3UgKmN1LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgc2xvdCA9IGh0YWJfZmlu ZF9zbG90IChpbmNsdWRlX2hhc2gsIG1hY19wdHIsIElOU0VSVCk7CiAgICAqc2xvdCA9IG1hY19w dHI7CiAgICBkd2FyZl9kZWNvZGVfbWFjcm9fYnl0ZXMgKGFiZmQsIG1hY19wdHIsIG1hY19lbmQs CkBAIC0zNDE1LDcgKzM1MDQsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJ CSAgICBvZmZzZXRfc2l6ZSwgb2JqZmlsZSwgaW5jbHVkZV9oYXNoKTsKICAgIGRvX2NsZWFudXBz IChjbGVhbnVwKTsKICB9Ci1AQCAtMTc2NTEsNjIgKzE4MTUyLDEwMCBAQCBmaWxsX2luX2xvY2xp c3RfYmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAorQEAgLTE3NzIxLDYyICsxODIyNiwxMDAg QEAgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKICAgIGJhdG9u LT5mcm9tX2R3byA9IGN1LT5kd29fdW5pdCAhPSBOVUxMOwogIH0KICAKQEAgLTM1NTQsNyArMzY0 Myw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICAgIH0KICB9CiAgCi1AQCAt MTc4MDgsMjggKzE4MzQ3LDM1IEBAIGR3YXJmMl9wZXJfY3VfdGV4dF9vZmZzZXQgKHN0cnVjdCBk d2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSkKK0BAIC0xNzg3OCwyOCArMTg0MjEsMzUgQEAgZHdh cmYyX3Blcl9jdV90ZXh0X29mZnNldCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1 KQogIAogIHN0YXRpYyBzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICoKICBkd2FyZjJfZmluZF9j b250YWluaW5nX2NvbXBfdW5pdCAoc2VjdF9vZmZzZXQgb2Zmc2V0LApAQCAtMzU5NSw3ICszNjg0 LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJZXJyb3IgKF8oIkR3YXJmIEVy cm9yOiBjb3VsZCBub3QgZmluZCBwYXJ0aWFsIERJRSBjb250YWluaW5nICIKICAJICAgICAgICJv ZmZzZXQgMHglbHggW2luIG1vZHVsZSAlc10iKSwKICAJICAgICAgIChsb25nKSBvZmZzZXQuc2Vj dF9vZmYsIGJmZF9nZXRfZmlsZW5hbWUgKG9iamZpbGUtPm9iZmQpKTsKLUBAIC0xODA3MCw2ICsx ODYxNiwyNSBAQCBwZXJfY3Vfb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xo cywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAtMTgxNDAsNiArMTg2OTAsMjUgQEAgcGVyX2N1 X29mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0 ZW1fcmhzKQogIAkgICYmIG9mc19saHMtPm9mZnNldC5zZWN0X29mZiA9PSBvZnNfcmhzLT5vZmZz ZXQuc2VjdF9vZmYpOwogIH0KICAKQEAgLTM2MjEsNyArMzcxMCw3IEBAIGluZGV4IDFkNTFkYjIu LmZlNTY3MDkgMTAwNjQ0CiAgLyogU2V0IHRoZSB0eXBlIGFzc29jaWF0ZWQgd2l0aCBESUUgdG8g VFlQRS4gIFNhdmUgaXQgaW4gQ1UncyBoYXNoCiAgICAgdGFibGUgaWYgbmVjZXNzYXJ5LiAgRm9y IGNvbnZlbmllbmNlLCByZXR1cm4gVFlQRS4KICAKLUBAIC0xODA5NCw2ICsxODY1OSw4IEBAIHNl dF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xODE2NCw2ICsxODczMyw4IEBAIHNldF9kaWVfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgIHN0cnVjdCBkd2FyZjJfcGVyX2N1X29mZnNldF9hbmRfdHlwZSAqKnNsb3QsIG9m czsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZpbGU7CiAgCkBAIC0zNjMw LDcgKzM3MTksNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgLyogRm9yIEFk YSB0eXBlcywgbWFrZSBzdXJlIHRoYXQgdGhlIGduYXQtc3BlY2lmaWMgZGF0YSBpcyBhbHdheXMK ICAgICAgIGluaXRpYWxpemVkIChpZiBub3QgYWxyZWFkeSBzZXQpLiAgVGhlcmUgYXJlIGEgZmV3 IHR5cGVzIHdoZXJlCiAgICAgICB3ZSBzaG91bGQgbm90IGJlIGRvaW5nIHNvLCBiZWNhdXNlIHRo ZSB0eXBlLXNwZWNpZmljIGFyZWEgaXMKLUBAIC0xODI3MSw1MyArMTg4MzgsMTMgQEAgc2hvd19k d2FyZjJfY21kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCitAQCAtMTgzNDEsNTMgKzE4OTEy LDEzIEBAIHNob3dfZHdhcmYyX2NtZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQogICAgY21k X3Nob3dfbGlzdCAoc2hvd19kd2FyZjJfY21kbGlzdCwgZnJvbV90dHksICIiKTsKICB9CiAgCkBA IC0zNjg1LDcgKzM3NzQsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogICAg Zm9yIChpeCA9IDA7IGl4IDwgZHdhcmYyX3Blcl9vYmpmaWxlLT5uX2NvbXBfdW5pdHM7ICsraXgp CiAgICAgIFZFQ19mcmVlIChkd2FyZjJfcGVyX2N1X3B0ciwKLUBAIC0xODMyNyw2ICsxODg1NCw5 IEBAIGR3YXJmMl9wZXJfb2JqZmlsZV9mcmVlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9p ZCAqZCkKK0BAIC0xODM5Nyw2ICsxODkyOCw5IEBAIGR3YXJmMl9wZXJfb2JqZmlsZV9mcmVlIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZCkKICAKICAgIGlmIChkYXRhLT5kd29fZmls ZXMpCiAgICAgIGZyZWVfZHdvX2ZpbGVzIChkYXRhLT5kd29fZmlsZXMsIG9iamZpbGUpOwpAQCAt MzY5Niw3ICszNzg1LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAKICAMCiBk aWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKLWluZGV4IDFlZGZiMjcu LmQ5MTA5Y2YgMTAwNjQ0CitpbmRleCAxZWRmYjI3Li4wYjU0YjhhIDEwMDY0NAogLS0tIGEvZ2Ri L2VsZnJlYWQuYwogKysrIGIvZ2RiL2VsZnJlYWQuYwogQEAgLTQ0LDYgKzQ0LDcgQEAKQEAgLTM3 MDcsNiArMzc5NiwxNSBAQCBpbmRleCAxZWRmYjI3Li5kOTEwOWNmIDEwMDY0NAogIAogIGV4dGVy biB2b2lkIF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpOwogIAorQEAgLTExMDgsNyArMTEwOSw3 IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBidWlsZF9p ZCAqY2hlY2spCisgICBpbnQgcmV0dmFsID0gMDsKKyAKKyAgIC8qIFdlIGV4cGVjdCB0byBiZSBz aWxlbnQgb24gdGhlIG5vbi1leGlzdGluZyBmaWxlcy4gICovCistICBhYmZkID0gYmZkX29wZW5f bWF5YmVfcmVtb3RlIChmaWxlbmFtZSk7CisrICBhYmZkID0gZ2RiX2JmZF9vcGVuX21heWJlX3Jl bW90ZSAoZmlsZW5hbWUpOworICAgaWYgKGFiZmQgPT0gTlVMTCkKKyAgICAgcmV0dXJuIDA7Cisg CiBAQCAtMTEyMyw3ICsxMTI0LDcgQEAgYnVpbGRfaWRfdmVyaWZ5IChjb25zdCBjaGFyICpmaWxl bmFtZSwgc3RydWN0IGJ1aWxkX2lkICpjaGVjaykKICAgIGVsc2UKICAgICAgcmV0dmFsID0gMTsK QEAgLTM3MTYsNiArMzgxNCwyMCBAQCBpbmRleCAxZWRmYjI3Li5kOTEwOWNmIDEwMDY0NAogIAog ICAgeGZyZWUgKGZvdW5kKTsKICAKK0BAIC0xNDQ0LDEwICsxNDQ1LDEyIEBAIGVsZl9zeW1maWxl X3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBpbnQgc3ltZmlsZV9mbGFncykKKyAKKyAg ICAgICBpZiAoZGVidWdmaWxlKQorIAl7CisrCSAgc3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSBt YWtlX2NsZWFudXAgKHhmcmVlLCBkZWJ1Z2ZpbGUpOworIAkgIGJmZCAqYWJmZCA9IHN5bWZpbGVf YmZkX29wZW4gKGRlYnVnZmlsZSk7CisgCisrCSAgbWFrZV9jbGVhbnVwX2JmZF91bnJlZiAoYWJm ZCk7CisgCSAgc3ltYm9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZkLCBzeW1maWxlX2ZsYWdzLCBv YmpmaWxlKTsKKy0JICB4ZnJlZSAoZGVidWdmaWxlKTsKKysJICBkb19jbGVhbnVwcyAoY2xlYW51 cCk7CisgCX0KKyAgICAgfQorIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5j CiBpbmRleCA3ZDNhOGI5Li5mNjlkZmYwIDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwpAQCAtNDIw Niw3ICs0MzE4LDcgQEAgaW5kZXggN2QzYThiOS4uZjY5ZGZmMCAxMDA2NDQKICsKICB9CiBkaWZm IC0tZ2l0IGEvZ2RiL2V4ZWMuYyBiL2dkYi9leGVjLmMKLWluZGV4IDZiYTE5ODYuLjU0MGMyNzEg MTAwNjQ0CitpbmRleCA2YmExOTg2Li5lMDc2NjA5IDEwMDY0NAogLS0tIGEvZ2RiL2V4ZWMuYwog KysrIGIvZ2RiL2V4ZWMuYwogQEAgLTMzLDYgKzMzLDcgQEAKQEAgLTQyMjksMTcgKzQzNDEsMjcg QEAgaW5kZXggNmJhMTk4Ni4uNTQwYzI3MSAxMDA2NDQKICAKICAgICAgICAvKiBSZW1vdmluZyB0 YXJnZXQgc2VjdGlvbnMgbWF5IGNsb3NlIHRoZSBleGVjX29wcyB0YXJnZXQuCiAgCSBDbGVhciBl eGVjX2JmZCBiZWZvcmUgZG9pbmcgc28gdG8gcHJldmVudCByZWN1cnNpb24uICAqLwotQEAgLTEz Nyw4ICsxMzYsNyBAQCBleGVjX2Nsb3NlXzEgKGludCBxdWl0dGluZykKK0BAIC0xMjgsMTcgKzEy NywxMyBAQCBleGVjX2Nsb3NlXzEgKGludCBxdWl0dGluZykKKyAgICAgICB2cCA9IG54dDsKKyAg ICAgICBueHQgPSB2cC0+bnh0OworIAorLSAgICAgIC8qIGlmIHRoZXJlIGlzIGFuIG9iamZpbGUg YXNzb2NpYXRlZCB3aXRoIHRoaXMgYmZkLAorLSAgICAgICAgIGZyZWVfb2JqZmlsZSgpIHdpbGwg ZG8gcHJvcGVyIGNsZWFudXAgb2Ygb2JqZmlsZSAqYW5kKiBiZmQuICAqLworLQorICAgICAgIGlm ICh2cC0+b2JqZmlsZSkKKyAJeworIAkgIGZyZWVfb2JqZmlsZSAodnAtPm9iamZpbGUpOwogIAkg IG5lZWRfc3ltdGFiX2NsZWFudXAgPSAxOwogIAl9Ci0gICAgICAgZWxzZSBpZiAodnAtPmJmZCAh PSBleGVjX2JmZCkKKy0gICAgICBlbHNlIGlmICh2cC0+YmZkICE9IGV4ZWNfYmZkKQogLQkvKiBG SVhNRS1sZWFrOiBXZSBzaG91bGQgYmUgZnJlZWluZyB2cC0+bmFtZSB0b28sIEkgdGhpbmsuICAq LwogLQlnZGJfYmZkX2Nsb3NlX29yX3dhcm4gKHZwLT5iZmQpOwotKwlnZGJfYmZkX3VucmVmICh2 cC0+YmZkKTsKKysKKysgICAgICBnZGJfYmZkX3VucmVmICh2cC0+YmZkKTsKICAKICAgICAgICB4 ZnJlZSAodnApOwogICAgICB9Ci1AQCAtMjMwLDExICsyMjgsMTQgQEAgZXhlY19maWxlX2F0dGFj aCAoY2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0eSkKK0BAIC0yMzAsMTEgKzIyNSwxNCBAQCBl eGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQogIAkgICAgICZz Y3JhdGNoX3BhdGhuYW1lKTsKICAJfQogICNlbmRpZgpAQCAtNDI1MSwxMyArNDM3MywxMyBAQCBp bmRleCA2YmExOTg2Li41NDBjMjcxIDEwMDY0NAogLSAgICAgIGV4ZWNfYmZkID0gYmZkX2ZvcGVu IChzY3JhdGNoX3BhdGhuYW1lLCBnbnV0YXJnZXQsCiAtCQkJICAgIHdyaXRlX2ZpbGVzID8gRk9Q RU5fUlVCIDogRk9QRU5fUkIsCiAtCQkJICAgIHNjcmF0Y2hfY2hhbik7Ci0rICAgICAgZXhlY19i ZmQgPSBnZGJfYmZkX3JlZiAoYmZkX2ZvcGVuIChzY3JhdGNoX3BhdGhuYW1lLCBnbnV0YXJnZXQs Ci0rCQkJCQkgd3JpdGVfZmlsZXMgPyBGT1BFTl9SVUIgOiBGT1BFTl9SQiwKLSsJCQkJCSBzY3Jh dGNoX2NoYW4pKTsKKysgICAgICBleGVjX2JmZCA9IGdkYl9iZmRfZm9wZW4gKHNjcmF0Y2hfcGF0 aG5hbWUsIGdudXRhcmdldCwKKysJCQkJd3JpdGVfZmlsZXMgPyBGT1BFTl9SVUIgOiBGT1BFTl9S QiwKKysJCQkJc2NyYXRjaF9jaGFuKTsKICAKICAgICAgICBpZiAoIWV4ZWNfYmZkKQogIAl7Ci1A QCAtMjQyLDEzICsyNDMsNiBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwgaW50 IGZyb21fdHR5KQorQEAgLTI0MiwxMyArMjQwLDYgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAq ZmlsZW5hbWUsIGludCBmcm9tX3R0eSkKICAJCSBzY3JhdGNoX3BhdGhuYW1lLCBiZmRfZXJybXNn IChiZmRfZ2V0X2Vycm9yICgpKSk7CiAgCX0KICAKQEAgLTQyNzEsMTUgKzQzOTMsMTQgQEAgaW5k ZXggNmJhMTk4Ni4uNTQwYzI3MSAxMDA2NDQKICAgICAgICBpZiAoIWJmZF9jaGVja19mb3JtYXRf bWF0Y2hlcyAoZXhlY19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCiAgCXsKICAJICAvKiBN YWtlIHN1cmUgdG8gY2xvc2UgZXhlY19iZmQsIG9yIGVsc2UgInJ1biIgbWlnaHQgdHJ5IHRvIHVz ZQotQEAgLTI1OSw2ICsyNTMsOCBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwg aW50IGZyb21fdHR5KQotIAkJIGdkYl9iZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpLCBtYXRj aGluZykpOwotIAl9CitAQCAtNTU0LDYgKzU0NSw3IEBAIG1hcF92bWFwIChiZmQgKmFiZmQsIGJm ZCAqYXJjaCkKKyAgIG1lbXNldCAoKGNoYXIgKikgdnAsICdcMCcsIHNpemVvZiAoKnZwKSk7Cisg ICB2cC0+bnh0ID0gMDsKKyAgIHZwLT5iZmQgPSBhYmZkOworKyAgZ2RiX2JmZF9yZWYgKGFiZmQp OworICAgdnAtPm5hbWUgPSBiZmRfZ2V0X2ZpbGVuYW1lIChhcmNoID8gYXJjaCA6IGFiZmQpOwor ICAgdnAtPm1lbWJlciA9IGFyY2ggPyBiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSA6ICIiOwogIAot KyAgICAgIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUgKGV4ZWNfYmZkKTsKLSsKLSAgICAgICAvKiBG SVhNRSAtIFRoaXMgc2hvdWxkIG9ubHkgYmUgcnVuIGZvciBSUzYwMDAsIGJ1dCB0aGUgaWZkZWYg aXMgYSBwb29yCi0gICAgICAgICAgd2F5IHRvIGFjY29tcGxpc2guICAqLwotICNpZmRlZiBERVBS RUNBVEVEX0lCTTYwMDBfVEFSR0VUCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1l eHAueQogaW5kZXggMzNjNzQxOC4uNGRiMWJmYSAxMDA2NDQKIC0tLSBhL2dkYi9mLWV4cC55CkBA IC00Mzc5LDcgKzQ1MDAsNyBAQCBpbmRleCBhOTVlZjg0Li44MzA5MTdkIDEwMDY0NAogICAgICB7 CiAgICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgogZGlmZiAtLWdpdCBhL2dkYi9mLXZhbHByaW50 LmMgYi9nZGIvZi12YWxwcmludC5jCi1pbmRleCA4Yjg0YjVhLi40YjI0MGEzIDEwMDY0NAoraW5k ZXggNDM1OWY2Zi4uOGZmODM0YiAxMDA2NDQKIC0tLSBhL2dkYi9mLXZhbHByaW50LmMKICsrKyBi L2dkYi9mLXZhbHByaW50LmMKIEBAIC01NCwxNSArNTQsMTcgQEAgaW50IGY3N19hcnJheV9vZmZz ZXRfdGJsW01BWF9GT1JUUkFOX0RJTVMgKyAxXVsyXTsKQEAgLTQ2NjQsNyArNDc4NSw3IEBAIGlu ZGV4IDY2YmNlYmUuLmU1OWU1ZjIgMTAwNjQ0CiAgCQkJCSAgICAgICZ1bmF2YWlsKTsKICAKIGRp ZmYgLS1naXQgYS9nZGIvZ2NvcmUuYyBiL2dkYi9nY29yZS5jCi1pbmRleCBhZWRkYTQxLi5mOWEx Mzg5IDEwMDY0NAoraW5kZXggYWVkZGE0MS4uYTQ1ZTc4NyAxMDA2NDQKIC0tLSBhL2dkYi9nY29y ZS5jCiArKysgYi9nZGIvZ2NvcmUuYwogQEAgLTMzLDYgKzMzLDcgQEAKQEAgLTQ2NzUsMjAgKzQ3 OTYsMTYgQEAgaW5kZXggYWVkZGE0MS4uZjlhMTM4OSAxMDA2NDQKICAKICAvKiBUaGUgbGFyZ2Vz dCBhbW91bnQgb2YgbWVtb3J5IHRvIHJlYWQgZnJvbSB0aGUgdGFyZ2V0IGF0IG9uY2UuICBXZQog ICAgIG11c3QgdGhyb3R0bGUgaXQgdG8gbGltaXQgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBi eSBHREIgZHVyaW5nCi1AQCAtNTAsMTAgKzUxLDExIEBAIHN0YXRpYyBpbnQgZ2NvcmVfbWVtb3J5 X3NlY3Rpb25zIChiZmQgKik7CitAQCAtNTAsNyArNTEsNyBAQCBzdGF0aWMgaW50IGdjb3JlX21l bW9yeV9zZWN0aW9ucyAoYmZkICopOwogIGJmZCAqCiAgY3JlYXRlX2djb3JlX2JmZCAoY2hhciAq ZmlsZW5hbWUpCiAgewogLSAgYmZkICpvYmZkID0gYmZkX29wZW53IChmaWxlbmFtZSwgZGVmYXVs dF9nY29yZV90YXJnZXQgKCkpOwotKyAgYmZkICpvYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVu dyAoZmlsZW5hbWUsIGRlZmF1bHRfZ2NvcmVfdGFyZ2V0ICgpKSk7CisrICBiZmQgKm9iZmQgPSBn ZGJfYmZkX29wZW53IChmaWxlbmFtZSwgZGVmYXVsdF9nY29yZV90YXJnZXQgKCkpOwogIAogICAg aWYgKCFvYmZkKQogICAgICBlcnJvciAoXygiRmFpbGVkIHRvIG9wZW4gJyVzJyBmb3Igb3V0cHV0 LiIpLCBmaWxlbmFtZSk7Ci0rICBnZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChvYmZkKTsKLSAgIGJm ZF9zZXRfZm9ybWF0IChvYmZkLCBiZmRfY29yZSk7Ci0gICBiZmRfc2V0X2FyY2hfbWFjaCAob2Jm ZCwgZGVmYXVsdF9nY29yZV9hcmNoICgpLCBkZWZhdWx0X2djb3JlX21hY2ggKCkpOwotICAgcmV0 dXJuIG9iZmQ7Ci1AQCAtMTEwLDcgKzExMiw3IEBAIGRvX2JmZF9kZWxldGVfY2xlYW51cCAodm9p ZCAqYXJnKQorQEAgLTExMCw3ICsxMTEsNyBAQCBkb19iZmRfZGVsZXRlX2NsZWFudXAgKHZvaWQg KmFyZykKICAgIGJmZCAqb2JmZCA9IGFyZzsKICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lID0gb2Jm ZC0+ZmlsZW5hbWU7CiAgCkBAIC00Njk3LDcgKzQ4MTQsNyBAQCBpbmRleCBhZWRkYTQxLi5mOWEx Mzg5IDEwMDY0NAogICAgdW5saW5rIChmaWxlbmFtZSk7CiAgfQogIAotQEAgLTE1NCw3ICsxNTYs NyBAQCBnY29yZV9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCitAQCAtMTU0LDcg KzE1NSw3IEBAIGdjb3JlX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGZw cmludGZfZmlsdGVyZWQgKGdkYl9zdGRvdXQsICJTYXZlZCBjb3JlZmlsZSAlc1xuIiwgY29yZWZp bGVuYW1lKTsKICAKICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jaGFpbik7CkBAIC00NzI4LDEw ICs0ODQ1LDEwIEBAIGluZGV4IGZmYjdmNTMuLmEyZTdlOTQgMTAwNjQ0CiAgYiBpbnRlcm5hbF9l cnJvcgogZGlmZiAtLWdpdCBhL2dkYi9nZGJfYmZkLmMgYi9nZGIvZ2RiX2JmZC5jCiBuZXcgZmls ZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uYjQzNTUzZgoraW5kZXggMDAwMDAwMC4uZmFj ODc3NgogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL2dkYl9iZmQuYwotQEAgLTAsMCArMSw0ODEg QEAKK0BAIC0wLDAgKzEsNjcwIEBACiArLyogRGVmaW5pdGlvbnMgZm9yIEJGRCB3cmFwcGVycyB1 c2VkIGJ5IEdEQi4KICsKICsgICBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIKQEAgLTQ3NTYsNiAr NDg3Myw4IEBAIGluZGV4IDAwMDAwMDAuLmI0MzU1M2YKICsjaW5jbHVkZSAiZ2RiX2JmZC5oIgog KyNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCiArI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKKysjaW5j bHVkZSAidWktb3V0LmgiCisrI2luY2x1ZGUgImdkYmNtZC5oIgogKyNpbmNsdWRlICJoYXNodGFi LmgiCiArI2lmZGVmIEhBVkVfWkxJQl9ICiArI2luY2x1ZGUgPHpsaWIuaD4KQEAgLTQ3ODIsNiAr NDkwMSwxMyBAQCBpbmRleCAwMDAwMDAwLi5iNDM1NTNmCiArICB2b2lkICptYXBfYWRkcjsKICt9 OwogKworKy8qIEEgaGFzaCB0YWJsZSBob2xkaW5nIGV2ZXJ5IEJGRCB0aGF0IGdkYiBrbm93cyBh Ym91dC4gIFRoaXMgaXMgbm90CisrICAgdG8gYmUgY29uZnVzZWQgd2l0aCAnZ2RiX2JmZF9jYWNo ZScsIHdoaWNoIGlzIHVzZWQgZm9yIHNoYXJpbmcKKysgICBCRkRzOyBpbiBjb250cmFzdCwgdGhp cyBoYXNoIGlzIHVzZWQganVzdCB0byBpbXBsZW1lbnQKKysgICAibWFpbnQgaW5mbyBiZmQiLiAg Ki8KKysKKytzdGF0aWMgaHRhYl90IGFsbF9iZmRzOworKwogKy8qIFNlZSBnZGJfYmZkLmguICAq LwogKwogK3ZvaWQKQEAgLTQ4NDksNiArNDk3NSw4IEBAIGluZGV4IDAwMDAwMDAuLmI0MzU1M2YK ICsJICAmJiBzdHJjbXAgKGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLCBzLT5maWxlbmFtZSkgPT0g MCk7CiArfQogKworKy8qIFNlZSBnZGJfYmZkLmguICAqLworKwogK3N0cnVjdCBiZmQgKgogK2dk Yl9iZmRfb3BlbiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdGFyZ2V0LCBpbnQgZmQp CiArewpAQCAtNDg5MCw3ICs1MDE4LDggQEAgaW5kZXggMDAwMDAwMC4uYjQzNTUzZgogKyAgaWYg KGFiZmQgIT0gTlVMTCkKICsgICAgewogKyAgICAgIGNsb3NlIChmZCk7Ci0rICAgICAgcmV0dXJu IGdkYl9iZmRfcmVmIChhYmZkKTsKKysgICAgICBnZGJfYmZkX3JlZiAoYWJmZCk7CisrICAgICAg cmV0dXJuIGFiZmQ7CiArICAgIH0KICsKICsgIGFiZmQgPSBiZmRfZm9wZW4gKG5hbWUsIHRhcmdl dCwgRk9QRU5fUkIsIGZkKTsKQEAgLTQ5MDIsNyArNTAzMSw4IEBAIGluZGV4IDAwMDAwMDAuLmI0 MzU1M2YKICsgICpzbG90ID0gYWJmZDsKICsKICsgIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUgKGFi ZmQpOwotKyAgcmV0dXJuIGdkYl9iZmRfcmVmIChhYmZkKTsKKysgIGdkYl9iZmRfcmVmIChhYmZk KTsKKysgIHJldHVybiBhYmZkOwogK30KICsKICsvKiBBIGhlbHBlciBmdW5jdGlvbiB0aGF0IHJl bGVhc2VzIGFueSBzZWN0aW9uIGRhdGEgYXR0YWNoZWQgdG8gdGhlCkBAIC00OTQ4LDIyICs1MDc4 LDIzIEBAIGluZGV4IDAwMDAwMDAuLmI0MzU1M2YKICsgIHJldHVybiByZXQ7CiArfQogKwotKy8q IEFkZCByZWZlcmVuY2UgdG8gQUJGRC4gIFJldHVybnMgQUJGRC4gICovCisrLyogU2VlIGdkYl9i ZmQuaC4gICovCiArCi0rc3RydWN0IGJmZCAqCisrdm9pZAogK2dkYl9iZmRfcmVmIChzdHJ1Y3Qg YmZkICphYmZkKQogK3sKICsgIHN0cnVjdCBnZGJfYmZkX2RhdGEgKmdkYXRhOworKyAgdm9pZCAq KnNsb3Q7CiArCiArICBpZiAoYWJmZCA9PSBOVUxMKQotKyAgICByZXR1cm4gTlVMTDsKKysgICAg cmV0dXJuOwogKwogKyAgZ2RhdGEgPSBiZmRfdXNyZGF0YSAoYWJmZCk7CiArCiArICBpZiAoZ2Rh dGEgIT0gTlVMTCkKICsgICAgewogKyAgICAgIGdkYXRhLT5yZWZjICs9IDE7Ci0rICAgICAgcmV0 dXJuIGFiZmQ7CisrICAgICAgcmV0dXJuOwogKyAgICB9CiArCiArICBnZGF0YSA9IGJmZF96YWxs b2MgKGFiZmQsIHNpemVvZiAoc3RydWN0IGdkYl9iZmRfZGF0YSkpOwpAQCAtNDk3MSwxNiArNTEw MiwyMCBAQCBpbmRleCAwMDAwMDAwLi5iNDM1NTNmCiArICBnZGF0YS0+bXRpbWUgPSBiZmRfZ2V0 X210aW1lIChhYmZkKTsKICsgIGJmZF91c3JkYXRhIChhYmZkKSA9IGdkYXRhOwogKwotKyAgcmV0 dXJuIGFiZmQ7CisrICAvKiBUaGlzIGlzIHRoZSBmaXJzdCB3ZSd2ZSBzZWVuIGl0LCBzbyBhZGQg aXQgdG8gdGhlIGhhc2ggdGFibGUuICAqLworKyAgc2xvdCA9IGh0YWJfZmluZF9zbG90IChhbGxf YmZkcywgYWJmZCwgSU5TRVJUKTsKKysgIGdkYl9hc3NlcnQgKHNsb3QgJiYgISpzbG90KTsKKysg ICpzbG90ID0gYWJmZDsKICt9CiArCi0rLyogVW5yZWZlcmVuY2UgYW5kIHBvc3NpYmx5IGNsb3Nl IEFCRkQuICAqLworKy8qIFNlZSBnZGJfYmZkLmguICAqLwogKwogK3ZvaWQKICtnZGJfYmZkX3Vu cmVmIChzdHJ1Y3QgYmZkICphYmZkKQogK3sKICsgIHN0cnVjdCBnZGJfYmZkX2RhdGEgKmdkYXRh OwogKyAgc3RydWN0IGdkYl9iZmRfY2FjaGVfc2VhcmNoIHNlYXJjaDsKKysgIHZvaWQgKipzbG90 OwogKwogKyAgaWYgKGFiZmQgPT0gTlVMTCkKICsgICAgcmV0dXJuOwpAQCAtNTAwOSw2ICs1MTQ0 LDggQEAgaW5kZXggMDAwMDAwMC4uYjQzNTUzZgogKwogKyAgYmZkX3VzcmRhdGEgKGFiZmQpID0g TlVMTDsgIC8qIFBhcmFub2lhLiAgKi8KICsKKysgIGh0YWJfcmVtb3ZlX2VsdCAoYWxsX2JmZHMs IGFiZmQpOworKwogKyAgZ2RiX2JmZF9jbG9zZV9vcl93YXJuIChhYmZkKTsKICt9CiArCkBAIC01 MjEzLDEyICs1MzUwLDE4MSBAQCBpbmRleCAwMDAwMDAwLi5iNDM1NTNmCiArICAqc2l6ZSA9IGRl c2NyaXB0b3ItPnNpemU7CiArICByZXR1cm4gZGVzY3JpcHRvci0+ZGF0YTsKICt9CisrCisrDAor KworKy8qIFNlZSBnZGJfYmZkLmguICAqLworKworK2JmZCAqCisrZ2RiX2JmZF9mb3BlbiAoY29u c3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKnRhcmdldCwgY29uc3QgY2hhciAqbW9kZSwK KysJICAgICAgIGludCBmZCkKKyt7CisrICBiZmQgKnJlc3VsdCA9IGJmZF9mb3BlbiAoZmlsZW5h bWUsIHRhcmdldCwgbW9kZSwgZmQpOworKworKyAgaWYgKHJlc3VsdCkKKysgICAgeworKyAgICAg IGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUgKHJlc3VsdCk7CisrICAgICAgZ2RiX2JmZF9yZWYgKHJl c3VsdCk7CisrICAgIH0KKysKKysgIHJldHVybiByZXN1bHQ7CisrfQorKworKy8qIFNlZSBnZGJf YmZkLmguICAqLworKworK2JmZCAqCisrZ2RiX2JmZF9vcGVuciAoY29uc3QgY2hhciAqZmlsZW5h bWUsIGNvbnN0IGNoYXIgKnRhcmdldCkKKyt7CisrICBiZmQgKnJlc3VsdCA9IGJmZF9vcGVuciAo ZmlsZW5hbWUsIHRhcmdldCk7CisrCisrICBpZiAocmVzdWx0KQorKyAgICB7CisrICAgICAgZ2Ri X2JmZF9zdGFzaF9maWxlbmFtZSAocmVzdWx0KTsKKysgICAgICBnZGJfYmZkX3JlZiAocmVzdWx0 KTsKKysgICAgfQorKworKyAgcmV0dXJuIHJlc3VsdDsKKyt9CisrCisrLyogU2VlIGdkYl9iZmQu aC4gICovCisrCisrYmZkICoKKytnZGJfYmZkX29wZW53IChjb25zdCBjaGFyICpmaWxlbmFtZSwg Y29uc3QgY2hhciAqdGFyZ2V0KQorK3sKKysgIGJmZCAqcmVzdWx0ID0gYmZkX29wZW53IChmaWxl bmFtZSwgdGFyZ2V0KTsKKysKKysgIGlmIChyZXN1bHQpCisrICAgIHsKKysgICAgICBnZGJfYmZk X3N0YXNoX2ZpbGVuYW1lIChyZXN1bHQpOworKyAgICAgIGdkYl9iZmRfcmVmIChyZXN1bHQpOwor KyAgICB9CisrCisrICByZXR1cm4gcmVzdWx0OworK30KKysKKysvKiBTZWUgZ2RiX2JmZC5oLiAg Ki8KKysKKytiZmQgKgorK2dkYl9iZmRfb3BlbnJfaW92ZWMgKGNvbnN0IGNoYXIgKmZpbGVuYW1l LCBjb25zdCBjaGFyICp0YXJnZXQsCisrCQkgICAgIHZvaWQgKigqb3Blbl9mdW5jKSAoc3RydWN0 IGJmZCAqbmJmZCwKKysJCQkJCSB2b2lkICpvcGVuX2Nsb3N1cmUpLAorKwkJICAgICB2b2lkICpv cGVuX2Nsb3N1cmUsCisrCQkgICAgIGZpbGVfcHRyICgqcHJlYWRfZnVuYykgKHN0cnVjdCBiZmQg Km5iZmQsCisrCQkJCQkgICAgIHZvaWQgKnN0cmVhbSwKKysJCQkJCSAgICAgdm9pZCAqYnVmLAor KwkJCQkJICAgICBmaWxlX3B0ciBuYnl0ZXMsCisrCQkJCQkgICAgIGZpbGVfcHRyIG9mZnNldCks CisrCQkgICAgIGludCAoKmNsb3NlX2Z1bmMpIChzdHJ1Y3QgYmZkICpuYmZkLAorKwkJCQkJdm9p ZCAqc3RyZWFtKSwKKysJCSAgICAgaW50ICgqc3RhdF9mdW5jKSAoc3RydWN0IGJmZCAqYWJmZCwK KysJCQkJICAgICAgIHZvaWQgKnN0cmVhbSwKKysJCQkJICAgICAgIHN0cnVjdCBzdGF0ICpzYikp CisreworKyAgYmZkICpyZXN1bHQgPSBiZmRfb3BlbnJfaW92ZWMgKGZpbGVuYW1lLCB0YXJnZXQs CisrCQkJCSBvcGVuX2Z1bmMsIG9wZW5fY2xvc3VyZSwKKysJCQkJIHByZWFkX2Z1bmMsIGNsb3Nl X2Z1bmMsIHN0YXRfZnVuYyk7CisrCisrICBpZiAocmVzdWx0KQorKyAgICB7CisrICAgICAgZ2Ri X2JmZF9yZWYgKHJlc3VsdCk7CisrICAgICAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAocmVzdWx0 KTsKKysgICAgfQorKworKyAgcmV0dXJuIHJlc3VsdDsKKyt9CisrCisrLyogU2VlIGdkYl9iZmQu aC4gICovCisrCisrYmZkICoKKytnZGJfYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYmZk ICphcmNoaXZlLCBiZmQgKnByZXZpb3VzKQorK3sKKysgIGJmZCAqcmVzdWx0ID0gYmZkX29wZW5y X25leHRfYXJjaGl2ZWRfZmlsZSAoYXJjaGl2ZSwgcHJldmlvdXMpOworKworKyAgaWYgKHJlc3Vs dCkKKysgICAgeworKyAgICAgIGdkYl9iZmRfcmVmIChyZXN1bHQpOworKyAgICAgIC8qIE5vIG5l ZWQgdG8gc3Rhc2ggdGhlIGZpbGVuYW1lIGhlcmUuICAqLworKyAgICB9CisrCisrICByZXR1cm4g cmVzdWx0OworK30KKysKKysvKiBTZWUgZ2RiX2JmZC5oLiAgKi8KKysKKytiZmQgKgorK2dkYl9i ZmRfZmRvcGVuciAoY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKnRhcmdldCwgaW50 IGZkKQorK3sKKysgIGJmZCAqcmVzdWx0ID0gYmZkX2Zkb3BlbnIgKGZpbGVuYW1lLCB0YXJnZXQs IGZkKTsKKysKKysgIGlmIChyZXN1bHQpCisrICAgIHsKKysgICAgICBnZGJfYmZkX3JlZiAocmVz dWx0KTsKKysgICAgICBnZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChyZXN1bHQpOworKyAgICB9Cisr CisrICByZXR1cm4gcmVzdWx0OworK30KKysKKysMCisrCisrLyogQSBjYWxsYmFjayBmb3IgaHRh Yl90cmF2ZXJzZSB0aGF0IHByaW50cyBhIHNpbmdsZSBCRkQuICAqLworKworK3N0YXRpYyBpbnQK KytwcmludF9vbmVfYmZkICh2b2lkICoqc2xvdCwgdm9pZCAqZGF0YSkKKyt7CisrICBiZmQgKmFi ZmQgPSAqc2xvdDsKKysgIHN0cnVjdCBnZGJfYmZkX2RhdGEgKmdkYXRhID0gYmZkX3VzcmRhdGEg KGFiZmQpOworKyAgc3RydWN0IHVpX291dCAqdWlvdXQgPSBkYXRhOworKyAgc3RydWN0IGNsZWFu dXAgKmlubmVyOworKworKyAgaW5uZXIgPSBtYWtlX2NsZWFudXBfdWlfb3V0X3R1cGxlX2JlZ2lu X2VuZCAodWlvdXQsIE5VTEwpOworKyAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJyZWZjb3Vu dCIsIGdkYXRhLT5yZWZjKTsKKysgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiYWRkciIs IGhvc3RfYWRkcmVzc190b19zdHJpbmcgKGFiZmQpKTsKKysgIHVpX291dF9maWVsZF9zdHJpbmcg KHVpb3V0LCAiZmlsZW5hbWUiLCBiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSk7CisrICB1aV9vdXRf dGV4dCAodWlvdXQsICJcbiIpOworKyAgZG9fY2xlYW51cHMgKGlubmVyKTsKKysKKysgIHJldHVy biAxOworK30KKysKKysvKiBJbXBsZW1lbnQgdGhlICdtYWludCBpbmZvIGJmZCcgY29tbWFuZC4g ICovCisrCisrc3RhdGljIHZvaWQKKyttYWludGVuYW5jZV9pbmZvX2JmZHMgKGNoYXIgKmFyZywg aW50IGZyb21fdHR5KQorK3sKKysgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOworKyAgc3RydWN0 IHVpX291dCAqdWlvdXQgPSBjdXJyZW50X3Vpb3V0OworKworKyAgY2xlYW51cCA9IG1ha2VfY2xl YW51cF91aV9vdXRfdGFibGVfYmVnaW5fZW5kICh1aW91dCwgMywgLTEsICJiZmRzIik7CisrICB1 aV9vdXRfdGFibGVfaGVhZGVyICh1aW91dCwgMTAsIHVpX2xlZnQsICJyZWZjb3VudCIsICJSZWZj b3VudCIpOworKyAgdWlfb3V0X3RhYmxlX2hlYWRlciAodWlvdXQsIDE4LCB1aV9sZWZ0LCAiYWRk ciIsICJBZGRyZXNzIik7CisrICB1aV9vdXRfdGFibGVfaGVhZGVyICh1aW91dCwgNDAsIHVpX2xl ZnQsICJmaWxlbmFtZSIsICJGaWxlbmFtZSIpOworKworKyAgdWlfb3V0X3RhYmxlX2JvZHkgKHVp b3V0KTsKKysgIGh0YWJfdHJhdmVyc2UgKGFsbF9iZmRzLCBwcmludF9vbmVfYmZkLCB1aW91dCk7 CisrCisrICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CisrfQorKworKy8qIC1XbWlzc2luZy1wcm90 b3R5cGVzICovCisrZXh0ZXJuIGluaXRpYWxpemVfZmlsZV9mdHlwZSBfaW5pdGlhbGl6ZV9nZGJf YmZkOworKworK3ZvaWQKKytfaW5pdGlhbGl6ZV9nZGJfYmZkICh2b2lkKQorK3sKKysgIGFsbF9i ZmRzID0gaHRhYl9jcmVhdGVfYWxsb2MgKDEwLCBodGFiX2hhc2hfcG9pbnRlciwgaHRhYl9lcV9w b2ludGVyLAorKwkJCQlOVUxMLCB4Y2FsbG9jLCB4ZnJlZSk7CisrCisrICBhZGRfY21kICgiYmZk cyIsIGNsYXNzX21haW50ZW5hbmNlLCBtYWludGVuYW5jZV9pbmZvX2JmZHMsIF8oIlwKKytMaXN0 IHRoZSBCRkRzIHRoYXQgYXJlIGN1cnJlbnRseSBvcGVuLiIpLAorKwkgICAmbWFpbnRlbmFuY2Vp bmZvbGlzdCk7CisrfQogZGlmZiAtLWdpdCBhL2dkYi9nZGJfYmZkLmggYi9nZGIvZ2RiX2JmZC5o CiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMWRkODJjMworaW5kZXggMDAw MDAwMC4uZjEzMWJhNwogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL2dkYl9iZmQuaAotQEAgLTAs MCArMSw2MSBAQAorQEAgLTAsMCArMSwxMDYgQEAKICsvKiBEZWZpbml0aW9ucyBmb3IgQkZEIHdy YXBwZXJzIHVzZWQgYnkgR0RCLgogKwogKyAgIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMgpAQCAt NTI1NiwxNCArNTU2MiwxNCBAQCBpbmRleCAwMDAwMDAwLi4xZGQ4MmMzCiArCiArc3RydWN0IGJm ZCAqZ2RiX2JmZF9vcGVuIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp0YXJnZXQsIGlu dCBmZCk7CiArCi0rLyogQWNxdWlyZSBhIG5ldyByZWZlcmVuY2UgdG8gQUJGRC4gIFJldHVybnMg QUJGRCBmb3IgY29udmVuaWVuY2UuCi0rICAgSXQgaXMgZmluZSBmb3IgQUJGRCB0byBiZSBOVUxM OyBpbiB0aGlzIGNhc2UgdGhlIGZ1bmN0aW9uIGRvZXMKLSsgICBub3RoaW5nIGFuZCByZXR1cm5z IE5VTEwuICAqLworKy8qIEluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIEFCRkQuICBJ dCBpcyBmaW5lIGZvciBBQkZEIHRvIGJlCisrICAgTlVMTDsgaW4gdGhpcyBjYXNlIHRoZSBmdW5j dGlvbiBkb2VzIG5vdGhpbmcuICAqLwogKwotK3N0cnVjdCBiZmQgKmdkYl9iZmRfcmVmIChzdHJ1 Y3QgYmZkICphYmZkKTsKKyt2b2lkIGdkYl9iZmRfcmVmIChzdHJ1Y3QgYmZkICphYmZkKTsKICsK LSsvKiBSZWxlYXNlIGEgcmVmZXJlbmNlIHRvIEFCRkQuICBJZiB0aGlzIGlzIHRoZSBsYXN0IHJl ZmVyZW5jZSwgQUJGRAotKyAgIHdpbGwgYmUgZnJlZWQuICBJZiBBQkZEIGlzIE5VTEwsIHRoaXMg ZnVuY3Rpb24gZG9lcyBub3RoaW5nLiAgKi8KKysvKiBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBj b3VudCBvZiBBQkZELiAgSWYgdGhpcyBpcyB0aGUgbGFzdAorKyAgIHJlZmVyZW5jZSwgQUJGRCB3 aWxsIGJlIGZyZWVkLiAgSWYgQUJGRCBpcyBOVUxMLCB0aGlzIGZ1bmN0aW9uIGRvZXMKKysgICBu b3RoaW5nLiAgKi8KICsKICt2b2lkIGdkYl9iZmRfdW5yZWYgKHN0cnVjdCBiZmQgKmFiZmQpOwog KwpAQCAtNTI3OSw2ICs1NTg1LDUxIEBAIGluZGV4IDAwMDAwMDAuLjFkZDgyYzMKICsKICtjb25z dCBnZGJfYnl0ZSAqZ2RiX2JmZF9tYXBfc2VjdGlvbiAoYXNlY3Rpb24gKnNlY3Rpb24sIGJmZF9z aXplX3R5cGUgKnNpemUpOwogKworKwwKKysKKysvKiBBIHdyYXBwZXIgZm9yIGJmZF9mb3BlbiB0 aGF0IGluaXRpYWxpemVzIHRoZSBnZGItc3BlY2lmaWMgcmVmZXJlbmNlCisrICAgY291bnQgYW5k IGNhbGxzIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUuICAqLworKworK2JmZCAqZ2RiX2JmZF9mb3Bl biAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsKKysKKysv KiBBIHdyYXBwZXIgZm9yIGJmZF9vcGVuciB0aGF0IGluaXRpYWxpemVzIHRoZSBnZGItc3BlY2lm aWMgcmVmZXJlbmNlCisrICAgY291bnQgYW5kIGNhbGxzIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUu ICAqLworKworK2JmZCAqZ2RiX2JmZF9vcGVuciAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICop OworKworKy8qIEEgd3JhcHBlciBmb3IgYmZkX29wZW53IHRoYXQgaW5pdGlhbGl6ZXMgdGhlIGdk Yi1zcGVjaWZpYyByZWZlcmVuY2UKKysgICBjb3VudCBhbmQgY2FsbHMgZ2RiX2JmZF9zdGFzaF9m aWxlbmFtZS4gICovCisrCisrYmZkICpnZGJfYmZkX29wZW53IChjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKik7CisrCisrLyogQSB3cmFwcGVyIGZvciBiZmRfb3BlbnJfaW92ZWMgdGhhdCBpbml0 aWFsaXplcyB0aGUgZ2RiLXNwZWNpZmljCisrICAgcmVmZXJlbmNlIGNvdW50IGFuZCBjYWxscyBn ZGJfYmZkX3N0YXNoX2ZpbGVuYW1lLiAgKi8KKysKKytiZmQgKmdkYl9iZmRfb3BlbnJfaW92ZWMg KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICp0YXJnZXQsCisrCQkJICB2b2lkICoo Km9wZW5fZnVuYykgKHN0cnVjdCBiZmQgKm5iZmQsCisrCQkJCQkgICAgICB2b2lkICpvcGVuX2Ns b3N1cmUpLAorKwkJCSAgdm9pZCAqb3Blbl9jbG9zdXJlLAorKwkJCSAgZmlsZV9wdHIgKCpwcmVh ZF9mdW5jKSAoc3RydWN0IGJmZCAqbmJmZCwKKysJCQkJCQkgIHZvaWQgKnN0cmVhbSwKKysJCQkJ CQkgIHZvaWQgKmJ1ZiwKKysJCQkJCQkgIGZpbGVfcHRyIG5ieXRlcywKKysJCQkJCQkgIGZpbGVf cHRyIG9mZnNldCksCisrCQkJICBpbnQgKCpjbG9zZV9mdW5jKSAoc3RydWN0IGJmZCAqbmJmZCwK KysJCQkJCSAgICAgdm9pZCAqc3RyZWFtKSwKKysJCQkgIGludCAoKnN0YXRfZnVuYykgKHN0cnVj dCBiZmQgKmFiZmQsCisrCQkJCQkgICAgdm9pZCAqc3RyZWFtLAorKwkJCQkJICAgIHN0cnVjdCBz dGF0ICpzYikpOworKworKy8qIEEgd3JhcHBlciBmb3IgYmZkX29wZW5yX25leHRfYXJjaGl2ZWRf ZmlsZSB0aGF0IGluaXRpYWxpemVzIHRoZQorKyAgIGdkYi1zcGVjaWZpYyByZWZlcmVuY2UgY291 bnQgYW5kIGNhbGxzIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUuICAqLworKworK2JmZCAqZ2RiX2Jm ZF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUgKGJmZCAqYXJjaGl2ZSwgYmZkICpwcmV2aW91cyk7 CisrCisrLyogQSB3cmFwcGVyIGZvciBiZmRfZmRvcGVuciB0aGF0IGluaXRpYWxpemVzIHRoZSBn ZGItc3BlY2lmaWMKKysgICByZWZlcmVuY2UgY291bnQgYW5kIGNhbGxzIGdkYl9iZmRfc3Rhc2hf ZmlsZW5hbWUuICAqLworKworK2JmZCAqZ2RiX2JmZF9mZG9wZW5yIChjb25zdCBjaGFyICpmaWxl bmFtZSwgY29uc3QgY2hhciAqdGFyZ2V0LCBpbnQgZmQpOworKwogKyNlbmRpZiAvKiBHREJfQkZE X0ggKi8KIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiBpbmRl eCA4MTQyYWI5Li5hMjk1M2NjIDEwMDY0NApAQCAtNjQzMyw3ICs2Nzg0LDcgQEAgaW5kZXggMTdi ZmJjNS4uNzJlOWNjNSAxMDA2NDQKICsKICAjZW5kaWYgLyogR0RCVFlQRVNfSCAqLwogZGlmZiAt LWdpdCBhL2dkYi9qaXQuYyBiL2dkYi9qaXQuYwotaW5kZXggNTY4ZDE3Yi4uNjQ3ODM5NyAxMDA2 NDQKK2luZGV4IDU2OGQxN2IuLmNkZDlmNDkgMTAwNjQ0CiAtLS0gYS9nZGIvaml0LmMKICsrKyBi L2dkYi9qaXQuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAgLTY0NDQsNyArNjc5NSw3IEBAIGluZGV4 IDU2OGQxN2IuLjY0NzgzOTcgMTAwNjQ0CiAgCiAgc3RhdGljIGNvbnN0IGNoYXIgKmppdF9yZWFk ZXJfZGlyID0gTlVMTDsKICAKLUBAIC0xMzIsMTIgKzEzMywxMSBAQCBtZW1fYmZkX2lvdmVjX3N0 YXQgKHN0cnVjdCBiZmQgKmFiZmQsIHZvaWQgKnN0cmVhbSwgc3RydWN0IHN0YXQgKnNiKQorQEAg LTEzMiwxNyArMTMzLDE2IEBAIG1lbV9iZmRfaW92ZWNfc3RhdCAoc3RydWN0IGJmZCAqYWJmZCwg dm9pZCAqc3RyZWFtLCBzdHJ1Y3Qgc3RhdCAqc2IpCiAgc3RhdGljIHN0cnVjdCBiZmQgKgogIGJm ZF9vcGVuX2Zyb21fdGFyZ2V0X21lbW9yeSAoQ09SRV9BRERSIGFkZHIsIFVMT05HRVNUIHNpemUs IGNoYXIgKnRhcmdldCkKICB7CkBAIC02NDU0LDE5ICs2ODA1LDIxIEBAIGluZGV4IDU2OGQxN2Iu LjY0NzgzOTcgMTAwNjQ0CiAgICBidWZmZXItPmJhc2UgPSBhZGRyOwogICAgYnVmZmVyLT5zaXpl ID0gc2l6ZTsKIC0gIHJldHVybiBiZmRfb3BlbnJfaW92ZWMgKGZpbGVuYW1lLCB0YXJnZXQsCi0r ICByZXR1cm4gYmZkX29wZW5yX2lvdmVjICgiPGluLW1lbW9yeT4iLCB0YXJnZXQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICBtZW1fYmZkX2lvdmVjX29wZW4sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICBidWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1fYmZkX2lv dmVjX3ByZWFkLAotQEAgLTg2MSw2ICs4NjEsNyBAQCBqaXRfYmZkX3RyeV9yZWFkX3N5bXRhYiAo c3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb2RlX2VudHJ5LAotICAgICAgIHB1dHNfdW5maWx0ZXJl ZCAoXygiRXJyb3Igb3BlbmluZyBKSVRlZCBzeW1ib2wgZmlsZSwgaWdub3JpbmcgaXQuXG4iKSk7 Ci0gICAgICAgcmV0dXJuOwotICAgICB9Ci0rICBuYmZkID0gZ2RiX2JmZF9yZWYgKG5iZmQpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtX2JmZF9pb3ZlY19vcGVuLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgYnVmZmVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWVt X2JmZF9pb3ZlY19wcmVhZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIG1lbV9iZmRfaW92 ZWNfY2xvc2UsCistICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1fYmZkX2lvdmVjX3N0YXQp OworKyAgcmV0dXJuIGdkYl9iZmRfb3BlbnJfaW92ZWMgKCI8aW4tbWVtb3J5PiIsIHRhcmdldCwK KysJCQkgICAgICBtZW1fYmZkX2lvdmVjX29wZW4sCisrCQkJICAgICAgYnVmZmVyLAorKwkJCSAg ICAgIG1lbV9iZmRfaW92ZWNfcHJlYWQsCisrCQkJICAgICAgbWVtX2JmZF9pb3ZlY19jbG9zZSwK KysJCQkgICAgICBtZW1fYmZkX2lvdmVjX3N0YXQpOworIH0KICAKLSAgIC8qIENoZWNrIHRoZSBm b3JtYXQuICBOT1RFOiBUaGlzIGluaXRpYWxpemVzIGltcG9ydGFudCBkYXRhIHRoYXQgR0RCIHVz ZXMhCi0gICAgICBXZSB3b3VsZCBzZWdmYXVsdCBsYXRlciB3aXRob3V0IHRoaXMgbGluZS4gICov Ci1AQCAtODY4LDcgKzg2OSw3IEBAIGppdF9iZmRfdHJ5X3JlYWRfc3ltdGFiIChzdHJ1Y3Qgaml0 X2NvZGVfZW50cnkgKmNvZGVfZW50cnksCisgLyogT25lIHJlYWRlciB0aGF0IGhhcyBiZWVuIGxv YWRlZCBzdWNjZXNzZnVsbHksIGFuZCBjYW4gcG90ZW50aWFsbHkgYmUgdXNlZCB0bworQEAgLTg2 OCw3ICs4NjgsNyBAQCBqaXRfYmZkX3RyeV9yZWFkX3N5bXRhYiAoc3RydWN0IGppdF9jb2RlX2Vu dHJ5ICpjb2RlX2VudHJ5LAogICAgICB7CiAgICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIlwK ICBKSVRlZCBzeW1ib2wgZmlsZSBpcyBub3QgYW4gb2JqZWN0IGZpbGUsIGlnbm9yaW5nIGl0Llxu IikpOwpAQCAtNjQ3NSw4ICs2ODI4LDE4IEBAIGluZGV4IDU2OGQxN2IuLjY0NzgzOTcgMTAwNjQ0 CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCitAQCAtODk2LDcgKzg5Niw4IEBAIEpJVGVkIHN5 bWJvbCBmaWxlIGlzIG5vdCBhbiBvYmplY3QgZmlsZSwgaWdub3JpbmcgaXQuXG4iKSk7CisgICAg ICAgICArK2k7CisgICAgICAgfQorIAorLSAgLyogVGhpcyBjYWxsIHRha2VzIG93bmVyc2hpcCBv ZiBOQkZELiAgSXQgZG9lcyBub3QgdGFrZSBvd25lcnNoaXAgb2YgU0FJLiAgKi8KKysgIC8qIFRo aXMgY2FsbCBkb2VzIG5vdCB0YWtlIG93bmVyc2hpcCBvZiBTQUkuICAqLworKyAgbWFrZV9jbGVh bnVwX2JmZF91bnJlZiAobmJmZCk7CisgICBvYmpmaWxlID0gc3ltYm9sX2ZpbGVfYWRkX2Zyb21f YmZkIChuYmZkLCAwLCBzYWksIE9CSkZfU0hBUkVELCBOVUxMKTsKKyAKKyAgIGRvX2NsZWFudXBz IChvbGRfY2xlYW51cHMpOwogZGlmZiAtLWdpdCBhL2dkYi9tMzJyLXJvbS5jIGIvZ2RiL20zMnIt cm9tLmMKLWluZGV4IDc2ZTRiZjEuLmZmZGE2ZjkgMTAwNjQ0CitpbmRleCA3NmU0YmYxLi45YTJm NWFhIDEwMDY0NAogLS0tIGEvZ2RiL20zMnItcm9tLmMKICsrKyBiL2dkYi9tMzJyLXJvbS5jCiBA QCAtNDAsNiArNDAsNyBAQApAQCAtNjQ5Nyw3ICs2ODYwLDcgQEAgaW5kZXggNzZlNGJmMS4uZmZk YTZmOSAxMDA2NDQKICAgICAgZmlsZW5hbWUgPSBnZXRfZXhlY19maWxlICgxKTsKICAKIC0gIGFi ZmQgPSBiZmRfb3BlbnIgKGZpbGVuYW1lLCAwKTsKLSsgIGFiZmQgPSBnZGJfYmZkX3JlZiAoYmZk X29wZW5yIChmaWxlbmFtZSwgMCkpOworKyAgYWJmZCA9IGdkYl9iZmRfb3BlbnIgKGZpbGVuYW1l LCAwKTsKICAgIGlmICghYWJmZCkKICAgICAgZXJyb3IgKF8oIlVuYWJsZSB0byBvcGVuIGZpbGUg JXMuIiksIGZpbGVuYW1lKTsKICsgIGNsZWFudXAgPSBtYWtlX2NsZWFudXBfYmZkX3VucmVmIChh YmZkKTsKQEAgLTY1MjUsNyArNjg4OCw3IEBAIGluZGV4IDc2ZTRiZjEuLmZmZGE2ZjkgMTAwNjQ0 CiAgCiAgICBnZXR0aW1lb2ZkYXkgKCZlbmRfdGltZSwgTlVMTCk7CiAtICBhYmZkID0gYmZkX29w ZW5yIChhcmdzLCAwKTsKLSsgIGFiZmQgPSBnZGJfYmZkX3JlZiAoYmZkX29wZW5yIChhcmdzLCAw KSk7CisrICBhYmZkID0gZ2RiX2JmZF9vcGVuciAoYXJncywgMCk7CiArICBjbGVhbnVwID0gbWFr ZV9jbGVhbnVwX2JmZF91bnJlZiAoYWJmZCk7CiAgICBpZiAoYWJmZCAhPSBOVUxMKQogICAgICB7 CQkvKiBEb3dubG9hZCBpcyBkb25lIC0tIHByaW50IHNlY3Rpb24gc3RhdGlzdGljcy4gICovCkBA IC02NTM5LDEwICs2OTAyLDE4IEBAIGluZGV4IDc2ZTRiZjEuLmZmZGE2ZjkgMTAwNjQ0CiAgCiAg LyogUHJvdmlkZSBhIHByb3RvdHlwZSB0byBzaWxlbmNlIC1XbWlzc2luZy1wcm90b3R5cGVzLiAg Ki8KIGRpZmYgLS1naXQgYS9nZGIvbWFjaG9yZWFkLmMgYi9nZGIvbWFjaG9yZWFkLmMKLWluZGV4 IDIyNTMwYWIuLjZkMzA5YmIgMTAwNjQ0CitpbmRleCAyMjUzMGFiLi4wZDc1NzhhIDEwMDY0NAog LS0tIGEvZ2RiL21hY2hvcmVhZC5jCiArKysgYi9nZGIvbWFjaG9yZWFkLmMKLUBAIC00NjYsMTQg KzQ2NiwxNCBAQCBtYWNob19hZGRfb3NvX3N5bWZpbGUgKG9zb19lbCAqb3NvLCBiZmQgKmFiZmQs CitAQCAtNDU0LDYgKzQ1NCw3IEBAIG1hY2hvX2FkZF9vc29fc3ltZmlsZSAob3NvX2VsICpvc28s IGJmZCAqYWJmZCwKKyAgIGFzeW1ib2wgKipzeW1wOworICAgc3RydWN0IGJmZF9oYXNoX3RhYmxl IHRhYmxlOworICAgaW50IG5icl9zZWN0aW9uczsKKysgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVw OworIAorICAgLyogUGVyIHNlY3Rpb24gZmxhZyB0byBtYXJrIHdoaWNoIHNlY3Rpb24gaGF2ZSBi ZWVuIHJlYmFzZWQuICAqLworICAgdW5zaWduZWQgY2hhciAqc2VjdGlvbnNfcmViYXNlZDsKK0BA IC00NjYsMTQgKzQ2NywxNCBAQCBtYWNob19hZGRfb3NvX3N5bWZpbGUgKG9zb19lbCAqb3NvLCBi ZmQgKmFiZmQsCiAgICAgIHsKICAgICAgICB3YXJuaW5nIChfKCJgJXMnOiBjYW4ndCByZWFkIHN5 bWJvbHM6ICVzLiIpLCBvc28tPm5hbWUsCiAgICAgICAgICAgICAgICAgYmZkX2Vycm1zZyAoYmZk X2dldF9lcnJvciAoKSkpOwpAQCAtNjU1OSw3ICs2OTMwLDcgQEAgaW5kZXggMjI1MzBhYi4uNmQz MDliYiAxMDA2NDQKICAgICAgICByZXR1cm47CiAgICAgIH0KICAKLUBAIC00ODIsNyArNDgyLDcg QEAgbWFjaG9fYWRkX29zb19zeW1maWxlIChvc29fZWwgKm9zbywgYmZkICphYmZkLAorQEAgLTQ4 Miw3ICs0ODMsNyBAQCBtYWNob19hZGRfb3NvX3N5bWZpbGUgKG9zb19lbCAqb3NvLCBiZmQgKmFi ZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3NvLT5uYnJfc3ltcykpCiAgICAg IHsKICAgICAgICB3YXJuaW5nIChfKCJgJXMnOiBjYW4ndCBjcmVhdGUgaGFzaCB0YWJsZSIpLCBv c28tPm5hbWUpOwpAQCAtNjU2OCw3ICs2OTM5LDcgQEAgaW5kZXggMjI1MzBhYi4uNmQzMDliYiAx MDA2NDQKICAgICAgICByZXR1cm47CiAgICAgIH0KICAKLUBAIC02MjksMTAgKzYyOSwxMCBAQCBt YWNob19hZGRfb3NvX3N5bWZpbGUgKG9zb19lbCAqb3NvLCBiZmQgKmFiZmQsCitAQCAtNjI5LDE4 ICs2MzAsMTUgQEAgbWFjaG9fYWRkX29zb19zeW1maWxlIChvc29fZWwgKm9zbywgYmZkICphYmZk LAogIAogICAgYmZkX2hhc2hfdGFibGVfZnJlZSAoJnRhYmxlKTsKICAKQEAgLTY1NzYsMTQgKzY5 NDcsMjAgQEAgaW5kZXggMjI1MzBhYi4uNmQzMDliYiAxMDA2NDQKIC0gICAgIGVpdGhlciBmcm9t IGFuIE9TTyBzeW1ib2wgbmFtZSBvciBmcm9tIGFuIGFyY2hpdmUgbmFtZS4gIE1lbW9yeSBmb3Ig Ym90aAogLSAgICAgaXMgbm90IG1hbmFnZWQgYnkgZ2RiLiAgKi8KIC0gIGFiZmQtPmZpbGVuYW1l ID0geHN0cmR1cCAoYWJmZC0+ZmlsZW5hbWUpOwotKyAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIGZp bGVuYW1lIGhhcyB0aGUgY29ycmVjdCBsaWZldGltZS4gIFRoZQotKyAgICAgY3VycmVudCBmaWxl bmFtZSBjb21lcyBlaXRoZXIgZnJvbSBhbiBPU08gc3ltYm9sIG5hbWUgb3IgZnJvbSBhbgotKyAg ICAgYXJjaGl2ZSBuYW1lLiAgTWVtb3J5IGZvciBib3RoIGlzIG5vdCBtYW5hZ2VkIGJ5IGdkYi4g ICovCi0rICBnZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChhYmZkKTsKLSAKKy0KICAgIC8qIFdlIG5l ZWQgdG8gY2xlYXIgU1lNRklMRV9NQUlOTElORSB0byBhdm9pZCBpbnRlcnJhY3RpdmUgcXVlc3Rp b24KICAgICAgIGZyb20gc3ltZmlsZS5jOnN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29m ZnNldHMuICAqLwotQEAgLTY1MSw2ICs2NTEsNyBAQCBtYWNob19zeW1maWxlX3JlYWRfYWxsX29z byAoc3RydWN0IG9iamZpbGUgKm1haW5fb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCisrICBj bGVhbnVwID0gbWFrZV9jbGVhbnVwX2JmZF91bnJlZiAoYWJmZCk7CisgICBzeW1ib2xfZmlsZV9h ZGRfZnJvbV9iZmQKKyAgICAgKGFiZmQsIHN5bWZpbGVfZmxhZ3MgJiB+KFNZTUZJTEVfTUFJTkxJ TkUgfCBTWU1GSUxFX1ZFUkJPU0UpLCBOVUxMLAorICAgICAgbWFpbl9vYmpmaWxlLT5mbGFncyAm IChPQkpGX1JFT1JERVJFRCB8IE9CSkZfU0hBUkVECisgCQkJICAgIHwgT0JKRl9SRUFETk9XIHwg T0JKRl9VU0VSTE9BREVEKSwKKyAgICAgIG1haW5fb2JqZmlsZSk7CisrICBkb19jbGVhbnVwcyAo Y2xlYW51cCk7CisgfQorIAorIC8qIFJlYWQgc3ltYm9scyBmcm9tIHRoZSB2ZWN0b3Igb2Ygb3Nv IGZpbGVzLiAgKi8KK0BAIC02NTEsNiArNjQ5LDcgQEAgbWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9v c28gKHN0cnVjdCBvYmpmaWxlICptYWluX29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQogICAg aW50IGl4OwogICAgVkVDIChvc29fZWwpICp2ZWM7CiAgICBvc29fZWwgKm9zbzsKQEAgLTY1OTEs NyArNjk2OCw3IEBAIGluZGV4IDIyNTMwYWIuLjZkMzA5YmIgMTAwNjQ0CiAgCiAgICB2ZWMgPSBv c29fdmVjdG9yOwogICAgb3NvX3ZlY3RvciA9IE5VTEw7Ci1AQCAtNjc3LDYgKzY3OCw4IEBAIG1h Y2hvX3N5bWZpbGVfcmVhZF9hbGxfb3NvIChzdHJ1Y3Qgb2JqZmlsZSAqbWFpbl9vYmpmaWxlLCBp bnQgc3ltZmlsZV9mbGFncykKK0BAIC02NzcsNiArNjc2LDggQEAgbWFjaG9fc3ltZmlsZV9yZWFk X2FsbF9vc28gKHN0cnVjdCBvYmpmaWxlICptYWluX29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdz KQogIAkgIG1lbWNweSAoYXJjaGl2ZV9uYW1lLCBvc28tPm5hbWUsIHBmeF9sZW4pOwogIAkgIGFy Y2hpdmVfbmFtZVtwZnhfbGVuXSA9ICdcMCc7CiAgCkBAIC02NjAwLDE2ICs2OTc3LDE2IEBAIGlu ZGV4IDIyNTMwYWIuLjZkMzA5YmIgMTAwNjQ0CiAgICAgICAgICAgIC8qIENvbXB1dGUgbnVtYmVy IG9mIG9zbyBmb3IgdGhpcyBhcmNoaXZlLiAgKi8KICAgICAgICAgICAgZm9yIChsYXN0X2l4ID0g aXg7CiAgICAgICAgICAgICAgICAgVkVDX2l0ZXJhdGUgKG9zb19lbCwgdmVjLCBsYXN0X2l4LCBv c28yKTsgbGFzdF9peCsrKQotQEAgLTY4Niw3ICs2ODksNyBAQCBtYWNob19zeW1maWxlX3JlYWRf YWxsX29zbyAoc3RydWN0IG9iamZpbGUgKm1haW5fb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3Mp CitAQCAtNjg2LDcgKzY4Nyw3IEBAIG1hY2hvX3N5bWZpbGVfcmVhZF9hbGxfb3NvIChzdHJ1Y3Qg b2JqZmlsZSAqbWFpbl9vYmpmaWxlLCBpbnQgc3ltZmlsZV9mbGFncykKICAgICAgICAgICAgICB9 CiAgCiAgCSAgLyogT3BlbiB0aGUgYXJjaGl2ZSBhbmQgY2hlY2sgdGhlIGZvcm1hdC4gICovCiAt CSAgYXJjaGl2ZV9iZmQgPSBiZmRfb3BlbnIgKGFyY2hpdmVfbmFtZSwgZ251dGFyZ2V0KTsKLSsJ ICBhcmNoaXZlX2JmZCA9IGdkYl9iZmRfcmVmIChiZmRfb3BlbnIgKGFyY2hpdmVfbmFtZSwgZ251 dGFyZ2V0KSk7CisrCSAgYXJjaGl2ZV9iZmQgPSBnZGJfYmZkX29wZW5yIChhcmNoaXZlX25hbWUs IGdudXRhcmdldCk7CiAgCSAgaWYgKGFyY2hpdmVfYmZkID09IE5VTEwpCiAgCSAgICB7CiAgCSAg ICAgIHdhcm5pbmcgKF8oIkNvdWxkIG5vdCBvcGVuIE9TTyBhcmNoaXZlIGZpbGUgXCIlc1wiIiks Ci1AQCAtNjk4LDE3ICs3MDEsMjEgQEAgbWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVj dCBvYmpmaWxlICptYWluX29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQorQEAgLTY5OCwxNyAr Njk5LDE4IEBAIG1hY2hvX3N5bWZpbGVfcmVhZF9hbGxfb3NvIChzdHJ1Y3Qgb2JqZmlsZSAqbWFp bl9vYmpmaWxlLCBpbnQgc3ltZmlsZV9mbGFncykKICAJICAgIHsKICAJICAgICAgd2FybmluZyAo XygiT1NPIGFyY2hpdmUgZmlsZSBcIiVzXCIgbm90IGFuIGFyY2hpdmUuIiksCiAgCQkgICAgICAg YXJjaGl2ZV9uYW1lKTsKQEAgLTY2MjAsMTAgKzY5OTcsNyBAQCBpbmRleCAyMjUzMGFiLi42ZDMw OWJiIDEwMDY0NAogIAkgICAgfQogLQkgIG1lbWJlcl9iZmQgPSBiZmRfb3BlbnJfbmV4dF9hcmNo aXZlZF9maWxlIChhcmNoaXZlX2JmZCwgTlVMTCk7CiArCi0rCSAgZ2RiX2JmZF9zdGFzaF9maWxl bmFtZSAoYXJjaGl2ZV9iZmQpOwotKwotKwkgIG1lbWJlcl9iZmQgPSBnZGJfYmZkX3JlZiAoYmZk X29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYXJjaGl2ZV9iZmQsCi0rCQkJCQkJCQkgIE5VTEwp KTsKKysJICBtZW1iZXJfYmZkID0gZ2RiX2JmZF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUgKGFy Y2hpdmVfYmZkLCBOVUxMKTsKICAKICAJICBpZiAobWVtYmVyX2JmZCA9PSBOVUxMKQogIAkgICAg ewpAQCAtNjYzNCwxNSArNzAwOCwxNCBAQCBpbmRleCAyMjUzMGFiLi42ZDMwOWJiIDEwMDY0NAog ICAgICAgICAgICAgICAgaXggPSBsYXN0X2l4OwogIAkgICAgICBjb250aW51ZTsKICAJICAgIH0K LUBAIC03MzgsMTIgKzc0NSwxMyBAQCBtYWNob19zeW1maWxlX3JlYWRfYWxsX29zbyAoc3RydWN0 IG9iamZpbGUgKm1haW5fb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCitAQCAtNzM4LDEyICs3 NDAsMTIgQEAgbWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVjdCBvYmpmaWxlICptYWlu X29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQogICAgICAgICAgICAgICAgICB9CiAgCiAgICAg ICAgICAgICAgICBwcmV2ID0gbWVtYmVyX2JmZDsKIC0JICAgICAgbWVtYmVyX2JmZCA9IGJmZF9v cGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUKIC0JCShhcmNoaXZlX2JmZCwgbWVtYmVyX2JmZCk7Ci0r CSAgICAgIG1lbWJlcl9iZmQKLSsJCT0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVucl9uZXh0X2FyY2hp dmVkX2ZpbGUgKGFyY2hpdmVfYmZkLAotKwkJCQkJCQkgICAgIG1lbWJlcl9iZmQpKTsKKysJICAg ICAgbWVtYmVyX2JmZCA9IGdkYl9iZmRfb3BlbnJfbmV4dF9hcmNoaXZlZF9maWxlIChhcmNoaXZl X2JmZCwKKysJCQkJCQkJICAgICBtZW1iZXJfYmZkKTsKICAKICAgICAgICAgICAgICAgIC8qIEZy ZWUgcHJldmlvdXMgbWVtYmVyIGlmIG5vdCByZWZlcmVuY2VkIGJ5IGFuIG9zby4gICovCiAgICAg ICAgICAgICAgICBpZiAoaXgyID49IGxhc3RfaXgpCkBAIC02NjUxLDE2ICs3MDI0LDE2IEBAIGlu ZGV4IDIyNTMwYWIuLjZkMzA5YmIgMTAwNjQ0CiAgCSAgICB9CiAgICAgICAgICAgIGZvciAoaXgy ID0gaXg7IGl4MiA8IGxhc3RfaXg7IGl4MisrKQogICAgICAgICAgICAgIHsKLUBAIC03NTksNyAr NzY3LDcgQEAgbWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVjdCBvYmpmaWxlICptYWlu X29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQorQEAgLTc1OSw3ICs3NjEsNyBAQCBtYWNob19z eW1maWxlX3JlYWRfYWxsX29zbyAoc3RydWN0IG9iamZpbGUgKm1haW5fb2JqZmlsZSwgaW50IHN5 bWZpbGVfZmxhZ3MpCiAgCXsKICAgICAgICAgICAgYmZkICphYmZkOwogIAogLQkgIGFiZmQgPSBi ZmRfb3BlbnIgKG9zby0+bmFtZSwgZ251dGFyZ2V0KTsKLSsJICBhYmZkID0gZ2RiX2JmZF9yZWYg KGJmZF9vcGVuciAob3NvLT5uYW1lLCBnbnV0YXJnZXQpKTsKKysJICBhYmZkID0gZ2RiX2JmZF9v cGVuciAob3NvLT5uYW1lLCBnbnV0YXJnZXQpOwogIAkgIGlmICghYWJmZCkKICAgICAgICAgICAg ICB3YXJuaW5nIChfKCJgJXMnOiBjYW4ndCBvcGVuIHRvIHJlYWQgc3ltYm9sczogJXMuIiksIG9z by0+bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9y ICgpKSk7Ci1AQCAtNzcxLDYgKzc3OSw3IEBAIG1hY2hvX3N5bWZpbGVfcmVhZF9hbGxfb3NvIChz dHJ1Y3Qgb2JqZmlsZSAqbWFpbl9vYmpmaWxlLCBpbnQgc3ltZmlsZV9mbGFncykKK0BAIC03NzEs NiArNzczLDcgQEAgbWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVjdCBvYmpmaWxlICpt YWluX29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQogICAgICB9CiAgCiAgICBWRUNfZnJlZSAo b3NvX2VsLCB2ZWMpOwpAQCAtNjY2OCwyMCArNzA0MSwxOSBAQCBpbmRleCAyMjUzMGFiLi42ZDMw OWJiIDEwMDY0NAogIH0KICAKICAvKiBEU1lNIChkZWJ1ZyBzeW1ib2xzKSBmaWxlcyBjb250YWlu IHRoZSBkZWJ1ZyBpbmZvIG9mIGFuIGV4ZWN1dGFibGUuCi1AQCAtODA4LDIwICs4MTcsMTggQEAg bWFjaG9fY2hlY2tfZHN5bSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtODA4LDIwICs4 MTEsMTcgQEAgbWFjaG9fY2hlY2tfZHN5bSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgICAg ICAgd2FybmluZyAoXygiY2FuJ3QgZmluZCBVVUlEIGluICVzIiksIG9iamZpbGUtPm5hbWUpOwog ICAgICAgIHJldHVybiBOVUxMOwogICAgICB9CiAtICBkc3ltX2ZpbGVuYW1lID0geHN0cmR1cCAo ZHN5bV9maWxlbmFtZSk7CiAtICBkc3ltX2JmZCA9IGJmZF9vcGVuciAoZHN5bV9maWxlbmFtZSwg Z251dGFyZ2V0KTsKLSsgIGRzeW1fYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVuciAoZHN5bV9m aWxlbmFtZSwgZ251dGFyZ2V0KSk7CisrICBkc3ltX2JmZCA9IGdkYl9iZmRfb3BlbnIgKGRzeW1f ZmlsZW5hbWUsIGdudXRhcmdldCk7CiAgICBpZiAoZHN5bV9iZmQgPT0gTlVMTCkKICAgICAgewog ICAgICAgIHdhcm5pbmcgKF8oImNhbid0IG9wZW4gZHN5bSBmaWxlICVzIiksIGRzeW1fZmlsZW5h bWUpOwogLSAgICAgIHhmcmVlIChkc3ltX2ZpbGVuYW1lKTsKICAgICAgICByZXR1cm4gTlVMTDsK ICAgICAgfQotKyAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAoZHN5bV9maWxlbmFtZSk7CiAgCiAg ICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKGRzeW1fYmZkLCBiZmRfb2JqZWN0KSkKICAgICAgewpA QCAtNjY5Miw3ICs3MDY0LDcgQEAgaW5kZXggMjI1MzBhYi4uNmQzMDliYiAxMDA2NDQKICAgICAg ICByZXR1cm4gTlVMTDsKICAgICAgfQogIAotQEAgLTgyOSwxNiArODM2LDE0IEBAIG1hY2hvX2No ZWNrX2RzeW0gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTgyOSwxNiArODI5LDE0IEBA IG1hY2hvX2NoZWNrX2RzeW0gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJGRF9NQUNIX09fTENfVVVJRCwgJmRzeW1fdXVpZCkgPT0g MCkKICAgICAgewogICAgICAgIHdhcm5pbmcgKF8oImNhbid0IGZpbmQgVVVJRCBpbiAlcyIpLCBk c3ltX2ZpbGVuYW1lKTsKQEAgLTY3MTEsOCArNzA4MywyNiBAQCBpbmRleCAyMjUzMGFiLi42ZDMw OWJiIDEwMDY0NAogICAgICAgIHJldHVybiBOVUxMOwogICAgICB9CiAgICByZXR1cm4gZHN5bV9i ZmQ7CitAQCAtOTAyLDYgKzkwMCw3IEBAIG1hY2hvX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQorIAkgIGludCBpeDsKKyAJICBvc29fZWwg Km9zbzsKKyAgICAgICAgICAgc3RydWN0IGJmZF9zZWN0aW9uICphc2VjdCwgKmRzZWN0OworKwkg IHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOworIAorIAkgIGlmIChtYWNoX29fZGVidWdfbGV2ZWwg PiAwKQorIAkgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oImRzeW0gZmlsZSBmb3VuZFxuIikpOwor QEAgLTkyMiw3ICs5MjEsOSBAQCBtYWNob19zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLCBpbnQgc3ltZmlsZV9mbGFncykKKyAgICAgICAgICAgICB9CisgCisgCSAgLyogQWRk IHRoZSBkc3ltIGZpbGUgYXMgYSBzZXBhcmF0ZSBmaWxlLiAgKi8KKysJICBjbGVhbnVwID0gbWFr ZV9jbGVhbnVwX2JmZF91bnJlZiAoZHN5bV9iZmQpOworICAgICAgICAgICBzeW1ib2xfZmlsZV9h ZGRfc2VwYXJhdGUgKGRzeW1fYmZkLCBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKysJICBkb19j bGVhbnVwcyAoY2xlYW51cCk7CisgCisgCSAgLyogRG9uJ3QgdHJ5IHRvIHJlYWQgZHdhcmYyIGZy b20gbWFpbiBmaWxlIG9yIHNoYXJlZCBsaWJyYXJpZXMuICAqLworICAgICAgICAgICByZXR1cm47 CiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKLWluZGV4IDAyNWJiZTAuLmE4 YzFhOTcgMTAwNjQ0CitpbmRleCBkMDc1Njk0Li5lNGRhM2YxIDEwMDY0NAogLS0tIGEvZ2RiL21h aW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAgLTM3LDYgKzM3LDcgQEAKQEAgLTY3MzIsMTAgKzcx MjIsMTAgQEAgaW5kZXggMDI1YmJlMC4uYThjMWE5NyAxMDA2NDQKICAgIC8qIFRoZXNlIGFyZSBz dGF0aWMgc28gdGhhdCB3ZSBjYW4gdGFrZSB0aGVpciBhZGRyZXNzIGluIGFuCiAgICAgICBpbml0 aWFsaXplci4gICovCiAgICBzdGF0aWMgaW50IHByaW50X2hlbHA7Ci1AQCAtNDczLDEwICs0NzYs MTQgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC00NzEsMTAgKzQ3NCwxNCBAQCBj YXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorICAgICAgIHsiYXJncyIsIG5vX2FyZ3VtZW50LCAm c2V0X2FyZ3MsIDF9LAorICAgICAgIHsibCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnbCd9LAog ICAgICAgIHsicmV0dXJuLWNoaWxkLXJlc3VsdCIsIG5vX2FyZ3VtZW50LCAmcmV0dXJuX2NoaWxk X3Jlc3VsdCwgMX0sCi0gICAgICAgeyJ1c2UtZGVwcmVjYXRlZC1pbmRleC1zZWN0aW9ucyIsIG5v X2FyZ3VtZW50LAotICAgICAgICAmdXNlX2RlcHJlY2F0ZWRfaW5kZXhfc2VjdGlvbnMsIDF9LAog KyNpZiBIQVZFX1BZVEhPTgogKyAgICAgIHsicHl0aG9uIiwgbm9fYXJndW1lbnQsIDAsICdQJ30s CiArICAgICAgeyJQIiwgbm9fYXJndW1lbnQsIDAsICdQJ30sCkBAIC02NzQ4LDcgKzcxMzgsNyBA QCBpbmRleCAwMjViYmUwLi5hOGMxYTk3IDEwMDY0NAogICAgICAgIHsKICAJaW50IG9wdGlvbl9p bmRleDsKICAKLUBAIC00OTQsNiArNTAxLDkgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK K0BAIC00OTIsNiArNDk5LDkgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAJICBjYXNl IDA6CiAgCSAgICAvKiBMb25nIG9wdGlvbiB0aGF0IGp1c3Qgc2V0cyBhIGZsYWcuICAqLwogIAkg ICAgYnJlYWs7CkBAIC02NzU4LDcgKzcxNDgsNyBAQCBpbmRleCAwMjViYmUwLi5hOGMxYTk3IDEw MDY0NAogIAkgIGNhc2UgT1BUX1NFOgogIAkgICAgc3ltYXJnID0gb3B0YXJnOwogIAkgICAgZXhl Y2FyZyA9IG9wdGFyZzsKLUBAIC03MDEsNyArNzExLDMxIEBAIGNhcHR1cmVkX21haW4gKHZvaWQg KmRhdGEpCitAQCAtNjk5LDcgKzcwOSwzMSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQog IAogICAgLyogTm93IHRoYXQgZ2RiX2luaXQgaGFzIGNyZWF0ZWQgdGhlIGluaXRpYWwgaW5mZXJp b3IsIHdlJ3JlIGluCiAgICAgICBwb3NpdGlvbiB0byBzZXQgYXJncyBmb3IgdGhhdCBpbmZlcmlv ci4gICovCkBAIC02NzkxLDcgKzcxODEsNyBAQCBpbmRleCAwMjViYmUwLi5hOGMxYTk3IDEwMDY0 NAogICAgICB7CiAgICAgICAgLyogVGhlIHJlbWFpbmluZyBvcHRpb25zIGFyZSB0aGUgY29tbWFu ZC1saW5lIG9wdGlvbnMgZm9yIHRoZQogIAkgaW5mZXJpb3IuICBUaGUgZmlyc3Qgb25lIGlzIHRo ZSBzeW0vZXhlYyBmaWxlLCBhbmQgdGhlIHJlc3QKLUBAIC05ODEsNyArMTAxNSw4IEBAIGNhcHR1 cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtOTc5LDcgKzEwMTMsOCBAQCBjYXB0dXJlZF9tYWlu ICh2b2lkICpkYXRhKQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxs IHRoZSBjb21tYW5kIGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC02ODAxLDcg KzcxOTEsNyBAQCBpbmRleCAwMjViYmUwLi5hOGMxYTk3IDEwMDY0NAogIAogICAgaWYgKGJhdGNo X2ZsYWcpCiAgICAgIHsKLUBAIC05OTIsMTMgKzEwMjcsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9p ZCAqZGF0YSkKK0BAIC05OTAsMTMgKzEwMjUsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0 YSkKICAgIC8qIFNob3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwogICAgZG9fY2xlYW51 cHMgKHByZV9zdGF0X2NoYWluKTsKICAKQEAgLTY4MzMsNyArNzIyMyw3IEBAIGluZGV4IDAyNWJi ZTAuLmE4YzFhOTcgMTAwNjQ0CiAgICAgIH0KICAgIC8qIE5vIGV4aXQgLS0gZXhpdCBpcyB0aHJv dWdoIHF1aXRfY29tbWFuZC4gICovCiAgfQotQEAgLTEwMzAsNyArMTA3NywxMiBAQCBwcmludF9n ZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKK0BAIC0xMDI4LDcgKzEwNzUsMTIgQEAg cHJpbnRfZ2RiX2hlbHAgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgICBmcHV0c191bmZpbHRl cmVkIChfKCJcCiAgVGhpcyBpcyB0aGUgR05VIGRlYnVnZ2VyLiAgVXNhZ2U6XG5cblwKICAgICAg Z2RiIFtvcHRpb25zXSBbZXhlY3V0YWJsZS1maWxlIFtjb3JlLWZpbGUgb3IgcHJvY2Vzcy1pZF1d XG5cCkBAIC02ODQ3LDcgKzcyMzcsNyBAQCBpbmRleCAwMjViYmUwLi5hOGMxYTk3IDEwMDY0NAog IE9wdGlvbnM6XG5cblwKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwK LUBAIC0xMDcwLDcgKzExMjIsMTMgQEAgT3B0aW9uczpcblxuXAorQEAgLTEwNjgsNyArMTEyMCwx MyBAQCBPcHRpb25zOlxuXG5cCiAgICAtLW53CQkgICAgIERvIG5vdCB1c2UgYSB3aW5kb3cgaW50 ZXJmYWNlLlxuXAogICAgLS1ueCAgICAgICAgICAgICAgIERvIG5vdCByZWFkICIpLCBzdHJlYW0p OwogICAgZnB1dHNfdW5maWx0ZXJlZCAoZ2RiaW5pdCwgc3RyZWFtKTsKQEAgLTY4NjMsNyArNzI1 Myw3IEBAIGluZGV4IDAyNWJiZTAuLmE4YzFhOTcgMTAwNjQ0CiAgICAtLXJlYWRub3cgICAgICAg ICAgRnVsbHkgcmVhZCBzeW1ib2wgZmlsZXMgb24gZmlyc3QgYWNjZXNzLlxuXAogICIpLCBzdHJl YW0pOwogZGlmZiAtLWdpdCBhL2dkYi9vYmpmaWxlcy5jIGIvZ2RiL29iamZpbGVzLmMKLWluZGV4 IGY1ZTVjNzUuLjVmZjBlYjIgMTAwNjQ0CitpbmRleCBmNWU1Yzc1Li40MTE2MThmIDEwMDY0NAog LS0tIGEvZ2RiL29iamZpbGVzLmMKICsrKyBiL2dkYi9vYmpmaWxlcy5jCiBAQCAtNTMsNiArNTMs NyBAQApAQCAtNjg3NCwxOSArNzI2NCwxNyBAQCBpbmRleCBmNWU1Yzc1Li41ZmYwZWIyIDEwMDY0 NAogIAogIC8qIFByb3RvdHlwZXMgZm9yIGxvY2FsIGZ1bmN0aW9ucyAqLwogIAotQEAgLTE5Myw5 ICsxOTQsOSBAQCBhbGxvY2F0ZV9vYmpmaWxlIChiZmQgKmFiZmQsIGludCBmbGFncykKLSAKLSAg IC8qIFVwZGF0ZSB0aGUgcGVyLW9iamZpbGUgaW5mb3JtYXRpb24gdGhhdCBjb21lcyBmcm9tIHRo ZSBiZmQsIGVuc3VyaW5nCitAQCAtMTk1LDcgKzE5Niw4IEBAIGFsbG9jYXRlX29iamZpbGUgKGJm ZCAqYWJmZCwgaW50IGZsYWdzKQogICAgICAgdGhhdCBhbnkgZGF0YSB0aGF0IGlzIHJlZmVyZW5j ZSBpcyBzYXZlZCBpbiB0aGUgcGVyLW9iamZpbGUgZGF0YQotLSAgICAgcmVnaW9uLiAgKi8KLSsg ICAgIHJlZ2lvbi4gIE5vdGUgdGhhdCB3ZSBzdGVhbCBhIHJlZmVyZW5jZSB0byBBQkZELiAgKi8K KyAgICAgIHJlZ2lvbi4gICovCiAgCiAtICBvYmpmaWxlLT5vYmZkID0gZ2RiX2JmZF9yZWYgKGFi ZmQpOwogKyAgb2JqZmlsZS0+b2JmZCA9IGFiZmQ7CisrICBnZGJfYmZkX3JlZiAoYWJmZCk7CiAg ICBpZiAoYWJmZCAhPSBOVUxMKQogICAgICB7CiAgICAgICAgLyogTG9vayB1cCB0aGUgZ2RiYXJj aCBhc3NvY2lhdGVkIHdpdGggdGhlIEJGRC4gICovCi1AQCAtMTQ1Niw3NSArMTQ1Nyw2IEBAIG9i amZpbGVzX2NoYW5nZWQgKHZvaWQpCitAQCAtMTQ1Niw3NSArMTQ1OCw2IEBAIG9iamZpbGVzX2No YW5nZWQgKHZvaWQpCiAgICBnZXRfb2JqZmlsZV9wc3BhY2VfZGF0YSAoY3VycmVudF9wcm9ncmFt X3NwYWNlKS0+b2JqZmlsZXNfY2hhbmdlZF9wID0gMTsKICB9CiAgCkBAIC03MTk5LDcgKzc1ODcs NyBAQCBpbmRleCA4NmYzYmRmLi5mOTA4YTYxIDEwMDY0NAogKwogICNlbmRpZiAvKiBQQVJTRVJf REVGU19IICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQuYwot aW5kZXggMmEwYTg4Ni4uYzEzYTA0NCAxMDA2NDQKK2luZGV4IGQ1YjViNjMuLjRiYzJiNWIgMTAw NjQ0CiAtLS0gYS9nZGIvcHJpbnRjbWQuYwogKysrIGIvZ2RiL3ByaW50Y21kLmMKIEBAIC01MCw2 ICs1MCw3IEBACkBAIC03MjU3LDcgKzc2NDUsNyBAQCBpbmRleCAyYTBhODg2Li5jMTNhMDQ0IDEw MDY0NAogIAwKICAKICAvKiBBZGQgYW4gZXhwcmVzc2lvbiB0byB0aGUgYXV0by1kaXNwbGF5IGNo YWluLgotQEAgLTE5ODAsNiArMjAwNywxMCBAQCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWUgKGNv bnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzeW1ib2wgKnZhciwKK0BAIC0xOTgyLDYgKzIwMDksMTAg QEAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3lt Ym9sICp2YXIsCiAgICAgICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsKICAKICAg ICAgICB2YWwgPSByZWFkX3Zhcl92YWx1ZSAodmFyLCBmcmFtZSk7CkBAIC03MjY4LDcgKzc2NTYs NyBAQCBpbmRleCAyYTBhODg2Li5jMTNhMDQ0IDEwMDY0NAogICAgICAgIGdldF91c2VyX3ByaW50 X29wdGlvbnMgKCZvcHRzKTsKICAgICAgICBvcHRzLmRlcmVmX3JlZiA9IDE7CiAgICAgICAgY29t bW9uX3ZhbF9wcmludCAodmFsLCBzdHJlYW0sIGluZGVudCwgJm9wdHMsIGN1cnJlbnRfbGFuZ3Vh Z2UpOwotQEAgLTI2MjAsNCArMjY1MSw4IEBAIFNob3cgcHJpbnRpbmcgb2Ygc291cmNlIGZpbGVu YW1lIGFuZCBsaW5lIG51bWJlciB3aXRoIDxzeW1ib2w+LiIpLCBOVUxMLAorQEAgLTI2MjYsNCAr MjY1Nyw4IEBAIFNob3cgcHJpbnRpbmcgb2Ygc291cmNlIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJl ciB3aXRoIDxzeW1ib2w+LiIpLCBOVUxMLAogICAgYWRkX2NvbSAoImV2YWwiLCBub19jbGFzcywg ZXZhbF9jb21tYW5kLCBfKCJcCiAgQ29udmVydCBcInByaW50ZiBmb3JtYXQgc3RyaW5nXCIsIGFy ZzEsIGFyZzIsIGFyZzMsIC4uLiwgYXJnbiB0b1xuXAogIGEgY29tbWFuZCBsaW5lLCBhbmQgY2Fs bCBpdC4iKSk7CkBAIC03Mjc4LDcgKzc2NjYsNyBAQCBpbmRleCAyYTBhODg2Li5jMTNhMDQ0IDEw MDY0NAogKyNlbmRpZgogIH0KIGRpZmYgLS1naXQgYS9nZGIvcHJvY2ZzLmMgYi9nZGIvcHJvY2Zz LmMKLWluZGV4IDc3NGRmMmUuLjMyY2I0NjggMTAwNjQ0CitpbmRleCA3NzRkZjJlLi40NDA5ZTVi IDEwMDY0NAogLS0tIGEvZ2RiL3Byb2Nmcy5jCiArKysgYi9nZGIvcHJvY2ZzLmMKIEBAIC0zNDg2 LDcgKzM0ODYsNyBAQCBpbnNlcnRfZGJ4X2xpbmtfYnB0X2luX2ZpbGUgKGludCBmZCwgQ09SRV9B RERSIGlnbm9yZWQpCkBAIC03Mjg2LDcgKzc2NzQsNyBAQCBpbmRleCA3NzRkZjJlLi4zMmNiNDY4 IDEwMDY0NAogICAgQ09SRV9BRERSIHN5bV9hZGRyOwogIAogLSAgYWJmZCA9IGJmZF9mZG9wZW5y ICgidW5hbWVkIiwgMCwgZmQpOwotKyAgYWJmZCA9IGdkYl9iZmRfcmVmIChiZmRfZmRvcGVuciAo InVuYW1lZCIsIDAsIGZkKSk7CisrICBhYmZkID0gZ2RiX2JmZF9mZG9wZW5yICgidW5hbWVkIiwg MCwgZmQpOwogICAgaWYgKGFiZmQgPT0gTlVMTCkKICAgICAgewogICAgICAgIHdhcm5pbmcgKF8o IkZhaWxlZCB0byBjcmVhdGUgYSBiZmQ6ICVzLiIpLCBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9y ICgpKSk7CkBAIC04NDQ1LDcgKzg4MzMsNyBAQCBpbmRleCBiYjBmZTUyLi5lYzQyYWFjIDEwMDY0 NAogIAogICAgLyogU3VjY2VlZGVkLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLW0zMnIt c2RpLmMgYi9nZGIvcmVtb3RlLW0zMnItc2RpLmMKLWluZGV4IDQ3ZjQ0MDUuLmI0YjczMjQgMTAw NjQ0CitpbmRleCA0N2Y0NDA1Li44NTI2OGI2IDEwMDY0NAogLS0tIGEvZ2RiL3JlbW90ZS1tMzJy LXNkaS5jCiArKysgYi9nZGIvcmVtb3RlLW0zMnItc2RpLmMKIEBAIC0zOSw2ICszOSw3IEBACkBA IC04NDYxLDcgKzg4NDksNyBAQCBpbmRleCA0N2Y0NDA1Li5iNGI3MzI0IDEwMDY0NAogICAgICBm aWxlbmFtZSA9IGdldF9leGVjX2ZpbGUgKDEpOwogIAogLSAgcGJmZCA9IGJmZF9vcGVuciAoZmls ZW5hbWUsIGdudXRhcmdldCk7Ci0rICBwYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVuciAoZmls ZW5hbWUsIGdudXRhcmdldCkpOworKyAgcGJmZCA9IGdkYl9iZmRfb3BlbnIgKGZpbGVuYW1lLCBn bnV0YXJnZXQpOwogICAgaWYgKHBiZmQgPT0gTlVMTCkKICAgICAgewogICAgICAgIHBlcnJvcl93 aXRoX25hbWUgKGZpbGVuYW1lKTsKQEAgLTg0NzMsNyArODg2MSw3IEBAIGluZGV4IDQ3ZjQ0MDUu LmI0YjczMjQgMTAwNjQ0CiAgICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKHBiZmQsIGJmZF9vYmpl Y3QpKQogICAgICBlcnJvciAoXygiXCIlc1wiIGlzIG5vdCBhbiBvYmplY3QgZmlsZTogJXMiKSwg ZmlsZW5hbWUsCiBkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS1taXBzLmMgYi9nZGIvcmVtb3RlLW1p cHMuYwotaW5kZXggYmFiYmYxOS4uYjQ2MzI1ZiAxMDA2NDQKK2luZGV4IGJhYmJmMTkuLmRiNDM4 MWIgMTAwNjQ0CiAtLS0gYS9nZGIvcmVtb3RlLW1pcHMuYwogKysrIGIvZ2RiL3JlbW90ZS1taXBz LmMKIEBAIC0zNiw2ICszNiw3IEBACkBAIC04NDk0LDcgKzg4ODIsNyBAQCBpbmRleCBiYWJiZjE5 Li5iNDYzMjVmIDEwMDY0NAogICAgYnVmZmVyID0gYWxsb2NhIChzcmVjX2ZyYW1lICogMiArIDI1 Nik7CiAgCiAtICBhYmZkID0gYmZkX29wZW5yIChhcmdzLCAwKTsKLSsgIGFiZmQgPSBnZGJfYmZk X3JlZiAoYmZkX29wZW5yIChhcmdzLCAwKSk7CisrICBhYmZkID0gZ2RiX2JmZF9vcGVuciAoYXJn cywgMCk7CiAgICBpZiAoIWFiZmQpCiAgICAgIHsKICAgICAgICBwcmludGZfZmlsdGVyZWQgKCJV bmFibGUgdG8gb3BlbiBmaWxlICVzXG4iLCBhcmdzKTsKQEAgLTg1MjcsNyArODkxNSw3IEBAIGlu ZGV4IGJhYmJmMTkuLmI0NjMyNWYgMTAwNjQ0CiAgICBiaW5idWYgPSAodW5zaWduZWQgY2hhciAq KSB4bWFsbG9jIChCSU5DSFVOSyk7CiAgCiAtICBhYmZkID0gYmZkX29wZW5yIChmaWxlLCAwKTsK LSsgIGFiZmQgPSBnZGJfYmZkX3JlZiAoYmZkX29wZW5yIChmaWxlLCAwKSk7CisrICBhYmZkID0g Z2RiX2JmZF9vcGVuciAoZmlsZSwgMCk7CiAgICBpZiAoIWFiZmQpCiAgICAgIHsKICAgICAgICBw cmludGZfZmlsdGVyZWQgKCJVbmFibGUgdG8gb3BlbiBmaWxlICVzXG4iLCBmaWxlKTsKQEAgLTg1 NTEsNyArODkzOSw3IEBAIGluZGV4IGJhYmJmMTkuLmI0NjMyNWYgMTAwNjQ0CiAgfQogIAogZGlm ZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwotaW5kZXggMWM5MzY3ZC4uNmNj YWI1NCAxMDA2NDQKK2luZGV4IDFjOTM2N2QuLmYyYjVlN2IgMTAwNjQ0CiAtLS0gYS9nZGIvcmVt b3RlLmMKICsrKyBiL2dkYi9yZW1vdGUuYwogQEAgLTQyLDYgKzQyLDcgQEAKQEAgLTg1NjIsNyAr ODk1MCw3IEBAIGluZGV4IDFjOTM2N2QuLjZjY2FiNTQgMTAwNjQ0CiAgCiAgI2luY2x1ZGUgPGN0 eXBlLmg+CiAgI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci1AQCAtOTgyMywxMSArOTgyNCwxNSBAQCBy ZW1vdGVfZmlsZW5hbWVfcCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCitAQCAtOTgyMywxMSArOTgy NCwxMyBAQCByZW1vdGVfZmlsZW5hbWVfcCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCiAgYmZkICoK ICByZW1vdGVfYmZkX29wZW4gKGNvbnN0IGNoYXIgKnJlbW90ZV9maWxlLCBjb25zdCBjaGFyICp0 YXJnZXQpCiAgewpAQCAtODU3MSwyMCArODk1OSwxOCBAQCBpbmRleCAxYzkzNjdkLi42Y2NhYjU0 IDEwMDY0NAogLQkJCSAgcmVtb3RlX2JmZF9pb3ZlY19wcmVhZCwKIC0JCQkgIHJlbW90ZV9iZmRf aW92ZWNfY2xvc2UsCiAtCQkJICByZW1vdGVfYmZkX2lvdmVjX3N0YXQpOwotKyAgYmZkICphYmZk ID0gYmZkX29wZW5yX2lvdmVjIChyZW1vdGVfZmlsZSwgdGFyZ2V0LAotKwkJCSAgICAgICByZW1v dGVfYmZkX2lvdmVjX29wZW4sIE5VTEwsCi0rCQkJICAgICAgIHJlbW90ZV9iZmRfaW92ZWNfcHJl YWQsCi0rCQkJICAgICAgIHJlbW90ZV9iZmRfaW92ZWNfY2xvc2UsCi0rCQkJICAgICAgIHJlbW90 ZV9iZmRfaW92ZWNfc3RhdCk7CisrICBiZmQgKmFiZmQgPSBnZGJfYmZkX29wZW5yX2lvdmVjIChy ZW1vdGVfZmlsZSwgdGFyZ2V0LAorKwkJCQkgICByZW1vdGVfYmZkX2lvdmVjX29wZW4sIE5VTEws CisrCQkJCSAgIHJlbW90ZV9iZmRfaW92ZWNfcHJlYWQsCisrCQkJCSAgIHJlbW90ZV9iZmRfaW92 ZWNfY2xvc2UsCisrCQkJCSAgIHJlbW90ZV9iZmRfaW92ZWNfc3RhdCk7CiArCi0rICBpZiAoYWJm ZCAhPSBOVUxMKQotKyAgICBnZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChhYmZkKTsKICsgIHJldHVy biBhYmZkOwogIH0KICAKICB2b2lkCiBkaWZmIC0tZ2l0IGEvZ2RiL3JzNjAwMC1uYXQuYyBiL2dk Yi9yczYwMDAtbmF0LmMKLWluZGV4IDBhMjAwMGEuLjAxN2U5OTcgMTAwNjQ0CitpbmRleCAwYTIw MDBhLi45YjhlZmQzIDEwMDY0NAogLS0tIGEvZ2RiL3JzNjAwMC1uYXQuYwogKysrIGIvZ2RiL3Jz NjAwMC1uYXQuYwogQEAgLTczMCw3ICs3MzAsNyBAQCBzdGF0aWMgc3RydWN0IHZtYXAgKgpAQCAt ODU5Niw3ICs4OTgyLDcgQEAgaW5kZXggMGEyMDAwYS4uMDE3ZTk5NyAxMDA2NDQKICAgIHN0cnVj dCBvYmpmaWxlICpvYmo7CiAgICBzdHJ1Y3Qgdm1hcCAqdnA7CiAgICBpbnQgZmQ7Ci1AQCAtNzQz LDIxICs3NDMsMjIgQEAgYWRkX3ZtYXAgKExkSW5mbyAqbGRpKQorQEAgLTc0MywxOSArNzQzLDE4 IEBAIGFkZF92bWFwIChMZEluZm8gKmxkaSkKICAgIGZpbGVuYW1lID0gTERJX0ZJTEVOQU1FIChs ZGksIGFyY2g2NCk7CiAgICBtZW0gPSBmaWxlbmFtZSArIHN0cmxlbiAoZmlsZW5hbWUpICsgMTsK ICAgIG1lbSA9IHhzdHJkdXAgKG1lbSk7CkBAIC04NjA3LDExICs4OTkzLDEwIEBAIGluZGV4IDBh MjAwMGEuLjAxN2U5OTcgMTAwNjQ0CiAgICAgIC8qIE5vdGUgdGhhdCB0aGlzIG9wZW5zIGl0IG9u Y2UgZm9yIGV2ZXJ5IG1lbWJlcjsgYSBwb3NzaWJsZQogICAgICAgICBlbmhhbmNlbWVudCB3b3Vs ZCBiZSB0byBvbmx5IG9wZW4gaXQgb25jZSBmb3IgZXZlcnkgb2JqZWN0LiAgKi8KIC0gICAgYWJm ZCA9IGJmZF9vcGVuciAob2JqbmFtZSwgZ251dGFyZ2V0KTsKLSsgICAgYWJmZCA9IGJmZF9vcGVu ciAoZmlsZW5hbWUsIGdudXRhcmdldCk7CisrICAgIGFiZmQgPSBnZGJfYmZkX29wZW5yIChmaWxl bmFtZSwgZ251dGFyZ2V0KTsKICAgIGVsc2UKIC0gICAgYWJmZCA9IGJmZF9mZG9wZW5yIChvYmpu YW1lLCBnbnV0YXJnZXQsIGZkKTsKLSsgICAgYWJmZCA9IGJmZF9mZG9wZW5yIChmaWxlbmFtZSwg Z251dGFyZ2V0LCBmZCk7Ci0rICBhYmZkID0gZ2RiX2JmZF9yZWYgKGFiZmQpOworKyAgICBhYmZk ID0gZ2RiX2JmZF9mZG9wZW5yIChmaWxlbmFtZSwgZ251dGFyZ2V0LCBmZCk7CiAgICBpZiAoIWFi ZmQpCiAgICAgIHsKICAgICAgICB3YXJuaW5nIChfKCJDb3VsZCBub3Qgb3BlbiBgJXMnIGFzIGFu IGV4ZWN1dGFibGUgZmlsZTogJXMiKSwKQEAgLTg2MTksMTggKzkwMDQsMjcgQEAgaW5kZXggMGEy MDAwYS4uMDE3ZTk5NyAxMDA2NDQKICsJICAgICAgIGZpbGVuYW1lLCBiZmRfZXJybXNnIChiZmRf Z2V0X2Vycm9yICgpKSk7CiAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgIH0KLSsgIGdkYl9iZmRf c3Rhc2hfZmlsZW5hbWUgKGFiZmQpOwogIAotICAgLyogTWFrZSBzdXJlIHdlIGhhdmUgYW4gb2Jq ZWN0IGZpbGUuICAqLworQEAgLTc2NiwzNSArNzY1LDQ0IEBAIGFkZF92bWFwIChMZEluZm8gKmxk aSkKICAKLUBAIC03NjgsMjMgKzc2OSwyMyBAQCBhZGRfdm1hcCAoTGRJbmZvICpsZGkpCisgICBl bHNlIGlmIChiZmRfY2hlY2tfZm9ybWF0IChhYmZkLCBiZmRfYXJjaGl2ZSkpCiAgICAgIHsKLSAg ICAgICBsYXN0ID0gMDsKLSAgICAgICAvKiBGSVhNRT8/PyBhbSBJIHRvc3NpbmcgQkZEcz8gIGJm ZD8gICovCistICAgICAgbGFzdCA9IDA7CistICAgICAgLyogRklYTUU/Pz8gYW0gSSB0b3NzaW5n IEJGRHM/ICBiZmQ/ICAqLwogLSAgICAgIHdoaWxlICgobGFzdCA9IGJmZF9vcGVucl9uZXh0X2Fy Y2hpdmVkX2ZpbGUgKGFiZmQsIGxhc3QpKSkKLSsgICAgICB3aGlsZSAoKGxhc3QgPSBnZGJfYmZk X3JlZiAoYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYWJmZCwgbGFzdCkpKSkKLSAJaWYg KHN0cmNtcCAobWVtLCBsYXN0LT5maWxlbmFtZSkgPT0gMCkKLSAJICBicmVhazsKKy0JaWYgKHN0 cmNtcCAobWVtLCBsYXN0LT5maWxlbmFtZSkgPT0gMCkKKy0JICBicmVhazsKKysgICAgICBsYXN0 ID0gZ2RiX2JmZF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUgKGFiZmQsIE5VTEwpOworKyAgICAg IHdoaWxlIChsYXN0ICE9IE5VTEwpCisrCXsKKysJICBiZmQgKm5leHQ7CisrCisrCSAgaWYgKHN0 cmNtcCAobWVtLCBsYXN0LT5maWxlbmFtZSkgPT0gMCkKKysJICAgIGJyZWFrOworKworKwkgIG5l eHQgPSBnZGJfYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYWJmZCwgbGFzdCk7CisrCSAg Z2RiX2JmZF91bnJlZiAobGFzdCk7CisrCX0KICAKICAgICAgICBpZiAoIWxhc3QpCiAgCXsKQEAg LTg2NTMsNyArOTA0NywxMSBAQCBpbmRleCAwYTIwMDBhLi4wMTdlOTk3IDEwMDY0NAogIAkgIHJl dHVybiBOVUxMOwogIAl9CiAgCi1AQCAtNzkzLDExICs3OTQsMTEgQEAgYWRkX3ZtYXAgKExkSW5m byAqbGRpKQorICAgICAgIHZwID0gbWFwX3ZtYXAgKGxhc3QsIGFiZmQpOworKyAgICAgIC8qIG1h cF92bWFwIGFjcXVpcmVkIGEgcmVmZXJlbmNlIHRvIExBU1QsIHNvIHdlIGNhbiByZWxlYXNlCisr CSBvdXJzLiAgKi8KKysgICAgICBnZGJfYmZkX3VucmVmIChsYXN0KTsKKyAgICAgfQogICAgZWxz ZQogICAgICB7CiAgICAgICAgd2FybmluZyAoXygiXCIlc1wiOiBub3QgaW4gZXhlY3V0YWJsZSBm b3JtYXQ6ICVzLiIpLApAQCAtODY2MywxMyArOTA2MSwyMSBAQCBpbmRleCAwYTIwMDBhLi4wMTdl OTk3IDEwMDY0NAogKyAgICAgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOwogICAgICAgIHJldHVybiBO VUxMOwogICAgICB9Ci0tICBvYmogPSBhbGxvY2F0ZV9vYmpmaWxlICh2cC0+YmZkLCAwKTsKLSsg IG9iaiA9IGFsbG9jYXRlX29iamZpbGUgKGdkYl9iZmRfcmVmICh2cC0+YmZkKSwgMCk7Ci0gICB2 cC0+b2JqZmlsZSA9IG9iajsKLSAKKyAgIG9iaiA9IGFsbG9jYXRlX29iamZpbGUgKHZwLT5iZmQs IDApOworQEAgLTgwMyw2ICs4MTEsMTEgQEAgYWRkX3ZtYXAgKExkSW5mbyAqbGRpKQogICAgLyog QWx3YXlzIGFkZCBzeW1ib2xzIGZvciB0aGUgbWFpbiBvYmpmaWxlLiAgKi8KKyAgIGlmICh2cCA9 PSB2bWFwIHx8IGF1dG9fc29saWJfYWRkKQorICAgICB2bWFwX2FkZF9zeW1ib2xzICh2cCk7Cisr CisrICAvKiBBbnl0aGluZyBuZWVkaW5nIGEgcmVmZXJlbmNlIHRvIEFCRkQgaGFzIGFscmVhZHkg YWNxdWlyZWQgaXQsIHNvCisrICAgICByZWxlYXNlIG91ciBsb2NhbCByZWZlcmVuY2UuICAqLwor KyAgZ2RiX2JmZF91bnJlZiAoYWJmZCk7CisrCisgICByZXR1cm4gdnA7CisgfQorIAwKIGRpZmYg LS1naXQgYS9nZGIvc29saWItZGFyd2luLmMgYi9nZGIvc29saWItZGFyd2luLmMKLWluZGV4IGQ1 MmZiNDYuLjcxMDllYWQgMTAwNjQ0CitpbmRleCBkNTJmYjQ2Li5kYjhmMTg3IDEwMDY0NAogLS0t IGEvZ2RiL3NvbGliLWRhcndpbi5jCiArKysgYi9nZGIvc29saWItZGFyd2luLmMKIEBAIC0yOCw2 ICsyOCw3IEBACkBAIC04Njg4LDcgKzkwOTQsNyBAQCBpbmRleCBkNTJmYjQ2Li43MTA5ZWFkIDEw MDY0NAogIAogICAgLyogVGhpcyBtZXRob2QgZG9lc24ndCB3b3JrIHdpdGggYW4gYXR0YWNoZWQg cHJvY2Vzcy4gICovCiAgICBpZiAoY3VycmVudF9pbmZlcmlvciAoKS0+YXR0YWNoX2ZsYWcpCi1A QCAtMzY2LDI0ICszNjgsMzAgQEAgZGFyd2luX3NvbGliX2dldF9hbGxfaW1hZ2VfaW5mb19hZGRy X2F0X2luaXQgKHN0cnVjdCBkYXJ3aW5faW5mbyAqaW5mbykKK0BAIC0zNjYsMjQgKzM2OCwzMSBA QCBkYXJ3aW5fc29saWJfZ2V0X2FsbF9pbWFnZV9pbmZvX2FkZHJfYXRfaW5pdCAoc3RydWN0IGRh cndpbl9pbmZvICppbmZvKQogICAgaWYgKCFpbnRlcnBfbmFtZSkKICAgICAgcmV0dXJuOwogIApA QCAtODY5Niw3ICs5MTAyLDcgQEAgaW5kZXggZDUyZmI0Ni4uNzEwOWVhZCAxMDA2NDQKICsKICAg IC8qIENyZWF0ZSBhIGJmZCBmb3IgdGhlIGludGVycHJldGVyLiAgKi8KIC0gIGR5bGRfYmZkID0g YmZkX29wZW5yIChpbnRlcnBfbmFtZSwgZ251dGFyZ2V0KTsKLSsgIGR5bGRfYmZkID0gZ2RiX2Jm ZF9yZWYgKGJmZF9vcGVuciAoaW50ZXJwX25hbWUsIGdudXRhcmdldCkpOworKyAgZHlsZF9iZmQg PSBnZGJfYmZkX29wZW5yIChpbnRlcnBfbmFtZSwgZ251dGFyZ2V0KTsKICAgIGlmIChkeWxkX2Jm ZCkKICAgICAgewogICAgICAgIGJmZCAqc3ViOwpAQCAtODcxMCw3ICs5MTE2LDggQEAgaW5kZXgg ZDUyZmI0Ni4uNzEwOWVhZCAxMDA2NDQKICAJewogLQkgIGJmZF9jbG9zZSAoZHlsZF9iZmQpOwog LQkgIGR5bGRfYmZkID0gTlVMTDsKLSsJICBkeWxkX2JmZCA9IGdkYl9iZmRfcmVmIChzdWIpOwor KwkgIGR5bGRfYmZkID0gc3ViOworKwkgIGdkYl9iZmRfcmVmIChzdWIpOwogKwkgIG1ha2VfY2xl YW51cF9iZmRfdW5yZWYgKHN1Yik7CiAgCX0KICsgICAgICBlbHNlCkBAIC04NzI1LDcgKzkxMzIs NyBAQCBpbmRleCBkNTJmYjQ2Li43MTA5ZWFkIDEwMDY0NAogIAogICAgLyogV2UgZmluZCB0aGUg ZHluYW1pYyBsaW5rZXIncyBiYXNlIGFkZHJlc3MgYnkgZXhhbWluaW5nCiAgICAgICB0aGUgY3Vy cmVudCBwYyAod2hpY2ggc2hvdWxkIHBvaW50IGF0IHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlCi1A QCAtMzk1LDcgKzQwMyw3IEBAIGRhcndpbl9zb2xpYl9nZXRfYWxsX2ltYWdlX2luZm9fYWRkcl9h dF9pbml0IChzdHJ1Y3QgZGFyd2luX2luZm8gKmluZm8pCitAQCAtMzk1LDcgKzQwNCw3IEBAIGRh cndpbl9zb2xpYl9nZXRfYWxsX2ltYWdlX2luZm9fYWRkcl9hdF9pbml0IChzdHJ1Y3QgZGFyd2lu X2luZm8gKmluZm8pCiAgICBpbmZvLT5hbGxfaW1hZ2VfYWRkciA9CiAgICAgIGxvb2t1cF9zeW1i b2xfZnJvbV9iZmQgKGR5bGRfYmZkLCAiX2R5bGRfYWxsX2ltYWdlX2luZm9zIik7CiAgCkBAIC04 NzM0LDcgKzkxNDEsNyBAQCBpbmRleCBkNTJmYjQ2Li43MTA5ZWFkIDEwMDY0NAogIAogICAgaWYg KGluZm8tPmFsbF9pbWFnZV9hZGRyID09IDApCiAgICAgIHJldHVybjsKLUBAIC01MDksMTcgKzUx NywxMCBAQCBkYXJ3aW5fYmZkX29wZW4gKGNoYXIgKnBhdGhuYW1lKQorQEAgLTUwOSwxNyArNTE4 LDEwIEBAIGRhcndpbl9iZmRfb3BlbiAoY2hhciAqcGF0aG5hbWUpCiAgCQkJCWdkYmFyY2hfYmZk X2FyY2hfaW5mbyAodGFyZ2V0X2dkYmFyY2gpKTsKICAgIGlmICghcmVzKQogICAgICB7CkBAIC04 ODU2LDcgKzkyNjMsNyBAQCBpbmRleCAyZjJjOGIwLi4wZjU5NTM1IDEwMDY0NAogICAgICAgIC8q IFdlJ3JlIGFsc28gZG9uZSB3aXRoIHRoZSBsb2FkbWFwLiAgKi8KICAgICAgICB4ZnJlZSAobGRt KTsKIGRpZmYgLS1naXQgYS9nZGIvc29saWItcGE2NC5jIGIvZ2RiL3NvbGliLXBhNjQuYwotaW5k ZXggMmI4ZDA2MS4uYjU1YjY3YyAxMDA2NDQKK2luZGV4IDJiOGQwNjEuLjAwZWQ4YTUgMTAwNjQ0 CiAtLS0gYS9nZGIvc29saWItcGE2NC5jCiArKysgYi9nZGIvc29saWItcGE2NC5jCiBAQCAtMzYy LDcgKzM2Miw3IEBAIG1hbnBhZ2UgZm9yIG1ldGhvZHMgdG8gcHJpdmF0ZWx5IG1hcCBzaGFyZWQg bGlicmFyeSB0ZXh0LiIpKTsKQEAgLTg4NjQsNyArOTI3MSw3IEBAIGluZGV4IDJiOGQwNjEuLmI1 NWI2N2MgMTAwNjQ0CiAgCSBiZSB0cml2aWFsIG9uIEdOVS9MaW51eCkuICBUaGVyZWZvcmUsIHdl IGhhdmUgdG8gdHJ5IGFuIGFsdGVybmF0ZQogIAkgbWVjaGFuaXNtIHRvIGZpbmQgdGhlIGR5bmFt aWMgbGlua2VyJ3MgYmFzZSBhZGRyZXNzLiAgKi8KIC0gICAgICB0bXBfYmZkID0gYmZkX29wZW5y IChidWYsIGdudXRhcmdldCk7Ci0rICAgICAgdG1wX2JmZCA9IGdkYl9iZmRfcmVmIChiZmRfb3Bl bnIgKGJ1ZiwgZ251dGFyZ2V0KSk7CisrICAgICAgdG1wX2JmZCA9IGdkYl9iZmRfb3BlbnIgKGJ1 ZiwgZ251dGFyZ2V0KTsKICAgICAgICBpZiAodG1wX2JmZCA9PSBOVUxMKQogIAlyZXR1cm47CiAg CkBAIC04ODg3LDcgKzkyOTQsNyBAQCBpbmRleCAyYjhkMDYxLi5iNTViNjdjIDEwMDY0NAogIH0K ICAKIGRpZmYgLS1naXQgYS9nZGIvc29saWItc3B1LmMgYi9nZGIvc29saWItc3B1LmMKLWluZGV4 IGI1NDU0ZTcuLjVlZWFlNjIgMTAwNjQ0CitpbmRleCBiNTQ1NGU3Li5mNjJkOTZjIDEwMDY0NAog LS0tIGEvZ2RiL3NvbGliLXNwdS5jCiArKysgYi9nZGIvc29saWItc3B1LmMKIEBAIC0zNiw2ICsz Niw3IEBACkBAIC04ODk4LDcgKzkzMDUsNyBAQCBpbmRleCBiNTQ1NGU3Li41ZWVhZTYyIDEwMDY0 NAogIAogICNpbmNsdWRlICJzcHUtdGRlcC5oIgogIAotQEAgLTMyNSwxOSArMzI2LDIwIEBAIHNw dV9iZmRfZm9wZW4gKGNoYXIgKm5hbWUsIENPUkVfQUREUiBhZGRyKQorQEAgLTMyNSwxNiArMzI2 LDE2IEBAIHNwdV9iZmRfZm9wZW4gKGNoYXIgKm5hbWUsIENPUkVfQUREUiBhZGRyKQogICAgQ09S RV9BRERSICpvcGVuX2Nsb3N1cmUgPSB4bWFsbG9jIChzaXplb2YgKENPUkVfQUREUikpOwogICAg Km9wZW5fY2xvc3VyZSA9IGFkZHI7CiAgCkBAIC04OTA2LDEwICs5MzEzLDEwIEBAIGluZGV4IGI1 NDU0ZTcuLjVlZWFlNjIgMTAwNjQ0CiAtICAgICAgICAgICAgICAgICAgICAgICAgICBzcHVfYmZk X2lvdmVjX29wZW4sIG9wZW5fY2xvc3VyZSwKIC0gICAgICAgICAgICAgICAgICAgICAgICAgIHNw dV9iZmRfaW92ZWNfcHJlYWQsIHNwdV9iZmRfaW92ZWNfY2xvc2UsCiAtCQkJICBzcHVfYmZkX2lv dmVjX3N0YXQpOwotKyAgbmJmZCA9IGdkYl9iZmRfcmVmIChiZmRfb3BlbnJfaW92ZWMgKG5hbWUs ICJlbGYzMi1zcHUiLAotKwkJCQkgICAgICAgc3B1X2JmZF9pb3ZlY19vcGVuLCBvcGVuX2Nsb3N1 cmUsCi0rCQkJCSAgICAgICBzcHVfYmZkX2lvdmVjX3ByZWFkLCBzcHVfYmZkX2lvdmVjX2Nsb3Nl LAotKwkJCQkgICAgICAgc3B1X2JmZF9pb3ZlY19zdGF0KSk7CisrICBuYmZkID0gZ2RiX2JmZF9v cGVucl9pb3ZlYyAobmFtZSwgImVsZjMyLXNwdSIsCisrCQkJICAgICAgc3B1X2JmZF9pb3ZlY19v cGVuLCBvcGVuX2Nsb3N1cmUsCisrCQkJICAgICAgc3B1X2JmZF9pb3ZlY19wcmVhZCwgc3B1X2Jm ZF9pb3ZlY19jbG9zZSwKKysJCQkgICAgICBzcHVfYmZkX2lvdmVjX3N0YXQpOwogICAgaWYgKCFu YmZkKQogICAgICByZXR1cm4gTlVMTDsKICAKQEAgLTg5MjAsMTIgKzkzMjcsNDYgQEAgaW5kZXgg YjU0NTRlNy4uNWVlYWU2MiAxMDA2NDQKICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgfQogIAot KyAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAobmJmZCk7Ci0gICByZXR1cm4gbmJmZDsKLSB9Citk aWZmIC0tZ2l0IGEvZ2RiL3NvbGliLXN2cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKK2luZGV4IDMw N2U0ODMuLjc2YmQ4NzIgMTAwNjQ0CistLS0gYS9nZGIvc29saWItc3ZyNC5jCisrKysgYi9nZGIv c29saWItc3ZyNC5jCitAQCAtNDYsNiArNDYsNyBAQAorICNpbmNsdWRlICJleGVjLmgiCisgI2lu Y2x1ZGUgImF1eHYuaCIKKyAjaW5jbHVkZSAiZXhjZXB0aW9ucy5oIgorKyNpbmNsdWRlICJnZGJf YmZkLmgiCiAgCisgc3RhdGljIHN0cnVjdCBsaW5rX21hcF9vZmZzZXRzICpzdnI0X2ZldGNoX2xp bmtfbWFwX29mZnNldHMgKHZvaWQpOworIHN0YXRpYyBpbnQgc3ZyNF9oYXZlX2xpbmtfbWFwX29m ZnNldHMgKHZvaWQpOworQEAgLTE1NTgsOSArMTU1OSwxMSBAQCBlbmFibGVfYnJlYWsgKHN0cnVj dCBzdnI0X2luZm8gKmluZm8sIGludCBmcm9tX3R0eSkKKyAJZ290byBia3B0X2F0X3N5bWJvbDsK KyAKKyAgICAgICAvKiBOb3cgY29udmVydCB0aGUgVE1QX0JGRCBpbnRvIGEgdGFyZ2V0LiAgVGhh dCB3YXkgdGFyZ2V0LCBhcworLSAgICAgICAgIHdlbGwgYXMgQkZEIG9wZXJhdGlvbnMgY2FuIGJl IHVzZWQuICBOb3RlIHRoYXQgY2xvc2luZyB0aGUKKy0gICAgICAgICB0YXJnZXQgd2lsbCBhbHNv IGNsb3NlIHRoZSB1bmRlcmx5aW5nIGJmZC4gICovCisrICAgICAgICAgd2VsbCBhcyBCRkQgb3Bl cmF0aW9ucyBjYW4gYmUgdXNlZC4gICovCisgICAgICAgdG1wX2JmZF90YXJnZXQgPSB0YXJnZXRf YmZkX3Jlb3BlbiAodG1wX2JmZCk7CisrICAgICAgLyogdGFyZ2V0X2JmZF9yZW9wZW4gYWNxdWly ZWQgaXRzIG93biByZWZlcmVuY2UsIHNvIHdlIGNhbgorKyAgICAgICAgIHJlbGVhc2Ugb3VycyBu b3cuICAqLworKyAgICAgIGdkYl9iZmRfdW5yZWYgKHRtcF9iZmQpOworIAorICAgICAgIC8qIE9u IGEgcnVubmluZyB0YXJnZXQsIHdlIGNhbiBnZXQgdGhlIGR5bmFtaWMgbGlua2VyJ3MgYmFzZQor ICAgICAgICAgIGFkZHJlc3MgZnJvbSB0aGUgc2hhcmVkIGxpYnJhcnkgdGFibGUuICAqLworQEAg LTE2NzAsOCArMTY3Myw5IEBAIGVuYWJsZV9icmVhayAoc3RydWN0IHN2cjRfaW5mbyAqaW5mbywg aW50IGZyb21fdHR5KQorIAkJCQkJCSAgICAgICBzeW1fYWRkciwKKyAJCQkJCQkgICAgICAgdG1w X2JmZF90YXJnZXQpOworIAorLSAgICAgIC8qIFdlJ3JlIGRvbmUgd2l0aCBib3RoIHRoZSB0ZW1w b3JhcnkgYmZkIGFuZCB0YXJnZXQuICBSZW1lbWJlciwKKy0gICAgICAgICBjbG9zaW5nIHRoZSB0 YXJnZXQgY2xvc2VzIHRoZSB1bmRlcmx5aW5nIGJmZC4gICovCisrICAgICAgLyogV2UncmUgZG9u ZSB3aXRoIGJvdGggdGhlIHRlbXBvcmFyeSBiZmQgYW5kIHRhcmdldC4gIENsb3NpbmcKKysgICAg ICAgICB0aGUgdGFyZ2V0IGNsb3NlcyB0aGUgdW5kZXJseWluZyBiZmQsIGJlY2F1c2UgaXQgaG9s ZHMgdGhlCisrICAgICAgICAgb25seSByZW1haW5pbmcgcmVmZXJlbmNlLiAgKi8KKyAgICAgICB0 YXJnZXRfY2xvc2UgKHRtcF9iZmRfdGFyZ2V0LCAwKTsKKyAKKyAgICAgICBpZiAoc3ltX2FkZHIg IT0gMCkKIGRpZmYgLS1naXQgYS9nZGIvc29saWIuYyBiL2dkYi9zb2xpYi5jCi1pbmRleCA5MDQz OWJhLi4wZmQ5NTVkIDEwMDY0NAoraW5kZXggOTA0MzliYS4uNzM3NzNmMSAxMDA2NDQKIC0tLSBh L2dkYi9zb2xpYi5jCiArKysgYi9nZGIvc29saWIuYwogQEAgLTQ2LDYgKzQ2LDcgQEAKQEAgLTg5 NDksMTkgKzkzOTAsMjUgQEAgaW5kZXggOTA0MzliYS4uMGZkOTU1ZCAxMDA2NDQKICAKICBiZmQg KgogIHNvbGliX2JmZF9mb3BlbiAoY2hhciAqcGF0aG5hbWUsIGludCBmZCkKLUBAIC0zODksNyAr MzkwLDEwIEBAIHNvbGliX2JmZF9mb3BlbiAoY2hhciAqcGF0aG5hbWUsIGludCBmZCkKK0BAIC0z NzYsNyArMzc3LDcgQEAgc29saWJfYmZkX2ZvcGVuIChjaGFyICpwYXRobmFtZSwgaW50IGZkKQor ICAgICB9CisgICBlbHNlCisgICAgIHsKKy0gICAgICBhYmZkID0gYmZkX2ZvcGVuIChwYXRobmFt ZSwgZ251dGFyZ2V0LCBGT1BFTl9SQiwgZmQpOworKyAgICAgIGFiZmQgPSBnZGJfYmZkX2ZvcGVu IChwYXRobmFtZSwgZ251dGFyZ2V0LCBGT1BFTl9SQiwgZmQpOworIAorICAgICAgIGlmIChhYmZk KQorIAliZmRfc2V0X2NhY2hlYWJsZSAoYWJmZCwgMSk7CitAQCAtMzg5LDYgKzM5MCw4IEBAIHNv bGliX2JmZF9mb3BlbiAoY2hhciAqcGF0aG5hbWUsIGludCBmZCkKICAJICAgICBwYXRobmFtZSwg YmZkX2Vycm1zZyAoYmZkX2dldF9lcnJvciAoKSkpOwogICAgICB9CiAgCi0tICByZXR1cm4gYWJm ZDsKLSsgIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUgKGFiZmQpOwogKyAgeGZyZWUgKHBhdGhuYW1l KTsKICsKLSsgIHJldHVybiBnZGJfYmZkX3JlZiAoYWJmZCk7CisgICByZXR1cm4gYWJmZDsKICB9 CiAgCi0gLyogRmluZCBzaGFyZWQgbGlicmFyeSBQQVRITkFNRSBhbmQgb3BlbiBhIEJGRCBmb3Ig aXQuICAqLwotQEAgLTQyMCwxNyArNDI0LDE2IEBAIHNvbGliX2JmZF9vcGVuIChjaGFyICpwYXRo bmFtZSkKK0BAIC00MjAsMTcgKzQyMywxNiBAQCBzb2xpYl9iZmRfb3BlbiAoY2hhciAqcGF0aG5h bWUpCiAgICAvKiBDaGVjayBiZmQgZm9ybWF0LiAgKi8KICAgIGlmICghYmZkX2NoZWNrX2Zvcm1h dCAoYWJmZCwgYmZkX29iamVjdCkpCiAgICAgIHsKQEAgLTg5ODIsNyArOTQyOSw3IEBAIGluZGV4 IDkwNDM5YmEuLjBmZDk1NWQgMTAwNjQ0CiAgICAgICAgICAgICAgIGJmZF9nZXRfYXJjaF9pbmZv IChhYmZkKS0+cHJpbnRhYmxlX25hbWUsIGItPnByaW50YWJsZV9uYW1lKTsKICAKICAgIHJldHVy biBhYmZkOwotQEAgLTQ2Niw3ICs0NjksNyBAQCBzb2xpYl9tYXBfc2VjdGlvbnMgKHN0cnVjdCBz b19saXN0ICpzbykKK0BAIC00NjYsNyArNDY4LDcgQEAgc29saWJfbWFwX3NlY3Rpb25zIChzdHJ1 Y3Qgc29fbGlzdCAqc28pCiAgICAgIHJldHVybiAwOwogIAogICAgLyogTGVhdmUgYmZkIG9wZW4s IGNvcmVfeGZlcl9tZW1vcnkgYW5kICJpbmZvIGZpbGVzIiBuZWVkIGl0LiAgKi8KQEAgLTg5OTEs MTYgKzk0MzgsNyBAQCBpbmRleCA5MDQzOWJhLi4wZmQ5NTVkIDEwMDY0NAogIAogICAgLyogY29w eSBmdWxsIHBhdGggbmFtZSBpbnRvIHNvX25hbWUsIHNvIHRoYXQgbGF0ZXIgc3ltYm9sX2ZpbGVf YWRkCiAgICAgICBjYW4gZmluZCBpdC4gICovCi1AQCAtNjA4LDcgKzYxMSw3IEBAIHNvbGliX3Jl YWRfc3ltYm9scyAoc3RydWN0IHNvX2xpc3QgKnNvLCBpbnQgZmxhZ3MpCi0gCi0gCSAgc2FwID0g YnVpbGRfc2VjdGlvbl9hZGRyX2luZm9fZnJvbV9zZWN0aW9uX3RhYmxlIChzby0+c2VjdGlvbnMs Ci0gCQkJCQkJCSAgICBzby0+c2VjdGlvbnNfZW5kKTsKLS0JICBzby0+b2JqZmlsZSA9IHN5bWJv bF9maWxlX2FkZF9mcm9tX2JmZCAoc28tPmFiZmQsCi0rCSAgc28tPm9iamZpbGUgPSBzeW1ib2xf ZmlsZV9hZGRfZnJvbV9iZmQgKGdkYl9iZmRfcmVmIChzby0+YWJmZCksCi0gCQkJCQkJICBmbGFn cywgc2FwLCBPQkpGX1NIQVJFRCwKLSAJCQkJCQkgIE5VTEwpOwotIAkgIHNvLT5vYmpmaWxlLT5h ZGRyX2xvdyA9IHNvLT5hZGRyX2xvdzsKLUBAIC0xMjMzLDcgKzEyMzYsNyBAQCByZWxvYWRfc2hh cmVkX2xpYnJhcmllc18xIChpbnQgZnJvbV90dHkpCitAQCAtMTIzMyw3ICsxMjM1LDcgQEAgcmVs b2FkX3NoYXJlZF9saWJyYXJpZXNfMSAoaW50IGZyb21fdHR5KQogIAl7CiAgCSAgZm91bmRfcGF0 aG5hbWUgPSB4c3RyZHVwIChiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSk7CiAgCSAgbWFrZV9jbGVh bnVwICh4ZnJlZSwgZm91bmRfcGF0aG5hbWUpOwpAQCAtOTAxMCwyMSArOTQ0OCwyMyBAQCBpbmRl eCA5MDQzOWJhLi4wZmQ5NTVkIDEwMDY0NAogIAogICAgICAgIC8qIElmIHRoaXMgc2hhcmVkIGxp YnJhcnkgaXMgbm8gbG9uZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdHMgcHJldmlvdXMKIGRpZmYgLS1n aXQgYS9nZGIvc3B1LWxpbnV4LW5hdC5jIGIvZ2RiL3NwdS1saW51eC1uYXQuYwotaW5kZXggMmRm ZWM4Yy4uMTJmODIxMSAxMDA2NDQKK2luZGV4IDJkZmVjOGMuLjk5OWYxYWIgMTAwNjQ0CiAtLS0g YS9nZGIvc3B1LWxpbnV4LW5hdC5jCiArKysgYi9nZGIvc3B1LWxpbnV4LW5hdC5jCi1AQCAtMzE1 LDE2ICszMTUsMTcgQEAgc3B1X2JmZF9vcGVuIChVTE9OR0VTVCBhZGRyKQorQEAgLTMxNSwxNiAr MzE1LDE2IEBAIHNwdV9iZmRfb3BlbiAoVUxPTkdFU1QgYWRkcikKICAgIFVMT05HRVNUICpvcGVu X2Nsb3N1cmUgPSB4bWFsbG9jIChzaXplb2YgKFVMT05HRVNUKSk7CiAgICAqb3Blbl9jbG9zdXJl ID0gYWRkcjsKICAKIC0gIG5iZmQgPSBiZmRfb3BlbnJfaW92ZWMgKHhzdHJkdXAgKCI8aW4tbWVt b3J5PiIpLCAiZWxmMzItc3B1IiwKLSsgIG5iZmQgPSBiZmRfb3BlbnJfaW92ZWMgKCI8aW4tbWVt b3J5PiIsICJlbGYzMi1zcHUiLAotIAkJCSAgc3B1X2JmZF9pb3ZlY19vcGVuLCBvcGVuX2Nsb3N1 cmUsCi0gCQkJICBzcHVfYmZkX2lvdmVjX3ByZWFkLCBzcHVfYmZkX2lvdmVjX2Nsb3NlLAotIAkJ CSAgc3B1X2JmZF9pb3ZlY19zdGF0KTsKKy0JCQkgIHNwdV9iZmRfaW92ZWNfb3Blbiwgb3Blbl9j bG9zdXJlLAorLQkJCSAgc3B1X2JmZF9pb3ZlY19wcmVhZCwgc3B1X2JmZF9pb3ZlY19jbG9zZSwK Ky0JCQkgIHNwdV9iZmRfaW92ZWNfc3RhdCk7CisrICBuYmZkID0gZ2RiX2JmZF9vcGVucl9pb3Zl YyAoIjxpbi1tZW1vcnk+IiwgImVsZjMyLXNwdSIsCisrCQkJICAgICAgc3B1X2JmZF9pb3ZlY19v cGVuLCBvcGVuX2Nsb3N1cmUsCisrCQkJICAgICAgc3B1X2JmZF9pb3ZlY19wcmVhZCwgc3B1X2Jm ZF9pb3ZlY19jbG9zZSwKKysJCQkgICAgICBzcHVfYmZkX2lvdmVjX3N0YXQpOwogICAgaWYgKCFu YmZkKQogICAgICByZXR1cm4gTlVMTDsKLSsgIG5iZmQgPSBnZGJfYmZkX3JlZiAobmJmZCk7CiAg CiAgICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKG5iZmQsIGJmZF9vYmplY3QpKQogICAgICB7CkBA IC05MDMzLDggKzk0NzMsMjQgQEAgaW5kZXggMmRmZWM4Yy4uMTJmODIxMSAxMDA2NDQKICAgICAg ICByZXR1cm4gTlVMTDsKICAgICAgfQogIAorQEAgLTM3NCw4ICszNzQsMTMgQEAgc3B1X3N5bWJv bF9maWxlX2FkZF9mcm9tX21lbW9yeSAoaW50IGluZmVyaW9yX2ZkKQorICAgLyogT3BlbiBCRkQg cmVwcmVzZW50aW5nIFNQRSBleGVjdXRhYmxlIGFuZCByZWFkIGl0cyBzeW1ib2xzLiAgKi8KKyAg IG5iZmQgPSBzcHVfYmZkX29wZW4gKGFkZHIpOworICAgaWYgKG5iZmQpCistICAgIHN5bWJvbF9m aWxlX2FkZF9mcm9tX2JmZCAobmJmZCwgU1lNRklMRV9WRVJCT1NFIHwgU1lNRklMRV9NQUlOTElO RSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCBOVUxMKTsKKysgICAg eworKyAgICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwID0gbWFrZV9jbGVhbnVwX2JmZF91bnJl ZiAobmJmZCk7CisrCisrICAgICAgc3ltYm9sX2ZpbGVfYWRkX2Zyb21fYmZkIChuYmZkLCBTWU1G SUxFX1ZFUkJPU0UgfCBTWU1GSUxFX01BSU5MSU5FLAorKwkJCQlOVUxMLCAwLCBOVUxMKTsKKysg ICAgICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CisrICAgIH0KKyB9CisgCisgCiBkaWZmIC0tZ2l0 IGEvZ2RiL3N0YWNrLmMgYi9nZGIvc3RhY2suYwotaW5kZXggMjUyMGUyYy4uMDQ3MjQ3NSAxMDA2 NDQKK2luZGV4IDM1ZDM3OWQuLjA0YWFiNWUgMTAwNjQ0CiAtLS0gYS9nZGIvc3RhY2suYwogKysr IGIvZ2RiL3N0YWNrLmMKIEBAIC01MDksNiArNTA5LDEwIEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0 cnVjdCBzeW1ib2wgKmZ1bmMsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKQEAgLTkwNDksNyAr OTUwNSw3IEBAIGluZGV4IDI1MjBlMmMuLjA0NzI0NzUgMTAwNjQ0CiAgICAgIHsKICAgICAgICBz dHJ1Y3QgYmxvY2sgKmIgPSBTWU1CT0xfQkxPQ0tfVkFMVUUgKGZ1bmMpOwogZGlmZiAtLWdpdCBh L2dkYi9zeW1maWxlLW1lbS5jIGIvZ2RiL3N5bWZpbGUtbWVtLmMKLWluZGV4IGU4MGZkMjUuLmFk ODdhYmQgMTAwNjQ0CitpbmRleCBlODBmZDI1Li4yZTUzYmUwIDEwMDY0NAogLS0tIGEvZ2RiL3N5 bWZpbGUtbWVtLmMKICsrKyBiL2dkYi9zeW1maWxlLW1lbS5jCiBAQCAtNTQsNiArNTQsNyBAQApA QCAtOTA2MCw3ICs5NTE2LDcgQEAgaW5kZXggZTgwZmQyNS4uYWQ4N2FiZCAxMDA2NDQKICAKICAv KiBWZXJpZnkgcGFyYW1ldGVycyBvZiB0YXJnZXRfcmVhZF9tZW1vcnlfYmZkIGFuZCB0YXJnZXRf cmVhZF9tZW1vcnkgYXJlCiAgICAgY29tcGF0aWJsZS4gICovCi1AQCAtMTAwLDE3ICsxMDEsMTkg QEAgc3ltYm9sX2ZpbGVfYWRkX2Zyb21fbWVtb3J5IChzdHJ1Y3QgYmZkICp0ZW1wbCwgQ09SRV9B RERSIGFkZHIsIGNoYXIgKm5hbWUsCitAQCAtMTAwLDIzICsxMDEsMjQgQEAgc3ltYm9sX2ZpbGVf YWRkX2Zyb21fbWVtb3J5IChzdHJ1Y3QgYmZkICp0ZW1wbCwgQ09SRV9BRERSIGFkZHIsIGNoYXIg Km5hbWUsCiAgICBpZiAobmJmZCA9PSBOVUxMKQogICAgICBlcnJvciAoXygiRmFpbGVkIHRvIHJl YWQgYSB2YWxpZCBvYmplY3QgZmlsZSBpbWFnZSBmcm9tIG1lbW9yeS4iKSk7CiAgCkBAIC05MDcw LDI0ICs5NTI2LDM0IEBAIGluZGV4IGU4MGZkMjUuLmFkODdhYmQgMTAwNjQ0CiArICAgIG5iZmQt PmZpbGVuYW1lID0gInNoYXJlZCBvYmplY3QgcmVhZCBmcm9tIHRhcmdldCBtZW1vcnkiOwogICAg ZWxzZQogLSAgICBuYmZkLT5maWxlbmFtZSA9IG5hbWU7Ci0rICAgIHsKLSsgICAgICBuYmZkLT5m aWxlbmFtZSA9IG5hbWU7Ci0rICAgICAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAobmJmZCk7Ci0r ICAgICAgeGZyZWUgKG5hbWUpOwotKyAgICB9Ci0gCi0gICBpZiAoIWJmZF9jaGVja19mb3JtYXQg KG5iZmQsIGJmZF9vYmplY3QpKQorLQorLSAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0IChuYmZkLCBi ZmRfb2JqZWN0KSkKICAgICAgewogLSAgICAgIC8qIEZJWE1FOiBzaG91bGQgYmUgY2hlY2tpbmcg Zm9yIGVycm9ycyBmcm9tIGJmZF9jbG9zZSAoZm9yIG9uZSB0aGluZywKIC0gICAgICAgICBvbiBl cnJvciBpdCBkb2VzIG5vdCBmcmVlIGFsbCB0aGUgc3RvcmFnZSBhc3NvY2lhdGVkIHdpdGggdGhl CiAtICAgICAgICAgYmZkKS4gICovCiAtICAgICAgYmZkX2Nsb3NlIChuYmZkKTsKLSsgICAgICBt YWtlX2NsZWFudXBfYmZkX3VucmVmIChuYmZkKTsKLSAgICAgICBlcnJvciAoXygiR290IG9iamVj dCBmaWxlIGZyb20gbWVtb3J5IGJ1dCBjYW4ndCByZWFkIHN5bWJvbHM6ICVzLiIpLAotIAkgICAg IGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKKy0gICAgICBlcnJvciAoXygiR290IG9i amVjdCBmaWxlIGZyb20gbWVtb3J5IGJ1dCBjYW4ndCByZWFkIHN5bWJvbHM6ICVzLiIpLAorLQkg ICAgIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKKysgICAgICBuYmZkLT5maWxlbmFt ZSA9IG5hbWU7CisrICAgICAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAobmJmZCk7CisrICAgICAg eGZyZWUgKG5hbWUpOwogICAgICB9CisgCisrICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwX2JmZF91 bnJlZiAobmJmZCk7CisrCisrICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKG5iZmQsIGJmZF9vYmpl Y3QpKQorKyAgICBlcnJvciAoXygiR290IG9iamVjdCBmaWxlIGZyb20gbWVtb3J5IGJ1dCBjYW4n dCByZWFkIHN5bWJvbHM6ICVzLiIpLAorKwkgICBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgp KSk7CisrCisgICBzYWkgPSBhbGxvY19zZWN0aW9uX2FkZHJfaW5mbyAoYmZkX2NvdW50X3NlY3Rp b25zIChuYmZkKSk7CistICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgc2FpKTsKKysg IG1ha2VfY2xlYW51cCAoeGZyZWUsIHNhaSk7CisgICBpID0gMDsKKyAgIGZvciAoc2VjID0gbmJm ZC0+c2VjdGlvbnM7IHNlYyAhPSBOVUxMOyBzZWMgPSBzZWMtPm5leHQpCisgICAgIGlmICgoYmZk X2dldF9zZWN0aW9uX2ZsYWdzIChuYmZkLCBzZWMpICYgKFNFQ19BTExPQ3xTRUNfTE9BRCkpICE9 IDApCiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bWZpbGUuYyBiL2dkYi9zeW1maWxlLmMKLWluZGV4IDAx MjUyZTIuLmM5MDQwMTEgMTAwNjQ0CitpbmRleCAwMTI1MmUyLi45NWVkNDgwIDEwMDY0NAogLS0t IGEvZ2RiL3N5bWZpbGUuYwogKysrIGIvZ2RiL3N5bWZpbGUuYwogQEAgLTU1LDYgKzU1LDcgQEAK QEAgLTkwOTgsMTYgKzk1NjQsNjYgQEAgaW5kZXggMDEyNTJlMi4uYzkwNDAxMSAxMDA2NDQKICAK ICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgI2luY2x1ZGUgPGZjbnRsLmg+Ci1AQCAtMTA3NCw3 ICsxMDc1LDcgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYmZkICph YmZkLAorQEAgLTEwMzYsNyArMTAzNyw3IEBAIG5ld19zeW1maWxlX29iamZpbGUgKHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlLCBpbnQgYWRkX2ZsYWdzKQorICAgIGxvYWRlZCBmaWxlLgorIAorICAg IEFCRkQgaXMgYSBCRkQgYWxyZWFkeSBvcGVuIG9uIHRoZSBmaWxlLCBhcyBmcm9tIHN5bWZpbGVf YmZkX29wZW4uCistICAgVGhpcyBCRkQgd2lsbCBiZSBjbG9zZWQgb24gZXJyb3IsIGFuZCBpcyBh bHdheXMgY29uc3VtZWQgYnkgdGhpcyBmdW5jdGlvbi4KKysgICBBIG5ldyByZWZlcmVuY2UgaXMg YWNxdWlyZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAKKyAgICBBRERfRkxBR1MgZW5jb2RlcyB2ZXJi b3NpdHksIHdoZXRoZXIgdGhpcyBpcyBtYWluIHN5bWJvbCBmaWxlIG9yCisgICAgZXh0cmEsIHN1 Y2ggYXMgZHluYW1pY2FsbHkgbG9hZGVkIGNvZGUsIGFuZCB3aGF0IHRvIGRvIHdpdGggYnJlYWtw b2lucy4KK0BAIC0xMDYwLDcgKzEwNjEsNiBAQCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9hZGRyc19v cl9vZmZzZXRzIChiZmQgKmFiZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IGZsYWdzLCBzdHJ1Y3Qgb2JqZmlsZSAqcGFyZW50KQorIHsKKyAgIHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlOworLSAgc3RydWN0IGNsZWFudXAgKm15X2NsZWFudXBzOworICAgY29u c3QgY2hhciAqbmFtZSA9IGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpOworICAgY29uc3QgaW50IGZy b21fdHR5ID0gYWRkX2ZsYWdzICYgU1lNRklMRV9WRVJCT1NFOworICAgY29uc3QgaW50IG1haW5s aW5lID0gYWRkX2ZsYWdzICYgU1lNRklMRV9NQUlOTElORTsKK0BAIC0xMDc0LDggKzEwNzQsNiBA QCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzIChiZmQgKmFiZmQsCiAgICAg ICAgYWRkX2ZsYWdzICY9IH5TWU1GSUxFX05PX1JFQUQ7CiAgICAgIH0KICAKIC0gIG15X2NsZWFu dXBzID0gbWFrZV9jbGVhbnVwX2JmZF9jbG9zZSAoYWJmZCk7Ci0rICBteV9jbGVhbnVwcyA9IG1h a2VfY2xlYW51cF9iZmRfdW5yZWYgKGFiZmQpOwotIAorLQogICAgLyogR2l2ZSB1c2VyIGEgY2hh bmNlIHRvIGJ1cnAgaWYgd2UnZCBiZQogICAgICAgaW50ZXJhY3RpdmVseSB3aXBpbmcgb3V0IGFu eSBleGlzdGluZyBzeW1ib2xzLiAgKi8KLUBAIC0xMzcyLDcgKzEzNzMsNyBAQCBzZXBhcmF0ZV9k ZWJ1Z19maWxlX2V4aXN0cyAoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyBjcmMsCisg CitAQCAtMTA4Niw3ICsxMDg0LDYgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zm c2V0cyAoYmZkICphYmZkLAorICAgICBlcnJvciAoXygiTm90IGNvbmZpcm1lZC4iKSk7CisgCisg ICBvYmpmaWxlID0gYWxsb2NhdGVfb2JqZmlsZSAoYWJmZCwgZmxhZ3MgfCAobWFpbmxpbmUgPyBP QkpGX01BSU5MSU5FIDogMCkpOworLSAgZGlzY2FyZF9jbGVhbnVwcyAobXlfY2xlYW51cHMpOwor IAorICAgaWYgKHBhcmVudCkKKyAgICAgYWRkX3NlcGFyYXRlX2RlYnVnX29iamZpbGUgKG9iamZp bGUsIHBhcmVudCk7CitAQCAtMTIwNyw4ICsxMjA0LDEzIEBAIHN0cnVjdCBvYmpmaWxlICoKKyBz eW1ib2xfZmlsZV9hZGQgKGNoYXIgKm5hbWUsIGludCBhZGRfZmxhZ3MsIHN0cnVjdCBzZWN0aW9u X2FkZHJfaW5mbyAqYWRkcnMsCisgCQkgaW50IGZsYWdzKQorIHsKKy0gIHJldHVybiBzeW1ib2xf ZmlsZV9hZGRfZnJvbV9iZmQgKHN5bWZpbGVfYmZkX29wZW4gKG5hbWUpLCBhZGRfZmxhZ3MsIGFk ZHJzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIE5VTEwpOwor KyAgYmZkICpiZmQgPSBzeW1maWxlX2JmZF9vcGVuIChuYW1lKTsKKysgIHN0cnVjdCBjbGVhbnVw ICpjbGVhbnVwID0gbWFrZV9jbGVhbnVwX2JmZF91bnJlZiAoYmZkKTsKKysgIHN0cnVjdCBvYmpm aWxlICpvYmpmOworKworKyAgb2JqZiA9IHN5bWJvbF9maWxlX2FkZF9mcm9tX2JmZCAoYmZkLCBh ZGRfZmxhZ3MsIGFkZHJzLCBmbGFncywgTlVMTCk7CisrICBkb19jbGVhbnVwcyAoY2xlYW51cCk7 CisrICByZXR1cm4gb2JqZjsKKyB9CisgCisgCitAQCAtMTM1MCw3ICsxMzUyLDcgQEAgc2VwYXJh dGVfZGVidWdfZmlsZV9leGlzdHMgKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGxvbmcgY3Jj LAorICAgaWYgKGZpbGVuYW1lX2NtcCAobmFtZSwgcGFyZW50X29iamZpbGUtPm5hbWUpID09IDAp CisgICAgIHJldHVybiAwOworIAorLSAgYWJmZCA9IGJmZF9vcGVuX21heWJlX3JlbW90ZSAobmFt ZSk7CisrICBhYmZkID0gZ2RiX2JmZF9vcGVuX21heWJlX3JlbW90ZSAobmFtZSk7CisgCisgICBp ZiAoIWFiZmQpCisgICAgIHJldHVybiAwOworQEAgLTEzNzIsNyArMTM3NCw3IEBAIHNlcGFyYXRl X2RlYnVnX2ZpbGVfZXhpc3RzIChjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBsb25nIGNyYywK ICAgICAgICBpZiAoYWJmZF9zdGF0LnN0X2RldiA9PSBwYXJlbnRfc3RhdC5zdF9kZXYKICAJICAm JiBhYmZkX3N0YXQuc3RfaW5vID09IHBhcmVudF9zdGF0LnN0X2lubykKICAJewpAQCAtOTExNiw3 ICs5NjMyLDcgQEAgaW5kZXggMDEyNTJlMi4uYzkwNDAxMSAxMDA2NDQKICAJICByZXR1cm4gMDsK ICAJfQogICAgICAgIHZlcmlmaWVkX2FzX2RpZmZlcmVudCA9IDE7Ci1AQCAtMTM4Miw3ICsxMzgz LDcgQEAgc2VwYXJhdGVfZGVidWdfZmlsZV9leGlzdHMgKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2ln bmVkIGxvbmcgY3JjLAorQEAgLTEzODIsNyArMTM4NCw3IEBAIHNlcGFyYXRlX2RlYnVnX2ZpbGVf ZXhpc3RzIChjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBsb25nIGNyYywKICAKICAgIGZpbGVf Y3JjX3AgPSBnZXRfZmlsZV9jcmMgKGFiZmQsICZmaWxlX2NyYyk7CiAgCkBAIC05MTI1LDcgKzk2 NDEsNyBAQCBpbmRleCAwMTI1MmUyLi5jOTA0MDExIDEwMDY0NAogIAogICAgaWYgKCFmaWxlX2Ny Y19wKQogICAgICByZXR1cm4gMDsKLUBAIC0xNjkwLDE1ICsxNjkxLDIyIEBAIHNldF9pbml0aWFs X2xhbmd1YWdlICh2b2lkKQorQEAgLTE2OTAsMTUgKzE2OTIsMjAgQEAgc2V0X2luaXRpYWxfbGFu Z3VhZ2UgKHZvaWQpCiAgfQogIAogIC8qIElmIE5BTUUgaXMgYSByZW1vdGUgbmFtZSBvcGVuIHRo ZSBmaWxlIHVzaW5nIHJlbW90ZSBwcm90b2NvbCwgb3RoZXJ3aXNlCkBAIC05MTM0LDMwICs5NjUw LDI4IEBAIGluZGV4IDAxMjUyZTIuLmM5MDQwMTEgMTAwNjQ0CiArICAgcmV0dXJucyBOVUxMIHdp dGggdGhlIEJGRCBlcnJvciBzZXQuICAqLwogIAogIGJmZCAqCi0gYmZkX29wZW5fbWF5YmVfcmVt b3RlIChjb25zdCBjaGFyICpuYW1lKQorLWJmZF9vcGVuX21heWJlX3JlbW90ZSAoY29uc3QgY2hh ciAqbmFtZSkKKytnZGJfYmZkX29wZW5fbWF5YmVfcmVtb3RlIChjb25zdCBjaGFyICpuYW1lKQog IHsKKysgIGJmZCAqcmVzdWx0OworKwogICAgaWYgKHJlbW90ZV9maWxlbmFtZV9wIChuYW1lKSkK IC0gICAgcmV0dXJuIHJlbW90ZV9iZmRfb3BlbiAobmFtZSwgZ251dGFyZ2V0KTsKLSsgICAgcmV0 dXJuIGdkYl9iZmRfcmVmIChyZW1vdGVfYmZkX29wZW4gKG5hbWUsIGdudXRhcmdldCkpOworKyAg ICByZXN1bHQgPSByZW1vdGVfYmZkX29wZW4gKG5hbWUsIGdudXRhcmdldCk7CiAgICBlbHNlCiAt ICAgIHJldHVybiBiZmRfb3BlbnIgKG5hbWUsIGdudXRhcmdldCk7Ci0rICAgIHsKLSsgICAgICBi ZmQgKnJlc3VsdCA9IGdkYl9iZmRfcmVmIChiZmRfb3BlbnIgKG5hbWUsIGdudXRhcmdldCkpOwor KyAgICByZXN1bHQgPSBnZGJfYmZkX29wZW5yIChuYW1lLCBnbnV0YXJnZXQpOwogKwotKyAgICAg IGlmIChyZXN1bHQgIT0gTlVMTCkKLSsJZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAocmVzdWx0KTsK LSsgICAgICByZXR1cm4gcmVzdWx0OwotKyAgICB9CisrICByZXR1cm4gcmVzdWx0OwogIH0KICAK ICAKLUBAIC0xNzE2LDE5ICsxNzI0LDE0IEBAIHN5bWZpbGVfYmZkX29wZW4gKGNoYXIgKm5hbWUp CitAQCAtMTcxNiwxOSArMTcyMywxNCBAQCBzeW1maWxlX2JmZF9vcGVuIChjaGFyICpuYW1lKQog IAogICAgaWYgKHJlbW90ZV9maWxlbmFtZV9wIChuYW1lKSkKICAgICAgewogLSAgICAgIG5hbWUg PSB4c3RyZHVwIChuYW1lKTsKLS0gICAgICBzeW1fYmZkID0gcmVtb3RlX2JmZF9vcGVuIChuYW1l LCBnbnV0YXJnZXQpOwotKyAgICAgIHN5bV9iZmQgPSBnZGJfYmZkX3JlZiAocmVtb3RlX2JmZF9v cGVuIChuYW1lLCBnbnV0YXJnZXQpKTsKKyAgICAgICBzeW1fYmZkID0gcmVtb3RlX2JmZF9vcGVu IChuYW1lLCBnbnV0YXJnZXQpOwogICAgICAgIGlmICghc3ltX2JmZCkKIC0JewogLQkgIG1ha2Vf Y2xlYW51cCAoeGZyZWUsIG5hbWUpOwpAQCAtOTE3NSw3ICs5Njg5LDcgQEAgaW5kZXggMDEyNTJl Mi4uYzkwNDAxMSAxMDA2NDQKICAJICBlcnJvciAoXygiYCVzJzogY2FuJ3QgcmVhZCBzeW1ib2xz OiAlcy4iKSwgbmFtZSwKICAJCSBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7CiAgCX0K LUBAIC0xNzU3LDEyICsxNzYwLDExIEBAIHN5bWZpbGVfYmZkX29wZW4gKGNoYXIgKm5hbWUpCitA QCAtMTc1NywxMiArMTc1OSwxMSBAQCBzeW1maWxlX2JmZF9vcGVuIChjaGFyICpuYW1lKQogICAg ICAgIHBlcnJvcl93aXRoX25hbWUgKG5hbWUpOwogICAgICB9CiAgCkBAIC05MTg2LDExICs5NzAw LDExIEBAIGluZGV4IDAxMjUyZTIuLmM5MDQwMTEgMTAwNjQ0CiArICBtYWtlX2NsZWFudXAgKHhm cmVlLCBuYW1lKTsKICAKIC0gIHN5bV9iZmQgPSBiZmRfZm9wZW4gKG5hbWUsIGdudXRhcmdldCwg Rk9QRU5fUkIsIGRlc2MpOwotKyAgc3ltX2JmZCA9IGdkYl9iZmRfcmVmIChiZmRfZm9wZW4gKG5h bWUsIGdudXRhcmdldCwgRk9QRU5fUkIsIGRlc2MpKTsKKysgIHN5bV9iZmQgPSBnZGJfYmZkX2Zv cGVuIChuYW1lLCBnbnV0YXJnZXQsIEZPUEVOX1JCLCBkZXNjKTsKICAgIGlmICghc3ltX2JmZCkK ICAgICAgewogICAgICAgIG1ha2VfY2xlYW51cCAoeGZyZWUsIG5hbWUpOwotQEAgLTE3NzMsMTcg KzE3NzUsMTIgQEAgc3ltZmlsZV9iZmRfb3BlbiAoY2hhciAqbmFtZSkKK0BAIC0xNzczLDE4ICsx Nzc0LDExIEBAIHN5bWZpbGVfYmZkX29wZW4gKGNoYXIgKm5hbWUpCiAgCiAgICBpZiAoIWJmZF9j aGVja19mb3JtYXQgKHN5bV9iZmQsIGJmZF9vYmplY3QpKQogICAgICB7CkBAIC05MjA2LDE2ICs5 NzIwLDE2IEBAIGluZGV4IDAxMjUyZTIuLmM5MDQwMTEgMTAwNjQ0CiAgCiAtICAvKiBiZmRfdXNy ZGF0YSBleGlzdHMgZm9yIGFwcGxpY2F0aW9ucyBhbmQgbGliYmZkIG11c3Qgbm90IHRvdWNoIGl0 LiAgKi8KIC0gIGdkYl9hc3NlcnQgKGJmZF91c3JkYXRhIChzeW1fYmZkKSA9PSBOVUxMKTsKLSsg IGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUgKHN5bV9iZmQpOwotIAorLQogICAgcmV0dXJuIHN5bV9i ZmQ7CiAgfQotQEAgLTIxMDksMTcgKzIxMDYsMTQgQEAgZ2VuZXJpY19sb2FkIChjaGFyICphcmdz LCBpbnQgZnJvbV90dHkpCisgCitAQCAtMjEwOSwxNyArMjEwMywxNCBAQCBnZW5lcmljX2xvYWQg KGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgICAgfQogIAogICAgLyogT3BlbiB0aGUgZmls ZSBmb3IgbG9hZGluZy4gICovCiAtICBsb2FkZmlsZV9iZmQgPSBiZmRfb3BlbnIgKGZpbGVuYW1l LCBnbnV0YXJnZXQpOwotKyAgbG9hZGZpbGVfYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVuciAo ZmlsZW5hbWUsIGdudXRhcmdldCkpOworKyAgbG9hZGZpbGVfYmZkID0gZ2RiX2JmZF9vcGVuciAo ZmlsZW5hbWUsIGdudXRhcmdldCk7CiAgICBpZiAobG9hZGZpbGVfYmZkID09IE5VTEwpCiAgICAg IHsKICAgICAgICBwZXJyb3Jfd2l0aF9uYW1lIChmaWxlbmFtZSk7CkBAIC05MjMwLDcgKzk3NDQs NyBAQCBpbmRleCAwMTI1MmUyLi5jOTA0MDExIDEwMDY0NAogIAogICAgaWYgKCFiZmRfY2hlY2tf Zm9ybWF0IChsb2FkZmlsZV9iZmQsIGJmZF9vYmplY3QpKQogICAgICB7Ci1AQCAtMjUxOCwxNSAr MjUxMiwxOCBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkKK0BAIC0yNTE4LDE1ICsyNTA5LDE4IEBA IHJlcmVhZF9zeW1ib2xzICh2b2lkKQogIAkgIC8qIENsZWFuIHVwIGFueSBzdGF0ZSBCRkQgaGFz IHNpdHRpbmcgYXJvdW5kLiAgV2UgZG9uJ3QgbmVlZAogIAkgICAgIHRvIGNsb3NlIHRoZSBkZXNj cmlwdG9yIGJ1dCBCRkQgbGFja3MgYSB3YXkgb2YgY2xvc2luZyB0aGUKICAJICAgICBCRkQgd2l0 aG91dCBjbG9zaW5nIHRoZSBkZXNjcmlwdG9yLiAgKi8KQEAgLTkyNDUsNyArOTc1OSw3IEBAIGlu ZGV4IDAxMjUyZTIuLmM5MDQwMTEgMTAwNjQ0CiArCSAgICBvYmZkX2ZpbGVuYW1lID0gYmZkX2dl dF9maWxlbmFtZSAob2JqZmlsZS0+b2JmZCk7CiArCSAgICAvKiBPcGVuIHRoZSBuZXcgQkZEIGJl Zm9yZSBmcmVlaW5nIHRoZSBvbGQgb25lLCBzbyB0aGF0CiArCSAgICAgICB0aGUgZmlsZW5hbWUg cmVtYWlucyBsaXZlLiAgKi8KLSsJICAgIG9iamZpbGUtPm9iZmQgPSBiZmRfb3Blbl9tYXliZV9y ZW1vdGUgKG9iZmRfZmlsZW5hbWUpOworKwkgICAgb2JqZmlsZS0+b2JmZCA9IGdkYl9iZmRfb3Bl bl9tYXliZV9yZW1vdGUgKG9iZmRfZmlsZW5hbWUpOwogKwkgICAgZ2RiX2JmZF91bnJlZiAob2Jm ZCk7CiArCSAgfQogKwpAQCAtOTI1Niw2ICs5NzcwLDE5IEBAIGluZGV4IDAxMjUyZTIuLmM5MDQw MTEgMTAwNjQ0CiAgCSAgLyogYmZkX29wZW5yIHNldHMgY2FjaGVhYmxlIHRvIHRydWUsIHdoaWNo IGlzIHdoYXQgd2Ugd2FudC4gICovCiAgCSAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0IChvYmpmaWxl LT5vYmZkLCBiZmRfb2JqZWN0KSkKICAJICAgIGVycm9yIChfKCJDYW4ndCByZWFkIHN5bWJvbHMg ZnJvbSAlczogJXMuIiksIG9iamZpbGUtPm5hbWUsCitkaWZmIC0tZ2l0IGEvZ2RiL3N5bWZpbGUu aCBiL2dkYi9zeW1maWxlLmgKK2luZGV4IGFjYTczNTkuLjE4NGE4M2UgMTAwNjQ0CistLS0gYS9n ZGIvc3ltZmlsZS5oCisrKysgYi9nZGIvc3ltZmlsZS5oCitAQCAtNTUzLDcgKzU1Myw3IEBAIGV4 dGVybiB2b2lkIGZpbmRfbG93ZXN0X3NlY3Rpb24gKGJmZCAqLCBhc2VjdGlvbiAqLCB2b2lkICop OworIAorIGV4dGVybiBiZmQgKnN5bWZpbGVfYmZkX29wZW4gKGNoYXIgKik7CisgCistZXh0ZXJu IGJmZCAqYmZkX29wZW5fbWF5YmVfcmVtb3RlIChjb25zdCBjaGFyICopOworK2V4dGVybiBiZmQg KmdkYl9iZmRfb3Blbl9tYXliZV9yZW1vdGUgKGNvbnN0IGNoYXIgKik7CisgCisgZXh0ZXJuIGlu dCBnZXRfc2VjdGlvbl9pbmRleCAoc3RydWN0IG9iamZpbGUgKiwgY2hhciAqKTsKKyAKIGRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCiBpbmRleCA2Nzg2MzljLi40N2EyMjAyIDEw MDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKQEAgLTEz NDIwLDcgKzEzOTQ3LDcgQEAgaW5kZXggZDhiMTU3Zi4uZjQ5ZTgyNyAxMDA2NDQKICBleHRlcm4g c3RydWN0IHZhbHVlICp2YWx1ZV9hdF9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERS IGFkZHIpOwogIAogZGlmZiAtLWdpdCBhL2dkYi93aW5kb3dzLW5hdC5jIGIvZ2RiL3dpbmRvd3Mt bmF0LmMKLWluZGV4IGYxNjU4OGEuLjZiYTkyZDkgMTAwNjQ0CitpbmRleCBmMTY1ODhhLi5hZmVm NjE1IDEwMDY0NAogLS0tIGEvZ2RiL3dpbmRvd3MtbmF0LmMKICsrKyBiL2dkYi93aW5kb3dzLW5h dC5jCiBAQCAtNzUyLDcgKzc1Miw3IEBAIHdpbmRvd3NfbWFrZV9zbyAoY29uc3QgY2hhciAqbmFt ZSwgTFBWT0lEIGxvYWRfYWRkcikKQEAgLTEzNDI4LDcgKzEzOTU1LDcgQEAgaW5kZXggZjE2NTg4 YS4uNmJhOTJkOSAxMDA2NDQKICAgICAgICBDT1JFX0FERFIgdGV4dF92bWE7CiAgCiAtICAgICAg YWJmZCA9IGJmZF9vcGVuciAoc28tPnNvX25hbWUsICJwZWktaTM4NiIpOwotKyAgICAgIGFiZmQg PSBnZGJfYmZkX3JlZiAoYmZkX29wZW5yIChzby0+c29fbmFtZSwgInBlaS1pMzg2IikpOworKyAg ICAgIGFiZmQgPSBnZGJfYmZkX29wZW5yIChzby0+c29fbmFtZSwgInBlaS1pMzg2Iik7CiAgCiAg ICAgICAgaWYgKCFhYmZkKQogIAlyZXR1cm4gc287CgpkaWZmIC0tZ2l0IGEvZ2RiLWRpc2FibGUt bWNoZWNrLnBhdGNoIGIvZ2RiLWRpc2FibGUtbWNoZWNrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3NGYwMjMwLi4wMDAwMDAwCi0tLSBhL2dkYi1kaXNhYmxlLW1jaGVjay5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLWRpZmYgLWR1cCAtcnVwIGdkYi03 LjQuNTAuMjAxMjA2MDMtb3JpZy9nZGIvY29uZmlndXJlIGdkYi03LjQuNTAuMjAxMjA2MDMvZ2Ri L2NvbmZpZ3VyZQotLS0tIGdkYi03LjQuNTAuMjAxMjA2MDMtb3JpZy9nZGIvY29uZmlndXJlCTIw MTItMDYtMDYgMTk6MDg6MzIuODI0ODI0Njk5ICswMjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDYw My9nZGIvY29uZmlndXJlCTIwMTItMDYtMDYgMTk6MTI6MTIuMzQ2OTkyNDIzICswMjAwCi1AQCAt MjcwNiw3ICsyNzA2LDcgQEAgZmkKLSAjIFByb3ZpZGUgbW9yZSB0aG9yb3VnaCB0ZXN0aW5nIGJ5 IC1sbWNoZWNrLgotICMgU2V0IGl0IHRvICd0cnVlJyBmb3IgZGV2ZWxvcG1lbnQgc25hcHNob3Rz LCAnZmFsc2UnIGZvciByZWxlYXNlcyBvcgotICMgcHJlLXJlbGVhc2VzLgotLWRldmVsb3BtZW50 PXRydWUKLStkZXZlbG9wbWVudD1mYWxzZQotIAotIGFjX2V4dD1jCi0gYWNfY3BwPSckQ1BQICRD UFBGTEFHUycKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjQuNTAuMjAxMjA2MDMtb3JpZy9nZGIvY29u ZmlndXJlLmFjIGdkYi03LjQuNTAuMjAxMjA2MDMvZ2RiL2NvbmZpZ3VyZS5hYwotLS0tIGdkYi03 LjQuNTAuMjAxMjA2MDMtb3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTItMDYtMDYgMTk6MDg6MzIu ODE3ODI0NjkzICswMjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDYwMy9nZGIvY29uZmlndXJlLmFj CTIwMTItMDYtMDYgMTk6MTI6MDUuNTQ1OTg3MjI3ICswMjAwCi1AQCAtMjYsNyArMjYsNyBAQCBB TV9NQUlOVEFJTkVSX01PREUKLSAjIFByb3ZpZGUgbW9yZSB0aG9yb3VnaCB0ZXN0aW5nIGJ5IC1s bWNoZWNrLgotICMgU2V0IGl0IHRvICd0cnVlJyBmb3IgZGV2ZWxvcG1lbnQgc25hcHNob3RzLCAn ZmFsc2UnIGZvciByZWxlYXNlcyBvcgotICMgcHJlLXJlbGVhc2VzLgotLWRldmVsb3BtZW50PXRy dWUKLStkZXZlbG9wbWVudD1mYWxzZQotIAotIEFDX1BST0dfQ0MKLSBBQ19VU0VfU1lTVEVNX0VY VEVOU0lPTlMKCmRpZmYgLS1naXQgYS9nZGItZGxvcGVuLXN0YXAtcHJvYmUucGF0Y2ggYi9nZGIt ZGxvcGVuLXN0YXAtcHJvYmUucGF0Y2gKaW5kZXggOTRhNGI2MS4uZmYxOTI2OSAxMDA2NDQKLS0t IGEvZ2RiLWRsb3Blbi1zdGFwLXByb2JlLnBhdGNoCisrKyBiL2dkYi1kbG9wZW4tc3RhcC1wcm9i ZS5wYXRjaApAQCAtMiwxMCArMiwxMCBAQCBGcm9tOiBHYXJ5IEJlbnNvbiA8Z2JlbnNvbkByZWRo YXQuY29tPgogVG86IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgog TWVzc2FnZS1JRDogPDIwMTEwODEwMTMzNjA1LkdCNzI5NEByZWRoYXQuY29tPgogCi1JbmRleDog Z2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvaW5mcnVuLmMKK0luZGV4OiBnZGItNy40LjkxLjIwMTIw ODAxL2dkYi9pbmZydW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA2MDIub3Jp Zy9nZGIvaW5mcnVuLmMJMjAxMi0wNi0wMiAyMTozODowNy4yMzY0NDI4ODMgKzAyMDAKLSsrKyBn ZGItNy40LjUwLjIwMTIwNjAyL2dkYi9pbmZydW4uYwkyMDEyLTA2LTAyIDIxOjM4OjEzLjQ1MDQ0 MDUwNyArMDIwMAorLS0tIGdkYi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIvaW5mcnVuLmMJMjAx Mi0wOC0wMSAxODozODoyNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAx L2dkYi9pbmZydW4uYwkyMDEyLTA4LTAxIDE4OjQ0OjU5LjU2ODUxODYwMiArMDIwMAogQEAgLTM2 MSw2ICszNjEsMTMgQEAgc3RhdGljIHN0cnVjdCBzeW1ib2wgKnN0ZXBfc3RhcnRfZnVuY3Rpbwog IC8qIE5vbnplcm8gaWYgd2Ugd2FudCB0byBnaXZlIGNvbnRyb2wgdG8gdGhlIHVzZXIgd2hlbiB3 ZSdyZSBub3RpZmllZAogICAgIG9mIHNoYXJlZCBsaWJyYXJ5IGV2ZW50cyBieSB0aGUgZHluYW1p YyBsaW5rZXIuICAqLwpAQCAtMjAsNyArMjAsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDYw Mi9nZGIvaW5mcnVuLmMKICBzdGF0aWMgdm9pZAogIHNob3dfc3RvcF9vbl9zb2xpYl9ldmVudHMg KHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCiAgCQkJICAgc3RydWN0IGNtZF9s aXN0X2VsZW1lbnQgKmMsIGNvbnN0IGNoYXIgKnZhbHVlKQotQEAgLTcyNjcsNyArNzI3NCw3IEBA IFNob3cgc3RvcHBpbmcgZm9yIHNoYXJlZCBsaWJyYXJ5IGV2ZW50cy4KK0BAIC03MjI5LDcgKzcy MzYsNyBAQCBTaG93IHN0b3BwaW5nIGZvciBzaGFyZWQgbGlicmFyeSBldmVudHMuCiAgSWYgbm9u emVybywgZ2RiIHdpbGwgZ2l2ZSBjb250cm9sIHRvIHRoZSB1c2VyIHdoZW4gdGhlIGR5bmFtaWMg bGlua2VyXG5cCiAgbm90aWZpZXMgZ2RiIG9mIHNoYXJlZCBsaWJyYXJ5IGV2ZW50cy4gIFRoZSBt b3N0IGNvbW1vbiBldmVudCBvZiBpbnRlcmVzdFxuXAogIHRvIHRoZSB1c2VyIHdvdWxkIGJlIGxv YWRpbmcvdW5sb2FkaW5nIG9mIGEgbmV3IGxpYnJhcnkuIiksCkBAIC0yOSwyMCArMjksMTkgQEAg SW5kZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL2luZnJ1bi5jCiAgCQkJICAgIHNob3dfc3Rv cF9vbl9zb2xpYl9ldmVudHMsCiAgCQkJICAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogIAotSW5k ZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi03LjQu OTEuMjAxMjA4MDEvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAu MjAxMjA2MDIub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTItMDYtMDIgMjE6Mzg6MDcuMjM2NDQy ODgzICswMjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saWItc3ZyNC5jCTIwMTIt MDYtMDIgMjE6NDQ6MjMuOTczMjk4NzM3ICswMjAwCi1AQCAtNDcsNiArNDcsOCBAQAorLS0tIGdk Yi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTItMDgtMDEgMTg6Mzg6 MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvc29saWItc3Zy NC5jCTIwMTItMDgtMDEgMTg6NDU6MTMuNDQ5NDQxNzg3ICswMjAwCitAQCAtNDcsNiArNDcsNyBA QAogICNpbmNsdWRlICJhdXh2LmgiCiAgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKLSAKKyAjaW5j bHVkZSAiZ2RiX2JmZC5oIgogKyNpbmNsdWRlICJwcm9iZS5oIgotKworIAogIHN0YXRpYyBzdHJ1 Y3QgbGlua19tYXBfb2Zmc2V0cyAqc3ZyNF9mZXRjaF9saW5rX21hcF9vZmZzZXRzICh2b2lkKTsK ICBzdGF0aWMgaW50IHN2cjRfaGF2ZV9saW5rX21hcF9vZmZzZXRzICh2b2lkKTsKLSBzdGF0aWMg dm9pZCBzdnI0X3JlbG9jYXRlX21haW5fZXhlY3V0YWJsZSAodm9pZCk7Ci1AQCAtOTIsNiArOTQs MzIgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzb2xpYl9icmVha19uYQorQEAgLTkzLDYg Kzk0LDMyIEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc29saWJfYnJlYWtfbmEKICAgIE5V TEwKICB9OwogIApAQCAtNzUsNyArNzQsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9n ZGIvc29saWItc3ZyNC5jCiAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBia3B0X25hbWVzW10g PQogIHsKICAgICJfc3RhcnQiLAotQEAgLTMxMyw2ICszNDEsMTIgQEAgc3RydWN0IHN2cjRfaW5m bworQEAgLTMxNCw2ICszNDEsMTIgQEAgc3RydWN0IHN2cjRfaW5mbwogICAgQ09SRV9BRERSIGlu dGVycF90ZXh0X3NlY3RfaGlnaDsKICAgIENPUkVfQUREUiBpbnRlcnBfcGx0X3NlY3RfbG93Owog ICAgQ09SRV9BRERSIGludGVycF9wbHRfc2VjdF9oaWdoOwpAQCAtODgsNyArODcsNyBAQCBJbmRl eDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saWItc3ZyNC5jCiAgfTsKICAKICAvKiBQZXIt cHJvZ3JhbS1zcGFjZSBkYXRhIGtleS4gICovCi1AQCAtMzIyLDggKzM1NiwxNSBAQCBzdGF0aWMg dm9pZAorQEAgLTMyMyw4ICszNTYsMTUgQEAgc3RhdGljIHZvaWQKICBzdnI0X3BzcGFjZV9kYXRh X2NsZWFudXAgKHN0cnVjdCBwcm9ncmFtX3NwYWNlICpwc3BhY2UsIHZvaWQgKmFyZykKICB7CiAg ICBzdHJ1Y3Qgc3ZyNF9pbmZvICppbmZvOwpAQCAtMTA0LDcgKzEwMyw3IEBAIEluZGV4OiBnZGIt Ny40LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi1zdnI0LmMKICAgIHhmcmVlIChpbmZvKTsKICB9CiAg Ci1AQCAtMTQ0OSw2ICsxNDkwLDEyNiBAQCBleGVjX2VudHJ5X3BvaW50IChzdHJ1Y3QgYmZkICph YmZkLCBzdHJ1CitAQCAtMTQ1MCw2ICsxNDkwLDEyNiBAQCBleGVjX2VudHJ5X3BvaW50IChzdHJ1 Y3QgYmZkICphYmZkLCBzdHJ1CiAgCQkJCQkgICAgIHRhcmcpOwogIH0KICAKQEAgLTIzMSw3ICsy MzAsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saWItc3ZyNC5jCiAgLyog SGVscGVyIGZ1bmN0aW9uIGZvciBnZGJfYmZkX2xvb2t1cF9zeW1ib2wuICAqLwogIAogIHN0YXRp YyBpbnQKLUBAIC0xNDk3LDEwICsxNjU4LDE4IEBAIGVuYWJsZV9icmVhayAoc3RydWN0IHN2cjRf aW5mbyAqaW5mbywgaW4KK0BAIC0xNDk4LDEwICsxNjU4LDE4IEBAIGVuYWJsZV9icmVhayAoc3Ry dWN0IHN2cjRfaW5mbyAqaW5mbywgaW4KICAgIGFzZWN0aW9uICppbnRlcnBfc2VjdDsKICAgIGdk Yl9ieXRlICppbnRlcnBfbmFtZTsKICAgIENPUkVfQUREUiBzeW1fYWRkcjsKQEAgLTI1MCw3ICsy NDksNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saWItc3ZyNC5jCiAgICAv KiBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBzaGFyZWQgbGlicmFyeSBsaXN0IGluIHRoZSB0YXJnZXQs IGFuZAogICAgICAgcl9kZWJ1ZyBjb250YWlucyByX2Jyaywgc2V0IHRoZSBicmVha3BvaW50IHRo ZXJlIC0gdGhpcyBzaG91bGQKICAgICAgIG1lYW4gcl9icmsgaGFzIGFscmVhZHkgYmVlbiByZWxv Y2F0ZWQuICBBc3N1bWUgdGhlIGR5bmFtaWMgbGlua2VyCi1AQCAtMTUzMiw3ICsxNzAxLDcgQEAg ZW5hYmxlX2JyZWFrIChzdHJ1Y3Qgc3ZyNF9pbmZvICppbmZvLCBpbgorQEAgLTE1MzMsNyArMTcw MSw3IEBAIGVuYWJsZV9icmVhayAoc3RydWN0IHN2cjRfaW5mbyAqaW5mbywgaW4KICAJIFRoYXQg a25vd2xlZGdlIGlzIGVuY29kZWQgaW4gdGhlIGFkZHJlc3MsIGlmIGl0J3MgVGh1bWIgdGhlIGxv dyBiaXQKICAJIGlzIDEuICBIb3dldmVyLCB3ZSd2ZSBzdHJpcHBlZCB0aGF0IGluZm8gYWJvdmUg YW5kIGl0J3Mgbm90IGNsZWFyCiAgCSB3aGF0IGFsbCB0aGUgY29uc2VxdWVuY2VzIGFyZSBvZiBw YXNzaW5nIGEgbm9uLWFkZHJfYml0c19yZW1vdmUnZApAQCAtMjU5LDcgKzI1OCw3IEBAIEluZGV4 OiBnZGItNy40LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi1zdnI0LmMKICAJIGZpbmRfcGNfc2VjdGlv biB2ZXJpZmllcyB3ZSBrbm93IGFib3V0IHRoZSBhZGRyZXNzIGFuZCBoYXZlIHNvbWUKICAJIGhv cGUgb2YgY29tcHV0aW5nIHRoZSByaWdodCBraW5kIG9mIGJyZWFrcG9pbnQgdG8gdXNlICh2aWEK ICAJIHN5bWJvbCBpbmZvKS4gIEl0IGRvZXMgbWVhbiB0aGF0IEdEQiBuZWVkcyB0byBiZSBwb2lu dGVkIGF0IGEKLUBAIC0xNTcwLDcgKzE3MzksNyBAQCBlbmFibGVfYnJlYWsgKHN0cnVjdCBzdnI0 X2luZm8gKmluZm8sIGluCitAQCAtMTU3MSw3ICsxNzM5LDcgQEAgZW5hYmxlX2JyZWFrIChzdHJ1 Y3Qgc3ZyNF9pbmZvICppbmZvLCBpbgogIAkJKyBiZmRfc2VjdGlvbl9zaXplICh0bXBfYmZkLCBp bnRlcnBfc2VjdCk7CiAgCSAgICB9CiAgCkBAIC0yNjgsNyArMjY3LDcgQEAgSW5kZXg6IGdkYi03 LjQuNTAuMjAxMjA2MDIvZ2RiL3NvbGliLXN2cjQuYwogIAkgIHJldHVybiAxOwogIAl9CiAgICAg IH0KLUBAIC0xNzI1LDcgKzE4OTQsOCBAQCBlbmFibGVfYnJlYWsgKHN0cnVjdCBzdnI0X2luZm8g KmluZm8sIGluCitAQCAtMTcyOSw3ICsxODk3LDggQEAgZW5hYmxlX2JyZWFrIChzdHJ1Y3Qgc3Zy NF9pbmZvICppbmZvLCBpbgogIAogICAgICAgIGlmIChzeW1fYWRkciAhPSAwKQogIAl7CkBAIC0y NzgsNyArMjc3LDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL3NvbGliLXN2cjQu YwogIAkgIHhmcmVlIChpbnRlcnBfbmFtZSk7CiAgCSAgcmV0dXJuIDE7CiAgCX0KLUBAIC0xNzUx LDcgKzE5MjEsNyBAQCBlbmFibGVfYnJlYWsgKHN0cnVjdCBzdnI0X2luZm8gKmluZm8sIGluCitA QCAtMTc1NSw3ICsxOTI0LDcgQEAgZW5hYmxlX2JyZWFrIChzdHJ1Y3Qgc3ZyNF9pbmZvICppbmZv LCBpbgogIAkgIHN5bV9hZGRyID0gZ2RiYXJjaF9jb252ZXJ0X2Zyb21fZnVuY19wdHJfYWRkciAo dGFyZ2V0X2dkYmFyY2gsCiAgCQkJCQkJCSBzeW1fYWRkciwKICAJCQkJCQkJICZjdXJyZW50X3Rh cmdldCk7CkBAIC0yODcsNyArMjg2LDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2Ri L3NvbGliLXN2cjQuYwogIAkgIHJldHVybiAxOwogIAl9CiAgICAgIH0KLUBAIC0xNzY3LDcgKzE5 MzcsNyBAQCBlbmFibGVfYnJlYWsgKHN0cnVjdCBzdnI0X2luZm8gKmluZm8sIGluCitAQCAtMTc3 MSw3ICsxOTQwLDcgQEAgZW5hYmxlX2JyZWFrIChzdHJ1Y3Qgc3ZyNF9pbmZvICppbmZvLCBpbgog IAkgICAgICBzeW1fYWRkciA9IGdkYmFyY2hfY29udmVydF9mcm9tX2Z1bmNfcHRyX2FkZHIgKHRh cmdldF9nZGJhcmNoLAogIAkJCQkJCQkgICAgIHN5bV9hZGRyLAogIAkJCQkJCQkgICAgICZjdXJy ZW50X3RhcmdldCk7CkBAIC0yOTYsMTcgKzI5NSwxNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEy MDYwMi9nZGIvc29saWItc3ZyNC5jCiAgCSAgICAgIHJldHVybiAxOwogIAkgICAgfQogIAl9Ci1A QCAtMjU0Myw0ICsyNzEzLDUgQEAgX2luaXRpYWxpemVfc3ZyNF9zb2xpYiAodm9pZCkKK0BAIC0y NTQ3LDQgKzI3MTYsNSBAQCBfaW5pdGlhbGl6ZV9zdnI0X3NvbGliICh2b2lkKQogICAgc3ZyNF9z b19vcHMubG9va3VwX2xpYl9nbG9iYWxfc3ltYm9sID0gZWxmX2xvb2t1cF9saWJfc3ltYm9sOwog ICAgc3ZyNF9zb19vcHMuc2FtZSA9IHN2cjRfc2FtZTsKICAgIHN2cjRfc29fb3BzLmtlZXBfZGF0 YV9pbl9jb3JlID0gc3ZyNF9rZWVwX2RhdGFfaW5fY29yZTsKICsgIHN2cjRfc29fb3BzLnVwZGF0 ZV9icmVha3BvaW50cyA9IHN2cjRfdXBkYXRlX3NvbGliX2V2ZW50X2JyZWFrcG9pbnRzOwogIH0K LUluZGV4OiBnZGItNy40LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi5jCitJbmRleDogZ2RiLTcuNC45 MS4yMDEyMDgwMS9nZGIvc29saWIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA2 MDIub3JpZy9nZGIvc29saWIuYwkyMDEyLTA2LTAyIDIxOjM4OjA3LjIzNjQ0Mjg4MyArMDIwMAot KysrIGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL3NvbGliLmMJMjAxMi0wNi0wMiAyMTozODoxMy40 NTU0NDA1MDcgKzAyMDAKLUBAIC0xMjE2LDYgKzEyMTYsMTggQEAgbm9fc2hhcmVkX2xpYnJhcmll cyAoY2hhciAqaWdub3JlZCwgaW50CistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9z b2xpYi5jCTIwMTItMDgtMDEgMTg6Mzg6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45 MS4yMDEyMDgwMS9nZGIvc29saWIuYwkyMDEyLTA4LTAxIDE4OjQ0OjU5LjU3MzUxODU3MiArMDIw MAorQEAgLTEyMjYsNiArMTIyNiwxOCBAQCBub19zaGFyZWRfbGlicmFyaWVzIChjaGFyICppZ25v cmVkLCBpbnQKICAgIG9iamZpbGVfcHVyZ2Vfc29saWJzICgpOwogIH0KICAKQEAgLTMyNSwxMCAr MzI0LDEwIEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi5jCiAgLyogUmVs b2FkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBhdm9pZCByZWxvYWRpbmcgdGhlIHNhbWUgc3ltYm9s IGZpbGUKICAgICB3ZSBhbHJlYWR5IGhhdmUgbG9hZGVkLiAgKi8KICAKLUluZGV4OiBnZGItNy40 LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi5oCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIv c29saWIuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA2MDIub3JpZy9nZGIvc29s aWIuaAkyMDEyLTA2LTAyIDIxOjM4OjA3LjIzNjQ0Mjg4MyArMDIwMAotKysrIGdkYi03LjQuNTAu MjAxMjA2MDIvZ2RiL3NvbGliLmgJMjAxMi0wNi0wMiAyMTozODoxMy40NjQ0NDA1MDMgKzAyMDAK Ky0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL3NvbGliLmgJMjAxMi0wMi0wMyAxNjox OTozNy4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9zb2xpYi5o CTIwMTItMDgtMDEgMTg6NDQ6NTkuNTc0NTE4NTY2ICswMjAwCiBAQCAtOTEsNCArOTEsOCBAQCBl eHRlcm4gQ09SRV9BRERSIGdkYl9iZmRfbG9va3VwX3N5bWJvbF9mCiAgCQkJCQkJCQkgICAgICB2 b2lkICopLAogIAkJCQkJCSAgICB2b2lkICpkYXRhKTsKQEAgLTMzOCwxMCArMzM3LDEwIEBAIElu ZGV4OiBnZGItNy40LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi5oCiArZXh0ZXJuIHZvaWQgdXBkYXRl X3NvbGliX2JyZWFrcG9pbnRzICh2b2lkKTsKICsKICAjZW5kaWYgLyogU09MSUJfSCAqLwotSW5k ZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL3NvbGlzdC5oCitJbmRleDogZ2RiLTcuNC45MS4y MDEyMDgwMS9nZGIvc29saXN0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNjAy Lm9yaWcvZ2RiL3NvbGlzdC5oCTIwMTItMDYtMDIgMjE6Mzg6MDcuMjM2NDQyODgzICswMjAwCi0r KysgZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saXN0LmgJMjAxMi0wNi0wMiAyMTozODoxMy40 NjU0NDA1MDMgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL3NvbGlzdC5o CTIwMTItMDEtMDQgMDk6MTc6MTEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC45MS4yMDEy MDgwMS9nZGIvc29saXN0LmgJMjAxMi0wOC0wMSAxODo0NDo1OS41NzQ1MTg1NjYgKzAyMDAKIEBA IC0xNDksNiArMTQ5LDEzIEBAIHN0cnVjdCB0YXJnZXRfc29fb3BzCiAgICAgICAgIGNvcmUgZmls ZSAoaW4gcGFydGljdWxhciwgZm9yIHJlYWRvbmx5IHNlY3Rpb25zKS4gICovCiAgICAgIGludCAo KmtlZXBfZGF0YV9pbl9jb3JlKSAoQ09SRV9BRERSIHZhZGRyLAoKZGlmZiAtLWdpdCBhL2dkYi1m b3J0cmFuLWNvbW1vbi5wYXRjaCBiL2dkYi1mb3J0cmFuLWNvbW1vbi5wYXRjaAppbmRleCBjOGZi NTdiLi5lMDcyMTMzIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1jb21tb24ucGF0Y2gKKysrIGIv Z2RiLWZvcnRyYW4tY29tbW9uLnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjQu NTAuMjAxMjA3MTQvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEv Z2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MTQub3Jp Zy9nZGIvZHdhcmYycmVhZC5jCTIwMTItMDctMTQgMjM6MzY6MDkuODgyMTM2NTQ2ICswMjAwCi0r KysgZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvZHdhcmYycmVhZC5jCTIwMTItMDctMTQgMjM6MzY6 MTEuMDMyMTMwMTgyICswMjAwCi1AQCAtMTEwMDMsMTIgKzExMDAzLDE0IEBAIHJlYWRfc2V0X3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHIKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9y aWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEyLTA4LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2R3YXJmMnJlYWQuYwkyMDEyLTA4LTAxIDE4OjM4 OjU0LjIwMTU0MDUwMCArMDIwMAorQEAgLTExMDczLDEyICsxMTA3MywxNCBAQCByZWFkX3NldF90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RyCiAgICByZXR1cm4gc2V0X2RpZV90eXBlIChk aWUsIHNldF90eXBlLCBjdSk7CiAgfQogIApAQCAtMTksNyArMTksNyBAQCBJbmRleDogZ2RiLTcu NC41MC4yMDEyMDcxNC9nZGIvZHdhcmYycmVhZC5jCiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRy OwogICAgc3RydWN0IHN5bWJvbCAqc3ltOwogICAgQ09SRV9BRERSIGJhc2UgPSAoQ09SRV9BRERS KSAwOwotQEAgLTExMDMzLDIwICsxMTAzNSw2NyBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0 IGRpZV9pbmZvICpkaWUsCitAQCAtMTExMDMsMjAgKzExMTA1LDY3IEBAIHJlYWRfY29tbW9uX2Js b2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgICAgfQogICAgaWYgKGRpZS0+Y2hpbGQgIT0g TlVMTCkKICAgICAgewpAQCAtODcsNyArODcsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcx NC9nZGIvZHdhcmYycmVhZC5jCiAgICAgIH0KICB9CiAgCi1AQCAtMTUwODUsNiArMTUxMzQsMTMg QEAgbmV3X3N5bWJvbF9mdWxsIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcworQEAgLTE1MTU1LDYg KzE1MjA0LDEzIEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAJ ICAgIHsKICAJICAgICAgdmFyX2RlY29kZV9sb2NhdGlvbiAoYXR0ciwgc3ltLCBjdSk7CiAgCSAg ICAgIGF0dHIyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKQEAgLTEw MSw3ICsxMDEsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvZHdhcmYycmVhZC5j CiAgCSAgICAgIGlmIChTWU1CT0xfQ0xBU1MgKHN5bSkgPT0gTE9DX1NUQVRJQwogIAkJICAmJiBT WU1CT0xfVkFMVUVfQUREUkVTUyAoc3ltKSA9PSAwCiAgCQkgICYmICFkd2FyZjJfcGVyX29iamZp bGUtPmhhc19zZWN0aW9uX2F0X3plcm8pCi1AQCAtMTUyNDksNiArMTUzMDUsMTEgQEAgbmV3X3N5 bWJvbF9mdWxsIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcworQEAgLTE1MzE5LDYgKzE1Mzc1LDEx IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAJICBTWU1CT0xf Q0xBU1MgKHN5bSkgPSBMT0NfVFlQRURFRjsKICAJICBsaXN0X3RvX2FkZCA9ICZnbG9iYWxfc3lt Ym9sczsKICAJICBicmVhazsKQEAgLTExMywxMCArMTEzLDEwIEBAIEluZGV4OiBnZGItNy40LjUw LjIwMTIwNzE0L2dkYi9kd2FyZjJyZWFkLmMKICAJZGVmYXVsdDoKICAJICAvKiBOb3QgYSB0YWcg d2UgcmVjb2duaXplLiAgSG9wZWZ1bGx5IHdlIGFyZW4ndCBwcm9jZXNzaW5nCiAgCSAgICAgdHJh c2ggZGF0YSwgYnV0IHNpbmNlIHdlIG11c3Qgc3BlY2lmaWNhbGx5IGlnbm9yZSB0aGluZ3MKLUlu ZGV4OiBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9mLWxhbmcuYworSW5kZXg6IGdkYi03LjQuOTEu MjAxMjA4MDEvZ2RiL2YtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEyMDcx NC5vcmlnL2dkYi9mLWxhbmcuYwkyMDEyLTA3LTE0IDIzOjM2OjEwLjk5MzEzMDM5OCArMDIwMAot KysrIGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtbGFuZy5jCTIwMTItMDctMTQgMjM6MzY6MTEu MDMzMTMwMTc2ICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9mLWxhbmcu YwkyMDEyLTA4LTAxIDE4OjM4OjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAx MjA4MDEvZ2RiL2YtbGFuZy5jCTIwMTItMDgtMDEgMTg6Mzg6NTQuMjAyNTQwNDk1ICswMjAwCiBA QCAtMzcwLDI3ICszNzAsMyBAQCBfaW5pdGlhbGl6ZV9mX2xhbmd1YWdlICh2b2lkKQogIAogICAg YWRkX2xhbmd1YWdlICgmZl9sYW5ndWFnZV9kZWZuKTsKQEAgLTE0NSwxMCArMTQ1LDEwIEBAIElu ZGV4OiBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9mLWxhbmcuYwogLSAgICB9CiAtICByZXR1cm4g KE5VTEwpOwogLX0KLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9mLWxhbmcuaAorSW5k ZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNC41MC4yMDEyMDcxNC5vcmlnL2dkYi9mLWxhbmcuaAkyMDEyLTA3LTE0IDIzOjM2OjEwLjk5 NDEzMDM5MiArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtbGFuZy5oCTIwMTIt MDctMTQgMjM6MzY6MTEuMDM0MTMwMTcxICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5v cmlnL2dkYi9mLWxhbmcuaAkyMDEyLTA4LTAxIDE4OjM4OjI0LjAwMDAwMDAwMCArMDIwMAorKysr IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2YtbGFuZy5oCTIwMTItMDgtMDEgMTg6Mzg6NTQuMjAz NTQwNDg5ICswMjAwCiBAQCAtNTIsMzcgKzUyLDggQEAgZW51bSBmOTBfcmFuZ2VfdHlwZQogICAg ICBOT05FX0JPVU5EX0RFRkFVTFQJCS8qICIobG93OmhpZ2gpIiAgKi8KICAgIH07CkBAIC0xODcs MTAgKzE4NywxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvZi1sYW5nLmgKICAK ICAvKiBXaGVuIHJlYXNvbmFibGUgYXJyYXkgYm91bmRzIGNhbm5vdCBiZSBmZXRjaGVkLCBzdWNo IGFzIHdoZW4gCiAgICAgeW91IGFzayB0byAnbXQgcHJpbnQgc3ltYm9scycgYW5kIHRoZXJlIGlz IG5vIHN0YWNrIGZyYW1lIGFuZCAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9mLXZh bHByaW50LmMKK0luZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9mLXZhbHByaW50LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzE0Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwky MDEyLTA3LTE0IDIzOjM2OjEwLjk5NTEzMDM4NyArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3 MTQvZ2RiL2YtdmFscHJpbnQuYwkyMDEyLTA3LTE0IDIzOjM2OjUzLjc0Nzg5Mzc3OSArMDIwMAor LS0tIGdkYi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTItMDgtMDEg MTg6Mzg6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvZi12 YWxwcmludC5jCTIwMTItMDgtMDEgMTg6NDE6MjYuNDExNjk4MTg2ICswMjAwCiBAQCAtMzQsMTAg KzM0LDExIEBACiAgI2luY2x1ZGUgImdkYmNvcmUuaCIKICAjaW5jbHVkZSAiY29tbWFuZC5oIgpA QCAtMjU3LDE0ICsyNTcsMTQgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtdmFs cHJpbnQuYwogKwkgIH0KICAKIC0gIHByaW50Zl9maWx0ZXJlZCAoXygiQWxsIENPTU1PTiBibG9j a3MgdmlzaWJsZSBhdCB0aGlzIGxldmVsOlxuXG4iKSk7Ci0rCXB1dGNoYXJfZmlsdGVyZWQgKCdc bicpOwotKyAgICAgIH0KLSAKKy0KIC0gIHdoaWxlICh0bXAgIT0gTlVMTCkKIC0gICAgewogLSAg ICAgIGlmIChzdHJjbXAgKHRtcC0+b3duaW5nX2Z1bmN0aW9uLCBmdW5uYW1lKSA9PSAwKQogLQlw cmludGZfZmlsdGVyZWQgKCIlc1xuIiwgdG1wLT5uYW1lKTsKLS0KKysJcHV0Y2hhcl9maWx0ZXJl ZCAoJ1xuJyk7CisrICAgICAgfQorIAogLSAgICAgIHRtcCA9IHRtcC0+bmV4dDsKIC0gICAgfQog KyAgcmV0dXJuIHZhbHVlc19wcmludGVkOwpAQCAtMjg1LDcgKzI4NSw3IEBAIEluZGV4OiBnZGIt Ny40LjUwLjIwMTIwNzE0L2dkYi9mLXZhbHByaW50LmMKICAKICAgIC8qIFdlIGhhdmUgYmVlbiB0 b2xkIHRvIGRpc3BsYXkgdGhlIGNvbnRlbnRzIG9mIEY3NyBDT01NT04gCiAgICAgICBibG9jayBz dXBwb3NlZGx5IHZpc2libGUgaW4gdGhpcyBmdW5jdGlvbi4gIExldCB1cyAKLUBAIC00NjEsNzQg KzQ5MSwzMSBAQCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQKK0BAIC00 NjEsODcgKzQ5MSwzMSBAQCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQK ICAgIC8qIFRoZSBmb2xsb3dpbmcgaXMgZ2VuZXJhbGx5IHJpcHBlZCBvZmYgZnJvbSBzdGFjay5j J3Mgcm91dGluZSAKICAgICAgIHByaW50X2ZyYW1lX2luZm8oKS4gICovCiAgCkBAIC0zNTMsNiAr MzUzLDggQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtdmFscHJpbnQuYwogLSAg aWYgKHRoZV9jb21tb24pCiArICBpZiAoIXZhbHVlc19wcmludGVkKQogICAgICB7CistICAgICAg c3RydWN0IGZyYW1lX2lkIGZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChmaSk7CistCiAtICAgICAg aWYgKHN0cmNtcCAoY29tbmFtZSwgQkxBTktfQ09NTU9OX05BTUVfTE9DQUwpID09IDApCiAtCXBy aW50Zl9maWx0ZXJlZCAoXygiQ29udGVudHMgb2YgYmxhbmsgQ09NTU9OIGJsb2NrOlxuIikpOwog KyAgICAgIGlmIChjb21uYW1lKQpAQCAtMzY1LDcgKzM2NywxOCBAQCBJbmRleDogZ2RiLTcuNC41 MC4yMDEyMDcxNC9nZGIvZi12YWxwcmludC5jCiAtCiAtICAgICAgd2hpbGUgKGVudHJ5ICE9IE5V TEwpCiAtCXsKKy0JICBmaSA9IGZyYW1lX2ZpbmRfYnlfaWQgKGZyYW1lX2lkKTsKKy0JICBpZiAo ZmkgPT0gTlVMTCkKKy0JICAgIHsKKy0JICAgICAgd2FybmluZyAoXygiVW5hYmxlIHRvIHJlc3Rv cmUgcHJldmlvdXNseSBzZWxlY3RlZCBmcmFtZS4iKSk7CistCSAgICAgIGJyZWFrOworLQkgICAg fQorLQogLQkgIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoTlVMTCwgZW50cnktPnN5bWJvbCwg ZmksIGdkYl9zdGRvdXQsIDApOworLQorLQkgIC8qIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSBp bnZhbGlkYXRlcyBGSS4gICovCistCSAgZmkgPSBOVUxMOworLQogLQkgIGVudHJ5ID0gZW50cnkt Pm5leHQ7CiAtCX0KICsJcHJpbnRmX2ZpbHRlcmVkIChfKCJObyBjb21tb24gYmxvY2tzLlxuIikp OwpAQCAtMzc2LDExICszODksMTEgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2Yt dmFscHJpbnQuYwogIH0KICAKICB2b2lkCi1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIv c3RhY2suYworSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3N0YWNrLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzE0Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxMi0wNy0xNCAy MzozNjowOS4zMTUxMzk2ODMgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9zdGFj ay5jCTIwMTItMDctMTQgMjM6MzY6MTEuMDM2MTMwMTYxICswMjAwCi1AQCAtMTgzOCw2ICsxODM4 LDggQEAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2FscyAoc3RydWN0IGJsb2NrCistLS0gZ2RiLTcu NC45MS4yMDEyMDgwMS5vcmlnL2dkYi9zdGFjay5jCTIwMTItMDgtMDEgMTg6MzY6NTEuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvc3RhY2suYwkyMDEyLTA4LTAx IDE4OjM4OjU0LjIwNjU0MDQ3MSArMDIwMAorQEAgLTE4NTEsNiArMTg1MSw4IEBAIGl0ZXJhdGVf b3Zlcl9ibG9ja19sb2NhbHMgKHN0cnVjdCBibG9jawogIAljYXNlIExPQ19DT01QVVRFRDoKICAJ ICBpZiAoU1lNQk9MX0lTX0FSR1VNRU5UIChzeW0pKQogIAkgICAgYnJlYWs7CkBAIC0zODksMTAg KzQwMiwxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvc3RhY2suYwogIAkgICgq Y2IpIChTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgc3ltLCBjYl9kYXRhKTsKICAJICBicmVhazsK ICAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9zeW10YWIuaAorSW5kZXg6IGdkYi03 LjQuOTEuMjAxMjA4MDEvZ2RiL3N5bXRhYi5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4y MDEyMDcxNC5vcmlnL2dkYi9zeW10YWIuaAkyMDEyLTA2LTMwIDAwOjQ2OjQ2LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL3N5bXRhYi5oCTIwMTItMDctMTQgMjM6 MzY6MTEuMDM4MTMwMTQ5ICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9z eW10YWIuaAkyMDEyLTA2LTMwIDAwOjQ2OjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQu OTEuMjAxMjA4MDEvZ2RiL3N5bXRhYi5oCTIwMTItMDgtMDEgMTg6Mzg6NTQuMjA2NTQwNDcxICsw MjAwCiBAQCAtMzk0LDcgKzM5NCwxMCBAQCB0eXBlZGVmIGVudW0gZG9tYWluX2VudW1fdGFnCiAg CiAgICAvKiBMQUJFTF9ET01BSU4gbWF5IGJlIHVzZWQgZm9yIG5hbWVzIG9mIGxhYmVscyAoZm9y IGdvdG9zKS4gICovCkBAIC00MDUsMTAgKzQxOCwxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEy MDcxNC9nZGIvc3ltdGFiLmgKICB9IGRvbWFpbl9lbnVtOwogIAogIC8qIFNlYXJjaGluZyBkb21h aW5zLCB1c2VkIGZvciBgc2VhcmNoX3N5bWJvbHMnLiAgRWxlbWVudCBudW1iZXJzIGFyZQotSW5k ZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24t YmxvY2suZXhwCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2NvbW1vbi1ibG9jay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzE0L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmV4cAkyMDEyLTA3LTE0IDIzOjM2 OjExLjAzODEzMDE0OSArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCTIwMTItMDgtMDEgMTg6Mzg6NTQuMjA3NTQw NDY1ICswMjAwCiBAQCAtMCwwICsxLDEwMSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC01MTEsMTAgKzUyNCwxMCBAQCBJbmRleDogZ2Ri LTcuNC41MC4yMDEyMDcxNC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5l eHAKICtnZGJfdGVzdCAicCBpeF94IiAiID0gMSAqIiAicCBpeF94IGluIgogK2dkYl90ZXN0ICJw IGl5X3kiICIgPSAyICoiICJwIGl5X3kgaW4iCiArZ2RiX3Rlc3QgInAgaXpfejIiICIgPSAzICoi ICJwIGl6X3oyIGluIgotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZjkwCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5mOTAKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny40LjUwLjIwMTIwNzE0L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmY5 MAkyMDEyLTA3LTE0IDIzOjM2OjExLjAzODEzMDE0OSArMDIwMAorKysrIGdkYi03LjQuOTEuMjAx MjA4MDEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZjkwCTIwMTItMDgt MDEgMTg6Mzg6NTQuMjA3NTQwNDY1ICswMjAwCiBAQCAtMCwwICsxLDY3IEBACiArISBDb3B5cmln aHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCgpkaWZmIC0tZ2l0IGEv Z2RiLW1pbmlkZWJ1Z2luZm8ucGF0Y2ggYi9nZGItbWluaWRlYnVnaW5mby5wYXRjaAppbmRleCA5 YTg0MWEwLi5kNmU2ZjdlIDEwMDY0NAotLS0gYS9nZGItbWluaWRlYnVnaW5mby5wYXRjaAorKysg Yi9nZGItbWluaWRlYnVnaW5mby5wYXRjaApAQCAtNCwxMCArNCwxMCBAQCBodHRwczovL2J1Z3pp bGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTgzNDA2OAogUGF0Y2ggYnkgQWxleGFuZGVy IExhcnNzb24uCiBSZXZpZXcvbW9kaWZpY2F0aW9ucyBhbmQgdGVzdGZpbGUgYnkgSmFuIEtyYXRv Y2h2aWwuCiAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9NYWtlZmlsZS5pbgorSW5k ZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDEyLTA3LTA2IDIxOjQ0 OjU3LjI0MzQ0NDIxNyArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL01ha2VmaWxl LmluCTIwMTItMDctMDYgMjE6NDQ6NTcuNzY4NDQ0OTM3ICswMjAwCistLS0gZ2RiLTcuNC45MS4y MDEyMDgwMS5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDEyLTA4LTAxIDE4OjQ0OjUxLjAwMDAwMDAw MCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL01ha2VmaWxlLmluCTIwMTItMDgt MDEgMTg6NDc6MDUuNzAxODIwNTk0ICswMjAwCiBAQCAtMTUxLDYgKzE1MSw5IEBAIFJFQURMSU5F X0NGTEFHUyA9IEBSRUFETElORV9DRkxBR1NACiAgIyBXaGVyZSBpcyBleHBhdD8gIFRoaXMgd2ls bCBiZSBlbXB0eSBpZiBleHBhdCB3YXMgbm90IGF2YWlsYWJsZS4KICBMSUJFWFBBVCA9IEBMSUJF WFBBVEAKQEAgLTI3LDEwICsyNywxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIv TWFrZWZpbGUuaW4KICAJJChMSUJJQkVSVFkpICQoV0lOMzJMSUJTKSAkKExJQkdOVSkKICBDREVQ UyA9ICQoWE1fQ0RFUFMpICQoTkFUX0NERVBTKSAkKFNJTSkgJChCRkQpICQoUkVBRExJTkVfREVQ UykgXAogIAkkKE9QQ09ERVMpICQoSU5UTF9ERVBTKSAkKExJQklCRVJUWSkgJChDT05GSUdfREVQ UykgJChMSUJHTlUpCi1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29uZmlnLmluCitJ bmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvY29uZmlnLmluCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9jb25maWcuaW4JMjAxMi0wNy0wNiAyMTo0NDo1 Ny41OTk0NDQ3MDUgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb25maWcuaW4J MjAxMi0wNy0wNiAyMTo0NDo1Ny43Njk0NDQ5MzggKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIw ODAxLm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDEyLTA4LTAxIDE4OjQ1OjIxLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2NvbmZpZy5pbgkyMDEyLTA4LTAxIDE4OjQ3 OjA1LjcwMTgyMDU5NCArMDIwMAogQEAgLTE5OCw2ICsxOTgsOSBAQAogIC8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSBgbGliaWNvbnZsaXN0JyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFW RV9MSUJJQ09OVkxJU1QKQEAgLTQxLDEwICs0MSwxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEy MDcwMy9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtJyBs aWJyYXJ5ICgtbG0pLiAqLwogICN1bmRlZiBIQVZFX0xJQk0KICAKLUluZGV4OiBnZGItNy40LjUw LjIwMTIwNzAzL2dkYi9jb25maWd1cmUKK0luZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9j b25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2Nv bmZpZ3VyZQkyMDEyLTA3LTA2IDIxOjQ0OjU3LjY5NjQ0NDgzOCArMDIwMAotKysrIGdkYi03LjQu NTAuMjAxMjA3MDMvZ2RiL2NvbmZpZ3VyZQkyMDEyLTA3LTA2IDIxOjUzOjQ3LjY2NzE3MDM1MiAr MDIwMAorLS0tIGdkYi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIvY29uZmlndXJlCTIwMTItMDgt MDEgMTg6NDU6MjEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIv Y29uZmlndXJlCTIwMTItMDgtMDEgMTg6NDc6MDUuNzAzODIwNTgzICswMjAwCiBAQCAtNjQxLDYg KzY0MSw5IEBAIFRDTF9WRVJTSU9OCiAgV0lOMzJMREFQUAogIEdVSV9DRkxBR1NfWApAQCAtNTY5 LDEwICs1NjksMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2NvbmZpZ3VyZQog IExJQkdVST0iLi4vbGliZ3VpL3NyYy9saWJndWkuYSIKICBHVUlfQ0ZMQUdTX1g9Ii1JJHtzcmNk aXJ9Ly4uL2xpYmd1aS9zcmMiCiAgCi1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29u ZmlndXJlLmFjCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvY29uZmlndXJlLmFjCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9jb25maWd1cmUuYWMJ MjAxMi0wNy0wNiAyMTo0NDo1Ny42OTk0NDQ4NDEgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIw NzAzL2dkYi9jb25maWd1cmUuYWMJMjAxMi0wNy0wNiAyMTo1MzoyOS44NzUxNDYyMjUgKzAyMDAK Ky0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDEyLTA4LTAx IDE4OjQ1OjIxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2Nv bmZpZ3VyZS5hYwkyMDEyLTA4LTAxIDE4OjQ3OjA1LjcwNDgyMDU3NyArMDIwMAogQEAgLTIxOTYs NiArMjE5NiwyNyBAQCBMSUJTPSRPTERfTElCUwogICMgQWRkIGFueSBob3N0LXNwZWNpZmljIG9i amVjdHMgdG8gR0RCLgogIENPTkZJR19PQlM9IiR7Q09ORklHX09CU30gJHtnZGJfaG9zdF9vYnN9 IgpAQCAtNjAxLDEwICs2MDEsMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2Nv bmZpZ3VyZS5hYwogIExJQkdVST0iLi4vbGliZ3VpL3NyYy9saWJndWkuYSIKICBHVUlfQ0ZMQUdT X1g9Ii1JJHtzcmNkaXJ9Ly4uL2xpYmd1aS9zcmMiCiAgQUNfU1VCU1QoTElCR1VJKQotSW5kZXg6 IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2VsZnJlYWQuYworSW5kZXg6IGdkYi03LjQuOTEuMjAx MjA4MDEvZ2RiL2VsZnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMu b3JpZy9nZGIvZWxmcmVhZC5jCTIwMTItMDctMDYgMjE6NDQ6NTcuMjExNDQ0MTc0ICswMjAwCi0r KysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvZWxmcmVhZC5jCTIwMTItMDctMDYgMjE6NDQ6NTcu ODAwNDQ0OTc5ICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9lbGZyZWFk LmMJMjAxMi0wOC0wMSAxODo0NDo1MS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjkxLjIw MTIwODAxL2dkYi9lbGZyZWFkLmMJMjAxMi0wOC0wMSAxODo1Nzo1OS41MjgyMDIzOTggKzAyMDAK IEBAIC01MSw2ICs1MSwxMCBAQAogICNpbmNsdWRlICJvYnNlcnZlci5oIgogICNpbmNsdWRlICJl bGYvZXh0ZXJuYWwuaCIKQEAgLTg1MiwxNCArODUyLDE0IEBAIEluZGV4OiBnZGItNy40LjUwLjIw MTIwNzAzL2dkYi9lbGZyZWFkLmMKICsgICAgcmV0dXJuIE5VTEw7CiArCiArICAvKiBvYmpmaWxl LT5OQU1FIGxpZmV0aW1lIGlzIGxvbmdlciB0aGFuIHRoZSBBQkZEJ3MgbGlmZXRpbWUuICAqLwot KyAgYWJmZCA9IGJmZF9vcGVucl9pb3ZlYyAob2JqZmlsZS0+bmFtZSwgZ251dGFyZ2V0LCBsem1h X29wZW4sIHNlY3Rpb24sCi0rCQkJICBsem1hX3ByZWFkLCBsem1hX2Nsb3NlLCBsem1hX3N0YXQp OworKyAgYWJmZCA9IGdkYl9iZmRfb3BlbnJfaW92ZWMgKG9iamZpbGUtPm5hbWUsIGdudXRhcmdl dCwgbHptYV9vcGVuLCBzZWN0aW9uLAorKwkJCSAgICAgIGx6bWFfcHJlYWQsIGx6bWFfY2xvc2Us IGx6bWFfc3RhdCk7CiArICBpZiAoYWJmZCA9PSBOVUxMKQogKyAgICByZXR1cm4gTlVMTDsKICsK ICsgIGlmICghYmZkX2NoZWNrX2Zvcm1hdCAoYWJmZCwgYmZkX29iamVjdCkpCiArICAgIHsKLSsg ICAgICBiZmRfY2xvc2UgKGFiZmQpOworKyAgICAgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOwogKyAg ICAgIHJldHVybiBOVUxMOwogKyAgICB9CiArCkBAIC04NzksNDIgKzg3OSw1NCBAQCBJbmRleDog Z2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvZWxmcmVhZC5jCiAgLyogU2NhbiBhbmQgYnVpbGQgcGFy dGlhbCBzeW1ib2xzIGZvciBhIHN5bWJvbCBmaWxlLgogICAgIFdlIGhhdmUgYmVlbiBpbml0aWFs aXplZCBieSBhIGNhbGwgdG8gZWxmX3N5bWZpbGVfaW5pdCwgd2hpY2gKICAgICBjdXJyZW50bHkg ZG9lcyBub3RoaW5nLgotQEAgLTI0MzMsNiArMjY5Myw3IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWwKK0BAIC0yNDMzLDYgKzI2OTMsOCBAQCBlbGZfc3ltZmlsZV9y ZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCiAgICBlbHNlIGlmICghb2JqZmlsZV9oYXNfcGFy dGlhbF9zeW1ib2xzIChvYmpmaWxlKSkKICAgICAgewogICAgICAgIGNoYXIgKmRlYnVnZmlsZSwg KmJ1aWxkX2lkX2ZpbGVuYW1lOwogKyAgICAgIGJmZCAqYWJmZCA9IE5VTEw7CisrICAgICAgc3Ry dWN0IGNsZWFudXAgKmNsZWFudXA7CiAgCiAgICAgICAgZGVidWdmaWxlID0gZmluZF9zZXBhcmF0 ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKG9iamZpbGUsCiAgCQkJCQkJICAgICAgICZidWlsZF9p ZF9maWxlbmFtZSk7Ci1AQCAtMjQ0Miw5ICsyNzAzLDcgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbAorQEAgLTI0NDAsMTQgKzI3MDIsMTEgQEAgZWxmX3N5bWZpbGVf cmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAorICAgICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVM TCkKKyAJZGVidWdmaWxlID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAo b2JqZmlsZSk7CiAgCisrICAgICAgY2xlYW51cCA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGRlYnVn ZmlsZSk7CiAgICAgICAgaWYgKGRlYnVnZmlsZSkKICAJeworLQkgIHN0cnVjdCBjbGVhbnVwICpj bGVhbnVwID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgZGVidWdmaWxlKTsKIC0JICBiZmQgKmFiZmQg PSBzeW1maWxlX2JmZF9vcGVuIChkZWJ1Z2ZpbGUpOwogLQotLQkgIHN5bWJvbF9maWxlX2FkZF9z ZXBhcmF0ZSAoYWJmZCwgc3ltZmlsZV9mbGFncywgb2JqZmlsZSk7CiArCSAgYWJmZCA9IHN5bWZp bGVfYmZkX29wZW4gKGRlYnVnZmlsZSk7Ci0gCSAgeGZyZWUgKGRlYnVnZmlsZSk7CisgCSAgbWFr ZV9jbGVhbnVwX2JmZF91bnJlZiAoYWJmZCk7CistCSAgc3ltYm9sX2ZpbGVfYWRkX3NlcGFyYXRl IChhYmZkLCBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKy0JICBkb19jbGVhbnVwcyAoY2xlYW51 cCk7CiAgCX0KICAgICAgICAvKiBDaGVjayBpZiBhbnkgc2VwYXJhdGUgZGVidWcgaW5mbyBoYXMg YmVlbiBleHRyYWN0ZWQgb3V0LiAgKi8KLUBAIC0yNDUzLDYgKzI3MTIsMTIgQEAgZWxmX3N5bWZp bGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAorICAgICAgIGVsc2UgaWYgKGJmZF9nZXRf c2VjdGlvbl9ieV9uYW1lIChvYmpmaWxlLT5vYmZkLCAiLmdudV9kZWJ1Z2xpbmsiKQorQEAgLTI0 NTUsNiArMjcxNCwxNyBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls CiAgCWRlYnVnX3ByaW50X21pc3NpbmcgKG9iamZpbGUtPm5hbWUsIGJ1aWxkX2lkX2ZpbGVuYW1l KTsKICAKICAgICAgICB4ZnJlZSAoYnVpbGRfaWRfZmlsZW5hbWUpOwogKwogKyAgICAgIGlmIChh YmZkID09IE5VTEwpCi0rCWFiZmQgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfaW5fc2VjdGlv biAob2JqZmlsZSk7CisrCXsKKysJICBhYmZkID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2lu X3NlY3Rpb24gKG9iamZpbGUpOworKwkgIG1ha2VfY2xlYW51cF9iZmRfdW5yZWYgKGFiZmQpOwor Kwl9CiArCiArICAgICAgaWYgKGFiZmQgIT0gTlVMTCkKICsJc3ltYm9sX2ZpbGVfYWRkX3NlcGFy YXRlIChhYmZkLCBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKysKKysgICAgICBkb19jbGVhbnVw cyAoY2xlYW51cCk7CiAgICAgIH0KICAKICAgIGlmIChzeW10YWJfY3JlYXRlX2RlYnVnKQotSW5k ZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1nbnUt ZGVidWdkYXRhLmMKK0luZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItZ251LWRlYnVnZGF0YS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDcw My9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuYwkyMDEyLTA3LTA2 IDIxOjQ0OjU3LjgwMjQ0NDk4MyArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1nbnUtZGVidWdkYXRhLmMJMjAxMi0wOC0wMSAxODo0Nzow NS43MDU4MjA1NzIgKzAyMDAKIEBAIC0wLDAgKzEsMzAgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlz IHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtOTQ2LDEwICs5NTgsMTAgQEAg SW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1n bnUtZGVidWdkYXRhLmMKICt7CiArICByZXR1cm4gZGVidWdkYXRhX2Z1bmN0aW9uICgpICsgMTsK ICt9Ci1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLWdudS1kZWJ1Z2RhdGEuZXhwCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvdGVz dHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu NC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEu ZXhwCTIwMTItMDctMDYgMjE6NDQ6NTcuODA5NDQ0OTkxICswMjAwCisrKysgZ2RiLTcuNC45MS4y MDEyMDgwMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuZXhwCTIw MTItMDgtMDEgMTg6NDc6MDUuNzA1ODIwNTcyICswMjAwCiBAQCAtMCwwICsxLDkxIEBACiArIyBD b3B5cmlnaHQgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCgpkaWZmIC0t Z2l0IGEvZ2RiLXN0YWxlLWZyYW1lX2luZm8tcHl0aG9uLnBhdGNoIGIvZ2RiLXN0YWxlLWZyYW1l X2luZm8tcHl0aG9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzQyZGZh Li4wMDAwMDAwCi0tLSBhL2dkYi1zdGFsZS1mcmFtZV9pbmZvLXB5dGhvbi5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDI5NSArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBh dGNoZXMvMjAxMi0wNy9tc2cwMDE5Ny5odG1sCi1TdWJqZWN0OiBbcGF0Y2hdIEZpeCBhbm90aGVy IHN0YWxlIGZyYW1lX2luZm8gKiAoUFIgMTE5MTQsIGxpa2UgUFIgMTM4NjYpCi0KLUhpLAotCi1o dHRwOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTExOTE0Ci0KLWhh cyBhbm90aGVyIGNhc2Ugb2Ygc3RhbGUgZnJhbWVfaW5mbyAqLiAgT3JpZ2luYWxseSBJIGZvdW5k IGl0IHVuZml4YWJsZSB3aXRoCi10aGUgY3VycmVudCBzdHJ1Y3QgZnJhbWVfaW5mbyAqIHVzYWdl IGJ1dCBQZWRybyBoYXMgc2hvd24gaW4gUFIgMTM4NjYgaXQgaXMKLXBvc3NpYmxlIHRvIGZpeCB0 aGUgY2FzZXMgb25lIGJ5IG9uZSBzbyBJIGhhdmUgZml4ZWQgYWxzbyB0aGlzIG9uZS4KLQotSXQg Zm9sbG93cyB0aGUgcGF0aCBvZiB2YWxncmluZCBiYWNrdHJhY2Ugc2hvd2luZyB3aGVyZSB0aGUg bWVtb3J5IGlzIGJlaW5nCi1mcmVlZDoKLQlodHRwOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEv c2hvd19idWcuY2dpP2lkPTExOTE0I2M1Ci0KLVRoaXMgbWVzc2FnZSBoYXMgYmVlbiBhbHJlYWR5 IHByZXNlbnQgaW4gR0RCIHNvIEkgdXNlZCBpdCBpbiBtb3JlIGNhc2VzOgotKwkgICAgICB3YXJu aW5nIChfKCJVbmFibGUgdG8gcmVzdG9yZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZyYW1lLiIpKTsK LQotTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZfNjQtbTMyLGk2ODZ9LWZlZG9yYXJhd2hp ZGUtbGludXgtZ251LgotCi1JIHdpbGwgY2hlY2sgaXQgaW4gc29vbiBmb3IgNy41LgotCi1JIGZp bmQgaXQgYSBiaXQgZGlmZmljdWx0IHRvIHJlbGlhYmx5IHJlcHJvZHVjZSwgdGhpcyB0ZXN0Y2Fz ZXMgbW9zdGx5IGFsd2F5cwotY3Jhc2hlcyBmb3IgbWUgKGF0IGxlYXN0IHdpdGggLWxtY2hlY2sp LgotCi0KLVRoYW5rcywKLUphbgotCi0KLWdkYi8KLTIwMTItMDctMTQgIEphbiBLcmF0b2Nodmls ICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBSIDExOTE0Ci0JKiBmLXZhbHByaW50 LmMgKGluZm9fY29tbW9uX2NvbW1hbmQpOiBOZXcgdmFyaWFibGUgZnJhbWVfaWQuCi0JUmVpbml0 aWFsaXplIEZJIGZvcm0gRlJBTUVfSUQgYWZ0ZXIgZWFjaCBwcmludF92YXJpYWJsZV9hbmRfdmFs dWUuCi0JKiBwcmludGNtZC5jIChwcmludF92YXJpYWJsZV9hbmRfdmFsdWUpOiBFeHRlbmQgZnVu Y3Rpb24gY29tbWVudC4KLQlBZGQgY29tbWVudCBmb3IgaW52YWxpZGF0ZWQgRlJBTUUuCi0JKiBz dGFjay5jIChiYWNrdHJhY2VfY29tbWFuZF8xKTogTmV3IHZhcmlhYmxlIGZyYW1lX2lkLiAgUmVp bml0aWFsaXplCi0JRkkgZm9ybSBGUkFNRV9JRCBhZnRlciBlYWNoIHByaW50X2ZyYW1lX2xvY2Fs X3ZhcnMuCi0JKHN0cnVjdCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWVfZGF0YSk6IENoYW5nZSBm cmFtZSB0byBmcmFtZV9pZC4KLQkoZG9fcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlKTogTmV3IHZh cmlhYmxlIGZyYW1lLCBpbml0aWFsaXplIGl0IGZyb20KLQlwLT5mcmFtZV9pZC4gIEFkZCBjb21t ZW50IGZvciBpbnZhbGlkYXRlZCBGUkFNRS4KLQkocHJpbnRfZnJhbWVfbG9jYWxfdmFycywgcHJp bnRfZnJhbWVfYXJnX3ZhcnMpOiBOZXcgZnVuY3Rpb24gY29tbWVudC4KLQlVcGRhdGUgQ0JfREFU QS5GUkFNRSB0byBDQl9EQVRBLkZSQU1FX0lEIGluaXRpYWxpemF0aW9uLiAgQWRkIGNvbW1lbnQK LQlmb3IgaW52YWxpZGF0ZWQgRlJBTUUuCi0KLWdkYi90ZXN0c3VpdGUvCi0yMDEyLTA3LTE0ICBK YW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlQUiAxMTkxNAot CSogZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jIChldmFsX2Z1bmMsIGV2YWxfc3ViKTogTmV3 LgotCShtYWluKTogQ2FsbCBldmFsX3N1Yi4KLQkqIGdkYi5weXRob24vcHktcHJldHR5cHJpbnQu ZXhwOgotCShweXRob24gZXhlY2ZpbGUgKCdweS1wcmV0dHlwcmludC5weScpKTogTW92ZSBpdCBl YXJsaWVyLgotCU5ldyBicmVha3BvaW50IGZvciBldmFsLWJyZWFrLgotCShjb250aW51ZSB0byBi cmVha3BvaW50OiBldmFsLWJyZWFrLCBpbmZvIGxvY2Fscyk6IE5ldyB0ZXN0LgotCShweXRob24g ZXhlY2ZpbGUgKCdweS1wcmV0dHlwcmludC5weScpKTogTW92ZSBpdCBmcm9tIGhlcmUuCi0JKiBn ZGIucHl0aG9uL3B5LXByZXR0eXByaW50LnB5IChjbGFzcyBwcF9ldmFsX3R5cGUpOiBOZXcuCi0J KHJlZ2lzdGVyX3ByZXR0eV9wcmludGVycyk6IFJlZ2lzdGVyIHBwX2V2YWxfdHlwZS4KLQotZGlm ZiAtLWdpdCBhL2dkYi9wcmludGNtZC5jIGIvZ2RiL3ByaW50Y21kLmMKLWluZGV4IDJhMGE4ODYu LmQ1YjViNjMgMTAwNjQ0Ci0tLS0gYS9nZGIvcHJpbnRjbWQuYwotKysrIGIvZ2RiL3ByaW50Y21k LmMKLUBAIC0xOTYxLDcgKzE5NjEsOSBAQCBjbGVhcl9kYW5nbGluZ19kaXNwbGF5X2V4cHJlc3Np b25zIChzdHJ1Y3Qgc29fbGlzdCAqc29saWIpCi0gICAgc3RydWN0IHN5bWJvbC4gIE5BTUUgaXMg dGhlIG5hbWUgdG8gcHJpbnQ7IGlmIE5VTEwgdGhlbiBWQVIncyBwcmludAotICAgIG5hbWUgd2ls bCBiZSB1c2VkLiAgU1RSRUFNIGlzIHRoZSB1aV9maWxlIG9uIHdoaWNoIHRvIHByaW50IHRoZQot ICAgIHZhbHVlLiAgSU5ERU5UIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGluZGVudCBsZXZlbHMg dG8gcHJpbnQKLS0gICBiZWZvcmUgcHJpbnRpbmcgdGhlIHZhcmlhYmxlIG5hbWUuICAqLwotKyAg IGJlZm9yZSBwcmludGluZyB0aGUgdmFyaWFibGUgbmFtZS4KLSsKLSsgICBUaGlzIGZ1bmN0aW9u IGludmFsaWRhdGVzIEZSQU1FLiAgKi8KLSAKLSB2b2lkCi0gcHJpbnRfdmFyaWFibGVfYW5kX3Zh bHVlIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3ltYm9sICp2YXIsCi1AQCAtMTk4Myw2ICsx OTg1LDEwIEBAIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29uc3QgY2hhciAqbmFtZSwgc3Ry dWN0IHN5bWJvbCAqdmFyLAotICAgICAgIGdldF91c2VyX3ByaW50X29wdGlvbnMgKCZvcHRzKTsK LSAgICAgICBvcHRzLmRlcmVmX3JlZiA9IDE7Ci0gICAgICAgY29tbW9uX3ZhbF9wcmludCAodmFs LCBzdHJlYW0sIGluZGVudCwgJm9wdHMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotKwotKyAgICAgIC8q IGNvbW1vbl92YWxfcHJpbnQgaW52YWxpZGF0ZXMgRlJBTUUgd2hlbiBhIHByZXR0eSBwcmludGVy IGNhbGxzIGluZmVyaW9yCi0rCSBmdW5jdGlvbi4gICovCi0rICAgICAgZnJhbWUgPSBOVUxMOwot ICAgICB9Ci0gICBpZiAoZXhjZXB0LnJlYXNvbiA8IDApCi0gICAgIGZwcmludGZfZmlsdGVyZWQo c3RyZWFtLCAiPGVycm9yIHJlYWRpbmcgdmFyaWFibGUgJXMgKCVzKT4iLCBuYW1lLAotZGlmZiAt LWdpdCBhL2dkYi9zdGFjay5jIGIvZ2RiL3N0YWNrLmMKLWluZGV4IDI1MjBlMmMuLjM1ZDM3OWQg MTAwNjQ0Ci0tLS0gYS9nZGIvc3RhY2suYwotKysrIGIvZ2RiL3N0YWNrLmMKLUBAIC0xNzI3LDcg KzE3MjcsMjAgQEAgYmFja3RyYWNlX2NvbW1hbmRfMSAoY2hhciAqY291bnRfZXhwLCBpbnQgc2hv d19sb2NhbHMsIGludCBmcm9tX3R0eSkKLSAgICAgICAgICB0aGUgZnJhbWUtPnByZXYgZmllbGQg Z2V0cyBzZXQgdG8gTlVMTCBpbiB0aGF0IGNhc2UpLiAgKi8KLSAgICAgICBwcmludF9mcmFtZV9p bmZvIChmaSwgMSwgTE9DQVRJT04sIDEpOwotICAgICAgIGlmIChzaG93X2xvY2FscykKLS0JcHJp bnRfZnJhbWVfbG9jYWxfdmFycyAoZmksIDEsIGdkYl9zdGRvdXQpOwotKwl7Ci0rCSAgc3RydWN0 IGZyYW1lX2lkIGZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChmaSk7Ci0rCi0rCSAgcHJpbnRfZnJh bWVfbG9jYWxfdmFycyAoZmksIDEsIGdkYl9zdGRvdXQpOwotKwotKwkgIC8qIHByaW50X2ZyYW1l X2xvY2FsX3ZhcnMgaW52YWxpZGF0ZXMgRkkuICAqLwotKwkgIGZpID0gZnJhbWVfZmluZF9ieV9p ZCAoZnJhbWVfaWQpOwotKwkgIGlmIChmaSA9PSBOVUxMKQotKwkgICAgewotKwkgICAgICB0cmFp bGluZyA9IE5VTEw7Ci0rCSAgICAgIHdhcm5pbmcgKF8oIlVuYWJsZSB0byByZXN0b3JlIHByZXZp b3VzbHkgc2VsZWN0ZWQgZnJhbWUuIikpOwotKwkgICAgICBicmVhazsKLSsJICAgIH0KLSsJfQot IAotICAgICAgIC8qIFNhdmUgdGhlIGxhc3QgZnJhbWUgdG8gY2hlY2sgZm9yIGVycm9yIGNvbmRp dGlvbnMuICAqLwotICAgICAgIHRyYWlsaW5nID0gZmk7Ci1AQCAtMTkxOSw3ICsxOTMyLDcgQEAg aXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2FsX3ZhcnMgKHN0cnVjdCBibG9jayAqYmxvY2ssCi0gCi0g c3RydWN0IHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZV9kYXRhCi0gewotLSAgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lOwotKyAgc3RydWN0IGZyYW1lX2lkIGZyYW1lX2lkOwotICAgaW50IG51bV90 YWJzOwotICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbTsKLSAgIGludCB2YWx1ZXNfcHJpbnRlZDsK LUBAIC0xOTMzLDEyICsxOTQ2LDI4IEBAIGRvX3ByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29u c3QgY2hhciAqcHJpbnRfbmFtZSwKLSAJCQkgICAgIHZvaWQgKmNiX2RhdGEpCi0gewotICAgc3Ry dWN0IHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZV9kYXRhICpwID0gY2JfZGF0YTsKLSsgIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZTsKLSsKLSsgIGZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAocC0+ ZnJhbWVfaWQpOwotKyAgaWYgKGZyYW1lID09IE5VTEwpCi0rICAgIHsKLSsgICAgICB3YXJuaW5n IChfKCJVbmFibGUgdG8gcmVzdG9yZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZyYW1lLiIpKTsKLSsg ICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAocHJp bnRfbmFtZSwgc3ltLCBmcmFtZSwgcC0+c3RyZWFtLCBwLT5udW1fdGFicyk7Ci0rCi0rICAvKiBw cmludF92YXJpYWJsZV9hbmRfdmFsdWUgaW52YWxpZGF0ZXMgRlJBTUUuICAqLwotKyAgZnJhbWUg PSBOVUxMOwotIAotLSAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChwcmludF9uYW1lLCBzeW0s Ci0tCQkJICAgIHAtPmZyYW1lLCBwLT5zdHJlYW0sIHAtPm51bV90YWJzKTsKLSAgIHAtPnZhbHVl c19wcmludGVkID0gMTsKLSB9Ci0gCi0rLyogUHJpbnQgYWxsIHZhcmlhYmxlcyBmcm9tIHRoZSBp bm5lcm1vc3QgdXAgdG8gdGhlIGZ1bmN0aW9uIGJsb2NrIG9mIEZSQU1FLgotKyAgIFByaW50IHRo ZW0gd2l0aCB2YWx1ZXMgdG8gU1RSRUFNIGluZGVudGVkIGJ5IE5VTV9UQUJTLgotKwotKyAgIFRo aXMgZnVuY3Rpb24gd2lsbCBpbnZhbGlkYXRlIEZSQU1FLiAgKi8KLSsKLSBzdGF0aWMgdm9pZAot IHByaW50X2ZyYW1lX2xvY2FsX3ZhcnMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IG51 bV90YWJzLAotIAkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0pCi1AQCAtMTk2MSw3ICsxOTkwLDcg QEAgcHJpbnRfZnJhbWVfbG9jYWxfdmFycyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQg bnVtX3RhYnMsCi0gICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICBjYl9kYXRhLmZyYW1lID0g ZnJhbWU7Ci0rICBjYl9kYXRhLmZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChmcmFtZSk7Ci0gICBj Yl9kYXRhLm51bV90YWJzID0gNCAqIG51bV90YWJzOwotICAgY2JfZGF0YS5zdHJlYW0gPSBzdHJl YW07Ci0gICBjYl9kYXRhLnZhbHVlc19wcmludGVkID0gMDsKLUBAIC0xOTcwLDYgKzE5OTksOSBA QCBwcmludF9mcmFtZV9sb2NhbF92YXJzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIGludCBu dW1fdGFicywKLSAJCQkJIGRvX3ByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSwKLSAJCQkJICZjYl9k YXRhKTsKLSAKLSsgIC8qIGRvX3ByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSBpbnZhbGlkYXRlcyBG UkFNRS4gICovCi0rICBmcmFtZSA9IE5VTEw7Ci0rCi0gICBpZiAoIWNiX2RhdGEudmFsdWVzX3By aW50ZWQpCi0gICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgXygiTm8gbG9jYWxzLlxuIikp OwotIH0KLUBAIC0yMDE2LDYgKzIwNDgsMTEgQEAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ192YXJz IChzdHJ1Y3QgYmxvY2sgKmIsCi0gICAgIH0KLSB9Ci0gCi0rLyogUHJpbnQgYWxsIGFyZ3VtZW50 IHZhcmlhYmxlcyBvZiB0aGUgZnVuY3Rpb24gb2YgRlJBTUUuCi0rICAgUHJpbnQgdGhlbSB3aXRo IHZhbHVlcyB0byBTVFJFQU0uCi0rCi0rICAgVGhpcyBmdW5jdGlvbiB3aWxsIGludmFsaWRhdGUg RlJBTUUuICAqLwotKwotIHN0YXRpYyB2b2lkCi0gcHJpbnRfZnJhbWVfYXJnX3ZhcnMgKHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKLSB7Ci1AQCAtMjAz Niw3ICsyMDczLDcgQEAgcHJpbnRfZnJhbWVfYXJnX3ZhcnMgKHN0cnVjdCBmcmFtZV9pbmZvICpm cmFtZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAK LS0gIGNiX2RhdGEuZnJhbWUgPSBmcmFtZTsKLSsgIGNiX2RhdGEuZnJhbWVfaWQgPSBnZXRfZnJh bWVfaWQgKGZyYW1lKTsKLSAgIGNiX2RhdGEubnVtX3RhYnMgPSAwOwotICAgY2JfZGF0YS5zdHJl YW0gPSBnZGJfc3Rkb3V0OwotICAgY2JfZGF0YS52YWx1ZXNfcHJpbnRlZCA9IDA7Ci1AQCAtMjA0 NCw2ICsyMDgxLDkgQEAgcHJpbnRfZnJhbWVfYXJnX3ZhcnMgKHN0cnVjdCBmcmFtZV9pbmZvICpm cmFtZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKLSAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdf dmFycyAoU1lNQk9MX0JMT0NLX1ZBTFVFIChmdW5jKSwKLSAJCQkgICAgICAgZG9fcHJpbnRfdmFy aWFibGVfYW5kX3ZhbHVlLCAmY2JfZGF0YSk7Ci0gCi0rICAvKiBkb19wcmludF92YXJpYWJsZV9h bmRfdmFsdWUgaW52YWxpZGF0ZXMgRlJBTUUuICAqLwotKyAgZnJhbWUgPSBOVUxMOwotKwotICAg aWYgKCFjYl9kYXRhLnZhbHVlc19wcmludGVkKQotICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJl YW0sIF8oIk5vIGFyZ3VtZW50cy5cbiIpKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktcHJldHR5cHJpbnQuYwotaW5kZXggMGZmN2IzMy4uMWZmOWUwNSAxMDA2NDQKLS0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jCi0rKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuYwotQEAgLTIxOSw2ICsyMTksMjIgQEAgc3Ry dWN0IG51bGxzdHIKLSBzdHJ1Y3Qgc3RyaW5nX3JlcHIgc3RyaW5nXzEgPSB7IHsgIm9uZSIgfSB9 OwotIHN0cnVjdCBzdHJpbmdfcmVwciBzdHJpbmdfMiA9IHsgeyAidHdvIiB9IH07Ci0gCi0rc3Rh dGljIGludAotK2V2YWxfZnVuYyAoaW50IHAxLCBpbnQgcDIsIGludCBwMywgaW50IHA0LCBpbnQg cDUsIGludCBwNiwgaW50IHA3LCBpbnQgcDgpCi0rewotKyAgcmV0dXJuIHAxOwotK30KLSsKLStz dGF0aWMgdm9pZAotK2V2YWxfc3ViICh2b2lkKQotK3sKLSsgIHN0cnVjdCBldmFsX3R5cGVfcyB7 IGludCB4OyB9IGV2YWwxID0geyAxIH0sIGV2YWwyID0geyAyIH0sIGV2YWwzID0geyAzIH0sCi0r CQkJCWV2YWw0ID0geyA0IH0sIGV2YWw1ID0geyA1IH0sIGV2YWw2ID0geyA2IH0sCi0rCQkJCWV2 YWw3ID0geyA3IH0sIGV2YWw4ID0geyA4IH0sIGV2YWw5ID0geyA5IH07Ci0rCi0rICBldmFsMS54 Kys7IC8qIGV2YWwtYnJlYWsgKi8KLSt9Ci0rCi0gaW50Ci0gbWFpbiAoKQotIHsKLUBAIC0zMDks NSArMzI1LDcgQEAgbWFpbiAoKQotICAgCi0gICBuc3R5cGUyID0gbnN0eXBlOwotIAotKyAgZXZh bF9zdWIgKCk7Ci0rCi0gICByZXR1cm4gMDsgICAgICAvKiBicmVhayB0byBpbnNwZWN0IHN0cnVj dCBhbmQgdW5pb24gKi8KLSB9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXByZXR0eXByaW50LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlw cmludC5leHAKLWluZGV4IGE2YzI0MWEuLjIyYWY4M2MgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCi1AQCAtMTIzLDE0ICsxMjMsMTkgQEAgaWYgIVty dW50b19tYWluIF0gdGhlbiB7Ci0gICAgIHJldHVybgotIH0KLSAKLS1nZGJfdGVzdCAiYiBbZ2Ri X2dldF9saW5lX251bWJlciB7YnJlYWsgdG8gaW5zcGVjdH0gJHt0ZXN0ZmlsZX0uYyBdIiBcCi0t ICAgICIuKkJyZWFrcG9pbnQuKiIKLS1nZGJfdGVzdCAiY29udGludWUiICIuKkJyZWFrcG9pbnQu KiIKLS0KLSBzZXQgcmVtb3RlX3B5dGhvbl9maWxlIFtyZW1vdGVfZG93bmxvYWQgaG9zdCAke3Ny Y2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LnB5XQotIAotIGdkYl90ZXN0X25vX291dHB1dCAi cHl0aG9uIGV4ZWNmaWxlICgnJHtyZW1vdGVfcHl0aG9uX2ZpbGV9JykiCi0gCi0rZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImV2YWwtYnJlYWsiXQotK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJldmFsLWJyZWFrIiAiLiogZXZhbC1icmVhayAuKiIKLSsKLStnZGJfdGVz dCAiaW5mbyBsb2NhbHMiICJldmFsOSA9IGV2YWw9PDEyMzQ1Njc4OT4iCi0rCi0rZ2RiX3Rlc3Qg ImIgW2dkYl9nZXRfbGluZV9udW1iZXIge2JyZWFrIHRvIGluc3BlY3R9ICR7dGVzdGZpbGV9LmMg XSIgXAotKyAgICAiLipCcmVha3BvaW50LioiCi0rZ2RiX3Rlc3QgImNvbnRpbnVlIiAiLipCcmVh a3BvaW50LioiCi0rCi0gZ2RiX3Rlc3QgInByaW50IHNzIiAiID0gYT08IGE9PDE+IGI9PCRoZXg+ PiBiPTwgYT08Mj4gYj08JGhleD4+IiBcCi0gICAgICJwcmludCBzcyBlbmFibGVkICMxIgotIAot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weSBi L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQotaW5kZXggNTJmZmQx YS4uYjAyYjkwZiAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0 dHlwcmludC5weQotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50 LnB5Ci1AQCAtMTk5LDYgKzE5OSwxNCBAQCBjbGFzcyBNZW1vcnlFcnJvclN0cmluZzoKLSAgICAg ZGVmIGRpc3BsYXlfaGludCAoc2VsZik6Ci0gICAgICAgICByZXR1cm4gJ3N0cmluZycKLSAKLStj bGFzcyBwcF9ldmFsX3R5cGU6Ci0rICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWwpOgotKyAgICAg ICAgc2VsZi52YWwgPSB2YWwKLSsKLSsgICAgZGVmIHRvX3N0cmluZyhzZWxmKToKLSsJZ2RiLmV4 ZWN1dGUoImJ0IiwgdG9fc3RyaW5nPVRydWUpCi0rICAgICAgICByZXR1cm4gImV2YWw9PCIgKyBz dHIoZ2RiLnBhcnNlX2FuZF9ldmFsKCJldmFsX2Z1bmMgKDEyMzQ1Njc4OSwgMiwgMywgNCwgNSwg NiwgNywgOCkiKSkgKyAiPiIKLSsKLSBkZWYgbG9va3VwX2Z1bmN0aW9uICh2YWwpOgotICAgICAi TG9vay11cCBhbmQgcmV0dXJuIGEgcHJldHR5LXByaW50ZXIgdGhhdCBjYW4gcHJpbnQgdmFsLiIK LSAKLUBAIC0yNzYsNiArMjg0LDggQEAgZGVmIHJlZ2lzdGVyX3ByZXR0eV9wcmludGVycyAoKToK LSAKLSAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15tZW1vcnlfZXJyb3Ik JyldICA9IE1lbW9yeUVycm9yU3RyaW5nCi0gCi0rICAgIHByZXR0eV9wcmludGVyc19kaWN0W3Jl LmNvbXBpbGUgKCdeZXZhbF90eXBlX3MkJyldID0gcHBfZXZhbF90eXBlCi0rCi0gcHJldHR5X3By aW50ZXJzX2RpY3QgPSB7fQotIAotIHJlZ2lzdGVyX3ByZXR0eV9wcmludGVycyAoKQotCgpkaWZm IC0tZ2l0IGEvZ2RiLXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWM5YjhkLi4wMDAwMDAwCi0tLSBhL2dkYi11cHN0cmVh bS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJl Lm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEyLTA3L21zZzAwMjAwLmh0bWwKLVN1YmplY3Q6IFtvYnZd IHRlc3RzdWl0ZTogRml4IGZpc3Npb24tcmVyZWFkLlMgcmVncmVzc2lvbiBieSBtZQotCi1IaSBE b3VnLAotCi1JIGJyb2tlIHRoZSB0ZXN0Y2FzZSBieSBwYXRjaAotCVtwYXRjaCAxLzJdIHRlc3Rj YXNlOiBNYWtlIGl0IC1tMzIgY29tcGF0aWJsZSBbUmU6IFtjb21taXRdIEZpeCByZXJlYWRpbmcg b2YgRFdPIERJRXNdCi0JaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTIt MDcvbXNnMDAwMDkuaHRtbAotCi1UaGUgdGVzdGNhc2UgaXRzZWxmIHVzdWFsbHkgUEFTU2VzIGJ1 dCBzb21ldGltZXMgaXQgZG9lcyBub3QuICBJdCBpcyBtb3JlCi1jbGVhciB3aXRoICdyZWFkZWxm IC13aSc6Ci0gICAgPDdiPiAgIERXX0FUX2ZyYW1lX2Jhc2UgIDogOTcgYnl0ZSBibG9jazogN2Eg MCAxIDcgMTkgOGIgN2UgYWMgY2UgZjEgMjIgOTAgMiBmYiAxIDAgMCAwIDAgMCAwIDAgMCAwIDAg MCAwIDAgNTEgY2QgMSAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAJKERXX09QX2JyZWcxMCAocjEwKTogMDsg KFVua25vd24gbG9jYXRpb24gb3ApKQotCi1DaGVja2VkIGluLgotCi0KLVNvcnJ5LAotSmFuCi0K LQotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMi0wNy9tc2cwMDEwMi5odG1s Ci0KLS0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAxMi8wNy8xMyAyMDoyNjoxMAkx LjMyOTIKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAxMi8wNy8xNSAwODozNDo1 NQkxLjMyOTMKLUBAIC0xLDMgKzEsOSBAQAotKzIwMTItMDctMTUgIEphbiBLcmF0b2NodmlsICA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJRml4IGEgdGVzdGNhc2UgcmVncmVzc2lv biBieSBtZS4KLSsJKiBnZGIuZHdhcmYyL2Zpc3Npb24tcmVyZWFkLlM6IEZpeCB0d28gRFdfRk9S TV9kYXRhOCB0byBiZQotKwlEV19GT1JNX2RhdGE0LgotKwotIDIwMTItMDctMTMgIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAJICAgIERvdWcgRXZhbnMgIDxk amVAZ29vZ2xlLmNvbT4KLSAKLS0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2Zpc3Np b24tcmVyZWFkLlMJMjAxMi8wNy8wMiAyMDoxMDo0OAkxLjMKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL2Zpc3Npb24tcmVyZWFkLlMJMjAxMi8wNy8xNSAwODozNDo1NQkxLjQKLUBA IC0yMzEsNyArMjMxLDcgQEAKLSAJLnVsZWIxMjggMHgxMQkvKiAoRFdfQVRfbG93X3BjKSAqLwot IAkudWxlYjEyOCAweDEJLyogKERXX0ZPUk1fYWRkcikgKi8KLSAJLnVsZWIxMjggMHgxMgkvKiAo RFdfQVRfaGlnaF9wYykgKi8KLS0JLnVsZWIxMjggMHg3CS8qIChEV19GT1JNX2RhdGE4KSAqLwot KwkudWxlYjEyOCAweDYJLyogKERXX0ZPUk1fZGF0YTQpICovCi0gCS51bGViMTI4IDB4MTAJLyog KERXX0FUX3N0bXRfbGlzdCkgKi8KLSAJLnVsZWIxMjggMHgxNwkvKiAoRFdfRk9STV9zZWNfb2Zm c2V0KSAqLwotIAkudWxlYjEyOCAweDFiCS8qIChEV19BVF9jb21wX2RpcikgKi8KLUBAIC0zNTEs NyArMzUxLDcgQEAKLSAJLnVsZWIxMjggMHgxMQkvKiAoRFdfQVRfbG93X3BjKSAqLwotIAkudWxl YjEyOCAweDFmMDEJLyogKERXX0ZPUk1fR05VX2FkZHJfaW5kZXgpICovCi0gCS51bGViMTI4IDB4 MTIJLyogKERXX0FUX2hpZ2hfcGMpICovCi0tCS51bGViMTI4IDB4NwkvKiAoRFdfRk9STV9kYXRh OCkgKi8KLSsJLnVsZWIxMjggMHg2CS8qIChEV19GT1JNX2RhdGE0KSAqLwotIAkudWxlYjEyOCAw eDQwCS8qIChEV19BVF9mcmFtZV9iYXNlKSAqLwotIAkudWxlYjEyOCAweDE4CS8qIChEV19GT1JN X2V4cHJsb2MpICovCi0gCS5ieXRlCTAKLQoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNw ZWMKaW5kZXggOWIwOTE0NS4uODZkMmE1NiAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2Ri LnNwZWMKQEAgLTMwLDEyICszMCwxMiBAQCBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogIyBTZXQg dmVyc2lvbiB0byBjb250ZW50cyBvZiBnZGIvdmVyc2lvbi5pbi4KICMgTk9URTogdGhlIEZTRiBn ZGIgdmVyc2lvbnMgYXJlIG51bWJlcmVkIE4uTSBmb3Igb2ZmaWNpYWwgcmVsZWFzZXMsIGxpa2Ug Ni4zCiAjIGFuZCwgc2luY2UgSmFudWFyeSAyMDA1LCBYLlkuWi5kYXRlIGZvciBkYWlseSBzbmFw c2hvdHMsIGxpa2UgNi4zLjUwLjIwMDUwMTEyICMgKGRhaWx5IHNuYXBzaG90IGZyb20gbWFpbGlu ZSksIG9yIDYuMy4wLjIwMDQwMTEyIChoZWFkIG9mIHRoZSByZWxlYXNlIGJyYW5jaCkuCi0lZ2xv YmFsIHNuYXAgMjAxMjA3MTQKLVZlcnNpb246IDcuNC41MC4le3NuYXB9CislZ2xvYmFsIHNuYXAg MjAxMjA4MDEKK1ZlcnNpb246IDcuNC45MS4le3NuYXB9CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlz IGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1 cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5k ZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMTYlez9kaXN0fQor UmVsZWFzZTogMTclez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4 Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBh bmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluCiBHcm91cDogRGV2ZWxvcG1lbnQv RGVidWdnZXJzCkBAIC0yNjQsNyArMjY0LDcgQEAgUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODkt ZXhlYy1mcm9tLXB0aHJlYWQtdGVzdC5wYXRjaAogCiAjIEJhY2twb3J0ZWQgZml4dXBzIHBvc3Qg dGhlIHNvdXJjZSB0YXJiYWxsLgogI1hkcm9wOiBKdXN0IGJhY2twb3J0cy4KLVBhdGNoMjMyOiBn ZGItdXBzdHJlYW0ucGF0Y2gKKyNQYXRjaDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVz dGNhc2UgZm9yIFBQQyBQb3dlcjYvREZQIGluc3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMw MDAwKS4KICM9ZmVkb3JhdGVzdCtwcGMKQEAgLTU0OCwxMCArNTQ4LDYgQEAgUGF0Y2g2NjE6IGdk Yi1zdGFsZS1mcmFtZV9pbmZvLnBhdGNoCiAjPXB1c2grd29yazogQnV0IHB1c2ggaXQgdG8gZ2xp YmMuCiBQYXRjaDY5MDogZ2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoCiAKLSMgRGlz YWJsZSAtbG1jaGVjayBpbiB0aGUgZGV2ZWxvcG1lbnQgYnVpbGRzLgotIz1mZWRvcmEKLVBhdGNo Njk0OiBnZGItZGlzYWJsZS1tY2hlY2sucGF0Y2gKLQogIyBJbmNsdWRlIHRlc3RjYXNlIGZvciBg VW5hYmxlIHRvIHNlZSBhIHZhcmlhYmxlIGluc2lkZSBhIG1vZHVsZSAoWExGKScgKEJaIDgyMzc4 OSkuCiAjPWZlZG9yYXRlc3QKICMrcHBjCkBAIC01NjUsMTAgKzU2MSw2IEBAIFBhdGNoNzAzOiBn ZGItcmhiei04MTgzNDMtc2V0LXNvbGliLWFic29sdXRlLXByZWZpeC10ZXN0Y2FzZS5wYXRjaAog Iz1mZWRvcmEKIFBhdGNoNzE2OiBnZGItbWluaWRlYnVnaW5mby5wYXRjaAogCi0jIEZpeCBhbm90 aGVyIHN0YWxlIGZyYW1lX2luZm8gKiAoUFIgMTE5MTQsIGxpa2UgUFIgMTM4NjYpLgotIz1wdXNo Ci1QYXRjaDcxODogZ2RiLXN0YWxlLWZyYW1lX2luZm8tcHl0aG9uLnBhdGNoCi0KICVpZiAwJXsh P3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNgogIyBSTF9TVEFURV9GRURPUkFfR0RCIHdvdWxkIG5v dCBiZSBmb3VuZCBmb3I6CiAjIFBhdGNoNjQyOiBnZGItcmVhZGxpbmU2Mi1hc2stbW9yZS1yaC5w YXRjaApAQCAtNzYzLDcgKzc1NSw3IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMg Z2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKICMgTWF0Y2ggdGhlIEZlZG9yYSdzIHZlcnNpb24g aW5mby4KICVwYXRjaDIgLXAxCiAKLSVwYXRjaDIzMiAtcDEKKyNwYXRjaDIzMiAtcDEKICVwYXRj aDM0OSAtcDEKICVwYXRjaDEgLXAxCiAlcGF0Y2gzIC1wMQpAQCAtODY3LDExICs4NTksOSBAQCBy bSAtZiBnZGIvanYtZXhwLmMgZ2RiL20yLWV4cC5jIGdkYi9vYmpjLWV4cC5jIGdkYi9wLWV4cC5j CiAlcGF0Y2g2NTcgLXAxCiAlcGF0Y2g2NjEgLXAxCiAlcGF0Y2g2OTAgLXAxCi0lcGF0Y2g2OTQg LXAxCiAlcGF0Y2g2OTggLXAxCiAlcGF0Y2g3MDMgLXAxCiAlcGF0Y2g3MTYgLXAxCi0lcGF0Y2g3 MTggLXAxCiAKICVwYXRjaDM5MyAtcDEKICVpZiAwJXshP2VsNToxfSB8fCAwJXs/c2NsOjF9CkBA IC0xMzY2LDYgKzEzNTYsMTAgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJn ZXRfY3B1fSIgPT0gIm5vYXJjaCIKIAogJWNoYW5nZWxvZworKiBXZWQgQXVnICAxIDIwMTIgSmFu IEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy40LjkxLjIwMTIwODAx LTE3CistIFJlYmFzZSB0byBGU0YgR0RCIDcuNC45MS4yMDEyMDgwMS4KKy0gW2R3el0gUmViYXNl IGl0IGZyb20gRlNGIEdEQiBIRUFELgorCiAqIFRodSBKdWwgMTkgMjAxMiBGZWRvcmEgUmVsZWFz ZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSA3LjQuNTAu MjAxMjA3MTQtMTYKIC0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtp L0ZlZG9yYV8xOF9NYXNzX1JlYnVpbGQKIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2Vz CmluZGV4IDRhZTY1OWMuLmVjMGYyMjEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNl cwpAQCAtMSwyICsxLDIgQEAKIDA0ZTVjNGIxYjllNjMzNDIyY2M0ODk5MGZlNjE5NThkICBsaWJz dGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotMTE1YTZhNTIxYWVmMmNlMzA2ZmQzZTdm YWRkNzljMDIgIGdkYi03LjQuNTAuMjAxMjA3MTQudGFyLmJ6MgorZWQ0MmVlOTViN2ExMTQ1NTEw OTRjODRlZTQxOTI2NDMgIGdkYi03LjQuOTEuMjAxMjA4MDEudGFyLmJ6Mgo=