From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Neutral (access neither permitted nor denied) identity=mailfrom; client-ip=104.47.40.110; helo=nam03-co1-obe.outbound.protection.outlook.com; envelope-from=eugene@hp.com; receiver=edk2-devel@lists.01.org Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0110.outbound.protection.outlook.com [104.47.40.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 210B12205B91B for ; Thu, 11 Jan 2018 07:25:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=HP.onmicrosoft.com; s=selector1-hp-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=LS/Jmp8oWQD63iy2Hl+2eOQacFlde9lSMz43UA18D88=; b=BJJPmSuqmQD2tIo9YkNQGu6knji59ZPlZf9z65rjv16jtc71KbP6R7WyeGEjFYlHpOisnNT4TnoxJvahgZ7xEQb0okaEvnYH1kxtwcH4xXXN8NiDF4Xsnmp+KKkt/fjN/CRwIt6SKxZJo4ezfeu/IVDFFHqCSXdhaRqhNW4rE+g= Received: from DF4PR8401MB0619.NAMPRD84.PROD.OUTLOOK.COM (10.169.84.141) by DF4PR8401MB0620.NAMPRD84.PROD.OUTLOOK.COM (10.169.84.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Thu, 11 Jan 2018 15:30:50 +0000 Received: from DF4PR8401MB0619.NAMPRD84.PROD.OUTLOOK.COM ([fe80::6060:641:c49b:1481]) by DF4PR8401MB0619.NAMPRD84.PROD.OUTLOOK.COM ([fe80::6060:641:c49b:1481%18]) with mapi id 15.20.0407.009; Thu, 11 Jan 2018 15:30:50 +0000 From: "Cohen, Eugene" To: Ard Biesheuvel , Pete Batard CC: "edk2-devel@lists.01.org" , "Gao, Liming" Thread-Topic: [PATCH v4 4/6] ArmPkg/Library/CompilerIntrinsicsLib: Enable VS2017/ARM builds Thread-Index: AQHTisliZOwQS9cUJEOqMXtc4OfAQqNuytZg Date: Thu, 11 Jan 2018 15:30:50 +0000 Message-ID: References: <20180110162644.11208-1-pete@akeo.ie> <20180110162644.11208-5-pete@akeo.ie> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=eugene@hp.com; x-originating-ip: [15.65.252.11] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DF4PR8401MB0620; 7:+gfsEqLGMcoe2gsZ14cPqkUjQlMgtsRiqeUzijyWYcbcMhA8F9M/4g7QKNq0VdhovNgRuxlVZYoh8CPoJYuvpiuaBzbRdQ/tnYXPZ4Py4V4w8zq9CuC4+qrhc+OtutAkpoNbBo4SmXEILIp4cJjhnWW30dbSyg305e5xF0U5mx+n/ZHZerDfcchk1qU0wt20pP/b9lLTRmPYpb0g8V4pSDBoXLmNhrn+L9LiLFfGt5JwNVKDLrh4RzC9+h0+0QUo x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 41114510-af92-4bcf-ed36-08d559084b79 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020067)(4652020)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:DF4PR8401MB0620; x-ms-traffictypediagnostic: DF4PR8401MB0620: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231023)(944501134)(3002001)(6041268)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:DF4PR8401MB0620; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:DF4PR8401MB0620; x-forefront-prvs: 0549E6FD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(366004)(376002)(346002)(39380400002)(39860400002)(6602003)(189003)(199004)(5250100002)(54906003)(2900100001)(110136005)(316002)(33656002)(8936002)(66066001)(81156014)(81166006)(68736007)(25786009)(478600001)(105586002)(6246003)(86362001)(14454004)(53936002)(15188155005)(4326008)(16799955002)(2906002)(106356001)(7736002)(3280700002)(8676002)(6306002)(5660300001)(9686003)(99286004)(6116002)(76176011)(305945005)(55016002)(3846002)(74316002)(97736004)(7696005)(229853002)(3660700001)(6436002)(53376002)(6506007)(966005)(102836004)(2950100002)(59450400001); DIR:OUT; SFP:1102; SCL:1; SRVR:DF4PR8401MB0620; H:DF4PR8401MB0619.NAMPRD84.PROD.OUTLOOK.COM; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: hp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: EEyKaoJhuGxIezInon9hZ1anhCTI/ex9fkVib/g5mnSmX7k7FQF2YDzf5K+/io9B1M7H/fMUeXnBwgjheuY0Mg== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41114510-af92-4bcf-ed36-08d559084b79 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jan 2018 15:30:50.2591 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ca7981a2-785a-463d-b82a-3db87dfc3ce6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DF4PR8401MB0620 Subject: Re: [PATCH v4 4/6] ArmPkg/Library/CompilerIntrinsicsLib: Enable VS2017/ARM builds X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jan 2018 15:25:39 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQo+ID4gSW50cm9kdWNlIENSVCBhc3NlbWJseSByZXBsYWNlbWVudHMgZm9yIF9fcnRfc2Rpdiwg X19ydF91ZGl2LA0KPiA+IF9fcnRfdWRpdjY0LCBfX3J0X3NkaXY2NCwgX19ydF9zcnNoIChieSBy ZXVzaW5nIHRoZSBSVkNUIGNvZGUpIGFzIHdlbGwNCj4gPiBhcyBtZW1jcHkgYW5kIG1lbXNldC4N Cj4gPiBGb3IgTVNGVCBjb21wYXRpYmlsaXR5LCBzb21lIG9mIHRoZSBjb2RlIG5lZWRzIHRvIGJl IGV4cGxpY2l0bHkgZm9yY2VkDQo+ID4gdG8gQVJNLCBhbmQgdGhlIC9vbGRpdCBhc3NlbWJseSBm bGFnIG5lZWRzIHRvIGJlIGFkZGVkLg0KPiA+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5v Q29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6IFBldGUg QmF0YXJkIDxwZXRlQGFrZW8uaWU+DQo+IA0KPiBUaGlzIGxvb2tzIGZpbmUgdG8gbWUgYnV0IEkg aGF2ZW4ndCBiZWVuIGFibGUgdG8gdGVzdCBpdC4NCj4gDQo+IFJldmlld2VkLWJ5OiBBcmQgQmll c2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gDQo+IEV1Z2VuZTogYW55IGNv bW1lbnRzIHJlZ2FyZGluZyB0aGUgY2hhbmdlcyB0byBSVkNUIGNvZGU/DQoNCkkndmUgYmVlbiBh d2F5IGluIExpbnV4IGxhbmQgZm9yIGEgd2hpbGUsIGl0J3MgbmljZSB0aGF0IHRoZSBkYXkgSSBj YXRjaCB1cCBvbiBteSBlZGsyLWRldmVsIGJhY2tsb2cgSSBzZWUgbXkgbmFtZSEgOikNCg0KT25l IGNvbmNlcm4gZm9yIFJWQ1QgaXMgdGhhdCBldmVyeSBmdW5jdGlvbiBpcyBpbiBpdHMgb3duIHNl Y3Rpb24gdG8gZW5hYmxlIHByb3BlciBkZWFkIGNvZGUgcmVtb3ZhbC4gIFRoaXMgaXMgYWRkcmVz c2VkIHdpdGggdGhpcyBtYWNybzoNCg0KICBNQUNSTw0KICBSVkNUX0FTTV9FWFBPUlQgJGZ1bmMN CiAgICBFWFBPUlQgICRmdW5jDQogICAgQVJFQSBzXyRmdW5jLCBDT0RFLCBSRUFET05MWQ0KJGZ1 bmMNCiAgTUVORA0KDQpub3RlIHRoZSBBUkVBIGRpcmVjdGl2ZSAtIHRoaXMgbWFrZXMgYSBzZWN0 aW9uIHBlciBmdW5jdGlvbi4NCg0KUGV0ZSdzIHBhdGNoc2V0IHJlbW92ZXMgdGhlc2UgbWFjcm9z IHdoaWNoIGJyZWFrcyBkZWFkIGNvZGUgcmVtb3ZhbC4NCg0KUGxlYXNlIHJlc3RvcmUgdGhlc2Ug bWFjcm9zIGZvciBhdCBsZWFzdCBSVkNUIGFuZCBwbGVhc2UgdmVyaWZ5IHRoYXQgdGhlIFZTMjAx NyBwYXRoIGRvZXMgYXBwcm9wcmlhdGUgZGVhZCBjb2RlIHJlbW92YWwgZm9yIHRoZXNlIGFzc2Vt Ymx5IGZ1bmN0aW9ucy4NCg0KVGhhbmtzIQ0KDQpFdWdlbmUNCg0KPiANCj4gDQo+ID4gLS0tDQo+ ID4gIEFybVBrZy9MaWJyYXJ5L0NvbXBpbGVySW50cmluc2ljc0xpYi9Bcm0vZGl2LmFzbSAgICAg ICAgICAgICAgIHwgNDMNCj4gKysrKysrKysrKysrKysrKystLS0NCj4gPiAgQXJtUGtnL0xpYnJh cnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL0FybS9sZGl2bW9kLmFzbSAgICAgICAgICAgfCA0MA0K PiArKysrKysrKysrKysrLS0tLS0NCj4gPiAgQXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5z aWNzTGliL0FybS9sbHNyLmFzbSAgICAgICAgICAgICAgfCAyMiArKysrKy0tLS0NCj4gLQ0KPiA+ ICBBcm1Qa2cvTGlicmFyeS9Db21waWxlckludHJpbnNpY3NMaWIvQXJtL3VsZGl2LmFzbSAgICAg ICAgICAgICB8IDI5DQo+ICsrKysrKysrKysrLS0NCj4gPiAgQXJtUGtnL0xpYnJhcnkvQ29tcGls ZXJJbnRyaW5zaWNzTGliL0NvbXBpbGVySW50cmluc2ljc0xpYi5pbmYgfCAxNg0KPiArKysrKysr LQ0KPiA+ICBBcm1Qa2cvTGlicmFyeS9Db21waWxlckludHJpbnNpY3NMaWIvbWVtY3B5X21zLmMg ICAgICAgICAgICAgICB8IDM0DQo+ICsrKysrKysrKysrKysrKysNCj4gPiAgQXJtUGtnL0xpYnJh cnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL21lbXNldF9tcy5jICAgICAgICAgICAgICAgfCAzMw0K PiArKysrKysrKysrKysrKysNCj4gPiAgNyBmaWxlcyBjaGFuZ2VkLCAxODUgaW5zZXJ0aW9ucygr KSwgMzIgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvQXJtUGtnL0xpYnJhcnkv Q29tcGlsZXJJbnRyaW5zaWNzTGliL0FybS9kaXYuYXNtDQo+ID4gYi9Bcm1Qa2cvTGlicmFyeS9D b21waWxlckludHJpbnNpY3NMaWIvQXJtL2Rpdi5hc20NCj4gPiBpbmRleCBiNTM5ZTUxNjg5MmQu LmY5ZTAxMDczOTVmMiAxMDA2NDQNCj4gPiAtLS0gYS9Bcm1Qa2cvTGlicmFyeS9Db21waWxlcklu dHJpbnNpY3NMaWIvQXJtL2Rpdi5hc20NCj4gPiArKysgYi9Bcm1Qa2cvTGlicmFyeS9Db21waWxl ckludHJpbnNpY3NMaWIvQXJtL2Rpdi5hc20NCj4gPiBAQCAtMSw2ICsxLDcgQEANCj4gPg0KPiA+ IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gPiAtLS0tLS0tLS0tDQo+ID4gIC8vDQo+ID4gIC8vIENvcHlyaWdo dCAoYykgMjAwOCAtIDIwMDksIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ID4gKy8vIENvcHlyaWdodCAoYykgMjAxOCwgUGV0ZSBCYXRhcmQuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiA+ICAvLw0KPiA+ICAvLyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlp bmcgbWF0ZXJpYWxzICAvLyBhcmUgbGljZW5zZWQgYW5kDQo+ID4gbWFkZSBhdmFpbGFibGUgdW5k ZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSBAQA0KPiA+IC0x NywxOCArMTgsMTkgQEANCj4gPiAgICAgIEVYUE9SVCAgX19hZWFiaV91aWRpdm1vZA0KPiA+ICAg ICAgRVhQT1JUICBfX2FlYWJpX2lkaXYNCj4gPiAgICAgIEVYUE9SVCAgX19hZWFiaV9pZGl2bW9k DQo+ID4gKyAgICBFWFBPUlQgIF9fcnRfdWRpdg0KPiA+ICsgICAgRVhQT1JUICBfX3J0X3NkaXYN Cj4gPg0KPiA+ICAgICAgQVJFQSAgTWF0aCwgQ09ERSwgUkVBRE9OTFkNCj4gPg0KPiA+ICA7DQo+ ID4gIDtVSU5UMzINCj4gPiAgO0VGSUFQSQ0KPiA+IC07X19hZWFiaV91aWRpdm1vZGUgKA0KPiA+ IC07ICBJTiBVSU5UMzIgIERpdmlkZW4NCj4gPiArO19fYWVhYmlfdWlkaXZtb2QgKA0KPiA+ICs7 ICBJTiBVSU5UMzIgIERpdmlkZW5kDQo+ID4gIDsgIElOIFVJTlQzMiAgRGl2aXNvcg0KPiA+ICA7 ICApOw0KPiA+ICA7DQo+ID4gLQ0KPiA+ICBfX2FlYWJpX3VpZGl2DQo+ID4gIF9fYWVhYmlfdWlk aXZtb2QNCj4gPiAgICAgIFJTQlMgICAgcjEyLCByMSwgcjAsIExTUiAjNA0KPiA+IEBAIC00MCwx MCArNDIsNDAgQEAgX19hZWFiaV91aWRpdm1vZA0KPiA+ICAgICAgQiAgICAgICBfX2FybV9kaXZf bGFyZ2UNCj4gPg0KPiA+ICA7DQo+ID4gKztVSU5UNjQNCj4gPiArO0VGSUFQSQ0KPiA+ICs7X19y dF91ZGl2ICgNCj4gPiArOyAgSU4gVUlOVDMyICBEaXZpc29yLA0KPiA+ICs7ICBJTiBVSU5UMzIg IERpdmlkZW5kDQo+ID4gKzsgICk7DQo+ID4gKzsNCj4gPiArX19ydF91ZGl2DQo+ID4gKyAgICA7 IFN3YXAgUjAgYW5kIFIxDQo+ID4gKyAgICBNT1YgICAgIHIxMiwgcjANCj4gPiArICAgIE1PViAg ICAgcjAsIHIxDQo+ID4gKyAgICBNT1YgICAgIHIxLCByMTINCj4gPiArICAgIEIgICAgICAgX19h ZWFiaV91aWRpdm1vZA0KPiA+ICsNCj4gPiArOw0KPiA+ICs7VUlOVDY0DQo+ID4gKztFRklBUEkN Cj4gPiArO19fcnRfc2RpdiAoDQo+ID4gKzsgIElOIElOVDMyICBEaXZpc29yLA0KPiA+ICs7ICBJ TiBJTlQzMiAgRGl2aWRlbmQNCj4gPiArOyAgKTsNCj4gPiArOw0KPiA+ICtfX3J0X3NkaXYNCj4g PiArICAgIDsgU3dhcCBSMCBhbmQgUjENCj4gPiArICAgIE1PViAgICAgcjEyLCByMA0KPiA+ICsg ICAgTU9WICAgICByMCwgcjENCj4gPiArICAgIE1PViAgICAgcjEsIHIxMg0KPiA+ICsgICAgQiAg ICAgICBfX2FlYWJpX2lkaXZtb2QNCj4gPiArDQo+ID4gKzsNCj4gPiAgO0lOVDMyDQo+ID4gIDtF RklBUEkNCj4gPiAtO19fYWVhYmlfaWRpdm1vZGUgKA0KPiA+IC07ICBJTiBJTlQzMiAgRGl2aWRl bg0KPiA+ICs7X19hZWFiaV9pZGl2bW9kICgNCj4gPiArOyAgSU4gSU5UMzIgIERpdmlkZW5kDQo+ ID4gIDsgIElOIElOVDMyICBEaXZpc29yDQo+ID4gIDsgICk7DQo+ID4gIDsNCj4gPiBAQCAtMTUy LDQgKzE4NCwzIEBAIF9fYWVhYmlfaWRpdjANCj4gPiAgICAgIEJYICAgICAgcjE0DQo+ID4NCj4g PiAgICAgIEVORA0KPiA+IC0NCj4gPiBkaWZmIC0tZ2l0IGEvQXJtUGtnL0xpYnJhcnkvQ29tcGls ZXJJbnRyaW5zaWNzTGliL0FybS9sZGl2bW9kLmFzbQ0KPiA+IGIvQXJtUGtnL0xpYnJhcnkvQ29t cGlsZXJJbnRyaW5zaWNzTGliL0FybS9sZGl2bW9kLmFzbQ0KPiA+IGluZGV4IGM3MWJkNTllNDUy MC4uMzc5NGNhYzM1ZWVkIDEwMDY0NA0KPiA+IC0tLSBhL0FybVBrZy9MaWJyYXJ5L0NvbXBpbGVy SW50cmluc2ljc0xpYi9Bcm0vbGRpdm1vZC5hc20NCj4gPiArKysgYi9Bcm1Qa2cvTGlicmFyeS9D b21waWxlckludHJpbnNpY3NMaWIvQXJtL2xkaXZtb2QuYXNtDQo+ID4gQEAgLTEsNiArMSw3IEBA DQo+ID4NCj4gPiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gLS0tLS0tLS0tLQ0KPiA+ICAvLw0KPiA+ICAv LyBDb3B5cmlnaHQgKGMpIDIwMDggLSAyMDA5LCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiA+ICsvLyBDb3B5cmlnaHQgKGMpIDIwMTgsIFBldGUgQmF0YXJkLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPiAgLy8NCj4gPiAgLy8gVGhpcyBwcm9ncmFtIGFuZCB0aGUg YWNjb21wYW55aW5nIG1hdGVyaWFscyAgLy8gYXJlIGxpY2Vuc2VkIGFuZA0KPiA+IG1hZGUgYXZh aWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2Ug QEANCj4gPiAtMTMsMjAgKzE0LDQxIEBADQo+ID4NCj4gPiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gLS0t LS0tLS0tLQ0KPiA+DQo+ID4NCj4gPiAtICAgIEVYVEVSTiAgX19hZWFiaV91bGRpdm1vZA0KPiA+ ICsgICAgSU1QT1JUICBfX2FlYWJpX3VsZGl2bW9kDQo+ID4gKyAgICBFWFBPUlQgIF9fYWVhYmlf bGRpdm1vZA0KPiA+ICsgICAgRVhQT1JUICBfX3J0X3NkaXY2NA0KPiA+DQo+ID4gLSAgICBJTkNM VURFIEFzbU1hY3JvRXhwb3J0LmluYw0KPiA+ICsgICAgQVJFQSAgTWF0aCwgQ09ERSwgUkVBRE9O TFksIEFSTQ0KPiA+ICsNCj4gPiArICAgIEFSTQ0KPiA+DQo+ID4gIDsNCj4gPiAtO1VJTlQzMg0K PiA+ICs7SU5UNjQNCj4gPiAgO0VGSUFQSQ0KPiA+IC07X19hZWFiaV91aWRpdm1vZGUgKA0KPiA+ IC07ICBJTiBVSU5UMzIgIERpdmlkZW4NCj4gPiAtOyAgSU4gVUlOVDMyICBEaXZpc29yDQo+ID4g KztfX3J0X3NkaXY2NCAoDQo+ID4gKzsgIElOICBJTlQ2NCAgRGl2aXNvcg0KPiA+ICs7ICBJTiAg SU5UNjQgIERpdmlkZW5kDQo+ID4gIDsgICk7DQo+ID4gIDsNCj4gPiArX19ydF9zZGl2NjQNCj4g PiArICAgIDsgU3dhcCByMC1yMSBhbmQgcjItcjMNCj4gPiArICAgIE1PViAgICAgcjEyLCByMA0K PiA+ICsgICAgTU9WICAgICByMCwgcjINCj4gPiArICAgIE1PViAgICAgcjIsIHIxMg0KPiA+ICsg ICAgTU9WICAgICByMTIsIHIxDQo+ID4gKyAgICBNT1YgICAgIHIxLCByMw0KPiA+ICsgICAgTU9W ICAgICByMywgcjEyDQo+ID4gKyAgICBCICAgICAgIF9fYWVhYmlfbGRpdm1vZA0KPiA+DQo+ID4g LSBSVkNUX0FTTV9FWFBPUlQgX19hZWFiaV9sZGl2bW9kDQo+ID4gKzsNCj4gPiArO0lOVDY0DQo+ ID4gKztFRklBUEkNCj4gPiArO19fYWVhYmlfbGRpdm1vZCAoDQo+ID4gKzsgIElOICBJTlQ2NCAg RGl2aWRlbmQNCj4gPiArOyAgSU4gIElOVDY0ICBEaXZpc29yDQo+ID4gKzsgICk7DQo+ID4gKzsN Cj4gPiArX19hZWFiaV9sZGl2bW9kDQo+ID4gICAgICBQVVNIICAgICB7cjQsbHJ9DQo+ID4gICAg ICBBU1JTICAgICByNCxyMSwjMQ0KPiA+ICAgICAgRU9SICAgICAgcjQscjQscjMsTFNSICMxDQo+ ID4gQEAgLTM5LDcgKzYxLDcgQEAgTF9UZXN0MQ0KPiA+ICAgICAgUlNCUyAgICAgcjIscjIsIzAN Cj4gPiAgICAgIFJTQyAgICAgIHIzLHIzLCMwDQo+ID4gIExfVGVzdDINCj4gPiAtICAgIEJMICAg ICAgIF9fYWVhYmlfdWxkaXZtb2QgIDsNCj4gPiArICAgIEJMICAgICAgIF9fYWVhYmlfdWxkaXZt b2QNCj4gPiAgICAgIFRTVCAgICAgIHI0LCMweDQwMDAwMDAwDQo+ID4gICAgICBCRVEgICAgICBM X1Rlc3QzDQo+ID4gICAgICBSU0JTICAgICByMCxyMCwjMA0KPiA+IEBAIC01Myw1ICs3NSwzIEBA IExfRXhpdA0KPiA+ICAgICAgUE9QICAgICAge3I0LHBjfQ0KPiA+DQo+ID4gICAgICBFTkQNCj4g PiAtDQo+ID4gLQ0KPiA+IGRpZmYgLS1naXQgYS9Bcm1Qa2cvTGlicmFyeS9Db21waWxlckludHJp bnNpY3NMaWIvQXJtL2xsc3IuYXNtDQo+ID4gYi9Bcm1Qa2cvTGlicmFyeS9Db21waWxlckludHJp bnNpY3NMaWIvQXJtL2xsc3IuYXNtDQo+ID4gaW5kZXggODgxZGIxMDZkOWQ3Li5kYjJmZDUwNTc4 MzIgMTAwNjQ0DQo+ID4gLS0tIGEvQXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGli L0FybS9sbHNyLmFzbQ0KPiA+ICsrKyBiL0FybVBrZy9MaWJyYXJ5L0NvbXBpbGVySW50cmluc2lj c0xpYi9Bcm0vbGxzci5hc20NCj4gPiBAQCAtMSw2ICsxLDcgQEANCj4gPg0KPiA+IC8vLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gPiAtLS0tLS0tLS0tDQo+ID4gIC8vDQo+ID4gIC8vIENvcHlyaWdodCAoYykgMjAw OCAtIDIwMDksIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKy8vIENv cHlyaWdodCAoYykgMjAxOCwgUGV0ZSBCYXRhcmQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiA+ICAvLw0KPiA+ICAvLyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJp YWxzICAvLyBhcmUgbGljZW5zZWQgYW5kDQo+ID4gbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRl cm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSBAQA0KPiA+IC0xMiwzMiArMTMs MzMgQEAgIC8vDQo+ID4NCj4gPiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gLS0tLS0tLS0tLQ0KPiA+DQo+ ID4gKyAgRVhQT1JUICBfX2FlYWJpX2xsc3INCj4gPiArICBFWFBPUlQgIF9fcnRfc3JzaA0KPiA+ DQo+ID4gKyAgQVJFQSAgTWF0aCwgQ09ERSwgUkVBRE9OTFksIEFSTQ0KPiA+DQo+ID4gLSAgICBJ TkNMVURFIEFzbU1hY3JvRXhwb3J0LmluYw0KPiA+ICsgIEFSTQ0KPiA+DQo+ID4gIDsNCj4gPiAg O1ZPSUQNCj4gPiAgO0VGSUFQSQ0KPiA+ICA7X19hZWFiaV9sbHNyICgNCj4gPiAtOyBJTiAgVk9J RCAgICAqRGVzdGluYXRpb24sDQo+ID4gLTsgSU4gIFZPSUQgICAgKlNvdXJjZSwNCj4gPiAtOyBJ TiAgVUlOVDMyICBTaXplDQo+ID4gLTsgKTsNCj4gPiArOyAgSU4gIFVJTlQ2NCAgVmFsdWUsDQo+ ID4gKzsgIElOICBVSU5UMzIgIFNoaWZ0DQo+ID4gKzspDQo+ID4gIDsNCj4gPiAtIFJWQ1RfQVNN X0VYUE9SVCBfX2FlYWJpX2xsc3INCj4gPiArX19hZWFiaV9sbHNyDQo+ID4gK19fcnRfc3JzaA0K PiA+ICAgICAgU1VCUyAgICAgcjMscjIsIzB4MjANCj4gPiAtICAgIEJQTCAgICAgIHtwY30gKyAw eDE4ICA7IDB4MWMNCj4gPiArICAgIEJQTCAgICAgIF9fYWVhYmlfbGxzcl9sYWJlbDENCj4gPiAg ICAgIFJTQiAgICAgIHIzLHIyLCMweDIwDQo+ID4gICAgICBMU1IgICAgICByMCxyMCxyMg0KPiA+ ICAgICAgT1JSICAgICAgcjAscjAscjEsTFNMIHIzDQo+ID4gICAgICBMU1IgICAgICByMSxyMSxy Mg0KPiA+ICAgICAgQlggICAgICAgbHINCj4gPiArX19hZWFiaV9sbHNyX2xhYmVsMQ0KPiA+ICAg ICAgTFNSICAgICAgcjAscjEscjMNCj4gPiAgICAgIE1PViAgICAgIHIxLCMwDQo+ID4gICAgICBC WCAgICAgICBscg0KPiA+DQo+ID4gICAgICBFTkQNCj4gPiAtDQo+ID4gLQ0KPiA+IC0NCj4gPiBk aWZmIC0tZ2l0IGEvQXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL0FybS91bGRp di5hc20NCj4gPiBiL0FybVBrZy9MaWJyYXJ5L0NvbXBpbGVySW50cmluc2ljc0xpYi9Bcm0vdWxk aXYuYXNtDQo+ID4gaW5kZXggNmI2MTg0ZWJkM2ZjLi5jNTYzMmI0ZTk1ZTcgMTAwNjQ0DQo+ID4g LS0tIGEvQXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL0FybS91bGRpdi5hc20N Cj4gPiArKysgYi9Bcm1Qa2cvTGlicmFyeS9Db21waWxlckludHJpbnNpY3NMaWIvQXJtL3VsZGl2 LmFzbQ0KPiA+IEBAIC0xLDYgKzEsNyBAQA0KPiA+DQo+ID4gLy8tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+IC0t LS0tLS0tLS0NCj4gPiAgLy8NCj4gPiAgLy8gQ29weXJpZ2h0IChjKSAyMDA4IC0gMjAwOSwgQXBw bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiArLy8gQ29weXJpZ2h0IChjKSAy MDE4LCBQZXRlIEJhdGFyZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gIC8vDQo+ID4g IC8vIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIC8vIGFyZSBs aWNlbnNlZCBhbmQNCj4gPiBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIEBADQo+ID4gLTEzLDkgKzE0LDMwIEBADQo+ID4NCj4g PiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4gLS0tLS0tLS0tLQ0KPiA+DQo+ID4NCj4gPiArICAgIEVYUE9S VCAgX19hZWFiaV91bGRpdm1vZA0KPiA+ICsgICAgRVhQT1JUICBfX3J0X3VkaXY2NA0KPiA+DQo+ ID4gKyAgICBBUkVBICBNYXRoLCBDT0RFLCBSRUFET05MWSwgQVJNDQo+ID4NCj4gPiAtICAgIElO Q0xVREUgQXNtTWFjcm9FeHBvcnQuaW5jDQo+ID4gKyAgICBBUk0NCj4gPiArDQo+ID4gKzsNCj4g PiArO1VJTlQ2NA0KPiA+ICs7RUZJQVBJDQo+ID4gKztfX3J0X3VkaXY2NCAoDQo+ID4gKzsgIElO ICBVSU5UNjQgICBEaXZpc29yDQo+ID4gKzsgIElOICBVSU5UNjQgICBEaXZpZGVuZA0KPiA+ICs7 ICApDQo+ID4gKzsNCj4gPiArX19ydF91ZGl2NjQNCj4gPiArICA7IFN3YXAgcjAtcjEgYW5kIHIy LXIzDQo+ID4gKyAgbW92ICAgICByMTIsIHIwDQo+ID4gKyAgbW92ICAgICByMCwgcjINCj4gPiAr ICBtb3YgICAgIHIyLCByMTINCj4gPiArICBtb3YgICAgIHIxMiwgcjENCj4gPiArICBtb3YgICAg IHIxLCByMw0KPiA+ICsgIG1vdiAgICAgcjMsIHIxMg0KPiA+ICsgIGIgICAgICAgX19hZWFiaV91 bGRpdm1vZA0KPiA+DQo+ID4gIDsNCj4gPiAgO1VJTlQ2NA0KPiA+IEBAIC0yNSw3ICs0Nyw3IEBA DQo+ID4gIDsgIElOICBVSU5UNjQgICBEaXZpc29yDQo+ID4gIDsgICkNCj4gPiAgOw0KPiA+IC0g UlZDVF9BU01fRVhQT1JUIF9fYWVhYmlfdWxkaXZtb2QNCj4gPiArX19hZWFiaV91bGRpdm1vZA0K PiA+ICAgIHN0bWRiICAgc3AhLCB7cjQsIHI1LCByNiwgbHJ9DQo+ID4gICAgbW92ICAgICByNCwg cjENCj4gPiAgICBtb3YgICAgIHI1LCByMA0KPiA+IEBAIC0yNjEsNyArMjgzLDYgQEAgX2xsX2Rp djANCj4gPiAgICBiICAgICAgIF9fYWVhYmlfbGRpdjANCj4gPg0KPiA+ICBfX2FlYWJpX2xkaXYw DQo+ID4gLSAgQlggICAgICAgIHIxNA0KPiA+ICsgIGJ4ICAgICAgICByMTQNCj4gPg0KPiA+ICAg IEVORA0KPiA+IC0NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9Bcm1Qa2cvTGlicmFyeS9Db21waWxl ckludHJpbnNpY3NMaWIvQ29tcGlsZXJJbnRyaW5zaWNzTGliLmluZg0KPiA+IGIvQXJtUGtnL0xp YnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL0NvbXBpbGVySW50cmluc2ljc0xpYi5pbmYNCj4g PiBpbmRleCA0NDMzMzE0MWE3MGEuLjE0ZTg4ZGE3Y2UwNiAxMDA2NDQNCj4gPiAtLS0gYS9Bcm1Q a2cvTGlicmFyeS9Db21waWxlckludHJpbnNpY3NMaWIvQ29tcGlsZXJJbnRyaW5zaWNzTGliLmlu Zg0KPiA+ICsrKyBiL0FybVBrZy9MaWJyYXJ5L0NvbXBpbGVySW50cmluc2ljc0xpYi9Db21waWxl ckludHJpbnNpY3NMaWIuaW5mDQo+ID4gQEAgLTIzLDggKzIzLDEyIEBAIFtEZWZpbmVzXQ0KPiA+ ICAgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IENvbXBpbGVySW50cmluc2ljc0xp Yg0KPiA+DQo+ID4gIFtTb3VyY2VzXQ0KPiA+IC0gIG1lbWNweS5jDQo+ID4gLSAgbWVtc2V0LmMN Cj4gPiArICBtZW1jcHkuYyAgICAgICAgICAgICB8IFJWQ1QNCj4gPiArICBtZW1jcHkuYyAgICAg ICAgICAgICB8IEdDQw0KPiA+ICsgIG1lbWNweV9tcy5jICAgICAgICAgIHwgTVNGVA0KPiA+ICsg IG1lbXNldC5jICAgICAgICAgICAgIHwgUlZDVA0KPiA+ICsgIG1lbXNldC5jICAgICAgICAgICAg IHwgR0NDDQo+ID4gKyAgbWVtc2V0X21zLmMgICAgICAgICAgfCBNU0ZUDQo+ID4NCj4gPiAgW1Nv dXJjZXMuQVJNXQ0KPiA+ICAgIEFybS9tdWxsdS5hc20gICAgICAgIHwgUlZDVA0KPiA+IEBAIC05 NCw2ICs5OCwxMCBAQCBbU291cmNlcy5BUk1dDQo+ID4gICAgQXJtL2xsc3IuUyAgICAgICB8IEdD Qw0KPiA+ICAgIEFybS9sbHNsLlMgICAgICAgfCBHQ0MNCj4gPg0KPiA+ICsgIEFybS9kaXYuYXNt ICAgICAgfCBNU0ZUDQo+ID4gKyAgQXJtL3VsZGl2LmFzbSAgICB8IE1TRlQNCj4gPiArICBBcm0v bGRpdm1vZC5hc20gIHwgTVNGVA0KPiA+ICsgIEFybS9sbHNyLmFzbSAgICAgfCBNU0ZUDQo+ID4N Cj4gPiAgW1BhY2thZ2VzXQ0KPiA+ICAgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4gQEAgLTEwMSwz ICsxMDksNyBAQCBbUGFja2FnZXNdDQo+ID4NCj4gPiAgW0xpYnJhcnlDbGFzc2VzXQ0KPiA+DQo+ ID4gK1tCdWlsZE9wdGlvbnNdDQo+ID4gKyAgTVNGVDoqXypfQVJNX0NDX0ZMQUdTID0gL0dMLQ0K PiA+ICsgIE1TRlQ6Kl8qX0FSTV9BU01fRkxBR1MgPSAvb2xkaXQNCj4gPiArICBNU0ZUOipfKl9B QVJDSDY0X0NDX0ZMQUdTID0gL0dMLQ0KPiA+IGRpZmYgLS1naXQgYS9Bcm1Qa2cvTGlicmFyeS9D b21waWxlckludHJpbnNpY3NMaWIvbWVtY3B5X21zLmMNCj4gPiBiL0FybVBrZy9MaWJyYXJ5L0Nv bXBpbGVySW50cmluc2ljc0xpYi9tZW1jcHlfbXMuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi45MGJiYmI5MzBkMzENCj4gPiAtLS0gL2Rldi9udWxs DQo+ID4gKysrIGIvQXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL21lbWNweV9t cy5jDQo+ID4gQEAgLTAsMCArMSwzNCBAQA0KPiA+ICsvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0t LS0tLS0NCj4gPiArLy8NCj4gPiArLy8gQ29weXJpZ2h0IChjKSAyMDE3LCBQZXRlIEJhdGFyZC4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+IC8vIC8vDQo+ID4gK1RoaXMgcHJvZ3JhbSBhbmQgdGhl IGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIC8vDQo+ID4gK2F2 YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNl IHdoaWNoIC8vDQo+ID4gK2FjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwg dGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gPiArLy8gZm91bmQgYXQgaHR0cDovL29wZW5z b3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiA+ICsvLw0KPiA+ICsvLyBUSEUg UFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTDQo+ IElTIg0KPiA+ICtCQVNJUywgLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9O UyBPRiBBTlkgS0lORCwNCj4gRUlUSEVSDQo+ID4gK0VYUFJFU1MgT1IgLy8gSU1QTElFRC4NCj4g PiArLy8NCj4gPiArLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0tDQo+ID4gKw0KPiA+ICsj aWYgZGVmaW5lZChfTV9BUk02NCkNCj4gPiArdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0ICBzaXpl X3Q7DQo+ID4gKyNlbHNlDQo+ID4gK3R5cGVkZWYgdW5zaWduZWQgX19pbnQzMiAgc2l6ZV90Ow0K PiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gK3ZvaWQqIG1lbWNweSh2b2lkICosIGNvbnN0IHZvaWQg Kiwgc2l6ZV90KTsgI3ByYWdtYSBpbnRyaW5zaWMobWVtY3B5KQ0KPiA+ICsjcHJhZ21hIGZ1bmN0 aW9uKG1lbWNweSkNCj4gPiArdm9pZCogbWVtY3B5KHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNy Yywgc2l6ZV90IG4pIHsNCj4gPiArICB1bnNpZ25lZCBjaGFyICpkID0gZGVzdDsNCj4gPiArICB1 bnNpZ25lZCBjaGFyIGNvbnN0ICpzID0gc3JjOw0KPiA+ICsNCj4gPiArICB3aGlsZSAobi0tKQ0K PiA+ICsgICAgKmQrKyA9ICpzKys7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBkZXN0Ow0KPiA+ICt9 DQo+ID4gZGlmZiAtLWdpdCBhL0FybVBrZy9MaWJyYXJ5L0NvbXBpbGVySW50cmluc2ljc0xpYi9t ZW1zZXRfbXMuYw0KPiA+IGIvQXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL21l bXNldF9tcy5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAw MDAuLjY0MjA1ZTVkMTAxMg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9Bcm1Qa2cvTGli cmFyeS9Db21waWxlckludHJpbnNpY3NMaWIvbWVtc2V0X21zLmMNCj4gPiBAQCAtMCwwICsxLDMz IEBADQo+ID4gKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tLQ0KPiA+ICsvLw0KPiA+ICsv LyBDb3B5cmlnaHQgKGMpIDIwMTcsIFBldGUgQmF0YXJkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4gLy8gLy8NCj4gPiArVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFs cyBhcmUgbGljZW5zZWQgYW5kIG1hZGUgLy8NCj4gPiArYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJt cyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2Ugd2hpY2ggLy8NCj4gPiArYWNjb21w YW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1h eSBiZQ0KPiA+ICsvLyBmb3VuZCBhdCBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNk LWxpY2Vuc2UucGhwDQo+ID4gKy8vDQo+ID4gKy8vIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVE IFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMNCj4gSVMiDQo+ID4gK0JBU0lTLCAvLyBX SVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELA0KPiBFSVRI RVINCj4gPiArRVhQUkVTUyBPUiAvLyBJTVBMSUVELg0KPiA+ICsvLw0KPiA+ICsvLy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiArLS0tLS0tLS0tLS0NCj4gPiArDQo+ID4gKyNpZiBkZWZpbmVkKF9NX0FSTTY0KQ0K PiA+ICt0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgIHNpemVfdDsNCj4gPiArI2Vsc2UNCj4gPiAr dHlwZWRlZiB1bnNpZ25lZCBfX2ludDMyICBzaXplX3Q7DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4g PiArdm9pZCogbWVtc2V0KHZvaWQgKiwgaW50LCBzaXplX3QpOw0KPiA+ICsjcHJhZ21hIGludHJp bnNpYyhtZW1zZXQpDQo+ID4gKyNwcmFnbWEgZnVuY3Rpb24obWVtc2V0KQ0KPiA+ICt2b2lkICpt ZW1zZXQodm9pZCAqcywgaW50IGMsIHNpemVfdCBuKSB7DQo+ID4gKyAgdW5zaWduZWQgY2hhciAq ZCA9IHM7DQo+ID4gKw0KPiA+ICsgIHdoaWxlIChuLS0pDQo+ID4gKyAgICAqZCsrID0gKHVuc2ln bmVkIGNoYXIpYzsNCj4gPiArDQo+ID4gKyAgcmV0dXJuIHM7DQo+ID4gK30NCj4gPiAtLQ0KPiA+ IDIuOS4zLndpbmRvd3MuMg0KPiA+DQo=