From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v3 02/10] drm: Add Content protection type property Date: Fri, 22 Mar 2019 06:14:40 +0530 Message-ID: <20190322004448.14045-3-ramalingam.c@intel.com> References: <20190322004448.14045-1-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190322004448.14045-1-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, daniel.vetter@ffwll.ch List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIGEgRFJNIEVOVU0gcHJvcGVydHkgdG8gdGhlIHNlbGVjdGVkIGNvbm5l Y3RvcnMuClRoaXMgcHJvcGVydHkgaXMgdXNlZCBmb3IgbWVudGlvbmluZyB0aGUgcHJvdGVjdGVk IGNvbnRlbnQncyB0eXBlCmZyb20gdXNlcnNwYWNlIHRvIGtlcm5lbCBIRENQIGF1dGhlbnRpY2F0 aW9uLgoKVHlwZSBvZiB0aGUgc3RyZWFtIGlzIGRlY2lkZWQgYnkgdGhlIHByb3RlY3RlZCBjb250 ZW50IHByb3ZpZGVycy4KVHlwZSAwIGNvbnRlbnQgY2FuIGJlIHJlbmRlcmVkIG9uIGFueSBIRENQ IHByb3RlY3RlZCBkaXNwbGF5IHdpcmVzLgpCdXQgVHlwZSAxIGNvbnRlbnQgY2FuIGJlIHJlbmRl cmVkIG9ubHkgb24gSERDUDIuMiBwcm90ZWN0ZWQgcGF0aHMuCgpTbyB3aGVuIGEgdXNlcnNwYWNl IHNldHMgdGhpcyBwcm9wZXJ0eSB0byBUeXBlIDEgYW5kIHN0YXJ0cyB0aGUgSERDUAplbmFibGUs IGtlcm5lbCB3aWxsIGhvbm91ciBpdCBvbmx5IGlmIEhEQ1AyLjIgYXV0aGVudGljYXRpb24gaXMg dGhyb3VnaApmb3IgdHlwZSAxLiBFbHNlIEhEQ1AgZW5hYmxlIHdpbGwgYmUgZmFpbGVkLgoKdjI6 CiAgY3BfY29udGVudF90eXBlIGlzIHJlcGxhY2VkIHdpdGggY29udGVudF9wcm90ZWN0aW9uX3R5 cGUgW2RhbmllbF0KICBjaGVjayBhdCBhdG9taWNfc2V0X3Byb3BlcnR5IGlzIHJlbW92ZWQgW01h YXJ0ZW5dCnYzOgogICVzL2NvbnRlbnRfcHJvdGVjdGlvbl90eXBlL2hkY3BfY29udGVudF90eXBl IFtQZWtrYV0KClNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgfCAgNCArKwogZHJp dmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgIHwgNjMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgIHwgMTUgKysrKysr KysKIGluY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCAgICAgICB8ICA0ICsrCiA0IGZpbGVzIGNo YW5nZWQsIDg2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY191YXBpLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKaW5kZXgg NGViODFmMTBiYzU0Li44NTdjYTZmYTZmZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX3VhcGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMK QEAgLTc0Niw2ICs3NDYsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJcmV0dXJuIC1FSU5W QUw7CiAJCX0KIAkJc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9IHZhbDsKKwl9IGVsc2UgaWYg KHByb3BlcnR5ID09IGNvbm5lY3Rvci0+aGRjcF9jb250ZW50X3R5cGVfcHJvcGVydHkpIHsKKwkJ c3RhdGUtPmhkY3BfY29udGVudF90eXBlID0gdmFsOwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29ubmVjdG9yLT5jb2xvcnNwYWNlX3Byb3BlcnR5KSB7CiAJCXN0YXRlLT5jb2xvcnNwYWNlID0g dmFsOwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0ZWJhY2tfZmJfaWRfcHJv cGVydHkpIHsKQEAgLTgyMiw2ICs4MjQsOCBAQCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9nZXRfcHJv cGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJKnZhbCA9IHN0YXRlLT5z Y2FsaW5nX21vZGU7CiAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPmNvbnRlbnRf cHJvdGVjdGlvbl9wcm9wZXJ0eSkgewogCQkqdmFsID0gc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlv bjsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+aGRjcF9jb250ZW50X3R5cGVf cHJvcGVydHkpIHsKKwkJKnZhbCA9IHN0YXRlLT5oZGNwX2NvbnRlbnRfdHlwZTsKIAl9IGVsc2Ug aWYgKHByb3BlcnR5ID09IGNvbmZpZy0+d3JpdGViYWNrX2ZiX2lkX3Byb3BlcnR5KSB7CiAJCS8q IFdyaXRlYmFjayBmcmFtZWJ1ZmZlciBpcyBvbmUtc2hvdCwgd3JpdGUgYW5kIGZvcmdldCAqLwog CQkqdmFsID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCmluZGV4IDIzNTUxMjQ4NDlkYi4uZmY2 MWMzMjA4MzA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKQEAgLTg1Nyw2ICs4NTcsMTMgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgaGRtaV9jb2xvcnNwYWNlc1td ID0gewogCXsgRFJNX01PREVfQ09MT1JJTUVUUllfRENJX1AzX1JHQl9USEVBVEVSLCAiRENJLVAz X1JHQl9UaGVhdGVyIiB9LAogfTsKIAorc3RhdGljIHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3Qg ZHJtX2hkY3BfY29udGVudF90eXBlX2VudW1fbGlzdFtdID0geworCXsgRFJNX01PREVfSERDUF9D T05URU5UX1RZUEUwLCAiSERDUCBUeXBlMCIgfSwKKwl7IERSTV9NT0RFX0hEQ1BfQ09OVEVOVF9U WVBFMSwgIkhEQ1AgVHlwZTEiIH0sCit9OworRFJNX0VOVU1fTkFNRV9GTihkcm1fZ2V0X2hkY3Bf Y29udGVudF90eXBlX25hbWUsCisJCSBkcm1faGRjcF9jb250ZW50X3R5cGVfZW51bV9saXN0KQor CiAvKioKICAqIERPQzogc3RhbmRhcmQgY29ubmVjdG9yIHByb3BlcnRpZXMKICAqCkBAIC05NjIs NiArOTY5LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0IGhkbWlf Y29sb3JzcGFjZXNbXSA9IHsKICAqCSAgdGhlIHZhbHVlIHRyYW5zaXRpb25zIGZyb20gRU5BQkxF RCB0byBERVNJUkVELiBUaGlzIHNpZ25pZmllcyB0aGUgbGluawogICoJICBpcyBubyBsb25nZXIg cHJvdGVjdGVkIGFuZCB1c2Vyc3BhY2Ugc2hvdWxkIHRha2UgYXBwcm9wcmlhdGUgYWN0aW9uCiAg KgkgICh3aGF0ZXZlciB0aGF0IG1pZ2h0IGJlKS4KKyAqIEhEQ1AgQ29udGVudCBUeXBlOgorICoJ VGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGJ5IHRoZSB1c2Vyc3BhY2UgdG8gY29uZmlndXJlIHRoZSBr ZXJuZWwgd2l0aAorICoJdXBjb21pbmcgc3RyZWFtJ3MgY29udGVudCB0eXBlLiBDb250ZW50IFR5 cGUgb2YgYSBzdHJlYW0gaXMgZGVjaWRlZCBieQorICoJdGhlIG93bmVyIG9mIHRoZSBzdHJlYW0s IGFzIEhEQ1AgVHlwZTAgb3IgSERDUCBUeXBlMS4KKyAqCisgKglUaGUgdmFsdWUgb2YgdGhlIHBy b3BlcnR5IGNhbiBiZSBvbmUgdGhlIGJlbG93OgorICoJICAtIERSTV9NT0RFX0hEQ1BfQ09OVEVO VF9UWVBFMCA9IDAKKyAqCQlIRENQIFR5cGUwIHN0cmVhbXMgY2FuIGJlIHRyYW5zbWl0dGVkIG9u IGEgbGluayB3aGljaCBpcworICoJCWVuY3J5cHRlZCB3aXRoIEhEQ1AgMS40IG9yIEhEQ1AgMi4y LgorICoJICAtIERSTV9NT0RFX0hEQ1BfQ09OVEVOVF9UWVBFMSA9IDEKKyAqCQlIRENQIFR5cGUx IHN0cmVhbXMgY2FuIGJlIHRyYW5zbWl0dGVkIG9uIGEgbGluayB3aGljaCBpcworICoJCWVuY3J5 cHRlZCBvbmx5IHdpdGggSERDUCAyLjIuCisgKgorICoJUGxlYXNlIG5vdGUgdGhpcyBjb250ZW50 IHR5cGUgaXMgaW50cm9kdWNlZCBhdCBIRENQIDIuMiBhbmQgdXNlZCBpbiBpdHMKKyAqCWF1dGhl bnRpY2F0aW9uIHByb2Nlc3MuIElmIGNvbnRlbnQgdHlwZSBpcyBjaGFuZ2VkIHdoZW4KKyAqCWNv bnRlbnRfcHJvdGVjdGlvbiBpcyBub3QgVU5ERVNJUkVELCB0aGVuIGtlcm5lbCB3aWxsIGRpc2Fi bGUgdGhlIEhEQ1AKKyAqCWFuZCByZS1lbmFibGUgd2l0aCBuZXcgdHlwZSBpbiB0aGUgc2FtZSBh dG9taWMgY29tbWl0CiAgKgogICogbWF4IGJwYzoKICAqCVRoaXMgcmFuZ2UgcHJvcGVydHkgaXMg dXNlZCBieSB1c2Vyc3BhY2UgdG8gbGltaXQgdGhlIGJpdCBkZXB0aC4gV2hlbgpAQCAtMTU1MSw2 ICsxNTc1LDQ1IEBAIGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3Byb3RlY3Rpb25f cHJvcGVydHkoCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRf cHJvdGVjdGlvbl9wcm9wZXJ0eSk7CiAKKy8qKgorICogZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfaGRj cF9jb250ZW50X3R5cGVfcHJvcGVydHkgLSBhdHRhY2ggSERDUAorICogY29udGVudCB0eXBlIHBy b3BlcnR5CisgKgorICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIGF0dGFjaCBIRENQIGNvbnRl bnQgdHlwZSBwcm9wZXJ0eSBvbi4KKyAqCisgKiBUaGlzIGlzIHVzZWQgdG8gYWRkIHN1cHBvcnQg Zm9yIHNlbmRpbmcgdGhlIHByb3RlY3RlZCBjb250ZW50J3Mgc3RyZWFtIHR5cGUKKyAqIGZyb20g dXNlcnNwYWNlIHRvIGtlcm5lbCBvbiBzZWxlY3RlZCBjb25uZWN0b3JzLiBQcm90ZWN0ZWQgY29u dGVudCBwcm92aWRlcgorICogd2lsbCBkZWNpZGUgdGhlaXIgdHlwZSBvZiB0aGVpciBjb250ZW50 IGFuZCBkZWNsYXJlIHRoZSBzYW1lIHRvIGtlcm5lbC4KKyAqCisgKiBUaGlzIGluZm9ybWF0aW9u IHdpbGwgYmUgdXNlZCBkdXJpbmcgdGhlIEhEQ1AgMi4yIGF1dGhlbnRpY2F0aW9uLgorICoKKyAq IENvbnRlbnQgdHlwZSB3aWxsIGJlIHNldCB0byAmZHJtX2Nvbm5lY3Rvcl9zdGF0ZS5oZGNwX2Nv bnRlbnRfdHlwZS4KKyAqCisgKiBSZXR1cm5zOgorICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2 ZSBlcnJubyBvbiBmYWlsdXJlLgorICovCitpbnQKK2RybV9jb25uZWN0b3JfYXR0YWNoX2hkY3Bf Y29udGVudF90eXBlX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICoKKwkJCQkJCSAgICAg IGNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7 CisJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKKworCXByb3AgPSBkcm1fcHJvcGVydHlfY3Jl YXRlX2VudW0oZGV2LCAwLCAiSERDUCBDb250ZW50IFR5cGUiLAorCQkJCQlkcm1faGRjcF9jb250 ZW50X3R5cGVfZW51bV9saXN0LAorCQkJCQlBUlJBWV9TSVpFKAorCQkJCQlkcm1faGRjcF9jb250 ZW50X3R5cGVfZW51bV9saXN0KSk7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4gLUVOT01FTTsKKwor CWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsIHByb3AsCisJCQkJ ICAgRFJNX01PREVfSERDUF9DT05URU5UX1RZUEUwKTsKKwljb25uZWN0b3ItPmhkY3BfY29udGVu dF90eXBlX3Byb3BlcnR5ID0gcHJvcDsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChk cm1fY29ubmVjdG9yX2F0dGFjaF9oZGNwX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eSk7CisKIC8qKgog ICogZHJtX21vZGVfY3JlYXRlX2FzcGVjdF9yYXRpb19wcm9wZXJ0eSAtIGNyZWF0ZSBhc3BlY3Qg cmF0aW8gcHJvcGVydHkKICAqIEBkZXY6IERSTSBkZXZpY2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAppbmRleCBj ODA2MTk5MmQ2Y2IuLmYwODMwOTg1MzY3ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaApAQCAtNTE4LDYgKzUx OCwxMiBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSB7CiAJICovCiAJdW5zaWduZWQgaW50 IGNvbnRlbnRfdHlwZTsKIAorCS8qKgorCSAqIEBoZGNwX2NvbnRlbnRfdHlwZTogQ29ubmVjdG9y IHByb3BlcnR5IHRvIHBhc3MgdGhlIHR5cGUgb2YKKwkgKiBwcm90ZWN0ZWQgY29udGVudC4gVGhp cyBpcyBtb3N0IGNvbW1vbmx5IHVzZWQgZm9yIEhEQ1AuCisJICovCisJdW5zaWduZWQgaW50IGhk Y3BfY29udGVudF90eXBlOworCiAJLyoqCiAJICogQHNjYWxpbmdfbW9kZTogQ29ubmVjdG9yIHBy b3BlcnR5IHRvIGNvbnRyb2wgdGhlCiAJICogdXBzY2FsaW5nLCBtb3N0bHkgdXNlZCBmb3IgYnVp bHQtaW4gcGFuZWxzLgpAQCAtMTAzNSw2ICsxMDQxLDEyIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9y IHsKIAkgKi8KIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpjb2xvcnNwYWNlX3Byb3BlcnR5OwogCisJ LyoqCisJICogQGhkY3BfY29udGVudF90eXBlX3Byb3BlcnR5OiBEUk0gRU5VTSBwcm9wZXJ0eSBm b3IgdHlwZSBvZgorCSAqIFByb3RlY3RlZCBDb250ZW50LgorCSAqLworCXN0cnVjdCBkcm1fcHJv cGVydHkgKmhkY3BfY29udGVudF90eXBlX3Byb3BlcnR5OworCiAJLyoqCiAJICogQHBhdGhfYmxv Yl9wdHI6CiAJICoKQEAgLTEyOTQsNiArMTMwNiw3IEBAIGNvbnN0IGNoYXIgKmRybV9nZXRfZHZp X2lfc2VsZWN0X25hbWUoaW50IHZhbCk7CiBjb25zdCBjaGFyICpkcm1fZ2V0X3R2X3N1YmNvbm5l Y3Rvcl9uYW1lKGludCB2YWwpOwogY29uc3QgY2hhciAqZHJtX2dldF90dl9zZWxlY3RfbmFtZShp bnQgdmFsKTsKIGNvbnN0IGNoYXIgKmRybV9nZXRfY29udGVudF9wcm90ZWN0aW9uX25hbWUoaW50 IHZhbCk7Citjb25zdCBjaGFyICpkcm1fZ2V0X2hkY3BfY29udGVudF90eXBlX25hbWUoaW50IHZh bCk7CiAKIGludCBkcm1fbW9kZV9jcmVhdGVfZHZpX2lfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKIGludCBkcm1fbW9kZV9jcmVhdGVfdHZfbWFyZ2luX3Byb3BlcnRpZXMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7CkBAIC0xMzA5LDYgKzEzMjIsOCBAQCBpbnQgZHJtX2Nvbm5l Y3Rvcl9hdHRhY2hfdnJyX2NhcGFibGVfcHJvcGVydHkoCiAJCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpOwogaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfcHJvdGVjdGlv bl9wcm9wZXJ0eSgKIAkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CitpbnQgZHJt X2Nvbm5lY3Rvcl9hdHRhY2hfaGRjcF9jb250ZW50X3R5cGVfcHJvcGVydHkoCisJCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwogaW50IGRybV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0 aW9fcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgZHJtX21vZGVfY3JlYXRl X2NvbG9yc3BhY2VfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CiBp bnQgZHJtX21vZGVfY3JlYXRlX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1 ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAppbmRleCBhNDM5YzJlNjc4OTYuLjQ0NDEyZThiNzdjZCAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCisrKyBiL2luY2x1ZGUvdWFw aS9kcm0vZHJtX21vZGUuaApAQCAtMjEwLDYgKzIxMCwxMCBAQCBleHRlcm4gIkMiIHsKICNkZWZp bmUgRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQgICAgIDEKICNkZWZpbmUgRFJN X01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQgICAgIDIKIAorLyogQ29udGVudCBUeXBl IGNsYXNzaWZpY2F0aW9uIGZvciBIRENQMi4yIHZzIG90aGVycyAqLworI2RlZmluZSBEUk1fTU9E RV9IRENQX0NPTlRFTlRfVFlQRTAJCTAKKyNkZWZpbmUgRFJNX01PREVfSERDUF9DT05URU5UX1RZ UEUxCQkxCisKIHN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyB7CiAJX191MzIgY2xvY2s7CiAJX191 MTYgaGRpc3BsYXk7Ci0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeA==