From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/13] drm/i915/cnl: DVFS for PLL enabling Date: Tue, 17 Oct 2017 20:23:20 +0300 Message-ID: <20171017172320.GB10981@intel.com> References: <20171003070614.18396-1-rodrigo.vivi@intel.com> <20171003070614.18396-8-rodrigo.vivi@intel.com> <20171017154421.GX10981@intel.com> <20171017164705.jyltjdk52oyoquo6@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D4A589021 for ; Tue, 17 Oct 2017 17:23:24 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171017164705.jyltjdk52oyoquo6@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, "Runyan, Arthur J" , Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMTcsIDIwMTcgYXQgMDk6NDc6MDVBTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIFR1ZSwgT2N0IDE3LCAyMDE3IGF0IDAzOjQ0OjIxUE0gKzAwMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToKPiA+IE9uIFR1ZSwgT2N0IDAzLCAyMDE3IGF0IDEyOjA2OjA4QU0gLTA3 MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiA+ID4gRnJvbTogIkthaG9sYSwgTWlrYSIgPG1pa2Eu a2Fob2xhQGludGVsLmNvbT4KPiA+ID4gCj4gPiA+IERpc3BsYXkgVm9sdGFnZSBhbmQgRnJlcXVl bmN5IFN3aXRjaGluZyAoRFZGUykgaXMgdXNlZCB0byBhZGp1c3QgdGhlCj4gPiA+IGRpc3BsYXkg dm9sdGFnZSB0byBtYXRjaCB0aGUgZGlzcGxheSBjbG9jayBmcmVxdWVuY2llcy4gSWYgdm9sdGFn ZSBpcwo+ID4gPiBzZXQgdG9vIGxvdywgaXQgd2lsbCBicmVhayBmdW5jdGlvbmFsaXR5LiBJZiB2 b2x0YWdlIGlzIHNldCB0b28gaGlnaCwKPiA+ID4gaXQgd2lsbCB3YXN0ZSBwb3dlci4gVm9sdGFn ZSBsZXZlbCBpcyBzZWxlY3RlZCBiYXNlZCBvbiBDRCBjbG9jayBhbmQKPiA+ID4gRERJIGNsb2Nr Lgo+ID4gPiAKPiA+ID4gVGhlIHNlcXVlbmNlIGJlZm9yZSBmcmVxdWVuY3kgY2hhbmdlIGlzIHRo ZSBmb2xsb3dpbmcgYW5kIGl0IHJlcXVlc3RzCj4gPiA+IHRoZSBwb3dlciBjb250cm9sbGVyIHRv IHJhaXNlIHZvbHRhZ2UgdG8gbWF4aW11bQo+ID4gPiAKPiA+ID4gLSBFbnN1cmUgYW55IHByZXZp b3VzIEdUIERyaXZlciBNYWlsYm94IHRyYW5zYWN0aW9uIGlzIGNvbXBsZXRlLgo+ID4gPiAtIFdy aXRlIEdUIERyaXZlciBNYWlsYm94IERhdGEgTG93ID0gMHgzLgo+ID4gPiAtIFdyaXRlIEdUIERy aXZlciBNYWlsYm94IERhdGEgSGlnaCA9IDB4MC4KPiA+ID4gLSBXcml0ZSBHVCBEcml2ZXIgTWFp bGJveCBJbnRlcmZhY2UgPSAweDgwMDAwMDA3Lgo+ID4gPiAtIFBvbGwgR1QgRHJpdmVyIE1haWxi b3ggSW50ZXJmYWNlIGZvciBSdW4vQnVzeSBpbmRpY2F0aW9uIGNsZWFyZWQgKGJpdCAzMSA9IDAp Lgo+ID4gPiAtIFJlYWQgR1QgRHJpdmVyIE1haWxib3ggRGF0YSBMb3csIGlmIGJpdCAwIGlzIDB4 MSwgY29udGludWUsIGVsc2UgcmVzdGFydCB0aGUgc2VxdWVuY2UuCj4gPiA+ICAgVGltZW91dCBh ZnRlciAzbXMKPiA+ID4gCj4gPiA+IFRoZSBzZXF1ZW5jZSBhZnRlciBmcmVxdWVuY3kgY2hhbmdl IGlzIHRoZSBmb2xsb3dpbmcgYW5kIGl0IHJlcXVlc3RzCj4gPiA+IHRoZSBwb3J0IGNvbnRyb2xs ZXIgdG8gcmFpc2Ugdm9sdGFnZSB0byB0aGUgcmVxdWVzdGVkIGxldmVsLgo+ID4gPiAKPiA+ID4g LSBXcml0ZSBHVCBEcml2ZXIgTWFpbGJveCBEYXRhIExvdwo+ID4gPiAgKiBGb3IgbGV2ZWwgMCwg d3JpdGUgMHgwCj4gPiA+ICAqIEZvciBsZXZlbCAxLCB3cml0ZSAweDEKPiA+ID4gICogRm9yIGxl dmVsIDIsIHdyaXRlIDB4Mgo+ID4gPiAgKiBGb3IgbGV2ZWwgMywgd3JpdGUgMHgzCj4gPiA+ICAg IC0gV3JpdGUgR1QgRHJpdmVyIE1haWxib3ggRGF0YSBIaWdoID0gMHgwLgo+ID4gPiAgICAtIFdy aXRlIEdUIERyaXZlciBNYWlsYm94IEludGVyZmFjZSA9IDB4ODAwMDAwMDcuCj4gPiA+IAo+ID4g PiBGb3IgQ2Fubm9ubGFrZSwgdGhlIGxldmVsIDMgaXMgbm90IHVzZWQgYW5kIGl0IGFsaWFzZXMg dG8gbGV2ZWwgMi4KPiA+ID4gCj4gPiA+IHYyOiByZXVzZSBQYXVsbydzIHdvcmsgb24gY2RjbGsu IFRoaXMgcGF0Y2ggZGVwZW5kcyBvbiBQYXVsbydzIHBhdGNoCj4gPiA+ICAgICBbUEFUQ0ggMDIv MTJdIGRybS9pOTE1L2NubDogZXh0cmFjdCBjbmxfZHZmc197cHJlLHBvc3R9X2NoYW5nZQo+ID4g PiB2MzogKEJ5IFJvZHJpZ28pOiBSZW1vdmUgZHVwbGljYXRlZCBjb21tZW5kIGFuZCBmaXggdHlw byBvbiBQYXVsbydzIG5hbWUuCj4gPiA+IHY0OiAoQnkgUm9kcmlnbyk6IFJlYmFzZSBvbiB0b3Ag IlVuaWZ5IGFuZCBleHBvcnQgZ2VuOSsgcG9ydF9jbG9jayBjYWxjdWxhdGlvbiIKPiA+ID4gICAg IFRoZSBwb3J0IGNsb2NrIGNhbGN1bGF0aW9uIGhlcmUgd2FzIG9ubHkgYWRkcmVzc2luZyBEUCwg c28gbGV0J3MgcmV1c2UKPiA+ID4gICAgIHRoZSBjdXJyZW50IHBvcnQgY2FsY3VsYXRpb24gdGhh dCBpcyBhbHJlYWR5IGluIHBsYWNlIHdpdGhvdXQgYW55IGR1cGxpY2F0aW9uLgo+ID4gPiAgICAg QWxvcyBmaXggcG9ydGNsayA8PSA1OTQwMDAgaW5zdGVhZCBvZiBwb3J0Y2xrIDwgNTk0MDAwLgo+ ID4gPiAKPiA+ID4gQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiA+ID4gU2lnbmVkLW9mZi1ieTogS2Fob2xhLCBNaWthIDxtaWthLmthaG9sYUBpbnRlbC5jb20+ Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNv bT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5j IHwgMzAgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gPiA+ICAxIGZpbGUgY2hhbmdl ZCwgMjIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+ID4gPiBpbmRleCBhMmEzZDkzZDY3YmQuLjYwMzBm YmFmYTU4MCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5j Cj4gPiA+IEBAIC0xOTY2LDEwICsxOTY2LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxf ZHBsbF9tZ3IgYnh0X3BsbF9tZ3IgPSB7Cj4gPiA+ICAJLmR1bXBfaHdfc3RhdGUgPSBieHRfZHVt cF9od19zdGF0ZSwKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBpbnQgY25sX2dldF9k dmZzX2xldmVsKGludCBjZGNsaywgaW50IHBvcnRjbGspCj4gPiA+ICt7Cj4gPiA+ICsJaWYgKGNk Y2xrID09IDE2ODAwMCAmJiBwb3J0Y2xrIDw9IDU5NDAwMCkKPiA+ID4gKwkJcmV0dXJuIDA7Cj4g PiA+ICsJZWxzZSBpZiAoY2RjbGsgPT0gMzM2MDAwICYmIHBvcnRjbGsgPD0gNTk0MDAwKQo+ID4g PiArCQlyZXR1cm4gMTsKPiA+ID4gKwllbHNlCj4gPiA+ICsJCXJldHVybiAyOwo+ID4gPiArfQo+ ID4gPiArCj4gPiA+ICBzdGF0aWMgdm9pZCBjbmxfZGRpX3BsbF9lbmFibGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCQkJICAgICAgIHN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqcGxsKQo+ID4gPiAgewo+ID4gPiAgCXVpbnQzMl90IHZhbDsKPiA+ID4gKwlpbnQg cmV0Owo+ID4gPiArCWludCBsZXZlbDsKPiA+ID4gKwlpbnQgY2RjbGssIHBvcnRjbGs7Cj4gPiA+ ICAKPiA+ID4gIAkvKiAxLiBFbmFibGUgRFBMTCBwb3dlciBpbiBEUExMX0VOQUJMRS4gKi8KPiA+ ID4gIAl2YWwgPSBJOTE1X1JFQUQoQ05MX0RQTExfRU5BQkxFKHBsbC0+aWQpKTsKPiA+ID4gQEAg LTIwMDYsMTEgKzIwMTksOSBAQCBzdGF0aWMgdm9pZCBjbmxfZGRpX3BsbF9lbmFibGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCS8qCj4gPiA+ICAJICogNS4gSWYg dGhlIGZyZXF1ZW5jeSB3aWxsIHJlc3VsdCBpbiBhIGNoYW5nZSB0byB0aGUgdm9sdGFnZQo+ID4g PiAgCSAqIHJlcXVpcmVtZW50LCBmb2xsb3cgdGhlIERpc3BsYXkgVm9sdGFnZSBGcmVxdWVuY3kg U3dpdGNoaW5nCj4gPiA+IC0JICogU2VxdWVuY2UgQmVmb3JlIEZyZXF1ZW5jeSBDaGFuZ2UKPiA+ ID4gLQkgKgo+ID4gPiAtCSAqIEZJWE1FOiAoRFZGUykgaXMgdXNlZCB0byBhZGp1c3QgdGhlIGRp c3BsYXkgdm9sdGFnZSB0byBtYXRjaCB0aGUKPiA+ID4gLQkgKiBkaXNwbGF5IGNsb2NrIGZyZXF1 ZW5jaWVzCj4gPiA+ICsJICogKERWRlMpIFNlcXVlbmNlIEJlZm9yZSBGcmVxdWVuY3kgQ2hhbmdl Cj4gPiA+ICAJICovCj4gPiA+ICsJcmV0ID0gY25sX2R2ZnNfcHJlX2NoYW5nZShkZXZfcHJpdik7 Cj4gPiA+ICAKPiA+ID4gIAkvKiA2LiBFbmFibGUgRFBMTCBpbiBEUExMX0VOQUJMRS4gKi8KPiA+ ID4gIAl2YWwgPSBJOTE1X1JFQUQoQ05MX0RQTExfRU5BQkxFKHBsbC0+aWQpKTsKPiA+ID4gQEAg LTIwMjgsMTEgKzIwMzksMTQgQEAgc3RhdGljIHZvaWQgY25sX2RkaV9wbGxfZW5hYmxlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIAkvKgo+ID4gPiAgCSAqIDguIElm IHRoZSBmcmVxdWVuY3kgd2lsbCByZXN1bHQgaW4gYSBjaGFuZ2UgdG8gdGhlIHZvbHRhZ2UKPiA+ ID4gIAkgKiByZXF1aXJlbWVudCwgZm9sbG93IHRoZSBEaXNwbGF5IFZvbHRhZ2UgRnJlcXVlbmN5 IFN3aXRjaGluZwo+ID4gPiAtCSAqIFNlcXVlbmNlIEFmdGVyIEZyZXF1ZW5jeSBDaGFuZ2UKPiA+ ID4gLQkgKgo+ID4gPiAtCSAqIEZJWE1FOiAoRFZGUykgaXMgdXNlZCB0byBhZGp1c3QgdGhlIGRp c3BsYXkgdm9sdGFnZSB0byBtYXRjaCB0aGUKPiA+ID4gLQkgKiBkaXNwbGF5IGNsb2NrIGZyZXF1 ZW5jaWVzCj4gPiA+ICsJICogKERWRlMpIFNlcXVlbmNlIEFmdGVyIEZyZXF1ZW5jeSBDaGFuZ2UK PiA+ID4gIAkgKi8KPiA+ID4gKwlpZiAocmV0ID09IDApIHsKPiA+ID4gKwkJY2RjbGsgPSBkZXZf cHJpdi0+Y2RjbGsuaHcuY2RjbGs7Cj4gPiA+ICsJCXBvcnRjbGsgPSBpbnRlbF9kZGlfcG9ydF9j bG9jayhkZXZfcHJpdiwgcGxsLT5pZCk7Cj4gPiA+ICsJCWxldmVsID0gY25sX2dldF9kdmZzX2xl dmVsKGNkY2xrLCBwb3J0Y2xrKTsKPiA+ID4gKwkJY25sX2R2ZnNfcG9zdF9jaGFuZ2UoZGV2X3By aXYsIGxldmVsKTsKPiA+IAo+ID4gVGhpcyBpc24ndCBob3cgSSBpbWFnaW5lZCB3ZSdkIGhhbmRs ZSB0aGlzLiBXaGF0IEkgd2FzIGFmdGVyIGlzCj4gPiBwcmUtY29tcHV0aW5nIHRoZSBjb3JyZWN0 ICJkZnZmcyBsZXZlbCIgKG9yIHdoYXQgSSdkIHByb2JhYmx5IGp1c3QgY2FsbAo+ID4gInZvbHRh Z2UiIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQpLCBhbmQgdGhlbiB3ZSdkIGp1c3QgbGV0IHRoZSBu b3JtYWwKPiA+IGNkY2xrIHByb2dyYW1taW5nIHNlcXVlbmNlIGRvIGl0cyB0aGluZy4KPiA+IAo+ ID4gSXMgaXQgZXZlbiBzYWZlIHRvIGRvIHRoaXMgd2l0aCBvdGhlciBwaXBlcy9wb3J0cyBlbmFi bGVkPyBJIHdvdWxkCj4gPiBoYXZlIGFzc3VtZWQgbm8sIGJ1dCBtYXliZSBJJ20gbWlzdGFrZW4/ Cj4gCj4gV2VsbCwgdGhpcyBpcyBob3cgdGhlIHNwZWMgaXMgd3JpdHRlbi4gU28gSSBhc3N1bWUg aXQgaXMgc2FmZSB0byBjaGFuZ2UKPiB0aGF0IGF0IHRoYXQgcG9pbnQuCj4gCj4gQWxzbyB3ZSBl bmFibGUgQ0RDTEsgZHVyaW5nIGJvb3Qgd2hpbGUgd2UgaGF2ZSBubyB3YXkgdG8gY29tcHV0ZSB0 aGUKPiBsaW5rIHJhdGUuIFNvIEkgZG9uJ3Qgc2VlIGEgYmV0dGVyIHdheSBvZiBoYWRsaW5nIHRo YXQuCgpXZSBkbyBhIGZ1bGwgc3RhdGUgcmVhZG91dCwgd2hpY2ggc2hvdWxkIHRlbGwgdXMgd2hh dCB2b2x0YWdlIHdlIG5lZWQuCkFuZCBpZiB0aGUgY2RjbGsgaXNuJ3QgZXZlbiBlbmFibGVkLCB0 aGVuIG9idmlvdXNseSB3ZSBjYW4ndCBoYXZlIGFueQpwaXBlcyBydW5uaW5nIGVpdGhlciwgc28g d2UgY2FuIHNhZmVseSBlbmFibGUgaXQgd2l0aCBhbnkgZnJlcXVlbmN5CmV2ZW4gYmVmb3JlIHRo ZSBmdWxsIHN0YXRlIHJlYWRvdXQuCgo+IFNvLCBBcnQgaXMgaXQgb2sgaW4gdGhlIHdheSB0aGF0 IEknbSBwcm9wb3NpbmcgaGVyZToKPiAKPiBvbiBjb3JlIGRpc3BsYXkgaW5pdDoKPiAKPiAtIGR2 ZnMtcHJlOwo+IC0gZW5hYmxlIGNkY2xrOwo+IC0gZHZmcy1wb3N0IGNvbnNpZGVyaW5nIGNkY2xr IG9ubHkgYW5kIGxpbmsgcmF0ZSAwOyAKPiAKPiBvbiBwbGwgaW5pdDoKPiAKPiAtIGNvbnNpZGVy IGNkY2xrIGFuZCBsaW5rIHJhdGUgYW5kIGlmIGRlc2lyZWQgbGV2ZWwgaXMgZGlmZmVyZW50IGZy b20gd2hhdCBpcyBjdXJyZW50bHkgc2V0OiBkdmZzLXByZQo+IC0gZW5hYmxlIHBsbAo+IC0gY29u c2lkZXIgY2RjbGsgYW5kIGxpbmsgcmF0ZSBhbmQgaWYgZGVzaXJlZCBsZXZlbCBpcyBkaWZmZXJl bnQgZnJvbSB3aGF0IGlzIGN1cnJlbnRseSBzZXQ6IGR2ZnMtcG9zdCB3aXRoIG5ldyBsZXZlbC4K PiAKPiBUaGlzIGlzIGhvdyBJIHJlYWQgdGhlIHNwZWMsIGJ1dCBwbGVhc2UgbGV0IG1lIGtub3cg d2hhdCBJJ20gbWlzc2luZy4KCkhtbS4gT0ssIHNvIG1heWJlIHdlIGNhbiBjaGFuZ2UgdGhlIHZv bHRhZ2Ugd2hpbGUgdGhpbmdzIGFyZSB1cCBhbmQKcnVubmluZy4KClRoYXQgc2FpZCwgdGhlIHZv bHRhZ2UgbGV2ZWwgaXMgYSBnbG9iYWwgdGhpbmcsIHNvIHdoZW5ldmVyIHdlIGNoYW5nZSBpdAp3 ZSBtdXN0IGNvbnNpZGVyIHRoZSBzdGF0ZSBvZiBhbGwgcG9ydHMsIGFuZCB0aGUgY2RjbGsuIFRo aXMgbG9va3MgbGlrZQppdCBvbmx5IGNvbnNpZGVycyB0aGUgY3VycmVudCBwb3J0LiBUaHVzIGlm IHdlIGZpcnN0IGVuYWJsZSBhIHBvcnQgdGhhdApuZWVkcyBoaWdoIHZvbHRhZ2UsIGFuZCBsYXRl ciBhIHBvcnQgdGhhdCBjYW4gbWFrZSBkdWUgd2l0aCBhIGxvd2VyCnZvbHRhZ2Ugd2UnbGwgZW5k IHVwIHdpdGggc29tZXRoaW5nIG5vdCB3b3JraW5nLgoKV2UgbWlndGggYWxzbyBlbmQgdXAgY2hh bmdpbmcgdGhlIHZvbHRhZ2UgbXVsdGlwbGUgdGltZXMgaWYgd2UgZW5hYmxlCm11bHRpcGxlIHBv cnRzIHdpdGggb25lIGF0b21pYyBvcGVyYXRpb24uIElmIHRoaW5ncyB3ZW50IHZpYSB0aGUgbm9y bWFsCmNkY2xrIHBhdGggd2UnZCBqdXN0IGRvIHRoZSB2b2x0YWdlIGNoYW5nZSB0aGUgb25jZS4K CkFkZGl0b25hbGx5IEkgZG9uJ3QgbGlrZSB0aGF0IHRoZSBjb2RlIGlzIGdldHRpbmcgdGhlIGN1 cnJlbnQgY2xvY2sgYnkKbWVhbnMgb2YgcmVhZG91dCBpbiB0aGUgbWlkZGxlIHRoZSBtb2Rlc2V0 LiBXaXRoIGF0b21pYyB0aGUgZGVzaWduIGlzCnByZXR0eSBtdWNoIHRvIHBhc3MgYWxsIHN0YXRl IGluIGV4cGxpY2l0bHksIGFuZCByZWFkb3V0IGlzIG9ubHkgdXNlZAp0byB0YWtlIG92ZXIgdGhl IGZyb20gdGhlIEJJT1MsIGFuZCB0byB2ZXJpZnkgdGhhdCB3ZSBwcm9ncmFtbWVkIHRoZQpoYXJk d2FyZSBjb3JyZWN0bHkuCiAKPiAKPiBNYXliZSBJJ20gbWlzc2luZyB0aGUgbGluayByYXRlIGZv ciBlRFAgZHVyaW5nIGNvcmUgZGlzcGxheSBpbml0IGxpa2Ugd2UgYXJlIGN1cnJlbnRseSBraW5k IG9mIG1pc3NpbmcgZm9yIFNLTD8KCkhtbS4gV2hhdCBleGFjdGx5IGFyZSB3ZSBtaXNzaW5nPwoK LS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==