From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 4/4] drm/panel: Add helper for simple panel connector Date: Thu, 5 May 2016 19:03:21 +0200 Message-ID: <20160505170321.GO1286@phenom.ffwll.local> References: <1462454674-2246-1-git-send-email-noralf@tronnes.org> <1462454674-2246-5-git-send-email-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4821B6E9F2 for ; Thu, 5 May 2016 17:03:23 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id e201so4500489wme.2 for ; Thu, 05 May 2016 10:03:23 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1462454674-2246-5-git-send-email-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: treding@nvidia.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXkgMDUsIDIwMTYgYXQgMDM6MjQ6MzRQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IEFkZCBmdW5jdGlvbiB0byBjcmVhdGUgYSBzaW1wbGUgY29ubmVjdG9yIGZvciBh IHBhbmVsLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25u ZXMub3JnPgoKTGlrZSBpbiB0aGUgcHJldmlvdXMgcGF0Y2ggcGxlYXNlIGFsc28gYWRkIGEgbmV3 IHNlY3Rpb24gZm9yIHRoZSBwYW5lbApoZWxwZXJzIHRvIGdwdS50bXBsLiBJIGRvbid0IHRoaW5r IHRoaXMgbmVlZHMgYW4gb3ZlcnZpZXcgc2VjdGlvbiwgaXQncyBzbwpzaW1wbGUuIEJ1dCBhZGRp bmcgc29tZSBjcm9zcyByZWZlcmVuY2VzIGZyb20gdGhlIGRybV9wYW5lbC5jIGtlcm5lbGRvYyB0 bwp0aGlzIGFuZCBiYWNrIHdvdWxkIGJlIHJlYWwgZ29vZC4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9NYWtlZmlsZSAgICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3Bh bmVsX2hlbHBlci5jIHwgMTE3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcgICAgICB8ICAgNyArKysKPiAgaW5jbHVk ZS9kcm0vZHJtX3BhbmVsX2hlbHBlci5oICAgICB8ICAyMCArKysrKysrCj4gIDQgZmlsZXMgY2hh bmdlZCwgMTQ1IGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS9kcm1fcGFuZWxfaGVscGVyLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJt L2RybV9wYW5lbF9oZWxwZXIuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiBpbmRleCA3ZTk5OTIzLi4zZjM2OTZj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9NYWtlZmlsZQo+IEBAIC0xOCw2ICsxOCw3IEBAIGRybS0kKENPTkZJR19DT01QQVQp ICs9IGRybV9pb2MzMi5vCj4gIGRybS0kKENPTkZJR19EUk1fR0VNX0NNQV9IRUxQRVIpICs9IGRy bV9nZW1fY21hX2hlbHBlci5vCj4gIGRybS0kKENPTkZJR19QQ0kpICs9IGF0aV9wY2lnYXJ0Lm8K PiAgZHJtLSQoQ09ORklHX0RSTV9QQU5FTCkgKz0gZHJtX3BhbmVsLm8KPiArZHJtLSQoQ09ORklH X0RSTV9QQU5FTF9IRUxQRVIpICs9IGRybV9wYW5lbF9oZWxwZXIubwo+ICBkcm0tJChDT05GSUdf T0YpICs9IGRybV9vZi5vCj4gIGRybS0kKENPTkZJR19BR1ApICs9IGRybV9hZ3BzdXBwb3J0Lm8K PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWxfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsX2hlbHBlci5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwLi41ZDhiNjIzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGFuZWxfaGVscGVyLmMKPiBAQCAtMCwwICsxLDExNyBAQAo+ICsvKgo+ICsg KiBDb3B5cmlnaHQgKEMpIDIwMTYgTm9yYWxmIFRyw7hubmVzCj4gKyAqCj4gKyAqIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4gKyAqIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICsKPiArI2luY2x1ZGUgPGRybS9kcm1Q Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRy bS9kcm1fY3J0Y19oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KPiArCj4g K3N0cnVjdCBkcm1fcGFuZWxfY29ubmVjdG9yIHsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yIGJh c2U7Cj4gKwlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsKPiArfTsKPiArCj4gK3N0YXRpYyBpbmxp bmUgc3RydWN0IGRybV9wYW5lbF9jb25uZWN0b3IgKgo+ICt0b19kcm1fcGFuZWxfY29ubmVjdG9y KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXJldHVybiBjb250YWlu ZXJfb2YoY29ubmVjdG9yLCBzdHJ1Y3QgZHJtX3BhbmVsX2Nvbm5lY3RvciwgYmFzZSk7Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQgZHJtX3BhbmVsX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJcmV0dXJuIGRybV9wYW5lbF9nZXRfbW9k ZXModG9fZHJtX3BhbmVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpLT5wYW5lbCk7Cj4gK30KPiArCj4g K3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKgo+ICtkcm1fcGFuZWxfY29ubmVjdG9yX2Jlc3Rf ZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlyZXR1cm4g ZHJtX2VuY29kZXJfZmluZChjb25uZWN0b3ItPmRldiwgY29ubmVjdG9yLT5lbmNvZGVyX2lkc1sw XSk7Cj4gK30KCkFzIG1lbnRpb25lZCBpbiBteSBwcmV2aW91cyByZXZpZXcsIHRoaXMgZnVuY3Rp b24gd291bGQgYmUgZXh0cmVtZWx5CnVzZWZ1bCB0byByaWQgdG9ucyBvZiBkcml2ZXJzIG9mIGJv aWxlcnBsYXRlIC0gbW9zdCBkcm1fY29ubmVjdG9yIG9ubHkKc3VwcG9ydCBleGFjdGx5IDEgZW5j b2Rlciwgc3RhdGljYWxseSBkZXRlcm1pbmVkIGF0IGRyaXZlciBpbml0IHRpbWUuCgpQbGVhc2Ug cHV0IHRoaXMgaGVscGVyIGludG8gdGhlIGF0b21pYyBoZWxwZXIgbGlicmFyeSwgYW5kIG1heWJl IGNhbGwgaXQKc29tZXRoaW5nIGxpa2UKCmRybV9hdG9taWNfaGVscGVyX2Jlc3RfZW5jb2Rlci4K ClRvIG1ha2Ugc3VyZSBpdCdzIG5ldmVyIGFidXNlZCBieSBhY2NpZGVudCBwbGVhc2UgYWxzbyBh ZGQgYSAKCglXQVJOX09OKGNvbm5lY3Rvci0+ZW5jb2Rlcl9pZHNbMV0pOwoKdG8gbWFrZSBzdXJl IHRoYXQgdGhlcmUncyByZWFsbHkgb25seSBqdXN0IG9uZSBlbmNvZGVyIGZvciB0aGlzIGNvbm5l Y3Rvci4KCklmIHlvdSdyZSBib3JlZCB5b3UgY2FuIGFsc28gZ28gdGhyb3VnaCBkcml2ZXJzIGFu ZCB1c2UgdGhhdCBldmVyeXdoZXJlIGl0CmZpdHMsIGl0IHdvdWxkIHJlc3VsdCBpbiBhIF9sb3Rf IG9mIGRlbGV0ZWQgY29kZS4gQnV0IGFsc28gbmVlZHMgcXVpdGUgYQpiaXQgb2YgYXVkaXQgd29y ayAuLi4KCk90aGVyd2lzZSBsZ3RtLCBidXQgcGxlYXNlIGFzayBUaGllcnJ5IGZvciBhbiBhY2sg YXMgdGhlIHBhbmVsIG1haW50YWluZXIuCi1EYW5pZWwKCgo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBkcm1fcGFuZWxfY29ubmVjdG9yX2hmdW5j cyA9IHsKPiArCS5nZXRfbW9kZXMgPSBkcm1fcGFuZWxfY29ubmVjdG9yX2dldF9tb2RlcywKPiAr CS5iZXN0X2VuY29kZXIgPSBkcm1fcGFuZWxfY29ubmVjdG9yX2Jlc3RfZW5jb2RlciwKPiArfTsK PiArCj4gK3N0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4gK2RybV9wYW5lbF9jb25u ZWN0b3JfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2Up Cj4gK3sKPiArCWlmIChkcm1fZGV2aWNlX2lzX3VucGx1Z2dlZChjb25uZWN0b3ItPmRldikpCj4g KwkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwo+ICsKPiArCXJldHVybiBj b25uZWN0b3ItPnN0YXR1czsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHJtX3BhbmVsX2Nvbm5l Y3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0 cnVjdCBkcm1fcGFuZWxfY29ubmVjdG9yICpwYW5lbF9jb25uZWN0b3I7Cj4gKwo+ICsJcGFuZWxf Y29ubmVjdG9yID0gdG9fZHJtX3BhbmVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICsJZHJtX3Bh bmVsX2RldGFjaChwYW5lbF9jb25uZWN0b3ItPnBhbmVsKTsKPiArCWRybV9wYW5lbF9yZW1vdmUo cGFuZWxfY29ubmVjdG9yLT5wYW5lbCk7Cj4gKwlkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIoY29u bmVjdG9yKTsKPiArCWRybV9jb25uZWN0b3JfY2xlYW51cChjb25uZWN0b3IpOwo+ICsJa2ZyZWUo cGFuZWxfY29ubmVjdG9yKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX2Z1bmNzIGRybV9wYW5lbF9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gKwkuZHBtcyA9IGRy bV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAo+ICsJLnJlc2V0ID0gZHJtX2F0b21pY19o ZWxwZXJfY29ubmVjdG9yX3Jlc2V0LAo+ICsJLmRldGVjdCA9IGRybV9wYW5lbF9jb25uZWN0b3Jf ZGV0ZWN0LAo+ICsJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0 b3JfbW9kZXMsCj4gKwkuZGVzdHJveSA9IGRybV9wYW5lbF9jb25uZWN0b3JfZGVzdHJveSwKPiAr CS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1 cGxpY2F0ZV9zdGF0ZSwKPiArCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIGRybV9w YW5lbF9jb25uZWN0b3JfY3JlYXRlIC0gQ3JlYXRlIHNpbXBsZSBjb25uZWN0b3IgZm9yIHBhbmVs Cj4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPiArICogQHBhbmVsOiBEUk0gcGFuZWwKPiArICogQGNv bm5lY3Rvcl90eXBlOiB1c2VyIHZpc2libGUgdHlwZSBvZiB0aGUgY29ubmVjdG9yCj4gKyAqCj4g KyAqIENyZWF0ZXMgYSBzaW1wbGUgY29ubmVjdG9yIGZvciBhIHBhbmVsLgo+ICsgKiBUaGUgcGFu ZWwgbmVlZHMgdG8gcHJvdmlkZSBhIGdldF9tb2RlcygpIGZ1bmN0aW9uLgo+ICsgKgo+ICsgKiBS ZXR1cm5zOgo+ICsgKiBQb2ludGVyIHRvIG5ldyBjb25uZWN0b3Igb3IgRVJSX1BUUiBvbiBmYWls dXJlLgo+ICsgKi8KPiArc3RydWN0IGRybV9jb25uZWN0b3IgKmRybV9wYW5lbF9jb25uZWN0b3Jf Y3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCQkJCSBzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCwKPiArCQkJCQkJIGludCBjb25uZWN0b3JfdHlwZSkKPiArewo+ICsJc3RydWN0IGRy bV9wYW5lbF9jb25uZWN0b3IgKnBhbmVsX2Nvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3I7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXBhbmVsX2Nvbm5lY3RvciA9IGt6 YWxsb2Moc2l6ZW9mKCpwYW5lbF9jb25uZWN0b3IpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghcGFu ZWxfY29ubmVjdG9yKQo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICsKPiArCXBhbmVs X2Nvbm5lY3Rvci0+cGFuZWwgPSBwYW5lbDsKPiArCWNvbm5lY3RvciA9ICZwYW5lbF9jb25uZWN0 b3ItPmJhc2U7Cj4gKwlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmZHJtX3Bh bmVsX2Nvbm5lY3Rvcl9oZnVuY3MpOwo+ICsJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwg Y29ubmVjdG9yLCAmZHJtX3BhbmVsX2Nvbm5lY3Rvcl9mdW5jcywKPiArCQkJCSBjb25uZWN0b3Jf dHlwZSk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJa2ZyZWUocGFuZWxfY29ubmVjdG9yKTsKPiArCQly ZXR1cm4gRVJSX1BUUihyZXQpOwo+ICsJfQo+ICsKPiArCWNvbm5lY3Rvci0+c3RhdHVzID0gY29u bmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4gKwlkcm1fcGFuZWxfaW5pdChwYW5lbCk7Cj4gKwlk cm1fcGFuZWxfYWRkKHBhbmVsKTsKPiArCWRybV9wYW5lbF9hdHRhY2gocGFuZWwsIGNvbm5lY3Rv cik7Cj4gKwo+ICsJcmV0dXJuIGNvbm5lY3RvcjsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9w YW5lbF9jb25uZWN0b3JfY3JlYXRlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+IGluZGV4IDE1MDBh YjkuLjg3MjY0YTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+IEBAIC00LDYgKzQsMTMgQEAg Y29uZmlnIERSTV9QQU5FTAo+ICAJaGVscAo+ICAJICBQYW5lbCByZWdpc3RyYXRpb24gYW5kIGxv b2t1cCBmcmFtZXdvcmsuCj4gIAo+ICtjb25maWcgRFJNX1BBTkVMX0hFTFBFUgo+ICsJYm9vbAo+ ICsJZGVwZW5kcyBvbiBEUk0KPiArCXNlbGVjdCBEUk1fUEFORUwKPiArCWhlbHAKPiArCSAgUGFu ZWwgaGVscGVyLgo+ICsKPiAgbWVudSAiRGlzcGxheSBQYW5lbHMiCj4gIAlkZXBlbmRzIG9uIERS TSAmJiBEUk1fUEFORUwKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbF9o ZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9wYW5lbF9oZWxwZXIuaAo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYzMzNTVlMwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9p bmNsdWRlL2RybS9kcm1fcGFuZWxfaGVscGVyLmgKPiBAQCAtMCwwICsxLDIwIEBACj4gKy8qCj4g KyAqIENvcHlyaWdodCAoQykgMjAxNiBOb3JhbGYgVHLDuG5uZXMKPiArICoKPiArICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiArICogKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9fRFJNX1BBTkVM X0hFTFBFUl9IX18KPiArI2RlZmluZSBfX0RSTV9QQU5FTF9IRUxQRVJfSF9fCj4gKwo+ICtzdHJ1 Y3QgZHJtX2RldmljZTsKPiArc3RydWN0IGRybV9wYW5lbDsKPiArCj4gK3N0cnVjdCBkcm1fY29u bmVjdG9yICpkcm1fcGFuZWxfY29ubmVjdG9yX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICsJCQkJCQkgc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCj4gKwkJCQkJCSBpbnQgY29ubmVj dG9yX3R5cGUpOwo+ICsKPiArI2VuZGlmCj4gLS0gCj4gMi4yLjIKPiAKCi0tIApEYW5pZWwgVmV0 dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZnds bC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK