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 EF306A0032 for ; Mon, 11 Jul 2022 12:42:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DE7E84021F; Mon, 11 Jul 2022 12:42:39 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80078.outbound.protection.outlook.com [40.107.8.78]) by mails.dpdk.org (Postfix) with ESMTP id 99D034021F; Mon, 11 Jul 2022 12:42:38 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lfgkpxLl4tB9TvtJqNYvUFo9dQjdYjkO+zxpPYdXofVWQIkNm7y2+inJsqx1afXNcS9jc7c716nTY4G7nex6m8n1vfrN0PvRZXjbHpOJu4AfRIk4Mp+EMFZjrHL8Bkm9YanllHzp8It7v5/h9hl3LmAU6soiD1KNuNVqOmbxxURsX/UhTGonrWtSnXsanRg9QHRfctkvLLarVixn1h/Qf3QdHQLmzsofd8ao3U+z3vQtqFwXdOIMOdhG0k7yhJ6rEhn2jC29zok0pFZEVXNi6Edi8EOxCP4WZH1N8tdD/0ZAW6lk5+erutvqy7tRPCU8Rmjta5mxa//S9Zi5Sk5QTQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GI5rrpeNsdybmg+/c1H2vtQo53Unxxc49wHczEGInds=; b=oRxFVZDiJPmDUKZZnQQYRA6zgDNNEb9NfX5eBuaDP7tz3bh6D0gZSWpl4m2z4NtkqMgyss3Tc+vZ1VYCGMsQC5rT8A6fK+rnD0BMQJifqXadBZfbSgsvF64YstD7gILACIzpcDN1ihoCJq/yTD+T1I0ON+iUuMbWo1f/ywKdx6SU/5mZd72TVzrdQm2LNm936K+Isk4Y30+kpLr1y/rlbsd3lzntvYpK/A0PjLSEsVdXYA51SIdXPXN3fTCqlyuNfl42vC7RtP23VnYIVX059ThhiIAd54Caa4Stg04wbScXzu2vNT+reaVaIaVp4HVXIENxvWfG7+D56wJeKh2bUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GI5rrpeNsdybmg+/c1H2vtQo53Unxxc49wHczEGInds=; b=uDaxEWyMooTi+xlEQnuK2dPdN+JBaIkn8Y9mXEiy9soOXs054CQwfE6ZAz9eeMRe8PA0mMR9MekgqA5fHgfPTo0IvDP34TIyjgZn7NQDcP0us/qjPcOnGh3O3c1as6iuIuJ8ubBRw1Vlj8eYx5vx2ytoRmScVhnN4A4rgf2e+/M= Received: from DB7PR07MB5978.eurprd07.prod.outlook.com (2603:10a6:10:80::15) by PA4PR07MB7376.eurprd07.prod.outlook.com (2603:10a6:102:c5::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.10; Mon, 11 Jul 2022 10:42:37 +0000 Received: from DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::45fc:aa82:15fd:875f]) by DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::45fc:aa82:15fd:875f%7]) with mapi id 15.20.5417.023; Mon, 11 Jul 2022 10:42:37 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: Olivier Matz CC: Emil Berg , "bruce.richardson@intel.com" , "stephen@networkplumber.org" , "stable@dpdk.org" , "bugzilla@dpdk.org" , "dev@dpdk.org" , Onar Olsen , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= Subject: Re: [PATCH v2 1/2] app/test: add cksum performance test Thread-Topic: [PATCH v2 1/2] app/test: add cksum performance test Thread-Index: AQHYksp8fcNg7SlcwUmSdKQH9asV0a148NSAgAAPdoA= Date: Mon, 11 Jul 2022 10:42:37 +0000 Message-ID: References: <6839721a-8050-0e11-0c66-0f735ec8c56d@ericsson.com> <20220708125608.24532-1-mattias.ronnblom@ericsson.com> In-Reply-To: Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 70e6f8d8-46a1-40d9-27e0-08da632a122b x-ms-traffictypediagnostic: PA4PR07MB7376:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BJl5dXquePAYxL1X8YLEOoLGqrOEvspjNFCn+1zFTLMfH4HuzByboNfCo8cZUXBbannD8mMP1XjP57FCXYuYG/AFQo8e1jgvgZcaLkn9neCccPEdTI6L3CfMaLc7AemNVhvfDoQW0kk07VOuariYx3Sj442wSqIRV608RaE2k0z/1+p9QwwEsHJVqN2pHGNp/mGTQHAz3M+VKPta4VXBEsvBt9KmJKHAXzscccQIvoiIOMCy99HSUE0ngnD4YtUQAZC4yq3eV9WHRQAtdIAdqUbm+MoJwxQPODEhuGf8dDH7CyFxQ8DBP1yt3v1mdZo0dOOm5Aitt10YD6L4i0MWXejl3iWLPeAdHxESeZCNmIlAmrNAmyvfdzeAKwgP8qxPZC7lggNegZjc3gTuNlue/Fq/qkd12RJqrHNrtmPevzAMf58JRm424wPRA6IzCIVfi2/puRHPtWaSLSAAuwp4hjZXegA+lOyWBT1FJP4h82q3RZIBsd/C2fBX3FQphNr9VsoKiArDX+jurzlylLAr/YZ1D+gWvO3xZkTUZr1d2ePAsFIYU3wl6OEfQvkRXJdE6BHTQI07Iuq3kd9glxeNE9Hrd0ed7EujaYRg+Ece0DBTLaj2Dm0nEKlj3JfEx29PFa/HbckmcTGljti0sk4u4m5pgfaxkmNHHC3YB/HmRDITuJ54aEE+x0pCxNA72sFJJ4bqTnOo86RI/95dGZnIk3KYpMMpoFB/qBZmHpjOQv8DarEio7e2gRwoyS6u0NhQ4lB8nDzTD1YP4BP/HL9yHpLr8l1KCkSK84hN2FOoIew55MyIYGpLRdiVlKDjOsV8CQIaqIPASCAn87hguYkTEl7f/UPL/AT23ar9hkRCP1UHFvXu8dUvRHtAeLiZEQ06 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5978.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(396003)(376002)(366004)(136003)(39860400002)(71200400001)(6486002)(54906003)(91956017)(6916009)(2906002)(64756008)(8676002)(6506007)(316002)(41300700001)(4326008)(6512007)(36756003)(31686004)(5660300002)(85202003)(53546011)(40140700001)(26005)(85182001)(31696002)(8936002)(83380400001)(86362001)(186003)(66574015)(2616005)(38100700002)(66476007)(478600001)(76116006)(66446008)(66946007)(122000001)(66556008)(38070700005)(82960400001)(43740500002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bUY3cFVGT3VKQ3ZlUENuSzJiUE5hWXM4cmR1VmxDbi96OWZjb2lBeFBBSEdP?= =?utf-8?B?Uk1aUWo5c0NwZ2VCSSsvTWRXZ1JSa2p3YS9SOEx0Zk9PSHNrZkxJMHo5RUVz?= =?utf-8?B?WEFsYzNsWXNnZTFHeG9maFBMQmR5YU9UcGhsd3RYVEpBZVVySkpwbm43MWVE?= =?utf-8?B?UlJyb0xnMzBZTVJxdTZIRTduVUF2Y2JWdmV0S3VEYTZuRklnbXdhU3MrRmhH?= =?utf-8?B?US9meU9EVXdZcy9Pb2RsaVh6bDlEV2lsYnV6czJJNThpb0tYNldOa3o0blBT?= =?utf-8?B?bHFOS1kvNFZ5VFREWFhiT1hVU0NtdjhhZEg3ZTFQQzlBWHh2bVpoZStGNjZM?= =?utf-8?B?YlpobFlYcTdNM2VOSWtJWkM4MWdrVVh2RXRBamt5d3ZpSVNsTG9zNlptQXJu?= =?utf-8?B?elZYTnRLSE9wMzRhZFJKT0dqZGpvRitoa2JLNkUwcE5hbFc3QzBVOWhWcmFF?= =?utf-8?B?NWtDTlVpM1E5SC9vZkZhSU85aGxsVmNsaDFZUFMzT01iUzdUZVZJUUE4dFBq?= =?utf-8?B?TzYwVlFKTm5MbHo3VElRckRFZW5PamJJYVhndG10Tlp2SzhmdHd3UGsvU3ZK?= =?utf-8?B?dEp4TFlqdGVkTHBBRnZDQXJMWHFNUXhmOFBCZTAyaTlnbVNTUVVzbEltR0pX?= =?utf-8?B?RHAwVmd1ZGoweTZXY0UvcVJLekkvQW1OKzdRWHViUEdQd0d1dDZaSW5SQlFy?= =?utf-8?B?TUZRai9tSmd2YkI0UXIxb3B3M0Z0R0RDb29TMjFrRkdPclRmUXNEQmttRDl0?= =?utf-8?B?ekpiUEhTZi9GdTBZZ24xMENPU3Jldmh3eVlTZ2hZVk1JREFIRlArajdLcVFS?= =?utf-8?B?YmZpRW5PNW5nN09DZkpSTjViR0dQVCs1MlVxVUpuMy9pLzRxa1BwSzR4U0NF?= =?utf-8?B?Y1JVeldzWlMxZjhQclQ1dkFMVUZCYm9VNEswamxpbFRjcjVFSmh0UzdkRC9i?= =?utf-8?B?dCtxTTE1dlZpVHhBeDlFSWhtL3RGSXVFZUd5d2MxR2J6c1NKTEt3OGdXNGlC?= =?utf-8?B?NUQ1SlVpb0NENmxYaXdJS3hSSUZuWG8rbUxacnh0S3NEMStZQUhsd3cxaVZV?= =?utf-8?B?N2s3OUYvTUdQOVZGS2dUbzRXK1p0TlFVQWlyVmwzODk3elh4SmFvUXgvanNt?= =?utf-8?B?VmpTQ2grbW5iTm5Bc1FKSmN3Z1hyVzRwdWRvei9ROWl2OE9EMzN6cVFmbmdy?= =?utf-8?B?TVFmWDRGNC81ZlVHZnprMzVMRG85NGtCc09WQUxMcEc1WmJWU3lISjBxMDRS?= =?utf-8?B?bWZZV2RwOVZsNVpJZmc4VGdtclhtUm9KWFlZVjZjNXVYQnBZRzNidU1EMlZ6?= =?utf-8?B?QTBGQ3ZUdGJRdTBpN3ZWdzBTWkZkUUlzSnZnaTdzZExVRmErZStTUHI2ZVgz?= =?utf-8?B?VEgwd0k4QkdmVUY5WE5NK2VCcjJTeGRhTnlIN0JrM0NxN0JPbzlCSHRKakV3?= =?utf-8?B?MS94bUpjNGJDZGE1UnlKaXJWcmdyZkxCcm5TbXZ1eis1RDR0aFR0ajZmaXd2?= =?utf-8?B?ZlJpbHoxQmJZbnFyckh4UTZabi82ME04QU41MDJFdjlmdVhqVkJrQnR3a0pC?= =?utf-8?B?SXhhWDY2MGt2UjBmZERJK1FPYjdoSjRqamkxY0c4bXhvZzNtK3lITFh4NHJl?= =?utf-8?B?OEhQUzRlai8wZ3lDRjVQb1R4TFhTOEFjZlhmc1ZtditpYlVDYXFLQ1JKeDZ3?= =?utf-8?B?NjVidm9abTRTRk5GODZPazltS2xvVUErZ1Q1eURCeVpTYXk5NUx0R05IYXdO?= =?utf-8?B?YVkzNERzcHpsM2ZYRlV0VkVnN2RITlBLNmxDU3pCbktPSFZia1YrQk9iTjlX?= =?utf-8?B?L1QzYVgwYk9Gc21QalpyQjlHN25CeUl3N1VwTjhCZVBET1ZBNDcxaElZS3dh?= =?utf-8?B?b214ekxwVFNsczVVZlVsVHp3aktkWllNelc2amJ3UmZUUzBFcENJRDIvK3lN?= =?utf-8?B?OW1wUnVTQ3BoM1lRSG9rdDMxSzQwdzE4UVNEQSt4aitBdUVWbnQ2YUFwNjlX?= =?utf-8?B?SDIydkVPU1kzdlFBTFdRZkc5c2NOMEx6NnQrMC91akF6LzJ0dGlBSUNWKzJO?= =?utf-8?B?NHdZMklJRnFVUTUreFZmQkoyT3dVZlIwckRleFFYdUovaDBUZW1nalFzdnVo?= =?utf-8?B?S2F5RUg2OXVHYzQwL0pXSVpnbHhvM2VwaGk4L2hrT2pVRTNsaVNwcUpMSDJk?= =?utf-8?B?OEE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <6024032EA4D23C40BC9AD811F55F90E0@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5978.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 70e6f8d8-46a1-40d9-27e0-08da632a122b X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2022 10:42:37.0472 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 2izpHhf7teCpuoUuhgry89P48H5n5MVwzlS7qBAYwnH5v3/TqtXZqzmd7kBROFrfeWmNZxr48LGYV+RHh23PopsHa6R6DQeXmvSvmspaC3Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR07MB7376 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org T24gMjAyMi0wNy0xMSAxMTo0NywgT2xpdmllciBNYXR6IHdyb3RlOg0KPiBIaSBNYXR0aWFzLA0K PiANCj4gUGxlYXNlIHNlZSBmZXcgY29tbWVudHMgYmVsb3cuDQo+IA0KPiBPbiBGcmksIEp1bCAw OCwgMjAyMiBhdCAwMjo1NjowN1BNICswMjAwLCBNYXR0aWFzIFLDtm5uYmxvbSB3cm90ZToNCj4+ IEFkZCBwZXJmb3JtYW5jZSB0ZXN0IGZvciB0aGUgcnRlX3Jhd19ja3N1bSgpIGZ1bmN0aW9uLCB3 aGljaCBkZWxlZ2F0ZXMNCj4+IHRoZSBhY3R1YWwgd29yayB0byBfX3J0ZV9yYXdfY2tzdW0oKSwg d2hpY2ggaW4gdHVybiBpcyB1c2VkIGJ5IG90aGVyDQo+PiBmdW5jdGlvbnMgaW4gbmVlZCBvZiBJ bnRlcm5ldCBjaGVja3N1bSBjYWxjdWxhdGlvbi4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBNYXR0 aWFzIFLDtm5uYmxvbSA8bWF0dGlhcy5yb25uYmxvbUBlcmljc3Nvbi5jb20+DQo+Pg0KPj4gLS0t DQo+Pg0KPj4gdjI6DQo+PiAgICAqIEFkZGVkIF9fcnRlX3VudXNlZCB0byB1bnVzZWQgdm9sYXRp bGUgdmFyaWFibGUsIHRvIGtlZXAgdGhlIEludGVsDQo+PiAgICAgIGNvbXBpbGVyIGhhcHB5Lg0K Pj4gLS0tDQo+PiAgIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgIHwgICAxICsNCj4+ICAgYXBw L3Rlc3QvbWVzb24uYnVpbGQgICAgICAgfCAgIDEgKw0KPj4gICBhcHAvdGVzdC90ZXN0X2Nrc3Vt X3BlcmYuYyB8IDExOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAg IDMgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKykNCj4+ICAgY3JlYXRlIG1vZGUgMTAw NjQ0IGFwcC90ZXN0L3Rlc3RfY2tzdW1fcGVyZi5jDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL01BSU5U QUlORVJTIGIvTUFJTlRBSU5FUlMNCj4+IGluZGV4IGM5MjM3MTI5NDYuLjJhNGM5OWUwNWEgMTAw NjQ0DQo+PiAtLS0gYS9NQUlOVEFJTkVSUw0KPj4gKysrIGIvTUFJTlRBSU5FUlMNCj4+IEBAIC0x NDE0LDYgKzE0MTQsNyBAQCBOZXR3b3JrIGhlYWRlcnMNCj4+ICAgTTogT2xpdmllciBNYXR6IDxv bGl2aWVyLm1hdHpANndpbmQuY29tPg0KPj4gICBGOiBsaWIvbmV0Lw0KPj4gICBGOiBhcHAvdGVz dC90ZXN0X2Nrc3VtLmMNCj4+ICtGOiBhcHAvdGVzdC90ZXN0X2Nrc3VtX3BlcmYuYw0KPj4gICAN Cj4+ICAgUGFja2V0IENSQw0KPj4gICBNOiBKYXN2aW5kZXIgU2luZ2ggPGphc3ZpbmRlci5zaW5n aEBpbnRlbC5jb20+DQo+PiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvbWVzb24uYnVpbGQgYi9hcHAv dGVzdC9tZXNvbi5idWlsZA0KPj4gaW5kZXggNDMxYzViZDMxOC4uMTkxZGIwM2QxZCAxMDA2NDQN Cj4+IC0tLSBhL2FwcC90ZXN0L21lc29uLmJ1aWxkDQo+PiArKysgYi9hcHAvdGVzdC9tZXNvbi5i dWlsZA0KPj4gQEAgLTE4LDYgKzE4LDcgQEAgdGVzdF9zb3VyY2VzID0gZmlsZXMoDQo+PiAgICAg ICAgICAgJ3Rlc3RfYnBmLmMnLA0KPj4gICAgICAgICAgICd0ZXN0X2J5dGVvcmRlci5jJywNCj4+ ICAgICAgICAgICAndGVzdF9ja3N1bS5jJywNCj4+ICsgICAgICAgICd0ZXN0X2Nrc3VtX3BlcmYu YycsDQo+PiAgICAgICAgICAgJ3Rlc3RfY21kbGluZS5jJywNCj4+ICAgICAgICAgICAndGVzdF9j bWRsaW5lX2NpcmJ1Zi5jJywNCj4+ICAgICAgICAgICAndGVzdF9jbWRsaW5lX2V0aGVyYWRkci5j JywNCj4+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC90ZXN0X2Nrc3VtX3BlcmYuYyBiL2FwcC90ZXN0 L3Rlc3RfY2tzdW1fcGVyZi5jDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAw MDAwMDAwMC4uYmZmNzNjYjNiYg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvYXBwL3Rlc3Qv dGVzdF9ja3N1bV9wZXJmLmMNCj4+IEBAIC0wLDAgKzEsMTE4IEBADQo+PiArLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPj4gKyAqIENvcHlyaWdodChjKSAyMDIyIEVy aWNzc29uIEFCDQo+PiArICovDQo+PiArDQo+PiArI2luY2x1ZGUgPHN0ZGlvLmg+DQo+PiArDQo+ PiArI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4+ICsjaW5jbHVkZSA8cnRlX2N5Y2xlcy5oPg0K Pj4gKyNpbmNsdWRlIDxydGVfaXAuaD4NCj4+ICsjaW5jbHVkZSA8cnRlX21hbGxvYy5oPg0KPj4g KyNpbmNsdWRlIDxydGVfcmFuZG9tLmg+DQo+PiArDQo+PiArI2luY2x1ZGUgInRlc3QuaCINCj4+ ICsNCj4+ICsjZGVmaW5lIE5VTV9CTE9DS1MgKDEwKQ0KPj4gKyNkZWZpbmUgSVRFUkFUSU9OUyAo MTAwMDAwMCkNCj4gDQo+IFBhcmVudGhlc2lzIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZA0KPiANCj4+ ICsNCj4+ICtzdGF0aWMgY29uc3Qgc2l6ZV90IGRhdGFfc2l6ZXNbXSA9IHsgMjAsIDIxLCAxMDAs IDEwMSwgMTUwMCwgMTUwMSB9Ow0KPj4gKw0KPj4gK3N0YXRpYyBfX3J0ZV9ub2lubGluZSB1aW50 MTZfdA0KPj4gK2RvX3J0ZV9yYXdfY2tzdW0oY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQ0K Pj4gK3sNCj4+ICsJcmV0dXJuIHJ0ZV9yYXdfY2tzdW0oYnVmLCBsZW4pOw0KPj4gK30NCj4gDQo+ IEkgZG9uJ3QgdW5kZXJzdGFuZCB0aGUgbmVlZCB0byBoYXZlIHRoaXMgd3JhcHBlciwgZXNwZWNp YWxseSBtYXJrZWQNCj4gX19ydGVfbm9pbmxpbmUuIFdoYXQgaXMgdGhlIG9iamVjdGl2ZT8NCj4g DQoNClRoZSBpbnRlbnRpb24gaXMgdG8gZGlzYWxsb3cgdGhlIGNvbXBpbGVyIHRvIHBlcmZvcm0g dW5yb2xsaW5nIGFuZCANCmludGVncmF0aW5nL2ludGVybGVhdmUgb25lIGNrc3VtIG9wZXJhdGlu ZyB3aXRoIHRoZSBuZXh0IGJ1ZmZlcidzIGluIGEgDQp3YXkgdGhhdCB3b3VsZG4ndCBiZSBmZWFz YWJsZSBpbiBhIHJlYWwgYXBwbGljYXRpb24uDQoNCkl0IHdpbGwgcmVzdWx0IGluIGFuIG92ZXJl c3RpbWF0aW9uIG9mIHRoZSBjb3N0IGZvciBzbWFsbCBja3N1bXMsIHNvIA0KaXQncyBzdGlsbCBt aXNsZWFkaW5nLCBidXQgaW4gYW5vdGhlciBkaXJlY3Rpb24uIDopDQoNCj4gTm90ZSB0aGF0IHdo ZW4gSSByZW1vdmUgdGhlIF9fcnRlX25vaW5saW5lLCB0aGUgcGVyZm9ybWFuY2UgaXMgYmV0dGVy DQo+IGZvciBzaXplIDIwIGFuZCAyMS4NCj4gDQo+PiArDQo+PiArc3RhdGljIHZvaWQNCj4+ICtp bml0X2Jsb2NrKHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikNCj4gDQo+IENhbiBidWYgYmUgYSAoY2hh ciAqKSBpbnN0ZWFkPw0KPiBJdCB3b3VsZCBhdm9pZCBhIGNhc3QgYmVsb3cuDQo+IA0KDQpZZXMu DQoNCj4+ICt7DQo+PiArCXNpemVfdCBpOw0KPj4gKw0KPj4gKwlmb3IgKGkgPSAwOyBpIDwgbGVu OyBpKyspDQo+PiArCQkoKGNoYXIgKilidWYpW2ldID0gKHVpbnQ4X3QpcnRlX3JhbmQoKTsNCj4+ ICt9DQo+PiArDQo+PiArc3RhdGljIGludA0KPj4gK3Rlc3RfY2tzdW1fcGVyZl9zaXplX2FsaWdu bWVudChzaXplX3QgYmxvY2tfc2l6ZSwgYm9vbCBhbGlnbmVkKQ0KPj4gK3sNCj4+ICsJY2hhciAq ZGF0YVtOVU1fQkxPQ0tTXTsNCj4+ICsJY2hhciAqYmxvY2tzW05VTV9CTE9DS1NdOw0KPj4gKwl1 bnNpZ25lZCBpbnQgaTsNCj4+ICsJdWludDY0X3Qgc3RhcnQ7DQo+PiArCXVpbnQ2NF90IGVuZDsN Cj4+ICsJLyogRmxvYXRpbmcgcG9pbnQgdG8gaGFuZGxlIGxvdyAocHNldWRvLSlUU0MgZnJlcXVl bmNpZXMgKi8NCj4+ICsJZG91YmxlIGJsb2NrX2xhdGVuY3k7DQo+PiArCWRvdWJsZSBieXRlX2xh dGVuY3k7DQo+PiArCXZvbGF0aWxlIF9fcnRlX3VudXNlZCB1aW50NjRfdCBzdW0gPSAwOw0KPj4g Kw0KPj4gKwlmb3IgKGkgPSAwOyBpIDwgTlVNX0JMT0NLUzsgaSsrKSB7DQo+PiArCQlkYXRhW2ld ID0gcnRlX21hbGxvYyhOVUxMLCBibG9ja19zaXplICsgMSwgMCk7DQo+PiArDQo+PiArCQlpZiAo ZGF0YVtpXSA9PSBOVUxMKSB7DQo+PiArCQkJcHJpbnRmKCJGYWlsZWQgdG8gYWxsb2NhdGUgbWVt b3J5IGZvciBibG9ja1xuIik7DQo+PiArCQkJcmV0dXJuIFRFU1RfRkFJTEVEOw0KPj4gKwkJfQ0K Pj4gKw0KPj4gKwkJaW5pdF9ibG9jayhkYXRhW2ldLCBibG9ja19zaXplICsgMSk7DQo+PiArDQo+ PiArCQlibG9ja3NbaV0gPSBhbGlnbmVkID8gZGF0YVtpXSA6IGRhdGFbaV0gKyAxOw0KPj4gKwl9 DQo+PiArDQo+PiArCXN0YXJ0ID0gcnRlX3JkdHNjKCk7DQo+PiArDQo+PiArCWZvciAoaSA9IDA7 IGkgPCBJVEVSQVRJT05TOyBpKyspIHsNCj4+ICsJCXVuc2lnbmVkIGludCBqOw0KPj4gKwkJZm9y IChqID0gMDsgaiA8IE5VTV9CTE9DS1M7IGorKykNCj4+ICsJCQlzdW0gKz0gZG9fcnRlX3Jhd19j a3N1bShibG9ja3Nbal0sIGJsb2NrX3NpemUpOw0KPj4gKwl9DQo+PiArDQo+PiArCWVuZCA9IHJ0 ZV9yZHRzYygpOw0KPj4gKw0KPj4gKwlibG9ja19sYXRlbmN5ID0gKGVuZCAtIHN0YXJ0KSAvIChk b3VibGUpKElURVJBVElPTlMgKiBOVU1fQkxPQ0tTKTsNCj4+ICsJYnl0ZV9sYXRlbmN5ID0gYmxv Y2tfbGF0ZW5jeSAvIGJsb2NrX3NpemU7DQo+PiArDQo+PiArCXByaW50ZigiJS05cyAlMTB6ZCAl MTkuMWYgJTE2LjJmXG4iLCBhbGlnbmVkID8gIkFsaWduZWQiIDogIlVuYWxpZ25lZCIsDQo+PiAr CSAgICAgICBibG9ja19zaXplLCBibG9ja19sYXRlbmN5LCBieXRlX2xhdGVuY3kpOw0KPiANCj4g V2hlbiBJIHJ1biB0aGUgdGVzdCBvbiBteSBkZXYgbWFjaGluZSwgSSBnZXQgdGhlIGZvbGxvd2lu ZyByZXN1bHRzLA0KPiB3aGljaCBhcmUgcXVpdGUgcmVwcm9kdWN0aWJsZToNCj4gDQo+IEFsaWdu ZWQgICAgICAgICAgIDIwICAgICAgIDEwLjQgICAgICAwLjUyICAgICAocmFuZ2UgaXMgMC40OCAt IDAuNTIpDQo+IFVuYWxpZ25lZCAgICAgICAgIDIwICAgICAgICA3LjkgICAgICAwLjM5ICAgICAo cmFuZ2UgaXMgMC4zOSAtIDAuNDApDQo+IC4uLg0KPiANCj4gSWYgSSBpbmNyZWFzZSB0aGUgbnVt YmVyIG9mIGl0ZXJhdGlvbnMsIHRoZSBmaXJzdCByZXN1bHRzDQo+IGNoYW5nZSBzaWduaWZpY2Fu dGx5Og0KPiANCj4gQWxpZ25lZCAgICAgICAgICAgMjAgICAgICAgIDguMiAgICAgIDAuNDIgICAg IChyYW5nZSBpcyAwLjQxIC0gMC40MikNCj4gVW5hbGlnbmVkICAgICAgICAgMjAgICAgICAgIDgu MCAgICAgIDAuNDAgICAgIChhbHdheXMgdGhpcyB2YWx1ZSkNCg0KDQpJIHN1c3BlY3QgeW91IGhh dmUgZnJlcXVlbmN5IHNjYWxpbmcgZW5hYmxlZCBvbiB5b3VyIHN5c3RlbS4gVGhpcyBpcyANCmdl bmVyYWxseSBub3QgYWR2aXNhYmxlLCB5b3Ugd2FudCB0byBzb21lIGxldmVsIG9mIGRldGVybWlu aXNtIGluIHdoZW4gDQpiZW5jaG1hcmtpbmcuIEVzcGVjaWFsbHkgb24gc2hvcnQgcnVucyBsaWtl IHRoaXMgaXMgKGFuZCBtdXN0IGJlKS4NCg0KSSB0aG91Z2h0IGFib3V0IGRvaW5nIHNvbWV0aGlu ZyBhYm91dCB0aGlzLCBidXQgaXQgc2VlbWVkIGxpa2UgYW4gaXNzdWUgDQp0aGF0IHNob3VsZCBi ZSBhZGRyZXNzZWQgb24gYSBmcmFtZXdvcmsgbGV2ZWwsIHJhdGhlciB0aGFuIG9uIGEgcGVyLXBl cmYgDQphdXRvdGVzdCBsZXZlbC4NCg0KSWYgeW91IHdhbnQgeW91ciBDUFUgY29yZSB0byBzY2Fs ZSB1cCwgeW91IGNhbiBqdXN0IGluc2VydA0KDQpydGVfZGVsYXlfYmxvY2tfdXMoMTAwMDAwKTsN Cg0KYmVmb3JlIHRoZSBhY3R1YWwgdGVzdCBpcyBydW4uDQoNClNob3VsZCBJIGFkZCB0aGlzPyBJ ICp0aGluayogMTAwIG1zIHNob3VsZCBiZSBlbm91Z2gsIGJ1dCBtYXliZSBzb21lb25lIA0Kd2l0 aCBtb3JlIGluLWRlcHRoIGtub3dsZWRnZSBvZiB0aGUgZnJlcXVlbmN5IGdvdmVybm9ycyBjYW4g Y29tbWVudCBvbiB0aGlzLg0KDQo+IA0KPiBUbyBoYXZlIG1vcmUgcHJlY2lzZSB0ZXN0cyB3aXRo IHNtYWxsIHNpemUsIHdvdWxkIGl0IG1ha2Ugc2Vuc2UgdG8NCj4gdGFyZ2V0IGEgdGVzdCB0aW1l IGluc3RlYWQgb2YgYW4gaXRlcmF0aW9uIGNvdW50PyBTb21ldGhpbmcgbGlrZQ0KPiB0aGlzOg0K PiANCg0KVGhlIHRpbWUgbG9zdCB3aGVuIHJ1bm5pbmcgb24gYSBsb3dlciBmcmVxdWVuY3kgKHBs dXMgdGhlIGhpY2N1cHMgd2hlbiANCnRoZSBmcmVxdWVuY3kgaXMgY2hhbmdlZCkgd2lsbCBiZSBh bW9ydGl6ZWQgYXMgeW91IGFkZCB0byB0aGUgbGVuZ3RoIG9mIA0KdGhlIHRlc3QgcnVuLCB3aGlj aCB3aWxsIHBhcnRseSBzb2x2ZWQgdGhlIHByb2JsZW0uIEEgYmV0dGVyIHNvbHV0aW9uIGlzIA0K dG8gbm90IHN0YXJ0IHRoZSB0ZXN0IGJlZm9yZSB0aGUgY29yZSBydW5zIG9uIHRoZSBtYXggZnJl cXVlbmN5Lg0KDQpBZ2FpbiwgdGhpcyBpcyBhc3N1bWluZyBEVkZTIGlzIHdoYXQgeW91IHN1ZmZl ciBmcm9tIGhlcmUuIEkgZ3Vlc3MgaW4gDQp0aGVvcnkgaXQgY291bGQgYmUgVExCIG1pc3MgYXMg d2VsbC4NCg0KPiAJI2RlZmluZSBJVEVSQVRJT05TIDEwMDAwMDANCj4gCXVpbnQ2NF90IGl0ZXJh dGlvbnMgPSAwOw0KPiANCj4gCS4uLg0KPiANCj4gCWRvIHsNCj4gCQlmb3IgKGkgPSAwOyBpIDwg SVRFUkFUSU9OUzsgaSsrKSB7DQo+IAkJCXVuc2lnbmVkIGludCBqOw0KPiAJCQlmb3IgKGogPSAw OyBqIDwgTlVNX0JMT0NLUzsgaisrKQ0KPiAJCQkJc3VtICs9IGRvX3J0ZV9yYXdfY2tzdW0oYmxv Y2tzW2pdLCBibG9ja19zaXplKTsNCj4gCQl9DQo+IAkJaXRlcmF0aW9ucyArPSBJVEVSQVRJT05T Ow0KPiAJCWVuZCA9IHJ0ZV9yZHRzYygpOw0KPiAJfSB3aGlsZSAoKGVuZCAtIHN0YXJ0KSA8IHJ0 ZV9nZXRfdHNjX2h6KCkpOw0KPiANCj4gCWJsb2NrX2xhdGVuY3kgPSAoZW5kIC0gc3RhcnQpIC8g KGRvdWJsZSkoaXRlcmF0aW9ucyAqIE5VTV9CTE9DS1MpOw0KPiANCj4gDQo+IEFmdGVyIHRoaXMg Y2hhbmdlLCB0aGUgYWxpZ25lZCBhbmQgdW5hbGlnbmVkIGNhc2VzIGhhdmUgdGhlIHNhbWUNCj4g cGVyZm9ybWFuY2Ugb24gbXkgbWFjaGluZS4NCj4gDQo+IA0KDQpSVEU+PmNrc3VtX3BlcmZfYXV0 b3Rlc3QNCiMjIyBydGVfcmF3X2Nrc3VtKCkgcGVyZm9ybWFuY2UgIyMjDQpBbGlnbm1lbnQgIEJs b2NrIHNpemUgICAgVFNDIGN5Y2xlcy9ibG9jayAgVFNDIGN5Y2xlcy9ieXRlDQpBbGlnbmVkICAg ICAgICAgICAyMCAgICAgICAgICAgICAgICAxNi4xICAgICAgICAgICAgIDAuODENClVuYWxpZ25l ZCAgICAgICAgIDIwICAgICAgICAgICAgICAgIDE2LjEgICAgICAgICAgICAgMC44MQ0KDQouLi4g d2l0aCB0aGUgMTAwIG1zIGJ1c3ktd2FpdCBkZWxheSAoYW5kIGZyZXF1ZW5jeSBzY2FsaW5nIGVu YWJsZWQpIG9uIA0KbXkgQU1EIG1hY2hpbmUuDQoNCj4+ICsNCj4+ICsJZm9yIChpID0gMDsgaSA8 IE5VTV9CTE9DS1M7IGkrKykNCj4+ICsJCXJ0ZV9mcmVlKGRhdGFbaV0pOw0KPj4gKw0KPj4gKwly ZXR1cm4gVEVTVF9TVUNDRVNTOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50DQo+PiArdGVz dF9ja3N1bV9wZXJmX3NpemUoc2l6ZV90IGJsb2NrX3NpemUpDQo+PiArew0KPj4gKwlpbnQgcmM7 DQo+PiArDQo+PiArCXJjID0gdGVzdF9ja3N1bV9wZXJmX3NpemVfYWxpZ25tZW50KGJsb2NrX3Np emUsIHRydWUpOw0KPj4gKwlpZiAocmMgIT0gVEVTVF9TVUNDRVNTKQ0KPj4gKwkJcmV0dXJuIHJj Ow0KPj4gKw0KPj4gKwlyYyA9IHRlc3RfY2tzdW1fcGVyZl9zaXplX2FsaWdubWVudChibG9ja19z aXplLCBmYWxzZSk7DQo+PiArDQo+PiArCXJldHVybiByYzsNCj4+ICt9DQo+PiArDQo+PiArc3Rh dGljIGludA0KPj4gK3Rlc3RfY2tzdW1fcGVyZih2b2lkKQ0KPj4gK3sNCj4+ICsJdWludDE2X3Qg aTsNCj4+ICsNCj4+ICsJcHJpbnRmKCIjIyMgcnRlX3Jhd19ja3N1bSgpIHBlcmZvcm1hbmNlICMj I1xuIik7DQo+PiArCXByaW50ZigiQWxpZ25tZW50ICBCbG9jayBzaXplICAgIFRTQyBjeWNsZXMv YmxvY2sgIFRTQyBjeWNsZXMvYnl0ZVxuIik7DQo+PiArDQo+PiArCWZvciAoaSA9IDA7IGkgPCBS VEVfRElNKGRhdGFfc2l6ZXMpOyBpKyspIHsNCj4+ICsJCWludCByYzsNCj4+ICsNCj4+ICsJCXJj ID0gdGVzdF9ja3N1bV9wZXJmX3NpemUoZGF0YV9zaXplc1tpXSk7DQo+PiArCQlpZiAocmMgIT0g VEVTVF9TVUNDRVNTKQ0KPj4gKwkJCXJldHVybiByYzsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlyZXR1 cm4gVEVTVF9TVUNDRVNTOw0KPj4gK30NCj4+ICsNCj4+ICsNCj4+ICtSRUdJU1RFUl9URVNUX0NP TU1BTkQoY2tzdW1fcGVyZl9hdXRvdGVzdCwgdGVzdF9ja3N1bV9wZXJmKTsNCj4+ICsNCj4gDQo+ IFRoZSBsYXN0IGVtcHR5IGxpbmUgY2FuIGJlIHJlbW92ZWQuDQo+IA0KDQpPSy4NCg0KVGhhbmtz IGZvciB0aGUgcmV2aWV3LiBJIHdpbGwgc2VuZCBhIHYzIGFzIHNvb24gYXMgd2UndmUgc2V0dGxl ZCB0aGUgDQpEVkZTIGlzc3VlLg0KDQo+PiAtLSANCj4+IDIuMjUuMQ0KPj4NCg0K