From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=helo; client-ip=104.47.34.42; helo=nam01-by2-obe.outbound.protection.outlook.com; envelope-from=leo.duran@amd.com; receiver=edk2-devel@lists.01.org Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0042.outbound.protection.outlook.com [104.47.34.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id F0FAF202E5C97 for ; Mon, 16 Oct 2017 10:27:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=CNFxW3wGT7VcZkpeyj/NcHjITzbKED70TV+fBAJ7wRI=; b=FyleGhU6xp4x3VAmBGejkMrCMIPmR//EEA52gI/1VSS9gilQJNO5sXgG4rZ20HkbBKSQa+UvtF3pw5AnXy3kzXJl9fRqJtjcNIfCQ9fNmcJ43uebOD3b34bvYTP5P/oeGnKiQSbDhYRo1npwNb7IS4wlor9iVu3W3vGyax3uWow= Received: from DM5PR12MB1243.namprd12.prod.outlook.com (10.168.237.22) by DM5PR12MB1243.namprd12.prod.outlook.com (10.168.237.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Mon, 16 Oct 2017 17:31:26 +0000 Received: from DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) by DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) with mapi id 15.20.0077.022; Mon, 16 Oct 2017 17:31:26 +0000 From: "Duran, Leo" To: 'Laszlo Ersek' , "Yao, Jiewen" CC: "edk2-devel@lists.01.org" , Paolo Bonzini Thread-Topic: [edk2] [PATCH v5 0/2] Enhanced SMM support for AMD-based x86 systems. Thread-Index: AQHTQsmGEES8Mp+Sr0GSX5QnxHcxuKLhBlYAgAJ9CXCAAJiGAIACoJ4AgAAF9aA= Date: Mon, 16 Oct 2017 17:31:25 +0000 Message-ID: References: <1507751131-32404-1-git-send-email-leo.duran@amd.com> <74D8A39837DF1E4DA445A8C0B3885C503A9E505E@SHSMSX104.ccr.corp.intel.com> <279D7F72-28F1-4DAD-B75E-780F2638BA5E@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM5PR12MB1243; 20:INEWpwBM+5FlulMpDLnraDG6Kbhh+3aEWOu+W8THlzlfAaLyMqBLx8GFT51xvix+icE+nKkD56h+SW9EHTt4Rt+3O86goNaUITwNB6gmEWFiOMTe7nPIJCCjdka5RfWVQiZRS993HtIobALlpur63GRnnMpc1+fJqXk3uQAtge+dtYKplFJZXVEyuQ5LsYxKdmeNumI36OyPIrQIeRJ1oABQwBWqnXuec/X4rqiu8nuS5PHZgRUX5K88SkHZelwh x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 1d02676a-85eb-45ed-ca8f-08d514bbba63 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:DM5PR12MB1243; x-ms-traffictypediagnostic: DM5PR12MB1243: x-exchange-antispam-report-test: UriScan:(767451399110)(788757137089)(162533806227266)(228905959029699); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR12MB1243; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR12MB1243; x-forefront-prvs: 0462918D61 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(24454002)(189002)(45984002)(13464003)(377454003)(199003)(93886005)(3660700001)(3280700002)(2950100002)(53546010)(966005)(97736004)(316002)(8936002)(110136005)(66066001)(6306002)(6116002)(86362001)(14454004)(102836003)(478600001)(81156014)(9686003)(81166006)(8676002)(54906003)(2906002)(3846002)(55016002)(6506006)(74316002)(5660300001)(105586002)(305945005)(99286003)(50986999)(76176999)(54356999)(4326008)(33656002)(53936002)(7736002)(77096006)(2900100001)(6436002)(7696004)(106356001)(25786009)(6246003)(101416001)(68736007)(229853002)(189998001)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1243; H:DM5PR12MB1243.namprd12.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2017 17:31:25.9303 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1243 Subject: Re: [PATCH v5 0/2] Enhanced SMM support for AMD-based x86 systems. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Oct 2017 17:27:53 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxvIEVyc2VrIFtt YWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAxNiwgMjAx NyAxMjowNiBQTQ0KPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgRHVy YW4sIExlbw0KPiA8bGVvLmR1cmFuQGFtZC5jb20+DQo+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAx Lm9yZzsgUGFvbG8gQm9uemluaSA8cGJvbnppbmlAcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogUmU6 IFtlZGsyXSBbUEFUQ0ggdjUgMC8yXSBFbmhhbmNlZCBTTU0gc3VwcG9ydCBmb3IgQU1ELWJhc2Vk DQo+IHg4NiBzeXN0ZW1zLg0KPiANCj4gT24gMTAvMTUvMTcgMDI6NTgsIFlhbywgSmlld2VuIHdy b3RlOg0KPiA+IGZvciBydW50aW1lIHRlc3QsIEkgcmVjb21tZW5kIHVzaW5nIG92bWYuIFlvdSBk b24ndCBuZWVkIHJlYWwgaGFyZHdhcmUuDQo+IEl0IGNhbiBydW4gYm90aCAzMmJpdCBvciA2NGJp dC4gSXQgY2FuIHJ1biBpbiBib3RoIExpbnV4IGFuZCB3aW5kb3dzLg0KPiA+DQo+ID4gWW91IG5l ZWQgdXNlIC1EIFNNTV9SRVFVSVJFIG9wdGlvbiB0byBidWlsZCBvdm1mLg0KPiA+IElmIHlvdSBo YXZlIGFueSBwcm9ibGVtLCBMYXN6bG8gaXMgdGhlIGdvb2QgY29udGFjdC4NCj4gDQo+IEkgZG9u J3QgaGF2ZSBtdWNoIGNvbnRleHQgYWJvdXQgdGhpcyBzZXJpZXMsIGJ1dCBsb29raW5nIGF0IHRo ZSBibHVyYiwgSSBzZWUNCj4gdGhhdCB2ZXJzaW9uIDMgcmVtb3ZlZCBPdm1mUGtnIHBhdGNoZXM6 DQo+IA0KPiA+IENoYW5nZXMgc2luY2UgdjI6DQo+ID4gVGhlIGludGVudCBvZiB0aGlzIHJldmlz aW9uIGlzIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZw0KPiA+IHBhY2th Z2VzLiBUbyB0aGF0IGVuZCwgY2hhbmdlcyB0byBPdm1nZlBrZyBhbmQgUXVhcmtTb2NQa2cgYXJl DQo+ID4gcmV2ZXJ0ZWQuIE1vcmVvdmVyLCBwZXJ0aW5lbnQgbWFjcm9zIGFyZSByZXBsYWNlZCBp biB0aGUgQyBjb2RlLA0KPiA+IHJhdGhlciB0aGFuIG9uIGhlYWRlciBmaWxlcyB0aGF0IGFyZSBz aGFyZWQgZ2xvYmFsbHkuDQo+IA0KPiBKdWRnZWQgb24gdGhlIGRpZmZzdGF0IG9mIHBhdGNoICMx IC0tIG9ubHkNCj4gIlVlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYiIgZmlsZXMg YXJlIG1vZGlmaWVkIC0tIEkgd291bGQgc2F5DQo+IHRoYXQgY2hhbmdlcyBpbiBwYXRjaCAjMSBh cmUgaW52aXNpYmxlIHRvIE9WTUYuIFRoZSByZWFzb24gaXMgdGhhdCBPVk1GIHVzZXMNCj4gYSBz ZXBhcmF0ZSBTbW1DcHVGZWF0dXJlc0xpYiBpbnN0YW5jZSwgbmFtZWx5DQo+IA0KPiAgIE92bWZQ a2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYg0KPiANCj4gVGhpcyBtZWFucyB0d28gdGhpbmdz Og0KPiANCj4gLSBjaGFuZ2VzIGZyb20gcGF0Y2ggIzEgY2Fubm90IGJlIHRlc3RlZCB3aXRoIE9W TUYsIHNpbXBseSBiZWNhdXNlDQo+ICAgIlVlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJl c0xpYiIgaXMgbmV2ZXIgYnVpbHQgZm9yIE9WTUY7DQo+IA0KPiAtIGNoYW5nZXMgZnJvbSBwYXRj aCAjMiBtYXkgb3IgbWF5IG5vdCBicmVhayBTTU0gaW4gT1ZNRiwgZGVwZW5kZW50IG9uDQo+ICAg d2hldGhlciBwYXRjaCAjMiBpcyB0aWVkIGNsb3NlbHkgdG8gcGF0Y2ggIzEuDQo+IA0KPiBJbiBv cmRlciB0byBzZWUgd2h5IE92bWZQa2cgaGFzIGEgc2VwYXJhdGUgU21tQ3B1RmVhdHVyZXNMaWIg aW5zdGFuY2UsDQo+IHBsZWFzZSByZXZpZXcgdGhlIGNvbW1pdCBsb2c6DQo+IA0KPiAgIGdpdCBs b2cgLS1yZXZlcnNlIC0tIE92bWZQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYg0KPiANCj4g QXQgdGhpcyBwb2ludCBJIGNhbm5vdCBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBzZXQgc2hvdWxk IGlnbm9yZSBPdm1mUGtnDQo+IGNvbXBsZXRlbHksIG9yIGVsc2UgcGF0Y2ggIzEgc2hvdWxkIGJl IGR1cGxpY2F0ZWQgZm9yDQo+ICJPdm1mUGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIiIGFz IHdlbGwuIChJIGd1ZXNzIEkgZG9uJ3QgdW5kZXJzdGFuZA0KPiB0aGUgZ29hbCBvZiB0aGUgcGF0 Y2ggc2V0IC0tIEkndmUgcmVhZCB0aGUgYmx1cmIsIGJ1dCB0aGUgcHJvYmxlbSBoYXMgbm90IGJl ZW4NCj4gc3RhdGVkIHdlbGwgZW5vdWdoIGZvciBtZSB0byB1bmRlcnN0YW5kLiBPciBtYXliZSBp dCB3YXMgc3RhdGVkIGxvbmcgYWdvLA0KPiBhbmQgSSd2ZSBmb3Jnb3R0ZW4gaXQgOikgKQ0KPiAN Cg0KTGF6bG8sDQpJIHB1cnBvc2VseSBsZWZ0IG91dCBjaGFuZ2VzIHRvIE9WTUYgYW5kIFF1YXJr LCBjb25zaXN0ZW50IHdpdGggcHJldmlvdXMgZmVlZGJhY2suDQpMZW8NCg0KPiANCj4gTGVvLCBJ IGhhdmUgYSBzZXBhcmF0ZSByZXF1ZXN0OiB0aGUgZGlmZnN0YXRzIGluIHRoZSBibHVyYiBhbmQg b24gcGF0Y2gNCj4gIzEgYXJlIHByYWN0aWNhbGx5IHVucmVhZGFibGUuIFRoaXMgaXMgYmVjYXVz ZSBlZGsyIHVzZXMgbG9uZyBuYW1lcyBmb3IgZmlsZXMNCj4gYW5kIGRpcmVjdG9yaWVzLCBhbmQg YmVjYXVzZSB0aGUgbmVzdGluZyBjYW4gZ2V0IGRlZXAgLS0gYW5kICJnaXQiDQo+IGJ5IGRlZmF1 bHQgdHJ1bmNhdGVzIHRoZSBkaWZmc3RhdCB0byBxdWl0ZSBuYXJyb3cgbGluZXMuDQo+IA0KPiBJ biBvcmRlciB0byBhdm9pZCB0aGlzLCBJIHJlY29tbWVuZCBmb3JtYXR0aW5nIGVkazIgcGF0Y2gg c2V0cyBhcyBmb2xsb3dzOg0KPiANCj4gICBnaXQgZm9ybWF0LXBhdGNoIC0tc3RhdD0xMDAwIC0t c3RhdC1ncmFwaC13aWR0aD0yMCAuLi4NCj4gDQpMYXpsbywNClNvdW5kcyBnb29kLiBXaWxsIGRv Lg0KTGVvLg0KDQo+IFRoaXMgbWFrZXMgdGhlIHBhdGhuYW1lIGNvbHVtbiBqdXN0IGFzIHdpZGUg YXMgbmVjZXNzYXJ5LCB3aGlsZSBrZWVwaW5nDQo+IHRoZSBhY3R1YWwgInN0YXRzIiBjb2x1bW4g cmVhc29uYWJseSBuYXJyb3cuDQo+IA0KPiBUaGFua3MsDQo+IExhc3psbw0KPiANCj4gPj4g5Zyo IDIwMTflubQxMOaciDE15pel77yM5LiK5Y2IMTI6MDTvvIxEdXJhbiwgTGVvIDxsZW8uZHVyYW5A YW1kLmNvbT4NCj4g5YaZ6YGT77yaDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4gRnJvbTogWWFvLCBKaWV3ZW4gW21haWx0bzpqaWV3ZW4u eWFvQGludGVsLmNvbV0NCj4gPj4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDEyLCAyMDE3IDg6 NTMgUE0NCj4gPj4+IFRvOiBEdXJhbiwgTGVvIDxsZW8uZHVyYW5AYW1kLmNvbT47IGVkazItZGV2 ZWxAbGlzdHMuMDEub3JnDQo+ID4+PiBTdWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSCB2NSAwLzJd IEVuaGFuY2VkIFNNTSBzdXBwb3J0IGZvcg0KPiA+Pj4gQU1ELWJhc2VkDQo+ID4+PiB4ODYgc3lz dGVtcy4NCj4gPj4+DQo+ID4+PiBISSBMZW8NCj4gPj4+IFRoYW5rIHlvdSB2ZXJ5IG11Y2guIFRo aXMgcGF0Y2ggbG9va3MgZ29vZCB0byBtZSBpbiBnZW5lcmFsLg0KPiA+Pj4NCj4gPj4+IFNvbWUg bWlub3IgY29tbWVudDoNCj4gPj4+DQo+ID4+PiAxKSBGb3IgQU1EIHNtbSBzYXZlIHN0YXRlLg0K PiA+Pj4gSSBzYXcgUGFvbG8gZ2F2ZSB0aGUgY29tbWVudCBvbiBob3cgdG8gZGV0ZWN0IEFNRCBz YXZlIHN0YXRlLiBJIGRvDQo+ID4+PiBub3QgaGF2ZSBzdHJvbmcgb3BpbmlvbiBvbiB0aGF0LiBJ IHRoaW5rIHlvdSBhbmQgUGFvbG8gY2FuIG1ha2UNCj4gZGVjaXNpb24uDQo+ID4+Pg0KPiA+Pj4g SSByZWNvbW1lbmQgd2UgbW92ZSBBTURfU01SQU1fU0FWRV9TVEFURV9NQVBfT0ZGU0VUIHRvDQo+ ID4+PiBVZWZpQ3B1UGtnXEluY2x1ZGVcUmVnaXN0ZXJcQW1kXFNtcmFtU2F2ZVN0YXRlTWFwLmgs IGJlY2F1c2UgaXQNCj4gaXMNCj4gPj4+IHN0YW5kYXJkLg0KPiA+PiBIaSBZYW8sDQo+ID4+DQo+ ID4+IFN1cmUgdGhpbmcsIEkgd2lsbCBkbyB0aGF0Lg0KPiA+Pg0KPiA+PiBMZW8NCj4gPj4NCj4g Pj4+ICsvLw0KPiA+Pj4gKy8vIERlZmluaXRpb25zIGZvciBBTUQgc3lzdGVtcyBhcmUgYmFzZWQg b24gY29udGVudHMgb2YgdGhlIC8vDQo+ID4+PiArQU1ENjQgQXJjaGl0ZWN0dXJlIFByb2dyYW1t ZXIncyBNYW51YWwgLy8gVm9sdW1lIDI6IFN5c3RlbQ0KPiA+Pj4gK1Byb2dyYW1taW5nLCBTZWN0 aW9uIDEwIFN5c3RlbS1NYW5hZ2VtZW50IE1vZGUgLy8gI2RlZmluZQ0KPiA+Pj4gK0FNRF9TTVJB TV9TQVZFX1NUQVRFX01BUF9PRkZTRVQgMHhmZTAwDQo+ID4+Pg0KPiA+Pj4gV2UgY2FuIGxlYXZl IEFNRF9TTU1fUFNEX09GRlNFVCBpbg0KPiBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tLCBpZiBp dA0KPiA+Pj4gaXMgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMuDQo+ID4+PiArI2RlZmluZSAgICAg ICBBTURfU01NX1BTRF9PRkZTRVQgICAgICAgICAweGZjMDANCj4gPj4+DQo+ID4+Pg0KPiA+Pj4N Cj4gPj4+IDIpIEZvciBJbnRlbCBzYXZlIHN0YXRlLCBJIGFzc3VtZSB5b3UgYWxyZWFkeSBkaWQg c29tZSB0ZXN0IHRvIG1ha2UNCj4gPj4+IHN1cmUgdGhlcmUgaXMgbm8gcmVncmVzc2lvbi4NCj4g Pj4+IElmIHNvLCB3b3VsZCB5b3UgcGxlYXNlIGFkZCBzb21lIGRlc2NyaXB0aW9uIG9uIHdoYXQg dGVzdCB5b3UgaGF2ZQ0KPiBkb25lPw0KPiA+Pj4gRm9yIGV4YW1wbGUsDQo+ID4+PiAgICBJZiBi b3RoIElBMzIgYW5kIFg2NCBhcmUgdmFsaWRhdGVkPw0KPiA+Pj4gICAgSWYgYWxsIHRocmVlIC5T LCAuYXNtLCAubmFzbSBhcmUgdmFsaWRhdGVkPw0KPiA+Pj4gICAgSWYgT1MgYm9vdCBhbmQgUzMg cmVzdW1lIGFyZSB2YWxpZGF0ZWQ/DQo+ID4+Pg0KPiA+Pj4gSWYgeW91IGRpZCBhbnkgb3RoZXIg dGVzdCwgcGxlYXNlIGFsc28gYWRkLg0KPiA+Pj4NCj4gPj4NCj4gPj4gSGkgWWFvLA0KPiA+Pg0K PiA+PiBJIGhhdmUgbm90IGRvbmUgcnVudGltZSB2YWxpZGF0aW9uIHRlc3RpbmcuDQo+ID4+IElu c3RlYWQsIEkgdGVzdGVkIHRoZSBhc3NlbWJseSBjb2RlIHNuaXBwZXRzIGluIGEgdmFjdXVtIChp biB0aGVpcg0KPiA+PiAuYXNtLCAubmFzbSwgYW5kIC5TIGZvcm1zKSwgdG8gZW5zdXJlIHRoZSBz b3VyY2UgcHJvZHVjZWQgdGhlIGV4cGVjdGVkDQo+IGNvbXBpbGVkIGNvZGUsIGFuZCB0aGUgZXhw ZWN0ZWQgZXhlY3V0aW9uLg0KPiA+Pg0KPiA+PiBTbyBhbnkgcnVudGltZSAnVGVzdGVkLWJ5JyB3 b3VsZCBiZSBncmVhdGx5IGFwcHJlY2lhdGVkIFRoYW5rcywgTGVvLg0KPiA+Pg0KPiA+Pj4gVGhh bmsgeW91DQo+ID4+PiBZYW8gSmlld2VuDQo+ID4+Pg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRl dmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYNCj4gPj4+PiBPZiBMZW8gRHVyYW4N Cj4gPj4+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAxMiwgMjAxNyAzOjQ1IEFNDQo+ID4+Pj4g VG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+Pj4gU3ViamVjdDogW2VkazJdIFtQQVRD SCB2NSAwLzJdIEVuaGFuY2VkIFNNTSBzdXBwb3J0IGZvciBBTUQtYmFzZWQNCj4gPj4+PiB4ODYg c3lzdGVtcy4NCj4gPj4+Pg0KPiA+Pj4+IFRoaXMgcGF0Y2gtc2V0IHJlcGxhY2VzIEludGVsLXNw ZWNpZmljIG1hY3JvcyB3aXRoIGdsb2JhbCB2YXJpYWJsZXMNCj4gPj4+PiB0byBwcm92aWRlIHN1 cHBvcnQgZm9yIEFNRC1iYXNlZCB4ODYgc3lzdGVtcy4NCj4gPj4+Pg0KPiA+Pj4+IFRoZSByZXBs YWNlZCBtYWNyb3MgYXJlOg0KPiA+Pj4+IDEpIFNSQU1fU0FWRV9TVEFURV9NQVBfT0ZGU0VUDQo+ ID4+Pj4gMikgVFhUX1NNTV9QU0RfT0ZGU0VUDQo+ID4+Pj4gMykgU01NX1BTRF9PRkZTRVQNCj4g Pj4+Pg0KPiA+Pj4+IENoYW5nZXMgc2luY2UgdjQ6DQo+ID4+Pj4gTWFrZSBydW50aW1lIENQVUlE IGNoZWNrcyBhbmQgdXNlIGdsb2JhbCB2YXJpYWJsZXMgaW5zdGVhZCBvZiBQQ0Qncy4NCj4gPj4+ Pg0KPiA+Pj4+IENoYW5nZXMgc2luY2UgdjM6DQo+ID4+Pj4gQ29ycmVjdGlvbiBvbiBjb3ZlciBs ZXR0ZXIuDQo+ID4+Pj4NCj4gPj4+PiBDaGFuZ2VzIHNpbmNlIHYyOg0KPiA+Pj4+IFRoZSBpbnRl bnQgb2YgdGhpcyByZXZpc2lvbiBpcyB0byBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGgNCj4g Pj4+PiBleGlzdGluZyBwYWNrYWdlcy4gVG8gdGhhdCBlbmQsIGNoYW5nZXMgdG8gT3ZtZ2ZQa2cg YW5kIFF1YXJrU29jUGtnDQo+ID4+Pj4gYXJlDQo+ID4+PiByZXZlcnRlZC4NCj4gPj4+PiBNb3Jl b3ZlciwgcGVydGluZW50IG1hY3JvcyBhcmUgcmVwbGFjZWQgaW4gdGhlIEMgY29kZSwgcmF0aGVy IHRoYW4NCj4gPj4+PiBvbiBoZWFkZXIgZmlsZXMgdGhhdCBhcmUgc2hhcmVkIGdsb2JhbGx5Lg0K PiA+Pj4+DQo+ID4+Pj4gQ2hhbmdlcyBzaW5jZSB2MToNCj4gPj4+PiBSZXZpc2lvbiB0byBDYyBs aXN0IGZvciBVZWZpQ3B1UGtnLg0KPiA+Pj4+DQo+ID4+Pj4gTGVvIER1cmFuICgyKToNCj4gPj4+ PiAgVWVmaUNwdVBrZy9TbW1DcHVGZWF0dXJlc0xpYjogVXNlIGdsb2JhbCB2YXJpYWJsZXMgdG8g cmVwbGFjZQ0KPiA+Pj4+IG1hY3Jvcw0KPiA+Pj4+ICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21t OiBVc2UgZ2xvYmFsIHZhcmlhYmxlcyB0byByZXBsYWNlDQo+IG1hY3Jvcw0KPiA+Pj4+DQo+ID4+ Pj4gLi4uL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5TICAgICAgfCAy OCArKysrKystLS0NCj4gPj4+PiAuLi4vTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1Nt aUVudHJ5LmFzbSAgICB8IDI5ICsrKysrKy0tLQ0KPiA+Pj4+IC4uLi9MaWJyYXJ5L1NtbUNwdUZl YXR1cmVzTGliL0lhMzIvU21pRW50cnkubmFzbSAgIHwgNDMgKysrKysrKysrLQ0KPiAtLS0NCj4g Pj4+PiBVZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tQ29tbW9uLmggICB8 IDQ4DQo+ID4+Pj4gKysrKysrKysrKysrKysrDQo+ID4+Pj4gLi4uL0xpYnJhcnkvU21tQ3B1RmVh dHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWIuYyAgfCA1OQ0KPiA+Pj4+ICsrKysrKysrKysrKysr Ky0tLQ0KPiA+Pj4+IC4uLi9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYi5pbmYg ICAgICAgIHwgIDMgKw0KPiA+Pj4+IC4uLi9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJl c0xpYlN0bS5pbmYgICAgIHwgIDMgKw0KPiA+Pj4+IFVlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVG ZWF0dXJlc0xpYi9TbW1TdG0uYyAgICAgIHwgMzkNCj4gKysrKysrKysrKy0NCj4gPj4+IC0NCj4g Pj4+PiAuLi4vTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuUyAgICAgICB8 IDI4ICsrKysrKy0tLQ0KPiA+Pj4+IC4uLi9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9T bWlFbnRyeS5hc20gICAgIHwgMzAgKysrKysrLS0tDQo+ID4+Pj4gLi4uL0xpYnJhcnkvU21tQ3B1 RmVhdHVyZXNMaWIvWDY0L1NtaUVudHJ5Lm5hc20gICAgfCA0Nw0KPiArKysrKysrKysrLS0tLQ0K PiA+Pj4+IFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9TZW1hcGhvcmUuYyAgICAgICAg IHwgMjIgKysrKy0tLQ0KPiA+Pj4+IFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9TbWlF bnRyeS5TICAgICAgICAgIHwgMjggKysrKysrLS0tDQo+ID4+Pj4gVWVmaUNwdVBrZy9QaVNtbUNw dUR4ZVNtbS9JYTMyL1NtaUVudHJ5LmFzbSAgICAgICAgfCAyMSArKysrKy0tDQo+ID4+Pj4gVWVm aUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9JYTMyL1NtaUVudHJ5Lm5hc20gICAgICAgfCA0Mw0KPiA+ Pj4+ICsrKysrKysrKy0tLS0NCj4gPj4+PiBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21t Q3B1RHhlU21tLmMgICAgICAgICB8IDcyDQo+ID4+Pj4gKysrKysrKysrKysrKysrKysrKystLQ0K PiA+Pj4+IFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaCAgICAgICAg IHwgMTcgKysrKy0NCj4gPj4+PiBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbUNwdU1lbW9y eU1hbmFnZW1lbnQuYyB8IDE4DQo+ID4+PiArKystLS0NCj4gPj4+PiBVZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL1NtcmFtU2F2ZVN0YXRlLmMgICAgICAgICB8IDIwICsrKy0tLQ0KPiA+Pj4+IFVl ZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1NlbWFwaG9yZS5jICAgICAgICAgIHwgMjIgKysr Ky0tLQ0KPiA+Pj4+IFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1NtaUVudHJ5LlMgICAg ICAgICAgIHwgMzQgKysrKysrLS0tLQ0KPiA+Pj4+IFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v WDY0L1NtaUVudHJ5LmFzbSAgICAgICAgIHwgMjIgKysrKystLQ0KPiA+Pj4+IFVlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW0vWDY0L1NtaUVudHJ5Lm5hc20gICAgICAgIHwgNDUNCj4gPj4+PiArKysr KysrKysrLS0tLQ0KPiA+Pj4+IDIzIGZpbGVzIGNoYW5nZWQsIDU0NyBpbnNlcnRpb25zKCspLCAx NzQgZGVsZXRpb25zKC0pICBjcmVhdGUgbW9kZQ0KPiA+Pj4+IDEwMDY0NCBVZWZpQ3B1UGtnL0xp YnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tQ29tbW9uLmgNCj4gPj4+Pg0KPiA+Pj4+IC0tDQo+ ID4+Pj4gMi43LjQNCj4gPj4+Pg0KPiA+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fDQo+ID4+Pj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPj4+ PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+Pj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21h aWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQo+ID4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4v bGlzdGluZm8vZWRrMi1kZXZlbA0KPiA+DQoNCg==