From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <konstantin.ananyev@intel.com>
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by dpdk.org (Postfix) with ESMTP id C257095C9
 for <dev@dpdk.org>; Thu,  7 Jan 2016 11:25:37 +0100 (CET)
Received: from orsmga003.jf.intel.com ([10.7.209.27])
 by fmsmga103.fm.intel.com with ESMTP; 07 Jan 2016 02:24:40 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.20,532,1444719600"; d="scan'208";a="721944765"
Received: from irsmsx153.ger.corp.intel.com ([163.33.192.75])
 by orsmga003.jf.intel.com with ESMTP; 07 Jan 2016 02:24:26 -0800
Received: from irsmsx105.ger.corp.intel.com ([169.254.7.104]) by
 IRSMSX153.ger.corp.intel.com ([169.254.9.170]) with mapi id 14.03.0248.002;
 Thu, 7 Jan 2016 10:24:19 +0000
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Thread-Topic: [dpdk-dev] [PATCH 01/12] ethdev: add API to query what/if
 packet type is set
Thread-Index: AQHRQ9KoIugEgpKcLkGtpAxtk9NTop7rQSUAgAAxMWCAAa5MgIAABAAggAEl+oCAAEBwAIAAH5sAgAAH//CAABNuAIABGg4Q
Date: Thu, 7 Jan 2016 10:24:19 +0000
Message-ID: <2601191342CEEE43887BDE71AB97725836AE2F5B@irsmsx105.ger.corp.intel.com>
References: <1451544799-70776-1-git-send-email-jianfeng.tan@intel.com>
 <1451544799-70776-2-git-send-email-jianfeng.tan@intel.com>
 <20160104113814.GT3806@6wind.com>
 <2601191342CEEE43887BDE71AB97725836AE1002@irsmsx105.ger.corp.intel.com>
 <20160105161423.GE4712@autoinstall.dev.6wind.com>
 <2601191342CEEE43887BDE71AB97725836AE18E3@irsmsx105.ger.corp.intel.com>
 <20160106100053.GJ12095@6wind.com>
 <2601191342CEEE43887BDE71AB97725836AE1B46@irsmsx105.ger.corp.intel.com>
 <20160106154438.GP12095@6wind.com>
 <2601191342CEEE43887BDE71AB97725836AE2DBC@irsmsx105.ger.corp.intel.com>
 <20160106172248.GT12095@6wind.com>
In-Reply-To: <20160106172248.GT12095@6wind.com>
Accept-Language: en-IE, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [163.33.239.182]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH 01/12] ethdev: add API to query what/if
 packet type is set
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: Thu, 07 Jan 2016 10:25:38 -0000

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWRyaWVuIE1hemFyZ3Vp
bCBbbWFpbHRvOmFkcmllbi5tYXphcmd1aWxANndpbmQuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXks
IEphbnVhcnkgMDYsIDIwMTYgNToyMyBQTQ0KPiBUbzogQW5hbnlldiwgS29uc3RhbnRpbg0KPiBD
YzogTsOpbGlvIExhcmFuamVpcm87IFRhbiwgSmlhbmZlbmc7IGRldkBkcGRrLm9yZw0KPiBTdWJq
ZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggMDEvMTJdIGV0aGRldjogYWRkIEFQSSB0byBxdWVy
eSB3aGF0L2lmIHBhY2tldCB0eXBlIGlzIHNldA0KPiANCj4gT24gV2VkLCBKYW4gMDYsIDIwMTYg
YXQgMDQ6NDQ6NDNQTSArMDAwMCwgQW5hbnlldiwgS29uc3RhbnRpbiB3cm90ZToNCj4gPg0KPiA+
DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogQWRyaWVuIE1h
emFyZ3VpbCBbbWFpbHRvOmFkcmllbi5tYXphcmd1aWxANndpbmQuY29tXQ0KPiA+ID4gU2VudDog
V2VkbmVzZGF5LCBKYW51YXJ5IDA2LCAyMDE2IDM6NDUgUE0NCj4gPiA+IFRvOiBBbmFueWV2LCBL
b25zdGFudGluDQo+ID4gPiBDYzogTsOpbGlvIExhcmFuamVpcm87IFRhbiwgSmlhbmZlbmc7IGRl
dkBkcGRrLm9yZw0KPiA+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIDAxLzEyXSBl
dGhkZXY6IGFkZCBBUEkgdG8gcXVlcnkgd2hhdC9pZiBwYWNrZXQgdHlwZSBpcyBzZXQNCj4gPiA+
DQo+ID4gPiBPbiBXZWQsIEphbiAwNiwgMjAxNiBhdCAwMjoyOTowN1BNICswMDAwLCBBbmFueWV2
LCBLb25zdGFudGluIHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0tT3Jp
Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogQWRyaWVuIE1hemFyZ3VpbCBbbWFp
bHRvOmFkcmllbi5tYXphcmd1aWxANndpbmQuY29tXQ0KPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2Rh
eSwgSmFudWFyeSAwNiwgMjAxNiAxMDowMSBBTQ0KPiA+ID4gPiA+IFRvOiBBbmFueWV2LCBLb25z
dGFudGluDQo+ID4gPiA+ID4gQ2M6IE7DqWxpbyBMYXJhbmplaXJvOyBUYW4sIEppYW5mZW5nOyBk
ZXZAZHBkay5vcmcNCj4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggMDEv
MTJdIGV0aGRldjogYWRkIEFQSSB0byBxdWVyeSB3aGF0L2lmIHBhY2tldCB0eXBlIGlzIHNldA0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gVHVlLCBKYW4gMDUsIDIwMTYgYXQgMDQ6NTA6MzFQTSAr
MDAwMCwgQW5hbnlldiwgS29uc3RhbnRpbiB3cm90ZToNCj4gPiA+ID4gPiBbLi4uXQ0KPiA+ID4g
PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gPiBGcm9tOiBO
w6lsaW8gTGFyYW5qZWlybyBbbWFpbHRvOm5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tXQ0KPiA+
ID4gPiA+IFsuLi5dDQo+ID4gPiA+ID4gPiA+IEkgdGhpbmsgd2UgbWlzcyBhIGNvbW1lbnQgaGVy
ZSBpbiBob3cgdGhvc2UgMi82LzQgdmFsdWVzIGFyZSBjaG9zZW4NCj4gPiA+ID4gPiA+ID4gYmVj
YXVzZSwgYWNjb3JkaW5nIHRvIHRoZSBtYXNrLCBJIGV4cGVjdCAxNiBwb3NzaWJpbGl0aWVzIGJ1
dCBJIGdldA0KPiA+ID4gPiA+ID4gPiBsZXNzLiAgSXQgd2lsbCBoZWxwIGEgbG90IGFueW9uZSB3
aG8gbmVlZHMgdG8gYWRkIGEgbmV3IHR5cGUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
IEV4dGVuZGluZyB0aGUgc25wcmludGYgYmVoYXZpb3IgYWJvdmUsIGl0IGlzIGJlc3QgdG8gcmVt
b3ZlIHRoZSBtYXNrDQo+ID4gPiA+ID4gPiA+IGFyZ3VtZW50IGFsdG9nZXRoZXIgYW5kIGhhdmUg
cnRlX2V0aF9kZXZfZ2V0X3B0eXBlX2luZm8oKSByZXR1cm4gdGhlDQo+ID4gPiA+ID4gPiA+IGVu
dGlyZSBsaXN0IGV2ZXJ5IHRpbWUuICBBcHBsaWNhdGlvbnMgbmVlZCB0byBpdGVyYXRlIG9uIHRo
ZSByZXN1bHQgaW4NCj4gPiA+ID4gPiA+ID4gYW55IGNhc2UuDQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gSSB0aGluayB3ZSdkIGJldHRlciBrZWVwIG1hc2sgYXJndW1lbnQuDQo+ID4gPiA+ID4g
PiBJbiBtYW55IGNhc2VzIHVwcGVyIGxheWVyIG9ubHkgaW50ZXJlc3RlZCBpbiBzb21lIHBhcnRp
Y3VsYXIgIHN1YnNldCBvZg0KPiA+ID4gPiA+ID4gYWxsIHBhY2tldCB0eXBlcyB0aGF0IEhXIGNh
biByZWNvZ25pc2UuDQo+ID4gPiA+ID4gPiBMZXQgc2F5IGwzZndkIG9ubHkgY2FyZXMgYWJvdXQg
IFJURV9QVFlQRV9MM19NQVNLLCBpdCBpcyBub3QgaW50ZXJlc3RlZCBpbiBMNCwNCj4gPiA+ID4g
PiA+IHR1bm5lbGxpbmcgcGFja2V0IHR5cGVzLCBldGMuDQo+ID4gPiA+ID4gPiBJZiBjYWxsZXIg
bmVlZHMgdG8ga25vdyBhbGwgcmVjb2duaXNlZCBwdHlwZXMsIGhlIGNhbiBzZXQgbWFzaz09LTEs
DQo+ID4gPiA+ID4gPiBJbiB0aGF0IGNhc2UgYWxsIHN1cHBvcnRlZCBwYWNrZXQgdHlwZXMgd2ls
bCBiZSByZXR1cm5lZC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoZXJlIGFyZSBvdGhlciBkcmF3
YmFja3MgdG8gdGhlIG1hc2sgYXJndW1lbnQgaW4gbXkgb3Bpbmlvbi4gVGhlIEFQSSB3aWxsDQo+
ID4gPiA+ID4gaGF2ZSB0byBiZSB1cGRhdGVkIGFnYWluIGFzIHNvb24gYXMgMzIgYml0cyBhcmVu
J3QgZW5vdWdoIHRvIHJlcHJlc2VudCBhbGwNCj4gPiA+ID4gPiBwb3NzaWJsZSBtYXNrcy4gV2Ug
Y2FuJ3QgcHJlZGljdCBpdCB3aWxsIGJlIGxhcmdlIGVub3VnaCBmb3JldmVyIGJ1dCBvbiB0aGUN
Cj4gPiA+ID4gPiBvdGhlciBoYW5kLCB1c2luZyB1aW50NjRfdCBzZWVtcyBvdmVya2lsbCBhdCB0
aGlzIHBvaW50Lg0KPiA+ID4gPg0KPiA+ID4gPiBJbnNpZGUgcnRlX21idWYgcGFja2V0X3R5cGUg
aXRzZWxmIGlzIGEgMzIgYml0IHZhbHVlLg0KPiA+ID4gPiBUaGVzZSAzMiBiaXRzIGFyZSBkaXZp
ZGVkIGludG8gc2V2ZXJhbCBmaWVsZHMgdG8gbWFyayBwYWNrZXQgdHlwZXMsDQo+ID4gPiA+IGku
ZTogYml0cyBbMC0zXSBhcmUgZm9yIGFsbCBwb3NzaWJsZSBMMiB0eXBlcywgYml0cyBbNC03XSBm
b3IgTDMgdHlwZXMsIGV0Yy4NCj4gPiA+ID4gQXMgbG9uZyBhcyBwYWNrZXRfdHlwZSBpdHNlbGYg
aXMgMzJiaXRzLCAzMmJpdCBtYXNrIGlzIHN1ZmZpY2llbnQuDQo+ID4gPiA+IElmIHdlJ2xsIGV2
ZXIgcnVuIG91dCBvZiAzMiBiaXRzIGluIHBhY2tldF90eXBlIGl0c2VsZiwgaXQgd2lsbCBiZSBB
QkkgY2hhbmdlIGFueXdheS4NCj4gPiA+DQo+ID4gPiBTdXJlLCBob3dldmVyIHdoeSBub3QgZG8g
aXQgbm93IHRoaXMgaXNzdWUgaGFzIGJlZW4gcmFpc2VkIHNvIHRoaXMgZnVuY3Rpb24NCj4gPiA+
IGRvZXNuJ3QgbmVlZCB1cGRhdGluZyB0aGUgZGF5IGl0IGJyZWFrcz8gSSBrbm93IHRoZXJlJ3Mg
YSBtaWxsaW9uIG90aGVyDQo+ID4gPiBwbGFjZXMgd2l0aCBhIHNpbWlsYXIgcHJvYmxlbSBidXQg
SSdtIGFsbCBmb3IgbWFraW5nIG5ldyBjb2RlIGZ1dHVyZSBwcm9vZi4NCj4gPg0KPiA+IElmIHJ0
ZV9tYnVmIHBhY2tldF90eXBlIHdpbGwgaGF2ZSB0byBiZSBpbmNyZWFzZWQgdG8gNjRiaXQgbG9u
ZywgdGhlbg0KPiA+IHRoaXMgZnVuY3Rpb24gd2lsbCBoYXZlIHRvIGNoYW5nZSBhbnl3YXkgKHdp
dGggb3Igd2l0aG91dCBtYXNrIHBhcmFtZXRlcikuDQo+ID4gSXQgd2lsbCBoYXZlIHRvIGJlY29t
ZToNCj4gPg0KPiA+IHJ0ZV9ldGhfZGV2X2dldF9wdHlwZV9pbmZvKHVpbnQ4X3QgcG9ydGlkLCB1
aW50NjRfdCBwdHlwZXNbXSwgLi4uKQ0KPiA+DQo+ID4gU28gSSB0aGluayB3ZSBkb24ndCBoYXZl
IHRvIHdvcnJ5IGFib3V0IG1hc2sgcGFyYW1ldGVyIGl0c2VsZi4NCj4gDQo+IFdlbGwsIHllcywg
YmVzaWRlcyBJIG92ZXJsb29rZWQgcHR5cGVzW10gaXRzZWxmIGlzIDMyIGJpdCwgd29ya2luZyBh
cm91bmQNCj4gdGhlIHR5cGUgd2lkdGggb2YgdGhlIG1hc2sgd291bGRuJ3QgaGVscCBtdWNoLg0K
PiANCj4gPiA+IFBlcmhhcHMgaW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UgdGhlcmUgaXMgbm8gd2F5
IHRvIGhpdCB0aGUgbGltaXQgKGFsdGhvdWdoDQo+ID4gPiB0aGVyZSBhcmUgb25seSBmb3VyIHVu
dXNlZCBiaXRzIGxlZnQgdG8gZXh0ZW5kIFJURV9QVFlQRSBtYXNrcykgYnV0IHdlJ3ZlDQo+ID4g
PiBzZWVuIHRoaXMgaGFwcGVuIHRvbyBtYW55IHRpbWVzIHdpdGggc3Vic2VxdWVudCBBQkkgYnJl
YWthZ2UuDQo+ID4NCj4gPiBXaGVuIHB0eXBlIHdhcyBpbnRyb2R1Y2VkIHdlIHRyaWVkIHRvIHJl
c2VydmUgc29tZSBmcmVlIHNwYWNlIGZvciBlYWNoIGxheWVyIChMMi9MMy9MNC8uLi4pLA0KPiA+
IHNvIGl0IHdvdWxkbid0IGJlIG92ZXJydW4gaW1tZWRpYXRlbHkuDQo+ID4gQnV0IG9mIGNvdXJz
ZSBpZiB0aGVyZSB3b3VsZCBiZSBhIG5ldyBIVyB0aGF0IGNhbiByZWNvZ25pc2UgZG96ZW4gbmV3
IHBhY2tldCB0eXBlcyAtIGl0IGlzIHBvc3NpYmxlLg0KPiA+IERvIHlvdSBoYXZlIGFueSBwYXJ0
aWN1bGFyIHVzZS1jYXNlIGluIG1pbmQ/DQo+IA0KPiBObywgdGhhdCB3YXMganVzdCB0byBpbGx1
c3RyYXRlIG15IHBvaW50Lg0KPiANCj4gPiA+ID4gPiBJIHRoaW5rIHRoaXMgdXNlIGZvciBtYXNr
cyBzaG91bGQgYmUgYXZvaWRlZCB3aGVuIHBlcmZvcm1hbmNlIGRvZXMgbm90DQo+ID4gPiA+ID4g
bWF0dGVyIG11Y2gsIGFzIGluIHRoaXMgY2FzZSwgdXNlciBhcHBsaWNhdGlvbiBjYW5ub3Qga25v
dyB0aGUgbnVtYmVyIG9mDQo+ID4gPiA+ID4gZW50cmllcyBpbiBhZHZhbmNlIGFuZCBtdXN0IHJl
bHkgb24gdGhlIHJldHVybmVkIHZhbHVlIHRvIGl0ZXJhdGUuDQo+ID4gPiA+DQo+ID4gPiA+IFVz
ZXIgZG9lc24ndCBrbm93IG51bWJlcnMgb2YgZW50cmllcyBpbiBhZHZhbmNlIGFueXdheSAod2l0
aCBhbmQgd2l0aG91dCB0aGUgbWFzaykuDQo+ID4gPiA+IFRoYXQncyB3aHkgdGhpcyBmdW5jdGlv
biB3YXMgaW50cm9kdWNlZCBhdCBmaXJzdCBwbGFjZS4NCj4gPiA+ID4NCj4gPiA+ID4gV2l0aCBt
YXNrIGl0IGp1c3QgYSBiaXQgbW9yZSBoYW5keSwgaW4gY2FzZSB1c2VyIGNhcmVzIG9ubHkgYWJv
dXQgcGFydGljdWxhciBzdWJzZXQgb2Ygc3VwcG9ydGVkDQo+ID4gPiA+IHBhY2tldCB0eXBlcyAo
b25seSBMMiBsZXQgc2F5KS4NCj4gPiA+DQo+ID4gPiBPSywgc28gd2UgZGVmaW5pdGVseSBuZWVk
IHNvbWV0aGluZyB0byBsZXQgYXBwbGljYXRpb25zIGtub3cgdGhlIGxheWVyIGENCj4gPiA+IGdp
dmVuIHBhY2tldCB0eXBlIGJlbG9uZ3MgdG8sIEknbSBzdXJlIGl0IGNhbiBiZSBkb25lIGluIGEg
Y29udmVuaWVudCB3YXkNCj4gPiA+IHRoYXQgd29uJ3QgYmUgbGltaXRlZCB0byB0aGUgdW5kZXJs
eWluZyB0eXBlIG9mIHRoZSBtYXNrLg0KPiA+ID4NCj4gPiA+ID4gPiBBIGhlbHBlciBmdW5jdGlv
biBjYW4gYmUgYWRkZWQgdG8gY29udmVydCBhIFJURV9QVFlQRV8qIHZhbHVlIHRvIHRoZSBsYXll
cg0KPiA+ID4gPiA+IGl0IGJlbG9uZ3MgdG8gKHVzaW5nIGVudW0gdG8gZGVmaW5lIHBvc3NpYmxl
IHZhbHVlcykuDQo+ID4gPiA+DQo+ID4gPiA+IE5vdCBzdXJlIHdoYXQgZm9yPw0KPiA+ID4NCj4g
PiA+IFRoaXMgaXMgYXNzdW1pbmcgcnRlX2V0aF9kZXZfZ2V0X3B0eXBlX2luZm8oKSBkb2Vzbid0
IGZpbHRlciBhbnl0aGluZyAobm8NCj4gPiA+ICJtYXNrIiBhcmd1bWVudCkuIEluIHRoYXQgY2Fz
ZSBhIHNlcGFyYXRlIGZ1bmN0aW9uIG11c3QgYmUgYWRkZWQgdG8gY29udmVydA0KPiA+ID4gUlRF
X1BUWVBFXyogdmFsdWVzIHRvIGEgbGF5ZXIsIHNvIGFwcGxpY2F0aW9ucyBjYW4gbG9vayBmb3Ig
aW50ZXJlc3RpbmcNCj4gPiA+IHBhY2tldCB0eXBlcyB3aGlsZSBwYXJzaW5nIHBsaXN0W10gb24g
dGhlaXIgb3duLg0KPiA+DQo+ID4gSG9uZXN0bHksIEkgZG9uJ3Qgc2VlIHdoeSBkbyB5b3UgbmVl
ZCB0aGF0Lg0KPiA+IFlvdSBhbHJlYWR5IGRvIGtub3cgdGhhdCAgbGV0IHNheSBSVEVfUFRZUEVf
TDNfSVBWNCBiZWxvbmdzIHRvIEwzLg0KPiA+IFdoeSBkbyB5b3UgbmVlZCBzb21lIGV4dHJhIGVu
dW0gaGVyZT8NCj4gPiBGcm9tIG15IHRob3VnaHQgLSB0aGUgb25seSBwdXJwb3NlIG9mIG1hc2sg
cGFyYW1ldGVyIHdhcyB0byBsaW1pdCBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHB0eXBlc1td
IGF0IHJldHVybi4NCj4gPiBTbyBsZXQgc2F5IHVzZXIgd291bGQgbmVlZCB0byBpdGVyYXRlIG92
ZXIgMTAgZWxlbWVudHMsIGluc3RlYWQgb2YgMTAwIHRvIGZpbmQNCj4gPiB0aGUgb25lcyBoZSBp
cyBpbnRlcmVzdGVkIGluLg0KPiANCj4gU2luY2UgdGhpcyBpcyBhbHJlYWR5IGEgc2xvdyBtYW5u
ZXIgZm9yIHJldHJpZXZpbmcgdHlwZXMsIDEwIG9yIDEwMCBkb2Vzbid0DQo+IG1ha2UgbXVjaCBk
aWZmZXJlbmNlLiBTdWNoIGEgZnVuY3Rpb24gc2hvdWxkbid0IGJlIHVzZWQgaW4gdGhlIGRhdGEg
cGF0aA0KPiBkaXJlY3RseS4NCiANClllcywgaXQgaXMgbm90IHN1cHBvc2VkIHRvIGJlIGNhbGxl
ZCBmcm9tIGRhdGEtcGF0aC4NCg0KPiBNeSBwb2ludCBpcywgc2luY2Ugd2UncmUgZGVhbGluZyB3
aXRoIGEgc2xvdyBmdW5jdGlvbiwgbGV0J3Mga2VlcCBpdHMgQVBJIGFzDQo+IHNpbXBsZSBhcyBw
b3NzaWJsZS4gDQoNCldlbGwsIEFQSSBzaG91bGQgYmUgc2ltcGxlLCBidXQgZnJvbSBvdGhlciBz
aWRlIGl0IGhhcyB0byBiZSBmbGV4aWJsZSBhbmQgY29udmVuaWVudA0KZm9yIHRoZSB1c2VyLg0K
QXMgSSB1c2VyLCBJIHdvdWxkIHByZWZlciB0byBoYXZlIGFuIGFiaWxpdHkgdG8gc2VsZWN0IHRo
ZSBsYXllcnMgaGVyZSAtIHRoYXQncw0Kd2h5IEkgc3VnZ2VzdGVkIHRvIGFkZCB0aGUgbWFzayBw
YXJhbWV0ZXIuIA0KDQo+QnkgaGF2aW5nIGEgbWFzayB0byBtYXRjaCwgYSBsYXJnZSBudW1iZXIg
b2YgY2hlY2tzIGFyZQ0KPiBhZGRlZCBpbiBhbGwgUE1EcyB3aGlsZSB0aGV5IGNvdWxkIGp1c3Qg
ZmlsbCB0aGUgYXJyYXkgd2l0aG91dA0KPiBib3RoZXJpbmcuIA0KDQpUaGF0J3MgYSB2YWxpZCBw
b2ludC4NCldlIGNvdWxkIG1vdmUgZmlsdGVyIHBvaW50IGludG8gcnRlX2V0aGRldiBsYXllci4N
ClNvIFBNRCB3b3VsZCBhbHdheXMgcmV0dXJuIGFuIGFycmF5IG9mIGFsbCBzdXBwb3J0ZWQgcHR5
cGVzLCBhbmQNCnRoZW4gcnRlX2V0aGRldiBsYXllciB3aWxsIGZpbHRlciBpdCBiYXNlZCBvbiBt
YXNrIHBhcmFtZXRlci4NCkRvZXMgaXQgc291bmQgcmVhc29uYWJsZSB0byB5b3U/DQoNCktvbnN0
YW50aW4gDQoNCj5UaGUgZmlsdGVyaW5nIGxvZ2ljIGlzIGFuIGFwcGxpY2F0aW9uIHJlcXVpcmVt
ZW50IHRoYXQgY291bGQgYmUNCj4gdXNlZnVsIGluIGl0cyBvd24gZnVuY3Rpb24gYXMgd2VsbCAo
Y29udmVydGluZyBhbnkgcmFuZG9tIHZhbHVlIHRvIGl0cw0KPiByZWxhdGVkIGxheWVyIG9yIG1h
c2spLg0KPiANCj4gPiA+IFRoaXMgbGF5ZXIgaW5mb3JtYXRpb24gY291bGQgYmUgZGVmaW5lZCBh
cyBhbiBlbnVtLCBpLmUuOg0KPiA+ID4NCj4gPiA+ICBlbnVtIHJ0ZV9wdHlwZV9pbmZvIHsNCj4g
PiA+ICAgICAgUlRFX1BUWVBFX1VOS05PV04sDQo+ID4gPiAgICAgIFJURV9QVFlQRV9MMiwNCj4g
PiA+ICAgICAgUlRFX1BUWVBFX0wzLA0KPiA+ID4gICAgIC4uLg0KPiA+ID4gIH07DQo+ID4gPg0K
PiA+ID4gT3IgZXZlbiBhbiBpbnQgdmFsdWUgKDIgc3RhbmRpbmcgZm9yIGZvciAibGF5ZXIgMiIg
ZXRjLiBUdW5uZWwgZW5jYXBzdWxhdGlvbg0KPiA+ID4gd291bGRuJ3QgYmUgZGVzY3JpYmVkIGVh
c2lseSB0aGF0IHdheSB0aG91Z2gpLiBJdCdzIGp1c3QgYW4gaWRlYS4NCj4gPiA+DQo+ID4gPiA+
ID4gSWYgd2UgYWJzb2x1dGVseSB3YW50IGEgbWVhbiB0byBmaWx0ZXIgcmV0dXJuZWQgdmFsdWVz
LCBJIHN1Z2dlc3Qgd2UgdXNlDQo+ID4gPiA+ID4gdGhpcyBlbnVtIGluc3RlYWQgb2YgdGhlIG1h
c2sgYXJndW1lbnQuDQo+ID4gPiA+ID4gU2luY2UgaXQgd29uJ3QgYmUgYSBtYXNrLCBpdCB3b24n
dA0KPiA+ID4gPiA+IGhhdmUgdG8gYmUgdXBkYXRlZCBldmVyeSB0aW1lIGEgbmV3IHByb3RvY29s
IHJlcXVpcmVzIGV4dGVuZGluZyBvbmUuDQo+ID4gPiA+DQo+ID4gPiA+IE51bWJlciBvZiBiaXRz
IFBUWVBFX0wyL0wzL0w0LC4uLiBsYXllcnMgYXJlIGFscmVhZHkgZGVmaW5lZC4NCj4gPiA+ID4g
U28gbGV0IHNheSBSVEVfUFRZUEVfTDJfTUFTSyBzaG91bGRuJ3QgY2hhbmdlIGlmIHlvdSdsbCBh
ZGQgbmV3IEwyIHB0eXBlIC0NCj4gPiA+ID4gdGhlcmUgYXJlIGZldyByZXNlcnZlZCB2YWx1ZXMg
cmlnaHQgbm93Lg0KPiA+ID4gPiBpZiBvbmUgZGF5IHdlJ2xsIHJ1biBvdXQgYml0cyBpbiBsZXQg
c2F5IFJURV9QVFlQRV9MMl9NQVNLICBhbmQgd2lsbCBoYXZlIHRvIGluY3JlYXNlIGl0cyBzaXpl
IC0NCj4gPiA+ID4gaXQgd291bGQgbWVhbiBjaGFuZ2Ugb2YgdGhlIHBhY2tldF90eXBlIGxheW91
dCBhbmQgcG9zc2libGUgQUJJIGJyZWFrYWdlIGFueXdheS4NCj4gPiA+DQo+ID4gPiBJJ20gYXdh
cmUgb2YgdGhpcywgb25seSBwb2ludGluZyBvdXQgd2UgdGVuZCB0byByZWx5IG9uIG1hc2tzIGFu
ZCB0eXBlDQo+ID4gPiBib3VuZGFyaWVzIGEgYml0IHRvbyBtdWNoIHdoZW4gdGhlcmUgYXJlIG90
aGVyIG1ldGhvZHMgdGhhdCBhcmUgYXMgKGlmIG5vdA0KPiA+ID4gbW9yZSkgY29udmVuaWVudC4N
Cj4gPg0KPiA+IFllcywgd2UgZG8gcmVseSBvbiBtYXNrcyBpbiBwdHlwZS4NCj4gPiBUaGF0J3Mg
aG93IHB0eXBlIHdhcyBkZWZpbmVkLg0KPiA+IExldCBzYXkgdG8gY2hlY2sgdGhhdCBpbmNvbWlu
ZyBwYWNrZXQgaXMgRXRoZXIvSVB2NChubyBleHRlbnRpb25zKS9VRFAsDQo+ID4geW91IHByb2Jh
Ymx5IHdvdWxkIGRvOg0KPiA+DQo+ID4gaWYgKG1idWYtPnBhY2tldF90eXBlICYgKFJURV9QVFlQ
RV9MMl9NQVNLIHwgUlRFX1BUWVBFX0wzX01BU0sgfCBSVEVfUFRZUEVfTDRfTUFTSykgPT0NCj4g
PiAoUlRFX1BUWVBFX0wyX0VUSEVSICB8IFJURV9QVFlQRV9MM19JUFY0IHwgIFJURV9QVFlQRV9M
NF9VRFApKSB7Li4ufQ0KPiANCj4gQWxsIHJpZ2h0LCBsZXQncyBub3QgdXNlIGEgZGlmZmVyZW50
IG1ldGhvZCB0byBmaWx0ZXIgcGFja2V0IHR5cGVzLg0KPiANCj4gPiA+IFBlcmhhcHMgc29tZSBz
b3J0IG9mIHR1bm5lbGVkIHBhY2tldCB0eXBlcyBiZXlvbmQgaW5uZXIgTDQgY29uc3VtaW5nIHRo
ZQ0KPiA+ID4gZm91ciByZW1haW5pbmcgYml0cyB3aWxsIGJlIGFkZGVkPyBUaGF0IGNvdWxkIGhh
cHBlbiBzb29uLg0KPiA+DQo+ID4gQXMgSSBzYWlkIGFib3ZlOiBkbyB5b3UgaGF2ZSBwYXJ0aWN1
bGFyIHNjZW5hcmlvIGluIG1pbmQgd2hlbiAzMmJpdHMgZm9yIHBhY2tldF90eXBlDQo+ID4gbWln
aHQgYmUgbm90IGVub3VnaD8NCj4gPiBJZiB5ZXMsIHRoZW4gaXQgaXMgcHJvYmFibHkgYSBnb29k
IGlkZWEgdG8gc3VibWl0IGFuIFJGQyBmb3IgZXh0ZW5kaW5nIGl0IHRvIDY0IGJpdCwNCj4gPiBv
ciBpbnRyb2R1Y2UgcGFja2V0X3R5cGUyLCBvciB3aGF0ZXZlciB3b3VsZCBiZSB5b3VyIHByZWZl
cnJlZCB3YXkgdG8gZGVhbCB3aXRoIGl0Lg0KPiANCj4gTm8sIHJlYWxseSwgSSBndWVzcyB3ZSds
bCBleHRlbmQgcHR5cGUgdG8gNjQgYml0IHdoZW4gbmVjZXNzYXJ5LiBNeSBwb2ludCBvbg0KPiBm
aWx0ZXJpbmcgc2VwYXJhdGVseSBzdGlsbCBzdGFuZHMuDQo+IA0KPiA+IEtvbnN0YW50aW4NCj4g
Pg0KPiANCj4gLS0NCj4gQWRyaWVuIE1hemFyZ3VpbA0KPiA2V0lORA0K