Re: PATCH v7: Arla CVS Current on Linux 2.6.32 to 4.4
Bo Branten <[email protected]> Thu, 28 Jan 2016 21:56:21 +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-806322457-1454014581=:14219 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v7: Arla CVS Current on Linux 2.6.32 to 4.4 This time there are only a couple of small corrections that stops nnpfs from compiling on some versions of the Linux kernel. Bo Branten ---276651502-806322457-1454014581=:14219 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v7-arla-cvs-for-linux-2.6.32-to-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v7-arla-cvs-for-linux-2.6.32-to-4.4 ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX2F0dHIuaA0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRl L25ucGZzL25ucGZzX2F0dHIuaAkyMDA2LTEwLTI0IDE4OjMzOjMwLjAwMDAw MDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm c19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAwMDAwMDAgKzAxMDAN CkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBmc19hdHRyIHsNCiAg ICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50MzJfdAkJeGFfdHlw ZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QJCXhh X3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZWxzZQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K KyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90CQl4YV9naWQ7DQor I2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisgICAgdWludDMyX3QJ CXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgdWludDMyX3QJ CXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRpbWU7DQpkaWZmIC11 cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX21lc3NhZ2UuaCBhcmxhL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5w ZnNfbWVzc2FnZS5oDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2luY2x1ZGUv bm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDktMDItMjQgMjE6MjA6NTUuMDAw MDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZzL25u cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTUyLDcgKzUyLDE1IEBAIHR5cGVkZWYgdWludDE2X3Qgbm5w ZnNfcmlnaHRzOw0KICAqIFRoZSBubnBmc19jcmVkLCBpZiBwYWcgPT0gMCwg dXNlIHVpZCANCiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBubnBmc19jcmVkIHsN CisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QgdWlkOw0KKyNl bHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP TigzLDE0LDApDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCisgICAgdWlu dDMyX3QgdWlkOw0KKyNlbmRpZg0KKyNlbmRpZg0KICAgICBubnBmc19wYWdf dCBwYWc7DQogfSBubnBmc19jcmVkOw0KIA0KZGlmZiAtdXByTiAtWG5vZGlm ZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaCBh cmxhL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLWN2 cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0 IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu dXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAw MDAwMCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7 DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlm eSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5 ICpjYWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAg dHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lk Ow0KKyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2Yg ZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5k aWYNCiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11 cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmcy9u bnBmc19sb2NsLmggYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns LmgNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNf bG9jbC5oCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQor KysgYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w MS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC01MSw3ICs1MSw5 IEBADQogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGlu dXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j bHVkZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDEwICsxNDAs MTcgQEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNf ZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQog bm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl LA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQog CSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpOw0KKyNl bHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmls ZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNv bnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0KKyNl bmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbm5w ZnNfZGVudHJ5X29wZXJhdGlvbnM7DQogDQpAQCAtMTk0LDEwICsyMDMsMjEg QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl cm4gDQpAQCAtMjI5LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9zeXNjYWxs X2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBubnBmc19k ZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2VudHJ5X3Vu aGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisjZGVmaW5l IG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQo ZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAgICB3aGls ZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9u bnBmcy9saW51eC9ubnBmc19ibG9ja3MuYyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u cGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQuMDAwMDAwMDAwICsw MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2 LTAxLTI4IDE3OjQ0OjM2LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz LDExIEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUg PGxpbnV4L21tLmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigzLDEyLDApDQorZXh0ZXJuIGludCB2ZnNfcGF0aF9s b29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwNCisJ CQkgICBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgc3RydWN0IHBhdGgg Kik7DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9j ayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICsyOTUsMTMgQEAgbm5w ZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBi YWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAg IG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJl dCA9IHZtdHJ1bmNhdGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor I2Vsc2UNCisgICAgcmV0ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwg bm5wZnNfYmxvY2tzaXplKTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRy dW5jYXRlX3NldHNpemUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor I2VuZGlmDQogICAgIG11dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgp Ow0KICAgICANCiAgICAgZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpA QCAtMzE4LDE0ICszMjksMTkgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg bm5wZnNfbm9kZSAqbm9kZQ0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9 IE5OUEZTX0ZST01fWE5PREUobm9kZSk7DQogICAgIHN0cnVjdCBpbm9kZSAq aW5vZGUgPSBYTk9ERV9UT19WTk9ERShub2RlKTsNCiAgICAgaW50IGZsYWdz ID0gT19MQVJHRUZJTEUgfCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1l aWRhdGEgbmQ7DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisj ZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDI5KQ0KICAgICB1aWRfdCBzYXZldWlkOw0KICAgICBnaWRfdCBz YXZlZ2lkOw0KLSAgICBpbnQgcmV0Ow0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyNlbHNlDQogICAgIGNv bnN0IHN0cnVjdCBjcmVkICpvbGRfY3JlZDsNCiAgICAgc3RydWN0IGNyZWQg Km92ZXJyaWRlX2NyZWQ7DQogI2VuZGlmDQorICAgIGludCByZXQ7DQogDQog ICAgIEJVR19PTighbm5wZnNwKTsNCiAgICAgQlVHX09OKGZsYWdzICYgT19D UkVBVCAmJiBmaWxlICE9IE5VTEwpOw0KQEAgLTM1MCwxNCArMzY2LDEyIEBA IG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAg ICAgQlVHX09OKCFubnBmc3AtPmNhY2hlZGlyIHx8ICFubnBmc3AtPmNhY2hl cm9vdCk7DQogICAgIA0KICAgICAvKiB1c2UgdGhlIG5mc2QgdHJpY2sgdG8g Z2l2ZSB1cyBhY2Nlc3MgKi8NCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBzYXZldWlkID0g Y3VycmVudC0+ZnN1aWQ7DQogICAgIHNhdmVnaWQgPSBjdXJyZW50LT5mc2dp ZDsNCiAgICAgY3VycmVudC0+ZnN1aWQgPSBubnBmc3AtPnVpZDsNCiAgICAg Y3VycmVudC0+ZnNnaWQgPSBubnBmc3AtPmdpZDsNCiAjZWxzZQ0KLSAgICBz YXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0KLSAgICBzYXZlZ2lkID0gY3Vy cmVudF9mc2dpZCgpOw0KICAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9j cmVkcygpOw0KICAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KICAg ICAgICAgcmV0dXJuIC1FTk9NRU07DQpAQCAtMzY2LDEwICszODAsMjIgQEAg bm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAg ICBvbGRfY3JlZCA9IG92ZXJyaWRlX2NyZWRzKG92ZXJyaWRlX2NyZWQpOw0K ICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDEsMCkNCiAgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5u cGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KIAkJCSAgY2Fj aGVuYW1lLA0KIAkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVO VCA6IDAsDQogCQkJICAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgcmV0ID0gdmZzX3Bh dGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290 LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8g TE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJICAmbmQucGF0aCk7DQorI2Vsc2UN CisgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIs IG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAg ZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJICAm cGF0aCk7DQorI2VuZGlmDQogICAgIGlmIChyZXQpIHsNCiAJdWludDMyX3Qg bm1hc2tzID0gbm9kZS0+ZGF0YS5ubWFza3M7DQogCXVpbnQzMl90IG1hc2s7 DQpAQCAtMzk2LDE3ICs0MjIsMzkgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1 Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICANCiAgICAgaWYgKGZsYWdzICYg T19DUkVBVCkgew0KIAkvKiBYWFggbW9kZSBiaXRzIG9uIGNyZWF0ZSAtLSBT X0lSVVNSfFNfSVdVU1IgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxLDApDQogCXN0cnVjdCBkZW50cnkgKmRlbnRy eSA9IGxvb2t1cF9jcmVhdGUoJm5kLCAwKTsJDQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkvKiBYWFgg dmVyaWZ5IHRoYXQgY2FjaGVuYW1lIGlzIHRoZSBjb3JyZWN0IHBhdGggc3Ry aW5nIHRvIHVzZSBoZXJlICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9 IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGNhY2hlbmFtZSwgJm5kLnBh dGgsIDApOwkNCisjZWxzZQ0KKwkvKiBYWFggdmVyaWZ5IHRoYXQgY2FjaGVu YW1lIGlzIHRoZSBjb3JyZWN0IHBhdGggc3RyaW5nIHRvIHVzZSBoZXJlICov DQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUo QVRfRkRDV0QsIGNhY2hlbmFtZSwgJnBhdGgsIDApOwkNCisjZW5kaWYNCiAJ aWYgKElTX0VSUihkZW50cnkpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGRl bnRyeSk7DQogCX0gZWxzZSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkgICAgcmV0ID0gdmZzX2NyZWF0 ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNf SVdVU1IsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgLyogWFhYIHNob3VsZCB0aGUg bGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwg YmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRo LmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDAp Ow0KKyNlbHNlDQorCSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3Vt ZW50IHRvIHZmc19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ ICovDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKHBhdGguZGVudHJ5LT5kX2lu b2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2VuZGlmDQor DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KIAkgICAgZHB1dChkZW50cnkpOw0KKwkgICAgbXV0ZXhfdW5sb2Nr KCZuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCSAgICBw YXRoX3B1dCgmbmQucGF0aCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgZG9uZV9wYXRoX2Ny ZWF0ZSgmbmQucGF0aCwgZGVudHJ5KTsNCisjZWxzZQ0KKwkgICAgZG9uZV9w YXRoX2NyZWF0ZSgmcGF0aCwgZGVudHJ5KTsNCisjZW5kaWYNCiAJfQ0KIA0K LQltdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211 dGV4KTsNCi0JcGF0aF9wdXQoJm5kLnBhdGgpOw0KLQ0KIAlpZiAocmV0KSB7 DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4oJXMpIGNyZWF0ZSBm YWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNf ZGVidWdfb29wcygpOw0KQEAgLTQyMSwxNCArNDY5LDIyIEBAIG5ucGZzX2Js b2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgfSBlbHNl IHsNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDI5KQ0KIAlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MpOw0KLSNlbHNlDQorI2Vs aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp DQogICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgp KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v cGVuKCZuZC5wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNl DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRo LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAoSVNf RVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJp bnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIs IGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkg ICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkg ICAgKmZpbGUgPSBmOw0KIAl9DQpAQCAtNDM3LDcgKzQ5Myw3IEBAIG5ucGZz X2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgLyog cGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5kbGVkIG9uIGNsb3NlICov DQogDQogIG91dDoNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F TF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50LT5mc3VpZCA9 IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2ZWdpZDsNCiAj ZWxzZQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMv bGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19j b21tb24uYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19j b21tb24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0K KysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAxNi0wMS0x NCAxNjoxNTowMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0xMTIsMTAgKzExMiwx NSBAQCBubnBmc19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVjdCBpbm9kZSAq DQogdm9pZA0KIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1 Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hl YWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxp YXM7DQorI2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCiAg ICAgaW50IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlu b2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlu b2RlLT5pX2RlbnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwgMCkgew0KQEAg LTEzMSw2ICsxMzYsMjYgQEAgbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNv bnN0IHN0cnVjdCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQog ICAgIH0NCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnko ZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0K KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5v ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3Rf Zm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX3Uu ZF9hbGlhcykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkgew0K KwkgICAgcHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0KKwlp ZiAoZGVudHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChpbnQp ZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUubmFt ZSwgZGVudHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFzaGVk KCZkZW50cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCkiKTsN CisJfQ0KKyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsNCiB9 DQogDQpAQCAtMTQ2LDcgKzE3MSwxMSBAQCBubnBmc19wcmludF9jaGlsZHJl bihjb25zdCBzdHJ1Y3QgZGVudHJ5DQogDQogICAgIHdoaWxlIChzdWJkaXJz ICE9ICZkZW50cnktPmRfc3ViZGlycykgew0KIAlzdHJ1Y3QgbGlzdF9oZWFk ICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkgKmNoaWxk ID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxk KTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50 cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5kaWYNCiAN CiAJcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWNoaWxkLT5kX25hbWUubGVu LA0KIAkgICAgICAgY2hpbGQtPmRfbmFtZS5uYW1lLCBjaGlsZCk7DQpkaWZm IC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm c19kZXYuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jDQotLS0gYXJs YS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQg MTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51 eC9ubnBmc19kZXYuYwkyMDE2LTAxLTE0IDE2OjI4OjE5LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTMwMCw3ICszMDAsOSBAQCBubnBmc19pbnZhbGlkYXRlX2Fs bChzdHJ1Y3Qgbm5wZnMgKm5ucGZzDQogICAgIE5OUEZTREVCKFhERUJOT0RF LCAoImZyZWVfYWxsX25ucGZzX25vZGVzIHN0YXJ0aW5nXG4iKSk7DQogDQog ICAgIHNocmlua19kY2FjaGVfc2Iobm5wZnMtPnNiKTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KICAgICBp bnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0KKyNlbmRpZg0KICAgICAN CiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9k ZXMgZG9uZVxuIikpOw0KIH0NCkBAIC0zNzQsNyArMzc2LDExIEBAIG5ucGZz X2RldmNsb3NlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHINCiBzdGF0aWMg c3NpemVfdA0KIG5ucGZzX2RldnJlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNo YXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQogew0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0g ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRp Zg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihk ZXYpXTsNCiAgICAgc3RydWN0IG5ucGZzX2xpbmsgKmZpcnN0Ow0KICAgICBp bnQgcmV0ID0gMCwgZXJyb3IgPSAwOw0KQEAgLTQzOSw4ICs0NDUsMTIgQEAg bm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IA0KIA0K ICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldndyaXRlXG4iKSk7 DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlLT5pX3JkZXY7DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYp XTsNCisjZWxzZQ0KKyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQorICAgICBubnBmc3AgPSAmbm5w ZnNbTUlOT1IoZGV2KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+Y2hhbm5l bF9zZW0pOw0KICAgICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZX UklURSkgew0KQEAgLTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2RldndyaXRl KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCANCiAvKg0KICAqIE5vdCB1c2Vk 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 ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgv bm5wZnNfaW5vZGVvcHMuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2lub2Rl b3BzLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v ZGVvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA0LjAwMDAwMDAwMCArMDIwMA0K KysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDE2LTAx LTI4IDEyOjE5OjA1LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQwLDEwICs0MCwx NCBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kZXYuaD4NCiAjaW5jbHVk ZSA8bm5wZnMvbm5wZnNfZGlyZW50Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25u cGZzX3N5c2NhbGxzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2Fpby5oPg0KICNp bmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+DQogI2luY2x1ZGUgPGxpbnV4L2Zp bGUuaD4NCiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPg0KICNpbmNsdWRl IDxsaW51eC9wYWdlLWZsYWdzLmg+DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA+PSBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisjaW5jbHVkZSA8bGludXgv dWlvLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5o Pg0KICNpbmNsdWRlIDxhc20vZmNudGwuaD4NCiANCkBAIC01NCwxMSArNTgs MjMgQEAgUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIw MQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUg KmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5w ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0 IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25u cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln bmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitp bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0K KyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qg c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMg dm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp Ow0KQEAgLTIxNCw4ICsyMzAsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQoc3Ry dWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJldHVy bnMgYSBkZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVu dHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNl bHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xvb2t1cCAo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5z aWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u cGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBubnBmcyAq bm5wZnNwOw0KQEAgLTQwNyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9ibG9j ayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBm c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN CiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RF KGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf VE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXplX3Jl YWQoaW5vZGUpOw0KQEAgLTQ3NCwxNSArNDk5LDE4IEBAIG5ucGZzX2ZzeW5j X2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0K LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLCA2 LCAzNSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgZGF0YXN5 bmMpDQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDEsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmMo c3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0KK3N0 YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9m Zl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQogI2VuZGlm DQogew0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ T04oMiwgNiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigyLDYsMzUpDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRy eSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQogI2VuZGlmDQogICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBA IC00OTAsNiArNTE4LDggQEAgbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZp bGUsIGludCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQog ICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisN CiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAg IGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTYyMiwxMSArNjUy LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50 IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgp IHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEs MCkpDQogc3RhdGljIGludA0KIG5ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu b2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor bm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9k ZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50 IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0 X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYg KG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJ TEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1Up DQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisgICAg cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIo WERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxp YXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlh c2VzKGlub2RlKTsNCkBAIC03ODQsMTEgKzgyOCwxOSBAQCBubnBmc19kYXRh X3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2Zp bGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqIHZtYSkNCiB7DQogICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRy eS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAg ICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21h cHBpbmc7DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19t bWFwIGlub2RlOiAlcFxuIiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19w cmludF9wYXRoKGZpbGUtPmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBm c19wcmludF9wYXRoKGZpbGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0K ICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2Vz OiIpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAg IA0KQEAgLTgyMywyOCArODc1LDUxIEBAIGludCBubnBmc19maWxlX21tYXAo c3RydWN0IGZpbGUgKiBmaWxlLCANCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3Rh dGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlv Y2IsDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWdu ZWQgbG9uZyBucl9zZWdzLA0KIAkgICAgICAgbG9mZl90IHBvcykNCisjZWxz ZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBr aW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykNCisjZW5kaWYNCiB7 DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpmaWxl ID0gaW9jYi0+a2lfZmlscDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6ZV90IGNvdW50ID0g aW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3NpemVfdCBjb3VudCA9IGlv Y2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0g aW92X2l0ZXJfY291bnQodG8pOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisj ZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRo LmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZz X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICANCiAg ICAgaWYgKHhuICE9IE5VTEwpDQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJu bnBmc19yZWFkX2ZpbGUoJXApOiB0b2tlbnM6IDB4JXhcbiIsDQogCQkJICAg ICBpbm9kZSwgeG4tPnRva2VucykpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0g bm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBwb3MsIHBv cyArIGNvdW50KTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IG5ucGZzX2RhdGFf dmFsaWQoaW5vZGUsIE5OUEZTX0RBVEFfUiwgaW9jYi0+a2lfcG9zLCBpb2Ni LT5raV9wb3MgKyBjb3VudCk7DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikg ew0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlOiBk YXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVycm9y Ow0KICAgICB9DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19m aWxlX2Fpb19yZWFkKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisjZWxz ZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIoaW9jYiwg dG8pOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5w ZnNfcmVhZF9maWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICBy ZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTg1MywxNyArOTI4LDM2IEBAIG5ucGZz X2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2 LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fd3JpdGUoc3RydWN0 IGtpb2NiICppb2NiLA0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVu c2lnbmVkIGxvbmcgbnJfc2VncywNCiAJCWxvZmZfdCBwb3MpDQorI2Vsc2UN CitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3dyaXRlX2l0ZXIoc3RydWN0IGtp b2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pDQorI2VuZGlmDQog ew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmls ZSA9IGlvY2ItPmtpX2ZpbHA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3VudCA9 IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQgPSBp b2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9 IGlvdl9pdGVyX2NvdW50KGZyb20pOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsN CisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9w YXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5u cGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQog ICAgIGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxvZmZf dCByZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICANCiAg ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSglcCk6 IHRva2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMpKTsN CkBAIC04NzcsNyArOTcxLDExIEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qg a2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp DQogICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBp b3YsIG5yX3NlZ3MsIHBvcyk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBnZW5l cmljX2ZpbGVfd3JpdGVfaXRlcihpb2NiLCBmcm9tKTsNCisjZW5kaWYNCiAg ICAgaWYgKCFJU19FUlJfVkFMVUUoZXJyb3IpKQ0KIAl4bi0+ZmxhZ3MgfD0g Tk5QRlNfREFUQV9ESVJUWTsgLyogWFhYIHJhY2UgKi8NCiANCkBAIC04ODUs OSArOTgzLDE5IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlv Y2IsDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRpYyBp bnQNCiBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwNCiAJICAgICBpbnQgbW9kZSwgc3RydWN0IG5hbWVp ZGF0YSAqbmQpDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2NyZWF0ZShz dHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkg ICAgIHVtb2RlX3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vs c2UNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAq ZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBt b2RlLCBib29sIGV4Y2wpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5w ZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAg LTEwMzgsOCArMTE0NiwxMyBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9k ZSAqIG9sZF9kaXIsIHN0DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMyww KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBk aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUpDQorI2Vsc2UN CitzdGF0aWMgaW50DQorbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGly LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkNCisjZW5k aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1 Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTI1MiwxMiArMTM2NSwyMSBAQCBz dGF0aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQogLyoN CiAgKiBXZSBob2xkIGlfbXV0ZXguDQogICovDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiBzdGF0aWMgaW50 DQogbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKiBk aXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KKyNlbHNlDQorc3RhdGljIGlu dA0KK25ucGZzX2l0ZXJhdGUoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3Qg ZGlyX2NvbnRleHQgKmN0eCkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv cjsNCiAgICAgbG9mZl90IG9mZnNldCwgYmVnaW5fb2Zmc2V0Ow0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3Ry dWN0IGlub2RlICpjYWNoZV9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25v ZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBjaGFyICpi dWY7DQpAQCAtMTMyOCw2ICsxNDUwLDcgQEAgbm5wZnNfcmVhZGRpcihzdHJ1 Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAkJICAgIChpbnQpIHhkaXJlbnQt PmRfbmFtbGVuLA0KIAkJICAgIChpbnQpIChvZmZzZXQrYmVnaW5fb2Zmc2V0 KSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDExLDApDQogCSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0g MA0KIAkJJiYgKGZpbGxkaXJfZXJyb3IgPSBmaWxsZGlyIChkaXJlbnQsDQog CQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KQEAgLTEzMzksNiArMTQ2Miwx OCBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAq DQogCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRp cl9lcnJvcikpOw0KIAkJYnJlYWs7DQogCSAgICB9DQorI2Vsc2UNCisJICAg IGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQorCQkmJiAoZmlsbGRpcl9l cnJvciA9IGRpcl9lbWl0IChjdHgsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9u YW1lLA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfbmFtbGVuLA0KKwkJCQkgICAg IHhkaXJlbnQtPmRfZmlsZW5vLA0KKwkJCQkgICAgIERUX1VOS05PV04pKSA8 IDApIHsNCisJCU5OUEZTREVCKFhERUJSRUFERElSLA0KKwkJCSAoIm5ucGZz X3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJfZXJyb3IpKTsNCisJ CWJyZWFrOw0KKwkgICAgfQ0KKyNlbmRpZg0KIAkgICAgb2Zmc2V0ICs9IHhk aXJlbnQtPmRfcmVjbGVuOw0KIA0KIAkgICAgaWYgKHhkaXJlbnQtPmRfcmVj bGVuID09IDApIHsNCkBAIC0xMzk1LDkgKzE1MzAsMTUgQEAgbm5wZnNfcmVh ZGxpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgYw0KICAqIFdlIGRvbid0 IGhvbGQgaV9tdXRleC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwyLDApDQogc3RhdGljIHZvaWQgKg0K IG5ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQog CQkgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgY29u c3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkg KmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkNCisjZW5kaWYNCiB7DQogICAg IGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBE RU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBAIC0xNDA4LDcgKzE1NDksMTEg QEAgbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0K ICAgICBpZiAoZXJyb3IpDQogICAgICAgIHJldHVybiBFUlJfUFRSKGVycm9y KTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oNCwyLDApDQogICAgIHJldHVybiBwYWdlX2ZvbGxvd19saW5rX2xpZ2h0 KGRlbnRyeSwgbmQpOw0KKyNlbHNlDQorICAgIHJldHVybiBwYWdlX2ZvbGxv d19saW5rX2xpZ2h0KGRlbnRyeSwgcGFnZSk7DQorI2VuZGlmDQogfQ0KIA0K IC8qDQpAQCAtMTQ5MCw2ICsxNjM1LDggQEAgbm5wZnNfcmVsZWFzZV9maWxl IChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9k ZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5u cGZzcDsNCisNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3Jl bGVhc2VfZmlsZVxuIikpOw0KIA0KICAgICBlcnJvciA9IG5ucGZzX2lub2Rl X3ZhbGlkKGlub2RlKTsNCkBAIC0xNTIzLDggKzE2NzAsMTMgQEAgbm5wZnNf Zmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyXw0KIHsNCiAgICAg Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2ZsdXNoXG4iKSk7DQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9kZW50cnkgJiYgZmlsZS0+ Zl9kZW50cnktPmRfaW5vZGUpDQogCXJldHVybiBubnBmc19yZWxlYXNlX2Zp bGUoZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbHNlDQor ICAgIGlmIChmaWxlICYmIGZpbGUtPmZfcGF0aC5kZW50cnkgJiYgZmlsZS0+ Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkNCisJcmV0dXJuIG5ucGZzX3JlbGVh c2VfZmlsZShmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsN CisjZW5kaWYNCiAgICAgZWxzZQ0KIAlyZXR1cm4gMDsNCiB9DQpAQCAtMTUz MywxMCArMTY4NSwyNCBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls ZSwgZmxfb3duZXJfDQogICogUmV0dXJuIDEgaWYgYGRlbnRyeScgaXMgc3Rp bGwgdmFsaWQsIG90aGVyd2lzZSAwLg0KICAqLw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMg aW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMgaW50 DQotbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg c3RydWN0IG5hbWVpZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0ZShz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykNCisj ZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllf VE9fSU5PREUoZGVudHJ5KTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKyAgICBpZiAoZmxhZ3MgJiBM T09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN CisgICAgaWYgKG5kICYmIG5kLT5mbGFncyAmIExPT0tVUF9SQ1UpDQorICAg ICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCiAgICAgTk5QRlNE RUIoWERFQlZOT1BTLCAoIm5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUuKnNc IiAoaW5vZGUgJXApXG4iLA0KIAkJICAgICAgIGRlbnRyeSwNCiAJCSAgICAg ICAoaW50KWRlbnRyeS0+ZF9uYW1lLmxlbiwNCkBAIC0xNTgyLDkgKzE3NDgs MTUgQEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy eQ0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQN CiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vs c2UNCitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1 Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg aW5vZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpA QCAtMTYxNCw3ICsxNzg2LDExIEBAIG5ucGZzX3NwbGljZV9yZWFkKHN0cnVj dCBmaWxlICpmaWxlLCBsb2YNCiAJCSAgdW5zaWduZWQgaW50IGZsYWdzKQ0K IHsNCiAgICAgaW50IGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5v ZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UN CisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50 cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19ub2Rl ICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAgIGlm ICh4biAhPSBOVUxMKQ0KQEAgLTE3MDcsNiArMTg4Myw4IEBAIG5ucGZzX3dy aXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCANCiANCiAJaW50IGVy cm9yOw0KIAkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAlkbyB7DQogCQllcnJv ciA9IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGluZywg MCwgbGVuLA0KIAkJCQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJQkxF LA0KQEAgLTE3MzAsNyArMTkwOCwxMSBAQCBubnBmc193cml0ZV9iYWNrcGFn ZShzdHJ1Y3QgcGFnZSAqcGFnZSwgDQogCQlwcmludGsoIm5ucGZzX3dyaXRl X2JhY2twYWdlOiBFSU9cbiIpOw0KICNpZmRlZiBOTlBGU19TQUZFX1NZTkMN CiAJZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzIpDQogCQkodm9pZClzeW5jX3BhZ2VfcmFuZ2UobWFwcGlu Zy0+aG9zdCwgbWFwcGluZywgb2Zmc2V0LCBsZW4pOw0KKyNlbHNlDQorCQko dm9pZClmaWxlbWFwX3dyaXRlX2FuZF93YWl0X3JhbmdlKG1hcHBpbmcsIG9m ZnNldCwgb2Zmc2V0ICsgbGVuIC0gMSk7DQorI2VuZGlmDQogI2VuZGlmDQog CQ0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtMTc0Nyw2ICsxOTI5LDggQEAgbm5w ZnNfcmVhZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1 Y3QgcGFnZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0K IA0KKwkodm9pZClvZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9tYXBw aW5nX3BhZ2UobWFwcGluZywgbiwgYmFja2ZpbGUpOw0KIAlpZiAoIUlTX0VS UihiYWNrcGFnZSkpIHsNCiAJCXdhaXRfb25fcGFnZV9sb2NrZWQoYmFja3Bh Z2UpOw0KQEAgLTE4OTQsMTEgKzIwNzgsMTcgQEAgbm5wZnNfcHJlcGFyZV93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+ IGlfc2l6ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9yOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJ CWVycm9yID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UN CisJCWVycm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7 DQorCQlpZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwg bW9kc2l6ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmlu dGsoIm5ucGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVk XG4iLA0KIAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygp OyAvKiBYWFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhY WCBub3QgY29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAtMTkyNSw3ICsy MTE1LDYgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmls ZSwgcw0KIH0NCiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F TF9WRVJTSU9OKDIsNiwyOCkNCi0NCiBzdGF0aWMgaW50DQogbm5wZnNfd3Jp dGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KIHVuc2lnbmVkIGxlbiwgdW5z aWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2Rh dGEpDQpAQCAtMTkzMyw1OCArMjEyMiw2NyBAQCB1bnNpZ25lZCBsZW4sIHVu c2lnbmVkIGZsYWdzLCBzdHJ1Y3QgcGFnDQogCXN0cnVjdCBwYWdlICpwYWdl Ow0KIAlwZ29mZl90IGluZGV4Ow0KIAl1bnNpZ25lZCBmcm9tOw0KKwlpbnQg cmV0ID0gMDsNCiANCiAJaW5kZXggPSBwb3MgPj4gUEFHRV9DQUNIRV9TSElG VDsNCiAJZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsNCiAN Ci0jaWZkZWYgQU9QX0ZMQUdfTk9GUw0KIAlwYWdlID0gZ3JhYl9jYWNoZV9w YWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBmbGFncyk7DQotI2Vs c2UNCi0JcGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4 KTsNCi0jZW5kaWYNCi0JaWYgKHBhZ2UgPT0gTlVMTCkNCisJaWYgKCFwYWdl KQ0KIAkJcmV0dXJuIC1FTk9NRU07DQogDQogCSpwYWdlcCA9IHBhZ2U7DQog DQotCXJldHVybiBubnBmc19wcmVwYXJlX3dyaXRlKGZpbGUsIHBhZ2UsIGZy b20sIGZyb20gKyBsZW4pOw0KLX0NCisJcmV0ID0gbm5wZnNfcHJlcGFyZV93 cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsgbGVuKTsNCisJaWYgKHJl dCkgew0KKwkJdW5sb2NrX3BhZ2UocGFnZSk7DQorCQlwYWdlX2NhY2hlX3Jl bGVhc2UocGFnZSk7DQorCX0NCiANCisJcmV0dXJuIHJldDsNCit9DQogI2Vu ZGlmDQogDQorLyogWFhYIHdlIHVzZSB0aGUgc3lzdGVtIHByb3ZpZGVkIHNp bXBsZV9jb21taXRfd3JpdGUgaW5zdGVhZCBzbyB0aGlzIGZ1bmN0aW9uIGlz IHVudXNlZCBmb3Igbm93ICovDQorI2lmIDANCiBzdGF0aWMgaW50DQogbm5w ZnNfY29tbWl0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFn ZSAqcGFnZSwNCiAJCSAgIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQ0K IHsNCi0gICAgc3RydWN0IGlub2RlICppbm9kZSA9IHBhZ2UtPm1hcHBpbmct Pmhvc3Q7DQotICAgIGxvZmZfdCBwb3MgPSAoKGxvZmZfdClwYWdlLT5pbmRl eCA8PCBQQUdFX0NBQ0hFX1NISUZUKSArIHRvOw0KKwlzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsNCisJbG9mZl90IHBvcyA9 ICgobG9mZl90KXBhZ2UtPmluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQpICsg dG87DQorDQorCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKQ0KKwkJU2V0UGFn ZVVwdG9kYXRlKHBhZ2UpOw0KIA0KLSAgICBpZiAocG9zID4gaW5vZGUtPmlf c2l6ZSkgew0KLQlpX3NpemVfd3JpdGUoaW5vZGUsIHBvcyk7DQorCWlmIChw b3MgPiBpbm9kZS0+aV9zaXplKSB7DQorCQlpX3NpemVfd3JpdGUoaW5vZGUs IHBvcyk7DQogDQotCXNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQotCWlu b2RlLT5pX2Jsb2NrcyA9IChwb3MgKyBJX0JMT0NLU19VTklUIC0gMSkgPj4g SV9CTE9DS1NfQklUUzsNCi0Jc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2sp Ow0KLSAgICB9DQotICAgIHNldF9wYWdlX2RpcnR5KHBhZ2UpOw0KKwkJc3Bp bl9sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisJCWlub2RlLT5pX2Jsb2NrcyA9 IChwb3MgKyBJX0JMT0NLU19VTklUIC0gMSkgPj4gSV9CTE9DS1NfQklUUzsN CisJCXNwaW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisJfQ0KKwlzZXRf cGFnZV9kaXJ0eShwYWdlKTsNCiANCiAjaWYgMA0KLSAgICB7DQotCWNoYXIg KmFkZHI7DQotCWttYXAocGFnZSk7DQotCWFkZHIgPSBwYWdlX2FkZHJlc3Mo cGFnZSk7DQotCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19jb21taXRf d3JpdGUoJXApOiAleCV4JXgleFxuIiwNCisJew0KKwkgICAgY2hhciAqYWRk cjsNCisJICAgIGttYXAocGFnZSk7DQorCSAgICBhZGRyID0gcGFnZV9hZGRy ZXNzKHBhZ2UpOw0KKwkgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZz X2NvbW1pdF93cml0ZSglcCk6ICV4JXgleCV4XG4iLA0KIAkJCSAgICAgZmls ZS0+Zl9tYXBwaW5nLT5ob3N0LCANCiAJCQkgICAgIGFkZHJbMF0sIGFkZHJb MV0sIGFkZHJbMl0sIGFkZHJbM10pKTsNCi0Ja3VubWFwKHBhZ2UpOw0KLSAg ICB9DQorCSAgICBrdW5tYXAocGFnZSk7DQorCX0NCiAjZW5kaWYNCi0gICAg DQotICAgIHJldHVybiAwOw0KKyANCisJcmV0dXJuIDA7DQogfQ0KKyNlbmRp Zg0KIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ T04oMiw2LDI4KQ0KLQ0KKy8qIFhYWCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92 aWRlZCBzaW1wbGVfd3JpdGVfZW5kIGluc3RlYWQgc28gdGhpcyBmdW5jdGlv biBpcyB1bnVzZWQgZm9yIG5vdyAqLw0KKyNpZiAwDQogc3RhdGljIGludA0K IG5ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQogCQl1bnNpZ25l ZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZv aWQgKmZzZGF0YSkNCkBAIC0xOTkzLDEwICsyMTkxLDE4IEBAIG5ucGZzX3dy aXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWMNCiANCiAJLyogemVy byB0aGUgc3RhbGUgcGFydCBvZiB0aGUgcGFnZSBpZiB3ZSBkaWQgYSBzaG9y dCBjb3B5ICovDQogCWlmIChjb3BpZWQgPCBsZW4pIHsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCQl2b2lk ICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UsIEtNX1VTRVIwKTsNCisjZWxz ZQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlKTsNCisjZW5k aWYNCiAJCW1lbXNldChrYWRkciArIGZyb20gKyBjb3BpZWQsIDAsIGxlbiAt IGNvcGllZCk7DQogCQlmbHVzaF9kY2FjaGVfcGFnZShwYWdlKTsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog CQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJ CWt1bm1hcF9hdG9taWMoa2FkZHIpOw0KKyNlbmRpZg0KIAl9DQogDQogCW5u cGZzX2NvbW1pdF93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsgY29w aWVkKTsNCkBAIC0yMDA2LDcgKzIyMTIsNyBAQCBubnBmc193cml0ZV9lbmQo c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQogCXJldHVybiBjb3BpZWQ7 DQogfQ0KLQ0KKyNlbmRpZg0KICNlbmRpZg0KIA0KIGNvbnN0DQpAQCAtMjAx NSwxMCArMjIyMSwxMCBAQCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRp b25zIG5ucGZzX2FvDQogCS53cml0ZXBhZ2UgPSBubnBmc193cml0ZXBhZ2Us DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwyOCkNCiAJLnByZXBhcmVfd3JpdGUgPSBubnBmc19wcmVwYXJlX3dyaXRl LA0KLQkuY29tbWl0X3dyaXRlID0gbm5wZnNfY29tbWl0X3dyaXRlLA0KKwku Y29tbWl0X3dyaXRlID0gc2ltcGxlX2NvbW1pdF93cml0ZSwNCiAjZWxzZQ0K IAkud3JpdGVfYmVnaW4gPSBubnBmc193cml0ZV9iZWdpbiwNCi0JLndyaXRl X2VuZCA9IG5ucGZzX3dyaXRlX2VuZCwNCisJLndyaXRlX2VuZCA9IHNpbXBs ZV93cml0ZV9lbmQsDQogI2VuZGlmDQogfTsNCiANCkBAIC0yMDI3LDggKzIy MzMsMTMgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBm c19hbw0KICAqLw0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNf ZmlsZV9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIC5haW9fcmVhZAk9IG5u cGZzX2Fpb19yZWFkLA0KICAgICAuYWlvX3dyaXRlCT0gbm5wZnNfYWlvX3dy aXRlLA0KKyNlbHNlDQorICAgIC5yZWFkX2l0ZXIJPSBubnBmc19yZWFkX2l0 ZXIsDQorICAgIC53cml0ZV9pdGVyCT0gbm5wZnNfd3JpdGVfaXRlciwNCisj ZW5kaWYNCiAgICAgLm1tYXAJPSBubnBmc19maWxlX21tYXAsDQogICAgIC5v cGVuCT0gbm5wZnNfb3BlbiwNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gs DQpAQCAtMjA0MSw3ICsyMjUyLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgbm5wZnNfZGVhZF9vcGVyYXQNCiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgbm5wZnNfZGlyX29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAgICAg LnJlYWRkaXIJPSBubnBmc19yZWFkZGlyLA0KKyNlbHNlDQorICAgIC5pdGVy YXRlICAgID0gbm5wZnNfaXRlcmF0ZSwNCisjZW5kaWYNCiAgICAgLmZsdXNo CT0gbm5wZnNfZmx1c2gsDQogfTsNCiANCmRpZmYgLXVwck4gLVhub2RpZmYg YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYyBhcmxhL25u cGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBm cy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0xMC0zMSAxMTowMjo0MS4wMDAw MDAwMDAgKzAxMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2xvYWQu YwkyMDE2LTAxLTEzIDIwOjE0OjAyLjAwMDAwMDAwMCArMDEwMA0KQEAgLTU0 LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u cGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBubnBmc19m c190eXBlID0gew0KICAgICAgICBuYW1lOiAgICAgICAgICAgIm5ucGZzIiwN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM5KQ0KICAgICAgICBnZXRfc2I6ICAgICAgICAgbm5wZnNfZ2V0X3NiLA0K KyNlbHNlDQorICAgICAgIG1vdW50OiAgICAgICAgICBubnBmc19tb3VudCwN CisjZW5kaWYNCiAgICAgICAga2lsbF9zYjogICAgICAgIGtpbGxfbGl0dGVy X3N1cGVyLA0KICAgICAgICBvd25lcjogICAgICAgICAgVEhJU19NT0RVTEUs DQogfTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZz L2xpbnV4L25ucGZzX21lc3NhZ2UuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZz X21lc3NhZ2UuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm c19tZXNzYWdlLmMJMjAxMC0wOC0wOCAyMjo0MzowNS4wMDAwMDAwMDAgKzAy MDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDE2 LTAxLTI0IDE4OjUyOjI4LjAwMDAwMDAwMCArMDEwMA0KQEAgLTU1LDkgKzU1 LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1vdmUoc3RydWN0IGRl bnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJu bnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bp bl9sb2NrKCZkY2FjaGVfbG9jayk7DQogICAgIGRnZXRfbG9ja2VkKGRlbnRy eSk7DQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UN CisgICAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIGRnZXRf ZGxvY2soZGVudHJ5KTsNCisgICAgc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9s b2NrKTsNCisjZW5kaWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7DQogICAgIGRw dXQoZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcgKzEyNywxMSBAQCBubnBmc19t ZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgIHN0cnVj dCBpbm9kZSAqZGksICppbm9kZTsNCiAgICAgc3RydWN0IGRlbnRyeSAqcGFy ZW50ID0gTlVMTDsNCiAgICAgc3RydWN0IHFzdHIgc3FzdHI7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAg ICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0 IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5Q RlNERUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlXG4i KSk7DQogICAgIA0KQEAgLTE3NiwxMiArMTg2LDI2IEBAIG5ucGZzX21lc3Nh Z2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgICoNCiAgICAg ICovDQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4 dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJ cGFyZW50ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9h bGlhcyk7DQotCXNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xv Y2tlZChwYXJlbnQpOw0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0K KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs OSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFz LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlz dF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfYWxp YXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJl bnQsICZkaS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz OCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAgIGRnZXRf bG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9j ayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7 DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91bmxvY2so JnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29r dXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNHLA0KIAkJ ICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1 cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU3LDkgQEAgbm5wZnNfbWVzc2FnZV9p bnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1dChkZW50cnkp Ow0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4 dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9DQogICAgIE5O UEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTog ZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5NCwxMyBAQCBu bnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBmcyAqDQogICAg IH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0KTsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog ICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQs IHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgZGVudHJ5 ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3Qg ZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50cnkgPSBobGlz dF9lbnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnks IGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVC KFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0ciBuYW1lOiVz XG4iLA0KIAkJICAgICAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUpKTsNCkBAIC0z OTYsMTcgKzQyOCwzNSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxkYXRhKHN0 cnVjdCBubnBmcyAqDQogc3RhdGljIHZvaWQNCiBjbGVhcl9hbGxfY2hpbGRy ZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBwYXJlbnQpDQogew0KKyAg ICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlz dF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUg KmFsaWFzOw0KKyNlbmRpZg0KIA0KICBhZ2FpbjoNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGlu X2xvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2so Jmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBp bm9kZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZp bm9kZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0K KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs OSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFz LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBo bGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnks IGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRy eShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQor I2VuZGlmDQogCXN0cnVjdCBsaXN0X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVj dCBubnBmc19kZW50cnlfZGF0YSAqeGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJZGVudHJ5ID0g bGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQor I2VuZGlmDQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRr KEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlz dCBpcyBudWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQyMiw3ICs0NzIs MTEgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2Rl LA0KIAlzdWJkaXJzID0gZGVudHJ5LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hp bGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCSAgICBz dHJ1Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBz dHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3Qg ZGVudHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UNCisJICAgIHN0cnVjdCBk ZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnks IGRfY2hpbGQpOw0KKyNlbmRpZg0KIAkgICAgc3ViZGlycyA9IHRtcC0+bmV4 dDsNCiAJICAgIE5OUEZTREVCKFhERUJNU0csICgiY2xlYXJfYWxsX2NoaWxk cmVuIGNoaWxkOiAlLipzIGlub2RlOiAlcC8lcCAiDQogCQkJICAgICAgICJk Y291bnQ6ICVkIGFsaWFzZXM6XG4iLA0KQEAgLTQ0MiwxNCArNDk2LDI0IEBA IGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiAN CiAJICAgIC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBpZiAobm5w ZnNfZGNvdW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAgICBzcGlu X3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorCSAgICAgICAgc3Bp bl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KIAkJbm5wZnNf ZF9yZW1vdmUoY2hpbGQpOw0KIAkJZ290byBhZ2FpbjsNCiAJICAgIH0NCiAJ fQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAgICAg fQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzgpDQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vs c2UNCisgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRp Zg0KIH0NCiANCiBzdGF0aWMgdm9pZA0KQEAgLTcxOSwxMiArNzgzLDIyIEBA IG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiAN CiAgICAgLyogc2FuaXR5IGNoZWNrIGJlZm9yZSB3ZSBsb29rIGF0IGl0ICov DQogICAgIGlmIChzaXplID09IHNpemVvZigqbWVzc2FnZSkgJiYgbWVzc2Fn ZS0+dmVyc2lvbiA9PSBOTlBGU19WRVJTSU9OKSB7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0 IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0K KyNlbmRpZg0KIAlpbnQgZXJyb3I7DQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6 ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6ZTsNCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBh dGhfbG9va3VwKCIuIiwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vy bl9wYXRoKCIuIiwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0g a2Vybl9wYXRoKCIuIiwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJy b3IpIHsNCiAJICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVz dCByZXR1cm4uDQpAQCAtNzM1LDExICs4MDksMTcgQEAgbm5wZnNfbWVzc2Fn ZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJICAgIm5ucGZzX21l c3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9sb29rdXAsICINCiAJCSAgICJl cnJubzogJWRcbiIsIGVycm9yKTsNCiAJfSBlbHNlIHsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAg bm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQucGF0aC5tbnQpOw0KIAkg ICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQucGF0aC5kZW50cnkpOw0K IAkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBubnBm c3AtPmNhY2hlcm9vdCA9IG1udGdldChwYXRoLm1udCk7DQorCSAgICBubnBm c3AtPmNhY2hlZGlyID0gZGdldChwYXRoLmRlbnRyeSk7DQorCSAgICBwYXRo X3B1dCgmcGF0aCk7DQorI2VuZGlmDQogCSAgICANCi0jaWYgTElOVVhfVkVS U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KIAkg ICAgbm5wZnNwLT51aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAJICAgIG5ucGZz cC0+Z2lkID0gY3VycmVudC0+ZnNnaWQ7DQogI2Vsc2UNCmRpZmYgLXVwck4g LVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX25vZGUu YyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYw0KLS0tIGFybGEtY3Zz LW9sZC9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1 MjowMi4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX25vZGUuYwkyMDE2LTAxLTE0IDE2OjUxOjExLjAwMDAwMDAwMCArMDEw MA0KQEAgLTEzMiw3ICsxMzIsMTIgQEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3Qg aW5vZGUgKmlub2RlLCB1aW50Ng0KIAlwcmludGsoIm5ucGZzX3NldHNpemU6 IHRydW5jYXRpbmcgQDB4JWxsdVxuIiwNCiAJICAgICAgICh1bnNpZ25lZCBs b25nIGxvbmcpc2l6ZSk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAl2bXRydW5jYXRlKGlu b2RlLCBzaXplKTsgLyogWFhYIHJldHZhbCAqLw0KKyNlbHNlDQorCWlmKCFp bm9kZV9uZXdzaXplX29rKGlub2RlLCBzaXplKSkNCisJICAgIHRydW5jYXRl X3NldHNpemUoaW5vZGUsIHNpemUpOw0KKyNlbmRpZg0KIAlubnBmc19ibG9j a190cnVuY2F0ZSh4biwgc2l6ZSk7DQogICAgIH0NCiB9DQpAQCAtMTUwLDkg KzE1NSwxOCBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBm c19hdHRyDQogCXN0cnVjdCB0aW1lc3BlYyBub3RpbWUgPSB7MH07DQogDQog CWlub2RlLT5pX21vZGUgICA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJaW5vZGUtPmlfdWlkICAg ID0gMDsNCiAJaW5vZGUtPmlfZ2lkICAgID0gMDsNCisjZWxzZQ0KKwlpbm9k ZS0+aV91aWQgICAgPSBLVUlEVF9JTklUKDApOw0KKwlpbm9kZS0+aV9naWQg ICAgPSBLR0lEVF9JTklUKDApOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlf bmxpbmsgID0gMTsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0K KyNlbmRpZg0KIAlpbm9kZS0+aV9hdGltZSAgPSBub3RpbWU7DQogCWlub2Rl LT5pX210aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfY3RpbWUgID0gbm90 aW1lOw0KQEAgLTE2OSw3ICsxODMsMTEgQEAgbm5wZnNfYXR0cjJpbm9kZShj b25zdCBzdHJ1Y3Qgbm5wZnNfYXR0cg0KICAgICBpZiAoWEFfVkFMSURfR0lE KGF0dHIpKQ0KIAlpbm9kZS0+aV9naWQgICAgPSBhdHRyLT54YV9naWQ7DQog ICAgIGlmIChYQV9WQUxJRF9OTElOSyhhdHRyKSkNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5p X25saW5rICA9IGF0dHItPnhhX25saW5rOw0KKyNlbHNlDQorCXNldF9ubGlu ayhpbm9kZSwgYXR0ci0+eGFfbmxpbmspOw0KKyNlbmRpZg0KICAgICANCiAg ICAgaWYgKFhBX1ZBTElEX1NJWkUoYXR0cikpIHsNCiAJbm5wZnNfc2V0c2l6 ZShpbm9kZSwgYXR0ci0+eGFfc2l6ZSk7DQpAQCAtNTEwLDEyICs1MjgsMjQg QEAgbm5wZnNfaGFzX3BhZyhjb25zdCBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeA0K IGludA0KIG5ucGZzX25vZGVfdXNlcnMoc3RydWN0IGlub2RlICppbm9kZSkN CiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7DQorI2Vsc2UN CisgICAgc3RydWN0IGhsaXN0X25vZGUgKnBvczsNCisjZW5kaWYNCiAgICAg aW50IHVzZXJzID0gMDsNCiAgICAgDQogICAgIC8qIFhYWCB0aGlzIHNob3Vs ZCBwcm9iYWJseSBiZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAg bGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZWxz ZQ0KKyAgICBobGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkp IHsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBs aXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vs c2UNCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShwb3Ms IHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAJaWYg KG5ucGZzX2Rjb3VudChkZW50cnkpID4gMSkNCiAJICAgIHVzZXJzKys7DQog ICAgIH0NCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZz L2xpbnV4L25ucGZzX3N5c2NhbGxzLmMgYXJsYS9ubnBmcy9saW51eC9ubnBm c19zeXNjYWxscy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u cGZzX3N5c2NhbGxzLmMJMjAxMC0wOC0wOCAyMjo0MzowNi4wMDAwMDAwMDAg KzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJ MjAxNi0wMS0xNCAxNzowMDoyMC4wMDAwMDAwMDAgKzAxMDANCkBAIC00Miw3 ICs0Miw5IEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+ DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2NvbW1vbi5oPg0KICNpbmNsdWRl IDxsaW51eC9maWxlLmg+DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAjaW5jbHVkZSA8bGludXgvc21wX2xv Y2suaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvc21wLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4NCiANCkBAIC01MCw2ICs1MiwxMSBA QA0KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPg0KICNlbmRpZg0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3 LDApDQorI3VuZGVmIFNZU0NBTExIQUNLDQorLyogdGhlIG1ldGhvZCB0byBy ZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBvbiBrZXJuZWwgMy43 IGFuZCBsYXRlciwgc2Ugbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jICovDQor I2VuZGlmDQorDQogI2lmIDANCiAjaWZkZWYgQ09ORklHX0NPTVBBVA0KICNp bmNsdWRlIDxsaW51eC9pb2N0bDMyLmg+DQpAQCAtODIsMTIgKzg5LDIyIEBA IHR5cGVkZWYgc3RydWN0IGFmc3Byb2NkYXRhIHsNCiAgICAgdW5zaWduZWQg bG9uZyBzeXNjYWxsOw0KIH0gYWZzcHJvY2RhdGE7DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0 aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5zaWduZWQgaW50IGNt ZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbHNlDQorc3RhdGljIGxvbmcN CitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCQkg ICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7DQorI2Vu ZGlmDQogDQogc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNf cHJvY2ZzX2ZvcHMgPSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgLmlvY3RsID0gbm5wZnNfcHJv Y2ZzX2lvY3RsLA0KKyNlbHNlDQorICAgIC51bmxvY2tlZF9pb2N0bCA9IG5u cGZzX3Byb2Nmc19pb2N0bCwNCisjZW5kaWYNCiB9Ow0KIA0KIA0KQEAgLTE2 MCw4ICsxNzcsMTAgQEAgbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiANCiAj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy OCkNCiAgICAgcmV0dXJuIGN1cnJlbnQtPnVpZDsNCi0jZWxzZQ0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkN CiAgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBr dWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsg fQ0KICNlbmRpZg0KIH0NCiANCkBAIC0xOTksNyArMjE4LDEyIEBAIGZpbmRf cGFnKHN0cnVjdCBncm91cF9pbmZvICpnaSkNCiAgICAgTk5QRlNERUIoWERF QlNZUywgKCJmaW5kX3BhZzogbmdyb3VwcyA9ICVkXG4iLCBnaS0+bmdyb3Vw cykpOw0KIA0KICAgICBmb3IgKGkgPSBnaS0+bmdyb3VwcyAtIDE7IGkgPj0g MDsgaS0tKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTQsMCkNCiAJZ2lkX3QgZ3JvdXAgPSBHUk9VUF9BVChnaSwg aSk7DQorI2Vsc2UNCisJa2dpZF90IGtncm91cCA9IEdST1VQX0FUKGdpLCBp KTsNCisJZ2lkX3QgZ3JvdXAgPSBrZ3JvdXAudmFsOw0KKyNlbmRpZg0KIAlp ZiAoKG5ucGZzX3BhZ190KWdyb3VwID49IE5OUEZTX1BBR19MTElNICYmIChu bnBmc19wYWdfdClncm91cCA8IE5OUEZTX1BBR19VTElNKSB7DQogCSAgICBO TlBGU0RFQihYREVCU1lTLA0KIAkJICAgICAoImZpbmRfcGFnOiBFeGlzdGlu ZyBwYWcgJXUgYXQgcG9zICV1XG4iLCBncm91cCwgaSkpOw0KQEAgLTIyMCw3 ICsyNDQsMTIgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KICAgICBu bnBmc19wYWdfdCByZXQgPSBjdXJyZW50LT51aWQ7DQogI2Vsc2UNCiAgICAg c3RydWN0IGdyb3VwX2luZm8gKmdpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTQsMCkNCiAgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudF91aWQoKTsN CisjZWxzZQ0KKyAgICBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7DQor ICAgIG5ucGZzX3BhZ190IHJldCA9IGt1aWQudmFsOw0KKyNlbmRpZg0KICNl bmRpZg0KICAgICBpbnQgaTsNCiANCkBAIC0yMzAsNyArMjU5LDExIEBAIG5u cGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiANCiAgICAgaSA9IGZpbmRfcGFn KGdpKTsNCiAgICAgaWYgKGkgIT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDAp DQogCXJldCA9IEdST1VQX0FUKGdpLCBpKTsNCisjZWxzZQ0KKwl7IGtnaWRf dCBrZ2lkID0gR1JPVVBfQVQoZ2ksIGkpOyByZXQgPSBrZ2lkLnZhbDsgfQ0K KyNlbmRpZg0KIA0KICAgICBwdXRfZ3JvdXBfaW5mbyhnaSk7DQogDQpAQCAt MjgwLDEwICszMTMsMTcgQEAgc3RvcmVfcGFnKG5ucGZzX3BhZ190IHBhZ251 bSkNCiAJY291bnQgLT0gTkdST1VQU19QRVJfQkxPQ0s7DQogICAgIH0NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx NCwwKQ0KICAgICBpZiAoZm91bmQpDQogCUdST1VQX0FUKG5ld19naSwgaSkg PSBwYWdudW07DQogICAgIGVsc2UNCiAJR1JPVVBfQVQobmV3X2dpLCBuZXdf Z2ktPm5ncm91cHMgLSAxKSA9IHBhZ251bTsNCisjZWxzZQ0KKyAgICBpZiAo Zm91bmQpDQorCXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7 IEdST1VQX0FUKG5ld19naSwgaSkgPSBrZ2lkOyB9DQorICAgIGVsc2UNCisJ eyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQocGFnbnVtKTsgR1JPVVBfQVQo bmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IGtnaWQ7IH0NCisjZW5k aWYNCiAgICAgDQogICAgIHNldF9jdXJyZW50X2dyb3VwcyhuZXdfZ2kpOw0K ICAgICBwdXRfZ3JvdXBfaW5mbyhuZXdfZ2kpOw0KQEAgLTMyNSw4ICszNjUs MTAgQEAgbm5wZnNfZ2V0X3BhZygpDQogDQogI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHJldHVybiBj dXJyZW50LT51aWQ7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHJldHVybiBjdXJy ZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJy ZW50X3VpZCgpOyByZXR1cm4ga3VpZC52YWw7IH0NCiAjZW5kaWYNCiB9DQog DQpAQCAtNDMyLDcgKzQ3NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQg Z2lkc2V0c2l6ZSwgb2xkX2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8N CiAjZW5kaWYgLyogR1JPVVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFu ZGxlIHsNCitzdHJ1Y3Qgbm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBm c19kZXZfdCBkZXY7DQogICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBn ZW47DQpAQCAtNTE5LDE0ICs1NjEsMjcgQEAgbm5wZnNfZGVidWdfcHJpbnQg KHN0cnVjdCBhcmxhVmljZUlvY3RsIA0KICAqIGZvbGxvdyBzeW1saW5rcyBp ZmYgYGZvbGxvdycNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVu dHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpu ZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQorc3Rh dGljIHN0cnVjdCBkZW50cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0cnVj dCBwYXRoICpwYXRoLCBjaGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cpDQor I2VuZGlmDQogew0KLSAgICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZsYWdz ID0gMDsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCi0gICAga25hbWUgPSBn ZXRuYW1lICh1c2VyX3BhdGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisgICAgY2hhciAqa25hbWU7DQor ICAgIGtuYW1lID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQorICAg IGNvbnN0IGNoYXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZu YW1lOw0KKyAgICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisgICAg a25hbWUgPSBmbmFtZS0+bmFtZTsNCisjZW5kaWYNCisNCiAgICAgaWYgKElT X0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25hbWUp KTsNCiAgICAgaWYgKGZvbGxvdykNCkBAIC01MzQsMTEgKzU4OSwyNSBAQCB1 c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgDQogDQog ICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfc3lzY2FsbDogbG9va2lu ZyB1cDogJXNcbiIsIGtuYW1lKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgZXJyb3IgPSBw YXRoX2xvb2t1cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGVy cm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgJihuZC0+cGF0aCkpOw0K KyNlbHNlDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywg cGF0aCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsNywwKQ0KICAgICBwdXRuYW1lKGtuYW1lKTsNCisj ZWxzZQ0KKyAgICBrbWVtX2NhY2hlX2ZyZWUobmFtZXNfY2FjaGVwLCAodm9p ZCAqKWtuYW1lKTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1 cm4gRVJSX1BUUihlcnJvcik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgcmV0dXJuIG5kLT5wYXRo LmRlbnRyeTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGF0aC0+ZGVudHJ5Ow0K KyNlbmRpZg0KIH0NCiANCiBhc21saW5rYWdlIGxvbmcNCkBAIC01NTMsMTMg KzYyMiwyMSBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAgICAg c3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3RsICptc2cgPSBOVUxMOw0KICAg ICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAgKm1zZzI7DQogICAgIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5VTEw7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0 IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgcGF0aCBwYXRo Ow0KKyNlbmRpZg0KICAgICANCiAgICAgbXNnID0ga21hbGxvYyhzaXplb2Yo Km1zZyksIEdGUF9LRVJORUwpOw0KICAgICBpZiAobXNnID09IE5VTEwpDQog ICAgICAgcmV0dXJuIC1FTk9NRU07DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgbG9ja19rZXJu ZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBsb2NrX2tlcm5lbCgpIGlz IHJlbW92ZWQsIGNvbnNpZGVyIGFkZGluZyBhbiBwcml2YXRlIGxvY2sgKi8N CisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZz IGtlcm5lbCBsb2NrZWRcbiIpKTsNCiANCkBAIC01OTcsNyArNjc0LDExIEBA IHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkgICAgfQ0KIAl9DQog CWlmIChhX3BhdGhQICE9IE5VTEwpIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgZGVudHJ5ID0g dXNlcl9wYXRoMmRlbnRyeSAoJm5kLCBhX3BhdGhQLCBhX2ZvbGxvd1N5bWxp bmtzKTsNCisjZWxzZQ0KKwkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRy eSAoJnBhdGgsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbmRp Zg0KIAkgICAgaWYgKCFkZW50cnkpIHsNCiAJCWVycm9yID0gLUVJTlZBTDsN CiAJCWdvdG8gdW5sb2NrOw0KQEAgLTY5MywxMyArNzc0LDIxIEBAIHN5c19h ZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICANCiAgdW5sb2NrOg0KICAg ICBpZiAoZGVudHJ5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE5LDApDQogCXBhdGhfcHV0KCZuZC5wYXRoKTsNCisj ZWxzZQ0KKwlwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogDQogICAgIE5O UEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVycm9y OiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMs ICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4iKSk7DQogICAgIGtmcmVlKG1z Zyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOSkNCiAgICAgdW5sb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAg IC8qIFRPRE86IHNlZSB0aGUgY29tbWVudCBhdCBsb2NrX2tlcm5lbCgpIGFi b3ZlICovDQorI2VuZGlmDQogDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpA QCAtNzQ4LDkgKzgzNywxNSBAQCBzeXNfYWZzIChpbnQgb3BlcmF0aW9uLA0K IAkJICAgICAgIGFfZm9sbG93U3ltbGlua3MpOw0KIH0NCiANCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0 YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQg Y21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25n DQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJ ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vu ZGlmDQogew0KICAgICBhZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25nIHJl dDsNCkBAIC04MDcsNyArOTAyLDExIEBAIHN0YXRpYyBpbnQgbm5wZnNfaW5p dF9wcm9jZnModm9pZCkNCiAgICAgbm5wZnNfcHJvY2ZzX2Rpci0+b3duZXIg PSBUSElTX01PRFVMRTsNCiAjZW5kaWYNCiAgICAgDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkNCiAgICAgZW50 cnkgPSBjcmVhdGVfcHJvY19lbnRyeShOTlBGU19QUk9DX05PREUsIDA2NjYs IG5ucGZzX3Byb2Nmc19kaXIpOw0KKyNlbHNlDQorICAgIGVudHJ5ID0gcHJv Y19jcmVhdGUoTk5QRlNfUFJPQ19OT0RFLCAwNjY2LCBOVUxMLCAmbm5wZnNf cHJvY2ZzX2ZvcHMpOw0KKyNlbmRpZg0KICAgICBpZiAoZW50cnkgPT0gTlVM TCkgew0KIAlOTlBGU0RFQihYREVCU1lTLCAoIm5ucGZzX2luaXRfcHJvY2Zz OiBubyBub2RlXG4iKSk7DQogCXJlbW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5O UEZTX1BST0NfRElSLCBOVUxMKTsNCkBAIC04MTcsNyArOTE2LDkgQEAgc3Rh dGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KICNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIGVu dHJ5LT5vd25lciA9IFRISVNfTU9EVUxFOw0KICNlbmRpZg0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQogICAg IGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5wZnNfcHJvY2ZzX2ZvcHM7DQorI2Vu ZGlmDQogDQogI2lmZGVmIFNZU0NBTExDT01QQVQNCiAgICAgaWYgKHJlZ2lz dGVyX2lvY3RsMzJfY29udmVyc2lvbihBUkxBX1ZJT0NfU1lTQ0FMTDMyLCBu bnBmc19wcm9jZnNfaW9jdGwzMikpIHsNCmRpZmYgLXVwck4gLVhub2RpZmYg YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3Nh Z2UuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2Uu Yw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs cy1sb3NzYWdlLmMJMjAxMC0wOC0wOCAyMjo0MzowNS4wMDAwMDAwMDAgKzAy MDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3Nh Z2UuYwkyMDE2LTAxLTEzIDIxOjUxOjQ5LjAwMDAwMDAwMCArMDEwMA0KQEAg LTUwLDggKzUwLDE3IEBADQogUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMt bG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAg JCIpOw0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyogdGhlIG1ldGhvZCB0byByZWFk ICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBvbiBrZXJuZWwgMy43IGFu ZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKyNlbmRpZg0KKw0K ICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPg0KKyNpZmRlZiBTWVNDQUxM SEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93ZXJfYm91bmQgPSAma2VybmVs X3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiB2b2lkICogX19hdHRy aWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3RhYmxlKHZvaWQpOw0KIG5ucGZz X3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19zeXNfY2FsbF90YWJsZSA9DQpA QCAtNjYsNiArNzUsOCBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygo d2VhaykpDQogI2lmZGVmIF9feDg2XzY0X18NCiBleHRlcm4gcndsb2NrX3Qg dGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7DQogI2VuZGlm DQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQogc3RhdGljIHZvaWQgKioNCiBn ZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18NCkBA IC03NCw2ICs4NSw3IEBAIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAgICAg cmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2NrOw0KICNlbmRpZg0KIH0NCisj ZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGludCANCiBrYWxsc3ltX2lzX2Vx dWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29uc3QgY2hhciAqbmFtZSkNCkBA IC0xNDIsNiArMTU0LDggQEAgdmVyaWZ5KHZvaWQgKipwKSB7DQogICAgIHJl dHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0 aWMgaW5saW5lIGludCBsb29rc19nb29kKHZvaWQgKipwKQ0KIHsNCiAgICAg aWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3VuZCB8fCAqcCA+PSAodm9pZCop cCkNCkBAIC0xOTEsMyArMjA1LDUgQEAgbm5wZnNfZml4dXBfc3lzY2FsbF9s b3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVybiAwOw0KIH0NCisNCisjZW5k aWYNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xp bnV4L25ucGZzX3Zmc29wcy5jIGFybGEvbm5wZnMvbGludXgvbm5wZnNfdmZz b3BzLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfdmZz b3BzLmMJMjAxMC0wOC0wOCAyMjo0MzowNi4wMDAwMDAwMDAgKzAyMDANCisr KyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMTYtMDEtMTQg MTc6MTM6MTguMDAwMDAwMDAwICswMTAwDQpAQCAtNTAsNyArNTAsOSBAQCBS Q1NJRCgiJElkOiBubnBmc192ZnNvcHMuYyx2IDEuMTExIDIwMTAvDQogc3Ry dWN0IG5ucGZzIG5ucGZzW05OTlBGU107DQogDQogc3RhdGljIHZvaWQgbm5w ZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBz dGF0aWMgdm9pZCBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKiBzYik7DQorI2VuZGlmDQogDQogc3RhdGljIGludCBubnBmc19zdGF0 ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qga3N0YXRmcyAqYnVm KTsNCiANCkBAIC01OSw3ICs2MSw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc3VwZXJf b3BlcmF0aW9ucyBubnBmc19zb3ANCiAgICAgZGVzdHJveV9pbm9kZQk6IG5u cGZzX25vZGVfZnJlZSwNCiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2Rl bGV0ZV9pbm9kZSwNCiAgICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBl ciwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApDQogICAgIHdyaXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVy LA0KKyNlbmRpZg0KICAgICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07 DQogDQpAQCAtODYsNyArOTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1 Y3QgaW5vZGUgKmkpDQogCSAqIHJvb3QncyBwcml2aWxpZ2VzICh1c3VhbGx5 IG5vbmUsIGFuZCBub25lIGlzIG5lZWRlZCkuDQogCSAqLw0KIAkNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K IAltc2cuY3JlZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9 IEtVSURUX0lOSVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7 DQogCQ0KIAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1z Zy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC0xMjEsOCArMTI5LDEzIEBA IG1ha2Vfcm9vdF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAg WEFfU0VUX01PREUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAg ICBYQV9TRVRfTkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VU X1NJWkUoJm5vZGUuYXR0ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgWEFfU0VUX1VJRCgm bm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAw KTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIEtVSURU X0lOSVQoMCkpOw0KKyAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIEtHSURU X0lOSVQoMCkpOw0KKyNlbmRpZg0KICAgICBYQV9TRVRfQVRJTUUoJm5vZGUu YXR0ciwgMCk7DQogICAgIFhBX1NFVF9NVElNRSgmbm9kZS5hdHRyLCAwKTsN CiAgICAgWEFfU0VUX0NUSU1FKCZub2RlLmF0dHIsIDApOw0KQEAgLTE1MSw3 ICsxNjQsMTEgQEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi KQ0KICAgICBubnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFgg ZXJyb3IgaGFuZGxpbmcgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw0LDApDQogICAgIGRwID0gZF9hbGxvY19yb290 KGlub2RlKTsNCisjZWxzZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290KGlub2Rl KTsNCisjZW5kaWYNCiAgICAgbm5wZnNfZF9pbml0KGRwKTsNCiAgICAgc2It PnNfcm9vdCA9IGRwOw0KICAgICByZXR1cm4gMDsNCkBAIC0xNzUsMTMgKzE5 MiwyNyBAQCBubnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sg KiBzDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19yZWFkX3N1 cGVyOiBiZWdpbiBzZXR0aW5nIHZhcmlhYmxlc1xuIikpOw0KIA0KICAgICBp ZiAoZGF0YSAhPSBOVUxMKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBu ZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKGRhdGEsIDAsICZuZCk7DQor I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KKwllcnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7 DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgp Ow0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BU UihlcnJvcik7DQogCWVsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgZGRldiA9IG5kLnBhdGgu ZGVudHJ5Ow0KKyNlbHNlDQorCSAgICBkZGV2ID0gcGF0aC5kZW50cnk7DQor I2VuZGlmDQogDQogCWlmICghSVNfRVJSKGRkZXYpKSB7DQogCSAgICBtaW5v cmRldmljZSA9IE1JTk9SKGRkZXYtPmRfaW5vZGUtPmlfcmRldik7DQpAQCAt MjI1LDYgKzI1Niw3IEBAIG5ucGZzX2ZpbGxfc3VwZXIgKHN0cnVjdCBzdXBl cl9ibG9jayAqc2INCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50 DQogbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190 eXBlLA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUs DQpAQCAtMjMyLDEyICsyNjQsMjMgQEAgbm5wZnNfZ2V0X3NiKHN0cnVjdCBm aWxlX3N5c3RlbV90eXBlICpmcw0KIHsNCiAgICAgcmV0dXJuIGdldF9zYl9u b2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlciwg bW50KTsNCiB9DQorI2Vsc2UNCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21v dW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAg IGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9p ZCAqZGF0YSkgDQorew0KKyAgICByZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlw ZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KK30NCisjZW5k aWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMyw2LDApDQogc3RhdGljIHZvaWQNCiBubnBmc193cml0ZV9zdXBlcihz dHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYikNCiB7DQogICAgIHNiLT5zX2RpcnQg PSAwOw0KIH0NCisjZW5kaWYNCiANCiAvKg0KICAqIFhYWCBpcyB0aGlzIGdv b2Q/IA0K ---276651502-806322457-1454014581=:14219 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-806322457-1454014581=:14219--