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 097ECA0524; Mon, 19 Apr 2021 18:13:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E5D21413BC; Mon, 19 Apr 2021 18:13:18 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2084.outbound.protection.outlook.com [40.107.244.84]) by mails.dpdk.org (Postfix) with ESMTP id 8134E413BB for ; Mon, 19 Apr 2021 18:13:17 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PjnuW+VQXRON9VscQB+McvA7no0nkktQPbKTctXmQ5LNHbX4bPYYDGyi6iYlIeqj43hlmINt1iS3s+Cg5ZdOA5pAbmuU+oTs3/4UhSSyoWj6URCnIbGOTZyNNJPk4ICAdmCQSTgGPkmzDDBERaQeIbY/8d75EuOgs2DHUQsw2i0PyIarqwoepBCFKWhqUuxAEnR0/JeHbroQgy9xM1bX3zEihb4uA7QVC8xia6aVgreH7rBfv52BANtFcY+7VtjnoGJAsiIhTS/Rk/Xugz6dB0y7OENgk1BhZnEEFMW6Fho5F3nbfA82gGW10TdvUOa+ARpgFtxFxm/HfwaFCoo7Rg== 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=Fo9+iSYoD1QLW+wKF7oywc49DZbVJv30wU+m6TOh3OI=; b=HfvZjeoDDXQRW+g13yV/ujRM1X7QNtt0s4XzDEvMOpw9yNCrrFUreFfC6W9CEdft/eYadr3Jg5FovSn5h9noSYY70gBxmn1j39vJQPPMimvFMBlw7d6XDYvVOUA/mN2snc8C22ToQT73nZSwsIRX9ArJsm+JezqWKwDad1ioGMylb2Wak45iLfAvcH2EEfmcBowq7FWgpodQ/BhfhUMDr36sDaKPr6L6FCFOx1lgSX6iIfHekymhfEwALAJKcDip2hvqIG+h5BLW3ILUtWJDv5oFjdfJ+ZUBA3dAXQUfktWQJy15d/D0jj/v28nSf+yuY6GjyiUjwAMgEtXpbBoPoQ== 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=Fo9+iSYoD1QLW+wKF7oywc49DZbVJv30wU+m6TOh3OI=; b=EEIblqVal/mZaJ1dGujIPgB8rIEZMFkjWK0011INH9UIDd/+N5b+CwMwGB78gSiUueSLu5ia4/ayThkzT00q34CS+o8S491PYGzEtmh9QeGDbHsRiCIsNI4jUoA/TKLZSXcinGZXjmYCCypPYFQMIbtPxvX2uI8kXp/yIgt6WMml8iw6qHACj+9LnDgNPngNQrKKlLoZgWRn48IlbqKQZfre8tznrrdROWiXNmVUVg4mD1o2oyT/IxuNYDYQHhMLSJNnyZ2u6/MmeowPF9OiNLKVVi56Nl6rdTwM9a7ksy6bxIcZzUUvvVbHOWLz8FkYVKqG/3TlBPHpkWtOAU8K9A== Received: from BL0PR12MB2419.namprd12.prod.outlook.com (2603:10b6:207:44::27) by BL0PR12MB4691.namprd12.prod.outlook.com (2603:10b6:208:84::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.19; Mon, 19 Apr 2021 16:13:15 +0000 Received: from BL0PR12MB2419.namprd12.prod.outlook.com ([fe80::7979:5ea5:f490:d87f]) by BL0PR12MB2419.namprd12.prod.outlook.com ([fe80::7979:5ea5:f490:d87f%5]) with mapi id 15.20.4042.024; Mon, 19 Apr 2021 16:13:15 +0000 From: "Jiawei(Jonny) Wang" To: "Singh, Jasvinder" , Li Zhang , "dekelp@nvidia.com" , Ori Kam , Slava Ovsiienko , Matan Azrad , Shahaf Shuler , "Dumitrescu, Cristian" , "lironh@marvell.com" , "jerinj@marvell.com" , "Yigit, Ferruh" , "ajit.khaparde@broadcom.com" , Wisam Monther , "Li, Xiaoyun" , NBU-Contact-Thomas Monjalon , Andrew Rybchenko , Ray Kinsella , Neil Horman CC: "dev@dpdk.org" , Raslan Darawsheh , Roni Bar Yanai , Haifei Luo Thread-Topic: [PATCH v8 1/2] ethdev: add pre-defined meter policy API Thread-Index: AQHXMdiYTpCYyVCK4kahDl9JfSA3Qqq7zRsAgAA7xmA= Date: Mon, 19 Apr 2021 16:13:14 +0000 Message-ID: References: <20210318085815.804896-1-lizh@nvidia.com> <20210415092023.2089541-1-lizh@nvidia.com> <20210415092023.2089541-2-lizh@nvidia.com> In-Reply-To: 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: [163.125.179.70] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a0be55ec-2ad5-4271-dea5-08d9034e096c x-ms-traffictypediagnostic: BL0PR12MB4691: 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:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0WhBcPkMPa25qzxcBlMmNNDTA+IYC5ZTw9sJSvEir/cNuY2knN8BpR+UKMWlxtPhbvGG2XDsOIGwgBodOXz4ma7RAooJjk8HQr+IrXT4RADTdtGBUmXipXKlUVtLABuqY4bvCiO3GoW+cfQ9BnAWDiZXgyFb7T656SwnsjW4/JEiof0vZr1qSSkrgi7MbtKtfHDBKXtehgu9gaguaz0YNInoKsK5UPeapeWLbBNYME15bGSyfvE4ENTAg+fkP8uxfkfUuRLcsrLz7sGB4ldQ/wsQRzJQj6ts/Qju+e+GXel49hi34CskK8cFsW4v0065wgR9VP0XET0KKER8jMS0W0w42OkBrYvDS09n/2fwRRLxMtSRjT5Qs7q4oOa8uUD/M1vm1To5SEPTphvPXTb8GpI24Dl5kjxWfFy4jm+EfvXK59GDgnwo+B5IkeXtNI5TOZzoyM6B7IAfZ/HGCIvgyOENv9ALwSfixAvkHN+TBAxTGRjjLHQxHC6TUaFjn6N1RXe6cHaL0qtIFz2LEXBb9Kf9kcMQT2rTA2biHBU36nMQqYcA4Yf1hXWN+X3RYHI332T9b/IlgTz42UyMXt4Iq/HOBEflxL8Q5opV9lQbGouFoRa0DyHMw99gpSu70Wv3FvKzo1pCDxXVAnsRZKoOMg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR12MB2419.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(366004)(136003)(376002)(346002)(396003)(38100700002)(921005)(122000001)(8676002)(86362001)(76116006)(52536014)(5660300002)(186003)(478600001)(66946007)(66476007)(66446008)(66556008)(83380400001)(64756008)(2906002)(107886003)(53546011)(6506007)(4326008)(9686003)(55016002)(54906003)(7416002)(8936002)(110136005)(316002)(7696005)(71200400001)(33656002)(26005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?TU5KMmpHcXkwY3JCMlNDNWlkVSs1SWhRY0pTTnhFMVBWMFpZYkY4VGFDeE1Z?= =?utf-8?B?UEx4YU1vSTFhcnlQVEoyUDY3ZW9BYjBHZi9EREcwNmUrcjNxeVpFZXZnN0tt?= =?utf-8?B?WWFmcjR3NU9rWGhVV1J1STlXM1J0cm9hUEwwV2grQThRNDlENnI3bFM0cGdq?= =?utf-8?B?NEIzeFlHZGNhcExsa2tmeHpkVnliYnBBdkppdUFnZ1RBR3R2NUY1S0ZJZjl6?= =?utf-8?B?S045eGdwaGFqbUFoTWNqanZlTTlUMExnaXBkRm1XM1pMSkNMdmJyemNURE5y?= =?utf-8?B?ckxGeGY1b2dDM21SK2R4ZHc3R1Iybkt3UXM4cTdtZDg0dndUbUUyMUlYWXdX?= =?utf-8?B?eUM1Q2hFalBZSHhwMldsWHdCRldJbDdVR2tHVnJ4dnVUTExKWmpuUU0weUpm?= =?utf-8?B?Yy9KaldIYWdZOWhNU1Mrck53V0tuRU5CdWtiSy9NRkVqZmtFVFQveVRvSGEz?= =?utf-8?B?OGdiTWZWUlhhdkE0VUhZRnhBYnB3ZU8yL0FJMjdMR3JEMzl0RGpoL2I3NU02?= =?utf-8?B?TEJtM282ZGV4SzNkZmdxd3VHMVp1YzROYUYrb0xiTUFOVmNMRUw3LzVaV0Ri?= =?utf-8?B?b1lBTFEwcWhpRGV4Q1FUOVlvSTB2RFRldVh2NHJ2V2t5Mk5TRDJ2QktuNmhj?= =?utf-8?B?UGljTDJUZ0xFZDV0dHR3R1licjJzUVd5NnBNcWlpb2hoR3ZxOXhyaHV5cnQw?= =?utf-8?B?ZE9mYjhQbE5rWVhoVFBscHRURmZwTXpaYzlsdXZaN0xEQ3Vmb29sc1ArUFFa?= =?utf-8?B?RGtZc2t4NnJHaVpYOGtyQU5DZVZOK2pXQ28zNHpXZHAyeENKemhBZWFZdWNW?= =?utf-8?B?dUF6UXc5Q1NaWG9yVi8zcm5xVnRHUGdEMGhsbTdTQ0ppZkwzTTQzSjZTTXp5?= =?utf-8?B?eTMyVjBvNmFLa2c5TWdwTVRYMDBCaEJZMWVsWnRsMEhIZGU1MjNNdUZSUkhK?= =?utf-8?B?V2lieTZmTXNwVmFXL1dvNjVwb3BQL0dQQ2M5MGNNcG8ycE0zZWE4eWdURVZY?= =?utf-8?B?OVZPcmRpNHhlbFNLblgya1MydExWWTFEcHEvMXZ4MDhaNmxXaXU0R2puV1JC?= =?utf-8?B?YVZIK0FrMWR3UEk0Z3VISnF2Sk5TSGRGMU95b0tjOFdueFN1Qkh3U1g4VGFj?= =?utf-8?B?aDNtNWZONmh3ZldYd0ducER5NDZkREh1bDAxTDcyajB4WHFkWnlnQmFkZTN3?= =?utf-8?B?VGZHc2doUFBOaVltcHdQbDA0QzRWODVOTHViVUphemhoYzVaeVRmQ0lXMFlL?= =?utf-8?B?clJXa05LckxSMlFxMlh1Wm9CNmhtQ2VmektyZzVHMGV0T3B1NjM3NnlZK1dU?= =?utf-8?B?YlFGY0RDVjQ1NitVWFhHVzRQamlEc0hXOEVkTmU1NGRYc1FicGh4aEl4L05w?= =?utf-8?B?RE9CVkcxMk9nWjgzU0N5YzV0dFpQQ1dCQnNkNWxmdzV4UTkvODIzbWtENjRU?= =?utf-8?B?UVZ6a1ZML1JneGtIV0xOWkhwWndJQUNGTEVKMGl5dWxyNWZRYS9sL1BBQmRx?= =?utf-8?B?K0RoOU5ucFdhMUlUYm4zR2lKL2hXKzZ6dmFqVHhMTWt2RWhNektHaldPRjda?= =?utf-8?B?ZzNIT01nV0hCY2dTU0NSaHBsdncvV3JRaGdsU2pFVWdkMUFCRFBTS0FYb1pj?= =?utf-8?B?ZktFang3L1QxYUNNWmRYOWY3b1ZGMnZMYlRBU3JGcmhUc2lyZytQSklGSmpF?= =?utf-8?B?aGZpUzNCMm5WM2ZuVENabnM1VHdXNE5GZThzOU43UDJyQVg2bG1ua0pqc0cw?= =?utf-8?Q?lyrVBEGBQn2PX+nlh6+RzOpbZNMNSh05B2y7JoY?= 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: BL0PR12MB2419.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0be55ec-2ad5-4271-dea5-08d9034e096c X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2021 16:13:14.7239 (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: LzpeiwLbM2EpTq3Lxlzo3QFIprQqBSGXxRJ6Io66DgIub+Aaxyyr1R5C+EQgbodfl//yXk6ObW6EaW/5dtH02g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4691 Subject: Re: [dpdk-dev] [PATCH v8 1/2] ethdev: add pre-defined 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" VGhhbmtzIEphc3ZpbmRlcidzIGNvbW1lbnRzIQ0KTGkgaXMgb24gdmFjYXRpb24gc28gSSBoZWxw IHRvIHVwZGF0ZSB0aGUgY29kZSBjaGFuZ2VzIGJhc2VkIG9uIHlvdXIgY29tbWVudHMsIFY5IGlz IHNlbnQgd2l0aCB5b3VyIGFjay4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBTaW5naCwgSmFzdmluZGVyIDxqYXN2aW5kZXIuc2luZ2hAaW50ZWwuY29tPg0KPiBTZW50 OiBNb25kYXksIEFwcmlsIDE5LCAyMDIxIDg6MzUgUE0NCj4gVG86IExpIFpoYW5nIDxsaXpoQG52 aWRpYS5jb20+OyBkZWtlbHBAbnZpZGlhLmNvbTsgT3JpIEthbQ0KPiA8b3Jpa2FAbnZpZGlhLmNv bT47IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE1hdGFuDQo+IEF6 cmFkIDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29t PjsNCj4gRHVtaXRyZXNjdSwgQ3Jpc3RpYW4gPGNyaXN0aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29t PjsgbGlyb25oQG1hcnZlbGwuY29tOw0KPiBqZXJpbmpAbWFydmVsbC5jb207IFlpZ2l0LCBGZXJy dWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+Ow0KPiBhaml0LmtoYXBhcmRlQGJyb2FkY29tLmNv bTsgV2lzYW0gTW9udGhlciA8d2lzYW1tQG52aWRpYS5jb20+OyBMaSwNCj4gWGlhb3l1biA8eGlh b3l1bi5saUBpbnRlbC5jb20+OyBOQlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24NCj4gPHRob21h c0Btb25qYWxvbi5uZXQ+OyBBbmRyZXcgUnliY2hlbmtvDQo+IDxhbmRyZXcucnliY2hlbmtvQG9r dGV0bGFicy5ydT47IFJheSBLaW5zZWxsYSA8bWRyQGFzaHJvZS5ldT47IE5laWwNCj4gSG9ybWFu IDxuaG9ybWFuQHR1eGRyaXZlci5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IFJhc2xhbiBEYXJh d3NoZWggPHJhc2xhbmRAbnZpZGlhLmNvbT47IFJvbmkgQmFyIFlhbmFpDQo+IDxyb25pYmFAbnZp ZGlhLmNvbT47IEhhaWZlaSBMdW8gPGhhaWZlaWxAbnZpZGlhLmNvbT47IEppYXdlaShKb25ueSkg V2FuZw0KPiA8amlhd2Vpd0BudmlkaWEuY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIHY4IDEv Ml0gZXRoZGV2OiBhZGQgcHJlLWRlZmluZWQgbWV0ZXIgcG9saWN5IEFQSQ0KPiANCj4gPFNuaXA+ DQo+IA0KPiA+ICsvKiBNVFIgbWV0ZXIgcG9saWN5IGFkZCAqLw0KPiA+ICtzdGF0aWMgaW50DQo+ ID4gK3BtZF9tdHJfbWV0ZXJfcG9saWN5X2FkZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4g PiArCXVpbnQzMl90IG1ldGVyX3BvbGljeV9pZCwNCj4gPiArCXN0cnVjdCBydGVfbXRyX21ldGVy X3BvbGljeV9wYXJhbXMgKnBvbGljeSwNCj4gPiArCXN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJv cikNCj4gPiArew0KPiA+ICsJc3RydWN0IHBtZF9pbnRlcm5hbHMgKnAgPSBkZXYtPmRhdGEtPmRl dl9wcml2YXRlOw0KPiA+ICsJc3RydWN0IHNvZnRuaWNfbXRyX21ldGVyX3BvbGljeV9saXN0ICpt cGwgPSAmcC0NCj4gPiA+bXRyLm1ldGVyX3BvbGljaWVzOw0KPiA+ICsJc3RydWN0IHNvZnRuaWNf bXRyX21ldGVyX3BvbGljeSAqbXA7DQo+ID4gKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u ICphY3Q7DQo+ID4gKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX21ldGVyX2NvbG9yICpy ZWNvbG9yOw0KPiA+ICsJdWludDMyX3QgaTsNCj4gPiArCWJvb2wgdmFsaWRfYWN0X2ZvdW5kOw0K PiA+ICsNCj4gPiArCWlmIChwb2xpY3kgPT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gLXJ0ZV9tdHJf ZXJyb3Jfc2V0KGVycm9yLA0KPiA+ICsJCQlFSU5WQUwsDQo+ID4gKwkJCVJURV9NVFJfRVJST1Jf VFlQRV9NRVRFUl9QT0xJQ1ksDQo+ID4gKwkJCU5VTEwsDQo+ID4gKwkJCSJOdWxsIG1ldGVyIHBv bGljeSBpbnZhbGlkIik7DQo+ID4gKw0KPiA+ICsJLyogTWV0ZXIgcG9saWN5IG11c3Qgbm90IGV4 aXN0LiAqLw0KPiA+ICsJbXAgPSBzb2Z0bmljX210cl9tZXRlcl9wb2xpY3lfZmluZChwLCBtZXRl cl9wb2xpY3lfaWQpOw0KPiA+ICsJaWYgKG1wICE9IE5VTEwpDQo+ID4gKwkJcmV0dXJuIC1ydGVf bXRyX2Vycm9yX3NldChlcnJvciwNCj4gPiArCQkJRUlOVkFMLA0KPiA+ICsJCQlSVEVfTVRSX0VS Uk9SX1RZUEVfTUVURVJfUE9MSUNZX0lELA0KPiA+ICsJCQlOVUxMLA0KPiA+ICsJCQkiTWV0ZXIg cG9saWN5IGFscmVhZHkgZXhpc3RzIik7DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IFJU RV9DT0xPUlM7IGkrKykgew0KPiA+ICsJCWlmIChwb2xpY3ktPmFjdGlvbnNbaV0gPT0gTlVMTCkN Cj4gPiArCQkJcmV0dXJuIC1ydGVfbXRyX2Vycm9yX3NldChlcnJvciwNCj4gPiArCQkJCUVJTlZB TCwNCj4gPiArCQkJCVJURV9NVFJfRVJST1JfVFlQRV9NRVRFUl9QT0xJQ1ksDQo+ID4gKwkJCQlO VUxMLA0KPiA+ICsJCQkJIk51bGwgYWN0aW9uIGxpc3QiKTsNCj4gPiArCQlmb3IgKGFjdCA9IHBv bGljeS0+YWN0aW9uc1tpXSwgdmFsaWRfYWN0X2ZvdW5kID0gZmFsc2U7DQo+ID4gKwkJCWFjdCAm JiBhY3QtPnR5cGUgIT0gUlRFX0ZMT1dfQUNUSU9OX1RZUEVfRU5EOw0KPiA+ICsJCQlhY3QrKykg ew0KPiANCj4gSGkgTGksDQo+IE5vIG5lZWQgdG8gY2hlY2sgImFjdCIgaW4gZm9yIGxvb3AgaW5z dHJ1Y3Rpb24gYXMgaXQgaXMgdmFsaWRhdGVkIGJlZm9yZSB0aGUgZm9yDQo+IGxvb3AuICBBbHNv LCB3b3VsZCBiZSBnb29kIHRvIHNraXAgYWxsIHRoZSBzdGVwcyBpbnNpZGUgdGhpcyBsb29wIGZv ciB0aGUgYWN0aW9ucw0KPiBsaWtlIFJURV9GTE9XX0FDVElPTl9UWVBFX1ZPSUQuIEFmdGVyIGZv ciBsb29wLCB3aWxsIGJlIGdvb2QgdG8gY2hlY2sNCj4gInZhbGlkX2FjdF9mb3VuZCIgaXMgdHJ1 ZSBlbHNlIHJldHVybiBhbiBlcnJvciBmb3IgdGhhdCBjb2xvciBhY3Rpb24uDQo+IA0KPiBSZXN0 IHNlZW1zIGdvb2QgdG8gbWUNCj4gDQo+IFdpdGggYWJvdmUgZml4IGZvciBzb2Z0bmljLQ0KPiBB Y2tlZC1ieTogSmFzdmluZGVyIFNpbmdoIDxqYXN2aW5kZXIuc2luZ2hAaW50ZWwuY29tPg0KPiAN Cj4gDQoNCg==