From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20898 invoked by alias); 21 Apr 2010 00:01:22 -0000 Received: (qmail 20758 invoked by uid 22791); 21 Apr 2010 00:01:21 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-bw0-f218.google.com (HELO mail-bw0-f218.google.com) (209.85.218.218) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 21 Apr 2010 00:01:16 +0000 Received: by bwz10 with SMTP id 10so6703717bwz.4 for ; Tue, 20 Apr 2010 17:01:13 -0700 (PDT) Received: by 10.204.139.68 with SMTP id d4mr2100343bku.66.1271808073067; Tue, 20 Apr 2010 17:01:13 -0700 (PDT) Received: from localhost (135-243-252-87-dynamic-pool.gprs.mts.by [87.252.243.135]) by mx.google.com with ESMTPS id 14sm3893988bwz.10.2010.04.20.17.00.01 (version=SSLv3 cipher=RC4-MD5); Tue, 20 Apr 2010 17:01:12 -0700 (PDT) Date: Wed, 21 Apr 2010 00:01:00 -0000 From: Mihail Zenkov To: tromey@redhat.com Cc: Mihail Zenkov , Joel Brobecker , gdb-patches@sourceware.org Subject: Re: D language support Message-Id: <20100421025919.ad3a0830.mihai.zenkov@gmail.com> In-Reply-To: References: <20091224015617.7092112b.mihai.zenkov@gmail.com> <20091230125539.GF2788@adacore.com> <20100109082524.263bcb17.mihai.zenkov@gmail.com> <20100109082830.dd984de8.mihai.zenkov@gmail.com> <20100109142327.GC2007@adacore.com> <20100113064026.14f75ff2.mihai.zenkov@gmail.com> <20100415012124.91ce1769.mihai.zenkov@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Wed__21_Apr_2010_02_59_19_+0300_FE+nS3x84TFL=+v8" 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/msg00665.txt.bz2 This is a multi-part message in MIME format. --Multipart=_Wed__21_Apr_2010_02_59_19_+0300_FE+nS3x84TFL=+v8 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 382 On Tue, 20 Apr 2010 15:39:17 -0600 Tom Tromey wrote: > >>>>> "Mihail" == Mihail Zenkov writes: > > Mihail> Sorry for too very long delay. I fix patch as you and Joel > Mihail> suggested, i hope it ready for inclusion. > > It is very close. In fact, I think I only saw formatting nits. > Thanks for working on this. > Great, fixed. --Multipart=_Wed__21_Apr_2010_02_59_19_+0300_FE+nS3x84TFL=+v8 Content-Type: application/octet-stream; name="gdb-100421-d.patch" Content-Disposition: attachment; filename="gdb-100421-d.patch" Content-Transfer-Encoding: base64 Content-length: 37032 Z2RiL05FV1M6CiogRCBsYW5ndWFnZSBzdXBwb3J0LgogU3VwcG9ydCBmb3Ig ZGVidWdnaW5nIHRoZSBEIHByb2dyYW1taW5nIGxhbmd1YWdlIGhhcyBiZWVu CiBpbnRlZ3JhdGVkIGludG8gR0RCLgpnZGIvQ2hhbmdlTG9nOgoJRCBsYW5n dWFnZSBzdXBwb3J0LgoJKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkIGQt bGFuZy5jIGQtdmFscHJpbnQuYy4KCShDT01NT05fT0JTKTogQWRkIGQtbGFu Zy5vIGQtdmFscHJpbnQuby4KCShIRklMRVNfTk9fU1JDRElSKTogQWRkIGQt bGFuZy5oLgoJKiBjLWxhbmcuYyAoY19lbWl0X2NoYXIsIGV4cF9kZXNjcmlw dG9yX2MpOiBNYWtlIHB1YmxpYy4KCSogYy1sYW5nLmggKGNfZW1pdF9jaGFy LCBleHBfZGVzY3JpcHRvcl9jKTogQWRkIGRlY2xhcmF0aW9uLgoJKiBkLWxh bmcuYzogTmV3IGZpbGUuCgkqIGQtbGFuZy5oOiBOZXcgZmlsZS4KCSogZC12 YWxwcmludC5jOiBOZXcgZmlsZS4KCSogZGVmcy5oIChlbnVtIGxhbmd1YWdl KTogQWRkIGxhbmd1YWdlX2QuCgkqIGR3YXJmMnJlYWQuYyAoc2V0X2N1X2xh bmd1YWdlKTogQWRkIERXX0xBTkdfRC4KCSogbGFuZ3VhZ2UuYyAoYmlub3Bf cmVzdWx0X3R5cGUsIGludGVncmFsX3R5cGUsIGNoYXJhY3Rlcl90eXBlKSAK CShzdHJpbmdfdHlwZSwgYm9vbGVhbl90eXBlLCBzdHJ1Y3R1cmVkX3R5cGUp OiBBZGQgbGFuZ3VhZ2VfZC4KCSogc3ltZmlsZS5jIChpbml0X2ZpbGVuYW1l X2xhbmd1YWdlX3RhYmxlKTogQWRkIGxhbmd1YWdlX2QuCgkqIHN5bXRhYi5j OiBJbmNsdWRlIGQtbGFuZy5oLgoJKHN5bWJvbF9pbml0X2xhbmd1YWdlX3Nw ZWNpZmljLCBzeW1ib2xfZmluZF9kZW1hbmdsZWRfbmFtZSkKCShzeW1ib2xf bmF0dXJhbF9uYW1lLCBsb29rdXBfc3ltYm9sX2luX2xhbmd1YWdlKQoJKHN5 bWJvbF9kZW1hbmdsZWRfbmFtZSwgc3ltYm9sX21hdGNoZXNfZG9tYWluKTog QWRkIGxhbmd1YWdlX2QuCmdkYi9kb2MvQ2hhbmdlTG9nOgoJKiBnZGIudGV4 aW5mbzogQWRkIG1lbnRpb24gYWJvdXQgRCBsYW5ndWFnZSBzdXBwb3J0Lgpn ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCSogZ2RiLmJhc2UvZGVmYXVsdC5l eHA6IEZpeCAic2V0IGxhbmd1YWdlIiB0ZXN0LgpkaWZmIC0tZ2l0IGEvZ2Ri L01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCmluZGV4IGZjMTZmYmYu LjFjNWVhZDIgMTAwNjQ0Ci0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysgYi9n ZGIvTWFrZWZpbGUuaW4KQEAgLTY1Niw2ICs2NTYsNyBAQCBTRklMRVMgPSBh ZGEtZXhwLnkgYWRhLWxhbmcuYyBhZGEtdHlwZXByaW50LmMgYWRhLXZhbHBy aW50LmMgYWRhLXRhc2tzLmMgXAogCWNoYXJzZXQuYyBjbGktb3V0LmMgY29m ZnJlYWQuYyBjb2ZmLXBlLXJlYWQuYyBcCiAJY29tcGxhaW50cy5jIGNvbXBs ZXRlci5jIGNvcmVmaWxlLmMgXAogCWNwLWFiaS5jIGNwLXN1cHBvcnQuYyBj cC1uYW1lc3BhY2UuYyBjcC12YWxwcmludC5jIFwKKwlkLWxhbmcuYyBkLXZh bHByaW50LmMgXAogCWNwLW5hbWUtcGFyc2VyLnkgXAogCWRieHJlYWQuYyBk ZW1hbmdsZS5jIGRpY3Rpb25hcnkuYyBkaXNhc20uYyBkb3VibGVzdC5jIGR1 bW15LWZyYW1lLmMgXAogCWR3YXJmMmV4cHIuYyBkd2FyZjJsb2MuYyBkd2Fy ZjJyZWFkLmMgZHdhcmYyLWZyYW1lLmMgXApAQCAtNzIzLDcgKzcyNCw3IEBA IGNsaS1vdXQuaCBnZGJfZXhwYXQuaCBicmVha3BvaW50LmggaW5mY2FsbC5o IG9ic2QtdGRlcC5oIFwKIGV4ZWMuaCBtMzJyLXRkZXAuaCBvc2FiaS5oIGdk YmNvcmUuaCBzb2xpYi1zb20uaCBcCiBpMzg2YnNkLW5hdC5oIHhtbC1zdXBw b3J0LmggeG1sLXRkZXNjLmggYWxwaGFic2QtdGRlcC5oIGdkYl9vYnN0YWNr LmggXAogaWE2NC10ZGVwLmggYWRhLWxhbmcuaCB2YXJvYmouaCBmcnYtdGRl cC5oIG50by10ZGVwLmggc2VyaWFsLmggXAotYy1sYW5nLmggZnJhbWUuaCBl dmVudC1sb29wLmggYmxvY2suaCBjbGkvY2xpLXNldHNob3cuaAlcCitjLWxh bmcuaCBkLWxhbmcuaCBmcmFtZS5oIGV2ZW50LWxvb3AuaCBibG9jay5oIGNs aS9jbGktc2V0c2hvdy5oCVwKIGNsaS9jbGktZGVjb2RlLmggY2xpL2NsaS1j bWRzLmggY2xpL2NsaS1kdW1wLmggXAogY2xpL2NsaS1zY3JpcHQuaCBtYWNy b3RhYi5oIHN5bXRhYi5oIHZlcnNpb24uaCBnbnVsaWIvd2NoYXIuaW4uaCBc CiBnbnVsaWIvc3RyaW5nLmluLmggZ251bGliL3N0ci10d28td2F5LmggZ251 bGliL2V4dHJhL2xpbmstd2FybmluZy5oIFwKQEAgLTgyOCw3ICs4MjksNyBA QCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZ T0JKKSBcCiAJZGJ4cmVhZC5vIGNvZmZyZWFkLm8gY29mZi1wZS1yZWFkLm8g XAogCWR3YXJmMnJlYWQubyBtaXBzcmVhZC5vIHN0YWJzcmVhZC5vIGNvcmVm aWxlLm8gXAogCWR3YXJmMmV4cHIubyBkd2FyZjJsb2MubyBkd2FyZjItZnJh bWUubyBcCi0JYWRhLWxhbmcubyBjLWxhbmcubyBmLWxhbmcubyBvYmpjLWxh bmcubyBcCisJYWRhLWxhbmcubyBjLWxhbmcubyBkLWxhbmcubyBmLWxhbmcu byBvYmpjLWxhbmcubyBcCiAJYWRhLXRhc2tzLm8gXAogCXVpLW91dC5vIGNs aS1vdXQubyBcCiAJdmFyb2JqLm8gdmVjLm8gd3JhcHBlci5vIFwKQEAgLTgz OCw3ICs4MzksOCBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05G SUdfT0JTKSAkKFlZT0JKKSBcCiAJc2VudGluZWwtZnJhbWUubyBcCiAJY29t cGxhaW50cy5vIHR5cGVwcmludC5vIFwKIAlhZGEtdHlwZXByaW50Lm8gYy10 eXBlcHJpbnQubyBmLXR5cGVwcmludC5vIG0yLXR5cGVwcmludC5vIFwKLQlh ZGEtdmFscHJpbnQubyBjLXZhbHByaW50Lm8gY3AtdmFscHJpbnQubyBmLXZh bHByaW50Lm8gbTItdmFscHJpbnQubyBcCisJYWRhLXZhbHByaW50Lm8gYy12 YWxwcmludC5vIGNwLXZhbHByaW50Lm8gZC12YWxwcmludC5vIGYtdmFscHJp bnQubyBcCisJbTItdmFscHJpbnQubyBcCiAJc2VyaWFsLm8gbWRlYnVncmVh ZC5vIHRvcC5vIHV0aWxzLm8gXAogCXVpLWZpbGUubyBcCiAJdXNlci1yZWdz Lm8gXApkaWZmIC0tZ2l0IGEvZ2RiL2MtbGFuZy5jIGIvZ2RiL2MtbGFuZy5j CmluZGV4IGZlZmQ2NzUuLjgyNWViNGQgMTAwNjQ0Ci0tLSBhL2dkYi9jLWxh bmcuYworKysgYi9nZGIvYy1sYW5nLmMKQEAgLTI1Myw4ICsyNTMsOSBAQCBw cmludF93Y2hhciAoZ2RiX3dpbnRfdCB3LCBjb25zdCBnZGJfYnl0ZSAqb3Jp ZywgaW50IG9yaWdfbGVuLAogICAgc3RyaW5nIHdob3NlIGRlbGltaXRlciBp cyBRVU9URVIuICBOb3RlIHRoYXQgdGhhdCBmb3JtYXQgZm9yIHByaW50aW5n CiAgICBjaGFyYWN0ZXJzIGFuZCBzdHJpbmdzIGlzIGxhbmd1YWdlIHNwZWNp ZmljLiAqLwogCi1zdGF0aWMgdm9pZAotY19lbWl0X2NoYXIgKGludCBjLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHF1b3RlcikKK3ZvaWQKK2NfZW1pdF9jaGFyIChpbnQgYywgc3RydWN0IHR5 cGUgKnR5cGUsCisJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cXVvdGVyKQogewogICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogICBz dHJ1Y3Qgb2JzdGFjayB3Y2hhcl9idWYsIG91dHB1dDsKQEAgLTExMzUsNyAr MTEzNiw3IEBAIGNfbGFuZ3VhZ2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwKICAgbGFpLT5ib29sX3R5cGVfZGVmYXVsdCA9IGJ1aWx0 aW4tPmJ1aWx0aW5faW50OwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV4 cF9kZXNjcmlwdG9yIGV4cF9kZXNjcmlwdG9yX2MgPSAKK2NvbnN0IHN0cnVj dCBleHBfZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9jID0gCiB7CiAgIHBy aW50X3N1YmV4cF9zdGFuZGFyZCwKICAgb3BlcmF0b3JfbGVuZ3RoX3N0YW5k YXJkLApkaWZmIC0tZ2l0IGEvZ2RiL2MtbGFuZy5oIGIvZ2RiL2MtbGFuZy5o CmluZGV4IDQyM2NlZTAuLjQwNGMyMTIgMTAwNjQ0Ci0tLSBhL2dkYi9jLWxh bmcuaAorKysgYi9nZGIvYy1sYW5nLmgKQEAgLTg3LDYgKzg3LDEwIEBAIGV4 dGVybiB2b2lkIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICogc3RyZWFt LCBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwKIGV4dGVybiB2b2lkIGNfbGFuZ3Vh Z2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKIAkJCQkg IHN0cnVjdCBsYW5ndWFnZV9hcmNoX2luZm8gKmxhaSk7CiAKK2V4dGVybiBj b25zdCBzdHJ1Y3QgZXhwX2Rlc2NyaXB0b3IgZXhwX2Rlc2NyaXB0b3JfYzsK KworZXh0ZXJuIHZvaWQgY19lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHF1b3Rlcik7 CisKIC8qIFRoZXNlIGFyZSBpbiBjLXR5cGVwcmludC5jOiAqLwogCiBleHRl cm4gdm9pZCBjX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKiwgc3Ry dWN0IHVpX2ZpbGUgKiwgaW50LCBpbnQpOwpkaWZmIC0tZ2l0IGEvZ2RiL2Qt bGFuZy5jIGIvZ2RiL2QtbGFuZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjFhZTI3YTYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIv ZC1sYW5nLmMKQEAgLTAsMCArMSwyODQgQEAKKy8qIEQgbGFuZ3VhZ2Ugc3Vw cG9ydCByb3V0aW5lcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisg ICBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMDksIDIwMTAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlICJzeW10YWIuaCIK KyNpbmNsdWRlICJsYW5ndWFnZS5oIgorI2luY2x1ZGUgImQtbGFuZy5oIgor I2luY2x1ZGUgImMtbGFuZy5oIgorI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIK KyNpbmNsdWRlICJwYXJzZXItZGVmcy5oIgorI2luY2x1ZGUgImdkYl9vYnN0 YWNrLmgiCisKKyNpbmNsdWRlIDxjdHlwZS5oPgorCisKK3N0YXRpYyBjb25z dCBjaGFyICptYW5nbGVkX3N0cjsKKy8qIFRlbXBvcmFyeSBvYnN0YWNrIHVz ZWQgZm9yIGhvbGRpbmcgc3RyaW5ncy4gICovCitzdGF0aWMgc3RydWN0IG9i c3RhY2sgdGVtcGJ1ZjsKKworLyogRXh0cmFjdCBpZGVudGlmaWVycyBmcm9t IE1BTkdMRURfU1RSIGFuZCBhcHBlbmQgaXQgdG8gVEVNUEJVRi4KKyAgIFJl dHVybiAxIG9uIHN1Y2Nlc3Mgb3IgMCBvbiBmYWlsdXJlLiAgKi8KK3N0YXRp YyBpbnQKK2V4dHJhY3RfaWRlbnRpZmllcnMgKHZvaWQpCit7CisgIGxvbmcg aSA9IDA7CisKKyAgd2hpbGUgKGlzZGlnaXQgKCptYW5nbGVkX3N0cikpCisg ICAgeworICAgICAgaSA9IHN0cnRvbCAobWFuZ2xlZF9zdHIsIE5VTEwsIDEw KTsKKyAgICAgIG1hbmdsZWRfc3RyKys7CisgICAgICBpZiAoaSA8PSAwICAm JiBzdHJsZW4gKG1hbmdsZWRfc3RyKSA8IGkpCisgICAgICAgIHJldHVybiAw OworICAgICAgb2JzdGFja19ncm93ICgmdGVtcGJ1ZiwgbWFuZ2xlZF9zdHIs IGkpOworICAgICAgbWFuZ2xlZF9zdHIgKz0gaTsKKyAgICAgIG9ic3RhY2tf Z3Jvd19zdHIgKCZ0ZW1wYnVmLCAiLiIpOworICAgIH0KKyAgaWYgKCptYW5n bGVkX3N0ciA9PSAnXDAnIHx8IGkgPT0gMCkKKyAgICByZXR1cm4gMDsKKyAg b2JzdGFja19ibGFuayAoJnRlbXBidWYsIC0xKTsKKyAgcmV0dXJuIDE7Cit9 CisKKy8qIEV4dHJhY3QgYW5kIGRlbWFuZ2xlIHR5cGUgZnJvbSBNQU5HTEVE X1NUUiBhbmQgYXBwZW5kIGl0IHRvIFRFTVBCVUYuCisgICBSZXR1cm4gMSBv biBzdWNjZXNzIG9yIDAgb24gZmFpbHVyZS4gICovCitzdGF0aWMgaW50Citl eHRyYWN0X3R5cGVfaW5mbyAodm9pZCkKK3sKKyAgaWYgKCptYW5nbGVkX3N0 ciA9PSAnXDAnKQorICAgIHJldHVybiAwOworICBzd2l0Y2ggKCptYW5nbGVk X3N0cisrKQorICAgIHsKKyAgICAgIGNhc2UgJ0EnOiAvKiBkeW5hbWljIGFy cmF5ICovCisgICAgICBjYXNlICdHJzogLyogc3RhdGljIGFycmF5ICovCisg ICAgICBjYXNlICdIJzogLyogYXNzb2NpYXRpdmUgYXJyYXkgKi8KKwlpZiAo IWV4dHJhY3RfdHlwZV9pbmZvICgpKQorCSAgcmV0dXJuIDA7CisJb2JzdGFj a19ncm93X3N0ciAoJnRlbXBidWYsICJbXSIpOworCXJldHVybiAxOworICAg ICAgY2FzZSAnUCc6IC8qIHBvaW50ZXIgKi8KKwlpZiAoIWV4dHJhY3RfdHlw ZV9pbmZvICgpKQorCSAgcmV0dXJuIDA7CisJb2JzdGFja19ncm93X3N0ciAo JnRlbXBidWYsICIqIik7CisJcmV0dXJuIDE7CisgICAgICBjYXNlICdSJzog LyogcmVmZXJlbmNlICovCisJaWYgKCFleHRyYWN0X3R5cGVfaW5mbyAoKSkK KwkgIHJldHVybiAwOworCW9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAi JiIpOworCXJldHVybiAxOworICAgICAgY2FzZSAnWic6IC8qIHJldHVybiB2 YWx1ZSAqLworCXJldHVybiBleHRyYWN0X3R5cGVfaW5mbyAoKTsKKyAgICAg IGNhc2UgJ0onOiAvKiBvdXQgKi8KKwlvYnN0YWNrX2dyb3dfc3RyICgmdGVt cGJ1ZiwgIm91dCAiKTsKKwlyZXR1cm4gZXh0cmFjdF90eXBlX2luZm8gKCk7 CisgICAgICBjYXNlICdLJzogLyogaW5vdXQgKi8KKwlvYnN0YWNrX2dyb3df c3RyICgmdGVtcGJ1ZiwgImlub3V0ICIpOworCXJldHVybiBleHRyYWN0X3R5 cGVfaW5mbyAoKTsKKyAgICAgIGNhc2UgJ0UnOiAvKiBlbnVtICovCisgICAg ICBjYXNlICdUJzogLyogdHlwZWRlZiAqLworICAgICAgY2FzZSAnRCc6IC8q IGRlbGVnYXRlICovCisgICAgICBjYXNlICdDJzogLyogY2xhc3MgKi8KKyAg ICAgIGNhc2UgJ1MnOiAvKiBzdHJ1Y3QgKi8KKwlyZXR1cm4gZXh0cmFjdF9p ZGVudGlmaWVycyAoKTsKKworICAgICAgLyogYmFzaWMgdHlwZXM6ICovCisg ICAgICBjYXNlICduJzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJu b25lIik7IHJldHVybiAxOworICAgICAgY2FzZSAndic6IG9ic3RhY2tfZ3Jv d19zdHIgKCZ0ZW1wYnVmLCAidm9pZCIpOyByZXR1cm4gMTsKKyAgICAgIGNh c2UgJ2cnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImJ5dGUiKTsg cmV0dXJuIDE7CisgICAgICBjYXNlICdoJzogb2JzdGFja19ncm93X3N0ciAo JnRlbXBidWYsICJ1Ynl0ZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ3Mn OiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgInNob3J0Iik7IHJldHVy biAxOworICAgICAgY2FzZSAndCc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1w YnVmLCAidXNob3J0Iik7IHJldHVybiAxOworICAgICAgY2FzZSAnaSc6IG9i c3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiaW50Iik7IHJldHVybiAxOwor ICAgICAgY2FzZSAnayc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAi dWludCIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2wnOiBvYnN0YWNrX2dy b3dfc3RyICgmdGVtcGJ1ZiwgImxvbmciKTsgcmV0dXJuIDE7CisgICAgICBj YXNlICdtJzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJ1bG9uZyIp OyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2YnOiBvYnN0YWNrX2dyb3dfc3Ry ICgmdGVtcGJ1ZiwgImZsb2F0Iik7IHJldHVybiAxOworICAgICAgY2FzZSAn ZCc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiZG91YmxlIik7IHJl dHVybiAxOworICAgICAgY2FzZSAnZSc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0 ZW1wYnVmLCAicmVhbCIpOyByZXR1cm4gMTsKKworICAgICAgLyogaW1hZ2lu YXJ5IGFuZCBjb21wbGV4OiAqLworICAgICAgY2FzZSAnbyc6IG9ic3RhY2tf Z3Jvd19zdHIgKCZ0ZW1wYnVmLCAiaWZsb2F0Iik7IHJldHVybiAxOworICAg ICAgY2FzZSAncCc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiaWRv dWJsZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2onOiBvYnN0YWNrX2dy b3dfc3RyICgmdGVtcGJ1ZiwgImlyZWFsIik7IHJldHVybiAxOworICAgICAg Y2FzZSAncSc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiY2Zsb2F0 Iik7IHJldHVybiAxOworICAgICAgY2FzZSAncic6IG9ic3RhY2tfZ3Jvd19z dHIgKCZ0ZW1wYnVmLCAiY2RvdWJsZSIpOyByZXR1cm4gMTsKKyAgICAgIGNh c2UgJ2MnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImNyZWFsIik7 IHJldHVybiAxOworCisgICAgICAvKiBvdGhlciB0eXBlczogKi8KKyAgICAg IGNhc2UgJ2InOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImJpdCIp OyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2EnOiBvYnN0YWNrX2dyb3dfc3Ry ICgmdGVtcGJ1ZiwgImNoYXIiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICd1 Jzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJ3Y2hhciIpOyByZXR1 cm4gMTsKKyAgICAgIGNhc2UgJ3cnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVt cGJ1ZiwgImRjaGFyIik7IHJldHVybiAxOworCisgICAgICBkZWZhdWx0Ogor CW9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAidW5rbm93biIpOworCXJl dHVybiAxOworICAgIH0KK30KKworLyogSW1wbGVtZW50cyB0aGUgbGFfZGVt YW5nbGUgbGFuZ3VhZ2VfZGVmbiByb3V0aW5lIGZvciBsYW5ndWFnZSBELiAg Ki8KK2NoYXIgKgorZF9kZW1hbmdsZSAoY29uc3QgY2hhciogc3ltYm9sLCBp bnQgb3B0aW9ucykKK3sKKyAgY2hhciogb3V0X3N0cjsKKyAgdW5zaWduZWQg Y2hhciBpc19mdW5jID0gMDsKKworICBtYW5nbGVkX3N0ciA9IHN5bWJvbDsK KworICBpZiAobWFuZ2xlZF9zdHIgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVM TDsKKyAgZWxzZSBpZiAoc3RyY21wIChtYW5nbGVkX3N0ciwgIl9EbWFpbiIp ID09IDApCisgICAgcmV0dXJuIHhzdHJkdXAgKCJEIG1haW4iKTsKKworICBv YnN0YWNrX2luaXQgKCZ0ZW1wYnVmKTsKKyAgCisgIGlmIChtYW5nbGVkX3N0 clswXSA9PSAnXycgJiYgbWFuZ2xlZF9zdHJbMV0gPT0gJ0QnKQorICAgIHsK KyAgICAgIG1hbmdsZWRfc3RyICs9IDI7CisgICAgICBpc19mdW5jID0gMTsK KyAgICB9CisgICAgZWxzZSBpZiAoc3RybmNtcCAobWFuZ2xlZF9zdHIsICJf X0NsYXNzXyIsIDgpID09IDApCisgICAgICBtYW5nbGVkX3N0ciArPSA4Owor ICAgIGVsc2UgaWYgKHN0cm5jbXAgKG1hbmdsZWRfc3RyLCAiX19pbml0XyIs IDcpID09IDApCisgICAgICBtYW5nbGVkX3N0ciArPSA3OworICAgIGVsc2Ug aWYgKHN0cm5jbXAgKG1hbmdsZWRfc3RyLCAiX192dGJsXyIsIDcpID09IDAp CisgICAgICBtYW5nbGVkX3N0ciArPSA3OworICAgIGVsc2UgaWYgKHN0cm5j bXAgKG1hbmdsZWRfc3RyLCAiX19tb2RjdG9yXyIsIDEwKSA9PSAwKQorICAg ICAgbWFuZ2xlZF9zdHIgKz0gMTA7CisgICAgZWxzZSBpZiAoc3RybmNtcCAo bWFuZ2xlZF9zdHIsICJfX21vZGR0b3JfIiwgMTApID09IDApCisgICAgICBt YW5nbGVkX3N0ciArPSAxMDsKKyAgICBlbHNlIGlmIChzdHJuY21wIChtYW5n bGVkX3N0ciwgIl9fTW9kdWxlSW5mb18iLCAxMykgPT0gMCkKKyAgICAgIG1h bmdsZWRfc3RyICs9IDEzOworICAgIGVsc2UKKyAgICAgIHsKKwlvYnN0YWNr X2ZyZWUgKCZ0ZW1wYnVmLCBOVUxMKTsKKwlyZXR1cm4gTlVMTDsKKyAgICAg IH0KKyAgCisgIGlmICghZXh0cmFjdF9pZGVudGlmaWVycyAoKSkKKyAgICB7 CisgICAgICBvYnN0YWNrX2ZyZWUgKCZ0ZW1wYnVmLCBOVUxMKTsKKyAgICAg IHJldHVybiBOVUxMOworICAgIH0KKworICBvYnN0YWNrX2dyb3dfc3RyICgm dGVtcGJ1ZiwgIigiKTsKKyAgaWYgKGlzX2Z1bmMgPT0gMSAmJiAqbWFuZ2xl ZF9zdHIgPT0gJ0YnKQorICAgIHsKKyAgICAgIG1hbmdsZWRfc3RyKys7Cisg ICAgICB3aGlsZSAoKm1hbmdsZWRfc3RyICE9ICdcMCcgJiYgKm1hbmdsZWRf c3RyICE9ICdaJykKKwl7CisJICBpZiAoaXNfZnVuYyA9PSAxKQorCSAgICBp c19mdW5jKys7CisJICBlbHNlCisJICAgIG9ic3RhY2tfZ3Jvd19zdHIgKCZ0 ZW1wYnVmLCAiLCAiKTsKKwkgIGlmICghZXh0cmFjdF90eXBlX2luZm8gKCkp CisJICAgIHsKKwkgICAgICBvYnN0YWNrX2ZyZWUgKCZ0ZW1wYnVmLCBOVUxM KTsKKwkgICAgICByZXR1cm4gTlVMTDsKKwkgICB9CisJfQorICAgICB9Cisg IG9ic3RhY2tfZ3Jvd19zdHIwICgmdGVtcGJ1ZiwgIikiKTsKKworICAvKiBE b2Vzbid0IGRpc3BsYXkgdGhlIHJldHVybiB0eXBlLCBidXQgd291bGRuJ3Qg YmUgdG9vIGhhcmQgdG8gZG8uICAqLworCisgIG91dF9zdHIgPSB4c3RyZHVw IChvYnN0YWNrX2ZpbmlzaCAoJnRlbXBidWYpKTsKKyAgb2JzdGFja19mcmVl ICgmdGVtcGJ1ZiwgTlVMTCk7CisgIHJldHVybiBvdXRfc3RyOworfQorCisv KiBUYWJsZSBtYXBwaW5nIG9wY29kZXMgaW50byBzdHJpbmdzIGZvciBwcmlu dGluZyBvcGVyYXRvcnMKKyAgIGFuZCBwcmVjZWRlbmNlcyBvZiB0aGUgb3Bl cmF0b3JzLiAgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb3BfcHJpbnQgZF9v cF9wcmludF90YWJbXSA9Cit7CisgIHsiLCIsIEJJTk9QX0NPTU1BLCBQUkVD X0NPTU1BLCAwfSwKKyAgeyI9IiwgQklOT1BfQVNTSUdOLCBQUkVDX0FTU0lH TiwgMX0sCisgIHsifHwiLCBCSU5PUF9MT0dJQ0FMX09SLCBQUkVDX0xPR0lD QUxfT1IsIDB9LAorICB7IiYmIiwgQklOT1BfTE9HSUNBTF9BTkQsIFBSRUNf TE9HSUNBTF9BTkQsIDB9LAorICB7InwiLCBCSU5PUF9CSVRXSVNFX0lPUiwg UFJFQ19CSVRXSVNFX0lPUiwgMH0sCisgIHsiXiIsIEJJTk9QX0JJVFdJU0Vf WE9SLCBQUkVDX0JJVFdJU0VfWE9SLCAwfSwKKyAgeyImIiwgQklOT1BfQklU V0lTRV9BTkQsIFBSRUNfQklUV0lTRV9BTkQsIDB9LAorICB7Ij09IiwgQklO T1BfRVFVQUwsIFBSRUNfRVFVQUwsIDB9LAorICB7IiE9IiwgQklOT1BfTk9U RVFVQUwsIFBSRUNfRVFVQUwsIDB9LAorICB7Ijw9IiwgQklOT1BfTEVRLCBQ UkVDX09SREVSLCAwfSwKKyAgeyI+PSIsIEJJTk9QX0dFUSwgUFJFQ19PUkRF UiwgMH0sCisgIHsiPiIsIEJJTk9QX0dUUiwgUFJFQ19PUkRFUiwgMH0sCisg IHsiPCIsIEJJTk9QX0xFU1MsIFBSRUNfT1JERVIsIDB9LAorICB7Ij4+Iiwg QklOT1BfUlNILCBQUkVDX1NISUZULCAwfSwKKyAgeyI8PCIsIEJJTk9QX0xT SCwgUFJFQ19TSElGVCwgMH0sCisgIHsiKyIsIEJJTk9QX0FERCwgUFJFQ19B REQsIDB9LAorICB7Ii0iLCBCSU5PUF9TVUIsIFBSRUNfQURELCAwfSwKKyAg eyIqIiwgQklOT1BfTVVMLCBQUkVDX01VTCwgMH0sCisgIHsiLyIsIEJJTk9Q X0RJViwgUFJFQ19NVUwsIDB9LAorICB7IiUiLCBCSU5PUF9SRU0sIFBSRUNf TVVMLCAwfSwKKyAgeyJAIiwgQklOT1BfUkVQRUFULCBQUkVDX1JFUEVBVCwg MH0sCisgIHsiLSIsIFVOT1BfTkVHLCBQUkVDX1BSRUZJWCwgMH0sCisgIHsi ISIsIFVOT1BfTE9HSUNBTF9OT1QsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyJ+ IiwgVU5PUF9DT01QTEVNRU5ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHsiKiIs IFVOT1BfSU5ELCBQUkVDX1BSRUZJWCwgMH0sCisgIHsiJiIsIFVOT1BfQURE UiwgUFJFQ19QUkVGSVgsIDB9LAorICB7InNpemVvZiAiLCBVTk9QX1NJWkVP RiwgUFJFQ19QUkVGSVgsIDB9LAorICB7IisrIiwgVU5PUF9QUkVJTkNSRU1F TlQsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyItLSIsIFVOT1BfUFJFREVDUkVN RU5ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHtOVUxMLCAwLCAwLCAwfQorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuIGRfbGFuZ3Vh Z2VfZGVmbiA9Cit7CisgICJkIiwKKyAgbGFuZ3VhZ2VfZCwKKyAgcmFuZ2Vf Y2hlY2tfb2ZmLAorICB0eXBlX2NoZWNrX29mZiwKKyAgY2FzZV9zZW5zaXRp dmVfb24sCisgIGFycmF5X3Jvd19tYWpvciwKKyAgbWFjcm9fZXhwYW5zaW9u X2MsCisgICZleHBfZGVzY3JpcHRvcl9jLAorICBjX3BhcnNlLAorICBjX2Vy cm9yLAorICBudWxsX3Bvc3RfcGFyc2VyLAorICBjX3ByaW50Y2hhciwJCQkv KiBQcmludCBhIGNoYXJhY3RlciBjb25zdGFudC4gICovCisgIGNfcHJpbnRz dHIsCQkJLyogRnVuY3Rpb24gdG8gcHJpbnQgc3RyaW5nIGNvbnN0YW50LiAg Ki8KKyAgY19lbWl0X2NoYXIsCQkJLyogUHJpbnQgYSBzaW5nbGUgY2hhci4g ICovCisgIGNfcHJpbnRfdHlwZSwJCQkvKiBQcmludCBhIHR5cGUgdXNpbmcg YXBwcm9wcmlhdGUgc3ludGF4LiAgKi8KKyAgY19wcmludF90eXBlZGVmLAkJ LyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheC4g ICovCisgIGRfdmFsX3ByaW50LAkJCS8qIFByaW50IGEgdmFsdWUgdXNpbmcg YXBwcm9wcmlhdGUgc3ludGF4LiAgKi8KKyAgY192YWx1ZV9wcmludCwJCS8q IFByaW50IGEgdG9wLWxldmVsIHZhbHVlLiAgKi8KKyAgTlVMTCwJCQkJLyog TGFuZ3VhZ2Ugc3BlY2lmaWMgc2tpcF90cmFtcG9saW5lLiAgKi8KKyAgInRo aXMiLAorICBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxvY2FsLCAKKyAgYmFz aWNfbG9va3VwX3RyYW5zcGFyZW50X3R5cGUsCisgIGRfZGVtYW5nbGUsCQkJ LyogTGFuZ3VhZ2Ugc3BlY2lmaWMgc3ltYm9sIGRlbWFuZ2xlci4gICovCisg IE5VTEwsCQkJCS8qIExhbmd1YWdlIHNwZWNpZmljIGNsYXNzX25hbWVfZnJv bV9waHlzbmFtZS4gICovCisgIGRfb3BfcHJpbnRfdGFiLAkJLyogRXhwcmVz c2lvbiBvcGVyYXRvcnMgZm9yIHByaW50aW5nLiAgKi8KKyAgMSwJCQkJLyog Qy1zdHlsZSBhcnJheXMuICAqLworICAwLAkJCQkvKiBTdHJpbmcgbG93ZXIg Ym91bmQuICAqLworICBkZWZhdWx0X3dvcmRfYnJlYWtfY2hhcmFjdGVycywK KyAgZGVmYXVsdF9tYWtlX3N5bWJvbF9jb21wbGV0aW9uX2xpc3QsCisgIGNf bGFuZ3VhZ2VfYXJjaF9pbmZvLAorICBkZWZhdWx0X3ByaW50X2FycmF5X2lu ZGV4LAorICBkZWZhdWx0X3Bhc3NfYnlfcmVmZXJlbmNlLAorICBjX2dldF9z dHJpbmcsCisgIExBTkdfTUFHSUMKK307CisKK3ZvaWQKK19pbml0aWFsaXpl X2RfbGFuZ3VhZ2UgKHZvaWQpCit7CisgIGFkZF9sYW5ndWFnZSAoJmRfbGFu Z3VhZ2VfZGVmbik7Cit9CmRpZmYgLS1naXQgYS9nZGIvZC1sYW5nLmggYi9n ZGIvZC1sYW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMGRlZTgxZAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi9kLWxhbmcuaApA QCAtMCwwICsxLDMyIEBACisvKiBEIGxhbmd1YWdlIHN1cHBvcnQgZGVmaW5p dGlvbnMgZm9yIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29weXJp Z2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHREIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNp ZiAhZGVmaW5lZCAoRF9MQU5HX0gpCisjZGVmaW5lIERfTEFOR19IIDEKKwor I2luY2x1ZGUgInN5bXRhYi5oIgorCitleHRlcm4gY2hhciogZF9kZW1hbmds ZSAoY29uc3QgY2hhciogbWFuZ2xlZCwgaW50IG9wdGlvbnMpOworCitleHRl cm4gaW50IGRfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCisJCQlpbnQgZW1iZWRkZWRfb2Zmc2V0LCBD T1JFX0FERFIgYWRkcmVzcywKKwkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0s IGludCByZWN1cnNlLAorCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpOworCisjZW5kaWYgLyogIWRlZmluZWQgKERfTEFO R19IKSAqLwpkaWZmIC0tZ2l0IGEvZ2RiL2QtdmFscHJpbnQuYyBiL2dkYi9k LXZhbHByaW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNjdiMzJiNwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi9kLXZhbHByaW50 LmMKQEAgLTAsMCArMSw5MSBAQAorLyogU3VwcG9ydCBmb3IgcHJpbnRpbmcg RCB2YWx1ZXMgZm9yIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29w eXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIu CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlICJk ZWZzLmgiCisjaW5jbHVkZSAiZ2RidHlwZXMuaCIKKyNpbmNsdWRlICJnZGJj b3JlLmgiCisjaW5jbHVkZSAiZC1sYW5nLmgiCisjaW5jbHVkZSAiYy1sYW5n LmgiCisKKy8qIEFzc3VtaW5nIHRoYXQgVFlQRSBpcyBhIFRZUEVfQ09ERV9T VFJVQ1QsIHZlcmlmeSB0aGF0IFRZUEUgaXMKKyAgIGEgZHluYW1pYyBhcnJh eSwgYW5kIHRoZW4gcHJpbnQgaXRzIHZhbHVlIHRvIFNUUkVBTS4gIFJldHVy bgorICAgdGhlIG51bWJlciBvZiBzdHJpbmcgY2hhcmFjdGVycyBwcmludGVk LCBvciAtMSBpZiBUWVBFIGlzIG5vdAorICAgYSBkeW5hbWljIGFycmF5LiAg Ki8KK3N0YXRpYyBpbnQKK2R5bmFtaWNfYXJyYXlfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorCQkgICAgaW50 IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisJCSAgICBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKwkJICAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQorewor ICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAyCisgICAgICAmJiBUWVBF X0NPREUgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgMCkpID09IFRZUEVfQ09E RV9JTlQKKyAgICAgICYmIHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBl LCAwKSwgImxlbmd0aCIpID09IDAKKyAgICAgICYmIHN0cmNtcCAoVFlQRV9G SUVMRF9OQU1FICh0eXBlLCAxKSwgInB0ciIpID09IDApCisgICAgeworICAg ICAgQ09SRV9BRERSIGFkZHI7CisgICAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlw ZTsKKyAgICAgIHN0cnVjdCB0eXBlICp0cnVlX3R5cGU7CisgICAgICBzdHJ1 Y3QgdHlwZSAqcHRyX3R5cGU7CisgICAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2Vf dHlwZTsKKyAgICAgIGNvbnN0IGdkYl9ieXRlICpwdHJhZGRyOworICAgICAg c3RydWN0IHZhbHVlICp2YWw7CisgICAgICBpbnQgbGVuZ3RoOworCisgICAg ICBsZW5ndGggPSB1bnBhY2tfZmllbGRfYXNfbG9uZyAodHlwZSwgdmFsYWRk ciArIGVtYmVkZGVkX29mZnNldCwgMCk7CisKKyAgICAgIHB0cl90eXBlID0g VFlQRV9GSUVMRF9UWVBFICh0eXBlLCAxKTsKKyAgICAgIGVsdHR5cGUgPSBj aGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChwdHJfdHlwZSkpOwor ICAgICAgYWRkciA9IHVucGFja19wb2ludGVyIChwdHJfdHlwZSwKKwkJCSAg ICAgdmFsYWRkciArIFRZUEVfRklFTERfQklUUE9TICh0eXBlLCAxKSAvIDgK KwkJCSAgICAgKyBlbWJlZGRlZF9vZmZzZXQpOworICAgICAgdHJ1ZV90eXBl ID0gY2hlY2tfdHlwZWRlZiAoZWx0dHlwZSk7CisKKyAgICAgIHRydWVfdHlw ZSA9IGxvb2t1cF9hcnJheV9yYW5nZV90eXBlICh0cnVlX3R5cGUsIDAsIGxl bmd0aCAtIDEpOworICAgICAgdmFsID0gdmFsdWVfYXQgKHRydWVfdHlwZSwg YWRkcik7CisgICAgICBwdHJhZGRyID0gdmFsdWVfY29udGVudHMgKHZhbCk7 CisKKyAgICAgIHJldHVybiBkX3ZhbF9wcmludCAodHJ1ZV90eXBlLCBwdHJh ZGRyLCAwLCBhZGRyLCBzdHJlYW0sIHJlY3Vyc2UgKyAxLAorCQkJICBvcHRp b25zKTsKKyAgICB9CisgIHJldHVybiAtMTsKK30KKworLyogSW1wbGVtZW50 cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRpbmUgZm9yIGxhbmd1YWdlIEQuICAq LworaW50CitkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorICAg ICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKK3sKKyAgaW50IHJl dDsKKworICBDSEVDS19UWVBFREVGICh0eXBlKTsKKyAgc3dpdGNoIChUWVBF X0NPREUgKHR5cGUpKQorICAgIHsKKyAgICAgIGNhc2UgVFlQRV9DT0RFX1NU UlVDVDoKKyAgICAgICAgcmV0ID0gZHluYW1pY19hcnJheV90eXBlICh0eXBl LCB2YWxhZGRyLCBlbWJlZGRlZF9vZmZzZXQsIGFkZHJlc3MsCisJCQkJICBz dHJlYW0sIHJlY3Vyc2UsIG9wdGlvbnMpOworCWlmIChyZXQgIT0gLTEpCisJ ICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorCXJldCA9IGNfdmFsX3ByaW50 ICh0eXBlLCB2YWxhZGRyLCBlbWJlZGRlZF9vZmZzZXQsIGFkZHJlc3MsIHN0 cmVhbSwKKwkJCSAgIHJlY3Vyc2UsIG9wdGlvbnMpOworICAgIH0KKworICBy ZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvZ2RiL2RlZnMuaCBiL2dkYi9k ZWZzLmgKaW5kZXggZThhMWRkNC4uZDRhOWIxOSAxMDA2NDQKLS0tIGEvZ2Ri L2RlZnMuaAorKysgYi9nZGIvZGVmcy5oCkBAIC0xODgsNiArMTg4LDcgQEAg ZW51bSBsYW5ndWFnZQogICAgIGxhbmd1YWdlX2F1dG8sCQkvKiBQbGFjZWhv bGRlciBmb3IgYXV0b21hdGljIHNldHRpbmcgKi8KICAgICBsYW5ndWFnZV9j LAkJCS8qIEMgKi8KICAgICBsYW5ndWFnZV9jcGx1cywJCS8qIEMrKyAqLwor ICAgIGxhbmd1YWdlX2QsCQkJLyogRCAqLwogICAgIGxhbmd1YWdlX29iamMs CQkvKiBPYmplY3RpdmUtQyAqLwogICAgIGxhbmd1YWdlX2phdmEsCQkvKiBK YXZhICovCiAgICAgbGFuZ3VhZ2VfZm9ydHJhbiwJCS8qIEZvcnRyYW4gKi8K ZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCmluZGV4IDA5MjQ0MzAuLjBmYzJkNDUgMTAwNjQ0Ci0tLSBh L2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5m bwpAQCAtMjE0LDYgKzIxNCwxMCBAQCBZb3UgY2FuIHVzZSBAdmFsdWV7R0RC Tn0gdG8gZGVidWcgcHJvZ3JhbXMgd3JpdHRlbiBpbiBDIGFuZCBDQHR7Kyt9 LgogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBAcmVme1N1cHBvcnRlZCBM YW5ndWFnZXMsLFN1cHBvcnRlZCBMYW5ndWFnZXN9LgogRm9yIG1vcmUgaW5m b3JtYXRpb24sIHNlZSBAcmVme0MsLEMgYW5kIEMrK30uCiAKK0BjaW5kZXgg RAorU3VwcG9ydCBmb3IgRCBpcyBwYXJ0aWFsLiAgRm9yIGluZm9ybWF0aW9u IG9uIEQsIHNlZQorQHJlZntELCxEfS4KKwogQGNpbmRleCBNb2R1bGEtMgog U3VwcG9ydCBmb3IgTW9kdWxhLTIgaXMgcGFydGlhbC4gIEZvciBpbmZvcm1h dGlvbiBvbiBNb2R1bGEtMiwgc2VlCiBAcmVme01vZHVsYS0yLCxNb2R1bGEt Mn0uCkBAIC0xMDc2OCw2ICsxMDc3Miw5IEBAIEMgc291cmNlIGZpbGUKIEBp dGVteCAuYysrCiBDQHR7Kyt9IHNvdXJjZSBmaWxlCiAKK0BpdGVtIC5kCitE IHNvdXJjZSBmaWxlCisKIEBpdGVtIC5tCiBPYmplY3RpdmUtQyBzb3VyY2Ug ZmlsZQogCkBAIC0xMTA0NSw3ICsxMTA1Miw3IEBAIGJlaW5nIHNldCBhdXRv bWF0aWNhbGx5IGJ5IEB2YWx1ZXtHREJOfS4KIEBub2RlIFN1cHBvcnRlZCBM YW5ndWFnZXMKIEBzZWN0aW9uIFN1cHBvcnRlZCBMYW5ndWFnZXMKIAotQHZh bHVle0dEQk59IHN1cHBvcnRzIEMsIENAdHsrK30sIE9iamVjdGl2ZS1DLCBG b3J0cmFuLCBKYXZhLCBQYXNjYWwsCitAdmFsdWV7R0RCTn0gc3VwcG9ydHMg QywgQ0B0eysrfSwgRCwgT2JqZWN0aXZlLUMsIEZvcnRyYW4sIEphdmEsIFBh c2NhbCwKIGFzc2VtYmx5LCBNb2R1bGEtMiwgYW5kIEFkYS4KIEBjIFRoaXMg aXMgZmFsc2UgLi4uCiBTb21lIEB2YWx1ZXtHREJOfSBmZWF0dXJlcyBtYXkg YmUgdXNlZCBpbiBleHByZXNzaW9ucyByZWdhcmRsZXNzIG9mIHRoZQpAQCAt MTEwNjQsNiArMTEwNzEsNyBAQCBsYW5ndWFnZSByZWZlcmVuY2Ugb3IgdHV0 b3JpYWwuCiAKIEBtZW51CiAqIEM6OiAgICAgICAgICAgICAgICAgICAgICAg ICAgIEMgYW5kIENAdHsrK30KKyogRDo6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgRAogKiBPYmplY3RpdmUtQzo6ICAgICAgICAgICAgICAgICBPYmpl Y3RpdmUtQwogKiBGb3J0cmFuOjogICAgICAgICAgICAgICAgICAgICBGb3J0 cmFuCiAqIFBhc2NhbDo6ICAgICAgICAgICAgICAgICAgICAgIFBhc2NhbApA QCAtMTE2MDEsNiArMTE2MDksMTQgQEAgSW4gdGhlIFBvd2VyUEMgYXJjaGl0 ZWN0dXJlLCBAdmFsdWV7R0RCTn0gcHJvdmlkZXMgYSBzZXQgb2YgcHNldWRv LXJlZ2lzdGVycwogdG8gaW5zcGVjdCBAY29kZXtfRGVjaW1hbDEyOH0gdmFs dWVzIHN0b3JlZCBpbiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCiBTZWUg QHJlZntQb3dlclBDLCxQb3dlclBDfSBmb3IgbW9yZSBkZXRhaWxzLgogCitA bm9kZSBECitAc3Vic2VjdGlvbiBECisKK0BjaW5kZXggRAorQHZhbHVle0dE Qk59IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHByb2dyYW1zIHdyaXR0ZW4gaW4g RCBhbmQgY29tcGlsZWQgd2l0aAorR0RDLCBMREMgb3IgRE1ELiBDdXJyZW50 bHkgQHZhbHVle0dEQk59IHN1cHBvcnRzIG9ubHkgb25lIEQgc3BlY2lmaWMK K2ZlYXR1cmUgLSBkeW5hbWljIGFycmF5cy4KKwogQG5vZGUgT2JqZWN0aXZl LUMKIEBzdWJzZWN0aW9uIE9iamVjdGl2ZS1DCiAKZGlmZiAtLWdpdCBhL2dk Yi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCmluZGV4IDMwOTZh YjcuLmY0Y2JjNTkgMTAwNjQ0Ci0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKKysr IGIvZ2RiL2R3YXJmMnJlYWQuYwpAQCAtNzYxOSw2ICs3NjE5LDkgQEAgc2V0 X2N1X2xhbmd1YWdlICh1bnNpZ25lZCBpbnQgbGFuZywgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICAgY2FzZSBEV19MQU5HX0NfcGx1c19wbHVzOgogICAg ICAgY3UtPmxhbmd1YWdlID0gbGFuZ3VhZ2VfY3BsdXM7CiAgICAgICBicmVh azsKKyAgICBjYXNlIERXX0xBTkdfRDoKKyAgICAgIGN1LT5sYW5ndWFnZSA9 IGxhbmd1YWdlX2Q7CisgICAgICBicmVhazsKICAgICBjYXNlIERXX0xBTkdf Rm9ydHJhbjc3OgogICAgIGNhc2UgRFdfTEFOR19Gb3J0cmFuOTA6CiAgICAg Y2FzZSBEV19MQU5HX0ZvcnRyYW45NToKZGlmZiAtLWdpdCBhL2dkYi9sYW5n dWFnZS5jIGIvZ2RiL2xhbmd1YWdlLmMKaW5kZXggZGNkNzBiMC4uYWJhOGE5 ZSAxMDA2NDQKLS0tIGEvZ2RiL2xhbmd1YWdlLmMKKysrIGIvZ2RiL2xhbmd1 YWdlLmMKQEAgLTQ4Niw2ICs0ODYsNyBAQCBiaW5vcF9yZXN1bHRfdHlwZSAo c3RydWN0IHZhbHVlICp2MSwgc3RydWN0IHZhbHVlICp2MikKICAgICB7CiAg ICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6 CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2Jq YzoKICAgICAgIGlmIChUWVBFX0NPREUgKHQxKSA9PSBUWVBFX0NPREVfRkxU KQogCXJldHVybiBUWVBFX0NPREUgKHQyKSA9PSBUWVBFX0NPREVfRkxUICYm IGwyID4gbDEgPwpAQCAtNTk3LDYgKzU5OCw3IEBAIGludGVncmFsX3R5cGUg KHN0cnVjdCB0eXBlICp0eXBlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdl X2M6CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1 YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgcmV0dXJu IChUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9JTlQpICYmCiAJKFRZ UEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX0VOVU0pID8gMCA6IDE7CkBA IC02MzcsNiArNjM5LDcgQEAgY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlKQogCiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFu Z3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2Ug bGFuZ3VhZ2Vfb2JqYzoKICAgICAgIHJldHVybiAoVFlQRV9DT0RFICh0eXBl KSA9PSBUWVBFX0NPREVfSU5UKSAmJgogCVRZUEVfTEVOR1RIICh0eXBlKSA9 PSBzaXplb2YgKGNoYXIpCkBAIC02NTksNiArNjYyLDcgQEAgc3RyaW5nX3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlKQogCiAgICAgY2FzZSBsYW5ndWFnZV9j OgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFn ZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIC8qIEMgZG9l cyBub3QgaGF2ZSBkaXN0aW5jdCBzdHJpbmcgdHlwZS4gKi8KICAgICAgIHJl dHVybiAoMCk7CkBAIC02NzgsNiArNjgyLDcgQEAgYm9vbGVhbl90eXBlIChz dHJ1Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAgICAgY2FzZSBsYW5ndWFnZV9j OgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFn ZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIC8qIE1pZ2h0 IGJlIG1vcmUgY2xlYW5seSBoYW5kbGVkIGJ5IGhhdmluZyBhCiAgICAgICAg ICBUWVBFX0NPREVfSU5UX05PVF9CT09MIGZvciAodGhlIGRlbGV0ZWQpIENI SUxMIGFuZCBzdWNoCkBAIC03MTcsNiArNzIyLDcgQEAgc3RydWN0dXJlZF90 eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAgICAgY2FzZSBsYW5n dWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBs YW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIHJl dHVybiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSVUNUKSB8 fAogCShUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9VTklPTikgfHwK ZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmMgYi9nZGIvc3ltZmlsZS5jCmlu ZGV4IGVkYTI2Y2MuLmNmN2I0MWEgMTAwNjQ0Ci0tLSBhL2dkYi9zeW1maWxl LmMKKysrIGIvZ2RiL3N5bWZpbGUuYwpAQCAtMjYxOCw2ICsyNjE4LDcgQEAg aW5pdF9maWxlbmFtZV9sYW5ndWFnZV90YWJsZSAodm9pZCkKICAgICAgIGZp bGVuYW1lX2xhbmd1YWdlX3RhYmxlID0KIAl4bWFsbG9jIChmbF90YWJsZV9z aXplICogc2l6ZW9mICgqZmlsZW5hbWVfbGFuZ3VhZ2VfdGFibGUpKTsKICAg ICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAoIi5jIiwgbGFuZ3VhZ2VfYyk7 CisgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuZCIsIGxhbmd1YWdl X2QpOwogICAgICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdlICgiLkMiLCBsYW5n dWFnZV9jcGx1cyk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIu Y2MiLCBsYW5ndWFnZV9jcGx1cyk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFu Z3VhZ2UgKCIuY3AiLCBsYW5ndWFnZV9jcGx1cyk7CmRpZmYgLS1naXQgYS9n ZGIvc3ltdGFiLmMgYi9nZGIvc3ltdGFiLmMKaW5kZXggMjkxNDJkYS4uYzJj YWI5NiAxMDA2NDQKLS0tIGEvZ2RiL3N5bXRhYi5jCisrKyBiL2dkYi9zeW10 YWIuYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgInNvdXJjZS5oIgog I2luY2x1ZGUgImZpbGVuYW1lcy5oIgkJLyogZm9yIEZJTEVOQU1FX0NNUCAq LwogI2luY2x1ZGUgIm9iamMtbGFuZy5oIgorI2luY2x1ZGUgImQtbGFuZy5o IgogI2luY2x1ZGUgImFkYS1sYW5nLmgiCiAjaW5jbHVkZSAicC1sYW5nLmgi CiAjaW5jbHVkZSAiYWRkcm1hcC5oIgpAQCAtMzQ2LDYgKzM0Nyw3IEBAIHN5 bWJvbF9pbml0X2xhbmd1YWdlX3NwZWNpZmljIChzdHJ1Y3QgZ2VuZXJhbF9z eW1ib2xfaW5mbyAqZ3N5bWJvbCwKIHsKICAgZ3N5bWJvbC0+bGFuZ3VhZ2Ug PSBsYW5ndWFnZTsKICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1 YWdlX2NwbHVzCisgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5n dWFnZV9kCiAgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFn ZV9qYXZhCiAgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFn ZV9vYmpjKQogICAgIHsKQEAgLTQ0OSw2ICs0NTEsMTcgQEAgc3ltYm9sX2Zp bmRfZGVtYW5nbGVkX25hbWUgKHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZv ICpnc3ltYm9sLAogCSAgcmV0dXJuIGRlbWFuZ2xlZDsKIAl9CiAgICAgfQor ICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZAorICAgICAg fHwgZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfYXV0bykKKyAgICB7 CisgICAgICBkZW1hbmdsZWQgPQorCWRfZGVtYW5nbGUobWFuZ2xlZCwgMCk7 CisgICAgICBpZiAoZGVtYW5nbGVkICE9IE5VTEwpCisJeworCSAgZ3N5bWJv bC0+bGFuZ3VhZ2UgPSBsYW5ndWFnZV9kOworCSAgcmV0dXJuIGRlbWFuZ2xl ZDsKKwl9CisgICAgfQogICByZXR1cm4gTlVMTDsKIH0KIApAQCAtNjI2LDYg KzYzOSw3IEBAIHN5bWJvbF9uYXR1cmFsX25hbWUgKGNvbnN0IHN0cnVjdCBn ZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9sKQogICBzd2l0Y2ggKGdzeW1i b2wtPmxhbmd1YWdlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVz OgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX2ph dmE6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgaWYgKGdzeW1i b2wtPmxhbmd1YWdlX3NwZWNpZmljLmNwbHVzX3NwZWNpZmljLmRlbWFuZ2xl ZF9uYW1lICE9IE5VTEwpCkBAIC02NTEsNiArNjY1LDcgQEAgc3ltYm9sX2Rl bWFuZ2xlZF9uYW1lIChjb25zdCBzdHJ1Y3QgZ2VuZXJhbF9zeW1ib2xfaW5m byAqZ3N5bWJvbCkKICAgc3dpdGNoIChnc3ltYm9sLT5sYW5ndWFnZSkKICAg ICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1 YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9qYXZhOgogICAgIGNhc2UgbGFu Z3VhZ2Vfb2JqYzoKICAgICAgIGlmIChnc3ltYm9sLT5sYW5ndWFnZV9zcGVj aWZpYy5jcGx1c19zcGVjaWZpYy5kZW1hbmdsZWRfbmFtZSAhPSBOVUxMKQpA QCAtOTQwLDcgKzk1NSw3IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2Ug KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ss CiAKICAgbW9kaWZpZWRfbmFtZSA9IG5hbWU7CiAKLSAgLyogSWYgd2UgYXJl IHVzaW5nIEMrKyBvciBKYXZhLCBkZW1hbmdsZSB0aGUgbmFtZSBiZWZvcmUg ZG9pbmcgYSBsb29rdXAsIHNvCisgIC8qIElmIHdlIGFyZSB1c2luZyBDKyss IEQsIG9yIEphdmEsIGRlbWFuZ2xlIHRoZSBuYW1lIGJlZm9yZSBkb2luZyBh IGxvb2t1cCwgc28KICAgICAgd2UgY2FuIGFsd2F5cyBiaW5hcnkgc2VhcmNo LiAqLwogICBpZiAobGFuZyA9PSBsYW5ndWFnZV9jcGx1cykKICAgICB7CkBA IC05NzIsNiArOTg3LDE1IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2Ug KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ss CiAJICBtYWtlX2NsZWFudXAgKHhmcmVlLCBkZW1hbmdsZWRfbmFtZSk7CiAJ fQogICAgIH0KKyAgZWxzZSBpZiAobGFuZyA9PSBsYW5ndWFnZV9kKQorICAg IHsKKyAgICAgIGRlbWFuZ2xlZF9uYW1lID0gZF9kZW1hbmdsZSAobmFtZSwg MCk7CisgICAgICBpZiAoZGVtYW5nbGVkX25hbWUpCisJeworCSAgbW9kaWZp ZWRfbmFtZSA9IGRlbWFuZ2xlZF9uYW1lOworCSAgbWFrZV9jbGVhbnVwICh4 ZnJlZSwgZGVtYW5nbGVkX25hbWUpOworCX0KKyAgICB9CiAKICAgaWYgKGNh c2Vfc2Vuc2l0aXZpdHkgPT0gY2FzZV9zZW5zaXRpdmVfb2ZmKQogICAgIHsK QEAgLTE0MTIsNiArMTQzNiw3IEBAIHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAo ZW51bSBsYW5ndWFnZSBzeW1ib2xfbGFuZ3VhZ2UsCiAgICAgIEEgSmF2YSBj bGFzcyBkZWNsYXJhdGlvbiBhbHNvIGRlZmluZXMgYSB0eXBlZGVmIGZvciB0 aGUgY2xhc3MuCiAgICAgIFNpbWlsYXJseSwgYW55IEFkYSB0eXBlIGRlY2xh cmF0aW9uIGltcGxpY2l0bHkgZGVmaW5lcyBhIHR5cGVkZWYuICAqLwogICBp ZiAoc3ltYm9sX2xhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCisgICAgICB8 fCBzeW1ib2xfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZAogICAgICAgfHwgc3lt Ym9sX2xhbmd1YWdlID09IGxhbmd1YWdlX2phdmEKICAgICAgIHx8IHN5bWJv bF9sYW5ndWFnZSA9PSBsYW5ndWFnZV9hZGEpCiAgICAgewpkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvZGVmYXVsdC5leHAKaW5kZXggOTdkNTQwNy4u MmExMzAwNyAxMDA2NDQKLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9k ZWZhdWx0LmV4cAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1 bHQuZXhwCkBAIC01MzEsNyArNTMxLDcgQEAgZ2RiX3Rlc3QgInNldCBoaXN0 b3J5IHNpemUiICJBcmd1bWVudCByZXF1aXJlZCAuaW50ZWdlciB0byBzZXQg aXQgdG8uKiIgInNldCBoaXMKICN0ZXN0IHNldCBoaXN0b3J5CiBnZGJfdGVz dCAic2V0IGhpc3RvcnkiICJcInNldCBoaXN0b3J5XCIgbXVzdCBiZSBmb2xs b3dlZCBieSB0aGUgbmFtZSBvZiBhIGhpc3Rvcnkgc3ViY29tbWFuZC4oXFte XHJcblxdKlxbXHJcblxdKStMaXN0IG9mIHNldCBoaXN0b3J5IHN1YmNvbW1h bmRzOihcW15cclxuXF0qXFtcclxuXF0pK3NldCBoaXN0b3J5IGV4cGFuc2lv biAtLSBTZXQgaGlzdG9yeSBleHBhbnNpb24gb24gY29tbWFuZCBpbnB1dChc W15cclxuXF0qXFtcclxuXF0pK3NldCBoaXN0b3J5IGZpbGVuYW1lIC0tIFNl dCB0aGUgZmlsZW5hbWUgaW4gd2hpY2ggdG8gcmVjb3JkIHRoZSBjb21tYW5k IGhpc3RvcnkoXFteXHJcblxdKlxbXHJcblxdKStzZXQgaGlzdG9yeSBzYXZl IC0tIFNldCBzYXZpbmcgb2YgdGhlIGhpc3RvcnkgcmVjb3JkIG9uIGV4aXQo XFteXHJcblxdKlxbXHJcblxdKStzZXQgaGlzdG9yeSBzaXplIC0tIFNldCB0 aGUgc2l6ZSBvZiB0aGUgY29tbWFuZCBoaXN0b3J5KFxbXlxyXG5cXSpcW1xy XG5cXSkrVHlwZSBcImhlbHAgc2V0IGhpc3RvcnlcIiBmb2xsb3dlZCBieSBz ZXQgaGlzdG9yeSBzdWJjb21tYW5kIG5hbWUgZm9yIGZ1bGwgZG9jdW1lbnRh dGlvbi4oXFteXHJcblxdKlxbXHJcblxdKStDb21tYW5kIG5hbWUgYWJicmV2 aWF0aW9ucyBhcmUgYWxsb3dlZCBpZiB1bmFtYmlndW91cy4iICJzZXQgaGlz dG9yeSIKICN0ZXN0IHNldCBsYW5ndWFnZQotZ2RiX3Rlc3QgInNldCBsYW5n dWFnZSIgIlJlcXVpcmVzIGFuIGFyZ3VtZW50LiBWYWxpZCBhcmd1bWVudHMg YXJlIGF1dG8sIGxvY2FsLCB1bmtub3duLCBhZGEsIGMsIGMuLiwgYXNtLCBt aW5pbWFsLCBmb3J0cmFuLCBvYmplY3RpdmUtYywgamF2YSwgbW9kdWxhLTIs IHBhc2NhbCwgc2NoZW1lLiIgInNldCBsYW5ndWFnZSIKK2dkYl90ZXN0ICJz ZXQgbGFuZ3VhZ2UiICJSZXF1aXJlcyBhbiBhcmd1bWVudC4gVmFsaWQgYXJn dW1lbnRzIGFyZSBhdXRvLCBsb2NhbCwgdW5rbm93biwgYWRhLCBjLCBjLi4s IGFzbSwgbWluaW1hbCwgZCwgZm9ydHJhbiwgb2JqZWN0aXZlLWMsIGphdmEs IG1vZHVsYS0yLCBwYXNjYWwsIHNjaGVtZS4iICJzZXQgbGFuZ3VhZ2UiCiAj dGVzdCBzZXQgbGlzdHNpemUKIGdkYl90ZXN0ICJzZXQgbGlzdHNpemUiICJB cmd1bWVudCByZXF1aXJlZCAuaW50ZWdlciB0byBzZXQgaXQgdG8uKiIgInNl dCBsaXN0c2l6ZSIKICN0ZXN0IHNldCBwcmludCAicCIgYWJicmV2aWF0aW9u Cg== --Multipart=_Wed__21_Apr_2010_02_59_19_+0300_FE+nS3x84TFL=+v8--