From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24499 invoked by alias); 29 Apr 2010 01:59:39 -0000 Received: (qmail 24306 invoked by uid 22791); 29 Apr 2010 01:59:38 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_WEB X-Spam-Check-By: sourceware.org Received: from mail-bw0-f225.google.com (HELO mail-bw0-f225.google.com) (209.85.218.225) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 29 Apr 2010 01:59:32 +0000 Received: by bwz25 with SMTP id 25so14607157bwz.8 for ; Wed, 28 Apr 2010 18:59:29 -0700 (PDT) Received: by 10.204.10.15 with SMTP id n15mr5327577bkn.158.1272506341308; Wed, 28 Apr 2010 18:59:01 -0700 (PDT) Received: from localhost (134-243-252-87-dynamic-pool.gprs.mts.by [87.252.243.134]) by mx.google.com with ESMTPS id 16sm124621bwz.5.2010.04.28.18.57.52 (version=SSLv3 cipher=RC4-MD5); Wed, 28 Apr 2010 18:58:59 -0700 (PDT) Date: Thu, 29 Apr 2010 01:59:00 -0000 From: Mihail Zenkov To: Eli Zaretskii Cc: Mihail Zenkov , brobecker@adacore.com, tromey@redhat.com, gdb-patches@sourceware.org Subject: Re: D language support Message-Id: <20100429045646.f575c837.mihai.zenkov@gmail.com> In-Reply-To: <83iq7by04i.fsf@gnu.org> References: <20100415012124.91ce1769.mihai.zenkov@gmail.com> <20100421025919.ad3a0830.mihai.zenkov@gmail.com> <20100421155657.GA19194@adacore.com> <20100422030910.7e84f7ea.mihai.zenkov@gmail.com> <20100422004441.GE19194@adacore.com> <20100422045136.bc397747.mihai.zenkov@gmail.com> <20100424030441.81b6b66b.mihai.zenkov@gmail.com> <20100427160523.GD2951@adacore.com> <20100428025334.69e28794.mihai.zenkov@gmail.com> <83iq7by04i.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Thu__29_Apr_2010_04_56_46_+0300_27Zm_W9stGuye40o" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-04/txt/msg00947.txt.bz2 This is a multi-part message in MIME format. --Multipart=_Thu__29_Apr_2010_04_56_46_+0300_27Zm_W9stGuye40o Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 1613 On Wed, 28 Apr 2010 20:09:49 +0300 Eli Zaretskii wrote: > > Date: Wed, 28 Apr 2010 02:53:34 +0300 > > From: Mihail Zenkov > > Cc: Mihail Zenkov , tromey@redhat.com, gdb-patches@sourceware.org > > > > gdb/NEWS: > > * D language support. > > Support for debugging the D programming language has been > > integrated into GDB. > > Suggest to say this instead: > > GDB now supports debugging programs written in the D programming > language. > > > gdb/doc/ChangeLog: > > * gdb.texinfo: Add mention about D language support. > > The ChangeLog entry should include the name(s) of node(s) added to the > manual. > > > +@cindex D > > +Support for D is partial. For information on D, see > > +@ref{D,,D}. > > Please remove the @cindex entry from here. You already have one in > the section where the D support is described; having another identical > index entry pointing here, where D is not described at all, is not > useful. The index entries are for readers who are looking for a > description of some specific subject, so they should point to the place > where that subject is described in full. > > > +@value{GDBN} can be used to debug programs written in D and compiled with > > +GDC, LDC or DMD. > > Suggest to add "compilers" to the end of this sentence. Also, please > leave two spaces between sentences. > > > Currently @value{GDBN} supports only one D specific > > +feature - dynamic arrays. > ^ > Please use "---" (3 dashes in a row) to produce an em-dash. > > Okay with those changes. > > Thanks. Fixed. --Multipart=_Thu__29_Apr_2010_04_56_46_+0300_27Zm_W9stGuye40o Content-Type: application/octet-stream; name="gdb-100429-d.patch" Content-Disposition: attachment; filename="gdb-100429-d.patch" Content-Transfer-Encoding: base64 Content-length: 37422 Z2RiL0NoYW5nZUxvZzoKCUQgbGFuZ3VhZ2Ugc3VwcG9ydC4KCSogTWFrZWZp bGUuaW4gKFNGSUxFUyk6IEFkZCBkLWxhbmcuYyBkLXZhbHByaW50LmMuCgko Q09NTU9OX09CUyk6IEFkZCBkLWxhbmcubyBkLXZhbHByaW50Lm8uCgkoSEZJ TEVTX05PX1NSQ0RJUik6IEFkZCBkLWxhbmcuaC4KCSogTkVXUzogTWVudGlv biBEIGxhbmd1YWdlIHN1cHBvcnQuCgkqIGMtbGFuZy5jIChjX2VtaXRfY2hh ciwgZXhwX2Rlc2NyaXB0b3JfYyk6IE1ha2UgcHVibGljLgoJKiBjLWxhbmcu aCAoY19lbWl0X2NoYXIsIGV4cF9kZXNjcmlwdG9yX2MpOiBBZGQgZGVjbGFy YXRpb24uCgkqIGQtbGFuZy5jOiBOZXcgZmlsZS4KCSogZC1sYW5nLmg6IE5l dyBmaWxlLgoJKiBkLXZhbHByaW50LmM6IE5ldyBmaWxlLgoJKiBkZWZzLmgg KGVudW0gbGFuZ3VhZ2UpOiBBZGQgbGFuZ3VhZ2VfZC4KCSogZHdhcmYycmVh ZC5jIChzZXRfY3VfbGFuZ3VhZ2UpOiBBZGQgRFdfTEFOR19ELgoJKiBsYW5n dWFnZS5jIChiaW5vcF9yZXN1bHRfdHlwZSwgaW50ZWdyYWxfdHlwZSwgY2hh cmFjdGVyX3R5cGUpIAoJKHN0cmluZ190eXBlLCBib29sZWFuX3R5cGUsIHN0 cnVjdHVyZWRfdHlwZSk6IEFkZCBsYW5ndWFnZV9kLgoJKiBzeW1maWxlLmMg KGluaXRfZmlsZW5hbWVfbGFuZ3VhZ2VfdGFibGUpOiBBZGQgbGFuZ3VhZ2Vf ZC4KCSogc3ltdGFiLmM6IEluY2x1ZGUgZC1sYW5nLmguCgkoc3ltYm9sX2lu aXRfbGFuZ3VhZ2Vfc3BlY2lmaWMsIHN5bWJvbF9maW5kX2RlbWFuZ2xlZF9u YW1lKQoJKHN5bWJvbF9uYXR1cmFsX25hbWUsIGxvb2t1cF9zeW1ib2xfaW5f bGFuZ3VhZ2UpCgkoc3ltYm9sX2RlbWFuZ2xlZF9uYW1lLCBzeW1ib2xfbWF0 Y2hlc19kb21haW4pOiBBZGQgbGFuZ3VhZ2VfZC4KZ2RiL2RvYy9DaGFuZ2VM b2c6CgkqIGdkYi50ZXhpbmZvOiAoU3VtbWFyeSkgQWRkIG1lbnRpb24gYWJv dXQgRCBsYW5ndWFnZSBzdXBwb3J0LgoJKEZpbGVuYW1lcyk6IEFkZCBEIHN1 ZmZpeGVzLgoJKEQpOiBOZXcgbm9kZS4KZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2c6CgkqIGdkYi5iYXNlL2RlZmF1bHQuZXhwOiBGaXggInNldCBsYW5ndWFn ZSIgdGVzdC4KZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9N YWtlZmlsZS5pbgppbmRleCA3NTBmZGZkLi5jYmJkODEzIDEwMDY0NAotLS0g YS9nZGIvTWFrZWZpbGUuaW4KKysrIGIvZ2RiL01ha2VmaWxlLmluCkBAIC02 NTgsNiArNjU4LDcgQEAgU0ZJTEVTID0gYWRhLWV4cC55IGFkYS1sYW5nLmMg YWRhLXR5cGVwcmludC5jIGFkYS12YWxwcmludC5jIGFkYS10YXNrcy5jIFwK IAljaGFyc2V0LmMgY2xpLW91dC5jIGNvZmZyZWFkLmMgY29mZi1wZS1yZWFk LmMgXAogCWNvbXBsYWludHMuYyBjb21wbGV0ZXIuYyBjb3JlZmlsZS5jIFwK IAljcC1hYmkuYyBjcC1zdXBwb3J0LmMgY3AtbmFtZXNwYWNlLmMgY3AtdmFs cHJpbnQuYyBcCisJZC1sYW5nLmMgZC12YWxwcmludC5jIFwKIAljcC1uYW1l LXBhcnNlci55IFwKIAlkYnhyZWFkLmMgZGVtYW5nbGUuYyBkaWN0aW9uYXJ5 LmMgZGlzYXNtLmMgZG91Ymxlc3QuYyBkdW1teS1mcmFtZS5jIFwKIAlkd2Fy ZjJleHByLmMgZHdhcmYybG9jLmMgZHdhcmYycmVhZC5jIGR3YXJmMi1mcmFt ZS5jIFwKQEAgLTcyNSw3ICs3MjYsNyBAQCBjbGktb3V0LmggZ2RiX2V4cGF0 LmggYnJlYWtwb2ludC5oIGluZmNhbGwuaCBvYnNkLXRkZXAuaCBcCiBleGVj LmggbTMyci10ZGVwLmggb3NhYmkuaCBnZGJjb3JlLmggc29saWItc29tLmgg XAogaTM4NmJzZC1uYXQuaCB4bWwtc3VwcG9ydC5oIHhtbC10ZGVzYy5oIGFs cGhhYnNkLXRkZXAuaCBnZGJfb2JzdGFjay5oIFwKIGlhNjQtdGRlcC5oIGFk YS1sYW5nLmggdmFyb2JqLmggZnJ2LXRkZXAuaCBudG8tdGRlcC5oIHNlcmlh bC5oIFwKLWMtbGFuZy5oIGZyYW1lLmggZXZlbnQtbG9vcC5oIGJsb2NrLmgg Y2xpL2NsaS1zZXRzaG93LmgJXAorYy1sYW5nLmggZC1sYW5nLmggZnJhbWUu aCBldmVudC1sb29wLmggYmxvY2suaCBjbGkvY2xpLXNldHNob3cuaAlcCiBj bGkvY2xpLWRlY29kZS5oIGNsaS9jbGktY21kcy5oIGNsaS9jbGktZHVtcC5o IFwKIGNsaS9jbGktc2NyaXB0LmggbWFjcm90YWIuaCBzeW10YWIuaCB2ZXJz aW9uLmggZ251bGliL3djaGFyLmluLmggXAogZ251bGliL3N0cmluZy5pbi5o IGdudWxpYi9zdHItdHdvLXdheS5oIGdudWxpYi9leHRyYS9saW5rLXdhcm5p bmcuaCBcCkBAIC04MzEsNyArODMyLDcgQEAgQ09NTU9OX09CUyA9ICQoREVQ RklMRVMpICQoQ09ORklHX09CUykgJChZWU9CSikgXAogCWRieHJlYWQubyBj b2ZmcmVhZC5vIGNvZmYtcGUtcmVhZC5vIFwKIAlkd2FyZjJyZWFkLm8gbWlw c3JlYWQubyBzdGFic3JlYWQubyBjb3JlZmlsZS5vIFwKIAlkd2FyZjJleHBy Lm8gZHdhcmYybG9jLm8gZHdhcmYyLWZyYW1lLm8gXAotCWFkYS1sYW5nLm8g Yy1sYW5nLm8gZi1sYW5nLm8gb2JqYy1sYW5nLm8gXAorCWFkYS1sYW5nLm8g Yy1sYW5nLm8gZC1sYW5nLm8gZi1sYW5nLm8gb2JqYy1sYW5nLm8gXAogCWFk YS10YXNrcy5vIFwKIAl1aS1vdXQubyBjbGktb3V0Lm8gXAogCXZhcm9iai5v IHZlYy5vIHdyYXBwZXIubyBcCkBAIC04NDEsNyArODQyLDggQEAgQ09NTU9O X09CUyA9ICQoREVQRklMRVMpICQoQ09ORklHX09CUykgJChZWU9CSikgXAog CXNlbnRpbmVsLWZyYW1lLm8gXAogCWNvbXBsYWludHMubyB0eXBlcHJpbnQu byBcCiAJYWRhLXR5cGVwcmludC5vIGMtdHlwZXByaW50Lm8gZi10eXBlcHJp bnQubyBtMi10eXBlcHJpbnQubyBcCi0JYWRhLXZhbHByaW50Lm8gYy12YWxw cmludC5vIGNwLXZhbHByaW50Lm8gZi12YWxwcmludC5vIG0yLXZhbHByaW50 Lm8gXAorCWFkYS12YWxwcmludC5vIGMtdmFscHJpbnQubyBjcC12YWxwcmlu dC5vIGQtdmFscHJpbnQubyBmLXZhbHByaW50Lm8gXAorCW0yLXZhbHByaW50 Lm8gXAogCXNlcmlhbC5vIG1kZWJ1Z3JlYWQubyB0b3AubyB1dGlscy5vIFwK IAl1aS1maWxlLm8gXAogCXVzZXItcmVncy5vIFwKZGlmZiAtLWdpdCBhL2dk Yi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggNjk2ZGEyZS4uOTkyNTRjOSAxMDA2 NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05FV1MKQEAgLTEwMCw2ICsx MDAsMTAgQEAgcmVndWxhciBicmVha3BvaW50cy4KIAogQVJNIFN5bWJpYW4J CQlhcm0qLSotc3ltYmlhbmVsZioKIAorKiBEIGxhbmd1YWdlIHN1cHBvcnQu CisgIEdEQiBub3cgc3VwcG9ydHMgZGVidWdnaW5nIHByb2dyYW1zIHdyaXR0 ZW4gaW4gdGhlIEQgcHJvZ3JhbW1pbmcKKyAgbGFuZ3VhZ2UuCisKICoqKiBD aGFuZ2VzIGluIEdEQiA3LjEKIAogKiBDKysgSW1wcm92ZW1lbnRzCmRpZmYg LS1naXQgYS9nZGIvYy1sYW5nLmMgYi9nZGIvYy1sYW5nLmMKaW5kZXggODA1 YzU3Mi4uYWE2OWY5NCAxMDA2NDQKLS0tIGEvZ2RiL2MtbGFuZy5jCisrKyBi L2dkYi9jLWxhbmcuYwpAQCAtMjUzLDggKzI1Myw5IEBAIHByaW50X3djaGFy IChnZGJfd2ludF90IHcsIGNvbnN0IGdkYl9ieXRlICpvcmlnLCBpbnQgb3Jp Z19sZW4sCiAgICBzdHJpbmcgd2hvc2UgZGVsaW1pdGVyIGlzIFFVT1RFUi4g IE5vdGUgdGhhdCB0aGF0IGZvcm1hdCBmb3IgcHJpbnRpbmcKICAgIGNoYXJh Y3RlcnMgYW5kIHN0cmluZ3MgaXMgbGFuZ3VhZ2Ugc3BlY2lmaWMuICovCiAK LXN0YXRpYyB2b2lkCi1jX2VtaXRfY2hhciAoaW50IGMsIHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcXVvdGVyKQor dm9pZAorY19lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwK KwkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBxdW90ZXIpCiB7 CiAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRl X29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7CiAgIHN0cnVjdCBvYnN0 YWNrIHdjaGFyX2J1Ziwgb3V0cHV0OwpAQCAtMTEzNSw3ICsxMTM2LDcgQEAg Y19sYW5ndWFnZV9hcmNoX2luZm8gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LAogICBsYWktPmJvb2xfdHlwZV9kZWZhdWx0ID0gYnVpbHRpbi0+YnVpbHRp bl9pbnQ7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXhwX2Rlc2NyaXB0 b3IgZXhwX2Rlc2NyaXB0b3JfYyA9IAorY29uc3Qgc3RydWN0IGV4cF9kZXNj cmlwdG9yIGV4cF9kZXNjcmlwdG9yX2MgPSAKIHsKICAgcHJpbnRfc3ViZXhw X3N0YW5kYXJkLAogICBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQsCmRpZmYg LS1naXQgYS9nZGIvYy1sYW5nLmggYi9nZGIvYy1sYW5nLmgKaW5kZXggNDIz Y2VlMC4uYzJjZGQ1NiAxMDA2NDQKLS0tIGEvZ2RiL2MtbGFuZy5oCisrKyBi L2dkYi9jLWxhbmcuaApAQCAtODcsNiArODcsMTEgQEAgZXh0ZXJuIHZvaWQg Y19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0sIHN0cnVjdCB0 eXBlICplbHR0eXBlLAogZXh0ZXJuIHZvaWQgY19sYW5ndWFnZV9hcmNoX2lu Zm8gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogCQkJCSAgc3RydWN0IGxh bmd1YWdlX2FyY2hfaW5mbyAqbGFpKTsKIAorZXh0ZXJuIGNvbnN0IHN0cnVj dCBleHBfZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9jOworCitleHRlcm4g dm9pZCBjX2VtaXRfY2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLAor CQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBxdW90ZXIpOworCiAv KiBUaGVzZSBhcmUgaW4gYy10eXBlcHJpbnQuYzogKi8KIAogZXh0ZXJuIHZv aWQgY190eXBlX3ByaW50X2Jhc2UgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1 aV9maWxlICosIGludCwgaW50KTsKZGlmZiAtLWdpdCBhL2dkYi9kLWxhbmcu YyBiL2dkYi9kLWxhbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42ZGI1MjFiCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiL2QtbGFu Zy5jCkBAIC0wLDAgKzEsMjc4IEBACisvKiBEIGxhbmd1YWdlIHN1cHBvcnQg cm91dGluZXMgZm9yIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29w eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMg cGFydCBvZiBHREIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisK KyNpbmNsdWRlICJkZWZzLmgiCisjaW5jbHVkZSAic3ltdGFiLmgiCisjaW5j bHVkZSAibGFuZ3VhZ2UuaCIKKyNpbmNsdWRlICJkLWxhbmcuaCIKKyNpbmNs dWRlICJjLWxhbmcuaCIKKyNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCisjaW5j bHVkZSAicGFyc2VyLWRlZnMuaCIKKyNpbmNsdWRlICJnZGJfb2JzdGFjay5o IgorCisjaW5jbHVkZSA8Y3R5cGUuaD4KKworLyogRXh0cmFjdCBpZGVudGlm aWVycyBmcm9tIE1BTkdMRURfU1RSIGFuZCBhcHBlbmQgaXQgdG8gVEVNUEJV Ri4KKyAgIFJldHVybiAxIG9uIHN1Y2Nlc3Mgb3IgMCBvbiBmYWlsdXJlLiAg Ki8KK3N0YXRpYyBpbnQKK2V4dHJhY3RfaWRlbnRpZmllcnMgKGNvbnN0IGNo YXIgKm1hbmdsZWRfc3RyLCBzdHJ1Y3Qgb2JzdGFjayAqdGVtcGJ1ZikKK3sK KyAgbG9uZyBpID0gMDsKKworICB3aGlsZSAoaXNkaWdpdCAoKm1hbmdsZWRf c3RyKSkKKyAgICB7CisgICAgICBpID0gc3RydG9sIChtYW5nbGVkX3N0ciwg TlVMTCwgMTApOworICAgICAgbWFuZ2xlZF9zdHIrKzsKKyAgICAgIGlmIChp IDw9IDAgICYmIHN0cmxlbiAobWFuZ2xlZF9zdHIpIDwgaSkKKyAgICAgICAg cmV0dXJuIDA7CisgICAgICBvYnN0YWNrX2dyb3cgKHRlbXBidWYsIG1hbmds ZWRfc3RyLCBpKTsKKyAgICAgIG1hbmdsZWRfc3RyICs9IGk7CisgICAgICBv YnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiLiIpOworICAgIH0KKyAgaWYg KCptYW5nbGVkX3N0ciA9PSAnXDAnIHx8IGkgPT0gMCkKKyAgICByZXR1cm4g MDsKKyAgb2JzdGFja19ibGFuayAodGVtcGJ1ZiwgLTEpOworICByZXR1cm4g MTsKK30KKworLyogRXh0cmFjdCBhbmQgZGVtYW5nbGUgdHlwZSBmcm9tIE1B TkdMRURfU1RSIGFuZCBhcHBlbmQgaXQgdG8gVEVNUEJVRi4KKyAgIFJldHVy biAxIG9uIHN1Y2Nlc3Mgb3IgMCBvbiBmYWlsdXJlLiAgKi8KK3N0YXRpYyBp bnQKK2V4dHJhY3RfdHlwZV9pbmZvIChjb25zdCBjaGFyICptYW5nbGVkX3N0 ciwgc3RydWN0IG9ic3RhY2sgKnRlbXBidWYpCit7CisgIGlmICgqbWFuZ2xl ZF9zdHIgPT0gJ1wwJykKKyAgICByZXR1cm4gMDsKKyAgc3dpdGNoICgqbWFu Z2xlZF9zdHIrKykKKyAgICB7CisgICAgICBjYXNlICdBJzogLyogZHluYW1p YyBhcnJheSAqLworICAgICAgY2FzZSAnRyc6IC8qIHN0YXRpYyBhcnJheSAq LworICAgICAgY2FzZSAnSCc6IC8qIGFzc29jaWF0aXZlIGFycmF5ICovCisJ aWYgKCFleHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xlZF9zdHIsIHRlbXBidWYp KQorCSAgcmV0dXJuIDA7CisJb2JzdGFja19ncm93X3N0ciAodGVtcGJ1Ziwg IltdIik7CisJcmV0dXJuIDE7CisgICAgICBjYXNlICdQJzogLyogcG9pbnRl ciAqLworCWlmICghZXh0cmFjdF90eXBlX2luZm8gKG1hbmdsZWRfc3RyLCB0 ZW1wYnVmKSkKKwkgIHJldHVybiAwOworCW9ic3RhY2tfZ3Jvd19zdHIgKHRl bXBidWYsICIqIik7CisJcmV0dXJuIDE7CisgICAgICBjYXNlICdSJzogLyog cmVmZXJlbmNlICovCisJaWYgKCFleHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xl ZF9zdHIsIHRlbXBidWYpKQorCSAgcmV0dXJuIDA7CisJb2JzdGFja19ncm93 X3N0ciAodGVtcGJ1ZiwgIiYiKTsKKwlyZXR1cm4gMTsKKyAgICAgIGNhc2Ug J1onOiAvKiByZXR1cm4gdmFsdWUgKi8KKwlyZXR1cm4gZXh0cmFjdF90eXBl X2luZm8gKG1hbmdsZWRfc3RyLCB0ZW1wYnVmKTsKKyAgICAgIGNhc2UgJ0on OiAvKiBvdXQgKi8KKwlvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAib3V0 ICIpOworCXJldHVybiBleHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xlZF9zdHIs IHRlbXBidWYpOworICAgICAgY2FzZSAnSyc6IC8qIGlub3V0ICovCisJb2Jz dGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImlub3V0ICIpOworCXJldHVybiBl eHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xlZF9zdHIsIHRlbXBidWYpOworICAg ICAgY2FzZSAnRSc6IC8qIGVudW0gKi8KKyAgICAgIGNhc2UgJ1QnOiAvKiB0 eXBlZGVmICovCisgICAgICBjYXNlICdEJzogLyogZGVsZWdhdGUgKi8KKyAg ICAgIGNhc2UgJ0MnOiAvKiBjbGFzcyAqLworICAgICAgY2FzZSAnUyc6IC8q IHN0cnVjdCAqLworCXJldHVybiBleHRyYWN0X2lkZW50aWZpZXJzIChtYW5n bGVkX3N0ciwgdGVtcGJ1Zik7CisKKyAgICAgIC8qIGJhc2ljIHR5cGVzOiAq LworICAgICAgY2FzZSAnbic6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYs ICJub25lIik7IHJldHVybiAxOworICAgICAgY2FzZSAndic6IG9ic3RhY2tf Z3Jvd19zdHIgKHRlbXBidWYsICJ2b2lkIik7IHJldHVybiAxOworICAgICAg Y2FzZSAnZyc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJieXRlIik7 IHJldHVybiAxOworICAgICAgY2FzZSAnaCc6IG9ic3RhY2tfZ3Jvd19zdHIg KHRlbXBidWYsICJ1Ynl0ZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ3Mn OiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAic2hvcnQiKTsgcmV0dXJu IDE7CisgICAgICBjYXNlICd0Jzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1 ZiwgInVzaG9ydCIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2knOiBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiaW50Iik7IHJldHVybiAxOworICAg ICAgY2FzZSAnayc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJ1aW50 Iik7IHJldHVybiAxOworICAgICAgY2FzZSAnbCc6IG9ic3RhY2tfZ3Jvd19z dHIgKHRlbXBidWYsICJsb25nIik7IHJldHVybiAxOworICAgICAgY2FzZSAn bSc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJ1bG9uZyIpOyByZXR1 cm4gMTsKKyAgICAgIGNhc2UgJ2YnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1w YnVmLCAiZmxvYXQiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdkJzogb2Jz dGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImRvdWJsZSIpOyByZXR1cm4gMTsK KyAgICAgIGNhc2UgJ2UnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAi cmVhbCIpOyByZXR1cm4gMTsKKworICAgICAgLyogaW1hZ2luYXJ5IGFuZCBj b21wbGV4OiAqLworICAgICAgY2FzZSAnbyc6IG9ic3RhY2tfZ3Jvd19zdHIg KHRlbXBidWYsICJpZmxvYXQiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdw Jzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImlkb3VibGUiKTsgcmV0 dXJuIDE7CisgICAgICBjYXNlICdqJzogb2JzdGFja19ncm93X3N0ciAodGVt cGJ1ZiwgImlyZWFsIik7IHJldHVybiAxOworICAgICAgY2FzZSAncSc6IG9i c3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJjZmxvYXQiKTsgcmV0dXJuIDE7 CisgICAgICBjYXNlICdyJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1Ziwg ImNkb3VibGUiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdjJzogb2JzdGFj a19ncm93X3N0ciAodGVtcGJ1ZiwgImNyZWFsIik7IHJldHVybiAxOworCisg ICAgICAvKiBvdGhlciB0eXBlczogKi8KKyAgICAgIGNhc2UgJ2InOiBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiYml0Iik7IHJldHVybiAxOworICAg ICAgY2FzZSAnYSc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJjaGFy Iik7IHJldHVybiAxOworICAgICAgY2FzZSAndSc6IG9ic3RhY2tfZ3Jvd19z dHIgKHRlbXBidWYsICJ3Y2hhciIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2Ug J3cnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiZGNoYXIiKTsgcmV0 dXJuIDE7CisKKyAgICAgIGRlZmF1bHQ6CisJb2JzdGFja19ncm93X3N0ciAo dGVtcGJ1ZiwgInVua25vd24iKTsKKwlyZXR1cm4gMTsKKyAgICB9Cit9CisK Ky8qIEltcGxlbWVudHMgdGhlIGxhX2RlbWFuZ2xlIGxhbmd1YWdlX2RlZm4g cm91dGluZSBmb3IgbGFuZ3VhZ2UgRC4gICovCitjaGFyICoKK2RfZGVtYW5n bGUgKGNvbnN0IGNoYXIgKnN5bWJvbCwgaW50IG9wdGlvbnMpCit7CisgIHN0 cnVjdCBvYnN0YWNrIHRlbXBidWY7CisgIGNoYXIgKm91dF9zdHI7CisgIHVu c2lnbmVkIGNoYXIgaXNfZnVuYyA9IDA7CisKKyAgaWYgKHN5bWJvbCA9PSBO VUxMKQorICAgIHJldHVybiBOVUxMOworICBlbHNlIGlmIChzdHJjbXAgKHN5 bWJvbCwgIl9EbWFpbiIpID09IDApCisgICAgcmV0dXJuIHhzdHJkdXAgKCJE IG1haW4iKTsKKworICBvYnN0YWNrX2luaXQgKCZ0ZW1wYnVmKTsKKyAgCisg IGlmIChzeW1ib2xbMF0gPT0gJ18nICYmIHN5bWJvbFsxXSA9PSAnRCcpCisg ICAgeworICAgICAgc3ltYm9sICs9IDI7CisgICAgICBpc19mdW5jID0gMTsK KyAgICB9CisgIGVsc2UgaWYgKHN0cm5jbXAgKHN5bWJvbCwgIl9fQ2xhc3Nf IiwgOCkgPT0gMCkKKyAgICBzeW1ib2wgKz0gODsKKyAgZWxzZSBpZiAoc3Ry bmNtcCAoc3ltYm9sLCAiX19pbml0XyIsIDcpID09IDApCisgICAgc3ltYm9s ICs9IDc7CisgIGVsc2UgaWYgKHN0cm5jbXAgKHN5bWJvbCwgIl9fdnRibF8i LCA3KSA9PSAwKQorICAgIHN5bWJvbCArPSA3OworICBlbHNlIGlmIChzdHJu Y21wIChzeW1ib2wsICJfX21vZGN0b3JfIiwgMTApID09IDApCisgICAgc3lt Ym9sICs9IDEwOworICBlbHNlIGlmIChzdHJuY21wIChzeW1ib2wsICJfX21v ZGR0b3JfIiwgMTApID09IDApCisgICAgc3ltYm9sICs9IDEwOworICBlbHNl IGlmIChzdHJuY21wIChzeW1ib2wsICJfX01vZHVsZUluZm9fIiwgMTMpID09 IDApCisgICAgc3ltYm9sICs9IDEzOworICBlbHNlCisgICAgeworICAgICAg b2JzdGFja19mcmVlICgmdGVtcGJ1ZiwgTlVMTCk7CisgICAgICByZXR1cm4g TlVMTDsKKyAgICB9CisgIAorICBpZiAoIWV4dHJhY3RfaWRlbnRpZmllcnMg KHN5bWJvbCwgJnRlbXBidWYpKQorICAgIHsKKyAgICAgIG9ic3RhY2tfZnJl ZSAoJnRlbXBidWYsIE5VTEwpOworICAgICAgcmV0dXJuIE5VTEw7CisgICAg fQorCisgIG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiKCIpOworICBp ZiAoaXNfZnVuYyA9PSAxICYmICpzeW1ib2wgPT0gJ0YnKQorICAgIHsKKyAg ICAgIHN5bWJvbCsrOworICAgICAgd2hpbGUgKCpzeW1ib2wgIT0gJ1wwJyAm JiAqc3ltYm9sICE9ICdaJykKKwl7CisJICBpZiAoaXNfZnVuYyA9PSAxKQor CSAgICBpc19mdW5jKys7CisJICBlbHNlCisJICAgIG9ic3RhY2tfZ3Jvd19z dHIgKCZ0ZW1wYnVmLCAiLCAiKTsKKwkgIGlmICghZXh0cmFjdF90eXBlX2lu Zm8gKHN5bWJvbCwgJnRlbXBidWYpKQorCSAgICB7CisJICAgICAgb2JzdGFj a19mcmVlICgmdGVtcGJ1ZiwgTlVMTCk7CisJICAgICAgcmV0dXJuIE5VTEw7 CisJICAgfQorCX0KKyAgICAgfQorICBvYnN0YWNrX2dyb3dfc3RyMCAoJnRl bXBidWYsICIpIik7CisKKyAgLyogRG9lc24ndCBkaXNwbGF5IHRoZSByZXR1 cm4gdHlwZSwgYnV0IHdvdWxkbid0IGJlIHRvbyBoYXJkIHRvIGRvLiAgKi8K KworICBvdXRfc3RyID0geHN0cmR1cCAob2JzdGFja19maW5pc2ggKCZ0ZW1w YnVmKSk7CisgIG9ic3RhY2tfZnJlZSAoJnRlbXBidWYsIE5VTEwpOworICBy ZXR1cm4gb3V0X3N0cjsKK30KKworLyogVGFibGUgbWFwcGluZyBvcGNvZGVz IGludG8gc3RyaW5ncyBmb3IgcHJpbnRpbmcgb3BlcmF0b3JzCisgICBhbmQg cHJlY2VkZW5jZXMgb2YgdGhlIG9wZXJhdG9ycy4gICovCitzdGF0aWMgY29u c3Qgc3RydWN0IG9wX3ByaW50IGRfb3BfcHJpbnRfdGFiW10gPQoreworICB7 IiwiLCBCSU5PUF9DT01NQSwgUFJFQ19DT01NQSwgMH0sCisgIHsiPSIsIEJJ Tk9QX0FTU0lHTiwgUFJFQ19BU1NJR04sIDF9LAorICB7Inx8IiwgQklOT1Bf TE9HSUNBTF9PUiwgUFJFQ19MT0dJQ0FMX09SLCAwfSwKKyAgeyImJiIsIEJJ Tk9QX0xPR0lDQUxfQU5ELCBQUkVDX0xPR0lDQUxfQU5ELCAwfSwKKyAgeyJ8 IiwgQklOT1BfQklUV0lTRV9JT1IsIFBSRUNfQklUV0lTRV9JT1IsIDB9LAor ICB7Il4iLCBCSU5PUF9CSVRXSVNFX1hPUiwgUFJFQ19CSVRXSVNFX1hPUiwg MH0sCisgIHsiJiIsIEJJTk9QX0JJVFdJU0VfQU5ELCBQUkVDX0JJVFdJU0Vf QU5ELCAwfSwKKyAgeyI9PSIsIEJJTk9QX0VRVUFMLCBQUkVDX0VRVUFMLCAw fSwKKyAgeyIhPSIsIEJJTk9QX05PVEVRVUFMLCBQUkVDX0VRVUFMLCAwfSwK KyAgeyI8PSIsIEJJTk9QX0xFUSwgUFJFQ19PUkRFUiwgMH0sCisgIHsiPj0i LCBCSU5PUF9HRVEsIFBSRUNfT1JERVIsIDB9LAorICB7Ij4iLCBCSU5PUF9H VFIsIFBSRUNfT1JERVIsIDB9LAorICB7IjwiLCBCSU5PUF9MRVNTLCBQUkVD X09SREVSLCAwfSwKKyAgeyI+PiIsIEJJTk9QX1JTSCwgUFJFQ19TSElGVCwg MH0sCisgIHsiPDwiLCBCSU5PUF9MU0gsIFBSRUNfU0hJRlQsIDB9LAorICB7 IisiLCBCSU5PUF9BREQsIFBSRUNfQURELCAwfSwKKyAgeyItIiwgQklOT1Bf U1VCLCBQUkVDX0FERCwgMH0sCisgIHsiKiIsIEJJTk9QX01VTCwgUFJFQ19N VUwsIDB9LAorICB7Ii8iLCBCSU5PUF9ESVYsIFBSRUNfTVVMLCAwfSwKKyAg eyIlIiwgQklOT1BfUkVNLCBQUkVDX01VTCwgMH0sCisgIHsiQCIsIEJJTk9Q X1JFUEVBVCwgUFJFQ19SRVBFQVQsIDB9LAorICB7Ii0iLCBVTk9QX05FRywg UFJFQ19QUkVGSVgsIDB9LAorICB7IiEiLCBVTk9QX0xPR0lDQUxfTk9ULCBQ UkVDX1BSRUZJWCwgMH0sCisgIHsifiIsIFVOT1BfQ09NUExFTUVOVCwgUFJF Q19QUkVGSVgsIDB9LAorICB7IioiLCBVTk9QX0lORCwgUFJFQ19QUkVGSVgs IDB9LAorICB7IiYiLCBVTk9QX0FERFIsIFBSRUNfUFJFRklYLCAwfSwKKyAg eyJzaXplb2YgIiwgVU5PUF9TSVpFT0YsIFBSRUNfUFJFRklYLCAwfSwKKyAg eyIrKyIsIFVOT1BfUFJFSU5DUkVNRU5ULCBQUkVDX1BSRUZJWCwgMH0sCisg IHsiLS0iLCBVTk9QX1BSRURFQ1JFTUVOVCwgUFJFQ19QUkVGSVgsIDB9LAor ICB7TlVMTCwgMCwgMCwgMH0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg bGFuZ3VhZ2VfZGVmbiBkX2xhbmd1YWdlX2RlZm4gPQoreworICAiZCIsCisg IGxhbmd1YWdlX2QsCisgIHJhbmdlX2NoZWNrX29mZiwKKyAgdHlwZV9jaGVj a19vZmYsCisgIGNhc2Vfc2Vuc2l0aXZlX29uLAorICBhcnJheV9yb3dfbWFq b3IsCisgIG1hY3JvX2V4cGFuc2lvbl9jLAorICAmZXhwX2Rlc2NyaXB0b3Jf YywKKyAgY19wYXJzZSwKKyAgY19lcnJvciwKKyAgbnVsbF9wb3N0X3BhcnNl ciwKKyAgY19wcmludGNoYXIsCQkJLyogUHJpbnQgYSBjaGFyYWN0ZXIgY29u c3RhbnQuICAqLworICBjX3ByaW50c3RyLAkJCS8qIEZ1bmN0aW9uIHRvIHBy aW50IHN0cmluZyBjb25zdGFudC4gICovCisgIGNfZW1pdF9jaGFyLAkJCS8q IFByaW50IGEgc2luZ2xlIGNoYXIuICAqLworICBjX3ByaW50X3R5cGUsCQkJ LyogUHJpbnQgYSB0eXBlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheC4gICov CisgIGNfcHJpbnRfdHlwZWRlZiwJCS8qIFByaW50IGEgdHlwZWRlZiB1c2lu ZyBhcHByb3ByaWF0ZSBzeW50YXguICAqLworICBkX3ZhbF9wcmludCwJCQkv KiBQcmludCBhIHZhbHVlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheC4gICov CisgIGNfdmFsdWVfcHJpbnQsCQkvKiBQcmludCBhIHRvcC1sZXZlbCB2YWx1 ZS4gICovCisgIE5VTEwsCQkJCS8qIExhbmd1YWdlIHNwZWNpZmljIHNraXBf dHJhbXBvbGluZS4gICovCisgICJ0aGlzIiwKKyAgYmFzaWNfbG9va3VwX3N5 bWJvbF9ub25sb2NhbCwgCisgIGJhc2ljX2xvb2t1cF90cmFuc3BhcmVudF90 eXBlLAorICBkX2RlbWFuZ2xlLAkJCS8qIExhbmd1YWdlIHNwZWNpZmljIHN5 bWJvbCBkZW1hbmdsZXIuICAqLworICBOVUxMLAkJCQkvKiBMYW5ndWFnZSBz cGVjaWZpYyBjbGFzc19uYW1lX2Zyb21fcGh5c25hbWUuICAqLworICBkX29w X3ByaW50X3RhYiwJCS8qIEV4cHJlc3Npb24gb3BlcmF0b3JzIGZvciBwcmlu dGluZy4gICovCisgIDEsCQkJCS8qIEMtc3R5bGUgYXJyYXlzLiAgKi8KKyAg MCwJCQkJLyogU3RyaW5nIGxvd2VyIGJvdW5kLiAgKi8KKyAgZGVmYXVsdF93 b3JkX2JyZWFrX2NoYXJhY3RlcnMsCisgIGRlZmF1bHRfbWFrZV9zeW1ib2xf Y29tcGxldGlvbl9saXN0LAorICBjX2xhbmd1YWdlX2FyY2hfaW5mbywKKyAg ZGVmYXVsdF9wcmludF9hcnJheV9pbmRleCwKKyAgZGVmYXVsdF9wYXNzX2J5 X3JlZmVyZW5jZSwKKyAgY19nZXRfc3RyaW5nLAorICBMQU5HX01BR0lDCit9 OworCit2b2lkCitfaW5pdGlhbGl6ZV9kX2xhbmd1YWdlICh2b2lkKQorewor ICBhZGRfbGFuZ3VhZ2UgKCZkX2xhbmd1YWdlX2RlZm4pOworfQpkaWZmIC0t Z2l0IGEvZ2RiL2QtbGFuZy5oIGIvZ2RiL2QtbGFuZy5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMjc4MjcKLS0tIC9kZXYvbnVs bAorKysgYi9nZGIvZC1sYW5nLmgKQEAgLTAsMCArMSwzMiBAQAorLyogRCBs YW5ndWFnZSBzdXBwb3J0IGRlZmluaXRpb25zIGZvciBHREIsIHRoZSBHTlUg ZGVidWdnZXIuCisKKyAgIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAw OCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworCisjaWYgIWRlZmluZWQgKERfTEFOR19IKQor I2RlZmluZSBEX0xBTkdfSCAxCisKKyNpbmNsdWRlICJzeW10YWIuaCIKKwor ZXh0ZXJuIGNoYXIgKmRfZGVtYW5nbGUgKGNvbnN0IGNoYXIgKm1hbmdsZWQs IGludCBvcHRpb25zKTsKKworZXh0ZXJuIGludCBkX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorCQkJ aW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisJCQlz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKwkJCWNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKKworI2Vu ZGlmIC8qICFkZWZpbmVkIChEX0xBTkdfSCkgKi8KZGlmZiAtLWdpdCBhL2dk Yi9kLXZhbHByaW50LmMgYi9nZGIvZC12YWxwcmludC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3YjMyYjcKLS0tIC9kZXYvbnVs bAorKysgYi9nZGIvZC12YWxwcmludC5jCkBAIC0wLDAgKzEsOTEgQEAKKy8q IFN1cHBvcnQgZm9yIHByaW50aW5nIEQgdmFsdWVzIGZvciBHREIsIHRoZSBH TlUgZGVidWdnZXIuCisKKyAgIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwg MjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1ZGUgImdkYnR5 cGVzLmgiCisjaW5jbHVkZSAiZ2RiY29yZS5oIgorI2luY2x1ZGUgImQtbGFu Zy5oIgorI2luY2x1ZGUgImMtbGFuZy5oIgorCisvKiBBc3N1bWluZyB0aGF0 IFRZUEUgaXMgYSBUWVBFX0NPREVfU1RSVUNULCB2ZXJpZnkgdGhhdCBUWVBF IGlzCisgICBhIGR5bmFtaWMgYXJyYXksIGFuZCB0aGVuIHByaW50IGl0cyB2 YWx1ZSB0byBTVFJFQU0uICBSZXR1cm4KKyAgIHRoZSBudW1iZXIgb2Ygc3Ry aW5nIGNoYXJhY3RlcnMgcHJpbnRlZCwgb3IgLTEgaWYgVFlQRSBpcyBub3QK KyAgIGEgZHluYW1pYyBhcnJheS4gICovCitzdGF0aWMgaW50CitkeW5hbWlj X2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKKwkJICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAorCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHJlY3Vyc2UsCisJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucykKK3sKKyAgaWYgKFRZUEVfTkZJRUxEUyAodHlw ZSkgPT0gMgorICAgICAgJiYgVFlQRV9DT0RFIChUWVBFX0ZJRUxEX1RZUEUg KHR5cGUsIDApKSA9PSBUWVBFX0NPREVfSU5UCisgICAgICAmJiBzdHJjbXAg KFRZUEVfRklFTERfTkFNRSAodHlwZSwgMCksICJsZW5ndGgiKSA9PSAwCisg ICAgICAmJiBzdHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgMSksICJw dHIiKSA9PSAwKQorICAgIHsKKyAgICAgIENPUkVfQUREUiBhZGRyOworICAg ICAgc3RydWN0IHR5cGUgKmVsdHR5cGU7CisgICAgICBzdHJ1Y3QgdHlwZSAq dHJ1ZV90eXBlOworICAgICAgc3RydWN0IHR5cGUgKnB0cl90eXBlOworICAg ICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGU7CisgICAgICBjb25zdCBnZGJf Ynl0ZSAqcHRyYWRkcjsKKyAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsOworICAg ICAgaW50IGxlbmd0aDsKKworICAgICAgbGVuZ3RoID0gdW5wYWNrX2ZpZWxk X2FzX2xvbmcgKHR5cGUsIHZhbGFkZHIgKyBlbWJlZGRlZF9vZmZzZXQsIDAp OworCisgICAgICBwdHJfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwg MSk7CisgICAgICBlbHR0eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJH RVRfVFlQRSAocHRyX3R5cGUpKTsKKyAgICAgIGFkZHIgPSB1bnBhY2tfcG9p bnRlciAocHRyX3R5cGUsCisJCQkgICAgIHZhbGFkZHIgKyBUWVBFX0ZJRUxE X0JJVFBPUyAodHlwZSwgMSkgLyA4CisJCQkgICAgICsgZW1iZWRkZWRfb2Zm c2V0KTsKKyAgICAgIHRydWVfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKGVsdHR5 cGUpOworCisgICAgICB0cnVlX3R5cGUgPSBsb29rdXBfYXJyYXlfcmFuZ2Vf dHlwZSAodHJ1ZV90eXBlLCAwLCBsZW5ndGggLSAxKTsKKyAgICAgIHZhbCA9 IHZhbHVlX2F0ICh0cnVlX3R5cGUsIGFkZHIpOworICAgICAgcHRyYWRkciA9 IHZhbHVlX2NvbnRlbnRzICh2YWwpOworCisgICAgICByZXR1cm4gZF92YWxf cHJpbnQgKHRydWVfdHlwZSwgcHRyYWRkciwgMCwgYWRkciwgc3RyZWFtLCBy ZWN1cnNlICsgMSwKKwkJCSAgb3B0aW9ucyk7CisgICAgfQorICByZXR1cm4g LTE7Cit9CisKKy8qIEltcGxlbWVudHMgdGhlIGxhX3ZhbF9wcmludCByb3V0 aW5lIGZvciBsYW5ndWFnZSBELiAgKi8KK2ludAorZF92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50 IGVtYmVkZGVkX29mZnNldCwKKyAgICAgICAgICAgICBDT1JFX0FERFIgYWRk cmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCit7CisgIGludCByZXQ7CisKKyAgQ0hFQ0tfVFlQRURFRiAo dHlwZSk7CisgIHN3aXRjaCAoVFlQRV9DT0RFICh0eXBlKSkKKyAgICB7Cisg ICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6CisgICAgICAgIHJldCA9IGR5 bmFtaWNfYXJyYXlfdHlwZSAodHlwZSwgdmFsYWRkciwgZW1iZWRkZWRfb2Zm c2V0LCBhZGRyZXNzLAorCQkJCSAgc3RyZWFtLCByZWN1cnNlLCBvcHRpb25z KTsKKwlpZiAocmV0ICE9IC0xKQorCSAgIGJyZWFrOworICAgICAgZGVmYXVs dDoKKwlyZXQgPSBjX3ZhbF9wcmludCAodHlwZSwgdmFsYWRkciwgZW1iZWRk ZWRfb2Zmc2V0LCBhZGRyZXNzLCBzdHJlYW0sCisJCQkgICByZWN1cnNlLCBv cHRpb25zKTsKKyAgICB9CisKKyAgcmV0dXJuIHJldDsKK30KZGlmZiAtLWdp dCBhL2dkYi9kZWZzLmggYi9nZGIvZGVmcy5oCmluZGV4IDJjNGU1YzQuLjcx ZThiM2EgMTAwNjQ0Ci0tLSBhL2dkYi9kZWZzLmgKKysrIGIvZ2RiL2RlZnMu aApAQCAtMTg4LDYgKzE4OCw3IEBAIGVudW0gbGFuZ3VhZ2UKICAgICBsYW5n dWFnZV9hdXRvLAkJLyogUGxhY2Vob2xkZXIgZm9yIGF1dG9tYXRpYyBzZXR0 aW5nICovCiAgICAgbGFuZ3VhZ2VfYywJCQkvKiBDICovCiAgICAgbGFuZ3Vh Z2VfY3BsdXMsCQkvKiBDKysgKi8KKyAgICBsYW5ndWFnZV9kLAkJCS8qIEQg Ki8KICAgICBsYW5ndWFnZV9vYmpjLAkJLyogT2JqZWN0aXZlLUMgKi8KICAg ICBsYW5ndWFnZV9qYXZhLAkJLyogSmF2YSAqLwogICAgIGxhbmd1YWdlX2Zv cnRyYW4sCQkvKiBGb3J0cmFuICovCmRpZmYgLS1naXQgYS9nZGIvZG9jL2dk Yi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwppbmRleCAzYmI4ZWY5 Li4wMmJkMjEyIDEwMDY0NAotLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisr KyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KQEAgLTIxNCw2ICsyMTQsOSBAQCBZ b3UgY2FuIHVzZSBAdmFsdWV7R0RCTn0gdG8gZGVidWcgcHJvZ3JhbXMgd3Jp dHRlbiBpbiBDIGFuZCBDQHR7Kyt9LgogRm9yIG1vcmUgaW5mb3JtYXRpb24s IHNlZSBAcmVme1N1cHBvcnRlZCBMYW5ndWFnZXMsLFN1cHBvcnRlZCBMYW5n dWFnZXN9LgogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBAcmVme0MsLEMg YW5kIEMrK30uCiAKK1N1cHBvcnQgZm9yIEQgaXMgcGFydGlhbC4gIEZvciBp bmZvcm1hdGlvbiBvbiBELCBzZWUKK0ByZWZ7RCwsRH0uCisKIEBjaW5kZXgg TW9kdWxhLTIKIFN1cHBvcnQgZm9yIE1vZHVsYS0yIGlzIHBhcnRpYWwuICBG b3IgaW5mb3JtYXRpb24gb24gTW9kdWxhLTIsIHNlZQogQHJlZntNb2R1bGEt MiwsTW9kdWxhLTJ9LgpAQCAtMTA4MjQsNiArMTA4MjcsOSBAQCBDIHNvdXJj ZSBmaWxlCiBAaXRlbXggLmMrKwogQ0B0eysrfSBzb3VyY2UgZmlsZQogCitA aXRlbSAuZAorRCBzb3VyY2UgZmlsZQorCiBAaXRlbSAubQogT2JqZWN0aXZl LUMgc291cmNlIGZpbGUKIApAQCAtMTExMDEsNyArMTExMDcsNyBAQCBiZWlu ZyBzZXQgYXV0b21hdGljYWxseSBieSBAdmFsdWV7R0RCTn0uCiBAbm9kZSBT dXBwb3J0ZWQgTGFuZ3VhZ2VzCiBAc2VjdGlvbiBTdXBwb3J0ZWQgTGFuZ3Vh Z2VzCiAKLUB2YWx1ZXtHREJOfSBzdXBwb3J0cyBDLCBDQHR7Kyt9LCBPYmpl Y3RpdmUtQywgRm9ydHJhbiwgSmF2YSwgUGFzY2FsLAorQHZhbHVle0dEQk59 IHN1cHBvcnRzIEMsIENAdHsrK30sIEQsIE9iamVjdGl2ZS1DLCBGb3J0cmFu LCBKYXZhLCBQYXNjYWwsCiBhc3NlbWJseSwgTW9kdWxhLTIsIGFuZCBBZGEu CiBAYyBUaGlzIGlzIGZhbHNlIC4uLgogU29tZSBAdmFsdWV7R0RCTn0gZmVh dHVyZXMgbWF5IGJlIHVzZWQgaW4gZXhwcmVzc2lvbnMgcmVnYXJkbGVzcyBv ZiB0aGUKQEAgLTExMTIwLDYgKzExMTI2LDcgQEAgbGFuZ3VhZ2UgcmVmZXJl bmNlIG9yIHR1dG9yaWFsLgogCiBAbWVudQogKiBDOjogICAgICAgICAgICAg ICAgICAgICAgICAgICBDIGFuZCBDQHR7Kyt9CisqIEQ6OiAgICAgICAgICAg ICAgICAgICAgICAgICAgIEQKICogT2JqZWN0aXZlLUM6OiAgICAgICAgICAg ICAgICAgT2JqZWN0aXZlLUMKICogRm9ydHJhbjo6ICAgICAgICAgICAgICAg ICAgICAgRm9ydHJhbgogKiBQYXNjYWw6OiAgICAgICAgICAgICAgICAgICAg ICBQYXNjYWwKQEAgLTExNjU3LDYgKzExNjY0LDE0IEBAIEluIHRoZSBQb3dl clBDIGFyY2hpdGVjdHVyZSwgQHZhbHVle0dEQk59IHByb3ZpZGVzIGEgc2V0 IG9mIHBzZXVkby1yZWdpc3RlcnMKIHRvIGluc3BlY3QgQGNvZGV7X0RlY2lt YWwxMjh9IHZhbHVlcyBzdG9yZWQgaW4gZmxvYXRpbmcgcG9pbnQgcmVnaXN0 ZXJzLgogU2VlIEByZWZ7UG93ZXJQQywsUG93ZXJQQ30gZm9yIG1vcmUgZGV0 YWlscy4KIAorQG5vZGUgRAorQHN1YnNlY3Rpb24gRAorCitAY2luZGV4IEQK K0B2YWx1ZXtHREJOfSBjYW4gYmUgdXNlZCB0byBkZWJ1ZyBwcm9ncmFtcyB3 cml0dGVuIGluIEQgYW5kIGNvbXBpbGVkIHdpdGgKK0dEQywgTERDIG9yIERN RCBjb21waWxlcnMuIEN1cnJlbnRseSBAdmFsdWV7R0RCTn0gc3VwcG9ydHMg b25seSBvbmUgRAorc3BlY2lmaWMgZmVhdHVyZSAtLS0gZHluYW1pYyBhcnJh eXMuCisKIEBub2RlIE9iamVjdGl2ZS1DCiBAc3Vic2VjdGlvbiBPYmplY3Rp dmUtQwogCmRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3 YXJmMnJlYWQuYwppbmRleCAzMDk2YWI3Li5mNGNiYzU5IDEwMDY0NAotLS0g YS9nZGIvZHdhcmYycmVhZC5jCisrKyBiL2dkYi9kd2FyZjJyZWFkLmMKQEAg LTc2MTksNiArNzYxOSw5IEBAIHNldF9jdV9sYW5ndWFnZSAodW5zaWduZWQg aW50IGxhbmcsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgIGNhc2UgRFdf TEFOR19DX3BsdXNfcGx1czoKICAgICAgIGN1LT5sYW5ndWFnZSA9IGxhbmd1 YWdlX2NwbHVzOwogICAgICAgYnJlYWs7CisgICAgY2FzZSBEV19MQU5HX0Q6 CisgICAgICBjdS0+bGFuZ3VhZ2UgPSBsYW5ndWFnZV9kOworICAgICAgYnJl YWs7CiAgICAgY2FzZSBEV19MQU5HX0ZvcnRyYW43NzoKICAgICBjYXNlIERX X0xBTkdfRm9ydHJhbjkwOgogICAgIGNhc2UgRFdfTEFOR19Gb3J0cmFuOTU6 CmRpZmYgLS1naXQgYS9nZGIvbGFuZ3VhZ2UuYyBiL2dkYi9sYW5ndWFnZS5j CmluZGV4IGRjZDcwYjAuLmFiYThhOWUgMTAwNjQ0Ci0tLSBhL2dkYi9sYW5n dWFnZS5jCisrKyBiL2dkYi9sYW5ndWFnZS5jCkBAIC00ODYsNiArNDg2LDcg QEAgYmlub3BfcmVzdWx0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqdjEsIHN0cnVj dCB2YWx1ZSAqdjIpCiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2VfYzoKICAg ICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoK ICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICBpZiAoVFlQRV9DT0RF ICh0MSkgPT0gVFlQRV9DT0RFX0ZMVCkKIAlyZXR1cm4gVFlQRV9DT0RFICh0 MikgPT0gVFlQRV9DT0RFX0ZMVCAmJiBsMiA+IGwxID8KQEAgLTU5Nyw2ICs1 OTgsNyBAQCBpbnRlZ3JhbF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAg ICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2Vf Y3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3Vh Z2Vfb2JqYzoKICAgICAgIHJldHVybiAoVFlQRV9DT0RFICh0eXBlKSAhPSBU WVBFX0NPREVfSU5UKSAmJgogCShUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVf Q09ERV9FTlVNKSA/IDAgOiAxOwpAQCAtNjM3LDYgKzYzOSw3IEBAIGNoYXJh Y3Rlcl90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKIAogICAgIGNhc2UgbGFu Z3VhZ2VfYzoKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2Ug bGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICBy ZXR1cm4gKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0lOVCkgJiYK IAlUWVBFX0xFTkdUSCAodHlwZSkgPT0gc2l6ZW9mIChjaGFyKQpAQCAtNjU5 LDYgKzY2Miw3IEBAIHN0cmluZ190eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkK IAogICAgIGNhc2UgbGFuZ3VhZ2VfYzoKICAgICBjYXNlIGxhbmd1YWdlX2Nw bHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdl X29iamM6CiAgICAgICAvKiBDIGRvZXMgbm90IGhhdmUgZGlzdGluY3Qgc3Ry aW5nIHR5cGUuICovCiAgICAgICByZXR1cm4gKDApOwpAQCAtNjc4LDYgKzY4 Miw3IEBAIGJvb2xlYW5fdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgICAg ewogICAgIGNhc2UgbGFuZ3VhZ2VfYzoKICAgICBjYXNlIGxhbmd1YWdlX2Nw bHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdl X29iamM6CiAgICAgICAvKiBNaWdodCBiZSBtb3JlIGNsZWFubHkgaGFuZGxl ZCBieSBoYXZpbmcgYQogICAgICAgICAgVFlQRV9DT0RFX0lOVF9OT1RfQk9P TCBmb3IgKHRoZSBkZWxldGVkKSBDSElMTCBhbmQgc3VjaApAQCAtNzE3LDYg KzcyMiw3IEBAIHN0cnVjdHVyZWRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUp CiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2VfYzoKICAgICBjYXNlIGxhbmd1 YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxh bmd1YWdlX29iamM6CiAgICAgICByZXR1cm4gKFRZUEVfQ09ERSAodHlwZSkg PT0gVFlQRV9DT0RFX1NUUlVDVCkgfHwKIAkoVFlQRV9DT0RFICh0eXBlKSA9 PSBUWVBFX0NPREVfVU5JT04pIHx8CmRpZmYgLS1naXQgYS9nZGIvc3ltZmls ZS5jIGIvZ2RiL3N5bWZpbGUuYwppbmRleCBhMDJiMmQyLi5lMzlhMWYwIDEw MDY0NAotLS0gYS9nZGIvc3ltZmlsZS5jCisrKyBiL2dkYi9zeW1maWxlLmMK QEAgLTI2MTYsNiArMjYxNiw3IEBAIGluaXRfZmlsZW5hbWVfbGFuZ3VhZ2Vf dGFibGUgKHZvaWQpCiAgICAgICBmaWxlbmFtZV9sYW5ndWFnZV90YWJsZSA9 CiAJeG1hbGxvYyAoZmxfdGFibGVfc2l6ZSAqIHNpemVvZiAoKmZpbGVuYW1l X2xhbmd1YWdlX3RhYmxlKSk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3Vh Z2UgKCIuYyIsIGxhbmd1YWdlX2MpOworICAgICAgYWRkX2ZpbGVuYW1lX2xh bmd1YWdlICgiLmQiLCBsYW5ndWFnZV9kKTsKICAgICAgIGFkZF9maWxlbmFt ZV9sYW5ndWFnZSAoIi5DIiwgbGFuZ3VhZ2VfY3BsdXMpOwogICAgICAgYWRk X2ZpbGVuYW1lX2xhbmd1YWdlICgiLmNjIiwgbGFuZ3VhZ2VfY3BsdXMpOwog ICAgICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdlICgiLmNwIiwgbGFuZ3VhZ2Vf Y3BsdXMpOwpkaWZmIC0tZ2l0IGEvZ2RiL3N5bXRhYi5jIGIvZ2RiL3N5bXRh Yi5jCmluZGV4IDFkNmI2NDguLjY3YTc4NGIgMTAwNjQ0Ci0tLSBhL2dkYi9z eW10YWIuYworKysgYi9nZGIvc3ltdGFiLmMKQEAgLTM5LDYgKzM5LDcgQEAK ICNpbmNsdWRlICJzb3VyY2UuaCIKICNpbmNsdWRlICJmaWxlbmFtZXMuaCIJ CS8qIGZvciBGSUxFTkFNRV9DTVAgKi8KICNpbmNsdWRlICJvYmpjLWxhbmcu aCIKKyNpbmNsdWRlICJkLWxhbmcuaCIKICNpbmNsdWRlICJhZGEtbGFuZy5o IgogI2luY2x1ZGUgInAtbGFuZy5oIgogI2luY2x1ZGUgImFkZHJtYXAuaCIK QEAgLTM0Niw2ICszNDcsNyBAQCBzeW1ib2xfaW5pdF9sYW5ndWFnZV9zcGVj aWZpYyAoc3RydWN0IGdlbmVyYWxfc3ltYm9sX2luZm8gKmdzeW1ib2wsCiB7 CiAgIGdzeW1ib2wtPmxhbmd1YWdlID0gbGFuZ3VhZ2U7CiAgIGlmIChnc3lt Ym9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cworICAgICAgfHwgZ3N5 bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZAogICAgICAgfHwgZ3N5bWJv bC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YQogICAgICAgfHwgZ3N5bWJv bC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vfb2JqYykKICAgICB7CkBAIC00NDks NiArNDUxLDE2IEBAIHN5bWJvbF9maW5kX2RlbWFuZ2xlZF9uYW1lIChzdHJ1 Y3QgZ2VuZXJhbF9zeW1ib2xfaW5mbyAqZ3N5bWJvbCwKIAkgIHJldHVybiBk ZW1hbmdsZWQ7CiAJfQogICAgIH0KKyAgaWYgKGdzeW1ib2wtPmxhbmd1YWdl ID09IGxhbmd1YWdlX2QKKyAgICAgIHx8IGdzeW1ib2wtPmxhbmd1YWdlID09 IGxhbmd1YWdlX2F1dG8pCisgICAgeworICAgICAgZGVtYW5nbGVkID0gZF9k ZW1hbmdsZShtYW5nbGVkLCAwKTsKKyAgICAgIGlmIChkZW1hbmdsZWQgIT0g TlVMTCkKKwl7CisJICBnc3ltYm9sLT5sYW5ndWFnZSA9IGxhbmd1YWdlX2Q7 CisJICByZXR1cm4gZGVtYW5nbGVkOworCX0KKyAgICB9CiAgIHJldHVybiBO VUxMOwogfQogCkBAIC02MjYsNiArNjM4LDcgQEAgc3ltYm9sX25hdHVyYWxf bmFtZSAoY29uc3Qgc3RydWN0IGdlbmVyYWxfc3ltYm9sX2luZm8gKmdzeW1i b2wpCiAgIHN3aXRjaCAoZ3N5bWJvbC0+bGFuZ3VhZ2UpCiAgICAgewogICAg IGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgog ICAgIGNhc2UgbGFuZ3VhZ2VfamF2YToKICAgICBjYXNlIGxhbmd1YWdlX29i amM6CiAgICAgICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2Vfc3BlY2lmaWMuY3Bs dXNfc3BlY2lmaWMuZGVtYW5nbGVkX25hbWUgIT0gTlVMTCkKQEAgLTY1MSw2 ICs2NjQsNyBAQCBzeW1ib2xfZGVtYW5nbGVkX25hbWUgKGNvbnN0IHN0cnVj dCBnZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9sKQogICBzd2l0Y2ggKGdz eW1ib2wtPmxhbmd1YWdlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2Nw bHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdl X2phdmE6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgaWYgKGdz eW1ib2wtPmxhbmd1YWdlX3NwZWNpZmljLmNwbHVzX3NwZWNpZmljLmRlbWFu Z2xlZF9uYW1lICE9IE5VTEwpCkBAIC05NDAsNyArOTU0LDcgQEAgbG9va3Vw X3N5bWJvbF9pbl9sYW5ndWFnZSAoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg c3RydWN0IGJsb2NrICpibG9jaywKIAogICBtb2RpZmllZF9uYW1lID0gbmFt ZTsKIAotICAvKiBJZiB3ZSBhcmUgdXNpbmcgQysrIG9yIEphdmEsIGRlbWFu Z2xlIHRoZSBuYW1lIGJlZm9yZSBkb2luZyBhIGxvb2t1cCwgc28KKyAgLyog SWYgd2UgYXJlIHVzaW5nIEMrKywgRCwgb3IgSmF2YSwgZGVtYW5nbGUgdGhl IG5hbWUgYmVmb3JlIGRvaW5nIGEgbG9va3VwLCBzbwogICAgICB3ZSBjYW4g YWx3YXlzIGJpbmFyeSBzZWFyY2guICovCiAgIGlmIChsYW5nID09IGxhbmd1 YWdlX2NwbHVzKQogICAgIHsKQEAgLTk3Miw2ICs5ODYsMTUgQEAgbG9va3Vw X3N5bWJvbF9pbl9sYW5ndWFnZSAoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg c3RydWN0IGJsb2NrICpibG9jaywKIAkgIG1ha2VfY2xlYW51cCAoeGZyZWUs IGRlbWFuZ2xlZF9uYW1lKTsKIAl9CiAgICAgfQorICBlbHNlIGlmIChsYW5n ID09IGxhbmd1YWdlX2QpCisgICAgeworICAgICAgZGVtYW5nbGVkX25hbWUg PSBkX2RlbWFuZ2xlIChuYW1lLCAwKTsKKyAgICAgIGlmIChkZW1hbmdsZWRf bmFtZSkKKwl7CisJICBtb2RpZmllZF9uYW1lID0gZGVtYW5nbGVkX25hbWU7 CisJICBtYWtlX2NsZWFudXAgKHhmcmVlLCBkZW1hbmdsZWRfbmFtZSk7CisJ fQorICAgIH0KIAogICBpZiAoY2FzZV9zZW5zaXRpdml0eSA9PSBjYXNlX3Nl bnNpdGl2ZV9vZmYpCiAgICAgewpAQCAtMTQxMiw2ICsxNDM1LDcgQEAgc3lt Ym9sX21hdGNoZXNfZG9tYWluIChlbnVtIGxhbmd1YWdlIHN5bWJvbF9sYW5n dWFnZSwKICAgICAgQSBKYXZhIGNsYXNzIGRlY2xhcmF0aW9uIGFsc28gZGVm aW5lcyBhIHR5cGVkZWYgZm9yIHRoZSBjbGFzcy4KICAgICAgU2ltaWxhcmx5 LCBhbnkgQWRhIHR5cGUgZGVjbGFyYXRpb24gaW1wbGljaXRseSBkZWZpbmVz IGEgdHlwZWRlZi4gICovCiAgIGlmIChzeW1ib2xfbGFuZ3VhZ2UgPT0gbGFu Z3VhZ2VfY3BsdXMKKyAgICAgIHx8IHN5bWJvbF9sYW5ndWFnZSA9PSBsYW5n dWFnZV9kCiAgICAgICB8fCBzeW1ib2xfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vf amF2YQogICAgICAgfHwgc3ltYm9sX2xhbmd1YWdlID09IGxhbmd1YWdlX2Fk YSkKICAgICB7CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2RlZmF1bHQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0 LmV4cAppbmRleCA5N2Q1NDA3Li4yYTEzMDA3IDEwMDY0NAotLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhwCisrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvZGVmYXVsdC5leHAKQEAgLTUzMSw3ICs1MzEsNyBA QCBnZGJfdGVzdCAic2V0IGhpc3Rvcnkgc2l6ZSIgIkFyZ3VtZW50IHJlcXVp cmVkIC5pbnRlZ2VyIHRvIHNldCBpdCB0by4qIiAic2V0IGhpcwogI3Rlc3Qg c2V0IGhpc3RvcnkKIGdkYl90ZXN0ICJzZXQgaGlzdG9yeSIgIlwic2V0IGhp c3RvcnlcIiBtdXN0IGJlIGZvbGxvd2VkIGJ5IHRoZSBuYW1lIG9mIGEgaGlz dG9yeSBzdWJjb21tYW5kLihcW15cclxuXF0qXFtcclxuXF0pK0xpc3Qgb2Yg c2V0IGhpc3Rvcnkgc3ViY29tbWFuZHM6KFxbXlxyXG5cXSpcW1xyXG5cXSkr c2V0IGhpc3RvcnkgZXhwYW5zaW9uIC0tIFNldCBoaXN0b3J5IGV4cGFuc2lv biBvbiBjb21tYW5kIGlucHV0KFxbXlxyXG5cXSpcW1xyXG5cXSkrc2V0IGhp c3RvcnkgZmlsZW5hbWUgLS0gU2V0IHRoZSBmaWxlbmFtZSBpbiB3aGljaCB0 byByZWNvcmQgdGhlIGNvbW1hbmQgaGlzdG9yeShcW15cclxuXF0qXFtcclxu XF0pK3NldCBoaXN0b3J5IHNhdmUgLS0gU2V0IHNhdmluZyBvZiB0aGUgaGlz dG9yeSByZWNvcmQgb24gZXhpdChcW15cclxuXF0qXFtcclxuXF0pK3NldCBo aXN0b3J5IHNpemUgLS0gU2V0IHRoZSBzaXplIG9mIHRoZSBjb21tYW5kIGhp c3RvcnkoXFteXHJcblxdKlxbXHJcblxdKStUeXBlIFwiaGVscCBzZXQgaGlz dG9yeVwiIGZvbGxvd2VkIGJ5IHNldCBoaXN0b3J5IHN1YmNvbW1hbmQgbmFt ZSBmb3IgZnVsbCBkb2N1bWVudGF0aW9uLihcW15cclxuXF0qXFtcclxuXF0p K0NvbW1hbmQgbmFtZSBhYmJyZXZpYXRpb25zIGFyZSBhbGxvd2VkIGlmIHVu YW1iaWd1b3VzLiIgInNldCBoaXN0b3J5IgogI3Rlc3Qgc2V0IGxhbmd1YWdl Ci1nZGJfdGVzdCAic2V0IGxhbmd1YWdlIiAiUmVxdWlyZXMgYW4gYXJndW1l bnQuIFZhbGlkIGFyZ3VtZW50cyBhcmUgYXV0bywgbG9jYWwsIHVua25vd24s IGFkYSwgYywgYy4uLCBhc20sIG1pbmltYWwsIGZvcnRyYW4sIG9iamVjdGl2 ZS1jLCBqYXZhLCBtb2R1bGEtMiwgcGFzY2FsLCBzY2hlbWUuIiAic2V0IGxh bmd1YWdlIgorZ2RiX3Rlc3QgInNldCBsYW5ndWFnZSIgIlJlcXVpcmVzIGFu IGFyZ3VtZW50LiBWYWxpZCBhcmd1bWVudHMgYXJlIGF1dG8sIGxvY2FsLCB1 bmtub3duLCBhZGEsIGMsIGMuLiwgYXNtLCBtaW5pbWFsLCBkLCBmb3J0cmFu LCBvYmplY3RpdmUtYywgamF2YSwgbW9kdWxhLTIsIHBhc2NhbCwgc2NoZW1l LiIgInNldCBsYW5ndWFnZSIKICN0ZXN0IHNldCBsaXN0c2l6ZQogZ2RiX3Rl c3QgInNldCBsaXN0c2l6ZSIgIkFyZ3VtZW50IHJlcXVpcmVkIC5pbnRlZ2Vy IHRvIHNldCBpdCB0by4qIiAic2V0IGxpc3RzaXplIgogI3Rlc3Qgc2V0IHBy aW50ICJwIiBhYmJyZXZpYXRpb24K --Multipart=_Thu__29_Apr_2010_04_56_46_+0300_27Zm_W9stGuye40o--