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 ACD6AA0350; Fri, 21 Jan 2022 15:20:26 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1FE054275D; Fri, 21 Jan 2022 15:20:26 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2081.outbound.protection.outlook.com [40.107.223.81]) by mails.dpdk.org (Postfix) with ESMTP id 3BBB740042 for ; Fri, 21 Jan 2022 15:20:24 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yg38uwLjAHpgZEU3BSYedSJG9ypXeh6irMbvuR8EbYFblZEK4b6taKQ2rNuJlDZY6Tpmk3TdiTRUl1L1NJGloBzOihtCISEUj16sNcaiB3z6fLzn7LDFEaDAEOL5t6Lwc3PjGqK4locZ6i1y0pExLTWvnngfHEjdnrBJtSjEhvYFzTn0ywBn5r1Z+sl2enj74gii9fdps25qhtek144mnyu+eSe/ss75Nno5tOXdQx6mhjXpoF37dpmyEmEbECY5sRNxwtefxAnz8AHKjN7OnMIDUrS18Yf2TWTrRk+NbFECTIrdhujM6Dx45zBkNAmOt6fHyt2rwfaQSjFKlBxbpQ== 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=Z6LSjbqB2n/ZTWzDeeGaEdfw9xy0/govdrLl0saGFWU=; b=mcAp86x25TBqm7qprQJoH1xQDHDQcBHUYbiyG3nQIn7k62C+66qxZm7SPFpcibT4uvMxP45VeY1OV9Oq4aJhUq8oo6NeOziaDo5cz88SOOo14J+TQ5xogVDOG/ZAr5ab5VuaOWuXsSrqRBNNKM7fmlPiGgz97ewLOx3s3xVKBgRW1uBS4W/VvYcKsfmrvMWDxh4vQnjI98zef5FJzIOlKg9DR4fAxCkxcbWJJu+AJjrQfjSd9VvzdscPb8ryCDhIrqWo8y4QeA09HdjFeDfzTU1IJLSV2zjntH0lqw/Kx9v5kz/4h3QCe+7ugaWFNDgAOjjfWmTbJqMA1VmB//ENrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=Z6LSjbqB2n/ZTWzDeeGaEdfw9xy0/govdrLl0saGFWU=; b=tLOrk3VA1KgHqZyVc3bBeXLZQdLGGQ80oRVN/TWtV5JpEqsgGT0rK1o60Acj5s5a9YRlm2KGA2Uo0e9LX3Ivm72KVTy3nGxuAw1pVluYcPwYMt921+pIB4XayuVKRt2CHu7giLcaPx36PSz7fGFh8OVXQvBx7hQ0szFpWz6KX4Dddwb3q/fZAsc5/Icssv8ULHpKSAq0uZ6nFm0RC8u200NbHRUkW54BOBuyDMc6aKkFgVUCaPepDpYKiNjWL9jjkDzhYs8xJptny5BY4+iCgYBAySZYgfYBG3Zab9cr/RVAfUeTf9JTumBuht7avjZ/33uq/oFKleR6GwIVSVZObw== Received: from BN9PR12MB5366.namprd12.prod.outlook.com (2603:10b6:408:103::20) by DM6PR12MB2842.namprd12.prod.outlook.com (2603:10b6:5:4c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.12; Fri, 21 Jan 2022 14:20:22 +0000 Received: from BN9PR12MB5366.namprd12.prod.outlook.com ([fe80::8820:e00a:5ff3:4da2]) by BN9PR12MB5366.namprd12.prod.outlook.com ([fe80::8820:e00a:5ff3:4da2%9]) with mapi id 15.20.4888.018; Fri, 21 Jan 2022 14:20:22 +0000 From: "Xueming(Steven) Li" To: "jerinjacobk@gmail.com" , "harry.van.haaren@intel.com" CC: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "dev@dpdk.org" , "ronan.randles@intel.com" Subject: Re: [PATCH 05/12] gen: add raw packet data API and tests Thread-Topic: [PATCH 05/12] gen: add raw packet data API and tests Thread-Index: AQHX8PTGyNnJ6l+wtk+OypaDH97M7qwzgAAAgAMTy4CABNNIAIAyWwkA Date: Fri, 21 Jan 2022 14:20:22 +0000 Message-ID: <1dd9442c83f6cc06657c99411965d4840a58b4b1.camel@nvidia.com> References: <20211214141242.3383831-1-ronan.randles@intel.com> <20211214141242.3383831-6-ronan.randles@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.42.2 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: bb744f61-cccc-47f1-6e6c-08d9dce928f3 x-ms-traffictypediagnostic: DM6PR12MB2842:EE_ x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,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: 2WCL6ols1AKFMQKdvAUzCzEtxSYxBpFvTFoaAi9VenRDEpKXyc2t9u9TEvmLJihCZX50Z9IT/K/WoE/25qJ8KpHb5Xx/gyv2H7NXVMjQBP7FAv+nUTJ0XGtdfMRy90b8yhCbJQlYNbqZ7i3nWe4hKnw6zlgFRHoGRwY94BdjskY0kelp1K8i3fnivW2kxr81amKkIwDUXp9QZVmJmLbxECbRlOs9GLDP5O2uU8ibnayUVHX27rGU/Q/lTHsKb6sFIS8vq/OMUkz85a/uM4wWljBseq2IlcyeHGpiF+LO5KliX9po40rXBraXGaB8dSq/pqwpYMPoNU4iahFDXG/gqI1NNzUNTt/L2W3yXYex21evjVfl5G86rWPfWdDzhmP3j2VtgWSoyQzH3RFeAZc2vFoUzSRT7p5U0IyH1jNHEtamWO3UXobLqQdepwhpBwSfM+VVCqKbcN4Bea/7cfxSDsdrBG7eqqmYqHh/IA4y1qUjc4omX8xk3VkrdMXxaGIX1Vv/7u/giA0M9ZqrJkXI+0N01ORgvutznEp40vGHC6jIS4Y3d6DJhGpzRy9VcY3RqGJ2aGUGmwrOOcS1azmmqqc6jo/ybYEsJWq/k1h4bqy4CBOrt6lla0TRD2NoNLuyefh12dRUtaL/al31+fK/jFlWNfIFijutySNHCw1OaU27q6r0pLWXFlWj6lF/Tw7iz6Y3Ihb+/HqkUGHv1YMg+v3C2L5/BB8+GMxpL3gxV/laW/s8r4YIL0mw3F5GEfTOyduTNxQzWDZxroTVQL6EkzJtU4D5O6UolgPSWY8OA4M= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR12MB5366.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(36756003)(4326008)(2906002)(5660300002)(83380400001)(38070700005)(86362001)(45080400002)(6486002)(6512007)(64756008)(2616005)(316002)(54906003)(966005)(4001150100001)(8936002)(508600001)(110136005)(66446008)(66476007)(186003)(71200400001)(76116006)(122000001)(38100700002)(66946007)(66556008)(91956017)(53546011)(6506007)(8676002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?endZSWJnSHlKbXhsQ3FSVHZoMHFDbmZESHFzaExYME5yZFZFcGx0Q0g5ME9v?= =?utf-8?B?NW5ONHpubk1TSERCWVZBQm5lODNISU5Nc3JRaVNrYUR1STFLUk42QXVBL0Ja?= =?utf-8?B?Tm5XbDFoblVvOUN0TndCNEFxVi83dzJ4eW5HeVlkdDJGR2NmRUFDRlJhV1Fu?= =?utf-8?B?WEFCZFRTTkJZclBoUDU2cDY5dXhQei9FNDdiR1VZT2lsREtOWlJyamlpaTMz?= =?utf-8?B?ZzVrcklFRWpOaFpaOEljVk8rOFo1d1ZOLzJXWHVxT2Z0R1p0eFRWODZFT0Vk?= =?utf-8?B?NEYvbVBNeEI2R0s1RklNWDdicDRuOE9VTjR6dHNDQXdQMnNQUGk0VUM2aXpW?= =?utf-8?B?Zjh2TXY4eHVMYVg3OUx1MWRSMFJ0MjB6SCt5VXNqSGp6ZGFrdllPR2pLVjFZ?= =?utf-8?B?ejdTd2NsVTdhQnhsUkNDK01CVnZLRVVGNzBmNlVxaTBxS2EySWNkczR0aWpS?= =?utf-8?B?L3ZtNloxMmM3UTMvOEpEcExwU2ZBTzg4Wk9LNnh2RC9STmFBSkQrVzNGT3NW?= =?utf-8?B?YjNsVTVRT2pEMTduT29Wb2RvZTk1VXBDckhXekJUTTRsR1B6Z25FTmR6MDNT?= =?utf-8?B?ajV4Z2hCVVM3VDJjc2VBR2IvVXlrNFlxd1RoWTFsSnF1RWg4VTNGRDNXSjRX?= =?utf-8?B?Nm9WRFJDdUwvajRkd1dTTHNWNTI0MG1STWU2WlN0cGZBc2I1NmZabkR0N2Y2?= =?utf-8?B?UXI0cWdiTHc4THJUemRkM3AxbkxhYktyWi9CSWpqQVRWMDRLRjdKMUR3Ymdr?= =?utf-8?B?VW9oa3pQR3NLMFJWNXkyWVgzVWZ2dUhiMzZjVlRKam4yNTRFZFlEdEk2YXp1?= =?utf-8?B?MGltL00rRHlDcUgzdk82aXNUN2dmTmoyWElhdUJPWWhFcThweGFpRlZhYXoz?= =?utf-8?B?ZUI5Uzdudi9nemxGWWxmVkNCd0VmaDRMWWNRZVhPN0hDMzZtQVdBaXZZNG9I?= =?utf-8?B?dFJZUFhwVzlpaGFSdFNGc1BkcTNWOGJXT3ljWnpLa0dYRmlUakM4U09hYktu?= =?utf-8?B?SFVSMnZmYTZXNGVqRVAwYlpCWStncktscmxZZy9XQXo2NlRUUGFyNWs2d0tU?= =?utf-8?B?WlRqeERXMHdVN1k3SVQ4ampuMW5aalJLRHB5aG1XMEFIWVRJSDkyL3NRSE1M?= =?utf-8?B?UmVFam93c0lINWV5RDQ0NkxORDRuT1dNUzh3RnNaU2RkOWJWRkxzNldseU85?= =?utf-8?B?UkdJZWd1REt3SGZkUXdIWFFHYW10dktZL1VxQ0NrUTF3RlVzR3dpMHpSTzBZ?= =?utf-8?B?Q1k5ZkdqcHVjUHdxTTd4a21NVkY5NEhVbnl1eWNhZGJmU0VBQ2h5QlBVblU0?= =?utf-8?B?RmF6ZndMU3ErT3BDdkZ1YnZFV3pVbzVWcWVOK1ZBdGZLdzBoL09PVnFyNXhm?= =?utf-8?B?OE9RbkQ4TVVWd2NmRmVaM0lmUUN0RjB5ZWlLd1ZhN0J4dlNsM2NVWGdRZWJm?= =?utf-8?B?NDhVV1VEUmxoVlhSamdKZ2IwMGNjUTJKVXJ0dEh5cm1qR0QzK3pmdlcrQkkr?= =?utf-8?B?b0Z5UTJ4SVdZeVUrbjdaZytCc3JvdDk0ZjhLNVRHOTFyZUd0ZHc3MFpQdUtY?= =?utf-8?B?SExFdXBYb21aRVFtYVE1UHd6cUIxbndSUHBxOVlEYkw5dHVka3Nyd0trYjFi?= =?utf-8?B?anpRLzhZeW1Ja05aUXMrT1RVNnNFblBaNTdzdVNsMmVLSnpNaDRTWU14QzRs?= =?utf-8?B?RlI3bGwraTdLUEQ2WjlOOGduK2Y5bG1nMHQ5V0JSdUNqajBrajN3UkNMdlVD?= =?utf-8?B?NmNqUjQrMWF5T0duOUtoK1R3WkZONTJIZVNoQ1BpOGNGMUt3RGV4eHlEdzc5?= =?utf-8?B?TmtaeGFWVUNpeXBPNGZ4YW5NTjhjV0MxZStoSWY0dzlKR1k2eEIwSzFRNFVy?= =?utf-8?B?RERyaE4yNFBnYTZQeXZ6eFlFclpqV0w4MFFuMjI2TDZPT0N6N1lXbXE1T3dj?= =?utf-8?B?M3N3Wk9mVVlJTlpTZXNiK3VmMCtKY3NzczhmdHlCNlgxK25jdnRnMDhhM0hp?= =?utf-8?B?L3JNakhFMzliNlpsdkQxTFk1M0VvQUlxMzEwcW5pUFlIWDhKNHJxNjd0YnZR?= =?utf-8?B?V1liUmZzL2RUdDJKbTBsaTQwUnNwM1pmS0dVdHNEL3BUek5aaXFoRmV4cXVS?= =?utf-8?B?aFZraEJOMGZLQ1hRcVZNWlNNTE1sMVA4bUFOenZsZFdGVGkxazhoK0NRY29h?= =?utf-8?B?VVdycmlMNFB1Q2U5WGEvM0RWMnI2ZEEvb1d3K3pPTVdhREVCMlE2VmNQSWxV?= =?utf-8?Q?KOvpfJDLyO+lMQtTeSwoyPcUhgqEg5Eyr20rNLpJyc=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <4E759348EA609841807496975310D6E7@namprd12.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5366.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb744f61-cccc-47f1-6e6c-08d9dce928f3 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2022 14:20:22.1387 (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: iesxbAKGIoVa5nZX/Il7j/1dQa2ZRHNiEQnmOUlNbEmie54kE6f/8/GJMZJh8IacrPomgAYJC1+JkK7ECIaiLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2842 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 T24gTW9uLCAyMDIxLTEyLTIwIGF0IDE4OjUxICswNTMwLCBKZXJpbiBKYWNvYiB3cm90ZToNCj4g T24gRnJpLCBEZWMgMTcsIDIwMjEgYXQgNToxMCBQTSBWYW4gSGFhcmVuLCBIYXJyeQ0KPiA8aGFy cnkudmFuLmhhYXJlbkBpbnRlbC5jb20+IHdyb3RlOg0KPiA+IA0KPiA+ICtDQyBUaG9tYXM7DQo+ ID4gDQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogSmVyaW4g SmFjb2IgPGplcmluamFjb2JrQGdtYWlsLmNvbT4NCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgRGVj ZW1iZXIgMTUsIDIwMjEgMTI6NDEgUE0NCj4gPiA+IFRvOiBSYW5kbGVzLCBSb25hbiA8cm9uYW4u cmFuZGxlc0BpbnRlbC5jb20+DQo+ID4gPiBDYzogZHBkay1kZXYgPGRldkBkcGRrLm9yZz47IFZh biBIYWFyZW4sIEhhcnJ5DQo+ID4gPiA8aGFycnkudmFuLmhhYXJlbkBpbnRlbC5jb20+DQo+ID4g PiBTdWJqZWN0OiBSZTogW1BBVENIIDA1LzEyXSBnZW46IGFkZCByYXcgcGFja2V0IGRhdGEgQVBJ IGFuZCB0ZXN0cw0KPiA+ID4gDQo+ID4gPiBPbiBUdWUsIERlYyAxNCwgMjAyMSBhdCA3OjQzIFBN IFJvbmFuIFJhbmRsZXMgPHJvbmFuLnJhbmRsZXNAaW50ZWwuY29tPg0KPiA+ID4gd3JvdGU6DQo+ ID4gPiA+IA0KPiA+ID4gPiBGcm9tOiBIYXJyeSB2YW4gSGFhcmVuIDxoYXJyeS52YW4uaGFhcmVu QGludGVsLmNvbT4NCj4gPiANCj4gPiA8c25pcCBzb21lIHBhdGNoIGNvbnRlbnRzPg0KPiA+IA0K PiA+ID4gPiArICAgICAgIGNvbnN0IHVpbnQzMl90IGJhc2Vfc2l6ZSA9IGdlbi0+YmFzZV9wa3Qt PnBrdF9sZW47DQo+ID4gPiA+ICsgICAgICAgY29uc3QgdWludDhfdCAqYmFzZV9kYXRhID0gcnRl X3BrdG1idWZfbXRvZChnZW4tPmJhc2VfcGt0LCB1aW50OF90DQo+ID4gPiAqKTsNCj4gPiA+IA0K PiA+ID4gSSB0aGluaywgdGhlIHZlcnkgbmV4dCBmZWF0dXJlIHdpbGwgYmUgZ2VuZXJhdGluZyBw YWNrZXRzIGZvcg0KPiA+ID4gaW5jcmVtZW50aW5nIElQIGFkZHJlc3NlcyBvciBzby4NCj4gPiAN Cj4gPiBIYWgsIHllcyEgSXTigJlzIGEgbG9naWNhbCBuZXh0IHN0ZXAsIGFuZCBpbmRlZWQgd2Ug aGF2ZSBQT0MgY29kZSBpbnRlcm5hbGx5IHRoYXQgUm9uYW4NCj4gPiBhbmQgSSBoYXZlIHdvcmtl ZCBvbiB0aGF0IGRvZXMgdGhpcyA6KSBJJ3ZlIGJlZW4gdXNpbmcgdGhpcyBpbnRlcm5hbCBQT0Mg b2YNCj4gPiB0ZXN0aW5nIG9mIE9WUyBmb3IgfiBhIHllYXIgbm93LCBhbmQgaXQgcHJvdmlkZXMg YSBwcmV0dHkgbmljZSB3b3JrZmxvdyBmb3IgbWUuDQo+ID4gDQo+ID4gPiBJbiB0aGlzIGNhc2Us IG9uZSBwYWNrZXQtYmFzZWQgdGVtcGxhdGUgd2lsbCBub3Qgd29yay4NCj4gPiANCj4gPiBXaHkg bm90PyBJIGFncmVlIHRoYXQgInByZS1jYWxjdWxhdGluZyIgYWxsIHBhY2tldHMgd2lsbCBub3Qg d29yaywgYnV0IHRoZSBhcHByb2FjaA0KPiA+IHdlIGhhdmUgdGFrZW4gZm9yIHRoaXMgbGlicmFy eSBpcyBkaWZmZXJlbnQuIFNlZSBiZWxvdzsNCj4gPiANCj4gPiA+IE1heSB3ZSB3b3J0aCBjb25z aWRlciB0aGF0IHVzZSBjYXNlIGludG8gQVBJIGZyYW1ld29yayBmaXJzdCBhbmQgYWRkIHN1cHBv cnQNCj4gPiA+IGxhdGVyIGZvciBpbXBsZW1lbnRhdGlvbiBhcyBpdCBtYXkgY2hhbmdlIHRoZSBj b21wbGV0ZSBsYW5kIHNwYWNlIG9mIEFQSSB0byBoYXZlDQo+ID4gPiBiZXR0ZXIgcGVyZm9ybWFu Y2UuIE9wdGlvbnMgbGlrZSBzdHJ1Y3QgcnRlX2dlbiBsb2dpY2FsIG9iamVjdCBjYW4gaGF2ZQ0K PiA+ID4gTiB0ZW1wbGF0ZXMgaW5zdGVhZCBvZiBvbmUgaXMgYW4gb3B0aW9uIG9uIHRoZSB0YWJs ZS4gOi0pDQo+ID4gDQo+ID4gQWdyZWUgLSBtb3JlIGNvbXBsZXggdXNhZ2VzIGhhdmUgYmVlbiBk ZXNpZ25lZCBmb3IgdG9vLiBMZXQgbWUgZXhwbGFpbjsNCj4gPiANCj4gPiAxKSBBIHNpbmdsZSBn ZW4gaW5zdGFuY2UgdXNlcyBhIHNpbmdsZSB0ZW1wbGF0ZSwgYW5kIGhhcyAibW9kaWZpZXJzIiB0 aGF0IGFsbG93DQo+ID4gbWFuaXB1bGF0aW9uIG9mIHRoZSBwYWNrZXQgYmVmb3JlIHNlbmRpbmcu IFRoZSBnZW4tPmJhc2VfcGt0IGlzIGNvcGllZCB0byB0aGUNCj4gPiBkZXN0aW5hdGlvbiBtYnVm LCBhbmQgdGhlbiB1cGRhdGVkIGJ5IHRoZSBtb2RpZmllcnMuIFRoaXMgYXBwcm9hY2ggaXMgbXVj aCBiZXR0ZXINCj4gPiB0byBhbGxvdyBmb3IgaHVnZSBmbG93LWNvdW50cyAoPiAxIG1pbGxpb24/ KSBhcyBwcmUtY2FsY3VsYXRpbmcgYW5kIHN0b3JpbmcgMSBtaWxsaW9uDQo+ID4gcGFja2V0cyBp cyBhIHdhc3RlIG9mIG1lbW9yeSwgYW5kIGNhdXNlcyBhIGxvdCBvZiBtZW0tSU8gZm9yIHRoZSBk YXRhcGF0aCBjb3JlLg0KPiA+IA0KPiA+IDIpIFRoZSAibW9kaWZpZXJzIiBhcHByb2FjaCBhbGxv d3MgYW55IG51bWJlciBvZiB0aGluZ3MgdG8gYmUgY2hhbmdlZCwgd2l0aCBsaXR0bGUNCj4gPiBt ZW0tSU8sIGFuZCB2YXJpYWJsZSBDUFUgY3ljbGUgY29zdCBiYXNlZCBvbiB0aGUgbW9kaWZpZXJz IHRoZW1zZWx2ZXMuDQo+ID4gSWYgdGhlIENQVSBjeWNsZSBjb3N0IG9mIGdlbmVyYXRpbmcgcGFj a2V0cyBpcyB0b28gaGlnaCwganVzdCBhZGQgbW9yZSBjb3JlcyA6KQ0KPiA+IA0KPiA+IDMpIFRo ZXJlIGFyZSBhbHNvIHNvbWUgc21hcnRzIHdlIGNhbiBhcHBseSBmb3IgcHJlLWNhbGN1bGF0aW5n IG9ubHkgYSBzbWFsbCBhbW91bnQgb2YNCj4gPiBkYXRhIHBlciBwYWNrZXQgKGUuZy4gdW5pZm9y bWx5LXJhbmRvbSBkaXN0cmlidXRlZCBzcmMgaXApLiBUaGUgbWVtb3J5IGZvb3RwcmludCBpcw0K PiA+IGxvd2VyIHRoYW4gcHJlLWNhbGMgb2Ygd2hvbGUgcGFja2V0cywgYW5kIHRoZSBydW50aW1l IG92ZXJoZWFkIG9mIHVuaWZvcm0tcmFuZG9tDQo+ID4gaXMgbW92ZWQgdG8gY29uZmlndXJlIHRp bWUgaW5zdGVhZCBvZiBvbiB0aGUgZGF0YXBhdGguDQo+ID4gDQo+ID4gNCkgRHluYW1pY2FsbHkg Z2VuZXJhdGluZyBwYWNrZXRzIGJ5IG1vZGlmaWNhdGlvbiBvZiB0ZW1wbGF0ZXMgYWxsb3dzIGZv ciBjb29sIHRoaW5ncw0KPiA+IHRvIGJlIGFkZGVkLCBlLmcuIGFkZGluZyB0aW1lc3RhbXBzIHRv IHBhY2tldHMsIGFuZCBjYWxjdWxhdGluZyBsYXRlbmN5IGNhbg0KPiA+IGJlIGRvbmUgdXNpbmcg dGhlIG1vZGlmaWVyIGNvbmNlcHQgYW5kIGEgcHJvdG9jb2wgc3RyaW5nICJFdGhlcigpL0lQKCkv VURQKCkvVFNDKCkiLg0KPiA+IElmIHRoZSBwYWNrZXQgaXMgYmVpbmcgZGVjYXBwZWQgYnkgdGhl IHRhcmdldCBhcHBsaWNhdGlvbiwgdGhlIHN0cmluZyBwYXJhbXMgY2FuIHByb3ZpZGUNCj4gPiBj b250ZXh0IGZvciB3aGVyZSB0byAicmV0cmlldmUiIHRoZSBUU0MgZnJvbSBvbiBSWCBpbiB0aGUg Z2VuZXJhdG9yOiAiVFNDKHJ4X29mZnNldD0zMCkiLg0KPiA+IEkndmUgZm91bmQgdGhpcyBhcHBy b2FjaCB0byBiZSB2ZXJ5IGZsZXhpYmxlIGFuZCBuaWNlLCBzbyBhbSBhIGJpZyBmYW4gOikNCj4g PiANCj4gPiA1KSBJbiBvcmRlciB0byBoYXZlIG11bHRpcGxlIHN0cmVhbXMgb2YgdG90YWxseS1k aWZmZXJlbnQgdHJhZmZpYyB0eXBlcyAocmVhZCAiZnJvbSBtdWx0aXBsZSB0ZW1wbGF0ZXMiKQ0K PiA+IHRoZSB1c2VyIGNhbiBpbml0aWFsaXplIG11bHRpcGxlIHJ0ZV9nZW4gaW5zdGFuY2VzLiBU aGlzIGFsbG93cyBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIG11bHRpLXN0cmVhbSB0cmFmZmlj DQo+ID4gdG8gYWNoaWV2ZSB0aGF0IHRvbywgd2l0aCB0aGUgc2FtZSBhYnN0cmFjdGlvbiBhcyBh IHNpbmdsZSB0ZW1wbGF0ZSBzdHJlYW0uIEluaXRpYWxseSB0aGUgZ2VuZXJhdG9yIGFwcCBpcyBq dXN0DQo+ID4gcHJvdmlkaW5nIGEgc2luZ2xlIHN0cmVhbSwgYnV0IHRoaXMgYXBwbGljYXRpb24g Y2FuIGJlIGV4cGFuZGVkIHRvIG1hbnkgdXNhZ2VzIG92ZXIgdGhlIG5leHQgeWVhciBiZWZvcmUg MjIuMTEgOikNCj4gDQo+IE9LLiBJIHRob3VnaHQgIm1vZGlmaWVycyIgd2lsbCBuZWVkIHNvbWUg c29ydCBvZiBjcml0aWNhbCBzZWN0aW9uIGluDQo+IG11bHRpcGxlIHByb2R1Y2VyIHVzZSBjYXNl cy4gSWYgc28sDQo+IG9uZSBvcHRpb24gY291bGQgYmUgTiBzdHJlYW1zIGluIG9uZSBnZW4gaW5z dGFuY2UgdnMgTiBnZW4gaW5zdGFuY2UuDQo+IEp1c3QgbXkgMmMuIEFueXdheSwgeW91IGZvbGtz IGNhbiBkZWNpZGUNCj4gb24gb25lIG9wdGlvbiB2cyBhbm90aGVyLiBPbmx5IG15IGNvbmNlcm4g d2FzIGluY2x1ZGluZyBzdWNoIGZlYXR1cmVzDQo+IGFmZmVjdCB0aGUgcHJvdG90eXBlIG9mIGV4 aXN0aW5nIEFQSXMgb3Igbm90Pw0KPiBJbiBlaXRoZXIgY2FzZSwgTm8gc3Ryb25nIG9waW5pb24u DQoNClNvbWV0aW1lcyB3ZSBuZWVkIFJTUyB3aXRoIGxpbWl0ZWQgc3RyZWFtcywgbW9kaWZpZXMg bmVlZCB0byBjb3B5DQp0ZW1wbGF0ZSBkYXRhLCB0aGVuIG1vZGlmeSBhY2NvcmRpbmdseSwgaW52 b2x2ZXMgbW9yZSBjeWNsZXMgYW5kIGRhdGENCmNhY2hlLCBub3QgYSBnb29kIGNob2ljZSBmb3Ig cGVyZm9ybWFuY2UgdGVzdC4NCg0KQnkgY2xvbmluZyBhIGxpc3Qgb2YgdGVtcGxhdGVzLCBqdXN0 IGNvcHkgdGhlIG1idWYgaGVhZGVycywgc2VlbXMgbW9yZQ0KZWZmaWNpZW50IGZvciBzdWNoIGNh c2UuDQoNCkFncmVlIG1vZGlmaWVycyBhIGZsZXhpYmxlIHdheSB0byBkbyB0aGluZ3MgbW9yZSBw b3dlcmZ1bCwgaG9wZWZ1bGx5IHdlDQpoYXZlIHRoZW0gYWxsIDopDQoNCj4gDQo+IA0KPiA+IA0K PiA+IEkgY291bGQgcmFtYmxlIG9uIGEgYml0IG1vcmUsIGJ1dCBtb3N0bHkgZGltaW5pc2hpbmcg cmV0dXJucyBJIHRoaW5rLi4uIEknbGwganVzdCB1c2UgdGhpcyBlbWFpbCBhcyBhIHJlcGx5IHRv IFRob21hcycgdHdlZXQ7DQo+ID4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5v dXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGdHdpdHRlci5jb20lMkZ0bW9uamFsbyUyRnN0 YXR1cyUyRjEzMzczMTM5ODU2NjI3NzEyMDEmYW1wO2RhdGE9MDQlN0MwMSU3Q3h1ZW1pbmdsJTQw bnZpZGlhLmNvbSU3Q2VkYzU1YWUzNTA1MDRlYWViZTBiMDhkOWMzYmJiNDY0JTdDNDMwODNkMTU3 MjczNDBjMWI3ZGIzOWVmZDljY2MxN2ElN0MwJTdDMCU3QzYzNzc1NjAzMzI0MDU3ODgyOSU3Q1Vu a25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlM Q0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MzMDAwJmFtcDtzZGF0YT1KVmtwb3dlVXJQ b0VXZjdyV2cxdFNHNHFpTzlJS1R0bnczMHglMkJxQlpiJTJGSSUzRCZhbXA7cmVzZXJ2ZWQ9MA0K PiA+IA0KPiA+IFJlZ2FyZHMsIC1IYXJyeQ0KDQo=