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 D8B6FA0A03; Tue, 19 Jan 2021 09:59:15 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4E181140D46; Tue, 19 Jan 2021 09:59:15 +0100 (CET) Received: from hqnvemgate24.nvidia.com (hqnvemgate24.nvidia.com [216.228.121.143]) by mails.dpdk.org (Postfix) with ESMTP id CEEE2140CFD for ; Tue, 19 Jan 2021 09:59:12 +0100 (CET) Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Tue, 19 Jan 2021 00:59:11 -0800 Received: from HQMAIL107.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Tue, 19 Jan 2021 00:59:11 -0800 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Tue, 19 Jan 2021 00:59:11 -0800 Received: from HKMAIL104.nvidia.com (10.18.16.13) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 19 Jan 2021 08:59:09 +0000 Received: from HKMAIL101.nvidia.com (10.18.16.10) by HKMAIL104.nvidia.com (10.18.16.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 19 Jan 2021 08:59:06 +0000 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by HKMAIL101.nvidia.com (10.18.16.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 19 Jan 2021 08:59:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=faZjBVeOnELRwatp0QinAW8Aiv2+sDHkPGbPuCpDdj4y1wWxvXfSaY+BSMa+MGILEoagv4WPtBwAItBcGVts2kTP5r+6fxl3WPrl8vXAkb1wZvF1QyxpYmR7w2ncSvxmq/42wOwp2SR5+Rt6oW1M9rG3pf8I8Pnx0zEMSHntW8wtChoevp/XmQSdCtuxYrNl/u0qtPgOX5dGIoYh0WS7plyjUWxwAsOKiriu7zbYMyTPDGlQE4/q9HEs+akfEMkRc6YBrlIx61iH589j+6DV5VGe10wEaO/FooN1biVeXfV2SQ0HTWPYv74mKuqaGjZW64KSNmenZHX5KXtzOkPg5w== 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=u2gLFAlkZ5IJJY0oF7atmQMAaTZjlyYYER0SXnlHKDA=; b=VlE/+0kVCUhW26fmv1mnnn3sUMVcQ80YQI5wDIdbOskyYr5bs31SXDEXqzf6TKAHYxusQji2RUgR+NWJBkxX+ytjwEG3hqjLmN0EzsAUsJ2IxGm8ExCjUexpYVEa8ufGEeQRL1BQxh1IShumVKyCI54t6v5uWNdmxmkTqIK4ySWQlNNLLJmxVVlomp5LpRc2pgt0vUfzyua8/Z16HJYyYwSFosUs2NsXF+s6k1D0UM0jyq3wQ+szBmjtuWvaK1VEAArcwcA2j5THWJKKGlCdYwKoRXjxejJFHKnwMyREWcxyudVzx88NBrdy2awIsG85SRvb3IH+XfPTT/RazyJeag== 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 Received: from BY5PR12MB4324.namprd12.prod.outlook.com (2603:10b6:a03:209::10) by BYAPR12MB4600.namprd12.prod.outlook.com (2603:10b6:a03:112::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.13; Tue, 19 Jan 2021 08:59:03 +0000 Received: from BY5PR12MB4324.namprd12.prod.outlook.com ([fe80::8d03:2ada:5add:965d]) by BY5PR12MB4324.namprd12.prod.outlook.com ([fe80::8d03:2ada:5add:965d%3]) with mapi id 15.20.3763.014; Tue, 19 Jan 2021 08:59:03 +0000 From: "Xueming(Steven) Li" To: Andrew Rybchenko , "NBU-Contact-Thomas Monjalon" , Ferruh Yigit , Olivier Matz CC: "dev@dpdk.org" , Slava Ovsiienko , Asaf Penso Thread-Topic: [PATCH v4 2/9] ethdev: support representor port list Thread-Index: AQHW7YuHwO+5uGJXRECGt26RhJ/AEqoukw2AgAAPROA= Date: Tue, 19 Jan 2021 08:59:03 +0000 Message-ID: References: <1610968623-31345-1-git-send-email-xuemingl@nvidia.com> <1610968623-31345-3-git-send-email-xuemingl@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [180.162.33.127] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8b97045f-289c-40de-89f0-08d8bc587861 x-ms-traffictypediagnostic: BYAPR12MB4600: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4303; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +2NFk0QiuvsfJO0ebDRGx29dA7VI+irZkcBPJXMZegVq2r4wA9uTZY9SYauFTVq7KMTOZR3ZhZmLvccd+nrfyt6glVFwMIqcddzDlqe30HHUE1+BDm+p4KYXjGzqdcpvt6QREpm3NCiSYAgNI7gUcnzYeO512ucFPKbMf99m0l8FeIfuBUDxB0ERiy+rwYgztNOv6F0FbwgNLDOjN7pxjl6HBmq2QRQOc/ww5O7VKGF0fJ1K8ZViinJ8H0WdZvX1AFWDGbspOvWlVH8AOHlp3S6R8rBT3vepAEdXxFyMc49Cbn8jCJFjuPE3DFPi8EY2SheHuBz1oc5BhU8PnnZ9ldR+hmiod3tX0VwPNC5n7fpMr+NTCTfgv3RtEcqKxiiCyi1F8X9RGh8iudBHf9/PBw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR12MB4324.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(39860400002)(376002)(366004)(136003)(396003)(76116006)(55016002)(5660300002)(110136005)(66556008)(316002)(52536014)(186003)(66946007)(478600001)(8936002)(66446008)(64756008)(26005)(107886003)(2906002)(71200400001)(66476007)(8676002)(86362001)(7696005)(6506007)(83380400001)(54906003)(9686003)(33656002)(4326008); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?VUFKeTVuR0IvT28rdlFPYVNnb0s3eTZDd0hNQmozTXlETWk1czVXZUZYMExN?= =?utf-8?B?c0ttQlVEOGtvRyttMStlTm9xUDBuemxTTGNFczNuQWYzL3V4Ri95U2FJdXBr?= =?utf-8?B?djFkM2o0aDQyK3dNUks3VWt1bW1xT2xJVy9tcExxRnJvcit6L2ZKcHFWNlhQ?= =?utf-8?B?blNpSmRNUncycHhvQnZ2Z3JtZWRmdytkUWFteW1GdWFQaHY5cHduSGR4b0x3?= =?utf-8?B?em5oY3Y1Y244UWtXdzhDOWs1QkthYW5aWnZTdzNISWVoSU0wc2VMR3BLUnhF?= =?utf-8?B?NllVeVBZeTNpbWM0dUlxcDNSL09kdFYvNmpvZmFpS29kTHU1UndmaTdFTzlS?= =?utf-8?B?RGcrUzBIeFFPd3hBS2pVUk9aMlIyd2ZXYy9ER0FUZzhGRU9oeG1vQTYzMVYw?= =?utf-8?B?aStJL0ZFRGY2QS9yNU9UTWYvQ2k3dWR3dHNpbG51K1YwaWgxZFZTOUoycGRx?= =?utf-8?B?dHJ2dFNTbTVGQ0ZWTFJnSWJsdlNuRFp0eGdRRHVZVy85cG1qZUUyamZqcFVv?= =?utf-8?B?bE5YV3lhWGFDNjRCMWp2UDZOdXlMSTNxRFQ3NDhmMDdncW1uSXR1YnVwZG03?= =?utf-8?B?ZVBVY3p4c3Ftam54K1o0bXNFQjdtMUJiM1RmTjlEaWZuUXplb2RDOXQ2VHY0?= =?utf-8?B?Y29QdWFNSVFLTVUyeHU1MFpKNlNvVmJTNktHTWMzZkhQSFZFZFdOQ0lnbkYw?= =?utf-8?B?bnc4cjE5MFlPUWR4dWdxU0cvOFdIZFlMQ0NrVHM4OGtwUWpTN2hBRkg5TTlQ?= =?utf-8?B?eFhjb2xEUk9RY3Q3MTVTTUhEWktvL0tQb1grR3FVS0JVL2F6MG5BblBlZ0VF?= =?utf-8?B?VW8rV2VPZEhTalRVaXJCMlFDaXprVUR1V3cwd05Pakk4NDhERURVZGlNYlZL?= =?utf-8?B?dU4zdGNUQWhaUmhLTFd1VzRjR3NkcmRIREszQUNXZnA1bEJhdWpEM05DeTgw?= =?utf-8?B?RlE3UDNlWDZMdE9TcWFpRk9xVWJSb0hTZktlUlFjWEx5YndZcW9iVFVjbVg5?= =?utf-8?B?ck1oZk41MmkrS0h0MkZocWh1TncyZDIvUG52ZFdSUXBVcUNzdGI0aS9HZjd3?= =?utf-8?B?UEdqd2o4NWVZTDdHamsxWUxKTnJESFZqaklMVEdPYXpINmMvajJjbjZMKzBs?= =?utf-8?B?YTg3TGs2S0V5U0pVUnVQTEFoaWdSeVNOTXlldkFyOVdkL3YyVDEzVjVkSk0x?= =?utf-8?B?bGo2N0RRZDNJTTg3SG5FblhMRUkyMlA2UmpHYzlBZURJTVV3MUF1MkkzMWts?= =?utf-8?B?bWJoWnhRY1ZGdDRsVFBjdjNHblN5bVhTS3FWcnVVdFN1QUF6azAxQzV5cGpG?= =?utf-8?Q?8FHoGy+l3mAfY=3D?= 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: BY5PR12MB4324.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b97045f-289c-40de-89f0-08d8bc587861 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jan 2021 08:59:03.3298 (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: Vpv9sRdq0YKk4G6TFEJ1BUk669croJTx8YQyJICLiXrZNz0R55gO75HpFVq3wXTiMi2DZA32nioAYuyUXEMRJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB4600 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1611046752; bh=u2gLFAlkZ5IJJY0oF7atmQMAaTZjlyYYER0SXnlHKDA=; h=X-PGP-Universal:ARC-Seal:ARC-Message-Signature: ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic: Thread-Index:Date:Message-ID:References:In-Reply-To: Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ld-processed: x-ms-exchange-transport-forked:x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers:x-ms-exchange-senderadcheck: x-microsoft-antispam:x-microsoft-antispam-message-info: x-forefront-antispam-report:x-ms-exchange-antispam-messagedata: Content-Type:Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=lLkUmpeiVzqMEtfl1b/XyzlUhdJsARdbbFw0D/2aVStlp273KTT660qS0YtkGIQ96 1Kf9PKQ9AGdszq5cJWa5BLPh9Uqz7yOZMO7hHRErmjNjBpMpHPC1xZO2C8UCBu6G5i XsPX000eTQaRJsJbggzUviwOdqN6n+ismQEg/p5RwcdTKpYR711m/jDct+UaG9d4Kr 7OriPLh9BnPuoJHKCT7jfjM+BHrNlw2uanw2lCmGeooP0JCor8At1c/qdwjYGZENgZ gNxN8fEzpzPvKQzt46ppOefy+uZ8U+clI11aFrHdthfifBazD9/FOXRTMN5PFLQHBK JXsXJ+h8TMXPg== Subject: Re: [dpdk-dev] [PATCH v4 2/9] ethdev: support representor port list 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 Sender: "dev" SGkgQW5kcmV3LA0KDQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBBbmRyZXcg UnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT4NCj5TZW50OiBUdWVzZGF5 LCBKYW51YXJ5IDE5LCAyMDIxIDM6NDYgUE0NCj5UbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVt aW5nbEBudmlkaWEuY29tPjsgTkJVLUNvbnRhY3QtVGhvbWFzDQo+TW9uamFsb24gPHRob21hc0Bt b25qYWxvbi5uZXQ+OyBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+Ow0KPk9s aXZpZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4NCj5DYzogZGV2QGRwZGsub3JnOyBT bGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+OyBBc2FmIFBlbnNvDQo+PGFz YWZwQG52aWRpYS5jb20+DQo+U3ViamVjdDogUmU6IFtQQVRDSCB2NCAyLzldIGV0aGRldjogc3Vw cG9ydCByZXByZXNlbnRvciBwb3J0IGxpc3QNCj4NCj5PbiAxLzE4LzIxIDI6MTYgUE0sIFh1ZW1p bmcgTGkgd3JvdGU6DQo+PiBUbyBzdXBwb3J0IGV4dGVuZGVkIHJlcHJlc2VudG9yIHN5bnRheCwg dGhpcyBwYXRjaCBleHRlbmRzIHRoZQ0KPj4gcmVwcmVzZW50b3IgbGlzdCBwYXJzaW5nIHRvIHN1 cHBvcnQgZm9yIHJlcHJlc2VudG9yIHBvcnQgcmFuZ2UgaW4NCj4+IGRldmFyZ3MsIGV4YW1wbGVz Og0KPj4gICAgcmVwcmVzZW50b3I9WzEsMiwzXSAgICAgICAgIC0gc2luZ2xlIGxpc3QNCj4+ICAg IHJlcHJlc2VudG9yPVsxLDMtNSw3LDktMTFdICAtIGxpc3Qgd2l0aCBzaW5nbGVzIGFuZCByYW5n ZXMNCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBYdWVtaW5nIExpIDx4dWVtaW5nbEBudmlkaWEuY29t Pg0KPj4gQWNrZWQtYnk6IFZpYWNoZXNsYXYgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEu Y29tPg0KPg0KPlNlZSBiZWxvdw0KPg0KPj4gLS0tDQo+PiAgbGliL2xpYnJ0ZV9ldGhkZXYvZXRo ZGV2X3ByaXZhdGUuYyB8IDEwNSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQ0KPj4gIGxp Yi9saWJydGVfZXRoZGV2L2V0aGRldl9wcml2YXRlLmggfCAgIDMgLQ0KPj4gIGxpYi9saWJydGVf ZXRoZGV2L3J0ZV9jbGFzc19ldGguYyAgfCAgIDQgKy0NCj4+ICBsaWIvbGlicnRlX2V0aGRldi9y dGVfZXRoZGV2LmMgICAgIHwgICA1ICstDQo+PiAgNCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRp b25zKCspLCA2MyBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9l dGhkZXYvZXRoZGV2X3ByaXZhdGUuYw0KPj4gYi9saWIvbGlicnRlX2V0aGRldi9ldGhkZXZfcHJp dmF0ZS5jDQo+PiBpbmRleCBjMWE0MTFkYmE0Li4xMmJjYzdlOThkIDEwMDY0NA0KPj4gLS0tIGEv bGliL2xpYnJ0ZV9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuYw0KPj4gKysrIGIvbGliL2xpYnJ0ZV9l dGhkZXYvZXRoZGV2X3ByaXZhdGUuYw0KPj4gQEAgLTM4LDc3ICszOCw3MSBAQCBldGhfZmluZF9k ZXZpY2UoY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpzdGFydCwNCj5ydGVfZXRoX2NtcF90IGNt cCwNCj4+ICAJcmV0dXJuIE5VTEw7DQo+PiAgfQ0KPj4NCj4+IC1pbnQNCj4+IC1ydGVfZXRoX2Rl dmFyZ3NfcGFyc2VfbGlzdChjaGFyICpzdHIsIHJ0ZV9ldGhfZGV2YXJnc19jYWxsYmFja190IGNh bGxiYWNrLA0KPj4gLQl2b2lkICpkYXRhKQ0KPj4gK3N0YXRpYyBpbnQNCj4+ICtydGVfZXRoX2Rl dmFyZ3NfZW5saXN0KHVpbnQxNl90ICpsaXN0LCB1aW50MTZfdCAqbGVuX2xpc3QsDQo+PiArCQkg ICAgICAgY29uc3QgdWludDE2X3QgbWF4X2xpc3QsIHVpbnQxNl90IHZhbCkNCj4+ICB7DQo+PiAt CWNoYXIgKnN0cl9zdGFydDsNCj4+IC0JaW50IHN0YXRlOw0KPj4gLQlpbnQgcmVzdWx0Ow0KPj4g LQ0KPj4gLQlpZiAoKnN0ciAhPSAnWycpDQo+PiAtCQkvKiBTaW5nbGUgZWxlbWVudCwgbm90IGEg bGlzdCAqLw0KPj4gLQkJcmV0dXJuIGNhbGxiYWNrKHN0ciwgZGF0YSk7DQo+PiAtDQo+PiAtCS8q IFNhbml0eSBjaGVjaywgdGhlbiBzdHJpcCB0aGUgYnJhY2tldHMgKi8NCj4+IC0Jc3RyX3N0YXJ0 ID0gJnN0cltzdHJsZW4oc3RyKSAtIDFdOw0KPj4gLQlpZiAoKnN0cl9zdGFydCAhPSAnXScpIHsN Cj4+IC0JCVJURV9MT0coRVJSLCBFQUwsICIoJXMpOiBMaXN0IGRvZXMgbm90IGVuZCB3aXRoICdd J1xuIiwgc3RyKTsNCj4+IC0JCXJldHVybiAtRUlOVkFMOw0KPj4gLQl9DQo+PiAtCXN0cisrOw0K Pj4gLQkqc3RyX3N0YXJ0ID0gJ1wwJzsNCj4+ICsJdWludDE2X3QgaTsNCj4+DQo+PiAtCS8qIFBy b2Nlc3MgbGlzdCBlbGVtZW50cyAqLw0KPj4gLQlzdGF0ZSA9IDA7DQo+PiAtCXdoaWxlICgxKSB7 DQo+PiAtCQlpZiAoc3RhdGUgPT0gMCkgew0KPj4gLQkJCWlmICgqc3RyID09ICdcMCcpDQo+PiAt CQkJCWJyZWFrOw0KPj4gLQkJCWlmICgqc3RyICE9ICcsJykgew0KPj4gLQkJCQlzdHJfc3RhcnQg PSBzdHI7DQo+PiAtCQkJCXN0YXRlID0gMTsNCj4+IC0JCQl9DQo+PiAtCQl9IGVsc2UgaWYgKHN0 YXRlID09IDEpIHsNCj4+IC0JCQlpZiAoKnN0ciA9PSAnLCcgfHwgKnN0ciA9PSAnXDAnKSB7DQo+ PiAtCQkJCWlmIChzdHIgPiBzdHJfc3RhcnQpIHsNCj4+IC0JCQkJCS8qIE5vbi1lbXB0eSBzdHJp bmcgZnJhZ21lbnQgKi8NCj4+IC0JCQkJCSpzdHIgPSAnXDAnOw0KPj4gLQkJCQkJcmVzdWx0ID0g Y2FsbGJhY2soc3RyX3N0YXJ0LCBkYXRhKTsNCj4+IC0JCQkJCWlmIChyZXN1bHQgPCAwKQ0KPj4g LQkJCQkJCXJldHVybiByZXN1bHQ7DQo+PiAtCQkJCX0NCj4+IC0JCQkJc3RhdGUgPSAwOw0KPj4g LQkJCX0NCj4+IC0JCX0NCj4+IC0JCXN0cisrOw0KPj4gKwlpZiAoKmxlbl9saXN0ID49IG1heF9s aXN0KQ0KPj4gKwkJcmV0dXJuIC0xOw0KPg0KPklmIGN1cnJlbnQgbGVuZ3RoIGlzIGVxdWFsIHRv IG1heCwgYnV0IGFkZGVkIHZhbHVlIGlzIGFscmVhZHkgaXMgaW4gdGhlIGxpc3QsIGl0DQo+c2hv dWxkIG5vdCBiZSBhbiBlcnJvci4gU28sIHRoZXNlIHR3byBsaW5lcyBzaG91bGQgYmUgbW92ZWQg YWZ0ZXIgYmVsb3cgZm9yDQo+bG9vcC4NCj4NCj4+ICsJZm9yIChpID0gMDsgaSA8ICpsZW5fbGlz dDsgaSsrKSB7DQo+PiArCQlpZiAobGlzdFtpXSA9PSB2YWwpDQo+PiArCQkJcmV0dXJuIDA7DQo+ PiAgCX0NCj4+ICsJbGlzdFsoKmxlbl9saXN0KSsrXSA9IHZhbDsNCj4+ICAJcmV0dXJuIDA7DQo+ PiAgfQ0KPj4NCj4+IC1zdGF0aWMgaW50DQo+PiArc3RhdGljIGNoYXIgKg0KPj4gIHJ0ZV9ldGhf ZGV2YXJnc19wcm9jZXNzX3JhbmdlKGNoYXIgKnN0ciwgdWludDE2X3QgKmxpc3QsIHVpbnQxNl90 ICpsZW5fbGlzdCwNCj4+ICAJY29uc3QgdWludDE2X3QgbWF4X2xpc3QpDQo+PiAgew0KPj4gIAl1 aW50MTZfdCBsbywgaGksIHZhbDsNCj4+ICAJaW50IHJlc3VsdDsNCj4+ICsJY2hhciAqcG9zID0g c3RyOw0KPj4NCj4+ICAJcmVzdWx0ID0gc3NjYW5mKHN0ciwgIiVodS0laHUiLCAmbG8sICZoaSk7 DQo+PiAgCWlmIChyZXN1bHQgPT0gMSkgew0KPj4gLQkJaWYgKCpsZW5fbGlzdCA+PSBtYXhfbGlz dCkNCj4+IC0JCQlyZXR1cm4gLUVOT01FTTsNCj4+IC0JCWxpc3RbKCpsZW5fbGlzdCkrK10gPSBs bzsNCj4+ICsJCWlmIChydGVfZXRoX2RldmFyZ3NfZW5saXN0KGxpc3QsIGxlbl9saXN0LCBtYXhf bGlzdCwgbG8pICE9IDApDQo+PiArCQkJcmV0dXJuIE5VTEw7DQo+PiAgCX0gZWxzZSBpZiAocmVz dWx0ID09IDIpIHsNCj4+IC0JCWlmIChsbyA+PSBoaSB8fCBsbyA+IFJURV9NQVhfRVRIUE9SVFMg fHwgaGkgPg0KPlJURV9NQVhfRVRIUE9SVFMpDQo+DQo+U3RyaWN0bHkgc3BlYWtpbmcgcmVtb3Zh bCBvZiBjb21wYXJpc2lvbiB2cyBSVEVfTUFYX0VUSFBPUlRTIGlzIGEgc2VwYXJhdGUNCj5sb2dp Y2FsIGNoYW5nZSB3aXRoIGEgc2VwYXJhdGUgbW90aXZhdGlvbi4NCg0KVG8gbWFrZSB0aGlzIGZ1 bmN0aW9uIGNvbW1lbnQgZm9yIGNvbnRyb2xsZXIvcGYvdmYvc2YgcGFyc2luZywgdGhlIG1heCB2 YWx1ZSBpcw0KcGFzc2VkIGluIGFzIHBhcmFtZXRlciBhbmQgY2hlY2tlZCBpbiBydGVfZXRoX2Rl dmFyZ3NfZW5saXN0KCkuDQpDYWxsZXIgY29kZSBpbiBydGVfZXRoX2RldmFyZ3NfcHJvY2Vzc19s aXN0KCkgZGVjaWRlIHRoZSBtYXggdmFsdWUuDQo+DQo+PiAtCQkJcmV0dXJuIC1FSU5WQUw7DQo+ PiArCQlpZiAobG8gPj0gaGkpDQo+DQo+SSdkIHJlbW92ZSAnPScgaGVyZS4gSXQgc2hvdWxkIG5v dCBiZSBhIHByb2JsZW0gYW5kIGhhbmRlZCBwZXJmZWN0bHkgYnkgYmVsb3cNCj5jb2RlLiBJIHNl ZSBubyBwb2ludCB0byBkZW55IDMtMyByYW5nZSB3aGljaCBpcyBhbiBlcXVpdmFsZW50IGZvciBq dXN0IDMuIEl0DQo+Y291bGQgYmUgY29udmVuaWVudCBpbiBzb21lIGNhc2VzLg0KPg0KPj4gKwkJ CXJldHVybiBOVUxMOw0KPj4gIAkJZm9yICh2YWwgPSBsbzsgdmFsIDw9IGhpOyB2YWwrKykgew0K Pj4gLQkJCWlmICgqbGVuX2xpc3QgPj0gbWF4X2xpc3QpDQo+PiAtCQkJCXJldHVybiAtRU5PTUVN Ow0KPj4gLQkJCWxpc3RbKCpsZW5fbGlzdCkrK10gPSB2YWw7DQo+PiArCQkJaWYgKHJ0ZV9ldGhf ZGV2YXJnc19lbmxpc3QobGlzdCwgbGVuX2xpc3QsIG1heF9saXN0LA0KPj4gKwkJCQkJCSAgIHZh bCkgIT0gMCkNCj4+ICsJCQkJcmV0dXJuIE5VTEw7DQo+PiAgCQl9DQo+PiAgCX0gZWxzZQ0KPj4g LQkJcmV0dXJuIC1FSU5WQUw7DQo+PiAtCXJldHVybiAwOw0KPj4gKwkJcmV0dXJuIE5VTEw7DQo+ PiArCXdoaWxlICgqcG9zICE9IDAgJiYgKCgqcG9zID49ICcwJyAmJiAqcG9zIDw9ICc5JykgfHwg KnBvcyA9PSAnLScpKQ0KPg0KPipwb3N0ICE9ICdcMCcgaXMgYSBiaXQgYmV0dGVyIGxvb2tpbmcg YXQgc3Vic2VxdWVudCBjb21wYXJpc29ucy4gWWVzLCBpdCBpcyBqdXN0DQo+c3R5bGUuIFVwIHRv IHlvdS4NCj4NCj4+ICsJCXBvcysrOw0KPg0KPkl0IGxvb2tzIHRvbyBmcmFnaWxlLiBNYXkgSSBz dWdnZXN0IHRvIHVzZSAlbiBpbiBhYm92ZSBzY2FuZiB0byBiZSBhYmxlIHRvIHNraXANCj5vbmx5 IHBhcnNlZCBjaGFyYWN0ZXJzLg0KPg0KPj4gKwlyZXR1cm4gcG9zOw0KPj4gK30NCj4+ICsNCj4+ ICtzdGF0aWMgY2hhciAqDQo+PiArcnRlX2V0aF9kZXZhcmdzX3Byb2Nlc3NfbGlzdChjaGFyICpz dHIsIHVpbnQxNl90ICpsaXN0LCB1aW50MTZfdCAqbGVuX2xpc3QsDQo+PiArCWNvbnN0IHVpbnQx Nl90IG1heF9saXN0KQ0KPj4gK3sNCj4+ICsJY2hhciAqcG9zID0gc3RyOw0KPj4gKw0KPj4gKwlp ZiAoKnBvcyA9PSAnWycpDQo+PiArCQlwb3MrKzsNCj4+ICsJd2hpbGUgKDEpIHsNCj4+ICsJCXBv cyA9IHJ0ZV9ldGhfZGV2YXJnc19wcm9jZXNzX3JhbmdlKHBvcywgbGlzdCwgbGVuX2xpc3QsDQo+ PiArCQkJCQkJICAgIG1heF9saXN0KTsNCj4+ICsJCWlmIChwb3MgPT0gTlVMTCkNCj4+ICsJCQly ZXR1cm4gTlVMTDsNCj4+ICsJCWlmICgqcG9zICE9ICcsJykgLyogZW5kIG9mIGxpc3QgKi8NCj4+ ICsJCQlicmVhazsNCj4+ICsJCXBvcysrOw0KPj4gKwl9DQo+PiArCWlmICgqc3RyID09ICdbJyAm JiAqcG9zICE9ICddJykNCj4+ICsJCXJldHVybiBOVUxMOw0KPj4gKwlpZiAoKnBvcyA9PSAnXScp DQo+PiArCQlwb3MrKzsNCj4+ICsJcmV0dXJuIHBvczsNCj4+ICB9DQo+Pg0KPj4gIC8qDQo+PiBA QCAtMTIxLDYgKzExNSw5IEBAIHJ0ZV9ldGhfZGV2YXJnc19wYXJzZV9yZXByZXNlbnRvcl9wb3J0 cyhjaGFyICpzdHIsDQo+dm9pZCAqZGF0YSkNCj4+ICAJc3RydWN0IHJ0ZV9ldGhfZGV2YXJncyAq ZXRoX2RhID0gZGF0YTsNCj4+DQo+PiAgCWV0aF9kYS0+dHlwZSA9IFJURV9FVEhfUkVQUkVTRU5U T1JfVkY7DQo+PiAtCXJldHVybiBydGVfZXRoX2RldmFyZ3NfcHJvY2Vzc19yYW5nZShzdHIsIGV0 aF9kYS0NCj4+cmVwcmVzZW50b3JfcG9ydHMsDQo+PiArCXN0ciA9IHJ0ZV9ldGhfZGV2YXJnc19w cm9jZXNzX2xpc3Qoc3RyLCBldGhfZGEtPnJlcHJlc2VudG9yX3BvcnRzLA0KPj4gIAkJJmV0aF9k YS0+bmJfcmVwcmVzZW50b3JfcG9ydHMsIFJURV9NQVhfRVRIUE9SVFMpOw0KPg0KPk5vdCBkaXJl Y3RseSByZWxhdGVkIHRvIHRoZSBwYXRjaCwgYnV0IEkgZGlzbGlrZSBSVEVfTUFYX0VUSFBPUlRT IGFib3ZlLg0KPlJURV9ESU0oZXRoX2RhLT5yZXByZXNlbnRvcl9wb3J0cykgd291bGQgYmUgbW9y ZSByZWFkYWJsZS4NCg0KVGhlIGFycmF5IGRpbSBjb3VsZCBiZSBkaWZmZXJlbnQgdGhhbiBSVEVf TUFYX0VUSFBPUlRTLCBhbHRob3VnaCB0aGV5IGFyZQ0Kc2FtZSB0b2RheSDwn5iKDQo+DQo+PiAr CWlmIChzdHIgPT0gTlVMTCkNCj4+ICsJCVJURV9MT0coRVJSLCBFQUwsICJ3cm9uZyByZXByZXNl bnRvciBmb3JtYXQ6ICVzXG4iLCBzdHIpOw0KPj4gKwlyZXR1cm4gc3RyID09IE5VTEwgPyAtMSA6 IDA7DQo+PiAgfQ0KPg0KPg0KPltzbmlwXQ0KDQpPdGhlciBjb21tZW50cyBsb29rcyBncmVhdCwg d2lsbCB1cGRhdGUsIHRoYW5rcyENCg==