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 64EA1A0530; Wed, 12 Feb 2020 11:25:48 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3714B262E; Wed, 12 Feb 2020 11:25:48 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id B7BFA1DB9 for ; Wed, 12 Feb 2020 11:25:46 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Feb 2020 02:25:45 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,428,1574150400"; d="scan'208";a="227785921" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga008.fm.intel.com with ESMTP; 12 Feb 2020 02:25:45 -0800 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 12 Feb 2020 02:25:44 -0800 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb 2020 02:25:44 -0800 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 12 Feb 2020 02:25:44 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.173) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 12 Feb 2020 02:25:43 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cEA44cUo1FkmjOPMWdbCMyOa8bBEc560Z7ri9M1zb6tfY8uqHg5WJqorXfHXKrIpTyrvq97SPlaxsKAr8WbKUTWyWj+8lmqlIISZbJaJafWZ5sS/cHuuae4GGZTrcaDnqJL+Atbx8Gmje7YLhoydfcKJLf/MDOGqpK4YCdMx3WS4dL24Nih5MOAKcu0/eFRbh67TA8aJL4c7lZVWSBr6csDxb9fdBzcSijKlNob1sYrc8ewIBw/OZM7Qdh2AHnCI79i2UcWcGl390aZVsRaJ96OpbViFo5COtAWheYE0wuNTz1JYAY6Ir/Bq/CnMv8tfWj9nyNHITW2uiJkZb8+8sA== 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=6z9p8knUEKaQSsiE4wHY75Q/+0kmYZamdGu5Qi5awDU=; b=MQuSLYcnp9KkwWlyul0t03d6zPokQXHfV8OganWRktdXso24R4rcj8S5KvXJDWKCpmazvtLYBdkOcA4HhXot2ElCF1579pUpqgLugXiJ4TWAzttkjoyyhP9c4m16OVT6+rF1hanFcKoIxu+JTuQADp4Jon+mnrutdAtjSDpRx15PdaGJkiuWRXY0XKQZrtgvQdmx0mEVAwdbLO52fBNN5qjuRP1kh18/00i28lDISsD+aNsz76geKb9yz7lXF62PzB8rHjDqAYUh2HR/YOnShE3kbK1M40GpwC9SnXp49ChUDyUwis0TN40ID+ytXT8Ej0KqwtUtEx1DC5yTi03MdQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6z9p8knUEKaQSsiE4wHY75Q/+0kmYZamdGu5Qi5awDU=; b=dIL4EKHFDL0/UTwgkYPHWPMvB5fLhYAliDyo3yZ1+vFEVr8ajOjag0KRRgujz2VRZ7FgZSLRkITjSri2sW6Tit0hBx8F613O1CNiXAsYfbXwszIenO6uHrU+3sRF/CXFgIKrnThpRN0brX2un354isPAPExWpIHRhmlwTPbYo7Y= Received: from BYAPR11MB2648.namprd11.prod.outlook.com (52.135.227.138) by BYAPR11MB3000.namprd11.prod.outlook.com (20.177.227.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Wed, 12 Feb 2020 10:25:40 +0000 Received: from BYAPR11MB2648.namprd11.prod.outlook.com ([fe80::d0d2:ce29:adf5:f6a5]) by BYAPR11MB2648.namprd11.prod.outlook.com ([fe80::d0d2:ce29:adf5:f6a5%7]) with mapi id 15.20.2707.030; Wed, 12 Feb 2020 10:25:40 +0000 From: "Govindharajan, Hariprasad" To: "Burakov, Anatoly" , "Lu, Wenzhuo" , "Wu, Jingjing" , "Iremonger, Bernard" , "Mcnamara, John" , "Kovacevic, Marko" CC: "dev@dpdk.org" , "Yigit, Ferruh" , "stephen@networkplumber.org" , "david.marchand@redhat.com" Thread-Topic: [dpdk-dev] [PATCH v8] app/testpmd: add portlist option Thread-Index: AQHV4PNsplWmmA3BSUCQ1Kg2H8loHKgWNR6AgAElVNA= Date: Wed, 12 Feb 2020 10:25:40 +0000 Message-ID: References: <1580121053-26083-2-git-send-email-hariprasad.govindharajan@intel.com> <1581436375-16910-1-git-send-email-hariprasad.govindharajan@intel.com> <685ff0d1-750c-3d10-4f27-fb3523f92ba1@intel.com> In-Reply-To: <685ff0d1-750c-3d10-4f27-fb3523f92ba1@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZDQwZGYyY2MtYzViYy00NjM2LTlmMTUtNzQ4YmRiNWMxNjU0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiOXdNaVNXTDRhemN0U2tDSDRjek1ZZWlnMVh6Vyt3OXZ0MHFXdGlGa3RBcHFiNGhZS0twTkdndEVNMUIzYllEZiJ9 dlp-product: dlpe-windows x-ctpclassification: CTP_NT dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=hariprasad.govindharajan@intel.com; x-originating-ip: [192.198.151.166] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 241cfea8-263a-4552-f2ea-08d7afa5e8c8 x-ms-traffictypediagnostic: BYAPR11MB3000: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0311124FA9 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(376002)(366004)(136003)(396003)(346002)(189003)(199004)(33656002)(7696005)(2906002)(6506007)(53546011)(81156014)(26005)(81166006)(186003)(8676002)(55016002)(8936002)(71200400001)(54906003)(110136005)(316002)(64756008)(66446008)(478600001)(66946007)(9686003)(86362001)(76116006)(52536014)(66556008)(66476007)(4326008)(5660300002)(6636002)(921003)(1121003); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR11MB3000; H:BYAPR11MB2648.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9PKC59Pv4izNpiVMNod6oWiA4GhPYuEnDtK0Rng+OOSqx9DGsYGlgHKmYb/QkKQYxc9T+cgHuncj+rthUlzdiZS76g1FDE8MjxFFoUHbfuIsQJQceNSZ42rxPci1xCfW0Z1mYjth6HlSEKmVNSA1vvV/m9v+j8DK2K2gJNCsQUvicmYZMTCW7pz6gTdRbZLfY4JNlvCC+zuGa0IKjV2fP3TzndQAJMG3J8BB8sdHIocM7EahG5q4tYNv8plq6tZZKE+PDRXyM5LyoVsrVwP8wjNsxXXGteDLMYGWvHwV4dbknjBdgl24Z6HTX5JQlrAZh0ccz6rlEwSQHozAn+90SUUbc15Foo9mGvVSlvp5+GuhfrpGDfgDEvduRW5xp4WYnC182SO+/qSq8SmR0vTi2mRwKZWzykkMeRQpKf44AG12FbUkUyjgOK0EJnvB9qUaAQQYG3u4ohdvQ40cil7wnVJKvf1JWAi78iqWw7sq7V9dygMMJYk7WMBneLhWz8mO x-ms-exchange-antispam-messagedata: ykvtu7ouIjNc/vcMVrAYQmPsBpsB09fmHJpWIU2Ak/5m5crMeccbQ6oRSOpYikKDz+t/jKwXh9IdJY20CFIApudIAfZYSLDxjRL51dVIgVKqw+7y0j5bVpUK0DjIrTe6Sak4VG54eMvDnhwKNZAQ2A== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 241cfea8-263a-4552-f2ea-08d7afa5e8c8 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2020 10:25:40.4153 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ekMIJSu3uCc8ZxTRjbGaIvos31xRPkmi6NOgUxHMdimuFQ/9R7Dt/1fv3A7zMBRE8H4BpdUInbYE4Pdkoz/kT2IvpaeWJSSYvAM92CHLheCPWw6urO0UsxgvQ0hBbK9w X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3000 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v8] app/testpmd: add portlist option 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnVyYWtvdiwgQW5hdG9s eSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT4NCj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkg MTEsIDIwMjAgNDo1MiBQTQ0KPiBUbzogR292aW5kaGFyYWphbiwgSGFyaXByYXNhZCA8aGFyaXBy YXNhZC5nb3ZpbmRoYXJhamFuQGludGVsLmNvbT47IEx1LA0KPiBXZW56aHVvIDx3ZW56aHVvLmx1 QGludGVsLmNvbT47IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsNCj4gSXJl bW9uZ2VyLCBCZXJuYXJkIDxiZXJuYXJkLmlyZW1vbmdlckBpbnRlbC5jb20+OyBNY25hbWFyYSwg Sm9obg0KPiA8am9obi5tY25hbWFyYUBpbnRlbC5jb20+OyBLb3ZhY2V2aWMsIE1hcmtvDQo+IDxt YXJrby5rb3ZhY2V2aWNAaW50ZWwuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBZaWdpdCwgRmVy cnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsNCj4gc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5v cmc7IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0g W1BBVENIIHY4XSBhcHAvdGVzdHBtZDogYWRkIHBvcnRsaXN0IG9wdGlvbg0KPiANCj4gT24gMTEt RmViLTIwIDM6NTIgUE0sIEhhcmlwcmFzYWQgR292aW5kaGFyYWphbiB3cm90ZToNCj4gPiBJbiBj dXJyZW50IHZlcnNpb24sIHdlIGFyZSBzZXR0aW5nIHRoZSBwb3J0cyB1c2luZyBwb3J0bWFzay4g V2l0aA0KPiA+IHBvcnRtYXNrLCB3ZSBjYW4gdXNlIG9ubHkgdXB0byA2NCBwb3J0cy4gVGhpcyBw b3J0bGlzdCBvcHRpb24gZW5hYmxlcw0KPiA+IHRoZSB1c2VyIHRvIHVzZSBtb3JlIHRoYW4gNjQg cG9ydHMuDQo+ID4gTm93IHdlIGNhbiBzcGVjaWZ5IHRoZSBwb3J0cyBpbiAyIGRpZmZlcmVudCB3 YXlzDQo+ID4gICAtIFVzaW5nIHBvcnRtYXNrICgtcCBbMHhdbm5uKTogbWFzayBtdXN0IGJlIGlu IGhleCBmb3JtYXQNCj4gPiAgIC0gVXNpbmcgcG9ydGxpc3QgaW4gdGhlIGZvbGxvd2luZyBmb3Jt YXQNCj4gPiAgIC0tcG9ydGxpc3QgPHAxPlstcDJdWyxwM1stcDRdLC4uLl0NCj4gPg0KPiA+ICAg LS1wb3J0bWFzayAweDIgaXMgc2FtZSBhcyAtLXBvcnRsaXN0IDENCj4gPiAgIC0tcG9ydG1hc2sg MHgzIGlzIHNhbWUgYXMgLS1wb3J0bGlzdCAwLTENCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEhh cmlwcmFzYWQgR292aW5kaGFyYWphbg0KPiA+IDxoYXJpcHJhc2FkLmdvdmluZGhhcmFqYW5AaW50 ZWwuY29tPg0KPiA+IC0tLQ0KPiA+IHY4Og0KPiA+IGNoYW5nZWQgdGhlIGRhdGEgdHlwZXMgb2Yg dGhlIHZhcmlhYmxlcy4NCj4gPiBvcHRpbWlzZWQgdGhlIGNvZGUgYnkgY2hlY2tpbmcgZm9yIGJs YW5rIHNwYWNlcyBvbmx5IG9uY2UuDQo+ID4NCj4gPiB2NzoNCj4gPiBtb3ZlZCB0aGUgcG9ydCB2 YWxpZGF0aW9uIG91dHNpZGUgdGhlIHBhcnNlciBmdW5jdGlvbi4NCj4gPiBhZGRlZCBtZWFuaW5n ZnVsIGNvbW1lbnRzIGRlc2NyaWJpbmcgdGhlIG5ldyBmdW5jdGlvbmFsaXR5Lg0KPiA+IHJlbmFt ZWQgdGhlIHZhcmlhYmxlcyB3aXRoIG1lYW5pbmdmdWwgbmFtZXMNCj4gPg0KPiA+IHY2Og0KPiA+ IG9wdGltaXplZCB0aGUgY29kZSB0byBjaGVjayBmb3IgZHVwbGljYXRlcw0KPiA+DQo+ID4gdjU6 DQo+ID4gYWRkZWQgYSBjaGVjayB0byB2YWxpZGF0ZSB0aGUgcG9ydHMgYXZhaWxhYmxlIGJlZm9y ZSBzZXR0aW5nIHRoZW0uDQo+ID4gYWxzbyBhZGRlZCBjb21tZW50cyBpbiB0aGUgdGVzdHBtZCBm aWxlIGZvciB0aGUgbmV3IGZ1bmN0aW9uDQo+ID4NCj4gPiB2NDoNCj4gPiB0aGUgcGFyc2VyIGlz IG1vZGlmaWVkIHNvIHRoYXQgd2UgZG9uJ3QgdWVzIDIgYXJyYXlzIHRvIGNvbnZlcnQgdGhlDQo+ ID4gbGlzdGVkIHBvcnQgdmFsdWVzDQo+ID4NCj4gPiB2MzoNCj4gPiBzcXVhc2hlZCB0aGUgMiBw YXRjaGVzIGFuZCBtYWRlIGl0IDEgcGF0Y2ggd2l0aCBjaGFuZ2VzIG9ubHkgaW4NCj4gPiB0ZXN0 cG1kLiBBbHNvIHdvcmtpbmcgb24gb3B0bWl6aW5nIHRoZSBwYXJzZXINCj4gPg0KPiA+IHYyOg0K PiA+IG1vdmVkIHRoZSBwYXJzZXIgZnVuY3Rpb24gdG8gdGVzdHBtZA0KPiA+IC0tLQ0KPiA+ICAg YXBwL3Rlc3QtcG1kL2NvbmZpZy5jICAgICAgICAgICAgICAgICB8IDEwOA0KPiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gICBhcHAvdGVzdC1wbWQvcGFyYW1ldGVycy5j ICAgICAgICAgICAgIHwgICA1ICsrDQo+ID4gICBhcHAvdGVzdC1wbWQvdGVzdHBtZC5oICAgICAg ICAgICAgICAgIHwgICAzICsNCj4gPiAgIGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvcnVuX2Fw cC5yc3QgfCAgIDcgKysrDQo+ID4gICA0IGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCsp DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jIGIvYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jIGluZGV4DQo+ID4gOTY2OWNiZC4uODY1NjZkOSAxMDA2NDQNCj4gPiAtLS0g YS9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPiArKysgYi9hcHAvdGVzdC1wbWQvY29uZmlnLmMN Cj4gPiBAQCAtMjU4Nyw2ICsyNTg3LDExNCBAQCBzZXRfZndkX3BvcnRzX2xpc3QodW5zaWduZWQg aW50ICpwb3J0bGlzdCwNCj4gdW5zaWduZWQgaW50IG5iX3B0KQ0KPiA+ICAgCX0NCj4gPiAgIH0N Cj4gPg0KPiA+ICsvKioNCj4gPiArICogUGFyc2UgdGhlIHVzZXIgaW5wdXQgYW5kIG9idGFpbiB0 aGUgbGlzdCBvZiBmb3J3YXJkaW5nIHBvcnRzDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbVtpbl0g bGlzdA0KPiA+ICsgKiAgIFN0cmluZyBjb250YWluaW5nIHRoZSB1c2VyIGlucHV0LiBVc2VyIGNh biBzcGVjaWZ5DQo+ID4gKyAqICAgaW4gdGhlc2UgZm9ybWF0cyAxLDMsNSBvciAxLTMgb3IgMS0y LDUgb3IgMyw1LTYuDQo+ID4gKyAqICAgRm9yIGV4YW1wbGUsIGlmIHRoZSB1c2VyIHdhbnRzIHRv IHVzZSBhbGwgdGhlIGF2YWlsYWJsZQ0KPiA+ICsgKiAgIDQgcG9ydHMgaW4gaGlzIHN5c3RlbSwg dGhlbiB0aGUgaW5wdXQgY2FuIGJlIDAtMyBvciAwLDEsMiwzLg0KPiA+ICsgKiAgIElmIHRoZSB1 c2VyIHdhbnRzIHRvIHVzZSBvbmx5IHRoZSBwb3J0cyAxLDIgdGhlbiB0aGUgaW5wdXQNCj4gPiAr ICogICBpcyAxLDIuDQo+ID4gKyAqICAgdmFsaWQgY2hhcmFjdGVycyBhcmUgJy0nIGFuZCAnLCcN Cj4gPiArICogICBpbnZhbGlkIGNoYXJzIGxpa2UgJy4nIG9yICcjJyB3aWxsIHJlc3VsdCBpbg0K PiA+ICsgKiAgIEVBTDogRXJyb3IgLSBleGl0aW5nIHdpdGggY29kZTogMQ0KPiA+ICsgKiAgICAg Q2F1c2U6IEludmFsaWQgZndkIHBvcnQgbGlzdA0KPiA+ICsgKiBAcGFyYW1bb3V0XSB2YWx1ZXMN Cj4gPiArICogICBUaGlzIGFycmF5IHdpbGwgYmUgZmlsbGVkIHdpdGggYSBsaXN0IG9mIHBvcnQg SURzDQo+ID4gKyAqICAgYmFzZWQgb24gdGhlIHVzZXIgaW5wdXQNCj4gPiArICogICBOb3RlIHRo YXQgZHVwbGljYXRlIGVudHJpZXMgYXJlIGRpc2NhcmRlZCBhbmQgb25seSB0aGUgZmlyc3QNCj4g PiArICogICBjb3VudCBlbnRyaWVzIGluIHRoaXMgYXJyYXkgYXJlIHBvcnQgSURzIGFuZCBhbGwg dGhlIHJlc3QNCj4gPiArICogICB3aWxsIGNvbnRhaW4gZGVmYXVsdCB2YWx1ZXMNCj4gPiArICog QHBhcmFtW2luXSBtYXhzaXplDQo+ID4gKyAqICAgVGhpcyBwYXJhbWV0ZXIgZGVub3RlcyAyIHRo aW5ncw0KPiA+ICsgKiAgIDEpIE1heGltdW0gc2l6ZSBvZiB0aGUgdmFsdWVzIGFycmF5DQo+ID4g KyAqICAgMikgTWF4aW11bSB2YWx1ZSBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIHZhbHVlcyBhcnJh eQ0KPiANCj4gSSBzdGlsbCBzdXNwZWN0IHRoZSBmaXJzdCBpdGVtIHNob3VsZCBzYXkgIm51bWJl ciIsIG5vdCBzaXplLiBUaGUgMikgdGFrZXMgY2FyZSBvZg0KPiBob3cgYmlnIGVhY2ggaW5kaXZp ZHVhbCB2YWx1ZSBpcywgYW5kIDEpIHByZXN1bWFibHkgdGFrZXMgY2FyZSBvZiBob3cgbWFueQ0K PiBvZiB0aGVzZSB2YWx1ZXMgdGhlcmUgY2FuIGJlLiBUaGVyZWZvcmUgaSB0aGluayBpdCBzaG91 bGQgYmUgIm51bWJlciIgKGFzIGluDQo+IGhvdyBtYW55KSwgbm90ICJzaXplIiAoYXMgaW4gaG93 IGJpZykuDQo+IA0KDQpbR292aW5kaGFyYWphbiwgSGFyaXByYXNhZF0gIENoYW5nZWQNCj4gPiAr ICogQHJldHVybg0KPiA+ICsgKiAgIC1yZXR1cm5zIHRvdGFsIGNvdW50IG9mIHBhcnNlZCBwb3J0 IElEcw0KPiA+ICsgKi8NCj4gPiArc3RhdGljIHVuc2lnbmVkIGludA0KPiA+ICtwYXJzZV9wb3J0 X2xpc3QoY29uc3QgY2hhciAqbGlzdCwgdW5zaWduZWQgaW50ICp2YWx1ZXMsIHVuc2lnbmVkIGlu dA0KPiA+ICttYXhzaXplKSB7DQo+ID4gKwl1bnNpZ25lZCBpbnQgY291bnQgPSAwOw0KPiA+ICsJ Y2hhciAqZW5kID0gTlVMTDsNCj4gPiArCWludCBtaW4sIG1heDsNCj4gPiArCWludCB2YWx1ZSwg aTsNCj4gPiArCXVuc2lnbmVkIGludCBtYXJrZWRbbWF4c2l6ZV07DQo+ID4gKw0KPiA+ICsJaWYg KGxpc3QgPT0gTlVMTCB8fCB2YWx1ZXMgPT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4g Kw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IChpbnQpbWF4c2l6ZTsgaSsrKQ0KPiA+ICsJCW1hcmtl ZFtpXSA9IDA7DQo+IA0KPiBUaGVuIG1lbXNldCgpLCBidXQgdGhhdCdzIGp1c3Qgbml0cGlja2lu Zywgc28gZmVlbCBmcmVlIHRvIGRpc3JlZ2FyZCA6KQ0KDQpbR292aW5kaGFyYWphbiwgSGFyaXBy YXNhZF0gSXQgaXMgZGlzcmVnYXJkZWQuLiDwn5iKDQo+IA0KPiA+ICsNCj4gPiArCW1pbiA9IElO VF9NQVg7DQo+ID4gKw0KPiA+ICsJZG8gew0KPiA+ICsJCS8qUmVtb3ZlIHRoZSBibGFuayBzcGFj ZXMgaWYgYW55Ki8NCj4gPiArCQl3aGlsZSAoKmxpc3QgIT0gJ1wwJyAmJiBpc2JsYW5rKCpsaXN0 KSkNCj4gPiArCQkJbGlzdCsrOw0KPiANCj4gTXkgYXBvbG9naWVzLiBJJ3ZlIGp1c3QgY2hlY2tl ZCBpZiBpc2JsYW5rKCkgcmV0dXJucyAwIG9uICdcMCcsIGFuZCBpdCBkb2VzLiBTbywNCj4gdGhl IGAqbGlzdCAhPSAnXDAnYCBjaGVjayBpcyBub3QgbmVjZXNzYXJ5IGhlcmUgYWZ0ZXIgYWxsLg0K DQpbR292aW5kaGFyYWphbiwgSGFyaXByYXNhZF0gUmVtb3ZlZCB0aGUgaXNibGFuayBjaGVjaw0K PiANCj4gPiArCQlpZiAoKmxpc3QgPT0gJ1wwJykNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJZXJy bm8gPSAwOw0KPiA+ICsJCXZhbHVlID0gc3RydG9sKGxpc3QsICZlbmQsIDEwKTsNCj4gPiArCQlp ZiAoZXJybm8gfHwgZW5kID09IE5VTEwpDQo+ID4gKwkJCXJldHVybiAwOw0KPiA+ICsJCWlmICh2 YWx1ZSA8IDAgfHwgdmFsdWUgPj0gKGludCltYXhzaXplKQ0KPiA+ICsJCQlyZXR1cm4gMDsNCj4g PiArCQl3aGlsZSAoaXNibGFuaygqZW5kKSkNCj4gPiArCQkJZW5kKys7DQo+ID4gKwkJaWYgKCpl bmQgPT0gJy0nKSB7DQo+ID4gKwkJCW1pbiA9IHZhbHVlOw0KPiANCj4gVGhpcyB3b3VsZCBhY2Nl cHQgaW5wdXQgc3VjaCBhcyAiMS0yLTMiIGFuZCBwYXJzZSBpdCBhcyAiMi0zIi4gTWF5YmUNCj4g DQo+IGlmICgqZW5kID09ICctJyAmJiBtaW4gPT0gSU5UX01BWCkNCj4gDQo+ID8gVGhpcyB3b3Vs ZCB0aGVuIGZhbGwgdGhyb3VnaCB0byB0aGUgZmFpbHVyZSBwYXRoIGlmIGVuZCB3YXMgJy0nIGFu ZCBtaW4gd2FzDQo+IGFscmVhZHkgc2V0Lg0KPg0KW0dvdmluZGhhcmFqYW4sIEhhcmlwcmFzYWRd IGNvcnJlY3RlZC4NCj4gDQo+IC0tDQo+IFRoYW5rcywNCj4gQW5hdG9seQ0K