From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 02B8D89D9A for ; Tue, 28 May 2019 14:05:19 +0000 (UTC) From: Simon Ser Date: Tue, 28 May 2019 17:05:29 +0300 Message-Id: <20190528140530.4321-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/2] lib/igt_eld: introduce an ELD library 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@lists.freedesktop.org Cc: martin.peres@intel.com List-ID: VGhlcmUgYXJlIHR3byByZWFzb25zIHdoeSBJIHdhbnQgdG8gaW50cm9kdWNlIHRoaXMgbGlicmFy eToKCi0gSSB3YW50IHRvIHVzZSBpdCBmcm9tIHRoZSBDaGFtZWxpdW0gdGVzdHMgZm9yIERpc3Bs YXlQb3J0Ci0gSSB3YW50IHRvIGV4cGFuZCBpdCB0byBhbHNvIGNoZWNrIHRoYXQgYXVkaW8gcGFy YW1ldGVycyBwYXJzZWQgYnkgQUxTQSBhcmUKICBjb3JyZWN0IChmb3JtYXRzLCBzYW1wbGluZyBy YXRlcywgc2FtcGxlIHNpemVzIGFuZCBzbyBvbikKClNpZ25lZC1vZmYtYnk6IFNpbW9uIFNlciA8 c2ltb24uc2VyQGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X2VsZC5jICAgICAgICAgICB8IDExMSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvaWd0X2VsZC5oICAg ICAgICAgICB8ICAzNSArKysrKysrKysrKysrCiBsaWIvbWVzb24uYnVpbGQgICAgICAgICB8ICAg MSArCiB0ZXN0cy9rbXNfaGRtaV9pbmplY3QuYyB8ICA4MCArKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2lndF9lbGQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYi9pZ3RfZWxkLmgKCmRpZmYgLS1naXQgYS9saWIvaWd0X2VsZC5jIGIvbGliL2lndF9lbGQu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhlMGRjYzMwNmU4NQot LS0gL2Rldi9udWxsCisrKyBiL2xpYi9pZ3RfZWxkLmMKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisg KiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv biBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1 YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGlu ZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisg KiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ TSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB TElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBTaW1vbiBTZXIgPHNp bW9uLnNlckBpbnRlbC5jb20+CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk ZSA8ZGlyZW50Lmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNp bmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgImlndF9lbGQuaCIKKworLyoqCisgKiBFRElE LUxpa2UgRGF0YSAoRUxEKSBpcyBtZXRhZGF0YSBwYXJzZWQgYW5kIGV4cG9zZWQgYnkgQUxTQSBm b3IgSERNSSBhbmQKKyAqIERpc3BsYXlQb3J0IGNvbm5lY3RvcnMgc3VwcG9ydGluZyBhdWRpby4g VGhpcyBpbmNsdWRlcyB0aGUgbW9uaXRvciBuYW1lIGFuZAorICogdGhlIHN1cHBvcnRlZCBhdWRp byBwYXJhbWV0ZXJzIChmb3JtYXRzLCBzYW1wbGluZyByYXRlcywgc2FtcGxlIHNpemVzIGFuZCBz bworICogb24pLgorICovCisKKy8qKiBlbGRfZW50cnlfaXNfaWd0OiBjaGVja3Mgd2hldGhlciBh biBFTEQgZW50cnkgaXMgbWFwcGVkIHRvIHRoZSBJR1QgRURJRCAqLworc3RhdGljIGJvb2wgZWxk X2VudHJ5X2lzX2lndChjb25zdCBjaGFyICpwYXRoKQoreworCUZJTEUgKmluOworCWNoYXIgYnVm WzEwMjRdOworCXVpbnQ4X3QgZWxkX3ZhbGlkID0gMDsKKwl1aW50OF90IG1vbl92YWxpZCA9IDA7 CisKKwlpbiA9IGZvcGVuKHBhdGgsICJyIik7CisJaWYgKCFpbikKKwkJcmV0dXJuIGZhbHNlOwor CisJbWVtc2V0KGJ1ZiwgMCwgMTAyNCk7CisKKwl3aGlsZSAoKGZnZXRzKGJ1ZiwgMTAyNCwgaW4p KSAhPSBOVUxMKSB7CisJCWNoYXIgKmxpbmUgPSBidWY7CisKKwkJaWYgKCFzdHJuY2FzZWNtcChs aW5lLCAiZWxkX3ZhbGlkIiwgOSkgJiYKKwkJCQlzdHJzdHIobGluZSwgIjEiKSkgeworCQkJZWxk X3ZhbGlkKys7CisJCX0KKworCQlpZiAoIXN0cm5jYXNlY21wKGxpbmUsICJtb25pdG9yX25hbWUi LCAxMikgJiYKKwkJCQlzdHJzdHIobGluZSwgIklHVCIpKSB7CisJCQltb25fdmFsaWQrKzsKKwkJ fQorCX0KKworCWZjbG9zZShpbik7CisJaWYgKG1vbl92YWxpZCAmJiBlbGRfdmFsaWQpCisJCXJl dHVybiB0cnVlOworCisJcmV0dXJuIGZhbHNlOworfQorCisvKiogZWxkX2hhc19pZ3Q6IGNoZWNr IHdoZXRoZXIgQUxTQSBoYXMgZGV0ZWN0ZWQgdGhlIGF1ZGlvLWNhcGFibGUgSUdUIEVESUQgYnkK KyAqIHBhcnNpbmcgRUxEIGVudHJpZXMgKi8KK2Jvb2wgZWxkX2hhc19pZ3Qodm9pZCkKK3sKKwlE SVIgKmRpcjsKKwlzdHJ1Y3QgZGlyZW50ICpzbmRfaGRhOworCWludCBpOworCisJZm9yIChpID0g MDsgaSA8IDg7IGkrKykgeworCQljaGFyIGNhcmRzWzEyOF07CisKKwkJc25wcmludGYoY2FyZHMs IHNpemVvZihjYXJkcyksICIvcHJvYy9hc291bmQvY2FyZCVkIiwgaSk7CisJCWRpciA9IG9wZW5k aXIoY2FyZHMpOworCQlpZiAoIWRpcikKKwkJCWNvbnRpbnVlOworCisJCXdoaWxlICgoc25kX2hk YSA9IHJlYWRkaXIoZGlyKSkpIHsKKwkJCWNoYXIgZnBhdGhbUEFUSF9NQVhdOworCisJCQlpZiAo KnNuZF9oZGEtPmRfbmFtZSA9PSAnLicgfHwKKwkJCSAgICBzdHJzdHIoc25kX2hkYS0+ZF9uYW1l LCAiZWxkIikgPT0gMCkKKwkJCQljb250aW51ZTsKKworCQkJc25wcmludGYoZnBhdGgsIHNpemVv ZihmcGF0aCksICIlcy8lcyIsIGNhcmRzLAorCQkJCSBzbmRfaGRhLT5kX25hbWUpOworCQkJaWYg KGVsZF9lbnRyeV9pc19pZ3QoZnBhdGgpKSB7CisJCQkJY2xvc2VkaXIoZGlyKTsKKwkJCQlyZXR1 cm4gdHJ1ZTsKKwkJCX0KKwkJfQorCQljbG9zZWRpcihkaXIpOworCX0KKworCXJldHVybiBmYWxz ZTsKK30KZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZWxkLmggYi9saWIvaWd0X2VsZC5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODQ0YjgwMjdkMDQ3Ci0tLSAvZGV2L251 bGwKKysrIGIvbGliL2lndF9lbGQuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0 IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAor ICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQK KyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhP UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJ TiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50 ZWwuY29tPgorICovCisKKyNpZm5kZWYgSUdUX0VESURfSAorI2RlZmluZSBJR1RfRURJRF9ICisK KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKworYm9vbCBlbGRf aGFzX2lndCh2b2lkKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9saWIvbWVzb24uYnVpbGQgYi9s aWIvbWVzb24uYnVpbGQKaW5kZXggY2RiNDUwZTFlNzYyLi44NDRlMGFiY2Q5MTkgMTAwNjQ0Ci0t LSBhL2xpYi9tZXNvbi5idWlsZAorKysgYi9saWIvbWVzb24uYnVpbGQKQEAgLTU5LDYgKzU5LDcg QEAgbGliX3NvdXJjZXMgPSBbCiAJJ2lndF9wc3IuYycsCiAJJ2lndF9hbWQuYycsCiAJJ2lndF9l ZGlkLmMnLAorCSdpZ3RfZWxkLmMnLAogXQogCiBsaWJfZGVwcyA9IFsKZGlmZiAtLWdpdCBhL3Rl c3RzL2ttc19oZG1pX2luamVjdC5jIGIvdGVzdHMva21zX2hkbWlfaW5qZWN0LmMKaW5kZXggYTI0 MDYxMDQyYzIwLi5lYmEyNTA0NmNlYWQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19oZG1pX2luamVj dC5jCisrKyBiL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jCkBAIC0yMiw4ICsyMiwxMiBAQAogICoK ICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpbmNsdWRlIDxkaXJlbnQuaD4KKwogI2lu Y2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF9lbGQuaCIKIAogI2RlZmluZSBIRElTUExBWV80 SwkzODQwCiAjZGVmaW5lIFZESVNQTEFZXzRLCTIxNjAKQEAgLTEzNCw4MCArMTM4LDYgQEAgaGRt aV9pbmplY3RfNGsoaW50IGRybV9mZCwgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yKQogCWZy ZWUoZWRpZCk7CiB9CiAKLS8qKiBlbGRfZW50cnlfaXNfaWd0OiBjaGVja3Mgd2hldGhlciBhbiBF TEQgZW50cnkgaXMgbWFwcGVkIHRvIHRoZSBJR1QgRURJRCAqLwotc3RhdGljIGJvb2wKLWVsZF9l bnRyeV9pc19pZ3QoY29uc3QgY2hhciogcGF0aCkKLXsKLQlGSUxFICppbjsKLQljaGFyIGJ1Zlsx MDI0XTsKLQl1aW50OF90IGVsZF92YWxpZCA9IDA7Ci0JdWludDhfdCBtb25fdmFsaWQgPSAwOwot Ci0JaW4gPSBmb3BlbihwYXRoLCAiciIpOwotCWlmICghaW4pCi0JCXJldHVybiBmYWxzZTsKLQot CW1lbXNldChidWYsIDAsIDEwMjQpOwotCi0Jd2hpbGUgKChmZ2V0cyhidWYsIDEwMjQsIGluKSkg IT0gTlVMTCkgewotCi0JCWNoYXIgKmxpbmUgPSBidWY7Ci0KLQkJaWYgKCFzdHJuY2FzZWNtcChs aW5lLCAiZWxkX3ZhbGlkIiwgOSkgJiYKLQkJCQlzdHJzdHIobGluZSwgIjEiKSkgewotCQkJZWxk X3ZhbGlkKys7Ci0JCX0KLQotCQlpZiAoIXN0cm5jYXNlY21wKGxpbmUsICJtb25pdG9yX25hbWUi LCAxMikgJiYKLQkJCQlzdHJzdHIobGluZSwgIklHVCIpKSB7Ci0JCQltb25fdmFsaWQrKzsKLQkJ fQotCX0KLQotCWZjbG9zZShpbik7Ci0JaWYgKG1vbl92YWxpZCAmJiBlbGRfdmFsaWQpCi0JCXJl dHVybiB0cnVlOwotCi0JcmV0dXJuIGZhbHNlOwotfQotCi0vKiogZWxkX2lzX3ZhbGlkOiBjaGVj ayB3aGV0aGVyIEFMU0EgaGFzIGRldGVjdGVkIHRoZSBhdWRpby1jYXBhYmxlIElHVCBFRElEIGJ5 Ci0gKiBwYXJzaW5nIEVMRCBlbnRyaWVzICovCi1zdGF0aWMgYm9vbAotZWxkX2lzX3ZhbGlkKHZv aWQpCi17Ci0JRElSICpkaXI7Ci0Jc3RydWN0IGRpcmVudCAqc25kX2hkYTsKLQlpbnQgaTsKLQot CWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJY2hhciBjYXJkc1sxMjhdOwotCi0JCXNucHJp bnRmKGNhcmRzLCBzaXplb2YoY2FyZHMpLCAiL3Byb2MvYXNvdW5kL2NhcmQlZCIsIGkpOwotCQlk aXIgPSBvcGVuZGlyKGNhcmRzKTsKLQkJaWYgKCFkaXIpCi0JCQljb250aW51ZTsKLQotCQl3aGls ZSAoKHNuZF9oZGEgPSByZWFkZGlyKGRpcikpKSB7Ci0JCQljaGFyIGZwYXRoW1BBVEhfTUFYXTsK LQotCQkJaWYgKCpzbmRfaGRhLT5kX25hbWUgPT0gJy4nIHx8Ci0JCQkgICAgc3Ryc3RyKHNuZF9o ZGEtPmRfbmFtZSwgImVsZCIpID09IDApCi0JCQkJY29udGludWU7Ci0KLQkJCXNucHJpbnRmKGZw YXRoLCBzaXplb2YoZnBhdGgpLCAiJXMvJXMiLCBjYXJkcywKLQkJCQkgc25kX2hkYS0+ZF9uYW1l KTsKLQkJCWlmIChlbGRfZW50cnlfaXNfaWd0KGZwYXRoKSkgewotCQkJCWNsb3NlZGlyKGRpcik7 Ci0JCQkJcmV0dXJuIHRydWU7Ci0JCQl9Ci0JCX0KLQkJY2xvc2VkaXIoZGlyKTsKLQl9Ci0KLQly ZXR1cm4gZmFsc2U7Ci19Ci0KIHN0YXRpYyB2b2lkCiBoZG1pX2luamVjdF9hdWRpbyhpbnQgZHJt X2ZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpCiB7CkBAIC0yNTIsNyArMTgyLDcgQEAg aGRtaV9pbmplY3RfYXVkaW8oaW50IGRybV9mZCwgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9y KQogCSAqIFRlc3QgaWYgd2UgaGF2ZSAvcHJvYy9hc291bmQvSERNSS9lbGQjMC4wIGFuZCBpcyBp dHMgY29udGVudHMgYXJlCiAJICogdmFsaWQuCiAJICovCi0JaWd0X2Fzc2VydChlbGRfaXNfdmFs aWQoKSk7CisJaWd0X2Fzc2VydChlbGRfaGFzX2lndCgpKTsKIAogCWlndF9yZW1vdmVfZmIoZHJt X2ZkLCAmZmIpOwogCi0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aWd0LWRldg==