From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 02/12] dma-buf: add explicit buffer pinning v2 Date: Mon, 29 Apr 2019 10:40:48 +0200 Message-ID: <20190429084048.GL3271@phenom.ffwll.local> References: <20190426123638.40221-1-christian.koenig@amd.com> <20190426123638.40221-2-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 68C0889270 for ; Mon, 29 Apr 2019 08:40:52 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id d55so6547233ede.0 for ; Mon, 29 Apr 2019 01:40:52 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190426123638.40221-2-christian.koenig@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Christian =?iso-8859-1?Q?K=F6nig?= Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBcHIgMjYsIDIwMTkgYXQgMDI6MzY6MjhQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBBZGQgb3B0aW9uYWwgZXhwbGljaXQgcGlubmluZyBjYWxsYmFja3MgaW5zdGVh ZCBvZiBpbXBsaWNpdGx5IGFzc3VtZSB0aGUKPiBleHBvcnRlciBwaW5zIHRoZSBidWZmZXIgd2hl biBhIG1hcHBpbmcgaXMgY3JlYXRlZC4KPiAKPiB2MjogbW92ZSBpbiBwYXRjaHNldCBhbmQgcGlu IHRoZSBkbWEtYnVmIGluIHRoZSBvbGQgbWFwcGluZyBjb2RlIHBhdGhzLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQo+ICBpbmNsdWRlL2xpbnV4L2RtYS1idWYuaCAgIHwgMzggKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2Rt YS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPiBpbmRleCA1MGI0YzZhZjA0Yzcu LjA2NTZkY2YyODliZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4g KysrIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwo+IEBAIC01MjksNiArNTI5LDQxIEBAIHZv aWQgZG1hX2J1Zl9wdXQoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZikKPiAgfQo+ICBFWFBPUlRfU1lN Qk9MX0dQTChkbWFfYnVmX3B1dCk7Cj4gIAo+ICsvKioKPiArICogZG1hX2J1Zl9waW4gLSBMb2Nr IGRvd24gdGhlIERNQS1idWYKPiArICoKPiArICogQGRtYWJ1ZjoJW2luXQlETUEtYnVmIHRvIGxv Y2sgZG93bi4KPiArICoKPiArICogUmV0dXJuczoKPiArICogMCBvbiBzdWNjZXNzLCBuZWdhdGl2 ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqLwo+ICtpbnQgZG1hX2J1Zl9waW4oc3RydWN0 IGRtYV9idWYgKmRtYWJ1ZikKCkkgdGhpbmsgdGhpcyBzaG91bGQgYmUgb24gdGhlIGF0dGFjaG1l bnQsIG5vdCBvbiB0aGUgYnVmZmVyLiBPciBpcyB0aGUKaWRlYSB0aGF0IGEgcGluIGlzIGZvciB0 aGUgZW50aXJlIGJ1ZmZlciwgYW5kIGFsbCBzdWJzZXF1ZW50CmRtYV9idWZfbWFwX2F0dGFjaG1l bnQgbXVzdCB3b3JrIGZvciBhbGwgYXR0YWNobWVudHM/IEkgdGhpbmsgdGhpcyBtYXR0ZXJzCmZv ciBzdWZmaWNpZW50bHkgY29udHJpdmVkIHAycCBzY2VuYXJpb3MuCgpFaXRoZXIgd2F5LCBkb2Nz IG5lZWQgdG8gY2xhcmlmeSB0aGlzLgoKPiArewo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJcmVz ZXJ2YXRpb25fb2JqZWN0X2Fzc2VydF9oZWxkKGRtYWJ1Zi0+cmVzdik7Cj4gKwo+ICsJaWYgKGRt YWJ1Zi0+b3BzLT5waW4pCj4gKwkJcmV0ID0gZG1hYnVmLT5vcHMtPnBpbihkbWFidWYpOwo+ICsK PiArCXJldHVybiByZXQ7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoZG1hX2J1Zl9waW4pOwo+ ICsKPiArLyoqCj4gKyAqIGRtYV9idWZfdW5waW4gLSBSZW1vdmUgbG9jayBmcm9tIERNQS1idWYK PiArICoKPiArICogQGRtYWJ1ZjoJW2luXQlETUEtYnVmIHRvIHVubG9jay4KPiArICovCj4gK3Zv aWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmKQo+ICt7Cj4gKwlyZXNlcnZh dGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoZG1hYnVmLT5yZXN2KTsKPiArCj4gKwlpZiAoZG1hYnVm LT5vcHMtPnVucGluKQo+ICsJCWRtYWJ1Zi0+b3BzLT51bnBpbihkbWFidWYpOwo+ICt9Cj4gK0VY UE9SVF9TWU1CT0xfR1BMKGRtYV9idWZfdW5waW4pOwo+ICsKPiAgLyoqCj4gICAqIGRtYV9idWZf YXR0YWNoIC0gQWRkIHRoZSBkZXZpY2UgdG8gZG1hX2J1ZidzIGF0dGFjaG1lbnRzIGxpc3Q7IG9w dGlvbmFsbHksCj4gICAqIGNhbGxzIGF0dGFjaCgpIG9mIGRtYV9idWZfb3BzIHRvIGFsbG93IGRl dmljZS1zcGVjaWZpYyBhdHRhY2ggZnVuY3Rpb25hbGl0eQo+IEBAIC01NDgsNyArNTgzLDggQEAg RVhQT1JUX1NZTUJPTF9HUEwoZG1hX2J1Zl9wdXQpOwo+ICAgKiBhY2Nlc3NpYmxlIHRvIEBkZXYs IGFuZCBjYW5ub3QgYmUgbW92ZWQgdG8gYSBtb3JlIHN1aXRhYmxlIHBsYWNlLiBUaGlzIGlzCj4g ICAqIGluZGljYXRlZCB3aXRoIHRoZSBlcnJvciBjb2RlIC1FQlVTWS4KPiAgICovCj4gLXN0cnVj dCBkbWFfYnVmX2F0dGFjaG1lbnQgKmRtYV9idWZfYXR0YWNoKGNvbnN0IHN0cnVjdCBkbWFfYnVm X2F0dGFjaF9pbmZvICppbmZvKQo+ICtzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICoKPiArZG1h X2J1Zl9hdHRhY2goY29uc3Qgc3RydWN0IGRtYV9idWZfYXR0YWNoX2luZm8gKmluZm8pCj4gIHsK PiAgCXN0cnVjdCBkbWFfYnVmICpkbWFidWYgPSBpbmZvLT5kbWFidWY7Cj4gIAlzdHJ1Y3QgZG1h X2J1Zl9hdHRhY2htZW50ICphdHRhY2g7Cj4gQEAgLTYyNSwxMiArNjYxLDE5IEBAIHN0cnVjdCBz Z190YWJsZSAqZG1hX2J1Zl9tYXBfYXR0YWNobWVudChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50 ICphdHRhY2gsCj4gIAkJCQkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uKQo+ICB7 Cj4gIAlzdHJ1Y3Qgc2dfdGFibGUgKnNnX3RhYmxlOwo+ICsJaW50IHI7Cj4gIAo+ICAJbWlnaHRf c2xlZXAoKTsKPiAgCj4gIAlpZiAoV0FSTl9PTighYXR0YWNoIHx8ICFhdHRhY2gtPmRtYWJ1Zikp Cj4gIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gIAo+ICsJcmVzZXJ2YXRpb25fb2JqZWN0 X2xvY2soYXR0YWNoLT5kbWFidWYtPnJlc3YsIE5VTEwpOwo+ICsJciA9IGRtYV9idWZfcGluKGF0 dGFjaC0+ZG1hYnVmKTsKPiArCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2soYXR0YWNoLT5kbWFi dWYtPnJlc3YpOwoKVGhpcyBhZGRzIGFuIHVuY29uZGl0aW9uYWwgcmVzZXJ2YXQgbG9jayB0byBt YXAvdW5tYXAsIHdoaWNoIGlzIHRoaW5rCnBpc3NlcyBvZmYgZHJpdmVycy4gVGhpcyBnZXRzIGZp eGVkIGxhdGVyIG9uIHdpdGggdGhlIGNhY2hpbmcsIGJ1dCBtZWFucwp0aGUgc2VyaWVzIGlzIGJy b2tlbiBoZXJlLgoKQWxzbywgdGhhdCBzdXBlci1maW5lIGdyYWluZWQgc3BsaXQtdXAgbWFrZXMg aXQgaGFyZGVyIGZvciBtZSB0byByZXZpZXcKdGhlIGRvY3MsIHNpbmNlIG9ubHkgdW50aWwgdGhl IHZlcnkgZW5kIGFyZSBhbGwgdGhlIGJpdHMgcHJlc2VudCBmb3IgZnVsbApkeW5hbWljIGRtYS1i dWYgbWFwcGluZ3MuCgpJIHRoaW5rIGl0J2QgYmUgYmVzdCB0byBzcXVhc2ggYWxsIHRoZSBwYXRj aGVzIGZyb20gcGluIHVwIHRvIHRoZSBvbmUgdGhhdAphZGRzIHRoZSBpbnZhbGlkYXRlIGNhbGxi YWNrIGludG8gb25lIHBhdGNoLiBJdCdzIGFsbCBjaGFuZ2VzIHRvCmRtYS1idWYuW2hjXSBvbmx5 IGFueXdheS4gSWYgdGhhdCBpcyB0b28gYmlnIHdlIGNhbiB0aGluayBhYm91dCBob3cgdG8Kc3Bs aXQgaXQgdXAgYWdhaW4sIGJ1dCBhdCBsZWFzdCBmb3IgbWUgdGhlIGN1cnJlbnQgc3BsaXR0aW5n IGRvZXNuJ3QgbWFrZQpzZW5zZSBhdCBhbGwuCgo+ICsJaWYgKHIpCj4gKwkJcmV0dXJuIEVSUl9Q VFIocik7Cj4gKwo+ICAJc2dfdGFibGUgPSBhdHRhY2gtPmRtYWJ1Zi0+b3BzLT5tYXBfZG1hX2J1 ZihhdHRhY2gsIGRpcmVjdGlvbik7Cj4gIAlpZiAoIXNnX3RhYmxlKQo+ICAJCXNnX3RhYmxlID0g RVJSX1BUUigtRU5PTUVNKTsKCkxlYWtzIHRoZSBwaW4gaWYgd2UgZmFpbCBoZXJlLgoKPiBAQCAt NjYwLDYgKzcwMywxMCBAQCB2b2lkIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudChzdHJ1Y3QgZG1h X2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCj4gIAo+ICAJYXR0YWNoLT5kbWFidWYtPm9wcy0+dW5t YXBfZG1hX2J1ZihhdHRhY2gsIHNnX3RhYmxlLAo+ICAJCQkJCQlkaXJlY3Rpb24pOwo+ICsKPiAr CXJlc2VydmF0aW9uX29iamVjdF9sb2NrKGF0dGFjaC0+ZG1hYnVmLT5yZXN2LCBOVUxMKTsKPiAr CWRtYV9idWZfdW5waW4oYXR0YWNoLT5kbWFidWYpOwo+ICsJcmVzZXJ2YXRpb25fb2JqZWN0X3Vu bG9jayhhdHRhY2gtPmRtYWJ1Zi0+cmVzdik7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZG1h X2J1Zl91bm1hcF9hdHRhY2htZW50KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv ZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPiBpbmRleCAyYzMxMmRmZDMxYTEu LjAzMjE5MzliMWMzZCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAo+ICsr KyBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oCj4gQEAgLTUxLDYgKzUxLDM0IEBAIHN0cnVjdCBk bWFfYnVmX2F0dGFjaG1lbnQ7Cj4gICAqIEB2dW5tYXA6IFtvcHRpb25hbF0gdW5tYXBzIGEgdm1h cCBmcm9tIHRoZSBidWZmZXIKPiAgICovCj4gIHN0cnVjdCBkbWFfYnVmX29wcyB7Cj4gKwkvKioK PiArCSAqIEBwaW46Cj4gKwkgKgo+ICsJICogVGhpcyBpcyBjYWxsZWQgYnkgZG1hX2J1Zl9waW4g YW5kIGxldHMgdGhlIGV4cG9ydGVyIGtub3cgdGhhdCB0aGUKPiArCSAqIERNQS1idWYgY2FuJ3Qg YmUgbW92ZWQgYW55IG1vcmUuCj4gKwkgKgo+ICsJICogVGhpcyBpcyBjYWxsZWQgd2l0aCB0aGUg ZG1hYnVmLT5yZXN2IG9iamVjdCBsb2NrZWQuCj4gKwkgKgo+ICsJICogVGhpcyBjYWxsYmFjayBp cyBvcHRpb25hbC4KPiArCSAqCj4gKwkgKiBSZXR1cm5zOgo+ICsJICoKPiArCSAqIDAgb24gc3Vj Y2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsJICovCj4gKwlpbnQgKCpw aW4pKHN0cnVjdCBkbWFfYnVmICopOwo+ICsKPiArCS8qKgo+ICsJICogQHVucGluOgo+ICsJICoK PiArCSAqIFRoaXMgaXMgY2FsbGVkIGJ5IGRtYV9idWZfdW5waW4gYW5kIGxldHMgdGhlIGV4cG9y dGVyIGtub3cgdGhhdCB0aGUKPiArCSAqIERNQS1idWYgY2FuIGJlIG1vdmVkIGFnYWluLgo+ICsJ ICoKPiArCSAqIFRoaXMgaXMgY2FsbGVkIHdpdGggdGhlIGRtYWJ1Zi0+cmVzdiBvYmplY3QgbG9j a2VkLgo+ICsJICoKPiArCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCgoiVGhpcyBjYWxs YmFjayBpcyBvcHRpb25hbCwgYnV0IG11c3QgYmUgcHJvdmlkZWQgaWYgQHBpbiBpcy4iIFNhbWUg Zm9yCkBwaW4gSSB0aGluaywgcGx1cyB3b3VsZCBiZSBnb29kIHRvIGNoZWNrIGluIGRtYV9idWZf ZXhwb3J0IHRoYXQgeW91IGhhdmUKYm90aCBvciBuZWl0aGVyIHdpdGgKCglXQVJOX09OKCEhZXhw X2luZm8tPm9wcy0+cGluID09ICEhZXhwX2luZm8tPm9wcy0+dW5waW4pOwoKPiArCSAqLwo+ICsJ dm9pZCAoKnVucGluKShzdHJ1Y3QgZG1hX2J1ZiAqKTsKPiArCj4gIAkvKioKPiAgCSAqIEBhdHRh Y2g6Cj4gIAkgKgo+IEBAIC05NSw5ICsxMjMsNyBAQCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgewo+ICAJ ICoKPiAgCSAqIFRoaXMgaXMgY2FsbGVkIGJ5IGRtYV9idWZfbWFwX2F0dGFjaG1lbnQoKSBhbmQg aXMgdXNlZCB0byBtYXAgYQo+ICAJICogc2hhcmVkICZkbWFfYnVmIGludG8gZGV2aWNlIGFkZHJl c3Mgc3BhY2UsIGFuZCBpdCBpcyBtYW5kYXRvcnkuIEl0Cj4gLQkgKiBjYW4gb25seSBiZSBjYWxs ZWQgaWYgQGF0dGFjaCBoYXMgYmVlbiBjYWxsZWQgc3VjY2Vzc2Z1bGx5LiBUaGlzCj4gLQkgKiBl c3NlbnRpYWxseSBwaW5zIHRoZSBETUEgYnVmZmVyIGludG8gcGxhY2UsIGFuZCBpdCBjYW5ub3Qg YmUgbW92ZWQKPiAtCSAqIGFueSBtb3JlCj4gKwkgKiBjYW4gb25seSBiZSBjYWxsZWQgaWYgQGF0 dGFjaCBoYXMgYmVlbiBjYWxsZWQgc3VjY2Vzc2Z1bGx5LgoKSSB0aGluayBkcm9wcGluZyB0aGlz IG91dHJpZ2h0IGlzbid0IGNvcnJlY3QsIHNpbmNlIGZvciBhbGwgY3VycmVudApkbWEtYnVmIGV4 cG9ydGVycyBpdCdzIHN0aWxsIHdoYXQgdGhleSBzaG91bGQgYmUgZG9pbmcuIFdlIGp1c3QgbmVl ZCB0bwptYWtlIHRoaXMgY29uZGl0aW9uYWwgb24gQHBpbiBhbmQgQHVucGluIG5vdCBiZWluZyBw cmVzZW50OgoKCSJJZiBAcGluIGFuZCBAdW5waW4gYXJlIG5vdCBwcm92aWRlZCB0aGlzIGVzc2Vu dGlhbGx5IHBpbnMgdGhlIERNQQoJYnVmZmVyIGludG8gcGxhY2UsIGFuZCBpdCBjYW5ub3QgYmUg bW92ZWQgYW55IG1vcmUuIgoKPiAgCSAqCj4gIAkgKiBUaGlzIGNhbGwgbWF5IHNsZWVwLCBlLmcu IHdoZW4gdGhlIGJhY2tpbmcgc3RvcmFnZSBmaXJzdCBuZWVkcyB0byBiZQo+ICAJICogYWxsb2Nh dGVkLCBvciBtb3ZlZCB0byBhIGxvY2F0aW9uIHN1aXRhYmxlIGZvciBhbGwgY3VycmVudGx5IGF0 dGFjaGVkCj4gQEAgLTEzNSw5ICsxNjEsNiBAQCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgewo+ICAJICoK PiAgCSAqIFRoaXMgaXMgY2FsbGVkIGJ5IGRtYV9idWZfdW5tYXBfYXR0YWNobWVudCgpIGFuZCBz aG91bGQgdW5tYXAgYW5kCj4gIAkgKiByZWxlYXNlIHRoZSAmc2dfdGFibGUgYWxsb2NhdGVkIGlu IEBtYXBfZG1hX2J1ZiwgYW5kIGl0IGlzIG1hbmRhdG9yeS4KClNhbWUgaGVyZSwgYWRkIGEgIklm IEBwaW4gYW5kIEB1bnBpbiBhcmUgbm90IHByb3ZpZGVkIHRoaXMgc2hvdWxkIC4uLiIKcXVhbGlm aWVyIGluc3RlYWQgb2YgZGVsZXRpbmcuCgpDaGVlcnMsIERhbmllbAoKCj4gLQkgKiBJdCBzaG91 bGQgYWxzbyB1bnBpbiB0aGUgYmFja2luZyBzdG9yYWdlIGlmIHRoaXMgaXMgdGhlIGxhc3QgbWFw cGluZwo+IC0JICogb2YgdGhlIERNQSBidWZmZXIsIGl0IHRoZSBleHBvcnRlciBzdXBwb3J0cyBi YWNraW5nIHN0b3JhZ2UKPiAtCSAqIG1pZ3JhdGlvbi4KPiAgCSAqLwo+ICAJdm9pZCAoKnVubWFw X2RtYV9idWYpKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKiwKPiAgCQkJICAgICAgc3RydWN0 IHNnX3RhYmxlICosCj4gQEAgLTM4Niw2ICs0MDksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0 X2RtYV9idWYoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZikKPiAgCWdldF9maWxlKGRtYWJ1Zi0+Zmls ZSk7Cj4gIH0KPiAgCj4gK2ludCBkbWFfYnVmX3BpbihzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmKTsK PiArdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpOwo+ICsKPiAgc3Ry dWN0IGRtYV9idWZfYXR0YWNobWVudCAqCj4gIGRtYV9idWZfYXR0YWNoKGNvbnN0IHN0cnVjdCBk bWFfYnVmX2F0dGFjaF9pbmZvICppbmZvKTsKPiAgdm9pZCBkbWFfYnVmX2RldGFjaChzdHJ1Y3Qg ZG1hX2J1ZiAqZG1hYnVmLAo+IC0tIAo+IDIuMTcuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdh cmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==