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.93; helo=mga11.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 E1EE92034A86C for ; Thu, 26 Oct 2017 17:51:38 -0700 (PDT) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Oct 2017 17:55:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,302,1505804400"; d="scan'208";a="328292790" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 26 Oct 2017 17:55:22 -0700 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Oct 2017 17:53:55 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Oct 2017 17:53:55 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.152]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Fri, 27 Oct 2017 08:53:53 +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 Date: Fri, 27 Oct 2017 00:53:53 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BAA8A38@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> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AA068EA@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US, zh-CN 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 00:51:39 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Smlld2VuLA0KSWYgdGhlIEJNRSBiaXQgaXMgY2xlYXJlZCBpbiBDb21tYW5kIHJlZ2lzdGVyLCBi dXQgYSBkZXZpY2UgZHJpdmVyDQp1c2VzIERNQSB0byB0cmFuc2ZlciBkYXRhLCB3aGF0IGtpbmQg b2YgZXJyb3Igd2lsbCBiZSBzZWVuIGJ5IFNXPw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KRnJvbTogWWFvLCBKaWV3ZW4gDQpTZW50OiBGcmlkYXksIE9jdG9iZXIgMjcsIDIwMTcgODoz NCBBTQ0KVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBaZW5nLCBTdGFyIDxz dGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCkNjOiBOaSwgUnVp eXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBs aW5hcm8ub3JnPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6IENo YW5nZSBFQlMgRXZlbnQgVFBMIHRvIENBTExCQUNLLg0KDQpHb29kIEluZm8uIEkgdGhpbmsgYSBj b3JyZWN0IGltcGxlbWVudGF0aW9uIHNob3VsZCBub3QgdXNlIGJ1c3kgd2FpdC4NCg0KSXQgc2hv dWxkIGFkZCBlcnJvciBoYW5kbGluZyB0byBjaGVjayBpZiB0aGVyZSBpcyBoYXJkd2FyZSBlcnJv ciBkdXJpbmcgdGhhdC4NCg0KPiAtIGJ1c3kgd2FpdCAocG9sbCkgdW5pbCB0aGUgdHJhbnNmZXIg aXMgY29tcGxldGUsDQoNClRoZSBwcm9jZXNzIG9mIGJ1c3kgd2FpdCBzaG91bGQgYmUgc29tZXRo aW5nIGxpa2UgYmVsb3c6DQogIHdoaWxlKFRSVUUpIHsNCiAgICBpZiAoZXJyb3IpIHsNCiAgICAg IGJyZWFrOw0KICAgIH0NCiAgICBHZXREYXRhDQogICAgaWYgKGNvbXBsZXRlKSB7DQogICAgICBC cmVhaw0KICAgIH0NCiAgfQ0KDQpCTUUgY2xlYXIgd2lsbCB0cmlnZ2VyIGVycm9yIGJyZWFrLg0K DQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDog VGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMTE6MDcgUE0NCj4gVG86IFlhbywgSmlld2VuIDxq aWV3ZW4ueWFvQGludGVsLmNvbT47IFplbmcsIFN0YXIgDQo+IDxzdGFyLnplbmdAaW50ZWwuY29t PjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50 ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwgDQo+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsg S2lubmV5LCBNaWNoYWVsIEQgDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gU3Vi amVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBF QlMgRXZlbnQgDQo+IFRQTCB0byBDQUxMQkFDSy4NCj4gDQo+IE9uIDEwLzI2LzE3IDE1OjM2LCBZ YW8sIEppZXdlbiB3cm90ZToNCj4gPiBIaSBMYXN6bG8NCj4gPiBJIGhhdmUgZGlzY3Vzc2VkIHRo aXMgd2l0aCBNaWtlIEtpbm5leSBvZmZsaW5lIGFuZCBzb21lIE1pY3Jvc29mdCBlbmdpbmVlcnMu DQo+ID4NCj4gPiBXZSBiZWxpZXZlIHRoZSBpbXBhY3Qgb2YgQk1FIGRpc2FibGUgaXMgZGlmZmVy ZW50IHdpdGggdGhlIGltcGFjdCBvZiBTRVYuDQo+ID4NCj4gPiBGb3IgU0VWLCBpZiBhIERNQSBi dWZmZXIgaXMgaW4gdHJhbnNpdGlvbiB3aGVuIFNFViBiaXQgY2hhbmdlLCB0aGUgDQo+ID4gRE1B IHdpbGwgc3RpbGwNCj4gYmUgYWN0aXZlLCBidXQgdGhlIGNvbnRlbnQgaXMgZGlmZmVyZW50LiBJ dCB3aWxsIGJyaW5nIHdyb25nIGRhdGEgZnJvbSANCj4gZGV2aWNlIHBlcnNwZWN0aXZlLg0KPiA+ DQo+ID4gRm9yIEJNRSwgaWYgYSBETUEgYnVmZmVyIGlzIGluIHRyYW5zaXRpb24gd2hlbiBCTUUg aXMgY2xlYXIsIHRoZSBETUEgDQo+ID4gd2lsbCBiZQ0KPiBzdG9wcGVkIGltbWVkaWF0ZWx5LiBU aGUgZGV2aWNlIG9ubHkgc2VlcyB0aGUgRE1BIHRyYW5zaXRpb24gaXMgYWJvcnQuIA0KPiBCdXQg dGhlcmUgaXMgbm8gd3JvbmcgZGF0YSB0cmFuc21pdHRlZC4NCj4gDQo+IEkgYWdyZWUgd2l0aCB0 aGUgYWJvdmUgYW5hbHlzaXMuDQo+IA0KPiA+IEJlY2F1c2Ugb2YgYWJvdmUgcmVhc29uLCB3ZSB0 aGluayBpdCBpcyBPSyB0byBsZXQgUENJIGJ1cyBkcml2ZXIgdG8gDQo+ID4gY2xlYXIgQk1FIGJp dA0KPiBldmVuIHRoZXJlIGlzIGFjdGl2ZSBETUEgdHJhbnNhY3Rpb24uDQo+IA0KPiBUaGUgcmVh c29uIHdoeSBJIGJlbGlldmUgdGhhdCB0aGUgUGNpQnVzRHhlIGRyaXZlciBzaG91bGQgbm90IGNs ZWFyIA0KPiB0aGUgQk1FIGJpdCBpcyBkaWZmZXJlbnQuIEl0IGlzIHVucmVsYXRlZCB0byBTRVYu DQo+IA0KPiBJbWFnaW5lIGEgUENJIGRldmljZSB0aGF0IHJlcXVpcmVzIGEgc3BlY2lhbCBETUEg dHJhbnNmZXIgYmVmb3JlIGl0IA0KPiBjYW4gYmUgcXVpZXNjZWQgYXQgRXhpdEJvb3RTZXJ2aWNl cygpLiBUaGUgdmVuZG9yIG9mIHRoaXMgZGV2aWNlIHdpbGwgDQo+IGltcGxlbWVudCBhbiBFQlMg bm90aWZpY2F0aW9uIGZ1bmN0aW9uIGxpa2UgdGhpczoNCj4gDQo+IC0gY2hlY2sgdGhlIHByaXZh dGUgZGF0YSBzdHJ1Y3R1cmUgdG8gc2VlIGlmIHRoZSBkZXZpY2UgbmVlZHMgdGhlIA0KPiBzcGVj aWFsIERNQSB0cmFuc2Zlcg0KPiANCj4gLSBpbml0aWF0ZSB0aGUgc3BlY2lhbCBETUEgdHJhbnNm ZXIgLS0gd3JpdGUgc29tZSBkYXRhIHRvIGEgcHJlYWxsb2NhdGVkDQo+ICAgYW5kIHByZS1wcm9n cmFtbWVkIG1lbW9yeSBidWZmZXIsIGFuZCB0aGVuIHB1c2ggdGhlIGRvb3JiZWxsIGluIE1NSU8N Cj4gICBvciBjb25maWcgc3BhY2UsDQo+IA0KPiAtIGJ1c3kgd2FpdCAocG9sbCkgdW5pbCB0aGUg dHJhbnNmZXIgaXMgY29tcGxldGUsDQo+IA0KPiAtIGNsZWFyIEJNRSAoYXMgcmVxdWlyZWQgYnkg dGhlIERXRyAvIHNwZWMpDQo+IA0KPiAtIGRvbmUNCj4gDQo+IE5vdywgaWYgUGNpQnVzRHhlIGlu dHJvZHVjZXMgaXRzIG93biBFQlMgbm90aWZpY2F0aW9uIGZ1bmN0aW9uLCB3aGljaCANCj4gaXRl cmF0ZXMgb3ZlciBhbGwgdGhlIFBjaUlvIGluc3RhbmNlcywgYW5kIGNsZWFycyB0aGUgQk1FIGJp dCBpbiBlYWNoIA0KPiBjb21tYW5kIHJlZ2lzdGVyLCB0aGVuIHRoaXMgbm90aWZpY2F0aW9uIGZ1 bmN0aW9uIG1heSwgb3IgbWF5IG5vdCwgYmUgDQo+IHF1ZXVlZCBiZWZvcmUgdGhlIG90aGVyIG9u ZSB0aGF0IEkgZGVzY3JpYmVkIGFib3ZlLg0KPiANCj4gSWYgdGhlIFBjaUJ1c0R4ZSBmdW5jdGlv biBpcyBxdWV1ZWQgImFmdGVyIiwgdGhlbiBldmVyeXRoaW5nIGlzIGZpbmUuIA0KPiBJZiBpdCBp cyBxdWV1ZWQgImJlZm9yZSIsIHRoZW4gdGhlIGRyaXZlcidzIG93biBub3RpZmljYXRpb24gZnVu Y3Rpb24gDQo+IHdpbGwgYnJlYWsuIChJdCBtYXkgZXZlbiBoYW5nLCBpZiB0aGUgYnVzeSB3YWl0 IG5ldmVyIGNvbXBsZXRlcy4pDQo+IA0KPiANCj4gVUVGSSBkcml2ZXJzIGZvciBQQ0kgZGV2aWNl cyBhcmUgY3VycmVudGx5IG5vdCBmb3JiaWRkZW4gZnJvbSBkb2luZyBhIA0KPiBxdWljayBDb21t b25CdWZmZXIgRE1BIHRyYW5zZmVyIGluIHRoZWlyIEVCUyBjYWxsYmFja3MgKGFzIGxvbmcgYXMg DQo+IHRoZXkgZG9uJ3QgYWxsb2NhdGUgb3IgcmVsZWFzZSBtZW1vcnkgLS0gYnV0IHRoZSBtZW1v cnkgYnVmZmVyIGFuZCB0aGUgDQo+IGNvcnJlc3BvbmRpbmcgQ29tbW9uQnVmZmVyIG1hcHBpbmcg YXJlIG5vdCBoYXJkIHRvIHNldCB1cCBpbiBhZHZhbmNlLCANCj4gZm9yIGV4YW1wbGUgaW4gRHJp dmVyQmluZGluZ1N0YXJ0KCkpLg0KPiANCj4gVGhpcyBtZWFucyB0aGF0IGFueSBhdXRvbWF0ZWQg SU9NTVUgZGVhY3RpdmF0aW9uLCBhbmQvb3IgQk1FIGNsZWFyaW5nIA0KPiBpbiBQY2lCdXNEeGUs IHNob3VsZCBvY2N1ciBvbmx5IGFmdGVyIHRoZSBpbmRpdmlkdWFsIGRyaXZlciBjYWxsYmFja3Mg DQo+IGhhdmUgcmV0dXJuZWQuIElmIFBjaUJ1c0R4ZSBjYW4gZ3VhcmFudGVlIHRoaXMsIHRoZW4g SSBoYXZlIG5vIA0KPiBvYmplY3Rpb25zIDopDQo+IA0KPiBUaGFua3MhDQo+IExhc3psbw0KPiAN Cj4gPg0KPiA+IFRoYW5rIHlvdQ0KPiA+IFlhbyBKaWV3ZW4NCj4gPg0KPiA+DQo+ID4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxl cnNla0ByZWRoYXQuY29tXQ0KPiA+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyA5 OjA3IFBNDQo+ID4+IFRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgWWFvLCBK aWV3ZW4gDQo+ID4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnDQo+ID4+IENjOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEFyZCBCaWVzaGV1 dmVsDQo+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+PiBTdWJqZWN0OiBSZTogW2Vk azJdIFtQQVRDSF0gSW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyANCj4gPj4gRXZl bnQgVFBMIHRvIENBTExCQUNLLg0KPiA+Pg0KPiA+PiBPbiAxMC8yNi8xNyAxMDoxMCwgWmVuZywg U3RhciB3cm90ZToNCj4gPj4+IElzIGl0IHNlY3VyaXR5IHJlYXNvbiB3aGVuIElPTU1VIGRpc2Fi bGVkIGFuZCBCdXMgTWFzdGVyIG5vdCBkaXNhYmxlZD8NCj4gPj4NCj4gPj4gTm8sIEkgZG9uJ3Qg dGhpbmsgdGhlcmUgaXMgYSBzZWN1cml0eSBpc3N1ZSBoZXJlLg0KPiA+Pg0KPiA+PiBCdXQsIG15 IHByZXZpb3VzIGFzc2Vzc21lbnQgYWJvdXQgVlRkRHhlIHdhcyBpbmRlZWQgd3JvbmcgLS0gdGhl cmUgDQo+ID4+IG1heSBiZSBhICpjb3JyZWN0bmVzcyogaXNzdWUuDQo+ID4+DQo+ID4+IE5hbWVs eSwgaWYgdGhlIElPTU1VIGlzIGRlLWFjdGl2YXRlZCBieSBWVGREeGUgYmVmb3JlIFBDSSBkcml2 ZXJzIA0KPiA+PiBhYm9ydCBwZW5kaW5nIERNQSwgdGhlbiBsaXZlIHN5c3RlbSBSQU0gcmVmZXJl bmNlcyBpbiB0aGUgZGV2aWNlcyANCj4gPj4gbWF5IGJlY29tZSBib2d1cy4gVGhpcyBpcyBub3Qg YSBzZWN1cml0eSBpc3N1ZSAoYmVjYXVzZSANCj4gPj4gZGUtYWN0aXZhdGluZyB0aGUgSU9NTVUg d2lsbCBncmFudCB0aGUgZGV2aWNlcyBhY2Nlc3MgdG8gYWxsIG9mIHRoZSANCj4gPj4gc3lzdGVt IFJBTSBhbnl3YXkpLCBpbnN0ZWFkIGl0J3MgYSBjb3JyZWN0bmVzcyBwcm9ibGVtOiBETUEgDQo+ ID4+IHJlYWQvd3JpdGUgbWF5IG5vdyBiZSBkaXJlY3RlZCB0byB0aGUgd3Jvbmcgc3BvdHMgaW4g UkFNIChpZiB0aGUgSU9NTVUgbWFwcGluZ3Mgd2VyZSBub3QgMToxIHByZXZpb3VzbHkpLg0KPiA+ Pg0KPiA+PiBTbywgSSBhZ3JlZSB0aGF0IFBDSSBkcml2ZXJzIHNob3VsZCBnZXQgYSBjaGFuY2Ug dG8gYWJvcnQgcGVuZGluZyANCj4gPj4gRE1BIGZpcnN0LCBiZWZvcmUgdGhlIElPTU1VIGRyaXZl ciByZW1vdmVzIHRoZSBtYXBwaW5ncy4NCj4gPj4NCj4gPj4+IENvdWxkIG91ciBjb2RlIGhhdmUg YSBjZW50cmFsIHBsYWNlIHRvIGRpc2FibGUgQnVzIE1hc3Rlcj8gRm9yIA0KPiA+Pj4gZXhhbXBs ZQ0KPiA+PiBQY2lCdXNEeGU/DQo+ID4+DQo+ID4+IE5vLCBJIGRvbid0IHRoaW5rIFBjaUJ1c0R4 ZSBpcyBhIGdvb2QgaWRlYS4gSGlnaGVyLWxldmVsIFBDSSANCj4gPj4gZHJpdmVycyBtaWdodCB3 YW50IHRvIGRvIG9uZS1zaG90IGJ1cyBtYXN0ZXIgRE1BIG9wZXJhdGlvbnMgaW4gDQo+ID4+IHRo ZWlyIG93biBFQlMgY2FsbGJhY2tzLiBJZiBQY2lCdXNEeGUncyBjYWxsYmFjayByYW4gZmlyc3Qs IHRoZW4gDQo+ID4+IHRoZXNlIGhpZ2hlci1sZXZlbCBkcml2ZXJzIHdvdWxkIGJyZWFrLg0KPiA+ Pg0KPiA+PiBGb3IgdGhlIFNFViBJT01NVSBkcml2ZXIsIHdlIHNvbHZlZCB0aGUgcHJvYmxlbSBp biBjb21taXQgDQo+ID4+IDdhZWUzOTFmYTNkMA0KPiA+PiAoIk92bWZQa2cvSW9NbXVEeGU6IHVu bWFwIGFsbCBJT01NVSBtYXBwaW5ncyBhdCANCj4gPj4gRXhpdEJvb3RTZXJ2aWNlcygpIiwgMjAx Ny0wOS0wNykuIEkgdGhpbmsgdGhlIHNhbWUgY291bGQgYmUgYXBwbGllZCB0byBWVGREeGUuDQo+ ID4+DQo+ID4+DQo+ID4+IEFub3RoZXIgaWRlYSAoc3VnZ2VzdGVkIC8gc3VwcG9ydGVkIGJ5IEFy ZCkgd2FzIHRvIG1vZGlmeSB0aGUgZWRrMg0KPiA+PiBFeGl0Qm9vdFNlcnZpY2VzKCkgaW1wbGVt ZW50YXRpb24uIEluIENvcmVFeGl0Qm9vdFNlcnZpY2VzKCkgDQo+ID4+IFtNZGVNb2R1bGVQa2cv Q29yZS9EeGUvRHhlTWFpbi9EeGVNYWluLmNdLCB3ZSBjb3VsZCBzaWduYWwgYSANCj4gPj4gc3Bl Y2lhbA0KPiA+PiBlZGsyIElPTU1VIGV2ZW50IGdyb3VwLCByaWdodCBhZnRlciBzaWduYWxpbmcN Cj4gPj4gImdFZmlFdmVudEV4aXRCb290U2VydmljZXNHdWlkIjoNCj4gPj4NCj4gPj4gICAvLw0K PiA+PiAgIC8vIE5vdGlmeSBvdGhlciBkcml2ZXJzIHRoYXQgd2UgYXJlIGV4aXRpbmcgYm9vdCBz ZXJ2aWNlcy4NCj4gPj4gICAvLw0KPiA+PiAgIENvcmVOb3RpZnlTaWduYWxMaXN0ICgmZ0VmaUV2 ZW50RXhpdEJvb3RTZXJ2aWNlc0d1aWQpOw0KPiA+Pg0KPiA+PiAgIFtIRVJFXQ0KPiA+Pg0KPiA+ PiAgIC8vDQo+ID4+ICAgLy8gUmVwb3J0IHRoYXQgRXhpdEJvb3RTZXJ2aWNlcygpIGhhcyBiZWVu IGNhbGxlZA0KPiA+PiAgIC8vDQo+ID4+ICAgUkVQT1JUX1NUQVRVU19DT0RFICgNCj4gPj4gICAg IEVGSV9QUk9HUkVTU19DT0RFLA0KPiA+PiAgICAgKEVGSV9TT0ZUV0FSRV9FRklfQk9PVF9TRVJW SUNFIHwNCj4gPj4gRUZJX1NXX0JTX1BDX0VYSVRfQk9PVF9TRVJWSUNFUykNCj4gPj4gICAgICk7 DQo+ID4+DQo+ID4+IFRoaXMgd291bGQgZW5zdXJlIHRoYXQgdGhlIElPTU1VIGNhbGxiYWNrIHJh biBsYXN0Lg0KPiA+Pg0KPiA+Pg0KPiA+PiBZZXQgYW5vdGhlciBpZGVhIChmcm9tIEppZXdlbiBJ IHRoaW5rPykgd2FzIHRvIGNhdGNoIHRoZSANCj4gPj4gRUZJX1NXX0JTX1BDX0VYSVRfQk9PVF9T RVJWSUNFUyBzdGF0dXMgY29kZSBpbiB0aGUgSU9NTVUgZHJpdmVyLiBJIA0KPiA+PiBkaWRuJ3Qg bGlrZSB0aGUgaWRlYSBiZWNhdXNlIChJTU8pIGl0IHB1dCB0b28gbWFueSByZXF1aXJlbWVudHMg b24gDQo+ID4+IHBsYXRmb3Jtcy4NCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+PiBMYXN6bG8NCj4g Pj4NCj4gPj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gVGhhbmtzLA0KPiA+Pj4gU3Rhcg0KPiA+Pj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+IEZyb206IExhc3psbyBFcnNlayBbbWFp bHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiA+Pj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjYs IDIwMTcgMzo1MyBQTQ0KPiA+Pj4gVG86IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+ OyBZYW8sIEppZXdlbiANCj4gPj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47DQo+ID4+IGVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+PiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5j b20+DQo+ID4+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBD aGFuZ2UgRUJTIEV2ZW50IFRQTCANCj4gPj4+IHRvDQo+ID4+IENBTExCQUNLLg0KPiA+Pj4NCj4g Pj4+IE9uIDEwLzI2LzE3IDA4OjU0LCBaZW5nLCBTdGFyIHdyb3RlOg0KPiA+Pj4+IE9rLCBwbGVh c2UgYWRkIG1vcmUgZGVzY3JpcHRpb24gaW50byB0aGUgY29tbWl0IGxvZywgZm9yIGV4YW1wbGUs IA0KPiA+Pj4+ICJQQ0kNCj4gZGV2aWNlDQo+ID4+IHNob3VsZCBkaXNhYmxlIEJNRSBhdCBOT1RJ RlkiLCBldGMuDQo+ID4+Pg0KPiA+Pj4gTGFzdCB0aW1lIHdlIGRpc2N1c3NlZCB0aGlzIHF1ZXN0 aW9uLCB0aGUgY29uc2Vuc3VzIHdhcyB0aGF0IGVkazIgDQo+ID4+PiBzaG91bGQNCj4gbm90DQo+ ID4+IHByZXNlbnQgYW55IHJlcXVpcmVtZW50IGZvciBQQ0kgZHJpdmVycyB0aGF0IGlzIG5vdCBy ZXF1aXJlZCBieSB0aGUgVUVGSSBzcGVjLg0KPiA+PiBVRUZJIGRyaXZlcnMgZm9yIFBDSSBkZXZp Y2VzIGNvbWUgZnJvbSB0aGlyZCBwYXJ0aWVzIGFzIHdlbGwsIGFuZCANCj4gPj4gdGhvc2UgZHJp dmVycw0KPiB3aWxsDQo+ID4+IG9ubHkgY2FyZSBhYm91dCB0aGUgVUVGSSBzcGVjIChhcyB0aGV5 IHNob3VsZCksIG5vdCBhYm91dCBlZGsyLg0KPiA+Pj4NCj4gPj4+IEluIGZhY3QsIEkgdGhpbmsg dGhpcyBhZGRpdGlvbmFsIHJlcXVpcmVtZW50IGlzIG5vdCBuZWNlc3Nhcnk6DQo+ID4+Pg0KPiA+ Pj4gKiBJbiB0aGUgZWFybGllciBkaXNjdXNzaW9uIChmb3IgdGhlIFNFViBJb01tdUR4ZSBpbiBP Vk1GKSwgaXQgd2FzIA0KPiA+Pj4gcmVhbGx5DQo+ID4+IG5lY2Vzc2FyeSB0byBkZWxheSB0aGUg SW9NbXVEeGUgRXhpdEJvb3RTZXJ2aWNlcygpIGNhbGxiYWNrIGFmdGVyIA0KPiA+PiBhbGwgdGhl IFBDSSBkcml2ZXIgY2FsbGJhY2tzLiBUaGUgcmVhc29uIGZvciB0aGlzIHdhcyB0aGF0IHRoZSAN Cj4gPj4gSW9NbXVEeGUNCj4gPj4+IEV4aXRCb290U2VydmljZXMoKSBjYWxsYmFjayB3YXMgZ29p bmcgdG8gKmxvY2sgZG93biogYWxsIFJBTSBmcm9tIA0KPiA+Pj4gZGV2aWNlcywNCj4gYW5kDQo+ ID4+IHBlbmRpbmcgRE1BIGhhZCB0byBiZSBhYm9ydGVkIGJlZm9yZSB0aGlzIGxvY2stZG93bi4N Cj4gPj4+DQo+ID4+PiAqIEluIGNvbXBhcmlzb24sIHRoZSBWVGREeGUgY2FsbGJhY2sgYXQgRUJT IGRvZXMgdGhlIG9wcG9zaXRlOiBpdCANCj4gPj4+ICJkaXNhYmxlW3NdDQo+ID4+IHRoZSBwcm90 ZWN0aW9uIGFuZCBhbGxvd1tzXSBhbGwgRE1BIGFjY2VzcyIsIGluIEppZXdlbidzIHdvcmRzIGZy b20NCj4gdXAtdGhyZWFkLg0KPiA+PiBTbywgSU1PLCBuZWl0aGVyIHRoZSBQQ0kgZHJpdmVyIHJl cXVpcmVtZW50LCBub3IgdGhpcyBwYXRjaCwgYXJlIA0KPiA+PiBuZWNlc3NhcnkgLS0gdGhlcmUg aXMgbmV2ZXIgYW4gSU9NTVUgc3RhdGUgdGhhdCBjb25mbGljdHMgd2l0aCBhIA0KPiA+PiBjb3Jy ZWN0bHkgd3JpdHRlbiBQQ0kNCj4gZHJpdmVyJ3MNCj4gPj4gcGVuZGluZyBETUEgb3BlcmF0aW9u Lg0KPiA+Pj4NCj4gPj4+IFRoYW5rcw0KPiA+Pj4gTGFzemxvDQo+ID4+Pg0KPiA+Pj4+DQo+ID4+ Pj4gV2l0aCB0aGF0LCBSZXZpZXdlZC1ieTogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29t Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBUaGFua3MsDQo+ID4+Pj4gU3Rhcg0KPiA+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPj4+ PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyAyOjUxIFBNDQo+ID4+Pj4gVG86IFpl bmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0K PiA+Pj4+IENjOiBMYXN6bG8gRXJzZWsgKGxlcnNla0ByZWRoYXQuY29tKSA8bGVyc2VrQHJlZGhh dC5jb20+OyBOaSwgDQo+ID4+Pj4gUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT4NCj4gPj4+PiBT dWJqZWN0OiBSRTogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2 ZW50IFRQTCANCj4gPj4+PiB0bw0KPiA+PiBDQUxMQkFDSy4NCj4gPj4+Pg0KPiA+Pj4+IFllcywg dGhpcyBQQ0kgcGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgc29vbi4gOikNCj4gPj4+Pg0KPiA+Pj4+ IFRoYW5rIHlvdQ0KPiA+Pj4+IFlhbyBKaWV3ZW4NCj4gPj4+Pg0KPiA+Pj4+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBaZW5nLCBTdGFyDQo+ID4+Pj4+IFNlbnQ6 IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDI6MTggUE0NCj4gPj4+Pj4gVG86IFlhbywgSmll d2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+ Pj4+IENjOiBMYXN6bG8gRXJzZWsgKGxlcnNla0ByZWRoYXQuY29tKSA8bGVyc2VrQHJlZGhhdC5j b20+OyBaZW5nLCANCj4gPj4+Pj4gU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPj4+Pj4g U3ViamVjdDogUkU6IFtQQVRDSF0gSW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBF dmVudCANCj4gPj4+Pj4gVFBMIHRvDQo+ID4+IENBTExCQUNLLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBT byB0aGVyZSB3aWxsIGJlIGEgZ3VpZGFuY2UgZm9yIHRoaXMgIiBQQ0kgZGV2aWNlIGRpc2FibGUg Qk1FIGF0IA0KPiA+Pj4+PiBOT1RJRlkgIiB0byBiZSBkb2N1bWVudGVkPw0KPiA+Pj4+Pg0KPiA+ Pj4+PiBUaGFua3MsDQo+ID4+Pj4+IFN0YXINCj4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPj4+Pj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPj4+Pj4gU2VudDogVGh1cnNkYXks IE9jdG9iZXIgMjYsIDIwMTcgMjowMyBQTQ0KPiA+Pj4+PiBUbzogWmVuZywgU3RhciA8c3Rhci56 ZW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+Pj4+IENjOiBMYXN6 bG8gRXJzZWsgKGxlcnNla0ByZWRoYXQuY29tKSA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+Pj4+ IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMg RXZlbnQgDQo+ID4+Pj4+IFRQTCB0bw0KPiA+PiBDQUxMQkFDSy4NCj4gPj4+Pj4NCj4gPj4+Pj4g UmlnaHQuIEluIHRoZSBmdXR1cmUsIHdlIHdpbGwgbGV0IFBDSSBkZXZpY2UgZGlzYWJsZSBCTUUg YXQgTk9USUZZLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTbyB3ZSBsZXQgSU9NTVUgdXNlIENBTExCQUNL LCB0byBtYWtlIHN1cmUgQk1FIGlzIGRpc2FibGVkIA0KPiA+Pj4+PiBiZWZvcmUgSU9NTVUgaXMg ZGlzYWJsZWQuDQo+ID4+Pj4+DQo+ID4+Pj4+IFRoYW5rIHlvdQ0KPiA+Pj4+PiBZYW8gSmlld2Vu DQo+ID4+Pj4+DQo+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4g RnJvbTogWmVuZywgU3Rhcg0KPiA+Pj4+Pj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjYsIDIw MTcgMTo1NSBQTQ0KPiA+Pj4+Pj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+Pj4+PiBDYzogTGFzemxvIEVyc2VrIChs ZXJzZWtAcmVkaGF0LmNvbSkgPGxlcnNla0ByZWRoYXQuY29tPjsgWmVuZywgDQo+ID4+Pj4+PiBT dGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiA+Pj4+Pj4gU3ViamVjdDogUkU6IFtQQVRDSF0g SW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudCANCj4gPj4+Pj4+IFRQTCB0 bw0KPiA+Pj4+PiBDQUxMQkFDSy4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJIGFtIGNvbmZ1c2VkLg0K PiA+Pj4+Pj4NCj4gPj4+Pj4+IElzIHRoaXMgcGF0Y2ggdG8gbWFrZSB0aGUgZGV2aWNlIGRyaXZl cidzIEVCUyBldmVudCANCj4gPj4+Pj4+IG5vdGlmaWNhdGlvbiB0byBiZSBydW4gYmVmb3JlIElu dGVsVlRkRHhlJ3MgRUJTIGV2ZW50IG5vdGlmaWNhdGlvbj8NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJ ZiB5ZXMsIHRoaXMgcGF0Y2ggc2VlbWluZ2x5IGNhbiBvbmx5IG1ha2Ugc3VyZSB0aGUgYmVoYXZp b3IgDQo+ID4+Pj4+PiB3aGVuIHRoZSBkZXZpY2UgZHJpdmVyJ3MgRUJTIGV2ZW50IG5vdGlmaWNh dGlvbiBpcyBhdCBOT1RJRlksIGJ1dCBub3QgQ0FMTEJBQ0suDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4+IFRoYW5rcywNCj4gPj4+Pj4+IFN0YXINCj4gPj4+Pj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4+Pj4+PiBGcm9tOiBZYW8sIEppZXdlbg0KPiA+Pj4+Pj4gU2VudDog VGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMToxNiBQTQ0KPiA+Pj4+Pj4gVG86IFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+Pj4+ Pj4gQ2M6IExhc3psbyBFcnNlayAobGVyc2VrQHJlZGhhdC5jb20pIDxsZXJzZWtAcmVkaGF0LmNv bT4NCj4gPj4+Pj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6 IENoYW5nZSBFQlMgRXZlbnQgDQo+ID4+Pj4+PiBUUEwgdG8NCj4gPj4+Pj4gQ0FMTEJBQ0suDQo+ ID4+Pj4+Pg0KPiA+Pj4+Pj4gVGhhdCBpcyBmaW5lLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEhlcmUs IGRpc2FibGluZyBJT01NVSBtZWFucyB0byBkaXNhYmxlIHRoZSBwcm90ZWN0aW9uIGFuZCBhbGxv dyANCj4gPj4+Pj4+IGFsbCBETUEgYWNjZXNzLg0KPiA+Pj4+Pj4gSSBkbyBub3QgdGhpbmsgaXQg d2lsbCBicmluZyBhbnkgZnVuY3Rpb25hbCBpbXBhY3QuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gVGhh bmsgeW91DQo+ID4+Pj4+PiBZYW8gSmlld2VuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+IEZyb206IFplbmcsIFN0YXIN Cj4gPj4+Pj4+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyAxMjo1OCBQTQ0KPiA+ Pj4+Pj4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyANCj4gPj4+Pj4+ PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+Pj4+Pj4+IENjOiBMYXN6bG8gRXJzZWsgKGxl cnNla0ByZWRoYXQuY29tKSA8bGVyc2VrQHJlZGhhdC5jb20+OyANCj4gPj4+Pj4+PiBaZW5nLCBT dGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0hd IEludGVsU2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMgRXZlbnQgDQo+ID4+Pj4+Pj4gVFBM IHRvDQo+ID4+Pj4+PiBDQUxMQkFDSy4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNvbWUgZGV2aWNl IGRyaXZlciBtYXkgYWxzbyBoYXZlIGV4aXQgYm9vdCBzZXJ2aWNlIGV2ZW50IGF0IA0KPiA+Pj4+ Pj4+IENBTExCQUNLLCBmb3IgZXhhbXBsZSBBdGFQYXNzVGhydUV4aXRCb290U2VydmljZXMoKSB0 aGF0IHdhcyANCj4gPj4+Pj4+PiBhZGRlZCBieQ0KPiA+Pj4+PiBMYXN6bG8uDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFRoYW5rcywNCj4gPj4+Pj4+PiBTdGFyDQo+ID4+Pj4+Pj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+PiBGcm9tOiBZYW8sIEppZXdlbg0K PiA+Pj4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDEwOjE0IEFNDQo+ID4+ Pj4+Pj4gVG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+Pj4+Pj4gQ2M6IFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4+Pj4+Pj4gU3ViamVjdDogW1BBVENIXSBJbnRl bFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50IFRQTCANCj4gPj4+Pj4+PiB0bw0K PiA+PiBDQUxMQkFDSy4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IENoYW5nZSBFeGl0Qm9vdFNlcnZp Y2VzIFRQTCB0byBDQUxMQkFDSywgc28gdGhhdCBhIGRldmljZSBjYW4gDQo+ID4+Pj4+Pj4gZGlz YWJsZSBCTUUgYmVmb3JlIElPTU1VIGdyYW50cyBhY2Nlc3MgcmlnaHQuDQo+ID4+Pj4+Pj4NCj4g Pj4+Pj4+PiBDYzogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+IENv bnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4g Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4N Cj4gPj4+Pj4+PiAtLS0NCj4gPj4+Pj4+PiAgSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0lu dGVsVlRkRHhlL0RtYVByb3RlY3Rpb24uYyB8IDQgDQo+ID4+Pj4+Pj4gKystLQ0KPiA+Pj4+Pj4+ ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdA0KPiA+Pj4+Pj4+IGEvSW50ZWxTaWxpY29uUGtnL0Zl YXR1cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3RlY3Rpb24uYw0KPiA+Pj4+Pj4+IGIvSW50ZWxT aWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3RlY3Rpb24uYw0KPiA+Pj4+ Pj4+IGluZGV4IGY1ZGUwMWYuLjRhNGQ4MmUgMTAwNjQ0DQo+ID4+Pj4+Pj4gLS0tIGEvSW50ZWxT aWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3RlY3Rpb24uYw0KPiA+Pj4+ Pj4+ICsrKyBiL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZER4ZS9EbWFQcm90 ZWN0aW9uLmMNCj4gPj4+Pj4+PiBAQCAtNDgzLDcgKzQ4Myw3IEBAIEluaXRpYWxpemVEbWFQcm90 ZWN0aW9uICgNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZl bnRFeCAoDQo+ID4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgIEVWVF9OT1RJRllfU0lHTkFMLA0K PiA+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICBUUExfTk9USUZZLA0KPiA+Pj4+Pj4+ICsgICAg ICAgICAgICAgICAgICBUUExfQ0FMTEJBQ0ssDQo+ID4+Pj4+Pj4gICAgICAgICAgICAgICAgICAg IE9uRXhpdEJvb3RTZXJ2aWNlcywNCj4gPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgTlVMTCwN Cj4gPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgJmdFZmlFdmVudEV4aXRCb290U2VydmljZXNH dWlkLCBAQCAtNDkyLDcNCj4gPj4+Pj4+PiArNDkyLDcgQEAgSW5pdGlhbGl6ZURtYVByb3RlY3Rp b24gKA0KPiA+Pj4+Pj4+ICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiAgICBTdGF0dXMgPSBFZmlDcmVhdGVFdmVudExlZ2FjeUJvb3RFeCAoDQo+ID4+ Pj4+Pj4gLSAgICAgICAgICAgICBUUExfTk9USUZZLA0KPiA+Pj4+Pj4+ICsgICAgICAgICAgICAg VFBMX0NBTExCQUNLLA0KPiA+Pj4+Pj4+ICAgICAgICAgICAgICAgT25MZWdhY3lCb290LA0KPiA+ Pj4+Pj4+ICAgICAgICAgICAgICAgTlVMTCwNCj4gPj4+Pj4+PiAgICAgICAgICAgICAgICZMZWdh Y3lCb290RXZlbnQNCj4gPj4+Pj4+PiAtLQ0KPiA+Pj4+Pj4+IDIuNy40LndpbmRvd3MuMQ0KPiA+ Pj4+DQo+ID4+Pg0KPiA+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCj4gPj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4+PiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPiA+Pj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5m by9lZGsyLWRldmVsDQo+ID4+Pg0KPiA+DQoNCg==