From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/2] drm/i915: Remove decoupled MMIO code Date: Tue, 30 May 2017 10:05:57 +0300 Message-ID: <871sr6lt7u.fsf@intel.com> References: <20170523215812.18328-1-kai.chen@intel.com> <20170523215812.18328-3-kai.chen@intel.com> <5c1b9010-afe5-f4d9-b58d-c926f4777651@linux.intel.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 AAB8489ACD for ; Tue, 30 May 2017 07:02:33 +0000 (UTC) In-Reply-To: <5c1b9010-afe5-f4d9-b58d-c926f4777651@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , kai.chen@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyNCBNYXkgMjAxNywgVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gMjMvMDUvMjAxNyAyMjo1OCwga2FpLmNoZW5AaW50ZWwu Y29tIHdyb3RlOgo+PiBGcm9tOiBLYWkgQ2hlbiA8a2FpLmNoZW5AaW50ZWwuY29tPgo+Pgo+PiBU aGlzIGlzIGEgZm9sbG93LXVwIHBhdGNoIHRvIHRoZSBwcmV2aW91cyBwYXRjaCAoW1BBVENIWzEv Ml0gZHJtL2k5MTU6Cj4+IERpc2FibGUgZGVjb3VwbGVkIE1NSU8pIHRvIHJlbW92ZSB0aGUgZGVh ZCBjb2RlIGZvciBkZWNvdXBsZWQgTU1JTwo+PiBpbXBsZW1lbnRhdGlvbiwgYXMgaXQgd29uJ3Qg YmUgdXNlZCBhbnkgbG9uZ2VyIG9uIEdFTjlMUC4KPj4KPj4gVGhlcmVmb3JlLCB0aGlzIHBhdGNo IHJldmVydHM6Cj4+Cj4+IGNvbW1pdCA4NWVlMTdlYmVlZGQxYWYwZGNjZDk4ZjgyYWI0ZTY0NGUy OWQ4NGMwCj4+IEF1dGhvcjogUHJhdmVlbiBQYW5lcmkgPHByYXZlZW4ucGFuZXJpQGludGVsLmNv bT4KPj4gRGF0ZTogICBUdWUgTm92IDE1IDIyOjQ5OjIwIDIwMTYgKzA1MzAKPj4KPj4gICAgIGRy bS9pOTE1L2J4dDogQnJveHRvbiBkZWNvdXBsZWQgTU1JTwo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBL YWkgQ2hlbiA8a2FpLmNoZW5AaW50ZWwuY29tPgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgIHwgICAzIC0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmggICAgIHwgICA3IC0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUu YyB8IDEyNiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gIDMgZmlsZXMg Y2hhbmdlZCwgMTM2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4g aW5kZXggYTZmMjA0Ny4uNDFmZjAzMSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ IEBAIC03MDMsNyArNzAzLDYgQEAgc3RydWN0IGludGVsX2NzciB7Cj4+ICAJZnVuYyhoYXNfYWxp YXNpbmdfcHBndHQpOyBcCj4+ICAJZnVuYyhoYXNfY3NyKTsgXAo+PiAgCWZ1bmMoaGFzX2RkaSk7 IFwKPj4gLQlmdW5jKGhhc19kZWNvdXBsZWRfbW1pbyk7IFwKPj4gIAlmdW5jKGhhc19kcF9tc3Qp OyBcCj4+ICAJZnVuYyhoYXNfZmJjKTsgXAo+PiAgCWZ1bmMoaGFzX2ZwZ2FfZGJnKTsgXAo+PiBA QCAtMjk0NCw4ICsyOTQzLDYgQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4+ICAjZGVmaW5lIEdUX0ZSRVFVRU5DWV9NVUxUSVBMSUVSIDUwCj4+ ICAjZGVmaW5lIEdFTjlfRlJFUV9TQ0FMRVIgMwo+Pgo+PiAtI2RlZmluZSBIQVNfREVDT1VQTEVE X01NSU8oZGV2X3ByaXYpIChJTlRFTF9JTkZPKGRldl9wcml2KS0+aGFzX2RlY291cGxlZF9tbWlv KQo+PiAtCj4+ICAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgo+Pgo+PiAgc3RhdGljIGlubGluZSBi b29sIGludGVsX3NjYW5vdXRfbmVlZHNfdnRkX3dhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IGluZGV4IGVlMTQ0ZWMuLjc4ODcy ZjkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBAQCAtNzc5MiwxMyArNzc5Miw2 IEBAIGVudW0gewo+PiAgI2RlZmluZSAgU0tMX0ZVU0VfUEcxX0RJU1RfU1RBVFVTICAgICAgICAg ICAgICAoMTw8MjYpCj4+ICAjZGVmaW5lICBTS0xfRlVTRV9QRzJfRElTVF9TVEFUVVMgICAgICAg ICAgICAgICgxPDwyNSkKPj4KPj4gLS8qIERlY291cGxlZCBNTUlPIHJlZ2lzdGVyIHBhaXIgZm9y IGtlcm5lbCBkcml2ZXIgKi8KPj4gLSNkZWZpbmUgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzAJCQlf TU1JTygweEYwMCkKPj4gLSNkZWZpbmUgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzEJCQlfTU1JTygw eEYwNCkKPj4gLSNkZWZpbmUgR0VOOV9ERUNPVVBMRURfRFcxX0dPCQkJKDE8PDMxKQo+PiAtI2Rl ZmluZSBHRU45X0RFQ09VUExFRF9QRF9TSElGVAkJCTI4Cj4+IC0jZGVmaW5lIEdFTjlfREVDT1VQ TEVEX09QX1NISUZUCQkJMjQKPj4gLQo+PiAgLyogUGVyLXBpcGUgRERJIEZ1bmN0aW9uIENvbnRy b2wgKi8KPj4gICNkZWZpbmUgX1RSQU5TX0RESV9GVU5DX0NUTF9BCQkweDYwNDAwCj4+ICAjZGVm aW5lIF9UUkFOU19ERElfRlVOQ19DVExfQgkJMHg2MTQwMAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF91bmNvcmUuYwo+PiBpbmRleCBhOWE2OTMzLi4zOTAxODAwIDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91bmNvcmUuYwo+PiBAQCAtNDAwLDggKzQwMCw2IEBAIGNoZWNrX2Zvcl91bmNs YWltZWRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICBzdGF0aWMg dm9pZCBfX2ludGVsX3VuY29yZV9lYXJseV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4+ICAJCQkJCSAgYm9vbCByZXN0b3JlX2ZvcmNld2FrZSkKPj4gIHsKPj4g LQlzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8gPSBta3dyaXRlX2RldmljZV9pbmZvKGRl dl9wcml2KTsKPj4gLQo+PiAgCS8qIGNsZWFyIG91dCB1bmNsYWltZWQgcmVnIGRldGVjdGlvbiBi aXQgKi8KPj4gIAlpZiAoY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKGRldl9wcml2KSkKPj4gIAkJ RFJNX0RFQlVHKCJ1bmNsYWltZWQgbW1pbyBkZXRlY3RlZCBvbiB1bmNvcmUgaW5pdCwgY2xlYXJp bmdcbiIpOwo+PiBAQCAtNDE0LDkgKzQxMiw2IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfdW5jb3Jl X2Vhcmx5X3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAkJ CQkgICBHVF9GSUZPX0NUTF9SQzZfUE9MSUNZX1NUQUxMKTsKPj4gIAl9Cj4+Cj4+IC0JaWYgKElT X0JYVF9SRVZJRChkZXZfcHJpdiwgMCwgQlhUX1JFVklEX0JfTEFTVCkpCj4+IC0JCWluZm8tPmhh c19kZWNvdXBsZWRfbW1pbyA9IGZhbHNlOwo+PiAtCj4+ICAJaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9yZXNldChkZXZfcHJpdiwgcmVzdG9yZV9mb3JjZXdha2UpOwo+PiAgfQo+Pgo+PiBAQCAtODAx LDc4ICs3OTYsNiBAQCB1bmNsYWltZWRfcmVnX2RlYnVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPj4gIAlfX3VuY2xhaW1lZF9yZWdfZGVidWcoZGV2X3ByaXYsIHJlZywgcmVh ZCwgYmVmb3JlKTsKPj4gIH0KPj4KPj4gLWVudW0gZGVjb3VwbGVkX3Bvd2VyX2RvbWFpbiB7Cj4+ IC0JR0VOOV9ERUNPVVBMRURfUERfQkxJVFRFUiA9IDAsCj4+IC0JR0VOOV9ERUNPVVBMRURfUERf UkVOREVSLAo+PiAtCUdFTjlfREVDT1VQTEVEX1BEX01FRElBLAo+PiAtCUdFTjlfREVDT1VQTEVE X1BEX0FMTAo+PiAtfTsKPj4gLQo+PiAtZW51bSBkZWNvdXBsZWRfb3BzIHsKPj4gLQlHRU45X0RF Q09VUExFRF9PUF9XUklURSA9IDAsCj4+IC0JR0VOOV9ERUNPVVBMRURfT1BfUkVBRAo+PiAtfTsK Pj4gLQo+PiAtc3RhdGljIGNvbnN0IGVudW0gZGVjb3VwbGVkX3Bvd2VyX2RvbWFpbiBmdzJkcGRf ZG9tYWluW10gPSB7Cj4+IC0JR0VOOV9ERUNPVVBMRURfUERfUkVOREVSLAo+PiAtCUdFTjlfREVD T1VQTEVEX1BEX0JMSVRURVIsCj4+IC0JR0VOOV9ERUNPVVBMRURfUERfQUxMLAo+PiAtCUdFTjlf REVDT1VQTEVEX1BEX01FRElBLAo+PiAtCUdFTjlfREVDT1VQTEVEX1BEX0FMTCwKPj4gLQlHRU45 X0RFQ09VUExFRF9QRF9BTEwsCj4+IC0JR0VOOV9ERUNPVVBMRURfUERfQUxMCj4+IC19Owo+PiAt Cj4+IC0vKgo+PiAtICogRGVjb3VwbGVkIE1NSU8gYWNjZXNzIGZvciBvbmx5IDEgRFdPUkQKPj4g LSAqLwo+PiAtc3RhdGljIHZvaWQgX19nZW45X2RlY291cGxlZF9tbWlvX2FjY2VzcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+IC0JCQkJCSB1MzIgcmVnLAo+PiAtCQkJCQkg ZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW4sCj4+IC0JCQkJCSBlbnVtIGRlY291cGxl ZF9vcHMgb3BlcmF0aW9uKQo+PiAtewo+PiAtCWVudW0gZGVjb3VwbGVkX3Bvd2VyX2RvbWFpbiBk cF9kb21haW47Cj4+IC0JdTMyIGN0cmxfcmVnX2RhdGEgPSAwOwo+PiAtCj4+IC0JZHBfZG9tYWlu ID0gZncyZHBkX2RvbWFpbltmd19kb21haW4gLSAxXTsKPj4gLQo+PiAtCWN0cmxfcmVnX2RhdGEg fD0gcmVnOwo+PiAtCWN0cmxfcmVnX2RhdGEgfD0gKG9wZXJhdGlvbiA8PCBHRU45X0RFQ09VUExF RF9PUF9TSElGVCk7Cj4+IC0JY3RybF9yZWdfZGF0YSB8PSAoZHBfZG9tYWluIDw8IEdFTjlfREVD T1VQTEVEX1BEX1NISUZUKTsKPj4gLQljdHJsX3JlZ19kYXRhIHw9IEdFTjlfREVDT1VQTEVEX0RX MV9HTzsKPj4gLQlfX3Jhd19pOTE1X3dyaXRlMzIoZGV2X3ByaXYsIEdFTjlfREVDT1VQTEVEX1JF RzBfRFcxLCBjdHJsX3JlZ19kYXRhKTsKPj4gLQo+PiAtCWlmICh3YWl0X2Zvcl9hdG9taWMoKF9f cmF3X2k5MTVfcmVhZDMyKGRldl9wcml2LAo+PiAtCQkJICAgIEdFTjlfREVDT1VQTEVEX1JFRzBf RFcxKSAmCj4+IC0JCQkgICAgR0VOOV9ERUNPVVBMRURfRFcxX0dPKSA9PSAwLAo+PiAtCQkJICAg IEZPUkNFV0FLRV9BQ0tfVElNRU9VVF9NUykpCj4+IC0JCURSTV9FUlJPUigiRGVjb3VwbGVkIE1N SU8gd2FpdCB0aW1lZCBvdXRcbiIpOwo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgaW5saW5lIHUzMgo+ PiAtX19nZW45X2RlY291cGxlZF9tbWlvX3JlYWQzMihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4+IC0JCQkgICAgIHUzMiByZWcsCj4+IC0JCQkgICAgIGVudW0gZm9yY2V3YWtl X2RvbWFpbnMgZndfZG9tYWluKQo+PiAtewo+PiAtCV9fZ2VuOV9kZWNvdXBsZWRfbW1pb19hY2Nl c3MoZGV2X3ByaXYsIHJlZywgZndfZG9tYWluLAo+PiAtCQkJCSAgICAgR0VOOV9ERUNPVVBMRURf T1BfUkVBRCk7Cj4+IC0KPj4gLQlyZXR1cm4gX19yYXdfaTkxNV9yZWFkMzIoZGV2X3ByaXYsIEdF TjlfREVDT1VQTEVEX1JFRzBfRFcwKTsKPj4gLX0KPj4gLQo+PiAtc3RhdGljIGlubGluZSB2b2lk Cj4+IC1fX2dlbjlfZGVjb3VwbGVkX21taW9fd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+PiAtCQkJICAgIHUzMiByZWcsIHUzMiBkYXRhLAo+PiAtCQkJICAgIGVudW0g Zm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluKQo+PiAtewo+PiAtCj4+IC0JX19yYXdfaTkxNV93 cml0ZTMyKGRldl9wcml2LCBHRU45X0RFQ09VUExFRF9SRUcwX0RXMCwgZGF0YSk7Cj4+IC0KPj4g LQlfX2dlbjlfZGVjb3VwbGVkX21taW9fYWNjZXNzKGRldl9wcml2LCByZWcsIGZ3X2RvbWFpbiwK Pj4gLQkJCQkgICAgIEdFTjlfREVDT1VQTEVEX09QX1dSSVRFKTsKPj4gLX0KPj4gLQo+PiAtCj4+ ICAjZGVmaW5lIEdFTjJfUkVBRF9IRUFERVIoeCkgXAo+PiAgCXUjI3ggdmFsID0gMDsgXAo+PiAg CWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZfcHJpdik7Cj4+IEBAIC05NjksMjggKzg5Miw2 IEBAIGZ1bmMjI19yZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaTkx NV9yZWdfdCByZWcsIGJvb2wgdHJhY2UpIHsKPj4gICNkZWZpbmUgX19nZW42X3JlYWQoeCkgX19n ZW5fcmVhZChnZW42LCB4KQo+PiAgI2RlZmluZSBfX2Z3dGFibGVfcmVhZCh4KSBfX2dlbl9yZWFk KGZ3dGFibGUsIHgpCj4+Cj4+IC0jZGVmaW5lIF9fZ2VuOV9kZWNvdXBsZWRfcmVhZCh4KSBcCj4+ IC1zdGF0aWMgdSMjeCBcCj4+IC1nZW45X2RlY291cGxlZF9yZWFkIyN4KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgXAo+PiAtCQkgICAgICAgaTkxNV9yZWdfdCByZWcsIGJvb2wg dHJhY2UpIHsgXAo+PiAtCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZW5naW5lOyBcCj4+IC0J R0VONl9SRUFEX0hFQURFUih4KTsgXAo+PiAtCWZ3X2VuZ2luZSA9IF9fZnd0YWJsZV9yZWdfcmVh ZF9md19kb21haW5zKG9mZnNldCk7IFwKPj4gLQlpZiAoZndfZW5naW5lICYgfmRldl9wcml2LT51 bmNvcmUuZndfZG9tYWluc19hY3RpdmUpIHsgXAo+PiAtCQl1bnNpZ25lZCBpOyBcCj4+IC0JCXUz MiAqcHRyX2RhdGEgPSAodTMyICopICZ2YWw7IFwKPj4gLQkJZm9yIChpID0gMDsgaSA8IHgvMzI7 IGkrKywgb2Zmc2V0ICs9IHNpemVvZih1MzIpLCBwdHJfZGF0YSsrKSBcCj4+IC0JCQkqcHRyX2Rh dGEgPSBfX2dlbjlfZGVjb3VwbGVkX21taW9fcmVhZDMyKGRldl9wcml2LCBcCj4+IC0JCQkJCQkJ CSBvZmZzZXQsIFwKPj4gLQkJCQkJCQkJIGZ3X2VuZ2luZSk7IFwKPj4gLQl9IGVsc2UgeyBcCj4+ IC0JCXZhbCA9IF9fcmF3X2k5MTVfcmVhZCMjeChkZXZfcHJpdiwgcmVnKTsgXAo+PiAtCX0gXAo+ PiAtCUdFTjZfUkVBRF9GT09URVI7IFwKPj4gLX0KPj4gLQo+PiAtX19nZW45X2RlY291cGxlZF9y ZWFkKDMyKQo+PiAtX19nZW45X2RlY291cGxlZF9yZWFkKDY0KQo+PiAgX19md3RhYmxlX3JlYWQo OCkKPj4gIF9fZnd0YWJsZV9yZWFkKDE2KQo+PiAgX19md3RhYmxlX3JlYWQoMzIpCj4+IEBAIC0x MDc3LDI1ICs5NzgsNiBAQCBmdW5jIyNfd3JpdGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBpOTE1X3JlZ190IHJlZywgdSMjeCB2YWwsIGJvbwo+PiAgI2RlZmluZSBfX2dl bjhfd3JpdGUoeCkgX19nZW5fd3JpdGUoZ2VuOCwgeCkKPj4gICNkZWZpbmUgX19md3RhYmxlX3dy aXRlKHgpIF9fZ2VuX3dyaXRlKGZ3dGFibGUsIHgpCj4+Cj4+IC0jZGVmaW5lIF9fZ2VuOV9kZWNv dXBsZWRfd3JpdGUoeCkgXAo+PiAtc3RhdGljIHZvaWQgXAo+PiAtZ2VuOV9kZWNvdXBsZWRfd3Jp dGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBcCj4+IC0JCQlpOTE1X3Jl Z190IHJlZywgdSMjeCB2YWwsIFwKPj4gLQkJYm9vbCB0cmFjZSkgeyBcCj4+IC0JZW51bSBmb3Jj ZXdha2VfZG9tYWlucyBmd19lbmdpbmU7IFwKPj4gLQlHRU42X1dSSVRFX0hFQURFUjsgXAo+PiAt CWZ3X2VuZ2luZSA9IF9fZnd0YWJsZV9yZWdfd3JpdGVfZndfZG9tYWlucyhvZmZzZXQpOyBcCj4+ IC0JaWYgKGZ3X2VuZ2luZSAmIH5kZXZfcHJpdi0+dW5jb3JlLmZ3X2RvbWFpbnNfYWN0aXZlKSBc Cj4+IC0JCV9fZ2VuOV9kZWNvdXBsZWRfbW1pb193cml0ZShkZXZfcHJpdiwgXAo+PiAtCQkJCQkg ICAgb2Zmc2V0LCBcCj4+IC0JCQkJCSAgICB2YWwsIFwKPj4gLQkJCQkJICAgIGZ3X2VuZ2luZSk7 IFwKPj4gLQllbHNlIFwKPj4gLQkJX19yYXdfaTkxNV93cml0ZSMjeChkZXZfcHJpdiwgcmVnLCB2 YWwpOyBcCj4+IC0JR0VONl9XUklURV9GT09URVI7IFwKPj4gLX0KPj4gLQo+PiAtX19nZW45X2Rl Y291cGxlZF93cml0ZSgzMikKPj4gIF9fZnd0YWJsZV93cml0ZSg4KQo+PiAgX19md3RhYmxlX3dy aXRlKDE2KQo+PiAgX19md3RhYmxlX3dyaXRlKDMyKQo+PiBAQCAtMTMzMiwxNCArMTIxNCw2IEBA IHZvaWQgaW50ZWxfdW5jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+PiAgCQlBU1NJR05fRldfRE9NQUlOU19UQUJMRShfX2dlbjlfZndfcmFuZ2VzKTsKPj4gIAkJ QVNTSUdOX1dSSVRFX01NSU9fVkZVTkNTKGRldl9wcml2LCBmd3RhYmxlKTsKPj4gIAkJQVNTSUdO X1JFQURfTU1JT19WRlVOQ1MoZGV2X3ByaXYsIGZ3dGFibGUpOwo+PiAtCQlpZiAoSEFTX0RFQ09V UExFRF9NTUlPKGRldl9wcml2KSkgewo+PiAtCQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlv X3JlYWRsID0KPj4gLQkJCQkJCWdlbjlfZGVjb3VwbGVkX3JlYWQzMjsKPj4gLQkJCWRldl9wcml2 LT51bmNvcmUuZnVuY3MubW1pb19yZWFkcSA9Cj4+IC0JCQkJCQlnZW45X2RlY291cGxlZF9yZWFk NjQ7Cj4+IC0JCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fd3JpdGVsID0KPj4gLQkJCQkJ CWdlbjlfZGVjb3VwbGVkX3dyaXRlMzI7Cj4+IC0JCX0KPj4gIAl9Cj4+Cj4+ICAJaW9zZl9tYmlf cmVnaXN0ZXJfcG1pY19idXNfYWNjZXNzX25vdGlmaWVyKAo+Pgo+Cj4gUmV2aWV3ZWQtYnk6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4KPiBUaGFua3MgZm9yIHNv cnRpbmcgdGhpcyBvdXQhCgpCb3RoIHB1c2hlZCB0byBkaW5xLCB0aGFua3MgZm9yIHRoZSBwYXRj aGVzIGFuZCByZXZpZXcuCgpCUiwKSmFuaS4KCgoKPgo+IFJlZ2FyZHMsCj4KPiBUdnJ0a28KPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdm eCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==