From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH 09/16] drm/i915/bxt: Pass drm_i915_private to DDI PHY, CDCLK helpers Date: Tue, 12 Apr 2016 18:12:35 +0300 Message-ID: <20160412151235.GD18193@boom> References: <1459515767-29228-1-git-send-email-imre.deak@intel.com> <1459515767-29228-10-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id E81036E07C for ; Tue, 12 Apr 2016 15:14:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1459515767-29228-10-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBcHIgMDEsIDIwMTYgYXQgMDQ6MDI6NDBQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEZvciBpbnRlcm5hbCBBUElzIHBhc3NpbmcgZGV2X3ByaXYgaXMgcHJlZmVycmVkIHRvIHJl ZHVjZSBpbmRpcmVjdGlvbnMsCj4gc28gY29udmVydCBvdmVyIGEgZmV3IERESSBQSFksIENEQ0xL IGhlbHBlcnMuCj4gCj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCj4gCj4gU2lnbmVkLW9mZi1ieTog SW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgoKUmV2aWV3ZWQtYnk6IERhdmlkIFdlaW5l aGFsbCA8ZGF2aWQud2VpbmVoYWxsQGludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgfCAxMiArKysrLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgICB8IDEwICsrKystLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICB8IDE4ICsrKysrKystLS0tLS0tLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHwgIDQgKystLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgIHwgIDggKysrKy0tLS0KPiAgNSBmaWxlcyBjaGFu Z2VkLCAyMSBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMKPiBpbmRleCBhYTdkZjEwLi4zOTk4ZjZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jCj4gQEAgLTEwNzAsMTIgKzEwNzAsMTAgQEAgc3RhdGljIGludCBoc3dfc3VzcGVuZF9j b21wbGV0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICBzdGF0aWMg aW50IGJ4dF9zdXNwZW5kX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gLQo+ ICAJLyogVE9ETzogd2hlbiBEQzUgc3VwcG9ydCBpcyBhZGRlZCBkaXNhYmxlIERDNSBoZXJlLiAq Lwo+ICAKPiAtCWJyb3h0b25fZGRpX3BoeV91bmluaXQoZGV2KTsKPiAtCWJyb3h0b25fdW5pbml0 X2NkY2xrKGRldik7Cj4gKwlicm94dG9uX2RkaV9waHlfdW5pbml0KGRldl9wcml2KTsKPiArCWJy b3h0b25fdW5pbml0X2NkY2xrKGRldl9wcml2KTsKPiAgCWJ4dF9lbmFibGVfZGM5KGRldl9wcml2 KTsKPiAgCj4gIAlyZXR1cm4gMDsKPiBAQCAtMTA4Myw4ICsxMDgxLDYgQEAgc3RhdGljIGludCBi eHRfc3VzcGVuZF9jb21wbGV0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IAo+ICBzdGF0aWMgaW50IGJ4dF9yZXN1bWVfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ ZGV2Owo+IC0KPiAgCS8qIFRPRE86IHdoZW4gQ1NSIEZXIHN1cHBvcnQgaXMgYWRkZWQgbWFrZSBz dXJlIHRoZSBGVyBpcyBsb2FkZWQgKi8KPiAgCj4gIAlieHRfZGlzYWJsZV9kYzkoZGV2X3ByaXYp Owo+IEBAIC0xMDkzLDggKzEwODksOCBAQCBzdGF0aWMgaW50IGJ4dF9yZXN1bWVfcHJlcGFyZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkgKiBUT0RPOiB3aGVuIERDNSBz dXBwb3J0IGlzIGFkZGVkIGVuYWJsZSBEQzUgaGVyZSBpZiB0aGUgQ1NSIEZXCj4gIAkgKiBpcyBh dmFpbGFibGUuCj4gIAkgKi8KPiAtCWJyb3h0b25faW5pdF9jZGNsayhkZXYpOwo+IC0JYnJveHRv bl9kZGlfcGh5X2luaXQoZGV2KTsKPiArCWJyb3h0b25faW5pdF9jZGNsayhkZXZfcHJpdik7Cj4g Kwlicm94dG9uX2RkaV9waHlfaW5pdChkZXZfcHJpdik7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IGY5MTMwNmUuLjI5MDE3YTQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0xODM0LDExICsxODM0LDExIEBAIHN0YXRp YyB2b2lkIGJyb3h0b25fcGh5X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJSTkxNV9XUklURShCWFRfUEhZX0NUTF9GQU1JTFkocGh5KSwgdmFsKTsKPiAgfQo+ICAK PiAtdm9pZCBicm94dG9uX2RkaV9waHlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt2 b2lkIGJyb3h0b25fZGRpX3BoeV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgewo+ICAJLyogRW5hYmxlIFBIWTEgZmlyc3Qgc2luY2UgaXQgcHJvdmlkZXMgUmNvbXAg Zm9yIFBIWTAgKi8KPiAtCWJyb3h0b25fcGh5X2luaXQoZGV2LT5kZXZfcHJpdmF0ZSwgRFBJT19Q SFkxKTsKPiAtCWJyb3h0b25fcGh5X2luaXQoZGV2LT5kZXZfcHJpdmF0ZSwgRFBJT19QSFkwKTsK PiArCWJyb3h0b25fcGh5X2luaXQoZGV2X3ByaXYsIERQSU9fUEhZMSk7Cj4gKwlicm94dG9uX3Bo eV9pbml0KGRldl9wcml2LCBEUElPX1BIWTApOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBicm94 dG9uX3BoeV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IEBAIC0x ODUxLDEwICsxODUxLDggQEAgc3RhdGljIHZvaWQgYnJveHRvbl9waHlfdW5pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCUk5MTVfV1JJVEUoQlhUX1BIWV9DVExfRkFN SUxZKHBoeSksIHZhbCk7Cj4gIH0KPiAgCj4gLXZvaWQgYnJveHRvbl9kZGlfcGh5X3VuaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt2b2lkIGJyb3h0b25fZGRpX3BoeV91bmluaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0KPiAgCWJyb3h0b25fcGh5 X3VuaW5pdChkZXZfcHJpdiwgRFBJT19QSFkxKTsKPiAgCWJyb3h0b25fcGh5X3VuaW5pdChkZXZf cHJpdiwgRFBJT19QSFkwKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IGluZGV4IGU2YjVlZTUuLmQ5ZGE4OWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gQEAgLTUzMjIsOSArNTMyMiw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9j ZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCWludGVsX3VwZGF0ZV9tYXhfY2RjbGso ZGV2KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgYnJveHRvbl9zZXRfY2RjbGsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IGZyZXF1ZW5jeSkKPiArc3RhdGljIHZvaWQgYnJveHRvbl9zZXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgZnJlcXVlbmN5KQo+ ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAJdWludDMyX3QgZGl2aWRlcjsKPiAgCXVpbnQzMl90IHJhdGlvOwo+ICAJdWludDMy X3QgY3VycmVudF9mcmVxOwo+IEBAIC01NDM4LDEyICs1NDM3LDExIEBAIHN0YXRpYyB2b2lkIGJy b3h0b25fc2V0X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBmcmVxdWVuY3kpCj4g IAkJcmV0dXJuOwo+ICAJfQo+ICAKPiAtCWludGVsX3VwZGF0ZV9jZGNsayhkZXYpOwo+ICsJaW50 ZWxfdXBkYXRlX2NkY2xrKGRldl9wcml2LT5kZXYpOwo+ICB9Cj4gIAo+IC12b2lkIGJyb3h0b25f aW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt2b2lkIGJyb3h0b25faW5pdF9j ZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAl1aW50MzJf dCB2YWw7Cj4gIAo+ICAJLyoKPiBAQCAtNTQ3Miw3ICs1NDcwLDcgQEAgdm9pZCBicm94dG9uX2lu aXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCSAqIC0gY2hlY2sgaWYgc2V0dGlu ZyB0aGUgbWF4IChvciBhbnkpIGNkY2xrIGZyZXEgaXMgcmVhbGx5IG5lY2Vzc2FyeQo+ICAJICog ICBoZXJlLCBpdCBiZWxvbmdzIHRvIG1vZGVzZXQgdGltZQo+ICAJICovCj4gLQlicm94dG9uX3Nl dF9jZGNsayhkZXYsIDYyNDAwMCk7Cj4gKwlicm94dG9uX3NldF9jZGNsayhkZXZfcHJpdiwgNjI0 MDAwKTsKPiAgCj4gIAlJOTE1X1dSSVRFKERCVUZfQ1RMLCBJOTE1X1JFQUQoREJVRl9DVEwpIHwg REJVRl9QT1dFUl9SRVFVRVNUKTsKPiAgCVBPU1RJTkdfUkVBRChEQlVGX0NUTCk7Cj4gQEAgLTU0 ODMsMTAgKzU0ODEsOCBAQCB2b2lkIGJyb3h0b25faW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJCURSTV9FUlJPUigiREJ1ZiBwb3dlciBlbmFibGUgdGltZW91dCFcbiIpOwo+ ICB9Cj4gIAo+IC12b2lkIGJyb3h0b25fdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gK3ZvaWQgYnJveHRvbl91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+IC0KPiAgCUk5MTVfV1JJVEUoREJVRl9DVEwsIEk5MTVfUkVBRChE QlVGX0NUTCkgJiB+REJVRl9QT1dFUl9SRVFVRVNUKTsKPiAgCVBPU1RJTkdfUkVBRChEQlVGX0NU TCk7Cj4gIAo+IEBAIC01NDk2LDcgKzU0OTIsNyBAQCB2b2lkIGJyb3h0b25fdW5pbml0X2NkY2xr KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJRFJNX0VSUk9SKCJEQnVmIHBvd2VyIGRpc2Fi bGUgdGltZW91dCFcbiIpOwo+ICAKPiAgCS8qIFNldCBtaW5pbXVtIChieXBhc3MpIGZyZXF1ZW5j eSwgaW4gZWZmZWN0IHR1cm5pbmcgb2ZmIHRoZSBERSBQTEwgKi8KPiAtCWJyb3h0b25fc2V0X2Nk Y2xrKGRldiwgMTkyMDApOwo+ICsJYnJveHRvbl9zZXRfY2RjbGsoZGV2X3ByaXYsIDE5MjAwKTsK PiAgCj4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX1BM TFMpOwo+ICB9Cj4gQEAgLTk1MzIsNyArOTUyOCw3IEBAIHN0YXRpYyB2b2lkIGJyb3h0b25fbW9k ZXNldF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiAg CQl0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKTsKPiAgCXVuc2lnbmVkIGludCByZXFf Y2RjbGsgPSBvbGRfaW50ZWxfc3RhdGUtPmRldl9jZGNsazsKPiAgCj4gLQlicm94dG9uX3NldF9j ZGNsayhkZXYsIHJlcV9jZGNsayk7Cj4gKwlicm94dG9uX3NldF9jZGNsayh0b19pOTE1KGRldiks IHJlcV9jZGNsayk7Cj4gIH0KPiAgCj4gIC8qIGNvbXB1dGUgdGhlIG1heCByYXRlIGZvciBuZXcg Y29uZmlndXJhdGlvbiAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcGxsX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+IGlu ZGV4IDExNzVlZWIuLmZiZTg4YjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBsbF9tZ3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxf bWdyLmMKPiBAQCAtMTY0NSw4ICsxNjQ1LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3BsbF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJaWYgKCEoSTkxNV9SRUFEKExDUExMMV9D VEwpICYgTENQTExfUExMX0VOQUJMRSkpCj4gIAkJCURSTV9FUlJPUigiTENQTEwxIGlzIGRpc2Fi bGVkXG4iKTsKPiAgCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gLQkJYnJveHRvbl9p bml0X2NkY2xrKGRldik7Cj4gLQkJYnJveHRvbl9kZGlfcGh5X2luaXQoZGV2KTsKPiArCQlicm94 dG9uX2luaXRfY2RjbGsoZGV2X3ByaXYpOwo+ICsJCWJyb3h0b25fZGRpX3BoeV9pbml0KGRldl9w cml2KTsKPiAgCX0gZWxzZSB7Cj4gIAkJLyoKPiAgCQkgKiBUaGUgTENQTEwgcmVnaXN0ZXIgc2hv dWxkIGJlIHR1cm5lZCBvbiBieSB0aGUgQklPUy4gRm9yIG5vdwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gaW5kZXggOGJhMmFjMy4uZTg4NDNhNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gQEAgLTEyMjIsMTAgKzEyMjIsMTAgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgdm9pZCBoc3dfZW5hYmxlX3BjOChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGhzd19kaXNhYmxlX3BjOChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IC12b2lkIGJyb3h0b25faW5pdF9jZGNsayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAtdm9pZCBicm94dG9uX3VuaW5pdF9jZGNsayhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKPiAtdm9pZCBicm94dG9uX2RkaV9waHlfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKPiAtdm9pZCBicm94dG9uX2RkaV9waHlfdW5pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ICt2b2lkIGJyb3h0b25faW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGJyb3h0b25fdW5pbml0X2NkY2xrKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK3ZvaWQgYnJveHRvbl9kZGlfcGh5X2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArdm9pZCBicm94dG9uX2RkaV9w aHlfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgYnh0 X2VuYWJsZV9kYzkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBi eHRfZGlzYWJsZV9kYzkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9p ZCBza2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IC0t IAo+IDIuNS4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=