From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750842AbVKIOUe (ORCPT ); Wed, 9 Nov 2005 09:20:34 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751020AbVKIOU1 (ORCPT ); Wed, 9 Nov 2005 09:20:27 -0500 Received: from public.id2-vpn.continvity.gns.novell.com ([195.33.99.129]:15666 "EHLO emea1-mh.id2.novell.com") by vger.kernel.org with ESMTP id S1750901AbVKIOUF (ORCPT ); Wed, 9 Nov 2005 09:20:05 -0500 Message-Id: <437213E0.76F0.0078.0@novell.com> X-Mailer: Novell GroupWise Internet Agent 7.0 Date: Wed, 09 Nov 2005 15:21:04 +0100 From: "Jan Beulich" To: "Andreas Kleen" Cc: , Subject: [PATCH 25/39] NLKD/x86-64 - core References: <43720DAE.76F0.0078.0@novell.com> <43720E2E.76F0.0078.0@novell.com> <43720E72.76F0.0078.0@novell.com> <43720EAF.76F0.0078.0@novell.com> <43720F5E.76F0.0078.0@novell.com> <43720F95.76F0.0078.0@novell.com> <43720FBA.76F0.0078.0@novell.com> <43720FF6.76F0.0078.0@novell.com> <43721024.76F0.0078.0@novell.com> <4372105B.76F0.0078.0@novell.com> <43721119.76F0.0078.0@novell.com> <43721142.76F0.0078.0@novell.com> <43721184.76F0.0078.0@novell.com> <4372135F.76F0.0078.0@novell.com> <4372138D.76F0.0078.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part9CBEA0C0.1__=" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part9CBEA0C0.1__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline The core x86-64 NLKD additions. Signed-Off-By: Jan Beulich (actual patch attached) --=__Part9CBEA0C0.1__= Content-Type: application/octet-stream; name="nlkd-x86_64.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nlkd-x86_64.patch" VGhlIGNvcmUgeDg2LTY0IE5MS0QgYWRkaXRpb25zLgoKU2lnbmVkLU9mZi1CeTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQG5vdmVsbC5jb20+CgpJbmRleDogMi42LjE0LW5sa2QvYXJjaC94ODZfNjQv S2NvbmZpZy5kZWJ1Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAyLjYuMTQtbmxrZC5vcmlnL2FyY2gveDg2XzY0 L0tjb25maWcuZGVidWcJMjAwNS0xMS0wOSAxMToxMjozOS4wMDAwMDAwMDAgKzAxMDAKKysrIDIu Ni4xNC1ubGtkL2FyY2gveDg2XzY0L0tjb25maWcuZGVidWcJMjAwNS0xMS0wNCAxNjoxOTozMy4w MDAwMDAwMDAgKzAxMDAKQEAgLTEsNiArMSw3IEBACiBtZW51ICJLZXJuZWwgaGFja2luZyIKIAog c291cmNlICJsaWIvS2NvbmZpZy5kZWJ1ZyIKK3NvdXJjZSAiZGVidWcvS2NvbmZpZyIKIAogIyAh U01QIGZvciBub3cgYmVjYXVzZSB0aGUgY29udGV4dCBzd2l0Y2ggZWFybHkgY2F1c2VzIEdQRiBp biBzZWdtZW50IHJlbG9hZGluZwogIyBhbmQgdGhlIEdTIGJhc2UgY2hlY2tpbmcgZG9lcyB0aGUg d3JvbmcgdGhpbmcgdGhlbiwgY2F1c2luZyBhIGhhbmcuCkluZGV4OiAyLjYuMTQtbmxrZC9hcmNo L3g4Nl82NC9rZXJuZWwvYXNtLW9mZnNldHMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAyLjYuMTQtbmxrZC5v cmlnL2FyY2gveDg2XzY0L2tlcm5lbC9hc20tb2Zmc2V0cy5jCTIwMDUtMTEtMDQgMTc6MTQ6MDgu MDAwMDAwMDAwICswMTAwCisrKyAyLjYuMTQtbmxrZC9hcmNoL3g4Nl82NC9rZXJuZWwvYXNtLW9m ZnNldHMuYwkyMDA1LTExLTA0IDE3OjE0OjA4LjAwMDAwMDAwMCArMDEwMApAQCAtMTQsNiArMTQs MTMgQEAKICNpbmNsdWRlIDxhc20vc2VnbWVudC5oPgogI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5m by5oPgogI2luY2x1ZGUgPGFzbS9pYTMyLmg+CisjaWZkZWYgQ09ORklHX05MS0QKKyMgaW5jbHVk ZSA8YXNtL2Z0YS1mcmFtZS5oPgorIyBpbmNsdWRlIDxhc20vZnRhLXR5cGUuaD4KKyNlbmRpZgor I2lmIGRlZmluZWQoQ09ORklHX0NERSkgfHwgZGVmaW5lZChDT05GSUdfQ0RFX01PRFVMRSkKKyMg aW5jbHVkZSA8Li4vZGVidWcvbmxrZC9jZGVsb2NrLmg+CisjZW5kaWYKIAogI2RlZmluZSBERUZJ TkUoc3ltLCB2YWwpIFwKICAgICAgICAgYXNtIHZvbGF0aWxlKCJcbi0+IiAjc3ltICIgJTAgIiAj dmFsIDogOiAiaSIgKHZhbCkpCkBAIC0zOSw2ICs0Niw3IEBAIGludCBtYWluKHZvaWQpCiAJRU5U Ulkoa2VybmVsc3RhY2spOyAKIAlFTlRSWShvbGRyc3ApOyAKIAlFTlRSWShwY3VycmVudCk7IAor CUVOVFJZKGRhdGFfb2Zmc2V0KTsKIAlFTlRSWShpcnFjb3VudCk7CiAJRU5UUlkoY3B1bnVtYmVy KTsKIAlFTlRSWShpcnFzdGFja3B0cik7CkBAIC02NSw5ICs3Myw3MSBAQCBpbnQgbWFpbih2b2lk KQogCURFRklORShwYmVfb3JpZ19hZGRyZXNzLCBvZmZzZXRvZihzdHJ1Y3QgcGJlLCBvcmlnX2Fk ZHJlc3MpKTsKIAlERUZJTkUocGJlX25leHQsIG9mZnNldG9mKHN0cnVjdCBwYmUsIG5leHQpKTsK IAlCTEFOSygpOworI2RlZmluZSBFTlRSWShmKSBERUZJTkUoVFNTXyMjZiwgb2Zmc2V0b2YgKHN0 cnVjdCB0c3Nfc3RydWN0LCBmKSkKKwlFTlRSWShyc3AwKTsKKwlFTlRSWShyc3AxKTsKKwlFTlRS WShyc3AyKTsKKwlFTlRSWShpc3QpOworI3VuZGVmIEVOVFJZCisJQkxBTksoKTsKIAlERUZJTkUo RVhDRVBUSU9OX1NUQUNLX1NJWkUsIEVYQ0VQVElPTl9TVEtTWik7CiAjaWYgREVCVUdfU1RLU1og PiBFWENFUFRJT05fU1RLU1oKIAlERUZJTkUoREVCVUdfSVNULCBERUJVR19TVEFDSyk7CiAjZW5k aWYKKyNpZmRlZiBDT05GSUdfTkxLRAorCURFRklORShOTUlfSVNULCBOTUlfU1RBQ0spOworCUJM QU5LKCk7CisjIGRlZmluZSBGUkFNRV9UWVBFKHQpIERFRklORShBTUQ2NF8jI3QsIEFNRDY0XyMj dCkKKwlGUkFNRV9UWVBFKERJVklERV9FUlJPUik7CisJRlJBTUVfVFlQRShERUJVRyk7CisJRlJB TUVfVFlQRShOTUkpOworCUZSQU1FX1RZUEUoQlJFQUtQT0lOVCk7CisJRlJBTUVfVFlQRShPVkVS RkxPVyk7CisJRlJBTUVfVFlQRShCT1VORFNfQ0hFQ0spOworCUZSQU1FX1RZUEUoSUxMRUdBTF9P UENPREUpOworCUZSQU1FX1RZUEUoREVWSUNFX05PVF9BVkFJTEFCTEUpOworCUZSQU1FX1RZUEUo RE9VQkxFX0ZBVUxUKTsKKwlGUkFNRV9UWVBFKElOVkFMSURfVFNTKTsKKwlGUkFNRV9UWVBFKFNF R01FTlRfTk9UX1BSRVNFTlQpOworCUZSQU1FX1RZUEUoU1RBQ0tfRkFVTFQpOworCUZSQU1FX1RZ UEUoR0VORVJBTF9QUk9URUNUSU9OX0ZBVUxUKTsKKwlGUkFNRV9UWVBFKFBBR0VfRkFVTFQpOwor CUZSQU1FX1RZUEUoRlBfRVJST1IpOworCUZSQU1FX1RZUEUoQUxJR05NRU5UX0NIRUNLKTsKKwlG UkFNRV9UWVBFKE1BQ0hJTkVfQ0hFQ0spOworCUZSQU1FX1RZUEUoU0lNRF9GUF9FUlJPUik7CisJ QkxBTksoKTsKKyMgdW5kZWYgRlJBTUVfVFlQRQorIyBkZWZpbmUgRlJBTUVfREVGKGYpIERFRklO RShGUkFNRV8jI2YsIG9mZnNldG9mIChzdHJ1Y3QgZnRhSW50ZXJydXB0aW9uQ3R4X3MsIGYpKQor CUZSQU1FX0RFRih0eXBlKTsKKwlGUkFNRV9ERUYoc3ViX3R5cGUpOworCUZSQU1FX0RFRihzdGF0 ZSk7CisJRlJBTUVfREVGKGVzKTsKKwlGUkFNRV9ERUYoZHMpOworCUZSQU1FX0RFRihmcyk7CisJ RlJBTUVfREVGKGdzKTsKKwlGUkFNRV9ERUYobGR0cik7CisJRlJBTUVfREVGKHRyKTsKKwlGUkFN RV9ERUYoZnNfYmFzZSk7CisJRlJBTUVfREVGKGdzX2Jhc2UpOworCUZSQU1FX0RFRihjcjApOwor CUZSQU1FX0RFRihjcjIpOworCUZSQU1FX0RFRihjcjMpOworCUZSQU1FX0RFRihjcjQpOworCUZS QU1FX0RFRihjcjgpOworCUZSQU1FX0RFRihkcjcpOworCUZSQU1FX0RFRihkZWJ1Z0N0bCk7CisJ RlJBTUVfREVGKGVjKTsKKwlGUkFNRV9ERUYocHRfcmVncyk7CisJRlJBTUVfREVGKGZwX21teF94 bW0pOworIyB1bmRlZiBGUkFNRV9ERUYKKyNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0NERSkg fHwgZGVmaW5lZChDT05GSUdfQ0RFX01PRFVMRSkKKwlCTEFOSygpOworCURFRklORShDREVTUElO TE9DS19zaWduYXR1cmUsIG9mZnNldG9mIChjZGVTcGluTG9ja190LCBjZGVTcGluTG9ja1NpZ25h dHVyZSkpOworCURFRklORShDREVTUElOTE9DS19jcHUsICAgICAgIG9mZnNldG9mIChjZGVTcGlu TG9ja190LCBjZGVTcGluTG9ja0NwdSkpOworCURFRklORShDREVfVkFMSURfU1BJTkxPQ0tfU0lH TkFUVVJFLCBDREVfVkFMSURfU1BJTkxPQ0tfU0lHTkFUVVJFKTsKKwlERUZJTkUoQ0RFX1NQSU5M T0NLX05PVF9PV05FRCwgICAgICAgQ0RFX1NQSU5MT0NLX05PVF9PV05FRCk7CisjZW5kaWYKIAly ZXR1cm4gMDsKIH0KSW5kZXg6IDIuNi4xNC1ubGtkL2RlYnVnL25sa2QvYXNtLWFtZDY0LmgKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw CisrKyAyLjYuMTQtbmxrZC9kZWJ1Zy9ubGtkL2FzbS1hbWQ2NC5oCTIwMDUtMTEtMDcgMTI6MTE6 MjcuMDAwMDAwMDAwICswMTAwCkBAIC0wLDAgKzEsMTAwIEBACisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKyAqCisgKiAgIEZpbGUgTmFtZTogICAgICBhc20tYW1kNjQuaAorICogICBDcmVhdGVkIGJ5 OiAgICAgSmFuIEJldWxpY2gKKyAqICAgJXZlcnNpb246ICAgICAgIDcgJQorICogICAlZGVyaXZl ZF9ieTogICAgamJldWxpY2ggJQorICogICAlZGF0ZV9tb2RpZmllZDogVGh1IE5vdiAwMyAwNDox MzoyMSAyMDA1ICUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDUg Tm92ZWxsLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAqCisgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgICAgICAgICAgKgorICogbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB2ZXJzaW9uIDIgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlICAqCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICog VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsICAgICAgICAgICAqCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAgICAgICAgICoKKyAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSAgICAgICAg ICAgICAgKgorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlICAgICAgICAgKgorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwg Y29udGFjdCBOb3ZlbGwsIEluYy4gICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICoKKyAqIFRvIGNvbnRhY3QgTm92ZWxsIGFib3V0IHRoaXMgZmlsZSBieSBwaHlzaWNh bCBvciBlbGVjdHJvbmljIG1haWwsICAgICAgICAgKgorICogeW91IG1heSBmaW5kIGN1cnJlbnQg Y29udGFjdCBpbmZvcm1hdGlvbiBhdCB3d3cubm92ZWxsLmNvbS4gICAgICAgICAgICAgICAqCisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICoKKyAqCUZpbGUgRGVzY3JpcHRpb246CisgKgorICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworCisjaWYgZGVmaW5lZChfX0FTU0VNQkxZX18pICYmICFkZWZpbmVkKEFTTV9BTUQ2 NF9IKQorI2RlZmluZSBBU01fQU1ENjRfSAorCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+Cisj aW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorCisjaWZkZWYgQ09ORklHX1VOV0lORF9JTkZPCisu ZXF1aXYgZWgucmF4LCAwCisuZXF1aXYgZWgucmN4LCAxCisuZXF1aXYgZWgucmR4LCAyCisuZXF1 aXYgZWgucmJ4LCAzCisuZXF1aXYgZWgucnNwLCA0CisuZXF1aXYgZWgucmJwLCA1CisuZXF1aXYg ZWgucnNpLCA2CisuZXF1aXYgZWgucmRpLCA3CisuZXF1aXYgZWgucjgsIDgKKy5lcXVpdiBlaC5y OSwgOQorLmVxdWl2IGVoLnIxMCwgMTAKKy5lcXVpdiBlaC5yMTEsIDExCisuZXF1aXYgZWgucjEy LCAxMgorLmVxdWl2IGVoLnIxMywgMTMKKy5lcXVpdiBlaC5yMTQsIDE0CisuZXF1aXYgZWgucjE1 LCAxNQorLmVxdWl2IGVoLmVzLCAxNgorLmVxdWl2IGVoLmNzLCAxNworLmVxdWl2IGVoLnNzLCAx OAorLmVxdWl2IGVoLmRzLCAxOQorLmVxdWl2IGVoLmZzLCAyMAorLmVxdWl2IGVoLmdzLCAyMQor CisjIGRlZmluZSBTUCByc3AKKyMgZGVmaW5lIEJQIHJicAorIyBkZWZpbmUgRkxBR1MgcmZsYWdz CisuZXF1aXYgLmVoLnN0a3dvcmQsIHF3b3JkCisuZXF1aXYgLmVoLnByZXNlcnZlZCwgKDEgPDwg ZWgucmJ4KSB8ICgxIDw8IGVoLnJicCkgfCAoMSA8PCBlaC5yMTIpIHwgKDEgPDwgZWgucjEzKSB8 ICgxIDw8IGVoLnIxNCkgfCAoMSA8PCBlaC5yMTUpIFwKKyAgICAgICAgICAgICAgICAgICAgICB8 ICgxIDw8IGVoLmVzKSB8ICgxIDw8IGVoLmNzKSB8ICgxIDw8IGVoLmRzKSB8ICgxIDw8IGVoLnNz KSB8ICgxIDw8IGVoLmZzKSB8ICgxIDw8IGVoLmdzKQorI2VuZGlmCisKKyNpbmNsdWRlICJhc20t eDg2LmgiCisKKy5pZm5kZWYgUFJPQ0VEVVJFX0FMSUdOCisgLmVxdWl2IFBST0NFRFVSRV9BTElH TiwgMHgxMAorLmVuZGlmCisKKy5tYWNybyBsb2FkIHNyZWc6cmVxLCBsb2M6cmVxLCBhdXg6cmVx CisJTE9DQUwgc2V0LCBhZGosIHNraXAKK3NldDoKKwltb3YJc3JlZywgbG9jCitza2lwOgorIC5z ZWN0aW9uIC5maXh1cCwgImF4IgorYWRqOgorCXhvcglhdXgsIGF1eAorIC5pZmVxcyAiZ3MiLCAi JnNyZWciCisgCXN3YXBncworIC5lbmRpZgorCW1vdglzcmVnLCBhdXgKKwlqbXAJc2tpcAorIC5w cmV2aW91cworIC5zZWN0aW9uIF9fZXhfdGFibGUsICJhIgorIC5hbGlnbglxd29yZAorIC5xdWFk CXNldCwgYWRqCisgLnByZXZpb3VzCisuZW5kbQorCisjZW5kaWYgLyogQVNNX0FNRDY0X0ggKi8K SW5kZXg6IDIuNi4xNC1ubGtkL2RlYnVnL25sa2QvbmxrZEFNRDY0LlMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKyAyLjYuMTQt bmxrZC9kZWJ1Zy9ubGtkL25sa2RBTUQ2NC5TCTIwMDUtMTAtMDcgMTc6MTg6NDIuMDAwMDAwMDAw ICswMjAwCkBAIC0wLDAgKzEsNzUgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAg RmlsZSBOYW1lOiAgICAgIG5sa2RBTUQ2NC5TCisgKiAgIENyZWF0ZWQgYnk6ICAgICBqYmV1bGlj aAorICogICAldmVyc2lvbjogICAgICAgMiAlCisgKiAgICVkZXJpdmVkX2J5OiAgICBqYmV1bGlj aCAlCisgKiAgICVkYXRlX21vZGlmaWVkOiBGcmkgT2N0IDA3IDA5OjE4OjMyIDIwMDUgJQorICoK KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICoKKyAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1IE5vdmVsbCwgSW5jLiBBbGwg UmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq CisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yICAgICAgICAgICAgICoKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dmVyc2lvbiAyIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgKgorICogYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgICAgICAgICAg KgorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YgICAgICAgICAgICAqCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgICAgICAgICAgICAgICoKKyAqIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgICAgICAg ICoKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIGNvbnRhY3QgTm92ZWxsLCBJ bmMuICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBUbyBj b250YWN0IE5vdmVsbCBhYm91dCB0aGlzIGZpbGUgYnkgcGh5c2ljYWwgb3IgZWxlY3Ryb25pYyBt YWlsLCAgICAgICAgICoKKyAqIHlvdSBtYXkgZmluZCBjdXJyZW50IGNvbnRhY3QgaW5mb3JtYXRp b24gYXQgd3d3Lm5vdmVsbC5jb20uICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisg KgkgRmlsZSBEZXNjcmlwdGlvbjoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLmVxdWl2 IFBST0NFRFVSRV9BTElHTiwgMQorI2luY2x1ZGUgImFzbS1hbWQ2NC5oIgorI2luY2x1ZGUgPGxp bnV4L25sa2QuaD4KKworLy90b2RvIC5maWxlICJubGtkIgorLnRleHQKKworLy8gdm9pZCBubGtk RGVidWdFdmVudChuaW50X3QgZXZlbnRDb2RlLCAuLi4pOworLnB1YnByb2MgbmxrZERlYnVnRXZl bnQKKwljbXAJZHdvcmQgcHRyIFtyaXArbmxrZEFnZW50Q291bnRdLCAwCisJamcJMGYKKwl0ZXN0 CWRpLCBkaQorCWpnCTFmCiswOgorCW1vdnN4CWVheCwgZGkKKwltb3YJcmRpLCByc2kKKwltb3YJ cnNpLCByZHgKKwltb3YJcmR4LCByY3gKKwltb3YJcmN4LCByOAorCW1vdglyOCwgcjkKKyAuaGlk ZW50cnkgX25sa2RFbnRlckRlYnVnZ2VySW5zdHJ1Y3Rpb25fCisJaW50CTMKKzE6CisJcmV0Cisu ZW5kcCBubGtkRGVidWdFdmVudAorLy8gdm9pZCBubGtkRW50ZXJEZWJ1Z2dlcih2b2lkKTsKKy5w dWJwcm9jIG5sa2RFbnRlckRlYnVnZ2VyCisJbW92CWVheCwgREVCVUdfRVZFTlRfRU5URVJfREVC VUdHRVIKKwlqbXAJX25sa2RFbnRlckRlYnVnZ2VySW5zdHJ1Y3Rpb25fCisuZW5kcCBubGtkRW50 ZXJEZWJ1Z2dlcgorLy8gdm9pZCBubGtkUGFuaWMoY29uc3QgY2hhcipzdHJpbmcsIC4uLik7Cisu cHVicHJvYyBubGtkUGFuaWMKKwltb3YJZWF4LCBERUJVR19FVkVOVF9QQU5JQworCWptcAlfbmxr ZEVudGVyRGVidWdnZXJJbnN0cnVjdGlvbl8KKy5lbmRwIG5sa2RQYW5pYworLy8gdm9pZCBubGtk QXNzZXJ0KGNvbnN0IGNoYXIqc3RyaW5nLCBjb25zdCBjaGFyKmZpbGUsIGNvbnN0IGNoYXIqZnVu YywgbnVpbnRfdCBsaW5lKTsKKy5wdWJwcm9jIG5sa2RBc3NlcnQKKwltb3YJZWF4LCBERUJVR19F VkVOVF9BU1NFUlQKKwlqbXAJX25sa2RFbnRlckRlYnVnZ2VySW5zdHJ1Y3Rpb25fCisuZW5kcCBu bGtkQXNzZXJ0CkluZGV4OiAyLjYuMTQtbmxrZC9kZWJ1Zy9ubGtkL25sa2RBTUQ2NC5oCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAor KysgMi42LjE0LW5sa2QvZGVidWcvbmxrZC9ubGtkQU1ENjQuaAkyMDA1LTEwLTEwIDE0OjUwOjM5 LjAwMDAwMDAwMCArMDIwMApAQCAtMCwwICsxLDU1IEBACisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KyAqCisgKiAgIEZpbGUgTmFtZTogICAgICBubGtkQU1ENjQuaAorICogICBDcmVhdGVkIGJ5OiAg ICAgSmFuIEJldWxpY2gKKyAqICAgJXZlcnNpb246ICAgICAgIDEgJQorICogICAlZGVyaXZlZF9i eTogICAgamJldWxpY2ggJQorICogICAlZGF0ZV9tb2RpZmllZDogTW9uIE9jdCAxMCAwNjo1MDox OSAyMDA1ICUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKgorICogQ29weXJpZ2h0IChjKSAxOTk5LTIwMDUgTm92 ZWxsLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAqCisgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgICAgICAgICAgKgorICogbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB2ZXJzaW9uIDIgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl ICAqCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsICAgICAgICAgICAqCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAgICAgICAgICoKKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSAgICAgICAgICAg ICAgKgorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlICAgICAgICAgKgorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgY29u dGFjdCBOb3ZlbGwsIEluYy4gICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICoKKyAqIFRvIGNvbnRhY3QgTm92ZWxsIGFib3V0IHRoaXMgZmlsZSBieSBwaHlzaWNhbCBv ciBlbGVjdHJvbmljIG1haWwsICAgICAgICAgKgorICogeW91IG1heSBmaW5kIGN1cnJlbnQgY29u dGFjdCBpbmZvcm1hdGlvbiBhdCB3d3cubm92ZWxsLmNvbS4gICAgICAgICAgICAgICAqCisgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorICoKKyAqCUZpbGUgRGVzY3JpcHRpb246CisgKgorICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworCisjaWZuZGVmIENPTkZJR19DREUKK3N0YXRpYyB2b2lkIF9zZXRfZGVidWdyZWcodWlu dHB0cl90IHZhbHVlLCBudWludF90IHJlZ251bSkgeworCXN3aXRjaChyZWdudW0pIHsKKwljYXNl IDA6IF9fYXNtX18oIm1vdnEgJTAsJSVkYjAiIDogOiAiciIgKHZhbHVlKSk7IGJyZWFrOworCWNh c2UgMTogX19hc21fXygibW92cSAlMCwlJWRiMSIgOiA6ICJyIiAodmFsdWUpKTsgYnJlYWs7CisJ Y2FzZSAyOiBfX2FzbV9fKCJtb3ZxICUwLCUlZGIyIiA6IDogInIiICh2YWx1ZSkpOyBicmVhazsK KwljYXNlIDM6IF9fYXNtX18oIm1vdnEgJTAsJSVkYjMiIDogOiAiciIgKHZhbHVlKSk7IGJyZWFr OworCWNhc2UgNjogX19hc21fXygibW92cSAlMCwlJWRiNiIgOiA6ICJyIiAodmFsdWUpKTsgYnJl YWs7CisJY2FzZSA3OiBfX2FzbV9fKCJtb3ZxICUwLCUlZGI3IiA6IDogInIiICh2YWx1ZSkpOyBi cmVhazsKKwl9Cit9CitzdGF0aWMgaW50IF9kaXNhYmxlX2RlYnVncmVnKHN0cnVjdCBwdF9yZWdz ICpyZWdzLCBudWludF90IHJlZ251bSkKK3sKKwlfc2V0X2RlYnVncmVnKDAsIDcpOworfQorc3Rh dGljIGludCBfcmVzdG9yZV9kZWJ1Z3JlZyh2b2lkKQoreworCV9zZXRfZGVidWdyZWcoY3VycmVu dC0+dGhyZWFkLmRlYnVncmVnNywgNyk7Cit9CisjZW5kaWYKSW5kZXg6IDIuNi4xNC1ubGtkL2lu Y2x1ZGUvYXNtLXg4Nl82NC9mdGEtZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrIDIuNi4xNC1ubGtkL2luY2x1ZGUv YXNtLXg4Nl82NC9mdGEtZnJhbWUuaAkyMDA1LTExLTAzIDExOjUxOjExLjAwMDAwMDAwMCArMDEw MApAQCAtMCwwICsxLDIxNiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBGaWxl IE5hbWU6ICAgICAgZnRhLWZyYW1lLmgKKyAqICAgQ3JlYXRlZCBieTogICAgIENseWRlIEdyaWZm aW4KKyAqICAgRGF0ZSBjcmVhdGVkOiAgIDEvMS8xOTk5CisgKgorICogICAldmVyc2lvbjogICAg ICAgOCAlCisgKiAgICVkZXJpdmVkX2J5OiAgICBqYmV1bGljaCAlCisgKiAgICVkYXRlX21vZGlm aWVkOiBUaHUgTm92IDAzIDAzOjUwOjU3IDIwMDUgJQorICoKKyAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBDb3B5 cmlnaHQgKGMpIDE5OTktMjAwNSBOb3ZlbGwsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAg ICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgICAgICAg ICAqCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHZlcnNpb24gMiBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgICoKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAgICAgICAgICoKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgICAgICAg ICAgKgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiBTZWUgdGhlICAgICAgICAgICAgICAqCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgICAgICAgICAqCisgKiBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbTsgaWYgbm90LCBjb250YWN0IE5vdmVsbCwgSW5jLiAgICAgICAgICAgICAgICAg ICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogVG8gY29udGFjdCBOb3ZlbGwgYWJvdXQg dGhpcyBmaWxlIGJ5IHBoeXNpY2FsIG9yIGVsZWN0cm9uaWMgbWFpbCwgICAgICAgICAqCisgKiB5 b3UgbWF5IGZpbmQgY3VycmVudCBjb250YWN0IGluZm9ybWF0aW9uIGF0IHd3dy5ub3ZlbGwuY29t LiAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJRmlsZSBEZXNjcmlwdGlvbjoK KyAqICBUaGlzIG1vZHVsZSBjb250YWlucyB0aGUgZGVmaW5pdGlvbiBvZiBhIHRyYXAgZnJhbWUu CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9BU01fWDg2XzY0X0ZUQV9G UkFNRV9ICisjZGVmaW5lIF9BU01fWDg2XzY0X0ZUQV9GUkFNRV9ICisKKy8qIHZhbHVlcyBmb3Ig ZnRhSW50ZXJydXB0aW9uQ3R4X3Muc3RhdGUgKi8KKyMgaWZkZWYgQ09ORklHX05MS0RfRlRBCisj ICBkZWZpbmUgRlJBTUVfQ09NUExFVEVfQklUIDAKKyMgIGRlZmluZSBGUkFNRV9DT01QTEVURSAo MSA8PCBGUkFNRV9DT01QTEVURV9CSVQpCisjICBkZWZpbmUgRlJBTUVfTkVTVEVEX0JJVCAxCisj ICBkZWZpbmUgRlJBTUVfTkVTVEVEICgxIDw8IEZSQU1FX05FU1RFRF9CSVQpCisjIGVuZGlmCisK KyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIyBpbmNsdWRlIDxhc20veDg2XzY0Lmg+CisKKyMg aWZuZGVmIF9fQVNTRU1CTFlfXworCitzdHJ1Y3QgZnRhSW50ZXJydXB0aW9uQ3R4X3MgeworCXVp bnQzMl90CXR5cGU7CQkvKiBUcmFwIHR5cGUgKi8KKwlpbnQxNl90CXN1Yl90eXBlOwkJLyogRXh0 ZW5kZWQgdHlwZSAqLworCXVpbnQxNl90CXN0YXRlOwkJLyogRnJhbWV3b3JrL0RlYnVnZ2VyIG9u bHkgKi8KKwl1aW50NjRfdAllYzsJCQkvKiBFcnJvciBjb2RlICovCisJdWludDY0X3QJY3IwOwor CXVpbnQ2NF90CWNyNDsKKwl1aW50NjRfdAljcjI7CisJdWludDY0X3QJY3IzOworCXVpbnQ2NF90 CWRlYnVnQ3RsOworCXVpbnQ2NF90CWRyNzsKKwl1aW50MTZfdAlsZHRyOworCXVpbnQxNl90CXRy OworCXVpbnQzMl90CV9zcGFyZV87CisJdWludDE2X3QJZHM7CisJdWludDE2X3QJZXM7CisJdWlu dDE2X3QJZnM7CisJdWludDE2X3QJZ3M7CisJdWludDY0X3QJZnNfYmFzZTsKKwl1aW50NjRfdAln c19iYXNlOworCWZ4c2F2ZV90CWZwX21teF94bW07CisJdWludDY0X3QJY3I4OworCXVuaW9uIHsK KwkJc3RydWN0IHB0X3JlZ3MgcHRfcmVnczsKKwkJc3RydWN0IHsKKwkJCXVuaW9uIHsKKwkJCQl1 aW50NjRfdAlyMTU7CisJCQkJdWludDMyX3QJcjE1ZDsKKwkJCQl1aW50MTZfdAlyMTV3OworCQkJ CXVpbnQ4X3QJcjE1YjsKKwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDY0X3QJcjE0OworCQkJ CXVpbnQzMl90CXIxNGQ7CisJCQkJdWludDE2X3QJcjE0dzsKKwkJCQl1aW50OF90CXIxNGI7CisJ CQl9OworCQkJdW5pb24geworCQkJCXVpbnQ2NF90CXIxMzsKKwkJCQl1aW50MzJfdAlyMTNkOwor CQkJCXVpbnQxNl90CXIxM3c7CisJCQkJdWludDhfdAlyMTNiOworCQkJfTsKKwkJCXVuaW9uIHsK KwkJCQl1aW50NjRfdAlyMTI7CisJCQkJdWludDMyX3QJcjEyZDsKKwkJCQl1aW50MTZfdAlyMTJ3 OworCQkJCXVpbnQ4X3QJcjEyYjsKKwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDY0X3QJcmJw OworCQkJCXVpbnQzMl90CWVicDsKKwkJCQl1aW50MTZfdAlicDsKKwkJCQl1aW50OF90CWJwbDsK KwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDY0X3QJcmJ4OworCQkJCXVpbnQzMl90CWVieDsK KwkJCQl1aW50MTZfdAlieDsKKwkJCQlzdHJ1Y3QgeworCQkJCQl1aW50OF90CWJsOworCQkJCQl1 aW50OF90CWJoOworCQkJCX07CisJCQl9OworCQkJdW5pb24geworCQkJCXVpbnQ2NF90CXIxMTsK KwkJCQl1aW50MzJfdAlyMTFkOworCQkJCXVpbnQxNl90CXIxMXc7CisJCQkJdWludDhfdAlyMTFi OworCQkJfTsKKwkJCXVuaW9uIHsKKwkJCQl1aW50NjRfdAlyMTA7CisJCQkJdWludDMyX3QJcjEw ZDsKKwkJCQl1aW50MTZfdAlyMTB3OworCQkJCXVpbnQ4X3QJcjEwYjsKKwkJCX07CisJCQl1bmlv biB7CisJCQkJdWludDY0X3QJcjk7CisJCQkJdWludDMyX3QJcjlkOworCQkJCXVpbnQxNl90CXI5 dzsKKwkJCQl1aW50OF90CXI5YjsKKwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDY0X3QJcjg7 CisJCQkJdWludDMyX3QJcjhkOworCQkJCXVpbnQxNl90CXI4dzsKKwkJCQl1aW50OF90CXI4YjsK KwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDY0X3QJcmF4OworCQkJCXVpbnQzMl90CWVheDsK KwkJCQl1aW50MTZfdAlheDsKKwkJCQlzdHJ1Y3QgeworCQkJCQl1aW50OF90CWFsOworCQkJCQl1 aW50OF90CWFoOworCQkJCX07CisJCQl9OworCQkJdW5pb24geworCQkJCXVpbnQ2NF90CXJjeDsK KwkJCQl1aW50MzJfdAllY3g7CisJCQkJdWludDE2X3QJY3g7CisJCQkJc3RydWN0IHsKKwkJCQkJ dWludDhfdAljbDsKKwkJCQkJdWludDhfdAljaDsKKwkJCQl9OworCQkJfTsKKwkJCXVuaW9uIHsK KwkJCQl1aW50NjRfdAlyZHg7CisJCQkJdWludDMyX3QJZWR4OworCQkJCXVpbnQxNl90CWR4Owor CQkJCXN0cnVjdCB7CisJCQkJCXVpbnQ4X3QJZGw7CisJCQkJCXVpbnQ4X3QJZGg7CisJCQkJfTsK KwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDY0X3QJcnNpOworCQkJCXVpbnQzMl90CWVzaTsK KwkJCQl1aW50MTZfdAlzaTsKKwkJCQl1aW50OF90CXNpbDsKKwkJCX07CisJCQl1bmlvbiB7CisJ CQkJdWludDY0X3QJcmRpOworCQkJCXVpbnQzMl90CWVkaTsKKwkJCQl1aW50MTZfdAlkaTsKKwkJ CQl1aW50OF90CWRpbDsKKwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDY0X3QJb3JpZ19yYXg7 CisjICBpZmRlZiBDT05GSUdfTkxLRF9GVEEKKwkJCQl1aW50NjRfdAlfZWNfcmF3OworIyAgZW5k aWYKKwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDY0X3QJcmlwOworCQkJCXVpbnQzMl90CWVp cDsKKwkJCX07CisJCQl1aW50MTZfdAljcywgX2NzX3BhZFszXTsKKwkJCXVuaW9uIHsKKwkJCQl1 aW50NjRfdAlyZmxhZ3M7CisJCQkJdWludDMyX3QJZWZsYWdzOworCQkJCXVpbnQxNl90CWZsYWdz OworCQkJfTsKKwkJCXVuaW9uIHsKKwkJCQl1aW50NjRfdAlyc3A7CisJCQkJdWludDMyX3QJZXNw OworCQkJCXVpbnQxNl90CXNwOworCQkJCXVpbnQ4X3QJc3BsOworCQkJfTsKKwkJCXVpbnQxNl90 CXNzLCBfc3NfcGFkWzNdOworCQl9OworIyAgaWZkZWYgQ09ORklHX05MS0RfRlRBCisJfTsKKyMg ICBkZWZpbmUgRlJBTUVfUFRSRUdTKGZyYW1lLCBmaWVsZCkgKGZyYW1lKS0+ZmllbGQKKyMgIGVs c2UKKwl9ICpwdF9yZWdzOworIyAgIGRlZmluZSBGUkFNRV9QVFJFR1MoZnJhbWUsIGZpZWxkKSAo ZnJhbWUpLT5wdF9yZWdzLT5maWVsZAorIyAgZW5kaWYKK307CisjIGVuZGlmIC8qIF9fQVNTRU1C TFlfXyAqLworCisjZW5kaWYgLyogX0FTTV9YODZfNjRfRlRBX0ZSQU1FX0ggKi8KSW5kZXg6IDIu Ni4xNC1ubGtkL2luY2x1ZGUvYXNtLXg4Nl82NC9mdGEtdHlwZS5oCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysgMi42LjE0LW5s a2QvaW5jbHVkZS9hc20teDg2XzY0L2Z0YS10eXBlLmgJMjAwNS0wNi0yNyAxNDowNDoyMS4wMDAw MDAwMDAgKzAyMDAKQEAgLTAsMCArMSw4OSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgor ICogICBGaWxlIE5hbWU6ICAgICAgZnRhLXR5cGUuaAorICogICBDcmVhdGVkIGJ5OiAgICAgQ2x5 ZGUgR3JpZmZpbgorICogICBEYXRlIGNyZWF0ZWQ6ICAgMS8xLzE5OTkKKyAqCisgKiAgICV2ZXJz aW9uOiAgICAgICA1ICUKKyAqICAgJWRlcml2ZWRfYnk6ICAgIGpiZXVsaWNoICUKKyAqICAgJWRh dGVfbW9kaWZpZWQ6IE1vbiBKdW4gMjcgMDU6MTE6MzQgMjAwNSAlCisgKgorICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoK KyAqIENvcHlyaWdodCAoYykgMTk5OS0yMDA1IE5vdmVsbCwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy dmVkLiAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAg ICAgICAgICAgICoKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdmVyc2lvbiAyIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgKgorICogYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgICAgICAgICAgKgorICogYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg ICAgICAgICAgICAqCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuIFNlZSB0aGUgICAgICAgICAgICAgICoKKyAqIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgICAgICAgICoKKyAqIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIGNvbnRhY3QgTm92ZWxsLCBJbmMuICAgICAgICAg ICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBUbyBjb250YWN0IE5vdmVs bCBhYm91dCB0aGlzIGZpbGUgYnkgcGh5c2ljYWwgb3IgZWxlY3Ryb25pYyBtYWlsLCAgICAgICAg ICoKKyAqIHlvdSBtYXkgZmluZCBjdXJyZW50IGNvbnRhY3QgaW5mb3JtYXRpb24gYXQgd3d3Lm5v dmVsbC5jb20uICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKglGaWxlIERlc2Ny aXB0aW9uOgorICogIFRoaXMgbW9kdWxlIGNvbnRhaW5zIHRoZSBkZWZpbml0aW9uIG9mIGEgdHJh cCBmcmFtZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX0FTTV9YODZf NjRfRlRBX1RZUEVfSAorI2RlZmluZSBfQVNNX1g4Nl82NF9GVEFfVFlQRV9ICisKKy8qCisgKiBm dGFJbnRlcnJ1cHRpb25JZF90CisgKgorICogZnRhSW50ZXJydXB0aW9uSWRfdCB1bmlxdWVseSBp ZGVudGlmaWVzIGVhY2ggdHlwZSBvZiBpbnRlcnJ1cHRpb24uCisgKgorICogTk9URToKKyAqICAg IEludGVycnVwdGlvbiBmcmFtZXMgbWF5IGJlIGRpZmZlcmVudCBmb3IgZmF1bHRzLCB0cmFwcywg ZXh0ZXJuYWwKKyAqICAgIGludGVycnVwdHMgYW5kIGFib3J0cy4gIFRoZSBjb25zdW1lciBvZiBh biBpbnRlcnJ1cHRpb24gZnJhbWUKKyAqICAgIG5lZWRzIHRvIGJlIGF3YXJlIG9mIHdoaWNoIGlu dGVycnVwdGlvbiB0eXBlcyBhcmUgYXNzb2NpYXRlZCB3aXRoCisgKiAgICB3aXRoIGludGVycnVw dGlvbiBmcmFtZSB0eXBlcy4KKyAqLworZW51bSBmdGFJbnRlcnJ1cHRpb25JZF9lCit7CisJQU1E NjRfRElWSURFX0VSUk9SLAorCUFNRDY0X0RFQlVHLAorCUFNRDY0X05NSSwKKwlBTUQ2NF9CUkVB S1BPSU5ULAorCUFNRDY0X09WRVJGTE9XLAkJCQkvKiBjb21wYXRpYmlsaXR5IG1vZGUgb25seSAq LworCUFNRDY0X0JPVU5EU19DSEVDSywJCQkJLyogY29tcGF0aWJpbGl0eSBtb2RlIG9ubHkgKi8K KwlBTUQ2NF9JTExFR0FMX09QQ09ERSwKKwlBTUQ2NF9ERVZJQ0VfTk9UX0FWQUlMQUJMRSwKKwlB TUQ2NF9ET1VCTEVfRkFVTFQsCisJQU1ENjRfUlNWRF8wOSwKKwlBTUQ2NF9JTlZBTElEX1RTUywK KwlBTUQ2NF9TRUdNRU5UX05PVF9QUkVTRU5ULAorCUFNRDY0X1NUQUNLX0ZBVUxULAorCUFNRDY0 X0dFTkVSQUxfUFJPVEVDVElPTl9GQVVMVCwKKwlBTUQ2NF9QQUdFX0ZBVUxULAorCUFNRDY0X1JT VkRfMEYsCisJQU1ENjRfRlBfRVJST1IsCisJQU1ENjRfQUxJR05NRU5UX0NIRUNLLAorCUFNRDY0 X01BQ0hJTkVfQ0hFQ0ssCisJQU1ENjRfU0lNRF9GUF9FUlJPUiwKKwlBTUQ2NF9SU1ZEXzE0LAor CUFNRDY0X1JTVkRfMTUsCisJQU1ENjRfUlNWRF8xNiwKKwlBTUQ2NF9SU1ZEXzE3LAorCUFNRDY0 X1JTVkRfMTgsCisJQU1ENjRfUlNWRF8xOSwKKwlBTUQ2NF9SU1ZEXzFBLAorCUFNRDY0X1JTVkRf MUIsCisJQU1ENjRfUlNWRF8xQywKKwlBTUQ2NF9SU1ZEXzFELAorCUFNRDY0X1JTVkRfMUUsCisJ QU1ENjRfUlNWRF8xRgorfTsKKworI2VuZGlmIC8qIF9BU01fWDg2XzY0X0ZUQV9UWVBFX0ggKi8K SW5kZXg6IDIuNi4xNC1ubGtkL2luY2x1ZGUvYXNtLXg4Nl82NC94ODZfNjQuaAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrIDIu Ni4xNC1ubGtkL2luY2x1ZGUvYXNtLXg4Nl82NC94ODZfNjQuaAkyMDA1LTExLTAzIDExOjUxOjQ0 LjAwMDAwMDAwMCArMDEwMApAQCAtMCwwICsxLDkzNCBAQAorLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisgKgorICogICBGaWxlIE5hbWU6ICAgICAgeDg2XzY0LmgKKyAqICAgQ3JlYXRlZCBieTogICAg IEphbiBCZXVsaWNoCisgKiAgIERhdGUgY3JlYXRlZDogICBXZWQgQXVnIDI4IDAyOjU4OjUwIDIw MDIKKyAqCisgKiAgICV2ZXJzaW9uOiAgICAgICA5ICUKKyAqICAgJWRlcml2ZWRfYnk6ICAgIGpi ZXVsaWNoICUKKyAqICAgJWRhdGVfbW9kaWZpZWQ6IFRodSBOb3YgMDMgMDM6NTE6MzEgMjAwNSAl CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICoKKyAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1IE5vdmVsbCwgSW5j LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yICAgICAgICAgICAgICoKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdmVyc2lvbiAyIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgKgorICog YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgICAg ICAgICAgKgorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgICAgICAgICAgICAqCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgICAgICAgICAgICAgICoKKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAg ICAgICAgICoKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIGNvbnRhY3QgTm92 ZWxsLCBJbmMuICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisg KiBUbyBjb250YWN0IE5vdmVsbCBhYm91dCB0aGlzIGZpbGUgYnkgcGh5c2ljYWwgb3IgZWxlY3Ry b25pYyBtYWlsLCAgICAgICAgICoKKyAqIHlvdSBtYXkgZmluZCBjdXJyZW50IGNvbnRhY3QgaW5m b3JtYXRpb24gYXQgd3d3Lm5vdmVsbC5jb20uICAgICAgICAgICAgICAgKgorICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KyAqCisgKglGaWxlIERlc2NyaXB0aW9uOgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor I2lmbmRlZiBfQVNNX1g4Nl82NF9YODZfNjRfSAorI2RlZmluZSBfQVNNX1g4Nl82NF9YODZfNjRf SAorCisjaWZkZWYgX19BU1NFTUJMWV9fCisjIGRlZmluZSBVSU5UNjRfQyh2KSAodikKKyNlbHNl CisjIGluY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjZW5kaWYKKworLyoKKyAqIFJGTEFHUworICov CisjZGVmaW5lIFJGTEFHU19NQloJCQlVSU5UNjRfQygweGZmZmZmZmZmZmZjMDgwMjgpCisjZGVm aW5lIFJGTEFHU19NQlMJCQlVSU5UNjRfQygweDAwMDAwMDAwMDAwMDAwMDIpCisjZGVmaW5lIFJG TEFHU19DRgkJCTAKKyNkZWZpbmUgUkZMQUdTX1BGCQkJMgorI2RlZmluZSBSRkxBR1NfQUYJCQk0 CisjZGVmaW5lIFJGTEFHU19aRgkJCTYKKyNkZWZpbmUgUkZMQUdTX1NGCQkJNworI2RlZmluZSBS RkxBR1NfVEYJCQk4CisjZGVmaW5lIFJGTEFHU19JRgkJCTkKKyNkZWZpbmUgUkZMQUdTX0RGCQkJ MTAKKyNkZWZpbmUgUkZMQUdTX09GCQkJMTEKKyNkZWZpbmUgUkZMQUdTX0lPUEwJCQkxMgorI2Rl ZmluZSBSRkxBR1NfSU9QTF9MRU4JCTIKKyNkZWZpbmUgUkZMQUdTX05UCQkJMTQKKyNkZWZpbmUg UkZMQUdTX1JGCQkJMTYKKyNkZWZpbmUgUkZMQUdTX1ZNCQkJMTcKKyNkZWZpbmUgUkZMQUdTX0FD CQkJMTgKKyNkZWZpbmUgUkZMQUdTX1ZJRgkJCTE5CisjZGVmaW5lIFJGTEFHU19WSVAJCQkyMAor I2RlZmluZSBSRkxBR1NfSUQJCQkyMQorCisvKgorICogUHJpdmlsZWdlIGxldmVscworICovCisj ZGVmaW5lIFBMX0tFUk5FTAkJCTAKKyNkZWZpbmUgUExfVVNFUgkJCTMKKworLyoKKyAqIFNlbGVj dG9yIGxheW91dAorICovCisjZGVmaW5lIFNFTEVDVE9SX1JQTAkJMAorI2RlZmluZSBTRUxFQ1RP Ul9SUExfTEVOCQkyCisjZGVmaW5lIFNFTEVDVE9SX1RJCQkJMgorI2RlZmluZSBTRUxFQ1RPUl9J TkRFWAkJMworI2RlZmluZSBTRUxFQ1RPUl9JTkRFWF9MRU4JMTMKKworLyoKKyAqIERlc2NyaXB0 b3IgQXR0cmlidXRlcworICovCisjZGVmaW5lIERFU0NSSVBUT1JfVFlQRQkJMAorI2RlZmluZSBE RVNDUklQVE9SX1RZUEVfTEVOCTUKKyMJZGVmaW5lIERFU0NSSVBUT1JfSU5WQUxJRAkweDAwCisj CWRlZmluZSBERVNDUklQVE9SX0xEVAkJMHgwMgorIwlkZWZpbmUgREVTQ1JJUFRPUl9BVkFJTFRT UwkweDA5CisjCWRlZmluZSBERVNDUklQVE9SX0JVU1lUU1MJMHgwYgorIwlkZWZpbmUgREVTQ1JJ UFRPUl9DQUxMR0FURQkweDBjCisjCWRlZmluZSBERVNDUklQVE9SX0lOVEdBVEUJMHgwZQorIwlk ZWZpbmUgREVTQ1JJUFRPUl9UUkFQR0FURQkweDBmCisjCWRlZmluZSBERVNDUklQVE9SX0RBVEFT RUcJMHgxMAorIwlkZWZpbmUgREVTQ1JJUFRPUl9DT0RFU0VHCTB4MTgKKyMJZGVmaW5lIERFU0NS SVBUT1JfQ09ORk9STUlORwkweDFjCisjCWRlZmluZSBERVNDUjMyX0RBVEFfUk8JCTB4MTAKKyMJ ZGVmaW5lIERFU0NSMzJfREFUQV9ST19BQ0MJMHgxMQorIwlkZWZpbmUgREVTQ1IzMl9EQVRBX1JX CQkweDEyCisjCWRlZmluZSBERVNDUjMyX0RBVEFfUldfQUNDCTB4MTMKKyMJZGVmaW5lIERFU0NS MzJfRE9XTl9STwkJMHgxNAorIwlkZWZpbmUgREVTQ1IzMl9ET1dOX1JPX0FDQwkweDE1CisjCWRl ZmluZSBERVNDUjMyX0RPV05fUlcJCTB4MTYKKyMJZGVmaW5lIERFU0NSMzJfRE9XTl9SV19BQ0MJ MHgxNworIwlkZWZpbmUgREVTQ1IzMl9DT0RFX1hPCQkweDE4CisjCWRlZmluZSBERVNDUjMyX0NP REVfWE9fQUNDCTB4MTkKKyMJZGVmaW5lIERFU0NSMzJfQ09ERV9YUgkJMHgxYQorIwlkZWZpbmUg REVTQ1IzMl9DT0RFX1hSX0FDQwkweDFiCisjCWRlZmluZSBERVNDUjMyX0NPTkZfWE8JCTB4MWMK KyMJZGVmaW5lIERFU0NSMzJfQ09ORl9YT19BQ0MJMHgxZAorIwlkZWZpbmUgREVTQ1IzMl9DT05G X1hSCQkweDFlCisjCWRlZmluZSBERVNDUjMyX0NPTkZfWFJfQUNDCTB4MWYKKyNkZWZpbmUgREVT Q1IzMl9BCQkJMAorI2RlZmluZSBERVNDUjMyX1cJCQkxCisjZGVmaW5lIERFU0NSMzJfUgkJCTEK KyNkZWZpbmUgREVTQ1IzMl9FCQkJMgorI2RlZmluZSBERVNDUklQVE9SX0MJCTIKKyNkZWZpbmUg REVTQ1JJUFRPUl9DT0RFCQkzCisjZGVmaW5lIERFU0NSSVBUT1JfUwkJNAorI2RlZmluZSBERVND UklQVE9SX0RQTAkJNQorI2RlZmluZSBERVNDUklQVE9SX0RQTF9MRU4JMgorI2RlZmluZSBERVND UklQVE9SX1AJCTcKKworI2RlZmluZSBERVNDUklQVE9SX0FWTAkJMTIKKyNkZWZpbmUgREVTQ1JJ UFRPUl9MCQkxMworI2RlZmluZSBERVNDUklQVE9SX0QJCTE0CisjZGVmaW5lIERFU0NSMzJfQgkJ CTE0CisjZGVmaW5lIERFU0NSMzJfRwkJCTE1CisKKy8qCisgKiBFcnJvciBjb2RlIGxheW91dCAo ZGlmZmVyZW50IGZvciBQYWdlIEZhdWx0KQorICovCisjZGVmaW5lIEVDX0VYVAkJCQkwCisjZGVm aW5lIEVDX0lEVAkJCQkxCisjZGVmaW5lIEVDX1RJCQkJCTIKKyNkZWZpbmUgRUNfU0VMRUNUT1Jf SU5ERVgJMworI2RlZmluZSBFQ19TRUxFQ1RPUl9JTkRFWF9MRU4JMTMKKworLyoKKyAqIENvbnRy b2wgUmVnaXN0ZXIgMAorICovCisjZGVmaW5lIENSMF9NQloJCQlVSU5UNjRfQygweGZmZmZmZmZm MWZmYWZmYzApCisjZGVmaW5lIENSMF9QRQkJCQkwCisjZGVmaW5lIENSMF9NUAkJCQkxCisjZGVm aW5lIENSMF9FTQkJCQkyCisjZGVmaW5lIENSMF9UUwkJCQkzCisjZGVmaW5lIENSMF9FVAkJCQk0 CisjZGVmaW5lIENSMF9ORQkJCQk1CisjZGVmaW5lIENSMF9XUAkJCQkxNgorI2RlZmluZSBDUjBf QU0JCQkJMTgKKyNkZWZpbmUgQ1IwX05XCQkJCTI5CisjZGVmaW5lIENSMF9DRAkJCQkzMAorI2Rl ZmluZSBDUjBfUEcJCQkJMzEKKworLyoKKyAqIENvbnRyb2wgUmVnaXN0ZXIgMworICovCisjZGVm aW5lIENSM19NQloJCQlVSU5UNjRfQygweDAwMDAwMDAwMDAwMDBmZTcpCisjZGVmaW5lIENSM19Q V1QJCQkzCisjZGVmaW5lIENSM19QQ0QJCQk0CisjZGVmaW5lIENSM19QSFlTCQkJMTIKKyNkZWZp bmUgQ1IzX1BIWVNfTEVOCQk0MAorCisvKgorICogQ29udHJvbCBSZWdpc3RlciA0CisgKi8KKyNk ZWZpbmUgQ1I0X01CWgkJCVVJTlQ2NF9DKDB4ZmZmZmZmZmZmZmZmZjgwMCkKKyNkZWZpbmUgQ1I0 X1ZNRQkJCTAKKyNkZWZpbmUgQ1I0X1BWSQkJCTEKKyNkZWZpbmUgQ1I0X1RTRAkJCTIKKyNkZWZp bmUgQ1I0X0RFCQkJCTMKKyNkZWZpbmUgQ1I0X1BTRQkJCTQKKyNkZWZpbmUgQ1I0X1BBRQkJCTUK KyNkZWZpbmUgQ1I0X01DRQkJCTYKKyNkZWZpbmUgQ1I0X1BHRQkJCTcKKyNkZWZpbmUgQ1I0X1BD RQkJCTgKKyNkZWZpbmUgQ1I0X09TRlhTUgkJCTkKKyNkZWZpbmUgQ1I0X09TWE1NRVhDUFQJCTEw CisKKy8qCisgKiBDb250cm9sIFJlZ2lzdGVyIDgKKyAqLworI2RlZmluZSBDUjhfTUJaCQkJVUlO VDY0X0MoMHhmZmZmZmZmZmZmZmZmZmYwKQorI2RlZmluZSBDUjhfVFBSCQkJMAorI2RlZmluZSBD UjhfVFBSX0xFTgkJCTQKKworLyoKKyAqIFBhZ2UgRGlyZWN0b3J5IFBvaW50ZXIgVGFibGUgRW50 cnkKKyAqLworI2RlZmluZSBQTUw0RV9NQloJCQlVSU5UNjRfQygweDAwMDAwMDAwMDAwMDAxYzAp CisjZGVmaW5lIFBNTDRFX1AJCQkwCisjZGVmaW5lIFBNTDRFX1cJCQkxCisjZGVmaW5lIFBNTDRF X1UJCQkyCisjZGVmaW5lIFBNTDRFX1BXVAkJCTMKKyNkZWZpbmUgUE1MNEVfUENECQkJNAorI2Rl ZmluZSBQTUw0RV9BCQkJNQorI2RlZmluZSBQTUw0RV9BVkwJCQk5CisjZGVmaW5lIFBNTDRFX0FW TF9MRU4JCTMKKyNkZWZpbmUgUE1MNEVfUEhZUwkJCTEyCisjZGVmaW5lIFBNTDRFX1BIWVNfTEVO CQk0MAorI2RlZmluZSBQTUw0RV9BVkwyCQkJNTIKKyNkZWZpbmUgUE1MNEVfQVZMMl9MRU4JCTEx CisjZGVmaW5lIFBNTDRFX05YCQkJNjMKKworLyoKKyAqIFBhZ2UgRGlyZWN0b3J5IFBvaW50ZXIg VGFibGUgRW50cnkKKyAqLworI2RlZmluZSBQRFBFX01CWgkJCVVJTlQ2NF9DKDB4MDAwMDAwMDAw MDAwMDFjMCkKKyNkZWZpbmUgUERQRV9QCQkJCTAKKyNkZWZpbmUgUERQRV9XCQkJCTEKKyNkZWZp bmUgUERQRV9VCQkJCTIKKyNkZWZpbmUgUERQRV9QV1QJCQkzCisjZGVmaW5lIFBEUEVfUENECQkJ NAorI2RlZmluZSBQRFBFX0EJCQkJNQorI2RlZmluZSBQRFBFX0FWTAkJCTkKKyNkZWZpbmUgUERQ RV9BVkxfTEVOCQkzCisjZGVmaW5lIFBEUEVfUEhZUwkJCTEyCisjZGVmaW5lIFBEUEVfUEhZU19M RU4JCTQwCisjZGVmaW5lIFBEUEVfQVZMMgkJCTUyCisjZGVmaW5lIFBEUEVfQVZMMl9MRU4JCTEx CisjZGVmaW5lIFBEUEVfTlgJCQk2MworCisvKgorICogUGFnZSBEaXJlY3RvcnkgRW50cnkKKyAq LworI2RlZmluZSBQREVfTUJaCQkJVUlOVDY0X0MoMHgwMDAwMDAwMDAwMDAwMWMwKQorI2RlZmlu ZSBQREVfUAkJCQkwCisjZGVmaW5lIFBERV9XCQkJCTEKKyNkZWZpbmUgUERFX1UJCQkJMgorI2Rl ZmluZSBQREVfUFdUCQkJMworI2RlZmluZSBQREVfUENECQkJNAorI2RlZmluZSBQREVfQQkJCQk1 CisjZGVmaW5lIFBERV9MQVJHRV9QVEUJCTcKKyNkZWZpbmUgUERFX0FWTAkJCTkKKyNkZWZpbmUg UERFX0FWTF9MRU4JCQkzCisjZGVmaW5lIFBERV9QSFlTCQkJMTIKKyNkZWZpbmUgUERFX1BIWVNf TEVOCQk0MAorI2RlZmluZSBQREVfQVZMMgkJCTUyCisjZGVmaW5lIFBERV9BVkwyX0xFTgkJMTEK KyNkZWZpbmUgUERFX05YCQkJCTYzCisKKy8qCisgKiBQYWdlIFRhYmxlIEVudHJ5CisgKi8KKyNk ZWZpbmUgUFRFNEtfTUJaCQkJKFVJTlQ2NF9DKDEpIDw8IFBERV9MQVJHRV9QVEUpCisjZGVmaW5l IFBURTJNX01CWgkJCVVJTlQ2NF9DKDB4MDAwMDAwMDAwMDFmZTAwMCkKKyNkZWZpbmUgUFRFMk1f TUJTCQkJKFVJTlQ2NF9DKDEpIDw8IFBERV9MQVJHRV9QVEUpCisjZGVmaW5lIFBURV9QCQkJCTAK KyNkZWZpbmUgUFRFX1cJCQkJMQorI2RlZmluZSBQVEVfVQkJCQkyCisjZGVmaW5lIFBURV9QV1QJ CQkzCisjZGVmaW5lIFBURV9QQ0QJCQk0CisjZGVmaW5lIFBURV9BCQkJCTUKKyNkZWZpbmUgUFRF X0QJCQkJNgorI2RlZmluZSBQVEU0S19QQVQJCQk3CisjZGVmaW5lIFBURV9HCQkJCTgKKyNkZWZp bmUgUFRFX0FWTAkJCTkKKyNkZWZpbmUgUFRFX0FWTF9MRU4JCQkzCisjZGVmaW5lIFBURTJNX1BB VAkJCTEyCisjZGVmaW5lIFBURTRLX1BIWVMJCQkxMgorI2RlZmluZSBQVEU0S19QSFlTX0xFTgkJ NDAKKyNkZWZpbmUgUFRFMk1fUEhZUwkJCTIxCisjZGVmaW5lIFBURTJNX1BIWVNfTEVOCQkzMQor I2RlZmluZSBQVEVfQVZMMgkJCTUyCisjZGVmaW5lIFBURV9BVkwyX0xFTgkJMTEKKyNkZWZpbmUg UFRFX05YCQkJCTYzCisKKy8qCisgKiBEZWJ1ZyBSZWdpc3RlciA2CisgKi8KKyNkZWZpbmUgRFI2 X0IwCQkJCTAKKyNkZWZpbmUgRFI2X0IxCQkJCTEKKyNkZWZpbmUgRFI2X0IyCQkJCTIKKyNkZWZp bmUgRFI2X0IzCQkJCTMKKyNkZWZpbmUgRFI2X0JECQkJCTEzCisjZGVmaW5lIERSNl9CUwkJCQkx NAorI2RlZmluZSBEUjZfQlQJCQkJMTUKKworLyoKKyAqIERlYnVnIFJlZ2lzdGVyIDcKKyAqLwor I2RlZmluZSBEUjdfUldfTEVOCQkJMgorIwlkZWZpbmUgRFI3X1JXX1gJCQkwVQorIwlkZWZpbmUg RFI3X1JXX1cJCQkxVQorIwlkZWZpbmUgRFI3X1JXX0lPCQkJMlUKKyMJZGVmaW5lIERSN19SV19S VwkJCTNVCisjZGVmaW5lIERSN19MRU5fTEVOCQkJMgorIwlkZWZpbmUgRFI3X0xFTl8xCQkJMFUK KyMJZGVmaW5lIERSN19MRU5fMgkJCTFVCisjCWRlZmluZSBEUjdfTEVOXzQJCQkzVQorIwlkZWZp bmUgRFI3X0xFTl84CQkJMlUKKyNkZWZpbmUgRFI3X0wwCQkJCTAKKyNkZWZpbmUgRFI3X0cwCQkJ CTEKKyNkZWZpbmUgRFI3X0wxCQkJCTIKKyNkZWZpbmUgRFI3X0cxCQkJCTMKKyNkZWZpbmUgRFI3 X0wyCQkJCTQKKyNkZWZpbmUgRFI3X0cyCQkJCTUKKyNkZWZpbmUgRFI3X0wzCQkJCTYKKyNkZWZp bmUgRFI3X0czCQkJCTcKKyNkZWZpbmUgRFI3X0xFCQkJCTgKKyNkZWZpbmUgRFI3X0dFCQkJCTkK KyNkZWZpbmUgRFI3X0dECQkJCTEzCisjZGVmaW5lIERSN19SVzAJCQkxNgorI2RlZmluZSBEUjdf UlcwX0xFTgkJCURSN19SV19MRU4KKyNkZWZpbmUgRFI3X0xFTjAJCQkxOAorI2RlZmluZSBEUjdf TEVOMF9MRU4JCURSN19MRU5fTEVOCisjZGVmaW5lIERSN19SVzEJCQkyMAorI2RlZmluZSBEUjdf UlcxX0xFTgkJCURSN19SV19MRU4KKyNkZWZpbmUgRFI3X0xFTjEJCQkyMgorI2RlZmluZSBEUjdf TEVOMV9MRU4JCURSN19MRU5fTEVOCisjZGVmaW5lIERSN19SVzIJCQkyNAorI2RlZmluZSBEUjdf UlcyX0xFTgkJCURSN19SV19MRU4KKyNkZWZpbmUgRFI3X0xFTjIJCQkyNgorI2RlZmluZSBEUjdf TEVOMl9MRU4JCURSN19MRU5fTEVOCisjZGVmaW5lIERSN19SVzMJCQkyOAorI2RlZmluZSBEUjdf UlczX0xFTgkJCURSN19SV19MRU4KKyNkZWZpbmUgRFI3X0xFTjMJCQkzMAorI2RlZmluZSBEUjdf TEVOM19MRU4JCURSN19MRU5fTEVOCisKKy8qCisgKiBDUFVJRCByZXR1cm4gdmFsdWVzCisgKi8K KyNkZWZpbmUgQ1BVSUQxX0VBWF9TVEVQUElORwkJMAorI2RlZmluZSBDUFVJRDFfRUFYX1NURVBQ SU5HX0xFTgk0CisjZGVmaW5lIENQVUlEMV9FQVhfTU9ERUwJCQk0CisjZGVmaW5lIENQVUlEMV9F QVhfTU9ERUxfTEVOCQk0CisjZGVmaW5lIENQVUlEMV9FQVhfRkFNSUxZCQk4CisjZGVmaW5lIENQ VUlEMV9FQVhfRkFNSUxZX0xFTgkJNAorI2RlZmluZSBDUFVJRDFfRUFYX1RZUEUJCQkxMgorI2Rl ZmluZSBDUFVJRDFfRUFYX1RZUEVfTEVOCQkyCisjZGVmaW5lIENQVUlEMV9FQVhfWE1PREVMCQkx NgorI2RlZmluZSBDUFVJRDFfRUFYX1hNT0RFTF9MRU4JCTQKKyNkZWZpbmUgQ1BVSUQxX0VBWF9Y RkFNSUxZCQkyMAorI2RlZmluZSBDUFVJRDFfRUFYX1hGQU1JTFlfTEVOCTgKKyNkZWZpbmUgQ1BV SUQxX0VCWF9CUkFORAkJCTAKKyNkZWZpbmUgQ1BVSUQxX0VCWF9CUkFORF9MRU4JCTgKKyNkZWZp bmUgQ1BVSUQxX0VCWF9DTEZMU0hTWgkJOAorI2RlZmluZSBDUFVJRDFfRUJYX0NMRkxTSFNaX0xF Tgk4CisjZGVmaW5lIENQVUlEMV9FQlhfTFBQUAkJCTE2CisjZGVmaW5lIENQVUlEMV9FQlhfTFBQ UF9MRU4JCTgKKyNkZWZpbmUgQ1BVSUQxX0VCWF9MQVBJQ19JRAkJMjQKKyNkZWZpbmUgQ1BVSUQx X0VCWF9MQVBJQ19JRF9MRU4JOAorI2RlZmluZSBDUFVJRDFfRUNYX1NTRTMJCQkwCisjZGVmaW5l IENQVUlEMV9FQ1hfTU9OSVRPUgkJMworI2RlZmluZSBDUFVJRDFfRUNYX0RTQ1BMCQkJNAorI2Rl ZmluZSBDUFVJRDFfRUNYX0VJU1QJCQk3CisjZGVmaW5lIENQVUlEMV9FQ1hfVE0yCQkJOAorI2Rl ZmluZSBDUFVJRDFfRUNYX0NJRAkJCTEwCisjZGVmaW5lIENQVUlEMV9FQ1hfQ1gxNgkJCTEzCisj ZGVmaW5lIENQVUlEMV9FQ1hfeFRQUgkJCTE0CisjZGVmaW5lIENQVUlEMV9FRFhfRlBVCQkJMAor I2RlZmluZSBDUFVJRDFfRURYX1ZNRQkJCTEKKyNkZWZpbmUgQ1BVSUQxX0VEWF9ERQkJCTIKKyNk ZWZpbmUgQ1BVSUQxX0VEWF9QU0UJCQkzCisjZGVmaW5lIENQVUlEMV9FRFhfVFNDCQkJNAorI2Rl ZmluZSBDUFVJRDFfRURYX01TUgkJCTUKKyNkZWZpbmUgQ1BVSUQxX0VEWF9QQUUJCQk2CisjZGVm aW5lIENQVUlEMV9FRFhfTUNFCQkJNworI2RlZmluZSBDUFVJRDFfRURYX0NYOAkJCTgKKyNkZWZp bmUgQ1BVSUQxX0VEWF9BUElDCQkJOQorI2RlZmluZSBDUFVJRDFfRURYX1NFUAkJCTExCisjZGVm aW5lIENQVUlEMV9FRFhfTVRSUgkJCTEyCisjZGVmaW5lIENQVUlEMV9FRFhfUEdFCQkJMTMKKyNk ZWZpbmUgQ1BVSUQxX0VEWF9NQ0EJCQkxNAorI2RlZmluZSBDUFVJRDFfRURYX0NNT1YJCQkxNQor I2RlZmluZSBDUFVJRDFfRURYX1BBVAkJCTE2CisjZGVmaW5lIENQVUlEMV9FRFhfUFNFMzYJCQkx NworI2RlZmluZSBDUFVJRDFfRURYX1BTTgkJCTE4CisjZGVmaW5lIENQVUlEMV9FRFhfQ0xGU0gJ CQkxOQorI2RlZmluZSBDUFVJRDFfRURYX0RTCQkJMjEKKyNkZWZpbmUgQ1BVSUQxX0VEWF9BQ1BJ CQkJMjIKKyNkZWZpbmUgQ1BVSUQxX0VEWF9NTVgJCQkyMworI2RlZmluZSBDUFVJRDFfRURYX0ZY U1IJCQkyNAorI2RlZmluZSBDUFVJRDFfRURYX1NTRQkJCTI1CisjZGVmaW5lIENQVUlEMV9FRFhf U1NFMgkJCTI2CisjZGVmaW5lIENQVUlEMV9FRFhfU1MJCQkyNworI2RlZmluZSBDUFVJRDFfRURY X0hUVAkJCTI4CisjZGVmaW5lIENQVUlEMV9FRFhfVE0JCQkyOQorI2RlZmluZSBDUFVJRDFfRURY X1BCRQkJCTMxCisKKyNkZWZpbmUgQ1BVSUQyX1JFU0VSVkVECQkJMzEKKworI2RlZmluZSBDUFVJ RHgxX0FNRF9FQVhfU1RFUFBJTkcJCUNQVUlEMV9FQVhfU1RFUFBJTkcKKyNkZWZpbmUgQ1BVSUR4 MV9BTURfRUFYX1NURVBQSU5HX0xFTglDUFVJRDFfRUFYX1NURVBQSU5HX0xFTgorI2RlZmluZSBD UFVJRHgxX0FNRF9FQVhfTU9ERUwJCQlDUFVJRDFfRUFYX01PREVMCisjZGVmaW5lIENQVUlEeDFf QU1EX0VBWF9NT0RFTF9MRU4JCUNQVUlEMV9FQVhfTU9ERUxfTEVOCisjZGVmaW5lIENQVUlEeDFf QU1EX0VBWF9GQU1JTFkJCUNQVUlEMV9FQVhfRkFNSUxZCisjZGVmaW5lIENQVUlEeDFfQU1EX0VB WF9GQU1JTFlfTEVOCQlDUFVJRDFfRUFYX0ZBTUlMWV9MRU4KKyNkZWZpbmUgQ1BVSUR4MV9BTURf RUFYX1RZUEUJCQlDUFVJRDFfRUFYX1RZUEUKKyNkZWZpbmUgQ1BVSUR4MV9BTURfRUFYX1RZUEVf TEVOCQlDUFVJRDFfRUFYX1RZUEVfTEVOCisjZGVmaW5lIENQVUlEeDFfQU1EX0VBWF9YTU9ERUwJ CUNQVUlEMV9FQVhfWE1PREVMCisjZGVmaW5lIENQVUlEeDFfQU1EX0VBWF9YTU9ERUxfTEVOCQlD UFVJRDFfRUFYX1hNT0RFTF9MRU4KKyNkZWZpbmUgQ1BVSUR4MV9BTURfRUFYX1hGQU1JTFkJCUNQ VUlEMV9FQVhfWEZBTUlMWQorI2RlZmluZSBDUFVJRHgxX0FNRF9FQVhfWEZBTUlMWV9MRU4JQ1BV SUQxX0VBWF9YRkFNSUxZX0xFTgorI2RlZmluZSBDUFVJRHgxX0FNRF9FQlhfQlJBTkQJCQkwCisj ZGVmaW5lIENQVUlEeDFfQU1EX0VCWF9CUkFORF9MRU4JCTE2CisjZGVmaW5lIENQVUlEeDFfRUNY X0xBSEYJCQkwCisjZGVmaW5lIENQVUlEeDFfRUNYX0NNUF9MRUdBQ1kJMQorI2RlZmluZSBDUFVJ RHgxX0VDWF9TVk0JCTIKKyNkZWZpbmUgQ1BVSUR4MV9FQ1hfRVhUX0FQSUMJCTMKKyNkZWZpbmUg Q1BVSUR4MV9FQ1hfTE9DS19NT1ZfQ1IJCTQKKyNkZWZpbmUgQ1BVSUR4MV9FQ1hfM0ROT1dfUFJF RkVUQ0gJOAorI2RlZmluZSBDUFVJRHgxX0VEWF9GUFUJCQkwCisjZGVmaW5lIENQVUlEeDFfRURY X1ZNRQkJCTEKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfREUJCQkyCisjZGVmaW5lIENQVUlEeDFfRURY X1BTRQkJCTMKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfVFNDCQkJNAorI2RlZmluZSBDUFVJRHgxX0VE WF9NU1IJCQk1CisjZGVmaW5lIENQVUlEeDFfRURYX1BBRQkJCTYKKyNkZWZpbmUgQ1BVSUR4MV9F RFhfTUNFCQkJNworI2RlZmluZSBDUFVJRHgxX0VEWF9DWDgJCQk4CisjZGVmaW5lIENQVUlEeDFf RURYX0FQSUMJCQk5CisjZGVmaW5lIENQVUlEeDFfRURYX1NDUgkJCTExCisjZGVmaW5lIENQVUlE eDFfRURYX01UUlIJCQkxMgorI2RlZmluZSBDUFVJRHgxX0VEWF9QR0UJCQkxMworI2RlZmluZSBD UFVJRHgxX0VEWF9NQ0EJCQkxNAorI2RlZmluZSBDUFVJRHgxX0VEWF9DTU9WCQkJMTUKKyNkZWZp bmUgQ1BVSUR4MV9FRFhfUEFUCQkJMTYKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfUFNFMzYJCTE3Cisj ZGVmaW5lIENQVUlEeDFfRURYX05YCQkJMjAKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfTU1YCQkJMjIK KyNkZWZpbmUgQ1BVSUR4MV9FRFhfQU1ETU1YCQkyMworI2RlZmluZSBDUFVJRHgxX0VEWF9GWFNS CQkJMjQKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfRlhTUk9QVAkJMjUKKyNkZWZpbmUgQ1BVSUR4MV9F RFhfUkRUU0NQCQkyNworI2RlZmluZSBDUFVJRHgxX0VEWF9MTQkJCTI5CisjZGVmaW5lIENQVUlE eDFfRURYX0FNRDNETk9XCQkzMAorI2RlZmluZSBDUFVJRHgxX0VEWF8zRE5PVwkJMzEKKworI2Rl ZmluZSBDUFVJRHg1X0FNRF9FQVhfTDFJVExCXzJNX05VTQkJMAorI2RlZmluZSBDUFVJRHg1X0FN RF9FQVhfTDFJVExCXzJNX05VTV9MRU4JOAorI2RlZmluZSBDUFVJRHg1X0FNRF9FQVhfTDFJVExC XzJNX0FTU09DCQk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VBWF9MMUlUTEJfMk1fQVNTT0NfTEVO CTgKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUFYX0wxRFRMQl8yTV9OVU0JCTE2CisjZGVmaW5lIENQ VUlEeDVfQU1EX0VBWF9MMURUTEJfMk1fTlVNX0xFTgk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VB WF9MMURUTEJfMk1fQVNTT0MJCTI0CisjZGVmaW5lIENQVUlEeDVfQU1EX0VBWF9MMURUTEJfMk1f QVNTT0NfTEVOCTgKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUJYX0wxSVRMQl80S19OVU0JCTAKKyNk ZWZpbmUgQ1BVSUR4NV9BTURfRUJYX0wxSVRMQl80S19OVU1fTEVOCTgKKyNkZWZpbmUgQ1BVSUR4 NV9BTURfRUJYX0wxSVRMQl80S19BU1NPQwkJOAorI2RlZmluZSBDUFVJRHg1X0FNRF9FQlhfTDFJ VExCXzRLX0FTU09DX0xFTgk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VCWF9MMURUTEJfNEtfTlVN CQkxNgorI2RlZmluZSBDUFVJRHg1X0FNRF9FQlhfTDFEVExCXzRLX05VTV9MRU4JOAorI2RlZmlu ZSBDUFVJRHg1X0FNRF9FQlhfTDFEVExCXzRLX0FTU09DCQkyNAorI2RlZmluZSBDUFVJRHg1X0FN RF9FQlhfTDFEVExCXzRLX0FTU09DX0xFTgk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VDWF9MMUlD X0xJTkVTSVpFCQkwCisjZGVmaW5lIENQVUlEeDVfQU1EX0VDWF9MMUlDX0xJTkVTSVpFX0xFTgk4 CisjZGVmaW5lIENQVUlEeDVfQU1EX0VDWF9MMUlDX0FTU09DCQkJOAorI2RlZmluZSBDUFVJRHg1 X0FNRF9FQ1hfTDFJQ19BU1NPQ19MRU4JCTgKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUNYX0wxSUNf TFBUCQkJMTYKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUNYX0wxSUNfTFBUX0xFTgkJOAorI2RlZmlu ZSBDUFVJRHg1X0FNRF9FQ1hfTDFJQ19TSVpFCQkJMjQKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUNY X0wxSUNfU0laRV9MRU4JCTgKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRURYX0wxRENfTElORVNJWkUJ CTAKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRURYX0wxRENfTElORVNJWkVfTEVOCTgKKyNkZWZpbmUg Q1BVSUR4NV9BTURfRURYX0wxRENfQVNTT0MJCQk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VEWF9M MURDX0FTU09DX0xFTgkJOAorI2RlZmluZSBDUFVJRHg1X0FNRF9FRFhfTDFEQ19MUFQJCQkxNgor I2RlZmluZSBDUFVJRHg1X0FNRF9FRFhfTDFEQ19MUFRfTEVOCQk4CisjZGVmaW5lIENQVUlEeDVf QU1EX0VEWF9MMURDX1NJWkUJCQkyNAorI2RlZmluZSBDUFVJRHg1X0FNRF9FRFhfTDFEQ19TSVpF X0xFTgkJOAorCisjZGVmaW5lIENQVUlEeDZfQU1EX0VBWF9MMklUTEJfMk1fTlVNCQkwCisjZGVm aW5lIENQVUlEeDZfQU1EX0VBWF9MMklUTEJfMk1fTlVNX0xFTgkxMgorI2RlZmluZSBDUFVJRHg2 X0FNRF9FQVhfTDJJVExCXzJNX0FTU09DCQkxMgorI2RlZmluZSBDUFVJRHg2X0FNRF9FQVhfTDJJ VExCXzJNX0FTU09DX0xFTgk0CisjZGVmaW5lIENQVUlEeDZfQU1EX0VBWF9MMkRUTEJfMk1fTlVN CQkxNgorI2RlZmluZSBDUFVJRHg2X0FNRF9FQVhfTDJEVExCXzJNX05VTV9MRU4JMTIKKyNkZWZp bmUgQ1BVSUR4Nl9BTURfRUFYX0wyRFRMQl8yTV9BU1NPQwkJMjgKKyNkZWZpbmUgQ1BVSUR4Nl9B TURfRUFYX0wyRFRMQl8yTV9BU1NPQ19MRU4JNAorI2RlZmluZSBDUFVJRHg2X0FNRF9FQlhfTDJJ VExCXzRLX05VTQkJMAorI2RlZmluZSBDUFVJRHg2X0FNRF9FQlhfTDJJVExCXzRLX05VTV9MRU4J MTIKKyNkZWZpbmUgQ1BVSUR4Nl9BTURfRUJYX0wySVRMQl80S19BU1NPQwkJMTIKKyNkZWZpbmUg Q1BVSUR4Nl9BTURfRUJYX0wySVRMQl80S19BU1NPQ19MRU4JNAorI2RlZmluZSBDUFVJRHg2X0FN RF9FQlhfTDJEVExCXzRLX05VTQkJMTYKKyNkZWZpbmUgQ1BVSUR4Nl9BTURfRUJYX0wyRFRMQl80 S19OVU1fTEVOCTEyCisjZGVmaW5lIENQVUlEeDZfQU1EX0VCWF9MMkRUTEJfNEtfQVNTT0MJCTI4 CisjZGVmaW5lIENQVUlEeDZfQU1EX0VCWF9MMkRUTEJfNEtfQVNTT0NfTEVOCTQKKyNkZWZpbmUg Q1BVSUR4Nl9BTURfRUNYX0wyVUNfTElORVNJWkUJCTAKKyNkZWZpbmUgQ1BVSUR4Nl9BTURfRUNY X0wyVUNfTElORVNJWkVfTEVOCTgKKyNkZWZpbmUgQ1BVSUR4Nl9BTURfRUNYX0wyVUNfQVNTT0MJ CQk4CisjZGVmaW5lIENQVUlEeDZfQU1EX0VDWF9MMlVDX0FTU09DX0xFTgkJNAorI2RlZmluZSBD UFVJRHg2X0FNRF9FQ1hfTDJVQ19MUFQJCQkxMgorI2RlZmluZSBDUFVJRHg2X0FNRF9FQ1hfTDJV Q19MUFRfTEVOCQk0CisjZGVmaW5lIENQVUlEeDZfQU1EX0VDWF9MMlVDX1NJWkUJCQkxNgorI2Rl ZmluZSBDUFVJRHg2X0FNRF9FQ1hfTDJVQ19TSVpFX0xFTgkJMTYKKworI2RlZmluZSBDUFVJRHg3 X0FNRF9FRFhfVFMJCQkwCisjZGVmaW5lIENQVUlEeDdfQU1EX0VEWF9GSUQJCQkxCisjZGVmaW5l IENQVUlEeDdfQU1EX0VEWF9WSUQJCQkyCisjZGVmaW5lIENQVUlEeDdfQU1EX0VEWF9UVFAJCQkz CisjZGVmaW5lIENQVUlEeDdfQU1EX0VEWF9UTQkJCTQKKyNkZWZpbmUgQ1BVSUR4N19BTURfRURY X1NUQwkJCTUKKyNkZWZpbmUgQ1BVSUR4N19BTURfRURYXzEwME1IWgkJCTYKKworI2RlZmluZSBD UFVJRHg4X0VBWF9QQV9CSVRTCQkJMAorI2RlZmluZSBDUFVJRHg4X0VBWF9QQV9CSVRTX0xFTgkJ OAorI2RlZmluZSBDUFVJRHg4X0VBWF9WQV9CSVRTCQkJOAorI2RlZmluZSBDUFVJRHg4X0VBWF9W QV9CSVRTX0xFTgkJMTYKKyNkZWZpbmUgQ1BVSUR4OF9FQ1hfTUFYX0NPUkUJCQkwCisjZGVmaW5l IENQVUlEeDhfRUNYX01BWF9DT1JFX0xFTgkJOAorCisjZGVmaW5lIENQVUlEeEFfRUFYX1NWTVJF VgkJMAorI2RlZmluZSBDUFVJRHhBX0VBWF9TVk1SRVZfTEVOCQk4CisjZGVmaW5lIENQVUlEeEFf RUFYXzAJCQk4CisjZGVmaW5lIENQVUlEeEFfRURYX05QCQkJMAorCisjaWZuZGVmIF9fQVNTRU1C TFlfXworCit0eXBlZGVmIHVuaW9uIHsKKwl1aW50NjRfdAlxOworCXVpbnQzMl90CWRbMl07CisJ dWludDE2X3QJd1s0XTsKKwl1aW50OF90CWJbOF07Cit9IG1teHJlZ190OworCit0eXBlZGVmIHVu aW9uIHsKKwlkb3VibGUJZGJsWzJdOworCWZsb2F0CWZsdFs0XTsKKwl1aW50NjRfdAlxWzJdOwor CXVpbnQzMl90CWRbNF07CisJdWludDE2X3QJd1s4XTsKKwl1aW50OF90CWJbMTZdOworfSB4bW1y ZWdfdCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKTsKKworLyoKKyAqIEZYU0FWRSAv IEZYUlNUT1IgbGF5b3V0CisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKwl1aW50MTZfdAlmY3c7CisJ dWludDE2X3QJZnN3OworCXVpbnQ4X3QJZnR3OworCXVpbnQ4X3QJX3JzcnZkMV87CisJdWludDE2 X3QJZm9wOworCXVuaW9uIHsKKwkJdWludDY0X3QJcmlwOworCQlzdHJ1Y3QgeworCQkJdWludDMy X3QJZmlwOworCQkJdWludDE2X3QJZmNzOworCQkJdWludDE2X3QJX3JzcnZkMl87CisJCX07CisJ fTsKKwl1bmlvbiB7CisJCXVpbnQ2NF90CXJkcDsKKwkJc3RydWN0IHsKKwkJCXVpbnQzMl90CWZk cDsKKwkJCXVpbnQxNl90CWZkczsKKwkJCXVpbnQxNl90CV9yc3J2ZDNfOworCQl9OworCX07CisJ dWludDMyX3QJbXhjc3I7CisJdWludDMyX3QJbXhjc3JfbWFzazsKKwl1bmlvbiB7CisJCXN0cnVj dCB7CisJCQl1aW50NjRfdAltYW50OworCQkJdWludDMyX3QJZXhwOjE1OworCQkJaW50MzJfdAlz aWduOjE7CisJCQl1aW50MzJfdAlfcGFkXzsKKwkJfQkJZnA7CisJCW1teHJlZ190CW1teDsKKwl9 CQlyZWdbOF07CisJeG1tcmVnX3QJeG1tWzE2XTsKKwl1aW50OF90CV9yc3J2ZDVfWzYqMTZdOwor fSBmeHNhdmVfdDsKKworLyoKKyAqIERlc2NyaXB0b3IgQXR0cmlidXRlcworICovCit0eXBlZGVm IHN0cnVjdCB7CisJdWludDhfdAl0eXBlOjU7CisJdWludDhfdAlkcGw6MjsKKwl1aW50OF90CXA6 MTsKK30gRGVzY3JpcHRvckF0dHJpYnV0ZXNfdDsKKworLyoKKyAqIERlc2NyaXB0b3IgVGFibGUg RW50cnkKKyAqLwordHlwZWRlZiB1bmlvbiB7CisJc3RydWN0IHsKKwkJdWludDE2X3QJbGltaXRM b3c7CisJCXVpbnQxNl90CWJhc2VMb3c7CisJCXVpbnQ4X3QJYmFzZU1pZExvOworCQl1bmlvbiB7 CisJCQl1aW50OF90CWF0dHJMb3c7CisJCQlEZXNjcmlwdG9yQXR0cmlidXRlc190IGF0dHI7CisJ CX07CisJCXVuaW9uIHsKKwkJCXVpbnQ4X3QJYXR0ckhpZ2g7CisJCQlzdHJ1Y3QgeworCQkJCXVp bnQ4X3QJbGltaXRIaWdoOjQ7CisJCQkJdWludDhfdAlhdmw6MTsKKwkJCQl1aW50OF90CWw6MTsK KwkJCQl1aW50OF90CWQ6MTsKKwkJCQl1aW50OF90CWc6MTsKKwkJCX07CisJCX07CisJCXVpbnQ4 X3QJYmFzZU1pZEhpOworCQl1aW50MzJfdAliYXNlSGlnaDsKKwkJdWludDMyX3QJbWJ6OworCX0J CXNlZ21lbnQ7CisJc3RydWN0IHsKKwkJdWludDE2X3QJb2Zmc2V0TG93OworCQl1aW50MTZfdAlz ZWxlY3RvcjsKKwkJdW5pb24geworCQkJdWludDE2X3QJY29udHJvbDsKKwkJCXN0cnVjdCB7CisJ CQkJdW5pb24geworCQkJCQlzdHJ1Y3QgeworCQkJCQkJdWludDhfdAlpc3Q6MzsKKwkJCQkJCXVp bnQ4X3QJOjU7CisJCQkJCX07CisJCQkJCXN0cnVjdCB7CisJCQkJCQl1aW50OF90CW51bVBhcm0z Mjo1OworCQkJCQkJdWludDhfdAk6MzsKKwkJCQkJfTsKKwkJCQl9OworCQkJCURlc2NyaXB0b3JB dHRyaWJ1dGVzX3QgYXR0cjsKKwkJCX07CisJCX07CisJCXVpbnQxNl90CW9mZnNldE1pZDsKKwkJ dWludDMyX3QJb2Zmc2V0SGlnaDsKKwkJdWludDMyX3QJbWJ6OworCX0JCWdhdGU7Cit9IERlc2Ny aXB0b3JUYWJsZUVudHJ5X3Q7CisKKyMgZGVmaW5lIElTX1NFR01FTlQoZCkJCSgoKGQpLnNlZ21l bnQuYXR0ckxvdyAmIDB4MTQpICE9IDB4MDQpCisjIGRlZmluZSBJU19TRUdNRU5UX0VYRUMoZCkJ KCEoKGQpLnNlZ21lbnQuYXR0ckxvdyAmICgxVSA8PCBERVNDUklQVE9SX1MpKSBcCisJCQkJCQkg JiYgKChkKS5zZWdtZW50LmwgfHwgKChkKS5zZWdtZW50LmF0dHJMb3cgJiAoMVUgPDwgREVTQ1Iz Ml9DT0RFKSkpKQorIyBkZWZpbmUgSVNfU0VHTUVOVF9SRUFEKGQpCSghKChkKS5zZWdtZW50LmF0 dHJMb3cgJiAoMVUgPDwgREVTQ1JJUFRPUl9TKSkgXAorCQkJCQkJICYmICgoZCkuc2VnbWVudC5s IFwKKwkJCQkJCSAgfHwgISgoZCkuc2VnbWVudC5hdHRyTG93ICYgKDFVIDw8IERFU0NSMzJfQ09E RSkpIFwKKwkJCQkJCSAgfHwgKChkKS5zZWdtZW50LmF0dHJMb3cgJiAoMVUgPDwgREVTQ1IzMl9S KSkpKQorIyBkZWZpbmUgSVNfU0VHTUVOVF9XUklURShkKQkoISgoZCkuc2VnbWVudC5hdHRyTG93 ICYgKDFVIDw8IERFU0NSSVBUT1JfUykpIFwKKwkJCQkJCSAmJiAoKGQpLnNlZ21lbnQubCBcCisJ CQkJCQkgIHx8ICghKChkKS5zZWdtZW50LmF0dHJMb3cgJiAoMVUgPDwgREVTQ1IzMl9DT0RFKSkg XAorCQkJCQkJICAgJiYgKChkKS5zZWdtZW50LmF0dHJMb3cgJiAoMVUgPDwgREVTQ1IzMl9XKSkp KSkKKyMgZGVmaW5lIFNFR01FTlRfQkFTRShkKQkJKCgoZCkuc2VnbWVudC5hdHRyTG93ICYgKDFV IDw8IERFU0NSSVBUT1JfUykpID8gMCA6IFwKKwkJCQkJCSAoZCkuc2VnbWVudC5iYXNlTG93IHwg KCh1aW50NjRfdCkoZCkuc2VnbWVudC5iYXNlTWlkTG8gPDwgMTYpIFwKKwkJCQkJCSB8ICgodWlu dDY0X3QpKGQpLnNlZ21lbnQuYmFzZU1pZEhpIDw8IDI0KSB8ICgodWludDY0X3QpKGQpLnNlZ21l bnQuYmFzZUhpZ2ggPDwgMzIpKQorIyBkZWZpbmUgU0VHMzJfQkFTRShkKQkJKChkKS5zZWdtZW50 LmJhc2VMb3cgfCAoKHVpbnQzMl90KShkKS5zZWdtZW50LmJhc2VNaWRMbyA8PCAxNikgfCAoKHVp bnQzMl90KShkKS5zZWdtZW50LmJhc2VNaWRIaSA8PCAyNCkpCisjIGRlZmluZSBTRUczMl9MSU1J VChkKQkJKChkKS5zZWdtZW50LmcgXAorCQkJCQkJCT8gKCh1aW50MzJfdCkoZCkuc2VnbWVudC5s aW1pdExvdyA8PCAxMikgfCAoKHVpbnQzMl90KShkKS5zZWdtZW50LmxpbWl0SGlnaCA8PCAyOCkg fCAweGZmZiBcCisJCQkJCQkJOiAoZCkuc2VnbWVudC5saW1pdExvdyB8ICgodWludDMyX3QpKGQp LnNlZ21lbnQubGltaXRIaWdoIDw8IDE2KSkKKworIyBkZWZpbmUgSVNfR0FURShkKQkJCSgoKGQp LmdhdGUuY29udHJvbCAmIDB4MTQwMCkgPT0gMHgwNDAwKQorIyBkZWZpbmUgR0FURV9TRUxFQ1RP UihkKQkoKGQpLmdhdGUuc2VsZWN0b3IpCisjIGRlZmluZSBHQVRFX09GRlNFVChkKQkJKCh1aW50 NjRfdCkoZCkuZ2F0ZS5vZmZzZXRMb3cgfCAoKHVpbnQ2NF90KShkKS5nYXRlLm9mZnNldE1pZCA8 PCAxNikgfCAoKHVpbnQ2NF90KShkKS5nYXRlLm9mZnNldEhpZ2ggPDwgMzIpKQorIyBkZWZpbmUg R0FURTMyX09GRlNFVChkKQkoKHVpbnQzMl90KShkKS5nYXRlLm9mZnNldExvdyB8ICgodWludDMy X3QpKGQpLmdhdGUub2Zmc2V0TWlkIDw8IDE2KSkKKworIyBwcmFnbWEgcGFjayhwdXNoLCAyKQor CisvKgorICogR0RUUi9JRFRSIG1lbW9yeSBmb3JtYXQKKyAqLwordHlwZWRlZiBzdHJ1Y3Qgewor CXVpbnQxNl90IGxpbWl0OworCXVpbnQ2NF90IGJhc2U7Cit9IFBzZXVkb0Rlc2NyaXB0b3JfdDsK KworIyBwcmFnbWEgcGFjayhwb3ApCisKKyNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KKworLyoK KyAqIEZQVSBDb250cm9sIFdvcmQKKyAqLworI2RlZmluZSBGQ1dfTUJaCQkJCTB4ZTBjMAorI2Rl ZmluZSBGQ1dfSU0JCQkJCTAKKyNkZWZpbmUgRkNXX0RNCQkJCQkxCisjZGVmaW5lIEZDV19aTQkJ CQkJMgorI2RlZmluZSBGQ1dfT00JCQkJCTMKKyNkZWZpbmUgRkNXX1VNCQkJCQk0CisjZGVmaW5l IEZDV19QTQkJCQkJNQorI2RlZmluZSBGQ1dfUEMJCQkJCTgKKyNkZWZpbmUgRkNXX1BDX0xFTgkJ CQkyCisjCWRlZmluZSBGQ1dfUENfU0lOR0xFCQkJMAorIwlkZWZpbmUgRkNXX1BDX0RPVUJMRQkJ CTIKKyMJZGVmaW5lIEZDV19QQ19FWFRFTkRFRAkJCTMKKyNkZWZpbmUgRkNXX1JDCQkJCQkxMAor I2RlZmluZSBGQ1dfUkNfTEVOCQkJCTIKKy8qIFRoZSByb3VuZGluZyBjb250cm9sIHZhbHVlcyBh cmUgdXNlZCBmb3IgYm90aCBGQ1cgYW5kIE1YQ1NSLiAqLworIwlkZWZpbmUgUkNfTkVBUkVTVAkJ CQkwCisjCWRlZmluZSBSQ19ET1dOCQkJCQkxCisjCWRlZmluZSBSQ19VUAkJCQkJMgorIwlkZWZp bmUgUkNfQ0hPUAkJCQkJMworIwlkZWZpbmUgUkNfVFJVTkNBVEUJCQkJUkNfQ0hPUAorI2RlZmlu ZSBGQ1dfWAkJCQkJMTIKKworLyoKKyAqIEZQVSBTdGF0dXMgV29yZAorICovCisjZGVmaW5lIEZT V19JRQkJCQkJMAorI2RlZmluZSBGU1dfREUJCQkJCTEKKyNkZWZpbmUgRlNXX1pFCQkJCQkyCisj ZGVmaW5lIEZTV19PRQkJCQkJMworI2RlZmluZSBGU1dfVUUJCQkJCTQKKyNkZWZpbmUgRlNXX1BF CQkJCQk1CisjZGVmaW5lIEZTV19TRgkJCQkJNgorI2RlZmluZSBGU1dfRVMJCQkJCTcKKyNkZWZp bmUgRlNXX0MwCQkJCQk4CisjZGVmaW5lIEZTV19DMQkJCQkJOQorI2RlZmluZSBGU1dfQzIJCQkJ CTEwCisjZGVmaW5lIEZTV19UT1AJCQkJMTEKKyNkZWZpbmUgRlNXX1RPUF9MRU4JCQkJMworI2Rl ZmluZSBGU1dfQzMJCQkJCTE0CisjZGVmaW5lIEZTV19CCQkJCQkxNQorCisvKgorICogRlBVIFRh ZyBXb3JkCisgKi8KKyNkZWZpbmUgRlRXX1RBR19MRU4JCQkJMgorIwlkZWZpbmUgRlRXX1ZBTElE CQkJCTBVCisjCWRlZmluZSBGVFdfWkVSTwkJCQkxVQorIwlkZWZpbmUgRlRXX1NQRUNJQUwJCQkJ MlUKKyMJZGVmaW5lIEZUV19FTVBUWQkJCQkzVQorCisvKgorICogTU1YIENvbnRyb2wgYW5kIFN0 YXR1cyBSZWdpc3RlcgorICovCisjZGVmaW5lIE1YQ1NSX0lFCQkJCTAKKyNkZWZpbmUgTVhDU1Jf REUJCQkJMQorI2RlZmluZSBNWENTUl9aRQkJCQkyCisjZGVmaW5lIE1YQ1NSX09FCQkJCTMKKyNk ZWZpbmUgTVhDU1JfVUUJCQkJNAorI2RlZmluZSBNWENTUl9QRQkJCQk1CisjZGVmaW5lIE1YQ1NS X0RBWgkJCQk2CisjZGVmaW5lIE1YQ1NSX0lNCQkJCTcKKyNkZWZpbmUgTVhDU1JfRE0JCQkJOAor I2RlZmluZSBNWENTUl9aTQkJCQk5CisjZGVmaW5lIE1YQ1NSX09NCQkJCTEwCisjZGVmaW5lIE1Y Q1NSX1VNCQkJCTExCisjZGVmaW5lIE1YQ1NSX1BNCQkJCTEyCisjZGVmaW5lIE1YQ1NSX1JDCQkJ CTEzCisjZGVmaW5lIE1YQ1NSX1JDX0xFTgkJCTIKKyNkZWZpbmUgTVhDU1JfRloJCQkJMTUKKwor I2lmbmRlZiBfX0FTU0VNQkxZX18KKyMgcHJhZ21hIHBhY2socHVzaCwgNCkKKworLyoKKyAqIDY0 LWJpdCBUYXNrIFN0YXRlIFNlZ21lbnQgbGF5b3V0CisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKwl1 aW50MzJfdAlfbWJ6MV87CisJdWludDY0X3QJcnNwMDsKKwl1aW50NjRfdAlyc3AxOworCXVpbnQ2 NF90CXJzcDI7CisJdWludDY0X3QJX21iejJfOworCXVpbnQ2NF90CWlzdFs3XTsKKwl1aW50NjRf dAlfbWJ6M187CisJdWludDE2X3QJX21iejRfOworCXVpbnQxNl90CWlvYmFzZTsKK30gdHNzNjRf dDsKKworIyBwcmFnbWEgcGFjayhwb3ApCisjZW5kaWYKKworLyoKKyAqIE1TUiBpbmRleGVzCisg Ki8KKyNkZWZpbmUgWDg2X1RTQwkJCQkweDEwCisjZGVmaW5lIFg4Nl9NVFJSQ0FQCQkJCTB4ZmUK KyNkZWZpbmUgWDg2X1NZU0VOVEVSX0NTCQkJMHgxNzQKKyNkZWZpbmUgWDg2X1NZU0VOVEVSX0VT UAkJCTB4MTc1CisjZGVmaW5lIFg4Nl9TWVNFTlRFUl9FSVAJCQkweDE3NgorI2RlZmluZSBYODZf TUNHX0NBUAkJCQkweDE3OQorI2RlZmluZSBYODZfTUNHX1NUQVRVUwkJCTB4MTdhCisjZGVmaW5l IFg4Nl9NQ0dfQ1RMCQkJCTB4MTdiCisjZGVmaW5lIFg4Nl9ERUJVR0NUTAkJCTB4MWQ5CisjZGVm aW5lIFg4Nl9MQkYJCQkJMHgxZGIKKyNkZWZpbmUgWDg2X0xCVAkJCQkweDFkYworI2RlZmluZSBY ODZfTElGCQkJCTB4MWRkCisjZGVmaW5lIFg4Nl9MSVQJCQkJMHgxZGUKKyNkZWZpbmUgWDg2X01U UlJfUEhZU0JBU0UwCQkweDIwMAorI2RlZmluZSBYODZfTVRSUl9QSFlTTUFTSzAJCTB4MjAxCisj ZGVmaW5lIFg4Nl9NVFJSX0ZJWDY0S18wMDAwMAkJMHgyNTAKKyNkZWZpbmUgWDg2X01UUlJfRklY MTZLXzgwMDAwCQkweDI1OAorI2RlZmluZSBYODZfTVRSUl9GSVgxNktfQTAwMDAJCTB4MjU5Cisj ZGVmaW5lIFg4Nl9NVFJSX0ZJWDRLX0MwMDAwCQkweDI2OAorI2RlZmluZSBYODZfTVRSUl9GSVg0 S19DODAwMAkJMHgyNjkKKyNkZWZpbmUgWDg2X01UUlJfRklYNEtfRDAwMDAJCTB4MjZhCisjZGVm aW5lIFg4Nl9NVFJSX0ZJWDRLX0Q4MDAwCQkweDI2YgorI2RlZmluZSBYODZfTVRSUl9GSVg0S19F MDAwMAkJMHgyNmMKKyNkZWZpbmUgWDg2X01UUlJfRklYNEtfRTgwMDAJCTB4MjZkCisjZGVmaW5l IFg4Nl9NVFJSX0ZJWDRLX0YwMDAwCQkweDI2ZQorI2RlZmluZSBYODZfTVRSUl9GSVg0S19GODAw MAkJMHgyNmYKKyNkZWZpbmUgWDg2X0NSX1BBVAkJCQkweDI3NworI2RlZmluZSBYODZfTVRSUl9E RUZUWVBFCQkJMHgyZmYKKyNkZWZpbmUgWDg2X01DaV9TVEFSVAkJCTB4NDAwCisjCWRlZmluZSBY ODZfTUNpX1NURVAJCQkJNAorIwlkZWZpbmUgWDg2X01DaV9DVExfT0ZGU0VUCQkwCisjCWRlZmlu ZSBYODZfTUNpX1NUQVRVU19PRkZTRVQJCTEKKyMJZGVmaW5lIFg4Nl9NQ2lfQUREUl9PRkZTRVQJ CTIKKyMJZGVmaW5lIFg4Nl9NQ2lfTUlTQ19PRkZTRVQJCTMKKyNkZWZpbmUgWDg2X0VGRVIJCQkJ MHhDMDAwMDA4MAorI2RlZmluZSBYODZfU1RBUgkJCQkweEMwMDAwMDgxCisjZGVmaW5lIFg4Nl9M U1RBUgkJCQkweEMwMDAwMDgyCisjZGVmaW5lIFg4Nl9DU1RBUgkJCQkweEMwMDAwMDgzCisjZGVm aW5lIFg4Nl9TRl9NQVNLCQkJCTB4QzAwMDAwODQKKyNkZWZpbmUgWDg2X0ZTX0JBU0UJCQkJMHhD MDAwMDEwMAorI2RlZmluZSBYODZfR1NfQkFTRQkJCQkweEMwMDAwMTAxCisjZGVmaW5lIFg4Nl9L RVJORUxfR1NfQkFTRQkJMHhDMDAwMDEwMgorI2RlZmluZSBYODZfU1lTQ0ZHCQkJCTB4QzAwMTAw MTAKKyNkZWZpbmUgWDg2X0lPUlJCQVNFMAkJCTB4QzAwMTAwMTYKKyNkZWZpbmUgWDg2X0lPUlJN QVNLMAkJCTB4QzAwMTAwMTcKKyNkZWZpbmUgWDg2X0lPUlJCQVNFMQkJCTB4QzAwMTAwMTgKKyNk ZWZpbmUgWDg2X0lPUlJNQVNLMQkJCTB4QzAwMTAwMTkKKyNkZWZpbmUgWDg2X1RPUF9NRU0JCQkJ MHhDMDAxMDAxYQorI2RlZmluZSBYODZfVE9QX01FTTIJCQkweEMwMDEwMDFkCisKKy8qCisgKiBY ODZfTVRSUkNBUAorICovCisjZGVmaW5lIE1UUlJDQVBfVkNOVAkJCTAKKyNkZWZpbmUgTVRSUkNB UF9WQ05UX0xFTgkJCTgKKyNkZWZpbmUgTVRSUkNBUF9GSVgJCQkJOAorI2RlZmluZSBNVFJSQ0FQ X1dDCQkJCTEwCisKKy8qCisgKiBYODZfREVCVUdDVEwKKyAqLworI2RlZmluZSBERUJVR0NUTF9M QlIJCQkwCisjZGVmaW5lIERFQlVHQ1RMX0JURgkJCTEKKyNkZWZpbmUgREVCVUdDVExfUEIwCQkJ MgorI2RlZmluZSBERUJVR0NUTF9QQjEJCQkzCisjZGVmaW5lIERFQlVHQ1RMX1BCMgkJCTQKKyNk ZWZpbmUgREVCVUdDVExfUEIzCQkJNQorCisvKgorICogWDg2X01UUlJfREVGVFlQRQorICovCisj ZGVmaW5lIE1UUlJfREVGVFlQRV9UWVBFCQkwCisjZGVmaW5lIE1UUlJfREVGVFlQRV9UWVBFX0xF TgkJOAorI2RlZmluZSBNVFJSX0RFRlRZUEVfRkUJCQkxMAorI2RlZmluZSBNVFJSX0RFRlRZUEVf RQkJCTExCisKKy8qCisgKiBYODZfTVRSUl9QSFlTQkFTRXgKKyAqLworI2RlZmluZSBNVFJSX1BI WVNCQVNFX1RZUEUJCTAKKyNkZWZpbmUgTVRSUl9QSFlTQkFTRV9UWVBFX0xFTgk4CisjZGVmaW5l IE1UUlJfUEhZU0JBU0VfQkFTRQkJMTIKKyNkZWZpbmUgTVRSUl9QSFlTQkFTRV9CQVNFX0xFTgk0 MAorCisvKgorICogWDg2X01UUlJfUEhZU01BU0t4CisgKi8KKyNkZWZpbmUgTVRSUl9QSFlTTUFT S19WCQkJMTEKKyNkZWZpbmUgTVRSUl9QSFlTTUFTS19NQVNLCQkxMgorI2RlZmluZSBNVFJSX1BI WVNNQVNLX01BU0tfTEVOCTQwCisKKy8qCisgKiBNZW1vcnkgQXR0cmlidXRlcyAoTVRSUnMgJiBQ QVQpCisgKi8KKyNkZWZpbmUgWDg2X01BX1VDCQkJCTB4MDAKKyNkZWZpbmUgWDg2X01BX1dDCQkJ CTB4MDEKKyNkZWZpbmUgWDg2X01BX1dUCQkJCTB4MDQKKyNkZWZpbmUgWDg2X01BX1dQCQkJCTB4 MDUKKyNkZWZpbmUgWDg2X01BX1dCCQkJCTB4MDYKKyNkZWZpbmUgWDg2X01BX1VDX01JTlVTCQkJ MHgwNwkJLyogUEFUIG9ubHkgKi8KKyNkZWZpbmUgWDg2X01BX1dSTUVNCQkJMHgwOAkJLyogbWFz aywgZml4ZWQtcmFuZ2UgTVRSUnMgKGFuZCBJT1JScykgb25seSAqLworI2RlZmluZSBYODZfTUFf UkRNRU0JCQkweDEwCQkvKiBtYXNrLCBmaXhlZC1yYW5nZSBNVFJScyAoYW5kIElPUlJzKSBvbmx5 ICovCisKKy8qCisgKiBYODZfTUNHX0NBUAorICovCisjZGVmaW5lIFg4Nl9NQ0dfQ0FQX0NPVU5U CQkwCisjZGVmaW5lIFg4Nl9NQ0dfQ0FQX0NPVU5UX0xFTgkJOAorI2RlZmluZSBYODZfTUNHX0NU TF9QCQkJOAorCisvKgorICogWDg2X01DR19TVEFUVVMKKyAqLworI2RlZmluZSBYODZfTUNHX1NU QVRVU19SSVBWCQkwCisjZGVmaW5lIFg4Nl9NQ0dfU1RBVFVTX0VJUFYJCTEKKyNkZWZpbmUgWDg2 X01DR19TVEFUVVNfTUNJUAkJMgorCisvKgorICogWDg2X01DaQorICovCisjZGVmaW5lIFg4Nl9N Q2lfU1RBVFVTX01DQV9FQwkJMAorI2RlZmluZSBYODZfTUNpX1NUQVRVU19NQ0FfRUNfTEVOCTE2 CisjZGVmaW5lIFg4Nl9NQ2lfU1RBVFVTX01PRF9FQwkJMTYKKyNkZWZpbmUgWDg2X01DaV9TVEFU VVNfTU9EX0VDX0xFTgkxNgorI2RlZmluZSBYODZfTUNpX1NUQVRVU19QQ0MJCTU3CisjZGVmaW5l IFg4Nl9NQ2lfU1RBVFVTX0FERFJWCQk1OAorI2RlZmluZSBYODZfTUNpX1NUQVRVU19NSVNDVgkJ NTkKKyNkZWZpbmUgWDg2X01DaV9TVEFUVVNfRU4JCTYwCisjZGVmaW5lIFg4Nl9NQ2lfU1RBVFVT X1VDCQk2MQorI2RlZmluZSBYODZfTUNpX1NUQVRVU19PVkVSCQk2MgorI2RlZmluZSBYODZfTUNp X1NUQVRVU19WQUwJCTYzCisKKy8qCisgKiBYODZfRUZFUgorICovCisjZGVmaW5lIFg4Nl9FRkVS X1NDRQkJCTAKKyNkZWZpbmUgWDg2X0VGRVJfTE1FCQkJOAorI2RlZmluZSBYODZfRUZFUl9MTUEJ CQkxMAorI2RlZmluZSBYODZfRUZFUl9OWEUJCQkxMQorCisvKgorICogWDg2X1NZU0NGRworICov CisjZGVmaW5lIFg4Nl9TWVNDRkdfTUZERQkJCTE4CisjZGVmaW5lIFg4Nl9TWVNDRkdfTUZETQkJ CTE5CisjZGVmaW5lIFg4Nl9TWVNDRkdfTVZETQkJCTIwCisjZGVmaW5lIFg4Nl9TWVNDRkdfVE9N MgkJCTIxCisKKy8qCisgKiBYODZfSU9SUl9QSFlTQkFTRXgKKyAqLworI2RlZmluZSBNVFJSX1BI WVNCQVNFX1dSTUVNCQkzCisjZGVmaW5lIE1UUlJfUEhZU0JBU0VfUkRNRU0JCTQKKyNkZWZpbmUg TVRSUl9QSFlTQkFTRV9CQVNFCQkxMgorI2RlZmluZSBNVFJSX1BIWVNCQVNFX0xFTgkJNDAKKwor LyoKKyAqIFg4Nl9JT1JSX1BIWVNNQVNLeAorICovCisjZGVmaW5lIE1UUlJfUEhZU01BU0tfVgkJ CTExCisjZGVmaW5lIE1UUlJfUEhZU01BU0tfQkFTRQkJMTIKKyNkZWZpbmUgTVRSUl9QSFlTTUFT S19MRU4JCTQwCisKKy8qCisgKiBYODZfVE9QX01FTXgKKyAqLworI2RlZmluZSBYODZfVE9QX01F TV9QSFlTCQkJMjMKKyNkZWZpbmUgWDg2X1RPUF9NRU1fTEVOCQkJMjkKKworI2VuZGlmIC8qIF9B U01fWDg2XzY0X1g4Nl82NF9IICovCg== --=__Part9CBEA0C0.1__=--