From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 06/32] drm/i915: Store the default sseu setup on the engine Date: Wed, 17 Apr 2019 10:40:26 +0100 Message-ID: References: <20190417075657.19456-1-chris@chris-wilson.co.uk> <20190417075657.19456-6-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id E149C89FAD for ; Wed, 17 Apr 2019 09:40:28 +0000 (UTC) In-Reply-To: <20190417075657.19456-6-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE3LzA0LzIwMTkgMDg6NTYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBcyB3ZSBwdXNoIGZv ciBiZXR0ZXIgY29tcGFydG1lbnRhbGlzYXRpb24sIGl0IGlzIG1vcmUgY29udmVuaWVudCB0bwo+ IGNvcHkgdGhlIGRlZmF1bHQgc3NldSBjb25maWd1cmF0aW9uIGZyb20gdGhlIGVuZ2luZSBpbnRv IHRoZSBkZXJpdmVkCj4gbG9naWNhbCBjb250ZXh0LCB0aGFuIGl0IGlzIHRvIGRpZyBpdCBvdXQg ZnJvbSBpOTE1LT5ydW50aW1lX2luZm8uCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUuaGVhZGVyLXRlc3QgICAgIHwgICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8ICAxNCAtLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BlcmYuYyAgICAgICAgICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NvbnRleHQuYyAgICAgICAgICB8ICAgNCArLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29udGV4dF90eXBlcy5oICAgIHwgIDExICstCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oICAgICAgfCAgMjggKy0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgICAgICAgIHwgICA0ICsKPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oICAgICB8ICAgMyArCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgICAgfCAxMzQgKy0tLS0t LS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAgICAg ICAgICB8ICAgMiAtCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zc2V1LmMgICAgICAg ICAgICAgfCAxNDIgKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zc2V1LmggICAgICAgICAgICAgfCAgNjcgKysrKysrKysrCj4gICAuLi4vZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgfCAgIDUgKy0KPiAgIDE1IGZpbGVzIGNo YW5nZWQsIDIyNiBpbnNlcnRpb25zKCspLCAxOTQgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3NldS5jCj4gICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3NldS5oCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv TWFrZWZpbGUKPiBpbmRleCBmYmNiMDkwNGY0YTguLjUzZmYyMDliOTFiYiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L01ha2VmaWxlCj4gQEAgLTk1LDYgKzk1LDcgQEAgaTkxNS15ICs9IFwKPiAgIAkgIGludGVs X2xyYy5vIFwKPiAgIAkgIGludGVsX21vY3MubyBcCj4gICAJICBpbnRlbF9yaW5nYnVmZmVyLm8g XAo+ICsJICBpbnRlbF9zc2V1Lm8gXAo+ICAgCSAgaW50ZWxfdW5jb3JlLm8gXAo+ICAgCSAgaW50 ZWxfd29wY20ubwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlLmhlYWRlci10ZXN0IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUuaGVhZGVyLXRl c3QKPiBpbmRleCBjMWMzOTE4MTZmYTcuLjViY2M3OGQ3YWM5NiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZS5oZWFkZXItdGVzdAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlLmhlYWRlci10ZXN0Cj4gQEAgLTMzLDYgKzMzLDcgQEAgaGVhZGVy X3Rlc3QgOj0gXAo+ICAgCWludGVsX3Bzci5oIFwKPiAgIAlpbnRlbF9zZHZvLmggXAo+ICAgCWlu dGVsX3Nwcml0ZS5oIFwKPiArCWludGVsX3NzZXUuaCBcCj4gICAJaW50ZWxfdHYuaCBcCj4gICAJ aW50ZWxfd29ya2Fyb3VuZHNfdHlwZXMuaAo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g aW5kZXggMzVkMDc4MmMwNzdlLi43YjVkYTllZGRjMWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBAQCAtMzM4NywyMCArMzM4Nyw2IEBAIG1rd3JpdGVfZGV2aWNlX2luZm8oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCXJldHVybiAoc3RydWN0IGludGVsX2Rl dmljZV9pbmZvICopSU5URUxfSU5GTyhkZXZfcHJpdik7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGlu bGluZSBzdHJ1Y3QgaW50ZWxfc3NldQo+IC1pbnRlbF9kZXZpY2VfZGVmYXVsdF9zc2V1KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+IC17Cj4gLQljb25zdCBzdHJ1Y3Qgc3NldV9kZXZf aW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8oaTkxNSktPnNzZXU7Cj4gLQlzdHJ1Y3QgaW50ZWxf c3NldSB2YWx1ZSA9IHsKPiAtCQkuc2xpY2VfbWFzayA9IHNzZXUtPnNsaWNlX21hc2ssCj4gLQkJ LnN1YnNsaWNlX21hc2sgPSBzc2V1LT5zdWJzbGljZV9tYXNrWzBdLAo+IC0JCS5taW5fZXVzX3Bl cl9zdWJzbGljZSA9IHNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlLAo+IC0JCS5tYXhfZXVzX3Bl cl9zdWJzbGljZSA9IHNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlLAo+IC0JfTsKPiAtCj4gLQly ZXR1cm4gdmFsdWU7Cj4gLX0KPiAtCj4gICAvKiBtb2Rlc2V0dGluZyAqLwo+ICAgZXh0ZXJuIHZv aWQgaW50ZWxfbW9kZXNldF9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAgZXh0 ZXJuIGludCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IGRkNzI4YjI2YjVhYS4u YzAyYTMwNjEyZGY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu Ywo+IEBAIC0xMTU2LDcgKzExNTYsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9ycGNzX2NvbmZp ZyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKPiAgIAkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lN TV9HRU40IHwgTUlfVVNFX0dHVFQ7Cj4gICAJKmNzKysgPSBsb3dlcl8zMl9iaXRzKG9mZnNldCk7 Cj4gICAJKmNzKysgPSB1cHBlcl8zMl9iaXRzKG9mZnNldCk7Cj4gLQkqY3MrKyA9IGdlbjhfbWFr ZV9ycGNzKHJxLT5pOTE1LCAmc3NldSk7Cj4gKwkqY3MrKyA9IGludGVsX3NzZXVfbWFrZV9ycGNz KHJxLT5pOTE1LCAmc3NldSk7Cj4gICAKPiAgIAlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsK PiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4gaW5kZXggMzlhNDgwNDA5MWQ3Li41NmRh NDU3YmVkMjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+IEBAIC0xNjc5LDcgKzE2 NzksNyBAQCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0IGludGVsX2NvbnRl eHQgKmNlLAo+ICAgCj4gICAJQ1RYX1JFRyhyZWdfc3RhdGUsCj4gICAJCUNUWF9SX1BXUl9DTEtf U1RBVEUsIEdFTjhfUl9QV1JfQ0xLX1NUQVRFLAo+IC0JCWdlbjhfbWFrZV9ycGNzKGk5MTUsICZj ZS0+c3NldSkpOwo+ICsJCWludGVsX3NzZXVfbWFrZV9ycGNzKGk5MTUsICZjZS0+c3NldSkpOwo+ ICAgfQo+ICAgCj4gICAvKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb250ZXh0LmMKPiBpbmRl eCA4OTMxZTBmZWU4NzMuLjk2MWQxNDQ1ODMzZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jb250ZXh0LmMKPiBAQCAtMjMwLDE1ICsyMzAsMTMgQEAgaW50ZWxfY29udGV4dF9pbml0KHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKPiAgIAljZS0+Z2VtX2NvbnRleHQgPSBjdHg7Cj4gICAJ Y2UtPmVuZ2luZSA9IGVuZ2luZTsKPiAgIAljZS0+b3BzID0gZW5naW5lLT5jb3BzOwo+ICsJY2Ut PnNzZXUgPSBlbmdpbmUtPnNzZXU7Cj4gICAKPiAgIAlJTklUX0xJU1RfSEVBRCgmY2UtPnNpZ25h bF9saW5rKTsKPiAgIAlJTklUX0xJU1RfSEVBRCgmY2UtPnNpZ25hbHMpOwo+ICAgCj4gICAJbXV0 ZXhfaW5pdCgmY2UtPnBpbl9tdXRleCk7Cj4gICAKPiAtCS8qIFVzZSB0aGUgd2hvbGUgZGV2aWNl IGJ5IGRlZmF1bHQgKi8KPiAtCWNlLT5zc2V1ID0gaW50ZWxfZGV2aWNlX2RlZmF1bHRfc3NldShj dHgtPmk5MTUpOwo+IC0KPiAgIAlpOTE1X2FjdGl2ZV9yZXF1ZXN0X2luaXQoJmNlLT5hY3RpdmVf dHJhY2tlciwKPiAgIAkJCQkgTlVMTCwgaW50ZWxfY29udGV4dF9yZXRpcmUpOwo+ICAgfQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb250ZXh0X3R5cGVzLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb250ZXh0X3R5cGVzLmgKPiBpbmRleCA2OGI0Y2Ex NjExZTAuLjllYzRmNzg3YzkwOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jb250ZXh0X3R5cGVzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j b250ZXh0X3R5cGVzLmgKPiBAQCAtMTQsNiArMTQsNyBAQAo+ICAgI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+Cj4gICAKPiAgICNpbmNsdWRlICJpOTE1X2FjdGl2ZV90eXBlcy5oIgo+ICsjaW5jbHVk ZSAiaW50ZWxfc3NldS5oIgo+ICAgCj4gICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dDsKPiAgIHN0 cnVjdCBpOTE1X3ZtYTsKPiBAQCAtMjgsMTYgKzI5LDYgQEAgc3RydWN0IGludGVsX2NvbnRleHRf b3BzIHsKPiAgIAl2b2lkICgqZGVzdHJveSkoc3RydWN0IGtyZWYgKmtyZWYpOwo+ICAgfTsKPiAg IAo+IC0vKgo+IC0gKiBQb3dlcmdhdGluZyBjb25maWd1cmF0aW9uIGZvciBhIHBhcnRpY3VsYXIg KGNvbnRleHQsZW5naW5lKS4KPiAtICovCj4gLXN0cnVjdCBpbnRlbF9zc2V1IHsKPiAtCXU4IHNs aWNlX21hc2s7Cj4gLQl1OCBzdWJzbGljZV9tYXNrOwo+IC0JdTggbWluX2V1c19wZXJfc3Vic2xp Y2U7Cj4gLQl1OCBtYXhfZXVzX3Blcl9zdWJzbGljZTsKPiAtfTsKPiAtCj4gICBzdHJ1Y3QgaW50 ZWxfY29udGV4dCB7Cj4gICAJc3RydWN0IGtyZWYgcmVmOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCj4gaW5kZXggMGU1NzlmMTU4MDE2Li4zMDQ1ZTBkZWUy YTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8u aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiBAQCAt MjksNiArMjksNyBAQAo+ICAgCj4gICAjaW5jbHVkZSAiaW50ZWxfZW5naW5lX3R5cGVzLmgiCj4g ICAjaW5jbHVkZSAiaW50ZWxfZGlzcGxheS5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfc3NldS5oIgo+ ICAgCj4gICBzdHJ1Y3QgZHJtX3ByaW50ZXI7Cj4gICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsK PiBAQCAtMTM5LDMzICsxNDAsNiBAQCBlbnVtIGludGVsX3BwZ3R0X3R5cGUgewo+ICAgCWZ1bmMo b3ZlcmxheV9uZWVkc19waHlzaWNhbCk7IFwKPiAgIAlmdW5jKHN1cHBvcnRzX3R2KTsKPiAgIAo+ IC0jZGVmaW5lIEdFTl9NQVhfU0xJQ0VTCQkoNikgLyogQ05MIHVwcGVyIGJvdW5kICovCj4gLSNk ZWZpbmUgR0VOX01BWF9TVUJTTElDRVMJKDgpIC8qIElDTCB1cHBlciBib3VuZCAqLwo+IC0KPiAt c3RydWN0IHNzZXVfZGV2X2luZm8gewo+IC0JdTggc2xpY2VfbWFzazsKPiAtCXU4IHN1YnNsaWNl X21hc2tbR0VOX01BWF9TTElDRVNdOwo+IC0JdTE2IGV1X3RvdGFsOwo+IC0JdTggZXVfcGVyX3N1 YnNsaWNlOwo+IC0JdTggbWluX2V1X2luX3Bvb2w7Cj4gLQkvKiBGb3IgZWFjaCBzbGljZSwgd2hp Y2ggc3Vic2xpY2UocykgaGFzKGhhdmUpIDcgRVVzIChiaXRmaWVsZCk/ICovCj4gLQl1OCBzdWJz bGljZV83ZXVbM107Cj4gLQl1OCBoYXNfc2xpY2VfcGc6MTsKPiAtCXU4IGhhc19zdWJzbGljZV9w ZzoxOwo+IC0JdTggaGFzX2V1X3BnOjE7Cj4gLQo+IC0JLyogVG9wb2xvZ3kgZmllbGRzICovCj4g LQl1OCBtYXhfc2xpY2VzOwo+IC0JdTggbWF4X3N1YnNsaWNlczsKPiAtCXU4IG1heF9ldXNfcGVy X3N1YnNsaWNlOwo+IC0KPiAtCS8qIFdlIGRvbid0IGhhdmUgbW9yZSB0aGFuIDggZXVzIHBlciBz dWJzbGljZSBhdCB0aGUgbW9tZW50IGFuZCBhcyB3ZQo+IC0JICogc3RvcmUgZXVzIGVuYWJsZWQg dXNpbmcgYml0cywgbm8gbmVlZCB0byBtdWx0aXBseSBieSBldXMgcGVyCj4gLQkgKiBzdWJzbGlj ZS4KPiAtCSAqLwo+IC0JdTggZXVfbWFza1tHRU5fTUFYX1NMSUNFUyAqIEdFTl9NQVhfU1VCU0xJ Q0VTXTsKPiAtfTsKPiAtCj4gICBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gewo+ICAgCXUxNiBn ZW5fbWFzazsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gaW5k ZXggZWVhOWJlYzA0ZjFiLi5hZDJhNjgzZDk3ZjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9lbmdpbmVfY3MuYwo+IEBAIC01ODgsNiArNTg4LDEwIEBAIGludCBpbnRlbF9lbmdpbmVf c2V0dXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAlpbnRlbF9l bmdpbmVfaW5pdF9iYXRjaF9wb29sKGVuZ2luZSk7Cj4gICAJaW50ZWxfZW5naW5lX2luaXRfY21k X3BhcnNlcihlbmdpbmUpOwo+ICAgCj4gKwkvKiBVc2UgdGhlIHdob2xlIGRldmljZSBieSBkZWZh dWx0ICovCj4gKwllbmdpbmUtPnNzZXUgPQo+ICsJCWludGVsX2RldmljZV9kZWZhdWx0X3NzZXUo JlJVTlRJTUVfSU5GTyhlbmdpbmUtPmk5MTUpLT5zc2V1KTsKPiArCj4gICAJcmV0dXJuIDA7Cj4g ICAKPiAgIGVycl9od3NwOgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9lbmdpbmVfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBl cy5oCj4gaW5kZXggMWY5NzBjNzZiNmE2Li5kMDdhMDFiM2VkMGIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5cGVzLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+IEBAIC0xNyw2ICsxNyw3IEBACj4gICAj aW5jbHVkZSAiaTkxNV9wcmlvbGlzdF90eXBlcy5oIgo+ICAgI2luY2x1ZGUgImk5MTVfc2VsZnRl c3QuaCIKPiAgICNpbmNsdWRlICJpOTE1X3RpbWVsaW5lX3R5cGVzLmgiCj4gKyNpbmNsdWRlICJp bnRlbF9zc2V1LmgiCj4gICAjaW5jbHVkZSAiaW50ZWxfd29ya2Fyb3VuZHNfdHlwZXMuaCIKPiAg IAo+ICAgI2luY2x1ZGUgImk5MTVfZ2VtX2JhdGNoX3Bvb2wuaCIKPiBAQCAtMjc4LDYgKzI3OSw4 IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mgewo+ICAgCXUzMiBjb250ZXh0X3NpemU7Cj4gICAJ dTMyIG1taW9fYmFzZTsKPiAgIAo+ICsJc3RydWN0IGludGVsX3NzZXUgc3NldTsKPiArCj4gICAJ c3RydWN0IGludGVsX3JpbmcgKmJ1ZmZlcjsKPiAgIAo+ICAgCXN0cnVjdCBpOTE1X3RpbWVsaW5l IHRpbWVsaW5lOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNGUwYTM1MWJmYmNh Li4xOGE5ZGM2Y2E4NzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0xMjMy LDcgKzEyMzIsNyBAQCBfX2V4ZWNsaXN0c191cGRhdGVfcmVnX3N0YXRlKHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZSwKPiAgIAkvKiBSUENTICovCj4gICAJaWYgKGVuZ2luZS0+Y2xhc3MgPT0gUkVO REVSX0NMQVNTKQo+ICAgCQlyZWdzW0NUWF9SX1BXUl9DTEtfU1RBVEUgKyAxXSA9Cj4gLQkJCWdl bjhfbWFrZV9ycGNzKGVuZ2luZS0+aTkxNSwgJmNlLT5zc2V1KTsKPiArCQkJaW50ZWxfc3NldV9t YWtlX3JwY3MoZW5naW5lLT5pOTE1LCAmY2UtPnNzZXUpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMg aW50Cj4gQEAgLTI1NTEsMTM4ICsyNTUxLDYgQEAgaW50IGxvZ2ljYWxfeGNzX3JpbmdfaW5pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJcmV0dXJuIGxvZ2ljYWxfcmluZ19p bml0KGVuZ2luZSk7Cj4gICB9Cj4gICAKPiAtdTMyIGdlbjhfbWFrZV9ycGNzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3QgaW50ZWxfc3NldSAqcmVxX3NzZXUpCj4gLXsKPiAt CWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhpOTE1KS0+ c3NldTsKPiAtCWJvb2wgc3Vic2xpY2VfcGcgPSBzc2V1LT5oYXNfc3Vic2xpY2VfcGc7Cj4gLQlz dHJ1Y3QgaW50ZWxfc3NldSBjdHhfc3NldTsKPiAtCXU4IHNsaWNlcywgc3Vic2xpY2VzOwo+IC0J dTMyIHJwY3MgPSAwOwo+IC0KPiAtCS8qCj4gLQkgKiBObyBleHBsaWNpdCBSUENTIHJlcXVlc3Qg aXMgbmVlZGVkIHRvIGVuc3VyZSBmdWxsCj4gLQkgKiBzbGljZS9zdWJzbGljZS9FVSBlbmFibGVt ZW50IHByaW9yIHRvIEdlbjkuCj4gLQkqLwo+IC0JaWYgKElOVEVMX0dFTihpOTE1KSA8IDkpCj4g LQkJcmV0dXJuIDA7Cj4gLQo+IC0JLyoKPiAtCSAqIElmIGk5MTUvcGVyZiBpcyBhY3RpdmUsIHdl IHdhbnQgYSBzdGFibGUgcG93ZXJnYXRpbmcgY29uZmlndXJhdGlvbgo+IC0JICogb24gdGhlIHN5 c3RlbS4KPiAtCSAqCj4gLQkgKiBXZSBjb3VsZCBjaG9vc2UgZnVsbCBlbmFibGVtZW50LCBidXQg b24gSUNMIHdlIGtub3cgdGhlcmUgYXJlIHVzZQo+IC0JICogY2FzZXMgd2hpY2ggZGlzYWJsZSBz bGljZXMgZm9yIGZ1bmN0aW9uYWwsIGFwYXJ0IGZvciBwZXJmb3JtYW5jZQo+IC0JICogcmVhc29u cy4gU28gaW4gdGhpcyBjYXNlIHdlIHNlbGVjdCBhIGtub3duIHN0YWJsZSBzdWJzZXQuCj4gLQkg Ki8KPiAtCWlmICghaTkxNS0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtKSB7Cj4gLQkJY3R4X3Nz ZXUgPSAqcmVxX3NzZXU7Cj4gLQl9IGVsc2Ugewo+IC0JCWN0eF9zc2V1ID0gaW50ZWxfZGV2aWNl X2RlZmF1bHRfc3NldShpOTE1KTsKPiAtCj4gLQkJaWYgKElTX0dFTihpOTE1LCAxMSkpIHsKPiAt CQkJLyoKPiAtCQkJICogV2Ugb25seSBuZWVkIHN1YnNsaWNlIGNvdW50IHNvIGl0IGRvZXNuJ3Qg bWF0dGVyCj4gLQkJCSAqIHdoaWNoIG9uZXMgd2Ugc2VsZWN0IC0ganVzdCB0dXJuIG9mZiBsb3cg Yml0cyBpbiB0aGUKPiAtCQkJICogYW1vdW50IG9mIGhhbGYgb2YgYWxsIGF2YWlsYWJsZSBzdWJz bGljZXMgcGVyIHNsaWNlLgo+IC0JCQkgKi8KPiAtCQkJY3R4X3NzZXUuc3Vic2xpY2VfbWFzayA9 Cj4gLQkJCQl+KH4wIDw8IChod2VpZ2h0OChjdHhfc3NldS5zdWJzbGljZV9tYXNrKSAvIDIpKTsK PiAtCQkJY3R4X3NzZXUuc2xpY2VfbWFzayA9IDB4MTsKPiAtCQl9Cj4gLQl9Cj4gLQo+IC0Jc2xp Y2VzID0gaHdlaWdodDgoY3R4X3NzZXUuc2xpY2VfbWFzayk7Cj4gLQlzdWJzbGljZXMgPSBod2Vp Z2h0OChjdHhfc3NldS5zdWJzbGljZV9tYXNrKTsKPiAtCj4gLQkvKgo+IC0JICogU2luY2UgdGhl IFNTY291bnQgYml0ZmllbGQgaW4gR0VOOF9SX1BXUl9DTEtfU1RBVEUgaXMgb25seSB0aHJlZSBi aXRzCj4gLQkgKiB3aWRlIGFuZCBJY2VsYWtlIGhhcyB1cCB0byBlaWdodCBzdWJzbGljZXMsIHNw ZWNmaWFsIHByb2dyYW1taW5nIGlzCj4gLQkgKiBuZWVkZWQgaW4gb3JkZXIgdG8gY29ycmVjdGx5 IGVuYWJsZSBhbGwgc3Vic2xpY2VzLgo+IC0JICoKPiAtCSAqIEFjY29yZGluZyB0byBkb2N1bWVu dGF0aW9uIHNvZnR3YXJlIG11c3QgY29uc2lkZXIgdGhlIGNvbmZpZ3VyYXRpb24KPiAtCSAqIGFz IDJ4NHg4IGFuZCBoYXJkd2FyZSB3aWxsIHRyYW5zbGF0ZSB0aGlzIHRvIDF4OHg4Lgo+IC0JICoK PiAtCSAqIEZ1cnRoZW1vcmUsIGV2ZW4gdGhvdWdoIFNTY291bnQgaXMgdGhyZWUgYml0cywgbWF4 aW11bSBkb2N1bWVudGVkCj4gLQkgKiB2YWx1ZSBmb3IgaXQgaXMgZm91ci4gRnJvbSB0aGlzIHNv bWUgcnVsZXMvcmVzdHJpY3Rpb25zIGZvbGxvdzoKPiAtCSAqCj4gLQkgKiAxLgo+IC0JICogSWYg ZW5hYmxlZCBzdWJzbGljZSBjb3VudCBpcyBncmVhdGVyIHRoYW4gZm91ciwgdHdvIHdob2xlIHNs aWNlcyBtdXN0Cj4gLQkgKiBiZSBlbmFibGVkIGluc3RlYWQuCj4gLQkgKgo+IC0JICogMi4KPiAt CSAqIFdoZW4gbW9yZSB0aGFuIG9uZSBzbGljZSBpcyBlbmFibGVkLCBoYXJkd2FyZSBpZ25vcmVz IHRoZSBzdWJzbGljZQo+IC0JICogY291bnQgYWx0b2dldGhlci4KPiAtCSAqCj4gLQkgKiBGcm9t IHRoZXNlIHJlc3RyaWN0aW9ucyBpdCBmb2xsb3dzIHRoYXQgaXQgaXMgbm90IHBvc3NpYmxlIHRv IGVuYWJsZQo+IC0JICogYSBjb3VudCBvZiBzdWJzbGljZXMgYmV0d2VlbiB0aGUgU1Njb3VudCBt YXhpbXVtIG9mIGZvdXIgcmVzdHJpY3Rpb24sCj4gLQkgKiBhbmQgdGhlIG1heGltdW0gYXZhaWxh YmxlIG51bWJlciBvbiBhIHBhcnRpY3VsYXIgU0tVLiBFaXRoZXIgYWxsCj4gLQkgKiBzdWJzbGlj ZXMgYXJlIGVuYWJsZWQsIG9yIGEgY291bnQgYmV0d2VlbiBvbmUgYW5kIGZvdXIgb24gdGhlIGZp cnN0Cj4gLQkgKiBzbGljZS4KPiAtCSAqLwo+IC0JaWYgKElTX0dFTihpOTE1LCAxMSkgJiYKPiAt CSAgICBzbGljZXMgPT0gMSAmJgo+IC0JICAgIHN1YnNsaWNlcyA+IG1pbl90KHU4LCA0LCBod2Vp Z2h0OChzc2V1LT5zdWJzbGljZV9tYXNrWzBdKSAvIDIpKSB7Cj4gLQkJR0VNX0JVR19PTihzdWJz bGljZXMgJiAxKTsKPiAtCj4gLQkJc3Vic2xpY2VfcGcgPSBmYWxzZTsKPiAtCQlzbGljZXMgKj0g MjsKPiAtCX0KPiAtCj4gLQkvKgo+IC0JICogU3RhcnRpbmcgaW4gR2VuOSwgcmVuZGVyIHBvd2Vy IGdhdGluZyBjYW4gbGVhdmUKPiAtCSAqIHNsaWNlL3N1YnNsaWNlL0VVIGluIGEgcGFydGlhbGx5 IGVuYWJsZWQgc3RhdGUuIFdlCj4gLQkgKiBtdXN0IG1ha2UgYW4gZXhwbGljaXQgcmVxdWVzdCB0 aHJvdWdoIFJQQ1MgZm9yIGZ1bGwKPiAtCSAqIGVuYWJsZW1lbnQuCj4gLQkqLwo+IC0JaWYgKHNz ZXUtPmhhc19zbGljZV9wZykgewo+IC0JCXUzMiBtYXNrLCB2YWwgPSBzbGljZXM7Cj4gLQo+IC0J CWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpIHsKPiAtCQkJbWFzayA9IEdFTjExX1JQQ1NfU19D TlRfTUFTSzsKPiAtCQkJdmFsIDw8PSBHRU4xMV9SUENTX1NfQ05UX1NISUZUOwo+IC0JCX0gZWxz ZSB7Cj4gLQkJCW1hc2sgPSBHRU44X1JQQ1NfU19DTlRfTUFTSzsKPiAtCQkJdmFsIDw8PSBHRU44 X1JQQ1NfU19DTlRfU0hJRlQ7Cj4gLQkJfQo+IC0KPiAtCQlHRU1fQlVHX09OKHZhbCAmIH5tYXNr KTsKPiAtCQl2YWwgJj0gbWFzazsKPiAtCj4gLQkJcnBjcyB8PSBHRU44X1JQQ1NfRU5BQkxFIHwg R0VOOF9SUENTX1NfQ05UX0VOQUJMRSB8IHZhbDsKPiAtCX0KPiAtCj4gLQlpZiAoc3Vic2xpY2Vf cGcpIHsKPiAtCQl1MzIgdmFsID0gc3Vic2xpY2VzOwo+IC0KPiAtCQl2YWwgPDw9IEdFTjhfUlBD U19TU19DTlRfU0hJRlQ7Cj4gLQo+IC0JCUdFTV9CVUdfT04odmFsICYgfkdFTjhfUlBDU19TU19D TlRfTUFTSyk7Cj4gLQkJdmFsICY9IEdFTjhfUlBDU19TU19DTlRfTUFTSzsKPiAtCj4gLQkJcnBj cyB8PSBHRU44X1JQQ1NfRU5BQkxFIHwgR0VOOF9SUENTX1NTX0NOVF9FTkFCTEUgfCB2YWw7Cj4g LQl9Cj4gLQo+IC0JaWYgKHNzZXUtPmhhc19ldV9wZykgewo+IC0JCXUzMiB2YWw7Cj4gLQo+IC0J CXZhbCA9IGN0eF9zc2V1Lm1pbl9ldXNfcGVyX3N1YnNsaWNlIDw8IEdFTjhfUlBDU19FVV9NSU5f U0hJRlQ7Cj4gLQkJR0VNX0JVR19PTih2YWwgJiB+R0VOOF9SUENTX0VVX01JTl9NQVNLKTsKPiAt CQl2YWwgJj0gR0VOOF9SUENTX0VVX01JTl9NQVNLOwo+IC0KPiAtCQlycGNzIHw9IHZhbDsKPiAt Cj4gLQkJdmFsID0gY3R4X3NzZXUubWF4X2V1c19wZXJfc3Vic2xpY2UgPDwgR0VOOF9SUENTX0VV X01BWF9TSElGVDsKPiAtCQlHRU1fQlVHX09OKHZhbCAmIH5HRU44X1JQQ1NfRVVfTUFYX01BU0sp Owo+IC0JCXZhbCAmPSBHRU44X1JQQ1NfRVVfTUFYX01BU0s7Cj4gLQo+IC0JCXJwY3MgfD0gdmFs Owo+IC0KPiAtCQlycGNzIHw9IEdFTjhfUlBDU19FTkFCTEU7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJu IHJwY3M7Cj4gLX0KPiAtCj4gICBzdGF0aWMgdTMyIGludGVsX2xyX2luZGlyZWN0X2N0eF9vZmZz ZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+ICAgCXUzMiBpbmRpcmVj dF9jdHhfb2Zmc2V0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gaW5kZXggODRhYTIzMGVh MjdiLi45OWY3NWVlOWQwODcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IEBAIC0x MTUsNiArMTE1LDQgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfc2hvd19yZXF1ZXN0cyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJCQkJCQkJY29uc3QgY2hhciAqcHJlZml4KSwK PiAgIAkJCQkgICB1bnNpZ25lZCBpbnQgbWF4KTsKPiAgIAo+IC11MzIgZ2VuOF9tYWtlX3JwY3Mo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBpbnRlbF9zc2V1ICpjdHhfc3Nl dSk7Cj4gLQo+ICAgI2VuZGlmIC8qIF9JTlRFTF9MUkNfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3NldS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc3NldS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmNm YzgwODEzZjY2Mgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zc2V1LmMKPiBAQCAtMCwwICsxLDE0MiBAQAo+ICsvKgo+ICsgKiBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogTUlUCj4gKyAqCj4gKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBv cmF0aW9uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gKyNpbmNsdWRlICJp bnRlbF9scmNfcmVnLmgiCj4gKyNpbmNsdWRlICJpbnRlbF9zc2V1LmgiCj4gKwo+ICt1MzIgaW50 ZWxfc3NldV9tYWtlX3JwY3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gKwkJCSBj b25zdCBzdHJ1Y3QgaW50ZWxfc3NldSAqcmVxX3NzZXUpCj4gK3sKPiArCWNvbnN0IHN0cnVjdCBz c2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhpOTE1KS0+c3NldTsKPiArCWJvb2wg c3Vic2xpY2VfcGcgPSBzc2V1LT5oYXNfc3Vic2xpY2VfcGc7Cj4gKwlzdHJ1Y3QgaW50ZWxfc3Nl dSBjdHhfc3NldTsKPiArCXU4IHNsaWNlcywgc3Vic2xpY2VzOwo+ICsJdTMyIHJwY3MgPSAwOwo+ ICsKPiArCS8qCj4gKwkgKiBObyBleHBsaWNpdCBSUENTIHJlcXVlc3QgaXMgbmVlZGVkIHRvIGVu c3VyZSBmdWxsCj4gKwkgKiBzbGljZS9zdWJzbGljZS9FVSBlbmFibGVtZW50IHByaW9yIHRvIEdl bjkuCj4gKwkgKi8KPiArCWlmIChJTlRFTF9HRU4oaTkxNSkgPCA5KQo+ICsJCXJldHVybiAwOwo+ ICsKPiArCS8qCj4gKwkgKiBJZiBpOTE1L3BlcmYgaXMgYWN0aXZlLCB3ZSB3YW50IGEgc3RhYmxl IHBvd2VyZ2F0aW5nIGNvbmZpZ3VyYXRpb24KPiArCSAqIG9uIHRoZSBzeXN0ZW0uCj4gKwkgKgo+ ICsJICogV2UgY291bGQgY2hvb3NlIGZ1bGwgZW5hYmxlbWVudCwgYnV0IG9uIElDTCB3ZSBrbm93 IHRoZXJlIGFyZSB1c2UKPiArCSAqIGNhc2VzIHdoaWNoIGRpc2FibGUgc2xpY2VzIGZvciBmdW5j dGlvbmFsLCBhcGFydCBmb3IgcGVyZm9ybWFuY2UKPiArCSAqIHJlYXNvbnMuIFNvIGluIHRoaXMg Y2FzZSB3ZSBzZWxlY3QgYSBrbm93biBzdGFibGUgc3Vic2V0Lgo+ICsJICovCj4gKwlpZiAoIWk5 MTUtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSkgewo+ICsJCWN0eF9zc2V1ID0gKnJlcV9zc2V1 Owo+ICsJfSBlbHNlIHsKPiArCQljdHhfc3NldSA9IGludGVsX2RldmljZV9kZWZhdWx0X3NzZXUo c3NldSk7Cj4gKwo+ICsJCWlmIChJU19HRU4oaTkxNSwgMTEpKSB7Cj4gKwkJCS8qCj4gKwkJCSAq IFdlIG9ubHkgbmVlZCBzdWJzbGljZSBjb3VudCBzbyBpdCBkb2Vzbid0IG1hdHRlcgo+ICsJCQkg KiB3aGljaCBvbmVzIHdlIHNlbGVjdCAtIGp1c3QgdHVybiBvZmYgbG93IGJpdHMgaW4gdGhlCj4g KwkJCSAqIGFtb3VudCBvZiBoYWxmIG9mIGFsbCBhdmFpbGFibGUgc3Vic2xpY2VzIHBlciBzbGlj ZS4KPiArCQkJICovCj4gKwkJCWN0eF9zc2V1LnN1YnNsaWNlX21hc2sgPQo+ICsJCQkJfih+MCA8 PCAoaHdlaWdodDgoY3R4X3NzZXUuc3Vic2xpY2VfbWFzaykgLyAyKSk7Cj4gKwkJCWN0eF9zc2V1 LnNsaWNlX21hc2sgPSAweDE7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXNsaWNlcyA9IGh3ZWlnaHQ4 KGN0eF9zc2V1LnNsaWNlX21hc2spOwo+ICsJc3Vic2xpY2VzID0gaHdlaWdodDgoY3R4X3NzZXUu c3Vic2xpY2VfbWFzayk7Cj4gKwo+ICsJLyoKPiArCSAqIFNpbmNlIHRoZSBTU2NvdW50IGJpdGZp ZWxkIGluIEdFTjhfUl9QV1JfQ0xLX1NUQVRFIGlzIG9ubHkgdGhyZWUgYml0cwo+ICsJICogd2lk ZSBhbmQgSWNlbGFrZSBoYXMgdXAgdG8gZWlnaHQgc3Vic2xpY2VzLCBzcGVjZmlhbCBwcm9ncmFt bWluZyBpcwo+ICsJICogbmVlZGVkIGluIG9yZGVyIHRvIGNvcnJlY3RseSBlbmFibGUgYWxsIHN1 YnNsaWNlcy4KPiArCSAqCj4gKwkgKiBBY2NvcmRpbmcgdG8gZG9jdW1lbnRhdGlvbiBzb2Z0d2Fy ZSBtdXN0IGNvbnNpZGVyIHRoZSBjb25maWd1cmF0aW9uCj4gKwkgKiBhcyAyeDR4OCBhbmQgaGFy ZHdhcmUgd2lsbCB0cmFuc2xhdGUgdGhpcyB0byAxeDh4OC4KPiArCSAqCj4gKwkgKiBGdXJ0aGVt b3JlLCBldmVuIHRob3VnaCBTU2NvdW50IGlzIHRocmVlIGJpdHMsIG1heGltdW0gZG9jdW1lbnRl ZAo+ICsJICogdmFsdWUgZm9yIGl0IGlzIGZvdXIuIEZyb20gdGhpcyBzb21lIHJ1bGVzL3Jlc3Ry aWN0aW9ucyBmb2xsb3c6Cj4gKwkgKgo+ICsJICogMS4KPiArCSAqIElmIGVuYWJsZWQgc3Vic2xp Y2UgY291bnQgaXMgZ3JlYXRlciB0aGFuIGZvdXIsIHR3byB3aG9sZSBzbGljZXMgbXVzdAo+ICsJ ICogYmUgZW5hYmxlZCBpbnN0ZWFkLgo+ICsJICoKPiArCSAqIDIuCj4gKwkgKiBXaGVuIG1vcmUg dGhhbiBvbmUgc2xpY2UgaXMgZW5hYmxlZCwgaGFyZHdhcmUgaWdub3JlcyB0aGUgc3Vic2xpY2UK PiArCSAqIGNvdW50IGFsdG9nZXRoZXIuCj4gKwkgKgo+ICsJICogRnJvbSB0aGVzZSByZXN0cmlj dGlvbnMgaXQgZm9sbG93cyB0aGF0IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBlbmFibGUKPiArCSAq IGEgY291bnQgb2Ygc3Vic2xpY2VzIGJldHdlZW4gdGhlIFNTY291bnQgbWF4aW11bSBvZiBmb3Vy IHJlc3RyaWN0aW9uLAo+ICsJICogYW5kIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBudW1iZXIgb24g YSBwYXJ0aWN1bGFyIFNLVS4gRWl0aGVyIGFsbAo+ICsJICogc3Vic2xpY2VzIGFyZSBlbmFibGVk LCBvciBhIGNvdW50IGJldHdlZW4gb25lIGFuZCBmb3VyIG9uIHRoZSBmaXJzdAo+ICsJICogc2xp Y2UuCj4gKwkgKi8KPiArCWlmIChJU19HRU4oaTkxNSwgMTEpICYmCj4gKwkgICAgc2xpY2VzID09 IDEgJiYKPiArCSAgICBzdWJzbGljZXMgPiBtaW5fdCh1OCwgNCwgaHdlaWdodDgoc3NldS0+c3Vi c2xpY2VfbWFza1swXSkgLyAyKSkgewo+ICsJCUdFTV9CVUdfT04oc3Vic2xpY2VzICYgMSk7Cj4g Kwo+ICsJCXN1YnNsaWNlX3BnID0gZmFsc2U7Cj4gKwkJc2xpY2VzICo9IDI7Cj4gKwl9Cj4gKwo+ ICsJLyoKPiArCSAqIFN0YXJ0aW5nIGluIEdlbjksIHJlbmRlciBwb3dlciBnYXRpbmcgY2FuIGxl YXZlCj4gKwkgKiBzbGljZS9zdWJzbGljZS9FVSBpbiBhIHBhcnRpYWxseSBlbmFibGVkIHN0YXRl LiBXZQo+ICsJICogbXVzdCBtYWtlIGFuIGV4cGxpY2l0IHJlcXVlc3QgdGhyb3VnaCBSUENTIGZv ciBmdWxsCj4gKwkgKiBlbmFibGVtZW50Lgo+ICsJICovCj4gKwlpZiAoc3NldS0+aGFzX3NsaWNl X3BnKSB7Cj4gKwkJdTMyIG1hc2ssIHZhbCA9IHNsaWNlczsKPiArCj4gKwkJaWYgKElOVEVMX0dF TihpOTE1KSA+PSAxMSkgewo+ICsJCQltYXNrID0gR0VOMTFfUlBDU19TX0NOVF9NQVNLOwo+ICsJ CQl2YWwgPDw9IEdFTjExX1JQQ1NfU19DTlRfU0hJRlQ7Cj4gKwkJfSBlbHNlIHsKPiArCQkJbWFz ayA9IEdFTjhfUlBDU19TX0NOVF9NQVNLOwo+ICsJCQl2YWwgPDw9IEdFTjhfUlBDU19TX0NOVF9T SElGVDsKPiArCQl9Cj4gKwo+ICsJCUdFTV9CVUdfT04odmFsICYgfm1hc2spOwo+ICsJCXZhbCAm PSBtYXNrOwo+ICsKPiArCQlycGNzIHw9IEdFTjhfUlBDU19FTkFCTEUgfCBHRU44X1JQQ1NfU19D TlRfRU5BQkxFIHwgdmFsOwo+ICsJfQo+ICsKPiArCWlmIChzdWJzbGljZV9wZykgewo+ICsJCXUz MiB2YWwgPSBzdWJzbGljZXM7Cj4gKwo+ICsJCXZhbCA8PD0gR0VOOF9SUENTX1NTX0NOVF9TSElG VDsKPiArCj4gKwkJR0VNX0JVR19PTih2YWwgJiB+R0VOOF9SUENTX1NTX0NOVF9NQVNLKTsKPiAr CQl2YWwgJj0gR0VOOF9SUENTX1NTX0NOVF9NQVNLOwo+ICsKPiArCQlycGNzIHw9IEdFTjhfUlBD U19FTkFCTEUgfCBHRU44X1JQQ1NfU1NfQ05UX0VOQUJMRSB8IHZhbDsKPiArCX0KPiArCj4gKwlp ZiAoc3NldS0+aGFzX2V1X3BnKSB7Cj4gKwkJdTMyIHZhbDsKPiArCj4gKwkJdmFsID0gY3R4X3Nz ZXUubWluX2V1c19wZXJfc3Vic2xpY2UgPDwgR0VOOF9SUENTX0VVX01JTl9TSElGVDsKPiArCQlH RU1fQlVHX09OKHZhbCAmIH5HRU44X1JQQ1NfRVVfTUlOX01BU0spOwo+ICsJCXZhbCAmPSBHRU44 X1JQQ1NfRVVfTUlOX01BU0s7Cj4gKwo+ICsJCXJwY3MgfD0gdmFsOwo+ICsKPiArCQl2YWwgPSBj dHhfc3NldS5tYXhfZXVzX3Blcl9zdWJzbGljZSA8PCBHRU44X1JQQ1NfRVVfTUFYX1NISUZUOwo+ ICsJCUdFTV9CVUdfT04odmFsICYgfkdFTjhfUlBDU19FVV9NQVhfTUFTSyk7Cj4gKwkJdmFsICY9 IEdFTjhfUlBDU19FVV9NQVhfTUFTSzsKPiArCj4gKwkJcnBjcyB8PSB2YWw7Cj4gKwo+ICsJCXJw Y3MgfD0gR0VOOF9SUENTX0VOQUJMRTsKPiArCX0KPiArCj4gKwlyZXR1cm4gcnBjczsKPiArfQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zc2V1LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zc2V1LmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IDAwMDAwMDAwMDAwMC4uYmY2ZmEwMTlmZDAwCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3NzZXUuaAo+IEBAIC0wLDAgKzEsNjcgQEAKPiArLyoKPiAr ICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgwqkg MjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19JTlRFTF9TU0VV X0hfXwo+ICsjZGVmaW5lIF9fSU5URUxfU1NFVV9IX18KPiArCj4gKyNpbmNsdWRlIDxsaW51eC90 eXBlcy5oPgo+ICsKPiArc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4gKwo+ICsjZGVmaW5lIEdF Tl9NQVhfU0xJQ0VTCQkoNikgLyogQ05MIHVwcGVyIGJvdW5kICovCj4gKyNkZWZpbmUgR0VOX01B WF9TVUJTTElDRVMJKDgpIC8qIElDTCB1cHBlciBib3VuZCAqLwo+ICsKPiArc3RydWN0IHNzZXVf ZGV2X2luZm8gewo+ICsJdTggc2xpY2VfbWFzazsKPiArCXU4IHN1YnNsaWNlX21hc2tbR0VOX01B WF9TTElDRVNdOwo+ICsJdTE2IGV1X3RvdGFsOwo+ICsJdTggZXVfcGVyX3N1YnNsaWNlOwo+ICsJ dTggbWluX2V1X2luX3Bvb2w7Cj4gKwkvKiBGb3IgZWFjaCBzbGljZSwgd2hpY2ggc3Vic2xpY2Uo cykgaGFzKGhhdmUpIDcgRVVzIChiaXRmaWVsZCk/ICovCj4gKwl1OCBzdWJzbGljZV83ZXVbM107 Cj4gKwl1OCBoYXNfc2xpY2VfcGc6MTsKPiArCXU4IGhhc19zdWJzbGljZV9wZzoxOwo+ICsJdTgg aGFzX2V1X3BnOjE7Cj4gKwo+ICsJLyogVG9wb2xvZ3kgZmllbGRzICovCj4gKwl1OCBtYXhfc2xp Y2VzOwo+ICsJdTggbWF4X3N1YnNsaWNlczsKPiArCXU4IG1heF9ldXNfcGVyX3N1YnNsaWNlOwo+ ICsKPiArCS8qIFdlIGRvbid0IGhhdmUgbW9yZSB0aGFuIDggZXVzIHBlciBzdWJzbGljZSBhdCB0 aGUgbW9tZW50IGFuZCBhcyB3ZQo+ICsJICogc3RvcmUgZXVzIGVuYWJsZWQgdXNpbmcgYml0cywg bm8gbmVlZCB0byBtdWx0aXBseSBieSBldXMgcGVyCj4gKwkgKiBzdWJzbGljZS4KPiArCSAqLwo+ ICsJdTggZXVfbWFza1tHRU5fTUFYX1NMSUNFUyAqIEdFTl9NQVhfU1VCU0xJQ0VTXTsKPiArfTsK PiArCj4gKy8qCj4gKyAqIFBvd2VyZ2F0aW5nIGNvbmZpZ3VyYXRpb24gZm9yIGEgcGFydGljdWxh ciAoY29udGV4dCxlbmdpbmUpLgo+ICsgKi8KPiArc3RydWN0IGludGVsX3NzZXUgewo+ICsJdTgg c2xpY2VfbWFzazsKPiArCXU4IHN1YnNsaWNlX21hc2s7Cj4gKwl1OCBtaW5fZXVzX3Blcl9zdWJz bGljZTsKPiArCXU4IG1heF9ldXNfcGVyX3N1YnNsaWNlOwo+ICt9Owo+ICsKPiArc3RhdGljIGlu bGluZSBzdHJ1Y3QgaW50ZWxfc3NldQo+ICtpbnRlbF9kZXZpY2VfZGVmYXVsdF9zc2V1KGNvbnN0 IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1KQoKQXMgc2FpZCBiZWZvcmUsIGlmIHlvdSByZW5h bWUgdGhpcyBmdW5jdGlvbiB0byBpbnRlbF9kZXZpY2Vfc3NldSwgCmludGVsX2NvbnZlcnRfZGV2 aWNlX3NzZXUsIG9yIHNvbWV0aGluZywgSSB3b3VsZCBiZSBmaW5lIHdpdGggdGhlIHBhdGNoLiAK QmFzaWNhbGx5IEkgb2JqZWN0IHRvIHRoZSBkZWZhdWx0IGluIHRoZSBuYW1lIHNpbmNlIHRoZSBz c2V1IGlzIHBhc3NlZCAKaW4gYW5kIGNvdWxkIGJlIGFueS4KClJlZ2FyZHMsCgpUdnJ0a28KCj4g K3sKPiArCXN0cnVjdCBpbnRlbF9zc2V1IHZhbHVlID0gewo+ICsJCS5zbGljZV9tYXNrID0gc3Nl dS0+c2xpY2VfbWFzaywKPiArCQkuc3Vic2xpY2VfbWFzayA9IHNzZXUtPnN1YnNsaWNlX21hc2tb MF0sCj4gKwkJLm1pbl9ldXNfcGVyX3N1YnNsaWNlID0gc3NldS0+bWF4X2V1c19wZXJfc3Vic2xp Y2UsCj4gKwkJLm1heF9ldXNfcGVyX3N1YnNsaWNlID0gc3NldS0+bWF4X2V1c19wZXJfc3Vic2xp Y2UsCj4gKwl9Owo+ICsKPiArCXJldHVybiB2YWx1ZTsKPiArfQo+ICsKPiArdTMyIGludGVsX3Nz ZXVfbWFrZV9ycGNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICsJCQkgY29uc3Qg c3RydWN0IGludGVsX3NzZXUgKnJlcV9zc2V1KTsKPiArCj4gKyNlbmRpZiAvKiBfX0lOVEVMX1NT RVVfSF9fICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p OTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9n ZW1fY29udGV4dC5jCj4gaW5kZXggNGUxYjZlZmM2YjIyLi5lMWNiMjJmMDNlOGUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMK PiBAQCAtOTYyLDggKzk2Miw3IEBAIF9fc3NldV9maW5pc2goc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCj4gICAJICAgICAgdW5zaWduZWQgaW50IGV4cGVjdGVkLAo+ICAgCSAgICAgIHN0 cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbikKPiAgIHsKPiAtCXVuc2lnbmVkIGludCBzbGljZXMgPQo+ IC0JCWh3ZWlnaHQzMihpbnRlbF9kZXZpY2VfZGVmYXVsdF9zc2V1KGk5MTUpLnNsaWNlX21hc2sp Owo+ICsJdW5zaWduZWQgaW50IHNsaWNlcyA9IGh3ZWlnaHQzMihlbmdpbmUtPnNzZXUuc2xpY2Vf bWFzayk7Cj4gICAJdTMyIHJwY3MgPSAwOwo+ICAgCWludCByZXQgPSAwOwo+ICAgCj4gQEAgLTEw NDcsOCArMTA0Niw4IEBAIF9faWd0X2N0eF9zc2V1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAo+ICAgCSAgICAgICBjb25zdCBjaGFyICpuYW1lLAo+ICAgCSAgICAgICB1bnNpZ25lZCBp bnQgZmxhZ3MpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfc3NldSBkZWZhdWx0X3NzZXUgPSBpbnRl bF9kZXZpY2VfZGVmYXVsdF9zc2V1KGk5MTUpOwo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSA9IGk5MTUtPmVuZ2luZVtSQ1MwXTsKPiArCXN0cnVjdCBpbnRlbF9zc2V1IGRlZmF1 bHRfc3NldSA9IGVuZ2luZS0+c3NldTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqOwo+ICAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gICAJc3RydWN0IGludGVs X3NzZXUgcGdfc3NldTsKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4