From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brendan Higgins Subject: [PATCH v6 07/18] kunit: test: add initial tests Date: Wed, 3 Jul 2019 17:36:04 -0700 Message-ID: <20190704003615.204860-8-brendanhiggins@google.com> References: <20190704003615.204860-1-brendanhiggins@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190704003615.204860-1-brendanhiggins@google.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: frowand.list@gmail.com, gregkh@linuxfoundation.org, jpoimboe@redhat.com, keescook@google.com, kieran.bingham@ideasonboard.com, mcgrof@kernel.org, peterz@infradead.org, robh@kernel.org, sboyd@kernel.org, shuah@kernel.org, tytso@mit.edu, yamada.masahiro@socionext.com Cc: pmladek@suse.com, linux-doc@vger.kernel.org, amir73il@gmail.com, Brendan Higgins , dri-devel@lists.freedesktop.org, Alexander.Levin@microsoft.com, linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org, khilman@baylibre.com, knut.omang@oracle.com, wfg@linux.intel.com, joel@jms.id.au, rientjes@google.com, jdike@addtoit.com, dan.carpenter@oracle.com, devicetree@vger.kernel.org, linux-kbuild@vger.kernel.org, Tim.Bird@sony.com, linux-um@lists.infradead.org, rostedt@goodmis.org, julia.lawall@lip6.fr, kunit-dev@googlegroups.com, richard@nod.at, rdunlap@infradead.org, linux-kernel@vger.kernel.org, mpe@ellerman.id.au, linux-fsdevel@vger.kernel.org, logang@deltatee.com List-Id: linux-nvdimm@lists.01.org QWRkIGEgdGVzdCBmb3Igc3RyaW5nIHN0cmVhbSBhbG9uZyB3aXRoIGEgc2ltcGxlciBleGFtcGxl LgoKU2lnbmVkLW9mZi1ieTogQnJlbmRhbiBIaWdnaW5zIDxicmVuZGFuaGlnZ2luc0Bnb29nbGUu Y29tPgpSZXZpZXdlZC1ieTogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0 aW9uLm9yZz4KUmV2aWV3ZWQtYnk6IExvZ2FuIEd1bnRob3JwZSA8bG9nYW5nQGRlbHRhdGVlLmNv bT4KLS0tCiBrdW5pdC9LY29uZmlnICAgICAgICAgICAgICB8IDIxICsrKysrKysrKwoga3VuaXQv TWFrZWZpbGUgICAgICAgICAgICAgfCAgNCArKwoga3VuaXQvZXhhbXBsZS10ZXN0LmMgICAgICAg fCA4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwoga3VuaXQvc3RyaW5n LXN0cmVhbS10ZXN0LmMgfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBm aWxlcyBjaGFuZ2VkLCAxODggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGt1bml0 L2V4YW1wbGUtdGVzdC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQga3VuaXQvc3RyaW5nLXN0cmVhbS10 ZXN0LmMKCmRpZmYgLS1naXQgYS9rdW5pdC9LY29uZmlnIGIva3VuaXQvS2NvbmZpZwppbmRleCAz MzBhZTgzNTI3YzIzLi44NTQxZWY5NWI2NWFkIDEwMDY0NAotLS0gYS9rdW5pdC9LY29uZmlnCisr KyBiL2t1bml0L0tjb25maWcKQEAgLTE0LDQgKzE0LDI1IEBAIGNvbmZpZyBLVU5JVAogCSAgYXJj aGl0ZWN0dXJlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUKIAkgIERvY3VtZW50 YXRpb24vZGV2LXRvb2xzL2t1bml0Ly4KIAorY29uZmlnIEtVTklUX1RFU1QKKwlib29sICJLVW5p dCB0ZXN0IGZvciBLVW5pdCIKKwlkZXBlbmRzIG9uIEtVTklUCisJaGVscAorCSAgRW5hYmxlcyB0 aGUgdW5pdCB0ZXN0cyBmb3IgdGhlIEtVbml0IHRlc3QgZnJhbWV3b3JrLiBUaGVzZSB0ZXN0cyB0 ZXN0CisJICB0aGUgS1VuaXQgdGVzdCBmcmFtZXdvcmsgaXRzZWxmOyB0aGUgdGVzdHMgYXJlIGJv dGggd3JpdHRlbiB1c2luZworCSAgS1VuaXQgYW5kIHRlc3QgS1VuaXQuIFRoaXMgb3B0aW9uIHNo b3VsZCBvbmx5IGJlIGVuYWJsZWQgZm9yIHRlc3RpbmcKKwkgIHB1cnBvc2VzIGJ5IGRldmVsb3Bl cnMgaW50ZXJlc3RlZCBpbiB0ZXN0aW5nIHRoYXQgS1VuaXQgd29ya3MgYXMKKwkgIGV4cGVjdGVk LgorCitjb25maWcgS1VOSVRfRVhBTVBMRV9URVNUCisJYm9vbCAiRXhhbXBsZSB0ZXN0IGZvciBL VW5pdCIKKwlkZXBlbmRzIG9uIEtVTklUCisJaGVscAorCSAgRW5hYmxlcyBhbiBleGFtcGxlIHVu aXQgdGVzdCB0aGF0IGlsbHVzdHJhdGVzIHNvbWUgb2YgdGhlIGJhc2ljCisJICBmZWF0dXJlcyBv ZiBLVW5pdC4gVGhpcyB0ZXN0IG9ubHkgZXhpc3RzIHRvIGhlbHAgbmV3IHVzZXJzIHVuZGVyc3Rh bmQKKwkgIHdoYXQgS1VuaXQgaXMgYW5kIGhvdyBpdCBpcyB1c2VkLiBQbGVhc2UgcmVmZXIgdG8g dGhlIGV4YW1wbGUgdGVzdAorCSAgaXRzZWxmLCBrdW5pdC9leGFtcGxlLXRlc3QuYywgZm9yIG1v cmUgaW5mb3JtYXRpb24uIFRoaXMgb3B0aW9uIGlzCisJICBpbnRlbmRlZCBmb3IgY3VyaW91cyBo YWNrZXJzIHdobyB3b3VsZCBsaWtlIHRvIHVuZGVyc3RhbmQgaG93IHRvIHVzZQorCSAgS1VuaXQg Zm9yIGtlcm5lbCBkZXZlbG9wbWVudC4KKwogZW5kbWVudQpkaWZmIC0tZ2l0IGEva3VuaXQvTWFr ZWZpbGUgYi9rdW5pdC9NYWtlZmlsZQppbmRleCA2ZGRjNjIyZWU2YjFjLi42MGE5ZWE2Y2I0Njk3 IDEwMDY0NAotLS0gYS9rdW5pdC9NYWtlZmlsZQorKysgYi9rdW5pdC9NYWtlZmlsZQpAQCAtMSwz ICsxLDcgQEAKIG9iai0kKENPTkZJR19LVU5JVCkgKz0JCQl0ZXN0Lm8gXAogCQkJCQlzdHJpbmct c3RyZWFtLm8gXAogCQkJCQlrdW5pdC1zdHJlYW0ubworCitvYmotJChDT05GSUdfS1VOSVRfVEVT VCkgKz0JCXN0cmluZy1zdHJlYW0tdGVzdC5vCisKK29iai0kKENPTkZJR19LVU5JVF9FWEFNUExF X1RFU1QpICs9CWV4YW1wbGUtdGVzdC5vCmRpZmYgLS1naXQgYS9rdW5pdC9leGFtcGxlLXRlc3Qu YyBiL2t1bml0L2V4YW1wbGUtdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLmY2NGE4MjlhYTQ0MWYKLS0tIC9kZXYvbnVsbAorKysgYi9rdW5pdC9leGFtcGxl LXRlc3QuYwpAQCAtMCwwICsxLDg4IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMAorLyoKKyAqIEV4YW1wbGUgS1VuaXQgdGVzdCB0byBzaG93IGhvdyB0byB1c2UgS1VuaXQu CisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5LCBHb29nbGUgTExDLgorICogQXV0aG9yOiBCcmVu ZGFuIEhpZ2dpbnMgPGJyZW5kYW5oaWdnaW5zQGdvb2dsZS5jb20+CisgKi8KKworI2luY2x1ZGUg PGt1bml0L3Rlc3QuaD4KKworLyoKKyAqIFRoaXMgaXMgdGhlIG1vc3QgZnVuZGFtZW50YWwgZWxl bWVudCBvZiBLVW5pdCwgdGhlIHRlc3QgY2FzZS4gQSB0ZXN0IGNhc2UKKyAqIG1ha2VzIGEgc2V0 IEVYUEVDVEFUSU9OcyBhbmQgQVNTRVJUSU9OcyBhYm91dCB0aGUgYmVoYXZpb3Igb2Ygc29tZSBj b2RlOyBpZgorICogYW55IGV4cGVjdGF0aW9ucyBvciBhc3NlcnRpb25zIGFyZSBub3QgbWV0LCB0 aGUgdGVzdCBmYWlsczsgb3RoZXJ3aXNlLCB0aGUKKyAqIHRlc3QgcGFzc2VzLgorICoKKyAqIElu IEtVbml0LCBhIHRlc3QgY2FzZSBpcyBqdXN0IGEgZnVuY3Rpb24gd2l0aCB0aGUgc2lnbmF0dXJl CisgKiBgdm9pZCAoKikoc3RydWN0IGt1bml0ICopYC4gYHN0cnVjdCBrdW5pdGAgaXMgYSBjb250 ZXh0IG9iamVjdCB0aGF0IHN0b3JlcworICogaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQg dGVzdC4KKyAqLworc3RhdGljIHZvaWQgZXhhbXBsZV9zaW1wbGVfdGVzdChzdHJ1Y3Qga3VuaXQg KnRlc3QpCit7CisJLyoKKwkgKiBUaGlzIGlzIGFuIEVYUEVDVEFUSU9OOyBpdCBpcyBob3cgS1Vu aXQgdGVzdHMgdGhpbmdzLiBXaGVuIHlvdSB3YW50CisJICogdG8gdGVzdCBhIHBpZWNlIG9mIGNv ZGUsIHlvdSBzZXQgc29tZSBleHBlY3RhdGlvbnMgYWJvdXQgd2hhdCB0aGUKKwkgKiBjb2RlIHNo b3VsZCBkby4gS1VuaXQgdGhlbiBydW5zIHRoZSB0ZXN0IGFuZCB2ZXJpZmllcyB0aGF0IHRoZSBj b2RlJ3MKKwkgKiBiZWhhdmlvciBtYXRjaGVkIHdoYXQgd2FzIGV4cGVjdGVkLgorCSAqLworCUtV TklUX0VYUEVDVF9FUSh0ZXN0LCAxICsgMSwgMik7Cit9CisKKy8qCisgKiBUaGlzIGlzIHJ1biBv bmNlIGJlZm9yZSBlYWNoIHRlc3QgY2FzZSwgc2VlIHRoZSBjb21tZW50IG9uCisgKiBleGFtcGxl X3Rlc3Rfc3VpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgKi8KK3N0YXRpYyBpbnQgZXhhbXBs ZV90ZXN0X2luaXQoc3RydWN0IGt1bml0ICp0ZXN0KQoreworCWt1bml0X2luZm8odGVzdCwgImlu aXRpYWxpemluZ1xuIik7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEhlcmUgd2UgbWFrZSBh IGxpc3Qgb2YgYWxsIHRoZSB0ZXN0IGNhc2VzIHdlIHdhbnQgdG8gYWRkIHRvIHRoZSB0ZXN0IHN1 aXRlCisgKiBiZWxvdy4KKyAqLworc3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGV4YW1wbGVfdGVz dF9jYXNlc1tdID0geworCS8qCisJICogVGhpcyBpcyBhIGhlbHBlciB0byBjcmVhdGUgYSB0ZXN0 IGNhc2Ugb2JqZWN0IGZyb20gYSB0ZXN0IGNhc2UKKwkgKiBmdW5jdGlvbjsgaXRzIGV4YWN0IGZ1 bmN0aW9uIGlzIG5vdCBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCBob3cgdG8KKwkgKiB1c2UgS1Vu aXQsIGp1c3Qga25vdyB0aGF0IHRoaXMgaXMgaG93IHlvdSBhc3NvY2lhdGUgdGVzdCBjYXNlcyB3 aXRoIGEKKwkgKiB0ZXN0IHN1aXRlLgorCSAqLworCUtVTklUX0NBU0UoZXhhbXBsZV9zaW1wbGVf dGVzdCksCisJe30KK307CisKKy8qCisgKiBUaGlzIGRlZmluZXMgYSBzdWl0ZSBvciBncm91cGlu ZyBvZiB0ZXN0cy4KKyAqCisgKiBUZXN0IGNhc2VzIGFyZSBkZWZpbmVkIGFzIGJlbG9uZ2luZyB0 byB0aGUgc3VpdGUgYnkgYWRkaW5nIHRoZW0gdG8KKyAqIGBrdW5pdF9jYXNlc2AuCisgKgorICog T2Z0ZW4gaXQgaXMgZGVzaXJhYmxlIHRvIHJ1biBzb21lIGZ1bmN0aW9uIHdoaWNoIHdpbGwgc2V0 IHVwIHRoaW5ncyB3aGljaAorICogd2lsbCBiZSB1c2VkIGJ5IGV2ZXJ5IHRlc3Q7IHRoaXMgaXMg YWNjb21wbGlzaGVkIHdpdGggYW4gYGluaXRgIGZ1bmN0aW9uCisgKiB3aGljaCBydW5zIGJlZm9y ZSBlYWNoIHRlc3QgY2FzZSBpcyBpbnZva2VkLiBTaW1pbGFybHksIGFuIGBleGl0YCBmdW5jdGlv bgorICogbWF5IGJlIHNwZWNpZmllZCB3aGljaCBydW5zIGFmdGVyIGV2ZXJ5IHRlc3QgY2FzZSBh bmQgY2FuIGJlIHVzZWQgdG8gZm9yCisgKiBjbGVhbnVwLiBGb3IgY2xhcml0eSwgcnVubmluZyB0 ZXN0cyBpbiBhIHRlc3Qgc3VpdGUgd291bGQgYmVoYXZlIGFzIGZvbGxvd3M6CisgKgorICogc3Vp dGUuaW5pdCh0ZXN0KTsKKyAqIHN1aXRlLnRlc3RfY2FzZVswXSh0ZXN0KTsKKyAqIHN1aXRlLmV4 aXQodGVzdCk7CisgKiBzdWl0ZS5pbml0KHRlc3QpOworICogc3VpdGUudGVzdF9jYXNlWzFdKHRl c3QpOworICogc3VpdGUuZXhpdCh0ZXN0KTsKKyAqIC4uLjsKKyAqLworc3RhdGljIHN0cnVjdCBr dW5pdF9zdWl0ZSBleGFtcGxlX3Rlc3Rfc3VpdGUgPSB7CisJLm5hbWUgPSAiZXhhbXBsZSIsCisJ LmluaXQgPSBleGFtcGxlX3Rlc3RfaW5pdCwKKwkudGVzdF9jYXNlcyA9IGV4YW1wbGVfdGVzdF9j YXNlcywKK307CisKKy8qCisgKiBUaGlzIHJlZ2lzdGVycyB0aGUgYWJvdmUgdGVzdCBzdWl0ZSB0 ZWxsaW5nIEtVbml0IHRoYXQgdGhpcyBpcyBhIHN1aXRlIG9mCisgKiB0ZXN0cyB0aGF0IG5lZWQg dG8gYmUgcnVuLgorICovCitrdW5pdF90ZXN0X3N1aXRlKGV4YW1wbGVfdGVzdF9zdWl0ZSk7CmRp ZmYgLS1naXQgYS9rdW5pdC9zdHJpbmctc3RyZWFtLXRlc3QuYyBiL2t1bml0L3N0cmluZy1zdHJl YW0tdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmI1NjQx YjA3OGI4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9rdW5pdC9zdHJpbmctc3RyZWFtLXRlc3QuYwpA QCAtMCwwICsxLDc1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoK KyAqIEtVbml0IHRlc3QgZm9yIHN0cnVjdCBzdHJpbmdfc3RyZWFtLgorICoKKyAqIENvcHlyaWdo dCAoQykgMjAxOSwgR29vZ2xlIExMQy4KKyAqIEF1dGhvcjogQnJlbmRhbiBIaWdnaW5zIDxicmVu ZGFuaGlnZ2luc0Bnb29nbGUuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cisj aW5jbHVkZSA8a3VuaXQvdGVzdC5oPgorI2luY2x1ZGUgPGt1bml0L3N0cmluZy1zdHJlYW0uaD4K Kworc3RhdGljIHZvaWQgc3RyaW5nX3N0cmVhbV90ZXN0X2VtcHR5X29uX2NyZWF0aW9uKHN0cnVj dCBrdW5pdCAqdGVzdCkKK3sKKwlzdHJ1Y3Qgc3RyaW5nX3N0cmVhbSAqc3RyZWFtID0gYWxsb2Nf c3RyaW5nX3N0cmVhbSh0ZXN0KTsKKworCUtVTklUX0VYUEVDVF9UUlVFKHRlc3QsIHN0cmluZ19z dHJlYW1faXNfZW1wdHkoc3RyZWFtKSk7Cit9CisKK3N0YXRpYyB2b2lkIHN0cmluZ19zdHJlYW1f dGVzdF9ub3RfZW1wdHlfYWZ0ZXJfYWRkKHN0cnVjdCBrdW5pdCAqdGVzdCkKK3sKKwlzdHJ1Y3Qg c3RyaW5nX3N0cmVhbSAqc3RyZWFtID0gYWxsb2Nfc3RyaW5nX3N0cmVhbSh0ZXN0KTsKKworCXN0 cmluZ19zdHJlYW1fYWRkKHN0cmVhbSwgIkZvbyIpOworCisJS1VOSVRfRVhQRUNUX0ZBTFNFKHRl c3QsIHN0cmluZ19zdHJlYW1faXNfZW1wdHkoc3RyZWFtKSk7Cit9CitzdGF0aWMgdm9pZCBzdHJp bmdfc3RyZWFtX3Rlc3RfZ2V0X3N0cmluZyhzdHJ1Y3Qga3VuaXQgKnRlc3QpCit7CisJc3RydWN0 IHN0cmluZ19zdHJlYW0gKnN0cmVhbSA9IGFsbG9jX3N0cmluZ19zdHJlYW0odGVzdCk7CisJY2hh ciAqb3V0cHV0OworCisJc3RyaW5nX3N0cmVhbV9hZGQoc3RyZWFtLCAiRm9vIik7CisJc3RyaW5n X3N0cmVhbV9hZGQoc3RyZWFtLCAiICVzIiwgImJhciIpOworCisJb3V0cHV0ID0gc3RyaW5nX3N0 cmVhbV9nZXRfc3RyaW5nKHN0cmVhbSk7CisJS1VOSVRfRVhQRUNUX1NUUkVRKHRlc3QsIG91dHB1 dCwgIkZvbyBiYXIiKTsKKwlrZnJlZShvdXRwdXQpOworfQorCitzdGF0aWMgdm9pZCBzdHJpbmdf c3RyZWFtX3Rlc3RfYWRkX2FuZF9jbGVhcihzdHJ1Y3Qga3VuaXQgKnRlc3QpCit7CisJc3RydWN0 IHN0cmluZ19zdHJlYW0gKnN0cmVhbSA9IGFsbG9jX3N0cmluZ19zdHJlYW0odGVzdCk7CisJY2hh ciAqb3V0cHV0OworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDEwOyBpKyspCisJCXN0cmlu Z19zdHJlYW1fYWRkKHN0cmVhbSwgIkEiKTsKKworCW91dHB1dCA9IHN0cmluZ19zdHJlYW1fZ2V0 X3N0cmluZyhzdHJlYW0pOworCUtVTklUX0VYUEVDVF9TVFJFUSh0ZXN0LCBvdXRwdXQsICJBQUFB QUFBQUFBIik7CisJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIHN0cmVhbS0+bGVuZ3RoLCAoc2l6ZV90 KTEwKTsKKwlLVU5JVF9FWFBFQ1RfRkFMU0UodGVzdCwgc3RyaW5nX3N0cmVhbV9pc19lbXB0eShz dHJlYW0pKTsKKwlrZnJlZShvdXRwdXQpOworCisJc3RyaW5nX3N0cmVhbV9jbGVhcihzdHJlYW0p OworCisJb3V0cHV0ID0gc3RyaW5nX3N0cmVhbV9nZXRfc3RyaW5nKHN0cmVhbSk7CisJS1VOSVRf RVhQRUNUX1NUUkVRKHRlc3QsIG91dHB1dCwgIiIpOworCUtVTklUX0VYUEVDVF9UUlVFKHRlc3Qs IHN0cmluZ19zdHJlYW1faXNfZW1wdHkoc3RyZWFtKSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qga3Vu aXRfY2FzZSBzdHJpbmdfc3RyZWFtX3Rlc3RfY2FzZXNbXSA9IHsKKwlLVU5JVF9DQVNFKHN0cmlu Z19zdHJlYW1fdGVzdF9lbXB0eV9vbl9jcmVhdGlvbiksCisJS1VOSVRfQ0FTRShzdHJpbmdfc3Ry ZWFtX3Rlc3Rfbm90X2VtcHR5X2FmdGVyX2FkZCksCisJS1VOSVRfQ0FTRShzdHJpbmdfc3RyZWFt X3Rlc3RfZ2V0X3N0cmluZyksCisJS1VOSVRfQ0FTRShzdHJpbmdfc3RyZWFtX3Rlc3RfYWRkX2Fu ZF9jbGVhciksCisJe30KK307CisKK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgc3RyaW5nX3N0 cmVhbV90ZXN0X3N1aXRlID0geworCS5uYW1lID0gInN0cmluZy1zdHJlYW0tdGVzdCIsCisJLnRl c3RfY2FzZXMgPSBzdHJpbmdfc3RyZWFtX3Rlc3RfY2FzZXMKK307CitrdW5pdF90ZXN0X3N1aXRl KHN0cmluZ19zdHJlYW1fdGVzdF9zdWl0ZSk7Ci0tIAoyLjIyLjAuNDEwLmdkOGZkYmUyMWI1LWdv b2cKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==