From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (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 847852034A873 for ; Thu, 26 Oct 2017 18:43:21 -0700 (PDT) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Oct 2017 18:47:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,302,1505804400"; d="scan'208";a="167674428" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga005.fm.intel.com with ESMTP; 26 Oct 2017 18:47:07 -0700 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Oct 2017 18:47:07 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx121.amr.corp.intel.com (10.18.125.36) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Oct 2017 18:47:07 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.213]) with mapi id 14.03.0319.002; Fri, 27 Oct 2017 09:47:05 +0800 From: "Yao, Jiewen" To: "Ni, Ruiyu" , Laszlo Ersek , "Zeng, Star" , "edk2-devel@lists.01.org" CC: Ard Biesheuvel , "Kinney, Michael D" Thread-Topic: [edk2] [PATCH] IntelSiliconPkg/VTdDxe: Change EBS Event TPL to CALLBACK. Thread-Index: AQHTThcCxLYSYGW9y0GhkiqH8Xoq2aL1lmkw//+FSYCAAIfpEP//foKAgACO5jD//3tdgAACC26AAACcdoAAClfKAAARipCQ//+VBQD//tyGEIABx5eA//9r+QA= Date: Fri, 27 Oct 2017 01:47:04 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AA06A52@shsmsx102.ccr.corp.intel.com> References: <1508984017-11740-1-git-send-email-jiewen.yao@intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE2AB@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA0491C@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE3FE@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA04CE4@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE45B@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA04F32@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE4D0@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE57E@shsmsx102.ccr.corp.intel.com> <657e3efc-c5f3-df60-4263-07f076f07a1c@redhat.com> <74D8A39837DF1E4DA445A8C0B3885C503AA06060@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA068EA@shsmsx102.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5BAA8A38@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5BAA8A38@SHSMSX104.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYmEzYjRhYmEtZDc5OC00YjczLTlmZjQtOGQwZjUyNWQyZDllIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJjcmhUOUdPY0s3KzA1SnE5SWczNHdqb05LUnpKZExDRXJwUWl4VnZtWjlYRHlnNzJWOEc4OUJIVmRZN2szcVNwIn0= x-ctpclassification: CTP_IC 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] IntelSiliconPkg/VTdDxe: Change EBS Event TPL to CALLBACK. 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, 27 Oct 2017 01:43:21 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSB0aGluayB0aGUgZXJyb3IgbWlnaHQgYmUgUENJIGRldmljZSBzcGVjaWZpYy4NCg0KQlRXOiBX ZSBhbHJlYWR5IGhhdmUgYnVnemlsbGFyIG9uIHRoYXQgaHR0cHM6Ly9idWd6aWxsYS50aWFub2Nv cmUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkNCg0KSXQgaGFzIGJlZW4gdmFsaWRhdGVkIGJ5IE1p Y3Jvc29mdC4gV2UgY2FuIHZhbGlkYXRlIG1vcmUgZGV2aWNlIGNhcmRzIHRvIHNlZSBpZiB0aGVy ZSBpcyBhbnkgaXNzdWUuDQoNClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5pLCBSdWl5dQ0KPiBTZW50OiBGcmlkYXksIE9jdG9i ZXIgMjcsIDIwMTcgODo1NCBBTQ0KPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwu Y29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47DQo+IFplbmcsIFN0YXIgPHN0 YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogQXJkIEJp ZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBLaW5uZXksIE1pY2hhZWwgRA0K PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BB VENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50IFRQTCB0bw0KPiBD QUxMQkFDSy4NCj4gDQo+IEppZXdlbiwNCj4gSWYgdGhlIEJNRSBiaXQgaXMgY2xlYXJlZCBpbiBD b21tYW5kIHJlZ2lzdGVyLCBidXQgYSBkZXZpY2UgZHJpdmVyDQo+IHVzZXMgRE1BIHRvIHRyYW5z ZmVyIGRhdGEsIHdoYXQga2luZCBvZiBlcnJvciB3aWxsIGJlIHNlZW4gYnkgU1c/DQo+IA0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZYW8sIEppZXdlbg0KPiBTZW50OiBG cmlkYXksIE9jdG9iZXIgMjcsIDIwMTcgODozNCBBTQ0KPiBUbzogTGFzemxvIEVyc2VrIDxsZXJz ZWtAcmVkaGF0LmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+Ow0KPiBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+ OyBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47DQo+IEtpbm5leSwg TWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtl ZGsyXSBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMgRXZlbnQgVFBM IHRvDQo+IENBTExCQUNLLg0KPiANCj4gR29vZCBJbmZvLiBJIHRoaW5rIGEgY29ycmVjdCBpbXBs ZW1lbnRhdGlvbiBzaG91bGQgbm90IHVzZSBidXN5IHdhaXQuDQo+IA0KPiBJdCBzaG91bGQgYWRk IGVycm9yIGhhbmRsaW5nIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGhhcmR3YXJlIGVycm9yIGR1cmlu ZyB0aGF0Lg0KPiANCj4gPiAtIGJ1c3kgd2FpdCAocG9sbCkgdW5pbCB0aGUgdHJhbnNmZXIgaXMg Y29tcGxldGUsDQo+IA0KPiBUaGUgcHJvY2VzcyBvZiBidXN5IHdhaXQgc2hvdWxkIGJlIHNvbWV0 aGluZyBsaWtlIGJlbG93Og0KPiAgIHdoaWxlKFRSVUUpIHsNCj4gICAgIGlmIChlcnJvcikgew0K PiAgICAgICBicmVhazsNCj4gICAgIH0NCj4gICAgIEdldERhdGENCj4gICAgIGlmIChjb21wbGV0 ZSkgew0KPiAgICAgICBCcmVhaw0KPiAgICAgfQ0KPiAgIH0NCj4gDQo+IEJNRSBjbGVhciB3aWxs IHRyaWdnZXIgZXJyb3IgYnJlYWsuDQo+IA0KPiBUaGFuayB5b3UNCj4gWWFvIEppZXdlbg0KPiAN Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IExhc3psbyBFcnNlayBb bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiA+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2 LCAyMDE3IDExOjA3IFBNDQo+ID4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IFplbmcsIFN0YXINCj4gPiA8c3Rhci56ZW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnDQo+ID4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgQXJkIEJp ZXNoZXV2ZWwNCj4gPiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IEtpbm5leSwgTWljaGFl bCBEDQo+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJlOiBb ZWRrMl0gW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50DQo+ ID4gVFBMIHRvIENBTExCQUNLLg0KPiA+DQo+ID4gT24gMTAvMjYvMTcgMTU6MzYsIFlhbywgSmll d2VuIHdyb3RlOg0KPiA+ID4gSGkgTGFzemxvDQo+ID4gPiBJIGhhdmUgZGlzY3Vzc2VkIHRoaXMg d2l0aCBNaWtlIEtpbm5leSBvZmZsaW5lIGFuZCBzb21lIE1pY3Jvc29mdCBlbmdpbmVlcnMuDQo+ ID4gPg0KPiA+ID4gV2UgYmVsaWV2ZSB0aGUgaW1wYWN0IG9mIEJNRSBkaXNhYmxlIGlzIGRpZmZl cmVudCB3aXRoIHRoZSBpbXBhY3Qgb2YgU0VWLg0KPiA+ID4NCj4gPiA+IEZvciBTRVYsIGlmIGEg RE1BIGJ1ZmZlciBpcyBpbiB0cmFuc2l0aW9uIHdoZW4gU0VWIGJpdCBjaGFuZ2UsIHRoZQ0KPiA+ ID4gRE1BIHdpbGwgc3RpbGwNCj4gPiBiZSBhY3RpdmUsIGJ1dCB0aGUgY29udGVudCBpcyBkaWZm ZXJlbnQuIEl0IHdpbGwgYnJpbmcgd3JvbmcgZGF0YSBmcm9tDQo+ID4gZGV2aWNlIHBlcnNwZWN0 aXZlLg0KPiA+ID4NCj4gPiA+IEZvciBCTUUsIGlmIGEgRE1BIGJ1ZmZlciBpcyBpbiB0cmFuc2l0 aW9uIHdoZW4gQk1FIGlzIGNsZWFyLCB0aGUgRE1BDQo+ID4gPiB3aWxsIGJlDQo+ID4gc3RvcHBl ZCBpbW1lZGlhdGVseS4gVGhlIGRldmljZSBvbmx5IHNlZXMgdGhlIERNQSB0cmFuc2l0aW9uIGlz IGFib3J0Lg0KPiA+IEJ1dCB0aGVyZSBpcyBubyB3cm9uZyBkYXRhIHRyYW5zbWl0dGVkLg0KPiA+ DQo+ID4gSSBhZ3JlZSB3aXRoIHRoZSBhYm92ZSBhbmFseXNpcy4NCj4gPg0KPiA+ID4gQmVjYXVz ZSBvZiBhYm92ZSByZWFzb24sIHdlIHRoaW5rIGl0IGlzIE9LIHRvIGxldCBQQ0kgYnVzIGRyaXZl ciB0bw0KPiA+ID4gY2xlYXIgQk1FIGJpdA0KPiA+IGV2ZW4gdGhlcmUgaXMgYWN0aXZlIERNQSB0 cmFuc2FjdGlvbi4NCj4gPg0KPiA+IFRoZSByZWFzb24gd2h5IEkgYmVsaWV2ZSB0aGF0IHRoZSBQ Y2lCdXNEeGUgZHJpdmVyIHNob3VsZCBub3QgY2xlYXINCj4gPiB0aGUgQk1FIGJpdCBpcyBkaWZm ZXJlbnQuIEl0IGlzIHVucmVsYXRlZCB0byBTRVYuDQo+ID4NCj4gPiBJbWFnaW5lIGEgUENJIGRl dmljZSB0aGF0IHJlcXVpcmVzIGEgc3BlY2lhbCBETUEgdHJhbnNmZXIgYmVmb3JlIGl0DQo+ID4g Y2FuIGJlIHF1aWVzY2VkIGF0IEV4aXRCb290U2VydmljZXMoKS4gVGhlIHZlbmRvciBvZiB0aGlz IGRldmljZSB3aWxsDQo+ID4gaW1wbGVtZW50IGFuIEVCUyBub3RpZmljYXRpb24gZnVuY3Rpb24g bGlrZSB0aGlzOg0KPiA+DQo+ID4gLSBjaGVjayB0aGUgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZSB0 byBzZWUgaWYgdGhlIGRldmljZSBuZWVkcyB0aGUNCj4gPiBzcGVjaWFsIERNQSB0cmFuc2Zlcg0K PiA+DQo+ID4gLSBpbml0aWF0ZSB0aGUgc3BlY2lhbCBETUEgdHJhbnNmZXIgLS0gd3JpdGUgc29t ZSBkYXRhIHRvIGEgcHJlYWxsb2NhdGVkDQo+ID4gICBhbmQgcHJlLXByb2dyYW1tZWQgbWVtb3J5 IGJ1ZmZlciwgYW5kIHRoZW4gcHVzaCB0aGUgZG9vcmJlbGwgaW4gTU1JTw0KPiA+ICAgb3IgY29u ZmlnIHNwYWNlLA0KPiA+DQo+ID4gLSBidXN5IHdhaXQgKHBvbGwpIHVuaWwgdGhlIHRyYW5zZmVy IGlzIGNvbXBsZXRlLA0KPiA+DQo+ID4gLSBjbGVhciBCTUUgKGFzIHJlcXVpcmVkIGJ5IHRoZSBE V0cgLyBzcGVjKQ0KPiA+DQo+ID4gLSBkb25lDQo+ID4NCj4gPiBOb3csIGlmIFBjaUJ1c0R4ZSBp bnRyb2R1Y2VzIGl0cyBvd24gRUJTIG5vdGlmaWNhdGlvbiBmdW5jdGlvbiwgd2hpY2gNCj4gPiBp dGVyYXRlcyBvdmVyIGFsbCB0aGUgUGNpSW8gaW5zdGFuY2VzLCBhbmQgY2xlYXJzIHRoZSBCTUUg Yml0IGluIGVhY2gNCj4gPiBjb21tYW5kIHJlZ2lzdGVyLCB0aGVuIHRoaXMgbm90aWZpY2F0aW9u IGZ1bmN0aW9uIG1heSwgb3IgbWF5IG5vdCwgYmUNCj4gPiBxdWV1ZWQgYmVmb3JlIHRoZSBvdGhl ciBvbmUgdGhhdCBJIGRlc2NyaWJlZCBhYm92ZS4NCj4gPg0KPiA+IElmIHRoZSBQY2lCdXNEeGUg ZnVuY3Rpb24gaXMgcXVldWVkICJhZnRlciIsIHRoZW4gZXZlcnl0aGluZyBpcyBmaW5lLg0KPiA+ IElmIGl0IGlzIHF1ZXVlZCAiYmVmb3JlIiwgdGhlbiB0aGUgZHJpdmVyJ3Mgb3duIG5vdGlmaWNh dGlvbiBmdW5jdGlvbg0KPiA+IHdpbGwgYnJlYWsuIChJdCBtYXkgZXZlbiBoYW5nLCBpZiB0aGUg YnVzeSB3YWl0IG5ldmVyIGNvbXBsZXRlcy4pDQo+ID4NCj4gPg0KPiA+IFVFRkkgZHJpdmVycyBm b3IgUENJIGRldmljZXMgYXJlIGN1cnJlbnRseSBub3QgZm9yYmlkZGVuIGZyb20gZG9pbmcgYQ0K PiA+IHF1aWNrIENvbW1vbkJ1ZmZlciBETUEgdHJhbnNmZXIgaW4gdGhlaXIgRUJTIGNhbGxiYWNr cyAoYXMgbG9uZyBhcw0KPiA+IHRoZXkgZG9uJ3QgYWxsb2NhdGUgb3IgcmVsZWFzZSBtZW1vcnkg LS0gYnV0IHRoZSBtZW1vcnkgYnVmZmVyIGFuZCB0aGUNCj4gPiBjb3JyZXNwb25kaW5nIENvbW1v bkJ1ZmZlciBtYXBwaW5nIGFyZSBub3QgaGFyZCB0byBzZXQgdXAgaW4gYWR2YW5jZSwNCj4gPiBm b3IgZXhhbXBsZSBpbiBEcml2ZXJCaW5kaW5nU3RhcnQoKSkuDQo+ID4NCj4gPiBUaGlzIG1lYW5z IHRoYXQgYW55IGF1dG9tYXRlZCBJT01NVSBkZWFjdGl2YXRpb24sIGFuZC9vciBCTUUgY2xlYXJp bmcNCj4gPiBpbiBQY2lCdXNEeGUsIHNob3VsZCBvY2N1ciBvbmx5IGFmdGVyIHRoZSBpbmRpdmlk dWFsIGRyaXZlciBjYWxsYmFja3MNCj4gPiBoYXZlIHJldHVybmVkLiBJZiBQY2lCdXNEeGUgY2Fu IGd1YXJhbnRlZSB0aGlzLCB0aGVuIEkgaGF2ZSBubw0KPiA+IG9iamVjdGlvbnMgOikNCj4gPg0K PiA+IFRoYW5rcyENCj4gPiBMYXN6bG8NCj4gPg0KPiA+ID4NCj4gPiA+IFRoYW5rIHlvdQ0KPiA+ ID4gWWFvIEppZXdlbg0KPiA+ID4NCj4gPiA+DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNv bV0NCj4gPiA+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyA5OjA3IFBNDQo+ID4g Pj4gVG86IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBZYW8sIEppZXdlbg0KPiA+ ID4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4g Pj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4g PiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gPiA+PiBTdWJqZWN0OiBSZTogW2VkazJd IFtQQVRDSF0gSW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUw0KPiA+ID4+IEV2ZW50 IFRQTCB0byBDQUxMQkFDSy4NCj4gPiA+Pg0KPiA+ID4+IE9uIDEwLzI2LzE3IDEwOjEwLCBaZW5n LCBTdGFyIHdyb3RlOg0KPiA+ID4+PiBJcyBpdCBzZWN1cml0eSByZWFzb24gd2hlbiBJT01NVSBk aXNhYmxlZCBhbmQgQnVzIE1hc3RlciBub3QgZGlzYWJsZWQ/DQo+ID4gPj4NCj4gPiA+PiBObywg SSBkb24ndCB0aGluayB0aGVyZSBpcyBhIHNlY3VyaXR5IGlzc3VlIGhlcmUuDQo+ID4gPj4NCj4g PiA+PiBCdXQsIG15IHByZXZpb3VzIGFzc2Vzc21lbnQgYWJvdXQgVlRkRHhlIHdhcyBpbmRlZWQg d3JvbmcgLS0gdGhlcmUNCj4gPiA+PiBtYXkgYmUgYSAqY29ycmVjdG5lc3MqIGlzc3VlLg0KPiA+ ID4+DQo+ID4gPj4gTmFtZWx5LCBpZiB0aGUgSU9NTVUgaXMgZGUtYWN0aXZhdGVkIGJ5IFZUZER4 ZSBiZWZvcmUgUENJIGRyaXZlcnMNCj4gPiA+PiBhYm9ydCBwZW5kaW5nIERNQSwgdGhlbiBsaXZl IHN5c3RlbSBSQU0gcmVmZXJlbmNlcyBpbiB0aGUgZGV2aWNlcw0KPiA+ID4+IG1heSBiZWNvbWUg Ym9ndXMuIFRoaXMgaXMgbm90IGEgc2VjdXJpdHkgaXNzdWUgKGJlY2F1c2UNCj4gPiA+PiBkZS1h Y3RpdmF0aW5nIHRoZSBJT01NVSB3aWxsIGdyYW50IHRoZSBkZXZpY2VzIGFjY2VzcyB0byBhbGwg b2YgdGhlDQo+ID4gPj4gc3lzdGVtIFJBTSBhbnl3YXkpLCBpbnN0ZWFkIGl0J3MgYSBjb3JyZWN0 bmVzcyBwcm9ibGVtOiBETUENCj4gPiA+PiByZWFkL3dyaXRlIG1heSBub3cgYmUgZGlyZWN0ZWQg dG8gdGhlIHdyb25nIHNwb3RzIGluIFJBTSAoaWYgdGhlIElPTU1VDQo+IG1hcHBpbmdzIHdlcmUg bm90IDE6MSBwcmV2aW91c2x5KS4NCj4gPiA+Pg0KPiA+ID4+IFNvLCBJIGFncmVlIHRoYXQgUENJ IGRyaXZlcnMgc2hvdWxkIGdldCBhIGNoYW5jZSB0byBhYm9ydCBwZW5kaW5nDQo+ID4gPj4gRE1B IGZpcnN0LCBiZWZvcmUgdGhlIElPTU1VIGRyaXZlciByZW1vdmVzIHRoZSBtYXBwaW5ncy4NCj4g PiA+Pg0KPiA+ID4+PiBDb3VsZCBvdXIgY29kZSBoYXZlIGEgY2VudHJhbCBwbGFjZSB0byBkaXNh YmxlIEJ1cyBNYXN0ZXI/IEZvcg0KPiA+ID4+PiBleGFtcGxlDQo+ID4gPj4gUGNpQnVzRHhlPw0K PiA+ID4+DQo+ID4gPj4gTm8sIEkgZG9uJ3QgdGhpbmsgUGNpQnVzRHhlIGlzIGEgZ29vZCBpZGVh LiBIaWdoZXItbGV2ZWwgUENJDQo+ID4gPj4gZHJpdmVycyBtaWdodCB3YW50IHRvIGRvIG9uZS1z aG90IGJ1cyBtYXN0ZXIgRE1BIG9wZXJhdGlvbnMgaW4NCj4gPiA+PiB0aGVpciBvd24gRUJTIGNh bGxiYWNrcy4gSWYgUGNpQnVzRHhlJ3MgY2FsbGJhY2sgcmFuIGZpcnN0LCB0aGVuDQo+ID4gPj4g dGhlc2UgaGlnaGVyLWxldmVsIGRyaXZlcnMgd291bGQgYnJlYWsuDQo+ID4gPj4NCj4gPiA+PiBG b3IgdGhlIFNFViBJT01NVSBkcml2ZXIsIHdlIHNvbHZlZCB0aGUgcHJvYmxlbSBpbiBjb21taXQN Cj4gPiA+PiA3YWVlMzkxZmEzZDANCj4gPiA+PiAoIk92bWZQa2cvSW9NbXVEeGU6IHVubWFwIGFs bCBJT01NVSBtYXBwaW5ncyBhdA0KPiA+ID4+IEV4aXRCb290U2VydmljZXMoKSIsIDIwMTctMDkt MDcpLiBJIHRoaW5rIHRoZSBzYW1lIGNvdWxkIGJlIGFwcGxpZWQgdG8NCj4gVlRkRHhlLg0KPiA+ ID4+DQo+ID4gPj4NCj4gPiA+PiBBbm90aGVyIGlkZWEgKHN1Z2dlc3RlZCAvIHN1cHBvcnRlZCBi eSBBcmQpIHdhcyB0byBtb2RpZnkgdGhlIGVkazINCj4gPiA+PiBFeGl0Qm9vdFNlcnZpY2VzKCkg aW1wbGVtZW50YXRpb24uIEluIENvcmVFeGl0Qm9vdFNlcnZpY2VzKCkNCj4gPiA+PiBbTWRlTW9k dWxlUGtnL0NvcmUvRHhlL0R4ZU1haW4vRHhlTWFpbi5jXSwgd2UgY291bGQgc2lnbmFsIGENCj4g PiA+PiBzcGVjaWFsDQo+ID4gPj4gZWRrMiBJT01NVSBldmVudCBncm91cCwgcmlnaHQgYWZ0ZXIg c2lnbmFsaW5nDQo+ID4gPj4gImdFZmlFdmVudEV4aXRCb290U2VydmljZXNHdWlkIjoNCj4gPiA+ Pg0KPiA+ID4+ICAgLy8NCj4gPiA+PiAgIC8vIE5vdGlmeSBvdGhlciBkcml2ZXJzIHRoYXQgd2Ug YXJlIGV4aXRpbmcgYm9vdCBzZXJ2aWNlcy4NCj4gPiA+PiAgIC8vDQo+ID4gPj4gICBDb3JlTm90 aWZ5U2lnbmFsTGlzdCAoJmdFZmlFdmVudEV4aXRCb290U2VydmljZXNHdWlkKTsNCj4gPiA+Pg0K PiA+ID4+ICAgW0hFUkVdDQo+ID4gPj4NCj4gPiA+PiAgIC8vDQo+ID4gPj4gICAvLyBSZXBvcnQg dGhhdCBFeGl0Qm9vdFNlcnZpY2VzKCkgaGFzIGJlZW4gY2FsbGVkDQo+ID4gPj4gICAvLw0KPiA+ ID4+ICAgUkVQT1JUX1NUQVRVU19DT0RFICgNCj4gPiA+PiAgICAgRUZJX1BST0dSRVNTX0NPREUs DQo+ID4gPj4gICAgIChFRklfU09GVFdBUkVfRUZJX0JPT1RfU0VSVklDRSB8DQo+ID4gPj4gRUZJ X1NXX0JTX1BDX0VYSVRfQk9PVF9TRVJWSUNFUykNCj4gPiA+PiAgICAgKTsNCj4gPiA+Pg0KPiA+ ID4+IFRoaXMgd291bGQgZW5zdXJlIHRoYXQgdGhlIElPTU1VIGNhbGxiYWNrIHJhbiBsYXN0Lg0K PiA+ID4+DQo+ID4gPj4NCj4gPiA+PiBZZXQgYW5vdGhlciBpZGVhIChmcm9tIEppZXdlbiBJIHRo aW5rPykgd2FzIHRvIGNhdGNoIHRoZQ0KPiA+ID4+IEVGSV9TV19CU19QQ19FWElUX0JPT1RfU0VS VklDRVMgc3RhdHVzIGNvZGUgaW4gdGhlIElPTU1VIGRyaXZlci4gSQ0KPiA+ID4+IGRpZG4ndCBs aWtlIHRoZSBpZGVhIGJlY2F1c2UgKElNTykgaXQgcHV0IHRvbyBtYW55IHJlcXVpcmVtZW50cyBv bg0KPiA+ID4+IHBsYXRmb3Jtcy4NCj4gPiA+Pg0KPiA+ID4+IFRoYW5rcywNCj4gPiA+PiBMYXN6 bG8NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4+DQo+ID4gPj4+DQo+ID4gPj4+IFRoYW5rcywNCj4g PiA+Pj4gU3Rhcg0KPiA+ID4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+PiBG cm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gPiA+Pj4gU2Vu dDogVGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMzo1MyBQTQ0KPiA+ID4+PiBUbzogWmVuZywg U3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IFlhbywgSmlld2VuDQo+ID4gPj4+IDxqaWV3ZW4u eWFvQGludGVsLmNvbT47DQo+ID4gPj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+Pj4g Q2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiA+ID4+PiBTdWJqZWN0OiBSZTog W1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50IFRQTA0KPiA+ ID4+PiB0bw0KPiA+ID4+IENBTExCQUNLLg0KPiA+ID4+Pg0KPiA+ID4+PiBPbiAxMC8yNi8xNyAw ODo1NCwgWmVuZywgU3RhciB3cm90ZToNCj4gPiA+Pj4+IE9rLCBwbGVhc2UgYWRkIG1vcmUgZGVz Y3JpcHRpb24gaW50byB0aGUgY29tbWl0IGxvZywgZm9yIGV4YW1wbGUsDQo+ID4gPj4+PiAiUENJ DQo+ID4gZGV2aWNlDQo+ID4gPj4gc2hvdWxkIGRpc2FibGUgQk1FIGF0IE5PVElGWSIsIGV0Yy4N Cj4gPiA+Pj4NCj4gPiA+Pj4gTGFzdCB0aW1lIHdlIGRpc2N1c3NlZCB0aGlzIHF1ZXN0aW9uLCB0 aGUgY29uc2Vuc3VzIHdhcyB0aGF0IGVkazINCj4gPiA+Pj4gc2hvdWxkDQo+ID4gbm90DQo+ID4g Pj4gcHJlc2VudCBhbnkgcmVxdWlyZW1lbnQgZm9yIFBDSSBkcml2ZXJzIHRoYXQgaXMgbm90IHJl cXVpcmVkIGJ5IHRoZSBVRUZJDQo+IHNwZWMuDQo+ID4gPj4gVUVGSSBkcml2ZXJzIGZvciBQQ0kg ZGV2aWNlcyBjb21lIGZyb20gdGhpcmQgcGFydGllcyBhcyB3ZWxsLCBhbmQNCj4gPiA+PiB0aG9z ZSBkcml2ZXJzDQo+ID4gd2lsbA0KPiA+ID4+IG9ubHkgY2FyZSBhYm91dCB0aGUgVUVGSSBzcGVj IChhcyB0aGV5IHNob3VsZCksIG5vdCBhYm91dCBlZGsyLg0KPiA+ID4+Pg0KPiA+ID4+PiBJbiBm YWN0LCBJIHRoaW5rIHRoaXMgYWRkaXRpb25hbCByZXF1aXJlbWVudCBpcyBub3QgbmVjZXNzYXJ5 Og0KPiA+ID4+Pg0KPiA+ID4+PiAqIEluIHRoZSBlYXJsaWVyIGRpc2N1c3Npb24gKGZvciB0aGUg U0VWIElvTW11RHhlIGluIE9WTUYpLCBpdCB3YXMNCj4gPiA+Pj4gcmVhbGx5DQo+ID4gPj4gbmVj ZXNzYXJ5IHRvIGRlbGF5IHRoZSBJb01tdUR4ZSBFeGl0Qm9vdFNlcnZpY2VzKCkgY2FsbGJhY2sg YWZ0ZXINCj4gPiA+PiBhbGwgdGhlIFBDSSBkcml2ZXIgY2FsbGJhY2tzLiBUaGUgcmVhc29uIGZv ciB0aGlzIHdhcyB0aGF0IHRoZQ0KPiA+ID4+IElvTW11RHhlDQo+ID4gPj4+IEV4aXRCb290U2Vy dmljZXMoKSBjYWxsYmFjayB3YXMgZ29pbmcgdG8gKmxvY2sgZG93biogYWxsIFJBTSBmcm9tDQo+ ID4gPj4+IGRldmljZXMsDQo+ID4gYW5kDQo+ID4gPj4gcGVuZGluZyBETUEgaGFkIHRvIGJlIGFi b3J0ZWQgYmVmb3JlIHRoaXMgbG9jay1kb3duLg0KPiA+ID4+Pg0KPiA+ID4+PiAqIEluIGNvbXBh cmlzb24sIHRoZSBWVGREeGUgY2FsbGJhY2sgYXQgRUJTIGRvZXMgdGhlIG9wcG9zaXRlOiBpdA0K PiA+ID4+PiAiZGlzYWJsZVtzXQ0KPiA+ID4+IHRoZSBwcm90ZWN0aW9uIGFuZCBhbGxvd1tzXSBh bGwgRE1BIGFjY2VzcyIsIGluIEppZXdlbidzIHdvcmRzIGZyb20NCj4gPiB1cC10aHJlYWQuDQo+ ID4gPj4gU28sIElNTywgbmVpdGhlciB0aGUgUENJIGRyaXZlciByZXF1aXJlbWVudCwgbm9yIHRo aXMgcGF0Y2gsIGFyZQ0KPiA+ID4+IG5lY2Vzc2FyeSAtLSB0aGVyZSBpcyBuZXZlciBhbiBJT01N VSBzdGF0ZSB0aGF0IGNvbmZsaWN0cyB3aXRoIGENCj4gPiA+PiBjb3JyZWN0bHkgd3JpdHRlbiBQ Q0kNCj4gPiBkcml2ZXIncw0KPiA+ID4+IHBlbmRpbmcgRE1BIG9wZXJhdGlvbi4NCj4gPiA+Pj4N Cj4gPiA+Pj4gVGhhbmtzDQo+ID4gPj4+IExhc3psbw0KPiA+ID4+Pg0KPiA+ID4+Pj4NCj4gPiA+ Pj4+IFdpdGggdGhhdCwgUmV2aWV3ZWQtYnk6IFN0YXIgWmVuZyA8c3Rhci56ZW5nQGludGVsLmNv bT4NCj4gPiA+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gVGhhbmtzLA0KPiA+ID4+Pj4gU3Rhcg0K PiA+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+IEZyb206IFlhbywg Smlld2VuDQo+ID4gPj4+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyAyOjUxIFBN DQo+ID4gPj4+PiBUbzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IGVkazItZGV2 ZWxAbGlzdHMuMDEub3JnDQo+ID4gPj4+PiBDYzogTGFzemxvIEVyc2VrIChsZXJzZWtAcmVkaGF0 LmNvbSkgPGxlcnNla0ByZWRoYXQuY29tPjsgTmksDQo+ID4gPj4+PiBSdWl5dSA8cnVpeXUubmlA aW50ZWwuY29tPg0KPiA+ID4+Pj4gU3ViamVjdDogUkU6IFtQQVRDSF0gSW50ZWxTaWxpY29uUGtn L1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudCBUUEwNCj4gPiA+Pj4+IHRvDQo+ID4gPj4gQ0FMTEJB Q0suDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gWWVzLCB0aGlzIFBDSSBwYXRjaCB3aWxsIGJlIHN1Ym1p dHRlZCBzb29uLiA6KQ0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFRoYW5rIHlvdQ0KPiA+ID4+Pj4gWWFv IEppZXdlbg0KPiA+ID4+Pj4NCj4gPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+ID4+Pj4+IEZyb206IFplbmcsIFN0YXINCj4gPiA+Pj4+PiBTZW50OiBUaHVyc2RheSwgT2N0 b2JlciAyNiwgMjAxNyAyOjE4IFBNDQo+ID4gPj4+Pj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4u eWFvQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPj4+Pj4gQ2M6IExh c3psbyBFcnNlayAobGVyc2VrQHJlZGhhdC5jb20pIDxsZXJzZWtAcmVkaGF0LmNvbT47IFplbmcs DQo+ID4gPj4+Pj4gU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPiA+Pj4+PiBTdWJqZWN0 OiBSRTogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50DQo+ ID4gPj4+Pj4gVFBMIHRvDQo+ID4gPj4gQ0FMTEJBQ0suDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBT byB0aGVyZSB3aWxsIGJlIGEgZ3VpZGFuY2UgZm9yIHRoaXMgIiBQQ0kgZGV2aWNlIGRpc2FibGUg Qk1FIGF0DQo+ID4gPj4+Pj4gTk9USUZZICIgdG8gYmUgZG9jdW1lbnRlZD8NCj4gPiA+Pj4+Pg0K PiA+ID4+Pj4+IFRoYW5rcywNCj4gPiA+Pj4+PiBTdGFyDQo+ID4gPj4+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+PiBGcm9tOiBZYW8sIEppZXdlbg0KPiA+ID4+Pj4+IFNl bnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDI6MDMgUE0NCj4gPiA+Pj4+PiBUbzogWmVu ZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ ID4gPj4+Pj4gQ2M6IExhc3psbyBFcnNlayAobGVyc2VrQHJlZGhhdC5jb20pIDxsZXJzZWtAcmVk aGF0LmNvbT4NCj4gPiA+Pj4+PiBTdWJqZWN0OiBSRTogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cv VlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50DQo+ID4gPj4+Pj4gVFBMIHRvDQo+ID4gPj4gQ0FMTEJB Q0suDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBSaWdodC4gSW4gdGhlIGZ1dHVyZSwgd2Ugd2lsbCBs ZXQgUENJIGRldmljZSBkaXNhYmxlIEJNRSBhdCBOT1RJRlkuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+ PiBTbyB3ZSBsZXQgSU9NTVUgdXNlIENBTExCQUNLLCB0byBtYWtlIHN1cmUgQk1FIGlzIGRpc2Fi bGVkDQo+ID4gPj4+Pj4gYmVmb3JlIElPTU1VIGlzIGRpc2FibGVkLg0KPiA+ID4+Pj4+DQo+ID4g Pj4+Pj4gVGhhbmsgeW91DQo+ID4gPj4+Pj4gWWFvIEppZXdlbg0KPiA+ID4+Pj4+DQo+ID4gPj4+ Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+Pj4+IEZyb206IFplbmcsIFN0 YXINCj4gPiA+Pj4+Pj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMTo1NSBQTQ0K PiA+ID4+Pj4+PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+Pj4+Pj4gQ2M6IExhc3psbyBFcnNlayAobGVyc2VrQHJl ZGhhdC5jb20pIDxsZXJzZWtAcmVkaGF0LmNvbT47IFplbmcsDQo+ID4gPj4+Pj4+IFN0YXIgPHN0 YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gPj4+Pj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIEludGVs U2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMgRXZlbnQNCj4gPiA+Pj4+Pj4gVFBMIHRvDQo+ ID4gPj4+Pj4gQ0FMTEJBQ0suDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IEkgYW0gY29uZnVzZWQu DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IElzIHRoaXMgcGF0Y2ggdG8gbWFrZSB0aGUgZGV2aWNl IGRyaXZlcidzIEVCUyBldmVudA0KPiA+ID4+Pj4+PiBub3RpZmljYXRpb24gdG8gYmUgcnVuIGJl Zm9yZSBJbnRlbFZUZER4ZSdzIEVCUyBldmVudCBub3RpZmljYXRpb24/DQo+ID4gPj4+Pj4+DQo+ ID4gPj4+Pj4+IElmIHllcywgdGhpcyBwYXRjaCBzZWVtaW5nbHkgY2FuIG9ubHkgbWFrZSBzdXJl IHRoZSBiZWhhdmlvcg0KPiA+ID4+Pj4+PiB3aGVuIHRoZSBkZXZpY2UgZHJpdmVyJ3MgRUJTIGV2 ZW50IG5vdGlmaWNhdGlvbiBpcyBhdCBOT1RJRlksIGJ1dCBub3QNCj4gQ0FMTEJBQ0suDQo+ID4g Pj4+Pj4+DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IFRoYW5rcywNCj4gPiA+Pj4+Pj4gU3Rhcg0K PiA+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+Pj4+PiBGcm9tOiBZ YW8sIEppZXdlbg0KPiA+ID4+Pj4+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyAx OjE2IFBNDQo+ID4gPj4+Pj4+IFRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsg ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+Pj4+Pj4gQ2M6IExhc3psbyBFcnNlayAobGVy c2VrQHJlZGhhdC5jb20pIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiA+Pj4+Pj4gU3ViamVjdDog UkU6IFtQQVRDSF0gSW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudA0KPiA+ ID4+Pj4+PiBUUEwgdG8NCj4gPiA+Pj4+PiBDQUxMQkFDSy4NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+ Pj4gVGhhdCBpcyBmaW5lLg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBIZXJlLCBkaXNhYmxpbmcg SU9NTVUgbWVhbnMgdG8gZGlzYWJsZSB0aGUgcHJvdGVjdGlvbiBhbmQgYWxsb3cNCj4gPiA+Pj4+ Pj4gYWxsIERNQSBhY2Nlc3MuDQo+ID4gPj4+Pj4+IEkgZG8gbm90IHRoaW5rIGl0IHdpbGwgYnJp bmcgYW55IGZ1bmN0aW9uYWwgaW1wYWN0Lg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBUaGFuayB5 b3UNCj4gPiA+Pj4+Pj4gWWFvIEppZXdlbg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+Pg0KPiA+ID4+ Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+Pj4+IEZyb206IFplbmcs IFN0YXINCj4gPiA+Pj4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDEyOjU4 IFBNDQo+ID4gPj4+Pj4+PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsN Cj4gPiA+Pj4+Pj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPj4+Pj4+PiBDYzogTGFz emxvIEVyc2VrIChsZXJzZWtAcmVkaGF0LmNvbSkgPGxlcnNla0ByZWRoYXQuY29tPjsNCj4gPiA+ Pj4+Pj4+IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gPj4+Pj4+PiBTdWJq ZWN0OiBSRTogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50 DQo+ID4gPj4+Pj4+PiBUUEwgdG8NCj4gPiA+Pj4+Pj4gQ0FMTEJBQ0suDQo+ID4gPj4+Pj4+Pg0K PiA+ID4+Pj4+Pj4gU29tZSBkZXZpY2UgZHJpdmVyIG1heSBhbHNvIGhhdmUgZXhpdCBib290IHNl cnZpY2UgZXZlbnQgYXQNCj4gPiA+Pj4+Pj4+IENBTExCQUNLLCBmb3IgZXhhbXBsZSBBdGFQYXNz VGhydUV4aXRCb290U2VydmljZXMoKSB0aGF0IHdhcw0KPiA+ID4+Pj4+Pj4gYWRkZWQgYnkNCj4g PiA+Pj4+PiBMYXN6bG8uDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+IFRo YW5rcywNCj4gPiA+Pj4+Pj4+IFN0YXINCj4gPiA+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gPj4+Pj4+PiBGcm9tOiBZYW8sIEppZXdlbg0KPiA+ID4+Pj4+Pj4gU2VudDog VGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMTA6MTQgQU0NCj4gPiA+Pj4+Pj4+IFRvOiBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4+Pj4+Pj4gQ2M6IFplbmcsIFN0YXIgPHN0YXIuemVu Z0BpbnRlbC5jb20+DQo+ID4gPj4+Pj4+PiBTdWJqZWN0OiBbUEFUQ0hdIEludGVsU2lsaWNvblBr Zy9WVGREeGU6IENoYW5nZSBFQlMgRXZlbnQgVFBMDQo+ID4gPj4+Pj4+PiB0bw0KPiA+ID4+IENB TExCQUNLLg0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+IENoYW5nZSBFeGl0Qm9vdFNlcnZpY2Vz IFRQTCB0byBDQUxMQkFDSywgc28gdGhhdCBhIGRldmljZSBjYW4NCj4gPiA+Pj4+Pj4+IGRpc2Fi bGUgQk1FIGJlZm9yZSBJT01NVSBncmFudHMgYWNjZXNzIHJpZ2h0Lg0KPiA+ID4+Pj4+Pj4NCj4g PiA+Pj4+Pj4+IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gPj4+Pj4+ PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4x DQo+ID4gPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVs LmNvbT4NCj4gPiA+Pj4+Pj4+IC0tLQ0KPiA+ID4+Pj4+Pj4gIEludGVsU2lsaWNvblBrZy9GZWF0 dXJlL1ZUZC9JbnRlbFZUZER4ZS9EbWFQcm90ZWN0aW9uLmMgfCA0DQo+ID4gPj4+Pj4+PiArKy0t DQo+ID4gPj4+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkNCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PiBkaWZmIC0tZ2l0DQo+ID4gPj4+Pj4+PiBh L0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZER4ZS9EbWFQcm90ZWN0aW9uLmMN Cj4gPiA+Pj4+Pj4+IGIvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0Rt YVByb3RlY3Rpb24uYw0KPiA+ID4+Pj4+Pj4gaW5kZXggZjVkZTAxZi4uNGE0ZDgyZSAxMDA2NDQN Cj4gPiA+Pj4+Pj4+IC0tLSBhL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZER4 ZS9EbWFQcm90ZWN0aW9uLmMNCj4gPiA+Pj4+Pj4+ICsrKyBiL0ludGVsU2lsaWNvblBrZy9GZWF0 dXJlL1ZUZC9JbnRlbFZUZER4ZS9EbWFQcm90ZWN0aW9uLmMNCj4gPiA+Pj4+Pj4+IEBAIC00ODMs NyArNDgzLDcgQEAgSW5pdGlhbGl6ZURtYVByb3RlY3Rpb24gKA0KPiA+ID4+Pj4+Pj4NCj4gPiA+ Pj4+Pj4+ICAgIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnRFeCAoDQo+ID4gPj4+Pj4+PiAgICAg ICAgICAgICAgICAgICAgRVZUX05PVElGWV9TSUdOQUwsDQo+ID4gPj4+Pj4+PiAtICAgICAgICAg ICAgICAgICAgVFBMX05PVElGWSwNCj4gPiA+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICBUUExf Q0FMTEJBQ0ssDQo+ID4gPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgT25FeGl0Qm9vdFNlcnZp Y2VzLA0KPiA+ID4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gPj4+Pj4+PiAg ICAgICAgICAgICAgICAgICAgJmdFZmlFdmVudEV4aXRCb290U2VydmljZXNHdWlkLCBAQCAtNDky LDcNCj4gPiA+Pj4+Pj4+ICs0OTIsNyBAQCBJbml0aWFsaXplRG1hUHJvdGVjdGlvbiAoDQo+ID4g Pj4+Pj4+PiAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ID4+Pj4+Pj4NCj4gPiA+ Pj4+Pj4+ICAgIFN0YXR1cyA9IEVmaUNyZWF0ZUV2ZW50TGVnYWN5Qm9vdEV4ICgNCj4gPiA+Pj4+ Pj4+IC0gICAgICAgICAgICAgVFBMX05PVElGWSwNCj4gPiA+Pj4+Pj4+ICsgICAgICAgICAgICAg VFBMX0NBTExCQUNLLA0KPiA+ID4+Pj4+Pj4gICAgICAgICAgICAgICBPbkxlZ2FjeUJvb3QsDQo+ ID4gPj4+Pj4+PiAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gPj4+Pj4+PiAgICAgICAgICAgICAg ICZMZWdhY3lCb290RXZlbnQNCj4gPiA+Pj4+Pj4+IC0tDQo+ID4gPj4+Pj4+PiAyLjcuNC53aW5k b3dzLjENCj4gPiA+Pj4+DQo+ID4gPj4+DQo+ID4gPj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gPj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0 DQo+ID4gPj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPj4+IGh0dHBzOi8vbGlzdHMu MDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPiA+ID4+Pg0KPiA+ID4NCg0K