From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LVuNB-0001Ue-A7 for qemu-devel@nongnu.org; Sat, 07 Feb 2009 16:05:57 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LVuNA-0001T8-GH for qemu-devel@nongnu.org; Sat, 07 Feb 2009 16:05:57 -0500 Received: from [199.232.76.173] (port=42691 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LVuNA-0001Sw-Ae for qemu-devel@nongnu.org; Sat, 07 Feb 2009 16:05:56 -0500 Received: from mail-fx0-f20.google.com ([209.85.220.20]:33177) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LVuN9-0007we-0R for qemu-devel@nongnu.org; Sat, 07 Feb 2009 16:05:56 -0500 Received: by fxm13 with SMTP id 13so1973120fxm.10 for ; Sat, 07 Feb 2009 13:05:53 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: <20090207141803.GA6533@volta.aurel32.net> Date: Sat, 7 Feb 2009 23:05:52 +0200 Message-ID: Subject: Re: [OpenBIOS] [Qemu-devel] [PATCH, RFC] Mac99 (CHRP?) support From: Blue Swirl Content-Type: multipart/mixed; boundary=001636c5b584b86fc804625a80bd Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: The OpenBIOS Mailinglist Cc: qemu-devel@nongnu.org --001636c5b584b86fc804625a80bd Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 2/7/09, Blue Swirl wrote: > On 2/7/09, Aurelien Jarno wrote: > > On Sat, Feb 07, 2009 at 01:38:58PM +0200, Blue Swirl wrote: > > > Hi, > > > > Hi! > > > > > This set of patches adds basic support for Mac99 Qemu machine, > > > > > > As you ask the question in the subject, this machine is a NewWorld > > machine, and not a CHRP one. I think we don't really want to provide = a > > CHRP emulated machine, so the best is probably to rename ppc_chrp.c i= nto > > ppc_newworld.c. > > > True. I think RS6000 series were closest to CHRP, not iMac. > > The rename does not affect OHW status, so it could be done immediately. > > > > > provided by ppc_chrp.c. I've used the device tree of iMac DV ('99) = as > > > reference: > > > http://penguinppc.org/historical/dev-trees-html/imac-dv-99.html > > > > > > The patches changes the machine to use OpenBIOS instead of OHW and > > > otherwise breaks OHW assumptions. On OpenBIOS side there are still > > > some missing bits. > > > > > > Comments welcome. > > > > > > Great work. > > > > I gave a quick look at the patches, they looks fine. However I still > > experience some problem with the PowerMac IDE emulation, especially w= ith > > recent kernels, so until it is fixed (Laurent is working on that) I > > think we should keep the CMD646 as a default. > > > OK=C2=B8 I'll change that part and send new patches. This new set of patches perform the rename (to be replaced with SVN operation). CMD646 is used instead of pmac ide. Debian 4.0 R6 cd image boots, installer starts but keyboard does not work (probably because OpenBIOS doesn't advertise OpenPic). The 6th patch is not wanted, it just switches CMD646 back to pmac, but it's there if someone wants to play. Should these be committed or do we want to wait for more OpenBIOS updates? At least the OpenBIOS patch, patch #0 and patch #5 are harmless. --001636c5b584b86fc804625a80bd Content-Type: plain/text; name="o_newworld_support.diff" Content-Disposition: attachment; filename="o_newworld_support.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqwrsgt9 SW5kZXg6IG9wZW5iaW9zLXF1aWx0L2FyY2gvcHBjL3FlbXUvbGRzY3JpcHQKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gb3BlbmJpb3MtcXVpbHQub3JpZy9hcmNoL3BwYy9xZW11L2xkc2NyaXB0CTIwMDktMDItMDcg MTE6MjU6MDUuMDAwMDAwMDAwICswMDAwCisrKyBvcGVuYmlvcy1xdWlsdC9hcmNoL3BwYy9xZW11 L2xkc2NyaXB0CTIwMDktMDItMDcgMTE6MjU6MjcuMDAwMDAwMDAwICswMDAwCkBAIC03LDcgKzcs NyBAQAogCiAvKiBBcyBOVlJBTSBpcyBhdCAweGZmZjA0MDAwLCB0aGUgLnRleHQgbmVlZHMgdG8g YmUgYWZ0ZXIgdGhhdAogICovCi1URVhUX0FERFIgPSAweGZmZjA2MDAwOworVEVYVF9BRERSID0g MHhmZmYwODAwMDsKIAogLyogSGFyZCByZXNldCB2ZWN0b3IgYWRkcmVzcwogICovCkluZGV4OiBv cGVuYmlvcy1xdWlsdC9kcml2ZXJzL21hY2lvLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gb3BlbmJpb3MtcXVp bHQub3JpZy9kcml2ZXJzL21hY2lvLmMJMjAwOS0wMi0wNyAxMToyNTowNi4wMDAwMDAwMDAgKzAw MDAKKysrIG9wZW5iaW9zLXF1aWx0L2RyaXZlcnMvbWFjaW8uYwkyMDA5LTAyLTA3IDExOjI1OjI3 LjAwMDAwMDAwMCArMDAwMApAQCAtMTksMTUgKzE5LDIzIEBACiAjaW5jbHVkZSAiY3VkYS5oIgog I2luY2x1ZGUgImVzY2MuaCIKIAotI2RlZmluZSBJT19OVlJBTV9TSVpFICAgMHgwMDAyMDAwMAot I2RlZmluZSBJT19OVlJBTV9PRkZTRVQgMHgwMDA2MDAwMAorI2RlZmluZSBPV19JT19OVlJBTV9T SVpFICAgMHgwMDAyMDAwMAorI2RlZmluZSBPV19JT19OVlJBTV9PRkZTRVQgMHgwMDA2MDAwMAor I2RlZmluZSBPV19JT19OVlJBTV9TSElGVCAgNAorCisjZGVmaW5lIE5XX0lPX05WUkFNX1NJWkUg ICAweDAwMDA0MDAwCisjZGVmaW5lIE5XX0lPX05WUkFNX09GRlNFVCAweGZmZjA0MDAwCisjZGVm aW5lIE5XX0lPX05WUkFNX1NISUZUICAxCiAKIHN0YXRpYyBjaGFyICpudnJhbTsKIAogaW50CiBh cmNoX252cmFtX3NpemUoIHZvaWQgKQogewotCXJldHVybiBJT19OVlJBTV9TSVpFPj40OworICAg ICAgICBpZiAoaXNfb2xkd29ybGQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gT1dfSU9fTlZS QU1fU0laRSA+PiBPV19JT19OVlJBTV9TSElGVDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg ICAgIHJldHVybiBOV19JT19OVlJBTV9TSVpFID4+IE5XX0lPX05WUkFNX1NISUZUOwogfQogCiB2 b2lkIG1hY2lvX252cmFtX2luaXQoY29uc3QgY2hhciAqcGF0aCwgdWludDMyX3QgYWRkcikKQEAg LTM2LDE0ICs0NCwyOCBAQAogCXBoYW5kbGVfdCBkbm9kZTsKIAlpbnQgcHJvcHNbMl07CiAJY2hh ciBidWZbNjRdOworICAgICAgICB1bnNpZ25lZCBsb25nIG52cmFtX3NpemUsIG52cmFtX29mZnNl dDsKIAotCW52cmFtID0gKGNoYXIqKWFkZHIgKyBJT19OVlJBTV9PRkZTRVQ7CisgICAgICAgIGlm IChpc19vbGR3b3JsZCgpKSB7CisgICAgICAgICAgICAgICAgbnZyYW1fb2Zmc2V0ID0gT1dfSU9f TlZSQU1fT0ZGU0VUOworICAgICAgICAgICAgICAgIG52cmFtX3NpemUgPSBPV19JT19OVlJBTV9T SVpFOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG52cmFtX29mZnNldCA9IE5X X0lPX05WUkFNX09GRlNFVDsKKyAgICAgICAgICAgICAgICBudnJhbV9zaXplID0gTldfSU9fTlZS QU1fU0laRTsKKyAgICAgICAgICAgICAgICBwdXNoX3N0cigiLyIpOworICAgICAgICAgICAgICAg IGZ3b3JkKCJmaW5kLWRldmljZSIpOworICAgICAgICAgICAgICAgIGZ3b3JkKCJuZXctZGV2aWNl Iik7CisgICAgICAgICAgICAgICAgcHVzaF9zdHIoIm52cmFtIik7CisgICAgICAgICAgICAgICAg ZndvcmQoImRldmljZS1uYW1lIik7CisgICAgICAgICAgICAgICAgZndvcmQoImZpbmlzaC1kZXZp Y2UiKTsKKyAgICAgICAgfQorCW52cmFtID0gKGNoYXIqKWFkZHIgKyBudnJhbV9vZmZzZXQ7CiAg ICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlcy9udnJhbSIsIHBhdGgpOwogCW52 cmFtX2luaXQoYnVmKTsKIAlkbm9kZSA9IGZpbmRfZGV2KGJ1Zik7CiAJc2V0X2ludF9wcm9wZXJ0 eShkbm9kZSwgIiNieXRlcyIsIGFyY2hfbnZyYW1fc2l6ZSgpICk7Ci0JcHJvcHNbMF0gPSBfX2Nw dV90b19iZTMyKElPX05WUkFNX09GRlNFVCk7Ci0JcHJvcHNbMV0gPSBfX2NwdV90b19iZTMyKElP X05WUkFNX1NJWkUpOworCXByb3BzWzBdID0gX19jcHVfdG9fYmUzMihudnJhbV9vZmZzZXQpOwor CXByb3BzWzFdID0gX19jcHVfdG9fYmUzMihudnJhbV9zaXplKTsKIAlzZXRfcHJvcGVydHkoZG5v ZGUsICJyZWciLCAoY2hhciAqKSZwcm9wcywgc2l6ZW9mKHByb3BzKSk7CiAJc2V0X3Byb3BlcnR5 KGRub2RlLCAiZGV2aWNlX3R5cGUiLCAibnZyYW0iLCA2KTsKIApAQCAtODEsOCArMTAzLDE1IEBA CiBhcmNoX252cmFtX3B1dCggY2hhciAqYnVmICkKIHsKIAlpbnQgaTsKKyAgICAgICAgdW5zaWdu ZWQgaW50IGl0X3NoaWZ0OworCisgICAgICAgIGlmIChpc19vbGR3b3JsZCgpKQorICAgICAgICAg ICAgICAgIGl0X3NoaWZ0ID0gT1dfSU9fTlZSQU1fU0hJRlQ7CisgICAgICAgIGVsc2UKKyAgICAg ICAgICAgICAgICBpdF9zaGlmdCA9IE5XX0lPX05WUkFNX1NISUZUOworCiAJZm9yIChpPTA7IGk8 IGFyY2hfbnZyYW1fc2l6ZSgpIDsgaSsrKQotCQludnJhbVtpPDw0XT1idWZbaV07CisJCW52cmFt W2kgPDwgaXRfc2hpZnRdID0gYnVmW2ldOwogI2lmZGVmIERVTVBfTlZSQU0KIAlwcmludGsoIm5l dyBudnJhbTpcbiIpOwogCWR1bXBfbnZyYW0oKTsKQEAgLTkzLDggKzEyMiwxNSBAQAogYXJjaF9u dnJhbV9nZXQoIGNoYXIgKmJ1ZiApCiB7CiAJaW50IGk7CisgICAgICAgIHVuc2lnbmVkIGludCBp dF9zaGlmdDsKKworICAgICAgICBpZiAoaXNfb2xkd29ybGQoKSkKKyAgICAgICAgICAgICAgICBp dF9zaGlmdCA9IE9XX0lPX05WUkFNX1NISUZUOworICAgICAgICBlbHNlCisgICAgICAgICAgICAg ICAgaXRfc2hpZnQgPSBOV19JT19OVlJBTV9TSElGVDsKKwogCWZvciAoaT0wOyBpPCBhcmNoX252 cmFtX3NpemUoKTsgaSsrKQotCQlidWZbaV09bnZyYW1baTw8NF07CisgICAgICAgICAgICAgICAg YnVmW2ldID0gbnZyYW1baSA8PCBpdF9zaGlmdF07CiAKICNpZmRlZiBEVU1QX05WUkFNCiAJcHJp bnRrKCJjdXJyZW50IG52cmFtOlxuIik7CkBAIC0xMDMsNyArMTM5LDcgQEAKIH0KIAogdm9pZAot b2JfbWFjaW9faW5pdChjb25zdCBjaGFyICpwYXRoLCB1aW50MzJfdCBhZGRyKQorb2JfbWFjaW9f aGVhdGhyb3dfaW5pdChjb25zdCBjaGFyICpwYXRoLCB1aW50MzJfdCBhZGRyKQogewogICAgICAg ICBwaGFuZGxlX3QgYWxpYXNlczsKIApAQCAtMTE1LDMgKzE1MSwxOCBAQAogICAgICAgICBlc2Nj X2luaXQocGF0aCwgYWRkcik7CiAJbWFjaW9faWRlX2luaXQocGF0aCwgYWRkciwgMSk7CiB9CisK K3ZvaWQKK29iX21hY2lvX2tleWxhcmdvX2luaXQoY29uc3QgY2hhciAqcGF0aCwgdWludDMyX3Qg YWRkcikKK3sKKyAgICAgICAgcGhhbmRsZV90IGFsaWFzZXM7CisKKyAgICAgICAgYWxpYXNlcyA9 IGZpbmRfZGV2KCIvYWxpYXNlcyIpOworICAgICAgICBzZXRfcHJvcGVydHkoYWxpYXNlcywgIm1h Yy1pbyIsIHBhdGgsIHN0cmxlbihwYXRoKSArIDEpOworCisgICAgICAgIGN1ZGFfaW5pdChwYXRo LCBhZGRyKTsKKyAgICAgICAgLyogVGhlIE5ld1dvcmxkIE5WUkFNIGlzIG5vdCBsb2NhdGVkIGlu IHRoZSBNYWNJTyBkZXZpY2UgKi8KKyAgICAgICAgbWFjaW9fbnZyYW1faW5pdCgiIiwgMCk7Cisg ICAgICAgIGVzY2NfaW5pdChwYXRoLCBhZGRyKTsKKyAgICAgICAgbWFjaW9faWRlX2luaXQocGF0 aCwgYWRkciwgMyk7Cit9CkluZGV4OiBvcGVuYmlvcy1xdWlsdC9kcml2ZXJzL21hY2lvLmgKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gb3BlbmJpb3MtcXVpbHQub3JpZy9kcml2ZXJzL21hY2lvLmgJMjAwOS0wMi0w NyAxMToyNTowNi4wMDAwMDAwMDAgKzAwMDAKKysrIG9wZW5iaW9zLXF1aWx0L2RyaXZlcnMvbWFj aW8uaAkyMDA5LTAyLTA3IDExOjI1OjI3LjAwMDAwMDAwMCArMDAwMApAQCAtMSw0ICsxLDUgQEAK IGV4dGVybiBwaGFuZGxlX3QgcGljX2hhbmRsZTsKIAotdm9pZCBvYl9tYWNpb19pbml0KGNvbnN0 IGNoYXIgKnBhdGgsIHVpbnQzMl90IGFkZHIpOwordm9pZCBvYl9tYWNpb19oZWF0aHJvd19pbml0 KGNvbnN0IGNoYXIgKnBhdGgsIHVpbnQzMl90IGFkZHIpOwordm9pZCBvYl9tYWNpb19rZXlsYXJn b19pbml0KGNvbnN0IGNoYXIgKnBhdGgsIHVpbnQzMl90IGFkZHIpOwogdm9pZCBtYWNpb19udnJh bV9pbml0KGNvbnN0IGNoYXIgKnBhdGgsIHVpbnQzMl90IGFkZHIpOwpJbmRleDogb3BlbmJpb3Mt cXVpbHQvZHJpdmVycy9wY2kuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBvcGVuYmlvcy1xdWlsdC5vcmlnL2Ry aXZlcnMvcGNpLmMJMjAwOS0wMi0wNyAxMToyNTowNi4wMDAwMDAwMDAgKzAwMDAKKysrIG9wZW5i aW9zLXF1aWx0L2RyaXZlcnMvcGNpLmMJMjAwOS0wMi0wNyAxMToyNToyNy4wMDAwMDAwMDAgKzAw MDAKQEAgLTQxOSwxNiArNDE5LDI2IEBACiAJc2V0X3Byb3BlcnR5KGRldiwgInJhbmdlcyIsIChj aGFyICopcHJvcHMsIG5jZWxscyAqIHNpemVvZihjZWxsKSk7CiB9CiAKLWludCBtYWNpb19jb25m aWdfY2IgKGNvbnN0IHBjaV9jb25maWdfdCAqY29uZmlnKQoraW50IG1hY2lvX2hlYXRocm93X2Nv bmZpZ19jYiAoY29uc3QgcGNpX2NvbmZpZ190ICpjb25maWcpCiB7CiAJcGNpX3NldF9yYW5nZXMo Y29uZmlnKTsKIAogI2lmZGVmIENPTkZJR19EUklWRVJfTUFDSU8KLQlvYl9tYWNpb19pbml0KGNv bmZpZy0+cGF0aCwgY29uZmlnLT5hc3NpZ25lZFswXSAmIH4weDAwMDAwMDBGKTsKKyAgICAgICAg b2JfbWFjaW9faGVhdGhyb3dfaW5pdChjb25maWctPnBhdGgsIGNvbmZpZy0+YXNzaWduZWRbMF0g JiB+MHgwMDAwMDAwRik7CiAjZW5kaWYKIAlyZXR1cm4gMDsKIH0KIAoraW50IG1hY2lvX2tleWxh cmdvX2NvbmZpZ19jYiAoY29uc3QgcGNpX2NvbmZpZ190ICpjb25maWcpCit7CisgICAgICAgIHBj aV9zZXRfcmFuZ2VzKGNvbmZpZyk7CisKKyNpZmRlZiBDT05GSUdfRFJJVkVSX01BQ0lPCisgICAg ICAgIG9iX21hY2lvX2tleWxhcmdvX2luaXQoY29uZmlnLT5wYXRoLCBjb25maWctPmFzc2lnbmVk WzBdICYgfjB4MDAwMDAwMEYpOworI2VuZGlmCisgICAgICAgIHJldHVybiAwOworfQorCiBpbnQg dmdhX2NvbmZpZ19jYiAoY29uc3QgcGNpX2NvbmZpZ190ICpjb25maWcpCiB7CiAJaWYgKGNvbmZp Zy0+YXNzaWduZWRbMF0gIT0gMHgwMDAwMDAwMCkKSW5kZXg6IG9wZW5iaW9zLXF1aWx0L2RyaXZl cnMvcGNpX2RhdGFiYXNlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gb3BlbmJpb3MtcXVpbHQub3JpZy9kcml2 ZXJzL3BjaV9kYXRhYmFzZS5jCTIwMDktMDItMDcgMTE6MjU6MDYuMDAwMDAwMDAwICswMDAwCisr KyBvcGVuYmlvcy1xdWlsdC9kcml2ZXJzL3BjaV9kYXRhYmFzZS5jCTIwMDktMDItMDcgMTE6MjU6 MjcuMDAwMDAwMDAwICswMDAwCkBAIC0xMDcxLDIxICsxMDcxLDIxIEBACiAgICAgICAgIFBDSV9W RU5ET1JfSURfQVBQTEUsIFBDSV9ERVZJQ0VfSURfQVBQTEVfMzQzUzEyMDEsCiAgICAgICAgICJt YWMtaW8iLCAibWFjLWlvIiwgIkFBUEwsMzQzUzEyMDEiLCAiaGVhdGhyb3dcMCIsCiAgICAgICAg IDEsIDEsIDEsCi0gICAgICAgICZtYWNpb19jb25maWdfY2IsIE5VTEwsCisgICAgICAgICZtYWNp b19oZWF0aHJvd19jb25maWdfY2IsIE5VTEwsCiAgICAgfSwKICAgICAvKiBQYWRkaW5ndG9uIE1h YyBJL08gKi8KICAgICB7CiAgICAgICAgIFBDSV9WRU5ET1JfSURfQVBQTEUsIFBDSV9ERVZJQ0Vf SURfQVBQTEVfMzQzUzEyMTEsCiAgICAgICAgICJtYWMtaW8iLCAibWFjLWlvIiwgIkFBUEwsMzQz UzEyMTEiLCAicGFkZGluZ3RvblwwaGVhdGhyb3dcMCIsCiAgICAgICAgIDEsIDEsIDEsCi0gICAg ICAgICZtYWNpb19jb25maWdfY2IsIE5VTEwsCisgICAgICAgICZtYWNpb19oZWF0aHJvd19jb25m aWdfY2IsIE5VTEwsCiAgICAgfSwKICAgICAvKiBLZXlMYXJnbyBNYWMgSS9PICovCiAgICAgewog ICAgICAgICBQQ0lfVkVORE9SX0lEX0FQUExFLCBQQ0lfREVWSUNFX0lEX0FQUExFX1VOSV9OX0tF WUwsCiAgICAgICAgICJtYWMtaW8iLCAibWFjLWlvIiwgIkFBUEwsS2V5bGFyZ28iLCAiS2V5bGFy Z29cMCIsCiAgICAgICAgIDEsIDEsIDIsCi0gICAgICAgICZtYWNpb19jb25maWdfY2IsIE5VTEws CisgICAgICAgICZtYWNpb19rZXlsYXJnb19jb25maWdfY2IsIE5VTEwsCiAgICAgfSwKICAgICB7 CiAgICAgICAgIDB4RkZGRiwgMHhGRkZGLApJbmRleDogb3BlbmJpb3MtcXVpbHQvZHJpdmVycy9w Y2lfZGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBvcGVuYmlvcy1xdWlsdC5vcmlnL2RyaXZlcnMv cGNpX2RhdGFiYXNlLmgJMjAwOS0wMi0wNyAxMToyNTowNi4wMDAwMDAwMDAgKzAwMDAKKysrIG9w ZW5iaW9zLXF1aWx0L2RyaXZlcnMvcGNpX2RhdGFiYXNlLmgJMjAwOS0wMi0wNyAxMToyNToyNy4w MDAwMDAwMDAgKzAwMDAKQEAgLTI3LDcgKzI3LDggQEAKIAogZXh0ZXJuIGludCBpZGVfY29uZmln X2NiMihjb25zdCBwY2lfY29uZmlnX3QgKmNvbmZpZyk7CiBleHRlcm4gaW50IGV0aF9jb25maWdf Y2IoY29uc3QgcGNpX2NvbmZpZ190ICpjb25maWcpOwotZXh0ZXJuIGludCBtYWNpb19jb25maWdf Y2IoY29uc3QgcGNpX2NvbmZpZ190ICpjb25maWcpOworZXh0ZXJuIGludCBtYWNpb19oZWF0aHJv d19jb25maWdfY2IoY29uc3QgcGNpX2NvbmZpZ190ICpjb25maWcpOworZXh0ZXJuIGludCBtYWNp b19rZXlsYXJnb19jb25maWdfY2IoY29uc3QgcGNpX2NvbmZpZ190ICpjb25maWcpOwogZXh0ZXJu IGludCB2Z2FfY29uZmlnX2NiKGNvbnN0IHBjaV9jb25maWdfdCAqY29uZmlnKTsKIGV4dGVybiBp bnQgaG9zdF9jb25maWdfY2IoY29uc3QgcGNpX2NvbmZpZ190ICpjb25maWcpOwogZXh0ZXJuIGlu dCBicmlkZ2VfY29uZmlnX2NiKGNvbnN0IHBjaV9jb25maWdfdCAqY29uZmlnKTsK --001636c5b584b86fc804625a80bd Content-Type: plain/text; name="q_0_rename_chrp_newworld.diff" Content-Disposition: attachment; filename="q_0_rename_chrp_newworld.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqwrtcfx SW5kZXg6IHFlbXUvTWFrZWZpbGUudGFyZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9NYWtl ZmlsZS50YXJnZXQJMjAwOS0wMi0wNyAyMDo0NDowMi4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUv TWFrZWZpbGUudGFyZ2V0CTIwMDktMDItMDcgMjA6NDQ6MjEuMDAwMDAwMDAwICswMDAwCkBAIC01 OTQsNyArNTk0LDcgQEAKICMgT2xkV29ybGQgUG93ZXJNYWMKIE9CSlMrPSBoZWF0aHJvd19waWMu byBncmFja2xlX3BjaS5vIHBwY19vbGR3b3JsZC5vCiAjIE5ld1dvcmxkIFBvd2VyTWFjCi1PQkpT Kz0gdW5pbl9wY2kubyBwcGNfY2hycC5vCitPQkpTKz0gdW5pbl9wY2kubyBwcGNfbmV3d29ybGQu bwogIyBQb3dlclBDIDR4eCBib2FyZHMKIE9CSlMrPSBwZmxhc2hfY2ZpMDIubyBwcGM0eHhfZGV2 cy5vIHBwYzR4eF9wY2kubyBwcGM0MDVfdWMubyBwcGM0MDVfYm9hcmRzLm8KIE9CSlMrPSBwcGM0 NDAubyBwcGM0NDBfYmFtYm9vLm8KSW5kZXg6IHFlbXUvaHcvcHBjX2NocnAuYwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBxZW11Lm9yaWcvaHcvcHBjX2NocnAuYwkyMDA5LTAyLTA3IDIwOjQzOjQyLjAwMDAwMDAw MCArMDAwMAorKysgL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw CkBAIC0xLDM2MiArMCwwIEBACi0vKgotICogUUVNVSBQb3dlclBDIENIUlAgKGN1cnJlbnRseSBO ZXdXb3JsZCBQb3dlck1hYykgaGFyZHdhcmUgU3lzdGVtIEVtdWxhdG9yCi0gKgotICogQ29weXJp Z2h0IChjKSAyMDA0LTIwMDcgRmFicmljZSBCZWxsYXJkCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcg Sm9jZWx5biBNYXllcgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLSAqIG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LCB0byBkZWFsCi0gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCi0gKiB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0g KiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUgU29mdHdhcmUgaXMKLSAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSAqIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotICoKLSAqIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBU SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLSAqIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4KLSAqIFRIRSBTT0ZUV0FSRS4KLSAqLwotI2luY2x1ZGUgImh3LmgiCi0jaW5jbHVkZSAi cHBjLmgiCi0jaW5jbHVkZSAicHBjX21hYy5oIgotI2luY2x1ZGUgIm1hY19kYmRtYS5oIgotI2lu Y2x1ZGUgIm52cmFtLmgiCi0jaW5jbHVkZSAicGMuaCIKLSNpbmNsdWRlICJwY2kuaCIKLSNpbmNs dWRlICJuZXQuaCIKLSNpbmNsdWRlICJzeXNlbXUuaCIKLSNpbmNsdWRlICJib2FyZHMuaCIKLSNp bmNsdWRlICJlc2NjLmgiCi0KLSNkZWZpbmUgTUFYX0lERV9CVVMgMgotI2RlZmluZSBWR0FfQklP U19TSVpFIDY1NTM2Ci0KLS8qIGRlYnVnIFVuaU5vcnRoICovCi0vLyNkZWZpbmUgREVCVUdfVU5J TgotCi0jaWZkZWYgREVCVUdfVU5JTgotI2RlZmluZSBVTklOX0RQUklOVEYoZm10LCBhcmdzLi4u KSBcCi1kbyB7IHByaW50ZigiVU5JTjogIiBmbXQgLCAjI2FyZ3MpOyB9IHdoaWxlICgwKQotI2Vs c2UKLSNkZWZpbmUgVU5JTl9EUFJJTlRGKGZtdCwgYXJncy4uLikKLSNlbmRpZgotCi0vKiBVbmlO IGRldmljZSAqLwotc3RhdGljIHZvaWQgdW5pbl93cml0ZWwgKHZvaWQgKm9wYXF1ZSwgdGFyZ2V0 X3BoeXNfYWRkcl90IGFkZHIsIHVpbnQzMl90IHZhbHVlKQotewotICAgIFVOSU5fRFBSSU5URigi d3JpdGVsIGFkZHIgIiBUQVJHRVRfRk1UX3BseCAiIHZhbCAleFxuIiwgYWRkciwgdmFsdWUpOwot fQotCi1zdGF0aWMgdWludDMyX3QgdW5pbl9yZWFkbCAodm9pZCAqb3BhcXVlLCB0YXJnZXRfcGh5 c19hZGRyX3QgYWRkcikKLXsKLSAgICB1aW50MzJfdCB2YWx1ZTsKLQotICAgIHZhbHVlID0gMDsK LSAgICBVTklOX0RQUklOVEYoInJlYWRsIGFkZHIgIiBUQVJHRVRfRk1UX3BseCAiIHZhbCAleFxu IiwgYWRkciwgdmFsdWUpOwotCi0gICAgcmV0dXJuIHZhbHVlOwotfQotCi1zdGF0aWMgQ1BVV3Jp dGVNZW1vcnlGdW5jICp1bmluX3dyaXRlW10gPSB7Ci0gICAgJnVuaW5fd3JpdGVsLAotICAgICZ1 bmluX3dyaXRlbCwKLSAgICAmdW5pbl93cml0ZWwsCi19OwotCi1zdGF0aWMgQ1BVUmVhZE1lbW9y eUZ1bmMgKnVuaW5fcmVhZFtdID0gewotICAgICZ1bmluX3JlYWRsLAotICAgICZ1bmluX3JlYWRs LAotICAgICZ1bmluX3JlYWRsLAotfTsKLQotLyogUG93ZXJQQyBNYWM5OSBoYXJkd2FyZSBpbml0 aWFsaXNhdGlvbiAqLwotc3RhdGljIHZvaWQgcHBjX2NvcmU5OV9pbml0IChyYW1fYWRkcl90IHJh bV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpib290X2RldmljZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpjcHVfbW9kZWwpCi17Ci0gICAgQ1BVU3RhdGUgKmVudiA9IE5VTEwsICpl bnZzW01BWF9DUFVTXTsKLSAgICBjaGFyIGJ1ZlsxMDI0XTsKLSAgICBxZW11X2lycSAqcGljLCAq Km9wZW5waWNfaXJxczsKLSAgICBpbnQgdW5pbl9tZW1vcnk7Ci0gICAgaW50IGxpbnV4X2Jvb3Qs IGk7Ci0gICAgcmFtX2FkZHJfdCByYW1fb2Zmc2V0LCB2Z2FfcmFtX29mZnNldCwgYmlvc19vZmZz ZXQsIHZnYV9iaW9zX29mZnNldDsKLSAgICB1aW50MzJfdCBrZXJuZWxfYmFzZSwga2VybmVsX3Np emUsIGluaXRyZF9iYXNlLCBpbml0cmRfc2l6ZTsKLSAgICBQQ0lCdXMgKnBjaV9idXM7Ci0gICAg bnZyYW1fdCBudnJhbTsKLSNpZiAwCi0gICAgTWFjSU9OVlJBTVN0YXRlICpudnI7Ci0gICAgaW50 IG52cmFtX21lbV9pbmRleDsKLSNlbmRpZgotICAgIG00OHQ1OV90ICptNDh0NTk7Ci0gICAgaW50 IHZnYV9iaW9zX3NpemUsIGJpb3Nfc2l6ZTsKLSAgICBxZW11X2lycSAqZHVtbXlfaXJxOwotICAg IGludCBwaWNfbWVtX2luZGV4LCBkYmRtYV9tZW1faW5kZXgsIGN1ZGFfbWVtX2luZGV4LCBlc2Nj X21lbV9pbmRleDsKLSAgICBpbnQgaWRlX21lbV9pbmRleFsyXTsKLSAgICBpbnQgcHBjX2Jvb3Rf ZGV2aWNlOwotICAgIGludCBpbmRleDsKLSAgICBCbG9ja0RyaXZlclN0YXRlICpoZFtNQVhfSURF X0JVUyAqIE1BWF9JREVfREVWU107Ci0gICAgdm9pZCAqZGJkbWE7Ci0KLSAgICBsaW51eF9ib290 ID0gKGtlcm5lbF9maWxlbmFtZSAhPSBOVUxMKTsKLQotICAgIC8qIGluaXQgQ1BVcyAqLwotICAg IGlmIChjcHVfbW9kZWwgPT0gTlVMTCkKLSAgICAgICAgY3B1X21vZGVsID0gImRlZmF1bHQiOwot ICAgIGZvciAoaSA9IDA7IGkgPCBzbXBfY3B1czsgaSsrKSB7Ci0gICAgICAgIGVudiA9IGNwdV9p bml0KGNwdV9tb2RlbCk7Ci0gICAgICAgIGlmICghZW52KSB7Ci0gICAgICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIlVuYWJsZSB0byBmaW5kIFBvd2VyUEMgQ1BVIGRlZmluaXRpb25cbiIpOwotICAg ICAgICAgICAgZXhpdCgxKTsKLSAgICAgICAgfQotICAgICAgICAvKiBTZXQgdGltZS1iYXNlIGZy ZXF1ZW5jeSB0byAxMDAgTWh6ICovCi0gICAgICAgIGNwdV9wcGNfdGJfaW5pdChlbnYsIDEwMFVM ICogMTAwMFVMICogMTAwMFVMKTsKLSNpZiAwCi0gICAgICAgIGVudi0+b3NpX2NhbGwgPSB2Z2Ff b3NpX2NhbGw7Ci0jZW5kaWYKLSAgICAgICAgcWVtdV9yZWdpc3Rlcl9yZXNldCgmY3B1X3BwY19y ZXNldCwgZW52KTsKLSAgICAgICAgZW52c1tpXSA9IGVudjsKLSAgICB9Ci0gICAgaWYgKGVudi0+ bmlwIDwgMHhGRkY4MDAwMCkgewotICAgICAgICAvKiBTcGVjaWFsIHRlc3QgZm9yIFBvd2VyUEMg NjAxOgotICAgICAgICAgKiB0aGUgYm9vdCB2ZWN0b3IgaXMgYXQgMHhGRkYwMDEwMCwgdGhlbiB3 ZSBuZWVkIGEgMU1CIEJJT1MuCi0gICAgICAgICAqIEJ1dCB0aGUgTlZSQU0gaXMgbG9jYXRlZCBh dCAweEZGRjA0MDAwLi4uCi0gICAgICAgICAqLwotICAgICAgICBjcHVfYWJvcnQoZW52LCAiTWFj OTkgaGFyZHdhcmUgY2FuIG5vdCBoYW5kbGUgMSBNQiBCSU9TXG4iKTsKLSAgICB9Ci0KLSAgICAv KiBhbGxvY2F0ZSBSQU0gKi8KLSAgICByYW1fb2Zmc2V0ID0gcWVtdV9yYW1fYWxsb2MocmFtX3Np emUpOwotICAgIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkoMCwgcmFtX3NpemUsIHJhbV9v ZmZzZXQpOwotCi0gICAgLyogYWxsb2NhdGUgVkdBIFJBTSAqLwotICAgIHZnYV9yYW1fb2Zmc2V0 ID0gcWVtdV9yYW1fYWxsb2ModmdhX3JhbV9zaXplKTsKLQotICAgIC8qIGFsbG9jYXRlIGFuZCBs b2FkIEJJT1MgKi8KLSAgICBiaW9zX29mZnNldCA9IHFlbXVfcmFtX2FsbG9jKEJJT1NfU0laRSk7 Ci0gICAgaWYgKGJpb3NfbmFtZSA9PSBOVUxMKQotICAgICAgICBiaW9zX25hbWUgPSBCSU9TX0ZJ TEVOQU1FOwotICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlcy8lcyIsIGJpb3NfZGly LCBiaW9zX25hbWUpOwotICAgIGJpb3Nfc2l6ZSA9IGxvYWRfaW1hZ2UoYnVmLCBwaHlzX3JhbV9i YXNlICsgYmlvc19vZmZzZXQpOwotICAgIGlmIChiaW9zX3NpemUgPCAwIHx8IGJpb3Nfc2l6ZSA+ IEJJT1NfU0laRSkgewotICAgICAgICBjcHVfYWJvcnQoZW52LCAicWVtdTogY291bGQgbm90IGxv YWQgUG93ZXJQQyBiaW9zICclcydcbiIsIGJ1Zik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQot ICAgIGJpb3Nfc2l6ZSA9IChiaW9zX3NpemUgKyAweGZmZikgJiB+MHhmZmY7Ci0gICAgaWYgKGJp b3Nfc2l6ZSA+IDB4MDAwODAwMDApIHsKLSAgICAgICAgLyogQXMgdGhlIE5WUkFNIGlzIGxvY2F0 ZWQgYXQgMHhGRkYwNDAwMCwgd2UgY2Fubm90IHVzZSAxIE1CIEJJT1NlcyAqLwotICAgICAgICBj cHVfYWJvcnQoZW52LCAiTWFjOTkgaGFyZHdhcmUgY2FuIG5vdCBoYW5kbGUgMSBNQiBCSU9TXG4i KTsKLSAgICB9Ci0gICAgY3B1X3JlZ2lzdGVyX3BoeXNpY2FsX21lbW9yeSgodWludDMyX3QpKC1i aW9zX3NpemUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlvc19zaXplLCBi aW9zX29mZnNldCB8IElPX01FTV9ST00pOwotCi0gICAgLyogYWxsb2NhdGUgYW5kIGxvYWQgVkdB IEJJT1MgKi8KLSAgICB2Z2FfYmlvc19vZmZzZXQgPSBxZW11X3JhbV9hbGxvYyhWR0FfQklPU19T SVpFKTsKLSAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJXMvJXMiLCBiaW9zX2Rpciwg VkdBQklPU19GSUxFTkFNRSk7Ci0gICAgdmdhX2Jpb3Nfc2l6ZSA9IGxvYWRfaW1hZ2UoYnVmLCBw aHlzX3JhbV9iYXNlICsgdmdhX2Jpb3Nfb2Zmc2V0ICsgOCk7Ci0gICAgaWYgKHZnYV9iaW9zX3Np emUgPCAwKSB7Ci0gICAgICAgIC8qIGlmIG5vIGJpb3MgaXMgcHJlc2VudCwgd2UgY2FuIHN0aWxs IHdvcmsgKi8KLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJxZW11OiB3YXJuaW5nOiBjb3VsZCBu b3QgbG9hZCBWR0EgYmlvcyAnJXMnXG4iLCBidWYpOwotICAgICAgICB2Z2FfYmlvc19zaXplID0g MDsKLSAgICB9IGVsc2UgewotICAgICAgICAvKiBzZXQgYSBzcGVjaWZpYyBoZWFkZXIgKFhYWDog ZmluZCByZWFsIEFwcGxlIGZvcm1hdCBmb3IgTkRSVgotICAgICAgICAgICBkcml2ZXJzKSAqLwot ICAgICAgICBwaHlzX3JhbV9iYXNlW3ZnYV9iaW9zX29mZnNldF0gPSAnTic7Ci0gICAgICAgIHBo eXNfcmFtX2Jhc2VbdmdhX2Jpb3Nfb2Zmc2V0ICsgMV0gPSAnRCc7Ci0gICAgICAgIHBoeXNfcmFt X2Jhc2VbdmdhX2Jpb3Nfb2Zmc2V0ICsgMl0gPSAnUic7Ci0gICAgICAgIHBoeXNfcmFtX2Jhc2Vb dmdhX2Jpb3Nfb2Zmc2V0ICsgM10gPSAnVic7Ci0gICAgICAgIGNwdV90b19iZTMydygodWludDMy X3QgKikocGh5c19yYW1fYmFzZSArIHZnYV9iaW9zX29mZnNldCArIDQpLAotICAgICAgICAgICAg ICAgICAgICAgdmdhX2Jpb3Nfc2l6ZSk7Ci0gICAgICAgIHZnYV9iaW9zX3NpemUgKz0gODsKLSAg ICB9Ci0KLSAgICBpZiAobGludXhfYm9vdCkgewotICAgICAgICBrZXJuZWxfYmFzZSA9IEtFUk5F TF9MT0FEX0FERFI7Ci0gICAgICAgIC8qIG5vdyB3ZSBjYW4gbG9hZCB0aGUga2VybmVsICovCi0g ICAgICAgIGtlcm5lbF9zaXplID0gbG9hZF9pbWFnZShrZXJuZWxfZmlsZW5hbWUsIHBoeXNfcmFt X2Jhc2UgKyBrZXJuZWxfYmFzZSk7Ci0gICAgICAgIGlmIChrZXJuZWxfc2l6ZSA8IDApIHsKLSAg ICAgICAgICAgIGNwdV9hYm9ydChlbnYsICJxZW11OiBjb3VsZCBub3QgbG9hZCBrZXJuZWwgJyVz J1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICBrZXJuZWxfZmlsZW5hbWUpOwotICAgICAgICAg ICAgZXhpdCgxKTsKLSAgICAgICAgfQotICAgICAgICAvKiBsb2FkIGluaXRyZCAqLwotICAgICAg ICBpZiAoaW5pdHJkX2ZpbGVuYW1lKSB7Ci0gICAgICAgICAgICBpbml0cmRfYmFzZSA9IElOSVRS RF9MT0FEX0FERFI7Ci0gICAgICAgICAgICBpbml0cmRfc2l6ZSA9IGxvYWRfaW1hZ2UoaW5pdHJk X2ZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNfcmFt X2Jhc2UgKyBpbml0cmRfYmFzZSk7Ci0gICAgICAgICAgICBpZiAoaW5pdHJkX3NpemUgPCAwKSB7 Ci0gICAgICAgICAgICAgICAgY3B1X2Fib3J0KGVudiwgInFlbXU6IGNvdWxkIG5vdCBsb2FkIGlu aXRpYWwgcmFtIGRpc2sgJyVzJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdHJk X2ZpbGVuYW1lKTsKLSAgICAgICAgICAgICAgICBleGl0KDEpOwotICAgICAgICAgICAgfQotICAg ICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW5pdHJkX2Jhc2UgPSAwOwotICAgICAgICAgICAg aW5pdHJkX3NpemUgPSAwOwotICAgICAgICB9Ci0gICAgICAgIHBwY19ib290X2RldmljZSA9ICdt JzsKLSAgICB9IGVsc2UgewotICAgICAgICBrZXJuZWxfYmFzZSA9IDA7Ci0gICAgICAgIGtlcm5l bF9zaXplID0gMDsKLSAgICAgICAgaW5pdHJkX2Jhc2UgPSAwOwotICAgICAgICBpbml0cmRfc2l6 ZSA9IDA7Ci0gICAgICAgIHBwY19ib290X2RldmljZSA9ICdcMCc7Ci0gICAgICAgIC8qIFdlIGNv bnNpZGVyIHRoYXQgTmV3V29ybGQgUG93ZXJNYWMgbmV2ZXIgaGF2ZSBhbnkgZmxvcHB5IGRyaXZl Ci0gICAgICAgICAqIEZvciBub3csIE9IVyBjYW5ub3QgYm9vdCBmcm9tIHRoZSBuZXR3b3JrLgot ICAgICAgICAgKi8KLSAgICAgICAgZm9yIChpID0gMDsgYm9vdF9kZXZpY2VbaV0gIT0gJ1wwJzsg aSsrKSB7Ci0gICAgICAgICAgICBpZiAoYm9vdF9kZXZpY2VbaV0gPj0gJ2MnICYmIGJvb3RfZGV2 aWNlW2ldIDw9ICdmJykgewotICAgICAgICAgICAgICAgIHBwY19ib290X2RldmljZSA9IGJvb3Rf ZGV2aWNlW2ldOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg ICB9Ci0gICAgICAgIGlmIChwcGNfYm9vdF9kZXZpY2UgPT0gJ1wwJykgewotICAgICAgICAgICAg ZnByaW50ZihzdGRlcnIsICJObyB2YWxpZCBib290IGRldmljZSBmb3IgTWFjOTkgbWFjaGluZVxu Iik7Ci0gICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaXNhX21l bV9iYXNlID0gMHg4MDAwMDAwMDsKLQotICAgIC8qIFJlZ2lzdGVyIDggTUIgb2YgSVNBIElPIHNw YWNlICovCi0gICAgaXNhX21taW9faW5pdCgweGYyMDAwMDAwLCAweDAwODAwMDAwKTsKLQotICAg IC8qIFVuaU4gaW5pdCAqLwotICAgIHVuaW5fbWVtb3J5ID0gY3B1X3JlZ2lzdGVyX2lvX21lbW9y eSgwLCB1bmluX3JlYWQsIHVuaW5fd3JpdGUsIE5VTEwpOwotICAgIGNwdV9yZWdpc3Rlcl9waHlz aWNhbF9tZW1vcnkoMHhmODAwMDAwMCwgMHgwMDAwMTAwMCwgdW5pbl9tZW1vcnkpOwotCi0gICAg b3BlbnBpY19pcnFzID0gcWVtdV9tYWxsb2N6KHNtcF9jcHVzICogc2l6ZW9mKHFlbXVfaXJxICop KTsKLSAgICBvcGVucGljX2lycXNbMF0gPQotICAgICAgICBxZW11X21hbGxvY3ooc21wX2NwdXMg KiBzaXplb2YocWVtdV9pcnEpICogT1BFTlBJQ19PVVRQVVRfTkIpOwotICAgIGZvciAoaSA9IDA7 IGkgPCBzbXBfY3B1czsgaSsrKSB7Ci0gICAgICAgIC8qIE1hYzk5IElSUSBjb25uZWN0aW9uIGJl dHdlZW4gT3BlblBJQyBvdXRwdXRzIHBpbnMKLSAgICAgICAgICogYW5kIFBvd2VyUEMgaW5wdXQg cGlucwotICAgICAgICAgKi8KLSAgICAgICAgc3dpdGNoIChQUENfSU5QVVQoZW52KSkgewotICAg ICAgICBjYXNlIFBQQ19GTEFHU19JTlBVVF82eHg6Ci0gICAgICAgICAgICBvcGVucGljX2lycXNb aV0gPSBvcGVucGljX2lycXNbMF0gKyAoaSAqIE9QRU5QSUNfT1VUUFVUX05CKTsKLSAgICAgICAg ICAgIG9wZW5waWNfaXJxc1tpXVtPUEVOUElDX09VVFBVVF9JTlRdID0KLSAgICAgICAgICAgICAg ICAoKHFlbXVfaXJxICopZW52LT5pcnFfaW5wdXRzKVtQUEM2eHhfSU5QVVRfSU5UXTsKLSAgICAg ICAgICAgIG9wZW5waWNfaXJxc1tpXVtPUEVOUElDX09VVFBVVF9DSU5UXSA9Ci0gICAgICAgICAg ICAgICAgKChxZW11X2lycSAqKWVudi0+aXJxX2lucHV0cylbUFBDNnh4X0lOUFVUX0lOVF07Ci0g ICAgICAgICAgICBvcGVucGljX2lycXNbaV1bT1BFTlBJQ19PVVRQVVRfTUNLXSA9Ci0gICAgICAg ICAgICAgICAgKChxZW11X2lycSAqKWVudi0+aXJxX2lucHV0cylbUFBDNnh4X0lOUFVUX01DUF07 Ci0gICAgICAgICAgICAvKiBOb3QgY29ubmVjdGVkID8gKi8KLSAgICAgICAgICAgIG9wZW5waWNf aXJxc1tpXVtPUEVOUElDX09VVFBVVF9ERUJVR10gPSBOVUxMOwotICAgICAgICAgICAgLyogQ2hl Y2sgdGhpcyAqLwotICAgICAgICAgICAgb3BlbnBpY19pcnFzW2ldW09QRU5QSUNfT1VUUFVUX1JF U0VUXSA9Ci0gICAgICAgICAgICAgICAgKChxZW11X2lycSAqKWVudi0+aXJxX2lucHV0cylbUFBD Nnh4X0lOUFVUX0hSRVNFVF07Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBkZWZpbmVkKFRBUkdF VF9QUEM2NCkKLSAgICAgICAgY2FzZSBQUENfRkxBR1NfSU5QVVRfOTcwOgotICAgICAgICAgICAg b3BlbnBpY19pcnFzW2ldID0gb3BlbnBpY19pcnFzWzBdICsgKGkgKiBPUEVOUElDX09VVFBVVF9O Qik7Ci0gICAgICAgICAgICBvcGVucGljX2lycXNbaV1bT1BFTlBJQ19PVVRQVVRfSU5UXSA9Ci0g ICAgICAgICAgICAgICAgKChxZW11X2lycSAqKWVudi0+aXJxX2lucHV0cylbUFBDOTcwX0lOUFVU X0lOVF07Ci0gICAgICAgICAgICBvcGVucGljX2lycXNbaV1bT1BFTlBJQ19PVVRQVVRfQ0lOVF0g PQotICAgICAgICAgICAgICAgICgocWVtdV9pcnEgKillbnYtPmlycV9pbnB1dHMpW1BQQzk3MF9J TlBVVF9JTlRdOwotICAgICAgICAgICAgb3BlbnBpY19pcnFzW2ldW09QRU5QSUNfT1VUUFVUX01D S10gPQotICAgICAgICAgICAgICAgICgocWVtdV9pcnEgKillbnYtPmlycV9pbnB1dHMpW1BQQzk3 MF9JTlBVVF9NQ1BdOwotICAgICAgICAgICAgLyogTm90IGNvbm5lY3RlZCA/ICovCi0gICAgICAg ICAgICBvcGVucGljX2lycXNbaV1bT1BFTlBJQ19PVVRQVVRfREVCVUddID0gTlVMTDsKLSAgICAg ICAgICAgIC8qIENoZWNrIHRoaXMgKi8KLSAgICAgICAgICAgIG9wZW5waWNfaXJxc1tpXVtPUEVO UElDX09VVFBVVF9SRVNFVF0gPQotICAgICAgICAgICAgICAgICgocWVtdV9pcnEgKillbnYtPmly cV9pbnB1dHMpW1BQQzk3MF9JTlBVVF9IUkVTRVRdOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5k aWYgLyogZGVmaW5lZChUQVJHRVRfUFBDNjQpICovCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg ICAgICBjcHVfYWJvcnQoZW52LCAiQnVzIG1vZGVsIG5vdCBzdXBwb3J0ZWQgb24gbWFjOTkgbWFj aGluZVxuIik7Ci0gICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9Ci0gICAgfQotICAgIHBp YyA9IG9wZW5waWNfaW5pdChOVUxMLCAmcGljX21lbV9pbmRleCwgc21wX2NwdXMsIG9wZW5waWNf aXJxcywgTlVMTCk7Ci0gICAgcGNpX2J1cyA9IHBjaV9wbWFjX2luaXQocGljKTsKLSAgICAvKiBp bml0IGJhc2ljIFBDIGhhcmR3YXJlICovCi0gICAgcGNpX3ZnYV9pbml0KHBjaV9idXMsIHBoeXNf cmFtX2Jhc2UgKyB2Z2FfcmFtX29mZnNldCwKLSAgICAgICAgICAgICAgICAgdmdhX3JhbV9vZmZz ZXQsIHZnYV9yYW1fc2l6ZSwKLSAgICAgICAgICAgICAgICAgdmdhX2Jpb3Nfb2Zmc2V0LCB2Z2Ff Ymlvc19zaXplKTsKLQotICAgIC8qIFhYWDogc3VwcHJlc3MgdGhhdCAqLwotICAgIGR1bW15X2ly cSA9IGk4MjU5X2luaXQoTlVMTCk7Ci0KLSAgICBlc2NjX21lbV9pbmRleCA9IGVzY2NfaW5pdCgw eDgwMDEzMDAwLCBkdW1teV9pcnFbNF0sIGR1bW15X2lycVs1XSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJpYWxfaGRzWzBdLCBzZXJpYWxfaGRzWzFdLCBFU0NDX0NMT0NLLCA0 KTsKLQotICAgIGZvcihpID0gMDsgaSA8IG5iX25pY3M7IGkrKykKLSAgICAgICAgcGNpX25pY19p bml0KHBjaV9idXMsICZuZF90YWJsZVtpXSwgLTEsICJuZTJrX3BjaSIpOwotCi0gICAgaWYgKGRy aXZlX2dldF9tYXhfYnVzKElGX0lERSkgPj0gTUFYX0lERV9CVVMpIHsKLSAgICAgICAgZnByaW50 ZihzdGRlcnIsICJxZW11OiB0b28gbWFueSBJREUgYnVzXG4iKTsKLSAgICAgICAgZXhpdCgxKTsK LSAgICB9Ci0gICAgZm9yKGkgPSAwOyBpIDwgTUFYX0lERV9CVVMgKiBNQVhfSURFX0RFVlM7IGkr KykgewotICAgICAgICBpbmRleCA9IGRyaXZlX2dldF9pbmRleChJRl9JREUsIGkgLyBNQVhfSURF X0RFVlMsIGkgJSBNQVhfSURFX0RFVlMpOwotICAgICAgICBpZiAoaW5kZXggIT0gLTEpCi0gICAg ICAgICAgICBoZFtpXSA9IGRyaXZlc190YWJsZVtpbmRleF0uYmRydjsKLSAgICAgICAgZWxzZQot ICAgICAgICAgICAgaGRbaV0gPSBOVUxMOwotICAgIH0KLSAgICBkYmRtYSA9IERCRE1BX2luaXQo JmRiZG1hX21lbV9pbmRleCk7Ci0jaWYgMQotICAgIGlkZV9tZW1faW5kZXhbMF0gPSBwbWFjX2lk ZV9pbml0KCZoZFswXSwgcGljWzB4MTNdLCBkYmRtYSwgMHgxNCwgcGljWzB4MDFdKTsKLSAgICBp ZGVfbWVtX2luZGV4WzFdID0gcG1hY19pZGVfaW5pdCgmaGRbMl0sIHBpY1sweDE0XSwgZGJkbWEs IDB4MTYsIHBpY1sweDAyXSk7Ci0jZWxzZQotICAgIHBjaV9jbWQ2NDZfaWRlX2luaXQocGNpX2J1 cywgJmhkWzBdLCAwKTsKLSNlbmRpZgotICAgIC8qIGN1ZGEgYWxzbyBpbml0aWFsaXplIEFEQiAq LwotICAgIGN1ZGFfaW5pdCgmY3VkYV9tZW1faW5kZXgsIHBpY1sweDE5XSk7Ci0KLSAgICBhZGJf a2JkX2luaXQoJmFkYl9idXMpOwotICAgIGFkYl9tb3VzZV9pbml0KCZhZGJfYnVzKTsKLQotCi0g ICAgbWFjaW9faW5pdChwY2lfYnVzLCBQQ0lfREVWSUNFX0lEX0FQUExFX1VOSV9OX0tFWUwsIDAs IHBpY19tZW1faW5kZXgsCi0gICAgICAgICAgICAgICBkYmRtYV9tZW1faW5kZXgsIGN1ZGFfbWVt X2luZGV4LCBOVUxMLCAyLCBpZGVfbWVtX2luZGV4LAotICAgICAgICAgICAgICAgZXNjY19tZW1f aW5kZXgpOwotCi0gICAgaWYgKHVzYl9lbmFibGVkKSB7Ci0gICAgICAgIHVzYl9vaGNpX2luaXRf cGNpKHBjaV9idXMsIDMsIC0xKTsKLSAgICB9Ci0KLSAgICBpZiAoZ3JhcGhpY19kZXB0aCAhPSAx NSAmJiBncmFwaGljX2RlcHRoICE9IDMyICYmIGdyYXBoaWNfZGVwdGggIT0gOCkKLSAgICAgICAg Z3JhcGhpY19kZXB0aCA9IDE1OwotI2lmIDAgLyogWFhYOiB0aGlzIGlzIHVnbHkgYnV0IG5lZWRl ZCBmb3Igbm93LCBvciBPSFcgd29uJ3QgYm9vdCAqLwotICAgIC8qIFRoZSBOZXdXb3JsZCBOVlJB TSBpcyBub3QgbG9jYXRlZCBpbiB0aGUgTWFjSU8gZGV2aWNlICovCi0gICAgbnZyID0gbWFjaW9f bnZyYW1faW5pdCgmbnZyYW1fbWVtX2luZGV4LCAweDIwMDAsIDEpOwotICAgIHBtYWNfZm9ybWF0 X252cmFtX3BhcnRpdGlvbihudnIsIDB4MjAwMCk7Ci0gICAgbWFjaW9fbnZyYW1fbWFwKG52ciwg MHhGRkYwNDAwMCk7Ci0gICAgbnZyYW0ub3BhcXVlID0gbnZyOwotICAgIG52cmFtLnJlYWRfZm4g PSAmbWFjaW9fbnZyYW1fcmVhZDsKLSAgICBudnJhbS53cml0ZV9mbiA9ICZtYWNpb19udnJhbV93 cml0ZTsKLSNlbHNlCi0gICAgbTQ4dDU5ID0gbTQ4dDU5X2luaXQoZHVtbXlfaXJxWzhdLCAweEZG RjA0MDAwLCAweDAwNzQsIE5WUkFNX1NJWkUsIDU5KTsKLSAgICBudnJhbS5vcGFxdWUgPSBtNDh0 NTk7Ci0gICAgbnZyYW0ucmVhZF9mbiA9ICZtNDh0NTlfcmVhZDsKLSAgICBudnJhbS53cml0ZV9m biA9ICZtNDh0NTlfd3JpdGU7Ci0jZW5kaWYKLSAgICBQUENfTlZSQU1fc2V0X3BhcmFtcygmbnZy YW0sIE5WUkFNX1NJWkUsICJNQUM5OSIsIHJhbV9zaXplLAotICAgICAgICAgICAgICAgICAgICAg ICAgIHBwY19ib290X2RldmljZSwga2VybmVsX2Jhc2UsIGtlcm5lbF9zaXplLAotICAgICAgICAg ICAgICAgICAgICAgICAgIGtlcm5lbF9jbWRsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAg IGluaXRyZF9iYXNlLCBpbml0cmRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAvKiBY WFg6IG5lZWQgYW4gb3B0aW9uIHRvIGxvYWQgYSBOVlJBTSBpbWFnZSAqLwotICAgICAgICAgICAg ICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY193aWR0aCwg Z3JhcGhpY19oZWlnaHQsIGdyYXBoaWNfZGVwdGgpOwotICAgIC8qIE5vIFBDSSBpbml0OiB0aGUg QklPUyB3aWxsIGRvIGl0ICovCi0KLSAgICAvKiBTcGVjaWFsIHBvcnQgdG8gZ2V0IGRlYnVnIG1l c3NhZ2VzIGZyb20gT3Blbi1GaXJtd2FyZSAqLwotICAgIHJlZ2lzdGVyX2lvcG9ydF93cml0ZSgw eDBGMDAsIDQsIDEsICZQUENfZGVidWdfd3JpdGUsIE5VTEwpOwotfQotCi1RRU1VTWFjaGluZSBj b3JlOTlfbWFjaGluZSA9IHsKLSAgICAubmFtZSA9ICJtYWM5OSIsCi0gICAgLmRlc2MgPSAiTWFj OTkgYmFzZWQgUG93ZXJNQUMiLAotICAgIC5pbml0ID0gcHBjX2NvcmU5OV9pbml0LAotICAgIC5y YW1fcmVxdWlyZSA9IEJJT1NfU0laRSArIFZHQV9CSU9TX1NJWkUgKyBWR0FfUkFNX1NJWkUsCi0g ICAgLm1heF9jcHVzID0gTUFYX0NQVVMsCi19OwpJbmRleDogcWVtdS9ody9wcGNfbmV3d29ybGQu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKKysrIHFlbXUvaHcvcHBjX25ld3dvcmxkLmMJMjAwOS0wMi0wNyAyMDo0MzowNS4wMDAw MDAwMDAgKzAwMDAKQEAgLTAsMCArMSwzNjIgQEAKKy8qCisgKiBRRU1VIFBvd2VyUEMgQ0hSUCAo Y3VycmVudGx5IE5ld1dvcmxkIFBvd2VyTWFjKSBoYXJkd2FyZSBTeXN0ZW0gRW11bGF0b3IKKyAq CisgKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNyBGYWJyaWNlIEJlbGxhcmQKKyAqIENvcHlyaWdo dCAoYykgMjAwNyBKb2NlbHluIE1heWVyCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICog b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksIHRvIGRlYWwKKyAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKKyAqIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k L29yIHNlbGwKKyAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgor ICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisg KgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg U0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorICog T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUiBERUFMSU5HUyBJTgorICogVEhFIFNPRlRXQVJFLgorICovCisjaW5jbHVkZSAiaHcuaCIK KyNpbmNsdWRlICJwcGMuaCIKKyNpbmNsdWRlICJwcGNfbWFjLmgiCisjaW5jbHVkZSAibWFjX2Ri ZG1hLmgiCisjaW5jbHVkZSAibnZyYW0uaCIKKyNpbmNsdWRlICJwYy5oIgorI2luY2x1ZGUgInBj aS5oIgorI2luY2x1ZGUgIm5ldC5oIgorI2luY2x1ZGUgInN5c2VtdS5oIgorI2luY2x1ZGUgImJv YXJkcy5oIgorI2luY2x1ZGUgImVzY2MuaCIKKworI2RlZmluZSBNQVhfSURFX0JVUyAyCisjZGVm aW5lIFZHQV9CSU9TX1NJWkUgNjU1MzYKKworLyogZGVidWcgVW5pTm9ydGggKi8KKy8vI2RlZmlu ZSBERUJVR19VTklOCisKKyNpZmRlZiBERUJVR19VTklOCisjZGVmaW5lIFVOSU5fRFBSSU5URihm bXQsIGFyZ3MuLi4pIFwKK2RvIHsgcHJpbnRmKCJVTklOOiAiIGZtdCAsICMjYXJncyk7IH0gd2hp bGUgKDApCisjZWxzZQorI2RlZmluZSBVTklOX0RQUklOVEYoZm10LCBhcmdzLi4uKQorI2VuZGlm CisKKy8qIFVuaU4gZGV2aWNlICovCitzdGF0aWMgdm9pZCB1bmluX3dyaXRlbCAodm9pZCAqb3Bh cXVlLCB0YXJnZXRfcGh5c19hZGRyX3QgYWRkciwgdWludDMyX3QgdmFsdWUpCit7CisgICAgVU5J Tl9EUFJJTlRGKCJ3cml0ZWwgYWRkciAiIFRBUkdFVF9GTVRfcGx4ICIgdmFsICV4XG4iLCBhZGRy LCB2YWx1ZSk7Cit9CisKK3N0YXRpYyB1aW50MzJfdCB1bmluX3JlYWRsICh2b2lkICpvcGFxdWUs IHRhcmdldF9waHlzX2FkZHJfdCBhZGRyKQoreworICAgIHVpbnQzMl90IHZhbHVlOworCisgICAg dmFsdWUgPSAwOworICAgIFVOSU5fRFBSSU5URigicmVhZGwgYWRkciAiIFRBUkdFVF9GTVRfcGx4 ICIgdmFsICV4XG4iLCBhZGRyLCB2YWx1ZSk7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3N0 YXRpYyBDUFVXcml0ZU1lbW9yeUZ1bmMgKnVuaW5fd3JpdGVbXSA9IHsKKyAgICAmdW5pbl93cml0 ZWwsCisgICAgJnVuaW5fd3JpdGVsLAorICAgICZ1bmluX3dyaXRlbCwKK307CisKK3N0YXRpYyBD UFVSZWFkTWVtb3J5RnVuYyAqdW5pbl9yZWFkW10gPSB7CisgICAgJnVuaW5fcmVhZGwsCisgICAg JnVuaW5fcmVhZGwsCisgICAgJnVuaW5fcmVhZGwsCit9OworCisvKiBQb3dlclBDIE1hYzk5IGhh cmR3YXJlIGluaXRpYWxpc2F0aW9uICovCitzdGF0aWMgdm9pZCBwcGNfY29yZTk5X2luaXQgKHJh bV9hZGRyX3QgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKmJvb3RfZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKK3sKKyAgICBDUFVTdGF0ZSAqZW52 ID0gTlVMTCwgKmVudnNbTUFYX0NQVVNdOworICAgIGNoYXIgYnVmWzEwMjRdOworICAgIHFlbXVf aXJxICpwaWMsICoqb3BlbnBpY19pcnFzOworICAgIGludCB1bmluX21lbW9yeTsKKyAgICBpbnQg bGludXhfYm9vdCwgaTsKKyAgICByYW1fYWRkcl90IHJhbV9vZmZzZXQsIHZnYV9yYW1fb2Zmc2V0 LCBiaW9zX29mZnNldCwgdmdhX2Jpb3Nfb2Zmc2V0OworICAgIHVpbnQzMl90IGtlcm5lbF9iYXNl LCBrZXJuZWxfc2l6ZSwgaW5pdHJkX2Jhc2UsIGluaXRyZF9zaXplOworICAgIFBDSUJ1cyAqcGNp X2J1czsKKyAgICBudnJhbV90IG52cmFtOworI2lmIDAKKyAgICBNYWNJT05WUkFNU3RhdGUgKm52 cjsKKyAgICBpbnQgbnZyYW1fbWVtX2luZGV4OworI2VuZGlmCisgICAgbTQ4dDU5X3QgKm00OHQ1 OTsKKyAgICBpbnQgdmdhX2Jpb3Nfc2l6ZSwgYmlvc19zaXplOworICAgIHFlbXVfaXJxICpkdW1t eV9pcnE7CisgICAgaW50IHBpY19tZW1faW5kZXgsIGRiZG1hX21lbV9pbmRleCwgY3VkYV9tZW1f aW5kZXgsIGVzY2NfbWVtX2luZGV4OworICAgIGludCBpZGVfbWVtX2luZGV4WzJdOworICAgIGlu dCBwcGNfYm9vdF9kZXZpY2U7CisgICAgaW50IGluZGV4OworICAgIEJsb2NrRHJpdmVyU3RhdGUg KmhkW01BWF9JREVfQlVTICogTUFYX0lERV9ERVZTXTsKKyAgICB2b2lkICpkYmRtYTsKKworICAg IGxpbnV4X2Jvb3QgPSAoa2VybmVsX2ZpbGVuYW1lICE9IE5VTEwpOworCisgICAgLyogaW5pdCBD UFVzICovCisgICAgaWYgKGNwdV9tb2RlbCA9PSBOVUxMKQorICAgICAgICBjcHVfbW9kZWwgPSAi ZGVmYXVsdCI7CisgICAgZm9yIChpID0gMDsgaSA8IHNtcF9jcHVzOyBpKyspIHsKKyAgICAgICAg ZW52ID0gY3B1X2luaXQoY3B1X21vZGVsKTsKKyAgICAgICAgaWYgKCFlbnYpIHsKKyAgICAgICAg ICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGZpbmQgUG93ZXJQQyBDUFUgZGVmaW5pdGlv blxuIik7CisgICAgICAgICAgICBleGl0KDEpOworICAgICAgICB9CisgICAgICAgIC8qIFNldCB0 aW1lLWJhc2UgZnJlcXVlbmN5IHRvIDEwMCBNaHogKi8KKyAgICAgICAgY3B1X3BwY190Yl9pbml0 KGVudiwgMTAwVUwgKiAxMDAwVUwgKiAxMDAwVUwpOworI2lmIDAKKyAgICAgICAgZW52LT5vc2lf Y2FsbCA9IHZnYV9vc2lfY2FsbDsKKyNlbmRpZgorICAgICAgICBxZW11X3JlZ2lzdGVyX3Jlc2V0 KCZjcHVfcHBjX3Jlc2V0LCBlbnYpOworICAgICAgICBlbnZzW2ldID0gZW52OworICAgIH0KKyAg ICBpZiAoZW52LT5uaXAgPCAweEZGRjgwMDAwKSB7CisgICAgICAgIC8qIFNwZWNpYWwgdGVzdCBm b3IgUG93ZXJQQyA2MDE6CisgICAgICAgICAqIHRoZSBib290IHZlY3RvciBpcyBhdCAweEZGRjAw MTAwLCB0aGVuIHdlIG5lZWQgYSAxTUIgQklPUy4KKyAgICAgICAgICogQnV0IHRoZSBOVlJBTSBp cyBsb2NhdGVkIGF0IDB4RkZGMDQwMDAuLi4KKyAgICAgICAgICovCisgICAgICAgIGNwdV9hYm9y dChlbnYsICJNYWM5OSBoYXJkd2FyZSBjYW4gbm90IGhhbmRsZSAxIE1CIEJJT1NcbiIpOworICAg IH0KKworICAgIC8qIGFsbG9jYXRlIFJBTSAqLworICAgIHJhbV9vZmZzZXQgPSBxZW11X3JhbV9h bGxvYyhyYW1fc2l6ZSk7CisgICAgY3B1X3JlZ2lzdGVyX3BoeXNpY2FsX21lbW9yeSgwLCByYW1f c2l6ZSwgcmFtX29mZnNldCk7CisKKyAgICAvKiBhbGxvY2F0ZSBWR0EgUkFNICovCisgICAgdmdh X3JhbV9vZmZzZXQgPSBxZW11X3JhbV9hbGxvYyh2Z2FfcmFtX3NpemUpOworCisgICAgLyogYWxs b2NhdGUgYW5kIGxvYWQgQklPUyAqLworICAgIGJpb3Nfb2Zmc2V0ID0gcWVtdV9yYW1fYWxsb2Mo QklPU19TSVpFKTsKKyAgICBpZiAoYmlvc19uYW1lID09IE5VTEwpCisgICAgICAgIGJpb3NfbmFt ZSA9IEJJT1NfRklMRU5BTUU7CisgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVzLyVz IiwgYmlvc19kaXIsIGJpb3NfbmFtZSk7CisgICAgYmlvc19zaXplID0gbG9hZF9pbWFnZShidWYs IHBoeXNfcmFtX2Jhc2UgKyBiaW9zX29mZnNldCk7CisgICAgaWYgKGJpb3Nfc2l6ZSA8IDAgfHwg Ymlvc19zaXplID4gQklPU19TSVpFKSB7CisgICAgICAgIGNwdV9hYm9ydChlbnYsICJxZW11OiBj b3VsZCBub3QgbG9hZCBQb3dlclBDIGJpb3MgJyVzJ1xuIiwgYnVmKTsKKyAgICAgICAgZXhpdCgx KTsKKyAgICB9CisgICAgYmlvc19zaXplID0gKGJpb3Nfc2l6ZSArIDB4ZmZmKSAmIH4weGZmZjsK KyAgICBpZiAoYmlvc19zaXplID4gMHgwMDA4MDAwMCkgeworICAgICAgICAvKiBBcyB0aGUgTlZS QU0gaXMgbG9jYXRlZCBhdCAweEZGRjA0MDAwLCB3ZSBjYW5ub3QgdXNlIDEgTUIgQklPU2VzICov CisgICAgICAgIGNwdV9hYm9ydChlbnYsICJNYWM5OSBoYXJkd2FyZSBjYW4gbm90IGhhbmRsZSAx IE1CIEJJT1NcbiIpOworICAgIH0KKyAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxfbWVtb3J5KCh1 aW50MzJfdCkoLWJpb3Nfc2l6ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi aW9zX3NpemUsIGJpb3Nfb2Zmc2V0IHwgSU9fTUVNX1JPTSk7CisKKyAgICAvKiBhbGxvY2F0ZSBh bmQgbG9hZCBWR0EgQklPUyAqLworICAgIHZnYV9iaW9zX29mZnNldCA9IHFlbXVfcmFtX2FsbG9j KFZHQV9CSU9TX1NJWkUpOworICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlcy8lcyIs IGJpb3NfZGlyLCBWR0FCSU9TX0ZJTEVOQU1FKTsKKyAgICB2Z2FfYmlvc19zaXplID0gbG9hZF9p bWFnZShidWYsIHBoeXNfcmFtX2Jhc2UgKyB2Z2FfYmlvc19vZmZzZXQgKyA4KTsKKyAgICBpZiAo dmdhX2Jpb3Nfc2l6ZSA8IDApIHsKKyAgICAgICAgLyogaWYgbm8gYmlvcyBpcyBwcmVzZW50LCB3 ZSBjYW4gc3RpbGwgd29yayAqLworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInFlbXU6IHdhcm5p bmc6IGNvdWxkIG5vdCBsb2FkIFZHQSBiaW9zICclcydcbiIsIGJ1Zik7CisgICAgICAgIHZnYV9i aW9zX3NpemUgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIHNldCBhIHNwZWNpZmljIGhl YWRlciAoWFhYOiBmaW5kIHJlYWwgQXBwbGUgZm9ybWF0IGZvciBORFJWCisgICAgICAgICAgIGRy aXZlcnMpICovCisgICAgICAgIHBoeXNfcmFtX2Jhc2VbdmdhX2Jpb3Nfb2Zmc2V0XSA9ICdOJzsK KyAgICAgICAgcGh5c19yYW1fYmFzZVt2Z2FfYmlvc19vZmZzZXQgKyAxXSA9ICdEJzsKKyAgICAg ICAgcGh5c19yYW1fYmFzZVt2Z2FfYmlvc19vZmZzZXQgKyAyXSA9ICdSJzsKKyAgICAgICAgcGh5 c19yYW1fYmFzZVt2Z2FfYmlvc19vZmZzZXQgKyAzXSA9ICdWJzsKKyAgICAgICAgY3B1X3RvX2Jl MzJ3KCh1aW50MzJfdCAqKShwaHlzX3JhbV9iYXNlICsgdmdhX2Jpb3Nfb2Zmc2V0ICsgNCksCisg ICAgICAgICAgICAgICAgICAgICB2Z2FfYmlvc19zaXplKTsKKyAgICAgICAgdmdhX2Jpb3Nfc2l6 ZSArPSA4OworICAgIH0KKworICAgIGlmIChsaW51eF9ib290KSB7CisgICAgICAgIGtlcm5lbF9i YXNlID0gS0VSTkVMX0xPQURfQUREUjsKKyAgICAgICAgLyogbm93IHdlIGNhbiBsb2FkIHRoZSBr ZXJuZWwgKi8KKyAgICAgICAga2VybmVsX3NpemUgPSBsb2FkX2ltYWdlKGtlcm5lbF9maWxlbmFt ZSwgcGh5c19yYW1fYmFzZSArIGtlcm5lbF9iYXNlKTsKKyAgICAgICAgaWYgKGtlcm5lbF9zaXpl IDwgMCkgeworICAgICAgICAgICAgY3B1X2Fib3J0KGVudiwgInFlbXU6IGNvdWxkIG5vdCBsb2Fk IGtlcm5lbCAnJXMnXG4iLAorICAgICAgICAgICAgICAgICAgICAgIGtlcm5lbF9maWxlbmFtZSk7 CisgICAgICAgICAgICBleGl0KDEpOworICAgICAgICB9CisgICAgICAgIC8qIGxvYWQgaW5pdHJk ICovCisgICAgICAgIGlmIChpbml0cmRfZmlsZW5hbWUpIHsKKyAgICAgICAgICAgIGluaXRyZF9i YXNlID0gSU5JVFJEX0xPQURfQUREUjsKKyAgICAgICAgICAgIGluaXRyZF9zaXplID0gbG9hZF9p bWFnZShpbml0cmRfZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGh5c19yYW1fYmFzZSArIGluaXRyZF9iYXNlKTsKKyAgICAgICAgICAgIGlmIChpbml0cmRf c2l6ZSA8IDApIHsKKyAgICAgICAgICAgICAgICBjcHVfYWJvcnQoZW52LCAicWVtdTogY291bGQg bm90IGxvYWQgaW5pdGlhbCByYW0gZGlzayAnJXMnXG4iLAorICAgICAgICAgICAgICAgICAgICAg ICAgICBpbml0cmRfZmlsZW5hbWUpOworICAgICAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAg ICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbml0cmRfYmFzZSA9IDA7Cisg ICAgICAgICAgICBpbml0cmRfc2l6ZSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcHBjX2Jvb3Rf ZGV2aWNlID0gJ20nOworICAgIH0gZWxzZSB7CisgICAgICAgIGtlcm5lbF9iYXNlID0gMDsKKyAg ICAgICAga2VybmVsX3NpemUgPSAwOworICAgICAgICBpbml0cmRfYmFzZSA9IDA7CisgICAgICAg IGluaXRyZF9zaXplID0gMDsKKyAgICAgICAgcHBjX2Jvb3RfZGV2aWNlID0gJ1wwJzsKKyAgICAg ICAgLyogV2UgY29uc2lkZXIgdGhhdCBOZXdXb3JsZCBQb3dlck1hYyBuZXZlciBoYXZlIGFueSBm bG9wcHkgZHJpdmUKKyAgICAgICAgICogRm9yIG5vdywgT0hXIGNhbm5vdCBib290IGZyb20gdGhl IG5ldHdvcmsuCisgICAgICAgICAqLworICAgICAgICBmb3IgKGkgPSAwOyBib290X2RldmljZVtp XSAhPSAnXDAnOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChib290X2RldmljZVtpXSA+PSAnYycg JiYgYm9vdF9kZXZpY2VbaV0gPD0gJ2YnKSB7CisgICAgICAgICAgICAgICAgcHBjX2Jvb3RfZGV2 aWNlID0gYm9vdF9kZXZpY2VbaV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBwY19ib290X2RldmljZSA9PSAnXDAnKSB7Cisg ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk5vIHZhbGlkIGJvb3QgZGV2aWNlIGZvciBNYWM5 OSBtYWNoaW5lXG4iKTsKKyAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAgIH0KKyAgICB9CisK KyAgICBpc2FfbWVtX2Jhc2UgPSAweDgwMDAwMDAwOworCisgICAgLyogUmVnaXN0ZXIgOCBNQiBv ZiBJU0EgSU8gc3BhY2UgKi8KKyAgICBpc2FfbW1pb19pbml0KDB4ZjIwMDAwMDAsIDB4MDA4MDAw MDApOworCisgICAgLyogVW5pTiBpbml0ICovCisgICAgdW5pbl9tZW1vcnkgPSBjcHVfcmVnaXN0 ZXJfaW9fbWVtb3J5KDAsIHVuaW5fcmVhZCwgdW5pbl93cml0ZSwgTlVMTCk7CisgICAgY3B1X3Jl Z2lzdGVyX3BoeXNpY2FsX21lbW9yeSgweGY4MDAwMDAwLCAweDAwMDAxMDAwLCB1bmluX21lbW9y eSk7CisKKyAgICBvcGVucGljX2lycXMgPSBxZW11X21hbGxvY3ooc21wX2NwdXMgKiBzaXplb2Yo cWVtdV9pcnEgKikpOworICAgIG9wZW5waWNfaXJxc1swXSA9CisgICAgICAgIHFlbXVfbWFsbG9j eihzbXBfY3B1cyAqIHNpemVvZihxZW11X2lycSkgKiBPUEVOUElDX09VVFBVVF9OQik7CisgICAg Zm9yIChpID0gMDsgaSA8IHNtcF9jcHVzOyBpKyspIHsKKyAgICAgICAgLyogTWFjOTkgSVJRIGNv bm5lY3Rpb24gYmV0d2VlbiBPcGVuUElDIG91dHB1dHMgcGlucworICAgICAgICAgKiBhbmQgUG93 ZXJQQyBpbnB1dCBwaW5zCisgICAgICAgICAqLworICAgICAgICBzd2l0Y2ggKFBQQ19JTlBVVChl bnYpKSB7CisgICAgICAgIGNhc2UgUFBDX0ZMQUdTX0lOUFVUXzZ4eDoKKyAgICAgICAgICAgIG9w ZW5waWNfaXJxc1tpXSA9IG9wZW5waWNfaXJxc1swXSArIChpICogT1BFTlBJQ19PVVRQVVRfTkIp OworICAgICAgICAgICAgb3BlbnBpY19pcnFzW2ldW09QRU5QSUNfT1VUUFVUX0lOVF0gPQorICAg ICAgICAgICAgICAgICgocWVtdV9pcnEgKillbnYtPmlycV9pbnB1dHMpW1BQQzZ4eF9JTlBVVF9J TlRdOworICAgICAgICAgICAgb3BlbnBpY19pcnFzW2ldW09QRU5QSUNfT1VUUFVUX0NJTlRdID0K KyAgICAgICAgICAgICAgICAoKHFlbXVfaXJxICopZW52LT5pcnFfaW5wdXRzKVtQUEM2eHhfSU5Q VVRfSU5UXTsKKyAgICAgICAgICAgIG9wZW5waWNfaXJxc1tpXVtPUEVOUElDX09VVFBVVF9NQ0td ID0KKyAgICAgICAgICAgICAgICAoKHFlbXVfaXJxICopZW52LT5pcnFfaW5wdXRzKVtQUEM2eHhf SU5QVVRfTUNQXTsKKyAgICAgICAgICAgIC8qIE5vdCBjb25uZWN0ZWQgPyAqLworICAgICAgICAg ICAgb3BlbnBpY19pcnFzW2ldW09QRU5QSUNfT1VUUFVUX0RFQlVHXSA9IE5VTEw7CisgICAgICAg ICAgICAvKiBDaGVjayB0aGlzICovCisgICAgICAgICAgICBvcGVucGljX2lycXNbaV1bT1BFTlBJ Q19PVVRQVVRfUkVTRVRdID0KKyAgICAgICAgICAgICAgICAoKHFlbXVfaXJxICopZW52LT5pcnFf aW5wdXRzKVtQUEM2eHhfSU5QVVRfSFJFU0VUXTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIGRl ZmluZWQoVEFSR0VUX1BQQzY0KQorICAgICAgICBjYXNlIFBQQ19GTEFHU19JTlBVVF85NzA6Cisg ICAgICAgICAgICBvcGVucGljX2lycXNbaV0gPSBvcGVucGljX2lycXNbMF0gKyAoaSAqIE9QRU5Q SUNfT1VUUFVUX05CKTsKKyAgICAgICAgICAgIG9wZW5waWNfaXJxc1tpXVtPUEVOUElDX09VVFBV VF9JTlRdID0KKyAgICAgICAgICAgICAgICAoKHFlbXVfaXJxICopZW52LT5pcnFfaW5wdXRzKVtQ UEM5NzBfSU5QVVRfSU5UXTsKKyAgICAgICAgICAgIG9wZW5waWNfaXJxc1tpXVtPUEVOUElDX09V VFBVVF9DSU5UXSA9CisgICAgICAgICAgICAgICAgKChxZW11X2lycSAqKWVudi0+aXJxX2lucHV0 cylbUFBDOTcwX0lOUFVUX0lOVF07CisgICAgICAgICAgICBvcGVucGljX2lycXNbaV1bT1BFTlBJ Q19PVVRQVVRfTUNLXSA9CisgICAgICAgICAgICAgICAgKChxZW11X2lycSAqKWVudi0+aXJxX2lu cHV0cylbUFBDOTcwX0lOUFVUX01DUF07CisgICAgICAgICAgICAvKiBOb3QgY29ubmVjdGVkID8g Ki8KKyAgICAgICAgICAgIG9wZW5waWNfaXJxc1tpXVtPUEVOUElDX09VVFBVVF9ERUJVR10gPSBO VUxMOworICAgICAgICAgICAgLyogQ2hlY2sgdGhpcyAqLworICAgICAgICAgICAgb3BlbnBpY19p cnFzW2ldW09QRU5QSUNfT1VUUFVUX1JFU0VUXSA9CisgICAgICAgICAgICAgICAgKChxZW11X2ly cSAqKWVudi0+aXJxX2lucHV0cylbUFBDOTcwX0lOUFVUX0hSRVNFVF07CisgICAgICAgICAgICBi cmVhazsKKyNlbmRpZiAvKiBkZWZpbmVkKFRBUkdFVF9QUEM2NCkgKi8KKyAgICAgICAgZGVmYXVs dDoKKyAgICAgICAgICAgIGNwdV9hYm9ydChlbnYsICJCdXMgbW9kZWwgbm90IHN1cHBvcnRlZCBv biBtYWM5OSBtYWNoaW5lXG4iKTsKKyAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAgIH0KKyAg ICB9CisgICAgcGljID0gb3BlbnBpY19pbml0KE5VTEwsICZwaWNfbWVtX2luZGV4LCBzbXBfY3B1 cywgb3BlbnBpY19pcnFzLCBOVUxMKTsKKyAgICBwY2lfYnVzID0gcGNpX3BtYWNfaW5pdChwaWMp OworICAgIC8qIGluaXQgYmFzaWMgUEMgaGFyZHdhcmUgKi8KKyAgICBwY2lfdmdhX2luaXQocGNp X2J1cywgcGh5c19yYW1fYmFzZSArIHZnYV9yYW1fb2Zmc2V0LAorICAgICAgICAgICAgICAgICB2 Z2FfcmFtX29mZnNldCwgdmdhX3JhbV9zaXplLAorICAgICAgICAgICAgICAgICB2Z2FfYmlvc19v ZmZzZXQsIHZnYV9iaW9zX3NpemUpOworCisgICAgLyogWFhYOiBzdXBwcmVzcyB0aGF0ICovCisg ICAgZHVtbXlfaXJxID0gaTgyNTlfaW5pdChOVUxMKTsKKworICAgIGVzY2NfbWVtX2luZGV4ID0g ZXNjY19pbml0KDB4ODAwMTMwMDAsIGR1bW15X2lycVs0XSwgZHVtbXlfaXJxWzVdLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbF9oZHNbMF0sIHNlcmlhbF9oZHNbMV0sIEVT Q0NfQ0xPQ0ssIDQpOworCisgICAgZm9yKGkgPSAwOyBpIDwgbmJfbmljczsgaSsrKQorICAgICAg ICBwY2lfbmljX2luaXQocGNpX2J1cywgJm5kX3RhYmxlW2ldLCAtMSwgIm5lMmtfcGNpIik7CisK KyAgICBpZiAoZHJpdmVfZ2V0X21heF9idXMoSUZfSURFKSA+PSBNQVhfSURFX0JVUykgeworICAg ICAgICBmcHJpbnRmKHN0ZGVyciwgInFlbXU6IHRvbyBtYW55IElERSBidXNcbiIpOworICAgICAg ICBleGl0KDEpOworICAgIH0KKyAgICBmb3IoaSA9IDA7IGkgPCBNQVhfSURFX0JVUyAqIE1BWF9J REVfREVWUzsgaSsrKSB7CisgICAgICAgIGluZGV4ID0gZHJpdmVfZ2V0X2luZGV4KElGX0lERSwg aSAvIE1BWF9JREVfREVWUywgaSAlIE1BWF9JREVfREVWUyk7CisgICAgICAgIGlmIChpbmRleCAh PSAtMSkKKyAgICAgICAgICAgIGhkW2ldID0gZHJpdmVzX3RhYmxlW2luZGV4XS5iZHJ2OworICAg ICAgICBlbHNlCisgICAgICAgICAgICBoZFtpXSA9IE5VTEw7CisgICAgfQorICAgIGRiZG1hID0g REJETUFfaW5pdCgmZGJkbWFfbWVtX2luZGV4KTsKKyNpZiAxCisgICAgaWRlX21lbV9pbmRleFsw XSA9IHBtYWNfaWRlX2luaXQoJmhkWzBdLCBwaWNbMHgxM10sIGRiZG1hLCAweDE0LCBwaWNbMHgw MV0pOworICAgIGlkZV9tZW1faW5kZXhbMV0gPSBwbWFjX2lkZV9pbml0KCZoZFsyXSwgcGljWzB4 MTRdLCBkYmRtYSwgMHgxNiwgcGljWzB4MDJdKTsKKyNlbHNlCisgICAgcGNpX2NtZDY0Nl9pZGVf aW5pdChwY2lfYnVzLCAmaGRbMF0sIDApOworI2VuZGlmCisgICAgLyogY3VkYSBhbHNvIGluaXRp YWxpemUgQURCICovCisgICAgY3VkYV9pbml0KCZjdWRhX21lbV9pbmRleCwgcGljWzB4MTldKTsK KworICAgIGFkYl9rYmRfaW5pdCgmYWRiX2J1cyk7CisgICAgYWRiX21vdXNlX2luaXQoJmFkYl9i dXMpOworCisKKyAgICBtYWNpb19pbml0KHBjaV9idXMsIFBDSV9ERVZJQ0VfSURfQVBQTEVfVU5J X05fS0VZTCwgMCwgcGljX21lbV9pbmRleCwKKyAgICAgICAgICAgICAgIGRiZG1hX21lbV9pbmRl eCwgY3VkYV9tZW1faW5kZXgsIE5VTEwsIDIsIGlkZV9tZW1faW5kZXgsCisgICAgICAgICAgICAg ICBlc2NjX21lbV9pbmRleCk7CisKKyAgICBpZiAodXNiX2VuYWJsZWQpIHsKKyAgICAgICAgdXNi X29oY2lfaW5pdF9wY2kocGNpX2J1cywgMywgLTEpOworICAgIH0KKworICAgIGlmIChncmFwaGlj X2RlcHRoICE9IDE1ICYmIGdyYXBoaWNfZGVwdGggIT0gMzIgJiYgZ3JhcGhpY19kZXB0aCAhPSA4 KQorICAgICAgICBncmFwaGljX2RlcHRoID0gMTU7CisjaWYgMCAvKiBYWFg6IHRoaXMgaXMgdWds eSBidXQgbmVlZGVkIGZvciBub3csIG9yIE9IVyB3b24ndCBib290ICovCisgICAgLyogVGhlIE5l d1dvcmxkIE5WUkFNIGlzIG5vdCBsb2NhdGVkIGluIHRoZSBNYWNJTyBkZXZpY2UgKi8KKyAgICBu dnIgPSBtYWNpb19udnJhbV9pbml0KCZudnJhbV9tZW1faW5kZXgsIDB4MjAwMCwgMSk7CisgICAg cG1hY19mb3JtYXRfbnZyYW1fcGFydGl0aW9uKG52ciwgMHgyMDAwKTsKKyAgICBtYWNpb19udnJh bV9tYXAobnZyLCAweEZGRjA0MDAwKTsKKyAgICBudnJhbS5vcGFxdWUgPSBudnI7CisgICAgbnZy YW0ucmVhZF9mbiA9ICZtYWNpb19udnJhbV9yZWFkOworICAgIG52cmFtLndyaXRlX2ZuID0gJm1h Y2lvX252cmFtX3dyaXRlOworI2Vsc2UKKyAgICBtNDh0NTkgPSBtNDh0NTlfaW5pdChkdW1teV9p cnFbOF0sIDB4RkZGMDQwMDAsIDB4MDA3NCwgTlZSQU1fU0laRSwgNTkpOworICAgIG52cmFtLm9w YXF1ZSA9IG00OHQ1OTsKKyAgICBudnJhbS5yZWFkX2ZuID0gJm00OHQ1OV9yZWFkOworICAgIG52 cmFtLndyaXRlX2ZuID0gJm00OHQ1OV93cml0ZTsKKyNlbmRpZgorICAgIFBQQ19OVlJBTV9zZXRf cGFyYW1zKCZudnJhbSwgTlZSQU1fU0laRSwgIk1BQzk5IiwgcmFtX3NpemUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgcHBjX2Jvb3RfZGV2aWNlLCBrZXJuZWxfYmFzZSwga2VybmVsX3NpemUs CisgICAgICAgICAgICAgICAgICAgICAgICAga2VybmVsX2NtZGxpbmUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgaW5pdHJkX2Jhc2UsIGluaXRyZF9zaXplLAorICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIFhYWDogbmVlZCBhbiBvcHRpb24gdG8gbG9hZCBhIE5WUkFNIGltYWdlICovCisg ICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBncmFw aGljX3dpZHRoLCBncmFwaGljX2hlaWdodCwgZ3JhcGhpY19kZXB0aCk7CisgICAgLyogTm8gUENJ IGluaXQ6IHRoZSBCSU9TIHdpbGwgZG8gaXQgKi8KKworICAgIC8qIFNwZWNpYWwgcG9ydCB0byBn ZXQgZGVidWcgbWVzc2FnZXMgZnJvbSBPcGVuLUZpcm13YXJlICovCisgICAgcmVnaXN0ZXJfaW9w b3J0X3dyaXRlKDB4MEYwMCwgNCwgMSwgJlBQQ19kZWJ1Z193cml0ZSwgTlVMTCk7Cit9CisKK1FF TVVNYWNoaW5lIGNvcmU5OV9tYWNoaW5lID0geworICAgIC5uYW1lID0gIm1hYzk5IiwKKyAgICAu ZGVzYyA9ICJNYWM5OSBiYXNlZCBQb3dlck1BQyIsCisgICAgLmluaXQgPSBwcGNfY29yZTk5X2lu aXQsCisgICAgLnJhbV9yZXF1aXJlID0gQklPU19TSVpFICsgVkdBX0JJT1NfU0laRSArIFZHQV9S QU1fU0laRSwKKyAgICAubWF4X2NwdXMgPSBNQVhfQ1BVUywKK307Cg== --001636c5b584b86fc804625a80bd Content-Type: plain/text; name="q_1_newworld_use_openbios.diff" Content-Disposition: attachment; filename="q_1_newworld_use_openbios.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqwrti44 SW5kZXg6IHFlbXUvaHcvcHBjX25ld3dvcmxkLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3 L3BwY19uZXd3b3JsZC5jCTIwMDktMDItMDcgMjA6NDM6MDUuMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2h3L3BwY19uZXd3b3JsZC5jCTIwMDktMDItMDcgMjA6NDg6MDIuMDAwMDAwMDAwICswMDAw CkBAIC0zMiwxMCArMzIsMTIgQEAKICNpbmNsdWRlICJuZXQuaCIKICNpbmNsdWRlICJzeXNlbXUu aCIKICNpbmNsdWRlICJib2FyZHMuaCIKKyNpbmNsdWRlICJmd19jZmcuaCIKICNpbmNsdWRlICJl c2NjLmgiCiAKICNkZWZpbmUgTUFYX0lERV9CVVMgMgogI2RlZmluZSBWR0FfQklPU19TSVpFIDY1 NTM2CisjZGVmaW5lIENGR19BRERSIDB4ZjAwMDA1MTAKIAogLyogZGVidWcgVW5pTm9ydGggKi8K IC8vI2RlZmluZSBERUJVR19VTklOCkBAIC0xMDQsNiArMTA2LDcgQEAKICAgICBpbnQgcHBjX2Jv b3RfZGV2aWNlOwogICAgIGludCBpbmRleDsKICAgICBCbG9ja0RyaXZlclN0YXRlICpoZFtNQVhf SURFX0JVUyAqIE1BWF9JREVfREVWU107CisgICAgdm9pZCAqZndfY2ZnOwogICAgIHZvaWQgKmRi ZG1hOwogCiAgICAgbGludXhfYm9vdCA9IChrZXJuZWxfZmlsZW5hbWUgIT0gTlVMTCk7CkBAIC0x NDMsMjAgKzE0NiwxNiBAQAogICAgIC8qIGFsbG9jYXRlIGFuZCBsb2FkIEJJT1MgKi8KICAgICBi aW9zX29mZnNldCA9IHFlbXVfcmFtX2FsbG9jKEJJT1NfU0laRSk7CiAgICAgaWYgKGJpb3NfbmFt ZSA9PSBOVUxMKQotICAgICAgICBiaW9zX25hbWUgPSBCSU9TX0ZJTEVOQU1FOworICAgICAgICBi aW9zX25hbWUgPSBQUk9NX0ZJTEVOQU1FOwogICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1Ziks ICIlcy8lcyIsIGJpb3NfZGlyLCBiaW9zX25hbWUpOwotICAgIGJpb3Nfc2l6ZSA9IGxvYWRfaW1h Z2UoYnVmLCBwaHlzX3JhbV9iYXNlICsgYmlvc19vZmZzZXQpOworICAgIGNwdV9yZWdpc3Rlcl9w aHlzaWNhbF9tZW1vcnkoUFJPTV9BRERSLCBCSU9TX1NJWkUsIGJpb3Nfb2Zmc2V0IHwgSU9fTUVN X1JPTSk7CisKKyAgICAvKiBMb2FkIE9wZW5CSU9TIChFTEYpICovCisgICAgYmlvc19zaXplID0g bG9hZF9lbGYoYnVmLCAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKICAgICBpZiAoYmlvc19zaXplIDwg MCB8fCBiaW9zX3NpemUgPiBCSU9TX1NJWkUpIHsKICAgICAgICAgY3B1X2Fib3J0KGVudiwgInFl bXU6IGNvdWxkIG5vdCBsb2FkIFBvd2VyUEMgYmlvcyAnJXMnXG4iLCBidWYpOwogICAgICAgICBl eGl0KDEpOwogICAgIH0KLSAgICBiaW9zX3NpemUgPSAoYmlvc19zaXplICsgMHhmZmYpICYgfjB4 ZmZmOwotICAgIGlmIChiaW9zX3NpemUgPiAweDAwMDgwMDAwKSB7Ci0gICAgICAgIC8qIEFzIHRo ZSBOVlJBTSBpcyBsb2NhdGVkIGF0IDB4RkZGMDQwMDAsIHdlIGNhbm5vdCB1c2UgMSBNQiBCSU9T ZXMgKi8KLSAgICAgICAgY3B1X2Fib3J0KGVudiwgIk1hYzk5IGhhcmR3YXJlIGNhbiBub3QgaGFu ZGxlIDEgTUIgQklPU1xuIik7Ci0gICAgfQotICAgIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1v cnkoKHVpbnQzMl90KSgtYmlvc19zaXplKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJpb3Nfc2l6ZSwgYmlvc19vZmZzZXQgfCBJT19NRU1fUk9NKTsKIAogICAgIC8qIGFsbG9j YXRlIGFuZCBsb2FkIFZHQSBCSU9TICovCiAgICAgdmdhX2Jpb3Nfb2Zmc2V0ID0gcWVtdV9yYW1f YWxsb2MoVkdBX0JJT1NfU0laRSk7CkBAIC0zNDksOCArMzQ4LDEwIEBACiAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3JhcGhpY193aWR0aCwgZ3JhcGhpY19oZWlnaHQsIGdyYXBoaWNfZGVwdGgp OwogICAgIC8qIE5vIFBDSSBpbml0OiB0aGUgQklPUyB3aWxsIGRvIGl0ICovCiAKLSAgICAvKiBT cGVjaWFsIHBvcnQgdG8gZ2V0IGRlYnVnIG1lc3NhZ2VzIGZyb20gT3Blbi1GaXJtd2FyZSAqLwot ICAgIHJlZ2lzdGVyX2lvcG9ydF93cml0ZSgweDBGMDAsIDQsIDEsICZQUENfZGVidWdfd3JpdGUs IE5VTEwpOworICAgIGZ3X2NmZyA9IGZ3X2NmZ19pbml0KDAsIDAsIENGR19BRERSLCBDRkdfQURE UiArIDIpOworICAgIGZ3X2NmZ19hZGRfaTMyKGZ3X2NmZywgRldfQ0ZHX0lELCAxKTsKKyAgICBm d19jZmdfYWRkX2k2NChmd19jZmcsIEZXX0NGR19SQU1fU0laRSwgKHVpbnQ2NF90KXJhbV9zaXpl KTsKKyAgICBmd19jZmdfYWRkX2kxNihmd19jZmcsIEZXX0NGR19NQUNISU5FX0lELCBBUkNIX01B Qzk5KTsKIH0KIAogUUVNVU1hY2hpbmUgY29yZTk5X21hY2hpbmUgPSB7Cg== --001636c5b584b86fc804625a80bd Content-Type: plain/text; name="q_2_newworld_use_mac_nvram.diff" Content-Disposition: attachment; filename="q_2_newworld_use_mac_nvram.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqwrtwk4 SW5kZXg6IHFlbXUvaHcvcHBjX25ld3dvcmxkLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3 L3BwY19uZXd3b3JsZC5jCTIwMDktMDItMDcgMjA6NDg6MDIuMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2h3L3BwY19uZXd3b3JsZC5jCTIwMDktMDItMDcgMjA6NDg6MDcuMDAwMDAwMDAwICswMDAw CkBAIC05MywxMiArOTMsOCBAQAogICAgIHJhbV9hZGRyX3QgcmFtX29mZnNldCwgdmdhX3JhbV9v ZmZzZXQsIGJpb3Nfb2Zmc2V0LCB2Z2FfYmlvc19vZmZzZXQ7CiAgICAgdWludDMyX3Qga2VybmVs X2Jhc2UsIGtlcm5lbF9zaXplLCBpbml0cmRfYmFzZSwgaW5pdHJkX3NpemU7CiAgICAgUENJQnVz ICpwY2lfYnVzOwotICAgIG52cmFtX3QgbnZyYW07Ci0jaWYgMAogICAgIE1hY0lPTlZSQU1TdGF0 ZSAqbnZyOwogICAgIGludCBudnJhbV9tZW1faW5kZXg7Ci0jZW5kaWYKLSAgICBtNDh0NTlfdCAq bTQ4dDU5OwogICAgIGludCB2Z2FfYmlvc19zaXplLCBiaW9zX3NpemU7CiAgICAgcWVtdV9pcnEg KmR1bW15X2lycTsKICAgICBpbnQgcGljX21lbV9pbmRleCwgZGJkbWFfbWVtX2luZGV4LCBjdWRh X21lbV9pbmRleCwgZXNjY19tZW1faW5kZXg7CkBAIC0zMjUsMjcgKzMyMSwxMSBAQAogCiAgICAg aWYgKGdyYXBoaWNfZGVwdGggIT0gMTUgJiYgZ3JhcGhpY19kZXB0aCAhPSAzMiAmJiBncmFwaGlj X2RlcHRoICE9IDgpCiAgICAgICAgIGdyYXBoaWNfZGVwdGggPSAxNTsKLSNpZiAwIC8qIFhYWDog dGhpcyBpcyB1Z2x5IGJ1dCBuZWVkZWQgZm9yIG5vdywgb3IgT0hXIHdvbid0IGJvb3QgKi8KKwog ICAgIC8qIFRoZSBOZXdXb3JsZCBOVlJBTSBpcyBub3QgbG9jYXRlZCBpbiB0aGUgTWFjSU8gZGV2 aWNlICovCiAgICAgbnZyID0gbWFjaW9fbnZyYW1faW5pdCgmbnZyYW1fbWVtX2luZGV4LCAweDIw MDAsIDEpOwogICAgIHBtYWNfZm9ybWF0X252cmFtX3BhcnRpdGlvbihudnIsIDB4MjAwMCk7CiAg ICAgbWFjaW9fbnZyYW1fbWFwKG52ciwgMHhGRkYwNDAwMCk7Ci0gICAgbnZyYW0ub3BhcXVlID0g bnZyOwotICAgIG52cmFtLnJlYWRfZm4gPSAmbWFjaW9fbnZyYW1fcmVhZDsKLSAgICBudnJhbS53 cml0ZV9mbiA9ICZtYWNpb19udnJhbV93cml0ZTsKLSNlbHNlCi0gICAgbTQ4dDU5ID0gbTQ4dDU5 X2luaXQoZHVtbXlfaXJxWzhdLCAweEZGRjA0MDAwLCAweDAwNzQsIE5WUkFNX1NJWkUsIDU5KTsK LSAgICBudnJhbS5vcGFxdWUgPSBtNDh0NTk7Ci0gICAgbnZyYW0ucmVhZF9mbiA9ICZtNDh0NTlf cmVhZDsKLSAgICBudnJhbS53cml0ZV9mbiA9ICZtNDh0NTlfd3JpdGU7Ci0jZW5kaWYKLSAgICBQ UENfTlZSQU1fc2V0X3BhcmFtcygmbnZyYW0sIE5WUkFNX1NJWkUsICJNQUM5OSIsIHJhbV9zaXpl LAotICAgICAgICAgICAgICAgICAgICAgICAgIHBwY19ib290X2RldmljZSwga2VybmVsX2Jhc2Us IGtlcm5lbF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgIGtlcm5lbF9jbWRsaW5lLAot ICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRyZF9iYXNlLCBpbml0cmRfc2l6ZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBYWFg6IG5lZWQgYW4gb3B0aW9uIHRvIGxvYWQgYSBOVlJB TSBpbWFnZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgZ3JhcGhpY193aWR0aCwgZ3JhcGhpY19oZWlnaHQsIGdyYXBoaWNfZGVwdGgpOwog ICAgIC8qIE5vIFBDSSBpbml0OiB0aGUgQklPUyB3aWxsIGRvIGl0ICovCiAKICAgICBmd19jZmcg PSBmd19jZmdfaW5pdCgwLCAwLCBDRkdfQUREUiwgQ0ZHX0FERFIgKyAyKTsK --001636c5b584b86fc804625a80bd Content-Type: plain/text; name="q_3_fix_unin_config.diff" Content-Disposition: attachment; filename="q_3_fix_unin_config.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqwru1ng SW5kZXg6IHFlbXUvaHcvdW5pbl9wY2kuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvdW5p bl9wY2kuYwkyMDA5LTAyLTA3IDIwOjQzOjAzLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody91 bmluX3BjaS5jCTIwMDktMDItMDcgMjA6NDg6MTAuMDAwMDAwMDAwICswMDAwCkBAIC00NCwyMiAr NDQsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgdmFsKQogewogICAgIFVOSU5TdGF0ZSAqcyA9IG9wYXF1ZTsKLSAgICBpbnQgaTsKIAogICAg IFVOSU5fRFBSSU5URigiY29uZmlnX3dyaXRlbCBhZGRyICIgVEFSR0VUX0ZNVF9wbHggIiB2YWwg JXhcbiIsIGFkZHIsIHZhbCk7CiAjaWZkZWYgVEFSR0VUX1dPUkRTX0JJR0VORElBTgogICAgIHZh bCA9IGJzd2FwMzIodmFsKTsKICNlbmRpZgogCi0gICAgZm9yIChpID0gMTE7IGkgPCAzMjsgaSsr KSB7Ci0gICAgICAgIGlmICgodmFsICYgKDEgPDwgaSkpICE9IDApCi0gICAgICAgICAgICBicmVh azsKLSAgICB9Ci0jaWYgMAotICAgIHMtPmNvbmZpZ19yZWcgPSAweDgwMDAwMDAwIHwgKDEgPDwg MTYpIHwgKHZhbCAmIDB4N0ZDKSB8IChpIDw8IDExKTsKLSNlbHNlCi0gICAgcy0+Y29uZmlnX3Jl ZyA9IDB4ODAwMDAwMDAgfCAoMCA8PCAxNikgfCAodmFsICYgMHg3RkMpIHwgKGkgPDwgMTEpOwot I2VuZGlmCisgICAgcy0+Y29uZmlnX3JlZyA9IHZhbDsKIH0KIAogc3RhdGljIHVpbnQzMl90IHBj aV91bmluX21haW5fY29uZmlnX3JlYWRsICh2b2lkICpvcGFxdWUsCkBAIC02NywxMCArNTgsOCBA QAogewogICAgIFVOSU5TdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICB1aW50MzJfdCB2YWw7Ci0gICAg aW50IGRldmZuOwogCi0gICAgZGV2Zm4gPSAocy0+Y29uZmlnX3JlZyA+PiA4KSAmIDB4RkY7Ci0g ICAgdmFsID0gKDEgPDwgKGRldmZuID4+IDMpKSB8ICgoZGV2Zm4gJiAweDA3KSA8PCA4KSB8IChz LT5jb25maWdfcmVnICYgMHhGQyk7CisgICAgdmFsID0gcy0+Y29uZmlnX3JlZzsKICNpZmRlZiBU QVJHRVRfV09SRFNfQklHRU5ESUFOCiAgICAgdmFsID0gYnN3YXAzMih2YWwpOwogI2VuZGlmCg== --001636c5b584b86fc804625a80bd Content-Type: plain/text; name="q_4b_newworld_use_cmd646.diff" Content-Disposition: attachment; filename="q_4b_newworld_use_cmd646.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqwru5pg SW5kZXg6IHFlbXUvaHcvcHBjX25ld3dvcmxkLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3 L3BwY19uZXd3b3JsZC5jCTIwMDktMDItMDcgMjA6NDg6MDcuMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2h3L3BwY19uZXd3b3JsZC5jCTIwMDktMDItMDcgMjA6NDg6MTIuMDAwMDAwMDAwICswMDAw CkBAIC05OCw3ICs5OCw2IEBACiAgICAgaW50IHZnYV9iaW9zX3NpemUsIGJpb3Nfc2l6ZTsKICAg ICBxZW11X2lycSAqZHVtbXlfaXJxOwogICAgIGludCBwaWNfbWVtX2luZGV4LCBkYmRtYV9tZW1f aW5kZXgsIGN1ZGFfbWVtX2luZGV4LCBlc2NjX21lbV9pbmRleDsKLSAgICBpbnQgaWRlX21lbV9p bmRleFsyXTsKICAgICBpbnQgcHBjX2Jvb3RfZGV2aWNlOwogICAgIGludCBpbmRleDsKICAgICBC bG9ja0RyaXZlclN0YXRlICpoZFtNQVhfSURFX0JVUyAqIE1BWF9JREVfREVWU107CkBAIC0yOTgs MTIgKzI5Nyw4IEBACiAgICAgICAgICAgICBoZFtpXSA9IE5VTEw7CiAgICAgfQogICAgIGRiZG1h ID0gREJETUFfaW5pdCgmZGJkbWFfbWVtX2luZGV4KTsKLSNpZiAxCi0gICAgaWRlX21lbV9pbmRl eFswXSA9IHBtYWNfaWRlX2luaXQoJmhkWzBdLCBwaWNbMHgxM10sIGRiZG1hLCAweDE0LCBwaWNb MHgwMV0pOwotICAgIGlkZV9tZW1faW5kZXhbMV0gPSBwbWFjX2lkZV9pbml0KCZoZFsyXSwgcGlj WzB4MTRdLCBkYmRtYSwgMHgxNiwgcGljWzB4MDJdKTsKLSNlbHNlCi0gICAgcGNpX2NtZDY0Nl9p ZGVfaW5pdChwY2lfYnVzLCAmaGRbMF0sIDApOwotI2VuZGlmCisgICAgcGNpX2NtZDY0Nl9pZGVf aW5pdChwY2lfYnVzLCBoZCwgMCk7CisKICAgICAvKiBjdWRhIGFsc28gaW5pdGlhbGl6ZSBBREIg Ki8KICAgICBjdWRhX2luaXQoJmN1ZGFfbWVtX2luZGV4LCBwaWNbMHgxOV0pOwogCkBAIC0zMTIs NyArMzA3LDcgQEAKIAogCiAgICAgbWFjaW9faW5pdChwY2lfYnVzLCBQQ0lfREVWSUNFX0lEX0FQ UExFX1VOSV9OX0tFWUwsIDAsIHBpY19tZW1faW5kZXgsCi0gICAgICAgICAgICAgICBkYmRtYV9t ZW1faW5kZXgsIGN1ZGFfbWVtX2luZGV4LCBOVUxMLCAyLCBpZGVfbWVtX2luZGV4LAorICAgICAg ICAgICAgICAgZGJkbWFfbWVtX2luZGV4LCBjdWRhX21lbV9pbmRleCwgTlVMTCwgMCwgTlVMTCwK ICAgICAgICAgICAgICAgIGVzY2NfbWVtX2luZGV4KTsKIAogICAgIGlmICh1c2JfZW5hYmxlZCkg ewo= --001636c5b584b86fc804625a80bd Content-Type: plain/text; name="q_5_load_32bit_bios.diff" Content-Disposition: attachment; filename="q_5_load_32bit_bios.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqwrueac SW5kZXg6IHFlbXUvdGFyZ2V0LXBwYy9jcHUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFy Z2V0LXBwYy9jcHUuaAkyMDA5LTAyLTA3IDIwOjQzOjAwLjAwMDAwMDAwMCArMDAwMAorKysgcWVt dS90YXJnZXQtcHBjL2NwdS5oCTIwMDktMDItMDcgMjA6NDg6MTUuMDAwMDAwMDAwICswMDAwCkBA IC02Niw3ICs2Niw4IEBACiAKICNkZWZpbmUgVEFSR0VUX0hBU19JQ0UgMQogCi0jaWYgZGVmaW5l ZCAoVEFSR0VUX1BQQzY0KQorLyogTG9hZCBhIDMyIGJpdCBCSU9TIGFsc28gb24gNjQgYml0IG1h Y2hpbmVzICovCisjaWYgZGVmaW5lZCAoVEFSR0VUX1BQQzY0KSAmJiBkZWZpbmVkKENPTkZJR19V U0VSX09OTFkpCiAjZGVmaW5lIEVMRl9NQUNISU5FICAgICBFTV9QUEM2NAogI2Vsc2UKICNkZWZp bmUgRUxGX01BQ0hJTkUgICAgIEVNX1BQQwpJbmRleDogcWVtdS9ody9wcGNfb2xkd29ybGQuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvcHBjX29sZHdvcmxkLmMJMjAwOS0wMi0wNyAyMDo0 MzowMC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcHBjX29sZHdvcmxkLmMJMjAwOS0wMi0w NyAyMDo0ODoxNS4wMDAwMDAwMDAgKzAwMDAKQEAgLTE1MiwxMyArMTUyLDYgQEAKICAgICAgICAg cWVtdV9yZWdpc3Rlcl9yZXNldCgmY3B1X3BwY19yZXNldCwgZW52KTsKICAgICAgICAgZW52c1tp XSA9IGVudjsKICAgICB9Ci0gICAgaWYgKGVudi0+bmlwIDwgMHhGRkY4MDAwMCkgewotICAgICAg ICAvKiBTcGVjaWFsIHRlc3QgZm9yIFBvd2VyUEMgNjAxOgotICAgICAgICAgKiB0aGUgYm9vdCB2 ZWN0b3IgaXMgYXQgMHhGRkYwMDEwMCwgdGhlbiB3ZSBuZWVkIGEgMU1CIEJJT1MuCi0gICAgICAg ICAqIEJ1dCB0aGUgTlZSQU0gaXMgbG9jYXRlZCBhdCAweEZGRjA0MDAwLi4uCi0gICAgICAgICAq LwotICAgICAgICBjcHVfYWJvcnQoZW52LCAiRzMgQmVpZ2UgTWFjIGhhcmR3YXJlIGNhbiBub3Qg aGFuZGxlIDEgTUIgQklPU1xuIik7Ci0gICAgfQogCiAgICAgLyogYWxsb2NhdGUgUkFNICovCiAg ICAgaWYgKHJhbV9zaXplID4gKDIwNDcgPDwgMjApKSB7CkluZGV4OiBxZW11L2h3L3BwY19uZXd3 b3JsZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9wcGNfbmV3d29ybGQuYwkyMDA5LTAy LTA3IDIwOjQ4OjEyLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9wcGNfbmV3d29ybGQuYwky MDA5LTAyLTA3IDIwOjQ4OjE1LjAwMDAwMDAwMCArMDAwMApAQCAtMTIzLDEzICsxMjMsNiBAQAog ICAgICAgICBxZW11X3JlZ2lzdGVyX3Jlc2V0KCZjcHVfcHBjX3Jlc2V0LCBlbnYpOwogICAgICAg ICBlbnZzW2ldID0gZW52OwogICAgIH0KLSAgICBpZiAoZW52LT5uaXAgPCAweEZGRjgwMDAwKSB7 Ci0gICAgICAgIC8qIFNwZWNpYWwgdGVzdCBmb3IgUG93ZXJQQyA2MDE6Ci0gICAgICAgICAqIHRo ZSBib290IHZlY3RvciBpcyBhdCAweEZGRjAwMTAwLCB0aGVuIHdlIG5lZWQgYSAxTUIgQklPUy4K LSAgICAgICAgICogQnV0IHRoZSBOVlJBTSBpcyBsb2NhdGVkIGF0IDB4RkZGMDQwMDAuLi4KLSAg ICAgICAgICovCi0gICAgICAgIGNwdV9hYm9ydChlbnYsICJNYWM5OSBoYXJkd2FyZSBjYW4gbm90 IGhhbmRsZSAxIE1CIEJJT1NcbiIpOwotICAgIH0KIAogICAgIC8qIGFsbG9jYXRlIFJBTSAqLwog ICAgIHJhbV9vZmZzZXQgPSBxZW11X3JhbV9hbGxvYyhyYW1fc2l6ZSk7Cg== --001636c5b584b86fc804625a80bd Content-Type: plain/text; name="q_6_newworld_use_pmac_ide.diff" Content-Disposition: attachment; filename="q_6_newworld_use_pmac_ide.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqwruk98 SW5kZXg6IHFlbXUvaHcvcHBjX25ld3dvcmxkLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3 L3BwY19uZXd3b3JsZC5jCTIwMDktMDItMDcgMjA6NDg6MTUuMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2h3L3BwY19uZXd3b3JsZC5jCTIwMDktMDItMDcgMjA6NTY6NTYuMDAwMDAwMDAwICswMDAw CkBAIC05OCw2ICs5OCw3IEBACiAgICAgaW50IHZnYV9iaW9zX3NpemUsIGJpb3Nfc2l6ZTsKICAg ICBxZW11X2lycSAqZHVtbXlfaXJxOwogICAgIGludCBwaWNfbWVtX2luZGV4LCBkYmRtYV9tZW1f aW5kZXgsIGN1ZGFfbWVtX2luZGV4LCBlc2NjX21lbV9pbmRleDsKKyAgICBpbnQgaWRlX21lbV9p bmRleFszXTsKICAgICBpbnQgcHBjX2Jvb3RfZGV2aWNlOwogICAgIGludCBpbmRleDsKICAgICBC bG9ja0RyaXZlclN0YXRlICpoZFtNQVhfSURFX0JVUyAqIE1BWF9JREVfREVWU107CkBAIC0yOTAs NyArMjkxLDkgQEAKICAgICAgICAgICAgIGhkW2ldID0gTlVMTDsKICAgICB9CiAgICAgZGJkbWEg PSBEQkRNQV9pbml0KCZkYmRtYV9tZW1faW5kZXgpOwotICAgIHBjaV9jbWQ2NDZfaWRlX2luaXQo cGNpX2J1cywgaGQsIDApOworICAgIGlkZV9tZW1faW5kZXhbMF0gPSBwbWFjX2lkZV9pbml0KCZo ZFswXSwgcGljWzB4MTNdLCBkYmRtYSwgMHgxNCwgcGljWzB4MDFdKTsKKyAgICBpZGVfbWVtX2lu ZGV4WzFdID0gcG1hY19pZGVfaW5pdCgmaGRbMV0sIHBpY1sweDE0XSwgZGJkbWEsIDB4MTUsIHBp Y1sweDAyXSk7CisgICAgaWRlX21lbV9pbmRleFsyXSA9IHBtYWNfaWRlX2luaXQoJmhkWzJdLCBw aWNbMHgxNV0sIGRiZG1hLCAweDE2LCBwaWNbMHgwM10pOwogCiAgICAgLyogY3VkYSBhbHNvIGlu aXRpYWxpemUgQURCICovCiAgICAgY3VkYV9pbml0KCZjdWRhX21lbV9pbmRleCwgcGljWzB4MTld KTsKQEAgLTMwMCw3ICszMDMsNyBAQAogCiAKICAgICBtYWNpb19pbml0KHBjaV9idXMsIFBDSV9E RVZJQ0VfSURfQVBQTEVfVU5JX05fS0VZTCwgMCwgcGljX21lbV9pbmRleCwKLSAgICAgICAgICAg ICAgIGRiZG1hX21lbV9pbmRleCwgY3VkYV9tZW1faW5kZXgsIE5VTEwsIDAsIE5VTEwsCisgICAg ICAgICAgICAgICBkYmRtYV9tZW1faW5kZXgsIGN1ZGFfbWVtX2luZGV4LCBOVUxMLCAyLCBpZGVf bWVtX2luZGV4LAogICAgICAgICAgICAgICAgZXNjY19tZW1faW5kZXgpOwogCiAgICAgaWYgKHVz Yl9lbmFibGVkKSB7Cg== --001636c5b584b86fc804625a80bd--