From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 16446A04B3; Fri, 8 Nov 2019 10:00:40 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E3EC91BFA5; Fri, 8 Nov 2019 10:00:38 +0100 (CET) Received: from smtp-4.sys.kth.se (smtp-4.sys.kth.se [130.237.48.193]) by dpdk.org (Postfix) with ESMTP id DC55F1BFA4 for ; Fri, 8 Nov 2019 10:00:37 +0100 (CET) Received: from smtp-4.sys.kth.se (localhost.localdomain [127.0.0.1]) by smtp-4.sys.kth.se (Postfix) with ESMTP id 915482B46; Fri, 8 Nov 2019 10:00:37 +0100 (CET) X-Virus-Scanned: by amavisd-new at kth.se Received: from smtp-4.sys.kth.se ([127.0.0.1]) by smtp-4.sys.kth.se (smtp-4.sys.kth.se [127.0.0.1]) (amavisd-new, port 10024) with LMTP id RQvH3lHTCXUC; Fri, 8 Nov 2019 10:00:36 +0100 (CET) Received: from exdb01.ug.kth.se (exdb01.ug.kth.se [192.168.32.111]) by smtp-4.sys.kth.se (Postfix) with ESMTPS id 5A8FE261D; Fri, 8 Nov 2019 10:00:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kth.se; s=default; t=1573203636; bh=39lqeVs7H/U2jplbKrPePcbNpAABnDEq1aZ7Qu1s0Lg=; h=From:To:CC:Subject:Date:References:In-Reply-To; b=KmzvQmw12/JCybSHdrkQyfKw/Ws4f+RKWaJ+Va2u4NB8q6UwCyLQ0HgLGgE03MqAi lflQeWC9GSsOFAUObs2UhV9/RYtZMnQrlib7vcRnW/p3iT/SHGlTwm4LTkQwZB1n0k KGvSA5CB7qSGcf4+/hNlJlpYco4JZbsMOHRFxOFM= Received: from exdb05.ug.kth.se (192.168.32.115) by exdb01.ug.kth.se (192.168.32.111) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 8 Nov 2019 10:00:33 +0100 Received: from exdb05.ug.kth.se (192.168.32.115) by exdb05.ug.kth.se (192.168.32.115) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 8 Nov 2019 10:00:33 +0100 Received: from exdb05.ug.kth.se ([192.168.32.115]) by exdb05.ug.kth.se ([192.168.32.115]) with mapi id 15.00.1473.005; Fri, 8 Nov 2019 10:00:33 +0100 From: Tom Barbette To: Andrew Rybchenko , Ori Kam , Thomas Monjalon CC: "dev@dpdk.org" , "pbhagavatula@marvell.com" , "ferruh.yigit@intel.com" , "jerinj@marvell.com" , "John McNamara" , Marko Kovacevic , Adrien Mazarguil , "david.marchand@redhat.com" , "ktraynor@redhat.com" , Olivier Matz Thread-Topic: [dpdk-dev] [PATCH 1/2] ethdev: add flow action type update as an offload Thread-Index: AQHVkKh4PbGIMYX08ky2+UrRj9vXead5LzSAgAAV6ACAAgatAIAAzK6AgAAdXgCAADEKgIAAVc0AgADrhQCAABEWgIADM4EAgAASoEg= Date: Fri, 8 Nov 2019 09:00:33 +0000 Message-ID: <1573203631946.15959@kth.se> References: <20191025152142.12887-1-pbhagavatula@marvell.com> <3078181.9TjvbByyqQ@xps> <8f5caa1c-7a13-f2f2-a391-792a78da454f@solarflare.com> <398f8345-5a8c-738e-6534-57e9ace6aebe@solarflare.com> , In-Reply-To: Accept-Language: fr-FR, sv-SE, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [91.176.21.55] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 1/2] ethdev: add flow action type update as an offload 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" TXkgdHdvIGNlbnRzIGFzIGEgcmVndWxhciB1c2VyIG9mIHRoZSBmbG93IGFuZCBtYXJrIGZlYXR1 cmU6IChBKSBzZWVtcyBtdWNoIGJldHRlciBhbmQgbmF0dXJhbC4KCkluIHBhY2tldCBwcm9jZXNz aW5nIHBsYXRmb3JtIHN1Y2ggYXMgRmFzdENsaWNrLCBJIGRvbid0IGhhdmUgYSByZWFsIHVuZGVy c3RhbmRpbmcgb2YgdGhlIHJ1bGVzIG9mIHRoZSB1c2VyLCBhbmQgcnVsZXMgY2FuIGJlIGFkZGVk IGJ5IHRoZSB1c2VyIHdoaWxlIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIHZpYSBhIHNvY2tl dCBvciB3ZWIgaW50ZXJmYWNlLiBTbyBpdCBpcyBtdWNoIGVhc2llciB0byAicGFzcyB0aGUgcmVx dWlyZW1lbnQiLCBhc2tpbmcgdGhlIHVzZXIgdG8gZ2l2ZSBlLmcuICJGTE9XX01BUksgdHJ1ZSIg dG8gdGhlIEkvTyBlbGVtZW50cyB0byBlbmFibGUgdGhlIGZlYXR1cmUgZm9yIGxhdGVyIHVzZSB0 aGF0IEkgZWFzaWx5IHRyYW5zbGF0ZSB0byB0aGUgb2ZmbG9hZCBmbGFnLiBNb3Jlb3ZlciwgdGhh dCBjcmVhdGVzIGEgZGVwZW5kZW5jeSBpc3N1ZSBhcyBJIGZpcnN0IGluaXRpYWxpemUgSS9PIGVs ZW1lbnRzIHNvIG90aGVyIGVsZW1lbnRzIGNhbiBxdWVyeSBzb21lIHJlc291cmNlcyBzdWNoIGFz IHRoZSBNQUMgYWRkcmVzcyAoT25lIGNvdWxkIGhhdmUgaGFsZi1pbml0aWFsaXphdGlvbiBvciBh IHJlYWwgZGVwZW5kZW5jeSBzY2hlbWUgYnV0IHRoYXQgaXMgbm90IHN1cHBvcnRlZCBmb3Igbm93 KS4gSW4gdGhlIGR5bmFtaWMgY2FzZSAoQikgd291bGQgcmVxdWlyZSB0byBmb3JnZSBhIGZha2Ug cnVsZSBpbiBjYXNlIHRoZSBmZWF0dXJlIGlzIGxhdGVyIHVzZWQuCgooQykgc2VlbXMgZXZlbiBt b3JlIGNvbXBsZXguLi4gVGhvdWdoIGlmIHlvdSB3YW50IHRvIHVzZSBhIGR5bmFtaWMgZmllbGQg Zm9yIHRoZSBtYXJrL21ldGEsIGl0IHNlZW1zIG9rYXkgdG8gaGF2ZSBhIHNlY29uZCByZXF1aXJl bWVudCB0byBhZGQgYSBmaWVsZCBmb3IgaXQuCgpUb20KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpEZSA6IGRldiA8ZGV2LWJvdW5jZXNAZHBkay5vcmc+IGRlIGxhIHBh cnQgZGUgQW5kcmV3IFJ5YmNoZW5rbyA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4KRW52b3nD qSA6IHZlbmRyZWRpIDggbm92ZW1icmUgMjAxOSAwOTozNQrDgCA6IE9yaSBLYW07IFRob21hcyBN b25qYWxvbgpDYyA6IGRldkBkcGRrLm9yZzsgcGJoYWdhdmF0dWxhQG1hcnZlbGwuY29tOyBmZXJy dWgueWlnaXRAaW50ZWwuY29tOyBqZXJpbmpAbWFydmVsbC5jb207IEpvaG4gTWNOYW1hcmE7IE1h cmtvIEtvdmFjZXZpYzsgQWRyaWVuIE1hemFyZ3VpbDsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNv bTsga3RyYXlub3JAcmVkaGF0LmNvbTsgT2xpdmllciBNYXR6Ck9iamV0IDogUmU6IFtkcGRrLWRl dl0gW1BBVENIIDEvMl0gZXRoZGV2OiBhZGQgZmxvdyBhY3Rpb24gdHlwZSB1cGRhdGUgYXMgYW4g b2ZmbG9hZAoKT24gMTEvNi8xOSAxMDo0MiBBTSwgT3JpIEthbSB3cm90ZToKPgo+PiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBBbmRyZXcgUnliY2hlbmtvIDxhcnliY2hlbmtv QHNvbGFyZmxhcmUuY29tPgo+PiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDYsIDIwMTkgODo0 MSBBTQo+PiBUbzogT3JpIEthbSA8b3Jpa2FAbWVsbGFub3guY29tPjsgVGhvbWFzIE1vbmphbG9u Cj4+IDx0aG9tYXNAbW9uamFsb24ubmV0Pgo+PiBDYzogZGV2QGRwZGsub3JnOyBwYmhhZ2F2YXR1 bGFAbWFydmVsbC5jb207IGZlcnJ1aC55aWdpdEBpbnRlbC5jb207Cj4+IGplcmluakBtYXJ2ZWxs LmNvbTsgSm9obiBNY05hbWFyYSA8am9obi5tY25hbWFyYUBpbnRlbC5jb20+OyBNYXJrbwo+PiBL b3ZhY2V2aWMgPG1hcmtvLmtvdmFjZXZpY0BpbnRlbC5jb20+OyBBZHJpZW4gTWF6YXJndWlsCj4+ IDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT47IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207 Cj4+IGt0cmF5bm9yQHJlZGhhdC5jb20KPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENI IDEvMl0gZXRoZGV2OiBhZGQgZmxvdyBhY3Rpb24gdHlwZSB1cGRhdGUgYXMgYW4KPj4gb2ZmbG9h ZAo+Pgo+PiBPbiAxMS81LzE5IDc6MzcgUE0sIE9yaSBLYW0gd3JvdGU6Cj4+Pgo+Pj4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbyA8YXJ5YmNo ZW5rb0Bzb2xhcmZsYXJlLmNvbT4KPj4+PiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciA1LCAyMDE5 IDE6MzEgUE0KPj4+PiBUbzogT3JpIEthbSA8b3Jpa2FAbWVsbGFub3guY29tPjsgVGhvbWFzIE1v bmphbG9uCj4+Pj4gPHRob21hc0Btb25qYWxvbi5uZXQ+Cj4+Pj4gQ2M6IGRldkBkcGRrLm9yZzsg cGJoYWdhdmF0dWxhQG1hcnZlbGwuY29tOyBmZXJydWgueWlnaXRAaW50ZWwuY29tOwo+Pj4+IGpl cmluakBtYXJ2ZWxsLmNvbTsgSm9obiBNY05hbWFyYSA8am9obi5tY25hbWFyYUBpbnRlbC5jb20+ OyBNYXJrbwo+Pj4+IEtvdmFjZXZpYyA8bWFya28ua292YWNldmljQGludGVsLmNvbT47IEFkcmll biBNYXphcmd1aWwKPj4+PiA8YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb20+OyBkYXZpZC5tYXJj aGFuZEByZWRoYXQuY29tOwo+Pj4+IGt0cmF5bm9yQHJlZGhhdC5jb20KPj4+PiBTdWJqZWN0OiBS ZTogW2RwZGstZGV2XSBbUEFUQ0ggMS8yXSBldGhkZXY6IGFkZCBmbG93IGFjdGlvbiB0eXBlIHVw ZGF0ZSBhcyBhbgo+Pj4+IG9mZmxvYWQKPj4+Pgo+Pj4KPj4+IFtTbmlwXQo+Pj4KPj4+Pj4KPj4+ Pj4gWWVzIGJ1dCBsaWtlIEkgc2FpZCBpbiBNZWxsYW5veCBQTUQgZm9yIGV4YW1wbGUgd2Ugc3Vw cG9ydGVkIHRoZSBtYXJrIG9ubHkgb24gbm9uLXRyYW5zZmVyIGZsb3dzIHVudGlsIHRoaXMgcmVs ZWFzZS4KPj4+Pj4gc28gd2hlbiB0aGUgdXNlciBzZXQgbWFyayBvbiB0cmFuc2ZlciBmbG93IGl0 IHdhcyBpbnZhbGlkLiAoaW4gdHJhbnNmZXIgZmxvdyBpZiB3ZSBoYXZlIGEgbWlzcyB3ZSBzZW5k IHRoZSBwYWNrZXQgYmFjayB0byB0aGUgUngKPj4+Pj4gcG9ydCBzbyB0aGUgYXBwbGljYXRpb24g Y2FuIHVuZGVyc3RhbmQgb24gd2hpY2ggdGFibGUgdGhlIG1pc3MgaGFwcGVuZWQpCj4+Pj4+IElu IHRoaXMgdmVyc2lvbiB3ZSBhZGRlZCB0aGUgc3VwcG9ydCBmb3IgbWFyayBhbHNvIGluIHRyYW5z ZmVyIChFLVN3aXRjaCkgZmxvd3MuCj4+Pj4+IFNvIG15IHF1ZXN0aW9uIGJlZm9yZSB0aGlzIHJl bGVhc2Ugd2hhdCBzaG91bGQgdGhlIFBNRCByZXBvcnQ/IFdoYXQgc2hvdWxkIHRoZSBQTUQgcmVw b3J0IGFmdGVyIHRoaXMgcmVsZWFzZT8KPj4+Pj4KPj4+Pj4gWW91ciBpZGVhIHdhcyBvdXIgZmly c3QgdGhvdWdodCB3aGVuIGFkZGluZyB0aGUgVHggbWV0YSwgaW4gdGhhdCBjYXNlIHRoZSBtZXRh IHdhcyBhbHdheXMgc2V0IGluIGFwcGxpY2F0aW9uCj4+Pj4+IHNvIHdlIHRob3VnaHQgdGhhdCB0 aGlzIG9mZmxvYWQgd2lsbCBlbmFibGUgdXMgYmV0dGVyIGZ1bmN0aW9uIHNlbGVjdGlvbiwgYnV0 IGFzIHlvdSBrbm93IHdlIHJlbW92ZWQgdGhpcyBjYXBhYmlsaXR5Cj4+Pj4+IHNpbmNlIGl0IGlz IG5vdCBjb3JyZWN0IGFueSBtb3JlLgo+Pj4+Pgo+Pj4+Pj4gVGhlIGFib3ZlIGFsc28gaGlnaGxp Z2h0cyBwcm9ibGVtcyBvZiB0aGUgbWV0YSB2cyBtYXJrIGRlc2lnbi4gVGhleSBhcmUgdmVyeQo+ Pj4+Pj4gc2ltaWxhciBhbmQgdGhlcmUgaXMgbm8gYW55IGdvb2QgZGVmaW5pdGlvbiBvZiB0aGUg ZGlmZmVyZW5jZSBhbmQgcnVsZXMKPj4+Pj4+IHdoaWNoIG9uZSBzaG91bGQgYmUgdXNlZC9zdXBw b3J0ZWQgaW4gd2hpY2ggY29uZGl0aW9ucy4KPj4+Pj4+Cj4+Pj4+Cj4+Pj4+IE1hcmsgYW5kIE1l dGEgYXJlIGV4YWN0bHkgdGhlIHNhbWUsIHRoZSBtZXRhIGlzIGp1c3QgYW5vdGhlciB2YWx1ZSB0 aGF0IHRoZSBhcHBsaWNhdGlvbiBjYW4gdXNlLgo+Pj4+PiBUaGlzIGlzIHdoeSBib3RoIHNob3Vs ZCBhY3QgdGhlIHNhbWUuCj4+Pj4+Cj4+Pj4+IEFuZCBtYXliZSB0aGlzIGlzIHRoZSB3aW5pbmcg YXJndW1lbnQsIHRoZSBydGVfZmxvdyB2YWxpZGF0aW9uIGFwcHJvYWNoIHdhcyB1c2VkIGFuZCBh Y2NlcHRlZCBmb3IgdGhlIG1ldGEuCj4+Pj4+IFNvIGxldHMgdHJ5IGl0IGFsc28gd2l0aCB0aGUg bWFyay4gKHBsZWFzZSBhbHNvIHJlbWVtYmVyIHRoYXQgd2UgZGlkbid0IGhhdmUgdGhpcyBtYXJr IHVudGlsIG5vdyB0byBzb21laG93IHRoZQo+Pj4+PiBQTUQgd29ya2VkIPCfmIopCj4+Pj4+Cj4+ Pj4+IExpa2UgSSBzYWlkIGJlZm9yZSwgSSB1bmRlcnN0YW5kIHlvdXIgYXBwcm9hY2gsIGFuZCBl YWNoIG9uZSBvZiB0aGVtIGhhcyBpdHMgb3duIGFkdmFudGFnZXMgYW5kIGRyYXcgYmFja3MuCj4+ Pj4+IExldHMgc3RhcnQgdXNpbmcgdGhlIHJ0ZV9mbG93IGFwcHJvYWNoIGFuZCBzZWUgaG93IGl0 IGdvZXMsIEkgcHJvbWlzZSB5b3UgdGhhdCBpZiBJIHNlZSB0aGF0IGl0IGRvZXNuJ3Qgc2NhbGUg b3IgY2F1c2UgbW9yZQo+Pj4+PiBpc3N1ZXMgSSB3aWxsIGJlIGZpcnN0IG9uZSB0byBzdWJtaXQg Y2hhbmdlcy4KPj4+Pgo+Pj4+IEkgdGVuZCB0byBzYXkgT0ssIGxldCdzIHRyeS4gSG93ZXZlciwg aXQgbXVzdCBiZSBkb2N1bWVudGVkCj4+Pj4gaW4gTUFSSyBhY3Rpb24gdGhhdCBpZiBhbiBhcHBs aWNhdGlvbiB3YW50cyB0byB1c2UgaXQsIGEgcnVsZQo+Pj4+IHdpdGggdGhlIGFjdGlvbiBtdXN0 IGJlIHZhbGlkYXRlZCBiZWZvcmUgZGV2aWNlIHN0YXJ0Lgo+Pj4KPj4+IEkgYWdyZWUgdG8gYWRk IHRoaXMgdG8gdGhlIHJ0ZV9mbG93IG1hcmsgYWN0aW9uIGRvY3VtYXRpb24uCj4+Pgo+Pj4+IFBN RCBtYXkgdXNlIHRoZSBhdHRlbXB0IGFzIGFuIGluZGljYXRpb24gZnJvbSB0aGUgYXBwbGljYXRp b24KPj4+PiB0aGF0IGl0IHdvdWxkIGxpa2UgdG8gdXNlIGZsb3cgbWFyayBldmVuIGlmIHRoZSB2 YWxpZGF0aW9uCj4+Pj4gZmFpbHMuCj4+Pgo+Pj4gTm8gaWYgdGhlIFBNRCB1c2VzIHRoaXMgdmFs aWRhdGlvbiBhcyBoaW50IGl0IHNob3VsZCByZXR1cm4gc3VjY2VzcyBhbmQKPj4+IHVzZSB0aGUg Y29ycmVjdCBQTUQuCj4+Cj4+IEl0IHdvdWxkIG1ha2UgaXQgdG9vIHN0cmljdGx5IGRlcGVuZGVu dCBvbiBwYXR0ZXJuL2FjdGlvbnMvc3RhdGUuCj4KPiBJJ20gbm90IHN1cmUgSSB1bmRlcnN0YW5k IHlvdXIgY29tbWVudC4KPiBXaHkgd291bGQgaXQgbWFrZSBpdCB0byBzdHJpY3Q/IEkgZ3Vlc3Mg dGhhdCBtYXJrIGFjdGlvbiBpcyBkb2Vzbid0IGNhcmUgd2hpY2ggaXRlbXMgYXJlIGluCj4gdGhl IGZsb3csIHNvIGp1c3Qgc2V0dGluZyBldGggaXRlbSBzb3VuZCBnb29kIGVub3VnaC4KClRoZSBw cm9ibGVtIGlzIGlmIHNpbmdsZSBwYXR0ZXJuK2FjdGlvbnMgaXMgdXNlZCB0byBjaGVjayBNQVJL CnN1cHBvcnQgYW5kIGxldCBQTUQga25vdyB0aGF0IGFwcGxpY2F0aW9uIGlzIGdvaW5nIHRvIHVz ZSBpdCBhbmQKdGhlIGZsb3cgcnVsZSBpcyBub3Qgc3VwcG9ydGVkLCBidXQgYW5vdGhlciBjb21i aW5hdGlvbiBpcyBzdXBwb3J0ZWQsCnRoYXQncyBpdC4gVGhlIGZlYXR1cmUgaXMgZmFsc2UgY2xh c3NpZmllZCBhcyBub3Qgc3VwcG9ydGVkLgoKPiBBbHNvIEkgZ3Vlc3MgdGhlIG1hcmsgZG9lc24n dCBjb25mbGljdCB3aXRoIG1hbnkgYWN0aW9ucyBtYXliZSB0aGUgbWV0YS4KPiBTbyB0aGUgYXBw bGljYXRpb24gZG9lc24ndCBoYXZlIGEgbG90IG9mIGNob2ljZXMuCj4gSW4gYW55IGNhc2UgYW5k IHRoaXMgaXMgdGhlIG1vc3QgaW1wb3J0YW50IG9uZS4gSW4gYW55IGNhc2UgdGhlIGFwcGxpY2F0 aW9uIG11c3QgdmFsaWRhdGUgdGhhdCB0aGUKPiBOaWMgc3VwcG9ydCB0aGUgbWFyayBpbiBhbnkg Y2FzZSwgYWNjb3JkaW5nIHRvIFJURV9GTE9XIGRlZmluaXRpb24uIFdoYXQgaXMgdGhlIG1lYW5p bmcKPiBvZiBzYXlpbmcgd2Ugc3VwcG9ydCBvZmZsb2FkICh1c2luZyB5b3VyIHNlZ2d1ZXRpb24p IGFuZCB0aGVuIGVhY2ggZmxvdyB5b3UgdHJ5IHRvIGluc2VydAo+IHdpbGwgZmFpbC4gU28gaW4g YW55IGNhc2UgdGhlIGFwcGxpY2F0aW9uIG11c3QgdmFsaWRhdGUgdGhlIGZsb3dzIGl0IGlzIGdv aW5nIHRvIHVzZS4KClllcywgYnV0IHRoZSBkZWNpc2lvbiBoZXJlIGlzIHBlciBydWxlLCBub3Qg Z2xvYmFsLgoKPj4+PiBPcmksIHBsZWFzZSwgc3VnZ2VzdCBmb3JtYWxpemVkIHBhdHRlcm4gYW5k IGFjdGlvbnMKPj4+PiBzcGVjaWZpY2F0aW9uIHRvIHVzZSBpZiBhcHBsaWNhdGlvbiB3YW50cyB0 byB1dGlsaXplCj4+Pj4gdmFsaWRhdGlvbiByZXN1bHQgYXMgYSBjcml0ZXJpYSB0byBlbmFibGUv ZGlzYWJsZSBmbG93Cj4+Pj4gbWFya3MgdXNhZ2UuCj4+Pgo+Pj4gSSBjYW7igJl0IGRvIHRoYXQs IGl0IGRlcGVuZHMgb24gdGhlIGFwcGxpY2F0aW9uLCB0aGUgbW9zdCBiYXNpYyBpcyBqdXN0ICJw YXR0ZXJuIGV0aCBhY3Rpb25zIG1hcmsgLyBxdWV1ZSIgLgo+Pj4gSW4gc29tZSBjYXNlcyB3aGVy ZSB5b3UgbmVlZCBpdCBmb3IgRS1Td2l0Y2ggaWYgc2hvdWxkIGJlIHNvbWV0aGluZyBsaWtlInRy YW5zZmVyICBpdGVtcyBwb3J0IC8gZXRoIC8gYWN0aW9ucyBtYXJrIgo+Pgo+PiBJZiBzbywgd2hh dCBhcHBsaWNhdGlvbiBhdXRob3Igc2hvdWxkIGRvIGlmIGV2ZW4gbWFpbnRhaW5lcnMgY2Fubm90 Cj4+IGZvcm1hbGl6ZSBpdC4gSXQgc291bmRzIGxpa2UgdGhlIGFwcHJvYWNoIGRvZXMgbm90IHdv cmsuCj4KPiBUaGlzIHNob3VsZCBiZSB2ZXJ5IGVhc3kgZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBr bm93LiBIb3cgY2FuIEkgYSBtYW50aWFuZXIga25vdwo+IHdoYXQgZmxvd3MgYW5kIHdoYXQgaXMg aW1wb3J0YW50IHRvIHRoZSBhcHBsaWNhdGlvbiwgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSBhcHBsaWNhdGlvbgo+IGNhbiB1bmRlcnN0YW5kIGlmIHdoYXQgaXQgd2FudHMgaXMgc3VwcG9y dGVkLgoKWWVzIGFuZCBpdCBpcyB0aGUgcHJvYmxlbSBvZiBjb21wbGV4IGxvZ2ljIHRvIG1ha2Ug Z2xvYmFsCmRlY2lzaW9uIGF0IHN0YXJ0IG9mIGRheS4gRmxvdyBBUEkgYWxsb3dzIHRvIGF2b2lk IGdsb2JhbApkZWNpc2lvbnMgYW5kIHZlcmRpY3QgaXMgcmV0dXJuZWQgZm9yIGVhY2ggc3BlY2lm aWMgcnVsZSwKYnV0IGhlcmUgd2UgbmVlZCBnbG9iYWwgZGVjaXNpb24gd2hpY2ggd2lsbCBhZmZl Y3QgZnVydGhlcgpsb2dpYy4KCj4+Pj4gV2hhdCBzaG91bGQgYmUgZG9uZSBpZiBwYXR0ZXJucyB0 byB1c2UgYW5kIHNldAo+Pj4+IG9mIGFjdGlvbnMgdG9nZXRoZXIgd2l0aCBNQVJLIGFyZSBub3Qg a25vd24gaW4gYWR2YW5jZS4KPj4+Cj4+PiBJIHRoaW5rIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGtu b3dzIHdoaWNoIGtpbmQgb2YgdHJhZmZpYyBpdCBleHBlY3RzIGFuZCB3aGljaCBhY3Rpb25zIGl0 IG5lZWRzLgo+Pgo+PiBJJ20gYWZyYWlkIGl0IGlzIG5vdCBhbHdheXMgdHJ1ZS4KPgo+IENhbiB5 b3UgcGxlYXNlIGdpdmUgbWUgc3VjaCBleGFtcGxlLCBob3cgY2FuIHlvdSBkZXZlbG9wIGFuIGFw cGxpY2F0aW9uIHdpdGhvdXQga25vd2luZyB3aGF0IGl0IHNob3VsZCBkbz8KPiBUaGlzIG1lYW5z IHRoZSBhcHBsaWNhdGlvbiBpcyBub3Qgb3B0aW1pemVkIGFuZCBpbXBvc3NpYmxlIHRvIHRlc3Qu CgpGaXJzdCBvZiBhbGwgdGVzdHBtZC4gSSBrbm93IHRoYXQgaXQgaXMgYSB0ZXN0IGFwcGxpY2F0 aW9uIGV0YywKYnV0IEkgdGhpbmsgaXQgaXMgc3RpbGwgdmFsaWQgZXhhbXBsZS4KU2Vjb25kIE9W UywgaWYgSSB1bmRlcnN0YW5kIGl0IGNvcnJlY3RseS4gQXMgZmFyIGFzIEkga25vdyBpdAphbGxv d3MgdG8gYWRkIGEgcnVsZSB3aXRoIHZhcmlvdXMgcGF0dGVybnMgYW5kLCBpbiB0aGVvcnksIGl0 CmNvdWxkIHJlc3VsdCBpbiB0aGUgcGF0dGVybiB0byBiZSB1c2VkIHdpdGggTUFSSyBhY3Rpb24u CkJhc2ljYWxseSBhbnkgYXBwbGljYXRpb24gd2hpY2ggYWxsb3dzIHRvIGFkZCBjdXN0b20gZmxv dyBydWxlcy4KCkkgdGhpbmsgd2UgYXJlIHJ1bm5pbmcgaW4gY2lyY2xlcyBoZXJlLiBJJ2xsIHRy eSB0byBzdW1tYXJpemUKdGhlIHJlc3VsdCBvZiB0aGUgZGlzY3Vzc2lvbiB0byBtYWtlIGl0IGVh c2llciBmb3Igb3RoZXIKZGV2ZWxvcGVycyB0byBmb2xsb3cuIFBsZWFzZSwgY29ycmVjdCBtZSBp ZiBJJ20gd3JvbmcgYmVsb3cuCgpTb3JyeSBmb3IgYSB2ZXJ5LXZlcnkgbG9uZyBtYWlsIGJlbG93 LCBidXQgSSdkIHJlYWxseSBsaWtlCnRvIGZpbmFsaXplIHRoZSBkaXNjdXNzaW9uLgoKVGhlIHBy b2JsZW06Cn5+fn5+fn5+fn5+fgpQTUQgd2FudHMgdG8ga25vdyBiZWZvcmUgcG9ydCBzdGFydCBp ZiBhcHBsaWNhdGlvbiB3YW50cyB0bwp0byB1c2UgZmxvdyBNQVJLL0ZMQUcgaW4gdGhlIGZ1dHVy ZS4gSXQgaXMgcmVxdWlyZWQgYmVjYXVzZToKCjEuIEhXIG1heSBiZSBjb25maWd1cmVkIGluIGEg ZGlmZmVyZW50IHdheSB0byByZXNlcnZlIHJlc291cmNlcwogICBmb3IgTUFSSy9GTEFHIGRlbGl2 ZXJ5CgoyLiBEYXRhcGF0aCBpbXBsZW1lbnRhdGlvbiBjaG9pY2UgbWF5IGRlcGVuZCBvbiBpdCAo ZS5nLiB2UE1ECiAgIGlzIGZhc3RlciwgYnV0IGRvZXMgbm90IHN1cHBvcnQgTUFSSykKCkRpc2N1 c3NlZCBzb2x1dGlvbnM6Cn5+fn5+fn5+fn5+fn5+fn5+fn5+CkEuIEV4cGxpY2l0IFJ4IG9mZmxv YWQgc3VnZ2VzdGVkIGJ5IHRoZSBwYXRjaC4KCkIuIEltcGxpY2l0IGJ5IHZhbGlkYXRpb24gb2Yg YSBmbG93IHJ1bGUgd2l0aCBNQVJLL0ZMQUcgYWN0aW9ucyB1c2VkLgoKQy4gVXNlIGR5bmFtaWMg ZmllbGQvZmxhZyAoaS5lLiBhcHBsaWNhdGlvbiByZWdpc3RlcnMgZHluYW1pYyBmaWVsZAogICBh bmQvb3IgZmxhZyBhbmQgUE1EIHVzZXMgbG9va3VwIHRvIHNvbHZlIHRoZSBwcm9ibGVtKSBwbHVz IHBhcnQKICAgb2YgKEIpIHRvIGRpc2NvdmVyIGlmIGEgZmVhdHVyZSBpcyBzdXBwb3J0ZWQuCgpB bGwgc29sdXRpb25zIHJlcXVpcmUgY2hhbmdlcyBpbiBhcHBsaWNhdGlvbnMgd2hpY2ggdXNlIHRo ZXNlCmZlYXR1cmVzLiBUaGVyZSBpcyBhIGRlcHJlY2F0aW9uIG5vdGljZSBpbiBwbGFjZSB3aGlj aCBhZHZlcnRpc2VzCkRFVl9SWF9PRkZMT0FEX0ZMT1dfTUFSSyBhZGRpdGlvbiwgYnV0IG1heSBi ZSBpdCBpcyBPSyB0byBzdWJzdGl0dXRlCml0IHdpdGggc29sdXRpb24gKEIpIG9yIChDKS4gU29s dXRpb24gKEMpIHJlcXVpcmVzIGNoYW5nZXMgc2luY2UKaXQgc2hvdWxkIGJlIGNvbWJpbmVkIHdp dGggKEIpIGluIG9yZGVyIHRvIHVuZGVyc3RhbmQgaWYKdGhlIGZlYXR1cmUgaXMgc3VwcG9ydGVk LgoKQWR2YW50YWdlcyBhbmQgZHJhd2JhY2tzIG9mIHNvbHV0aW9uczoKfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMS4gVGhlIG1haW4gZHJhd2JhY2sgb2YgKEEpIGlzIGEg ImR1cGxpY2F0aW9uIiBzaW5jZSB3ZSBhbHJlYWR5CiAgIGhhdmUgYSB3YXkgdG8gcmVxdWVzdCBm bG93IE1BUksgdXNpbmcgcnRlX2Zsb3cgQVBJLgogICBJIGRvbid0IGZ1bGx5IGFncmVlIHRoYXQg aXQgaXMgYSBkdXBsaWNhdGlvbiwgYnV0IEkgYWdyZWUKICAgdGhhdCBpdCBzb3VuZHMgbGlrZSBk dXBsaWNhdGlvbiBhbmQgY29tcGxpY2F0ZXMgYSBiaXQgZmxvdwogICBNQVJLIHVzYWdlIGJ5IGFw cGxpY2F0aW9ucy4gKEIpIGNvbXBsaWNhdGVzIGl0IGFzIHdlbGwuCgoyLiBPbmUgbW9yZSBkcmF3 YmFjayBvZiB0aGUgc29sdXRpb24gKEEpIGlzIHRoZSBuZWNlc3NpdHkgb2YKICAgc2ltaWxhciBz b2x1dGlvbiBmb3IgTUVUQSBhbmQgaXQgZWF0cyBvbmUgbW9yZSBvZmZsb2FkIGJpdC4KICAgWWVz LCB0aGF0J3MgdHJ1ZSBhbmQgSSB0aGluayBpdCBpcyBub3QgYSBwcm9ibGVtLgogICBJdCB3b3Vs ZCBtYWtlIGl0IGVhc2llciBmb3IgYXBwbGljYXRpb25zIHRvIGZpbmQgb3V0IGlmCiAgIGVpdGhl ciBNQVJLIG9yIE1FVEEgaXMgc3VwcG9ydGVkLgoKMy4gVGhlIG1haW4gYWR2YW50YWdlIG9mIHRo ZSBzb2x1dGlvbiAoQSkgaXMgc2ltcGxpY2l0eS4KICAgSXQgaXMgc2ltcGxlIGZvciBhcHBsaWNh dGlvbiB0byB1bmRlcnN0YW5kIGlmIGl0IHN1cHBvcnRlZC4KICAgSXQgaXMgc2ltcGxlIGluIFBN RCB0byB1bmRlcnN0YW5kIHRoYXQgaXQgaXMgcmVxdWlyZWQuCiAgIEl0IGlzIHNpbXBsZSB0byBk aXNhYmxlIGl0IC0ganVzdCByZWNvbmZpZ3VyZS4KICAgQWxzbyBpdCBpcyBlYXNpZXIgdG8gZG9j dW1lbnQgaXQgLSBqdXN0IG1lbnRpb24gdGhhdAogICB0aGUgb2ZmbG9hZCBzaG91bGQgYmUgc3Vw cG9ydGVkIGFuZCBlbmFibGVkLgoKNC4gVGhlIG1haW4gYWR2YW50YWdlIG9mIHRoZSBzb2x1dGlv biAoQikgaXMgbm8gImR1cGxpY2F0aW9uIi4KICAgSSBhZ3JlZSB0aGF0IGl0IGlzIHZhbGlkIGFy Z3VtZW50LiBTb2x2aW5nIHRoZSBwcm9ibGVtCiAgIHdpdGhvdXQgZXh0cmEgZW50aXRpZXMgaXMg YWx3YXlzIG5pY2UsIGJ1dCB1bmZvcnR1bmF0ZWx5CiAgIGl0IGlzIHRvbyBjb21wbGV4IGluIHRo aXMgY2FzZS4KCjUuIFRoZSBtYWluIGRyYXdiYWNrIG9mIHRoZSBzb2x1dGlvbiAoQikgaXMgdGhl IGNvbXBsZXhpdHkuCiAgIEl0IGlzIG5lY2Vzc2FyeSB0byBjaG9vc2UgYSBmbG93IHJ1bGUgd2hp Y2ggc2hvdWxkIGJlIHVzZWQKICAgYXMgYSBjcml0ZXJpYS4gSXQgY291bGQgYmUgaGFyZHdhcmUg ZGVwZW5kZW50LgogICBDb21wbGV4IGxvZ2ljIGlzIHJlcXVpcmUgaW4gUE1EIGlmIGl0IHdhbnRz IHRvIGFkZHJlc3MgdGhlCiAgIHByb2JsZW0gYW5kIGNvbnRyb2wgTUFSSyBkZWxpdmVyeSBiYXNl ZCBvbiB2YWxpZGF0ZWQgZmxvdwogICBydWxlcy4gSXQgYWRkcyBkZXBlbmRlbmN5IGJldHdlZW4g c3RhcnQvc3RvcCBwcm9jZXNzaW5nIGFuZAogICBmbG93IHJ1bGVzIHZhbGlkYXRpb24gY29kZS4K ICAgSXQgaXMgcHJldHR5IGNvbXBsaWNhdGVkIHRvIGRvY3VtZW50IGl0LgoKNi4gVXNlbGVzcyBl bmFibGluZyBvZiB0aGUgb2ZmbG9hZCBpbiB0aGUgY2FzZSBvZiBzb2x1dGlvbiAoQSkKICAgaWYg cmVhbGx5IHVzZWQgZmxvdyBydWxlcyBkbyBub3Qgc3VwcG9ydCBNQVJLIGxvb2tzIGxpa2UKICAg ZHJhd2JhY2sgYXMgd2VsbCwgYnV0IGVhc2lseSBtaXRpZ2F0ZWQgYnkgYSBjb21iaW5hdGlvbgog ICB3aXRoIHNvbHV0aW9uIChCKSBhbmQgb25seSByZXF1aXJlZCBpZiB0aGUgYXBwbGljYXRpb24g d2FudHMKICAgdG8gZGl2ZSBpbiB0aGUgbGV2ZWwgb2Ygb3B0aW1pemF0aW9uIGFuZCBjb21wbGV4 aXR5IGFuZAogICBtYWtlcyBzZW5zZSBpZiBhcHBsaWNhdGlvbiBrbm93cyByZXF1aXJlZCBmbG93 IHJ1bGVzIGluCiAgIGFkdmFuY2UuIFNvLCBpdCBpcyBub3QgYSBwcm9ibGVtIGluIHRoaXMgY2Fz ZS4KCjcuIFNvbHV0aW9uIChDKSBoYXMgZHJhd2JhY2tzIG9mIHRoZSBzb2x1dGlvbiAoQikgZm9y CiAgIGFwcGxpY2F0aW9ucyB0byB1bmRlcnN0YW5kIGlmIHRoZXNlIGZlYXR1cmVzIGFyZSBzdXBw b3J0ZWQsCiAgIGJ1dCBubyBkcmF3YmFja3MgaW4gUE1ELCBzaW5jZSBleHBsaWNpdCBjcml0ZXJp YSBpcyB1c2VkIHRvCiAgIGVuYWJsZS9kaXNhYmxlIChkeW5hbWljIGZpZWxkL2ZsYWcgbG9va3Vw KS4KCjguIFNvbHV0aW9uIChDKSBpcyBuaWNlIHNpbmNlIGl0IGF2b2lkcyAiZHVwbGljYXRpb24i LgoKOS4gVGhlIG1haW4gZHJhd2JhY2sgb2YgdGhlIHNvbHV0aW9uIChDKSBpcyBhc3ltbWV0cnku CiAgIEFzIGl0IHdhcyBkaXNjdXNzZWQgaW4gdGhlIGNhc2Ugb2YgUlhfVElNRVNUQU1QCiAgIChp ZiBJIHJlbWVtYmVyIGl0IGNvcnJlY3RseSk6CiAgICAtIFBNRCBhZHZlcnRpc2VzIFJYX1RJTUVT VEFNUCBvZmZsb2FkIGNhcGFiaWxpdHkKICAgIC0gYXBwbGljYXRpb24gZW5hYmxlcyB0aGUgb2Zm bG9hZAogICAgLSBQTUQgcmVnaXN0ZXJzIGR5bmFtaWMgZmllbGQgZm9yIHRpbWVzdGFtcAogICBT b2x1dGlvbiAoQyk6CiAgICAgLSBQTUQgYWR2ZXJ0aXNlcyBub3RoaW5nCiAgICAgLSBhcHBsaWNh dGlvbiB1c2VzIHNvbHV0aW9uIChCKSB0byB1bmRlcnN0YW5kIGlmCiAgICAgICB0aGVzZSBmZWF0 dXJlcyBhcmUgc3VwcG9ydGVkCiAgICAgLSBhcHBsaWNhdGlvbiByZWdpc3RlcnMgZHluYW1pYyBm aWVsZC9mbGFnCiAgICAgLSBQTUQgZG9lcyBsb29rdXAgYW5kIHNvbHZlIHRoZSBwcm9ibGVtCiAg IFRoZSBhc3ltbWV0cnkgY291bGQgYmUgcGFydGlhbGx5IG1pdGlnYXRlZCBpZiBSWF9USU1FU1RB TVAKICAgc29sdXRpb24gaXMgY2hhbmdlZCB0byByZXF1aXJlIGFuIGFwcGxpY2F0aW9uIHRvIHJl Z2lzdGVyCiAgIGR5bmFtaWMgZmllbGRzIGFuZCBQTUQgdG8gZG8gbG9va3VwIGlmIHRoZSBvZmZs b2FkIGlzCiAgIGVuYWJsZWQuIFNvLCB0aGUgb25seSBkaWZmZXJlbmNlIHdpbGwgYmUgaW4gbm8g b2ZmbG9hZAogICBpbiB0aGUgY2FzZSBvZiBmbG93IE1BUksvRkxBRyBhbmQgdXNhZ2Ugb2YgY29t cGxleCBsb2dpYwogICB0byB1bmRlcnN0YW5kIGlmIGl0IGlzIHN1cHBvcnRlZCBvciBuby4KICAg TWF5IGJlIGl0IHdvdWxkIGJlIHJlYWxseSBnb29kIHNpbmNlIGl0IHdpbGwgYWxsb3cgdG8KICAg aGF2ZSBkeW5hbWljIGZpZWxkcyByZWdpc3RlcmVkIGJlZm9yZSBtZW1wb29sIHBvcHVsYXRpb24u CgoxMC4gQ29tbW9uIGRyYXdiYWNrIG9mIHNvbHV0aW9ucyAoQikgYW5kIChDKSBpcyBubyBncmFu dWxhcml0eS4KICAgIFNvbHV0aW9uIChBKSBtYXkgYmUgcGVyIHF1ZXVlIHdoaWxlIChCKSBhbmQg KEMpIGNhbm5vdCBiZQogICAgcGVyIHF1ZXVlLiBNb3Jlb3ZlciAoQykgbG9va3MgZ2xvYmFsIC0g Zm9yIGFsbCBkZXZpY2VzLgogICAgSXQgY291bGQgYmUgcmVhbGx5IHBhaW5mdWwuCgooQykgaXMg bmljZSwgYnV0IEkgc3RpbGwgdm90ZSBmb3Igc2ltcGxpY2l0eSBhbmQKZ3JhbnVsYXJpdHkgb2Yg KEEpLgoKQW5kcmV3Lgo=