From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12236 invoked by alias); 17 Aug 2009 22:59:54 -0000 Received: (qmail 12227 invoked by uid 22791); 17 Aug 2009 22:59:53 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-bw0-f208.google.com (HELO mail-bw0-f208.google.com) (209.85.218.208) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 17 Aug 2009 22:59:48 +0000 Received: by bwz4 with SMTP id 4so2653597bwz.0 for ; Mon, 17 Aug 2009 15:59:45 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.7.139 with SMTP id d11mr3135245bkd.190.1250549985008; Mon, 17 Aug 2009 15:59:45 -0700 (PDT) Date: Mon, 17 Aug 2009 23:02:00 -0000 Message-ID: Subject: D language support From: Mihail Zenkov To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=00151758a84ea15eae04715e5b5d 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: 2009-08/txt/msg00265.txt.bz2 --00151758a84ea15eae04715e5b5d Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 95 Hi. This patch add D language support. In current state it quite useful with GDC, LDC and DMD. --00151758a84ea15eae04715e5b5d Content-Type: application/octet-stream; name="gdb-090818-d.patch" Content-Disposition: attachment; filename="gdb-090818-d.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 Content-length: 29093 ZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5p bgppbmRleCBjY2M0ZGI4Li43ZjBiM2NhIDEwMDY0NAotLS0gYS9nZGIvTWFr ZWZpbGUuaW4KKysrIGIvZ2RiL01ha2VmaWxlLmluCkBAIC02MzgsNiArNjM4 LDcgQEAgU0ZJTEVTID0gYWRhLWV4cC55IGFkYS1sYW5nLmMgYWRhLXR5cGVw cmludC5jIGFkYS12YWxwcmludC5jIGFkYS10YXNrcy5jIFwKIAljaGFyc2V0 LmMgY2xpLW91dC5jIGNvZmZyZWFkLmMgY29mZi1wZS1yZWFkLmMgXAogCWNv bXBsYWludHMuYyBjb21wbGV0ZXIuYyBjb3JlZmlsZS5jIFwKIAljcC1hYmku YyBjcC1zdXBwb3J0LmMgY3AtbmFtZXNwYWNlLmMgY3AtdmFscHJpbnQuYyBc CisJZC1sYW5nLmMgZC12YWxwcmludC5jIFwKIAljcC1uYW1lLXBhcnNlci55 IFwKIAlkYnhyZWFkLmMgZGVtYW5nbGUuYyBkaWN0aW9uYXJ5LmMgZGlzYXNt LmMgZG91Ymxlc3QuYyBkdW1teS1mcmFtZS5jIFwKIAlkd2FyZjJleHByLmMg ZHdhcmYybG9jLmMgZHdhcmYycmVhZC5jIGR3YXJmMi1mcmFtZS5jIFwKQEAg LTgwMyw3ICs4MDQsNyBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChD T05GSUdfT0JTKSAkKFlZT0JKKSBcCiAJZGJ4cmVhZC5vIGNvZmZyZWFkLm8g Y29mZi1wZS1yZWFkLm8gXAogCWR3YXJmMnJlYWQubyBtaXBzcmVhZC5vIHN0 YWJzcmVhZC5vIGNvcmVmaWxlLm8gXAogCWR3YXJmMmV4cHIubyBkd2FyZjJs b2MubyBkd2FyZjItZnJhbWUubyBcCi0JYWRhLWxhbmcubyBjLWxhbmcubyBm LWxhbmcubyBvYmpjLWxhbmcubyBcCisJYWRhLWxhbmcubyBjLWxhbmcubyBk LWxhbmcubyBmLWxhbmcubyBvYmpjLWxhbmcubyBcCiAJYWRhLXRhc2tzLm8g XAogCXVpLW91dC5vIGNsaS1vdXQubyBcCiAJdmFyb2JqLm8gdmVjLm8gd3Jh cHBlci5vIFwKQEAgLTgxMyw3ICs4MTQsNyBAQCBDT01NT05fT0JTID0gJChE RVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZT0JKKSBcCiAJc2VudGluZWwt ZnJhbWUubyBcCiAJY29tcGxhaW50cy5vIHR5cGVwcmludC5vIFwKIAlhZGEt dHlwZXByaW50Lm8gYy10eXBlcHJpbnQubyBmLXR5cGVwcmludC5vIG0yLXR5 cGVwcmludC5vIFwKLQlhZGEtdmFscHJpbnQubyBjLXZhbHByaW50Lm8gY3At dmFscHJpbnQubyBmLXZhbHByaW50Lm8gbTItdmFscHJpbnQubyBcCisJYWRh LXZhbHByaW50Lm8gYy12YWxwcmludC5vIGNwLXZhbHByaW50Lm8gZC12YWxw cmludC5vIGYtdmFscHJpbnQubyBtMi12YWxwcmludC5vIFwKIAlzZXJpYWwu byBtZGVidWdyZWFkLm8gdG9wLm8gdXRpbHMubyBcCiAJdWktZmlsZS5vIFwK IAl1c2VyLXJlZ3MubyBcCmRpZmYgLS1naXQgYS9nZGIvYy1sYW5nLmMgYi9n ZGIvYy1sYW5nLmMKaW5kZXggNGJhODFiYS4uMDM0ZDcwZSAxMDA2NDQKLS0t IGEvZ2RiL2MtbGFuZy5jCisrKyBiL2dkYi9jLWxhbmcuYwpAQCAtMjUsNiAr MjUsNyBAQAogI2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCiAjaW5jbHVkZSAi bGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJjLWxhbmcuaCIKKyNpbmNsdWRlICJk LWxhbmcuaCIKICNpbmNsdWRlICJ2YWxwcmludC5oIgogI2luY2x1ZGUgIm1h Y3Jvc2NvcGUuaCIKICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCkBAIC0xMzgx LDEwICsxMzgyLDUwIEBAIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuIG1p bmltYWxfbGFuZ3VhZ2VfZGVmbiA9CiAgIExBTkdfTUFHSUMKIH07CiAKK2Nv bnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuIGRfbGFuZ3VhZ2VfZGVmbiA9Cit7 CisgICJkIiwJCQkJLyogTGFuZ3VhZ2UgbmFtZSAqLworICBsYW5ndWFnZV9k LAorICByYW5nZV9jaGVja19vZmYsCisgIHR5cGVfY2hlY2tfb2ZmLAorICBj YXNlX3NlbnNpdGl2ZV9vbiwKKyAgYXJyYXlfcm93X21ham9yLAorICBtYWNy b19leHBhbnNpb25fYywKKyAgJmV4cF9kZXNjcmlwdG9yX2MsCisgIGNfcGFy c2UsCisgIGNfZXJyb3IsCisgIG51bGxfcG9zdF9wYXJzZXIsCisgIGNfcHJp bnRjaGFyLAkJCS8qIFByaW50IGEgY2hhcmFjdGVyIGNvbnN0YW50ICovCisg IGNfcHJpbnRzdHIsCQkJLyogRnVuY3Rpb24gdG8gcHJpbnQgc3RyaW5nIGNv bnN0YW50ICovCisgIGNfZW1pdF9jaGFyLAkJCS8qIFByaW50IGEgc2luZ2xl IGNoYXIgKi8KKyAgY19wcmludF90eXBlLAkJCS8qIFByaW50IGEgdHlwZSB1 c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KKyAgY19wcmludF90eXBlZGVm LCAgICAgICAgICAgICAgLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJv cHJpYXRlIHN5bnRheCAqLworICBkX3ZhbF9wcmludCwJCQkvKiBQcmludCBh IHZhbHVlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLworICBjX3ZhbHVl X3ByaW50LAkJLyogUHJpbnQgYSB0b3AtbGV2ZWwgdmFsdWUgKi8KKyAgTlVM TCwJCQkJLyogTGFuZ3VhZ2Ugc3BlY2lmaWMgc2tpcF90cmFtcG9saW5lICov CisgICJ0aGlzIiwJCQkvKiBuYW1lX29mX3RoaXMgKi8KKyAgYmFzaWNfbG9v a3VwX3N5bWJvbF9ub25sb2NhbCwJLyogbG9va3VwX3N5bWJvbF9ub25sb2Nh bCAqLworICBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSwvKiBsb29r dXBfdHJhbnNwYXJlbnRfdHlwZSAqLworICBkX2RlbWFuZ2xlLAkJCS8qIExh bmd1YWdlIHNwZWNpZmljIHN5bWJvbCBkZW1hbmdsZXIgKi8KKyAgTlVMTCwJ CQkJLyogTGFuZ3VhZ2Ugc3BlY2lmaWMgY2xhc3NfbmFtZV9mcm9tX3BoeXNu YW1lICovCisgIGNfb3BfcHJpbnRfdGFiLAkJLyogZXhwcmVzc2lvbiBvcGVy YXRvcnMgZm9yIHByaW50aW5nICovCisgIDEsCQkJCS8qIGMtc3R5bGUgYXJy YXlzICovCisgIDAsCQkJCS8qIFN0cmluZyBsb3dlciBib3VuZCAqLworICBk ZWZhdWx0X3dvcmRfYnJlYWtfY2hhcmFjdGVycywKKyAgZGVmYXVsdF9tYWtl X3N5bWJvbF9jb21wbGV0aW9uX2xpc3QsCisgIGNfbGFuZ3VhZ2VfYXJjaF9p bmZvLAorICBkZWZhdWx0X3ByaW50X2FycmF5X2luZGV4LAorICBkZWZhdWx0 X3Bhc3NfYnlfcmVmZXJlbmNlLAorICBjX2dldF9zdHJpbmcsCisgIExBTkdf TUFHSUMKK307CisKKwogdm9pZAogX2luaXRpYWxpemVfY19sYW5ndWFnZSAo dm9pZCkKIHsKICAgYWRkX2xhbmd1YWdlICgmY19sYW5ndWFnZV9kZWZuKTsK KyAgYWRkX2xhbmd1YWdlICgmZF9sYW5ndWFnZV9kZWZuKTsKICAgYWRkX2xh bmd1YWdlICgmY3BsdXNfbGFuZ3VhZ2VfZGVmbik7CiAgIGFkZF9sYW5ndWFn ZSAoJmFzbV9sYW5ndWFnZV9kZWZuKTsKICAgYWRkX2xhbmd1YWdlICgmbWlu aW1hbF9sYW5ndWFnZV9kZWZuKTsKZGlmZiAtLWdpdCBhL2dkYi9kLWxhbmcu YyBiL2dkYi9kLWxhbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41OGRkY2QzCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiL2QtbGFu Zy5jCkBAIC0wLDAgKzEsMjQxIEBACisKKy8qIEMgbGFuZ3VhZ2Ugc3VwcG9y dCByb3V0aW5lcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorICAgQ29w eXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5 OTksIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQKKyAgIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBH REIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAg IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0 byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkg VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICAgQm9zdG9uLCBNQSAwMjEx MS0xMzA3LCBVU0EuICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1 ZGUgInN5bXRhYi5oIgorI2luY2x1ZGUgImxhbmd1YWdlLmgiCisjaW5jbHVk ZSAiZC1sYW5nLmgiCisjaW5jbHVkZSAiYy1sYW5nLmgiCisjaW5jbHVkZSAi Z2RiX3N0cmluZy5oIgorCisjaW5jbHVkZSA8Y3R5cGUuaD4KKwordHlwZWRl ZiBzdHJ1Y3QgeworICBzaXplX3QgbGVuOworICBjaGFyKiBzdHI7CisgIGNo YXIqIHBvczsKK30gU3RyaW5nOworCitzdGF0aWMgc2l6ZV90IHN0cl9sZWZ0 KFN0cmluZyogc3RyKSB7CisgIHJldHVybiAoc3RyLT5sZW4gLSAoc3RyLT5w b3MgLSBzdHItPnN0cikpOworfQorCitzdGF0aWMgdm9pZCBzdHJfcmVzaXpl KFN0cmluZyogc3RyLCBzaXplX3QgbmV3X3NpemUpIHsKKyAgaW50IHBvcyA9 IHN0ci0+cG9zIC0gc3RyLT5zdHI7CisgIGlmIChuZXdfc2l6ZSA9PSAwKQor ICAgIG5ld19zaXplID0gc3RybGVuKHN0ci0+c3RyKSArIDE7CisgIHN0ci0+ c3RyID0geHJlYWxsb2Moc3RyLT5zdHIsIG5ld19zaXplKTsKKyAgc3RyLT5s ZW4gPSBuZXdfc2l6ZTsKKyAgc3RyLT5wb3MgPSBzdHItPnN0ciArIHBvczsK K30KKworc3RhdGljIHZvaWQgYXBwZW5kX2xlbihTdHJpbmcqIHN0ciwgY2hh ciogc3JjLCBzaXplX3QgaSkgeworICBzaXplX3QgYW1udCA9IHN0cl9sZWZ0 KHN0cik7CisgIGlmIChpID4gYW1udCkgeworICAgIHN0cl9yZXNpemUoc3Ry LCBzdHItPmxlbiArIGkgKyAyMCk7CisgIH0KKyAgbWVtY3B5KHN0ci0+cG9z LCBzcmMsIGkpOworICBzdHItPnBvcyArPSBpOworfQorCitzdGF0aWMgdm9p ZCBhcHBlbmQoU3RyaW5nKiBzdHIsIGNoYXIqIHNyYykgeworICBhcHBlbmRf bGVuKHN0ciwgc3JjLCBzdHJsZW4oc3JjKSk7Cit9CisKK3N0YXRpYyBpbnQg ZXh0cmFjdGlkZW50aWZpZXJzKFN0cmluZyogb3V0cHV0LCBTdHJpbmcqIG1h bmdsZWQpIHsKKyAgbG9uZyBpID0gMDsKKyAgd2hpbGUgKGlzZGlnaXQoKm1h bmdsZWQtPnBvcykpIHsKKyAgICBpID0gc3RydG9sKG1hbmdsZWQtPnBvcywg Jm1hbmdsZWQtPnBvcywgMTApOworICAgIGlmIChpID09IDAgfHwgaSA9PSBM T05HX01BWCB8fCBpID09IExPTkdfTUlOKSB7CisgICAgICByZXR1cm4gLTE7 CisgICAgfQorICAgIGlmIChzdHJsZW4obWFuZ2xlZC0+cG9zKSA8IGkpCisg ICAgICByZXR1cm4gLTE7CisgICAgYXBwZW5kX2xlbihvdXRwdXQsIG1hbmds ZWQtPnBvcywgaSk7CisgICAgbWFuZ2xlZC0+cG9zICs9IGk7CisgICAgYXBw ZW5kKG91dHB1dCwgIi4iKTsKKyAgfQorICBpZiAoKm1hbmdsZWQtPnBvcyA9 PSAnXDAnIHx8IGkgPT0gMCkKKyAgICByZXR1cm4gLTE7CisgIG91dHB1dC0+ cG9zLS07CisgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IGV4dHJhY3R0 eXBlaW5mbyhTdHJpbmcqIGRlc3QsIFN0cmluZyogaWQpIHsKKyAgaWYgKCpp ZC0+cG9zID09ICdcMCcpCisgICAgcmV0dXJuIC0xOworICAvLyBFeHRyYWN0 IHRoZSB0eXBlIGluZm86CisgIHN3aXRjaCAoKmlkLT5wb3MrKykgeworICAg IC8vIGFycmF5LCBzdGF0aWMgYXJyYXksIGR5bmFtaWMgYXJyYXk6CisgIGNh c2UgJ0EnOiBjYXNlICdHJzogY2FzZSAnSCc6CisgICAgaWYgKGV4dHJhY3R0 eXBlaW5mbyhkZXN0LCBpZCkgPT0gLTEpCisgICAgICByZXR1cm4gLTE7Cisg ICAgYXBwZW5kKGRlc3QsICJbXSIpOworICAgIHJldHVybiAxOworICAgIC8v IHBvaW50ZXI6CisgIGNhc2UgJ1AnOgorICAgIGlmIChleHRyYWN0dHlwZWlu Zm8oZGVzdCwgaWQpID09IC0xKQorICAgICAgcmV0dXJuIC0xOworICAgIGFw cGVuZChkZXN0LCAiKiIpOworICAgIHJldHVybiAxOworICAgIC8vIHJlZmVy ZW5jZToKKyAgY2FzZSAnUic6CisgICAgaWYgKGV4dHJhY3R0eXBlaW5mbyhk ZXN0LCBpZCkgPT0gLTEpCisgICAgICByZXR1cm4gLTE7CisgICAgYXBwZW5k KGRlc3QsICImIik7CisgICAgcmV0dXJuIDE7CisgICAgLy8gcmV0dXJuIHZh bHVlOgorICBjYXNlICdaJzoKKyAgICByZXR1cm4gZXh0cmFjdHR5cGVpbmZv KGRlc3QsIGlkKTsKKyAgICAvLyBvdXQ6CisgIGNhc2UgJ0onOgorICAgIGFw cGVuZChkZXN0LCAib3V0ICIpOworICAgIHJldHVybiBleHRyYWN0dHlwZWlu Zm8oZGVzdCwgaWQpOworICAgIC8vIGlub3V0OgorICBjYXNlICdLJzoKKyAg ICBhcHBlbmQoZGVzdCwgImlub3V0ICIpOworICAgIHJldHVybiBleHRyYWN0 dHlwZWluZm8oZGVzdCwgaWQpOworICAgIAorICAgIC8vIGVudW06CisgIGNh c2UgJ0UnOiBjYXNlICdUJzogY2FzZSAnRCc6IGNhc2UgJ0MnOiBjYXNlICdT JzogY2FzZSAnSSc6CisgICAgcmV0dXJuIGV4dHJhY3RpZGVudGlmaWVycyhk ZXN0LCBpZCk7CisgICAgCisgICAgLy8gYmFzaWMgdHlwZXM6CisgIGNhc2Ug J24nOiBhcHBlbmQoZGVzdCwgIm5vbmUiKTsgcmV0dXJuIDE7ICAvLyBldmVy IHVzZWQ/CisgIGNhc2UgJ3YnOiBhcHBlbmQoZGVzdCwgInZvaWQiKTsgcmV0 dXJuIDE7CisgIGNhc2UgJ2cnOiBhcHBlbmQoZGVzdCwgImJ5dGUiKTsgcmV0 dXJuIDE7CisgIGNhc2UgJ2gnOiBhcHBlbmQoZGVzdCwgInVieXRlIik7IHJl dHVybiAxOworICBjYXNlICdzJzogYXBwZW5kKGRlc3QsICJzaG9ydCIpOyBy ZXR1cm4gMTsKKyAgY2FzZSAndCc6IGFwcGVuZChkZXN0LCAidXNob3J0Iik7 IHJldHVybiAxOworICBjYXNlICdpJzogYXBwZW5kKGRlc3QsICJpbnQiKTsg cmV0dXJuIDE7CisgIGNhc2UgJ2snOiBhcHBlbmQoZGVzdCwgInVpbnQiKTsg cmV0dXJuIDE7CisgIGNhc2UgJ2wnOiBhcHBlbmQoZGVzdCwgImxvbmciKTsg cmV0dXJuIDE7CisgIGNhc2UgJ20nOiBhcHBlbmQoZGVzdCwgInVsb25nIik7 IHJldHVybiAxOworICBjYXNlICdmJzogYXBwZW5kKGRlc3QsICJmbG9hdCIp OyByZXR1cm4gMTsKKyAgY2FzZSAnZCc6IGFwcGVuZChkZXN0LCAiZG91Ymxl Iik7IHJldHVybiAxOworICBjYXNlICdlJzogYXBwZW5kKGRlc3QsICJyZWFs Iik7IHJldHVybiAxOworCisgIC8vIGltYWdpbmFyeSBhbmQgY29tcGxleDoK KyAgY2FzZSAnbyc6IGFwcGVuZChkZXN0LCAiaWZsb2F0Iik7IHJldHVybiAx OworICBjYXNlICdwJzogYXBwZW5kKGRlc3QsICJpZG91YmxlIik7IHJldHVy biAxOworICBjYXNlICdqJzogYXBwZW5kKGRlc3QsICJpcmVhbCIpOyByZXR1 cm4gMTsKKyAgY2FzZSAncSc6IGFwcGVuZChkZXN0LCAiY2Zsb2F0Iik7IHJl dHVybiAxOworICBjYXNlICdyJzogYXBwZW5kKGRlc3QsICJjZG91YmxlIik7 IHJldHVybiAxOworICBjYXNlICdjJzogYXBwZW5kKGRlc3QsICJjcmVhbCIp OyByZXR1cm4gMTsKKworICAvLyBvdGhlciB0eXBlczoKKyAgY2FzZSAnYic6 IGFwcGVuZChkZXN0LCAiYml0Iik7IHJldHVybiAxOworICBjYXNlICdhJzog YXBwZW5kKGRlc3QsICJjaGFyIik7IHJldHVybiAxOworICBjYXNlICd1Jzog YXBwZW5kKGRlc3QsICJ3Y2hhciIpOyByZXR1cm4gMTsKKyAgY2FzZSAndyc6 IGFwcGVuZChkZXN0LCAiZGNoYXIiKTsgcmV0dXJuIDE7CisKKyAgLy8gdHlw ZWluZm8sIGVycm9yLCBpbnN0YW5jZToKKyAgY2FzZSAnQCc6IHJldHVybiBl eHRyYWN0aWRlbnRpZmllcnMoZGVzdCwgaWQpOyAvLyBCVUc6IGlzIHRoaXMg cmlnaHQ/CisKKyAgZGVmYXVsdDogYXBwZW5kKGRlc3QsICJ1bmtub3duIik7 IHJldHVybiAxOworICB9Cit9CisKK2NoYXIqIGRfZGVtYW5nbGUoY29uc3Qg Y2hhciogc3ltYm9sXywgaW50IG9wdGlvbnMpIHsKKyAgU3RyaW5nIG91dHB1 dDsKKyAgU3RyaW5nIG1hbmdsZWQ7CisgIHVuc2lnbmVkIGNoYXIgaXNGdW5j ID0gMDsKKyAgY2hhciogc3ltYm9sOworICAvL3ByaW50ZigiJXM6ICIsIHN5 bWJvbCk7CisgIGlmIChzeW1ib2xfID09IE5VTEwpIHsKKyAgICAvL3ByaW50 ZigiTlVMTDFcbiIpOworICAgIHJldHVybiBOVUxMOworICB9IGVsc2UgaWYg KHN0cmNtcChzeW1ib2xfLCAiX0RtYWluIikgPT0gMCkgeworICAgIHJldHVy biBzdHJkdXAoIkQgbWFpbiIpOworICB9CisKKyAgc3ltYm9sID0geHN0cmR1 cChzeW1ib2xfKTsKKyAgbWFuZ2xlZC5sZW4gPSBzdHJsZW4oc3ltYm9sKTsK KyAgbWFuZ2xlZC5zdHIgPSBzeW1ib2w7CisgIG1hbmdsZWQucG9zID0gc3lt Ym9sOworCisgIG91dHB1dC5sZW4gPSAyOworICBvdXRwdXQuc3RyID0geG1h bGxvYyhvdXRwdXQubGVuKTsKKyAgb3V0cHV0LnBvcyA9IG91dHB1dC5zdHI7 CisKKyAgaWYgKHN5bWJvbCA9PSBzdHJzdHIoc3ltYm9sLCAiX0QiKSkgewor ICAgIG1hbmdsZWQucG9zICs9IDI7CisgICAgaXNGdW5jID0gMTsKKyAgfSBl bHNlIGlmIChzeW1ib2wgPT0gc3Ryc3RyKHN5bWJvbCwgIl9fQ2xhc3NfIikp IHsKKyAgICBtYW5nbGVkLnBvcyArPSA4OworICB9IGVsc2UgaWYgKHN5bWJv bCA9PSBzdHJzdHIoc3ltYm9sLCAiX19pbml0XyIpKSB7CisgICAgbWFuZ2xl ZC5wb3MgKz0gNzsKKyAgfSBlbHNlIGlmIChzeW1ib2wgPT0gc3Ryc3RyKHN5 bWJvbCwgIl9fdnRibF8iKSkgeworICAgIG1hbmdsZWQucG9zICs9IDc7Cisg IH0gZWxzZSBpZiAoc3ltYm9sID09IHN0cnN0cihzeW1ib2wsICJfX21vZGN0 b3JfIikpIHsKKyAgICBtYW5nbGVkLnBvcyArPSAxMDsKKyAgfSBlbHNlIGlm IChzeW1ib2wgPT0gc3Ryc3RyKHN5bWJvbCwgIl9fbW9kZHRvcl8iKSkgewor ICAgIG1hbmdsZWQucG9zICs9IDEwOworICB9IGVsc2UgaWYgKHN5bWJvbCA9 PSBzdHJzdHIoc3ltYm9sLCAiX19Nb2R1bGVJbmZvXyIpKSB7CisgICAgbWFu Z2xlZC5wb3MgKz0gMTM7CisgIH0gZWxzZSB7CisgICAgeGZyZWUob3V0cHV0 LnN0cik7CisgICAgeGZyZWUoc3ltYm9sKTsKKyAgICAvL3ByaW50ZigiTlVM TDJcbiIpOworICAgIHJldHVybiBOVUxMOworICB9CisgIAorICAKKyAgaWYg KGV4dHJhY3RpZGVudGlmaWVycygmb3V0cHV0LCAmbWFuZ2xlZCkgPCAwKSB7 CisgICAgeGZyZWUob3V0cHV0LnN0cik7CisgICAgeGZyZWUoc3ltYm9sKTsK KyAgICAvL3ByaW50ZigiTlVMTDNcbiIpOworICAgIHJldHVybiBOVUxMOwor ICB9CisKKworCisgIGFwcGVuZCgmb3V0cHV0LCAiKCIpOworICBpZiAoaXNG dW5jID09IDEgJiYgKm1hbmdsZWQucG9zID09ICdGJykgeworICAgIG1hbmds ZWQucG9zKys7CisgICAgd2hpbGUgKCptYW5nbGVkLnBvcyAhPSAnXDAnICYm ICptYW5nbGVkLnBvcyAhPSAnWicpIHsKKyAgICAgIGlmIChpc0Z1bmMgPT0g MSkgeworCWlzRnVuYysrOworICAgICAgfSBlbHNlIHsKKwlhcHBlbmQoJm91 dHB1dCwgIiwgIik7CisgICAgICB9CisgICAgICBpZiAoZXh0cmFjdHR5cGVp bmZvKCZvdXRwdXQsICZtYW5nbGVkKSA8IDApIHsKKwl4ZnJlZShvdXRwdXQu c3RyKTsKKyAgICB4ZnJlZShzeW1ib2wpOworCXJldHVybiBOVUxMOworICAg ICAgfQorICAgIH0KKyAgfQorICBhcHBlbmQoJm91dHB1dCwgIikiKTsKKwor ICAvL0RvZXNuJ3QgZGlzcGxheSB0aGUgcmV0dXJuIHR5cGUsIGJ1dCB3b3Vs ZG4ndCBiZSB0b28gaGFyZCB0byBkby4KKworICBhcHBlbmRfbGVuKCZvdXRw dXQsICIiLCAxKTsKKyAgc3RyX3Jlc2l6ZSgmb3V0cHV0LCAwKTsKKyAgLy9w cmludGYoIiVzXG4iLCBvdXRwdXQuc3RyKTsKKyAgeGZyZWUoc3ltYm9sKTsK KyAgcmV0dXJuIG91dHB1dC5zdHI7Cit9CisKK2NoYXIqIGRfc3ltX2RlbWFu Z2xlKGNvbnN0IHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9s KSB7CisgIHJldHVybiBkX2RlbWFuZ2xlKGdzeW1ib2wtPm5hbWUsIDApOwor fQpkaWZmIC0tZ2l0IGEvZ2RiL2QtbGFuZy5oIGIvZ2RiL2QtbGFuZy5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MDQ1NzkKLS0t IC9kZXYvbnVsbAorKysgYi9nZGIvZC1sYW5nLmgKQEAgLTAsMCArMSwzOSBA QAorLyogQyBsYW5ndWFnZSBzdXBwb3J0IGRlZmluaXRpb25zIGZvciBHREIs IHRoZSBHTlUgZGVidWdnZXIuCisgICBDb3B5cmlnaHQgMTk5MiwgMTk5NCwg MTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMjAwMCwgMjAwMgorICAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAg IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl LCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJ bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgICBCb3N0b24s IE1BIDAyMTExLTEzMDcsIFVTQS4gICovCisKKworI2lmICFkZWZpbmVkIChE X0xBTkdfSCkKKyNkZWZpbmUgRF9MQU5HX0ggMQorCisjaW5jbHVkZSAic3lt dGFiLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIEQg TGFuZ3VhZ2Ugc3R1ZmYKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKworY2hhciogZF9kZW1hbmdsZShjb25zdCBjaGFyKiBtYW5nbGVkLCBp bnQgb3B0aW9ucyk7CisKK2NoYXIqIGRfc3ltX2RlbWFuZ2xlKGNvbnN0IHN0 cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9sKTsKKworaW50IGRf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCisgICAgICAgIAkgQ09S RV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAorICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7CisjZW5kaWYgLyogIWRlZmluZWQg KERfTEFOR19IKSAqLwpkaWZmIC0tZ2l0IGEvZ2RiL2QtdmFscHJpbnQuYyBi L2dkYi9kLXZhbHByaW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMzg4ZjE4MwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi9kLXZh bHByaW50LmMKQEAgLTAsMCArMSwxMDAgQEAKKy8qIFN1cHBvcnQgZm9yIHBy aW50aW5nIEQgdmFsdWVzIGZvciBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisK KyAgIENvcHlyaWdodCAoQykgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNywKKyAgIDIwMDggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlICJzeW10YWIuaCIKKyNp bmNsdWRlICJnZGJ0eXBlcy5oIgorI2luY2x1ZGUgImdkYmNvcmUuaCIKKyNp bmNsdWRlICJleHByZXNzaW9uLmgiCisjaW5jbHVkZSAidmFsdWUuaCIKKyNp bmNsdWRlICJkZW1hbmdsZS5oIgorI2luY2x1ZGUgInZhbHByaW50LmgiCisj aW5jbHVkZSAibGFuZ3VhZ2UuaCIKKyNpbmNsdWRlICJkLWxhbmcuaCIKKyNp bmNsdWRlICJjLWxhbmcuaCIKKyNpbmNsdWRlICJhbm5vdGF0ZS5oIgorI2lu Y2x1ZGUgImdkYl9zdHJpbmcuaCIKKworc3RhdGljIGludAorZHluYW1pY19h cnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCisJCSAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FE RFIgYWRkcmVzcywKKwkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAorCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpCit7CisgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUp ID09IDIKKyAgICAgICYmIFRZUEVfQ09ERSAoVFlQRV9GSUVMRF9UWVBFICh0 eXBlLCAwKSkgPT0gVFlQRV9DT0RFX0lOVAorICAgICAgJiYgc3RyY21wIChU WVBFX0ZJRUxEX05BTUUgKHR5cGUsIDApLCAibGVuZ3RoIikgPT0gMAorICAg ICAgJiYgc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIDEpLCAicHRy IikgPT0gMCkKKyAgICB7CisgICAgICBDT1JFX0FERFIgYWRkcjsKKyAgICAg IHN0cnVjdCB0eXBlICplbHR0eXBlOworICAgICAgc3RydWN0IHR5cGUgKnRy dWVfdHlwZTsKKyAgICAgIHN0cnVjdCB0eXBlICpwdHJfdHlwZTsKKyAgICAg IHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOworICAgICAgY29uc3QgZ2RiX2J5 dGUgKnB0cmFkZHI7CisgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKyAgICAg IGludCBsZW5ndGg7CisKKyAgICAgIGxlbmd0aCA9IHVucGFja19maWVsZF9h c19sb25nICh0eXBlLCB2YWxhZGRyICsgZW1iZWRkZWRfb2Zmc2V0LCAwKTsK KworICAgICAgcHRyX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIDEp OworICAgICAgZWx0dHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VU X1RZUEUgKHB0cl90eXBlKSk7CisgICAgICBhZGRyID0gdW5wYWNrX3BvaW50 ZXIgKHB0cl90eXBlLCB2YWxhZGRyICtUWVBFX0ZJRUxEX0JJVFBPUyAodHlw ZSwgMSkgLyA4ICsgZW1iZWRkZWRfb2Zmc2V0KTsKKyAgICAgIHRydWVfdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKGVsdHR5cGUpOworCisgICAgICB0cnVlX3R5 cGUgPSBsb29rdXBfYXJyYXlfcmFuZ2VfdHlwZSAodHJ1ZV90eXBlLCAwLCBs ZW5ndGggLSAxKTsKKyAgICAgIHZhbCA9IHZhbHVlX2F0KHRydWVfdHlwZSwg YWRkcik7CisgICAgICBwdHJhZGRyID0gdmFsdWVfY29udGVudHModmFsKTsK KworICAgICAgdmFsX3ByaW50ICh0cnVlX3R5cGUsCisJCSBwdHJhZGRyLCAw LAorCQkgYWRkciwKKwkJIHN0cmVhbSwgcmVjdXJzZSArIDEsIG9wdGlvbnMs IGN1cnJlbnRfbGFuZ3VhZ2UpOworICAgICAgcmV0dXJuIDE7CisgICAgfQor ICByZXR1cm4gMDsKK30KKworLyogUHJpbnQgZGF0YSBvZiB0eXBlIFRZUEUg bG9jYXRlZCBhdCBWQUxBRERSICh3aXRoaW4gR0RCKSwgd2hpY2ggY2FtZSBm cm9tCisgICB0aGUgaW5mZXJpb3IgYXQgYWRkcmVzcyBBRERSRVNTLCBvbnRv IHN0ZGlvIHN0cmVhbSBTVFJFQU0gYWNjb3JkaW5nIHRvCisgICBPUFRJT05T LiAgVGhlIGRhdGEgYXQgVkFMQUREUiBpcyBpbiB0YXJnZXQgYnl0ZSBvcmRl ci4KKworICAgSWYgdGhlIGRhdGEgYXJlIGEgc3RyaW5nIHBvaW50ZXIsIHJl dHVybnMgdGhlIG51bWJlciBvZiBzdHJpbmcgY2hhcmFjdGVycworICAgcHJp bnRlZC4gICovCisKK2ludAorZF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29m ZnNldCwKKyAgICAgICAgICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCit7 CisgIENIRUNLX1RZUEVERUYgKHR5cGUpOworICBzd2l0Y2ggKFRZUEVfQ09E RSAodHlwZSkpCisgICAgeworICAgIGNhc2UgVFlQRV9DT0RFX1NUUlVDVDoK KyAgICAgIGlmIChkeW5hbWljX2FycmF5X3R5cGUgKHR5cGUsIHZhbGFkZHIs IGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgc3RyZWFtLAorCSAgcmVjdXJz ZSwgb3B0aW9ucykpCisJICBicmVhazsKKyAgICBkZWZhdWx0OgorCXJldHVy biBjX3ZhbF9wcmludCAodHlwZSwgdmFsYWRkciwgZW1iZWRkZWRfb2Zmc2V0 LCBhZGRyZXNzLCBzdHJlYW0sCisJCQkgICAgcmVjdXJzZSwgb3B0aW9ucyk7 CisgICAgfQorCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZ2RiL2Rl ZnMuaCBiL2dkYi9kZWZzLmgKaW5kZXggZjUxMjdmZC4uYzE3MmQ0ZCAxMDA2 NDQKLS0tIGEvZ2RiL2RlZnMuaAorKysgYi9nZGIvZGVmcy5oCkBAIC0xODgs NiArMTg4LDcgQEAgZW51bSBsYW5ndWFnZQogICAgIGxhbmd1YWdlX2F1dG8s CQkvKiBQbGFjZWhvbGRlciBmb3IgYXV0b21hdGljIHNldHRpbmcgKi8KICAg ICBsYW5ndWFnZV9jLAkJCS8qIEMgKi8KICAgICBsYW5ndWFnZV9jcGx1cywJ CS8qIEMrKyAqLworICAgIGxhbmd1YWdlX2QsCQkJLyogRCAqLwogICAgIGxh bmd1YWdlX29iamMsCQkvKiBPYmplY3RpdmUtQyAqLwogICAgIGxhbmd1YWdl X2phdmEsCQkvKiBKYXZhICovCiAgICAgbGFuZ3VhZ2VfZm9ydHJhbiwJCS8q IEZvcnRyYW4gKi8KZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9n ZGIvZHdhcmYycmVhZC5jCmluZGV4IDQ0NWJhYjguLmYzNzYwNzkgMTAwNjQ0 Ci0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKKysrIGIvZ2RiL2R3YXJmMnJlYWQu YwpAQCAtNzQ1MSw2ICs3NDUxLDkgQEAgc2V0X2N1X2xhbmd1YWdlICh1bnNp Z25lZCBpbnQgbGFuZywgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgY2Fz ZSBEV19MQU5HX0NfcGx1c19wbHVzOgogICAgICAgY3UtPmxhbmd1YWdlID0g bGFuZ3VhZ2VfY3BsdXM7CiAgICAgICBicmVhazsKKyAgICBjYXNlIERXX0xB TkdfRDoKKyAgICAgIGN1LT5sYW5ndWFnZSA9IGxhbmd1YWdlX2Q7CisgICAg ICBicmVhazsKICAgICBjYXNlIERXX0xBTkdfRm9ydHJhbjc3OgogICAgIGNh c2UgRFdfTEFOR19Gb3J0cmFuOTA6CiAgICAgY2FzZSBEV19MQU5HX0ZvcnRy YW45NToKQEAgLTgwMTksNyArODAyMiw3IEBAIGR3YXJmX2RlY29kZV9saW5l cyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgY2hhciAqY29tcF9kaXIsIGJm ZCAqYWJmZCwKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGZlID0gJmxoLT5maWxlX25h bWVzW2ZpbGUgLSAxXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZlLT5k aXJfaW5kZXgpCisgICAgICAgICAgICAgICAgICAgIGlmIChmZS0+ZGlyX2lu ZGV4ICYmIGxoLT5pbmNsdWRlX2RpcnMgIT0gTlVMTCkKICAgICAgICAgICAg ICAgICAgICAgICBkaXIgPSBsaC0+aW5jbHVkZV9kaXJzW2ZlLT5kaXJfaW5k ZXggLSAxXTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVfZm9y X3BzdF9wKQogICAgICAgICAgICAgICAgICAgICAgIHsKZGlmZiAtLWdpdCBh L2dkYi9sYW5ndWFnZS5jIGIvZ2RiL2xhbmd1YWdlLmMKaW5kZXggZDk3NWYy My4uMzNkM2QzNSAxMDA2NDQKLS0tIGEvZ2RiL2xhbmd1YWdlLmMKKysrIGIv Z2RiL2xhbmd1YWdlLmMKQEAgLTQ4NSw2ICs0ODUsNyBAQCBiaW5vcF9yZXN1 bHRfdHlwZSAoc3RydWN0IHZhbHVlICp2MSwgc3RydWN0IHZhbHVlICp2MikK ICAgICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3Vh Z2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFu Z3VhZ2Vfb2JqYzoKICAgICAgIGlmIChUWVBFX0NPREUgKHQxKSA9PSBUWVBF X0NPREVfRkxUKQogCXJldHVybiBUWVBFX0NPREUgKHQyKSA9PSBUWVBFX0NP REVfRkxUICYmIGwyID4gbDEgPwpAQCAtNTk2LDYgKzU5Nyw3IEBAIGludGVn cmFsX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlKQogICAgIHsKICAgICBjYXNl IGxhbmd1YWdlX2M6CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBj YXNlIGxhbmd1YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAg ICAgcmV0dXJuIChUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9JTlQp ICYmCiAJKFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX0VOVU0pID8g MCA6IDE7CkBAIC02MzYsNiArNjM4LDcgQEAgY2hhcmFjdGVyX3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlKQogCiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAg IGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgog ICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIHJldHVybiAoVFlQRV9D T0RFICh0eXBlKSA9PSBUWVBFX0NPREVfSU5UKSAmJgogCVRZUEVfTEVOR1RI ICh0eXBlKSA9PSBzaXplb2YgKGNoYXIpCkBAIC02NTgsNiArNjYxLDcgQEAg c3RyaW5nX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlKQogCiAgICAgY2FzZSBs YW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2Fz ZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAg IC8qIEMgZG9lcyBub3QgaGF2ZSBkaXN0aW5jdCBzdHJpbmcgdHlwZS4gKi8K ICAgICAgIHJldHVybiAoMCk7CkBAIC02NzcsNiArNjgxLDcgQEAgYm9vbGVh bl90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAgICAgY2FzZSBs YW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2Fz ZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAg IC8qIE1pZ2h0IGJlIG1vcmUgY2xlYW5seSBoYW5kbGVkIGJ5IGhhdmluZyBh CiAgICAgICAgICBUWVBFX0NPREVfSU5UX05PVF9CT09MIGZvciAodGhlIGRl bGV0ZWQpIENISUxMIGFuZCBzdWNoCkBAIC03MTQsNiArNzE5LDcgQEAgc3Ry dWN0dXJlZF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAgICAg Y2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6Cisg ICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoK ICAgICAgIHJldHVybiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVf U1RSVUNUKSB8fAogCShUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9V TklPTikgfHwKZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmMgYi9nZGIvc3lt ZmlsZS5jCmluZGV4IDUxNTE5NjYuLmVhMzczY2QgMTAwNjQ0Ci0tLSBhL2dk Yi9zeW1maWxlLmMKKysrIGIvZ2RiL3N5bWZpbGUuYwpAQCAtMjY2Miw2ICsy NjYyLDcgQEAgaW5pdF9maWxlbmFtZV9sYW5ndWFnZV90YWJsZSAodm9pZCkK ICAgICAgIGZpbGVuYW1lX2xhbmd1YWdlX3RhYmxlID0KIAl4bWFsbG9jIChm bF90YWJsZV9zaXplICogc2l6ZW9mICgqZmlsZW5hbWVfbGFuZ3VhZ2VfdGFi bGUpKTsKICAgICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAoIi5jIiwgbGFu Z3VhZ2VfYyk7CisgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuZCIs IGxhbmd1YWdlX2QpOwogICAgICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdlICgi LkMiLCBsYW5ndWFnZV9jcGx1cyk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFu Z3VhZ2UgKCIuY2MiLCBsYW5ndWFnZV9jcGx1cyk7CiAgICAgICBhZGRfZmls ZW5hbWVfbGFuZ3VhZ2UgKCIuY3AiLCBsYW5ndWFnZV9jcGx1cyk7CmRpZmYg LS1naXQgYS9nZGIvc3ltdGFiLmMgYi9nZGIvc3ltdGFiLmMKaW5kZXggYzg4 MTU2YS4uZDQzN2Y0ZiAxMDA2NDQKLS0tIGEvZ2RiL3N5bXRhYi5jCisrKyBi L2dkYi9zeW10YWIuYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgInNv dXJjZS5oIgogI2luY2x1ZGUgImZpbGVuYW1lcy5oIgkJLyogZm9yIEZJTEVO QU1FX0NNUCAqLwogI2luY2x1ZGUgIm9iamMtbGFuZy5oIgorI2luY2x1ZGUg ImQtbGFuZy5oIgogI2luY2x1ZGUgImFkYS1sYW5nLmgiCiAjaW5jbHVkZSAi cC1sYW5nLmgiCiAjaW5jbHVkZSAiYWRkcm1hcC5oIgpAQCAtNDEzLDYgKzQx NCw3IEBAIHN5bWJvbF9pbml0X2xhbmd1YWdlX3NwZWNpZmljIChzdHJ1Y3Qg Z2VuZXJhbF9zeW1ib2xfaW5mbyAqZ3N5bWJvbCwKIHsKICAgZ3N5bWJvbC0+ bGFuZ3VhZ2UgPSBsYW5ndWFnZTsKICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdl ID09IGxhbmd1YWdlX2NwbHVzCisgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFn ZSA9PSBsYW5ndWFnZV9kCiAgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9 PSBsYW5ndWFnZV9qYXZhCiAgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9 PSBsYW5ndWFnZV9vYmpjKQogICAgIHsKQEAgLTQ1OSw2ICs0NjEsMTUgQEAg c3ltYm9sX2ZpbmRfZGVtYW5nbGVkX25hbWUgKHN0cnVjdCBnZW5lcmFsX3N5 bWJvbF9pbmZvICpnc3ltYm9sLAogICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2Ug PT0gbGFuZ3VhZ2VfdW5rbm93bikKICAgICBnc3ltYm9sLT5sYW5ndWFnZSA9 IGxhbmd1YWdlX2F1dG87CiAKKyAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlID09 IGxhbmd1YWdlX2QKKyAgICAgIHx8IGdzeW1ib2wtPmxhbmd1YWdlID09IGxh bmd1YWdlX2F1dG8pIHsKKyAgICBkZW1hbmdsZWQgPSBkX2RlbWFuZ2xlKG1h bmdsZWQsIDApOworICAgIGlmIChkZW1hbmdsZWQgIT0gTlVMTCkgeworICAg ICAgZ3N5bWJvbC0+bGFuZ3VhZ2UgPSBsYW5ndWFnZV9kOworICAgICAgcmV0 dXJuIGRlbWFuZ2xlZDsKKyAgICB9CisgIH0KKwogICBpZiAoZ3N5bWJvbC0+ bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vfb2JqYwogICAgICAgfHwgZ3N5bWJvbC0+ bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfYXV0bykKICAgICB7CkBAIC02MzEsNiAr NjQyLDcgQEAgc3ltYm9sX25hdHVyYWxfbmFtZSAoY29uc3Qgc3RydWN0IGdl bmVyYWxfc3ltYm9sX2luZm8gKmdzeW1ib2wpCiAgIHN3aXRjaCAoZ3N5bWJv bC0+bGFuZ3VhZ2UpCiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6 CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2VfamF2 YToKICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICBpZiAoZ3N5bWJv bC0+bGFuZ3VhZ2Vfc3BlY2lmaWMuY3BsdXNfc3BlY2lmaWMuZGVtYW5nbGVk X25hbWUgIT0gTlVMTCkKQEAgLTY1Niw2ICs2NjgsNyBAQCBzeW1ib2xfZGVt YW5nbGVkX25hbWUgKGNvbnN0IHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZv ICpnc3ltYm9sKQogICBzd2l0Y2ggKGdzeW1ib2wtPmxhbmd1YWdlKQogICAg IHsKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3Vh Z2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX2phdmE6CiAgICAgY2FzZSBsYW5n dWFnZV9vYmpjOgogICAgICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlX3NwZWNp ZmljLmNwbHVzX3NwZWNpZmljLmRlbWFuZ2xlZF9uYW1lICE9IE5VTEwpCkBA IC0xMjAwLDcgKzEyMTMsNyBAQCBsb29rdXBfc3ltYm9sX2luX2xhbmd1YWdl IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2Nr LAogCiAgIG1vZGlmaWVkX25hbWUgPSBuYW1lOwogCi0gIC8qIElmIHdlIGFy ZSB1c2luZyBDKysgb3IgSmF2YSwgZGVtYW5nbGUgdGhlIG5hbWUgYmVmb3Jl IGRvaW5nIGEgbG9va3VwLCBzbworICAvKiBJZiB3ZSBhcmUgdXNpbmcgQysr LCBELCBvciBKYXZhLCBkZW1hbmdsZSB0aGUgbmFtZSBiZWZvcmUgZG9pbmcg YSBsb29rdXAsIHNvCiAgICAgIHdlIGNhbiBhbHdheXMgYmluYXJ5IHNlYXJj aC4gKi8KICAgaWYgKGxhbmcgPT0gbGFuZ3VhZ2VfY3BsdXMpCiAgICAgewpA QCAtMTIyMyw2ICsxMjM2LDE2IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3Vh Z2UgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxv Y2ssCiAJICAgIH0KIAl9CiAgICAgfQorICBlbHNlIGlmIChjdXJyZW50X2xh bmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBsYW5ndWFnZV9kKQorICAgIHsKKyAg ICAgIGRlbWFuZ2xlZF9uYW1lID0gZF9kZW1hbmdsZSAobmFtZSwgMCk7Cisg ICAgICBpZiAoZGVtYW5nbGVkX25hbWUpCisJeworCSAgbWFuZ2xlZF9uYW1l ID0gbmFtZTsKKwkgIG1vZGlmaWVkX25hbWUgPSBkZW1hbmdsZWRfbmFtZTsK KwkgIG1ha2VfY2xlYW51cCAoeGZyZWUsIGRlbWFuZ2xlZF9uYW1lKTsKKwl9 CisgICAgfQogICBlbHNlIGlmIChsYW5nID09IGxhbmd1YWdlX2phdmEpCiAg ICAgewogICAgICAgZGVtYW5nbGVkX25hbWUgPSBjcGx1c19kZW1hbmdsZSAo bmFtZSwKQEAgLTE2NjksNiArMTY5Miw3IEBAIHN5bWJvbF9tYXRjaGVzX2Rv bWFpbiAoZW51bSBsYW5ndWFnZSBzeW1ib2xfbGFuZ3VhZ2UsCiAgICAgIEEg SmF2YSBjbGFzcyBkZWNsYXJhdGlvbiBhbHNvIGRlZmluZXMgYSB0eXBlZGVm IGZvciB0aGUgY2xhc3MuCiAgICAgIFNpbWlsYXJseSwgYW55IEFkYSB0eXBl IGRlY2xhcmF0aW9uIGltcGxpY2l0bHkgZGVmaW5lcyBhIHR5cGVkZWYuICAq LwogICBpZiAoc3ltYm9sX2xhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCisg ICAgICB8fCBzeW1ib2xfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZAogICAgICAg fHwgc3ltYm9sX2xhbmd1YWdlID09IGxhbmd1YWdlX2phdmEKICAgICAgIHx8 IHN5bWJvbF9sYW5ndWFnZSA9PSBsYW5ndWFnZV9hZGEpCiAgICAgewo= --00151758a84ea15eae04715e5b5d--