From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80045.outbound.protection.outlook.com [40.107.8.45]) by dpdk.org (Postfix) with ESMTP id 6EDAC324D for ; Thu, 27 Dec 2018 11:07:49 +0100 (CET) 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:X-MS-Exchange-SenderADCheck; bh=odq447qFqzS5XFSicO//4xlbQqJ4b62vXib5pGOWjRM=; b=ghc23NIQUTC37jxmdZV9VW4FufaP7KdktQkqMFlN4IJ2lW1H2CSYJ9Ogxp4BJ5iUgZoiWuE1sEyk+CNd0OG0Ryn2ww2kVg6MTO3e5RUzljp1J4FuHSZBB6tN0qNdN57QxRUwCmmEUNy7JBtORNSe6rWW3D5+gRKmVc4DingQ43E= Received: from DB7PR05MB4426.eurprd05.prod.outlook.com (52.134.109.15) by DB7PR05MB4298.eurprd05.prod.outlook.com (52.134.108.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.23; Thu, 27 Dec 2018 10:07:47 +0000 Received: from DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::b0a0:72a4:7547:1c3c]) by DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::b0a0:72a4:7547:1c3c%4]) with mapi id 15.20.1471.019; Thu, 27 Dec 2018 10:07:47 +0000 From: Shahaf Shuler To: Ilya Maximets , "dev@dpdk.org" , Maxime Coquelin , "Michael S . Tsirkin" , Xiao Wang CC: Tiwei Bie , Zhihong Wang , "jfreimann@redhat.com" , Jason Wang , "xiaolong.ye@intel.com" , "alejandro.lucero@netronome.com" , Daniel Marcovitch Thread-Topic: [dpdk-dev] [PATCH v2] net/virtio: add platform memory ordering feature support Thread-Index: AQHUnTlIZwrH1fs6G0GK1Wo69REL2aWSWgwg Date: Thu, 27 Dec 2018 10:07:46 +0000 Message-ID: References: <20181214153812.3878-1-i.maximets@samsung.com> <20181226163712.31596-1-i.maximets@samsung.com> In-Reply-To: <20181226163712.31596-1-i.maximets@samsung.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.105] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB4298; 6:sOStudxRPdhkMTp8CXX/i1QQk8CNftFX6SEEbire2mHjHDjwl/ulxQQQpAAezZe1kWObD30lrf3hHRgNxqlSJpyRlwVGRSgMp+BCoHUcvLYbLUTZGDrckrhFENoh/TFID21EsqY0+AQhIezGkPOM71PUwqxkWMTmRZjZtV9R+WvMiOKH9oTg7SIAOMKAoTenvukVbZ9aWtrqnT9r965gH6gWvDUch4cXTXOwxGT24yPjM1orrpje3wucurGArjtnX8qBWYN5IThuosNtXE6J8X8PdyXskJu2gIxS4LJoc7vN4HrSUHtWC/2iMRgIQzWHn26d4i0IYA0o9gDkPcXojTdR5vgFKog7MruH8lNnh9/EzkgxoXsfvx1pgXILkz2w63ReuZXp34UudyV4JNljR4GwuP4XE2aKDK8+HdmPNIEFmmfwYEjobGNWED55kgLJSqLZKw863PNx9h0+cJ2tQQ==; 5:j8lkok70RNWVGq4TttnlXEIJzQCP493aW511l3CbQC0UncUkGz2ON9LRIw22KAP6kqzO5DgbgLWIvzcia35LCYH6MYbTXoPo1zS5V0tf/63o1l6xPsIdrw0d8Itu5u+HXKbJi5EAhLcVBLLd/aNXR+vZaaTfqInXc5W+wb1rcmk=; 7:zFdhbjs7/Z+bspAbKRtr79UmmjGRoyw1HmTerfLAzEAdROxlrXgTwFMireCdAxvtZIIDTJP8BxCsPn1G9HxCPiqHh9hSiimrIEjDXaFCPIaBv/DjLFORI78UWuY96qu1VrpNeucC1dMLrHB7bCcrnA== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: b4ca5dcb-78d7-43d1-c71e-08d66be326b0 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB4298; x-ms-traffictypediagnostic: DB7PR05MB4298: x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(2401047)(8121501046)(3231475)(944501520)(52105112)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699051)(76991095); SRVR:DB7PR05MB4298; BCL:0; PCL:0; RULEID:; SRVR:DB7PR05MB4298; x-forefront-prvs: 0899B47777 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(346002)(136003)(376002)(396003)(199004)(189003)(6246003)(6306002)(4326008)(74316002)(55016002)(7416002)(54906003)(110136005)(6436002)(102836004)(26005)(107886003)(305945005)(5660300001)(9686003)(186003)(99286004)(33656002)(39060400002)(53936002)(14444005)(256004)(25786009)(86362001)(68736007)(45080400002)(6506007)(7736002)(316002)(97736004)(106356001)(6116002)(3846002)(446003)(105586002)(11346002)(229853002)(14454004)(966005)(76176011)(81166006)(478600001)(2501003)(486006)(66066001)(476003)(2906002)(71200400001)(71190400001)(7696005)(81156014)(8936002)(87944003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB4298; 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-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: iFUnZUp5/Y7ZTNUJyepmPhgKsXTUbUV84MRp99ouZpQWh/xQXM4/8fplxLGoLmg+qR+a3AmW999YHYR5bFznAiRP++SzjIfPUIicww1Wm76BVPbpj38SgoanSQvuwVUVYD73dhp27EDrofmQLzSSExkrH0IR7nFqh4zeasJ2fGjwtSAV0pbJDmUWlR+vBDY5F4+6z4tmY5qiatZqIqeufLiHRbtLXkOHv4GP9G6m1A2Ajat8WW8yzTA8sC7YjrA4ESVIgS9RnVxdr+sWkwgUjIoUeMk5FF6Vyt9mRVDr08Itl9Uik7BZOHVXHkQJ7Loc 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: b4ca5dcb-78d7-43d1-c71e-08d66be326b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Dec 2018 10:07:46.9190 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB4298 Subject: Re: [dpdk-dev] [PATCH v2] net/virtio: add platform memory ordering feature support 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: Thu, 27 Dec 2018 10:07:49 -0000 SGkgSWx5YSwgDQoNCldlZG5lc2RheSwgRGVjZW1iZXIgMjYsIDIwMTggNjozNyBQTSwgSWx5YSBN YXhpbWV0czoNCj4gU3ViamVjdDogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIG5ldC92aXJ0aW86IGFk ZCBwbGF0Zm9ybSBtZW1vcnkgb3JkZXJpbmcNCj4gZmVhdHVyZSBzdXBwb3J0DQo+IA0KPiBWSVJU SU9fRl9PUkRFUl9QTEFURk9STSBpcyByZXF1aXJlZCB0byB1c2UgcHJvcGVyIG1lbW9yeSBiYXJy aWVycyBpbg0KPiBjYXNlIG9mIEhXIHZob3N0IGltcGxlbWVudGF0aW9ucyBsaWtlIHZEUEEuDQo+ IA0KPiBETUEgYmFycmllcnMgKHJ0ZV9jaW9fKikgYXJlIHN1ZmZpY2VudCBmb3IgdGhhdCBwdXJw b3NlLg0KPiANCj4gUHJldmlvdXNseSBrbm93biBhcyBWSVJUSU9fRl9JT19CQVJSSUVSLg0KPiAN Cj4gU2lnbmVkLW9mZi1ieTogSWx5YSBNYXhpbWV0cyA8aS5tYXhpbWV0c0BzYW1zdW5nLmNvbT4N Cj4gLS0tDQo+IA0KPiBWZXJzaW9uIDI6DQo+ICAgKiByZWJhc2VkIG9uIGN1cnJlbnQgbWFzdGVy IChwYWNrZWQgcmluZ3MpLg0KPiANCj4gUkZDIC0tPiBWZXJzaW9uIDE6DQo+ICAgKiBEcm9wcGVk IHZlbmRvci1zcGVjaWZpYyBoYWNrIHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHJlYWwgYmFycmll cnMuDQo+ICAgKiBBZGRlZCBWSVJUSU9fRl9PUkRFUl9QTEFURk9STSBmZWF0dXJlIGRlZmluaXRp b24gYW5kIGNoZWNraW5nLg0KPiANCj4gTm90ZTogUGF0Y2ggdG8gY2hhbmdlIHRoZSBuYW1lIG9m IHRoZSBmZWF0dXJlIGZyb20gVklSVElPX0ZfSU9fQkFSUklFUg0KPiAgICAgICB0byBWSVJUSU9f Rl9PUkRFUl9QTEFURk9STSBpcyBub3QgbWVyZ2VkIHlldDoNCj4gDQo+IGh0dHBzOi8vZW1lYTAx LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZ3d3cu bQ0KPiBhaWwtYXJjaGl2ZS5jb20lMkZ2aXJ0aW8tZGV2JTQwbGlzdHMub2FzaXMtDQo+IG9wZW4u b3JnJTJGbXNnMDQxMTQuaHRtbCZhbXA7ZGF0YT0wMiU3QzAxJTdDc2hhaGFmcyU0MG1lbGxhbm94 LmNvDQo+IG0lN0MxNDc2ODRiYjliNzU0ZTMwNzgxNDA4ZDY2YjUwNjk2NSU3Q2E2NTI5NzFjN2Qy ZTRkOWJhNmE0ZDE0OQ0KPiAyNTZmNDYxYiU3QzAlN0MwJTdDNjM2ODE0MzkwNDQ5MDg4MTQ4JmFt cDtzZGF0YT1mNFcxWUxmdEJ0WjR6QVEzDQo+ICUyQnY3TFY1dyUyRkRoTTVhV3BST1YyYzJnSFk4 aVUlM0QmYW1wO3Jlc2VydmVkPTANCj4gDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0 aGRldi5jIHwgIDIgKysgIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmggfCAgMw0K PiArKy0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmggICAgfCAgNyArKysrKysN Cj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcnh0eC5jICAgfCAxNiArKysrKystLS0tLS0N Cj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0cXVldWUuaCAgICAgfCAzOSArKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0NCj4gIDUgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwg MTYgZGVsZXRpb25zKC0pDQoNClsuLi5dDQoNCj4gDQo+ICAvKg0KPiAtICogUGVyIHZpcnRpb19j b25maWcuaCBpbiBMaW51eC4NCj4gKyAqIFBlciB2aXJ0aW9fcmluZy5oIGluIExpbnV4Lg0KPiAg ICogICAgIEZvciB2aXJ0aW9fcGNpIG9uIFNNUCwgd2UgZG9uJ3QgbmVlZCB0byBvcmRlciB3aXRo IHJlc3BlY3QgdG8gTU1JTw0KPiAgICogICAgIGFjY2Vzc2VzIHRocm91Z2ggcmVsYXhlZCBtZW1v cnkgSS9PIHdpbmRvd3MsIHNvIHNtcF9tYigpIGV0IGFsIGFyZQ0KPiAgICogICAgIHN1ZmZpY2ll bnQuDQo+ICAgKg0KPiArICogICAgIEZvciB1c2luZyB2aXJ0aW8gdG8gdGFsayB0byByZWFsIGRl dmljZXMgKGVnLiB2RFBBKSB3ZSBkbyBuZWVkIHJlYWwNCj4gKyAqICAgICBiYXJyaWVycy4NCj4g ICAqLw0KPiAtI2RlZmluZSB2aXJ0aW9fbWIoKQlydGVfc21wX21iKCkNCj4gLSNkZWZpbmUgdmly dGlvX3JtYigpCXJ0ZV9zbXBfcm1iKCkNCj4gLSNkZWZpbmUgdmlydGlvX3dtYigpCXJ0ZV9zbXBf d21iKCkNCj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPiArdmlydGlvX21iKHVpbnQ4X3Qgd2Vha19i YXJyaWVycykNCj4gK3sNCj4gKwlpZiAod2Vha19iYXJyaWVycykNCj4gKwkJcnRlX3NtcF9tYigp Ow0KPiArCWVsc2UNCj4gKwkJcnRlX21iKCk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbmxpbmUg dm9pZA0KPiArdmlydGlvX3JtYih1aW50OF90IHdlYWtfYmFycmllcnMpDQo+ICt7DQo+ICsJaWYg KHdlYWtfYmFycmllcnMpDQo+ICsJCXJ0ZV9zbXBfcm1iKCk7DQo+ICsJZWxzZQ0KPiArCQlydGVf Y2lvX3JtYigpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gK3ZpcnRpb193 bWIodWludDhfdCB3ZWFrX2JhcnJpZXJzKQ0KPiArew0KPiArCWlmICh3ZWFrX2JhcnJpZXJzKQ0K PiArCQlydGVfc21wX3dtYigpOw0KPiArCWVsc2UNCj4gKwkJcnRlX2Npb193bWIoKTsNCg0KSnVz dCB3b25kZXJpbmcgaWYgdGhlIGNpbyBiYXJyaWVyIGlzIGVub3VnaCBoZXJlLg0KVGhpcyB2aXJ0 aW9fd21iIHdpbGwgYmUgY2FsbGVkLCBmb3IgZXhhbXBsZSBpbiB0aGUgZm9sbG93aW5nIHNlcXVl bmNlIGZvciB0cmFuc21pdCAobm90IG9mIHBhY2tlZCBxdWV1ZSk6DQppZiAobGlrZWx5KG5iX3R4 KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAg ICAgICAgdnFfdXBkYXRlX2F2YWlsX2lkeCh2cSk7ICAgICAgICAgICAgICAgIDwtLS0gdmlyaXRv X3dtYigpICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgaWYgKHVu bGlrZWx5KHZpcnRxdWV1ZV9raWNrX3ByZXBhcmUodnEpKSkgeyAgICAgICAgICAgICAgICAgPC0t LSBubyBiYXJyaWVyIA0KICAgICAgICAgICAgICAgIHZpcnRxdWV1ZV9ub3RpZnkodnEpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgUE1EX1RYX0xPRyhE RUJVRywgIk5vdGlmaWVkIGJhY2tlbmQgYWZ0ZXIgeG1pdCIpOyAgICANCiAgICAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0K fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgDQoNCkFzc3VtaW5nIHRoZSBiYWNraGFuZCBoYXMgdkRQQSBkZXZpY2UuIFRo ZSBub3RpZnkgd2lsbCBiZSBtb3N0IGxpa2VseSBtYXBwZWQgdG8gdGhlIGRldmljZSBQQ0kgYmFy IGFzIHdyaXRlIGNvbWJpbmluZy4NClRoaXMgbWVhbnMgd2UgbmVlZCB0byBrZWVwIG9yZGVyaW5n IGhlcmUgYmV0d2VlbiB0d28gbWVtb3J5IGRvbWFpbnMgLSB0aGUgUENJIGFuZCB0aGUgaG9zdCBs b2NhbCBtZW1vcnkuIFdlIG11c3QgbWFrZSBzdXJlIHRoYXQgd2hlbiB0aGUgbm90aWZ5IHJlYWNo ZXMgdGhlIGRldmljZSwgdGhlIHN0b3JlIHRvIHRoZSBob3N0IGxvY2FsIG1lbW9yeSBpcyBhbHJl YWR5IHdyaXR0ZW4gdG8gbWVtb3J5IChhbmQgbm90IGluIHRoZSB3cml0ZSBidWZmZXIpLg0KSXMg Y29tcGxpZXIgYmFycmllciBpcyBlbm91Z2ggZm9yIHN1Y2ggcHVycG9zZT8gT3Igd2UgbmVlZCBz b21ldGhpbmcgc3Ryb25nZXIgbGlrZSBzZmVuY2U/IA0KDQpOb3RlICMxIC0gVGhpcyBpc3N1ZSAo aWYgZXhpc3RzKSBpcyBub3QgY2F1c2VkIGRpcmVjdGx5IGJ5IHlvdXIgY29kZSwgaG93ZXZlciB5 b3UgYXJlIG1ha2luZyB0aGluZ3MgcmlnaHQgaGVyZSB3LyByZXNwZWN0IHRvIG1lbW9yeSBvcmRl cmluZyBzbyB3b3J0aCB0YWtpbmcgY2FyZSBhbHNvIG9uIHRoaXMgb25lDQpOb3RlICMyIC0gaWYg aW5kZWVkIHRoZXJlIGlzIGFuIGlzc3VlIGhlcmUsIGZvciBwYWNrZWQgcXVldWUgd2UgYXJlIHNv bWV3aGF0IE9LLCBzaW5jZSB2aXJ0aW9fbWIoKSB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgdGhlIGtp Y2suIEkgYW0gbm90IHN1cmUgd2h5IHdlIG5lZWQgc3VjaCBoYXJkIGJhcnJpZXIgYW5kIHNmZW5j ZSBpcyBub3QgZW5vdWdoLiBEbyB5b3Uga25vdz8gDQoNCg0KPiArfQ0KPiANCj4gICNpZmRlZiBS VEVfUE1EX1BBQ0tFVF9QUkVGRVRDSA0KPiAgI2RlZmluZSBydGVfcGFja2V0X3ByZWZldGNoKHAp ICBydGVfcHJlZmV0Y2gxKHApIEBAIC0zMjUsNyArMzUwLDcgQEANCj4gdmlydHF1ZXVlX2VuYWJs ZV9pbnRyX3BhY2tlZChzdHJ1Y3QgdmlydHF1ZXVlICp2cSkNCj4gDQo+IA0KPiAgCWlmICh2cS0+ ZXZlbnRfZmxhZ3Nfc2hhZG93ID09IFJJTkdfRVZFTlRfRkxBR1NfRElTQUJMRSkgew0KPiAtCQl2 aXJ0aW9fd21iKCk7DQo+ICsJCXZpcnRpb193bWIodnEtPmh3LT53ZWFrX2JhcnJpZXJzKTsNCj4g IAkJdnEtPmV2ZW50X2ZsYWdzX3NoYWRvdyA9IFJJTkdfRVZFTlRfRkxBR1NfRU5BQkxFOw0KPiAg CQkqZXZlbnRfZmxhZ3MgPSB2cS0+ZXZlbnRfZmxhZ3Nfc2hhZG93Ow0KPiAgCX0NCj4gQEAgLTM5 MSw3ICs0MTYsNyBAQCB2b2lkIHZxX3JpbmdfZnJlZV9pbm9yZGVyKHN0cnVjdCB2aXJ0cXVldWUg KnZxLA0KPiB1aW50MTZfdCBkZXNjX2lkeCwgIHN0YXRpYyBpbmxpbmUgdm9pZCAgdnFfdXBkYXRl X2F2YWlsX2lkeChzdHJ1Y3QgdmlydHF1ZXVlICp2cSkNCj4gew0KPiAtCXZpcnRpb193bWIoKTsN Cj4gKwl2aXJ0aW9fd21iKHZxLT5ody0+d2Vha19iYXJyaWVycyk7DQo+ICAJdnEtPnZxX3Jpbmcu YXZhaWwtPmlkeCA9IHZxLT52cV9hdmFpbF9pZHg7ICB9DQo+IA0KPiBAQCAtNDIzLDcgKzQ0OCw3 IEBAIHZpcnRxdWV1ZV9raWNrX3ByZXBhcmVfcGFja2VkKHN0cnVjdCB2aXJ0cXVldWUgKnZxKSAg ew0KPiAgCXVpbnQxNl90IGZsYWdzOw0KPiANCj4gLQl2aXJ0aW9fbWIoKTsNCj4gKwl2aXJ0aW9f bWIodnEtPmh3LT53ZWFrX2JhcnJpZXJzKTsNCj4gIAlmbGFncyA9IHZxLT5yaW5nX3BhY2tlZC5k ZXZpY2VfZXZlbnQtPmRlc2NfZXZlbnRfZmxhZ3M7DQo+IA0KPiAgCXJldHVybiBmbGFncyAhPSBS SU5HX0VWRU5UX0ZMQUdTX0RJU0FCTEU7DQo+IC0tDQo+IDIuMTcuMQ0KDQo=