From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C085CC433E2 for ; Sat, 12 Sep 2020 01:30:34 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 32A19214F1 for ; Sat, 12 Sep 2020 01:30:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 32A19214F1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 55FA689D83; Sat, 12 Sep 2020 01:30:33 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 371E489D83 for ; Sat, 12 Sep 2020 01:30:32 +0000 (UTC) IronPort-SDR: 89LGqIxKDIwURmfiMl6CNXLuC9iNK5reYDaYdI87SngmI4QpDaDHtMkODgcrKbh3i4Jm6GT0W3 P501cTbWxbVg== X-IronPort-AV: E=McAfee;i="6000,8403,9741"; a="146581780" X-IronPort-AV: E=Sophos;i="5.76,418,1592895600"; d="scan'208";a="146581780" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Sep 2020 18:30:25 -0700 IronPort-SDR: Du+UMcftiIgjuBDRL5ss9ZzY8M5BtGpjF6dSdnsX96KGyNAyRhcxhnY+oLcky46pHF+SUftHFX V+UpkXbGSbXQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,418,1592895600"; d="scan'208";a="450170680" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga004.jf.intel.com with ESMTP; 11 Sep 2020 18:30:24 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 11 Sep 2020 18:30:24 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 11 Sep 2020 18:30:23 -0700 Received: from orsmsx610.amr.corp.intel.com ([10.22.229.23]) by ORSMSX610.amr.corp.intel.com ([10.22.229.23]) with mapi id 15.01.1713.004; Fri, 11 Sep 2020 18:30:23 -0700 From: "Souza, Jose" To: "ville.syrjala@linux.intel.com" , "intel-gfx@lists.freedesktop.org" Thread-Topic: [10/12] drm/i915: Introduce HPD_PORT_TC Thread-Index: AQHWhfmeGoZRUukdGE6j1qxeDb20iqlksswA Date: Sat, 12 Sep 2020 01:30:23 +0000 Message-ID: <339a1180e5fb4d762b15aa7bce90da9db6cd8cdb.camel@intel.com> References: <20200630215601.28557-11-ville.syrjala@linux.intel.com> In-Reply-To: <20200630215601.28557-11-ville.syrjala@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.1.200.100] Content-ID: <57B59D2900759148AF781CB7A0653000@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [10/12] drm/i915: Introduce HPD_PORT_TC X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyMDIwLTA3LTAxIGF0IDAwOjU1ICswMzAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOg0K PiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPA0KPiB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bQ0KPiA+DQo+IA0KPiBNYWtlIGEgY2xlYW4gc3BsaXQgYmV0d2VlbiBocGQgcGlucyBmb3IgRERJ IHZzLiBUQy4gVGhpcyBtYXRjaGVzDQo+IGhvdyB0aGUgYWN0dWFsIGhhcmR3YXJlIGlzIHNwbGl0 Lg0KPiANCj4gQW5kIHdpdGggdGhpcyB3ZSBtb3ZlIHRoZSBEREkvUEhZLT5IUEQgcGluIG1hcHBp bmcgaW50byB0aGUgZW5jb2Rlcg0KPiBpbml0IGluc3RlYWQgb2YgaGF2aW5nIHRvIHJlbWFwIHll dCBhZ2FpbiBpbiB0aGUgaW50ZXJydXB0IGNvZGUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBWaWxs ZSBTeXJqw6Rsw6QgPA0KPiB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbQ0KPiA+DQo+IC0t LQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyAgICAgfCAgNjUg KysrKysrKysrLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVn LmMgfCAgMjUgKy0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAg ICAgICAgfCAgMTcgKy0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAg ICAgICAgICB8IDEyMSArKysrKy0tLS0tLS0tLS0tLS0tDQo+ICA0IGZpbGVzIGNoYW5nZWQsIDEw MiBpbnNlcnRpb25zKCspLCAxMjYgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMNCj4gaW5kZXggZDAyNDQ5MTczOGIzLi5hMmM5ODE1YzVh YmMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRp LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYw0KPiBA QCAtNDg0Nyw2ICs0ODQ3LDU3IEBAIGludGVsX2RkaV9tYXhfbGFuZXMoc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZHBvcnQpDQo+ICAJcmV0dXJuIG1heF9sYW5lczsNCj4gIH0NCj4g IA0KPiArc3RhdGljIGVudW0gaHBkX3BpbiB0Z2xfaHBkX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsDQo+ICsJCQkJZW51bSBwb3J0IHBvcnQpDQo+ICt7DQo+ICsJaWYgKHBv cnQgPj0gUE9SVF9EKQ0KPiArCQlyZXR1cm4gSFBEX1BPUlRfVEMxICsgcG9ydCAtIFBPUlRfRDsN Cj4gKwllbHNlDQo+ICsJCXJldHVybiBIUERfUE9SVF9BICsgcG9ydCAtIFBPUlRfQTsNCj4gK30N Cj4gKw0KPiArc3RhdGljIGVudW0gaHBkX3BpbiBya2xfaHBkX3BpbihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICsJCQkJZW51bSBwb3J0IHBvcnQpDQo+ICt7DQo+ICsJaWYg KEhBU19QQ0hfVEdQKGRldl9wcml2KSkNCj4gKwkJcmV0dXJuIHRnbF9ocGRfcGluKGRldl9wcml2 LCBwb3J0KTsNCj4gKw0KPiArCWlmIChwb3J0ID49IFBPUlRfRCkNCj4gKwkJcmV0dXJuIEhQRF9Q T1JUX0MgKyBwb3J0IC0gUE9SVF9EOw0KDQpUaGUgYWJvdmUgbG9va3Mgd3JvbmcsIGZvciBpdCB3 b3VsZCBtYXRjaCB3aXRoIG9ubHkgdGhlIHJldHVybiBiZWxsb3cuDQoNCj4gKwllbHNlDQo+ICsJ CXJldHVybiBIUERfUE9SVF9BICsgcG9ydCAtIFBPUlRfQTsNCj4gK30NCj4gKw0KPiArc3RhdGlj IGVudW0gaHBkX3BpbiBpY2xfaHBkX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsDQo+ICsJCQkJZW51bSBwb3J0IHBvcnQpDQo+ICt7DQo+ICsJaWYgKHBvcnQgPj0gUE9SVF9D KQ0KPiArCQlyZXR1cm4gSFBEX1BPUlRfVEMxICsgcG9ydCAtIFBPUlRfQzsNCj4gKwllbHNlDQo+ ICsJCXJldHVybiBIUERfUE9SVF9BICsgcG9ydCAtIFBPUlRfQTsNCj4gK30NCj4gKw0KPiArc3Rh dGljIGVudW0gaHBkX3BpbiBlaGxfaHBkX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsDQo+ICsJCQkJZW51bSBwb3J0IHBvcnQpDQo+ICt7DQo+ICsJaWYgKHBvcnQgPT0gUE9S VF9EKQ0KPiArCQlyZXR1cm4gSFBEX1BPUlRfQTsNCj4gKw0KPiArCWlmIChIQVNfUENIX01DQyhk ZXZfcHJpdikpDQo+ICsJCXJldHVybiBpY2xfaHBkX3BpbihkZXZfcHJpdiwgcG9ydCk7DQoNCk1h eWJlIGNhbGwgdGdsX2hwZF9waW4oKSBmb3IgSEFTX1BDSF9NQ0MoKT8gVGhlIGNvZGUgYmVsbG93 IHdpbGwgbWF0Y2ggYnV0IGp1c3QgZm9yIGNvbnNpc3RlbmN5Lg0KDQpPdGhlciB0aGFuIHRoZSBS S0wgY29tbWVudCBpdCBsb29rcyBnb29kIHRvIG1lLg0KDQo+ICsNCj4gKwlyZXR1cm4gSFBEX1BP UlRfQSArIHBvcnQgLSBQT1JUX0E7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBlbnVtIGhwZF9waW4g Y25sX2hwZF9waW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiArCQkJCWVu dW0gcG9ydCBwb3J0KQ0KPiArew0KPiArCWlmIChwb3J0ID09IFBPUlRfRikNCj4gKwkJcmV0dXJu IEhQRF9QT1JUX0U7DQo+ICsNCj4gKwlyZXR1cm4gSFBEX1BPUlRfQSArIHBvcnQgLSBQT1JUX0E7 DQo+ICt9DQo+ICsNCj4gIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkNCj4gIHsNCj4gIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydDsNCj4gQEAgLTQ5MDcsNyArNDk1OCwxOSBAQCB2b2lk IGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBw b3J0IHBvcnQpDQo+ICAJZW5jb2Rlci0+cG9ydCA9IHBvcnQ7DQo+ICAJZW5jb2Rlci0+Y2xvbmVh YmxlID0gMDsNCj4gIAllbmNvZGVyLT5waXBlX21hc2sgPSB+MDsNCj4gLQllbmNvZGVyLT5ocGRf cGluID0gaW50ZWxfaHBkX3Bpbl9kZWZhdWx0KGRldl9wcml2LCBwb3J0KTsNCj4gKw0KPiArCWlm IChJU19ST0NLRVRMQUtFKGRldl9wcml2KSkNCj4gKwkJZW5jb2Rlci0+aHBkX3BpbiA9IHJrbF9o cGRfcGluKGRldl9wcml2LCBwb3J0KTsNCj4gKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDEyKQ0KPiArCQllbmNvZGVyLT5ocGRfcGluID0gdGdsX2hwZF9waW4oZGV2X3ByaXYsIHBv cnQpOw0KPiArCWVsc2UgaWYgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSkNCj4gKwkJZW5jb2Rl ci0+aHBkX3BpbiA9IGVobF9ocGRfcGluKGRldl9wcml2LCBwb3J0KTsNCj4gKwllbHNlIGlmIChJ U19HRU4oZGV2X3ByaXYsIDExKSkNCj4gKwkJZW5jb2Rlci0+aHBkX3BpbiA9IGljbF9ocGRfcGlu KGRldl9wcml2LCBwb3J0KTsNCj4gKwllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDEwKSkNCj4g KwkJZW5jb2Rlci0+aHBkX3BpbiA9IGNubF9ocGRfcGluKGRldl9wcml2LCBwb3J0KTsNCj4gKwll bHNlDQo+ICsJCWVuY29kZXItPmhwZF9waW4gPSBpbnRlbF9ocGRfcGluX2RlZmF1bHQoZGV2X3By aXYsIHBvcnQpOw0KPiAgDQo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpDQo+ICAJ CWludGVsX2RpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2 LA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3Rw bHVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYw0KPiBp bmRleCA4MGJjZmZmMDMyZTkuLjhhOGU3NzMxNGE0ZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmMNCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmMNCj4gQEAgLTgxLDMzICs4MSwxMiBAQA0K PiAgICoNCj4gICAqIEl0IGlzIG9ubHkgdmFsaWQgYW5kIHVzZWQgYnkgZGlnaXRhbCBwb3J0IGVu Y29kZXIuDQo+ICAgKg0KPiAtICogUmV0dXJuIHBpbiB0aGF0IGlzIGFzc29jaWF0YWRlIHdpdGgg QHBvcnQgYW5kIEhEUF9OT05FIGlmIG5vIHBpbiBpcw0KPiAtICogaGFyZCBhc3NvY2lhdGVkIHdp dGggdGhhdCBAcG9ydC4NCj4gKyAqIFJldHVybiBwaW4gdGhhdCBpcyBhc3NvY2lhdGFkZSB3aXRo IEBwb3J0Lg0KPiAgICovDQo+ICBlbnVtIGhwZF9waW4gaW50ZWxfaHBkX3Bpbl9kZWZhdWx0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gIAkJCQkgICBlbnVtIHBvcnQgcG9y dCkNCj4gIHsNCj4gLQllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwg cG9ydCk7DQo+IC0NCj4gLQkvKg0KPiAtCSAqIFJLTCArIFRHUCBQQ0ggaXMgYSBzcGVjaWFsIGNh c2U7IHdlIGVmZmVjdGl2ZWx5IGNob29zZSB0aGUgaHBkX3Bpbg0KPiAtCSAqIGJhc2VkIG9uIHRo ZSBEREkgcmF0aGVyIHRoYW4gdGhlIFBIWSAoaS5lLiwgdGhlIGxhc3QgdHdvIG91dHB1dHMNCj4g LQkgKiBzaG9sZCBiZSBIUERfUE9SVF97RCxFfSByYXRoZXIgdGhhbiB7QyxEfS4gIE5vdGUgdGhh dCB0aGlzIGRpZmZlcnMNCj4gLQkgKiBmcm9tIHRoZSBiZWhhdmlvciBvZiBib3RoIFRHTCtUR1Ag YW5kIFJLTCtDTVAuDQo+IC0JICovDQo+IC0JaWYgKElTX1JPQ0tFVExBS0UoZGV2X3ByaXYpICYm IEhBU19QQ0hfVEdQKGRldl9wcml2KSkNCj4gLQkJcmV0dXJuIEhQRF9QT1JUX0EgKyBwb3J0IC0g UE9SVF9BOw0KPiAtDQo+IC0Jc3dpdGNoIChwaHkpIHsNCj4gLQljYXNlIFBIWV9GOg0KPiAtCQly ZXR1cm4gSVNfQ05MX1dJVEhfUE9SVF9GKGRldl9wcml2KSA/IEhQRF9QT1JUX0UgOiBIUERfUE9S VF9GOw0KPiAtCWNhc2UgUEhZX0EgLi4uIFBIWV9FOg0KPiAtCWNhc2UgUEhZX0cgLi4uIFBIWV9J Og0KPiAtCQlyZXR1cm4gSFBEX1BPUlRfQSArIHBoeSAtIFBIWV9BOw0KPiAtCWRlZmF1bHQ6DQo+ IC0JCU1JU1NJTkdfQ0FTRShwaHkpOw0KPiAtCQlyZXR1cm4gSFBEX05PTkU7DQo+IC0JfQ0KPiAr CXJldHVybiBIUERfUE9SVF9BICsgcG9ydCAtIFBPUlRfQTsNCj4gIH0NCj4gIA0KPiAgI2RlZmlu ZSBIUERfU1RPUk1fREVURUNUX1BFUklPRAkJMTAwMA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgN Cj4gaW5kZXggNmU5MDcyYWIzMGExLi5kY2QzNWNkOTdmMDEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaA0KPiBAQCAtMTEzLDEzICsxMTMsNiBAQA0KPiAgDQo+ICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdDsNCj4gIA0KPiAtLyoNCj4gLSAqIFRoZSBjb2RlIGFzc3VtZXMgdGhhdCB0 aGUgaHBkX3BpbnMgYmVsb3cgaGF2ZSBjb25zZWN1dGl2ZSB2YWx1ZXMgYW5kDQo+IC0gKiBzdGFy dGluZyB3aXRoIEhQRF9QT1JUX0EsIHRoZSBIUEQgcGluIGFzc29jaWF0ZWQgd2l0aCBhbnkgcG9y dCBjYW4gYmUNCj4gLSAqIHJldHJpZXZlZCBieSBhZGRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9y dCAob3IgcGh5KSBlbnVtIHZhbHVlIHRvDQo+IC0gKiBIUERfUE9SVF9BIGluIG1vc3QgY2FzZXMu IEZvciBleGFtcGxlOg0KPiAtICogSFBEX1BPUlRfQyA9IEhQRF9QT1JUX0EgKyBQSFlfQyAtIFBI WV9BDQo+IC0gKi8NCj4gIGVudW0gaHBkX3BpbiB7DQo+ICAJSFBEX05PTkUgPSAwLA0KPiAgCUhQ RF9UViA9IEhQRF9OT05FLCAgICAgLyogVFYgaXMga25vd24gdG8gYmUgdW5yZWxpYWJsZSAqLw0K PiBAQCAtMTMxLDEwICsxMjQsMTIgQEAgZW51bSBocGRfcGluIHsNCj4gIAlIUERfUE9SVF9DLA0K PiAgCUhQRF9QT1JUX0QsDQo+ICAJSFBEX1BPUlRfRSwNCj4gLQlIUERfUE9SVF9GLA0KPiAtCUhQ RF9QT1JUX0csDQo+IC0JSFBEX1BPUlRfSCwNCj4gLQlIUERfUE9SVF9JLA0KPiArCUhQRF9QT1JU X1RDMSwNCj4gKwlIUERfUE9SVF9UQzIsDQo+ICsJSFBEX1BPUlRfVEMzLA0KPiArCUhQRF9QT1JU X1RDNCwNCj4gKwlIUERfUE9SVF9UQzUsDQo+ICsJSFBEX1BPUlRfVEM2LA0KPiAgDQo+ICAJSFBE X05VTV9QSU5TDQo+ICB9Ow0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMNCj4gaW5kZXggOTJkNzQ0 NDhlZTAzLi45NWFiNDQzMmE4N2QgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYw0KPiBA QCAtMTMxLDQwICsxMzEsMjQgQEAgc3RhdGljIGNvbnN0IHUzMiBocGRfYnh0W0hQRF9OVU1fUElO U10gPSB7DQo+ICB9Ow0KPiAgDQo+ICBzdGF0aWMgY29uc3QgdTMyIGhwZF9nZW4xMVtIUERfTlVN X1BJTlNdID0gew0KPiAtCVtIUERfUE9SVF9DXSA9IEdFTjExX1RDX0hPVFBMVUcoUE9SVF9UQzEp IHwgR0VOMTFfVEJUX0hPVFBMVUcoUE9SVF9UQzEpLA0KPiAtCVtIUERfUE9SVF9EXSA9IEdFTjEx X1RDX0hPVFBMVUcoUE9SVF9UQzIpIHwgR0VOMTFfVEJUX0hPVFBMVUcoUE9SVF9UQzIpLA0KPiAt CVtIUERfUE9SVF9FXSA9IEdFTjExX1RDX0hPVFBMVUcoUE9SVF9UQzMpIHwgR0VOMTFfVEJUX0hP VFBMVUcoUE9SVF9UQzMpLA0KPiAtCVtIUERfUE9SVF9GXSA9IEdFTjExX1RDX0hPVFBMVUcoUE9S VF9UQzQpIHwgR0VOMTFfVEJUX0hPVFBMVUcoUE9SVF9UQzQpLA0KPiAtfTsNCj4gLQ0KPiAtc3Rh dGljIGNvbnN0IHUzMiBocGRfZ2VuMTJbSFBEX05VTV9QSU5TXSA9IHsNCj4gLQlbSFBEX1BPUlRf RF0gPSBHRU4xMV9UQ19IT1RQTFVHKFBPUlRfVEMxKSB8IEdFTjExX1RCVF9IT1RQTFVHKFBPUlRf VEMxKSwNCj4gLQlbSFBEX1BPUlRfRV0gPSBHRU4xMV9UQ19IT1RQTFVHKFBPUlRfVEMyKSB8IEdF TjExX1RCVF9IT1RQTFVHKFBPUlRfVEMyKSwNCj4gLQlbSFBEX1BPUlRfRl0gPSBHRU4xMV9UQ19I T1RQTFVHKFBPUlRfVEMzKSB8IEdFTjExX1RCVF9IT1RQTFVHKFBPUlRfVEMzKSwNCj4gLQlbSFBE X1BPUlRfR10gPSBHRU4xMV9UQ19IT1RQTFVHKFBPUlRfVEM0KSB8IEdFTjExX1RCVF9IT1RQTFVH KFBPUlRfVEM0KSwNCj4gLQlbSFBEX1BPUlRfSF0gPSBHRU4xMV9UQ19IT1RQTFVHKFBPUlRfVEM1 KSB8IEdFTjExX1RCVF9IT1RQTFVHKFBPUlRfVEM1KSwNCj4gLQlbSFBEX1BPUlRfSV0gPSBHRU4x MV9UQ19IT1RQTFVHKFBPUlRfVEM2KSB8IEdFTjExX1RCVF9IT1RQTFVHKFBPUlRfVEM2KSwNCj4g KwlbSFBEX1BPUlRfVEMxXSA9IEdFTjExX1RDX0hPVFBMVUcoUE9SVF9UQzEpIHwgR0VOMTFfVEJU X0hPVFBMVUcoUE9SVF9UQzEpLA0KPiArCVtIUERfUE9SVF9UQzJdID0gR0VOMTFfVENfSE9UUExV RyhQT1JUX1RDMikgfCBHRU4xMV9UQlRfSE9UUExVRyhQT1JUX1RDMiksDQo+ICsJW0hQRF9QT1JU X1RDM10gPSBHRU4xMV9UQ19IT1RQTFVHKFBPUlRfVEMzKSB8IEdFTjExX1RCVF9IT1RQTFVHKFBP UlRfVEMzKSwNCj4gKwlbSFBEX1BPUlRfVEM0XSA9IEdFTjExX1RDX0hPVFBMVUcoUE9SVF9UQzQp IHwgR0VOMTFfVEJUX0hPVFBMVUcoUE9SVF9UQzQpLA0KPiArCVtIUERfUE9SVF9UQzVdID0gR0VO MTFfVENfSE9UUExVRyhQT1JUX1RDNSkgfCBHRU4xMV9UQlRfSE9UUExVRyhQT1JUX1RDNSksDQo+ ICsJW0hQRF9QT1JUX1RDNl0gPSBHRU4xMV9UQ19IT1RQTFVHKFBPUlRfVEM2KSB8IEdFTjExX1RC VF9IT1RQTFVHKFBPUlRfVEM2KSwNCj4gIH07DQo+ICANCj4gIHN0YXRpYyBjb25zdCB1MzIgaHBk X2ljcFtIUERfTlVNX1BJTlNdID0gew0KPiAtCVtIUERfUE9SVF9BXSA9IFNERV9ERElfSE9UUExV R19JQ1AoUE9SVF9BKSwNCj4gLQlbSFBEX1BPUlRfQl0gPSBTREVfRERJX0hPVFBMVUdfSUNQKFBP UlRfQiksDQo+IC0JW0hQRF9QT1JUX0NdID0gU0RFX1RDX0hPVFBMVUdfSUNQKFBPUlRfVEMxKSwN Cj4gLQlbSFBEX1BPUlRfRF0gPSBTREVfVENfSE9UUExVR19JQ1AoUE9SVF9UQzIpLA0KPiAtCVtI UERfUE9SVF9FXSA9IFNERV9UQ19IT1RQTFVHX0lDUChQT1JUX1RDMyksDQo+IC0JW0hQRF9QT1JU X0ZdID0gU0RFX1RDX0hPVFBMVUdfSUNQKFBPUlRfVEM0KSwNCj4gLX07DQo+IC0NCj4gLXN0YXRp YyBjb25zdCB1MzIgaHBkX3RncFtIUERfTlVNX1BJTlNdID0gew0KPiAgCVtIUERfUE9SVF9BXSA9 IFNERV9ERElfSE9UUExVR19JQ1AoUE9SVF9BKSwNCj4gIAlbSFBEX1BPUlRfQl0gPSBTREVfRERJ X0hPVFBMVUdfSUNQKFBPUlRfQiksDQo+ICAJW0hQRF9QT1JUX0NdID0gU0RFX0RESV9IT1RQTFVH X0lDUChQT1JUX0MpLA0KPiAtCVtIUERfUE9SVF9EXSA9IFNERV9UQ19IT1RQTFVHX0lDUChQT1JU X1RDMSksDQo+IC0JW0hQRF9QT1JUX0VdID0gU0RFX1RDX0hPVFBMVUdfSUNQKFBPUlRfVEMyKSwN Cj4gLQlbSFBEX1BPUlRfRl0gPSBTREVfVENfSE9UUExVR19JQ1AoUE9SVF9UQzMpLA0KPiAtCVtI UERfUE9SVF9HXSA9IFNERV9UQ19IT1RQTFVHX0lDUChQT1JUX1RDNCksDQo+IC0JW0hQRF9QT1JU X0hdID0gU0RFX1RDX0hPVFBMVUdfSUNQKFBPUlRfVEM1KSwNCj4gLQlbSFBEX1BPUlRfSV0gPSBT REVfVENfSE9UUExVR19JQ1AoUE9SVF9UQzYpLA0KPiArCVtIUERfUE9SVF9UQzFdID0gU0RFX1RD X0hPVFBMVUdfSUNQKFBPUlRfVEMxKSwNCj4gKwlbSFBEX1BPUlRfVEMyXSA9IFNERV9UQ19IT1RQ TFVHX0lDUChQT1JUX1RDMiksDQo+ICsJW0hQRF9QT1JUX1RDM10gPSBTREVfVENfSE9UUExVR19J Q1AoUE9SVF9UQzMpLA0KPiArCVtIUERfUE9SVF9UQzRdID0gU0RFX1RDX0hPVFBMVUdfSUNQKFBP UlRfVEM0KSwNCj4gKwlbSFBEX1BPUlRfVEM1XSA9IFNERV9UQ19IT1RQTFVHX0lDUChQT1JUX1RD NSksDQo+ICsJW0hQRF9QT1JUX1RDNl0gPSBTREVfVENfSE9UUExVR19JQ1AoUE9SVF9UQzYpLA0K PiAgfTsNCj4gIA0KPiAgc3RhdGljIHZvaWQgaW50ZWxfaHBkX2luaXRfcGlucyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+IEBAIC0xODAsOSArMTY0LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfaHBkX2luaXRfcGlucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp DQo+ICAJCXJldHVybjsNCj4gIAl9DQo+ICANCj4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSAxMikNCj4gLQkJaHBkLT5ocGQgPSBocGRfZ2VuMTI7DQo+IC0JZWxzZSBpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkNCj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkNCj4g IAkJaHBkLT5ocGQgPSBocGRfZ2VuMTE7DQo+ICAJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJp dikpDQo+ICAJCWhwZC0+aHBkID0gaHBkX2J4dDsNCj4gQEAgLTE5Niw5ICsxNzgsOCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9ocGRfaW5pdF9waW5zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikNCj4gIAlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpIHx8IEhBU19QQ0hfTk9QKGRl dl9wcml2KSkNCj4gIAkJcmV0dXJuOw0KPiAgDQo+IC0JaWYgKEhBU19QQ0hfVEdQKGRldl9wcml2 KSB8fCBIQVNfUENIX0pTUChkZXZfcHJpdikpDQo+IC0JCWhwZC0+cGNoX2hwZCA9IGhwZF90Z3A7 DQo+IC0JZWxzZSBpZiAoSEFTX1BDSF9JQ1AoZGV2X3ByaXYpIHx8IEhBU19QQ0hfTUNDKGRldl9w cml2KSkNCj4gKwlpZiAoSEFTX1BDSF9UR1AoZGV2X3ByaXYpIHx8IEhBU19QQ0hfSlNQKGRldl9w cml2KSB8fA0KPiArCSAgICBIQVNfUENIX0lDUChkZXZfcHJpdikgfHwgSEFTX1BDSF9NQ0MoZGV2 X3ByaXYpKQ0KPiAgCQlocGQtPnBjaF9ocGQgPSBocGRfaWNwOw0KPiAgCWVsc2UgaWYgKEhBU19Q Q0hfQ05QKGRldl9wcml2KSB8fCBIQVNfUENIX1NQVChkZXZfcHJpdikpDQo+ICAJCWhwZC0+cGNo X2hwZCA9IGhwZF9zcHQ7DQo+IEBAIC0xMDQ4LDMzICsxMDI5LDE3IEBAIHN0YXRpYyB2b2lkIGl2 Yl9wYXJpdHlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICBzdGF0aWMgYm9vbCBn ZW4xMV9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBocGRfcGluIHBpbiwgdTMyIHZhbCkN Cj4gIHsNCj4gIAlzd2l0Y2ggKHBpbikgew0KPiAtCWNhc2UgSFBEX1BPUlRfQzoNCj4gKwljYXNl IEhQRF9QT1JUX1RDMToNCj4gIAkJcmV0dXJuIHZhbCAmIEdFTjExX0hPVFBMVUdfQ1RMX0xPTkdf REVURUNUKFBPUlRfVEMxKTsNCj4gLQljYXNlIEhQRF9QT1JUX0Q6DQo+ICsJY2FzZSBIUERfUE9S VF9UQzI6DQo+ICAJCXJldHVybiB2YWwgJiBHRU4xMV9IT1RQTFVHX0NUTF9MT05HX0RFVEVDVChQ T1JUX1RDMik7DQo+IC0JY2FzZSBIUERfUE9SVF9FOg0KPiArCWNhc2UgSFBEX1BPUlRfVEMzOg0K PiAgCQlyZXR1cm4gdmFsICYgR0VOMTFfSE9UUExVR19DVExfTE9OR19ERVRFQ1QoUE9SVF9UQzMp Ow0KPiAtCWNhc2UgSFBEX1BPUlRfRjoNCj4gKwljYXNlIEhQRF9QT1JUX1RDNDoNCj4gIAkJcmV0 dXJuIHZhbCAmIEdFTjExX0hPVFBMVUdfQ1RMX0xPTkdfREVURUNUKFBPUlRfVEM0KTsNCj4gLQlk ZWZhdWx0Og0KPiAtCQlyZXR1cm4gZmFsc2U7DQo+IC0JfQ0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMg Ym9vbCBnZW4xMl9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBocGRfcGluIHBpbiwgdTMy IHZhbCkNCj4gLXsNCj4gLQlzd2l0Y2ggKHBpbikgew0KPiAtCWNhc2UgSFBEX1BPUlRfRDoNCj4g LQkJcmV0dXJuIHZhbCAmIEdFTjExX0hPVFBMVUdfQ1RMX0xPTkdfREVURUNUKFBPUlRfVEMxKTsN Cj4gLQljYXNlIEhQRF9QT1JUX0U6DQo+IC0JCXJldHVybiB2YWwgJiBHRU4xMV9IT1RQTFVHX0NU TF9MT05HX0RFVEVDVChQT1JUX1RDMik7DQo+IC0JY2FzZSBIUERfUE9SVF9GOg0KPiAtCQlyZXR1 cm4gdmFsICYgR0VOMTFfSE9UUExVR19DVExfTE9OR19ERVRFQ1QoUE9SVF9UQzMpOw0KPiAtCWNh c2UgSFBEX1BPUlRfRzoNCj4gLQkJcmV0dXJuIHZhbCAmIEdFTjExX0hPVFBMVUdfQ1RMX0xPTkdf REVURUNUKFBPUlRfVEM0KTsNCj4gLQljYXNlIEhQRF9QT1JUX0g6DQo+ICsJY2FzZSBIUERfUE9S VF9UQzU6DQo+ICAJCXJldHVybiB2YWwgJiBHRU4xMV9IT1RQTFVHX0NUTF9MT05HX0RFVEVDVChQ T1JUX1RDNSk7DQo+IC0JY2FzZSBIUERfUE9SVF9JOg0KPiArCWNhc2UgSFBEX1BPUlRfVEM2Og0K PiAgCQlyZXR1cm4gdmFsICYgR0VOMTFfSE9UUExVR19DVExfTE9OR19ERVRFQ1QoUE9SVF9UQzYp Ow0KPiAgCWRlZmF1bHQ6DQo+ICAJCXJldHVybiBmYWxzZTsNCj4gQEAgLTExMTIsMzMgKzEwNzcs MTcgQEAgc3RhdGljIGJvb2wgaWNwX2RkaV9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBo cGRfcGluIHBpbiwgdTMyIHZhbCkNCj4gIHN0YXRpYyBib29sIGljcF90Y19wb3J0X2hvdHBsdWdf bG9uZ19kZXRlY3QoZW51bSBocGRfcGluIHBpbiwgdTMyIHZhbCkNCj4gIHsNCj4gIAlzd2l0Y2gg KHBpbikgew0KPiAtCWNhc2UgSFBEX1BPUlRfQzoNCj4gKwljYXNlIEhQRF9QT1JUX1RDMToNCj4g IAkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzEpOw0KPiAtCWNh c2UgSFBEX1BPUlRfRDoNCj4gKwljYXNlIEhQRF9QT1JUX1RDMjoNCj4gIAkJcmV0dXJuIHZhbCAm IElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzIpOw0KPiAtCWNhc2UgSFBEX1BPUlRfRToN Cj4gKwljYXNlIEhQRF9QT1JUX1RDMzoNCj4gIAkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9O R19ERVRFQ1QoUE9SVF9UQzMpOw0KPiAtCWNhc2UgSFBEX1BPUlRfRjoNCj4gKwljYXNlIEhQRF9Q T1JUX1RDNDoNCj4gIAkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9U QzQpOw0KPiAtCWRlZmF1bHQ6DQo+IC0JCXJldHVybiBmYWxzZTsNCj4gLQl9DQo+IC19DQo+IC0N Cj4gLXN0YXRpYyBib29sIHRncF90Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBocGRf cGluIHBpbiwgdTMyIHZhbCkNCj4gLXsNCj4gLQlzd2l0Y2ggKHBpbikgew0KPiAtCWNhc2UgSFBE X1BPUlRfRDoNCj4gLQkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9U QzEpOw0KPiAtCWNhc2UgSFBEX1BPUlRfRToNCj4gLQkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERf TE9OR19ERVRFQ1QoUE9SVF9UQzIpOw0KPiAtCWNhc2UgSFBEX1BPUlRfRjoNCj4gLQkJcmV0dXJu IHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzMpOw0KPiAtCWNhc2UgSFBEX1BP UlRfRzoNCj4gLQkJcmV0dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzQp Ow0KPiAtCWNhc2UgSFBEX1BPUlRfSDoNCj4gKwljYXNlIEhQRF9QT1JUX1RDNToNCj4gIAkJcmV0 dXJuIHZhbCAmIElDUF9UQ19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzUpOw0KPiAtCWNhc2UgSFBE X1BPUlRfSToNCj4gKwljYXNlIEhQRF9QT1JUX1RDNjoNCj4gIAkJcmV0dXJuIHZhbCAmIElDUF9U Q19IUERfTE9OR19ERVRFQ1QoUE9SVF9UQzYpOw0KPiAgCWRlZmF1bHQ6DQo+ICAJCXJldHVybiBm YWxzZTsNCj4gQEAgLTE4OTIsMTkgKzE4NDEsMTYgQEAgc3RhdGljIHZvaWQgaWNwX2lycV9oYW5k bGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpDQo+ICB7 DQo+ICAJdTMyIGRkaV9ob3RwbHVnX3RyaWdnZXIsIHRjX2hvdHBsdWdfdHJpZ2dlcjsNCj4gIAl1 MzIgcGluX21hc2sgPSAwLCBsb25nX21hc2sgPSAwOw0KPiAtCWJvb2wgKCp0Y19wb3J0X2hvdHBs dWdfbG9uZ19kZXRlY3QpKGVudW0gaHBkX3BpbiBwaW4sIHUzMiB2YWwpOw0KPiAgDQo+ICAJaWYg KEhBU19QQ0hfVEdQKGRldl9wcml2KSkgew0KPiAgCQlkZGlfaG90cGx1Z190cmlnZ2VyID0gcGNo X2lpciAmIFNERV9ERElfTUFTS19UR1A7DQo+ICAJCXRjX2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9p aXIgJiBTREVfVENfTUFTS19UR1A7DQo+IC0JCXRjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCA9 IHRncF90Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3Q7DQo+ICAJfSBlbHNlIGlmIChIQVNfUENI X0pTUChkZXZfcHJpdikpIHsNCj4gIAkJZGRpX2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBT REVfRERJX01BU0tfVEdQOw0KPiAgCQl0Y19ob3RwbHVnX3RyaWdnZXIgPSAwOw0KPiAgCX0gZWxz ZSBpZiAoSEFTX1BDSF9NQ0MoZGV2X3ByaXYpKSB7DQo+ICAJCWRkaV9ob3RwbHVnX3RyaWdnZXIg PSBwY2hfaWlyICYgU0RFX0RESV9NQVNLX0lDUDsNCj4gIAkJdGNfaG90cGx1Z190cmlnZ2VyID0g cGNoX2lpciAmIFNERV9UQ19IT1RQTFVHX0lDUChQT1JUX1RDMSk7DQo+IC0JCXRjX3BvcnRfaG90 cGx1Z19sb25nX2RldGVjdCA9IGljcF90Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3Q7DQo+ICAJ fSBlbHNlIHsNCj4gIAkJZHJtX1dBUk4oJmRldl9wcml2LT5kcm0sICFIQVNfUENIX0lDUChkZXZf cHJpdiksDQo+ICAJCQkgIlVucmVjb2duaXplZCBQQ0ggdHlwZSAweCV4XG4iLA0KPiBAQCAtMTkx Miw3ICsxODU4LDYgQEAgc3RhdGljIHZvaWQgaWNwX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpDQo+ICANCj4gIAkJZGRpX2hvdHBsdWdf dHJpZ2dlciA9IHBjaF9paXIgJiBTREVfRERJX01BU0tfSUNQOw0KPiAgCQl0Y19ob3RwbHVnX3Ry aWdnZXIgPSBwY2hfaWlyICYgU0RFX1RDX01BU0tfSUNQOw0KPiAtCQl0Y19wb3J0X2hvdHBsdWdf bG9uZ19kZXRlY3QgPSBpY3BfdGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0Ow0KPiAgCX0NCj4g IA0KPiAgCWlmIChkZGlfaG90cGx1Z190cmlnZ2VyKSB7DQo+IEBAIC0xOTM2LDcgKzE4ODEsNyBA QCBzdGF0aWMgdm9pZCBpY3BfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCB1MzIgcGNoX2lpcikNCj4gIAkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAm cGluX21hc2ssICZsb25nX21hc2ssDQo+ICAJCQkJICAgdGNfaG90cGx1Z190cmlnZ2VyLCBkaWdf aG90cGx1Z19yZWcsDQo+ICAJCQkJICAgZGV2X3ByaXYtPmhvdHBsdWcucGNoX2hwZCwNCj4gLQkJ CQkgICB0Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOw0KPiArCQkJCSAgIGljcF90Y19wb3J0 X2hvdHBsdWdfbG9uZ19kZXRlY3QpOw0KPiAgCX0NCj4gIA0KPiAgCWlmIChwaW5fbWFzaykNCj4g QEAgLTIxODQsMTIgKzIxMjksNiBAQCBzdGF0aWMgdm9pZCBnZW4xMV9ocGRfaXJxX2hhbmRsZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgaWlyKQ0KPiAgCXUzMiBwaW5f bWFzayA9IDAsIGxvbmdfbWFzayA9IDA7DQo+ICAJdTMyIHRyaWdnZXJfdGMgPSBpaXIgJiBHRU4x MV9ERV9UQ19IT1RQTFVHX01BU0s7DQo+ICAJdTMyIHRyaWdnZXJfdGJ0ID0gaWlyICYgR0VOMTFf REVfVEJUX0hPVFBMVUdfTUFTSzsNCj4gLQlsb25nX3B1bHNlX2RldGVjdF9mdW5jIGxvbmdfcHVs c2VfZGV0ZWN0Ow0KPiAtDQo+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpDQo+IC0J CWxvbmdfcHVsc2VfZGV0ZWN0ID0gZ2VuMTJfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0Ow0KPiAt CWVsc2UNCj4gLQkJbG9uZ19wdWxzZV9kZXRlY3QgPSBnZW4xMV9wb3J0X2hvdHBsdWdfbG9uZ19k ZXRlY3Q7DQo+ICANCj4gIAlpZiAodHJpZ2dlcl90Yykgew0KPiAgCQl1MzIgZGlnX2hvdHBsdWdf cmVnOw0KPiBAQCAtMjIwMCw3ICsyMTM5LDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfaHBkX2lycV9o YW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGlpcikNCj4gIAkJ aW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssDQo+ICAJ CQkJICAgdHJpZ2dlcl90YywgZGlnX2hvdHBsdWdfcmVnLA0KPiAgCQkJCSAgIGRldl9wcml2LT5o b3RwbHVnLmhwZCwNCj4gLQkJCQkgICBsb25nX3B1bHNlX2RldGVjdCk7DQo+ICsJCQkJICAgZ2Vu MTFfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsNCj4gIAl9DQo+ICANCj4gIAlpZiAodHJpZ2dl cl90YnQpIHsNCj4gQEAgLTIyMTIsNyArMjE1MSw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2hwZF9p cnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBpaXIpDQo+ ICAJCWludGVsX2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLA0K PiAgCQkJCSAgIHRyaWdnZXJfdGJ0LCBkaWdfaG90cGx1Z19yZWcsDQo+ICAJCQkJICAgZGV2X3By aXYtPmhvdHBsdWcuaHBkLA0KPiAtCQkJCSAgIGxvbmdfcHVsc2VfZGV0ZWN0KTsNCj4gKwkJCQkg ICBnZW4xMV9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOw0KPiAgCX0NCj4gIA0KPiAgCWlmIChw aW5fbWFzaykNCj4gDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK