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 7FF39A04A8; Wed, 26 Jan 2022 13:19:59 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0448C42724; Wed, 26 Jan 2022 13:19:59 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2081.outbound.protection.outlook.com [40.107.236.81]) by mails.dpdk.org (Postfix) with ESMTP id 17A2F42716 for ; Wed, 26 Jan 2022 13:19:57 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vaikuvs0TayzF9GmNIhvWuNAGgd3CY1hqE30oqy7KO2aIFn/2eSk2/Rp3qtvzSp3gMaj721iShCTDAi+wAzlzLQEKxjGGyYkgwBB4qQj4y/cybkFG6MgXS7Aox+TDXtSH+NtV4Jb27AocRp3TN3W4BqKMc0kUL/abo8loUXT6ULcl44c8MmXMd1W1St/C1kidlJk84qqjqDyB/2Pm/K3UECLRpw3qaYjZwnBJ4OLdkU6lmfyNjjB5jv+fuC35ICcYyFOeGhcK1saeyX1cBkDgArne1HzIvko49OqirMBj4OGwiqJmeSVPtaxJZGXd06pIALlunvxquDTXOFwtEu8DQ== 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=G/W89SphhD/039gmr0qfAOigZczX47/8ioGfES8VLbQ=; b=WBt3ULjUsfEToiOBAl1M2qYmbsVIO3aK7lBLb2yCdWBOUs18gIIh2m6wiaNN9sS+P0EUCW6JShTIV9rJV7zq050ZrMUdYEoZfKx38L4i6EBDVX/+W5vBrqoAlPPoUAl+HwEykez1LAl4XodoZP8/jpr5K6OshBcH96FdBh32XCLbe56COwpQ82wVKx2eyPuzaX9lxqCUb87tOWt7V5qYuV/sQJgHHuvirPktQhye125WIxk4MT60h7L2sEa3yvJ9NxGtDHX4RlSPmAKKp5Ys6rKtWMLeizbZR4HUb0MzSyh5E+TPr73s3/OKd+HF/auTMSSKaSMqr/gHV2I6ONkdqg== 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=G/W89SphhD/039gmr0qfAOigZczX47/8ioGfES8VLbQ=; b=ufA8MXxqy3Rh1QZSOhOLdyadLO7X1mYVNNouMgRMUblFJOB0KF9EaQ3VvjnrKuDlJR44YQMEgm7auJESNcHSD4PKGzpEHNoON8uajSc5Qp8BVJFunRDcr+99p6Hw0A1XsS0MA6DMDf+3iNCHloZuDlklPOGJda7OtRRRwSxPmreEFS+Y3eTMJAH5nJoPD3KG0CDDQMQ0tIYNZYK39r7kfiqwox0JYShh90PIAqh8I5L0fCIXzylsllpMqutWcT74S675vvTT6pDzZPJfLkr6bKPiM1gDRxb1hGWu/vOxOiTfexq1YSEmykdAHDHbvfCHG7gB/JPGGhhIkCobS4+d1w== Received: from BYAPR12MB3621.namprd12.prod.outlook.com (2603:10b6:a03:db::18) by DM5PR12MB2517.namprd12.prod.outlook.com (2603:10b6:4:bb::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Wed, 26 Jan 2022 12:19:55 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by BYAPR12MB3621.namprd12.prod.outlook.com (2603:10b6:a03:db::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Wed, 26 Jan 2022 12:19:43 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::78:438a:c6b7:1cc1]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::78:438a:c6b7:1cc1%3]) with mapi id 15.20.4909.019; Wed, 26 Jan 2022 12:19:43 +0000 From: Ori Kam To: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Bruce Richardson CC: Jerin Jacob , Alexander Kozyrev , dpdk-dev , Ivan Malov , Andrew Rybchenko , Ferruh Yigit , "mohammad.abdul.awal@intel.com" , Qi Zhang , Jerin Jacob , Ajit Khaparde , David Marchand , Olivier Matz , Stephen Hemminger Subject: RE: [PATCH v2 01/10] ethdev: introduce flow pre-configuration hints Thread-Topic: [PATCH v2 01/10] ethdev: introduce flow pre-configuration hints Thread-Index: AQHYDIBlr97eIE8EiUKphVVj8UOlEqxyRq0AgAAx7gCAAAL1gIAABlkAgAFK2cCAAEewAIAAAT0AgAAGo/CAARAvAIAACDqAgAAP0AA= Date: Wed, 26 Jan 2022 12:19:43 +0000 Message-ID: References: <20211006044835.3936226-1-akozyrev@nvidia.com> <8883807.CDJkKcVGEf@thomas> In-Reply-To: <8883807.CDJkKcVGEf@thomas> 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: d472de24-2294-40a3-fa23-08d9e0c62295 x-ms-traffictypediagnostic: BYAPR12MB3621:EE_|DM5PR12MB2517: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: l/FG9tVrvKtsX4tuiWc9KcrbPbf86tZQixS6r6yi67cLmgfO4yIQMWygIqtMS943Z9y3ASJZv+9LP0e1gk2ziHnjzDmYfcpvT+ivSPJ/OmtfOHV4ovgKVszbFQoFndOexM+kG9ASNcKQBes7g1N2AVFtpVcI5UG5BXrrUVVC1O/EW7wNAyuPxdOP2BVxy6BigfYglUlUT99XQ+KuM4m71hd3J0bONS0YHfQ0GrhiJxRMxDYPabeFwyFYEtU08wVLPh6U+pDj60fYhh4RMfGP1+OQAERC1gH2oQ7gXWRxMRiJJ4M8pZetYp0eHK4Ypsz9jmtMPzQdHidlnCZfffic4htI+4CaytTeNx0Am1xV8qUd3p3QSu3Tkp/HJauJp0iWtTtrmVd4NRsyZyig7VN+XCuhcYsBaCfAh8CMPO9ixUP4HFfRzGkBGneSCTt3WjbV2bNtc6dYjfesnwfcJLTxiE62dorPHJHIKhEU8mW+Wpxx+tmuwERrpwhEKto8upKPLJ3+wcdyFRgdAFUV/T1KBjH/b7TD6Cirwk/RxYLWx+3YUZAYA0ucq46dPvMG19Acn2dTv25vi+ZIwpHtPoX4VVdkP9glidSMrOlE1QoZ7sSYCqgXQnOmEA1R7U5v+KnATFlE41rr/vCNg37mMgfiG3m/wwbliqIpwO86XDOd4MFKaBwwE8g0mVP5NYlAodCrapZGHIaGvBXzLeNowIzXOQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR12MB3621.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(86362001)(53546011)(7696005)(55016003)(54906003)(33656002)(38100700002)(110136005)(316002)(6506007)(9686003)(508600001)(7416002)(66446008)(8936002)(122000001)(186003)(38070700005)(76116006)(83380400001)(26005)(71200400001)(4326008)(66946007)(8676002)(2906002)(52536014)(5660300002)(64756008)(66556008)(66476007)(20210929001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U3VJbDIrVy81K0tIU25KUGRPZCtWYkkrUlA5c2U1aUNQclVnRVVQbHpsNDRW?= =?utf-8?B?SEdWRUVyeGFWa1F5ZHA5OTNLQlp5MktCNFgwQ3d3dzhESU1FUTJpTzFPSldC?= =?utf-8?B?L242by9IUHZPREUxSHVUb3J4T05JSWM0YlZaZEFuT2dPY1NLSzFqVkRuVlBM?= =?utf-8?B?NlpHY1NOcXNuYmFaa1NIYkRhc0RCNGFwcXdsNTlFWnZ2TGQ4NmpjSEI5WHNL?= =?utf-8?B?cDNSK3RGc0NqUmlONVJueXBKSTZwc0d5eWM1OTJQNVp6SmJ6MXR4bVdxVmJa?= =?utf-8?B?NDBPZ3NkNUpnWDY4RDdPczBjdy83bFpRcFhCZEZ2SmhaeGNkN3JXUThiUDNv?= =?utf-8?B?T1B2RXBNNWhvVzNrOVc4b0NFUE9kcmJnd0EzS2RHdSs3Vk8xRjc3Tm9MbmNF?= =?utf-8?B?cFEwOVFONXRWcHlXdVBOVDRab3BuMkNhSDV6RHZRZ2ROcTl1eFZWb1A5NHBT?= =?utf-8?B?aGI4TlhkWGxzbWVpTDllSmJYSG9sSVVTdzdja0dFS1VwTUw1dXVRdEc2aWdY?= =?utf-8?B?azBFZGcxTWNuV3hON0gxQ3pRenJ4MVE0WE5rc2Y2ZmJ1V2JYNWl0L0ZMUHN6?= =?utf-8?B?U1d6VEt5Z1ljanVRd0E4VXV5bTA5S3JjVzh2a0dSSkdIWmswa1k3SE0yc1dZ?= =?utf-8?B?OExCb2tXbDdqb1NtU1pJRS9XZzVqZzE2Tng4K2hrcU0zeWNhRkY4dStsQWkw?= =?utf-8?B?cFlvT000dHZHa0VLdGdrUmpkK1RMbFlFOHl4REtXNWMwL2QxNFN1bUJSQzhD?= =?utf-8?B?Tk5iYko5ZFdVY25FQmdWNU1NcHoxWFordlBtQ2YyL0hSc3d3c1RXWnpENWxq?= =?utf-8?B?cUJ3YjFRUUIvOGxHUzllM1V2NU1neWhCdXdVM2JuYjJMUmNFNEhPdXlxV1hv?= =?utf-8?B?WjJMVXFwTCsvd0N2NkJyOWUrQjdJZ2gxQnVtTmRCMlRxWkxsK1NzT0wwUEsr?= =?utf-8?B?SCtQSVZremZKNGMxcDVzSTRGSFZpczA3RWNWS0JFT0cwak9aeVFYdGZiTWtX?= =?utf-8?B?WTZTKzAvQWVpRTVRREhYdTR0VzJhRDdvVHhqdW1CVHltUFZydGxpci9UZlVs?= =?utf-8?B?T2xGcWdsUkw5bnVoMkNYNWpqS3ZtNUNiUzBNNmVSeGhHN014NTMyVFRFNGdx?= =?utf-8?B?bGF4bEZnMkVhOWFuNGlSb2RvTG41ZXNOSUdJODR4Y1pjcW9pdE9hdDAyUnE5?= =?utf-8?B?RGxPcW96d2dVZ01jUHhqNk5rOElFM05kcG0rK0FGTGI3Yk5NYmpva3VlajNH?= =?utf-8?B?MkFuWUhHMnU2L3VJWmtTYlJuWmRvL2VzTVFrTS90L25XTlpUYjVvSk9VS2Iz?= =?utf-8?B?eE5LRDVOSWRpNkExVTFpcVY2Y3IwbVJlVnRFZEVrZTRMV2FyNngrWkZWRWRQ?= =?utf-8?B?K0FrdVViZTRpS0dYR0lVWVJiaXRpcTZlem9CUGRaYUVpY01ZRzVuS2RDU0N2?= =?utf-8?B?RERoRmo0K3AvRlE1RFNIUnBuaEZjM2tPdngwVGhSMzJZM1F4b0NRaUF6VnZZ?= =?utf-8?B?QlFxWDhpcStHSlA0NEFqczVFUkM3T01kQnNvQ0Y5RlNVR3NvdGpkOTc2L1J2?= =?utf-8?B?WkdpdGZmQ3BwYlNmTTVXaHVMMWpUdXIzUk9TaTJTZ3RvUEJ4VWZTWUVpQXMz?= =?utf-8?B?RStmeEFNQzhaVmdUVU1kS0FlWW9vZWl0cm1zNHo3cFR1U1l2bFJDRTJMQXFE?= =?utf-8?B?K3FLS2VlcGY1VkhPTldoRXIvcSsxRHBuTkw2WkJOOC9uZXBrbE8xWnlTU3E5?= =?utf-8?B?aUJmeDF4bmVKOXB4ZW9LWG5rMnNLV296a01DWDlUSW1vMVJ2cDFpU2pzN1NV?= =?utf-8?B?dXlPODg1cFQ1d2RSaTdsN0w1UWRacCtTN1NqSExWZEpUV29xam9VL1R4WVI0?= =?utf-8?B?N3Q0b3NwTkM0byswb3ZZOGZNenNvcElrYVVMdkEzc0dDNFFMbW1nYnM5enhT?= =?utf-8?B?ZGpGcXM1MWNlNGtEY3ZBRUNMK2FJZWZya0EvOVBicjl3blU0aVU4am9sa0dr?= =?utf-8?B?bER1c3R4ZVpJaDZYTnh5dFZhMjJDcEZFWWdVVWxqNUlVb1pNemlRNE9ETnJT?= =?utf-8?B?c0VpZDQ2TDZHOGlxbkI4VHYvOUU3VUpRaURCODdQeDdvT3Z1QmlUTEk0OHRl?= =?utf-8?B?TGVuakNjajBJTFh1OFVrYTdOZjdSUG5KM1BjWGpYTGJFaUxIdE5YR2NNbEdT?= =?utf-8?Q?Z7mQqzc8CzJMNciwOsEPYWs=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: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d472de24-2294-40a3-fa23-08d9e0c62295 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jan 2022 12:19:43.7411 (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: 3MdHac6cjQzYgTj80PjG+f4bn0pGLxeZjumi5BSgBqf1oEh2GgU+emuQ/LdkDSS20LyuP5iips8dKNVWKxoA6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB2517 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVGhvbWFzIE1vbmphbG9u IDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMjYsIDIw MjIgMToyMiBQTQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDAxLzEwXSBldGhkZXY6IGludHJv ZHVjZSBmbG93IHByZS1jb25maWd1cmF0aW9uIGhpbnRzDQo+IA0KPiAyNi8wMS8yMDIyIDExOjUy LCBCcnVjZSBSaWNoYXJkc29uOg0KPiA+IFRoZSBzY2VuYXJpbyBpcyBhcyBmb2xsb3dzLiBTdXBw b3NlIHdlIGhhdmUgdGhlIGluaXRpYWwgc3RhdGUgYXMgYmVsb3c6DQo+ID4NCj4gPiBzdHJ1Y3Qg eF9kZXZfY2ZnIHsNCj4gPiAgICBpbnQgeDsNCj4gPiB9Ow0KPiA+DQo+ID4gaW50DQo+ID4geF9k ZXZfY2ZnKGludCBkZXZfaWQsIHN0cnVjdCB4X2Rldl9jZmcgKmNmZykNCj4gPiB7DQo+ID4gICAg c3RydWN0IHhfZGV2ICpkZXYgPSB4X2RldnNbaWRdOw0KPiA+ICAgIC8vIHNvbWUgc2V0dXAvY29u ZmlnIG1heSBnbyBoZXJlDQo+ID4gICAgcmV0dXJuIGRldi0+Y29uZmlndXJlKGNmZywgc2l6ZW9m KGNmZykpOyAvLyBzaXplb2YoY2ZnKSA9PSA0DQo+ID4gfQ0KPiA+DQo+ID4gTm93LCBzdXBwb3Np bmcgd2UgbmVlZCB0byBhZGQgaW4gYSBuZXcgZmllbGQgaW50byB0aGUgY29uZmlnIHN0cnVjdHVy ZSwgYQ0KPiA+IHZlcnkgY29tbW9uIG9jY3VyYW5jZS4gVGhpcyB3aWxsIGluZGVlZCBicmVhayB0 aGUgQUJJLCBzbyB3ZSBuZWVkIHRvIHVzZQ0KPiA+IEFCSSB2ZXJzaW9uaW5nLCB0byBlbnN1cmUg dGhhdCBhcHBzIHBhc3NpbmcgaW4gdGhlIG9sZCBzdHJ1Y3R1cmUsIG9ubHkgY2FsbA0KPiA+IGEg ZnVuY3Rpb24gd2hpY2ggZXhwZWN0cyB0aGUgb2xkIHN0cnVjdHVyZS4gVGhlcmVmb3JlLCB3ZSBu ZWVkIGEgY29weSBvZg0KPiA+IHRoZSBvbGQgc3RydWN0dXJlLCBhbmQgYSBmdW5jdGlvbiB0byB3 b3JrIG9uIGl0LiBUaGlzIGdpdmVzIHRoaXMgcmVzdWx0Og0KPiA+DQo+ID4gc3RydWN0IHhfZGV2 X2NmZyB7DQo+ID4gCWludCB4Ow0KPiA+IAlib29sIGZsYWc7IC8vIG5ldyBmaWVsZDsNCj4gPiB9 Ow0KPiA+DQo+ID4gc3RydWN0IHhfZGV2X2NmZ192MjIgeyAvLyBuZWVkZWQgZm9yIEFCSS12ZXJz aW9uZWQgZnVuY3Rpb24NCj4gPiAJaW50IHg7DQo+ID4gfTsNCj4gPg0KPiA+IC8qIHRoaXMgZnVu Y3Rpb24gd2lsbCBvbmx5IGJlIGNhbGxlZCBieSAqbmV3bHktbGlua2VkKiBjb2RlLCB3aGljaCB1 c2VzDQo+ID4gICogdGhlIG5ldyBzdHJ1Y3R1cmUgKi8NCj4gPiBpbnQNCj4gPiB4X2Rldl9jZmco aW50IGRldl9pZCwgc3RydWN0IHhfZGV2X2NmZyAqY2ZnKQ0KPiA+IHsNCj4gPiAgICBzdHJ1Y3Qg eF9kZXYgKmRldiA9IHhfZGV2c1tpZF07DQo+ID4gICAgLy8gc29tZSBzZXR1cC9jb25maWcgbWF5 IGdvIGhlcmUNCj4gPiAgICByZXR1cm4gZGV2LT5jb25maWd1cmUoY2ZnLCBzaXplb2YoY2ZnKSk7 IC8vIHNpemVvZihjZmcpIGlzIG5vdyA4DQo+ID4gfQ0KPiA+DQo+ID4gLyogdGhpcyBmdW5jdGlv biBpcyBjYWxsZWQgYnkgYXBwcyBsaW5rZWQgYWdhaW5zdCBvbGQgdmVyc2lvbiAqLw0KPiA+IGlu dA0KPiA+IHhfZGV2X2NmZ192MjIoaW50IGRldl9pZCwgc3RydWN0IHhfZGV2X2NmZ192MjIgKmNm ZykNCj4gPiB7DQo+ID4gICAgc3RydWN0IHhfZGV2ICpkZXYgPSB4X2RldnNbaWRdOw0KPiA+ICAg IC8vIHNvbWUgc2V0dXAvY29uZmlnIG1heSBnbyBoZXJlDQo+ID4gICAgcmV0dXJuIGRldi0+Y29u ZmlndXJlKCh2b2lkICopY2ZnLCBzaXplb2YoY2ZnKSk7IC8vIHNpemVvZihjZmcpIGlzIHN0aWxs IDQNCj4gPiB9DQo+ID4NCj4gPiBXaXRoIHRoZSBhYm92ZSBsaWJyYXJ5IGNvZGUsIHdlIGhhdmUg ZGlmZmVyZW50IGZ1bmN0aW9ucyB1c2luZyB0aGUNCj4gPiBkaWZmZXJlbnQgc3RydWN0dXJlcywg c28gQUJJIGNvbXBhdGliaWxpdHkgaXMgcHJlc2VydmVkIC0gYXBwcyBwYXNzaW5nIGluIGENCj4g PiA0LWJ5dGUgc3RydWN0IGNhbGwgYSBmdW5jdGlvbiB1c2luZyB0aGUgNC1ieXRlIHN0cnVjdCwg d2hpbGUgbmV3ZXIgYXBwcyBjYW4NCj4gPiB1c2UgdGhlIDgtYnl0ZSB2ZXJzaW9uLg0KPiA+DQo+ ID4gVGhlIGZpbmFsIHBhcnQgb2YgdGhlIHB1enpsZSBpcyB0aGVuIGhvdyBkcml2ZXJzIHJlYWN0 IHRvIHRoaXMgY2hhbmdlLg0KPiA+IE9yaWdpbmFsbHksIGFsbCBkcml2ZXJzIG9ubHkgdXNlICJ4 IiBpbiB0aGUgY29uZmlnIHN0cnVjdHVyZSBiZWNhdXNlIHRoYXQNCj4gPiBpcyBhbGwgdGhhdCB0 aGVyZSBpcy4gVGhhdCB3aWxsIHN0aWxsIGNvbnRpbnVlIHRvIHdvcmsgZmluZSBpbiB0aGUgYWJv dmUNCj4gPiBjYXNlLCBhcyBib3RoIDQtYnl0ZSBhbmQgOC1ieXRlIHN0cnVjdHMgaGF2ZSB0aGUg c2FtZSB4IHZhbHVlIGF0IHRoZSBzYW1lDQo+ID4gb2Zmc2V0LiBpLmUuIG5vIGRyaXZlciB1cGRh dGVzIGZvciB4X2RldiBpcyBuZWVkZWQuDQo+ID4NCj4gPiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYg dGhlcmUgYXJlIGRyaXZlcnMgdGhhdCBkbyB3YW50L25lZWQgdGhlIG5ldyBmaWVsZCwNCj4gPiB0 aGV5IGNhbiBhbHNvIGdldCB0byB1c2UgaXQsIGJ1dCB0aGV5IGRvIG5lZWQgdG8gY2hlY2sgZm9y IGl0cyBwcmVzZW5jZQ0KPiA+IGJlZm9yZSB0aGV5IGRvIHNvLCBpLmUgdGhleSB3b3VsZCB3b3Jr IGFzIGJlbG93Og0KPiA+DQo+ID4gCWlmIChzaXplX3BhcmFtID4gc3RydWN0KHhfZGV2X2NmZ192 MjIpKSB7IC8vIG9yICI9PSBzdHJ1Y3QoeF9kZXZfY2ZnKSINCj4gPiAJCS8vIHVzZSBmbGFncyBm aWVsZA0KPiA+IAl9DQo+ID4NCj4gPiBIb3BlIHRoaXMgaXMgY2xlYXIgbm93Lg0KPiANCj4gWWVz LCB0aGlzIGlzIHRoZSBraW5kIG9mIGV4cGxhbmF0aW9uIHdlIG5lZWQgaW4gb3VyIGd1aWRlbGlu ZSBkb2MuDQo+IEFsdGVybmF0aXZlcyBjYW4gYmUgZG9jdW1lbnRlZCBhcyB3ZWxsLg0KPiBJZiB3 ZSBjYW4gbGlzdCBwcm9zL2NvbnMgaW4gdGhlIGRvYywgaXQgd2lsbCBiZSBlYXNpZXIgdG8gY2hv b3NlDQo+IHRoZSBiZXN0IGFwcHJvYWNoIGFuZCB0byBleHBsYWluIHRoZSBjaG9pY2UgZHVyaW5n IGNvZGUgcmV2aWV3Lg0KPiANCj4gDQpUaGFua3MgeW91IHZlcnkgbXVjaCBmb3IgdGhlIGNsZWFy IGV4cGxhbmF0aW9uLg0KDQpUaGUgZHJhdyBiYWNrIGlzIHRoYXQgd2UgbmVlZCBhbHNvIHRvIGR1 cGxpY2F0ZSB0aGUgZnVuY3Rpb25zLg0KVXNpbmcgdGhlIGZsYWdzL3ZlcnNpb24gd2Ugb25seSBu ZWVkIHRvIGNyZWF0ZSBuZXcgc3RydWN0dXJlcw0KYW5kIGZyb20gYXBwbGljYXRpb24gcG9pbnQg b2YgdmlldyBpdCBrbm93cyB3aGF0IGV4dGEgZmllbGRzIGl0IGdldHMuDQooSSBhZ3JlZSB0aGF0 IGFwcGxpY2F0aW9uIGtub3dsZWRnZSBoYXMgZG93bnNpZGVzIGJ1dCBhbHNvIGFkdmFudGFnZXMp DQoNCkluIHRoZSBjYXNlIG9mIGZsYWdzL3ZlcnNpb24geW91ciBleGFtcGxlIHdpbGwgbG9vayBs aWtlIHRoaXMgKHRoaXMgaXMgZm9yIHRoZSByZWNvcmQgYW5kIG1heSBvdGhlcg0KZGV2ZWxvcGVy cyBhcmUgaW50cmVzdGVkKToNCg0Kc3RydWN0IHhfZGV2X2NmZyB7ICAvL29yaWdpbmFsIHN0cnVj dA0KCWludCB2ZXI7DQoJaW50IHg7DQp9Ow0KIA0Kc3RydWN0IHhfZGV2X2NmZ192MiB7IC8vIG5l dyBzdHJ1Y3QNCglpbnQgdmVyOw0KIAlpbnQgeDsNCglib29sIGZsYWc7IC8vIG5ldyBmaWVsZDsN CiB9Ow0KDQoNClRoZSBmdW5jdGlvbiBpcyBhbHdheXMgdGhlIHNhbWUgZnVuY3Rpb246DQogeF9k ZXZfY2ZnKGludCBkZXZfaWQsIHN0cnVjdCB4X2Rldl9jZmcgKmNmZykNCiB7DQogICAgc3RydWN0 IHhfZGV2ICpkZXYgPSB4X2RldnNbaWRdOw0KICAgIC8vIHNvbWUgc2V0dXAvY29uZmlnIG1heSBn byBoZXJlDQogICAgcmV0dXJuIGRldi0+Y29uZmlndXJlKGNmZyk7IA0KIH0NCg0KV2hlbiBjYWxs aW5nIHRoaXMgZnVuY3Rpb24gd2l0aCBvbGQgc3RydWN0Og0KWF9kZXZfY2ZnKGlkLCAoc3RydWN0 IHhfZGV2X2NmZyAqKWNmZykNCg0KV2hlbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2l0aCBuZXcg c3RydWN0Og0KWF9kZXZfY2ZnKGlkLCAoc3RydWN0IHhfZGV2X2NmZyAqKWNmZ192MikNCg0KSW4g UE1EOg0KSWYgKGNmZy0+dmVyID49IDIpDQoJLy8gdmVyc2lvbiAyIGxvZ2ljDQpFbHNlIElmIChj ZmctPnYgPj0wKQ0KCS8vIGJhc2UgdmVyc2lvbiBsb2dpYw0KDQoNCldoZW4gdXNpbmcgZmxhZ3Mg aXQgZ2l2ZXMgZXZlbiBtb3JlIGNvbnRyb2wgc2luY2UgcG1kIGNhbiB0ZWxsIGV4YWN0bHkgd2hh dA0KZmVhdHVyZXMgYXJlIHJlcXVpcmVkLg0KDQpBbGwgb3B0aW9ucyBoYXZlIHByb25zL2NvbnMN Ckkgdm90ZSBmb3IgdGhlIHZlcnNpb24gb25lLg0KDQpXZSBjYW4gaGF2ZSBhIHBvbGwg8J+Yig0K T3IgbGlrZSBUaG9tYXMgc2FpZCBsaXN0IHByb3MgYW5kIGNvbnMgYW5kIGVhY2ggc3Vic3lzdGVt IGNhbg0KaGF2ZSBpdCBvd24gc2VsZWN0aW9uLg0K