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 D40A445459; Fri, 14 Jun 2024 11:32:31 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BF967402DD; Fri, 14 Jun 2024 11:32:31 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2088.outbound.protection.outlook.com [40.107.94.88]) by mails.dpdk.org (Postfix) with ESMTP id E471F402D3 for ; Fri, 14 Jun 2024 11:32:29 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jTzhP9QmHKh24zIVMqDwmvORIEfht8qnHbmaqZ0Ae91LWuF1eDWbbWW9efKIIcXwSk5O89Ud3xiSw3kaEnrcaYPhcDVtsyWkEt+LBBSwBeidRiuAj8DI9Wap7onz/jOKZN6xi0ZwV0erOJJ2wfpkpsWsx8zqOfrtMlNWNfNguYK8lVJXd/XP7WjXoofcEkDbYwp+DLS74XL5DBgrcX6ox/yToy2RjehG1CwU+yTMtmGGxQU/t59g2IgMI6LBPG/bIomJ83iYeK60OO5fIn4sTOKksNUyVJv31YWqHVhUdeC3UgXNS8FEsWarM/DF7xeyBA/ddHflx6GZFlkiYJZv9w== 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=AvijhZ6LQLiH4mq0XeRiscKpMAffVIWCCta6+kMwUFU=; b=h2A7WtS03LO8mLwWY1xUxA/Haqei7+8M+d8UOdlKjjv+f1YwIpUFwZziVA8Mffj96+kaMD6bIj8rZYqk93Vx8ch8KXtDf3B2bRNe+rscV1VZfP6yJLvOJYpGVT8ay+u5tLrHt/XNrWQTEYOW3tmxcr0YvNwMEenYj1nJ27nSJ8VbmOluw9JAQ2xvgCEdzkOwilykeL5fPXe+3sMv2ar4xUZpEHoDDO0uLi7PWouoiquPerjJnoO2RY+vPL0CIqj5xbGgUfWqzLQmNFe0ZNuqeyHSkblrH1GXScCw9UUlfnd15emt5dJDcsREPJNLiIafLGRHOI6024mPRuPQf9r6UA== 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=AvijhZ6LQLiH4mq0XeRiscKpMAffVIWCCta6+kMwUFU=; b=Nn3IE9Wb4BQgoipQYxBf/DOi6vnjk+T8xFSOBGR0kWmRKfc6a7wNsjjSjOhwgRyemBx0bOxyamvjNLdU7ZmvoWpUTm9m4u40S7jDCzx+G2Gj4kAvECFRReARvrxVU+ObCeR0EvSz+BP2lqyS8GdofQp2l4r3+GqkFMpbb9SVTP9uUCz7xrfDiwvM1wURz30sM4ZAz/98x1SRNlIQaJqoMkHm+jMJ06+UF/sngnAsdK5tUYvO6J6mxksKML/Uf0m/mKErpd5QUZguuasgD3QY4Z0g2QUXis1R/HgQJDF2QXDNLJWWBKXhBy5id4AHPrq0fGdoK6+EyqTeiZcydvf6TQ== Received: from CO6PR12MB5396.namprd12.prod.outlook.com (2603:10b6:303:139::8) by SA1PR12MB6847.namprd12.prod.outlook.com (2603:10b6:806:25e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.25; Fri, 14 Jun 2024 09:32:24 +0000 Received: from CO6PR12MB5396.namprd12.prod.outlook.com ([fe80::25bf:da1b:77ac:ed7c]) by CO6PR12MB5396.namprd12.prod.outlook.com ([fe80::25bf:da1b:77ac:ed7c%7]) with mapi id 15.20.7633.037; Fri, 14 Jun 2024 09:32:24 +0000 From: Suanming Mou To: Akhil Goyal , Matan Azrad CC: "dev@dpdk.org" Subject: RE: [EXTERNAL] [PATCH v2 1/2] crypto/mlx5: optimize AES-GCM IPsec operation Thread-Topic: [EXTERNAL] [PATCH v2 1/2] crypto/mlx5: optimize AES-GCM IPsec operation Thread-Index: AQHavfIs3Mx4p6I/E0ifQ+WKXCfqjbHG0hSAgAADKaCAACM6gIAAAQBg Date: Fri, 14 Jun 2024 09:32:24 +0000 Message-ID: References: <20240530072413.1602343-1-suanmingm@nvidia.com> <20240614003031.2006131-1-suanmingm@nvidia.com> <20240614003031.2006131-2-suanmingm@nvidia.com> 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-traffictypediagnostic: CO6PR12MB5396:EE_|SA1PR12MB6847:EE_ x-ms-office365-filtering-correlation-id: 36ff47f3-e32c-48a3-a27d-08dc8c54e62e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230035|1800799019|366011|376009|38070700013; x-microsoft-antispam-message-info: =?utf-8?B?UCtZNE1CbTAxNElaa1lCMFhSeW9MSTloYUVXaUdBNndyaEpOQ0pNVlBCZnQ0?= =?utf-8?B?bTJmdHJYbXBOcU51cDVqWUJsWEpmRUdWRG5KREJqT0cxWHR3U0hCT3dZNlpX?= =?utf-8?B?bTRvbGJ5Ylh6d2htL0IzNFpxd0hjcnBzR3RIYnU3NFpnbXZNVjJNd2VOMUVr?= =?utf-8?B?SUZ6cTU0ZStnTnlTL1Jubzl5cHdGaTYxdVRHT1Q4ZGZVMFJtam1pQkdqNFlD?= =?utf-8?B?eGlsNmFrSTJiMDFBZVIvOEtONWVrUUpIOCtsbGxBYmxRYzdlMW9wZXI1UWY1?= =?utf-8?B?NWFEbTFTYmliWi9rUFl2UXQ5a0ZjbWxGdUM3U0lRZ0kwdnV3eWFIbHpHT2E4?= =?utf-8?B?Z3lRYVdkenhodXJrWmVXN0RzUVV4bGxqSi8rOGlWZG5ielFPdnVnaXRCZnFm?= =?utf-8?B?a1o0c1l5a2djcDN4NVZqN2RMVTB6aUlHc1ovYy9Nd1FBMFVqT3Q5YVdFTUQ2?= =?utf-8?B?YXI4dkpOQXBwaTQ0YVhRUFppZlhsQ3dJRlhKVGo3cUlFY3ZkYTNodGtDZEEr?= =?utf-8?B?dlRIcXlycnE3enFHVDl6Nk1DL3BJL25VOWY5RkFhSmVPYmN3aXdyTFliajlq?= =?utf-8?B?TUNUZC9iV3hFMWxjVEpIT0Jod0JvUDFrek9JV2NORm5xTFlsbDhyTlNWSDJh?= =?utf-8?B?VVZLOCswQ2NCMTE1STZDb01ObkNJT3ZydFdlUVRzZGdObmtuODNnQjFVVEtN?= =?utf-8?B?cHJUb3BqdzhnVzFWc1IycUVVMWsweWNScU1HMnJCVGNpNDloejVHYnNJYWNJ?= =?utf-8?B?TkJuTEJSYndIcm1adGFwdmxQUm9ZdGZaVU5GQllCazkvV3duTXFjbjVVNzc3?= =?utf-8?B?YmFpUzZGME1IcGk4VWR4TEdKbU1xSFY3UUQxd2pqZGgwYTJkN3UveGY1eUk3?= =?utf-8?B?MkExcTFZUVF5SlhKS3RMODJpRmE5VldOK3RPM1lLWlI3anUrT25UMVVFMmJM?= =?utf-8?B?Wmc3dlhXNnc1dHVIZ3ZBNUFQeWlsSmFmbjkwRVp5Vk9tTi9nMXdJL1dQVkMz?= =?utf-8?B?VUZSK1pYM3FzTy94akR0cmZRTFlMaXhGTzB2ZTVyTVNnZkswNlRDNktEUjJ5?= =?utf-8?B?KzRjOVN4VlhnZW84a3BZZ2JBYlJlOVB5ZGwwZ2c3RENwWm1KMU1nU1FHWkQ3?= =?utf-8?B?YlZFUDhPWkxPZE5PSkkrVDZDVW4ybmVxZ0RIMk0ySnBuejNHMUdnUEpLQXpn?= =?utf-8?B?VjJFUWZWUC82d3U4SlIrQk5Yb1YxWisyQ1owTFVPL040MTFwKzJpYUFkY1Vh?= =?utf-8?B?dlZvcGp3SWpyanhKWXRGcGpDRDdsNVdOY01jeG0xcmpVYk9vVkpRYXJmQ1VN?= =?utf-8?B?ci84OFEydHV6aHlDL0ZYNTdUZVdaclc1NUxmWHAzamJKVWJmejlVcjBjMlBh?= =?utf-8?B?S09XS1V1Z09Nc2VvM1BZejNQVzV6QnBNdTBXc1l0SXVucCtDcDJQV0FPcVhF?= =?utf-8?B?ODlMUUQ1U2R1eTE3RDZHaE02WmxxSzZ0VUVsUlgvaU5zbzdZTWY2NUJ4Z2Vn?= =?utf-8?B?T0J6YnRqZk9lSXV2UUdwT0VTcHFZeFQxS1E3UWVybXBYa09laGRucnhHY0pC?= =?utf-8?B?ay9YWk9EVUpiVWlWVWtiOEZZSTBzWlBMc2V3ZU5BV3VzN1drWUd5QTBtSjg0?= =?utf-8?B?OHl6dUdESEwrTlpKM3BaSmxyK1RlbDd4MEt4YnBjYmF0V2FXaUtGWWRPdito?= =?utf-8?B?OVREZEhOOTJCZjZrQ3AzbytZYXNxUkV6aEZvRXBmNVJ0WUFEeThJOEtrdExs?= =?utf-8?B?TUxOdW5hTmxYaW9BMDlHbGxFMGVkM00vMkYzQzdBYzFZY3Q2MXFGZWk2SStW?= =?utf-8?Q?FAClfcuSHhZ8wRVSZfwGEmlR+jzI+oZeuNoVo=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR12MB5396.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230035)(1800799019)(366011)(376009)(38070700013); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QmliQ0tUNmxzZ1NBOWJreDA2bTBkcnBaZXhwbG56UFJOQnQvR3M5THRuWjNU?= =?utf-8?B?QXloVjQwTGlkVHhBUU9PSlYwSmc3STFQeGVHQlBaYUFFcUlnQjVJTzZPTjBB?= =?utf-8?B?SjZFL1pUZVhZejI5RGxwOGcvdzkxNTZsVEszVmRteXUwWE5qZDlCQTg5YnZv?= =?utf-8?B?UXBLZS9WUE1sdmlKelpvcUUwSXpOM2N4T2k1NGw1VFFEaitHMnhiTmcva1N3?= =?utf-8?B?ZEVMU0JBKzFtNGpBbVkzSU9la0c1WWwyMzIzOWR1eXp4RGI0NE0wTXpTMm1V?= =?utf-8?B?ZkZNUXJpYjZUL1F3amVKK1J4TzcvZlFDR08zd1dHZ1VQaVQxclFmS1YxZ0w5?= =?utf-8?B?Z0RXR2tUYTRmUG5rVWs3bFZBNHNQamFkUi90M0Z3TWdUZk9lWFJ6Rld6T09y?= =?utf-8?B?bTd6MEdaLys3QlcyQ25mZDlsOVJ3dXY1akRqcTlGelZFb3VabWdBTVBLWFRa?= =?utf-8?B?SjhnOUVQcjU2SXVlRkdLR3hpaW5MZ3ZIclgvUXdoV3V3NVVXVkdnQVRpS1l2?= =?utf-8?B?cm9XUFdjMHlvaGNnZnFHZlE0VTF2SlBUZ0kvcWR1WGtBVW56ZTZad1lmcW9l?= =?utf-8?B?MlN6Z1hzenpSWXpSM2FiZkVmOG1oYk54bWdOSFNEanpVZ3BrRmJ4Ym8rYjNl?= =?utf-8?B?Q1dMMVZxd2FKVUNabE5XZ1haRkFzTUlnNmZZSEovTTdaa0EzTlB2c05HcU9F?= =?utf-8?B?R25QQmpHSGZncisvSzB1QThWTXBKZjhsMjR0STNxT2l6VTljaWI5N050dURh?= =?utf-8?B?NnR0aGtJMTRsckx6TzJNejZIK21pMEhvUHg0RzZGd3NvWXlhelA1bTNJcE9x?= =?utf-8?B?MzhndkZDNk5SaHFEZUZ2a045SmYxNHFnbDJLNm5WZFBoTm51eTlIUStGRjJV?= =?utf-8?B?YmRqVC9rZE0vRjR1RHgwNis4NjZ3b1JNeFB0V3FraXNQWXFMZVo1ZmVzNWVI?= =?utf-8?B?b3JWZk5ZZHJ1Z1ZBTkVoWUh2Uy9HTmxsMEFnQkllaExobklaeCs5YTJyUi85?= =?utf-8?B?M0ZDUUxaUU95ZnFYRFVNbGFaU2tjaTcza3lta08xUElSZ1MvQXJlYWZ0d2o1?= =?utf-8?B?R3B3RjhSaGpmUVZJa1RnWXFkdkJYZm11UXVkVk4xNjhqMi9XQlp3SHlOTUtU?= =?utf-8?B?ZEl3NDM4ODM4M0ZWL2xhN0p5ZXVqSHpDdThYeUZiSDJVeDYyak9qcnM0Mnlo?= =?utf-8?B?WVl4MFV1YzlLRVBxUnVNTUZqaWdpNjR5VS8xa0pvQzBmWWVTbjhDOEg2dmN3?= =?utf-8?B?RlNkOWxaV3RCWFMyeHBJS1RpTGZ1OFhLem9kZjkwV1V2VitkSUNzemNURDhs?= =?utf-8?B?RHQ1L2pVK0lhdndJWXQ2cktHa2pHV1pIeUlEcEJ4TlROQnZlM2NJRWsxbU4w?= =?utf-8?B?TDduTFA4M29pdFkwdWNKeVIvdXpRQm9FbTZjVVdzRXVjUSttcVBRZ3lMUlV1?= =?utf-8?B?YUorZGNFaDBFK3I5cGZjQkpyalRoN0NDSWlEWUlPV3RQczdEdi9aMTZHRzh2?= =?utf-8?B?MEJ1dDlYRUlob2hZczkxRGZGMS8vTFFYTDluK1BNVU9SSW5rN2J4TVpXdnor?= =?utf-8?B?Y2JnRTBaNS9Eb2d5R252eGUzYWFMSzZ6RFpBRVo2dW8wYnQ3blhwejZXZUV1?= =?utf-8?B?a3RaQkEwR0hoZDZ4RG1yYlpTemZNSWE3VDk3S2JJUTArOFRvTmQrME03Qldn?= =?utf-8?B?eDR1Q1BHNWVTNkRBaVByNGtEZFZ3QUZ1TW51c1lwK2tRaU85ZmJIQi81c0x1?= =?utf-8?B?dXk5OW4yOWJDSEEzMnNKWG9iUElhb2VBNG5Xa0lDN2t1MkJBTXd6YzU4WEsz?= =?utf-8?B?RjBZNFFneWlSVlpaNjBVWlp2RDlGREZnSDNscWg0R3E2YWZ2Sjk1bWM0SHNX?= =?utf-8?B?VzljT1hheXozNm1WZytrOGdjZjVJbTI2QmRQcXBRcFphNDVTTkRGNnZZeU9Y?= =?utf-8?B?Z0RId0JNMWFmMFFZVWs4SzhkU1JiRzFTSW02TUVVTi9teUltSXBpQlZqNUdv?= =?utf-8?B?QXU3aW1rdlBoZjcreXhpWkNyZHo0Tzg4WEZVZWRzc050Mkw1T0JGRXdCb0gy?= =?utf-8?B?aGZsSzFQdjdEZ1pVNi9SSGFYNWlRQUFxU05IMmlvRkJFMlVBbUVUeHFnWmdm?= =?utf-8?Q?NYdQkV1cCPCdDc0yBPkj1LPdR?= 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: CO6PR12MB5396.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36ff47f3-e32c-48a3-a27d-08dc8c54e62e X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2024 09:32:24.6340 (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: tTiQQcTffc1fS2iLi7hgwmqw1j20uM1PQO2mR9DoVbCdulqaGirapaq6qu12nqvKxKzilZzLmtUlO942SSWnEA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6847 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 SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWtoaWwgR295YWwg PGdha2hpbEBtYXJ2ZWxsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBKdW5lIDE0LCAyMDI0IDU6MDcg UE0NCj4gVG86IFN1YW5taW5nIE1vdSA8c3Vhbm1pbmdtQG52aWRpYS5jb20+OyBNYXRhbiBBenJh ZA0KPiA8bWF0YW5AbnZpZGlhLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBS RTogW0VYVEVSTkFMXSBbUEFUQ0ggdjIgMS8yXSBjcnlwdG8vbWx4NTogb3B0aW1pemUgQUVTLUdD TSBJUHNlYw0KPiBvcGVyYXRpb24NCj4gDQo+ID4gSGkgQWtoaWwsDQo+ID4NCj4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBBa2hpbCBHb3lhbCA8Z2FraGlsQG1h cnZlbGwuY29tPg0KPiA+ID4gU2VudDogRnJpZGF5LCBKdW5lIDE0LCAyMDI0IDI6NDkgUE0NCj4g PiA+IFRvOiBTdWFubWluZyBNb3UgPHN1YW5taW5nbUBudmlkaWEuY29tPjsgTWF0YW4gQXpyYWQN Cj4gPiA+IDxtYXRhbkBudmlkaWEuY29tPg0KPiA+ID4gQ2M6IGRldkBkcGRrLm9yZw0KPiA+ID4g U3ViamVjdDogUkU6IFtFWFRFUk5BTF0gW1BBVENIIHYyIDEvMl0gY3J5cHRvL21seDU6IG9wdGlt aXplIEFFUy1HQ00NCj4gPiA+IElQc2VjIG9wZXJhdGlvbg0KPiA+ID4NCj4gPiA+ID4gVG8gb3B0 aW1pemUgQUVTLUdDTSBJUHNlYyBvcGVyYXRpb24gd2l0aGluIGNyeXB0by9tbHg1LCB0aGUgRFBE Sw0KPiA+ID4gPiBBUEkgdHlwaWNhbGx5IHN1cHBsaWVzIEFFU19HQ00gQUFEL1BheWxvYWQvRGln ZXN0IGluIHNlcGFyYXRlDQo+ID4gPiA+IGxvY2F0aW9ucywgcG90ZW50aWFsbHkgZGlzcnVwdGlu ZyB0aGVpciBjb250aWd1b3VzIGxheW91dC4gSW4NCj4gPiA+ID4gY2FzZXMgd2hlcmUgdGhlIG1l bW9yeSBsYXlvdXQgZmFpbHMgdG8gbWVldCBoYXJkd2FyZSAoSFcpDQo+ID4gPiA+IHJlcXVpcmVt ZW50cywgYW4gVU1SIFdRRSBpcyBpbml0aWF0ZWQgYWhlYWQgb2YgdGhlIEdDTSdzIEdHQSBXUUUN Cj4gPiA+ID4gdG8gZXN0YWJsaXNoIGEgY29udGludW91cyBBQUQvUGF5bG9hZC9EaWdlc3Qgdmly dHVhbCBtZW1vcnkgc3BhY2UgZm9yIHRoZQ0KPiBIVyBNTVUuDQo+ID4gPiA+DQo+ID4gPiA+IEZv ciBJUHNlYyBzY2VuYXJpb3MsIHdoZXJlIHRoZSBtZW1vcnkgbGF5b3V0IGNvbnNpc3RlbnRseSBh ZGhlcmVzDQo+ID4gPiA+IHRvIHRoZSBmaXhlZCBvcmRlciBvZiBBQUQvSVYvUGF5bG9hZC9EaWdl c3QsIGRpcmVjdGx5IHNocmlua2luZw0KPiA+ID4gPiBtZW1vcnkgZm9yIEFBRCBwcm92ZXMgbW9y ZSBlZmZpY2llbnQgdGhhbiBwcmVwYXJpbmcgYSBVTVIgV1FFLiBUbw0KPiA+ID4gPiBhZGRyZXNz IHRoaXMsIGEgbmV3IGRldmFyZyAiY3J5cHRvX21vZGUiIHdpdGggbW9kZSAiaXBzZWNfb3B0IiBp cw0KPiA+ID4gPiBpbnRyb2R1Y2VkIGluIHRoZSBjb21taXQsIG9mZmVyaW5nIGFuIG9wdGltaXph dGlvbiBoaW50DQo+ID4gPiA+IHNwZWNpZmljYWxseSBmb3IgSVBzZWMgY2FzZXMuIFdoZW4gZW5h YmxlZCwgdGhlIFBNRCBjb3BpZXMgQUFEDQo+ID4gPiA+IGRpcmVjdGx5IGJlZm9yZSBQYXlsb2Fk IGluIHRoZSBlbnF1ZXVlX2J1cnN0IGZ1bmN0aW9uIGluc3RlYWQgb2YNCj4gPiA+ID4gZW1wbG95 aW5nIHRoZSBVTVIgV1FFLiBTdWJzZXF1ZW50bHksIGluIHRoZSBkZXF1ZXVlX2J1cnN0DQo+ID4g PiA+IGZ1bmN0aW9uLCB0aGUgb3ZlcnJpZGRlbiBJViBiZWZvcmUgUGF5bG9hZCBpcyByZXN0b3Jl ZCBmcm9tIHRoZQ0KPiA+ID4gPiBHR0EgV1FFLiBJdCdzIGNydWNpYWwgZm9yIHVzZXJzIHRvIGF2 b2lkIHV0aWxpemluZyB0aGUgaW5wdXQgbWJ1ZiBkYXRhIGR1cmluZw0KPiBwcm9jZXNzaW5nLg0K PiA+ID4NCj4gPiA+IFRoaXMgc2VlbXMgdmVyeSBzcGVjaWZpYyB0byBtbHg1IGFuZCBpcyBub3Qg YXMgcGVyIHRoZSBleHBlY3RhdGlvbnMNCj4gPiA+IG9mIGNyeXB0b2RldiBBUElzLg0KPiA+ID4N Cj4gPiA+IEl0IHNlZW1zIHlvdSBhcmUgYXNraW5nIHRvIGFsdGVyIHRoZSB1c2VyIGFwcGxpY2F0 aW9uIHRvIGFjY29tbW9kYXRlDQo+ID4gPiB0aGlzIHRvIHN1cHBvcnQgSVBzZWMuDQo+ID4gPg0K PiA+ID4gQ3J5cHRvZGV2IEFQSXMgYXJlIGZvciBnZW5lcmljIGNyeXB0byBwcm9jZXNzaW5nIG9m IGRhdGEgYXMgZGVmaW5lZA0KPiA+ID4gaW4gcnRlX2NyeXB0b19vcC4NCj4gPiA+IFdpdGggeW91 ciBwcm9wb3NlZCBjaGFuZ2VzLCBpdCBzZWVtcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNyeXB0byBB UElzDQo+ID4gPiB3aWxsIGJlIGRpZmZlcmVudCBpbiBjYXNlIG9mIG1seDUgd2hpY2ggSSBiZWxp ZXZlIGlzIG5vdCBjb3JyZWN0Lg0KPiA+ID4NCj4gPiA+IElzIGl0IG5vdCBwb3NzaWJsZSBmb3Ig eW91IHRvIHVzZSBydGVfc2VjdXJpdHkgSVBzZWMgcGF0aD8NCj4gPiA+DQo+ID4NCj4gPiBTb3Jy eSBJIGRvbid0IHVuZGVyc3RhbmQgd2h5IHRoYXQgY29uZmxpY3RzIHRoZSBBUEksIElJVUMgY3J5 cHRvIEFQSQ0KPiA+IG9ubHkganVzdCBkZWZpbmVzIHRoZSBBQUQvUGF5bG9hZC9EaWdlc3QgaW4g c3RydWN0IHJ0ZV9jcnlwdG9fc3ltX29wLA0KPiA+IGJ1dCBub3QgcmVzdHJpY3QgdGhlIHNlcXVl bmNlLCBhbmQgQUFEL1BheWxvYWQvRGlnZXN0IG1heSBjb21lIGZyb20NCj4gZGlmZmVyZW5jZSBt ZW1vcnkgc3BhY2UuDQo+ID4gQW0gSSBtaXNzaW5nIHNvbWV0aGluZyBoZXJlPw0KPiANCj4gWWVz IHlvdSBhcmUgY29ycmVjdCB0aGF0IHRoZXJlIGlzIG5vIHJlc3RyaWN0aW9uIHRoZXJlLg0KPiAN Cj4gPiBUaGUgaW5wdXQgcmVxdWlyZW1lbnRzIGZyb20gbWx4NSBIVyBpcyBBQUQvUGF5bG9hZC9E aWdlc3Qgc2VxdWVuY2UsIGlmDQo+ID4gdGhlIGlucHV0IG1lbW9yeSBvZiBBQUQvUGF5bG9hZC9E aWdlc3QgZG9lcyBub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzLA0KPiA+IFBNRCB3aWxsIHRyeSB0 byBjb21iaW5lIHRoZSBtZW1vcnkgYWRkcmVzcyBzcGFjZSB3aXRoIFVNUiBXUUUgYXMgdGhhdA0K PiA+IGNvbW1pdCBkb2VzIGJ5IHNvZnR3YXJlIHNocmluay4NCj4gDQo+IEFuZCBoZXJlLCB5b3Ug YXJlIGFkZGluZyBhIHJlc3RyaWN0aW9uIGZvciBJUHNlYyBjYXNlLg0KPiBJIGJlbGlldmUgeW91 IG5lZWQgYSB3YXkgdG8gaWRlbnRpZnkgSVBzZWMgY2FzZSB3aXRoIG5vbi1pcHNlYyBjYXNlIGlu IGRhdGEgcGF0aC4NCj4gRm9yIHRoYXQsIGluc3RlYWQgb2YgdXNpbmcgYSBkZXZhcmcod2hpY2gg aXMgYSBzcGVjaWZpYyBjYXNlIGZvciBtbHg1KSwgeW91IGNhbiB1c2UNCj4gZ2VuZXJpYyBydGVf c2VjdXJpdHkgc2Vzc2lvbiB3aXRoIGFjdGlvbiB0eXBlDQo+IFJURV9TRUNVUklUWV9BQ1RJT05f VFlQRV9OT05FLg0KDQpKdXN0IHRvIGVtcGhhc2l6ZSwgdGhpcyBpcyBub3QgYSByZXN0cmljdGlv biwgd2UgZG9uJ3QgcmVzdHJpY3QgdXNlciBtdXN0IHVzZSB0aGF0IGRldmFyZyBmb3IgSVBTRUMg Y2FzZS4NClRoZSB3YXkgdG8gaWRlbnRpZnkgb3IgYXBwbHkgdGhhdCBvcHRpbWl6YXRpb24gaXMg dXNlcidzIGRldmFyZyBvZiAiaXBzZWNfb3B0Ii4NCldpdGhvdXQgdGhhdCBoaW50IGZyb20gZGV2 YXJnLCBwbWQgd2lsbCB3b3JrIGluIFVNUiBtb2RlIHRvIGNvbWJpbmUgdGhlIG1lbW9yeSBhZGRy ZXNzZXMuDQpJIGFncmVlIG1vdmUgdG8gb3RoZXIgQVBJIHdpbGwgYWxzbyBtYWtlIHRoZSBoaW50 IHdvcmsuIEJ1dCBpZiBwcm92aWRpbmcgb25lIGhpbnQgZGV2YXJnIGhlcmUgZG9lcyBub3QgY29u ZmxpY3QgdGhlIEFQSSBhbmQgYnJpbmcgYmV0dGVyIGNvbXBhdGliaWxpdHksIGl0IGRvZXMgbm90 IGh1cnQuDQoNCj4gDQo+IFlvdSBtYXkgYWxzbyBiZW5lZml0IGZyb20gcnRlX2lwc2VjIGxpYnJh cnkgQVBJcyBhbmQgdGVzdCBmcmFtZXdvcmssIGZvcg0KPiBwcm9jZXNzaW5nIG9mIHByb3RvY29s IHNwZWNpZmljIHRoaW5ncyB3aGljaCBhcmUgc3BlY2lmaWNhbGx5IHdyaXR0ZW4gZm9yDQo+IFJU RV9TRUNVUklUWV9BQ1RJT05fVFlQRV9OT05FIGNhc2UuDQpBbmQgYWdhaW4sIHRoYW5rcyBmb3Ig dGhlIHN1Z2dlc3Rpb24sIEkgYXNzdW1lIHdlIHdpbGwgYWxzbyBjb25zaWRlciBzdXBwb3J0aW5n IHRoYXQgbmV4dCBmb3IgcnRlX3NlY3VyaXR5IGFzIHdlbGwgaWYgcG9zc2libGUsIHRvIHByb3Zp ZGUgbW9yZSBjaG9pY2UgZm9yIHVzZXIuDQoNCj4gDQo+ID4gQW5kIHRoZSBtb3N0IGltcG9ydGFu dCB0aGluZyBpcyB0aGF0ICJpcHNlY19vcHQiIGlzIG5vdCBtYW5kYXRvcnksDQo+ID4gb25seSBp ZiB1c2VyIGhhdmUgc3VjaCBjYXNlIG9mIGxheW91dCBhbmQgYWxsb3dzIHRoYXQgb3B0aW1pemF0 aW9uDQo+ID4gaGFwcGVucy4gT3RoZXJ3aXNlLCB0aGUgZXhpc3RpbmcgVU1SIFdRRSB3aWxsIHN0 aWxsIGJlIHRoZSBkZWZhdWx0IGJlaGF2aW9yDQo+IGhlcmUuDQo+ID4NCj4gV2l0aCB0aGlzIG5l dyBkZXZhcmcgd2hpY2ggYXBwbGljYXRpb24gd291bGQgeW91IGJlIHVzaW5nIGZvciB0ZXN0aW5n Pw0KPiBJIGRvIG5vdCBzZWUgYSBwYXRjaCBmb3IgYXBwbGljYXRpb24gY2hhbmdlcyBmb3IgdGhl IGxheW91dCB0aGF0IHlvdSBhcmUNCj4gbWVudGlvbmluZy4NCklJUkMgd2UgdXNlZCB0ZXN0LWNy eXB0by1wZXJmIHdpdGggaGVhZHJvb20gcHJvcGVyIGNvbmZpZ3VyZWQgbWJ1ZiB0byB2ZXJpZnku DQpJZiB5b3UgdGhpbmsgYW5vdGhlciBuZXcgYXJnIGlzIHdvcnRoIHRvIGJlIGFkZGVkIHRvIHRl c3QtY3J5cHRvLXBlcmYgdG8gYnVpbGQgZXZlcnl0aGluZywgSSBjYW4gYWxzbyBzZW5kIGFub3Ro ZXIgYXBwbGljYXRpb24gcGF0Y2ggdG8gc3VwcG9ydCB0aGF0IGxhdGVyLihidXQgc29ycnkgZHVl IHRvIGVmZm9ydCBsaW1pdGF0aW9uIG1heWJlIG5vdCBoYXBwZW5lZCBzb29uIGluIHRoYXQgc2Vy aWVzKS4NCg0KVGhhbmtzLA0KU3Vhbm1pbmcNCg==