From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm/i915: Configure SKL+ scaler initial phase correctly Date: Fri, 1 Jun 2018 18:52:48 +0300 Message-ID: <20180601155248.GY23723@intel.com> References: <20180521185613.5097-1-ville.syrjala@linux.intel.com> <20180521185613.5097-2-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E685A6E6E8 for ; Fri, 1 Jun 2018 15:52:51 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Srinivas, Vidya" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXkgMzEsIDIwMTggYXQgMDQ6MjA6MjRBTSArMDAwMCwgU3Jpbml2YXMsIFZpZHlh IHdyb3RlOgo+IFRoYW5rIHlvdS4KPiBSZXZpZXdlZC1CeTogVmlkeWEgU3Jpbml2YXMgPHZpZHlh LnNyaW5pdmFzQGludGVsLmNvbT4KClRoYW5rcy4gU2VyaWVzIHB1c2hlZCB0byBkaW5xLgoKPiAK PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiBWaWxsZSBTeXJqYWxhIFtt YWlsdG86dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb21dCj4gPiBTZW50OiBUdWVzZGF5LCBN YXkgMjIsIDIwMTggMTI6MjYgQU0KPiA+IFRvOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gPiBDYzogU3Jpbml2YXMsIFZpZHlhIDx2aWR5YS5zcmluaXZhc0BpbnRlbC5jb20+OyBN YWFydGVuIExhbmtob3JzdAo+ID4gPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K PiA+IFN1YmplY3Q6IFtQQVRDSCAyLzJdIGRybS9pOTE1OiBDb25maWd1cmUgU0tMKyBzY2FsZXIg aW5pdGlhbCBwaGFzZSBjb3JyZWN0bHkKPiA+IAo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IAo+ID4gU2V0IHVwIHRoZSBTS0wrIHNj YWxlciBpbml0aWFsIHBoYXNlIHJlZ2lzdGVycyBjb3JyZWN0bHkuIE90aGVyd2lzZSB3ZSBzdGFy dAo+ID4gZmV0Y2hpbmcgdGhlIGRhdGEgZnJvbSB0aGUgY2VudGVyIG9mIHRoZSBmaXJzdCBwaXhl bCBpbnN0ZWFkIG9mIHRoZSB0b3AtbGVmdAo+ID4gY29ybmVyLCB3aGljaCBvYnZpb3VzbHkgdGhl biBsZWFkcyB0byByaWdodC9ib3R0b20gZWRnZXMgcmVwbGljYXRpbmcgZGF0YQo+ID4gZXhjZXNz aXZlbHkgYXMgdGhlIGRhdGEgcnVucyBvdXQgaGFsZiBhIHBpeGVsIHRvbyBzb29uLgo+ID4gCj4g PiBDYzogVmlkeWEgU3Jpbml2YXMgPHZpZHlhLnNyaW5pdmFzQGludGVsLmNvbT4KPiA+IENjOiBN YWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4g U2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8 ICA0ICsrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA0MQo+ ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDEgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jICB8IDI2ICsrKysrKysrKysrKysrKysrKysrKy0tCj4gPiAgNCBmaWxl cyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oIGluZGV4IDE5NmEwZWI3OTI3Mi4uMDk0NTI3NDAzZWRlCj4g PiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IEBAIC02Nzc0LDYgKzY3NzQs MTAgQEAgZW51bSB7Cj4gPiAgI2RlZmluZSBfUFNfVlBIQVNFXzFCICAgICAgIDB4Njg5ODgKPiA+ ICAjZGVmaW5lIF9QU19WUEhBU0VfMkIgICAgICAgMHg2OEE4OAo+ID4gICNkZWZpbmUgX1BTX1ZQ SEFTRV8xQyAgICAgICAweDY5MTg4Cj4gPiArI2RlZmluZSAgUFNfWV9QSEFTRSh4KQkJKCh4KSA8 PCAxNikKPiA+ICsjZGVmaW5lICBQU19VVl9SR0JfUEhBU0UoeCkJKCh4KSA8PCAwKQo+ID4gKyNk ZWZpbmUgICBQU19QSEFTRV9NQVNLCSgweDdmZmYgPDwgMSkgLyogdTIuMTMgKi8KPiA+ICsjZGVm aW5lICAgUFNfUEhBU0VfVFJJUAkoMSA8PCAwKQo+ID4gCj4gPiAgI2RlZmluZSBfUFNfSFBIQVNF XzFBICAgICAgIDB4NjgxOTQKPiA+ICAjZGVmaW5lIF9QU19IUEhBU0VfMkEgICAgICAgMHg2ODI5 NAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IDQyYzFm NGE1NjU1Ni4uMDcxODU2NDRhODhhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiA+IEBAIC00NzI5LDYgKzQ3MjksMzkgQEAgc3RhdGljIHZvaWQgY3B0X3Zlcmlm eV9tb2Rlc2V0KHN0cnVjdAo+ID4gZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSkKPiA+ICAJfQo+ ID4gIH0KPiA+IAo+ID4gKy8qCj4gPiArICogVGhlIGhhcmR3YXJlIHBoYXNlIDAuMCByZWZlcnMg dG8gdGhlIGNlbnRlciBvZiB0aGUgcGl4ZWwuCj4gPiArICogV2Ugd2FudCB0byBzdGFydCBmcm9t IHRoZSB0b3AvbGVmdCBlZGdlIHdoaWNoIGlzIHBoYXNlCj4gPiArICogLTAuNS4gVGhhdCBtYXRj aGVzIGhvdyB0aGUgaGFyZHdhcmUgY2FsY3VsYXRlcyB0aGUgc2NhbGluZwo+ID4gKyAqIGZhY3Rv cnMgKGZyb20gdG9wLWxlZnQgb2YgdGhlIGZpcnN0IHBpeGVsIHRvIGJvdHRvbS1yaWdodAo+ID4g KyAqIG9mIHRoZSBsYXN0IHBpeGVsLCBhcyBvcHBvc2VkIHRvIHRoZSBwaXhlbCBjZW50ZXJzKS4K PiA+ICsgKgo+ID4gKyAqIEZvciA0OjI6MCBzdWJzYW1wbGVkIGNocm9tYSBwbGFuZXMgd2Ugb2J2 aW91c2x5IGhhdmUgdG8KPiA+ICsgKiBhZGp1c3QgdGhhdCBzbyB0aGF0IHRoZSBjaHJvbWEgc2Ft cGxlIHBvc2l0aW9uIGxhbmRzIGluCj4gPiArICogdGhlIHJpZ2h0IHNwb3QuCj4gPiArICoKPiA+ ICsgKiBOb3RlIHRoYXQgZm9yIHBhY2tlZCBZQ2JDciA0OjI6MiBmb3JtYXRzIHRoZXJlIGlzIG5v IHdheSB0bwo+ID4gKyAqIGNvbnRyb2wgY2hyb21hIHNpdGluZy4gVGhlIGhhcmR3YXJlIHNpbXBs eSByZXBsaWNhdGVzIHRoZQo+ID4gKyAqIGNocm9tYSBzYW1wbGVzIGZvciBib3RoIG9mIHRoZSBs dW1hIHNhbXBsZXMsIGFuZCB0aHVzIHdlIGRvbid0Cj4gPiArICogYWN0dWFsbHkgZ2V0IHRoZSBl eHBlY3RlZCBNUEVHMiBjaHJvbWEgc2l0aW5nIGNvbnZlbnRpb24gOigKPiA+ICsgKiBUaGUgc2Ft ZSBiZWhhdmlvdXIgaXMgb2JzZXJ2ZWQgb24gcHJlLVNLTCBwbGF0Zm9ybXMgYXMgd2VsbC4KPiA+ ICsgKi8KPiA+ICt1MTYgc2tsX3NjYWxlcl9jYWxjX3BoYXNlKGludCBzdWIsIGJvb2wgY2hyb21h X2Nvc2l0ZWQpIHsKPiA+ICsJaW50IHBoYXNlID0gLTB4ODAwMDsKPiA+ICsJdTE2IHRyaXAgPSAw Owo+ID4gKwo+ID4gKwlpZiAoY2hyb21hX2Nvc2l0ZWQpCj4gPiArCQlwaGFzZSArPSAoc3ViIC0g MSkgKiAweDgwMDAgLyBzdWI7Cj4gPiArCj4gPiArCWlmIChwaGFzZSA8IDApCj4gPiArCQlwaGFz ZSA9IDB4MTAwMDAgKyBwaGFzZTsKPiA+ICsJZWxzZQo+ID4gKwkJdHJpcCA9IFBTX1BIQVNFX1RS SVA7Cj4gPiArCj4gPiArCXJldHVybiAoKHBoYXNlID4+IDIpICYgUFNfUEhBU0VfTUFTSykgfCB0 cmlwOyB9Cj4gPiArCj4gPiAgc3RhdGljIGludAo+ID4gIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPiA+ICAJ CSAgdW5zaWduZWQgaW50IHNjYWxlcl91c2VyLCBpbnQgKnNjYWxlcl9pZCwgQEAgLTQ5MjgsMTQK PiA+ICs0OTYxLDIyIEBAIHN0YXRpYyB2b2lkIHNreWxha2VfcGZpdF9lbmFibGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCj4gPiAgCQkmY3J0Yy0+Y29uZmlnLT5zY2FsZXJfc3RhdGU7Cj4gPiAK PiA+ICAJaWYgKGNydGMtPmNvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkgewo+ID4gKwkJdTE2IHV2 X3JnYl9ocGhhc2UsIHV2X3JnYl92cGhhc2U7Cj4gPiAgCQlpbnQgaWQ7Cj4gPiAKPiA+ICAJCWlm IChXQVJOX09OKGNydGMtPmNvbmZpZy0+c2NhbGVyX3N0YXRlLnNjYWxlcl9pZCA8IDApKQo+ID4g IAkJCXJldHVybjsKPiA+IAo+ID4gKwkJdXZfcmdiX2hwaGFzZSA9IHNrbF9zY2FsZXJfY2FsY19w aGFzZSgxLCBmYWxzZSk7Cj4gPiArCQl1dl9yZ2JfdnBoYXNlID0gc2tsX3NjYWxlcl9jYWxjX3Bo YXNlKDEsIGZhbHNlKTsKPiA+ICsKPiA+ICAJCWlkID0gc2NhbGVyX3N0YXRlLT5zY2FsZXJfaWQ7 Cj4gPiAgCQlJOTE1X1dSSVRFKFNLTF9QU19DVFJMKHBpcGUsIGlkKSwgUFNfU0NBTEVSX0VOIHwK PiA+ICAJCQlQU19GSUxURVJfTUVESVVNIHwgc2NhbGVyX3N0YXRlLQo+ID4gPnNjYWxlcnNbaWRd Lm1vZGUpOwo+ID4gKwkJSTkxNV9XUklURV9GVyhTS0xfUFNfVlBIQVNFKHBpcGUsIGlkKSwKPiA+ ICsJCQkgICAgICBQU19ZX1BIQVNFKDApIHwKPiA+IFBTX1VWX1JHQl9QSEFTRSh1dl9yZ2JfdnBo YXNlKSk7Cj4gPiArCQlJOTE1X1dSSVRFX0ZXKFNLTF9QU19IUEhBU0UocGlwZSwgaWQpLAo+ID4g KwkJCSAgICAgIFBTX1lfUEhBU0UoMCkgfAo+ID4gUFNfVVZfUkdCX1BIQVNFKHV2X3JnYl9ocGhh c2UpKTsKPiA+ICAJCUk5MTVfV1JJVEUoU0tMX1BTX1dJTl9QT1MocGlwZSwgaWQpLCBjcnRjLT5j b25maWctCj4gPiA+cGNoX3BmaXQucG9zKTsKPiA+ICAJCUk5MTVfV1JJVEUoU0tMX1BTX1dJTl9T WihwaXBlLCBpZCksIGNydGMtPmNvbmZpZy0KPiA+ID5wY2hfcGZpdC5zaXplKTsKPiA+ICAJfQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCA0MmE1OWI3ZmQ3MzYuLjBm MWRiZmNmODUzOCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTE2 MjEsNiArMTYyMSw3IEBAIHZvaWQgaW50ZWxfbW9kZV9mcm9tX3BpcGVfY29uZmlnKHN0cnVjdAo+ ID4gZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwgIHZvaWQgaW50ZWxfY3J0Y19hcm1fZmlmb191bmRl cnJ1bihzdHJ1Y3QKPiA+IGludGVsX2NydGMgKmNydGMsCj4gPiAgCQkJCSAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ID4gCj4gPiArdTE2IHNrbF9zY2FsZXJfY2FsY19w aGFzZShpbnQgc3ViLCBib29sIGNocm9tYV9jZW50ZXIpOwo+ID4gIGludCBza2xfdXBkYXRlX3Nj YWxlcl9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsgIGludAo+ID4g c2tsX21heF9zY2FsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgCQkgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdCk7Cj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IGluZGV4IDIxNGNjNzMwNjQyYy4u NTg1MjI0NDEyNTNkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4g PiBAQCAtMjg0LDEzICsyODQsMzUgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lLAo+ID4gIAkvKiBwcm9ncmFtIHBsYW5lIHNjYWxlciAqLwo+ID4gIAlpZiAocGxh bmVfc3RhdGUtPnNjYWxlcl9pZCA+PSAwKSB7Cj4gPiAgCQlpbnQgc2NhbGVyX2lkID0gcGxhbmVf c3RhdGUtPnNjYWxlcl9pZDsKPiA+IC0JCWNvbnN0IHN0cnVjdCBpbnRlbF9zY2FsZXIgKnNjYWxl cjsKPiA+ICsJCWNvbnN0IHN0cnVjdCBpbnRlbF9zY2FsZXIgKnNjYWxlciA9Cj4gPiArCQkJJmNy dGNfc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJzW3NjYWxlcl9pZF07Cj4gPiArCQl1MTYgeV9o cGhhc2UsIHV2X3JnYl9ocGhhc2U7Cj4gPiArCQl1MTYgeV92cGhhc2UsIHV2X3JnYl92cGhhc2U7 Cj4gPiArCj4gPiArCQkvKiBUT0RPOiBoYW5kbGUgc3ViLXBpeGVsIGNvb3JkaW5hdGVzICovCj4g PiArCQlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikgewo+ID4gKwkJ CXlfaHBoYXNlID0gc2tsX3NjYWxlcl9jYWxjX3BoYXNlKDEsIGZhbHNlKTsKPiA+ICsJCQl5X3Zw aGFzZSA9IHNrbF9zY2FsZXJfY2FsY19waGFzZSgxLCBmYWxzZSk7Cj4gPiArCj4gPiArCQkJLyog TVBFRzIgY2hyb21hIHNpdGluZyBjb252ZW50aW9uICovCj4gPiArCQkJdXZfcmdiX2hwaGFzZSA9 IHNrbF9zY2FsZXJfY2FsY19waGFzZSgyLCB0cnVlKTsKPiA+ICsJCQl1dl9yZ2JfdnBoYXNlID0g c2tsX3NjYWxlcl9jYWxjX3BoYXNlKDIsIGZhbHNlKTsKPiA+ICsJCX0gZWxzZSB7Cj4gPiArCQkJ Lyogbm90IHVzZWQgKi8KPiA+ICsJCQl5X2hwaGFzZSA9IDA7Cj4gPiArCQkJeV92cGhhc2UgPSAw Owo+ID4gCj4gPiAtCQlzY2FsZXIgPSAmY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcnNb c2NhbGVyX2lkXTsKPiA+ICsJCQl1dl9yZ2JfaHBoYXNlID0gc2tsX3NjYWxlcl9jYWxjX3BoYXNl KDEsIGZhbHNlKTsKPiA+ICsJCQl1dl9yZ2JfdnBoYXNlID0gc2tsX3NjYWxlcl9jYWxjX3BoYXNl KDEsIGZhbHNlKTsKPiA+ICsJCX0KPiA+IAo+ID4gIAkJSTkxNV9XUklURV9GVyhTS0xfUFNfQ1RS TChwaXBlLCBzY2FsZXJfaWQpLAo+ID4gIAkJCSAgICAgIFBTX1NDQUxFUl9FTiB8IFBTX1BMQU5F X1NFTChwbGFuZV9pZCkgfAo+ID4gc2NhbGVyLT5tb2RlKTsKPiA+ICAJCUk5MTVfV1JJVEVfRlco U0tMX1BTX1BXUl9HQVRFKHBpcGUsIHNjYWxlcl9pZCksIDApOwo+ID4gKwkJSTkxNV9XUklURV9G VyhTS0xfUFNfVlBIQVNFKHBpcGUsIHNjYWxlcl9pZCksCj4gPiArCQkJICAgICAgUFNfWV9QSEFT RSh5X3ZwaGFzZSkgfAo+ID4gUFNfVVZfUkdCX1BIQVNFKHV2X3JnYl92cGhhc2UpKTsKPiA+ICsJ CUk5MTVfV1JJVEVfRlcoU0tMX1BTX0hQSEFTRShwaXBlLCBzY2FsZXJfaWQpLAo+ID4gKwkJCSAg ICAgIFBTX1lfUEhBU0UoeV9ocGhhc2UpIHwKPiA+IFBTX1VWX1JHQl9QSEFTRSh1dl9yZ2JfaHBo YXNlKSk7Cj4gPiAgCQlJOTE1X1dSSVRFX0ZXKFNLTF9QU19XSU5fUE9TKHBpcGUsIHNjYWxlcl9p ZCksIChjcnRjX3gKPiA+IDw8IDE2KSB8IGNydGNfeSk7Cj4gPiAgCQlJOTE1X1dSSVRFX0ZXKFNL TF9QU19XSU5fU1oocGlwZSwgc2NhbGVyX2lkKSwKPiA+ICAJCQkgICAgICAoKGNydGNfdyArIDEp IDw8IDE2KXwoY3J0Y19oICsgMSkpOwo+ID4gLS0KPiA+IDIuMTYuMQo+IAoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK