From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id C33718E76; Mon, 25 Jun 2018 10:41:33 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jun 2018 01:41:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,269,1526367600"; d="scan'208";a="52647728" Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by orsmga006.jf.intel.com with ESMTP; 25 Jun 2018 01:41:31 -0700 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.131]) by KMSMSX152.gar.corp.intel.com ([169.254.11.56]) with mapi id 14.03.0319.002; Mon, 25 Jun 2018 16:41:29 +0800 From: "Zhao1, Wei" To: "Zhang, Qi Z" , "dev@dpdk.org" CC: "Lu, Wenzhuo" , "stable@dpdk.org" Thread-Topic: [PATCH] net/ixgbe: fix Tx check descriptor status APIs error Thread-Index: AQHUCgdc5rYjfAhy1Ua0Lf6jOwlT26RrxOsAgAR1jFD//4ljgIAAx0xA//+MHACAAIbTMP//e6IAABDTkqA= Date: Mon, 25 Jun 2018 08:41:29 +0000 Message-ID: References: <1529656727-40207-1-git-send-email-wei.zhao1@intel.com> <039ED4275CED7440929022BC67E706115323BAD2@SHSMSX103.ccr.corp.intel.com> <039ED4275CED7440929022BC67E706115323C621@SHSMSX103.ccr.corp.intel.com> <039ED4275CED7440929022BC67E706115323C83C@SHSMSX103.ccr.corp.intel.com> <039ED4275CED7440929022BC67E706115323C866@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <039ED4275CED7440929022BC67E706115323C866@SHSMSX103.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [172.30.20.206] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: fix Tx check descriptor status APIs error X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jun 2018 08:41:34 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWmhhbmcsIFFpIFoNCj4g U2VudDogTW9uZGF5LCBKdW5lIDI1LCAyMDE4IDM6NTYgUE0NCj4gVG86IFpoYW8xLCBXZWkgPHdl aS56aGFvMUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56 aHVvLmx1QGludGVsLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSRTogW1BBVENI XSBuZXQvaXhnYmU6IGZpeCBUeCBjaGVjayBkZXNjcmlwdG9yIHN0YXR1cyBBUElzIGVycm9yDQo+ IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBaaGFv MSwgV2VpDQo+ID4gU2VudDogTW9uZGF5LCBKdW5lIDI1LCAyMDE4IDM6NTMgUE0NCj4gPiBUbzog WmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gQ2M6 IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiA+ IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIG5ldC9peGdiZTogZml4IFR4IGNoZWNrIGRlc2NyaXB0b3Ig c3RhdHVzIEFQSXMNCj4gPiBlcnJvcg0KPiA+DQo+ID4gSGksIHFpDQo+ID4NCj4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBaaGFuZywgUWkgWg0KPiA+ID4gU2Vu dDogTW9uZGF5LCBKdW5lIDI1LCAyMDE4IDM6NDcgUE0NCj4gPiA+IFRvOiBaaGFvMSwgV2VpIDx3 ZWkuemhhbzFAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiBDYzogTHUsIFdlbnpodW8g PHdlbnpodW8ubHVAaW50ZWwuY29tPjsgc3RhYmxlQGRwZGsub3JnDQo+ID4gPiBTdWJqZWN0OiBS RTogW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBUeCBjaGVjayBkZXNjcmlwdG9yIHN0YXR1cyBBUElz DQo+ID4gPiBlcnJvcg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBaaGFvMSwgV2VpDQo+ID4gPiA+IFNlbnQ6IE1v bmRheSwgSnVuZSAyNSwgMjAxOCAyOjQ5IFBNDQo+ID4gPiA+IFRvOiBaaGFuZywgUWkgWiA8cWku ei56aGFuZ0BpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+ID4gQ2M6IEx1LCBXZW56aHVv IDx3ZW56aHVvLmx1QGludGVsLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiA+ID4gPiBTdWJqZWN0 OiBSRTogW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBUeCBjaGVjayBkZXNjcmlwdG9yIHN0YXR1cw0K PiA+ID4gPiBBUElzIGVycm9yDQo+ID4gPiA+DQo+ID4gPiA+IEhpo6xxaQ0KPiA+ID4gPg0KPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogWmhhbmcs IFFpIFoNCj4gPiA+ID4gPiBTZW50OiBNb25kYXksIEp1bmUgMjUsIDIwMTggMTA6NDkgQU0NCj4g PiA+ID4gPiBUbzogWmhhbzEsIFdlaSA8d2VpLnpoYW8xQGludGVsLmNvbT47IGRldkBkcGRrLm9y Zw0KPiA+ID4gPiA+IENjOiBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBzdGFi bGVAZHBkay5vcmcNCj4gPiA+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENIXSBuZXQvaXhnYmU6IGZp eCBUeCBjaGVjayBkZXNjcmlwdG9yIHN0YXR1cw0KPiA+ID4gPiA+IEFQSXMgZXJyb3INCj4gPiA+ ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBaaGFvMSwgV2VpDQo+ID4gPiA+ID4gPiBTZW50 OiBNb25kYXksIEp1bmUgMjUsIDIwMTggOTo1OCBBTQ0KPiA+ID4gPiA+ID4gVG86IFpoYW5nLCBR aSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4gPiA+ID4gQ2M6 IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiA+ ID4gPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggVHggY2hlY2sgZGVz Y3JpcHRvciBzdGF0dXMNCj4gPiA+ID4gPiA+IEFQSXMgZXJyb3INCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiBIaSwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+IEZyb206IFpoYW5nLCBRaSBaDQo+ID4gPiA+ID4gPiA+ IFNlbnQ6IEZyaWRheSwgSnVuZSAyMiwgMjAxOCA5OjQ3IFBNDQo+ID4gPiA+ID4gPiA+IFRvOiBa aGFvMSwgV2VpIDx3ZWkuemhhbzFAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiA+ID4g PiA+IENjOiBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBzdGFibGVAZHBkay5v cmcNCj4gPiA+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggVHgg Y2hlY2sgZGVzY3JpcHRvcg0KPiA+ID4gPiA+ID4gPiBzdGF0dXMgQVBJcyBlcnJvcg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBIaSBXZWk6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiBGcm9tOiBa aGFvMSwgV2VpDQo+ID4gPiA+ID4gPiA+ID4gU2VudDogRnJpZGF5LCBKdW5lIDIyLCAyMDE4IDQ6 MzkgUE0NCj4gPiA+ID4gPiA+ID4gPiBUbzogZGV2QGRwZGsub3JnDQo+ID4gPiA+ID4gPiA+ID4g Q2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IFpoYW5nLCBRaSBaDQo+ID4g PiA+ID4gPiA+ID4gPHFpLnouemhhbmdAaW50ZWwuY29tPjsgc3RhYmxlQGRwZGsub3JnOyBaaGFv MSwgV2VpDQo+ID4gPiA+ID4gPiA+ID4gPHdlaS56aGFvMUBpbnRlbC5jb20+DQo+ID4gPiA+ID4g PiA+ID4gU3ViamVjdDogW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBUeCBjaGVjayBkZXNjcmlwdG9y IHN0YXR1cw0KPiA+ID4gPiA+ID4gPiA+IEFQSXMgZXJyb3INCj4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+IFRoaXMgaXMgYSBpc3N1ZSBpbnZvbHZlIFJTIGJpdCBzZXQgcnVsZSBpbiBp eGdiZS4NCj4gPiA+ID4gPiA+ID4gPiBMZXQgdXMgdGFrZSBmdW5jdGlvbiBpeGdiZV94bWl0X3Br dHNfdmVjICgpIGFzIGFuIGV4YW1wbGUsDQo+ID4gPiA+ID4gPiA+ID4gaW4gdGhpcyBmdW5jdGlv biBSUyBiaXQgd2lsbCBiZSBzZXQgZm9yIGRlc2NyaXB0b3Igd2l0aA0KPiA+ID4gPiA+ID4gPiA+ IGluZGV4DQo+ID4gPiA+ID4gPiA+ID4gdHhxLT50eF9uZXh0X3JzLCBhbmQgYWxzbyBkZXNjcmlw dG9yIGZyZWUgZnVuY3Rpb24NCj4gPiA+ID4gPiA+ID4gPiBpeGdiZV90eF9mcmVlX2J1ZnMoKSBh bHNvIGNoZWNrIFJTIGJpdCBmb3IgZGVzY3JpcHRvciB3aXRoDQo+ID4gPiA+ID4gPiA+ID4gaW5k ZXgNCj4gPiA+ID4gPiA+ID4gPiB0eHEtPnR4X25leHRfcnMsIFRoaXMgaXMgcGVyZmVjdCBvay4g TGV0IHVzIHRha2UgYW4NCj4gPiA+ID4gPiA+ID4gPiB0eHEtPmV4YW1wbGUsDQo+ID4gPiA+ID4g PiA+ID4gaWYgYXBwIHNldCB0eF9yc190aHJlc2ggPSAzMiBhbmQgbmJfZGVzYyA9IDUxMiwgdGhl biBpeGdiZQ0KPiA+ID4gPiA+ID4gPiA+IFBNRCBjb2RlIHdpbGwgaW5pdA0KPiA+ID4gPiA+ID4g PiA+IHR4cS0+dHhfbmV4dF9ycyA9IDMxIGluIGZ1bmN0aW9uIGl4Z2JlX3Jlc2V0X3R4X3F1ZXVl IHdoZW4NCj4gPiA+ID4gPiA+ID4gPiB0eHEtPnR4IHF1ZXVlDQo+ID4gPiA+ID4gPiA+IHNldHVw Lg0KPiA+ID4gPiA+ID4gPiA+IEFuZCBhbHNvIHR4cS0+dHhfbmV4dF9ycyB3aWxsIGJlIHVwZGF0 ZSBhcyA2MywgOTUgYW5kIHNvIG9uLg0KPiA+ID4gPiA+ID4gPiA+IEJ1dCwgaW4gdGhlIGZ1bmN0 aW9uIGl4Z2JlX2Rldl90eF9kZXNjcmlwdG9yX3N0YXR1cygpLCB0aGUNCj4gPiA+ID4gPiA+ID4g PiBSUyBiaXQgdG8gY2hlY2sgaXMgIiBkZXNjID0gKChkZXNjDQo+ID4gPiA+ID4gPiA+ID4gKyB0 eHEtPnR4X3JzX3RocmVzaCAtIDEpIC8NCj4gPiA+ID4gPiA+ID4gPiB0eHEtPnR4X3JzX3RocmVz aCkgKiB0eHEtdHhfcnNfdGhyZXNoIiwgd2hpY2ggaXMgMzIgLDY0LA0KPiA+ID4gPiA+ID4gPiA+ IHR4cS0+OTYgYW5kIHNvDQo+ID4gPiBvbi4NCj4gPiA+ID4gPiA+ID4gPiBTbywgdGhleSBhcmUg YWxsIHdyb25nISBJbiB0eCBmdW5jdGlvbiBvZg0KPiA+ID4gPiA+ID4gPiA+IGl4Z2JlX3htaXRf cGt0c19zaW1wbGUsIHRoZSBSUyBiaXQgcnVsZSBpcyBhbHNvIHRoZSBzYW1lLA0KPiA+ID4gPiA+ ID4gPiA+IGl0IGFsc28gc2V0DQo+ID4gPiA+IGluZGV4IDMxICw2NCwgOTUuDQo+ID4gPiA+ID4g PiA+ID4gd2UgbmVlZCB0byBjb3JyZWN0IGl0Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiBPbmUgcXVlc3Rpb246DQo+ID4gPiA+ID4gPiA+IGRvZXMgb25seSB0aGUgZGVzY3JpcHRvciB3 aXRoIFJTIGJpdCB3aWxsIGhhdmUgREQgc3RhdHVzLCBvcg0KPiA+ID4gPiA+ID4gPiBOSUMgd2ls bCBhbHdheXMgdXBkYXRlIGFsbCBkZXNjcmlwdG9yJ3MgREQgc3RhdHVzIGJ1dCB0aGlzDQo+ID4g PiA+ID4gPiA+IGhhcHBlbnMgd2hlbiB0aGUgbmV4dCBkZXNjcmlwdG9yIHdpdGggUlMgYml0IGhh cyBiZWVuIHNlbnQ/DQo+ID4gPiA+ID4gPiA+IElmIGl0IGlzIHRoZSBmaXJzdCBjYXNlLCBJIHRo aW5rIHlvdSBmaXggc3RpbGwgaGF2ZSBwcm9ibGVtLA0KPiA+ID4gPiA+ID4gPiBiZWNhdXNlIG11 bHRpLXNlZyBtYnVmIG9yIHRzbyBvZmZsb2FkIHdpbGwgYnJlYWsgdGhlIDMxLCA2MywNCj4gPiA+ ID4gPiA+ID4gOTUgcGF0dGVybg0KPiA+ID4gPiA+ID4gPiBTZWU6DQo+ID4gPiA+ID4gPiA+IAkJ CQkJCW5iX3VzZWQgPQ0KPiAodWludDE2X3QpKHR4X3BrdC0NCj4gPiA+ID4gPiA+ID4gPm5iX3Nl Z3MgKyBuZXdfY3R4KTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gCQkJCQkJaWYgKHR4 cCAhPSBOVUxMICYmDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmJfdXNlZCArIHR4cS0+bmJfdHhfdXNlZCA+PQ0KPiA+ID4gPiA+ID4gdHhxLT50eF9yc190 aHJlc2gpDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNldCBSUyBv biB0aGUgcHJldmlvdXMgcGFja2V0IGluDQo+ID4gPiA+ID4gPiA+IHRoZSBidXJzdA0KPiA+ID4g PiAqLw0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICB0eHAtPnJlYWQuY21k X3R5cGVfbGVuIHw9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBydGVfY3B1X3RvX2xlXzMy KElYR0JFX1RYRF9DTURfUlMpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBzbyB0aGUg cG9zc2libGUgc29sdXRpb24gaXMgc3RvcmUgZWFjaCBSUyBwb3NpdGlvbiBpbiBhIGxpc3QNCj4g PiA+ID4gPiA+ID4gYXQgdHgsIGFuZCBmaW5kIHRoZSBuZXh0IFJTIGZyb20gdGhlIGxpc3QgaW4N Cj4gPiA+ID4gPiA+ID4gaXhnYmVfZGV2X3R4X2Rlc2NyaXB0b3Jfc3RhdHVzDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IElmIGl0IGlzIHRoZSBzZWNvbmQgY2FzZSwgaXQgd2lsbCBiZSBz aW1wbGUgd2UgZG9uJ3QgbmVlZCB0bw0KPiA+ID4gPiA+ID4gPiBjaGVjayBmb3J3YXJkIHdpdGgg dHhfcnNfdGhyZXNoLCBqdXN0IGNoZWNrIHRoZSBleGFjdA0KPiA+ID4gPiA+ID4gPiBwb3NpdGlv biAoIEkgaG9wZSBpdCBpcyB0aGlzIGNhc2UgOikpDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g SW4gdGhpcyBwYXRjaCwgY29kZSAiZGVzYyA9IHR4cS0+c3dfcmluZ1tkZXNjXS5sYXN0X2lkOyIg d2lsbA0KPiA+ID4gPiA+ID4gZ2V0IHRoZSBsYXN0IGluZGV4IGZvciBzZXZlcmFsIHNlZ21lbnRz IHBhY2tldCwgdGhhdCAgc29sdmUNCj4gPiA+ID4gPiA+IHRoZSBjYXNlIHdoZW4gcGFja2V0IGNv bnRhaW4gbW9yZSB0aGFuIG9uZSBzZWdtZW50Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gWWVzLCBi dXQgbXkgdW5kZXJzdGFuZGluZyBpcyB3ZSAic2V0IFJTIG9uIHRoZSBwcmV2aW91cyBwYWNrZXQi DQo+ID4gPiA+ID4gYnV0IG5vdCB0aGUgcGFja2V0IGNyb3NzIHR4X3JzX3RocmVzaCBib3VuZGFy eSBTbyBldmVuIHdpdGhvdXQNCj4gPiA+ID4gPiBtdWx0aS1zZWcgLCBpdCB3aWxsIGJlIDMwLCA2 MiwgOTQsIGJ1dCBub3QgMzEsIDYzLCA5NSwgcHJvYmFibHkNCj4gPiA+ID4gPiB0aGUgcmVhc29u IHdlIGRpZG4ndCBzZWUgdGhlIGlzc3VlLCBpcyBiZWNhdXNlIGlmIHdlIHRlc3QgaXQNCj4gPiA+ ID4gPiB3aXRoDQo+ID4gPiA+ID4gMzIgYnVyc3QsIHRoZSBsYXRlc3QgcGFja2V0IHN0aWxsIHdp bGwgYmUgc2V0IFJTLCBzbyBpdCB3aWxsIGJlDQo+ID4gPiA+ID4gMzAsMzEsIDYyLDYzLCA5NCwg OTUsIGJ1dCBpZiB3ZSB0ZXN0ZWQgd2l0aCA2NCBidXJzdCwgSSBhc3N1bWUNCj4gPiA+ID4gPiBp dCB3aWxsIGJlIDMwLA0KPiA+IDYyLCA2MywgOTQgLi4uIHJpZ2h0Pw0KPiA+ID4gPiA+DQo+ID4g PiA+DQo+ID4gPiA+IFVwZGF0ZSB0byBsYXN0IG1haWwuDQo+ID4gPiA+IFRoZXJlIGFyZSBhbm90 aGVyIFJTIGJpdCBzZXQgY29kZSwgd2hpY2ggc2V0IFJTIGJpdCBvbiBsYXN0DQo+ID4gPiA+IGRl c2NyaXB0b3Igb2YgdGhlIHRocmVzaG9sZCBwYWNrZXQuDQo+ID4gPiA+IFNvLCB0aGF0IGlzIHRv IHNheSBpeGdiZV94bWl0X3BrdHMoKSBub3Qgb25seSBzZXQgMzAgNjIgOTQsIGJ1dCBhbHNvIDMx IDYzDQo+IDk1Lg0KPiA+ID4gPiBBbmQgaXQgYWxzbyBzZXQgdGhlIGxhc3QgcGFja2V0IG9mIHRo ZSBidXJzdCwgc28gd2UgZG8gbm90IG5lZWQNCj4gPiA+ID4gZml4IHRoaXMgZnVuY3Rpb24sIGl0 IGlzIG5vdCBidWcuDQo+ID4gPiA+DQo+ID4gPiA+IAkJLyogU2V0IFJTIGJpdCBvbmx5IG9uIHRo cmVzaG9sZCBwYWNrZXRzJyBsYXN0IGRlc2NyaXB0b3IgKi8NCj4gPiA+ID4gCQlpZiAodHhxLT5u Yl90eF91c2VkID49IHR4cS0+dHhfcnNfdGhyZXNoKSB7DQo+ID4gPiA+IAkJCVBNRF9UWF9GUkVF X0xPRyhERUJVRywNCj4gPiA+ID4gCQkJCQkiU2V0dGluZyBSUyBiaXQgb24gVFhEIGlkPSINCj4g PiA+ID4gCQkJCQkiJTR1IChwb3J0PSVkIHF1ZXVlPSVkKSIsDQo+ID4gPiA+IAkJCQkJdHhfbGFz dCwgdHhxLT5wb3J0X2lkLCB0eHEtPnF1ZXVlX2lkKTsNCj4gPiA+ID4NCj4gPiA+ID4gCQkJY21k X3R5cGVfbGVuIHw9IElYR0JFX1RYRF9DTURfUlM7DQo+ID4gPiA+DQo+ID4gPiA+IAkJCS8qIFVw ZGF0ZSB0eHEgUlMgYml0IGNvdW50ZXJzICovDQo+ID4gPiA+IAkJCXR4cS0+bmJfdHhfdXNlZCA9 IDA7DQo+ID4gPiA+IAkJCXR4cCA9IE5VTEw7DQo+ID4gPiA+IAkJfQ0KPiA+ID4NCj4gPiA+IE9L LCBidXQgaXMgdGhpcyBndWFyYW50ZWUgdGhhdCBzbG90IDMxLCA2MywgOTUgaXMgYWx3YXlzIGlu IHRoZQ0KPiA+ID4gcGFja2V0IHRoYXQgY3Jvc3MgdHhfcnhfdGhyZXNoIGJvdW5kYXJ5Pw0KPiA+ ID4gTGV0J3MgYXNzdW1lIGV2ZXJ5IHBhY2tldCBoYXMgNSBzZWcsIHNvIGluIGV2ZXJ5IDcgcGFj a2V0IHRoZSBsYXN0DQo+ID4gPiBvbmUgd2lsbCBjcm9zcyB0aGUgYm91bmRhcnkuDQo+ID4gPiBz byBpdCB3aWxsIGJlDQo+ID4gPiAwLTQsIDUtOSwgMTAtMTQsIDE1LTE5LCAyMC0yNCwgMjUtMjks IDMwLTM0LCAzNS0zOSwgNDAtNDQsIDQ1LTQ5LA0KPiA+ID4gNTAtNTQsIDU1LTU5LCA2MC02NCwg NjUtNjkgRGVmaW5pdGVseSwgaXQgaXMgcG9zc2libGUgdGhhdCBsYXN0DQo+ID4gPiBwYWNrZXQg KGFuZCB0aGUgcHJldmlvdXMgYmVmb3JlDQo+ID4gPiBsYXN0KSBkb2VzIG5vdCBpbmNsdWRlIDMy Km4tMSBJbiBpeGdiZV94bWl0X2NsZWFudXAsIGl0IHVzZQ0KPiA+ID4gZGVzY190b19jbGVhbl90 byA9IHN3X3JpbmdbZGVzY190b19jbGVhbl90b10ubGFzdF9pZCArIHR4X3J4X3RocmVzaA0KPiA+ ID4gdG8gY2FsY3VsYXRlIG5leHQgcGFja2V0IGluIGJvdW5kYXJ5LCB0aGF0J3Mgbm8gcHJvYmxl bSBCdXQgaW4NCj4gPiA+IGl4Z2JlX2Rldl90eF9kZXNjcmlwdG9yX3N0YXR1cywgd2UgYXNzdW1l IHRoZSBpdCBpcyAzMSw2Myw5NQ0KPiA+ID4gcGF0dGVybiwgdGhhdA0KPiA+IHdpbGwgYmUgcHJv YmxlbS4NCj4gPg0KPiA+IEluIG15IHBhdGNoIGZvciBpeGdiZV9kZXZfdHhfZGVzY3JpcHRvcl9z dGF0dXMoKSBXZSBoYXZlIGNvZGUgOg0KPiA+DQo+ID4gCWRlc2MgPSB0eHEtPnN3X3JpbmdbZGVz Y10ubGFzdF9pZDsNCj4gPiAgCXN0YXR1cyA9ICZ0eHEtPnR4X3JpbmdbZGVzY10ud2Iuc3RhdHVz Ow0KPiA+DQo+ID4gaXQgd2lsbCBvbmx5IGNoZWNrIGxhc3RfaWQgREQsIGlmIGluIHRoZSBzZXZl cmFsIHNlZ21lbnQgY2FzZSwgaXQgd2lsbA0KPiA+IGFsc28gdG8gY2hlY2sgdGhlIGxhc3QgREQu DQo+IA0KPiBZZXMsIGJ1dCB3aGF0IEkgbWVhbiBpcyB3ZSBjYW4ndCBndWFyYW50ZWUgYSBwYWNr ZXQgY292ZXIgMzEsIDYzLCA5NSBpcyB0aGUNCj4gcGFja2V0IHRoYXQgY3Jvc3MgdHhfcnNfdGhy ZXNoIGJvdW5kYXJ5LCh3aG9zZSBsYXN0IHNlZ21lbnQgaGFzIFJTKS4NCg0KT2ujrCBJICB3aWxs IGNvbW1pdCB2MiBmb3IgdGhhdC4NCg0KPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBSZWdh cmRzDQo+ID4gPiA+ID4gPiA+IFFpDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBG aXhlczogYTI5MTllMTNkOTVlICgibmV0L2l4Z2JlOiBpbXBsZW1lbnQgZGVzY3JpcHRvcg0KPiA+ ID4gPiA+ID4gPiA+IHN0YXR1cw0KPiA+ID4gPiA+ID4gPiA+IEFQSSIpDQo+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBXZWkgWmhhbyA8d2VpLnpoYW8xQGlu dGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9u ZXQvaXhnYmUvaXhnYmVfcnh0eC5jIHwgMTIgKysrKysrLS0tLS0tDQo+ID4gPiA+ID4gPiA+ID4g IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfcnh0eC5jDQo+ID4gPiA+ID4gPiA+ID4gYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9y eHR4LmMgaW5kZXggM2UxM2QyNi4uZjE4NTIxOQ0KPiA+ID4gPiA+ID4gPiA+IDEwMDY0NA0KPiA+ ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYw0KPiA+ID4g PiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYw0KPiA+ID4gPiA+ ID4gPiA+IEBAIC0zMTQ2LDE1ICszMTQ2LDE1IEBADQo+ID4gPiA+ID4gPiA+ID4gaXhnYmVfZGV2 X3R4X2Rlc2NyaXB0b3Jfc3RhdHVzKHZvaWQNCj4gPiA+ID4gPiA+ID4gKnR4X3F1ZXVlLA0KPiA+ ID4gPiA+ID4gPiA+IHVpbnQxNl90IG9mZnNldCkNCj4gPiA+ID4gPiA+ID4gPiAgCQlyZXR1cm4g LUVJTlZBTDsNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAJZGVzYyA9IHR4cS0+ dHhfdGFpbCArIG9mZnNldDsNCj4gPiA+ID4gPiA+ID4gPiArCWlmIChkZXNjID49IHR4cS0+bmJf dHhfZGVzYykNCj4gPiA+ID4gPiA+ID4gPiArCQlkZXNjIC09IHR4cS0+bmJfdHhfZGVzYzsNCj4g PiA+ID4gPiA+ID4gPiAgCS8qIGdvIHRvIG5leHQgZGVzYyB0aGF0IGhhcyB0aGUgUlMgYml0ICov DQo+ID4gPiA+ID4gPiA+ID4gLQlkZXNjID0gKChkZXNjICsgdHhxLT50eF9yc190aHJlc2ggLSAx KSAvIHR4cS0+dHhfcnNfdGhyZXNoKSAqDQo+ID4gPiA+ID4gPiA+ID4gLQkJdHhxLT50eF9yc190 aHJlc2g7DQo+ID4gPiA+ID4gPiA+ID4gLQlpZiAoZGVzYyA+PSB0eHEtPm5iX3R4X2Rlc2MpIHsN Cj4gPiA+ID4gPiA+ID4gPiArCWRlc2MgPSAoZGVzYyAgLyB0eHEtPnR4X3JzX3RocmVzaCArIDEp ICoNCj4gPiA+ID4gPiA+ID4gPiArCQkJdHhxLT50eF9yc190aHJlc2ggLSAxOw0KPiA+ID4gPiA+ ID4gPiA+ICsJaWYgKGRlc2MgPj0gdHhxLT5uYl90eF9kZXNjKQ0KPiA+ID4gPiA+ID4gPiA+ICAJ CWRlc2MgLT0gdHhxLT5uYl90eF9kZXNjOw0KPiA+ID4gPiA+ID4gPiA+IC0JCWlmIChkZXNjID49 IHR4cS0+bmJfdHhfZGVzYykNCj4gPiA+ID4gPiA+ID4gPiAtCQkJZGVzYyAtPSB0eHEtPm5iX3R4 X2Rlc2M7DQo+ID4gPiA+ID4gPiA+ID4gLQl9DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiArCWRlc2MgPSB0eHEtPnN3X3JpbmdbZGVzY10ubGFzdF9pZDsNCj4gPiA+ID4gPiA+ID4g PiAgCXN0YXR1cyA9ICZ0eHEtPnR4X3JpbmdbZGVzY10ud2Iuc3RhdHVzOw0KPiA+ID4gPiA+ID4g PiA+ICAJaWYgKCpzdGF0dXMgJiBydGVfY3B1X3RvX2xlXzMyKElYR0JFX0FEVlRYRF9TVEFUX0RE KSkNCj4gPiA+ID4gPiA+ID4gPiAgCQlyZXR1cm4gUlRFX0VUSF9UWF9ERVNDX0RPTkU7DQo+ID4g PiA+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+ID4gPiAyLjcuNQ0KDQo=