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 C12A9A034E; Thu, 27 Jan 2022 22:55:53 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 42248427BF; Thu, 27 Jan 2022 22:55:52 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1anam02on2069.outbound.protection.outlook.com [40.107.96.69]) by mails.dpdk.org (Postfix) with ESMTP id AE43B40141 for ; Thu, 27 Jan 2022 22:55:50 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T7XBZLhLwRumKKmy7Q//oR/Ct24Ac1GeGcak5+G0bmUoYqmC+AbYzsezblyVMdhMyzWYdWANBugs/fsLYGhZGX67c95y9ruZC8xFD9C4F/TxPDzLdjqfwDhwX6OYSd+Dns/L75L+Sie8vx8dpKzBt7LSWN+oXilvYyjLVtwZS6XDdTgXc9L+jp+8H/QXa1RNM+eS7vFYLkW0ConbJcrG012prXcZjwPiNdC/z1V7FgOXs6j9i87edlPKfiMmRqOF7GI5PNXSN62yEoIWwb2t8DCVHbKSRBtMFDc2NVaIJNlbQhw+xmjMvyctgImPzmi28oGktELvmXkXUXph3kMKUA== 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=LeOZPC+OYNyKg5U4jHssn/wNn1V7HV3xvu5ixV7DxHw=; b=F4R76PWdm6Xs3K7U3XuVONtw1/AS6m/OXu87x/fHh/UNuXV80qNys2ZVjHb5ab3xyPxCw8dlCtCzS/LOY5hfMgWFRRWUo8X/6LKhYI2Ak/eLm4XmQmVu+bymfKaBpPfl2Z45/UuZCiYz1AsXueZhshhE4V9XZaiM2+v7Q+IXD4rQNDYXqekD/GsJjlD5qrTqMm4+ikeKQQS3IN/sbgMayCYaudHEAdkjpXfISXoEMDgP6NpL6YaPT3vUnzqTx5cAbjyL6CDlSgIBFBTmTu9+3YrPWCBAivOQT2ywxt+u0q7W8n6dfPG3CbMIXX/LV5POBwl6JBB6+4WfOsislTOO2g== 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=LeOZPC+OYNyKg5U4jHssn/wNn1V7HV3xvu5ixV7DxHw=; b=I8p/5IPbhN5jZMK0QbfiqneMaostaJFFEsiqX3N0ywKqW9t/pra0aSoLHmXnPNYHri4trFVm+PHjdDLCX1FRKmcU4qHR5phW1M3WGXFhtBCMsp3IuucsyoaWT5xlTqDTyhHfPu+dtArrBTmR+c7vIeL62IkBT7j8jfFwdnkV+UX8/endt5o2lnKlgWAFuRFVno4ejCjGZhtcWo6yVlok2blFK5HROrausSgNhF9/WZ9jQedy6HftrErG6jL/ToItgPKtMSOP9JNuWM7DdcCJ9gHIOjip/cuaKRacqamS8JIL1gXpWrKfqUlDAd+AQ0ShWkPALhzMO53GpEyy3gUNDQ== Received: from MN2PR12MB3934.namprd12.prod.outlook.com (2603:10b6:208:167::14) by CY4PR12MB1768.namprd12.prod.outlook.com (2603:10b6:903:11c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.17; Thu, 27 Jan 2022 21:55:48 +0000 Received: from DM5PR12MB2405.namprd12.prod.outlook.com (2603:10b6:4:b2::20) by MN2PR12MB3934.namprd12.prod.outlook.com (2603:10b6:208:167::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Thu, 27 Jan 2022 21:55:46 +0000 Received: from DM5PR12MB2405.namprd12.prod.outlook.com ([fe80::cd5b:cd8d:cd38:8c31]) by DM5PR12MB2405.namprd12.prod.outlook.com ([fe80::cd5b:cd8d:cd38:8c31%6]) with mapi id 15.20.4930.018; Thu, 27 Jan 2022 21:55:46 +0000 From: Alexander Kozyrev To: Ajit Khaparde , Ivan Malov CC: dpdk-dev , Ori Kam , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko , Ferruh Yigit , "mohammad.abdul.awal@intel.com" , Qi Zhang , Jerin Jacob Subject: RE: [PATCH v2 03/10] ethdev: bring in async queue-based flow rules Thread-Topic: [PATCH v2 03/10] ethdev: bring in async queue-based flow rules Thread-Index: AQHYEX6OUrQfghgPnkWQlkoO8pTDdqxz0yewgAHWFoCAAcQawA== Date: Thu, 27 Jan 2022 21:55:46 +0000 Message-ID: References: <2fb135e6-f492-bb8-1554-4df1f089fc79@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: c2eab4b9-5363-4580-6f60-08d9e1dfc5e6 x-ms-traffictypediagnostic: MN2PR12MB3934:EE_|CY4PR12MB1768: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: an7eseOoDX4HmhhG+XjlNbLFruYtTydOUWGPYkUsaSezBcTa9wTzWqZHKuLdip/N2Li5ZaUWfVSzcI7qcQM9OOprmVYfXJ5FQ/RptHM+Wal88JfkipPLgoKwbexL32CT1UZg2qHV8iaqNSnI5E9vENysoF2WNK+OFT0zDIbgeeFRu7jsEjFz7P2qO1V8dHDmZqVyMLWxSMWf3FbA3xm0HpoNVWgdqDeLMzONGVk66Mo/8zcEchajzyO2NwxFPGZolwkZrGFiRpyb5rd94h9fmWOtm5e28nHMTYWiROaV3++CqawMBdw+DZiUIJBrnS6AuvsiSnCRc6cGpwbSeepku/DAZgUPB45WRlTLgarmiepdRUcdC9venT1l1+EMvTbp0dPih5mJ79MuSV0Gu4lFDmzKm+QhA8Ob3OorHWlWbLc61xQj8ybtSZIzTAoIZ4OqAFVw/pYrlNc/AG6PuW/ylQXYwIo2LdeUKDW+PCK6Z3HNC9RN4dmCfbRrw1w6rzuhKuVu+JdiHJpkCDSmXztCeXLCK+fqb1gWuhM4IBFuyfDg3DSz9GXzELtgVCz4kyeTejNMzv7yBZfln/Xd9iD3RBFRGzncV1U876rOUmuIPh3B9/HLl4/laPuDphsXHdnUPoiAY7/xD/Rr6FREeJb0NbnJNwso2GTJHe4dlchYsqdKJre1Khs7LG+hJBy0G11aKIZUr91Dfm2SUihEM+QYZQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3934.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(6506007)(86362001)(53546011)(186003)(122000001)(66446008)(52536014)(66946007)(8676002)(38100700002)(4326008)(66556008)(316002)(64756008)(110136005)(7696005)(2906002)(55016003)(54906003)(76116006)(9686003)(38070700005)(8936002)(66476007)(83380400001)(5660300002)(33656002)(71200400001)(508600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WlB0TlVxODhFNmJLNU9SK0YvaHpHWW0yQ2M3VHlnbW9HMGRtWnB0dnhNSHdv?= =?utf-8?B?dm9FUDZiV0NuNFZFVmxkZ2NTcEhrZUh0SkM2L0o4VXNleG5sMUVTN0lnWEI4?= =?utf-8?B?eksvYnhwblZObDltSmhJY1NWbjBGU2Z1Y3BpVnFFbGtPbStJNUk2UXlUSTE2?= =?utf-8?B?ZEQxWTMyblRlWmkyOXZDRWxiQnhIc3ZtK0RTeWFIRHpHS3N5MXc1S1hDZmla?= =?utf-8?B?aTQ0eU85ZGFTdnBEM1BPc2QyRm1UWGdvZ1RPcnVlWmlERzFpNTh6TmlsTzlm?= =?utf-8?B?Sjg2MUJGWU4vdnlqRmZHTEpmOWRSczBuZFhjOHQ5ZjNReFRMK2ZLS1A5eFU2?= =?utf-8?B?SklBNi9lNWZHbG1VK1Uxa2RyN0QvaVA2bERJWllCenp2Y0YzRlQ1MjVOaWtI?= =?utf-8?B?NFBkR1RPWmRzamlmZDV1NUhHSFdQNnBKa3AyWnl3RmhIb3hQc2oxWVhJa1BU?= =?utf-8?B?ZzMweWFoTVppa1RPRGxNRTdZeEUxUnkrK1N6UGcrcW5YTGI1NDROQ0t3TjYy?= =?utf-8?B?cytpM0IxWGN6ZExuSEVNdTJ1Ym05OXJpUHpIL3JrYXZxLzFSREZtZ0V2b1h4?= =?utf-8?B?ZXVoM1lhVWoremtVaWQ3UkllWGlYUUlFU1h6VHdLM0g5anFLL1B2cmtnS0dB?= =?utf-8?B?WHNrcEZUa3dBeHpiaFJLRW1KVXIrcnVFR3dnTytGR01TRE1pQU0xWU4wNUc2?= =?utf-8?B?NDI1MVZwTEd6MGZ6NlRBNG9vVHQvUkQ4OVpTb1JqWU85NktLMjdHK1BhVjVo?= =?utf-8?B?YlczazZ6c3ZtbWNyUTY2dEtrNXZ0YkZGVlIwbjJDVkNvRXZQZEV4clNCU081?= =?utf-8?B?amRGVmZoK2Q4VW51d0FML1VnUm1uVmR4OXIrWEh5dkhWS05ERnp2SUlkall3?= =?utf-8?B?UjR0SXNnbGJ3WTFsYS8ydUpDQlhGOG1pR2JHSFdvVUl2VENRRnVMVlVHdkll?= =?utf-8?B?N2p1U3ZhU3Yybm90eTNLY25SZjV3cjZ5Mi9qMzVrSUFFRURhWFFiK0xBMm1B?= =?utf-8?B?TFdqc3EwdVZsTGRBT1ZWeGk3cjNQTVBBMysvY0VWTkV3REU1TUd3YytGOHF3?= =?utf-8?B?WHV0M3RqMEo4V0Z1UDRJcEE4aTYyNVo0TGszRjE5bm1tNENIaUpmdlpaeWRJ?= =?utf-8?B?MWxFM2xmKzYrMzA0K05TdytVYTBQcGlMdVpwcUQyWXY1TW1rYTg4OHkydlUz?= =?utf-8?B?dGxUZkEwTmJ2czN3OGs3U1FnOHRnY1lSRElKVzVWdm1QbWVCRENjajlxVHBG?= =?utf-8?B?bTIxcEhBMnVlQThHd2V1ejd5NXRtQlBpS1U4NHROVE10K1RtVjh0dEw5ZHNm?= =?utf-8?B?Q3dQVUlybUg1SzNkaWdOcVdwMHdKVjF6THY5Tk5pNUdWSFJ4L2Vpb0swMWpi?= =?utf-8?B?aXR5dnFaWTl1SCsyTDY1b3Z6bTV1eVhPdks4UXFJcFoyZ1dUUTBIdTZMaUNZ?= =?utf-8?B?Vklsb1UrY0xvMU5QbkRSSkNEcjhvZFA1aHk0ZnVWYUNJYVExVERSbG95RzZ3?= =?utf-8?B?c0dKazhFUW1uN2RzWjI5aXVKNEk5NHBCSkoyRGpyMytONzYzbnhldVdhQUZ6?= =?utf-8?B?QTMxREVXWXN4NzVBOTV2SmRRQ0MwWEQyZDZnTkVwL3pIRFdhQmh4cDZaSU4y?= =?utf-8?B?QUJpVVBDUXhsb1FrYS91TFRqZ2U1Y0I1ZS9CUStGOTJ2OXoyK3gvVFN0N3Ey?= =?utf-8?B?UHlubVpMY1ZodW9Qby94dlNwbVNPamRyOWYzK1JtSW5QRDlpZEdnNmZwc09h?= =?utf-8?B?b0VhaC8zTHpSU2lpNm9TcUtiNlhFMGx2dnE4cjIvR2tacHdaRFd5dXQ3KzE4?= =?utf-8?B?SGUyMWJRMkR4S3p6RTQ5SDZNMzlSczVpd0Jyb0NFTXpLcDVQdjJaZ0FPRHpQ?= =?utf-8?B?N09NdmpUSE9DNEVYM3hIQ0N5OTZ5RUZxckNJNVA3bkxpUVNoSHluNWtjQVl6?= =?utf-8?B?YTVObHRhY2hiL015RWYwa3M5SUwwVVVUTWMyY2JONWZjQXFVT2l5a2RncEw4?= =?utf-8?B?c1E5V2hpRWFyMjZRL2lYRGQ2enRiT09Xdm9sZmh1MnYzMWNuU3pjaG1kQWFJ?= =?utf-8?B?c05VUVRkYnExWFZkbVg2WVphRnA5b21kVk9sR1JrOCtDQjhGc3pSVVRCZ3BT?= =?utf-8?B?eTEzQmsxYS9hYXBxd0c2WGkraEhHQm83ekxyQ0RJd2lqaGlhN1dkNXV0bmZz?= =?utf-8?B?d3VxVnZ4OGFsN3ZSZll6WERMdmhaSHZUbUFYQ05VcFZJZ2NIb1VkTUtwbzAz?= =?utf-8?Q?QxzFGJ8Y4GaePoKgyTuEKbW+EudVGoiBRESmtAnlBA=3D?= 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: DM5PR12MB2405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2eab4b9-5363-4580-6f60-08d9e1dfc5e6 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jan 2022 21:55:46.3180 (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: wv0yNtyjOkRJIX6c56IxOTMtrQnC5O6Fo30JJqU/ZxBJ93TTM5FINPnWvcfBLft+1e2v5/0W8jNVVWyLUwyp6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1768 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 T24gV2VkbmVzZGF5LCBKYW51YXJ5IDI2LCAyMDIyIDEzOjU0IEFqaXQgS2hhcGFyZGUgPGFqaXQu a2hhcGFyZGVAYnJvYWRjb20uY29tPiB3cm90ZToNCj4NCj4gT24gVHVlLCBKYW4gMjUsIDIwMjIg YXQgOTowMyBQTSBBbGV4YW5kZXIgS296eXJldiA8YWtvenlyZXZAbnZpZGlhLmNvbT4NCj4gd3Jv dGU6DQo+ID4NCj4gPiBPbiBNb25kYXksIEphbnVhcnkgMjQsIDIwMjIgMTk6MDAgSXZhbiBNYWxv diA8aXZhbi5tYWxvdkBva3RldGxhYnMucnU+DQo+IHdyb3RlOg0KPiA+ID4gVGhpcyBzZXJpZXMg aXMgdmVyeSBoZWxwZnVsIGFzIGl0IGRyYXdzIGF0dGVudGlvbiB0bw0KPiA+ID4gdGhlIHByb2Js ZW0gb2YgbWFraW5nIGZsb3cgQVBJIGVmZmljaWVudC4gVGhhdCBzYWlkLA0KPiA+ID4gdGhlcmUg aXMgbXVjaCByb29tIGZvciBpbXByb3ZlbWVudCwgZXNwZWNpYWxseSBpbg0KPiA+ID4gd2hhdCBj b21lcyB0byBrZWVwaW5nIHRoaW5ncyBjbGVhciBhbmQgY29uY2lzZS4NCj4gPiA+DQo+ID4gPiBJ biBleGFtcGxlLCB0aGUgZm9sbG93aW5nIEFQSXMNCj4gPiA+DQo+ID4gPiAtIHJ0ZV9mbG93X3Ff Zmxvd19jcmVhdGUoKQ0KPiA+ID4gLSBydGVfZmxvd19xX2Zsb3dfZGVzdHJveSgpDQo+ID4gPiAt IHJ0ZV9mbG93X3FfYWN0aW9uX2hhbmRsZV9jcmVhdGUoKQ0KPiA+ID4gLSBydGVfZmxvd19xX2Fj dGlvbl9oYW5kbGVfZGVzdHJveSgpDQo+ID4gPiAtIHJ0ZV9mbG93X3FfYWN0aW9uX2hhbmRsZV91 cGRhdGUoKQ0KPiA+ID4NCj4gPiA+IHNob3VsZCBwcm9iYWJseSBiZSB0cmFuc2Zvcm1lZCBpbnRv IGEgdW5pZmllZCBvbmUNCj4gPiA+DQo+ID4gPiBpbnQNCj4gPiA+IHJ0ZV9mbG93X3Ffc3VibWl0 X3Rhc2sodWludDE2X3QgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRfaWQsDQo+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgICAg cXVldWVfaWQsDQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRl X2Zsb3dfcV9vcHNfYXR0ciAqcV9vcHNfYXR0ciwNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gcnRlX2Zsb3dfcV90YXNrX3R5cGUgICAgICAgICB0YXNrX3R5cGUsDQo+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICAgICAgICAgICAgICAgICAgICAgICAq dGFza19kYXRhLA0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcnRlX2Zsb3dfcV90YXNr X2Nvb2tpZV90ICAgICAgICAgIGNvb2tpZSwNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBydGVfZmxvd19lcnJvciAgICAgICAgICAgICplcnJvcik7DQo+ID4gPg0KPiA+ID4g d2l0aCBhIGhhbmRmdWwgb2YgY29ycmVzcG9uZGluZyBlbnVtIGRlZmluZXMgYW5kIGRhdGEgc3Ry dWN0dXJlcw0KPiA+ID4gZm9yIHRoZXNlIDUgb3BlcmF0aW9ucy4NCj4gPiBXZSB3ZXJlIHRoaW5r aW5nIGFib3V0IHRoZSB1bmlmaWVkIGZ1bmN0aW9uIGZvciBhbGwgcXVldWUgb3BlcmF0aW9ucy4N Cj4gPiBCdXQgaXQgaGFzIHRvbyBtYW55IGRyYXdiYWNrcyBpbiBvdXIgb3BpbmlvbjoNCj4gPiAx LiBEaWZmZXJlbnQgb3BlcmF0aW9uIHJldHVybiBkaWZmZXJlbnQgcmVzdWx0cyBhbmQgdW5uZWVk ZWQgcGFyYW1ldGVycy4NCj4gPiBxX2Zsb3dfY3JlYXRlIGdpdmVzIGEgZmxvdyBoYW5kbGUsIHFf YWN0aW9uX2hhbmRsZSByZXR1cm5zIGluZGlyZWN0IGFjdGlvbg0KPiBoYW5kbGUuDQo+ID4gZGVz dHJveSBmdW5jdGlvbnMgcmV0dXJuIHRoZSBzdGF0dXMuIEFsbCB0aGVzZSBjYXNlcyBuZWVkcyB0 byBiZSBoYW5kbGVkDQo+IGRpZmZlcmVudGx5Lg0KPiA+IEFsc28sIHRoZSB1bmlmaWVkIGZ1bmN0 aW9uIGlzIGJsb2F0ZWQgd2l0aCB2YXJpb3VzIHBhcmFtZXRlcnMgbm90IG5lZWRlZA0KPiBmb3Ig YWxsIG9wZXJhdGlvbnMuDQo+ID4gQm90aCBvZiB0aGVzZSBwb2ludCByZXN1bHRzIGluIGhhcmQg dG8gdW5kZXJzdGFuZCBBUEkgYW5kIG1lc3N5DQo+IGRvY3VtZW50YXRpb24gd2l0aA0KPiA+IHZh cmlvdXMgc3RydWN0dXJlcyBvbiBob3cgdG8gdXNlIGl0IGluIGV2ZXJ5IHBhcnRpY3VsYXIgY2Fz ZS4NCj4gPiAyLiBQZXJmb3JtYW5jZSBjb25zaWRlcmF0aW9uLg0KPiA+IFdlIGFpbWVkIHRoZSBu ZXcgQVBJIHdpdGggdGhlIGluc2VydGlvbi9kZWxldGlvbiByYXRlIGluIG1pbmQuDQo+ID4gQWRk aW5nIGlmIGNvbmRpdGlvbnMgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiByZXF1ZXN0ZWQgb3BlcmF0 aW9uIHdpbGwgY2F1c2UNCj4gc29tZSBkZWdyYWRhdGlvbi4NCj4gPiBJdCBpcyBwcmVmZXJyZWQg dG8gaGF2ZSBzZXBhcmF0ZSBzbWFsbCBmdW5jdGlvbnMgdGhhdCBkbyBvbmUgam9iIGFuZCBtYWtl IGl0DQo+IGVmZmljaWVudC4NCj4gPiAzLiBDb25mb3JtaW5nIHRvIHRoZSBjdXJyZW50IEFQSS4N Cj4gPiBUaGUgaWRlYSBpcyB0byBoYXZlIHRoZSBzYW1lIEFQSSBhcyB3ZSBoYWQgYmVmb3JlIGFu ZCBleHRlbmQgaXQgd2l0aA0KPiBhc3luY2hyb25vdXMgY291bnRlcnBhcnRzLg0KPiA+IFRoYXQg aXMgd2h5IHdlIHRvb2sgdGhlIGZhbWlsaWFyIGZ1bmN0aW9ucyBhbmQgYWRkZWQgcXVldWUtYmFz ZWQgdmVyc2lvbg0KPiBzIGZvciB0aGVtLg0KPiA+IEl0IGlzIGVhc2llciBmb3IgYXBwbGljYXRp b24gdG8gc3dpdGNoIHRvIG5ldyBBUEkgd2l0aCB0aGlzIGFwcHJvYWNoLg0KPiBJbnRlcmZhY2Vz IGFyZSBzdGlsbCB0aGUgc2FtZS4NCj4gQWxleGFuZGVyLCBJIHRoaW5rIHlvdSBoYXZlIG1hZGUg c29tZSBnb29kIHBvaW50cyBoZXJlLg0KPiBEZWRpY2F0ZWQgQVBJIGlzIGJldHRlciBjb21wYXJl ZCB0byB0aGUgdW5pZmllZCBmdW5jdGlvbi4NCg0KR2xhZCBJIG1hZGUgaXQgY2xlYXJlci4gSXZh biwgd2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhlc2UgY29uc2lkZXJhdGlvbnM/IA0KDQo+ID4N Cj4gPiA+IEJ5IHRoZSB3YXksIHNob3VsZG4ndCB0aGlzIHZhcmlldHkgb2Ygb3BlcmF0aW9uIHR5 cGVzIGNvdmVyIHN1Y2gNCj4gPiA+IGZyb20gdGhlIHR1bm5lbCBvZmZsb2FkIG1vZGVsPyBHZXR0 aW5nIFBNRCdzIG9wYXF1ZSAidHVubmVsDQo+ID4gPiBtYXRjaCIgaXRlbXMgYW5kICJ0dW5uZWwg c2V0IiBhY3Rpb25zIC0gdGhpbmdzIGxpa2UgdGhhdC4NCj4gPiBEb24ndCBxdWl0ZSBnZXQgdGhl IGlkZWEuIENvdWxkIHlvdSBwbGVhc2UgZWxhYm9yYXRlIG1vcmUgb24gdGhpcz8NCj4gPg0KPiA+ ID4gQWxzbywgSSBzdWdnZXN0IHRoYXQgdGhlIGF0dHJpYnV0ZSAiZHJhaW4iDQo+ID4gPiBiZSBy ZXBsYWNlZCBieSAicG9zdHBvbmUiIChpbnZlcnQgdGhlIG1lYW5pbmcpLg0KPiA+ID4gcnRlX2Zs b3dfcV9kcmFpbigpIHNob3VsZCB0aGVuIGJlIHJlbmFtZWQgdG8NCj4gPiA+IHJ0ZV9mbG93X3Ff cHVzaF9wb3N0cG9uZWQoKS4NCj4gPiA+DQo+ID4gPiBUaGUgcmF0aW9uYWxlIGJlaGluZCBteSBz dWdnZXN0aW9uIGlzIHRoYXQgImRyYWluIiB0cmlja3MgcmVhZGVycyBpbnRvDQo+ID4gPiB0aGlu a2luZyB0aGF0IHRoZSBlbnF1ZXVlZCBvcGVyYXRpb25zIGFyZSBnb2luZyB0byBiZSBjb21wbGV0 ZWx5DQo+IHB1cmdlZCwNCj4gPiA+IHdoaWxzdCB0aGUgdHJ1ZSBpbnRlbnRpb24gb2YgdGhlIEFQ SSBpcyB0byAicHVzaCIgdGhlbSB0byB0aGUgaGFyZHdhcmUuDQo+ID4gSSBkb24ndCBoYXZlIGEg c3Ryb25nIG9waW5pb24gb24gdGhpcyBuYW1pbmcsIGlmIHlvdSB0aGluayAicG9zdHBvbmUiIGlz DQo+IGJldHRlci4NCj4gPiBPciB3ZSBjYW4gbmFtZSBpdCBhcyAiZG9vcmJlbGwiIHRvIHNpZ25h bCBhIE5JQyBhYm91dCBzb21lIHdvcmsgdG8gYmUNCj4gZG9uZQ0KPiA+IGFuZCAicnRlX2Zsb3df cV9kb29yYmVsbCIgdG8gZG8gdGhpcyBleHBsaWNpdGx5IGFmdGVyIGEgZmV3IG9wZXJhdGlvbnMu DQo+ID4NCj4gPiA+IHJ0ZV9mbG93X3FfZGVxdWV1ZSgpIGFsc28gbmVlZHMgdG8gYmUgcmV2aXNp dGVkLiBUaGUgbmFtZSBzdWdnZXN0cw0KPiB0aGF0DQo+ID4gPiBzb21lICJ0YXNrcyIgYmUgY2Fu Y2VsbGVkLCB3aGVyZWFzIGluIHJlYWxpdHkgdGhpcyBBUEkgaW1wbGllcyAicG9sbCINCj4gPiA+ IHNlbWFudGljcy4gU28gd2h5IG5vdCBuYW1lIGl0ICJydGVfZmxvd19xX3BvbGwiPw0KPiA+IFRo ZSBwb2xsaW5nIGltcGxpZXMgYW4gYWN0aXZlIGJ1c3ktd2FpdGluZyBvZiB0aGUgcmVzdWx0LiBX aGljaCBpcyBub3QgdGhlDQo+IGNhc2UgaGVyZS4NCj4gPiBXaGF0IHdlIGRvIGlzIG9ubHkgZ2V0 dGluZyByZXN1bHRzIGZvciBhbHJlYWR5IHByb2Nlc3NlZCBvcGVyYXRpb25zLCBoZW5jZQ0KPiAi ZGVxdWV1ZSIgYXMgb3Bwb3NpdGUgdG8gInF1ZXVlIi4NCj4gPiBXaGF0IGRvIHlvdSB0aGluaz8g T3Igd2UgY2FuIGhhdmUgcHVzaCBmb3IgZHJhaW4gYW5kIHB1bGwgZm9yIGRlcXVldWUgYXMNCj4g YW4gYWx0ZXJuYXRpdmUuDQo+ID4NCj4gPiA+IEkgYmVsaWV2ZSB0aGlzIGZ1bmN0aW9uIHNob3Vs ZCByZXR1cm4gYW4gYXJyYXkgb2YgY29tcGxldGlvbnMsIGp1c3QNCj4gPiA+IGxpa2UgaXQgZG9l cyBpbiB0aGUgY3VycmVudCB2ZXJzaW9uLCBidXQgcHJvdmlkZSBhICJjb29raWUiIChjYW4gYmUN Cj4gPiA+IHJlcHJlc2VudGVkIGJ5IGEgdWludHB0cl90IHZhbHVlKSBmb3IgZWFjaCBjb21wbGV0 aW9uIGVudHJ5Lg0KPiA+ID4NCj4gPiA+IFRoZSByYXRpb25hbGUgYmVoaW5kIGNob29zaW5nICJj b29raWUiIG92ZXIgInVzZXJfZGF0YSIgaXMgY2xhcml0eS4NCj4gPiA+IFRlcm0gInVzZXJfZGF0 YSIgc291bmRzIGxpa2UgImZsb3cgYWN0aW9uIGNvbmYiIG9yICJjb3VudGVyIGRhdGEiLA0KPiA+ ID4gd2hpbHN0IGluIHJlYWxpdHkgaXQgbGlrZWx5IHN0YW5kcyBmb3Igc29tZXRoaW5nIG5vcm1h bGx5IGNhbGxlZA0KPiA+ID4gYSBjb29raWUuIFBsZWFzZSBjb3JyZWN0IG1lIGlmIEkndmUgZ290 IHRoYXQgd3JvbmcuDQo+ID4gSSBoYXZlbid0IGhlYXJkIGFib3V0IGNvb2tpZXMgaW4gY29udGV4 dCBub3QgcmVsYXRlZCB0byB3ZWIgYnJvd3NpbmcuDQo+ID4gSSB0aGluayB0aGF0IHVzZXIgZGF0 YSBpcyBtb3JlIHRoYW4gYSBzaW1wbGUgY29va2llLCBpdCBjYW4gY29udGFpbg0KPiA+IGFueXRo aW5nIHRoYXQgYXBwbGljYXRpb24gd2FudHMgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBmbG93IHJ1 bGUsIGkuZS4NCj4gPiBjb25uZWN0aW9uIElELCB0aW1lc3RhbXAsIGFueXRoaW5nLiBJdCBpcyBt b3JlIGdlbmVyYWwgdGVybSBoZXJlLg0KPiA+DQo+ID4gPiBXZWxsLCB0aGUgc2hvcnQgb2YgaXQ6 IHN1Ym1pdF90YXNrKCksIHB1c2hfcG9zdHBvbmVkKCkgYW5kIHBvbGwoKS4NCj4gPiA+IEhhdmlu ZyBhIHVuaWZpZWQgInN1Ym1pdF90YXNrKCkiIEFQSSBzaG91bGQgYWxsb3cgdG8gcmVkdWNlIHRo ZQ0KPiA+ID4gYW1vdW50IG9mIGNvbW1lbnQgZHVwbGljYXRpb24uDQo+ID4gSSdtIGFmcmFpZCBp dCB3b24ndCByZWR1Y2UgdGhlIGFtb3VudCBvZiBjb21tZW50cyBuZWVkZWQgYW55d2F5Lg0KPiA+ IEluc3RlYWQgb2YgNSBkZXNjcmlwdGlvbnMgb2YgcHVycG9zZS1zcGVjaWZpYyBmdW5jdGlvbiB3 ZSB3aWxsIGVuZCB1cCB3aXRoDQo+ID4gYSBodWdlIGJsb2Igb2YgdGV4dCB0cnlpbmcgdG8gZXhw bGFpbiBob3cgdG8gdXNlIGEgc2luZ2xlIGZ1bmN0aW9uIHdpdGgNCj4gPiA1IGRpZmZlcmVudCBp bnB1dCBzdHJ1Y3R1cmVzIGFuZCAzIGRpZmZlcmVudCBvdXRwdXQgdHlwZXMuIFRoYXQgaXMgcmVh bGx5DQo+IG1lc3N5Lg0KPiA+DQo+ID4gPiBJbiB3aGF0IGNvbWVzIHRvIFJTVCBjb21tZW50YXJ5 LCBwbGVhc2UgY29uc2lkZXIgYSBidWxsZXQtZm9ybWF0dGVkDQo+ID4gPiBkZXNjcmlwdGlvbiBm b3IgaW1wcm92ZWQgcmVhZGFiaWxpdHk6DQo+ID4gPg0KPiA+ID4gLSBGbG93IHJ1bGUgbWFuYWdl bWVudCBpcyBkb25lIHZpYSBzcGVjaWFsIGZsb3cgbWFuYWdlbWVudCBxdWV1ZXMNCj4gPiA+IC0g VGhlIHF1ZXVlIG9wZXJhdGlvbnMgYXJlIGFzeW5jaHJvbm91cyBhbmQgbm90IHRocmVhZC1zYWZl DQo+ID4gPiAtIFRoZSBvcGVyYXRpb25zIGNhbiB0aHVzIGJlIGludm9rZWQgYnkgdGhlIGFwcCdz IGRhdGFwYXRoDQo+ID4gPiAtIFRoZSBxdWV1ZSBjb3VudCBpcyBjb25maWd1cmVkIGF0IGluaXRp YWxpc2F0aW9uIHN0YWdlDQo+ID4gPiAtIEF2YWlsYWJsZSBvcGVyYXRpb24gdHlwZXM6IHN1Ym1p dF90YXNrLCBwdXNoX3Bvc3Rwb25lZCBhbmQgcG9sbA0KPiA+ID4gLSBQb2xsaW5nIHByb3ZpZGVz IGNvbXBsZXRpb25zIGZvciBzdWJtaXR0ZWQgdGFza3MNCj4gPiA+IC0gVGhlIGNvbXBsZXRpb25z IGNhbiBiZSByZW9yZGVyZWQgd2l0aGluZyBhIHF1ZXVlDQo+ID4gPiAtIFBvbGxpbmcgbXVzdCBi ZSBkb25lIG9uIHRpbWUgdG8gYXZvaWQgb3ZlcmZsb3dzDQo+ID4gQWdyZWUsIGl0IGRvZXMgc2Vl bSBuaWNlciBhbmQgY2xlYW5lciwgd2lsbCBhZG9wdCB0aGlzIHN0eWxlIGluIHYzLg0KPiA+DQo+ ID4gPiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBhYm92ZSByZXZpZXcgbm90ZXMgYXJlIGp1c3QgYSBx dWljayBwcmltZXIsDQo+ID4gPiBub3RoaW5nIG1vcmUuIEkgbWF5IGJlIG1pc3Rha2VuIHdpdGgg cmVnYXJkIHRvIHNvbWUgYXNwZWN0cy4NCj4gPiA+DQo+ID4gPiBJIGh1bWJseSByZXF1ZXN0IHRo YXQgd2UgYWdyZWUgb24gdGhlIEFQSSBza2V0Y2ggYW5kIG5hbWluZw0KPiA+ID4gYmVmb3JlIGdv aW5nIHRvIHRoZSBuZXh0IHJldmlldyBjeWNsZS4NCj4gPiA+DQo+ID4gPiBUaGFuayB5b3UuDQo+ ID4gVGhhbmtzIGZvciB5b3VyIHN1Z2dlc3Rpb25zLCBsZXQncyBzZWUgaWYgd2UgY2FuIGZpbmQg YSBjb21tb24gcm91bmQgaGVyZS4NCg==