From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 23CC542FB8; Wed, 2 Aug 2023 19:56:08 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A267F40DDB; Wed, 2 Aug 2023 19:56:07 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id DDB284021D; Wed, 2 Aug 2023 19:56:05 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id B431020634; Wed, 2 Aug 2023 19:56:05 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH] ethdev: introduce generic flow item and action Date: Wed, 2 Aug 2023 19:56:03 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87AC2@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] ethdev: introduce generic flow item and action Thread-Index: AQHZxSHaq6JEAAy13km0+kJQgl6M8q/WzPOAgAAKDYCAAAW8gIAAKMlQgAASn4CAAA7fAIAABToAgAAOQRCAAAtjUA== References: <20230802173451.3151646-1-qi.z.zhang@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D87AB8@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87AB9@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87ABF@smartserver.smartshare.dk> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Dumitrescu, Cristian" , "Ori Kam" , "Jerin Jacob" Cc: "Zhang, Qi Z" , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , , "Richardson, Bruce" , , , , "Mcnamara, John" , "Zhang, Helin" , X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBGcm9tOiBEdW1pdHJlc2N1LCBDcmlzdGlhbiBbbWFpbHRvOmNyaXN0aWFuLmR1bWl0cmVzY3VA aW50ZWwuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIDIgQXVndXN0IDIwMjMgMTkuMjMNCj4gDQo+ ID4gRnJvbTogT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT4NCj4gPiBTZW50OiBXZWRuZXNkYXks IEF1Z3VzdCAyLCAyMDIzIDU6MDYgUE0NCj4gPg0KPiA+IEhpIFFpLA0KPiA+DQo+ID4gSW4gYWRk aXRpb24gdG8gbXkgcHJldmlvdXMgZW1haWwsDQo+ID4gSSBmdWxseSBzdXBwb3J0IHlvdeKAmXJl IHlvdXIgaWRlYSB0byB1cGRhdGUgdGhlIHJ0ZV9mbG93IEFQSQ0KPiA+IHNvIGl0IHdpbGwgYmUg ZWFzaWVyIGZvciBQNCBpbnRlZ3JhdGlvbiwgSSBqdXN0IHRoaW5rIHRoZSBzdWdnZXN0ZWQNCj4g YXBwcm9hY2ggaXMgbm90DQo+ID4gdGhlIGNvcnJlY3Qgb25lIGF0IGxlYXN0IG5vdCBhcyBhcHBl YXJzIGluIHRoZSBSRkMuDQo+ID4NCj4gPiBJIHRoaW5rIGl0IHdpbGwgYmUgZ29vZCBpZiB3ZSBj YW4gZGlzY3VzcyBzb21lIHVzZXMgY2FzZXMgeW91IGFyZQ0KPiBoYXZpbmcNCj4gPiB3aXRoIHRo ZSBBUEkvaW1wbGVtZW50YXRpb24gYW5kIHNlZSB3aGF0IGlzIHRoZSBiZXN0IHdheSB0byBzb2x2 ZQ0KPiB0aGVtLg0KPiA+IFRoZSBtYWluIGlkZWEgaXMgbm90IHRvIHJlLWludmVudCB0aGUgd2hl ZWwsIGJ1dCB0byBzb2x2ZSBpc3N1ZXMuDQo+IA0KPiBZZXMsIGZ1bGx5IGFncmVlLCBpdCB3b3Vs ZCBiZSBncmVhdCBtZWV0IGFuZCB0YWxrIHRocm91Z2ggdGhpcywgYXMgd2UNCj4gZGlkIGl0IGlu IHRoZQ0KPiBwYXN0IGZvciBvdGhlciBpc3N1ZXMuIFdoYXQgZGF5cyAmIHRpbWUgbmV4dCB3ZWVr IHdvdWxkIGJlIGdvb2QgZm9yDQo+IHBlb3BsZT8NCg0KTXkgY2FsZW5kYXIgaXMgcHJldHR5IG11 Y2ggYWxsIG9wZW4gdGhlc2UgZGF5cywgc28gYW55dGltZSB3b3JrIGhvdXJzIGluIHRoZSBDZW50 cmFsIEV1cm9wZWFuIHRpbWUgem9uZSB3b3JrcyBmb3IgbWUuDQoNCj4gDQo+IE1lYW53aGlsZSwg c29tZSBhbnN3ZXJzIGJlbG93Lg0KPiANCj4gPg0KPiA+IFRvIHN1bW1hcml6ZSwgYXMgSSBzZWUg aXQgdGhlcmUgYXJlIHNldmVyYWwgaXNzdWVzOg0KPiA+IDEuIG5vIHByb3RvY29sIGlzIGRlZmlu ZWQgc28gZGlmZmVyZW50IFBNRCBjYW4ndCB0cmFuc2xhdGUgaXQuDQo+IA0KPiBUaGUgZm9ybWF0 IG9mIHRoZSBmbG93IGl0ZW1zIGlzIGRlZmluZWQgYnkgdGhlIFA0IHByb2dyYW0sIHNvIGFsbCB0 aGUgSFcNCj4gZGV2aWNlcw0KPiAoZnJvbSB0aGUgc2FtZSBvciBmcm9tIGRpZmZlcmVudCB2ZW5k b3JzKSB0aGF0IGFyZSBhYmxlIHRvIHN1Y2Nlc3NmdWxseQ0KPiBsb2FkIHRoZQ0KPiBnaXZlbiBQ NCBwcm9ncmFtIHdpbGwgaGF2ZSB0aGUgc2FtZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmbG93IGl0 ZW1zLg0KDQpJZiB0aGUgUDQgZmxvdyBpdGVtcy9hY3Rpb25zIGFyZSBzdGFuZGFyZGl6ZWQgYnkg c29tZSBQNCBvcmdhbml6YXRpb24gb3Igc2ltaWxhciwgdGhleSBjYW4gYmUgZW51bWVyYXRlZCBh bmQgZGVmaW5lZCBhcyBEUERLIGZsb3cgaXRlbXMvYWN0aW9ucy4gQXQgbGVhc3QgdGhlIG9uZXMg dGhhdCBhcmUgc3RhbmRhcmRpemVkLg0KDQpBbmQgaWYgeW91IChmb3IgZmxleGliaWxpdHkgb3Ig b3RoZXIgcmVhc29ucykgbmVlZCB0byBieXBhc3MgdGhlIFJURV9GTE9XIHN0YW5kYXJkaXphdGlv biBwcm9jZXNzIChnZXR0aW5nIEFDS3MgZXRjLiBvbiB0aGUgRFBESyBtYWlsaW5nIGxpc3QpIGZv ciBmYXN0ZXIgaW50ZWdyYXRpb24gb2YgbmV3IERQREsgZmxvdyBpdGVtcy9hY3Rpb25zLCBpdCBk b2VzIG1ha2Ugc2Vuc2UgdG8gZGVmaW5lIGEgZ2VuZXJpYyBmbG93IGl0ZW0gKGFuZCBhY3Rpb24p IGZvciB0aGlzIHB1cnBvc2UgKGFuZCBub3QganVzdCBmb3IgUDQpLg0KDQpJbiBvcmRlciB0byBh dm9pZCBjb25mbGljdHMgYmV0d2VlbiBQNCBhbmQgbm9uLVA0IGdlbmVyaWMgZmxvdyBpdGVtcy9h Y3Rpb25zLCB0aGUgZ2VuZXJpYyB0eXBlIHNob3VsZCBpbmNsdWRlIGluZm9ybWF0aW9uIGFib3V0 IGhvdyB0byBpbnRlcnByZXQgdGhlIGluZm9ybWF0aW9uLCB3aGljaCBpcyB3aHkgSSBzdWdnZXN0 IG1ha2luZyBpdCBhIFZlbmRvci1TcGVjaWZpYyB0eXBlLCB3aXRoIHZlbmRvci1zcGVjaWZpYyBU TFYncyAobWFuYWdlZCBieSB0aGUgdmVuZG9yKSwgbGlrZSB0aGUgUkFESVVTIFZlbmRvci1TcGVj aWZpYyBhdHRyaWJ1dGVzIEkgY29tcGFyZWQgdG8sIGluc3RlYWQgb2YganVzdCBhbiBvcGFxdWUg YmxvYi4NCg0KVGhlIFA0IHN0YW5kYXJkaXplZCBpdGVtcy9hY3Rpb25zIGNhbiB1c2UgdGhlIFZl bmRvciBJRCBvZiB0aGUgUDQgc3RhbmRhcmRzIG9yZ2FuaXphdGlvbi4NCg0KVGhlIG5vbi1zdGFu ZGFyZGl6ZWQgaXRlbXMvYWN0aW9ucyBjYW4gdXNlIHRoZSBWZW5kb3IgSUQgb2YgdGhlIGhhcmR3 YXJlIHZlbmRvciBvciB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyLg0KDQo+IA0KPiA+IDIuIGV2 ZW4gdGhlIHNhbWUgUE1EIGRvZXNuJ3Qga25vdyB3aGF0IGlzIHRoZSBhY3Rpb24sIHVubGVzcyB5 b3UgcGxhbg0KPiB0aGF0DQo+ID4gdGhpcyB3aWxsIG1vdmUNCj4gPiBkaXJlY3RseSB0byB0aGUg SFcsIGluIHRoaXMgY2FzZSwgdGhlIGFjdGlvbiB3aWxsIGJlIEhXIGRlcGVuZGVudC4NCj4gDQo+ IFRoZSBwcm9jZXNzaW5nIG9mIGVhY2ggZmxvdyBhY3Rpb24sIGFzIHdlbGwgYXMgdGhlIG51bWJl ciBvZiBhcmd1bWVudHMNCj4gYW5kIHRoZQ0KPiBmb3JtYXQgb2YgZWFjaCBhY3Rpb24gYXJndW1l bnQsIGlzIGRlZmluZWQgYnkgdGhlIFA0IHByb2dyYW0sIHNvIGFsbCB0aGUNCj4gSFcNCj4gZGV2 aWNlcyAoZnJvbSB0aGUgc2FtZSBvciBmcm9tIGRpZmZlcmVudCB2ZW5kb3JzKSB0aGF0IGFyZSBh YmxlIHRvDQo+IHN1Y2Nlc3NmdWxseQ0KPiBsb2FkIHRoZSBnaXZlbiBQNCBwcm9ncmFtIHdpbGwg aGF2ZSB0aGUgc2FtZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmbG93DQo+IGFjdGlvbnMuDQo+IA0K PiA+IDMuIHdoZW4gYXBwbGljYXRpb24gc2hvdWxkIHVzZSB0aGlzIG5ldyBhY3Rpb24gb3IgdGhl IG9sZCBvbmVzLg0KPiANCj4gSSBndWVzcyBpdCBpcyBnb29kIHRvIGNsYXJpZnkgdGhhdCB0aGVy ZSBhcmUgdHdvIGFwcGxpY2F0aW9uOiBhIGRhdGENCj4gcGF0aCBhcHBsaWNhdGlvbg0KPiAodGhl IFA0IHByb2dyYW0pIHRoYXQgZGVmaW5lcyB0aGUgcGFja2V0IHByb2Nlc3NpbmcgcGlwZWxpbmUs IGFuZCBhDQo+IGNvbnRyb2wgcGF0aA0KPiBhcHBsaWNhdGlvbiB0aGF0IGludm9rZXMgUlRFX0ZM T1cgdG8gYWRkL2RlbGV0ZSB0aGUgZmxvd3Mgb24gdGhlIGRldmljZS4NCj4gSSBndWVzcw0KPiB3 ZSBhcmUgbm93IHJlZmVycmluZyB0byB0aGUgY29udHJvbCBwYXRoIGFwcC4NCj4gDQo+IFdoZW5l dmVyIHRoZSBQNCBwcm9ncmFtICh0aGUgZGF0YSBwYXRoIGFwcCkgdGhhdCBpcyBjdXJyZW50bHkg bG9hZGVkIG9uDQo+IHRoZQ0KPiBkZXZpY2UgaXMgZGVmaW5pbmcgYW5kIHVzaW5nIGZsb3cgYWN0 aW9ucyB0aGF0IHBlcmZvcm0gaWRlbnRpY2FsDQo+IHByb2Nlc3NpbmcgdG8gb25lDQo+IG9mIHRo ZSBleGlzdGluZyBwcmUtZGVmaW5lZCBSVEVfRkxPVyBhY3Rpb25zIChzdWNoIGFzIHBhY2tldCBk cm9wLA0KPiBwYWNrZXQNCj4gcmVkaXJlY3Rpb24gdG8gYSBnaXZlbiBvdXRwdXQgcXVldWUsIHBh Y2tldCBtb2RpZmljYXRpb25zLCBldGMpLCB0aGVuDQo+IHRoZSBhcHANCj4gKHRoZSBjb250cm9s IHBhdGggYXBwKSBjYW4gYWNjZXB0IHRoZXNlIGFjdGlvbnMgYXMgd2VsbC4NCj4gDQo+IEJ1dCBp biB0aGUgKGZyZXF1ZW50KSBjYXNlIHRoYXQgdGhlIHVzZXIncyBQNCBwcm9ncmFtIGRlZmluZXMg YWN0aW9ucw0KPiB0aGF0IGRvIG5vdA0KPiBtYXAgdG8gYW4gUlRFX0ZMT1cgYWN0aW9uIGZyb20g dGhlIHByZS1kZWZpbmVkIGxpc3QsIHRoZW4gdGhlIGFwcCBoYXMgbm8NCj4gb3RoZXINCj4gb3B0 aW9uIGJ1dCB0byB1c2UgdGhlIG5ld2x5IHByb3Bvc2VkIGdlbmVyaWMgZmxvdyBhY3Rpb24gaW4g b3JkZXIgdG8NCj4gc3BlY2lmeQ0KPiAodGhyb3VnaCB0aGUgYWN0aW9uX2lkIGZpZWxkKSB0aGUg ZXhhY3QgZmxvdyBhY3Rpb24gZnJvbSB0aGUgUDQgcHJvZ3JhbS4NCj4gDQo+IE1ha2VzIHNlbnNl Pw0KPiANCj4gPg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IE9yaQ0KPiA+DQo+IA0KPiBSZWdhcmRz LA0KPiBDcmlzdGlhbg0KPiANCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PiBGcm9tOiBPcmkgS2FtIDxvcmlrYUBudmlkaWEuY29tPg0KPiA+ID4gU2VudDogV2VkbmVzZGF5 LCBBdWd1c3QgMiwgMjAyMyA2OjQ3IFBNDQo+ID4gPg0KPiA+ID4gSGkgUWkNCj4gPiA+DQo+ID4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IE1vcnRlbiBCcsO4 cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+DQo+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwg QXVndXN0IDIsIDIwMjMgNjoyNSBQTQ0KPiA+ID4gPg0KPiA+ID4gPiA+IEZyb206IER1bWl0cmVz Y3UsIENyaXN0aWFuDQo+IFttYWlsdG86Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb21dDQo+ ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCAyIEF1Z3VzdCAyMDIzIDE2LjA2DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFpbC5jb20+DQo+ ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyLCAyMDIzIDEyOjIyIFBNDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gT24gV2VkLCBBdWcgMiwgMjAyMyBhdCA0OjMx4oCvUE0gTW9y dGVuIEJyw7hydXANCj4gPiA+ID4gPiA+IDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+IHdyb3Rl Og0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEZyb206IE1vcnRlbiBCcsO4cnVwIFtt YWlsdG86bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tXQ0KPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IFdl ZG5lc2RheSwgMiBBdWd1c3QgMjAyMyAxMi4yNQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gPiBGcm9tOiBRaSBaaGFuZyBbbWFpbHRvOnFpLnouemhhbmdAaW50ZWwuY29tXQ0KPiA+ ID4gPiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCAyIEF1Z3VzdCAyMDIzIDE5LjM1DQo+ID4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gRnJvbTogQ3Jpc3RpYW4gRHVtaXRyZXNj dQ0KPiA8Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gRm9yIG5ldHdvcmsgZGV2aWNlcyB0aGF0IGFyZSBwcm9ncmFtbWFi bGUgdGhyb3VnaA0KPiBsYW5ndWFnZXMNCj4gPiBzdWNoDQo+ID4gPiBhcw0KPiA+ID4gPiA+ID4g PiA+ID4gdGhlIFA0IGxhbmd1YWdlLCB0aGVyZSBhcmUgbm8gcHJlLWRlZmluZWQgZmxvdyBpdGVt cyBhbmQNCj4gYWN0aW9ucy4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBU aGUgZm9ybWF0IG9mIHRoZSBwcm90b2NvbCBoZWFkZXIgYW5kIG1ldGFkYXRhIGZpZWxkcw0KPiB0 aGF0IGFyZQ0KPiA+IHVzZWQNCj4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+ID4gPiBzcGVjaWZ5IHRo ZSBmbG93IGl0ZW1zIHRoYXQgbWFrZSB1cCB0aGUgZmxvdyBwYXR0ZXJuLCBhcw0KPiB3ZWxsIGFz DQo+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBmbG93IGFjdGlvbnMsIGFyZSBhbGwgZGVmaW5l ZCBieSB0aGUgcHJvZ3JhbSwgd2l0aCBhbg0KPiBpbmZpbml0eSBvZg0KPiA+ID4gPiA+ID4gPiA+ ID4gcG9zc2libGUgY29tYmluYXRpb25zLCBhcyBvcHBvc2VkIHRvIGJlaW5nIHNlbGVjdGVkIGZy b20NCj4gYQ0KPiA+IGZpbml0ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gcHJlLWRlZmluZWQgbGlzdC4N Cj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJdCBpcyB2aXJ0dWFsbHkgaW1w b3NzaWJsZSB0byBwcmUtZGVmaW5lIGFsbCB0aGUgZmxvdw0KPiBpdGVtcyBhbmQgdGhlDQo+ID4g PiA+ID4gPiA+ID4gPiBmbG93IGFjdGlvbnMgdGhhdCBwcm9ncmFtcyBtaWdodCBldmVyIHVzZSwg YXMgdGhlc2UgYXJlDQo+IG9ubHkNCj4gPiBsaW1pdGVkDQo+ID4gPiA+ID4gPiA+ID4gPiBieSB0 aGUgc2V0IG9mIEhXIHJlc291cmNlcyBhbmQgdGhlIHByb2dyYW0gZGV2ZWxvcGVyJ3MNCj4gPiA+ IGltYWdpbmF0aW9uLg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFRvIHN1 cHBvcnQgdGhlIHByb2dyYW1tYWJsZSBuZXR3b3JrIGRldmljZXMsIHdlIGFyZQ0KPiA+IGludHJv ZHVjaW5nOg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICogQSBnZW5lcmlj IGZsb3cgaXRlbTogVGhlIGZsb3cgaXRlbSBpcyBleHByZXNzZWQgYXMgYW4NCj4gYXJyYXkgb2YN Cj4gPiBieXRlcw0KPiA+ID4gPiA+ID4gPiA+ID4gb2YgYSBnaXZlbiBsZW5ndGgsIHdob3NlIG1l YW5pbmcgaXMgZGVmaW5lZCBieSB0aGUNCj4gcHJvZ3JhbQ0KPiA+IGxvYWRlZA0KPiA+ID4gYnkN Cj4gPiA+ID4gPiA+ID4gPiA+IHRoZSBuZXR3b3JrIGRldmljZS4NCj4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+IFRoZSBmbG93IGl0ZW0gaXMgbm90ICJnZW5lcmljIiwgaXQgaXMgIm9w YXF1ZSI6IE9ubHkgdGhlDQo+IGFwcGxpY2F0aW9uDQo+ID4gPiA+ID4ga25vd3MNCj4gPiA+ID4g PiA+ID4gPiB3aGF0IHRoaXMgZmxvdyBpdGVtIGRvZXMuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiBJIGhhdGUgdGhlIGNvbmNlcHQgZm9yIHR3byByZWFzb25zOg0KPiA+ID4gPiA+ ID4gPiA+IDEuIFRoZSBpbmFiaWxpdHkgZm9yIGFwcGxpY2F0aW9ucyB0byBkZXRlY3Qgd2hpY2gg Zmxvdw0KPiBpdGVtcyB0aGUNCj4gPiA+ID4gPiB1bmRlcmx5aW5nDQo+ID4gPiA+ID4gPiA+ID4g aGFyZHdhcmUgc3VwcG9ydHMuDQo+ID4gPiA+ID4gPiA+ID4gMi4gVGhlIHJpc2sgdGhhdCB2ZW5k b3JzIHdpbGwgdXNlIHRoaXMgaW5zdGVhZCBvZg0KPiBpbnRyb2R1Y2luZyBuZXcNCj4gPiBmbG93 DQo+ID4gPiA+ID4gaXRlbQ0KPiA+ID4gPiA+ID4gPiA+IHR5cGVzLCBhdmFpbGFibGUgZm9yIGFu eW9uZSB0byBpbXBsZW1lbnQuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEFmdGVyIGZ1 cnRoZXIgY29uc2lkZXJhdGlvbiwgdGhlcmUgbWlnaHQgYmUgYSBtaWRkbGUgZ3JvdW5kLg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBDb25zaWRlciBWZW5kb3ItU3BlY2lmaWMgYXR0cmli dXRlcyBmb3IgREhDUCBhbmQgUkFESVVTLCBvcg0KPiBTTk1QDQo+ID4gPiA+IE1JQnMuLi4NCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQW55IHZlbmRvciBpcyBmcmVlIHRvIGFkZCBoaXMg b3duLCBwcm9wcmlldGFyeSBzcGVjaWFsLQ0KPiBwdXJwb3NlDQo+ID4gPiBhdHRyaWJ1dGVzLA0K PiA+ID4gPiA+ID4gd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoZSBzdGFuZGFyZGl6YXRpb24gcHJv Y2Vzcy4gKFRoaXMgaXMNCj4gdGhlIGtleQ0KPiA+ID4gPiA+IGNoYWxsZW5nZQ0KPiA+ID4gPiA+ ID4gdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBhaW1pbmcgYXQuKQ0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiBUaGUgdmVuZG9yIG1pZ2h0IHB1Ymxpc2ggdGhlc2UgYXR0cmlidXRlcywgYW5k IG90aGVyIHZlbmRvcnMNCj4gbWF5DQo+ID4gPiA+ID4gPiBpbXBsZW1lbnQgdGhlbSB0b28uDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEFuZCBpbiBvcmRlciB0byBwcmV2ZW50IGNvbGxp c2lvbnMsIHRoZSBWZW5kb3ItU3BlY2lmaWMNCj4gYXR0cmlidXRlcw0KPiA+IGNvbnRhaW4NCj4g PiA+ID4gPiBhDQo+ID4gPiA+ID4gPiBnbG9iYWxseSB1bmlxdWUgdmVuZG9yIElELCBzdWNoIGFz IHRoZSBQcml2YXRlIEVudGVycHJpc2UNCj4gTnVtYmVyIFsxXQ0KPiA+ID4gPiA+ID4gbWFuYWdl ZCBieSBJQU5BLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJZiBzaW1pbGFyIHByaW5j aXBsZXMgY2FuIGJlIHdvcmtlZCBpbnRvIHRoZSBwYXRjaCwgSSBjYW4NCj4gc3VwcG9ydCBpdC4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArMQ0KPiA+ID4gPiA+ID4NCj4gPiA+ICsxIEkgdW5k ZXJzdGFuZCB0aGF0IHRoaXMgaXMgc3VwcG9zZWQgdG8gYmUgZ2VuZXJpYywgYnV0IGhvdyBjYW4g aXQ/DQo+ID4gPiBob3cgZG8geW91IGtub3cgaWYgUE1EIHN1cHBvcnRzIHRoaXM/DQo+ID4gPiB3 aGF0IGlmIGVhY2ggUE1EIG5lZWRzIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucz8NCj4gPiA+DQo+ ID4gPiBJbiBhZGRpdGlvbiBob3cgY2FuIHlvdSBoYW5kbGUgbnVtYmVyIG9mIHRob3NlIGFjdGlv biBhbmQgaXRlbXM/DQo+ID4gPiBGb3IgZXhhbXBsZSBpZiBJIGhhdmUgbWF0Y2ggb24gcHJvdG9j b2wgWCBhbmQgWSBhbmQgZG8gYWN0aW9ucyBaIGFuZA0KPiBXDQo+ID4gPiBlYWNoIG9uZSBvZiB0 aG9zZSBjYW4gYmUgZ2VuZXJpYyBpdGVtLg0KPiA+ID4gaWYgeW91IGhhdmUgYSB3YXkgdG8gZGVm aW5lIGEgc3RhbmRhcmQgd2h5IHRvIHJlYWQgc3VjaCBhY3Rpb25zIHRoZW4NCj4gd2UNCj4gPiBo YXZlDQo+ID4gPiBzb21ldGhpbmcgdG8gdGFsayBhYm91dC4NCj4gPiA+DQo+ID4gPg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gTW9ydGVuLCBKZXJpbiwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgdGhp bmsgdGhlcmUgaXMgYSBmdW5kYW1lbnRhbCBtaXN1bmRlcnN0YW5kaW5nIGhlcmU6IHdlIGFyZSBu b3QNCj4gdHJ5aW5nDQo+ID4gdG8NCj4gPiA+ID4gPiBwcm92aWRlIHN1cHBvcnQgZm9yIHNvbWUg bm9uLXN0YW5kYXJkIHZlbmRvci1zcGVjaWZpYyBmZWF0dXJlcw0KPiBoZXJlLg0KPiA+IFdoYXQN Cj4gPiA+ID4gPiB3ZSBhcmUgdHJ5aW5nIHRvIGRvIGlzIGFkZCBnZW5lcmljIG11bHRpLXZlbmRv ciBzdXBwb3J0IGluDQo+IFJURV9GTE9XDQo+ID4gZm9yDQo+ID4gPiA+ID4gUDQgcHJvZ3JhbW1h YmxlIG5ldHdvcmsgZGV2aWNlcywgd2hpY2ggcmVxdWlyZXMgc3VwcG9ydGluZyBmbG93DQo+ID4g aXRlbXMNCj4gPiA+ID4gPiBhbmQgYWN0aW9ucyB0aGF0IGFyZSBkZWZpbmVkIGRpcmVjdGx5IGJ5 IHRoZSB1c2VyIHRocm91Z2ggdGhlaXINCj4gUDQNCj4gPiBwcm9ncmFtcw0KPiA+ID4gPiA+IGFz IG9wcG9zZWQgdG8gYmVpbmcgc2VsZWN0ZWQgZnJvbSBhIHByZS1kZWZpbmVkIGxpc3QuDQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBUaGVyZSBhcmUgYW4gaW5maW5pdHkgb2YgZmxvdyBpdGVtcyBhbmQg YWN0aW9ucyB0aGF0IHRoZSB1c2Vycw0KPiBjYW4gZGVmaW5lDQo+ID4gPiA+ID4gdGhyb3VnaA0K PiA+ID4gPiA+IHRoZWlyIFA0IHByb2dyYW1zLCBhbmQgdGhleSBjYW5ub3QgYmUgc3VwcG9ydGVk IHdpdGggYSBmaW5pdGUNCj4gbGlzdCBvZg0KPiA+ID4gPiBSVEVfRkxPVw0KPiA+ID4gPiA+IGl0 ZW1zIGFuZCBhY3Rpb25zOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMS8gU29tZSBmbG93IGl0ZW1z IG1hcCBkaXJlY3RseSB0byB0aGUgSUVURiBkZWZpbmVkIHByb3RvY29scywNCj4gd2hpbGUNCj4g PiBzb21lDQo+ID4gPiA+ID4gb3RoZXJzIGRvIG5vdCwgYW5kIG9ubHkgdGhlIHVzZXIgd3JpdGlu ZyB0aGUgcHJvZ3JhbSBrbm93cyB0aGUNCj4gZXhhY3QNCj4gPiA+IGFuc3dlcjsNCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IDIvIFNvbWUgZmxvdyBpdGVtcyBhcmUgc2ltcGx5IGFwcGxpY2F0aW9uLXNw ZWNpZmljIChub3QgdmVuZG9yDQo+IHNwZWNpZmljKQ0KPiA+ID4gPiA+IG1ldGEtZGF0YSB0aGF0 IChJIGhvcGUgd2UgYWxsIGFjY2VwdCkgaXMgb3V0c2lkZSBvZiB0aGUNCj4gc3RhbmRhcmRpemF0 aW9uDQo+ID4gPiA+ID4gcHJvY2Vzcy4NCj4gPiA+ID4NCj4gPiA+ID4gU3VjaCBpdGVtcyBjYW4g dXNlIGEgc3BlY2lhbCAicmVzZXJ2ZWQiIHZlbmRvci1pZC4NCj4gPiA+ID4NCj4gPiA+DQo+ID4g PiBDYW4geW91IHNob3cgbWUgd2hhdCBpdGVtcy9hY3Rpb25zIGFyZSBtaXNzaW5nIGluIHJ0ZV9m bG93Pw0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IDMvIFNvbWUgZmxvdyBhY3Rpb25zIG1h cCBkaXJlY3RseSB0byB0aGUgZXhpc3RpbmcgUlRFX0ZMT1cNCj4gYWN0aW9ucw0KPiA+ID4gPiAo ZXNwZWNpYWxseQ0KPiA+ID4gPiA+IHRoZSBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCBhY3Rpb25zIHN1 Y2ggYXM6IHBhY2tldCBkcm9wLCBwYWNrZXQNCj4gcmVkaXJlY3Rpb24NCj4gPiB0bw0KPiA+ID4g PiA+IGFuDQo+ID4gPiA+ID4gb3V0cHV0IHF1ZXVlLCBzb21lIHNwZWNpZmljIHBhY2tldCBtb2Rp ZmljYXRpb25zLCBldGMpLCB3aGlsZQ0KPiB0aGUgdmFzdA0KPiA+ID4gPiA+IG1ham9yaXR5DQo+ ID4gPiA+ID4gb2YgcG9zc2libGUgYWN0aW9ucyBkbyBub3QuDQo+ID4gPiA+ID4NCj4gPiA+ID4g PiBBcmUgeW91IHNheWluZyB0aGF0IHRoZSBQNCBwcm9ncmFtbWFibGUgbmV0d29yayBkZXZpY2Vz IHNob3VsZA0KPiBOT1QNCj4gPiBiZQ0KPiA+ID4gPiA+IHN1cHBvcnRlZCBieSBEUERLIGFuZCBS VEVfRkxPVz8NCj4gPiA+ID4NCj4gPiA+ID4gTm8sIEkgZ2V0IHRoZSBuZWVkIGZvciB0aGlzLiBB bmQgSSB1bmRlcnN0YW5kIHRoYXQgc2luY2UgUDQgaXMNCj4gY29tcGlsZWQgdG8NCj4gPiA+ID4g aGFyZHdhcmUtc3BlY2lmaWMgYmluYXJ5IGJsb2JzLCB0aGVyZSBpcyBhIG5lZWQgdG8gcHV0IHN1 Y2ggYmxvYnMNCj4gaW50bw0KPiA+IERQREsgYXMNCj4gPiA+ID4gZmxvdyBpdGVtcyBhbmQgYWN0 aW9ucywgaW5zdGVhZCBvZiB0aGUgInVuY29tcGlsZWQiIFA0IHByb2dyYW0uDQo+ID4gPiA+DQo+ ID4gPiA+IEkgYW0gc3VnZ2VzdGluZyB0aGF0IGluc3RlYWQgb2YgYWRkaW5nIGEgY29tcGxldGVs eSBvcGFxdWUgZGF0YQ0KPiB0eXBlOg0KPiA+ID4gPg0KPiA+ID4gPiBTdHJ1Y3QgaXRlbSB7DQo+ ID4gPiA+IEludCBsZW47ICAgICAgLy8gTGVuZ3RoIG9mIHZhbHVlIGluIGJ5dGVzLg0KPiA+ID4g PiBDaGFyIHZhbHVlW107IC8vIEFwcGxpY2F0aW9uIHNwZWNpZmljIG1lYW5pbmcuDQo+ID4gPiA+ IH07DQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4gQnV0IHNpbmNlIHlvdSBkaWRuJ3QgZGVmaW5lIGEg a25vd24gcHJvdG9jb2wgZm9yIFBNRCB0byByZWFkIHRoZQ0KPiBkYXRhIGhvdw0KPiA+ID4gMiBw bWRzIGNhbiB1c2UgdGhlIHNhbWUgYWN0aW9uPw0KPiA+ID4NCj4gPiA+ID4gLi4uYWRkIGEgc2Vt aS1vcGFxdWUgZGF0YSB0eXBlOg0KPiA+ID4gPg0KPiA+ID4gPiBTdHJ1Y3QgdGx2IHsNCj4gPiA+ ID4gSW50IHR5cGU7ICAgICAvLyBWZW5kb3Igc3BlY2lmaWMgdHlwZS4NCj4gPiA+ID4gSW50IGxl bjsgICAgICAvLyBMZW5ndGggb2YgdmFsdWUgaW4gYnl0ZXMuDQo+ID4gPiA+IENoYXIgdmFsdWVb XTsgLy8gKFZlbmRvciwgVHlwZSkgc3BlY2lmaWMgbWVhbmluZy4NCj4gPiA+ID4gfTsNCj4gPiA+ ID4NCj4gPiA+ID4gU3RydWN0IGl0ZW0gew0KPiA+ID4gPiBJbnQgdmVuZG9yOyAgICAgICAgICAv LyBWZW5kb3IgSUQuDQo+ID4gPiA+IEludCBsZW47ICAgICAgICAgICAgIC8vIExlbmd0aCBvZiB2 YWx1ZXMgaW4gYnl0ZXMuDQo+ID4gPiA+IFN0cnVjdCB0bHYgdmFsdWVzW107IC8vIEFycmF5IG9m IFRMVnMuDQo+ID4gPiA+IH07DQo+ID4gPiA+DQo+ID4gPiA+IExpa2UgUkFESVVTIFZlbmRvci1T cGVjaWZpYyBhdHRyaWJ1dGVzOg0KPiA+ID4gPiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3Jn L2RvYy9odG1sL3JmYzIxMzgjc2VjdGlvbi01LjI2DQo+ID4gPiA+DQo+ID4gPiA+IFRoZW4gc29t ZSAoVmVuZG9yLCBUeXBlKSBmaWVsZHMgY2FuIGJlIGRvY3VtZW50ZWQgKGFuZCB0aHVzDQo+IGdl bmVyYWxseQ0KPiA+ID4gPiB1bmRlcnN0b29kIGJ5IERQREspLCBhbmQgc29tZSB1bmRvY3VtZW50 ZWQuDQo+ID4gPiA+DQo+ID4gPiA+IEUuZy4gbGlrZSBNaWNyb3NvZnQgZG9jdW1lbnRlZCBzb21l IG9mIHRoZWlycyBpbiBSRkMgMjU0ODoNCj4gPiA+ID4gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRm Lm9yZy9kb2MvaHRtbC9yZmMyNTQ4DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEFub3RoZXIg YmVuZWZpdCBpcyB0aGF0IHRoZXNlIG5ldyAiVkVORE9SLVNQRUNJRklDIiBmbG93IHR5cGVzIGNh bg0KPiBiZQ0KPiA+ID4gcmV1c2VkDQo+ID4gPiA+IGZvciBvdGhlciBwdXJwb3NlcyB0aGFuIGNv bXBpbGVkIFA0IHByb2dyYW1zLg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBQcmVmZXJhYmx5LCB0aGVyZSBzaG91bGQgYWxzbyBi ZSBhIG1lYW5zIGZvciBhcHBsaWNhdGlvbnMgdG8NCj4gcXVlcnkgaWYNCj4gPiA+ID4gPiBzcGVj aWZpYw0KPiA+ID4gPiA+ID4gVmVuZG9yLVNwZWNpZmljIGZsb3cgaXRlbXMgYW5kIGFjdGlvbnMg YXJlIHN1cHBvcnRlZCBvciBub3QuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IFsxXTogaHR0cHM6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvZW50ZXJwcmlz ZS1udW1iZXJzLw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gUmVnYXJkcywN Cj4gPiA+ID4gPiBDcmlzdGlhbg0K