From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Ibbzm-0000wQ-0D for qemu-devel@nongnu.org; Sat, 29 Sep 2007 09:04:34 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Ibbzl-0000vJ-7e for qemu-devel@nongnu.org; Sat, 29 Sep 2007 09:04:33 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ibbzk-0000v0-V4 for qemu-devel@nongnu.org; Sat, 29 Sep 2007 09:04:32 -0400 Received: from nf-out-0910.google.com ([64.233.182.186]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Ibbzj-0006la-Ug for qemu-devel@nongnu.org; Sat, 29 Sep 2007 09:04:32 -0400 Received: by nf-out-0910.google.com with SMTP id 30so2511057nfu for ; Sat, 29 Sep 2007 06:04:30 -0700 (PDT) Message-ID: Date: Sat, 29 Sep 2007 16:04:29 +0300 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_5241_1476623.1191071069672" Subject: [Qemu-devel] Updated >2G memory patch Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel , izike@qumranet.com ------=_Part_5241_1476623.1191071069672 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline I updated the >2G memory patch a bit. It seems that Linux and the BSDs do not support having more than 4G of memory on Sparc32. There may have been real machines with up to 5G of memory and even 16G on Crays, but probably Linux hasn't been ported to those systems. Therefore I don't have much interest to continue to this direction. Is the patch OK for other targets? I'd like to commit this soon. ------=_Part_5241_1476623.1191071069672 Content-Type: text/x-diff; name="qemu_ram_patch.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff" X-Attachment-Id: f_f764c6jj SW5kZXg6IHFlbXUvY3B1LWFsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9jcHUtYWxsLmgJ MjAwNy0wOS0yOSAxMjoyOTo0Ny4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvY3B1LWFsbC5oCTIw MDctMDktMjkgMTI6MzA6MTIuMDAwMDAwMDAwICswMDAwCkBAIC03NzEsNyArNzcxLDcgQEAKIAog LyogbWVtb3J5IEFQSSAqLwogCi1leHRlcm4gaW50IHBoeXNfcmFtX3NpemU7CitleHRlcm4gdW5z aWduZWQgbG9uZyBwaHlzX3JhbV9zaXplOwogZXh0ZXJuIGludCBwaHlzX3JhbV9mZDsKIGV4dGVy biB1aW50OF90ICpwaHlzX3JhbV9iYXNlOwogZXh0ZXJuIHVpbnQ4X3QgKnBoeXNfcmFtX2RpcnR5 OwpAQCAtNzk3LDggKzc5Nyw4IEBACiB2b2lkIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnko dGFyZ2V0X3BoeXNfYWRkcl90IHN0YXJ0X2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgcGh5c19vZmZzZXQpOwotdWludDMyX3QgY3B1X2dldF9waHlz aWNhbF9wYWdlX2Rlc2ModGFyZ2V0X3BoeXNfYWRkcl90IGFkZHIpOwotcmFtX2FkZHJfdCBxZW11 X3JhbV9hbGxvYyh1bnNpZ25lZCBpbnQgc2l6ZSk7Cit1bnNpZ25lZCBsb25nIGNwdV9nZXRfcGh5 c2ljYWxfcGFnZV9kZXNjKHRhcmdldF9waHlzX2FkZHJfdCBhZGRyKTsKK3JhbV9hZGRyX3QgcWVt dV9yYW1fYWxsb2ModW5zaWduZWQgbG9uZyBzaXplKTsKIHZvaWQgcWVtdV9yYW1fZnJlZShyYW1f YWRkcl90IGFkZHIpOwogaW50IGNwdV9yZWdpc3Rlcl9pb19tZW1vcnkoaW50IGlvX2luZGV4LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVUmVhZE1lbW9yeUZ1bmMgKiptZW1fcmVhZCwK SW5kZXg6IHFlbXUvZXhlYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9leGVjLmMJMjAwNy0w OS0yOSAxMjozMDowMy4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvZXhlYy5jCTIwMDctMDktMjkg MTI6MzA6MTIuMDAwMDAwMDAwICswMDAwCkBAIC03Miw5ICs3MiwxMSBAQAogI2RlZmluZSBUQVJH RVRfVklSVF9BRERSX1NQQUNFX0JJVFMgNDIKICNlbGlmIGRlZmluZWQoVEFSR0VUX1BQQzY0KQog I2RlZmluZSBUQVJHRVRfUEhZU19BRERSX1NQQUNFX0JJVFMgNDIKLSNlbHNlCisjZWxpZiBVU0Vf S1FFTVUKIC8qIE5vdGU6IGZvciBjb21wYXRpYmlsaXR5IHdpdGgga3FlbXUsIHdlIHVzZSAzMiBi aXRzIGZvciB4ODZfNjQgKi8KICNkZWZpbmUgVEFSR0VUX1BIWVNfQUREUl9TUEFDRV9CSVRTIDMy CisjZWxzZQorI2RlZmluZSBUQVJHRVRfUEhZU19BRERSX1NQQUNFX0JJVFMgNDIKICNlbmRpZgog CiBUcmFuc2xhdGlvbkJsb2NrIHRic1tDT0RFX0dFTl9NQVhfQkxPQ0tTXTsKQEAgLTg2LDcgKzg4 LDcgQEAKIHVpbnQ4X3QgY29kZV9nZW5fYnVmZmVyW0NPREVfR0VOX0JVRkZFUl9TSVpFXSBfX2F0 dHJpYnV0ZV9fKChhbGlnbmVkICgzMikpKTsKIHVpbnQ4X3QgKmNvZGVfZ2VuX3B0cjsKIAotaW50 IHBoeXNfcmFtX3NpemU7Cit1bnNpZ25lZCBsb25nIHBoeXNfcmFtX3NpemU7CiBpbnQgcGh5c19y YW1fZmQ7CiB1aW50OF90ICpwaHlzX3JhbV9iYXNlOwogdWludDhfdCAqcGh5c19yYW1fZGlydHk7 CkBAIC0xMTEsNyArMTEzLDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgUGh5c1BhZ2VEZXNjIHsKICAg ICAvKiBvZmZzZXQgaW4gaG9zdCBtZW1vcnkgb2YgdGhlIHBhZ2UgKyBpb19pbmRleCBpbiB0aGUg bG93IDEyIGJpdHMgKi8KLSAgICB1aW50MzJfdCBwaHlzX29mZnNldDsKKyAgICB1bnNpZ25lZCBs b25nIHBoeXNfb2Zmc2V0OwogfSBQaHlzUGFnZURlc2M7CiAKICNkZWZpbmUgTDJfQklUUyAxMApA QCAtMTIyLDcgKzEyNCw3IEBACiAgKi8KICNkZWZpbmUgTDFfQklUUyAoVEFSR0VUX1ZJUlRfQURE Ul9TUEFDRV9CSVRTIC0gTDJfQklUUyAtIFRBUkdFVF9QQUdFX0JJVFMpCiAjZWxzZQotI2RlZmlu ZSBMMV9CSVRTICgzMiAtIEwyX0JJVFMgLSBUQVJHRVRfUEFHRV9CSVRTKQorI2RlZmluZSBMMV9C SVRTICg0MiAtIEwyX0JJVFMgLSBUQVJHRVRfUEFHRV9CSVRTKQogI2VuZGlmCiAKICNkZWZpbmUg TDFfU0laRSAoMSA8PCBMMV9CSVRTKQpAQCAtMjExLDcgKzIxMyw3IEBACiAgICAgbWVtc2V0KGwx X3BoeXNfbWFwLCAwLCBMMV9TSVpFICogc2l6ZW9mKHZvaWQgKikpOwogfQogCi1zdGF0aWMgaW5s aW5lIFBhZ2VEZXNjICpwYWdlX2ZpbmRfYWxsb2ModW5zaWduZWQgaW50IGluZGV4KQorc3RhdGlj IGlubGluZSBQYWdlRGVzYyAqcGFnZV9maW5kX2FsbG9jKHVuc2lnbmVkIGxvbmcgaW5kZXgpCiB7 CiAgICAgUGFnZURlc2MgKipscCwgKnA7CiAKQEAgLTE5MzgsNyArMTk0MCw3IEBACiAKIHN0YXRp YyBpbnQgc3VicGFnZV9yZWdpc3RlciAoc3VicGFnZV90ICptbWlvLCB1aW50MzJfdCBzdGFydCwg dWludDMyX3QgZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWVtb3J5KTsK LXN0YXRpYyB2b2lkICpzdWJwYWdlX2luaXQgKHRhcmdldF9waHlzX2FkZHJfdCBiYXNlLCB1aW50 MzJfdCAqcGh5cywKK3N0YXRpYyB2b2lkICpzdWJwYWdlX2luaXQgKHRhcmdldF9waHlzX2FkZHJf dCBiYXNlLCB1bnNpZ25lZCBsb25nICpwaHlzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IG9yaWdfbWVtb3J5KTsKICNkZWZpbmUgQ0hFQ0tfU1VCUEFHRShhZGRyLCBzdGFydF9hZGRy LCBzdGFydF9hZGRyMiwgZW5kX2FkZHIsIGVuZF9hZGRyMiwgXAogICAgICAgICAgICAgICAgICAg ICAgIG5lZWRfc3VicGFnZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApA QCAtMjAzMSw3ICsyMDMzLDcgQEAKIH0KIAogLyogWFhYOiB0ZW1wb3JhcnkgdW50aWwgbmV3IG1l bW9yeSBtYXBwaW5nIEFQSSAqLwotdWludDMyX3QgY3B1X2dldF9waHlzaWNhbF9wYWdlX2Rlc2Mo dGFyZ2V0X3BoeXNfYWRkcl90IGFkZHIpCit1bnNpZ25lZCBsb25nIGNwdV9nZXRfcGh5c2ljYWxf cGFnZV9kZXNjKHRhcmdldF9waHlzX2FkZHJfdCBhZGRyKQogewogICAgIFBoeXNQYWdlRGVzYyAq cDsKIApAQCAtMjA0MiwxMSArMjA0NCwxMSBAQAogfQogCiAvKiBYWFg6IGJldHRlciB0aGFuIG5v dGhpbmcgKi8KLXJhbV9hZGRyX3QgcWVtdV9yYW1fYWxsb2ModW5zaWduZWQgaW50IHNpemUpCity YW1fYWRkcl90IHFlbXVfcmFtX2FsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKICAgICByYW1f YWRkcl90IGFkZHI7CiAgICAgaWYgKChwaHlzX3JhbV9hbGxvY19vZmZzZXQgKyBzaXplKSA+PSBw aHlzX3JhbV9zaXplKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiTm90IGVub3VnaCBtZW1v cnkgKHJlcXVlc3RlZF9zaXplID0gJXUsIG1heCBtZW1vcnkgPSAlZClcbiIsCisgICAgICAgIGZw cmludGYoc3RkZXJyLCAiTm90IGVub3VnaCBtZW1vcnkgKHJlcXVlc3RlZF9zaXplID0gJWx1LCBt YXggbWVtb3J5ID0gJWx1KVxuIiwKICAgICAgICAgICAgICAgICBzaXplLCBwaHlzX3JhbV9zaXpl KTsKICAgICAgICAgYWJvcnQoKTsKICAgICB9CkBAIC0yMzgyLDcgKzIzODQsNyBAQAogICAgIHJl dHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCAqc3VicGFnZV9pbml0ICh0YXJnZXRfcGh5c19hZGRy X3QgYmFzZSwgdWludDMyX3QgKnBoeXMsCitzdGF0aWMgdm9pZCAqc3VicGFnZV9pbml0ICh0YXJn ZXRfcGh5c19hZGRyX3QgYmFzZSwgdW5zaWduZWQgbG9uZyAqcGh5cywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBvcmlnX21lbW9yeSkKIHsKICAgICBzdWJwYWdlX3QgKm1taW87Cklu ZGV4OiBxZW11L3ZsLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3ZsLmMJMjAwNy0wOS0yOSAx MjoyOTo0Ny4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdmwuYwkyMDA3LTA5LTI5IDEyOjMwOjEy LjAwMDAwMDAwMCArMDAwMApAQCAtMTI2LDcgKzEyNiwxMSBAQAogLy8jZGVmaW5lIERFQlVHX1VO VVNFRF9JT1BPUlQKIC8vI2RlZmluZSBERUJVR19JT1BPUlQKIAorI2lmIEhPU1RfTE9OR19CSVRT IDwgNjQKICNkZWZpbmUgUEhZU19SQU1fTUFYX1NJWkUgKDIwNDcgKiAxMDI0ICogMTAyNCkKKyNl bHNlCisjZGVmaW5lIFBIWVNfUkFNX01BWF9TSVpFICgyMDQ3ICogMTAyNCAqIDEwMjQgKiAxMDI0 VUxMKQorI2VuZGlmCiAKICNpZmRlZiBUQVJHRVRfUFBDCiAjZGVmaW5lIERFRkFVTFRfUkFNX1NJ WkUgMTQ0CkBAIC0xNjEsNyArMTY1LDcgQEAKIGNvbnN0IGNoYXIqIGtleWJvYXJkX2xheW91dCA9 IE5VTEw7CiBpbnQ2NF90IHRpY2tzX3Blcl9zZWM7CiBpbnQgYm9vdF9kZXZpY2UgPSAnYyc7Ci1p bnQgcmFtX3NpemU7Cit1bnNpZ25lZCBsb25nIHJhbV9zaXplOwogaW50IHBpdF9taW5fdGltZXJf Y291bnQgPSAwOwogaW50IG5iX25pY3M7CiBOSUNJbmZvIG5kX3RhYmxlW01BWF9OSUNTXTsKQEAg LTc4NTIsMTIgKzc4NTYsMTIgQEAKICAgICAgICAgICAgICAgICBoZWxwKDApOwogICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBRRU1VX09QVElPTl9tOgotICAgICAgICAg ICAgICAgIHJhbV9zaXplID0gYXRvaShvcHRhcmcpICogMTAyNCAqIDEwMjQ7CisgICAgICAgICAg ICAgICAgcmFtX3NpemUgPSBhdG9sKG9wdGFyZykgKiAxMDI0ICogMTAyNDsKICAgICAgICAgICAg ICAgICBpZiAocmFtX3NpemUgPD0gMCkKICAgICAgICAgICAgICAgICAgICAgaGVscCgxKTsKICAg ICAgICAgICAgICAgICBpZiAocmFtX3NpemUgPiBQSFlTX1JBTV9NQVhfU0laRSkgewogICAgICAg ICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInFlbXU6IGF0IG1vc3QgJWQgTUIgUkFNIGNh biBiZSBzaW11bGF0ZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZU19SQU1f TUFYX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo aW50KShQSFlTX1JBTV9NQVhfU0laRSAvICgxMDI0ICogMTAyNCkpKTsKICAgICAgICAgICAgICAg ICAgICAgZXhpdCgxKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7 CkluZGV4OiBxZW11L3ZsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3ZsLmgJMjAwNy0wOS0y OSAxMjozMDowMy4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdmwuaAkyMDA3LTA5LTI5IDEyOjMw OjEyLjAwMDAwMDAwMCArMDAwMApAQCAtMTYyLDcgKzE2Miw3IEBACiAKIHZvaWQgbWFpbl9sb29w X3dhaXQoaW50IHRpbWVvdXQpOwogCi1leHRlcm4gaW50IHJhbV9zaXplOworZXh0ZXJuIHVuc2ln bmVkIGxvbmcgcmFtX3NpemU7CiBleHRlcm4gaW50IGJpb3Nfc2l6ZTsKIGV4dGVybiBpbnQgcnRj X3V0YzsKIGV4dGVybiBpbnQgY2lycnVzX3ZnYV9lbmFibGVkOwpAQCAtNzIzLDcgKzcyMyw3IEBA CiAKICNpZm5kZWYgUUVNVV9UT09MCiAKLXR5cGVkZWYgdm9pZCBRRU1VTWFjaGluZUluaXRGdW5j KGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKK3R5cGVkZWYgdm9pZCBRRU1VTWFjaGlu ZUluaXRGdW5jKHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAg ICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNo b3QsCiAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFy ICprZXJuZWxfY21kbGluZSwKSW5kZXg6IHFlbXUvaHcvcGMuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11 Lm9yaWcvaHcvcGMuYwkyMDA3LTA5LTI5IDEyOjI5OjQ3LjAwMDAwMDAwMCArMDAwMAorKysgcWVt dS9ody9wYy5jCTIwMDctMDktMjkgMTI6MzA6MTIuMDAwMDAwMDAwICswMDAwCkBAIC0xNTIsNyAr MTUyLDcgQEAKIH0KIAogLyogaGRfdGFibGUgbXVzdCBjb250YWluIDQgYmxvY2sgZHJpdmVycyAq Lwotc3RhdGljIHZvaWQgY21vc19pbml0KGludCByYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLCBC bG9ja0RyaXZlclN0YXRlICoqaGRfdGFibGUpCitzdGF0aWMgdm9pZCBjbW9zX2luaXQodW5zaWdu ZWQgbG9uZyByYW1fc2l6ZSwgdW5zaWduZWQgbG9uZyBhYm92ZV9iaW9zX3JhbV9zaXplLCBpbnQg Ym9vdF9kZXZpY2UsIEJsb2NrRHJpdmVyU3RhdGUgKipoZF90YWJsZSkKIHsKICAgICBSVENTdGF0 ZSAqcyA9IHJ0Y19zdGF0ZTsKICAgICBpbnQgdmFsOwpAQCAtMTc0LDYgKzE3NCwxMSBAQAogICAg IHJ0Y19zZXRfbWVtb3J5KHMsIDB4MzAsIHZhbCk7CiAgICAgcnRjX3NldF9tZW1vcnkocywgMHgz MSwgdmFsID4+IDgpOwogCisgICAgdmFsID0gKHVuc2lnbmVkIGludClhYm92ZV9iaW9zX3JhbV9z aXplIC8gNjU1MzY7CisgICAgcnRjX3NldF9tZW1vcnkocywgMHg1YiwgdmFsKTsKKyAgICBydGNf c2V0X21lbW9yeShzLCAweDVjLCB2YWwgPj4gOCk7CisgICAgcnRjX3NldF9tZW1vcnkocywgMHg1 ZCwgYWJvdmVfYmlvc19yYW1fc2l6ZS8weDEwMDAwMDAwMCk7CisKICAgICBpZiAocmFtX3NpemUg PiAoMTYgKiAxMDI0ICogMTAyNCkpCiAgICAgICAgIHZhbCA9IChyYW1fc2l6ZSAvIDY1NTM2KSAt ICgoMTYgKiAxMDI0ICogMTAyNCkgLyA2NTUzNik7CiAgICAgZWxzZQpAQCAtNjYyLDcgKzY2Nyw3 IEBACiB9CiAKIC8qIFBDIGhhcmR3YXJlIGluaXRpYWxpc2F0aW9uICovCi1zdGF0aWMgdm9pZCBw Y19pbml0MShpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwK K3N0YXRpYyB2b2lkIHBjX2luaXQxKHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFt X3NpemUsIGludCBib290X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0 ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJu ZWxfY21kbGluZSwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxl bmFtZSwKQEAgLTY3MCw3ICs2NzUsNyBAQAogewogICAgIGNoYXIgYnVmWzEwMjRdOwogICAgIGlu dCByZXQsIGxpbnV4X2Jvb3QsIGk7Ci0gICAgcmFtX2FkZHJfdCByYW1fYWRkciwgdmdhX3JhbV9h ZGRyLCBiaW9zX29mZnNldCwgdmdhX2Jpb3Nfb2Zmc2V0OworICAgIHJhbV9hZGRyX3QgcmFtX2Fk ZHIsIHZnYV9yYW1fYWRkciwgYmlvc19vZmZzZXQsIHZnYV9iaW9zX29mZnNldCwgYWJvdmVfYmlv c19tZW1fc2l6ZSA9IDA7CiAgICAgaW50IGJpb3Nfc2l6ZSwgaXNhX2Jpb3Nfc2l6ZSwgdmdhX2Jp b3Nfc2l6ZTsKICAgICBQQ0lCdXMgKnBjaV9idXM7CiAgICAgaW50IHBpaXgzX2RldmZuID0gLTE7 CkBAIC02NzksNiArNjg0LDEwIEBACiAgICAgcWVtdV9pcnEgKmNwdV9pcnE7CiAgICAgcWVtdV9p cnEgKmk4MjU5OwogCisgICAgaWYgKHJhbV9zaXplID49IDB4ZjAwMDAwMDApIHsKKyAgICAgICAg YWJvdmVfYmlvc19tZW1fc2l6ZSA9IHJhbV9zaXplIC0gMHhmMDAwMDAwMDsKKyAgICAgICAgcmFt X3NpemUgPSAweGYwMDAwMDAwOworICAgIH0KICAgICBsaW51eF9ib290ID0gKGtlcm5lbF9maWxl bmFtZSAhPSBOVUxMKTsKIAogICAgIC8qIGluaXQgQ1BVcyAqLwpAQCAtNjk5LDggKzcwOCwxMCBA QAogICAgIH0KIAogICAgIC8qIGFsbG9jYXRlIFJBTSAqLwotICAgIHJhbV9hZGRyID0gcWVtdV9y YW1fYWxsb2MocmFtX3NpemUpOworICAgIHJhbV9hZGRyID0gcWVtdV9yYW1fYWxsb2MocmFtX3Np emUgKyBhYm92ZV9iaW9zX21lbV9zaXplKTsKICAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxfbWVt b3J5KDAsIHJhbV9zaXplLCByYW1fYWRkcik7CisgICAgaWYoYWJvdmVfYmlvc19tZW1fc2l6ZSA+ IDApCisgICAgICAgIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkoMHgxMDAwMDAwMDAsIGFi b3ZlX2Jpb3NfbWVtX3NpemUsIHJhbV9hZGRyICsgcmFtX3NpemUpOwogCiAgICAgLyogYWxsb2Nh dGUgVkdBIFJBTSAqLwogICAgIHZnYV9yYW1fYWRkciA9IHFlbXVfcmFtX2FsbG9jKHZnYV9yYW1f c2l6ZSk7CkBAIC04OTgsNyArOTA5LDcgQEAKIAogICAgIGZsb3BweV9jb250cm9sbGVyID0gZmRj dHJsX2luaXQoaTgyNTlbNl0sIDIsIDAsIDB4M2YwLCBmZF90YWJsZSk7CiAKLSAgICBjbW9zX2lu aXQocmFtX3NpemUsIGJvb3RfZGV2aWNlLCBic190YWJsZSk7CisgICAgY21vc19pbml0KHJhbV9z aXplIC0gMTI4ICogMTAyNCAqIDEwMjQsIGFib3ZlX2Jpb3NfbWVtX3NpemUsIGJvb3RfZGV2aWNl LCBic190YWJsZSk7CiAKICAgICBpZiAocGNpX2VuYWJsZWQgJiYgdXNiX2VuYWJsZWQpIHsKICAg ICAgICAgdXNiX3VoY2lfcGlpeDNfaW5pdChwY2lfYnVzLCBwaWl4M19kZXZmbiArIDIpOwpAQCAt OTM3LDcgKzk0OCw3IEBACiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQgcGNfaW5pdF9wY2koaW50 IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9p ZCBwY19pbml0X3BjaSh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBp bnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRz LCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg c25hcHNob3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmls ZW5hbWUsCkBAIC05NTEsNyArOTYyLDcgQEAKICAgICAgICAgICAgICBpbml0cmRfZmlsZW5hbWUs IDEpOwogfQogCi1zdGF0aWMgdm9pZCBwY19pbml0X2lzYShpbnQgcmFtX3NpemUsIGludCB2Z2Ff cmFtX3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIHBjX2luaXRfaXNhKHVuc2ln bmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKICAg ICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9m aWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzbmFwc2hvdCwKICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwKSW5kZXg6IHFlbXUv aHcvdmdhLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3ZnYS5jCTIwMDctMDktMjkgMTI6 Mjk6NDcuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3ZnYS5jCTIwMDctMDktMjkgMTI6MzA6 MTIuMDAwMDAwMDAwICswMDAwCkBAIC0xNDE1LDEwICsxNDE1LDExIEBACiBzdGF0aWMgdm9pZCB2 Z2FfZHJhd19ncmFwaGljKFZHQVN0YXRlICpzLCBpbnQgZnVsbF91cGRhdGUpCiB7CiAgICAgaW50 IHkxLCB5LCB1cGRhdGUsIHBhZ2VfbWluLCBwYWdlX21heCwgbGluZXNpemUsIHlfc3RhcnQsIGRv dWJsZV9zY2FuLCBtYXNrOwotICAgIGludCB3aWR0aCwgaGVpZ2h0LCBzaGlmdF9jb250cm9sLCBs aW5lX29mZnNldCwgcGFnZTAsIHBhZ2UxLCBid2lkdGg7CisgICAgaW50IHdpZHRoLCBoZWlnaHQs IHNoaWZ0X2NvbnRyb2wsIGxpbmVfb2Zmc2V0LCBid2lkdGg7CiAgICAgaW50IGRpc3Bfd2lkdGgs IG11bHRpX3NjYW4sIG11bHRpX3J1bjsKICAgICB1aW50OF90ICpkOwogICAgIHVpbnQzMl90IHYs IGFkZHIxLCBhZGRyOworICAgIHVuc2lnbmVkIGxvbmcgcGFnZTAsIHBhZ2UxOwogICAgIHZnYV9k cmF3X2xpbmVfZnVuYyAqdmdhX2RyYXdfbGluZTsKIAogICAgIGZ1bGxfdXBkYXRlIHw9IHVwZGF0 ZV9iYXNpY19wYXJhbXMocyk7CkluZGV4OiBxZW11L2h3L3N1bjRtLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g cWVtdS5vcmlnL2h3L3N1bjRtLmMJMjAwNy0wOS0yOSAxMjoyOTo0Ny4wMDAwMDAwMDAgKzAwMDAK KysrIHFlbXUvaHcvc3VuNG0uYwkyMDA3LTA5LTI5IDEyOjMwOjEyLjAwMDAwMDAwMCArMDAwMApA QCAtMTU4LDcgKzE1OCw3IEBACiBleHRlcm4gaW50IG5vZ3JhcGhpYzsKIAogc3RhdGljIHZvaWQg bnZyYW1faW5pdChtNDh0NTlfdCAqbnZyYW0sIHVpbnQ4X3QgKm1hY2FkZHIsIGNvbnN0IGNoYXIg KmNtZGxpbmUsCi0JCSAgICAgICBpbnQgYm9vdF9kZXZpY2UsIHVpbnQzMl90IFJBTV9zaXplLAor CQkgICAgICAgaW50IGJvb3RfZGV2aWNlLCB1bnNpZ25lZCBsb25nIFJBTV9zaXplLAogCQkgICAg ICAgdWludDMyX3Qga2VybmVsX3NpemUsCiAJCSAgICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQs IGludCBkZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1hY2hpbmVfaWQpCkBAIC0x NzQsNyArMTc0LDcgQEAKICAgICBtNDh0NTlfd3JpdGUobnZyYW0sIDB4MkQsIHNtcF9jcHVzICYg MHhmZik7CiAgICAgbTQ4dDU5X3dyaXRlKG52cmFtLCAweDJFLCAwKTsKICAgICBtNDh0NTlfd3Jp dGUobnZyYW0sIDB4MkYsIG5vZ3JhcGhpYyAmIDB4ZmYpOwotICAgIG52cmFtX3NldF9sd29yZChu dnJhbSwgIDB4MzAsIFJBTV9zaXplKTsKKyAgICBudnJhbV9zZXRfbHdvcmQobnZyYW0sICAweDMw LCBSQU1fc2l6ZSAmIDB4ZmZmZmZmZmYpOwogICAgIG00OHQ1OV93cml0ZShudnJhbSwgMHgzNCwg Ym9vdF9kZXZpY2UgJiAweGZmKTsKICAgICBudnJhbV9zZXRfbHdvcmQobnZyYW0sICAweDM4LCBL RVJORUxfTE9BRF9BRERSKTsKICAgICBudnJhbV9zZXRfbHdvcmQobnZyYW0sICAweDNDLCBrZXJu ZWxfc2l6ZSk7CkBAIC0xODcsNiArMTg3LDcgQEAKICAgICBudnJhbV9zZXRfd29yZChudnJhbSwg ICAweDU0LCB3aWR0aCk7CiAgICAgbnZyYW1fc2V0X3dvcmQobnZyYW0sICAgMHg1NiwgaGVpZ2h0 KTsKICAgICBudnJhbV9zZXRfd29yZChudnJhbSwgICAweDU4LCBkZXB0aCk7CisgICAgbnZyYW1f c2V0X2x3b3JkKG52cmFtLCAgMHg1YywgUkFNX3NpemUgPj4gMzIpOwogCiAgICAgLy8gT3BlbkJJ T1MgbnZyYW0gdmFyaWFibGVzCiAgICAgLy8gVmFyaWFibGUgcGFydGl0aW9uCkBAIC0zMDYsNyAr MzA3LDcgQEAKICAgICBlbnYtPmhhbHRlZCA9IDE7CiB9CiAKLXN0YXRpYyB2b2lkICpzdW40bV9o d19pbml0KGNvbnN0IHN0cnVjdCBod2RlZiAqaHdkZWYsIGludCBSQU1fc2l6ZSwKK3N0YXRpYyB2 b2lkICpzdW40bV9od19pbml0KGNvbnN0IHN0cnVjdCBod2RlZiAqaHdkZWYsIHVuc2lnbmVkIGxv bmcgUkFNX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRz LCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCiAKIHsKQEAgLTQxMSw3ICs0MTIsOCBAQAogICAgIHJl dHVybiBudnJhbTsKIH0KIAotc3RhdGljIHZvaWQgc3VuNG1fbG9hZF9rZXJuZWwobG9uZyB2cmFt X3NpemUsIGludCBSQU1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgc3VuNG1f bG9hZF9rZXJuZWwobG9uZyB2cmFtX3NpemUsIHVuc2lnbmVkIGxvbmcgUkFNX3NpemUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwKQEAgLTU0 NiwxNyArNTQ4LDE5IEBACiAgICAgfSwKIH07CiAKLXN0YXRpYyB2b2lkIHN1bjRtX2NvbW1vbl9p bml0KGludCBSQU1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLCBEaXNwbGF5U3RhdGUgKmRzLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBj b25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1X21vZGVsLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1hY2hpbmUsIGludCBtYXhf cmFtKQorc3RhdGljIHZvaWQgc3VuNG1fY29tbW9uX2luaXQodW5zaWduZWQgbG9uZyBSQU1fc2l6 ZSwgaW50IGJvb3RfZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxh eVN0YXRlICpkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtl cm5lbF9maWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg Kmtlcm5lbF9jbWRsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqaW5pdHJkX2ZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqY3B1X21vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IG1hY2hpbmUsIHVuc2lnbmVkIGxvbmcgbWF4X3JhbSkKIHsKICAgICB2b2lkICpudnJhbTsK IAotICAgIGlmICgodW5zaWduZWQgaW50KVJBTV9zaXplID4gKHVuc2lnbmVkIGludCltYXhfcmFt KSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogVG9vIG11Y2ggbWVtb3J5IGZvciB0 aGlzIG1hY2hpbmU6ICVkLCBtYXhpbXVtICVkXG4iLAotICAgICAgICAgICAgICAgICh1bnNpZ25l ZCBpbnQpUkFNX3NpemUgLyAoMTAyNCAqIDEwMjQpLAotICAgICAgICAgICAgICAgICh1bnNpZ25l ZCBpbnQpbWF4X3JhbSAvICgxMDI0ICogMTAyNCkpOworICAgIGlmIChSQU1fc2l6ZSA+IG1heF9y YW0pIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJxZW11OiBUb28gbXVjaCBtZW1vcnkgZm9y IHRoaXMgbWFjaGluZTogJWxkLCBtYXhpbXVtICVsZFxuIiwKKyAgICAgICAgICAgICAgICBSQU1f c2l6ZSAvICgxMDI0ICogMTAyNCksIG1heF9yYW0gLyAoMTAyNCAqIDEwMjQpKTsKICAgICAgICAg ZXhpdCgxKTsKICAgICB9CiAgICAgbnZyYW0gPSBzdW40bV9od19pbml0KCZod2RlZnNbbWFjaGlu ZV0sIFJBTV9zaXplLCBkcywgY3B1X21vZGVsKTsKQEAgLTU2NywxMCArNTcxLDEwIEBACiB9CiAK IC8qIFNQQVJDc3RhdGlvbiA1IGhhcmR3YXJlIGluaXRpYWxpc2F0aW9uICovCi1zdGF0aWMgdm9p ZCBzczVfaW5pdChpbnQgUkFNX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2Rldmlj ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAq KmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUsCi0gICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hh ciAqY3B1X21vZGVsKQorc3RhdGljIHZvaWQgc3M1X2luaXQodW5zaWduZWQgbG9uZyBSQU1fc2l6 ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorICAgICAgICAgICAgICAgICAg ICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNo b3QsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNv bnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqaW5pdHJkX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCiB7CiAgICAgaWYgKGNw dV9tb2RlbCA9PSBOVUxMKQogICAgICAgICBjcHVfbW9kZWwgPSAiRnVqaXRzdSBNQjg2OTA0IjsK QEAgLTU4MCwxNiArNTg0LDE2IEBACiB9CiAKIC8qIFNQQVJDc3RhdGlvbiAxMCBoYXJkd2FyZSBp bml0aWFsaXNhdGlvbiAqLwotc3RhdGljIHZvaWQgc3MxMF9pbml0KGludCBSQU1fc2l6ZSwgaW50 IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBz aG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxl bmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwp CitzdGF0aWMgdm9pZCBzczEwX2luaXQodW5zaWduZWQgbG9uZyBSQU1fc2l6ZSwgaW50IHZnYV9y YW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlT dGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAorICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAq a2VybmVsX2NtZGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5pdHJk X2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCiB7CiAgICAgaWYgKGNwdV9tb2RlbCA9 PSBOVUxMKQogICAgICAgICBjcHVfbW9kZWwgPSAiVEkgU3VwZXJTcGFyYyBJSSI7CiAgICAgc3Vu NG1fY29tbW9uX2luaXQoUkFNX3NpemUsIGJvb3RfZGV2aWNlLCBkcywga2VybmVsX2ZpbGVuYW1l LAogICAgICAgICAgICAgICAgICAgICAgIGtlcm5lbF9jbWRsaW5lLCBpbml0cmRfZmlsZW5hbWUs IGNwdV9tb2RlbCwKLSAgICAgICAgICAgICAgICAgICAgICAxLCAweGZmZmZmZmZmKTsgLy8gWFhY IGFjdHVhbGx5IGZpcnN0IDYyR0Igb2sKKyAgICAgICAgICAgICAgICAgICAgICAxLCAweGUwMDAw MDAwMDBVTEwpOwogfQogCiBRRU1VTWFjaGluZSBzczVfbWFjaGluZSA9IHsKSW5kZXg6IHFlbXUv dGFyZ2V0LXNwYXJjL29wX2hlbHBlci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90YXJnZXQt c3BhcmMvb3BfaGVscGVyLmMJMjAwNy0wOS0yOSAxMjoyOTo0Ny4wMDAwMDAwMDAgKzAwMDAKKysr IHFlbXUvdGFyZ2V0LXNwYXJjL29wX2hlbHBlci5jCTIwMDctMDktMjkgMTI6MzA6MTIuMDAwMDAw MDAwICswMDAwCkBAIC0yNTEsOCArMjUxLDcgQEAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICB9CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgMHgyZTogLyogTU1VIHBhc3N0aHJvdWdoLCAw eGV4eHh4eHh4eCAqLwotICAgIGNhc2UgMHgyZjogLyogTU1VIHBhc3N0aHJvdWdoLCAweGZ4eHh4 eHh4eCAqLworICAgIGNhc2UgMHgyMSAuLi4gMHgyZjogLyogTU1VIHBhc3N0aHJvdWdoLCAweDF4 eHh4eHh4eCAuLiAweGZ4eHh4eHh4eCAuLiAqLwogICAgICAgICBzd2l0Y2goc2l6ZSkgewogICAg ICAgICBjYXNlIDE6CiAgICAgICAgICAgICByZXQgPSBsZHViX3BoeXMoKHRhcmdldF9waHlzX2Fk ZHJfdClUMApAQCAtMjc1LDcgKzI3NCw2IEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg fQogICAgICAgICBicmVhazsKLSAgICBjYXNlIDB4MjEgLi4uIDB4MmQ6IC8qIE1NVSBwYXNzdGhy b3VnaCwgdW5hc3NpZ25lZCAqLwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGRvX3VuYXNzaWduZWRf YWNjZXNzKFQwLCAwLCAwLCAxKTsKICAgICAgICAgcmV0ID0gMDsKSW5kZXg6IHFlbXUvaHcvYW41 MjA2LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L2FuNTIwNi5jCTIwMDctMDktMjkgMTI6 Mjk6NDcuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L2FuNTIwNi5jCTIwMDctMDktMjkgMTI6 MzA6MTIuMDAwMDAwMDAwICswMDAwCkBAIC0yNyw3ICsyNyw4IEBACiAKIC8qIEJvYXJkIGluaXQu ICAqLwogCi1zdGF0aWMgdm9pZCBhbjUyMDZfaW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFt X3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIGFuNTIwNl9pbml0KHVuc2lnbmVk IGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgICAgICBp bnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBj b25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFwc2hvdCwKICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxp bmUsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNv bnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvaHcvaW50ZWdyYXRvcmNwLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gcWVtdS5vcmlnL2h3L2ludGVncmF0b3JjcC5jCTIwMDctMDktMjkgMTI6Mjk6NDcu MDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L2ludGVncmF0b3JjcC5jCTIwMDctMDktMjkgMTI6 MzA6MTIuMDAwMDAwMDAwICswMDAwCkBAIC00NjIsNyArNDYyLDggQEAKIAogLyogQm9hcmQgaW5p dC4gICovCiAKLXN0YXRpYyB2b2lkIGludGVncmF0b3JjcF9pbml0KGludCByYW1fc2l6ZSwgaW50 IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgaW50ZWdyYXRvcmNw X2luaXQodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAg ICAgICAgICAgICAgIGludCBib290X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgIERpc3Bs YXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFy ICprZXJuZWxfY21kbGluZSwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRy ZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1X21vZGVsKQpJbmRleDogcWVtdS9ody9tY2Y1MjA4 LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L21jZjUyMDguYwkyMDA3LTA5LTI5IDEyOjI5 OjQ3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9tY2Y1MjA4LmMJMjAwNy0wOS0yOSAxMjoz MDoxMi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE5Nyw3ICsxOTcsOCBAQAogICAgIH0KIH0KIAotc3Rh dGljIHZvaWQgbWNmNTIwOGV2Yl9pbml0KGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwg aW50IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgbWNmNTIwOGV2Yl9pbml0KHVuc2lnbmVkIGxv bmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgICAgICBpbnQg Ym9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25z dCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFwc2hvdCwKICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUs CiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNvbnN0 IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvaHcvbWlwc19tYWx0YS5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHFlbXUub3JpZy9ody9taXBzX21hbHRhLmMJMjAwNy0wOS0yOSAxMjoyOTo0Ny4wMDAwMDAw MDAgKzAwMDAKKysrIHFlbXUvaHcvbWlwc19tYWx0YS5jCTIwMDctMDktMjkgMTI6MzA6MTIuMDAw MDAwMDAwICswMDAwCkBAIC03NDAsNyArNzQwLDcgQEAKIH0KIAogc3RhdGljCi12b2lkIG1pcHNf bWFsdGFfaW5pdCAoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZp Y2UsCit2b2lkIG1pcHNfbWFsdGFfaW5pdCAodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZn YV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgIERpc3Bs YXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hh ciAqa2VybmVsX2NtZGxpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5p dHJkX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCkluZGV4OiBxZW11L2h3L21pcHNf cGljYTYxLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L21pcHNfcGljYTYxLmMJMjAwNy0w OS0yOSAxMjoyOTo0Ny4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvbWlwc19waWNhNjEuYwky MDA3LTA5LTI5IDEyOjMwOjEyLjAwMDAwMDAwMCArMDAwMApAQCAtNTUsNyArNTUsOCBAQAogfQog CiBzdGF0aWMKLXZvaWQgbWlwc19waWNhNjFfaW5pdCAoaW50IHJhbV9zaXplLCBpbnQgdmdhX3Jh bV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCit2b2lkIG1pcHNfcGljYTYxX2luaXQgKHVuc2lnbmVk IGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgICAgIGlu dCBib290X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29u c3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCiAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUs CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3Qg Y2hhciAqY3B1X21vZGVsKQpJbmRleDogcWVtdS9ody9taXBzX3I0ay5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHFlbXUub3JpZy9ody9taXBzX3I0ay5jCTIwMDctMDktMjkgMTI6Mjk6NDcuMDAwMDAwMDAwICsw MDAwCisrKyBxZW11L2h3L21pcHNfcjRrLmMJMjAwNy0wOS0yOSAxMjozMDoxMi4wMDAwMDAwMDAg KzAwMDAKQEAgLTEzNiw3ICsxMzYsNyBAQAogfQogCiBzdGF0aWMKLXZvaWQgbWlwc19yNGtfaW5p dCAoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCit2b2lk IG1pcHNfcjRrX2luaXQgKHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUs IGludCBib290X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywg Y29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCiAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxp bmUsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29u c3QgY2hhciAqY3B1X21vZGVsKQpJbmRleDogcWVtdS9ody9wYWxtLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g cWVtdS5vcmlnL2h3L3BhbG0uYwkyMDA3LTA5LTI5IDEyOjI5OjQ3LjAwMDAwMDAwMCArMDAwMAor KysgcWVtdS9ody9wYWxtLmMJMjAwNy0wOS0yOSAxMjozMDoxMi4wMDAwMDAwMDAgKzAwMDAKQEAg LTYxLDcgKzYxLDggQEAKIHsKIH0KIAotc3RhdGljIHZvaWQgcGFsbXRlX2luaXQoaW50IHJhbV9z aXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9pZCBwYWxt dGVfaW5pdCh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLAorICAgICAg ICAgICAgICAgIGludCBib290X2RldmljZSwKICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUg KmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFwc2hvdCwKICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRs aW5lLAogICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3Qg Y2hhciAqY3B1X21vZGVsKQpJbmRleDogcWVtdS9ody9wcGM0MDVfYm9hcmRzLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gcWVtdS5vcmlnL2h3L3BwYzQwNV9ib2FyZHMuYwkyMDA3LTA5LTI5IDEyOjI5OjQ3LjAw MDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9wcGM0MDVfYm9hcmRzLmMJMjAwNy0wOS0yOSAxMjoz MDoxMi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3MSw3ICsxNzEsOCBAQAogICAgIH0KIH0KIAotc3Rh dGljIHZvaWQgcmVmNDA1ZXBfaW5pdCAoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBp bnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9pZCByZWY0MDVlcF9pbml0ICh1bnNpZ25lZCBsb25n IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRl ICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq a2VybmVsX2ZpbGVuYW1lLApAQCAtNDk0LDcgKzQ5NSw4IEBACiAgICAgfQogfQogCi1zdGF0aWMg dm9pZCB0YWlodV80MDVlcF9pbml0KGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50 IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgdGFpaHVfNDA1ZXBfaW5pdCh1bnNpZ25lZCBsb25n IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlT dGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICprZXJuZWxfZmlsZW5hbWUsCkluZGV4OiBxZW11L2h3L3BwY19jaHJwLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gcWVtdS5vcmlnL2h3L3BwY19jaHJwLmMJMjAwNy0wOS0yOSAxMjoyOTo0Ny4wMDAw MDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcHBjX2NocnAuYwkyMDA3LTA5LTI5IDEyOjMwOjEyLjAw MDAwMDAwMCArMDAwMApAQCAtMzAwLDcgKzMwMCw4IEBACiB9CiAKIC8qIFBvd2VyUEMgQ0hSUCBo YXJkd2FyZSBpbml0aWFsaXNhdGlvbiAqLwotc3RhdGljIHZvaWQgcHBjX2NocnBfaW5pdCAoaW50 IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9p ZCBwcGNfY2hycF9pbml0ICh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXpl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJvb3RfZGV2aWNlLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVu YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNuYXBzaG90LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLApAQCAtNTY3LDcg KzU2OCw4IEBACiAgICAgcmVnaXN0ZXJfaW9wb3J0X3dyaXRlKDB4MEYwMCwgNCwgMSwgJlBQQ19k ZWJ1Z193cml0ZSwgTlVMTCk7CiB9CiAKLXN0YXRpYyB2b2lkIHBwY19jb3JlOTlfaW5pdCAoaW50 IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9p ZCBwcGNfY29yZTk5X2luaXQgKHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3Np emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBib290X2RldmljZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZk X2ZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc25hcHNob3QsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwK QEAgLTU4MSw3ICs1ODMsOCBAQAogICAgICAgICAgICAgICAgICAgaW5pdHJkX2ZpbGVuYW1lLCBj cHVfbW9kZWwsIDApOwogfQogCi1zdGF0aWMgdm9pZCBwcGNfaGVhdGhyb3dfaW5pdCAoaW50IHJh bV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9pZCBw cGNfaGVhdGhyb3dfaW5pdCAodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6 ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAq KmZkX2ZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzbmFwc2hv dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmls ZW5hbWUsCkluZGV4OiBxZW11L2h3L3BwY19wcmVwLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmln L2h3L3BwY19wcmVwLmMJMjAwNy0wOS0yOSAxMjoyOTo0Ny4wMDAwMDAwMDAgKzAwMDAKKysrIHFl bXUvaHcvcHBjX3ByZXAuYwkyMDA3LTA5LTI5IDEyOjMwOjEyLjAwMDAwMDAwMCArMDAwMApAQCAt NTE0LDcgKzUxNCw4IEBACiAjZGVmaW5lIE5WUkFNX1NJWkUgICAgICAgIDB4MjAwMAogCiAvKiBQ b3dlclBDIFBSRVAgaGFyZHdhcmUgaW5pdGlhbGlzYXRpb24gKi8KLXN0YXRpYyB2b2lkIHBwY19w cmVwX2luaXQgKGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNl LAorc3RhdGljIHZvaWQgcHBjX3ByZXBfaW5pdCAodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50 IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBib290X2Rldmlj ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNo YXIgKipmZF9maWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzbmFwc2hv dCwgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUsCkluZGV4OiBxZW11L2h3L3JlYWx2aWV3LmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3JlYWx2aWV3LmMJMjAwNy0wOS0yOSAxMjoyOTo0 Ny4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcmVhbHZpZXcuYwkyMDA3LTA5LTI5IDEyOjMw OjEyLjAwMDAwMDAwMCArMDAwMApAQCAtMTIsNyArMTIsOCBAQAogCiAvKiBCb2FyZCBpbml0LiAg Ki8KIAotc3RhdGljIHZvaWQgcmVhbHZpZXdfaW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFt X3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIHJlYWx2aWV3X2luaXQodW5zaWdu ZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg IGludCBib290X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMs IGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21k bGluZSwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwg Y29uc3QgY2hhciAqY3B1X21vZGVsKQpJbmRleDogcWVtdS9ody9zaGl4LmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gcWVtdS5vcmlnL2h3L3NoaXguYwkyMDA3LTA5LTI5IDEyOjI5OjQ3LjAwMDAwMDAwMCArMDAw MAorKysgcWVtdS9ody9zaGl4LmMJMjAwNy0wOS0yOSAxMjozMDoxMi4wMDAwMDAwMDAgKzAwMDAK QEAgLTYyLDcgKzYyLDcgQEAKICAgICAvKiBYWFhYWCAqLwogfQogCi12b2lkIHNoaXhfaW5pdChp bnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKK3ZvaWQgc2hp eF9pbml0KHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290 X2RldmljZSwKIAkgICAgICAgRGlzcGxheVN0YXRlICogZHMsIGNvbnN0IGNoYXIgKipmZF9maWxl bmFtZSwgaW50IHNuYXBzaG90LAogCSAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUs IGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAogCSAgICAgICBjb25zdCBjaGFyICppbml0cmRf ZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvaHcvc3BpdHouYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvc3BpdHouYwkyMDA3LTA5LTI5IDEyOjI5OjQ3LjAw MDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9zcGl0ei5jCTIwMDctMDktMjkgMTI6MzA6MTIuMDAw MDAwMDAwICswMDAwCkBAIC0xMTY3LDcgKzExNjcsNyBAQAogLyogQm9hcmQgaW5pdC4gICovCiBl bnVtIHNwaXR6X21vZGVsX2UgeyBzcGl0eiwgYWtpdGEsIGJvcnpvaSwgdGVycmllciB9OwogCi1z dGF0aWMgdm9pZCBzcGl0el9jb21tb25faW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3Np emUsCitzdGF0aWMgdm9pZCBzcGl0el9jb21tb25faW5pdCh1bnNpZ25lZCBsb25nICByYW1fc2l6 ZSwgaW50IHZnYV9yYW1fc2l6ZSwKICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBj b25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq a2VybmVsX2NtZGxpbmUsIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwKICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICpjcHVfbW9kZWwsIGVudW0gc3BpdHpfbW9kZWxfZSBtb2RlbCwgaW50 IGFybV9pZCkKQEAgLTEyMjQsNyArMTIyNCw4IEBACiAgICAgc2xfYm9vdHBhcmFtX3dyaXRlKFNM X1BYQV9QQVJBTV9CQVNFIC0gUFhBMlhYX1NEUkFNX0JBU0UpOwogfQogCi1zdGF0aWMgdm9pZCBz cGl0el9pbml0KGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNl LAorc3RhdGljIHZvaWQgc3BpdHpfaW5pdCh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdh X3JhbV9zaXplLAorICAgICAgICAgICAgICAgIGludCBib290X2RldmljZSwKICAgICAgICAgICAg ICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFw c2hvdCwKICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0 IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAogICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRy ZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1X21vZGVsKQpAQCAtMTIzMyw3ICsxMjM0LDggQEAK ICAgICAgICAgICAgICAgICBrZXJuZWxfY21kbGluZSwgaW5pdHJkX2ZpbGVuYW1lLCBjcHVfbW9k ZWwsIHNwaXR6LCAweDJjOSk7CiB9CiAKLXN0YXRpYyB2b2lkIGJvcnpvaV9pbml0KGludCByYW1f c2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgYm9y em9pX2luaXQodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKKyAgICAg ICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRl ICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCiAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21k bGluZSwKICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNvbnN0 IGNoYXIgKmNwdV9tb2RlbCkKQEAgLTEyNDIsNyArMTI0NCw4IEBACiAgICAgICAgICAgICAgICAg a2VybmVsX2NtZGxpbmUsIGluaXRyZF9maWxlbmFtZSwgY3B1X21vZGVsLCBib3J6b2ksIDB4MzNm KTsKIH0KIAotc3RhdGljIHZvaWQgYWtpdGFfaW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFt X3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIGFraXRhX2luaXQodW5zaWduZWQg bG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAgICAgICAgICBpbnQgYm9v dF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAq KmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq a2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkK QEAgLTEyNTEsNyArMTI1NCw4IEBACiAgICAgICAgICAgICAgICAga2VybmVsX2NtZGxpbmUsIGlu aXRyZF9maWxlbmFtZSwgY3B1X21vZGVsLCBha2l0YSwgMHgyZTgpOwogfQogCi1zdGF0aWMgdm9p ZCB0ZXJyaWVyX2luaXQoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9k ZXZpY2UsCitzdGF0aWMgdm9pZCB0ZXJyaWVyX2luaXQodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwg aW50IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAg ICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBp bnQgc25hcHNob3QsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1l LCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICppbml0cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvaHcv c3VuNHUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvc3VuNHUuYwkyMDA3LTA5LTI5IDEy OjI5OjQ3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9zdW40dS5jCTIwMDctMDktMjkgMTI6 MzA6MTIuMDAwMDAwMDAwICswMDAwCkBAIC0zMzEsMTAgKzMzMSwxMSBAQAogc3RhdGljIGZkY3Ry bF90ICpmbG9wcHlfY29udHJvbGxlcjsKIAogLyogU3VuNHUgaGFyZHdhcmUgaW5pdGlhbGlzYXRp b24gKi8KLXN0YXRpYyB2b2lkIHN1bjR1X2luaXQoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9z aXplLCBpbnQgYm9vdF9kZXZpY2UsCi0gICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29u c3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCi0gICAgICAgICAgICAgY29uc3Qg Y2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKLSAgICAg ICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2Rl bCkKK3N0YXRpYyB2b2lkIHN1bjR1X2luaXQodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZn YV9yYW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGJvb3RfZGV2aWNlLAorICAg ICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmls ZW5hbWUsIGludCBzbmFwc2hvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq a2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVf bW9kZWwpCiB7CiAgICAgQ1BVU3RhdGUgKmVudjsKICAgICBjaGFyIGJ1ZlsxMDI0XTsKSW5kZXg6 IHFlbXUvaHcvdmVyc2F0aWxlcGIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvdmVyc2F0 aWxlcGIuYwkyMDA3LTA5LTI5IDEyOjI5OjQ3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody92 ZXJzYXRpbGVwYi5jCTIwMDctMDktMjkgMTI6MzA6MTIuMDAwMDAwMDAwICswMDAwCkBAIC0xNTEs NyArMTUxLDggQEAKICAgIHBlcmlwaGVyYW5zIGFuZCBleHBhbnNpb24gYnVzc2VzLiAgRm9yIG5v dyB3ZSBlbXVsYXRlIGEgc3Vic2V0IG9mIHRoZQogICAgUEIgcGVyaXBoZXJhbHMgYW5kIGp1c3Qg Y2hhbmdlIHRoZSBib2FyZCBJRC4gICovCiAKLXN0YXRpYyB2b2lkIHZlcnNhdGlsZV9pbml0KGlu dCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorc3RhdGljIHZv aWQgdmVyc2F0aWxlX2luaXQodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6 ZSwKKyAgICAgICAgICAgICAgICAgICAgIGludCBib290X2RldmljZSwKICAgICAgICAgICAgICAg ICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNu YXBzaG90LAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1l LCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1X21vZGVsLApAQCAtMjY2LDcg KzI2Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgIGluaXRyZF9maWxlbmFtZSwgYm9hcmRfaWQs IDB4MCk7CiB9CiAKLXN0YXRpYyB2b2lkIHZwYl9pbml0KGludCByYW1fc2l6ZSwgaW50IHZnYV9y YW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgdnBiX2luaXQodW5zaWduZWQg bG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAogICAgICAg ICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1l LCBpbnQgc25hcHNob3QsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxf ZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAogICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCkBA IC0yNzcsNyArMjc4LDcgQEAKICAgICAgICAgICAgICAgICAgICBpbml0cmRfZmlsZW5hbWUsIGNw dV9tb2RlbCwgMHgxODMpOwogfQogCi1zdGF0aWMgdm9pZCB2YWJfaW5pdChpbnQgcmFtX3NpemUs IGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIHZhYl9pbml0 KHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2Rldmlj ZSwKICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipm ZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1 X21vZGVsKQpJbmRleDogcWVtdS9vc2RlcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9vc2Rl cC5jCTIwMDctMDktMjkgMTI6Mjk6NDcuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L29zZGVwLmMJ MjAwNy0wOS0yOSAxMjozMDoxMi4wMDAwMDAwMDAgKzAwMDAKQEAgLTg3LDcgKzg3LDcgQEAKIHZv aWQgKmtxZW11X3ZtYWxsb2Moc2l6ZV90IHNpemUpCiB7CiAgICAgc3RhdGljIGludCBwaHlzX3Jh bV9mZCA9IC0xOwotICAgIHN0YXRpYyBpbnQgcGh5c19yYW1fc2l6ZSA9IDA7CisgICAgc3RhdGlj IHVuc2lnbmVkIGxvbmcgcGh5c19yYW1fc2l6ZSA9IDA7CiAgICAgY29uc3QgY2hhciAqdG1wZGly OwogICAgIGNoYXIgcGh5c19yYW1fZmlsZVsxMDI0XTsKICAgICB2b2lkICpwdHI7CkBAIC0xMTAs NyArMTEwLDcgQEAKICAgICAgICAgICAgIGludDY0X3QgZnJlZV9zcGFjZTsKICAgICAgICAgICAg IGludCByYW1fbWI7CiAKLSAgICAgICAgICAgIGV4dGVybiBpbnQgcmFtX3NpemU7CisgICAgICAg ICAgICBleHRlcm4gdW5zaWduZWQgbG9uZyByYW1fc2l6ZTsKICAgICAgICAgICAgIGZyZWVfc3Bh Y2UgPSAoaW50NjRfdClzdGZzLmZfYmF2YWlsICogc3Rmcy5mX2JzaXplOwogICAgICAgICAgICAg aWYgKChyYW1fc2l6ZSArIDgxOTIgKiAxMDI0KSA+PSBmcmVlX3NwYWNlKSB7CiAgICAgICAgICAg ICAgICAgcmFtX21iID0gKHJhbV9zaXplIC8gKDEwMjQgKiAxMDI0KSk7CkluZGV4OiBxZW11L2h3 L3BpaXhfcGNpLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3BpaXhfcGNpLmMJMjAwNy0w OS0yOSAxMjoyOTo0Ny4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcGlpeF9wY2kuYwkyMDA3 LTA5LTI5IDEyOjMwOjEyLjAwMDAwMDAwMCArMDAwMApAQCAtNTIsNyArNTIsNyBAQAogICAgIHJl dHVybiAoaXJxX251bSArIHNsb3RfYWRkZW5kKSAmIDM7CiB9CiAKLXN0YXRpYyB1aW50MzJfdCBp c2FfcGFnZV9kZXNjc1szODQgLyA0XTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlzYV9wYWdlX2Rl c2NzWzM4NCAvIDRdOwogc3RhdGljIHVpbnQ4X3Qgc21tX2VuYWJsZWQ7CiAKIHN0YXRpYyB2b2lk IHVwZGF0ZV9wYW0oUENJRGV2aWNlICpkLCB1aW50MzJfdCBzdGFydCwgdWludDMyX3QgZW5kLCBp bnQgcikK ------=_Part_5241_1476623.1191071069672--