From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 12/29] drm/i915: switch to drm_*{get,put} helpers Date: Thu, 03 Aug 2017 15:26:01 +0300 Message-ID: <87lgn0hm7a.fsf@nikula.org> References: <1501761585-11757-1-git-send-email-cakturk@gmail.com> <1501761585-11757-13-git-send-email-cakturk@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1501761585-11757-13-git-send-email-cakturk@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Cc: intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Cihangir Akturk , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAwMyBBdWcgMjAxNywgQ2loYW5naXIgQWt0dXJrIDxjYWt0dXJrQGdtYWlsLmNvbT4g d3JvdGU6Cj4gZHJtXypfcmVmZXJlbmNlKCkgYW5kIGRybV8qX3VucmVmZXJlbmNlKCkgZnVuY3Rp b25zIGFyZSBqdXN0Cj4gY29tcGF0aWJpbGl0eSBhbGlhcyBmb3IgZHJtXypfZ2V0KCkgYW5kIGRy bV8qX3B1dCgpIGFkbiBzaG91bGQgbm90IGJlCj4gdXNlZCBieSBuZXcgY29kZS4gU28gY29udmVy dCBhbGwgdXNlcnMgb2YgY29tcGF0aWJpbGl0eSBmdW5jdGlvbnMgdG8gdXNlCj4gdGhlIG5ldyBB UElzLgoKUGxlYXNlIGluY2x1ZGUgdGhlIGNvY2NpIHNjcmlwdCBpbiB0aGUgY29tbWl0IG1lc3Nh Z2UuIElmIHlvdSBkaWRuJ3QgdXNlCmNvY2NpLCB5b3Ugc2hvdWxkIGNoZWNrIGl0IG91dCEgOikK CkJSLApKYW5pLgoKPgo+IFNpZ25lZC1vZmYtYnk6IENpaGFuZ2lyIEFrdHVyayA8Y2FrdHVya0Bn bWFpbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5o IHwgMTAgKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg ICB8IDI0ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9tc3QuYyAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi ZGV2LmMgICAgIHwgIDQgKystLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyks IDIwIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmgK PiBpbmRleCA1YjE5YTQ5Li44ZjZjOTE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX29iamVjdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fb2JqZWN0LmgKPiBAQCAtMjU3LDI1ICsyNTcsMjUgQEAgX19hdHRyaWJ1dGVfXygobm9ubnVs bCkpCj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgo+ICBpOTE1 X2dlbV9vYmplY3RfZ2V0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gIHsKPiAt CWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZSgmb2JqLT5iYXNlKTsKPiArCWRybV9nZW1fb2JqZWN0 X2dldCgmb2JqLT5iYXNlKTsKPiAgCXJldHVybiBvYmo7Cj4gIH0KPiAgCj4gIF9fZGVwcmVjYXRl ZAo+IC1leHRlcm4gdm9pZCBkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2Uoc3RydWN0IGRybV9nZW1f b2JqZWN0ICopOwo+ICtleHRlcm4gdm9pZCBkcm1fZ2VtX29iamVjdF9nZXQoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICopOwo+ICAKPiAgX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpCj4gIHN0YXRpYyBp bmxpbmUgdm9pZAo+ICBpOTE1X2dlbV9vYmplY3RfcHV0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCj4gIHsKPiAtCV9fZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFz ZSk7Cj4gKwlfX2RybV9nZW1fb2JqZWN0X3B1dCgmb2JqLT5iYXNlKTsKPiAgfQo+ICAKPiAgX19k ZXByZWNhdGVkCj4gLWV4dGVybiB2b2lkIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqKTsKPiArZXh0ZXJuIHZvaWQgZHJtX2dlbV9vYmplY3RfcHV0KHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqKTsKPiAgCj4gIF9fZGVwcmVjYXRlZAo+IC1leHRlcm4gdm9p ZCBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKik7Cj4gK2V4dGVybiB2b2lkIGRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKik7Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2Jq ZWN0X2xvY2soc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgewo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBkZWM5ZTU4Li5iNGQwM2NmIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0yNjcyLDEwICsyNjcyLDEwIEBA IHVwZGF0ZV9zdGF0ZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAgCQlyZXR1cm47Cj4g IAo+ICAJaWYgKHBsYW5lLT5zdGF0ZS0+ZmIpCj4gLQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKHBsYW5lLT5zdGF0ZS0+ZmIpOwo+ICsJCWRybV9mcmFtZWJ1ZmZlcl9wdXQocGxhbmUtPnN0 YXRlLT5mYik7Cj4gIAlwbGFuZS0+c3RhdGUtPmZiID0gcGxhbmUtPmZiOwo+ICAJaWYgKHBsYW5l LT5zdGF0ZS0+ZmIpCj4gLQkJZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShwbGFuZS0+c3RhdGUt PmZiKTsKPiArCQlkcm1fZnJhbWVidWZmZXJfZ2V0KHBsYW5lLT5zdGF0ZS0+ZmIpOwo+ICB9Cj4g IAo+ICBzdGF0aWMgdm9pZAo+IEBAIC0yNzQ2LDcgKzI3NDYsNyBAQCBpbnRlbF9maW5kX2luaXRp YWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ICAKPiAgCQlpZiAo aW50ZWxfcGxhbmVfZ2d0dF9vZmZzZXQoc3RhdGUpID09IHBsYW5lX2NvbmZpZy0+YmFzZSkgewo+ ICAJCQlmYiA9IGMtPnByaW1hcnktPmZiOwo+IC0JCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNl KGZiKTsKPiArCQkJZHJtX2ZyYW1lYnVmZmVyX2dldChmYik7Cj4gIAkJCWdvdG8gdmFsaWRfZmI7 Cj4gIAkJfQo+ICAJfQo+IEBAIC0yNzc3LDcgKzI3NzcsNyBAQCBpbnRlbF9maW5kX2luaXRpYWxf cGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ICAJCQkgIGludGVsX2Ny dGMtPnBpcGUsIFBUUl9FUlIoaW50ZWxfc3RhdGUtPnZtYSkpOwo+ICAKPiAgCQlpbnRlbF9zdGF0 ZS0+dm1hID0gTlVMTDsKPiAtCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOwo+ICsJ CWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gQEAgLTI3 OTgsNyArMjc5OCw3IEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMsCj4gIAlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3RpbGVkKG9iaikp Cj4gIAkJZGV2X3ByaXYtPnByZXNlcnZlX2Jpb3Nfc3dpenpsZSA9IHRydWU7Cj4gIAo+IC0JZHJt X2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShmYik7Cj4gKwlkcm1fZnJhbWVidWZmZXJfZ2V0KGZiKTsK PiAgCXByaW1hcnktPmZiID0gcHJpbWFyeS0+c3RhdGUtPmZiID0gZmI7Cj4gIAlwcmltYXJ5LT5j cnRjID0gcHJpbWFyeS0+c3RhdGUtPmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKPiAgCj4gQEAg LTk2NjgsNyArOTY2OCw3IEBAIG1vZGVfZml0c19pbl9mYmRldihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICAJaWYgKG9iai0+YmFzZS5zaXplIDwgbW9kZS0+dmRpc3BsYXkgKiBmYi0+cGl0Y2hl c1swXSkKPiAgCQlyZXR1cm4gTlVMTDsKPiAgCj4gLQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNl KGZiKTsKPiArCWRybV9mcmFtZWJ1ZmZlcl9nZXQoZmIpOwo+ICAJcmV0dXJuIGZiOwo+ICAjZWxz ZQo+ICAJcmV0dXJuIE5VTEw7Cj4gQEAgLTk4NDksNyArOTg0OSw3IEBAIGludCBpbnRlbF9nZXRf bG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJaWYg KHJldCkKPiAgCQlnb3RvIGZhaWw7Cj4gIAo+IC0JZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNl KGZiKTsKPiArCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwo+ICAKPiAgCXJldCA9IGRybV9hdG9t aWNfc2V0X21vZGVfZm9yX2NydGMoJmNydGNfc3RhdGUtPmJhc2UsIG1vZGUpOwo+ICAJaWYgKHJl dCkKPiBAQCAtMTAxNTksNyArMTAxNTksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF91bnBpbl93b3Jr X2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQo+ICAJaW50ZWxfZnJvbnRidWZmZXJfZmxp cF9jb21wbGV0ZSh0b19pOTE1KGRldiksCj4gIAkJCQkJdG9faW50ZWxfcGxhbmUocHJpbWFyeSkt PmZyb250YnVmZmVyX2JpdCk7Cj4gIAlpbnRlbF9mYmNfcG9zdF91cGRhdGUoY3J0Yyk7Cj4gLQlk cm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uod29yay0+b2xkX2ZiKTsKPiArCWRybV9mcmFtZWJ1 ZmZlcl9wdXQod29yay0+b2xkX2ZiKTsKPiAgCj4gIAlCVUdfT04oYXRvbWljX3JlYWQoJmNydGMt PnVucGluX3dvcmtfY291bnQpID09IDApOwo+ICAJYXRvbWljX2RlYygmY3J0Yy0+dW5waW5fd29y a19jb3VudCk7Cj4gQEAgLTEwNzk5LDcgKzEwNzk5LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRj X3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJZmx1c2hfd29ya3F1ZXVlKGRl dl9wcml2LT53cSk7Cj4gIAo+ICAJLyogUmVmZXJlbmNlIHRoZSBvYmplY3RzIGZvciB0aGUgc2No ZWR1bGVkIHdvcmsuICovCj4gLQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKHdvcmstPm9sZF9m Yik7Cj4gKwlkcm1fZnJhbWVidWZmZXJfZ2V0KHdvcmstPm9sZF9mYik7Cj4gIAo+ICAJY3J0Yy0+ cHJpbWFyeS0+ZmIgPSBmYjsKPiAgCXVwZGF0ZV9zdGF0ZV9mYihjcnRjLT5wcmltYXJ5KTsKPiBA QCAtMTA5MTMsNyArMTA5MTMsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCXVwZGF0ZV9zdGF0ZV9mYihjcnRjLT5wcmltYXJ5KTsK PiAgCj4gIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Cj4gLQlkcm1fZnJhbWVidWZmZXJfdW5y ZWZlcmVuY2Uod29yay0+b2xkX2ZiKTsKPiArCWRybV9mcmFtZWJ1ZmZlcl9wdXQod29yay0+b2xk X2ZiKTsKPiAgCj4gIAlzcGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwo+ICAJaW50ZWxf Y3J0Yy0+ZmxpcF93b3JrID0gTlVMTDsKPiBAQCAtMTEyMzcsNyArMTEyMzcsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9tb2Rlc2V0X3VwZGF0ZV9jb25uZWN0b3JfYXRvbWljX3N0YXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZj b25uX2l0ZXIpOwo+ICAJZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAm Y29ubl9pdGVyKSB7Cj4gIAkJaWYgKGNvbm5lY3Rvci0+YmFzZS5zdGF0ZS0+Y3J0YykKPiAtCQkJ ZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZSgmY29ubmVjdG9yLT5iYXNlKTsKPiArCQkJZHJtX2Nv bm5lY3Rvcl9wdXQoJmNvbm5lY3Rvci0+YmFzZSk7Cj4gIAo+ICAJCWlmIChjb25uZWN0b3ItPmJh c2UuZW5jb2Rlcikgewo+ICAJCQljb25uZWN0b3ItPmJhc2Uuc3RhdGUtPmJlc3RfZW5jb2RlciA9 Cj4gQEAgLTExMjQ1LDcgKzExMjQ1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF91cGRh dGVfY29ubmVjdG9yX2F0b21pY19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQlj b25uZWN0b3ItPmJhc2Uuc3RhdGUtPmNydGMgPQo+ICAJCQkJY29ubmVjdG9yLT5iYXNlLmVuY29k ZXItPmNydGM7Cj4gIAo+IC0JCQlkcm1fY29ubmVjdG9yX3JlZmVyZW5jZSgmY29ubmVjdG9yLT5i YXNlKTsKPiArCQkJZHJtX2Nvbm5lY3Rvcl9nZXQoJmNvbm5lY3Rvci0+YmFzZSk7Cj4gIAkJfSBl bHNlIHsKPiAgCQkJY29ubmVjdG9yLT5iYXNlLnN0YXRlLT5iZXN0X2VuY29kZXIgPSBOVUxMOwo+ ICAJCQljb25uZWN0b3ItPmJhc2Uuc3RhdGUtPmNydGMgPSBOVUxMOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX21zdC5jCj4gaW5kZXggMmNmMDQ2Yi4uYjk0MjU3OCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jCj4gQEAgLTUyNCw3ICs1MjQsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kcF9kZXN0cm95X21zdF9jb25uZWN0b3Ioc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lf bWdyICptZ3IsCj4gIAlpbnRlbF9jb25uZWN0b3ItPm1zdF9wb3J0ID0gTlVMTDsKPiAgCWRybV9t b2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKPiAgCj4gLQlkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNl KCZpbnRlbF9jb25uZWN0b3ItPmJhc2UpOwo+ICsJZHJtX2Nvbm5lY3Rvcl9wdXQoJmludGVsX2Nv bm5lY3Rvci0+YmFzZSk7Cj4gIAlEUk1fREVCVUdfS01TKCJcbiIpOwo+ICB9Cj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+IGluZGV4IDBjNGNkZTYuLjEzZmJlODAgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKPiBAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBp bnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiAgCQkJICAg ICAgIiByZWxlYXNpbmcgaXRcbiIsCj4gIAkJCSAgICAgIGludGVsX2ZiLT5iYXNlLndpZHRoLCBp bnRlbF9mYi0+YmFzZS5oZWlnaHQsCj4gIAkJCSAgICAgIHNpemVzLT5mYl93aWR0aCwgc2l6ZXMt PmZiX2hlaWdodCk7Cj4gLQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKCZpbnRlbF9mYi0+ YmFzZSk7Cj4gKwkJZHJtX2ZyYW1lYnVmZmVyX3B1dCgmaW50ZWxfZmItPmJhc2UpOwo+ICAJCWlu dGVsX2ZiID0gaWZiZGV2LT5mYiA9IE5VTEw7Cj4gIAl9Cj4gIAlpZiAoIWludGVsX2ZiIHx8IFdB Uk5fT04oIWludGVsX2ZiLT5vYmopKSB7Cj4gQEAgLTY1MCw3ICs2NTAsNyBAQCBzdGF0aWMgYm9v bCBpbnRlbF9mYmRldl9pbml0X2Jpb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWlmYmRl di0+cHJlZmVycmVkX2JwcCA9IGZiLT5iYXNlLmZvcm1hdC0+Y3BwWzBdICogODsKPiAgCWlmYmRl di0+ZmIgPSBmYjsKPiAgCj4gLQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKCZpZmJkZXYtPmZi LT5iYXNlKTsKPiArCWRybV9mcmFtZWJ1ZmZlcl9nZXQoJmlmYmRldi0+ZmItPmJhc2UpOwo+ICAK PiAgCS8qIEZpbmFsIHBhc3MgdG8gY2hlY2sgaWYgYW55IGFjdGl2ZSBwaXBlcyBkb24ndCBoYXZl IGZicyAqLwo+ICAJZm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpIHsKCi0tIApKYW5pIE5pa3VsYSwg SW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==