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 4C3F5A2F6B for ; Tue, 8 Oct 2019 15:18:56 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0B9F91D149; Tue, 8 Oct 2019 15:18:56 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130085.outbound.protection.outlook.com [40.107.13.85]) by dpdk.org (Postfix) with ESMTP id 21CEB1C1BE for ; Tue, 8 Oct 2019 15:18:54 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C7dIs/sVsPtVcCVMAT9ZRVAJD4wMo91DD5WehWJfy+5bGrJq68byEqNzfiNofRwXJmQ6VzHoJVEQPvycjPkZW7iF+ASfggtnSKDwqs/uNTgbgQqs6l6K9s47wCJkpztMJXayRjXeXeOuQXfuhSDiGLSCxnULiW2TITOWx6SEN4/SvQL7Raf/oqtOMeMBtTdulGMaoGWzZeosInD57jocWVs3NqPF7E9QyO35fk6Z9e6AI3xtNCLnrvja8p4nGfpRya1JwHV6AjEb02k1lZsqbye0SuNkgqk+molUNtMA7NW3w5l1w2ArcS4D68o5Vq034+rMQ3oP2rwZ24BFgPn6dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k9OetoJlBYm1+KeCVfw6zcRcsccui8j1zI7Zl7VJvVo=; b=KBSSognONCVXqh++XpVY3Mnbbio10DL4sJLaDw4ecgHdp39NjU7xbdWoasyBlr8ZRaGY6regGotzYHMrz/qJnDTCVKFKWx0sO7YUE4W6txEx3DzipHJSEinvvF7GBKQHG5qr79VyPSp3N3Bw6tB5gFn9WWWFFszgdfuAEN5Shg84CsPLXJaplxNbvskU8yk00Sh4qVxdtdlNQqyfwaBNVJPeM1dD8Gk4Mllpa9gLIxe46DlEIlQJvFSV87eMB6qZsNJOpY2EKoTCryT0+v4f/7fxdg8YVr7X4PI4sfUjA7ylwD6bladRATMu0W/5N5iYgvZjM1D6OrTWJjYTW/Qhag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k9OetoJlBYm1+KeCVfw6zcRcsccui8j1zI7Zl7VJvVo=; b=QzAJFCBm4YpOr8eS4sv6ORbhC0BfLs7xxXfKNzce95c7X/BpQRwdTjk2ABf3m8YjpJd+WbKG4oomO+Oi15whcbrh/Q+a0DMmjotKuw8G3dfelcFdw/ByyIuHOoOGZYM4u+tBaGd4c+60KyASjY1iZqTwFmPq9scyOufJHDTy3fc= Received: from AM4PR05MB3265.eurprd05.prod.outlook.com (10.171.188.154) by AM4PR05MB3426.eurprd05.prod.outlook.com (10.171.188.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2327.24; Tue, 8 Oct 2019 13:18:52 +0000 Received: from AM4PR05MB3265.eurprd05.prod.outlook.com ([fe80::edab:529f:d14e:d3b]) by AM4PR05MB3265.eurprd05.prod.outlook.com ([fe80::edab:529f:d14e:d3b%7]) with mapi id 15.20.2327.023; Tue, 8 Oct 2019 13:18:52 +0000 From: Slava Ovsiienko To: "Yigit, Ferruh" , Yongseok Koh , Adrien Mazarguil CC: Shahaf Shuler , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko , Olivier Matz , dev Thread-Topic: [dpdk-dev] [PATCH] ethdev: add flow tag Thread-Index: AQHVMr+Si/pan7Wtzk2xbNI9UnpiWqa8DLcAgABGWACABaqzAIACtW0AgIyXKwCAAAXGYA== Date: Tue, 8 Oct 2019 13:18:52 +0000 Message-ID: References: <20190603213231.27020-3-yskoh@mellanox.com> <20190704232302.19582-1-yskoh@mellanox.com> <20190705135404.GR4512@6wind.com> <6EE319CD-4BBC-47BF-AAE5-2165B8C1D491@mellanox.com> <20190709083806.GS4512@6wind.com> <20190711015948.GA21363@mtidpdk.mti.labs.mlnx> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; x-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b00c171a-df3a-4b5b-6ec3-08d74bf21046 x-ms-office365-filtering-ht: Tenant x-ms-traffictypediagnostic: AM4PR05MB3426:|AM4PR05MB3426: x-ms-exchange-purlcount: 2 x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 01842C458A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(346002)(396003)(366004)(39860400002)(136003)(189003)(199004)(13464003)(7736002)(486006)(74316002)(25786009)(2906002)(3846002)(6116002)(71200400001)(71190400001)(305945005)(6436002)(8676002)(8936002)(81166006)(81156014)(9686003)(14444005)(256004)(6306002)(6246003)(55016002)(4326008)(229853002)(33656002)(7696005)(66476007)(66556008)(66946007)(52536014)(99286004)(316002)(64756008)(76116006)(66066001)(186003)(26005)(102836004)(66446008)(54906003)(5660300002)(966005)(14454004)(11346002)(45080400002)(446003)(476003)(478600001)(110136005)(6506007)(53546011)(86362001)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3426; H:AM4PR05MB3265.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EDco9WXjxjkhnyQXbQjPyFt4jCB8DYrOHYIDwKoLAX6qZLmFd2c9U9XlIj7VBwOol51+ehcjOEZZOlgl0a22X9Dn1BNIazsE8nGFYKDKPqoBDBZxuYUUmgYXzYmdJh2xAO7I1aYu2h6rGqAF/OoCqaKlfLiVzjWvFVHjNROAm+ktVtZ7qv893a5otAOCw34eP0IxX62CXnNEPFycGe8CzMsMoLRI7bjqvnXLpQ7MXFKMEQCvrfH6QRYVPZVTvnNf/KZ9akyKKqUx1T0JLqbX00G7yeNsDMrRnzY2HQdkB8/WgQ1QdnMMJDFO0rbMtfUdRd1NPlArgMJTXPX4fo7LfCsNumHmn5elaIhQB+DMUgE9XnDNwXJsSzYbVhn6I+hEHimHl5GRnAKk674qyk9B06BUG5zy38BtIRIpLb+m2fA= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: b00c171a-df3a-4b5b-6ec3-08d74bf21046 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Oct 2019 13:18:52.1915 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8dWpoehlQx+qmzp5QwBmLcdZA7XqW4P6vvuMd/It+6M2RvHcgbR/RKCP66NFsInyhZlVVFos1fVv5xNtW4T4K9Eu1y4HJGQhA/MJYt7MY48= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3426 Subject: Re: [dpdk-dev] [PATCH] ethdev: add flow tag 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZaWdpdCwgRmVycnVoIDxmZXJy dWgueWlnaXRAbGludXguaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDgsIDIw MTkgMTU6NTcNCj4gVG86IFlvbmdzZW9rIEtvaCA8eXNrb2hAbWVsbGFub3guY29tPjsgQWRyaWVu IE1hemFyZ3VpbA0KPiA8YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb20+DQo+IENjOiBTaGFoYWYg U2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA8dGhvbWFz QG1vbmphbG9uLm5ldD47IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IEFu ZHJldw0KPiBSeWJjaGVua28gPGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb20+OyBPbGl2aWVyIE1h dHoNCj4gPG9saXZpZXIubWF0ekA2d2luZC5jb20+OyBkZXYgPGRldkBkcGRrLm9yZz47IFNsYXZh IE92c2lpZW5rbw0KPiA8dmlhY2hlc2xhdm9AbWVsbGFub3guY29tPg0KPiBTdWJqZWN0OiBSZTog W2RwZGstZGV2XSBbUEFUQ0hdIGV0aGRldjogYWRkIGZsb3cgdGFnDQo+IA0KPiBPbiA3LzExLzIw MTkgMjo1OSBBTSwgWW9uZ3Nlb2sgS29oIHdyb3RlOg0KPiA+IE9uIFR1ZSwgSnVsIDA5LCAyMDE5 IGF0IDEwOjM4OjA2QU0gKzAyMDAsIEFkcmllbiBNYXphcmd1aWwgd3JvdGU6DQo+ID4+IE9uIEZy aSwgSnVsIDA1LCAyMDE5IGF0IDA2OjA1OjUwUE0gKzAwMDAsIFlvbmdzZW9rIEtvaCB3cm90ZToN Cj4gPj4+PiBPbiBKdWwgNSwgMjAxOSwgYXQgNjo1NCBBTSwgQWRyaWVuIE1hemFyZ3VpbA0KPiA8 YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb20+IHdyb3RlOg0KPiA+Pj4+DQo+ID4+Pj4gT24gVGh1 LCBKdWwgMDQsIDIwMTkgYXQgMDQ6MjM6MDJQTSAtMDcwMCwgWW9uZ3Nlb2sgS29oIHdyb3RlOg0K PiA+Pj4+PiBBIHRhZyBpcyBhIHRyYW5zaWVudCBkYXRhIHdoaWNoIGNhbiBiZSB1c2VkIGR1cmlu ZyBmbG93IG1hdGNoLg0KPiA+Pj4+PiBUaGlzIGNhbiBiZSB1c2VkIHRvIHN0b3JlIG1hdGNoIHJl c3VsdCBmcm9tIGEgcHJldmlvdXMgdGFibGUgc28NCj4gPj4+Pj4gdGhhdCB0aGUgc2FtZSBwYXR0 ZXJuIG5lZWQgbm90IGJlIG1hdGNoZWQgYWdhaW4gb24gdGhlIG5leHQgdGFibGUuDQo+ID4+Pj4+ IEV2ZW4gaWYgb3V0ZXIgaGVhZGVyIGlzIGRlY2Fwc3VsYXRlZCBvbiB0aGUgcHJldmlvdXMgbWF0 Y2gsIHRoZSBtYXRjaA0KPiByZXN1bHQgY2FuIGJlIGtlcHQuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNv bWUgZGV2aWNlIGV4cG9zZSBpbnRlcm5hbCByZWdpc3RlcnMgb2YgaXRzIGZsb3cgcHJvY2Vzc2lu Zw0KPiA+Pj4+PiBwaXBlbGluZSBhbmQgdGhvc2UgcmVnaXN0ZXJzIGFyZSBxdWl0ZSB1c2VmdWwg Zm9yIHN0YXRlZnVsDQo+ID4+Pj4+IGNvbm5lY3Rpb24gdHJhY2tpbmcgYXMgaXQga2VlcHMgc3Rh dHVzIG9mIGZsb3cgbWF0Y2hpbmcuIE11bHRpcGxlDQo+ID4+Pj4+IHRhZ3MgYXJlIHN1cHBvcnRl ZCBieSBzcGVjaWZ5aW5nIGluZGV4Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBFeGFtcGxlIHRlc3RwbWQg Y29tbWFuZHMgYXJlOg0KPiA+Pj4+Pg0KPiA+Pj4+PiAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBh dHRlcm4gLi4uIC8gZW5kDQo+ID4+Pj4+ICAgIGFjdGlvbnMgc2V0X3RhZyBpbmRleCAyIHZhbHVl IDB4YWEwMGJiIG1hc2sgMHhmZmZmMDBmZiAvDQo+ID4+Pj4+ICAgICAgICAgICAgc2V0X3RhZyBp bmRleCAzIHZhbHVlIDB4MTIzNDU2IG1hc2sgMHhmZmZmZmYgLw0KPiA+Pj4+PiAgICAgICAgICAg IHZ4bGFuX2RlY2FwIC8ganVtcCBncm91cCAxIC8gZW5kDQo+ID4+Pj4+DQo+ID4+Pj4+ICBmbG93 IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiAuLi4gLyBlbmQNCj4gPj4+Pj4gICAgYWN0aW9ucyBz ZXRfdGFnIGluZGV4IDIgdmFsdWUgMHhjYzAwIG1hc2sgMHhmZjAwIC8NCj4gPj4+Pj4gICAgICAg ICAgICBzZXRfdGFnIGluZGV4IDMgdmFsdWUgMHgxMjM0NTYgbWFzayAweGZmZmZmZiAvDQo+ID4+ Pj4+ICAgICAgICAgICAgdnhsYW5fZGVjYXAgLyBqdW1wIGdyb3VwIDEgLyBlbmQNCj4gPj4+Pj4N Cj4gPj4+Pj4gIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBncm91cCAxDQo+ID4+Pj4+ICAgIHBhdHRl cm4gdGFnIGluZGV4IGlzIDIgdmFsdWUgc3BlYyAweGFhMDBiYiB2YWx1ZSBtYXNrIDB4ZmZmZjAw ZmYgLw0KPiA+Pj4+PiAgICAgICAgICAgIGV0aCAuLi4gLyBlbmQNCj4gPj4+Pj4gICAgYWN0aW9u cyAuLi4ganVtcCBncm91cCAyIC8gZW5kDQo+ID4+Pj4+DQo+ID4+Pj4+ICBmbG93IGNyZWF0ZSAw IGluZ3Jlc3MgZ3JvdXAgMQ0KPiA+Pj4+PiAgICBwYXR0ZXJuIHRhZyBpbmRleCBpcyAyIHZhbHVl IHNwZWMgMHhjYzAwIHZhbHVlIG1hc2sgMHhmZjAwIC8NCj4gPj4+Pj4gICAgICAgICAgICB0YWcg aW5kZXggaXMgMyB2YWx1ZSBzcGVjIDB4MTIzNDU2IHZhbHVlIG1hc2sgMHhmZmZmZmYgLw0KPiA+ Pj4+PiAgICAgICAgICAgIGV0aCAuLi4gLyBlbmQNCj4gPj4+Pj4gICAgYWN0aW9ucyAuLi4gLyBl bmQNCj4gPj4+Pj4NCj4gPj4+Pj4gIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBncm91cCAyDQo+ID4+ Pj4+ICAgIHBhdHRlcm4gdGFnIGluZGV4IGlzIDMgdmFsdWUgc3BlYyAweDEyMzQ1NiB2YWx1ZSBt YXNrIDB4ZmZmZmZmIC8NCj4gPj4+Pj4gICAgICAgICAgICBldGggLi4uIC8gZW5kDQo+ID4+Pj4+ ICAgIGFjdGlvbnMgLi4uIC8gZW5kDQo+ID4+Pj4+DQo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IFlv bmdzZW9rIEtvaCA8eXNrb2hAbWVsbGFub3guY29tPg0KPiA+Pj4+DQo+ID4+Pj4gSGkgWW9uZ3Nl b2ssDQo+ID4+Pj4NCj4gPj4+PiBPbmx5IGhpZ2ggbGV2ZWwgcXVlc3Rpb25zIGZvciBub3csIHdo aWxlIGl0IHVucXVlc3Rpb25hYmx5IGxvb2tzDQo+ID4+Pj4gdXNlZnVsLCBmcm9tIGEgdXNlciBz dGFuZHBvaW50IGV4cG9zaW5nIHRoZSBzZXBhcmF0ZSBpbmRleCBzZWVtcw0KPiA+Pj4+IHJlZHVu ZGFudCBhbmQgbm90IG5lY2Vzc2FyaWx5IGNvbnZlbmllbnQuIFVzaW5nIHRoZSBmb2xsb3dpbmcg ZXhhbXBsZQ0KPiB0byBpbGx1c3RyYXRlOg0KPiA+Pj4+DQo+ID4+Pj4gYWN0aW9ucyBzZXRfdGFn IGluZGV4IDMgdmFsdWUgMHgxMjM0NTYgbWFzayAweGZmZmZmDQo+ID4+Pj4NCj4gPj4+PiBwYXR0 ZXJuIHRhZyBpbmRleCBpcyAzIHZhbHVlIHNwZWMgMHgxMjM0NTYgdmFsdWUgbWFzayAweGZmZmZm Zg0KPiA+Pj4+DQo+ID4+Pj4gSSBtaWdodCBiZSBtaXNzaW5nIHNvbWV0aGluZywgYnV0IHdoeSBp c24ndCB0aGlzIGVub3VnaDoNCj4gPj4+Pg0KPiA+Pj4+IHBhdHRlcm4gdGFnIGluZGV4IGlzIDMg IyBtYXRjaCB3aGF0ZXZlciBpcyBzdG9yZWQgYXQgaW5kZXggMw0KPiA+Pj4+DQo+ID4+Pj4gQXNz dW1pbmcgaXQgY2FuIHdvcmssIHRoZW4gd2h5IGJvdGhlciB3aXRoIHByb3ZpZGluZyB2YWx1ZQ0K PiA+Pj4+IHNwZWMvbWFzayBvbiBzZXRfdGFnPyBBIGZsb3cgcnVsZSBwYXR0ZXJuIG1hdGNoZXMg c29tZXRoaW5nLCBzZXRzDQo+ID4+Pj4gc29tZSBhcmJpdHJhcnkgdGFnIHRvIGJlIG1hdGNoZWQg YnkgYSBzdWJzZXF1ZW50IGZsb3cgcnVsZSBhbmQNCj4gPj4+PiB0aGF0J3MgaXQuIEl0IGV2ZW4g c2VlbXMgbGlrZSByZWx5aW5nIG9uIHRoZSBpbmRleCBvbmx5IG9uIGJvdGggb2NjYXNpb25zDQo+ IGlzIGVub3VnaCBmb3IgaWRlbnRpZmljYXRpb24uDQo+ID4+Pj4NCj4gPj4+PiBTYW1lIHF1ZXN0 aW9uIGZvciB0aGUgb3Bwb3NpdGUgYXBwcm9hY2g7IHJlbHlpbmcgb24gdGhlIHZhbHVlLA0KPiA+ Pj4+IG5ldmVyIG1lbnRpb25pbmcgdGhlIGluZGV4Lg0KPiA+Pj4+DQo+ID4+Pj4gSSdtIHVuZGVy IHRoZSBpbXByZXNzaW9uIHRoYXQgdGhlIGluZGV4IGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMNCj4g Pj4+PiBjb25zdHJhaW50IHRoYXQgc2hvdWxkbid0IGJlIGV4cG9zZWQgKGVzcGVjaWFsbHkgc2lu Y2UgaXQncyBhbg0KPiA+Pj4+IDgtYml0IGZpZWxkKS4gSWYgc28sIGEgUE1EIGNvdWxkIGtlZXAg dHJhY2sgb2YgdXNlZCBpbmRpY2VzIHdpdGhvdXQNCj4gPj4+PiBoYXZpbmcgdGhlbSBleHBvc2Vk IHRocm91Z2ggdGhlIHB1YmxpYyBBUEkuDQo+ID4+Pg0KPiA+Pj4NCj4gPj4+IFRoYW5rIHlvdSBm b3IgcmV2aWV3LCBBZHJpZW4uDQo+ID4+PiBIb3BlIHlvdSBhcmUgZG9pbmcgd2VsbC4gSXQncyBi ZWVuIGxvbmcgc2luY2Ugd2UgdGFsa2VkIGVhY2ggb3RoZXIuDQo+ID4+PiA6LSkNCj4gPj4NCj4g Pj4gWWVhaCBjbGVhcmx5ISBIb3BlIHlvdSdyZSBkb2luZyB3ZWxsIHRvby4gSSdtIHNvbWV3aGF0 IGJ1c3kgaGVuY2UNCj4gPj4gc2xvdyB0byBhbnN3ZXIgdGhlc2UgZGF5cy4uLg0KPiA+Pg0KPiA+ PiAgPGRldkBkcGRrLm9yZz4gaGV5IQ0KPiA+PiAgPGRldkBkcGRrLm9yZz4gbm8gcHJpdmF0ZSB0 YWxrcyENCj4gPj4NCj4gPj4gQmFjayB0byB0aGUgdG9waWM6DQo+ID4+DQo+ID4+PiBZb3VyIGFw cHJvYWNoIHdpbGwgd29yayB0b28gaW4gZ2VuZXJhbCBidXQgd2UgaGF2ZSBhIHJlcXVlc3QgZnJv bQ0KPiA+Pj4gY3VzdG9tZXIgdGhhdCB0aGV5IHdhbnQgdG8gcGFydGl0aW9uIHRoaXMgbGltaXRl ZCB0YWcgc3RvcmFnZS4NCj4gPj4+IEFzc3VtaW5nIHRoYXQgSFcgZXhwb3NlcyAzMmJpdCB0YWdz ICh0aG9zZSBhcmUgJ3JlZ2lzdGVycycgaW4gSFcNCj4gPj4+IHBpcGVsaW5lIGluIG1seDUgSFcp LiBUaGVuLCBjdXN0b21lcnMgd2FudCB0byBzdG9yZSBtdWx0aXBsZSBkYXRhDQo+ID4+PiBldmVu IGluIGEgMzItYml0IHN0b3JhZ2UuIEZvciBleGFtcGxlLCAxNmJpdCB2bGFuIHRhZywgOGJpdCB0 YWJsZSBpZA0KPiA+Pj4gYW5kIDhiaXQgZmxvdyBpZC4gQXMgdGhleSB3YW50IHRvIHNwbGl0IG9u ZSAzMmJpdCBzdG9yYWdlLCBJIHRob3VnaHQNCj4gPj4+IGl0IGlzIGJldHRlciB0byBwcm92aWRl IG1hc2sgd2hlbiBzZXR0aW5nL21hdGNoaW5nIHRoZSB2YWx1ZS4gRXZlbg0KPiA+Pj4gc29tZSBj dXN0b21lciB3YW50cyB0byBzdG9yZSBtdWx0aXBsZSBmbGFncyBiaXQgYnkgYml0IGxpa2Ugb2xf ZmxhZ3MuIFRoZXkNCj4gZG8gd2FudCB0byBhbHRlciBvbmx5IHBhcnRpYWwgYml0cy4NCj4gPj4+ DQo+ID4+PiBBbmQgZm9yIHRoZSBpbmRleCwgaXQgaXMgdG8gcmVmZXJlbmNlIGFuIGVudHJ5IG9m IHRhZ3MgYXJyYXkgYXMgSFcNCj4gPj4+IGNhbiBwcm92aWRlIGxhcmdlciByZWdpc3RlcnMgdGhh biAzMi1iaXQuIEZvciBleGFtcGxlLCBtbHg1IEhXIHdvdWxkDQo+ID4+PiBwcm92aWRlIDQgb2Yg MzJiIHN0b3JhZ2Ugd2hpY2ggdXNlcnMgY2FuIHVzZSBmb3IgdGhlaXIgb3duIHNha2UuDQo+ID4+ PiAJdGFnWzBdLCB0YWdbMV0sIHRhZ1syXSwgdGFnWzNdDQo+ID4+DQo+ID4+IE9LLCBsb29rcyBs aWtlIEkgbWlzc2VkIHRoZSBwb2ludCB0aGVuLiBJIGluaXRpYWxseSB0b29rIGl0IGZvciBhDQo+ ID4+IGZ1bmt5IGFsdGVybmF0aXZlIHRvIFJURV9GTE9XX0lURU1fVFlQRV9NRVRBICYNCj4gPj4g UlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX01FVEEgKGluZ3Jlc3MgZXh0ZW5kZWQgWzFdKSBidXQg d2hpbGUgaXQNCj4gPj4gY291bGQgYmUgdXNlZCBsaWtlIHRoYXQsIGl0J3MgbW9yZSBvZiBhIHdh eSB0byB0ZW1wb3JhcmlseSBzdG9yZSBhbmQNCj4gcmV0cmlldmUgYSBzbWFsbCBhbW91bnQgb2Yg ZGF0YSwgY29ycmVjdD8NCj4gPg0KPiA+IENvcnJlY3QuDQo+ID4NCj4gPj4gT3V0IG9mIGN1cmlv c2l0eSwgYXJlIHRoZXNlIHJlZ2lzdGVycyBpbmRlcGVuZGVudCBmcm9tIE1FVEEgYW5kIG90aGVy DQo+ID4+IGl0ZW1zL2FjdGlvbnMgaW4gbWx4NSwgb3RoZXJ3aXNlIHdoYXQgaGFwcGVucyBpZiB0 aGV5IGFyZSBjb21iaW5lZD8NCj4gPg0KPiA+IEkgdGhvdWdodCBhYm91dCBjb21iaW5pbmcgaXQg YnV0IEkgY2hvc2UgdGhpcyB3YXkuIEJlY2F1c2UgaXQgaXMNCj4gPiB0cmFuc2llbnQuIE1FVEEg Y2FuIGJlIHNldCBieSBwYWNrZXQgZGVzY3JpcHRvciBvbiBUeCBhbmQgY2FuIGJlDQo+ID4gZGVs aXZlcmVkIHRvIGhvc3QgdmlhIG1idWYgb24gUngsIGJ1dCB0aGlzIFRBRyBpdGVtIGNhbid0LiBJ ZiBJDQo+ID4gY29tYmluZSBpdCwgdXNlcnMgaGF2ZSB0byBxdWVyeSB0aGlzIGNhcGFiaWxpdHkg Zm9yIGVhY2ggMzJiIHN0b3JhZ2UuDQo+ID4gQW5kIGFsc28sIHRoZXJlIHNob3VsZCBiZSBhIHdh eSB0byByZXF1ZXN0IGRhdGEgZnJvbSBzdWNoIHN0b3JhZ2VzDQo+ID4gKGkuZS4gbmV3IGFjdGlv biAsIGUuZy4gY29weV9tZXRhKS4gTGV0J3Mgc2F5IHRoZXJlIGFyZSA0eDMyYiBzdG9yYWdlcw0K PiA+IC0gbWV0YVs0XS4gSWYgdXNlciB3YW50cyB0byBnZXQgb25lIDMyYiBkYXRhIChtZXRhW2ld KSBvdXQgb2YgdGhlbSB0bw0KPiA+IG1idWYtPm1ldGFkYXRhLCBpdCBzaG91bGQgYmUgc29tZXRo aW5nIGxpa2UsDQo+ID4gCWluZ3Jlc3MgLyBwYXR0ZXJuIC4uIC8NCj4gPiAJYWN0aW9ucyAuLi4g c2V0X21ldGEgaW5kZXggaSBkYXRhIHggLyBjb3B5X21ldGFfdG9fcnggaW5kZXggaSBBbmQgaWYN Cj4gPiB1c2VyIHdhbnRzIHRvIHNldCBtZXRhW2ldIHZpYSBtYnVmIG9uIFR4LA0KPiA+IAllZ3Jl c3MgLyBwYXR0ZXJuIG1ldGEgaW5kZXggaXMgaSBkYXRhIGlzIHggLi4uIC8NCj4gPiAJYWN0aW9u cyAuLi4gY29weV9tZXRhX3RvX3R4IGluZGV4IGkNCj4gPg0KPiA+IEZvciBzdXJlLCB1c2VyIGlz IGFsc28gcmVzcG9uc2libGUgZm9yIHF1ZXJ5aW5nIHRoZXNlIGNhcGFiaWxpdGllcyBwZXINCj4g PiBlYWNoIG1ldGFbXSBzdG9yYWdlLg0KPiA+DQo+ID4gQXMgY29weV9tZXRhX3RvX3R4L3J4IGlz bid0IGEgcmVhbCBhY3Rpb24sIHRoaXMgZXhhbXBsZSB3b3VsZCBjb25mdXNlDQo+IHVzZXIuDQo+ ID4gCWVncmVzcyAvIHBhdHRlcm4gbWV0YSBpbmRleCBpcyBpIGRhdGEgaXMgeCAuLi4gLw0KPiA+ IAlhY3Rpb25zIC4uLiBjb3B5X21ldGFfdG9fdHggaW5kZXggaQ0KPiA+DQo+ID4gVXNlciBtaWdo dCBtaXN1bmRlcnN0YW5kIHRoZSBvcmRlciBvZiB0d28gdGhpbmdzIC0gaXRlbSBtZXRhIGFuZA0K PiA+IGNvcHlfbWV0YSBhY3Rpb24uIEkgYWxzbyB0aG91Z2h0IGFib3V0IGhhdmluZyBjYXBhYmls aXR5IGJpdHMgcGVyIGVhY2gNCj4gPiBtZXRhW10gc3RvcmFnZSBidXQgaXQgYWxzbyBsb29rZWQg Y29tcGxleC4NCj4gPg0KPiA+IEkgZG8gdGhpbmsgcnRlX2Zsb3cgaXRlbS9hY3Rpb24gaXMgYmV0 dGVyIHRvIGJlIHNpbXBsZSwgYXRvbWljIGFuZCBpbnR1aXRpdmUuDQo+ID4gVGhhdCdzIHdoeSBJ IG1hZGUgdGhpcyBjaG9pY2UuDQo+ID4NCj4gPj4gQXJlIHRoZXJlIG90aGVyIHVzZXMgZm9yIHRo ZXNlIHJlZ2lzdGVycz8gU2F5LCByZWZlcmVuY2luZyB0aGVpcg0KPiA+PiBjb250ZW50cyBmcm9t IG90aGVyIHBsYWNlcyBpbiBhIGZsb3cgcnVsZSBzbyB0aGV5IGRvbid0IGhhdmUgdG8gYmUgaGFy ZC0NCj4gY29kZWQ/DQo+ID4NCj4gPiBQb3NzaWJsZS4NCj4gPiBBY3R1YWxseSwgdGhpcyBmZWF0 dXJlIGlzIG5lZWRlZCBieSBjb25uZWN0aW9uIHRyYWNraW5nIG9mIE9WUy1EUERLLg0KPiA+DQo+ ID4+IFJpZ2h0IG5vdyBJJ20gc3RpbGwgdW5jb21mb3J0YWJsZSB3aXRoIHN1Y2ggYSBmZWF0dXJl IGluIHRoZSBwdWJsaWMNCj4gPj4gQVBJIGJlY2F1c2UgY29tcGFyZWQgdG8gTUVUQSBbMV0sIHRo aXMgYXBwcm9hY2ggbG9va3MgdmVyeQ0KPiA+PiBoYXJkd2FyZS1zcGVjaWZpYyBhbmQgc2VlbWlu Z2x5IGRpZmZpY3VsdCB0byBtYXAgb24gZGlmZmVyZW50IEhXDQo+IGFyY2hpdGVjdHVyZXMuDQo+ ID4NCj4gPiBJIHdvdWxkbid0IHNheSBpdCBpcyBIVy1zcGVjaWZpYy4gTGlrZSBJIGV4cGxhaW5l ZCBhYm92ZSwgSSBqdXN0DQo+ID4gZGVmaW5lIHRoaXMgbmV3IGl0ZW0vYWN0aW9uIHRvIG1ha2Ug dGhpbmdzIGVhc3ktdG8tdXNlIGFuZCBpbnR1aXRpdmUuDQo+ID4NCj4gPj4gSG93ZXZlciwgdGhl IG1haW4gcHJvYmxlbSBpcyB0aGF0IGFzIGRlc2NyaWJlZCwgaXRzIGVuZCBwdXJwb3NlIHNlZW1z DQo+ID4+IHJlZHVuZGFudCB3aXRoIE1FVEEsIHdoaWNoIEkgdGhpbmsgY2FuIGNvdmVyIHRoZSB1 c2UgY2FzZXMgeW91IGdhdmUuDQo+ID4+IFNvIHdoYXQgY2FuIGFuIGFwcGxpY2F0aW9uIGRvIHdp dGggdGhpcyB0aGF0IGNvdWxkbid0IGJlIGRvbmUgaW4gYQ0KPiA+PiBtb3JlIGdlbmVyaWMgZmFz aGlvbiB0aHJvdWdoIE1FVEE/DQo+ID4+DQo+ID4+IEkgbWF5IHN0aWxsIGJlIG1pc3Npbmcgc29t ZXRoaW5nIGFuZCBJJ20gb3BlbiB0byBpZGVhcywgYnV0IGFzc3VtaW5nDQo+ID4+IGl0IGRvZXNu J3QgbWFrZSBpdCBpbnRvIHRoZSBwdWJsaWMgcnRlX2Zsb3cgQVBJLCBpdCByZW1haW5zIGFuDQo+ ID4+IGludGVyZXN0aW5nIGZlYXR1cmUgb24gaXRzIG93biBtZXJpdCB3aGljaCBjb3VsZCBiZSBh ZGRlZCB0byBEUERLIGFzDQo+ID4+IFBNRC1zcGVjaWZpYyBwYXR0ZXJuIGl0ZW1zL2FjdGlvbnMg WzJdLiBtbHg1IGRvZXNuJ3QgaGF2ZSBhbnkgeWV0LA0KPiA+PiBidXQgaXQncyBwcmV0dHkgY29t bW9uIGZvciBQTURzIHRvIGV4cG9zZSBhIHB1YmxpYyBoZWFkZXIgdGhhdA0KPiA+PiBkZWRpY2F0 ZWQgYXBwbGljYXRpb25zIGNhbiBpbmNsdWRlIHRvIHVzZSB0aGlzIGtpbmQgb2YgZmVhdHVyZXMg KGxvb2sgZm9yDQo+IHJ0ZV9wbWRfKi5oLCBlLmcuIHJ0ZV9wbWRfaXhnYmUuaCkuDQo+ID4+IE5v IHByb2JsZW0gd2l0aCB0aGF0Lg0KPiA+DQo+ID4gVGhhdCdzIGdvb2QgaW5mby4gVGhhbmtzLiBC dXQgc3RpbGwgY29uc2lkZXJpbmcNCj4gPiBjb25uZWN0aW9uLXRyYWNraW5nLWxpa2UgdXNlLWNh c2VzLCB0aGlzIHRyYW5zaWVudCBzdG9yYWdlIG9uIG11bHRpLXRhYmxlDQo+IGZsb3cgcGlwZWxp bmUgaXMgcXVpdGUgdXNlZnVsLg0KPiA+DQo+ID4NCj4gPiB0aGFua3MsDQo+ID4gWW9uZ3Nlb2sN Cj4gPg0KPiA+PiBbMV0gIltQQVRDSF0gZXRoZGV2OiBleHRlbmQgZmxvdyBtZXRhZGF0YSINCj4g Pj4NCj4gPj4NCj4gaHR0cHM6Ly9ldXIwMy5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGbWFpDQo+ID4+IGxzLmRwZGsub3JnJTJGYXJjaGl2ZXMlMkZk ZXYlMkYyMDE5LQ0KPiBKdWx5JTJGMTM3MzA1Lmh0bWwmYW1wO2RhdGE9MDIlN0MNCj4gPj4NCj4g MDElN0N2aWFjaGVzbGF2byU0MG1lbGxhbm94LmNvbSU3Q2MwNDAyMTMzYjhiMjQyMmZjMjMzMDhk NzRiZWYxDQo+IDRmZCU3Qw0KPiA+Pg0KPiBhNjUyOTcxYzdkMmU0ZDliYTZhNGQxNDkyNTZmNDYx YiU3QzAlN0MwJTdDNjM3MDYxMzYyNTM3MTE2MzMyDQo+ICZhbXA7c2RhDQo+ID4+DQo+IHRhPUkl MkIlMkJFUkhLOEZYekx4WGtiYmpHVG1ORGYyZSUyRnNWUnZRJTJGSUpXNFptYVlyayUzRCZhDQo+ IG1wO3Jlc2VydmUNCj4gPj4gZD0wDQo+ID4+DQo+ID4+IFsyXSAiTmVnYXRpdmUgdHlwZXMiDQo+ ID4+DQo+ID4+DQo+IGh0dHBzOi8vZXVyMDMuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5j b20vP3VybD1odHRwcyUzQSUyRiUyRmRvYw0KPiA+PiAuZHBkay5vcmclMkZndWlkZXMlMkZwcm9n X2d1aWRlJTJGcnRlX2Zsb3cuaHRtbCUyM25lZ2F0aXZlLQ0KPiB0eXBlcyZhbXA7DQo+ID4+DQo+ IGRhdGE9MDIlN0MwMSU3Q3ZpYWNoZXNsYXZvJTQwbWVsbGFub3guY29tJTdDYzA0MDIxMzNiOGIy NDIyZmMyMw0KPiAzMDhkNzQNCj4gPj4NCj4gYmVmMTRmZCU3Q2E2NTI5NzFjN2QyZTRkOWJhNmE0 ZDE0OTI1NmY0NjFiJTdDMCU3QzAlN0M2MzcwNjEzNg0KPiAyNTM3MTE2Mw0KPiA+Pg0KPiAzMiZh bXA7c2RhdGE9bzZoY051d1dudjlmQURHeE5jeTZTOUIweHdDTmRsTmhibG9JS1JpTWlObyUzRCYN Cj4gYW1wO3Jlc2VyDQo+ID4+IHZlZD0wDQo+IA0KPiBJcyB0aGlzIFJGQyBzdGlsbCB2YWxpZCwg d2lsbCB0aGVyZSBiZSBhbnkgZm9sbG93IHVwPw0KPiBJZiBub3QgYW0gbWFya2luZyBpdCBhcyBy ZWplY3RlZCBpbiBuZXh0IGEgZmV3IGRheXMuDQoNClllcywgUkZDIGlzIHZhbGlkLCB2MiBhbmQg c3VwcG9ydCBpbiBtbHg1IElzIGNvbWluZy4NCg0KV0JSLCBTbGF2YQ0K