From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kuehling, Felix" Subject: Re: [PATCH v2 4/4] drm/amdkfd: Check against device cgroup Date: Fri, 17 May 2019 20:12:17 +0000 Message-ID: References: <20190517161435.14121-1-Harish.Kasiviswanathan@amd.com> <20190517161435.14121-5-Harish.Kasiviswanathan@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190517161435.14121-5-Harish.Kasiviswanathan-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: <7044F63F8C5B9C4D92268040E07E90E1-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> 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: "Kasiviswanathan, Harish" , "cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" UGF0Y2hlcyAxLDIsNCB3aWxsIGJlIHN1Ym1pdHRlZCB0aHJvdWdoIGFtZC1zdGFnaW5nLWRybS1u ZXh0LiBQYXRjaCAzIA0KZ29lcyB0aHJvdWdoIHRoZSBjZ3JvdXAgdHJlZS4gUGF0Y2ggNCBkZXBl bmRzIG9uIHBhdGNoIDMuIFNvIHN1Ym1pdHRpbmcgDQpwYXRjaCA0IHdpbGwgbmVlZCB0byB3YWl0 IHVudGlsIHdlIHJlYmFzZSBhbWQtc3RhZ2luZy1kcm0tbmV4dCBvbiBhIG5ldyANCmVub3VnaCBr ZXJuZWwgcmVsZWFzZSB0aGF0IGluY2x1ZGVzIHBhdGNoIDMuDQoNClBhdGNoIDEgYW5kIDIgY291 bGQgYmUgc3VibWl0dGVkIG5vdyBvciB3YWl0IGZvciBwYXRjaCAzIGFzIHdlbGwgc28gd2UgDQpz dWJtaXQgYWxsIG91ciBjZ3JvdXAgc3R1ZmYgaW4gYW1kZ3B1IGFuZCBLRkQgdG9nZXRoZXIuIEl0 IHByb2JhYmx5IA0KbWFrZXMgbW9zdCBzZW5zZSB0byB3YWl0IHNpbmNlIHVudXNlZCBjb2RlIHRl bmRzIHRvIHJvdC4NCg0KUGF0Y2hlcyAxLDIsNCBhcmUgYWxyZWFkeSByZXZpZXdlZCBieSBtZS4g RmVlbCBmcmVlIHRvIGFkZCBteSBBY2tlZC1ieSANCnRvIHBhdGNoIDMuDQoNClRoYW5rcywNCiDC oCBGZWxpeA0KDQpPbiAyMDE5LTA1LTE3IDEyOjE1IHAubS4sIEthc2l2aXN3YW5hdGhhbiwgSGFy aXNoIHdyb3RlOg0KPiBbQ0FVVElPTjogRXh0ZXJuYWwgRW1haWxdDQo+DQo+IFBhcnRpY2lwYXRl IGluIGRldmljZSBjZ3JvdXAuIEFsbCBrZmQgZGV2aWNlcyBhcmUgZXhwb3NlZCB2aWEgL2Rldi9r ZmQuDQo+IFNvIHVzZSAvZGV2L2RyaS9yZW5kZXJOIG5vZGUuDQo+DQo+IEJlZm9yZSBleHBvc2lu ZyB0aGUgZGV2aWNlIHRvIGEgdGFzayBjaGVjayBpZiBpdCBoYXMgcGVybWlzc2lvbiB0bw0KPiBh Y2Nlc3MgaXQuIElmIHRoZSB0YXNrIChiYXNlZCBvbiBpdHMgY2dyb3VwKSBjYW4gYWNjZXNzIC9k ZXYvZHJpL3JlbmRlck4NCj4gdGhlbiBleHBvc2UgdGhlIGRldmljZSB2aWEga2ZkIG5vZGUuDQo+ DQo+IElmIHRoZSB0YXNrIGNhbm5vdCBhY2Nlc3MgL2Rldi9kcmkvcmVuZGVyTiB0aGVuIHByb2Nl c3MgZGV2aWNlIGRhdGENCj4gKHBkZCkgaXMgbm90IGNyZWF0ZWQuIFRoaXMgd2lsbCBlbnN1cmUg dGhhdCB0YXNrIGNhbm5vdCB1c2UgdGhlIGRldmljZS4NCj4NCj4gSW4gc3lzZnMgdG9wb2xvZ3ks IGFsbCBkZXZpY2Ugbm9kZXMgYXJlIHZpc2libGUgaXJyZXNwZWN0aXZlIG9mIHRoZSB0YXNrDQo+ IGNncm91cC4gVGhlIHN5c2ZzIG5vZGUgZGlyZWN0b3JpZXMgYXJlIGNyZWF0ZWQgYXQgZHJpdmVy IGxvYWQgdGltZSBhbmQNCj4gY2Fubm90IGJlIGNoYW5nZWQgZHluYW1pY2FsbHkuIEhvd2V2ZXIs IGFjY2VzcyB0byBpbmZvcm1hdGlvbiBpbnNpZGUNCj4gbm9kZXMgaXMgY29udHJvbGxlZCBiYXNl ZCBvbiB0aGUgdGFzaydzIGNncm91cCBwZXJtaXNzaW9ucy4NCj4NCj4gQ2hhbmdlLUlkOiBJYTdl ZDQwOTMwNTQyMTExYWM5Zjc0YjA3MDZjM2ZhNWViZjE4NmIzYw0KPiBTaWduZWQtb2ZmLWJ5OiBI YXJpc2ggS2FzaXZpc3dhbmF0aGFuIDxIYXJpc2guS2FzaXZpc3dhbmF0aGFuQGFtZC5jb20+DQo+ IFJldmlld2VkLWJ5OiBGZWxpeCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4NCj4g LS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ZsYXRfbWVtb3J5LmMgfCAg OSArKysrKysrLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oICAg ICAgICB8IDE3ICsrKysrKysrKysrKysrKysrDQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX3RvcG9sb2d5LmMgICAgfCAxMiArKysrKysrKysrKysNCj4gICAzIGZpbGVzIGNoYW5n ZWQsIDM2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+DQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZmxhdF9tZW1vcnkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9mbGF0X21lbW9yeS5jDQo+IGluZGV4IDIyYThlODhiNmE2Ny4u ODVjODgzODMyM2EyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9r ZmRfZmxhdF9tZW1vcnkuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf ZmxhdF9tZW1vcnkuYw0KPiBAQCAtMzY5LDggKzM2OSwxMyBAQCBpbnQga2ZkX2luaXRfYXBlcnR1 cmVzKHN0cnVjdCBrZmRfcHJvY2VzcyAqcHJvY2VzcykNCj4NCj4gICAgICAgICAgLypJdGVyYXRp bmcgb3ZlciBhbGwgZGV2aWNlcyovDQo+ICAgICAgICAgIHdoaWxlIChrZmRfdG9wb2xvZ3lfZW51 bV9rZmRfZGV2aWNlcyhpZCwgJmRldikgPT0gMCkgew0KPiAtICAgICAgICAgICAgICAgaWYgKCFk ZXYpIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWQrKzsgLyogU2tpcCBub24gR1BVIGRl dmljZXMgKi8NCj4gKyAgICAgICAgICAgICAgIGlmICghZGV2IHx8IGtmZF9kZXZjZ3JvdXBfY2hl Y2tfcGVybWlzc2lvbihkZXYpKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIFNraXAg bm9uIEdQVSBkZXZpY2VzIGFuZCBkZXZpY2VzIHRvIHdoaWNoIHRoZQ0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgKiBjdXJyZW50IHByb2Nlc3MgaGF2ZSBubyBhY2Nlc3MgdG8uIEFjY2VzcyBj YW4gYmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogbGltaXRlZCBieSBwbGFjaW5nIHRo ZSBwcm9jZXNzIGluIGEgc3BlY2lmaWMNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogY2dy b3VwIGhpZXJhcmNoeS4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlkKys7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsNCj4gICAgICAgICAgICAgICAgICB9DQo+DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X3ByaXYuaA0KPiBpbmRleCBjYmJhMDA0NzA1MmQuLjg1ZjU1MDIyMDE0YSAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaA0KPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oDQo+IEBAIC0zNSw2ICszNSw4IEBADQo+ICAg I2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+ DQo+ICAgI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9kZXZpY2Vf Y2dyb3VwLmg+DQo+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4NCj4gICAjaW5jbHVkZSA8a2dkX2tm ZF9pbnRlcmZhY2UuaD4NCj4NCj4gICAjaW5jbHVkZSAiYW1kX3NoYXJlZC5oIg0KPiBAQCAtOTg5 LDYgKzk5MSwyMSBAQCBib29sIGtmZF9pc19sb2NrZWQodm9pZCk7DQo+ICAgdm9pZCBrZmRfaW5j X2NvbXB1dGVfYWN0aXZlKHN0cnVjdCBrZmRfZGV2ICpkZXYpOw0KPiAgIHZvaWQga2ZkX2RlY19j b21wdXRlX2FjdGl2ZShzdHJ1Y3Qga2ZkX2RldiAqZGV2KTsNCj4NCj4gKy8qIENncm91cCBTdXBw b3J0ICovDQo+ICsvKiBDaGVjayB3aXRoIGRldmljZSBjZ3JvdXAgaWYgQGtmZCBkZXZpY2UgaXMg YWNjZXNzaWJsZSAqLw0KPiArc3RhdGljIGlubGluZSBpbnQga2ZkX2RldmNncm91cF9jaGVja19w ZXJtaXNzaW9uKHN0cnVjdCBrZmRfZGV2ICprZmQpDQo+ICt7DQo+ICsjaWYgZGVmaW5lZChDT05G SUdfQ0dST1VQX0RFVklDRSkNCj4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGtm ZC0+ZGRldjsNCj4gKw0KPiArICAgICAgIHJldHVybiBkZXZjZ3JvdXBfY2hlY2tfcGVybWlzc2lv bihERVZDR19ERVZfQ0hBUiwgZGRldi0+ZHJpdmVyLT5tYWpvciwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRldi0+cmVuZGVyLT5pbmRleCwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWQ0dfQUNDX1dSSVRFIHwgREVW Q0dfQUNDX1JFQUQpOw0KPiArI2Vsc2UNCj4gKyAgICAgICByZXR1cm4gMDsNCj4gKyNlbmRpZg0K PiArfQ0KPiArDQo+ICAgLyogRGVidWdmcyAqLw0KPiAgICNpZiBkZWZpbmVkKENPTkZJR19ERUJV R19GUykNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90 b3BvbG9neS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3RvcG9sb2d5LmMNCj4g aW5kZXggNjRkNjY3YWUwZDM2Li5hM2ExNGE3NmVjZTEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5jDQo+IEBAIC0yNjksNiArMjY5LDggQEAgc3RhdGlj IHNzaXplX3QgaW9saW5rX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHIsDQo+ICAgICAgICAgIGJ1ZmZlclswXSA9IDA7DQo+DQo+ICAgICAgICAgIGlvbGlu ayA9IGNvbnRhaW5lcl9vZihhdHRyLCBzdHJ1Y3Qga2ZkX2lvbGlua19wcm9wZXJ0aWVzLCBhdHRy KTsNCj4gKyAgICAgICBpZiAoaW9saW5rLT5ncHUgJiYga2ZkX2RldmNncm91cF9jaGVja19wZXJt aXNzaW9uKGlvbGluay0+Z3B1KSkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRVBFUk07DQo+ ICAgICAgICAgIHN5c2ZzX3Nob3dfMzJiaXRfcHJvcChidWZmZXIsICJ0eXBlIiwgaW9saW5rLT5p b2xpbmtfdHlwZSk7DQo+ICAgICAgICAgIHN5c2ZzX3Nob3dfMzJiaXRfcHJvcChidWZmZXIsICJ2 ZXJzaW9uX21ham9yIiwgaW9saW5rLT52ZXJfbWFqKTsNCj4gICAgICAgICAgc3lzZnNfc2hvd18z MmJpdF9wcm9wKGJ1ZmZlciwgInZlcnNpb25fbWlub3IiLCBpb2xpbmstPnZlcl9taW4pOw0KPiBA QCAtMzA1LDYgKzMwNyw4IEBAIHN0YXRpYyBzc2l6ZV90IG1lbV9zaG93KHN0cnVjdCBrb2JqZWN0 ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLA0KPiAgICAgICAgICBidWZmZXJbMF0gPSAw Ow0KPg0KPiAgICAgICAgICBtZW0gPSBjb250YWluZXJfb2YoYXR0ciwgc3RydWN0IGtmZF9tZW1f cHJvcGVydGllcywgYXR0cik7DQo+ICsgICAgICAgaWYgKG1lbS0+Z3B1ICYmIGtmZF9kZXZjZ3Jv dXBfY2hlY2tfcGVybWlzc2lvbihtZW0tPmdwdSkpDQo+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVQRVJNOw0KPiAgICAgICAgICBzeXNmc19zaG93XzMyYml0X3Byb3AoYnVmZmVyLCAiaGVhcF90 eXBlIiwgbWVtLT5oZWFwX3R5cGUpOw0KPiAgICAgICAgICBzeXNmc19zaG93XzY0Yml0X3Byb3Ao YnVmZmVyLCAic2l6ZV9pbl9ieXRlcyIsIG1lbS0+c2l6ZV9pbl9ieXRlcyk7DQo+ICAgICAgICAg IHN5c2ZzX3Nob3dfMzJiaXRfcHJvcChidWZmZXIsICJmbGFncyIsIG1lbS0+ZmxhZ3MpOw0KPiBA QCAtMzM0LDYgKzMzOCw4IEBAIHN0YXRpYyBzc2l6ZV90IGtmZF9jYWNoZV9zaG93KHN0cnVjdCBr b2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLA0KPiAgICAgICAgICBidWZmZXJb MF0gPSAwOw0KPg0KPiAgICAgICAgICBjYWNoZSA9IGNvbnRhaW5lcl9vZihhdHRyLCBzdHJ1Y3Qg a2ZkX2NhY2hlX3Byb3BlcnRpZXMsIGF0dHIpOw0KPiArICAgICAgIGlmIChjYWNoZS0+Z3B1ICYm IGtmZF9kZXZjZ3JvdXBfY2hlY2tfcGVybWlzc2lvbihjYWNoZS0+Z3B1KSkNCj4gKyAgICAgICAg ICAgICAgIHJldHVybiAtRVBFUk07DQo+ICAgICAgICAgIHN5c2ZzX3Nob3dfMzJiaXRfcHJvcChi dWZmZXIsICJwcm9jZXNzb3JfaWRfbG93IiwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgIGNh Y2hlLT5wcm9jZXNzb3JfaWRfbG93KTsNCj4gICAgICAgICAgc3lzZnNfc2hvd18zMmJpdF9wcm9w KGJ1ZmZlciwgImxldmVsIiwgY2FjaGUtPmNhY2hlX2xldmVsKTsNCj4gQEAgLTQxNiwxMiArNDIy LDE2IEBAIHN0YXRpYyBzc2l6ZV90IG5vZGVfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0ciwNCj4gICAgICAgICAgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAi Z3B1X2lkIikgPT0gMCkgew0KPiAgICAgICAgICAgICAgICAgIGRldiA9IGNvbnRhaW5lcl9vZihh dHRyLCBzdHJ1Y3Qga2ZkX3RvcG9sb2d5X2RldmljZSwNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXR0cl9ncHVpZCk7DQo+ICsgICAgICAgICAgICAgICBpZiAoZGV2LT5ncHUg JiYga2ZkX2RldmNncm91cF9jaGVja19wZXJtaXNzaW9uKGRldi0+Z3B1KSkNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsNCj4gICAgICAgICAgICAgICAgICByZXR1cm4g c3lzZnNfc2hvd18zMmJpdF92YWwoYnVmZmVyLCBkZXYtPmdwdV9pZCk7DQo+ICAgICAgICAgIH0N Cj4NCj4gICAgICAgICAgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAibmFtZSIpID09IDApIHsNCj4g ICAgICAgICAgICAgICAgICBkZXYgPSBjb250YWluZXJfb2YoYXR0ciwgc3RydWN0IGtmZF90b3Bv bG9neV9kZXZpY2UsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJfbmFt ZSk7DQo+ICsgICAgICAgICAgICAgICBpZiAoZGV2LT5ncHUgJiYga2ZkX2RldmNncm91cF9jaGVj a19wZXJtaXNzaW9uKGRldi0+Z3B1KSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IC1FUEVSTTsNCj4gICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgS0ZEX1RPUE9MT0dZ X1BVQkxJQ19OQU1FX1NJWkU7IGkrKykgew0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgcHVi bGljX25hbWVbaV0gPQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjaGFyKWRldi0+bm9kZV9wcm9wcy5tYXJrZXRpbmdfbmFtZVtpXTsNCj4gQEAgLTQzNCw2ICs0 NDQsOCBAQCBzdGF0aWMgc3NpemVfdCBub2RlX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosIHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHIsDQo+DQo+ICAgICAgICAgIGRldiA9IGNvbnRhaW5lcl9vZihh dHRyLCBzdHJ1Y3Qga2ZkX3RvcG9sb2d5X2RldmljZSwNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgIGF0dHJfcHJvcHMpOw0KPiArICAgICAgIGlmIChkZXYtPmdwdSAmJiBrZmRfZGV2Y2dyb3Vw X2NoZWNrX3Blcm1pc3Npb24oZGV2LT5ncHUpKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIC1F UEVSTTsNCj4gICAgICAgICAgc3lzZnNfc2hvd18zMmJpdF9wcm9wKGJ1ZmZlciwgImNwdV9jb3Jl c19jb3VudCIsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPm5vZGVfcHJvcHMuY3B1 X2NvcmVzX2NvdW50KTsNCj4gICAgICAgICAgc3lzZnNfc2hvd18zMmJpdF9wcm9wKGJ1ZmZlciwg InNpbWRfY291bnQiLA0KPiAtLQ0KPiAyLjE3LjENCj4NCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QNCj4gYW1k LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2FtZC1nZng=