From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 5/5] drm/amdgpu: add independent DMA-buf export v3 Date: Fri, 22 Jun 2018 15:39:25 +0200 Message-ID: <64382bf8-9539-6fa5-3f95-a3b627e4684d@gmail.com> References: <20180601120020.11520-1-christian.koenig@amd.com> <20180601120020.11520-5-christian.koenig@amd.com> <20180618082857.GY3438@phenom.ffwll.local> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180618082857.GY3438-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Daniel Vetter Cc: linaro-mm-sig-cunTk1MwBs8s++Sfvej+rw@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org QW0gMTguMDYuMjAxOCB1bSAxMDoyOCBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gRnJpLCBK dW4gMDEsIDIwMTggYXQgMDI6MDA6MjBQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToK Pj4gVGhlIGNhY2hpbmcgb2YgU0dUJ3MgZG9uZSBieSB0aGUgRFJNIGNvZGUgaXMgYWN0dWFsbHkg cXVpdGUgaGFybWZ1bCBhbmQKPj4gc2hvdWxkIHByb2JhYmx5IHJlbW92ZWQgYWx0b2dldGhlciBp biB0aGUgbG9uZyB0ZXJtLgo+IEhtLCB3aHkgaXMgaXQgaGFybWZ1bD8gV2UndmUgZG9uZSBpdCBi ZWNhdXNlIGl0J3MgZXhwZW5zaXZlLCBhbmQgcGVvcGxlCj4gc3RhcnRlZCBzY3JlYW1pbmcgYWJv dXQgdGhlIG92ZXJoZWFkIC4uLiBoZW5jZSB0aGUgY2FjaGluZy4KCkl0J3MgYSBiYWQgaWRlYSBi ZWNhdXNlIGl0IGFydGlmaWNpYWxseSBleHRlbmRzIHRoZSBsaWZldGltZSBvZiB0aGUgCm1hcHBp bmcsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSB3YW50IHRvIGF2b2lkIHdoZW4gd2UgY3JlYXRl IHRoZSAKbWFwcGluZ3MgZHluYW1pY2FsbHkgYW5kIG9ubHkgYXMgbG9uZyBhcyBuZWNlc3Nhcnku CgpBbmQgYWN0dWFsbHkgY2hlY2tpbmcgdGhlIG1haWwgaGlzdG9yeSBJIGNvdWxkIG9ubHkgZmlu ZCBpbmRpY2F0b3JzIHRoYXQgCnBlb3BsZSB0aG91Z2h0IGl0IHdvdWxkIGhlbHAuIEkgaGF2ZW4n dCBmb3VuZCBhbnkgZXZpZGVuY2UgdGhhdCBhbnlib2R5IAphY3R1YWxseSBjaGVja2VkIGlmIHRo YXQgaGVscHMgb3Igbm90LgoKPiBEb2luZyBhbiBhbWRncHUgY29weXBhc3RhIHNlZW1zIGxpa2Ug d29ya2luZyBhcm91bmQgaXNzdWVzIGluIHNoYXJlZCBjb2RlLgoKQ29tcGxldGVseSBhZ3JlZSwg YnV0IEkgZG9uJ3Qgd2FudCB0byBwdXNoIHRoYXQgcG9saWN5IHRvIGV2ZXJ5Ym9keSBqdXN0IAp5 ZXQuCgpXaGVuIHdlIGZpbmQgdGhhdCB0aGlzIGlzIHJlYWxseSB0aGUgcmlnaHQgZGlyZWN0aW9u IEkgY2FuIGNvbnZlcnQgClJhZGVvbiBhcyB3ZWxsLCBtb3ZlIG1vcmUgY29tcG9uZW50IGZ1bmN0 aW9uYWxpdHkgbG9naWMgaW50byBjb21tb24gY29kZSAKYW5kIHdoZW4gdGhhdCdzIGRvbmUgcmlw IG91dCB0aGlzIG1pZGRsZSBsYXllciBiZWNhdXNlIGl0IGp1c3QgYmVjb21lcyAKc3VwZXJmbHVv dXMuCgpDaHJpc3RpYW4uCgo+IC1EYW5pZWwKPgo+PiBTdGFydCBieSBwcm92aWRpbmcgYSBzZXBh cmF0ZSBETUEtYnVmIGV4cG9ydCBpbXBsZW1lbnRhdGlvbiBpbiBhbWRncHUuIFRoaXMgaXMKPj4g YWxzbyBhIHByZXJlcXVpc2l0ZSBvZiB1bnBpbm5lZCBETUEtYnVmIGhhbmRsaW5nLgo+Pgo+PiB2 MjogZml4IHVuaW50ZW5kZWQgcmVjdXJzaW9uLCByZW1vdmUgZGVidWdnaW5nIGxlZnRvdmVycwo+ PiB2Mzogc3BsaXQgb3V0IGZyb20gdW5waW5uZWQgRE1BLWJ1ZiB3b3JrCj4+Cj4+IFNpZ25lZC1v ZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4gLS0t Cj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAgICAgfCAgMSAtCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jICAgfCAgMSAtCj4+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1lLmMgfCA3MyArKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tCj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25z KCspLCA0MyBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgK Pj4gaW5kZXggMmQ3NTAwOTIxYzBiLi45M2RjNTdkNzRmYzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdS5oCj4+IEBAIC0zNzMsNyArMzczLDYgQEAgaW50IGFtZGdwdV9nZW1f b2JqZWN0X29wZW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCj4+ICAgdm9pZCBhbWRncHVf Z2VtX29iamVjdF9jbG9zZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPj4gICAJCQkJc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+PiAgIHVuc2lnbmVkIGxvbmcgYW1kZ3B1X2dlbV90 aW1lb3V0KHVpbnQ2NF90IHRpbWVvdXRfbnMpOwo+PiAtc3RydWN0IHNnX3RhYmxlICphbWRncHVf Z2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4+ICAg c3RydWN0IGRybV9nZW1fb2JqZWN0ICoKPj4gICBhbWRncHVfZ2VtX3ByaW1lX2ltcG9ydF9zZ190 YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgIAkJCQkgc3RydWN0IGRtYV9idWZfYXR0 YWNobWVudCAqYXR0YWNoLAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5j Cj4+IGluZGV4IGIwYmYyZjI0ZGE0OC4uMjcwYjhhZDkyN2VhIDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCj4+IEBAIC05MDcsNyArOTA3LDYgQEAgc3RhdGlj IHN0cnVjdCBkcm1fZHJpdmVyIGttc19kcml2ZXIgPSB7Cj4+ICAgCS5nZW1fcHJpbWVfZXhwb3J0 ID0gYW1kZ3B1X2dlbV9wcmltZV9leHBvcnQsCj4+ICAgCS5nZW1fcHJpbWVfaW1wb3J0ID0gYW1k Z3B1X2dlbV9wcmltZV9pbXBvcnQsCj4+ICAgCS5nZW1fcHJpbWVfcmVzX29iaiA9IGFtZGdwdV9n ZW1fcHJpbWVfcmVzX29iaiwKPj4gLQkuZ2VtX3ByaW1lX2dldF9zZ190YWJsZSA9IGFtZGdwdV9n ZW1fcHJpbWVfZ2V0X3NnX3RhYmxlLAo+PiAgIAkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9 IGFtZGdwdV9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAo+PiAgIAkuZ2VtX3ByaW1lX3ZtYXAg PSBhbWRncHVfZ2VtX3ByaW1lX3ZtYXAsCj4+ICAgCS5nZW1fcHJpbWVfdnVubWFwID0gYW1kZ3B1 X2dlbV9wcmltZV92dW5tYXAsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9w cmltZS5jCj4+IGluZGV4IGExNTZiMzg5MWEzZi4uMGM1YTc1YjA2NjQ4IDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYwo+PiBAQCAtMzIsMTQgKzMyLDYg QEAKPj4gICAKPj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIGFtZGdwdV9kbWFi dWZfb3BzOwo+PiAgIAo+PiAtc3RydWN0IHNnX3RhYmxlICphbWRncHVfZ2VtX3ByaW1lX2dldF9z Z190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPj4gLXsKPj4gLQlzdHJ1Y3QgYW1k Z3B1X2JvICpibyA9IGdlbV90b19hbWRncHVfYm8ob2JqKTsKPj4gLQlpbnQgbnBhZ2VzID0gYm8t PnRiby5udW1fcGFnZXM7Cj4+IC0KPj4gLQlyZXR1cm4gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKGJv LT50Ym8udHRtLT5wYWdlcywgbnBhZ2VzKTsKPj4gLX0KPj4gLQo+PiAgIHZvaWQgKmFtZGdwdV9n ZW1fcHJpbWVfdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPj4gICB7Cj4+ICAgCXN0 cnVjdCBhbWRncHVfYm8gKmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhvYmopOwo+PiBAQCAtMTMyLDIz ICsxMjQsMTcgQEAgYW1kZ3B1X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPj4gICAJcmV0dXJuIEVSUl9QVFIocmV0KTsKPj4gICB9Cj4+ICAgCj4+IC1z dGF0aWMgaW50IGFtZGdwdV9nZW1fbWFwX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwK Pj4gLQkJCQkgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQo+PiArc3RhdGljIHN0 cnVjdCBzZ190YWJsZSAqCj4+ICthbWRncHVfZ2VtX21hcF9kbWFfYnVmKHN0cnVjdCBkbWFfYnVm X2F0dGFjaG1lbnQgKmF0dGFjaCwKPj4gKwkJICAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9u IGRpcikKPj4gICB7Cj4+ICsJc3RydWN0IGRtYV9idWYgKmRtYV9idWYgPSBhdHRhY2gtPmRtYWJ1 ZjsKPj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmLT5wcml2Owo+PiAg IAlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGdlbV90b19hbWRncHVfYm8ob2JqKTsKPj4gICAJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYm8tPnRiby5iZGV2KTsK Pj4gKwlzdHJ1Y3Qgc2dfdGFibGUgKnNndDsKPj4gICAJbG9uZyByOwo+PiAgIAo+PiAtCXIgPSBk cm1fZ2VtX21hcF9hdHRhY2goZG1hX2J1ZiwgYXR0YWNoKTsKPj4gLQlpZiAocikKPj4gLQkJcmV0 dXJuIHI7Cj4+IC0KPj4gLQlyID0gYW1kZ3B1X2JvX3Jlc2VydmUoYm8sIGZhbHNlKTsKPj4gLQlp ZiAodW5saWtlbHkociAhPSAwKSkKPj4gLQkJZ290byBlcnJvcl9kZXRhY2g7Cj4+IC0KPj4gLQo+ PiAgIAlpZiAoYXR0YWNoLT5kZXYtPmRyaXZlciAhPSBhZGV2LT5kZXYtPmRyaXZlcikgewo+PiAg IAkJLyoKPj4gICAJCSAqIFdhaXQgZm9yIGFsbCBzaGFyZWQgZmVuY2VzIHRvIGNvbXBsZXRlIGJl Zm9yZSB3ZSBzd2l0Y2ggdG8gZnV0dXJlCj4+IEBAIC0xNTksNDYgKzE0NSw1MyBAQCBzdGF0aWMg aW50IGFtZGdwdV9nZW1fbWFwX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPj4gICAJ CQkJCQkJTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+PiAgIAkJaWYgKHVubGlrZWx5KHIgPCAwKSkg ewo+PiAgIAkJCURSTV9ERUJVR19QUklNRSgiRmVuY2Ugd2FpdCBmYWlsZWQ6ICVsaVxuIiwgcik7 Cj4+IC0JCQlnb3RvIGVycm9yX3VucmVzZXJ2ZTsKPj4gKwkJCXJldHVybiBFUlJfUFRSKHIpOwo+ PiAgIAkJfQo+PiAgIAl9Cj4+ICAgCj4+ICAgCS8qIHBpbiBidWZmZXIgaW50byBHVFQgKi8KPj4g ICAJciA9IGFtZGdwdV9ib19waW4oYm8sIEFNREdQVV9HRU1fRE9NQUlOX0dUVCwgTlVMTCk7Cj4+ ICAgCWlmIChyKQo+PiAtCQlnb3RvIGVycm9yX3VucmVzZXJ2ZTsKPj4gKwkJcmV0dXJuIEVSUl9Q VFIocik7Cj4+ICsKPj4gKwlzZ3QgPSBkcm1fcHJpbWVfcGFnZXNfdG9fc2coYm8tPnRiby50dG0t PnBhZ2VzLCBiby0+dGJvLm51bV9wYWdlcyk7Cj4+ICsJaWYgKElTX0VSUihzZ3QpKQo+PiArCQly ZXR1cm4gc2d0Owo+PiArCj4+ICsJaWYgKCFkbWFfbWFwX3NnX2F0dHJzKGF0dGFjaC0+ZGV2LCBz Z3QtPnNnbCwgc2d0LT5uZW50cywgZGlyLAo+PiArCQkJICAgICAgRE1BX0FUVFJfU0tJUF9DUFVf U1lOQykpCj4+ICsJCWdvdG8gZXJyb3JfZnJlZTsKPj4gICAKPj4gICAJaWYgKGF0dGFjaC0+ZGV2 LT5kcml2ZXIgIT0gYWRldi0+ZGV2LT5kcml2ZXIpCj4+ICAgCQliby0+cHJpbWVfc2hhcmVkX2Nv dW50Kys7Cj4+ICAgCj4+IC1lcnJvcl91bnJlc2VydmU6Cj4+IC0JYW1kZ3B1X2JvX3VucmVzZXJ2 ZShibyk7Cj4+ICsJcmV0dXJuIHNndDsKPj4gICAKPj4gLWVycm9yX2RldGFjaDoKPj4gLQlpZiAo cikKPj4gLQkJZHJtX2dlbV9tYXBfZGV0YWNoKGRtYV9idWYsIGF0dGFjaCk7Cj4+IC0JcmV0dXJu IHI7Cj4+ICtlcnJvcl9mcmVlOgo+PiArCXNnX2ZyZWVfdGFibGUoc2d0KTsKPj4gKwlrZnJlZShz Z3QpOwo+PiArCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+PiAgIH0KPj4gICAKPj4gLXN0YXRp YyB2b2lkIGFtZGdwdV9nZW1fbWFwX2RldGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPj4g LQkJCQkgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKPj4gK3N0YXRpYyB2b2lk IGFtZGdwdV9nZW1fdW5tYXBfZG1hX2J1ZihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRh Y2gsCj4+ICsJCQkJICAgICBzdHJ1Y3Qgc2dfdGFibGUgKnNndCwKPj4gKwkJCQkgICAgIGVudW0g ZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKPj4gICB7Cj4+ICsJc3RydWN0IGRtYV9idWYgKmRtYV9i dWYgPSBhdHRhY2gtPmRtYWJ1ZjsKPj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBk bWFfYnVmLT5wcml2Owo+PiAgIAlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGdlbV90b19hbWRncHVf Ym8ob2JqKTsKPj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2Fk ZXYoYm8tPnRiby5iZGV2KTsKPj4gLQlpbnQgcmV0ID0gMDsKPj4gLQo+PiAtCXJldCA9IGFtZGdw dV9ib19yZXNlcnZlKGJvLCB0cnVlKTsKPj4gLQlpZiAodW5saWtlbHkocmV0ICE9IDApKQo+PiAt CQlnb3RvIGVycm9yOwo+PiAgIAo+PiAgIAlhbWRncHVfYm9fdW5waW4oYm8pOwo+PiArCj4+ICAg CWlmIChhdHRhY2gtPmRldi0+ZHJpdmVyICE9IGFkZXYtPmRldi0+ZHJpdmVyICYmIGJvLT5wcmlt ZV9zaGFyZWRfY291bnQpCj4+ICAgCQliby0+cHJpbWVfc2hhcmVkX2NvdW50LS07Cj4+IC0JYW1k Z3B1X2JvX3VucmVzZXJ2ZShibyk7Cj4+ICAgCj4+IC1lcnJvcjoKPj4gLQlkcm1fZ2VtX21hcF9k ZXRhY2goZG1hX2J1ZiwgYXR0YWNoKTsKPj4gKwlpZiAoc2d0KSB7Cj4+ICsJCWRtYV91bm1hcF9z ZyhhdHRhY2gtPmRldiwgc2d0LT5zZ2wsIHNndC0+bmVudHMsIGRpcik7Cj4+ICsJCXNnX2ZyZWVf dGFibGUoc2d0KTsKPj4gKwkJa2ZyZWUoc2d0KTsKPj4gKwl9Cj4+ICAgfQo+PiAgIAo+PiAgIHN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKmFtZGdwdV9nZW1fcHJpbWVfcmVzX29iaihzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKm9iaikKPj4gQEAgLTIzNywxMCArMjMwLDggQEAgc3RhdGljIGludCBh bWRncHVfZ2VtX2JlZ2luX2NwdV9hY2Nlc3Moc3RydWN0IGRtYV9idWYgKmRtYV9idWYsCj4+ICAg fQo+PiAgIAo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgYW1kZ3B1X2RtYWJ1 Zl9vcHMgPSB7Cj4+IC0JLmF0dGFjaCA9IGFtZGdwdV9nZW1fbWFwX2F0dGFjaCwKPj4gLQkuZGV0 YWNoID0gYW1kZ3B1X2dlbV9tYXBfZGV0YWNoLAo+PiAtCS5tYXBfZG1hX2J1ZiA9IGRybV9nZW1f bWFwX2RtYV9idWYsCj4+IC0JLnVubWFwX2RtYV9idWYgPSBkcm1fZ2VtX3VubWFwX2RtYV9idWYs Cj4+ICsJLm1hcF9kbWFfYnVmID0gYW1kZ3B1X2dlbV9tYXBfZG1hX2J1ZiwKPj4gKwkudW5tYXBf ZG1hX2J1ZiA9IGFtZGdwdV9nZW1fdW5tYXBfZG1hX2J1ZiwKPj4gICAJLnJlbGVhc2UgPSBkcm1f Z2VtX2RtYWJ1Zl9yZWxlYXNlLAo+PiAgIAkuYmVnaW5fY3B1X2FjY2VzcyA9IGFtZGdwdV9nZW1f YmVnaW5fY3B1X2FjY2VzcywKPj4gICAJLm1hcCA9IGRybV9nZW1fZG1hYnVmX2ttYXAsCj4+IC0t IAo+PiAyLjE0LjEKPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+PiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK