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 E311AA0524; Thu, 26 Nov 2020 08:24:14 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 540B5C938; Thu, 26 Nov 2020 08:24:13 +0100 (CET) Received: from hqnvemgate26.nvidia.com (hqnvemgate26.nvidia.com [216.228.121.65]) by dpdk.org (Postfix) with ESMTP id CE121C928 for ; Thu, 26 Nov 2020 08:24:11 +0100 (CET) Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Wed, 25 Nov 2020 23:24:12 -0800 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 26 Nov 2020 07:24:02 +0000 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.177) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Thu, 26 Nov 2020 07:24:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rs683AOsB/3GOoHm0Ah87Yy6VL0GuJlfR58hfY/3QU5VsR7nu2RMcTjopGYScmZQeT12x3yjw39ABcOXjV8cQBKa0c6z+Q/CNZDWZk98WoGh8zP+afBd3XWYqNNZgKhu+oZwcG3Bwmk3Qll1PIgAXT117tL2VQVA2fCNt3qbFg/Al1gXmWyC2zP54ehz8Nwn4i7KnH7iZZAM47DHSPy7TsIZBLVbKajk5/bkYwepiZ1GczdRNaqT86Si9zPSjN20sJJ8mX2l3FFHtxtq4OFQoRCh1Oppdb/c4ynP1AKmDGx4MEbSIfRsgTeko+pDs2ftUvMrXBPJEll9z9dEBMSeHg== 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=qeekR0bkj472FHw6hX11tcUzcqcArWYco1iOqm8itoQ=; b=VDIDlQuRUExIPpWWLbIHwegmFJYMQ4M3DqK+pEMgOK+pOUT45OBlC0PZ4FRaoDtS7Q8yfvSgT3zv6T0x1eaVTnd7r/sWYijXFCF67Zr8NARcfgYqnP4ELip1WIzBGR855xVtBZrqyBCcxX/8kNXB01JsPejOuJasqGIB8ut10qYt2lBPyjrG8oM4JljwzX9hPVgtVy3Tlr5Cx4vrNqiuVDvIoLFFFvy4hUc9aAQp08o88mH2Lzr3rHK0oSEud9bg2bCmtYkYxR7UTjWGyX4fiF5QzlRgaUDx608VBNgJwUGDFQsdZaPjlxHVhhAVEutTaLiYszakCzW2bAQy9domIA== 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 MWHPR12MB1501.namprd12.prod.outlook.com (2603:10b6:301:f::18) by MWHPR1201MB0141.namprd12.prod.outlook.com (2603:10b6:301:56::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.25; Thu, 26 Nov 2020 07:24:00 +0000 Received: from MWHPR12MB1501.namprd12.prod.outlook.com ([fe80::ec4d:f17d:402c:78b4]) by MWHPR12MB1501.namprd12.prod.outlook.com ([fe80::ec4d:f17d:402c:78b4%6]) with mapi id 15.20.3589.030; Thu, 26 Nov 2020 07:24:00 +0000 From: Slava Ovsiienko To: Ferruh Yigit , NBU-Contact-Thomas Monjalon , "Wei Hu (Xavier)" CC: "dev@dpdk.org" , "xavier.huwei@huawei.com" Thread-Topic: [dpdk-dev] [PATCH v4 3/6] app/testpmd: remove restriction on txpkts set Thread-Index: AQHWwly6wjJw8vbGvUKwLLN1L/9JtqnY47QAgAEhXlA= Date: Thu, 26 Nov 2020 07:24:00 +0000 Message-ID: References: <20200818120254.72792-1-huwei013@chinasoftinc.com> <20200925124719.26001-4-huwei013@chinasoftinc.com> <3600731.79S79Y1HSu@thomas> <7b31a7ca-a29a-cc7a-7ed7-d22497eb6244@intel.com> In-Reply-To: <7b31a7ca-a29a-cc7a-7ed7-d22497eb6244@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c263a0bb-5938-4677-be8d-08d891dc3ee4 x-ms-traffictypediagnostic: MWHPR1201MB0141: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1+xXLHc2X8tGdYHMxIWZiu98TgSei/t615tyrNT2X4vDcGC09vvyX5vbfWbwPFSUNvtG7x5KTvDXiGSn666bxCxMMh17UnQEhYVXcmfW+PH0lBJV+bG3FXu2TgXftfMn58f3R05QZvrctLzLR7TkOy6CcijOjy+88Jb5e7/Klwlnn1tABoXoimD6rU1igp4jTMy80hYOrUhqLn9e0pBSJa/MKcCC9KQ6RnwrQQCnya+7AR7BTh8HgF61BZZsNpweh2IK5dqr6b2MDgyqPo7eNGbJ/k1ELmWmAU4gqtaKN4asgHyPrk7pTHNItWZFLZ3sUBOgaeX7YJvwuovJ/DRMD2zwCu2dxEF+uyxzLvZZr8W575c3p8pFd/O0qKw9hvuaYSwhWq+mBXdICnTDQydS2rxrfI/xzdcGNIv9glnQRdKVH+k9EHTOkT1Sl+NDbCYwC/rW57vGD2AvqLTo7ObifQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR12MB1501.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(136003)(346002)(376002)(39860400002)(64756008)(76116006)(8936002)(4326008)(316002)(8676002)(86362001)(7696005)(54906003)(110136005)(66446008)(71200400001)(83380400001)(53546011)(26005)(66946007)(186003)(966005)(66476007)(5660300002)(9686003)(33656002)(478600001)(52536014)(55016002)(6506007)(66556008)(2906002)(40753002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?QW45QUIvRnRiLzBaSnJJNG1udmNjekdaQi9CeW12b255VXp2WktPMDAybGs4?= =?utf-8?B?ZHpoNkhvYXJtSmdKM29Zb2dGQmFkOFFoS0ZleWlqWlE1cmo4MVVvdEV3cWp5?= =?utf-8?B?MC9jamxhQS83KzhpZGg3V0g1ZFJSK3FkZEZpc0svZTcvNVRrc0t0aEF4cXd2?= =?utf-8?B?OW1nVnhYUnlxdUtBTWJTV2k3Rmo5ZnpBM0hqUzU4YzVmeGNEUHZraTFRNUdj?= =?utf-8?B?VmltYndDcnI1ckVlSzZsQ0V5VW9saHlFWW1YKzY3bUZ1SWdoMEE2cnRsOWhV?= =?utf-8?B?MHYyMmNJYTQ4dFcrbGxCay9RZS8ycjZTTDgxWERLY2ttWGJpeENLazBWWjdJ?= =?utf-8?B?eUc4dXZ1NjlyWXdhMi9PVTJwNVJmTUdaY2JWbDF5bFh4Q3hjNG1WdlpsSnhu?= =?utf-8?B?QWlPTWVVTTh5cW54UkpNNzgxMTIwV05nbFJXRnhhcDFrcmRaSkJtbEtJZjht?= =?utf-8?B?UlRjNDFTbzhqc0tKZGl6VEJkSmVSU0p2UFVTdEJxU3BDVVlxNGJVMWZybHhZ?= =?utf-8?B?OHRDc29nSGY0a1VHZDBzMTY2YWdSK0I4SSs4UFR3aGRrNDg3cHJudXJqeHFp?= =?utf-8?B?ZjV5RzhTSklQcHVLOXdxV3dEMXQ3ZHR3R3Nrd2xXeXB0eXlYU0U3dklLZ2tu?= =?utf-8?B?TEhHOWdOd21aVlM3RGd1ZXZYNTlNcnhaaXpLZGhNZFB5STdPRERDQjBFUE11?= =?utf-8?B?TDdrbHM2WG9uWGs3Y3dYdFFOOWRHbmhWUnpqNlg4dTJnTTN6TncxR21vNG9N?= =?utf-8?B?cldrNlBmWHVwd2ZGZmtCc3VkbjNadXZITmZqQzhkblJlcFRiQkFsL1NFQWxq?= =?utf-8?B?WUF2OGl4RGY1WU5rbE9OakpwN01rQnp6LzgzaVgzL1k1UU5DVnRhbHQxY3Vs?= =?utf-8?B?eWdIdjFCNndrYU5WakZXRlJoWDdERlhzVHFIVXY2NHU0WUExM3BJa0tzR0po?= =?utf-8?B?bDF4QjJnSDBjL09QaXVaQk5RK1NoQTN6YzNyc2NiditIMTUrSncwQzV1ZTRN?= =?utf-8?B?WHhrUE9NSXQvdzZTQmpna3p5WjVEOUJ5YnlPUU1JMGZEemFHbTl6eGVwMGZY?= =?utf-8?B?VVdFcTFBL3NHTmlka21ZbGMrVUY0VWVFcUZTc3hsNHdKZ1BWTzdkcUpFYzV5?= =?utf-8?B?Y1lnUnVxQ3g3VEQyai9xblVVS3ozUUN4THJndzdlS0sydHdYUmREY1J3b2RH?= =?utf-8?B?elExYTJaVVlUWngyR2wySjBqSE1mZkpqcGMrSmZGdzhiZVc5S21GSzJLQVZJ?= =?utf-8?B?R2pOamRFM0tUMGx4QjlrYm5xekJGK1ViUjZwNGtBb1FBV2cyVnMzSTNRWHRs?= =?utf-8?Q?5CBsGu60nxPis=3D?= x-ms-exchange-transport-forked: True 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: MWHPR12MB1501.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c263a0bb-5938-4677-be8d-08d891dc3ee4 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2020 07:24:00.5976 (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: YH6cFWKnm3motVKIwhv/mThbaGqpn+Od5mLXahYZHU2PfbOiPiq99mzYQn0P1NNxVMuFkOP9yBrWH+Qh/NKiqg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB0141 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1606375452; bh=qeekR0bkj472FHw6hX11tcUzcqcArWYco1iOqm8itoQ=; h=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-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:x-ms-exchange-transport-forked: 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=IMbkqhxYV/mpur6EBgZeCOqOKAsF/tsVG+i2KUwgha0iBF1AmakaTHFUNQOpJS1hQ tKqu/gGr62Gv1geqDpEix4Uj5RUw32WYerLQES2DPYJJz0BW6PYuv347ewI8TzYKcG tcwIulwzQQEcYCuVd1rMEIIboAD+JYt/wKQa+C8D2mndwqyVsZGwHoX0QD54FGYA3Y tnpVxtw2XflGjMIGPIPqZDW5TRdiW7D/0kxENHQNZlpEleixgmduZAk27pdOPo4eT/ qxCguRGzm84Oxga8uX5fWyITw1BBZmCQqFxV03h0zH9U7cT6y+RZld5/+4ud9xUBiR tFI2zqQp5Igcw== Subject: Re: [dpdk-dev] [PATCH v4 3/6] app/testpmd: remove restriction on txpkts set 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" VGhlIGJ1ZzogaHR0cHM6Ly9idWdzLmRwZGsub3JnL3Nob3dfYnVnLmNnaT9pZD01ODQNCg0KQ2Fu IHdlIHBhc3MgdGhlIG5iX3NlZ3MgPSAxIGFsd2F5cz8gDQpPbmUgZGVzY3JpcHRvciBpcyBtaW5p bWFsIGJhc2ljIGNhcGFiaWxpdHkgdG8gc2VuZCwgaXQgc2hvdWxkIGJlIGFsd2F5cyBzdXBwb3J0 ZWQuDQoNCldpdGggYmVzdCByZWdhcmRzLCBTbGF2YQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4g U2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyNSwgMjAyMCAxNjowNw0KPiBUbzogTkJVLUNvbnRh Y3QtVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgV2VpIEh1IChYYXZpZXIp DQo+IDxodXdlaTAxM0BjaGluYXNvZnRpbmMuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyB4YXZp ZXIuaHV3ZWlAaHVhd2VpLmNvbTsgU2xhdmEgT3ZzaWllbmtvDQo+IDx2aWFjaGVzbGF2b0Budmlk aWEuY29tPg0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjQgMy82XSBhcHAvdGVz dHBtZDogcmVtb3ZlIHJlc3RyaWN0aW9uIG9uDQo+IHR4cGt0cyBzZXQNCj4gDQo+IE9uIDExLzI0 LzIwMjAgMTI6MjMgUE0sIEZlcnJ1aCBZaWdpdCB3cm90ZToNCj4gPiBPbiAxMS8yNC8yMDIwIDEw OjI3IEFNLCBUaG9tYXMgTW9uamFsb24gd3JvdGU6DQo+ID4+IElzIGl0IE9LIHRvIGtlZXAgdGhp cyByZWdyZXNzaW9uPw0KPiA+Pg0KPiA+PiBGZXJydWgsIHdoYXQgZG8geW91IHN1Z2dlc3Q/DQo+ ID4+DQo+ID4NCj4gPiBJIGNvbmZpcm0gdGhlICctLXR4cGt0cycgcGFyYW1ldGVyIGlzIGJyb2tl biBub3csIEkgc3VnZ2VzdCBzdWJtaXR0aW5nDQo+ID4gYSBkZWZlY3QgZm9yIGl0IGFuZCBjb250 aW51ZSB3aXRoIHRoZSByZWdyZXNzaW9uLg0KPiA+DQo+IA0KPiBIaSBTbGF2YSwNCj4gDQo+IENh biB5b3UgcGxlYXNlIHN1Ym1pdCB0aGUgQnVnemlsbGEgZGVmZWN0Pw0KPiANCj4gVGhhbmtzLA0K PiBmZXJydWgNCj4gDQo+IA0KPiA+IFdlIGhhdmUgYWx0ZXJuYXRpdmUgZm9yIHRoZSBwYXJhbWV0 ZXIsICJzZXQgdHhwa3RzIDxsZW4wWyxsZW4xXSo+IiBjb21tYW5kLg0KPiA+IFRoZSBwYXJhbWV0 ZXIgd2FzIG9ubHkgd29ya2luZyB3aGVuIGhhcmRjb2RlZCAnLS10eGQ9TicgcGFyYW1ldGVyIGlz DQo+ID4gcHJvdmlkZWQsIHRoZSBjb21tYW5kIGlzIG1vcmUgZHluYW1pYyBhbmQgd29ya3MgaG93 ZXZlciBxdWV1ZSBzaXplIGlzDQo+IGNvbmZpZ3VyZWQuDQo+ID4NCj4gPiBXZSBjYW4gZml4IHRo ZSAnLS10eHBrdHMnIGluIG5leHQgcmVsZWFzZS4NCj4gPg0KPiA+Pg0KPiA+PiAyMy8xMS8yMDIw IDEyOjUwLCBTbGF2YSBPdnNpaWVua286DQo+ID4+PiBIaSzCoCBXZWkNCj4gPj4+DQo+ID4+PiBJ dCB3YXMgZm91bmQgdGhpcyBwYXRjaCByZWplY3RzIHRoZSAtLXR4cGt0cyBjb21tYW5kIGxpbmUg c2V0dGluZ3MuDQo+ID4+PiBzZXRfdHhfcGt0X3NlZ21lbnRzKCkgaXMgY2FsbGVkIGJlZm9yZSBk ZXZpY2Ugc3RhcnRlZCBhbmQgd2UgaGF2ZQ0KPiA+Pj4gZmFpbHVyZSBjaGFpbjoNCj4gPj4+DQo+ ID4+PiBzZXRfdHhfcGt0X3NlZ21lbnRzKCkNCj4gPj4+IMKgwqAgbmJfc2Vnc19pc19pbnZhbGlk KCkNCj4gPj4+IMKgwqDCoMKgIGdldF90eF9yaW5nX3NpemUgKCkNCj4gPj4+IMKgwqDCoMKgwqAg cnRlX2V0aF90eF9xdWV1ZV9pbmZvX2dldCgpDQo+ID4+Pg0KPiA+Pj4gSXQgY2F1c2VzIC0tdHhw a3RzIHRlc3RwbWQgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBpZ25vcmVkLg0KPiA+Pj4NCj4gPj4+ IFdpdGggYmVzdCByZWdhcmRzLCBTbGF2YQ0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IGRldiA8ZGV2LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJl aGFsZiBPZiBXZWkgSHUgKFhhdmllcikNCj4gPj4+PiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAy NSwgMjAyMCAxNTo0Nw0KPiA+Pj4+IFRvOiBkZXZAZHBkay5vcmcNCj4gPj4+PiBDYzogeGF2aWVy Lmh1d2VpQGh1YXdlaS5jb20NCj4gPj4+PiBTdWJqZWN0OiBbZHBkay1kZXZdIFtQQVRDSCB2NCAz LzZdIGFwcC90ZXN0cG1kOiByZW1vdmUgcmVzdHJpY3Rpb24NCj4gPj4+PiBvbiB0eHBrdHMgc2V0 DQo+ID4+Pj4NCj4gPj4+PiBGcm9tOiBDaGVuZ2NoYW5nIFRhbmcgPHRhbmdjaGVuZ2NoYW5nQGh1 YXdlaS5jb20+DQo+ID4+Pj4NCj4gPj4+PiBDdXJyZW50bHksIGlmIG5iX3R4ZCBpcyBub3Qgc2V0 LCB0aGUgdHhwa3RzIGlzIG5vdCBhbGxvd2VkIHRvIGJlDQo+ID4+Pj4gc2V0IGJlY2F1c2UgdGhl IG5iX3R4ZCBpcyB1c2VkIHRvIGF2b2lkIHRoZSBudW1lciBvZiBzZWdtZW50cw0KPiA+Pj4+IGV4 Y2VlZCB0aGUgVHggcmluZyBzaXplIGFuZCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBuYl90eGQgaXMg MC4gQW5kDQo+ID4+Pj4gdGhlcmUgaXMgYSBidWcgdGhhdCBuYl90eGQgaXMgdGhlIGdsb2JhbCBj b25maWd1cmF0aW9uIGZvciBUeCByaW5nDQo+ID4+Pj4gc2l6ZSBhbmQgdGhlIHJpbmcgc2l6ZSBj b3VsZCBiZSBjaGFuZ2VkIGJ5IHNvbWUgY29tbWFuZCBwZXIgcXVldWUuDQo+ID4+Pj4gU28gdGhl c2UgdmFsaWQgY2hlY2sgaXMgdW5yZWxpYWJsZSBhbmQgaW50cm9kdWNlZCB1bm5lY2Vzc2FyeQ0K PiA+Pj4+IGNvbnN0cmFpbnRzLg0KPiA+Pj4+DQo+ID4+Pj4gVGhpcyBwYXRjaCBhZGRzIGEgdmFs aWQgY2hlY2sgZnVuY3Rpb24gdG8gdXNlIHRoZSByZWFsIFR4IHJpbmcgc2l6ZQ0KPiA+Pj4+IHRv IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0eHBrdHMuDQo+ID4+Pj4NCj4gPj4+PiBGaXhlczogYWY3 NTA3OGZlY2UzICgiZmlyc3QgcHVibGljIHJlbGVhc2UiKQ0KPiA+Pj4+IENjOiBzdGFibGVAZHBk ay5vcmcNCj4gPj4+Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IENoZW5nY2hhbmcgVGFuZyA8dGFu Z2NoZW5nY2hhbmdAaHVhd2VpLmNvbT4NCj4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBXZWkgSHUgKFhh dmllcikgPHhhdmllci5odXdlaUBodWF3ZWkuY29tPg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+IHYzIC0+ IHY0Og0KPiA+Pj4+IMKgwqDCoMKgIGFkZCBjaGVjayAncnRlX2V0aF9yeF9xdWV1ZV9pbmZvX2dl dCgpJyByZXR1cm4gdmFsdWUgYW5kDQo+ID4+Pj4gwqDCoMKgwqAgaWYgaXQgaXMgJy1FTk9TVFVQ JyBjYWxjdWxhdGUgdGhlICdyaW5nX3NpemUnLg0KPiA+Pj4+IHYzOsKgwqDCoMKgwqAgaW5pdGlh bCB2ZXJzaW9uLg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+IMKgIGFwcC90ZXN0LXBtZC9jb25maWcuYyB8 IDY0DQo+ID4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tDQo+ID4+Pj4gwqAgMSBmaWxlIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pDQo+ID4+Pj4NCj4gPj4+PiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jIGIvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jIGluZGV4DQo+ID4+Pj4gNjQ5NmQyZi4uOGViYjky NyAxMDA2NDQNCj4gPj4+PiAtLS0gYS9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPj4+PiArKysg Yi9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPj4+PiBAQCAtMTg5Myw2ICsxODkzLDM4IEBAIHR4 X3F1ZXVlX2lkX2lzX2ludmFsaWQocXVldWVpZF90IHR4cV9pZCnCoCB9DQo+ID4+Pj4NCj4gPj4+ PiDCoCBzdGF0aWMgaW50DQo+ID4+Pj4gK2dldF90eF9yaW5nX3NpemUocG9ydGlkX3QgcG9ydF9p ZCwgcXVldWVpZF90IHR4cV9pZCwgdWludDE2X3QNCj4gPj4+PiArKnJpbmdfc2l6ZSkgew0KPiA+ Pj4+ICvCoMKgwqAgc3RydWN0IHJ0ZV9wb3J0ICpwb3J0ID0gJnBvcnRzW3BvcnRfaWRdOw0KPiA+ Pj4+ICvCoMKgwqAgc3RydWN0IHJ0ZV9ldGhfdHhxX2luZm8gdHhfcWluZm87DQo+ID4+Pj4gK8Kg wqDCoCBpbnQgcmV0Ow0KPiA+Pj4+ICsNCj4gPj4+PiArwqDCoMKgIHJldCA9IHJ0ZV9ldGhfdHhf cXVldWVfaW5mb19nZXQocG9ydF9pZCwgdHhxX2lkLCAmdHhfcWluZm8pOw0KPiA+Pj4+ICvCoMKg wqAgaWYgKHJldCA9PSAwKSB7DQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgICpyaW5nX3NpemUgPSB0 eF9xaW5mby5uYl9kZXNjOw0KPiA+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPiA+ Pj4+ICvCoMKgwqAgfQ0KPiA+Pj4+ICsNCj4gPj4+PiArwqDCoMKgIGlmIChyZXQgIT0gLUVOT1RT VVApDQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7DQo+ID4+Pj4gK8KgwqDCoCAv Kg0KPiA+Pj4+ICvCoMKgwqDCoCAqIElmIHRoZSBydGVfZXRoX3R4X3F1ZXVlX2luZm9fZ2V0IGlz IG5vdCBzdXBwb3J0IGZvciB0aGlzDQo+ID4+Pj4gK1BNRCwNCj4gPj4+PiArwqDCoMKgwqAgKiBy aW5nX3NpemUgc3RvcmVkIGluIHRlc3RwbWQgd2lsbCBiZSB1c2VkIGZvciB2YWxpZGl0eSB2ZXJp ZmljYXRpb24uDQo+ID4+Pj4gK8KgwqDCoMKgICogV2hlbiBjb25maWd1cmUgdGhlIHR4cSBieSBy dGVfZXRoX3R4X3F1ZXVlX3NldHVwIHdpdGgNCj4gPj4+PiBuYl90eF9kZXNjDQo+ID4+Pj4gK8Kg wqDCoMKgICogYmVpbmcgMCwgaXQgd2lsbCB1c2UgYSBkZWZhdWx0IHZhbHVlIHByb3ZpZGVkIGJ5 IFBNRHMgdG8NCj4gPj4+PiArc2V0dXAgdGhpcw0KPiA+Pj4+ICvCoMKgwqDCoCAqIHR4cS4gSWYg dGhlIGRlZmF1bHQgdmFsdWUgaXMgMCwgaXQgd2lsbCB1c2UgdGhlDQo+ID4+Pj4gK8KgwqDCoMKg ICogUlRFX0VUSF9ERVZfRkFMTEJBQ0tfVFhfUklOR1NJWkUgdG8gc2V0dXAgdGhpcyB0eHEuDQo+ ID4+Pj4gK8KgwqDCoMKgICovDQo+ID4+Pj4gK8KgwqDCoCBpZiAocG9ydC0+bmJfdHhfZGVzY1t0 eHFfaWRdKQ0KPiA+Pj4+ICvCoMKgwqDCoMKgwqDCoCAqcmluZ19zaXplID0gcG9ydC0+bmJfdHhf ZGVzY1t0eHFfaWRdOw0KPiA+Pj4+ICvCoMKgwqAgZWxzZSBpZiAocG9ydC0+ZGV2X2luZm8uZGVm YXVsdF90eHBvcnRjb25mLnJpbmdfc2l6ZSkNCj4gPj4+PiArwqDCoMKgwqDCoMKgwqAgKnJpbmdf c2l6ZSA9IHBvcnQtPmRldl9pbmZvLmRlZmF1bHRfdHhwb3J0Y29uZi5yaW5nX3NpemU7DQo+ID4+ Pj4gK8KgwqDCoCBlbHNlDQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgICpyaW5nX3NpemUgPSBSVEVf RVRIX0RFVl9GQUxMQkFDS19UWF9SSU5HU0laRTsNCj4gPj4+PiArwqDCoMKgIHJldHVybiAwOw0K PiA+Pj4+ICt9DQo+ID4+Pj4gKw0KPiA+Pj4+ICtzdGF0aWMgaW50DQo+ID4+Pj4gwqAgcnhfZGVz Y19pZF9pc19pbnZhbGlkKHVpbnQxNl90IHJ4ZGVzY19pZCnCoCB7DQo+ID4+Pj4gwqDCoMKgwqDC oCBpZiAocnhkZXNjX2lkIDwgbmJfcnhkKQ0KPiA+Pj4+IEBAIC0yOTg2LDE3ICszMDE4LDQxIEBA IHNob3dfdHhfcGt0X3NlZ21lbnRzKHZvaWQpDQo+ID4+Pj4gwqDCoMKgwqDCoCBwcmludGYoIlNw bGl0IHBhY2tldDogJXNcbiIsIHNwbGl0KTsNCj4gPj4+PiDCoCB9DQo+ID4+Pj4NCj4gPj4+PiAr c3RhdGljIGJvb2wNCj4gPj4+PiArbmJfc2Vnc19pc19pbnZhbGlkKHVuc2lnbmVkIGludCBuYl9z ZWdzKSB7DQo+ID4+Pj4gK8KgwqDCoCB1aW50MTZfdCByaW5nX3NpemU7DQo+ID4+Pj4gK8KgwqDC oCB1aW50MTZfdCBxdWV1ZV9pZDsNCj4gPj4+PiArwqDCoMKgIHVpbnQxNl90IHBvcnRfaWQ7DQo+ ID4+Pj4gK8KgwqDCoCBpbnQgcmV0Ow0KPiA+Pj4+ICsNCj4gPj4+PiArwqDCoMKgIFJURV9FVEhf Rk9SRUFDSF9ERVYocG9ydF9pZCkgew0KPiA+Pj4+ICvCoMKgwqDCoMKgwqDCoCBmb3IgKHF1ZXVl X2lkID0gMDsgcXVldWVfaWQgPCBuYl90eHE7IHF1ZXVlX2lkKyspIHsNCj4gPj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCByZXQgPSBnZXRfdHhfcmluZ19zaXplKHBvcnRfaWQsIHF1ZXVlX2lk LCAmcmluZ19zaXplKTsNCj4gPj4+PiArDQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKHJldCkNCj4gPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiB0 cnVlOw0KPiA+Pj4+ICsNCj4gPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocmluZ19z aXplIDwgbmJfc2Vncykgew0KPiA+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cHJpbnRmKCJuYiBzZWdtZW50cyBwZXIgVFggcGFja2V0cz0ldSA+PSAiDQo+ID4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJUWCBxdWV1ZSgldSkgcmlu Z19zaXplPSV1IC0gaWdub3JlZFxuIiwNCj4gPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgbmJfc2VncywgcXVldWVfaWQsIHJpbmdfc2l6ZSk7DQo+ID4+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gdHJ1ZTsNCj4gPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9DQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgIH0NCj4gPj4+ PiArwqDCoMKgIH0NCj4gPj4+PiArDQo+ID4+Pj4gK8KgwqDCoCByZXR1cm4gZmFsc2U7DQo+ID4+ Pj4gK30NCj4gPj4+PiArDQo+ID4+Pj4gwqAgdm9pZA0KPiA+Pj4+IMKgIHNldF90eF9wa3Rfc2Vn bWVudHModW5zaWduZWQgKnNlZ19sZW5ndGhzLCB1bnNpZ25lZCBuYl9zZWdzKcKgIHsNCj4gPj4+ PiDCoMKgwqDCoMKgIHVpbnQxNl90IHR4X3BrdF9sZW47DQo+ID4+Pj4gwqDCoMKgwqDCoCB1bnNp Z25lZCBpOw0KPiA+Pj4+DQo+ID4+Pj4gLcKgwqDCoCBpZiAobmJfc2VncyA+PSAodW5zaWduZWQp IG5iX3R4ZCkgew0KPiA+Pj4+IC3CoMKgwqDCoMKgwqDCoCBwcmludGYoIm5iIHNlZ21lbnRzIHBl ciBUWCBwYWNrZXRzPSV1ID49IG5iX3R4ZD0ldSAtDQo+ID4+Pj4gaWdub3JlZFxuIiwNCj4gPj4+ PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuYl9zZWdzLCAodW5zaWduZWQgaW50KSBu Yl90eGQpOw0KPiA+Pj4+ICvCoMKgwqAgaWYgKG5iX3NlZ3NfaXNfaW52YWxpZChuYl9zZWdzKSkN Cj4gPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuOw0KPiA+Pj4+IC3CoMKgwqAgfQ0KPiA+ Pj4+DQo+ID4+Pj4gwqDCoMKgwqDCoCAvKg0KPiA+Pj4+IMKgwqDCoMKgwqDCoCAqIENoZWNrIHRo YXQgZWFjaCBzZWdtZW50IGxlbmd0aCBpcyBncmVhdGVyIG9yIGVxdWFsIHRoYW4NCj4gPj4+PiAt LQ0KPiA+Pj4+IDIuOS41DQo+ID4+Pg0KPiA+Pj4NCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4NCj4g Pj4NCj4gPg0KDQo=