From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp2-g21.free.fr ([2a01:e0c:1:1599::11]) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1SmjDH-0008JT-Sy for barebox@lists.infradead.org; Thu, 05 Jul 2012 10:23:14 +0000 Received: from localhost.localdomain (unknown [82.240.38.71]) by smtp2-g21.free.fr (Postfix) with ESMTP id D5BC94B0117 for ; Thu, 5 Jul 2012 12:22:54 +0200 (CEST) From: =?UTF-8?q?Eric=20B=C3=A9nard?= Date: Thu, 5 Jul 2012 12:22:47 +0200 Message-Id: <1341483767-20487-3-git-send-email-eric@eukrea.com> In-Reply-To: <1341483767-20487-1-git-send-email-eric@eukrea.com> References: <1341483767-20487-1-git-send-email-eric@eukrea.com> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 3/3] nand_imx: update to support onfi & 4k flashs To: barebox@lists.infradead.org LSBhZGQgQ01EX1BBUkFNIGFuZCByZWFkX3BhcmFtIHRvIGdldCB0aGUgT05GSSBzdHJ1Y3R1cmUK LSBmaXggT09CIHNpemUgZm9yIGZsYXNoIHdpdGggMjI0IE9PQiBvbiBpLk1YNTEvMwotIGFkZCB0 aGUgc2FtZSBlY2MgbGF5b3V0IGFzIHRoZSBvbmUgaW4gdGhlIGtlcm5lbCBmb3IKICA0ayBwYWdl IGZsYXNocwoKVGVzdGVkIG9uIGFuIGkuTVg1My4KClNpZ25lZC1vZmYtYnk6IEVyaWMgQsOpbmFy ZCA8ZXJpY0BldWtyZWEuY29tPgotLS0KIGRyaXZlcnMvbXRkL25hbmQvbmFuZF9pbXguYyB8ICAg OTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGVzIGNo YW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tdGQvbmFuZC9uYW5kX2lteC5jIGIvZHJpdmVycy9tdGQvbmFuZC9uYW5kX2lteC5jCmlu ZGV4IGU3NWZmYmMuLjgzYjQ5ZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvbmFuZF9p bXguYworKysgYi9kcml2ZXJzL210ZC9uYW5kL25hbmRfaW14LmMKQEAgLTEwNiw2ICsxMDYsNyBA QCBzdHJ1Y3QgaW14X25hbmRfaG9zdCB7CiAJdm9pZAkJCSgqc2VuZF9hZGRyKShzdHJ1Y3QgaW14 X25hbmRfaG9zdCAqLCB1aW50MTZfdCk7CiAJdm9pZAkJCSgqc2VuZF9wYWdlKShzdHJ1Y3QgaW14 X25hbmRfaG9zdCAqLCB1bnNpZ25lZCBpbnQpOwogCXZvaWQJCQkoKnNlbmRfcmVhZF9pZCkoc3Ry dWN0IGlteF9uYW5kX2hvc3QgKik7CisJdm9pZAkJCSgqc2VuZF9yZWFkX3BhcmFtKShzdHJ1Y3Qg aW14X25hbmRfaG9zdCAqKTsKIAl1aW50MTZfdAkJKCpnZXRfZGV2X3N0YXR1cykoc3RydWN0IGlt eF9uYW5kX2hvc3QgKik7CiAJaW50CQkJKCpjaGVja19pbnQpKHN0cnVjdCBpbXhfbmFuZF9ob3N0 ICopOwogfTsKQEAgLTE1NCw2ICsxNTUsMzEgQEAgc3RhdGljIHN0cnVjdCBuYW5kX2VjY2xheW91 dCBuYW5kdjJfaHdfZWNjb29iX2xhcmdlcGFnZSA9IHsKIAl9CiB9OwogCisvKiBPT0IgZGVzY3Jp cHRpb24gZm9yIDQwOTYgYnl0ZSBwYWdlcyB3aXRoIDEyOCBieXRlIE9PQiAqLworc3RhdGljIHN0 cnVjdCBuYW5kX2VjY2xheW91dCBuYW5kdjJfaHdfZWNjb29iXzRrID0geworCS5lY2NieXRlcyA9 IDggKiA5LAorCS5lY2Nwb3MgPSB7CisJCTcsICA4LCAgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAx NSwKKwkJMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwKKwkJMzksIDQwLCA0MSwg NDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywKKwkJNTUsIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYy LCA2MywKKwkJNzEsIDcyLCA3MywgNzQsIDc1LCA3NiwgNzcsIDc4LCA3OSwKKwkJODcsIDg4LCA4 OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5NSwKKwkJMTAzLCAxMDQsIDEwNSwgMTA2LCAxMDcsIDEw OCwgMTA5LCAxMTAsIDExMSwKKwkJMTE5LCAxMjAsIDEyMSwgMTIyLCAxMjMsIDEyNCwgMTI1LCAx MjYsIDEyNywKKwl9LAorCS5vb2JmcmVlID0geworCQl7Lm9mZnNldCA9IDIsIC5sZW5ndGggPSA0 fSwKKwkJey5vZmZzZXQgPSAxNiwgLmxlbmd0aCA9IDd9LAorCQl7Lm9mZnNldCA9IDMyLCAubGVu Z3RoID0gN30sCisJCXsub2Zmc2V0ID0gNDgsIC5sZW5ndGggPSA3fSwKKwkJey5vZmZzZXQgPSA2 NCwgLmxlbmd0aCA9IDd9LAorCQl7Lm9mZnNldCA9IDgwLCAubGVuZ3RoID0gN30sCisJCXsub2Zm c2V0ID0gOTYsIC5sZW5ndGggPSA3fSwKKwkJey5vZmZzZXQgPSAxMTIsIC5sZW5ndGggPSA3fSwK Kwl9Cit9OworCiBzdGF0aWMgdm9pZCBtZW1jcHkzMih2b2lkICp0cmcsIGNvbnN0IHZvaWQgKnNy YywgaW50IHNpemUpCiB7CiAJaW50IGk7CkBAIC0zMzUsNiArMzYxLDE2IEBAIHN0YXRpYyB2b2lk IHNlbmRfcmVhZF9pZF92MyhzdHJ1Y3QgaW14X25hbmRfaG9zdCAqaG9zdCkKIAltZW1jcHkoaG9z dC0+ZGF0YV9idWYsIGhvc3QtPm1haW5fYXJlYTAsIDE2KTsKIH0KIAorc3RhdGljIHZvaWQgc2Vu ZF9yZWFkX3BhcmFtX3YzKHN0cnVjdCBpbXhfbmFuZF9ob3N0ICpob3N0KQoreworCS8qIFJlYWQg SUQgaW50byBtYWluIGJ1ZmZlciAqLworCXdyaXRlbChORkNfT1VUUFVULCBORkNfVjNfTEFVTkNI KTsKKworCXdhaXRfb3BfZG9uZShob3N0KTsKKworCW1lbWNweShob3N0LT5kYXRhX2J1ZiwgaG9z dC0+bWFpbl9hcmVhMCwgMTAyNCk7Cit9CisKIHN0YXRpYyB2b2lkIHNlbmRfcmVhZF9pZF92MV92 MihzdHJ1Y3QgaW14X25hbmRfaG9zdCAqaG9zdCkKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlz ID0gJmhvc3QtPm5hbmQ7CkBAIC0zNjMsNiArMzk5LDM0IEBAIHN0YXRpYyB2b2lkIHNlbmRfcmVh ZF9pZF92MV92MihzdHJ1Y3QgaW14X25hbmRfaG9zdCAqaG9zdCkKIAltZW1jcHkzMihob3N0LT5k YXRhX2J1ZiwgaG9zdC0+bWFpbl9hcmVhMCwgMTYpOwogfQogCisvKiBGSVhNRSA6IHRvIGNoZWNr IG9uIHJlYWwgSFcgKi8KK3N0YXRpYyB2b2lkIHNlbmRfcmVhZF9wYXJhbV92MV92MihzdHJ1Y3Qg aW14X25hbmRfaG9zdCAqaG9zdCkKK3sKKwlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gJmhvc3Qt Pm5hbmQ7CisKKwkvKiBOQU5ERkMgYnVmZmVyIDAgaXMgdXNlZCBmb3IgZGV2aWNlIElEIG91dHB1 dCAqLworCXdyaXRldygweDAsIGhvc3QtPnJlZ3MgKyBORkNfVjFfVjJfQlVGX0FERFIpOworCisJ d3JpdGV3KE5GQ19PVVRQVVQsIGhvc3QtPnJlZ3MgKyBORkNfVjFfVjJfQ09ORklHMik7CisKKwkv KiBXYWl0IGZvciBvcGVyYXRpb24gdG8gY29tcGxldGUgKi8KKwl3YWl0X29wX2RvbmUoaG9zdCk7 CisKKwlpZiAodGhpcy0+b3B0aW9ucyAmIE5BTkRfQlVTV0lEVEhfMTYpIHsKKwkJdm9sYXRpbGUg dTE2ICptYWluYnVmID0gaG9zdC0+bWFpbl9hcmVhMDsKKworCQkvKgorCQkgKiBQYWNrIHRoZSBl dmVyeS1vdGhlci1ieXRlIHJlc3VsdCBmb3IgMTYtYml0IElEIHJlYWRzCisJCSAqIGludG8gZXZl cnktYnl0ZSBhcyB0aGUgZ2VuZXJpYyBjb2RlIGV4cGVjdHMgYW5kIHZhcmlvdXMKKwkJICogY2hp cHMgaW1wbGVtZW50LgorCQkgKi8KKworCQltYWluYnVmWzBdID0gKG1haW5idWZbMF0gJiAweGZm KSB8ICgobWFpbmJ1ZlsxXSAmIDB4ZmYpIDw8IDgpOworCQltYWluYnVmWzFdID0gKG1haW5idWZb Ml0gJiAweGZmKSB8ICgobWFpbmJ1ZlszXSAmIDB4ZmYpIDw8IDgpOworCQltYWluYnVmWzJdID0g KG1haW5idWZbNF0gJiAweGZmKSB8ICgobWFpbmJ1Zls1XSAmIDB4ZmYpIDw8IDgpOworCX0KKwlt ZW1jcHkzMihob3N0LT5kYXRhX2J1ZiwgaG9zdC0+bWFpbl9hcmVhMCwgMTAyNCk7Cit9CiAvKgog ICogVGhpcyBmdW5jdGlvbiByZXF1ZXN0cyB0aGUgTkFOREZDIHRvIHBlcmZvcm0gYSByZWFkIG9m IHRoZQogICogTkFORCBkZXZpY2Ugc3RhdHVzIGFuZCByZXR1cm5zIHRoZSBjdXJyZW50IHN0YXR1 cy4KQEAgLTU3OSw2ICs2NDMsMTAgQEAgc3RhdGljIHZvaWQgaW14X25hbmRfcmVhZF9idWYoc3Ry dWN0IG10ZF9pbmZvICptdGQsIHVfY2hhciAqIGJ1ZiwgaW50IGxlbikKIAogCW4gPSBtaW4obiwg bGVuKTsKIAorCS8qIGhhbmRsZSB0aGUgcmVhZCBwYXJhbSBzcGVjaWFsIGNhc2UgKi8KKwlpZiAo KG10ZC0+d3JpdGVzaXplID09IDApICYmIChsZW4gIT0gMCkpCisJCW4gPSBsZW47CisKIAltZW1j cHkoYnVmLCBob3N0LT5kYXRhX2J1ZiArIGNvbCwgbik7CiAKIAlob3N0LT5idWZfc3RhcnQgKz0g bjsKQEAgLTY3Nyw4ICs3NDUsMTEgQEAgc3RhdGljIHZvaWQgbXhjX2RvX2FkZHJfY3ljbGUoc3Ry dWN0IG10ZF9pbmZvICptdGQsIGludCBjb2x1bW4sIGludCBwYWdlX2FkZHIpCiAJCSAqIGxheWVy cyBwZXJmb3JtIGEgcmVhZC93cml0ZSBidWYgb3BlcmF0aW9uLAogCQkgKiB3ZSB3aWxsIHVzZWQg dGhlIHNhdmVkIGNvbHVtbiBhZHJlc3MgdG8gaW5kZXggaW50bwogCQkgKiB0aGUgZnVsbCBwYWdl LgorCQkgKgorCQkgKiBUaGUgY29sdW0gYWRkcmVzcyBtdXN0IGJlIHNlbnQgdG8gdGhlIGZsYXNo IGluCisJCSAqIG9yZGVyIHRvIGdldCB0aGUgT05GSSBoZWFkZXIgKDB4MjApCiAJCSAqLwotCQlo b3N0LT5zZW5kX2FkZHIoaG9zdCwgMCk7CisJCWhvc3QtPnNlbmRfYWRkcihob3N0LCBjb2x1bW4p OwogCQlpZiAoaG9zdC0+cGFnZXNpemVfMmspCiAJCQkvKiBhbm90aGVyIGNvbCBhZGRyIGN5Y2xl IGZvciAyayBwYWdlICovCiAJCQlob3N0LT5zZW5kX2FkZHIoaG9zdCwgMCk7CkBAIC03OTAsOSAr ODYxLDExIEBAIHN0YXRpYyB2b2lkIHByZXNldF92MyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKIAog CXdyaXRlbCgwLCBORkNfVjNfSVBDKTsKIAorCS8qIGlmIHRoZSBmbGFzaCBoYXMgYSAyMjQgb29i LCB0aGUgTkZDIG11c3QgYmUgY29uZmlndXJlZCB0byAyMTggKi8KIAljb25maWcyID0gTkZDX1Yz X0NPTkZJRzJfT05FX0NZQ0xFIHwKIAkJTkZDX1YzX0NPTkZJRzJfMkNNRF9QSEFTRVMgfAotCQlO RkNfVjNfQ09ORklHMl9TUEFTKG10ZC0+b29ic2l6ZSA+PiAxKSB8CisJCU5GQ19WM19DT05GSUcy X1NQQVMoKChtdGQtPm9vYnNpemUgPiAyMTgpID8KKwkJCTIxOCA6IG10ZC0+b29ic2l6ZSkgPj4g MSkgfAogCQlORkNfVjNfQ09ORklHMl9TVF9DTUQoMHg3MCkgfAogCQlORkNfVjNfQ09ORklHMl9O VU1fQUREUl9QSEFTRTA7CiAKQEAgLTk0NCw4ICsxMDE3LDE1IEBAIHN0YXRpYyB2b2lkIGlteF9u YW5kX2NvbW1hbmQoc3RydWN0IG10ZF9pbmZvICptdGQsIHVuc2lnbmVkIGNvbW1hbmQsCiAJY2Fz ZSBOQU5EX0NNRF9SRUFESUQ6CiAJCWhvc3QtPnNlbmRfY21kKGhvc3QsIGNvbW1hbmQpOwogCQlt eGNfZG9fYWRkcl9jeWNsZShtdGQsIGNvbHVtbiwgcGFnZV9hZGRyKTsKLQkJaG9zdC0+YnVmX3N0 YXJ0ID0gMDsKIAkJaG9zdC0+c2VuZF9yZWFkX2lkKGhvc3QpOworCQlob3N0LT5idWZfc3RhcnQg PSAwOworCQlicmVhazsKKworCWNhc2UgTkFORF9DTURfUEFSQU06CisJCWhvc3QtPnNlbmRfY21k KGhvc3QsIGNvbW1hbmQpOworCQlteGNfZG9fYWRkcl9jeWNsZShtdGQsIGNvbHVtbiwgcGFnZV9h ZGRyKTsKKwkJaG9zdC0+c2VuZF9yZWFkX3BhcmFtKGhvc3QpOworCQlob3N0LT5idWZfc3RhcnQg PSAwOwogCQlicmVhazsKIAogCWNhc2UgTkFORF9DTURfRVJBU0UxOgpAQCAtMTAyNCw3ICsxMTA0 LDcgQEAgc3RhdGljIGludCBfX2luaXQgaW14bmRfcHJvYmUoc3RydWN0IGRldmljZV9kICpkZXYp CiAJc3RydWN0IG10ZF9pbmZvICptdGQ7CiAJc3RydWN0IGlteF9uYW5kX3BsYXRmb3JtX2RhdGEg KnBkYXRhID0gZGV2LT5wbGF0Zm9ybV9kYXRhOwogCXN0cnVjdCBpbXhfbmFuZF9ob3N0ICpob3N0 OwotCXN0cnVjdCBuYW5kX2VjY2xheW91dCAqb29iX3NtYWxscGFnZSwgKm9vYl9sYXJnZXBhZ2U7 CisJc3RydWN0IG5hbmRfZWNjbGF5b3V0ICpvb2Jfc21hbGxwYWdlLCAqb29iX2xhcmdlcGFnZSwg Km9vYl80a3BhZ2U7CiAJaW50IGVyciA9IDA7CiAKICNpZmRlZiBDT05GSUdfQVJDSF9JTVgyNwpA QCAtMTA0Nyw2ICsxMTI3LDcgQEAgc3RhdGljIGludCBfX2luaXQgaW14bmRfcHJvYmUoc3RydWN0 IGRldmljZV9kICpkZXYpCiAJCWhvc3QtPnNlbmRfYWRkciA9IHNlbmRfYWRkcl92MV92MjsKIAkJ aG9zdC0+c2VuZF9wYWdlID0gc2VuZF9wYWdlX3YxX3YyOwogCQlob3N0LT5zZW5kX3JlYWRfaWQg PSBzZW5kX3JlYWRfaWRfdjFfdjI7CisJCWhvc3QtPnNlbmRfcmVhZF9wYXJhbSA9IHNlbmRfcmVh ZF9wYXJhbV92MV92MjsgLyogRklYTUUgOiB0byBjaGVjayAqLwogCQlob3N0LT5nZXRfZGV2X3N0 YXR1cyA9IGdldF9kZXZfc3RhdHVzX3YxX3YyOwogCQlob3N0LT5jaGVja19pbnQgPSBjaGVja19p bnRfdjFfdjI7CiAJfQpAQCAtMTA1OSw2ICsxMTQwLDcgQEAgc3RhdGljIGludCBfX2luaXQgaW14 bmRfcHJvYmUoc3RydWN0IGRldmljZV9kICpkZXYpCiAJCWhvc3QtPnNwYXJlX2xlbiA9IDY0Owog CQlvb2Jfc21hbGxwYWdlID0gJm5hbmR2Ml9od19lY2Nvb2Jfc21hbGxwYWdlOwogCQlvb2JfbGFy Z2VwYWdlID0gJm5hbmR2Ml9od19lY2Nvb2JfbGFyZ2VwYWdlOworCQlvb2JfNGtwYWdlID0gJm5h bmR2Ml9od19lY2Nvb2JfNGs7IC8qIEZJWE1FIDogdG8gY2hlY2sgKi8KIAl9IGVsc2UgaWYgKG5m Y19pc192MSgpKSB7CiAJCWhvc3QtPmJhc2UgPSBkZXZfcmVxdWVzdF9tZW1fcmVnaW9uKGRldiwg MCk7CiAJCWhvc3QtPm1haW5fYXJlYTAgPSBob3N0LT5iYXNlOwpAQCAtMTA2Nyw2ICsxMTQ5LDcg QEAgc3RhdGljIGludCBfX2luaXQgaW14bmRfcHJvYmUoc3RydWN0IGRldmljZV9kICpkZXYpCiAJ CWhvc3QtPnNwYXJlX2xlbiA9IDE2OwogCQlvb2Jfc21hbGxwYWdlID0gJm5hbmR2MV9od19lY2Nv b2Jfc21hbGxwYWdlOwogCQlvb2JfbGFyZ2VwYWdlID0gJm5hbmR2MV9od19lY2Nvb2JfbGFyZ2Vw YWdlOworCQlvb2JfNGtwYWdlID0gJm5hbmR2MV9od19lY2Nvb2Jfc21hbGxwYWdlOyAvKiBGSVhN RSA6IHRvIGNoZWNrICAqLwogCX0gZWxzZSBpZiAobmZjX2lzX3YzXzIoKSkgewogCQlob3N0LT5y ZWdzX2lwID0gZGV2X3JlcXVlc3RfbWVtX3JlZ2lvbihkZXYsIDApOwogCQlob3N0LT5iYXNlID0g ZGV2X3JlcXVlc3RfbWVtX3JlZ2lvbihkZXYsIDEpOwpAQCAtMTA4NiwxMCArMTE2OSwxMiBAQCBz dGF0aWMgaW50IF9faW5pdCBpbXhuZF9wcm9iZShzdHJ1Y3QgZGV2aWNlX2QgKmRldikKIAkJaG9z dC0+c2VuZF9hZGRyID0gc2VuZF9hZGRyX3YzOwogCQlob3N0LT5zZW5kX3BhZ2UgPSBzZW5kX3Bh Z2VfdjM7CiAJCWhvc3QtPnNlbmRfcmVhZF9pZCA9IHNlbmRfcmVhZF9pZF92MzsKKwkJaG9zdC0+ c2VuZF9yZWFkX3BhcmFtID0gc2VuZF9yZWFkX3BhcmFtX3YzOwogCQlob3N0LT5nZXRfZGV2X3N0 YXR1cyA9IGdldF9kZXZfc3RhdHVzX3YzOwogCQlob3N0LT5jaGVja19pbnQgPSBjaGVja19pbnRf djM7CiAJCW9vYl9zbWFsbHBhZ2UgPSAmbmFuZHYyX2h3X2VjY29vYl9zbWFsbHBhZ2U7CiAJCW9v Yl9sYXJnZXBhZ2UgPSAmbmFuZHYyX2h3X2VjY29vYl9sYXJnZXBhZ2U7CisJCW9vYl80a3BhZ2Ug PSAmbmFuZHYyX2h3X2VjY29vYl80azsKIAl9CiAKIAlob3N0LT5kZXYgPSBkZXY7CkBAIC0xMTYx LDcgKzEyNDYsMTAgQEAgc3RhdGljIGludCBfX2luaXQgaW14bmRfcHJvYmUoc3RydWN0IGRldmlj ZV9kICpkZXYpCiAJaW14X25hbmRfc2V0X2xheW91dChtdGQtPndyaXRlc2l6ZSwgcGRhdGEtPndp ZHRoID09IDIgPyAxNiA6IDgpOwogCiAJaWYgKG10ZC0+d3JpdGVzaXplID49IDIwNDgpIHsKLQkJ dGhpcy0+ZWNjLmxheW91dCA9IG9vYl9sYXJnZXBhZ2U7CisJCWlmIChtdGQtPndyaXRlc2l6ZSA9 PSAyMDQ4KQorCQkJdGhpcy0+ZWNjLmxheW91dCA9IG9vYl9sYXJnZXBhZ2U7CisJCWVsc2UKKwkJ CXRoaXMtPmVjYy5sYXlvdXQgPSBvb2JfNGtwYWdlOwogCQlob3N0LT5wYWdlc2l6ZV8yayA9IDE7 CiAJCWlmIChuZmNfaXNfdjIxKCkpCiAJCQl3cml0ZXcoTkZDX1YyX1NQQVNfU1BBUkVTSVpFKDY0 KSwgaG9zdC0+cmVncyArIE5GQ19WMl9TUEFTKTsKLS0gCjEuNy43LjYKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpiYXJlYm94IG1haWxpbmcgbGlzdApi YXJlYm94QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9iYXJlYm94Cg==