From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 10/13] drm/i915/bdw: collect semaphore error state Date: Tue, 29 Apr 2014 14:43:43 -0700 Message-ID: <20140429214343.GA14824@bwidawsk.net> References: <1392877166-9195-1-git-send-email-benjamin.widawsky@intel.com> <1392877166-9195-10-git-send-email-benjamin.widawsky@intel.com> <20140224130804.GQ3852@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 37AF56E0F3 for ; Tue, 29 Apr 2014 14:43:56 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20140224130804.GQ3852@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Intel GFX , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBGZWIgMjQsIDIwMTQgYXQgMDM6MDg6MDRQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgRmViIDE5LCAyMDE0IGF0IDEwOjE5OjIzUE0gLTA4MDAsIEJlbiBX aWRhd3NreSB3cm90ZToKPiA+IFNpbmNlIHRoZSBzZW1hcGhvcmUgaW5mb3JtYXRpb24gaXMgaW4g YW4gb2JqZWN0LCBqdXN0IGR1bXAgaXQsIGFuZCBsZXQKPiA+IHRoZSB1c2VyIHBhcnNlIGl0IGxh dGVyLgo+ID4gCj4gPiBOT1RFOiBUaGUgcGFnZSBiZWluZyB1c2VkIGZvciB0aGUgc2VtYXBob3Jl cyBhcmUgaW5jb2hlcmVudCB3aXRoIHRoZQo+ID4gQ1BVLiBObyBtYXR0ZXIgd2hhdCBJIGRvLCBJ IGNhbm5vdCBmaWd1cmUgb3V0IGEgd2F5IHRvIHJlYWQgYW55dGhpbmcgYnV0Cj4gPiAwcy4gTm90 ZSB0aGF0IHRoZSBzZW1hcGhvcmUgd2FpdHMgYXJlIGluZGVlZCB3b3JraW5nLgo+ID4gCj4gPiB2 MjogRG9uJ3QgcHJpbnQgc2lnbmFsLCBhbmQgd2FpdCAodGhleSBzaG91bGQgYmUgdGhlIHNhbWUp LiBJbnN0ZWFkLAo+ID4gcHJpbnQgc3luY19zZXFubyAoQ2hyaXMpCj4gPiAKPiA+IHYzOiBGcmVl IHRoZSBzZW1hcGhvcmUgZXJyb3Igb2JqZWN0IChDaHJpcykKPiA+IAo+ID4gdjQ6IEZpeCBzZW1h cGhvcmUgb2Zmc2V0IGNhbGN1bGF0aW9uIGR1cmluZyBlcnJvciBzdGF0ZSBjb2xsZWN0aW9uCj4g PiAoVmlsbGUpCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRh d3NrLm5ldD4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICAgICB8ICAxICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAg fCA1MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAxMiArKysrLS0tLQo+ID4gIDMgZmlsZXMgY2hh bmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggMDI4Y2U1YS4uOWI4Njg3NCAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC0zMjIsNiArMzIyLDcgQEAgc3RydWN0IGRybV9pOTE1 X2Vycm9yX3N0YXRlIHsKPiA+ICAJdTY0IGZlbmNlW0k5MTVfTUFYX05VTV9GRU5DRVNdOwo+ID4g IAlzdHJ1Y3QgaW50ZWxfb3ZlcmxheV9lcnJvcl9zdGF0ZSAqb3ZlcmxheTsKPiA+ICAJc3RydWN0 IGludGVsX2Rpc3BsYXlfZXJyb3Jfc3RhdGUgKmRpc3BsYXk7Cj4gPiArCXN0cnVjdCBkcm1faTkx NV9lcnJvcl9vYmplY3QgKnNlbWFwaG9yZV9vYmo7Cj4gPiAgCj4gPiAgCXN0cnVjdCBkcm1faTkx NV9lcnJvcl9yaW5nIHsKPiA+ICAJCWJvb2wgdmFsaWQ7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3B1X2Vycm9yLmMKPiA+IGluZGV4IDJiNjQ0OTMuLjI1ZmMyZWEgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gPiBAQCAtMzEwLDYgKzMxMCw3IEBAIGlu dCBpOTE1X2Vycm9yX3N0YXRlX3RvX3N0cihzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVm ICptLAo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZXJyb3JfcHJpdi0+ZGV2Owo+ID4g IAlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICAJ c3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlICplcnJvciA9IGVycm9yX3ByaXYtPmVycm9yOwo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfb2JqZWN0ICpvYmo7Cj4gPiAgCWludCBpLCBqLCBw YWdlLCBvZmZzZXQsIGVsdDsKPiA+ICAKPiA+ICAJaWYgKCFlcnJvcikgewo+ID4gQEAgLTM2MCw4 ICszNjEsNiBAQCBpbnQgaTkxNV9lcnJvcl9zdGF0ZV90b19zdHIoc3RydWN0IGRybV9pOTE1X2Vy cm9yX3N0YXRlX2J1ZiAqbSwKPiA+ICAJCQkJICAgIGVycm9yLT5waW5uZWRfYm9fY291bnRbMF0p Owo+ID4gIAo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShlcnJvci0+cmluZyk7IGkr Kykgewo+ID4gLQkJc3RydWN0IGRybV9pOTE1X2Vycm9yX29iamVjdCAqb2JqOwo+ID4gLQo+ID4g IAkJaWYgKChvYmogPSBlcnJvci0+cmluZ1tpXS5iYXRjaGJ1ZmZlcikpIHsKPiA+ICAJCQllcnJf cHJpbnRmKG0sICIlcyAtLS0gZ3R0X29mZnNldCA9IDB4JTA4eFxuIiwKPiA+ICAJCQkJICAgZGV2 X3ByaXYtPnJpbmdbaV0ubmFtZSwKPiA+IEBAIC00MzYsNiArNDM1LDE5IEBAIGludCBpOTE1X2Vy cm9yX3N0YXRlX3RvX3N0cihzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAo+ID4g IAkJfQo+ID4gIAl9Cj4gPiAgCj4gPiArCW9iaiA9IGVycm9yLT5zZW1hcGhvcmVfb2JqOwo+ID4g KwlpZiAob2JqKSB7Cj4gCj4gU3RpbGwgd29uJ3QgcGFzcyB1bmRlciBDaHJpcydzIGNvbnNpdGVu Y3kgcmFkYXIuCj4gCj4gPiArCQllcnJfcHJpbnRmKG0sICJTZW1hcGhvcmUgcGFnZSA9IDB4JTA4 eFxuIiwgb2JqLT5ndHRfb2Zmc2V0KTsKPiA+ICsJCWZvciAoZWx0ID0gMDsgZWx0IDwgUEFHRV9T SVpFLzE2OyBlbHQgKz0gNCkgewo+ID4gKwkJCWVycl9wcmludGYobSwgIlslMDR4XSAlMDh4ICUw OHggJTA4eCAlMDh4XG4iLAo+ID4gKwkJCQkgICBlbHQgKiA0LAo+ID4gKwkJCQkgICBvYmotPnBh Z2VzWzBdW2VsdF0sCj4gPiArCQkJCSAgIG9iai0+cGFnZXNbMF1bZWx0KzFdLAo+ID4gKwkJCQkg ICBvYmotPnBhZ2VzWzBdW2VsdCsyXSwKPiA+ICsJCQkJICAgb2JqLT5wYWdlc1swXVtlbHQrM10p Owo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiAgCWlmIChlcnJvci0+b3ZlcmxheSkKPiA+ICAJ CWludGVsX292ZXJsYXlfcHJpbnRfZXJyb3Jfc3RhdGUobSwgZXJyb3ItPm92ZXJsYXkpOwo+ID4g IAo+ID4gQEAgLTUwNiw2ICs1MTgsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2Vycm9yX3N0YXRlX2Zy ZWUoc3RydWN0IGtyZWYgKmVycm9yX3JlZikKPiA+ICAJCWtmcmVlKGVycm9yLT5yaW5nW2ldLnJl cXVlc3RzKTsKPiA+ICAJfQo+ID4gIAo+ID4gKwlpOTE1X2Vycm9yX29iamVjdF9mcmVlKGVycm9y LT5zZW1hcGhvcmVfb2JqKTsKPiA+ICAJa2ZyZWUoZXJyb3ItPmFjdGl2ZV9ibyk7Cj4gPiAgCWtm cmVlKGVycm9yLT5vdmVybGF5KTsKPiA+ICAJa2ZyZWUoZXJyb3ItPmRpc3BsYXkpOwo+ID4gQEAg LTc5Nyw2ICs4MTAsMzMgQEAgaTkxNV9lcnJvcl9maXJzdF9iYXRjaGJ1ZmZlcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCXJldHVybiBOVUxMOwo+ID4gIH0KPiA+ICAK PiA+ICtzdGF0aWMgdm9pZCBnZW44X3JlY29yZF9zZW1hcGhvcmVfc3RhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gKwkJCQkJc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0 YXRlICplcnJvciwKPiA+ICsJCQkJCXN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZywKPiA+ ICsJCQkJCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9yaW5nICplcmluZykKPiA+ICt7Cj4gPiArCXN0 cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqdXNlbGVzczsKPiA+ICsJaW50IGk7Cj4gPiArCj4gPiAr CWlmICghaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXZfcHJpdi0+ZGV2KSkKPiA+ICsJCXJl dHVybjsKPiA+ICsKPiA+ICsJaWYgKCFlcnJvci0+c2VtYXBob3JlX29iaikKPiA+ICsJCWVycm9y LT5zZW1hcGhvcmVfb2JqID0KPiA+ICsJCQlpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoZGV2X3By aXYsCj4gPiArCQkJCQkJIGRldl9wcml2LT5zZW1hcGhvcmVfb2JqLAo+ID4gKwkJCQkJCSAmZGV2 X3ByaXYtPmd0dC5iYXNlKTsKPiA+ICsKPiA+ICsJZm9yX2VhY2hfcmluZyh1c2VsZXNzLCBkZXZf cHJpdiwgaSkgewo+ID4gKwkJdTE2IHNpZ25hbF9vZmZzZXQgPQo+ID4gKwkJCShHRU44X1NJR05B TF9PRkZTRVQocmluZywgaSkgLyA0KSAmIFBBR0VfTUFTSzsKPiAKPiAoLi4uICYgUEFHRV9NQVNL KSAvIDQ7Cj4gCgpOaWNlIGNhdGNoLgoKPiA+ICsJCXUzMiAqdG1wID0gZXJyb3ItPnNlbWFwaG9y ZV9vYmotPnBhZ2VzWzBdOwo+ID4gKwo+ID4gKwkJZXJpbmctPnNlbWFwaG9yZV9tYm94ZXNbaV0g PSB0bXBbc2lnbmFsX29mZnNldF07Cj4gPiArCQllcmluZy0+c2VtYXBob3JlX3NlcW5vW2ldID0g cmluZy0+c2VtYXBob3JlLnN5bmNfc2Vxbm9baV07Cj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiAg c3RhdGljIHZvaWQgZ2VuNl9yZWNvcmRfc2VtYXBob3JlX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCQkJCXN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmlu ZywKPiA+ICAJCQkJCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9yaW5nICplcmluZykKPiA+IEBAIC04 MTQsNiArODU0LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9yZWNvcmRfc2VtYXBob3JlX3N0YXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGlj IHZvaWQgaTkxNV9yZWNvcmRfcmluZ19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4g KwkJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGUgKmVycm9yLAo+ID4gIAkJCQkgICBz dHJ1Y3QgaW50ZWxfcmluZ19idWZmZXIgKnJpbmcsCj4gPiAgCQkJCSAgIHN0cnVjdCBkcm1faTkx NV9lcnJvcl9yaW5nICplcmluZykKPiA+ICB7Cj4gPiBAQCAtODIyLDcgKzg2MywxMCBAQCBzdGF0 aWMgdm9pZCBpOTE1X3JlY29yZF9yaW5nX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g PiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7Cj4gPiAgCQllcmluZy0+cmNfcHNt aSA9IEk5MTVfUkVBRChyaW5nLT5tbWlvX2Jhc2UgKyAweDUwKTsKPiA+ICAJCWVyaW5nLT5mYXVs dF9yZWcgPSBJOTE1X1JFQUQoUklOR19GQVVMVF9SRUcocmluZykpOwo+ID4gLQkJZ2VuNl9yZWNv cmRfc2VtYXBob3JlX3N0YXRlKGRldl9wcml2LCByaW5nLCBlcmluZyk7Cj4gPiArCQlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkKPiA+ICsJCQlnZW44X3JlY29yZF9zZW1hcGhvcmVfc3Rh dGUoZGV2X3ByaXYsIGVycm9yLCByaW5nLCBlcmluZyk7Cj4gPiArCQllbHNlCj4gPiArCQkJZ2Vu Nl9yZWNvcmRfc2VtYXBob3JlX3N0YXRlKGRldl9wcml2LCByaW5nLCBlcmluZyk7Cj4gPiAgCX0K PiA+ICAKPiA+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQpIHsKPiA+IEBAIC05NDgs NyArOTkyLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVjb3JkX3JpbmdzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gPiAgCj4gPiAgCQllcnJvci0+cmluZ1tpXS52YWxpZCA9IHRydWU7Cj4g PiAgCj4gPiAtCQlpOTE1X3JlY29yZF9yaW5nX3N0YXRlKGRldiwgcmluZywgJmVycm9yLT5yaW5n W2ldKTsKPiA+ICsJCWk5MTVfcmVjb3JkX3Jpbmdfc3RhdGUoZGV2LCBlcnJvciwgcmluZywgJmVy cm9yLT5yaW5nW2ldKTsKPiA+ICAKPiA+ICAJCWVycm9yLT5yaW5nW2ldLmJhdGNoYnVmZmVyID0K PiA+ICAJCQlpOTE1X2Vycm9yX2ZpcnN0X2JhdGNoYnVmZmVyKGRldl9wcml2LCByaW5nKTsKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiA+IGluZGV4IDVkNTZjOTUu LjAxYWFkNTQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aAo+ID4gQEAgLTM3LDkgKzM3LDkgQEAgc3RydWN0ICBpbnRlbF9od19zdGF0dXNfcGFnZSB7Cj4g PiAgICogZG8gdGhlIHdyaXRlcywgYW5kIHRoYXQgbXVzdCBoYXZlIHF3IGFsaWduZWQgb2Zmc2V0 cywgc2ltcGx5IHByZXRlbmQgaXQncyA4Yi4KPiA+ICAgKi8KPiA+ICAjZGVmaW5lIGk5MTVfc2Vt YXBob3JlX3NlcW5vX3NpemUgc2l6ZW9mKHVpbnQ2NF90KQo+ID4gLSNkZWZpbmUgR0VOOF9TSUdO QUxfT0ZGU0VUKHRvKSBcCj4gPiArI2RlZmluZSBHRU44X1NJR05BTF9PRkZTRVQoX19yaW5nLCB0 bykgXAo+ID4gIAkoaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGRldl9wcml2LT5zZW1hcGhvcmVf b2JqKSArIFwKPiA+IC0JKHJpbmctPmlkICogSTkxNV9OVU1fUklOR1MgKiBpOTE1X3NlbWFwaG9y ZV9zZXFub19zaXplKSArIFwKPiA+ICsJKChfX3JpbmcpLT5pZCAqIEk5MTVfTlVNX1JJTkdTICog aTkxNV9zZW1hcGhvcmVfc2Vxbm9fc2l6ZSkgKyBcCj4gPiAgCShpOTE1X3NlbWFwaG9yZV9zZXFu b19zaXplICogKHRvKSkpCj4gPiAgCj4gPiAgI2RlZmluZSBHRU44X1dBSVRfT0ZGU0VUKF9fcmlu ZywgZnJvbSkgXAo+ID4gQEAgLTUxLDEwICs1MSwxMCBAQCBzdHJ1Y3QgIGludGVsX2h3X3N0YXR1 c19wYWdlIHsKPiA+ICAJaWYgKCFkZXZfcHJpdi0+c2VtYXBob3JlX29iaikgeyBcCj4gPiAgCQli cmVhazsgXAo+ID4gIAl9IFwKPiA+IC0JcmluZy0+c2VtYXBob3JlLnNpZ25hbF9nZ3R0W1JDU10g PSBHRU44X1NJR05BTF9PRkZTRVQoUkNTKTsgXAo+ID4gLQlyaW5nLT5zZW1hcGhvcmUuc2lnbmFs X2dndHRbVkNTXSA9IEdFTjhfU0lHTkFMX09GRlNFVChWQ1MpOyBcCj4gPiAtCXJpbmctPnNlbWFw aG9yZS5zaWduYWxfZ2d0dFtCQ1NdID0gR0VOOF9TSUdOQUxfT0ZGU0VUKEJDUyk7IFwKPiA+IC0J cmluZy0+c2VtYXBob3JlLnNpZ25hbF9nZ3R0W1ZFQ1NdID0gR0VOOF9TSUdOQUxfT0ZGU0VUKFZF Q1MpOyBcCj4gPiArCXJpbmctPnNlbWFwaG9yZS5zaWduYWxfZ2d0dFtSQ1NdID0gR0VOOF9TSUdO QUxfT0ZGU0VUKHJpbmcsIFJDUyk7IFwKPiA+ICsJcmluZy0+c2VtYXBob3JlLnNpZ25hbF9nZ3R0 W1ZDU10gPSBHRU44X1NJR05BTF9PRkZTRVQocmluZywgVkNTKTsgXAo+ID4gKwlyaW5nLT5zZW1h cGhvcmUuc2lnbmFsX2dndHRbQkNTXSA9IEdFTjhfU0lHTkFMX09GRlNFVChyaW5nLCBCQ1MpOyBc Cj4gPiArCXJpbmctPnNlbWFwaG9yZS5zaWduYWxfZ2d0dFtWRUNTXSA9IEdFTjhfU0lHTkFMX09G RlNFVChyaW5nLCBWRUNTKTsgXAo+ID4gIAlyaW5nLT5zZW1hcGhvcmUuc2lnbmFsX2dndHRbcmlu Zy0+aWRdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsgXAo+ID4gIAl9IHdoaWxlKDApCj4g PiAgCj4gPiAtLSAKPiA+IDEuOS4wCj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwg T1RDCgotLSAKQmVuIFdpZGF3c2t5LCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRl cgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=