From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.43; helo=mga05.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (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 6A1ED2034A87A for ; Thu, 26 Oct 2017 19:34:02 -0700 (PDT) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP; 26 Oct 2017 19:37:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,303,1505804400"; d="scan'208";a="142723300" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga004.jf.intel.com with ESMTP; 26 Oct 2017 19:37:48 -0700 Received: from fmsmsx126.amr.corp.intel.com (10.18.125.43) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Oct 2017 19:37:47 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX126.amr.corp.intel.com (10.18.125.43) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Oct 2017 19:37:46 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.152]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.218]) with mapi id 14.03.0319.002; Fri, 27 Oct 2017 10:37:43 +0800 From: "Ni, Ruiyu" To: "Yao, Jiewen" , 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: AQHTThcR268ltxyJXkK0If2tFXpNyKL1EKgAgAALCoCAAAJGgIAABCWAgAAJEoCAAAExgIAAEFuAgAAE5ICAAFK+AIAACCeAgAAZMwCAAJ6qgIAAiy/A//+JIACAAJP+8A== Date: Fri, 27 Oct 2017 02:37:43 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BAA8E91@SHSMSX104.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> <74D8A39837DF1E4DA445A8C0B3885C503AA06A52@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AA06A52@shsmsx102.ccr.corp.intel.com> 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 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 02:34:02 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhbHNvIGRvdWJ0IHN1Y2ggZGV2aWNlIGRyaXZlciBleGlzdHMuDQoNClRoYW5rcy9SYXkNCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZYW8sIEppZXdlbg0KPiBTZW50 OiBGcmlkYXksIE9jdG9iZXIgMjcsIDIwMTcgOTo0NyBBTQ0KPiBUbzogTmksIFJ1aXl1IDxydWl5 dS5uaUBpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgWmVuZywN Cj4gU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ IENjOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IEtpbm5leSwg TWljaGFlbCBEDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6 IFtlZGsyXSBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMgRXZlbnQg VFBMIHRvDQo+IENBTExCQUNLLg0KPiANCj4gSSB0aGluayB0aGUgZXJyb3IgbWlnaHQgYmUgUENJ IGRldmljZSBzcGVjaWZpYy4NCj4gDQo+IEJUVzogV2UgYWxyZWFkeSBoYXZlIGJ1Z3ppbGxhciBv biB0aGF0DQo+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 NzM5DQo+IA0KPiBJdCBoYXMgYmVlbiB2YWxpZGF0ZWQgYnkgTWljcm9zb2Z0LiBXZSBjYW4gdmFs aWRhdGUgbW9yZSBkZXZpY2UgY2FyZHMgdG8gc2VlDQo+IGlmIHRoZXJlIGlzIGFueSBpc3N1ZS4N Cj4gDQo+IFRoYW5rIHlvdQ0KPiBZYW8gSmlld2VuDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gRnJvbTogTmksIFJ1aXl1DQo+ID4gU2VudDogRnJpZGF5LCBPY3RvYmVy IDI3LCAyMDE3IDg6NTQgQU0NCj4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwu Y29tPjsgTGFzemxvIEVyc2VrDQo+ID4gPGxlcnNla0ByZWRoYXQuY29tPjsgWmVuZywgU3RhciA8 c3Rhci56ZW5nQGludGVsLmNvbT47DQo+ID4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiBD YzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBLaW5uZXksIE1p Y2hhZWwgRA0KPiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBS RTogW2VkazJdIFtQQVRDSF0gSW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVu dA0KPiA+IFRQTCB0byBDQUxMQkFDSy4NCj4gPg0KPiA+IEppZXdlbiwNCj4gPiBJZiB0aGUgQk1F IGJpdCBpcyBjbGVhcmVkIGluIENvbW1hbmQgcmVnaXN0ZXIsIGJ1dCBhIGRldmljZSBkcml2ZXIN Cj4gPiB1c2VzIERNQSB0byB0cmFuc2ZlciBkYXRhLCB3aGF0IGtpbmQgb2YgZXJyb3Igd2lsbCBi ZSBzZWVuIGJ5IFNXPw0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG cm9tOiBZYW8sIEppZXdlbg0KPiA+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciAyNywgMjAxNyA4OjM0 IEFNDQo+ID4gVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBaZW5nLCBTdGFy DQo+ID4gPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ IENjOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4g PGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+IDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSF0g SW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudA0KPiA+IFRQTCB0byBDQUxM QkFDSy4NCj4gPg0KPiA+IEdvb2QgSW5mby4gSSB0aGluayBhIGNvcnJlY3QgaW1wbGVtZW50YXRp b24gc2hvdWxkIG5vdCB1c2UgYnVzeSB3YWl0Lg0KPiA+DQo+ID4gSXQgc2hvdWxkIGFkZCBlcnJv ciBoYW5kbGluZyB0byBjaGVjayBpZiB0aGVyZSBpcyBoYXJkd2FyZSBlcnJvciBkdXJpbmcgdGhh dC4NCj4gPg0KPiA+ID4gLSBidXN5IHdhaXQgKHBvbGwpIHVuaWwgdGhlIHRyYW5zZmVyIGlzIGNv bXBsZXRlLA0KPiA+DQo+ID4gVGhlIHByb2Nlc3Mgb2YgYnVzeSB3YWl0IHNob3VsZCBiZSBzb21l dGhpbmcgbGlrZSBiZWxvdzoNCj4gPiAgIHdoaWxlKFRSVUUpIHsNCj4gPiAgICAgaWYgKGVycm9y KSB7DQo+ID4gICAgICAgYnJlYWs7DQo+ID4gICAgIH0NCj4gPiAgICAgR2V0RGF0YQ0KPiA+ICAg ICBpZiAoY29tcGxldGUpIHsNCj4gPiAgICAgICBCcmVhaw0KPiA+ICAgICB9DQo+ID4gICB9DQo+ ID4NCj4gPiBCTUUgY2xlYXIgd2lsbCB0cmlnZ2VyIGVycm9yIGJyZWFrLg0KPiA+DQo+ID4gVGhh bmsgeW91DQo+ID4gWWFvIEppZXdlbg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4gRnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21d DQo+ID4gPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyAxMTowNyBQTQ0KPiA+ID4g VG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFplbmcsIFN0YXINCj4gPiA+ IDxzdGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+IENj OiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4gPiA8 YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPiA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRD SF0gSW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudA0KPiA+ID4gVFBMIHRv IENBTExCQUNLLg0KPiA+ID4NCj4gPiA+IE9uIDEwLzI2LzE3IDE1OjM2LCBZYW8sIEppZXdlbiB3 cm90ZToNCj4gPiA+ID4gSGkgTGFzemxvDQo+ID4gPiA+IEkgaGF2ZSBkaXNjdXNzZWQgdGhpcyB3 aXRoIE1pa2UgS2lubmV5IG9mZmxpbmUgYW5kIHNvbWUgTWljcm9zb2Z0DQo+IGVuZ2luZWVycy4N Cj4gPiA+ID4NCj4gPiA+ID4gV2UgYmVsaWV2ZSB0aGUgaW1wYWN0IG9mIEJNRSBkaXNhYmxlIGlz IGRpZmZlcmVudCB3aXRoIHRoZSBpbXBhY3Qgb2YNCj4gU0VWLg0KPiA+ID4gPg0KPiA+ID4gPiBG b3IgU0VWLCBpZiBhIERNQSBidWZmZXIgaXMgaW4gdHJhbnNpdGlvbiB3aGVuIFNFViBiaXQgY2hh bmdlLCB0aGUNCj4gPiA+ID4gRE1BIHdpbGwgc3RpbGwNCj4gPiA+IGJlIGFjdGl2ZSwgYnV0IHRo ZSBjb250ZW50IGlzIGRpZmZlcmVudC4gSXQgd2lsbCBicmluZyB3cm9uZyBkYXRhDQo+ID4gPiBm cm9tIGRldmljZSBwZXJzcGVjdGl2ZS4NCj4gPiA+ID4NCj4gPiA+ID4gRm9yIEJNRSwgaWYgYSBE TUEgYnVmZmVyIGlzIGluIHRyYW5zaXRpb24gd2hlbiBCTUUgaXMgY2xlYXIsIHRoZQ0KPiA+ID4g PiBETUEgd2lsbCBiZQ0KPiA+ID4gc3RvcHBlZCBpbW1lZGlhdGVseS4gVGhlIGRldmljZSBvbmx5 IHNlZXMgdGhlIERNQSB0cmFuc2l0aW9uIGlzIGFib3J0Lg0KPiA+ID4gQnV0IHRoZXJlIGlzIG5v IHdyb25nIGRhdGEgdHJhbnNtaXR0ZWQuDQo+ID4gPg0KPiA+ID4gSSBhZ3JlZSB3aXRoIHRoZSBh Ym92ZSBhbmFseXNpcy4NCj4gPiA+DQo+ID4gPiA+IEJlY2F1c2Ugb2YgYWJvdmUgcmVhc29uLCB3 ZSB0aGluayBpdCBpcyBPSyB0byBsZXQgUENJIGJ1cyBkcml2ZXINCj4gPiA+ID4gdG8gY2xlYXIg Qk1FIGJpdA0KPiA+ID4gZXZlbiB0aGVyZSBpcyBhY3RpdmUgRE1BIHRyYW5zYWN0aW9uLg0KPiA+ ID4NCj4gPiA+IFRoZSByZWFzb24gd2h5IEkgYmVsaWV2ZSB0aGF0IHRoZSBQY2lCdXNEeGUgZHJp dmVyIHNob3VsZCBub3QgY2xlYXINCj4gPiA+IHRoZSBCTUUgYml0IGlzIGRpZmZlcmVudC4gSXQg aXMgdW5yZWxhdGVkIHRvIFNFVi4NCj4gPiA+DQo+ID4gPiBJbWFnaW5lIGEgUENJIGRldmljZSB0 aGF0IHJlcXVpcmVzIGEgc3BlY2lhbCBETUEgdHJhbnNmZXIgYmVmb3JlIGl0DQo+ID4gPiBjYW4g YmUgcXVpZXNjZWQgYXQgRXhpdEJvb3RTZXJ2aWNlcygpLiBUaGUgdmVuZG9yIG9mIHRoaXMgZGV2 aWNlDQo+ID4gPiB3aWxsIGltcGxlbWVudCBhbiBFQlMgbm90aWZpY2F0aW9uIGZ1bmN0aW9uIGxp a2UgdGhpczoNCj4gPiA+DQo+ID4gPiAtIGNoZWNrIHRoZSBwcml2YXRlIGRhdGEgc3RydWN0dXJl IHRvIHNlZSBpZiB0aGUgZGV2aWNlIG5lZWRzIHRoZQ0KPiA+ID4gc3BlY2lhbCBETUEgdHJhbnNm ZXINCj4gPiA+DQo+ID4gPiAtIGluaXRpYXRlIHRoZSBzcGVjaWFsIERNQSB0cmFuc2ZlciAtLSB3 cml0ZSBzb21lIGRhdGEgdG8gYSBwcmVhbGxvY2F0ZWQNCj4gPiA+ICAgYW5kIHByZS1wcm9ncmFt bWVkIG1lbW9yeSBidWZmZXIsIGFuZCB0aGVuIHB1c2ggdGhlIGRvb3JiZWxsIGluDQo+IE1NSU8N Cj4gPiA+ICAgb3IgY29uZmlnIHNwYWNlLA0KPiA+ID4NCj4gPiA+IC0gYnVzeSB3YWl0IChwb2xs KSB1bmlsIHRoZSB0cmFuc2ZlciBpcyBjb21wbGV0ZSwNCj4gPiA+DQo+ID4gPiAtIGNsZWFyIEJN RSAoYXMgcmVxdWlyZWQgYnkgdGhlIERXRyAvIHNwZWMpDQo+ID4gPg0KPiA+ID4gLSBkb25lDQo+ ID4gPg0KPiA+ID4gTm93LCBpZiBQY2lCdXNEeGUgaW50cm9kdWNlcyBpdHMgb3duIEVCUyBub3Rp ZmljYXRpb24gZnVuY3Rpb24sDQo+ID4gPiB3aGljaCBpdGVyYXRlcyBvdmVyIGFsbCB0aGUgUGNp SW8gaW5zdGFuY2VzLCBhbmQgY2xlYXJzIHRoZSBCTUUgYml0DQo+ID4gPiBpbiBlYWNoIGNvbW1h bmQgcmVnaXN0ZXIsIHRoZW4gdGhpcyBub3RpZmljYXRpb24gZnVuY3Rpb24gbWF5LCBvcg0KPiA+ ID4gbWF5IG5vdCwgYmUgcXVldWVkIGJlZm9yZSB0aGUgb3RoZXIgb25lIHRoYXQgSSBkZXNjcmli ZWQgYWJvdmUuDQo+ID4gPg0KPiA+ID4gSWYgdGhlIFBjaUJ1c0R4ZSBmdW5jdGlvbiBpcyBxdWV1 ZWQgImFmdGVyIiwgdGhlbiBldmVyeXRoaW5nIGlzIGZpbmUuDQo+ID4gPiBJZiBpdCBpcyBxdWV1 ZWQgImJlZm9yZSIsIHRoZW4gdGhlIGRyaXZlcidzIG93biBub3RpZmljYXRpb24NCj4gPiA+IGZ1 bmN0aW9uIHdpbGwgYnJlYWsuIChJdCBtYXkgZXZlbiBoYW5nLCBpZiB0aGUgYnVzeSB3YWl0IG5l dmVyDQo+ID4gPiBjb21wbGV0ZXMuKQ0KPiA+ID4NCj4gPiA+DQo+ID4gPiBVRUZJIGRyaXZlcnMg Zm9yIFBDSSBkZXZpY2VzIGFyZSBjdXJyZW50bHkgbm90IGZvcmJpZGRlbiBmcm9tIGRvaW5nDQo+ ID4gPiBhIHF1aWNrIENvbW1vbkJ1ZmZlciBETUEgdHJhbnNmZXIgaW4gdGhlaXIgRUJTIGNhbGxi YWNrcyAoYXMgbG9uZyBhcw0KPiA+ID4gdGhleSBkb24ndCBhbGxvY2F0ZSBvciByZWxlYXNlIG1l bW9yeSAtLSBidXQgdGhlIG1lbW9yeSBidWZmZXIgYW5kDQo+ID4gPiB0aGUgY29ycmVzcG9uZGlu ZyBDb21tb25CdWZmZXIgbWFwcGluZyBhcmUgbm90IGhhcmQgdG8gc2V0IHVwIGluDQo+ID4gPiBh ZHZhbmNlLCBmb3IgZXhhbXBsZSBpbiBEcml2ZXJCaW5kaW5nU3RhcnQoKSkuDQo+ID4gPg0KPiA+ ID4gVGhpcyBtZWFucyB0aGF0IGFueSBhdXRvbWF0ZWQgSU9NTVUgZGVhY3RpdmF0aW9uLCBhbmQv b3IgQk1FDQo+ID4gPiBjbGVhcmluZyBpbiBQY2lCdXNEeGUsIHNob3VsZCBvY2N1ciBvbmx5IGFm dGVyIHRoZSBpbmRpdmlkdWFsIGRyaXZlcg0KPiA+ID4gY2FsbGJhY2tzIGhhdmUgcmV0dXJuZWQu IElmIFBjaUJ1c0R4ZSBjYW4gZ3VhcmFudGVlIHRoaXMsIHRoZW4gSQ0KPiA+ID4gaGF2ZSBubyBv YmplY3Rpb25zIDopDQo+ID4gPg0KPiA+ID4gVGhhbmtzIQ0KPiA+ID4gTGFzemxvDQo+ID4gPg0K PiA+ID4gPg0KPiA+ID4gPiBUaGFuayB5b3UNCj4gPiA+ID4gWWFvIEppZXdlbg0KPiA+ID4gPg0K PiA+ID4gPg0KPiA+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4+IEZy b206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiA+ID4gPj4gU2Vu dDogVGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgOTowNyBQTQ0KPiA+ID4gPj4gVG86IFplbmcs IFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBZYW8sIEppZXdlbg0KPiA+ID4gPj4gPGppZXdl bi55YW9AaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4+IENjOiBO aSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4gPiA8YXJk LmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gPiA+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BB VENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTDQo+ID4gPiA+PiBFdmVudCBU UEwgdG8gQ0FMTEJBQ0suDQo+ID4gPiA+Pg0KPiA+ID4gPj4gT24gMTAvMjYvMTcgMTA6MTAsIFpl bmcsIFN0YXIgd3JvdGU6DQo+ID4gPiA+Pj4gSXMgaXQgc2VjdXJpdHkgcmVhc29uIHdoZW4gSU9N TVUgZGlzYWJsZWQgYW5kIEJ1cyBNYXN0ZXIgbm90DQo+IGRpc2FibGVkPw0KPiA+ID4gPj4NCj4g PiA+ID4+IE5vLCBJIGRvbid0IHRoaW5rIHRoZXJlIGlzIGEgc2VjdXJpdHkgaXNzdWUgaGVyZS4N Cj4gPiA+ID4+DQo+ID4gPiA+PiBCdXQsIG15IHByZXZpb3VzIGFzc2Vzc21lbnQgYWJvdXQgVlRk RHhlIHdhcyBpbmRlZWQgd3JvbmcgLS0NCj4gPiA+ID4+IHRoZXJlIG1heSBiZSBhICpjb3JyZWN0 bmVzcyogaXNzdWUuDQo+ID4gPiA+Pg0KPiA+ID4gPj4gTmFtZWx5LCBpZiB0aGUgSU9NTVUgaXMg ZGUtYWN0aXZhdGVkIGJ5IFZUZER4ZSBiZWZvcmUgUENJIGRyaXZlcnMNCj4gPiA+ID4+IGFib3J0 IHBlbmRpbmcgRE1BLCB0aGVuIGxpdmUgc3lzdGVtIFJBTSByZWZlcmVuY2VzIGluIHRoZSBkZXZp Y2VzDQo+ID4gPiA+PiBtYXkgYmVjb21lIGJvZ3VzLiBUaGlzIGlzIG5vdCBhIHNlY3VyaXR5IGlz c3VlIChiZWNhdXNlDQo+ID4gPiA+PiBkZS1hY3RpdmF0aW5nIHRoZSBJT01NVSB3aWxsIGdyYW50 IHRoZSBkZXZpY2VzIGFjY2VzcyB0byBhbGwgb2YNCj4gPiA+ID4+IHRoZSBzeXN0ZW0gUkFNIGFu eXdheSksIGluc3RlYWQgaXQncyBhIGNvcnJlY3RuZXNzIHByb2JsZW06IERNQQ0KPiA+ID4gPj4g cmVhZC93cml0ZSBtYXkgbm93IGJlIGRpcmVjdGVkIHRvIHRoZSB3cm9uZyBzcG90cyBpbiBSQU0g KGlmIHRoZQ0KPiA+ID4gPj4gSU9NTVUNCj4gPiBtYXBwaW5ncyB3ZXJlIG5vdCAxOjEgcHJldmlv dXNseSkuDQo+ID4gPiA+Pg0KPiA+ID4gPj4gU28sIEkgYWdyZWUgdGhhdCBQQ0kgZHJpdmVycyBz aG91bGQgZ2V0IGEgY2hhbmNlIHRvIGFib3J0IHBlbmRpbmcNCj4gPiA+ID4+IERNQSBmaXJzdCwg YmVmb3JlIHRoZSBJT01NVSBkcml2ZXIgcmVtb3ZlcyB0aGUgbWFwcGluZ3MuDQo+ID4gPiA+Pg0K PiA+ID4gPj4+IENvdWxkIG91ciBjb2RlIGhhdmUgYSBjZW50cmFsIHBsYWNlIHRvIGRpc2FibGUg QnVzIE1hc3Rlcj8gRm9yDQo+ID4gPiA+Pj4gZXhhbXBsZQ0KPiA+ID4gPj4gUGNpQnVzRHhlPw0K PiA+ID4gPj4NCj4gPiA+ID4+IE5vLCBJIGRvbid0IHRoaW5rIFBjaUJ1c0R4ZSBpcyBhIGdvb2Qg aWRlYS4gSGlnaGVyLWxldmVsIFBDSQ0KPiA+ID4gPj4gZHJpdmVycyBtaWdodCB3YW50IHRvIGRv IG9uZS1zaG90IGJ1cyBtYXN0ZXIgRE1BIG9wZXJhdGlvbnMgaW4NCj4gPiA+ID4+IHRoZWlyIG93 biBFQlMgY2FsbGJhY2tzLiBJZiBQY2lCdXNEeGUncyBjYWxsYmFjayByYW4gZmlyc3QsIHRoZW4N Cj4gPiA+ID4+IHRoZXNlIGhpZ2hlci1sZXZlbCBkcml2ZXJzIHdvdWxkIGJyZWFrLg0KPiA+ID4g Pj4NCj4gPiA+ID4+IEZvciB0aGUgU0VWIElPTU1VIGRyaXZlciwgd2Ugc29sdmVkIHRoZSBwcm9i bGVtIGluIGNvbW1pdA0KPiA+ID4gPj4gN2FlZTM5MWZhM2QwDQo+ID4gPiA+PiAoIk92bWZQa2cv SW9NbXVEeGU6IHVubWFwIGFsbCBJT01NVSBtYXBwaW5ncyBhdA0KPiA+ID4gPj4gRXhpdEJvb3RT ZXJ2aWNlcygpIiwgMjAxNy0wOS0wNykuIEkgdGhpbmsgdGhlIHNhbWUgY291bGQgYmUNCj4gPiA+ ID4+IGFwcGxpZWQgdG8NCj4gPiBWVGREeGUuDQo+ID4gPiA+Pg0KPiA+ID4gPj4NCj4gPiA+ID4+ IEFub3RoZXIgaWRlYSAoc3VnZ2VzdGVkIC8gc3VwcG9ydGVkIGJ5IEFyZCkgd2FzIHRvIG1vZGlm eSB0aGUNCj4gPiA+ID4+IGVkazINCj4gPiA+ID4+IEV4aXRCb290U2VydmljZXMoKSBpbXBsZW1l bnRhdGlvbi4gSW4gQ29yZUV4aXRCb290U2VydmljZXMoKQ0KPiA+ID4gPj4gW01kZU1vZHVsZVBr Zy9Db3JlL0R4ZS9EeGVNYWluL0R4ZU1haW4uY10sIHdlIGNvdWxkIHNpZ25hbCBhDQo+ID4gPiA+ PiBzcGVjaWFsDQo+ID4gPiA+PiBlZGsyIElPTU1VIGV2ZW50IGdyb3VwLCByaWdodCBhZnRlciBz aWduYWxpbmcNCj4gPiA+ID4+ICJnRWZpRXZlbnRFeGl0Qm9vdFNlcnZpY2VzR3VpZCI6DQo+ID4g PiA+Pg0KPiA+ID4gPj4gICAvLw0KPiA+ID4gPj4gICAvLyBOb3RpZnkgb3RoZXIgZHJpdmVycyB0 aGF0IHdlIGFyZSBleGl0aW5nIGJvb3Qgc2VydmljZXMuDQo+ID4gPiA+PiAgIC8vDQo+ID4gPiA+ PiAgIENvcmVOb3RpZnlTaWduYWxMaXN0ICgmZ0VmaUV2ZW50RXhpdEJvb3RTZXJ2aWNlc0d1aWQp Ow0KPiA+ID4gPj4NCj4gPiA+ID4+ICAgW0hFUkVdDQo+ID4gPiA+Pg0KPiA+ID4gPj4gICAvLw0K PiA+ID4gPj4gICAvLyBSZXBvcnQgdGhhdCBFeGl0Qm9vdFNlcnZpY2VzKCkgaGFzIGJlZW4gY2Fs bGVkDQo+ID4gPiA+PiAgIC8vDQo+ID4gPiA+PiAgIFJFUE9SVF9TVEFUVVNfQ09ERSAoDQo+ID4g PiA+PiAgICAgRUZJX1BST0dSRVNTX0NPREUsDQo+ID4gPiA+PiAgICAgKEVGSV9TT0ZUV0FSRV9F RklfQk9PVF9TRVJWSUNFIHwNCj4gPiA+ID4+IEVGSV9TV19CU19QQ19FWElUX0JPT1RfU0VSVklD RVMpDQo+ID4gPiA+PiAgICAgKTsNCj4gPiA+ID4+DQo+ID4gPiA+PiBUaGlzIHdvdWxkIGVuc3Vy ZSB0aGF0IHRoZSBJT01NVSBjYWxsYmFjayByYW4gbGFzdC4NCj4gPiA+ID4+DQo+ID4gPiA+Pg0K PiA+ID4gPj4gWWV0IGFub3RoZXIgaWRlYSAoZnJvbSBKaWV3ZW4gSSB0aGluaz8pIHdhcyB0byBj YXRjaCB0aGUNCj4gPiA+ID4+IEVGSV9TV19CU19QQ19FWElUX0JPT1RfU0VSVklDRVMgc3RhdHVz IGNvZGUgaW4gdGhlIElPTU1VDQo+IGRyaXZlci4NCj4gPiA+ID4+IEkgZGlkbid0IGxpa2UgdGhl IGlkZWEgYmVjYXVzZSAoSU1PKSBpdCBwdXQgdG9vIG1hbnkgcmVxdWlyZW1lbnRzDQo+ID4gPiA+ PiBvbiBwbGF0Zm9ybXMuDQo+ID4gPiA+Pg0KPiA+ID4gPj4gVGhhbmtzLA0KPiA+ID4gPj4gTGFz emxvDQo+ID4gPiA+Pg0KPiA+ID4gPj4NCj4gPiA+ID4+Pg0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4g VGhhbmtzLA0KPiA+ID4gPj4+IFN0YXINCj4gPiA+ID4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4gPj4+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQu Y29tXQ0KPiA+ID4gPj4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDM6NTMgUE0N Cj4gPiA+ID4+PiBUbzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IFlhbywgSmll d2VuDQo+ID4gPiA+Pj4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsNCj4gPiA+ID4+IGVkazItZGV2 ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiA+Pj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwu Y29tPg0KPiA+ID4gPj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGRE eGU6IENoYW5nZSBFQlMgRXZlbnQNCj4gPiA+ID4+PiBUUEwgdG8NCj4gPiA+ID4+IENBTExCQUNL Lg0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4gT24gMTAvMjYvMTcgMDg6NTQsIFplbmcsIFN0YXIgd3Jv dGU6DQo+ID4gPiA+Pj4+IE9rLCBwbGVhc2UgYWRkIG1vcmUgZGVzY3JpcHRpb24gaW50byB0aGUg Y29tbWl0IGxvZywgZm9yDQo+ID4gPiA+Pj4+IGV4YW1wbGUsICJQQ0kNCj4gPiA+IGRldmljZQ0K PiA+ID4gPj4gc2hvdWxkIGRpc2FibGUgQk1FIGF0IE5PVElGWSIsIGV0Yy4NCj4gPiA+ID4+Pg0K PiA+ID4gPj4+IExhc3QgdGltZSB3ZSBkaXNjdXNzZWQgdGhpcyBxdWVzdGlvbiwgdGhlIGNvbnNl bnN1cyB3YXMgdGhhdA0KPiA+ID4gPj4+IGVkazIgc2hvdWxkDQo+ID4gPiBub3QNCj4gPiA+ID4+ IHByZXNlbnQgYW55IHJlcXVpcmVtZW50IGZvciBQQ0kgZHJpdmVycyB0aGF0IGlzIG5vdCByZXF1 aXJlZCBieQ0KPiA+ID4gPj4gdGhlIFVFRkkNCj4gPiBzcGVjLg0KPiA+ID4gPj4gVUVGSSBkcml2 ZXJzIGZvciBQQ0kgZGV2aWNlcyBjb21lIGZyb20gdGhpcmQgcGFydGllcyBhcyB3ZWxsLCBhbmQN Cj4gPiA+ID4+IHRob3NlIGRyaXZlcnMNCj4gPiA+IHdpbGwNCj4gPiA+ID4+IG9ubHkgY2FyZSBh Ym91dCB0aGUgVUVGSSBzcGVjIChhcyB0aGV5IHNob3VsZCksIG5vdCBhYm91dCBlZGsyLg0KPiA+ ID4gPj4+DQo+ID4gPiA+Pj4gSW4gZmFjdCwgSSB0aGluayB0aGlzIGFkZGl0aW9uYWwgcmVxdWly ZW1lbnQgaXMgbm90IG5lY2Vzc2FyeToNCj4gPiA+ID4+Pg0KPiA+ID4gPj4+ICogSW4gdGhlIGVh cmxpZXIgZGlzY3Vzc2lvbiAoZm9yIHRoZSBTRVYgSW9NbXVEeGUgaW4gT1ZNRiksIGl0DQo+ID4g PiA+Pj4gd2FzIHJlYWxseQ0KPiA+ID4gPj4gbmVjZXNzYXJ5IHRvIGRlbGF5IHRoZSBJb01tdUR4 ZSBFeGl0Qm9vdFNlcnZpY2VzKCkgY2FsbGJhY2sgYWZ0ZXINCj4gPiA+ID4+IGFsbCB0aGUgUENJ IGRyaXZlciBjYWxsYmFja3MuIFRoZSByZWFzb24gZm9yIHRoaXMgd2FzIHRoYXQgdGhlDQo+ID4g PiA+PiBJb01tdUR4ZQ0KPiA+ID4gPj4+IEV4aXRCb290U2VydmljZXMoKSBjYWxsYmFjayB3YXMg Z29pbmcgdG8gKmxvY2sgZG93biogYWxsIFJBTQ0KPiA+ID4gPj4+IGZyb20gZGV2aWNlcywNCj4g PiA+IGFuZA0KPiA+ID4gPj4gcGVuZGluZyBETUEgaGFkIHRvIGJlIGFib3J0ZWQgYmVmb3JlIHRo aXMgbG9jay1kb3duLg0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4gKiBJbiBjb21wYXJpc29uLCB0aGUg VlRkRHhlIGNhbGxiYWNrIGF0IEVCUyBkb2VzIHRoZSBvcHBvc2l0ZToNCj4gPiA+ID4+PiBpdCAi ZGlzYWJsZVtzXQ0KPiA+ID4gPj4gdGhlIHByb3RlY3Rpb24gYW5kIGFsbG93W3NdIGFsbCBETUEg YWNjZXNzIiwgaW4gSmlld2VuJ3Mgd29yZHMNCj4gPiA+ID4+IGZyb20NCj4gPiA+IHVwLXRocmVh ZC4NCj4gPiA+ID4+IFNvLCBJTU8sIG5laXRoZXIgdGhlIFBDSSBkcml2ZXIgcmVxdWlyZW1lbnQs IG5vciB0aGlzIHBhdGNoLCBhcmUNCj4gPiA+ID4+IG5lY2Vzc2FyeSAtLSB0aGVyZSBpcyBuZXZl ciBhbiBJT01NVSBzdGF0ZSB0aGF0IGNvbmZsaWN0cyB3aXRoIGENCj4gPiA+ID4+IGNvcnJlY3Rs eSB3cml0dGVuIFBDSQ0KPiA+ID4gZHJpdmVyJ3MNCj4gPiA+ID4+IHBlbmRpbmcgRE1BIG9wZXJh dGlvbi4NCj4gPiA+ID4+Pg0KPiA+ID4gPj4+IFRoYW5rcw0KPiA+ID4gPj4+IExhc3psbw0KPiA+ ID4gPj4+DQo+ID4gPiA+Pj4+DQo+ID4gPiA+Pj4+IFdpdGggdGhhdCwgUmV2aWV3ZWQtYnk6IFN0 YXIgWmVuZyA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pj4NCj4g PiA+ID4+Pj4gVGhhbmtzLA0KPiA+ID4gPj4+PiBTdGFyDQo+ID4gPiA+Pj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+Pj4+IEZyb206IFlhbywgSmlld2VuDQo+ID4gPiA+Pj4+ IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDI6NTEgUE0NCj4gPiA+ID4+Pj4gVG86 IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9y Zw0KPiA+ID4gPj4+PiBDYzogTGFzemxvIEVyc2VrIChsZXJzZWtAcmVkaGF0LmNvbSkgPGxlcnNl a0ByZWRoYXQuY29tPjsgTmksDQo+ID4gPiA+Pj4+IFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+ DQo+ID4gPiA+Pj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6 IENoYW5nZSBFQlMgRXZlbnQNCj4gPiA+ID4+Pj4gVFBMIHRvDQo+ID4gPiA+PiBDQUxMQkFDSy4N Cj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pj4gWWVzLCB0aGlzIFBDSSBwYXRjaCB3aWxsIGJlIHN1Ym1p dHRlZCBzb29uLiA6KQ0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+PiBUaGFuayB5b3UNCj4gPiA+ID4+ Pj4gWWFvIEppZXdlbg0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+ID4+Pj4+IEZyb206IFplbmcsIFN0YXINCj4gPiA+ID4+Pj4+IFNlbnQ6 IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDI6MTggUE0NCj4gPiA+ID4+Pj4+IFRvOiBZYW8s IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+Ow0KPiA+ID4gPj4+Pj4gZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmcNCj4gPiA+ID4+Pj4+IENjOiBMYXN6bG8gRXJzZWsgKGxlcnNla0ByZWRoYXQu Y29tKSA8bGVyc2VrQHJlZGhhdC5jb20+Ow0KPiA+ID4gPj4+Pj4gWmVuZywgU3RhciA8c3Rhci56 ZW5nQGludGVsLmNvbT4NCj4gPiA+ID4+Pj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIEludGVsU2ls aWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMgRXZlbnQNCj4gPiA+ID4+Pj4+IFRQTCB0bw0KPiA+ ID4gPj4gQ0FMTEJBQ0suDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gU28gdGhlcmUgd2lsbCBi ZSBhIGd1aWRhbmNlIGZvciB0aGlzICIgUENJIGRldmljZSBkaXNhYmxlIEJNRQ0KPiA+ID4gPj4+ Pj4gYXQgTk9USUZZICIgdG8gYmUgZG9jdW1lbnRlZD8NCj4gPiA+ID4+Pj4+DQo+ID4gPiA+Pj4+ PiBUaGFua3MsDQo+ID4gPiA+Pj4+PiBTdGFyDQo+ID4gPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+ID4gPj4+Pj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPiA+ID4+Pj4+IFNl bnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDI6MDMgUE0NCj4gPiA+ID4+Pj4+IFRvOiBa ZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4gPiA+ID4+Pj4+IENjOiBMYXN6bG8gRXJzZWsgKGxlcnNla0ByZWRoYXQuY29tKSA8bGVyc2Vr QHJlZGhhdC5jb20+DQo+ID4gPiA+Pj4+PiBTdWJqZWN0OiBSRTogW1BBVENIXSBJbnRlbFNpbGlj b25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50DQo+ID4gPiA+Pj4+PiBUUEwgdG8NCj4gPiA+ ID4+IENBTExCQUNLLg0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+IFJpZ2h0LiBJbiB0aGUgZnV0 dXJlLCB3ZSB3aWxsIGxldCBQQ0kgZGV2aWNlIGRpc2FibGUgQk1FIGF0IE5PVElGWS4NCj4gPiA+ ID4+Pj4+DQo+ID4gPiA+Pj4+PiBTbyB3ZSBsZXQgSU9NTVUgdXNlIENBTExCQUNLLCB0byBtYWtl IHN1cmUgQk1FIGlzIGRpc2FibGVkDQo+ID4gPiA+Pj4+PiBiZWZvcmUgSU9NTVUgaXMgZGlzYWJs ZWQuDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gVGhhbmsgeW91DQo+ID4gPiA+Pj4+PiBZYW8g Smlld2VuDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gPiA+Pj4+Pj4gRnJvbTogWmVuZywgU3Rhcg0KPiA+ID4gPj4+Pj4+IFNlbnQ6IFRo dXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDE6NTUgUE0NCj4gPiA+ID4+Pj4+PiBUbzogWWFvLCBK aWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsNCj4gPiA+ID4+Pj4+PiBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZw0KPiA+ID4gPj4+Pj4+IENjOiBMYXN6bG8gRXJzZWsgKGxlcnNla0ByZWRoYXQu Y29tKSA8bGVyc2VrQHJlZGhhdC5jb20+Ow0KPiA+ID4gPj4+Pj4+IFplbmcsIFN0YXIgPHN0YXIu emVuZ0BpbnRlbC5jb20+DQo+ID4gPiA+Pj4+Pj4gU3ViamVjdDogUkU6IFtQQVRDSF0gSW50ZWxT aWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudA0KPiA+ID4gPj4+Pj4+IFRQTCB0bw0K PiA+ID4gPj4+Pj4gQ0FMTEJBQ0suDQo+ID4gPiA+Pj4+Pj4NCj4gPiA+ID4+Pj4+PiBJIGFtIGNv bmZ1c2VkLg0KPiA+ID4gPj4+Pj4+DQo+ID4gPiA+Pj4+Pj4gSXMgdGhpcyBwYXRjaCB0byBtYWtl IHRoZSBkZXZpY2UgZHJpdmVyJ3MgRUJTIGV2ZW50DQo+ID4gPiA+Pj4+Pj4gbm90aWZpY2F0aW9u IHRvIGJlIHJ1biBiZWZvcmUgSW50ZWxWVGREeGUncyBFQlMgZXZlbnQgbm90aWZpY2F0aW9uPw0K PiA+ID4gPj4+Pj4+DQo+ID4gPiA+Pj4+Pj4gSWYgeWVzLCB0aGlzIHBhdGNoIHNlZW1pbmdseSBj YW4gb25seSBtYWtlIHN1cmUgdGhlIGJlaGF2aW9yDQo+ID4gPiA+Pj4+Pj4gd2hlbiB0aGUgZGV2 aWNlIGRyaXZlcidzIEVCUyBldmVudCBub3RpZmljYXRpb24gaXMgYXQgTk9USUZZLA0KPiA+ID4g Pj4+Pj4+IGJ1dCBub3QNCj4gPiBDQUxMQkFDSy4NCj4gPiA+ID4+Pj4+Pg0KPiA+ID4gPj4+Pj4+ DQo+ID4gPiA+Pj4+Pj4gVGhhbmtzLA0KPiA+ID4gPj4+Pj4+IFN0YXINCj4gPiA+ID4+Pj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPj4+Pj4+IEZyb206IFlhbywgSmlld2Vu DQo+ID4gPiA+Pj4+Pj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMToxNiBQTQ0K PiA+ID4gPj4+Pj4+IFRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4+Pj4+PiBDYzogTGFzemxvIEVyc2VrIChsZXJzZWtA cmVkaGF0LmNvbSkgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+ID4gPj4+Pj4+IFN1YmplY3Q6IFJF OiBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMgRXZlbnQNCj4gPiA+ ID4+Pj4+PiBUUEwgdG8NCj4gPiA+ID4+Pj4+IENBTExCQUNLLg0KPiA+ID4gPj4+Pj4+DQo+ID4g PiA+Pj4+Pj4gVGhhdCBpcyBmaW5lLg0KPiA+ID4gPj4+Pj4+DQo+ID4gPiA+Pj4+Pj4gSGVyZSwg ZGlzYWJsaW5nIElPTU1VIG1lYW5zIHRvIGRpc2FibGUgdGhlIHByb3RlY3Rpb24gYW5kDQo+ID4g PiA+Pj4+Pj4gYWxsb3cgYWxsIERNQSBhY2Nlc3MuDQo+ID4gPiA+Pj4+Pj4gSSBkbyBub3QgdGhp bmsgaXQgd2lsbCBicmluZyBhbnkgZnVuY3Rpb25hbCBpbXBhY3QuDQo+ID4gPiA+Pj4+Pj4NCj4g PiA+ID4+Pj4+PiBUaGFuayB5b3UNCj4gPiA+ID4+Pj4+PiBZYW8gSmlld2VuDQo+ID4gPiA+Pj4+ Pj4NCj4gPiA+ID4+Pj4+Pg0KPiA+ID4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4gPj4+Pj4+PiBGcm9tOiBaZW5nLCBTdGFyDQo+ID4gPiA+Pj4+Pj4+IFNlbnQ6IFRo dXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDEyOjU4IFBNDQo+ID4gPiA+Pj4+Pj4+IFRvOiBZYW8s IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+Ow0KPiA+ID4gPj4+Pj4+PiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPiA+ID4gPj4+Pj4+PiBDYzogTGFzemxvIEVyc2VrIChsZXJzZWtAcmVk aGF0LmNvbSkgPGxlcnNla0ByZWRoYXQuY29tPjsNCj4gPiA+ID4+Pj4+Pj4gWmVuZywgU3RhciA8 c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPiA+ID4+Pj4+Pj4gU3ViamVjdDogUkU6IFtQQVRDSF0g SW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUw0KPiA+ID4gPj4+Pj4+PiBFdmVudCBU UEwgdG8NCj4gPiA+ID4+Pj4+PiBDQUxMQkFDSy4NCj4gPiA+ID4+Pj4+Pj4NCj4gPiA+ID4+Pj4+ Pj4gU29tZSBkZXZpY2UgZHJpdmVyIG1heSBhbHNvIGhhdmUgZXhpdCBib290IHNlcnZpY2UgZXZl bnQgYXQNCj4gPiA+ID4+Pj4+Pj4gQ0FMTEJBQ0ssIGZvciBleGFtcGxlIEF0YVBhc3NUaHJ1RXhp dEJvb3RTZXJ2aWNlcygpIHRoYXQgd2FzDQo+ID4gPiA+Pj4+Pj4+IGFkZGVkIGJ5DQo+ID4gPiA+ Pj4+PiBMYXN6bG8uDQo+ID4gPiA+Pj4+Pj4+DQo+ID4gPiA+Pj4+Pj4+DQo+ID4gPiA+Pj4+Pj4+ IFRoYW5rcywNCj4gPiA+ID4+Pj4+Pj4gU3Rhcg0KPiA+ID4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPj4+Pj4+PiBGcm9tOiBZYW8sIEppZXdlbg0KPiA+ID4gPj4+ Pj4+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyAxMDoxNCBBTQ0KPiA+ID4gPj4+ Pj4+PiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4+Pj4+Pj4gQ2M6IFplbmcs IFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gPiA+Pj4+Pj4+IFN1YmplY3Q6IFtQQVRD SF0gSW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudA0KPiA+ID4gPj4+Pj4+ PiBUUEwgdG8NCj4gPiA+ID4+IENBTExCQUNLLg0KPiA+ID4gPj4+Pj4+Pg0KPiA+ID4gPj4+Pj4+ PiBDaGFuZ2UgRXhpdEJvb3RTZXJ2aWNlcyBUUEwgdG8gQ0FMTEJBQ0ssIHNvIHRoYXQgYSBkZXZp Y2UNCj4gPiA+ID4+Pj4+Pj4gY2FuIGRpc2FibGUgQk1FIGJlZm9yZSBJT01NVSBncmFudHMgYWNj ZXNzIHJpZ2h0Lg0KPiA+ID4gPj4+Pj4+Pg0KPiA+ID4gPj4+Pj4+PiBDYzogU3RhciBaZW5nIDxz dGFyLnplbmdAaW50ZWwuY29tPg0KPiA+ID4gPj4+Pj4+PiBDb250cmlidXRlZC11bmRlcjogVGlh bm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gPiA+Pj4+Pj4+IFNpZ25lZC1v ZmYtYnk6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+ID4gPj4+Pj4+PiAt LS0NCj4gPiA+ID4+Pj4+Pj4gIEludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZER4 ZS9EbWFQcm90ZWN0aW9uLmMgfCA0DQo+ID4gPiA+Pj4+Pj4+ICsrLS0NCj4gPiA+ID4+Pj4+Pj4g IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+ID4gPiA+ Pj4+Pj4+DQo+ID4gPiA+Pj4+Pj4+IGRpZmYgLS1naXQNCj4gPiA+ID4+Pj4+Pj4gYS9JbnRlbFNp bGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvRG1hUHJvdGVjdGlvbi5jDQo+ID4gPiA+ Pj4+Pj4+IGIvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3Rl Y3Rpb24uYw0KPiA+ID4gPj4+Pj4+PiBpbmRleCBmNWRlMDFmLi40YTRkODJlIDEwMDY0NA0KPiA+ ID4gPj4+Pj4+PiAtLS0NCj4gPiA+ID4+Pj4+Pj4gYS9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9W VGQvSW50ZWxWVGREeGUvRG1hUHJvdGVjdGlvbi5jDQo+ID4gPiA+Pj4+Pj4+ICsrKw0KPiBiL0lu dGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZER4ZS9EbWFQcm90ZWN0aW9uLg0KPiA+ ID4gPj4+Pj4+PiArKysgYw0KPiA+ID4gPj4+Pj4+PiBAQCAtNDgzLDcgKzQ4Myw3IEBAIEluaXRp YWxpemVEbWFQcm90ZWN0aW9uICgNCj4gPiA+ID4+Pj4+Pj4NCj4gPiA+ID4+Pj4+Pj4gICAgU3Rh dHVzID0gZ0JTLT5DcmVhdGVFdmVudEV4ICgNCj4gPiA+ID4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgIEVWVF9OT1RJRllfU0lHTkFMLA0KPiA+ID4gPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAg VFBMX05PVElGWSwNCj4gPiA+ID4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgIFRQTF9DQUxMQkFD SywNCj4gPiA+ID4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgIE9uRXhpdEJvb3RTZXJ2aWNlcywN Cj4gPiA+ID4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gPiA+Pj4+Pj4+ICAg ICAgICAgICAgICAgICAgICAmZ0VmaUV2ZW50RXhpdEJvb3RTZXJ2aWNlc0d1aWQsIEBAIC00OTIs Nw0KPiA+ID4gPj4+Pj4+PiArNDkyLDcgQEAgSW5pdGlhbGl6ZURtYVByb3RlY3Rpb24gKA0KPiA+ ID4gPj4+Pj4+PiAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ID4gPj4+Pj4+Pg0K PiA+ID4gPj4+Pj4+PiAgICBTdGF0dXMgPSBFZmlDcmVhdGVFdmVudExlZ2FjeUJvb3RFeCAoDQo+ ID4gPiA+Pj4+Pj4+IC0gICAgICAgICAgICAgVFBMX05PVElGWSwNCj4gPiA+ID4+Pj4+Pj4gKyAg ICAgICAgICAgICBUUExfQ0FMTEJBQ0ssDQo+ID4gPiA+Pj4+Pj4+ICAgICAgICAgICAgICAgT25M ZWdhY3lCb290LA0KPiA+ID4gPj4+Pj4+PiAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gPiA+Pj4+ Pj4+ICAgICAgICAgICAgICAgJkxlZ2FjeUJvb3RFdmVudA0KPiA+ID4gPj4+Pj4+PiAtLQ0KPiA+ ID4gPj4+Pj4+PiAyLjcuNC53aW5kb3dzLjENCj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pg0KPiA+ID4g Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4g PiA+Pj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiA+ID4+PiBlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZw0KPiA+ID4gPj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8v ZWRrMi1kZXZlbA0KPiA+ID4gPj4+DQo+ID4gPiA+DQoNCg==