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 61E3CA0C61; Fri, 5 Nov 2021 11:24:36 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 23E4441134; Fri, 5 Nov 2021 11:24:36 +0100 (CET) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam07on2081.outbound.protection.outlook.com [40.107.212.81]) by mails.dpdk.org (Postfix) with ESMTP id E461F410DC for ; Fri, 5 Nov 2021 11:24:33 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pt6tFFVgKwEEDcf2wwSULQdQmC2m3/z+1ltCDrntNNouPMbl9yCL0XdJUKYzuGq1K5CpgXPwTg/JZl1LuwS+iKlnaqNOSMkkiHx8KH2MC6CNtlYxXuTUF4zWXNFRQUqwDGFqn38PwI9ZYp51TzpoofMnQW7LD8C8ufwLvHKJyutSnbTqHkHSPhnKSB92wP8H77Fl7sg7U58/WjZ69OdsWGWKdwvlBtV7Wt6y50UbNuje1ZY5HYNSrjn82/5jenhpv4Pdo1O2RqdPxwLjtKM6LE3gTzEteOOKC9bw47lsJ7f0fKMz/JbF8Jd5SdMH4vibvD25ff3gtcNnmfXGJfQuXw== 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=ymJD2LFidSiYjdrzXZlVxIeqUJFEAAcqNeFz7is/uOE=; b=fSCK/DNgEb0I8NJ74YjUFCz6oYjvR8aITPxgZ7aMFUqfDLrptAvktAIjGrCyjt+FyIGmoaOUzhSRXZ9Mff4oe8rYjKMau/c9cdvFDXHWHy0v4VtL1A+0GVoBgEwFpszbDvWLweMnhp1ZgXqM6QDXTUxdWx0iHvcIWvXyQrUqXX7YnWEyANrPPu6Y/nAqALiHvkySBNiHxWn/8c08xxt/tlfFIrLZCEYx9vyAPq3r/9Ngw3jJVmNXn31ENzKK7/tfzaf9lpLJ/nImq2ccjQwf4znFlN0lQCLFTkYeNoqgtfbhPG8U5YD/cGrYQ35gkHFYyvR6gQiW3laBRV54VpzNsQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ymJD2LFidSiYjdrzXZlVxIeqUJFEAAcqNeFz7is/uOE=; b=SPBeRwjM5QO0u9rDALCSe0uIWa6/9kTeEntdkFYuBEbm8zV07W9rG8HX1u/i3mlKn5BWtkWbSo/Go8+8qPFS0WA1avp60XPO0mqcQTBihDZVcoFWQLbnyryAMk+CHEOxKeNSW6Dl1mcfdyYEyqP10I4J5dyIPoJxIuKzMI8hjaBWG6qkS0MBBx+vOt2lnCCATNrK7l8uCEG+9SRQYdGvJZyEjRcBgXTz9gviCs/ghohD8jof1iRUB6gsfJVZpJsJqJHmFMk2HV/XTdGLUxA+Qji7GyIeQ8QOKfrAkzfdkB1L8lX68pD7562MvwazR0j85vdGAMgVqNovpuoDho/Ruw== Received: from DM6PR12MB5520.namprd12.prod.outlook.com (2603:10b6:5:208::9) by DM4PR12MB5119.namprd12.prod.outlook.com (2603:10b6:5:392::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Fri, 5 Nov 2021 10:24:32 +0000 Received: from DM6PR12MB5520.namprd12.prod.outlook.com ([fe80::1569:38dd:26fb:bf87]) by DM6PR12MB5520.namprd12.prod.outlook.com ([fe80::1569:38dd:26fb:bf87%7]) with mapi id 15.20.4669.013; Fri, 5 Nov 2021 10:24:32 +0000 From: Rongwei Liu To: NBU-Contact-Thomas Monjalon , Wisam Monther CC: Matan Azrad , Slava Ovsiienko , Ori Kam , "dev@dpdk.org" , Raslan Darawsheh , Haifei Luo , "Jiawei(Jonny) Wang" Thread-Topic: [dpdk-dev] [PATCH v3 1/3] app/flow-perf: support meter policy API Thread-Index: AQHXy6ucT7H1aHKyokOskq9iANqSDav0v+CAgAAFeGA= Date: Fri, 5 Nov 2021 10:24:32 +0000 Message-ID: References: <20211028032600.638212-1-rongweil@nvidia.com> <20211028032600.638212-2-rongweil@nvidia.com> <2507603.9PVMiUTV9K@thomas> In-Reply-To: <2507603.9PVMiUTV9K@thomas> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0a78d67d-90ac-4147-fea5-08d9a0467556 x-ms-traffictypediagnostic: DM4PR12MB5119: 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-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ZNyz6HEgvNkOYnEFA0iz/7TtN521gmQwvIVbCbqOx+rQw7d+Tehc3E1SxXbKNndKfqTY4S1YTLru+lyLoNfPNwjDuexukbCMm55eqAHg8zj/ayRw6d0xiPBQox/XoxNbXSABQiSkiv8fqQxal9Wml80pPWg8gXF5edbK4XPGcSaPnSKOVfVnsZTKvwMnYq+VdL2BkI1zrysvGWhSrcntJP/+MgBrUDEBjOXQWLMPpm3+tsrDSCHLfKSD85feLr525XErBdLwK1noBfdwR/qQgXFEUJ8g/EPu8iGbFdyXN2cBc3oztrdhZ8ZOGlKNprKZ5uwmTSx8031nIuIVQj72RM6CaT7HcBBzmKLE0vmjk1IKLQVvYFcFMmzeJj4M6Rdi484jyqKfcxNQGUteRH2EfaHdEtVi7gVH9LMR+VPgxxUOty5Kew8Lfri+2l66NKzwj9h9pnzyMirot+7yZquc9+LjsvQbjSiJRtgkrv3tQPWCgBaKoZYeEjoqxEmZ2OYKFelehMGK1dHxNJOoe0jww6FAaHl1fumgeQUd/S5squCoI3mmpl9dbVdORa04SFjXFCBQ1h9cEq78uOrSLXff1IKuX52y03cLRjWkP0TKG0eQhMeOCJz6ts8rIl8YgZBAptWLkGalW7VIPDj3T1M/YskAWDQXVWbRfzBYQK8ynPnpjAjWTwTvWx5kx7iU5cCeWyT6GMrdZfh2v/K4QELdXA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB5520.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38070700005)(186003)(7696005)(53546011)(6506007)(6636002)(71200400001)(33656002)(38100700002)(8936002)(316002)(66476007)(64756008)(66556008)(66446008)(86362001)(122000001)(52536014)(76116006)(8676002)(107886003)(66946007)(4326008)(508600001)(9686003)(110136005)(55016002)(83380400001)(5660300002)(54906003)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZHRIblh5d0tuM1lsZU5TdmJHRjhLTS9TVTNMYlNrRzgvUTR6cHJSU1BFeG0w?= =?utf-8?B?LzJKSmtDQml5bVVWMnBDUkVYU1V1endycXVrbE4zOFFYTkRZOFNWbGVkSURu?= =?utf-8?B?dTFjSzd6L3NBY2hxRGs4SE1hbTZTejdjYSs4cVlhRHdGYllhaCtSWk4rRnNU?= =?utf-8?B?ZGZGcU1ucjIwNmtiZXB1b0Zwdm5VY1BSc2FndCtZbnpjN0lJUXZDZnVCZkZr?= =?utf-8?B?MDExM3ZjekxyMFhwQjJnZEVxcWRTL2ZaTjF4Qy9IQ3FNeU1xZFdwc21tbGYw?= =?utf-8?B?cTh3anJKS2JzN2hURm85NVVvcm5DcC85Si9HMXltbUlJMGNwd0hyRTJJdjFz?= =?utf-8?B?Sk5DSllpVURXekwyT01XQ2Z5dlozL2dZTk1mYUIzK3paWXlzQ1NPTmMxS1Z3?= =?utf-8?B?TVZPY0VHQXRDYUREZjJrUTRoVXZVZFZmVFN0S3NnYmxVRjVuZmxudFRiWmVr?= =?utf-8?B?aGJJWGhVOWFvNlkvTmJEaEZyaU93SEx4L1VocjZLMk1TendsMFBRRTdPbXM4?= =?utf-8?B?ODJMcUNmRXpvTmpSdndTL1JsMnlxZUdOeDNpN240VUxUNCt0bWxCeWZKSUU3?= =?utf-8?B?WmtnNmdzWkdLUGkwVEpuLzI2MzM1aEZ0bk1RcUJnYXdqT1VUWGNzVUFjQkFR?= =?utf-8?B?anhZSmk5cmt4d3U3cituUnNvem1XR1JrYnA1QWdRT29MTElZa0pBMUNrQkVF?= =?utf-8?B?QnZCZWNtMkxvdlpUUmQ0cUxyL2xTQnhGOXcyZkFUQ3FjeGhsMzkyanhCZGd2?= =?utf-8?B?ZW9UYkMvcXZQR0RURDNqU05Ea3dsNTRERjk5MUx6OTNkMHBkdDhkejJLUGVT?= =?utf-8?B?Uy9sOUhXLzl0SExTbUdWWEpKcTA1VHQwR1FlRkhxODcxeEozNE1jK3VzNzA1?= =?utf-8?B?YnJUMEcxcFlrMEx2M1pScVVFeGhNUlZuNE9KZVo2WFFWZG9lLzBmaTNMV1ZW?= =?utf-8?B?NjVKQkhZaENhYUhDMCtVTGFZY2pHNjVqYnI0cDgwOGR0STczOE4wY3BUV3px?= =?utf-8?B?UGo5dGs5YjFhWnNtOGhkeXRKcjU3UlhMVTloY3BEOVBSY2VmQ2NhUEtBdDYv?= =?utf-8?B?UEZ4TW9MVzEvaDhwQ3RqV2xMa082Z2VIUWV5ckdObUFvYmg0TTdPUDBHUkkr?= =?utf-8?B?NFh1eTBqaGhBOFY1cTJsa3NkZVpXeXJubmZzUnd0Nzkwei9PS0ptMno4U0Fv?= =?utf-8?B?Y2lacTJvNWNtZnMvS3AwOU1DUU8xMVdKU2RBUHRZTy9Xc1Y1WlIwV2cwa3VY?= =?utf-8?B?bFIxeUxjU1Jjeml3MHhVRVMvS3BaR0pqV1JxaTM1bE5MaVpTcyt0clU3bm9Z?= =?utf-8?B?SENCK0hFMHBObGRUMEY3Tnl6MnVyWGNHai92cFM2Y080R0FFS25mbFdjUFV6?= =?utf-8?B?VGorRDMrWEp2ZU1ZQWdCQmdhajZzZXdLNUxobDZxZkd1VWt1UHBQWHFkZmxr?= =?utf-8?B?eUpwZ0dOcGlDSEltWXBib0RBNVhPTEQ1K0ttK09rUVYrM0hWMGpoR3NKZzIx?= =?utf-8?B?T2NnVllNd0czM0hqY3ZRZXdDbU5JSGU5eU41eGE2ZXVudm9vdnRxQ2I5czI3?= =?utf-8?B?czBqNXJTZ0dNa1NiY0lOM1ozNEdPYkJlTFBFUkpEeTRrRnJCcTVxd3l1Nmc3?= =?utf-8?B?NkljL2Y0WjRrNVo5VUlRQ1UreWxyYm8xbzg3Y294c3ByQ0NBakMvWXRnWWtC?= =?utf-8?B?K2hVcDRNczlVMTAvejlhU2Zpb1FFMGdlbHB2OWxtc1dLaGwvMnZUYTFkK3Y3?= =?utf-8?B?WERtSFFqZERwOVB4TjQ4c1JoSDlUQ0ZaVUhkbjM1U1FobWh5a3pIVlQrQi9j?= =?utf-8?B?Uk12NmVhZlMyMTV4RnJqUFhBNUI4TE5Hek40c1l4cVlhUW4wTVlvdmtJT3NS?= =?utf-8?B?bnI4VkY3eG1kN2VhdWtsR2ViZzNzd3RWeDRGUEdnZG96eWhFdnFSejJhUnZP?= =?utf-8?B?elB3ZE9qQUhrcUtiNkgzMnVobWtmY3lEVEZhKzdBLzBNdVRkL0VyWHFUUVFz?= =?utf-8?B?Y0NIZzd1QjAvQ0RzaFN0cFJCSjVJT0RRbjBmUGVhak53eFlTNzlQeDYxeVB3?= =?utf-8?B?TlcvRnh6c0hEQ3ZodStUcWVzd1ZHRE9Fa3k3dml6bmhlMlFCSGlTaTdhQVJp?= =?utf-8?B?d0tqVXJMdnNwSFhKR2puQzRrR1RLV1ozRElaR0M2NnVrMm9KMWRPSGRKZzMr?= =?utf-8?B?c1hpWWMyTHIwWEtiUlhlcXZwMk9scWd1RHFrVUFHOGQxZWxOSGpFUFVOeWhv?= =?utf-8?Q?wi+mKPqSvMDqAoXbAsd/mgOlLRNBvnviYXBhhntKwE=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB5520.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a78d67d-90ac-4147-fea5-08d9a0467556 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2021 10:24:32.4893 (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: 9IncFbl9UYvtYP2hfzhE9PrxxTQ9aHhu/YZi1NrFDC2OvxbsgIOTgmpmWXKNZp59wkk8SfnfdefpRGdXUPGQ/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5119 Subject: Re: [dpdk-dev] [PATCH v3 1/3] app/flow-perf: support meter policy API 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" SEkgVG9tYXM6DQoJRmxvdy1wZXJmIGFwcGxpY2F0aW9uIHJ1bi10aW1lIG9wdGlvbnMgYXJlIGdy b3dpbmcgcXVpY2tseSBhbmQgc29tZSBvZiB0aGVtIGFyZSBhIGxpdHRsZSBjb21wbGV4Lg0KCVVu ZGVyIGN1cnJlbnQgYXJjaGl0ZWN0dXJlLCBJIGRvbid0IGZpbmQgYSB2YWxpZCB3YXkgdG8gcmVk dWNlIHRoZSBpbmRlbnRpb24gbGV2ZWwgdW5sZXNzIG1haW50YWluZXIgYWdyZWUgdG8gc2ltcGx5 IHRoZSBsb2dpYy4NCg0KCUZvciB0aGUgZmlsbF9hY3Rpb25zKCkgZnVuY3Rpb24sIEkgd2lsbCBy ZWJhc2UgaXQgb25jZSBvdXIgZ2l0aHViIGJyYW5jaCB1cGRhdGVkLg0KCUl0IHNob3VsZCBiZSBz b21ldGhpbmcgbGlrZToNCg0KPiA+ICsgICAgICAgICAgICAgZmlsbF9hY3Rpb25zKGFjdGlvbnNb aV0sIGFsbF9hY3Rpb25zW2ldLCAwLCAwLCAwLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgIDAsIDAsIDAsIHVuaXF1ZV9kYXRhLCByeF9xdWV1ZXNfY291bnQsIGRzdF9wb3J0KTsNCg0K QlINClJvbmd3ZWkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUaG9t YXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+IFNlbnQ6IEZyaWRheSwgTm92ZW1i ZXIgNSwgMjAyMSA1OjU4IFBNDQo+IFRvOiBXaXNhbSBNb250aGVyIDx3aXNhbW1AbnZpZGlhLmNv bT47IFJvbmd3ZWkgTGl1DQo+IDxyb25nd2VpbEBudmlkaWEuY29tPg0KPiBDYzogTWF0YW4gQXpy YWQgPG1hdGFuQG52aWRpYS5jb20+OyBTbGF2YSBPdnNpaWVua28NCj4gPHZpYWNoZXNsYXZvQG52 aWRpYS5jb20+OyBPcmkgS2FtIDxvcmlrYUBudmlkaWEuY29tPjsgZGV2QGRwZGsub3JnOw0KPiBS YXNsYW4gRGFyYXdzaGVoIDxyYXNsYW5kQG52aWRpYS5jb20+OyBIYWlmZWkgTHVvIDxoYWlmZWls QG52aWRpYS5jb20+Ow0KPiBKaWF3ZWkoSm9ubnkpIFdhbmcgPGppYXdlaXdAbnZpZGlhLmNvbT4N Cj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYzIDEvM10gYXBwL2Zsb3ctcGVyZjog c3VwcG9ydCBtZXRlciBwb2xpY3kNCj4gQVBJDQo+IA0KPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNh dXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KPiANCj4gDQo+IDI4LzEwLzIwMjEg MDU6MjUsIFJvbmd3ZWkgTGl1Og0KPiA+IEBAIC04NTQsNiArODYyLDQ2IEBAIGFyZ3NfcGFyc2Uo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSVEVfTUFYX0xDT1JFKTsNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQo+ID4gICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgaWYgKHN0cmNtcChsZ29wdHNbb3B0X2lkeF0ubmFtZSwgInBvbGljeS1tdHIi KSA9PSAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaiA9IDA7DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgayA9IDA7DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXJnID0gb3B0YXJnOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBvbGljeV9tdHIgPSB0cnVlOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRva2VuID0gc3Ryc2VwKCZhcmcsICI6XDAiKTsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB3aGlsZSAodG9rZW4gIT0gTlVMTCAmJiBqIDwgUlRFX0NPTE9SUykgew0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uc19zdHJbaisrXSA9 IHRva2VuOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4g PSBzdHJzZXAoJmFyZywgIjpcMCIpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqID0gMDsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IHN0cnRvayhhY3Rpb25zX3N0clswXSwgIixc MCIpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0b2tlbiA9PSBO VUxMICYmIGogPCBSVEVfQ09MT1JTIC0gMSkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRva2VuID0gc3RydG9rKGFjdGlvbnNfc3RyWysral0sICIsXDAiKTsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaiA8IFJURV9DT0xPUlMgJiYg dG9rZW4gIT0gTlVMTCkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIChpID0gMDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaSA8IFJURV9ESU0oZmxvd19vcHRpb25zKTsgaSsrKSB7DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RyY21wKHRva2VuLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvd19v cHRpb25zW2ldLnN0cikpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhbGxfYWN0aW9uc1tqXVtrKytdID0NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG93X29wdGlvbnNb aV0ubWFzazsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhY2hlZCBs YXN0IGl0ZW0gd2l0aCBubyBtYXRjaCAqLw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKGkgPj0gUlRFX0RJTShmbG93X29wdGlvbnMpKSB7DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJJbnZhbGlkIGFjdGlvbnMgIg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJpdGVtOiAlc1xuIiwgdG9rZW4pOw0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZShhcmd2WzBdKTsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX2V4aXQo RVhJVF9TVUNDRVNTLCAiSW52YWxpZCBhY3Rpb25zIGl0ZW1cbiIpOw0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdG9rZW4gPSBzdHJ0b2soTlVMTCwgIixcMCIpOw0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCF0b2tlbiAmJiBqIDwgUlRFX0NP TE9SUyAtIDEpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdG9rZW4gPSBzdHJ0b2soYWN0aW9uc19zdHJbKytqXSwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsXDAiKTsN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgayA9IDA7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICB9DQo+ IA0KPiBDb3VsZCB3ZSBhdm9pZCBoYXZpbmcgc28gbWFueSBpbmRlbnRzPw0KPiBDaGVja3BhdGNo IHN1Z2dlc3QgY29uc2lkZXJpbmcgYSByZWZhY3RvcmluZy4NCj4gDQo+IFsuLi5dDQo+ID4gKyAg ICAgICAgICAgICBmaWxsX2FjdGlvbnMoYWN0aW9uc1tpXSwgYWxsX2FjdGlvbnNbaV0sIDAsIDAs IDAsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgdW5pcXVlX2RhdGEs IHJ4X3F1ZXVlc19jb3VudCk7DQo+IA0KPiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVu Y3Rpb24g4oCYZmlsbF9hY3Rpb25z4oCZDQo+IA0KPiBUaGF0J3MgYSByZWJhc2UgaXNzdWUgYmVj YXVzZSBJIG1lcmdlZCBmaXJzdCB0aGUgcGF0Y2gNCj4gImFwcC9mbG93LXBlcmY6IGFkZCBkZXN0 aW5hdGlvbiBwb3J0cyBwYXJhbWV0ZXIiDQo+IA0KPiANCg0K