Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964779AbVIMNqn (ORCPT ); Tue, 13 Sep 2005 09:46:43 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S964776AbVIMNqn (ORCPT ); Tue, 13 Sep 2005 09:46:43 -0400 Received: from easyconnect2121136-192.clients.easynet.fr ([212.11.36.192]:46467 "EHLO mail.aerostyle.com") by vger.kernel.org with ESMTP id S964773AbVIMNqm (ORCPT ); Tue, 13 Sep 2005 09:46:42 -0400 Message-ID: <33542.85.68.36.53.1126619176.squirrel@212.11.36.192> Date: Tue, 13 Sep 2005 15:46:16 +0200 (CEST) Subject: [i386 BOOT CODE] kernel bootable again From: "Pascal Bellard" To: Riley@Williams.Name Cc: Linux-Kernel@vger.kernel.org Reply-To: pascal.bellard@ads-lu.com User-Agent: SquirrelMail/1.4.2 X-Priority: 3 Importance: Normal X-Sanitizer: Advosys mail filter MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MIMEStream=_0+288847_91228134754_2059427134795" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 47863 Lines: 648 --MIMEStream=_0+288847_91228134754_2059427134795 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Hello, Please find attached a patch to build i386/x86_64 kernel directly bootable. It may be usefull for rescue floppies and installation floppies. System sector count is updated by tools/bluid.c at offset 495. The system could be up to 32 Mb long. -- support any drive geometry -- Disk geometry detection assumes that no error raises on first track. First track is read sector by sector and the first error determinates the sectors per track count. Next, reads are performed track by track. Tested on floppy H2/S18 and harddisk H16/S63. Should work on every exotic drive supporting Int13h CHS. -- cmdline support -- If ram_size (offset 504) bit 13 is set, the kernel cmdline is load from the sector following the kernel image. If Ctrl, Alt, Shift or CapsLock is pressed the kernel cmdline is prompted until Enter key. BackSpace is supported. Regards, -pascal --MIMEStream=_0+288847_91228134754_2059427134795 Content-Type: application/DEFANGED-1; name="linux-2_6_13-bootblock_u.DEFANGED-1" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="linux-2_6_13-bootblock_u.DEFANGED-1" ZGlmZiAtcHVyTiBsaW51eC0yLjYuMTMvYXJjaC9pMzg2L2Jvb3QvYm9vdHNlY3QuUyBsaW51eC0y LjYuMTMtYm9vdGJsb2NrL2FyY2gvaTM4Ni9ib290L2Jvb3RzZWN0LlMKLS0tIGxpbnV4LTIuNi4x My9hcmNoL2kzODYvYm9vdC9ib290c2VjdC5TCTIwMDUtMDktMTIgMTA6Mzc6NTIuMDAwMDAwMDAw ICswMjAwCisrKyBsaW51eC0yLjYuMTMtYm9vdGJsb2NrL2FyY2gvaTM4Ni9ib290L2Jvb3RzZWN0 LlMJMjAwNS0wOS0xMiAxMDo0MDoxOS4wMDAwMDAwMDAgKzAyMDAKQEAgLTQsMjAgKzQsMzEgQEAK ICAqCW1vZGlmaWVkIGJ5IERyZXcgRWNraGFyZHQKICAqCW1vZGlmaWVkIGJ5IEJydWNlIEV2YW5z IChiZGUpCiAgKgltb2RpZmllZCBieSBDaHJpcyBOb2UgKE1heSAxOTk5KSAoYXM4NiAtPiBnYXMp Ci0gKglndXR0ZWQgYnkgSC4gUGV0ZXIgQW52aW4gKEphbiAyMDAzKQorICoKKyAqICAgICAgcmV3 cml0dGVuIHRvIHN1cHBvcnQgdXAgdG8gMzJNYiBrZXJuZWwsIGNtZGxpbmUKKyAqICAgICAgYW5k IGFueSBkaXNrIGdlb21ldHJ5IGJ5IDxwYXNjYWwuYmVsbGFyZEBhZHMtbHUuY29tPgogICoKICAq IEJJRyBGQVQgTk9URTogV2UncmUgaW4gcmVhbCBtb2RlIHVzaW5nIDY0ayBzZWdtZW50cy4gIFRo ZXJlZm9yZSBzZWdtZW50CiAgKiBhZGRyZXNzZXMgbXVzdCBiZSBtdWx0aXBsaWVkIGJ5IDE2IHRv IG9idGFpbiB0aGVpciByZXNwZWN0aXZlIGxpbmVhcgogICogYWRkcmVzc2VzLiBUbyBhdm9pZCBj b25mdXNpb24sIGxpbmVhciBhZGRyZXNzZXMgYXJlIHdyaXR0ZW4gdXNpbmcgbGVhZGluZwogICog aGV4IHdoaWxlIHNlZ21lbnQgYWRkcmVzc2VzIGFyZSB3cml0dGVuIGFzIHNlZ21lbnQ6b2Zmc2V0 LgogICoKKyAqIGJkZSAtIHNob3VsZCBub3QganVtcCBibGluZGx5LCB0aGVyZSBtYXkgYmUgc3lz dGVtcyB3aXRoIG9ubHkgNTEySyBsb3cKKyAqIG1lbW9yeS4gIFVzZSBpbnQgMHgxMiB0byBnZXQg dGhlIHRvcCBvZiBtZW1vcnksIGV0Yy4KKyAqCisgKiBJdCB0aGVuIGxvYWRzICdzZXR1cCcgZGly ZWN0bHkgYWZ0ZXIgaXRzZWxmICgweDkwMjAwKSwgYW5kIHRoZSBzeXN0ZW0KKyAqIGF0IDB4MTAw MDAsIHVzaW5nIEJJT1MgaW50ZXJydXB0cy4gCisgKgorICogVGhlIGxvYWRlciBoYXMgYmVlbiBt YWRlIGFzIHNpbXBsZSBhcyBwb3NzaWJsZSwgYW5kIGNvbnRpbnVvdXMKKyAqIHJlYWQgZXJyb3Jz IHdpbGwgcmVzdWx0IGluIGEgdW5icmVha2FibGUgbG9vcC4gUmVib290IGJ5IGhhbmQuIEl0Cisg KiBsb2FkcyBwcmV0dHkgZmFzdCBieSBnZXR0aW5nIHdob2xlIHRyYWNrcyBhdCBhIHRpbWUgd2hl bmV2ZXIgcG9zc2libGUuCiAgKi8KIAogI2luY2x1ZGUgPGFzbS9ib290Lmg+CiAKIFNFVFVQU0VD VFMJPSA0CQkJLyogZGVmYXVsdCBuciBvZiBzZXR1cC1zZWN0b3JzICovCiBCT09UU0VHCQk9IDB4 MDdDMAkJLyogb3JpZ2luYWwgYWRkcmVzcyBvZiBib290LXNlY3RvciAqLwotSU5JVFNFRwkJPSBE RUZfSU5JVFNFRwkJLyogd2UgbW92ZSBib290IGhlcmUgLSBvdXQgb2YgdGhlIHdheSAqLworSU5J VFNFRwkJPSBERUZfSU5JVFNFRwkJLyogd2UgbG9hZCBib290IGhlcmUgLSBvdXQgb2YgdGhlIHdh eSAqLwogU0VUVVBTRUcJPSBERUZfU0VUVVBTRUcJCS8qIHNldHVwIHN0YXJ0cyBoZXJlICovCiBT WVNTRUcJCT0gREVGX1NZU1NFRwkJLyogc3lzdGVtIGxvYWRlZCBhdCAweDEwMDAwICg2NTUzNikg Ki8KIFNZU1NJWkUJCT0gREVGX1NZU1NJWkUJCS8qIHN5c3RlbSBzaXplOiAjIG9mIDE2LWJ5dGUg Y2xpY2tzICovCkBAIC0yNSw2ICszNiwxMiBAQCBTWVNTSVpFCQk9IERFRl9TWVNTSVpFCQkvKiBz eXN0ZW0gc2l6ZTogCiBST09UX0RFVgk9IDAgCQkJLyogUk9PVF9ERVYgaXMgbm93IHdyaXR0ZW4g YnkgImJ1aWxkIiAqLwogU1dBUF9ERVYJPSAwCQkJLyogU1dBUF9ERVYgaXMgbm93IHdyaXR0ZW4g YnkgImJ1aWxkIiAqLwogCisvKiBzb21lIGV4dHJhIGZlYXR1cmVzICovCisjZGVmaW5lIERJU1BM QVlfS0VSTkVMX1ZFUlNJT04JCWFzIHNvb24gYXMgcG9zc2libGUKKyNkZWZpbmUJRURJVF9DTURM SU5FCQkJb24gaG90a2V5CisjZGVmaW5lCUxPQURfQ01ETElORQkJCWFjY29yZGluZyB0byBiaXQg cmFtc2l6ZS4xMworI2RlZmluZSBFWFRSQV9ERVZJQ0VTCQkJdG8gZmlsbCByb290X2RldmljZQor CiAjaWZuZGVmIFNWR0FfTU9ERQogI2RlZmluZSBTVkdBX01PREUgQVNLX1ZHQQogI2VuZGlmCkBA IC00Miw1NyArNTksNDcwIEBAIFNXQVBfREVWCT0gMAkJCS8qIFNXQVBfREVWIGlzIG5vdyB3cml0 dGUKIAogLmdsb2JhbCBfc3RhcnQKIF9zdGFydDoKKwljbGQJCQkJIyBhc3N1bWUgbm90aGluZwor CW1vdncJJElOSVRTRUcsICVheAorCW1vdncJJWF4LCAlZXMJCSMgJWF4ID0gJWVzID0gSU5JVFNF RworI2lmIE1PVkVfQk9PVFNFQ1RPUgorIyBGaXJzdCB0aGluZ3MgZmlyc3QuIE1vdmUgb3Vyc2Vs ZiBmcm9tIDB4N0MwMCAtPiAweDkwMDAwIGFuZCBqdW1wIHRoZXJlLgorCW1vdncJJEJPT1RTRUcs ICVjeAorCW1vdncJJWN4LCAlZHMJCSMgJWRzID0gQk9PVFNFRworCW1vdmIJJDEsICVjaAkJCSMg JWN4ID0gMjU2CisJc3Vidwklc2ksICVzaQorCXN1YncJJWRpLCAlZGkKKwlyZXAKKwltb3Zzdwor CWxqbXAJJElOSVRTRUcsICRnbworZ286CQorI2Vsc2UKKwl4b3J3CSVjeCwgJWN4CQkjICVjeCA9 IDAKKyNlbmRpZgogCi0JIyBOb3JtYWxpemUgdGhlIHN0YXJ0IGFkZHJlc3MKLQlqbXBsCSRCT09U U0VHLCAkc3RhcnQyCisjIGJkZSAtIGNoYW5nZWQgMHhmZjAwIHRvIDB4NDAwMCB0byB1c2UgZGVi dWdnZXIgYXQgMHg2NDAwIHVwIChiZGUpLiAgV2UKKyMgd291bGRuJ3QgaGF2ZSB0byB3b3JyeSBh Ym91dCB0aGlzIGlmIHdlIGNoZWNrZWQgdGhlIHRvcCBvZiBtZW1vcnkuICBBbHNvCisjIG15IEJJ T1MgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gcHV0IHRoZSB3aW5pIGRyaXZlIHRhYmxlcyBpbiBoaWdo IG1lbW9yeQorIyBpbnN0ZWFkIG9mIGluIHRoZSB2ZWN0b3IgdGFibGUuICBUaGUgb2xkIHN0YWNr IG1pZ2h0IGhhdmUgY2xvYmJlcmVkIHRoZQorIyBkcml2ZSB0YWJsZS4KKworCW1vdncJJDB4NDAw MC0xMiwgJWRpCQkjIDB4NDAwMCBpcyBhbiBhcmJpdHJhcnkgdmFsdWUgPj0KKwkJCQkJIyBsZW5n dGggb2YgYm9vdHNlY3QgKyBsZW5ndGggb2YKKwkJCQkJIyBzZXR1cCArIHJvb20gZm9yIHN0YWNr OworCQkJCQkjIDEyIGlzIGRpc2sgcGFybSBzaXplLgorCQkJCQkjIGdkdCB3aWxsIGhlYXQgNDgg bW9yZSBieXRlcy4KKwltb3Z3CSVheCwgJXNzCQkjICVheCBhbmQgJWVzIGFscmVhZHkgY29udGFp biBJTklUU0VHCisJbW92dwklZGksICVzcAkJIyBwdXQgc3RhY2sgYXQgSU5JVFNFRzoweDQwMDAt MTIuCisKKyMgTWFueSBCSU9TJ3MgZGVmYXVsdCBkaXNrIHBhcmFtZXRlciB0YWJsZXMgd2lsbCBu b3QgcmVjb2duaXplCisjIG11bHRpLXNlY3RvciByZWFkcyBiZXlvbmQgdGhlIG1heGltdW0gc2Vj dG9yIG51bWJlciBzcGVjaWZpZWQKKyMgaW4gdGhlIGRlZmF1bHQgZGlza2V0dGUgcGFyYW1ldGVy IHRhYmxlcyAtIHRoaXMgbWF5IG1lYW4gNworIyBzZWN0b3JzIGluIHNvbWUgY2FzZXMuCisjCisj IFNpbmNlIHNpbmdsZSBzZWN0b3IgcmVhZHMgYXJlIHNsb3cgYW5kIG91dCBvZiB0aGUgcXVlc3Rp b24sCisjIHdlIG11c3QgdGFrZSBjYXJlIG9mIHRoaXMgYnkgY3JlYXRpbmcgbmV3IHBhcmFtZXRl ciB0YWJsZXMKKyMgKGZvciB0aGUgZmlyc3QgZGlzaykgaW4gUkFNLiAgV2UgY2FuIHNldCB0aGUg bWF4aW11bSBzZWN0b3IKKyMgY291bnQgdG8gMzYgLSB0aGUgbW9zdCB3ZSB3aWxsIGVuY291bnRl ciBvbiBhbiBFRCAyLjg4LiAgCisjCisjIEhpZ2ggZG9lc24ndCBodXJ0LiAgTG93IGRvZXMuICBM ZXQncyB1c2UgdGhlIG1heDogNjMKKyMKKyMgU2VnbWVudHMgYXJlIGFzIGZvbGxvd3M6ICVlcyA9 ICVzcyA9IElOSVRTRUcsCisjICVmcyBhbmQgJWdzIGFyZSB1bnVzZWQuCisKKwltb3Z3CSQweDc4 LCAlYngJCSMgJWRzOiVieCBpcyBwYXJhbWV0ZXIgdGFibGUgYWRkcmVzcworCW1vdncJJWN4LCAl ZHMJCSMgJWRzID0gMAorCWxkc3cJKCVieCksICVzaQkJIyAlZHM6JXNpIGlzIHNvdXJjZQorCW1v dmIJJDYsICVjbAkJCSMgY29weSAxMiBieXRlcworCXJlcAkJCQkjIGRvbid0IHdvcnJ5IGFib3V0 IGNsZAorCW1vdnN3CQkJCSMgYWxyZWFkeSBkb25lIGFib3ZlCisJbW92dwklY3gsICVkcwkJIyAl ZHMgPSAwCisJbW92dwklc3AsICglYngpCQkjICVzcCA9IDB4NDAwMC0xMgorCW1vdncJJWVzLCAy KCVieCkKKwlwdXNodwklZXMKKwlwb3B3CSVkcwkJCSMgbm93ICVkcyA9ICVlcyA9ICVzcyA9IElO SVRTRUcKKwltb3ZiCSQ2MywgMHg0LTEyKCVkaSkJIyBwYXRjaCBzZWN0b3IgY291bnQsICVkaSA9 IDB4NDAwMAorCisJY2xpCisJY2J3CQkJCSMgJWF4ID0gMCA6IGdlb21ldHJ5IHVua25vd24geWV0 CisJeG9yYgklZGgsICVkaAkJIyBoZWFkIDAsIGN1cnJlbnQgZHJpdmUKKwlpbmN3CSVjeAkJCSMg Y3lsaW5kZXIgMCwgc2VjdG9yIDEKKwltb3Z3CSVjeCwgJWRpCQkjIHJlYWQgMSBzZWN0b3IKKwlj YWxsCXJlYWRfZmlyc3Rfc2VjdG9yCSMgcmVhZCBib290c2VjdG9yIGFnYWluIHRvIGhhdmUKKwkJ CQkJIyBhY2Nlc3MgdG8gZGF0YSBzZWdtZW50CisKKyNpZm5kZWYJRElTUExBWV9LRVJORUxfVkVS U0lPTgorCW1vdncJJG1zZzEsICVzaQorCWNhbGwJcHV0cworI2VuZGlmCiAKLXN0YXJ0MjoKLQlt b3Z3CSVjcywgJWF4Ci0JbW92dwklYXgsICVkcwotCW1vdncJJWF4LCAlZXMKLQltb3Z3CSVheCwg JXNzCi0JbW92dwkkMHg3YzAwLCAlc3AKLQlzdGkKLQljbGQKKyMgTG9hZCB0aGUgc2V0dXAtc2Vj dG9ycyBkaXJlY3RseSBhZnRlciB0aGUgbW92ZWQgYm9vdGJsb2NrIChhdCAweDkwMjAwKS4KIAot CW1vdncJJGJ1Z2dlcl9vZmZfbXNnLCAlc2kKKwltb3ZiCXNldHVwX3NlY3RzLCAlYWwKKyNpZmRl ZiBDSEVDS19TRVRVUF9TSVpFCisJb3JiCSVhbCwgJWFsCisJam5lCXNldHVwX3NpemVfb2sKKwlt b3ZiCSRTRVRVUFNFQ1RTLCAlYWwKK3NldHVwX3NpemVfb2s6CQorI2VuZGlmCisJY2J3CisJeGNo ZwklYXgsICVkaQorCWNhbGwJcmVhZF9zZWN0b3JzCQkjIHJlYWQgc2V0dXAKKworI2lmZGVmCURJ U1BMQVlfS0VSTkVMX1ZFUlNJT04KKyNkZWZpbmUga2VybmVsX3ZlcnNpb24JMHhFCisJbW92dwkk MHgyMDAsJXNpCisJYWRkdwlrZXJuZWxfdmVyc2lvbiglc2kpLCVzaQkjIHN0YXJ0aW5nIHByb3Rv Y29sIDIuMDAsIEtlcm5lbCAxLjMuNzMKKwljYWxsCXB1dHMJCQkjIHNob3cgd2hpY2gga2VybmVs IHdlIGFyZSBsb2FkaW5nCisjZW5kaWYKIAotbXNnX2xvb3A6Ci0JbG9kc2IKLQlhbmRiCSVhbCwg JWFsCi0JanoJZGllCi0JbW92YgkkMHhlLCAlYWgKLQltb3Z3CSQ3LCAlYngKLQlpbnQJJDB4MTAK LQlqbXAJbXNnX2xvb3AKKyMgVGhpcyByb3V0aW5lIGxvYWRzIHRoZSBzeXN0ZW0gYXQgYWRkcmVz cyBTWVNTRUcsIG1ha2luZyBzdXJlCisjIG5vIDY0a0IgYm91bmRhcmllcyBhcmUgY3Jvc3NlZC4g V2UgdHJ5IHRvIGxvYWQgaXQgYXMgZmFzdCBhcworIyBwb3NzaWJsZSwgbG9hZGluZyB3aG9sZSB0 cmFja3Mgd2hlbmV2ZXIgd2UgY2FuLgorCisjaWZkZWYgX19CSUdfS0VSTkVMX18KK3R5cGVfb2Zf bG9hZGVyCT0JNTI4CisJbW92dwkkMjQsICVjeAkJIyBhbGxvY2F0ZSA0OCBieXRlcyBpbiBzdGFj aworaW5pdF9nZHQ6CisJcHVzaAkkMAkJCSMgICBpbml0aWFsaXplZCB3aXRoIDAKKwlsb29wCWlu aXRfZ2R0CisJbW92dwklc3AsICVzaQkJIyBmb3IgYm9vdHNlY3RfZ2R0CisJbW92dwkkMHg5MzAw KyhTWVNTRUcvNDA5NiksICVheAkjIHNvdXJjZSA9IFNZU1NFRworCWN3ZAorCW1vdncJJWF4LCAy MCglc2kpCQkjIGJvb3RzZWN0X3NyY19iYXNlKzIKKwltb3ZiCSQweDEwLTEsICVhbAkJIyBkZXN0 aW5hdGlvbiA9IDB4MTAwMDAwCisJbW92dwklYXgsIDI4KCVzaSkJCSMgYm9vdHNlY3RfZHN0X2Jh c2UrMgorCW1vdncJJWR4LCAxNiglc2kpCQkjIGJvb3RzZWN0X3NyYyA9IDY0S2IKKwltb3Z3CSVk eCwgMjQoJXNpKQkJIyBib290c2VjdF9kc3QgPSA2NEtiCisJbW92YgklZGwsIHR5cGVfb2ZfbG9h ZGVyCSMgbG9hZGVyIHR5cGUgPSAweEZGCitzeXNscDoKKwltb3Z3CSRTWVNTRUcsICVheAorCW1v dncJJWF4LCAlZXMKKwltb3Z3CSQxMjgsJWRpCQkjIDY0S2IgaW4gc2VjdG9ycworCXN1YncJJWRp LCBzeXNfc2VjdHMKKwlwdXNoZgorCWpuYwlub3RfbGFzdAorCWFkZHcJc3lzX3NlY3RzLCAlZGkK K25vdF9sYXN0OgorCWNhbGwJcmVhZF9zZWN0b3JzCisJaW5jdwkyOCglc2kpCQkJIyBib290c2Vj dF9kc3RfYmFzZSsyCisJbW92dwkkMHg4MDAwLCAlY3gJCSMgZnVsbCA2NEsKKwltb3ZiCSQweDg3 LCAlYWgKKwlwdXNoCSVzcworCXBvcAklZXMJCQkjIGdkdCBpbiBlczpzaQorCWludAkkMHgxNQor CXBvcGYKKwlqYQlzeXNscAorI2Vsc2UKKwltb3Z3CSRTWVNTRUcsICVheAorCW1vdncJJWF4LCAl ZXMKK3N5c2xwOgorCW1vdncJJDEyOCozMiwlYXgJCSMgNjRLYiBpbiBwYXJhZ3JhcGhzCisJc3Vi dwklYXgsIHN5c3NpemUKKwlwdXNoZgorCWpuYwlub3RfbGFzdAorCWFkZHcJc3lzc2l6ZSwgJWF4 Citub3RfbGFzdDoKKwltb3ZiCSQ1LCAlY2wJCQkjIHBhcmFncmFwaHMgLT4gc2VjdG9ycworCXNo cncJJWNsLCAlYXgKKwl4Y2hnCSVheCwgJWRpCisJY2FsbAlyZWFkX3NlY3RvcnMKKwlwb3BmCisJ amEJc3lzbHAKKyNlbmRpZgogCi1kaWU6Ci0JIyBBbGxvdyB0aGUgdXNlciB0byBwcmVzcyBhIGtl eSwgdGhlbiByZWJvb3QKLQl4b3J3CSVheCwgJWF4Ci0JaW50CSQweDE2Ci0JaW50CSQweDE5Cisj IEFmdGVyIHRoYXQgd2UgY2hlY2sgd2hpY2ggcm9vdC1kZXZpY2UgdG8gdXNlLiBJZiB0aGUgZGV2 aWNlIGlzCisjIGRlZmluZWQgKCE9IDApLCBub3RoaW5nIGlzIGRvbmUgYW5kIHRoZSBnaXZlbiBk ZXZpY2UgaXMgdXNlZC4KKyMgT3RoZXJ3aXNlLCBvbmUgb2YgL2Rldi9mZDBIMjg4MCAoMiwzMikg b3IgL2Rldi9QUzAgKDIsMjgpIG9yIC9kZXYvYXQwICgyLDgpCisjIGRlcGVuZGluZyBvbiB0aGUg bnVtYmVyIG9mIHNlY3RvcnMgd2UgcHJldGVuZCB0byBrbm93IHdlIGhhdmUuCisKKworCW1vdncJ cm9vdF9kZXYsICVheAorCW9ydwklYXgsICVheAorCWpueglyb290X2RlZmluZWQKKworCW1vdncJ JGZsb3BweV90YWJsZSwlc2kKK3NjYW5fZmxvcHB5X3RhYmxlOgorCWxvZHN3CisJY21wYglsaW1p dHMsICVhaAorCWplCXNldF9yb290CisJam5vCXNjYW5fZmxvcHB5X3RhYmxlCitzZXRfcm9vdDoK Kwltb3ZiCSQyLCAlYWgKKwlhZGRiCSVkbCwgJWFsCQkjIGFkZCBjdXJyZW50IChmbG9wcHkpIGRy aXZlCisJbW92dwklYXgsIHJvb3RfZGV2Cityb290X2RlZmluZWQ6CisKKyNpZiBkZWZpbmVkKExP QURfQ01ETElORSkgfHwgZGVmaW5lZChFRElUX0NNRExJTkUpCisjZGVmaW5lIEJVRkZFUgkweDdG MDAKKwltb3Z3CSRCVUZGRVIsICVzaQorCW1vdncJJXNpLCAoJXNpKQkJIyBkZWZhdWx0IDogbm8g Y21kbGluZQorI2VuZGlmCiAKLQkjIGludCAweDE5IHNob3VsZCBuZXZlciByZXR1cm4uICBJbiBj YXNlIGl0IGRvZXMgYW55d2F5LAotCSMgaW52b2tlIHRoZSBCSU9TIHJlc2V0IGNvZGUuLi4KLQls am1wCSQweGYwMDAsJDB4ZmZmMAorI2lmZGVmCUxPQURfQ01ETElORQorCXRlc3RiCSQweDIwLHJh bV9zaXplKzEJIyBiaXQgMTEgdG8gMTMgd2hlcmUgdW51c2VkCisJCQkJCSMgbm93IGJpdCAxMyBt ZWFuczogbG9hZCBjbWRsaW5lCisJanoJbm9jbWQKKwltb3Z3CSRCVUZGRVIvMTYrSU5JVFNFRywg JWF4CisJbW92dwklYXgsICVlcworCW1vdncJJDEsICVkaQkJCSMgY21kbGluZSA9IDUxMiBieXRl cyBtYXgKKwljYWxsCXJlYWRfc2VjdG9ycworbm9jbWQ6CisjZW5kaWYKIAorI2RlZmluZSBSU0hG VCAgIDB4MDEKKyNkZWZpbmUgTFNIRlQgICAweDAyCisjZGVmaW5lIENUUkwgICAgMHgwNAorI2Rl ZmluZSBBTFQgICAgIDB4MDgKKyNkZWZpbmUgU0NSTENLICAweDEwCisjZGVmaW5lIE5VTUxDSyAg MHgyMAorI2RlZmluZSBDQVBTTENLIDB4NDAKKyNkZWZpbmUgSU5TRVJUICAweDgwCisKKyNpZmRl ZglFRElUX0NNRExJTkUKKyMgVGhlIGNtZGxpbmUgY2FuIGJlIGVudGVyZWQgYW5kIG1vZGlmZWQg b24gaG90IGtleS4KKyMgT25seSBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgY3Vyc29yIGFyZSBwYXNz ZWQgdG8gdGhlIGtlcm5lbC4KKwltb3ZiCSQyLCAlYWgJCQkjIGdldCBrZXlib2FyZCBzdGF0dXMK KwlpbnQJJDB4MTYKKwl0ZXN0YgkkUlNIRlR8TFNIRlR8Q1RSTHxBTFR8Q0FQU0xDSywgJWFsCisJ anoJbm9jbWRsaW5lCisJcHVzaHcJJXNpCisJY2FsbAlwdXRzCQkJIyBzZXQgJWFoIGFuZCAlYngK K2NtZGxwOgorIyBpZiAxCisJbW92YgkkMzIsICVhbAkJIyBjbGVhciBlbmQgb2YgbGluZQorCWlu dAkkMHgxMAkJCSMgIHdpdGggU3BhY2UKKwltb3ZiCSQ4LCAlYWwJCQkjICAgYW5kIEJhY2tTcGFj ZQorCWludAkkMHgxMAorIyBlbmRpZgorCWRlY3cJJXNpCitjbWRnZXQ6CisJY2J3CQkJCSMgJWFo ID0gMCwgZ2V0IGtleWJvYXJkIGNoYXJhY3RlcgorCWludAkkMHgxNgorCWNtcGIJJDgsICVhbAkJ CSMgQmFja1NwYWNlID8KKwlqZQljbWRicworCWNidworCW1vdncJJWF4LCAoJXNpKQkJIyBzdG9y ZSBlbmQgb2Ygc3RyaW5nIHRvbworCWluY3cJJXNpCisJaW5jdwklc2kKK2NtZGJzOgorCWNtcHcJ JEJVRkZFUiwgJXNpCQkjIGxvd2VyIGxpbWl0IGlzIGNoZWNrZWQKKwlqZQljbWRnZXQJCQkjICAg YnV0IHVwcGVyIGxpbWl0IG5vdAorCWNhbGwJcHV0YworCWNtcGIJJDEzLCAlYWwJCSMgRW50ZXIg PworCWpuZQljbWRscAorCXBvcHcJJXNpCitub2NtZGxpbmU6CisjZW5kaWYKIAotYnVnZ2VyX29m Zl9tc2c6Ci0JLmFzY2lpCSJEaXJlY3QgYm9vdGluZyBmcm9tIGZsb3BweSBpcyBubyBsb25nZXIg c3VwcG9ydGVkLlxyXG4iCi0JLmFzY2lpCSJQbGVhc2UgdXNlIGEgYm9vdCBsb2FkZXIgcHJvZ3Jh bSBpbnN0ZWFkLlxyXG4iCi0JLmFzY2lpCSJcbiIKLQkuYXNjaWkJIlJlbW92ZSBkaXNrIGFuZCBw cmVzcyBhbnkga2V5IHRvIHJlYm9vdCAuIC4gLlxyXG4iCi0JLmJ5dGUJMAorI2lmIGRlZmluZWQo TE9BRF9DTURMSU5FKSB8fCBkZWZpbmVkKEVESVRfQ01ETElORSkKKyNpZiAxCitjbWRfbGluZV9t YWdpYwk9CTB4MjAKK2NtZF9saW5lX29mZnNldAk9CTB4MjIKKwltb3Z3CSQweEEzM0YsIGNtZF9s aW5lX21hZ2ljCisJbW92dwklc2ksIGNtZF9saW5lX29mZnNldAorI2Vsc2UKKyMgcHJvdG9jb2wg Pj0gMi4wMiwgc3RhcnRpbmcgS2VybmVsIDIuNC4wLXRlc3QzLXByZTMKK2NtZF9saW5lX3B0cgk9 CTB4MjI4CisJbW92engJJXNpLCAlZWF4CisJYWRkbAkkSU5JVFNFRyoxNiwgJWVheAorCW1vdmwJ JWVheCwgY21kX2xpbmVfcHRyCisjZW5kaWYKK2VtcHR5Y21kbGluZToKKyNlbmRpZgorCQorIyBU aGlzIHByb2NlZHVyZSB0dXJucyBvZmYgdGhlIGZsb3BweSBkcml2ZSBtb3Rvciwgc28KKyMgdGhh dCB3ZSBlbnRlciB0aGUga2VybmVsIGluIGEga25vd24gc3RhdGUsIGFuZAorIyBkb24ndCBoYXZl IHRvIHdvcnJ5IGFib3V0IGl0IGxhdGVyLgorCisjaWYgMQora2lsbF9tb3RvcjoKKwl4b3J3CSVh eCwgJWF4CQkjIHJlc2V0IEZEQworCWludAkkMHgxMworI2Vsc2UKK2tpbGxfbW90b3I6CisJbW92 dwkkMHgzZjIsICVkeAorCXhvcmIJJWFsLCAlYWwKKwlvdXRiCSVhbCwgJWR4CisjZW5kaWYKIAor CWNhbGwJcHJpbnRfbmwKIAotCSMgS2VybmVsIGF0dHJpYnV0ZXM7IHVzZWQgYnkgc2V0dXAKKyMg QWZ0ZXIgdGhhdCAoZXZlcnl0aGluZyBsb2FkZWQpLCB3ZSBqdW1wIHRvIHRoZSBzZXR1cC1yb3V0 aW5lCisjIGxvYWRlZCBkaXJlY3RseSBhZnRlciB0aGUgYm9vdGJsb2NrOgorIyBTZWdtZW50cyBh cmUgYXMgZm9sbG93czogJWRzID0gJXNzID0gSU5JVFNFRworCisJbGptcAkkU0VUVVBTRUcsICQw CisKKyMgcmVhZF9zZWN0b3JzIHJlYWRzICVkaSBzZWN0b3JzIGludG8gJWVzOjAgYnVmZmVyLgor IyAlZXM6MCBpcyB1cGRhdGVkIHRvIHRoZSBuZXh0IG1lbW9yeSBsb2NhdGlvbi4KKyMgRmlyc3Qs IHNlY3RvcnMgYXJlIHJlYWQgc2VjdG9yIGJ5IHNlY3RvciB1bnRpbAorIyBzZWN0b3IgcGVyIHRy YWNrIGNvdW50IGlzIGtub3duLiBUaGVuIHRoZXkgYXJlCisjIHJlYWQgdHJhY2sgYnkgdHJhY2su CisjIEFzc3VtZSBubyBlcnJvciBvbiBmaXJzdCB0cmFjay4KKworI2RlZmluZSBUUkFDS19CWV9U UkFDSwlsb2FkIGFzIGZhc3QgYXMgcG9zc2libGUgIQorI2RlZmluZSBTSE9XX1JFR1MJc2hvdyBp bnQxMyBzdGF0dXMgJiBwYXJhbWV0ZXJzCisKK2NoZWNrX2xpbWl0czoKKyAgICAgICAgY21wYiAg ICAlYWwsICVjbAkJIyBtYXggc2VjdG9yIGtub3duID8KKyAgICAgICAgamEJbmV4dF9oZWFkCQkj ICAgbm8gLT4gc3RvcmUgaXQKKyAgICAgICAgY21wYiAgICAlYWgsICVkaAkJIyBtYXggaGVhZCBr bm93biA/CisgICAgICAgIGphCW5leHRfdHJhY2sJCSMgICBubyAtPiBzdG9yZSBpdAorCXB1c2hh CQkJCSMgc2F2ZSBjb250ZXh0CisjaWZkZWYgU0hPV19SRUdTCisJcHVzaHcJJWVzCQkJIyBwcmlu dCAlZXMgKG5hbWVkIEVYKQorCXB1c2h3CSVkeAkJCSMgcHJpbnQgJWR4CisJcHVzaHcJJWN4CQkJ IyBwcmludCAlY3gKKwl4b3J3CSVjeCwgJWN4CisJcHVzaHcJJWN4CQkJIyBwcmludCAlYngKKyMg aWZkZWYgVFJBQ0tfQllfVFJBQ0sKKwltb3ZiCSQyLCAlYmgKKyMgZW5kaWYKKwlwdXNodwklYngJ CQkjIHByaW50ICVheAorCW1vdmIJJDYsJWNsCisJam1wCXByaW50X2FsbAkJIyBwcmludCAlYnAg KHN0YXR1cykKK3ByaW50X2xvb3A6CisJbW92YgkkMHg2ICsgJ0EnIC0gMSwgJWFsCisJc3ViYgkl Y2wsICVhbAorCW1vdncJJHJlZ3MsICVzaQkJIyBjYWxsZXIgJXNpIGlzIHNhdmVkCisJY2FsbAlw dXRjcwkJCSMgcHV0YyglYWwpICsgcHV0cyglc2kpCisjIGl0IHdpbGwgcHJpbnQgb3V0IGFsbCBv ZiB0aGUgcmVnaXN0ZXJzLgorCXBvcHcJJWJwCQkJIyBsb2FkIHdvcmQgaW50byAlYnAKK3ByaW50 X2FsbDoKKwlwdXNodwklY3gJCQkjIHNhdmUgY291bnQgcmVtYWluaW5nCisJbW92YgkkNCwgJWNs CQkJIyA0IGhleCBkaWdpdHMKK3ByaW50X2RpZ2l0OgorCXJvbHcJJDQsICVicAkJCSMgcm90YXRl IHRvIHVzZSBsb3cgNCBiaXRzCisJbW92YgkkMHgwZiwgJWFsCisJYW5kdwklYnAsICVheAkJIyAl YWwgPSBtYXNrIGZvciBueWJibGUKKwlhZGRiCSQweDkwLCAlYWwJCSMgY29udmVydCAlYWwgdG8g YXNjaWkgaGV4CisJZGFhCQkJCSMgaW4gb25seSBmb3VyIGluc3RydWN0aW9ucyEKKwlhZGNiCSQw eDQwLCAlYWwKKwlkYWEKKwljYWxsCXB1dGMJCQkjIHNldCAlYWggYW5kICVieAorCWxvb3AJcHJp bnRfZGlnaXQKKwltb3ZiCSQweDIwLCAlYWwJCSMgU1BBQ0UKKwlpbnQJJDB4MTAKKwlwb3B3CSVj eAorCWxvb3AJcHJpbnRfbG9vcAorCXhjaGcJJWF4LCAlY3gJCSMgJWFoID0gMAorI2Vsc2UKKwlj YncJCQkJIyAlYWggPSAwCisjZW5kaWYKKyAgICAgICAgaW50ICAgICAkMHgxMwkJCSMgcmVzZXQg Y29udHJvbGVyCisJcG9wYQkJCQkjIHJlc3RvcmUgY29udGV4dAorcmVhZF9zZWN0b3JzbHA6City ZWFkX2ZpcnN0X3NlY3RvcjoKKyAgICAgICAgcHVzaHcgICAlZGkJCQkjIHNlY3RvciBjb3VudAor ICAgICAgICBwdXNodyAgICVheAkJCSMgbGltaXRzCisgICAgICAgIHB1c2h3ICAgJWR4CisgICAg ICAgIHB1c2h3ICAgJWN4CisJeG9ydwklYngsICVieAorI2lmZGVmIFRSQUNLX0JZX1RSQUNLCisJ c3ViYgklY2wsICVhbAkJIyBzZWN0b3JzIHJlbWFpbmluZyBpbiB0cmFjaworCWphCXRvbGFzdHNl Y3QKKwltb3ZiCSQxLCAlYWwJCQkjIDEgc2VjdG9yIG1pbmkKK3RvbGFzdHNlY3Q6CisJY2J3CisJ Y21wdwklZGksICVheAorCWpiCW1vcmUxdHJrCisJbW92dwklZGksICVheAkJIyBzZWN0b3JzIHRv IHJlYWQKK21vcmUxdHJrOgorCXB1c2gJJWF4CisJbW92YgkkMiwgJWFoCQkJIyBjbWQ6IHJlYWQg Y2hzCisjZWxzZQorICAgICAgICBtb3Z3ICAgICQweDIwMSwgJWF4CQkjIHNlY3RvciBieSBzZWN0 b3IKKwlwdXNoCSVheAorI2VuZGlmCisgICAgICAgIGludCAgICAgJDB4MTMKKwl4Y2hnCSVheCwg JWJwCQkjIHN0YXR1cworICAgICAgICBwb3B3ICAgICVieAkJCSMgJWF4IAorICAgICAgICBwb3B3 ICAgICVjeAorICAgICAgICBwb3B3ICAgICVkeAorICAgICAgICBwb3B3ICAgICVheAkJCSMgbGlt aXRzCisgICAgICAgIHBvcHcgICAgJWRpCQkJIyBzZWN0b3IgY291bnQKKwlqYwljaGVja19saW1p dHMKK25leHRfc2VjdG9yOgorI2lmZGVmIFRSQUNLX0JZX1RSQUNLCisJc3VidwklYngsJWRpCQkJ IyB1cGRhdGUgc2VjdG9yIGNvdW50ZXIKKwlhZGR3CSVieCwlY3gJCQkjIG5leHQgc2VjdG9yCisJ c2hsdwkkNSwlYngJCQkjIHNlY3RvcnMgLT4gcGFyYWdyYWdocworCW1vdncJJWVzLCAlYnAKKwlh ZGR3CSVieCwgJWJwCisjZWxzZQorCWRlY3cJJWRpCQkJIyB1cGRhdGUgc2VjdG9yIGNvdW50ZXIK KwlpbmN3CSVjeAkJCSMgbmV4dCBzZWN0b3IKKwltb3Z3CSVlcywgJWJwCisJYWRkdwkkMzIsICVi cAkJIyBzZWN0b3Igc2l6ZSBpbiBwYXJhZ3JhZ2hzCisjZW5kaWYKKwltb3Z3CSVicCwgJWVzCQkj IG5leHQgbG9jYXRpb24KKyAgICAgICAgY21wYiAgICAlYWwsJWNsCQkJIyByZWFjaCBzZWN0b3Ig bGltaXQgPworICAgICAgICBqbmUgICAgIGJkZW5kbHAKK25leHRfaGVhZDoKKyAgICAgICAgbW92 YiAgICAlY2wsJWFsCisgICAgICAgIGluY2IgICAgJWRoCQkJIyBuZXh0IGhlYWQKKyAgICAgICAg bW92YiAgICAkMSwlY2wJCQkjIGZpcnN0IHNlY3RvcgorICAgICAgICBjbXBiICAgICVhaCwlZGgJ CQkjIHJlYWNoIGhlYWQgbGltaXQgPworICAgICAgICBqbmUgICAgIGJkZW5kbHAKK25leHRfdHJh Y2s6CisgICAgICAgIG1vdmIgICAgJWRoLCVhaAorICAgICAgICBtb3ZiICAgICQwLCVkaAkJCSMg Zmlyc3QgaGVhZAorIyBOT1RFIDogc3VwcG9ydCAyNTYgY3lsaW5kZXJzIG1heAorICAgICAgICBp bmNiICAgICVjaAkJCSMgbmV4dCBjeWxpbmRlcgorYmRlbmRscDoKK2N1cmRyaXZlID0JX3N0YXJ0 CitjdXJkeAk9CV9zdGFydAorY3VyY3gJPQlfc3RhcnQrMgorbGltaXRzCT0JX3N0YXJ0KzQKKwlt b3Z3CSVkeCwgY3VyZHgJCSMgc2F2ZSBkaXNrIHN0YXRlCisJbW92dwklY3gsIGN1cmN4CisJbW92 dwklYXgsIGxpbWl0cworcmVhZF9zZWN0b3JzOgorCW1vdncJY3VyZHgsICVkeAkJIyByZXN0b3Jl IGRpc2sgc3RhdGUKKwltb3Z3CWN1cmN4LCAlY3gKKyMgICBhbCBpcyBsYXN0IHNlY3RvcisxCisj ICAgYWggaXMgbGFzdCBoZWFkKzEKKwltb3Z3CWxpbWl0cywgJWF4CisJb3J3CSVkaSwlZGkKKyAg ICAgICAgam5lCXJlYWRfc2VjdG9yc2xwCisJbW92YgkkMHgyZSwgJWFsIAkJIyBsb2FkaW5nLi4u IG1lc3NhZ2UgMmUgPSAuCitwdXRjOgorCW1vdmIJJDB4ZSwgJWFoCisJbW92dwkkNywgJWJ4CQkJ IyAgIG9uZSBkb3QgZWFjaCA2NGsKKyAJaW50CSQweDEwCityZXR1cm46CisJcmV0CisKK3ByaW50 X25sOgorCQorCW1vdmIJJDB4ZCwgJWFsCQkjIENSCisJY2FsbAlwdXRjCisJbW92YgkkMHhhLCAl YWwJCSMgTEYKKwlqbXAJcHV0YworCitwdXRzOgorCWNhbGwJcHJpbnRfbmwJCSMgc2V0ICVhaCBh bmQgJWJ4CitwdXRzbHA6CisJbG9kc2IKKwlvcmIJJWFsLCVhbAkJCSMgZW5kIG9mIHN0cmluZyBp cyBcMAorCWp6CXJldHVybgorcHV0Y3M6CisJaW50CSQweDEwCisJam1wCXB1dHNscAogCi0JLm9y ZyA0OTcKK2Zsb3BweV90YWJsZToKKyNpZmRlZiBFWFRSQV9ERVZJQ0VTCQkKKwkJLmJ5dGUJMTYs OQkJCSMgL2Rldi9mZDB1NzIwCisJCS5ieXRlCTEyLDEwCQkJIyAvZGV2L2ZkMHU4MDAKKwkJLmJ5 dGUJODAsMTEJCQkjIC9kZXYvZmQwdTg4MAorCQkuYnl0ZQkxMjUsMjAJCQkjIC9kZXYvZmQwdTE2 MDAKKwkJLmJ5dGUJNDQsMjEJCQkjIC9kZXYvZmQwdTE2ODAKKwkJLmJ5dGUJOTYsMjIJCQkjIC9k ZXYvZmQwdTE3NjAKKwkJLmJ5dGUJMTE2LDIzCQkJIyAvZGV2L2ZkMHUxODQwCisJCS5ieXRlCTEw MCwyNAkJCSMgL2Rldi9mZDB1MTkyMAorCQkuYnl0ZQkxMDUsNDAJCQkjIC9kZXYvZmQwdTMyMDAK KwkJLmJ5dGUJMTA5LDQ0CQkJIyAvZGV2L2ZkMHUzNTIwCisJCS5ieXRlCTExMyw0OAkJCSMgL2Rl di9mZDB1Mzg0MAorI2VuZGlmCQkKKwkJLmJ5dGUJOCwxNQkJCSMgL2Rldi9mZDBoMTIwMCAtIC9k ZXYvcHMwCisJCS5ieXRlCTI4LDE4CQkJIyAvZGV2L2ZkMHUxNDQwIC0gL2Rldi9QUzAKKwkJLmJ5 dGUJMzIsMzYJCQkjIC9kZXYvZmQwdTI4ODAgLSAvZGV2L2ZkMEgyODgwCisJCS5ieXRlCTAsMTI4 CQkJIyAvZGV2L2ZkMCAtIGRlZmF1bHQ6IGF1dG9kZXRlY3QKKworcmVnczoJCS5hc2NpegkiWDoi CisKKyNpZm5kZWYJRElTUExBWV9LRVJORUxfVkVSU0lPTgorbXNnMToJCS5hc2NpegkiTG9hZGlu ZyIKKyNlbmRpZgkJCisKK3RhaWw6CisJCS5zcGFjZQk0OTUrc3RhcnQtdGFpbAkJCisKKyMub3Jn IDQ5NQorc3lzX3NlY3RzOgkud29yZCBTWVNTSVpFIC8gMzIJCSMgc2l6ZSBtYXggaXMgbm93IDMy TWIKKyMub3JnIDQ5Nwogc2V0dXBfc2VjdHM6CS5ieXRlIFNFVFVQU0VDVFMKIHJvb3RfZmxhZ3M6 CS53b3JkIFJPT1RfUkRPTkxZCi1zeXNzaXplOgkud29yZCBTWVNTSVpFCitzeXNzaXplOgkud29y ZCBTWVNTSVpFICUgMHgxMDAwMAkJIyBzaXplIG1heCB3YXMgMU1iCiBzd2FwX2RldjoJLndvcmQg U1dBUF9ERVYKLXJhbV9zaXplOgkud29yZCBSQU1ESVNLCityYW1fc2l6ZToJLndvcmQgUkFNRElT SwkJCSMgcmFtZGlzayBzaXplLCByYW1kaXNrIGZsYWdzIGFuZCBjbWRsaW5lIGZsYWcKIHZpZF9t b2RlOgkud29yZCBTVkdBX01PREUKIHJvb3RfZGV2Ogkud29yZCBST09UX0RFVgogYm9vdF9mbGFn Ogkud29yZCAweEFBNTUKZGlmZiAtcHVyTiBsaW51eC0yLjYuMTMvYXJjaC9pMzg2L2Jvb3QvdG9v bHMvYnVpbGQuYyBsaW51eC0yLjYuMTMtYm9vdGJsb2NrL2FyY2gvaTM4Ni9ib290L3Rvb2xzL2J1 aWxkLmMKLS0tIGxpbnV4LTIuNi4xMy9hcmNoL2kzODYvYm9vdC90b29scy9idWlsZC5jCTIwMDUt MDktMTIgMTA6Mzg6NTIuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTMtYm9vdGJsb2Nr L2FyY2gvaTM4Ni9ib290L3Rvb2xzL2J1aWxkLmMJMjAwNS0wOS0xMiAxMDo0NjoyNS4wMDAwMDAw MDAgKzAyMDAKQEAgLTE2OCwxMCArMTY4LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoq IGFyZ3YpCiAJfQogCWNsb3NlKGZkKTsKIAotCWlmIChsc2VlaygxLCA0OTcsIFNFRUtfU0VUKSAh PSA0OTcpCQkgICAgLyogV3JpdGUgc2l6ZXMgdG8gdGhlIGJvb3RzZWN0b3IgKi8KKwlpZiAobHNl ZWsoMSwgNDk1LCBTRUVLX1NFVCkgIT0gNDk1KQkJICAgIC8qIFdyaXRlIHNpemVzIHRvIHRoZSBi b290c2VjdG9yICovCiAJCWRpZSgiT3V0cHV0OiBzZWVrIGZhaWxlZCIpOwotCWJ1ZlswXSA9IHNl dHVwX3NlY3RvcnM7Ci0JaWYgKHdyaXRlKDEsIGJ1ZiwgMSkgIT0gMSkKKwlzeiA9IChzYi5zdF9z aXplICsgNTExKSAvIDUxMjsKKwlidWZbMF0gPSAoc3ogJiAweGZmKTsKKwlidWZbMV0gPSAoKHN6 ID4+IDgpICYgMHhmZik7CisJYnVmWzJdID0gc2V0dXBfc2VjdG9yczsKKwlpZiAod3JpdGUoMSwg YnVmLCAzKSAhPSAzKQogCQlkaWUoIldyaXRlIG9mIHNldHVwIHNlY3RvciBjb3VudCBmYWlsZWQi KTsKIAlpZiAobHNlZWsoMSwgNTAwLCBTRUVLX1NFVCkgIT0gNTAwKQogCQlkaWUoIk91dHB1dDog c2VlayBmYWlsZWQiKTsKZGlmZiAtcHVyTiBsaW51eC0yLjYuMTMvYXJjaC9pMzg2L2tlcm5lbC9z ZXR1cC5jIGxpbnV4LTIuNi4xMy1ib290YmxvY2svYXJjaC9pMzg2L2tlcm5lbC9zZXR1cC5jCi0t LSBsaW51eC0yLjYuMTMvYXJjaC9pMzg2L2tlcm5lbC9zZXR1cC5jCTIwMDUtMDktMTIgMTA6Mzg6 NTMuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTMtYm9vdGJsb2NrL2FyY2gvaTM4Ni9r ZXJuZWwvc2V0dXAuYwkyMDA1LTA5LTEyIDEwOjU3OjAxLjAwMDAwMDAwMCArMDIwMApAQCAtMTU2 LDYgKzE1Niw3IEBAIHVuc2lnbmVkIGxvbmcgc2F2ZWRfdmlkZW9tb2RlOwogI2RlZmluZSBSQU1E SVNLX0lNQUdFX1NUQVJUX01BU0sgIAkweDA3RkYKICNkZWZpbmUgUkFNRElTS19QUk9NUFRfRkxB RwkJMHg4MDAwCiAjZGVmaW5lIFJBTURJU0tfTE9BRF9GTEFHCQkweDQwMDAJCisjZGVmaW5lIENN RExJTkVfTE9BRF9GTEFHCQkweDIwMDAJCiAKIHN0YXRpYyBjaGFyIGNvbW1hbmRfbGluZVtDT01N QU5EX0xJTkVfU0laRV07CiAKZGlmZiAtcHVyTiBsaW51eC0yLjYuMTMvYXJjaC94ODZfNjQvYm9v dC9ib290c2VjdC5TIGxpbnV4LTIuNi4xMy1ib290YmxvY2svYXJjaC94ODZfNjQvYm9vdC9ib290 c2VjdC5TCi0tLSBsaW51eC0yLjYuMTMvYXJjaC94ODZfNjQvYm9vdC9ib290c2VjdC5TCTIwMDUt MDktMTIgMTA6Mzc6NTguMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTMtYm9vdGJsb2Nr L2FyY2gveDg2XzY0L2Jvb3QvYm9vdHNlY3QuUwkyMDA1LTA5LTEyIDEwOjU4OjA3LjAwMDAwMDAw MCArMDIwMApAQCAtNCwyMCArNCwzMSBAQAogICoJbW9kaWZpZWQgYnkgRHJldyBFY2toYXJkdAog ICoJbW9kaWZpZWQgYnkgQnJ1Y2UgRXZhbnMgKGJkZSkKICAqCW1vZGlmaWVkIGJ5IENocmlzIE5v ZSAoTWF5IDE5OTkpIChhczg2IC0+IGdhcykKLSAqCWd1dHRlZCBieSBILiBQZXRlciBBbnZpbiAo SmFuIDIwMDMpCisgKgorICogICAgICByZXdyaXR0ZW4gdG8gc3VwcG9ydCB1cCB0byAzMk1iIGtl cm5lbCwgY21kbGluZQorICogICAgICBhbmQgYW55IGRpc2sgZ2VvbWV0cnkgYnkgPHBhc2NhbC5i ZWxsYXJkQGFkcy1sdS5jb20+CiAgKgogICogQklHIEZBVCBOT1RFOiBXZSdyZSBpbiByZWFsIG1v ZGUgdXNpbmcgNjRrIHNlZ21lbnRzLiAgVGhlcmVmb3JlIHNlZ21lbnQKICAqIGFkZHJlc3NlcyBt dXN0IGJlIG11bHRpcGxpZWQgYnkgMTYgdG8gb2J0YWluIHRoZWlyIHJlc3BlY3RpdmUgbGluZWFy CiAgKiBhZGRyZXNzZXMuIFRvIGF2b2lkIGNvbmZ1c2lvbiwgbGluZWFyIGFkZHJlc3NlcyBhcmUg d3JpdHRlbiB1c2luZyBsZWFkaW5nCiAgKiBoZXggd2hpbGUgc2VnbWVudCBhZGRyZXNzZXMgYXJl IHdyaXR0ZW4gYXMgc2VnbWVudDpvZmZzZXQuCiAgKgorICogYmRlIC0gc2hvdWxkIG5vdCBqdW1w IGJsaW5kbHksIHRoZXJlIG1heSBiZSBzeXN0ZW1zIHdpdGggb25seSA1MTJLIGxvdworICogbWVt b3J5LiAgVXNlIGludCAweDEyIHRvIGdldCB0aGUgdG9wIG9mIG1lbW9yeSwgZXRjLgorICoKKyAq IEl0IHRoZW4gbG9hZHMgJ3NldHVwJyBkaXJlY3RseSBhZnRlciBpdHNlbGYgKDB4OTAyMDApLCBh bmQgdGhlIHN5c3RlbQorICogYXQgMHgxMDAwMCwgdXNpbmcgQklPUyBpbnRlcnJ1cHRzLiAKKyAq CisgKiBUaGUgbG9hZGVyIGhhcyBiZWVuIG1hZGUgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLCBhbmQg Y29udGludW91cworICogcmVhZCBlcnJvcnMgd2lsbCByZXN1bHQgaW4gYSB1bmJyZWFrYWJsZSBs b29wLiBSZWJvb3QgYnkgaGFuZC4gSXQKKyAqIGxvYWRzIHByZXR0eSBmYXN0IGJ5IGdldHRpbmcg d2hvbGUgdHJhY2tzIGF0IGEgdGltZSB3aGVuZXZlciBwb3NzaWJsZS4KICAqLwogCiAjaW5jbHVk ZSA8YXNtL2Jvb3QuaD4KIAogU0VUVVBTRUNUUwk9IDQJCQkvKiBkZWZhdWx0IG5yIG9mIHNldHVw LXNlY3RvcnMgKi8KIEJPT1RTRUcJCT0gMHgwN0MwCQkvKiBvcmlnaW5hbCBhZGRyZXNzIG9mIGJv b3Qtc2VjdG9yICovCi1JTklUU0VHCQk9IERFRl9JTklUU0VHCQkvKiB3ZSBtb3ZlIGJvb3QgaGVy ZSAtIG91dCBvZiB0aGUgd2F5ICovCitJTklUU0VHCQk9IERFRl9JTklUU0VHCQkvKiB3ZSBsb2Fk IGJvb3QgaGVyZSAtIG91dCBvZiB0aGUgd2F5ICovCiBTRVRVUFNFRwk9IERFRl9TRVRVUFNFRwkJ Lyogc2V0dXAgc3RhcnRzIGhlcmUgKi8KIFNZU1NFRwkJPSBERUZfU1lTU0VHCQkvKiBzeXN0ZW0g bG9hZGVkIGF0IDB4MTAwMDAgKDY1NTM2KSAqLwogU1lTU0laRQkJPSBERUZfU1lTU0laRQkJLyog c3lzdGVtIHNpemU6ICMgb2YgMTYtYnl0ZSBjbGlja3MgKi8KQEAgLTI1LDYgKzM2LDEyIEBAIFNZ U1NJWkUJCT0gREVGX1NZU1NJWkUJCS8qIHN5c3RlbSBzaXplOiAKIFJPT1RfREVWCT0gMCAJCQkv KiBST09UX0RFViBpcyBub3cgd3JpdHRlbiBieSAiYnVpbGQiICovCiBTV0FQX0RFVgk9IDAJCQkv KiBTV0FQX0RFViBpcyBub3cgd3JpdHRlbiBieSAiYnVpbGQiICovCiAKKy8qIHNvbWUgZXh0cmEg ZmVhdHVyZXMgKi8KKyNkZWZpbmUgRElTUExBWV9LRVJORUxfVkVSU0lPTgkJYXMgc29vbiBhcyBw b3NzaWJsZQorI2RlZmluZQlFRElUX0NNRExJTkUJCQlvbiBob3RrZXkKKyNkZWZpbmUJTE9BRF9D TURMSU5FCQkJYWNjb3JkaW5nIHRvIGJpdCByYW1zaXplLjEzCisjZGVmaW5lIEVYVFJBX0RFVklD RVMJCQl0byBmaWxsIHJvb3RfZGV2aWNlCisKICNpZm5kZWYgU1ZHQV9NT0RFCiAjZGVmaW5lIFNW R0FfTU9ERSBBU0tfVkdBCiAjZW5kaWYKQEAgLTQyLDU3ICs1OSw0NzAgQEAgU1dBUF9ERVYJPSAw CQkJLyogU1dBUF9ERVYgaXMgbm93IHdyaXR0ZQogCiAuZ2xvYmFsIF9zdGFydAogX3N0YXJ0Ogor CWNsZAkJCQkjIGFzc3VtZSBub3RoaW5nCisJbW92dwkkSU5JVFNFRywgJWF4CisJbW92dwklYXgs ICVlcwkJIyAlYXggPSAlZXMgPSBJTklUU0VHCisjaWYgTU9WRV9CT09UU0VDVE9SCisjIEZpcnN0 IHRoaW5ncyBmaXJzdC4gTW92ZSBvdXJzZWxmIGZyb20gMHg3QzAwIC0+IDB4OTAwMDAgYW5kIGp1 bXAgdGhlcmUuCisJbW92dwkkQk9PVFNFRywgJWN4CisJbW92dwklY3gsICVkcwkJIyAlZHMgPSBC T09UU0VHCisJbW92YgkkMSwgJWNoCQkJIyAlY3ggPSAyNTYKKwlzdWJ3CSVzaSwgJXNpCisJc3Vi dwklZGksICVkaQorCXJlcAorCW1vdnN3CisJbGptcAkkSU5JVFNFRywgJGdvCitnbzoJCisjZWxz ZQorCXhvcncJJWN4LCAlY3gJCSMgJWN4ID0gMAorI2VuZGlmCiAKLQkjIE5vcm1hbGl6ZSB0aGUg c3RhcnQgYWRkcmVzcwotCWptcGwJJEJPT1RTRUcsICRzdGFydDIKKyMgYmRlIC0gY2hhbmdlZCAw eGZmMDAgdG8gMHg0MDAwIHRvIHVzZSBkZWJ1Z2dlciBhdCAweDY0MDAgdXAgKGJkZSkuICBXZQor IyB3b3VsZG4ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoaXMgaWYgd2UgY2hlY2tlZCB0aGUgdG9w IG9mIG1lbW9yeS4gIEFsc28KKyMgbXkgQklPUyBjYW4gYmUgY29uZmlndXJlZCB0byBwdXQgdGhl IHdpbmkgZHJpdmUgdGFibGVzIGluIGhpZ2ggbWVtb3J5CisjIGluc3RlYWQgb2YgaW4gdGhlIHZl Y3RvciB0YWJsZS4gIFRoZSBvbGQgc3RhY2sgbWlnaHQgaGF2ZSBjbG9iYmVyZWQgdGhlCisjIGRy aXZlIHRhYmxlLgorCisJbW92dwkkMHg0MDAwLTEyLCAlZGkJCSMgMHg0MDAwIGlzIGFuIGFyYml0 cmFyeSB2YWx1ZSA+PQorCQkJCQkjIGxlbmd0aCBvZiBib290c2VjdCArIGxlbmd0aCBvZgorCQkJ CQkjIHNldHVwICsgcm9vbSBmb3Igc3RhY2s7CisJCQkJCSMgMTIgaXMgZGlzayBwYXJtIHNpemUu CisJCQkJCSMgZ2R0IHdpbGwgaGVhdCA0OCBtb3JlIGJ5dGVzLgorCW1vdncJJWF4LCAlc3MJCSMg JWF4IGFuZCAlZXMgYWxyZWFkeSBjb250YWluIElOSVRTRUcKKwltb3Z3CSVkaSwgJXNwCQkjIHB1 dCBzdGFjayBhdCBJTklUU0VHOjB4NDAwMC0xMi4KKworIyBNYW55IEJJT1MncyBkZWZhdWx0IGRp c2sgcGFyYW1ldGVyIHRhYmxlcyB3aWxsIG5vdCByZWNvZ25pemUKKyMgbXVsdGktc2VjdG9yIHJl YWRzIGJleW9uZCB0aGUgbWF4aW11bSBzZWN0b3IgbnVtYmVyIHNwZWNpZmllZAorIyBpbiB0aGUg ZGVmYXVsdCBkaXNrZXR0ZSBwYXJhbWV0ZXIgdGFibGVzIC0gdGhpcyBtYXkgbWVhbiA3CisjIHNl Y3RvcnMgaW4gc29tZSBjYXNlcy4KKyMKKyMgU2luY2Ugc2luZ2xlIHNlY3RvciByZWFkcyBhcmUg c2xvdyBhbmQgb3V0IG9mIHRoZSBxdWVzdGlvbiwKKyMgd2UgbXVzdCB0YWtlIGNhcmUgb2YgdGhp cyBieSBjcmVhdGluZyBuZXcgcGFyYW1ldGVyIHRhYmxlcworIyAoZm9yIHRoZSBmaXJzdCBkaXNr KSBpbiBSQU0uICBXZSBjYW4gc2V0IHRoZSBtYXhpbXVtIHNlY3RvcgorIyBjb3VudCB0byAzNiAt IHRoZSBtb3N0IHdlIHdpbGwgZW5jb3VudGVyIG9uIGFuIEVEIDIuODguICAKKyMKKyMgSGlnaCBk b2Vzbid0IGh1cnQuICBMb3cgZG9lcy4gIExldCdzIHVzZSB0aGUgbWF4OiA2MworIworIyBTZWdt ZW50cyBhcmUgYXMgZm9sbG93czogJWVzID0gJXNzID0gSU5JVFNFRywKKyMgJWZzIGFuZCAlZ3Mg YXJlIHVudXNlZC4KKworCW1vdncJJDB4NzgsICVieAkJIyAlZHM6JWJ4IGlzIHBhcmFtZXRlciB0 YWJsZSBhZGRyZXNzCisJbW92dwklY3gsICVkcwkJIyAlZHMgPSAwCisJbGRzdwkoJWJ4KSwgJXNp CQkjICVkczolc2kgaXMgc291cmNlCisJbW92YgkkNiwgJWNsCQkJIyBjb3B5IDEyIGJ5dGVzCisJ cmVwCQkJCSMgZG9uJ3Qgd29ycnkgYWJvdXQgY2xkCisJbW92c3cJCQkJIyBhbHJlYWR5IGRvbmUg YWJvdmUKKwltb3Z3CSVjeCwgJWRzCQkjICVkcyA9IDAKKwltb3Z3CSVzcCwgKCVieCkJCSMgJXNw ID0gMHg0MDAwLTEyCisJbW92dwklZXMsIDIoJWJ4KQorCXB1c2h3CSVlcworCXBvcHcJJWRzCQkJ IyBub3cgJWRzID0gJWVzID0gJXNzID0gSU5JVFNFRworCW1vdmIJJDYzLCAweDQtMTIoJWRpKQkj IHBhdGNoIHNlY3RvciBjb3VudCwgJWRpID0gMHg0MDAwCisKKwljbGkKKwljYncJCQkJIyAlYXgg PSAwIDogZ2VvbWV0cnkgdW5rbm93biB5ZXQKKwl4b3JiCSVkaCwgJWRoCQkjIGhlYWQgMCwgY3Vy cmVudCBkcml2ZQorCWluY3cJJWN4CQkJIyBjeWxpbmRlciAwLCBzZWN0b3IgMQorCW1vdncJJWN4 LCAlZGkJCSMgcmVhZCAxIHNlY3RvcgorCWNhbGwJcmVhZF9maXJzdF9zZWN0b3IJIyByZWFkIGJv b3RzZWN0b3IgYWdhaW4gdG8gaGF2ZQorCQkJCQkjIGFjY2VzcyB0byBkYXRhIHNlZ21lbnQKKwor I2lmbmRlZglESVNQTEFZX0tFUk5FTF9WRVJTSU9OCisJbW92dwkkbXNnMSwgJXNpCisJY2FsbAlw dXRzCisjZW5kaWYKIAotc3RhcnQyOgotCW1vdncJJWNzLCAlYXgKLQltb3Z3CSVheCwgJWRzCi0J bW92dwklYXgsICVlcwotCW1vdncJJWF4LCAlc3MKLQltb3Z3CSQweDdjMDAsICVzcAotCXN0aQot CWNsZAorIyBMb2FkIHRoZSBzZXR1cC1zZWN0b3JzIGRpcmVjdGx5IGFmdGVyIHRoZSBtb3ZlZCBi b290YmxvY2sgKGF0IDB4OTAyMDApLgogCi0JbW92dwkkYnVnZ2VyX29mZl9tc2csICVzaQorCW1v dmIJc2V0dXBfc2VjdHMsICVhbAorI2lmZGVmIENIRUNLX1NFVFVQX1NJWkUKKwlvcmIJJWFsLCAl YWwKKwlqbmUJc2V0dXBfc2l6ZV9vaworCW1vdmIJJFNFVFVQU0VDVFMsICVhbAorc2V0dXBfc2l6 ZV9vazoJCisjZW5kaWYKKwljYncKKwl4Y2hnCSVheCwgJWRpCisJY2FsbAlyZWFkX3NlY3RvcnMJ CSMgcmVhZCBzZXR1cAorCisjaWZkZWYJRElTUExBWV9LRVJORUxfVkVSU0lPTgorI2RlZmluZSBr ZXJuZWxfdmVyc2lvbgkweEUKKwltb3Z3CSQweDIwMCwlc2kKKwlhZGR3CWtlcm5lbF92ZXJzaW9u KCVzaSksJXNpCSMgc3RhcnRpbmcgcHJvdG9jb2wgMi4wMCwgS2VybmVsIDEuMy43MworCWNhbGwJ cHV0cwkJCSMgc2hvdyB3aGljaCBrZXJuZWwgd2UgYXJlIGxvYWRpbmcKKyNlbmRpZgogCi1tc2df bG9vcDoKLQlsb2RzYgotCWFuZGIJJWFsLCAlYWwKLQlqeglkaWUKLQltb3ZiCSQweGUsICVhaAot CW1vdncJJDcsICVieAotCWludAkkMHgxMAotCWptcAltc2dfbG9vcAorIyBUaGlzIHJvdXRpbmUg bG9hZHMgdGhlIHN5c3RlbSBhdCBhZGRyZXNzIFNZU1NFRywgbWFraW5nIHN1cmUKKyMgbm8gNjRr QiBib3VuZGFyaWVzIGFyZSBjcm9zc2VkLiBXZSB0cnkgdG8gbG9hZCBpdCBhcyBmYXN0IGFzCisj IHBvc3NpYmxlLCBsb2FkaW5nIHdob2xlIHRyYWNrcyB3aGVuZXZlciB3ZSBjYW4uCisKKyNpZmRl ZiBfX0JJR19LRVJORUxfXwordHlwZV9vZl9sb2FkZXIJPQk1MjgKKwltb3Z3CSQyNCwgJWN4CQkj IGFsbG9jYXRlIDQ4IGJ5dGVzIGluIHN0YWNrCitpbml0X2dkdDoKKwlwdXNoCSQwCQkJIyAgIGlu aXRpYWxpemVkIHdpdGggMAorCWxvb3AJaW5pdF9nZHQKKwltb3Z3CSVzcCwgJXNpCQkjIGZvciBi b290c2VjdF9nZHQKKwltb3Z3CSQweDkzMDArKFNZU1NFRy80MDk2KSwgJWF4CSMgc291cmNlID0g U1lTU0VHCisJY3dkCisJbW92dwklYXgsIDIwKCVzaSkJCSMgYm9vdHNlY3Rfc3JjX2Jhc2UrMgor CW1vdmIJJDB4MTAtMSwgJWFsCQkjIGRlc3RpbmF0aW9uID0gMHgxMDAwMDAKKwltb3Z3CSVheCwg MjgoJXNpKQkJIyBib290c2VjdF9kc3RfYmFzZSsyCisJbW92dwklZHgsIDE2KCVzaSkJCSMgYm9v dHNlY3Rfc3JjID0gNjRLYgorCW1vdncJJWR4LCAyNCglc2kpCQkjIGJvb3RzZWN0X2RzdCA9IDY0 S2IKKwltb3ZiCSVkbCwgdHlwZV9vZl9sb2FkZXIJIyBsb2FkZXIgdHlwZSA9IDB4RkYKK3N5c2xw OgorCW1vdncJJFNZU1NFRywgJWF4CisJbW92dwklYXgsICVlcworCW1vdncJJDEyOCwlZGkJCSMg NjRLYiBpbiBzZWN0b3JzCisJc3VidwklZGksIHN5c19zZWN0cworCXB1c2hmCisJam5jCW5vdF9s YXN0CisJYWRkdwlzeXNfc2VjdHMsICVkaQorbm90X2xhc3Q6CisJY2FsbAlyZWFkX3NlY3RvcnMK KwlpbmN3CTI4KCVzaSkJCQkjIGJvb3RzZWN0X2RzdF9iYXNlKzIKKwltb3Z3CSQweDgwMDAsICVj eAkJIyBmdWxsIDY0SworCW1vdmIJJDB4ODcsICVhaAorCXB1c2gJJXNzCisJcG9wCSVlcwkJCSMg Z2R0IGluIGVzOnNpCisJaW50CSQweDE1CisJcG9wZgorCWphCXN5c2xwCisjZWxzZQorCW1vdncJ JFNZU1NFRywgJWF4CisJbW92dwklYXgsICVlcworc3lzbHA6CisJbW92dwkkMTI4KjMyLCVheAkJ IyA2NEtiIGluIHBhcmFncmFwaHMKKwlzdWJ3CSVheCwgc3lzc2l6ZQorCXB1c2hmCisJam5jCW5v dF9sYXN0CisJYWRkdwlzeXNzaXplLCAlYXgKK25vdF9sYXN0OgorCW1vdmIJJDUsICVjbAkJCSMg cGFyYWdyYXBocyAtPiBzZWN0b3JzCisJc2hydwklY2wsICVheAorCXhjaGcJJWF4LCAlZGkKKwlj YWxsCXJlYWRfc2VjdG9ycworCXBvcGYKKwlqYQlzeXNscAorI2VuZGlmCiAKLWRpZToKLQkjIEFs bG93IHRoZSB1c2VyIHRvIHByZXNzIGEga2V5LCB0aGVuIHJlYm9vdAotCXhvcncJJWF4LCAlYXgK LQlpbnQJJDB4MTYKLQlpbnQJJDB4MTkKKyMgQWZ0ZXIgdGhhdCB3ZSBjaGVjayB3aGljaCByb290 LWRldmljZSB0byB1c2UuIElmIHRoZSBkZXZpY2UgaXMKKyMgZGVmaW5lZCAoIT0gMCksIG5vdGhp bmcgaXMgZG9uZSBhbmQgdGhlIGdpdmVuIGRldmljZSBpcyB1c2VkLgorIyBPdGhlcndpc2UsIG9u ZSBvZiAvZGV2L2ZkMEgyODgwICgyLDMyKSBvciAvZGV2L1BTMCAoMiwyOCkgb3IgL2Rldi9hdDAg KDIsOCkKKyMgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB3ZSBwcmV0ZW5kIHRv IGtub3cgd2UgaGF2ZS4KKworCisJbW92dwlyb290X2RldiwgJWF4CisJb3J3CSVheCwgJWF4CisJ am56CXJvb3RfZGVmaW5lZAorCisJbW92dwkkZmxvcHB5X3RhYmxlLCVzaQorc2Nhbl9mbG9wcHlf dGFibGU6CisJbG9kc3cKKwljbXBiCWxpbWl0cywgJWFoCisJamUJc2V0X3Jvb3QKKwlqbm8Jc2Nh bl9mbG9wcHlfdGFibGUKK3NldF9yb290OgorCW1vdmIJJDIsICVhaAorCWFkZGIJJWRsLCAlYWwJ CSMgYWRkIGN1cnJlbnQgKGZsb3BweSkgZHJpdmUKKwltb3Z3CSVheCwgcm9vdF9kZXYKK3Jvb3Rf ZGVmaW5lZDoKKworI2lmIGRlZmluZWQoTE9BRF9DTURMSU5FKSB8fCBkZWZpbmVkKEVESVRfQ01E TElORSkKKyNkZWZpbmUgQlVGRkVSCTB4N0YwMAorCW1vdncJJEJVRkZFUiwgJXNpCisJbW92dwkl c2ksICglc2kpCQkjIGRlZmF1bHQgOiBubyBjbWRsaW5lCisjZW5kaWYKIAotCSMgaW50IDB4MTkg c2hvdWxkIG5ldmVyIHJldHVybi4gIEluIGNhc2UgaXQgZG9lcyBhbnl3YXksCi0JIyBpbnZva2Ug dGhlIEJJT1MgcmVzZXQgY29kZS4uLgotCWxqbXAJJDB4ZjAwMCwkMHhmZmYwCisjaWZkZWYJTE9B RF9DTURMSU5FCisJdGVzdGIJJDB4MjAscmFtX3NpemUrMQkjIGJpdCAxMSB0byAxMyB3aGVyZSB1 bnVzZWQKKwkJCQkJIyBub3cgYml0IDEzIG1lYW5zOiBsb2FkIGNtZGxpbmUKKwlqeglub2NtZAor CW1vdncJJEJVRkZFUi8xNitJTklUU0VHLCAlYXgKKwltb3Z3CSVheCwgJWVzCisJbW92dwkkMSwg JWRpCQkJIyBjbWRsaW5lID0gNTEyIGJ5dGVzIG1heAorCWNhbGwJcmVhZF9zZWN0b3JzCitub2Nt ZDoKKyNlbmRpZgogCisjZGVmaW5lIFJTSEZUICAgMHgwMQorI2RlZmluZSBMU0hGVCAgIDB4MDIK KyNkZWZpbmUgQ1RSTCAgICAweDA0CisjZGVmaW5lIEFMVCAgICAgMHgwOAorI2RlZmluZSBTQ1JM Q0sgIDB4MTAKKyNkZWZpbmUgTlVNTENLICAweDIwCisjZGVmaW5lIENBUFNMQ0sgMHg0MAorI2Rl ZmluZSBJTlNFUlQgIDB4ODAKKworI2lmZGVmCUVESVRfQ01ETElORQorIyBUaGUgY21kbGluZSBj YW4gYmUgZW50ZXJlZCBhbmQgbW9kaWZlZCBvbiBob3Qga2V5LgorIyBPbmx5IGNoYXJhY3RlcnMg YmVmb3JlIHRoZSBjdXJzb3IgYXJlIHBhc3NlZCB0byB0aGUga2VybmVsLgorCW1vdmIJJDIsICVh aAkJCSMgZ2V0IGtleWJvYXJkIHN0YXR1cworCWludAkkMHgxNgorCXRlc3RiCSRSU0hGVHxMU0hG VHxDVFJMfEFMVHxDQVBTTENLLCAlYWwKKwlqeglub2NtZGxpbmUKKwlwdXNodwklc2kKKwljYWxs CXB1dHMJCQkjIHNldCAlYWggYW5kICVieAorY21kbHA6CisjIGlmIDEKKwltb3ZiCSQzMiwgJWFs CQkjIGNsZWFyIGVuZCBvZiBsaW5lCisJaW50CSQweDEwCQkJIyAgd2l0aCBTcGFjZQorCW1vdmIJ JDgsICVhbAkJCSMgICBhbmQgQmFja1NwYWNlCisJaW50CSQweDEwCisjIGVuZGlmCisJZGVjdwkl c2kKK2NtZGdldDoKKwljYncJCQkJIyAlYWggPSAwLCBnZXQga2V5Ym9hcmQgY2hhcmFjdGVyCisJ aW50CSQweDE2CisJY21wYgkkOCwgJWFsCQkJIyBCYWNrU3BhY2UgPworCWplCWNtZGJzCisJY2J3 CisJbW92dwklYXgsICglc2kpCQkjIHN0b3JlIGVuZCBvZiBzdHJpbmcgdG9vCisJaW5jdwklc2kK KwlpbmN3CSVzaQorY21kYnM6CisJY21wdwkkQlVGRkVSLCAlc2kJCSMgbG93ZXIgbGltaXQgaXMg Y2hlY2tlZAorCWplCWNtZGdldAkJCSMgICBidXQgdXBwZXIgbGltaXQgbm90CisJY2FsbAlwdXRj CisJY21wYgkkMTMsICVhbAkJIyBFbnRlciA/CisJam5lCWNtZGxwCisJcG9wdwklc2kKK25vY21k bGluZToKKyNlbmRpZgogCi1idWdnZXJfb2ZmX21zZzoKLQkuYXNjaWkJIkRpcmVjdCBib290aW5n IGZyb20gZmxvcHB5IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuXHJcbiIKLQkuYXNjaWkJIlBsZWFz ZSB1c2UgYSBib290IGxvYWRlciBwcm9ncmFtIGluc3RlYWQuXHJcbiIKLQkuYXNjaWkJIlxuIgot CS5hc2NpaQkiUmVtb3ZlIGRpc2sgYW5kIHByZXNzIGFueSBrZXkgdG8gcmVib290IC4gLiAuXHJc biIKLQkuYnl0ZQkwCisjaWYgZGVmaW5lZChMT0FEX0NNRExJTkUpIHx8IGRlZmluZWQoRURJVF9D TURMSU5FKQorI2lmIDEKK2NtZF9saW5lX21hZ2ljCT0JMHgyMAorY21kX2xpbmVfb2Zmc2V0CT0J MHgyMgorCW1vdncJJDB4QTMzRiwgY21kX2xpbmVfbWFnaWMKKwltb3Z3CSVzaSwgY21kX2xpbmVf b2Zmc2V0CisjZWxzZQorIyBwcm90b2NvbCA+PSAyLjAyLCBzdGFydGluZyBLZXJuZWwgMi40LjAt dGVzdDMtcHJlMworY21kX2xpbmVfcHRyCT0JMHgyMjgKKwltb3Z6eAklc2ksICVlYXgKKwlhZGRs CSRJTklUU0VHKjE2LCAlZWF4CisJbW92bAklZWF4LCBjbWRfbGluZV9wdHIKKyNlbmRpZgorZW1w dHljbWRsaW5lOgorI2VuZGlmCisJCisjIFRoaXMgcHJvY2VkdXJlIHR1cm5zIG9mZiB0aGUgZmxv cHB5IGRyaXZlIG1vdG9yLCBzbworIyB0aGF0IHdlIGVudGVyIHRoZSBrZXJuZWwgaW4gYSBrbm93 biBzdGF0ZSwgYW5kCisjIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgaXQgbGF0ZXIuCisKKyNp ZiAxCitraWxsX21vdG9yOgorCXhvcncJJWF4LCAlYXgJCSMgcmVzZXQgRkRDCisJaW50CSQweDEz CisjZWxzZQora2lsbF9tb3RvcjoKKwltb3Z3CSQweDNmMiwgJWR4CisJeG9yYgklYWwsICVhbAor CW91dGIJJWFsLCAlZHgKKyNlbmRpZgogCisJY2FsbAlwcmludF9ubAogCi0JIyBLZXJuZWwgYXR0 cmlidXRlczsgdXNlZCBieSBzZXR1cAorIyBBZnRlciB0aGF0IChldmVyeXRoaW5nIGxvYWRlZCks IHdlIGp1bXAgdG8gdGhlIHNldHVwLXJvdXRpbmUKKyMgbG9hZGVkIGRpcmVjdGx5IGFmdGVyIHRo ZSBib290YmxvY2s6CisjIFNlZ21lbnRzIGFyZSBhcyBmb2xsb3dzOiAlZHMgPSAlc3MgPSBJTklU U0VHCisKKwlsam1wCSRTRVRVUFNFRywgJDAKKworIyByZWFkX3NlY3RvcnMgcmVhZHMgJWRpIHNl Y3RvcnMgaW50byAlZXM6MCBidWZmZXIuCisjICVlczowIGlzIHVwZGF0ZWQgdG8gdGhlIG5leHQg bWVtb3J5IGxvY2F0aW9uLgorIyBGaXJzdCwgc2VjdG9ycyBhcmUgcmVhZCBzZWN0b3IgYnkgc2Vj dG9yIHVudGlsCisjIHNlY3RvciBwZXIgdHJhY2sgY291bnQgaXMga25vd24uIFRoZW4gdGhleSBh cmUKKyMgcmVhZCB0cmFjayBieSB0cmFjay4KKyMgQXNzdW1lIG5vIGVycm9yIG9uIGZpcnN0IHRy YWNrLgorCisjZGVmaW5lIFRSQUNLX0JZX1RSQUNLCWxvYWQgYXMgZmFzdCBhcyBwb3NzaWJsZSAh CisjZGVmaW5lIFNIT1dfUkVHUwlzaG93IGludDEzIHN0YXR1cyAmIHBhcmFtZXRlcnMKKworY2hl Y2tfbGltaXRzOgorICAgICAgICBjbXBiICAgICVhbCwgJWNsCQkjIG1heCBzZWN0b3Iga25vd24g PworICAgICAgICBqYQluZXh0X2hlYWQJCSMgICBubyAtPiBzdG9yZSBpdAorICAgICAgICBjbXBi ICAgICVhaCwgJWRoCQkjIG1heCBoZWFkIGtub3duID8KKyAgICAgICAgamEJbmV4dF90cmFjawkJ IyAgIG5vIC0+IHN0b3JlIGl0CisJcHVzaGEJCQkJIyBzYXZlIGNvbnRleHQKKyNpZmRlZiBTSE9X X1JFR1MKKwlwdXNodwklZXMJCQkjIHByaW50ICVlcyAobmFtZWQgRVgpCisJcHVzaHcJJWR4CQkJ IyBwcmludCAlZHgKKwlwdXNodwklY3gJCQkjIHByaW50ICVjeAorCXhvcncJJWN4LCAlY3gKKwlw dXNodwklY3gJCQkjIHByaW50ICVieAorIyBpZmRlZiBUUkFDS19CWV9UUkFDSworCW1vdmIJJDIs ICViaAorIyBlbmRpZgorCXB1c2h3CSVieAkJCSMgcHJpbnQgJWF4CisJbW92YgkkNiwlY2wKKwlq bXAJcHJpbnRfYWxsCQkjIHByaW50ICVicCAoc3RhdHVzKQorcHJpbnRfbG9vcDoKKwltb3ZiCSQw eDYgKyAnQScgLSAxLCAlYWwKKwlzdWJiCSVjbCwgJWFsCisJbW92dwkkcmVncywgJXNpCQkjIGNh bGxlciAlc2kgaXMgc2F2ZWQKKwljYWxsCXB1dGNzCQkJIyBwdXRjKCVhbCkgKyBwdXRzKCVzaSkK KyMgaXQgd2lsbCBwcmludCBvdXQgYWxsIG9mIHRoZSByZWdpc3RlcnMuCisJcG9wdwklYnAJCQkj IGxvYWQgd29yZCBpbnRvICVicAorcHJpbnRfYWxsOgorCXB1c2h3CSVjeAkJCSMgc2F2ZSBjb3Vu dCByZW1haW5pbmcKKwltb3ZiCSQ0LCAlY2wJCQkjIDQgaGV4IGRpZ2l0cworcHJpbnRfZGlnaXQ6 CisJcm9sdwkkNCwgJWJwCQkJIyByb3RhdGUgdG8gdXNlIGxvdyA0IGJpdHMKKwltb3ZiCSQweDBm LCAlYWwKKwlhbmR3CSVicCwgJWF4CQkjICVhbCA9IG1hc2sgZm9yIG55YmJsZQorCWFkZGIJJDB4 OTAsICVhbAkJIyBjb252ZXJ0ICVhbCB0byBhc2NpaSBoZXgKKwlkYWEJCQkJIyBpbiBvbmx5IGZv dXIgaW5zdHJ1Y3Rpb25zIQorCWFkY2IJJDB4NDAsICVhbAorCWRhYQorCWNhbGwJcHV0YwkJCSMg c2V0ICVhaCBhbmQgJWJ4CisJbG9vcAlwcmludF9kaWdpdAorCW1vdmIJJDB4MjAsICVhbAkJIyBT UEFDRQorCWludAkkMHgxMAorCXBvcHcJJWN4CisJbG9vcAlwcmludF9sb29wCisJeGNoZwklYXgs ICVjeAkJIyAlYWggPSAwCisjZWxzZQorCWNidwkJCQkjICVhaCA9IDAKKyNlbmRpZgorICAgICAg ICBpbnQgICAgICQweDEzCQkJIyByZXNldCBjb250cm9sZXIKKwlwb3BhCQkJCSMgcmVzdG9yZSBj b250ZXh0CityZWFkX3NlY3RvcnNscDoKK3JlYWRfZmlyc3Rfc2VjdG9yOgorICAgICAgICBwdXNo dyAgICVkaQkJCSMgc2VjdG9yIGNvdW50CisgICAgICAgIHB1c2h3ICAgJWF4CQkJIyBsaW1pdHMK KyAgICAgICAgcHVzaHcgICAlZHgKKyAgICAgICAgcHVzaHcgICAlY3gKKwl4b3J3CSVieCwgJWJ4 CisjaWZkZWYgVFJBQ0tfQllfVFJBQ0sKKwlzdWJiCSVjbCwgJWFsCQkjIHNlY3RvcnMgcmVtYWlu aW5nIGluIHRyYWNrCisJamEJdG9sYXN0c2VjdAorCW1vdmIJJDEsICVhbAkJCSMgMSBzZWN0b3Ig bWluaQordG9sYXN0c2VjdDoKKwljYncKKwljbXB3CSVkaSwgJWF4CisJamIJbW9yZTF0cmsKKwlt b3Z3CSVkaSwgJWF4CQkjIHNlY3RvcnMgdG8gcmVhZAorbW9yZTF0cms6CisJcHVzaAklYXgKKwlt b3ZiCSQyLCAlYWgJCQkjIGNtZDogcmVhZCBjaHMKKyNlbHNlCisgICAgICAgIG1vdncgICAgJDB4 MjAxLCAlYXgJCSMgc2VjdG9yIGJ5IHNlY3RvcgorCXB1c2gJJWF4CisjZW5kaWYKKyAgICAgICAg aW50ICAgICAkMHgxMworCXhjaGcJJWF4LCAlYnAJCSMgc3RhdHVzCisgICAgICAgIHBvcHcgICAg JWJ4CQkJIyAlYXggCisgICAgICAgIHBvcHcgICAgJWN4CisgICAgICAgIHBvcHcgICAgJWR4Cisg ICAgICAgIHBvcHcgICAgJWF4CQkJIyBsaW1pdHMKKyAgICAgICAgcG9wdyAgICAlZGkJCQkjIHNl Y3RvciBjb3VudAorCWpjCWNoZWNrX2xpbWl0cworbmV4dF9zZWN0b3I6CisjaWZkZWYgVFJBQ0tf QllfVFJBQ0sKKwlzdWJ3CSVieCwlZGkJCQkjIHVwZGF0ZSBzZWN0b3IgY291bnRlcgorCWFkZHcJ JWJ4LCVjeAkJCSMgbmV4dCBzZWN0b3IKKwlzaGx3CSQ1LCVieAkJCSMgc2VjdG9ycyAtPiBwYXJh Z3JhZ2hzCisJbW92dwklZXMsICVicAorCWFkZHcJJWJ4LCAlYnAKKyNlbHNlCisJZGVjdwklZGkJ CQkjIHVwZGF0ZSBzZWN0b3IgY291bnRlcgorCWluY3cJJWN4CQkJIyBuZXh0IHNlY3RvcgorCW1v dncJJWVzLCAlYnAKKwlhZGR3CSQzMiwgJWJwCQkjIHNlY3RvciBzaXplIGluIHBhcmFncmFnaHMK KyNlbmRpZgorCW1vdncJJWJwLCAlZXMJCSMgbmV4dCBsb2NhdGlvbgorICAgICAgICBjbXBiICAg ICVhbCwlY2wJCQkjIHJlYWNoIHNlY3RvciBsaW1pdCA/CisgICAgICAgIGpuZSAgICAgYmRlbmRs cAorbmV4dF9oZWFkOgorICAgICAgICBtb3ZiICAgICVjbCwlYWwKKyAgICAgICAgaW5jYiAgICAl ZGgJCQkjIG5leHQgaGVhZAorICAgICAgICBtb3ZiICAgICQxLCVjbAkJCSMgZmlyc3Qgc2VjdG9y CisgICAgICAgIGNtcGIgICAgJWFoLCVkaAkJCSMgcmVhY2ggaGVhZCBsaW1pdCA/CisgICAgICAg IGpuZSAgICAgYmRlbmRscAorbmV4dF90cmFjazoKKyAgICAgICAgbW92YiAgICAlZGgsJWFoCisg ICAgICAgIG1vdmIgICAgJDAsJWRoCQkJIyBmaXJzdCBoZWFkCisjIE5PVEUgOiBzdXBwb3J0IDI1 NiBjeWxpbmRlcnMgbWF4CisgICAgICAgIGluY2IgICAgJWNoCQkJIyBuZXh0IGN5bGluZGVyCiti ZGVuZGxwOgorY3VyZHJpdmUgPQlfc3RhcnQKK2N1cmR4CT0JX3N0YXJ0CitjdXJjeAk9CV9zdGFy dCsyCitsaW1pdHMJPQlfc3RhcnQrNAorCW1vdncJJWR4LCBjdXJkeAkJIyBzYXZlIGRpc2sgc3Rh dGUKKwltb3Z3CSVjeCwgY3VyY3gKKwltb3Z3CSVheCwgbGltaXRzCityZWFkX3NlY3RvcnM6CisJ bW92dwljdXJkeCwgJWR4CQkjIHJlc3RvcmUgZGlzayBzdGF0ZQorCW1vdncJY3VyY3gsICVjeAor IyAgIGFsIGlzIGxhc3Qgc2VjdG9yKzEKKyMgICBhaCBpcyBsYXN0IGhlYWQrMQorCW1vdncJbGlt aXRzLCAlYXgKKwlvcncJJWRpLCVkaQorICAgICAgICBqbmUJcmVhZF9zZWN0b3JzbHAKKwltb3Zi CSQweDJlLCAlYWwgCQkjIGxvYWRpbmcuLi4gbWVzc2FnZSAyZSA9IC4KK3B1dGM6CisJbW92Ygkk MHhlLCAlYWgKKwltb3Z3CSQ3LCAlYngJCQkjICAgb25lIGRvdCBlYWNoIDY0aworIAlpbnQJJDB4 MTAKK3JldHVybjoKKwlyZXQKKworcHJpbnRfbmw6CisJCisJbW92YgkkMHhkLCAlYWwJCSMgQ1IK KwljYWxsCXB1dGMKKwltb3ZiCSQweGEsICVhbAkJIyBMRgorCWptcAlwdXRjCisKK3B1dHM6CisJ Y2FsbAlwcmludF9ubAkJIyBzZXQgJWFoIGFuZCAlYngKK3B1dHNscDoKKwlsb2RzYgorCW9yYgkl YWwsJWFsCQkJIyBlbmQgb2Ygc3RyaW5nIGlzIFwwCisJanoJcmV0dXJuCitwdXRjczoKKwlpbnQJ JDB4MTAKKwlqbXAJcHV0c2xwCiAKLQkub3JnIDQ5NworZmxvcHB5X3RhYmxlOgorI2lmZGVmIEVY VFJBX0RFVklDRVMJCQorCQkuYnl0ZQkxNiw5CQkJIyAvZGV2L2ZkMHU3MjAKKwkJLmJ5dGUJMTIs MTAJCQkjIC9kZXYvZmQwdTgwMAorCQkuYnl0ZQk4MCwxMQkJCSMgL2Rldi9mZDB1ODgwCisJCS5i eXRlCTEyNSwyMAkJCSMgL2Rldi9mZDB1MTYwMAorCQkuYnl0ZQk0NCwyMQkJCSMgL2Rldi9mZDB1 MTY4MAorCQkuYnl0ZQk5NiwyMgkJCSMgL2Rldi9mZDB1MTc2MAorCQkuYnl0ZQkxMTYsMjMJCQkj IC9kZXYvZmQwdTE4NDAKKwkJLmJ5dGUJMTAwLDI0CQkJIyAvZGV2L2ZkMHUxOTIwCisJCS5ieXRl CTEwNSw0MAkJCSMgL2Rldi9mZDB1MzIwMAorCQkuYnl0ZQkxMDksNDQJCQkjIC9kZXYvZmQwdTM1 MjAKKwkJLmJ5dGUJMTEzLDQ4CQkJIyAvZGV2L2ZkMHUzODQwCisjZW5kaWYJCQorCQkuYnl0ZQk4 LDE1CQkJIyAvZGV2L2ZkMGgxMjAwIC0gL2Rldi9wczAKKwkJLmJ5dGUJMjgsMTgJCQkjIC9kZXYv ZmQwdTE0NDAgLSAvZGV2L1BTMAorCQkuYnl0ZQkzMiwzNgkJCSMgL2Rldi9mZDB1Mjg4MCAtIC9k ZXYvZmQwSDI4ODAKKwkJLmJ5dGUJMCwxMjgJCQkjIC9kZXYvZmQwIC0gZGVmYXVsdDogYXV0b2Rl dGVjdAorCityZWdzOgkJLmFzY2l6CSJYOiIKKworI2lmbmRlZglESVNQTEFZX0tFUk5FTF9WRVJT SU9OCittc2cxOgkJLmFzY2l6CSJMb2FkaW5nIgorI2VuZGlmCQkKKwordGFpbDoKKwkJLnNwYWNl CTQ5NStzdGFydC10YWlsCQkKKworIy5vcmcgNDk1CitzeXNfc2VjdHM6CS53b3JkIFNZU1NJWkUg LyAzMgkJIyBzaXplIG1heCBpcyBub3cgMzJNYgorIy5vcmcgNDk3CiBzZXR1cF9zZWN0czoJLmJ5 dGUgU0VUVVBTRUNUUwogcm9vdF9mbGFnczoJLndvcmQgUk9PVF9SRE9OTFkKLXN5c3NpemU6CS53 b3JkIFNZU1NJWkUKK3N5c3NpemU6CS53b3JkIFNZU1NJWkUgJSAweDEwMDAwCQkjIHNpemUgbWF4 IHdhcyAxTWIKIHN3YXBfZGV2Ogkud29yZCBTV0FQX0RFVgotcmFtX3NpemU6CS53b3JkIFJBTURJ U0sKK3JhbV9zaXplOgkud29yZCBSQU1ESVNLCQkJIyByYW1kaXNrIHNpemUsIHJhbWRpc2sgZmxh Z3MgYW5kIGNtZGxpbmUgZmxhZwogdmlkX21vZGU6CS53b3JkIFNWR0FfTU9ERQogcm9vdF9kZXY6 CS53b3JkIFJPT1RfREVWCiBib290X2ZsYWc6CS53b3JkIDB4QUE1NQpkaWZmIC1wdXJOIGxpbnV4 LTIuNi4xMy9hcmNoL3g4Nl82NC9ib290L3Rvb2xzL2J1aWxkLmMgbGludXgtMi42LjEzLWJvb3Ri bG9jay9hcmNoL3g4Nl82NC9ib290L3Rvb2xzL2J1aWxkLmMKLS0tIGxpbnV4LTIuNi4xMy9hcmNo L3g4Nl82NC9ib290L3Rvb2xzL2J1aWxkLmMJMjAwNS0wOS0xMiAxMDozODo1Ny4wMDAwMDAwMDAg KzAyMDAKKysrIGxpbnV4LTIuNi4xMy1ib290YmxvY2svYXJjaC94ODZfNjQvYm9vdC90b29scy9i dWlsZC5jCTIwMDUtMDktMTIgMTE6MDA6NDQuMDAwMDAwMDAwICswMjAwCkBAIC0xNjksMTAgKzE2 OSwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKiBhcmd2KQogCX0KIAljbG9zZShmZCk7 CiAKLQlpZiAobHNlZWsoMSwgNDk3LCBTRUVLX1NFVCkgIT0gNDk3KQkJICAgIC8qIFdyaXRlIHNp emVzIHRvIHRoZSBib290c2VjdG9yICovCisJaWYgKGxzZWVrKDEsIDQ5NSwgU0VFS19TRVQpICE9 IDQ5NSkJCSAgICAvKiBXcml0ZSBzaXplcyB0byB0aGUgYm9vdHNlY3RvciAqLwogCQlkaWUoIk91 dHB1dDogc2VlayBmYWlsZWQiKTsKLQlidWZbMF0gPSBzZXR1cF9zZWN0b3JzOwotCWlmICh3cml0 ZSgxLCBidWYsIDEpICE9IDEpCisJc3ogPSAoc2Iuc3Rfc2l6ZSArIDUxMSkgLyA1MTI7CisJYnVm WzBdID0gKHN6ICYgMHhmZik7CisJYnVmWzFdID0gKChzeiA+PiA4KSAmIDB4ZmYpOworCWJ1Zlsy XSA9IHNldHVwX3NlY3RvcnM7CisJaWYgKHdyaXRlKDEsIGJ1ZiwgMykgIT0gMykKIAkJZGllKCJX cml0ZSBvZiBzZXR1cCBzZWN0b3IgY291bnQgZmFpbGVkIik7CiAJaWYgKGxzZWVrKDEsIDUwMCwg U0VFS19TRVQpICE9IDUwMCkKIAkJZGllKCJPdXRwdXQ6IHNlZWsgZmFpbGVkIik7CmRpZmYgLXB1 ck4gbGludXgtMi42LjEzL0RvY3VtZW50YXRpb24vaTM4Ni9ib290LnR4dCBsaW51eC0yLjYuMTMt Ym9vdGJsb2NrL0RvY3VtZW50YXRpb24vaTM4Ni9ib290LnR4dAotLS0gbGludXgtMi42LjEzL0Rv Y3VtZW50YXRpb24vaTM4Ni9ib290LnR4dAkyMDA1LTA5LTEyIDEwOjM2OjUwLjAwMDAwMDAwMCAr MDIwMAorKysgbGludXgtMi42LjEzLWJvb3RibG9jay9Eb2N1bWVudGF0aW9uL2kzODYvYm9vdC50 eHQJMjAwNS0wOS0xMiAxMjoyMjo0My4wMDAwMDAwMDAgKzAyMDAKQEAgLTEwMyw2ICsxMDMsNyBA QCBUaGUgaGVhZGVyIGxvb2tzIGxpa2U6CiBPZmZzZXQJUHJvdG8JTmFtZQkJTWVhbmluZwogL1Np emUKIAorMDFFRi8yCU4vQQlzeXNfc2VjdHMJRE8gTk9UIFVTRSAtIGZvciBib290c2VjdC5TIHVz ZSBvbmx5CiAwMUYxLzEJQUxMCXNldHVwX3NlY3RzCVRoZSBzaXplIG9mIHRoZSBzZXR1cCBpbiBz ZWN0b3JzCiAwMUYyLzIJQUxMCXJvb3RfZmxhZ3MJSWYgc2V0LCB0aGUgcm9vdCBpcyBtb3VudGVk IHJlYWRvbmx5CiAwMUY0LzIJQUxMCXN5c3NpemUJCURPIE5PVCBVU0UgLSBmb3IgYm9vdHNlY3Qu UyB1c2Ugb25seQpkaWZmIC1wdXJOIGxpbnV4LTIuNi4xMy9Eb2N1bWVudGF0aW9uL3JhbWRpc2su dHh0IGxpbnV4LTIuNi4xMy1ib290YmxvY2svRG9jdW1lbnRhdGlvbi9yYW1kaXNrLnR4dAotLS0g bGludXgtMi42LjEzL0RvY3VtZW50YXRpb24vcmFtZGlzay50eHQJMjAwNS0wOS0xMiAxMDozNToz OS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xMy1ib290YmxvY2svRG9jdW1lbnRhdGlv bi9yYW1kaXNrLnR4dAkyMDA1LTA5LTEyIDEwOjU1OjM1LjAwMDAwMDAwMCArMDIwMApAQCAtNjMs MTIgKzYzLDE0IEBAIHRvIDIgTUIgKDJeMTEpIG9mIHdoZXJlIHRvIGZpbmQgdGhlIFJBTSAKIDE0 IGluZGljYXRlcyB0aGF0IGEgUkFNIGRpc2sgaXMgdG8gYmUgbG9hZGVkLCBhbmQgYml0IDE1IGlu ZGljYXRlcyB3aGV0aGVyIGEKIHByb21wdC93YWl0IHNlcXVlbmNlIGlzIHRvIGJlIGdpdmVuIGJl Zm9yZSB0cnlpbmcgdG8gcmVhZCB0aGUgUkFNIGRpc2suIFNpbmNlCiB0aGUgUkFNIGRpc2sgZHlu YW1pY2FsbHkgZ3Jvd3MgYXMgZGF0YSBpcyBiZWluZyB3cml0dGVuIGludG8gaXQsIGEgc2l6ZSBm aWVsZAotaXMgbm90IHJlcXVpcmVkLiBCaXRzIDExIHRvIDEzIGFyZSBub3QgY3VycmVudGx5IHVz ZWQgYW5kIG1heSBhcyB3ZWxsIGJlIHplcm8uCitpcyBub3QgcmVxdWlyZWQuIEJpdCAxMyBpbmRp Y2F0ZXMgdGhhdCBhIGNtZGxpbmUgaXMgdG8gYmUgbG9hZGVkIGJ5IHRoZSBrZXJuZWwKK2Jvb3Ri bG9jaywgQml0cyAxMSB0byAxMiBhcmUgbm90IGN1cnJlbnRseSB1c2VkIGFuZCBtYXkgYXMgd2Vs bCBiZSB6ZXJvLgogVGhlc2UgbnVtYmVycyBhcmUgbm8gbWFnaWNhbCBzZWNyZXRzLCBhcyBzZWVu IGJlbG93OgogCiAuL2FyY2gvaTM4Ni9rZXJuZWwvc2V0dXAuYzojZGVmaW5lIFJBTURJU0tfSU1B R0VfU1RBUlRfTUFTSyAgICAgMHgwN0ZGCiAuL2FyY2gvaTM4Ni9rZXJuZWwvc2V0dXAuYzojZGVm aW5lIFJBTURJU0tfUFJPTVBUX0ZMQUcgICAgICAgICAgMHg4MDAwCiAuL2FyY2gvaTM4Ni9rZXJu ZWwvc2V0dXAuYzojZGVmaW5lIFJBTURJU0tfTE9BRF9GTEFHICAgICAgICAgICAgMHg0MDAwCisu L2FyY2gvaTM4Ni9rZXJuZWwvc2V0dXAuYzojZGVmaW5lIENNRExJTkVfTE9BRF9GTEFHICAgICAg ICAgICAgMHgyMDAwCiAKIENvbnNpZGVyIGEgdHlwaWNhbCB0d28gZmxvcHB5IGRpc2sgc2V0dXAs IHdoZXJlIHlvdSB3aWxsIGhhdmUgdGhlIAoga2VybmVsIG9uIGRpc2sgb25lLCBhbmQgaGF2ZSBh bHJlYWR5IHB1dCBhIFJBTSBkaXNrIGltYWdlIG9udG8gZGlzayAjMi4KQEAgLTE1OSw2ICsxNjEs OCBAQCB1c2VycyBtYXkgd2lzaCB0byBjb21iaW5lIHN0ZXBzIChkKSBhbmQgCiBDaGFuZ2Vsb2c6 CiAtLS0tLS0tLS0tCiAKKzA5LTA1IDoJCVJlc2VydmUgQ01ETElORV9MT0FEIGJpdC4KKwogMTAt MjItMDQgOglVcGRhdGVkIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiBjb21tYW5kIGxpbmUgb3B0aW9u cywgcmVtb3ZlCiAJCW9ic29sZXRlIHJlZmVyZW5jZXMsIGdlbmVyYWwgY2xlYW51cC4KIAkJSmFt ZXMgTmVsc29uIChqYW1lczQ3NjVAZ21haWwuY29tKQo= --MIMEStream=_0+288847_91228134754_2059427134795-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/