From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.86.1571624270613110688 for ; Sun, 20 Oct 2019 19:17:50 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: ray.ni@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Oct 2019 19:17:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,321,1566889200"; d="scan'208";a="200294449" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga003.jf.intel.com with ESMTP; 20 Oct 2019 19:17:49 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 20 Oct 2019 19:17:49 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 20 Oct 2019 19:17:48 -0700 Received: from shsmsx106.ccr.corp.intel.com (10.239.4.159) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Sun, 20 Oct 2019 19:17:48 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.166]) by SHSMSX106.ccr.corp.intel.com ([169.254.10.119]) with mapi id 14.03.0439.000; Mon, 21 Oct 2019 10:17:47 +0800 From: "Ni, Ray" To: "devel@edk2.groups.io" , "mhaeuser@outlook.de" CC: "Justen, Jordan L" , Andrew Fish Subject: Re: [edk2-devel] [PATCH] WinHost: Add SimplePointer support Thread-Topic: [edk2-devel] [PATCH] WinHost: Add SimplePointer support Thread-Index: AQHVctYNzIw1Y7l3LUmZIP4c1t7x5ac8/H7ggAEvQ4CAACNlQIAlHNaAgAEZb5A= Date: Mon, 21 Oct 2019 02:17:46 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C32A0CB@SHSMSX104.ccr.corp.intel.com> References: <734D49CCEBEEF84792F5B80ED585239D5C2F2205@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C2F38CD@SHSMSX104.ccr.corp.intel.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 SXQgd2FzIGp1c3QgcHVzaGVkLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxm IE9mIE1hcnZpbg0KPiBIP3VzZXINCj4gU2VudDogU3VuZGF5LCBPY3RvYmVyIDIwLCAyMDE5IDU6 MzEgUE0NCj4gVG86IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPiBDYzogSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47 IEFuZHJldyBGaXNoDQo+IDxhZmlzaEBhcHBsZS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW1BBVENIXSBXaW5Ib3N0OiBBZGQgU2ltcGxlUG9pbnRlciBzdXBwb3J0DQo+IA0KPiBH b29kIGRheSwNCj4gDQo+IFRoYW5rIHlvdSBmb3IgeW91ciByZXZpZXcuIEkgaGF2ZSBub3Qgc2Vl biB0aGlzIHBhdGNoIHB1c2hlZCB5ZXQsIGNvdWxkIHlvdQ0KPiBwbGVhc2UgdXBkYXRlIG1lIHdp dGggdGhlIHN0YXR1cz8NCj4gDQo+IFRoYW5rcywNCj4gTWFydmluDQo+ID4gUmV2aWV3ZWQtYnk6 IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+PiBGcm9tOiBNYXJ2aW4gSMOkdXNlciA8bWhhZXVzZXJAb3V0bG9vay5kZT4N Cj4gPj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyNiwgMjAxOSA5OjM4IEFNDQo+ID4+IFRv OiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgTWFydmluIEjDpHVzZXINCj4gPj4gPE1hcnZp bi5IYWV1c2VyQG91dGxvb2suY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4gQ2M6IEp1 c3RlbiwgSm9yZGFuIEwgPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBBbmRyZXcgRmlzaA0K PiA+PiA8YWZpc2hAYXBwbGUuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBXaW5Ib3N0 OiBBZGQgU2ltcGxlUG9pbnRlciBzdXBwb3J0DQo+ID4+DQo+ID4+IEdvb2QgZGF5LA0KPiA+Pg0K PiA+PiBJIGhhdmUgdGVzdGVkIGN1cnNvciBtb3ZlbWVudCAoaW5jbHVkaW5nIGluaXRpYWwgd2lu ZG93IGVudHJ5KQ0KPiA+PiBleHRlbnNpdmVseSBhbmQgbGVmdCBtb3VzZSBidXR0b24gZnVuY3Rp b25hbGl0eS4gQXMgdGhlIHJpZ2h0IG1vdXNlDQo+ID4+IGJ1dHRvbiB3b3JrcyBhbmFsb2d1b3Vz bHksIEkgZXhwZWN0IGl0IHRvIHdvcmsuIFRoaXMgd2FzIGFsbCBmcm9tIHRoZQ0KPiA+PiBHZXRT dGF0ZSgpIGZ1bmN0aW9uIG9mIHRoZSBTUCBwcm90b2NvbC4NCj4gPj4NCj4gPj4gVGhhbmtzLA0K PiA+PiBNYXJ2aW4NCj4gPj4NCj4gPj4gQW0gMjYuMDkuMjAxOSB1bSAwMDozMiBzY2hyaWViIE5p LCBSYXk6DQo+ID4+PiBNYXJ2aW4sDQo+ID4+PiBDYW4geW91IGtpbmRseSBzaGFyZSB3aGF0IHVu aXQgdGVzdCB5b3UndmUgZG9uZT8NCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPj4+PiBGcm9tOiBNYXJ2aW4gSMOkdXNlciA8TWFydmluLkhhZXVzZXJAb3V0bG9v ay5jb20+DQo+ID4+Pj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDI0LCAyMDE5IDU6NDYgQU0N Cj4gPj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4+PiBDYzogSnVzdGVuLCBKb3Jk YW4gTCA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47IEFuZHJldyBGaXNoDQo+ID4+Pj4gPGFm aXNoQGFwcGxlLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4+Pj4gU3ViamVj dDogW1BBVENIXSBXaW5Ib3N0OiBBZGQgU2ltcGxlUG9pbnRlciBzdXBwb3J0DQo+ID4+Pj4NCj4g Pj4+PiBGcm9tOiBNYXJ2aW4gSGFldXNlciA8bWhhZXVzZXJAb3V0bG9vay5kZT4NCj4gPj4+Pg0K PiA+Pj4+IENhdGNoIFdNIG1vdXNlIGV2ZW50cyBhbmQgZXhwb3NlIHRoZW0gdmlhIHRoZSBTaW1w bGVQb2ludGVyDQo+IHByb3RvY29sLg0KPiA+Pj4+DQo+ID4+Pj4gQ2M6IEpvcmRhbiBKdXN0ZW4g PGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+DQo+ID4+Pj4gQ2M6IEFuZHJldyBGaXNoIDxhZmlz aEBhcHBsZS5jb20+DQo+ID4+Pj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+ PiBTaWduZWQtb2ZmLWJ5OiBNYXJ2aW4gSGFldXNlciA8bWhhZXVzZXJAb3V0bG9vay5kZT4NCj4g Pj4+PiAtLS0NCj4gPj4+PiAgICBFbXVsYXRvclBrZy9XaW4vSG9zdC9XaW5Hb3BJbnB1dC5jICB8 IDI1ICsrKysrKysrKystLQ0KPiA+Pj4+ICAgIEVtdWxhdG9yUGtnL1dpbi9Ib3N0L1dpbkdvcFNj cmVlbi5jIHwgNDENCj4gKysrKysrKysrKysrKysrKysrKysNCj4gPj4+PiAgICBFbXVsYXRvclBr Zy9XaW4vSG9zdC9XaW5Hb3AuaCAgICAgICB8ICA1ICsrKw0KPiA+Pj4+ICAgIEVtdWxhdG9yUGtn L1dpbi9Ib3N0L1dpbkluY2x1ZGUuaCAgIHwgIDEgKw0KPiA+Pj4+ICAgIDQgZmlsZXMgY2hhbmdl ZCwgNjkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gPj4+Pg0KPiA+Pj4+IGRpZmYg LS1naXQgYS9FbXVsYXRvclBrZy9XaW4vSG9zdC9XaW5Hb3BJbnB1dC5jDQo+ID4+Pj4gYi9FbXVs YXRvclBrZy9XaW4vSG9zdC9XaW5Hb3BJbnB1dC5jDQo+ID4+Pj4gaW5kZXggMGU4ZDExZmM1N2Fj Li4zMTJhNTQ5ODQ3YzUgMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvRW11bGF0b3JQa2cvV2luL0hvc3Qv V2luR29wSW5wdXQuYw0KPiA+Pj4+ICsrKyBiL0VtdWxhdG9yUGtnL1dpbi9Ib3N0L1dpbkdvcElu cHV0LmMNCj4gPj4+PiBAQCAtNDA5LDkgKzQwOSwxMiBAQCBXaW5OdFduZENoZWNrUG9pbnRlciAo DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+ICAgICAgUHJpdmF0ZSA9IEdSQVBISUNTX1BSSVZBVEVf REFUQV9GUk9NX1RISVMgKEdyYXBoaWNzSW8pOw0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+ Pj4+IC0gIHJldHVybiBFRklfTk9UX1JFQURZOw0KPiA+Pj4+DQo+ID4+Pj4gLX0NCj4gPj4+Pg0K PiA+Pj4+ICsgIGlmICghUHJpdmF0ZS0+UG9pbnRlclN0YXRlQ2hhbmdlZCkgew0KPiA+Pj4+DQo+ ID4+Pj4gKyAgICByZXR1cm4gRUZJX05PVF9SRUFEWTsNCj4gPj4+Pg0KPiA+Pj4+ICsgIH0NCj4g Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4+ Pj4NCj4gPj4+PiArfQ0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+ICAgIEVGSV9TVEFU VVMNCj4gPj4+Pg0KPiA+Pj4+ICAgIEVGSUFQSQ0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTQyNCw1ICs0 MjcsMjEgQEAgV2luTnRXbmRHZXRQb2ludGVyU3RhdGUgKA0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+ PiAgICAgIFByaXZhdGUgPSBHUkFQSElDU19QUklWQVRFX0RBVEFfRlJPTV9USElTIChHcmFwaGlj c0lvKTsNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiAtICByZXR1cm4gRUZJX05PVF9S RUFEWTsNCj4gPj4+Pg0KPiA+Pj4+ICsgIGlmICghUHJpdmF0ZS0+UG9pbnRlclN0YXRlQ2hhbmdl ZCkgew0KPiA+Pj4+DQo+ID4+Pj4gKyAgICByZXR1cm4gRUZJX05PVF9SRUFEWTsNCj4gPj4+Pg0K PiA+Pj4+ICsgIH0NCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIFN0YXRlLT5S ZWxhdGl2ZU1vdmVtZW50WCA9DQo+ID4+Pj4gKyBQcml2YXRlLT5Qb2ludGVyU3RhdGUuUmVsYXRp dmVNb3ZlbWVudFg7DQo+ID4+Pj4NCj4gPj4+PiArICBTdGF0ZS0+UmVsYXRpdmVNb3ZlbWVudFkg PQ0KPiA+Pj4+ICsgUHJpdmF0ZS0+UG9pbnRlclN0YXRlLlJlbGF0aXZlTW92ZW1lbnRZOw0KPiA+ Pj4+DQo+ID4+Pj4gKyAgU3RhdGUtPlJlbGF0aXZlTW92ZW1lbnRaID0NCj4gPj4+PiArIFByaXZh dGUtPlBvaW50ZXJTdGF0ZS5SZWxhdGl2ZU1vdmVtZW50WjsNCj4gPj4+Pg0KPiA+Pj4+ICsgIFN0 YXRlLT5MZWZ0QnV0dG9uICAgICAgICA9IFByaXZhdGUtPlBvaW50ZXJTdGF0ZS5MZWZ0QnV0dG9u Ow0KPiA+Pj4+DQo+ID4+Pj4gKyAgU3RhdGUtPlJpZ2h0QnV0dG9uICAgICAgID0gUHJpdmF0ZS0+ UG9pbnRlclN0YXRlLlJpZ2h0QnV0dG9uOw0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+ Pj4gKyAgUHJpdmF0ZS0+UG9pbnRlclN0YXRlLlJlbGF0aXZlTW92ZW1lbnRYID0gMDsNCj4gPj4+ Pg0KPiA+Pj4+ICsgIFByaXZhdGUtPlBvaW50ZXJTdGF0ZS5SZWxhdGl2ZU1vdmVtZW50WSA9IDA7 DQo+ID4+Pj4NCj4gPj4+PiArICBQcml2YXRlLT5Qb2ludGVyU3RhdGUuUmVsYXRpdmVNb3ZlbWVu dFogPSAwOw0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyAgUHJpdmF0ZS0+UG9p bnRlclN0YXRlQ2hhbmdlZCA9IEZBTFNFOw0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+ Pj4gKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+Pj4+DQo+ID4+Pj4gICAgfQ0KPiA+Pj4+DQo+ ID4+Pj4gZGlmZiAtLWdpdCBhL0VtdWxhdG9yUGtnL1dpbi9Ib3N0L1dpbkdvcFNjcmVlbi5jDQo+ ID4+Pj4gYi9FbXVsYXRvclBrZy9XaW4vSG9zdC9XaW5Hb3BTY3JlZW4uYw0KPiA+Pj4+IGluZGV4 IDhmNDI2MDY4MjNmMS4uZmEzNDU5NjQ5N2Y4IDEwMDY0NA0KPiA+Pj4+IC0tLSBhL0VtdWxhdG9y UGtnL1dpbi9Ib3N0L1dpbkdvcFNjcmVlbi5jDQo+ID4+Pj4gKysrIGIvRW11bGF0b3JQa2cvV2lu L0hvc3QvV2luR29wU2NyZWVuLmMNCj4gPj4+PiBAQCAtMzk5LDYgKzM5OSw4IEBAIFdpbk50R29w VGhyZWFkV2luZG93UHJvYyAoDQo+ID4+Pj4gICAgICBMUEFSQU0gICAgICAgICAgICAgICAgSW5k ZXg7DQo+ID4+Pj4NCj4gPj4+PiAgICAgIEVGSV9JTlBVVF9LRVkgICAgICAgICBLZXk7DQo+ID4+ Pj4NCj4gPj4+PiAgICAgIEJPT0xFQU4gICAgICAgICAgICAgICBBbHRJc1ByZXNzOw0KPiA+Pj4+ DQo+ID4+Pj4gKyAgSU5UMzIgICAgICAgICAgICAgICAgIFBvc1g7DQo+ID4+Pj4NCj4gPj4+PiAr ICBJTlQzMiAgICAgICAgICAgICAgICAgUG9zWTsNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4g Pj4+PiAgICAgIC8vDQo+ID4+Pj4NCj4gPj4+PiAgICAgIC8vIFVzZSBtVGxzSW5kZXggZ2xvYmFs IHRvIGdldCBhIFRocmVhZCBMb2NhbCBTdG9yYWdlIHZlcnNpb24gb2YNCj4gUHJpdmF0ZS4NCj4g Pj4+Pg0KPiA+Pj4+IEBAIC01MjcsNiArNTI5LDQ1IEBAIFdpbk50R29wVGhyZWFkV2luZG93UHJv YyAoDQo+ID4+Pj4gICAgICAgIFdpbk50R29wQ29udmVydFBhcmFtVG9FZmlLZXlTaGlmdFN0YXRl IChQcml2YXRlLCAmd1BhcmFtLA0KPiA+Pj4+ICZsUGFyYW0sIEZBTFNFKTsNCj4gPj4+Pg0KPiA+ Pj4+ICAgICAgICByZXR1cm4gMDsNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiArICBj YXNlIFdNX01PVVNFTU9WRToNCj4gPj4+Pg0KPiA+Pj4+ICsgICAgUG9zWCA9IEdFVF9YX0xQQVJB TSAobFBhcmFtKTsNCj4gPj4+Pg0KPiA+Pj4+ICsgICAgUG9zWSA9IEdFVF9ZX0xQQVJBTSAobFBh cmFtKTsNCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgICAgaWYgKFByaXZhdGUt PlBvaW50ZXJQcmV2aW91c1ggIT0gUG9zWCkgew0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgIFByaXZh dGUtPlBvaW50ZXJTdGF0ZS5SZWxhdGl2ZU1vdmVtZW50WCArPSAoUG9zWCAtDQo+ID4+Pj4gKyBQ cml2YXRlLT5Qb2ludGVyUHJldmlvdXNYKTsNCj4gPj4+Pg0KPiA+Pj4+ICsgICAgICBQcml2YXRl LT5Qb2ludGVyUHJldmlvdXNYICAgICAgICAgICAgICAgID0gUG9zWDsNCj4gPj4+Pg0KPiA+Pj4+ ICsgICAgICBQcml2YXRlLT5Qb2ludGVyU3RhdGVDaGFuZ2VkICAgICAgICAgICAgID0gVFJVRTsN Cj4gPj4+Pg0KPiA+Pj4+ICsgICAgfQ0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4g KyAgICBpZiAoUHJpdmF0ZS0+UG9pbnRlclByZXZpb3VzWSAhPSBQb3NZKSB7DQo+ID4+Pj4NCj4g Pj4+PiArICAgICAgUHJpdmF0ZS0+UG9pbnRlclN0YXRlLlJlbGF0aXZlTW92ZW1lbnRZICs9IChQ b3NZIC0NCj4gPj4+PiArIFByaXZhdGUtPlBvaW50ZXJQcmV2aW91c1kpOw0KPiA+Pj4+DQo+ID4+ Pj4gKyAgICAgIFByaXZhdGUtPlBvaW50ZXJQcmV2aW91c1kgICAgICAgICAgICAgICAgPSBQb3NZ Ow0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgIFByaXZhdGUtPlBvaW50ZXJTdGF0ZUNoYW5nZWQgICAg ICAgICAgICAgPSBUUlVFOw0KPiA+Pj4+DQo+ID4+Pj4gKyAgICB9DQo+ID4+Pj4NCj4gPj4+PiAr DQo+ID4+Pj4NCj4gPj4+PiArICAgIFByaXZhdGUtPlBvaW50ZXJTdGF0ZS5SZWxhdGl2ZU1vdmVt ZW50WiAgPSAwOw0KPiA+Pj4+DQo+ID4+Pj4gKyAgICByZXR1cm4gMDsNCj4gPj4+Pg0KPiA+Pj4+ ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIGNhc2UgV01fTEJVVFRPTkRPV046DQo+ID4+Pj4NCj4gPj4+ PiArICAgIFByaXZhdGUtPlBvaW50ZXJTdGF0ZS5MZWZ0QnV0dG9uID0gVFJVRTsNCj4gPj4+Pg0K PiA+Pj4+ICsgICAgUHJpdmF0ZS0+UG9pbnRlclN0YXRlQ2hhbmdlZCAgICAgPSBUUlVFOw0KPiA+ Pj4+DQo+ID4+Pj4gKyAgICByZXR1cm4gMDsNCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+ Pj4+ICsgIGNhc2UgV01fTEJVVFRPTlVQOg0KPiA+Pj4+DQo+ID4+Pj4gKyAgICBQcml2YXRlLT5Q b2ludGVyU3RhdGUuTGVmdEJ1dHRvbiA9IEZBTFNFOw0KPiA+Pj4+DQo+ID4+Pj4gKyAgICBQcml2 YXRlLT5Qb2ludGVyU3RhdGVDaGFuZ2VkICAgICA9IFRSVUU7DQo+ID4+Pj4NCj4gPj4+PiArICAg IHJldHVybiAwOw0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyAgY2FzZSBXTV9S QlVUVE9ORE9XTjoNCj4gPj4+Pg0KPiA+Pj4+ICsgICAgUHJpdmF0ZS0+UG9pbnRlclN0YXRlLlJp Z2h0QnV0dG9uID0gVFJVRTsNCj4gPj4+Pg0KPiA+Pj4+ICsgICAgUHJpdmF0ZS0+UG9pbnRlclN0 YXRlQ2hhbmdlZCAgICAgID0gVFJVRTsNCj4gPj4+Pg0KPiA+Pj4+ICsgICAgcmV0dXJuIDA7DQo+ ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBjYXNlIFdNX1JCVVRUT05VUDoNCj4g Pj4+Pg0KPiA+Pj4+ICsgICAgUHJpdmF0ZS0+UG9pbnRlclN0YXRlLlJpZ2h0QnV0dG9uID0gRkFM U0U7DQo+ID4+Pj4NCj4gPj4+PiArICAgIFByaXZhdGUtPlBvaW50ZXJTdGF0ZUNoYW5nZWQgICAg ICA9IFRSVUU7DQo+ID4+Pj4NCj4gPj4+PiArICAgIHJldHVybiAwOw0KPiA+Pj4+DQo+ID4+Pj4g Kw0KPiA+Pj4+DQo+ID4+Pj4gICAgICBjYXNlIFdNX0NMT1NFOg0KPiA+Pj4+DQo+ID4+Pj4gICAg ICAgIC8vDQo+ID4+Pj4NCj4gPj4+PiAgICAgICAgLy8gVGhpcyBjbG9zZSBtZXNzYWdlIGlzIGlz c3VlZCBieSB1c2VyLCBjb3JlIGlzIG5vdCBhd2FyZQ0KPiA+Pj4+IG9mIHRoaXMsDQo+ID4+Pj4N Cj4gPj4+PiBkaWZmIC0tZ2l0IGEvRW11bGF0b3JQa2cvV2luL0hvc3QvV2luR29wLmgNCj4gPj4+ PiBiL0VtdWxhdG9yUGtnL1dpbi9Ib3N0L1dpbkdvcC5oIGluZGV4DQo+IGFhNDFkYjZkYmM4Yy4u NTk0M2NhOTNiMjJmDQo+ID4+Pj4gMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvRW11bGF0b3JQa2cvV2lu L0hvc3QvV2luR29wLmgNCj4gPj4+PiArKysgYi9FbXVsYXRvclBrZy9XaW4vSG9zdC9XaW5Hb3Au aA0KPiA+Pj4+IEBAIC0yMiw2ICsyMiw3IEBAIEFic3RyYWN0Og0KPiA+Pj4+DQo+ID4+Pj4NCj4g Pj4+PiAgICAjaW5jbHVkZSA8UHJvdG9jb2wvRW11SW9UaHVuay5oPg0KPiA+Pj4+DQo+ID4+Pj4g ICAgI2luY2x1ZGUgPFByb3RvY29sL0VtdUdyYXBoaWNzV2luZG93Lmg+DQo+ID4+Pj4NCj4gPj4+ PiArI2luY2x1ZGUgPFByb3RvY29sL1NpbXBsZVBvaW50ZXIuaD4NCj4gPj4+Pg0KPiA+Pj4+ICAg ICNpbmNsdWRlIDxQcm90b2NvbC9TaW1wbGVUZXh0SW4uaD4NCj4gPj4+Pg0KPiA+Pj4+ICAgICNp bmNsdWRlIDxQcm90b2NvbC9TaW1wbGVUZXh0SW5FeC5oPg0KPiA+Pj4+DQo+ID4+Pj4gICAgI2lu Y2x1ZGUgPFByb3RvY29sL0dyYXBoaWNzT3V0cHV0Lmg+DQo+ID4+Pj4NCj4gPj4+PiBAQCAtMTA5 LDYgKzExMCwxMCBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4+Pj4gICAgICBCT09MRUFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2Nyb2xsTG9jazsNCj4gPj4+Pg0KPiA+Pj4+ICAgICAgQk9P TEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIENhcHNMb2NrOw0KPiA+Pj4+DQo+ID4+Pj4g ICAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgSXNQYXJ0aWFsS2V5U3VwcG9y dDsNCj4gPj4+Pg0KPiA+Pj4+ICsgIElOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ b2ludGVyUHJldmlvdXNYOw0KPiA+Pj4+DQo+ID4+Pj4gKyAgSU5UMzIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBvaW50ZXJQcmV2aW91c1k7DQo+ID4+Pj4NCj4gPj4+PiArICBCT09MRUFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnRlclN0YXRlQ2hhbmdlZDsNCj4gPj4+Pg0K PiA+Pj4+ICsgIEVGSV9TSU1QTEVfUE9JTlRFUl9TVEFURSAgICAgICAgICBQb2ludGVyU3RhdGU7 DQo+ID4+Pj4NCj4gPj4+PiAgICB9IEdSQVBISUNTX1BSSVZBVEVfREFUQTsNCj4gPj4+Pg0KPiA+ Pj4+ICAgICNkZWZpbmUgR1JBUEhJQ1NfUFJJVkFURV9EQVRBX1NJR05BVFVSRSAgU0lHTkFUVVJF XzMyICgnZycsDQo+ICdmJywNCj4gPj4+PiAneCcsICdkJykNCj4gPj4+Pg0KPiA+Pj4+ICAgICNk ZWZpbmUgR1JBUEhJQ1NfUFJJVkFURV9EQVRBX0ZST01fVEhJUyhhKSAgXA0KPiA+Pj4+DQo+ID4+ Pj4gZGlmZiAtLWdpdCBhL0VtdWxhdG9yUGtnL1dpbi9Ib3N0L1dpbkluY2x1ZGUuaA0KPiA+Pj4+ IGIvRW11bGF0b3JQa2cvV2luL0hvc3QvV2luSW5jbHVkZS5oDQo+ID4+Pj4gaW5kZXggYWUwMjc3 MGQ5ZmIwLi44YTlhZTdkNzQ2NWIgMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvRW11bGF0b3JQa2cvV2lu L0hvc3QvV2luSW5jbHVkZS5oDQo+ID4+Pj4gKysrIGIvRW11bGF0b3JQa2cvV2luL0hvc3QvV2lu SW5jbHVkZS5oDQo+ID4+Pj4gQEAgLTQwLDYgKzQwLDcgQEAgdHlwZWRlZiBVSU5UMzIgc2l6ZV90 IDsNCj4gPj4+PiAgICAjZW5kaWYNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiAgICAj aW5jbHVkZSAid2luZG93cy5oIg0KPiA+Pj4+DQo+ID4+Pj4gKyNpbmNsdWRlICJ3aW5kb3dzeC5o Ig0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+ICAgICN1bmRlZiBHVUlEDQo+ID4+Pj4N Cj4gPj4+PiAgICAjdW5kZWYgX0xJU1RfRU5UUlkNCj4gPj4+Pg0KPiA+Pj4+IC0tDQo+ID4+Pj4g Mi4yMy4wLndpbmRvd3MuMQ0KPiANCj4gDQo+IA0KPiANCg0K