patch for ubuntu 8.04
Lino Sanfilippo <[email protected]> Tue, 07 Jul 2009 17:10:23 +0200
| Newsgroups | gmane.linux.dazuko.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------090005060303020503050008 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Geschäftsführender Gesellschafter: Tjark Auerbach Sitz der Gesellschaft: Tettnang Handelsregister: Amtsgericht Ulm, HRB 630992 ALLGEMEINE GESCHÄFTSBEDINGUNGEN Es gelten unsere Allgemeinen Geschäftsbedingungen (AGB). Sie finden sie in der jeweils gültigen Fassung im Internet unter http://www.avira.de/agb *************************************************** --------------090005060303020503050008 Content-Type: text/plain; name="patch_ubuntu8.04" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="patch_ubuntu8.04" ZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9DSEFOR0VMT0cgZGF6dWtvZnMtMy4w LjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L0NIQU5HRUxPRwotLS0gZGF6dWtvZnMtMy4wLjAv Q0hBTkdFTE9HCTIwMDktMDItMjIgMTc6NTE6MjIuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1 a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvQ0hBTkdFTE9HCTIwMDktMDItMjMg MTE6MDU6NTAuMDAwMDAwMDAwICswMTAwCkBAIC0yLDExICsyLDYgQEAKICBEYXp1a29GUyBD SEFOR0VMT0cKID09PT09PT09PT09PT09PT09PT09CiAKLTMuMC4wICgyMDA5LTAyLTIyKQot LSBhZGRlZCBkZWZpbmUgZm9yIHZlcnNpb24gbnVtYmVyIG91dHB1dAotLSBhZGRlZCBwYXRj aGVzIGZvciB2YXJpb3VzIG90aGVyIGtlcm5lbHMKLQotCiAzLjAuMC1yYzQgKDIwMDgtMTEt MzApCiAtIGZpeCBpbmNvcnJlY3QgZGVudHJ5L3Zmc21udCByZWZlcmVuY2luZyB3aGVuIGFj Y2VzcyBkZW5pZWQKIC0gZml4IGltcHJvcGVyIGNsZWFudXAgaW4gc2V2ZXJhbCBlcnJvciBo YW5kbGluZyBjb25kaXRpb25zCk51ciBpbiBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1Vi dW50dTguMDQ6IENIQU5HRUxPR19BVklSQS4KZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0z LjAuMC9jdHJsX2Rldi5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9j dHJsX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9jdHJsX2Rldi5jCTIwMDktMDItMjIgMTc6 NDU6MjAuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1Vi dW50dTguMDQvY3RybF9kZXYuYwkyMDA5LTAyLTIzIDExOjA1OjUxLjAwMDAwMDAwMCArMDEw MApAQCAtMTgzLDcgKzE4Myw3IEBAIGludCBkYXp1a29mc19jdHJsX2Rldl9pbml0KGludCBk ZXZfbWFqb3IKIAogCS8qIGNyZWF0ZSBjb250cm9sIGRldmljZSAqLwogCWRldiA9IGRldmlj ZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1LREVWKGRldl9tYWpvciwgZGV2X21p bm9yKSwKLQkJCSAgICBOVUxMLCAiJXMuY3RybCIsIERFVklDRV9OQU1FKTsKKwkJCSAgICAi JXMuY3RybCIsIERFVklDRV9OQU1FKTsKIAlpZiAoSVNfRVJSKGRldikpIHsKIAkJZXJyID0g UFRSX0VSUihkZXYpOwogCQlnb3RvIGVycm9yX291dDI7CmRpZmYgLXggQ1ZTIC1ydXAgZGF6 dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMuaCBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1Vi dW50dTguMDQvZGF6dWtvZnNfZnMuaAotLS0gZGF6dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMu aAkyMDA5LTAyLTIyIDE3OjQzOjExLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4w LjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2RhenVrb2ZzX2ZzLmgJMjAwOS0wNy0wMyAxODow MDo1MS4wMDAwMDAwMDAgKzAyMDAKQEAgLTMsNyArMyw3IEBACiAgICBDb3B5cmlnaHQgKEMp IDE5OTctMjAwNCBFcmV6IFphZG9rCiAgICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCBTdG9u eSBCcm9vayBVbml2ZXJzaXR5CiAgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNyBJbnRlcm5h dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnAuCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgt MjAwOSBKb2huIE9nbmVzcworICAgQ29weXJpZ2h0IChDKSAyMDA4IEpvaG4gT2duZXNzCiAg ICAgIEF1dGhvcjogSm9obiBPZ25lc3MgPGRhenVrb2NvZGVAb2duZXNzLm5ldD4KIAogICAg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgpAQCAtMjQsOCArMjQsNiBAQAogI2lmbmRlZiBfX0RBWlVLT0ZTX0ZTX0gKICNk ZWZpbmUgX19EQVpVS09GU19GU19ICiAKLSNkZWZpbmUgREFaVUtPRlNfVkVSU0lPTiAiMy4w LjAiCi0KIGV4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZGVudHJ5X2luZm9f Y2FjaGVwOwogZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1a29mc19maWxlX2luZm9f Y2FjaGVwOwogZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtvZnNfbWFpbl9m b3BzOwpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2RlbnRyeS5jIGRhenVrb2Zz LTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9kZW50cnkuYwotLS0gZGF6dWtvZnMtMy4w LjAvZGVudHJ5LmMJMjAwOS0wMi0yMiAxNzo0NDoyMi4wMDAwMDAwMDAgKzAxMDAKKysrIGRh enVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9kZW50cnkuYwkyMDA5LTAyLTIz IDExOjA1OjUxLjAwMDAwMDAwMCArMDEwMApAQCAtNjUsMTkgKzY1LDE5IEBAIHN0YXRpYyBp bnQgZGF6dWtvZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCAKIAogCWxvd2VyX21udCA9IEdFVF9M T1dFUl9NTlQoZGVudHJ5KTsKIAotCXZmc21vdW50X3NhdmUgPSBuZC0+cGF0aC5tbnQ7Ci0J ZGVudHJ5X3NhdmUgPSBuZC0+cGF0aC5kZW50cnk7CisJdmZzbW91bnRfc2F2ZSA9IG5kLT5t bnQ7CisJZGVudHJ5X3NhdmUgPSBuZC0+ZGVudHJ5OwogCi0JbmQtPnBhdGgubW50ID0gbW50 Z2V0KGxvd2VyX21udCk7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChsb3dlcl9kZW50cnkp OworCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKwluZC0+ZGVudHJ5ID0gZGdldChs b3dlcl9kZW50cnkpOwogCiAJdmFsaWQgPSBsb3dlcl9kZW50cnktPmRfb3AtPmRfcmV2YWxp ZGF0ZShsb3dlcl9kZW50cnksIG5kKTsKIAogCW1udHB1dChsb3dlcl9tbnQpOwogCWRwdXQo bG93ZXJfZGVudHJ5KTsKIAotCW5kLT5wYXRoLm1udCA9IHZmc21vdW50X3NhdmU7Ci0JbmQt PnBhdGguZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJbmQtPm1udCA9IHZmc21vdW50X3NhdmU7 CisJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOwogCiAJLyogdXBkYXRlIHRoZSBpbm9kZSwg ZXZlbiBpZiBkX3JldmFsaWRhdGUoKSAhPSAxICovCiAJaWYgKGRlbnRyeS0+ZF9pbm9kZSkg ewpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2V2ZW50LmMgZGF6dWtvZnMtMy4w LjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2V2ZW50LmMKLS0tIGRhenVrb2ZzLTMuMC4wL2V2 ZW50LmMJMjAwOS0wMi0yMiAxNzo0NDowMy4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2Zz LTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9ldmVudC5jCTIwMDktMDctMDMgMTg6NTU6 MzguMDAwMDAwMDAwICswMjAwCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8bGludXgv ZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQu aD4KLSNpbmNsdWRlIDxsaW51eC9mcmVlemVyLmg+CiAKICNpbmNsdWRlICJkZXYuaCIKICNp bmNsdWRlICJkYXp1a29mc19mcy5oIgpAQCAtMTYyLDE2ICsxNjEsMjMgQEAgc3RhdGljIGlu dCBjYXB0dXJlX2dyb3VwX2NvdW50KGludCAqY2FjaAogCXJldHVybiBlcnI7CiB9CiAKLXN0 YXRpYyBpbnQgZ2V0X2dyb3VwX2NvdW50KHZvaWQpCitzdGF0aWMgaW50IGdldF9ncm91cF9j b3VudF9pbnRlcnJ1cHRpYmxlKHZvaWQpCiB7CiAJaW50IGNhY2hlID0gMDsKLQlpbnQgcmV0 ID0gd2FpdF9ldmVudF9mcmVlemFibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKLQkJCQkgICAg ICAgY2FwdHVyZV9ncm91cF9jb3VudCgmY2FjaGUpID09IDApOworCWludCByZXQgPSB3YWl0 X2V2ZW50X2ludGVycnVwdGlibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKKwkJCQkgICAgICAg ICAgIGNhcHR1cmVfZ3JvdXBfY291bnQoJmNhY2hlKSA9PSAwKTsKIAlpZiAocmV0ID09IDAp CiAJCXJldCA9IF9fZ3JvdXBfY291bnQ7CiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGlu dCBnZXRfZ3JvdXBfY291bnQodm9pZCkKK3sKKwlpbnQgY2FjaGUgPSAwOworCXdhaXRfZXZl bnQoX19ncm91cF9jb3VudF9xdWV1ZSwgY2FwdHVyZV9ncm91cF9jb3VudCgmY2FjaGUpID09 IDApOworCXJldHVybiBfX2dyb3VwX2NvdW50OworfQorCiBzdGF0aWMgdm9pZCBwdXRfZ3Jv dXBfY291bnQodm9pZCkKIHsKIAltdXRleF9sb2NrKCZncm91cF9jb3VudF9tdXRleCk7CkBA IC0zOTksNyArNDA1LDcgQEAgaW50IGRhenVrb2ZzX2FkZF9ncm91cChjb25zdCBjaGFyICpu YW1lLAogCWludCBhbHJlYWR5X2V4aXN0czsKIAlpbnQgYXZhaWxhYmxlX2lkID0gMDsKIAlz dHJ1Y3QgZGF6dWtvZnNfZ3JvdXAgKmdycDsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3Vw X2NvdW50KCk7CisJaW50IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRp YmxlKCk7CiAKIAlpZiAoZ3JwX2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBA IC00NDcsNyArNDUzLDcgQEAgaW50IGRhenVrb2ZzX3JlbW92ZV9ncm91cChjb25zdCBjaGFy ICpuYQogCWludCByZXQgPSAwOwogCXN0cnVjdCBkYXp1a29mc19ncm91cCAqZ3JwOwogCXN0 cnVjdCBsaXN0X2hlYWQgKnBvczsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50 KCk7CisJaW50IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxlKCk7 CiAKIAlpZiAoZ3JwX2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBAIC03MDEs MTEgKzcwNywxMCBAQCBpbnQgZGF6dWtvZnNfY2hlY2tfYWNjZXNzKHN0cnVjdCBkZW50cnkg CiB7CiAJc3RydWN0IGRhenVrb2ZzX2V2ZW50X2NvbnRhaW5lciAqZWNfYXJyYXlbR1JPVVBf Q09VTlRdOwogCXN0cnVjdCBkYXp1a29mc19ldmVudCAqZXZ0OwotCWludCBncnBfY291bnQg PSBnZXRfZ3JvdXBfY291bnQoKTsKLQlpbnQgZXJyOworCWludCBncnBfY291bnQ7CisJaW50 IGVyciA9IDA7CiAKLQlpZiAoZ3JwX2NvdW50IDwgMCkKLQkJcmV0dXJuIGdycF9jb3VudDsK KwlncnBfY291bnQgPSBnZXRfZ3JvdXBfY291bnQoKTsKIAogCWlmIChjaGVja19hY2Nlc3Nf cHJlY2hlY2soZ3JwX2NvdW50KSkgewogCQlwdXRfZ3JvdXBfY291bnQoKTsKQEAgLTcxMywz MiArNzE4LDI5IEBAIGludCBkYXp1a29mc19jaGVja19hY2Nlc3Moc3RydWN0IGRlbnRyeSAK IAl9CiAKIAkvKiBhdCB0aGlzIHBvaW50LCB0aGUgYWNjZXNzIHNob3VsZCBiZSBoYW5kbGVk ICovCi0KIAlpZiAoYWxsb2NhdGVfZXZlbnRfYW5kX2NvbnRhaW5lcnMoJmV2dCwgZWNfYXJy YXksIGdycF9jb3VudCkpIHsKIAkJcHV0X2dyb3VwX2NvdW50KCk7Ci0JCWVyciA9IC1FTk9N RU07Ci0JCWdvdG8gb3V0OworCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0KIAlldnQtPmRlbnRy eSA9IGRnZXQoZGVudHJ5KTsKIAlldnQtPm1udCA9IG1udGdldChtbnQpOwogCWV2dC0+cGlk ID0gY3VycmVudC0+cGlkOwotCiAJYXNzaWduX2V2ZW50X3RvX2dyb3VwcyhldnQsIGVjX2Fy cmF5KTsKIAogCXB1dF9ncm91cF9jb3VudCgpOwogCi0JLyogd2FpdCB1bnRpbCBldmVudCBj b21wbGV0ZWx5IHByb2Nlc3NlZCBvciBzaWduYWwgKi8KLQllcnIgPSB3YWl0X2V2ZW50X2Zy ZWV6YWJsZShldnQtPnF1ZXVlLCBldmVudF9hc3NpZ25lZChldnQpID09IDApOworCS8qIHdh aXQgdW50aWwgZXZlbnQgY29tcGxldGVseSBwcm9jZXNzZWQgKi8KKwl3YWl0X2V2ZW50KGV2 dC0+cXVldWUsIGV2ZW50X2Fzc2lnbmVkKGV2dCkgPT0gMCk7CiAKIAlpZiAoZXZ0LT5kZW55 KQogCQllcnIgPSAtRVBFUk07CiAKIAlyZWxlYXNlX2V2ZW50KGV2dCwgMCwgMCk7Ci1vdXQ6 CisJCiAJcmV0dXJuIGVycjsKIH0KIAorCiBpbnQgZGF6dWtvZnNfZ3JvdXBfb3Blbl90cmFj a2luZyh1bnNpZ25lZCBsb25nIGdyb3VwX2lkKQogewogCXN0cnVjdCBkYXp1a29mc19ncm91 cCAqZ3JwOwpAQCAtOTI4LDcgKzkzMCw4IEBAIHN0YXRpYyBpbnQgb3Blbl9maWxlKHN0cnVj dCBkYXp1a29mc19ldmUKIAkvKiBhZGQgbXlzZWxmIHRvIGJlIGlnbm9yZWQgb24gZmlsZSBv cGVuICh0byBhdm9pZCByZWN1cnNpb24pICovCiAJbWFza19wcm9jKCZwcm9jKTsKIAotCWVj LT5maWxlID0gZGVudHJ5X29wZW4oZGdldChldnQtPmRlbnRyeSksIG1udGdldChldnQtPm1u dCksIE9fUkRPTkxZKTsKKwllYy0+ZmlsZSA9IGRlbnRyeV9vcGVuKGRnZXQoZXZ0LT5kZW50 cnkpLCBtbnRnZXQoZXZ0LT5tbnQpLCAKKwkJCSAgICAgICBPX1JET05MWSB8IE9fTEFSR0VG SUxFKTsKIAlpZiAoSVNfRVJSKGVjLT5maWxlKSkgewogCQljaGVja19yZWN1cnNpb24oKTsg IC8qIHJlbW92ZSBteXNlbGYgZnJvbSBwcm9jX2xpc3QgKi8KIAkJcmV0ID0gUFRSX0VSUihl Yy0+ZmlsZSk7CkBAIC0xMDA0LDkgKzEwMDcsOSBAQCBpbnQgZGF6dWtvZnNfZ2V0X2V2ZW50 KHVuc2lnbmVkIGxvbmcgZ3JvCiAJfQogCiAJd2hpbGUgKDEpIHsKLQkJcmV0ID0gd2FpdF9l dmVudF9mcmVlemFibGUoZ3JwLT5xdWV1ZSwKLQkJCQkJICAgaXNfZXZlbnRfYXZhaWxhYmxl KGdycCkgfHwKLQkJCQkJICAgZ3JwLT5kZXByZWNhdGVkKTsKKwkJcmV0ID0gd2FpdF9ldmVu dF9pbnRlcnJ1cHRpYmxlKGdycC0+cXVldWUsCisJCQkJCSAgICAgICBpc19ldmVudF9hdmFp bGFibGUoZ3JwKSB8fAorCQkJCQkgICAgICAgZ3JwLT5kZXByZWNhdGVkKTsKIAkJaWYgKHJl dCAhPSAwKQogCQkJYnJlYWs7CiAKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9m aWxlLmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2ZpbGUuYwotLS0g ZGF6dWtvZnMtMy4wLjAvZmlsZS5jCTIwMDktMDItMjIgMTc6NDM6MTEuMDAwMDAwMDAwICsw MTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvZmlsZS5jCTIw MDktMDctMDMgMTg6NDk6MDguMDAwMDAwMDAwICswMjAwCkBAIC0xNzcsMTAgKzE3NywxMSBA QCBzdGF0aWMgaW50IGRhenVrb2ZzX29wZW4oc3RydWN0IGlub2RlICppCiAJc3RydWN0IGZp bGUgKmxvd2VyX2ZpbGU7CiAJaW50IGVycjsKIAotCWVyciA9IGRhenVrb2ZzX2NoZWNrX2Fj Y2VzcyhmaWxlLT5mX2RlbnRyeSwgZmlsZS0+Zl92ZnNtbnQpOwotCWlmIChlcnIpCi0JCWdv dG8gZXJyb3Jfb3V0MTsKLQorCWlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKSB7CisJCWVy ciA9IGRhenVrb2ZzX2NoZWNrX2FjY2VzcyhmaWxlLT5mX2RlbnRyeSwgZmlsZS0+Zl92ZnNt bnQpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJvcl9vdXQxOworCX0KIAlTRVRfRklMRV9J TkZPKGZpbGUsIGttZW1fY2FjaGVfemFsbG9jKGRhenVrb2ZzX2ZpbGVfaW5mb19jYWNoZXAs CiAJCSAgICAgIEdGUF9LRVJORUwpKTsKIAlpZiAoIUdFVF9GSUxFX0lORk8oZmlsZSkpIHsK QEAgLTI3Miw2ICsyNzMsMjAgQEAgb3V0OgogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBp bnQgZGF6dWtvZnNfbW1hcCAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm0pCit7CisKKwlzdHJ1Y3QgZmlsZSAqbG93ZXJfZmlsZSA9IEdFVF9MT1dFUl9G SUxFKGZpbGUpOworCisJLyogaWYgbG93ZXIgZnMgZG9lcyBub3Qgc3VwcG9ydCBtbWFwKCks IHdlIGRvbnQgY2FsbCBnZW5lcmljX2ZpbGVfcmVhZG9ubHlfbW1hcCgpLCAKKwkgKiBzaW5j ZSB0aGlzIHdvdWxkIHJlc3VsdCBpbiBjYWxsaW5nIGxvd2VyIHJlYWRwYWdlKCksIHdoaWNo IG1pZ2h0IG5vdCBiZSAKKwkgKiBkZWZpbmVkIGJ5IGxvd2VyIGZzIGlmIG1tYXAoKSBpcyBu b3Qgc3VwcG9ydGVkKi8KKwlpZiAoIWxvd2VyX2ZpbGUtPmZfb3AgfHwgIWxvd2VyX2ZpbGUt PmZfb3AtPm1tYXApIAorCQlyZXR1cm4gLUVOT0RFVjsKKwkKKworCXJldHVybiBnZW5lcmlj X2ZpbGVfcmVhZG9ubHlfbW1hcChmaWxlLCB2bSk7Cit9CiAvKioKICAqIFVudXNlZCBvcGVy YXRpb25zOgogICogICAtIG93bmVyCkBAIC0yOTUsMTggKzMxMCwxNSBAQCBvdXQ6CiBzdHJ1 Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wcyA9IHsKIAkubGxzZWVrCQk9 IGRhenVrb2ZzX2xsc2VlaywKIAkucmVhZAkJPSBkYXp1a29mc19yZWFkLAotCS5haW9fcmVh ZAk9IGdlbmVyaWNfZmlsZV9haW9fcmVhZCwKIAkud3JpdGUJCT0gZGF6dWtvZnNfd3JpdGUs Ci0JLmFpb193cml0ZQk9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUsCiAJLnJlYWRkaXIJPSBk YXp1a29mc19yZWFkZGlyLAogCS5pb2N0bAkJPSBkYXp1a29mc19pb2N0bCwKLQkubW1hcAkJ PSBnZW5lcmljX2ZpbGVfbW1hcCwKKwkubW1hcAkJPSBkYXp1a29mc19tbWFwLAogCS5vcGVu CQk9IGRhenVrb2ZzX29wZW4sCiAJLmZsdXNoCQk9IGRhenVrb2ZzX2ZsdXNoLAogCS5yZWxl YXNlCT0gZGF6dWtvZnNfcmVsZWFzZSwKIAkuZnN5bmMJCT0gZGF6dWtvZnNfZnN5bmMsCiAJ LmZhc3luYwkJPSBkYXp1a29mc19mYXN5bmMsCi0JLnNwbGljZV9yZWFkCT0gZ2VuZXJpY19m aWxlX3NwbGljZV9yZWFkLAogfTsKIAogLyoqCkBAIC0zMzUsMTEgKzM0NywxMCBAQCBzdHJ1 Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wCiBjb25zdCBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIGRhenVrb2ZzX2Rpcl9mb3BzID0gewogCS5yZWFkZGlyCT0gZGF6dWtv ZnNfcmVhZGRpciwKIAkuaW9jdGwJCT0gZGF6dWtvZnNfaW9jdGwsCi0JLm1tYXAJCT0gZ2Vu ZXJpY19maWxlX21tYXAsCisJLm1tYXAJCT0gZGF6dWtvZnNfbW1hcCwKIAkub3BlbgkJPSBk YXp1a29mc19vcGVuLAogCS5mbHVzaAkJPSBkYXp1a29mc19mbHVzaCwKIAkucmVsZWFzZQk9 IGRhenVrb2ZzX3JlbGVhc2UsCiAJLmZzeW5jCQk9IGRhenVrb2ZzX2ZzeW5jLAogCS5mYXN5 bmMJCT0gZGF6dWtvZnNfZmFzeW5jLAotCS5zcGxpY2VfcmVhZAk9IGdlbmVyaWNfZmlsZV9z cGxpY2VfcmVhZCwKIH07CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvZ3JvdXBf ZGV2LmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2dyb3VwX2Rldi5j Ci0tLSBkYXp1a29mcy0zLjAuMC9ncm91cF9kZXYuYwkyMDA5LTAyLTIyIDE3OjQ1OjIwLjAw MDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0 L2dyb3VwX2Rldi5jCTIwMDktMDItMjMgMTE6MDU6NDcuMDAwMDAwMDAwICswMTAwCkBAIC0y MTAsNyArMjEwLDcgQEAgaW50IGRhenVrb2ZzX2dyb3VwX2Rldl9pbml0KGludCBkZXZfbWFq bwogCS8qIGNyZWF0ZSBncm91cCBkZXZpY2VzICovCiAJZm9yIChpID0gMDsgaSA8IEdST1VQ X0NPVU5UOyBpKyspIHsKIAkJZGV2ID0gZGV2aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywg TlVMTCwKLQkJCQkgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwgTlVMTCwK KwkJCQkgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwKIAkJCQkgICAgIiVz LiVkIiwgREVWSUNFX05BTUUsIGkpOwogCQlpZiAoSVNfRVJSKGRldikpIHsKIAkJCWVyciA9 IFBUUl9FUlIoZGV2KTsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9pZ25fZGV2 LmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2lnbl9kZXYuYwotLS0g ZGF6dWtvZnMtMy4wLjAvaWduX2Rldi5jCTIwMDktMDItMjIgMTc6NDU6MjAuMDAwMDAwMDAw ICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvaWduX2Rl di5jCTIwMDktMDItMjMgMTE6MDU6NDcuMDAwMDAwMDAwICswMTAwCkBAIC0xNTksNyArMTU5 LDcgQEAgaW50IGRhenVrb2ZzX2lnbl9kZXZfaW5pdChpbnQgZGV2X21ham9yLAogCiAJLyog Y3JlYXRlIGlnbm9yZSBkZXZpY2UgKi8KIAlkZXYgPSBkZXZpY2VfY3JlYXRlKGRhenVrb2Zz X2NsYXNzLCBOVUxMLCBNS0RFVihkZXZfbWFqb3IsIGRldl9taW5vciksCi0JCQkgICAgTlVM TCwgIiVzLmlnbiIsIERFVklDRV9OQU1FKTsKKwkJCSAgICAiJXMuaWduIiwgREVWSUNFX05B TUUpOwogCWlmIChJU19FUlIoZGV2KSkgewogCQllcnIgPSBQVFJfRVJSKGRldik7CiAJCWdv dG8gZXJyb3Jfb3V0MzsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9pbm9kZS5j IGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9pbm9kZS5jCi0tLSBkYXp1 a29mcy0zLjAuMC9pbm9kZS5jCTIwMDktMDItMjIgMTc6NDY6MDIuMDAwMDAwMDAwICswMTAw CisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvaW5vZGUuYwkyMDA5 LTA3LTAzIDE4OjM5OjQ2LjAwMDAwMDAwMCArMDIwMApAQCAtNDUsMTQgKzQ1LDI4IEBAIHN0 YXRpYyBpbnQgZGF6dWtvZnNfaW5vZGVfdGVzdChzdHJ1Y3QgaW4KIAlyZXR1cm4gMDsKIH0K IAorCiBzdGF0aWMgdm9pZCBkYXp1a29mc19pbml0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGUpCiB7Ci0JU0VUX0xPV0VSX0lOT0RFKGlu b2RlLCBsb3dlcl9pbm9kZSk7Ci0JaW5vZGUtPmlfaW5vID0gbG93ZXJfaW5vZGUtPmlfaW5v OwotCWlub2RlLT5pX3ZlcnNpb24rKzsKLQlpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19tYWlu X2lvcHM7Ci0JaW5vZGUtPmlfZm9wID0gJmRhenVrb2ZzX21haW5fZm9wczsKLQlpbm9kZS0+ aV9tYXBwaW5nLT5hX29wcyA9ICZkYXp1a29mc19hb3BzOworICAgICAgICBTRVRfTE9XRVJf SU5PREUoaW5vZGUsIGxvd2VyX2lub2RlKTsKKyAgICAgICAgaW5vZGUtPmlfaW5vID0gbG93 ZXJfaW5vZGUtPmlfaW5vOworICAgICAgICBpbm9kZS0+aV92ZXJzaW9uKys7CisKKyAgICAg ICAgaWYgKFNfSVNESVIobG93ZXJfaW5vZGUtPmlfbW9kZSkpIHsKKyAgICAgICAgICAgICAg ICBpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19kaXJfaW9wczsKKyAgICAgICAgICAgICAgICBp bm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfZGlyX2ZvcHM7CisgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgaW5vZGUtPmlfb3AgPSAmZGF6dWtvZnNfbWFpbl9pb3BzOworICAg ICAgICAgICAgICAgIGlub2RlLT5pX2ZvcCA9ICZkYXp1a29mc19tYWluX2ZvcHM7CisKKyAg ICAgICAgICAgICAgICBpZiAoU19JU0xOSyhsb3dlcl9pbm9kZS0+aV9tb2RlKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIGlub2RlLT5pX29wID0gJmRhenVrb2ZzX3N5bWxpbmtfaW9w czsKKyAgICAgICAgICAgICAgICBlbHNlICBpZiAoc3BlY2lhbF9maWxlKGxvd2VyX2lub2Rl LT5pX21vZGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbml0X3NwZWNpYWxfaW5v ZGUoaW5vZGUsIGxvd2VyX2lub2RlLT5pX21vZGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbG93ZXJfaW5vZGUtPmlfcmRldik7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlub2RlLT5pX21hcHBpbmctPmFfb3BzID0g JmRhenVrb2ZzX2FvcHM7CiB9CiAKIHN0YXRpYyBpbnQgZGF6dWtvZnNfaW5vZGVfc2V0KHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgKmxvd2VyX2lub2RlKQpAQCAtNjEsNzMgKzc1LDEy MCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2lub2RlX3NldChzdHJ1Y3QgaW5vCiAJcmV0dXJu IDA7CiB9CiAKKwogaW50IGRhenVrb2ZzX2ludGVycG9zZShzdHJ1Y3QgZGVudHJ5ICpsb3dl cl9kZW50cnksIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKLQkJICAgICBzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiLCBpbnQgZmxhZykKKwkJICAgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBp bnQgaGFzaCkKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwotCXN0cnVjdCBpbm9kZSAqbG93 ZXJfaW5vZGUgPSBpZ3JhYihsb3dlcl9kZW50cnktPmRfaW5vZGUpOwotCWludCBlcnIgPSAw OworCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGU7CisJaW50IGVycjsKIAotCWlmICghbG93 ZXJfaW5vZGUpIHsKLQkJZXJyID0gLUVTVEFMRTsKLQkJZ290byBvdXQ7Ci0JfQorCWxvd2Vy X2lub2RlID0gaWdyYWIobG93ZXJfZGVudHJ5LT5kX2lub2RlKTsKIAotCWlmIChsb3dlcl9p bm9kZS0+aV9zYiAhPSBHRVRfTE9XRVJfU0Ioc2IpKSB7Ci0JCWlwdXQobG93ZXJfaW5vZGUp OwotCQllcnIgPSAtRVhERVY7Ci0JCWdvdG8gb3V0OwotCX0KKwlpZiAoIWxvd2VyX2lub2Rl KSAKKwkJcmV0dXJuIC1FU1RBTEU7CiAKIAlpbm9kZSA9IGlnZXQ1X2xvY2tlZChzYiwgKHVu c2lnbmVkIGxvbmcpbG93ZXJfaW5vZGUsCiAJCQkgICAgIGRhenVrb2ZzX2lub2RlX3Rlc3Qs IGRhenVrb2ZzX2lub2RlX3NldCwKIAkJCSAgICAgbG93ZXJfaW5vZGUpOwotCiAJaWYgKCFp bm9kZSkgewotCQlpcHV0KGxvd2VyX2lub2RlKTsKIAkJZXJyID0gLUVBQ0NFUzsKLQkJZ290 byBvdXQ7CisJCWdvdG8gZXJyOwogCX0KIAotCWlmIChpbm9kZS0+aV9zdGF0ZSAmIElfTkVX KSB7CisJaWYgKGlub2RlLT5pX3N0YXRlICYgSV9ORVcpIAogCQl1bmxvY2tfbmV3X2lub2Rl KGlub2RlKTsKIAkJLyoKIAkJICogVGhpcyBpcyBhIG5ldyBub2RlIHNvIHdlIGxlYXZlIHRo ZSBsb3dlcl9ub2RlICJpbiB1c2UiCiAJCSAqIGFuZCBkbyBub3QgY2FsbCBpcHV0KCkuCiAJ CSAqLwotCX0gZWxzZSB7CisJZWxzZSAKIAkJLyoKIAkJICogVGhpcyBpcyBub3QgYSBuZXcg bm9kZSBzbyB3ZSBkZWNyZW1lbnQgdGhlIHVzYWdlIGNvdW50LgogCQkgKi8KIAkJaXB1dChs b3dlcl9pbm9kZSk7Ci0JfQotCi0JaWYgKFNfSVNMTksobG93ZXJfaW5vZGUtPmlfbW9kZSkp Ci0JCWlub2RlLT5pX29wID0gJmRhenVrb2ZzX3N5bWxpbmtfaW9wczsKLQllbHNlIGlmIChT X0lTRElSKGxvd2VyX2lub2RlLT5pX21vZGUpKQotCQlpbm9kZS0+aV9vcCA9ICZkYXp1a29m c19kaXJfaW9wczsKLQotCWlmIChTX0lTRElSKGxvd2VyX2lub2RlLT5pX21vZGUpKQotCQlp bm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfZGlyX2ZvcHM7Ci0KLQlpZiAoc3BlY2lhbF9maWxl KGxvd2VyX2lub2RlLT5pX21vZGUpKSB7Ci0JCWluaXRfc3BlY2lhbF9pbm9kZShpbm9kZSwg bG93ZXJfaW5vZGUtPmlfbW9kZSwKLQkJCQkgICBsb3dlcl9pbm9kZS0+aV9yZGV2KTsKLQl9 CiAKLQlkZW50cnktPmRfb3AgPSAmZGF6dWtvZnNfZG9wczsKIAotCWlmIChmbGFnKQorCWlm IChoYXNoKQogCQlkX2FkZChkZW50cnksIGlub2RlKTsKIAllbHNlCiAJCWRfaW5zdGFudGlh dGUoZGVudHJ5LCBpbm9kZSk7CiAKIAlmc3N0YWNrX2NvcHlfYXR0cl9hbGwoaW5vZGUsIGxv d2VyX2lub2RlLCBOVUxMKTsKIAlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6ZShpbm9kZSwgbG93 ZXJfaW5vZGUpOwotb3V0OgorCisJcmV0dXJuIDA7CitlcnI6CisJaXB1dChsb3dlcl9pbm9k ZSk7CiAJcmV0dXJuIGVycjsKIH0KIAorCisvKiBjcmVhdGVzIGEgbmV3IGxvd2VyIGRlbnRy eSAqLworc3RhdGljIHN0cnVjdCBkZW50cnkgKmRhenVrb2ZzX25ld19sb3dlcl9kZW50cnko c3RydWN0IHFzdHIgKm5hbWUsCisJCQkJCQlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9iYXNlLCAK KwkJCQkJCXN0cnVjdCBuYW1laWRhdGEgKm5kKQoreworCXN0cnVjdCBkZW50cnkgKm5ld19k ZW50cnk7CisJc3RydWN0IGRlbnRyeSAqdG1wOworCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5v ZGU7CisKKwlsb3dlcl9pbm9kZSA9IGxvd2VyX2Jhc2UtPmRfaW5vZGU7CisJLyogWFhYOiBp cyB0aGlzIGNoZWNrIHN0aWxsIG5lY2Vzc2FyeT8gKHNlZSBfX2xvb2t1cF9oYXNoKCkpCisJ ICAgVGhpcyBpcyAoaG9wZWx5KSBwcm90ZWN0ZWQgYnkgbG9ja2VkIHVwcGVyIGlub2RlICov CisJaWYgKElTX0RFQURESVIobG93ZXJfaW5vZGUpKSB7CisJCW5ld19kZW50cnkgPSBFUlJf UFRSKC1FTk9FTlQpOworCQlnb3RvIG91dDsKKwl9CisJdG1wID0gZF9hbGxvYyhsb3dlcl9i YXNlLCBuYW1lKTsKKwlpZiAoIXRtcCkgeworCQluZXdfZGVudHJ5ID0gRVJSX1BUUigtRU5P TUVNKTsKKwkJZ290byBvdXQ7CisJfQorCW5ld19kZW50cnkgPSBsb3dlcl9pbm9kZS0+aV9v cC0+bG9va3VwKGxvd2VyX2lub2RlLCB0bXAsIG5kKTsKKwkvKiBsb29rdXAoKSBzZWVtaW5n bHkgaXMgYWxsb3dlZCB0byByZXR1cm4gaXRzIG93biBkZW50cnkgKHdoaWNoIAorCSAqIG1h eSBpbmRlZWQgYmUgYSBkZW50cnkgb3Igb25seSBhbiBlcnJvcikuIElmIHNvCisJICogd2Ug dXNlIGl0IGFuZCBkaXNjYXJkIG91cnMuIE90aGVyd2lzZSB3ZSB1c2Ugb3VycyAqLyAKKwlp ZiAoIW5ld19kZW50cnkpIAorCQluZXdfZGVudHJ5ID0gdG1wOworCWVsc2UgCisJCWRwdXQo dG1wKTsKKwkJCitvdXQ6CQkKKwlyZXR1cm4gbmV3X2RlbnRyeTsKK30KKworCisvKiBnZXQg bG93ZXIgZGVudHJ5IGZvciBnaXZlbiBuYW1lICovCitzdGF0aWMgc3RydWN0IGRlbnRyeSAq ZGF6dWtvZnNfbG9va3VwX29uZV9sb3dlcihzdHJ1Y3QgcXN0ciAqbmFtZSwgCisJCQkJCQlz dHJ1Y3QgZGVudHJ5ICpsb3dlcl9iYXNlLAorCQkJCQkJc3RydWN0IHZmc21vdW50ICpsb3dl cl9tbnQpCit7CisJc3RydWN0IGRlbnRyeSAqcmVzdWx0OworCXN0cnVjdCBuYW1laWRhdGEg bmQ7CisJaW50IGVycjsKKworCWVyciA9IHZmc19wYXRoX2xvb2t1cChsb3dlcl9iYXNlLCBs b3dlcl9tbnQsIG5hbWUtPm5hbWUsIDAsICZuZCk7CisKKwlpZiAoIWVycikgeworCQkvKiBp bm9kZSBhbHJlYWR5IGV4aXN0cyBvbiBkaXNrICovCisJCXJlc3VsdCA9IG5kLmRlbnRyeTsK KwkJLyogd2UgZG9udCBuZWVkIHRoZSBtb3VudCAqLworCQltbnRwdXQobmQubW50KTsKKwkJ Z290byBvdXQ7CisJfQorCWlmIChlcnIgIT0gLUVOT0VOVCkgeyAvKiB0aGlzIGlzIGEgUkVB TCBlcnJvciAqLwkKKwkJcmVzdWx0ID0gRVJSX1BUUihlcnIpOworCQlnb3RvIG91dDsKKwl9 CQorCS8qIGNyZWF0ZSBhIG5ldyAobG93ZXIpIGRlbnRyeSAqLworCXJlc3VsdCA9IGRhenVr b2ZzX25ld19sb3dlcl9kZW50cnkobmFtZSwgbG93ZXJfYmFzZSwgJm5kKTsKK291dDoKKwly ZXR1cm4gcmVzdWx0OworCit9CisKKwogLyoqCiAgKiBEZXNjcmlwdGlvbjogQ2FsbGVkIHdo ZW4gdGhlIFZGUyBuZWVkcyB0byBsb29rIHVwIGFuIGlub2RlIGluIGEgcGFyZW50CiAgKiBk aXJlY3RvcnkuIFRoZSBuYW1lIHRvIGxvb2sgZm9yIGlzIGZvdW5kIGluIHRoZSBkZW50cnku IFRoaXMgbWV0aG9kCkBAIC0xNDgsNjIgKzIwOSw0OCBAQCBzdGF0aWMgc3RydWN0IGRlbnRy eSAqZGF6dWtvZnNfbG9va3VwKHN0CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5Owog CXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQ7CiAJc3RydWN0IHZmc21vdW50 ICpsb3dlcl9tbnQ7Ci0JaW50IGVyciA9IDA7Ci0KLQlpZiAoKGRlbnRyeS0+ZF9uYW1lLmxl biA9PSAxICYmICFzdHJjbXAoZGVudHJ5LT5kX25hbWUubmFtZSwgIi4iKSkKLQkgICAgfHwg KGRlbnRyeS0+ZF9uYW1lLmxlbiA9PSAyICYmCi0JCSFzdHJjbXAoZGVudHJ5LT5kX25hbWUu bmFtZSwgIi4uIikpKSB7Ci0JCWRfZHJvcChkZW50cnkpOwotCQlnb3RvIG91dDsKLQl9Ci0K LQlkZW50cnktPmRfb3AgPSAmZGF6dWtvZnNfZG9wczsKKwlpbnQgZXJyOwogCiAJbG93ZXJf ZGVudHJ5X3BhcmVudCA9IEdFVF9MT1dFUl9ERU5UUlkoZGVudHJ5LT5kX3BhcmVudCk7Ci0J bG93ZXJfZGVudHJ5ID0gbG9va3VwX29uZV9sZW4oZGVudHJ5LT5kX25hbWUubmFtZSwgbG93 ZXJfZGVudHJ5X3BhcmVudCwKLQkJCQkgICAgICBkZW50cnktPmRfbmFtZS5sZW4pOworCS8q IHNob3VsZCBiZSByZWxlYXNlZCBpbiBkX3JlbGVhc2UoKSAqLworCWxvd2VyX21udCA9IG1u dGdldChHRVRfTE9XRVJfTU5UKGRlbnRyeS0+ZF9wYXJlbnQpKTsKIAorCWxvd2VyX2RlbnRy eSA9IGRhenVrb2ZzX2xvb2t1cF9vbmVfbG93ZXIoJmRlbnRyeS0+ZF9uYW1lLCAKKwkJCQkJ CSBsb3dlcl9kZW50cnlfcGFyZW50LCAKKwkJCQkJCSBsb3dlcl9tbnQpOyAKIAlpZiAoSVNf RVJSKGxvd2VyX2RlbnRyeSkpIHsKLQkJZXJyID0gUFRSX0VSUihsb3dlcl9kZW50cnkpOwot CQlkX2Ryb3AoZGVudHJ5KTsKLQkJZ290byBvdXQ7CisJCW1udHB1dChsb3dlcl9tbnQpOwor CQlyZXR1cm4gbG93ZXJfZGVudHJ5OwogCX0KLQogCUJVR19PTighYXRvbWljX3JlYWQoJmxv d2VyX2RlbnRyeS0+ZF9jb3VudCkpOwogCisJZGVudHJ5LT5kX29wID0gJmRhenVrb2ZzX2Rv cHM7CiAJU0VUX0RFTlRSWV9JTkZPKGRlbnRyeSwga21lbV9jYWNoZV96YWxsb2MoZGF6dWtv ZnNfZGVudHJ5X2luZm9fY2FjaGVwLAogCQkJR0ZQX0tFUk5FTCkpOwogCiAJaWYgKCFHRVRf REVOVFJZX0lORk8oZGVudHJ5KSkgewotCQllcnIgPSAtRU5PTUVNOwotCQlnb3RvIG91dF9k cHV0OworCQltbnRwdXQobG93ZXJfbW50KTsKKwkJZHB1dChsb3dlcl9kZW50cnkpOworCQly ZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAl9Ci0KLQlsb3dlcl9tbnQgPSBtbnRnZXQoR0VU X0xPV0VSX01OVChkZW50cnktPmRfcGFyZW50KSk7Ci0KLQlmc3N0YWNrX2NvcHlfYXR0cl9h dGltZShkaXIsIGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGUpOwotCiAJU0VUX0xPV0VS X0RFTlRSWShkZW50cnksIGxvd2VyX2RlbnRyeSwgbG93ZXJfbW50KTsKLQorCS8qIGZyb20g bm93IGxvd2VyIGRlbnRyeSBhbmQgbG93ZXIgbW91bnQgYXJlIHJlbGVhc2VkIGluIAorCSAg ZF9yZWxlYXNlIG9mIHVwcGVyIGRlbnRyeSAqLworCWZzc3RhY2tfY29weV9hdHRyX2F0aW1l KGRpciwgbG93ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9kZSk7CiAJaWYgKCFsb3dlcl9kZW50 cnktPmRfaW5vZGUpIHsKIAkJLyoKIAkJICogV2Ugd2FudCB0byBhZGQgYmVjYXVzZSB3ZSBj b3VsZCBub3QgZmluZCBpbiBsb3dlci4KIAkJICovCiAJCWRfYWRkKGRlbnRyeSwgTlVMTCk7 Ci0JCWdvdG8gb3V0OworCQlnb3RvIG9rOwogCX0KIAogCWVyciA9IGRhenVrb2ZzX2ludGVy cG9zZShsb3dlcl9kZW50cnksIGRlbnRyeSwgZGlyLT5pX3NiLCAxKTsKLQlpZiAoZXJyKQot CQlnb3RvIG91dF9kcHV0OwotCWdvdG8gb3V0OwotCi1vdXRfZHB1dDoKLQlkcHV0KGxvd2Vy X2RlbnRyeSk7Ci0JZF9kcm9wKGRlbnRyeSk7CisJaWYgKGVycikgCisJCXJldHVybiBFUlJf UFRSKGVycik7CiAKLW91dDoKLQlyZXR1cm4gRVJSX1BUUihlcnIpOworb2s6CisJcmV0dXJu IE5VTEw7IC8qIHRlbGwgY2FsbGVyIHRvIHVzZSBpdHMgb3duLCBwYXNzZWQgZGVudHJ5LCBu b3Qgb3VycyAqLwogfQogCiAvKioKQEAgLTIxNiw2ICsyNjMsNyBAQCBzdGF0aWMgaW50IGRh enVrb2ZzX21rbm9kKHN0cnVjdCBpbm9kZSAqCiAJCQkgIGRldl90IGRldikKIHsKIAlzdHJ1 Y3QgZGVudHJ5ICpsb3dlcl9kZW50cnkgPSBHRVRfTE9XRVJfREVOVFJZKGRlbnRyeSk7CisJ c3RydWN0IHZmc21vdW50ICpsb3dlcl9tbnQgPSBHRVRfTE9XRVJfTU5UKGRlbnRyeSk7CiAJ c3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5X3BhcmVudCA9IGRnZXQobG93ZXJfZGVudHJ5 LT5kX3BhcmVudCk7CiAJc3RydWN0IGlub2RlICpsb3dlcl9kZW50cnlfcGFyZW50X2lub2Rl ID0gbG93ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9kZTsKIAlpbnQgZXJyID0gLUVOT0VOVDsK QEAgLTIyMyw3ICsyNzEsOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX21rbm9kKHN0cnVjdCBp bm9kZSAqCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50X2lub2Rl LT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JZXJyID0gdmZzX21rbm9k KGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgbW9kZSwgZGV2KTsK KwllcnIgPSB2ZnNfbWtub2QobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVu dHJ5LGxvd2VyX21udCwgCisJCQkgbW9kZSwgZGV2KTsKIAlpZiAoZXJyKQogCQlnb3RvIG91 dDsKIApAQCAtMjQ4LDYgKzI5Nyw3IEBAIG91dDoKIHN0YXRpYyBpbnQgZGF6dWtvZnNfbWtk aXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUp CiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShk ZW50cnkpOworCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50ID0gR0VUX0xPV0VSX01OVChk ZW50cnkpOwogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQgPSBkZ2V0KGxv d2VyX2RlbnRyeS0+ZF9wYXJlbnQpOwogCXN0cnVjdCBpbm9kZSAqbG93ZXJfZGVudHJ5X3Bh cmVudF9pbm9kZSA9IGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGU7CiAJaW50IGVyciA9 IC1FTk9FTlQ7CkBAIC0yNTUsNyArMzA1LDggQEAgc3RhdGljIGludCBkYXp1a29mc19ta2Rp cihzdHJ1Y3QgaW5vZGUgKgogCW11dGV4X2xvY2tfbmVzdGVkKCYobG93ZXJfZGVudHJ5X3Bh cmVudF9pbm9kZS0+aV9tdXRleCksCiAJCQkgIElfTVVURVhfUEFSRU5UKTsKIAotCWVyciA9 IHZmc19ta2Rpcihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnksIG1v ZGUpOworCWVyciA9IHZmc19ta2Rpcihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dl cl9kZW50cnksIGxvd2VyX21udCwKKwkJCW1vZGUpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0 OwogCkBAIC0yOTQsMTkgKzM0NSwxOSBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2NyZWF0ZShz dHJ1Y3QgaW5vZGUgCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50 X2lub2RlLT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JdmZzbW91bnRf c2F2ZSA9IG5kLT5wYXRoLm1udDsKLQlkZW50cnlfc2F2ZSA9IG5kLT5wYXRoLmRlbnRyeTsK Kwl2ZnNtb3VudF9zYXZlID0gbmQtPm1udDsKKwlkZW50cnlfc2F2ZSA9IG5kLT5kZW50cnk7 CiAKLQluZC0+cGF0aC5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKLQluZC0+cGF0aC5kZW50 cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CisJbmQtPm1udCA9IG1udGdldChsb3dlcl9tbnQp OworCW5kLT5kZW50cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CiAKIAllcnIgPSB2ZnNfY3Jl YXRlKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgbW9kZSwgbmQp OwogCiAJbW50cHV0KGxvd2VyX21udCk7CiAJZHB1dChsb3dlcl9kZW50cnkpOwogCi0JbmQt PnBhdGgubW50ID0gdmZzbW91bnRfc2F2ZTsKLQluZC0+cGF0aC5kZW50cnkgPSBkZW50cnlf c2F2ZTsKKwluZC0+bW50ID0gdmZzbW91bnRfc2F2ZTsKKwluZC0+ZGVudHJ5ID0gZGVudHJ5 X3NhdmU7CiAKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTMzMyw2ICszODQsNyBAQCBz dGF0aWMgaW50IGRhenVrb2ZzX3N5bWxpbmsoc3RydWN0IGlub2RlCiAJCQkgICAgY29uc3Qg Y2hhciAqc3ltbmFtZSkKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50cnkgPSBHRVRf TE9XRVJfREVOVFJZKGRlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICpsb3dlcl9tbnQgPSBH RVRfTE9XRVJfTU5UKGRlbnRyeSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5X3Bh cmVudCA9IGRnZXQobG93ZXJfZGVudHJ5LT5kX3BhcmVudCk7CiAJc3RydWN0IGlub2RlICps b3dlcl9kZW50cnlfcGFyZW50X2lub2RlID0gbG93ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9k ZTsKIAlpbnQgZXJyID0gLUVOT0VOVDsKQEAgLTM0MCw3ICszOTIsOCBAQCBzdGF0aWMgaW50 IGRhenVrb2ZzX3N5bWxpbmsoc3RydWN0IGlub2RlCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihs b3dlcl9kZW50cnlfcGFyZW50X2lub2RlLT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJF TlQpOwogCi0JZXJyID0gdmZzX3N5bWxpbmsobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwg bG93ZXJfZGVudHJ5LCBzeW1uYW1lKTsKKwllcnIgPSB2ZnNfc3ltbGluayhsb3dlcl9kZW50 cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnksIGxvd2VyX21udCwgCisJCQkgIHN5bW5h bWUsIFNfSUFMTFVHTyk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKQEAgLTQ1Miw5ICs1 MDUsMzcgQEAgc3RhdGljIHZvaWQgZGF6dWtvZnNfcHV0X2xpbmsoc3RydWN0IGRlbgogICog RGVzY3JpcHRpb246IENhbGxlZCBieSB0aGUgVkZTIHRvIGNoZWNrIGZvciBhY2Nlc3Mgcmln aHRzIG9uIGEKICAqIFBPU0lYLWxpa2UgZmlsZXN5c3RlbS4KICAqLwotc3RhdGljIGludCBk YXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQorc3Rh dGljIGludCBkYXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBt YXNrLAorCQkJICAgICAgIHN0cnVjdCBuYW1laWRhdGEgKm5kKQogewotCXJldHVybiBpbm9k ZV9wZXJtaXNzaW9uKEdFVF9MT1dFUl9JTk9ERShpbm9kZSksIG1hc2spOworCXN0cnVjdCB2 ZnNtb3VudCAqbG93ZXJfbW50ID0gTlVMTDsKKwlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50 cnkgPSBOVUxMOworCXN0cnVjdCB2ZnNtb3VudCAqdmZzbW50X3NhdmUgPSBOVUxMOworCXN0 cnVjdCBkZW50cnkgKmRlbnRyeV9zYXZlID0gTlVMTDsKKwlpbnQgZXJyOworCisJaWYgKG5k KSB7CisJCWxvd2VyX21udCA9IEdFVF9MT1dFUl9NTlQobmQtPmRlbnRyeSk7CisJCWxvd2Vy X2RlbnRyeSA9IEdFVF9MT1dFUl9ERU5UUlkobmQtPmRlbnRyeSk7CisKKwkJdmZzbW50X3Nh dmUgPSBuZC0+bW50OworCQlkZW50cnlfc2F2ZSA9IG5kLT5kZW50cnk7CisKKwkJbmQtPm1u dCA9IG1udGdldChsb3dlcl9tbnQpOworCQluZC0+ZGVudHJ5ID0gZGdldChsb3dlcl9kZW50 cnkpOworCX0KKworCWVyciA9IHBlcm1pc3Npb24oR0VUX0xPV0VSX0lOT0RFKGlub2RlKSwg bWFzaywgbmQpOworCisJaWYgKG5kKSB7CisJCW1udHB1dChsb3dlcl9tbnQpOworCQlkcHV0 KGxvd2VyX2RlbnRyeSk7CisKKwkJbmQtPm1udCA9IHZmc21udF9zYXZlOworCQluZC0+ZGVu dHJ5ID0gZGVudHJ5X3NhdmU7CisJfQorCisgICAgICAgIHJldHVybiBlcnI7CiB9CiAKIC8q KgpAQCAtNDY0LDE4ICs1NDUsMzIgQEAgc3RhdGljIGludCBkYXp1a29mc19wZXJtaXNzaW9u KHN0cnVjdCBpbgogc3RhdGljIGludCBkYXp1a29mc19zZXRhdHRyKHN0cnVjdCBkZW50cnkg KmRlbnRyeSwgc3RydWN0IGlhdHRyICppYSkKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9k ZW50cnkgPSBHRVRfTE9XRVJfREVOVFJZKGRlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICps b3dlcl9tbnQgPSBHRVRfTE9XRVJfTU5UKGRlbnRyeSk7CiAJc3RydWN0IGlub2RlICppbm9k ZSA9IGRlbnRyeS0+ZF9pbm9kZTsKIAlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2lub2RlID0gR0VU X0xPV0VSX0lOT0RFKGlub2RlKTsKIAlpbnQgZXJyOwogCi0JZXJyID0gbm90aWZ5X2NoYW5n ZShsb3dlcl9kZW50cnksIGlhKTsKIAotCWZzc3RhY2tfY29weV9hdHRyX2FsbChpbm9kZSwg bG93ZXJfaW5vZGUsIE5VTEwpOwotCWZzc3RhY2tfY29weV9pbm9kZV9zaXplKGlub2RlLCBs b3dlcl9pbm9kZSk7CisJaWYgKCFsb3dlcl9pbm9kZS0+aV9vcCB8fCAhbG93ZXJfaW5vZGUt Pmlfb3AtPnNldGF0dHIpIAorCQkvKiBYWFg6IGF0IHRoaXMgcG9pbnQgaXQgaXMgdG9vIGxh dGUgdG8gaGFuZGxlIGlub2RlcyBwcm9wZXJseSB0aGF0IGRvIE5PVAorCQlzcGVjaWZ5IHNl dGF0dHIoKS4gVkZTIHdvdWxkIG5vcm1hbGx5IGNhbGwgaW5vZGVfc2V0YXR0cigpIGluIAor CQl0aGlzIGNhc2UuIFNvIHRvIGZvcmNlIHRoaXMgd2UganVtcCBiYWNrIHRvIG5vdGlmeV9j aGFuZ2Ugd2hpY2ggd2lsbAorCQloYW5kbGUgdGhpcyBmb3IgdXMuIEJ1dCB0aGlzIGlzIGRh bmdlcm91czoKKwkJVGhlIGF0dHJpYnV0ZXMgbWlnaHQgYmUgbW9kaWZpZWQgYnkgbm90aWZ5 X2NoYW5nZSgpIGluIGEgd2F5CisJCXRoYXQgcmVzdWx0cyBpbiBpbnZhbGlkIGF0dHJpYnV0 ZXMuIFRoaXMgc2VlbXMgdG8gYmUgdGhlIGNhc2UKKwkJaWYgdGhlIGlub2RlIGZvciB3aGlj aCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBoYXMgdGhlIHNldHVpZAorCQlvciBzZXRnaWQg Yml0IHNldCAqLyAKKwkJZXJyID0gbm90aWZ5X2NoYW5nZShsb3dlcl9kZW50cnksIGxvd2Vy X21udCwgaWEpOworCWVsc2UgCisJCWVyciA9IGxvd2VyX2lub2RlLT5pX29wLT5zZXRhdHRy KGxvd2VyX2RlbnRyeSwgaWEpOworCQorCWlmICghZXJyKSB7CisJCWZzc3RhY2tfY29weV9h dHRyX2FsbChpbm9kZSwgbG93ZXJfaW5vZGUsIE5VTEwpOworCQlmc3N0YWNrX2NvcHlfaW5v ZGVfc2l6ZShpbm9kZSwgbG93ZXJfaW5vZGUpOworCX0gCiAKIAlyZXR1cm4gZXJyOwogfQot CiAvKioKICAqIERlc2NyaXB0aW9uOiBDYWxsZWQgYnkgdGhlIFZGUyB0byBzZXQgYW4gZXh0 ZW5kZWQgYXR0cmlidXRlIGZvciBhIGZpbGUuCiAgKiBFeHRlbmRlZCBhdHRyaWJ1dGUgaXMg YSBuYW1lOnZhbHVlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIGFuIGlub2RlLiBUaGlzCkBAIC00 OTYsNyArNTkxLDcgQEAgc3RhdGljIGludCBkYXp1a29mc19zZXR4YXR0cihzdHJ1Y3QgZGVu dAogCiAJaWYgKCFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AgfHwKIAkgICAgIWxvd2VyX2Rl bnRyeV9pbm9kZS0+aV9vcC0+c2V0eGF0dHIpIHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJy ID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0OwogCX0KIApAQCAtNTI4LDcgKzYyMyw3IEBA IHN0YXRpYyBzc2l6ZV90IGRhenVrb2ZzX2dldHhhdHRyKHN0cnVjdCAKIAogCWlmICghbG93 ZXJfZGVudHJ5X2lub2RlLT5pX29wIHx8CiAJICAgICFsb3dlcl9kZW50cnlfaW5vZGUtPmlf b3AtPmdldHhhdHRyKSB7Ci0JCWVyciA9IC1FTk9TWVM7CisJCWVyciA9IC1FT1BOT1RTVVBQ OwogCQlnb3RvIG91dDsKIAl9CiAKQEAgLTU1Nyw3ICs2NTIsNyBAQCBzdGF0aWMgc3NpemVf dCBkYXp1a29mc19saXN0eGF0dHIoc3RydWN0CiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9pbm9k ZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5saXN0eGF0dHIp IHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJyID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0 OwogCX0KIApAQCAtNTg0LDcgKzY3OSw3IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVtb3Zl eGF0dHIoc3RydWN0IGQKIAogCWlmICghbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wIHx8CiAJ ICAgICFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AtPnJlbW92ZXhhdHRyKSB7Ci0JCWVyciA9 IC1FTk9TWVM7CisJCWVyciA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIG91dDsKIAl9CiAKQEAg LTYwMyw2ICs2OTgsOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2xpbmsoc3RydWN0IGRlbnRy eSAqCiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfb2xkX2RlbnRyeSA9IEdFVF9MT1dFUl9E RU5UUlkob2xkX2RlbnRyeSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfbmV3X2RlbnRyeSA9 IEdFVF9MT1dFUl9ERU5UUlkobmV3X2RlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICpsb3dl cl9vbGRfbW50ID0gR0VUX0xPV0VSX01OVChvbGRfZGVudHJ5KTsKKwlzdHJ1Y3QgdmZzbW91 bnQgKmxvd2VyX25ld19tbnQgPSBHRVRfTE9XRVJfTU5UKG5ld19kZW50cnkpOwogCXN0cnVj dCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQgPSBkZ2V0KGxvd2VyX25ld19kZW50cnkt PmRfcGFyZW50KTsKIAlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUg PSBsb3dlcl9kZW50cnlfcGFyZW50LT5kX2lub2RlOwogCWludCBlcnIgPSAtRU5PRU5UOwpA QCAtNjEwLDggKzcwNyw5IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfbGluayhzdHJ1Y3QgZGVu dHJ5ICoKIAltdXRleF9sb2NrX25lc3RlZCgmKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUt PmlfbXV0ZXgpLAogCQkJICBJX01VVEVYX1BBUkVOVCk7CiAKLQllcnIgPSB2ZnNfbGluayhs b3dlcl9vbGRfZGVudHJ5LCBsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLAotCQkgICAgICAg bG93ZXJfbmV3X2RlbnRyeSk7CisJZXJyID0gdmZzX2xpbmsobG93ZXJfb2xkX2RlbnRyeSwg bG93ZXJfb2xkX21udCwKKwkJICAgICAgIGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxv d2VyX25ld19kZW50cnksCisJCSAgICAgICBsb3dlcl9uZXdfbW50KTsKIAlpZiAoZXJyKQog CQlnb3RvIG91dDsKIApAQCAtNjM1LDYgKzczMyw3IEBAIG91dDoKIHN0YXRpYyBpbnQgZGF6 dWtvZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp CiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShk ZW50cnkpOworCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50ID0gR0VUX0xPV0VSX01OVChk ZW50cnkpOwogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQgPSBkZ2V0KGxv d2VyX2RlbnRyeS0+ZF9wYXJlbnQpOwogCXN0cnVjdCBpbm9kZSAqbG93ZXJfZGVudHJ5X3Bh cmVudF9pbm9kZSA9IGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGU7CiAJaW50IGVycjsK QEAgLTY0Miw3ICs3NDEsNyBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3VubGluayhzdHJ1Y3Qg aW5vZGUgCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50X2lub2Rl LT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JZXJyID0gdmZzX3VubGlu ayhsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnkpOworCWVyciA9IHZm c191bmxpbmsobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBsb3dl cl9tbnQpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCkBAIC02NjQsNiArNzYzLDcgQEAg b3V0Ogogc3RhdGljIGludCBkYXp1a29mc19ybWRpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5KQogewogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeSA9 IEdFVF9MT1dFUl9ERU5UUlkoZGVudHJ5KTsKKwlzdHJ1Y3QgdmZzbW91bnQgKmxvd2VyX21u dCA9IEdFVF9MT1dFUl9NTlQoZGVudHJ5KTsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50 cnlfcGFyZW50ID0gZGdldChsb3dlcl9kZW50cnktPmRfcGFyZW50KTsKIAlzdHJ1Y3QgaW5v ZGUgKmxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUgPSBsb3dlcl9kZW50cnlfcGFyZW50LT5k X2lub2RlOwogCWludCBlcnI7CkBAIC02NzEsNyArNzcxLDcgQEAgc3RhdGljIGludCBkYXp1 a29mc19ybWRpcihzdHJ1Y3QgaW5vZGUgKgogCW11dGV4X2xvY2tfbmVzdGVkKCYobG93ZXJf ZGVudHJ5X3BhcmVudF9pbm9kZS0+aV9tdXRleCksCiAJCQkgIElfTVVURVhfUEFSRU5UKTsK IAotCWVyciA9IHZmc19ybWRpcihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9k ZW50cnkpOworCWVyciA9IHZmc19ybWRpcihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBs b3dlcl9kZW50cnksIGxvd2VyX21udCk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKQEAg LTY5Niw2ICs3OTYsOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3JlbmFtZShzdHJ1Y3QgaW5v ZGUgCiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfb2xkX2RlbnRyeSA9IEdFVF9MT1dFUl9E RU5UUlkob2xkX2RlbnRyeSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfbmV3X2RlbnRyeSA9 IEdFVF9MT1dFUl9ERU5UUlkobmV3X2RlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICpsb3dl cl9vbGRfbW50ID0gR0VUX0xPV0VSX01OVChvbGRfZGVudHJ5KTsKKwlzdHJ1Y3QgdmZzbW91 bnQgKmxvd2VyX25ld19tbnQgPSBHRVRfTE9XRVJfTU5UKG5ld19kZW50cnkpOwogCXN0cnVj dCBkZW50cnkgKmxvd2VyX29sZF9kZW50cnlfcGFyZW50ID0KIAkJZGdldChsb3dlcl9vbGRf ZGVudHJ5LT5kX3BhcmVudCk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfbmV3X2RlbnRyeV9w YXJlbnQgPQpAQCAtNzE4LDcgKzgyMCw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVuYW1l KHN0cnVjdCBpbm9kZSAKIAogCWxvY2tfcmVuYW1lKGxvd2VyX29sZF9kZW50cnlfcGFyZW50 LCBsb3dlcl9uZXdfZGVudHJ5X3BhcmVudCk7CiAJZXJyID0gdmZzX3JlbmFtZShsb3dlcl9v bGRfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfb2xkX2RlbnRyeSwKLQkJCSBsb3dlcl9u ZXdfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfbmV3X2RlbnRyeSk7CisJCQkgbG93ZXJf b2xkX21udCwgbG93ZXJfbmV3X2RlbnRyeV9wYXJlbnRfaW5vZGUsIAorCQkJIGxvd2VyX25l d19kZW50cnksIGxvd2VyX25ld19tbnQpOwogCXVubG9ja19yZW5hbWUobG93ZXJfb2xkX2Rl bnRyeV9wYXJlbnQsIGxvd2VyX25ld19kZW50cnlfcGFyZW50KTsKIAogCWlmIChlcnIpCmRp ZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvTWFrZWZpbGUgZGF6dWtvZnMtMy4wLjAt cmM0XzIuNi4yNF9VYnVudHU4LjA0L01ha2VmaWxlCi0tLSBkYXp1a29mcy0zLjAuMC9NYWtl ZmlsZQkyMDA5LTAyLTIyIDE3OjQ2OjAyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMt My4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L01ha2VmaWxlCTIwMDktMDUtMTkgMTU6MDE6 NTMuMDAwMDAwMDAwICswMjAwCkBAIC0xOSw2ICsxOSw3IEBAIGRhenVrb2ZzX2luc3RhbGw6 IGRhenVrb2ZzX21vZHVsZXMKIAogY2xlYW46CiAJcm0gLWYgTW9kdWxlLnN5bXZlcnMKKwly bSAtZiBtb2R1bGVzLm9yZGVyCiAJbWFrZSAtQyAkKERBWlVLT0ZTX0tFUk5FTF9TUkMpIFNV QkRJUlM9ImBwd2RgIiBjbGVhbgogCiAuUEhPTlk6IGRhenVrb2ZzX21vZHVsZXMgZGF6dWtv ZnNfaW5zdGFsbCBjbGVhbgpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL1JFQURN RSBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvUkVBRE1FCi0tLSBkYXp1 a29mcy0zLjAuMC9SRUFETUUJMjAwOS0wMi0yMiAxNzozODoyMS4wMDAwMDAwMDAgKzAxMDAK KysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9SRUFETUUJMjAwOS0w Mi0yMyAxMTowNTo0Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTIxLDEwICsyMSwxMCBAQCBOT1RF OiBEYXp1a29GUyBpcyBjb21wbGV0ZWx5IHNlcGFyYXRlIGZyCiA9PT09PT09PT09PT09PT09 PQogCiBCZWxvdyBhcmUgYnJpZWYgaW5zdHJ1Y3Rpb25zIHRvIGdldCBEYXp1a29GUyBjb21w aWxlZCBhbmQgcnVubmluZyBvbiBhCi1zeXN0ZW0gd2l0aCBhIExpbnV4IDIuNi4yOCBrZXJu ZWwuIFlvdSBtYXkgbmVlZCB0byBtYW51YWxseSBhZGp1c3QgdGhlCitzeXN0ZW0gd2l0aCBh IExpbnV4IDIuNi4yNyBrZXJuZWwuIFlvdSBtYXkgbmVlZCB0byBtYW51YWxseSBhZGp1c3Qg dGhlCiBNYWtlZmlsZSBpZiB5b3Uga2VybmVsIHNvdXJjZXMgYXJlIG5vdCBpbiB0aGUgZGVm YXVsdCBsb2NhdGlvbi4KLShQYXRjaGVzIGFyZSBwcm92aWRlZCBmb3IgdmFyaW91cyBvdGhl ciBrZXJuZWxzLiBTZWUgdGhlIHNlY3Rpb24gYmVsb3cKLXRpdGxlZCAiUEFUQ0hJTkciIGZv ciBtb3JlIGluZm9ybWF0aW9uLikKKyhBIHBhdGNoIGlzIHByb3ZpZGVkIHRvIGNvbnZlcnQg dGhlIERhenVrb0ZTIGNvZGUgdG8gc3VwcG9ydCBMaW51eAorMi42LjI2LikKIAogY29tcGls ZSB0aGUga2VybmVsIG1vZHVsZQogICAjIG1ha2UKQEAgLTUyLDI1ICs1Miw2IEBAIHVubW91 bnQgRGF6dWtvRlMKIAogCiAKLT09PT09PT09PT0KLSBQQVRDSElORwotPT09PT09PT09PQot Ci1JbiB0aGUgInBhdGNoZXMiIGRpcmVjdG9yeSB0aGVyZSBhcmUgcGF0Y2hlcyBhdmFpbGFi bGUgdG8gbW9kaWZ5IHRoZQotRGF6dWtvRlMgY29kZSB0byBmaXQgdmFyaW91cyBvdGhlciBr ZXJuZWxzLiBGb3IgZXhhbXBsZSwgaWYgeW91IGFyZQotcnVubmluZyBvcGVuU1VTRSAxMS4x IHlvdSBjYW4gcGF0Y2ggdGhlIGNvZGUgd2l0aCB0aGUgZm9sbG93aW5nCi1jb21tYW5kOgot Ci0kIHBhdGNoIC1wMSA8IHBhdGNoZXMvcGF0Y2gtb3BlbnN1c2UtMTEuMQotCi1UaGVyZSBz aG91bGQgbm90IGJlIGFueSBlcnJvcnMuIElmIHRoZXJlIGFyZSBlcnJvcnMsIHRoZW4gdGhl IHBhdGNoCi1pcyBicm9rZW4gYW5kIHNob3VsZCBiZSByZXBvcnRlZCBvbiB0aGUgZGF6dWtv LWRldmVsIG1haWxpbmcgbGlzdC4KLQotT25jZSB0aGUgY29kZSBoYXMgYmVlbiBwYXRjaGVk IHlvdSBjYW4gYnVpbGQgdGhlIGtlcm5lbCBtb2R1bGUgYXMKLWRlc2NyaWJlZCBpbiB0aGUg c2VjdGlvbiAiQlVJTEQgLyBJTlNUQUxMIiBhYm92ZS4KLQotCi0KID09PT09PT09PQogIFRF U1RJTkcKID09PT09PT09PQpAQCAtMTU0LDkgKzEzNSw2IEBAIGFueSBwcm9ibGVtcy4KICBL Tk9XTiBJU1NVRVMKID09PT09PT09PT09PT09CiAKLS0gVGhlIGtlcm5lbCB3aWxsIGNyYXNo IGlmIHlvdSBhdHRlbXB0IHRvIG1vdW50IERhenVrb0ZTIHRvIGEgZmlsZSBpbnN0ZWFkCi0g IG9mIGEgZGlyZWN0b3J5LiAoVGhlIHZhcmlvdXMga2VybmVsIHBhdGNoZXMgaGFuZGxlIHRo aXMgZXJyb3IuKQotCiAtIERhenVrb0ZTIGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyB0byBt ZW1vcnkgbWFwcGVkIGZpbGVzLiBUaGlzIHNob3VsZCBub3QKICAgY2F1c2UgdGhlIGtlcm5l bCB0byBjcmFzaCwgYnV0IHdpbGwgaW5zdGVhZCByZXN1bHQgaW4gdGhlIGFwcGxpY2F0aW9u CiAgIGZhaWxpbmcgdG8gcGVyZm9ybSB0aGUgd3JpdGVzIChhbHRob3VnaCBtbWFwKCkgd2ls bCBhcHBlYXIgdG8gYmUKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9zdXBlci5j IGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9zdXBlci5jCi0tLSBkYXp1 a29mcy0zLjAuMC9zdXBlci5jCTIwMDktMDItMjIgMTc6NDY6MDIuMDAwMDAwMDAwICswMTAw CisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvc3VwZXIuYwkyMDA5 LTA3LTAzIDE4OjE0OjU0LjAwMDAwMDAwMCArMDIwMApAQCAtMzUsNiArMzUsMTAgQEAgc3Rh dGljIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1a29mc19zYl9pbgogc3RydWN0IGttZW1fY2Fj aGUgKmRhenVrb2ZzX2RlbnRyeV9pbmZvX2NhY2hlcDsKIHN0cnVjdCBrbWVtX2NhY2hlICpk YXp1a29mc19maWxlX2luZm9fY2FjaGVwOwogCisKKyNkZWZpbmUgREFaVUtPRlNfVkVSU0lP TiAiMy4wLjAtcmM0LWF2aXJhLWIyLjYiCisKKwogc3RhdGljIHN0cnVjdCBpbm9kZSAqZGF6 dWtvZnNfYWxsb2NfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3Qg ZGF6dWtvZnNfaW5vZGVfaW5mbyAqaW5vZGVpOwpAQCAtMTU4LDggKzE2Miw4IEBAIHN0YXRp YyBpbnQgZGF6dWtvZnNfcmVhZF9zdXBlcihzdHJ1Y3Qgc3UKIAlpZiAoZXJyKQogCQlyZXR1 cm4gZXJyOwogCi0JbG93ZXJfcm9vdCA9IGRnZXQobmQucGF0aC5kZW50cnkpOwotCWxvd2Vy X21udCA9IG1udGdldChuZC5wYXRoLm1udCk7CisJbG93ZXJfcm9vdCA9IGRnZXQobmQuZGVu dHJ5KTsKKwlsb3dlcl9tbnQgPSBtbnRnZXQobmQubW50KTsKIAogCWlmIChJU19FUlIobG93 ZXJfcm9vdCkpIHsKIAkJZXJyID0gUFRSX0VSUihsb3dlcl9yb290KTsKQEAgLTE3MCw2ICsx NzQsMTAgQEAgc3RhdGljIGludCBkYXp1a29mc19yZWFkX3N1cGVyKHN0cnVjdCBzdQogCQll cnIgPSAtRU5PRU5UOwogCQlnb3RvIG91dF9wdXQ7CiAJfQorCWlmICghU19JU0RJUihsb3dl cl9yb290LT5kX2lub2RlLT5pX21vZGUpKSB7CisJCWVyciA9IC1FTk9FTlQ7CisJCWdvdG8g b3V0X3B1dDsKKwl9CiAKIAlTRVRfTE9XRVJfU0Ioc2IsIGxvd2VyX3Jvb3QtPmRfc2IpOwog CXNiLT5zX21heGJ5dGVzID0gbG93ZXJfcm9vdC0+ZF9zYi0+c19tYXhieXRlczsKQEAgLTE4 NCw3ICsxOTIsNyBAQCBvdXRfcHV0OgogCWRwdXQobG93ZXJfcm9vdCk7CiAJbW50cHV0KGxv d2VyX21udCk7CiBvdXQ6Ci0JcGF0aF9wdXQoJm5kLnBhdGgpOworCXBhdGhfcmVsZWFzZSgm bmQpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTIxMywxNSArMjIxLDE2IEBAIHN0YXRpYyBp bnQgZGF6dWtvZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3MKIAogb3V0X2Fib3J0OgogCXVwX3dy aXRlKCZzYi0+c191bW91bnQpOworCWRwdXQoc2ItPnNfcm9vdCk7CiAJZGVhY3RpdmF0ZV9z dXBlcihzYik7CiBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHZvaWQgaW5pdF9v bmNlKHZvaWQgKmRhdGEpCitzdGF0aWMgdm9pZCBpbml0X29uY2Uoc3RydWN0IGttZW1fY2Fj aGUgKmNhY2hlcCwgdm9pZCAqdnB0cikKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5m byAqaW5vZGVfaW5mbyA9Ci0JCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKWRhdGE7 CisJCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKXZwdHI7CiAKIAltZW1zZXQoaW5v ZGVfaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19pbm9kZV9pbmZvKSk7CiAJaW5v ZGVfaW5pdF9vbmNlKCYoaW5vZGVfaW5mby0+dmZzX2lub2RlKSk7CkBAIC0zMDUsNyArMzE0 LDcgQEAgc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGRhenVrb2ZzXwogCiBzdGF0 aWMgaW50IF9faW5pdCBpbml0X2RhenVrb2ZzX2ZzKHZvaWQpCiB7Ci0JaW50IGVyciA9IDA7 CisJaW50IGVycjsKIAogCWVyciA9IGRhenVrb2ZzX2Rldl9pbml0KCk7CiAJaWYgKGVycikK QEAgLTMxOSw3ICszMjgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBpbml0X2RhenVrb2ZzX2Zz KHZvaWQpCiAJaWYgKGVycikKIAkJZ290byBlcnJvcl9vdXQzOwogCi0JcHJpbnRrKEtFUk5f SU5GTyAiZGF6dWtvZnM6IGxvYWRlZCwgdmVyc2lvbj0lc1xuIiwgREFaVUtPRlNfVkVSU0lP Tik7CisJcHJpbnRrKEtFUk5fSU5GTyAiZGF6dWtvZnM6IGxvYWRlZCwgdmVyc2lvbj0iIERB WlVLT0ZTX1ZFUlNJT04gIlxuIik7CiAJcmV0dXJuIDA7CiAKIGVycm9yX291dDM6CkBAIC0z MzUsNyArMzQ0LDcgQEAgc3RhdGljIHZvaWQgX19leGl0IGV4aXRfZGF6dWtvZnNfZnModm9p ZAogCXVucmVnaXN0ZXJfZmlsZXN5c3RlbSgmZGF6dWtvZnNfZnNfdHlwZSk7CiAJZGVzdHJv eV9jYWNoZXMoKTsKIAlkYXp1a29mc19kZXZfZGVzdHJveSgpOwotCXByaW50ayhLRVJOX0lO Rk8gImRhenVrb2ZzOiB1bmxvYWRlZCwgdmVyc2lvbj0lc1xuIiwgREFaVUtPRlNfVkVSU0lP Tik7CisJcHJpbnRrKEtFUk5fSU5GTyAiZGF6dWtvZnM6IHVubG9hZGVkLCB2ZXJzaW9uPSIg REFaVUtPRlNfVkVSU0lPTiAiXG4iKTsKIH0KIAogTU9EVUxFX0FVVEhPUigiSm9obiBPZ25l c3MiKTsKTnVyIGluIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNDogc3Vw cG9ydGVkX2Rpc3Ryb3MuCg== --------------090005060303020503050008 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Dazuko-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/dazuko-devel --------------090005060303020503050008--