From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 02/10] drm/i915: Added port as parameter to the functions which does read/write of DSI Controller Date: Thu, 04 Dec 2014 11:14:01 +0200 Message-ID: <87egsfn5eu.fsf@intel.com> References: <1417670936-31032-1-git-send-email-gaurav.k.singh@intel.com> <1417670936-31032-3-git-send-email-gaurav.k.singh@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id F32106E212 for ; Thu, 4 Dec 2014 01:14:08 -0800 (PST) In-Reply-To: <1417670936-31032-3-git-send-email-gaurav.k.singh@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Gaurav K Singh , intel-gfx Cc: Shobhit Kumar List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAwNCBEZWMgMjAxNCwgR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVs LmNvbT4gd3JvdGU6Cj4gVGhpcyBwYXRjaCBpcyBpbiBwcmVwYXJhdGlvbiBvZiBEU0kgZHVhbCBs aW5rIHBhbmVscy4gRm9yIGR1YWwgbGluawo+IHBhbmVscywgZmV3IHBhY2tldHMgbmVlZHMgdG8g YmUgc2VudCB0byBQb3J0IEEgb3IgUG9ydCBDIG9yIGJvdGguIEJhc2VkCj4gb24gdGhlIHBvcnRu byBmcm9tIE1JUEkgU2VxdWVuY2UgQmxvY2sjNTMsIHRoZXNlIHNlcXVlbmNlcyBuZWVkcyB0byBi ZQo+IHNlbnQgYWNjb3JkaW5nbHkuCj4KPiB2MjogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBi eSBKYW5pCj4gICAgIC0gcG9ydCB2YXJpYWJsZXMgbmFtZWQgcHJvcGVybHkKPgo+IFNpZ25lZC1v ZmYtYnk6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+CgpSZXZpZXdl ZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jbWQuYyAgICAgICB8ICAgNzUgKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY21kLmgg ICAgICAgfCAgIDQ2ICsrKysrKysrKy0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaV9wYW5lbF92YnQuYyB8ICAgMjUgKysrKysrLS0tLQo+ICAzIGZpbGVzIGNoYW5nZWQs IDc0IGluc2VydGlvbnMoKyksIDcyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jbWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaV9jbWQuYwo+IGluZGV4IDAwNGZhOTEuLjhlMzA2ODQgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NtZC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpX2NtZC5jCj4gQEAgLTQ4LDEzICs0OCwxMSBAQAo+ICAgKiBGb3IgbWVt b3J5IHdyaXRlcywgdGhlc2Ugc2hvdWxkIHByb2JhYmx5IGJlIHVzZWQgZm9yIHBlcmZvcm1hbmNl Lgo+ICAgKi8KPiAgCj4gLXN0YXRpYyB2b2lkIHByaW50X3N0YXQoc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpKQo+ICtzdGF0aWMgdm9pZCBwcmludF9zdGF0KHN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciA9ICZpbnRlbF9kc2ktPmJhc2UuYmFzZTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlbmNvZGVyLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kc2lf cGlwZV90b19wb3J0KGludGVsX2NydGMtPnBpcGUpOwo+ICAJdTMyIHZhbDsKPiAgCj4gIAl2YWwg PSBJOTE1X1JFQUQoTUlQSV9JTlRSX1NUQVQocG9ydCkpOwo+IEBAIC0xMDQsMTMgKzEwMiwxMiBA QCBlbnVtIGRzaV90eXBlIHsKPiAgfTsKPiAgCj4gIC8qIGVuYWJsZSBvciBkaXNhYmxlIGNvbW1h bmQgbW9kZSBocyB0cmFuc21pc3Npb25zICovCj4gLXZvaWQgZHNpX2hzX21vZGVfZW5hYmxlKHN0 cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgYm9vbCBlbmFibGUpCj4gK3ZvaWQgZHNpX2hzX21v ZGVfZW5hYmxlKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgYm9vbCBlbmFibGUsCj4gKwkJ CQkJCWVudW0gcG9ydCBwb3J0KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIg PSAmaW50ZWxfZHNpLT5iYXNlLmJhc2U7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5j b2Rlci0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhlbmNvZGVyLT5jcnRjKTsKPiAtCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZHNpX3BpcGVf dG9fcG9ydChpbnRlbF9jcnRjLT5waXBlKTsKPiAgCXUzMiB0ZW1wOwo+ICAJdTMyIG1hc2sgPSBE QklfRklGT19FTVBUWTsKPiAgCj4gQEAgLTEyNSwxMyArMTIyLDExIEBAIHZvaWQgZHNpX2hzX21v ZGVfZW5hYmxlKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgYm9vbCBlbmFibGUpCj4gIH0K PiAgCj4gIHN0YXRpYyBpbnQgZHNpX3ZjX3NlbmRfc2hvcnQoc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQkJICAgICB1OCBkYXRhX3R5cGUsIHUxNiBkYXRhKQo+ ICsJCQkgICAgIHU4IGRhdGFfdHlwZSwgdTE2IGRhdGEsIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZHNpLT5iYXNlLmJhc2U7Cj4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiAtCWVu dW0gcG9ydCBwb3J0ID0gaW50ZWxfZHNpX3BpcGVfdG9fcG9ydChpbnRlbF9jcnRjLT5waXBlKTsK PiAgCXUzMiBjdHJsX3JlZzsKPiAgCXUzMiBjdHJsOwo+ICAJdTMyIG1hc2s7Cj4gQEAgLTE0OSw3 ICsxNDQsNyBAQCBzdGF0aWMgaW50IGRzaV92Y19zZW5kX3Nob3J0KHN0cnVjdCBpbnRlbF9kc2kg KmludGVsX2RzaSwgaW50IGNoYW5uZWwsCj4gIAo+ICAJaWYgKHdhaXRfZm9yKChJOTE1X1JFQUQo TUlQSV9HRU5fRklGT19TVEFUKHBvcnQpKSAmIG1hc2spID09IDAsIDUwKSkgewo+ICAJCURSTV9F UlJPUigiVGltZW91dCB3YWl0aW5nIGZvciBIUy9MUCBDVFJMIEZJRk8gIWZ1bGxcbiIpOwo+IC0J CXByaW50X3N0YXQoaW50ZWxfZHNpKTsKPiArCQlwcmludF9zdGF0KGludGVsX2RzaSwgcG9ydCk7 Cj4gIAl9Cj4gIAo+ICAJLyoKPiBAQCAtMTY3LDEzICsxNjIsMTEgQEAgc3RhdGljIGludCBkc2lf dmNfc2VuZF9zaG9ydChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGludCBjaGFubmVsLAo+ ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGRzaV92Y19zZW5kX2xvbmcoc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQkJICAgIHU4IGRhdGFfdHlwZSwgY29uc3QgdTgg KmRhdGEsIGludCBsZW4pCj4gKwkJdTggZGF0YV90eXBlLCBjb25zdCB1OCAqZGF0YSwgaW50IGxl biwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9 ICZpbnRlbF9kc2ktPmJhc2UuYmFzZTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNv ZGVyLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGVuY29kZXItPmNydGMpOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kc2lfcGlwZV90 b19wb3J0KGludGVsX2NydGMtPnBpcGUpOwo+ICAJdTMyIGRhdGFfcmVnOwo+ICAJaW50IGksIGos IG47Cj4gIAl1MzIgbWFzazsKPiBAQCAtMjA0LDEyICsxOTcsMTIgQEAgc3RhdGljIGludCBkc2lf dmNfc2VuZF9sb25nKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgaW50IGNoYW5uZWwsCj4g IAkJICogZHdvcmRzLCB0aGVuIHdhaXQgZm9yIG5vdCBzZXQsIHRoZW4gY29udGludWUuICovCj4g IAl9Cj4gIAo+IC0JcmV0dXJuIGRzaV92Y19zZW5kX3Nob3J0KGludGVsX2RzaSwgY2hhbm5lbCwg ZGF0YV90eXBlLCBsZW4pOwo+ICsJcmV0dXJuIGRzaV92Y19zZW5kX3Nob3J0KGludGVsX2RzaSwg Y2hhbm5lbCwgZGF0YV90eXBlLCBsZW4sIHBvcnQpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGRz aV92Y193cml0ZV9jb21tb24oc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+ICAJCQkgICAg ICAgaW50IGNoYW5uZWwsIGNvbnN0IHU4ICpkYXRhLCBpbnQgbGVuLAo+IC0JCQkgICAgICAgZW51 bSBkc2lfdHlwZSB0eXBlKQo+ICsJCQkgICAgICAgZW51bSBkc2lfdHlwZSB0eXBlLCBlbnVtIHBv cnQgcG9ydCkKPiAgewo+ICAJaW50IHJldDsKPiAgCj4gQEAgLTIxNyw1MCArMjEwLDU0IEBAIHN0 YXRpYyBpbnQgZHNpX3ZjX3dyaXRlX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ks Cj4gIAkJQlVHX09OKHR5cGUgPT0gRFNJX0dFTkVSSUMpOwo+ICAJCXJldCA9IGRzaV92Y19zZW5k X3Nob3J0KGludGVsX2RzaSwgY2hhbm5lbCwKPiAgCQkJCQlNSVBJX0RTSV9HRU5FUklDX1NIT1JU X1dSSVRFXzBfUEFSQU0sCj4gLQkJCQkJMCk7Cj4gKwkJCQkJMCwgcG9ydCk7Cj4gIAl9IGVsc2Ug aWYgKGxlbiA9PSAxKSB7Cj4gIAkJcmV0ID0gZHNpX3ZjX3NlbmRfc2hvcnQoaW50ZWxfZHNpLCBj aGFubmVsLAo+ICAJCQkJCXR5cGUgPT0gRFNJX0dFTkVSSUMgPwo+ICAJCQkJCU1JUElfRFNJX0dF TkVSSUNfU0hPUlRfV1JJVEVfMV9QQVJBTSA6Cj4gLQkJCQkJTUlQSV9EU0lfRENTX1NIT1JUX1dS SVRFLCBkYXRhWzBdKTsKPiArCQkJCQlNSVBJX0RTSV9EQ1NfU0hPUlRfV1JJVEUsIGRhdGFbMF0s Cj4gKwkJCQkJcG9ydCk7Cj4gIAl9IGVsc2UgaWYgKGxlbiA9PSAyKSB7Cj4gIAkJcmV0ID0gZHNp X3ZjX3NlbmRfc2hvcnQoaW50ZWxfZHNpLCBjaGFubmVsLAo+ICAJCQkJCXR5cGUgPT0gRFNJX0dF TkVSSUMgPwo+ICAJCQkJCU1JUElfRFNJX0dFTkVSSUNfU0hPUlRfV1JJVEVfMl9QQVJBTSA6Cj4g IAkJCQkJTUlQSV9EU0lfRENTX1NIT1JUX1dSSVRFX1BBUkFNLAo+IC0JCQkJCShkYXRhWzFdIDw8 IDgpIHwgZGF0YVswXSk7Cj4gKwkJCQkJKGRhdGFbMV0gPDwgOCkgfCBkYXRhWzBdLCBwb3J0KTsK PiAgCX0gZWxzZSB7Cj4gIAkJcmV0ID0gZHNpX3ZjX3NlbmRfbG9uZyhpbnRlbF9kc2ksIGNoYW5u ZWwsCj4gLQkJCQkgICAgICAgdHlwZSA9PSBEU0lfR0VORVJJQyA/Cj4gLQkJCQkgICAgICAgTUlQ SV9EU0lfR0VORVJJQ19MT05HX1dSSVRFIDoKPiAtCQkJCSAgICAgICBNSVBJX0RTSV9EQ1NfTE9O R19XUklURSwgZGF0YSwgbGVuKTsKPiArCQkJCQl0eXBlID09IERTSV9HRU5FUklDID8KPiArCQkJ CQlNSVBJX0RTSV9HRU5FUklDX0xPTkdfV1JJVEUgOgo+ICsJCQkJCU1JUElfRFNJX0RDU19MT05H X1dSSVRFLCBkYXRhLCBsZW4sCj4gKwkJCQkJcG9ydCk7Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIHJl dDsKPiAgfQo+ICAKPiAgaW50IGRzaV92Y19kY3Nfd3JpdGUoc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQkgICAgIGNvbnN0IHU4ICpkYXRhLCBpbnQgbGVuKQo+ ICsJCSAgICAgY29uc3QgdTggKmRhdGEsIGludCBsZW4sIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4g LQlyZXR1cm4gZHNpX3ZjX3dyaXRlX2NvbW1vbihpbnRlbF9kc2ksIGNoYW5uZWwsIGRhdGEsIGxl biwgRFNJX0RDUyk7Cj4gKwlyZXR1cm4gZHNpX3ZjX3dyaXRlX2NvbW1vbihpbnRlbF9kc2ksIGNo YW5uZWwsIGRhdGEsIGxlbiwgRFNJX0RDUywKPiArCQkJCQkJCQkJcG9ydCk7Cj4gIH0KPiAgCj4g IGludCBkc2lfdmNfZ2VuZXJpY193cml0ZShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGlu dCBjaGFubmVsLAo+IC0JCQkgY29uc3QgdTggKmRhdGEsIGludCBsZW4pCj4gKwkJCSBjb25zdCB1 OCAqZGF0YSwgaW50IGxlbiwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAtCXJldHVybiBkc2lfdmNf d3JpdGVfY29tbW9uKGludGVsX2RzaSwgY2hhbm5lbCwgZGF0YSwgbGVuLCBEU0lfR0VORVJJQyk7 Cj4gKwlyZXR1cm4gZHNpX3ZjX3dyaXRlX2NvbW1vbihpbnRlbF9kc2ksIGNoYW5uZWwsIGRhdGEs IGxlbiwgRFNJX0dFTkVSSUMsCj4gKwkJCQkJCQkJCXBvcnQpOwo+ICB9Cj4gIAo+ICBzdGF0aWMg aW50IGRzaV92Y19kY3Nfc2VuZF9yZWFkX3JlcXVlc3Qoc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpLAo+IC0JCQkJCWludCBjaGFubmVsLCB1OCBkY3NfY21kKQo+ICsJCQkJaW50IGNoYW5uZWws IHU4IGRjc19jbWQsIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4gIAlyZXR1cm4gZHNpX3ZjX3NlbmRf c2hvcnQoaW50ZWxfZHNpLCBjaGFubmVsLCBNSVBJX0RTSV9EQ1NfUkVBRCwKPiAtCQkJCSBkY3Nf Y21kKTsKPiArCQkJCSBkY3NfY21kLCBwb3J0KTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBkc2lf dmNfZ2VuZXJpY19zZW5kX3JlYWRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ks Cj4gIAkJCQkJICAgIGludCBjaGFubmVsLCB1OCAqcmVxZGF0YSwKPiAtCQkJCQkgICAgaW50IHJl cWxlbikKPiArCQkJCQkgICAgaW50IHJlcWxlbiwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAgCXUx NiBkYXRhOwo+ICAJdTggZGF0YV90eXBlOwo+IEBAIC0yODIsMTcgKzI3OSwxNSBAQCBzdGF0aWMg aW50IGRzaV92Y19nZW5lcmljX3NlbmRfcmVhZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSwKPiAgCQlCVUcoKTsKPiAgCX0KPiAgCj4gLQlyZXR1cm4gZHNpX3ZjX3NlbmRfc2hv cnQoaW50ZWxfZHNpLCBjaGFubmVsLCBkYXRhX3R5cGUsIGRhdGEpOwo+ICsJcmV0dXJuIGRzaV92 Y19zZW5kX3Nob3J0KGludGVsX2RzaSwgY2hhbm5lbCwgZGF0YV90eXBlLCBkYXRhLCBwb3J0KTsK PiAgfQo+ICAKPiAgc3RhdGljIGludCBkc2lfcmVhZF9kYXRhX3JldHVybihzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2ksCj4gLQkJCQl1OCAqYnVmLCBpbnQgYnVmbGVuKQo+ICsJCQkJdTggKmJ1 ZiwgaW50IGJ1ZmxlbiwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciA9ICZpbnRlbF9kc2ktPmJhc2UuYmFzZTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBpbnRl bF9kc2lfcGlwZV90b19wb3J0KGludGVsX2NydGMtPnBpcGUpOwo+ICAJaW50IGksIGxlbiA9IDA7 Cj4gIAl1MzIgZGF0YV9yZWcsIHZhbDsKPiAgCj4gQEAgLTMxMiwxMyArMzA3LDExIEBAIHN0YXRp YyBpbnQgZHNpX3JlYWRfZGF0YV9yZXR1cm4oc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+ ICB9Cj4gIAo+ICBpbnQgZHNpX3ZjX2Rjc19yZWFkKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSwgaW50IGNoYW5uZWwsIHU4IGRjc19jbWQsCj4gLQkJICAgIHU4ICpidWYsIGludCBidWZsZW4p Cj4gKwkJICAgIHU4ICpidWYsIGludCBidWZsZW4sIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4gIAlz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZHNpLT5iYXNlLmJhc2U7Cj4gIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiAtCWVudW0g cG9ydCBwb3J0ID0gaW50ZWxfZHNpX3BpcGVfdG9fcG9ydChpbnRlbF9jcnRjLT5waXBlKTsKPiAg CXUzMiBtYXNrOwo+ICAJaW50IHJldDsKPiAgCj4gQEAgLTMyOSw3ICszMjIsNyBAQCBpbnQgZHNp X3ZjX2Rjc19yZWFkKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgaW50IGNoYW5uZWwsIHU4 IGRjc19jbWQsCj4gIAo+ICAJSTkxNV9XUklURShNSVBJX0lOVFJfU1RBVChwb3J0KSwgR0VOX1JF QURfREFUQV9BVkFJTCk7Cj4gIAo+IC0JcmV0ID0gZHNpX3ZjX2Rjc19zZW5kX3JlYWRfcmVxdWVz dChpbnRlbF9kc2ksIGNoYW5uZWwsIGRjc19jbWQpOwo+ICsJcmV0ID0gZHNpX3ZjX2Rjc19zZW5k X3JlYWRfcmVxdWVzdChpbnRlbF9kc2ksIGNoYW5uZWwsIGRjc19jbWQsIHBvcnQpOwo+ICAJaWYg KHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiBAQCAtMzM3LDcgKzMzMCw3IEBAIGludCBkc2lf dmNfZGNzX3JlYWQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwgdTgg ZGNzX2NtZCwKPiAgCWlmICh3YWl0X2ZvcigoSTkxNV9SRUFEKE1JUElfSU5UUl9TVEFUKHBvcnQp KSAmIG1hc2spID09IG1hc2ssIDUwKSkKPiAgCQlEUk1fRVJST1IoIlRpbWVvdXQgd2FpdGluZyBm b3IgcmVhZCBkYXRhLlxuIik7Cj4gIAo+IC0JcmV0ID0gZHNpX3JlYWRfZGF0YV9yZXR1cm4oaW50 ZWxfZHNpLCBidWYsIGJ1Zmxlbik7Cj4gKwlyZXQgPSBkc2lfcmVhZF9kYXRhX3JldHVybihpbnRl bF9kc2ksIGJ1ZiwgYnVmbGVuLCBwb3J0KTsKPiAgCWlmIChyZXQgPCAwKQo+ICAJCXJldHVybiBy ZXQ7Cj4gIAo+IEBAIC0zNDgsMTMgKzM0MSwxMSBAQCBpbnQgZHNpX3ZjX2Rjc19yZWFkKHN0cnVj dCBpbnRlbF9kc2kgKmludGVsX2RzaSwgaW50IGNoYW5uZWwsIHU4IGRjc19jbWQsCj4gIH0KPiAg Cj4gIGludCBkc2lfdmNfZ2VuZXJpY19yZWFkKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwg aW50IGNoYW5uZWwsCj4gLQkJCXU4ICpyZXFkYXRhLCBpbnQgcmVxbGVuLCB1OCAqYnVmLCBpbnQg YnVmbGVuKQo+ICsJCXU4ICpyZXFkYXRhLCBpbnQgcmVxbGVuLCB1OCAqYnVmLCBpbnQgYnVmbGVu LCBlbnVtIHBvcnQgcG9ydCkKPiAgewo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0g JmludGVsX2RzaS0+YmFzZS5iYXNlOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29k ZXItPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gLQllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RzaV9waXBlX3Rv X3BvcnQoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gIAl1MzIgbWFzazsKPiAgCWludCByZXQ7Cj4gIAo+ IEBAIC0zNjYsNyArMzU3LDcgQEAgaW50IGRzaV92Y19nZW5lcmljX3JlYWQoc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAgCUk5MTVfV1JJVEUoTUlQSV9JTlRSX1NU QVQocG9ydCksIEdFTl9SRUFEX0RBVEFfQVZBSUwpOwo+ICAKPiAgCXJldCA9IGRzaV92Y19nZW5l cmljX3NlbmRfcmVhZF9yZXF1ZXN0KGludGVsX2RzaSwgY2hhbm5lbCwgcmVxZGF0YSwKPiAtCQkJ CQkgICAgICAgcmVxbGVuKTsKPiArCQkJCQkgICAgICAgcmVxbGVuLCBwb3J0KTsKPiAgCWlmIChy ZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gQEAgLTM3NCw3ICszNjUsNyBAQCBpbnQgZHNpX3Zj X2dlbmVyaWNfcmVhZChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGludCBjaGFubmVsLAo+ ICAJaWYgKHdhaXRfZm9yKChJOTE1X1JFQUQoTUlQSV9JTlRSX1NUQVQocG9ydCkpICYgbWFzaykg PT0gbWFzaywgNTApKQo+ICAJCURSTV9FUlJPUigiVGltZW91dCB3YWl0aW5nIGZvciByZWFkIGRh dGEuXG4iKTsKPiAgCj4gLQlyZXQgPSBkc2lfcmVhZF9kYXRhX3JldHVybihpbnRlbF9kc2ksIGJ1 ZiwgYnVmbGVuKTsKPiArCXJldCA9IGRzaV9yZWFkX2RhdGFfcmV0dXJuKGludGVsX2RzaSwgYnVm LCBidWZsZW4sIHBvcnQpOwo+ICAJaWYgKHJldCA8IDApCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jbWQuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jbWQuaAo+IGluZGV4IDQ2YWExYWMuLjMyNmE1YWMg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NtZC5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX2NtZC5oCj4gQEAgLTM2LDc3ICszNiw4 MSBAQAo+ICAjZGVmaW5lIERQSV9MUF9NT0RFX0VOCWZhbHNlCj4gICNkZWZpbmUgRFBJX0hTX01P REVfRU4JdHJ1ZQo+ICAKPiAtdm9pZCBkc2lfaHNfbW9kZV9lbmFibGUoc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpLCBib29sIGVuYWJsZSk7Cj4gK3ZvaWQgZHNpX2hzX21vZGVfZW5hYmxlKHN0 cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgYm9vbCBlbmFibGUsCj4gKwkJCQkJCWVudW0gcG9y dCBwb3J0KTsKPiAgCj4gIGludCBkc2lfdmNfZGNzX3dyaXRlKHN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSwgaW50IGNoYW5uZWwsCj4gLQkJICAgICBjb25zdCB1OCAqZGF0YSwgaW50IGxlbik7 Cj4gKwkJICAgICBjb25zdCB1OCAqZGF0YSwgaW50IGxlbiwgZW51bSBwb3J0IHBvcnQpOwo+ICAK PiAgaW50IGRzaV92Y19nZW5lcmljX3dyaXRlKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwg aW50IGNoYW5uZWwsCj4gLQkJCSBjb25zdCB1OCAqZGF0YSwgaW50IGxlbik7Cj4gKwkJCSBjb25z dCB1OCAqZGF0YSwgaW50IGxlbiwgZW51bSBwb3J0IHBvcnQpOwo+ICAKPiAgaW50IGRzaV92Y19k Y3NfcmVhZChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGludCBjaGFubmVsLCB1OCBkY3Nf Y21kLAo+IC0JCSAgICB1OCAqYnVmLCBpbnQgYnVmbGVuKTsKPiArCQkgICAgdTggKmJ1ZiwgaW50 IGJ1ZmxlbiwgZW51bSBwb3J0IHBvcnQpOwo+ICAKPiAgaW50IGRzaV92Y19nZW5lcmljX3JlYWQo c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQkJdTggKnJlcWRh dGEsIGludCByZXFsZW4sIHU4ICpidWYsIGludCBidWZsZW4pOwo+ICsJCXU4ICpyZXFkYXRhLCBp bnQgcmVxbGVuLCB1OCAqYnVmLCBpbnQgYnVmbGVuLCBlbnVtIHBvcnQgcG9ydCk7Cj4gIAo+ICBp bnQgZHBpX3NlbmRfY21kKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgdTMyIGNtZCwgYm9v bCBocyk7Cj4gIHZvaWQgd2FpdF9mb3JfZHNpX2ZpZm9fZW1wdHkoc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpKTsKPiAgCj4gIC8qIFhYWDogcXVlc3Rpb25hYmxlIHdyaXRlIGhlbHBlcnMgKi8K PiAgc3RhdGljIGlubGluZSBpbnQgZHNpX3ZjX2Rjc193cml0ZV8wKHN0cnVjdCBpbnRlbF9kc2kg KmludGVsX2RzaSwKPiAtCQkJCSAgICAgaW50IGNoYW5uZWwsIHU4IGRjc19jbWQpCj4gKwkJCQkg ICAgIGludCBjaGFubmVsLCB1OCBkY3NfY21kLCBlbnVtIHBvcnQgcG9ydCkKPiAgewo+IC0JcmV0 dXJuIGRzaV92Y19kY3Nfd3JpdGUoaW50ZWxfZHNpLCBjaGFubmVsLCAmZGNzX2NtZCwgMSk7Cj4g KwlyZXR1cm4gZHNpX3ZjX2Rjc193cml0ZShpbnRlbF9kc2ksIGNoYW5uZWwsICZkY3NfY21kLCAx LCBwb3J0KTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBpbnQgZHNpX3ZjX2Rjc193cml0ZV8x KHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwKPiAtCQkJCSAgICAgaW50IGNoYW5uZWwsIHU4 IGRjc19jbWQsIHU4IHBhcmFtKQo+ICsJCQlpbnQgY2hhbm5lbCwgdTggZGNzX2NtZCwgdTggcGFy YW0sIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4gIAl1OCBidWZbMl0gPSB7IGRjc19jbWQsIHBhcmFt IH07Cj4gLQlyZXR1cm4gZHNpX3ZjX2Rjc193cml0ZShpbnRlbF9kc2ksIGNoYW5uZWwsIGJ1Ziwg Mik7Cj4gKwlyZXR1cm4gZHNpX3ZjX2Rjc193cml0ZShpbnRlbF9kc2ksIGNoYW5uZWwsIGJ1Ziwg MiwgcG9ydCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbmxpbmUgaW50IGRzaV92Y19nZW5lcmljX3dy aXRlXzAoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+IC0JCQkJCSBpbnQgY2hhbm5lbCkK PiArCQkJCQkgaW50IGNoYW5uZWwsIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4gLQlyZXR1cm4gZHNp X3ZjX2dlbmVyaWNfd3JpdGUoaW50ZWxfZHNpLCBjaGFubmVsLCBOVUxMLCAwKTsKPiArCXJldHVy biBkc2lfdmNfZ2VuZXJpY193cml0ZShpbnRlbF9kc2ksIGNoYW5uZWwsIE5VTEwsIDAsIHBvcnQp Owo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGludCBkc2lfdmNfZ2VuZXJpY193cml0ZV8xKHN0 cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwKPiAtCQkJCQkgaW50IGNoYW5uZWwsIHU4IHBhcmFt KQo+ICsJCQkJCSBpbnQgY2hhbm5lbCwgdTggcGFyYW0sIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4g LQlyZXR1cm4gZHNpX3ZjX2dlbmVyaWNfd3JpdGUoaW50ZWxfZHNpLCBjaGFubmVsLCAmcGFyYW0s IDEpOwo+ICsJcmV0dXJuIGRzaV92Y19nZW5lcmljX3dyaXRlKGludGVsX2RzaSwgY2hhbm5lbCwg JnBhcmFtLCAxLCBwb3J0KTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBpbnQgZHNpX3ZjX2dl bmVyaWNfd3JpdGVfMihzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksCj4gLQkJCQkJIGludCBj aGFubmVsLCB1OCBwYXJhbTEsIHU4IHBhcmFtMikKPiArCQkJaW50IGNoYW5uZWwsIHU4IHBhcmFt MSwgdTggcGFyYW0yLCBlbnVtIHBvcnQgcG9ydCkKPiAgewo+ICAJdTggYnVmWzJdID0geyBwYXJh bTEsIHBhcmFtMiB9Owo+IC0JcmV0dXJuIGRzaV92Y19nZW5lcmljX3dyaXRlKGludGVsX2RzaSwg Y2hhbm5lbCwgYnVmLCAyKTsKPiArCXJldHVybiBkc2lfdmNfZ2VuZXJpY193cml0ZShpbnRlbF9k c2ksIGNoYW5uZWwsIGJ1ZiwgMiwgcG9ydCk7Cj4gIH0KPiAgCj4gIC8qIFhYWDogcXVlc3Rpb25h YmxlIHJlYWQgaGVscGVycyAqLwo+ICBzdGF0aWMgaW5saW5lIGludCBkc2lfdmNfZ2VuZXJpY19y ZWFkXzAoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+IC0JCQkJCWludCBjaGFubmVsLCB1 OCAqYnVmLCBpbnQgYnVmbGVuKQo+ICsJCQlpbnQgY2hhbm5lbCwgdTggKmJ1ZiwgaW50IGJ1Zmxl biwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAtCXJldHVybiBkc2lfdmNfZ2VuZXJpY19yZWFkKGlu dGVsX2RzaSwgY2hhbm5lbCwgTlVMTCwgMCwgYnVmLCBidWZsZW4pOwo+ICsJcmV0dXJuIGRzaV92 Y19nZW5lcmljX3JlYWQoaW50ZWxfZHNpLCBjaGFubmVsLCBOVUxMLCAwLCBidWYsIGJ1ZmxlbiwK PiArCQkJCQkJCQkJcG9ydCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbmxpbmUgaW50IGRzaV92Y19n ZW5lcmljX3JlYWRfMShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksCj4gIAkJCQkJaW50IGNo YW5uZWwsIHU4IHBhcmFtLCB1OCAqYnVmLAo+IC0JCQkJCWludCBidWZsZW4pCj4gKwkJCQkJaW50 IGJ1ZmxlbiwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAtCXJldHVybiBkc2lfdmNfZ2VuZXJpY19y ZWFkKGludGVsX2RzaSwgY2hhbm5lbCwgJnBhcmFtLCAxLCBidWYsIGJ1Zmxlbik7Cj4gKwlyZXR1 cm4gZHNpX3ZjX2dlbmVyaWNfcmVhZChpbnRlbF9kc2ksIGNoYW5uZWwsICZwYXJhbSwgMSwgYnVm LCBidWZsZW4sCj4gKwkJCQkJCQkJCXBvcnQpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGlu dCBkc2lfdmNfZ2VuZXJpY19yZWFkXzIoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+ICAJ CQkJCWludCBjaGFubmVsLCB1OCBwYXJhbTEsIHU4IHBhcmFtMiwKPiAtCQkJCQl1OCAqYnVmLCBp bnQgYnVmbGVuKQo+ICsJCQkJCXU4ICpidWYsIGludCBidWZsZW4sIGVudW0gcG9ydCBwb3J0KQo+ ICB7Cj4gIAl1OCByZXFbMl0gPSB7IHBhcmFtMSwgcGFyYW0yIH07Cj4gIAo+IC0JcmV0dXJuIGRz aV92Y19nZW5lcmljX3JlYWQoaW50ZWxfZHNpLCBjaGFubmVsLCByZXEsIDIsIGJ1ZiwgYnVmbGVu KTsKPiArCXJldHVybiBkc2lfdmNfZ2VuZXJpY19yZWFkKGludGVsX2RzaSwgY2hhbm5lbCwgcmVx LCAyLCBidWYsIGJ1ZmxlbiwKPiArCQkJCQkJCQkJcG9ydCk7Cj4gIH0KPiAgCj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMKPiBpbmRleCBmNmJkZDQ0Li43 NzY2YzQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5l bF92YnQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQu Ywo+IEBAIC05NCwxNiArOTQsMjMgQEAgc3RhdGljIHN0cnVjdCBncGlvX3RhYmxlIGd0YWJsZVtd ID0gewo+ICAJeyBHUElPX05DXzExX1BDT05GMCwgR1BJT19OQ18xMV9QQUQsIDB9Cj4gIH07Cj4g IAo+ICtzdGF0aWMgaW5saW5lIGVudW0gcG9ydCBpbnRlbF9kc2lfc2VxX3BvcnRfdG9fcG9ydCh1 OCBwb3J0KQo+ICt7Cj4gKwlyZXR1cm4gcG9ydCA/IFBPUlRfQyA6IFBPUlRfQTsKPiArfQo+ICsK PiAgc3RhdGljIHU4ICptaXBpX2V4ZWNfc2VuZF9wYWNrZXQoc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpLCB1OCAqZGF0YSkKPiAgewo+IC0JdTggdHlwZSwgYnl0ZSwgbW9kZSwgdmMsIHBvcnQ7 Cj4gKwl1OCB0eXBlLCBieXRlLCBtb2RlLCB2Yywgc2VxX3BvcnQ7Cj4gIAl1MTYgbGVuOwo+ICsJ ZW51bSBwb3J0IHBvcnQ7Cj4gIAo+ICAJYnl0ZSA9ICpkYXRhKys7Cj4gIAltb2RlID0gKGJ5dGUg Pj4gTUlQSV9UUkFOU0ZFUl9NT0RFX1NISUZUKSAmIDB4MTsKPiAgCXZjID0gKGJ5dGUgPj4gTUlQ SV9WSVJUVUFMX0NIQU5ORUxfU0hJRlQpICYgMHgzOwo+IC0JcG9ydCA9IChieXRlID4+IE1JUElf UE9SVF9TSElGVCkgJiAweDM7Cj4gKwlzZXFfcG9ydCA9IChieXRlID4+IE1JUElfUE9SVF9TSElG VCkgJiAweDM7Cj4gIAo+ICsJcG9ydCA9IGludGVsX2RzaV9zZXFfcG9ydF90b19wb3J0KHNlcV9w b3J0KTsKPiAgCS8qIExQIG9yIEhTIG1vZGUgKi8KPiAgCWludGVsX2RzaS0+aHMgPSBtb2RlOwo+ ICAKPiBAQCAtMTE1LDEzICsxMjIsMTMgQEAgc3RhdGljIHU4ICptaXBpX2V4ZWNfc2VuZF9wYWNr ZXQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCB1OCAqZGF0YSkKPiAgCj4gIAlzd2l0Y2gg KHR5cGUpIHsKPiAgCWNhc2UgTUlQSV9EU0lfR0VORVJJQ19TSE9SVF9XUklURV8wX1BBUkFNOgo+ IC0JCWRzaV92Y19nZW5lcmljX3dyaXRlXzAoaW50ZWxfZHNpLCB2Yyk7Cj4gKwkJZHNpX3ZjX2dl bmVyaWNfd3JpdGVfMChpbnRlbF9kc2ksIHZjLCBwb3J0KTsKPiAgCQlicmVhazsKPiAgCWNhc2Ug TUlQSV9EU0lfR0VORVJJQ19TSE9SVF9XUklURV8xX1BBUkFNOgo+IC0JCWRzaV92Y19nZW5lcmlj X3dyaXRlXzEoaW50ZWxfZHNpLCB2YywgKmRhdGEpOwo+ICsJCWRzaV92Y19nZW5lcmljX3dyaXRl XzEoaW50ZWxfZHNpLCB2YywgKmRhdGEsIHBvcnQpOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBNSVBJ X0RTSV9HRU5FUklDX1NIT1JUX1dSSVRFXzJfUEFSQU06Cj4gLQkJZHNpX3ZjX2dlbmVyaWNfd3Jp dGVfMihpbnRlbF9kc2ksIHZjLCAqZGF0YSwgKihkYXRhICsgMSkpOwo+ICsJCWRzaV92Y19nZW5l cmljX3dyaXRlXzIoaW50ZWxfZHNpLCB2YywgKmRhdGEsICooZGF0YSArIDEpLCBwb3J0KTsKPiAg CQlicmVhazsKPiAgCWNhc2UgTUlQSV9EU0lfR0VORVJJQ19SRUFEX1JFUVVFU1RfMF9QQVJBTToK PiAgCWNhc2UgTUlQSV9EU0lfR0VORVJJQ19SRUFEX1JFUVVFU1RfMV9QQVJBTToKPiBAQCAtMTI5 LDE5ICsxMzYsMTkgQEAgc3RhdGljIHU4ICptaXBpX2V4ZWNfc2VuZF9wYWNrZXQoc3RydWN0IGlu dGVsX2RzaSAqaW50ZWxfZHNpLCB1OCAqZGF0YSkKPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJHZW5l cmljIFJlYWQgbm90IHlldCBpbXBsZW1lbnRlZCBvciB1c2VkXG4iKTsKPiAgCQlicmVhazsKPiAg CWNhc2UgTUlQSV9EU0lfR0VORVJJQ19MT05HX1dSSVRFOgo+IC0JCWRzaV92Y19nZW5lcmljX3dy aXRlKGludGVsX2RzaSwgdmMsIGRhdGEsIGxlbik7Cj4gKwkJZHNpX3ZjX2dlbmVyaWNfd3JpdGUo aW50ZWxfZHNpLCB2YywgZGF0YSwgbGVuLCBwb3J0KTsKPiAgCQlicmVhazsKPiAgCWNhc2UgTUlQ SV9EU0lfRENTX1NIT1JUX1dSSVRFOgo+IC0JCWRzaV92Y19kY3Nfd3JpdGVfMChpbnRlbF9kc2ks IHZjLCAqZGF0YSk7Cj4gKwkJZHNpX3ZjX2Rjc193cml0ZV8wKGludGVsX2RzaSwgdmMsICpkYXRh LCBwb3J0KTsKPiAgCQlicmVhazsKPiAgCWNhc2UgTUlQSV9EU0lfRENTX1NIT1JUX1dSSVRFX1BB UkFNOgo+IC0JCWRzaV92Y19kY3Nfd3JpdGVfMShpbnRlbF9kc2ksIHZjLCAqZGF0YSwgKihkYXRh ICsgMSkpOwo+ICsJCWRzaV92Y19kY3Nfd3JpdGVfMShpbnRlbF9kc2ksIHZjLCAqZGF0YSwgKihk YXRhICsgMSksIHBvcnQpOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBNSVBJX0RTSV9EQ1NfUkVBRDoK PiAgCQlEUk1fREVCVUdfRFJJVkVSKCJEQ1MgUmVhZCBub3QgeWV0IGltcGxlbWVudGVkIG9yIHVz ZWRcbiIpOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBNSVBJX0RTSV9EQ1NfTE9OR19XUklURToKPiAt CQlkc2lfdmNfZGNzX3dyaXRlKGludGVsX2RzaSwgdmMsIGRhdGEsIGxlbik7Cj4gKwkJZHNpX3Zj X2Rjc193cml0ZShpbnRlbF9kc2ksIHZjLCBkYXRhLCBsZW4sIHBvcnQpOwo+ICAJCWJyZWFrOwo+ ICAJfQo+ICAKPiAtLSAKPiAxLjcuOS41Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJj ZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=