From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: ray.ni@intel.com) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by groups.io with SMTP; Tue, 06 Aug 2019 03:08:51 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Aug 2019 03:08:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,353,1559545200"; d="scan'208";a="202764564" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga002.fm.intel.com with ESMTP; 06 Aug 2019 03:08:51 -0700 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 6 Aug 2019 03:08:51 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 6 Aug 2019 03:08:50 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.112]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.250]) with mapi id 14.03.0439.000; Tue, 6 Aug 2019 18:08:48 +0800 From: "Ni, Ray" To: "Chen, Marc W" , "devel@edk2.groups.io" , "lersek@redhat.com" , "Gao, Liming" CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH] MdePkg: Add MmAccess and MmControl definition. Thread-Topic: [edk2-devel] [PATCH] MdePkg: Add MmAccess and MmControl definition. Thread-Index: AQHVRcW8y5xmct2vzUm4pgTkW8tdYqbl/g2wgAABaiCAAAEfIIAAE/uw//99yICAAQvmAIAGudOAgACZuVA= Date: Tue, 6 Aug 2019 10:08:47 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C27417F@SHSMSX104.ccr.corp.intel.com> References: <20190729042556.17692-1-marc.w.chen@intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4C7400@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C267BB4@SHSMSX104.ccr.corp.intel.com> <211b95ba-703d-4561-c2bc-891e02d0ec2b@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLA0KRG8geW91IHdhbnQgdG8gYXZvaWQgdG91Y2hpbmcgdGhlIE92bWZQa2cgZHVlIHRo ZSBmaWxlIHJlbW92YWwgaW4gTWRlTW9kdWxlUGtnPw0KDQpJIHByZWZlciB0byByZW1vdmUgdGhl IGZpbGVzIGluIE1kZU1vZHVsZVBrZyB0byBhdm9pZCBmdXR1cmUgY29uZnVzaW9uLg0KDQpUaGFu a3MsDQpSYXkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaGVuLCBN YXJjIFcNCj4gU2VudDogVHVlc2RheSwgQXVndXN0IDYsIDIwMTkgNDo1NyBQTQ0KPiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IGxlcnNla0ByZWRoYXQuY29tOyBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPjsNCj4gR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBDYzogS2lu bmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBS RTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kIE1tQ29udHJv bA0KPiBkZWZpbml0aW9uLg0KPiANCj4gSGkgTGltaW5nIGFuZCBSYXkNCj4gDQo+IERvIHlvdSBh bHNvIGFncmVlPw0KPiANCj4gVGhhbmtzLA0KPiBNYXJjDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIu Z3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTGFzemxvDQo+ID4gRXJzZWsNCj4gPiBTZW50OiBGcmlk YXksIEF1Z3VzdCAyLCAyMDE5IDEwOjE0IEFNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBDaGVuLCBNYXJjIFcgPG1hcmMudy5jaGVuQGludGVsLmNvbT47IE5pLA0KPiA+IFJheSA8cmF5 Lm5pQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiBD YzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVQa2c6IEFkZCBNbUFjY2VzcyBhbmQN Cj4gTW1Db250cm9sDQo+ID4gZGVmaW5pdGlvbi4NCj4gPg0KPiA+IE9uIDA4LzAxLzE5IDEyOjE1 LCBNYXJjIFcgQ2hlbiB3cm90ZToNCj4gPiA+IFllcywgbXkgcHVycG9zZSBpcyB0byBhdm9pZCBw bGF0Zm9ybSBjb2RlIHVwZGF0ZSBpZiB0aGUgcGFja2FnZSBpcw0KPiA+ID4gYWxsb3dlZA0KPiA+ IHRvIHVzZSBNZGVNb2R1bGVQa2cgbGlrZSBPdm1mUGtnLg0KPiA+ID4gRm9yIHRob3NlIHBhY2th Z2VzIHRoYXQgY2Fubm90IGRlcGVuZCBvbiBNZGVNb2R1bGVQa2cgbXVzdCBjaGFuZ2UNCj4gdG8N Cj4gPiB1c2UgbmV3IGRlZmluaXRpb24uDQo+ID4NCj4gPiBBZ3JlZWQuDQo+ID4NCj4gPiBUaGFu a3MhDQo+ID4gTGFzemxvDQo+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+ID4+IEZyb206IE5pLCBSYXkNCj4gPiA+PiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDEsIDIw MTkgNjowNCBQTQ0KPiA+ID4+IFRvOiBDaGVuLCBNYXJjIFcgPG1hcmMudy5jaGVuQGludGVsLmNv bT47IEdhbywgTGltaW5nDQo+ID4gPj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRr Mi5ncm91cHMuaW8NCj4gPiA+PiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPg0KPiA+ID4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBN ZGVQa2c6IEFkZCBNbUFjY2VzcyBhbmQNCj4gPiBNbUNvbnRyb2wNCj4gPiA+PiBkZWZpbml0aW9u Lg0KPiA+ID4+DQo+ID4gPj4gTWFyYywNCj4gPiA+PiBJcyB0aGUgcHVycG9zZSB0byBhdm9pZCBw bGF0Zm9ybSBjb2RlIHVwZGF0ZSB3aXRoIHRoZSB3cmFwcGVyDQo+ID4gPj4gaGVhZGVyDQo+ID4g ZmlsZSBpbg0KPiA+ID4+IE1kZU1vZHVsZVBrZz8NCj4gPiA+PiBDZXJ0YWluIHBsYXRmb3JtcyB0 aGV5IG1heSByZXF1aXJlIHRvIG5vdCBkZXBlbmQgb24gTWRlTW9kdWxlUGtnDQo+ID4gPj4gYnV0 IGp1c3QgZGVwZW5kIG9uIE1kZVBrZy4NCj4gPiA+PiBIYXZpbmcgU21tQWNjZXNzLmggaW4gTWRl TW9kdWxlUGtnIGRvZXNuJ3QgaGVscC4NCj4gPiA+Pg0KPiA+ID4+IEl0IGFsc28gYnJpbmcgY29u ZnVzaW5nLg0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzLA0KPiA+ID4+IFJheQ0KPiA+ID4+DQo+ID4g Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+IEZyb206IENoZW4sIE1hcmMg Vw0KPiA+ID4+PiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDEsIDIwMTkgNDo1MyBQTQ0KPiA+ID4+ PiBUbzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91 cHMuaW8NCj4gPiA+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT47IE5pLCBSYXkNCj4gPiA+Pj4gPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPj4+IFN1 YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVQa2c6IEFkZCBNbUFjY2VzcyBhbmQN Cj4gPiBNbUNvbnRyb2wNCj4gPiA+Pj4gZGVmaW5pdGlvbi4NCj4gPiA+Pj4NCj4gPiA+Pj4gSGkg TGltaW5nDQo+ID4gPj4+DQo+ID4gPj4+IEFub3RoZXIgdGhvdWdodCwgZG8geW91IHRoaW5rIGl0 IGlzIG9rIHRvIGtlZXAgU21tQWNjZXNzLmggaW4NCj4gPiA+Pj4gTWRlTW9kdWxlUGtnPyBXZSBj YW4gdXNlICNkZWZpbmUgYW5kIHR5cGVkZWYgdG8gY29udmVydA0KPiBNbUFjY2Vzcw0KPiA+IHRv DQo+ID4gPj4+IFNtbUFjY2VzcywganVzdCBsaWtlIGN1cnJlbnQgU21tQWNjZXNzIFByb3RvY29s IGluIE1kZVBrZy4NCj4gPiA+Pj4NCj4gPiA+Pj4gVGhhbmtzLA0KPiA+ID4+PiBNYXJjDQo+ID4g Pj4+DQo+ID4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+Pj4gRnJvbTog Q2hlbiwgTWFyYyBXDQo+ID4gPj4+PiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDEsIDIwMTkgNDo0 OCBQTQ0KPiA+ID4+Pj4gVG86IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPj4+PiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA+ID4+Pj4gPHJheS5uaUBpbnRlbC5j b20+DQo+ID4gPj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBB ZGQgTW1BY2Nlc3MgYW5kDQo+ID4gPj4+IE1tQ29udHJvbA0KPiA+ID4+Pj4gZGVmaW5pdGlvbi4N Cj4gPiA+Pj4+DQo+ID4gPj4+PiBIaSBMaW1pbmcNCj4gPiA+Pj4+DQo+ID4gPj4+PiBTaW5jZSB0 aGVyZSBhcmUgbXVsdGlwbGUgcGFja2FnZXMgYXJlIHN0aWxsIHVzaW5nIFNtbUFjY2Vzcy5oLCB3 ZQ0KPiA+ID4+Pj4gbmVlZCB0byBjaGFuZ2UgYWxsIHBhY2thZ2VzIHRvIHVzZSBNbUFjY2Vzcy5o IGluc3RlYWQgb2YNCj4gPiA+Pj4+IFNtbUFjY2Vzcy5oIGZpcnN0LCB0aGVuIGNsZWFuIHVwIFNt bUFjY2Vzcy5oIGZyb20gTWRlTW9kdWxlUGtnDQo+IHdpbGwgYmUgdGhlIGxhc3Qgc3RlcC4NCj4g PiA+Pj4+IEJlbG93IGFyZSB0aGUgcGFja2FnZXMgdGhhdCBoYXMgImluY2x1ZGUgPFBwaS9TbW1B Y2Nlc3MuaD4iIGZvcg0KPiA+ID4+Pj4geW91ciByZWZlcmVuY2UuDQo+ID4gPj4+PiAqCUVkazIg cmVwbzoNCj4gPiA+Pj4+IG8JTWRlTW9kdWxlUGtnDQo+ID4gPj4+PiBvCU92bWZQa2cNCj4gPiA+ Pj4+IG8JVWVmaUNwdVBrZw0KPiA+ID4+Pj4gKglFZGsyUGxhdGZvcm0gcmVwbzoNCj4gPiA+Pj4+ IG8JTWluUGxhdGZvcm1Qa2cNCj4gPiA+Pj4+IG8JUXVhcmtTb2NQa2cNCj4gPiA+Pj4+DQo+ID4g Pj4+PiBUaGFua3MsDQo+ID4gPj4+PiBNYXJjDQo+ID4gPj4+Pg0KPiA+ID4+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+Pj4gRnJvbTogR2FvLCBMaW1pbmcNCj4gPiA+Pj4+ PiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDEsIDIwMTkgNDo0MiBQTQ0KPiA+ID4+Pj4+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQ2hlbiwgTWFyYyBXIDxtYXJjLncuY2hlbkBpbnRlbC5jb20+ DQo+ID4gPj4+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT47IE5pLCBSYXkNCj4gPiA+Pj4+PiA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+Pj4+PiBT dWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5k DQo+ID4gPj4+IE1tQ29udHJvbA0KPiA+ID4+Pj4+IGRlZmluaXRpb24uDQo+ID4gPj4+Pj4NCj4g PiA+Pj4+PiBNYXJjOg0KPiA+ID4+Pj4+ICAgVGhlIGNoYW5nZSBpcyBnb29kLiBSZXZpZXdlZC1i eTogTGltaW5nIEdhbw0KPiA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4+ICAgQmVzaWRlcywgSSBzZWUgQlogYWxzbyBtZW50aW9uIHRvIHJlbW92ZSB0aGUgb25l IGluDQo+IE1kZU1vZHVsZVBrZy4NCj4gPiA+Pj4+PiBIYXZlIHlvdSB0aGUgZm9sbG93aW5nIHBh dGNoZXMgZm9yIHRoZSBjaGFuZ2UgaW4gTWRlTW9kdWxlUGtnPw0KPiA+ID4+Pj4+DQo+ID4gPj4+ Pj4gVGhhbmtzDQo+ID4gPj4+Pj4gTGltaW5nDQo+ID4gPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIFttYWlsdG86 ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uDQo+ID4gPj4gQmVoYWxmDQo+ID4gPj4+Pj4+IE9mIE1h cmMgVyBDaGVuDQo+ID4gPj4+Pj4+IFNlbnQ6IE1vbmRheSwgSnVseSAyOSwgMjAxOSAxMjoyNiBQ TQ0KPiA+ID4+Pj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+Pj4+Pj4gQ2M6IEtp bm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEdhbywgTGltaW5n DQo+ID4gPj4+Pj4+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRl bC5jb20+DQo+ID4gPj4+Pj4+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZVBrZzog QWRkIE1tQWNjZXNzIGFuZA0KPiA+ID4+IE1tQ29udHJvbA0KPiA+ID4+Pj4+PiBkZWZpbml0aW9u Lg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBFRkkgTW1BY2Nlc3MgYW5kIE1tQ29udHJvbCBQUElz IGFyZSBkZWZpbmVkIGluIHRoZSBQSSAxLjUNCj4gPiA+Pj4gc3BlY2lmaWNhdGlvbi4NCj4gPiA+ Pj4+Pj4NCj4gPiA+Pj4+Pj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPg0KPiA+ID4+Pj4+PiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5j b20+DQo+ID4gPj4+Pj4+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPj4+Pj4+ IFJlZjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIz DQo+ID4gPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE1hcmMgVyBDaGVuIDxtYXJjLncuY2hlbkBpbnRl bC5jb20+DQo+ID4gPj4+Pj4+IC0tLQ0KPiA+ID4+Pj4+PiBNZGVQa2cvSW5jbHVkZS9QcGkvTW1B Y2Nlc3MuaCAgfCAxNTUNCj4gPiA+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCj4gPiA+Pj4+Pj4gTWRlUGtnL0luY2x1ZGUvUHBpL01tQ29udHJvbC5oIHwg IDkwDQo+ID4gPj4+ICsrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4+Pj4+PiBNZGVQa2cv TWRlUGtnLmRlYyAgICAgICAgICAgICAgfCAgIDYgKysNCj4gPiA+Pj4+Pj4gMyBmaWxlcyBjaGFu Z2VkLCAyNTEgaW5zZXJ0aW9ucygrKSBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+Pj4+Pj4gTWRl UGtnL0luY2x1ZGUvUHBpL01tQWNjZXNzLmggY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPj4+Pj4+ IE1kZVBrZy9JbmNsdWRlL1BwaS9NbUNvbnRyb2wuaA0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBk aWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvUHBpL01tQWNjZXNzLmgNCj4gPiA+Pj4+Pj4gYi9N ZGVQa2cvSW5jbHVkZS9QcGkvTW1BY2Nlc3MuaCBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0K PiA+ID4+Pj4+PiAwMDAwMDAwMDAwLi42MzZlNzI4OGEwDQo+ID4gPj4+Pj4+IC0tLSAvZGV2L251 bGwNCj4gPiA+Pj4+Pj4gKysrIGIvTWRlUGtnL0luY2x1ZGUvUHBpL01tQWNjZXNzLmgNCj4gPiA+ Pj4+Pj4gQEAgLTAsMCArMSwxNTUgQEANCj4gPiA+Pj4+Pj4gKy8qKiBAZmlsZQ0KPiA+ID4+Pj4+ PiArICBFRkkgTU0gQWNjZXNzIFBQSSBkZWZpbml0aW9uLg0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+ Pj4+ICsgIFRoaXMgUFBJIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUg TU1SQU0gb24NCj4gPiA+Pj4+Pj4gKyB0aGUNCj4gPiA+Pj4gcGxhdGZvcm0uDQo+ID4gPj4+Pj4+ ICsgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkgYWJzdHJhY3RzIHRoZSBsb2NhdGlvbiBhbmQN Cj4gPiA+Pj4+Pj4gKyBjaGFyYWN0ZXJpc3RpY3MNCj4gPiA+Pj4+IG9mDQo+ID4gPj4+Pj4+IE1N UkFNLiBUaGUNCj4gPiA+Pj4+Pj4gKyAgcHJpbmNpcGFsIGZ1bmN0aW9uYWxpdHkgZm91bmQgaW4g dGhlIG1lbW9yeSBjb250cm9sbGVyDQo+ID4gPj4+Pj4+ICsgaW5jbHVkZXMgdGhlDQo+ID4gPj4+ Pj4gZm9sbG93aW5nOg0KPiA+ID4+Pj4+PiArICAtIEV4cG9zaW5nIHRoZSBNTVJBTSB0byBhbGwg bm9uLU1NIGFnZW50cywgb3IgdGhlICJvcGVuIg0KPiA+ID4+Pj4+PiArIHN0YXRlDQo+ID4gPj4+ Pj4+ICsgIC0gU2hyb3VkaW5nIHRoZSBNTVJBTSB0byBhbGwgYnV0IHRoZSBNTSBhZ2VudHMsIG9y IHRoZQ0KPiAiY2xvc2VkIg0KPiA+ID4+Pj4+PiArIHN0YXRlDQo+ID4gPj4+Pj4+ICsgIC0gUHJl c2VydmluZyB0aGUgc3lzdGVtIGludGVncml0eSwgb3IgImxvY2tpbmciIHRoZSBNTVJBTSwNCj4g PiA+Pj4+Pj4gKyBzdWNoIHRoYXQNCj4gPiA+Pj4+IHRoZQ0KPiA+ID4+Pj4+PiBzZXR0aW5ncyBj YW5ub3QgYmUNCj4gPiA+Pj4+Pj4gKyAgICBwZXJ0dXJiZWQgYnkgZWl0aGVyIGJvb3Qgc2Vydmlj ZSBvciBydW50aW1lIGFnZW50cw0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsgIENvcHlyaWdo dCAoYykgMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+Pj4+Pj4gKyBy ZXNlcnZlZC48QlI+DQo+ID4gPj4+Pj4+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4gKyAgQHBhciBSZXZpc2lv biBSZWZlcmVuY2U6DQo+ID4gPj4+Pj4+ICsgIFRoaXMgUFBJIGlzIGludHJvZHVjZWQgaW4gUEkg VmVyc2lvbiAxLjUuDQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4gKyoqLw0KPiA+ID4+Pj4+PiAr DQo+ID4gPj4+Pj4+ICsjaWZuZGVmIF9NTV9BQ0NFU1NfUFBJX0hfDQo+ID4gPj4+Pj4+ICsjZGVm aW5lIF9NTV9BQ0NFU1NfUFBJX0hfDQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4gKyNkZWZpbmUg RUZJX1BFSV9NTV9BQ0NFU1NfUFBJX0dVSUQgXA0KPiA+ID4+Pj4+PiArICB7IDB4MjY4ZjMzYTks IDB4Y2NjZCwgMHg0OGJlLCB7IDB4ODgsIDB4MTcsIDB4ODYsIDB4NSwgMHgzYSwNCj4gPiA+Pj4+ Pj4gKzB4YzMsIDB4MmUsDQo+ID4gPj4+Pj4+IDB4ZDYgfX0NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+ Pj4+PiArdHlwZWRlZiBzdHJ1Y3QgX0VGSV9QRUlfTU1fQUNDRVNTX1BQSQ0KPiBFRklfUEVJX01N X0FDQ0VTU19QUEk7DQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4gKy8qKg0KPiA+ID4+Pj4+PiAr ICBPcGVucyB0aGUgTU1SQU0gYXJlYSB0byBiZSBhY2Nlc3NpYmxlIGJ5IGEgUEVJTS4NCj4gPiA+ Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArICBUaGlzIGZ1bmN0aW9uICJvcGVucyIgTU1SQU0gc28gdGhh dCBpdCBpcyB2aXNpYmxlIHdoaWxlIG5vdA0KPiA+ID4+Pj4+PiArIGluc2lkZSBvZg0KPiA+ID4+ Pj4gTU0uDQo+ID4gPj4+Pj4+IFRoZSBmdW5jdGlvbiBzaG91bGQNCj4gPiA+Pj4+Pj4gKyAgcmV0 dXJuIEVGSV9VTlNVUFBPUlRFRCBpZiB0aGUgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydA0KPiA+ ID4+Pj4+PiArIGhpZGluZyBvZg0KPiA+ID4+Pj4+PiBNTVJBTS4gVGhlIGZ1bmN0aW9uDQo+ID4g Pj4+Pj4+ICsgIHNob3VsZCByZXR1cm4gRUZJX0RFVklDRV9FUlJPUiBpZiB0aGUgTU1SQU0gY29u ZmlndXJhdGlvbg0KPiBpcw0KPiA+ID4+PiBsb2NrZWQuDQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+ Pj4gKyAgQHBhcmFtICBQZWlTZXJ2aWNlcyAgICAgICAgICAgIEFuIGluZGlyZWN0IHBvaW50ZXIg dG8gdGhlIFBFSSBTZXJ2aWNlcw0KPiA+ID4+PiBUYWJsZQ0KPiA+ID4+Pj4+PiBwdWJsaXNoZWQg YnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+ID4+Pj4+PiArICBAcGFyYW0gIFRoaXMgICAgICAg ICAgICAgICAgICAgVGhlIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSBpbnN0YW5jZS4NCj4gPiA+Pj4+ Pj4gKyAgQHBhcmFtICBEZXNjcmlwdG9ySW5kZXggICAgICAgIFRoZSByZWdpb24gb2YgTU1SQU0g dG8gT3Blbi4NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9TVUNDRVNT ICAgICAgICAgICAgVGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4NCj4gPiA+Pj4+Pj4gKyAg QHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICAgIFRoZSBzeXN0ZW0gZG9lcyBub3Qgc3VwcG9y dA0KPiA+ID4+IG9wZW5pbmcNCj4gPiA+Pj4+PiBhbmQNCj4gPiA+Pj4+Pj4gY2xvc2luZyBvZiBN TVJBTS4NCj4gPiA+Pj4+Pj4gKyAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgIE1NUkFN IGNhbm5vdCBiZSBvcGVuZWQsDQo+ID4gPj4gcGVyaGFwcw0KPiA+ID4+Pj4+PiBiZWNhdXNlIGl0 IGlzIGxvY2tlZC4NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArKiovDQo+ID4gPj4+Pj4+ICt0 eXBlZGVmDQo+ID4gPj4+Pj4+ICtFRklfU1RBVFVTDQo+ID4gPj4+Pj4+ICsoRUZJQVBJICpFRklf UEVJX01NX09QRU4pKA0KPiA+ID4+Pj4+PiArICBJTiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAg ICAgICAgICoqUGVpU2VydmljZXMsDQo+ID4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQUNDRVNT X1BQSSAgICAgICAgICAgKlRoaXMsDQo+ID4gPj4+Pj4+ICsgIElOIFVJTlROICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGVzY3JpcHRvckluZGV4DQo+ID4gPj4+Pj4+ICsgICk7DQo+ID4gPj4+ Pj4+ICsNCj4gPiA+Pj4+Pj4gKy8qKg0KPiA+ID4+Pj4+PiArICBJbmhpYml0cyBhY2Nlc3MgdG8g dGhlIE1NUkFNLg0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsgIFRoaXMgZnVuY3Rpb24gImNs b3NlcyIgTU1SQU0gc28gdGhhdCBpdCBpcyBub3QgdmlzaWJsZSB3aGlsZQ0KPiA+ID4+Pj4+PiAr IG91dHNpZGUgb2YNCj4gPiA+Pj4+PiBNTS4NCj4gPiA+Pj4+Pj4gVGhlIGZ1bmN0aW9uIHNob3Vs ZA0KPiA+ID4+Pj4+PiArICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEIGlmIHRoZSBoYXJkd2FyZSBk b2VzIG5vdCBzdXBwb3J0DQo+ID4gPj4+Pj4+ICsgaGlkaW5nIG9mDQo+ID4gPj4+Pj4+IE1NUkFN Lg0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAg ICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRvIHRoZSBQRUkgU2VydmljZXMNCj4gPiA+Pj4gVGFi bGUNCj4gPiA+Pj4+Pj4gcHVibGlzaGVkIGJ5IHRoZSBQRUkgRm91bmRhdGlvbi4NCj4gPiA+Pj4+ Pj4gKyAgQHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VT U19QUEkgaW5zdGFuY2UuDQo+ID4gPj4+Pj4+ICsgIEBwYXJhbSAgRGVzY3JpcHRvckluZGV4ICAg ICAgICBUaGUgcmVnaW9uIG9mIE1NUkFNIHRvIENsb3NlLg0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+ Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHdhcyBz dWNjZXNzZnVsLg0KPiA+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAg VGhlIHN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0DQo+ID4gPj4gb3BlbmluZw0KPiA+ID4+Pj4+IGFu ZA0KPiA+ID4+Pj4+PiBjbG9zaW5nIG9mIE1NUkFNLg0KPiA+ID4+Pj4+PiArICBAcmV0dmFsIEVG SV9ERVZJQ0VfRVJST1IgICAgICAgTU1SQU0gY2Fubm90IGJlIGNsb3NlZC4NCj4gPiA+Pj4+Pj4g Kw0KPiA+ID4+Pj4+PiArKiovDQo+ID4gPj4+Pj4+ICt0eXBlZGVmDQo+ID4gPj4+Pj4+ICtFRklf U1RBVFVTDQo+ID4gPj4+Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX0NMT1NFKSgNCj4gPiA+Pj4+ Pj4gKyAgSU4gRUZJX1BFSV9TRVJWSUNFUyAgICAgICAgICAgICAgICAqKlBlaVNlcnZpY2VzLA0K PiA+ID4+Pj4+PiArICBJTiBFRklfUEVJX01NX0FDQ0VTU19QUEkgICAgICAgICAgICpUaGlzLA0K PiA+ID4+Pj4+PiArICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0 b3JJbmRleA0KPiA+ID4+Pj4+PiArICApOw0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsvKioN Cj4gPiA+Pj4+Pj4gKyAgVGhpcyBmdW5jdGlvbiBwcm9oaWJpdHMgYWNjZXNzIHRvIHRoZSBNTVJB TSByZWdpb24uIFRoaXMNCj4gPiA+Pj4+Pj4gK2Z1bmN0aW9uIGlzDQo+ID4gPj4+Pj4gdXN1YWxs eQ0KPiA+ID4+Pj4+PiBpbXBsZW1lbnRlZCBzdWNoDQo+ID4gPj4+Pj4+ICsgIHRoYXQgaXQgaXMg YSB3cml0ZS1vbmNlIG9wZXJhdGlvbi4NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArICBAcGFy YW0gIFBlaVNlcnZpY2VzICAgICAgICAgICAgQW4gaW5kaXJlY3QgcG9pbnRlciB0byB0aGUgUEVJ IFNlcnZpY2VzDQo+ID4gPj4+IFRhYmxlDQo+ID4gPj4+Pj4+IHB1Ymxpc2hlZCBieSB0aGUgUEVJ IEZvdW5kYXRpb24uDQo+ID4gPj4+Pj4+ICsgIEBwYXJhbSAgVGhpcyAgICAgICAgICAgICAgICAg ICBUaGUgRUZJX1BFSV9NTV9BQ0NFU1NfUFBJIGluc3RhbmNlLg0KPiA+ID4+Pj4+PiArICBAcGFy YW0gIERlc2NyaXB0b3JJbmRleCAgICAgICAgVGhlIHJlZ2lvbiBvZiBNTVJBTSB0byBMb2NrLg0K PiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAg ICBUaGUgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLg0KPiA+ID4+Pj4+PiArICBAcmV0dmFsIEVG SV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIHN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0DQo+ID4gPj4g b3BlbmluZw0KPiA+ID4+Pj4+IGFuZA0KPiA+ID4+Pj4+PiBjbG9zaW5nIG9mIE1NUkFNLg0KPiA+ ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsqKi8NCj4gPiA+Pj4+Pj4gK3R5cGVkZWYNCj4gPiA+Pj4+ Pj4gK0VGSV9TVEFUVVMNCj4gPiA+Pj4+Pj4gKyhFRklBUEkgKkVGSV9QRUlfTU1fTE9DSykoDQo+ ID4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICAgICAgKipQZWlTZXJ2 aWNlcywNCj4gPiA+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9NTV9BQ0NFU1NfUFBJICAgICAgICAgICAq VGhpcywNCj4gPiA+Pj4+Pj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICBE ZXNjcmlwdG9ySW5kZXgNCj4gPiA+Pj4+Pj4gKyAgKTsNCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+ PiArLyoqDQo+ID4gPj4+Pj4+ICsgIFF1ZXJpZXMgdGhlIG1lbW9yeSBjb250cm9sbGVyIGZvciB0 aGUgcG9zc2libGUgcmVnaW9ucyB0aGF0DQo+ID4gPj4+Pj4+ICt3aWxsIHN1cHBvcnQNCj4gPiA+ Pj4+Pj4gTU1SQU0uDQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4gKyAgVGhpcyBmdW5jdGlvbiBk ZXNjcmliZXMgdGhlIE1NUkFNIHJlZ2lvbnMuDQo+ID4gPj4+Pj4+ICsgIFRoaXMgZGF0YSBzdHJ1 Y3R1cmUgZm9ybXMgdGhlIGNvbnRyYWN0IGJldHdlZW4gdGhlDQo+IE1NX0FDQ0VTUw0KPiA+ID4+ IGFuZA0KPiA+ID4+Pj4+PiBNTV9JUEwgZHJpdmVycy4gVGhlcmUgaXMgYW4NCj4gPiA+Pj4+Pj4g KyAgYW1iaWd1aXR5IHdoZW4gYW55IE1NUkFNIHJlZ2lvbiBpcyByZW1hcHBlZC4gRm9yIGV4YW1w bGUsDQo+IG9uDQo+ID4gPj4+PiBzb21lDQo+ID4gPj4+Pj4+IGNoaXBzZXRzLCBzb21lIE1NUkFN DQo+ID4gPj4+Pj4+ICsgIHJlZ2lvbnMgY2FuIGJlIGluaXRpYWxpemVkIGF0IG9uZSBwaHlzaWNh bCBhZGRyZXNzIGJ1dCBpcw0KPiA+ID4+Pj4+PiArIGxhdGVyIGFjY2Vzc2VkIGF0DQo+ID4gPj4+ Pj4+IGFub3RoZXIgcHJvY2Vzc29yIGFkZHJlc3MuDQo+ID4gPj4+Pj4+ICsgIFRoZXJlIGlzIGN1 cnJlbnRseSBubyB3YXkgZm9yIHRoZSBNTSBJUEwgZHJpdmVyIHRvIGtub3cgdGhhdA0KPiA+ID4+ Pj4+PiArIGl0IG11c3QgdXNlDQo+ID4gPj4+Pj4+IHR3byBkaWZmZXJlbnQgYWRkcmVzc2VzDQo+ ID4gPj4+Pj4+ICsgIGRlcGVuZGluZyBvbiB3aGF0IGl0IGlzIHRyeWluZyB0byBkby4gQXMgYSBy ZXN1bHQsIGluaXRpYWwNCj4gPiA+Pj4+Pj4gKyBjb25maWd1cmF0aW9uIGFuZA0KPiA+ID4+Pj4+ PiBsb2FkaW5nIGNhbiB1c2UgdGhlDQo+ID4gPj4+Pj4+ICsgIHBoeXNpY2FsIGFkZHJlc3MgUGh5 c2ljYWxTdGFydCB3aGlsZSBNTVJBTSBpcyBvcGVuLiBIb3dldmVyLA0KPiA+ID4+Pj4+PiArIG9u Y2UNCj4gPiA+Pj4+IHRoZQ0KPiA+ID4+Pj4+PiByZWdpb24gaGFzIGJlZW4NCj4gPiA+Pj4+Pj4g KyAgY2xvc2VkIGFuZCBuZWVkcyB0byBiZSBhY2Nlc3NlZCBieSBhZ2VudHMgaW4gTU0sIHRoZQ0K PiA+ID4+Pj4+PiArIENwdVN0YXJ0IGFkZHJlc3MNCj4gPiA+Pj4+Pj4gbXVzdCBiZSB1c2VkLg0K PiA+ID4+Pj4+PiArICBUaGlzIFBQSSBwdWJsaXNoZXMgdGhlIGF2YWlsYWJsZSBtZW1vcnkgdGhh dCB0aGUgY2hpcHNldCBjYW4NCj4gPiA+Pj4+Pj4gKyBzaHJvdWQgZm9yDQo+ID4gPj4+Pj4gdGhl DQo+ID4gPj4+Pj4+IHVzZSBvZiBpbnN0YWxsaW5nIGNvZGUuDQo+ID4gPj4+Pj4+ICsgIFRoZXNl IHJlZ2lvbnMgc2VydmUgdGhlIGR1YWwgcHVycG9zZSBvZiBkZXNjcmliaW5nIHdoaWNoDQo+ID4g Pj4+Pj4+ICsgcmVnaW9ucyBoYXZlDQo+ID4gPj4+Pj4+IGJlZW4gb3BlbiwgY2xvc2VkLCBvciBs b2NrZWQuDQo+ID4gPj4+Pj4+ICsgIEluIGFkZGl0aW9uLCB0aGVzZSByZWdpb25zIG1heSBpbmNs dWRlIG92ZXJsYXBwaW5nIG1lbW9yeQ0KPiA+ID4+Pj4+PiArIHJhbmdlcywNCj4gPiA+Pj4+Pj4g ZGVwZW5kaW5nIG9uIHRoZSBjaGlwc2V0DQo+ID4gPj4+Pj4+ICsgIGltcGxlbWVudGF0aW9uLiBU aGUgbGF0dGVyIG1pZ2h0IGluY2x1ZGUgYSBjaGlwc2V0IHRoYXQNCj4gPiA+Pj4+Pj4gKyBzdXBw b3J0cyBULVNFRywNCj4gPiA+Pj4+Pj4gd2hlcmUgbWVtb3J5IG5lYXIgdGhlIHRvcA0KPiA+ID4+ Pj4+PiArICBvZiB0aGUgcGh5c2ljYWwgRFJBTSBjYW4gYmUgYWxsb2NhdGVkIGZvciBNTVJBTSB0 b28uDQo+ID4gPj4+Pj4+ICsgIFRoZSBrZXkgdGhpbmcgdG8gbm90ZSBpcyB0aGF0IHRoZSByZWdp b25zIHRoYXQgYXJlIGRlc2NyaWJlZA0KPiA+ID4+Pj4+PiArIGJ5IHRoZSBQUEkNCj4gPiA+Pj4+ IGFyZQ0KPiA+ID4+Pj4+IGENCj4gPiA+Pj4+Pj4gc3Vic2V0IG9mIHRoZSBjYXBhYmlsaXRpZXMN Cj4gPiA+Pj4+Pj4gKyAgb2YgdGhlIGhhcmR3YXJlLg0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRv IHRoZSBQRUkgU2VydmljZXMNCj4gPiA+Pj4gVGFibGUNCj4gPiA+Pj4+Pj4gcHVibGlzaGVkIGJ5 IHRoZSBQRUkgRm91bmRhdGlvbi4NCj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAgICAgICAg ICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkgaW5zdGFuY2UuDQo+ID4gPj4+Pj4+ ICsgIEBwYXJhbSAgTW1yYW1NYXBTaXplICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhlIHNpemUs IGluIGJ5dGVzLCBvZg0KPiA+ID4+IHRoZQ0KPiA+ID4+Pj4+PiBNbXJhbU1lbW9yeU1hcCBidWZm ZXIuIE9uIGlucHV0LCB0aGlzIHZhbHVlIGlzDQo+ID4gPj4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHRoYXQNCj4gPiA+Pj4+Pj4g KyBpcyBhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci4gT24NCj4gPiA+Pj4+Pj4gb3V0cHV0LCBpdCBp cyB0aGUgc2l6ZSBvZiB0aGUNCj4gPiA+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJ1ZmZlciB0aGF0IHdhcyByZXR1cm5lZCBieQ0KPiA+ID4+Pj4+PiArIHRoZSBmaXJt d2FyZSBpZiB0aGUgYnVmZmVyDQo+ID4gPj4+Pj4gd2FzDQo+ID4gPj4+Pj4+IGxhcmdlIGVub3Vn aCwgb3IsIGlmIHRoZQ0KPiA+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnVmZmVyIHdhcyB0b28gc21hbGwsIHRoZQ0KPiA+ID4+Pj4+PiArIHNpemUgb2YgdGhlIGJ1 ZmZlciB0aGF0IGlzDQo+ID4gPj4+Pj4gbmVlZGVkIHRvDQo+ID4gPj4+Pj4+IGNvbnRhaW4gdGhl IG1hcC4NCj4gPiA+Pj4+Pj4gKyAgQHBhcmFtIE1tcmFtTWFwICAgICAgICAgICAgICAgIEEgcG9p bnRlciB0byB0aGUgYnVmZmVyIGluIHdoaWNoDQo+ID4gPj4+IGZpcm13YXJlDQo+ID4gPj4+Pj4+ IHBsYWNlcyB0aGUgY3VycmVudCBtZW1vcnkgbWFwLiBUaGUgbWFwIGlzDQo+ID4gPj4+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBhcnJheSBvZg0KPiA+ID4+Pj4+PiAr IEVGSV9NTVJBTV9ERVNDUklQVE9Scw0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsgIEByZXR2 YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgY2hpcHNldCBzdXBwb3J0ZWQgdGhlIGdpdmVu DQo+ID4gPj4gcmVzb3VyY2UuDQo+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0JVRkZFUl9UT09f U01BTEwgICBUaGUgTW1yYW1NYXAgcGFyYW1ldGVyDQo+ID4gd2FzDQo+ID4gPj4+IHRvbw0KPiA+ ID4+Pj4+PiBzbWFsbC4gVGhlIGN1cnJlbnQNCj4gPiA+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJ1ZmZlciBzaXplIG5lZWRlZCB0byBob2xkDQo+ID4gPj4+Pj4+ICsg dGhlIG1lbW9yeSBtYXAgaXMNCj4gPiA+Pj4+IHJldHVybmVkDQo+ID4gPj4+Pj4gaW4NCj4gPiA+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1tcmFtTWFwU2l6ZS4NCj4g PiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArKiovDQo+ID4gPj4+Pj4+ICt0eXBlZGVmDQo+ID4gPj4+ Pj4+ICtFRklfU1RBVFVTDQo+ID4gPj4+Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX0NBUEFCSUxJ VElFUykoDQo+ID4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICAgICAg KipQZWlTZXJ2aWNlcywNCj4gPiA+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9NTV9BQ0NFU1NfUFBJICAg ICAgICAgICAqVGhpcywNCj4gPiA+Pj4+Pj4gKyAgSU4gT1VUIFVJTlROICAgICAgICAgICAgICAg ICAgICAgICAqTW1yYW1NYXBTaXplLA0KPiA+ID4+Pj4+PiArICBJTiBPVVQgRUZJX01NUkFNX0RF U0NSSVBUT1IgICAgICAgICpNbXJhbU1hcA0KPiA+ID4+Pj4+PiArICApOw0KPiA+ID4+Pj4+PiAr DQo+ID4gPj4+Pj4+ICsvLy8NCj4gPiA+Pj4+Pj4gKy8vLyAgRUZJIE1NIEFjY2VzcyBQUEkgaXMg dXNlZCB0byBjb250cm9sIHRoZSB2aXNpYmlsaXR5IG9mDQo+ID4gPj4+Pj4+ICt0aGUgTU1SQU0g b24NCj4gPiA+Pj4+PiB0aGUNCj4gPiA+Pj4+Pj4gcGxhdGZvcm0uDQo+ID4gPj4+Pj4+ICsvLy8g IEl0IGFic3RyYWN0cyB0aGUgbG9jYXRpb24gYW5kIGNoYXJhY3RlcmlzdGljcyBvZiBNTVJBTS4N Cj4gPiA+Pj4+Pj4gK1RoZSBwbGF0Zm9ybQ0KPiA+ID4+Pj4+PiBzaG91bGQgcmVwb3J0DQo+ID4g Pj4+Pj4+ICsvLy8gIGFsbCBNTVJBTSB2aWEgRUZJX1BFSV9NTV9BQ0NFU1NfUFBJLiBUaGUgZXhw ZWN0YXRpb24gaXMNCj4gPiB0aGF0DQo+ID4gPj4+Pj4+ICt0aGUNCj4gPiA+Pj4+Pj4gbm9ydGgg YnJpZGdlIG9yDQo+ID4gPj4+Pj4+ICsvLy8gIG1lbW9yeSBjb250cm9sbGVyIHdvdWxkIHB1Ymxp c2ggdGhpcyBQUEkuDQo+ID4gPj4+Pj4+ICsvLy8NCj4gPiA+Pj4+Pj4gK3N0cnVjdCBfRUZJX1BF SV9NTV9BQ0NFU1NfUFBJIHsNCj4gPiA+Pj4+Pj4gKyAgRUZJX1BFSV9NTV9PUEVOICAgICAgICAg IE9wZW47DQo+ID4gPj4+Pj4+ICsgIEVGSV9QRUlfTU1fQ0xPU0UgICAgICAgICBDbG9zZTsNCj4g PiA+Pj4+Pj4gKyAgRUZJX1BFSV9NTV9MT0NLICAgICAgICAgIExvY2s7DQo+ID4gPj4+Pj4+ICsg IEVGSV9QRUlfTU1fQ0FQQUJJTElUSUVTICBHZXRDYXBhYmlsaXRpZXM7DQo+ID4gPj4+Pj4+ICsg IEJPT0xFQU4gICAgICAgICAgICAgICAgICBMb2NrU3RhdGU7DQo+ID4gPj4+Pj4+ICsgIEJPT0xF QU4gICAgICAgICAgICAgICAgICBPcGVuU3RhdGU7DQo+ID4gPj4+Pj4+ICt9Ow0KPiA+ID4+Pj4+ PiArDQo+ID4gPj4+Pj4+ICtleHRlcm4gRUZJX0dVSUQgZ0VmaVBlaU1tQWNjZXNzUHBpR3VpZDsN Cj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArI2VuZGlmDQo+ID4gPj4+Pj4+IGRpZmYgLS1naXQg YS9NZGVQa2cvSW5jbHVkZS9QcGkvTW1Db250cm9sLmgNCj4gPiA+Pj4+Pj4gYi9NZGVQa2cvSW5j bHVkZS9QcGkvTW1Db250cm9sLmggbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gPiA+Pj4+ Pj4gMDAwMDAwMDAwMC4uOTgzZWQ5NWNkNQ0KPiA+ID4+Pj4+PiAtLS0gL2Rldi9udWxsDQo+ID4g Pj4+Pj4+ICsrKyBiL01kZVBrZy9JbmNsdWRlL1BwaS9NbUNvbnRyb2wuaA0KPiA+ID4+Pj4+PiBA QCAtMCwwICsxLDkwIEBADQo+ID4gPj4+Pj4+ICsvKiogQGZpbGUNCj4gPiA+Pj4+Pj4gKyAgRUZJ IE1NIENvbnRyb2wgUFBJIGRlZmluaXRpb24uDQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4gKyAg VGhpcyBQUEkgaXMgdXNlZCBpbml0aWF0ZSBzeW5jaHJvbm91cyBNTUkgYWN0aXZhdGlvbnMuIFRo aXMNCj4gPiA+Pj4+Pj4gKyBQUEkgY291bGQgYmUNCj4gPiA+Pj4+Pj4gcHVibGlzaGVkIGJ5IGEg cHJvY2Vzc29yDQo+ID4gPj4+Pj4+ICsgIGRyaXZlciB0byBhYnN0cmFjdCB0aGUgTU1JIElQSSBv ciBhIGRyaXZlciB3aGljaCBhYnN0cmFjdHMNCj4gPiA+Pj4+Pj4gKyB0aGUgQVNJQyB0aGF0DQo+ ID4gPj4+PiBpcw0KPiA+ID4+Pj4+PiBzdXBwb3J0aW5nIHRoZSBBUE0gcG9ydC4NCj4gPiA+Pj4+ Pj4gKyAgQmVjYXVzZSBvZiB0aGUgcG9zc2liaWxpdHkgb2YgcGVyZm9ybWluZyBNTUkgSVBJDQo+ ID4gPj4+Pj4+ICsgdHJhbnNhY3Rpb25zLCB0aGUgYWJpbGl0eQ0KPiA+ID4+Pj4+IHRvDQo+ID4g Pj4+Pj4+IGdlbmVyYXRlIHRoaXMgZXZlbnQNCj4gPiA+Pj4+Pj4gKyAgZnJvbSBhIHBsYXRmb3Jt IGNoaXBzZXQgYWdlbnQgaXMgYW4gb3B0aW9uYWwgY2FwYWJpbGl0eSBmb3INCj4gPiA+Pj4+Pj4g KyBib3RoDQo+ID4gPj4+Pj4+ICsgSUEtMzINCj4gPiA+Pj4+IGFuZA0KPiA+ID4+Pj4+PiB4NjQt YmFzZWQgc3lzdGVtcy4NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArICBDb3B5cmlnaHQgKGMp IDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gPj4+Pj4+ICsgcmVzZXJ2 ZWQuPEJSPg0KPiA+ID4+Pj4+PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsgIEBwYXIgUmV2aXNpb24gUmVm ZXJlbmNlOg0KPiA+ID4+Pj4+PiArICBUaGlzIFBQSSBpcyBpbnRyb2R1Y2VkIGluIFBJIFZlcnNp b24gMS41Lg0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsqKi8NCj4gPiA+Pj4+Pj4gKw0KPiA+ ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsjaWZuZGVmIF9NTV9DT05UUk9MX1BQSV9IXw0KPiA+ID4+ Pj4+PiArI2RlZmluZSBfTU1fQ09OVFJPTF9QUElfSF8NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+ PiArI2RlZmluZSBFRklfUEVJX01NX0NPTlRST0xfUFBJX0dVSUQgXA0KPiA+ID4+Pj4+PiArICB7 IDB4NjFjNjg3MDIsIDB4NGQ3ZSwgMHg0ZjQzLCAweDhkLCAweGVmLCAweGE3LCAweDQzLCAweDUs DQo+ID4gPj4+Pj4+ICsweGNlLCAweDc0LA0KPiA+ID4+Pj4+IDB4YzUgfQ0KPiA+ID4+Pj4+PiAr DQo+ID4gPj4+Pj4+ICt0eXBlZGVmIHN0cnVjdCBfRUZJX1BFSV9NTV9DT05UUk9MX1BQSQ0KPiA+ ID4+PiBFRklfUEVJX01NX0NPTlRST0xfUFBJOw0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsv KioNCj4gPiA+Pj4+Pj4gKyAgSW52b2tlcyBQUEkgYWN0aXZhdGlvbiBmcm9tIHRoZSBQSSBQRUkg ZW52aXJvbm1lbnQuDQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBQZWlTZXJ2 aWNlcyAgICAgICAgICAgQW4gaW5kaXJlY3QgcG9pbnRlciB0byB0aGUgUEVJIFNlcnZpY2VzDQo+ ID4gPj4gVGFibGUNCj4gPiA+Pj4+Pj4gcHVibGlzaGVkIGJ5IHRoZSBQRUkgRm91bmRhdGlvbi4N Cj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgVGhlIFBFSV9NTV9D T05UUk9MX1BQSSBpbnN0YW5jZS4NCj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBBcmd1bWVudEJ1ZmZl ciAgICAgICAgVGhlIHZhbHVlIHBhc3NlZCB0byB0aGUgTU1JDQo+ID4gaGFuZGxlci4NCj4gPiA+ Pj4+IFRoaXMNCj4gPiA+Pj4+Pj4gdmFsdWUgY29ycmVzcG9uZHMgdG8gdGhlDQo+ID4gPj4+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3TW1pSW5wdXRWYWx1ZSBpbiB0aGUN Cj4gPiA+Pj4+Pj4gKyBSZWdpc3RlckNvbnRleHQgcGFyYW1ldGVyDQo+ID4gPj4+PiBmb3INCj4g PiA+Pj4+PiB0aGUNCj4gPiA+Pj4+Pj4gUmVnaXN0ZXIoKQ0KPiA+ID4+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBpbiB0aGUNCj4gPiA+Pj4+Pj4gKyBFRklf TU1fU1dfRElTUEFUQ0hfUFJPVE9DT0wNCj4gPiA+Pj4+IGFuZA0KPiA+ID4+Pj4+IGluDQo+ID4g Pj4+Pj4+IHRoZSBDb250ZXh0IHBhcmFtZXRlcg0KPiA+ID4+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbiB0aGUgY2FsbCB0byB0aGUgRGlzcGF0Y2hGdW5jdGlvbg0KPiA+ ID4+Pj4+PiArICBAcGFyYW0gIEFyZ3VtZW50QnVmZmVyU2l6ZSAgICBUaGUgc2l6ZSBvZiB0aGUg ZGF0YSBwYXNzZWQgaW4NCj4gPiA+Pj4+Pj4gQXJndW1lbnRCdWZmZXIgb3IgTlVMTCBpZiBBcmd1 bWVudEJ1ZmZlciBpcyBOVUxMLg0KPiA+ID4+Pj4+PiArICBAcGFyYW0gIFBlcmlvZGljICAgICAg ICAgICAgICBBbiBvcHRpb25hbCBtZWNoYW5pc20gdG8gcGVyaW9kaWNhbGx5DQo+ID4gPj4gcmVw ZWF0DQo+ID4gPj4+Pj4+IGFjdGl2YXRpb24uDQo+ID4gPj4+Pj4+ICsgIEBwYXJhbSAgQWN0aXZh dGlvbkludGVydmFsICAgIEFuIG9wdGlvbmFsIHBhcmFtZXRlciB0byByZXBlYXQgYXQNCj4gPiA+ PiB0aGlzDQo+ID4gPj4+Pj4gcGVyaW9kDQo+ID4gPj4+Pj4+IG9uZQ0KPiA+ID4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIG9yLCBpZiB0aGUgUGVyaW9kaWMgQm9v bGVhbiBpcyBzZXQsIHBlcmlvZGljYWxseS4NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArICBA cmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgTU1JIGhhcyBiZWVuIGVuZ2VuZGVyZWQu DQo+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgIFRoZSB0aW1pbmcg aXMgdW5zdXBwb3J0ZWQuDQo+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1F VEVSIFRoZSBhY3RpdmF0aW9uIHBlcmlvZCBpcw0KPiA+ID4+PiB1bnN1cHBvcnRlZC4NCj4gPiA+ Pj4+Pj4gKyAgQHJldHZhbCBFRklfTk9UX1NUQVJURUQgICAgICAgVGhlIE1NIGJhc2Ugc2Vydmlj ZSBoYXMgbm90DQo+IGJlZW4NCj4gPiA+Pj4+PiBpbml0aWFsaXplZC4NCj4gPiA+Pj4+Pj4gKw0K PiA+ID4+Pj4+PiArKiovDQo+ID4gPj4+Pj4+ICt0eXBlZGVmDQo+ID4gPj4+Pj4+ICtFRklfU1RB VFVTDQo+ID4gPj4+Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX0FDVElWQVRFKSAoDQo+ID4gPj4+ Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICoqUGVpU2VydmljZXMsDQo+ID4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQ09OVFJPTF9QUEkg ICAgICAgICAgICAgICAgICAgICAgICAgICogVGhpcywNCj4gPiA+Pj4+Pj4gKyAgSU4gT1VUIElO VDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKkFyZ3VtZW50QnVmZmVy IE9QVElPTkFMLA0KPiA+ID4+Pj4+PiArICBJTiBPVVQgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqQXJndW1lbnRCdWZmZXJTaXplDQo+ID4gT1BUSU9OQUwsDQo+ ID4gPj4+Pj4+ICsgIElOIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBlcmlvZGljIE9QVElPTkFMLA0KPiA+ID4+Pj4+PiArICBJTiBVSU5UTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3RpdmF0aW9uSW50ZXJ2YWwgT1BU SU9OQUwNCj4gPiA+Pj4+Pj4gKyAgKTsNCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArLyoqDQo+ ID4gPj4+Pj4+ICsgIENsZWFycyBhbnkgc3lzdGVtIHN0YXRlIHRoYXQgd2FzIGNyZWF0ZWQgaW4g cmVzcG9uc2UgdG8gdGhlDQo+ID4gVHJpZ2dlcigpDQo+ID4gPj4+IGNhbGwuDQo+ID4gPj4+Pj4+ ICsNCj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBQZWlTZXJ2aWNlcyAgICAgICAgICAgR2VuZXJhbCBw dXJwb3NlIHNlcnZpY2VzIGF2YWlsYWJsZSB0bw0KPiA+ID4+IGV2ZXJ5DQo+ID4gPj4+Pj4gUEVJ TS4NCj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgVGhlIFBFSV9N TV9DT05UUk9MX1BQSSBpbnN0YW5jZS4NCj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBQZXJpb2RpYyAg ICAgICAgICAgICAgT3B0aW9uYWwgcGFyYW1ldGVyIHRvIHJlcGVhdCBhdCB0aGlzDQo+ID4gPj4g cGVyaW9kDQo+ID4gPj4+PiBvbmUNCj4gPiA+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGltZSBvciwgaWYgdGhlIFBlcmlvZGljIEJvb2xlYW4gaXMgc2V0LCBwZXJpb2Rp Y2FsbHkuDQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAg ICAgICAgICAgVGhlIE1NSSBoYXMgYmVlbiBlbmdlbmRlcmVkLg0KPiA+ID4+Pj4+PiArICBAcmV0 dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICBUaGUgc291cmNlIGNvdWxkIG5vdCBiZSBjbGVhcmVk Lg0KPiA+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgc2Vydmlj ZSBkaWQgbm90IHN1cHBvcnQNCj4gPiA+Pj4+Pj4gKyB0aGUNCj4gPiA+Pj4+PiBQZXJpb2RpYw0K PiA+ID4+Pj4+PiBpbnB1dCBhcmd1bWVudC4NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArKiov DQo+ID4gPj4+Pj4+ICt0eXBlZGVmDQo+ID4gPj4+Pj4+ICtFRklfU1RBVFVTDQo+ID4gPj4+Pj4+ ICsoRUZJQVBJICpQRUlfTU1fREVBQ1RJVkFURSkgKA0KPiA+ID4+Pj4+PiArICBJTiBFRklfUEVJ X1NFUlZJQ0VTICAgICAgICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+ID4gPj4+Pj4+ ICsgIElOIEVGSV9QRUlfTU1fQ09OVFJPTF9QUEkgICAgICAgICAgICAgICAgKiBUaGlzLA0KPiA+ ID4+Pj4+PiArICBJTiBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcmlv ZGljIE9QVElPTkFMDQo+ID4gPj4+Pj4+ICsgICk7DQo+ID4gPj4+Pj4+ICsNCj4gPiA+Pj4+Pj4g Ky8vLw0KPiA+ID4+Pj4+PiArLy8vICBUaGUgRUZJX1BFSV9NTV9DT05UUk9MX1BQSSBpcyBwcm9k dWNlZCBieSBhIFBFSU0uIEl0DQo+ID4gPj4+IHByb3ZpZGVzDQo+ID4gPj4+PiBhbg0KPiA+ID4+ Pj4+PiBhYnN0cmFjdGlvbiBvZiB0aGUNCj4gPiA+Pj4+Pj4gKy8vLyAgcGxhdGZvcm0gaGFyZHdh cmUgdGhhdCBnZW5lcmF0ZXMgYW4gTU1JLiBUaGVyZSBhcmUgb2Z0ZW4NCj4gPiA+Pj4+Pj4gK0kv TyBwb3J0cw0KPiA+ID4+Pj4+PiB0aGF0LCB3aGVuIGFjY2Vzc2VkLCB3aWxsDQo+ID4gPj4+Pj4+ ICsvLy8gIGdlbmVyYXRlIHRoZSBNTUkuIEFsc28sIHRoZSBoYXJkd2FyZSBvcHRpb25hbGx5IHN1 cHBvcnRzDQo+ID4gPj4+Pj4+ICt0aGUNCj4gPiA+Pj4+IHBlcmlvZGljDQo+ID4gPj4+Pj4+IGdl bmVyYXRpb24gb2YgdGhlc2Ugc2lnbmFscy4NCj4gPiA+Pj4+Pj4gKy8vLw0KPiA+ID4+Pj4+PiAr c3RydWN0IF9QRUlfTU1fQ09OVFJPTF9QUEkgew0KPiA+ID4+Pj4+PiArICBQRUlfTU1fQUNUSVZB VEUgICAgVHJpZ2dlcjsNCj4gPiA+Pj4+Pj4gKyAgUEVJX01NX0RFQUNUSVZBVEUgIENsZWFyOw0K PiA+ID4+Pj4+PiArfTsNCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArZXh0ZXJuIEVGSV9HVUlE IGdFZmlQZWlNbUNvbnRyb2xQcGlHdWlkOw0KPiA+ID4+Pj4+PiArDQo+ID4gPj4+Pj4+ICsjZW5k aWYNCj4gPiA+Pj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZGVjIGIvTWRlUGtnL01k ZVBrZy5kZWMgaW5kZXgNCj4gPiA+Pj4+Pj4gYjM4MmVmZDU3OC4uMzRlMGYzOTM5NSAxMDA2NDQN Cj4gPiA+Pj4+Pj4gLS0tIGEvTWRlUGtnL01kZVBrZy5kZWMNCj4gPiA+Pj4+Pj4gKysrIGIvTWRl UGtnL01kZVBrZy5kZWMNCj4gPiA+Pj4+Pj4gQEAgLTkyNSw2ICs5MjUsMTIgQEANCj4gPiA+Pj4+ Pj4gICAjIyBJbmNsdWRlL1BwaS9TZWNIb2JEYXRhLmgNCj4gPiA+Pj4+Pj4gICBnRWZpU2VjSG9i RGF0YVBwaUd1aWQgPSB7IDB4M2ViZGFmMjAsIDB4NjY2NywgMHg0MGQ4LCB7MHhiNCwNCj4gPiA+ Pj4+Pj4gMHhlZSwNCj4gPiA+Pj4+IDB4ZjUsDQo+ID4gPj4+Pj4+IDB4OTksIDB4OWEsIDB4YzEs IDB4YjcsIDB4MWYgfSB9DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+ICsgICMjIEluY2x1ZGUvUHBp L01tQWNjZXNzLmgNCj4gPiA+Pj4+Pj4gKyAgZ0VmaVBlaU1tQWNjZXNzUHBpR3VpZCAgICAgICAg ICA9ICB7IDB4MjY4ZjMzYTksIDB4Y2NjZCwgMHg0OGJlLA0KPiA+ID4+IHsgMHg4OCwNCj4gPiA+ Pj4+PiAweDE3LA0KPiA+ID4+Pj4+PiAweDg2LCAweDUsIDB4M2EsIDB4YzMsIDB4MmUsIDB4ZDYg fX0NCj4gPiA+Pj4+Pj4gKw0KPiA+ID4+Pj4+PiArICAjIyBJbmNsdWRlL1BwaS9NbUNvbnRyb2wu aA0KPiA+ID4+Pj4+PiArICBnRWZpUGVpTW1Db250cm9sUHBpR3VpZCAgICAgICAgID0gIHsgMHg2 MWM2ODcwMiwgMHg0ZDdlLCAweDRmNDMsDQo+ID4gPj4geyAweDhkLA0KPiA+ID4+Pj4+IDB4ZWYs DQo+ID4gPj4+Pj4+IDB4YTcsIDB4NDMsIDB4NSwgMHhjZSwgMHg3NCwgMHhjNSB9fQ0KPiA+ID4+ Pj4+PiArDQo+ID4gPj4+Pj4+ICAgIw0KPiA+ID4+Pj4+PiAgICMgUFBJcyBkZWZpbmVkIGluIFBJ IDEuNy4NCj4gPiA+Pj4+Pj4gICAjDQo+ID4gPj4+Pj4+IC0tDQo+ID4gPj4+Pj4+IDIuMTYuMi53 aW5kb3dzLjENCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4NCj4gPiA+DQo+ID4g Pg0KPiA+ID4NCj4gPiA+DQo+ID4NCj4gPg0KPiA+IA0KDQo=