From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id AA26A239 for ; Fri, 29 Sep 2017 13:39:28 +0200 (CEST) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Sep 2017 04:39:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,452,1500966000"; d="scan'208";a="156955176" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga005.fm.intel.com with ESMTP; 29 Sep 2017 04:39:27 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 29 Sep 2017 04:39:27 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.159]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.213]) with mapi id 14.03.0319.002; Fri, 29 Sep 2017 19:39:25 +0800 From: "Xing, Beilei" To: 'Sean Harte' CC: "Wu, Jingjing" , "Chilikin, Andrey" , "'dev@dpdk.org'" Thread-Topic: [dpdk-dev] [PATCH v6 6/8] net/i40e: add FDIR support for GTP-C and GTP-U Thread-Index: AQHTOPscyfmRrZqqukKHZJYeoh9j0KLLj7BQ//+OZYCAAJV/YIAACT/g Date: Fri, 29 Sep 2017 11:39:25 +0000 Message-ID: <94479800C636CB44BD422CB454846E0132038F68@SHSMSX101.ccr.corp.intel.com> References: <1506565054-67690-1-git-send-email-beilei.xing@intel.com> <1506662342-18966-1-git-send-email-beilei.xing@intel.com> <1506662342-18966-7-git-send-email-beilei.xing@intel.com> <94479800C636CB44BD422CB454846E0132038E8C@SHSMSX101.ccr.corp.intel.com> <94479800C636CB44BD422CB454846E0132038F26@SHSMSX101.ccr.corp.intel.com> In-Reply-To: <94479800C636CB44BD422CB454846E0132038F26@SHSMSX101.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDZiMGVmY2UtNDhmMC00MWVlLTk1NzYtNjg5MDlhY2I2NWFhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Ik1GN3c3SVNIajlsdVwvdzY3OE4yd1lSZ3RPWmZoZDFcL3ZnZlJWSVwva3YraHM9In0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v6 6/8] net/i40e: add FDIR support for GTP-C and GTP-U 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: Fri, 29 Sep 2017 11:39:29 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBYaW5nLCBCZWlsZWkNCj4gU2Vu dDogRnJpZGF5LCBTZXB0ZW1iZXIgMjksIDIwMTcgNzozMCBQTQ0KPiBUbzogU2VhbiBIYXJ0ZSA8 c2VhbmJoQGdtYWlsLmNvbT4NCj4gQ2M6IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwu Y29tPjsgQ2hpbGlraW4sIEFuZHJleQ0KPiA8YW5kcmV5LmNoaWxpa2luQGludGVsLmNvbT47IGRl dkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjYgNi84XSBuZXQv aTQwZTogYWRkIEZESVIgc3VwcG9ydCBmb3IgR1RQLUMNCj4gYW5kIEdUUC1VDQo+IA0KPiANCj4g DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBTZWFuIEhhcnRlIFtt YWlsdG86c2VhbmJoQGdtYWlsLmNvbV0NCj4gPiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAyOSwg MjAxNyA2OjEwIFBNDQo+ID4gVG86IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29t Pg0KPiA+IENjOiBXdSwgSmluZ2ppbmcgPGppbmdqaW5nLnd1QGludGVsLmNvbT47IENoaWxpa2lu LCBBbmRyZXkNCj4gPiA8YW5kcmV5LmNoaWxpa2luQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0K PiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2NiA2LzhdIG5ldC9pNDBlOiBhZGQg RkRJUiBzdXBwb3J0IGZvcg0KPiA+IEdUUC1DIGFuZCBHVFAtVQ0KPiA+DQo+ID4gT24gMjkgU2Vw dGVtYmVyIDIwMTcgYXQgMTA6MzMsIFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29t Pg0KPiB3cm90ZToNCj4gPiA+DQo+ID4gPg0KPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gPj4gRnJvbTogU2VhbiBIYXJ0ZSBbbWFpbHRvOnNlYW5iaEBnbWFpbC5jb21dDQo+ ID4gPj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgMjksIDIwMTcgNDoxNSBQTQ0KPiA+ID4+IFRv OiBYaW5nLCBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNvbT4NCj4gPiA+PiBDYzogV3UsIEpp bmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5jb20+OyBDaGlsaWtpbiwgQW5kcmV5DQo+ID4gPj4g PGFuZHJleS5jaGlsaWtpbkBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+PiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjYgNi84XSBuZXQvaTQwZTogYWRkIEZESVIgc3VwcG9y dA0KPiA+ID4+IGZvciBHVFAtQyBhbmQgR1RQLVUNCj4gPiA+Pg0KPiA+ID4+IE9uIDI5IFNlcHRl bWJlciAyMDE3IGF0IDA2OjE5LCBCZWlsZWkgWGluZyA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0K PiB3cm90ZToNCj4gPiA+PiA+IFRoaXMgcGF0Y2ggYWRkcyBGRElSIHN1cHBvcnQgZm9yIEdUUC1D IGFuZCBHVFAtVS4gVGhlIGlucHV0IHNldA0KPiA+ID4+ID4gb2YgR1RQLUMgYW5kIEdUUC1VIGlz IFRFSUQuDQo+ID4gPj4gPg0KPiA+ID4+ID4gU2lnbmVkLW9mZi1ieTogQmVpbGVpIFhpbmcgPGJl aWxlaS54aW5nQGludGVsLmNvbT4NCj4gPiA+PiA+IC0tLQ0KPiA+ID4+ID4gIGRyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuaCB8ICAzMCArKysrKw0KPiA+ID4+ID4gIGRyaXZlcnMvbmV0L2k0 MGUvaTQwZV9mZGlyLmMgICB8IDIwMA0KPiArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t DQo+ID4gPj4gPiAgZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYyAgIHwgMjYzDQo+ID4gPj4g KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0NCj4gPiA+PiA+ICAzIGZp bGVzIGNoYW5nZWQsIDM5NiBpbnNlcnRpb25zKCspLCA5NyBkZWxldGlvbnMoLSkNCj4gPiA+Pg0K PiA+ID4+IDxzbmlwPg0KPiA+ID4+DQo+ID4gPj4gPiBAQCAtMTE3MywxMCArMTE5Niw2OSBAQCBp NDBlX2Zsb3dfZmRpcl9jb25zdHJ1Y3RfcGt0KHN0cnVjdA0KPiA+ID4+ID4gaTQwZV9wZg0KPiA+ ID4+ICpwZiwNCj4gPiA+PiA+DQo+IHJ0ZV9jcHVfdG9fYmVfMTYoRVRIRVJfVFlQRV9BUlApKQ0K PiA+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCArPSBzaXplb2Yoc3RydWN0 IGFycF9oZHIpOw0KPiA+ID4+ID4gICAgICAgICAgICAgICAgIHNldF9pZHggPSBJNDBFX0ZMWFBM RF9MMl9JRFg7DQo+ID4gPj4gPiAtICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPj4gPiAtICAg ICAgIGRlZmF1bHQ6DQo+ID4gPj4gPiAtICAgICAgICAgICAgICAgUE1EX0RSVl9MT0coRVJSLCAi dW5rbm93biBwY3R5cGUgJXUuIiwNCj4gZmRpcl9pbnB1dC0NCj4gPiA+cGN0eXBlKTsNCj4gPiA+ PiA+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiA+PiA+ICsgICAgICAgfSBl bHNlIGlmIChmZGlyX2lucHV0LT5mbG93X2V4dC5jdXN0b21pemVkX3BjdHlwZSkgew0KPiA+ID4+ ID4gKyAgICAgICAgICAgICAgIC8qIElmIGN1c3RvbWl6ZWQgcGN0eXBlIGlzIHVzZWQgKi8NCj4g PiA+PiA+ICsgICAgICAgICAgICAgICBjdXNfcGN0eXBlID0NCj4gPiA+PiA+ICsgaTQwZV9mbG93 X2ZkaXJfZmluZF9jdXN0b21pemVkX3BjdHlwZShwZiwNCj4gPiBwY3R5cGUpOw0KPiA+ID4+ID4g KyAgICAgICAgICAgICAgIGlmIChjdXNfcGN0eXBlLT5pbmRleCA9PSBJNDBFX0NVU1RPTUlaRURf R1RQQw0KPiB8fA0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICBjdXNfcGN0eXBlLT5pbmRl eCA9PQ0KPiBJNDBFX0NVU1RPTUlaRURfR1RQVV9JUFY0IHx8DQo+ID4gPj4gPiArICAgICAgICAg ICAgICAgICAgIGN1c19wY3R5cGUtPmluZGV4ID09DQo+IEk0MEVfQ1VTVE9NSVpFRF9HVFBVX0lQ VjYgfHwNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgY3VzX3BjdHlwZS0+aW5kZXggPT0N Cj4gSTQwRV9DVVNUT01JWkVEX0dUUFUpIHsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIHVkcCA9IChzdHJ1Y3QgdWRwX2hkciAqKShyYXdfcGt0ICsgbGVuKTsNCj4gPiA+PiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIHVkcC0+ZGdyYW1fbGVuID0NCj4gPiA+PiA+ICsNCj4gPiA+ PiA+ICsgcnRlX2NwdV90b19iZV8xNihJNDBFX0ZESVJfVURQX0RFRkFVTFRfTEVOKTsNCj4gPiA+ PiA+ICsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGd0cCA9IChzdHJ1Y3QgcnRl X2Zsb3dfaXRlbV9ndHAgKikNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKCh1bnNpZ25lZCBjaGFyICopdWRwICsNCj4gc2l6ZW9mKHN0cnVjdCB1ZHBfaGRyKSk7DQo+ ID4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICBndHAtPnZfcHRfcnN2X2ZsYWdzID0gMHgz MDsNCj4gPiA+Pg0KPiA+ID4+IDB4MzAgaXNuJ3QgdmFsaWQgZm9yIEdUUC1DLCB0aGUgc2VxdWVu Y2UgbnVtYmVyIG11c3QgYmUgcHJlc2VudCBpbg0KPiA+ID4+IEdUUC1DIHNvIGl0IHdpbGwgYmUg MHgzMiBvciBtb3JlLiBJcyB0aGlzIGJ5dGUgYWN0dWFsbHkgbWF0Y2hlZA0KPiA+ID4+IGFnYWlu c3QgYnkgdGhlIGRldmljZSB1c2luZyB0aGUgR1RQIHBjdHlwZXM/DQo+ID4gPg0KPiA+ID4gV2Ug Y29uc3RydWN0IHBhY2tldHMgYW5kIHNlbmQgdGhlIHBhY2tldCB0byBIVyAgdG8gY3JlYXRlIGZs b3cNCj4gPiA+IGRpcmVjdG9yIHJ1bGUgZm9yIEdUUC1DIGFuZCBHVFAtVS4gQWN0dWFsbHkgSSBk aWRu4oCZdCBnZXQgZXJyb3IgaW5mbw0KPiA+ID4gd2l0aCAweDMwLiBBbmQgaW4gbXkgdGVzdCwg R1RQLUMgcGFja2V0cyBjYW4gaGl0ICBHVFAtQyBwY3R5cGUgcnVsZS4NCj4gPiA+IFdpbGwgdHJ5 DQo+ID4gMHgzMiBsYXRlci4NCj4gPiA+DQo+ID4gPj4NCj4gPiA+PiA+ICsgICAgICAgICAgICAg ICAgICAgICAgIGd0cC0+bXNnX2xlbiA9DQo+ID4gPj4gPiArDQo+IHJ0ZV9jcHVfdG9fYmVfMTYo STQwRV9GRElSX0dUUF9ERUZBVUxUX0xFTik7DQo+ID4gPj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBndHAtPnRlaWQgPQ0KPiBmZGlyX2lucHV0LT5mbG93Lmd0cF9mbG93LnRlaWQ7DQo+ID4g Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICBndHAtPm1zZ190eXBlID0gMHgxOw0KPiA+ID4+ DQo+ID4gPj4gV2h5IHVzZSB0aGlzIHZhbHVlPw0KPiA+ID4NCj4gPiA+IEp1c3QgZm9yIGNvbnN0 cnVjdGluZyBhIEdUUCBwYWNrZXQgdG8gY3JlYXRlIGEgZmRpciBydWxlIGZvciBvbmUNCj4gPiA+ IHBjdHlwZSwgY2FuDQo+ID4gdXNlIG90aGVyIHZhbHVlcyBleGNlcHQgMHhGRi4NCj4gPiA+DQo+ ID4gPj4NCj4gPiA+PiA+ICsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChj dXNfcGN0eXBlLT5pbmRleCA9PQ0KPiBJNDBFX0NVU1RPTUlaRURfR1RQQykNCj4gPiA+PiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWRwLT5kc3RfcG9ydCA9DQo+ID4gPj4gPiAr IHJ0ZV9jcHVfdG9fYmVfMTYoMjEyMyk7DQo+ID4gPj4NCj4gPiA+PiBUaGlzIHdpbGwgb25seSBt YXRjaCBoYWxmIG9mIEdUUC1DIG1lc3NhZ2VzLiBHVFAtQyBtZXNzYWdlcyBoYXZlIGENCj4gPiA+ PiBVRFAgcG9ydCBkZXN0aW5hdGlvbiBvZiAyMTIzLCBvciBhIFVEUCBzb3VyY2UgcG9ydCBvZiAy MTIzLiBUbw0KPiA+ID4+IG1hdGNoIGFsbCBHVFAtQyBwYWNrZXRzIHlvdSBuZWVkIHRvIGxvb2sg YXQgYm90aC4NCj4gPiA+DQo+ID4gPiBZZXMuIEJ1dCB0aGUgR1RQIHByb2ZpbGUgZm9yIGk0MGUg ZGlkbid0IHN1cHBvcnQgcmVzcG9uc2UgbWVzc2FnZS4NCj4gPg0KPiA+IFRoYXQncyBub3QgY2xl YXIgdG8gYSB1c2VyIG9mIHRoZSBydGVfZmxvdyBBUEkNCj4gDQo+IFJ0ZV9mbG93IGlzIGEgZ2Vu ZXJpYyBBUEksIEkgdGhpbmsgaXQgc2hvdWxkIGFsbG93IHVzZXJzIHRvIGNyZWF0ZSBydWxlIGZv cg0KPiByZXNwb25zZSBtZXNzYWdlLg0KPiBCdXQgaTQwZSBQTUQgZG9lcyBub3QgdGhlIHN1cHBv cnQgcmVzcG9uc2UgbWVzc2FnZSwgaWYgdXNlciB3YW50IHRvIGNyZWF0ZQ0KPiBhIHJ1bGUgZm9y IGk0MGUgbGlrZSBiZWxvdzoNCj4gRmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8g aXB2NCAvIHVkcCBzcmMgaXMgMjEyMyAvIGd0cGMgLyBlbmQgLw0KPiBhY3Rpb25zIHF1ZXVlIGlu ZGV4IDQgLyBlbmQgSXQgd2lsbCBmYWlsLiBCdXQgbWF5YmUgb3RoZXIgUE1EIGNhbiBzdXBwb3J0 IGl0Lg0KPiANCj4gPg0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgZWxzZQ0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ZHAt PmRzdF9wb3J0ID0NCj4gPiA+PiA+ICsgcnRlX2NwdV90b19iZV8xNigyMTUyKTsNCj4gPiA+PiA+ ICsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXNfcGN0eXBlLT5pbmRl eCA9PQ0KPiBJNDBFX0NVU1RPTUlaRURfR1RQVV9JUFY0KSB7DQo+ID4gPj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGd0cC0+bXNnX3R5cGUgPSAweEZGOw0KPiA+ID4+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2NCA9IChzdHJ1Y3QgaXB2NF9oZHIg KikNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVu c2lnbmVkIGNoYXIgKilndHANCj4gKw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0DQo+ID4gPj4gPiArIHJ0ZV9mbG93X2l0ZW1f Z3RwKSk7DQo+ID4gPj4NCj4gPiA+PiBUaGlzIGlzIG9ubHkgdmFsaWQgaWYgdl9wdF9yc3ZfZmxh Z3MgaXMgMHgzMC4gR1RQLVUgcGFja2V0cyBhcmUNCj4gPiA+PiBhbGxvd2VkIHRvIGhhdmUgYSBz ZXF1ZW5jZSBudW1iZXIsIHdoaWNoIGFkZHMgYW4gZXh0cmEgNCBieXRlcyB0bw0KPiA+ID4+IHRo ZQ0KPiA+IEdUUCBoZWFkZXIuDQo+ID4gPg0KPiA+ID4gRm9yIHRoZSBHVFAgcHJvZmlsZSwgdGhl cmUncmUgNCBwY3R5cGVzIGZvciBHVFAgcGFja2V0czogR1RQQywgR1RQVSwNCj4gPiBHVFBJUFY0 LCBhbmQgR1RQSVBWNi4NCj4gPiA+IEhXIHBhcnNlIHdoaWNoIHBjdHlwZSB0aGUgR1RQIHBhY2tl dHMgYmVsb25nZSB0by4NCj4gPiA+IFdlIGNvbnN0cnVjdCBwYWNrZXQgdG8gY3JlYXRlIGEgZmRp ciBydWxlIGZvciBvbmUgcGN0eXBlLCBhZnRlcg0KPiA+ID4gdGhhdCwgYWxsIHBhY2tldHMgd2hv c2UgcGN0eXBlIG1hdGNoZXMgdGhlIHJ1bGUncyBwY3R5cGUgd2lsbCBoaXQgdGhlIHJ1bGUuDQo+ ID4NCj4gPiBNeSBwb2ludCBpcyB0aGF0IHlvdSBjYW4gb25seSBhc3N1bWUgdGhlIGlubmVyIElQ IGhlYWRlciBzdGFydHMgYXQgYW4NCj4gPiBvZmZzZXQgb2Ygc2l6ZW9mKHN0cnVjdCBydGVfZmxv d19pdGVtX2d0cCkgaWYgdl9wdF9yc3ZfZmxhZ3MgaXMNCj4gPiBleGFjdGx5IDB4MzAuIElmIHlv dSBtYXRjaCBvbmx5IHRob3NlIHBhY2tldHMgdGhlbiBzb21lIEdUUC1VIHBhY2tldHMNCj4gd2ls bCBub3QgYmUgbWF0Y2hlZC4NCj4gPiBUaGF0IHNob3VsZCBiZSBjbGVhciB0byBhIHVzZXIgb2Yg dGhlIHJ0ZV9mbG93IEFQSS4NCj4gPg0KPiANCj4gTm8gbWF0dGVyIGlmICBHVFAtVSBwYWNrZXRz IGhhcyBhIHNlcXVlbmNlIG51bWJlciwgb25jZSBtZXNzYWdlLXR5cGUgaXMNCj4gMHhGRiwgdGhl IHBjdHlwZSBvZiB0aGUgcGFja2V0IHBhcnNlZCBieSBpNDBlIEhXIHdpbGwgYmUgR1RQSVBWNCBv cg0KPiBHVFBJUFY2Lg0KPiBTbyBJZiBJIGNyZWF0ZSBhIGZsb3cgcnVsZSBmb3IgR1RQLVUgcGFj a2V0cyB3aXRoIHZfcHRfcnN2X2ZsYWdzIDB4MzAgYW5kDQo+IG1lc3NhZ2VfdHlwZSBpcyAweEZG LCBpdCBtZWFucyBJIGNyZWF0ZSBhIHJ1bGUgZm9yIHBjdHlwZSBHVFBJUFY0IG9yDQo+IEdUUElQ VjYuDQo+IFRoZW4gR1RQLVUgcGFja2V0cyB3aXRoIHZfcHRfcnN2X2ZsYWdzIDB4MzIgY2FuIGhp dCB0aGUgcnVsZSBiZWNhdXNlIGl0cw0KPiBwY3R5cGUgaXMgYWxzbyBHVFBJUFY0IG9yIEdUUElQ VjYuDQo+IEl0J3MganVzdCBpNDBlIEhXJ3MgYmVoYXZpb3IsIGRvZXNuJ3QgbWVhbiBpdCdzIGVm ZmVjdGl2ZSBmb3Igb3RoZXIgTklDcy4NCj4gSG9wZSBJIGV4cGxhaW4gaXQgY2xlYXJseTopDQo+ IA0KDQpUaGUga2V5IHBvaW50IGlzIDogZm9yIGk0MGUgSFcsIGRpZmZlcmVudCBwYWNrZXQgdHlw ZXMgY2FuIHVzZSB0aGUgc2FtZSBwY3R5cGUuDQoNCj4gPiA+DQo+ID4gPj4NCj4gPiA+PiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RwX2lwdjQtPnZlcnNpb25faWhsID0NCj4g PiA+PiA+ICsNCj4gSTQwRV9GRElSX0lQX0RFRkFVTFRfVkVSU0lPTl9JSEw7DQo+ID4gPj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0cF9pcHY0LT5uZXh0X3Byb3RvX2lkID0N Cj4gSVBQUk9UT19JUDsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3RwX2lwdjQtPnRvdGFsX2xlbmd0aCA9DQo+ID4gPj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcnRlX2NwdV90b19iZV8xNigNCj4gPiA+PiA+ICsNCj4gSTQwRV9G RElSX0lOTkVSX0lQX0RFRkFVTFRfTEVOKTsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGF5bG9hZCA9ICh1bnNpZ25lZCBjaGFyDQo+ICopZ3RwX2lwdjQgKw0KPiA+ ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1 Y3QNCj4gaXB2NF9oZHIpOw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IGlmIChjdXNfcGN0eXBlLT5pbmRleCA9PQ0KPiA+ID4+ID4gKw0KPiBJNDBFX0NVU1RPTUlaRURf R1RQVV9JUFY2KSB7DQo+ID4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0 cC0+bXNnX3R5cGUgPSAweEZGOw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBndHBfaXB2NiA9IChzdHJ1Y3QgaXB2Nl9oZHIgKikNCj4gPiA+PiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIgKilndHANCj4gKw0K PiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yo c3RydWN0DQo+ID4gPj4gPiArIHJ0ZV9mbG93X2l0ZW1fZ3RwKSk7DQo+ID4gPj4NCj4gPiA+PiBU aGlzIGlzIG9ubHkgdmFsaWQgaWYgdl9wdF9yc3ZfZmxhZ3MgaXMgMHgzMC4gR1RQLVUgcGFja2V0 cyBhcmUNCj4gPiA+PiBhbGxvd2VkIHRvIGhhdmUgYSBzZXF1ZW5jZSBudW1iZXIsIHdoaWNoIGFk ZHMgYW4gZXh0cmEgNCBieXRlcyB0bw0KPiA+ID4+IHRoZQ0KPiA+IEdUUCBoZWFkZXIuDQo+ID4g Pg0KPiA+ID4gU2FtZSB3aXRoIGFib3ZlLg0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2Ni0+dnRjX2Zsb3cgPQ0KPiA+ID4+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9jcHVfdG9fYmVfMzIo DQo+ID4gPj4gPiArDQo+IEk0MEVfRkRJUl9JUHY2X0RFRkFVTFRfVlRDX0ZMT1cgfA0KPiA+ID4+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA8PA0K PiBJNDBFX0ZESVJfSVB2Nl9UQ19PRkZTRVQpKTsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3RwX2lwdjYtPnByb3RvID0NCj4gSVBQUk9UT19OT05FOw0KPiA+ID4+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2Ni0+cGF5bG9hZF9sZW4g PQ0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9j cHVfdG9fYmVfMTYoDQo+ID4gPj4gPiArDQo+IEk0MEVfRkRJUl9JTk5FUl9JUHY2X0RFRkFVTFRf TEVOKTsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RwX2lwdjYt PmhvcF9saW1pdHMgPQ0KPiA+ID4+ID4gKw0KPiBJNDBFX0ZESVJfSVB2Nl9ERUZBVUxUX0hPUF9M SU1JVFM7DQo+ID4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQg PSAodW5zaWduZWQgY2hhcg0KPiAqKWd0cF9pcHY2ICsNCj4gPiA+PiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0DQo+IGlwdjZfaGRyKTsNCj4g PiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQ0KPiA+ID4+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gKHVuc2lnbmVkIGNoYXIgKilndHANCj4g Kw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZihzdHJ1Y3QNCj4gcnRlX2Zsb3dfaXRlbV9ndHApOw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAg IH0NCj4gPiA+PiA+ICsgICAgICAgfSBlbHNlIHsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICBQ TURfRFJWX0xPRyhFUlIsICJ1bmtub3duIHBjdHlwZSAldS4iLA0KPiA+ID4+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZkaXJfaW5wdXQtPnBjdHlwZSk7DQo+ID4gPj4gPiArICAgICAg ICAgICAgICAgcmV0dXJuIC0xOw0KPiA+ID4+ID4gICAgICAgICB9DQo+ID4gPj4gPg0KPiA+ID4+ ID4gICAgICAgICAvKiBmaWxsIHRoZSBmbGV4Ynl0ZXMgdG8gcGF5bG9hZCAqLw0KPiA+ID4+DQo+ ID4gPj4gPHNuaXA+DQo=