From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marius Vlad Subject: [PATCH i-g-t 2/3] tests/drv_module_reload_basic: Convert sh script to C version. Date: Thu, 20 Oct 2016 22:36:48 +0300 Message-ID: <20161020193649.11701-3-marius.c.vlad@intel.com> References: <20161020193649.11701-1-marius.c.vlad@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 48D2B6EC0C for ; Thu, 20 Oct 2016 19:30:40 +0000 (UTC) In-Reply-To: <20161020193649.11701-1-marius.c.vlad@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogTWFyaXVzIFZsYWQgPG1hcml1cy5jLnZsYWRAaW50ZWwuY29tPgotLS0K IHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICAgICAgICAgfCAgIDIgKy0KIHRlc3RzL2Rydl9tb2R1 bGVfcmVsb2FkX2Jhc2ljICAgfCAgOTcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRlc3RzL2Ry dl9tb2R1bGVfcmVsb2FkX2Jhc2ljLmMgfCAxNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNjcgaW5zZXJ0aW9ucygrKSwgOTggZGVs ZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA3NTUgdGVzdHMvZHJ2X21vZHVsZV9yZWxvYWRfYmFz aWMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9kcnZfbW9kdWxlX3JlbG9hZF9iYXNpYy5jCgpk aWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJj ZXMKaW5kZXggNmQwODFjMy4uYzM1ZWExMSAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291 cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC0yMTEsNiArMjExLDcgQEAgVEVT VFNfcHJvZ3MgPSBcCiAJa21zX3B3cml0ZV9jcmMgXAogCWttc19zaW5rX2NyY19iYXNpYyBcCiAJ cHJpbWVfdWRsIFwKKwlkcnZfbW9kdWxlX3JlbG9hZF9iYXNpYyBcCiAJJChOVUxMKQogCiAjIElN UE9SVEFOVDogVGhlIFpaXyB0ZXN0cyBuZWVkIHRvIGJlIHJ1biBsYXN0IQpAQCAtMjIxLDcgKzIy Miw2IEBAIFRFU1RTX3NjcmlwdHNfTSA9IFwKIFRFU1RTX3NjcmlwdHMgPSBcCiAJZGVidWdmc19l bW9uX2NyYXNoIFwKIAlkcnZfZGVidWdmc19yZWFkZXIgXAotCWRydl9tb2R1bGVfcmVsb2FkX2Jh c2ljIFwKIAlrbXNfc3lzZnNfZWRpZF90aW1pbmcgXAogCXN5c2ZzX2wzX3Bhcml0eSBcCiAJdGVz dF9ydGVfY2hlY2sgXApkaWZmIC0tZ2l0IGEvdGVzdHMvZHJ2X21vZHVsZV9yZWxvYWRfYmFzaWMg Yi90ZXN0cy9kcnZfbW9kdWxlX3JlbG9hZF9iYXNpYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUK aW5kZXggYThkNjI4ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kcnZfbW9kdWxlX3JlbG9hZF9iYXNp YworKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLSMhL2Jpbi9iYXNoCi0jCi0jIFRlc3Rj YXNlOiBSZWxvYWQgdGhlIGRybSBtb2R1bGUKLSMKLSMgLi4uIHdlJ3ZlIGJyb2tlbiB0aGlzIHdh eSB0b28gb2Z0ZW4gOigKLSMKLQotU09VUkNFX0RJUj0iJCggZGlybmFtZSAiJHtCQVNIX1NPVVJD RVswXX0iICkiCi0uICRTT1VSQ0VfRElSL2RybV9saWIuc2gKLQotIyBubyBvdGhlciBkcm0gc2Vy dmljZSBzaG91bGQgYmUgcnVubmluZywgc28gd2UgY2FuIGp1c3QgdW5iaW5kCi0KLSMgcmV0dXJu IDAgaWYgbW9kdWxlIGJ5IG5hbWUgJDEgaXMgbG9hZGVkIGFjY29yZGluZyB0byBsc21vZAotZnVu Y3Rpb24gbW9kX2xvYWRlZCgpCi17Ci0JbHNtb2QgfCBncmVwIC13ICJeJDEiICY+IC9kZXYvbnVs bAotfQotCi1mdW5jdGlvbiByZWxvYWQoKSB7Ci0JbG9jYWwgc25kX2hkYV9pbnRlbF91bmxvYWRl ZAotCi0JZWNobyBSZWxvYWRpbmcgaTkxNS5rbyB3aXRoICQqCi0KLQkjIHdlIG11c3Qga2ljayBh d2F5IGZiY29uIChidXQgb25seSBmYmNvbikKLQlmb3IgdnRjb24gaW4gL3N5cy9jbGFzcy92dGNv bnNvbGUvdnRjb24qLyA7IGRvCi0JCWlmIGdyZXAgImZyYW1lIGJ1ZmZlciBkZXZpY2UiICR2dGNv bi9uYW1lID4gL2Rldi9udWxsIDsgdGhlbgotCQkJZWNobyB1bmJpbmRpbmcgJHZ0Y29uOiBgY2F0 ICR2dGNvbi9uYW1lYAotCQkJZWNobyAwID4gJHZ0Y29uL2JpbmQKLQkJZmkKLQlkb25lCi0KLQkj IFRoZSBzb3VuZCBkcml2ZXIgdXNlcyBvdXIgcG93ZXIgd2VsbAotCXBraWxsIGFsc2FjdGwKLQlz bmRfaGRhX2ludGVsX3VubG9hZGVkPTAKLQlpZiBtb2RfbG9hZGVkIHNuZF9oZGFfaW50ZWw7IHRo ZW4KLQkJcm1tb2Qgc25kX2hkYV9pbnRlbCAmJiBzbmRfaGRhX2ludGVsX3VubG9hZGVkPTEKLQlm aQotCi0JIyBnZW41IG9ubHkKLQlpZiBtb2RfbG9hZGVkIGludGVsX2lwczsgdGhlbgotCQlybW1v ZCBpbnRlbF9pcHMKLQlmaQotCXJtbW9kIGk5MTUgfHwgcmV0dXJuICRJR1RfRVhJVF9TS0lQCi0J I2lnbm9yZSBlcnJvcnMgaW4gaW50ZWwtZ3R0LCBvZnRlbiBidWlsdC1pbgotCXJtbW9kIGludGVs LWd0dCAmPiAvZGV2L251bGwKLQkjIGRybSBtYXkgYmUgdXNlZCBieSBvdGhlciBkZXZpY2VzIChu b3V2ZWF1LCByYWRlb24sIHVkbCwgZXRjKQotCXJtbW9kIGRybV9rbXNfaGVscGVyICY+IC9kZXYv bnVsbAotCXJtbW9kIGRybSAmPiAvZGV2L251bGwKLQotCWlmIG1vZF9sb2FkZWQgaTkxNTsgdGhl bgotCQllY2hvIFdBUk5JTkc6IGk5MTUua28gc3RpbGwgbG9hZGVkIQotCQlyZXR1cm4gJElHVF9F WElUX0ZBSUxVUkUKLQllbHNlCi0JCWVjaG8gbW9kdWxlIHN1Y2Nlc3NmdWxseSB1bmxvYWRlZAot CWZpCi0KLQltb2Rwcm9iZSBpOTE1ICQqCi0KLQlpZiBbIC1mIC9zeXMvY2xhc3MvdnRjb25zb2xl L3Z0Y29uMS9iaW5kIF07IHRoZW4KLQkJZWNobyAxID4gL3N5cy9jbGFzcy92dGNvbnNvbGUvdnRj b24xL2JpbmQKLQlmaQotCi0JbW9kcHJvYmUgLXEgc25kX2hkYV9pbnRlbCB8fCByZXR1cm4gJHNu ZF9oZGFfaW50ZWxfdW5sb2FkZWQKLX0KLQotZnVuY3Rpb24gZmluaXNoX2xvYWQoKSB7Ci0JIyBk b2VzIHRoZSBkZXZpY2UgZXhpc3Q/Ci0JaWYgJFNPVVJDRV9ESVIvZ2VtX2FsaXZlID4gL2Rldi9u dWxsIDsgdGhlbgotCQllY2hvICJtb2R1bGUgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBhZ2FpbiIKLQll bHNlCi0JCWVjaG8gImZhaWxlZCB0byByZWxvYWQgbW9kdWxlIHN1Y2Nlc3NmdWxseSIKLQkJcmV0 dXJuICRJR1RfRVhJVF9GQUlMVVJFCi0JZmkKLQotCSMgdGhlbiB0cnkgdG8gcnVuIHNvbWV0aGlu ZwotCWlmICEgJFNPVVJDRV9ESVIvZ2VtX2V4ZWNfc3RvcmUgPiAvZGV2L251bGwgOyB0aGVuCi0J CWVjaG8gImZhaWxlZCB0byBleGVjdXRlIGEgc2ltcGxlIGJhdGNoIGFmdGVyIHJlbG9hZCIKLQkJ cmV0dXJuICRJR1RfRVhJVF9GQUlMVVJFCi0JZmkKLQotCXJldHVybiAkSUdUX0VYSVRfU1VDQ0VT UwotfQotCi1oZGFfZHluYW1pY19kZWJ1Z19lbmFibGUKLQotcmVsb2FkIHx8IGV4aXQgJD8KLWZp bmlzaF9sb2FkIHx8IGV4aXQgJD8KLQotIyBSZXBlYXQgdGhlIG1vZHVsZSByZWxvYWQgdHJ5aW5n IHRvIHRvIGdlbmVyYXRlIGZhdWx0cwotZm9yIGkgaW4gJChzZXEgMSA0KTsgZG8KLQlyZWxvYWQg aW5qZWN0X2xvYWRfZmFpbHVyZT0kaQotZG9uZQotCi1yZWxvYWQgfHwgZXhpdCAkPwotZmluaXNo X2xvYWQKLQotZXhpdCAkPwpkaWZmIC0tZ2l0IGEvdGVzdHMvZHJ2X21vZHVsZV9yZWxvYWRfYmFz aWMuYyBiL3Rlc3RzL2Rydl9tb2R1bGVfcmVsb2FkX2Jhc2ljLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZDM2YWZkZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2Rydl9t b2R1bGVfcmVsb2FkX2Jhc2ljLmMKQEAgLTAsMCArMSwxNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg wqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2Us IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisg KiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAor ICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElO IFRIRSBTT0ZUV0FSRS4KKyAqLworI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF9kZWJ1 Z2ZzLmgiCisjaW5jbHVkZSAiaWd0X2F1eC5oIgorI2luY2x1ZGUgImlndF9zeXNmcy5oIgorI2lu Y2x1ZGUgImlndF9jb3JlLmgiCisKKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxzeXMv dXRzbmFtZS5oPgorI2luY2x1ZGUgPGxpbnV4L2xpbWl0cy5oPgorI2luY2x1ZGUgPHNpZ25hbC5o PgorI2luY2x1ZGUgPGxpYmdlbi5oPgorCisjaW5jbHVkZSA8bGlia21vZC5oPgorI2luY2x1ZGUg PHByb2MvcmVhZHByb2MuaD4KKworc3RhdGljIGNvbnN0IGNoYXIgKnRlc3RzW10gPSB7CisJImdl bV9hbGl2ZSIsICJnZW1fZXhlY19zdG9yZSIKK307CisKK3N0YXRpYyBpbnQKK3JlbG9hZChjb25z dCBjaGFyICpvcHRzX2k5MTUpCit7CisJa2lja19mYmNvbigwKTsKKworCWlmIChvcHRzX2k5MTUp CisJCWlndF9pbmZvKCJSZWxvYWRpbmcgaTkxNSB3aXRoICVzXG5cbiIsIG9wdHNfaTkxNSk7CisK KwlpZiAoaWd0X2xzbW9kX2hhc19tb2R1bGUoInNuZF9oZGFfaW50ZWwiKSkgeworCQlpZiAoaWd0 X3BraWxsKFNJR1RFUk0sICJhbHNhY3RsIikgPT0gLTEpIHsKKwkJCXJldHVybiBJR1RfRVhJVF9G QUlMVVJFOworCQl9CisJCWlmIChpZ3Rfcm1tb2QoInNuZF9oZGFfaW50ZWwiLCBmYWxzZSkgPT0g LTEpCisJCQlyZXR1cm4gSUdUX0VYSVRfRkFJTFVSRTsKKwl9CisKKwkvKiBnZW41ICovCisJaWYg KGlndF9sc21vZF9oYXNfbW9kdWxlKCJpbnRlbF9pcHMiKSkgeworCQlpZ3Rfcm1tb2QoImludGVs X2lwcyIsIGZhbHNlKTsKKwl9CisKKwlpZiAoaWd0X3JtbW9kKCJpOTE1IiwgZmFsc2UpID09IC0x KSB7CisJCXJldHVybiBJR1RfRVhJVF9TS0lQOworCX0KKworCWlndF9pbmZvKCJpOTE1LmtvIGhh cyBiZWVuIHVubG9hZGVkIVxuIik7CisKKwlpZiAoaWd0X2xzbW9kX2hhc19tb2R1bGUoImludGVs LWd0dCIpKSB7CisJCWlndF9ybW1vZCgiaW50ZWwtZ3R0IiwgZmFsc2UpOworCX0KKworCWlndF9y bW1vZCgiZHJtX2ttc19oZWxwZXIiLCBmYWxzZSk7CisJaWd0X3JtbW9kKCJkcm0iLCBmYWxzZSk7 CisKKwlpZiAoaWd0X2xzbW9kX2hhc19tb2R1bGUoImk5MTUiKSkgeworCQlpZ3RfaW5mbygiV0FS TklORzogaTkxNS5rbyBzdGlsbCBsb2FkZWQhXG4iKTsKKwkJcmV0dXJuIElHVF9FWElUX0ZBSUxV UkU7CisJfSBlbHNlIHsKKwkJaWd0X2luZm8oIm1vZHVsZSBzdWNjZXNzZnVsbHkgdW5sb2FkZWRc biIpOworCX0KKworCS8qIHdlIGRvIG5vdCBoYXZlIGF1dG9tYXRpYyBsb2FkaW5nIG9mIGRlcGVu ZGVuY2llcyAqLworCWlndF9pbnNtb2QoImRybSIsIE5VTEwpOworCWlndF9pbnNtb2QoImRybV9r bXNfaGVscGVyIiwgTlVMTCk7CisKKwlpZiAoaWd0X2luc21vZCgiaTkxNSIsIG9wdHNfaTkxNSkg PT0gLTEpIHsKKwkJaWd0X2luZm8oIkNvdWxkIG5vdCBsb2FkIGk5MTVcbiIpOworCQlyZXR1cm4g SUdUX0VYSVRfRkFJTFVSRTsKKwl9CisKKwlraWNrX2ZiY29uKDEpOworCisJaWYgKGlndF9pbnNt b2QoInNuZF9oZGFfaW50ZWwiLCBOVUxMKSA9PSAtMSkKKwkJcmV0dXJuIElHVF9FWElUX0ZBSUxV UkU7CisKKwlyZXR1cm4gSUdUX0VYSVRfU1VDQ0VTUzsKK30KKworc3RhdGljIHZvaWQKK2lndF9l eGVjdihjaGFyICoqYXJndikKK3sKKwlpZ3RfZm9yayhjaGlsZCwgMSkgeworCQlpZiAoZXhlY3Yo YXJndlswXSwgYXJndikgPCAwKSB7CisJCQlpZ3RfaW5mbygiRmFpbGVkIHRvIGV4ZWMgJXNcbiIs CisJCQkJCWFyZ3ZbMF0pOworCQkJZXhpdChJR1RfRVhJVF9GQUlMVVJFKTsKKwkJfQorCX0KKwlp Z3Rfd2FpdGNoaWxkcmVuKCk7Cit9CisKK3N0YXRpYyB2b2lkCitmaW5pc2hfbG9hZChjaGFyICpk aXJuYW1lKQoreworCWNoYXIgYnVmW1BBVEhfTUFYXTsKKwljaGFyICpfX2FyZ3ZbMl0gPSB7IGJ1 ZiwgTlVMTCB9OworCisJbWVtc2V0KGJ1ZiwgMCwgUEFUSF9NQVgpOworCXNucHJpbnRmKGJ1Ziwg c2l6ZW9mKGJ1ZiksICIlcy8lcyIsIGRpcm5hbWUsIHRlc3RzWzBdKTsKKworCWlndF9leGVjdihf X2FyZ3YpOworCisJbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKGJ1ZikpOworCXNucHJpbnRmKGJ1Ziwg c2l6ZW9mKGJ1ZiksICIlcy8lcyIsIGRpcm5hbWUsIHRlc3RzWzFdKTsKKworCWlndF9leGVjdihf X2FyZ3YpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludCBp LCBlcnI7CisJY2hhciBidWZbNjRdOworCWNoYXIgKnByZywgKmRpcjsKKworCXByZyA9IHN0cmR1 cChhcmd2WzBdKTsKKwlpZ3Rfc3VidGVzdF9pbml0X3BhcnNlX29wdHMoJmFyZ2MsIGFyZ3YsICIi LCBOVUxMLAorCQkJCSAgICBOVUxMLCBOVUxMLCBOVUxMKTsKKworCisJaWd0X3N1YnRlc3QoImJh c2ljLXJlbG9hZCIpIHsKKwkJaWYgKChlcnIgPSByZWxvYWQoTlVMTCkpKQorCQkJaWd0X2ZhaWwo ZXJyKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgiYmFzaWMtZXhlYyIpIHsKKwkJZGlyID0gZGlybmFt ZShwcmcpOworCQlmaW5pc2hfbG9hZChkaXIpOworCX0KKworCWlndF9zdWJ0ZXN0KCJiYXNpYy1y ZWxvYWQtaW5qZWN0IikgeworCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCQltZW1zZXQo YnVmLCAwLCBzaXplb2YoYnVmKSk7CisJCQlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiaW5q ZWN0X2xvYWRfZmFpbHVyZT0lZCIsIGkpOworCQkJcmVsb2FkKGJ1Zik7CisJCX0KKwl9CisKKwlp Z3Rfc3VidGVzdCgiYmFzaWMtcmVsb2FkLWZpbmFsIikKKwkJaWYgKChlcnIgPSByZWxvYWQoTlVM TCkpKQorCQkJaWd0X2ZhaWwoZXJyKTsKKworCWZyZWUocHJnKTsKKworCWlndF9leGl0KCk7Cit9 Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==