From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C6625A0524; Mon, 27 Jul 2020 07:10:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5F0041BFE2; Mon, 27 Jul 2020 07:10:53 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 1505D1BFD9 for ; Mon, 27 Jul 2020 07:10:51 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 06R5A38b031941; Sun, 26 Jul 2020 22:10:51 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=FvPgV3e19QK9nUJuYb+3ZdP4wd6ZhZKlKT37HTQiGsM=; b=FG9z8AWqxiKflOhokNFRmz4TzZEmYGjjYVIa9l/r6cEzcOUdIF6pRXYwNTTyEoh1X7Yd GoUTkkhqgsQfyEz1+bE3B731wEtENrBmPaBT7IWUSAa0k1CrnLgyv34F1aPfcdB4aw9W FLBaxZ8gL+jOANA2YfMAG+MM8cR1zg/XLkudI1IK6xhnUvduAyDskD6rgTF7mTbYihkQ v3qEfJWefvf3XB8BUxWGka9b1UQi/LV0PSgD5/m9rKUjCamn9vJFnXxUDfo6keMKTYhT y4mP2bLUD9G+V1YnLnzrJ8tWIWep0GNognxOS3Gl0lcLy3DMMD2kPs7uEurbvPg5jPrj pg== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 32gm8ndeq1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 26 Jul 2020 22:10:51 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 26 Jul 2020 22:10:49 -0700 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.57) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Sun, 26 Jul 2020 22:10:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jpWIlfJ0C5O1vQKYqPamoThf7UZBd1quE6Cy6SW54r1W+3htrLKkH5+GeAcQhgacACBpdAf9JYEAaKUtkKhWYm4uvsF0ARbRW+9AeFrRZEfjZziqBW5ImiGlVMkVLpOD/Gdb1mLn+6XzZuKz+UuoOUmD8lm06kkbBq6bNeCvbtEzxs1AtA5sqdXQbdrhbkAxEKvVoDB/bpw6naXbWH8GgNhq4HPm4oQLMixFmfBhEaPV5KYkM5Vd3MDW9gX5zYX7VsLCDfwtKlnQOtMMFpkB/0sXawjomyLDCrjiHXJweefyqKgoCPi7r1xOnnhU+1Q9CnQTJ5GpWOEgqvoYcSWBlA== 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-SenderADCheck; bh=FvPgV3e19QK9nUJuYb+3ZdP4wd6ZhZKlKT37HTQiGsM=; b=FCoAlPAwYOASAl5l7QW1c237kVfsXrA8kMvAy6m+ntDpPKyjjxg1yN2i2Q/LG/LqGjuhXEdrDqhiwsGgaZamwR66Khvr5NE5vTWqdfxVeKl5fQVyawbEHmFN2FdEfwI5+h+LgLd0WP+Uv4b9oK0UbBmhmow0pJ3JOKTzcE8LAVW8j8KbsxNta0v+rZQfTtGNA0npD8Y4rCNXzuECZaRvTZyyvyOAcQm2abgRi3/2VF7NAVyl4JTNzWXICbWEGtCE+6LnMJlVvRQh7DvS9BqrawnjjebsrAKkeUCpJUDBbg3i8AX2nh+3eajXNqqKZYVMSCKIxy9eWDqC9RYvx7lR7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FvPgV3e19QK9nUJuYb+3ZdP4wd6ZhZKlKT37HTQiGsM=; b=tNaq51YLBxqrpYfP9zGOWoXq+zgq49iWSyrpMsFyg+USa5+XqztRTanWuvEpU2ZzJwi5NBDCT1vurwSIaLpwswHUGSZd6M+jjscFwxKdXUtbyt3yP977cfV7wNogYCz8eiU47386+vQikuN5dlGQ86D/N7wFnLPdOvOtw51y1yo= Received: from BY5PR18MB3379.namprd18.prod.outlook.com (2603:10b6:a03:1a5::14) by BYAPR18MB2999.namprd18.prod.outlook.com (2603:10b6:a03:137::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.23; Mon, 27 Jul 2020 05:10:30 +0000 Received: from BY5PR18MB3379.namprd18.prod.outlook.com ([fe80::f062:c88e:8183:eb7d]) by BY5PR18MB3379.namprd18.prod.outlook.com ([fe80::f062:c88e:8183:eb7d%7]) with mapi id 15.20.3216.033; Mon, 27 Jul 2020 05:10:30 +0000 From: Manish Chopra To: =?utf-8?B?R2HDq3RhbiBSaXZldA==?= CC: "jerinjacobk@gmail.com" , Jerin Jacob Kollanukkaran , "ferruh.yigit@intel.com" , "dev@dpdk.org" , Igor Russkikh , "Rasesh Mody" , GR-Everest-DPDK-Dev , "rosen.xu@intel.com" , "tianfei.zhang@intel.com" , "heinrich.kuhn@netronome.com" , "qiming.yang@intel.com" , "qi.z.zhang@intel.com" Thread-Topic: [EXT] Re: [PATCH v3 1/6] drivers: add generic API to find PCI extended cap Thread-Index: AQHWYaa9xO4ksgzql0WSO310IhP4J6kYj9AAgAGwFcCAADpYAIAAY+LQ Date: Mon, 27 Jul 2020 05:10:30 +0000 Message-ID: References: <20200724103846.12640-1-manishc@marvell.com> <20200724103846.12640-2-manishc@marvell.com> <20200725173224.okzt3owicgdjun5s@u256.net> <20200726224742.zyf7mn52zh3nvxpk@u256.net> In-Reply-To: <20200726224742.zyf7mn52zh3nvxpk@u256.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: u256.net; dkim=none (message not signed) header.d=none;u256.net; dmarc=none action=none header.from=marvell.com; x-originating-ip: [157.37.234.215] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a22ddc4e-7c6b-40a6-ff11-08d831eb6204 x-ms-traffictypediagnostic: BYAPR18MB2999: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wNgy2ATe/fXDHot7/DXUcoqO5L+761JZ57GKGvuL4pHl2eo4/kg6sKqRzmHXQY4GG5tFcN1FJCOXlbMugp8/52Kmk4B4aNihPZUYP3+VthJB9dPYR0e9nl+T0u5MT4Ia0WrKpPxjHd+ytymHjK4620wC2W3pi1qDguYfI6qzi85Xh90KN54HwFTGaAkZxR+hPKkRn0Cy/FH1+V7vE1ddT7uaKHtQfUpE9J3y3cOuya1nFXR8S6l+QzQb5my8gTrC/oMr4cCx1Ti5LrQtsBODY6+tUIu0X+3Ia5LRLPT9Kk+hIw9zvwyaGjk9pM+O94V72Mz/YFN1ux87D+hNZxLPJHtcn+ehaIHhQ9uwPcmZ/kJKxk5VVIfMhTipUXIrX9hkQIEHXQkRkEzino0HAVgF6A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR18MB3379.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(376002)(366004)(136003)(396003)(39850400004)(8676002)(66476007)(7696005)(71200400001)(66946007)(33656002)(86362001)(2906002)(8936002)(5660300002)(6916009)(66574015)(83380400001)(54906003)(186003)(64756008)(66556008)(316002)(66446008)(55016002)(6506007)(53546011)(26005)(76116006)(52536014)(9686003)(478600001)(4326008)(37363001)(41533002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: PQ0lcvqFu7P1RIqZkmbrtEAD0OTKBrNmp9SKOz9jhD2HoLy2mHpRhsAskmPWpUSQW44gg8gfUD2y8dbRo/tsCFWVtEQTHcJCMNbnlr4f91TrYRwDHFQGY+n6xSbSyvFWZZnef95HIBsGJZAe4RpfcIZ0Z666BYAXlbKI7MhAYKJ/jG/hGAMkiMbOSnLY12TJT9nAxb7JvnAtVTFLE/yozYiUaN2j+H+nbABRdN6cN4EHX14Y1MWCnK/Fg+RiTrknclSy5jrdZ7TKfzgJua4m3ZRT7xVyamHrN6DWp6tlxuDbnx2vLJcU8UE8w3+hBegpFw7T+T+pmZ8G85HaOSRA7HHjXp6pIeMTg2mhr+wVrf3rAxuWKWIwIMQeb9TXKmXu3vnFwv9teNfj+C52SYp2qQraOq5iR4CC4Pna9hQQLAtqxKGEHD+HrBm61RJxY3hFiBJ3iMrqeY+WzmY5esTedxwV/iNVNZO3F7aA+0vohg8rvGATOC8yrNk3yEKCDFTy Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR18MB3379.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a22ddc4e-7c6b-40a6-ff11-08d831eb6204 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jul 2020 05:10:30.2146 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5AfFR0j/5cAY3q4Z4Av5Mkn9YDF+8hELisUPAFg+C8mflr6AlQSB3UirW78Vz+W7hjReqg5SBJWOhyb42L1V4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2999 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-07-27_03:2020-07-27, 2020-07-27 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v3 1/6] drivers: add generic API to find PCI extended cap X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHYcOrdGFuIFJpdmV0IDxncml2 ZUB1MjU2Lm5ldD4NCj4gU2VudDogTW9uZGF5LCBKdWx5IDI3LCAyMDIwIDQ6MTggQU0NCj4gVG86 IE1hbmlzaCBDaG9wcmEgPG1hbmlzaGNAbWFydmVsbC5jb20+DQo+IENjOiBqZXJpbmphY29ia0Bn bWFpbC5jb207IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT47 DQo+IGZlcnJ1aC55aWdpdEBpbnRlbC5jb207IGRldkBkcGRrLm9yZzsgSWdvciBSdXNza2lraA0K PiA8aXJ1c3NraWtoQG1hcnZlbGwuY29tPjsgUmFzZXNoIE1vZHkgPHJtb2R5QG1hcnZlbGwuY29t PjsgR1ItRXZlcmVzdC0NCj4gRFBESy1EZXYgPEdSLUV2ZXJlc3QtRFBESy1EZXZAbWFydmVsbC5j b20+OyByb3Nlbi54dUBpbnRlbC5jb207DQo+IHRpYW5mZWkuemhhbmdAaW50ZWwuY29tOyBoZWlu cmljaC5rdWhuQG5ldHJvbm9tZS5jb207DQo+IHFpbWluZy55YW5nQGludGVsLmNvbTsgcWkuei56 aGFuZ0BpbnRlbC5jb20NCj4gU3ViamVjdDogUmU6IFtFWFRdIFJlOiBbUEFUQ0ggdjMgMS82XSBk cml2ZXJzOiBhZGQgZ2VuZXJpYyBBUEkgdG8gZmluZCBQQ0kNCj4gZXh0ZW5kZWQgY2FwDQo+IA0K PiBPbiAyNi8wNy8yMCAxOTo0NyArMDAwMCwgTWFuaXNoIENob3ByYSB3cm90ZToNCj4gDQo+IFsu Li5dDQo+IA0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9wY2kvcnRlX3BjaS5oIGIv bGliL2xpYnJ0ZV9wY2kvcnRlX3BjaS5oDQo+ID4gPiA+IGluZGV4IGEwMzIzNWRhMS4uZmVjNTFl MTVhIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9saWIvbGlicnRlX3BjaS9ydGVfcGNpLmgNCj4gPiA+ ID4gKysrIGIvbGliL2xpYnJ0ZV9wY2kvcnRlX3BjaS5oDQo+ID4gPiA+IEBAIC0yMiw2ICsyMiwy MiBAQCBleHRlcm4gIkMiIHsNCj4gPiA+ID4gICNpbmNsdWRlIDxpbnR0eXBlcy5oPg0KPiA+ID4g PiAgI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+ICsv Kg0KPiA+ID4gPiArICogQ29udmVudGlvbmFsIFBDSSBhbmQgUENJLVggTW9kZSAxIGRldmljZXMg aGF2ZSAyNTYgYnl0ZXMgb2YNCj4gPiA+ID4gKyAqIGNvbmZpZ3VyYXRpb24gc3BhY2UuICBQQ0kt WCBNb2RlIDIgYW5kIFBDSWUgZGV2aWNlcyBoYXZlIDQwOTYNCj4gPiA+ID4gK2J5dGVzIG9mDQo+ ID4gPiA+ICsgKiBjb25maWd1cmF0aW9uIHNwYWNlLg0KPiA+ID4gPiArICovDQo+ID4gPiA+ICsj ZGVmaW5lIFJURV9QQ0lfQ0ZHX1NQQUNFX1NJWkUJCTI1Ng0KPiA+ID4gPiArI2RlZmluZSBSVEVf UENJX0NGR19TUEFDRV9FWFBfU0laRQk0MDk2DQo+ID4gPiA+ICsNCj4gPiA+ID4gKy8qIEV4dGVu ZGVkIENhcGFiaWxpdGllcyAoUENJLVggMi4wIGFuZCBFeHByZXNzKSAqLw0KPiA+ID4gPiArI2Rl ZmluZSBSVEVfUENJX0VYVF9DQVBfSUQoaGVhZGVyKQkoaGVhZGVyICYgMHgwMDAwZmZmZikNCj4g PiA+ID4gKyNkZWZpbmUgUlRFX1BDSV9FWFRfQ0FQX05FWFQoaGVhZGVyKQkoKGhlYWRlciA+PiAy MCkgJg0KPiAweGZmYykNCj4gPiA+ID4gKw0KPiA+ID4gPiArI2RlZmluZSBSVEVfUENJX0VYVF9D QVBfSURfRVJSCTB4MDEJLyogQWR2YW5jZWQgRXJyb3INCj4gUmVwb3J0aW5nDQo+ID4gPiAqLw0K PiA+ID4gPiArI2RlZmluZSBSVEVfUENJX0VYVF9DQVBfSURfRFNOCTB4MDMJLyogRGV2aWNlIFNl cmlhbA0KPiBOdW1iZXIgKi8NCj4gPiA+ID4gKw0KPiA+ID4NCj4gPiA+IEkgdW5kZXJzdGFuZCB0 aGF0IGl0IGlzIG1vcmUgbmF0dXJhbCB0byBoYXZlIHRob3NlIGRlZmluZXMgaW4gdGhlDQo+ID4g PiBQQ0kgbGliLCBidXQgSSB0aGluayB0aGVyZSBpcyBubyBwb2ludCBpbiBhZGRpbmcgdGhlbSBp biBhIHNlcGFyYXRlDQo+ID4gPiBsaWIsIHdoaWxlIHRoZSBmdW5jdGlvbiB1c2luZyB0aG9zZSBp cyBpbiB0aGUgUENJIGJ1cy4NCj4gPiA+DQo+ID4gPiBJIHRoaW5rIHRoZSBkZWZpbmVzIHNob3Vs ZCBiZSBwdXQgcmlnaHQgYmVmb3JlIHRoZQ0KPiA+ID4gcnRlX3BjaV9maW5kX25leHRfZXh0X2Nh cGFiaWxpdHkoKSBwcm90b3R5cGUgaW4NCj4gPiA+IGRyaXZlcnMvYnVzL3BjaS9ydGVfYnVzX3Bj aS5oLg0KPiA+DQo+ID4gSGVsbG8gR2FldGFuLA0KPiA+DQo+ID4gSSB0aGluayB0aGVzZSBjb21l cyBpbiB0aGUgY2F0ZWdvcnkgb2YgYWxsIFJURV9QQ0lfKiBnZW5lcmljIGRlZmluZXMNCj4gPiAo bm90IGp1c3QgdXNlIGluIGRyaXZlcnMvYnVzL3BjaS8pLCBTaW5jZSBjYWxsZXIgb2YgdGhlIEFQ SSBhbHNvIG5lZWQNCj4gPiB0byB1c2UgaXQsIEZvciBleGFtcGxlLCBjb3VwbGUgb2YgUlRFX1BD SV8qIHdlcmUgYWRkZWQgaW4gcGF0Y2ggIzINCj4gPiB1c2VkIGJ5IHFlZGUgZHJpdmVycyBzcGVj aWZpY2FsbHkuIHJ0ZV9wY2kuaCBzb3VuZHMgbW9yZSBnZW5lcmljIHRoYW4NCj4gcnRlX2J1c19w Y2kuaCBoZW5jZSBJIHRob3VnaHQgaXQgaXMgdGhlIHN1aXRhYmxlIHBsYWNlIHRvIGNvbnNvbGlk YXRlIHRoZW0gaW4NCj4gdGhlcmUuDQo+ID4NCj4gPiBUaGFua3MgISENCj4gDQo+IFJlYWRpbmcg dGhlIGFkZGl0aW9uYWwgc3ltYm9scywgcGFydGljdWxhcmx5IGFib3V0IFNSSU9WIGNhcGEsIEkg dGhpbmsgeW91DQo+IGFyZSByaWdodCwgaXQncyBwcm9iYWJseSBiZXR0ZXIgdG8gaGF2ZSBpdCBh bGwgd2l0aGluIHJ0ZV9wY2kuaC4NCj4gDQo+IFRvIGhlbHAgZGV2ZWxvcGVycywgaXQgd291bGQg YmUgYmV0dGVyIHRvIHBvaW50IGluIHRoZSBkb2MgdGhhdCB0aGUgY2FwYWJpbGl0eQ0KPiBJRHMg dXNlYWJsZSBhcyBwYXJhbWV0ZXIgYGNhcGAgY2FuIGJlIGFueSBmcm9tIFJURV9QQ0lfRVhUX0NB UF9JRF8qLA0KPiBkZWZpbmVkIHdpdGhpbiBsaWJydGVfcGNpLiBUaGUgZGV2IGNhbiB0aGVuIGdy ZXAgaXQuDQoNClN1cmUsIEkgd2lsbCBhZGQgdGhlIHBvaW50ZXIgdG8gbGlicnRlX3BjaSBpbiB0 aGUgY29tbWVudCBzZWN0aW9uIGZvcg0KcnRlX3BjaV9maW5kX25leHRfZXh0X2NhcGFiaWxpdHko KQ0KDQo+IA0KPiBPbmUgYWRkaXRpb25hbCB0aGluZzoNCj4gDQo+ID4gPiA+ICsjZGVmaW5lIFJU RV9QQ0lfQ0ZHX1NQQUNFX1NJWkUJCTI1Ng0KPiA+ID4gPiArI2RlZmluZSBSVEVfUENJX0NGR19T UEFDRV9FWFBfU0laRQk0MDk2DQo+ID4gPiA+ICsNCj4gPiA+ID4gKy8qIEV4dGVuZGVkIENhcGFi aWxpdGllcyAoUENJLVggMi4wIGFuZCBFeHByZXNzKSAqLw0KPiA+ID4gPiArI2RlZmluZSBSVEVf UENJX0VYVF9DQVBfSUQoaGVhZGVyKQkoaGVhZGVyICYgMHgwMDAwZmZmZikNCj4gPiA+ID4gKyNk ZWZpbmUgUlRFX1BDSV9FWFRfQ0FQX05FWFQoaGVhZGVyKQkoKGhlYWRlciA+PiAyMCkgJg0KPiAw eGZmYykNCj4gDQo+IEkgdGhpbmsgdGhvc2UgbWFjcm9zIGFyZSBub3QgdXNlZnVsIGFzIHBhcnQg b2YgdGhlIHB1YmxpYyBBUEksIHRoZXkgYXJlIG9ubHkNCj4gdXNlZCB0byBpbXBsZW1lbnQgcnRl X3BjaV9maW5kX25leHRfZXh0X2NhcGFiaWxpdHkoKS4gQ2FuIHlvdSBjb25maXJtPyBJZg0KPiB0 aGlzIGlzIGNvcnJlY3QsIEkgdGhpbmsgdGhleSBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIGNvbXBp bGF0aW9uIHVuaXQNCj4gaW1wbGVtZW50aW5nIHJ0ZV9wY2lfZmluZF9uZXh0X2V4dF9jYXBhYmls aXR5KCkuDQo+IA0KDQpIaSBHYWV0YW4sDQoNClllcyBNb3N0bHksIGJ1dCB0aGVyZSBpcyBhIHNp bWlsYXIgcGllY2Ugb2YgY29kZSBsZWZ0IGluIGRyaXZlcnMvcmF3L2lmcGdhIFtpZnBnYV9wY2lf ZmluZF9leHRfY2FwYWJpbGl0eSgpXSBvbmx5DQp3aGljaCB1dGlsaXplcyB0aGVzZSBzeW1ib2xz IGFzIHdlbGwsIHdoaWNoIEkgZGlkIG5vdCB3YW50IHRvIGJlIHJlbW92ZWQvY2xlYW5lZCB1cCBt dXN0IGFzIGEgcGFydCBvZiB0aGlzDQpzZXJpZXMgYmVjYXVzZSB0aGF0IGltcGxlbWVudGF0aW9u IGlzIGJhc2VkIG9uIHByZWFkKCkgaW5zdGVhZCBvZiBydGVfcGNpX3JlYWRfY29uZmlnKCkuIEkg d2FzIG5vdCBzdXJlDQppZiB0aGF0IGRyaXZlciBjYW4gYWxzbyBkaXJlY3RseSB1c2UgcnRlX3Bj aV9maW5kX25leHRfZXh0X2NhcGFiaWxpdHkoKSB0b28sIEkgZG8gbm90IGhhdmUgdGhvc2UgZnBn YSBiYXNlZCBkZXZpY2VzDQp0byB0ZXN0IGlmIGF0IGFsbCBJIHdlcmUgdG8gZG8gdGhhdCBjbGVh bnVwL3JlbW92YWwgbm93IGluIHRoYXQgZHJpdmVyLCBzbyBJIGRpZG4ndCBhdHRlbXB0IHRvIG1h a2Ugc3VjaCBmdW5jdGlvbmFsDQpjaGFuZ2VzIGluIHRoYXQgZHJpdmVyIG5vdy4gW01heSBiZSB0 aGlzIGNhbiBiZSBjbGVhbmVkIHVwIHRvbyBsYXRlciBvbiB3aXRoIHByb3BlciB0ZXN0aW5nIG9y IG1heSBiZSBhIG5ldyBBUEkNCmJhc2VkIG9uIHByZWFkKCkgY2FuIGJlIGFkZGVkIGZ1cnRoZXIg aWYgdGhvc2UgZHJpdmVycyBjYW4ndCB1c2UgcnRlX3BjaV9maW5kX25leHRfZXh0X2NhcGFiaWxp dHkoKSBkaXJlY3RseV0uDQoNClRoYW5rcy4NCg==