From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/7] drm/i915: Disable preemption and sleeping while using the punit sideband Date: Fri, 12 Jan 2018 12:02:06 +0200 Message-ID: <876087jsyp.fsf@gaia.fi.intel.com> References: <20180110125511.11127-1-chris@chris-wilson.co.uk> <20180110125511.11127-2-chris@chris-wilson.co.uk> <20180111201045.GZ10981@intel.com> <151570402215.23681.2997454528847692944@mail.alporthouse.com> <20180111211757.GA10981@intel.com> <55f551e0-e8b0-a1b9-aa58-8ceffcd5676d@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 059AA6E508 for ; Fri, 12 Jan 2018 13:26:04 +0000 (UTC) In-Reply-To: <55f551e0-e8b0-a1b9-aa58-8ceffcd5676d@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Hans de Goede , Ville =?utf-8?B?U3lyasOkbMOk?= , Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4gd3JpdGVzOgoKPiBIaSwKPgo+IE9u IDExLTAxLTE4IDIyOjQyLCBIYW5zIGRlIEdvZWRlIHdyb3RlOgo+PiBIaSwKPj4gCj4+IE9uIDEx LTAxLTE4IDIyOjE3LCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+PiBPbiBUaHUsIEphbiAxMSwg MjAxOCBhdCAwODo1Mzo0MlBNICswMDAwLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+Pj4gUXVvdGlu ZyBWaWxsZSBTeXJqw6Rsw6QgKDIwMTgtMDEtMTEgMjA6MTA6NDUpCj4+Pj4+IE9uIFdlZCwgSmFu IDEwLCAyMDE4IGF0IDEyOjU1OjA1UE0gKzAwMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPj4+Pj4+ IFdoaWxlIHdlIHRhbGsgdG8gdGhlIHB1bml0IG92ZXIgaXRzIHNpZGViYW5kLCB3ZSBuZWVkIHRv IHByZXZlbnQgdGhlIGNwdQo+Pj4+Pj4gZnJvbSBzbGVlcGluZyBpbiBvcmRlciB0byBwcmV2ZW50 IGEgcG90ZW50aWFsIG1hY2hpbmUgaGFuZy4KPj4+Pj4+Cj4+Pj4+PiBOb3RlIHRoYXQgYnkgaXRz ZWxmLCBpdCBhcHBlYXJzIHRoYXQgcG1fcW9zX3VwZGF0ZV9yZXF1ZXN0ICh2aWEKPj4+Pj4+IGlu dGVsX2lkbGUpIGRvZXNuJ3QgcHJvdmlkZSBhIHN1ZmZpY2llbnQgYmFycmllciB0byBlbnN1cmUg dGhhdCBhbGwgY29yZQo+Pj4+Pj4gYXJlIGluZGVlZCBhd2FrZSAob3V0IG9mIENzdGF0ZSkgYW5k IHRoYXQgdGhlIHBhY2thZ2UgaXMgYXdha2UuIFRvIGRvIHNvLAo+Pj4+Pj4gd2UgbmVlZCB0byBz dXBwbGVtZW50IHRoZSBwbV9xb3Mgd2l0aCBhIG1hbnVhbCBwaW5nIG9uX2VhY2hfY3B1Lgo+Pj4+ Pj4KPj4+Pj4+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcu Y2dpP2lkPTEwOTA1MQo+Pj4+Pj4gUmVmZXJlbmNlczogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9w Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNjU3Cj4+Pj4+PiBSZWZlcmVuY2VzOiBodHRwczovL2J1 Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTI1NQo+Pj4+Pj4gU2lnbmVkLW9m Zi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+Pj4+PiBDYzog TWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Cj4+Pj4+PiBDYzog SGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KPj4+Pj4+IC0tLQo+Pj4+Pj4gwqAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuY8KgwqDCoMKgwqDCoCB8wqAgNiArKysrCj4+ Pj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDCoMKgIHzCoCAx ICsKPj4+Pj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5kLmMgfCA2MSAr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+Pj4+Pj4gwqAgMyBmaWxlcyBjaGFu Z2VkLCA1MCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKPj4+Pj4+Cj4+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMKPj4+Pj4+IGluZGV4IDZjOGRhOWQyMGMzMy4uZDRiOTBjYzAxMzBi IDEwMDY0NAo+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+Pj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+Pj4+Pj4gQEAgLTkwMiw2 ICs5MDIsOSBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfZWFybHkoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+Pj4+Pj4gwqDCoMKgwqDCoMKgIHNwaW5fbG9ja19pbml0 KCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOwo+Pj4+Pj4gwqDCoMKgwqDCoMKgIG11dGV4X2luaXQo JmRldl9wcml2LT5zYl9sb2NrKTsKPj4+Pj4+ICvCoMKgwqDCoCBwbV9xb3NfYWRkX3JlcXVlc3Qo JmRldl9wcml2LT5zYl9xb3MsCj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBQTV9RT1NfQ1BVX0RNQV9MQVRFTkNZLCBQTV9RT1NfREVGQVVMVF9W QUxVRSk7Cj4+Pj4+PiArCj4+Pj4+PiDCoMKgwqDCoMKgwqAgbXV0ZXhfaW5pdCgmZGV2X3ByaXYt Pm1vZGVzZXRfcmVzdG9yZV9sb2NrKTsKPj4+Pj4+IMKgwqDCoMKgwqDCoCBtdXRleF9pbml0KCZk ZXZfcHJpdi0+YXZfbXV0ZXgpOwo+Pj4+Pj4gwqDCoMKgwqDCoMKgIG11dGV4X2luaXQoJmRldl9w cml2LT53bS53bV9tdXRleCk7Cj4+Pj4+PiBAQCAtOTUzLDYgKzk1Niw5IEBAIHN0YXRpYyB2b2lk IGk5MTVfZHJpdmVyX2NsZWFudXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+Pj4+Pj4gwqDCoMKgwqDCoMKgIGludGVsX2lycV9maW5pKGRldl9wcml2KTsKPj4+Pj4+ IMKgwqDCoMKgwqDCoCBpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChkZXZfcHJpdik7Cj4+Pj4+PiDC oMKgwqDCoMKgwqAgaTkxNV9lbmdpbmVzX2NsZWFudXAoZGV2X3ByaXYpOwo+Pj4+Pj4gKwo+Pj4+ Pj4gK8KgwqDCoMKgIHBtX3Fvc19yZW1vdmVfcmVxdWVzdCgmZGV2X3ByaXYtPnNiX3Fvcyk7Cj4+ Pj4+PiArwqDCoMKgwqAgbXV0ZXhfZGVzdHJveSgmZGV2X3ByaXYtPnNiX2xvY2spOwo+Pj4+Pj4g wqAgfQo+Pj4+Pj4gwqAgc3RhdGljIGludCBpOTE1X21taW9fc2V0dXAoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+Pj4+PiBp bmRleCBhNjg5Mzk2ZDBmZjYuLmZmM2Y5ZWZmYzBiYiAxMDA2NDQKPj4+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPj4+Pj4+IEBAIC0xODg3LDYgKzE4ODcsNyBAQCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSB7Cj4+Pj4+PiDCoMKgwqDCoMKgwqAgLyogU2lkZWJhbmQgbWFpbGJveCBwcm90 ZWN0aW9uICovCj4+Pj4+PiDCoMKgwqDCoMKgwqAgc3RydWN0IG11dGV4IHNiX2xvY2s7Cj4+Pj4+ PiArwqDCoMKgwqAgc3RydWN0IHBtX3Fvc19yZXF1ZXN0IHNiX3FvczsKPj4+Pj4+IMKgwqDCoMKg wqDCoCAvKiogQ2FjaGVkIHZhbHVlIG9mIElNUiB0byBhdm9pZCByZWFkcyBpbiB1cGRhdGluZyB0 aGUgYml0ZmllbGQgKi8KPj4+Pj4+IMKgwqDCoMKgwqDCoCB1bmlvbiB7Cj4+Pj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3NpZGViYW5kLmMKPj4+Pj4+IGluZGV4IDc1Yzg3MmJiOGNjOS4uMDJi ZGQyZTJjZWY2IDEwMDY0NAo+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c2lkZWJhbmQuYwo+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJh bmQuYwo+Pj4+Pj4gQEAgLTIyLDYgKzIyLDggQEAKPj4+Pj4+IMKgwqAgKgo+Pj4+Pj4gwqDCoCAq Lwo+Pj4+Pj4gKyNpbmNsdWRlIDxhc20vaW9zZl9tYmkuaD4KPj4+Pj4+ICsKPj4+Pj4+IMKgICNp bmNsdWRlICJpOTE1X2Rydi5oIgo+Pj4+Pj4gwqAgI2luY2x1ZGUgImludGVsX2Rydi5oIgo+Pj4+ Pj4gQEAgLTM5LDE4ICs0MSwyMCBAQAo+Pj4+Pj4gwqAgLyogUHJpdmF0ZSByZWdpc3RlciB3cml0 ZSwgZG91YmxlLXdvcmQgYWRkcmVzc2luZywgbm9uLXBvc3RlZCAqLwo+Pj4+Pj4gwqAgI2RlZmlu ZSBTQl9DUldSREFfTlAgMHgwNwo+Pj4+Pj4gLXN0YXRpYyBpbnQgdmx2X3NpZGViYW5kX3J3KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGRldmZuLAo+Pj4+Pj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIHBvcnQsIHUzMiBv cGNvZGUsIHUzMiBhZGRyLCB1MzIgKnZhbCkKPj4+Pj4+ICtzdGF0aWMgdm9pZCBwaW5nKHZvaWQg KmluZm8pCj4+Pj4+PiDCoCB7Cj4+Pj4+PiAtwqDCoMKgwqAgdTMyIGNtZCwgYmUgPSAweGYsIGJh ciA9IDA7Cj4+Pj4+PiAtwqDCoMKgwqAgYm9vbCBpc19yZWFkID0gKG9wY29kZSA9PSBTQl9NUkRf TlAgfHwgb3Bjb2RlID09IFNCX0NSUkREQV9OUCk7Cj4+Pj4+PiArfQo+Pj4+Pj4gLcKgwqDCoMKg IGNtZCA9IChkZXZmbiA8PCBJT1NGX0RFVkZOX1NISUZUKSB8IChvcGNvZGUgPDwgSU9TRl9PUENP REVfU0hJRlQpIHwKPj4+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHBvcnQgPDwgSU9T Rl9QT1JUX1NISUZUKSB8IChiZSA8PCBJT1NGX0JZVEVfRU5BQkxFU19TSElGVCkgfAo+Pj4+Pj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYmFyIDw8IElPU0ZfQkFSX1NISUZUKTsKPj4+Pj4+ ICtzdGF0aWMgaW50IHZsdl9zaWRlYmFuZF9ydyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB1MzIgZGV2Zm4sIHUzMiBwb3J0LCB1MzIgb3Bjb2RlLAo+Pj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIGFkZHIsIHUzMiAqdmFsKQo+ Pj4+Pj4gK3sKPj4+Pj4+ICvCoMKgwqDCoCBjb25zdCBib29sIGlzX3JlYWQgPSAob3Bjb2RlID09 IFNCX01SRF9OUCB8fCBvcGNvZGUgPT0gU0JfQ1JSRERBX05QKTsKPj4+Pj4+ICvCoMKgwqDCoCBp bnQgZXJyOwo+Pj4+Pj4gLcKgwqDCoMKgIFdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3By aXYtPnNiX2xvY2spKTsKPj4+Pj4+ICvCoMKgwqDCoCBsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZf cHJpdi0+c2JfbG9jayk7Cj4+Pj4+PiArwqDCoMKgwqAgLyogRmx1c2ggdGhlIHByZXZpb3VzIGNv bW1zLCBqdXN0IGluIGNhc2UgaXQgZmFpbGVkIGxhc3QgdGltZS4gKi8KPj4+Pj4+IMKgwqDCoMKg wqDCoCBpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4+Pj4+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBWTFZfSU9TRl9ET09SQkVMTF9SRVEsIElPU0ZfU0JfQlVTWSwgMCwKPj4+Pj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIDUpKSB7Cj4+Pj4+PiBAQCAtNTksMjIgKzYzLDQzIEBAIHN0YXRpYyBpbnQgdmx2X3Np ZGViYW5kX3J3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGRldmZuLAo+ Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVBR0FJTjsKPj4+Pj4+ IMKgwqDCoMKgwqDCoCB9Cj4+Pj4+PiAtwqDCoMKgwqAgSTkxNV9XUklURShWTFZfSU9TRl9BRERS LCBhZGRyKTsKPj4+Pj4+IC3CoMKgwqDCoCBJOTE1X1dSSVRFKFZMVl9JT1NGX0RBVEEsIGlzX3Jl YWQgPyAwIDogKnZhbCk7Cj4+Pj4+PiAtwqDCoMKgwqAgSTkxNV9XUklURShWTFZfSU9TRl9ET09S QkVMTF9SRVEsIGNtZCk7Cj4+Pj4+PiArwqDCoMKgwqAgaW9zZl9tYmlfcHVuaXRfYWNxdWlyZSgp Owo+Pj4+Pj4gLcKgwqDCoMKgIGlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwK Pj4+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIFZMVl9JT1NGX0RPT1JCRUxMX1JFUSwgSU9TRl9TQl9CVVNZLCAwLAo+ Pj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgNSkpIHsKPj4+Pj4+ICvCoMKgwqDCoCAvKgo+Pj4+Pj4gK8KgwqDCoMKg wqAgKiBQcmV2ZW50IHRoZSBjcHUgZnJvbSBzbGVlcGluZyB3aGlsZSB3ZSB1c2UgdGhpcyBzaWRl YmFuZCwgb3RoZXJ3aXNlCj4+Pj4+PiArwqDCoMKgwqDCoCAqIHRoZSBwdW5pdCBtYXkgY2F1c2Ug YSBtYWNoaW5lIGhhbmcuCj4+Pj4+PiArwqDCoMKgwqDCoCAqLwo+Pj4+Pj4gK8KgwqDCoMKgIHBt X3Fvc191cGRhdGVfcmVxdWVzdCgmZGV2X3ByaXYtPnNiX3FvcywgMCk7Cj4+Pj4+PiArwqDCoMKg wqAgb25fZWFjaF9jcHUocGluZywgTlVMTCwgMSk7Cj4+Pj4+Cj4+Pj4+IHBtX3Fvc191cGRhdGVf cmVxdWVzdCgpIGRvZXNuJ3Qgd2FrZSB1cCB0aGUgY3B1cyBvbiBpdHMgb3duPyBJIHdvbmRlcgo+ Pj4+PiBraW5kIG9mIGxhdGVuY3kgZ3VhcmFudGVlcyBpdCBjYW4gYWN0dWFsbHkgZ2l2ZSB3aXRo b3V0IGRvaW5nIHRoYXQuCj4+Pj4KPj4+PiBpbnRlbF9pZGxlIHBsdWdzIGludG8gdGhlIHVwZGF0 ZSB0byB3YWtlIHVwIGlkbGUgY3B1cywgYnV0IGl0IGlzIG5vdAo+Pj4+IHN5bmNocm9ub3VzLiBJ ZiB3ZSBkb24ndCBoYXZlIHRoZSBvbl9lYWNoX2NwdSgpIGhlcmUsIHRoZSBoYW5ncyByZW9jY3Vy Owo+Pj4+IHRoZSBlYXNpZXN0IGFuc3dlciBzZWVtcyB0byBiZSB0aGF0IHRoZSBvbl9lYWNoX2Nw dSgpIGlzIGNhdXNpbmcgYQo+Pj4+IHNjaGVkdWxlIG9mIHRoZSBSVCBtaWdyYXRpb24gdGhyZWFk IHdoaWNoIGlzIGVub3VnaCB0byBlbnN1cmUgdGhhdCB0aGUKPj4+PiB3YWtldXAgaGFzIG9jY3Vy cmVkLgo+Pj4+PiBTaG91bGRuJ3Qgd2UgY2hlY2sgaWYgd2UncmUgYWN0dWFsbHkgYmUgdGFsa2lu ZyB0byB0aGUgcHVuaXQgYW5kIG5vdAo+Pj4+PiBzb21lIG90aGVyIHVuaXQgYmVmb3JlIHdlIGRv IGFsbCB0aGlzIGV4dHJhIHdvcms/Cj4+Pj4KPj4+PiBDaGVja2luZyBwb3J0PyBJIGFtIHN1c3Bp Y2lvdXMgb2YgdGhlIHdob2xlIGlvc2YgbWVjaGFuaXNtLi4uCj4+Pgo+Pj4gSSBkb3VidCBpb3Nm IHNiIGl0c2VsZiBpcyBidXN0ZWQuIFRoYXQgd291bGQgcHJvYmFibHkgbWFrZSB0aGUgZW50aXJl Cj4+PiBzb2MgcHJldHR5IG11Y2ggZGVhZC4gSSBzdXNwZWN0IHRoZSBwcm9ibGVtIGlzIGVpdGhl ciBpbiB0aGUgcHVuaXQKPj4+IGZpcm13YXJlLCBvciBzb21ldGhpbmcgZmlzaHkgaXMgZ29pbmcg b24gd2l0aCBwb3dlciBkZWxpdmVyeSBhbmQKPj4+IHJlZHVjaW5nIHRoZSByYXRlIGF0IHdoaWNo IHdlIGNoYW5nZSB0aGUgdm9sdGFnZXMgYW5kIHdoYXRub3QgaGVscHMKPj4+IGtlZXAgdGhpbmdz IGEgYml0IG1vcmUgc3RhYmxlLgo+Pj4KPj4+IFNvIHllYWgsIEkgd291bGQgbGltaXQgdGhpcyB0 byBwdW5pdCBvbmx5IGJ5IGNoZWNraW5nIHRoZSBwb3J0Lgo+Pj4KPj4+Pgo+Pj4+IEFsc28gZGVi YXRpbmcgd2hldGhlciB0byBvbmx5IGFwcGx5IGl0IHRvIGoxOTAwIG9yIGFsbC4gSXMgaXQganVz dCBwdXJlCj4+Pj4gZmx1a2UgdGhhdCB3ZSBjYW4gZWFzaWx5IHJlcHJvZHVjZSBpdCBvbiB0aGUg cXVhZCBjb3JlIEJheXRyYWlsIGFzCj4+Pj4gb3Bwb3NlZCB0byB0aGUgZHVhbCBjb3JlIHZsdiBv ciBjaHY/Cj4+Pgo+Pj4gTm90IHN1cmUuIEkgZ3Vlc3MgaWYgdGhlIHByb2JsZW0gaXMgYXJvdW5k IHBvd2VyIGRlbGl2ZXJ5IGl0IG1pZ2h0IGV2ZW4KPj4+IGJlIGJvYXJkIHNwZWNpZmljIHRvIHNv bWUgZGVncmVlLgo+PiAKPj4gVGhlIHdvcmRwcmVzcyAob24gYXp1cmUuY29tKSBsaW5rIGhlcmU6 Cj4+IGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDUxI2M4 NjAKPj4gCj4+IENlcnRhaW5seSBzZWVtcyB0byBoaW50IGF0IGEgcG93ZXIgZGVsaXZlcnkgcHJv YmxlbSAod2l0aCB0aGUgU29DIG5vdAo+PiB3aXRoIHNwZWNpZmljIGJvYXJkcykgYW5kIGFsbCBt b2RlbHMgcmVwb3J0ZWQgYXMgbmVlZGluZwo+PiBpbnRlbF9pZGxlLm1heF9jc3RhdGU9MSB0aGVy ZSBhcmUgcXVhZC1jb3JlIEJheSBUcmFpbHMuCj4+IAo+PiBJIGd1ZXNzIGl0IHRoZSBwcm9ibGVt IGhhcHBlbnMgb24gYWxsIHF1YWQtY29yZSBCYXkgVHJhaWwgdmFyaWFudHMgd2hlbgo+PiB0aGUg R1BVIGFuZCBDUFUgYm90aCBpbmNyZWFzZSB0aGVyZSBwb3dlci1kZW1hbmQgKGJ5IHVwLWNsb2Nr aW5nLCByZXNwLgo+PiBsZWF2aW5nIEM2KSBhdCB0aGUgc2FtZSB0aW1lIGFuZCBDaHJpcycgZml4 IG1ha2VzIHN1cmUgYWxsIENQVSBjb3Jlcwo+PiBsZWF2ZSBDNiBiZWZvcmUgZG9pbmcgdGhlIEdQ VSB1cC1jbG9ja2luZyBhdm9pZGluZyB0aGlzLgo+PiAKPj4gTm90ZSB0aGlzIGlzIGFsbCBzcGVj dWxhdGlvbiAvIGVkdWNhdGVkIGd1ZXNzaW5nLgo+Cj4gQWxzbyBpbnRlcmVzdGluZyB3cnQgdGhp cyBpcyB0aGlzIGNvbW1lbnQ6Cj4KPiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19i dWcuY2dpP2lkPTEwOTA1MSNjNzUyCj4KPiBXaGljaCBzcGVjdWxhdGVzIGFsb25nIHRoZSBzYW1l IGxpbmUgYW5kIHRoZSBjb21tZW50ZXIgaGFzIGRvbmUKPiBleHRlbnNpdmUgdGVzdGluZyAod2l0 aCAyIGJvYXJkcykgY29taW5nIHRvIHRoZSBjb25jbHVzaW9uIHRoYXQKPiB0aGUgZHVhbCBjb3Jl IHBhcnQgZG9lcyBub3QgaGF2ZSB3aGF0ZXZlciBwcm9ibGVtIGhlIGlzIHNlZWluZy4KPgoKVGhp cyBoYXMgYmVlbiBteSB1bmRlcnN0YW5kaW5nIHRoYXQgMiBjb3JlIHBhcnRzIGFyZQpub3QgYWZm ZWN0ZWQuIEZ1cnRoZXIsIGxpbWl0aW5nIGNvcmVzIHRvIDIgd2l0aCA0IGNvcmUgajE5MDAgdXNp bmcKbWF4Y3B1cz0yIGlzIGFuIGVmZmVjdGl2ZSB3b3JrYXJvdW5kLgoKLU1pa2EKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==