From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <helin.zhang@intel.com>
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by dpdk.org (Postfix) with ESMTP id 386B25953
 for <dev@dpdk.org>; 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" <helin.zhang@intel.com>
To: Vladislav Zolotarov <vladz@cloudius-systems.com>
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: <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E6718@SHSMSX104.ccr.corp.intel.com>
References: <1439489195-31553-1-git-send-email-vladz@cloudius-systems.com>
 <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E1AE6@SHSMSX104.ccr.corp.intel.com>
 <55CD7EA5.6060100@cloudius-systems.com>
 <6A0DE07E22DDAD4C9103DF62FEBC0909D3E116@shsmsx102.ccr.corp.intel.com>
 <CAOYyTHaymoNj92+_F1NaP6vPmGO9bdJV7VY7V052RrR_NjRUPw@mail.gmail.com>
 <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E3E98@SHSMSX104.ccr.corp.intel.com>
 <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E65FF@SHSMSX104.ccr.corp.intel.com>
 <CAOYyTHZ062SGrshnpFKnm6yap-GiQRdQ2yaB9-UcOotOXqRYjA@mail.gmail.com>
 <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E6668@SHSMSX104.ccr.corp.intel.com>
 <55DCB975.2030000@cloudius-systems.com>
 <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8E66A4@SHSMSX104.ccr.corp.intel.com>
 <CAOYyTHagAdJa-NzPyo0ZfrVm9F8tBd+Z9TfnR2tZ5V4DU8LKkg@mail.gmail.com>
In-Reply-To: <CAOYyTHagAdJa-NzPyo0ZfrVm9F8tBd+Z9TfnR2tZ5V4DU8LKkg@mail.gmail.com>
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" <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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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==