From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40064.outbound.protection.outlook.com [40.107.4.64]) by dpdk.org (Postfix) with ESMTP id 4487E6CD8 for ; Tue, 29 Jan 2019 00:01:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=twMJhX0UkCK4PnLiDw2Z9JIwnyddYRYwdr4vtGYKPLU=; b=AHxmAj5VBOhTVZtfGcGXiN658Zm1VmDL/WEcyLZHpZ6Bl9V50liXmEjQVotNDjOzZrVY4q/VMhnPC10R+WqgUZ6xT87JGzMkfJIc0mkHgHTjTKEqkBAlKFbuMzzTegmMsCozrDf/3U9YXC8oRJ5xFAMTkCR/7Zss6FQrFAvL79s= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB1529.eurprd08.prod.outlook.com (10.167.190.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16; Mon, 28 Jan 2019 23:01:37 +0000 Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::f5e3:70fc:e834:3c42]) by HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::f5e3:70fc:e834:3c42%3]) with mapi id 15.20.1558.023; Mon, 28 Jan 2019 23:01:37 +0000 From: Ola Liljedahl To: "gage.eads@intel.com" , "dev@dpdk.org" CC: "arybchenko@solarflare.com" , "jerinj@marvell.com" , "chaozhu@linux.vnet.ibm.com" , nd , "bruce.richardson@intel.com" , "konstantin.ananyev@intel.com" , "hemant.agrawal@nxp.com" , "olivier.matz@6wind.com" , Honnappa Nagarahalli , "Gavin Hu (Arm Technology China)" Thread-Topic: [dpdk-dev] [PATCH 1/1] eal: add 128-bit cmpset (x86-64 only) Thread-Index: AQHUty7+Hx+p+KOLIUunsbjUPnO+E6XFTIWA Date: Mon, 28 Jan 2019 23:01:37 +0000 Message-ID: <1548716507.11472.96.camel@arm.com> References: <20190128172945.27251-1-gage.eads@intel.com> <20190128172945.27251-2-gage.eads@intel.com> In-Reply-To: <20190128172945.27251-2-gage.eads@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.18.5.2-0ubuntu3.2 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; x-originating-ip: [217.140.96.140] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB1529; 6:sxV/t/zLGD9CF5di3/Shm0xpsyXvODXPpJs6lz4yzgViyyRc31z4z30emRSmV9T3BXy8/6AwfIffME19litwL13UXsgoLqTjj9XKgZDTAPTKRloKAA+v7S0GLYl3A/+AD/2CA5ndHtYj/wVKoEfMfUyCFOnZwHOnkGW5tGHA/YJushxEhlPpj7gLv+WWN+9jMlQOIuhYQt53f3QwgsWAtjCU9O8dpt9cxrk87Hypzc04aTO4kmExqOWCciAUlV+OHBmKoOM6EJoSK1N5+UIFiwzeMLVcVPqsOIvwnMpnJ7nma4HB7qcM9w6FqPz2O5ciC+b62UPTNZqJMk4RfshxM7jScBDesVNXcyiSsBMaSfbpI52s4+NC+wlOBQj7IGtT3mKFSuSJskGX6Ew629muKqZwamL7VxWR6SWmHV54dhubuecURcitHr5jzmo2a0C6Ca3rUyi16m/sXhrCnljExw==; 5:OTATSC+5hZaDVN4Hlx3kXZHFDNIFyJjcI8P3eHCoekyeRuRN2MvLqqNEbHANG2L78vXagG3A7NTKN2SCkYK7cpjd07miooQere9G48Z/jBJVnRcvcfXYEucJiPNJXoDJMGOBSryHaqEu43ed/lWS/9L0lJPhcaJcDEiWO228tf/98nTTfw62M2cnW9xnMtMEqug4zyOs7UoZ/STVXal8wQ==; 7:ehYRj918dTDtVy1LUr/k3ix52WNyynMB1ua/S/kt/nWjEDcXf5L4QQiwnMJxExTnIO1C1rlPvw7ahzFE3MAqN4c5PDLiPrLJBk+r+97NXQDvzKXuOylFcfzUA8L2pNpU4iMh5Y2ZuTB5EjyFErtYvA== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 23d01dd5-8096-4111-dae1-08d685748e84 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0801MB1529; x-ms-traffictypediagnostic: HE1PR0801MB1529: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr nodisclaimer: True x-microsoft-antispam-prvs: x-forefront-prvs: 0931CB1479 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(39860400002)(396003)(136003)(346002)(376002)(199004)(189003)(7736002)(53936002)(81156014)(110136005)(316002)(54906003)(81166006)(8676002)(6246003)(11346002)(105586002)(50226002)(2616005)(86362001)(476003)(4326008)(66066001)(25786009)(486006)(106356001)(68736007)(6116002)(3846002)(6512007)(97736004)(6306002)(2906002)(8936002)(103116003)(6436002)(72206003)(966005)(446003)(478600001)(186003)(36756003)(256004)(71190400001)(71200400001)(76176011)(305945005)(14444005)(6486002)(102836004)(99286004)(2501003)(14454004)(229853002)(6506007)(26005)(99106002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1529; H:HE1PR0801MB2076.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: SDX7SoO7bJSArSsejGKh0pfxhU9Gv/78gSz7gW3aameifDDMicHKsEvoQzfF6oW6xaPGnLXYVkGo1NiNlYbiY0cOAL+lJUrATY+loX+OMmAv+HRegIBbpooBZuaxam+lNP3QZO12RrxqyVy6oCT2nDiRZGSy7SOxzV2xdziPS8DCOatWvI37O9x+xPDPpmuwOrTKqfR1pK7PyJ6nL3aZm+JQesh+8Vvy9SPiYnKTeMuKbGngYkD4vhiHDuWhxVxhO/qPi+bwuY2EWxCF7jJX3GkUKEeuI3J9bNFz4DBO7auwMo2K4ZkcOsn+6Zma8mGVJh5bs4MfBKLuz08i7paIAlyB1BUfzem79pAbnq0BvZNRcA500R1VwUU+zX1VEDwEWdinXJN/5sBFKDUvK/bHt2Zmy5DBe67ptJEAwskE+TQ= Content-Type: text/plain; charset="utf-8" Content-ID: <3F0789EA87E3234FB4BD0AA46A932C58@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23d01dd5-8096-4111-dae1-08d685748e84 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jan 2019 23:01:37.1044 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1529 Subject: Re: [dpdk-dev] [PATCH 1/1] eal: add 128-bit cmpset (x86-64 only) 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: Mon, 28 Jan 2019 23:01:41 -0000 T24gTW9uLCAyMDE5LTAxLTI4IGF0IDExOjI5IC0wNjAwLCBHYWdlIEVhZHMgd3JvdGU6DQo+IFRo aXMgb3BlcmF0aW9uIGNhbiBiZSB1c2VkIGZvciBub24tYmxvY2tpbmcgYWxnb3JpdGhtcywgc3Vj aCBhcyBhDQo+IG5vbi1ibG9ja2luZyBzdGFjayBvciByaW5nLg0KPiANCj4gU2lnbmVkLW9mZi1i eTogR2FnZSBFYWRzIDxnYWdlLmVhZHNAaW50ZWwuY29tPg0KPiAtLS0NCj4gwqAuLi4vY29tbW9u L2luY2x1ZGUvYXJjaC94ODYvcnRlX2F0b21pY182NC5owqDCoMKgwqDCoMKgwqDCoHwgMzEgKysr KysrKysrKysNCj4gwqBsaWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9h dG9taWMuaCB8IDY1DQo+ICsrKysrKysrKysrKysrKysrKysrKysNCj4gwqAyIGZpbGVzIGNoYW5n ZWQsIDk2IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9j b21tb24vaW5jbHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4gYi9saWIvbGlicnRlX2Vh bC9jb21tb24vaW5jbHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4gaW5kZXggZmQyZWM5 YzUzLi5iN2I5MGI4M2UgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNs dWRlL2FyY2gveDg2L3J0ZV9hdG9taWNfNjQuaA0KPiArKysgYi9saWIvbGlicnRlX2VhbC9jb21t b24vaW5jbHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4gQEAgLTM0LDYgKzM0LDcgQEAN Cj4gwqAvKg0KPiDCoCAqIEluc3BpcmVkIGZyb20gRnJlZUJTRCBzcmMvc3lzL2FtZDY0L2luY2x1 ZGUvYXRvbWljLmgNCj4gwqAgKiBDb3B5cmlnaHQgKGMpIDE5OTggRG91ZyBSYWJzb24NCj4gKyAq IENvcHlyaWdodCAoYykgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbg0KPiDCoCAqIEFsbCByaWdodHMg cmVzZXJ2ZWQuDQo+IMKgICovDQo+IMKgDQo+IEBAIC00Niw2ICs0Nyw3IEBADQo+IMKgDQo+IMKg I2luY2x1ZGUgPHN0ZGludC5oPg0KPiDCoCNpbmNsdWRlIDxydGVfY29tbW9uLmg+DQo+ICsjaW5j bHVkZSA8cnRlX2NvbXBhdC5oPg0KPiDCoCNpbmNsdWRlIDxydGVfYXRvbWljLmg+DQo+IMKgDQo+ IMKgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIDY0IGJpdCBhdG9taWMgb3BlcmF0aW9ucyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLSovDQo+IEBAIC0yMDgsNCArMjEwLDMzIEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBydGVfYXRvbWljNjRfY2xlYXIocnRlX2F0b21pYzY0X3QgKnYpDQo+ IMKgfQ0KPiDCoCNlbmRpZg0KPiDCoA0KPiArc3RhdGljIGlubGluZSBpbnQgX19ydGVfZXhwZXJp bWVudGFsDQpfX3J0ZV9hbHdheXNfaW5saW5lPw0KDQo+ICtydGVfYXRvbWljMTI4X2NtcHNldCh2 b2xhdGlsZSBydGVfaW50MTI4X3QgKmRzdCwNCk5vIG5lZWQgdG8gZGVjbGFyZSB0aGUgbG9jYXRp b24gdm9sYXRpbGUuIFZvbGF0aWxlIGRvZXNuJ3QgZG8gd2hhdCB5b3UgdGhpbmsgaXQNCmRvZXMu DQpodHRwczovL3lvdXR1LmJlL2xrZ3N6a1BuVjhnP3Q9MTAyNw0KDQoNCj4gKwkJwqDCoMKgwqDC oHJ0ZV9pbnQxMjhfdCAqZXhwLA0KSSB3b3VsZCBkZWNsYXJlICdleHAnIGNvbnN0IGFzIHdlbGwg YW5kIGRvY3VtZW50IHRoYXQgJ2V4cCcgaXMgbm90IHVwZGF0ZWQgKHdpdGgNCnRoZSBvbGQgdmFs dWUpIGZvciBhIGZhaWx1cmUuIFRoZSByZWFzb24gYmVpbmcgdGhhdCBBUk12OC4wL0FBcmNoNjQg Y2Fubm90DQphdG9taWNhbGx5IHJlYWQgdGhlIG9sZCB2YWx1ZSB3aXRob3V0IGFsc28gd3JpdGlu ZyB0aGUgbG9jYXRpb24gYW5kIHRoYXQgaXMgYmFkDQpmb3IgcGVyZm9ybWFuY2UgKHVubmVjZXNz YXJ5IHdyaXRlcyBsZWFkcyB0byB1bm5lY2Vzc2FyeSBjb250ZW50aW9uIGFuZCB3b3JzZQ0Kc2Nh bGFiaWxpdHkpLiBBbmQgdGhlIHVzZXIgbXVzdCBhbnl3YXkgcmVhZCB0aGUgbG9jYXRpb24gKGlu IHRoZSBzdGFydCBvZiB0aGUNCmNyaXRpY2FsIHNlY3Rpb24pIHVzaW5nIGUuZy4gbm9uLWF0b21p YyA2NC1iaXQgcmVhZHMgc28gdGhlcmUgaXNuJ3QgYWN0dWFsbHkgYW55DQpyZXF1aXJlbWVudCBm b3IgYW4gYXRvbWljIDEyOC1iaXQgcmVhZCBvZiB0aGUgbG9jYXRpb24uDQoNCj4gIHJ0ZV9pbnQx MjhfdCAqc3JjLA0KY29uc3QgcnRlX2ludDEyOF90ICpzcmM/DQoNCkJ1dCB3aHkgYXJlIHdlIG5v dCBwYXNzaW5nICdleHAnIGFuZCAnc3JjJyBieSB2YWx1ZT8gVGhhdCB3b3JrcyBncmVhdCwgZXZl biB3aXRoDQpzdHJ1Y3RzLiBQYXNzaW5nIGJ5IHZhbHVlIHNpbXBsaWZpZXMgdGhlIGNvbXBpbGVy J3MgbGlmZSwgZXNwZWNpYWxseSBpZiB0aGUgY2FsbA0KaXMgaW5saW5lZC4gQXNrIGEgY29tcGls ZXIgZGV2ZWxvcGVyLg0KDQo+ICsJCcKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgd2VhaywNCj4gKwkJ wqDCoMKgwqDCoGVudW0gcnRlX2F0b21pY19tZW1tb2RlbF90IHN1Y2Nlc3MsDQo+ICsJCcKgwqDC oMKgwqBlbnVtIHJ0ZV9hdG9taWNfbWVtbW9kZWxfdCBmYWlsdXJlKQ0KPiArew0KPiArCVJURV9T RVRfVVNFRCh3ZWFrKTsNCj4gKwlSVEVfU0VUX1VTRUQoc3VjY2Vzcyk7DQo+ICsJUlRFX1NFVF9V U0VEKGZhaWx1cmUpOw0KPiArCXVpbnQ4X3QgcmVzOw0KPiArDQo+ICsJYXNtIHZvbGF0aWxlICgN Cj4gKwkJwqDCoMKgwqDCoMKgTVBMT0NLRUQNCj4gKwkJwqDCoMKgwqDCoMKgImNtcHhjaGcxNmIg JVtkc3RdOyINCj4gKwkJwqDCoMKgwqDCoMKgIiBzZXRlICVbcmVzXSINCj4gKwkJwqDCoMKgwqDC oMKgOiBbZHN0XSAiPW0iIChkc3QtPnZhbFswXSksDQo+ICsJCQkiPUEiIChleHAtPnZhbFswXSks DQo+ICsJCQlbcmVzXSAiPXIiIChyZXMpDQo+ICsJCcKgwqDCoMKgwqDCoDogImMiIChzcmMtPnZh bFsxXSksDQo+ICsJCQkiYiIgKHNyYy0+dmFsWzBdKSwNCj4gKwkJCSJtIiAoZHN0LT52YWxbMF0p LA0KPiArCQkJImQiIChleHAtPnZhbFsxXSksDQo+ICsJCQkiYSIgKGV4cC0+dmFsWzBdKQ0KPiAr CQnCoMKgwqDCoMKgwqA6ICJtZW1vcnkiKTsNCj4gKw0KPiArCXJldHVybiByZXM7DQo+ICt9DQo+ ICsNCj4gwqAjZW5kaWYgLyogX1JURV9BVE9NSUNfWDg2XzY0X0hfICovDQo+IGRpZmYgLS1naXQg YS9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9hdG9taWMuaA0KPiBi L2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2dlbmVyaWMvcnRlX2F0b21pYy5oDQo+IGlu ZGV4IGI5OWJhNDY4OC4uOGQ2MTJkNTY2IDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX2VhbC9j b21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9hdG9taWMuaA0KPiArKysgYi9saWIvbGlicnRlX2Vh bC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9hdG9taWMuaA0KPiBAQCAtMTQsNiArMTQsNyBA QA0KPiDCoA0KPiDCoCNpbmNsdWRlIDxzdGRpbnQuaD4NCj4gwqAjaW5jbHVkZSA8cnRlX2NvbW1v bi5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9jb21wYXQuaD4NCj4gwqANCj4gwqAjaWZkZWYgX19ET1hZ R0VOX18NCj4gwqANCj4gQEAgLTEwODIsNCArMTA4Myw2OCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg cnRlX2F0b21pYzY0X2NsZWFyKHJ0ZV9hdG9taWM2NF90DQo+ICp2KQ0KPiDCoH0NCj4gwqAjZW5k aWYNCj4gwqANCj4gKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIDEyOCBiaXQgYXRvbWljIG9w ZXJhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0qLw0KPiArDQo+ICsvKioNCj4g KyAqIDEyOC1iaXQgaW50ZWdlciBzdHJ1Y3R1cmUuDQo+ICsgKi8NCj4gK3R5cGVkZWYgc3RydWN0 IHsNCj4gKwl1aW50NjRfdCB2YWxbMl07DQo+ICt9IF9fcnRlX2FsaWduZWQoMTYpIHJ0ZV9pbnQx MjhfdDsNClNvIHdlIGNhbid0IHVzZSBfX2ludDEyOD8NCg0KPiArDQo+ICsvKioNCj4gKyAqIE1l bW9yeSBjb25zaXN0ZW5jeSBtb2RlbHMgdXNlZCBpbiBhdG9taWMgb3BlcmF0aW9ucy4gVGhlc2Ug Y29udHJvbCB0aGUNCj4gKyAqIGJlaGF2aW9yIG9mIHRoZSBvcGVyYXRpb24gd2l0aCByZXNwZWN0 IHRvIG1lbW9yeSBiYXJyaWVycyBhbmQNCj4gKyAqIHRocmVhZCBzeW5jaHJvbml6YXRpb24uDQo+ ICsgKg0KPiArICogVGhlc2UgZGlyZWN0bHkgbWF0Y2ggdGhvc2UgaW4gdGhlIEMrKzExIHN0YW5k YXJkOyBmb3IgZGV0YWlscyBvbiB0aGVpcg0KPiArICogYmVoYXZpb3IsIHJlZmVyIHRvIHRoZSBz dGFuZGFyZC4NCj4gKyAqLw0KPiArZW51bSBydGVfYXRvbWljX21lbW1vZGVsX3Qgew0KPiArCVJU RV9BVE9NSUNfUkVMQVhFRCwNCj4gKwlSVEVfQVRPTUlDX0NPTlNVTUUsDQo+ICsJUlRFX0FUT01J Q19BQ1FVSVJFLA0KPiArCVJURV9BVE9NSUNfUkVMRUFTRSwNCj4gKwlSVEVfQVRPTUlDX0FDUV9S RUwsDQo+ICsJUlRFX0FUT01JQ19TRVFfQ1NULA0KPiArfTsNCj4gKw0KPiArLyogT25seSBpbXBs ZW1lbnRlZCBvbiB4ODYtNjQgY3VycmVudGx5LiBUaGUgaWZkZWYgcHJldmVudHMgY29tcGlsYXRp b24gZnJvbQ0KPiArICogZmFpbGluZyBmb3IgYXJjaGl0ZWN0dXJlcyB3aXRob3V0IGEgZGVmaW5p dGlvbiBvZiB0aGlzIGZ1bmN0aW9uLg0KPiArICovDQo+ICsjaWYgZGVmaW5lZChSVEVfQVJDSF9Y ODZfNjQpDQo+ICsvKioNCj4gKyAqIEFuIGF0b21pYyBjb21wYXJlIGFuZCBzZXQgZnVuY3Rpb24g dXNlZCBieSB0aGUgbXV0ZXggZnVuY3Rpb25zLg0KPiArICogKGF0b21pYykgZXF1aXZhbGVudCB0 bzoNCj4gKyAqwqDCoMKgaWYgKCpkc3QgPT0gZXhwKQ0KPiArICrCoMKgwqDCoMKgKmRzdCA9IHNy YyAoYWxsIDEyOC1iaXQgd29yZHMpDQo+ICsgKg0KPiArICogQHBhcmFtIGRzdA0KPiArICrCoMKg wqBUaGUgZGVzdGluYXRpb24gaW50byB3aGljaCB0aGUgdmFsdWUgd2lsbCBiZSB3cml0dGVuLg0K PiArICogQHBhcmFtIGV4cA0KPiArICrCoMKgwqBQb2ludGVyIHRvIHRoZSBleHBlY3RlZCB2YWx1 ZS4gSWYgdGhlIG9wZXJhdGlvbiBmYWlscywgdGhpcyBtZW1vcnkgaXMNCj4gKyAqwqDCoMKgdXBk YXRlZCB3aXRoIHRoZSBhY3R1YWwgdmFsdWUuDQo+ICsgKiBAcGFyYW0gc3JjDQo+ICsgKsKgwqDC oFBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZS4NCj4gKyAqIEBwYXJhbSB3ZWFrDQo+ICsgKsKgwqDC oEEgdmFsdWUgb2YgdHJ1ZSBhbGxvd3MgdGhlIGNvbXBhcmlzb24gdG8gc3B1cmlvdXNseSBmYWls Lg0KPiBJbXBsZW1lbnRhdGlvbnMNCj4gKyAqwqDCoMKgbWF5IGlnbm9yZSB0aGlzIGFyZ3VtZW50 IGFuZCBvbmx5IGltcGxlbWVudCB0aGUgc3Ryb25nIHZhcmlhbnQuDQo+ICsgKiBAcGFyYW0gc3Vj Y2Vzcw0KPiArICrCoMKgwqBJZiBzdWNjZXNzZnVsLCB0aGUgb3BlcmF0aW9uJ3MgbWVtb3J5IGJl aGF2aW9yIGNvbmZvcm1zIHRvIHRoaXMgKG9yIGENCj4gKyAqwqDCoMKgc3Ryb25nZXIpIG1vZGVs Lg0KPiArICogQHBhcmFtIGZhaWx1cmUNCj4gKyAqwqDCoMKgSWYgdW5zdWNjZXNzZnVsLCB0aGUg b3BlcmF0aW9uJ3MgbWVtb3J5IGJlaGF2aW9yIGNvbmZvcm1zIHRvIHRoaXMgKG9yIGENCj4gKyAq wqDCoMKgc3Ryb25nZXIpIG1vZGVsLiBUaGlzIGFyZ3VtZW50IGNhbm5vdCBiZSBSVEVfQVRPTUlD X1JFTEVBU0UsDQo+ICsgKsKgwqDCoFJURV9BVE9NSUNfQUNRX1JFTCwgb3IgYSBzdHJvbmdlciBt b2RlbCB0aGFuIHN1Y2Nlc3MuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKsKgwqDCoE5vbi16ZXJvIG9u IHN1Y2Nlc3M7IDAgb24gZmFpbHVyZS4NCj4gKyAqLw0KPiArc3RhdGljIGlubGluZSBpbnQgX19y dGVfZXhwZXJpbWVudGFsDQo+ICtydGVfYXRvbWljMTI4X2NtcHNldCh2b2xhdGlsZSBydGVfaW50 MTI4X3QgKmRzdCwNCj4gKwkJwqDCoMKgwqDCoHJ0ZV9pbnQxMjhfdCAqZXhwLCBydGVfaW50MTI4 X3QgKnNyYywNCj4gKwkJwqDCoMKgwqDCoHVuc2lnbmVkIGludCB3ZWFrLA0KPiArCQnCoMKgwqDC oMKgZW51bSBydGVfYXRvbWljX21lbW1vZGVsX3Qgc3VjY2VzcywNCj4gKwkJwqDCoMKgwqDCoGVu dW0gcnRlX2F0b21pY19tZW1tb2RlbF90IGZhaWx1cmUpOw0KPiArI2VuZGlmDQo+ICsNCj4gwqAj ZW5kaWYgLyogX1JURV9BVE9NSUNfSF8gKi8NCi0tIA0KT2xhIExpbGplZGFobCwgTmV0d29ya2lu ZyBTeXN0ZW0gQXJjaGl0ZWN0LCBBcm0NClBob25lICs0NjcwNjg2NjM3MywgU2t5cGUgb2xhLmxp bGplZGFobA0KDQo=