From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Subject: Re: [PATCH 03/15] drm/i915: Add encoder->post_pll_disable() hooks and move CHV clock buffer disables there Date: Wed, 26 Aug 2015 13:44:00 +0530 Message-ID: <55DD7548.8030605@linux.intel.com> References: <1436388361-11130-1-git-send-email-ville.syrjala@linux.intel.com> <1436388361-11130-4-git-send-email-ville.syrjala@linux.intel.com> <55D16001.1080908@linux.intel.com> <20150817115322.GD5176@intel.com> 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 B90266E520 for ; Wed, 26 Aug 2015 01:16:14 -0700 (PDT) In-Reply-To: <20150817115322.GD5176@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?windows-1252?Q?Ville_Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwOC8xNy8yMDE1IDA1OjIzIFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gT24gTW9u LCBBdWcgMTcsIDIwMTUgYXQgMDk6NDY6MDFBTSArMDUzMCwgRGVlcGFrIHdyb3RlOgo+Pgo+PiBP biAwNy8wOS8yMDE1IDAyOjE1IEFNLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90 ZToKPj4+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Cj4+Pgo+Pj4gTW92ZSB0aGUgQ0hWIGNsb2NrIGJ1ZmZlciBkaXNhYmxlIGZyb20gY2h2X2Rp c2FibGVfcGxsKCkgdG8gdGhlIG5ldwo+Pj4gZW5jb2RlciAucG9zdF9wbGxfZGlzYWJsZSgpIGhv b2suIFRoaXMgaXMgbW9yZSBzeW1tZXRyaWMgc2luY2UgdGhlCj4+PiBjbG9jayBidWZmZXIgZW5h YmxlIGhhcHBlbnMgZnJvbSB0aGUgLnByZV9wbGxfZW5hYmxlKCkgaG9vay4KPj4+Cj4+PiBXZSds bCBoYXZlIG1vcmUgdXNlIGZvciB0aGUgbmV3IGhvb2sgc29vbi4KPj4+Cj4+PiBTaWduZWQtb2Zm LWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Pj4g LS0tCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxNSArKysr LS0tLS0tLS0tLS0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8 IDIzICsrKysrKysrKysrKysrKysrKysrKysrCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgICAgfCAgMSArCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMgICAgfCAyMyArKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gICAgNCBmaWxlcyBjaGFu Z2VkLCA1MSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+PiBpbmRleCAzZGY5Y2IyLi5kYjUxOGE3IDEwMDY0NAo+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+IEBAIC0xODUxLDE3ICsxODUx LDYgQEAgc3RhdGljIHZvaWQgY2h2X2Rpc2FibGVfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4+PiAgICAJdmFsICY9IH5EUElPX0RDTEtQX0VO Owo+Pj4gICAgCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfQ01OX0RXMTQocG9y dCksIHZhbCk7Cj4+PiAgICAKPj4+IC0JLyogZGlzYWJsZSBsZWZ0L3JpZ2h0IGNsb2NrIGRpc3Ry aWJ1dGlvbiAqLwo+Pj4gLQlpZiAocGlwZSAhPSBQSVBFX0IpIHsKPj4+IC0JCXZhbCA9IHZsdl9k cGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIF9DSFZfQ01OX0RXNV9DSDApOwo+Pj4gLQkJdmFsICY9 IH4oQ0hWX0JVRkxFRlRFTkExX01BU0sgfCBDSFZfQlVGUklHSFRFTkExX01BU0spOwo+Pj4gLQkJ dmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIF9DSFZfQ01OX0RXNV9DSDAsIHZhbCk7Cj4+ PiAtCX0gZWxzZSB7Cj4+PiAtCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBf Q0hWX0NNTl9EVzFfQ0gxKTsKPj4+IC0JCXZhbCAmPSB+KENIVl9CVUZMRUZURU5BMl9NQVNLIHwg Q0hWX0JVRlJJR0hURU5BMl9NQVNLKTsKPj4+IC0JCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBw aXBlLCBfQ0hWX0NNTl9EVzFfQ0gxLCB2YWwpOwo+Pj4gLQl9Cj4+PiAtCj4+PiAgICAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4+PiAgICB9Cj4+PiAgICAKPj4+IEBAIC02MTcx LDYgKzYxNjAsMTAgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9j cnRjICpjcnRjKQo+Pj4gICAgCQkJaTl4eF9kaXNhYmxlX3BsbChpbnRlbF9jcnRjKTsKPj4+ICAg IAl9Cj4+PiAgICAKPj4+ICsJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5j b2RlcikKPj4+ICsJCWlmIChlbmNvZGVyLT5wb3N0X3BsbF9kaXNhYmxlKQo+Pj4gKwkJCWVuY29k ZXItPnBvc3RfcGxsX2Rpc2FibGUoZW5jb2Rlcik7Cj4+PiArCj4+IFdlIGNhbGwgInZsdl9mb3Jj ZV9wbGxfb2ZmIiBpbiB2bHZfcG93ZXJfc2VxdWVuY2VyX2tpY2sgd2hpY2ggY2FsbAo+PiBjaHZf ZGlzYWJsZXBsbC4KPj4gU2hvdWxkIHdlIGFkZCB0aGUgInBvc3RfcGxsX2Rpc2FibGUiaW4gZm9y Y2UgcGxsIG9mZj8KPiBOb3BlLiAucG9zdF9wbGxfZGlzYWJsZSgpIGlzIHRoZSBjb3VudGVycGFy dCB0byAucHJlX3BsbF9lbmFibGUoKSB3aGljaAo+IHdlIGRvbid0IHVzZSBlaXRoZXIgaW4gdGhl IHBwcyBraWNrIHByb2NlZHVyZS4KPgo+IEFwcGFyZW50bHkgd2UgZG9uJ3QgbmVlZCB0byBjb25j ZXJuIG91cnNlbHZlcyB3aXRoIHRoZSBjbG9jawo+IGNoYW5uZWwvZGlzdHJpY3R1dGlvbiBzZXRw IHRvIG1ha2UgdGhlIHBwcyBraWNrIHdvcmsuIFdlbGwsIGl0J3MgZWl0aGVyCj4gdGhhdCwgb3Ig d2UndmUganVzdCBiZWVuIGx1Y2t5IGFuZCB0aG9zZSBlbmQgdXAgYmVpbmcgc2V0IHVwIGluIGEg Z29vZAo+IHdheSBieSBhY2NpZGVudC4gQnV0IG5vdyB0aGF0IHlvdSBtZW50aW9uIGl0LCBJIGRv IHN0YXJ0IHdvbmRlciBhIGJpdAo+IGhvdyBpdCByZWFsbHkgd29ya3MuIFNvIHRoaXMgaXMgcHJv YmFibHkgc29tZXRoaW5nIEkgc2hvdWxkIHRlc3QgbW9yZQo+IHRob3JvdWdobHkgYXQgc29tZSBw b2ludC4KVGhhbmtzIFZpbGxlLCBZZXMgd2UgbmVlZCB0byBkbyBtb3JlIHRlc3RpbmcgYXJvdW5k IHBwcyBraWNrLiBmb3Igbm93IApjaGFuZ2VzIGxvb2tzIGZpbmUgd2l0aCBtYXRjaGluZyBwcmUv cG9zdAoKUmV2aWV3ZWQtYnk6IERlZXBhayBTIDxkZWVwYWsuc0BsaW51eC5pbnRlbC5jb20+Cj4+ PiAgICAJaWYgKCFJU19HRU4yKGRldikpCj4+PiAgICAJCWludGVsX3NldF9jcHVfZmlmb191bmRl cnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNlKTsKPj4+ICAgIH0KPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwo+Pj4gaW5kZXggMzJkN2U0My4uNDBiODQzMCAxMDA2NDQKPj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPj4+IEBAIC0yOTA2LDYgKzI5MDYsMjggQEAgc3RhdGljIHZv aWQgY2h2X2RwX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ Pj4gICAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwo+Pj4gICAgfQo+Pj4gICAg Cj4+PiArc3RhdGljIHZvaWQgY2h2X2RwX3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCj4+PiArewo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPj4+ICsJZW51bSBwaXBlIHBpcGUg PSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0YyktPnBpcGU7Cj4+PiArCXUzMiB2YWw7 Cj4+PiArCj4+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKPj4+ICsKPj4+ICsJ LyogZGlzYWJsZSBsZWZ0L3JpZ2h0IGNsb2NrIGRpc3RyaWJ1dGlvbiAqLwo+Pj4gKwlpZiAocGlw ZSAhPSBQSVBFX0IpIHsKPj4+ICsJCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUs IF9DSFZfQ01OX0RXNV9DSDApOwo+Pj4gKwkJdmFsICY9IH4oQ0hWX0JVRkxFRlRFTkExX01BU0sg fCBDSFZfQlVGUklHSFRFTkExX01BU0spOwo+Pj4gKwkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYs IHBpcGUsIF9DSFZfQ01OX0RXNV9DSDAsIHZhbCk7Cj4+PiArCX0gZWxzZSB7Cj4+PiArCQl2YWwg PSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBfQ0hWX0NNTl9EVzFfQ0gxKTsKPj4+ICsJ CXZhbCAmPSB+KENIVl9CVUZMRUZURU5BMl9NQVNLIHwgQ0hWX0JVRlJJR0hURU5BMl9NQVNLKTsK Pj4+ICsJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBfQ0hWX0NNTl9EVzFfQ0gxLCB2 YWwpOwo+Pj4gKwl9Cj4+PiArCj4+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2sp Owo+Pj4gK30KPj4+ICsKPj4+ICAgIC8qCj4+PiAgICAgKiBOYXRpdmUgcmVhZCB3aXRoIHJldHJ5 IGZvciBsaW5rIHN0YXR1cyBhbmQgcmVjZWl2ZXIgY2FwYWJpbGl0eSByZWFkcyBmb3IKPj4+ICAg ICAqIGNhc2VzIHdoZXJlIHRoZSBzaW5rIG1heSBzdGlsbCBiZSBhc2xlZXAuCj4+PiBAQCAtNTkz MSw2ICs1OTUzLDcgQEAgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQg b3V0cHV0X3JlZywgZW51bSBwb3J0IHBvcnQpCj4+PiAgICAJCWludGVsX2VuY29kZXItPnByZV9l bmFibGUgPSBjaHZfcHJlX2VuYWJsZV9kcDsKPj4+ICAgIAkJaW50ZWxfZW5jb2Rlci0+ZW5hYmxl ID0gdmx2X2VuYWJsZV9kcDsKPj4+ICAgIAkJaW50ZWxfZW5jb2Rlci0+cG9zdF9kaXNhYmxlID0g Y2h2X3Bvc3RfZGlzYWJsZV9kcDsKPj4+ICsJCWludGVsX2VuY29kZXItPnBvc3RfcGxsX2Rpc2Fi bGUgPSBjaHZfZHBfcG9zdF9wbGxfZGlzYWJsZTsKPj4+ICAgIAl9IGVsc2UgaWYgKElTX1ZBTExF WVZJRVcoZGV2KSkgewo+Pj4gICAgCQlpbnRlbF9lbmNvZGVyLT5wcmVfcGxsX2VuYWJsZSA9IHZs dl9kcF9wcmVfcGxsX2VuYWJsZTsKPj4+ICAgIAkJaW50ZWxfZW5jb2Rlci0+cHJlX2VuYWJsZSA9 IHZsdl9wcmVfZW5hYmxlX2RwOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4+IGluZGV4 IDRmM2I3MDguLjQyZmExMzUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4+ IEBAIC0xNDgsNiArMTQ4LDcgQEAgc3RydWN0IGludGVsX2VuY29kZXIgewo+Pj4gICAgCXZvaWQg KCptb2RlX3NldCkoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwo+Pj4gICAg CXZvaWQgKCpkaXNhYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqKTsKPj4+ICAgIAl2b2lkICgq cG9zdF9kaXNhYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqKTsKPj4+ICsJdm9pZCAoKnBvc3Rf cGxsX2Rpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICopOwo+Pj4gICAgCS8qIFJlYWQgb3V0 IHRoZSBjdXJyZW50IGh3IHN0YXRlIG9mIHRoaXMgY29ubmVjdG9yLCByZXR1cm5pbmcgdHJ1ZSBp Zgo+Pj4gICAgCSAqIHRoZSBlbmNvZGVyIGlzIGFjdGl2ZS4gSWYgdGhlIGVuY29kZXIgaXMgZW5h YmxlZCBpdCBhbHNvIHNldCB0aGUgcGlwZQo+Pj4gICAgCSAqIGl0IGlzIGNvbm5lY3RlZCB0byBp biB0aGUgcGlwZSBwYXJhbWV0ZXIuICovCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4+ PiBpbmRleCA5Zjc5YWZiLi44NmIxYTJjIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRtaS5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMKPj4+IEBAIC0xNjc4LDYgKzE2NzgsMjggQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJl X3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+PiAgICAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICtzdGF0aWMg dm9pZCBjaHZfaGRtaV9wb3N0X3BsbF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQo+Pj4gK3sKPj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4+PiArCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxf Y3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpLT5waXBlOwo+Pj4gKwl1MzIgdmFsOwo+Pj4gKwo+Pj4g KwltdXRleF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4+PiArCj4+PiArCS8qIGRpc2FibGUg bGVmdC9yaWdodCBjbG9jayBkaXN0cmlidXRpb24gKi8KPj4+ICsJaWYgKHBpcGUgIT0gUElQRV9C KSB7Cj4+PiArCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBfQ0hWX0NNTl9E VzVfQ0gwKTsKPj4+ICsJCXZhbCAmPSB+KENIVl9CVUZMRUZURU5BMV9NQVNLIHwgQ0hWX0JVRlJJ R0hURU5BMV9NQVNLKTsKPj4+ICsJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBfQ0hW X0NNTl9EVzVfQ0gwLCB2YWwpOwo+Pj4gKwl9IGVsc2Ugewo+Pj4gKwkJdmFsID0gdmx2X2RwaW9f cmVhZChkZXZfcHJpdiwgcGlwZSwgX0NIVl9DTU5fRFcxX0NIMSk7Cj4+PiArCQl2YWwgJj0gfihD SFZfQlVGTEVGVEVOQTJfTUFTSyB8IENIVl9CVUZSSUdIVEVOQTJfTUFTSyk7Cj4+PiArCQl2bHZf ZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgX0NIVl9DTU5fRFcxX0NIMSwgdmFsKTsKPj4+ICsJ fQo+Pj4gKwo+Pj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKPj4+ICt9Cj4+ PiArCj4+PiAgICBzdGF0aWMgdm9pZCB2bHZfaGRtaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4+PiAgICB7Cj4+PiAgICAJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+Pj4gQEAgLTIw NzMsNiArMjA5NSw3IEBAIHZvaWQgaW50ZWxfaGRtaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBoZG1pX3JlZywgZW51bSBwb3J0IHBvcnQpCj4+PiAgICAJCWludGVsX2VuY29kZXIt PnByZV9lbmFibGUgPSBjaHZfaGRtaV9wcmVfZW5hYmxlOwo+Pj4gICAgCQlpbnRlbF9lbmNvZGVy LT5lbmFibGUgPSB2bHZfZW5hYmxlX2hkbWk7Cj4+PiAgICAJCWludGVsX2VuY29kZXItPnBvc3Rf ZGlzYWJsZSA9IGNodl9oZG1pX3Bvc3RfZGlzYWJsZTsKPj4+ICsJCWludGVsX2VuY29kZXItPnBv c3RfcGxsX2Rpc2FibGUgPSBjaHZfaGRtaV9wb3N0X3BsbF9kaXNhYmxlOwo+Pj4gICAgCX0gZWxz ZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4+PiAgICAJCWludGVsX2VuY29kZXItPnByZV9w bGxfZW5hYmxlID0gdmx2X2hkbWlfcHJlX3BsbF9lbmFibGU7Cj4+PiAgICAJCWludGVsX2VuY29k ZXItPnByZV9lbmFibGUgPSB2bHZfaGRtaV9wcmVfZW5hYmxlOwo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK