From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from 163.com (m12.mail.163.com [220.181.12.199]) by sourceware.org (Postfix) with ESMTP id A05123858D32 for ; Fri, 13 Jan 2023 05:25:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A05123858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=163.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:Content-Type:MIME-Version: Message-ID; bh=hLrSylN9/9RXTwjYxnVRWAzmLjoK1K4ComZG2wjo7Eg=; b=S sbAHDGeBM52S0U8IsETBsDAZCX1GUcUEWNAjEQlmgN6FZpSQvBTLlNjTiiwI7a/S AO2QuzK/X893Cj9PpyCZy0JIFzU5J1C2OFjEE7HHqkuh8+rxemblr0AB0y5RFHeP JsDQhbtSVr8gbCYK7x3N9krKg/2yakOsB6lFviZgkM= Received: from linuxmaker$163.com ( [183.197.94.254] ) by ajax-webmail-wmsvr25 (Coremail) ; Fri, 13 Jan 2023 13:24:56 +0800 (CST) X-Originating-IP: [183.197.94.254] Date: Fri, 13 Jan 2023 13:24:56 +0800 (CST) From: Zheng To: "Andrew Burgess" Cc: "Tom Tromey" , "Zheng Zhan Liang via Gdb-patches" , "Zheng Zhan" Subject: Re:Re:Re:Re: [PATCH] I'm debugging https://github.com/helix-editor/helix.git@63dcaae1b9083396fb3faaef9eaa2421f7e48fb9, which is a editor implemented with rust lang. When I type gdb command below: (gdb) b pars gdb dumped. I got: m_match = 0x7fffd8173cc7 "parse::h3bbecc5bbd82b347" m_ignored_ranges = { first = 0x7fffd8173cbb "::parse::h3bbecc5bbd82b347", second = 0x7fffd8173cc5 "::parse::h3bbecc5bbd82b347" } X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20220708(c4627114) Copyright (c) 2002-2023 www.mailtech.cn 163com In-Reply-To: <875ydbh8th.fsf@redhat.com> References: <20230102124334.120786-1-linuxmaker@163.com> <875ydkd911.fsf@tromey.com> <548304b6.2be2.185850681f6.Coremail.linuxmaker@163.com> <87lemfy7zn.fsf@redhat.com> <52ab60b3.2c1b.1858b741466.Coremail.linuxmaker@163.com> <875ydbh8th.fsf@redhat.com> X-NTES-SC: AL_QuycAfmTuEwi4CKfbekXmE4Sges4WMW4s/wh2I9XN5k0kinA/gIgcWdBPkHpwuGxBCaOqAC7dSZ899R2R6VnR62tawY/oAXttaxGPLbJvR42 Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=GBK MIME-Version: 1.0 Message-ID: <61496177.3025.185a996955a.Coremail.linuxmaker@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID:_____wDX3wsp68BjmrwDAA--.1228W X-CM-SenderInfo: polq35ppdnv2i6rwjhhfrp/xtbBMwn15WI0hnQ4NAAAsC X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: QXQgMjAyMy0wMS0xMyAwMzowNjowMiwgIkFuZHJldyBCdXJnZXNzIiA8YWJ1cmdlc3NAcmVkaGF0 LmNvbT4gd3JvdGU6Cj5aaGVuZyA8bGludXhtYWtlckAxNjMuY29tPiB3cml0ZXM6Cj4KPj4gQXQg MjAyMy0wMS0wNiAyMzo1Mzo0OCwgIkFuZHJldyBCdXJnZXNzIiA8YWJ1cmdlc3NAcmVkaGF0LmNv bT4gd3JvdGU6Cj4+PmxpbnV4bWFrZXIgdmlhIEdkYi1wYXRjaGVzIDxnZGItcGF0Y2hlc0Bzb3Vy Y2V3YXJlLm9yZz4gd3JpdGVzOgo+Pj4KPj4+PiBBdCAyMDIzLTAxLTA2IDA0OjI0OjQyLCAiVG9t IFRyb21leSIgPHRvbUB0cm9tZXkuY29tPiB3cm90ZToKPj4+Pj4+Pj4+PiAiWmhlbmciID09IFpo ZW5nIFpoYW4gTGlhbmcgdmlhIEdkYi1wYXRjaGVzIDxnZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9y Zz4gd3JpdGVzOgo+Pj4+Pgo+Pj4+PlpoZW5nPiBGcm9tOiBaaGVuZyBaaGFuIDx6emxvc3NkZXZA MTYzLmNvbT4KPj4+Pj4KPj4+Pj5IaS4gIFRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgo+Pj4+Pgo+ Pj4+PlRoZSB0ZXh0IGFsbCBzZWVtZWQgdG8gZW5kIHVwIGluIHRoZSBTdWJqZWN0IGxpbmUuICBQ cm9iYWJseSB5b3UgbmVlZAo+Pj4+PmFub3RoZXIgbmV3bGluZSBhZnRlciB0aGUgZmlyc3QgbGlu ZSBvZiB0aGUgY29tbWl0IG1lc3NhZ2UuCj4+Pj4+Cj4+Pj4+Wmhlbmc+IC0tLSBhL2dkYi9jb21w bGV0ZXIuaAo+Pj4+PlpoZW5nPiArKysgYi9nZGIvY29tcGxldGVyLmgKPj4+Pj5aaGVuZz4gQEAg LTE2Myw4ICsxNjMsMTEgQEAgY2xhc3MgY29tcGxldGlvbl9tYXRjaF9mb3JfbGNkCj4+Pj4+Wmhl bmc+ICAJY29uc3QgY2hhciAqcHJldiA9IG1fbWF0Y2g7Cj4+Pj4+Wmhlbmc+ICAJZm9yIChjb25z dCBhdXRvICZyYW5nZSA6IG1faWdub3JlZF9yYW5nZXMpCj4+Pj4+Wmhlbmc+ICAJICB7Cj4+Pj4+ Wmhlbmc+IC0JICAgIG1fZmluaXNoZWRfc3RvcmFnZS5hcHBlbmQgKHByZXYsIHJhbmdlLmZpcnN0 KTsKPj4+Pj5aaGVuZz4gLQkgICAgcHJldiA9IHJhbmdlLnNlY29uZDsKPj4+Pj5aaGVuZz4gKyAg ICAgICAgICAgIGlmIChwcmV2IDwgcmFuZ2UuZmlyc3QpCj4+Pj4+Wmhlbmc+ICsgICAgICAgICAg ICAgIHsKPj4+Pj5aaGVuZz4gKyAgICAgICAgICAgICAgICBtX2ZpbmlzaGVkX3N0b3JhZ2UuYXBw ZW5kIChwcmV2LCByYW5nZS5maXJzdCk7Cj4+Pj4+Wmhlbmc+ICsgICAgICAgICAgICAgICAgcHJl diA9IHJhbmdlLnNlY29uZDsKPj4+Pj5aaGVuZz4gKyAgICAgICAgICAgICAgfQo+Pj4+Pgo+Pj4+ PklzIHRoZXJlIGFueSB3YXkgdG8gY29uc3RydWN0IGEgdGVzdCBjYXNlIGZvciB0aGlzPwo+Pj4+ IHNlZW1zIHByZXR0eSBjb21tb24gaW4gcnVzdC4geW91IGNhbiB0ZXN0IGl0IGxpa2UgYmVsb3c6 Cj4+Pj4gZm4gbWFpbigpIHsKPj4+PiAgICAgbGV0IGZvdXI6IHU4ID0gIjQiLnBhcnNlKCkudW53 cmFwKCk7Cj4+Pj4gICAgIHByaW50bG4hKCJ7fSIsIGZvdXIpOwo+Pj4+IH0KPj4+PiAoZ2RiKSBi IHBhcnNbVEFCXQo+Pj4KPj4+SSBoYXZlbid0IHJldmlld2VkIHRoZSBmaXguICBCdXQgaW4gY2Fz ZSB0aGlzIG1ha2VzIGl0IGVhc2llciBmb3IKPj4gSSd2ZSBkb25lIGEgbGl0dGxlIG1vcmUgZGln Z2luZy4gQW5kIEl0IGxvb2tzIGxpa2UgYHN0cm5jbXBfaXdfd2l0aF9tb2RlYCBjYWNoZWQKPj4g dGhlIGxhc3QgYG1hcmtfaWdub3JlZF9yYW5nZWAgc2V0dGluZywgIHRoZW4gY3JhcCB0aGUgY3Vy cmVudCBvbmUuCj4+IEkgcGFzdGUgYSBuZXdlciBwYXRjaCBhdCB0aGUgYm90dG9tLCBhbmQgaXQg c2VlbXMgd29yayBmb3IgbWUuCj4KPlRoYW5rcywgSSB3YXMgYWxzbyBsb29raW5nIGF0IHRoZSBz YW1lIGFyZWEgb2YgY29kZSwgd29uZGVyaW5nIGlmIHRoYXQKPndvdWxkIGJlIGEgYmV0dGVyIHBs YWNlIGZvciB0aGUgZml4Lgo+Cj5JJ2QgYWN0dWFsbHkgbGlrZSB0byBwcm9wb3NlIHRoYXQgdGhl IGZpeCBiZSBtb3ZlZCBvbmUgZnJhbWUgdXAgdGhlCj5zdGFjayB0byBjcF9zeW1ib2xfbmFtZV9t YXRjaGVzXzEsIG15IHJlYXNvbnMgYXJlIGV4cGxhaW5lZCBpbiB0aGUgcGF0Y2gKPmJlbG93Lgo+ Cj5BZGRpdGlvbmFsbHksIEkndmUgbm93IG1hbmFnZWQgdG8gcmVwcm9kdWNlIHRoZSBjcmFzaCB3 aGVuIGNvbXBsZXRpbmcgYQo+QysrIHN5bWJvbCwgd2hpY2ggbWVhbnMgd2UgaGF2ZSBhIG11Y2gg bW9yZSByZWxpYWJsZSB0ZXN0IC0gaXQgZG9lc24ndAo+ZGVwZW5kIG9uIHN5bWJvbHMgYmVpbmcg cHVsbGVkIGluIGZyb20gdGhlIHJ1c3QgcnVudGltZSwgd2hpY2ggbWlnaHQKPmNoYW5nZSBpbiB0 aGUgZnV0dXJlLgo+Cj5UaGUgcGF0Y2ggYmVsb3cgaXMgbXkgcHJvcG9zYWwgZm9yIHdoYXQgd2Ug c2hvdWxkIG1lcmdlLgo+Cj5BbGwgZmVlZGJhY2sgd2VsY29tZS4KPgo+VGhhbmtzLAo+QW5kcmV3 Cj4KPi0tCj4KPmNvbW1pdCA0NjcwNjVjN2EyNWE2ZmM4N2ZhYjZjNzNhYzZkN2Q1MDlhYWU4MWI2 Cj5BdXRob3I6IEFuZHJldyBCdXJnZXNzIDxhYnVyZ2Vzc0ByZWRoYXQuY29tPgo+RGF0ZTogICBG cmkgSmFuIDYgMTU6NTA6MjYgMjAyMyArMDAwMAo+Cj4gICAgZ2RiOiBmaXggY3Jhc2ggZHVyaW5n IGNvbW1hbmQgY29tcGxldGlvbgo+ICAgIAo+ICAgIEluIHNvbWUgY2FzZXMgR0RCIHdpbGwgZmFp bCB3aGVuIGF0dGVtcHRpbmcgdG8gY29tcGxldGUgYSBjb21tYW5kIHRoYXQKPiAgICBpbnZvbHZl cyBhIHJ1c3Qgc3ltYm9sLCB0aGUgZmFpbHVyZSBjYW4gbWFuaWZlc3QgYXMgYSBjcmFzaC4KPiAg ICAKPiAgICBUaGUgcHJvYmxlbSBpcyBjYXVzZWQgYnkgdGhlIGNvbXBsZXRpb25fbWF0Y2hfZm9y X2xjZCBvYmplY3QgYmVpbmcKPiAgICBsZWZ0IGNvbnRhaW5pbmcgaW52YWxpZCBkYXRhIGR1cmlu ZyBjYWxscyB0byBjcF9zeW1ib2xfbmFtZV9tYXRjaGVzXzEuCj4gICAgCj4gICAgVGhlIGZpcnN0 IHF1ZXN0aW9uIHRvIGFkZHJlc3MgaXMgd2h5IHdlIGFyZSBjYWxsaW5nIGEgQysrIHN1cHBvcnQK PiAgICBmdW5jdGlvbiB3aGVuIGhhbmRsaW5nIGEgcnVzdCBzeW1ib2wuICBUaGF0J3MgZHVlIHRv IEdEQidzIGF1dG8KPiAgICBsYW5ndWFnZSBkZXRlY3Rpb24gZm9yIG1zeW1ib2xzLCBpbiBzb21l IGNhc2VzIEdEQiBjYW4ndCB0ZWxsIGlmIGEKPiAgICBzeW1ib2wgaXMgYSBydXN0IHN5bWJvbCwg b3IgYSBDKysgc3ltYm9sLgo+ICAgIAo+ICAgIFRoZSB0ZXN0IGFwcGxpY2F0aW9uIGNvbnRhaW5z IHN5bWJvbHMgZm9yIGZ1bmN0aW9ucyB3aGljaCBhcmUKPiAgICBzdGF0aWNhbGx5IGxpbmtlZCBp biBmcm9tIHZhcmlvdXMgcnVzdCBzdXBwb3J0IGxpYnJhcmllcy4gIFRoZXJlJ3Mgbm8KPiAgICBE V0FSRiBmb3IgdGhlc2Ugc3ltYm9scywgc28gYWxsIEdEQiBoYXMgaXMgdGhlIG1zeW1ib2xzIGJ1 aWx0IGZyb20gdGhlCj4gICAgRUxGIHN5bWJvbCB0YWJsZS4KPiAgICAKPiAgICBIZXJlJ3MgdGhl IHByb2JsZW1hdGljIHN5bWJvbCB0aGF0IGxlYWRzIHRvIG91ciBjcmFzaDoKPiAgICAKPiAgICAg ICAgbWFuZ2xlZDogX1pONGNvcmUzc3RyMjFfJExUJGltcGwkdTIwJHN0ciRHVCQ1cGFyc2UxN2g1 MTExZDJkNmE1MGQyMmJkRQo+ICAgICAgZGVtYW5nbGVkOiBjb3JlOjpzdHI6OjxpbXBsIHN0cj46 OnBhcnNlCj4gICAgCj4gICAgQXMgYW4gbXN5bWJvbCB0aGlzIGlzIGluaXRpYWxseSBjcmVhdGVk IHdpdGggbGFuZ3VhZ2UgYXV0bywgdGhlbiBHREIKPiAgICBldmVudHVhbGx5IGNhbGxzIHN5bWJv bF9maW5kX2RlbWFuZ2xlZF9uYW1lLCB3aGljaCBsb29wcyBvdmVyIGFsbAo+ICAgIGxhbmd1YWdl cyBjYWxsaW5nIGxhbmd1YWdlX2RlZm46OnNuaWZmX2Zyb21fbWFuZ2xlZF9uYW1lLCB0aGUgZmly c3QKPiAgICBsYW5ndWFnZSB0aGF0IGNhbiBkZW1hbmdsZSB0aGUgc3ltYm9sIGdldHMgYXNzaWdu ZWQgYXMgdGhlIGxhbmd1YWdlCj4gICAgZm9yIHRoYXQgc3ltYm9sLgo+ICAgIAo+ICAgIFVuZm9y dHVuYXRlbHksIHRoZXJlJ3Mgb3ZlcmxhcCBpbiB0aGUgbWFuZ2xlZCBzeW1ib2wgbmFtZXMsCj4g ICAgc29tZSAobGVnYWN5KSBydXN0IHN5bWJvbHMgY2FuIGJlIGRlbWFuZ2xlZCBhcyBib3RoIHJ1 c3QgYW5kIEMrKywgc2VlCj4gICAgY3BsdXNfZGVtYW5nbGUgaW4gbGliaWJlcnR5L2NwbHVzLWRl bS5jIHdoZXJlIHRoaXMgaXMgbWVudGlvbmVkLgo+ICAgIAo+ICAgIEFuZCBzbywgYmVjYXVzZSB3 ZSBjaGVjayB0aGUgQysrIGxhbmd1YWdlIGJlZm9yZSB3ZSBjaGVjayBmb3IgcnVzdCwKPiAgICB0 aGVuIHRoZSBtc3ltYm9sIGlzIChpbmNvcnJlY3RseSkgZ2l2ZW4gdGhlIEMrKyBsYW5ndWFnZS4K PiAgICAKPiAgICBOb3cgaXQncyB0cnVlIHRoYXQgaXMgc29tZSBjYXNlcyB3ZSBtaWdodCBiZSBh YmxlIHRvIGZpZ3VyZSBvdXQgdGhhdCBhCj4gICAgZGVtYW5nbGVkIHN5bWJvbCBpcyBub3QgYWN0 dWFsbHkgYSB2YWxpZCBDKysgc3ltYm9sLCBmb3IgZXhhbXBsZSwgaW4KPiAgICBvdXIgY2FzZSwg dGhlIGNvbnN0cnVjdCAnOjo8aW1wbCBzdHI+OjonIGlzIG5vdCwgSSBiZWxpZXZlLCB2YWxpZCBp biBhCj4gICAgQysrIHN5bWJvbCwgd2UgY291bGQgbG9vayBmb3IgJzo8JyBhbmQgJz46JyBhbmQg cmVmdXNlIHRvIGFjY2VwdCB0aGlzCj4gICAgYXMgYSBDKysgc3ltYm9sLgo+ICAgIAo+ICAgIEhv d2V2ZXIsIEknbSBub3Qgc3VyZSBpdCBpcyBhbHdheXMgcG9zc2libGUgdG8gdGVsbCB0aGF0IGEg ZGVtYW5nbGVkCj4gICAgc3ltYm9sIGlzIHJ1c3Qgb3IgQysrLCBzbywgSSB0aGluaywgd2UgaGF2 ZSB0byBhY2NlcHQgdGhhdCBzb21lIHRpbWVzCj4gICAgd2Ugd2lsbCBnZXQgdGhpcyBsYW5ndWFn ZSBkZXRlY3Rpb24gd3JvbmcuCj4gICAgCj4gICAgSWYgd2UgYWNjZXB0IHRoYXQgd2UgY2FuJ3Qg Zml4IHRoZSBzeW1ib2wgbGFuZ3VhZ2UgZGV0ZWN0aW9uIDEwMCUgb2YKPiAgICB0aGUgdGltZSwg dGhlbiB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgR0RCIGRvZXNuJ3QgY3Jhc2ggd2hlbiBpdCBn ZXRzCj4gICAgdGhlIGxhbmd1YWdlIHdyb25nLCB0aGF0IGlzIHdoYXQgdGhpcyBjb21taXQgYWRk cmVzc2VzLgo+ICAgIAo+ICAgIEluIG91ciB0ZXN0IGNhc2UgdGhlIHVzZXIgdHJpZXMgdG8gY29t cGxldGUgYSBzeW1ib2wgbmFtZSBsaWtlIHRoaXM6Cj4gICAgCj4gICAgICAoZ2RiKSBjb21wbGV0 ZSBicmVhayBwYXJzCj4gICAgCj4gICAgVGhpcyByZXN1bHRzIGluIEdEQiB0cnlpbmcgdG8gZmlu ZCBhbGwgc3ltYm9scyB0aGF0IG1hdGNoICdwYXJzJywKPiAgICBldmVudHVhbGx5IHdlIGNvbnNp ZGVyIG91ciBwcm9ibGVtYXRpYyBzeW1ib2wsIGFuZCB3ZSBlbmQgdXAgd2l0aCBhCj4gICAgY2Fs bCBzdGFjayB0aGF0IGxvb2tzIGxpa2UgdGhpczoKPiAgICAKPiAgICAgICMwICAweDAwMDAwMDAw MDBmM2M2YmQgaW4gc3RybmNtcF9pd193aXRoX21vZGUKPiAgICAgICMxICAweDAwMDAwMDAwMDA3 MDZkOGQgaW4gY3Bfc3ltYm9sX25hbWVfbWF0Y2hlc18xCj4gICAgICAjMiAgMHgwMDAwMDAwMDAw NzA2ZmE0IGluIGNwX3N5bWJvbF9uYW1lX21hdGNoZXMKPiAgICAgICMzICAweDAwMDAwMDAwMDBk ZjNjNDUgaW4gY29tcGFyZV9zeW1ib2xfbmFtZQo+ICAgICAgIzQgIDB4MDAwMDAwMDAwMGRmM2M5 MSBpbiBjb21wbGV0aW9uX2xpc3RfYWRkX25hbWUKPiAgICAgICM1ICAweDAwMDAwMDAwMDBkZjNm MWQgaW4gY29tcGxldGlvbl9saXN0X2FkZF9tc3ltYm9sCj4gICAgICAjNiAgMHgwMDAwMDAwMDAw ZGY0Yzk0IGluIGRlZmF1bHRfY29sbGVjdF9zeW1ib2xfY29tcGxldGlvbl9tYXRjaGVzX2JyZWFr X29uCj4gICAgICAjNyAgMHgwMDAwMDAwMDAwNjU4YzA4IGluIGxhbmd1YWdlX2RlZm46OmNvbGxl Y3Rfc3ltYm9sX2NvbXBsZXRpb25fbWF0Y2hlcwo+ICAgICAgIzggIDB4MDAwMDAwMDAwMGRmNTRj OSBpbiBjb2xsZWN0X3N5bWJvbF9jb21wbGV0aW9uX21hdGNoZXMKPiAgICAgICM5ICAweDAwMDAw MDAwMDA5ZDk4ZmIgaW4gbGluZXNwZWNfY29tcGxldGVfZnVuY3Rpb24KPiAgICAgICMxMCAweDAw MDAwMDAwMDA5ZDk5ZjAgaW4gY29tcGxldGVfbGluZXNwZWNfY29tcG9uZW50Cj4gICAgICAjMTEg MHgwMDAwMDAwMDAwOWRhMjAwIGluIGxpbmVzcGVjX2NvbXBsZXRlCj4gICAgICAjMTIgMHgwMDAw MDAwMDAwNmU0MTMyIGluIGNvbXBsZXRlX2FkZHJlc3NfYW5kX2xpbmVzcGVjX2xvY2F0aW9ucwo+ ICAgICAgIzEzIDB4MDAwMDAwMDAwMDZlNGFjMyBpbiBsb2NhdGlvbl9jb21wbGV0ZXIKPiAgICAK PiAgICBJbiBjcF9zeW1ib2xfbmFtZV9tYXRjaGVzXzEgd2UgZW50ZXIgYSBsb29wLCB0aGlzIGxv b3AgcmVwZWF0ZWRseQo+ICAgIHRyaWVzIHRvIG1hdGNoIHRoZSBkZW1hbmdsZWQgcHJvYmxlbWF0 aWMgc3ltYm9sIG5hbWUgYWdhaW5zdCB0aGUgdXNlcgo+ICAgIHN1cHBsaWVkIHRleHQgKCdwYXJz JykuICBFYWNoIHRpbWUgYXJvdW5kIHRoZSBsb29wIGFub3RoZXIgY29tcG9uZW50Cj4gICAgb2Yg dGhlIHN5bWJvbCBuYW1lIGlzIHN0cmlwcGVkIG9mZiwgdGh1cywgd2UgY2hlY2sgJ3BhcnMnIGFn YWluc3QKPiAgICB0aGVzZSBvcHRpb25zOgo+ICAgIAo+ICAgICAgY29yZTo6c3RyOjo8aW1wbCBz dHI+OjpwYXJzZQo+ICAgICAgc3RyOjo8aW1wbCBzdHI+OjpwYXJzZQo+ICAgICAgPGltcGwgc3Ry Pjo6cGFyc2UKPiAgICAgIHBhcnNlCj4gICAgCj4gICAgQXMgc29vbiBhcyB3ZSBnZXQgYSBtYXRj aCB0aGUgY3Bfc3ltYm9sX25hbWVfbWF0Y2hlc18xIGV4aXRzIGl0cyBsb29wCj4gICAgYW5kIHJl dHVybnMuICBJbiBvdXIgY2FzZSwgd2hlbiB3ZSdyZSBsb29raW5nIGZvciAncGFycycsIHRoZSBt YXRjaAo+ICAgIG9jY3VycyBvbiB0aGUgbGFzdCBpdGVyYXRpb24gb2YgdGhlIGxvb3AsIHdoZW4g d2UgYXJlIGNvbXBhcmluZyB0bwo+ICAgICdwYXJzZScuCj4gICAgCj4gICAgTm93IHRoZSBwcm9i bGVtIGhlcmUgaXMgdGhhdCBjcF9zeW1ib2xfbmFtZV9tYXRjaGVzXzEgdXNlcyB0aGUKPiAgICBz dHJuY21wX2l3X3dpdGhfbW9kZSwgYW5kIGluc2lkZSBzdHJuY21wX2l3X3dpdGhfbW9kZSB3ZSBh bGxvdyBmb3IKPiAgICBza2lwcGluZyBvdmVyIHRlbXBsYXRlIHBhcmFtZXRlcnMuICBUaGlzIGFs bG93cyBHREIgdG8gbWF0Y2ggdGhlCj4gICAgc3ltYm9sIG5hbWUgJ2ZvbzxpbnQ+KGludCxpbnQp JyBpZiB0aGUgdXNlciBzdXBwbGllcyAnZm9vKGludCwnLgo+ICAgIEluc2lkZSBzdHJuY21wX2l3 X3dpdGhfbW9kZSBHREIgd2lsbCByZWNvcmQgYW55IHRlbXBsYXRlIGFyZ3VtZW50cwo+ICAgIHRo YXQgaXQgaGFzIHNraXBwZWQgb3ZlciBpbnNpZGUgdGhlIGNvbXBsZXRpb25fbWF0Y2hfZm9yX2xj ZCBvYmplY3QKPiAgICB0aGF0IGlzIHBhc3NlZCBpbiBhcyBhbiBhcmd1bWVudC4KPiAgICAKPiAg ICBBbmQgc28sIHdoZW4gR0RCIHRyaWVzIHRvIG1hdGNoIGFnYWluc3QgJzxpbXBsIHN0cj46OnBh cnNlJywgdGhlIGZpcnN0Cj4gICAgdGhpbmcgaXQgc2VlcyBpcyAnPGltcGwgc3RyPicsIEdEQiBh c3N1bWVzIHRoaXMgaXMgYSB0ZW1wbGF0ZSBhcmd1bWVudAo+ICAgIGFuZCByZWNvcmRzIHRoaXMg YXMgYSBza2lwcGVkIHJlZ2lvbiB3aXRoaW4gdGhlCj4gICAgY29tcGxldGlvbl9tYXRjaF9mb3Jf bGNkIG9iamVjdC4gIEFmdGVyICc8aW1wbCBzdHI+JyBHREIgc2VlcyBhICc6Jwo+ICAgIGNoYXJh Y3Rlciwgd2hpY2ggZG9lc24ndCBtYXRjaCB3aXRoIHRoZSAncGFycycgdGhlIHVzZXIgc3VwcGxp ZWQsIHNvCj4gICAgc3RybmNtcF9pd193aXRoX21vZGUgcmV0dXJucyBhIHZhbHVlIGluZGljYXRp bmcgYSBub24tbWF0Y2guICBHREIgdGhlbgo+ICAgIHJlbW92ZXMgdGhlICc8aW1wbCBzdHI+JyBj b21wb25lbnQgZnJvbSB0aGUgc3ltYm9sIG5hbWUgYW5kIHRyaWVzCj4gICAgYWdhaW4sIHRoaXMg dGltZSBjb21wYXJpbmcgdG8gJ3BhcnNlJywgd2hpY2ggZG9lcyBtYXRjaC4KPiAgICAKPiAgICBI YXZpbmcgZm91bmQgYSBtYXRjaCwgdGhlbiBpbiBjcF9zeW1ib2xfbmFtZV9tYXRjaGVzXzEgd2Ug cmVjb3JkIHRoZQo+ICAgIG1hdGNoIHN0cmluZywgYW5kIHRoZSBmdWxsIHN5bWJvbCBuYW1lIHdp dGhpbiB0aGUKPiAgICBjb21wbGV0aW9uX21hdGNoX3Jlc3VsdCBvYmplY3QsIGFuZCByZXR1cm4u Cj4gICAgCj4gICAgVGhlIHByb2JsZW0gaGVyZSBpcyB0aGF0IHRoZSBza2lwcGVkIHJlZ2lvbiwg dGhlICc8aW1wbCBzdHI+JyB0aGF0IHdlCj4gICAgcmVjb3JkZWQgaW4gdGhlIHBlbnVsdGltYXRl IGxvb3AgaXRlcmF0aW9uIHdhcyBuZXZlciBkaXNjYXJkZWQsIGl0cwo+ICAgIHN0aWxsIHRoZXJl IGluIG91ciByZXR1cm5lZCByZXN1bHQuCj4gICAgCj4gICAgSWYgd2UgbG9vayBhdCB3aGF0IHRo ZSBwb2ludGVycyBoZWxkIGluIHRoZSBjb21wbGV0aW9uX21hdGNoX3Jlc3VsdAo+ICAgIHRoYXQg Y3Bfc3ltYm9sX25hbWVfbWF0Y2hlc18xIHJldHVybnMsIHRoaXMgaXMgd2hhdCB3ZSBzZWU6Cj4g ICAgCj4gICAgICBjb3JlOjpzdHI6OjxpbXBsIHN0cj46OnBhcnNlCj4gICAgICB8ICAgICAgICAg IFxfX19fX19fXy8gIHwKPiAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgJy0tLSBjb21wbGV0 aW9uIG1hdGNoIHN0cmluZwo+ICAgICAgfCAgICAgICAgICAgICAgICctLS1za2lwIHJhbmdlCj4g ICAgICAnLS0tIGZ1bGwgc3ltYm9sIG5hbWUKPiAgICAKPiAgICBXaGVuIEdEQiBjYWxscyBjb21w bGV0aW9uX21hdGNoX2Zvcl9sY2Q6OmZpbmlzaCwgR0RCIHRyaWVzIHRvIGNyZWF0ZSBhCj4gICAg c3RyaW5nIHVzaW5nIHRoZSBjb21wbGV0aW9uIG1hdGNoIHN0cmluZyAocGFyc2UpLCBidXQgZXhj bHVkaW5nIHRoZQo+ICAgIHNraXAgcmFuZ2UsIGFzIHRoZSBzdG9yZWQgc2tpcCByYW5nZSBpcyBi ZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZQo+ICAgIGNvbXBsZXRpb24gbWF0Y2ggc3RyaW5nLCB0aGVu IEdEQiB0cmllcyB0byBkbyBzb21lIHdlaXJkIHN0cmluZwo+ICAgIGNyZWF0aW9uLCB3aGljaCB3 aWxsIGNhdXNlIEdEQiB0byBjcmFzaC4KPiAgICAKPiAgICBUaGUgcmVhc29uIHdlIGRvbid0IG9m dGVuIHNlZSB0aGlzIHByb2JsZW0gaW4gQysrIGlzIHRoYXQgZm9yIEMrKwo+ICAgIHN5bWJvbHMg dGhlcmUgaXMgYWx3YXlzIHNvbWUgbm9uLXRlbXBsYXRlIHRleHQgYmVmb3JlIHRoZSB0ZW1wbGF0 ZQo+ICAgIGFyZ3VtZW50LiAgVGhpcyBub24tdGVtcGxhdGUgdGV4dCBtZWFucyBHREIgaXMgbGlr ZWx5IHRvIGVpdGhlciBtYXRjaAo+ICAgIHRoZSBzeW1ib2wsIG9yIHJlamVjdCB0aGUgc3ltYm9s IHdpdGhvdXQgc3RvcmluZyBhIHNraXAgcmFuZ2UuCj4gICAgCj4gICAgSG93ZXZlciwgbm90aWNl LCBJIGRpZCBzYXksIHdlIGRvbid0IG9mdGVuIHNlZSB0aGlzIHByb2JsZW0uICBPbmNlIEkKPiAg ICB1bmRlcnN0b29kIHRoZSBpc3N1ZSwgSSB3YXMgYWJsZSB0byByZXByb2R1Y2UgdGhlIGNyYXNo IHVzaW5nIGEgcHVyZQo+ICAgIEMrKyBleGFtcGxlOgo+ICAgIAo+ICAgICAgdGVtcGxhdGU8dHlw ZW5hbWUgUz4KPiAgICAgIHN0cnVjdCBmb28KPiAgICAgIHsKPiAgICAgICAgdGVtcGxhdGU8dHlw ZW5hbWUgVD4KPiAgICAgICAgZm9vIChpbnQgcDEsIFQgYSkKPiAgICAgICAgewo+ICAgICAgICAg IHMgPSAwOwo+ICAgICAgICB9Cj4gICAgCj4gICAgICAgIFMgczsKPiAgICAgIH07Cj4gICAgCj4g ICAgICBpbnQKPiAgICAgIG1haW4gKCkKPiAgICAgIHsKPiAgICAgICAgZm9vPGludD4gb2JqICgy LjMsIDApOwo+ICAgICAgICByZXR1cm4gMDsKPiAgICAgIH0KPiAgICAKPiAgICBUaGVuIGluIEdE QjoKPiAgICAKPiAgICAgIChnZGIpIGNvbXBsZXRlIGJyZWFrIGZvbyhpbnQKPiAgICAKPiAgICBU aGUgcHJvYmxlbSBoZXJlIGlzIHRoYXQgdGhlIEMrKyBzeW1ib2wgZm9yIHRoZSBjb25zdHJ1Y3Rv ciBsb29rcyBsaWtlCj4gICAgdGhpczoKPiAgICAKPiAgICAgIGZvbzxpbnQ+Ojpmb288ZG91Ymxl PihpbnQsIGRvdWJsZSkKPiAgICAKPiAgICBXaGVuIEdEQiBlbnRlcnMgY3Bfc3ltYm9sX25hbWVf bWF0Y2hlc18xIHRoZSBzeW1ib2xzIGl0IGV4YW1pbmVzIGFyZToKPiAgICAKPiAgICAgIGZvbzxp bnQ+Ojpmb288ZG91YmxlPihpbnQsIGRvdWJsZSkKPiAgICAgIGZvbzxkb3VibGU+KGludCwgZG91 YmxlKQo+ICAgIAo+ICAgIFRoZSBmaXJzdCBpdGVyYXRpb24gb2YgdGhlIGxvb3Agd2lsbCBtYXRj aCB0aGUgJ2ZvbycsIHRoZW4gYWRkIHRoZQo+ICAgICc8aW50PicgdGVtcGxhdGUgYXJndW1lbnQg d2lsbCBiZSBhZGRlZCBhcyBhIHNraXAgcmFuZ2UuICBXaGVuIEdEQgo+ICAgIGZpbmQgdGhlICc6 JyBhZnRlciB0aGUgJzxpbnQ+JyB0aGUgZmlyc3QgaXRlcmF0aW9uIG9mIHRoZSBsb29wIGZhaWxz Cj4gICAgdG8gbWF0Y2gsIEdEQiByZW1vdmVzIHRoZSAnZm9vPGludD46OicgY29tcG9uZW50LCBh bmQgc3RhcnRzIHRoZQo+ICAgIHNlY29uZCBpdGVyYXRpb24gb2YgdGhlIGxvb3AuCj4gICAgCj4g ICAgQWdhaW4sIEdEQiBtYXRjaGVzIHRoZSAnZm9vJywgYW5kIG5vdyBhZGRzICc8ZG91YmxlPicg YXMgYSBza2lwCj4gICAgcmVnaW9uLiAgQWZ0ZXIgdGhhdCB0aGUgJyhpbnQnIHN1Y2Nlc3NmdWxs eSBtYXRjaGVzLCBhbmQgc28gdGhlIHNlY29uZAo+ICAgIGl0ZXJhdGlvbiBvZiB0aGUgbG9vcCBz dWNjZWVkcywgYnV0LCBvbmNlIGFnYWluIHdlIGxlZnQgdGhlICc8aW50PicgaW4KPiAgICBwbGFj ZSBhcyBhIHNraXAgcmVnaW9uLCBldmVuIHRob3VnaCB0aGlzIG9jY3VycyBiZWZvcmUgdGhlIHN0 YXJ0IG9mCj4gICAgb3VyIG1hdGNoIHN0cmluZywgYW5kIHRoaXMgd2lsbCBjYXVzZSBHREIgdG8g Y3Jhc2guCj4gICAgCj4gICAgVGhpcyBwcm9ibGVtIHdhcyByZXBvcnRlZCB0byB0aGUgbWFpbGlu ZyBsaXN0LCBhbmQgYSBzb2x1dGlvbgo+ICAgIGRpc2N1c3NlZCBpbiB0aGlzIHRocmVhZDoKPiAg ICAKPiAgICAgIGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2dkYi1wYXRjaGVzLzIw MjMtSmFudWFyeS8xOTUxNjYuaHRtbAo+ICAgIAo+ICAgIFRoZSBzb2x1dGlvbiBwcm9wb3NlZCBo ZXJlIGlzIHNpbWlsYXIgdG8gb25lIHByb3Bvc2VkIGJ5IHRoZSBvcmlnaW5hbAo+ICAgIGJ1ZyBy ZXBvcnRlZCwgYnV0IGltcGxlbWVudGVkIGluIGEgZGlmZmVyZW50IGxvY2F0aW9uIHdpdGhpbiBH REIuCj4gICAgSW5zdGVhZCBvZiBwbGFjaW5nIHRoZSBmaXggaW4gc3RybmNtcF9pd193aXRoX21v ZGUsIEkgcGxhY2UgdGhlIGZpeCBpbgo+ICAgIGNwX3N5bWJvbF9uYW1lX21hdGNoZXNfMS4gIEkg YmVsaWV2ZSB0aGlzIGlzIGEgYmV0dGVyIGxvY2F0aW9uIGFzIGl0Cj4gICAgaXMgdGhpcyBmdW5j dGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIGxvb3AsIGFuZCBpdCBpcyB0aGlzIGxvb3AsIHdoaWNo Cj4gICAgcmVwZWF0ZWRseSBjYWxscyBzdHJuY21wX2l3X3dpdGhfbW9kZSwgdGhhdCBzaG91bGQg YmUgcmVzZXR0aW5nIHRoZQo+ICAgIHJlc3VsdCBvYmplY3Qgc3RhdGUgKEkgYmVsaWV2ZSkuCj4g ICAgCj4gICAgV2hhdCBJIGhhdmUgZG9uZSBpcyBhZGQgYW4gYXNzZXJ0IHRvIHN0cm5jbXBfaXdf d2l0aF9tb2RlIHRoYXQgdGhlCj4gICAgaW5jb21pbmcgcmVzdWx0IG9iamVjdCBpcyBlbXB0eS4K PiAgICAKPiAgICBJJ3ZlIGFsc28gYWRkZWQgc29tZSBvdGhlciBhc3NlcnRzIGluIHJlbGF0ZWQg Y29kZSwgaW4KPiAgICBjb21wbGV0aW9uX21hdGNoX2Zvcl9sY2Q6Om1hcmtfaWdub3JlZF9yYW5n ZSwgSSBtYWtlIHNvbWUgYmFzaWMKPiAgICBhc3NlcnRpb25zIGFib3V0IHRoZSBpbmNvbWluZyBy YW5nZSBwb2ludGVycywgYW5kIGluCj4gICAgY29tcGxldGlvbl9tYXRjaF9mb3JfbGNkOjpmaW5p c2ggSSBhbHNvIG1ha2Ugc29tZSBhc3NlcnRpb25zIGFib3V0IGhvdwo+ICAgIHRoZSBza2lwIHJh bmdlcyByZWxhdGUgdG8gdGhlIG1hdGNoIHBvaW50ZXIuCj4gICAgCj4gICAgVGhlcmUncyB0d28g bmV3IHRlc3RzLiAgVGhlIG9yaWdpbmFsIHJ1c3QgZXhhbXBsZSB0aGF0IHdhcyB1c2VkIGluIHRo ZQo+ICAgIGluaXRpYWwgYnVnIHJlcG9ydCwgYW5kIGEgQysrIHRlc3QuICBUaGUgcnVzdCBleGFt cGxlIGRlcGVuZHMgb24gd2hpY2gKPiAgICBzeW1ib2xzIGFyZSBwdWxsZWQgaW4gZnJvbSB0aGUg cnVzdCBsaWJyYXJpZXMsIHNvIGl0IGlzIHBvc3NpYmxlIHRoYXQsCj4gICAgYXQgc29tZSBmdXR1 cmUgZGF0ZSwgdGhlIHByb2JsZW1hdGljIHN5bWJvbCB3aWxsIGRpc2FwcGVhciBmcm9tIHRoaXMK PiAgICB0ZXN0IHByb2dyYW0uICBUaGUgQysrIHRlc3Qgc2hvdWxkIGJlIG1vcmUgcmVsaWFibGUs IGFzIHRoaXMgb25seQo+ICAgIGRlcGVuZHMgb24gc3ltYm9scyBmcm9tIHdpdGhpbiB0aGUgQysr IHNvdXJjZSBjb2RlLgo+ICAgIAo+ICAgIENvLUF1dGhvcmVkLUJ5OiAgWmhlbmcgWmhhbiA8enps b3NzZGV2QDE2My5jb20+Cj4KPmRpZmYgLS1naXQgYS9nZGIvY29tcGxldGVyLmggYi9nZGIvY29t cGxldGVyLmgKPmluZGV4IDhiNGFkOGVjNGQ0Li42N2QyZmJmOWQzOCAxMDA2NDQKPi0tLSBhL2dk Yi9jb21wbGV0ZXIuaAo+KysrIGIvZ2RiL2NvbXBsZXRlci5oCj5AQCAtMTQ1LDcgKzE0NSwxMiBA QCBjbGFzcyBjb21wbGV0aW9uX21hdGNoX2Zvcl9sY2QKPiAKPiAgIC8qIE1hcmsgdGhlIHJhbmdl IGJldHdlZW4gW0JFR0lOLCBFTkQpIGFzIGlnbm9yZWQuICAqLwo+ICAgdm9pZCBtYXJrX2lnbm9y ZWRfcmFuZ2UgKGNvbnN0IGNoYXIgKmJlZ2luLCBjb25zdCBjaGFyICplbmQpCj4tICB7IG1faWdu b3JlZF9yYW5nZXMuZW1wbGFjZV9iYWNrIChiZWdpbiwgZW5kKTsgfQo+KyAgewo+KyAgICBnZGJf YXNzZXJ0IChiZWdpbiA8IGVuZCk7Cj4rICAgIGdkYl9hc3NlcnQgKG1faWdub3JlZF9yYW5nZXMu ZW1wdHkgKCkKPisJCXx8IG1faWdub3JlZF9yYW5nZXMuYmFjayAoKS5zZWNvbmQgPCBiZWdpbik7 Cj4rICAgIG1faWdub3JlZF9yYW5nZXMuZW1wbGFjZV9iYWNrIChiZWdpbiwgZW5kKTsKPisgIH0K PiAKPiAgIC8qIEdldCB0aGUgcmVzdWx0aW5nIExDRCwgYWZ0ZXIgYSBzdWNjZXNzZnVsIG1hdGNo LiAgSWYgdGhlcmUgYXJlCj4gICAgICBpZ25vcmVkIHJhbmdlcywgdGhlbiB0aGlzIGJ1aWxkcyBh IG5ldyBzdHJpbmcgd2l0aCB0aGUgaWdub3JlZAo+QEAgLTE2MCw5ICsxNjUsMTQgQEAgY2xhc3Mg Y29tcGxldGlvbl9tYXRjaF9mb3JfbGNkCj4gICAgICAgewo+IAltX2ZpbmlzaGVkX3N0b3JhZ2Uu Y2xlYXIgKCk7Cj4gCj4rCWdkYl9hc3NlcnQgKG1faWdub3JlZF9yYW5nZXMuYmFjayAoKS5zZWNv bmQKPisJCSAgICA8PSAobV9tYXRjaCArIHN0cmxlbiAobV9tYXRjaCkpKTsKPisKPiAJY29uc3Qg Y2hhciAqcHJldiA9IG1fbWF0Y2g7Cj4gCWZvciAoY29uc3QgYXV0byAmcmFuZ2UgOiBtX2lnbm9y ZWRfcmFuZ2VzKQo+IAkgIHsKPisJICAgIGdkYl9hc3NlcnQgKHByZXYgPCByYW5nZS5maXJzdCk7 Cj4rCSAgICBnZGJfYXNzZXJ0IChyYW5nZS5zZWNvbmQgPiByYW5nZS5maXJzdCk7Cj4gCSAgICBt X2ZpbmlzaGVkX3N0b3JhZ2UuYXBwZW5kIChwcmV2LCByYW5nZS5maXJzdCk7Cj4gCSAgICBwcmV2 ID0gcmFuZ2Uuc2Vjb25kOwo+IAkgIH0KPkBAIC0xNzksNiArMTg5LDEzIEBAIGNsYXNzIGNvbXBs ZXRpb25fbWF0Y2hfZm9yX2xjZAo+ICAgICBtX2lnbm9yZWRfcmFuZ2VzLmNsZWFyICgpOwo+ICAg fQo+IAo+KyAgLyogUmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgaGFzIGhhZCBubyBtYXRjaCBk YXRhIHNldCBzaW5jZSBpdHMKPisgICAgIGNyZWF0aW9uLCBvciB0aGUgbGFzdCBjYWxsIHRvIGNs ZWFyLiAgKi8KPisgIGJvb2wgZW1wdHkgKCkgY29uc3QKPisgIHsKPisgICAgcmV0dXJuIG1fbWF0 Y2ggPT0gbnVsbHB0ciAmJiBtX2lnbm9yZWRfcmFuZ2VzLmVtcHR5ICgpOwo+KyAgfQo+Kwo+IHBy aXZhdGU6Cj4gICAvKiBUaGUgY29tcGxldGlvbiBtYXRjaCByZXN1bHQgZm9yIExDRC4gIFRoaXMg aXMgdXN1YWxseSBlaXRoZXIgYQo+ICAgICAgcG9pbnRlciBpbnRvIHRvIGEgc3Vic3RyaW5nIHdp dGhpbiBhIHN5bWJvbCdzIG5hbWUsIG9yIHRvIHRoZQo+ZGlmZiAtLWdpdCBhL2dkYi9jcC1zdXBw b3J0LmMgYi9nZGIvY3Atc3VwcG9ydC5jCj5pbmRleCBiN2VkMjEwMWI3OC4uZmI1NzU4ZmY5MTQg MTAwNjQ0Cj4tLS0gYS9nZGIvY3Atc3VwcG9ydC5jCj4rKysgYi9nZGIvY3Atc3VwcG9ydC5jCj5A QCAtMTc3Myw2ICsxNzczLDggQEAgY3Bfc3ltYm9sX25hbWVfbWF0Y2hlc18xIChjb25zdCBjaGFy ICpzeW1ib2xfc2VhcmNoX25hbWUsCj4gICBjb21wbGV0aW9uX21hdGNoX2Zvcl9sY2QgKm1hdGNo X2Zvcl9sY2QKPiAgICAgPSAoY29tcF9tYXRjaF9yZXMgIT0gTlVMTCA/ICZjb21wX21hdGNoX3Jl cy0+bWF0Y2hfZm9yX2xjZCA6IE5VTEwpOwo+IAo+KyAgZ2RiX2Fzc2VydCAobWF0Y2hfZm9yX2xj ZCA9PSBudWxscHRyIHx8IG1hdGNoX2Zvcl9sY2QtPmVtcHR5ICgpKTsKPisKPiAgIHdoaWxlICh0 cnVlKQo+ICAgICB7Cj4gICAgICAgaWYgKHN0cm5jbXBfaXdfd2l0aF9tb2RlIChzbmFtZSwgbG9v a3VwX25hbWUsIGxvb2t1cF9uYW1lX2xlbiwKPkBAIC0xODA2LDYgKzE4MDgsMTEgQEAgY3Bfc3lt Ym9sX25hbWVfbWF0Y2hlc18xIChjb25zdCBjaGFyICpzeW1ib2xfc2VhcmNoX25hbWUsCj4gCSAg cmV0dXJuIHRydWU7Cj4gCX0KPiAKPisgICAgICAvKiBDbGVhciBtYXRjaF9mb3JfbGNkIHNvIHRo ZSBuZXh0IHN0cm5jbXBfaXdfd2l0aF9tb2RlIGNhbGwgc3RhcnRzCj4rCSBmcm9tIHNjcmF0Y2gu ICAqLwo+KyAgICAgIGlmIChtYXRjaF9mb3JfbGNkICE9IG51bGxwdHIpCj4rCW1hdGNoX2Zvcl9s Y2QtPmNsZWFyICgpOwpXZWxsIGRvbmUuIEkgaGF2ZSBhIHF1ZXN0aW9uIGhlcmUsIHdoYXQgaWYg dGhlIGBtYXRjaF9mb3JfbGNkYCBjb21lcyBmcm9tIHRoZSBmaW5hbCBjYWxsIG9mCmBzdHJuY21w X2l3X3dpdGhfbW9kZWAgYW5kIHdoYXQncyBpdCBjb250YWluIG1hdHRlcnM/IEN1cnJlbnRseSwg SSBmaW5kIHR3byBtb3JlIHJlZmVyZW5jZXMgdG8KYHN0cm5tY3BfaXdfd2l0aF9tb2RlYC4gQXJl IHdlIGdvaW5nIHRvIGZpeCBlYWNoIG9uZSBvdXRzaWRlbHk/CgpUaGFua3MsClpoZW5nCj4rCj4g ICAgICAgdW5zaWduZWQgaW50IGxlbiA9IGNwX2ZpbmRfZmlyc3RfY29tcG9uZW50IChzbmFtZSk7 Cj4gCj4gICAgICAgaWYgKHNuYW1lW2xlbl0gPT0gJ1wwJykKPmRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5jcC9jcGNvbXBsZXRpb24uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3Bj b21wbGV0aW9uLmV4cAo+aW5kZXggOTMxZjM3NmEyM2QuLjQ4NjkyZGJjMWY4IDEwMDY0NAo+LS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3Bjb21wbGV0aW9uLmV4cAo+KysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvY3Bjb21wbGV0aW9uLmV4cAo+QEAgLTEzNSwzICsxMzUsNSBAQCB3aXRoX3Rl c3RfcHJlZml4ICJleHByZXNzaW9uIHdpdGggbmFtZXNwYWNlIiB7Cj4gICAgICMgQWRkIGEgZGlz YW1iaWd1YXRpbmcgY2hhcmFjdGVyIGFuZCB3ZSBnZXQgYSB1bmlxdWUgY29tcGxldGlvbi4KPiAg ICAgdGVzdF9nZGJfY29tcGxldGVfdW5pcXVlICJwIFRlc3RfTlM6OmYiICJwIFRlc3RfTlM6OmZv byIKPiB9Cj4rCj4rdGVzdF9nZGJfY29tcGxldGVfdW5pcXVlICJicmVhayBiYXooaW50IiAiYnJl YWsgYmF6KGludCwgZG91YmxlKSIKPmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9w cjk1OTQuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9wcjk1OTQuY2MKPmluZGV4IDU0ZGRhYWZj MGNhLi5iODU0ZDgxMGIxMSAxMDA2NDQKPi0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ByOTU5 NC5jYwo+KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvcHI5NTk0LmNjCj5AQCAtNTIsOCArNTIs MzEgQEAgaW50IHF1eDsKPiAKPiB9IC8qIG5hbWVzcGFjZSBUZXN0X05TICovCj4gCj4rLyogVGhl IGltcG9ydGFudCB0aGluZyB3aXRoIGNsYXNzIGJheiBpcyB0aGF0IGJvdGggdGhlIGNsYXNzIGFu ZCB0aGUKPisgICBjb25zdHJ1Y3RvciBtdXN0IGhhdmUgYSB0ZW1wbGF0ZSBhcmd1bWVudCwgd2Ug bmVlZCB0aGUgc3ltYm9sIHRvIGxvb2sKPisgICBsaWtlOgo+Kwo+KyAgIGJhejxUWVBFXzE+Ojpi YXo8VFlQRV8yPihpbnQsLi4uLndoYXRldmVyLi4uKQo+Kwo+KyAgIEl0IGRvZXNuJ3QgcmVhbGx5 IG1hdHRlciBpZiBUWVBFXzEgYW5kIFRZUEVfMiBhcmUgdGhlIHNhbWUgb3IgZGlmZmVyZW50LAo+ KyAgIGJ1dCB3ZSBjcmVhdGUgdGhlbSBkaWZmZXJlbnRseSBpbiB0aGlzIHRlc3QgYXMgaXQgbWFr ZXMgZGVidWdnaW5nIEdEQgo+KyAgIHNsaWdodGx5IGVhc2llci4gICovCj4rCj4rdGVtcGxhdGU8 dHlwZW5hbWUgUz4KPitzdHJ1Y3QgYmF6Cj4rewo+KyAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KPisg IGJheiAoaW50IHAxLCBUIGEpCj4rICB7Cj4rICAgIHMgPSAwOwo+KyAgfQo+Kwo+KyAgUyBzOwo+ K307Cj4rCj4gaW50IG1haW4gKCkKPiB7Cj4rICBiYXo8aW50PiBvYmogKDIuMywgMC4xKTsKPiAg IC8vIEFub255bW91cyBzdHJ1Y3Qgd2l0aCBtZXRob2QuCj4gICBzdHJ1Y3Qgewo+ICAgICBpbnQg Z2V0KCkgeyByZXR1cm4gNTsgfQo+ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3Qv Y29tcGxldGlvbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L2NvbXBsZXRpb24uZXhwCj5u ZXcgZmlsZSBtb2RlIDEwMDY0NAo+aW5kZXggMDAwMDAwMDAwMDAuLjAwOTIzZGIxNGE2Cj4tLS0g L2Rldi9udWxsCj4rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L2NvbXBsZXRpb24uZXhwCj5A QCAtMCwwICsxLDM0IEBACj4rIyBDb3B5cmlnaHQgKEMpIDIwMjMgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCj4rCj4rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPisjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCj4rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+KyMKPisjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAo+KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKPisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKPisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCj4rIwo+KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKPisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgo+Kwo+KyMgVGVz dCBhIGNvbXBsZXRpb24gY2FzZSB0aGF0IHdhcyBjYXVzaW5nIEdEQiB0byBjcmFzaC4KPisKPits b2FkX2xpYiBydXN0LXN1cHBvcnQuZXhwCj4raWYge1tza2lwX3J1c3RfdGVzdHNdfSB7Cj4rICAg IHJldHVybgo+K30KPisKPitzdGFuZGFyZF90ZXN0ZmlsZSAucnMKPitpZiB7W3ByZXBhcmVfZm9y X3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGUge2RlYnVnIHJ1 c3R9XX0gewo+KyAgICByZXR1cm4gLTEKPit9Cj4rCj4rc2V0IGxpbmUgW2dkYl9nZXRfbGluZV9u dW1iZXIgInNldCBicmVha3BvaW50IGhlcmUiXQo+K2lmIHshW3J1bnRvICR7c3JjZmlsZX06JGxp bmVdfSB7Cj4rICAgIHVudGVzdGVkICJjb3VsZCBub3QgcnVuIHRvIGJyZWFrcG9pbnQiCj4rICAg IHJldHVybiAtMQo+K30KPisKPitnZGJfdGVzdCAiY29tcGxldGUgYnJlYWsgcGFycyIgIi4qIgo+ ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvY29tcGxldGlvbi5ycyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnJ1c3QvY29tcGxldGlvbi5ycwo+bmV3IGZpbGUgbW9kZSAxMDA2NDQKPmlu ZGV4IDAwMDAwMDAwMDAwLi44Mzk2ZTNmNDA4Ngo+LS0tIC9kZXYvbnVsbAo+KysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIucnVzdC9jb21wbGV0aW9uLnJzCj5AQCAtMCwwICsxLDE5IEBACj4rLy8gQ29w eXJpZ2h0IChDKSAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgo+Kwo+Ky8vIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Cj4rLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPisvLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgo+Ky8vIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4rLy8KPisvLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPisvLyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+Ky8v IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKPisvLyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ Ky8vCj4rLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKPisvLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KPisKPitmbiBtYWluKCkgewo+KyAg ICBsZXQgZm91cjogdTggPSAiNCIucGFyc2UoKS51bndyYXAoKTsKPisgICAgcHJpbnRsbiEoInt9 IiwgZm91cik7CS8vIHNldCBicmVha3BvaW50IGhlcmUKPit9Cj5kaWZmIC0tZ2l0IGEvZ2RiL3V0 aWxzLmMgYi9nZGIvdXRpbHMuYwo+aW5kZXggNzM0YzViZjdmNzAuLmFiMTRlMTg2ODIxIDEwMDY0 NAo+LS0tIGEvZ2RiL3V0aWxzLmMKPisrKyBiL2dkYi91dGlscy5jCj5AQCAtMjEzOSw2ICsyMTM5 LDggQEAgc3RybmNtcF9pd193aXRoX21vZGUgKGNvbnN0IGNoYXIgKnN0cmluZzEsIGNvbnN0IGNo YXIgKnN0cmluZzIsCj4gCQkJfHwgbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfcnVzdAo+IAkJCXx8IGxh bmd1YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4pOwo+IAo+KyAgZ2RiX2Fzc2VydCAobWF0Y2hfZm9y X2xjZCA9PSBudWxscHRyIHx8IG1hdGNoX2Zvcl9sY2QtPmVtcHR5ICgpKTsKPisKPiAgIHdoaWxl ICgxKQo+ICAgICB7Cj4gICAgICAgaWYgKHNraXBfc3BhY2VzCg==