From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: Re: [RFC] Mechanism for high priority scheduling in amdgpu Date: Tue, 20 Dec 2016 10:51:43 -0500 Message-ID: References: <544E607D03B20249AA404517E498FC4699EBD3@exchange01.valvesoftware.com> <544E607D03B20249AA404517E498FC4699EC41@exchange01.valvesoftware.com> <544E607D03B20249AA404517E498FC4699EC70@exchange01.valvesoftware.com> <58575362.2030100@amd.com> <361f177c-bf55-1525-4f35-86708e4f8d9f@valvesoftware.com> <58576C15.1070909@amd.com> <2bf5afce-d5b8-4eaf-0fcd-a7ebfe85f92e@gmail.com> <5857751C.5060409@amd.com> <5068f779-50ad-5e17-6d7e-8493e8fdd78a@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5068f779-50ad-5e17-6d7e-8493e8fdd78a-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?UTF-8?Q?Christian_K=c3=b6nig?= , Serguei Sagalovitch , zhoucm1 , "Pierre-Loup A. Griffais" , Andres Rodriguez , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "Mao, David" , "Zhang, Hawking" , "Huan, Alvin" SGkgQ2hyaXN0aWFuLAoKVGhhdCBpcyBkZWZpbml0ZWx5IGEgY29uY2Vybi4gV2hhdCB3ZSBhcmUg Y3VycmVudGx5IHRoaW5raW5nIGlzIHRvIG1ha2UgCnRoZSBoaWdoIHByaW9yaXR5IHF1ZXVlcyBh Y2Nlc3NpYmxlIHRvIHJvb3Qgb25seS4KClRoZXJlZm9yZSBpcyBhIG5vbi1yb290IHVzZXIgYXR0 ZW1wdHMgdG8gc2V0IHRoZSBoaWdoIHByaW9yaXR5IGZsYWcgb24gCmNvbnRleHQgYWxsb2NhdGlv biwgd2Ugd291bGQgZmFpbCB0aGUgY2FsbCBhbmQgcmV0dXJuIEVOT1BFUk0uCgpSZWdhcmRzLApB bmRyZXMKCgpPbiAxMi8yMC8yMDE2IDc6NTYgQU0sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+ IEJUVzogSWYgdGhlcmUgaXMgIG5vbi1WUiBhcHBsaWNhdGlvbiB3aGljaCB3aWxsIHVzZSBoaWdo LXByaW9yaXR5Cj4+IGgvdyBxdWV1ZSB0aGVuIFZSIGFwcGxpY2F0aW9uIHdpbGwgc3VmZmVyLiAg QW55IGlkZWFzIGhvdwo+PiB0byBzb2x2ZSBpdD8KPiBZZWFoLCB0aGF0IHByb2JsZW0gY2FtZSB0 byBteSBtaW5kIGFzIHdlbGwuCj4KPiBCYXNpY2FsbHkgd2UgbmVlZCB0byByZXN0cmljdCB0aG9z ZSBoaWdoIHByaW9yaXR5IHN1Ym1pc3Npb25zIHRvIHRoZSAKPiBWUiBjb21wb3NpdG9yIG9yIG90 aGVyd2lzZSBhbnkgbWFsZnVuY3Rpb25pbmcgYXBwbGljYXRpb24gY291bGQgdXNlIGl0Lgo+Cj4g SnVzdCB0aGluayBhYm91dCBzb21lIFdlYkdMIHN1ZGRlbmx5IHRha2luZyBhbGwgb3VyIHJlbmRl cmluZyBhd2F5IGFuZCAKPiB3ZSB3b24ndCBnZXQgYW55dGhpbmcgZHJhd24gYW55IG1vcmUuCj4K PiBBbGV4IG9yIE1pY2hlbCBhbnkgaWRlYXMgb24gdGhhdD8KPgo+IFJlZ2FyZHMsCj4gQ2hyaXN0 aWFuLgo+Cj4gQW0gMTkuMTIuMjAxNiB1bSAxNTo0OCBzY2hyaWViIFNlcmd1ZWkgU2FnYWxvdml0 Y2g6Cj4+ID4gSWYgY29tcHV0ZSBxdWV1ZSBpcyBvY2N1cGllZCBvbmx5IGJ5IHlvdSwgdGhlIGVm ZmljaWVuY3kKPj4gPiBpcyBlcXVhbCB3aXRoIHNldHRpbmcgam9iIHF1ZXVlIHRvIGhpZ2ggcHJp b3JpdHkgSSB0aGluay4KPj4gVGhlIG9ubHkgcmlzayBpcyB0aGUgc2l0dWF0aW9uIHdoZW4gZ3Jh cGhpY3Mgd2lsbCB0YWtlIGFsbAo+PiBuZWVkZWQgQ1VzLiBCdXQgaW4gYW55IGNhc2UgaXQgc2hv dWxkIGJlIHZlcnkgZ29vZCB0ZXN0Lgo+Pgo+PiBBbmRyZXMvUGllcnJlLUxvdXAsCj4+Cj4+IERp ZCB5b3UgdHJ5IHRvIGRvIGl0IG9yIGl0IGlzIGEgbG90IG9mIHdvcmsgZm9yIHlvdT8KPj4KPj4K Pj4gQlRXOiBJZiB0aGVyZSBpcyAgbm9uLVZSIGFwcGxpY2F0aW9uIHdoaWNoIHdpbGwgdXNlIGhp Z2gtcHJpb3JpdHkKPj4gaC93IHF1ZXVlIHRoZW4gVlIgYXBwbGljYXRpb24gd2lsbCBzdWZmZXIu ICBBbnkgaWRlYXMgaG93Cj4+IHRvIHNvbHZlIGl0Pwo+Pgo+PiBTaW5jZXJlbHkgeW91cnMsCj4+ IFNlcmd1ZWkgU2FnYWxvdml0Y2gKPj4KPj4gT24gMjAxNi0xMi0xOSAxMjo1MCBBTSwgemhvdWNt MSB3cm90ZToKPj4+IERvIHlvdSBlbmNvdW50ZXIgdGhlIHByaW9yaXR5IGlzc3VlIGZvciBjb21w dXRlIHF1ZXVlIHdpdGggY3VycmVudCAKPj4+IGRyaXZlcj8KPj4+Cj4+PiBJZiBjb21wdXRlIHF1 ZXVlIGlzIG9jY3VwaWVkIG9ubHkgYnkgeW91LCB0aGUgZWZmaWNpZW5jeSBpcyBlcXVhbCAKPj4+ IHdpdGggc2V0dGluZyBqb2IgcXVldWUgdG8gaGlnaCBwcmlvcml0eSBJIHRoaW5rLgo+Pj4KPj4+ IFJlZ2FyZHMsCj4+PiBEYXZpZCBaaG91Cj4+Pgo+Pj4gT24gMjAxNuW5tDEy5pyIMTnml6UgMTM6 MjksIEFuZHJlcyBSb2RyaWd1ZXogd3JvdGU6Cj4+Pj4gWWVzLCB2dWxrYW4gaXMgYXZhaWxhYmxl IG9uIGFsbC1vcGVuIHRocm91Z2ggdGhlIG1lc2EgcmFkdiBVTUQuCj4+Pj4KPj4+PiBJJ20gbm90 IHN1cmUgaWYgSSdtIGFza2luZyBmb3IgdG9vIG11Y2gsIGJ1dCBpZiB3ZSBjYW4gY29vcmRpbmF0 ZSBhIAo+Pj4+IHNpbWlsYXIgaW50ZXJmYWNlIGluIHJhZHYgYW5kIGFtZGdwdS1wcm8gYXQgdGhl IHZ1bGthbiBsZXZlbCB0aGF0IAo+Pj4+IHdvdWxkIGJlIGdyZWF0Lgo+Pj4+Cj4+Pj4gSSdtIG5v dCBzdXJlIHdoYXQgdGhhdCdzIGdvaW5nIHRvIGJlIHlldC4KPj4+Pgo+Pj4+IC0gQW5kcmVzCj4+ Pj4KPj4+PiBPbiAxMi8xOS8yMDE2IDEyOjExIEFNLCB6aG91Y20xIHdyb3RlOgo+Pj4+Pgo+Pj4+ Pgo+Pj4+PiBPbiAyMDE25bm0MTLmnIgxOeaXpSAxMTozMywgUGllcnJlLUxvdXAgQS4gR3JpZmZh aXMgd3JvdGU6Cj4+Pj4+PiBXZSdyZSBjdXJyZW50bHkgd29ya2luZyB3aXRoIHRoZSBvcGVuIHN0 YWNrOyBJIGFzc3VtZSB0aGF0IGEgCj4+Pj4+PiBtZWNoYW5pc20gY291bGQgYmUgZXhwb3NlZCBi eSBib3RoIG9wZW4gYW5kIFBybyBWdWxrYW4gdXNlcnNwYWNlIAo+Pj4+Pj4gZHJpdmVycyBhbmQg dGhhdCB0aGUgYW1kZ3B1IGtlcm5lbCBpbnRlcmZhY2UgaW1wcm92ZW1lbnRzIHdlIAo+Pj4+Pj4g d291bGQgcHVyc3VlIGZvbGxvd2luZyB0aGlzIGRpc2N1c3Npb24gd291bGQgbGV0IGJvdGggZHJp dmVycyAKPj4+Pj4+IHRha2UgYWR2YW50YWdlIG9mIHRoZSBmZWF0dXJlLCBjb3JyZWN0Pwo+Pj4+ PiBPZiBjb3Vyc2UuCj4+Pj4+IERvZXMgb3BlbiBzdGFjayBoYXZlIFZ1bGthbiBzdXBwb3J0Pwo+ Pj4+Pgo+Pj4+PiBSZWdhcmRzLAo+Pj4+PiBEYXZpZCBaaG91Cj4+Pj4+Pgo+Pj4+Pj4gT24gMTIv MTgvMjAxNiAwNzoyNiBQTSwgemhvdWNtMSB3cm90ZToKPj4+Pj4+PiBCeSB0aGUgd2F5LCBhcmUg eW91IHVzaW5nIGFsbC1vcGVuIGRyaXZlciBvciBhbWRncHUtcHJvIGRyaXZlcj8KPj4+Pj4+Pgo+ Pj4+Pj4+ICtEYXZpZCBNYW8sIHdobyBpcyB3b3JraW5nIG9uIG91ciBWdWxrYW4gZHJpdmVyLgo+ Pj4+Pj4+Cj4+Pj4+Pj4gUmVnYXJkcywKPj4+Pj4+PiBEYXZpZCBaaG91Cj4+Pj4+Pj4KPj4+Pj4+ PiBPbiAyMDE25bm0MTLmnIgxOOaXpSAwNjowNSwgUGllcnJlLUxvdXAgQS4gR3JpZmZhaXMgd3Jv dGU6Cj4+Pj4+Pj4+IEhpIFNlcmd1ZWksCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEknbSBhbHNvIHdvcmtp bmcgb24gdGhlIGJyaW5naW5nIHVwIG91ciBWUiBydW50aW1lIG9uIHRvcCBvZiAKPj4+Pj4+Pj4g YW1ncHU7Cj4+Pj4+Pj4+IHNlZSByZXBsaWVzIGlubGluZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gT24g MTIvMTYvMjAxNiAwOTowNSBQTSwgU2FnYWxvdml0Y2gsIFNlcmd1ZWkgd3JvdGU6Cj4+Pj4+Pj4+ PiBBbmRyZXMsCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICBGb3IgY3VycmVudCBWUiB3b3JrbG9hZHMg d2UgaGF2ZSAzIHNlcGFyYXRlIHByb2Nlc3NlcyBydW5uaW5nCj4+Pj4+Pj4+Pj4gYWN0dWFsbHk6 Cj4+Pj4+Pj4+PiBTbyB3ZSBjb3VsZCBoYXZlIHBvdGVudGlhbCBtZW1vcnkgb3ZlcmNvbW1pdCBj YXNlIG9yIGRvIHlvdSBkbwo+Pj4+Pj4+Pj4gcGFydGl0aW9uaW5nCj4+Pj4+Pj4+PiBvbiB5b3Vy IG93bj8gIEkgd291bGQgdGhpbmsgdGhhdCB0aGVyZSBpcyBuZWVkIHRvIGF2b2lkIAo+Pj4+Pj4+ Pj4gb3ZlcmNvbWl0IGluCj4+Pj4+Pj4+PiBWUiBjYXNlIHRvCj4+Pj4+Pj4+PiBwcmV2ZW50IGFu eSBCTyBtaWdyYXRpb24uCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFlvdSdyZSBlbnRpcmVseSBjb3JyZWN0 OyBjdXJyZW50bHkgdGhlIFZSIHJ1bnRpbWUgaXMgc2V0dGluZyB1cAo+Pj4+Pj4+PiBwcmlvcml0 aXplZCBDUFUgc2NoZWR1bGluZyBmb3IgaXRzIFZSIGNvbXBvc2l0b3IsIHdlJ3JlIHdvcmtpbmcg b24KPj4+Pj4+Pj4gcHJpb3JpdGl6ZWQgR1BVIHNjaGVkdWxpbmcgYW5kIHByZS1lbXB0aW9uIChl Zy4gdGhpcyB0aHJlYWQpLCAKPj4+Pj4+Pj4gYW5kIGluCj4+Pj4+Pj4+IHRoZSBmdXR1cmUgaXQg d2lsbCBtYWtlIHNlbnNlIHRvIGRvIHdvcmsgaW4gb3JkZXIgdG8gbWFrZSBzdXJlIAo+Pj4+Pj4+ PiB0aGF0Cj4+Pj4+Pj4+IGl0cyBtZW1vcnkgYWxsb2NhdGlvbnMgZG8gbm90IGdldCBldmljdGVk LCB0byBwcmV2ZW50IGFueSAKPj4+Pj4+Pj4gdW53ZWxjb21lCj4+Pj4+Pj4+IGFkZGl0aW9uYWwg bGF0ZW5jeSBpbiB0aGUgZXZlbnQgb2YgbmVlZGluZyB0byBwZXJmb3JtIGp1c3QtaW4tdGltZQo+ Pj4+Pj4+PiByZXByb2plY3Rpb24uCj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBCVFc6IERvIHlvdSBtZWFu IF9fcmVhbF9fIHByb2Nlc3NlcyBvciB0aHJlYWRzPwo+Pj4+Pj4+Pj4gQmFzZWQgb24gbXkgdW5k ZXJzdGFuZGluZyBzaGFyaW5nIEJPcyBiZXR3ZWVuIGRpZmZlcmVudCBwcm9jZXNzZXMKPj4+Pj4+ Pj4+IGNvdWxkIGludHJvZHVjZSBhZGRpdGlvbmFsIHN5bmNocm9uaXphdGlvbiBjb25zdHJhaW5z LiBidHc6IEkgCj4+Pj4+Pj4+PiBhbSBub3QKPj4+Pj4+Pj4+IHN1cmUKPj4+Pj4+Pj4+IGlmIHdl IGFyZSBhYmxlIHRvIHNoYXJlIFZ1bGthbiBzeW5jLiBvYmplY3QgY3Jvc3MtcHJvY2VzcyAKPj4+ Pj4+Pj4+IGJvdW5kYXJ5Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBUaGV5IGFyZSBkaWZmZXJlbnQgcHJv Y2Vzc2VzOyBpdCBpcyBpbXBvcnRhbnQgZm9yIHRoZSAKPj4+Pj4+Pj4gY29tcG9zaXRvciB0aGF0 Cj4+Pj4+Pj4+IGlzIHJlc3BvbnNpYmxlIGZvciBxdWFsaXR5LW9mLXNlcnZpY2UgZmVhdHVyZXMg c3VjaCBhcyAKPj4+Pj4+Pj4gY29uc2lzdGVudGx5Cj4+Pj4+Pj4+IHByZXNlbnRpbmcgZGlzdG9y dGVkIGZyYW1lcyB3aXRoIHRoZSByaWdodCBsYXRlbmN5LCAKPj4+Pj4+Pj4gcmVwcm9qZWN0aW9u LCBldGMsCj4+Pj4+Pj4+IHRvIGJlIHNlcGFyYXRlIGZyb20gdGhlIG1haW4gYXBwbGljYXRpb24u Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEN1cnJlbnRseSB3ZSBhcmUgdXNpbmcgdW5yZWxlYXNlZCBjcm9z cy1wcm9jZXNzIG1lbW9yeSBhbmQgCj4+Pj4+Pj4+IHNlbWFwaG9yZQo+Pj4+Pj4+PiBleHRlbnNp b25zIHRvIGZldGNoIHVwZGF0ZWQgZXllIGltYWdlcyBmcm9tIHRoZSBjbGllbnQgCj4+Pj4+Pj4+ IGFwcGxpY2F0aW9uLAo+Pj4+Pj4+PiBidXQgdGhlIGp1c3QtaW4tdGltZSByZXByb2plY3Rpb24g ZGlzY3Vzc2VkIGhlcmUgZG9lcyBub3QgYWN0dWFsbHkKPj4+Pj4+Pj4gaGF2ZSBhbnkgZGlyZWN0 IGludGVyYWN0aW9ucyB3aXRoIGNyb3NzLXByb2Nlc3MgcmVzb3VyY2Ugc2hhcmluZywKPj4+Pj4+ Pj4gc2luY2UgaXQncyBhY2hpZXZlZCBieSB1c2luZyB3aGF0ZXZlciBpcyB0aGUgbGF0ZXN0LCBt b3N0IAo+Pj4+Pj4+PiB1cC10by1kYXRlCj4+Pj4+Pj4+IGV5ZSBpbWFnZXMgdGhhdCBoYXZlIGFs cmVhZHkgYmVlbiBzZW50IGJ5IHRoZSBjbGllbnQgYXBwbGljYXRpb24sCj4+Pj4+Pj4+IHdoaWNo IGFyZSBhbHJlYWR5IGF2YWlsYWJsZSB0byB1c2Ugd2l0aG91dCBhZGRpdGlvbmFsIAo+Pj4+Pj4+ PiBzeW5jaHJvbml6YXRpb24uCj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICAgIDMpIFN5 c3RlbSBjb21wb3NpdG9yICh3ZSBhcmUgbG9va2luZyBhdCBhcHByb2FjaGVzIHRvIAo+Pj4+Pj4+ Pj4+IHJlbW92ZSB0aGlzCj4+Pj4+Pj4+Pj4gb3ZlcmhlYWQpCj4+Pj4+Pj4+PiBZZXMsICBJTUhP IHRoZSBiZXN0IGlzIHRvIHJ1biBpbiAgImZ1bGwgc2NyZWVuIG1vZGUiLgo+Pj4+Pj4+Pgo+Pj4+ Pj4+PiBZZXMsIHdlIGFyZSB3b3JraW5nIG9uIG1lY2hhbmlzbXMgdG8gcHJlc2VudCBkaXJlY3Rs eSB0byB0aGUgCj4+Pj4+Pj4+IGhlYWRzZXQKPj4+Pj4+Pj4gZGlzcGxheSB3aXRob3V0IGFueSBp bnRlcm1lZGlhcmllcyBhcyBhIHNlcGFyYXRlIGVmZm9ydC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4gIFRoZSBsYXRlbmN5IGlzIG91ciBtYWluIGNvbmNlcm4sCj4+Pj4+Pj4+PiBJIHdv dWxkIGFzc3VtZSB0aGF0IHRoaXMgaXMgdGhlIGtub3duIHByb2JsZW0gKGF0IGxlYXN0IGZvciAK Pj4+Pj4+Pj4+IGNvbXB1dGUKPj4+Pj4+Pj4+IHVzYWdlKS4KPj4+Pj4+Pj4+IEl0IGxvb2tzIGxp a2UgdGhhdCBhbWRncHUgLyBrZXJuZWwgc3VibWlzc2lvbiBpcyByYXRoZXIgQ1BVIAo+Pj4+Pj4+ Pj4gaW50ZW5zaXZlCj4+Pj4+Pj4+PiAoYXQgbGVhc3QKPj4+Pj4+Pj4+IGluIHRoZSBkZWZhdWx0 IGNvbmZpZ3VyYXRpb24pLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBcyBsb25nIGFzIGl0J3MgYSBjb25z aXN0ZW50IGNvc3QsIGl0IHNob3VsZG4ndCBhbiBpc3N1ZS4gCj4+Pj4+Pj4+IEhvd2V2ZXIsIGlm Cj4+Pj4+Pj4+IHRoZXJlJ3MgaGlnaCBkZWdyZWVzIG9mIHZhcmlhbmNlIHRoZW4gdGhhdCB3b3Vs ZCBiZSB0cm91Ymxlc29tZSAKPj4+Pj4+Pj4gYW5kIHdlCj4+Pj4+Pj4+IHdvdWxkIG5lZWQgdG8g YWNjb3VudCBmb3IgdGhlIHdvcnN0IGNhc2UuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEhvcGVmdWxseSB0 aGUgcmVxdWlyZW1lbnRzIGFuZCBhcHByb2FjaCB3ZSBkZXNjcmliZWQgbWFrZSAKPj4+Pj4+Pj4g c2Vuc2UsIHdlJ3JlCj4+Pj4+Pj4+IGxvb2tpbmcgZm9yd2FyZCB0byB5b3VyIGZlZWRiYWNrIGFu ZCBzdWdnZXN0aW9ucy4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gVGhhbmtzIQo+Pj4+Pj4+PiAgLSBQaWVy cmUtTG91cAo+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNpbmNlcmVseSB5b3VycywKPj4+ Pj4+Pj4+IFNlcmd1ZWkgU2FnYWxvdml0Y2gKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4g RnJvbTogQW5kcmVzIFJvZHJpZ3VleiA8YW5kcmVzckB2YWx2ZXNvZnR3YXJlLmNvbT4KPj4+Pj4+ Pj4+IFNlbnQ6IERlY2VtYmVyIDE2LCAyMDE2IDEwOjAwIFBNCj4+Pj4+Pj4+PiBUbzogU2FnYWxv dml0Y2gsIFNlcmd1ZWk7IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+Pj4+PiBT dWJqZWN0OiBSRTogW1JGQ10gTWVjaGFuaXNtIGZvciBoaWdoIHByaW9yaXR5IHNjaGVkdWxpbmcg aW4gCj4+Pj4+Pj4+PiBhbWRncHUKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBIZXkgU2VyZ3VlaSwKPj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gW1Nlcmd1ZWldIE5vLiBJIG1lYW4gcGlwZSA6LSkgYXMgTUVDIGRl ZmluZSBpdC4gIEFzIGZhciBhcyBJCj4+Pj4+Pj4+Pj4gdW5kZXJzdGFuZCAoYnkgc2ltcGxpZnlp bmcpCj4+Pj4+Pj4+Pj4gc29tZSBzY2hlZHVsaW5nIGlzIHBlciBwaXBlLiAgSSBrbm93IGFib3V0 IHRoZSBjdXJyZW50IAo+Pj4+Pj4+Pj4+IGFsbG9jYXRpb24KPj4+Pj4+Pj4+PiBzY2hlbWUgYnV0 IEkgZG8gbm90IHRoaW5rCj4+Pj4+Pj4+Pj4gdGhhdCBpdCBpcyAgaWRlYWwuICBJIHdvdWxkIGFz c3VtZSB0aGF0IHdlIG5lZWQgdG8gc3dpdGNoIHRvCj4+Pj4+Pj4+Pj4gZHluYW1pY2FsIHBhcnRp dGlvbgo+Pj4+Pj4+Pj4+IG9mIHJlc291cmNlcyAgYmFzZWQgb24gdGhlIHdvcmtsb2FkIG90aGVy d2lzZSB3ZSB3aWxsIGhhdmUgCj4+Pj4+Pj4+Pj4gcmVzb3VyY2UKPj4+Pj4+Pj4+PiBjb25mbGlj dAo+Pj4+Pj4+Pj4+IGJldHdlZW4gVnVsa2FuIGNvbXB1dGUgYW5kICBPcGVuQ0wuCj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4gSSBhZ3JlZSB0aGUgcGFydGl0aW9uaW5nIGlzbid0IGlkZWFsLiBJJ20gaG9w aW5nIHdlIGNhbiBzdGFydCAKPj4+Pj4+Pj4+IHdpdGggYQo+Pj4+Pj4+Pj4gc29sdXRpb24gdGhh dCBhc3N1bWVzIHRoYXQKPj4+Pj4+Pj4+IG9ubHkgcGlwZTAgaGFzIGFueSB3b3JrIGFuZCB0aGUg b3RoZXIgcGlwZXMgYXJlIGlkbGUgKG5vIEhTQS9ST0NtCj4+Pj4+Pj4+PiBydW5uaW5nIG9uIHRo ZSBzeXN0ZW0pLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoaXMgc2hvdWxkIGJlIG1vcmUgb3IgbGVz cyB0aGUgdXNlIGNhc2Ugd2UgZXhwZWN0IGZyb20gVlIgdXNlcnMuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4gSSBhZ3JlZSB0aGUgc3BsaXQgaXMgY3VycmVudGx5IG5vdCBpZGVhbCwgYnV0IEknZCBsaWtl IHRvIAo+Pj4+Pj4+Pj4gY29uc2lkZXIKPj4+Pj4+Pj4+IHRoYXQgYSBzZXBhcmF0ZSB0YXNrLCBi ZWNhdXNlCj4+Pj4+Pj4+PiBtYWtpbmcgaXQgZHluYW1pYyBpcyBub3Qgc3RyYWlnaHQgZm9yd2Fy ZCA6UAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBbU2VyZ3VlaV0gVnVsa2FuIHdvcmtzIHZpYSBhbWRn cHUgKGtlcm5lbCBzdWJtaXNzaW9ucykgc28gYW1ka2ZkCj4+Pj4+Pj4+Pj4gd2lsbCBiZSBub3QK Pj4+Pj4+Pj4+PiBpbnZvbHZlZC4gIEkgd291bGQgYXNzdW1lIHRoYXQgaW4gdGhlIGNhc2Ugb2Yg VlIgd2Ugd2lsbCBoYXZlIAo+Pj4+Pj4+Pj4+IG9uZSBtYWluCj4+Pj4+Pj4+Pj4gYXBwbGljYXRp b24gKCJjb25zb2xlIiBtb2RlKD8pKSBzbyB3ZSBjb3VsZCB0ZW1wb3JhbGx5ICJpZ25vcmUiCj4+ Pj4+Pj4+Pj4gT3BlbkNML1JPQ20gbmVlZHMgd2hlbiBWUiBpcyBydW5uaW5nLgo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+IENvcnJlY3QsIHRoaXMgaXMgd2h5IHdlIHdhbnQgdG8gZW5hYmxlIHRoZSBoaWdo IHByaW9yaXR5IGNvbXB1dGUKPj4+Pj4+Pj4+IHF1ZXVlIHRocm91Z2gKPj4+Pj4+Pj4+IGxpYmRy bS1hbWRncHUsIHNvIHRoYXQgd2UgY2FuIGV4cG9zZSBpdCB0aHJvdWdoIFZ1bGthbiBsYXRlci4K Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBGb3IgY3VycmVudCBWUiB3b3JrbG9hZHMgd2UgaGF2ZSAzIHNl cGFyYXRlIHByb2Nlc3NlcyBydW5uaW5nIAo+Pj4+Pj4+Pj4gYWN0dWFsbHk6Cj4+Pj4+Pj4+PiAg ICAgMSkgR2FtZSBwcm9jZXNzCj4+Pj4+Pj4+PiAgICAgMikgVlIgQ29tcG9zaXRvciAodGhpcyBp cyB0aGUgcHJvY2VzcyB0aGF0IHdpbGwgcmVxdWlyZSBoaWdoCj4+Pj4+Pj4+PiBwcmlvcml0eSBx dWV1ZSkKPj4+Pj4+Pj4+ICAgICAzKSBTeXN0ZW0gY29tcG9zaXRvciAod2UgYXJlIGxvb2tpbmcg YXQgYXBwcm9hY2hlcyB0byAKPj4+Pj4+Pj4+IHJlbW92ZSB0aGlzCj4+Pj4+Pj4+PiBvdmVyaGVh ZCkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBGb3Igbm93IEkgdGhpbmsgaXQgaXMgb2theSB0byBhc3N1 bWUgbm8gT3BlbkNML1JPQ20gcnVubmluZwo+Pj4+Pj4+Pj4gc2ltdWx0YW5lb3VzbHksIGJ1dAo+ Pj4+Pj4+Pj4gSSB3b3VsZCBhbHNvIGxpa2UgdG8gYmUgYWJsZSB0byBhZGRyZXNzIHRoaXMgY2Fz ZSBpbiB0aGUgZnV0dXJlCj4+Pj4+Pj4+PiAoY3Jvc3MtcGlwZSBwcmlvcml0aWVzKS4KPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pj4gW1Nlcmd1ZWldICBUaGUgcHJvYmxlbSB3aXRoIHByZS1lbXB0aW9uIG9m IGdyYXBoaWNzIHRhc2s6ICAKPj4+Pj4+Pj4+PiAoYSkgaXQKPj4+Pj4+Pj4+PiBtYXkgdGFrZSB0 aW1lIHNvCj4+Pj4+Pj4+Pj4gbGF0ZW5jeSBtYXkgc3VmZmVyCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4g VGhlIGxhdGVuY3kgaXMgb3VyIG1haW4gY29uY2Vybiwgd2Ugd2FudCBzb21ldGhpbmcgdGhhdCBp cwo+Pj4+Pj4+Pj4gcHJlZGljdGFibGUuIEEgZ29vZAo+Pj4+Pj4+Pj4gaWxsdXN0cmF0aW9uIG9m IHdoYXQgdGhlIHJlcHJvamVjdGlvbiBzY2hlZHVsaW5nIGxvb2tzIGxpa2UgCj4+Pj4+Pj4+PiBj YW4gYmUKPj4+Pj4+Pj4+IGZvdW5kIGhlcmU6Cj4+Pj4+Pj4+PiBodHRwczovL2NvbW11bml0eS5h bWQuY29tL3NlcnZsZXQvSml2ZVNlcnZsZXQvc2hvd0ltYWdlLzM4LTEzMTAtMTA0NzU0L3Bhc3Rl ZEltYWdlXzMucG5nIAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IChi KSB0byBwcmVlbXB0IHdlIG5lZWQgdG8gaGF2ZSBkaWZmZXJlbnQgImNvbnRleHQiIC0gd2Ugd2Fu dAo+Pj4+Pj4+Pj4+IHRvIGd1YXJhbnRlZSB0aGF0IHN1Ym1pc3Npb25zIGZyb20gdGhlIHNhbWUg Y29udGV4dCB3aWxsIGJlIAo+Pj4+Pj4+Pj4+IGV4ZWN1dGVkCj4+Pj4+Pj4+Pj4gaW4gb3JkZXIu Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhpcyBpcyBva2F5LCBhcyB0aGUgcmVwcm9qZWN0aW9uIHdv cmsgZG9lc24ndCBoYXZlIAo+Pj4+Pj4+Pj4gZGVwZW5kZW5jaWVzIG9uCj4+Pj4+Pj4+PiB0aGUg Z2FtZSBjb250ZXh0LCBhbmQgaXQKPj4+Pj4+Pj4+IGV2ZW4gaGFwcGVucyBpbiBhIHNlcGFyYXRl IHByb2Nlc3MuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEJUVzogKGEpIERvIHlvdSB3YW50ICJwcmVl bXB0IiBhbmQgbGF0ZXIgcmVzdW1lIG9yIGRvIHlvdSB3YW50Cj4+Pj4+Pj4+Pj4gInByZWVtcHQi IGFuZAo+Pj4+Pj4+Pj4+ICJjYW5jZWwvYWJvcnQiCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gUHJlZW1w dCB0aGUgZ2FtZSB3aXRoIHRoZSBjb21wb3NpdG9yIHRhc2sgYW5kIHRoZW4gcmVzdW1lIGl0Lgo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAoYikgVnVsa2FuIGlzIGdlbmVyaWMgQVBJIGFuZCBjb3VsZCBi ZSB1c2VkIGZvciBncmFwaGljcyBhcyAKPj4+Pj4+Pj4+PiB3ZWxsIGFzCj4+Pj4+Pj4+Pj4gZm9y IHBsYWluIGNvbXB1dGUgdGFza3MgKFZLX1FVRVVFX0NPTVBVVEVfQklUKS4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+PiBZZWFoLCB0aGUgcGxhbiBpcyB0byB1c2UgdnVsa2FuIGNvbXB1dGUuIEJ1dCBpZiB5 b3UgZmlndXJlIG91dCAKPj4+Pj4+Pj4+IGEgd2F5Cj4+Pj4+Pj4+PiBmb3IgdXMgdG8gZ2V0Cj4+ Pj4+Pj4+PiBhIGd1YXJhbnRlZWQgZXhlY3V0aW9uIHRpbWUgdXNpbmcgdnVsa2FuIGdyYXBoaWNz LCB0aGVuIEknbGwgCj4+Pj4+Pj4+PiB0YWtlIHlvdQo+Pj4+Pj4+Pj4gb3V0IGZvciBhIGJlZXIg OikKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+Pj4gQW5kcmVzCj4+Pj4+Pj4+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+Pj4+PiBGcm9t OiBTYWdhbG92aXRjaCwgU2VyZ3VlaSBbU2VyZ3VlaS5TYWdhbG92aXRjaEBhbWQuY29tXQo+Pj4+ Pj4+Pj4gU2VudDogRnJpZGF5LCBEZWNlbWJlciAxNiwgMjAxNiA5OjEzIFBNCj4+Pj4+Pj4+PiBU bzogQW5kcmVzIFJvZHJpZ3VlejsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+ Pj4+IFN1YmplY3Q6IFJlOiBbUkZDXSBNZWNoYW5pc20gZm9yIGhpZ2ggcHJpb3JpdHkgc2NoZWR1 bGluZyBpbiAKPj4+Pj4+Pj4+IGFtZGdwdQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEhpIEFuZHJlcywK Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBQbGVhc2Ugc2VlIGlubGluZSAoYXMgW1Nlcmd1ZWldKQo+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+IFNpbmNlcmVseSB5b3VycywKPj4+Pj4+Pj4+IFNlcmd1ZWkgU2FnYWxv dml0Y2gKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gRnJvbTogQW5kcmVzIFJvZHJpZ3Vl eiA8YW5kcmVzckB2YWx2ZXNvZnR3YXJlLmNvbT4KPj4+Pj4+Pj4+IFNlbnQ6IERlY2VtYmVyIDE2 LCAyMDE2IDg6MjkgUE0KPj4+Pj4+Pj4+IFRvOiBTYWdhbG92aXRjaCwgU2VyZ3VlaTsgYW1kLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+Pj4+IFN1YmplY3Q6IFJFOiBbUkZDXSBNZWNo YW5pc20gZm9yIGhpZ2ggcHJpb3JpdHkgc2NoZWR1bGluZyBpbiAKPj4+Pj4+Pj4+IGFtZGdwdQo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEhpIFNlcmd1ZWksCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhhbmtz IGZvciB0aGUgZmVlZGJhY2suIEFuc3dlcnMgaW5saW5lIGFzIFtBUl0uCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gUmVnYXJkcywKPj4+Pj4+Pj4+IEFuZHJlcwo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+Pj4+IEZyb206IFNhZ2Fs b3ZpdGNoLCBTZXJndWVpIFtTZXJndWVpLlNhZ2Fsb3ZpdGNoQGFtZC5jb21dCj4+Pj4+Pj4+PiBT ZW50OiBGcmlkYXksIERlY2VtYmVyIDE2LCAyMDE2IDg6MTUgUE0KPj4+Pj4+Pj4+IFRvOiBBbmRy ZXMgUm9kcmlndWV6OyBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+Pj4+Pj4gU3Vi amVjdDogUmU6IFtSRkNdIE1lY2hhbmlzbSBmb3IgaGlnaCBwcmlvcml0eSBzY2hlZHVsaW5nIGlu IAo+Pj4+Pj4+Pj4gYW1kZ3B1Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQW5kcmVzLAo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBRdWljayBjb21tZW50czoKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAx KSBUbyBtaW5pbWl6ZSAiYnViYmxlcyIsIGV0Yy4gd2UgbmVlZCB0byAiZm9yY2UiIENVIAo+Pj4+ Pj4+Pj4gYXNzaWdubWVudHMvYmluZGluZwo+Pj4+Pj4+Pj4gdG8gaGlnaC1wcmlvcml0eSBxdWV1 ZSAgd2hlbiBpdCB3aWxsIGJlIGluIHVzZSBhbmQgImZyZWUiIHRoZW0gCj4+Pj4+Pj4+PiBsYXRl cgo+Pj4+Pj4+Pj4gKHdlICBkbyBub3Qgd2FudCBmb3JldmVyIHRha2UgQ1VzIGZyb20gZS5nLiBn cmFwaGljIHRhc2sgdG8gCj4+Pj4+Pj4+PiBkZWdyYWRlCj4+Pj4+Pj4+PiBncmFwaGljcwo+Pj4+ Pj4+Pj4gcGVyZm9ybWFuY2UpLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE90aGVyd2lzZSB3ZSBjb3Vs ZCBoYXZlIHNjZW5hcmlvIHdoZW4gbG9uZyBncmFwaGljcyB0YXNrIChvcgo+Pj4+Pj4+Pj4gbG93 LXByaW9yaXR5Cj4+Pj4+Pj4+PiBjb21wdXRlKSB3aWxsIHRvb2sgYWxsIChleHRyYSkgQ1VzIGFu ZCBoaWdoLS1wcmlvcml0eSB3aWxsIAo+Pj4+Pj4+Pj4gd2FpdCBmb3IKPj4+Pj4+Pj4+IG5lZWRl ZCByZXNvdXJjZXMuCj4+Pj4+Pj4+PiBJdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG9uICJOT1AgIiBi dXQgb25seSB3aGVuIHlvdSBzdWJtaXQgInJlYWwiCj4+Pj4+Pj4+PiBjb21wdXRlIHRhc2sKPj4+ Pj4+Pj4+IHNvIEkgd291bGQgcmVjb21tZW5kICBub3QgdG8gdXNlICJOT1AiIHBhY2tldHMgYXQg YWxsIGZvciAKPj4+Pj4+Pj4+IHRlc3RpbmcuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSXQgKENVIGFz c2lnbm1lbnQpIGNvdWxkIGJlIHJlbGF0aXZlbHkgZWFzeSBkb25lIHdoZW4gCj4+Pj4+Pj4+PiBl dmVyeXRoaW5nIGlzCj4+Pj4+Pj4+PiBnb2luZyB2aWEga2VybmVsCj4+Pj4+Pj4+PiAoZS5nLiBh cyBwYXJ0IG9mIGZyYW1lIHN1Ym1pc3Npb24pIGJ1dCBJIG11c3QgYWRtaXQgdGhhdCBJIGFtIAo+ Pj4+Pj4+Pj4gbm90IHN1cmUKPj4+Pj4+Pj4+IGFib3V0IHRoZSBiZXN0IHdheSBmb3IgdXNlciBs ZXZlbCBzdWJtaXNzaW9ucyAoYW1ka2ZkKS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBbQVJdIEkgd2Fz bid0IGF3YXJlIG9mIHRoaXMgcGFydCBvZiB0aGUgcHJvZ3JhbW1pbmcgc2VxdWVuY2UuIAo+Pj4+ Pj4+Pj4gVGhhbmtzCj4+Pj4+Pj4+PiBmb3IgdGhlIGhlYWRzIHVwIQo+Pj4+Pj4+Pj4gSXMgdGhp cyBzaW1pbGFyIHRvIHRoZSBDVSBtYXNraW5nIHByb2dyYW1taW5nPwo+Pj4+Pj4+Pj4gW1Nlcmd1 ZWldIFllcy4gVG8gc2ltcGxpZnk6IHRoZSBwcm9ibGVtIGlzIHRoYXQgInNjaGVkdWxlciIgd2hl bgo+Pj4+Pj4+Pj4gZGVjaWRpbmcgd2hpY2gKPj4+Pj4+Pj4+IHF1ZXVlIHRvICBydW4gd2lsbCBj aGVjayBpZiB0aGVyZSBpcyBlbm91Z2ggcmVzb3VyY2VzIGFuZCBpZiAKPj4+Pj4+Pj4+IG5vdCB0 aGVuCj4+Pj4+Pj4+PiBpdCB3aWxsIGJlZ2luCj4+Pj4+Pj4+PiB0byBjaGVjayBvdGhlciBxdWV1 ZXMgd2l0aCBsb3dlciBwcmlvcml0eS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAyKSBJIHdvdWxkIHJl Y29tbWVuZCB0byBkZWRpY2F0ZSB0aGUgd2hvbGUgcGlwZSB0byBoaWdoLXByaW9yaXR5Cj4+Pj4+ Pj4+PiBxdWV1ZSBhbmQgaGF2ZQo+Pj4+Pj4+Pj4gbm90aGluZyB0aGVpciBleGNlcHQgaXQuCj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gW0FSXSBJJ20gZ3Vlc3NpbmcgaW4gdGhpcyBjb250ZXh0IHlvdSBt ZWFuIHBpcGUgPSBxdWV1ZT8gKGFzIAo+Pj4+Pj4+Pj4gb3Bwb3NlZAo+Pj4+Pj4+Pj4gdG8gdGhl IE1FQyBkZWZpbml0aW9uCj4+Pj4+Pj4+PiBvZiBwaXBlLCB3aGljaCBpcyBhIGdyb3VwaW5nIG9m IHF1ZXVlcykuIEkgc2F5IHRoaXMgYmVjYXVzZSAKPj4+Pj4+Pj4+IGFtZGdwdQo+Pj4+Pj4+Pj4g b25seSBoYXMgYWNjZXNzIHRvIDEgcGlwZSwKPj4+Pj4+Pj4+IGFuZCB0aGUgcmVzdCBhcmUgc3Rh dGljYWxseSBwYXJ0aXRpb25lZCBmb3IgYW1ka2ZkIHVzYWdlLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ IFtTZXJndWVpXSBOby4gSSBtZWFuIHBpcGUgOi0pICBhcyBNRUMgZGVmaW5lIGl0LiBBcyBmYXIg YXMgSQo+Pj4+Pj4+Pj4gdW5kZXJzdGFuZCAoYnkgc2ltcGxpZnlpbmcpCj4+Pj4+Pj4+PiBzb21l IHNjaGVkdWxpbmcgaXMgcGVyIHBpcGUuICBJIGtub3cgYWJvdXQgdGhlIGN1cnJlbnQgYWxsb2Nh dGlvbgo+Pj4+Pj4+Pj4gc2NoZW1lIGJ1dCBJIGRvIG5vdCB0aGluawo+Pj4+Pj4+Pj4gdGhhdCBp dCBpcyAgaWRlYWwuICBJIHdvdWxkIGFzc3VtZSB0aGF0IHdlIG5lZWQgdG8gc3dpdGNoIHRvCj4+ Pj4+Pj4+PiBkeW5hbWljYWwgcGFydGl0aW9uCj4+Pj4+Pj4+PiBvZiByZXNvdXJjZXMgIGJhc2Vk IG9uIHRoZSB3b3JrbG9hZCBvdGhlcndpc2Ugd2Ugd2lsbCBoYXZlIAo+Pj4+Pj4+Pj4gcmVzb3Vy Y2UKPj4+Pj4+Pj4+IGNvbmZsaWN0Cj4+Pj4+Pj4+PiBiZXR3ZWVuIFZ1bGthbiBjb21wdXRlIGFu ZCAgT3BlbkNMLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBCVFc6IFdoaWNoIHVzZXIg bGV2ZWwgQVBJIGRvIHlvdSB3YW50IHRvIHVzZSBmb3IgY29tcHV0ZTogCj4+Pj4+Pj4+PiBWdWxr YW4gb3IKPj4+Pj4+Pj4+IE9wZW5DTD8KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBbQVJdIFZ1bGthbgo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFtTZXJndWVpXSBWdWxrYW4gd29ya3MgdmlhIGFtZGdwdSAoa2Vy bmVsIHN1Ym1pc3Npb25zKSBzbyAKPj4+Pj4+Pj4+IGFtZGtmZCB3aWxsCj4+Pj4+Pj4+PiBiZSBu b3QKPj4+Pj4+Pj4+IGludm9sdmVkLiAgSSB3b3VsZCBhc3N1bWUgdGhhdCBpbiB0aGUgY2FzZSBv ZiBWUiB3ZSB3aWxsIGhhdmUgCj4+Pj4+Pj4+PiBvbmUgbWFpbgo+Pj4+Pj4+Pj4gYXBwbGljYXRp b24gKCJjb25zb2xlIiBtb2RlKD8pKSBzbyB3ZSBjb3VsZCB0ZW1wb3JhbGx5ICJpZ25vcmUiCj4+ Pj4+Pj4+PiBPcGVuQ0wvUk9DbSBuZWVkcyB3aGVuIFZSIGlzIHJ1bm5pbmcuCj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+ICB3ZSB3aWxsIG5vdCBiZSBhYmxlIHRvIHByb3ZpZGUgYSBzb2x1dGlvbiBjb21w YXRpYmxlIHdpdGggR0ZYCj4+Pj4+Pj4+Pj4gd29ybG9hZHMuCj4+Pj4+Pj4+PiBJIGFzc3VtZSB0 aGF0IHlvdSBhcmUgdGFsa2luZyBhYm91dCBncmFwaGljcz8gQW0gSSByaWdodD8KPj4+Pj4+Pj4+ Cj4+Pj4+Pj4+PiBbQVJdIFllYWgsIG15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBwcmUtZW1wdGlu ZyB0aGUgY3VycmVudGx5IAo+Pj4+Pj4+Pj4gcnVubmluZwo+Pj4+Pj4+Pj4gZ3JhcGhpY3Mgam9i IGFuZCBzY2hlZHVsaW5nIGluCj4+Pj4+Pj4+PiBzb21ldGhpbmcgZWxzZSB1c2luZyBtaWQtYnVm ZmVyIHByZS1lbXB0aW9uIGhhcyBzb21lIGNhc2VzIAo+Pj4+Pj4+Pj4gd2hlcmUgaXQKPj4+Pj4+ Pj4+IGRvZXNuJ3Qgd29yayB3ZWxsLiBCdXQgaWYgd2l0aAo+Pj4+Pj4+Pj4gcG9sYXJpczEwIGl0 IHN0YXJ0cyB3b3JraW5nIHdlbGwsIGl0IG1pZ2h0IGJlIGEgYmV0dGVyIAo+Pj4+Pj4+Pj4gc29s dXRpb24gZm9yCj4+Pj4+Pj4+PiB1cyAoYmVjYXVzZSB0aGUgd2hvbGUgcmVwcm9qZWN0aW9uCj4+ Pj4+Pj4+PiB3b3JrIHVzZXMgdGhlIHZ1bGthbiBncmFwaGljcyBzdGFjayBhdCB0aGUgbW9tZW50 LCBhbmQgcG9ydGluZyAKPj4+Pj4+Pj4+IGl0IHRvCj4+Pj4+Pj4+PiBjb21wdXRlIGlzIG5vdCB0 cml2aWFsKS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBbU2VyZ3VlaV0gIFRoZSBwcm9ibGVtIHdpdGgg cHJlLWVtcHRpb24gb2YgZ3JhcGhpY3MgdGFzazogKGEpIAo+Pj4+Pj4+Pj4gaXQgbWF5Cj4+Pj4+ Pj4+PiB0YWtlIHRpbWUgc28KPj4+Pj4+Pj4+IGxhdGVuY3kgbWF5IHN1ZmZlciAoYikgdG8gcHJl ZW1wdCB3ZSBuZWVkIHRvIGhhdmUgZGlmZmVyZW50IAo+Pj4+Pj4+Pj4gImNvbnRleHQiCj4+Pj4+ Pj4+PiAtIHdlIHdhbnQKPj4+Pj4+Pj4+IHRvIGd1YXJhbnRlZSB0aGF0IHN1Ym1pc3Npb25zIGZy b20gdGhlIHNhbWUgY29udGV4dCB3aWxsIGJlIAo+Pj4+Pj4+Pj4gZXhlY3V0ZWQKPj4+Pj4+Pj4+ IGluIG9yZGVyLgo+Pj4+Pj4+Pj4gQlRXOiAoYSkgRG8geW91IHdhbnQgICJwcmVlbXB0IiBhbmQg bGF0ZXIgcmVzdW1lIG9yIGRvIHlvdSB3YW50Cj4+Pj4+Pj4+PiAicHJlZW1wdCIgYW5kCj4+Pj4+ Pj4+PiAiY2FuY2VsL2Fib3J0Ij8gIChiKSBWdWxrYW4gaXMgZ2VuZXJpYyBBUEkgYW5kIGNvdWxk IGJlIHVzZWQKPj4+Pj4+Pj4+IGZvciBncmFwaGljcyBhcyB3ZWxsIGFzIGZvciBwbGFpbiBjb21w dXRlIHRhc2tzIAo+Pj4+Pj4+Pj4gKFZLX1FVRVVFX0NPTVBVVEVfQklUKS4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU2luY2VyZWx5IHlvdXJzLAo+Pj4+Pj4+Pj4gU2VyZ3VlaSBTYWdh bG92aXRjaAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gRnJvbTogYW1k LWdmeCA8YW1kLWdmeC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gb24gCj4+Pj4+Pj4+ PiBiZWhhbGYgb2YKPj4+Pj4+Pj4+IEFuZHJlcyBSb2RyaWd1ZXogPGFuZHJlc3JAdmFsdmVzb2Z0 d2FyZS5jb20+Cj4+Pj4+Pj4+PiBTZW50OiBEZWNlbWJlciAxNiwgMjAxNiA2OjE1IFBNCj4+Pj4+ Pj4+PiBUbzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+Pj4+IFN1YmplY3Q6 IFtSRkNdIE1lY2hhbmlzbSBmb3IgaGlnaCBwcmlvcml0eSBzY2hlZHVsaW5nIGluIGFtZGdwdQo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEhpIEV2ZXJ5b25lLAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoaXMg UkZDIGlzIGFsc28gYXZhaWxhYmxlIGFzIGEgZ2lzdCBoZXJlOgo+Pj4+Pj4+Pj4gaHR0cHM6Ly9n aXN0LmdpdGh1Yi5jb20vbG9zdGdvYXQvNzAwMDQzMmNkNjg2NDI2NWRiYzJjM2FiOTMyMDQyNDkK Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFtSRkNdIE1lY2hhbmlzbSBm b3IgaGlnaCBwcmlvcml0eSBzY2hlZHVsaW5nIGluIGFtZGdwdQo+Pj4+Pj4+Pj4gZ2lzdC5naXRo dWIuY29tCj4+Pj4+Pj4+PiBbUkZDXSBNZWNoYW5pc20gZm9yIGhpZ2ggcHJpb3JpdHkgc2NoZWR1 bGluZyBpbiBhbWRncHUKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFtS RkNdIE1lY2hhbmlzbSBmb3IgaGlnaCBwcmlvcml0eSBzY2hlZHVsaW5nIGluIGFtZGdwdQo+Pj4+ Pj4+Pj4gZ2lzdC5naXRodWIuY29tCj4+Pj4+Pj4+PiBbUkZDXSBNZWNoYW5pc20gZm9yIGhpZ2gg cHJpb3JpdHkgc2NoZWR1bGluZyBpbiBhbWRncHUKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBbUkZDXSBNZWNoYW5pc20gZm9yIGhpZ2ggcHJpb3JpdHkg c2NoZWR1bGluZyBpbiBhbWRncHUKPj4+Pj4+Pj4+IGdpc3QuZ2l0aHViLmNvbQo+Pj4+Pj4+Pj4g W1JGQ10gTWVjaGFuaXNtIGZvciBoaWdoIHByaW9yaXR5IHNjaGVkdWxpbmcgaW4gYW1kZ3B1Cj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFdlIGFyZSBpbnRlcmVzdGVkIGluIGZlZWRiYWNr IGZvciBhIG1lY2hhbmlzbSB0byBlZmZlY3RpdmVseSAKPj4+Pj4+Pj4+IHNjaGVkdWxlCj4+Pj4+ Pj4+PiBoaWdoCj4+Pj4+Pj4+PiBwcmlvcml0eSBWUiByZXByb2plY3Rpb24gdGFza3MgKGFsc28g cmVmZXJyZWQgdG8gYXMgCj4+Pj4+Pj4+PiB0aW1lLXdhcnBpbmcpIGZvcgo+Pj4+Pj4+Pj4gUG9s YXJpczEwCj4+Pj4+Pj4+PiBydW5uaW5nIG9uIHRoZSBhbWRncHUga2VybmVsIGRyaXZlci4KPj4+ Pj4+Pj4+Cj4+Pj4+Pj4+PiBCcmllZiBjb250ZXh0Ogo+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0K Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBUaGUgbWFpbiBvYmplY3RpdmUgb2YgcmVwcm9qZWN0aW9uIGlz IHRvIGF2b2lkIG1vdGlvbiBzaWNrbmVzcyAKPj4+Pj4+Pj4+IGZvciBWUgo+Pj4+Pj4+Pj4gdXNl cnMgaW4KPj4+Pj4+Pj4+IHNjZW5hcmlvcyB3aGVyZSB0aGUgZ2FtZSBvciBhcHBsaWNhdGlvbiB3 b3VsZCBmYWlsIHRvIGZpbmlzaAo+Pj4+Pj4+Pj4gcmVuZGVyaW5nIGEgbmV3Cj4+Pj4+Pj4+PiBm cmFtZSBpbiB0aW1lIGZvciB0aGUgbmV4dCBWQkxBTksuIFdoZW4gdGhpcyBoYXBwZW5zLCB0aGUg Cj4+Pj4+Pj4+PiB1c2VyJ3MgaGVhZAo+Pj4+Pj4+Pj4gbW92ZW1lbnRzCj4+Pj4+Pj4+PiBhcmUg bm90IHJlZmxlY3RlZCBvbiB0aGUgSGVhZCBNb3VudGVkIERpc3BsYXkgKEhNRCkgZm9yIHRoZSAK Pj4+Pj4+Pj4+IGR1cmF0aW9uCj4+Pj4+Pj4+PiBvZiBhbgo+Pj4+Pj4+Pj4gZXh0cmEgZnJhbWUu IFRoaXMgZXh0ZW5kZWQgbWlzbWF0Y2ggYmV0d2VlbiB0aGUgaW5uZXIgZWFyIGFuZCB0aGUKPj4+ Pj4+Pj4+IGV5ZXMgbWF5Cj4+Pj4+Pj4+PiBjYXVzZSB0aGUgdXNlciB0byBleHBlcmllbmNlIG1v dGlvbiBzaWNrbmVzcy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBUaGUgVlIgY29tcG9zaXRvciBkZWFs cyB3aXRoIHRoaXMgcHJvYmxlbSBieSBmYWJyaWNhdGluZyBhIG5ldyAKPj4+Pj4+Pj4+IGZyYW1l Cj4+Pj4+Pj4+PiB1c2luZyB0aGUKPj4+Pj4+Pj4+IHVzZXIncyB1cGRhdGVkIGhlYWQgcG9zaXRp b24gaW4gY29tYmluYXRpb24gd2l0aCB0aGUgcHJldmlvdXMgCj4+Pj4+Pj4+PiBmcmFtZXMuCj4+ Pj4+Pj4+PiBUaGlzCj4+Pj4+Pj4+PiBhdm9pZHMgYSBwcm9sb25nZWQgbWlzbWF0Y2ggYmV0d2Vl biB0aGUgSE1EIG91dHB1dCBhbmQgdGhlIAo+Pj4+Pj4+Pj4gaW5uZXIgZWFyLgo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+IEJlY2F1c2Ugb2YgdGhlIGFkdmVyc2UgZWZmZWN0cyBvbiB0aGUgdXNlciwgd2Ug cmVxdWlyZSBoaWdoCj4+Pj4+Pj4+PiBjb25maWRlbmNlIHRoYXQgdGhlCj4+Pj4+Pj4+PiByZXBy b2plY3Rpb24gdGFzayB3aWxsIGNvbXBsZXRlIGJlZm9yZSB0aGUgVkJMQU5LIGludGVydmFsLiAK Pj4+Pj4+Pj4+IEV2ZW4gaWYKPj4+Pj4+Pj4+IHRoZSBHRlggcGlwZQo+Pj4+Pj4+Pj4gaXMgY3Vy cmVudGx5IGZ1bGwgb2Ygd29yayBmcm9tIHRoZSBnYW1lL2FwcGxpY2F0aW9uICh3aGljaCBpcyAK Pj4+Pj4+Pj4+IG1vc3QKPj4+Pj4+Pj4+IGxpa2VseSB0aGUgY2FzZSkuCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gRm9yIG1vcmUgZGV0YWlscyBhbmQgaWxsdXN0cmF0aW9ucywgcGxlYXNlIHJlZmVyIHRv IHRoZSBmb2xsb3dpbmcKPj4+Pj4+Pj4+IGRvY3VtZW50Ogo+Pj4+Pj4+Pj4gaHR0cHM6Ly9jb21t dW5pdHkuYW1kLmNvbS9jb21tdW5pdHkvZ2FtaW5nL2Jsb2cvMjAxNi8wMy8yOC9hc3luY2hyb25v dXMtc2hhZGVycy1ldm9sdmVkIAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+IEdhbWluZzogQXN5bmNocm9ub3VzIFNoYWRlcnMgRXZvbHZlZCB8IENvbW11 bml0eQo+Pj4+Pj4+Pj4gY29tbXVuaXR5LmFtZC5jb20KPj4+Pj4+Pj4+IE9uZSBvZiB0aGUgbW9z dCBleGNpdGluZyBuZXcgZGV2ZWxvcG1lbnRzIGluIEdQVSB0ZWNobm9sb2d5IAo+Pj4+Pj4+Pj4g b3ZlciB0aGUKPj4+Pj4+Pj4+IHBhc3QgeWVhciBoYXMgYmVlbiB0aGUgYWRvcHRpb24gb2YgYXN5 bmNocm9ub3VzIHNoYWRlcnMsIHdoaWNoIAo+Pj4+Pj4+Pj4gY2FuCj4+Pj4+Pj4+PiBtYWtlIG1v cmUgZWZmaWNpZW50IHVzZSBvZiAuLi4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+IEdhbWluZzogQXN5bmNocm9ub3VzIFNoYWRlcnMgRXZvbHZlZCB8IENvbW11bml0eQo+ Pj4+Pj4+Pj4gY29tbXVuaXR5LmFtZC5jb20KPj4+Pj4+Pj4+IE9uZSBvZiB0aGUgbW9zdCBleGNp dGluZyBuZXcgZGV2ZWxvcG1lbnRzIGluIEdQVSB0ZWNobm9sb2d5IAo+Pj4+Pj4+Pj4gb3ZlciB0 aGUKPj4+Pj4+Pj4+IHBhc3QgeWVhciBoYXMgYmVlbiB0aGUgYWRvcHRpb24gb2YgYXN5bmNocm9u b3VzIHNoYWRlcnMsIHdoaWNoIAo+Pj4+Pj4+Pj4gY2FuCj4+Pj4+Pj4+PiBtYWtlIG1vcmUgZWZm aWNpZW50IHVzZSBvZiAuLi4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ IEdhbWluZzogQXN5bmNocm9ub3VzIFNoYWRlcnMgRXZvbHZlZCB8IENvbW11bml0eQo+Pj4+Pj4+ Pj4gY29tbXVuaXR5LmFtZC5jb20KPj4+Pj4+Pj4+IE9uZSBvZiB0aGUgbW9zdCBleGNpdGluZyBu ZXcgZGV2ZWxvcG1lbnRzIGluIEdQVSB0ZWNobm9sb2d5IAo+Pj4+Pj4+Pj4gb3ZlciB0aGUKPj4+ Pj4+Pj4+IHBhc3QgeWVhciBoYXMgYmVlbiB0aGUgYWRvcHRpb24gb2YgYXN5bmNocm9ub3VzIHNo YWRlcnMsIHdoaWNoIAo+Pj4+Pj4+Pj4gY2FuCj4+Pj4+Pj4+PiBtYWtlIG1vcmUgZWZmaWNpZW50 IHVzZSBvZiAuLi4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gUmVxdWlyZW1lbnRzOgo+ Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZSBtZWNoYW5pc20g bXVzdCBleHBvc2UgdGhlIGZvbGxvd2luZyBmdW5jdGlvbmFpbGl0eToKPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+PiAgICAgKiBKb2Igcm91bmQgdHJpcCB0aW1lIG11c3QgYmUgcHJlZGljdGFibGUsIGZyb20g c3VibWlzc2lvbiB0bwo+Pj4+Pj4+Pj4gZmVuY2Ugc2lnbmFsCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4g ICAgICogVGhlIG1lY2hhbmlzbSBtdXN0IHN1cHBvcnQgY29tcHV0ZSB3b3JrbG9hZHMuCj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4gR29hbHM6Cj4+Pj4+Pj4+PiAtLS0tLS0KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ PiAgICAgKiBUaGUgbWVjaGFuaXNtIHNob3VsZCBwcm92aWRlIGxvdyBzdWJtaXNzaW9uIGxhdGVu Y2llcwo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRlc3Q6IHN1Ym1pdHRpbmcgYSBOT1AgcGFja2V0IHRo cm91Z2ggdGhlIG1lY2hhbmlzbSBvbiBidXN5IAo+Pj4+Pj4+Pj4gaGFyZHdhcmUKPj4+Pj4+Pj4+ IHNob3VsZAo+Pj4+Pj4+Pj4gYmUgZXF1aXZhbGVudCB0byBzdWJtaXR0aW5nIGEgTk9QIG9uIGlk bGUgaGFyZHdhcmUuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gTmljZSB0byBoYXZlOgo+Pj4+Pj4+Pj4g LS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ICAgICAqIFRoZSBtZWNoYW5pc20gc2hv dWxkIGFsc28gc3VwcG9ydCBHRlggd29ya2xvYWRzLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE15IHVu ZGVyc3RhbmRpbmcgaXMgdGhhdCB3aXRoIHRoZSBjdXJyZW50IGhhcmR3YXJlIAo+Pj4+Pj4+Pj4g Y2FwYWJpbGl0aWVzIGluCj4+Pj4+Pj4+PiBQb2xhcmlzMTAgd2UKPj4+Pj4+Pj4+IHdpbGwgbm90 IGJlIGFibGUgdG8gcHJvdmlkZSBhIHNvbHV0aW9uIGNvbXBhdGlibGUgd2l0aCBHRlggCj4+Pj4+ Pj4+PiB3b3Jsb2Fkcy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBCdXQgSSB3b3VsZCBsb3ZlIHRvIGhl YXIgb3RoZXJ3aXNlLiBTbyBpZiBhbnlvbmUgaGFzIGFuIGlkZWEsCj4+Pj4+Pj4+PiBhcHByb2Fj aCBvcgo+Pj4+Pj4+Pj4gc3VnZ2VzdGlvbiB0aGF0IHdpbGwgYWxzbyBiZSBjb21wYXRpYmxlIHdp dGggdGhlIEdGWCByaW5nLCAKPj4+Pj4+Pj4+IHBsZWFzZSBsZXQKPj4+Pj4+Pj4+IHVzIGtub3cK Pj4+Pj4+Pj4+IGFib3V0IGl0Lgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ICAgICAqIFRoZSBhYm92ZSBn dWFyYW50ZWVzIHNob3VsZCBhbHNvIGJlIHJlc3BlY3RlZCBieSBhbWRrZmQgCj4+Pj4+Pj4+PiB3 b3JrbG9hZHMKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBXb3VsZCBiZSBnb29kIHRvIGhhdmUgZm9yIGNv bnNpc3RlbmN5LCBidXQgbm90IHN0cmljdGx5IAo+Pj4+Pj4+Pj4gbmVjZXNzYXJ5IGFzCj4+Pj4+ Pj4+PiB1c2VycyBydW5uaW5nCj4+Pj4+Pj4+PiBnYW1lcyBhcmUgbm90IHRyYWRpdGlvbmFsbHkg cnVubmluZyBIUEMgd29ya2xvYWRzIGluIHRoZSAKPj4+Pj4+Pj4+IGJhY2tncm91bmQuCj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4gUHJvcG9zZWQgYXBwcm9hY2g6Cj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0t LS0tLS0KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBTaW1pbGFyIHRvIHRoZSB3aW5kb3dzIGRyaXZlciwg d2UgY291bGQgZXhwb3NlIGEgaGlnaCBwcmlvcml0eQo+Pj4+Pj4+Pj4gY29tcHV0ZSBxdWV1ZSB0 bwo+Pj4+Pj4+Pj4gdXNlcnNwYWNlLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFN1Ym1pc3Npb25zIHRv IHRoaXMgY29tcHV0ZSBxdWV1ZSB3aWxsIGJlIHNjaGVkdWxlZCB3aXRoIGhpZ2gKPj4+Pj4+Pj4+ IHByaW9yaXR5LCBhbmQgbWF5Cj4+Pj4+Pj4+PiBhY3F1aXJlIGhhcmR3YXJlIHJlc291cmNlcyBw cmV2aW91c2x5IGluIHVzZSBieSBvdGhlciBxdWV1ZXMuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhp cyBjYW4gYmUgYWNoaWV2ZWQgYnkgdGFraW5nIGFkdmFudGFnZSBvZiB0aGUgJ3ByaW9yaXR5JyAK Pj4+Pj4+Pj4+IGZpZWxkIGluCj4+Pj4+Pj4+PiB0aGUgSFFEcwo+Pj4+Pj4+Pj4gYW5kIGNvdWxk IGJlIHByb2dyYW1tZWQgYnkgYW1kZ3B1IG9yIHRoZSBhbWRncHUgc2NoZWR1bGVyLiBUaGUgCj4+ Pj4+Pj4+PiByZWxldmFudAo+Pj4+Pj4+Pj4gcmVnaXN0ZXIgZmllbGRzIGFyZToKPj4+Pj4+Pj4+ ICAgICAgICAgKiBtbUNQX0hRRF9QSVBFX1BSSU9SSVRZCj4+Pj4+Pj4+PiAgICAgICAgICogbW1D UF9IUURfUVVFVUVfUFJJT1JJVFkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJbXBsZW1lbnRhdGlvbiBh cHByb2FjaCAxIC0gc3RhdGljIHBhcnRpdGlvbmluZzoKPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRo ZSBhbWRncHUgZHJpdmVyIGN1cnJlbnRseSBjb250cm9scyA4IGNvbXB1dGUgcXVldWVzIGZyb20g Cj4+Pj4+Pj4+PiBwaXBlMC4gV2UgY2FuCj4+Pj4+Pj4+PiBzdGF0aWNhbGx5IHBhcnRpdGlvbiB0 aGVzZSBhcyBmb2xsb3dzOgo+Pj4+Pj4+Pj4gICAgICAgICAqIDd4IHJlZ3VsYXIKPj4+Pj4+Pj4+ ICAgICAgICAgKiAxeCBoaWdoIHByaW9yaXR5Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhlIHJlbGV2 YW50IHByaW9yaXRpZXMgY2FuIGJlIHNldCBzbyB0aGF0IHN1Ym1pc3Npb25zIHRvIHRoZSAKPj4+ Pj4+Pj4+IGhpZ2gKPj4+Pj4+Pj4+IHByaW9yaXR5Cj4+Pj4+Pj4+PiByaW5nIHdpbGwgc3RhcnZl IHRoZSBvdGhlciBjb21wdXRlIHJpbmdzIGFuZCB0aGUgR0ZYIHJpbmcuCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gVGhlIGFtZGdwdSBzY2hlZHVsZXIgd2lsbCBvbmx5IHBsYWNlIGpvYnMgaW50byB0aGUg aGlnaCBwcmlvcml0eQo+Pj4+Pj4+Pj4gcmluZ3MgaWYgdGhlCj4+Pj4+Pj4+PiBjb250ZXh0IGlz IG1hcmtlZCBhcyBoaWdoIHByaW9yaXR5LiBBbmQgYSBjb3JyZXNwb25kaW5nIHByaW9yaXR5Cj4+ Pj4+Pj4+PiBzaG91bGQgYmUKPj4+Pj4+Pj4+IGFkZGVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyBp bmZvcm1hdGlvbjoKPj4+Pj4+Pj4+ICAgICAgKiBBTURfU0NIRURfUFJJT1JJVFlfS0VSTkVMCj4+ Pj4+Pj4+PiAgICAgICogLT4gQU1EX1NDSEVEX1BSSU9SSVRZX0hJR0gKPj4+Pj4+Pj4+ICAgICAg KiBBTURfU0NIRURfUFJJT1JJVFlfTk9STUFMCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhlIHVzZXIg d2lsbCByZXF1ZXN0IGEgaGlnaCBwcmlvcml0eSBjb250ZXh0IGJ5IHNldHRpbmcgYW4KPj4+Pj4+ Pj4+IGFwcHJvcHJpYXRlIGZsYWcKPj4+Pj4+Pj4+IGluIGRybV9hbWRncHVfY3R4X2luIChBTURH UFVfQ1RYX0hJR0hfUFJJT1JJVFkgb3Igc2ltaWxhcik6Cj4+Pj4+Pj4+PiBodHRwczovL2dpdGh1 Yi5jb20vdG9ydmFsZHMvbGludXgvYmxvYi9tYXN0ZXIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVf ZHJtLmgjTDE2MyAKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZSBz ZXR0aW5nIGlzIGluIGEgcGVyIGNvbnRleHQgbGV2ZWwgc28gdGhhdCB3ZSBjYW46Cj4+Pj4+Pj4+ PiAgICAgKiBNYWludGFpbiBhIGNvbnNpc3RlbnQgRklGTyBvcmRlcmluZyBvZiBhbGwgc3VibWlz c2lvbnMgdG8gYQo+Pj4+Pj4+Pj4gY29udGV4dAo+Pj4+Pj4+Pj4gICAgICogQ3JlYXRlIGhpZ2gg cHJpb3JpdHkgYW5kIG5vbi1oaWdoIHByaW9yaXR5IGNvbnRleHRzIGluIAo+Pj4+Pj4+Pj4gdGhl IHNhbWUKPj4+Pj4+Pj4+IHByb2Nlc3MKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJbXBsZW1lbnRhdGlv biBhcHByb2FjaCAyIC0gZHluYW1pYyBwcmlvcml0eSBwcm9ncmFtbWluZzoKPj4+Pj4+Pj4+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNpbWlsYXIgdG8gdGhlIGFib3ZlLCBidXQgaW5zdGVhZCBvZiBw cm9ncmFtbWluZyB0aGUgCj4+Pj4+Pj4+PiBwcmlvcml0aWVzIGFuZAo+Pj4+Pj4+Pj4gYW1kZ3B1 X2luaXQoKSB0aW1lLCB0aGUgU1cgc2NoZWR1bGVyIHdpbGwgcmVwcm9ncmFtIHRoZSBxdWV1ZSAK Pj4+Pj4+Pj4+IHByaW9yaXRpZXMKPj4+Pj4+Pj4+IGR5bmFtaWNhbGx5IHdoZW4gc2NoZWR1bGlu ZyBhIHRhc2suCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhpcyB3b3VsZCBpbnZvbHZlIGhhdmluZyBh IGhhcmR3YXJlIHNwZWNpZmljIGNhbGxiYWNrIGZyb20gdGhlCj4+Pj4+Pj4+PiBzY2hlZHVsZXIg dG8KPj4+Pj4+Pj4+IHNldCB0aGUgYXBwcm9wcmlhdGUgcXVldWUgcHJpb3JpdHk6IHNldF9wcmlv cml0eShpbnQgcmluZywgaW50IAo+Pj4+Pj4+Pj4gaW5kZXgsCj4+Pj4+Pj4+PiBpbnQgcHJpb3Jp dHkpCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gRHVyaW5nIHRoaXMgY2FsbGJhY2sgd2Ugd291bGQgaGF2 ZSB0byBncmFiIHRoZSBTUkJNIG11dGV4IHRvIAo+Pj4+Pj4+Pj4gcGVyZm9ybQo+Pj4+Pj4+Pj4g dGhlIGFwcHJvcHJpYXRlCj4+Pj4+Pj4+PiBIVyBwcm9ncmFtbWluZywgYW5kIEknbSBub3QgcmVh bGx5IHN1cmUgaWYgdGhhdCBpcyBzb21ldGhpbmcgd2UKPj4+Pj4+Pj4+IHNob3VsZCBiZSBkb2lu ZyBmcm9tCj4+Pj4+Pj4+PiB0aGUgc2NoZWR1bGVyLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9uIHRo ZSBwb3NpdGl2ZSBzaWRlLCB0aGlzIGFwcHJvYWNoIHdvdWxkIGFsbG93IHVzIHRvIHByb2dyYW0g Cj4+Pj4+Pj4+PiBhIHJhbmdlIG9mCj4+Pj4+Pj4+PiBwcmlvcml0aWVzIGZvciBqb2JzIGluc3Rl YWQgb2YgYSBzaW5nbGUgImhpZ2ggcHJpb3JpdHkiIHZhbHVlIiwKPj4+Pj4+Pj4+IGFjaGlldmlu Zwo+Pj4+Pj4+Pj4gc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIG5pY2VuZXNzIEFQSSBhdmFpbGFi bGUgZm9yIENQVSAKPj4+Pj4+Pj4+IHNjaGVkdWxpbmcuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSSdt IG5vdCBzdXJlIGlmIHRoaXMgZmxleGliaWxpdHkgaXMgc29tZXRoaW5nIHRoYXQgd2Ugd291bGQg Cj4+Pj4+Pj4+PiBuZWVkIGZvcgo+Pj4+Pj4+Pj4gb3VyIHVzZQo+Pj4+Pj4+Pj4gY2FzZSwgYnV0 IGl0IG1pZ2h0IGJlIHVzZWZ1bCBpbiBvdGhlciBzY2VuYXJpb3MgKG11bHRpcGxlIHVzZXJzCj4+ Pj4+Pj4+PiBzaGFyaW5nIGNvbXB1dGUKPj4+Pj4+Pj4+IHRpbWUgb24gYSBzZXJ2ZXIpLgo+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+IFRoaXMgYXBwcm9hY2ggd291bGQgcmVxdWlyZSBhIG5ldyBpbnQgZmll bGQgaW4gCj4+Pj4+Pj4+PiBkcm1fYW1kZ3B1X2N0eF9pbiwgb3IKPj4+Pj4+Pj4+IHJlcHVycG9z aW5nCj4+Pj4+Pj4+PiBvZiB0aGUgZmxhZ3MgZmllbGQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gS25v d24gY3VycmVudCBvYnN0YWNsZXM6Cj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBUaGUgU1EgaXMgY3VycmVudGx5IHByb2dyYW1tZWQgdG8gZGlz cmVnYXJkIHRoZSBIUUQgCj4+Pj4+Pj4+PiBwcmlvcml0aWVzLCBhbmQKPj4+Pj4+Pj4+IGluc3Rl YWQgaXQgcGlja3MKPj4+Pj4+Pj4+IGpvYnMgYXQgcmFuZG9tLiBTZXR0aW5ncyBmcm9tIHRoZSBz aGFkZXIgaXRzZWxmIGFyZSBhbHNvIAo+Pj4+Pj4+Pj4gZGlzcmVnYXJkZWQKPj4+Pj4+Pj4+IGFz IHRoaXMgaXMKPj4+Pj4+Pj4+IGNvbnNpZGVyZWQgYSBwcml2aWxlZ2VkIGZpZWxkLgo+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+IEVmZmVjdGl2ZWx5IHdlIGNhbiBnZXQgb3VyIGNvbXB1dGUgd2F2ZWZyb250 IGxhdW5jaGVkIEFTQVAsIAo+Pj4+Pj4+Pj4gYnV0IHdlCj4+Pj4+Pj4+PiBtaWdodCBub3QgZ2V0 IHRoZQo+Pj4+Pj4+Pj4gdGltZSB3ZSBuZWVkIG9uIHRoZSBTUS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ PiBUaGUgY3VycmVudCBwcm9ncmFtbWluZyB3b3VsZCBoYXZlIHRvIGJlIGNoYW5nZWQgdG8gYWxs b3cgCj4+Pj4+Pj4+PiBwcmlvcml0eQo+Pj4+Pj4+Pj4gcHJvcGFnYXRpb24KPj4+Pj4+Pj4+IGZy b20gdGhlIEhRRCBpbnRvIHRoZSBTUS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBHZW5lcmljIGFwcHJv YWNoIGZvciBhbGwgSFcgSVBzOgo+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBGb3IgY29uc2lzdGVuY3kgcHVycG9zZXMsIHRoZSBo aWdoIHByaW9yaXR5IGNvbnRleHQgY2FuIGJlIAo+Pj4+Pj4+Pj4gZW5hYmxlZAo+Pj4+Pj4+Pj4g Zm9yIGFsbCBIVyBJUHMKPj4+Pj4+Pj4+IHdpdGggc3VwcG9ydCBvZiB0aGUgU1cgc2NoZWR1bGVy LiBUaGlzIHdpbGwgZnVuY3Rpb24gc2ltaWxhcmx5IAo+Pj4+Pj4+Pj4gdG8gdGhlCj4+Pj4+Pj4+ PiBjdXJyZW50Cj4+Pj4+Pj4+PiBBTURfU0NIRURfUFJJT1JJVFlfS0VSTkVMIHByaW9yaXR5LCB3 aGVyZSB0aGUgam9iIGNhbiBqdW1wIAo+Pj4+Pj4+Pj4gYWhlYWQgb2YKPj4+Pj4+Pj4+IGFueXRo aW5nIG5vdAo+Pj4+Pj4+Pj4gY29tbWl0ZWQgdG8gdGhlIEhXIHF1ZXVlLgo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+IFRoZSBiZW5lZml0cyBvZiByZXF1ZXN0aW5nIGEgaGlnaCBwcmlvcml0eSBjb250ZXh0 IGZvciBhIAo+Pj4+Pj4+Pj4gbm9uLWNvbXB1dGUKPj4+Pj4+Pj4+IHF1ZXVlIHdpbGwKPj4+Pj4+ Pj4+IGJlIGxlc3NlciAoZS5nLiB1cCB0byAxMHMgb2Ygd2FpdCB0aW1lIGlmIGEgR0ZYIGNvbW1h bmQgaXMgCj4+Pj4+Pj4+PiBzdHVjayBpbgo+Pj4+Pj4+Pj4gZnJvbnQgb2YKPj4+Pj4+Pj4+IHlv dSksIGJ1dCBoYXZpbmcgdGhlIEFQSSBpbiBwbGFjZSB3aWxsIGFsbG93IHVzIHRvIGVhc2lseSAK Pj4+Pj4+Pj4+IGltcHJvdmUgdGhlCj4+Pj4+Pj4+PiBpbXBsZW1lbnRhdGlvbgo+Pj4+Pj4+Pj4g aW4gdGhlIGZ1dHVyZSBhcyBuZXcgZmVhdHVyZXMgYmVjb21lIGF2YWlsYWJsZSBpbiBuZXcgaGFy ZHdhcmUuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gRnV0dXJlIHN0ZXBzOgo+Pj4+Pj4+Pj4gLS0tLS0t LS0tLS0tLQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9uY2Ugd2UgaGF2ZSBhbiBhcHByb2FjaCBzZXR0 bGVkLCBJIGNhbiB0YWtlIGNhcmUgb2YgdGhlIAo+Pj4+Pj4+Pj4gaW1wbGVtZW50YXRpb24uCj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQWxzbywgb25jZSB0aGUgaW50ZXJmYWNlIGlzIG1vc3RseSBkZWNp ZGVkLCB3ZSBjYW4gc3RhcnQgCj4+Pj4+Pj4+PiB0aGlua2luZyBhYm91dAo+Pj4+Pj4+Pj4gZXhw b3NpbmcgdGhlIGhpZ2ggcHJpb3JpdHkgcXVldWUgdGhyb3VnaCByYWR2Lgo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+IFJlcXVlc3QgZm9yIGZlZWRiYWNrOgo+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gV2UgYXJlbid0IG1hcnJpZWQgdG8gYW55IG9mIHRoZSBh cHByb2FjaGVzIG91dGxpbmVkIGFib3ZlLiBPdXIgCj4+Pj4+Pj4+PiBnb2FsCj4+Pj4+Pj4+PiBp cyB0bwo+Pj4+Pj4+Pj4gb2J0YWluIGEgbWVjaGFuaXNtIHRoYXQgd2lsbCBhbGxvdyB1cyB0byBj b21wbGV0ZSB0aGUgCj4+Pj4+Pj4+PiByZXByb2plY3Rpb24KPj4+Pj4+Pj4+IGpvYiB3aXRoaW4g YQo+Pj4+Pj4+Pj4gcHJlZGljdGFibGUgYW1vdW50IG9mIHRpbWUuIFNvIGlmIGFueW9uZSBhbnlv bmUgaGFzIGFueSAKPj4+Pj4+Pj4+IHN1Z2dlc3Rpb25zIGZvcgo+Pj4+Pj4+Pj4gaW1wcm92ZW1l bnRzIG9yIGFsdGVybmF0aXZlIHN0cmF0ZWdpZXMgd2UgYXJlIG1vcmUgdGhhbiBoYXBweSAKPj4+ Pj4+Pj4+IHRvIGhlYXIKPj4+Pj4+Pj4+IHRoZW0uCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSWYgYW55 IG9mIHRoZSB0ZWNobmljYWwgaW5mb3JtYXRpb24gYWJvdmUgaXMgYWxzbyBpbmNvcnJlY3QsIGZl ZWwKPj4+Pj4+Pj4+IGZyZWUgdG8gcG9pbnQKPj4+Pj4+Pj4+IG91dCBteSBtaXN1bmRlcnN0YW5k aW5ncy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBMb29raW5nIGZvcndhcmQgdG8gaGVhcmluZyBmcm9t IHlvdS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+Pj4gQW5kcmVzCj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPj4+Pj4+Pj4+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+PiBhbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+Pj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ IGFtZC1nZnggSW5mbyBQYWdlIC0gbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+Pj4+PiBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+Pj4+IFRvIHNlZSB0aGUgY29sbGVjdGlvbiBvZiBwcmlv ciBwb3N0aW5ncyB0byB0aGUgbGlzdCwgdmlzaXQgdGhlCj4+Pj4+Pj4+PiBhbWQtZ2Z4IEFyY2hp dmVzLiBVc2luZyBhbWQtZ2Z4OiBUbyBwb3N0IGEgbWVzc2FnZSB0byBhbGwgdGhlIAo+Pj4+Pj4+ Pj4gbGlzdAo+Pj4+Pj4+Pj4gbWVtYmVycywgc2VuZCBlbWFpbCAuLi4KPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IGFtZC1nZnggSW5mbyBQYWdlIC0gbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4+Pj4+Pj4+PiBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+Pj4+IFRvIHNl ZSB0aGUgY29sbGVjdGlvbiBvZiBwcmlvciBwb3N0aW5ncyB0byB0aGUgbGlzdCwgdmlzaXQgdGhl Cj4+Pj4+Pj4+PiBhbWQtZ2Z4IEFyY2hpdmVzLiBVc2luZyBhbWQtZ2Z4OiBUbyBwb3N0IGEgbWVz c2FnZSB0byBhbGwgdGhlIAo+Pj4+Pj4+Pj4gbGlzdAo+Pj4+Pj4+Pj4gbWVtYmVycywgc2VuZCBl bWFpbCAuLi4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPj4+Pj4+Pj4+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+PiBhbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+Pj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+PiBh bWQtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4+Pj4+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+Pj4+Pj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngKPj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4KPj4+Pj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPj4+ Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4+Pj4KPj4+Cj4+Cj4+IFNpbmNl cmVseSB5b3VycywKPj4gU2VyZ3VlaSBTYWdhbG92aXRjaAo+Pgo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdAo+ PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKPgo+CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2FtZC1nZngK