From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 386B25953 for ; Tue, 25 Aug 2015 22:14:05 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP; 25 Aug 2015 13:13:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,747,1437462000"; d="scan'208,217";a="775534967" Received: from pgsmsx106.gar.corp.intel.com ([10.221.44.98]) by fmsmga001.fm.intel.com with ESMTP; 25 Aug 2015 13:13:48 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by PGSMSX106.gar.corp.intel.com (10.221.44.98) with Microsoft SMTP Server (TLS) id 14.3.224.2; Wed, 26 Aug 2015 04:13:47 +0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.210]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.171]) with mapi id 14.03.0224.002; Wed, 26 Aug 2015 04:13:46 +0800 From: "Zhang, Helin" To: Vladislav Zolotarov Thread-Topic: [dpdk-dev] [PATCH v1] ixgbe_pmd: forbid tx_rs_thresh above 1 for all NICs but 82598 Thread-Index: AQHQ1fLetlF10YIG/kWzzVYFXNo2ap4KX8ywgAAU3oCAB4kdgIAARtIAgAFYG3CACXpWUP//gCGAgACHY7D//33bgIAAi1og//9/MAAAEglLYA== Date: Tue, 25 Aug 2015 20:13:45 +0000 Message-ID: References: <1439489195-31553-1-git-send-email-vladz@cloudius-systems.com> <55CD7EA5.6060100@cloudius-systems.com> <6A0DE07E22DDAD4C9103DF62FEBC0909D3E116@shsmsx102.ccr.corp.intel.com> <55DCB975.2030000@cloudius-systems.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v1] ixgbe_pmd: forbid tx_rs_thresh above 1 for all NICs but 82598 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2015 20:14:07 -0000 WWVzLCBJIGdvdCB0aGUgcGVyZmVjdCBhbnN3ZXJzLiBUaGFuayB5b3UgdmVyeSBtdWNoIQ0KSSBq dXN0IHdhbnRlZCB0byBtYWtlIHN1cmUgdGhlIHRlc3QgY2FzZSB3YXMgT0sgd2l0aCB0aGUgbGlt aXQgb2YgbWF4aW11bSBudW1iZXIgb2YgZGVzY3JpcHRvcnMsIGFzIEkgaGVhcmQgdGhlcmUgaXMg YSBoYW5nIGlzc3VlIG9uIG90aGVyIE5JQ3Mgb2YgdXNpbmcgbW9yZSBkZXNjcmlwdG9ycyB0aGFu IGhhcmR3YXJlIGFsbG93ZWQuDQpPSy4gSSBhbSBzdGlsbCB3YWl0aW5nIGZvciB0aGUgYW5zd2Vy cy9jb25maXJtYXRpb24gZnJvbSB4NTQwIGhhcmR3YXJlIGRlc2lnbmVycy4gV2UgbmVlZCBhbGwg YWdyZWUgb24geW91ciBwYXRjaGVzIHRvIGF2b2lkIHJpc2tzLg0KDQpSZWdhcmRzLA0KSGVsaW4N Cg0KRnJvbTogVmxhZGlzbGF2IFpvbG90YXJvdiBbbWFpbHRvOnZsYWR6QGNsb3VkaXVzLXN5c3Rl bXMuY29tXQ0KU2VudDogVHVlc2RheSwgQXVndXN0IDI1LCAyMDE1IDEyOjMwIFBNDQpUbzogWmhh bmcsIEhlbGluDQpDYzogTHUsIFdlbnpodW87IGRldkBkcGRrLm9yZw0KU3ViamVjdDogUkU6IFtk cGRrLWRldl0gW1BBVENIIHYxXSBpeGdiZV9wbWQ6IGZvcmJpZCB0eF9yc190aHJlc2ggYWJvdmUg MSBmb3IgYWxsIE5JQ3MgYnV0IDgyNTk4DQoNCg0KT24gQXVnIDI1LCAyMDE1IDIyOjE2LCAiWmhh bmcsIEhlbGluIiA8aGVsaW4uemhhbmdAaW50ZWwuY29tPG1haWx0bzpoZWxpbi56aGFuZ0BpbnRl bC5jb20+PiB3cm90ZToNCj4NCj4NCj4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+IEZyb206IFZsYWQgWm9sb3Rhcm92IFttYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5j b208bWFpbHRvOnZsYWR6QGNsb3VkaXVzLXN5c3RlbXMuY29tPl0NCj4gPiBTZW50OiBUdWVzZGF5 LCBBdWd1c3QgMjUsIDIwMTUgMTE6NTMgQU0NCj4gPiBUbzogWmhhbmcsIEhlbGluDQo+ID4gQ2M6 IEx1LCBXZW56aHVvOyBkZXZAZHBkay5vcmc8bWFpbHRvOmRldkBkcGRrLm9yZz4NCj4gPiBTdWJq ZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjFdIGl4Z2JlX3BtZDogZm9yYmlkIHR4X3JzX3Ro cmVzaCBhYm92ZSAxIGZvcg0KPiA+IGFsbCBOSUNzIGJ1dCA4MjU5OA0KPiA+DQo+ID4NCj4gPg0K PiA+IE9uIDA4LzI1LzE1IDIxOjQzLCBaaGFuZywgSGVsaW4gd3JvdGU6DQo+ID4gPg0KPiA+ID4g SGkgVmxhZA0KPiA+ID4NCj4gPiA+IEkgdGhpbmsgdGhpcyBjb3VsZCBwb3NzaWJseSBiZSB0aGUg cm9vdCBjYXVzZSBvZiB5b3VyIFRYIGhhbmcgaXNzdWUuDQo+ID4gPiBQbGVhc2UgdHJ5IHRvIGxp bWl0IHRoZSBudW1iZXIgdG8gOCBvciBsZXNzLCBhbmQgdGhlbiBzZWUgaWYgdGhlIGlzc3VlDQo+ ID4gPiB3aWxsIHN0aWxsIGJlIHRoZXJlIG9yIG5vdD8NCj4gPiA+DQo+ID4NCj4gPiBIZWxpbiwg dGhlIGlzc3VlIGhhcyBiZWVuIHNlZW4gb24geDU0MCBkZXZpY2VzLiBQbHMuLCBzZWUgYSBjaGFw dGVyDQo+ID4gNy4yLjEuMSBvZiB4NTQwIGRldmljZXMgc3BlYzoNCj4gPg0KPiA+IEEgcGFja2V0 IChvciBtdWx0aXBsZSBwYWNrZXRzIGluIHRyYW5zbWl0IHNlZ21lbnRhdGlvbikgY2FuIHNwYW4g YW55IG51bWJlciBvZg0KPiA+IGJ1ZmZlcnMgKGFuZCB0aGVpciBkZXNjcmlwdG9ycykgdXAgdG8g YSBsaW1pdCBvZiA0MCBtaW51cyBXVEhSRVNIIG1pbnVzIDIgKHNlZQ0KPiA+IFNlY3Rpb24gNy4y LjMuMyBmb3IgVHggUmluZyBkZXRhaWxzIGFuZCBzZWN0aW9uIFNlY3Rpb24gNy4yLjMuNS4xIGZv ciBXVEhSRVNIDQo+ID4gZGV0YWlscykuIEZvciBiZXN0IHBlcmZvcm1hbmNlIGl0IGlzIHJlY29t bWVuZGVkIHRvIG1pbmltaXplIHRoZSBudW1iZXIgb2YNCj4gPiBidWZmZXJzIGFzIHBvc3NpYmxl Lg0KPiA+DQo+ID4gQ291bGQgdSwgcGxzLiwgY2xhcmlmeSB3aHkgZG8gdSB0aGluayB0aGF0IHRo ZSBtYXhpbXVtIG51bWJlciBvZiBkYXRhIGJ1ZmZlcnMgaXMNCj4gPiBsaW1pdGVkIGJ5IDg/DQo+ IE9LLCBpNDBlIGhhcmR3YXJlIGlzIDgNCg0KRm9yIGk0MCBpdCdzIGEgYml0IG1vcmUgY29tcGxp Y2F0ZWQgdGhhbiBqdXN0ICJub3QgbW9yZSB0aGFuIDgiIC0gaXQncyBub3QgbW9yZSB0aGFuIDgg Zm9yIGEgbm9uLVRTTyBwYWNrZXQgYW5kIG5vdCBtb3JlIHRoYW4gOCBmb3IgZWFjaCBNU1MgaW5j bHVkaW5nIGhlYWRlcnMgYnVmZmVycyBmb3IgVFNPLiBCdXQgdGhpcyB0aHJlYWQgaXMgbm90IGFi b3V0IGk0MGUgc28gdGhpcyBkb2Vzbid0IHNlZW0gdG8gYmUgcmVsZXZhbnQgYW55d2F5Lg0KDQos IHNvIEknZCBhc3N1bWUgeDU0MCBjb3VsZCBoYXZlIGEgc2ltaWxhciBvbmUuDQoNCng1NDAgc3Bl YyBhc3N1bWVzIG90aGVyd2lzZS4uLiDwn5iJDQoNClllcywgaW4geW91ciBjYXNlLA0KPiB0aGUg bGltaXQgY291bGQgYmUgYXJvdW5kIDM4LCByaWdodD8NCg0KSWYgYnkgImFyb3VuZCAzOCIgdSBt ZWFuICJleGFjdGx5IDM4IiB0aGVuIHUgYXJlIGFic29sdXRlbHkgcmlnaHQuLi4g8J+YiQ0KDQo+ IENvdWxkIHlvdSBoZWxwIHRvIG1ha2Ugc3VyZSB0aGVyZSBpcyBubyBwYWNrZXQgdG8gYmUgdHJh bnNtaXR0ZWQgdXNlcyBtb3JlIHRoYW4NCj4gMzggZGVzY3JpcHRvcnM/DQoNCkp1c3QgbGlrZSBp J3ZlIGFscmVhZHkgbWVudGlvbmVkLCB3ZSBsaW1pdCB0aGUgY2x1c3RlciBieSBhdCBtb3N0IDMz IGRhdGEgc2VnbWVudHMuIFRoZXJlZm9yZSB3ZSBhcmUgZ29vZCBoZXJlLi4uDQoNCj4gSSBoZWFy ZCB0aGF0IHRoZXJlIGlzIGEgc2ltaWxhciBoYW5nIGlzc3VlIG9uIFg3MTAgaWYgdXNpbmcgbW9y ZSB0aGFuIDggZGVzY3JpcHRvcnMgZm9yDQo+IGEgc2luZ2xlIHBhY2tldC4gSSBhbSB3b25kZXJp bmcgaWYgdGhlIGlzc3VlIGlzIHNpbWlsYXIgb24geDU0MC4NCg0KV2hhdCdzIHg3MTA/IElmIHRo YXQncyB4bDcxMCA0MEcgbmljcyAoaTQwZSBkcml2ZXIpLCB0aGVuIGl0IGhhcyBpdHMgb3duIHNw ZWNzIHdpdGggaXRzIG93biBIVyBsaW1pdGF0aW9ucyBpJ3ZlIG1lbnRpb25lZCBhYm92ZS4gSXQg aGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGlzIHRocmVhZCB0aGF0IGlzIGFsbCBhYm91dCAxMEcg bmljcyBtYW5hZ2VkIGJ5IGl4Z2JlIGRyaXZlci4NCg0KVGhlcmUgaXMgYSBkaWZmZXJlbnQgdGhy ZWFkLCB3aGVyZSBpJ3ZlIHJhaXNlZCB0aGUgNDBHIE5JQ3MgeG1pdCBpc3N1ZXMuIFNlZSAiaTQw ZSB4bWl0IHBhdGggSFcgbGltaXRhdGlvbiIgdGhyZWFkLg0KDQo+DQo+IFJlZ2FyZHMsDQo+IEhl bGluDQo+DQo+ID4NCj4gPiB0aGFua3MsDQo+ID4gdmxhZA0KPiA+DQo+ID4gPiBJdCBkb2VzIG5v dCBoYXZlIGFueSBjaGVjayBmb3IgdGhlIG51bWJlciBvZiBkZXNjcmlwdG9ycyB0byBiZSB1c2Vk DQo+ID4gPiBmb3IgYSBzaW5nbGUgcGFja2V0LCBhbmQgaXQgcmVsaWVzIG9uIHRoZSB1c2VycyB0 byBnaXZlIGNvcnJlY3QgbWJ1Zg0KPiA+ID4gY2hhaW5zLg0KPiA+ID4NCj4gPiA+IFdlIG1heSBu ZWVkIGEgY2hlY2sgb2YgdGhpcyBzb21ld2hlcmUuIE9mIGNhdXNlIHRoZSBwb2ludCB5b3UNCj4g PiA+IGluZGljYXRlZCB3ZSBhbHNvIG5lZWQgdG8gY2FyZWZ1bGx5IGludmVzdGlnYXRlIG9yIGZp eC4NCj4gPiA+DQo+ID4gPiBSZWdhcmRzLA0KPiA+ID4NCj4gPiA+IEhlbGluDQo+ID4gPg0KPiA+ ID4gKkZyb206KlZsYWRpc2xhdiBab2xvdGFyb3YgW21haWx0bzp2bGFkekBjbG91ZGl1cy1zeXN0 ZW1zLmNvbTxtYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb20+XQ0KPiA+ID4gKlNlbnQ6 KiBUdWVzZGF5LCBBdWd1c3QgMjUsIDIwMTUgMTE6MzQgQU0NCj4gPiA+ICpUbzoqIFpoYW5nLCBI ZWxpbg0KPiA+ID4gKkNjOiogTHUsIFdlbnpodW87IGRldkBkcGRrLm9yZzxtYWlsdG86ZGV2QGRw ZGsub3JnPg0KPiA+ID4gKlN1YmplY3Q6KiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjFdIGl4Z2Jl X3BtZDogZm9yYmlkIHR4X3JzX3RocmVzaA0KPiA+ID4gYWJvdmUgMSBmb3IgYWxsIE5JQ3MgYnV0 IDgyNTk4DQo+ID4gPg0KPiA+ID4NCj4gPiA+IE9uIEF1ZyAyNSwgMjAxNSAyMToxNCwgIlpoYW5n LCBIZWxpbiIgPGhlbGluLnpoYW5nQGludGVsLmNvbTxtYWlsdG86aGVsaW4uemhhbmdAaW50ZWwu Y29tPg0KPiA+ID4gPG1haWx0bzpoZWxpbi56aGFuZ0BpbnRlbC5jb208bWFpbHRvOmhlbGluLnpo YW5nQGludGVsLmNvbT4+PiB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gSGkgVmxhZA0KPiA+ID4g Pg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBJbiBhZGRpdGlvbiwgSeKAmWQgZG91YmxlIGNo ZWNrIHdpdGggeW91IHdoYXTigJlzIHRoZSBtYXhpbXVtIG51bWJlciBvZg0KPiA+ID4gZGVzY3Jp cHRvcnMgd291bGQgYmUgdXNlZCBmb3IgYSBzaW5nbGUgcGFja2V0IHRyYW5zbWl0dGluZz8NCj4g PiA+ID4NCj4gPiA+ID4gRGF0YXNoZWV0IHNhaWQgdGhhdCBpdCBzdXBwb3J0cyB1cCB0byA4LiBJ IGFtIHdvbmRlcmluZyBpZiBtb3JlIHRoYW4NCj4gPiA+IDggd2VyZSB1c2VkIGluIHlvdXIgY2Fz ZT8NCj4gPiA+DQo+ID4gPiBJZiBtZW1vcnkgc2VydmVzIG1lIHdlbGwgdGhlIG1heGltdW0gbnVt YmVyIG9mIGRhdGEgZGVzY3JpcHRvcnMgcGVyDQo+ID4gPiBzaW5nbGUgeG1pdCBwYWNrZXQgaXMg NDAgbWludXMgMiBtaW51cyBXVEhSRVNILiBTaW5jZSBXVEhSRVNIIGluIERQREsNCj4gPiA+IGlz IGFsd2F5cyB6ZXJvIGl0IGdpdmVzIHVzIDM4IHNlZ21lbnRzLiBXZSBsaW1pdCB0aGVtIGJ5IDMz Lg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmsgeW91IHZlcnkgbXVjaCENCj4gPiA+ID4N Cj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gUmVnYXJkcywNCj4gPiA+ID4NCj4gPiA+ID4gSGVs aW4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gRnJvbTogWmhhbmcsIEhlbGlu DQo+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDE5LCAyMDE1IDEwOjI5IEFNDQo+ID4g PiA+IFRvOiBWbGFkaXNsYXYgWm9sb3Rhcm92DQo+ID4gPiA+IENjOiBMdSwgV2Vuemh1bzsgZGV2 QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+IDxtYWlsdG86ZGV2QGRwZGsub3JnPG1haWx0 bzpkZXZAZHBkay5vcmc+Pg0KPiA+ID4gPg0KPiA+ID4gPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2 XSBbUEFUQ0ggdjFdIGl4Z2JlX3BtZDogZm9yYmlkIHR4X3JzX3RocmVzaA0KPiA+ID4gYWJvdmUg MSBmb3IgYWxsIE5JQ3MgYnV0IDgyNTk4DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4g PiA+IEhpIFZsYWQNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmsgeW91 IHZlcnkgbXVjaCBmb3IgdGhlIHBhdGNoZXMhIEdpdmUgbWUgYSBmZXcgbW9yZSB0aW1lIHRvDQo+ ID4gPiBkb3VibGUgY2hlY2sgd2l0aCBtb3JlIGd1eXMsIGFuZCBwb3NzaWJseSBoYXJkd2FyZSBl eHBlcnRzLg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBSZWdhcmRzLA0KPiA+ ID4gPg0KPiA+ID4gPiBIZWxpbg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBG cm9tOiBWbGFkaXNsYXYgWm9sb3Rhcm92IFttYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5j b208bWFpbHRvOnZsYWR6QGNsb3VkaXVzLXN5c3RlbXMuY29tPg0KPiA+ID4gPG1haWx0bzp2bGFk ekBjbG91ZGl1cy1zeXN0ZW1zLmNvbTxtYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb20+ Pl0NCj4gPiA+ID4gU2VudDogVHVlc2RheSwgQXVndXN0IDE4LCAyMDE1IDk6NTYgUE0NCj4gPiA+ ID4gVG86IEx1LCBXZW56aHVvDQo+ID4gPiA+IENjOiBkZXZAZHBkay5vcmc8bWFpbHRvOmRldkBk cGRrLm9yZz4gPG1haWx0bzpkZXZAZHBkay5vcmc8bWFpbHRvOmRldkBkcGRrLm9yZz4+OyBaaGFu ZywgSGVsaW4NCj4gPiA+ID4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW1BBVENIIHYxXSBpeGdi ZV9wbWQ6IGZvcmJpZCB0eF9yc190aHJlc2gNCj4gPiA+IGFib3ZlIDEgZm9yIGFsbCBOSUNzIGJ1 dCA4MjU5OA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBPbiBB dWcgMTksIDIwMTUgMDM6NDIsICJMdSwgV2Vuemh1byIgPHdlbnpodW8ubHVAaW50ZWwuY29tPG1h aWx0bzp3ZW56aHVvLmx1QGludGVsLmNvbT4NCj4gPiA+IDxtYWlsdG86d2Vuemh1by5sdUBpbnRl bC5jb208bWFpbHRvOndlbnpodW8ubHVAaW50ZWwuY29tPj4+IHdyb3RlOg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gSGkgSGVsaW4sDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0Bk cGRrLm9yZzxtYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmc+DQo+ID4gPiA8bWFpbHRvOmRldi1i b3VuY2VzQGRwZGsub3JnPG1haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZz4+XSBPbiBCZWhhbGYg T2YgVmxhZCBab2xvdGFyb3YNCj4gPiA+ID4gPiA+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDE0LCAy MDE1IDE6MzggUE0NCj4gPiA+ID4gPiA+IFRvOiBaaGFuZywgSGVsaW47IGRldkBkcGRrLm9yZzxt YWlsdG86ZGV2QGRwZGsub3JnPiA8bWFpbHRvOmRldkBkcGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsu b3JnPj4NCj4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MV0gaXhn YmVfcG1kOiBmb3JiaWQNCj4gPiA+IHR4X3JzX3RocmVzaCBhYm92ZSAxIGZvcg0KPiA+ID4gPiA+ ID4gYWxsIE5JQ3MgYnV0IDgyNTk4DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBPbiAwOC8xMy8xNSAyMzoyOCwgWmhhbmcsIEhlbGluIHdyb3RlOg0K PiA+ID4gPiA+ID4gPiBIaSBWbGFkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgZG9u J3QgdGhpbmsgdGhlIGNoYW5nZXMgYXJlIG5lZWRlZC4gSXQgc2F5cyBpbiBkYXRhc2hlZXQNCj4g PiA+IHRoYXQgdGhlIFJTDQo+ID4gPiA+ID4gPiA+IGJpdCBzaG91bGQgYmUgc2V0IG9uIHRoZSBs YXN0IGRlc2NyaXB0b3Igb2YgZXZlcnkgcGFja2V0LCBPTkxZDQo+ID4gPiBXSEVODQo+ID4gPiA+ ID4gPiBUWERDVEwuV1RIUkVTSCBlcXVhbHMgdG8gWkVSTy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiBPZiBjb3Vyc2UgaXQncyBuZWVkZWQhIFNlZSBiZWxvdy4NCj4gPiA+ID4gPiA+IEV4YWN0 bHkgdGhlIHNhbWUgc3BlYyBhIGZldyBsaW5lcyBhYm92ZSB0aGUgcGxhY2UgdSd2ZSBqdXN0DQo+ ID4gPiBxdW90ZWQgc3RhdGVzOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICJTb2Z0d2FyZSBz aG91bGQgbm90IHNldCB0aGUgUlMgYml0IHdoZW4gVFhEQ1RMLldUSFJFU0ggaXMNCj4gPiA+IGdy ZWF0ZXIgdGhhbg0KPiA+ID4gPiA+ID4gemVyby4iDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g QW5kIHNpbmNlIGFsbCB0aHJlZSAoMykgaXhnYmUgeG1pdCBjYWxsYmFja3MgYXJlIHV0aWxpemlu ZyBSUw0KPiA+ID4gYml0IG5vdGF0aW9uIGl4Z2JlIFBNRA0KPiA+ID4gPiA+ID4gaXMgYWN0dWFs bHkgbm90IHN1cHBvcnRpbmcgYW55IHZhbHVlIG9mIFdUSFJFU0ggZGlmZmVyZW50IGZyb20gemVy by4NCj4gPiA+ID4gPiBJIHRoaW5rIFZsYWQgaXMgcmlnaHQuIFdlIG5lZWQgdG8gZml4IHRoaXMg aXNzdWUuIEFueSBzdWdnZXN0aW9uPw0KPiA+ID4gSWYgbm90LCBJJ2QgbGlrZSB0byBhY2sgdGhp cyBwYXRjaC4NCj4gPiA+ID4NCj4gPiA+ID4gUGxzLiwgbm90ZSB0aGF0IHRoZXJlIGlzIGEgdjIg b2YgdGhpcyBwYXRjaCBvbiB0aGUgbGlzdC4gSSBmb3Jnb3QgdG8NCj4gPiA+IHBhdGNoIGl4Z2Jl dmZfZGV2X2luZm9fZ2V0KCkgaW4gdjEuDQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsDQo+ID4gPiA+ID4gPiA+IEhl bGluDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4gPiA+ID4gPj4gRnJvbTogVmxhZCBab2xvdGFyb3YgW21haWx0bzp2bGFkekBj bG91ZGl1cy1zeXN0ZW1zLmNvbTxtYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb20+DQo+ ID4gPiA8bWFpbHRvOnZsYWR6QGNsb3VkaXVzLXN5c3RlbXMuY29tPG1haWx0bzp2bGFkekBjbG91 ZGl1cy1zeXN0ZW1zLmNvbT4+XQ0KPiA+ID4gPiA+ID4gPj4gU2VudDogVGh1cnNkYXksIEF1Z3Vz dCAxMywgMjAxNSAxMTowNyBBTQ0KPiA+ID4gPiA+ID4gPj4gVG86IGRldkBkcGRrLm9yZzxtYWls dG86ZGV2QGRwZGsub3JnPiA8bWFpbHRvOmRldkBkcGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsub3Jn Pj4NCj4gPiA+ID4gPiA+ID4+IENjOiBaaGFuZywgSGVsaW47IEFuYW55ZXYsIEtvbnN0YW50aW47 DQo+ID4gPiBhdmlAY2xvdWRpdXMtc3lzdGVtcy5jb208bWFpbHRvOmF2aUBjbG91ZGl1cy1zeXN0 ZW1zLmNvbT4gPG1haWx0bzphdmlAY2xvdWRpdXMtc3lzdGVtcy5jb208bWFpbHRvOmF2aUBjbG91 ZGl1cy1zeXN0ZW1zLmNvbT4+OyBWbGFkDQo+ID4gPiA+ID4gPiA+PiBab2xvdGFyb3YNCj4gPiA+ ID4gPiA+ID4+IFN1YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIIHYxXSBpeGdiZV9wbWQ6IGZvcmJp ZCB0eF9yc190aHJlc2gNCj4gPiA+IGFib3ZlIDEgZm9yDQo+ID4gPiA+ID4gPiBhbGwNCj4gPiA+ ID4gPiA+ID4+IE5JQ3MgYnV0IDgyNTk4DQo+ID4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPj4g QWNjb3JkaW5nIHRvIDgyNTk5IGFuZCB4NTQwIEhXIHNwZWNpZmljYXRpb25zIFJTIGJpdCAqbXVz dCoNCj4gPiA+IGJlIHNldCBpbiB0aGUNCj4gPiA+ID4gPiA+IGxhc3QNCj4gPiA+ID4gPiA+ID4+ IGRlc2NyaXB0b3Igb2YgKmV2ZXJ5KiBwYWNrZXQuDQo+ID4gPiA+ID4gPiA+IFRoZXJlIGlzIGEg Y29uZGl0aW9uIHRoYXQgaWYgVFhEQ1RMLldUSFJFU0ggZXF1YWwgdG8gemVyby4NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBSaWdodCBhbmQgaXhnYmUgUE1EIHJlcXVpcmVzIHRoaXMgY29uZGl0 aW9uIHRvIGJlIGZ1bGZpbGxlZCBpbg0KPiA+ID4gb3JkZXIgdG8NCj4gPiA+ID4gPiA+IGZ1bmN0 aW9uLiBTZWUgYWJvdmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g Pj4gVGhpcyBwYXRjaCBmaXhlcyB0aGUgVHggaGFuZyB3ZSB3ZXJlIGNvbnN0YW50bHkgaGl0dGlu ZyB3aXRoDQo+ID4gPiBhIHNlYXN0YXItYmFzZWQNCj4gPiA+ID4gPiA+ID4+IGFwcGxpY2F0aW9u IG9uIHg1NDAgTklDLg0KPiA+ID4gPiA+ID4gPiBDb3VsZCB5b3UgaGVscCB0byBzaGFyZSB3aXRo IHVzIGhvdyB0byByZXByb2R1Y2UgdGhlIHR4IGhhbmcNCj4gPiA+IGlzc3VlLCB3aXRoIHVzaW5n DQo+ID4gPiA+ID4gPiA+IHR5cGljYWwgRFBESyBleGFtcGxlcz8NCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiBTb3JyeS4gSSdtIG5vdCB2ZXJ5IGZhbWlsaWFyIHdpdGggdGhlIHR5cGljYWwgRFBE SyBleGFtcGxlcyB0bw0KPiA+ID4gaGVscCB1DQo+ID4gPiA+ID4gPiBoZXJlLiBIb3dldmVyIHRo aXMgaXMgcXVpdGUgaXJyZWxldmFudCBzaW5jZSB3aXRob3V0IHRoaXMgdGhpcw0KPiA+ID4gPiA+ ID4gcGF0Y2ggaXhnYmUgUE1EIG9idmlvdXNseSBhYnVzZXMgdGhlIEhXIHNwZWMgYXMgaGFzIGJl ZW4gZXhwbGFpbmVkDQo+ID4gYWJvdmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gV2Ugc2F3 IHRoZSBpc3N1ZSB3aGVuIHUgc3RyZXNzZWQgdGhlIHhtaXQgcGF0aCB3aXRoIGEgbG90IG9mDQo+ ID4gPiA+ID4gPiBoaWdobHkgZnJhZ21lbnRlZCBUQ1AgZnJhbWVzIChwYWNrZXRzIHdpdGggdXAg dG8gMzMgZnJhZ21lbnRzDQo+ID4gPiA+ID4gPiB3aXRoDQo+ID4gPiBub24taGVhZGVycw0KPiA+ ID4gPiA+ID4gZnJhZ21lbnRzIGFzIHNtYWxsIGFzIDQgYnl0ZXMpIHdpdGggYWxsIG9mZmxvYWQg ZmVhdHVyZXMgZW5hYmxlZC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGFua3MsDQo+ID4g PiA+ID4gPiB2bGFkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+PiBTaWduZWQtb2ZmLWJ5 OiBWbGFkIFpvbG90YXJvdiA8dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb208bWFpbHRvOnZsYWR6 QGNsb3VkaXVzLXN5c3RlbXMuY29tPg0KPiA+ID4gPG1haWx0bzp2bGFkekBjbG91ZGl1cy1zeXN0 ZW1zLmNvbTxtYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb20+Pj4NCj4gPiA+ID4gPiA+ ID4+IC0tLQ0KPiA+ID4gPiA+ID4gPj4gICBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYu YyB8ICA5ICsrKysrKysrKw0KPiA+ID4gPiA+ID4gPj4gICBkcml2ZXJzL25ldC9peGdiZS9peGdi ZV9yeHR4LmMgIHwgMjMgKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPiA+ID4gPiA+ID4+ICAg MiBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gPiA+ ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4 Z2JlX2V0aGRldi5jDQo+ID4gPiA+ID4gPiA+PiBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0 aGRldi5jDQo+ID4gPiA+ID4gPiA+PiBpbmRleCBiOGVlMWU5Li42NzE0ZmQ5IDEwMDY0NA0KPiA+ ID4gPiA+ID4gPj4gLS0tIGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMNCj4gPiA+ ID4gPiA+ID4+ICsrKyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jDQo+ID4gPiA+ ID4gPiA+PiBAQCAtMjQxNCw2ICsyNDE0LDE1IEBAIGl4Z2JlX2Rldl9pbmZvX2dldChzdHJ1Y3Qg cnRlX2V0aF9kZXYNCj4gPiA+ICpkZXYsDQo+ID4gPiA+ID4gPiBzdHJ1Y3QNCj4gPiA+ID4gPiA+ ID4+IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQ0KPiA+ID4gPiA+ID4gPj4gICAgICAgICAg ICAudHhxX2ZsYWdzID0gRVRIX1RYUV9GTEFHU19OT01VTFRTRUdTIHwNCj4gPiA+ID4gPiA+ID4+ IEVUSF9UWFFfRkxBR1NfTk9PRkZMT0FEUywNCj4gPiA+ID4gPiA+ID4+ICAgIH07DQo+ID4gPiA+ ID4gPiA+PiArDQo+ID4gPiA+ID4gPiA+PiArICAvKg0KPiA+ID4gPiA+ID4gPj4gKyAgICogQWNj b3JkaW5nIHRvIDgyNTk5IGFuZCB4NTQwIHNwZWNpZmljYXRpb25zIFJTIGJpdA0KPiA+ID4gKm11 c3QqIGJlIHNldCBvbg0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+PiArICAgKiBsYXN0 IGRlc2NyaXB0b3Igb2YgKmV2ZXJ5KiBwYWNrZXQuIFRoZXJlZm9yZSB3ZSB3aWxsDQo+ID4gPiBu b3QgYWxsb3cgdGhlDQo+ID4gPiA+ID4gPiA+PiArICAgKiB0eF9yc190aHJlc2ggYWJvdmUgMSBm b3IgYWxsIE5JQ3MgbmV3ZXIgdGhhbiA4MjU5OC4NCj4gPiA+ID4gPiA+ID4+ICsgICAqLw0KPiA+ ID4gPiA+ID4gPj4gKyAgaWYgKGh3LT5tYWMudHlwZSA+IGl4Z2JlX21hY184MjU5OEVCKQ0KPiA+ ID4gPiA+ID4gPj4gKyBkZXZfaW5mby0+ZGVmYXVsdF90eGNvbmYudHhfcnNfdGhyZXNoID0gMTsN Cj4gPiA+ID4gPiA+ID4+ICsNCj4gPiA+ID4gPiA+ID4+ICAgIGRldl9pbmZvLT5oYXNoX2tleV9z aXplID0gSVhHQkVfSEtFWV9NQVhfSU5ERVggKg0KPiA+ID4gc2l6ZW9mKHVpbnQzMl90KTsNCj4g PiA+ID4gPiA+ID4+ICAgIGRldl9pbmZvLT5yZXRhX3NpemUgPSBFVEhfUlNTX1JFVEFfU0laRV8x Mjg7DQo+ID4gPiA+ID4gPiA+PiBkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IElY R0JFX1JTU19PRkZMT0FEX0FMTDsNCj4gPiA+ID4gPiA+ID4+IGRpZmYgLS0NCj4gPiA+ID4gPiA+ IGdpdA0KPiA+ID4gPiA+ID4gPj4gYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMNCj4g PiA+IGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jIGluZGV4DQo+ID4gPiA+ID4gPiA+ PiA5MTAyM2I5Li44ZGJkZmZjIDEwMDY0NA0KPiA+ID4gPiA+ID4gPj4gLS0tIGEvZHJpdmVycy9u ZXQvaXhnYmUvaXhnYmVfcnh0eC5jDQo+ID4gPiA+ID4gPiA+PiArKysgYi9kcml2ZXJzL25ldC9p eGdiZS9peGdiZV9yeHR4LmMNCj4gPiA+ID4gPiA+ID4+IEBAIC0yMDg1LDExICsyMDg1LDE5IEBA IGl4Z2JlX2Rldl90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QNCj4gPiA+IHJ0ZV9ldGhfZGV2DQo+ID4g PiA+ID4gPiA+PiAqZGV2LA0KPiA+ID4gPiA+ID4gPj4gICAgc3RydWN0IGl4Z2JlX3R4X3F1ZXVl ICp0eHE7DQo+ID4gPiA+ID4gPiA+PiAgICBzdHJ1Y3QgaXhnYmVfaHcgICAgICpodzsNCj4gPiA+ ID4gPiA+ID4+ICAgIHVpbnQxNl90IHR4X3JzX3RocmVzaCwgdHhfZnJlZV90aHJlc2g7DQo+ID4g PiA+ID4gPiA+PiArICBib29sIHJzX2RlZmVycmluZ19hbGxvd2VkOw0KPiA+ID4gPiA+ID4gPj4N Cj4gPiA+ID4gPiA+ID4+ICAgIFBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCj4gPiA+ID4gPiA+ID4+ ICAgIGh3ID0gSVhHQkVfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7 DQo+ID4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPj4gICAgLyoNCj4gPiA+ID4gPiA+ID4+ICsg ICAqIEFjY29yZGluZyB0byA4MjU5OSBhbmQgeDU0MCBzcGVjaWZpY2F0aW9ucyBSUyBiaXQNCj4g PiA+ICptdXN0KiBiZSBzZXQgb24NCj4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPj4gKyAg ICogbGFzdCBkZXNjcmlwdG9yIG9mICpldmVyeSogcGFja2V0LiBUaGVyZWZvcmUgd2Ugd2lsbA0K PiA+ID4gbm90IGFsbG93IHRoZQ0KPiA+ID4gPiA+ID4gPj4gKyAgICogdHhfcnNfdGhyZXNoIGFi b3ZlIDEgZm9yIGFsbCBOSUNzIG5ld2VyIHRoYW4gODI1OTguDQo+ID4gPiA+ID4gPiA+PiArICAg Ki8NCj4gPiA+ID4gPiA+ID4+ICsgIHJzX2RlZmVycmluZ19hbGxvd2VkID0gKGh3LT5tYWMudHlw ZSA8PQ0KPiA+ID4gPiA+ID4gPj4gKyBpeGdiZV9tYWNfODI1OThFQik7DQo+ID4gPiA+ID4gPiA+ PiArDQo+ID4gPiA+ID4gPiA+PiArICAvKg0KPiA+ID4gPiA+ID4gPj4gICAgICogVmFsaWRhdGUg bnVtYmVyIG9mIHRyYW5zbWl0IGRlc2NyaXB0b3JzLg0KPiA+ID4gPiA+ID4gPj4gICAgICogSXQg bXVzdCBub3QgZXhjZWVkIGhhcmR3YXJlIG1heGltdW0sIGFuZCBtdXN0IGJlIG11bHRpcGxlDQo+ ID4gPiA+ID4gPiA+PiAgICAgKiBvZiBJWEdCRV9BTElHTi4NCj4gPiA+ID4gPiA+ID4+IEBAIC0y MTEwLDYgKzIxMTgsOCBAQCBpeGdiZV9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0DQo+ID4gPiA+ ID4gPiA+PiBydGVfZXRoX2Rldg0KPiA+ID4gPiA+ID4gKmRldiwNCj4gPiA+ID4gPiA+ID4+ICAg ICAqIHRvIHRyYW5zbWl0IGEgcGFja2V0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGZy ZWUgVFgNCj4gPiA+ID4gPiA+ID4+ICAgICAqIGRlc2NyaXB0b3JzLg0KPiA+ID4gPiA+ID4gPj4g ICAgICogVGhlIGZvbGxvd2luZyBjb25zdHJhaW50cyBtdXN0IGJlIHNhdGlzZmllZDoNCj4gPiA+ ID4gPiA+ID4+ICsgICAqICB0eF9yc190aHJlc2ggbXVzdCBiZSBsZXNzIHRoYW4gMiBmb3IgTklD cyBmb3Igd2hpY2ggUlMNCj4gPiA+IGRlZmVycmluZyBpcw0KPiA+ID4gPiA+ID4gPj4gKyAgICog IGZvcmJpZGRlbiAoYWxsIGJ1dCA4MjU5OCkuDQo+ID4gPiA+ID4gPiA+PiAgICAgKiAgdHhfcnNf dGhyZXNoIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuDQo+ID4gPiA+ID4gPiA+PiAgICAgKiAgdHhf cnNfdGhyZXNoIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBzaXplIG9mIHRoZSByaW5nDQo+ID4gPiBt aW51cyAyLg0KPiA+ID4gPiA+ID4gPj4gICAgICogIHR4X3JzX3RocmVzaCBtdXN0IGJlIGxlc3Mg dGhhbiBvciBlcXVhbCB0byB0eF9mcmVlX3RocmVzaC4NCj4gPiA+ID4gPiA+ID4+IEBAIC0yMTIx LDkgKzIxMzEsMjAgQEAgaXhnYmVfZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdA0KPiA+ID4gcnRl X2V0aF9kZXYNCj4gPiA+ID4gPiA+ICpkZXYsDQo+ID4gPiA+ID4gPiA+PiAgICAgKiBXaGVuIHNl dCB0byB6ZXJvIHVzZSBkZWZhdWx0IHZhbHVlcy4NCj4gPiA+ID4gPiA+ID4+ICAgICAqLw0KPiA+ ID4gPiA+ID4gPj4gICAgdHhfcnNfdGhyZXNoID0gKHVpbnQxNl90KSgodHhfY29uZi0+dHhfcnNf dGhyZXNoKSA/DQo+ID4gPiA+ID4gPiA+PiAtIHR4X2NvbmYtPnR4X3JzX3RocmVzaCA6IERFRkFV TFRfVFhfUlNfVEhSRVNIKTsNCj4gPiA+ID4gPiA+ID4+ICsgdHhfY29uZi0+dHhfcnNfdGhyZXNo IDoNCj4gPiA+ID4gPiA+ID4+ICsgKHJzX2RlZmVycmluZ19hbGxvd2VkID8gREVGQVVMVF9UWF9S U19USFJFU0ggOiAxKSk7DQo+ID4gPiA+ID4gPiA+PiAgICB0eF9mcmVlX3RocmVzaCA9ICh1aW50 MTZfdCkoKHR4X2NvbmYtPnR4X2ZyZWVfdGhyZXNoKSA/DQo+ID4gPiA+ID4gPiA+PiB0eF9jb25m LT50eF9mcmVlX3RocmVzaCA6IERFRkFVTFRfVFhfRlJFRV9USFJFU0gpOw0KPiA+ID4gPiA+ID4g Pj4gKw0KPiA+ID4gPiA+ID4gPj4gKyAgaWYgKCFyc19kZWZlcnJpbmdfYWxsb3dlZCAmJiB0eF9y c190aHJlc2ggPiAxKSB7DQo+ID4gPiA+ID4gPiA+PiArICAgICAgICAgIFBNRF9JTklUX0xPRyhF UlIsICJ0eF9yc190aHJlc2ggbXVzdCBiZSBsZXNzIHRoYW4NCj4gPiA+IDIgc2luY2UgUlMNCj4g PiA+ID4gPiA+ICINCj4gPiA+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Im11c3QgYmUgc2V0IGZvciBldmVyeSBwYWNrZXQNCj4gPiA+IGZvciB0aGlzIEhXLiAiDQo+ID4g PiA+ID4gPiA+PiArICIodHhfcnNfdGhyZXNoPSV1IHBvcnQ9JWQgcXVldWU9JWQpIiwNCj4gPiA+ ID4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpdHhfcnNfdGhy ZXNoLA0KPiA+ID4gPiA+ID4gPj4gKyAoaW50KWRldi0+ZGF0YS0+cG9ydF9pZCwgKGludClxdWV1 ZV9pZHgpOw0KPiA+ID4gPiA+ID4gPj4gKyAgICAgICAgICByZXR1cm4gLShFSU5WQUwpOw0KPiA+ ID4gPiA+ID4gPj4gKyAgfQ0KPiA+ID4gPiA+ID4gPj4gKw0KPiA+ID4gPiA+ID4gPj4gICAgaWYg KHR4X3JzX3RocmVzaCA+PSAobmJfZGVzYyAtIDIpKSB7DQo+ID4gPiA+ID4gPiA+PiAgICAgICAg ICAgIFBNRF9JTklUX0xPRyhFUlIsICJ0eF9yc190aHJlc2ggbXVzdCBiZSBsZXNzIHRoYW4NCj4g PiA+ID4gPiA+ID4+IHRoZQ0KPiA+ID4gPiA+ID4gbnVtYmVyICINCj4gPiA+ID4gPiA+ID4+ICAg ICAgICAgICAgICAgICAgICAgICAgICJvZiBUWCBkZXNjcmlwdG9ycyBtaW51cyAyLg0KPiA+ID4g KHR4X3JzX3RocmVzaD0ldSAiDQo+ID4gPiA+ID4gPiA+PiAtLQ0KPiA+ID4gPiA+ID4gPj4gMi4x LjANCj4gPiA+ID4gPg0KPiA+ID4NCj4NCg==