From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20084.outbound.protection.outlook.com [40.107.2.84]) by dpdk.org (Postfix) with ESMTP id E6EDB4CA1 for ; Sun, 1 Apr 2018 08:14:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=vFrrwcmr0eT4RvSidWtAwLSGa3DpowN/Xz6KNJaFKEY=; b=EMA0q//XFO5LzdFBpz5jSAccpxfiZlFcO2rKspMpIFDIEWyRfxYjFlbnD4bobt66GmER7Y5m1O5t5WRN6zJJDo7gtFpohaUg+XqyU5UE08Bo1kauE25y04t9gVoBu6ohrCA/6dex+4f9LL8LtFN6zViLkHncLqWoxHzuk+0CdNc= Received: from DB7PR05MB4426.eurprd05.prod.outlook.com (52.134.109.15) by DB7PR05MB4362.eurprd05.prod.outlook.com (52.134.108.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.631.10; Sun, 1 Apr 2018 06:14:26 +0000 Received: from DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::808d:386e:26f3:859f]) by DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::808d:386e:26f3:859f%13]) with mapi id 15.20.0631.013; Sun, 1 Apr 2018 06:14:26 +0000 From: Shahaf Shuler To: "Doherty, Declan" , "dev@dpdk.org" CC: Alex Rosenbaum , Ferruh Yigit , Thomas Monjalon , Qi Zhang , Alejandro Lucero , Andrew Rybchenko , Mohammad Abdul Awal , Remy Horton , "John McNamara" , Rony Efraim , Wu , Jingjing , Lu , Wenzhuo , Vincent JArdin , Yuanhan Liu , Richardson , Bruce , Ananyev , Konstantin , Wang , Zhihong Thread-Topic: [dpdk-dev][PATCH v6 4/8] ethdev: Add port representor device flag Thread-Index: AQHTxp1/K93+f4GS30COmQnZGbWbRKPmuILggACVjwCABCUSQA== Date: Sun, 1 Apr 2018 06:14:26 +0000 Message-ID: References: <20180328135433.20203-1-declan.doherty@intel.com> <20180328135433.20203-5-declan.doherty@intel.com> <4f668011-5f8d-f109-22d9-3a965e935ac1@intel.com> In-Reply-To: <4f668011-5f8d-f109-22d9-3a965e935ac1@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; x-originating-ip: [31.154.10.107] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB4362; 7:WhxcsKQpSfOrgLUBxC3PAAwvyTfeNpIZcV/mMl0aIBFno6PEynzl7ARih7mVUREjd/Wre8RFa+LpWwXpWTf6+53x7tPHt2eI/d2fMvj5MJdCQjCQsmAZiMFKv/EfWbt4xZZxJo396fjni+E/1b9ItRALj0Gar4eRwprVeMStk3bKTG7DdvN5i68fl5zDQ5XqN/tATuQyC+3Sm9CWlLdhBNP89MIrMznpDk8VUZkDktXnsWyloTPFZ8baR3SBdf1/ x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 6e3c2b94-ae62-4df0-87c4-08d59797d256 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB4362; x-ms-traffictypediagnostic: DB7PR05MB4362: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(6072148)(201708071742011); SRVR:DB7PR05MB4362; BCL:0; PCL:0; RULEID:; SRVR:DB7PR05MB4362; x-forefront-prvs: 06290ECA9D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(39850400004)(39380400002)(396003)(366004)(346002)(199004)(189003)(4326008)(102836004)(7696005)(14454004)(305945005)(5660300001)(486005)(99286004)(59450400001)(486005)(110136005)(476003)(76176011)(8936002)(81166006)(8676002)(81156014)(6246003)(39060400002)(316002)(575784001)(86362001)(446003)(186003)(7416002)(7736002)(53546011)(68736007)(54906003)(74316002)(106356001)(26005)(6116002)(11346002)(6506007)(3846002)(5250100002)(97736004)(105586002)(53936002)(9686003)(2501003)(33656002)(2906002)(93886005)(25786009)(66066001)(478600001)(6436002)(2900100001)(55016002)(229853002)(3660700001)(3280700002)(87944003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB4362; H:DB7PR05MB4426.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 9KfpmxGSbpnYuc11aPSPTKO1MNw3SnkqWrE4ysulF9OwIuDxetl58jPC9QeWNPqsujRU6sBblBjWW5bk1BHZwy+ZbeBAtarYQDtDIgqQXXhUYRcMF1KwF58jvwBGChsdSlwphR8q5J6EsZFalYlTzG1U0gmx8xQW04iWm+PSvB61XoVVYHXaarV3rJG4/KcYFWlaWb65eN9HyI2DetEr3CnwaeCY7r1qYCyvJr/LJFMhaH8dqh8FmFrz/4Uj6p0FQETdGc0tm0UZamyAlsuTfXgVFHoadAVUU7fserHcAOFAuR6TsCyh+NeCfCbRGOdGNWdXQuSMUVM4vWH3hP/t2mh8JLmmzor3r9kdpW0peviIy+RI4f6+D9Ajx1Yvpjvljry1icUlOfoIifkyee3JzyJRG84pBzd9RLEOn6k2K1g= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e3c2b94-ae62-4df0-87c4-08d59797d256 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2018 06:14:26.6754 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB4362 Subject: Re: [dpdk-dev] [PATCH v6 4/8] ethdev: Add port representor device flag 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: , X-List-Received-Date: Sun, 01 Apr 2018 06:14:29 -0000 VGh1cnNkYXksIE1hcmNoIDI5LCAyMDE4IDU6NTMgUE0sIERvaGVydHksIERlY2xhbjoNCj4gT24g MjkvMDMvMjAxOCA3OjEzIEFNLCBTaGFoYWYgU2h1bGVyIHdyb3RlOg0KPiA+IFdlZG5lc2RheSwg TWFyY2ggMjgsIDIwMTggNDo1NCBQTSwgRGVjbGFuIERvaGVydHk6DQo+ID4+IFN1YmplY3Q6IFtk cGRrLWRldl1bUEFUQ0ggdjYgNC84XSBldGhkZXY6IEFkZCBwb3J0IHJlcHJlc2VudG9yIGRldmlj ZQ0KPiA+PiBmbGFnDQo+ID4+DQo+ID4+IEFkZCBuZXcgZGV2aWNlIGZsYWcgdG8gc3BlY2lmeSB0 aGF0IGV0aGRldiBwb3J0IGlzIGEgcG9ydCByZXByZXNlbnRvci4NCj4gPj4gRXh0ZW5kIHJ0ZV9l dGhfZGV2X2luZm8gc3RydWN0dXJlIHRvIGV4cG9zZSBkZXZpY2UgZmxhZ3MgdG8gdXNlcg0KPiA+ PiB3aGljaCBlbmFibGUgYXBwbGljYXRpb25zIHRvIGRpc2NvdmVyIGlmIGEgcG9ydCBpcyBhIHJl cHJlc2VudG9yIHBvcnQuDQo+ID4+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IERlY2xhbiBEb2hlcnR5 IDxkZWNsYW4uZG9oZXJ0eUBpbnRlbC5jb20+DQo+ID4+IC0tLQ0KPiA+PiAgIGxpYi9saWJydGVf ZXRoZXIvcnRlX2V0aGRldi5jICAgICAgICAgICAgIHwgMSArDQo+ID4+ICAgbGliL2xpYnJ0ZV9l dGhlci9ydGVfZXRoZGV2LmggICAgICAgICAgICAgfCA5ICsrKysrKy0tLQ0KPiA+PiAgIGxpYi9s aWJydGVfZXRoZXIvcnRlX2V0aGRldl9yZXByZXNlbnRvci5oIHwgMyArKysNCj4gPj4gICAzIGZp bGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4+DQo+ID4+ IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuYw0KPiA+PiBiL2xpYi9s aWJydGVfZXRoZXIvcnRlX2V0aGRldi5jIGluZGV4IGM3MTlmODRhMy4uMTYzMjQ2NDMzIDEwMDY0 NA0KPiA+PiAtLS0gYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuYw0KPiA+PiArKysgYi9s aWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuYw0KPiA+PiBAQCAtMjM5OSw2ICsyMzk5LDcgQEAg cnRlX2V0aF9kZXZfaW5mb19nZXQodWludDE2X3QgcG9ydF9pZCwgc3RydWN0DQo+ID4+IHJ0ZV9l dGhfZGV2X2luZm8gKmRldl9pbmZvKQ0KPiA+PiAgIAlkZXZfaW5mby0+bmJfcnhfcXVldWVzID0g ZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7DQo+ID4+ICAgCWRldl9pbmZvLT5uYl90eF9xdWV1ZXMg PSBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsNCj4gPj4gICAJZGV2X2luZm8tPnN3aXRjaF9pZCA9 IGRldi0+ZGF0YS0+c3dpdGNoX2lkOw0KPiA+PiArCWRldl9pbmZvLT5kZXZfZmxhZ3MgPSBkZXYt PmRhdGEtPmRldl9mbGFnczsNCj4gPj4gICB9DQo+ID4+DQo+ID4+ICAgaW50DQo+ID4+IGRpZmYg LS1naXQgYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaA0KPiA+PiBiL2xpYi9saWJydGVf ZXRoZXIvcnRlX2V0aGRldi5oIGluZGV4IGRjZWQ0ZmM0MS4uMjI2YWNjOGIxIDEwMDY0NA0KPiA+ PiAtLS0gYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaA0KPiA+PiArKysgYi9saWIvbGli cnRlX2V0aGVyL3J0ZV9ldGhkZXYuaA0KPiA+PiBAQCAtOTk2LDYgKzk5Niw3IEBAIHN0cnVjdCBy dGVfZXRoX2Rldl9pbmZvIHsNCj4gPj4gICAJY29uc3QgY2hhciAqZHJpdmVyX25hbWU7IC8qKjwg RGV2aWNlIERyaXZlciBuYW1lLiAqLw0KPiA+PiAgIAl1bnNpZ25lZCBpbnQgaWZfaW5kZXg7IC8q KjwgSW5kZXggdG8gYm91bmQgaG9zdCBpbnRlcmZhY2UsIG9yIDAgaWYNCj4gPj4gbm9uZS4NCj4g Pj4gICAJCVVzZSBpZl9pbmRleHRvbmFtZSgpIHRvIHRyYW5zbGF0ZSBpbnRvIGFuIGludGVyZmFj ZSBuYW1lLiAqLw0KPiA+PiArCXVpbnQzMl90IGRldl9mbGFnczsgLyoqPCBEZXZpY2UgZmxhZ3Mg Ki8NCj4gPj4gICAJdWludDMyX3QgbWluX3J4X2J1ZnNpemU7IC8qKjwgTWluaW11bSBzaXplIG9m IFJYIGJ1ZmZlci4gKi8NCj4gPj4gICAJdWludDMyX3QgbWF4X3J4X3BrdGxlbjsgLyoqPCBNYXhp bXVtIGNvbmZpZ3VyYWJsZSBsZW5ndGggb2YgUlgNCj4gPj4gcGt0LiAqLw0KPiA+PiAgIAl1aW50 MTZfdCBtYXhfcnhfcXVldWVzOyAvKio8IE1heGltdW0gbnVtYmVyIG9mIFJYIHF1ZXVlcy4gKi8N Cj4gQEANCj4gPj4gLTEyMjksMTEgKzEyMzAsMTMgQEAgc3RydWN0IHJ0ZV9ldGhfZGV2X293bmVy IHsgIH07DQo+ID4+DQo+ID4+ICAgLyoqIERldmljZSBzdXBwb3J0cyBsaW5rIHN0YXRlIGludGVy cnVwdCAqLw0KPiA+PiAtI2RlZmluZSBSVEVfRVRIX0RFVl9JTlRSX0xTQyAgICAgMHgwMDAyDQo+ ID4+ICsjZGVmaW5lIFJURV9FVEhfREVWX0lOVFJfTFNDCQkweDAwMDINCj4gPj4gICAvKiogRGV2 aWNlIGlzIGEgYm9uZGVkIHNsYXZlICovDQo+ID4+IC0jZGVmaW5lIFJURV9FVEhfREVWX0JPTkRF RF9TTEFWRSAweDAwMDQNCj4gPj4gKyNkZWZpbmUgUlRFX0VUSF9ERVZfQk9OREVEX1NMQVZFCTB4 MDAwNA0KPiA+PiAgIC8qKiBEZXZpY2Ugc3VwcG9ydHMgZGV2aWNlIHJlbW92YWwgaW50ZXJydXB0 ICovDQo+ID4+IC0jZGVmaW5lIFJURV9FVEhfREVWX0lOVFJfUk1WICAgICAweDAwMDgNCj4gPj4g KyNkZWZpbmUgUlRFX0VUSF9ERVZfSU5UUl9STVYJCTB4MDAwOA0KPiA+PiArLyoqIERldmljZSBp cyBwb3J0IHJlcHJlc2VudG9yICovDQo+ID4+ICsjZGVmaW5lIFJURV9FVEhfREVWX1JFUFJFU0VO VE9SCQkweDAwMTANCj4gPg0KPiA+IE1heWJlIGl0IGlzIGEgZ29vZCB0aW1lIHRvIG1ha2Ugc29t ZSBvcmRlciBoZXJlLg0KPiA+IEkgdW5kZXJzdGFuZCB0aGUgZGVjaXNpb24gdG8gdXNlIGZsYWdz IGluc3RlYWQgb2YgYml0LWZpZWxkLiBJdCBpcyBiZXR0ZXIuDQo+ID4NCj4gPiBIb3dldmVyIHRo ZXJlIGlzIGEgbWl4IGhlcmUgb2YgZGV2aWNlIGNhcGFiaWxpdGllcyBsaWtlIDoNCj4gUlRFX0VU SF9ERVZfSU5UUl9MU0MgICBhbmQgUlRFX0VUSF9ERVZfSU5UUl9STVYNCj4gPiBBbmQgZGV2aWNl IGF0dHJpYnV0ZXMgbGlrZSA6IFJURV9FVEhfREVWX0JPTkRFRF9TTEFWRSBhbmQNCj4gUlRFX0VU SF9ERVZfUkVQUkVTRU5UT1IuDQo+ID4gSSBkb24ndCB0aGluayB0aGV5IGJlbG9uZyB0b2dldGhl ciB1bmRlciB0aGUgZ2VuZXRpYyBuYW1lIG9mIGRldl9mbGFncy4NCj4gPg0KPiA+IE1vcmVvdmVy LCBJIGFtIG5vdCBzdXJlIHRoZSBmYWN0IGRldmljZSBpcyBib25kZWQgc2xhdmUgc2hvdWxkIGJl IGV4cG9zZWQNCj4gdG8gdGhlIGFwcGxpY2F0aW9uLiBJdCBzaG91bGQgYmUgaW50ZXJuYWwgdG8g ZXRoZGV2IGFuZCBpdHMgcG9ydCBpdGVyYXRvcnMuDQo+IA0KPiBUaGF0J3MgYSBnb29kIHBvaW50 IG9uIHRoZSBib25kZWQgc2xhdmUgZmxhZywgSSdsbCBsb29rIGF0IGZpeGluZyB0aGF0IGZvciB0 aGUNCj4gbmV4dCByZWxlYXNlLiBJIGRvbid0IHRoaW5rIGNoYW5naW5nIGl0IHNob3VsZCBlZmZl Y3QgQUJJIGJ1dCBJJ2xsIG5lZWQgdG8gaGF2ZSBhDQo+IGNsb3NlciBsb29rLg0KPiANCj4gRG8g eW91IHRoaW5rIHRoYXQgd2Ugc2hvdWxkIGhhdmUgYSBzZXBhcmF0ZSBkZXZpY2UgYXR0cmlidXRl cyBmaWVsZCwgd2hpY2gNCj4gdGhlIHJlcHJlc2VudG9yIGZsYWcgaXMgY29udGFpbmVkIGluLg0K PiANCj4gPg0KPiA+IEZpbmFsbHkgSSB0aGluayByZXByZXNlbnRvciBwb3J0IG1heSBuZWVkIG1v cmUgaW5mbyBub3cgKGFuZCBpbiB0aGUNCj4gZnV0dXJlKSwgZm9yIGV4YW1wbGUgdGhlIGFzc29j aWF0ZWQgdmYgaWQuDQo+ID4gRm9yIHRoYXQsIEkgdGhpbmsgaXQgaXMgYmV0dGVyIGl0IHRvIGJl IGV4cG9zZWQgYXMgYSBkZWRpY2F0ZWQgc3RydWN0IG9uIGRldmljZQ0KPiBpbmZvLg0KPiANCj4g SSB0aGluayBhIHN3aXRjaCBwb3J0IGlkIHNob3VsZCBzdWZmaWNlIGZvciB0aGF0LCBmb3IgU1It SU9WIGRldmljZXMgaXQgd291bGQNCj4gbWFwIHRvIHRoZSB2Zl9pZC4NCg0KSSB0aGluayB3ZSBu ZWVkIGJvdGggc3dpdGNoX2RvbWFpbiBhbmQgdmZfaWQuIA0KQmVjYXVzZSBmb3IgcmVwcmVzZW50 b3JzLCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIGtub3cgd2hpY2ggVkZzIGNhbiBiZSByZWFjaGVk IGZyb20gdGhpcyByZXByZXNlbnRvciBhbmQgd2hpY2ggVkYgaXQgcmVwcmVzZW50LiANCg0KPiAN Cj4gPg0KPiA+Pg0KPiA+PiAgIC8qKg0KPiA+PiAgICAqIEB3YXJuaW5nDQo+ID4+IGRpZmYgLS1n aXQgYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXZfcmVwcmVzZW50b3IuaA0KPiA+PiBiL2xp Yi9saWJydGVfZXRoZXIvcnRlX2V0aGRldl9yZXByZXNlbnRvci5oDQo+ID4+IGluZGV4IGNiYzFm Mjg1NS4uZjM3MjZkMGJhIDEwMDY0NA0KPiA+PiAtLS0gYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9l dGhkZXZfcmVwcmVzZW50b3IuaA0KPiA+PiArKysgYi9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhk ZXZfcmVwcmVzZW50b3IuaA0KPiA+PiBAQCAtMjIsNiArMjIsOSBAQCBldGhfZGV2X3JlcHJlc2Vu dG9yX3BvcnRfaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4gPj4gKmV0aGRldiwgdm9pZCAqaW5p dF9wYXJhbXMpDQo+ID4+ICAgCS8qKiByZXByZXNlbnRvciBpbmhlcml0cyB0aGUgc3dpdGNoIGlk IG9mIGl0J3MgYmFzZSBkZXZpY2UgKi8NCj4gPj4gICAJZXRoZGV2LT5kYXRhLT5zd2l0Y2hfaWQg PSBiYXNlX2V0aGRldi0+ZGF0YS0+c3dpdGNoX2lkOw0KPiA+Pg0KPiA+PiArCS8qKiBTZXQgZGV2 aWNlIGZsYWdzIHRvIHNwZWNpZnkgdGhhdCBkZXZpY2UgaXMgYSByZXByZXNlbnRvciBwb3J0ICov DQo+ID4+ICsJZXRoZGV2LT5kYXRhLT5kZXZfZmxhZ3MgfD0gUlRFX0VUSF9ERVZfUkVQUkVTRU5U T1I7DQo+ID4NCj4gPiBTaG91bGQgYmUgc2V0IGluIHRoZSBQTUQsIG5vdCBpbiBldGhkZXYgbGF5 ZXINCj4gDQo+IEFzIGluIHRoZSBwcmV2aW91cyBwYXRjaCB0aGlzIGlzIGp1c3QgYSBnZW5lcmlj IHBvcnQgYnVzIGluaXQgZnVuY3Rpb24gd2hpY2gNCj4gbWVldHMgdGhlIHNpbXBsZXN0IHVzZSBj YXNlIG9mIHJlcHJlc2VudG9yIHBvcnQgd2l0aCBhIHNpbmdsZSBzd2l0Y2ggZG9tYWluLA0KPiBh IFBNRCBkb2Vzbid0IG5lZWQgdG8gdXNlIGl0IGJ1dCBoYXZpbmcgaXQgaGVyZSBzYXZlcyBkdXBs aWNhdGluZyB0aGUgc2FtZQ0KPiBjb2RlIGFjcm9zcyBtdWx0aXBsZSBQTUQgd2hpY2ggYXJlIG9u bHkgc3VwcG9ydGluZyB0aGUgYmFzaWMgbW9kZS4NCj4gDQo+ID4NCj4gPj4gKw0KPiA+PiAgIAly ZXR1cm4gMDsNCj4gPj4gICB9DQo+ID4+DQo+ID4+IC0tDQo+ID4+IDIuMTQuMw0KPiA+DQoNCg==