From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [RFC PATCH xserver] modesetting: re-set the crtc's mode when link-status goes BAD Date: Fri, 24 Feb 2017 12:09:51 -0800 Message-ID: <20170224200951.GA3882@intel.com> References: <20170126123728.5680-1-martin.peres@linux.intel.com> <87tw8fxa22.fsf@eliezer.anholt.net> <87poj21b42.fsf@intel.com> <87efzhr8dj.fsf@eliezer.anholt.net> <20170201200512.GC21934@intel.com> <32b846ee-69c5-1dea-eed4-1bc41bb2958f@free.fr> <20170203080451.vrbmoaioqjyd3hhc@phenom.ffwll.local> <4f8317ff-53e8-4c2d-effa-d074b11b15e6@free.fr> <069473c6-d75e-48eb-e75d-4e65e201b4fb@linux.intel.com> <87k28tkdiq.fsf@eliezer.anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id D30086ED12 for ; Fri, 24 Feb 2017 20:05:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87k28tkdiq.fsf@eliezer.anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel@ffwll.ch Cc: xorg-devel@lists.x.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgRGFuaWVsLAoKV2UgaGF2ZSBBQ0tzIG9uIHRoZSB1c2Vyc3BhY2UgZGVzaWduIGZyb20gYm90 aCBBZGFtcyBhbmQgRXJpYy4KSXMgdGhpcyBlbm91Z2ggdG8gbWVyZ2UgdGhlIGtlcm5lbCBwYXRj aGVzPwoKSSBzcG9rZSB0byBFcmljIGJyaWVmbHkgYWJvdXQgdGhpcyBhbmQgaGUgZ2F2ZSBtZSBh IHZlcmJhbCByLWIgYXMgd2VsbC4KSGUgc2FpZCB0aGUgdXNlcnNwYWNlIHBhdGNoZXMgY2FudCBn ZXQgbWVyZ2VkIHVubGVzcyBEUk0gcGF0Y2hlcyBhcmUgbWVyZ2VkLgoKU28gd2hhdCBzaG91bGQg YmUgc29tZSBvZiBvdXIgbmV4dCBzdGVwcyBoZXJlPwoKUmVnYXJkcwpNYW5hc2kKCgpPbiBNb24s IEZlYiAxMywgMjAxNyBhdCAwMTowNToxN1BNIC0wODAwLCBFcmljIEFuaG9sdCB3cm90ZToKPiBN YXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BsaW51eC5pbnRlbC5jb20+IHdyaXRlczoKPiAKPiA+ IE9uIDA2LzAyLzE3IDE3OjUwLCBNYXJ0aW4gUGVyZXMgd3JvdGU6Cj4gPj4gT24gMDMvMDIvMTcg MTA6MDQsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPj4+IE9uIEZyaSwgRmViIDAzLCAyMDE3IGF0 IDAxOjMwOjE0QU0gKzAyMDAsIE1hcnRpbiBQZXJlcyB3cm90ZToKPiA+Pj4+IE9uIDAxLzAyLzE3 IDIyOjA1LCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4+Pj4+IE9uIFdlZCwgRmViIDAxLCAyMDE3 IGF0IDExOjU4OjE2QU0gLTA4MDAsIEVyaWMgQW5ob2x0IHdyb3RlOgo+ID4+Pj4+PiBKYW5pIE5p a3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPiB3cml0ZXM6Cj4gPj4+Pj4+Cj4gPj4+ Pj4+PiBPbiBUdWUsIDMxIEphbiAyMDE3LCBFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0PiB3 cm90ZToKPiA+Pj4+Pj4+PiBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BsaW51eC5pbnRlbC5j b20+IHdyaXRlczoKPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBEZXNwaXRlIGFsbCB0aGUgY2FyZWZ1 bCBwbGFuaW5nIG9mIHRoZSBrZXJuZWwsIGEgbGluayBtYXkgYmVjb21lCj4gPj4+Pj4+Pj4+IGlu c3VmZmljaWVudCB0byBoYW5kbGUgdGhlIGN1cnJlbnRseS1zZXQgbW9kZS4gQXQgdGhpcyBwb2lu dCwgdGhlCj4gPj4+Pj4+Pj4+IGtlcm5lbCBzaG91bGQgbWFyayB0aGlzIHBhcnRpY3VsYXIgY29u ZmlndXJhdGlvbiBhcyBiZWluZyBicm9rZW4KPiA+Pj4+Pj4+Pj4gYW5kIHBvdGVudGlhbGx5IHBy dW5lIHRoZSBtb2RlIGJlZm9yZSBzZXR0aW5nIHRoZSBvZmZlbmRpbmcKPiA+Pj4+Pj4+Pj4gY29u bmVjdG9yJ3MKPiA+Pj4+Pj4+Pj4gbGluay1zdGF0dXMgdG8gQkFEIGFuZCBzZW5kIHRoZSB1c2Vy c3BhY2UgYSBob3RwbHVnIGV2ZW50LiBUaGlzIG1heQo+ID4+Pj4+Pj4+PiBoYXBwZW4gcmlnaHQg YWZ0ZXIgYSBtb2Rlc2V0IG9yIGxhdGVyIG9uLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBXaGVu IGF2YWlsYWJsZSwgd2Ugc2hvdWxkIHVzZSB0aGUgbGluay1zdGF0dXMgaW5mb3JtYXRpb24gdG8g cmVzZXQKPiA+Pj4+Pj4+Pj4gdGhlIHdhbnRlZCBtb2RlLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ PiBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BsaW51eC5pbnRlbC5j b20+Cj4gPj4+Pj4+Pj4gSWYgSSB1bmRlcnN0YW5kIHRoaXMgcmlnaHQsIHRoZXJlIGFyZSB0d28g ZmFpbHVyZSBtb2RlcyBiZWluZwo+ID4+Pj4+Pj4+IGhhbmRsZWQ6Cj4gPj4+Pj4+Pj4KPiA+Pj4+ Pj4+PiAxKSBBIG1vZGUgdGhhdCB3b24ndCBhY3R1YWxseSB3b3JrIGJlY2F1c2UgdGhlIGxpbmsg aXNuJ3QgZ29vZAo+ID4+Pj4+Pj4+IGVub3VnaC4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IDIpIEEg bW9kZSB0aGF0IHNob3VsZCB3b3JrLCBidXQgbGluayBwYXJhbWV0ZXJzIHdlcmUgdG9vCj4gPj4+ Pj4+Pj4gb3B0aW1pc3RpYyBhbmQKPiA+Pj4+Pj4+PiBpZiB3ZSBqdXN0IGFzayB0aGUga2VybmVs IHRvIHNldCB0aGUgbW9kZSBhZ2FpbiBpdCdsbCB1c2UgbW9yZQo+ID4+Pj4+Pj4+IGNvbnNlcnZh dGl2ZSBwYXJhbWV0ZXJzIHRoYXQgd29yay4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IFRoaXMgcGF0 Y2ggc2VlbXMgZ29vZCBmb3IgMikuICBGb3IgMSksIHRoZSBkcm1tb2RlX3NldF9tb2RlX21ham9y IGlzCj4gPj4+Pj4+Pj4gZ29pbmcgdG8gc2V0IG91ciBvbGQgbW9kZSBiYWNrLiAgV29uJ3QgdGhl IG1vZGVzZXQgdGhlbiBmYWlsIHRvIGxpbmsKPiA+Pj4+Pj4+PiB0cmFpbiBhZ2FpbiwgYW5kIGJy aW5nIHVzIGJhY2sgaW50byB0aGlzIGxvb3A/ICBUaGUgb25seSBlc2NhcGUKPiA+Pj4+Pj4+PiB0 aGF0IEkKPiA+Pj4+Pj4+PiBzZWUgd291bGQgYmUgc29tZSBvdGhlciB1c2Vyc3BhY2UgcmVzcG9u ZGluZyB0byB0aGUgYWR2ZXJ0aXNlZAo+ID4+Pj4+Pj4+IG1vZGUgbGlzdAo+ID4+Pj4+Pj4+IGNo YW5naW5nLCBhbmQgdGhlbiBhc2tpbmcgWCB0byBtb2Rlc2V0IHRvIHNvbWV0aGluZyBuZXcuCj4g Pj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBUbyBhdm9pZCB0aGF0IGZhaWx1cmUgYnVzeSBsb29wLCBzaG91 bGQgd2UgcmUtZmV0Y2hpbmcgbW9kZXMgYXQgdGhpcwo+ID4+Pj4+Pj4+IHBvaW50LCBhbmQgb25s eSByZS1zZXR0aW5nIGlmIG91ciBtb2RlIHN0aWxsIGV4aXN0cz8KPiA+Pj4+Pj4+IERpc2NsYWlt ZXI6IEkgZG9uJ3Qga25vdyBhbnl0aGluZyBhYm91dCB0aGUgaW50ZXJuYWxzIG9mIHRoZQo+ID4+ Pj4+Pj4gbW9kZXNldHRpbmcKPiA+Pj4+Pj4+IGRyaXZlci4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBQ ZXJoYXBzIHdlIGNhbiBpZGVudGlmeSB0aGUgdHdvIGNhc2VzIG5vdywgYnV0IEknZCBwdXQgdGhp cyBtb3JlCj4gPj4+Pj4+PiBnZW5lcmFsbHk6IGlmIHRoZSBsaW5rIHN0YXR1cyBoYXMgZ29uZSBi YWQsIGl0J3MgYW4gaW5kaWNhdG9yIHRvCj4gPj4+Pj4+PiB1c2Vyc3BhY2UgdGhhdCB0aGUgY2ly Y3Vtc3RhbmNlcyBtYXkgaGF2ZSBjaGFuZ2VkLCBhbmQgdXNlcnNwYWNlCj4gPj4+Pj4+PiBzaG91 bGQKPiA+Pj4+Pj4+IHF1ZXJ5IHRoZSBrZXJuZWwgZm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBt b2RlcyBhZ2Fpbi4gSXQgc2hvdWxkIG5vCj4gPj4+Pj4+PiBsb25nZXIgdHJ1c3QgaW5mb3JtYXRp b24gb2J0YWluZWQgcHJpb3IgdG8gZ2V0dGluZyB0aGUgYmFkIGxpbmsKPiA+Pj4+Pj4+IHN0YXR1 cywKPiA+Pj4+Pj4+IGluY2x1ZGluZyB0aGUgY3VycmVudCBtb2RlLgo+ID4+Pj4+Pj4KPiA+Pj4+ Pj4+IEJ1dCBzcGVjaWZpY2FsbHksIEkgdGhpbmsgeW91J3JlIHJpZ2h0LCBhbmQgQUZBSUNUIGFz a2luZyBmb3IgdGhlCj4gPj4+Pj4+PiBsaXN0Cj4gPj4+Pj4+PiBvZiBtb2RlcyBhZ2FpbiBpcyB0 aGUgb25seSB3YXkgZm9yIHRoZSB1c2Vyc3BhY2UgdG8gZGlzdGluZ3Vpc2gKPiA+Pj4+Pj4+IGJl dHdlZW4KPiA+Pj4+Pj4+IHRoZSB0d28gY2FzZXMuIEkgZG9uJ3QgdGhpbmsgdGhlcmUncyBhIHNo b3J0Y3V0IGZvciBkZWNpZGluZyB0aGUKPiA+Pj4+Pj4+IGN1cnJlbnQKPiA+Pj4+Pj4+IG1vZGUg aXMgc3RpbGwgdmFsaWQuCj4gPj4+Pj4+IFRvIGF2b2lkIHRoZSBidXN5LWxvb3AgcHJvYmxlbSwg SSB0aGluayBJJ2QgbGlrZSB0aGlzIHBhdGNoIHRvCj4gPj4+Pj4+IHJlLXF1ZXJ5Cj4gPj4+Pj4+ IHRoZSBrZXJuZWwgdG8gYXNrIGFib3V0IHRoZSBjdXJyZW50IG1vZGUgbGlzdCwgYW5kIG9ubHkg dHJ5IHRvIHJlLXNldAo+ID4+Pj4+PiB0aGUgbW9kZSBpZiBvdXIgbW9kZSBpcyBzdGlsbCB0aGVy ZS4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gSWYgdGhlIG1vZGUgaXNuJ3QgdGhlcmUsIHRoZW4gaXQncyB1 cCB0byB0aGUgREUgdG8gdGFrZSBhY3Rpb24gaW4KPiA+Pj4+Pj4gcmVzcG9uc2UgdG8gdGhlIG5v dGlmaWNhdGlvbiBvZiBuZXcgbW9kZXMuICBJZiB5b3UgZG9uJ3QgaGF2ZSBhIERFIHRvCj4gPj4+ Pj4+IHRha2UgYXBwcm9wcmlhdGUgYWN0aW9uLCB5b3UncmUga2luZCBvZiBvdXQgb2YgbHVjay4K PiA+Pj4+Pj4KPiA+Pj4+Pj4gQXMgZmFyIGFzIHRoZSBBQkkgZ29lcywgdGhpcyBzZWVtcyBmaW5l IHRvIG1lLiAgVGhlIG9ubHkgY29uY2VybiBJIGhhZAo+ID4+Pj4+PiBhYm91dCBBQkkgd2FzIGhh dmluZyB0byB3YWxrIGFsbCB0aGUgY29ubmVjdG9ycyBvbiBldmVyeSB1ZXZlbnQgdG8gc2VlCj4g Pj4+Pj4+IGlmIGFueSBoYWQgZ29uZSBiYWQgLS0gY291bGRuJ3Qgd2UgaGF2ZSBhIGZsYWcgb2Yg c29tZSBzb3J0IGFib3V0IHdoYXQKPiA+Pj4+Pj4gdGhlIHVldmVudCBpbmRpY2F0ZXM/ICBCdXQg dWV2ZW50cyBzaG91bGQgYmUgc3VwZXIgcmFyZSwgc28gSSdkIHNheQo+ID4+Pj4+PiB0aGUKPiA+ Pj4+Pj4ga2VybmVsIGNvdWxkIGdvIGFoZWFkIHdpdGggdGhlIGN1cnJlbnQgcGxhbi4KPiA+Pj4+ PiBZZXMgSSBhZ3JlZS4gVGhlIGtlcm5lbCBzZXRzIHRoZSBsaW5rIHN0YXR1cyBCQUQgYXMgc29v bmEgcyBsaW5rCj4gPj4+Pj4gdHJhaW5pbmcgZmFpbHMKPiA+Pj4+PiBidXQgZG9lcyBub3QgcHJ1 bmUgdGhlIG1vZGVzIHVudGlsIGEgbmV3IG1vZGVsaXN0IGlzIHJlcXVlc3RlZCBieQo+ID4+Pj4+ IHRoZSB1c2Vyc3BhY2UuCj4gPj4+Pj4gU28gdGhpcyBwYXRjaCBzaG91bGQgcmUgcXVlcnkgdGhl IG1vZGUgbGlzdCBhcyBzb29uIGFzIGl0IHNlZXMgdGhlCj4gPj4+Pj4gbGluayBzdGF0dXMKPiA+ Pj4+PiBCQUQgaW4gb3JkZXIgZm9yIHRoZSBrZXJuZWwgdG8gdmFsaWRhdGUgdGhlIG1vZGVzIGFn YWluIGJhc2VkIG9uIG5ldwo+ID4+Pj4+IGxpbmsKPiA+Pj4+PiBwYWFybWV0ZXJzIGFuZCBzZW5k IGEgbmV3IG1vZGUgbGlzdCBiYWNrLgo+ID4+Pj4gU2VlbXMgbGlrZSBhIGJhZCBiZWhhdmlvdXIg ZnJvbSB0aGUga2VybmVsLCBpc24ndCBpdD8gSXQgc2hvdWxkIHJldHVybgo+ID4+Pj4gaW1tZWRp YXRseQo+ID4+Pj4gaWYgdGhlIG1vZGUgaXMgZ29ubmEgYmUgcHJ1bmVkIDpzCj4gPj4+IFRoZSBt b2RlIGxpc3QgcHJ1bmluZyBpc24ndCByZWxldmFudCBmb3IgbW9kZWVzZXRzLCB0aGUga2VybmVs IGRvZXNuJ3QKPiA+Pj4gdmFsaWRhdGUgcmVxdWVzdGVkIG1vZGVzIGFnYWluc3QgdGhhdC4gVGhl IG1vZGUgbGlzdCBpcyBwdXJlbHkgZm9yCj4gPj4+IHVzZXJzcGFjZSdzIGluZm9ybWF0aW9uLiBX aGljaCBtZWFucyB1cGRhdGluZyBpdCBvbmx5IHdoZW4gdXNlcnNwYWNlIGFza3MKPiA+Pj4gZm9y IGl0IGlzIGZpbmUuCj4gPj4KPiA+PiBIbW0sIG9rLiBGYWlyIGVub3VnaCEKPiA+Pgo+ID4+PiBJ IGFsc28gdGhvdWdodCBzb21lIG1vcmUgYWJvdXQgdGhlIGxvb3Agd2hlbiB3ZSdyZSBzdHVjayBv biBCQUQsIGFuZCBJCj4gPj4+IHRoaW5rIGl0IHNob3VsZG4ndCBoYXBwZW46IFdoZW4gdGhlIGxp bmsgZ29lcyBCQUQgd2UgdXBkYXRlIHRoZSBsaW5rCj4gPj4+IHBhcmFtZXRlciB2YWx1ZXMgdG8g dGhlIG5ldyBsaW1pdHMsIGFuZCB0aGUga2VybmVsIHdpbGwgcmVqZWN0IGFueSBtb2RlCj4gPj4+ IHRoYXQgd29uJ3QgZml0IGFueW1vcmUuIE9mIGNvdXJzZSB5b3UgbWlnaHQgYmUgdW5sdWNreSwg YW5kIHRoZSBuZXcgbGluawo+ID4+PiBsaW1pdHMgYXJlIGFsc28gbm90IHdvcmtpbmcsIGJ1dCBl dmVudHVhbGx5IHlvdSdyZSBzdHVjayBhdCB0aGUgInlvdSdyZQo+ID4+PiBsaW5rIGlzIGJyb2tl biwgc3J5IiBzdGFnZSwgd2hlcmUgdGhlIGtlcm5lbCByZWplY3RzIGV2ZXJ5dGhpbmcgOi0pCj4g Pj4+Cj4gPj4+IFNvIEkgdGhpbmsgdGhlIGJ1c3ktbG9vcCBoYXMgc3RyaWN0bHkgYSBsaW1pdGVk IGFtb3VudCBvZiB0aW1lIHVudGlsIGl0Cj4gPj4+IHJ1bnMgb3V0IG9mIHN0ZWFtLgo+ID4+Cj4g Pj4gT0ssIEkgaGF2ZSBnaXZlbiBpdCBtb3JlIHRob3VnaHRzIGFuZCBkaXNjdXNzZWQgd2l0aCBW aWxsZSBhbmQgQ2hyaXMgSVJMIG9yCj4gPj4gb24gSVJDLgo+ID4+Cj4gPj4gTXkgY3VycmVudCBw cm9wb3NhbCBpcyBiYXNlZCBvbiB0aGUgaWRlYSB0aGF0IHRoZSBrZXJuZWwgc2hvdWxkIHJlamVj dCBhCj4gPj4gbW9kZQo+ID4+IGl0IGtub3dzIGl0IGNhbm5vdCBzZXQuIFRoaXMgaXMgYWxyZWFk eSBsYXJnZWx5IHRlc3RlZCBpbiByZWFsIGxpZmU6IFRyeQo+ID4+IHNldHRpbmcgNEtANjBIeiBv biBhbiBIRE1JIDEueCBtb25pdG9yLCBpdCBzaG91bGQgaW1tZWRpYXRlbHkgZmFpbCBvbgo+ID4+ IHByZXBhcmUoKS4gRm9yIHRoaXMgcHJvcG9zYWwgdG8gd29yaywgd2Ugd291bGQgbmVlZCB0byBw dXQgaW4gdGhlIEFCSQo+ID4+IHRoYXQgYQo+ID4+IGRyaXZlciB0aGF0IHNldHMgdGhlIGxpbmst c3RhdHVzIHRvIEJBRCBzaG91bGQgYWxzbyBtYWtlIHN1cmUgdGhhdCB3aGF0ZXZlcgo+ID4+IHRo ZSB1c2Vyc3BhY2UgZG9lcywgbm8gaW5maW5pdGUgbG9vcCBzaG91bGQgYmUgY3JlYXRlZCAoYnkg Y2hhbmdpbmcgdGhlCj4gPj4gbWF4aW11bSBsaW5rIGNoYXJhY3RlcmlzdGljcyBiZWZvcmUgc2V0 dGluZyB0aGUgbGluay1zdGF0dXMgcHJvcGVydHkpLgo+ID4+Cj4gPj4gUmUtcHJvYmluZyB0aGUg bGlzdCBvZiBtb2RlcyBhbmQgY2hlY2tpbmcgaWYgdGhlIG1vZGUgaXMgc3RpbGwgaW4gdGhlcmUg aXMKPiA+PiBpbmhlcmVudGx5IHJhY3ksIGFzIGEgbmV3IHNjcmVlbiBtYXkgYmUgcGx1Z2dlZCBi ZXR3ZWVuIHRoZSBtb21lbnQgdGhlIGxpc3QKPiA+PiBpcyBzZW50IHRvIHRoZSB1c2Vyc3BhY2Ug YW5kIHRoZSBtb21lbnQgd2hlbiB3ZSB0cnkgc2V0dGluZyB0aGUgbW9kZS4gT3IKPiA+PiB0aGUK PiA+PiBERSBtYXkgYWxzbyBoYXZlIGNoYW5nZWQgdGhlIG1vZGUgaW4gdGhlIG1lYW4gdGltZSBh bmQgdGhlIGtlcm5lbCB3b3VsZAo+ID4+IGhhdmUgcmVkdWNlZCB0aGUgbGltaXRzIGV2ZW4gbW9y ZS4gU28sIHRoZSB1c2Vyc3BhY2UgY2Fubm90IGJlIGV4cGVjdGVkIHRvCj4gPj4gYWx3YXlzIGRv IHRoZSByaWdodCB0aGluZyBoZXJlIDpzLgo+ID4+Cj4gPj4gRnJvbSB0aGlzIHBvaW50IG9mIHZp ZXcsIEkgcmVhbGx5IGRvIG5vdCBsaWtlIHRoZSBpZGVhIG9mIHJlLXByb2JpbmcsIHNpbmNlCj4g Pj4gaXQgaW5jcmVhc2VzIHRoZSBkZWxheSBiZWZvcmUgdGhlIERFIGNhbiBoYW5kbGUgdGhlIGNo YW5nZSBhbmQgaXQgZG9lcyBub3QKPiA+PiBicmluZyBhbnkgZ3VhcmFudGVlIG9mIHdvcmtpbmcg cHJvcGVybHkuCj4gPj4KPiA+PiBEaWQgSSBtaXNzIGFueXRoaW5nPyBBbnkgb3BpbmlvbnM/Cj4g Pgo+ID4gQW55IGNvbW1lbnRzIG9uIHRoaXMsIEVyaWM/IERvZXMgaXQgc291bmQgbG9naWNhbCB0 byB5b3Ugb3IgZGlkIEkgbWlzcyAKPiA+IHNvbWV0aGluZz8KPiA+Cj4gPiBUaGUga2VybmVsIHBh dGNoZXMgYXJlIHN0dWNrIHVudGlsIHRoaXMgcGF0Y2ggZ2V0cyBpbi4gU28gZmFyLCB5b3UgbG9v ayAKPiA+IGxpa2UgdGhlIG9ubHkgcGVyc29uIHdobyB3b3VsZCBiZSB3aWxsaW5nIHRvIHJldmll dyB0aGlzIHBhdGNoIChBamF4IAo+ID4gYWNrZWQgdGhlIHBhdGNoLCBidXQgdGhhdCdzIHRoZSBl eHRlbnQgaGUgd2FzIHdpbGxpbmcgdG8gZ28pLgo+IAo+IEkgd2FzIGp1c3QgdHJ5aW5nIHRvIHBy b3ZpZGUgcmV2aWV3IHRvIGdldCB0aGUga2VybmVsIHVuc3R1Y2suICBUaGUKPiBrZXJuZWwgc2hv dWxkIG5vdCBiZSBibG9ja2VkIHVudGlsIHRoZSBwYXRjaCBnZXRzIGxhbmRzICh0aGlzIG9idmlv dXNseQo+IGlzbid0IHRoZSBjYXNlIHdpdGggaW9jdGxzLCB3aGljaCAqZG9uJ3QqIGxhbmQgaW4g dXNlcnNwYWNlIHVudGlsIGtlcm5lbAo+IGRvZXMpLCB5b3UganVzdCBuZWVkIHVzZXJzcGFjZSBw dWJsaXNoZWQgYW5kIGdlbmVyYWxseSBhZ3JlZWQgdGhhdCB0aGUKPiBBQkkgd29ya3MuCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==