From mboxrd@z Thu Jan 1 00:00:00 1970 From: "He, Min" Subject: Re: [PATCH v4] drm/i915: Remove i915.enable_ppgtt override Date: Wed, 26 Sep 2018 01:06:25 +0000 Message-ID: References: <20180925114820.15987-1-chris@chris-wilson.co.uk> <153788174356.4409.4188886695889054424@jlahtine-desk.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id CCCDC89D52 for ; Wed, 26 Sep 2018 01:09:59 +0000 (UTC) In-Reply-To: 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: "Wang, Zhi A" , Joonas Lahtinen , Chris Wilson , "intel-gfx@lists.freedesktop.org" , Zhenyu Wang Cc: "Auld, Matthew" List-Id: intel-gfx@lists.freedesktop.org Tm8uIFdlIGNoYW5nZWQgdG8gZnVsbCA0OGJpdCBwcGd0dCBsb25nIHRpbWUgYWdvLiA6KQ0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdhbmcsIFpoaSBBDQo+IFNlbnQ6 IFdlZG5lc2RheSwgU2VwdGVtYmVyIDI2LCAyMDE4IDI6MDEgQU0NCj4gVG86IEpvb25hcyBMYWh0 aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT47IENocmlzIFdpbHNvbg0KPiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPjsgaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZzsgWmhlbnl1IFdhbmcNCj4gPHpoZW55dXdAbGludXguaW50ZWwuY29tPg0KPiBDYzogQXVsZCwg TWF0dGhldyA8bWF0dGhldy5hdWxkQGludGVsLmNvbT47IEhlLCBNaW4gPG1pbi5oZUBpbnRlbC5j b20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjRdIGRybS9pOTE1OiBSZW1vdmUgaTkxNS5lbmFi bGVfcHBndHQgb3ZlcnJpZGUNCj4gDQo+IEhpIE1pbjoNCj4gDQo+IEkgcmVtZW1iZXJlZCB0aGUg SU9URyBndWVzdCBrZXJuZWwgaXMgdXNpbmcgYWxpYXNpbmctcHBndHQgaW4gdGhlIGxhc3QNCj4g dGVjaG5pY2FsIHNoYXJpbmcgKHByb2JhYmx5IEkgZGlkbid0IHJlbWVtYmVyIGl0IGNvcnJlY3Rs eSkuIENhbiB5b3UNCj4gY29uZmlybT8NCj4gDQo+IEFsc28sIHRoYW5rcyBKb29uYXMgZm9yIHRo ZSByZW1pbmRpbmcuIDopDQo+IA0KPiB0aGFua3MsDQo+IFpoaS4NCj4gDQo+IE9uIDA5LzI1LzE4 IDA5OjIyLCBKb29uYXMgTGFodGluZW4gd3JvdGU6DQo+ID4gKyBaaGkgYW5kIFpoZW55dQ0KPiA+ DQo+ID4gRm9yIG1lIHRoZSBwYXRjaCBsb29rcyBvay4NCj4gPg0KPiA+IEl0IHJlZnVzZXMgdG8g bG9hZCBHVlQgb24gc3lzdGVtcyB3aGVyZSA0OC1iaXQgaXMgbm90IHN1cHBvcnRlZCwgZm9yIG5v dA0KPiA+IHdvcnNlbmluZyB0aGUgc3lzdGVtIHNlY3VyaXR5IHdoZW4gdmlydHVhbGl6YXRpb24g aXMgZW5hYmxlZCAoYXMgYW55Ym9keQ0KPiA+IHdvdWxkIHByb2JhYmx5IGV4cGVjdCB2aXJ0dWFs aXphdGlvbiB0byBpbXByb3ZlIHRoYXQpLiBQbGVhc2Ugc2VlIGNvZGUuDQo+ID4NCj4gPiBEbyB3 ZSBoYXZlIHN1Y2ggc3lzdGVtcyBpbiB0aGUgd2lsZD8gU2hvdWxkIHdlIGluc3RydWN0IHRoZSB1 c2VyIHRvDQo+ID4gdXBkYXRpbmcgdGhlIGh5cGVydmlzb3IgdG8gc3BlY2lmaWMga2VybmVsIHZl cnNpb24gd2hlbiB0aGV5IGhpdCB0aGUNCj4gPiBlcnJvcj8NCj4gPg0KPiA+IFJlZ2FyZHMsIEpv b25hcw0KPiA+DQo+ID4gUXVvdGluZyBDaHJpcyBXaWxzb24gKDIwMTgtMDktMjUgMTQ6NDg6MjAp DQo+ID4+IE5vdyB0aGF0IHdlIGFyZSBjb25maWRlbnQgaW4gcHJvdmlkaW5nIGZ1bGwtcHBndHQg d2hlcmUgc3VwcG9ydGVkLA0KPiA+PiByZW1vdmUgdGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgdGhl IGNvbnRleHQgaXNvbGF0aW9uLg0KPiA+Pg0KPiA+PiB2MjogUmVtb3ZlIGZha2VkIGFsaWFzaW5n LXBwZ3R0IGZvciB0ZXN0aW5nIGFzIGl0IG5vIGxvbmdlciBpcyBhY2NlcHRlZC4NCj4gPj4gdjM6 IHMvVVNFUy9IQVMvIHRvIG1hdGNoIHVzYWdlIGFuZCByZWplY3QgYXR0ZW1wdHMgdG8gbG9hZCB0 aGUgbW9kdWxlDQo+IG9uDQo+ID4+IG9sZCBHVlQtZyBzZXR1cHMgdGhhdCBkbyBub3QgcHJvdmlk ZSBzdXBwb3J0IGZvciBmdWxsLXBwZ3R0Lg0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4NCj4gPj4gQ2M6IEpvb25hcyBMYWh0 aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4NCj4gPj4gQ2M6IE1hdHRoZXcg QXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4NCj4gPj4gLS0tDQo+ID4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgMjIgKysrLS0NCj4gPj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAxNCArLS0NCj4g Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgICAgfCAgMiAr LQ0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICAgICB8 IDg4ICsrLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dwdV9lcnJvci5jICAgICAgICAgfCAgNCArLQ0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGFyYW1zLmMgICAgICAgICAgICB8ICA0IC0NCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BhcmFtcy5oICAgICAgICAgICAgfCAgMSAtDQo+ID4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wY2kuYyAgICAgICAgICAgICAgIHwgMTcgKystLQ0KPiA+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgICAgICB8ICA2ICsrDQo+ID4+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCAgICAgIHwgMTEgKystDQo+ ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAgIHwgMTMg KystDQo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyAg IHwgMTIgKy0tDQo+ID4+ICAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29u dGV4dC5jIHwgNTkgKy0tLS0tLS0tLS0tLQ0KPiA+PiAgIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2k5MTVfZ2VtX2V2aWN0LmMgICB8ICAyICstDQo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jIHwgIDQgKy0NCj4gPj4gICAxNSBmaWxlcyBjaGFu Z2VkLCA2MiBpbnNlcnRpb25zKCspLCAxOTcgZGVsZXRpb25zKC0pDQo+ID4+DQo+ID4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jDQo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYw0KPiA+PiBpbmRleCA0NGUyYzBmNWVjNTAuLjNlZmJiYzcxYzNi NCAxMDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYw0KPiA+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jDQo+ID4+IEBAIC0zNDUsNyAr MzQ1LDcgQEAgc3RhdGljIGludCBpOTE1X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl DQo+ICpkZXYsIHZvaWQgKmRhdGEsDQo+ID4+ICAgICAgICAgICAgICAgICAgdmFsdWUgPSBIQVNf V1QoZGV2X3ByaXYpOw0KPiA+PiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+PiAgICAgICAg ICBjYXNlIEk5MTVfUEFSQU1fSEFTX0FMSUFTSU5HX1BQR1RUOg0KPiA+PiAtICAgICAgICAgICAg ICAgdmFsdWUgPSBVU0VTX1BQR1RUKGRldl9wcml2KTsNCj4gPj4gKyAgICAgICAgICAgICAgIHZh bHVlID0gSU5URUxfUFBHVFQoZGV2X3ByaXYpOw0KPiA+PiAgICAgICAgICAgICAgICAgIGJyZWFr Ow0KPiA+PiAgICAgICAgICBjYXNlIEk5MTVfUEFSQU1fSEFTX1NFTUFQSE9SRVM6DQo+ID4+ICAg ICAgICAgICAgICAgICAgdmFsdWUgPSBIQVNfTEVHQUNZX1NFTUFQSE9SRVMoZGV2X3ByaXYpOw0K PiA+PiBAQCAtMTA0OSwxNyArMTA0OSw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2NsZWFu dXBfbW1pbyhzdHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4+DQo+ID4+ ICAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpDQo+ID4+ICAgew0KPiA+PiAtICAgICAgIC8qDQo+ID4+IC0gICAgICAg ICogaTkxNS5lbmFibGVfcHBndHQgaXMgcmVhZC1vbmx5LCBzbyBkbyBhbiBlYXJseSBwYXNzIHRv IHZhbGlkYXRlIHRoZQ0KPiA+PiAtICAgICAgICAqIHVzZXIncyByZXF1ZXN0ZWQgc3RhdGUgYWdh aW5zdCB0aGUgaGFyZHdhcmUvZHJpdmVyIGNhcGFiaWxpdGllcy4NCj4gV2UNCj4gPj4gLSAgICAg ICAgKiBkbyB0aGlzIG5vdyBzbyB0aGF0IHdlIGNhbiBwcmludCBvdXQgYW55IGxvZyBtZXNzYWdl cyBvbmNlIHJhdGhlcg0KPiA+PiAtICAgICAgICAqIHRoYW4gZXZlcnkgdGltZSB3ZSBjaGVjayBp bnRlbF9lbmFibGVfcHBndHQoKS4NCj4gPj4gLSAgICAgICAgKi8NCj4gPj4gLSAgICAgICBpOTE1 X21vZHBhcmFtcy5lbmFibGVfcHBndHQgPQ0KPiA+PiAtICAgICAgICAgICAgICAgaW50ZWxfc2Fu aXRpemVfZW5hYmxlX3BwZ3R0KGRldl9wcml2LA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wcGd0dCk7DQo+ID4+ IC0gICAgICAgRFJNX0RFQlVHX0RSSVZFUigicHBndHQgbW9kZTogJWlcbiIsDQo+IGk5MTVfbW9k cGFyYW1zLmVuYWJsZV9wcGd0dCk7DQo+ID4+IC0NCj4gPj4gICAgICAgICAgaW50ZWxfZ3Z0X3Nh bml0aXplX29wdGlvbnMoZGV2X3ByaXYpOw0KPiA+PiAgIH0NCj4gPj4NCj4gPj4gQEAgLTEzNzQs NiArMTM2MywxNSBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfaHcoc3RydWN0DQo+IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+Pg0KPiA+PiAgICAgICAgICBpbnRlbF9kZXZp Y2VfaW5mb19ydW50aW1lX2luaXQobWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdikpOw0KPiA+ Pg0KPiA+PiArICAgICAgIGlmIChIQVNfUFBHVFQoZGV2X3ByaXYpKSB7DQo+ID4+ICsgICAgICAg ICAgICAgICBpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2X3ByaXYpICYmDQo+ID4+ICsgICAgICAg ICAgICAgICAgICAgIWludGVsX3ZncHVfaGFzX2Z1bGxfNDhiaXRfcHBndHQoZGV2X3ByaXYpKSB7 DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIGk5MTVfcmVwb3J0X2Vycm9yKGRldl9wcml2 LA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5jb21w YXRpYmxlIHZHUFUgZm91bmQsIHN1cHBvcnQgZm9yIGlzb2xhdGVkDQo+IHBwR1RUIHJlcXVpcmVk XG4iKTsNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTlhJTzsNCj4gPj4g KyAgICAgICAgICAgICAgIH0NCj4gPj4gKyAgICAgICB9DQo+ID4+ICsNCj4gPj4gICAgICAgICAg aW50ZWxfc2FuaXRpemVfb3B0aW9ucyhkZXZfcHJpdik7DQo+ID4+DQo+ID4+ICAgICAgICAgIGk5 MTVfcGVyZl9pbml0KGRldl9wcml2KTsNCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ ID4+IGluZGV4IDg2MjRiNGJkYzI0Mi4uZjI4YjNjMmEzY2QyIDEwMDY0NA0KPiA+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgNCj4gPj4gQEAgLTI1OTMsOSArMjU5MywxNCBAQCBpbnRlbF9pbmZv KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ICpkZXZfcHJpdikNCj4gPj4NCj4gPj4g ICAjZGVmaW5lIEhBU19FWEVDTElTVFMoZGV2X3ByaXYpDQo+IEhBU19MT0dJQ0FMX1JJTkdfQ09O VEVYVFMoZGV2X3ByaXYpDQo+ID4+DQo+ID4+IC0jZGVmaW5lIFVTRVNfUFBHVFQoZGV2X3ByaXYp ICAgICAgICAgICAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX3BwZ3R0KQ0KPiA+PiAtI2RlZmluZSBV U0VTX0ZVTExfUFBHVFQoZGV2X3ByaXYpDQo+IChpOTE1X21vZHBhcmFtcy5lbmFibGVfcHBndHQg Pj0gMikNCj4gPj4gLSNkZWZpbmUgVVNFU19GVUxMXzQ4QklUX1BQR1RUKGRldl9wcml2KQ0KPiAo aTkxNV9tb2RwYXJhbXMuZW5hYmxlX3BwZ3R0ID09IDMpDQo+ID4+ICsjZGVmaW5lIElOVEVMX1BQ R1RUKGRldl9wcml2KSAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnBwZ3R0KQ0KPiA+PiArI2RlZmlu ZSBIQVNfUFBHVFQoZGV2X3ByaXYpIFwNCj4gPj4gKyAgICAgICAoSU5URUxfUFBHVFQoZGV2X3By aXYpICE9IElOVEVMX1BQR1RUX05PTkUpDQo+ID4+ICsjZGVmaW5lIEhBU19GVUxMX1BQR1RUKGRl dl9wcml2KSBcDQo+ID4+ICsgICAgICAgKElOVEVMX1BQR1RUKGRldl9wcml2KSA+PSBJTlRFTF9Q UEdUVF9GVUxMKQ0KPiA+PiArI2RlZmluZSBIQVNfRlVMTF80OEJJVF9QUEdUVChkZXZfcHJpdikg XA0KPiA+PiArICAgICAgIChJTlRFTF9QUEdUVChkZXZfcHJpdikgPj0gSU5URUxfUFBHVFRfRlVM TF80TFZMKQ0KPiA+PiArDQo+ID4+ICAgI2RlZmluZSBIQVNfUEFHRV9TSVpFUyhkZXZfcHJpdiwg c2l6ZXMpICh7IFwNCj4gPj4gICAgICAgICAgR0VNX0JVR19PTigoc2l6ZXMpID09IDApOyBcDQo+ ID4+ICAgICAgICAgICgoc2l6ZXMpICYgfihkZXZfcHJpdiktPmluZm8ucGFnZV9zaXplcykgPT0g MDsgXA0KPiA+PiBAQCAtMjc0Myw5ICsyNzQ4LDYgQEAgaW50ZWxfZ2d0dF91cGRhdGVfbmVlZHNf dnRkX3dhKHN0cnVjdA0KPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gPj4gICAgICAg ICAgcmV0dXJuIElTX0JST1hUT04oZGV2X3ByaXYpICYmIGludGVsX3Z0ZF9hY3RpdmUoKTsNCj4g Pj4gICB9DQo+ID4+DQo+ID4+IC1pbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX3BwZ3R0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgZW5hYmxlX3BwZ3R0KTsNCj4gPj4gLQ0KPiA+PiAgIC8qIGk5MTVfZHJ2 LmMgKi8NCj4gPj4gICB2b2lkIF9fcHJpbnRmKDMsIDQpDQo+ID4+ICAgX19pOTE1X3ByaW50ayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGNvbnN0IGNoYXIgKmxldmVsLA0KPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jDQo+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jDQo+ID4+IGluZGV4IGY3 NzI1OTNiOTlhYi4uMTVjOTJmNzViMWI4IDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMNCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jDQo+ID4+IEBAIC00MTQsNyArNDE0LDcgQEAgaTkxNV9nZW1f Y3JlYXRlX2NvbnRleHQoc3RydWN0DQo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+ PiAgICAgICAgICBpZiAoSVNfRVJSKGN0eCkpDQo+ID4+ICAgICAgICAgICAgICAgICAgcmV0dXJu IGN0eDsNCj4gPj4NCj4gPj4gLSAgICAgICBpZiAoVVNFU19GVUxMX1BQR1RUKGRldl9wcml2KSkg ew0KPiA+PiArICAgICAgIGlmIChIQVNfRlVMTF9QUEdUVChkZXZfcHJpdikpIHsNCj4gPj4gICAg ICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQ7DQo+ID4+DQo+ID4+ICAg ICAgICAgICAgICAgICAgcHBndHQgPSBpOTE1X3BwZ3R0X2NyZWF0ZShkZXZfcHJpdiwgZmlsZV9w cml2KTsNCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMNCj4gPj4gaW5kZXgg ZjZjN2FiNDEzMDgxLi5jOTM2MzUwNDk0OWYgMTAwNjQ0DQo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jDQo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5jDQo+ID4+IEBAIC0xMzMsNTUgKzEzMyw2IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBpOTE1X2dndHRfaW52YWxpZGF0ZShzdHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkNCj4gPj4gICAgICAgICAgaTkxNS0+Z2d0dC5pbnZhbGlkYXRlKGk5MTUpOw0KPiA+PiAgIH0N Cj4gPj4NCj4gPj4gLWludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfcHBndHQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBlbmFibGVfcHBndHQpDQo+ID4+IC17DQo+ID4+IC0gICAgICAgYm9vbCBoYXNfZnVs bF9wcGd0dDsNCj4gPj4gLSAgICAgICBib29sIGhhc19mdWxsXzQ4Yml0X3BwZ3R0Ow0KPiA+PiAt DQo+ID4+IC0gICAgICAgaWYgKCFkZXZfcHJpdi0+aW5mby5oYXNfYWxpYXNpbmdfcHBndHQpDQo+ ID4+IC0gICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPj4gLQ0KPiA+PiAtICAgICAgIGhhc19m dWxsX3BwZ3R0ID0gZGV2X3ByaXYtPmluZm8uaGFzX2Z1bGxfcHBndHQ7DQo+ID4+IC0gICAgICAg aGFzX2Z1bGxfNDhiaXRfcHBndHQgPSBkZXZfcHJpdi0+aW5mby5oYXNfZnVsbF80OGJpdF9wcGd0 dDsNCj4gPj4gLQ0KPiA+PiAtICAgICAgIGlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikp IHsNCj4gPj4gLSAgICAgICAgICAgICAgIC8qIEdWVC1nIGhhcyBubyBzdXBwb3J0IGZvciAzMmJp dCBwcGd0dCAqLw0KPiA+PiAtICAgICAgICAgICAgICAgaGFzX2Z1bGxfcHBndHQgPSBmYWxzZTsN Cj4gPj4gLSAgICAgICAgICAgICAgIGhhc19mdWxsXzQ4Yml0X3BwZ3R0ID0NCj4gaW50ZWxfdmdw dV9oYXNfZnVsbF80OGJpdF9wcGd0dChkZXZfcHJpdik7DQo+ID4+IC0gICAgICAgfQ0KPiA+PiAt DQo+ID4+IC0gICAgICAgLyoNCj4gPj4gLSAgICAgICAgKiBXZSBkb24ndCBhbGxvdyBkaXNhYmxp bmcgUFBHVFQgZm9yIGdlbjgrIGFzIGl0J3MgYSByZXF1aXJlbWVudCBmb3INCj4gPj4gLSAgICAg ICAgKiBleGVjbGlzdHMsIHRoZSBzb2xlIG1lY2hhbmlzbSBhdmFpbGFibGUgdG8gc3VibWl0IHdv cmsuDQo+ID4+IC0gICAgICAgICovDQo+ID4+IC0gICAgICAgaWYgKGVuYWJsZV9wcGd0dCA9PSAw ICYmICFIQVNfRVhFQ0xJU1RTKGRldl9wcml2KSkNCj4gPj4gLSAgICAgICAgICAgICAgIHJldHVy biAwOw0KPiA+PiAtDQo+ID4+IC0gICAgICAgaWYgKGVuYWJsZV9wcGd0dCA9PSAxKQ0KPiA+PiAt ICAgICAgICAgICAgICAgcmV0dXJuIDE7DQo+ID4+IC0NCj4gPj4gLSAgICAgICBpZiAoZW5hYmxl X3BwZ3R0ID09IDIgJiYgaGFzX2Z1bGxfcHBndHQpDQo+ID4+IC0gICAgICAgICAgICAgICByZXR1 cm4gMjsNCj4gPj4gLQ0KPiA+PiAtICAgICAgIGlmIChlbmFibGVfcHBndHQgPT0gMyAmJiBoYXNf ZnVsbF80OGJpdF9wcGd0dCkNCj4gPj4gLSAgICAgICAgICAgICAgIHJldHVybiAzOw0KPiA+PiAt DQo+ID4+IC0gICAgICAgLyogRGlzYWJsZSBwcGd0dCBvbiBTTkIgaWYgVlQtZCBpcyBvbi4gKi8N Cj4gPj4gLSAgICAgICBpZiAoSVNfR0VONihkZXZfcHJpdikgJiYgaW50ZWxfdnRkX2FjdGl2ZSgp KSB7DQo+ID4+IC0gICAgICAgICAgICAgICBEUk1fSU5GTygiRGlzYWJsaW5nIFBQR1RUIGJlY2F1 c2UgVlQtZCBpcyBvblxuIik7DQo+ID4+IC0gICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPj4g LSAgICAgICB9DQo+ID4+IC0NCj4gPj4gLSAgICAgICBpZiAoaGFzX2Z1bGxfNDhiaXRfcHBndHQp DQo+ID4+IC0gICAgICAgICAgICAgICByZXR1cm4gMzsNCj4gPj4gLQ0KPiA+PiAtICAgICAgIGlm IChoYXNfZnVsbF9wcGd0dCkNCj4gPj4gLSAgICAgICAgICAgICAgIHJldHVybiAyOw0KPiA+PiAt DQo+ID4+IC0gICAgICAgcmV0dXJuIDE7DQo+ID4+IC19DQo+ID4+IC0NCj4gPj4gICBzdGF0aWMg aW50IHBwZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLA0KPiA+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsDQo+ID4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiB1bnVzZWQpDQo+ID4+IEBAIC0xNjQ3LDcg KzE1OTgsNyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfaHdfcHBndHQNCj4gKmdlbjhfcHBndHRfY3Jl YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQ0KPiA+PiAgICAgICAgICBwcGd0dC0+ dm0uaTkxNSA9IGk5MTU7DQo+ID4+ICAgICAgICAgIHBwZ3R0LT52bS5kbWEgPSAmaTkxNS0+ZHJt LnBkZXYtPmRldjsNCj4gPj4NCj4gPj4gLSAgICAgICBwcGd0dC0+dm0udG90YWwgPSBVU0VTX0ZV TExfNDhCSVRfUFBHVFQoaTkxNSkgPw0KPiA+PiArICAgICAgIHBwZ3R0LT52bS50b3RhbCA9IEhB U19GVUxMXzQ4QklUX1BQR1RUKGk5MTUpID8NCj4gPj4gICAgICAgICAgICAgICAgICAxVUxMIDw8 IDQ4IDoNCj4gPj4gICAgICAgICAgICAgICAgICAxVUxMIDw8IDMyOw0KPiA+Pg0KPiA+PiBAQCAt MTc4MiwxOSArMTczMyw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZW42X3dyaXRlX3BkZShjb25z dCBzdHJ1Y3QNCj4gZ2VuNl9od19wcGd0dCAqcHBndHQsDQo+ID4+ICAgICAgICAgICAgICAgICAg ICBwcGd0dC0+cGRfYWRkciArIHBkZSk7DQo+ID4+ICAgfQ0KPiA+Pg0KPiA+PiAtc3RhdGljIHZv aWQgZ2VuOF9wcGd0dF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0K PiA+PiAtew0KPiA+PiAtICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsNCj4g Pj4gLSAgICAgICBlbnVtIGludGVsX2VuZ2luZV9pZCBpZDsNCj4gPj4gLQ0KPiA+PiAtICAgICAg IGZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgew0KPiA+PiAtICAgICAgICAg ICAgICAgdTMyIGZvdXJfbGV2ZWwgPSBVU0VTX0ZVTExfNDhCSVRfUFBHVFQoZGV2X3ByaXYpID8N Cj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VOOF9HRlhfUFBHVFRfNDhC IDogMDsNCj4gPj4gLSAgICAgICAgICAgICAgIEk5MTVfV1JJVEUoUklOR19NT0RFX0dFTjcoZW5n aW5lKSwNCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgX01BU0tFRF9CSVRfRU5BQkxF KEdGWF9QUEdUVF9FTkFCTEUgfCBmb3VyX2xldmVsKSk7DQo+ID4+IC0gICAgICAgfQ0KPiA+PiAt fQ0KPiA+PiAtDQo+ID4+ICAgc3RhdGljIHZvaWQgZ2VuN19wcGd0dF9lbmFibGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+PiAgIHsNCj4gPj4gICAgICAgICAgc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOw0KPiA+PiBAQCAtMTgzNCw3ICsxNzcyLDggQEAgc3Rh dGljIHZvaWQgZ2VuNl9wcGd0dF9lbmFibGUoc3RydWN0DQo+IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQ0KPiA+PiAgICAgICAgICBlY29jaGsgPSBJOTE1X1JFQUQoR0FNX0VDT0NISyk7DQo+ ID4+ICAgICAgICAgIEk5MTVfV1JJVEUoR0FNX0VDT0NISywgZWNvY2hrIHwgRUNPQ0hLX1NOQl9C SVQgfA0KPiBFQ09DSEtfUFBHVFRfQ0FDSEU2NEIpOw0KPiA+Pg0KPiA+PiAtICAgICAgIEk5MTVf V1JJVEUoR0ZYX01PREUsDQo+IF9NQVNLRURfQklUX0VOQUJMRShHRlhfUFBHVFRfRU5BQkxFKSk7 DQo+ID4+ICsgICAgICAgaWYgKEhBU19QUEdUVChkZXZfcHJpdikpIC8qIG1heSBiZSBkaXNhYmxl ZCBmb3IgVlQtZCAqLw0KPiA+PiArICAgICAgICAgICAgICAgSTkxNV9XUklURShHRlhfTU9ERSwN Cj4gX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9QUEdUVF9FTkFCTEUpKTsNCj4gPj4gICB9DQo+ID4+ DQo+ID4+ICAgLyogUFBHVFQgc3VwcG9ydCBmb3IgU2FuZHliZHJpZ2UvR2VuNiBhbmQgbGF0ZXIg Ki8NCj4gPj4gQEAgLTIyMzcsMjMgKzIxNzYsMTAgQEAgaW50IGk5MTVfcHBndHRfaW5pdF9odyhz dHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4+ICAgew0KPiA+PiAgICAg ICAgICBndHRfd3JpdGVfd29ya2Fyb3VuZHMoZGV2X3ByaXYpOw0KPiA+Pg0KPiA+PiAtICAgICAg IC8qIEluIHRoZSBjYXNlIG9mIGV4ZWNsaXN0cywgUFBHVFQgaXMgZW5hYmxlZCBieSB0aGUgY29u dGV4dCBkZXNjcmlwdG9yDQo+ID4+IC0gICAgICAgICogYW5kIHRoZSBQRFBzIGFyZSBjb250YWlu ZWQgd2l0aGluIHRoZSBjb250ZXh0IGl0c2VsZi4gIFdlIGRvbid0DQo+ID4+IC0gICAgICAgICog bmVlZCB0byBkbyBhbnl0aGluZyBoZXJlLiAqLw0KPiA+PiAtICAgICAgIGlmIChIQVNfTE9HSUNB TF9SSU5HX0NPTlRFWFRTKGRldl9wcml2KSkNCj4gPj4gLSAgICAgICAgICAgICAgIHJldHVybiAw Ow0KPiA+PiAtDQo+ID4+IC0gICAgICAgaWYgKCFVU0VTX1BQR1RUKGRldl9wcml2KSkNCj4gPj4g LSAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+PiAtDQo+ID4+ICAgICAgICAgIGlmIChJU19H RU42KGRldl9wcml2KSkNCj4gPj4gICAgICAgICAgICAgICAgICBnZW42X3BwZ3R0X2VuYWJsZShk ZXZfcHJpdik7DQo+ID4+ICAgICAgICAgIGVsc2UgaWYgKElTX0dFTjcoZGV2X3ByaXYpKQ0KPiA+ PiAgICAgICAgICAgICAgICAgIGdlbjdfcHBndHRfZW5hYmxlKGRldl9wcml2KTsNCj4gPj4gLSAg ICAgICBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpDQo+ID4+IC0gICAgICAgICAg ICAgICBnZW44X3BwZ3R0X2VuYWJsZShkZXZfcHJpdik7DQo+ID4+IC0gICAgICAgZWxzZQ0KPiA+ PiAtICAgICAgICAgICAgICAgTUlTU0lOR19DQVNFKElOVEVMX0dFTihkZXZfcHJpdikpOw0KPiA+ Pg0KPiA+PiAgICAgICAgICByZXR1cm4gMDsNCj4gPj4gICB9DQo+ID4+IEBAIC0yOTUyLDcgKzI4 NzgsNyBAQCBpbnQgaTkxNV9nZW1faW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ ICpkZXZfcHJpdikNCj4gPj4gICAgICAgICAgLyogQW5kIGZpbmFsbHkgY2xlYXIgdGhlIHJlc2Vy dmVkIGd1YXJkIHBhZ2UgKi8NCj4gPj4gICAgICAgICAgZ2d0dC0+dm0uY2xlYXJfcmFuZ2UoJmdn dHQtPnZtLCBnZ3R0LT52bS50b3RhbCAtIFBBR0VfU0laRSwNCj4gUEFHRV9TSVpFKTsNCj4gPj4N Cj4gPj4gLSAgICAgICBpZiAoVVNFU19QUEdUVChkZXZfcHJpdikgJiYgIVVTRVNfRlVMTF9QUEdU VChkZXZfcHJpdikpIHsNCj4gPj4gKyAgICAgICBpZiAoSU5URUxfUFBHVFQoZGV2X3ByaXYpID09 IElOVEVMX1BQR1RUX0FMSUFTSU5HKSB7DQo+ID4+ICAgICAgICAgICAgICAgICAgcmV0ID0gaTkx NV9nZW1faW5pdF9hbGlhc2luZ19wcGd0dChkZXZfcHJpdik7DQo+ID4+ICAgICAgICAgICAgICAg ICAgaWYgKHJldCkNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyOw0KPiA+ PiBAQCAtMzI3NSw3ICszMjAxLDcgQEAgc3RhdGljIHZvaWQgYmR3X3NldHVwX3ByaXZhdGVfcHBh dChzdHJ1Y3QNCj4gaW50ZWxfcHBhdCAqcHBhdCkNCj4gPj4gICAgICAgICAgcHBhdC0+bWF0Y2gg PSBiZHdfcHJpdmF0ZV9wYXRfbWF0Y2g7DQo+ID4+ICAgICAgICAgIHBwYXQtPmNsZWFyX3ZhbHVl ID0gR0VOOF9QUEFUX1dCIHwgR0VOOF9QUEFUX0xMQ0VMTEMgfA0KPiBHRU44X1BQQVRfQUdFKDMp Ow0KPiA+Pg0KPiA+PiAtICAgICAgIGlmICghVVNFU19QUEdUVChwcGF0LT5pOTE1KSkgew0KPiA+ PiArICAgICAgIGlmICghSEFTX1BQR1RUKHBwYXQtPmk5MTUpKSB7DQo+ID4+ICAgICAgICAgICAg ICAgICAgLyogU3BlYzogIkZvciBHR1RULCB0aGVyZSBpcyBOTyBwYXRfc2VsWzI6MF0gZnJvbSB0 aGUgZW50cnksDQo+ID4+ICAgICAgICAgICAgICAgICAgICogc28gUlRMIHdpbGwgYWx3YXlzIHVz ZSB0aGUgdmFsdWUgY29ycmVzcG9uZGluZyB0bw0KPiA+PiAgICAgICAgICAgICAgICAgICAqIHBh dF9zZWwgPSAwMDAiLg0KPiA+PiBAQCAtMzQwMiw3ICszMzI4LDcgQEAgc3RhdGljIGludCBnZW44 X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dA0KPiAqZ2d0dCkNCj4gPj4gICAgICAgICAgZ2d0 dC0+dm0uY2xlYW51cCA9IGdlbjZfZ21jaF9yZW1vdmU7DQo+ID4+ICAgICAgICAgIGdndHQtPnZt Lmluc2VydF9wYWdlID0gZ2VuOF9nZ3R0X2luc2VydF9wYWdlOw0KPiA+PiAgICAgICAgICBnZ3R0 LT52bS5jbGVhcl9yYW5nZSA9IG5vcF9jbGVhcl9yYW5nZTsNCj4gPj4gLSAgICAgICBpZiAoIVVT RVNfRlVMTF9QUEdUVChkZXZfcHJpdikgfHwNCj4gaW50ZWxfc2Nhbm91dF9uZWVkc192dGRfd2Eo ZGV2X3ByaXYpKQ0KPiA+PiArICAgICAgIGlmIChpbnRlbF9zY2Fub3V0X25lZWRzX3Z0ZF93YShk ZXZfcHJpdikpDQo+ID4+ICAgICAgICAgICAgICAgICAgZ2d0dC0+dm0uY2xlYXJfcmFuZ2UgPSBn ZW44X2dndHRfY2xlYXJfcmFuZ2U7DQo+ID4+DQo+ID4+ICAgICAgICAgIGdndHQtPnZtLmluc2Vy dF9lbnRyaWVzID0gZ2VuOF9nZ3R0X2luc2VydF9lbnRyaWVzOw0KPiA+PiBAQCAtMzYwOSw3ICsz NTM1LDcgQEAgaW50IGk5MTVfZ2d0dF9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ ICpkZXZfcHJpdikNCj4gPj4gICAgICAgICAgLyogT25seSBWTFYgc3VwcG9ydHMgcmVhZC1vbmx5 IEdHVFQgbWFwcGluZ3MgKi8NCj4gPj4gICAgICAgICAgZ2d0dC0+dm0uaGFzX3JlYWRfb25seSA9 IElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpOw0KPiA+Pg0KPiA+PiAtICAgICAgIGlmICghSEFTX0xM QyhkZXZfcHJpdikgJiYgIVVTRVNfUFBHVFQoZGV2X3ByaXYpKQ0KPiA+PiArICAgICAgIGlmICgh SEFTX0xMQyhkZXZfcHJpdikgJiYgIUhBU19QUEdUVChkZXZfcHJpdikpDQo+ID4+ICAgICAgICAg ICAgICAgICAgZ2d0dC0+dm0ubW0uY29sb3JfYWRqdXN0ID0gaTkxNV9ndHRfY29sb3JfYWRqdXN0 Ow0KPiA+PiAgICAgICAgICBtdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4 KTsNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jDQo+ID4+ IGluZGV4IDI4MzVjYWNkMGQwOC4uM2Q1NTU0ZjE0ZGZkIDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jDQo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMNCj4gPj4gQEAgLTQ3NCw3ICs0NzQsNyBAQCBzdGF0 aWMgdm9pZCBlcnJvcl9wcmludF9lbmdpbmUoc3RydWN0DQo+IGRybV9pOTE1X2Vycm9yX3N0YXRl X2J1ZiAqbSwNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGVycl9wcmludGYobSwgIiAg U1lOQ18yOiAweCUwOHhcbiIsDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVlLT5zZW1hcGhvcmVfbWJveGVzWzJdKTsNCj4gPj4gICAgICAgICAgfQ0KPiA+PiAtICAg ICAgIGlmIChVU0VTX1BQR1RUKG0tPmk5MTUpKSB7DQo+ID4+ICsgICAgICAgaWYgKEhBU19QUEdU VChtLT5pOTE1KSkgew0KPiA+PiAgICAgICAgICAgICAgICAgIGVycl9wcmludGYobSwgIiAgR0ZY X01PREU6IDB4JTA4eFxuIiwgZWUtPnZtX2luZm8uZ2Z4X21vZGUpOw0KPiA+Pg0KPiA+PiAgICAg ICAgICAgICAgICAgIGlmIChJTlRFTF9HRU4obS0+aTkxNSkgPj0gOCkgew0KPiA+PiBAQCAtMTIz MCw3ICsxMjMwLDcgQEAgc3RhdGljIHZvaWQNCj4gZXJyb3JfcmVjb3JkX2VuZ2luZV9yZWdpc3Rl cnMoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvciwNCj4gPj4gICAgICAgICAgZWUtPnJlc2V0 X2NvdW50ID0gaTkxNV9yZXNldF9lbmdpbmVfY291bnQoJmRldl9wcml2LT5ncHVfZXJyb3IsDQo+ ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu Z2luZSk7DQo+ID4+DQo+ID4+IC0gICAgICAgaWYgKFVTRVNfUFBHVFQoZGV2X3ByaXYpKSB7DQo+ ID4+ICsgICAgICAgaWYgKEhBU19QUEdUVChkZXZfcHJpdikpIHsNCj4gPj4gICAgICAgICAgICAg ICAgICBpbnQgaTsNCj4gPj4NCj4gPj4gICAgICAgICAgICAgICAgICBlZS0+dm1faW5mby5nZnhf bW9kZSA9DQo+IEk5MTVfUkVBRChSSU5HX01PREVfR0VONyhlbmdpbmUpKTsNCj4gPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMNCj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jDQo+ID4+IGluZGV4IDI5NWU5ODFlNGEzOS4uYmQ2YmQ4 ODc5Y2FiIDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFt cy5jDQo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMNCj4gPj4g QEAgLTgyLDEwICs4Miw2IEBAIGk5MTVfcGFyYW1fbmFtZWRfdW5zYWZlKGVuYWJsZV9oYW5nY2hl Y2ssDQo+IGJvb2wsIDA2NDQsDQo+ID4+ICAgICAgICAgICJXQVJOSU5HOiBEaXNhYmxpbmcgdGhp cyBjYW4gY2F1c2Ugc3lzdGVtIHdpZGUgaGFuZ3MuICINCj4gPj4gICAgICAgICAgIihkZWZhdWx0 OiB0cnVlKSIpOw0KPiA+Pg0KPiA+PiAtaTkxNV9wYXJhbV9uYW1lZF91bnNhZmUoZW5hYmxlX3Bw Z3R0LCBpbnQsIDA0MDAsDQo+ID4+IC0gICAgICAgIk92ZXJyaWRlIFBQR1RUIHVzYWdlLiAiDQo+ ID4+IC0gICAgICAgIigtMT1hdXRvIFtkZWZhdWx0XSwgMD1kaXNhYmxlZCwgMT1hbGlhc2luZywg Mj1mdWxsLCAzPWZ1bGwgd2l0aA0KPiBleHRlbmRlZCBhZGRyZXNzIHNwYWNlKSIpOw0KPiA+PiAt DQo+ID4+ICAgaTkxNV9wYXJhbV9uYW1lZF91bnNhZmUoZW5hYmxlX3BzciwgaW50LCAwNjAwLA0K PiA+PiAgICAgICAgICAiRW5hYmxlIFBTUiAiDQo+ID4+ICAgICAgICAgICIoMD1kaXNhYmxlZCwg MT1lbmFibGVkKSAiDQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BhcmFtcy5oDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaA0KPiA+PiBp bmRleCA2YzRkNGEyMTQ3NGIuLjdlNTZjNTE2YzgxNSAxMDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaA0KPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BhcmFtcy5oDQo+ID4+IEBAIC00MSw3ICs0MSw2IEBAIHN0cnVjdCBkcm1fcHJp bnRlcjsNCj4gPj4gICAgICAgICAgcGFyYW0oaW50LCB2YnRfc2R2b19wYW5lbF90eXBlLCAtMSkg XA0KPiA+PiAgICAgICAgICBwYXJhbShpbnQsIGVuYWJsZV9kYywgLTEpIFwNCj4gPj4gICAgICAg ICAgcGFyYW0oaW50LCBlbmFibGVfZmJjLCAtMSkgXA0KPiA+PiAtICAgICAgIHBhcmFtKGludCwg ZW5hYmxlX3BwZ3R0LCAtMSkgXA0KPiA+PiAgICAgICAgICBwYXJhbShpbnQsIGVuYWJsZV9wc3Is IC0xKSBcDQo+ID4+ICAgICAgICAgIHBhcmFtKGludCwgZGlzYWJsZV9wb3dlcl93ZWxsLCAtMSkg XA0KPiA+PiAgICAgICAgICBwYXJhbShpbnQsIGVuYWJsZV9pcHMsIDEpIFwNCj4gPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMNCj4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BjaS5jDQo+ID4+IGluZGV4IGQ2ZjdiOWZlMWQyNi4uZWVlYzkwMjg5NmI5 IDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jDQo+ID4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMNCj4gPj4gQEAgLTI1Miw3ICsy NTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvDQo+IGludGVsX2ly b25sYWtlX21faW5mbyA9IHsNCj4gPj4gICAgICAgICAgLmhhc19sbGMgPSAxLCBcDQo+ID4+ICAg ICAgICAgIC5oYXNfcmM2ID0gMSwgXA0KPiA+PiAgICAgICAgICAuaGFzX3JjNnAgPSAxLCBcDQo+ ID4+IC0gICAgICAgLmhhc19hbGlhc2luZ19wcGd0dCA9IDEsIFwNCj4gPj4gKyAgICAgICAucHBn dHQgPSBJTlRFTF9QUEdUVF9BTElBU0lORywgXA0KPiA+PiAgICAgICAgICBHRU5fREVGQVVMVF9Q SVBFT0ZGU0VUUywgXA0KPiA+PiAgICAgICAgICBHRU5fREVGQVVMVF9QQUdFX1NJWkVTLCBcDQo+ ID4+ICAgICAgICAgIENVUlNPUl9PRkZTRVRTDQo+ID4+IEBAIC0yOTcsOCArMjk3LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbw0KPiBpbnRlbF9zYW5keWJyaWRnZV9t X2d0Ml9pbmZvID0gew0KPiA+PiAgICAgICAgICAuaGFzX2xsYyA9IDEsIFwNCj4gPj4gICAgICAg ICAgLmhhc19yYzYgPSAxLCBcDQo+ID4+ICAgICAgICAgIC5oYXNfcmM2cCA9IDEsIFwNCj4gPj4g LSAgICAgICAuaGFzX2FsaWFzaW5nX3BwZ3R0ID0gMSwgXA0KPiA+PiAtICAgICAgIC5oYXNfZnVs bF9wcGd0dCA9IDEsIFwNCj4gPj4gKyAgICAgICAucHBndHQgPSBJTlRFTF9QUEdUVF9GVUxMLCBc DQo+ID4+ICAgICAgICAgIEdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBcDQo+ID4+ICAgICAgICAg IEdFTl9ERUZBVUxUX1BBR0VfU0laRVMsIFwNCj4gPj4gICAgICAgICAgSVZCX0NVUlNPUl9PRkZT RVRTDQo+ID4+IEBAIC0zNTEsOCArMzUwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9k ZXZpY2VfaW5mbw0KPiBpbnRlbF92YWxsZXl2aWV3X2luZm8gPSB7DQo+ID4+ICAgICAgICAgIC5o YXNfcmM2ID0gMSwNCj4gPj4gICAgICAgICAgLmhhc19nbWNoX2Rpc3BsYXkgPSAxLA0KPiA+PiAg ICAgICAgICAuaGFzX2hvdHBsdWcgPSAxLA0KPiA+PiAtICAgICAgIC5oYXNfYWxpYXNpbmdfcHBn dHQgPSAxLA0KPiA+PiAtICAgICAgIC5oYXNfZnVsbF9wcGd0dCA9IDEsDQo+ID4+ICsgICAgICAg LnBwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTCwNCj4gPj4gICAgICAgICAgLmhhc19zbm9vcCA9IHRy dWUsDQo+ID4+ICAgICAgICAgIC5oYXNfY29oZXJlbnRfZ2d0dCA9IGZhbHNlLA0KPiA+PiAgICAg ICAgICAucmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HLA0KPiA+ PiBAQCAtMzk5LDcgKzM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2lu Zm8NCj4gaW50ZWxfaGFzd2VsbF9ndDNfaW5mbyA9IHsNCj4gPj4gICAgICAgICAgLnBhZ2Vfc2l6 ZXMgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNEsgfCBcDQo+ID4+ICAgICAgICAgICAgICAgICAgICAg ICAgSTkxNV9HVFRfUEFHRV9TSVpFXzJNLCBcDQo+ID4+ICAgICAgICAgIC5oYXNfbG9naWNhbF9y aW5nX2NvbnRleHRzID0gMSwgXA0KPiA+PiAtICAgICAgIC5oYXNfZnVsbF80OGJpdF9wcGd0dCA9 IDEsIFwNCj4gPj4gKyAgICAgICAucHBndHQgPSBJTlRFTF9QUEdUVF9GVUxMXzRMVkwsIFwNCj4g Pj4gICAgICAgICAgLmhhc182NGJpdF9yZWxvYyA9IDEsIFwNCj4gPj4gICAgICAgICAgLmhhc19y ZXNldF9lbmdpbmUgPSAxDQo+ID4+DQo+ID4+IEBAIC00NDMsOCArNDQxLDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbw0KPiBpbnRlbF9jaGVycnl2aWV3X2luZm8gPSB7 DQo+ID4+ICAgICAgICAgIC5oYXNfcmM2ID0gMSwNCj4gPj4gICAgICAgICAgLmhhc19sb2dpY2Fs X3JpbmdfY29udGV4dHMgPSAxLA0KPiA+PiAgICAgICAgICAuaGFzX2dtY2hfZGlzcGxheSA9IDEs DQo+ID4+IC0gICAgICAgLmhhc19hbGlhc2luZ19wcGd0dCA9IDEsDQo+ID4+IC0gICAgICAgLmhh c19mdWxsX3BwZ3R0ID0gMSwNCj4gPj4gKyAgICAgICAucHBndHQgPSBJTlRFTF9QUEdUVF9GVUxM LA0KPiA+PiAgICAgICAgICAuaGFzX3Jlc2V0X2VuZ2luZSA9IDEsDQo+ID4+ICAgICAgICAgIC5o YXNfc25vb3AgPSB0cnVlLA0KPiA+PiAgICAgICAgICAuaGFzX2NvaGVyZW50X2dndHQgPSBmYWxz ZSwNCj4gPj4gQEAgLTUxOCw5ICs1MTUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvDQo+IGludGVsX3NreWxha2VfZ3Q0X2luZm8gPSB7DQo+ID4+ICAgICAgICAgIC5o YXNfbG9naWNhbF9yaW5nX2NvbnRleHRzID0gMSwgXA0KPiA+PiAgICAgICAgICAuaGFzX2xvZ2lj YWxfcmluZ19wcmVlbXB0aW9uID0gMSwgXA0KPiA+PiAgICAgICAgICAuaGFzX2d1YyA9IDEsIFwN Cj4gPj4gLSAgICAgICAuaGFzX2FsaWFzaW5nX3BwZ3R0ID0gMSwgXA0KPiA+PiAtICAgICAgIC5o YXNfZnVsbF9wcGd0dCA9IDEsIFwNCj4gPj4gLSAgICAgICAuaGFzX2Z1bGxfNDhiaXRfcHBndHQg PSAxLCBcDQo+ID4+ICsgICAgICAgLnBwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTF80TFZMLCBcDQo+ ID4+ICAgICAgICAgIC5oYXNfcmVzZXRfZW5naW5lID0gMSwgXA0KPiA+PiAgICAgICAgICAuaGFz X3Nub29wID0gdHJ1ZSwgXA0KPiA+PiAgICAgICAgICAuaGFzX2NvaGVyZW50X2dndHQgPSBmYWxz ZSwgXA0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNl X2luZm8uYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMNCj4g Pj4gaW5kZXggMGVmMGM2NDQ4ZDUzLi5hODQxZDE4MWVmZDMgMTAwNjQ0DQo+ID4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMNCj4gPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYw0KPiA+PiBAQCAtMjYsNiArMjYsNyBA QA0KPiA+Pg0KPiA+PiAgICNpbmNsdWRlICJpbnRlbF9kZXZpY2VfaW5mby5oIg0KPiA+PiAgICNp bmNsdWRlICJpOTE1X2Rydi5oIg0KPiA+PiArI2luY2x1ZGUgImk5MTVfdmdwdS5oIg0KPiA+Pg0K PiA+PiAgICNkZWZpbmUgUExBVEZPUk1fTkFNRSh4KSBbSU5URUxfIyN4XSA9ICN4DQo+ID4+ICAg c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwbGF0Zm9ybV9uYW1lc1tdID0gew0KPiA+PiBAQCAt ODUxLDYgKzg1MiwxMSBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1 Y3QNCj4gaW50ZWxfZGV2aWNlX2luZm8gKmluZm8pDQo+ID4+ICAgICAgICAgIGVsc2UgaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTEpDQo+ID4+ICAgICAgICAgICAgICAgICAgZ2VuMTFfc3Nl dV9pbmZvX2luaXQoZGV2X3ByaXYpOw0KPiA+Pg0KPiA+PiArICAgICAgIGlmIChJU19HRU42KGRl dl9wcml2KSAmJiBpbnRlbF92dGRfYWN0aXZlKCkpIHsNCj4gPj4gKyAgICAgICAgICAgICAgIERS TV9JTkZPKCJEaXNhYmxpbmcgcHBHVFQgZm9yIFZULWQgc3VwcG9ydFxuIik7DQo+ID4+ICsgICAg ICAgICAgICAgICBpbmZvLT5wcGd0dCA9IElOVEVMX1BQR1RUX05PTkU7DQo+ID4+ICsgICAgICAg fQ0KPiA+PiArDQo+ID4+ICAgICAgICAgIC8qIEluaXRpYWxpemUgY29tbWFuZCBzdHJlYW0gdGlt ZXN0YW1wIGZyZXF1ZW5jeSAqLw0KPiA+PiAgICAgICAgICBpbmZvLT5jc190aW1lc3RhbXBfZnJl cXVlbmN5X2toeiA9DQo+IHJlYWRfdGltZXN0YW1wX2ZyZXF1ZW5jeShkZXZfcHJpdik7DQo+ID4+ ICAgfQ0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNl X2luZm8uaA0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgNCj4g Pj4gaW5kZXggNmVlY2Q2NDczNGQ1Li42YmFiOTc2ODczMjggMTAwNjQ0DQo+ID4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgNCj4gPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaA0KPiA+PiBAQCAtNzQsMjEgKzc0LDI1 IEBAIGVudW0gaW50ZWxfcGxhdGZvcm0gew0KPiA+PiAgICAgICAgICBJTlRFTF9NQVhfUExBVEZP Uk1TDQo+ID4+ICAgfTsNCj4gPj4NCj4gPj4gK2VudW0gaW50ZWxfcHBndHQgew0KPiA+PiArICAg ICAgIElOVEVMX1BQR1RUX05PTkUgPSAwLA0KPiA+PiArICAgICAgIElOVEVMX1BQR1RUX0FMSUFT SU5HLA0KPiA+PiArICAgICAgIElOVEVMX1BQR1RUX0ZVTEwsDQo+ID4+ICsgICAgICAgSU5URUxf UFBHVFRfRlVMTF80TFZMLA0KPiA+PiArfTsNCj4gPj4gKw0KPiA+PiAgICNkZWZpbmUgREVWX0lO Rk9fRk9SX0VBQ0hfRkxBRyhmdW5jKSBcDQo+ID4+ICAgICAgICAgIGZ1bmMoaXNfbW9iaWxlKTsg XA0KPiA+PiAgICAgICAgICBmdW5jKGlzX2xwKTsgXA0KPiA+PiAgICAgICAgICBmdW5jKGlzX2Fs cGhhX3N1cHBvcnQpOyBcDQo+ID4+ICAgICAgICAgIC8qIEtlZXAgaGFzXyogaW4gYWxwaGFiZXRp Y2FsIG9yZGVyICovIFwNCj4gPj4gICAgICAgICAgZnVuYyhoYXNfNjRiaXRfcmVsb2MpOyBcDQo+ ID4+IC0gICAgICAgZnVuYyhoYXNfYWxpYXNpbmdfcHBndHQpOyBcDQo+ID4+ICAgICAgICAgIGZ1 bmMoaGFzX2Nzcik7IFwNCj4gPj4gICAgICAgICAgZnVuYyhoYXNfZGRpKTsgXA0KPiA+PiAgICAg ICAgICBmdW5jKGhhc19kcF9tc3QpOyBcDQo+ID4+ICAgICAgICAgIGZ1bmMoaGFzX3Jlc2V0X2Vu Z2luZSk7IFwNCj4gPj4gICAgICAgICAgZnVuYyhoYXNfZmJjKTsgXA0KPiA+PiAgICAgICAgICBm dW5jKGhhc19mcGdhX2RiZyk7IFwNCj4gPj4gLSAgICAgICBmdW5jKGhhc19mdWxsX3BwZ3R0KTsg XA0KPiA+PiAtICAgICAgIGZ1bmMoaGFzX2Z1bGxfNDhiaXRfcHBndHQpOyBcDQo+ID4+ICAgICAg ICAgIGZ1bmMoaGFzX2dtY2hfZGlzcGxheSk7IFwNCj4gPj4gICAgICAgICAgZnVuYyhoYXNfZ3Vj KTsgXA0KPiA+PiAgICAgICAgICBmdW5jKGhhc19ndWNfY3QpOyBcDQo+ID4+IEBAIC0xNTQsNiAr MTU4LDcgQEAgc3RydWN0IGludGVsX2RldmljZV9pbmZvIHsNCj4gPj4gICAgICAgICAgZW51bSBp bnRlbF9wbGF0Zm9ybSBwbGF0Zm9ybTsNCj4gPj4gICAgICAgICAgdTMyIHBsYXRmb3JtX21hc2s7 DQo+ID4+DQo+ID4+ICsgICAgICAgZW51bSBpbnRlbF9wcGd0dCBwcGd0dDsNCj4gPj4gICAgICAg ICAgdW5zaWduZWQgaW50IHBhZ2Vfc2l6ZXM7IC8qIHBhZ2Ugc2l6ZXMgc3VwcG9ydGVkIGJ5IHRo ZSBIVyAqLw0KPiA+Pg0KPiA+PiAgICAgICAgICB1MzIgZGlzcGxheV9tbWlvX29mZnNldDsNCj4g Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jDQo+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMNCj4gPj4gaW5kZXggNGIyODIyNTMyMGZmLi4z ODM2YThhMzc2MWEgMTAwNjQ0DQo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jDQo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jDQo+ID4+ IEBAIC00MTgsOSArNDE4LDggQEAgZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0X3BkcHMoc3RydWN0 DQo+IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCB1MzIgKnJlZ19zdGF0ZSkNCj4gPj4NCj4gPj4gICBz dGF0aWMgdTY0IGV4ZWNsaXN0c191cGRhdGVfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpy cSkNCj4gPj4gICB7DQo+ID4+ICsgICAgICAgc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0g cnEtPmdlbV9jb250ZXh0LT5wcGd0dDsNCj4gPj4gICAgICAgICAgc3RydWN0IGludGVsX2NvbnRl eHQgKmNlID0gcnEtPmh3X2NvbnRleHQ7DQo+ID4+IC0gICAgICAgc3RydWN0IGk5MTVfaHdfcHBn dHQgKnBwZ3R0ID0NCj4gPj4gLSAgICAgICAgICAgICAgIHJxLT5nZW1fY29udGV4dC0+cHBndHQg PzogcnEtPmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0Ow0KPiA+PiAgICAgICAgICB1MzIgKnJlZ19z dGF0ZSA9IGNlLT5scmNfcmVnX3N0YXRlOw0KPiA+Pg0KPiA+PiAgICAgICAgICByZWdfc3RhdGVb Q1RYX1JJTkdfVEFJTCsxXSA9IGludGVsX3Jpbmdfc2V0X3RhaWwocnEtPnJpbmcsIHJxLT50YWls KTsNCj4gPj4gQEAgLTEzNzYsNyArMTM3NSw3IEBAIGV4ZWNsaXN0c19jb250ZXh0X3BpbihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzDQo+ICplbmdpbmUsDQo+ID4+ICAgICAgICAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSA9IHRvX2ludGVsX2NvbnRleHQoY3R4LCBlbmdpbmUpOw0KPiA+Pg0KPiA+ PiAgICAgICAgICBsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0 ZXgpOw0KPiA+PiAtICAgICAgIEdFTV9CVUdfT04oIShjdHgtPnBwZ3R0ID86IGN0eC0+aTkxNS0+ bW0uYWxpYXNpbmdfcHBndHQpKTsNCj4gPj4gKyAgICAgICBHRU1fQlVHX09OKCFjdHgtPnBwZ3R0 KTsNCj4gPj4NCj4gPj4gICAgICAgICAgaWYgKGxpa2VseShjZS0+cGluX2NvdW50KyspKQ0KPiA+ PiAgICAgICAgICAgICAgICAgIHJldHVybiBjZTsNCj4gPj4gQEAgLTIwMzEsOCArMjAzMCw3IEBA IHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2JiX3N0YXJ0KHN0cnVjdA0KPiBpOTE1X3JlcXVlc3QgKnJx LA0KPiA+PiAgICAgICAgICAgKiBpdCBpcyB1bnNhZmUgaW4gY2FzZSBvZiBsaXRlLXJlc3RvcmUg KGJlY2F1c2UgdGhlIGN0eCBpcw0KPiA+PiAgICAgICAgICAgKiBub3QgaWRsZSkuIFBNTDQgaXMg YWxsb2NhdGVkIGR1cmluZyBwcGd0dCBpbml0IHNvIHRoaXMgaXMNCj4gPj4gICAgICAgICAgICog bm90IG5lZWRlZCBpbiA0OC1iaXQuKi8NCj4gPj4gLSAgICAgICBpZiAocnEtPmdlbV9jb250ZXh0 LT5wcGd0dCAmJg0KPiA+PiAtICAgICAgICAgICAoaW50ZWxfZW5naW5lX2ZsYWcocnEtPmVuZ2lu ZSkgJiBycS0+Z2VtX2NvbnRleHQtPnBwZ3R0LQ0KPiA+cGRfZGlydHlfcmluZ3MpICYmDQo+ID4+ ICsgICAgICAgaWYgKChpbnRlbF9lbmdpbmVfZmxhZyhycS0+ZW5naW5lKSAmIHJxLT5nZW1fY29u dGV4dC0+cHBndHQtDQo+ID5wZF9kaXJ0eV9yaW5ncykgJiYNCj4gPj4gICAgICAgICAgICAgICFp OTE1X3ZtX2lzXzQ4Yml0KCZycS0+Z2VtX2NvbnRleHQtPnBwZ3R0LT52bSkgJiYNCj4gPj4gICAg ICAgICAgICAgICFpbnRlbF92Z3B1X2FjdGl2ZShycS0+aTkxNSkpIHsNCj4gPj4gICAgICAgICAg ICAgICAgICByZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHJxKTsNCj4gPj4gQEAg LTI2MzQsNyArMjYzMiw2IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19pbml0X3JlZ19zdGF0ZSh1 MzIgKnJlZ3MsDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGludGVsX3JpbmcgKnJpbmcpDQo+ID4+ICAgew0KPiA+PiAgICAgICAgICBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7DQo+ID4+IC0gICAgICAgc3Ry dWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gY3R4LT5wcGd0dCA/OiBkZXZfcHJpdi0NCj4gPm1t LmFsaWFzaW5nX3BwZ3R0Ow0KPiA+PiAgICAgICAgICB1MzIgYmFzZSA9IGVuZ2luZS0+bW1pb19i YXNlOw0KPiA+PiAgICAgICAgICBib29sIHJjcyA9IGVuZ2luZS0+Y2xhc3MgPT0gUkVOREVSX0NM QVNTOw0KPiA+Pg0KPiA+PiBAQCAtMjcwNiwxMiArMjcwMywxMiBAQCBzdGF0aWMgdm9pZCBleGVj bGlzdHNfaW5pdF9yZWdfc3RhdGUodTMyICpyZWdzLA0KPiA+PiAgICAgICAgICBDVFhfUkVHKHJl Z3MsIENUWF9QRFAwX1VEVywgR0VOOF9SSU5HX1BEUF9VRFcoZW5naW5lLCAwKSwNCj4gMCk7DQo+ ID4+ICAgICAgICAgIENUWF9SRUcocmVncywgQ1RYX1BEUDBfTERXLCBHRU44X1JJTkdfUERQX0xE VyhlbmdpbmUsIDApLA0KPiAwKTsNCj4gPj4NCj4gPj4gLSAgICAgICBpZiAoaTkxNV92bV9pc180 OGJpdCgmcHBndHQtPnZtKSkgew0KPiA+PiArICAgICAgIGlmIChpOTE1X3ZtX2lzXzQ4Yml0KCZj dHgtPnBwZ3R0LT52bSkpIHsNCj4gPj4gICAgICAgICAgICAgICAgICAvKiA2NGIgUFBHVFQgKDQ4 Yml0IGNhbm9uaWNhbCkNCj4gPj4gICAgICAgICAgICAgICAgICAgKiBQRFAwX0RFU0NSSVBUT1Ig Y29udGFpbnMgdGhlIGJhc2UgYWRkcmVzcyB0byBQTUw0IGFuZA0KPiA+PiAgICAgICAgICAgICAg ICAgICAqIG90aGVyIFBEUCBEZXNjcmlwdG9ycyBhcmUgaWdub3JlZC4NCj4gPj4gICAgICAgICAg ICAgICAgICAgKi8NCj4gPj4gLSAgICAgICAgICAgICAgIEFTU0lHTl9DVFhfUE1MNChwcGd0dCwg cmVncyk7DQo+ID4+ICsgICAgICAgICAgICAgICBBU1NJR05fQ1RYX1BNTDQoY3R4LT5wcGd0dCwg cmVncyk7DQo+ID4+ICAgICAgICAgIH0NCj4gPj4NCj4gPj4gICAgICAgICAgaWYgKHJjcykgew0K PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFn ZXMuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMNCj4g Pj4gaW5kZXggOGQwM2Y2NGVhYmQ3Li4wOWVhNjVhMjlkOTggMTAwNjQ0DQo+ID4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMNCj4gPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYw0KPiA+PiBAQCAtMTQzNiw3 ICsxNDM2LDcgQEAgc3RhdGljIGludCBpZ3RfcHBndHRfcGluX3VwZGF0ZSh2b2lkICphcmcpDQo+ ID4+ICAgICAgICAgICAqIGh1Z2UtZ3R0LXBhZ2VzLg0KPiA+PiAgICAgICAgICAgKi8NCj4gPj4N Cj4gPj4gLSAgICAgICBpZiAoIVVTRVNfRlVMTF80OEJJVF9QUEdUVChkZXZfcHJpdikpIHsNCj4g Pj4gKyAgICAgICBpZiAoIUhBU19GVUxMXzQ4QklUX1BQR1RUKGRldl9wcml2KSkgew0KPiA+PiAg ICAgICAgICAgICAgICAgIHByX2luZm8oIjQ4YiBQUEdUVCBub3Qgc3VwcG9ydGVkLCBza2lwcGlu Z1xuIik7DQo+ID4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4+ICAgICAgICAgIH0N Cj4gPj4gQEAgLTE2ODcsMTAgKzE2ODcsOSBAQCBpbnQNCj4gaTkxNV9nZW1faHVnZV9wYWdlX21v Y2tfc2VsZnRlc3RzKHZvaWQpDQo+ID4+ICAgICAgICAgICAgICAgICAgU1VCVEVTVChpZ3RfbW9j a19wcGd0dF9odWdlX2ZpbGwpLA0KPiA+PiAgICAgICAgICAgICAgICAgIFNVQlRFU1QoaWd0X21v Y2tfcHBndHRfNjRLKSwNCj4gPj4gICAgICAgICAgfTsNCj4gPj4gLSAgICAgICBpbnQgc2F2ZWRf cHBndHQgPSBpOTE1X21vZHBhcmFtcy5lbmFibGVfcHBndHQ7DQo+ID4+ICAgICAgICAgIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdjsNCj4gPj4gLSAgICAgICBzdHJ1Y3QgcGNpX2Rl diAqcGRldjsNCj4gPj4gICAgICAgICAgc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0Ow0KPiA+ PiArICAgICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2Ow0KPiA+PiAgICAgICAgICBpbnQgZXJyOw0K PiA+Pg0KPiA+PiAgICAgICAgICBkZXZfcHJpdiA9IG1vY2tfZ2VtX2RldmljZSgpOw0KPiA+PiBA QCAtMTY5OCw3ICsxNjk3LDcgQEAgaW50IGk5MTVfZ2VtX2h1Z2VfcGFnZV9tb2NrX3NlbGZ0ZXN0 cyh2b2lkKQ0KPiA+PiAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+Pg0KPiA+ PiAgICAgICAgICAvKiBQcmV0ZW5kIHRvIGJlIGEgZGV2aWNlIHdoaWNoIHN1cHBvcnRzIHRoZSA0 OGIgUFBHVFQgKi8NCj4gPj4gLSAgICAgICBpOTE1X21vZHBhcmFtcy5lbmFibGVfcHBndHQgPSAz Ow0KPiA+PiArICAgICAgIG1rd3JpdGVfZGV2aWNlX2luZm8oZGV2X3ByaXYpLT5wcGd0dCA9IElO VEVMX1BQR1RUX0ZVTExfNExWTDsNCj4gPj4NCj4gPj4gICAgICAgICAgcGRldiA9IGRldl9wcml2 LT5kcm0ucGRldjsNCj4gPj4gICAgICAgICAgZG1hX2NvZXJjZV9tYXNrX2FuZF9jb2hlcmVudCgm cGRldi0+ZGV2LCBETUFfQklUX01BU0soMzkpKTsNCj4gPj4gQEAgLTE3MzEsOSArMTczMCw2IEBA IGludCBpOTE1X2dlbV9odWdlX3BhZ2VfbW9ja19zZWxmdGVzdHModm9pZCkNCj4gPj4NCj4gPj4g ICBvdXRfdW5sb2NrOg0KPiA+PiAgICAgICAgICBtdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0u c3RydWN0X211dGV4KTsNCj4gPj4gLQ0KPiA+PiAtICAgICAgIGk5MTVfbW9kcGFyYW1zLmVuYWJs ZV9wcGd0dCA9IHNhdmVkX3BwZ3R0Ow0KPiA+PiAtDQo+ID4+ICAgICAgICAgIGRybV9kZXZfcHV0 KCZkZXZfcHJpdi0+ZHJtKTsNCj4gPj4NCj4gPj4gICAgICAgICAgcmV0dXJuIGVycjsNCj4gPj4g QEAgLTE3NTMsNyArMTc0OSw3IEBAIGludCBpOTE1X2dlbV9odWdlX3BhZ2VfbGl2ZV9zZWxmdGVz dHMoc3RydWN0DQo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+PiAgICAgICAgICBz dHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Ow0KPiA+PiAgICAgICAgICBpbnQgZXJyOw0KPiA+ Pg0KPiA+PiAtICAgICAgIGlmICghVVNFU19QUEdUVChkZXZfcHJpdikpIHsNCj4gPj4gKyAgICAg ICBpZiAoIUhBU19QUEdUVChkZXZfcHJpdikpIHsNCj4gPj4gICAgICAgICAgICAgICAgICBwcl9p bmZvKCJQUEdUVCBub3Qgc3VwcG9ydGVkLCBza2lwcGluZyBsaXZlLXNlbGZ0ZXN0c1xuIik7DQo+ ID4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4+ICAgICAgICAgIH0NCj4gPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0 LmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5j DQo+ID4+IGluZGV4IDc2ZGYyNWFhOTBjOS4uOTEzYzBmODNmODZhIDEwMDY0NA0KPiA+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jDQo+ID4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMN Cj4gPj4gQEAgLTUzNSw3ICs1MzUsNiBAQCBzdGF0aWMgaW50IGlndF9jdHhfZXhlYyh2b2lkICph cmcpDQo+ID4+ICAgICAgICAgIElHVF9USU1FT1VUKGVuZF90aW1lKTsNCj4gPj4gICAgICAgICAg TElTVF9IRUFEKG9iamVjdHMpOw0KPiA+PiAgICAgICAgICB1bnNpZ25lZCBsb25nIG5jb250ZXh0 cywgbmR3b3JkcywgZHc7DQo+ID4+IC0gICAgICAgYm9vbCBmaXJzdF9zaGFyZWRfZ3R0ID0gdHJ1 ZTsNCj4gPj4gICAgICAgICAgaW50IGVyciA9IC1FTk9ERVY7DQo+ID4+DQo+ID4+ICAgICAgICAg IC8qDQo+ID4+IEBAIC01NjEsMTIgKzU2MCw3IEBAIHN0YXRpYyBpbnQgaWd0X2N0eF9leGVjKHZv aWQgKmFyZykNCj4gPj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4Ow0KPiA+PiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpZDsNCj4gPj4NCj4gPj4g LSAgICAgICAgICAgICAgIGlmIChmaXJzdF9zaGFyZWRfZ3R0KSB7DQo+ID4+IC0gICAgICAgICAg ICAgICAgICAgICAgIGN0eCA9IF9fY3JlYXRlX2h3X2NvbnRleHQoaTkxNSwgZmlsZS0+ZHJpdmVy X3ByaXYpOw0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9zaGFyZWRfZ3R0ID0g ZmFsc2U7DQo+ID4+IC0gICAgICAgICAgICAgICB9IGVsc2Ugew0KPiA+PiAtICAgICAgICAgICAg ICAgICAgICAgICBjdHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2 ZXJfcHJpdik7DQo+ID4+IC0gICAgICAgICAgICAgICB9DQo+ID4+ICsgICAgICAgICAgICAgICBj dHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdik7DQo+ ID4+ICAgICAgICAgICAgICAgICAgaWYgKElTX0VSUihjdHgpKSB7DQo+ID4+ICAgICAgICAgICAg ICAgICAgICAgICAgICBlcnIgPSBQVFJfRVJSKGN0eCk7DQo+ID4+ICAgICAgICAgICAgICAgICAg ICAgICAgICBnb3RvIG91dF91bmxvY2s7DQo+ID4+IEBAIC04NjUsMzMgKzg1OSw2IEBAIHN0YXRp YyBpbnQgaWd0X3N3aXRjaF90b19rZXJuZWxfY29udGV4dCh2b2lkDQo+ICphcmcpDQo+ID4+ICAg ICAgICAgIHJldHVybiBlcnI7DQo+ID4+ICAgfQ0KPiA+Pg0KPiA+PiAtc3RhdGljIGludCBmYWtl X2FsaWFzaW5nX3BwZ3R0X2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkNCj4g Pj4gLXsNCj4gPj4gLSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOw0KPiA+ PiAtICAgICAgIGludCBlcnI7DQo+ID4+IC0NCj4gPj4gLSAgICAgICBlcnIgPSBpOTE1X2dlbV9p bml0X2FsaWFzaW5nX3BwZ3R0KGk5MTUpOw0KPiA+PiAtICAgICAgIGlmIChlcnIpDQo+ID4+IC0g ICAgICAgICAgICAgICByZXR1cm4gZXJyOw0KPiA+PiAtDQo+ID4+IC0gICAgICAgbGlzdF9mb3Jf ZWFjaF9lbnRyeShvYmosICZpOTE1LT5tbS5ib3VuZF9saXN0LCBtbS5saW5rKSB7DQo+ID4+IC0g ICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYTsNCj4gPj4gLQ0KPiA+PiAtICAgICAg ICAgICAgICAgdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCAmaTkxNS0+Z2d0dC52bSwgTlVM TCk7DQo+ID4+IC0gICAgICAgICAgICAgICBpZiAoSVNfRVJSKHZtYSkpDQo+ID4+IC0gICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+PiAtDQo+ID4+IC0gICAgICAgICAgICAgICB2 bWEtPmZsYWdzICY9IH5JOTE1X1ZNQV9MT0NBTF9CSU5EOw0KPiA+PiAtICAgICAgIH0NCj4gPj4g LQ0KPiA+PiAtICAgICAgIHJldHVybiAwOw0KPiA+PiAtfQ0KPiA+PiAtDQo+ID4+IC1zdGF0aWMg dm9pZCBmYWtlX2FsaWFzaW5nX3BwZ3R0X2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpDQo+ID4+IC17DQo+ID4+IC0gICAgICAgaTkxNV9nZW1fZmluaV9hbGlhc2luZ19wcGd0 dChpOTE1KTsNCj4gPj4gLX0NCj4gPj4gLQ0KPiA+PiAgIGludCBpOTE1X2dlbV9jb250ZXh0X21v Y2tfc2VsZnRlc3RzKHZvaWQpDQo+ID4+ICAgew0KPiA+PiAgICAgICAgICBzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gew0KPiA+PiBAQCAtOTE4LDMxICs4ODUsOSBA QCBpbnQgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QNCj4gZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4+ICAgICAgICAgICAgICAgICAgU1VCVEVTVChpZ3RfY3R4 X2V4ZWMpLA0KPiA+PiAgICAgICAgICAgICAgICAgIFNVQlRFU1QoaWd0X2N0eF9yZWFkb25seSks DQo+ID4+ICAgICAgICAgIH07DQo+ID4+IC0gICAgICAgYm9vbCBmYWtlX2FsaWFzID0gZmFsc2U7 DQo+ID4+IC0gICAgICAgaW50IGVycjsNCj4gPj4NCj4gPj4gICAgICAgICAgaWYgKGk5MTVfdGVy bWluYWxseV93ZWRnZWQoJmRldl9wcml2LT5ncHVfZXJyb3IpKQ0KPiA+PiAgICAgICAgICAgICAg ICAgIHJldHVybiAwOw0KPiA+Pg0KPiA+PiAtICAgICAgIC8qIEluc3RhbGwgYSBmYWtlIGFsaWFz aW5nIGd0dCBmb3IgZXhlcmNpc2UgKi8NCj4gPj4gLSAgICAgICBpZiAoVVNFU19QUEdUVChkZXZf cHJpdikgJiYgIWRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dCkgew0KPiA+PiAtICAgICAgICAg ICAgICAgbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOw0KPiA+PiAtICAg ICAgICAgICAgICAgZXJyID0gZmFrZV9hbGlhc2luZ19wcGd0dF9lbmFibGUoZGV2X3ByaXYpOw0K PiA+PiAtICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9t dXRleCk7DQo+ID4+IC0gICAgICAgICAgICAgICBpZiAoZXJyKQ0KPiA+PiAtICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gZXJyOw0KPiA+PiAtDQo+ID4+IC0gICAgICAgICAgICAgICBHRU1f QlVHX09OKCFkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQpOw0KPiA+PiAtICAgICAgICAgICAg ICAgZmFrZV9hbGlhcyA9IHRydWU7DQo+ID4+IC0gICAgICAgfQ0KPiA+PiAtDQo+ID4+IC0gICAg ICAgZXJyID0gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgZGV2X3ByaXYpOw0KPiA+PiAtDQo+ID4+IC0g ICAgICAgaWYgKGZha2VfYWxpYXMpIHsNCj4gPj4gLSAgICAgICAgICAgICAgIG11dGV4X2xvY2so JmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsNCj4gPj4gLSAgICAgICAgICAgICAgIGZha2Vf YWxpYXNpbmdfcHBndHRfZGlzYWJsZShkZXZfcHJpdik7DQo+ID4+IC0gICAgICAgICAgICAgICBt dXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsNCj4gPj4gLSAgICAgICB9 DQo+ID4+IC0NCj4gPj4gLSAgICAgICByZXR1cm4gZXJyOw0KPiA+PiArICAgICAgIHJldHVybiBp OTE1X3N1YnRlc3RzKHRlc3RzLCBkZXZfcHJpdik7DQo+ID4+ICAgfQ0KPiA+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2aWN0LmMNCj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYw0KPiA+PiBpbmRl eCAxMjhhZDFjZjA2NDcuLjQzNjU5NzlkODIyMiAxMDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2aWN0LmMNCj4gPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2aWN0LmMNCj4gPj4gQEAgLTM1MSw3 ICszNTEsNyBAQCBzdGF0aWMgaW50IGlndF9ldmljdF9jb250ZXh0cyh2b2lkICphcmcpDQo+ID4+ ICAgICAgICAgICAqIHdoZXJlIHRoZSBHVFQgc3BhY2Ugb2YgdGhlIHJlcXVlc3QgaXMgc2VwYXJh dGUgZnJvbSB0aGUgR0dUVA0KPiA+PiAgICAgICAgICAgKiBhbGxvY2F0aW9uIHJlcXVpcmVkIHRv IGJ1aWxkIHRoZSByZXF1ZXN0Lg0KPiA+PiAgICAgICAgICAgKi8NCj4gPj4gLSAgICAgICBpZiAo IVVTRVNfRlVMTF9QUEdUVChpOTE1KSkNCj4gPj4gKyAgICAgICBpZiAoIUhBU19GVUxMX1BQR1RU KGk5MTUpKQ0KPiA+PiAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+Pg0KPiA+PiAgICAg ICAgICBtdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsNCj4gPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYw0KPiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYw0KPiA+PiBpbmRleCA4 ZTJlMjY5ZGI5N2UuLjE3YjVhYWFhN2E1MCAxMDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jDQo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYw0KPiA+PiBAQCAtMTUzLDcgKzE1Myw3 IEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0X2FsbG9jKHZvaWQgKmFyZykNCj4gPj4NCj4gPj4gICAg ICAgICAgLyogQWxsb2NhdGUgYSBwcGdndCBhbmQgdHJ5IHRvIGZpbGwgdGhlIGVudGlyZSByYW5n ZSAqLw0KPiA+Pg0KPiA+PiAtICAgICAgIGlmICghVVNFU19QUEdUVChkZXZfcHJpdikpDQo+ID4+ ICsgICAgICAgaWYgKCFIQVNfUFBHVFQoZGV2X3ByaXYpKQ0KPiA+PiAgICAgICAgICAgICAgICAg IHJldHVybiAwOw0KPiA+Pg0KPiA+PiAgICAgICAgICBwcGd0dCA9IF9faHdfcHBndHRfY3JlYXRl KGRldl9wcml2KTsNCj4gPj4gQEAgLTEwMDEsNyArMTAwMSw3IEBAIHN0YXRpYyBpbnQgZXhlcmNp c2VfcHBndHQoc3RydWN0DQo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+PiAgICAg ICAgICBJR1RfVElNRU9VVChlbmRfdGltZSk7DQo+ID4+ICAgICAgICAgIGludCBlcnI7DQo+ID4+ DQo+ID4+IC0gICAgICAgaWYgKCFVU0VTX0ZVTExfUFBHVFQoZGV2X3ByaXYpKQ0KPiA+PiArICAg ICAgIGlmICghSEFTX0ZVTExfUFBHVFQoZGV2X3ByaXYpKQ0KPiA+PiAgICAgICAgICAgICAgICAg IHJldHVybiAwOw0KPiA+Pg0KPiA+PiAgICAgICAgICBmaWxlID0gbW9ja19maWxlKGRldl9wcml2 KTsNCj4gPj4gLS0NCj4gPj4gMi4xOS4wDQo+ID4+DQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK