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 D3A0DA0A03; Tue, 19 Jan 2021 11:19:31 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 39816140D4E; Tue, 19 Jan 2021 11:19:31 +0100 (CET) Received: from hqnvemgate26.nvidia.com (hqnvemgate26.nvidia.com [216.228.121.65]) by mails.dpdk.org (Postfix) with ESMTP id 7ECE8140D4D for ; Tue, 19 Jan 2021 11:19:28 +0100 (CET) Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Tue, 19 Jan 2021 02:19:27 -0800 Received: from HQMAIL107.nvidia.com ([172.20.161.6]) by hqpgpgate102.nvidia.com (PGP Universal service); Tue, 19 Jan 2021 02:19:27 -0800 X-PGP-Universal: processed; by hqpgpgate102.nvidia.com on Tue, 19 Jan 2021 02:19:27 -0800 Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 19 Jan 2021 10:19:22 +0000 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.175) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 19 Jan 2021 10:19:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IzkcKFT+D/CXwn0GRCYjYS8kfxzp5AG4dhSt02F1rNITdsH2ugzWQj8m6caP8Y7NklYSrLTqx1eU5IKXVy5Jy5S/2u5dM5rsNkYQprhXWXV2aB670AlnGHN2mHmxtMr8RdL8TKaPZmAg63jnxuTr4M649+WVaAQElwdBV2R/yqlyIyiXQN1NJwYbmK9fT8VI6VxojPdywjyFl7dKX2PCa0JRPmWb5DLC4T6kO69xCFM13itAqz5DhVFW9OhtMFLce1xNkAGf6Cmm+lCQT1oHiERJMnwCc200qIeuJ8sYJYS9uT7wOJ9YwxQHSwC3RSKbwYYwWnaTmVkSqRl8hrKT3w== 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=zIeWYQs82g24HjfMb8iUriGi0bLO/Imhg1/6RRm4khA=; b=m8ywmyb4JkFh1Mg8aG60ZNDa7b5VYkQqykwY8x8X2ERDUaCxvXJZxzwsayVWY81vFPZUUehbkCb5cEbcFqtmJvtzlswbqFRpeqFdUgJTlsa607pB6rhimiX/TQQj4X/B7O1sqqe+u2D6/ITpiQRaOdZmw0HRmqPM6imriL8Kwunsf6mir1zftp/RsEKCz5K7RXaZpozbLlASnPRf2jB3IMTOkesoq/D561f5/owK6IOYmF3k631dlgzbX8UyKtxUmCMlJG9VaMEDMQo6Yenor9WXPWihsVlGp5rL2rT+jHsZWoUMfSxS3GpLTtVP0lmU1dLGIwtgV/HcNebIvg75ow== 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 BYAPR12MB3080.namprd12.prod.outlook.com (2603:10b6:a03:de::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.11; Tue, 19 Jan 2021 10:19:21 +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 10:19:21 +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/AEqoukw2AgAAPROCAAAaMgIAAE7fg Date: Tue, 19 Jan 2021 10:19:21 +0000 Message-ID: References: <1610968623-31345-1-git-send-email-xuemingl@nvidia.com> <1610968623-31345-3-git-send-email-xuemingl@nvidia.com> <4ffa2c56-0000-2fa5-e5d6-9660104f7b30@oktetlabs.ru> In-Reply-To: <4ffa2c56-0000-2fa5-e5d6-9660104f7b30@oktetlabs.ru> 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: 7b331a35-b61b-4f33-331d-08d8bc63aff7 x-ms-traffictypediagnostic: BYAPR12MB3080: 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:4941; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PZRhmE745xUqxY4r0nj8+puc1U9sln0CMji31SN2nf+Q791HeOJSOLInxk/W60GkElhcfb6cPtOt6polGUlOpdi3Z45nv6kVWtrh6GxtApPnCSLC2q8ZkbWxoceUU3wxIo+oBghwEb0HXnzUx/1LZTjBkUjVYHmjNzcfZPqmW69XsZF3/T4saCPrm2aWnbO74yhSw84Oj7bnWZmEBSje5Q331F8n88A1rcmPJshkmRvfppUQ9Pru36soBs9ZLPr0nRXGXDeICdynmthOJ540E3JoOlX0iZz3CEwQ0j6Fj3ldovYDTNCvuU0dSprNQadM+PRJqXG3wNJKANK2p+6Q4dAmLn8FLK+SB4fhh2dtphgd53meM91+2xSvA9wYADKSzQSvIXih7S2o2JvheYHZWA== 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)(136003)(376002)(346002)(39860400002)(396003)(366004)(5660300002)(52536014)(71200400001)(107886003)(83380400001)(8676002)(110136005)(7696005)(2906002)(54906003)(316002)(76116006)(478600001)(8936002)(9686003)(86362001)(33656002)(186003)(4326008)(66476007)(55016002)(53546011)(64756008)(26005)(66946007)(66446008)(66556008)(6506007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?MGlJRVYvaDlmNHhoYnNOTUI3TjZXMXE2MktMZ3l2VWZCbE80VnR2bzRPZ1pC?= =?utf-8?B?YWVSTjNOdGV2b1Z3T1NURzVQOXE4VnUrdUlDRm9icnVTbEFBWkZEc3dxOTE3?= =?utf-8?B?d29GSlBPallab3hIYjlnRnF3aCtEOHVkalNEa0tpR1RJbUJjMkNKSHRnMnUr?= =?utf-8?B?SWxjV3MwOFZvZTUzRG9IZnZXTk54ZDd5SDBRM0g4ZUlkclpwYnUrYytSL0Nz?= =?utf-8?B?M01tRS9pMmdDdUdsUmRNd2pna3BZdC9FWmw3SmFXay9udWM4SVhNaGZQQ3NU?= =?utf-8?B?MEJBWndBTkhCWEtUcDY3Zm1xRWhMdE9MRVRvckxYYVJFS0laR29SMmhoeVZU?= =?utf-8?B?QUY1QnhXdVYrVXJ2RzJrN3BVYUlVanpLTmdITUJoS0VTc2tCQ0FjVWZ0VDNB?= =?utf-8?B?STVoOFhzTUdvZjZkcXJEdTBQT2ZUSUsyeDcxbUFKVEZLVDZuYTQrQVNrQit5?= =?utf-8?B?V3NwN3VQZnR6OFU1UmorbStRdmRCWjZUSmxQdFZSTU9DVDMzd25BYU1wdDJq?= =?utf-8?B?dGxBenJrNVl1NDZha1ZORERaNFVMcDcydXRLQkN6WlVseWE4S1NiZVFOc2hh?= =?utf-8?B?dWVtTzEvbmhnZHJuTzhzbFhsOEd4NER4aWw4NEkyV2E4anE0b2t0NmFPZnhp?= =?utf-8?B?RlRzSGZvTm9SbEpQTGdyOGJtVkZISUtxaFd3NEhHbmY5WGxKSmdNbjU1QVMr?= =?utf-8?B?QUx1bHB4MmNDQXlycFJLL0VRNTR3SHduNnVsaUVLaytpOUV2cjVEUlJzNlU4?= =?utf-8?B?dWp0QUo0bzBPWnVTRXZFY21sNnFzLzIxdWZGWU1FV3NZL3IwaXppN1NSWUNY?= =?utf-8?B?dHlDOURJNm1WSXZDa0RiM2xPeFBwRmxBRkFybUpqbHVtdXhZL05wdlBkUUJU?= =?utf-8?B?VXdBZGlEdmpKSmNhQ1gwZmdtbTlRNDU0OHdvajRaMW92Z0U5enlyZVlCZ09L?= =?utf-8?B?YW5tdXVEKzU3SHlkbmpueHU0M0RjZWpPMmJBUGh4bjg5TGY0cHFIcGlPc0lD?= =?utf-8?B?WVlMWWtBUkc3RGRtUVM5TkdxRFQ4ZGp2S2w1YkdLbS93anBxcXRJVWJ0b1Nu?= =?utf-8?B?c3l0cHlNUDR3NnFLcWVNY2pGOTl0OHhWd0huK3FQV1BnTTU4WEdJUVVvSXNk?= =?utf-8?B?TzY3V0dQQnpOd3pYUytXdGxHeDlUczJEVk0wRk00UUNCSmdiMC9RVlBXZDVX?= =?utf-8?B?Y09nL0cvcEk5VWIvQWVqd2FlYXE5eE1jVkxQL0s0U0hxRG03R0pNMnhZczhQ?= =?utf-8?B?YWJWeEc1aDljajVSOVUzYUxaNlVyRi80SGw1TkVpMVZKdWZQWVVUUVJKMHh4?= =?utf-8?Q?HUdVKyd7VPtYk=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: 7b331a35-b61b-4f33-331d-08d8bc63aff7 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jan 2021 10:19:21.1976 (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: TOmpIdzUUiA6U/G+10gH05JYm+uRlrMItFs4MdcXJx0It0M3puRWU3JX8iPHa66RYRI2Ykm3ZzEQHJY60j0WTg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB3080 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1611051567; bh=zIeWYQs82g24HjfMb8iUriGi0bLO/Imhg1/6RRm4khA=; 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=m2BXVjMjJiEhg7e0Cr6h4Bd/1wx2RPbkM9qPndOtm/8la67P0lK6DHzLJDQQMWSgl BHg9PnoviT60sYXQh32ZjbLsYabmQ028SQz6iwSh/sPgIWJnHVxDCqbjXkiHlS2oAr yVP5+LJbzoruffoQ0gD6MCR4vj1/2aLICnSb6/AqI0Bfrw0bcrnbkJMnjLpZHINEEN IIsaCxslyJQHFqf2kSphkb6AZ7OT2EGs2nBJyy1dCmQj/b0CoPzSL9lXPS7fP20cEv Fyy8Yq9NV2sDE/HipJ3hvWMbiSHjTMj+9wCsHkhk67p4br8RgRsaNupsG8D7+muJTm Za2MDcZ12PLQQ== 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" DQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBBbmRyZXcgUnliY2hlbmtvIDxh bmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT4NCj5TZW50OiBUdWVzZGF5LCBKYW51YXJ5IDE5 LCAyMDIxIDU6MDQgUE0NCj5UbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBudmlkaWEu Y29tPjsgTkJVLUNvbnRhY3QtVGhvbWFzDQo+TW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+ OyBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+Ow0KPk9saXZpZXIgTWF0eiA8 b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4NCj5DYzogZGV2QGRwZGsub3JnOyBTbGF2YSBPdnNpaWVu a28gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+OyBBc2FmIFBlbnNvDQo+PGFzYWZwQG52aWRpYS5j b20+DQo+U3ViamVjdDogUmU6IFtQQVRDSCB2NCAyLzldIGV0aGRldjogc3VwcG9ydCByZXByZXNl bnRvciBwb3J0IGxpc3QNCj4NCj5PbiAxLzE5LzIxIDExOjU5IEFNLCBYdWVtaW5nKFN0ZXZlbikg TGkgd3JvdGU6DQo+PiBIaSBBbmRyZXcsDQo+Pg0KPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+Pj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxh YnMucnU+DQo+Pj4gU2VudDogVHVlc2RheSwgSmFudWFyeSAxOSwgMjAyMSAzOjQ2IFBNDQo+Pj4g VG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbnZpZGlhLmNvbT47IE5CVS1Db250YWN0 LVRob21hcw0KPj4+IE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgRmVycnVoIFlpZ2l0 DQo+Pj4gPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0 ekA2d2luZC5jb20+DQo+Pj4gQ2M6IGRldkBkcGRrLm9yZzsgU2xhdmEgT3ZzaWllbmtvIDx2aWFj aGVzbGF2b0BudmlkaWEuY29tPjsgQXNhZg0KPj4+IFBlbnNvIDxhc2FmcEBudmlkaWEuY29tPg0K Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMi85XSBldGhkZXY6IHN1cHBvcnQgcmVwcmVzZW50 b3IgcG9ydCBsaXN0DQo+Pj4NCj4+PiBPbiAxLzE4LzIxIDI6MTYgUE0sIFh1ZW1pbmcgTGkgd3Jv dGU6DQo+Pj4+IFRvIHN1cHBvcnQgZXh0ZW5kZWQgcmVwcmVzZW50b3Igc3ludGF4LCB0aGlzIHBh dGNoIGV4dGVuZHMgdGhlDQo+Pj4+IHJlcHJlc2VudG9yIGxpc3QgcGFyc2luZyB0byBzdXBwb3J0 IGZvciByZXByZXNlbnRvciBwb3J0IHJhbmdlIGluDQo+Pj4+IGRldmFyZ3MsIGV4YW1wbGVzOg0K Pj4+PiAgICByZXByZXNlbnRvcj1bMSwyLDNdICAgICAgICAgLSBzaW5nbGUgbGlzdA0KPj4+PiAg ICByZXByZXNlbnRvcj1bMSwzLTUsNyw5LTExXSAgLSBsaXN0IHdpdGggc2luZ2xlcyBhbmQgcmFu Z2VzDQo+Pj4+DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IFh1ZW1pbmcgTGkgPHh1ZW1pbmdsQG52aWRp YS5jb20+DQo+Pj4+IEFja2VkLWJ5OiBWaWFjaGVzbGF2IE92c2lpZW5rbyA8dmlhY2hlc2xhdm9A bnZpZGlhLmNvbT4NCj4+Pg0KPj4+IFNlZSBiZWxvdw0KPj4+DQo+Pj4+IC0tLQ0KPj4+PiAgbGli L2xpYnJ0ZV9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuYyB8IDEwNSArKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLQ0KPj4+PiAgbGliL2xpYnJ0ZV9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuaCB8ICAg MyAtDQo+Pj4+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfY2xhc3NfZXRoLmMgIHwgICA0ICstDQo+ Pj4+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmMgICAgIHwgICA1ICstDQo+Pj4+ICA0 IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQ0KPj4+Pg0K Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuYw0KPj4+ PiBiL2xpYi9saWJydGVfZXRoZGV2L2V0aGRldl9wcml2YXRlLmMNCj4+Pj4gaW5kZXggYzFhNDEx ZGJhNC4uMTJiY2M3ZTk4ZCAxMDA2NDQNCj4+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvZXRo ZGV2X3ByaXZhdGUuYw0KPj4+PiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ldGhkZXZfcHJpdmF0 ZS5jDQo+Pj4+IEBAIC0zOCw3NyArMzgsNzEgQEAgZXRoX2ZpbmRfZGV2aWNlKGNvbnN0IHN0cnVj dCBydGVfZXRoX2RldiAqc3RhcnQsDQo+Pj4gcnRlX2V0aF9jbXBfdCBjbXAsDQo+Pj4+ICAJcmV0 dXJuIE5VTEw7DQo+Pj4+ICB9DQo+Pj4+DQo+Pj4+IC1pbnQNCj4+Pj4gLXJ0ZV9ldGhfZGV2YXJn c19wYXJzZV9saXN0KGNoYXIgKnN0ciwgcnRlX2V0aF9kZXZhcmdzX2NhbGxiYWNrX3QNCj5jYWxs YmFjaywNCj4+Pj4gLQl2b2lkICpkYXRhKQ0KPj4+PiArc3RhdGljIGludA0KPj4+PiArcnRlX2V0 aF9kZXZhcmdzX2VubGlzdCh1aW50MTZfdCAqbGlzdCwgdWludDE2X3QgKmxlbl9saXN0LA0KPj4+ PiArCQkgICAgICAgY29uc3QgdWludDE2X3QgbWF4X2xpc3QsIHVpbnQxNl90IHZhbCkNCj4+Pj4g IHsNCj4+Pj4gLQljaGFyICpzdHJfc3RhcnQ7DQo+Pj4+IC0JaW50IHN0YXRlOw0KPj4+PiAtCWlu dCByZXN1bHQ7DQo+Pj4+IC0NCj4+Pj4gLQlpZiAoKnN0ciAhPSAnWycpDQo+Pj4+IC0JCS8qIFNp bmdsZSBlbGVtZW50LCBub3QgYSBsaXN0ICovDQo+Pj4+IC0JCXJldHVybiBjYWxsYmFjayhzdHIs IGRhdGEpOw0KPj4+PiAtDQo+Pj4+IC0JLyogU2FuaXR5IGNoZWNrLCB0aGVuIHN0cmlwIHRoZSBi cmFja2V0cyAqLw0KPj4+PiAtCXN0cl9zdGFydCA9ICZzdHJbc3RybGVuKHN0cikgLSAxXTsNCj4+ Pj4gLQlpZiAoKnN0cl9zdGFydCAhPSAnXScpIHsNCj4+Pj4gLQkJUlRFX0xPRyhFUlIsIEVBTCwg Iiglcyk6IExpc3QgZG9lcyBub3QgZW5kIHdpdGggJ10nXG4iLCBzdHIpOw0KPj4+PiAtCQlyZXR1 cm4gLUVJTlZBTDsNCj4+Pj4gLQl9DQo+Pj4+IC0Jc3RyKys7DQo+Pj4+IC0JKnN0cl9zdGFydCA9 ICdcMCc7DQo+Pj4+ICsJdWludDE2X3QgaTsNCj4+Pj4NCj4+Pj4gLQkvKiBQcm9jZXNzIGxpc3Qg ZWxlbWVudHMgKi8NCj4+Pj4gLQlzdGF0ZSA9IDA7DQo+Pj4+IC0Jd2hpbGUgKDEpIHsNCj4+Pj4g LQkJaWYgKHN0YXRlID09IDApIHsNCj4+Pj4gLQkJCWlmICgqc3RyID09ICdcMCcpDQo+Pj4+IC0J CQkJYnJlYWs7DQo+Pj4+IC0JCQlpZiAoKnN0ciAhPSAnLCcpIHsNCj4+Pj4gLQkJCQlzdHJfc3Rh cnQgPSBzdHI7DQo+Pj4+IC0JCQkJc3RhdGUgPSAxOw0KPj4+PiAtCQkJfQ0KPj4+PiAtCQl9IGVs c2UgaWYgKHN0YXRlID09IDEpIHsNCj4+Pj4gLQkJCWlmICgqc3RyID09ICcsJyB8fCAqc3RyID09 ICdcMCcpIHsNCj4+Pj4gLQkJCQlpZiAoc3RyID4gc3RyX3N0YXJ0KSB7DQo+Pj4+IC0JCQkJCS8q IE5vbi1lbXB0eSBzdHJpbmcgZnJhZ21lbnQgKi8NCj4+Pj4gLQkJCQkJKnN0ciA9ICdcMCc7DQo+ Pj4+IC0JCQkJCXJlc3VsdCA9IGNhbGxiYWNrKHN0cl9zdGFydCwgZGF0YSk7DQo+Pj4+IC0JCQkJ CWlmIChyZXN1bHQgPCAwKQ0KPj4+PiAtCQkJCQkJcmV0dXJuIHJlc3VsdDsNCj4+Pj4gLQkJCQl9 DQo+Pj4+IC0JCQkJc3RhdGUgPSAwOw0KPj4+PiAtCQkJfQ0KPj4+PiAtCQl9DQo+Pj4+IC0JCXN0 cisrOw0KPj4+PiArCWlmICgqbGVuX2xpc3QgPj0gbWF4X2xpc3QpDQo+Pj4+ICsJCXJldHVybiAt MTsNCj4+Pg0KPj4+IElmIGN1cnJlbnQgbGVuZ3RoIGlzIGVxdWFsIHRvIG1heCwgYnV0IGFkZGVk IHZhbHVlIGlzIGFscmVhZHkgaXMgaW4NCj4+PiB0aGUgbGlzdCwgaXQgc2hvdWxkIG5vdCBiZSBh biBlcnJvci4gU28sIHRoZXNlIHR3byBsaW5lcyBzaG91bGQgYmUNCj4+PiBtb3ZlZCBhZnRlciBi ZWxvdyBmb3IgbG9vcC4NCj4+Pg0KPj4+PiArCWZvciAoaSA9IDA7IGkgPCAqbGVuX2xpc3Q7IGkr Kykgew0KPj4+PiArCQlpZiAobGlzdFtpXSA9PSB2YWwpDQo+Pj4+ICsJCQlyZXR1cm4gMDsNCj4+ Pj4gIAl9DQo+Pj4+ICsJbGlzdFsoKmxlbl9saXN0KSsrXSA9IHZhbDsNCj4+Pj4gIAlyZXR1cm4g MDsNCj4+Pj4gIH0NCj4+Pj4NCj4+Pj4gLXN0YXRpYyBpbnQNCj4+Pj4gK3N0YXRpYyBjaGFyICoN Cj4+Pj4gIHJ0ZV9ldGhfZGV2YXJnc19wcm9jZXNzX3JhbmdlKGNoYXIgKnN0ciwgdWludDE2X3Qg Kmxpc3QsIHVpbnQxNl90DQo+Kmxlbl9saXN0LA0KPj4+PiAgCWNvbnN0IHVpbnQxNl90IG1heF9s aXN0KQ0KPj4+PiAgew0KPj4+PiAgCXVpbnQxNl90IGxvLCBoaSwgdmFsOw0KPj4+PiAgCWludCBy ZXN1bHQ7DQo+Pj4+ICsJY2hhciAqcG9zID0gc3RyOw0KPj4+Pg0KPj4+PiAgCXJlc3VsdCA9IHNz Y2FuZihzdHIsICIlaHUtJWh1IiwgJmxvLCAmaGkpOw0KPj4+PiAgCWlmIChyZXN1bHQgPT0gMSkg ew0KPj4+PiAtCQlpZiAoKmxlbl9saXN0ID49IG1heF9saXN0KQ0KPj4+PiAtCQkJcmV0dXJuIC1F Tk9NRU07DQo+Pj4+IC0JCWxpc3RbKCpsZW5fbGlzdCkrK10gPSBsbzsNCj4+Pj4gKwkJaWYgKHJ0 ZV9ldGhfZGV2YXJnc19lbmxpc3QobGlzdCwgbGVuX2xpc3QsIG1heF9saXN0LCBsbykgIT0gMCkN Cj4+Pj4gKwkJCXJldHVybiBOVUxMOw0KPj4+PiAgCX0gZWxzZSBpZiAocmVzdWx0ID09IDIpIHsN Cj4+Pj4gLQkJaWYgKGxvID49IGhpIHx8IGxvID4gUlRFX01BWF9FVEhQT1JUUyB8fCBoaSA+DQo+ Pj4gUlRFX01BWF9FVEhQT1JUUykNCj4+Pg0KPj4+IFN0cmljdGx5IHNwZWFraW5nIHJlbW92YWwg b2YgY29tcGFyaXNpb24gdnMgUlRFX01BWF9FVEhQT1JUUyBpcyBhDQo+Pj4gc2VwYXJhdGUgbG9n aWNhbCBjaGFuZ2Ugd2l0aCBhIHNlcGFyYXRlIG1vdGl2YXRpb24uDQo+Pg0KPj4gVG8gbWFrZSB0 aGlzIGZ1bmN0aW9uIGNvbW1lbnQgZm9yIGNvbnRyb2xsZXIvcGYvdmYvc2YgcGFyc2luZywgdGhl IG1heA0KPj4gdmFsdWUgaXMgcGFzc2VkIGluIGFzIHBhcmFtZXRlciBhbmQgY2hlY2tlZCBpbiBy dGVfZXRoX2RldmFyZ3NfZW5saXN0KCkuDQo+PiBDYWxsZXIgY29kZSBpbiBydGVfZXRoX2RldmFy Z3NfcHJvY2Vzc19saXN0KCkgZGVjaWRlIHRoZSBtYXggdmFsdWUuDQo+DQo+V2hpY2ggbWF4aW11 bT8gTWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYXJyYXkgYW5kIG1heGltdW0NCj5lbGVt ZW50IHZhbHVlIGFyZSBkaWZmZXJlbnQgdGhpbmdzLg0KDQpNeSBiYWQsIGFmdGVyIGFub3RoZXIg Y2hlY2ssIGl0IHNob3VsZCBiZSBtYXggbnVtYmVyIG9mIGVsZW1lbnRzIGluIGFycmF5LA0Kbm90 IG1heCBlbGVtZW50IHZhbHVlLiBXaWxsIHVwZGF0ZSwgdGhhbmtzISANCj4NCj5bc25pcF0NCg==