From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Rafael J. Wysocki" Subject: Re: [DMC_BUGFIX_SKL_V2 1/5] drm/i915/skl: Added a check for the hardware status of csr fw before loading. Date: Wed, 30 Sep 2015 02:50:40 +0200 Message-ID: <560B31E0.8060807@intel.com> References: <55F1D4B0.7050104@intel.com> <20150914074612.GE3383@phenom.ffwll.local> <55F9C1A9.7000106@intel.com> <20150923075738.GF3383@phenom.ffwll.local> <56031060.9040708@intel.com> <20150928065256.GH3383@phenom.ffwll.local> <5609D34D.4080902@intel.com> <20150929085111.GE3383@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id A019B6E2B4 for ; Tue, 29 Sep 2015 17:50:43 -0700 (PDT) In-Reply-To: <20150929085111.GE3383@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Daniel Vetter , intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gOS8yOS8yMDE1IDEwOjUxIEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IE9uIFR1ZSwgU2Vw IDI5LCAyMDE1IGF0IDAxOjU0OjUzQU0gKzAyMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOgo+ PiBPbiA5LzI4LzIwMTUgODo1MiBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+IE9uIFdlZCwg U2VwIDIzLCAyMDE1IGF0IDEwOjQ5OjM2UE0gKzAyMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3Rl Ogo+Pj4+IE9uIDkvMjMvMjAxNSA3OjE3IFBNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4+PiBh Y3BpX3RhcmdldF9zeXN0ZW1fc3RhdGUoKSBzZWVtcyB0byBiZSBhbG1vc3QgdGhlIHRoaW5nIHdl J3JlIGxvb2tpbmcKPj4+Pj4gZm9yLCBleGNlcHQgdGhhdCBpdCdzIG9ubHkgdmFsaWQgaW4gdGhl IHN1c3BlbmQgY2FsbGJhY2tzIHNpbmNlIGl0Cj4+Pj4+IGdldHMgcmVzZXQgdG8gQUNQSV9TVEFU RV9TMCB3aGVuIHJlc3VtaW5nLiBTbyBwcm9iYWJseSB3ZSB3YW50Cj4+Pj4+IHNvbWV0aGluZyBl bHNlIC4uLgo+Pj4+IFJpZ2h0Lgo+Pj4+Cj4+Pj4gVGhlIGlkZWEgaXMgdG8gYWRkIGEgd2F5IGZv ciBkcml2ZXJzIHRvIGNoZWNrIGlmCj4+Pj4gKGEpIHN1c3BlbmQgaXMgZ29pbmcgdG8gZW50ZXIg dGhlIEJJT1MKPj4+PiAoYikgcmVzdW1lIGhhcyBiZWVuIHRyaWdnZXJlZCBieSB0aGUgQklPUwo+ Pj4+IGFuZCB0aGF0J3MgcmVhbGx5IHdoYXQgZHJpdmVycyBuZWVkIHRvIGtub3cuCj4+Pj4KPj4+ PiBGb3Igc3VzcGVuZC10by1pZGxlIHRob3NlIHR3byB3aWxsIHJldHVybiBmYWxzZSBhbmQgZm9y IFMzIHRoZXknbGwgcmV0dXJuCj4+Pj4gdHJ1ZS4KPj4+Pgo+Pj4+IFdvdWxkIHRoYXQgaGVscD8K Pj4+IE5vdCBzdXJlIHRoYXQgbWF0Y2hlcyBleGF4dGx5IHdoYXQgd2UnZCBuZWVkIGhlcmUgLi4u IEVzc2VudGlhbGx5IHdlIG5lZWQKPj4+IHRvIGtub3cgd2hldGhlciB3ZSd2ZSBiZWVuIGluIFMz L1M0IChmaXJtd2FyZSBoYXMgYmVlbiBlYXRlbikgb3IgaW4gb25lIG9mCj4+PiB0aGUgaGlnaGVy IHN1c3BlbmQtdG8taWRsZS9zdGFuZGJ5IHN0YXRlcyAoZmlybXdhcmUgc3RpbGwgYWxpdmUsIGRv bid0Cj4+PiBkaXN0dXJiIGl0KS4gQWRkaXRpb25hbCBmdW4gdGhhdCBqdXN0IGNyb3NzZWQgbXkg bWluZCBpcyB0aGF0IGlmIHRoZQo+Pj4gc3VzcGVuZC10by1tZW0gaXMgYWJvcnRlZCAoc29tZSBv dGhlciBkcml2ZXIgZmFpbGVkKSB0aGVuIHRoYXQgZnVuY3Rpb24KPj4+IHNob3VsZCBfbm90XyBp bmRpY2F0ZSB0aGF0IHdlJ3ZlIGJlZW4gaW4gUzMuIFNvIG1heWJlIHNvbWV0aGluZyBsaWtlCj4+ IFNvIGl0IHJlYWxseSBsb29rcyBsaWtlIHRoZSBpbnRlcmZhY2UgSSB3YXMgdGFsa2luZyBhYm91 dCB3b3VsZCBiZSBzdWl0YWJsZToKPj4KPj4gcG1fc3VzcGVuZF92aWFfZmlybXdhcmUoKSA9PSB0 cnVlIC0+IGZpcm13YXJlIGlzIGdvaW5nIHRvIGJlIGVhdGVuICh1c2UgdGhhdAo+PiBkdXJpbmcg c3VzcGVuZCBpZiBuZWVkZWQpCj4+IHBtX3Jlc3VtZV92aWFfZmlybXdhcmUoKSA9PSB0cnVlIC0+ IGZpcm13YXJlIHdhcyBlYXRlbgo+Pgo+PiBUaGUgbGF0dGVyIHdpbGwgb25seSByZXR1cm4gJ3Ry dWUnIGlmIHdlIHJlYWxseSBoYXZlIGVudGVyZWQgdGhlIEJJT1MKPj4gKHBsYXRmb3JtIGZpcm13 YXJlKS4KPiBZZWFoIHRoYXQgc2VlbXMgdG8gZml0IHRoZSBiaWxsLiBXZSBhbHJlYWR5IGhhdmUg YSBjaGVjayBpbiBvdXIgc3VzcGVuZAo+IHBhdGhzIHRvIGZpZ3VyZSBvdXQgd2hldGhlciB3ZSds bCBzdXNwZW5kIHRvIGlkbGUgb3IgZ28gaW50byBmdWxsIFMzLCBzbwo+IGk5MTUgY291bGQgdXNl IHRoZW0gYm90aC4gQW5kIG1ha2luZyB0aGVtIGdlbmVyaWMgd291bGQgbWFrZSBzZW5zZSBJCj4g Z3Vlc3MuCgpPSywgc2VudCBwYXRjaGVzIChDQ2VkIHlvdSksIHBsZWFzZSBoYXZlIGEgbG9vay4K ClRoYW5rcywKUmFmYWVsCgoKPj4+IGFjcGlfc291cmNlX3N5c3RlbV9zdGF0ZSgpIHdoaWNoIHVz dWFsbHkgaXMgUzAgYW5kIG9ubHkgd2hlbiBhY3BpCj4+PiBzdWNjZXNzZnVsbHkgd2VudCBpbnRv IHRoZSBzdXNwZW5kIHN0YXRlIGluIHBsYXRmb3JtX3N1c3BlbmRfb3BzLT5lbnRlciBpdAo+Pj4g Z2V0cyBzZXQgdG8gdGhlIHZhbHVlIG9mIGFjcGlfdGFyZ2V0X3N5c3RlbV9zdGF0ZS4gQW5kIHRo ZW4gcmVzZXQgb25jZSB0aGUKPj4+IHJlc3VtZSBoYXMgY29tcGxldGVkLiBJIHRoaW5rIHRoYXQg d291bGQgYmUgd2hhdCB3ZSdkIHdhbnQgaGVyZS4KPj4gV2UgbmVlZCB0byBuZXcgZnVuY3Rpb25z IGxpa2UgdGhlIGFib3ZlLCBiZWNhdXNlIHNvbWUgdGhpbmdzIGFscmVhZHkgZGVwZW5kCj4+IG9u IGFjcGlfdGFyZ2V0X3N5c3RlbV9zdGF0ZSB3b3JraW5nIHRoZSB3YXkgaXQgZG9lcyBjdXJyZW50 bHkuCj4+Cj4+IEkgc2VlIG5vIHJlYXNvbiB0byBtYWtlIHRoYXQgQUNQSS1zcGVjaWZpYywgdGhv dWdoLCBpbiBwcmluY2lwbGUuCj4+Cj4+PiBBbnl3YXkgSSdsbCBwdWxsIGluIEFuaW1lc2ggc2Vy aWVzIG1lYW53aGlsZSwgYW1lbmRlZCB3aXRoIGEgRklYTUUgY29tbWVudC4KPj4gRmluZSBieSBt ZS4KPj4KPj4gVGhhbmtzLAo+PiBSYWZhZWwKPj4KPj4KPj4+Pj4gT24gV2VkLCBTZXAgMjMsIDIw MTUgYXQgNjoyOCBQTSwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPj4+ Pj4+IEFjdHVhbGx5IGFkZCBSYWZhZWwgdGhpcyB0aW1lIGFyb3VuZCAuLi4KPj4+Pj4+IC1EYW5p ZWwKPj4+Pj4+Cj4+Pj4+PiBPbiBXZWQsIFNlcCAyMywgMjAxNSBhdCA2OjI3IFBNLCBEYW5pZWwg VmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3RlOgo+Pj4+Pj4+IE9uIFdlZCwgU2VwIDIzLCAy MDE1IGF0IDk6NTcgQU0sIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4gd3JvdGU6Cj4+ Pj4+Pj4+IE9uIFRodSwgU2VwIDE3LCAyMDE1IGF0IDEyOjUzOjIxQU0gKzA1MzAsIEFuaW1lc2gg TWFubmEgd3JvdGU6Cj4+Pj4+Pj4+PiBPbiA5LzE0LzIwMTUgMToxNiBQTSwgRGFuaWVsIFZldHRl ciB3cm90ZToKPj4+Pj4+Pj4+PiBPbiBGcmksIFNlcCAxMSwgMjAxNSBhdCAxMjozNjoyNEFNICsw NTMwLCBBbmltZXNoIE1hbm5hIHdyb3RlOgo+Pj4+Pj4+Pj4+PiBPbiA5LzEwLzIwMTUgODoxNSBQ TSwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+Pj4+Pj4+Pj4+IE9uIFRodSwgU2VwIDEwLCAyMDE1 IGF0IDAxOjU4OjU0QU0gKzA1MzAsIEFuaW1lc2ggTWFubmEgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4g T24gOS8yLzIwMTUgMjoyNCBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+Pj4+Pj4+Pj4+Pj4g T24gV2VkLCBBdWcgMjYsIDIwMTUgYXQgMDc6NDA6NTRQTSArMDUzMCwgQW5pbWVzaCBNYW5uYSB3 cm90ZToKPj4+Pj4+Pj4+Pj4+Pj4+IE9uIDgvMjYvMjAxNSA2OjQwIFBNLCBEYW5pZWwgVmV0dGVy IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+Pj4+IE9uIFdlZCwgQXVnIDI2LCAyMDE1IGF0IDAxOjM2OjA1 QU0gKzA1MzAsIEFuaW1lc2ggTWFubmEgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IERtYyB3aWxs IHJlc3RvcmUgdGhlIGNzciBwcm9ncmFtIGV4Y2VwdCBEQzksIGNvbGQgYm9vdCwKPj4+Pj4+Pj4+ Pj4+Pj4+Pj4gd2FybSByZXNldCwgUENJIGZ1bmN0aW9uIGxldmVsIHJlc2V0LCBhbmQgaGliZXJu YXRlL3N1c3BlbmQuCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGludGVsX2Nz cl9sb2FkX3Byb2dyYW0oKSBmdW5jdGlvbiBpcyB1c2VkIHRvIGxvYWQgdGhlIGZpcm13YXJlCj4+ Pj4+Pj4+Pj4+Pj4+Pj4+IGRhdGEgZnJvbSBrZXJuZWwgbWVtb3J5IHRvIGNzciBhZGRyZXNzIHNw YWNlLgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBBbGwgdmFsdWVzIG9mIGNz ciBhZGRyZXNzIHNwYWNlIHdpbGwgYmUgemVybyBpZiBpdCBnb3QgcmVzZXQgYW5kCj4+Pj4+Pj4+ Pj4+Pj4+Pj4+IHRoZSBmaXJzdCBieXRlIG9mIGNzciBwcm9ncmFtIGlzIGFsd2F5cyBhIG5vbi16 ZXJvIGlmIGZpcm13YXJlCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGlzIGxvYWRlZCBzdWNjZXNzZnVseS4g QmFzZWQgb24gaGFyZHdhcmUgc3RhdHVzIHdpbGwgbG9hZCB0aGUKPj4+Pj4+Pj4+Pj4+Pj4+Pj4g ZmlybXdhcmUuCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFdpdGhvdXQgdGhp cyBjb25kaXRpb24gY2hlY2sgaWYgd2Ugb3ZlcndyaXRlIHRoZSBmaXJtd2FyZSBkYXRhIHRoZQo+ Pj4+Pj4+Pj4+Pj4+Pj4+PiBjb3VudGVycyBleHBvc2VkIGZvciBkYzUvZGM2IChoZWxwIGZvciBk ZWJ1Z2dpbmcpIHdpbGwgYmUgbnVsbGlmaWVkLgo+Pj4+Pj4+Pj4+Pj4+Pj4gQmFjYXVzZSBvZiB0 aGUgYWJvdmUgcmVhc29uIG1lbnRpb25lZCBqdXN0IGFib3ZlIHdlIG5lZWQgdG8gYmxvY2sgZmly bXdhcmUgbG9hZGluZyBhZ2Fpbi4KPj4+Pj4+Pj4+Pj4+Pj4+IFNvIG9ubHkgV0FSTl9PTiB3aWxs IG5vdCBoZWxwLgo+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+ Pj4+IHYxOiBJbml0aWFsIHZlcnNpb24uCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+ Pj4+IHYyOiBCYXNlZCBvbiByZXZpZXcgY29tbWVudHMgZnJvbSBEYW5pZWwsCj4+Pj4+Pj4+Pj4+ Pj4+Pj4+IC0gQWRkZWQgYSBjaGVjayB0byBrbm93IGhhcmR3YXJlIHN0YXR1cyBhbmQgbG9hZCB0 aGUgZmlybXdhcmUgaWYgbm90IGxvYWRlZC4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+ Pj4+Pj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+Pj4+Pj4+ Pj4+Pj4+Pj4+PiBDYzogRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGludGVsLmNvbT4K Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQ2M6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPj4+ Pj4+Pj4+Pj4+Pj4+Pj4gQ2M6IFN1bmlsIEthbWF0aCA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4K Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5t YW5uYUBpbnRlbC5jb20+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFZhdGhzYWxh IE5hZ2FyYWp1IDx2YXRoc2FsYS5uYWdhcmFqdUBpbnRlbC5jb20+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+ IC0tLQo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5j IHwgOSArKysrKysrKysKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNl cnRpb25zKCspCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Nzci5jCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGluZGV4IGJhMWFlMDMuLjY4MmNjMjYgMTAw NjQ0Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nz ci5jCj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nz ci5jCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IEBAIC0yNTIsNiArMjUyLDE1IEBAIHZvaWQgaW50ZWxfY3Ny X2xvYWRfcHJvZ3JhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAg ICAgICAgICAgICAgIHJldHVybjsKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArICAgICAvKgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgKiBEbWMgd2lsbCByZXN0 b3JlIHRoZSBjc3IgdGhlIHByb2dyYW0gZXhjZXB0IERDOSwgY29sZCBib290LAo+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArICAgICAgKiB3YXJtIHJlc2V0LCBQQ0kgZnVuY3Rpb24gbGV2ZWwgcmVzZXQsIGFu ZCBoaWJlcm5hdGUvc3VzcGVuZC4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgICogVGhpcyBjb25k aXRpb24gd2lsbCBoZWxwIHRvIGNoZWNrIGlmIGNzciBhZGRyZXNzIHNwYWNlIGlzIHJlc2V0Lwo+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgKiBub3QgbG9hZGVkLgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAr ICAgICAgKi8KPj4+Pj4+Pj4+Pj4+Pj4+PiBBdG0gd2UgY2FsbCB0aGlzIGZyb20gZHJpdmVyIGxv YWQgYW5kIHJlc3VtZSwgd2hpY2ggZG9lc24gc2VlbSB0byBjb3Zlcgo+Pj4+Pj4+Pj4+Pj4+Pj4+ IGFsbCB0aGUgY2FzZXMgeW91IG1lbnRpb24gaW4gdGhlIGNvbW1lbnQuIFNob3VsZCB0aGlzIGJl IGEgV0FSTl9PTgo+Pj4+Pj4+Pj4+Pj4+Pj4+IGluc3RlYWQ/IE9yIGRvIHdlIGhhdmUgdHJvdWJs ZXMgaW4gb3VyIGluaXQgc2VxdWVuY2Ugd2hlcmUgd2UgbG9hZCB0b28KPj4+Pj4+Pj4+Pj4+Pj4+ PiBtYW55IHRpbWVzPwo+Pj4+Pj4+Pj4+Pj4+Pj4gWWVzLCB0aGUgYWJvdmUgc3RhdGVtZW50IHRh a2VuIGZyb20gYnNwZWMgdG8gZGVzY3JpYmUgYWJvdXQgdGhlIHNwZWNpYWwgY2FzZXMgZG1jIHdp bGwgbm90IHJlc3RvcmUgdGhlIGZpcm13YXJlLgo+Pj4+Pj4+Pj4+Pj4+Pj4gQWdyZWUsIEluIG91 ciBjYXNlcyBjb2xkIGJvb3QgYW5kIGhpYmVybmF0ZS9zdXNwZW5kIG1haW5seSB3ZSBuZWVkIHRv IGxvYWQgdGhlIGZpcm13YXJlIGFnYWluLCBzbyBpbiBteQo+Pj4+Pj4+Pj4+Pj4+Pj4gc2Vjb25k IHNlbnRlbmNlIEkgd2FudGVkIHRvIGNvbW1lbnQgbWFpbmx5IHJlZ2FyZGluZyB0aGlzIGNvbmRp dGlvbiBjaGVjayBhZGRlZCBmb3Igc3VzcGVuZC1oaWJlcm5hdGUocmVzZXQpCj4+Pj4+Pj4+Pj4+ Pj4+PiBhbmQgY29sZCBib290KG5vdCBsb2FkZWQpLgo+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pj4+Pj4+IEFueXdheXMgdGhlIHNhbWUgYXBpIGxhdGVyIGNhbiBiZSB1c2VkIHRvIGxvYWQgdGhl IGZpcm13YXJlIGZyb20gYW55d2hlcmUsIHNvIG15IGludGVudGlvbiB0byBjaGVjayBmaXJtd2Fy ZSBsb2FkZWQgb3Igbm90Lgo+Pj4+Pj4+Pj4+Pj4+Pj4gSWYgYWxyZWFkeSBsb2FkZWQgdGhlbiBu b3QgdG8gb3ZlcndyaXRlIHRoZSBjc3IgYWRkcmVzcyBzcGFjZSB0byBtYWludGFpbiB0aGUgZGM1 L2RjNiBjb3VudGVyIHZhbHVlLgo+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+IENhbiB0 aGUgYmVsb3cgY29tbWVudCBtb3JlIGNsZWFyIHRvIHlvdS4KPj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4+Pj4+PiAgICAgICAgIC8qCj4+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAqIERtYyB3aWxs IHJlc3RvcmUgdGhlIGNzciB0aGUgcHJvZ3JhbSBleGNlcHQgREM5LCBjb2xkIGJvb3QsCj4+Pj4+ Pj4+Pj4+Pj4+PiAgICAgICAgICAqIHdhcm0gcmVzZXQsIFBDSSBmdW5jdGlvbiBsZXZlbCByZXNl dCwgYW5kIGhpYmVybmF0ZS9zdXNwZW5kLgo+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgKiBJZiBm aXJtd2FyZSBpcyByZXN0b3JlZCBieSBkbWMgdGhlbiBubyBuZWVkIHRvIGxvYWQgYWdhaW4gd2hp Y2gKPj4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAgICogd2lsbCBrZWVwIHRoZSBkYzUvZGM2IGNvdW50 ZXIgZXhwb3NlZCBieSBmaXJtd2FyZS4KPj4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAgICovCj4+Pj4+ Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4gTm8gaXNzdWUgaW4gaW5pdCBzZXF1ZW5jZS4KPj4+ Pj4+Pj4+Pj4+Pj4gVGhhdCBzZWVtcyB0byBzdGlsbCBjb3ZlciBhbGwgdGhlIGNhbGxlcnMgb2Yg dGhlIGZ1bmN0aW9uIGFmYWljcyAtIHdlIGRvCj4+Pj4+Pj4+Pj4+Pj4+IHBjaSByZXNldHMgb3Zl ciBzdXNwZW5kIHJlc3VtZSB1bmNvbmRpdGlvbmFsbHkuIFNvIEkgc3RpbGwgZG9uJ3QKPj4+Pj4+ Pj4+Pj4+Pj4gdW5kZXJzdGFuZCB3aGVyZSBleGFjdGx5IHdlIHRyeSB0byBsb2FkIHRoZSBkbWMg ZmlybXdhcmUgaW4gaTkxNS5rbyB3aGVuCj4+Pj4+Pj4+Pj4+Pj4+IGl0J3MgYWxyZWFkeSBsb2Fk ZWQuCj4+Pj4+Pj4+Pj4+Pj4gRHVyaW5nIHJlc3VtZSBpbnRlbF9jc3JfbG9hZF9wcm9ncmFtKCkg d2lsbCBiZSBjYWxsZWQgZnJvbQo+Pj4+Pj4+Pj4+Pj4+IGludGVsX3J1bnRpbWVfcmVzdW1lKCku Cj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiBpbnRlbF9ydW50aW1lX3Jlc3VtZSgpLT4gc2ts X3Jlc3VtZV9wcmVwYXJlKCktPiBpbnRlbF9jc3JfbG9hZF9wcm9ncmFtKCkKPj4+Pj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4+Pj4+IER1cmluZyBQYzEwIGVudHJ5IHRlc3RpbmcgSSBjYW4gc2VlIGRtYyBp cyByZXN0b3JpbmcgYmFjayB0aGUgZmlybXdhcmUgYWx3YXlzLAo+Pj4+Pj4+Pj4+Pj4+IGJ1dCBh cyB5b3UgbWVudGlvbmVkIHBjaS1yZXNldCBjYW4gaGFwcGVuIHVuY29uZGl0aW9uYWxseSwgYnV0 IHN0aWxsIHRoZW4KPj4+Pj4+Pj4+Pj4+PiBhbHNvIGR1cmluZyByZXN1bWUgaW50ZWxfcnVudGlt ZV9yZXN1bWUoKSB3aWxsIGJlIGNhbGxlZCBhbmQgYmFzZWQgb24KPj4+Pj4+Pj4+Pj4+PiByZWdp c3RlciByZWFkIG9mIGNzci1iYXNlLWFkZHJlc3MgZmlybXdhcmUgbG9hZGluZyB3aWxsIGhhcHBl bi4KPj4+Pj4+Pj4+Pj4+IEJ1dCBpbiB5b3VyIGNvbW1lbnQgeW91J3JlIHNheWluZyBpdCB3b24n dCBnZXQgcmVzdG9yZWQgaW4gY2FzZSBvZiBkYzkgYW5kCj4+Pj4+Pj4+Pj4+PiBzdXNwZW5kLiBT byB0aGF0IHNlZW1zIHRvIG1pc21hdGNoIHdoYXQgeW91J3JlIHNheWluZyBoZXJlIChhbmQgd2hh dCB0aGUKPj4+Pj4+Pj4+Pj4+IGNvbW1pdCBtZXNzYWdlIHNheXMpIGFuZCB3aGF0IHRoZSBjb2Rl IGRvZXMuIEFuZCB0aGlzIGZ1bmN0aW9uIGhlcmUgaXMKPj4+Pj4+Pj4+Pj4+IGNhbGxlZCBmb3Ig cmVzdW1lIGFmdGVyIHN1c3BlbmQvaGliZXJuYXRlIG9ubHkuCj4+Pj4+Pj4+Pj4+IHBjMTAgZW50 cnkgZXhwbGFuYXRpb24gSSB0b2xkIGlzIGZvciBza3lsYWtlLiBkYzkgaW4gc2t5bGFrZSBpcyBu b3QgcG9zc2libGUuCj4+Pj4+Pj4+Pj4+IEkgdGhpbmsgeW91IGFyZSBjb25mdXNpbmcgYmV0d2Vl biBkYzYgYW5kIGRjOS4gUGMxMCBjYW4gYmUgYWNoaWV2ZWQgYnkKPj4+Pj4+Pj4+Pj4gZW50ZXJp bmcgaW50byBkYzYgKG5vdCBkYzkpIGZvciBza3lsYWtlLiBkYzkgaXMgdGhlIGxvd2VzdCBwb3Nz aWJsZSBzdGF0ZQo+Pj4+Pj4+Pj4+PiBmb3IgYnJveHRvbiB3aGljaCBpcyBub3QgcHJlc2VudCBm b3Igc2t5bGFrZS4KPj4+Pj4+Pj4+PiBJIGhhdmUgbm8gaWRlYSBhdCBhbGwgYWJvdXQgZGlmZmVy ZW50IHBjIGxldmVscyBvbiBza2wuIFdoYXQgSSdtIHRhbGtpbmcKPj4+Pj4+Pj4+PiBhYm91dCBp cyBzeXN0ZW0gc3VzcGVuZC9yZXN1bWUgYW5kIGRyaXZlciBsb2FkLCB3aGljaCBhcmUgdGhlIHBs YWNlcyB0aGlzCj4+Pj4+Pj4+Pj4gZnVuY3Rpb24gZ2V0cyBjYWxsZWQuIEF0IGxlYXN0IGFmYWlj cy4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBIZXJlIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0oKSB3 aWxsIGJlIHVzZWQgZm9yIGJvdGggc2t5bGFrZSBhbmQgYnJveHRvbiwgYW5kIGluc3RydWN0aW9u Cj4+Pj4+Pj4+Pj4+IGV4ZWN1dGlvbiBmbG93IHdpbGwgYmUgZGlmZmVyZW50IGluIGNhc2Ugb2Yg c3VzcGVuZC9yZXN1bWUgd2hpY2ggSSB0aGluayBpcyBjb25mdXNpbmcKPj4+Pj4+Pj4+Pj4geW91 Lgo+Pj4+Pj4+Pj4+IFRoYXQgc2VlbXMgbGlrZSByZWFsbHkgaW1wb3J0YW50IGluZm9ybWF0aW9u LiBXaGF0J3MgZGlmZmVyZW50IG9uIGJ4dD8KPj4+Pj4+Pj4+PiBUaGVzZSBhcmUgdGhlIGtpbmQg b2YgZGV0YWlscyB5b3Ugc2hvdWxkIGV4cGxhaW4gaW4gdGhlIGNvbW1pdCBtZXNzYWdlIC4uLgo+ Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IEkgYW0gcmVhZHkgZXhwbGFpbiB5b3UgaW4gZGV0YWlsLiBJ dCB3aWxsIGJlIGdvb2QgaWYgd2UgZGlzY3VzcyBzcGVjaWZpYyB1c2UtY2FzZSBzY2VuYXJpbwo+ Pj4+Pj4+Pj4+PiBhbmQgaXR6IHNvZnR3YXJlIGRlc2lnbiBmb3Igc3BlY2lmaWMgcGxhdGZvcm0u IEFub3RoZXIgcG9pbnQgLSBhcyBkbWMgcmVsYXRlZCBjb2RlIGZvcgo+Pj4+Pj4+Pj4+PiBicm94 dG9uIGlzIG5vdCBtZXJnZWQgYmV0dGVyIGZpcnN0IHdlIGNsb3NlIGRlc2lnbiBmb3Igc2t5bGFr ZS4gTm93LCBJIGhhdmUgYWRkZWQgZGM5Cj4+Pj4+Pj4+Pj4+IGRlc2NyaXB0aW9uIGluIGNvbW1l bnQgdGhpbmtpbmcgb2YgZnV0dXJlLiBJZiB5b3Ugd2FudCBJIGNhbiByZW1vdmUgZm9yIG5vdyBh bmQgbGF0ZXIKPj4+Pj4+Pj4+Pj4gY2FuIGFkZCBpbiBieHQgcGF0Y2ggc2VyaWVzIGZvciBlbmFi bGluZyBkbWMuIFdpbGwgd2FpdCBmb3IgeW91ciByZXBseS4KPj4+Pj4+Pj4+PiBUaGlzIHF1ZXN0 aW9uIGhlcmUgaXNuJ3QgYWJvdXQgdGhlIG92ZXJhbGwgZGVzaWduIGFuZCBob3cgdG8gaGFuZGxl IHBvd2VyCj4+Pj4+Pj4+Pj4gd2VsbHMgaW4gc2tsL2J4dC4gVGhhdCdzIGEgc2VwYXJhdGUgZGlz Y3Vzc2lvbiBhbmQgdHJhY2tlZCBzb21ld2hlcmUgZWxzZS4KPj4+Pj4+Pj4+PiBJJ20gcmVhbGx5 IGp1c3QgY29uZnVzZWQgYWJvdXQgd2hlbiBleGFjdGx5IHdlIG5lZWQgdG8gcmVsb2FkIHRvIGZp cm13YXJlLAo+Pj4+Pj4+Pj4+IGFuZCB3aHkgd2UgbmVlZCBhIHJ1bnRpbWUgY2hlY2sgZm9yIHRo YXQuIE5vcm1hbGx5IHdlIHNob3VsZCBrbm93IHdoZW4gdG8KPj4+Pj4+Pj4+PiByZWxvYWQgdGhl IGZpcm13YXJlIGFuZCBqdXN0IGVpdGhlciByZWxvYWQgb3Igbm90LCB3aXRob3V0IGNoZWNraW5n IGh3Cj4+Pj4+Pj4+Pj4gc3RhdGUuIEFuZCBJIGRvbid0IGxpa2UgY2hlY2tpbmcgZm9yIGh3IHN0 YXRlIHNpbmNlIGF0IGxlYXN0IGluIHRoZSBwYXN0Cj4+Pj4+Pj4+Pj4gdGhhdCBraW5kIG9mIGNv ZGUgZW5kZWQgdXAgYmVpbmcgZnJhZ2lsZSAtIGl0J3MgYW4gaWxsdXNpb24gdGhhdCBpdCBkb2Vz Cj4+Pj4+Pj4+Pj4gdGhlIHJpZ2h0IHRoaW5nIG5vIG1hdHRlciB3aGF0LCBzaW5jZSBvZnRlbiB0 aGVyZSdzIG90aGVyIHRyaWNreSBvcmRlcmluZwo+Pj4+Pj4+Pj4+IGNvbnN0cmFpbnRzLiBBbmQg aWYgeW91IGhhdmUgYXV0b21hdGljIGR1Y3QtdGFwZSBsaWtlIHRoZW4gbm8gb25lIHdpbGwKPj4+ Pj4+Pj4+PiBldmVyIHNwb3QgdGhvc2Ugb3RoZXIsIGhhcmRlciB0byBzcG90IGlzc3VlcywgdW50 aWwgYW4gZXhwZW5zaXZlIGN1c3RvbWVyCj4+Pj4+Pj4+Pj4gZXNjYWxhdGlvbiBoYXBwZW5zLgo+ Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gU28gd2hhdCBJIHdhbnQgdG8ga25vdyBoZXJlIGlzOgo+Pj4+ Pj4+Pj4+IC0gV2hlbiBleGFjdGx5IGRvIHdlIG5lZWQgdG8gcmVsb2FkIGRtYyBmaXJtd2FyZS4K Pj4+Pj4+Pj4+IEluIHNrbCwgZHVyaW5nIGRyaXZlciBsb2FkIGZpcnN0IHRpbWUgd2UgbG9hZCB0 aGUgZmlybXdhcmUsIGR1cmluZyBub3JtYWwKPj4+Pj4+Pj4+IHN1c3BlbmQtcmVzdW1lIChkYzYg ZW50cnkvZXhpdCkKPj4+Pj4+Pj4+IG5vIG5lZWQgdG8gcmVsb2FkIHRoZSBmaXJtd2FyZSBhZ2Fp biBhcyBkbWMgd2lsbCB0YWtlIGNhcmUgb2YgaXQuIEJ1dCBkdXJpbmcKPj4+Pj4+Pj4+IHN1c3Bl bmQvaGliZXJuYXRpb24KPj4+Pj4+Pj4+IGRtYyB3aWxsIG5vdCByZXN0b3JlIHRoZSBmaXJtd2Fy ZS4gSW4gdGhhdCBjYXNlIGRyaXZlciBuZWVkIHRvIHJlbG9hZCBpdAo+Pj4+Pj4+Pj4gYWdhaW4u IEkgZG8gbm90IGtub3cKPj4+Pj4+Pj4+IGhvdyB0byBkaWZmZXJlbnRpYXRlIHBtLXN1c3BlbmQg YW5kIHN1c3BlbmQtaGliZXJuYXRpb24gYW5kIHRob3VnaHQgYm90aCB0aGUKPj4+Pj4+Pj4+IGNh c2VzCj4+Pj4+Pj4+PiBpbnRlbF9ydW50aW1lX3Jlc3VtZSgpIHdpbGwgYmUgY2FsbGVkIHdoZXJl IHdlIGNhbiBjaGVjayB0aGUgaC93IHN0YXRlIGFuZAo+Pj4+Pj4+Pj4gcmVsb2FkIHRoZQo+Pj4+ Pj4+Pj4gZmlybXdhcmUgaWYgZG1jIGlzIG5vdCByZXN0b3JlZC4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ PiBJbiBieHQsIGR1cmluZyBkcml2ZXIgbG9hZCBmaXJzdCB0aW1lIHdlIGxvYWQgdGhlIGZpcm13 YXJlLCBkdXJpbmcgbm9ybWFsCj4+Pj4+Pj4+PiBzdXNwZW5kLXJlc3VtZQo+Pj4+Pj4+Pj4gZGlz cGxheSBlbmdpbmUgd2lsbCBlbnRlciBpbnRvIGRjOSBhbmQgZG1jIHdpbGwgbm90IHJlc3RvcmUg dGhlIGZpcm13YXJlLiBTbwo+Pj4+Pj4+Pj4gZXZlcnkKPj4+Pj4+Pj4+IHN1c3BlbmQtcmVzdW1l IHdlIG5lZWQgdG8gcmVsb2FkIHRoZSBmaXJtd2FyZS4KPj4+Pj4+Pj4+PiAtIFdoYXQgZXhhY3Rs eSBpcyB0aGUgcmVhc29uIHdoeSB3ZSBjYW4ndCBtYWtlIHRoYXQgZGVjaXNpb24gc3RhdGljYWxs eSBpbgo+Pj4+Pj4+Pj4+ICAgIHRoZSBjb2RlIChieSBjYWxsaW5nIGNzcl9sb2FkIGF0IHRoZSBy aWdodCBzcG90cykuCj4+Pj4+Pj4+PiBBcyBJIG1lbnRpb25lZCBiZWZvcmUgaW4gY2FzZSBvZiBz a3lsYWtlIGNhbiB3ZSBkaWZmZXJlbnRpYXRlIGJldHdlZW4KPj4+Pj4+Pj4+ICJyZXN1bWUgZnJv bSBwbS1zdXNwZW5kIiB3aXRoICJyZXN1bWUgZnJvbSBzdXNwZW5kLWhpYmVybmF0aW9uIiBpbnNp ZGUKPj4+Pj4+Pj4+IGRyaXZlcj8KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJbiBjYXNlIG9mIGJyb3h0 b24sIGV2ZXJ5IHRpbWUgd2UgbmVlZCB0byByZWxvYWQsIHNvIHdlIGNhbiBkZWNpZGUKPj4+Pj4+ Pj4+IHN0YXRpY2FsbHkuCj4+Pj4+Pj4+IE9mIGNvdXJzZSB3ZSBjYW4gZGlmZmVyZW50aWF0ZSBi ZXR3ZWVuIGFsbCB0aGUgZGlmZmVyZW50IHJlc3VtZSBwYXRocywgYW5kCj4+Pj4+Pj4+IHdlIGFs c28gaGF2ZSBhIHBlci1wbGF0Zm9ybSBzcGxpdCB0byB0YWtlIGNhcmUgb2YgYnh0IHZzLiBza2wu IEFuZCB0aGVyZQo+Pj4+Pj4+PiBhcmUgYWN0dWFsbHkgMyBkaWZmZXJlbnQgcmVzdW1lIHBhdGhz Ogo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAtIHJ1bnRpbWUgUE0gcmVzdW1lLiBUaGlzIGNhbGxzIHRoZSBy dW50aW1lX3Jlc3VtZSBob29rLiBJdCBzb3VuZHMgbGlrZSBvbgo+Pj4+Pj4+PiAgICBza2wgd2Ug c2hvdWxkIF9ub3RfIGxvYWQgdGhlIGNzciBmaXJtd2FyZSwgYnV0IG9uIGJ4dCB3ZSBzaG91bGQg bG9hZCBpdC4KPj4+Pj4+Pj4gICAgVGhpcyBjYW4gYmUgZml4ZWQgYnkgcmVtb3ZpbmcgdGhlIGlu dGVsX2Nzcl9sb2FkX3Byb2dyYW0gY2FsbCBmcm9tCj4+Pj4+Pj4+ICAgIHNrbF9yZXN1bWVfcHJl cGFyZS4KPj4+Pj4+Pj4gLSByZXN1bWUgZnJvbSBoaWJlcm5hdGUtdG8tZGlzayAoaS5lLiBzeXN0 ZW0gY29tcGxldGVseSBvZmYsIHN0YXRlIHN0b3JlZAo+Pj4+Pj4+PiAgICBvbiB0aGUgc3dhcCBw YXJ0aXRpb24pIGlzIGRvbmUgYnkgY2FsbGluZyB0aGUgdGhhdyBjYWxsYmFja3MuCj4+Pj4+Pj4+ IC0gcmVzdW1lIGZyb20gc3VzcGVuZC10by1tZW0gKGkuZS4gc3lzdGVtIGluIGxvdy1wb3dlciB3 aXRoIG9ubHkgbWVtb3J5Cj4+Pj4+Pj4+ICAgIGluIHNlbGYtcmVmcmVzaCwgYWxsIHN0YXRlIHN0 b3JlZCBpbiBtZW1vcnkpIGlzIGRvbmUgYnkgY2FsbGluZyB0aGUKPj4+Pj4+Pj4gICAgcmVzdW1l IGNhbGxiYWNrcy4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gRm9yIGk5MTUgd2UgdXNlIHVuaWZpZWQgaGFu ZGxlcnMgaW4gb3VyIGRldl9wbV9vcHMgZm9yIGJvdGggdGhhdyBhbmQKPj4+Pj4+Pj4gcmVzdW1l LCBidXQgaXQgc291bmRzIGxpa2UgdGhhdCB3b24ndCBiZSBhIHByb2JsZW0gZm9yIHNrbC9ieHQg c2luY2Ugd2UKPj4+Pj4+Pj4gbmVlZCB0byByZWxvYWQgdGhlIGNzciBmaXJtd2FyZSBpbiBhbGwg Y2FzZXMuIEFsdGhvdWdoIEknbSBub3QgcGVyZmVjdGx5Cj4+Pj4+Pj4+IHN1cmUgc2luY2UgeW91 IGRvbid0IGV4cGxhaW4gd2hhdCBraW5kIG9mIHJlc3VtZSB5b3UgbWVhbiBleGFjdGx5IChzaW5j ZQo+Pj4+Pj4+PiB5b3UgZG9uJ3QgdXNlIHRoZSBsaW51eCBuYW1lcyBmb3IgdGhlbSkuCj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IEFueXdheSBpdCBzb3VuZHMgbGlrZSB3ZSBjYW4gcmVwbGFjZSB0aGlzIHBh dGNoIGJ5IG9uZSB3aGVyZSB3ZSByZW1vdmUKPj4+Pj4+Pj4gdGhhdCBlcnJvcm5vdXMgY3NyIGxv YWQgY2FsbCBmcm9tIHNrbCBydW50aW1lIHBtIHJlc3VtZSBhbmQgdGhhdCdzIGFsbC4KPj4+Pj4+ Pj4gQnV0IEkgc3VnZ2VzdCB0byBtYWtlIHN1cmUgd2UgZ2V0IHRoaXMgcmlnaHQgd2Uga2VlcCB0 aGUgY2hlY2sgeW91J3JlCj4+Pj4+Pj4+IGFkZGluZyBoZXJlLCBidXQgd3JhcCBpdCBpbiBhIFdB Uk5fT04uIFRoZW4gd2UnbGwgZ2V0IGEgYmFja3RyYWNlIHdoZW4KPj4+Pj4+Pj4gdGhpcyBpcyBn b2luZyB3cm9uZyBhZ2Fpbi4gTGlrZSB0aGlzOgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAgICAgICAgICBp ZiAoV0FSTl9PTihjc3JfbG9hZGVkX2FscmVhZHkoKSkpCj4+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgcmV0dXJuOwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBbHNvIHdoZW4gcmVkb2luZyB0aGUgY29tbWl0 cyBwbGVhc2UgZXhwbGFpbiBpbiBkZXRhaWwgd2hhdCBleGFjdGx5IGFyZQo+Pj4+Pj4+PiB0aGUg cmVxdWlyZW1lbnRzIGxpa2UgeW91J3ZlIGRvbmUgYWJvdmUsIGJ1dCBwbGVhc2UgdXNlIHRoZSBz dGFuZGFyZCBsaW51eAo+Pj4+Pj4+PiBuYW1lcywgaS5lLiAicnVudGltZSBQTSIgYW5kICJoaWJl cm5hdGUtdG8tZGlzayIgYW5kICJzdXNwZW5kLXRvLW1lbSIuCj4+Pj4+Pj4gT2sgaG9vcmF5IHRo ZXJlJ3MgbW9yZSBzdXNwZW5kLXRvLXNvbWV0aGluZyB0aGluZ3MgSSd2ZSB0b3RhbGx5IG1pc3Nl ZDoKPj4+Pj4+PiAtIHN1c3BlbmQtdG8taWRsZSAoZG9uZSBieSBjYXQgZnJlZXplID4gL3N5cy9w b3dlci9zdGF0ZSkgYW5kCj4+Pj4+Pj4gLSBzdXNwZW5kIChkb25lIGJ5IGNhdCBzdXNwZW5kID4g L3N5cy9wb3dlci9zdGF0ZSkKPj4+Pj4+Pgo+Pj4+Pj4+IEFuZCBhcHBhcmVudGx5IHRoZXJlJ3Mg cmVhbGx5IG5vIHdheSB0byBkcml2ZXJzIHRvIHRlbGwgdGhlbSBhcGFydC4KPj4+Pj4+PiBSYWZh ZWwsIGlzIHRoZXJlIHJlYWxseSBubyB3YXkgZm9yIGRyaXZlcnMgdG8gdGFrZSBkaWZmZXJlbnQg cGF0aHMgZm9yCj4+Pj4+Pj4gdGhlc2UgMyBzdXNwZW5kIGNhc2VzPyBJIHRyaWVkIGdyZXBwaW5n IGZvciBQTV9TVVNQRU5EX09OL1NUQU5EWS9NRU0KPj4+Pj4+PiBhbmQgZGlkbid0IHNwb3QgYW55 dGhpbmcuCj4+Pj4+Pj4KPj4+Pj4+PiBBbHNvIHdlJ3JlIGNvbXBsZXRlbHkgbWlzc2luZyB0ZXN0 IGNvdmVyYWdlIGZvciB0aGF0IGluIGlndC4gVGhhdCBpcwo+Pj4+Pj4+IHNvbWV0aGluZyB0aGF0 IG5lZWRzIHRvIGJlIGZpeGVkIGFzYXAgKHlldCBhbm90aGVyIGNhc2Ugb2YKPj4+Pj4+PiBjb21i aW5hdG9yaWFsIGV4cGxvc2lvbiBpbiBpZ3QgdGVzdHMsIHlheSkuIEFuZCBhdCBsZWFzdCBvbmUg b2YgdGhvc2UKPj4+Pj4+PiBzdXNwZW5kLXRvLWlkbGUgdGVzdGNhc2UgYmV0dGVyIGJlIGluIHRo ZSBCQVQuCj4+Pj4+Pj4gLURhbmllbAo+Pj4+Pj4+IC0tCj4+Pj4+Pj4gRGFuaWVsIFZldHRlcgo+ Pj4+Pj4+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+Pj4+Pj4+ICs0MSAo MCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPj4+Pj4+IC0tCj4+Pj4+PiBE YW5pZWwgVmV0dGVyCj4+Pj4+PiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24K Pj4+Pj4+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==