From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3] drm/amdgpu: Transfer fences to dmabuf importer Date: Tue, 7 Aug 2018 14:47:12 +0200 Message-ID: <20180807124712.GW3008@phenom.ffwll.local> References: <20180807104500.31264-1-chris@chris-wilson.co.uk> <20180807110558.3298-1-chris@chris-wilson.co.uk> <76fdc5a1-fc05-cd4b-458f-64fc374cb90a@amd.com> <20180807124322.GV3008@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180807124322.GV3008-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Christian =?iso-8859-1?Q?K=F6nig?= Cc: Alex Deucher , intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Chris Wilson List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBBdWcgMDcsIDIwMTggYXQgMDI6NDM6MjJQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIEF1ZyAwNywgMjAxOCBhdCAwMToyMzoxOVBNICswMjAwLCBDaHJpc3Rp YW4gS8O2bmlnIHdyb3RlOgo+ID4gQW0gMDcuMDguMjAxOCB1bSAxMzowNSBzY2hyaWViIENocmlz IFdpbHNvbjoKPiA+ID4gYW1kZ3B1IG9ubHkgdXNlcyBzaGFyZWQtZmVuY2VzIGludGVybmFsbHks IGJ1dCBkbWFidWYgaW1wb3J0ZXJzIHJlbHkgb24KPiA+ID4gaW1wbGljaXQgd3JpdGUgaGF6YXJk IHRyYWNraW5nIHZpYSB0aGUgcmVzZXJ2YXRpb25fb2JqZWN0LmZlbmNlX2V4Y2wuCj4gPiAKPiA+ IFdlbGwgSSB3b3VsZCByYXRoZXIgc3VnZ2VzdCBhIHNvbHV0aW9uIHdoZXJlIHdlIHN0b3AgZG9p bmcgdGhpcy4KPiA+IAo+ID4gVGhlIHByb2JsZW0gaGVyZSBpcyB0aGF0IGk5MTUgYXNzdW1lcyB0 aGF0IGEgd3JpdGUgb3BlcmF0aW9uIGFsd2F5cyBuZWVkcwo+ID4gZXhjbHVzaXZlIGFjY2VzcyB0 byBhbiBvYmplY3QgcHJvdGVjdGVkIGJ5IGFuIHJlc2VydmF0aW9uIG9iamVjdC4KPiA+IAo+ID4g QXQgbGVhc3QgZm9yIGFtZGdwdSwgcmFkZW9uIGFuZCBub3V2ZWF1IHRoaXMgYXNzdW1wdGlvbiBp cyBpbmNvcnJlY3QsIGJ1dAo+ID4gb25seSBhbWRncHUgaGFzIGEgZGVzaWduIHdoZXJlIHVzZXJz cGFjZSBpcyBub3QgbHlpbmcgdG8gdGhlIGtlcm5lbCBhYm91dAo+ID4gaXQncyByZWFkL3dyaXRl IGFjY2Vzcy4KPiA+IAo+ID4gV2hhdCB3ZSBzaG91bGQgZG8gaW5zdGVhZCBpcyB0byBhZGQgYSBm bGFnIHRvIGVhY2ggc2hhcmVkIGZlbmNlIHRvIG5vdGUgaWYKPiA+IGl0IGlzIGEgd3JpdGUgb3Bl cmF0aW9uIG9yIG5vdC4gVGhlbiB3ZSBjYW4gdHJpdmlhbGx5IGFkZCBhIGZ1bmN0aW9uIHRvIHdh aXQKPiA+IG9uIG9uIHRob3NlIGluIGk5MTUuCj4gPiAKPiA+IEkgc2hvdWxkIGhhdmUgcHVzaGVk IGhhcmRlciBmb3IgdGhpcyBzb2x1dGlvbiB3aGVuIHRoZSBwcm9ibGVtIGNhbWUgdXAKPiA+IGlu aXRpYWxseSwKPiAKPiBGb3Igc2hhcmVkIGJ1ZmZlcnMgaW4gYW4gaW1wbGljaXQgc3luY2luZyBz ZXR1cCBsaWtlIGRyaTIgdGhlIGV4Y2x1c2l2ZQo+IGZlbmNlIF9pc18geW91ciB3cml0ZSBmZW5j ZS4gVGhhdCdzIGhvdyB0aGlzIHN0dWZmIHdvcmtzLiBOb3RlIGl0J3Mgb25seQo+IGZvciBpbXBs aWNpdCBmZW5jaW5nIGZvciBkcmkyIHNoYXJlZCBidWZmZXJzLiBpOTE1IGxpZXMgYXMgbXVjaCBh cwo+IGV2ZXJ5b25lIGVsc2UgZm9yIGV4cGxpY2l0IHN5bmNpbmcuCgpKdXN0IHJlYWxpemVkIHRo YXQgZHJpMyBpcyBleGFjdGx5IGluIHRoZSBzYW1lIGJvYXQgc3RpbGwgYWZhaXVpLiBBbnl3YXks CnRsZHIgaGVyZSBpc24ndCB0aGF0IGk5MTUgaXMgdGhlIGV4Y2VwdGlvbiwgYnV0IGFtZGdwdS4g SWYgeW91IGhhdmUgYQpzaGFyZWQgYnVmZmVyIHVzZWQgaW4gYW4gaW1wbGljaXRseSBzeW5jZWQg cHJvdG9jb2wsIHlvdSBoYXZlIHRvIHNldCB0aGUKZXhjbHVzaXZlIGZlbmNlIHRvIGd1YXJkIHdy aXRlcy4gSG93IHlvdSBkbyB0aGF0IGlzIHVwIHRvIHlvdSByZWFsbHkuIEFuZAppZiBhIGJpdGZp ZWxkIGluIHJlc2VydmF0aW9uX29iamVjdCB3b3VsZCBoZWxwIGluIHRyYWNraW5nIHRoZXNlIEkg Z3Vlc3MKd2UgY291bGQgYWRkIHRoYXQsIGJ1dCBJIHRoaW5rIHRoYXQgY291bGQgYXMgd2VsbCBq dXN0IGJlIHB1dCBpbnRvIGFuCmFtZGdwdSBzdHJ1Y3R1cmUgc29tZXdoZXJlLiBBbmQgd291bGQg YmUgbGVzcyBjb25mdXNpbmcgZm9yIGV2ZXJ5b25lIGVsc2UKaWYgaXQncyBub3QgaW4gc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdC4KLURhbmllbAoKPiAKPiBOb3cgYXMgbG9uZyBhcyB5b3Ugb25s eSBzaGFyZSB3aXRoaW4gYW1kZ3B1IHlvdSBjYW4gZG8gd2hhdGV2ZXIgeW91IHdhbnQKPiB0bywg YnV0IGZvciBhbnl0aGluZyBzaGFyZWQgb3V0c2lkZSBvZiBhbWRncHUsIGlmIHRoZSBidWZmZXIg aXNuJ3Qgc2hhcmVkCj4gdGhyb3VnaCBhbiBleHBsaWNpdCBzeW5jaW5nIHByb3RvY29sLCB0aGVu IHlvdSBkbyBoYXZlIHRvIHNldCB0aGUKPiBleGNsdXNpdmUgZmVuY2UuIFRoYXQncyBhdCBsZWFz dCBob3cgdGhpcyBzdHVmZiB3b3JrcyByaWdodCBub3cgd2l0aCBhbGwKPiBvdGhlciBkcml2ZXJz Lgo+IAo+IEZvciBpOTE1IHdlIGhhZCB0byBkbyBzb21lIHVhcGkgdHJpY2tlcnkgdG8gbWFrZSB0 aGlzIHdvcmsgaW4gYWxsIGNhc2VzLAo+IHNpbmNlIG9ubHkgcmVhbGx5IHVzZXJzcGFjZSBrbm93 cyB3aGV0aGVyIGEgd3JpdGUgc2hvdWxkIGJlIGEgc2hhcmVkIG9yCj4gZXhjbHVzaXZlIHdyaXRl LiBCdXQgdGhhdCdzIHN0cmljbHkgYW4gaXNzdWUgbGltaXRlZCB0byB5b3VyIGRyaXZlciwgYW5k Cj4gZG9zbid0IG5lZWQgY2hhbmdlcyB0byByZXNlcnZhdGlvbiBvYmplY3QgYWxsIHRocm91Z2hv dXQgdGhlIHN0YWNrLgo+IAo+IEFzaWRlOiBJZiB5b3Ugd2FudCB0byBhdHRhY2ggbXVsdGlwbGUg d3JpdGUgZmVuY2VzIHRvIHRoZSBleGNsdXNpdmUgZmVuY2UsCj4gdGhhdCBzaG91bGQgYmUgZG9h YmxlIHdpdGggdGhlIGFycmF5IGZlbmNlcy4KPiAtRGFuaWVsCj4gCj4gPiBDaHJpc3RpYW4uCj4g PiAKPiA+ID4gRm9yIGV4YW1wbGUsIHRoZSBpbXBvcnRlciB1c2UgdGhlIHdyaXRlIGhhemFyZCBm b3IgdGltaW5nIGEgcGFnZSBmbGlwIHRvCj4gPiA+IG9ubHkgb2NjdXIgYWZ0ZXIgdGhlIGV4cG9y dGVyIGhhcyBmaW5pc2hlZCBmbHVzaGluZyBpdHMgd3JpdGUgaW50byB0aGUKPiA+ID4gc3VyZmFj ZS4gQXMgc3VjaCwgb24gZXhwb3J0aW5nIGEgZG1hYnVmLCB3ZSBtdXN0IGVpdGhlciBmbHVzaCBh bGwKPiA+ID4gb3V0c3RhbmRpbmcgZmVuY2VzIChmb3Igd2UgZG8gbm90IGtub3cgd2hpY2ggYXJl IHdyaXRlcyBhbmQgc2hvdWxkIGhhdmUKPiA+ID4gYmVlbiBleGNsdXNpdmUpIG9yIGFsdGVybmF0 aXZlbHkgY3JlYXRlIGEgbmV3IGV4Y2x1c2l2ZSBmZW5jZSB0aGF0IGlzCj4gPiA+IHRoZSBjb21w b3NpdGUgb2YgYWxsIHRoZSBleGlzdGluZyBzaGFyZWQgZmVuY2VzLCBhbmQgc28gd2lsbCBvbmx5 IGJlCj4gPiA+IHNpZ25hbGVkIHdoZW4gYWxsIGVhcmxpZXIgZmVuY2VzIGFyZSBzaWduYWxlZCAo ZW5zdXJpbmcgdGhhdCB3ZSBjYW4gbm90Cj4gPiA+IGJlIHNpZ25hbGVkIGJlZm9yZSB0aGUgY29t cGxldGlvbiBvZiBhbnkgZWFybGllciB3cml0ZSkuCj4gPiA+IAo+ID4gPiB2MjogcmVzZXJ2YXRp b25fb2JqZWN0IGlzIGFscmVhZHkgbG9ja2VkIGJ5IGFtZGdwdV9ib19yZXNlcnZlKCkKPiA+ID4g Cj4gPiA+IFRlc3RjYXNlOiBpZ3QvYW1kX3ByaW1lL2FtZC10by1pOTE1Cj4gPiA+IFNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gPiBDYzog QWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgo+ID4gPiBDYzogIkNocmlz dGlhbiBLw7ZuaWciIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wcmltZS5jIHwgNjggKysrKysrKysr KysrKysrKysrKystLS0KPiA+ID4gICAxIGZpbGUgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwg OCBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9wcmltZS5jCj4gPiA+IGluZGV4IDFjNWQ5N2Y0YjRkZC4uNTc2YTgzOTQ2YzI1IDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYwo+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYwo+ID4g PiBAQCAtMzcsNiArMzcsNyBAQAo+ID4gPiAgICNpbmNsdWRlICJhbWRncHVfZGlzcGxheS5oIgo+ ID4gPiAgICNpbmNsdWRlIDxkcm0vYW1kZ3B1X2RybS5oPgo+ID4gPiAgICNpbmNsdWRlIDxsaW51 eC9kbWEtYnVmLmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLWFycmF5Lmg+Cj4g PiA+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyBhbWRncHVfZG1hYnVmX29wczsK PiA+ID4gQEAgLTE4OCw2ICsxODksNTcgQEAgYW1kZ3B1X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFi bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gICAJcmV0dXJuIEVSUl9QVFIocmV0KTsK PiA+ID4gICB9Cj4gPiA+ICtzdGF0aWMgaW50Cj4gPiA+ICtfX3Jlc2VydmF0aW9uX29iamVjdF9t YWtlX2V4Y2x1c2l2ZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCj4gPiA+ICt7Cj4g PiA+ICsJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwo+ID4gPiArCXN0cnVj dCBkbWFfZmVuY2VfYXJyYXkgKmFycmF5Owo+ID4gPiArCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5j ZXM7Cj4gPiA+ICsJdW5zaWduZWQgaW50IGNvdW50LCBpOwo+ID4gPiArCj4gPiA+ICsJZm9iaiA9 IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChvYmopOwo+ID4gPiArCWlmICghZm9iaikKPiA+ ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gKwljb3VudCA9ICEhcmN1X2FjY2Vzc19wb2lu dGVyKG9iai0+ZmVuY2VfZXhjbCk7Cj4gPiA+ICsJY291bnQgKz0gZm9iai0+c2hhcmVkX2NvdW50 Owo+ID4gPiArCj4gPiA+ICsJZmVuY2VzID0ga21hbGxvY19hcnJheShjb3VudCwgc2l6ZW9mKCpm ZW5jZXMpLCBHRlBfS0VSTkVMKTsKPiA+ID4gKwlpZiAoIWZlbmNlcykKPiA+ID4gKwkJcmV0dXJu IC1FTk9NRU07Cj4gPiA+ICsKPiA+ID4gKwlmb3IgKGkgPSAwOyBpIDwgZm9iai0+c2hhcmVkX2Nv dW50OyBpKyspIHsKPiA+ID4gKwkJc3RydWN0IGRtYV9mZW5jZSAqZiA9Cj4gPiA+ICsJCQlyY3Vf ZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKPiA+ID4gKwkJCQkJCSAgcmVz ZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSk7Cj4gPiA+ICsKPiA+ID4gKwkJZmVuY2VzW2ldID0g ZG1hX2ZlbmNlX2dldChmKTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlpZiAocmN1X2FjY2Vz c19wb2ludGVyKG9iai0+ZmVuY2VfZXhjbCkpIHsKPiA+ID4gKwkJc3RydWN0IGRtYV9mZW5jZSAq ZiA9Cj4gPiA+ICsJCQlyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVuY2VfZXhjbCwK PiA+ID4gKwkJCQkJCSAgcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSk7Cj4gPiA+ICsKPiA+ ID4gKwkJZmVuY2VzW2ldID0gZG1hX2ZlbmNlX2dldChmKTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ ID4gKwlhcnJheSA9IGRtYV9mZW5jZV9hcnJheV9jcmVhdGUoY291bnQsIGZlbmNlcywKPiA+ID4g KwkJCQkgICAgICAgZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSksIDAsCj4gPiA+ICsJCQkJICAg ICAgIGZhbHNlKTsKPiA+ID4gKwlpZiAoIWFycmF5KQo+ID4gPiArCQlnb3RvIGVycl9mZW5jZXNf cHV0Owo+ID4gPiArCj4gPiA+ICsJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKG9i aiwgJmFycmF5LT5iYXNlKTsKPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gKwo+ID4gPiArZXJyX2Zl bmNlc19wdXQ6Cj4gPiA+ICsJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCj4gPiA+ICsJCWRt YV9mZW5jZV9wdXQoZmVuY2VzW2ldKTsKPiA+ID4gKwlrZnJlZShmZW5jZXMpOwo+ID4gPiArCXJl dHVybiAtRU5PTUVNOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICAgLyoqCj4gPiA+ICAgICogYW1k Z3B1X2dlbV9tYXBfYXR0YWNoIC0gJmRtYV9idWZfb3BzLmF0dGFjaCBpbXBsZW1lbnRhdGlvbgo+ ID4gPiAgICAqIEBkbWFfYnVmOiBzaGFyZWQgRE1BIGJ1ZmZlcgo+ID4gPiBAQCAtMjE5LDE2ICsy NzEsMTYgQEAgc3RhdGljIGludCBhbWRncHVfZ2VtX21hcF9hdHRhY2goc3RydWN0IGRtYV9idWYg KmRtYV9idWYsCj4gPiA+ICAgCWlmIChhdHRhY2gtPmRldi0+ZHJpdmVyICE9IGFkZXYtPmRldi0+ ZHJpdmVyKSB7Cj4gPiA+ICAgCQkvKgo+ID4gPiAtCQkgKiBXYWl0IGZvciBhbGwgc2hhcmVkIGZl bmNlcyB0byBjb21wbGV0ZSBiZWZvcmUgd2Ugc3dpdGNoIHRvIGZ1dHVyZQo+ID4gPiAtCQkgKiB1 c2Ugb2YgZXhjbHVzaXZlIGZlbmNlIG9uIHRoaXMgcHJpbWUgc2hhcmVkIGJvLgo+ID4gPiArCQkg KiBXZSBvbmx5IGNyZWF0ZSBzaGFyZWQgZmVuY2VzIGZvciBpbnRlcm5hbCB1c2UsIGJ1dCBpbXBv cnRlcnMKPiA+ID4gKwkJICogb2YgdGhlIGRtYWJ1ZiByZWx5IG9uIGV4Y2x1c2l2ZSBmZW5jZXMg Zm9yIGltcGxpY2l0bHkKPiA+ID4gKwkJICogdHJhY2tpbmcgd3JpdGUgaGF6YXJkcy4gQXMgYW55 IG9mIHRoZSBjdXJyZW50IGZlbmNlcyBtYXkKPiA+ID4gKwkJICogY29ycmVzcG9uZCB0byBhIHdy aXRlLCB3ZSBuZWVkIHRvIGNvbnZlcnQgYWxsIGV4aXN0aW5nCj4gPiA+ICsJCSAqIGZlbmNlcyBv biB0aGUgcmVzZXZhdGlvbiBvYmplY3QgaW50byBhIHNpbmdsZSBleGNsdXNpdmUKPiA+ID4gKwkJ ICogZmVuY2UuCj4gPiA+ICAgCQkgKi8KPiA+ID4gLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF93 YWl0X3RpbWVvdXRfcmN1KGJvLT50Ym8ucmVzdiwKPiA+ID4gLQkJCQkJCQl0cnVlLCBmYWxzZSwK PiA+ID4gLQkJCQkJCQlNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gPiA+IC0JCWlmICh1bmxpa2Vs eShyIDwgMCkpIHsKPiA+ID4gLQkJCURSTV9ERUJVR19QUklNRSgiRmVuY2Ugd2FpdCBmYWlsZWQ6 ICVsaVxuIiwgcik7Cj4gPiA+ICsJCXIgPSBfX3Jlc2VydmF0aW9uX29iamVjdF9tYWtlX2V4Y2x1 c2l2ZShiby0+dGJvLnJlc3YpOwo+ID4gPiArCQlpZiAocikKPiA+ID4gICAJCQlnb3RvIGVycm9y X3VucmVzZXJ2ZTsKPiA+ID4gLQkJfQo+ID4gPiAgIAl9Cj4gPiA+ICAgCS8qIHBpbiBidWZmZXIg aW50byBHVFQgKi8KPiA+IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IGRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCgotLSAK RGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDov L2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==