From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v10 5/8] drm/i915: Add AVI infoframe support for LSPCON Date: Tue, 14 Aug 2018 15:23:23 +0530 Message-ID: <1534240406-10534-6-git-send-email-shashank.sharma@intel.com> References: <1534240406-10534-1-git-send-email-shashank.sharma@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 419166E020 for ; Tue, 14 Aug 2018 09:46:02 +0000 (UTC) In-Reply-To: <1534240406-10534-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Imre Deak List-Id: intel-gfx@lists.freedesktop.org SW4gb3JkZXIgdG8gcGFzcyBBVkkgaW5mb2ZyYW1lcyB0byBMU1BDT04gZGV2aWNlcywgYSBzb3Vy Y2UgaGFzIHRvCndyaXRlIHRoZW0gaW4gYSB2ZW5kb3IgcmVjb21tZW5kZWQgbWV0aG9kIGFuZCBs b2NhdGlvbi4KClRoaXMgcGF0Y2ggc2VyaWVzOgotIGFkZHMgZ2VuZXJpYyBMU1BDT04gaW5mb2Zy YW1lIHNldHVwIGZ1bmN0aW9ucy4KLSByZWdpc3RlcnMgdGhlc2UgZnVuY3Rpb25zIGludG8gZXhp c3RpbmcgQVZJIGluZm9mcmFtZSBmcmFtZXdvcmsuCi0gdHJpZ2dlcnMgdGhlc2UgZnVuY3Rpb25z IGZyb20gbW9kZXNldCBzZXF1ZW5jZS4KCk5leHQgcGF0Y2hlcyBpbiB0aGUgc2VyaWVzIHdpbGwg YWRkIHZlbmRvciBzcGVjaWZpYyBjb2RlLgoKVjI6IEFkZGVkIG5ldyBwYXJhbWV0ZXIgdG8gYWxp Z24gd2l0aCBuZXcgZGVmaW5pdGlvbiBvZgogICAgZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9xdWFu dF9yYW5nZQpWMzogQWRkZWQgci1iIGZyb20gTWFhcnRlbiAoZm9yIFYyKQogICAgQWRkZWQgbmV3 IHBhcmFtZXRlciBvdXRwdXRfZm9ybWF0IGluIHN0cnVjdCBsc3Bjb24gdG8gYWNjb21tb2RhdGUK ICAgIFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnRzIG9uIGxhc3QgcGF0Y2ggb2YgdGhlIHNlcmllcwpW NDogQWRkcmVzc2VkIFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnQKICAgIC0gRG8gbm90IGFkZCBvdXRw dXRfZm9ybWF0IGluIExTUENPTiBzdGF0ZSwgYXMgaXRzIG5vbi1hdG9taWMuIEFkZAogICAgICB0 aGlzIGludG8gQ1JUQyBzdGF0ZSAoYWRkZWQgaW4gYSBsYXRlciBwYXRjaCkuClY1OiBSZWJhc2UK VjY6IFJlYmFzZQpWNzogUmViYXNlClY4OiBSZWJhc2UKVjk6IFJlYmFzZQpWMTA6IFJlYmFzZQoK Q2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogSW1y ZSBEZWFrIDxpbXJlLmRlYWtAbGludXguaW50ZWwuY29tPgpDYzogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4g TGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICB8IDE5ICsrKysrKysrKysrLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8IDEzICsrKysrKysrKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgIHwgMTMgKysrKysrKy0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwppbmRleCBhMDM2ZmU2Li4xNDhiZmFhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwpAQCAtMjg5NSwxMCArMjg5NSwyMiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAog CWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRy dWUpOwogCi0JaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVU X0hETUkpKQorCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBV VF9IRE1JKSkgewogCQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9oZG1pKGVuY29kZXIsIGNydGNfc3Rh dGUsIGNvbm5fc3RhdGUpOwotCWVsc2UKKwl9IGVsc2UgeworCQlzdHJ1Y3QgaW50ZWxfbHNwY29u ICpsc3Bjb24gPQorCQkJCWVuY190b19pbnRlbF9sc3Bjb24oJmVuY29kZXItPmJhc2UpOworCiAJ CWludGVsX2RkaV9wcmVfZW5hYmxlX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIGNvbm5fc3RhdGUp OworCQlpZiAobHNwY29uLT5hY3RpdmUpIHsKKwkJCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmRpZ19wb3J0ID0KKwkJCQkJZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKKworCQkJ ZGlnX3BvcnQtPnNldF9pbmZvZnJhbWVzKCZlbmNvZGVyLT5iYXNlLAorCQkJCQkJIGNydGNfc3Rh dGUtPmhhc19pbmZvZnJhbWUsCisJCQkJCQkgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7CisJCX0K Kwl9CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZGRpX2J1ZihzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKQEAgLTM3NjAsOCArMzc3Miw2IEBAIHZvaWQgaW50ZWxfZGRpX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKIAkJ TUlTU0lOR19DQVNFKHBvcnQpOwogCX0KIAotCWludGVsX2luZm9mcmFtZV9pbml0KGludGVsX2Rp Z19wb3J0KTsKLQogCWlmIChpbml0X2RwKSB7CiAJCWlmICghaW50ZWxfZGRpX2luaXRfZHBfY29u bmVjdG9yKGludGVsX2RpZ19wb3J0KSkKIAkJCWdvdG8gZXJyOwpAQCAtMzc5MCw2ICszODAwLDcg QEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IGVudW0gcG9ydCBwb3J0KQogCQkJCXBvcnRfbmFtZShwb3J0KSk7CiAJfQogCisJaW50ZWxfaW5m b2ZyYW1lX2luaXQoaW50ZWxfZGlnX3BvcnQpOwogCXJldHVybjsKIAogZXJyOgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAppbmRleCA2N2Y3YmQzLi41MDljNjU5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaApAQCAtMTMxNCw2ICsxMzE0LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9l bmNvZGVyX2lzX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCX0KIH0KIAorc3Rh dGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfbHNwY29uICoKK2VuY190b19pbnRlbF9sc3Bjb24oc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQoreworCXJldHVybiAmZW5jX3RvX2RpZ19wb3J0KGVu Y29kZXIpLT5sc3Bjb247Cit9CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqCiBkcF90b19kaWdfcG9ydChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewpAQCAt MTg1OSw3ICsxODY1LDYgQEAgYm9vbCBpbnRlbF9oZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB2b2lkIGludGVsX2RwX2R1YWxfbW9kZV9z ZXRfdG1kc19vdXRwdXQoc3RydWN0IGludGVsX2hkbWkgKmhkbWksIGJvb2wgZW5hYmxlKTsKIHZv aWQgaW50ZWxfaW5mb2ZyYW1lX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQpOwogCi0KIC8qIGludGVsX2x2ZHMuYyAqLwogYm9vbCBpbnRlbF9sdmRzX3BvcnRf ZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgIGk5MTVf cmVnX3QgbHZkc19yZWcsIGVudW0gcGlwZSAqcGlwZSk7CkBAIC0yMTg4LDYgKzIxOTMsMTIgQEAg dm9pZCBpbnRlbF9jb2xvcl9sb2FkX2x1dHMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKTsKIGJvb2wgbHNwY29uX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQpOwogdm9pZCBsc3Bjb25fcmVzdW1lKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNv bik7CiB2b2lkIGxzcGNvbl93YWl0X3Bjb25fbW9kZShzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bj b24pOwordm9pZCBsc3Bjb25fc2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLAorCQkJICAgYm9vbCBlbmFibGUsCisJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlKTsKK2Jvb2wgbHNwY29uX2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZyk7CiAKIC8qIGludGVsX3BpcGVfY3JjLmMgKi8KICNpZmRlZiBDT05GSUdf REVCVUdfRlMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwppbmRleCA4OTNkNTNkLi45ZjJmYWM4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCkBAIC0yMzExLDkgKzIzMTEsMTYgQEAgdm9p ZCBpbnRlbF9pbmZvZnJhbWVfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCkKIAkJaW50ZWxfZGlnX3BvcnQtPnNldF9pbmZvZnJhbWVzID0gZzR4X3NldF9pbmZv ZnJhbWVzOwogCQlpbnRlbF9kaWdfcG9ydC0+aW5mb2ZyYW1lX2VuYWJsZWQgPSBnNHhfaW5mb2Zy YW1lX2VuYWJsZWQ7CiAJfSBlbHNlIGlmIChIQVNfRERJKGRldl9wcml2KSkgewotCQlpbnRlbF9k aWdfcG9ydC0+d3JpdGVfaW5mb2ZyYW1lID0gaHN3X3dyaXRlX2luZm9mcmFtZTsKLQkJaW50ZWxf ZGlnX3BvcnQtPnNldF9pbmZvZnJhbWVzID0gaHN3X3NldF9pbmZvZnJhbWVzOwotCQlpbnRlbF9k aWdfcG9ydC0+aW5mb2ZyYW1lX2VuYWJsZWQgPSBoc3dfaW5mb2ZyYW1lX2VuYWJsZWQ7CisJCWlm IChpbnRlbF9kaWdfcG9ydC0+bHNwY29uLmFjdGl2ZSkgeworCQkJaW50ZWxfZGlnX3BvcnQtPnNl dF9pbmZvZnJhbWVzID0gbHNwY29uX3NldF9pbmZvZnJhbWVzOworCQkJaW50ZWxfZGlnX3BvcnQt PmluZm9mcmFtZV9lbmFibGVkID0KKwkJCQkJCWxzcGNvbl9pbmZvZnJhbWVfZW5hYmxlZDsKKwkJ fSBlbHNlIHsKKwkJCWludGVsX2RpZ19wb3J0LT5zZXRfaW5mb2ZyYW1lcyA9IGhzd19zZXRfaW5m b2ZyYW1lczsKKwkJCWludGVsX2RpZ19wb3J0LT5pbmZvZnJhbWVfZW5hYmxlZCA9CisJCQkJCQlo c3dfaW5mb2ZyYW1lX2VuYWJsZWQ7CisJCQlpbnRlbF9kaWdfcG9ydC0+d3JpdGVfaW5mb2ZyYW1l ID0gaHN3X3dyaXRlX2luZm9mcmFtZTsKKwkJfQogCX0gZWxzZSBpZiAoSEFTX1BDSF9JQlgoZGV2 X3ByaXYpKSB7CiAJCWludGVsX2RpZ19wb3J0LT53cml0ZV9pbmZvZnJhbWUgPSBpYnhfd3JpdGVf aW5mb2ZyYW1lOwogCQlpbnRlbF9kaWdfcG9ydC0+c2V0X2luZm9mcmFtZXMgPSBpYnhfc2V0X2lu Zm9mcmFtZXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCmluZGV4IDg1YjM1Y2UuLjFl ZGNhNTkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwpAQCAtMjM0LDYgKzIzNCw1 NSBAQCBzdGF0aWMgdm9pZCBsc3Bjb25fcmVzdW1lX2luX3Bjb25fd2Eoc3RydWN0IGludGVsX2xz cGNvbiAqbHNwY29uKQogCURSTV9ERUJVR19LTVMoIkxTUENPTiBEUCBkZXNjcmlwdG9yIG1pc21h dGNoIGFmdGVyIHJlc3VtZVxuIik7CiB9CiAKK3ZvaWQgbHNwY29uX3NldF9pbmZvZnJhbWVzKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJCSAgIGJvb2wgZW5hYmxlLAorCQkJICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKK3sKKwlzc2l6ZV90IHJldDsKKwl1 bmlvbiBoZG1pX2luZm9mcmFtZSBmcmFtZTsKKwl1aW50OF90IGJ1ZltWSURFT19ESVBfREFUQV9T SVpFXTsKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdf cG9ydChlbmNvZGVyKTsKKwlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSAmZGlnX3BvcnQt PmxzcGNvbjsKKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmRpZ19wb3J0LT5kcDsKKwlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2RwLT5hdHRhY2hlZF9jb25u ZWN0b3ItPmJhc2U7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0 Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWJvb2wgaXNfaGRtaTJfc2luayA9IGNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLmhkbWkuc2NkYy5zdXBwb3J0ZWQ7CisKKwlpZiAoIWxzcGNvbi0+ YWN0aXZlKSB7CisJCURSTV9FUlJPUigiV3JpdGluZyBpbmZvZnJhbWVzIHdoaWxlIExTUENPTiBk aXNhYmxlZCA/XG4iKTsKKwkJcmV0dXJuOworCX0KKworCXJldCA9IGRybV9oZG1pX2F2aV9pbmZv ZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLmF2aSwKKwkJCQkJCSAgICAgICBtb2RlLCBp c19oZG1pMl9zaW5rKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fRVJST1IoImNvdWxkbid0IGZp bGwgQVZJIGluZm9mcmFtZVxuIik7CisJCXJldHVybjsKKwl9CisKKwlkcm1faGRtaV9hdmlfaW5m b2ZyYW1lX3F1YW50X3JhbmdlKCZmcmFtZS5hdmksIG1vZGUsCisJCQkJCSAgIGNydGNfc3RhdGUt PmxpbWl0ZWRfY29sb3JfcmFuZ2UgPworCQkJCQkgICBIRE1JX1FVQU5USVpBVElPTl9SQU5HRV9M SU1JVEVEIDoKKwkJCQkJICAgSERNSV9RVUFOVElaQVRJT05fUkFOR0VfRlVMTCwKKwkJCQkJICAg ZmFsc2UsIGlzX2hkbWkyX3NpbmspOworCisJcmV0ID0gaGRtaV9pbmZvZnJhbWVfcGFjaygmZnJh bWUsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9FUlJPUigiRmFp bGVkIHRvIHBhY2sgQVZJIElGXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWRpZ19wb3J0LT53cml0 ZV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwgSERNSV9JTkZPRlJBTUVfVFlQRV9BVkks CisJCQkJICBidWYsIHJldCk7Cit9CisKK2Jvb2wgbHNwY29uX2luZm9mcmFtZV9lbmFibGVkKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKK3sKKwlyZXR1cm4gZW5jX3RvX2ludGVsX2xzcGNvbihl bmNvZGVyKS0+YWN0aXZlOworfQorCiB2b2lkIGxzcGNvbl9yZXN1bWUoc3RydWN0IGludGVsX2xz cGNvbiAqbHNwY29uKQogewogCWVudW0gZHJtX2xzcGNvbl9tb2RlIGV4cGVjdGVkX21vZGU7Ci0t IAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==