From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 474346E176 for ; Wed, 3 Jul 2019 16:53:49 +0000 (UTC) From: Ramalingam C Date: Wed, 3 Jul 2019 15:24:41 +0530 Message-Id: <20190703095446.14092-4-ramalingam.c@intel.com> In-Reply-To: <20190703095446.14092-1-ramalingam.c@intel.com> References: <20190703095446.14092-1-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v8 3/8] kms_content_protection: Content type support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev Cc: Daniel Vetter List-ID: QWRkcyBhIGNvbm5lY3RvciBwcm9wZXJ0eSBjYWxsZWQgIkNQX0NvbnRlbnRfVHlwZSIKCkNvbnRl bnQgVHlwZSB0YWtlcyB0d28gdmFsdWVzIHdoaWNoIGNsYXNzaWZpZXMgdGhlIGNvbnRlbnQgc3Ry ZWFtOgoJVHlwZSAwOiBTdHJlYW0gdGhhdCBjYW4gYmUgdHJhbnNtaXR0ZWQgb24gSERDUDEuNC9I RENQMi4yCglUeXBlIDE6IFN0cmVhbSB0aGF0IG5lZWRzIEhEQ1AyLjIgZW5jcnlwdGlvbiBvbmx5 LgoKU28gd2hlbiBUeXBlIDEgaXMgc2V0IEtNRCBpcyBmb3JjZWQgdG8gZW5hYmxlIEhEQ1AyLjIg b25seS4KCkZvciBUeXBlIDAgcmVxdWVzdCwgS2VybmVsIGNob29zZXMgdGhlIGhpZ2hlc3QgY2Fw YWJsZSBIRENQIHZlcnNpb24KKHYyLjIpIGZpcnN0LiBJZiB0aGF0IGZhaWxzLCB0aGVuIGl0IGZh bGwgYmFjayB0byB0aGUgbmV4dCBhdmFpbGFibGUKdmVyc2lvbih2MS40KSBiZWZvcmUgYWJvbmRv bmluZyBIRENQIGF1dGhlbnRpY2F0aW9uIGF0dGVtcHRzLgoKUGxlYXNlIG5vdGUgY29udGVudF90 eXBlIGlzIGFsbG93ZWQgdG8gYmUgdXBkYXRlZCB3aGVuICJDb250ZW50ClByb3RlY3Rpb24iIGlz IGluIFVOREVTSVJFRCBzdGF0ZS4KCnYyOgogIHMvY3BfY29udGVudF90eXBlL2NvbnRlbnRfcHJv dGVjdGlvbl90eXBlIFtkYW52ZXRdCnYzOgogIHMvY29udGVudF9wcm90ZWN0aW9uX3R5cGUvSERD UCBDb250ZW50IFR5cGUgW1Bla2thXQp2NDoKICBSZWJhc2VkCnY1OgogIFR5cG9zIGluIHRoZSBj b21taXQgbXNnIGlzIGZpeGVkIFtVbWFdCgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJh bWFsaW5nYW0uY0BpbnRlbC5jb20+CkFja2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgpSZXZpZXdlZC1ieTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVs LmNvbT4KLS0tCiBsaWIvaWd0X2ttcy5jICAgICAgICAgICAgICAgICAgfCAgMSArCiBsaWIvaWd0 X2ttcy5oICAgICAgICAgICAgICAgICAgfCAgMSArCiB0ZXN0cy9rbXNfY29udGVudF9wcm90ZWN0 aW9uLmMgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAzIGZpbGVzIGNo YW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp Yi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jCmluZGV4IGRjODk5MmNiMDQzYi4uNWQwNzlkNzRh MTZmIDEwMDY0NAotLS0gYS9saWIvaWd0X2ttcy5jCisrKyBiL2xpYi9pZ3Rfa21zLmMKQEAgLTMy NSw2ICszMjUsNyBAQCBjb25zdCBjaGFyICogY29uc3QgaWd0X2Nvbm5lY3Rvcl9wcm9wX25hbWVz W0lHVF9OVU1fQ09OTkVDVE9SX1BST1BTXSA9IHsKIAlbSUdUX0NPTk5FQ1RPUl9CUk9BRENBU1Rf UkdCXSA9ICJCcm9hZGNhc3QgUkdCIiwKIAlbSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJ T05dID0gIkNvbnRlbnQgUHJvdGVjdGlvbiIsCiAJW0lHVF9DT05ORUNUT1JfVlJSX0NBUEFCTEVd ID0gInZycl9jYXBhYmxlIiwKKwlbSUdUX0NPTk5FQ1RPUl9IRENQX0NPTlRFTlRfVFlQRV0gPSAi SERDUCBDb250ZW50IFR5cGUiLAogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmgg Yi9saWIvaWd0X2ttcy5oCmluZGV4IGE0NDhhMDAzYWU1Ni4uZDUyZTc2Yzc5NDBiIDEwMDY0NAot LS0gYS9saWIvaWd0X2ttcy5oCisrKyBiL2xpYi9pZ3Rfa21zLmgKQEAgLTEyMyw2ICsxMjMsNyBA QCBlbnVtIGlndF9hdG9taWNfY29ubmVjdG9yX3Byb3BlcnRpZXMgewogICAgICAgIElHVF9DT05O RUNUT1JfQlJPQURDQVNUX1JHQiwKICAgICAgICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVD VElPTiwKICAgICAgICBJR1RfQ09OTkVDVE9SX1ZSUl9DQVBBQkxFLAorICAgICAgIElHVF9DT05O RUNUT1JfSERDUF9DT05URU5UX1RZUEUsCiAgICAgICAgSUdUX05VTV9DT05ORUNUT1JfUFJPUFMK IH07CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24uYyBiL3Rlc3Rz L2ttc19jb250ZW50X3Byb3RlY3Rpb24uYwppbmRleCBjODZmZTkzNmYxMmYuLjMyNjMwZjI4NjMw YiAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jCisrKyBiL3Rlc3Rz L2ttc19jb250ZW50X3Byb3RlY3Rpb24uYwpAQCAtNDQsNiArNDQsMTMgQEAgc3RydWN0IGRhdGEg ewogI2RlZmluZSBDUF9ERVNJUkVECQkJCTEKICNkZWZpbmUgQ1BfRU5BQkxFRAkJCQkyCiAKKy8q CisgKiBIRENQX0NPTlRFTlRfVFlQRV8wIGNhbiBiZSBoYW5kbGVkIG9uIGJvdGggSERDUDEuNCBh bmQgSERDUDIuMi4gV2hlcmUgYXMKKyAqIEhEQ1BfQ09OVEVOVF9UWVBFXzEgY2FuIGJlIGhhbmRs ZWQgb25seSB0aHJvdWdoIEhEQ1AyLjIuCisgKi8KKyNkZWZpbmUgSERDUF9DT05URU5UX1RZUEVf MAkJCQkwCisjZGVmaW5lIEhEQ1BfQ09OVEVOVF9UWVBFXzEJCQkJMQorCiAjZGVmaW5lIExJQ19Q RVJJT0RfTVNFQwkJCQkoNCAqIDEwMDApCiAvKiBLZXJuZWwgcmV0cnkgY291bnQ9MywgTWF4IHRp bWUgcGVyIGF1dGhlbnRpY2F0aW9uIGFsbG93ZWQgPSA2U2VjICovCiAjZGVmaW5lIEtFUk5FTF9B VVRIX1RJTUVfQUxMT1dFRF9NU0VDCQkoMyAqICA2ICogMTAwMCkKQEAgLTE1OSw3ICsxNjYsOCBA QCBzdGF0aWMgdm9pZCBtb2Rlc2V0X3dpdGhfZmIoY29uc3QgZW51bSBwaXBlIHBpcGUsIGlndF9v dXRwdXRfdCAqb3V0cHV0LAogCWNvbW1pdF9kaXNwbGF5X2FuZF93YWl0X2Zvcl9mbGlwKHMpOwog fQogCi1zdGF0aWMgYm9vbCB0ZXN0X2NwX2VuYWJsZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51 bSBpZ3RfY29tbWl0X3N0eWxlIHMpCitzdGF0aWMgYm9vbCB0ZXN0X2NwX2VuYWJsZShpZ3Rfb3V0 cHV0X3QgKm91dHB1dCwgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMsCisJCQkgICBpbnQgY29udGVu dF90eXBlKQogewogCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS5kaXNwbGF5OwogCWln dF9wbGFuZV90ICpwcmltYXJ5OwpAQCAtMTY5LDYgKzE3NywxMCBAQCBzdGF0aWMgYm9vbCB0ZXN0 X2NwX2VuYWJsZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMp CiAKIAlpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVlKG91dHB1dCwKIAkJCQkgIElHVF9DT05ORUNU T1JfQ09OVEVOVF9QUk9URUNUSU9OLCBDUF9ERVNJUkVEKTsKKwlpZiAob3V0cHV0LT5wcm9wc1tJ R1RfQ09OTkVDVE9SX0hEQ1BfQ09OVEVOVF9UWVBFXSkKKwkJaWd0X291dHB1dF9zZXRfcHJvcF92 YWx1ZShvdXRwdXQsCisJCQkJCSAgSUdUX0NPTk5FQ1RPUl9IRENQX0NPTlRFTlRfVFlQRSwKKwkJ CQkJICBjb250ZW50X3R5cGUpOwogCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgcyk7CiAK IAlyZXQgPSB3YWl0X2Zvcl9wcm9wX3ZhbHVlKG91dHB1dCwgQ1BfRU5BQkxFRCwKQEAgLTIwNSwx MyArMjE3LDE0IEBAIHN0YXRpYyB2b2lkIHRlc3RfY3BfZGlzYWJsZShpZ3Rfb3V0cHV0X3QgKm91 dHB1dCwgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMpCiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RfY3Bf ZW5hYmxlX3dpdGhfcmV0cnkoaWd0X291dHB1dF90ICpvdXRwdXQsCi0JCQkJICAgICAgZW51bSBp Z3RfY29tbWl0X3N0eWxlIHMsIGludCByZXRyeSkKKwkJCQkgICAgICBlbnVtIGlndF9jb21taXRf c3R5bGUgcywgaW50IHJldHJ5LAorCQkJCSAgICAgIGludCBjb250ZW50X3R5cGUpCiB7CiAJYm9v bCByZXQ7CiAKIAlkbyB7CiAJCXRlc3RfY3BfZGlzYWJsZShvdXRwdXQsIHMpOwotCQlyZXQgPSB0 ZXN0X2NwX2VuYWJsZShvdXRwdXQsIHMpOworCQlyZXQgPSB0ZXN0X2NwX2VuYWJsZShvdXRwdXQs IHMsIGNvbnRlbnRfdHlwZSk7CiAKIAkJaWYgKCFyZXQgJiYgLS1yZXRyeSkKIAkJCWlndF9kZWJ1 ZygiUmV0cnkgKCVkLzIpIC4uLlxuIiwgMyAtIHJldHJ5KTsKQEAgLTI0NCw3ICsyNTcsOCBAQCBz dGF0aWMgdm9pZCB0ZXN0X2NwX2xpYyhpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKIH0KIAogc3RhdGlj IHZvaWQgdGVzdF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0cHV0KGlndF9vdXRwdXRfdCAqb3V0 cHV0LAotCQkJCQkgICAgICBlbnVtIGlndF9jb21taXRfc3R5bGUgcykKKwkJCQkJICAgICAgZW51 bSBpZ3RfY29tbWl0X3N0eWxlIHMsCisJCQkJCSAgICAgIGludCBjb250ZW50X3R5cGUpCiB7CiAJ aWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLmRpc3BsYXk7CiAJaWd0X3BsYW5lX3QgKnBy aW1hcnk7CkBAIC0yNjUsNyArMjc5LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9jb250ZW50X3Byb3Rl Y3Rpb25fb25fb3V0cHV0KGlndF9vdXRwdXRfdCAqb3V0cHV0LAogCQkJY29udGludWU7CiAKIAkJ bW9kZXNldF93aXRoX2ZiKHBpcGUsIG91dHB1dCwgcyk7Ci0JCXRlc3RfY3BfZW5hYmxlX3dpdGhf cmV0cnkob3V0cHV0LCBzLCAzKTsKKwkJdGVzdF9jcF9lbmFibGVfd2l0aF9yZXRyeShvdXRwdXQs IHMsIDMsIGNvbnRlbnRfdHlwZSk7CiAKIAkJaWYgKGRhdGEuY3BfdGVzdHMgJiBDUF9MSUMpCiAJ CQl0ZXN0X2NwX2xpYyhvdXRwdXQpOwpAQCAtMjgyLDcgKzI5Niw4IEBAIHN0YXRpYyB2b2lkIHRl c3RfY29udGVudF9wcm90ZWN0aW9uX29uX291dHB1dChpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKIAkJ CXJldCA9IHdhaXRfZm9yX3Byb3BfdmFsdWUob3V0cHV0LCBDUF9FTkFCTEVELAogCQkJCQkJICBL RVJORUxfQVVUSF9USU1FX0FMTE9XRURfTVNFQyk7CiAJCQlpZiAoIXJldCkKLQkJCQl0ZXN0X2Nw X2VuYWJsZV93aXRoX3JldHJ5KG91dHB1dCwgcywgMik7CisJCQkJdGVzdF9jcF9lbmFibGVfd2l0 aF9yZXRyeShvdXRwdXQsIHMsCisJCQkJCQkJICAyLCBjb250ZW50X3R5cGUpOwogCQl9CiAKIAkJ dGVzdF9jcF9kaXNhYmxlKG91dHB1dCwgcyk7CkBAIC0zMDksNyArMzI0LDggQEAgc3RhdGljIHZv aWQgX19kZWJ1Z2ZzX3JlYWQoaW50IGZkLCBjb25zdCBjaGFyICpwYXJhbSwgY2hhciAqYnVmLCBp bnQgbGVuKQogCiAjZGVmaW5lIGRlYnVnZnNfcmVhZChmZCwgcCwgYXJyKSBfX2RlYnVnZnNfcmVh ZChmZCwgcCwgYXJyLCBzaXplb2YoYXJyKSkKIAotI2RlZmluZSBNQVhfU0lOS19IRENQX0NBUF9C VUZfTEVOCTUwMAorI2RlZmluZSBNQVhfU0lOS19IRENQX0NBUF9CVUZfTEVOCTUwMDAKKwogc3Rh dGljIGJvb2wgc2lua19oZGNwX2NhcGFibGUoaWd0X291dHB1dF90ICpvdXRwdXQpCiB7CiAJY2hh ciBidWZbTUFYX1NJTktfSERDUF9DQVBfQlVGX0xFTl07CkBAIC0zMjcsOSArMzQzLDI1IEBAIHN0 YXRpYyBib29sIHNpbmtfaGRjcF9jYXBhYmxlKGlndF9vdXRwdXRfdCAqb3V0cHV0KQogCXJldHVy biBzdHJzdHIoYnVmLCAiSERDUDEuNCIpOwogfQogCitzdGF0aWMgYm9vbCBzaW5rX2hkY3AyX2Nh cGFibGUoaWd0X291dHB1dF90ICpvdXRwdXQpCit7CisJY2hhciBidWZbTUFYX1NJTktfSERDUF9D QVBfQlVGX0xFTl07CisJaW50IGZkOworCisJZmQgPSBpZ3RfZGVidWdmc19jb25uZWN0b3JfZGly KGRhdGEuZHJtX2ZkLCBvdXRwdXQtPm5hbWUsIE9fUkRPTkxZKTsKKwlpZiAoZmQgPCAwKQorCQly ZXR1cm4gZmFsc2U7CisKKwlkZWJ1Z2ZzX3JlYWQoZmQsICJpOTE1X2hkY3Bfc2lua19jYXBhYmls aXR5IiwgYnVmKTsKKwljbG9zZShmZCk7CisKKwlpZ3RfZGVidWcoIlNpbmsgY2FwYWJpbGl0eTog JXNcbiIsIGJ1Zik7CisKKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkhEQ1AyLjIiKTsKK30KIAogc3Rh dGljIHZvaWQKLXRlc3RfY29udGVudF9wcm90ZWN0aW9uKGVudW0gaWd0X2NvbW1pdF9zdHlsZSBz KQordGVzdF9jb250ZW50X3Byb3RlY3Rpb24oZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMsIGludCBj b250ZW50X3R5cGUpCiB7CiAJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLmRpc3BsYXk7 CiAJaWd0X291dHB1dF90ICpvdXRwdXQ7CkBAIC0zMzksMTQgKzM3MSwyMyBAQCB0ZXN0X2NvbnRl bnRfcHJvdGVjdGlvbihlbnVtIGlndF9jb21taXRfc3R5bGUgcykKIAkJaWYgKCFvdXRwdXQtPnBy b3BzW0lHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OXSkKIAkJCWNvbnRpbnVlOwogCisJ CWlmICghb3V0cHV0LT5wcm9wc1tJR1RfQ09OTkVDVE9SX0hEQ1BfQ09OVEVOVF9UWVBFXSAmJgor CQkgICAgY29udGVudF90eXBlKQorCQkJY29udGludWU7CisKIAkJaWd0X2luZm8oIkNQIFRlc3Qg ZXhlY3V0aW9uIG9uICVzXG4iLCBvdXRwdXQtPm5hbWUpOwotCQlpZiAoIXNpbmtfaGRjcF9jYXBh YmxlKG91dHB1dCkpIHsKKworCQlpZiAoY29udGVudF90eXBlICYmICFzaW5rX2hkY3AyX2NhcGFi bGUob3V0cHV0KSkgeworCQkJaWd0X2luZm8oIlx0U2tpcCAlcyAoU2luayBoYXMgbm8gSERDUDIu MiBzdXBwb3J0KVxuIiwKKwkJCQkgb3V0cHV0LT5uYW1lKTsKKwkJCWNvbnRpbnVlOworCQl9IGVs c2UgaWYgKCFzaW5rX2hkY3BfY2FwYWJsZShvdXRwdXQpKSB7CiAJCQlpZ3RfaW5mbygiXHRTa2lw ICVzIChTaW5rIGhhcyBubyBIRENQIHN1cHBvcnQpXG4iLAogCQkJCSBvdXRwdXQtPm5hbWUpOwog CQkJY29udGludWU7CiAJCX0KIAotCQl0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbl9vbl9vdXRwdXQo b3V0cHV0LCBzKTsKKwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0cHV0KG91dHB1dCwg cywgY29udGVudF90eXBlKTsKIAkJdmFsaWRfdGVzdHMrKzsKIAl9CiAKQEAgLTM2NSwyNSArNDA2 LDMwIEBAIGlndF9tYWluCiAKIAlpZ3Rfc3VidGVzdCgibGVnYWN5IikgewogCQlkYXRhLmNwX3Rl c3RzID0gMDsKLQkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0xFR0FDWSk7CisJCXRl c3RfY29udGVudF9wcm90ZWN0aW9uKENPTU1JVF9MRUdBQ1ksIEhEQ1BfQ09OVEVOVF9UWVBFXzAp OwogCX0KIAogCWlndF9zdWJ0ZXN0KCJhdG9taWMiKSB7CiAJCWlndF9yZXF1aXJlKGRhdGEuZGlz cGxheS5pc19hdG9taWMpOwogCQlkYXRhLmNwX3Rlc3RzID0gMDsKLQkJdGVzdF9jb250ZW50X3By b3RlY3Rpb24oQ09NTUlUX0FUT01JQyk7CisJCXRlc3RfY29udGVudF9wcm90ZWN0aW9uKENPTU1J VF9BVE9NSUMsIEhEQ1BfQ09OVEVOVF9UWVBFXzApOwogCX0KIAogCWlndF9zdWJ0ZXN0KCJhdG9t aWMtZHBtcyIpIHsKIAkJaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0b21pYyk7CiAJCWRh dGEuY3BfdGVzdHMgPSBDUF9EUE1TOwotCQl0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihDT01NSVRf QVRPTUlDKTsKKwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0FUT01JQywgSERDUF9D T05URU5UX1RZUEVfMCk7CiAJfQogCiAJaWd0X3N1YnRlc3QoIkxJQyIpIHsKIAkJaWd0X3JlcXVp cmUoZGF0YS5kaXNwbGF5LmlzX2F0b21pYyk7CiAJCWRhdGEuY3BfdGVzdHMgPSBDUF9MSUM7Ci0J CXRlc3RfY29udGVudF9wcm90ZWN0aW9uKENPTU1JVF9BVE9NSUMpOworCQl0ZXN0X2NvbnRlbnRf cHJvdGVjdGlvbihDT01NSVRfQVRPTUlDLCBIRENQX0NPTlRFTlRfVFlQRV8wKTsKKwl9CisKKwlp Z3Rfc3VidGVzdCgidHlwZTEiKSB7CisJCWlndF9yZXF1aXJlKGRhdGEuZGlzcGxheS5pc19hdG9t aWMpOworCQl0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihDT01NSVRfQVRPTUlDLCBIRENQX0NPTlRF TlRfVFlQRV8xKTsKIAl9CiAKIAlpZ3RfZml4dHVyZQotLSAKMi4xOS4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdApp Z3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=