From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140053.outbound.protection.outlook.com [40.107.14.53]) by dpdk.org (Postfix) with ESMTP id 2E71D1B4FC for ; Fri, 1 Feb 2019 20:43:55 +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=5vJss5BYyH7DokQMuIDS667rInDc/GYn7ZKVSlLKUdc=; b=rPeYAmgHYBC0RUp9etESDVR/XUIKDK49g+U4QY2cJGyoo8Ya4lUhEZ4gCNIyQpewKfLvgk4uiZ5x0A5mDh3IihWlOccFlXKo9bY3250WvQK/JbT5sUeMncGDB4v2o8m4+7e0/tZXRJZGiTc/tvPoDyh5/SLszQn6iw+GoKxXvCw= Received: from DB6PR0801MB2071.eurprd08.prod.outlook.com (10.168.87.14) by DB6PR0801MB1784.eurprd08.prod.outlook.com (10.169.226.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1580.17; Fri, 1 Feb 2019 19:43:53 +0000 Received: from DB6PR0801MB2071.eurprd08.prod.outlook.com ([fe80::a532:5e16:e4eb:4e5c]) by DB6PR0801MB2071.eurprd08.prod.outlook.com ([fe80::a532:5e16:e4eb:4e5c%9]) with mapi id 15.20.1580.019; Fri, 1 Feb 2019 19:43:53 +0000 From: Ola Liljedahl To: "gage.eads@intel.com" , "dev@dpdk.org" CC: "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" , "arybchenko@solarflare.com" , "Gavin Hu (Arm Technology China)" , Honnappa Nagarahalli Thread-Topic: [dpdk-dev] [PATCH 1/1] eal: add 128-bit cmpset (x86-64 only) Thread-Index: AQHUty7+Hx+p+KOLIUunsbjUPnO+E6XFTIWAgAXPcGCAADbYgIAAAOuAgAAK5QA= Date: Fri, 1 Feb 2019 19:43:53 +0000 Message-ID: <1549050246.20325.45.camel@arm.com> References: <20190128172945.27251-1-gage.eads@intel.com> <20190128172945.27251-2-gage.eads@intel.com> <1548716507.11472.96.camel@arm.com> <9184057F7FC11744A2107296B6B8EB1E541CE1FE@FMSMSX108.amr.corp.intel.com> <1549047709.20325.35.camel@arm.com> <9184057F7FC11744A2107296B6B8EB1E541CE2CE@FMSMSX108.amr.corp.intel.com> In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E541CE2CE@FMSMSX108.amr.corp.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: [158.174.8.16] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB6PR0801MB1784; 6:e6mZfNFC9Bt8QrO+JdCmYCJchuGvELiOYaAwccaxwaB1OQ6n73kjfrK2pXE0YHmrRwp5LfXi64If2rbpIhCSnyrRsLVLUtRoe6hw2TDNgHbsBymEQ8qbaLLRY986xaCbroDkxj2StckSUb7DXNSc4MVQ9jVorGPpbi7uz6bgQo1xDPSrktNqeQfnXvhz7iyJlt/w27LnzvicWl49X7+KBGO5CpZeTEhiDpbZiOCKjPrxzAzC8pYRKPdjPUFU8Dfy+IBY1kBe/1qJWshcsHd5AyUrZb0dCcwA1eycpsFIvmc0tVNTo2ldpvdeV1K0gHFGwB/xtuNunUGswJlLPY4/wOLXdzmHUmNmj3uv11W9PCyZe28zDzBmq7Q3Mazx2pK/zaNJ2XM9dAsd+f8gpLchXjaElJZy87deQP7seTGibRE/PsIw08O4L6lyZnCpPJY3PC59ka0sZ/xBoX3yD8ChXA==; 5:bYRKbRHb8LHx+mEQ8Bk2kC1QG0BnMKSt2N36+GmGpgWcy0gMVYG6Lj689V15ROlrASmGImTeq35rsM2EnrKA6/Rx/iptikNwOaYVOfWh0PrpReOjcJ5PlSNpxHG/rPPV4cu+iVDuP8GkTe4gvjJVDMolmDS+f5ouJ2l7ab/WljuQOQbv2hlrAaE308T5SUG/mtlgnVKjfsGCN8QgWCVbHQ==; 7:URTwEP+kxcH3q6k1zzs1vrqpjFUorYx2oI4YvamAkRAYCToh3q59qZJaCNs4IrTDCceuDnj+SwMBuqxbkSGOXMtC3F1vvWpHL3vGymKvd1YCz5TL3M+JKs3zUZSjf888O1Vk2q67u+ByFpSl9Vod2A== x-ms-office365-filtering-correlation-id: 574c8d15-736c-4575-4d8f-08d6887d98f5 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:DB6PR0801MB1784; x-ms-traffictypediagnostic: DB6PR0801MB1784: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr nodisclaimer: True x-microsoft-antispam-prvs: x-forefront-prvs: 09352FD734 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(366004)(136003)(396003)(39860400002)(346002)(199004)(189003)(13464003)(110136005)(71200400001)(54906003)(6512007)(76176011)(25786009)(102836004)(6306002)(6246003)(105586002)(6506007)(97736004)(72206003)(478600001)(14444005)(103116003)(256004)(316002)(36756003)(53546011)(53936002)(71190400001)(6486002)(3846002)(68736007)(476003)(66066001)(11346002)(26005)(229853002)(7736002)(186003)(50226002)(446003)(966005)(99286004)(486006)(2616005)(2501003)(6116002)(2906002)(81166006)(14454004)(6436002)(8676002)(86362001)(4326008)(93886005)(81156014)(106356001)(305945005)(8936002)(99106002)(21314003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0801MB1784; H:DB6PR0801MB2071.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: ixfhh0jweMpmG9nyNVLEg06Akxw4PR9qCnPxl7805G3Zy8Uhr9pUGzMjbu4ZtX6B433fNykWU98c7Iy2s7rpMZboPNSN+BjRj+2ek8JcLRkqQsvh54znBgb/qsSi1uGf6ABosAColcYUBYDRbwnyFYP+t/vBzNqNFbN2uNa83OMlebIbRhg5N1A7EokmjARnyz81DCbHyJfj1x6ktkUiOuvkXHBGyI5mWAm5iAeaDOGFw0KbwBBFyPEgXdkfCNZvOTGzZZbFbAdRvlOldqWTOC2zNDPtu8VMgxsGsrVQQbiuOUjY/0C0rKCOZH9zwcFoE8r+4pDgJdmWVIjvlHVDGAoEz6jd5S30JFCfv9J9XgkTUN1PRSI54l9EOdqYfGUs+Fxxo/NwCeI34PmSnnHs1Y+fbFTRw/MbFxsxa0mrhig= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 574c8d15-736c-4575-4d8f-08d6887d98f5 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2019 19:43:53.7225 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1784 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: Fri, 01 Feb 2019 19:43:55 -0000 T24gRnJpLCAyMDE5LTAyLTAxIGF0IDE5OjI4ICswMDAwLCBFYWRzLCBHYWdlIHdyb3RlOg0KPiAN Cj4gPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE9sYSBMaWxq ZWRhaGwgW21haWx0bzpPbGEuTGlsamVkYWhsQGFybS5jb21dDQo+ID4gU2VudDogRnJpZGF5LCBG ZWJydWFyeSAxLCAyMDE5IDE6MDIgUE0NCj4gPiBUbzogRWFkcywgR2FnZSA8Z2FnZS5lYWRzQGlu dGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+IENjOiBqZXJpbmpAbWFydmVsbC5jb207IGNoYW96 aHVAbGludXgudm5ldC5pYm0uY29tOyBuZCA8bmRAYXJtLmNvbT47DQo+ID4gUmljaGFyZHNvbiwg QnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0K PiA+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgaGVtYW50LmFncmF3YWxAbnhwLmNv bTsNCj4gPiBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29t OyBHYXZpbiBIdSAoQXJtDQo+ID4gVGVjaG5vbG9neSBDaGluYSkgPEdhdmluLkh1QGFybS5jb20+ OyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29t Pg0KPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCAxLzFdIGVhbDogYWRkIDEyOC1i aXQgY21wc2V0ICh4ODYtNjQgb25seSkNCj4gPiANCj4gPiBPbiBGcmksIDIwMTktMDItMDEgYXQg MTc6MDYgKzAwMDAsIEVhZHMsIEdhZ2Ugd3JvdGU6DQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gPiAN Cj4gPiA+ID4gDQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZy b206IE9sYSBMaWxqZWRhaGwgW21haWx0bzpPbGEuTGlsamVkYWhsQGFybS5jb21dDQo+ID4gPiA+ IFNlbnQ6IE1vbmRheSwgSmFudWFyeSAyOCwgMjAxOSA1OjAyIFBNDQo+ID4gPiA+IFRvOiBFYWRz LCBHYWdlIDxnYWdlLmVhZHNAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiA+IENjOiBh cnliY2hlbmtvQHNvbGFyZmxhcmUuY29tOyBqZXJpbmpAbWFydmVsbC5jb207DQo+ID4gPiA+IGNo YW96aHVAbGludXgudm5ldC5pYm0uY29tOyBuZCA8bmRAYXJtLmNvbT47IFJpY2hhcmRzb24sIEJy dWNlDQo+ID4gPiA+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0 YW50aW4NCj4gPiA+ID4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBoZW1hbnQuYWdy YXdhbEBueHAuY29tOw0KPiA+ID4gPiBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBIb25uYXBwYSBO YWdhcmFoYWxsaQ0KPiA+ID4gPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IEdhdmlu IEh1IChBcm0gVGVjaG5vbG9neSBDaGluYSkNCj4gPiA+ID4gPEdhdmluLkh1QGFybS5jb20+DQo+ ID4gPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCAxLzFdIGVhbDogYWRkIDEyOC1i aXQgY21wc2V0ICh4ODYtNjQNCj4gPiA+ID4gb25seSkNCj4gPiA+ID4gDQo+ID4gPiA+IE9uIE1v biwgMjAxOS0wMS0yOCBhdCAxMToyOSAtMDYwMCwgR2FnZSBFYWRzIHdyb3RlOg0KPiA+ID4gPiA+ IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IFRoaXMgb3BlcmF0aW9uIGNhbiBiZSB1c2VkIGZvciBu b24tYmxvY2tpbmcgYWxnb3JpdGhtcywgc3VjaCBhcyBhDQo+ID4gPiA+ID4gbm9uLWJsb2NraW5n IHN0YWNrIG9yIHJpbmcuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogR2Fn ZSBFYWRzIDxnYWdlLmVhZHNAaW50ZWwuY29tPg0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+IMKg Li4uL2NvbW1vbi9pbmNsdWRlL2FyY2gveDg2L3J0ZV9hdG9taWNfNjQuaMKgwqDCoMKgwqDCoMKg wqB8IDMxDQo+ID4gPiA+ID4gKysrKysrKysrKysNCj4gPiA+ID4gPiDCoGxpYi9saWJydGVfZWFs L2NvbW1vbi9pbmNsdWRlL2dlbmVyaWMvcnRlX2F0b21pYy5oIHwgNjUNCj4gPiA+ID4gPiArKysr KysrKysrKysrKysrKysrKysrDQo+ID4gPiA+ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDk2IGluc2Vy dGlvbnMoKykNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gYS9s aWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4g PiA+ID4gPiBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gveDg2L3J0ZV9hdG9t aWNfNjQuaA0KPiA+ID4gPiA+IGluZGV4IGZkMmVjOWM1My4uYjdiOTBiODNlIDEwMDY0NA0KPiA+ ID4gPiA+IC0tLSBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gveDg2L3J0ZV9h dG9taWNfNjQuaA0KPiA+ID4gPiA+ICsrKyBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRl L2FyY2gveDg2L3J0ZV9hdG9taWNfNjQuaA0KPiA+ID4gPiA+IEBAIC0zNCw2ICszNCw3IEBADQo+ ID4gPiA+ID4gwqAvKg0KPiA+ID4gPiA+IMKgICogSW5zcGlyZWQgZnJvbSBGcmVlQlNEIHNyYy9z eXMvYW1kNjQvaW5jbHVkZS9hdG9taWMuaA0KPiA+ID4gPiA+IMKgICogQ29weXJpZ2h0IChjKSAx OTk4IERvdWcgUmFic29uDQo+ID4gPiA+ID4gKyAqIENvcHlyaWdodCAoYykgMjAxOSBJbnRlbCBD b3Jwb3JhdGlvbg0KPiA+ID4gPiA+IMKgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiA+ID4g PiDCoCAqLw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEBAIC00Niw2ICs0Nyw3IEBADQo+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gwqAjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gPiA+ID4gwqAjaW5jbHVk ZSA8cnRlX2NvbW1vbi5oPg0KPiA+ID4gPiA+ICsjaW5jbHVkZSA8cnRlX2NvbXBhdC5oPg0KPiA+ ID4gPiA+IMKgI2luY2x1ZGUgPHJ0ZV9hdG9taWMuaD4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiDC oC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA2NCBiaXQgYXRvbWljIG9wZXJhdGlvbnMNCj4g PiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLSovIEBAIC0yMDgsNCArMjEwLDMzIEBA IHN0YXRpYyBpbmxpbmUNCj4gPiA+ID4gPiB2b2lkIHJ0ZV9hdG9taWM2NF9jbGVhcihydGVfYXRv bWljNjRfdCAqdikNCj4gPiA+ID4gPiDCoH0NCj4gPiA+ID4gPiDCoCNlbmRpZg0KPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ICtzdGF0aWMgaW5saW5lIGludCBfX3J0ZV9leHBlcmltZW50YWwNCj4gPiA+ ID4gX19ydGVfYWx3YXlzX2lubGluZT8NCj4gPiA+ID4gDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4g DQo+ID4gPiA+ID4gK3J0ZV9hdG9taWMxMjhfY21wc2V0KHZvbGF0aWxlIHJ0ZV9pbnQxMjhfdCAq ZHN0LA0KPiA+ID4gPiBObyBuZWVkIHRvIGRlY2xhcmUgdGhlIGxvY2F0aW9uIHZvbGF0aWxlLiBW b2xhdGlsZSBkb2Vzbid0IGRvIHdoYXQNCj4gPiA+ID4geW91IHRoaW5rIGl0IGRvZXMuDQo+ID4g PiA+IGh0dHBzOi8veW91dHUuYmUvbGtnc3prUG5WOGc/dD0xMDI3DQo+ID4gPiA+IA0KPiA+ID4g SSBtYWRlIHRoaXMgdm9sYXRpbGUgdG8gbWF0Y2ggdGhlIGV4aXN0aW5nIHJ0ZV9hdG9taWNOX2Nt cHNldA0KPiA+ID4gZGVmaW5pdGlvbnMsIHdoaWNoIHByZXN1bWFibHkgaGF2ZSBhIGdvb2QgcmVh c29uIGZvciB1c2luZyB0aGUNCj4gPiA+IGtleXdvcmQuIE1haW50YWluZXJzLCBhbnkgaW5wdXQg aGVyZT8NCj4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+IA0K PiA+ID4gPiA+IA0KPiA+ID4gPiA+ICsJCcKgwqDCoMKgwqBydGVfaW50MTI4X3QgKmV4cCwNCj4g PiA+ID4gSSB3b3VsZCBkZWNsYXJlICdleHAnIGNvbnN0IGFzIHdlbGwgYW5kIGRvY3VtZW50IHRo YXQgJ2V4cCcgaXMgbm90DQo+ID4gPiA+IHVwZGF0ZWQgKHdpdGggdGhlIG9sZCB2YWx1ZSkgZm9y IGEgZmFpbHVyZS4gVGhlIHJlYXNvbiBiZWluZyB0aGF0DQo+ID4gPiA+IEFSTXY4LjAvQUFyY2g2 NCBjYW5ub3QgYXRvbWljYWxseSByZWFkIHRoZSBvbGQgdmFsdWUgd2l0aG91dCBhbHNvDQo+ID4g PiA+IHdyaXRpbmcgdGhlIGxvY2F0aW9uIGFuZCB0aGF0IGlzIGJhZCBmb3IgcGVyZm9ybWFuY2Ug KHVubmVjZXNzYXJ5DQo+ID4gPiA+IHdyaXRlcyBsZWFkcyB0byB1bm5lY2Vzc2FyeSBjb250ZW50 aW9uIGFuZCB3b3JzZSBzY2FsYWJpbGl0eSkuIEFuZA0KPiA+ID4gPiB0aGUgdXNlciBtdXN0IGFu eXdheSByZWFkIHRoZSBsb2NhdGlvbiAoaW4gdGhlIHN0YXJ0IG9mIHRoZSBjcml0aWNhbA0KPiA+ ID4gPiBzZWN0aW9uKSB1c2luZyBlLmcuIG5vbi1hdG9taWMgNjQtYml0IHJlYWRzIHNvIHRoZXJl IGlzbid0IGFjdHVhbGx5DQo+ID4gPiA+IGFueSByZXF1aXJlbWVudCBmb3IgYW4gYXRvbWljIDEy OC1iaXQgcmVhZCBvZiB0aGUgbG9jYXRpb24uDQo+ID4gPiA+IA0KPiA+ID4gV2lsbCBjaGFuZ2Ug aW4gdjIuDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ IA0KPiA+ID4gPiA+IMKgcnRlX2ludDEyOF90ICpzcmMsDQo+ID4gPiA+IGNvbnN0IHJ0ZV9pbnQx MjhfdCAqc3JjPw0KPiA+ID4gU3VyZSwgSSBkb24ndCBzZWUgYW55IGhhcm0gaW4gdXNpbmcgY29u c3QuDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gQnV0IHdo eSBhcmUgd2Ugbm90IHBhc3NpbmcgJ2V4cCcgYW5kICdzcmMnIGJ5IHZhbHVlPyBUaGF0IHdvcmtz DQo+ID4gPiA+IGdyZWF0LCBldmVuIHdpdGggc3RydWN0cy4gUGFzc2luZyBieSB2YWx1ZSBzaW1w bGlmaWVzIHRoZSBjb21waWxlcidzDQo+ID4gPiA+IGxpZmUsIGVzcGVjaWFsbHkgaWYgdGhlIGNh bGwgaXMgaW5saW5lZC4gQXNrIGEgY29tcGlsZXIgZGV2ZWxvcGVyLg0KPiA+ID4gSSByYW4gb2Jq ZHVtcCBvbiB0aGUgbmJfc3RhY2sgY29kZSB3aXRoIGJvdGggYXBwcm9hY2hlcywgYW5kDQo+ID4g PiBwYXNzLWJ5LXJlZmVyZW5jZSByZXN1bHRlZCBpbiBmZXdlciBvdmVyYWxsIHg4Nl82NCBhc3Nl bWJseSBvcHMuDQo+ID4gPiBQQlY6IDEwMCBvcHMgZm9yIHB1c2gsIDk3IG9wcyBmb3IgcG9wDQo+ ID4gPiBQQlI6IDkyIG9wcyBmb3IgcHVzaCwgODQgb3BzIGZvciBwb3ANCj4gPiBPSyBJIGhhdmUg bmV2ZXIgY2hlY2tlZCB4ODZfNjQgY29kZSBnZW5lcmF0aW9uLi4uIEkgaGF2ZSBnb29kIGV4cGVy aWVuY2VzDQo+ID4gd2l0aCBBUk0vQUFyY2g2NCwgZXZlcnl0aGluZyBzZWVtcyB0byBiZSBkb25l IHVzaW5nIHJlZ2lzdGVycy4gSSBhbQ0KPiA+IHN1cnByaXNlZA0KPiA+IHRoZXJlIGlzIGEgZGlm ZmVyZW5jZS4NCj4gPiANCj4gPiBEaWQgYSBxdWljayBjaGVjayB3aXRoIGxmcmluZywgcGFzc2lu ZyAnc3JjJyAodGhpcmQgcGFyYW0pIGJ5IHJlZmVyZW5jZSBhbmQNCj4gPiBieQ0KPiA+IHZhbHVl LiBObyBkaWZmZXJlbmNlIGluIGNvZGUgZ2VuZXJhdGlvbiBvbiB4ODZfNjQuDQo+ID4gDQo+ID4g QnV0IGlmIHlvdSBpbnNpc3QgbGV0J3MgZ28gd2l0aCBQQlIuDQo+ID4gDQo+ID4gPiANCj4gPiA+ IA0KPiA+ID4gKFVzaW5nIHRoZSBpbi1wcm9ncmVzcyB2NSBuYl9zdGFjayBjb2RlKQ0KPiA+ID4g DQo+ID4gPiBBbm90aGVyIGZhY3RvciAtLSB0aG91Z2ggbXVjaCBsZXNzIGNvbXBlbGxpbmcgLS0g aXMgdGhhdCB3aXRoIHBhc3MtYnktDQo+ID4gPiByZWZlcmVuY2UsIHRoZSB1c2VyIGNhbiBjcmVh dGUgYSAxNkIgc3RydWN0dXJlIGFuZCBjYXN0IGl0IHRvDQo+ID4gPiBydGVfaW50MTI4X3Qgd2hl biB0aGV5IGNhbGwgcnRlX2F0b21pYzEyOF9jbXBzZXQsIHdoZXJlYXMgd2l0aA0KPiA+ID4gcGFz cy1ieS12YWx1ZSB0aGV5IG5lZWQgdG8gcHV0IHRoYXQgc3RydWN0IGluIGEgdW5pb24gd2l0aCBy dGVfaW50MTI4X3QuDQo+ID4gV2hpY2ggaXMgd2hhdCBJIGFsd2F5cyBkbyBub3dhZGF5cy4uLiBU cnlpbmcgdG8gdXNlIGFzIGZldyBjYXN0cyBhcyBwb3NzaWJsZQ0KPiA+IGFuZA0KPiA+IGxpZSB0 byB0aGUgY29tcGlsZXIgYXMgc2VsZG9tIGFzIHBvc3NpYmxlLiBCdXQgSSBjYW4gc2VlIHRoZSBm cmVlZG9tDQo+ID4gcHJvdmlkZWQgYnkNCj4gPiB0YWtpbmcgYSBwb2ludGVyIHRvIHNvbWV0aGlu ZyBhbmQgY2FzdCBpdCBpdCBydGVfaW50MTI4X3QgcHRyIGluIHRoZSBjYWxsDQo+ID4gdG/CoHJ0 ZV9hdG9taWMxMjhfY21wc2V0KCkuDQo+ID4gDQo+ID4gV291bGQgcHJlZmVyIGEgbmFtZSB0aGF0 IGlzIG1vcmUgc2ltaWxhciB0byBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlKCkuDQo+ID4gRS5n Lg0KPiA+IHJ0ZV9hdG9taWMxMjhfY29tcGFyZV9leGNoYW5nZSgpIChvciBwZXJoYXBzIGp1c3Qg cnRlX2F0b21pYzEyOF9jbXB4Y2hnKT8NCj4gPiBBbGwgdGhlIHJ0ZV9hdG9taWNYWF9jbXBzZXQo KSBmdW5jdGlvbnMgZG8gbm90IHRha2UgYW55IG1lbW9yeSBvcmRlcg0KPiA+IHBhcmFtZXRlcnMu DQo+ID4gRnJvbSBhbiBBcm0gcGVyc3BlY3RpdmUsIHdlIGFyZSBub3QgaGFwcHkgd2l0aCB0aGF0 Lg0KPiBTaW5jZSB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIGJvb2xlYW4gc3VjY2VzcyB2YWx1ZSwg aXNuJ3QgY29tcGFyZS1hbmQtc2V0IHRoZQ0KPiBhcHByb3ByaWF0ZSB0ZXJtPw0KSSB3YXMgdGhp bmtpbmcgb2YgdGhlIG1lbW9yeSBvcmRlcmluZyBwYXJhbWV0ZXJzIHRoYXQgX19hdG9taWNfeHh4 IGJ1aWx0aW5zIGhhdmUNCmFuZCB3ZSB3YW50IChmcm9tIGFuIEFybSBwZXJzcGVjdGl2ZSkuDQoN CkdDQyBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlIGFsc28gcmV0dXJucyBhIGJvb2xlYW4uDQpo dHRwczovL2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2NjL18wMDVmXzAwNWZhdG9taWMtQnVpbHRp bnMuaHRtbA0KYm9vbCBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX24gKHR5cGUgKnB0ciwgdHlw ZSAqZXhwZWN0ZWQsIHR5cGUgZGVzaXJlZCwgYm9vbA0Kd2VhaywgaW50IHN1Y2Nlc3NfbWVtb3Jk ZXIsIGludCBmYWlsdXJlX21lbW9yZGVyKQ0KYm9vbCBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdl ICh0eXBlICpwdHIsIHR5cGUgKmV4cGVjdGVkLCB0eXBlICpkZXNpcmVkLCBib29sDQp3ZWFrLCBp bnQgc3VjY2Vzc19tZW1vcmRlciwgaW50IGZhaWx1cmVfbWVtb3JkZXIpDQoNCnJ0ZV9hdG9taWMx MjhfY29tcGFyZV9leGNoYW5nZShydGVfaW50MTI4X3QgKmRzdCwgY29uc3QgcnRlX2ludDEyOF90 ICpleHAsIGNvbnN0DQpydGVfaW50MTgyX3QgKnNyYywgYm9vbCB3ZWFrLCBpbnQgbW9fc3VjY2Vz cywgaW50IG1vX2ZhaWx1cmUpOw0KDQo+IA0KPiA+IA0KPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4g PiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ ID4gPiArCQnCoMKgwqDCoMKgdW5zaWduZWQgaW50IHdlYWssDQo+ID4gPiA+ID4gKwkJwqDCoMKg wqDCoGVudW0gcnRlX2F0b21pY19tZW1tb2RlbF90IHN1Y2Nlc3MsDQo+ID4gPiA+ID4gKwkJwqDC oMKgwqDCoGVudW0gcnRlX2F0b21pY19tZW1tb2RlbF90IGZhaWx1cmUpIHsNCj4gPiA+ID4gPiAr CVJURV9TRVRfVVNFRCh3ZWFrKTsNCj4gPiA+ID4gPiArCVJURV9TRVRfVVNFRChzdWNjZXNzKTsN Cj4gPiA+ID4gPiArCVJURV9TRVRfVVNFRChmYWlsdXJlKTsNCj4gPiA+ID4gPiArCXVpbnQ4X3Qg cmVzOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArCWFzbSB2b2xhdGlsZSAoDQo+ID4gPiA+ID4g KwkJwqDCoMKgwqDCoMKgTVBMT0NLRUQNCj4gPiA+ID4gPiArCQnCoMKgwqDCoMKgwqAiY21weGNo ZzE2YiAlW2RzdF07Ig0KPiA+ID4gPiA+ICsJCcKgwqDCoMKgwqDCoCIgc2V0ZSAlW3Jlc10iDQo+ ID4gPiA+ID4gKwkJwqDCoMKgwqDCoMKgOiBbZHN0XSAiPW0iIChkc3QtPnZhbFswXSksDQo+ID4g PiA+ID4gKwkJCSI9QSIgKGV4cC0+dmFsWzBdKSwNCj4gPiA+ID4gPiArCQkJW3Jlc10gIj1yIiAo cmVzKQ0KPiA+ID4gPiA+ICsJCcKgwqDCoMKgwqDCoDogImMiIChzcmMtPnZhbFsxXSksDQo+ID4g PiA+ID4gKwkJCSJiIiAoc3JjLT52YWxbMF0pLA0KPiA+ID4gPiA+ICsJCQkibSIgKGRzdC0+dmFs WzBdKSwNCj4gPiA+ID4gPiArCQkJImQiIChleHAtPnZhbFsxXSksDQo+ID4gPiA+ID4gKwkJCSJh IiAoZXhwLT52YWxbMF0pDQo+ID4gPiA+ID4gKwkJwqDCoMKgwqDCoMKgOiAibWVtb3J5Iik7DQo+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJcmV0dXJuIHJlczsNCj4gPiA+ID4gPiArfQ0KPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiDCoCNlbmRpZiAvKiBfUlRFX0FUT01JQ19YODZfNjRfSF8gKi8gZGlm ZiAtLWdpdA0KPiA+ID4gPiA+IGEvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvZ2VuZXJp Yy9ydGVfYXRvbWljLmgNCj4gPiA+ID4gPiBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRl L2dlbmVyaWMvcnRlX2F0b21pYy5oDQo+ID4gPiA+ID4gaW5kZXggYjk5YmE0Njg4Li44ZDYxMmQ1 NjYgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUv Z2VuZXJpYy9ydGVfYXRvbWljLmgNCj4gPiA+ID4gPiArKysgYi9saWIvbGlicnRlX2VhbC9jb21t b24vaW5jbHVkZS9nZW5lcmljL3J0ZV9hdG9taWMuaA0KPiA+ID4gPiA+IEBAIC0xNCw2ICsxNCw3 IEBADQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gwqAjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gPiA+ ID4gwqAjaW5jbHVkZSA8cnRlX2NvbW1vbi5oPg0KPiA+ID4gPiA+ICsjaW5jbHVkZSA8cnRlX2Nv bXBhdC5oPg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IMKgI2lmZGVmIF9fRE9YWUdFTl9fDQo+ID4g PiA+ID4gDQo+ID4gPiA+ID4gQEAgLTEwODIsNCArMTA4Myw2OCBAQCBzdGF0aWMgaW5saW5lIHZv aWQNCj4gPiA+ID4gPiBydGVfYXRvbWljNjRfY2xlYXIocnRlX2F0b21pYzY0X3QNCj4gPiA+ID4g PiAqdikNCj4gPiA+ID4gPiDCoH0NCj4gPiA+ID4gPiDCoCNlbmRpZg0KPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ICsvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAxMjggYml0IGF0b21pYyBvcGVyYXRp b25zDQo+ID4gPiA+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiA+IC0qLw0K PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArLyoqDQo+ID4gPiA+ID4gKyAqIDEyOC1iaXQgaW50ZWdl ciBzdHJ1Y3R1cmUuDQo+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7 DQo+ID4gPiA+ID4gKwl1aW50NjRfdCB2YWxbMl07DQo+ID4gPiA+ID4gK30gX19ydGVfYWxpZ25l ZCgxNikgcnRlX2ludDEyOF90Ow0KPiA+ID4gPiBTbyB3ZSBjYW4ndCB1c2UgX19pbnQxMjg/DQo+ ID4gPiA+IA0KPiA+ID4gSSdsbCBwdXQgaXQgaW4gYSB1bmlvbiB3aXRoIHZhbFsyXSwgaW4gY2Fz ZSBhbnkgaW1wbGVtZW50YXRpb25zIHdhbnQNCj4gPiA+IHRvIHVzZSBpdC4NCj4gPiBUaGlua2lu ZyBvbiB0aGlzIG9uZSBtb3JlIHRpbWUsIHNpbmNlIHRoZSBpbmxpbmUgYXNtIGZ1bmN0aW9ucyAo ZS5nLiBmb3INCj4gPiB4ODZfNjQNCj4gPiBjbXB4Y2hnMTZiIGFuZCBmb3IgQUFyY2g2NCBMRFhQ L1NUWFApIGFueXdheSB3aWxsIHVzZSA2NC1iaXQgcmVnaXN0ZXJzLCBpdA0KPiA+IG1ha2VzIG1v c3Qgc2Vuc2UgdG8gbWFrZSBydGVfaW50MTI4X3QgYSBzdHJ1Y3Qgb2YgMng2NGIuIFRoZSBxdWVz dGlvbiBpcw0KPiA+IHdoZXRoZXIgdG8gdXNlIGFuIGFycmF5IGxpa2UgYWJvdmUgb3IgYSBzdHJ1 Y3Qgd2l0aCB0d28gZWxlbWVudHMgKHdoaWNoIEkNCj4gPiBub3JtYWxseSBkbyBpbnRlcm5hbGx5 KS4gQ2FuIHlvdSBjb21wYXJlIGNvZGUgZ2VuZXJhdGlvbiB3aXRoIHRoZSBmb2xsb3dpbmcNCj4g PiBkZWZpbml0aW9uPw0KPiA+IHR5cGVkZWYgc3RydWN0IHsNCj4gPiDCoCDCoCDCoCDCoCB1aW50 NjRfdCBsbywgaGk7DQo+ID4gfSBfX3J0ZV9hbGlnbmVkKDE2KSBydGVfaW50MTI4X3Q7DQo+ID4g DQo+IEludGVyZXN0aW5nbHksIHRoYXQgbWFkZSBubyBkaWZmZXJlbmNlIGluIHRoZSBQQlYgY29k ZSBidXQgYWRkZWQgbW9yZQ0KPiBpbnN0cnVjdGlvbnMgb3ZlcmFsbCB0byBQQlI6DQo+IFBCVjog MTAwIGluc3RzIGZvciBwdXNoLCA5NyBpbnN0cyBmb3IgcG9wDQo+IFBCUjogMTAwIGluc3RzIGZv ciBwdXNoLCA4MyBpbnN0cyBmb3IgcG9wDQpJIHRoaW5rIHdlIGxlYXJuZWQgc29tZXRoaW5nIGhl cmUuLi4gVHJ5aW5nIHRvIHVuZGVyc3RhbmQgZXhhY3RseSB3aGF0LiBCdXQgSQ0KdGhpbmsgdGhp cyByZXN1bHQgc2V0dGxlcyBpdC4NCg0KSSBzaG91bGQgdGVzdCB0aGUgZGlmZmVyZW50IGFsdGVy bmF0aXZlcyBvbiBBcm0sIGRvZXMgY29kZSBnZW5lcmF0aW9uIGJlaGF2ZSB0aGUNCnNhbWUgYXMg Zm9yIHg4Nl82NC4NCg0KPiANCj4gPiANCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBUaGFua3MsDQo+ ID4gPiBHYWdlDQo+ID4gPiANCj4gPiA+IFtzbmlwXQ0KPiA+IC0tDQo+ID4gT2xhIExpbGplZGFo bCwgTmV0d29ya2luZyBTeXN0ZW0gQXJjaGl0ZWN0LCBBcm0gUGhvbmUgKzQ2NzA2ODY2MzczLCBT a3lwZQ0KPiA+IG9sYS5saWxqZWRhaGwNCi0tIA0KT2xhIExpbGplZGFobCwgTmV0d29ya2luZyBT eXN0ZW0gQXJjaGl0ZWN0LCBBcm0NClBob25lICs0NjcwNjg2NjM3MywgU2t5cGUgb2xhLmxpbGpl ZGFobA0KDQo=