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 CE150A00BE; Thu, 17 Feb 2022 12:11:13 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C51C941159; Thu, 17 Feb 2022 12:11:13 +0100 (CET) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2042.outbound.protection.outlook.com [40.107.94.42]) by mails.dpdk.org (Postfix) with ESMTP id 9241B41153 for ; Thu, 17 Feb 2022 12:11:12 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dqmz0IgTBdyVSQT2uNtxi3McXhf7YpMJHrEW/Kc+T+q6DLNGkYir8DXKc+QyM+fFbCkpquDcYcsOpn7m7/AgxHcTbjg3V+kpk6w3rtwJloVLv7wKc/QPV6DP2TvygTkLxnIeDQ+6Q32tVKbXdW39IqlbW3yzzDULUQhjSL5/EeUJDVvWeE9aGm2wdLChgfrlxtk8HaAqJoZIvE9UD/IQf7aNXejolH1Zzrh8F4DqrkAsoh25pGuk1YlcVYM9twgiXDrsDPpytKgv5BeIVyVSXstCL7z5mU/5au+ZN0k9K1TGdMj5G1Paxd1ocv3vmAy3+1wJ3V4emURR2ptjWImBFA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YsorC0tPx42QzrPX/lpdIUtyCHQpD8grqHETFRl4sqA=; b=BhMLUv73C5w9WBvQgY8M2/5AY8LZ0wdse5ZZWPVMZV2GHIxHVlWg+2XHRavtPrUuY0NJbnmlYF33Ww+SevDviQDWpQaqAskSefrZ5glWd3ofo9ot6O24syKd6unafDj2thuRdve6FL1FGRGbtwmfUG5R0Cx1WcAd58u04E8Z9j+ObnDHlgTEno33wfAswDxVGYp62EskplCu3Dqo4pEOnY+5cNULqxMW895CExAHVoLjHKnoLN/XDZZuF1AaeZsyDTx/wUwO4UXqZBbGWhR+breAMHNWYnnEqinZ6a3ObdHVtjzgv6TRuj5mFz52UUaUpRUOoDohfl8IvGIfsh1eRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YsorC0tPx42QzrPX/lpdIUtyCHQpD8grqHETFRl4sqA=; b=tPtXBFeF1QICihpMOD+9ydYz7+E/IRHisy6qenuptmS8aFQzOpceDHGSEkYLKAx7G652JPxTGDMgR4bRsjWBMGyxXcYrzabRJriOecoiTxjCgxGAKBNHQeaTpfn7S2Bua1HAono8YvPp80W/zsWwbSmI5mM0RNZw+DKu4KTMflXZN8rZQ/1I1Y6YJnJh+w41QbncFrRFufA/NtILrGBLKt0SmkfYQcHoMWgi27QJrETjzNxRK+1OGZDDcOrKss0lGhneU5zWj+xaeWkMCr2Bm2Nz+LhTK3dNqj4SFbH8us8TUGdh8XJh+yEmlTFRqqHfUgs8RRb05KB3q0yuEyhDCg== Received: from CY4PR12MB1286.namprd12.prod.outlook.com (2603:10b6:903:44::19) by MW2PR12MB2522.namprd12.prod.outlook.com (2603:10b6:907:f::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.16; Thu, 17 Feb 2022 11:11:10 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com (52.132.153.150) by CY4PR12MB1286.namprd12.prod.outlook.com (10.168.170.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.15; Thu, 17 Feb 2022 11:11:09 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9d4e:649c:c6b8:b353]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9d4e:649c:c6b8:b353%5]) with mapi id 15.20.4975.017; Thu, 17 Feb 2022 11:11:09 +0000 From: Ori Kam To: Andrew Rybchenko , Alexander Kozyrev , "dev@dpdk.org" CC: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "ivan.malov@oktetlabs.ru" , "ferruh.yigit@intel.com" , "mohammad.abdul.awal@intel.com" , "qi.z.zhang@intel.com" , "jerinj@marvell.com" , "ajit.khaparde@broadcom.com" , "bruce.richardson@intel.com" Subject: RE: [PATCH v5 02/10] ethdev: add flow item/action templates Thread-Topic: [PATCH v5 02/10] ethdev: add flow item/action templates Thread-Index: AQHYHu7ugEqPN/FQi0aZfBJ6rJYJR6yONtMAgAC39YCAB0GLgIAAEGzQgAFYMQCAAAbiQA== Date: Thu, 17 Feb 2022 11:11:08 +0000 Message-ID: References: <20220209213809.1208269-1-akozyrev@nvidia.com> <20220211022653.1372318-1-akozyrev@nvidia.com> <20220211022653.1372318-3-akozyrev@nvidia.com> <0a823087-2421-9716-9f66-70be7b774ecd@oktetlabs.ru> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 02b143d8-bd30-4544-94d9-08d9f2063310 x-ms-traffictypediagnostic: CY4PR12MB1286:EE_|MW2PR12MB2522:EE_ x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: guo+YLokMdAf8Xfgtg3Xvbt4G5LtrrnZikhlzm3InYJzdmnL7JJnoC4PRbMc23w8egUF8gnBuulL0VSDyeReJ6jmwQRSStOexi7iW/5PhDZDG+8hpINB8X5xdI06m23fU2jkgEnV11dUB/pqrXmVDii4K9U3dXWrdSWwG2Cn9kSakx9JgzJ90Bhxg6G8Us7tEdexQ/g0Ywd8Hv94frLDd/5lF9RoE7y22Pzbk51s/hciNR5MsJMOR0YE5MDSM1l6E18wzF7jLYBo9HCtX2pT2ZkTQb0GMzpwStWBSDCgjpCAQYkumTw4f4g7cgR9RVkABZGofP7tcpV6r/IUGVX8deVhMVPxc05XRiPPfMR/xC7cUhm9jj4kISqThv9x5802Ux2xooJMEUsUuhpOlYZTKKuWGRFPXVVJpPVvh7vhawQk3yqEfDDzcGdfwdczwiW+5lZXCW3DD0RAB7mKCum2Ec/RSXy30CgJRo0SvzZoGOPeSl6nv/iYFpy5A9mx6bpCn0N0o13zuVLh0ePkDKaCQL9BU4Nho3kJemOyIfXlNWzutWjUjYn9AV5SjZnKUFJw/wd3Z458DYQgslwXlY1karzuVkpeG9qiGoyECKebVrnsT3rsLCPFYGol53mPm9LVkvTZ04Ij7DruYJMCt+KTVZrCZV9wwbHtvU7H11R+KqRwsqIQnVkGpfms2Oc5k54ZAxYXtBZ8uoQQzVnGwcZzeA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR12MB1286.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(7696005)(52536014)(53546011)(38070700005)(5660300002)(71200400001)(8936002)(6506007)(86362001)(64756008)(66946007)(66446008)(66476007)(66556008)(76116006)(8676002)(7416002)(122000001)(316002)(38100700002)(110136005)(4326008)(9686003)(508600001)(83380400001)(55016003)(33656002)(2906002)(54906003)(26005)(186003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NXBjSTRtcThpQ29HYThnY21xcGJWQkxjRkFlU0xZZWp6M3ZLTmhKNHJ5d3V6?= =?utf-8?B?U0JqdjUzZzFCN2hmRFdxd1JQeDhSaG9lSWJQeUVlSzhXK3NEZHp5bGV3WmI0?= =?utf-8?B?cWdhb0hDWVk1dmdNZWJlWlR5dXQrV0JIaVB6d00zb3BNMy9Mb0lUcnpRZmNh?= =?utf-8?B?S0hKcnJvdGJVQyt5cUR1cHorNVpxaHEzSk1PeC9xVXlmTUR1S3I0WXZ1bGRq?= =?utf-8?B?NlcxOXp5VERIc0FOK2c0eDVreGJFUTIraXluRkhDaFVkK2hPaFYrUWx3NXcy?= =?utf-8?B?L09ZTGJKdms1dm44WkN0Wkd3dkVjRjBmSGdTeWhqYlQwdnNmdmg4N0pVejZZ?= =?utf-8?B?akRIbWlCM1lMdEt4cGVsRnJ5UzJaMTdJQ1JVTzVPMGhEakM5WlR5SmpTSmlm?= =?utf-8?B?bm9xMWRlVWFkcVhsS09rS1lpMWhxTlBrR3hMOUFORFRXelhoNFZhRFFkNjFu?= =?utf-8?B?NE5JVFIyelVPK0o1ZDAxM25LNEFRRU1qZDBEVDhRQ2VwYmVBZE9aa0NCOUJM?= =?utf-8?B?WHhPSUZPTUwxdm9UY1gyY1Z4UWVubDNVWGNKWVhnZ3lmdlRGVjA2c0lMVmN5?= =?utf-8?B?clZSUGd4VHZ0RExNNm9WdzRuWWZwdmJvRTRFR3dLeFJWRFZXZDVldzdPLyt0?= =?utf-8?B?aUxReGNlb00wR0E5MDdnMTRQcGpaWUYzQWNVbnE4VVRFUytwZXIraHVmSTZD?= =?utf-8?B?M3czR290b3Y1K00ybW9Ba0owVmZKRlowTUpHQytqRzF4c3FBQkVhWVUzOFdu?= =?utf-8?B?Q0hBbU81RndRRkF6eHc1blB4ZnZFQmdMZSt5K3FreCtPRnloR1FKbnlXZDZ1?= =?utf-8?B?dEhCTWM1MnlaazdGbEVMU2RmNXVSTktRQ21RZEw4NXVyZHhRUFFocFBPUTNJ?= =?utf-8?B?azhLOVZaZ3I0dEx4T3Zha0xXSWxpbS9qTExxREtxN2lPTE5KU1FoNVdUeVlk?= =?utf-8?B?N09pemxMMitRb3ZtSHBwbzZyMjUvbHJLcjdaL0pqbERyQjI0b2hqbnU2ZXZR?= =?utf-8?B?WVE2L2kycGNKd3FBdFNnbERKakJFQ2VEUnl4WUorWDFjNVp1TExrTmN1ejl2?= =?utf-8?B?elVTY0U3cmljSzBYTGlVd3Rna0R0cXdqalhyWURLc3B1dGdBaGlSUVBBSEtV?= =?utf-8?B?a3gxQy9LUjZtSmtMc0hkZnRDa1doVlNmeXlUZk1oUkppLzRNTytNRGVYUy9M?= =?utf-8?B?ZFRXQUZ4MXpvNWM3ZkY1M0FGV3hrbkNqYVVRbHdjZSsvTEdma1Q0VzluWEFP?= =?utf-8?B?NHIvSlR4bTNjV1hkaHdNNzZOZGF0V01Zekp0VWNOY0MzK1k2VlR3blFpR0wv?= =?utf-8?B?dGhvR3d6cVdESGlyS25SbzlFV1BOb1JRVGdaN0dtQ1p5dlF3cGU1bDBneUly?= =?utf-8?B?eDhZNklRYnhsZDYxQTBHanJlQXpjQVNYbEt5SjJxcSs5Y3MxR2JEbjdTbVly?= =?utf-8?B?S0I4Q0tTWVVqaFJkamJmdEdpQ0lRMzl2VERYTDdFOFhIbXBIUEhsM3BhSWoz?= =?utf-8?B?YUNiVUZDVWhGRHp2QUxoaitLTVpwZnFJL2xnY1E0T1RwSHdJMG9mM3pVeFdS?= =?utf-8?B?cUFoNmswbUN5OGs5M0NzcVdXTk9KU2VjZzY4WVQwWklHaGl6Rk41MlAzK01G?= =?utf-8?B?a0M0Q01pRWV0aEVVdWRvVWV6N1luZmJEeGljaWZLUE9kMXBsM012cnNnbWVV?= =?utf-8?B?UTF2ZitMaXFtUVRYazFDV2pwOXBzNHovRFdYWGlpV3dFMUZVdWlHYW9ITnhP?= =?utf-8?B?Y252UWJybGdiRXRLMiswa2grZWpnRmZ5ZGVMeXhSbERxekZHa2VFWHE5U2lR?= =?utf-8?B?a2hDMzhTK1dueGUzWENQL3JSb3gvVlpiUEV6NVNCY0RZVUNnYlEwajNHQytT?= =?utf-8?B?TkFUM08vdVlJQmNaeHVkT2VqbjkxTTdna2N5YUNpSGVFY1VQUm5Db0J6TGJ3?= =?utf-8?B?UTVYMGQ1VGM4T1I0blBwQXovZzR1YXRuMlpibXUzV1RaaTgxM0J2VG4xRmdL?= =?utf-8?B?SGlvbTZ4SnVhN1VyNWtVYTBObXFPV0Vkai9CY0RacEhsUU43bll4VHNJcmdu?= =?utf-8?B?VDIvL1RsanZmR2M2emZQM2R1L2NFY3JleEg4aEpyMDRVc0d5TW54bTM1VU13?= =?utf-8?B?bzFwbzNYOW1FTU82V3dkdXprejhmMnFjVUNSZXdtR1NNMG5NTmdKTHBYMTZ6?= =?utf-8?B?L2c9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02b143d8-bd30-4544-94d9-08d9f2063310 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Feb 2022 11:11:08.8836 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sShZRIUPrNR/sKnxzeiIleQZunPd/0fIgi01zqYq5hPOYLQFJYEXLrNAFCotfkQ2PrHyCkRCUk07suFJItWy8w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2522 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 SGkgQW5kcmV3LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJl dyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBTZW50OiBUaHVy c2RheSwgRmVicnVhcnkgMTcsIDIwMjIgMTI6NDUgUE0NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2 NSAwMi8xMF0gZXRoZGV2OiBhZGQgZmxvdyBpdGVtL2FjdGlvbiB0ZW1wbGF0ZXMNCj4gDQo+IEhp IE9yaSwNCj4gDQo+IE9uIDIvMTYvMjIgMTc6MTgsIE9yaSBLYW0gd3JvdGU6DQo+ID4gSGkgQW5k cmV3LA0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEFu ZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+PiBTdWJq ZWN0OiBSZTogW1BBVENIIHY1IDAyLzEwXSBldGhkZXY6IGFkZCBmbG93IGl0ZW0vYWN0aW9uIHRl bXBsYXRlcw0KPiA+Pg0KPiA+PiBPbiAyLzEyLzIyIDAxOjI1LCBBbGV4YW5kZXIgS296eXJldiB3 cm90ZToNCj4gPj4+IE9uIEZyaSwgRmViIDExLCAyMDIyIDY6MjcgQW5kcmV3IFJ5YmNoZW5rbyA8 YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+IHdyb3RlOg0KPiA+Pj4+IE9uIDIvMTEvMjIg MDU6MjYsIEFsZXhhbmRlciBLb3p5cmV2IHdyb3RlOg0KPiA+Pj4+PiBUcmVhdGluZyBldmVyeSBz aW5nbGUgZmxvdyBydWxlIGFzIGEgY29tcGxldGVseSBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUN Cj4gPj4+Pj4gZW50aXR5IG5lZ2F0aXZlbHkgaW1wYWN0cyB0aGUgZmxvdyBydWxlcyBpbnNlcnRp b24gcmF0ZS4gT2Z0ZW50aW1lcyBpbiBhbg0KPiA+Pj4+PiBhcHBsaWNhdGlvbiwgbWFueSBmbG93 IHJ1bGVzIHNoYXJlIGEgY29tbW9uIHN0cnVjdHVyZSAodGhlIHNhbWUgaXRlbSBtYXNrDQo+ID4+ Pj4+IGFuZC9vciBhY3Rpb24gbGlzdCkgc28gdGhleSBjYW4gYmUgZ3JvdXBlZCBhbmQgY2xhc3Np ZmllZCB0b2dldGhlci4NCj4gPj4+Pj4gVGhpcyBrbm93bGVkZ2UgbWF5IGJlIHVzZWQgYXMgYSBz b3VyY2Ugb2Ygb3B0aW1pemF0aW9uIGJ5IGEgUE1EL0hXLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUg cGF0dGVybiB0ZW1wbGF0ZSBkZWZpbmVzIGNvbW1vbiBtYXRjaGluZyBmaWVsZHMgKHRoZSBpdGVt IG1hc2spIHdpdGhvdXQNCj4gPj4+Pj4gdmFsdWVzLiBUaGUgYWN0aW9ucyB0ZW1wbGF0ZSBob2xk cyBhIGxpc3Qgb2YgYWN0aW9uIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkDQo+ID4+Pj4+IHRvZ2V0 aGVyIGluIHRoZSBzYW1lIHJ1bGUuIFRoZSBzcGVjaWZpYyB2YWx1ZXMgZm9yIGl0ZW1zIGFuZCBh Y3Rpb25zIHdpbGwNCj4gPj4+Pj4gYmUgZ2l2ZW4gb25seSBkdXJpbmcgdGhlIHJ1bGUgY3JlYXRp b24uDQo+ID4+Pj4+DQo+ID4+Pj4+IEEgdGFibGUgY29tYmluZXMgcGF0dGVybiBhbmQgYWN0aW9u cyB0ZW1wbGF0ZXMgYWxvbmcgd2l0aCBzaGFyZWQgZmxvdyBydWxlDQo+ID4+Pj4+IGF0dHJpYnV0 ZXMgKGdyb3VwIElELCBwcmlvcml0eSBhbmQgdHJhZmZpYyBkaXJlY3Rpb24pLiBUaGlzIHdheSBh IFBNRC9IVw0KPiA+Pj4+PiBjYW4gcHJlcGFyZSBhbGwgdGhlIHJlc291cmNlcyBuZWVkZWQgZm9y IGVmZmljaWVudCBmbG93IHJ1bGVzIGNyZWF0aW9uIGluDQo+ID4+Pj4+IHRoZSBkYXRhcGF0aC4g VG8gYXZvaWQgYW55IGhpY2N1cHMgZHVlIHRvIG1lbW9yeSByZWFsbG9jYXRpb24sIHRoZSBtYXhp bXVtDQo+ID4+Pj4+IG51bWJlciBvZiBmbG93IHJ1bGVzIGlzIGRlZmluZWQgYXQgdGhlIHRhYmxl IGNyZWF0aW9uIHRpbWUuDQo+ID4+Pj4+DQo+ID4+Pj4+IFRoZSBmbG93IHJ1bGUgY3JlYXRpb24g aXMgZG9uZSBieSBzZWxlY3RpbmcgYSB0YWJsZSwgYSBwYXR0ZXJuIHRlbXBsYXRlDQo+ID4+Pj4+ IGFuZCBhbiBhY3Rpb25zIHRlbXBsYXRlICh3aGljaCBhcmUgYm91bmQgdG8gdGhlIHRhYmxlKSwg YW5kIHNldHRpbmcgdW5pcXVlDQo+ID4+Pj4+IHZhbHVlcyBmb3IgdGhlIGl0ZW1zIGFuZCBhY3Rp b25zLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS296eXJldiA8 YWtvenlyZXZAbnZpZGlhLmNvbT4NCj4gPj4+Pj4gQWNrZWQtYnk6IE9yaSBLYW0gPG9yaWthQG52 aWRpYS5jb20+DQo+ID4+DQo+ID4+IFtzbmlwXQ0KPiA+Pg0KPiA+DQo+ID4gW1NuaXBdDQo+ID4N Cj4gPj4+Pj4gKyAqDQo+ID4+Pj4+ICsgKiBUaGUgcGF0dGVybiB0ZW1wbGF0ZSBkZWZpbmVzIGNv bW1vbiBtYXRjaGluZyBmaWVsZHMgd2l0aG91dCB2YWx1ZXMuDQo+ID4+Pj4+ICsgKiBGb3IgZXhh bXBsZSwgbWF0Y2hpbmcgb24gNSB0dXBsZSBUQ1AgZmxvdywgdGhlIHRlbXBsYXRlIHdpbGwgYmUN Cj4gPj4+Pj4gKyAqIGV0aChudWxsKSArIElQdjQoc291cmNlICsgZGVzdCkgKyBUQ1Aoc19wb3J0 ICsgZF9wb3J0KSwNCj4gPj4+Pj4gKyAqIHdoaWxlIHZhbHVlcyBmb3IgZWFjaCBydWxlIHdpbGwg YmUgc2V0IGR1cmluZyB0aGUgZmxvdyBydWxlIGNyZWF0aW9uLg0KPiA+Pj4+PiArICogVGhlIG51 bWJlciBhbmQgb3JkZXIgb2YgaXRlbXMgaW4gdGhlIHRlbXBsYXRlIG11c3QgYmUgdGhlIHNhbWUN Cj4gPj4+Pj4gKyAqIGF0IHRoZSBydWxlIGNyZWF0aW9uLg0KPiA+Pj4+PiArICoNCj4gPj4+Pj4g KyAqIEBwYXJhbSBwb3J0X2lkDQo+ID4+Pj4+ICsgKiAgIFBvcnQgaWRlbnRpZmllciBvZiBFdGhl cm5ldCBkZXZpY2UuDQo+ID4+Pj4+ICsgKiBAcGFyYW1baW5dIHRlbXBsYXRlX2F0dHINCj4gPj4+ Pj4gKyAqICAgUGF0dGVybiB0ZW1wbGF0ZSBhdHRyaWJ1dGVzLg0KPiA+Pj4+PiArICogQHBhcmFt W2luXSBwYXR0ZXJuDQo+ID4+Pj4+ICsgKiAgIFBhdHRlcm4gc3BlY2lmaWNhdGlvbiAobGlzdCB0 ZXJtaW5hdGVkIGJ5IHRoZSBFTkQgcGF0dGVybiBpdGVtKS4NCj4gPj4+Pj4gKyAqICAgVGhlIHNw ZWMgbWVtYmVyIG9mIGFuIGl0ZW0gaXMgbm90IHVzZWQgdW5sZXNzIHRoZSBlbmQgbWVtYmVyIGlz IHVzZWQuDQo+ID4+Pj4NCj4gPj4+PiBJbnRlcnByZXRhdGlvbiBvZiB0aGUgcGF0dGVybiBtYXkg ZGVwZW5kIG9uIHRyYW5zZmVyIHZzIG5vbi10cmFuc2Zlcg0KPiA+Pj4+IHJ1bGUgdG8gYmUgdXNl ZC4gSXQgaXMgZXNzZW50aWFsIGluZm9ybWF0aW9uIGFuZCB3ZSBzaG91bGQgcHJvdmlkZSBpdA0K PiA+Pj4+IHdoZW4gcGF0dGVybiB0ZW1wbGF0ZSBpcyBjcmVhdGVkLg0KPiA+Pj4+DQo+ID4+Pj4g VGhlIGluZm9ybWF0aW9uIGlzIHByb3ZpZGVkIG9uIHRhYmxlIHN0YWdlLCBidXQgaXQgaXMgdG9v IGxhdGUuDQo+ID4+Pg0KPiA+Pj4gV2h5IGlzIGl0IHRvbyBsYXRlPyBBcHBsaWNhdGlvbiBrbm93 cyB3aGljaCB0ZW1wbGF0ZSBnb2VzIHRvIHdoaWNoIHRhYmxlLg0KPiA+Pj4gQW5kIHRoZSBwYXR0 ZXJuIGlzIGdlbmVyaWMgdG8gYWNjb21tb2RhdGUgYW55dGhpbmcsIHVzZXIganVzdCBuZWVkIHRv IHB1dCBpdA0KPiA+Pj4gaW50byB0aGUgcmlnaHQgdGFibGUuDQo+ID4+DQo+ID4+IEJlY2F1c2Ug aXQgaXMgbW9yZSBjb252ZW5pZW50IHRvIGhhbmRsZSBpdCB3aGVuIGluZGl2aWR1YWwNCj4gPj4g dGVtcGxhdGUgaXMgcHJvY2Vzc2VkLiBPdGhlcndpc2UgZXJyb3IgcmVwb3J0aW5nIHdpbGwgYmUN Cj4gPj4gY29tcGxpY2F0ZWQgc2luY2UgaXQgY291bGQgYmUganVzdCBvbmUgdGVtcGxhdGUgd2hp Y2ggaXMNCj4gPj4gd3JvbmcuDQo+ID4+DQo+ID4+IE90aGVyd2lzZSwgSSBzZWUgbm8gcG9pbnQg dG8gaGF2ZSBkcml2ZXIgY2FsbGJhY2tzDQo+ID4+IHRlbXBsYXRlIGNyZWF0aW9uIEFQSS4gSSBj YW4gZG8gbm90aGluZyBoZXJlIHNpbmNlDQo+ID4+IEkgaGF2ZSBubyBlbm91Z2ggY29udGV4dC4g V2hhdCdzIHRoZSBwcm9ibGVtIHRvIGFkZA0KPiA+PiB0aGUgY29udGV4dD8NCj4gPj4NCj4gPg0K PiA+IFRoZSBpZGVhIGlzIHRoYXQgdGhlIHNhbWUgdGVtcGxhdGUgY2FuIGJlIHVzZWQgaW4gZGlm ZmVyZW50DQo+ID4gZG9tYWlucyAoaW5ncmVzcy9lZ3Jlc3MgYW5kIHRyYW5zZmVyKQ0KPiA+IE1h eSBiZSB3ZSBjYW4gYWRkIG9uIHdoaWNoIGRvbWFpbnMgdGhpcyB0ZW1wbGF0ZSBpcyBleHBlY3Rl ZCB0byBiZSB1c2VkLg0KPiA+IFdoYXQgZG8geW91IHRoaW5rPw0KPiANCj4gSSBzZWUuIElNSE8g aWYgYXBwbGljYXRpb24gaXMgZ29pbmcgdG8gdXNlIHRoZSBzYW1lIHRlbXBsYXRlDQo+IGluIHRy YW5zZmVyIGFuZCBub24tdHJhbnNmZXIgcnVsZXMsIGl0IGlzIG5vdCBhIHByb2JsZW0gdG8NCj4g cmVnaXN0ZXIgaXQgdHdpY2UuIE90aGVyd2lzZSwgaWYgUE1EIG5lZWRzIHRoZSBpbmZvcm1hdGlv biBhbmQNCj4gdGVtcGxhdGUgaGFuZGxpbmcgZGlmZmVycyBhIGxvdCBpbiB0cmFuc2ZlciBhbmQg bm9uLXRyYW5zZmVyDQo+IGNhc2UsIGhhbmRsaW5nIHNob3VsZCBiZSBwb3N0cG9uZWQgYW5kIHNo b3VsZCBiZSBkb25lIG9uDQo+IHRhYmxlIGRlZmluaXRpb24uIEluIHRoaXMgY2FzZSwgd2UgY2Fu bm90IHByb3ZpZGUgZmVlZGJhY2sNCj4gdG8gYXBwbGljYXRpb24gd2hpY2ggdGVtcGxhdGUgaXQg Y2Fubm90IGhhbmRsZS4gRXZlbiBpZiB0aGUNCj4gaW5mb3JtYXRpb24gaXMgc29tZWhvdyBlbmNv ZGVkIGluIGZsb3cgZXJyb3IsIGVuY29kaW5nIG11c3QNCj4gYmUgZGVmaW5lZCBhbmQgaXQgc3Rp bGwgY291bGQgYmUgaW5jb252ZW5pZW50IGZvciB0aGUNCj4gYXBwbGljYXRpb24gdG8gaGFuZGxl IGl0Lg0KPiANCj4gWWVzLCBJIGFncmVlIHRoYXQgaXQgaXMgYmV0dGVyIHRvIGZ1bGx5IHNwZWNp ZnkgZG9tYWluDQo+IGluY2x1ZGluZyBpbmdyZXNzIGFuZCBlZ3Jlc3MsIG5vdCBqdXN0IHRyYW5z ZmVyL25vbi10cmFuc2Zlci4NCj4gDQpTbyBsZXRzIGFkZCB0aGUgMyBkb21haW5zLg0KDQo+IEFu ZHJldy4NCg0KVGhhbmtzLA0KT3JpDQo=