lkcd kernel patch for linux kernel 2.4. for x86_64
"Sanjay Kumar" <[email protected]> Wed, 7 Jul 2004 09:22:45 +0530
| Newsgroups | gmane.linux.lkcd.general |
|---|---|
| Message-ID | <33BC33A9E76474479B76AD0DE8A16972FE72@exch-ntd.nec.noida.hcltech.com> |
This is a multi-part message in MIME format. ------_=_NextPart_001_01C463D5.DCAC6B0C Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello Everybody please find attached lkcd kernel 2.4 patch for x86_64. follow these steps to apply the patch: 1. extract lkcd kernel code from LKCD CVS dated 2004-05-22.=20 2. Download 2.4.21 kernel from kernel.org. 3. copy the lkcd cvs code to the linux 2.4.21 kernel. 4. Apply the lkcd-kernel-x86_64.patch on top of it. 5. build the kernel and boot. Please provide feedback on patch. I have tested this patch on AMD opterorn dual processor machine with 512 = MB of RAM. To Do: =3D=3D=3D=3D=3D=3D=3D Currently working on lkcdutils to analyse the dump generated by above = patch. thanks and regards sanjay =20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Contributing to the World by creating indispensable value ! System Software CoE @ HCLT-Noida http://www.hcltechnologies.com Ph. : +91-120-2510701/702=20 FAX : +91-120-2510713=20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=20 ------_=_NextPart_001_01C463D5.DCAC6B0C Content-Type: application/octet-stream; name="lkcd-kernel-x86_64.patch" Content-Transfer-Encoding: base64 Content-Description: lkcd-kernel-x86_64.patch Content-Disposition: attachment; filename="lkcd-kernel-x86_64.patch" ZGlmZiAtTmF1ciBsaW51eC0yLjQuMjFfbGtjZC9hcmNoL3g4Nl82NC9ib290L2luc3RhbGwuc2gg bGtjZF9saW51eF94ODZfNjQvYXJjaC94ODZfNjQvYm9vdC9pbnN0YWxsLnNoCi0tLSBsaW51eC0y LjQuMjFfbGtjZC9hcmNoL3g4Nl82NC9ib290L2luc3RhbGwuc2gJMjAwMi0xMS0yOSAwNToyMzox Mi4wMDAwMDAwMDAgKzA1MzAKKysrIGxrY2RfbGludXhfeDg2XzY0L2FyY2gveDg2XzY0L2Jvb3Qv aW5zdGFsbC5zaAkyMDA0LTA3LTAxIDIwOjM2OjAzLjAwMDAwMDAwMCArMDUzMApAQCAtMTYsNyAr MTYsOCBAQAogIyAgICQxIC0ga2VybmVsIHZlcnNpb24KICMgICAkMiAtIGtlcm5lbCBpbWFnZSBm aWxlCiAjICAgJDMgLSBrZXJuZWwgbWFwIGZpbGUKLSMgICAkNCAtIGRlZmF1bHQgaW5zdGFsbCBw YXRoIChibGFuayBpZiByb290IGRpcmVjdG9yeSkKKyMgICAkNCAtIGtlcm5lbCB0eXBlIGZpbGUK KyMgICAkNSAtIGRlZmF1bHQgaW5zdGFsbCBwYXRoIChibGFuayBpZiByb290IGRpcmVjdG9yeSkg CiAjCiAKICMgVXNlciBtYXkgaGF2ZSBhIGN1c3RvbSBpbnN0YWxsIHNjcmlwdApAQCAtMjUsMTUg KzI2LDIxIEBACiAKICMgRGVmYXVsdCBpbnN0YWxsIC0gc2FtZSBhcyBtYWtlIHpsaWxvCiAKLWlm IFsgLWYgJDQvdm1saW51eiBdOyB0aGVuCi0JbXYgJDQvdm1saW51eiAkNC92bWxpbnV6Lm9sZAor aWYgWyAtZiAkNS92bWxpbnV6IF07IHRoZW4JCQkKKwltdiAkNS92bWxpbnV6ICQ0L3ZtbGludXou b2xkCQogZmkKIAotaWYgWyAtZiAkNC9TeXN0ZW0ubWFwIF07IHRoZW4KLQltdiAkNC9TeXN0ZW0u bWFwICQ0L1N5c3RlbS5vbGQKK2lmIFsgLWYgJDUvU3lzdGVtLm1hcCBdOyB0aGVuIAkKKwltdiAk NS9TeXN0ZW0ubWFwICQ0L1N5c3RlbS5vbGQKIGZpCiAKLWNhdCAkMiA+ICQ0L3ZtbGludXoKLWNw ICQzICQ0L1N5c3RlbS5tYXAKK2lmIFsgLWYgJDUvS2VybnR5cGVzIF07IHRoZW4KKwltdiAkNS9L ZXJudHlwZXMgJDUvS2VybnR5cGVzLm9sZAorZmkKKworY2F0ICQyID4gJDUvdm1saW51egorY3Ag JDMgJDUvU3lzdGVtLm1hcAorY3AgJDQgJDUvS2VybnR5cGVzCisKIAogaWYgWyAteCAvc2Jpbi9s aWxvIF07IHRoZW4gL3NiaW4vbGlsbzsgZWxzZSAvZXRjL2xpbG8vaW5zdGFsbDsgZmkKZGlmZiAt TmF1ciBsaW51eC0yLjQuMjFfbGtjZC9hcmNoL3g4Nl82NC9ib290L01ha2VmaWxlIGxrY2RfbGlu dXhfeDg2XzY0L2FyY2gveDg2XzY0L2Jvb3QvTWFrZWZpbGUKLS0tIGxpbnV4LTIuNC4yMV9sa2Nk L2FyY2gveDg2XzY0L2Jvb3QvTWFrZWZpbGUJMjAwMi0xMS0yOSAwNToyMzoxMi4wMDAwMDAwMDAg KzA1MzAKKysrIGxrY2RfbGludXhfeDg2XzY0L2FyY2gveDg2XzY0L2Jvb3QvTWFrZWZpbGUJMjAw NC0wNy0wMSAyMDozNzo0Ny4wMDAwMDAwMDAgKzA1MzAKQEAgLTM1LDEyICszNSwxNCBAQAogemxp bG86ICQoQ09ORklHVVJFKSAkKEJPT1RJTUFHRSkKIAlpZiBbIC1mICQoSU5TVEFMTF9QQVRIKS92 bWxpbnV6IF07IHRoZW4gbXYgJChJTlNUQUxMX1BBVEgpL3ZtbGludXogJChJTlNUQUxMX1BBVEgp L3ZtbGludXoub2xkOyBmaQogCWlmIFsgLWYgJChJTlNUQUxMX1BBVEgpL1N5c3RlbS5tYXAgXTsg dGhlbiBtdiAkKElOU1RBTExfUEFUSCkvU3lzdGVtLm1hcCAkKElOU1RBTExfUEFUSCkvU3lzdGVt Lm9sZDsgZmkKKwlpZiBbIC1mICQoSU5TVEFMTF9QQVRIKS9LZXJudHlwZXMgXTsgdGhlbiBtdiAk KElOU1RBTExfUEFUSCkvS2VybnR5cGVzICQoSU5TVEFMTF9QQVRIKS9LZXJudHlwZXMub2xkOyBm aQogCWNhdCAkKEJPT1RJTUFHRSkgPiAkKElOU1RBTExfUEFUSCkvdm1saW51egogCWNwICQoVE9Q RElSKS9TeXN0ZW0ubWFwICQoSU5TVEFMTF9QQVRIKS8KKwljcCAkKFRPUERJUikvS2VybnR5cGVz ICQoSU5TVEFMTF9QQVRIKS8KIAlpZiBbIC14IC9zYmluL2xpbG8gXTsgdGhlbiAvc2Jpbi9saWxv OyBlbHNlIC9ldGMvbGlsby9pbnN0YWxsOyBmaQogCiBpbnN0YWxsOiAkKENPTkZJR1VSRSkgJChC T09USU1BR0UpCi0Jc2ggLXggLi9pbnN0YWxsLnNoICQoS0VSTkVMUkVMRUFTRSkgJChCT09USU1B R0UpICQoVE9QRElSKS9TeXN0ZW0ubWFwICIkKElOU1RBTExfUEFUSCkiCisJc2ggLXggLi9pbnN0 YWxsLnNoICQoS0VSTkVMUkVMRUFTRSkgJChCT09USU1BR0UpICQoVE9QRElSKS9TeXN0ZW0ubWFw ICQoVE9QRElSKS9LZXJudHlwZXMgIiQoSU5TVEFMTF9QQVRIKSIKIAogdG9vbHMvYnVpbGQ6IHRv b2xzL2J1aWxkLmMKIAkkKEhPU1RDQykgJChIT1NUQ0ZMQUdTKSAtbyAkQCAkPApkaWZmIC1OYXVy IGxpbnV4LTIuNC4yMV9sa2NkL2FyY2gveDg2XzY0L2NvbmZpZy5pbiBsa2NkX2xpbnV4X3g4Nl82 NC9hcmNoL3g4Nl82NC9jb25maWcuaW4KLS0tIGxpbnV4LTIuNC4yMV9sa2NkL2FyY2gveDg2XzY0 L2NvbmZpZy5pbgkyMDAzLTA2LTEzIDIwOjIxOjMyLjAwMDAwMDAwMCArMDUzMAorKysgbGtjZF9s aW51eF94ODZfNjQvYXJjaC94ODZfNjQvY29uZmlnLmluCTIwMDQtMDctMDEgMjA6Mzg6NDMuMDAw MDAwMDAwICswNTMwCkBAIC0yMzUsNiArMjM1LDEyIEBACiBtYWlubWVudV9vcHRpb24gbmV4dF9j b21tZW50CiBjb21tZW50ICdLZXJuZWwgaGFja2luZycKIAordHJpc3RhdGUgJ0xpbnV4IEtlcm5l bCBDcmFzaCBEdW1wIChMS0NEKSBTdXBwb3J0JyBDT05GSUdfRFVNUAoraWYgWyAiJENPTkZJR19E VU1QIiAhPSAibiIgXTsgdGhlbgorICAgZGVwX3RyaXN0YXRlICcgIExLQ0QgUkxFIGNvbXByZXNz aW9uJyBDT05GSUdfRFVNUF9DT01QUkVTU19STEUgJENPTkZJR19EVU1QCisgICBkZXBfdHJpc3Rh dGUgJyAgTEtDRCBHWklQIGNvbXByZXNzaW9uJyBDT05GSUdfRFVNUF9DT01QUkVTU19HWklQICRD T05GSUdfRFVNUAorZmkKKwogYm9vbCAnS2VybmVsIGRlYnVnZ2luZycgQ09ORklHX0RFQlVHX0tF Uk5FTAogaWYgWyAiJENPTkZJR19ERUJVR19LRVJORUwiICE9ICJuIiBdOyB0aGVuCiAgICBib29s ICcgIERlYnVnIG1lbW9yeSBhbGxvY2F0aW9ucycgQ09ORklHX0RFQlVHX1NMQUIKZGlmZiAtTmF1 ciBsaW51eC0yLjQuMjFfbGtjZC9hcmNoL3g4Nl82NC9rZXJuZWwvaXJxLmMgbGtjZF9saW51eF94 ODZfNjQvYXJjaC94ODZfNjQva2VybmVsL2lycS5jCi0tLSBsaW51eC0yLjQuMjFfbGtjZC9hcmNo L3g4Nl82NC9rZXJuZWwvaXJxLmMJMjAwMi0xMS0yOSAwNToyMzoxMi4wMDAwMDAwMDAgKzA1MzAK KysrIGxrY2RfbGludXhfeDg2XzY0L2FyY2gveDg2XzY0L2tlcm5lbC9pcnEuYwkyMDA0LTA3LTAx IDIxOjExOjU2LjAwMDAwMDAwMCArMDUzMApAQCAtMTEwNiw3ICsxMTA2LDcgQEAKIAogc3RhdGlj IHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqIHNtcF9hZmZpbml0eV9lbnRyeSBbTlJfSVJRU107CiAK LXN0YXRpYyB1bnNpZ25lZCBsb25nIGlycV9hZmZpbml0eSBbTlJfSVJRU10gPSB7IFswIC4uLiBO Ul9JUlFTLTFdID0gfjBVTCB9OwordW5zaWduZWQgbG9uZyBpcnFfYWZmaW5pdHkgW05SX0lSUVNd ID0geyBbMCAuLi4gTlJfSVJRUy0xXSA9IH4wVUwgfTsKIHN0YXRpYyBpbnQgaXJxX2FmZmluaXR5 X3JlYWRfcHJvYyAoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmYsCiAJCQlpbnQg Y291bnQsIGludCAqZW9mLCB2b2lkICpkYXRhKQogewpkaWZmIC1OYXVyIGxpbnV4LTIuNC4yMV9s a2NkL2FyY2gveDg2XzY0L2tlcm5lbC9ubWkuYyBsa2NkX2xpbnV4X3g4Nl82NC9hcmNoL3g4Nl82 NC9rZXJuZWwvbm1pLmMKLS0tIGxpbnV4LTIuNC4yMV9sa2NkL2FyY2gveDg2XzY0L2tlcm5lbC9u bWkuYwkyMDAzLTA2LTEzIDIwOjIxOjMyLjAwMDAwMDAwMCArMDUzMAorKysgbGtjZF9saW51eF94 ODZfNjQvYXJjaC94ODZfNjQva2VybmVsL25taS5jCTIwMDQtMDctMDEgMjE6MTI6MTUuMDAwMDAw MDAwICswNTMwCkBAIC0xOCw2ICsxOCw5IEBACiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgog I2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+ CisjaWYgZGVmaW5lZChDT05GSUdfRFVNUCkgfHwgZGVmaW5lZChDT05GSUdfRFVNUF9NT0RVTEUp CisjaW5jbHVkZSA8bGludXgvZHVtcC5oPgorI2VuZGlmCiAjaW5jbHVkZSA8bGludXgvbWMxNDY4 MThydGMuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgogCkBAIC0zNTQsNiArMzU3 LDE0IEBACiAKIAlpZiAobm1pX3dhdGNoZG9nX2Rpc2FibGVkKQogCQlyZXR1cm47CisjaWYgZGVm aW5lZChDT05GSUdfRFVNUCkgfHwgZGVmaW5lZChDT05GSUdfRFVNUF9NT0RVTEUpCisgICAgICAg LyoKKyAgICAgICAgKiBJZ25vcmUgd2F0Y2hkb2cgd2hlbiBkdW1waW5nIGlzIGluIHByb2dyZXNz LgorICAgICAgICAqIFRvZG86IGNvbnNpZGVyIHVzaW5nIHRoZSB0b3VjaF9ubWlfd2F0Y2hkb2co KSBhcHByb2FjaCBpbnN0ZWFkCisgICAgICAgICovCisgICAgICAgaWYgKGR1bXBfaW5fcHJvZ3Jl c3MgJiYgY3B1ICE9IGR1bXBpbmdfY3B1KSByZXR1cm47CisjZW5kaWYKKwogCiAJc3VtID0gYXBp Y190aW1lcl9pcnFzW2NwdV07CiAKQEAgLTM4MSw2ICszOTIsMTAgQEAKIAkJCXByaW50aygiTk1J IFdhdGNoZG9nIGRldGVjdGVkIExPQ0tVUCBvbiBDUFUlZCwgZWlwICUxNmx4LCByZWdpc3RlcnM6 XG4iLCBjcHUsIHJlZ3MtPnJpcCk7CiAJCQlzaG93X3JlZ2lzdGVycyhyZWdzKTsKIAkJCXByaW50 aygiY29uc29sZSBzaHV0cyB1cCAuLi5cbiIpOworI2lmIGRlZmluZWQoQ09ORklHX0RVTVApIHx8 IGRlZmluZWQoQ09ORklHX0RVTVBfTU9EVUxFKQorICAgICAgICAgICAgICAgICAgICAgICBkdW1w KCJOTUkgV2F0Y2hkb2cgRGV0ZWN0ZWQiLCByZWdzKTsKKyNlbmRpZgorCiAJCQljb25zb2xlX3Np bGVudCgpOwogCQkJc3Bpbl91bmxvY2soJm5taV9wcmludF9sb2NrKTsKIAkJCWJ1c3Rfc3Bpbmxv Y2tzKDApOwpkaWZmIC1OYXVyIGxpbnV4LTIuNC4yMV9sa2NkL2FyY2gveDg2XzY0L2tlcm5lbC9z bXAuYyBsa2NkX2xpbnV4X3g4Nl82NC9hcmNoL3g4Nl82NC9rZXJuZWwvc21wLmMKLS0tIGxpbnV4 LTIuNC4yMV9sa2NkL2FyY2gveDg2XzY0L2tlcm5lbC9zbXAuYwkyMDAzLTA2LTEzIDIwOjIxOjMy LjAwMDAwMDAwMCArMDUzMAorKysgbGtjZF9saW51eF94ODZfNjQvYXJjaC94ODZfNjQva2VybmVs L3NtcC5jCTIwMDQtMDctMDEgMjE6MTQ6MTAuMDAwMDAwMDAwICswNTMwCkBAIC0xNiw2ICsxNiw5 IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5o PgogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CisjaWYgZGVmaW5lZChDT05GSUdfRFVNUCkg fHwgZGVmaW5lZChDT05GSUdfRFVNUF9NT0RVTEUpCisjaW5jbHVkZSA8bGludXgvZHVtcC5oPgor I2VuZGlmCiAjaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KICNpbmNsdWRlIDxsaW51eC9t YzE0NjgxOHJ0Yy5oPgogCkBAIC0xNDMsNiArMTQ2LDE2IEBACiAJICogTm8gbmVlZCB0byB0b3Vj aCB0aGUgdGFyZ2V0IGNoaXAgZmllbGQKIAkgKi8KIAljZmcgPSBfX3ByZXBhcmVfSUNSKHNob3J0 Y3V0LCB2ZWN0b3IpOworI2lmIGRlZmluZWQoQ09ORklHX0RVTVApIHx8IGRlZmluZWQoQ09ORklH X0RVTVBfTU9EVUxFKQorICAgICAgIGlmICh2ZWN0b3IgPT0gRFVNUF9WRUNUT1IpIHsKKyAgICAg ICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgKiBTZXR1cCBEVU1QIElQSSB0byBiZSBkZWxp dmVyZWQgYXMgYW4gTk1JCisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgIGNmZyA9 IChjZmcmfkFQSUNfVkVDVE9SX01BU0spfEFQSUNfRE1fTk1JOworICAgICAgIH0KKyNlbmRpZiAg LyogQ09ORklHX0RVTVAgKi8KKworCiAKIAkvKgogCSAqIFNlbmQgdGhlIElQSS4gVGhlIHdyaXRl IHRvIEFQSUNfSUNSIGZpcmVzIHRoaXMgb2ZmLgpAQCAtMzA4LDYgKzMyMSwxMSBAQAogc3RhdGlj IHZvaWQgZmx1c2hfdGxiX290aGVycyAodW5zaWduZWQgbG9uZyBjcHVtYXNrLCBzdHJ1Y3QgbW1f c3RydWN0ICptbSwKIAkJCQkJCXVuc2lnbmVkIGxvbmcgdmEpCiB7CisjaWYgZGVmaW5lZChDT05G SUdfRFVNUCkgfHwgZGVmaW5lZChDT05GSUdfRFVNUF9NT0RVTEUpCisgICAgICAgLyogc29tZSBj cHUgbWF5IG5vdCBiZSBydW5uaW5nLi4uIExXUyAqLworICAgICAgIHVuc2lnbmVkIGxvbmcgaXBp X21hc2s7CisjZW5kaWYKKwogCS8qCiAJICogQSBjb3VwbGUgb2YgKHRvIGJlIHJlbW92ZWQpIHNh bml0eSBjaGVja3M6CiAJICoKQEAgLTMxNyw4ICszMzUsMTQgQEAKIAkgKi8KIAlpZiAoIWNwdW1h c2spCiAJCUJVRygpOworI2lmIGRlZmluZWQoQ09ORklHX0RVTVApIHx8IGRlZmluZWQoQ09ORklH X0RVTVBfTU9EVUxFKQorICAgICAgIC8qIFNvbWUgY3B1cyBtYXkgYmUgc3RvcHBlZC4uLmxpa2Ug YXQgY3Jhc2ggZHVtcCB0aW1lLi4uIExXUyAqLworICAgICAgIGlmICgoaXBpX21hc2sgPSBjcHVt YXNrICYgY3B1X29ubGluZV9tYXApID09IDApCisgICAgICAgICAgICAgICByZXR1cm47CisjZWxz ZQogCWlmICgoY3B1bWFzayAmIGNwdV9vbmxpbmVfbWFwKSAhPSBjcHVtYXNrKQogCQlCVUcoKTsK KyNlbmRpZgogCWlmIChjcHVtYXNrICYgKDEgPDwgc21wX3Byb2Nlc3Nvcl9pZCgpKSkKIAkJQlVH KCk7CiAJaWYgKCFtbSkKQEAgLTMzNCwxMiArMzU4LDIwIEBACiAJCiAJZmx1c2hfbW0gPSBtbTsK IAlmbHVzaF92YSA9IHZhOworI2lmIGRlZmluZWQoQ09ORklHX0RVTVApIHx8IGRlZmluZWQoQ09O RklHX0RVTVBfTU9EVUxFKQorICAgICAgIGF0b21pY19zZXRfbWFzayhpcGlfbWFzaywgJmZsdXNo X2NwdW1hc2spOworI2Vsc2UKIAlhdG9taWNfc2V0X21hc2soY3B1bWFzaywgJmZsdXNoX2NwdW1h c2spOworI2VuZGlmCiAJLyoKIAkgKiBXZSBoYXZlIHRvIHNlbmQgdGhlIElQSSBvbmx5IHRvCiAJ ICogQ1BVcyBhZmZlY3RlZC4KIAkgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19EVU1QKSB8fCBkZWZp bmVkKENPTkZJR19EVU1QX01PRFVMRSkKKyAgICAgICBzZW5kX0lQSV9tYXNrKGlwaV9tYXNrLCBJ TlZBTElEQVRFX1RMQl9WRUNUT1IpOworI2Vsc2UKIAlzZW5kX0lQSV9tYXNrKGNwdW1hc2ssIElO VkFMSURBVEVfVExCX1ZFQ1RPUik7CisjZW5kaWYKIAogCXdoaWxlIChmbHVzaF9jcHVtYXNrKQog CQkvKiBub3RoaW5nLiBsb2NrdXAgZGV0ZWN0aW9uIGRvZXMgbm90IGJlbG9uZyBoZXJlICovOwpA QCAtNDA5LDYgKzQ0MSwxMyBAQAogCiAJZG9fZmx1c2hfdGxiX2FsbF9sb2NhbCgpOwogfQorI2lm IGRlZmluZWQoQ09ORklHX0RVTVApIHx8IGRlZmluZWQoQ09ORklHX0RVTVBfTU9EVUxFKQordm9p ZCBkdW1wX3NlbmRfaXBpKHZvaWQpCit7CisgICAgICAgc2VuZF9JUElfYWxsYnV0c2VsZihEVU1Q X1ZFQ1RPUik7Cit9CisjZW5kaWYKKwogCiAvKgogICogdGhpcyBmdW5jdGlvbiBzZW5kcyBhICdy ZXNjaGVkdWxlJyBJUEkgdG8gYW5vdGhlciBDUFUuCkBAIC00MTgsNyArNDU3LDE1IEBACiAKIHZv aWQgc21wX3NlbmRfcmVzY2hlZHVsZShpbnQgY3B1KQogeworI2lmIGRlZmluZWQoQ09ORklHX0RV TVApIHx8IGRlZmluZWQoQ09ORklHX0RVTVBfTU9EVUxFKQorICAgICAgIC8qIG9ubHkgZG8gdGhp cyBmb3Igb24tbGluZSBDUFVzICovCisgICAgICAgdW5zaWduZWQgbG9uZyBjcHVtYXNrID0gKDEg PDwgY3B1KSAmIGNwdV9vbmxpbmVfbWFwOworICAgICAgIGlmIChjcHVtYXNrKSB7CisgICAgICAg ICAgICAgICBzZW5kX0lQSV9tYXNrKDEgPDwgY3B1LCBSRVNDSEVEVUxFX1ZFQ1RPUik7CisgICAg ICAgfQorI2Vsc2UKIAlzZW5kX0lQSV9tYXNrKDEgPDwgY3B1LCBSRVNDSEVEVUxFX1ZFQ1RPUik7 CisjZW5kaWYKIH0KIAogLyoKQEAgLTQ3Nyw4ICs1MjQsMjYgQEAKIAlzZW5kX0lQSV9hbGxidXRz ZWxmKENBTExfRlVOQ1RJT05fVkVDVE9SKTsKIAogCS8qIFdhaXQgZm9yIHJlc3BvbnNlICovCisj aWYgZGVmaW5lZChDT05GSUdfRFVNUCkgfHwgZGVmaW5lZChDT05GSUdfRFVNUF9NT0RVTEUpCisg ICAgICAgaWYgKGR1bXBfaW5fcHJvZ3Jlc3MpIHsKKyAgICAgICAgICAgICAgIGludCBpID0gMSAq IDEwMDA7ICAgLyogbWlsbGlzZWNvbmRzIHRvIGRlbGF5IHdhaXRpbmcgZm9yIG90aGVyIENQVSB0 byBzdGFyCit0IElQSSBwcm9jZXNzaW5nICgxIHNlY29uZCkgKi8KKyAgICAgICAgICAgICAgIHdo aWxlIChhdG9taWNfcmVhZCgmZGF0YS5zdGFydGVkKSAhPSBjcHVzICYmIGktLSkgeworICAgICAg ICAgICAgICAgICAgICAgICBtZGVsYXkoMSk7CisgICAgICAgICAgICAgICAgICAgICAgIGJhcnJp ZXIoKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmIChpIDw9IDApIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2tfYmgoJmNhbGxfbG9jayk7CisgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAtRVRJTUVET1VUOworICAgICAgICAgICAgICAgfQorICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICB3aGlsZSAoYXRvbWljX3JlYWQoJmRhdGEuc3Rh cnRlZCkgIT0gY3B1cykKKyAgICAgICAgICAgICAgICAgICAgICAgYmFycmllcigpOworICAgICAg IH0KKyNlbHNlCiAJd2hpbGUgKGF0b21pY19yZWFkKCZkYXRhLnN0YXJ0ZWQpICE9IGNwdXMpCiAJ CWJhcnJpZXIoKTsKKyNlbmRpZgogCiAJaWYgKHdhaXQpCiAJCXdoaWxlIChhdG9taWNfcmVhZCgm ZGF0YS5maW5pc2hlZCkgIT0gY3B1cykKZGlmZiAtTmF1ciBsaW51eC0yLjQuMjFfbGtjZC9hcmNo L3g4Nl82NC9rZXJuZWwvdHJhcHMuYyBsa2NkX2xpbnV4X3g4Nl82NC9hcmNoL3g4Nl82NC9rZXJu ZWwvdHJhcHMuYwotLS0gbGludXgtMi40LjIxX2xrY2QvYXJjaC94ODZfNjQva2VybmVsL3RyYXBz LmMJMjAwMy0wNi0xMyAyMDoyMTozMi4wMDAwMDAwMDAgKzA1MzAKKysrIGxrY2RfbGludXhfeDg2 XzY0L2FyY2gveDg2XzY0L2tlcm5lbC90cmFwcy5jCTIwMDQtMDctMDEgMjE6MTc6MjYuMDAwMDAw MDAwICswNTMwCkBAIC0yMiw2ICsyMiwxMCBAQAogI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgog I2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpZiBkZWZp bmVkKENPTkZJR19EVU1QKSB8fCBkZWZpbmVkKENPTkZJR19EVU1QX01PRFVMRSkKKyNpbmNsdWRl IDxsaW51eC9kdW1wLmg+CisjZW5kaWYKKwogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNs dWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CkBAIC04Myw2 ICs4NywyNiBAQAogCiBpbnQga3N0YWNrX2RlcHRoX3RvX3ByaW50ID0gNDA7CiAKKyNpZiBkZWZp bmVkKENPTkZJR19EVU1QKSB8fCBkZWZpbmVkKENPTkZJR19EVU1QX01PRFVMRSkKKyNpZmRlZiBD T05GSUdfU01QCit2b2lkICgqZHVtcF90cmFjZV9wdHIpKHN0cnVjdCBwdF9yZWdzICopID0gTlVM TDsKKy8qCisgKiBUaGlzIGNvZGUgbWltaWNzIHNob3dfdHJhY2UoKSBldGMgaW4gYXJjaC9pMzg2 L2tlcm5lbC90cmFwcy5jLiBXZSBkb24ndAorICogdXNlIHRoZW0gZGlyZWN0bHkgYXMgdGhleSBk ZXBlbmQgb24gOEsgYWxpZ25lZCBrZXJuZWwgc3RhY2tzIHRoYXQgb3VyCisgKiBzYXZlZCBzdGFj a3MgZG9uJ3Qgc2F0aXNmeS4gSG93ZXZlciwgdGhlcmUgaXMgbW92ZSB0byByZWxheCB0aGUgcmVx dWlyZW1lbnQKKyAqIG9uIHRhc2tfc3RydWN0IHRvIGJlIDhLLWFsaWduZWQuIE9uY2UgdGhhdCBo YXBwZW5zLCB3ZSBjb3VsZCBzaW1waWZ5IHRoaXMKKyAqIGZ1bmN0aW9uLgorICovCit2b2lkIHNo b3dfdGhpc19jcHVfc3RhdGUoaW50IGNwdSwgc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnRzaykKK3sKKy8vbm90IGltcGxlbWVudGVkIHlldAorICAgICAgIHJldHVy bjsKK30KKyNlbmRpZiAvKiBDT05GSUdfU01QICovCisjZW5kaWYgLyogQ09ORklHX0RVTVAgKi8K KworCisKICNpZmRlZiBDT05GSUdfS0FMTFNZTVMKICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5o PiAKIGludCBwcmludGtfYWRkcmVzcyh1bnNpZ25lZCBsb25nIGFkZHJlc3MpCkBAIC0zNjMsNiAr Mzg3LDEwIEBACiAJc2hvd19yZWdpc3RlcnMocmVncyk7CiAJYnVzdF9zcGlubG9ja3MoMCk7CiAJ c3Bpbl91bmxvY2tfaXJxKCZkaWVfbG9jayk7CisjaWYgZGVmaW5lZChDT05GSUdfRFVNUCkgfHwg ZGVmaW5lZChDT05GSUdfRFVNUF9NT0RVTEUpCisgICAgICAgZHVtcCgoY2hhciAqKXN0ciwgcmVn cyk7CisjZW5kaWYKKwogCWRvX2V4aXQoU0lHU0VHVik7CiB9CiAKQEAgLTUzMSw2ICs1NTksMjIg QEAKIAlyZWFzb24gJj0gfjg7CiAJb3V0YihyZWFzb24sIDB4NjEpOwogfQorI2lmIGRlZmluZWQo Q09ORklHX0RVTVApIHx8IGRlZmluZWQoQ09ORklHX0RVTVBfTU9EVUxFKQorI2lmZGVmIENPTkZJ R19TTVAKK2ludCAoKmR1bXBfaXBpX2Z1bmN0aW9uX3B0cikoc3RydWN0IHB0X3JlZ3MgKikgPSBO VUxMOworc3RhdGljIGludCBkdW1wX2lwaShzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKyAgICAg ICBpZiAoIShkdW1wX2lwaV9mdW5jdGlvbl9wdHIgJiYgZHVtcF9pcGlfZnVuY3Rpb25fcHRyKHJl Z3MpKSkgeworICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgfQorICAgICAgIGFja19B UElDX2lycSgpOworICAgICAgIHJldHVybiAxOworfQorI2Vsc2UKKyNkZWZpbmUgZHVtcF9pcGko cmVncykgMAorI2VuZGlmCisjZW5kaWYKKwogCiBzdGF0aWMgdm9pZCB1bmtub3duX25taV9lcnJv cih1bnNpZ25lZCBjaGFyIHJlYXNvbiwgc3RydWN0IHB0X3JlZ3MgKiByZWdzKQogewpAQCAtNTQ0 LDYgKzU4OCwxMSBAQAogCXVuc2lnbmVkIGNoYXIgcmVhc29uID0gaW5iKDB4NjEpOwogCiAJKytu bWlfY291bnQoc2FmZV9zbXBfcHJvY2Vzc29yX2lkKCkpOworI2lmIGRlZmluZWQoQ09ORklHX0RV TVApIHx8IGRlZmluZWQoQ09ORklHX0RVTVBfTU9EVUxFKQorICAgICAgIGlmIChkdW1wX2lwaShy ZWdzKSkgeworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgIH0KKyNlbmRpZgogCQogCWlm ICghKHJlYXNvbiAmIDB4YzApKSB7CiAjaWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCmRpZmYgLU5h dXIgbGludXgtMi40LjIxX2xrY2QvYXJjaC94ODZfNjQva2VybmVsL3g4NjY0X2tzeW1zLmMgbGtj ZF9saW51eF94ODZfNjQvYXJjaC94ODZfNjQva2VybmVsL3g4NjY0X2tzeW1zLmMKLS0tIGxpbnV4 LTIuNC4yMV9sa2NkL2FyY2gveDg2XzY0L2tlcm5lbC94ODY2NF9rc3ltcy5jCTIwMDMtMDYtMTMg MjA6MjE6MzIuMDAwMDAwMDAwICswNTMwCisrKyBsa2NkX2xpbnV4X3g4Nl82NC9hcmNoL3g4Nl82 NC9rZXJuZWwveDg2NjRfa3N5bXMuYwkyMDA0LTA3LTAxIDIwOjQ1OjM2LjAwMDAwMDAwMCArMDUz MApAQCAtMjIzLDMgKzIyMywzMCBAQAogCiBleHRlcm4gdm9pZCBpbnRfcmV0X2Zyb21fc3lzX2Nh bGwodm9pZCk7CiBFWFBPUlRfU1lNQk9MKGludF9yZXRfZnJvbV9zeXNfY2FsbCk7IAorCisjaWYg ZGVmaW5lZChDT05GSUdfRFVNUCkgfHwgZGVmaW5lZChDT05GSUdfRFVNUF9NT0RVTEUpCitleHRl cm4gdm9pZCBkdW1wIChjaGFyICosIHN0cnVjdCBwdF9yZWdzICopOworRVhQT1JUKGR1bXApOyAK K2V4dGVybiB2b2lkIGdldF9jdXJyZW50X3JlZ3MoIHN0cnVjdCBwdF9yZWdzICopOworRVhQT1JU KGdldF9jdXJyZW50X3JlZ3MpOworZXh0ZXJuIGludCAoKmR1bXBfZnVuY3Rpb25fcHRyKShjaGFy ICosIHN0cnVjdCBwdF9yZWdzICopOworRVhQT1JUKGR1bXBfZnVuY3Rpb25fcHRyKTsKKyNpZmRl ZiBDT05GSUdfU01QCitleHRlcm4gaXJxX2Rlc2NfdCBpcnFfZGVzY1tdOworZXh0ZXJuIHVuc2ln bmVkIGxvbmcgaXJxX2FmZmluaXR5W107CitFWFBPUlRfU1lNQk9MKGlycV9hZmZpbml0eSk7CitF WFBPUlRfU1lNQk9MKGlycV9kZXNjKTsKK2V4dGVybiB2b2lkIGR1bXBfc2VuZF9pcGkodm9pZCk7 CitFWFBPUlRfU1lNQk9MKGR1bXBfc2VuZF9pcGkpOworZXh0ZXJuIGludCAoKmR1bXBfaXBpX2Z1 bmN0aW9uX3B0cikoc3RydWN0IHB0X3JlZ3MgKik7CitFWFBPUlRfU1lNQk9MKGR1bXBfaXBpX2Z1 bmN0aW9uX3B0cik7CitleHRlcm4gdm9pZCAoKmR1bXBfdHJhY2VfcHRyKShzdHJ1Y3QgcHRfcmVn cyAqKTsKK0VYUE9SVF9TWU1CT0woZHVtcF90cmFjZV9wdHIpOworZXh0ZXJuIHZvaWQgc2hvd190 aGlzX2NwdV9zdGF0ZShpbnQsIHN0cnVjdCBwdF9yZWdzICosIHN0cnVjdCB0YXNrX3N0cnVjdCAq KTsKK0VYUE9SVF9TWU1CT0woc2hvd190aGlzX2NwdV9zdGF0ZSk7CisjZW5kaWYKKyNpZmRlZiBD T05GSUdfSElHSE1FTQorRVhQT1JUX1NZTUJPTChrbWFwX3Byb3QpOworRVhQT1JUX1NZTUJPTChr bWFwX3B0ZSk7CisjZW5kaWYKKyNlbmRpZgpkaWZmIC1OYXVyIGxpbnV4LTIuNC4yMV9sa2NkL2Fy Y2gveDg2XzY0L21tL2luaXQuYyBsa2NkX2xpbnV4X3g4Nl82NC9hcmNoL3g4Nl82NC9tbS9pbml0 LmMKLS0tIGxpbnV4LTIuNC4yMV9sa2NkL2FyY2gveDg2XzY0L21tL2luaXQuYwkyMDAzLTA2LTEz IDIwOjIxOjMyLjAwMDAwMDAwMCArMDUzMAorKysgbGtjZF9saW51eF94ODZfNjQvYXJjaC94ODZf NjQvbW0vaW5pdC5jCTIwMDQtMDctMDEgMjA6NDY6MTEuMDAwMDAwMDAwICswNTMwCkBAIC0zMzgs NyArMzM4LDExIEBACiAJZnJlZV9hcmVhX2luaXQoem9uZXNfc2l6ZSk7CiB9CiAKKyNpZiBkZWZp bmVkKENPTkZJR19EVU1QKSB8fCBkZWZpbmVkKENPTkZJR19EVU1QX01PRFVMRSkKK2ludCBwYWdl X2lzX3JhbSAodW5zaWduZWQgbG9uZyBwYWdlbnIpCisjZWxzZQogc3RhdGljIGlubGluZSBpbnQg cGFnZV9pc19yYW0gKHVuc2lnbmVkIGxvbmcgcGFnZW5yKQorI2VuZGlmCiB7CiAJaW50IGk7CiAK ZGlmZiAtTmF1ciBsaW51eC0yLjQuMjFfbGtjZC9kcml2ZXJzL2R1bXAvZHVtcF94ODZfNjQuYyBs a2NkX2xpbnV4X3g4Nl82NC9kcml2ZXJzL2R1bXAvZHVtcF94ODZfNjQuYwotLS0gbGludXgtMi40 LjIxX2xrY2QvZHJpdmVycy9kdW1wL2R1bXBfeDg2XzY0LmMJMTk3MC0wMS0wMSAwNTozMDowMC4w MDAwMDAwMDAgKzA1MzAKKysrIGxrY2RfbGludXhfeDg2XzY0L2RyaXZlcnMvZHVtcC9kdW1wX3g4 Nl82NC5jCTIwMDQtMDctMDIgMjA6NTk6NDguMDAwMDAwMDAwICswNTMwCkBAIC0wLDAgKzEsMjk1 IEBACisvKgorICogQXJjaGl0ZWN0dXJlIHNwZWNpZmljICh4ODZfNjQpIGZ1bmN0aW9ucyBmb3Ig TGludXggY3Jhc2ggZHVtcHMuCisgKgorICogQ3JlYXRlZCBieTogTWF0dCBSb2JpbnNvbiAoeWFr a2VyQHNnaS5jb20pCisgKgorICogbW9kaWZpZWQgZm9yIHg4Nl82NCBieTogU2FuamF5IEt1bWFy IChzYW5qYXkua3VtYXJAbm9pZGEuaGNsdGVjaC5jb20pCisgKgorICogQ29weXJpZ2h0IDE5OTkg U2lsaWNvbiBHcmFwaGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIDIuMyBr ZXJuZWwgbW9kaWZpY2F0aW9ucyBieTogTWF0dCBELiBSb2JpbnNvbiAoeWFra2VyQHR1cmJvbGlu dXguY29tKQorICogQ29weXJpZ2h0IDIwMDAgVHVyYm9MaW51eCwgSW5jLiAgQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KKyAqIAorICogVGhpcyBjb2RlIGlzIHJlbGVhc2VkIHVuZGVyIHZlcnNpb24gMiBv ZiB0aGUgR05VIEdQTC4KKyAqLworCisvKgorICogVGhlIGhvb2tzIGZvciBkdW1waW5nIHRoZSBr ZXJuZWwgdmlydHVhbCBtZW1vcnkgdG8gZGlzayBhcmUgaW4gdGhpcworICogZmlsZS4gIEFueSB0 aW1lIGEgbW9kaWZpY2F0aW9uIGlzIG1hZGUgdG8gdGhlIHZpcnR1YWwgbWVtb3J5IG1lY2hhbmlz bSwKKyAqIHRoZXNlIHJvdXRpbmVzIG11c3QgYmUgY2hhbmdlZCB0byB1c2UgdGhlIG5ldyBtZWNo YW5pc21zLgorICovCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+ CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5j bHVkZSA8bGludXgvZHVtcC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8YXNt L3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGFzbS9oYXJkaXJxLmg+CisjaW5jbHVkZSA8bGludXgv aXJxLmg+CisKK3N0YXRpYyBpbnQgYWxsb2NfZGhhX3N0YWNrKHZvaWQpCit7CisJaW50IGk7CisJ dm9pZCAqcHRyOworCQorCWlmIChkdW1wX2hlYWRlcl9hc20uZGhhX3N0YWNrWzBdKQorCQlyZXR1 cm4gMDsKKworICAgICAgIAlwdHIgPSB2bWFsbG9jKFRIUkVBRF9TSVpFICogc21wX251bV9jcHVz KTsKKwlpZiAoIXB0cikgeworCQlwcmludGsoInZtYWxsb2MgZm9yIGRoYV9zdGFja3MgZmFpbGVk XG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJZm9yIChpID0gMDsgaSA8IHNtcF9udW1f Y3B1czsgaSsrKSB7CisJCWR1bXBfaGVhZGVyX2FzbS5kaGFfc3RhY2tbaV0gPSAodWludDY0X3Qp KCh1bnNpZ25lZCBsb25nKXB0ciArIChpICogVEhSRUFEX1NJWkUpKTsKKwl9CisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBpbnQgZnJlZV9kaGFfc3RhY2sodm9pZCkgCit7CisJaWYgKGR1bXBfaGVh ZGVyX2FzbS5kaGFfc3RhY2tbMF0pCisJCXZmcmVlKCh2b2lkKilkdW1wX2hlYWRlcl9hc20uZGhh X3N0YWNrWzBdKTsJCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitzYXZlX3RoaXNfY3B1 X3N0YXRlKGludCBjcHUsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnRzaykKK3sKKwlkdW1wX2hlYWRlcl9hc20uZGhhX3NtcF9yZWdzW2NwdV0gPSAqcmVnczsKKwlk dW1wX2hlYWRlcl9hc20uZGhhX3NtcF9jdXJyZW50X3Rhc2tbY3B1XSA9ICh1aW50NjRfdCkgdHNr OworCisJaWYgKGR1bXBfaGVhZGVyX2FzbS5kaGFfc3RhY2tbY3B1XSkgeworCQltZW1jcHkoKHZv aWQqKWR1bXBfaGVhZGVyX2FzbS5kaGFfc3RhY2tbY3B1XSwgdHNrLCBUSFJFQURfU0laRSk7CisJ fQorCXJldHVybjsKK30KKworI2lmZGVmIENPTkZJR19TTVAKK3N0YXRpYyBpbnQgZHVtcF9leHBl Y3RfaXBpW05SX0NQVVNdOworc3RhdGljIGF0b21pY190IHdhaXRpbmdfZm9yX2R1bXBfaXBpOwor c3RhdGljIGludCB3YWl0X2Zvcl9kdW1wX2lwaSA9IDE7IC8qIGFsd2F5cyB3YWl0IGZvciBpcGkg dG8gdG8gYmUgaGFuZGxlZCAqLworZXh0ZXJuIHZvaWQgKCpkdW1wX3RyYWNlX3B0cikoc3RydWN0 IHB0X3JlZ3MgKik7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBzYXZlZF9hZmZpbml0eVtOUl9JUlFT XTsKKworc3RhdGljIGludAorZHVtcF9pcGlfaGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykg Cit7CisJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKworCWlmICghZHVtcF9leHBlY3Rf aXBpW2NwdV0pIHsKKwkJcmV0dXJuIDA7CisJfQorCQorCXNhdmVfdGhpc19jcHVfc3RhdGUoY3B1 LCByZWdzLCBjdXJyZW50KTsKKworCWR1bXBfZXhwZWN0X2lwaVtjcHVdID0gMDsKKwlhdG9taWNf ZGVjKCZ3YWl0aW5nX2Zvcl9kdW1wX2lwaSk7CisJcmV0dXJuIDE7Cit9CisKKy8qIHNhdmUgcmVn aXN0ZXJzIG9uIG90aGVyIHByb2Nlc3NvcnMgKi8KK3ZvaWQgCitzYXZlX290aGVyX2NwdV9zdGF0 ZXModm9pZCkKK3sKKwlpbnQgaTsKKworCWlmIChzbXBfbnVtX2NwdXMgPiAxKSB7CisJCWF0b21p Y19zZXQoJndhaXRpbmdfZm9yX2R1bXBfaXBpLCBzbXBfbnVtX2NwdXMtMSk7CisJCWZvciAoaSA9 IDA7IGkgPCBOUl9DUFVTOyBpKyspCisJCQlkdW1wX2V4cGVjdF9pcGlbaV0gPSAxOworCQkKKwkJ ZHVtcF9pcGlfZnVuY3Rpb25fcHRyID0gZHVtcF9pcGlfaGFuZGxlcjsKKwkJZHVtcF9zZW5kX2lw aSgpOworCQkvKiBtYXkgYmUgd2UgZG9udCBuZWVkIHRvIHdhaXQgZm9yIE5NSSB0byBiZSBwcm9j ZXNzZWQuIAorCQkgICBqdXN0IHdyaXRlIG91dCB0aGUgaGVhZGVyIGF0IHRoZSBlbmQgb2YgZHVt cGluZywgaWYKKwkJICAgdGhpcyBJUEkgaXMgbm90IHByb2Nlc3NlZCB1bnRpbGwgdGhlbiwgdGhl cmUgcHJvYmFibHkKKwkJICAgaXMgYSBwcm9ibGVtIGFuZCB3ZSBqdXN0IGZhaWwgdG8gY2FwdHVy ZSBzdGF0ZSBvZiAKKwkJICAgb3RoZXIgY3B1cy4gKi8KKwkJaWYgKHdhaXRfZm9yX2R1bXBfaXBp KSB7CisJCQl3aGlsZShhdG9taWNfcmVhZCgmd2FpdGluZ19mb3JfZHVtcF9pcGkpKQorCQkJCWJh cnJpZXIoKTsKKwkJCWR1bXBfaXBpX2Z1bmN0aW9uX3B0ciA9IE5VTEw7CisJCX0KKwl9CisJcmV0 dXJuOworfQorCisvKiBsb2NhdGVkIGluIGFyY2gvaTM4Ni9rZXJuZWwvdHJhcHMuYyAqLworZXh0 ZXJuIHZvaWQgc2hvd190aGlzX2NwdV9zdGF0ZShpbnQgY3B1LCBzdHJ1Y3QgcHRfcmVncyAqIHJl Z3MsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsKKwordm9pZCAKK3Nob3dfY3B1X3N0YXRlKHN0 cnVjdCBwdF9yZWdzICogcmVncykKK3sKKwlpbnQgaTsKKwlfX2R1bXBfY29uZmlndXJlX2hlYWRl cihyZWdzKTsJCisJZm9yIChpID0gMDsgaSA8IHNtcF9udW1fY3B1czsgaSsrKSB7CisJCXNob3df dGhpc19jcHVfc3RhdGUoaSwgJmR1bXBfaGVhZGVyX2FzbS5kaGFfc21wX3JlZ3NbaV0sIAorCQkJ KHZvaWQqKWR1bXBfaGVhZGVyX2FzbS5kaGFfc3RhY2tbaV0pOworCX0KKwlyZXR1cm47Cit9CisK Ky8qCisgKiBOb24gZHVtcGluZyBjcHVzIHdpbGwgc3BpbiBoZXJlLiBJZiBhIGNwdSBpcyBoYW5k bGluZyBhbiBpcnEgd2hlbiBpcGkgaXMKKyAqIHJlY2VpdmVkLCB3ZSBsZXQgZ28gb2YgaXQgaGVy ZSB3aGlsZSBtYWtpbmcgc3VyZSB0aGF0IGl0IGhpdHMgc2NoZWR1bGUKKyAqIG9uIHRoZSB3YXkg dXAgYW5kIG1ha2UgaXQgc3BpbiB0aGVyZSBpbnN0ZWFkLgorICovCitzdGF0aWMgdm9pZAorX19k dW1wX3NwaW4odm9pZCAqYXJnKQoreworCWlmIChpbl9pcnEoKSkgeworCQljdXJyZW50LT5uZWVk X3Jlc2NoZWQgPSAxOworCX0gZWxzZSB7CisJCXdoaWxlIChkdW1wX2luX3Byb2dyZXNzKSA7CisJ fQorCXJldHVybjsKK30KKworLyoKKyAqIFJvdXRpbmUgdG8gc2F2ZSB0aGUgb2xkIGlycSBhZmZp bml0aWVzIGFuZCBjaGFuZ2UgYWZmaW5pdGllcyBvZiBhbGwgaXJxcyB0bworICogdGhlIGR1bXBp bmcgY3B1LgorICovCitzdGF0aWMgdm9pZAorX19kdW1wX3NldF9pcnFfYWZmaW5pdHkodm9pZCkK K3sKKwlpbnQgaTsKKwlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJbWVtY3B5KHNh dmVkX2FmZmluaXR5LCBpcnFfYWZmaW5pdHksIE5SX0lSUVMgKiBzaXplb2YodW5zaWduZWQgbG9u ZykpOworCWZvciAoaSA9IDA7IGkgPCBOUl9JUlFTOyBpKyspIHsKKwkJaWYgKGlycV9kZXNjW2ld LmhhbmRsZXIgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCQlpcnFfYWZmaW5pdHlbaV0gPSAxVUwg PDwgY3B1OworCQlpZiAoaXJxX2Rlc2NbaV0uaGFuZGxlci0+c2V0X2FmZmluaXR5ICE9IE5VTEwp CisJCQlpcnFfZGVzY1tpXS5oYW5kbGVyLT5zZXRfYWZmaW5pdHkoaSwgaXJxX2FmZmluaXR5W2ld KTsKKwl9Cit9CisKKy8qCisgKiBSZXN0b3JlIG9sZCBpcnEgYWZmaW5pdGllcy4KKyAqLworc3Rh dGljIHZvaWQKK19fZHVtcF9yZXNldF9pcnFfYWZmaW5pdHkodm9pZCkKK3sKKwlpbnQgaTsKKwor CW1lbWNweShpcnFfYWZmaW5pdHksIHNhdmVkX2FmZmluaXR5LCBOUl9JUlFTICogc2l6ZW9mKHVu c2lnbmVkIGxvbmcpKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlJfSVJRUzsgaSsrKSB7CisJCWlmIChp cnFfZGVzY1tpXS5oYW5kbGVyID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJaWYgKGlycV9kZXNj W2ldLmhhbmRsZXItPnNldF9hZmZpbml0eSAhPSBOVUxMKQorCQkJaXJxX2Rlc2NbaV0uaGFuZGxl ci0+c2V0X2FmZmluaXR5KGksIHNhdmVkX2FmZmluaXR5W2ldKTsKKwl9Cit9CisKKyNlbHNlIC8q ICFDT05GSUdfU01QICovCisjZGVmaW5lIHNhdmVfb3RoZXJfY3B1X3N0YXRlcygpCisjZW5kaWYg LyogIUNPTkZJR19TTVAgKi8KKworLyoKKyAqIE5hbWU6IF9fZHVtcF9zaWxlbmNlX3N5c3RlbSgp CisgKiBGdW5jOiBEbyBhbiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgc2lsZW5jaW5nIG9mIHRoZSBz eXN0ZW0uCisgKiAgICAgLSBDaGFuZ2UgaXJxIGFmZmluaXRpZXMKKyAqICAgICAtIFdhaXQgZm9y IG90aGVyIGNwdXMgdG8gY29tZSBvdXQgb2YgaXJxIGhhbmRsaW5nCisgKiAgICAgLSBTZW5kIENB TExfRlVOQ1RJT05fVkVDVE9SIGlwaSB0byBvdGhlciBjcHVzIHRvIHB1dCB0aGVtIHRvIHNwaW4K KyAqLwordW5zaWduZWQgaW50CitfX2R1bXBfc2lsZW5jZV9zeXN0ZW0odW5zaWduZWQgaW50IHN0 YWdlKQoreworI2lmZGVmIENPTkZJR19TTVAKKwlpZiAoc3RhZ2UpIHsJLyogRG8gdGhpcyBhZnRl ciBpbnRlcnJ1cHRzIGFyZSBlbmFibGVkICovCisJCS8qIHJlYWQgdGhlIGNvbW1lbnRzIGFib3Zl IC4uLiAqLworCQlfX2R1bXBfc2V0X2lycV9hZmZpbml0eSgpOworCQlzeW5jaHJvbml6ZV9pcnEo KTsKKwkJc21wX2NhbGxfZnVuY3Rpb24oX19kdW1wX3NwaW4sIE5VTEwsIDAsIDApOworCX0KKyNl bmRpZgorCisJLyogcmV0dXJuICovCisJcmV0dXJuICgwKTsKK30KKworLyoKKyAqIE5hbWU6IF9f ZHVtcF9yZXN1bWVfc3lzdGVtKCkKKyAqIEZ1bmM6IFJlc3VtZSB0aGUgc3lzdGVtIHN0YXRlIGlu IGFuIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyB3YXkuCisgKi8KK3Vuc2lnbmVkIGludAorX19kdW1w X3Jlc3VtZV9zeXN0ZW0odW5zaWduZWQgaW50IHN0YWdlKQoreworI2lmZGVmIENPTkZJR19TTVAK KwkvKiBwdXQgdGhlIGlycSBhZmZpbml0eSB0YWJsZXMgYmFjayAqLworCV9fZHVtcF9yZXNldF9p cnFfYWZmaW5pdHkoKTsKKyNlbmRpZgorCisJLyogcmV0dXJuICovCisJcmV0dXJuICgwKTsKK30K KworLyoKKyAqIE5hbWU6IF9fZHVtcF9jb25maWd1cmVfaGVhZGVyKCkKKyAqIEZ1bmM6IENvbmZp Z3VyZSB0aGUgZHVtcCBoZWFkZXIgd2l0aCBhbGwgcHJvcGVyIHZhbHVlcy4KKyAqLworaW50Citf X2R1bXBfY29uZmlndXJlX2hlYWRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlpbnQgY3B1 ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJZHVtcF9oZWFkZXJfYXNtLmRoYV9zbXBfbnVtX2Nw dXMgPSBzbXBfbnVtX2NwdXM7CisJZHVtcF9oZWFkZXJfYXNtLmRoYV9kdW1waW5nX2NwdSA9IGNw dTsKKworCXNhdmVfdGhpc19jcHVfc3RhdGUoY3B1LCByZWdzLCBjdXJyZW50KTsKKworCXNhdmVf b3RoZXJfY3B1X3N0YXRlcygpOworCisJcmV0dXJuICgxKTsKK30KKworLyoKKyAqIE5hbWU6IF9f ZHVtcF9pbml0KCkKKyAqIEZ1bmM6IEluaXRpYWxpemUgdGhlIGR1bXBpbmcgcm91dGluZSBwcm9j ZXNzLiAgVGhpcyBpcyBpbiBjYXNlCisgKiAgICAgICBpdCdzIG5lY2Vzc2FyeSBpbiB0aGUgZnV0 dXJlLgorICovCit2b2lkCitfX2R1bXBfaW5pdCh1aW50NjRfdCBsb2NhbF9tZW1vcnlfc3RhcnQp Cit7CisJLyogcmV0dXJuICovCisJcmV0dXJuOworfQorCisvKgorICogTmFtZTogX19kdW1wX29w ZW4oKQorICogRnVuYzogT3BlbiB0aGUgZHVtcCBkZXZpY2UgKGFyY2hpdGVjdHVyZSBzcGVjaWZp YykuICBUaGlzIGlzIGluCisgKiAgICAgICBjYXNlIGl0J3MgbmVjZXNzYXJ5IGluIHRoZSBmdXR1 cmUuCisgKi8KK3ZvaWQKK19fZHVtcF9vcGVuKHZvaWQpCit7CisJYWxsb2NfZGhhX3N0YWNrKCk7 CisjaWZkZWYgQ09ORklHX1NNUAkKKwlkdW1wX3RyYWNlX3B0ciA9IHNob3dfY3B1X3N0YXRlOwor I2VuZGlmCisJLyogcmV0dXJuICovCisJcmV0dXJuOworfQorCisvKgorICogTmFtZTogX19kdW1w X2NsZWFudXAoKQorICogRnVuYzogRnJlZSBhbnkgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRhdGEg c3RydWN0dXJlcy4gVGhpcyBpcyBjYWxsZWQKKyAqICAgICAgIHdoZW4gdGhlIGR1bXAgbW9kdWxl IGlzIGJlaW5nIHJlbW92ZWQuCisgKi8KK3ZvaWQKK19fZHVtcF9jbGVhbnVwKHZvaWQpCit7CisJ ZnJlZV9kaGFfc3RhY2soKTsKKyNpZmRlZiBDT05GSUdfU01QCisJZHVtcF90cmFjZV9wdHIgPSBO VUxMOworI2VuZGlmCisJLyogcmV0dXJuICovCisJcmV0dXJuOworfQorCmRpZmYgLU5hdXIgbGlu dXgtMi40LjIxX2xrY2QvZHJpdmVycy9kdW1wL01ha2VmaWxlIGxrY2RfbGludXhfeDg2XzY0L2Ry aXZlcnMvZHVtcC9NYWtlZmlsZQotLS0gbGludXgtMi40LjIxX2xrY2QvZHJpdmVycy9kdW1wL01h a2VmaWxlCTIwMDQtMDYtMDQgMTA6NTQ6NDQuMDAwMDAwMDAwICswNTMwCisrKyBsa2NkX2xpbnV4 X3g4Nl82NC9kcml2ZXJzL2R1bXAvTWFrZWZpbGUJMjAwNC0wNy0wMSAyMDo0OTowMi4wMDAwMDAw MDAgKzA1MzAKQEAgLTIyLDYgKzIyLDEwIEBACiAJZHVtcC1vYmpzCQkrPSBkdW1wX2kzODYubwog ZW5kaWYKIAoraWZlcSAoJChBUkNIKSx4ODZfNjQpCisJZHVtcC1vYmpzCQkrPSBkdW1wX3g4Nl82 NC5vCitlbmRpZgorCiBpZmVxICgkKEFSQ0gpLGFscGhhKQogCWR1bXAtb2JqcwkJKz0gZHVtcF9h bHBoYS5vCiBlbmRpZgpkaWZmIC1OYXVyIGxpbnV4LTIuNC4yMV9sa2NkL2luY2x1ZGUvYXNtLXg4 Nl82NC9kdW1wLmggbGtjZF9saW51eF94ODZfNjQvaW5jbHVkZS9hc20teDg2XzY0L2R1bXAuaAot LS0gbGludXgtMi40LjIxX2xrY2QvaW5jbHVkZS9hc20teDg2XzY0L2R1bXAuaAkxOTcwLTAxLTAx IDA1OjMwOjAwLjAwMDAwMDAwMCArMDUzMAorKysgbGtjZF9saW51eF94ODZfNjQvaW5jbHVkZS9h c20teDg2XzY0L2R1bXAuaAkyMDA0LTA3LTAyIDIxOjAxOjI4LjAwMDAwMDAwMCArMDUzMApAQCAt MCwwICsxLDk4IEBACisvKgorICogS2VybmVsIGhlYWRlciBmaWxlIGZvciBMaW51eCBjcmFzaCBk dW1wcy4KKyAqCisgKiBDcmVhdGVkIGJ5OiBNYXR0IFJvYmluc29uICh5YWtrZXJAc2dpLmNvbSkK KyAqIAorICogbW9kaWZpZWQgZm9yIHg4Nl82NCBieTogU2FuamF5IEt1bWFyIChzYW5qYXkua3Vt YXJAbm9pZGEuaGNsdGVjaC5jb20pCisgKgorICogQ29weXJpZ2h0IDE5OTkgU2lsaWNvbiBHcmFw aGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgY29kZSBpcyByZWxl YXNlZCB1bmRlciB2ZXJzaW9uIDIgb2YgdGhlIEdOVSBHUEwuCisgKi8KKworLyogVGhpcyBoZWFk ZXIgZmlsZSBob2xkcyB0aGUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGNyYXNoIGR1bXAgaGVhZGVy ICovCisjaWZuZGVmIF9BU01fRFVNUF9ICisjZGVmaW5lIF9BU01fRFVNUF9ICisKKy8qIG5lY2Vz c2FyeSBoZWFkZXIgZmlsZXMgKi8KKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+ICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBmb3IgcHRfcmVncyAgICAgICAgICAgICAqLworI2luY2x1ZGUgPGxp bnV4L3RocmVhZHMuaD4KKworLyogZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgRFVNUF9BU01fTUFH SUNfTlVNQkVSICAgICAweGRlYWRkZWFkVUxMICAvKiBtYWdpYyBudW1iZXIgICAgICAgICAgICAq LworI2RlZmluZSBEVU1QX0FTTV9WRVJTSU9OX05VTUJFUiAgIDB4MyAgICAgICAgICAgIC8qIHZl cnNpb24gbnVtYmVyICAgICAgICAgICovCisKKy8qIG1heCBudW1iZXIgb2YgY3B1cyAqLworI2Rl ZmluZSBEVU1QX01BWF9OVU1fQ1BVUyAzMgorCisvKgorICogU3RydWN0dXJlOiBkdW1wX2hlYWRl cl9hc21fdAorICogIEZ1bmN0aW9uOiBUaGlzIGlzIHRoZSBoZWFkZXIgZm9yIGFyY2hpdGVjdHVy ZS1zcGVjaWZpYyBzdHVmZi4gIEl0CisgKiAgICAgICAgICAgIGZvbGxvd3MgcmlnaHQgYWZ0ZXIg dGhlIGR1bXAgaGVhZGVyLgorICovCit0eXBlZGVmIHN0cnVjdCBfZHVtcF9oZWFkZXJfYXNtX3Mg eworCisgICAgICAgIC8qIHRoZSBkdW1wIG1hZ2ljIG51bWJlciAtLSB1bmlxdWUgdG8gdmVyaWZ5 IGR1bXAgaXMgdmFsaWQgKi8KKyAgICAgICAgdWludDY0X3QgICAgICAgICAgICAgZGhhX21hZ2lj X251bWJlcjsKKworICAgICAgICAvKiB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBkdW1wICov CisgICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgIGRoYV92ZXJzaW9uOworCisgICAgICAgIC8q IHRoZSBzaXplIG9mIHRoaXMgaGVhZGVyIChpbiBjYXNlIHdlIGNhbid0IHJlYWQgaXQpICovCisg ICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgIGRoYV9oZWFkZXJfc2l6ZTsKKworCS8qIHRoZSBl c3AgZm9yIGkzODYgc3lzdGVtcyAqLworCXVpbnQzMl90ICAgICAgICAgICAgIGRoYV9lc3A7CisK KwkvKiB0aGUgZWlwIGZvciBpMzg2IHN5c3RlbXMgKi8KKwl1aW50MzJfdCAgICAgICAgICAgICBk aGFfZWlwOworCisJLyogdGhlIGR1bXAgcmVnaXN0ZXJzICovCisJc3RydWN0IHB0X3JlZ3MgICAg ICAgZGhhX3JlZ3M7CisKKwkvKiBzbXAgc3BlY2lmaWMgKi8KKwl1aW50MzJfdAkgICAgIGRoYV9z bXBfbnVtX2NwdXM7CisJdWludDMyX3QJICAgICBkaGFfZHVtcGluZ19jcHU7CQorCXN0cnVjdCBw dF9yZWdzCSAgICAgZGhhX3NtcF9yZWdzW0RVTVBfTUFYX05VTV9DUFVTXTsKKwl1aW50NjRfdAkg ICAgIGRoYV9zbXBfY3VycmVudF90YXNrW0RVTVBfTUFYX05VTV9DUFVTXTsKKwl1aW50NjRfdAkg ICAgIGRoYV9zdGFja1tEVU1QX01BWF9OVU1fQ1BVU107Cit9IF9fYXR0cmlidXRlX18oKHBhY2tl ZCkpIGR1bXBfaGVhZGVyX2FzbV90OworCisjaWZkZWYgX19LRVJORUxfXworc3RhdGljIGlubGlu ZSB2b2lkIGdldF9jdXJyZW50X3JlZ3Moc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJYXNtKCJt b3ZxICUlcjE1LCAlMCI6ICI9ciIgKHJlZ3MtPnIxNSkpOworCWFzbSgibW92cSAlJXIxNCwgJTAi OiAiPXIiIChyZWdzLT5yMTQpKTsKKwlhc20oIm1vdnEgJSVyMTMsICUwIjogIj1yIiAocmVncy0+ cjEzKSk7CisJYXNtKCJtb3ZxICUlcjEyLCAlMCI6ICI9ciIgKHJlZ3MtPnIxMikpOworCWFzbSgi bW92cSAlJXJicCwgJTAiOiAiPXIiIChyZWdzLT5yYnApKTsKKwlhc20oIm1vdnEgJSVyYngsICUw IjogIj1yIiAocmVncy0+cmJ4KSk7CisJYXNtKCJtb3ZxICUlcjExLCAlMCI6ICI9ciIgKHJlZ3Mt PnIxMSkpOworCWFzbSgibW92cSAlJXIxMCwgJTAiOiAiPXIiIChyZWdzLT5yMTApKTsKKwlhc20o Im1vdnEgJSVyOSwgJTAiOiAiPXIiIChyZWdzLT5yOSkpOworCWFzbSgibW92cSAlJXI4LCAlMCI6 ICI9ciIgKHJlZ3MtPnI4KSk7CisJYXNtKCJtb3ZxICUlcmF4LCAlMCI6ICI9ciIgKHJlZ3MtPnJh eCkpOworCWFzbSgibW92cSAlJXJjeCwgJTAiOiAiPXIiIChyZWdzLT5yY3gpKTsKKwlhc20oIm1v dnEgJSVyZHgsICUwIjogIj1yIiAocmVncy0+cmR4KSk7CisJYXNtKCJtb3ZxICUlcnNpLCAlMCI6 ICI9ciIgKHJlZ3MtPnJzaSkpOworCWFzbSgibW92cSAlJXJkaSwgJTAiOiAiPXIiIChyZWdzLT5y ZGkpKTsKKwlhc20oIm1vdmwgJSVjcywgJTAiOiAiPW0iIChyZWdzLT5jcykpOworCWFzbSgibW92 cSAlJXJzcCwgJTAiOiAiPXIiIChyZWdzLT5yc3ApKTsKKwlhc20oIm1vdmwgJSVzcywgJTAiOiAi PW0iIChyZWdzLT5zcykpOworCWFzbSgicHVzaGY7IHBvcCAlMCIgOiI9bSIocmVncy0+ZWZsYWdz KSk7CisJcmVncy0+cmlwID0gKHVuc2lnbmVkIGxvbmcpY3VycmVudF90ZXh0X2FkZHIoKTsKK30K KworZXh0ZXJuIHZvbGF0aWxlIGludCBkdW1wX2luX3Byb2dyZXNzOworZXh0ZXJuIHVuc2lnbmVk IGxvbmcgaXJxX2FmZmluaXR5W107CitleHRlcm4gZHVtcF9oZWFkZXJfYXNtX3QgZHVtcF9oZWFk ZXJfYXNtOworCisjaWZkZWYgQ09ORklHX1NNUAorZXh0ZXJuIGludCAoKmR1bXBfaXBpX2Z1bmN0 aW9uX3B0cikoc3RydWN0IHB0X3JlZ3MgKik7CitleHRlcm4gdm9pZCBkdW1wX3NlbmRfaXBpKHZv aWQpOworI2Vsc2UKKyNkZWZpbmUgZHVtcF9zZW5kX2lwaSgpCisjZW5kaWYKKyNlbmRpZiAvKiBf X0tFUk5FTF9fICovCisKKyNlbmRpZiAvKiBfQVNNX0RVTVBfSCAqLwpkaWZmIC1OYXVyIGxpbnV4 LTIuNC4yMV9sa2NkL2luY2x1ZGUvYXNtLXg4Nl82NC9od19pcnEuaCBsa2NkX2xpbnV4X3g4Nl82 NC9pbmNsdWRlL2FzbS14ODZfNjQvaHdfaXJxLmgKLS0tIGxpbnV4LTIuNC4yMV9sa2NkL2luY2x1 ZGUvYXNtLXg4Nl82NC9od19pcnEuaAkyMDAzLTA2LTEzIDIwOjIxOjM4LjAwMDAwMDAwMCArMDUz MAorKysgbGtjZF9saW51eF94ODZfNjQvaW5jbHVkZS9hc20teDg2XzY0L2h3X2lycS5oCTIwMDQt MDctMDEgMjA6NTA6NDUuMDAwMDAwMDAwICswNTMwCkBAIC01Miw2ICs1Miw5IEBACiAjZGVmaW5l IFJFU0NIRURVTEVfVkVDVE9SCTB4ZmMKIC8qIDB4ZmEgZnJlZSAqLwogI2RlZmluZSBDQUxMX0ZV TkNUSU9OX1ZFQ1RPUgkweGZiCisjaWYgZGVmaW5lZChDT05GSUdfRFVNUCkgfHwgZGVmaW5lZChD T05GSUdfRFVNUF9NT0RVTEUpCisjZGVmaW5lIERVTVBfVkVDVE9SICAgICAweGZhCisjZW5kaWYK IAogLyoKICAqIExvY2FsIEFQSUMgdGltZXIgSVJRIHZlY3RvciBpcyBvbiBhIGRpZmZlcmVudCBw cmlvcml0eSBsZXZlbCwKZGlmZiAtTmF1ciBsaW51eC0yLjQuMjFfbGtjZC9NYWtlZmlsZSBsa2Nk X2xpbnV4X3g4Nl82NC9NYWtlZmlsZQotLS0gbGludXgtMi40LjIxX2xrY2QvTWFrZWZpbGUJMjAw NC0wNi0wNCAxMDo1NDo0NS4wMDAwMDAwMDAgKzA1MzAKKysrIGxrY2RfbGludXhfeDg2XzY0L01h a2VmaWxlCTIwMDQtMDctMDEgMjE6MzI6MDYuMDAwMDAwMDAwICswNTMwCkBAIC0xOTAsNiArMTkw LDcgQEAKIERSSVZFUlMtJChDT05GSUdfQkxVRVopICs9IGRyaXZlcnMvYmx1ZXRvb3RoL2JsdWV0 b290aC5vCiBEUklWRVJTLSQoQ09ORklHX0hPVFBMVUdfUENJKSArPSBkcml2ZXJzL2hvdHBsdWcv dm1saW51eC1vYmoubwogRFJJVkVSUy0kKENPTkZJR19JU0ROX0JPT0wpICs9IGRyaXZlcnMvaXNk bi92bWxpbnV4LW9iai5vCitEUklWRVJTLSQoQ09ORklHX0RVTVApICs9IGRyaXZlcnMvZHVtcC9k dW1wLm8KIAogRFJJVkVSUyA6PSAkKERSSVZFUlMteSkKIAo= ------_=_NextPart_001_01C463D5.DCAC6B0C-- ------------------------------------------------------- This SF.Net email sponsored by Black Hat Briefings & Training. Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com