From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shawn Guo Subject: [PATCH v4 2/3] drm: zte: add .atomic_disable hook to disable graphic layer Date: Mon, 9 Jan 2017 22:35:43 +0800 Message-ID: <1483972544-12731-3-git-send-email-shawnguo@kernel.org> References: <1483972544-12731-1-git-send-email-shawnguo@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA28F6E258 for ; Mon, 9 Jan 2017 14:36:35 +0000 (UTC) In-Reply-To: <1483972544-12731-1-git-send-email-shawnguo@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Daniel Vetter , Baoyou Xie , linux-arm-kernel@lists.infradead.org, Jun Nie List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2hhd24gR3VvIDxzaGF3bi5ndW9AbGluYXJvLm9yZz4KClRoZXJlIGFyZSBhIGZldyBo YXJkd2FyZSBiaXRzIGZvciBlYWNoIGdyYXBoaWMgbGF5ZXIgdG8gY29udHJvbCBtYWluL2F1eApj aGFubmVsIGFuZCBjbG9jayBzZWxlY3Rpb24sIGFzIHdlbGwgYXMgdGhlIGxheWVyIGVuYWJsaW5n LiAgVGhlc2UgYml0cwpzaXQgb3V0c2lkZSB0aGUgbGF5ZXIgYmxvY2sgaXRzZWxmLCBidXQgaW4g Vk9VIGNvbnRyb2wgZ2x1ZSBibG9jay4gIFdlCmN1cnJlbnRseSBzZXQgdGhlc2UgYml0cyB1cCBh dCBDUlRDIGluaXRpYWxpemF0aW9uIGZvciBvbmNlLCBhbmQgZG8gbm90CnN1cHBvcnQgZGlzYWJs aW5nIHRoZSBsYXllci4KClRoaXMgcGF0Y2ggY3JlYXRlcyBhIHBhaXIgb2YgZnVuY3Rpb25zIHp4 X3ZvdV9sYXllcl9lbmFibGVbZGlzYWJsZV0gdG8KYmUgaW52b2tlZCBmcm9tIHBsYW5lIGhvb2tz IC5hdG9taWNfdXBkYXRlIGFuZCAuYXRvbWljX2Rpc2FibGUgdG8gc2V0IHVwCmFuZCB0ZWFyIGRv d24gdGhlIGxheWVyLiAgVGhpcyBpcyBnZW5lcmljIGZvciBib3RoIGdyYXBoaWMgYW5kIHZpZGVv CmxheWVycywgc28gaXQgd2lsbCBtYWtlIHRoZSBvdmVybGF5IHBsYW5lIHN1cHBvcnQgdG8gYmUg YWRkZWQgbGF0ZXIgbXVjaAplYXNpZXIuCgpTaWduZWQtb2ZmLWJ5OiBTaGF3biBHdW8gPHNoYXdu Lmd1b0BsaW5hcm8ub3JnPgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1 bS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jIHwgMTUgKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmggfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0v enRlL3p4X3ZvdS5jICAgfCA3MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS96dGUvenhfdm91LmggICB8ICAzICsrCiA0IGZpbGVzIGNo YW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS96dGUvenhfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfcGxh bmUuYwppbmRleCA3OGQyOWIxZGI5MWMuLjU0NDVlZWJmODMwZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfcGxh bmUuYwpAQCAtMTk3LDEyICsxOTcsMjcgQEAgc3RhdGljIHZvaWQgenhfZ2xfcGxhbmVfYXRvbWlj X3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkvKiBFbmFibGUgSEJTQyBibG9jayAq LwogCXp4X3dyaXRlbF9tYXNrKGhic2MgKyBIQlNDX0NUUkwwLCBIQlNDX0NUUkxfRU4sIEhCU0Nf Q1RSTF9FTik7CiAKKwl6eF92b3VfbGF5ZXJfZW5hYmxlKHBsYW5lKTsKKwogCXp4X2dsX3NldF91 cGRhdGUoenBsYW5lKTsKIH0KIAorc3RhdGljIHZvaWQgenhfcGxhbmVfYXRvbWljX2Rpc2FibGUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg Km9sZF9zdGF0ZSkKK3sKKwlzdHJ1Y3QgenhfcGxhbmUgKnpwbGFuZSA9IHRvX3p4X3BsYW5lKHBs YW5lKTsKKwl2b2lkIF9faW9tZW0gKmhic2MgPSB6cGxhbmUtPmhic2M7CisKKwl6eF92b3VfbGF5 ZXJfZGlzYWJsZShwbGFuZSk7CisKKwkvKiBEaXNhYmxlIEhCU0MgYmxvY2sgKi8KKwl6eF93cml0 ZWxfbWFzayhoYnNjICsgSEJTQ19DVFJMMCwgSEJTQ19DVFJMX0VOLCAwKTsKK30KKwogc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHp4X2dsX3BsYW5lX2hlbHBlcl9m dW5jcyA9IHsKIAkuYXRvbWljX2NoZWNrID0genhfZ2xfcGxhbmVfYXRvbWljX2NoZWNrLAogCS5h dG9taWNfdXBkYXRlID0genhfZ2xfcGxhbmVfYXRvbWljX3VwZGF0ZSwKKwkuYXRvbWljX2Rpc2Fi bGUgPSB6eF9wbGFuZV9hdG9taWNfZGlzYWJsZSwKIH07CiAKIHN0YXRpYyB2b2lkIHp4X3BsYW5l X2Rlc3Ryb3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0venRlL3p4X3BsYW5lLmggYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmgKaW5k ZXggMjY0YTkyZTBiNTMyLi45MzM2MTFkZGZmZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS96dGUvenhfcGxhbmUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmgKQEAg LTE4LDYgKzE4LDcgQEAgc3RydWN0IHp4X3BsYW5lIHsKIAl2b2lkIF9faW9tZW0gKmNzYzsKIAl2 b2lkIF9faW9tZW0gKmhic2M7CiAJdm9pZCBfX2lvbWVtICpyc3o7CisJY29uc3Qgc3RydWN0IHZv dV9sYXllcl9iaXRzICpiaXRzOwogfTsKIAogI2RlZmluZSB0b196eF9wbGFuZShwbGFuZSkgY29u dGFpbmVyX29mKHBsYW5lLCBzdHJ1Y3QgenhfcGxhbmUsIHBsYW5lKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3p0ZS96eF92b3UuYyBiL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfdm91LmMK aW5kZXggZDVjODAxZjZmOTdiLi4zZmI0ZmMwNGU2OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS96dGUvenhfdm91LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF92b3UuYwpAQCAt NjUsNyArNjUsNiBAQCBzdHJ1Y3QgenhfY3J0Y19iaXRzIHsKIAl1MzIgcG9sYXJpdHlfc2hpZnQ7 CiAJdTMyIGludF9mcmFtZV9tYXNrOwogCXUzMiB0Y19lbmFibGU7Ci0JdTMyIGdsX2VuYWJsZTsK IH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgenhfY3J0Y19iaXRzIG1haW5fY3J0Y19iaXRzID0g ewpAQCAtNzMsNyArNzIsNiBAQCBzdHJ1Y3QgenhfY3J0Y19iaXRzIHsKIAkucG9sYXJpdHlfc2hp ZnQgPSBNQUlOX1BPTF9TSElGVCwKIAkuaW50X2ZyYW1lX21hc2sgPSBUSU1JTkdfSU5UX01BSU5f RlJBTUUsCiAJLnRjX2VuYWJsZSA9IE1BSU5fVENfRU4sCi0JLmdsX2VuYWJsZSA9IE9TRF9DVFJM MF9HTDBfRU4sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHp4X2NydGNfYml0cyBhdXhfY3J0 Y19iaXRzID0gewpAQCAtODEsNyArNzksNiBAQCBzdHJ1Y3QgenhfY3J0Y19iaXRzIHsKIAkucG9s YXJpdHlfc2hpZnQgPSBBVVhfUE9MX1NISUZULAogCS5pbnRfZnJhbWVfbWFzayA9IFRJTUlOR19J TlRfQVVYX0ZSQU1FLAogCS50Y19lbmFibGUgPSBBVVhfVENfRU4sCi0JLmdsX2VuYWJsZSA9IE9T RF9DVFJMMF9HTDFfRU4sCiB9OwogCiBzdHJ1Y3QgenhfY3J0YyB7CkBAIC05Nyw2ICs5NCwyNCBA QCBzdHJ1Y3QgenhfY3J0YyB7CiAKICNkZWZpbmUgdG9fenhfY3J0Yyh4KSBjb250YWluZXJfb2Yo eCwgc3RydWN0IHp4X2NydGMsIGNydGMpCiAKK3N0cnVjdCB2b3VfbGF5ZXJfYml0cyB7CisJdTMy IGVuYWJsZTsKKwl1MzIgY2huc2VsOworCXUzMiBjbGtzZWw7Cit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IHZvdV9sYXllcl9iaXRzIHp4X2dsX2JpdHNbR0xfTlVNXSA9IHsKKwl7CisJCS5lbmFi bGUgPSBPU0RfQ1RSTDBfR0wwX0VOLAorCQkuY2huc2VsID0gT1NEX0NUUkwwX0dMMF9TRUwsCisJ CS5jbGtzZWwgPSBWT1VfQ0xLX0dMMF9TRUwsCisJfSwgeworCQkuZW5hYmxlID0gT1NEX0NUUkww X0dMMV9FTiwKKwkJLmNobnNlbCA9IE9TRF9DVFJMMF9HTDFfU0VMLAorCQkuY2xrc2VsID0gVk9V X0NMS19HTDFfU0VMLAorCX0sCit9OworCiBzdHJ1Y3Qgenhfdm91X2h3IHsKIAlzdHJ1Y3QgZGV2 aWNlICpkZXY7CiAJdm9pZCBfX2lvbWVtICpvc2Q7CkBAIC0yMjAsMTAgKzIzNSw2IEBAIHN0YXRp YyB2b2lkIHp4X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkvKiBFbmFibGUg Y2hhbm5lbCAqLwogCXp4X3dyaXRlbF9tYXNrKHpjcnRjLT5jaG5yZWcgKyBDSE5fQ1RSTDAsIENI Tl9FTkFCTEUsIENITl9FTkFCTEUpOwogCi0JLyogRW5hYmxlIEdyYXBoaWMgTGF5ZXIgKi8KLQl6 eF93cml0ZWxfbWFzayh2b3UtPm9zZCArIE9TRF9DVFJMMCwgYml0cy0+Z2xfZW5hYmxlLAotCQkg ICAgICAgYml0cy0+Z2xfZW5hYmxlKTsKLQogCWRybV9jcnRjX3ZibGFua19vbihjcnRjKTsKIAog CXJldCA9IGNsa19zZXRfcmF0ZSh6Y3J0Yy0+cGl4Y2xrLCBtb2RlLT5jbG9jayAqIDEwMDApOwpA QCAtMjQ3LDkgKzI1OCw2IEBAIHN0YXRpYyB2b2lkIHp4X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiAKIAlkcm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMpOwogCi0JLyogRGlzYWJs ZSBHcmFwaGljIExheWVyICovCi0Jenhfd3JpdGVsX21hc2sodm91LT5vc2QgKyBPU0RfQ1RSTDAs IGJpdHMtPmdsX2VuYWJsZSwgMCk7Ci0KIAkvKiBEaXNhYmxlIGNoYW5uZWwgKi8KIAl6eF93cml0 ZWxfbWFzayh6Y3J0Yy0+Y2hucmVnICsgQ0hOX0NUUkwwLCBDSE5fRU5BQkxFLCAwKTsKIApAQCAt MzE2LDYgKzMyNCw3IEBAIHN0YXRpYyBpbnQgenhfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkcm0sIHN0cnVjdCB6eF92b3VfaHcgKnZvdSwKIAkJenBsYW5lLT5jc2MgPSB2b3UtPm9zZCAr IE1BSU5fQ1NDX09GRlNFVDsKIAkJenBsYW5lLT5oYnNjID0gdm91LT5vc2QgKyBNQUlOX0hCU0Nf T0ZGU0VUOwogCQl6cGxhbmUtPnJzeiA9IHZvdS0+b3RmcHB1ICsgTUFJTl9SU1pfT0ZGU0VUOwor CQl6cGxhbmUtPmJpdHMgPSAmenhfZ2xfYml0c1swXTsKIAkJemNydGMtPmNobnJlZyA9IHZvdS0+ b3NkICsgT1NEX01BSU5fQ0hOOwogCQl6Y3J0Yy0+cmVncyA9ICZtYWluX2NydGNfcmVnczsKIAkJ emNydGMtPmJpdHMgPSAmbWFpbl9jcnRjX2JpdHM7CkBAIC0zMjQsNiArMzMzLDcgQEAgc3RhdGlj IGludCB6eF9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IHp4X3ZvdV9o dyAqdm91LAogCQl6cGxhbmUtPmNzYyA9IHZvdS0+b3NkICsgQVVYX0NTQ19PRkZTRVQ7CiAJCXpw bGFuZS0+aGJzYyA9IHZvdS0+b3NkICsgQVVYX0hCU0NfT0ZGU0VUOwogCQl6cGxhbmUtPnJzeiA9 IHZvdS0+b3RmcHB1ICsgQVVYX1JTWl9PRkZTRVQ7CisJCXpwbGFuZS0+Yml0cyA9ICZ6eF9nbF9i aXRzWzFdOwogCQl6Y3J0Yy0+Y2hucmVnID0gdm91LT5vc2QgKyBPU0RfQVVYX0NITjsKIAkJemNy dGMtPnJlZ3MgPSAmYXV4X2NydGNfcmVnczsKIAkJemNydGMtPmJpdHMgPSAmYXV4X2NydGNfYml0 czsKQEAgLTQxMSw2ICs0MjEsMzYgQEAgdm9pZCB6eF92b3VfZGlzYWJsZV92Ymxhbmsoc3RydWN0 IGRybV9kZXZpY2UgKmRybSwgdW5zaWduZWQgaW50IHBpcGUpCiAJCSAgICAgICB6Y3J0Yy0+Yml0 cy0+aW50X2ZyYW1lX21hc2ssIDApOwogfQogCit2b2lkIHp4X3ZvdV9sYXllcl9lbmFibGUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUpCit7CisJc3RydWN0IHp4X2NydGMgKnpjcnRjID0gdG9fenhf Y3J0YyhwbGFuZS0+c3RhdGUtPmNydGMpOworCXN0cnVjdCB6eF92b3VfaHcgKnZvdSA9IHpjcnRj LT52b3U7CisJc3RydWN0IHp4X3BsYW5lICp6cGxhbmUgPSB0b196eF9wbGFuZShwbGFuZSk7CisJ Y29uc3Qgc3RydWN0IHZvdV9sYXllcl9iaXRzICpiaXRzID0genBsYW5lLT5iaXRzOworCisJaWYg KHpjcnRjLT5jaG5fdHlwZSA9PSBWT1VfQ0hOX01BSU4pIHsKKwkJenhfd3JpdGVsX21hc2sodm91 LT5vc2QgKyBPU0RfQ1RSTDAsIGJpdHMtPmNobnNlbCwgMCk7CisJCXp4X3dyaXRlbF9tYXNrKHZv dS0+dm91Y3RsICsgVk9VX0NMS19TRUwsIGJpdHMtPmNsa3NlbCwgMCk7CisJfSBlbHNlIHsKKwkJ enhfd3JpdGVsX21hc2sodm91LT5vc2QgKyBPU0RfQ1RSTDAsIGJpdHMtPmNobnNlbCwKKwkJCSAg ICAgICBiaXRzLT5jaG5zZWwpOworCQl6eF93cml0ZWxfbWFzayh2b3UtPnZvdWN0bCArIFZPVV9D TEtfU0VMLCBiaXRzLT5jbGtzZWwsCisJCQkgICAgICAgYml0cy0+Y2xrc2VsKTsKKwl9CisKKwl6 eF93cml0ZWxfbWFzayh2b3UtPm9zZCArIE9TRF9DVFJMMCwgYml0cy0+ZW5hYmxlLCBiaXRzLT5l bmFibGUpOworfQorCit2b2lkIHp4X3ZvdV9sYXllcl9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lKQoreworCXN0cnVjdCB6eF9jcnRjICp6Y3J0YyA9IHRvX3p4X2NydGMocGxhbmUtPmNy dGMpOworCXN0cnVjdCB6eF92b3VfaHcgKnZvdSA9IHpjcnRjLT52b3U7CisJc3RydWN0IHp4X3Bs YW5lICp6cGxhbmUgPSB0b196eF9wbGFuZShwbGFuZSk7CisJY29uc3Qgc3RydWN0IHZvdV9sYXll cl9iaXRzICpiaXRzID0genBsYW5lLT5iaXRzOworCisJenhfd3JpdGVsX21hc2sodm91LT5vc2Qg KyBPU0RfQ1RSTDAsIGJpdHMtPmVuYWJsZSwgMCk7Cit9CisKIHN0YXRpYyBpcnFyZXR1cm5fdCB2 b3VfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewogCXN0cnVjdCB6eF92b3Vf aHcgKnZvdSA9IGRldl9pZDsKQEAgLTQ2OSwxOSArNTA5LDkgQEAgc3RhdGljIHZvaWQgdm91X2R0 cmNfaW5pdChzdHJ1Y3Qgenhfdm91X2h3ICp2b3UpCiAKIHN0YXRpYyB2b2lkIHZvdV9od19pbml0 KHN0cnVjdCB6eF92b3VfaHcgKnZvdSkKIHsKLQkvKiBTZXQgR0wwIHRvIG1haW4gY2hhbm5lbCBh bmQgR0wxIHRvIGF1eCBjaGFubmVsICovCi0Jenhfd3JpdGVsX21hc2sodm91LT5vc2QgKyBPU0Rf Q1RSTDAsIE9TRF9DVFJMMF9HTDBfU0VMLCAwKTsKLQl6eF93cml0ZWxfbWFzayh2b3UtPm9zZCAr IE9TRF9DVFJMMCwgT1NEX0NUUkwwX0dMMV9TRUwsCi0JCSAgICAgICBPU0RfQ1RSTDBfR0wxX1NF TCk7Ci0KIAkvKiBSZWxlYXNlIHJlc2V0IGZvciBhbGwgVk9VIG1vZHVsZXMgKi8KIAl6eF93cml0 ZWwodm91LT52b3VjdGwgKyBWT1VfU09GVF9SU1QsIH4wKTsKIAotCS8qIFNlbGVjdCBtYWluIGNs b2NrIGZvciBHTDAgYW5kIGF1eCBjbG9jayBmb3IgR0wxIG1vZHVsZSAqLwotCXp4X3dyaXRlbF9t YXNrKHZvdS0+dm91Y3RsICsgVk9VX0NMS19TRUwsIFZPVV9DTEtfR0wwX1NFTCwgMCk7Ci0Jenhf d3JpdGVsX21hc2sodm91LT52b3VjdGwgKyBWT1VfQ0xLX1NFTCwgVk9VX0NMS19HTDFfU0VMLAot CQkgICAgICAgVk9VX0NMS19HTDFfU0VMKTsKLQogCS8qIEVuYWJsZSBjbG9jayBhdXRvLWdhdGlu ZyBmb3IgYWxsIFZPVSBtb2R1bGVzICovCiAJenhfd3JpdGVsKHZvdS0+dm91Y3RsICsgVk9VX0NM S19SRVFFTiwgfjApOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3ZvdS5o IGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF92b3UuaAppbmRleCAzNDllMDZjZDg2ZjQuLjRiNDMz OWJlNjQxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF92b3UuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0venRlL3p4X3ZvdS5oCkBAIC00Myw0ICs0Myw3IEBAIHN0cnVjdCB2b3Vf aW5mIHsKIGludCB6eF92b3VfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1 bnNpZ25lZCBpbnQgcGlwZSk7CiB2b2lkIHp4X3ZvdV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJt X2RldmljZSAqZHJtLCB1bnNpZ25lZCBpbnQgcGlwZSk7CiAKK3ZvaWQgenhfdm91X2xheWVyX2Vu YWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7Cit2b2lkIHp4X3ZvdV9sYXllcl9kaXNhYmxl KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKKwogI2VuZGlmIC8qIF9fWlhfVk9VX0hfXyAqLwot LSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=