Re: PATCH v2: Arla CVS Current on Linux 2.6.34 to 4.4
Bo Branten <[email protected]> Sat, 16 Jan 2016 14:49:08 +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-1358444250-1452952148=:16393 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v2: Arla CVS Current 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-1358444250-1452952148=:16393 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v2-arla-cvs-for-linux-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v2-arla-cvs-for-linux-4.4 ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS1mb3ItbGludXgtNC40L25ucGZz L2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5oDQotLS0gYXJsYS1jdnMvbm5w ZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODoz MzozMC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQv bm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0xMiAx OToyOTo1MC41MjIwNzIwODQgKzAxMDANCkBAIC0xMTMsOCArMTEzLDEzIEBA IHN0cnVjdCBubnBmc19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5r Ow0KICAgICB1aW50MzJfdAkJeGFfdHlwZTsNCiANCisjaWYgKGRlZmluZWQo X19LRVJORUxfXykgJiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDMsMTQsMCkpDQorICAgIGt1aWRfdAkJeGFfdWlkOw0KKyAgICBr Z2lkX3QJCXhhX2dpZDsNCisjZWxzZQ0KICAgICB1aW50MzJfdAkJeGFfdWlk Ow0KICAgICB1aW50MzJfdAkJeGFfZ2lkOw0KKyNlbmRpZg0KIA0KICAgICB1 aW50MzJfdAkJeGFfYXRpbWU7DQogICAgIHVpbnQzMl90CQl4YV9tdGltZTsN CmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2luY2x1 ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oIGFybGEtZm9yLWxpbnV4LTQuNC9u bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaA0KLS0tIGFybGEt Y3ZzL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDkt MDItMjQgMjE6MjA6NTUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3It bGludXgtNC40L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5o CTIwMTYtMDEtMTQgMDA6MjY6MDQuMTI2MDE1MTM2ICswMTAwDQpAQCAtNTIs NyArNTIsMTEgQEAgdHlwZWRlZiB1aW50MTZfdCBubnBmc19yaWdodHM7DQog ICogVGhlIG5ucGZzX2NyZWQsIGlmIHBhZyA9PSAwLCB1c2UgdWlkIA0KICAq Lw0KIHR5cGVkZWYgc3RydWN0IG5ucGZzX2NyZWQgew0KKyNpZiAoZGVmaW5l ZChfX0tFUk5FTF9fKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM X1ZFUlNJT04oMywxNCwwKSkNCisgICAga3VpZF90IHVpZDsNCisjZWxzZQ0K ICAgICB1aW50MzJfdCB1aWQ7DQorI2VuZGlmDQogICAgIG5ucGZzX3BhZ190 IHBhZzsNCiB9IG5ucGZzX2NyZWQ7DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZm LnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oIGFy bGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5o DQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAky MDA2LTEwLTI0IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEt Zm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oCTIw MTYtMDEtMTMgMjI6NTc6MDYuMzg3NjkzMzM5ICswMTAwDQpAQCAtODQsOCAr ODQsMTMgQEAgc3RydWN0IG5ucGZzIHsNCiAgICAgc3RydWN0IHZmc21vdW50 ICpjYWNoZXJvb3Q7IC8qIHNpbXBsaWZ5IG9wZW4gb2YgY2FjaGUgYmxvY2tz ICovDQogICAgIHN0cnVjdCBkZW50cnkgKmNhY2hlZGlyOw0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQog ICAgIHVpZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVu dGl0eSAqLw0KICAgICBnaWRfdCBnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90 IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0eSAqLw0K KyAgICBrZ2lkX3QgZ2lkOw0KKyNlbmRpZg0KIA0KICAgICBzdHJ1Y3Qgew0K IAlpbnQgcmVjdXJzZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEt Y3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxhLWZvci1s aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oDQotLS0g YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oCTIwMTAt MDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3It bGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDE2 LTAxLTEzIDIzOjAxOjEwLjE3ODcwODAzNyArMDEwMA0KQEAgLTUxLDcgKzUx LDkgQEANCiAjaW5jbHVkZSA8bGludXgvc3RhdC5oPg0KICNpbmNsdWRlIDxs aW51eC9zdHJpbmcuaD4NCiAjaW5jbHVkZSA8bGludXgvbmFtZWkuaD4NCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNp bmNsdWRlIDxsaW51eC93YWl0Lmg+DQogDQogLyoNCkBAIC0xMzgsMTAgKzE0 MCwxNyBAQCB0eXBlZGVmIF9fdTMyICB1aW50MzJfdDsNCiBpbnQNCiBubnBm c19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSk7DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQN CiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5 cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwN CiAJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCk7DQor I2Vsc2UNCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBm aWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywg Y29uc3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSk7DQor I2VuZGlmDQogDQogZXh0ZXJuIHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyBu bnBmc19kZW50cnlfb3BlcmF0aW9uczsNCiANCkBAIC0xOTQsMTAgKzIwMywy MSBAQCBubnBmc19pd3JpdGVjb3VudCAoc3RydWN0IGlub2RlICppbm9kZSkN CiAgKiBIZWxwIGZ1bmN0aW9uIHRvIHJlYWQgdGhlIGRlbnRyeS0+ZF9jb3Vu dCBhIHBvcnRhYmxlIHdheQ0KICAqLw0KIA0KKy8qI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkqLw0KIHN0YXRpYyBp bmxpbmUgaW50DQogbm5wZnNfZGNvdW50IChjb25zdCBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnkpDQorLyojZWxzZQ0KK3N0YXRpYyBpbmxpbmUgaW50DQorbm5w ZnNfZGNvdW50IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmKi8N CiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRf Y291bnQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTEsMCkNCisgICAgcmV0dXJuIGF0b21pY19yZWFkKChjb25z dCBhdG9taWNfdCopJmRlbnRyeS0+ZF9jb3VudCk7DQorI2Vsc2UNCisgICAg cmV0dXJuIGRfY291bnQoZGVudHJ5KTs7DQorI2VuZGlmDQogfQ0KIA0KIGV4 dGVybiANCkBAIC0yMjksNyArMjQ5LDEyIEBAIG5ucGZzX2ZpeHVwX3N5c2Nh bGxfbG9zc2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5lIG5ucGZz X2Rldl90IGRldl90DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAjZGVmaW5lIG5ucGZzX2RfZW50cnlf dW5oYXNoZWQoZCkgaGxpc3RfdW5oYXNoZWQoZCkNCisjZWxzZQ0KKyNkZWZp bmUgbm5wZnNfZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF9ibF91bmhhc2hl ZChkKQ0KKyNlbmRpZg0KIA0KICNkZWZpbmUgTk5QRlNfTk9PUCAgICAgIHdo aWxlKDApe30NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3Zz L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jIGFybGEtZm9yLWxpbnV4LTQu NC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0KLS0tIGFybGEtY3ZzL25u cGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQu MDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtNC40L25ucGZz L2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTYtMDEtMTYgMTQ6MTY6NDkuOTk0 NDM3ODEzICswMTAwDQpAQCAtNDMsNiArNDMsMTEgQEANCiAjaW5jbHVkZSA8 bGludXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIs MCkNCitleHRlcm4gaW50IHZmc19wYXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5 ICosIHN0cnVjdCB2ZnNtb3VudCAqLA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwg dW5zaWduZWQgaW50LCBzdHJ1Y3QgcGF0aCAqKTsNCisjZW5kaWYNCisNCiAv Kg0KICAqIHJldHVybiB0cnVlIGlmIGJsb2NrIGlzIGluIGNhY2hlDQogICov DQpAQCAtMjkwLDcgKzI5NSwxMyBAQCBubnBmc19ibG9ja19leHRlbmQoc3Ry dWN0IG5ucGZzX25vZGUgKm5vDQogICAgIGJhY2tub2RlID0gYmFja2ZpbGUt PmZfbWFwcGluZy0+aG9zdDsNCiANCiAgICAgbXV0ZXhfbG9jaygmYmFja25v ZGUtPmlfbXV0ZXgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDgsMCkNCiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNr bm9kZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZWxzZQ0KKyAgICByZXQgPSBp bm9kZV9uZXdzaXplX29rKGJhY2tub2RlLCBubnBmc19ibG9ja3NpemUpOw0K KyAgICBpZighcmV0KQ0KKyAgICAgICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNr bm9kZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZW5kaWYNCiAgICAgbXV0ZXhf dW5sb2NrKCZiYWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxw X2Nsb3NlKGJhY2tmaWxlLCBOVUxMKTsNCkBAIC0zMTgsMTUgKzMyOSwyNyBA QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog ICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9YTk9ERShu b2RlKTsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IFhOT0RFX1RPX1ZO T0RFKG5vZGUpOw0KICAgICBpbnQgZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZs YWc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0K KyAgICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHVp ZF90IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisg ICAga3VpZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNl bmRpZg0KICAgICBpbnQgcmV0Ow0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUg Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjb25zdCBzdHJ1Y3Qg Y3JlZCAqb2xkX2NyZWQ7DQogICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9j cmVkOw0KICNlbmRpZg0KIA0KKyAgICAodm9pZClzYXZldWlkOw0KKyAgICAo dm9pZClzYXZlZ2lkOw0KKw0KICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAg IEJVR19PTihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCiAN CkBAIC0zNjYsMTAgKzM4OSwyMiBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVj dCBubnBmc19ub2RlICpub2RlDQogICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVf Y3JlZHMob3ZlcnJpZGVfY3JlZCk7DQogI2VuZGlmDQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KICAgICBy ZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNw LT5jYWNoZXJvb3QsDQogCQkJICBjYWNoZW5hbWUsDQogCQkJICBmbGFncyAm IE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCiAJCQkgICZuZCk7DQor I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNo ZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQor CQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJ CQkgICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9s b29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQor CQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09L VVBfUEFSRU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYNCiAgICAg aWYgKHJldCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5t YXNrczsNCiAJdWludDMyX3QgbWFzazsNCkBAIC0zOTYsMTYgKzQzMSwzNyBA QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog ICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBt b2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkN CiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQs IDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxsIHRvIGtl cm5fcGF0aF9jcmVhdGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVudCBvcHRp b25hbD8gKi8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRo X2NyZWF0ZShBVF9GRENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkNCisjZWxz ZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3BhdGhfY3Jl YXRlKCksIGlzIHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ICovDQor CXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRf RkRDV0QsIE5VTEwsICZwYXRoLCAwKTsJDQorI2VuZGlmDQogCWlmIChJU19F UlIoZGVudHJ5KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihkZW50cnkpOw0K IAl9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDYsMCkNCiAJICAgIHJldCA9IHZmc19jcmVhdGUobmQucGF0 aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAm bmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCisJICAgIC8qIFRPRE86IHNob3VsZCB0aGUgbGFzdCBh cmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwgYmUgMCBv ciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRoLmRlbnRy eS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDApOw0KKyNl bHNlDQorCSAgICAvKiBUT0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQg dG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8N CisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUs IGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCiAJICAg IGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCW11dGV4X3VubG9jaygm bmQucGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KIAlwYXRoX3B1 dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhfdW5sb2NrKCZwYXRoLmRl bnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBhdGhfcHV0KCZwYXRoKTsN CisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkgICAgcHJpbnRrKCJubnBm c19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVkOiAlZFxuIiwgY2FjaGVu YW1lLCAtcmV0KTsNCkBAIC00MjEsMTQgKzQ3NywyMyBAQCBubnBmc19ibG9j a19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIH0gZWxzZSB7 DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwyOSkNCiAJc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5wYXRo LmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzKTsNCi0jZWxzZQ0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K ICAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5wYXRo LmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzLCBjdXJyZW50X2NyZWQoKSk7 DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxOSwwKQ0KKwlzdHJ1Y3QgcGF0aCB0bXBfcGF0aCA9IHsgLm1udCA9IG5k LnBhdGgubW50LCAuZGVudHJ5ID0gbmQucGF0aC5kZW50cnkgfTsNCisgICAg ICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4oJnRtcF9wYXRoLCBm bGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNlDQorICAgICAgICBzdHJ1 Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRoLCBmbGFncywgY3VycmVu dF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAoSVNfRVJSKGYpKSB7DQogCSAg ICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJpbnRrKCJubnBmc19ibG9j a19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJl dCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAgIHBh dGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgcGF0aF9wdXQoJnBh dGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkgICAgKmZpbGUgPSBmOw0K IAl9DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9s aW51eC9ubnBmc19jb21tb24uYyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMv bGludXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51 eC9ubnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAw MCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9u bnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjM0NzQ0NzY1NyAr MDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2FsaWFz ZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJpbnRf YWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg IHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEwMDsN CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQog ICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQogCWlm ICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBubnBm c19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0NCiAJ YWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAg ICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUt PmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3Jf ZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMp IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks ICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQor CWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4iKTsN CisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAgIHBy aW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQor CQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAgaWYg KG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJ CXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5kaWYN CiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcxLDEx IEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50cnkN CiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJz KSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN CiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry dWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVjdCBk ZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnks IGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVwKSIs IChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+ZF9u YW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy bGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEtZm9yLWxpbnV4 LTQuNC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtY3ZzL25u 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 ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgv bm5wZnNfaW5vZGVvcHMuYyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGlu dXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4 L25ucGZzX2lub2Rlb3BzLmMJMjAxMC0wOC0wOCAyMjo0MzowNC4wMDAwMDAw MDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGludXgv bm5wZnNfaW5vZGVvcHMuYwkyMDE2LTAxLTE1IDEyOjQ0OjU2LjkyMjg5NjYz OSArMDEwMA0KQEAgLTQwLDEwICs0MCwxNCBAQA0KICNpbmNsdWRlIDxubnBm cy9ubnBmc19kZXYuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGlyZW50 Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQorI2lu Y2x1ZGUgPGxpbnV4L2Fpby5oPg0KICNpbmNsdWRlIDxsaW51eC9iaW5mbXRz Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCiAjaW5jbHVkZSA8bGlu dXgvcGFnZW1hcC5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlLWZsYWdzLmg+ DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTig0 LDEsMCkNCisjaW5jbHVkZSA8bGludXgvdWlvLmg+DQorI2VuZGlmDQogI2lu Y2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPg0KICNpbmNsdWRlIDxhc20vZmNu dGwuaD4NCiANCkBAIC01NCwxMSArNTgsMjMgQEAgUkNTSUQoIiRJZDogbm5w ZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIwMQ0KIHN0YXRpYyBpbnQNCiBubnBm c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj dCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0K KyNlbHNlDQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2Vu ZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShz dHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50 DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5 KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFz ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTIxNCw4ICsyMzAsMTMg QEAgbm5wZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSkNCiAg KiBubnBmc19sb29rdXAgbm93IHJldHVybnMgYSBkZW50cnkuDQogICovDQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiBubnBmc19sb29rdXAg KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0 cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBk ZW50cnkgKg0KK25ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNl bmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0bm9kZSBt c2c7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KQEAgLTQwNyw3ICs0 MjgsMTEgQEAgZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qgbm5wZnNfbm9kZSAq bm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZp bGUgKmZpbGUsIHVfaW50IGZsYWcpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBp bm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxz ZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRl bnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpu bnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RFKGlub2RlKTsNCiAgICAgc3RydWN0 IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAg ICBsb2ZmX3QgbGVuID0gaV9zaXplX3JlYWQoaW5vZGUpOw0KQEAgLTQ3NCwx NSArNDk5LDE4IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmls ZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KIHN0YXRpYyBp bnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRl bnRyeSAqZGVudHJ5LCBpbnQgZGF0YXN5bmMpDQotI2Vsc2UNCisjZWxpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiBz dGF0aWMgaW50DQogbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGlu dCBkYXRhc3luYykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3lu YyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5k LCBpbnQgZGF0YXN5bmMpDQogI2VuZGlmDQogew0KLSNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiwgNiwgMzUpDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQog ICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50 cnk7DQogI2VuZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5U UllfVE9fSU5PREUoZGVudHJ5KTsNCkBAIC00OTAsNiArNTE4LDggQEAgbm5w ZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhcw0KICAgICBz dHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQog DQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19p bm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJu IGVycm9yOw0KQEAgLTYyMiwxMSArNjUyLDI1IEBAIGNoZWNrX3JpZ2h0cyAo bm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xk IGlfbXV0ZXguDQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05fQ09E RSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkpDQogc3RhdGljIGludA0KIG5u cGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUp DQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfcGVybWlzc2lvbihzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZsYWdz KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAgbm5w ZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBmc19w YWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NL KQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYg KGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVD SElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3BhZygp Ow0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fj Y2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9kZSkp Ow0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC03ODQs MTEgKzgyOCwxOSBAQCBubnBmc19kYXRhX3ZhbGlkKHN0cnVjdCBpbm9kZSAq aW5vZGUsIHVfDQogaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAq IGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSkNCiB7DQogICAg IGludCBmbGFncywgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0K KyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRy eS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7DQogDQogICAgIE5OUEZT REVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGlub2RlOiAlcFxuIiwgaW5v ZGUpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KICAgICBubnBmc19wcmludF9wYXRoKGZpbGUtPmZfZGVu dHJ5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wcmludF9wYXRoKGZpbGUtPmZf cGF0aC5kZW50cnkpOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5P UFMsICgibm5wZnNfbW1hcCBhbGlhc2VzOiIpKTsNCiAgICAgbm5wZnNfcHJp bnRfYWxpYXNlcyhpbm9kZSk7DQogICAgIA0KQEAgLTgyMywyOCArODc1LDUx IEBAIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBmaWxlLA0K ICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fp b19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJICAgICAgIGNvbnN0IHN0 cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQogCSAg ICAgICBsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3RhdGljIHNzaXplX3QNCitu bnBmc19yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92 X2l0ZXIgKnRvKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsN CiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDAp DQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0K KyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNl DQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y Tk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJ Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRv a2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2Rl LCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNlDQor ICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFU QV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisj ZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBl cnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkN CiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92 LCBucl9zZWdzLCBwb3MpOw0KKyNlbHNlDQorICAgIGVycm9yID0gZ2VuZXJp Y19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQorI2VuZGlmDQogICAgIE5O UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0g JWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAt ODUzLDE3ICs5MjgsMzYgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2Ni ICppb2NiLA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0K IG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQljb25z dCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0K IAkJbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5w ZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3Zf aXRlciAqZnJvbSkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7 DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiww KQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkN CisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxz ZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7 DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U T19YTk9ERShpbm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBw b3M7DQorI2Vsc2UNCisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9w b3M7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs ICgibm5wZnNfYWlvX3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJ CSBpbm9kZSwgeG4tPnRva2VucykpOw0KQEAgLTg3Nyw3ICs5NzEsMTEgQEAg bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJcmV0dXJu IGVycm9yOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmlj X2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisj ZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlv Y2IsIGZyb20pOw0KKyNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShl cnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBY WFggcmFjZSAqLw0KIA0KQEAgLTg4NSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlv X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1 Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0 aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1 Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBm c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl bnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5k aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1 Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTAzOCw4ICsxMTQ2LDEzIEBAIG5u cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg cmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZz X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19t a2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy eSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u cGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBA IC0xMjUyLDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGlu ayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4N CiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVj dCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxk aXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1 Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNl bmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0 LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9k ZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lu b2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2Rl Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9E RShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMzI4LDYgKzE0NTAs NyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAq DQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1sZW4sDQogCQkgICAgKGlu dCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJICAgIGlm ICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAoZmlsbGRpcl9lcnJv ciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAgICB4ZGlyZW50LT5kX25h bWUsDQpAQCAtMTMzOSw2ICsxNDYyLDE4IEBAIG5ucGZzX3JlYWRkaXIoc3Ry dWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGly IGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsN CiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5v ICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwN CisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVu dC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQor CQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERF QlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxu IiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2Vu ZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQog CSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KQEAgLTEzOTUs OSArMTUzMCwxNSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAq ZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0 LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpu ZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19mb2xs b3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZvaWQgKipw YWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAg c3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkp Ow0KQEAgLTE0MDgsNyArMTU0OSwxMSBAQCBubnBmc19mb2xsb3dfbGluayAo c3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAg ICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJu IHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2Vsc2UN CisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBw YWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBAIC0xNDkwLDYgKzE2MzUs OCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUs DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9y ID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RF QihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQog ICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE1 MjMsOCArMTY3MCwxMyBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls ZSwgZmxfb3duZXJfDQogew0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi bm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmlsZSAmJiBm aWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSkNCiAJ cmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYgZmlsZS0+ Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl KQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZfcGF0aC5k ZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBlbHNlDQog CXJldHVybiAwOw0KIH0NCkBAIC0xNTMzLDggKzE2ODUsMTMgQEAgbm5wZnNf Zmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyXw0KICAqIFJldHVy biAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4N CiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0 ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5k KQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSAN CitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1 bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg aW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAg IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAg XCIlLipzXCIgKGlub2RlICVwKVxuIiwNCkBAIC0xNTgyLDkgKzE3MzksMTUg QEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0K ICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQNCiBu bnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vsc2UN CitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5v ZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAt MTYxNCw3ICsxNzc3LDExIEBAIG5ucGZzX3NwbGljZV9yZWFkKHN0cnVjdCBm aWxlICpmaWxlLCBsb2YNCiAJCSAgdW5zaWduZWQgaW50IGZsYWdzKQ0KIHsN CiAgICAgaW50IGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisg ICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnkt PmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4 biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAgIGlmICh4 biAhPSBOVUxMKQ0KQEAgLTE3MDcsNiArMTg3NCw4IEBAIG5ucGZzX3dyaXRl X2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLA0KIA0KIAlpbnQgZXJyb3I7 DQogCQ0KKwkodm9pZClvZmZzZXQ7DQorDQogCWRvIHsNCiAJCWVycm9yID0g cGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBs ZW4sDQogCQkJCQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQpA QCAtMTc0Nyw2ICsxOTE2LDggQEAgbm5wZnNfcmVhZF9iYWNrcGFnZShzdHJ1 Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7DQog CXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KKwkodm9pZClvZmZzZXQ7DQor DQogCWJhY2twYWdlID0gcmVhZF9tYXBwaW5nX3BhZ2UobWFwcGluZywgbiwg YmFja2ZpbGUpOw0KIAlpZiAoIUlTX0VSUihiYWNrcGFnZSkpIHsNCiAJCXdh aXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0KQEAgLTE4OTQsMTEgKzIw NjUsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmls ZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkg ew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVycm9yID0gdm10cnVuY2F0ZShp bm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJCWVycm9yID0gaW5vZGVfbmV3 c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQorCQlpZighZXJyb3IpDQorCQkJ dHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2VuZGlmDQog CQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5ucGZzX3ByZXBhcmVfd3Jp dGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0KIAkJCSAgICAgICBtb2Rz aXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBYWFggbm90IGNvcnJlY3Qg Ki8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3QgY29ycmVjdCAqLw0KIAkJ fQ0KIAl9DQogDQpAQCAtMTk5MywxMCArMjE3MCwxOCBAQCBubnBmc193cml0 ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQogCS8qIHplcm8g dGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQg Y29weSAqLw0KIAlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJdm9pZCAq a2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UN CisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlm DQogCQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBj b3BpZWQpOw0KIAkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJ a3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlr dW5tYXBfYXRvbWljKGthZGRyKTsNCisjZW5kaWYNCiAJfQ0KIA0KIAlubnBm c19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGll ZCk7DQpAQCAtMjAyNyw4ICsyMjEyLDEzIEBAIHN0cnVjdCBhZGRyZXNzX3Nw YWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8NCiANCiBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0aW9ucyA9IHsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K ICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVhZCwNCiAgICAgLmFpb193 cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxzZQ0KKyAgICAucmVhZF9p dGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAud3JpdGVfaXRlcgk9IG5u cGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAgIC5tbWFwCT0gbm5wZnNf ZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZzX29wZW4sDQogICAgIC5m bHVzaAk9IG5ucGZzX2ZsdXNoLA0KQEAgLTIwNDEsNyArMjIzMSwxMSBAQCBz dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRfb3BlcmF0DQogfTsN CiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rpcl9vcGVyYXRp b25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0gbm5wZnNfcmVhZGRpciwN CisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5ucGZzX2l0ZXJhdGUsDQor I2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KIH07DQogDQpk aWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9u bnBmc19sb2FkLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25u cGZzX2xvYWQuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2xv YWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysr IGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJ MjAxNi0wMS0xMyAyMDoxNDowMi44MzAxMDM1MTcgKzAxMDANCkBAIC01NCw3 ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBm c19mb3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgbm5wZnNfZnNf dHlwZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAgICAgICJubnBmcyIsDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz OSkNCiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5ucGZzX2dldF9zYiwNCisj ZWxzZQ0KKyAgICAgICBtb3VudDogICAgICAgICAgbm5wZnNfbW91bnQsDQor I2VuZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAgICBraWxsX2xpdHRlcl9z dXBlciwNCiAgICAgICAgb3duZXI6ICAgICAgICAgIFRISVNfTU9EVUxFLA0K IH07DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9s aW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZz L2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xp bnV4L25ucGZzX21lc3NhZ2UuYwkyMDEwLTA4LTA4IDIyOjQzOjA1LjAwMDAw MDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51 eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0wMS0xNCAxNjo1MDoxNS4xMzk1NzUx NTEgKzAxMDANCkBAIC01NSw5ICs1NSwxNSBAQCBzdGF0aWMgdm9pZA0KIG5u cGZzX2RfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB7DQogICAg IE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfZF9yZW1vdmUgJXBcbiIsIGRl bnRyeSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0K ICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBzcGluX3VubG9jaygm ZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygmZGVudHJ5 LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRyeSk7DQorICAgIHNw aW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQorI2VuZGlmDQogICAgIGRf ZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7DQogfQ0KQEAgLTEy MSw3ICsxMjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1 Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRpLCAqaW5vZGU7DQog ICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7DQogICAgIHN0cnVj dCBxc3RyIHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxp YXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisj ZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNf bWVzc2FnZV9pbnN0YWxsbm9kZVxuIikpOw0KICAgICANCkBAIC0xNzYsMTIg KzE4NiwyNiBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBu bnBmcyAqDQogICAgICAqDQogICAgICAqLw0KICAgICANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFs aWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAh PSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxpc3RfZW50cnkoYWxp YXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlzcGluX2xvY2soJmRj YWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50KTsNCi0Jc3Bpbl91 bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2Vh Y2hfZW50cnkocGFyZW50LCBhbGlhcywgJmRpLT5pX2RlbnRyeSwgZF9hbGlh cykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50 LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxp c3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX3Uu ZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIHNwaW5fbG9jaygmZGNh Y2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChwYXJlbnQpOw0KKyAgICBz cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5f bG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKHBhcmVu dCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQorI2Vu ZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVudCwgJnNxc3RyKTsNCiAJ Tk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZzX21lc3NhZ2VfaW5zdGFs bG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIsDQpAQCAtMjMzLDcgKzI1 Nyw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZz ICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVudHJ5ID0gTlVMTDsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogCWRwdXQocGFy ZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZz X21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFsbGluZ1xuIikpOw0K QEAgLTI2OCw3ICsyOTQsMTMgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0 cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAgIGlub2RlID0gWE5P REVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50cnkgPSBsaXN0X2VudHJ5 KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFz KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlub2RlLT5p X2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vs c2UNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5 LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7DQorI2VuZGlm DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3Nh Z2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJCSAgICAgICBkZW50cnkt PmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0MjgsMzYgQEAgbm5wZnNf bWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0KIHN0YXRpYyB2 b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5 Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQor ICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiANCiAg YWdhaW46DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQor I2Vsc2UNCisgICAgLyogVE9ETzogZmluZCB0aGUgZGVudHJ5IHRvIGxvY2sg Ki8NCisgICAgLypzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNl bmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsN CiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0J c3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3Jf ZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBk X2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk ZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0K KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9k ZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0 X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAq eGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3Ry dWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkg PT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBh bmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAg IGJyZWFrOw0KQEAgLTQyMiw3ICs0NzMsMTEgQEAgY2xlYXJfYWxsX2NoaWxk cmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5 LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRy eS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAg PSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9 IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7 DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9l bnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0K IAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhE RUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2Rl OiAlcC8lcCAiDQogCQkJICAgICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4i LA0KQEAgLTQ0MiwxNCArNDk3LDI2IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAo c3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVk aWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAw KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2sp Ow0KKyNlbHNlDQorCQkvKiBUT0RPOiB1bmxvY2sgdGhlIGRlbnRyeSAqLw0K KwkJLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOyovDQorI2VuZGlm DQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQlnb3RvIGFnYWluOw0K IAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNl bmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9s b2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiB1bmxvY2sgdGhlIGRlbnRy eSAqLw0KKyAgICAvKnNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7Ki8N CisjZW5kaWYNCiB9DQogDQogc3RhdGljIHZvaWQNCkBAIC03MTksMTIgKzc4 NiwyMiBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpu bnBmDQogDQogICAgIC8qIHNhbml0eSBjaGVjayBiZWZvcmUgd2UgbG9vayBh dCBpdCAqLw0KICAgICBpZiAoc2l6ZSA9PSBzaXplb2YoKm1lc3NhZ2UpICYm IG1lc3NhZ2UtPnZlcnNpb24gPT0gTk5QRlNfVkVSU0lPTikgew0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog CXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGgg cGF0aDsNCisjZW5kaWYNCiAJaW50IGVycm9yOw0KIA0KIAl1aW50NjRfdCBi bG9ja3NpemUgPSBtZXNzYWdlLT5ibG9ja3NpemU7DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJy b3IgPSBwYXRoX2xvb2t1cCgiLiIsIDAsICZuZCk7DQorI2VsaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJv ciA9IGtlcm5fcGF0aCgiLiIsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwll cnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZwYXRoKTsNCisjZW5kaWYNCiAJ aWYgKGVycm9yKSB7DQogCSAgICAvKg0KIAkgICAgICogQmFkIGNhY2hlIHJv b3QsIGp1c3QgcmV0dXJuLg0KQEAgLTczNSw5ICs4MTIsMTUgQEAgbm5wZnNf bWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJICAgIm5u cGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9sb29rdXAsICINCiAJ CSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJfSBlbHNlIHsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K IAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQucGF0aC5tbnQp Ow0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQucGF0aC5kZW50 cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCSAg ICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChwYXRoLm1udCk7DQorCSAg ICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRoLmRlbnRyeSk7DQorCSAg ICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogCSAgICANCiAjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJ ICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQpkaWZmIC11cHJO IC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19ub2Rl LmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX25vZGUu Yw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDA3 LTAxLTAzIDE0OjUyOjAyLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9y LWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMJMjAxNi0wMS0x NCAxNjo1MToxMS40MjA1Nzg1NDQgKzAxMDANCkBAIC0xMzIsNyArMTMyLDEy IEBAIG5ucGZzX3NldHNpemUoc3RydWN0IGlub2RlICppbm9kZSwgdWludDYN CiAJcHJpbnRrKCJubnBmc19zZXRzaXplOiB0cnVuY2F0aW5nIEAweCVsbHVc biIsDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKXNpemUpOw0KICNl bmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDgsMCkNCiAJdm10cnVuY2F0ZShpbm9kZSwgc2l6ZSk7IC8qIFhYWCBy ZXR2YWwgKi8NCisjZWxzZQ0KKwlpZighaW5vZGVfbmV3c2l6ZV9vayhpbm9k ZSwgc2l6ZSkpDQorCSAgICB0cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBzaXpl KTsNCisjZW5kaWYNCiAJbm5wZnNfYmxvY2tfdHJ1bmNhdGUoeG4sIHNpemUp Ow0KICAgICB9DQogfQ0KQEAgLTE1MCw5ICsxNTUsMTggQEAgbm5wZnNfYXR0 cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0cg0KIAlzdHJ1Y3QgdGlt ZXNwZWMgbm90aW1lID0gezB9Ow0KIA0KIAlpbm9kZS0+aV9tb2RlICAgPSAw Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE0LDApDQogCWlub2RlLT5pX3VpZCAgICA9IDA7DQogCWlub2RlLT5pX2dp ZCAgICA9IDA7DQorI2Vsc2UNCisJaW5vZGUtPmlfdWlkICAgID0gS1VJRFRf SU5JVCgwKTsNCisJaW5vZGUtPmlfZ2lkICAgID0gS0dJRFRfSU5JVCgwKTsN CisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5rICA9IDE7DQorI2Vsc2UN CisJc2V0X25saW5rKGlub2RlLCAxKTsNCisjZW5kaWYNCiAJaW5vZGUtPmlf YXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9tdGltZSAgPSBub3RpbWU7 DQogCWlub2RlLT5pX2N0aW1lICA9IG5vdGltZTsNCkBAIC0xNjksNyArMTgz LDExIEBAIG5ucGZzX2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0 dHINCiAgICAgaWYgKFhBX1ZBTElEX0dJRChhdHRyKSkNCiAJaW5vZGUtPmlf Z2lkICAgID0gYXR0ci0+eGFfZ2lkOw0KICAgICBpZiAoWEFfVkFMSURfTkxJ TksoYXR0cikpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSBhdHRyLT54YV9u bGluazsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIGF0dHItPnhhX25s aW5rKTsNCisjZW5kaWYNCiAgICAgDQogICAgIGlmIChYQV9WQUxJRF9TSVpF KGF0dHIpKSB7DQogCW5ucGZzX3NldHNpemUoaW5vZGUsIGF0dHItPnhhX3Np emUpOw0KQEAgLTUxMCwxMiArNTI4LDI0IEBAIG5ucGZzX2hhc19wYWcoY29u c3Qgc3RydWN0IG5ucGZzX25vZGUgKngNCiBpbnQNCiBubnBmc19ub2RlX3Vz ZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0 IGxpc3RfaGVhZCAqcG9zOw0KKyNlbHNlDQorICAgIHN0cnVjdCBobGlzdF9u b2RlICpwb3M7DQorI2VuZGlmDQogICAgIGludCB1c2VycyA9IDA7DQogICAg IA0KICAgICAvKiBYWFggdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgcHJvdGVj dGVkIHNvbWVob3cgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGxpc3RfZm9yX2VhY2gocG9zLCAm aW5vZGUtPmlfZGVudHJ5KSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2Vh Y2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQorI2VuZGlmDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJ c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVj dCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkg KmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3QgZGVudHJ5LCBkX3Uu ZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChubnBmc19kY291bnQoZGVudHJ5 KSA+IDEpDQogCSAgICB1c2VycysrOw0KICAgICB9DQpkaWZmIC11cHJOIC1Y bm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs cy5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19zeXNj YWxscy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lzY2Fs bHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAwMDAwMCArMDIwMA0KKysr IGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs cy5jCTIwMTYtMDEtMTQgMTc6MDA6MjAuNjQxNjExNjU1ICswMTAwDQpAQCAt NDIsNyArNDIsOSBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19zeXNjYWxs cy5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19jb21tb24uaD4NCiAjaW5j bHVkZSA8bGludXgvZmlsZS5oPg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2luY2x1ZGUgPGxpbnV4L3Nt cF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0K ICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+DQogDQpAQCAtNTAsNiArNTIs MTEgQEANCiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4NCiAjZW5kaWYN CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O KDMsNywwKQ0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKy8qIHRoZSBtZXRob2Qg dG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVs IDMuNyBhbmQgbGF0ZXIsIHNlIG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyAq Lw0KKyNlbmRpZg0KKw0KICNpZiAwDQogI2lmZGVmIENPTkZJR19DT01QQVQN CiAjaW5jbHVkZSA8bGludXgvaW9jdGwzMi5oPg0KQEAgLTgyLDEyICs4OSwy MiBAQCB0eXBlZGVmIHN0cnVjdCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2ln bmVkIGxvbmcgc3lzY2FsbDsNCiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQog c3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGlu dCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBs b25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0K KwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0K KyNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u cGZzX3Byb2Nmc19mb3BzID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZz X3Byb2Nmc19pb2N0bCwNCisjZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwg PSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBA IC0xNjAsOCArMTc3LDEwIEBAIG5ucGZzX2dldF9wYWdfc2VjKHZvaWQpDQog DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQotI2Vsc2UNCisj ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0 LDApDQogICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAg IHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3VpZC52 YWw7IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtMTk5LDcgKzIxOCwxMiBAQCBm aW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogICAgIE5OUEZTREVC KFhERUJTWVMsICgiZmluZF9wYWc6IG5ncm91cHMgPSAlZFxuIiwgZ2ktPm5n cm91cHMpKTsNCiANCiAgICAgZm9yIChpID0gZ2ktPm5ncm91cHMgLSAxOyBp ID49IDA7IGktLSkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApDQogCWdpZF90IGdyb3VwID0gR1JPVVBfQVQo Z2ksIGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3JvdXAgPSBHUk9VUF9BVChn aSwgaSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3VwLnZhbDsNCisjZW5kaWYN CiAJaWYgKChubnBmc19wYWdfdClncm91cCA+PSBOTlBGU19QQUdfTExJTSAm JiAobm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19QQUdfVUxJTSkgew0KIAkg ICAgTk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAgKCJmaW5kX3BhZzogRXhp c3RpbmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3JvdXAsIGkpKTsNCkBAIC0y MjAsNyArMjQ0LDEyIEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiAg ICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+dWlkOw0KICNlbHNlDQog ICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdldF9jdXJyZW50X2dyb3Vw cygpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE0LDApDQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnRfdWlk KCk7DQorI2Vsc2UNCisgICAga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgp Ow0KKyAgICBubnBmc19wYWdfdCByZXQgPSBrdWlkLnZhbDsNCisjZW5kaWYN CiAjZW5kaWYNCiAgICAgaW50IGk7DQogDQpAQCAtMjMwLDcgKzI1OSwxMSBA QCBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQogDQogICAgIGkgPSBmaW5k X3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VORCkN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx NCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJeyBr Z2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsgcmV0ID0ga2dpZC52YWw7 IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3VwX2luZm8oZ2kpOw0KIA0K QEAgLTI4MCwxMCArMzEzLDE3IEBAIHN0b3JlX3BhZyhubnBmc19wYWdfdCBw YWdudW0pDQogCWNvdW50IC09IE5HUk9VUFNfUEVSX0JMT0NLOw0KICAgICB9 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTQsMCkNCiAgICAgaWYgKGZvdW5kKQ0KIAlHUk9VUF9BVChuZXdfZ2ks IGkpID0gcGFnbnVtOw0KICAgICBlbHNlDQogCUdST1VQX0FUKG5ld19naSwg bmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBwYWdudW07DQorI2Vsc2UNCisgICAg aWYgKGZvdW5kKQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdu dW0pOyBHUk9VUF9BVChuZXdfZ2ksIGkpID0ga2dpZDsgfQ0KKyAgICBlbHNl DQorCXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQ X0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQor I2VuZGlmDQogICAgIA0KICAgICBzZXRfY3VycmVudF9ncm91cHMobmV3X2dp KTsNCiAgICAgcHV0X2dyb3VwX2luZm8obmV3X2dpKTsNCkBAIC0zMjUsOCAr MzY1LDEwIEBAIG5ucGZzX2dldF9wYWcoKQ0KIA0KICNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1 cm4gY3VycmVudC0+dWlkOw0KLSNlbHNlDQorI2VsaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICByZXR1cm4g Y3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0g Y3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQogI2VuZGlmDQog fQ0KIA0KQEAgLTQzMiw3ICs0NzQsNyBAQCBubnBmc19zZXRncm91cHMxNiAo aW50IGdpZHNldHNpemUsIG9sZF9nDQogI2VuZGlmIC8qIFNZU0NBTExIQUNL ICovDQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KLXN0cnVjdCBmaWxl X2hhbmRsZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVfaGFuZGxlIHsNCiAgICAg bm5wZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBpbm9kZTsNCiAgICAgX191 MzIgZ2VuOw0KQEAgLTUxOSwxNCArNTYxLDI3IEBAIG5ucGZzX2RlYnVnX3By aW50IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bA0KICAqIGZvbGxvdyBzeW1saW5r cyBpZmYgYGZvbGxvdycNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3Qg ZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRh ICpuZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQor c3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0 cnVjdCBwYXRoICpwYXRoLCBjaGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cp DQorI2VuZGlmDQogew0KLSAgICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZs YWdzID0gMDsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCi0gICAga25hbWUg PSBnZXRuYW1lICh1c2VyX3BhdGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisgICAgY2hhciAqa25hbWU7 DQorICAgIGtuYW1lID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQor ICAgIGNvbnN0IGNoYXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUg KmZuYW1lOw0KKyAgICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisg ICAga25hbWUgPSBmbmFtZS0+bmFtZTsNCisjZW5kaWYNCisNCiAgICAgaWYg KElTX0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25h bWUpKTsNCiAgICAgaWYgKGZvbGxvdykNCkBAIC01MzQsMTEgKzU4OSwyNSBA QCB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwNCiAN CiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19zeXNjYWxsOiBsb29r aW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBlcnJvciA9 IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywgbmQpOw0KKyNlbGlmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAg ZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRoKSk7 DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdz LCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAgIHB1dG5hbWUoa25hbWUpOw0K KyNlbHNlDQorICAgIGttZW1fY2FjaGVfZnJlZShuYW1lc19jYWNoZXAsICh2 b2lkICopa25hbWUpOw0KKyNlbmRpZg0KICAgICBpZiAoZXJyb3IpDQogCXJl dHVybiBFUlJfUFRSKGVycm9yKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICByZXR1cm4gbmQtPnBh dGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVybiBwYXRoLT5kZW50cnk7 DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9uZw0KQEAgLTU1Mywx MyArNjIyLDIxIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAg ICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQog ICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAg c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1 Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBh dGg7DQorI2VuZGlmDQogICAgIA0KICAgICBtc2cgPSBrbWFsbG9jKHNpemVv ZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQogICAgIGlmIChtc2cgPT0gTlVMTCkN CiAgICAgICByZXR1cm4gLUVOT01FTTsNCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBsb2NrX2tl cm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IGxvY2tfa2VybmVsKCkg aXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRkaW5nIGFuIHByaXZhdGUgbG9jayAq Lw0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19h ZnMga2VybmVsIGxvY2tlZFxuIikpOw0KIA0KQEAgLTU5Nyw3ICs2NzQsMTEg QEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCSAgICB9DQogCX0N CiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBkZW50cnkg PSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFfcGF0aFAsIGFfZm9sbG93U3lt bGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVu dHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xsb3dTeW1saW5rcyk7DQorI2Vu ZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0KIAkJZXJyb3IgPSAtRUlOVkFM Ow0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjkzLDEzICs3NzQsMjEgQEAgc3lz X2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxvY2s6DQog ICAgIGlmIChkZW50cnkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJcGF0aF9wdXQoJm5kLnBhdGgpOw0K KyNlbHNlDQorCXBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAgICAg Tk5QRlNERUIoWERFQlNZUywgKCJubnBmc19zeXNjYWxsIHJldHVybnMgZXJy b3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAgTk5QRlNERUIoWERFQlNZ UywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIpKTsNCiAgICAga2ZyZWUo bXNnKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM5KQ0KICAgICB1bmxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisg ICAgLyogVE9ETzogc2VlIHRoZSBjb21tZW50IGF0IGxvY2tfa2VybmVsKCkg YWJvdmUgKi8NCisjZW5kaWYNCiANCiAgICAgcmV0dXJuIGVycm9yOw0KIH0N CkBAIC03NDgsOSArODM3LDE1IEBAIHN5c19hZnMgKGludCBvcGVyYXRpb24s DQogCQkgICAgICAgYV9mb2xsb3dTeW1saW5rcyk7DQogfQ0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQog c3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGlu dCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbHNlDQorc3RhdGljIGxv bmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQor CQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj ZW5kaWYNCiB7DQogICAgIGFmc3Byb2NkYXRhIGFyZ3M7DQogICAgIGxvbmcg cmV0Ow0KQEAgLTgwNyw3ICs5MDIsMTEgQEAgc3RhdGljIGludCBubnBmc19p bml0X3Byb2Nmcyh2b2lkKQ0KICAgICBubnBmc19wcm9jZnNfZGlyLT5vd25l ciA9IFRISVNfTU9EVUxFOw0KICNlbmRpZg0KICAgICANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBl bnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgMDY2 Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQorI2Vsc2UNCisgICAgZW50cnkgPSBw cm9jX2NyZWF0ZShOTlBGU19QUk9DX05PREUsIDA2NjYsIE5VTEwsICZubnBm c19wcm9jZnNfZm9wcyk7DQorI2VuZGlmDQogICAgIGlmIChlbnRyeSA9PSBO VUxMKSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5pdF9wcm9j ZnM6IG5vIG5vZGVcbiIpKTsNCiAJcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIg Tk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KQEAgLTgxNyw3ICs5MTYsOSBAQCBz dGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAg ZW50cnktPm93bmVyID0gVEhJU19NT0RVTEU7DQogI2VuZGlmDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkNCiAg ICAgZW50cnktPnByb2NfZm9wcyA9ICZubnBmc19wcm9jZnNfZm9wczsNCisj ZW5kaWYNCiANCiAjaWZkZWYgU1lTQ0FMTENPTVBBVA0KICAgICBpZiAocmVn aXN0ZXJfaW9jdGwzMl9jb252ZXJzaW9uKEFSTEFfVklPQ19TWVNDQUxMMzIs IG5ucGZzX3Byb2Nmc19pb2N0bDMyKSkgew0KZGlmZiAtdXByTiAtWG5vZGlm Zi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9z c2FnZS5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19z eXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9u bnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxMC0wOC0wOCAyMjo0MzowNS4w MDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMv bGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMTYtMDEtMTMgMjE6 NTE6NDkuNjgyNDU3MjEzICswMTAwDQpAQCAtNTAsOCArNTAsMTcgQEANCiBS Q1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE5IDIw MTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcs MCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2Vz IG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQorI3VuZGVm IFNZU0NBTExIQUNLDQorI2VuZGlmDQorDQogI2luY2x1ZGUgPGxpbnV4L2th bGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0YXRpYyB2 b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNlbmRpZg0K KyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgc3lz X2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVuY3Rpb24g Km5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Niw2ICs3NSw4IEBAIGNv bnN0IGNoYXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkNCiAjaWZkZWYgX194 ODZfNjRfXw0KIGV4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0 cmlidXRlX18oKHdlYWspKTsNCiAjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FM TEhBQ0sNCiBzdGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQp IHsNCiAjaWZkZWYgX194ODZfNjRfXw0KQEAgLTc0LDYgKzg1LDcgQEAgZ2V0 X3N0YXJ0X2FkZHIodm9pZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11 dGV4X2xvY2s7DQogI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBp bmxpbmUgaW50IA0KIGthbGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBh ZGRyLCBjb25zdCBjaGFyICpuYW1lKQ0KQEAgLTE0Miw2ICsxNTQsOCBAQCB2 ZXJpZnkodm9pZCAqKnApIHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNp ZmRlZiBTWVNDQUxMSEFDSw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tz X2dvb2Qodm9pZCAqKnApDQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxv d2VyX2JvdW5kIHx8ICpwID49ICh2b2lkKilwKQ0KQEAgLTE5MSwzICsyMDUs NSBAQCBubnBmc19maXh1cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAg ICAgcmV0dXJuIDA7DQogfQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5v ZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMg YXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5j DQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAx MC0wOC0wOCAyMjo0MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZv ci1saW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxNi0w MS0xNCAxNzoxMzoxOC4yNjM2NTg1MzYgKzAxMDANCkBAIC01MCw3ICs1MCw5 IEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5jLHYgMS4xMTEgMjAxMC8N CiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsNCiANCiBzdGF0aWMgdm9p ZCBubnBmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww KQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBl cl9ibG9jayAqIHNiKTsNCisjZW5kaWYNCiANCiBzdGF0aWMgaW50IG5ucGZz X3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZz ICpidWYpOw0KIA0KQEAgLTU5LDcgKzYxLDkgQEAgc3RhdGljIHN0cnVjdCBz dXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcA0KICAgICBkZXN0cm95X2lub2Rl CTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBkcm9wX2lub2RlCQk6IGdlbmVy aWNfZGVsZXRlX2lub2RlLA0KICAgICBwdXRfc3VwZXIJCTogbm5wZnNfcHV0 X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkNCiAgICAgd3JpdGVfc3VwZXIJCTogbm5wZnNfd3JpdGVf c3VwZXIsDQorI2VuZGlmDQogICAgIHN0YXRmcwkJOiBubnBmc19zdGF0ZnMs DQogfTsNCiANCkBAIC04Niw3ICs5MCwxMSBAQCBubnBmc19mZXRjaF9yb290 KHN0cnVjdCBpbm9kZSAqaSkNCiAJICogcm9vdCdzIHByaXZpbGlnZXMgKHVz dWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMgbmVlZGVkKS4NCiAJICovDQogCQ0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0 LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7DQorI2Vsc2UNCisJbXNnLmNyZWQu dWlkID0gS1VJRFRfSU5JVCgwKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFn ID0gMDsNCiAJDQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KQEAgLTEyMSw4ICsxMjks MTMgQEAgbWFrZV9yb290X2lub2RlKHN0cnVjdCBubnBmcyAqbm5wZnNwKQ0K ICAgICBYQV9TRVRfTU9ERSgmbm9kZS5hdHRyLCBTX0lGRElSIHwgMDc3Nyk7 DQogICAgIFhBX1NFVF9OTElOSygmbm9kZS5hdHRyLCAxMDApOw0KICAgICBY QV9TRVRfU0laRSgmbm9kZS5hdHRyLCAwKTsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBYQV9TRVRf VUlEKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfR0lEKCZub2RlLmF0 dHIsIDApOw0KKyNlbHNlDQorICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0ciwg S1VJRFRfSU5JVCgwKSk7DQorICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwg S0dJRFRfSU5JVCgwKSk7DQorI2VuZGlmDQogICAgIFhBX1NFVF9BVElNRSgm bm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX01USU1FKCZub2RlLmF0dHIs IDApOw0KICAgICBYQV9TRVRfQ1RJTUUoJm5vZGUuYXR0ciwgMCk7DQpAQCAt MTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jvb3QgKHN0cnVjdCBzdXBlcl9ibG9j ayAqc2IpDQogICAgIG5ucGZzLT5yb290ID0gaW5vZGU7DQogDQogICAgIC8q IFhYWCBlcnJvciBoYW5kbGluZyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDQsMCkNCiAgICAgZHAgPSBkX2FsbG9j X3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQorICAgIGRwID0gZF9tYWtlX3Jvb3Qo aW5vZGUpOw0KKyNlbmRpZg0KICAgICBubnBmc19kX2luaXQoZHApOw0KICAg ICBzYi0+c19yb290ID0gZHA7DQogICAgIHJldHVybiAwOw0KQEAgLTE3NSwx MyArMTkyLDI3IEBAIG5ucGZzX3JlYWRfc3VwZXIgKHN0cnVjdCBzdXBlcl9i bG9jayAqIHMNCiAgICAgTk5QRlNERUIoWERFQlZGT1BTLCAoIm5ucGZzX3Jl YWRfc3VwZXI6IGJlZ2luIHNldHRpbmcgdmFyaWFibGVzXG4iKSk7DQogDQog ICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgbmFtZWlk YXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlm DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAoZGF0YSwgMCwgJm5k KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAsICZuZC5w YXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAm cGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikNCiAJICAgIGRkZXYgPSBF UlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBkZGV2ID0gbmQu cGF0aC5kZW50cnk7DQorI2Vsc2UNCisJICAgIGRkZXYgPSBwYXRoLmRlbnRy eTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19FUlIoZGRldikpIHsNCiAJICAg IG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsN CkBAIC0yMjUsNiArMjU2LDcgQEAgbm5wZnNfZmlsbF9zdXBlciAoc3RydWN0 IHN1cGVyX2Jsb2NrICpzYg0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN CiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg KmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZf bmFtZSwNCkBAIC0yMzIsMTIgKzI2NCwyMyBAQCBubnBmc19nZXRfc2Ioc3Ry dWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQogew0KICAgICByZXR1cm4gZ2V0 X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1 cGVyLCBtbnQpOw0KIH0NCisjZWxzZQ0KK3N0cnVjdCBkZW50cnkqDQorbm5w ZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQor CSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCisJICAg ICB2b2lkICpkYXRhKSANCit7DQorICAgIHJldHVybiBtb3VudF9ub2Rldihm c190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlcik7DQorfQ0K KyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZA0KIG5ucGZzX3dyaXRlX3N1 cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKQ0KIHsNCiAgICAgc2ItPnNf ZGlydCA9IDA7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQogICogWFhYIGlzIHRo aXMgZ29vZD8gDQo= ---276651502-1358444250-1452952148=: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-1358444250-1452952148=:16393--