Re: PATCH v2: Arla 0.90 on Linux 2.6.34 to 4.4
Bo Branten <[email protected]> Sat, 16 Jan 2016 14:47:29 +0100 (CET)
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---276651502-971852446-1452952049=:16393 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v2: Arla 0.90 on Linux 2.6.34 to 4.4 Two small corrections in the use of vfs_path_lookup from v3.12 and iov_iter_count from v4.1. With this patch it should be possible to try nnpfs on all Linux kernels up to 4.4. Bo Branten ---276651502-971852446-1452952049=:16393 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v2-arla-0.90-for-linux-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v2-arla-0.90-for-linux-4.4 ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2luY2x1 ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBm cy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC9u bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaAkyMDA2LTEwLTI0IDE4 OjMzOjMwLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQu NC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaAkyMDE2LTAxLTEy IDE5OjI5OjUwLjUyMjA3MjA4NCArMDEwMA0KQEAgLTExMyw4ICsxMTMsMTMg QEAgc3RydWN0IG5ucGZzX2F0dHIgew0KICAgICB1aW50MzJfdAkJeGFfbmxp bms7DQogICAgIHVpbnQzMl90CQl4YV90eXBlOw0KIA0KKyNpZiAoZGVmaW5l ZChfX0tFUk5FTF9fKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM X1ZFUlNJT04oMywxNCwwKSkNCisgICAga3VpZF90CQl4YV91aWQ7DQorICAg IGtnaWRfdAkJeGFfZ2lkOw0KKyNlbHNlDQogICAgIHVpbnQzMl90CQl4YV91 aWQ7DQogICAgIHVpbnQzMl90CQl4YV9naWQ7DQorI2VuZGlmDQogDQogICAg IHVpbnQzMl90CQl4YV9hdGltZTsNCiAgICAgdWludDMyX3QJCXhhX210aW1l Ow0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2lu Y2x1ZGUvbm5wZnMvbm5wZnNfYmxvY2tzLmggYXJsYS1mb3ItbGludXgtNC40 L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfYmxvY2tzLmgNCi0tLSBhcmxh LTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2 LTEwLTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9y LWxpbnV4LTQuNC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5o CTIwMDctMDEtMjQgMTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1 ICsxLDUgQEANCiAvKg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBT dG9ja2hvbG1zIFVuaXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1 LTIwMDcsIFN0b2NraG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xt IFVuaXZlcnNpdHksIFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0 cyByZXNlcnZlZC4NCiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBP U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDog bm5wZnNfYmxvY2tzLmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wg RXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcv MDEvMjQgMTc6MDk6MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBG U19OT19JTkRFWCAgIDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2Rl ZmluZSBOTlBGU19OT19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1t eSBvZmZzZXQsIG5vIGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNI RV9GSUxFX1BBVEggICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBO TlBGU19DQUNIRV9ESVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmlu ZSBOTlBGU19DQUNIRV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsx KQ0KKyNkZWZpbmUgTk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAy eCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5Q RlNfQ0FDSEVfRklMRV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjEN CisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxs eCINCisNCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZT X0NBQ0hFX0ZJTEVfRElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxP Q0tfUEFUSA0KKyNkZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5Q RlNfQ0FDSEVfRklMRV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NB Q0hFX1BBVEhfU0laRSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11 cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBm cy9ubnBmc19tZXNzYWdlLmggYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2lu Y2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oDQotLS0gYXJsYS0wLjkwL25u cGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDYtMTAtMjQg MTg6MzM6MzIuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgt NC40L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMTYt MDEtMTQgMDA6MjY6MDQuMTI2MDE1MTM2ICswMTAwDQpAQCAtMzEsNyArMzEs NyBAQA0KICAqIFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5w ZnNfbWVzc2FnZS5oLHYgMS42MSAyMDA2LzEwLzI0IDE2OjMzOjMyIHRvbCBF eHAgJCAqLw0KKy8qICRJZDogbm5wZnNfbWVzc2FnZS5oLHYgMS42MiAyMDA5 LzAyLzI0IDIwOjIwOjU1IHRvbCBFeHAgJCAqLw0KIA0KICNpZm5kZWYgX3ht c2dfaA0KICNkZWZpbmUgX3htc2dfaA0KQEAgLTUyLDcgKzUyLDExIEBAIHR5 cGVkZWYgdWludDE2X3Qgbm5wZnNfcmlnaHRzOw0KICAqIFRoZSBubnBmc19j cmVkLCBpZiBwYWcgPT0gMCwgdXNlIHVpZCANCiAgKi8NCiB0eXBlZGVmIHN0 cnVjdCBubnBmc19jcmVkIHsNCisjaWYgKGRlZmluZWQoX19LRVJORUxfXykg JiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTQs MCkpDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCiAgICAgdWludDMyX3Qg dWlkOw0KKyNlbmRpZg0KICAgICBubnBmc19wYWdfdCBwYWc7DQogfSBubnBm c19jcmVkOw0KIA0KQEAgLTEwNiw3ICsxMTAsNyBAQCB0eXBlZGVmIHN0cnVj dCBubnBmc19ibG9ja19oYW5kbGUgew0KIA0KIC8qIG5ucGZzX25vZGUuZmxh Z3MNCiAgKiBUaGUgbG93ZXIgMTYgYml0IGZsYWdzIGFyZSByZXNlcnZlZCBm b3IgY29tbW9uIG5ucGZzIGZsYWdzDQotICogVGhlIHVwcGVyIDE2IGJpdCBm bGFncyBhcmUgcmVzZXJ2ZWQgZm9yIG9wZXJ0aW5nIHN5c3RlbSBkZXBlbmRh bnQNCisgKiBUaGUgdXBwZXIgMTYgYml0IGZsYWdzIGFyZSByZXNlcnZlZCBm b3Igb3BlcmF0aW5nIHN5c3RlbSBkZXBlbmRlbnQNCiAgKiBmbGFncy4NCiAg Ki8NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBm cy9saW51eC9ubnBmcy9ubm5wZnMuaCBhcmxhLWZvci1saW51eC00LjQvbm5w ZnMvbGludXgvbm5wZnMvbm5ucGZzLmgNCi0tLSBhcmxhLTAuOTAvbm5wZnMv bGludXgvbm5wZnMvbm5ucGZzLmgJMjAwMi0wOS0wNyAxMjo0NzoxNy4wMDAw MDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGlu dXgvbm5wZnMvbm5ucGZzLmgJMjAwMi0wOS0wNyAxMjo0NzoxNy4wMDAwMDAw MDAgKzAyMDANCkBAIC0xLDQgKzEsNCBAQA0KIC8qICRJZDogbm5ucGZzLmgs diAxLjIgMjAwMi8wOS8wNyAxMDo0NzoxNyBsaGEgRXhwICQgKi8NCi0vKiAk U291cmNlOiAvYWZzL3N0YWNrZW4ua3RoLnNlL3NyYy9Tb3VyY2VSZXBvc2l0 b3J5L2FybGEvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQor LyogJFNvdXJjZTogL1VzZXJzL2JvL3RtcC9BcmxhU291cmNlUmVwb3NpdG9y eS9hcmxhL25ucGZzL2xpbnV4L25ucGZzL25ubnBmcy5oLHYgJCAqLw0KIA0K ICNkZWZpbmUgTk5OUEZTIDINCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oIGFybGEtZm9y LWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oDQotLS0g YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0x MC0yNCAxODozMzo0OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1s aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAx LTEzIDIyOjU3OjA2LjM4NzY5MzMzOSArMDEwMA0KQEAgLTg0LDggKzg0LDEz IEBAIHN0cnVjdCBubnBmcyB7DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2Fj aGVyb290OyAvKiBzaW1wbGlmeSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0K ICAgICBzdHJ1Y3QgZGVudHJ5ICpjYWNoZWRpcjsNCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICB1 aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkg Ki8NCiAgICAgZ2lkX3QgZ2lkOw0KKyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7 IC8qIGtlZXAgdHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCisgICAg a2dpZF90IGdpZDsNCisjZW5kaWYNCiANCiAgICAgc3RydWN0IHsNCiAJaW50 IHJlY3Vyc2U7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAv bm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oIGFybGEtZm9yLWxpbnV4 LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgNCi0tLSBhcmxh LTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oCTIwMDctMDEt MDggMTQ6NTI6NDkuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGlu dXgtNC40L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDE2LTAx LTEzIDIzOjAxOjEwLjE3ODcwODAzNyArMDEwMA0KQEAgLTM0LDcgKzM0LDcg QEANCiAgKiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZz X2xvY2wuaCx2IDEuNzcgMjAwNy8wMS8wOCAxMzo1Mjo0OSB0b2wgRXhwICQg Ki8NCisvKiAkSWQ6IG5ucGZzX2xvY2wuaCx2IDEuNzggMjAxMC8wOC8wOCAy MDo0MzowNiB0b2wgRXhwICQgKi8NCiANCiAjaWZkZWYgSEFWRV9DT05GSUdf SA0KICNpbmNsdWRlIDxjb25maWcuaD4NCkBAIC01MSw3ICs1MSw5IEBADQog I2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGludXgvc3Ry aW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAjaW5j bHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8 bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDE1ICsxNDAsMTYgQEAg dHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNfZmV0Y2hf cm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KLSNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQog bm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl LA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQog CSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpOw0KICNl bHNlDQotc3RydWN0IHN1cGVyX2Jsb2NrICoNCi1ubnBmc19nZXRfc2IgKHN0 cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KLQkgICAgICBpbnQg ZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKTsNCitz dHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3Rl bV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3QgY2hh ciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSk7DQogI2VuZGlmDQog DQogZXh0ZXJuIHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyBubnBmc19kZW50 cnlfb3BlcmF0aW9uczsNCkBAIC0yMDAsMTYgKzIwMywyNSBAQCBubnBmc19p d3JpdGVjb3VudCAoc3RydWN0IGlub2RlICppbm9kZSkNCiAgKiBIZWxwIGZ1 bmN0aW9uIHRvIHJlYWQgdGhlIGRlbnRyeS0+ZF9jb3VudCBhIHBvcnRhYmxl IHdheQ0KICAqLw0KIA0KKy8qI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOCkqLw0KIHN0YXRpYyBpbmxpbmUgaW50DQog bm5wZnNfZGNvdW50IChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQor LyojZWxzZQ0KK3N0YXRpYyBpbmxpbmUgaW50DQorbm5wZnNfZGNvdW50IChz dHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmKi8NCiB7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAg ICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRfY291bnQpOw0KKyNl bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs MCkNCisgICAgcmV0dXJuIGF0b21pY19yZWFkKChjb25zdCBhdG9taWNfdCop JmRlbnRyeS0+ZF9jb3VudCk7DQorI2Vsc2UNCisgICAgcmV0dXJuIGRfY291 bnQoZGVudHJ5KTs7DQorI2VuZGlmDQogfQ0KIA0KIGV4dGVybiANCi0jaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkN CiBjb25zdA0KLSNlbmRpZg0KIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJh dGlvbnMgbm5wZnNfYW9wczsNCiANCiAjaWZuZGVmIGxpc3RfZm9yX2VhY2gN CkBAIC0yMzcsNyArMjQ5LDEyIEBAIG5ucGZzX2ZpeHVwX3N5c2NhbGxfbG9z c2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5lIG5ucGZzX2Rldl90 IGRldl90DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOCkNCiAjZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNo ZWQoZCkgaGxpc3RfdW5oYXNoZWQoZCkNCisjZWxzZQ0KKyNkZWZpbmUgbm5w ZnNfZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF9ibF91bmhhc2hlZChkKQ0K KyNlbmRpZg0KIA0KICNkZWZpbmUgTk5QRlNfTk9PUCAgICAgIHdoaWxlKDAp e30NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBm cy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmggYXJsYS1mb3ItbGludXgtNC40 L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaA0KLS0tIGFybGEtMC45 MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAwNi0xMi0xMSAx NzoyOTozOS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC00 LjQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oCTIwMTAtMDgtMDgg MjI6NDM6MDcuMDAwMDAwMDAwICswMjAwDQpAQCAtNTQsNyArNTQsNyBAQCBl eHRlcm4gdWludDMyX3Qgbm5wZnNfYmxvY2tzaXplYml0czsNCiAgKiBmbGFn cy4NCiAgKi8NCiANCi0jZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEw MDAwICAgLyogbm9kZSBpcyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrICov DQorI2RlZmluZSBOTlBGU19OT0RFX0lQVVQJMHgwMDAxMDAwMCAgIC8qIG5v ZGUgaXMgaW4gaXB1dCgpLCBhdm9pZCBkZWFkbG9jay4gQ2FuIGJlIHJlbW92 ZWQ/ICovDQogDQogI2RlZmluZSBYTl9IQVNIU0laRSAxMDA5DQogI2RlZmlu ZSBYTl9DTEVBTlVQX0lURVJTIDEyOQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50 eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jIGFybGEt Zm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0KLS0t IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAx LTA4IDE0OjI0OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxp bnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTE2 IDE0OjE2OjQ5Ljk5NDQzNzgxMyArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEAN CiAgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0v KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6 MjQgdG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEu NiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNs dWRlIDxubnBmcy9ubnBmc19sb2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25u cGZzX2ZzLmg+DQpAQCAtNDMsNiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGlu dXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkN CitleHRlcm4gaW50IHZmc19wYXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICos IHN0cnVjdCB2ZnNtb3VudCAqLA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5z aWduZWQgaW50LCBzdHJ1Y3QgcGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0K ICAqIHJldHVybiB0cnVlIGlmIGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpA QCAtMjkwLDcgKzI5NSwxMyBAQCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0 IG5ucGZzX25vZGUgKm5vDQogICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZf bWFwcGluZy0+aG9zdDsNCiANCiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUt PmlfbXV0ZXgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDgsMCkNCiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9k ZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9k ZV9uZXdzaXplX29rKGJhY2tub2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAg ICBpZighcmV0KQ0KKyAgICAgICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9k ZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5s b2NrKCZiYWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxwX2Ns b3NlKGJhY2tmaWxlLCBOVUxMKTsNCkBAIC0zMTgsMTAgKzMyOSwyNiBAQCBu bnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAg IHN0cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2Rl KTsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RF KG5vZGUpOw0KICAgICBpbnQgZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAg ICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90 IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAg a3VpZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRp Zg0KICAgICBpbnQgcmV0Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3Jl ZCAqb2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVk Ow0KKyNlbmRpZg0KKw0KKyAgICAodm9pZClzYXZldWlkOw0KKyAgICAodm9p ZClzYXZlZ2lkOw0KIA0KICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJV R19PTihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0z NDYsMjEgKzM3MywzOCBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm c19ub2RlICpub2RlDQogICAgIEJVR19PTighbm5wZnNwLT5jYWNoZWRpciB8 fCAhbm5wZnNwLT5jYWNoZXJvb3QpOw0KICAgICANCiAgICAgLyogdXNlIHRo ZSBuZnNkIHRyaWNrIHRvIGdpdmUgdXMgYWNjZXNzICovDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg IHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1 cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+ dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0K LSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAg ICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBu ZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAgIG5kLmRlcHRoID0gMDsN Ci0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0gICAgaWYgKGZsYWdzICYg T19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBfUEFSRU5UOw0KLSAgICAN Ci0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFtZSwgJm5kKTsNCisjZWxz ZQ0KKyAgICBzYXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0KKyAgICBzYXZl Z2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyAgICBvdmVycmlkZV9jcmVkID0g cHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBO VUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRl X2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2Ny ZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3Zl cnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0K KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu ZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h bWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDog MCwNCisJCQkgICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNf cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv b3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQg PyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYN CiAgICAgaWYgKHJldCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5k YXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCkBAIC0zODcsMTYgKzQz MSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpu b2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8q IFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAq Lw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0 ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE5LDApDQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxs IHRvIGtlcm5fcGF0aF9jcmVhdGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVu dCBvcHRpb25hbD8gKi8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vy bl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkN CisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3Bh dGhfY3JlYXRlKCksIGlzIHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ ICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVh dGUoQVRfRkRDV0QsIE5VTEwsICZwYXRoLCAwKTsJDQorI2VuZGlmDQogCWlm IChJU19FUlIoZGVudHJ5KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihkZW50 cnkpOw0KIAl9IGVsc2Ugew0KLQkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5k ZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQp Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCisJICAgIHJldCA9IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnkt PmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNl bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCisJICAgIC8qIFRPRE86IHNob3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0 byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwgYmUgMCBvciAxPyAqLw0K KwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9k ZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDApOw0KKyNlbHNlDQorCSAg ICAvKiBUT0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2Ny ZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJl dCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwg U19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCiAJICAgIGRwdXQoZGVu dHJ5KTsNCiAJfQ0KIA0KLQltdXRleF91bmxvY2soJm5kLmRlbnRyeS0+ZF9p bm9kZS0+aV9tdXRleCk7DQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor CW11dGV4X3VubG9jaygmbmQucGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0 ZXgpOw0KKwlwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhf dW5sb2NrKCZwYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBh dGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkg ICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVk OiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MTAsMTIgKzQ3NSwy NSBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl DQogCSAgICByZXQgPSBubnBmc19ibG9ja19leHRlbmQobm9kZSwgb2Zmc2V0 KTsNCiAJfQ0KICAgICB9IGVsc2Ugew0KLQlzdHJ1Y3QgZmlsZSAqZiA9IGRl bnRyeV9vcGVuKG5kLmRlbnRyeSwgbmQubW50LCBmbGFncyk7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisJ c3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwg bmQucGF0aC5tbnQsIGZsYWdzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisgICAgICAgIHN0cnVjdCBm aWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgu bW50LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJc3RydWN0 IHBhdGggdG1wX3BhdGggPSB7IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRy eSA9IG5kLnBhdGguZGVudHJ5IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAq ZiA9IGRlbnRyeV9vcGVuKCZ0bXBfcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3Jl ZCgpKTsNCisjZWxzZQ0KKyAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50 cnlfb3BlbigmcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZW5k aWYNCiAJaWYgKElTX0VSUihmKSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihm KTsNCiAJICAgIHByaW50aygibm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBm YWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNf ZGVidWdfb29wcygpOw0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN CisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgcGF0 aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkgICAgKmZp bGUgPSBmOw0KIAl9DQpAQCAtNDI0LDggKzUwMiwxMyBAQCBubnBmc19ibG9j a19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIC8qIHBhdGhf cmVsZWFzZSgpIGlzIHVzdWFsbHkgaGFuZGxlZCBvbiBjbG9zZSAqLw0KIA0K ICBvdXQ6DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQogICAgIGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsN CiAgICAgY3VycmVudC0+ZnNnaWQgPSBzYXZlZ2lkOw0KKyNlbHNlDQorICAg IHJldmVydF9jcmVkcyhvbGRfY3JlZCk7DQorICAgIHB1dF9jcmVkKG92ZXJy aWRlX2NyZWQpOw0KKyNlbmRpZg0KIA0KICAgICByZXR1cm4gcmV0Ow0KIH0N CmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51 eC9ubnBmc19jb21tb24uYyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGlu dXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgv bm5wZnNfY29tbW9uLmMJMjAwNi0xMi0xMSAxNzozMTo0Ni4wMDAwMDAwMDAg KzAxMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGludXgvbm5w ZnNfY29tbW9uLmMJMjAxNi0wMS0xNCAxNjoxNTowMC4zNDc0NDc2NTcgKzAx MDANCkBAIC0xMTIsMTAgKzExMiwxNSBAQCBubnBmc19wcmludF9hbGlhc2Vz KGNvbnN0IHN0cnVjdCBpbm9kZSAqDQogdm9pZA0KIG5ucGZzX3ByaW50X2Fs aWFzZXNfcmVhbChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp DQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFsaWFzOw0KKyNlbGlmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBz dHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQorI2VuZGlmDQogICAgIHN0cnVj dCBkZW50cnkgKmRlbnRyeTsNCiAgICAgaW50IGJhaWxvdXQgPSAxMDA7DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KICAgICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAg ICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KIAlpZiAo LS1iYWlsb3V0IDwgMCkgew0KQEAgLTEzMSw2ICsxMzYsMjYgQEAgbm5wZnNf cHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbg0KIAl9DQogCWFs aWFzID0gYWxpYXMtPm5leHQ7DQogICAgIH0NCisjZWxzZQ0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAg aGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5p X2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2Vh Y2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7 DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAm aW5vZGUtPmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKwlp ZiAoLS1iYWlsb3V0IDwgMCkgew0KKwkgICAgcHJpbnRrKCIgLi4uIik7DQor CSAgICBicmVhazsNCisJfQ0KKwlpZiAoZGVudHJ5KSB7DQorCSAgICBwcmlu dGsoIiAlLipzKCVwKSIsIChpbnQpZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJ ICAgZGVudHJ5LT5kX25hbWUubmFtZSwgZGVudHJ5KTsNCisJICAgIGlmIChu bnBmc19kX2VudHJ5X3VuaGFzaGVkKCZkZW50cnktPmRfaGFzaCkpDQorCQlw cmludGsoIih1bmhhc2hlZCkiKTsNCisJfQ0KKyAgICB9DQorI2VuZGlmDQog ICAgIHByaW50aygiXG4iKTsNCiB9DQogDQpAQCAtMTQ2LDcgKzE3MSwxMSBA QCBubnBmc19wcmludF9jaGlsZHJlbihjb25zdCBzdHJ1Y3QgZGVudHJ5DQog DQogICAgIHdoaWxlIChzdWJkaXJzICE9ICZkZW50cnktPmRfc3ViZGlycykg ew0KIAlzdHJ1Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog CXN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVj dCBkZW50cnksIGRfdS5kX2NoaWxkKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVu dHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBk X2NoaWxkKTsNCisjZW5kaWYNCiANCiAJcHJpbnRrKCIgJS4qcyglcCkiLCAo aW50KWNoaWxkLT5kX25hbWUubGVuLA0KIAkgICAgICAgY2hpbGQtPmRfbmFt ZS5uYW1lLCBjaGlsZCk7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxh LTAuOTAvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMgYXJsYS1mb3ItbGludXgt NC40L25ucGZzL2xpbnV4L25ucGZzX2Rldi5jDQotLS0gYXJsYS0wLjkwL25u cGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQgMTg6MzM6MzYuMDAw MDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xp bnV4L25ucGZzX2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6MTkuMjUwNDk1ODIw ICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZzX2ludmFsaWRhdGVf YWxsKHN0cnVjdCBubnBmcyAqbm5wZnMNCiAgICAgTk5QRlNERUIoWERFQk5P REUsICgiZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRpbmdcbiIpKTsNCiAN CiAgICAgc2hyaW5rX2RjYWNoZV9zYihubnBmcy0+c2IpOw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzcpDQogICAg IGludmFsaWRhdGVfaW5vZGVzKG5ucGZzLT5zYik7DQorI2VuZGlmDQogICAg IA0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19u b2RlcyBkb25lXG4iKSk7DQogfQ0KQEAgLTM3NCw3ICszNzYsMTEgQEAgbm5w ZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2RlICogaW5vZGUsIHN0cg0KIHN0YXRp YyBzc2l6ZV90DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwg Y2hhciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykNCiB7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRf aW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBubnBmc19kZXZfdCBkZXYg PSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vu ZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0gJm5ucGZzW01JTk9S KGRldildOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAqZmlyc3Q7DQogICAg IGludCByZXQgPSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5LDggKzQ0NSwxMiBA QCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QNCiAN CiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZ3cml0ZVxuIikp Ow0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxOSwwKQ0KICAgICBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZS0+aV9yZGV2Ow0KLSAgICBubnBmc3AgPSAmbm5wZnNbTUlOT1IoZGV2 KV07DQorI2Vsc2UNCisgICAgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KKyAgICAgbm5wZnNwID0gJm5u cGZzW01JTk9SKGRldildOw0KIA0KICAgICBkb3duKCZubnBmc3AtPmNoYW5u ZWxfc2VtKTsNCiAgICAgaWYgKG5ucGZzcC0+c3RhdHVzICYgTk5QRlNfREVW V1JJVEUpIHsNCkBAIC01MDUsMTkgKzUxNSwzNyBAQCBubnBmc19kZXZ3cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QNCiAvKg0KICAqIE5vdCB1c2Vk Lg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX2RldmlvY3RsKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkgICAg ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vs c2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9ja2VkX2RldmlvY3RsKHN0 cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5zaWduZWQgaW50IGNtZCwg dW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIE5O UEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQsIGZs YWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUtPmlfcmRldiwgZmlsZS0+ Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNERUIoWERFQkRFViwgKCJu bnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJCSAg ICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBmaWxlLT5m X2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNERUIoWERFQkRFViwgKCJu bnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJCSAg ICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZp bGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAgcmV0dXJuIC1FSU5WQUw7 DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQNCiBubnBmc19kZXZwb2xs KHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQ0KIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9 IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1Io ZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAgICANCkBAIC05NTMsNyAr OTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcyA9 IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdyaXRlOgkJ bm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZwb2xsLA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9jdGwsDQorI2Vsc2UNCisg ICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9ja2VkX2RldmlvY3RsLA0K KyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNfZGV2Y2xvc2UsDQogICAg IG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpAQCAtOTY4LDggKzEwMDAs MTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0cXVl dWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNfaW5p dHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZz W2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uaW5h Y3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uY2hhbm5lbF9z ZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5hY3RpdmVf c2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tpXS5jaGFubmVsX3NlbSwg MSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFEKCZubnBmc1tpXS5pbmFj dGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVzID0gMDsNCiAgICAgfQ0K ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4 L25ucGZzX2lub2Rlb3BzLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xp bnV4L25ucGZzX2lub2Rlb3BzLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGlu dXgvbm5wZnNfaW5vZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAw MDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51 eC9ubnBmc19pbm9kZW9wcy5jCTIwMTYtMDEtMTUgMTI6NDQ6NTYuOTIyODk2 NjM5ICswMTAwDQpAQCAtNDAsMjUgKzQwLDQxIEBADQogI2luY2x1ZGUgPG5u cGZzL25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kaXJl bnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisj aW5jbHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZt dHMuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KICNpbmNsdWRlIDxs aW51eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3Mu aD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O KDQsMSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8uaD4NCisjZW5kaWYNCiAj aW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGFzbS9m Y250bC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZz X2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2LzEyLzExIDE2OjM1OjI2IHRvbCBF eHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIy NiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0K IA0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUg KmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5w ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0 IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25u cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln bmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitp bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0K KyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qg c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMg dm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp Ow0KQEAgLTEwNSw3ICsxMjEsNyBAQCBubnBmc192bWFfY2xvc2UgKHN0cnVj dCB2bV9hcmVhX3N0cnVjdCAqDQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3Qgdm1f b3BlcmF0aW9uc19zdHJ1Y3Qgbm5wZnNfZmlsZV92bV9vcHMgPSB7DQotICAg IC5ub3BhZ2UJPSBmaWxlbWFwX25vcGFnZSwNCisgICAgLmZhdWx0ICAgICAg PSBmaWxlbWFwX2ZhdWx0LA0KICAgICAuY2xvc2UJPSBubnBmc192bWFfY2xv c2UsDQogfTsNCiANCkBAIC0xMzQsMTIgKzE1MCwxNCBAQCBubnBmc19wcmlu dF9wYXRoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiAgKg0KICAqLw0KIA0K KyNpZiAwDQogdm9pZA0KIG5ucGZzX3ByaW50X2xvY2soY2hhciAqcywgc3Ry dWN0IHNlbWFwaG9yZSAqc2VtKQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQkxP Q0ssICgibG9jazogJXMgc2VtOiAlcCBjb3VudDogJWRcbiIsDQogCQkgICAg ICBzLCBzZW0sIChpbnQpYXRvbWljX3JlYWQoJnNlbS0+Y291bnQpKSk7DQog fQ0KKyNlbmRpZg0KIA0KIC8qDQogICoNCkBAIC0xODUsNyArMjAzLDcgQEAg bm5wZnNfZF9pcHV0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydQ0KICAg ICBOTlBGU0RFQihYREVCVk5PUFMsDQogCSAgICAgKCJubnBmc19kX2lwdXQ6 IGRlbnRyeSAlcCwgaW5vZGUgJXBcbiIsIGRlbnRyeSwgaW5vZGUpKTsNCiAg ICAgDQotICAgIGlmIChub2RlLT5mbGFncyAmIE5OUEZTX05PREVfSVBVVCkg LyogWFhYIGxvY2tpbmcgKi8NCisgICAgaWYgKG5vZGUtPmZsYWdzICYgTk5Q RlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2luZy4gbmV2ZXIgc2V0PyAqLw0K IAlubnBmc19pcmVsZShpbm9kZSk7DQogICAgIGVsc2UNCiAJaXB1dChpbm9k ZSk7DQpAQCAtMjEyLDggKzIzMCwxMyBAQCBubnBmc19pbm9kZV92YWxpZChz dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIG5ucGZzX2xvb2t1cCBub3cgcmV0 dXJucyBhIGRlbnRyeS4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHN0cnVjdCBk ZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQor I2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQorbm5wZnNfbG9va3Vw IChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1 bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg bm5wZnNfbWVzc2FnZV9nZXRub2RlIG1zZzsNCiAgICAgc3RydWN0IG5ucGZz ICpubnBmc3A7DQpAQCAtMjQwLDcgKzI2MywxMSBAQCBubnBmc19sb29rdXAg KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QNCiANCiAJbXNnLmhlYWRlci5v cGNvZGUgPSBOTlBGU19NU0dfR0VUTk9ERTsNCiAgICAgICAgIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K IAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQog CW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLnBhcmVu dF9oYW5kbGUgPSBkLT5oYW5kbGU7DQogICAgICAgICANCkBAIC0zMTAsNyAr MzM3LDExIEBAIG5ucGZzX29wZW5fdmFsaWQoc3RydWN0IGlub2RlICp2cCwg dV9pbnQNCiAgICAgICB7DQogCXN0cnVjdCBubnBmc19tZXNzYWdlX29wZW4g bXNnOw0KIAltc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19PUEVOOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN CisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu ZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNn LmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCW1zZy50b2tlbnMgPSB0b2s7DQpA QCAtMzk3LDcgKzQyOCwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBu bnBmc19ub2RlICpub2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2lu dChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAg ICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxl LT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1 Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0K ICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShp bm9kZSk7DQogICAgIGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7 DQpAQCAtNDI1LDcgKzQ2MCwxMSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0 IGZpbGUgKmZpbGUsIHVfaW50DQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0g Tk5QRlNfTVNHX1BVVERBVEE7DQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl dF9wYWcoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlk Ow0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3Vp ZCgpOw0KKyNlbmRpZg0KIAltc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJ bXNnLmZsYWcgICA9IGZsYWc7DQogCW1zZy5vZmZzZXQgPSBvZmY7DQpAQCAt NDYwLDE0ICs0OTksMjcgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxl ICpmaWxlLCB1X2ludA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNSkNCiBzdGF0aWMgaW50 DQogbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwgaW50IGRhdGFzeW5jKQ0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KK3N0YXRpYyBpbnQN CitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5j KQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5jKHN0cnVjdCBm aWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQsIGludCBkYXRh c3luYykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ PSBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQorICAgIHN0cnVjdCBkZW50cnkg KmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQorI2VuZGlmDQogICAg IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5 KTsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBu bnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAg KHZvaWQpbm5wZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3Zh bGlkKGlub2RlKTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gZXJyb3I7 DQpAQCAtNTExLDcgKzU2MywxMSBAQCBubnBmc19hdHRyX3ZhbGlkKHN0cnVj dCBpbm9kZSAqIHZwLCB1X2luDQogICAgICAgICAgICAgc3RydWN0IG5ucGZz X21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhl YWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN CisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K KyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAg ICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAg ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o ZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01NTEsNyArNjA3LDExIEBAIG5u cGZzX3JpZ2h0c192YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgbm4NCiAgICAg ICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRhdHRyIG1zZzsNCiAN CiAgICAgICAgICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19H RVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF UlNJT04oMiw2LDI4KQ0KICAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1 cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG1zZy5jcmVkLnVp ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgICAgICAgICAgbXNn LmNyZWQucGFnID0gcGFnOw0KICAgICAgICAgICAgIG1zZy5oYW5kbGUgPSB4 bi0+aGFuZGxlOw0KICAgICAgICAgICAgIGVycm9yID0gbm5wZnNfbWVzc2Fn ZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KQEAg LTU5MiwxMSArNjUyLDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRz IHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQog ICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigzLDEsMCkpDQorc3RhdGljIGludA0KK25ucGZzX3Blcm1pc3Np b24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCiBz dGF0aWMgaW50DQotbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorbm5wZnNf cGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5z aWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9y ID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygp Ow0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUg JiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQor I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs NiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAg ICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0g bm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZO T1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoi LCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlu b2RlKTsNCkBAIC02MzYsNyArNzEwLDExIEBAIG5ucGZzX2RvX2dldGRhdGEo c3RydWN0IG5ucGZzX25vZGUgKnhuLA0KICAgICBpbnQgZXJyb3I7DQogDQog ICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVERBVEE7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxz ZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp Zg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAg IG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBtc2cudG9rZW5zID0g dG9rOw0KQEAgLTc1MCwxMSArODI4LDE5IEBAIG5ucGZzX2RhdGFfdmFsaWQo c3RydWN0IGlub2RlICppbm9kZSwgdV8NCiBpbnQgbm5wZnNfZmlsZV9tbWFw KHN0cnVjdCBmaWxlICogZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICog dm1hKQ0KIHsNCiAgICAgaW50IGZsYWdzLCBlcnJvciA9IDA7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAg ICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxl LT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsN CiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgaW5v ZGU6ICVwXG4iLCBpbm9kZSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX3ByaW50X3Bh dGgoZmlsZS0+Zl9kZW50cnkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3ByaW50 X3BhdGgoZmlsZS0+Zl9wYXRoLmRlbnRyeSk7DQorI2VuZGlmDQogICAgIE5O UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGFsaWFzZXM6IikpOw0K ICAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCiAgICAgDQpAQCAt Nzg5LDM3ICs4NzUsNTAgQEAgaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3Qg ZmlsZSAqIGZpbGUsDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6 ZV90DQogbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0KLSNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5 KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVk IGxvbmcgbnJfc2VncywNCisJICAgICAgIGxvZmZfdCBwb3MpDQogI2Vsc2UN Ci0JICAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwNCitz dGF0aWMgc3NpemVfdA0KK25ucGZzX3JlYWRfaXRlcihzdHJ1Y3Qga2lvY2Ig KmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pDQogI2VuZGlmDQotCSAgICAg ICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAg c3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KLSNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDAp DQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0K KyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNl DQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQog I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y Tk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJ Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRv a2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2Rl LCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNlDQor ICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFU QV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisj ZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBl cnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQotI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkp DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9j YiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVycm9yID0g Z2VuZXJpY19maWxlX2Fpb19yZWFkKGlvY2IsIGJ1ZiwgY291bnQsIHBvcyk7 DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3JlYWRfaXRlcihpb2NiLCB0 byk7DQogI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBm c19yZWFkX2ZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9yKSk7DQogICAgIHJl dHVybiBlcnJvcjsNCkBAIC04MjksMjMgKzkyOCwzNiBAQCBubnBmc19haW9f cmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICoNCiAgKi8NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K IHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9j YiAqaW9jYiwNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDIsNiwxOSkNCiAJCWNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCB1 bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQorCQlsb2ZmX3QgcG9zKQ0KICNlbHNl DQotCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIA0K K3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lv Y2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkNCiAjZW5kaWYNCi0J CWxvZmZfdCBwb3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBz dHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkN CiAgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQor ICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UN CisgICAgc3NpemVfdCBjb3VudCA9IGlvdl9pdGVyX2NvdW50KGZyb20pOw0K ICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxl LT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5v ZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisj ZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9f WE5PREUoaW5vZGUpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE2LDApDQogICAgIGxvZmZfdCByZWFscG9zID0gcG9z Ow0KKyNlbHNlDQorICAgIGxvZmZfdCByZWFscG9zID0gaW9jYi0+a2lfcG9z Ow0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo Im5ucGZzX2Fpb193cml0ZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkg aW5vZGUsIHhuLT50b2tlbnMpKTsNCkBAIC04NTksMTAgKzk3MSwxMCBAQCBu bnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KIAlyZXR1cm4g ZXJyb3I7DQogICAgIH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49 IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAgICBlcnJvciA9IGdl bmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgaW92LCBucl9zZWdzLCBwb3Mp Ow0KICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0 ZShpb2NiLCBidWYsIGNvdW50LCBwb3MpOw0KKyAgICBlcnJvciA9IGdlbmVy aWNfZmlsZV93cml0ZV9pdGVyKGlvY2IsIGZyb20pOw0KICNlbmRpZg0KICAg ICBpZiAoIUlTX0VSUl9WQUxVRShlcnJvcikpDQogCXhuLT5mbGFncyB8PSBO TlBGU19EQVRBX0RJUlRZOyAvKiBYWFggcmFjZSAqLw0KQEAgLTg3MSw5ICs5 ODMsMTkgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwN CiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0K IG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRy eSAqZGVudHJ5LA0KIAkgICAgIGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRh ICpuZCkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVj dCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAg dW1vZGVfdCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0K K3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIs IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUs IGJvb2wgZXhjbCkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAq bm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtOTAz LDkgKzEwMjUsMTcgQEAgbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGly LCBzdHJ1Y3QgZA0KICAgICBYQV9DTEVBUigmbXNnLmF0dHIpOw0KICAgICBY QV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KICAgICBYQV9TRVRfVFlQ RSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfUkVHKTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgWEFf U0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0K KyAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dpZCgpKTsN CisjZW5kaWYNCiAgICAgbXNnLm1vZGUgPSAwOwkJLyogWFhYICovDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp DQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0K KyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K ICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVy cm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwg c2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05NDYs NyArMTA3NiwxMSBAQCBubnBmc191bmxpbmsgKHN0cnVjdCBpbm9kZSAqIGRp ciwgc3RydWN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1lLCBkZW50cnkt PmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhf TkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBt c2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBt c2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0g bm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9m KG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05OTEsNyArMTEy NSwxMSBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIs IHN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uZXdfbmFtZSwgbmV3X2RlbnRy eS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmV3X25hbWUpKSA+PSBOTlBG U19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4 KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN CisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYN CiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBl cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs IHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAtMTAw OCw4ICsxMTQ2LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICog b2xkX2Rpciwgc3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQog c3RhdGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwg c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0 YXRpYyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0K IHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBu bnBmc19ub2RlICp4bjsNCkBAIC0xMDQwLDkgKzExODMsMTcgQEAgbm5wZnNf bWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KIAlYQV9DTEVB UigmbXNnLmF0dHIpOw0KIAlYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUp Ow0KIAlYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfRElSKTsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs NiwyOCkNCiAJWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lk KTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1 cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVk LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNy ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQu cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3Nh Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJ aWYgKGVycm9yID09IDApDQpAQCAtMTA4Myw3ICsxMjM0LDExIEBAIG5ucGZz X3JtZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAgICAgbXNn LnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBpZiAoc3RybGNw eShtc2cubmFtZSwgZGVudHJ5LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1zZy5u YW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQogCSAgICByZXR1cm4gLUVOQU1F VE9PTE9ORzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+ dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlk KCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9w YWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3As ICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogICAgIGlmIChlcnJvciA9 PSAwKQ0KQEAgLTExMjgsNyArMTI4MywxMSBAQCBzdGF0aWMgaW50IG5ucGZz X2xpbmsoc3RydWN0IGRlbnRyeSAqb2xkDQogCWlmIChzdHJsY3B5KG1zZy5u YW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFN RSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAlt c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAg IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1z Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBm c19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNn KSk7DQogCWlmIChlcnJvciA9PSAwKQ0KQEAgLTExNTcsMjkgKzEzMTYsNDcg QEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZA0K ICAgICB4biA9IFZOT0RFX1RPX1hOT0RFKGRpcik7DQogDQogICAgIHsNCi0J c3RydWN0IG5ucGZzX21lc3NhZ2Vfc3ltbGluayBtc2c7DQorCXN0cnVjdCBu bnBmc19tZXNzYWdlX3N5bWxpbmsgKm1zZyA9IE5VTEw7DQogDQotCW1zZy5o ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1NZTUxJTks7DQotCW1zZy5wYXJl bnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCi0JaWYgKHN0cmxjcHkobXNnLm5h bWUsIG5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1F KQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQotCWlmIChzdHJsY3B5 KG1zZy5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy5jb250ZW50cykp ID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpDQotCSAgICByZXR1cm4g LUVOQU1FVE9PTE9ORzsNCi0JWEFfQ0xFQVIoJm1zZy5hdHRyKTsNCi0JWEFf U0VUX01PREUoJm1zZy5hdHRyLCAwNzc3KTsNCi0JWEFfU0VUX1RZUEUoJm1z Zy5hdHRyLCBOTlBGU19GSUxFX0xOSyk7DQotCVhBX1NFVF9HSUQoJm1zZy5h dHRyLCBjdXJyZW50LT5mc2dpZCk7DQorCW1zZyA9IGttYWxsb2Moc2l6ZW9m KCptc2cpLCBHRlBfS0VSTkVMKTsNCiANCi0JbXNnLmNyZWQudWlkID0gY3Vy cmVudC0+dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7 DQotCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhl YWRlciwgc2l6ZW9mKG1zZykpOw0KKwlpZiAobXNnID09IE5VTEwpDQorCSAg cmV0dXJuIC1FTk9NRU07DQorDQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5O UEZTX01TR19TWU1MSU5LOw0KKwltc2ctPnBhcmVudF9oYW5kbGUgPSB4bi0+ aGFuZGxlOw0KKwlpZiAoc3RybGNweShtc2ctPm5hbWUsIG5hbWUsIHNpemVv Zihtc2ctPm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkgew0KKwkgIGtmcmVl KG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQorCX0NCisJaWYg KHN0cmxjcHkobXNnLT5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy0+ Y29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5UKSB7DQor CSAga2ZyZWUobXNnKTsNCisJICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJ fQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRyKTsNCisJWEFfU0VUX01PREUoJm1z Zy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NFVF9UWVBFKCZtc2ctPmF0dHIsIE5O UEZTX0ZJTEVfTE5LKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJWEFfU0VUX0dJRCgmbXNnLT5hdHRy LCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9H SUQoJm1zZy0+YXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCisN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs NiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxz ZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQor I2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQor CWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLT5oZWFk ZXIsIHNpemVvZigqbXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KLQkgICAg ZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKCZtc2cpOw0KKwkgICAg ZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKG1zZyk7DQogDQogCS8q IFhYWCBzaG91bGQgdGhpcyByZWFsbHkgYmUgaGVyZSAqLw0KIAlpZiAoREVO VFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+eGRfZmxhZ3MgPT0gMCkgew0KIAkg ICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBubnBmc19zeW1s aW5rOiBkZW50cnkgbm90IHZhbGlkXG4iKTsNCiAJfQ0KKwlrZnJlZShtc2cp Ow0KICAgICB9DQogDQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xMTg4LDEy ICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3Qg aW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4NCiAgKi8NCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSww KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICog ZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQorI2Vs c2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1Y3QgZmlsZSAq IGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNlbmRpZg0KIHsN CiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0LCBiZWdpbl9v ZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl bmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2RlOw0KICAgICBz dHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7 DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjY0LDYgKzE0NTAsNyBAQCBubnBm c19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkgICAg KGludCkgeGRpcmVudC0+ZF9uYW1sZW4sDQogCQkgICAgKGludCkgKG9mZnNl dCtiZWdpbl9vZmZzZXQpKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJICAgIGlmICh4ZGlyZW50 LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAoZmlsbGRpcl9lcnJvciA9IGZpbGxk aXIgKGRpcmVudCwNCiAJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQpAQCAt MTI3NSw2ICsxNDYyLDE4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUg KiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6 ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0N CisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJ CSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAg ICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1s ZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAg RFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIs DQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRp cl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAg ICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAo eGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KQEAgLTEzMzEsOSArMTUzMCwx NSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj DQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiBz dGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxz ZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19mb2xsb3dfbGluayAo c3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZvaWQgKipwYWdlKQ0KKyNl bmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkpOw0KQEAgLTEz NDQsNyArMTU0OSwxMSBAQCBubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRl bnRyeSAqZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAgICAgcmV0dXJu IEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJuIHBhZ2VfZm9s bG93X2xpbmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2Vsc2UNCisgICAgcmV0 dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBwYWdlKTsNCisj ZW5kaWYNCiB9DQogDQogLyoNCkBAIC0xMzk4LDcgKzE2MDcsMTEgQEAgbm5w ZnNfc2V0YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdA0KICAgICAg ICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcHV0YXR0ciBtc2c7DQogDQogICAg ICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QVVRBVFRSOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN CisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu ZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAg ICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICAgICAgbm5wZnNf aWF0dHIyYXR0cih4biwgYXR0ciwgJm1zZy5hdHRyKTsNCkBAIC0xNDIyLDYg KzE2MzUsOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAq aW5vZGUsDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50 IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBO TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4iKSk7 DQogDQogICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0K QEAgLTE0NTAsMTggKzE2NjUsMTggQEAgbm5wZnNfcmVsZWFzZV9maWxlIChz dHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAqDQogICovDQogDQotI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQogc3Rh dGljIGludA0KIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlLCBmbF9v d25lcl90IGlkKQ0KLSNlbHNlDQotc3RhdGljIGludA0KLW5ucGZzX2ZsdXNo KHN0cnVjdCBmaWxlICpmaWxlKQ0KLSNlbmRpZg0KIHsNCiAgICAgTk5QRlNE RUIoWERFQlZOT1BTLCAoIm5ucGZzX2ZsdXNoXG4iKSk7DQogDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAg ICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9kZW50cnkgJiYgZmlsZS0+Zl9kZW50 cnktPmRfaW5vZGUpDQogCXJldHVybiBubnBmc19yZWxlYXNlX2ZpbGUoZmls ZS0+Zl9kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbHNlDQorICAgIGlm IChmaWxlICYmIGZpbGUtPmZfcGF0aC5kZW50cnkgJiYgZmlsZS0+Zl9wYXRo LmRlbnRyeS0+ZF9pbm9kZSkNCisJcmV0dXJuIG5ucGZzX3JlbGVhc2VfZmls ZShmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisjZW5k aWYNCiAgICAgZWxzZQ0KIAlyZXR1cm4gMDsNCiB9DQpAQCAtMTQ3MCw4ICsx Njg1LDEzIEBAIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KICAq IFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBvdGhlcndp c2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIGludA0KLW5ucGZzX2RfcmV2 YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRh dGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAq ZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRp YyBpbnQNCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBz dHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7 DQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19kX3JldmFsaWRh dGUgJXAgXCIlLipzXCIgKGlub2RlICVwKVxuIiwNCkBAIC0xNTE5LDkgKzE3 MzksMTUgQEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRl bnRyeQ0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBp bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQor I2Vsc2UNCitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBz dHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1 Y3QgaW5vZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47 DQpAQCAtMTU0NiwxMSArMTc3MiwxNiBAQCBubnBmc19kX2RlbGV0ZShzdHJ1 Y3QgZGVudHJ5ICpkZW50cnkpDQogfQ0KIA0KIHN0YXRpYyBzc2l6ZV90DQot bm5wZnNfc2VuZGZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCAqcHBv cywgc2l6ZV90IGNvdW50LA0KLQkgICAgICAgcmVhZF9hY3Rvcl90IGFjdG9y LCB2b2lkICp0YXJnZXQpDQorbm5wZnNfc3BsaWNlX3JlYWQoc3RydWN0IGZp bGUgKmZpbGUsIGxvZmZfdCAqcHBvcywNCisJCSAgc3RydWN0IHBpcGVfaW5v ZGVfaW5mbyAqcGlwZSwgc2l6ZV90IGNvdW50LA0KKwkJICB1bnNpZ25lZCBp bnQgZmxhZ3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k ZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+ Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0 IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAg ICANCiAgICAgaWYgKHhuICE9IE5VTEwpDQpAQCAtMTU2MSw4ICsxNzkyLDcg QEAgbm5wZnNfc2VuZGZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdA0K IAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGRhdGEg bm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQog ICAgIH0NCi0NCi0gICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfc2VuZGZpbGUo ZmlsZSwgcHBvcywgY291bnQsIGFjdG9yLCB0YXJnZXQpOw0KKyAgICBlcnJv ciA9IGZpbGUtPmZfb3AtPnNwbGljZV9yZWFkKGZpbGUsIHBwb3MsIHBpcGUs IGNvdW50LCBmbGFncyk7DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywg KCJubnBmc19zZW5kZmlsZTogZXJyb3IgPSAlZFxuIiwgZXJyb3IpKTsNCiAg ICAgcmV0dXJuIGVycm9yOw0KQEAgLTE2MzksMzQgKzE4NjksMzEgQEAgbm5w ZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsDQogCXN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gYmFja2ZpbGUtPmZfbWFwcGlu ZzsNCiAJdW5zaWduZWQgbGVuID0gUEFHRV9DQUNIRV9TSVpFOw0KIAlzdHJ1 Y3QgcGFnZSAqYmFja3BhZ2U7DQorCXZvaWQgKmZzZGF0YTsNCiAJdW5zaWdu ZWQgbG9uZyBvZmZzZXQ7DQogDQogCWludCBlcnJvcjsNCiAJDQotCWRvIHsN Ci0JCWJhY2twYWdlID0gZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIG5ucGZz X2dldF9iYWNraW5kZXgocGFnZSkpOw0KLQkJaWYgKCFiYWNrcGFnZSkgew0K LQkJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6IG5vIHBhZ2VcbiIp Ow0KLQkJCXJldHVybiAtRUlPOw0KLQkJfQ0KKwkodm9pZClvZmZzZXQ7DQog DQotCQllcnJvciA9IG1hcHBpbmctPmFfb3BzLT5wcmVwYXJlX3dyaXRlKGJh Y2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJCQkgICAgICAwLCBsZW4pOw0KKwlk byB7DQorCQllcnJvciA9IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmls ZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJCQkJICAgICAgQU9QX0ZMQUdfVU5J TlRFUlJVUFRJQkxFLA0KKwkJCQkJICAgICAgJmJhY2twYWdlLCAmZnNkYXRh KTsNCiAJCWlmICghZXJyb3IpIHsNCiAJCQljb3B5X2hpZ2hwYWdlKGJhY2tw YWdlLCBwYWdlKTsNCiAJCQlmbHVzaF9kY2FjaGVfcGFnZShiYWNrcGFnZSk7 DQotCQkJZXJyb3IgPSBtYXBwaW5nLT5hX29wcy0+Y29tbWl0X3dyaXRlKGJh Y2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJCQkJICAgICAwLCBsZW4pOw0KKwkJ CWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2VuZChiYWNrZmlsZSwgbWFwcGlu ZywgMCwgbGVuLA0KKwkJCQkJbGVuLCBiYWNrcGFnZSwgZnNkYXRhKTsNCisJ CQlpZiAoZXJyb3IgPiAwKQ0KKwkJCQllcnJvciA9IDA7DQogCQl9DQogCQlp ZiAoZXJyb3IgPT0gQU9QX1RSVU5DQVRFRF9QQUdFKSB7DQotCQkJcGFnZV9j YWNoZV9yZWxlYXNlKGJhY2twYWdlKTsNCiAJCQljb250aW51ZTsNCiAJCX0N CiAJfSB3aGlsZSAoMCk7DQogDQogCW9mZnNldCA9IHBhZ2Vfb2Zmc2V0KGJh Y2twYWdlKTsNCi0JdW5sb2NrX3BhZ2UoYmFja3BhZ2UpOw0KLQlwYWdlX2Nh Y2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0KIA0KIAlpZiAoZXJyb3IpDQogCQlw cmludGsoIm5ucGZzX3dyaXRlX2JhY2twYWdlOiBFSU9cbiIpOw0KQEAgLTE2 ODksMTMgKzE5MTYsOSBAQCBubnBmc19yZWFkX2JhY2twYWdlKHN0cnVjdCBw YWdlICpwYWdlLCBzDQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCiAJdW5z aWduZWQgbG9uZyBvZmZzZXQ7DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQorCSh2b2lkKW9mZnNldDsN CisNCiAJYmFja3BhZ2UgPSByZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBu LCBiYWNrZmlsZSk7DQotI2Vsc2UNCi0JYmFja3BhZ2UgPSByZWFkX2NhY2hl X3BhZ2UobWFwcGluZywgbiwNCi0JCQkJICAgKGZpbGxlcl90ICopbWFwcGlu Zy0+YV9vcHMtPnJlYWRwYWdlLA0KLQkJCQkgICBiYWNrZmlsZSk7DQotI2Vu ZGlmDQogCWlmICghSVNfRVJSKGJhY2twYWdlKSkgew0KIAkJd2FpdF9vbl9w YWdlX2xvY2tlZChiYWNrcGFnZSk7DQogDQpAQCAtMTg0MiwxMSArMjA2NSwx NyBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBz DQogDQogCWlmIChtb2RzaXplID4gaV9zaXplX3JlYWQoaW5vZGUpKSB7DQog CQlpbnQgZXJyb3I7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsOCwwKQ0KIAkJZXJyb3IgPSB2bXRydW5jYXRlKGlub2Rl LCBtb2RzaXplKTsNCisjZWxzZQ0KKwkJZXJyb3IgPSBpbm9kZV9uZXdzaXpl X29rKGlub2RlLCBtb2RzaXplKTsNCisJCWlmKCFlcnJvcikNCisJCQl0cnVu Y2F0ZV9zZXRzaXplKGlub2RlLCBtb2RzaXplKTsNCisjZW5kaWYNCiAJCWlm IChlcnJvcikgew0KIAkJCXByaW50aygibm5wZnNfcHJlcGFyZV93cml0ZTog dHJ1bmNhdGUoJWxsdSkgLT4gJWRcbiIsDQogCQkJICAgICAgIG1vZHNpemUs IC1lcnJvcik7DQotCQkJQlVHKCk7IC8qIFhYWCBub3QgY29ycmVjdCAqLw0K KwkJCS8qQlVHKCk7Ki8gLyogWFhYIG5vdCBjb3JyZWN0ICovDQogCQl9DQog CX0NCiANCkBAIC0xODcyLDggKzIxMDEsMzcgQEAgbm5wZnNfcHJlcGFyZV93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4gcmV0Ow0KIH0N CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5wZnNfd3JpdGVfYmVnaW4o c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxh Z3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpDQorew0K KwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJcGdvZmZfdCBpbmRleDsNCisJdW5z aWduZWQgZnJvbTsNCisNCisJaW5kZXggPSBwb3MgPj4gUEFHRV9DQUNIRV9T SElGVDsNCisJZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsN CisNCisjaWZkZWYgQU9QX0ZMQUdfTk9GUw0KKwlwYWdlID0gZ3JhYl9jYWNo ZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBmbGFncyk7DQor I2Vsc2UNCisJcGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGlu ZGV4KTsNCisjZW5kaWYNCisJaWYgKHBhZ2UgPT0gTlVMTCkNCisJCXJldHVy biAtRU5PTUVNOw0KKw0KKwkqcGFnZXAgPSBwYWdlOw0KKw0KKwlyZXR1cm4g bm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsg bGVuKTsNCit9DQorDQorI2VuZGlmDQorDQogc3RhdGljIGludA0KLW5ucGZz X2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2Ug KnBhZ2UsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQ0KK25ucGZzX2Nv bW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBh Z2UsDQorCQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykNCiB7DQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0 Ow0KICAgICBsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwg UEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCkBAIC0xOTAyLDE0ICsyMTYwLDUx IEBAIG5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3QN CiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KLWNvbnN0DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQor DQorc3RhdGljIGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBw b3MsDQorCQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0 IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkNCit7DQorCXVuc2lnbmVkIGZy b20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorDQorCS8qIHpl cm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hv cnQgY29weSAqLw0KKwlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJdm9p ZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vs c2UNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2Vu ZGlmDQorCQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4g LSBjb3BpZWQpOw0KKwkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K KwkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQor CQlrdW5tYXBfYXRvbWljKGthZGRyKTsNCiAjZW5kaWYNCisJfQ0KKw0KKwlu bnBmc19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNv cGllZCk7DQorDQorCXVubG9ja19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hl X3JlbGVhc2UocGFnZSk7DQorDQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKw0K KyNlbmRpZg0KKw0KK2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3Bl cmF0aW9ucyBubnBmc19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19y ZWFkcGFnZSwNCiAJLndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4 KQ0KIAkucHJlcGFyZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQog CS5jb21taXRfd3JpdGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorI2Vsc2UN CisJLndyaXRlX2JlZ2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQorCS53cml0 ZV9lbmQgPSBubnBmc193cml0ZV9lbmQsDQorI2VuZGlmDQogfTsNCiANCiAv Kg0KQEAgLTE5MTcsMjEgKzIyMTIsMzAgQEAgc3RydWN0IGFkZHJlc3Nfc3Bh Y2Vfb3BlcmF0aW9ucyBubnBmc19hbw0KICAqLw0KIA0KIHN0cnVjdCBmaWxl X29wZXJhdGlvbnMgbm5wZnNfZmlsZV9vcGVyYXRpb25zID0gew0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQog ICAgIC5haW9fcmVhZAk9IG5ucGZzX2Fpb19yZWFkLA0KICAgICAuYWlvX3dy aXRlCT0gbm5wZnNfYWlvX3dyaXRlLA0KKyNlbHNlDQorICAgIC5yZWFkX2l0 ZXIJPSBubnBmc19yZWFkX2l0ZXIsDQorICAgIC53cml0ZV9pdGVyCT0gbm5w ZnNfd3JpdGVfaXRlciwNCisjZW5kaWYNCiAgICAgLm1tYXAJPSBubnBmc19m aWxlX21tYXAsDQogICAgIC5vcGVuCT0gbm5wZnNfb3BlbiwNCiAgICAgLmZs dXNoCT0gbm5wZnNfZmx1c2gsDQogICAgIC5yZWxlYXNlCT0gbm5wZnNfcmVs ZWFzZV9maWxlLA0KICAgICAuZnN5bmMJPSBubnBmc19mc3luYywNCi0gICAg LnNlbmRmaWxlCT0gbm5wZnNfc2VuZGZpbGUsDQorICAgIC5zcGxpY2VfcmVh ZCA9IG5ucGZzX3NwbGljZV9yZWFkLA0KIH07DQogDQogc3RydWN0IGZpbGVf b3BlcmF0aW9ucyBubnBmc19kZWFkX29wZXJhdGlvbnMgPSB7DQogfTsNCiAN CiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rpcl9vcGVyYXRpb25z ID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDExLDApDQogICAgIC5yZWFkZGlyCT0gbm5wZnNfcmVhZGRpciwNCisj ZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5ucGZzX2l0ZXJhdGUsDQorI2Vu ZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KIH07DQogDQpkaWZm IC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w ZnNfbG9hZC5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBm c19sb2FkLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbG9h ZC5jCTIwMDYtMTAtMzEgMTE6MDI6NDEuMDAwMDAwMDAwICswMTAwDQorKysg YXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwky MDE2LTAxLTEzIDIwOjE0OjAyLjgzMDEwMzUxNyArMDEwMA0KQEAgLTU0LDcg KzU0LDExIEBAIGV4dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZz X2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBubnBmc19mc190 eXBlID0gew0KICAgICAgICBuYW1lOiAgICAgICAgICAgIm5ucGZzIiwNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KICAgICAgICBnZXRfc2I6ICAgICAgICAgbm5wZnNfZ2V0X3NiLA0KKyNl bHNlDQorICAgICAgIG1vdW50OiAgICAgICAgICBubnBmc19tb3VudCwNCisj ZW5kaWYNCiAgICAgICAga2lsbF9zYjogICAgICAgIGtpbGxfbGl0dGVyX3N1 cGVyLA0KICAgICAgICBvd25lcjogICAgICAgICAgVEhJU19NT0RVTEUsDQog fTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9s aW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZz L2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9s aW51eC9ubnBmc19tZXNzYWdlLmMJMjAwNy0wMS0wOSAxNzozMzozMS4wMDAw MDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGlu dXgvbm5wZnNfbWVzc2FnZS5jCTIwMTYtMDEtMTQgMTY6NTA6MTUuMTM5NTc1 MTUxICswMTAwDQpAQCAtNDUsNyArNDUsNyBAQA0KICNpbmNsdWRlIDxsaW51 eC9tb3VudC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5u cGZzX21lc3NhZ2UuYyx2IDEuMTQzLjIuMSAyMDA3LzAxLzA5IDE2OjMzOjMx IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX21lc3NhZ2UuYyx2 IDEuMTQ1IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQogI2Vu ZGlmDQogDQogc3RhdGljIHZvaWQNCkBAIC01NSw5ICs1NSwxNSBAQCBzdGF0 aWMgdm9pZA0KIG5ucGZzX2RfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfZF9yZW1v dmUgJXBcbiIsIGRlbnRyeSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNh Y2hlX2xvY2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBz cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5f bG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRy eSk7DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQorI2Vu ZGlmDQogICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7 DQogfQ0KQEAgLTEyMSw3ICsxMjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0 YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRp LCAqaW5vZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7 DQogICAgIHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxp c3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2Rl ICphbGlhczsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJN U0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZVxuIikpOw0KICAgICAN CkBAIC0xNzYsMTIgKzE4NiwyNiBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxu b2RlKHN0cnVjdCBubnBmcyAqDQogICAgICAqDQogICAgICAqLw0KICAgICAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdo aWxlIChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxp c3RfZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlz cGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50 KTsNCi0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAg aGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCBhbGlhcywgJmRpLT5pX2Rl bnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hf ZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vs c2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlf ZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIHNw aW5fbG9jaygmZGNhY2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChwYXJl bnQpOw0KKyAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNl DQorICAgIHNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBkZ2V0 X2Rsb2NrKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQtPmRf bG9jayk7DQorI2VuZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVudCwg JnNxc3RyKTsNCiAJTk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZzX21l c3NhZ2VfaW5zdGFsbG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIsDQpA QCAtMjMzLDcgKzI1Nyw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUo c3RydWN0IG5ucGZzICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVudHJ5 ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlm DQogCWRwdXQocGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVC TVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFs bGluZ1xuIikpOw0KQEAgLTI2OCw3ICsyOTQsMTMgQEAgbm5wZnNfbWVzc2Fn ZV9pbnN0YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAg IGlub2RlID0gWE5PREVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50cnkg PSBsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3QgZGVu dHJ5LCBkX2FsaWFzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGRlbnRyeSA9IGhsaXN0X2Vu dHJ5KGlub2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF9h bGlhcyk7DQorI2Vsc2UNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5v ZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlh cyk7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAo Im5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJCSAg ICAgICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0Mjgs MzYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5wZnMg Kg0KIHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0IGRl bnRyeSAqZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxp YXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisj ZW5kaWYNCiANCiAgYWdhaW46DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2Fj aGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogZmluZCB0aGUgZGVu dHJ5IHRvIGxvY2sgKi8NCisgICAgLypzcGluX2xvY2soJmRlbnRyeS0+ZF9s b2NrKTsqLw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9k ZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9k ZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAg ICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUt PmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3Jf ZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMp IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks ICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQog CXN0cnVjdCBsaXN0X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19k ZW50cnlfZGF0YSAqeGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRy eShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQog CWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1F UkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxs XG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQyMiw3ICs0NzMsMTEgQEAgY2xl YXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlzdWJk aXJzID0gZGVudHJ5LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1YmRp cnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1Y3QgbGlz dF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1Y3QgZGVu dHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBk X3UuZF9jaGlsZCk7DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50cnkgKmNo aWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQp Ow0KKyNlbmRpZg0KIAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJICAg IE5OUEZTREVCKFhERUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNoaWxk OiAlLipzIGlub2RlOiAlcC8lcCAiDQogCQkJICAgICAgICJkY291bnQ6ICVk IGFsaWFzZXM6XG4iLA0KQEAgLTQ0MiwxNCArNDk3LDI2IEBAIGNsZWFyX2Fs bF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8q IFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50 KGNoaWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9jaygm ZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorCQkvKiBUT0RPOiB1bmxvY2sgdGhl IGRlbnRyeSAqLw0KKwkJLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2sp OyovDQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQln b3RvIGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFz LT5uZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91bmxv Y2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiB1bmxv Y2sgdGhlIGRlbnRyeSAqLw0KKyAgICAvKnNwaW5fdW5sb2NrKCZkZW50cnkt PmRfbG9jayk7Ki8NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIHZvaWQNCkBA IC02MDUsMTIgKzY3MiwxMCBAQCBnY19ibG9jayhzdHJ1Y3Qgbm5wZnMgKm5u cGZzcCwNCiAgICAgfQ0KIA0KICAgICBpZiAoIW5ucGZzX2Jsb2NrX2hhdmVf cCh4biwgb2Zmc2V0KSkgew0KLSNpZiAwICAgLyogaGFwcGVucyB3aGVuIGRh ZW1vbiBzZW5kcyBzZXZlcmFsIG1lc3NhZ2VzIGZvciBzYW1lIGJsb2NrICov DQogCXByaW50ayhLRVJOX0VNRVJHICJOTlBGUy9nY19ibG9jazogIg0KIAkg ICAgICAgIkVOT0VOVCAoJWQsJWQsJWQsJWQpIDB4JWxseFxuIiwgDQogCSAg ICAgICB4bi0+aGFuZGxlLmEsIHhuLT5oYW5kbGUuYiwgeG4tPmhhbmRsZS5j LCB4bi0+aGFuZGxlLmQsIA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9u ZylvZmZzZXQpOw0KLSNlbmRpZg0KIAlyZXR1cm4gLUVOT0VOVDsNCiAgICAg fQ0KIA0KQEAgLTcyMSwxMiArNzg2LDIyIEBAIG5ucGZzX21lc3NhZ2VfdmVy c2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAgLyogc2FuaXR5IGNo ZWNrIGJlZm9yZSB3ZSBsb29rIGF0IGl0ICovDQogICAgIGlmIChzaXplID09 IHNpemVvZigqbWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVyc2lvbiA9PSBOTlBG U19WRVJTSU9OKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisj ZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAlpbnQgZXJy b3I7DQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nr c2l6ZTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKCIuIiwgMCwg Jm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5k LnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwg JnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQog CSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM3 LDEyICs4MTIsMjMgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBu bnBmcyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWls ZWQgcGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9y KTsNCiAJfSBlbHNlIHsNCi0JICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50 Z2V0KG5kLm1udCk7DQotCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChu ZC5kZW50cnkpOw0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJ ICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KG5kLnBhdGgubW50KTsN CisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLnBhdGguZGVudHJ5 KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAg bm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQocGF0aC5tbnQpOw0KKwkgICAg bm5wZnNwLT5jYWNoZWRpciA9IGRnZXQocGF0aC5kZW50cnkpOw0KKwkgICAg cGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAkgICAgDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCSAg ICBubnBmc3AtPnVpZCA9IGN1cnJlbnQtPmZzdWlkOw0KIAkgICAgbm5wZnNw LT5naWQgPSBjdXJyZW50LT5mc2dpZDsNCisjZWxzZQ0KKyAgICAgICAgICAg IG5ucGZzcC0+dWlkID0gY3VycmVudF9mc3VpZCgpOw0KKyAgICAgICAgICAg IG5ucGZzcC0+Z2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyNlbmRpZg0KIA0K IAkgICAgLyogWFhYIHdlIHNob3VsZCB2YWxpZGF0ZSB0aGVzZSB2YWx1ZXMg Ki8NCiAJICAgIG5ucGZzX2Jsb2Nrc2l6ZSA9IGJsb2Nrc2l6ZTsNCmRpZmYg LXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm c19ub2RlLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25ucGZz X25vZGUuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ub2Rl LmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDANCisrKyBh cmxhLWZvci1saW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIw MTYtMDEtMTQgMTY6NTE6MTEuNDIwNTc4NTQ0ICswMTAwDQpAQCAtMTMyLDcg KzEzMiwxMiBAQCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUs IHVpbnQ2DQogCXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBA MHglbGx1XG4iLA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXpl KTsNCiAjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAv KiBYWFggcmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVf b2soaW5vZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9k ZSwgc2l6ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhu LCBzaXplKTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5u cGZzX2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3Ry dWN0IHRpbWVzcGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9k ZSAgID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9k ZS0+aV9naWQgICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9 IEtVSURUX0lOSVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lO SVQoMCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0K KyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlu b2RlLT5pX2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0g bm90aW1lOw0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5 LDcgKzE4MywxMSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBu bnBmc19hdHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlu b2RlLT5pX2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZB TElEX05MSU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0 ci0+eGFfbmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRy LT54YV9ubGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFM SURfU0laRShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRy LT54YV9zaXplKTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNf cGFnKGNvbnN0IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNf bm9kZV91c2VycyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAg IHN0cnVjdCBsaXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg aGxpc3Rfbm9kZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAw Ow0KICAgICANCiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJl IHByb3RlY3RlZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNo KHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0 X2Zvcl9lYWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9z LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRy eSwgZF91LmRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50 KGRlbnRyeSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAt dXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz X3N5c2NhbGxzLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25u cGZzX3N5c2NhbGxzLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w ZnNfc3lzY2FsbHMuYwkyMDA3LTAxLTAzIDE1OjI2OjI3LjAwMDAwMDAwMCAr MDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBm c19zeXNjYWxscy5jCTIwMTYtMDEtMTQgMTc6MDA6MjAuNjQxNjExNjU1ICsw MTAwDQpAQCAtNDIsNyArNDIsOSBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBm c19zeXNjYWxscy5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19jb21tb24u aD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2luY2x1ZGUg PGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4 L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+DQogDQpAQCAt NTAsNiArNTIsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4N CiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F TF9WRVJTSU9OKDMsNywwKQ0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKy8qIHRo ZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsg b24ga2VybmVsIDMuNyBhbmQgbGF0ZXIsIHNlIG5ucGZzX3N5c2NhbGxzLWxv c3NhZ2UuYyAqLw0KKyNlbmRpZg0KKw0KICNpZiAwDQogI2lmZGVmIENPTkZJ R19DT01QQVQNCiAjaW5jbHVkZSA8bGludXgvaW9jdGwzMi5oPg0KQEAgLTY0 LDcgKzcxLDcgQEANCiAjdW5kZWYgTkVFRF9WSUNFSU9DVEwzMg0KIA0KICNp ZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLmMsdiAx LjEyMiAyMDA3LzAxLzAzIDE0OjI2OjI3IHRvbCBFeHAgJCIpOw0KK1JDU0lE KCIkSWQ6IG5ucGZzX3N5c2NhbGxzLmMsdiAxLjEyNSAyMDEwLzA4LzA4IDIw OjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1 Y3QgcHJvY19kaXJfZW50cnkgKm5ucGZzX3Byb2Nmc19kaXI7DQpAQCAtODIs MTIgKzg5LDIyIEBAIHR5cGVkZWYgc3RydWN0IGFmc3Byb2NkYXRhIHsNCiAg ICAgdW5zaWduZWQgbG9uZyBzeXNjYWxsOw0KIH0gYWZzcHJvY2RhdGE7DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVj dCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5z aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbHNlDQor c3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGZpbGUg KmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25n IGFyZyk7DQorI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBmaWxlX29wZXJh dGlvbnMgbm5wZnNfcHJvY2ZzX2ZvcHMgPSB7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgLmlvY3Rs ID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQorICAgIC51bmxvY2tl ZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZW5kaWYNCiB9Ow0K IA0KIA0KQEAgLTE0Nyw1MyArMTY0LDQ4IEBAIHN0YXRpYyBpbnQgbm5wZnNf c2VjX3JlZ2lzdGVyZWQgPSAwOw0KICNkZWZpbmUgU0VDMlBBRyhzKSAobm5w ZnNfcGFnX3QpKHVuc2lnbmVkIGxvbmcpKHMpDQogI2RlZmluZSBQQUcyU0VD KHApICh2b2lkICopKHVuc2lnbmVkIGxvbmcpKHApDQogDQotc3RhdGljIGlu dA0KLW5ucGZzX3NlY190YXNrX2FsbG9jKHN0cnVjdCB0YXNrX3N0cnVjdCAq cCkNCi17DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVu dC0+c2VjdXJpdHkpOw0KLSAgICBpZiAocGFnKQ0KLQlwLT5zZWN1cml0eSA9 IFBBRzJTRUMocGFnKTsNCi0gICAgcmV0dXJuIDA7DQotfQ0KLQ0KLXN0YXRp YyB2b2lkDQotbm5wZnNfc2VjX3Rhc2tfZnJlZShzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKHAt PnNlY3VyaXR5KTsNCi0gICAgaWYgKHBhZykNCi0JcC0+c2VjdXJpdHkgPSBO VUxMOw0KLX0NCi0NCiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBubnBmc19nZXRf cGFnX3NlYyh2b2lkKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbm5wZnNfcGFnX3QgcGFn ID0gU0VDMlBBRyhjdXJyZW50LT5zZWN1cml0eSk7DQorI2Vsc2UNCisgICAg bm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50X3NlY3VyaXR5KCkp Ow0KKyNlbmRpZg0KICAgICBpZiAocGFnKQ0KIAlyZXR1cm4gcGFnOw0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0KKyNlbGlmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAg cmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qg a3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KKyNl bmRpZg0KIH0NCiANCiBzdGF0aWMgaW50DQogbm5wZnNfc2V0X3BhZ19zZWMo dm9pZCkNCiB7DQogICAgIHN0YXRpYyBubnBmc19wYWdfdCBwYWdudW0gPSBO TlBGU19QQUdfTExJTTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF Uk5FTF9WRVJTSU9OKDIsNiwyOSkNCisgICAgc3RydWN0IGNyZWQgKmNyZWQ7 DQorI2VuZGlmDQogDQogICAgIGlmIChwYWdudW0gPT0gTk5QRlNfUEFHX1VM SU0pDQogCXJldHVybiAtRU5PTUVNOw0KICAgICAvKiBwYWdudW0gPSBOTlBG U19QQUdfTExJTTsgKi8NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGN1cnJlbnQtPnNl Y3VyaXR5ID0gUEFHMlNFQyhwYWdudW0pOw0KKyNlbHNlDQorICAgIGNyZWQg PSAoc3RydWN0IGNyZWQgKikgY3VycmVudC0+Y3JlZDsNCisgICAgY3JlZC0+ c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQorI2VuZGlmDQogICAgIHBh Z251bSsrOw0KICAgICByZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIHN0cnVj dCBzZWN1cml0eV9vcGVyYXRpb25zIG5ucGZzX3NlY19vcHMgPSB7DQotICAg IC50YXNrX2FsbG9jX3NlY3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfYWxsb2Ms DQotICAgIC50YXNrX2ZyZWVfc2VjdXJpdHkgPSBubnBmc19zZWNfdGFza19m cmVlLA0KLS8vICAgIC50YXNrX3JlcGFyZW50X3RvX2luaXQgPSBubnBmc19z ZWNfcmVwYXJlbnRfdG9faW5pdCwNCi19Ow0KLQ0KICNlbmRpZiAvKiBDT05G SUdfU0VDVVJJVFkgKi8NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtMjA2 LDcgKzIxOCwxMiBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kp DQogICAgIE5OUEZTREVCKFhERUJTWVMsICgiZmluZF9wYWc6IG5ncm91cHMg PSAlZFxuIiwgZ2ktPm5ncm91cHMpKTsNCiANCiAgICAgZm9yIChpID0gZ2kt Pm5ncm91cHMgLSAxOyBpID49IDA7IGktLSkgew0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCWdpZF90IGdy b3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3Jv dXAgPSBHUk9VUF9BVChnaSwgaSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3Vw LnZhbDsNCisjZW5kaWYNCiAJaWYgKChubnBmc19wYWdfdClncm91cCA+PSBO TlBGU19QQUdfTExJTSAmJiAobm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19Q QUdfVUxJTSkgew0KIAkgICAgTk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAg KCJmaW5kX3BhZzogRXhpc3RpbmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3Jv dXAsIGkpKTsNCkBAIC0yMjIsMTUgKzIzOSwzMSBAQCBmaW5kX3BhZyhzdHJ1 Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogc3RhdGljIG5ucGZzX3BhZ190DQogbm5w ZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgc3RydWN0 IGdyb3VwX2luZm8gKmdpID0gY3VycmVudC0+Z3JvdXBfaW5mbzsNCiAgICAg bm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg IHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdldF9jdXJyZW50X2dyb3Vwcygp Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE0LDApDQorICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnRfdWlkKCk7 DQorI2Vsc2UNCisgICAga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOw0K KyAgICBubnBmc19wYWdfdCByZXQgPSBrdWlkLnZhbDsNCisjZW5kaWYNCisj ZW5kaWYNCiAgICAgaW50IGk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGdldF9ncm91cF9p bmZvKGdpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKGdpKTsN CiAgICAgaWYgKGkgIT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCXJl dCA9IEdST1VQX0FUKGdpLCBpKTsNCisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lk ID0gR1JPVVBfQVQoZ2ksIGkpOyByZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRp Zg0KIA0KICAgICBwdXRfZ3JvdXBfaW5mbyhnaSk7DQogDQpAQCAtMjQyLDEz ICsyNzUsMTkgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHN0YXRp YyBpbnQNCiBzdG9yZV9wYWcobm5wZnNfcGFnX3QgcGFnbnVtKQ0KIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy OCkNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGN1cnJlbnQt Pmdyb3VwX2luZm87DQorI2Vsc2UNCisgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq b2xkX2dpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2VuZGlmDQogICAg IHN0cnVjdCBncm91cF9pbmZvICpuZXdfZ2k7DQotICAgIGludCBuYmxvY2tz LCBjb3VudDsNCisgICAgdW5zaWduZWQgaW50IG5ibG9ja3MsIGNvdW50Ow0K ICAgICBpbnQgZm91bmQgPSAwOw0KICAgICBpbnQgaSwgazsNCiAgICAgDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpICAgIA0KICAgICBnZXRfZ3JvdXBfaW5mbyhvbGRfZ2kpOw0KKyNlbmRp Zg0KIA0KICAgICBpID0gZmluZF9wYWcob2xkX2dpKTsNCiAgICAgaWYgKGkg IT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0KQEAgLTI3NCwxMCArMzEzLDE3IEBA IHN0b3JlX3BhZyhubnBmc19wYWdfdCBwYWdudW0pDQogCWNvdW50IC09IE5H Uk9VUFNfUEVSX0JMT0NLOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgaWYgKGZv dW5kKQ0KIAlHUk9VUF9BVChuZXdfZ2ksIGkpID0gcGFnbnVtOw0KICAgICBl bHNlDQogCUdST1VQX0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkg PSBwYWdudW07DQorI2Vsc2UNCisgICAgaWYgKGZvdW5kKQ0KKwl7IGtnaWRf dCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9BVChuZXdfZ2ks IGkpID0ga2dpZDsgfQ0KKyAgICBlbHNlDQorCXsga2dpZF90IGtnaWQgPSBL R0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgbmV3X2dpLT5u Z3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQorI2VuZGlmDQogICAgIA0KICAgICBz ZXRfY3VycmVudF9ncm91cHMobmV3X2dpKTsNCiAgICAgcHV0X2dyb3VwX2lu Zm8obmV3X2dpKTsNCkBAIC0zMTcsNyArMzYzLDEzIEBAIG5ucGZzX2dldF9w YWcoKQ0KICAgICByZXR1cm4gbm5wZnNfZ2V0X3BhZ19ncm91cCgpOw0KICNl bmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1 cnJlbnQtPnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgp Ow0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgp OyByZXR1cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGlj IGlubGluZSBpbnQNCkBAIC00MjIsNyArNDc0LDcgQEAgbm5wZnNfc2V0Z3Jv dXBzMTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRpZiAvKiBTWVND QUxMSEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCi1zdHJ1 Y3QgZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxlX2hhbmRsZSB7 DQogICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3QgaW5vZGU7DQog ICAgIF9fdTMyIGdlbjsNCkBAIC01MDksMTQgKzU2MSwyNyBAQCBubnBmc19k ZWJ1Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9jdGwNCiAgKiBmb2xsb3cg c3ltbGlua3MgaWZmIGBmb2xsb3cnDQogICovDQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiBzdGF0aWMg c3RydWN0IGRlbnRyeSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5h bWVpZGF0YSAqbmQsIGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCisj ZWxzZQ0KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCit1c2VyX3BhdGgyZGVu dHJ5IChzdHJ1Y3QgcGF0aCAqcGF0aCwgY2hhciAqdXNlcl9wYXRoLCBpbnQg Zm9sbG93KQ0KKyNlbmRpZg0KIHsNCi0gICAgY2hhciAqa25hbWU7DQogICAg IGludCBmbGFncyA9IDA7DQogICAgIGludCBlcnJvciA9IDA7DQogDQotICAg IGtuYW1lID0gZ2V0bmFtZSAodXNlcl9wYXRoKTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorICAgIGNoYXIg KmtuYW1lOw0KKyAgICBrbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisj ZWxzZQ0KKyAgICBjb25zdCBjaGFyICprbmFtZTsNCisgICAgc3RydWN0IGZp bGVuYW1lICpmbmFtZTsNCisgICAgZm5hbWUgPSBnZXRuYW1lKHVzZXJfcGF0 aCk7DQorICAgIGtuYW1lID0gZm5hbWUtPm5hbWU7DQorI2VuZGlmDQorDQog ICAgIGlmIChJU19FUlIoa25hbWUpKQ0KIAlyZXR1cm4gRVJSX1BUUihQVFJf RVJSKGtuYW1lKSk7DQogICAgIGlmIChmb2xsb3cpDQpAQCAtNTI0LDExICs1 ODksMjUgQEAgdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAq bmQsDQogDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfc3lzY2Fs bDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1lKSk7DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg ZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgJihuZC0+ cGF0aCkpOw0KKyNlbHNlDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1l LCBmbGFncywgcGF0aCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KICAgICBwdXRuYW1lKGtu YW1lKTsNCisjZWxzZQ0KKyAgICBrbWVtX2NhY2hlX2ZyZWUobmFtZXNfY2Fj aGVwLCAodm9pZCAqKWtuYW1lKTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9y KQ0KIAlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQotICAgIHJldHVybiBuZC0+ ZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQorICAgIHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQor I2Vsc2UNCisgICAgcmV0dXJuIHBhdGgtPmRlbnRyeTsNCisjZW5kaWYNCiB9 DQogDQogYXNtbGlua2FnZSBsb25nDQpAQCAtNTQwLDEyICs2MTksMjQgQEAg c3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogew0KICAgICBsb25nIGVy cm9yID0gMDsNCiAgICAgc3RydWN0IGFybGFWaWNlSW9jdGwgdmljZV9pb2N0 bDsgDQotICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3Bpb2N0bCBtc2c7DQor ICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3Bpb2N0bCAqbXNnID0gTlVMTDsN CiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVwICptc2cyOw0KICAg ICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0 cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGgg cGF0aDsNCisjZW5kaWYNCiAgICAgDQorICAgIG1zZyA9IGttYWxsb2Moc2l6 ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCisgICAgaWYgKG1zZyA9PSBOVUxM KQ0KKyAgICAgIHJldHVybiAtRU5PTUVNOw0KKw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgIGxvY2tf a2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogbG9ja19rZXJuZWwo KSBpcyByZW1vdmVkLCBjb25zaWRlciBhZGRpbmcgYW4gcHJpdmF0ZSBsb2Nr ICovDQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lz X2FmcyBrZXJuZWwgbG9ja2VkXG4iKSk7DQogDQpAQCAtNTc1LDcgKzY2Niw3 IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkgICAgZ290byB1 bmxvY2s7DQogCX0NCiAJaWYgKHZpY2VfaW9jdGwuaW5fc2l6ZSAhPSAwKSB7 DQotCSAgICBpZihjb3B5X2Zyb21fdXNlcigmbXNnLm1zZywNCisJICAgIGlm KGNvcHlfZnJvbV91c2VyKCZtc2ctPm1zZywNCiAJCQkgICAgICB2aWNlX2lv Y3RsLmluLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwuaW5fc2l6ZSkgIT0gMCkg ew0KIAkJZXJyb3IgPSAtRUZBVUxUOw0KQEAgLTU4Myw3ICs2NzQsMTEgQEAg c3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCSAgICB9DQogCX0NCiAJ aWYgKGFfcGF0aFAgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBkZW50cnkgPSB1 c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlu a3MpOw0KKyNlbHNlDQorCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5 ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xsb3dTeW1saW5rcyk7DQorI2VuZGlm DQogCSAgICBpZiAoIWRlbnRyeSkgew0KIAkJZXJyb3IgPSAtRUlOVkFMOw0K IAkJZ290byB1bmxvY2s7DQpAQCAtNjI4LDE5ICs3MjMsMjMgQEAgc3lzX2Fm c19pbnQgKGludCBvcGVyYXRpb24sDQogCQllcnJvciA9IC1FSU5WQUw7DQog CQlnb3RvIHVubG9jazsNCiAJICAgIH0NCi0JICAgIG1zZy5oYW5kbGUgPSB4 bi0+aGFuZGxlOw0KKwkgICAgbXNnLT5oYW5kbGUgPSB4bi0+aGFuZGxlOw0K IAl9DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NU TDsNCi0JbXNnLm9wY29kZSA9IGFfb3Bjb2RlOw0KKwltc2ctPmhlYWRlci5v cGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KKwltc2ctPm9wY29kZSA9IGFf b3Bjb2RlOw0KIAkNCi0JbXNnLmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9z aXplOw0KLQltc2cub3V0c2l6ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0K LQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQotCW1zZy5jcmVkLnBh ZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJbXNnLT5pbnNpemUgICA9IHZpY2Vf aW9jdGwuaW5fc2l6ZTsNCisJbXNnLT5vdXRzaXplICA9IHZpY2VfaW9jdGwu b3V0X3NpemU7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf VkVSU0lPTigyLDYsMjgpDQorCW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51 aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50 X3VpZCgpOw0KKyNlbmRpZg0KKwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0 X3BhZygpOw0KIAkNCi0JZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYygmbm5w ZnNbMF0sICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7IC8qIFhYWCAqLw0K LQltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1cCAqKSAmbXNn Ow0KKwllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1z Zy0+aGVhZGVyLCBzaXplb2YoKm1zZykpOyAvKiBYWFggKi8NCisJbXNnMiA9 IChzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAgKikgbXNnOw0KIAlpZiAo ZXJyb3IgPT0gMCkNCiAJICAgIGVycm9yID0gbXNnMi0+ZXJyb3I7DQogDQpA QCAtNjc1LDEyICs3NzQsMjEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRp b24sDQogICAgIA0KICB1bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQotCXBh dGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE5LDApDQorCXBhdGhfcHV0KCZuZC5wYXRoKTsN CisjZWxzZQ0KKwlwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogDQogICAg IE5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVy cm9yOiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAgIE5OUEZTREVCKFhERUJT WVMsICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4iKSk7DQorICAgIGtmcmVl KG1zZyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzOSkNCiAgICAgdW5sb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQor ICAgIC8qIFRPRE86IHNlZSB0aGUgY29tbWVudCBhdCBsb2NrX2tlcm5lbCgp IGFib3ZlICovDQorI2VuZGlmDQogDQogICAgIHJldHVybiBlcnJvcjsNCiB9 DQpAQCAtNzI5LDkgKzgzNywxNSBAQCBzeXNfYWZzIChpbnQgb3BlcmF0aW9u LA0KIAkJICAgICAgIGFfZm9sbG93U3ltbGlua3MpOw0KIH0NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0K IHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2Rl ICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBp bnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBs b25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0K KwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQor I2VuZGlmDQogew0KICAgICBhZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25n IHJldDsNCkBAIC03ODAsMjEgKzg5NCwzMSBAQCBzdGF0aWMgaW50IG5ucGZz X2luaXRfcHJvY2ZzKHZvaWQpDQogew0KICAgICBzdHJ1Y3QgcHJvY19kaXJf ZW50cnkgKmVudHJ5Ow0KICAgICANCi0gICAgbm5wZnNfcHJvY2ZzX2RpciA9 IHByb2NfbWtkaXIoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQor ICAgIG5ucGZzX3Byb2Nmc19kaXIgPSBwcm9jX21rZGlyKCJmcy8iIE5OUEZT X1BST0NfRElSLCBOVUxMKTsNCiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIg PT0gTlVMTCkNCiAJcmV0dXJuIC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzApDQogICAg IG5ucGZzX3Byb2Nmc19kaXItPm93bmVyID0gVEhJU19NT0RVTEU7DQorI2Vu ZGlmDQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDEwLDApDQogICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50 cnkoTk5QRlNfUFJPQ19OT0RFLCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsN CisjZWxzZQ0KKyAgICBlbnRyeSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0Nf Tk9ERSwgMDY2NiwgTlVMTCwgJm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5k aWYNCiAgICAgaWYgKGVudHJ5ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERF QlNZUywgKCJubnBmc19pbml0X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KLQly ZW1vdmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2Zz KTsNCisJcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIs IE5VTEwpOw0KIAlyZXR1cm4gLUVOT01FTTsNCiAgICAgfQ0KICAgICANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMw KQ0KICAgICBlbnRyeS0+b3duZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx MCwwKQ0KICAgICBlbnRyeS0+cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19m b3BzOw0KKyNlbmRpZg0KIA0KICNpZmRlZiBTWVNDQUxMQ09NUEFUDQogICAg IGlmIChyZWdpc3Rlcl9pb2N0bDMyX2NvbnZlcnNpb24oQVJMQV9WSU9DX1NZ U0NBTEwzMiwgbm5wZnNfcHJvY2ZzX2lvY3RsMzIpKSB7DQpAQCAtODE1LDcg KzkzOSw3IEBAIHN0YXRpYyB2b2lkIG5ucGZzX2V4aXRfcHJvY2ZzKHZvaWQp DQogICAgIH0NCiAjZW5kaWYgLyogU1lTQ0FMTENPTVBBVCAqLw0KICAgICBy ZW1vdmVfcHJvY19lbnRyeShOTlBGU19QUk9DX05PREUsIG5ucGZzX3Byb2Nm c19kaXIpOw0KLSAgICByZW1vdmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJ UiwgcHJvY19yb290X2ZzKTsNCisgICAgcmVtb3ZlX3Byb2NfZW50cnkoImZz LyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIH0NCiANCiAjaWZkZWYgR1JP VVBQQUdTDQpAQCAtODM5LDE0ICs5NjMsNiBAQCBpbnN0YWxsX3NldGdyb3Vw cyh2b2lkKQ0KIHZvaWQNCiBpbnN0YWxsX2Fmc19zeXNjYWxsKHZvaWQpDQog ew0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYgKHJlZ2lzdGVy X3NlY3VyaXR5KCZubnBmc19zZWNfb3BzKSkNCi0JTk5QRlNERUIoWERFQlNZ UywNCi0JCSAoImluc3RhbGxfYWZzX3N5c2NhbGw6IG5ucGZzX2luaXRfc2Vj IGZhaWxlZFxuIikpOw0KLSAgICBlbHNlDQotCW5ucGZzX3NlY19yZWdpc3Rl cmVkID0gMTsNCi0jZW5kaWYNCi0NCiAgICAgbm5wZnNfaW5pdF9wcm9jZnMo KTsNCiANCiAjaWZkZWYgU1lTQ0FMTEhBQ0sNCkBAIC04ODcsMTIgKzEwMDMs NiBAQCByZXN0b3JlX2Fmc19zeXNjYWxsICh2b2lkKQ0KICNlbmRpZg0KICNl bmRpZiAvKiBTWVNDQUxMSEFDSyAqLw0KIA0KLSNpZmRlZiBDT05GSUdfU0VD VVJJVFkNCi0gICAgaWYgKG5ucGZzX3NlY19yZWdpc3RlcmVkKQ0KLQlpZiAo dW5yZWdpc3Rlcl9zZWN1cml0eSgmbm5wZnNfc2VjX29wcykpDQotCSAgICBw cmludGsoS0VSTl9FTUVSRyAibm5wZnNfZXhpdF9zZWM6IGNvdWxkbid0IHVu cmVnaXN0ZXJcbiIpOw0KLSNlbmRpZiAvKiAhQ09ORklHX1NFQ1VSSVRZICov DQotDQogI2lmZGVmIEdST1VQUEFHUw0KICNpZmRlZiBTWVNDQUxMSEFDSw0K ICAgICBpZiAob2xkX3NldGdyb3Vwcykgew0KZGlmZiAtdXByTiAtWG5vZGlm Zi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxv c3NhZ2UuYyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNf c3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4 L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDA2LTEyLTExIDE3OjMxOjQ1 LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBm cy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxNi0wMS0xMyAy MTo1MTo0OS42ODI0NTcyMTMgKzAxMDANCkBAIC00NywxMSArNDcsMjAgQEAN CiAjaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+DQogDQogI2lmZGVmIFJDU0lE DQotUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4x NyAyMDA2LzEyLzExIDE2OjMxOjQ1IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIk SWQ6IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyx2IDEuMTkgMjAxMC8wOC8w OCAyMDo0MzowNSB0b2wgRXhwICQiKTsNCisjZW5kaWYNCisNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKy8q IHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdv cmsgb24ga2VybmVsIDMuNyBhbmQgbGF0ZXIgKi8NCisjdW5kZWYgU1lTQ0FM TEhBQ0sNCiAjZW5kaWYNCiANCiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMu aD4NCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogc3RhdGljIHZvaWQgKmxv d2VyX2JvdW5kID0gJmtlcm5lbF90aHJlYWQ7DQorI2VuZGlmDQorI2VuZGlm DQogDQogdm9pZCAqIF9fYXR0cmlidXRlX18oKHdlYWspKSBzeXNfY2FsbF90 YWJsZSh2b2lkKTsNCiBubnBmc19zeXNfY2FsbF9mdW5jdGlvbiAqbm5wZnNf c3lzX2NhbGxfdGFibGUgPQ0KQEAgLTYzLDYgKzcyLDExIEBAIGNvbnN0IGNo YXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkNCiAJCSAgICB1bnNpZ25lZCBs b25nICpvZmZzZXQsDQogCQkgICAgY2hhciAqKm1vZG5hbWUsIGNoYXIgKm5h bWVidWYpOw0KIA0KKyNpZmRlZiBfX3g4Nl82NF9fDQorZXh0ZXJuIHJ3bG9j a190IHRhc2tsaXN0X2xvY2sgX19hdHRyaWJ1dGVfXygod2VhaykpOw0KKyNl bmRpZg0KKw0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0YXRpYyB2b2lkICoq DQogZ2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICNpZmRlZiBfX3g4Nl82NF9f DQpAQCAtNzEsNiArODUsNyBAQCBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQog ICAgIHJldHVybiAodm9pZCAqKikmbXV0ZXhfbG9jazsNCiAjZW5kaWYNCiB9 DQorI2VuZGlmDQogDQogc3RhdGljIGlubGluZSBpbnQgDQoga2FsbHN5bV9p c19lcXVhbCh1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKm5hbWUp DQpAQCAtMTM5LDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lkICoqcCkgew0KICAg ICByZXR1cm4gMTsNCiB9DQogDQorI2lmZGVmIFNZU0NBTExIQUNLDQorDQog c3RhdGljIGlubGluZSBpbnQgbG9va3NfZ29vZCh2b2lkICoqcCkNCiB7DQog ICAgIGlmICgqcCA8PSAodm9pZCopbG93ZXJfYm91bmQgfHwgKnAgPj0gKHZv aWQqKXApDQpAQCAtMTg4LDMgKzIwNSw1IEBAIG5ucGZzX2ZpeHVwX3N5c2Nh bGxfbG9zc2FnZSh2b2lkKQ0KIA0KICAgICByZXR1cm4gMDsNCiB9DQorDQor I2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5w ZnMvbGludXgvbm5wZnNfdmZzb3BzLmMgYXJsYS1mb3ItbGludXgtNC40L25u cGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jDQotLS0gYXJsYS0wLjkwL25ucGZz L2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMDYtMTItMTEgMTc6NDM6MzUuMDAw MDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xp bnV4L25ucGZzX3Zmc29wcy5jCTIwMTYtMDEtMTQgMTc6MTM6MTguMjYzNjU4 NTM2ICswMTAwDQpAQCAtNDQsMzAgKzQ0LDI2IEBADQogI2luY2x1ZGUgPGxp bnV4L21tLmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5w ZnNfdmZzb3BzLmMsdiAxLjEwOSAyMDA2LzEyLzExIDE2OjQzOjM1IHRvbCBF eHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5jLHYgMS4xMTEg MjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiAN CiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsNCiANCi1zdGF0aWMgdm9p ZCBubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOw0KIHN0 YXRpYyB2b2lkIG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiKTsNCi1zdGF0aWMgdm9pZCBubnBmc19wdXRfaW5vZGUoc3RydWN0IGlu b2RlICppbm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1 cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsNCisjZW5kaWYNCiANCi0j aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwx OCkNCiBzdGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpOw0KLSNlbHNlDQotc3RhdGlj IGludCBubnBmc19zdGF0ZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3Ry dWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2VuZGlmDQogDQogc3RhdGljIHN0cnVj dCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcHMgPSB7IA0KLSAgICByZWFk X2lub2RlCQk6IG5ucGZzX3JlYWRfaW5vZGUsDQotICAgIHB1dF9pbm9kZQkJ OiBubnBmc19wdXRfaW5vZGUsDQogICAgIGFsbG9jX2lub2RlCQk6IG5ucGZz X25vZGVfYWxsb2MsDQogICAgIGRlc3Ryb3lfaW5vZGUJOiBubnBmc19ub2Rl X2ZyZWUsDQogICAgIGRyb3BfaW5vZGUJCTogZ2VuZXJpY19kZWxldGVfaW5v ZGUsDQogICAgIHB1dF9zdXBlcgkJOiBubnBmc19wdXRfc3VwZXIsDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K ICAgICB3cml0ZV9zdXBlcgkJOiBubnBmc193cml0ZV9zdXBlciwNCisjZW5k aWYNCiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0YXRmcywNCiB9Ow0KIA0KQEAg LTk0LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2Rl ICppKQ0KIAkgKiByb290J3MgcHJpdmlsaWdlcyAodXN1YWxseSBub25lLCBh bmQgbm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8NCiAJDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJbXNnLmNy ZWQudWlkID0gMDsNCisjZWxzZQ0KKwltc2cuY3JlZC51aWQgPSBLVUlEVF9J TklUKDApOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSAwOw0KIAkNCiAJ ZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVy LCBzaXplb2YobXNnKSk7DQpAQCAtMTI5LDggKzEyOSwxMyBAQCBtYWtlX3Jv b3RfaW5vZGUoc3RydWN0IG5ucGZzICpubnBmc3ApDQogICAgIFhBX1NFVF9N T0RFKCZub2RlLmF0dHIsIFNfSUZESVIgfCAwNzc3KTsNCiAgICAgWEFfU0VU X05MSU5LKCZub2RlLmF0dHIsIDEwMCk7DQogICAgIFhBX1NFVF9TSVpFKCZu b2RlLmF0dHIsIDApOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApDQogICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0 ciwgMCk7DQogICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwgMCk7DQorI2Vs c2UNCisgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCBLVUlEVF9JTklUKDAp KTsNCisgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCBLR0lEVF9JTklUKDAp KTsNCisjZW5kaWYNCiAgICAgWEFfU0VUX0FUSU1FKCZub2RlLmF0dHIsIDAp Ow0KICAgICBYQV9TRVRfTVRJTUUoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhB X1NFVF9DVElNRSgmbm9kZS5hdHRyLCAwKTsNCkBAIC0xNTksNyArMTY0LDEx IEBAIG1ha2Vfcm9vdCAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikNCiAgICAg bm5wZnMtPnJvb3QgPSBpbm9kZTsNCiANCiAgICAgLyogWFhYIGVycm9yIGhh bmRsaW5nICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNCwwKQ0KICAgICBkcCA9IGRfYWxsb2Nfcm9vdChpbm9kZSk7 DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vfcm9vdChpbm9kZSk7DQorI2Vu ZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7DQogICAgIHNiLT5zX3Jvb3Qg PSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTgzLDEzICsxOTIsMjcgQEAg bm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICogcw0KICAg ICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNfcmVhZF9zdXBlcjogYmVn aW4gc2V0dGluZyB2YXJpYWJsZXNcbiIpKTsNCiANCiAgICAgaWYgKGRhdGEg IT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vs c2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAJDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJ ZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAwLCAmbmQpOw0KKyNlbGlmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJ ZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJm5kLnBhdGgpOw0KKyNlbHNl DQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAsICZwYXRoKTsNCisjZW5k aWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRldiA9IEVSUl9QVFIoZXJyb3Ip Ow0KIAllbHNlDQotCSAgICBkZGV2ID0gbmQuZGVudHJ5Ow0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAg ICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQorI2Vsc2UNCisJICAgIGRkZXYg PSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19FUlIoZGRl dikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9pbm9k ZS0+aV9yZGV2KTsNCkBAIC0yMzMsNyArMjU2LDcgQEAgbm5wZnNfZmlsbF9z dXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0KICAgICByZXR1cm4gMDsN CiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigyLDYsMTgpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0 IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdz LCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCkBAIC0yNDIsMTkgKzI2NSwyMiBA QCBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQog ICAgIHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEs IG5ucGZzX2ZpbGxfc3VwZXIsIG1udCk7DQogfQ0KICNlbHNlDQotc3RydWN0 IHN1cGVyX2Jsb2NrICoNCi1ubnBmc19nZXRfc2IgKHN0cnVjdCBmaWxlX3N5 c3RlbV90eXBlICpmc190eXBlLA0KLQkgICAgICBpbnQgZmxhZ3MsIGNvbnN0 IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKSANCitzdHJ1Y3QgZGVudHJ5 Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190 eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUs DQorCSAgICAgdm9pZCAqZGF0YSkgDQogew0KLSAgICByZXR1cm4gZ2V0X3Ni X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVy KTsNCisgICAgcmV0dXJuIG1vdW50X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBk YXRhLCBubnBmc19maWxsX3N1cGVyKTsNCiB9DQogI2VuZGlmDQogDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K IHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVy X2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+c19kaXJ0ID0gMDsNCiB9DQor I2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMgdGhpcyBnb29kPyANCkBAIC0y NzMsNzMgKzI5OSw2IEBAIG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNf cHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9DQogDQotc3RhdGljIHZvaWQN Ci1ubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQotew0K LSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIHN0 YXJ0aW5nIGlub2RlOiAlcFxuIixpbm9kZSkpOw0KLSAgICBOTlBGU0RFQihY REVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGlub2RlLT5pX2lubzogJWxk XG4iLGlub2RlLT5pX2lubykpOw0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQotICAgIGlub2RlLT5pX2Jsa3Np emUgPSAxMDI0Ow0KLSNlbmRpZg0KLSAgICBpbm9kZS0+aV9tb2RlID0gMDsN Ci0gICAgaW5vZGUtPmlfb3AgPSBOVUxMOw0KLSAgICBOTlBGU0RFQihYREVC VkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGV4aXRpbmdcbiIpKTsNCi19DQot IA0KLS8qDQotICogQ2FsbGVkIHdoZW4gYGlub2RlJyBpcyBkZS1yZWZlcmVu Y2VkLCBpZSB3aGVuIGlwdXQgaXMgY2FsbGVkLg0KLSAqLw0KLQ0KLXN0YXRp YyB2b2lkDQotbm5wZnNfcHV0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUp DQotew0KLSAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y Tk9ERShpbm9kZSk7DQotICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0gTk5Q RlNfRlJPTV9WTk9ERShpbm9kZSk7DQotICAgIGludCBiYWQ7DQotDQotICAg IE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3B1dF9pbm9kZTogaW5vZGU6 ICVwIGNvdW50OiAlZCBhbGlhc2VzOiIsDQotCQkJaW5vZGUsIG5ucGZzX2lj b3VudChpbm9kZSkpKTsNCi0gICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9k ZSk7DQotICAgIA0KLSAgICBkb3duKCZubnBmc3AtPmluYWN0aXZlX3NlbSk7 DQotDQotICAgIGlmICgobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZPUEVO KSA9PSAwKSB7DQotCWlmICghaXNfYmFkX2lub2RlKGlub2RlKSkgew0KLQkg ICAgaWYgKGlub2RlICE9IG5ucGZzcC0+cm9vdCkgew0KLQkJbWFrZV9iYWRf aW5vZGUoaW5vZGUpOw0KLQkJbm5wZnNfaXJlbGUoaW5vZGUpOyAvKiBzZWUg bm5wZnNfbm9kZV9hZGQoKSAqLw0KLQkgICAgfQ0KLQkgICAgeG4tPmZsYWdz IHw9IE5OUEZTX1NUQUxFOw0KLQl9DQotCWJhZCA9IDE7IC8qIG9yIHJvb3Qs IHJlYWxseSAqLw0KLSAgICB9IGVsc2Ugew0KLQliYWQgPSBpc19iYWRfaW5v ZGUoaW5vZGUpOw0KLSAgICB9DQotDQotICAgIGlmICh4bi0+ZmxhZ3MgJiBO TlBGU19TVEFMRSAmJiAhbm5wZnNfbm9kZV91c2Vycyhpbm9kZSkpIHsNCi0J eG4tPmZsYWdzIHw9IE5OUEZTX05PREVfSVBVVDsgLyogWFhYIGxvY2tpbmcg Ki8NCi0gIAlubnBmc19mb3JjZV9pbnZhbGlkX25vZGUoeG4pOw0KLQl4bi0+ ZmxhZ3MgJj0gfk5OUEZTX05PREVfSVBVVDsNCi0gICAgfQ0KLSAgICANCi0g ICAgaWYgKGJhZCkgew0KLQlpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAx KQ0KLQkgICAgbm5wZnNfbm9kZV9jbGVhcih4bik7DQotICAgIH0gZWxzZSBp ZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAyKSB7DQotCS8qIA0KLQkgKiBU aGUgbGFzdCBleHRlcm5hbCByZWZlcmVuY2UgaXMgYmVpbmcgZHJvcHBlZCwg b25seSB0aGUgb25lDQotCSAqIGZyb20gbm5wZnNfbm9kZV9hZGQoKSBpcyBs ZWZ0LiBUaW1lIHRvIGxldCBkYWVtb24gcmVsZWFzZQ0KLQkgKiB0aGlzIG5v ZGUgcHJvcGVybHkuDQotCSAqLw0KLQlpZiAoKHhuLT5mbGFncyAmIE5OUEZT X0xJTUJPKSA9PSAwKSB7DQotCSAgICBubnBmc19ub2RlX2NsZWFyKHhuKTsN Ci0JICAgIG5ucGZzX3F1ZXVlX2luYWN0aXZlKHhuKTsNCi0JfQ0KLSAgICB9 DQotDQotICAgIHVwKCZubnBmc3AtPmluYWN0aXZlX3NlbSk7DQotfQ0KLQ0K IHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNfaW50KHN0cnVjdCBzdXBlcl9i bG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQogew0KQEAgLTM1Miwy NSArMzExLDIxIEBAIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Js b2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWlsICA9IDEwMjQqMTAyNCoyLTUw Ow0KICAgICB0bXAuZl9maWxlcyAgID0gMTAyNCoxMDI0Ow0KICAgICB0bXAu Zl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsNCisgICAgdG1wLmZfZnNpZC52 YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lkLnZhbFsxXSA9IDA7DQogICAg IHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsNCisgICAgdG1wLmZfZnJzaXpl ICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBdID0gMDsNCisgICAgdG1wLmZf c3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVsyXSA9IDA7DQorICAg IHRtcC5mX3NwYXJlWzNdID0gMDsNCisgICAgdG1wLmZfc3BhcmVbNF0gPSAw Ow0KICAgICAqYnVmID0gdG1wOw0KICAgICByZXR1cm4gMDsNCiB9DQogDQot I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs MTgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpDQogew0KICAgICBy ZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50cnktPmRfc2IsIGJ1Zik7DQog fQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGludA0KLW5ucGZzX3N0YXRmcyhz dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKQ0K LXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRmc19pbnQoc2IsIGJ1Zik7DQot fQ0KLQ0KLSNlbmRpZg0K ---276651502-971852446-1452952049=:16393 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Arla-drinkers mailing list [email protected] https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers ---276651502-971852446-1452952049=:16393--