Received: by 10.213.65.68 with SMTP id h4csp30833imn; Mon, 12 Mar 2018 16:18:28 -0700 (PDT) X-Google-Smtp-Source: AG47ELupJZ0tpfIBfwySKyhESLW7xJUX/gv2WzC28trJoRdfU3bsfvLJvWk3jCv9wG/mWPwXohwp X-Received: by 10.98.34.143 with SMTP id p15mr9636731pfj.101.1520896708255; Mon, 12 Mar 2018 16:18:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520896708; cv=none; d=google.com; s=arc-20160816; b=0WdiA2bCX6HZ/lGYlHpnbSy9R6j5Qc9D8l5iAepNwUIOhKaTi7PfXG1So6upftIzpI n0KWtuBjcWA26LILp6QsE2R1G8ebkB/AvS0LyK7z0Jzho4gFOIsjnSRgsFSNHpCERcM3 g62mXtjaOo0ulmjn3RurZHQjgFoMmeyGMyeznlQYlFPCv8x3sM7zCEGHnzK58HEspme0 Z3XTLtanhs88pQXt7piY40ip42KypP9si7/o3ARN7Zoli8S8wdn+1+C8+R92pJAcA2Kr 7Lwwb7uUSbMwc0nN0AjuVMYsDpJt19rZUaYoYNYGfh1bXs/CLn4KH8ZN9IPFXUCPzx1g XeSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :dlp-reaction:dlp-version:dlp-product:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:arc-authentication-results; bh=z0jCBw5GtB/HhNIsKvr7dUdsDNTlRDPpZ/pTYPHWNe8=; b=LL+rrpFTqzgFVtMpOsJekUfQ1ECgfKLmH6gx+ZdjfH12q0oUQEdQGdvzQsjkde2G4/ pNQ9N2eKUM3dT2djiFWXNwz53T8vtppm2v89hRAOm5CaEyEy10sXETzenl6w7GFmarnd SDQhpdYqedm5EaLojXoT7yH+wEUT/+rsSQmJsTuH/HHe8aeoOJXOH+lMkgDqFmjC55pr OIklO2QSMp8FgL2TVCKks21Xv5MZRBJqxPu64Vyq7RBGYrtzIsdtZZVwr0MneI07zPz1 b9tbLcNt8JN39L+koM8Je+dmvtkywPyaxcJGSuvi99JmGH7ZI9aF+dcp0LEt7Q8NxPtU VPiA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z124si5640264pgb.677.2018.03.12.16.18.13; Mon, 12 Mar 2018 16:18:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751538AbeCLXRT (ORCPT + 99 others); Mon, 12 Mar 2018 19:17:19 -0400 Received: from mga07.intel.com ([134.134.136.100]:20941 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751442AbeCLXRS (ORCPT ); Mon, 12 Mar 2018 19:17:18 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Mar 2018 16:17:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,463,1515484800"; d="scan'208";a="33275822" Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by FMSMGA003.fm.intel.com with ESMTP; 12 Mar 2018 16:17:17 -0700 Received: from orsmsx111.amr.corp.intel.com (10.22.240.12) by ORSMSX105.amr.corp.intel.com (10.22.225.132) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 12 Mar 2018 16:17:16 -0700 Received: from orsmsx115.amr.corp.intel.com ([169.254.4.84]) by ORSMSX111.amr.corp.intel.com ([169.254.12.253]) with mapi id 14.03.0319.002; Mon, 12 Mar 2018 16:17:16 -0700 From: "Keller, Jacob E" To: James Hogan CC: "Michael, Alice" , Guenter Roeck , Ralf Baechle , "linux-mips@linux-mips.org" , "linux-kernel@vger.kernel.org" , "Kirsher, Jeffrey T" , Shannon Nelson Subject: RE: [RFC PATCH] MIPS: Provide cmpxchg64 for 32-bit builds Thread-Topic: [RFC PATCH] MIPS: Provide cmpxchg64 for 32-bit builds Thread-Index: AQHTpFslw+crNM24eUSynxqRPTqrYKOh97eAgAJsOTCAAArEUIApbQeA//+LAfA= Date: Mon, 12 Mar 2018 23:17:16 +0000 Message-ID: <02874ECE860811409154E81DA85FBB5882CF60E8@ORSMSX115.amr.corp.intel.com> References: <1518475021-3337-1-git-send-email-linux@roeck-us.net> <20180212234201.GB4290@saruman> <20180212235655.GC5199@roeck-us.net> <02874ECE860811409154E81DA85FBB5882CDAA1C@ORSMSX115.amr.corp.intel.com> <20180312231211.GF21642@saruman> In-Reply-To: <20180312231211.GF21642@saruman> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2QwNTcyNmYtMGViNC00NmIwLTkxMGMtNzAwMWYyZjljZDY5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6ImdodlRVWThORk4rcXBYaUhEMHIrYzYzaUJvTWdsV0ZyT2ZNMmxiU0FYSkE9In0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.22.254.138] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmFtZXMgSG9nYW4gW21h aWx0bzpqaG9nYW5Aa2VybmVsLm9yZ10NCj4gU2VudDogTW9uZGF5LCBNYXJjaCAxMiwgMjAxOCA0 OjEyIFBNDQo+IFRvOiBLZWxsZXIsIEphY29iIEUgPGphY29iLmUua2VsbGVyQGludGVsLmNvbT4N Cj4gQ2M6IE1pY2hhZWwsIEFsaWNlIDxhbGljZS5taWNoYWVsQGludGVsLmNvbT47IEd1ZW50ZXIg Um9lY2sgPGxpbnV4QHJvZWNrLQ0KPiB1cy5uZXQ+OyBSYWxmIEJhZWNobGUgPHJhbGZAbGludXgt bWlwcy5vcmc+OyBsaW51eC1taXBzQGxpbnV4LW1pcHMub3JnOyBsaW51eC0NCj4ga2VybmVsQHZn ZXIua2VybmVsLm9yZzsgS2lyc2hlciwgSmVmZnJleSBUIDxqZWZmcmV5LnQua2lyc2hlckBpbnRl bC5jb20+Ow0KPiBTaGFubm9uIE5lbHNvbiA8c2hhbm5vbi5uZWxzb25Ab3JhY2xlLmNvbT4NCj4g U3ViamVjdDogUmU6IFtSRkMgUEFUQ0hdIE1JUFM6IFByb3ZpZGUgY21weGNoZzY0IGZvciAzMi1i aXQgYnVpbGRzDQo+IA0KPiBPbiBXZWQsIEZlYiAxNCwgMjAxOCBhdCAwOTozNjozM1BNICswMDAw LCBLZWxsZXIsIEphY29iIEUgd3JvdGU6DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4gRnJvbTogTWljaGFlbCwgQWxpY2UNCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgRmVi cnVhcnkgMTQsIDIwMTggMTowMyBQTQ0KPiA+ID4gVG86IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJv ZWNrLXVzLm5ldD47IEphbWVzIEhvZ2FuDQo+IDxqaG9nYW5Aa2VybmVsLm9yZz47DQo+ID4gPiBL ZWxsZXIsIEphY29iIEUgPGphY29iLmUua2VsbGVyQGludGVsLmNvbT4NCj4gPiA+IENjOiBSYWxm IEJhZWNobGUgPHJhbGZAbGludXgtbWlwcy5vcmc+OyBsaW51eC1taXBzQGxpbnV4LW1pcHMub3Jn OyBsaW51eC0NCj4gPiA+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IEtpcnNoZXIsIEplZmZyZXkg VCA8amVmZnJleS50LmtpcnNoZXJAaW50ZWwuY29tPjsNCj4gU2hhbm5vbg0KPiA+ID4gTmVsc29u IDxzaGFubm9uLm5lbHNvbkBvcmFjbGUuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtSRkMgUEFU Q0hdIE1JUFM6IFByb3ZpZGUgY21weGNoZzY0IGZvciAzMi1iaXQgYnVpbGRzDQo+ID4gPg0KPiA+ ID4gQXMgaGFzIHByZXZpb3VzbHkgYmVlbiBzYWlkLCB3ZSdyZSBnb2luZyB0byBiZSByZW1vdmlu ZyB0aGUgbmVlZCBmb3INCj4gY21weGNoZzY0Lg0KPiA+ID4gQnV0IGl0IHRha2VzIGEgbGl0dGxl IGJpdCBvZiB0aW1lIGFuZCB3b3JrIHRvIGRvIHNvLiAgSSdtIGFkZGluZyB0aGUgZGV2IHRoYXQg aXMNCj4gdGFraW5nDQo+ID4gPiBjYXJlIG9mIHRoZSB3b3JrIGJhY2sgb250byB0aGlzIGVtYWls IHRocmVhZCBhcyB3ZWxsIHNvIGhlIGNhbiBzZWUgYW55DQo+IGNvbmNlcm5zIHdpdGgNCj4gPiA+ IGl0Lg0KPiA+ID4NCj4gPiA+IEFsaWNlDQo+ID4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+IEZyb206IEd1ZW50ZXIgUm9lY2sgW21haWx0bzpncm9lY2s3QGdtYWls LmNvbV0gT24gQmVoYWxmIE9mIEd1ZW50ZXINCj4gUm9lY2sNCj4gPiA+IFNlbnQ6IE1vbmRheSwg RmVicnVhcnkgMTIsIDIwMTggMzo1NyBQTQ0KPiA+ID4gVG86IEphbWVzIEhvZ2FuIDxqaG9nYW5A a2VybmVsLm9yZz4NCj4gPiA+IENjOiBSYWxmIEJhZWNobGUgPHJhbGZAbGludXgtbWlwcy5vcmc+ OyBsaW51eC1taXBzQGxpbnV4LW1pcHMub3JnOyBsaW51eC0NCj4gPiA+IGtlcm5lbEB2Z2VyLmtl cm5lbC5vcmc7IE1pY2hhZWwsIEFsaWNlIDxhbGljZS5taWNoYWVsQGludGVsLmNvbT47IEtpcnNo ZXIsDQo+IEplZmZyZXkgVA0KPiA+ID4gPGplZmZyZXkudC5raXJzaGVyQGludGVsLmNvbT47IFNo YW5ub24gTmVsc29uDQo+IDxzaGFubm9uLm5lbHNvbkBvcmFjbGUuY29tPg0KPiA+ID4gU3ViamVj dDogUmU6IFtSRkMgUEFUQ0hdIE1JUFM6IFByb3ZpZGUgY21weGNoZzY0IGZvciAzMi1iaXQgYnVp bGRzDQo+ID4gPg0KPiA+ID4gT24gTW9uLCBGZWIgMTIsIDIwMTggYXQgMTE6NDI6MDJQTSArMDAw MCwgSmFtZXMgSG9nYW4gd3JvdGU6DQo+ID4gPiA+IEhpIEd1ZW50ZXIsDQo+ID4gPiA+DQo+ID4g PiA+IE9uIE1vbiwgRmViIDEyLCAyMDE4IGF0IDAyOjM3OjAxUE0gLTA4MDAsIEd1ZW50ZXIgUm9l Y2sgd3JvdGU6DQo+ID4gPiA+ID4gU2luY2UgY29tbWl0IDYwZjQ4MWI5NzAzODYgKCJpNDBlOiBj aGFuZ2UgZmxhZ3MgdG8gdXNlIDY0IGJpdHMiKSwNCj4gPiA+ID4gPiB0aGUgaTQwZSBkcml2ZXIg dXNlcyBjbXB4Y2hnNjQoKS4gVGhpcyBjYXVzZXMgbWlwczphbGxtb2Rjb25maWcNCj4gPiA+ID4g PiBidWlsZHMgdG8gZmFpbCB3aXRoDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBkcml2ZXJzL25ldC9l dGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfZXRodG9vbC5jOg0KPiA+ID4gPiA+IAlJbiBmdW5jdGlv biAnaTQwZV9zZXRfcHJpdl9mbGFncyc6DQo+ID4gPiA+ID4gZHJpdmVycy9uZXQvZXRoZXJuZXQv aW50ZWwvaTQwZS9pNDBlX2V0aHRvb2wuYzo0NDQzOjI6IGVycm9yOg0KPiA+ID4gPiA+IAlpbXBs aWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnY21weGNoZzY0Jw0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gSW1wbGVtZW50IGEgcG9vci1tYW5zLXZlcnNpb24gb2YgY21weGNoZzY0KCkgdG8gZml4 IHRoZSBwcm9ibGVtIGZvcg0KPiA+ID4gPiA+IDMyLWJpdCBtaXBzIGJ1aWxkcy4gVGhlIGNvZGUg aXMgZGVyaXZlZCBmcm9tIHNwYXJjMzIsIGJ1dCBvbmx5IHVzZXMNCj4gPiA+ID4gPiBhIHNpbmds ZSBzcGlubG9jay4NCj4gPiA+ID4NCj4gPiA+ID4gV2lsbCB0aGlzIGJlIGltcGxlbWVuZWQgZm9y IGFsbCAzMi1iaXQgYXJjaGl0ZWN0dXJlcyB3aGljaCBhcmUNCj4gPiA+ID4gY3VycmVudGx5IG1p c3NpbmcgY21weGNoZzY0KCk/DQo+ID4gPiA+DQo+ID4gPiBObyBpZGVhLg0KPiA+ID4NCj4gPiA+ ID4gSWYgc28sIGFueSBwYXJ0aWN1bGFyIHJlYXNvbiBub3QgdG8gZG8gaXQgaW4gZ2VuZXJpYyBj b2RlPw0KPiA+ID4gPg0KPiA+ID4gQWdhaW4sIG5vIGlkZWEuIFdoZW4gdGhlIHByb2JsZW0gd2Fz IHByZXZpb3VzbHkgc2VlbiBvbiBzcGFyYzMyLCBpdCB3YXMNCj4gPiA+IGltcGxlbWVudGVkIHRo ZXJlLg0KPiA+ID4NCj4gPiA+ID4gSWYgbm90IHRoZW4gSSB0aGluayB0aGF0IGRyaXZlciBzaG91 bGQgYmUgZml4ZWQgdG8gZWl0aGVyIGRlcGVuZCBvbg0KPiA+ID4gPiBzb21lIGFwcHJvcHJpYXRl IEtjb25maWcgc3ltYm9sIG9yIHRvIG5vdCB1c2UgdGhpcyBBUEkgc2luY2UgaXQNCj4gPiA+ID4g Y2xlYXJseSBpc24ndCBwb3J0YWJsZSBhdCB0aGUgbW9tZW50Lg0KPiA+ID4gPg0KPiA+ID4gR29v ZCBwb2ludC4NCj4gPiA+DQo+ID4gPiA+IFNlZSBhbHNvIFNoYW5ub24ncyBjb21tZW50IGFib3V0 IHRoYXQgc3BlY2lmaWMgZHJpdmVyOg0KPiA+ID4gPiBodHRwczovL2xrbWwua2VybmVsLm9yZy9y L2U3YzkzNGQ3LWU1ZjQtZWUxYi0wNjQ3LWMzMWE5OGQ5ZTk0NEBvcmFjbGUuDQo+ID4gPiA+IGNv bQ0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+IFdlbGwsIHRoaXMgd2FzIGFuIFJGQyBvbmx5LiBGZWVs IGZyZWUgdG8gaWdub3JlIGl0Lg0KPiA+ID4NCj4gPiA+IEZXSVcsIHRoaXMgaXMgdGhlIHNlY29u ZCB0aW1lIHRoYXQgdGhlIGNhbGwgd2FzIGludHJvZHVjZWQgaW4gdGhlIGk0MCBkcml2ZXIuDQo+ ID4gPiBBZnRlciB0aGUgZmlyc3QgdGltZSB0aGUgY29kZSB3YXMgcmV3cml0dGVuIHRvIGF2b2lk IHRoZSBwcm9ibGVtLCBidXQgbm93IGl0DQo+IGNhbWUNCj4gPiA+IGJhY2suIFNvbWVvbmUgbXVz dCByZWFsbHkgbGlrZSBpdCA7LSkuIEZvciBteSBwYXJ0LCBJIG1heSBqdXN0IGJsYWNrbGlzdCB0 aGUNCj4gb2ZmZW5kaW5nDQo+ID4gPiBkcml2ZXIgaW4gbXkgYnVpbGRzOyB0aGF0IGlzIGxlc3Mg dGhhbiBwZXJmZWN0LCBidXQgbXVjaCBlYXNpZXIgdGhhbiBoYXZpbmcgdG8NCj4gZGVhbCB3aXRo DQo+ID4gPiB0aGUgc2FtZSBwcm9ibGVtIG92ZXIgYW5kIG92ZXIgYWdhaW4uIEd1ZXNzIEknbGwg d2FpdCBmb3IgYSB3aGlsZSBhbmQgZG8ganVzdA0KPiB0aGF0IGlmDQo+ID4gPiB0aGUgcHJvYmxl bSBpc24ndCBmaXhlZCBpbiBhIGxhdGVyIFJDLg0KPiA+ID4NCj4gPiA+IEd1ZW50ZXINCj4gPg0K PiA+IEhpLA0KPiA+DQo+ID4gSSd2ZSBiZWVuIHdvcmtpbmcgb24gcmUtd3JpdGluZyBzb21lIG9m IHRoZSBjb2RlIHNvIHRoYXQgdGhlIG5lZWQgZm9yIGENCj4gY29tcGFyZS1hbmQtZXhjaGFuZ2Ug aW4gdGhlIGk0MGVfc2V0X3ByaXZfZmxhZ3MoKSBpcyBub3QgbmVjZXNzYXJ5LiBUaGlzIG1vc3Rs eQ0KPiBpbnZvbHZlZCBtb3ZpbmcgbWFueSBmbGFncyBvdXQgaW50byBhbiBhdG9taWMgYml0b3Bz IGZpZWxkIGluc3RlYWQsIGl0IHNob3VsZCBiZQ0KPiBwb3N0ZWQgdG8gSVdMIHNvb24uDQo+IA0K PiBBbnkgdXBkYXRlIG9uIHRoaXM/IFdpbGwgYSBmaXggdG8gdGhlIGRyaXZlciBtYWtlIGl0IGlu dG8gNC4xNiBvciBpcyBpdA0KPiBnb2luZyB0byBiZSB0b28gYmlnIGEgY2hhbmdlPyANCg0KSSBh bSBub3Qgc3VyZSBpZiBpdCBjYW4gbWFrZSBpdCBpbnRvIDQuMTYsIGl0J3MgYmFzaWNhbGx5IGEg YnVuY2ggb2YgcGF0Y2hlcyB0byBtaWdyYXRlIHRoaW5ncyBpbiB0aGUgcGYtPmZsYWdzIHZhcmlh YmxlIHNvIHRoYXQgdGhlIGZsYWdzIGlzIG9ubHkgbW9kaWZpZWQgd2hpbGUgdW5kZXIgcnRubF9s b2NrLiBUaHVzLCBhbnkgcnVudGltZSBmbGFncyB3aGljaCBjaGFuZ2UgYXQgYW55IHRpbWUgd2l0 aG91dCB0aGUgbG9jayB3aWxsIGJlIG1vdmVkIHRvIHN0YXRlIGJpdHMuDQoNClRoZSB0cmlja3kg cGFydCBpcyB0aGF0IGJhY2twb3J0aW5nIGNhbiBiZSB0cm91Ymxlc29tZSBzaW5jZSBmbGFncyBh cmUgYWNjZXNzZWQgaW4gYSBsb3Qgb2YgcGxhY2VzLiANCg0KVGhlIHBhdGNoIHNlcmllcyBzaG91 bGQgYmUgcHVibGlzaGVkIHRvIGl3bCB3aXRoaW4gdGhpcyB3ZWVrIChUaGFua3MgQWxpY2UhKQ0K DQpJZiB3ZSBqdXN0IHJlbW92ZSB0aGUgY21weGNoZyB3aXRob3V0IGRvaW5nIHRoZSBmbGFnIGNo YW5nZXMgd2Ugb3BlbiBvdXJzZWx2ZXMgYmFjayB1cCB0byB0aGUgcmlzayBvZiB0aGUgZmxhZ3Mg YmVpbmcgbW9kaWZpZWQgc2ltdWx0YW5lb3VzbHkgYW5kIGNhdXNpbmcgZGlmZmljdWx0IHRvIGRl YnVnICJmbGFnIHNpbGVudGx5IGRpc2FibGVkL2VuYWJsZWQiIGlzc3Vlcy4gSW4gcHJhY3RpY2Ug dGhpcyByYWNlIHdpbmRvdyBpcyBwcmV0dHkgdGlueSB0aG91Z2guDQoNClRoYW5rcywNCkpha2UN Cg0KPiANCj4gQXMgZmFyIGFzIEkgY2FuIHRlbGwgZnJvbSBncmVwcGluZyBhcm91bmQsIG9mIHRo ZSBhcmNoaXRlY3R1cmVzIHdoaWNoDQo+IHN1cHBvcnQgMzItYml0IFNNUCB3aXRoIFBDSSwgdGhl c2Ugb25lcyBpbXBsZW1lbnQgY21weGNoZzY0IG9uIDMyLWJpdDoNCj4gDQo+IGFyY2gvYXJtDQo+ IGFyY2gvaWE2NA0KPiBhcmNoL3g4Ng0KPiBhcmNoL3Jpc2N2IChibGluZGx5IGltcGxlbWVudHMg dXNpbmcgNjQtYml0IGluc3RydWN0aW9ucywgYnJva2VuPykNCj4gYXJjaC9wYXJpc2MgKHdpdGgg c3BpbmxvY2spDQo+IGFyY2gvc3BhcmMgKHdpdGggc3BpbmxvY2spDQo+IA0KPiBBbmQgdGhlc2Ug ZG9uJ3Q6DQo+IA0KPiBhcmNoL2FyYw0KPiBhcmNoL21pcHMNCj4gYXJjaC9wb3dlcnBjDQo+IGFy Y2gvc2gNCj4gYXJjaC94dGVuc2ENCj4gDQo+IChJJ3ZlIGV4Y2x1ZGVkIGFyY2hlcyB3aGljaCBh cmUgYWxyZWFkeSBiZWluZyByZW1vdmVkKQ0KPiANCj4gQ2hlZXJzDQo+IEphbWVzDQo=