From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0E02920945BE0 for ; Thu, 14 Sep 2017 17:12:29 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Sep 2017 17:15:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,395,1500966000"; d="scan'208";a="152047734" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga006.fm.intel.com with ESMTP; 14 Sep 2017 17:15:28 -0700 Received: from fmsmsx152.amr.corp.intel.com (10.18.125.5) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 14 Sep 2017 17:15:28 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX152.amr.corp.intel.com (10.18.125.5) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 14 Sep 2017 17:15:27 -0700 Received: from shsmsx152.ccr.corp.intel.com ([169.254.6.93]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.117]) with mapi id 14.03.0319.002; Fri, 15 Sep 2017 08:15:25 +0800 From: "Wang, Jian J" To: "Zeng, Star" , Laszlo Ersek , "Yao, Jiewen" CC: "Kinney, Michael D" , "Justen, Jordan L" , "edk2-devel@lists.01.org" , "Dong, Eric" , "Wolman, Ayellet" Thread-Topic: [edk2] [PATCH 4/4] OvmfPkg/QemuVideoDxe: Update QemuVideoDxe driver to bypass NULL pointer detection if enabled. Thread-Index: AQHTLOjaGr4fA1D1skaggpFr6cHp6qKy8rOAgAAcvwCAACF6gIAAV2QAgACIDFCAAAExwP//fKIAgAAMsACAAARbAIAABgGAgAFv+gA= Date: Fri, 15 Sep 2017 00:15:25 +0000 Message-ID: References: <20170913092507.12504-1-jian.j.wang@intel.com> <20170913092507.12504-5-jian.j.wang@intel.com> <848bc70b-b3f7-62fb-ef2d-df89ff8805a6@redhat.com> <4dd43619-552e-9d0e-3d2b-ca9c1f3b80a3@redhat.com> <74D8A39837DF1E4DA445A8C0B3885C503A9B264A@SHSMSX151.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B958C07@SHSMSX151.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B958C40@SHSMSX151.ccr.corp.intel.com> In-Reply-To: <0C09AFA07DD0434D9E2A0C6AEB0483103B958C40@SHSMSX151.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 4/4] OvmfPkg/QemuVideoDxe: Update QemuVideoDxe driver to bypass NULL pointer detection if enabled. 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: Fri, 15 Sep 2017 00:12:29 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Z0RTLT4gU2V0TWVtb3J5U3BhY2VDYXBhYmlsaXRpZXMoKSBjYW4gY2hhbmdlIHRoZSBDYXBhYmls aXR5IGF0IGFueSB0aW1lLiBCdXQgSSdtIG5vdCBzdXJlIGFib3V0IGFueSBzaWRlLWVmZmVjdCBv ZiBpdC4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFplbmcsIFN0YXIgDQpT ZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDE0LCAyMDE3IDY6MTcgUE0NClRvOiBMYXN6bG8gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5j b20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQpDYzogS2lubmV5LCBNaWNo YWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgSnVzdGVuLCBKb3JkYW4gTCA8am9y ZGFuLmwuanVzdGVuQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBEb25nLCBF cmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgV29sbWFuLCBBeWVsbGV0IDxheWVsbGV0LndvbG1h bkBpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KU3ViamVjdDog UkU6IFtlZGsyXSBbUEFUQ0ggNC80XSBPdm1mUGtnL1FlbXVWaWRlb0R4ZTogVXBkYXRlIFFlbXVW aWRlb0R4ZSBkcml2ZXIgdG8gYnlwYXNzIE5VTEwgcG9pbnRlciBkZXRlY3Rpb24gaWYgZW5hYmxl ZC4NCg0KTm8sIEkgd2FudCB0byBzYXkgZXZlbiB0aGUgR0NEIGlzIHVwZGF0ZWQgdG8gbm90IGZp bHRlciBwYWdlIGF0dHJpYnV0ZXMsIGl0IHdpbGwgc3RpbGwgbm90IHdvcmsgYXMgYWxsIHRoZSBt ZW1vcnkgY29udHJvbGxlciBjb2RlIGZvciBub3cgYXJlIG5vdCByZXBvcnRpbmcgdGhlIENhcGFi aWxpdHkuDQoNCg0KVGhhbmtzLA0KU3Rhcg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZy b206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBP biBCZWhhbGYgT2YgTGFzemxvIEVyc2VrDQpTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDE0LCAy MDE3IDU6NTUgUE0NClRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgV2FuZywg SmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0Bp bnRlbC5jb20+DQpDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPjsgSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47IGVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnOyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgV29s bWFuLCBBeWVsbGV0IDxheWVsbGV0LndvbG1hbkBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2Vk azJdIFtQQVRDSCA0LzRdIE92bWZQa2cvUWVtdVZpZGVvRHhlOiBVcGRhdGUgUWVtdVZpZGVvRHhl IGRyaXZlciB0byBieXBhc3MgTlVMTCBwb2ludGVyIGRldGVjdGlvbiBpZiBlbmFibGVkLg0KDQpP biAwOS8xNC8xNyAxMTozOSwgWmVuZywgU3RhciB3cm90ZToNCj4gVGhlcmUgaXMgYSByZWFsaXN0 aWMgcHJvYmxlbSBJIGp1c3QgZm91bmQgYW5kIHdhbnQgdG8gc2hhcmUuDQo+IA0KPiBHQ0QgZGF0 YWJhc2UgaXMgYnVpbHQgYmFzZWQgb24gcmVzb3VyY2UgaG9iIHJlcG9ydGVkIGZyb20gUEVJLCBh bmQgR0NEIA0KPiBjaGVja3MgdGhlIGlucHV0IEF0dHJpYnV0ZXMgYWdhaW5zdCBDYXBhYmlsaXRp ZXMgd2hlbiBzZXR0aW5nIA0KPiBBdHRyaWJ1dGVzLCBidXQgd2UgKEkganVzdCBzZWFyY2hlZCB0 aGUgd2hvbGUgY29kZWJhc2UpIGNhbiBzZWUgdGhlcmUgDQo+IGlzIG5vIGNvZGUgcmVwb3J0aW5n IHJlc291cmNlIGhvYiB3aXRoIA0KPiBFRklfUkVTT1VSQ0VfQVRUUklCVVRFX1JFQURfUFJPVEVD VEFCTEUsDQo+IEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfRVhFQ1VUSU9OX1BST1RFQ1RBQkxFIG9y IA0KPiBFRklfUkVTT1VSQ0VfQVRUUklCVVRFX1JFQURfT05MWV9QUk9URUNUQUJMRSBzZXQuDQou Li4gQXJlIHlvdSBzYXlpbmcgdGhhdCwgaWYgd2UgbW9kaWZ5IEFkZE1lbW9yeUJhc2VTaXplSG9i KCkgaW4gT3ZtZlBrZy9QbGF0Zm9ybVBlaSwgdG8gcmVwb3J0IEVGSV9SRVNPVVJDRV9BVFRSSUJV VEVfUkVBRF9PTkxZX1BST1RFQ1RBQkxFICgqKSwgdGhlbg0KZ0RTLT5TZXRNZW1vcnlTcGFjZUF0 dHJpYnV0ZXMoKSB3aWxsIHN0YXJ0IHRvIHdvcms/DQoNCigoKikgIk1kZVBrZy9JbmNsdWRlL1Bp L1BpSG9iLmgiOiAiTk9URTogU2luY2UgUEkgc3BlYyAxLjQsIHBsZWFzZSB1c2UgRUZJX1JFU09V UkNFX0FUVFJJQlVURV9SRUFEX09OTFlfUFJPVEVDVEFCTEUgYXMgTWVtb3J5IGNhcGFiaWxpdHkN CmF0dHJpYnV0ZTogVGhlIG1lbW9yeSBzdXBwb3J0cyBiZWluZyBwcm90ZWN0ZWQgZnJvbSBwcm9j ZXNzb3Igd3JpdGVzIikNCg0KSWYgdGhhdCdzIHRoZSBjYXNlLCB0aGVuIEkgaG9wZSBKaWFuIGNh biBpbmNsdWRlIHN1Y2ggYW4gT3ZtZlBrZyBwYXRjaCBpbiBoaXMgc2VyaWVzLiA6KQ0KDQpUaGFu a3MhDQpMYXN6bG8NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6 bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogVGh1cnNkYXksIFNl cHRlbWJlciAxNCwgMjAxNyA0OjU0IFBNDQo+IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5n QGludGVsLmNvbT47IFlhbywgSmlld2VuIA0KPiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IENj OiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgSnVzdGVuLCBKb3JkYW4gTCANCj4g PGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgV29s bWFuLCBBeWVsbGV0IA0KPiA8YXllbGxldC53b2xtYW5AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNo YWVsIEQgDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIu emVuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDQvNF0gT3ZtZlBr Zy9RZW11VmlkZW9EeGU6IFVwZGF0ZSBRZW11VmlkZW9EeGUgZHJpdmVyIHRvIGJ5cGFzcyBOVUxM IHBvaW50ZXIgZGV0ZWN0aW9uIGlmIGVuYWJsZWQuDQo+IA0KPiBPbiAwOS8xNC8xNyAxMDo0Niwg V2FuZywgSmlhbiBKIHdyb3RlOg0KPj4gSXTigJlzIGFuIGltcGxlbWVudGF0aW9uIGxpbWl0YXRp b24uIEFsbCBwYWdlIGF0dHJpYnV0ZXMgd2lsbCBiZSBmaWx0ZXJlZCBvdXQgYmVmb3JlIGNhbGxp bmcgQ1BVIGFyY2ggcHJvdG9jb2wgdG8gdXBkYXRlIHRoZSBhdHRyaWJ1dGVzIChHY2QuYykuDQo+ IA0KPiBUaGF0IGNhbm5vdCBiZSBhIHJhbmRvbSBvY2N1cnJlbmNlOyBJJ20gc3VyZSB0aGVyZSB3 YXMgc29tZSBzcGVjaWZpYyBpbnRlbnQgYmVoaW5kIGZpbHRlcmluZyBvdXQgdGhlIHBhZ2UgYXR0 cmlidXRlcy4NCj4gDQo+IERvZXMgImdpdCBibGFtZSIgcHJvdmlkZSBhIHJlYXNvbiwgZnJvbSB0 aGUgbWVzc2FnZSBvZiB0aGUgY29tbWl0IHRoYXQgYWRkZWQgdGhlIGZpbHRlcmluZz8NCj4gDQo+ IFRoYW5rcywNCj4gTGFzemxvDQo+IA0KPj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4+IFNlbnQ6IFRo dXJzZGF5LCBTZXB0ZW1iZXIgMTQsIDIwMTcgNDozOCBQTQ0KPj4gVG86IExhc3psbyBFcnNlayA8 bGVyc2VrQHJlZGhhdC5jb20+OyBXYW5nLCBKaWFuIEogDQo+PiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPg0KPj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBKdXN0ZW4sIEpv cmRhbiBMIA0KPj4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZzsgV29sbWFuLCBBeWVsbGV0IA0KPj4gPGF5ZWxsZXQud29sbWFuQGludGVsLmNvbT47 IEtpbm5leSwgTWljaGFlbCBEIA0KPj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgWmVu ZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BB VENIIDQvNF0gT3ZtZlBrZy9RZW11VmlkZW9EeGU6IFVwZGF0ZSBRZW11VmlkZW9EeGUgZHJpdmVy IHRvIGJ5cGFzcyBOVUxMIHBvaW50ZXIgZGV0ZWN0aW9uIGlmIGVuYWJsZWQuDQo+Pg0KPj4gSEkN Cj4+IEkgd29uZGVyIGlmIGl0IGlzIHNwZWMgbGltaXRhdGlvbiBvciBpbXBsZW1lbnRhdGlvbiBs aW1pdGF0aW9uLg0KPj4NCj4+IElmIGl0IGlzIGltcGxlbWVudGF0aW9uIGxpbWl0YXRpb24sIHdl IGNhbiBlbmhhbmNlIHRoZSBEeGVDb3JlIHRvIGFsbG93IGl0Lg0KPj4NCj4+IFRoYW5rIHlvdQ0K Pj4gWWFvIEppZXdlbg0KPj4NCj4+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0By ZWRoYXQuY29tXQ0KPj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAxNCwgMjAxNyA0OjMwIFBN DQo+PiBUbzogV2FuZywgSmlhbiBKIA0KPj4gPGppYW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86 amlhbi5qLndhbmdAaW50ZWwuY29tPj4NCj4+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50 ZWwuY29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj47DQo+PiBKdXN0ZW4sIEpvcmRhbiBM DQo+PiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbTxtYWlsdG86am9yZGFuLmwuanVzdGVuQGlu dGVsLmNvbT4+Ow0KPj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxA bGlzdHMuMDEub3JnPjsgWWFvLCBKaWV3ZW4gDQo+PiA8amlld2VuLnlhb0BpbnRlbC5jb208bWFp bHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj47IFdvbG1hbiwgQXllbGxldCANCj4+IDxheWVsbGV0 LndvbG1hbkBpbnRlbC5jb208bWFpbHRvOmF5ZWxsZXQud29sbWFuQGludGVsLmNvbT4+OyBLaW5u ZXksIA0KPj4gTWljaGFlbCBEIA0KPj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0 bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+OyANCj4+IFplbmcsIFN0YXIgPHN0YXIuemVu Z0BpbnRlbC5jb208bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+Pg0KPj4gU3ViamVjdDogUmU6 IFtlZGsyXSBbUEFUQ0ggNC80XSBPdm1mUGtnL1FlbXVWaWRlb0R4ZTogVXBkYXRlIFFlbXVWaWRl b0R4ZSBkcml2ZXIgdG8gYnlwYXNzIE5VTEwgcG9pbnRlciBkZXRlY3Rpb24gaWYgZW5hYmxlZC4N Cj4+DQo+PiBPbiAwOS8xNC8xNyAwNToxNywgV2FuZywgSmlhbiBKIHdyb3RlOg0KPj4+IEZvciB0 aGUgdXNlIG9mIGFyY2ggcHJvdG9jb2wsIHRoZXJlJ3Mgb25lIHRoaW5nIEkgbWVudGlvbmVkIGlz IG5vdCANCj4+PiBhY2N1cmF0ZS4gSSBhY3R1YWxseSB0cmllZCBnRFMtPlNldE1lbW9yeVNwYWNl QXR0cmlidXRlcygpIGJ1dCBpdCANCj4+PiBjYW5ub3QgY2hhbmdlIHBhZ2UgYXR0cmlidXRlcy4g VGhhdCdzIHdoeSBJIGhhdmUgdG8gdHVybiB0byBjcHUgYXJjaCANCj4+PiBwcm90b2NvbC4NCj4+ IFRoYW5rIHlvdSBmb3IgdGhlIGV4cGxhbmF0aW9uLg0KPj4NCj4+IEluIHRoYXQgY2FzZSwgd2Ug Y2Fubm90IGF2b2lkIHZpb2xhdGluZyB0aGUgUEkgc3BlYy4gSSBhZ3JlZSB3ZSBjYW4gDQo+PiBi cmVhayB0aGUgc3BlYyBpZiBpdCBoYXBwZW5zIGZvciBzZWN1cml0eSBwdXJwb3NlcywgYnV0IGlu IHRoYXQgY2FzZSwgDQo+PiBJIGJlbGlldmUgdGhhdCBoaWRpbmcgdGhlIGltcGxlbWVudGF0aW9u IGJlaGluZCBhIGxpYnJhcnkgY2xhc3MgaXMgDQo+PiBtYW5kYXRvcnkuIFZpZXdlZCBmcm9tIHRo ZSBzcGVjIHNpZGUsIGFjY2Vzc2luZyB0aGUgQ1BVIEFyY2ggcHJvdG9jb2wgDQo+PiBpcyBhIGhh Y2ssIGFuZCBzbyBpdCBzaG91bGQgbm90IGJlIHNwcmVhZCB0byB0aGUgc291cmNlIGNvZGUgb2Yg DQo+PiBzZXZlcmFsIGRyaXZlciBtb2R1bGVzLg0KPj4NCj4+IFRoYW5rIHlvdSwNCj4+IExhc3ps bw0KPj4NCj4+DQo+Pj4NCj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206 IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBC ZWhhbGYgDQo+Pj4gT2YgV2FuZywgSmlhbiBKDQo+Pj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJl ciAxNCwgMjAxNyA5OjE3IEFNDQo+Pj4gVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5j b208bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPj4NCj4+PiBDYzogRG9uZywgRXJpYyA8ZXJpYy5k b25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+Ow0KPj4+IEp1c3Rlbiwg Sm9yZGFuIEwNCj4+PiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbTxtYWlsdG86am9yZGFuLmwu anVzdGVuQGludGVsLmNvbT4+Ow0KPj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzpl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZz47IFlhbywgSmlld2VuIA0KPj4+IDxqaWV3ZW4ueWFvQGlu dGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgV29sbWFuLCBBeWVsbGV0IA0K Pj4+IDxheWVsbGV0LndvbG1hbkBpbnRlbC5jb208bWFpbHRvOmF5ZWxsZXQud29sbWFuQGludGVs LmNvbT4+OyBLaW5uZXksIA0KPj4+IE1pY2hhZWwgRCANCj4+PiA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj47DQo+Pj4gWmVuZywg U3RhciA8c3Rhci56ZW5nQGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4+DQo+ Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggNC80XSBPdm1mUGtnL1FlbXVWaWRlb0R4ZTog VXBkYXRlIFFlbXVWaWRlb0R4ZSBkcml2ZXIgdG8gYnlwYXNzIE5VTEwgcG9pbnRlciBkZXRlY3Rp b24gaWYgZW5hYmxlZC4NCj4+Pg0KPj4+IFRoYW5rcyBmb3IgdGhlIGNvbW1lbnRzIGFuZCBnb29k IGFkdmljZXMuIFNvcnJ5IHRoZSBmb3JtYXQgaXNzdWVzLg0KPj4+IFRoaXMgaXMgbXkgZmlyc3Qg cGF0Y2ggZm9yIHRoaXMgcHJvamVjdC4gVG9vIG1hbnkgZGV0YWlscyBmb3IgbWUgdG8gDQo+Pj4g Z2V0IGZhbWlsaWFyIHdpdGguDQo+Pj4NCj4+PiAoMSkgU3VyZS4NCj4+PiAoMikgSSdsbCBjaGFu Z2UgdGhhdC4NCj4+PiAoMykgSSdsbCB1c2UgdGhlIHRvb2wgdG8gZW5zdXJlIHRoZSBwYXRjaCBm b3JtYXQuDQo+Pj4gKDQpIEknbGwgcmVtb3ZlIHRoZSAnLCcgaW4gbmFtZQ0KPj4+ICg1KSBJJ2xs IGFkZCBtb3JlIGRlc2NyaXB0aW9uIGFib3V0IGl0Lg0KPj4+ICg2KSBZb3UncmUgcmlnaHQuIEkg c2hvdWxkIHVzZSBTZXRNZW1vcnlTcGFjZUF0dHJpYnV0ZXMoKSBvZiBEWEUgc2VydmljZQ0KPj4+ ICAgICAgaW5zdGVhZC4gVGhlIG9ubHkgcmVhc29uIEkgZGlkbid0IGRvIGl0IGlzIHRoYXQgSSBm b3VuZA0KPj4+ICAgICAgIEdldE1lbW9yeVNwYWNlRGVzY3JpcHRvcigpIGRvZXNuJ3QgcmV0dXJu IHRoZSBzYW1lIGluZm9ybWF0aW9uDQo+Pj4gICAgICB3aGljaCBTZXRNZW1vcnlTcGFjZUF0dHJp YnV0ZXMoKSBqdXN0IGNoYW5nZWQuIFNvIEkgZmVlbCB1c2luZyBDUFUNCj4+PiAgICAgYXJjaCBw cm90b2NvbCBpcyBhIGJpdCBzYWZlci4gQW55d2F5LCBJJ2xsIGNoYW5nZSBpdC4NCj4+PiAoNykg SSBkaWQgcHV0IHRob3NlIG1hY3JvcyBpbiB0aGUgaW5zdGFsbCBmdW5jdGlvbiBiZWZvcmUuIFRv IHJlZHVjZSB0aGUNCj4+PiAgICAgIG51bWJlciBvZiBjaGFuZ2VkIGZpbGVzLCBJIG1hZGUgY3Vy cmVudCBjaGFuZ2VzLiBZb3UncmUgcmlnaHQgaXQncw0KPj4+ICAgICAgbm90IHdvcnRoeS4NCj4+ PiAoOCkgVXNpbmcgbWFjcm8gY2FuIGhlbHAgdGhlIHJlYWRhYmlsaXR5LCB3aGljaCBpcyBtb3Jl IGltcG9ydGFudCB0byBtZS4NCj4+PiAgICAgSSBrbm93IGZ1bmN0aW9uIGNhbiBkbyB0aGUgc2Ft ZS4gQnV0IGl0IGxvb2tzIGEgYml0IGhlYXZ5IGluIHRoaXMgc2l0dWF0aW9uLg0KPj4+ICAgICBJ IGhhdmUgdG8gYWRtaXQgcmVwbGFjaW5nICB0aGUgbWFjcm9zIHdpdGggYSBsaWJyYXJ5IGlzIGEg dmVyeSBnb29kIGlkZWEsDQo+Pj4gICAgIHdoaWNoIGJyaW5ncyB0aGUgc2FtZSByZWFkYWJpbGl0 eS4gSSBkaWRuJ3QgdGhpbmsgb2YgdGhhdCBiZWZvcmUuIEFsdGhvdWdoDQo+Pj4gICAgIExpYnJh cnkgaXMgc3RpbGwgYSBsaXR0bGUgYml0IGhlYXZ5IHRvIG1lIGJ1dCBpdCdzIGluIGEgZGlmZmVy ZW50IHdheSwgSSB0aGluayBpdA0KPj4+ICAgICB3b3J0aCBhIHRyeWluZy4NCj4+PiAoOSkgUHV0 dGluZyBhIHNwYWNlIGJlZm9yZSBvcGVuIHBhcmVudGhlc2lzIGlzIGZvcmNlZCBzdHlsZT8gSWYg c28sIEknbGwgYWRkIGl0Lg0KPj4+ICgxMCkgWW91J3JlIHJpZ2h0LiBVc2luZyBsaWJyYXJ5IGNh biByZWR1Y2UgdGhlIGRpc3R1cmJzIHRvIGFmZmVjdGVkIGRyaXZlcnMNCj4+PiAgICAgICAgYnkg dGhpcyBmZWF0dXJlIHRvIHRoZSBtaW5pbXVtLg0KPj4+DQo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4+PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNv bV0NCj4+PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDE0LCAyMDE3IDc6MzUgQU0NCj4+PiBU bzogV2FuZywgSmlhbiBKDQo+Pj4gPGppYW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86amlhbi5q LndhbmdAaW50ZWwuY29tPj4NCj4+PiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRv OmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPjsgSnVzdGVuLCANCj4+PiBKb3JkYW4gTCANCj4+PiA8 am9yZGFuLmwuanVzdGVuQGludGVsLmNvbTxtYWlsdG86am9yZGFuLmwuanVzdGVuQGludGVsLmNv bT4+OyBEb25nLCANCj4+PiBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmljLmRv bmdAaW50ZWwuY29tPj47IEtpbm5leSwgDQo+Pj4gTWljaGFlbCBEIA0KPj4+IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbTxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+PjsNCj4+ PiBXb2xtYW4sIEF5ZWxsZXQNCj4+PiA8YXllbGxldC53b2xtYW5AaW50ZWwuY29tPG1haWx0bzph eWVsbGV0LndvbG1hbkBpbnRlbC5jb20+PjsgWWFvLCANCj4+PiBKaWV3ZW4gPGppZXdlbi55YW9A aW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+OyBaZW5nLCANCj4+PiBTdGFy IDxzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj4NCj4+PiBT dWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCA0LzRdIE92bWZQa2cvUWVtdVZpZGVvRHhlOiBVcGRh dGUgUWVtdVZpZGVvRHhlIGRyaXZlciB0byBieXBhc3MgTlVMTCBwb2ludGVyIGRldGVjdGlvbiBp ZiBlbmFibGVkLg0KPj4+DQo+Pj4gSGksDQo+Pj4NCj4+PiBzb21lIG9mIHRoZSBwb2ludHMgSSdt IGdvaW5nIHRvIG1ha2UgaGF2ZSBhbHJlYWR5IGJlZW4gcG9pbnRlZCBvdXQgDQo+Pj4gYnkNCj4+ PiBKb3JkYW46DQo+Pj4NCj4+PiAoMSkgV2hlbiBwb3N0aW5nIGEgcGF0Y2ggc2VyaWVzLCBwbGVh c2UgY29sbGVjdCB0aGUgQ2M6IHRhZ3MgZnJvbSANCj4+PiBhbGwgb2YgdGhlIHBhdGNoZXMsIGFu ZCBhZGQgdGhlbSAqYWxsKiB0byB0aGUgY292ZXIgbGV0dGVyLiBUaGlzIHdheSANCj4+PiBldmVy eW9uZSB3aWxsIGdldCBhIHBlcnNvbmFsIGNvcHkgb2YgdGhlIGdlbmVyYWwgZGVzY3JpcHRpb24u DQo+Pj4NCj4+Pg0KPj4+ICgyKSBUaGUgc3ViamVjdCBsaW5lIGlzIHRvbyBsb25nLiBPbmUgcG9z c2libGUgc2ltcGxpZmljYXRpb246DQo+Pj4NCj4+PiBPdm1mUGtnL1FlbXVWaWRlb0R4ZTogYnlw YXNzIE5VTEwgcG9pbnRlciBkZXRlY3Rpb24NCj4+Pg0KPj4+DQo+Pj4gT24gMDkvMTMvMTcgMTE6 MjUsIFdhbmcsIEppYW4gSiB3cm90ZToNCj4+Pj4gUWVtdVZpZGVvRHhlIGRyaXZlciB3aWxsIGlu c3RhbGwgVkJFIFNISU0gaW50byBwYWdlIDAuIElmIE5VTEwgDQo+Pj4+IHBvaW50ZXIgZGV0ZWN0 aW9uIGlzIGVuYWJsZWQsIHBhZ2UgMCBtdXN0IGJlIGVuYWJsZWQgdGVtcG9yYXJpbHkgDQo+Pj4+ IGJlZm9yZSBpbnN0YWxsaW5nIGFuZCBkaXNhYmxlZCBhZ2FpbiBhZnRlcndhcmRzLiBGb3IgV2lu ZG93cyA3IA0KPj4+PiBib290LA0KPj4+PiBCSVQ3IG9mIFBjZE51bGxQb2ludGVyRGV0ZWN0aW9u UHJvcGVydHlNYXNrIG11c3Qgc3RpbGwgYmUgc2V0IHRvIGF2b2lkIGhhbmcuDQo+Pj4NCj4+PiAo MykgU3ViamVjdCBsaW5lIGFuZCBjb21taXQgbWVzc2FnZSBib3RoIHNob3VsZCBub3QgZXhjZWVk IDc0IA0KPj4+IGNoYXJhY3RlcnMgbGluZSBsZW5ndGguIChOb3Qgc3VyZSBob3cgbWFueSBjaGFy cyBQYXRjaENoZWNrLnB5IA0KPj4+IGFjdHVhbGx5IGVuZm9yY2VzLCBJIGFsd2F5cyBzdGljayB3 aXRoIDc0LCBmb2xsb3dpbmcgdGhlIExpbnV4IA0KPj4+IGtlcm5lbA0KPj4+IHRyYWRpdGlvbi4p DQo+Pj4NCj4+PiBJIHJld3JhcHBlZCB0aGUgY29tbWl0IG1lc3NhZ2UgaGVyZSBmb3IgcmVhZGFi aWxpdHkuDQo+Pj4NCj4+Pg0KPj4+Pg0KPj4+PiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0Bp bnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj4NCj4+Pj4gQ2M6IEVyaWMgRG9u ZyA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+DQo+Pj4+ IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb208bWFpbHRvOnN0YXIuemVuZ0BpbnRl bC5jb20+Pg0KPj4+PiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbTxtYWlsdG86 bGVyc2VrQHJlZGhhdC5jb20+Pg0KPj4+PiBDYzogSnVzdGVuLCBKb3JkYW4gTA0KPj4+PiA8am9y ZGFuLmwuanVzdGVuQGludGVsLmNvbTxtYWlsdG86am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT4+ DQo+Pj4+IENjOiBLaW5uZXksIE1pY2hhZWwgRA0KPj4+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj4NCj4+Pj4gQ2M6IFdvbG1h biwgQXllbGxldA0KPj4+PiA8YXllbGxldC53b2xtYW5AaW50ZWwuY29tPG1haWx0bzpheWVsbGV0 LndvbG1hbkBpbnRlbC5jb20+Pg0KPj4+PiBTdWdnZXN0ZWQtYnk6IFdvbG1hbiwgQXllbGxldA0K Pj4+PiA8YXllbGxldC53b2xtYW5AaW50ZWwuY29tPG1haWx0bzpheWVsbGV0LndvbG1hbkBpbnRl bC5jb20+Pg0KPj4+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBB Z3JlZW1lbnQgMS4xDQo+Pj4+IFNpZ25lZC1vZmYtYnk6IFdhbmcsIEppYW4gSg0KPj4+PiA8amlh bi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pg0KPj4+DQo+ Pj4gKDQpIEkgdGhpbmsgdGhpcyBpcyBhbHNvIHNvbWV0aGluZyB0aGF0IEpvcmRhbiBoYWQgcG9p bnRlZCBvdXQgYSANCj4+PiBsb25nIHRpbWUgYWdvIChhcG9sb2dpZXMgaWYgSSBtaXMtcmVtZW1i ZXIpOg0KPj4+DQo+Pj4gVGhlIHN0cmluZ3MgYWZ0ZXIgdGhlIHRhZ3Mgc2hvdWxkIGZvcm0gY29y cmVjdCBlbWFpbCBhZGRyZXNzZXMsIGFuZCANCj4+PiBpZiB0aGVyZSBhcmUgdmFyaW91cyBlbWFp bCBtZXRhLWNoYXJhY3RlcnMgaW4gdGhlbSwgbGlrZSAiLiIgKGRvdCkgYW5kICIsIg0KPj4+IChj b21tYSksIHRoZW4gdGhleSBzaG91bGQgYmUgcXVvdGVkLCBsaWtlIHRoaXM6DQo+Pj4NCj4+PiBD YzogIkp1c3RlbiwgSm9yZGFuIEwiIA0KPj4+IDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPG1h aWx0bzpqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPj4NCj4+PiBDYzogIktpbm5leSwgTWljaGFl bCBEIiANCj4+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPj4NCj4+PiBDYzogIldvbG1hbiwgQXllbGxldCIgDQo+Pj4gPGF5ZWxs ZXQud29sbWFuQGludGVsLmNvbTxtYWlsdG86YXllbGxldC53b2xtYW5AaW50ZWwuY29tPj4NCj4+ PiBTdWdnZXN0ZWQtYnk6ICJXb2xtYW4sIEF5ZWxsZXQiIA0KPj4+IDxheWVsbGV0LndvbG1hbkBp bnRlbC5jb208bWFpbHRvOmF5ZWxsZXQud29sbWFuQGludGVsLmNvbT4+DQo+Pj4gU2lnbmVkLW9m Zi1ieTogIldhbmcsIEppYW4gSiIgDQo+Pj4gPGppYW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86 amlhbi5qLndhbmdAaW50ZWwuY29tPj4NCj4+Pg0KPj4+IElmIHlvdSBsb29rIGF0IHRoZSBhY3R1 YWwgYWRkcmVzc2VzIG9uIHRoZSBlbWFpbHMgdGhhdCBoYXZlIGJlZW4gDQo+Pj4gc2VudCBvdXQs IHlvdSBjYW4gc2VlIHRoZXkgYXJlIGFsbCBtYWxmb3JtZWQuIEZvciBleGFtcGxlLCBJIGhhdmU6 DQo+Pj4NCj4+PiAiSm9yZGFuIEwNCj4+PiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbTxtYWls dG86am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT4+IiBmb3IgSm9yZGFuIC0tIHRoZSBwYXJ0IGJl Zm9yZSB0aGUgY29tbWEgd2FzIHRha2VuIHRvIGJlIGEgc2VwYXJhdGUgZW1haWwgYWRkcmVzcyAo YSBtYWxmb3JtZWQgb25lKS4NCj4+Pg0KPj4+IEF0IGxlYXN0IGZvciBteSByZXBseSwgSSBoYXZl IGZpeGVkIHVwIHRoZSBlbWFpbCBhZGRyZXNzZXMuDQo+Pj4NCj4+Pg0KPj4+ICg1KSBUaGUgY29t bWl0IG1lc3NhZ2UgbWVudGlvbnMgQklUNyBvZiB0aGUgbmV3IFBDRC4NCj4+Pg0KPj4+IEZpcnN0 LCB0aGFua3MgZm9yIGNoZWNraW5nIFdpbmRvd3MgNyBib290IChhbmQgSSdtIGhhcHB5IHRoYXQg SSBnb3QgDQo+Pj4gc3VzcGljaW91cyBvZiB0aGUgZmVhdHVyZSB3aXRoIHJlZ2FyZCB0byBXaW5k b3dzIDcpLiBJIHRoaW5rIEJJVDcgaXMgDQo+Pj4gYSBnb29kIGZlYXR1cmUuDQo+Pj4NCj4+PiBI b3dldmVyLCBwbGVhc2UgaW5jbHVkZSB0aGUgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhhdCBmZWF0 dXJlIGluIHRoZSANCj4+PiBjb21taXQgbWVzc2FnZSAtLSBpdCBpcyBvbmUgc2VudGVuY2U7ICJE aXNhYmxlIE5VTEwgcG9pbnRlciANCj4+PiBkZXRlY3Rpb24ganVzdCBhZnRlciBFbmRPZkR4ZS4i DQo+Pj4NCj4+PiAoSSB0aGluayBCSVQ3IGlzIGEgcmVhbGx5IHNtYXJ0IGZlYXR1cmUsIGFuZCBJ IGxpa2UgKmhvdyogaXQgaXMgdXNlZCANCj4+PiBpbiAiTlVMTF9ERVRFQ1RJT05fRU5BQkxFRCIg YmVsb3cuIFRoZSBjaGVjayBtZWFucywgImlmIHRoZSANCj4+PiBwcm90ZWN0aW9uIGlzIGVuYWJs ZWQgZm9yIERYRSwgYW5kICpub3QgZGlzYWJsZWQqICg9PSBhbHNvIGVuYWJsZWQpIGFmdGVyIEVu ZC1vZi1EeGUiLg0KPj4+DQo+Pj4gVGhpcyBkb2Vzbid0IG1lYW4gdGhhdCBJIGxpa2UgdGhlIE5V TExfREVURUNUSU9OX0VOQUJMRUQgbWFjcm8gDQo+Pj4gaXRzZWxmOyBtb3JlIG9uIHRoYXQgYmVs b3cuKQ0KPj4+DQo+Pj4NCj4+Pj4gLS0tDQo+Pj4+ICBPdm1mUGtnL1FlbXVWaWRlb0R4ZS9Ecml2 ZXIuYyAgICAgICAgIHwgMTUgKysrKysrKysrKysrKystDQo+Pj4+ICBPdm1mUGtnL1FlbXVWaWRl b0R4ZS9RZW11LmggICAgICAgICAgIHwgMTYgKysrKysrKysrKysrKysrKw0KPj4+PiAgT3ZtZlBr Zy9RZW11VmlkZW9EeGUvUWVtdVZpZGVvRHhlLmluZiB8ICAyICsrDQo+Pj4+ICAzIGZpbGVzIGNo YW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4+Pj4NCj4+Pj4gZGlmZiAt LWdpdCBhL092bWZQa2cvUWVtdVZpZGVvRHhlL0RyaXZlci5jIA0KPj4+PiBiL092bWZQa2cvUWVt dVZpZGVvRHhlL0RyaXZlci5jIGluZGV4IDBkY2U4MGU1OWIuLmVlMGVlZDcyMTQgMTAwNjQ0DQo+ Pj4+IC0tLSBhL092bWZQa2cvUWVtdVZpZGVvRHhlL0RyaXZlci5jDQo+Pj4+ICsrKyBiL092bWZQ a2cvUWVtdVZpZGVvRHhlL0RyaXZlci5jDQo+Pj4+IEBAIC0xOTQsNiArMTk0LDcgQEAgUWVtdVZp ZGVvQ29udHJvbGxlckRyaXZlclN0YXJ0ICgNCj4+Pj4gICAgUENJX1RZUEUwMCAgICAgICAgICAg ICAgICAgICAgICAgIFBjaTsNCj4+Pj4gICAgUUVNVV9WSURFT19DQVJEICAgICAgICAgICAgICAg ICAgICpDYXJkOw0KPj4+PiAgICBFRklfUENJX0lPX1BST1RPQ09MICAgICAgICAgICAgICAgKkNo aWxkUGNpSW87DQo+Pj4+ICsgIEVGSV9DUFVfQVJDSF9QUk9UT0NPTCAgICAgICAgICAgICAqQ3B1 Ow0KPj4+DQo+Pj4gKDYpIEkgYmVsaWV2ZSBJIG1lbnRpb25lZCB0aGlzIGluIHRoZSBlYXJsaWVy IGRpc2N1c3Npb24sIGluIHNvbWUgDQo+Pj4gZm9ybSwgYnV0IG5vdyBJJ2xsIHNheSBpdCBhZ2Fp bjoNCj4+Pg0KPj4+IEEgVUVGSSBkcml2ZXIgaGFzIG5vIGJ1c2luZXNzIHBva2luZyBhdCB0aGUg Q1BVIEFyY2ggcHJvdG9jb2wuIFRoZSANCj4+PiBQSSBzcGVjICgxLjYpIHN0YXRlcywNCj4+Pg0K Pj4+ICAgMTIuMyBDUFUgQXJjaGl0ZWN0dXJhbCBQcm90b2NvbA0KPj4+ICAgRUZJX0NQVV9BUkNI X1BST1RPQ09MDQo+Pj4NCj4+PiAgIFN1bW1hcnkNCj4+Pg0KPj4+ICAgQWJzdHJhY3RzIHRoZSBw cm9jZXNzb3Igc2VydmljZXMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gaW1wbGVtZW50IHNvbWUNCj4+ PiAgIG9mIHRoZSBEWEUgc2VydmljZXMuIFRoaXMgcHJvdG9jb2wgbXVzdCBiZSBwcm9kdWNlZCBi eSBhIGJvb3Qgc2VydmljZQ0KPj4+ICAgb3IgcnVudGltZSBEWEUgZHJpdmVyIGFuZCBtYXkgb25s eSBiZSBjb25zdW1lZCBieSB0aGUgRFhFIEZvdW5kYXRpb24NCj4+PiAgIGFuZCBEWEUgZHJpdmVy cyB0aGF0IHByb2R1Y2UgYXJjaGl0ZWN0dXJhbCBwcm90b2NvbHMuDQo+Pj4NCj4+PiBUaGUgRFhF IGNvcmUgaXMgb2J2aW91c2x5IGZyZWUgdG8gdXNlIHRoZSBDUFUgQXJjaCBwcm90b2NvbCwgYnV0 IGEgDQo+Pj4gVUVGSSBkcml2ZXIgaXMgZm9yYmlkZGVuIGZyb20gaXQsICpldmVuIGlmKiB3ZSBz YXkgdGhhdCwgaW4gdGhpcyANCj4+PiBVRUZJIGRyaXZlciwgd2UgYXJlIGdvaW5nIHRvIHVzZSBE WEUgc2VydmljZXMuIChXaGljaCBjb21lIGZyb20gdGhlIA0KPj4+IFBJIHNwZWMsIGFuZCBub3Qg dGhlIFVFRkkgc3BlYy4pDQo+Pj4NCj4+PiBUaGVyZWZvcmUsIGhlcmUgd2UgaGF2ZSB0byB1c2Ug Z0RTLT5TZXRNZW1vcnlTcGFjZUF0dHJpYnV0ZXMoKS4NCj4+Pg0KPj4+IFRoZSBnRFMtPlNldE1l bW9yeVNwYWNlQXR0cmlidXRlcygpIHNlcnZpY2UgZGVwZW5kcyBvbiB0aGUgQ1BVIEFyY2ggDQo+ Pj4gcHJvdG9jb2wsIGJ5IHRoZSBQSSBzcGVjLiBJdCBpcyBub3QgZWFzeSB0byBzZWUsIGJlY2F1 c2UgdGhlIFBJIHNwZWMgDQo+Pj4gaGFzIGEgZm9ybWF0dGluZyBlcnJvciBpbiB0aGlzIGFyZWEu IElmIHlvdSBsb29rIHVuZGVyIA0KPj4+IEdldE1lbW9yeVNwYWNlRGVzY3JpcHRvcigpLCB0aGVy ZSBpcyBhbiBlcnJvciBjb2RlDQo+Pj4NCj4+PiAgIEVGSV9OT1RfQVZBSUxBQkxFX1lFVCAgVGhl IGF0dHJpYnV0ZXMgY2Fubm90IGJlIHNldCBiZWNhdXNlIENQVQ0KPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICBhcmNoaXRlY3R1cmFsIHByb3RvY29sIGlzIG5vdCBhdmFpbGFibGUgeWV0Lg0K Pj4+DQo+Pj4gT2J2aW91c2x5IHRoaXMgZXJyb3IgY29kZSBiZWxvbmdzIHRvIFNldE1lbW9yeVNw YWNlQXR0cmlidXRlcygpLCBub3QgDQo+Pj4gR2V0TWVtb3J5U3BhY2VEZXNjcmlwdG9yKCkuDQo+ Pj4NCj4+PiBBbnl3YXksIGdEUyBzaG91bGQgYmUgdXNlZCwgYXJjaGl0ZWN0dXJhbCBwcm90b2Nv bHMgc2hvdWxkbid0IGJlLg0KPj4+DQo+Pj4NCj4+Pj4NCj4+Pj4gICAgT2xkVHBsID0gZ0JTLT5S YWlzZVRQTCAoVFBMX0NBTExCQUNLKTsNCj4+Pj4NCj4+Pj4gQEAgLTQ3OSw3ICs0ODAsMTkgQEAg UWVtdVZpZGVvQ29udHJvbGxlckRyaXZlclN0YXJ0ICggICNpZiBkZWZpbmVkDQo+Pj4+IE1ERV9D UFVfSUEzMiB8fCBkZWZpbmVkIE1ERV9DUFVfWDY0DQo+Pj4+ICAgIGlmIChQcml2YXRlLT5WYXJp YW50ID09IFFFTVVfVklERU9fQk9DSFNfTU1JTyB8fA0KPj4+PiAgICAgICAgUHJpdmF0ZS0+VmFy aWFudCA9PSBRRU1VX1ZJREVPX0JPQ0hTKSB7DQo+Pj4+IC0gICAgSW5zdGFsbFZiZVNoaW0gKENh cmQtPk5hbWUsIFByaXZhdGUtPkdyYXBoaWNzT3V0cHV0Lk1vZGUtPkZyYW1lQnVmZmVyQmFzZSk7 DQo+Pj4+ICsgICAgLy8NCj4+Pj4gKyAgICAvLyBQcmVwYXJlIENQVSBhcmNoIHByb3RvY29sIGZv ciBOVUxMIHBvaW50ZXIgZGV0ZWN0aW9uDQo+Pj4+ICsgICAgLy8NCj4+Pj4gKyAgICBTdGF0dXMg PSBnQlMtPkxvY2F0ZVByb3RvY29sICgNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgJmdFZmlD cHVBcmNoUHJvdG9jb2xHdWlkLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPj4+ PiArICAgICAgICAgICAgICAgICAgICAoVk9JRCAqKikgJkNwdQ0KPj4+PiArICAgICAgICAgICAg ICAgICAgICApOw0KPj4+PiArICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+Pj4+ICsN Cj4+Pj4gKyAgICBESVNBQkxFX05VTExfREVURUNUSU9OKENwdSk7DQo+Pj4+ICsgICAgICBJbnN0 YWxsVmJlU2hpbSAoQ2FyZC0+TmFtZSwgUHJpdmF0ZS0+R3JhcGhpY3NPdXRwdXQuTW9kZS0+RnJh bWVCdWZmZXJCYXNlKTsNCj4+Pj4gKyAgICBFTkFCTEVfTlVMTF9ERVRFQ1RJT04oQ3B1KTsNCj4+ Pg0KPj4+ICg3KSBUaGUgTlVMTCBkZXRlY3Rpb24gZGlzYWJsaW5nIGFuZCBlbmFibGluZyBzaG91 bGQgYnJhY2tldCB0aGUgDQo+Pj4gYWZmZWN0ZWQgY29kZSBhcyB0aWdodGx5IGFzIHBvc3NpYmxl Lg0KPj4+DQo+Pj4gU28gcGxlYXNlIG1vdmUgdGhpcyBpbnRvIEluc3RhbGxWYmVTaGltKCkgYWNj b3JkaW5nbHkuDQo+Pj4NCj4+Pg0KPj4+PiAgICB9DQo+Pj4+ICAjZW5kaWYNCj4+Pj4NCj4+Pj4g ZGlmZiAtLWdpdCBhL092bWZQa2cvUWVtdVZpZGVvRHhlL1FlbXUuaCANCj4+Pj4gYi9Pdm1mUGtn L1FlbXVWaWRlb0R4ZS9RZW11LmggaW5kZXggN2ZiYjI1YjNlZi4uYmIzYmM2ZWIwZiAxMDA2NDQN Cj4+Pj4gLS0tIGEvT3ZtZlBrZy9RZW11VmlkZW9EeGUvUWVtdS5oDQo+Pj4+ICsrKyBiL092bWZQ a2cvUWVtdVZpZGVvRHhlL1FlbXUuaA0KPj4+PiBAQCAtMjUsNiArMjUsNyBAQA0KPj4+PiAgI2lu Y2x1ZGUgPFByb3RvY29sL1BjaUlvLmg+DQo+Pj4+ICAjaW5jbHVkZSA8UHJvdG9jb2wvRHJpdmVy U3VwcG9ydGVkRWZpVmVyc2lvbi5oPg0KPj4+PiAgI2luY2x1ZGUgPFByb3RvY29sL0RldmljZVBh dGguaD4NCj4+Pj4gKyNpbmNsdWRlIDxQcm90b2NvbC9DcHUuaD4NCj4+Pj4NCj4+Pj4gICNpbmNs dWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+Pj4+ICAjaW5jbHVkZSA8TGlicmFyeS9VZWZpRHJp dmVyRW50cnlQb2ludC5oPiBAQCAtODIsNiArODMsMjEgQEAgDQo+Pj4+IHR5cGVkZWYgc3RydWN0 IHsNCj4+Pj4NCj4+Pj4gICNkZWZpbmUgR1JBUEhJQ1NfT1VUUFVUX0lOVkFMSURFX01PREVfTlVN QkVSICAweGZmZmYNCj4+Pj4NCj4+Pj4gKy8vDQo+Pj4+ICsvLyBWQkUgY29kZSB3aWxsIGFjY2Vz cyBtZW1vcnkgYmV0d2VlbiAwLTQwOTUgd2hpY2ggd2lsbCBjYXVzZSANCj4+Pj4gK3BhZ2UgZmF1 bHQgZXhjZXB0aW9uIC8vIGlmIE5VTEwgcG9pbnRlciBkZXRlY3Rpb24gbWVjaGFuaXNtIGlzIGVu YWJsZWQuDQo+Pj4+ICtGb2xsb3dpbmcgbWFjcm9zIGNhbiBiZSB1c2VkIHRvIC8vIGRpc2FibGUv ZW5hYmxlIE5VTEwgcG9pbnRlciBkZXRlY3Rpb24gYmVmb3JlL2FmdGVyIGFjY2Vzc2luZyB0aG9z ZSBtZW1vcnkuDQo+Pj4+ICsvLw0KPj4+PiArI2RlZmluZSBOVUxMX0RFVEVDVElPTl9FTkFCTEVE ICAoKFBjZEdldDgoUGNkTnVsbFBvaW50ZXJEZXRlY3Rpb25Qcm9wZXJ0eU1hc2spICYgKEJJVDB8 QklUNykpID09IEJJVDApDQo+Pj4+ICsjZGVmaW5lIERJU0FCTEVfTlVMTF9ERVRFQ1RJT04oQ3B1 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4+Pj4gKyAg aWYgKE5VTExfREVURUNUSU9OX0VOQUJMRUQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KPj4+PiArICAgIChDcHUpLT5TZXRNZW1vcnlBdHRyaWJ1 dGVzKChDcHUpLCAwLCBFRklfUEFHRV9TSVpFLCAwKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ Pj4+ICsgIH0NCj4+Pj4gKyNkZWZpbmUgRU5BQkxFX05VTExfREVURUNUSU9OKENwdSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPj4+PiArICBpZiAoTlVM TF9ERVRFQ1RJT05fRU5BQkxFRCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+Pj4+ICsgICAgKENwdSktPlNldE1lbW9yeUF0dHJpYnV0ZXMoKENw dSksIDAsIEVGSV9QQUdFX1NJWkUsIEVGSV9NRU1PUllfUlApOyAgICAgICAgIFwNCj4+Pj4gKyAg fQ0KPj4+PiArDQo+Pj4NCj4+PiAoOCkgSSBiZWxpZXZlIEpvcmRhbiB0b28gY29tbWVudGVkIG9u IHRoZXNlIG1hY3JvcyBlbHNld2hlcmUgKHVuZGVyIA0KPj4+IHBhdGNoIDEvNCkuDQo+Pj4NCj4+ PiBJbiBteSBvcGluaW9uLCB0aGlzIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGJlIGV4dHJhY3RlZCBp bnRvIGEgbGlicmFyeSANCj4+PiBjbGFzcywgd2l0aCBhIGxpYnJhcnkgaW5zdGFuY2UgdGhhdCBp cyBzdWl0YWJsZSBmb3IgYXQgbGVhc3QgDQo+Pj4gVUVGSV9EUklWRVIgbW9kdWxlcy4gKE1heWJl IGV2ZW4gZm9yIERYRV9EUklWRVIgbW9kdWxlcy4pDQo+Pj4NCj4+PiBZb3UgY291bGQgYWRkIGEg c2VwYXJhdGUgbGlicmFyeSBpbnN0YW5jZSBmb3IgU01NIGRyaXZlcnMsIGlmIHRoYXQgDQo+Pj4g d2VyZSBuZWNlc3NhcnkuDQo+Pj4NCj4+Pg0KPj4+ICg5KSBTdHlsZSBjb21tZW50OiBwbGVhc2Ug cHV0IG9uZSBzcGFjZSBjaGFyYWN0ZXIgYmV0d2VlbiB0aGUgDQo+Pj4gZnVuY3Rpb24gZGVzaWdu YXRvciBhbmQgdGhlIG9wZW5pbmcgcGFyZW50aGVzaXMuDQo+Pj4NCj4+Pg0KPj4+PiAgLy8NCj4+ Pj4gIC8vIFFFTVUgVmlkZW8gUHJpdmF0ZSBEYXRhIFN0cnVjdHVyZSAgLy8gZGlmZiAtLWdpdCAN Cj4+Pj4gYS9Pdm1mUGtnL1FlbXVWaWRlb0R4ZS9RZW11VmlkZW9EeGUuaW5mDQo+Pj4+IGIvT3Zt ZlBrZy9RZW11VmlkZW9EeGUvUWVtdVZpZGVvRHhlLmluZg0KPj4+PiBpbmRleCA3YzdkNDI5YmNh Li41ZDE2NmViOTljIDEwMDY0NA0KPj4+PiAtLS0gYS9Pdm1mUGtnL1FlbXVWaWRlb0R4ZS9RZW11 VmlkZW9EeGUuaW5mDQo+Pj4+ICsrKyBiL092bWZQa2cvUWVtdVZpZGVvRHhlL1FlbXVWaWRlb0R4 ZS5pbmYNCj4+Pj4gQEAgLTcyLDcgKzcyLDkgQEANCj4+Pj4gICAgZ0VmaUdyYXBoaWNzT3V0cHV0 UHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICMgUFJPVE9DT0wgQllfU1RBUlQNCj4+Pj4gICAg Z0VmaURldmljZVBhdGhQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICMgUFJPVE9DT0wg QllfU1RBUlQNCj4+Pj4gICAgZ0VmaVBjaUlvUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAg ICAgICAgICMgUFJPVE9DT0wgVE9fU1RBUlQNCj4+Pj4gKyAgZ0VmaUNwdUFyY2hQcm90b2NvbEd1 aWQNCj4+Pj4NCj4+Pj4gIFtQY2RdDQo+Pj4+ICAgIGdPcHRpb25Sb21Qa2dUb2tlblNwYWNlR3Vp ZC5QY2REcml2ZXJTdXBwb3J0ZWRFZmlWZXJzaW9uDQo+Pj4+ICsgIA0KPj4+PiArIGdFZmlNZGVN b2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2ROdWxsUG9pbnRlckRldGVjdGlvblByb3BlcnR5TWFz DQo+Pj4+ICsgaw0KPj4+DQo+Pj4gKDEwKSBJbnN0ZWFkIG9mIHRoZXNlLCB0aGUgbGlicmFyeSBj bGFzcyB0aGF0IEkgZGVzY3JpYmVkIHVuZGVyICg4KSANCj4+PiBzaG91bGQgYmUgYWRkZWQgaGVy ZS4NCj4+Pg0KPj4+IEFueSBmdXJ0aGVyIGRlcGVuZGVuY2llcyBsaWtlIFBDRHMsIHByb3RvY29s cyBldGMgc2hvdWxkIGJlIA0KPj4+IGluaGVyaXRlZCBieSB0aGUgZHJpdmVyIHRocm91Z2ggdGhl IGxpYnJhcnkgaW5zdGFuY2UgdGhhdCB0aGUgDQo+Pj4gcGxhdGZvcm0gRFNDIGZpbGUgcmVzb2x2 ZXMgdGhlIGxpYnJhcnkgY2xhc3MgdG8uDQo+Pj4NCj4+PiBCb251czogc2hvdWxkIHlvdSByZWFs aXplIHRoYXQgdGhlIGZlYXR1cmUgaXMgaW1wb3NzaWJsZSB0byANCj4+PiBpbXBsZW1lbnQgd2l0 aG91dCBhY2Nlc3NpbmcgdGhlIENQVSBBcmNoIHByb3RvY29sIGRpcmVjdGx5LCB5b3UgDQo+Pj4g Y291bGQgaGlkZSB0aGUgcHJvdG9jb2wgR1VJRCBkZXBlbmRlbmN5IGluIHRoZSBsaWJyYXJ5IGlu c3RhbmNlIElORiANCj4+PiBmaWxlLCBhbmQgSSdkIGJlIG5vbmUgdGhlIHdpc2VyLg0KPj4+DQo+ Pj4gLi4uIFdlbGwsIEkgY291bGQgYXQgbGVhc3QgcHJldGVuZCB0aGF0LiA6KQ0KPj4+DQo+Pj4g VGhhbmtzLA0KPj4+IExhc3psbw0KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQo+Pj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4+PiBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQo+Pj4gaHR0 cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+Pj4NCj4gDQoN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQplZGsyLWRl dmVsIG1haWxpbmcgbGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCmh0dHBzOi8vbGlzdHMu MDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K