From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: Fwd: [PATCH] drm/i915: Fix IPS related flicker Date: Thu, 25 Jun 2015 15:01:17 +0300 Message-ID: <87k2usyp2q.fsf@intel.com> References: <20150522070821.GW18908@intel.com> <1432836431-2994-1-git-send-email-rodrigo.vivi@intel.com> <20150529084730.GD5176@intel.com> <87lhfya675.fsf@intel.com> <20150605091118.GS5176@intel.com> <1434625080.3933.4.camel@gmail.com> <87a8vxi65y.fsf@intel.com> <877fr1i5xe.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id C2E106EB5E for ; Thu, 25 Jun 2015 04:58:48 -0700 (PDT) In-Reply-To: <877fr1i5xe.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , Rodrigo Vivi Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxOCBKdW4gMjAxNSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVs LmNvbT4gd3JvdGU6Cj4gT24gVGh1LCAxOCBKdW4gMjAxNSwgSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4+IE9uIFRodSwgMTggSnVuIDIwMTUsIEFuZGVy IENvbnNlbHZhbiBEZSBPbGl2ZWlyYSA8Y29uc2VsdmFuMkBnbWFpbC5jb20+IHdyb3RlOgo+Pj4g T24gRnJpLCAyMDE1LTA2LTA1IGF0IDEyOjExICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 Cj4+Pj4gT24gRnJpLCBKdW4gMDUsIDIwMTUgYXQgMTE6NTE6NDJBTSArMDMwMCwgSmFuaSBOaWt1 bGEgd3JvdGU6Cj4+Pj4gPiBPbiBUaHUsIDA0IEp1biAyMDE1LCBSb2RyaWdvIFZpdmkgPHJvZHJp Z28udml2aUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+ID4gPiBJIGp1c3Qgbm90aWNlZCB0aGF0IEkg aGFkIGZvcmdvdHRlbiB0byByZXBseS1hbGwuLi4KPj4+PiA+ID4KPj4+PiA+ID4gSmFuaSwgd291 bGQgeW91IGNvbnNpZGVyIG1lcmdlIHRoaXMgZml4IHdpdGggdGhlIGV4cGxhbmF0aW9uIGFib3Zl Cj4+Pj4gPiA+IHJlbGF0ZWQgdG8gVmlsbGUncyBxdWVzdGlvbj8KPj4+PiA+ID4KPj4+PiA+ID4g b3IgZG8geW91IHdhbnQvbmVlZCBhbnkgYWN0aW9uIGhlcmU/Cj4+Pj4gPiAKPj4+PiA+IFZpbGxl J3MgcXVlc3Rpb24sIEknZCBsaWtlIFZpbGxlJ3MgYWNrIG9uIGl0Lgo+Pj4+IAo+Pj4+IEl0J3Mg Z29vZCBlbm91Z2ggZm9yIG1lLiBUaGlzIHBhcnQgb2YgdGhlIGRyaXZlciBpcyBhIHF1aXRlIGEg bWVzcwo+Pj4+IGFueXdheSBjdXJyZW50bHksIHNvIGRvZXNuJ3QgbWF0dGVyIHRvbyBtdWNoIHdo YXQgd2Ugc3RpY2sgaW4gdGhlcmUuCj4+Pgo+Pj4gUGluZy4gU2VlbXMgbGlrZSB0aGlzIHN0aWxs IGlzbid0IG1lcmdlZC4gRG9lcyBpdCBuZWVkIG1vcmUgd29yayBvciBkaWQKPj4+IGl0IGp1c3Qg ZmFsbCB0aHJvdWdoIHRoZSBjcmFja3M/Cj4+Cj4+IEl0IGZlbGwgYmV0d2VlbiB0aGUgY3JhY2tz LiBJIGtub3cgdGhlIHdvcmxkIGlzbid0IGJsYWNrIGFuZCB3aGl0ZSwgYnV0Cj4+IGl0IGRvZXNu J3QgaGVscCB0aGUgbWFpbnRhaW5lcnMgd2hlbiByZXZpZXcgaXMgc29tZSBzaGFkZSBvZiBncmV5 Lgo+Pgo+PiBJJ3ZlIHB1c2hlZCB0aGlzIHRvIGRybS1pbnRlbC1uZXh0LWZpeGVzIGZvciBub3cs IGJ1dCBpdCBoYXMgbWlzc2VkIHRoZQo+PiB0cmFpbiBmb3IgYm90aCB0aGUgdjQuMSByZWxlYXNl IGFuZCB0aGUgbWFpbiBkcm0tbmV4dCBmZWF0dXJlIHB1bGwKPj4gcmVxdWVzdCBmb3IgdGhlIHY0 LjIgbWVyZ2Ugd2luZG93LiBJIGV4cGVjdCB0aGlzIHRvIGxhbmQgdXBzdHJlYW0gaW4KPj4gdjQu Mi1yYzIsIHVubGVzcyB0aGVyZSdzIGFuIGFkZGl0aW9uYWwgZHJtLW5leHQgcHVsbCByZXF1ZXN0 IGR1cmluZyB0aGUKPj4gbWVyZ2Ugd2luZG93LiBJJ3ZlIGFkZGVkIGNjOiBzdGFibGUuCj4+Cj4+ IFRoYW5rcyBmb3IgdGhlIHBhdGNoLCBhbmQgSSBndWVzcyB0aGUgcmV2aWV3IHdhcywgdWgsICJn b29kIGVub3VnaCBmb3IKPj4gbWUiIG5vdy4uLiA6cAo+Cj4gQXJnaCwgSSdsbCB0YWtlIHRoYXQg YmFjay4gVGhpcyBjb25mbGljdHMgd2l0aCBkaW5xLCBhbmQgd2hpbGUgZG9pbmcgc28KPiBhbHNv IGNvbmZ1c2VzIGdpdCByZXJlcmUgZW5vdWdoIHRvIHVuY292ZXIgYSBwcmV2aW91cyBtdWNoIGJp Z2dlcgo+IGNvbmZsaWN0IHRoYXQgSSBoYXZlIG5vIGludGVudGlvbiBvZiByZXNvbHZpbmcgYWdh aW4gYmVmb3JlIHRoZQo+IHdlZWtlbmQuIEknbGwgcmV0dXJuIHRvIGl0IG5leHQgd2Vlay4gU29y cnkuCgpBbmQga2VlcHMgY29uZmxpY3RpbmcgdG9vIGJhZGx5IGZvciBtZSB0byBmaWd1cmUgb3V0 IHdoYXQgbmVlZHMgdG8gYmUKZG9uZS4gSXMgdGhpcyBzdGlsbCBuZWVkZWQgaW4gZGlucT8KCkJS LApKYW5pLgoKCj4KPiBCUiwKPiBKYW5pLgo+Cj4KPgo+Pgo+PiBCUiwKPj4gSmFuaS4KPj4KPj4K Pj4+Cj4+PiBUaGFua3MsCj4+PiBBbmRlcgo+Pj4KPj4+PiAKPj4+PiA+IAo+Pj4+ID4gQlIsCj4+ Pj4gPiBKYW5pLgo+Pj4+ID4gCj4+Pj4gPiAKPj4+PiA+ID4KPj4+PiA+ID4gVGhhbmtzLAo+Pj4+ ID4gPiBSb2RyaWdvLgo+Pj4+ID4gPgo+Pj4+ID4gPgo+Pj4+ID4gPiAtLS0tLS0tLS0tIEZvcndh cmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0KPj4+PiA+ID4gRnJvbTogUm9kcmlnbyBWaXZpIDxyb2Ry aWdvLnZpdmlAZ21haWwuY29tPgo+Pj4+ID4gPiBEYXRlOiBGcmksIE1heSAyOSwgMjAxNSBhdCA5 OjQ1IEFNCj4+Pj4gPiA+IFN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0hdIGRybS9pOTE1 OiBGaXggSVBTIHJlbGF0ZWQgZmxpY2tlcgo+Pj4+ID4gPiBUbzogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4+PiA+ID4KPj4+PiA+ID4KPj4+PiA+ID4g T24gRnJpLCBNYXkgMjksIDIwMTUgYXQgMTo0NyBBTSwgVmlsbGUgU3lyasOkbMOkCj4+Pj4gPiA+ IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4+Pj4gPiA+PiBPbiBUaHUs IE1heSAyOCwgMjAxNSBhdCAxMTowNzoxMUFNIC0wNzAwLCBSb2RyaWdvIFZpdmkgd3JvdGU6Cj4+ Pj4gPiA+Pj4gV2UgY2Fubm90IGxldCBJUFMgZW5hYmxlZCB3aXRoIG5vIHBsYW5lIG9uIHRoZSBw aXBlOgo+Pj4+ID4gPj4+Cj4+Pj4gPiA+Pj4gQlNwZWM6ICJJUFMgY2Fubm90IGJlIGVuYWJsZWQg dW50aWwgYWZ0ZXIgYXQgbGVhc3Qgb25lIHBsYW5lIGhhcwo+Pj4+ID4gPj4+IGJlZW4gZW5hYmxl ZCBmb3IgYXQgbGVhc3Qgb25lIHZlcnRpY2FsIGJsYW5rLiIgYW5kICJJUFMgbXVzdCBiZQo+Pj4+ ID4gPj4+IGRpc2FibGVkIHdoaWxlIHRoZXJlIGlzIHN0aWxsIGF0IGxlYXN0IG9uZSBwbGFuZSBl bmFibGVkIG9uIHRoZQo+Pj4+ID4gPj4+IHNhbWUgcGlwZSBhcyBJUFMuIiBUaGlzIHJlc3RyaWN0 aW9uIGFwcGx5IHRvIEhTVyBhbmQgQkRXLgo+Pj4+ID4gPj4+Cj4+Pj4gPiA+Pj4gSG93ZXZlciBh IHNob3J0Y3V0IHBhdGggb24gdXBkYXRlIHByaW1hcnkgcGxhbmUgZnVuY3Rpb24KPj4+PiA+ID4+ PiB0byBtYWtlIHByaW1hcnkgcGxhbmUgaW52aXNpYmxlIGJ5IHNldHRpbmcgRFNQQ1RSTCB0byAw Cj4+Pj4gPiA+Pj4gd2FzIGxldGluZyBJUFMgZW5hYmxlZCB3aGlsZSB0aGVyZSB3YXMgbm8KPj4+ PiA+ID4+PiBvdGhlciBwbGFuZSBlbmFibGVkIG9uIHRoZSBwaXBlIGNhdXNpbmcgZmxpY2tlcmlu Z3MgdGhhdCB3ZSB3ZXJlCj4+Pj4gPiA+Pj4gYmVsaWV2aW5nIHRoYXQgaXQgd2FzIGNhdXNlZCBi eSB0aGF0IG90aGVyIHJlc3RyaWN0aW9uIHdoZXJlCj4+Pj4gPiA+Pj4gaXBzIGNhbm5vdCBiZSB1 c2VkIHdoZW4gcGl4ZWwgcmF0ZSBpcyBncmVhdGVyIHRoYW4gOTUlIG9mIGNkY2xvay4KPj4+PiA+ ID4+Pgo+Pj4+ID4gPj4+IHYyOiBEb24ndCBtZXNzIHdpdGggQXRvbWljIHBhdGggYXMgcG9pbnRl ZCBvdXQgYnkgVmlsbGUuCj4+Pj4gPiA+Pj4KPj4+PiA+ID4+PiBSZWZlcmVuY2U6IGh0dHBzOi8v YnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NTgzCj4+Pj4gPiA+Pj4gQ2M6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+Pj4gPiA+ Pj4gQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+Pj4+ID4gPj4+ IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPj4+ PiA+ID4+PiAtLS0KPj4+PiA+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMTMgKysrKysrKysrKysrKwo+Pj4+ID4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgICAgfCAgMSArCj4+Pj4gPiA+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5z ZXJ0aW9ucygrKQo+Pj4+ID4gPj4+Cj4+Pj4gPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+Pj4+ID4gPj4+IGluZGV4IDRlM2YzMDIuLjVhNmIxN2IgMTAwNjQ0Cj4+Pj4gPiA+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+Pj4gPiA+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+Pj4gPiA+Pj4gQEAg LTEzMzA5LDYgKzEzMzA5LDE2IEBAIGludGVsX2NoZWNrX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4+Pj4gPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50ZWxfY3J0Yy0+YXRvbWljLndhaXRfdmJsYW5rID0gdHJ1ZTsKPj4+PiA+ID4+PiAgICAgICAg ICAgICAgIH0KPj4+PiA+ID4+Pgo+Pj4+ID4gPj4+ICsgICAgICAgICAgICAgLyoKPj4+PiA+ID4+ PiArICAgICAgICAgICAgICAqIEZJWE1FOiBBY3R1YWxseSBpZiB3ZSB3aWxsIHN0aWxsIGhhdmUg YW55IG90aGVyIHBsYW5lIGVuYWJsZWQKPj4+PiA+ID4+PiArICAgICAgICAgICAgICAqIG9uIHRo ZSBwaXBlIHdlIGNvdWxkIGxldCBJUFMgZW5hYmxlZCBzdGlsbCwgYnV0IGZvcgo+Pj4+ID4gPj4+ ICsgICAgICAgICAgICAgICogbm93IGxldHMgY29uc2lkZXIgdGhhdCB3aGVuIHdlIG1ha2UgcHJp bWFyeSBpbnZpc2libGUKPj4+PiA+ID4+PiArICAgICAgICAgICAgICAqIGJ5IHNldHRpbmcgRFNQ Q05UUiB0byAwIG9uIHVwZGF0ZV9wcmltYXJ5X3BsYW5lIGZ1bmN0aW9uCj4+Pj4gPiA+Pj4gKyAg ICAgICAgICAgICAgKiBJUFMgbmVlZHMgdG8gYmUgZGlzYWJsZS4KPj4+PiA+ID4+PiArICAgICAg ICAgICAgICAqLwo+Pj4+ID4gPj4+ICsgICAgICAgICAgICAgaWYgKCFzdGF0ZS0+dmlzaWJsZSB8 fCAhZmIpCj4+Pj4gPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGludGVsX2NydGMtPmF0b21p Yy5kaXNhYmxlX2lwcyA9IHRydWU7Cj4+Pj4gPiA+Pj4gKwo+Pj4+ID4gPj4KPj4+PiA+ID4+IEhv dyBjb3VsZCBpdCBiZSB2aXNpYmxlIHdpdGhvdXQgYW4gZmI/Cj4+Pj4gPiA+Cj4+Pj4gPiA+IEkg ZG9uJ3QgbGlrZSB0aGlzICFmYiBoZXJlIGFzIHdlbGwsIGJ1dCBJIGp1c3QgdHJpZWQgdG8ga2Vl cCBleGFjdGx5Cj4+Pj4gPiA+IHNhbWUgaWYgc3RhdGVtZW50IHRoYXQgbWFrZXMgSTkxNV9XUklU RShEU1BDTlRSTCwgMCkgb24gdXBkYXRlIHByaW1hcnkKPj4+PiA+ID4gcGxhbmUgZnVuYy4uLgo+ Pj4+ID4gPgo+Pj4+ID4gPj4KPj4+PiA+ID4+PiAgICAgICAgICAgICAgIGludGVsX2NydGMtPmF0 b21pYy5mYl9iaXRzIHw9Cj4+Pj4gPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgIElOVEVMX0ZS T05UQlVGRkVSX1BSSU1BUlkoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4+Pj4gPiA+Pj4KPj4+PiA+ID4+ PiBAQCAtMTM0MDYsNiArMTM0MTYsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2Nv bW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+Pj4gPiA+Pj4gICAgICAgaWYgKGludGVsX2Ny dGMtPmF0b21pYy5kaXNhYmxlX2ZiYykKPj4+PiA+ID4+PiAgICAgICAgICAgICAgIGludGVsX2Zi Y19kaXNhYmxlKGRldik7Cj4+Pj4gPiA+Pj4KPj4+PiA+ID4+PiArICAgICBpZiAoaW50ZWxfY3J0 Yy0+YXRvbWljLmRpc2FibGVfaXBzKQo+Pj4+ID4gPj4+ICsgICAgICAgICAgICAgaHN3X2Rpc2Fi bGVfaXBzKGludGVsX2NydGMpOwo+Pj4+ID4gPj4+ICsKPj4+PiA+ID4+PiAgICAgICBpZiAoaW50 ZWxfY3J0Yy0+YXRvbWljLnByZV9kaXNhYmxlX3ByaW1hcnkpCj4+Pj4gPiA+Pj4gICAgICAgICAg ICAgICBpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KGNydGMpOwo+Pj4+ID4gPj4KPj4+PiA+ID4+ IGludGVsX3ByZV9kaXNhYmxlX3ByaW1hcnkoKSB3b3VsZCBhbHJlYWR5IGRpc2FibGUgSVBTLiBF eGNlcHQgbm8gb25lCj4+Pj4gPiA+PiBzZXRzIC5wcmVfZGlzYWJsZV9wcmltYXJ5PXRydWUuIE9U T0ggdGhhdCB0aGluZyBtb3N0bHkgc2VlbXMgdG8gZG8KPj4+PiA+ID4+IHN0dWZmIHRoYXQgaGFz IG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgcHJpbWFyeSBwbGFuZSAoY3hzciBkaXNhYmxlLAo+Pj4+ ID4gPj4gZmlmbyB1bmRlcnJ1biByZXBvcnRpbmcgZGlzYWJsZSBvbiBnZW4yKSwgc28gSSBkb24n dCB0aGluayB3ZSB3YW50Cj4+Pj4gPiA+PiB0byB1c2UgdGhhdC4KPj4+PiA+ID4+Cj4+Pj4gPiA+ PiBJbiBhbnkgY2FzZSB3ZSBzaG91bGQgcmVhbGx5IGhhdmUgdGhlIElQUyBzdGF0ZSBhcyBwYXJ0 IG9mIHRoZSBjcnRjCj4+Pj4gPiA+PiBzdGF0ZS4gVGhlc2UgZ2xvYmFsIGRpc2FibGVfZm9vIHRo aW5ncyBzaG91bGQganVzdCBiZSBraWxsZWQgSU1PLgo+Pj4+ID4gPj4gSG1tLCBleGNlcHQgdG8g ZG8gdGhpcyBwcm9wZXJseSB3ZSdkIHRoZW4gbmVlZCB0byB0cmFjayB0aGUgaHcgSVBTCj4+Pj4g PiA+PiBzdGF0ZSBzZXBhcmF0ZWx5IHNvbWV3aGVyZS4KPj4+PiA+ID4KPj4+PiA+ID4gYWdyZWUu Cj4+Pj4gPiA+Cj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gSSBndWVzcyB3ZSBjYW4ganVzdCBnbyB3aXRo IHRoaXMgZm9yIG5vdy4gQXQgbGVhc3QgaXQncyBub3QgcmVhbGx5Cj4+Pj4gPiA+PiBtYWtpbmcg dGhpbmdzIHdvcnNlLCBzbyAobWF5YmUgd2l0aCB0aGUgIWZiIGNoZWNrIGRyb3BwZWQpOgo+Pj4+ ID4gPj4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Cj4+Pj4gPiA+Cj4+Pj4gPiA+IFRoYW5rcwo+Pj4+ID4gPgo+Pj4+ID4gPj4KPj4+ PiA+ID4+Pgo+Pj4+ID4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+Pj4gPiA+Pj4gaW5k ZXggMmFmYjMxYS4uMTA1OTI4MyAxMDA2NDQKPj4+PiA+ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+Pj4+ID4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4+Pj4gPiA+Pj4gQEAgLTQ4NSw2ICs0ODUsNyBAQCBzdHJ1Y3QgaW50ZWxf Y3J0Y19hdG9taWNfY29tbWl0IHsKPj4+PiA+ID4+PiAgICAgICAvKiBTbGVlcGFibGUgb3BlcmF0 aW9ucyB0byBwZXJmb3JtIGJlZm9yZSBjb21taXQgKi8KPj4+PiA+ID4+PiAgICAgICBib29sIHdh aXRfZm9yX2ZsaXBzOwo+Pj4+ID4gPj4+ICAgICAgIGJvb2wgZGlzYWJsZV9mYmM7Cj4+Pj4gPiA+ Pj4gKyAgICAgYm9vbCBkaXNhYmxlX2lwczsKPj4+PiA+ID4+PiAgICAgICBib29sIHByZV9kaXNh YmxlX3ByaW1hcnk7Cj4+Pj4gPiA+Pj4gICAgICAgYm9vbCB1cGRhdGVfd207Cj4+Pj4gPiA+Pj4g ICAgICAgdW5zaWduZWQgZGlzYWJsZWRfcGxhbmVzOwo+Pj4+ID4gPj4+IC0tCj4+Pj4gPiA+Pj4g Mi4xLjAKPj4+PiA+ID4+Cj4+Pj4gPiA+PiAtLQo+Pj4+ID4gPj4gVmlsbGUgU3lyasOkbMOkCj4+ Pj4gPiA+PiBJbnRlbCBPVEMKPj4+PiA+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4+Pj4gPiA+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4g PiA+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4gPiA+PiBodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4+Pj4gPiA+Cj4+ Pj4gPiA+Cj4+Pj4gPiA+Cj4+Pj4gPiA+IC0tCj4+Pj4gPiA+IFJvZHJpZ28gVml2aQo+Pj4+ID4g PiBCbG9nOiBodHRwOi8vYmxvZy52aXZpLmVuZy5icgo+Pj4+ID4gPgo+Pj4+ID4gPgo+Pj4+ID4g PiAtLSAKPj4+PiA+ID4gUm9kcmlnbyBWaXZpCj4+Pj4gPiA+IEJsb2c6IGh0dHA6Ly9ibG9nLnZp dmkuZW5nLmJyCj4+Pj4gPiAKPj4+PiA+IC0tIAo+Pj4+ID4gSmFuaSBOaWt1bGEsIEludGVsIE9w ZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCj4+Pj4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ Pj4+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+ID4gaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+Pj4+IAo+Pj4KPj4+ Cj4+Cj4+IC0tIAo+PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBD ZW50ZXIKPgo+IC0tIAo+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5 IENlbnRlcgoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENl bnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=