From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Singh, Gaurav K" Subject: Re: [PATCH 1/3] drm/i915/dsi: clean up MIPI DSI pipe vs. port usage Date: Thu, 27 Nov 2014 12:58:55 +0530 Message-ID: <5476D2B7.2080506@intel.com> References: <6d36c6473939f564f593f5d363dacdb92539db83.1415976065.git.jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 731DE6E8BC for ; Wed, 26 Nov 2014 23:30:21 -0800 (PST) In-Reply-To: <6d36c6473939f564f593f5d363dacdb92539db83.1415976065.git.jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , intel-gfx@lists.freedesktop.org, shobhit.kumar@linux.intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDExLzE0LzIwMTQgODoyNCBQTSwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4gTUlQSSBEU0kgd29y a3Mgb24gcG9ydHMgQSBhbmQgQywgd2hpY2ggbWFwIHRvIHBpcGVzIEEgYW5kIEIsCj4gcmVzcGVj dGl2ZWx5LiBUaGluZ3MgYXJlIGdvaW5nIHRvIGdldCBtb3JlIGNvbXBsaWNhdGVkIHdpdGggdGhl Cj4gaW50cm9kdWN0aW9uIG9mIGR1YWwgbGluayBEU0kgc3VwcG9ydCwgc28gY2xlYW4gdXAgdGhl IHJlZ2lzdGVyIGRlZmluZXMKPiBhbmQgY29kZSB0byBtYXRjaCByZWFsaXR5Lgo+Cj4gU2lnbmVk LW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6 IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAzMDMgKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAg ICB8IDE0OCArKysrKysrKy0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpLmggICAgIHwgIDE2ICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY21k LmMgfCAgNjQgKysrKy0tLS0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMjc3IGluc2VydGlvbnMoKyks IDI1NCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IGExNDMx MjdlYjQ1MS4uMjUwMDQzZjNmMjJlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAg LTMxLDYgKzMxLDggQEAKPiAgICNkZWZpbmUgX1BPUlQocG9ydCwgYSwgYikgKChhKSArIChwb3J0 KSooKGIpLShhKSkpCj4gICAjZGVmaW5lIF9QSVBFMyhwaXBlLCBhLCBiLCBjKSAoKHBpcGUpID09 IFBJUEVfQSA/IChhKSA6IFwKPiAgIAkJCSAgICAgICAocGlwZSkgPT0gUElQRV9CID8gKGIpIDog KGMpKQo+ICsjZGVmaW5lIF9QT1JUMyhwb3J0LCBhLCBiLCBjKSAoKHBvcnQpID09IFBPUlRfQSA/ IChhKSA6IFwKPiArCQkJICAgICAgIChwb3J0KSA9PSBQT1JUX0IgPyAoYikgOiAoYykpCj4gICAK PiAgICNkZWZpbmUgX01BU0tFRF9CSVRfRU5BQkxFKGEpICgoKGEpIDw8IDE2KSB8IChhKSkKPiAg ICNkZWZpbmUgX01BU0tFRF9CSVRfRElTQUJMRShhKSAoKGEpIDw8IDE2KQo+IEBAIC0xNDkyLDcg KzE0OTQsNyBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewo+ICAgI2RlZmluZSBJOTE1X0lTUF9J TlRFUlJVUFQJCQkJKDE8PDIyKQo+ICAgI2RlZmluZSBJOTE1X0xQRV9QSVBFX0JfSU5URVJSVVBU CQkJKDE8PDIxKQo+ICAgI2RlZmluZSBJOTE1X0xQRV9QSVBFX0FfSU5URVJSVVBUCQkJKDE8PDIw KQo+IC0jZGVmaW5lIEk5MTVfTUlQSUJfSU5URVJSVVBUCQkJCSgxPDwxOSkKPiArI2RlZmluZSBJ OTE1X01JUElDX0lOVEVSUlVQVAkJCQkoMTw8MTkpCj4gICAjZGVmaW5lIEk5MTVfTUlQSUFfSU5U RVJSVVBUCQkJCSgxPDwxOCkKPiAgICNkZWZpbmUgSTkxNV9QSVBFX0NPTlRST0xfTk9USUZZX0lO VEVSUlVQVAkJKDE8PDE4KQo+ICAgI2RlZmluZSBJOTE1X0RJU1BMQVlfUE9SVF9JTlRFUlJVUFQJ CQkoMTw8MTcpCj4gQEAgLTY2MTIsMjkgKzY2MTQsMzAgQEAgZW51bSBwdW5pdF9wb3dlcl93ZWxs IHsKPiAgICNkZWZpbmUgUElQRV9DU0NfUE9TVE9GRl9NRShwaXBlKSBfUElQRShwaXBlLCBfUElQ RV9BX0NTQ19QT1NUT0ZGX01FLCBfUElQRV9CX0NTQ19QT1NUT0ZGX01FKQo+ICAgI2RlZmluZSBQ SVBFX0NTQ19QT1NUT0ZGX0xPKHBpcGUpIF9QSVBFKHBpcGUsIF9QSVBFX0FfQ1NDX1BPU1RPRkZf TE8sIF9QSVBFX0JfQ1NDX1BPU1RPRkZfTE8pCj4gICAKPiAtLyogVkxWIE1JUEkgcmVnaXN0ZXJz ICovCj4gKy8qIE1JUEkgRFNJIHJlZ2lzdGVycyAqLwo+ICsKPiArI2RlZmluZSBfTUlQSV9QT1JU KHBvcnQsIGEsIGMpCV9QT1JUMyhwb3J0LCBhLCAwLCBjKQkvKiBwb3J0cyBBIGFuZCBDIG9ubHkg Ki8KPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfUE9SVF9DVFJMCQkJKFZMVl9ESVNQTEFZX0JBU0Ug KyAweDYxMTkwKQo+IC0jZGVmaW5lIF9NSVBJQl9QT1JUX0NUUkwJCQkoVkxWX0RJU1BMQVlfQkFT RSArIDB4NjE3MDApCj4gLSNkZWZpbmUgTUlQSV9QT1JUX0NUUkwodGMpCQlfVFJBTlNDT0RFUih0 YywgX01JUElBX1BPUlRfQ1RSTCwgXAo+IC0JCQkJCQlfTUlQSUJfUE9SVF9DVFJMKQo+IC0jZGVm aW5lICBEUElfRU5BQkxFCQkJCQkoMSA8PCAzMSkgLyogQSArIEIgKi8KPiArI2RlZmluZSBfTUlQ SUNfUE9SVF9DVFJMCQkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDYxNzAwKQo+ICsjZGVmaW5lIE1J UElfUE9SVF9DVFJMKHBvcnQpCV9NSVBJX1BPUlQocG9ydCwgX01JUElBX1BPUlRfQ1RSTCwgX01J UElDX1BPUlRfQ1RSTCkKPiArI2RlZmluZSAgRFBJX0VOQUJMRQkJCQkJKDEgPDwgMzEpIC8qIEEg KyBDICovCj4gICAjZGVmaW5lICBNSVBJQV9NSVBJNERQSFlfREVMQVlfQ09VTlRfU0hJRlQJCTI3 Cj4gICAjZGVmaW5lICBNSVBJQV9NSVBJNERQSFlfREVMQVlfQ09VTlRfTUFTSwkJKDB4ZiA8PCAy NykKPiAgICNkZWZpbmUgIERVQUxfTElOS19NT0RFX01BU0sJCQkJKDEgPDwgMjYpCj4gICAjZGVm aW5lICBEVUFMX0xJTktfTU9ERV9GUk9OVF9CQUNLCQkJKDAgPDwgMjYpCj4gICAjZGVmaW5lICBE VUFMX0xJTktfTU9ERV9QSVhFTF9BTFRFUk5BVElWRQkJKDEgPDwgMjYpCj4gLSNkZWZpbmUgIERJ VEhFUklOR19FTkFCTEUJCQkJKDEgPDwgMjUpIC8qIEEgKyBCICovCj4gKyNkZWZpbmUgIERJVEhF UklOR19FTkFCTEUJCQkJKDEgPDwgMjUpIC8qIEEgKyBDICovCj4gICAjZGVmaW5lICBGTE9QUEVE X0hTVFgJCQkJCSgxIDw8IDIzKQo+ICAgI2RlZmluZSAgREVfSU5WRVJUCQkJCQkoMSA8PCAxOSkg LyogWFhYICovCj4gICAjZGVmaW5lICBNSVBJQV9GTElTRFNJX0RFTEFZX0NPVU5UX1NISUZUCQkx OAo+ICAgI2RlZmluZSAgTUlQSUFfRkxJU0RTSV9ERUxBWV9DT1VOVF9NQVNLCQkJKDB4ZiA8PCAx OCkKPiAgICNkZWZpbmUgIEFGRV9MQVRDSE9VVAkJCQkJKDEgPDwgMTcpCj4gICAjZGVmaW5lICBM UF9PVVRQVVRfSE9MRAkJCQkJKDEgPDwgMTYpCj4gLSNkZWZpbmUgIE1JUElCX0ZMSVNEU0lfREVM QVlfQ09VTlRfSElHSF9TSElGVAkJMTUKPiAtI2RlZmluZSAgTUlQSUJfRkxJU0RTSV9ERUxBWV9D T1VOVF9ISUdIX01BU0sJCSgxIDw8IDE1KQo+IC0jZGVmaW5lICBNSVBJQl9NSVBJNERQSFlfREVM QVlfQ09VTlRfU0hJRlQJCTExCj4gLSNkZWZpbmUgIE1JUElCX01JUEk0RFBIWV9ERUxBWV9DT1VO VF9NQVNLCQkoMHhmIDw8IDExKQo+ICsjZGVmaW5lICBNSVBJQ19GTElTRFNJX0RFTEFZX0NPVU5U X0hJR0hfU0hJRlQJCTE1Cj4gKyNkZWZpbmUgIE1JUElDX0ZMSVNEU0lfREVMQVlfQ09VTlRfSElH SF9NQVNLCQkoMSA8PCAxNSkKPiArI2RlZmluZSAgTUlQSUNfTUlQSTREUEhZX0RFTEFZX0NPVU5U X1NISUZUCQkxMQo+ICsjZGVmaW5lICBNSVBJQ19NSVBJNERQSFlfREVMQVlfQ09VTlRfTUFTSwkJ KDB4ZiA8PCAxMSkKPiAgICNkZWZpbmUgIENTQl9TSElGVAkJCQkJOQo+ICAgI2RlZmluZSAgQ1NC X01BU0sJCQkJCSgzIDw8IDkpCj4gICAjZGVmaW5lICBDU0JfMjBNSFoJCQkJCSgwIDw8IDkpCj4g QEAgLTY2NDMsMTAgKzY2NDYsMTAgQEAgZW51bSBwdW5pdF9wb3dlcl93ZWxsIHsKPiAgICNkZWZp bmUgIEJBTkRHQVBfTUFTSwkJCQkJKDEgPDwgOCkKPiAgICNkZWZpbmUgIEJBTkRHQVBfUE5XX0NJ UkNVSVQJCQkJKDAgPDwgOCkKPiAgICNkZWZpbmUgIEJBTkRHQVBfTE5DX0NJUkNVSVQJCQkJKDEg PDwgOCkKPiAtI2RlZmluZSAgTUlQSUJfRkxJU0RTSV9ERUxBWV9DT1VOVF9MT1dfU0hJRlQJCTUK PiAtI2RlZmluZSAgTUlQSUJfRkxJU0RTSV9ERUxBWV9DT1VOVF9MT1dfTUFTSwkJKDcgPDwgNSkK PiAtI2RlZmluZSAgVEVBUklOR19FRkZFQ1RfREVMQVkJCQkJKDEgPDwgNCkgLyogQSArIEIgKi8K PiAtI2RlZmluZSAgVEVBUklOR19FRkZFQ1RfU0hJRlQJCQkJMiAvKiBBICsgQiAqLwo+ICsjZGVm aW5lICBNSVBJQ19GTElTRFNJX0RFTEFZX0NPVU5UX0xPV19TSElGVAkJNQo+ICsjZGVmaW5lICBN SVBJQ19GTElTRFNJX0RFTEFZX0NPVU5UX0xPV19NQVNLCQkoNyA8PCA1KQo+ICsjZGVmaW5lICBU RUFSSU5HX0VGRkVDVF9ERUxBWQkJCQkoMSA8PCA0KSAvKiBBICsgQyAqLwo+ICsjZGVmaW5lICBU RUFSSU5HX0VGRkVDVF9TSElGVAkJCQkyIC8qIEEgKyBDICovCj4gICAjZGVmaW5lICBURUFSSU5H X0VGRkVDVF9NQVNLCQkJCSgzIDw8IDIpCj4gICAjZGVmaW5lICBURUFSSU5HX0VGRkVDVF9PRkYJ CQkJKDAgPDwgMikKPiAgICNkZWZpbmUgIFRFQVJJTkdfRUZGRUNUX0RTSQkJCQkoMSA8PCAyKQo+ IEBAIC02NjU4LDkgKzY2NjEsOSBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewo+ICAgI2RlZmlu ZSAgTEFORV9DT05GSUdVUkFUSU9OX0RVQUxfTElOS19CCQkJKDIgPDwgMCkKPiAgIAo+ICAgI2Rl ZmluZSBfTUlQSUFfVEVBUklOR19DVFJMCQkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDYxMTk0KQo+ IC0jZGVmaW5lIF9NSVBJQl9URUFSSU5HX0NUUkwJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NjE3 MDQpCj4gLSNkZWZpbmUgTUlQSV9URUFSSU5HX0NUUkwodGMpCQkJX1RSQU5TQ09ERVIodGMsIFwK PiAtCQkJCV9NSVBJQV9URUFSSU5HX0NUUkwsIF9NSVBJQl9URUFSSU5HX0NUUkwpCj4gKyNkZWZp bmUgX01JUElDX1RFQVJJTkdfQ1RSTAkJCShWTFZfRElTUExBWV9CQVNFICsgMHg2MTcwNCkKPiAr I2RlZmluZSBNSVBJX1RFQVJJTkdfQ1RSTChwb3J0KQkJCV9NSVBJX1BPUlQocG9ydCwgXAo+ICsJ CQkJX01JUElBX1RFQVJJTkdfQ1RSTCwgX01JUElDX1RFQVJJTkdfQ1RSTCkKPiAgICNkZWZpbmUg IFRFQVJJTkdfRUZGRUNUX0RFTEFZX1NISUZUCQkJMAo+ICAgI2RlZmluZSAgVEVBUklOR19FRkZF Q1RfREVMQVlfTUFTSwkJCSgweGZmZmYgPDwgMCkKPiAgIAo+IEBAIC02NjcwLDkgKzY2NzMsOSBA QCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewo+ICAgLyogTUlQSSBEU0kgQ29udHJvbGxlciBhbmQg RC1QSFkgcmVnaXN0ZXJzICovCj4gICAKPiAgICNkZWZpbmUgX01JUElBX0RFVklDRV9SRUFEWQkJ KGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjAwMCkKPiAtI2RlZmluZSBfTUlQSUJfREVW SUNFX1JFQURZCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODAwKQo+IC0jZGVmaW5l IE1JUElfREVWSUNFX1JFQURZKHRjKQkJX1RSQU5TQ09ERVIodGMsIF9NSVBJQV9ERVZJQ0VfUkVB RFksIFwKPiAtCQkJCQkJX01JUElCX0RFVklDRV9SRUFEWSkKPiArI2RlZmluZSBfTUlQSUNfREVW SUNFX1JFQURZCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODAwKQo+ICsjZGVmaW5l IE1JUElfREVWSUNFX1JFQURZKHBvcnQpCQlfTUlQSV9QT1JUKHBvcnQsIF9NSVBJQV9ERVZJQ0Vf UkVBRFksIFwKPiArCQkJCQkJX01JUElDX0RFVklDRV9SRUFEWSkKPiAgICNkZWZpbmUgIEJVU19Q T1NTRVNTSU9OCQkJCQkoMSA8PCAzKSAvKiBzZXQgdG8gZ2l2ZSBidXMgdG8gcmVjZWl2ZXIgKi8K PiAgICNkZWZpbmUgIFVMUFNfU1RBVEVfTUFTSwkJCQkoMyA8PCAxKQo+ICAgI2RlZmluZSAgVUxQ U19TVEFURV9FTlRFUgkJCQkoMiA8PCAxKQo+IEBAIC02NjgxLDEzICs2Njg0LDEzIEBAIGVudW0g cHVuaXRfcG93ZXJfd2VsbCB7Cj4gICAjZGVmaW5lICBERVZJQ0VfUkVBRFkJCQkJCSgxIDw8IDAp Cj4gICAKPiAgICNkZWZpbmUgX01JUElBX0lOVFJfU1RBVAkJKGRldl9wcml2LT5taXBpX21taW9f YmFzZSArIDB4YjAwNCkKPiAtI2RlZmluZSBfTUlQSUJfSU5UUl9TVEFUCQkoZGV2X3ByaXYtPm1p cGlfbW1pb19iYXNlICsgMHhiODA0KQo+IC0jZGVmaW5lIE1JUElfSU5UUl9TVEFUKHRjKQkJX1RS QU5TQ09ERVIodGMsIF9NSVBJQV9JTlRSX1NUQVQsIFwKPiAtCQkJCQlfTUlQSUJfSU5UUl9TVEFU KQo+ICsjZGVmaW5lIF9NSVBJQ19JTlRSX1NUQVQJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2Ug KyAweGI4MDQpCj4gKyNkZWZpbmUgTUlQSV9JTlRSX1NUQVQocG9ydCkJCV9NSVBJX1BPUlQocG9y dCwgX01JUElBX0lOVFJfU1RBVCwgXAo+ICsJCQkJCV9NSVBJQ19JTlRSX1NUQVQpCj4gICAjZGVm aW5lIF9NSVBJQV9JTlRSX0VOCQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjAwOCkK PiAtI2RlZmluZSBfTUlQSUJfSU5UUl9FTgkJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAw eGI4MDgpCj4gLSNkZWZpbmUgTUlQSV9JTlRSX0VOKHRjKQkJX1RSQU5TQ09ERVIodGMsIF9NSVBJ QV9JTlRSX0VOLCBcCj4gLQkJCQkJX01JUElCX0lOVFJfRU4pCj4gKyNkZWZpbmUgX01JUElDX0lO VFJfRU4JCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODA4KQo+ICsjZGVmaW5lIE1J UElfSU5UUl9FTihwb3J0KQkJX01JUElfUE9SVChwb3J0LCBfTUlQSUFfSU5UUl9FTiwgXAo+ICsJ CQkJCV9NSVBJQ19JTlRSX0VOKQo+ICAgI2RlZmluZSAgVEVBUklOR19FRkZFQ1QJCQkJCSgxIDw8 IDMxKQo+ICAgI2RlZmluZSAgU1BMX1BLVF9TRU5UX0lOVEVSUlVQVAkJCQkoMSA8PCAzMCkKPiAg ICNkZWZpbmUgIEdFTl9SRUFEX0RBVEFfQVZBSUwJCQkJKDEgPDwgMjkpCj4gQEAgLTY3MjIsOSAr NjcyNSw5IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7Cj4gICAjZGVmaW5lICBSWFNPVF9FUlJP UgkJCQkJKDEgPDwgMCkKPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfRFNJX0ZVTkNfUFJHCQkoZGV2 X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMDBjKQo+IC0jZGVmaW5lIF9NSVBJQl9EU0lfRlVO Q19QUkcJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4MGMpCj4gLSNkZWZpbmUgTUlQ SV9EU0lfRlVOQ19QUkcodGMpCQlfVFJBTlNDT0RFUih0YywgX01JUElBX0RTSV9GVU5DX1BSRywg XAo+IC0JCQkJCQlfTUlQSUJfRFNJX0ZVTkNfUFJHKQo+ICsjZGVmaW5lIF9NSVBJQ19EU0lfRlVO Q19QUkcJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4MGMpCj4gKyNkZWZpbmUgTUlQ SV9EU0lfRlVOQ19QUkcocG9ydCkJCV9NSVBJX1BPUlQocG9ydCwgX01JUElBX0RTSV9GVU5DX1BS RywgXAo+ICsJCQkJCQlfTUlQSUNfRFNJX0ZVTkNfUFJHKQo+ICAgI2RlZmluZSAgQ01EX01PREVf REFUQV9XSURUSF9NQVNLCQkJKDcgPDwgMTMpCj4gICAjZGVmaW5lICBDTURfTU9ERV9OT1RfU1VQ UE9SVEVECQkJCSgwIDw8IDEzKQo+ICAgI2RlZmluZSAgQ01EX01PREVfREFUQV9XSURUSF8xNl9C SVQJCQkoMSA8PCAxMykKPiBAQCAtNjc0Niw5MyArNjc0OSw5MyBAQCBlbnVtIHB1bml0X3Bvd2Vy X3dlbGwgewo+ICAgI2RlZmluZSAgREFUQV9MQU5FU19QUkdfUkVHX01BU0sJCQkoNyA8PCAwKQo+ ICAgCj4gICAjZGVmaW5lIF9NSVBJQV9IU19UWF9USU1FT1VUCQkoZGV2X3ByaXYtPm1pcGlfbW1p b19iYXNlICsgMHhiMDEwKQo+IC0jZGVmaW5lIF9NSVBJQl9IU19UWF9USU1FT1VUCQkoZGV2X3By aXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODEwKQo+IC0jZGVmaW5lIE1JUElfSFNfVFhfVElNRU9V VCh0YykJX1RSQU5TQ09ERVIodGMsIF9NSVBJQV9IU19UWF9USU1FT1VULCBcCj4gLQkJCQkJX01J UElCX0hTX1RYX1RJTUVPVVQpCj4gKyNkZWZpbmUgX01JUElDX0hTX1RYX1RJTUVPVVQJCShkZXZf cHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4MTApCj4gKyNkZWZpbmUgTUlQSV9IU19UWF9USU1F T1VUKHBvcnQpCV9NSVBJX1BPUlQocG9ydCwgX01JUElBX0hTX1RYX1RJTUVPVVQsIFwKPiArCQkJ CQlfTUlQSUNfSFNfVFhfVElNRU9VVCkKPiAgICNkZWZpbmUgIEhJR0hfU1BFRURfVFhfVElNRU9V VF9DT1VOVEVSX01BU0sJCTB4ZmZmZmZmCj4gICAKPiAgICNkZWZpbmUgX01JUElBX0xQX1JYX1RJ TUVPVVQJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGIwMTQpCj4gLSNkZWZpbmUgX01J UElCX0xQX1JYX1RJTUVPVVQJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4MTQpCj4g LSNkZWZpbmUgTUlQSV9MUF9SWF9USU1FT1VUKHRjKQlfVFJBTlNDT0RFUih0YywgX01JUElBX0xQ X1JYX1RJTUVPVVQsIFwKPiAtCQkJCQlfTUlQSUJfTFBfUlhfVElNRU9VVCkKPiArI2RlZmluZSBf TUlQSUNfTFBfUlhfVElNRU9VVAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjgxNCkK PiArI2RlZmluZSBNSVBJX0xQX1JYX1RJTUVPVVQocG9ydCkJX01JUElfUE9SVChwb3J0LCBfTUlQ SUFfTFBfUlhfVElNRU9VVCwgXAo+ICsJCQkJCV9NSVBJQ19MUF9SWF9USU1FT1VUKQo+ICAgI2Rl ZmluZSAgTE9XX1BPV0VSX1JYX1RJTUVPVVRfQ09VTlRFUl9NQVNLCQkweGZmZmZmZgo+ICAgCj4g ICAjZGVmaW5lIF9NSVBJQV9UVVJOX0FST1VORF9USU1FT1VUCShkZXZfcHJpdi0+bWlwaV9tbWlv X2Jhc2UgKyAweGIwMTgpCj4gLSNkZWZpbmUgX01JUElCX1RVUk5fQVJPVU5EX1RJTUVPVVQJKGRl dl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjgxOCkKPiAtI2RlZmluZSBNSVBJX1RVUk5fQVJP VU5EX1RJTUVPVVQodGMpCV9UUkFOU0NPREVSKHRjLCBcCj4gLQkJCV9NSVBJQV9UVVJOX0FST1VO RF9USU1FT1VULCBfTUlQSUJfVFVSTl9BUk9VTkRfVElNRU9VVCkKPiArI2RlZmluZSBfTUlQSUNf VFVSTl9BUk9VTkRfVElNRU9VVAkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODE4KQo+ ICsjZGVmaW5lIE1JUElfVFVSTl9BUk9VTkRfVElNRU9VVChwb3J0KQlfTUlQSV9QT1JUKHBvcnQs IFwKPiArCQkJX01JUElBX1RVUk5fQVJPVU5EX1RJTUVPVVQsIF9NSVBJQ19UVVJOX0FST1VORF9U SU1FT1VUKQo+ICAgI2RlZmluZSAgVFVSTl9BUk9VTkRfVElNRU9VVF9NQVNLCQkJMHgzZgo+ICAg Cj4gICAjZGVmaW5lIF9NSVBJQV9ERVZJQ0VfUkVTRVRfVElNRVIJKGRldl9wcml2LT5taXBpX21t aW9fYmFzZSArIDB4YjAxYykKPiAtI2RlZmluZSBfTUlQSUJfREVWSUNFX1JFU0VUX1RJTUVSCShk ZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4MWMpCj4gLSNkZWZpbmUgTUlQSV9ERVZJQ0Vf UkVTRVRfVElNRVIodGMpCV9UUkFOU0NPREVSKHRjLCBcCj4gLQkJCV9NSVBJQV9ERVZJQ0VfUkVT RVRfVElNRVIsIF9NSVBJQl9ERVZJQ0VfUkVTRVRfVElNRVIpCj4gKyNkZWZpbmUgX01JUElDX0RF VklDRV9SRVNFVF9USU1FUgkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODFjKQo+ICsj ZGVmaW5lIE1JUElfREVWSUNFX1JFU0VUX1RJTUVSKHBvcnQpCV9NSVBJX1BPUlQocG9ydCwgXAo+ ICsJCQlfTUlQSUFfREVWSUNFX1JFU0VUX1RJTUVSLCBfTUlQSUNfREVWSUNFX1JFU0VUX1RJTUVS KQo+ICAgI2RlZmluZSAgREVWSUNFX1JFU0VUX1RJTUVSX01BU0sJCQkweGZmZmYKPiAgIAo+ICAg I2RlZmluZSBfTUlQSUFfRFBJX1JFU09MVVRJT04JCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2Ug KyAweGIwMjApCj4gLSNkZWZpbmUgX01JUElCX0RQSV9SRVNPTFVUSU9OCQkoZGV2X3ByaXYtPm1p cGlfbW1pb19iYXNlICsgMHhiODIwKQo+IC0jZGVmaW5lIE1JUElfRFBJX1JFU09MVVRJT04odGMp CV9UUkFOU0NPREVSKHRjLCBfTUlQSUFfRFBJX1JFU09MVVRJT04sIFwKPiAtCQkJCQlfTUlQSUJf RFBJX1JFU09MVVRJT04pCj4gKyNkZWZpbmUgX01JUElDX0RQSV9SRVNPTFVUSU9OCQkoZGV2X3By aXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODIwKQo+ICsjZGVmaW5lIE1JUElfRFBJX1JFU09MVVRJ T04ocG9ydCkJX01JUElfUE9SVChwb3J0LCBfTUlQSUFfRFBJX1JFU09MVVRJT04sIFwKPiArCQkJ CQlfTUlQSUNfRFBJX1JFU09MVVRJT04pCj4gICAjZGVmaW5lICBWRVJUSUNBTF9BRERSRVNTX1NI SUZUCQkJCTE2Cj4gICAjZGVmaW5lICBWRVJUSUNBTF9BRERSRVNTX01BU0sJCQkJKDB4ZmZmZiA8 PCAxNikKPiAgICNkZWZpbmUgIEhPUklaT05UQUxfQUREUkVTU19TSElGVAkJCTAKPiAgICNkZWZp bmUgIEhPUklaT05UQUxfQUREUkVTU19NQVNLCQkJMHhmZmZmCj4gICAKPiAgICNkZWZpbmUgX01J UElBX0RCSV9GSUZPX1RIUk9UVExFCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGIwMjQp Cj4gLSNkZWZpbmUgX01JUElCX0RCSV9GSUZPX1RIUk9UVExFCShkZXZfcHJpdi0+bWlwaV9tbWlv X2Jhc2UgKyAweGI4MjQpCj4gLSNkZWZpbmUgTUlQSV9EQklfRklGT19USFJPVFRMRSh0YykJX1RS QU5TQ09ERVIodGMsIFwKPiAtCQkJX01JUElBX0RCSV9GSUZPX1RIUk9UVExFLCBfTUlQSUJfREJJ X0ZJRk9fVEhST1RUTEUpCj4gKyNkZWZpbmUgX01JUElDX0RCSV9GSUZPX1RIUk9UVExFCShkZXZf cHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4MjQpCj4gKyNkZWZpbmUgTUlQSV9EQklfRklGT19U SFJPVFRMRShwb3J0KQlfTUlQSV9QT1JUKHBvcnQsIFwKPiArCQkJX01JUElBX0RCSV9GSUZPX1RI Uk9UVExFLCBfTUlQSUNfREJJX0ZJRk9fVEhST1RUTEUpCj4gICAjZGVmaW5lICBEQklfRklGT19F TVBUWV9IQUxGCQkJCSgwIDw8IDApCj4gICAjZGVmaW5lICBEQklfRklGT19FTVBUWV9RVUFSVEVS CQkJCSgxIDw8IDApCj4gICAjZGVmaW5lICBEQklfRklGT19FTVBUWV83X0xPQ0FUSU9OUwkJCSgy IDw8IDApCj4gICAKPiAgIC8qIHJlZ3MgYmVsb3cgYXJlIGJpdHMgMTU6MCAqLwo+ICAgI2RlZmlu ZSBfTUlQSUFfSFNZTkNfUEFERElOR19DT1VOVAkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsg MHhiMDI4KQo+IC0jZGVmaW5lIF9NSVBJQl9IU1lOQ19QQURESU5HX0NPVU5UCShkZXZfcHJpdi0+ bWlwaV9tbWlvX2Jhc2UgKyAweGI4MjgpCj4gLSNkZWZpbmUgTUlQSV9IU1lOQ19QQURESU5HX0NP VU5UKHRjKQlfVFJBTlNDT0RFUih0YywgXAo+IC0JCQlfTUlQSUFfSFNZTkNfUEFERElOR19DT1VO VCwgX01JUElCX0hTWU5DX1BBRERJTkdfQ09VTlQpCj4gKyNkZWZpbmUgX01JUElDX0hTWU5DX1BB RERJTkdfQ09VTlQJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjgyOCkKPiArI2RlZmlu ZSBNSVBJX0hTWU5DX1BBRERJTkdfQ09VTlQocG9ydCkJX01JUElfUE9SVChwb3J0LCBcCj4gKwkJ CV9NSVBJQV9IU1lOQ19QQURESU5HX0NPVU5ULCBfTUlQSUNfSFNZTkNfUEFERElOR19DT1VOVCkK PiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfSEJQX0NPVU5UCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19i YXNlICsgMHhiMDJjKQo+IC0jZGVmaW5lIF9NSVBJQl9IQlBfQ09VTlQJCShkZXZfcHJpdi0+bWlw aV9tbWlvX2Jhc2UgKyAweGI4MmMpCj4gLSNkZWZpbmUgTUlQSV9IQlBfQ09VTlQodGMpCQlfVFJB TlNDT0RFUih0YywgX01JUElBX0hCUF9DT1VOVCwgXAo+IC0JCQkJCV9NSVBJQl9IQlBfQ09VTlQp Cj4gKyNkZWZpbmUgX01JUElDX0hCUF9DT1VOVAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSAr IDB4YjgyYykKPiArI2RlZmluZSBNSVBJX0hCUF9DT1VOVChwb3J0KQkJX01JUElfUE9SVChwb3J0 LCBfTUlQSUFfSEJQX0NPVU5ULCBcCj4gKwkJCQkJX01JUElDX0hCUF9DT1VOVCkKPiAgIAo+ICAg I2RlZmluZSBfTUlQSUFfSEZQX0NPVU5UCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhi MDMwKQo+IC0jZGVmaW5lIF9NSVBJQl9IRlBfQ09VTlQJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jh c2UgKyAweGI4MzApCj4gLSNkZWZpbmUgTUlQSV9IRlBfQ09VTlQodGMpCQlfVFJBTlNDT0RFUih0 YywgX01JUElBX0hGUF9DT1VOVCwgXAo+IC0JCQkJCV9NSVBJQl9IRlBfQ09VTlQpCj4gKyNkZWZp bmUgX01JUElDX0hGUF9DT1VOVAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjgzMCkK PiArI2RlZmluZSBNSVBJX0hGUF9DT1VOVChwb3J0KQkJX01JUElfUE9SVChwb3J0LCBfTUlQSUFf SEZQX0NPVU5ULCBcCj4gKwkJCQkJX01JUElDX0hGUF9DT1VOVCkKPiAgIAo+ICAgI2RlZmluZSBf TUlQSUFfSEFDVElWRV9BUkVBX0NPVU5UCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGIw MzQpCj4gLSNkZWZpbmUgX01JUElCX0hBQ1RJVkVfQVJFQV9DT1VOVAkoZGV2X3ByaXYtPm1pcGlf bW1pb19iYXNlICsgMHhiODM0KQo+IC0jZGVmaW5lIE1JUElfSEFDVElWRV9BUkVBX0NPVU5UKHRj KQlfVFJBTlNDT0RFUih0YywgXAo+IC0JCQlfTUlQSUFfSEFDVElWRV9BUkVBX0NPVU5ULCBfTUlQ SUJfSEFDVElWRV9BUkVBX0NPVU5UKQo+ICsjZGVmaW5lIF9NSVBJQ19IQUNUSVZFX0FSRUFfQ09V TlQJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjgzNCkKPiArI2RlZmluZSBNSVBJX0hB Q1RJVkVfQVJFQV9DT1VOVChwb3J0KQlfTUlQSV9QT1JUKHBvcnQsIFwKPiArCQkJX01JUElBX0hB Q1RJVkVfQVJFQV9DT1VOVCwgX01JUElDX0hBQ1RJVkVfQVJFQV9DT1VOVCkKPiAgIAo+ICAgI2Rl ZmluZSBfTUlQSUFfVlNZTkNfUEFERElOR19DT1VOVAkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNl ICsgMHhiMDM4KQo+IC0jZGVmaW5lIF9NSVBJQl9WU1lOQ19QQURESU5HX0NPVU5UCShkZXZfcHJp di0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4MzgpCj4gLSNkZWZpbmUgTUlQSV9WU1lOQ19QQURESU5H X0NPVU5UKHRjKQlfVFJBTlNDT0RFUih0YywgXAo+IC0JCQlfTUlQSUFfVlNZTkNfUEFERElOR19D T1VOVCwgX01JUElCX1ZTWU5DX1BBRERJTkdfQ09VTlQpCj4gKyNkZWZpbmUgX01JUElDX1ZTWU5D X1BBRERJTkdfQ09VTlQJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjgzOCkKPiArI2Rl ZmluZSBNSVBJX1ZTWU5DX1BBRERJTkdfQ09VTlQocG9ydCkJX01JUElfUE9SVChwb3J0LCBcCj4g KwkJCV9NSVBJQV9WU1lOQ19QQURESU5HX0NPVU5ULCBfTUlQSUNfVlNZTkNfUEFERElOR19DT1VO VCkKPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfVkJQX0NPVU5UCQkoZGV2X3ByaXYtPm1pcGlfbW1p b19iYXNlICsgMHhiMDNjKQo+IC0jZGVmaW5lIF9NSVBJQl9WQlBfQ09VTlQJCShkZXZfcHJpdi0+ bWlwaV9tbWlvX2Jhc2UgKyAweGI4M2MpCj4gLSNkZWZpbmUgTUlQSV9WQlBfQ09VTlQodGMpCQlf VFJBTlNDT0RFUih0YywgX01JUElBX1ZCUF9DT1VOVCwgXAo+IC0JCQkJCV9NSVBJQl9WQlBfQ09V TlQpCj4gKyNkZWZpbmUgX01JUElDX1ZCUF9DT1VOVAkJKGRldl9wcml2LT5taXBpX21taW9fYmFz ZSArIDB4YjgzYykKPiArI2RlZmluZSBNSVBJX1ZCUF9DT1VOVChwb3J0KQkJX01JUElfUE9SVChw b3J0LCBfTUlQSUFfVkJQX0NPVU5ULCBcCj4gKwkJCQkJX01JUElDX1ZCUF9DT1VOVCkKPiAgIAo+ ICAgI2RlZmluZSBfTUlQSUFfVkZQX0NPVU5UCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsg MHhiMDQwKQo+IC0jZGVmaW5lIF9NSVBJQl9WRlBfQ09VTlQJCShkZXZfcHJpdi0+bWlwaV9tbWlv X2Jhc2UgKyAweGI4NDApCj4gLSNkZWZpbmUgTUlQSV9WRlBfQ09VTlQodGMpCQlfVFJBTlNDT0RF Uih0YywgX01JUElBX1ZGUF9DT1VOVCwgXAo+IC0JCQkJCV9NSVBJQl9WRlBfQ09VTlQpCj4gKyNk ZWZpbmUgX01JUElDX1ZGUF9DT1VOVAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg0 MCkKPiArI2RlZmluZSBNSVBJX1ZGUF9DT1VOVChwb3J0KQkJX01JUElfUE9SVChwb3J0LCBfTUlQ SUFfVkZQX0NPVU5ULCBcCj4gKwkJCQkJX01JUElDX1ZGUF9DT1VOVCkKPiAgIAo+ICAgI2RlZmlu ZSBfTUlQSUFfSElHSF9MT1dfU1dJVENIX0NPVU5UCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2Ug KyAweGIwNDQpCj4gLSNkZWZpbmUgX01JUElCX0hJR0hfTE9XX1NXSVRDSF9DT1VOVAkoZGV2X3By aXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODQ0KQo+IC0jZGVmaW5lIE1JUElfSElHSF9MT1dfU1dJ VENIX0NPVU5UKHRjKQlfVFJBTlNDT0RFUih0YywJXAo+IC0JCV9NSVBJQV9ISUdIX0xPV19TV0lU Q0hfQ09VTlQsIF9NSVBJQl9ISUdIX0xPV19TV0lUQ0hfQ09VTlQpCj4gKyNkZWZpbmUgX01JUElD X0hJR0hfTE9XX1NXSVRDSF9DT1VOVAkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODQ0 KQo+ICsjZGVmaW5lIE1JUElfSElHSF9MT1dfU1dJVENIX0NPVU5UKHBvcnQpCV9NSVBJX1BPUlQo cG9ydCwJXAo+ICsJCV9NSVBJQV9ISUdIX0xPV19TV0lUQ0hfQ09VTlQsIF9NSVBJQ19ISUdIX0xP V19TV0lUQ0hfQ09VTlQpCj4gICAKPiAgIC8qIHJlZ3MgYWJvdmUgYXJlIGJpdHMgMTU6MCAqLwo+ ICAgCj4gICAjZGVmaW5lIF9NSVBJQV9EUElfQ09OVFJPTAkJKGRldl9wcml2LT5taXBpX21taW9f YmFzZSArIDB4YjA0OCkKPiAtI2RlZmluZSBfTUlQSUJfRFBJX0NPTlRST0wJCShkZXZfcHJpdi0+ bWlwaV9tbWlvX2Jhc2UgKyAweGI4NDgpCj4gLSNkZWZpbmUgTUlQSV9EUElfQ09OVFJPTCh0YykJ CV9UUkFOU0NPREVSKHRjLCBfTUlQSUFfRFBJX0NPTlRST0wsIFwKPiAtCQkJCQlfTUlQSUJfRFBJ X0NPTlRST0wpCj4gKyNkZWZpbmUgX01JUElDX0RQSV9DT05UUk9MCQkoZGV2X3ByaXYtPm1pcGlf bW1pb19iYXNlICsgMHhiODQ4KQo+ICsjZGVmaW5lIE1JUElfRFBJX0NPTlRST0wocG9ydCkJCV9N SVBJX1BPUlQocG9ydCwgX01JUElBX0RQSV9DT05UUk9MLCBcCj4gKwkJCQkJX01JUElDX0RQSV9D T05UUk9MKQo+ICAgI2RlZmluZSAgRFBJX0xQX01PREUJCQkJCSgxIDw8IDYpCj4gICAjZGVmaW5l ICBCQUNLTElHSFRfT0ZGCQkJCQkoMSA8PCA1KQo+ICAgI2RlZmluZSAgQkFDS0xJR0hUX09OCQkJ CQkoMSA8PCA0KQo+IEBAIC02ODQyLDMwICs2ODQ1LDMwIEBAIGVudW0gcHVuaXRfcG93ZXJfd2Vs bCB7Cj4gICAjZGVmaW5lICBTSFVURE9XTgkJCQkJKDEgPDwgMCkKPiAgIAo+ICAgI2RlZmluZSBf TUlQSUFfRFBJX0RBVEEJCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMDRjKQo+IC0j ZGVmaW5lIF9NSVBJQl9EUElfREFUQQkJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4 NGMpCj4gLSNkZWZpbmUgTUlQSV9EUElfREFUQSh0YykJCV9UUkFOU0NPREVSKHRjLCBfTUlQSUFf RFBJX0RBVEEsIFwKPiAtCQkJCQlfTUlQSUJfRFBJX0RBVEEpCj4gKyNkZWZpbmUgX01JUElDX0RQ SV9EQVRBCQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg0YykKPiArI2RlZmluZSBN SVBJX0RQSV9EQVRBKHBvcnQpCQlfTUlQSV9QT1JUKHBvcnQsIF9NSVBJQV9EUElfREFUQSwgXAo+ ICsJCQkJCV9NSVBJQ19EUElfREFUQSkKPiAgICNkZWZpbmUgIENPTU1BTkRfQllURV9TSElGVAkJ CQkwCj4gICAjZGVmaW5lICBDT01NQU5EX0JZVEVfTUFTSwkJCQkoMHgzZiA8PCAwKQo+ICAgCj4g ICAjZGVmaW5lIF9NSVBJQV9JTklUX0NPVU5UCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsg MHhiMDUwKQo+IC0jZGVmaW5lIF9NSVBJQl9JTklUX0NPVU5UCQkoZGV2X3ByaXYtPm1pcGlfbW1p b19iYXNlICsgMHhiODUwKQo+IC0jZGVmaW5lIE1JUElfSU5JVF9DT1VOVCh0YykJCV9UUkFOU0NP REVSKHRjLCBfTUlQSUFfSU5JVF9DT1VOVCwgXAo+IC0JCQkJCV9NSVBJQl9JTklUX0NPVU5UKQo+ ICsjZGVmaW5lIF9NSVBJQ19JTklUX0NPVU5UCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsg MHhiODUwKQo+ICsjZGVmaW5lIE1JUElfSU5JVF9DT1VOVChwb3J0KQkJX01JUElfUE9SVChwb3J0 LCBfTUlQSUFfSU5JVF9DT1VOVCwgXAo+ICsJCQkJCV9NSVBJQ19JTklUX0NPVU5UKQo+ICAgI2Rl ZmluZSAgTUFTVEVSX0lOSVRfVElNRVJfU0hJRlQJCQkwCj4gICAjZGVmaW5lICBNQVNURVJfSU5J VF9USU1FUl9NQVNLCQkJCSgweGZmZmYgPDwgMCkKPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfTUFY X1JFVFVSTl9QS1RfU0laRQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMDU0KQo+IC0j ZGVmaW5lIF9NSVBJQl9NQVhfUkVUVVJOX1BLVF9TSVpFCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jh c2UgKyAweGI4NTQpCj4gLSNkZWZpbmUgTUlQSV9NQVhfUkVUVVJOX1BLVF9TSVpFKHRjKQlfVFJB TlNDT0RFUih0YywgXAo+IC0JCQlfTUlQSUFfTUFYX1JFVFVSTl9QS1RfU0laRSwgX01JUElCX01B WF9SRVRVUk5fUEtUX1NJWkUpCj4gKyNkZWZpbmUgX01JUElDX01BWF9SRVRVUk5fUEtUX1NJWkUJ KGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg1NCkKPiArI2RlZmluZSBNSVBJX01BWF9S RVRVUk5fUEtUX1NJWkUocG9ydCkJX01JUElfUE9SVChwb3J0LCBcCj4gKwkJCV9NSVBJQV9NQVhf UkVUVVJOX1BLVF9TSVpFLCBfTUlQSUNfTUFYX1JFVFVSTl9QS1RfU0laRSkKPiAgICNkZWZpbmUg IE1BWF9SRVRVUk5fUEtUX1NJWkVfU0hJRlQJCQkwCj4gICAjZGVmaW5lICBNQVhfUkVUVVJOX1BL VF9TSVpFX01BU0sJCQkoMHgzZmYgPDwgMCkKPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfVklERU9f TU9ERV9GT1JNQVQJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjA1OCkKPiAtI2RlZmlu ZSBfTUlQSUJfVklERU9fTU9ERV9GT1JNQVQJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4 Yjg1OCkKPiAtI2RlZmluZSBNSVBJX1ZJREVPX01PREVfRk9STUFUKHRjKQlfVFJBTlNDT0RFUih0 YywgXAo+IC0JCQlfTUlQSUFfVklERU9fTU9ERV9GT1JNQVQsIF9NSVBJQl9WSURFT19NT0RFX0ZP Uk1BVCkKPiArI2RlZmluZSBfTUlQSUNfVklERU9fTU9ERV9GT1JNQVQJKGRldl9wcml2LT5taXBp X21taW9fYmFzZSArIDB4Yjg1OCkKPiArI2RlZmluZSBNSVBJX1ZJREVPX01PREVfRk9STUFUKHBv cnQpCV9NSVBJX1BPUlQocG9ydCwgXAo+ICsJCQlfTUlQSUFfVklERU9fTU9ERV9GT1JNQVQsIF9N SVBJQ19WSURFT19NT0RFX0ZPUk1BVCkKPiAgICNkZWZpbmUgIFJBTkRPTV9EUElfRElTUExBWV9S RVNPTFVUSU9OCQkJKDEgPDwgNCkKPiAgICNkZWZpbmUgIERJU0FCTEVfVklERU9fQlRBCQkJCSgx IDw8IDMpCj4gICAjZGVmaW5lICBJUF9UR19DT05GSUcJCQkJCSgxIDw8IDIpCj4gQEAgLTY4NzQs OSArNjg3Nyw5IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7Cj4gICAjZGVmaW5lICBWSURFT19N T0RFX0JVUlNUCQkJCSgzIDw8IDApCj4gICAKPiAgICNkZWZpbmUgX01JUElBX0VPVF9ESVNBQkxF CQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMDVjKQo+IC0jZGVmaW5lIF9NSVBJQl9F T1RfRElTQUJMRQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg1YykKPiAtI2RlZmlu ZSBNSVBJX0VPVF9ESVNBQkxFKHRjKQkJX1RSQU5TQ09ERVIodGMsIF9NSVBJQV9FT1RfRElTQUJM RSwgXAo+IC0JCQkJCV9NSVBJQl9FT1RfRElTQUJMRSkKPiArI2RlZmluZSBfTUlQSUNfRU9UX0RJ U0FCTEUJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4NWMpCj4gKyNkZWZpbmUgTUlQ SV9FT1RfRElTQUJMRShwb3J0KQkJX01JUElfUE9SVChwb3J0LCBfTUlQSUFfRU9UX0RJU0FCTEUs IFwKPiArCQkJCQlfTUlQSUNfRU9UX0RJU0FCTEUpCj4gICAjZGVmaW5lICBMUF9SWF9USU1FT1VU X0VSUk9SX1JFQ09WRVJZX0RJU0FCTEUJCSgxIDw8IDcpCj4gICAjZGVmaW5lICBIU19SWF9USU1F T1VUX0VSUk9SX1JFQ09WRVJZX0RJU0FCTEUJCSgxIDw8IDYpCj4gICAjZGVmaW5lICBMT1dfQ09O VEVOVElPTl9SRUNPVkVSWV9ESVNBQkxFCQkoMSA8PCA1KQo+IEBAIC02ODg3LDMyICs2ODkwLDMy IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7Cj4gICAjZGVmaW5lICBFT1RfRElTQUJMRQkJCQkJ KDEgPDwgMCkKPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfTFBfQllURUNMSwkJKGRldl9wcml2LT5t aXBpX21taW9fYmFzZSArIDB4YjA2MCkKPiAtI2RlZmluZSBfTUlQSUJfTFBfQllURUNMSwkJKGRl dl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg2MCkKPiAtI2RlZmluZSBNSVBJX0xQX0JZVEVD TEsodGMpCQlfVFJBTlNDT0RFUih0YywgX01JUElBX0xQX0JZVEVDTEssIFwKPiAtCQkJCQlfTUlQ SUJfTFBfQllURUNMSykKPiArI2RlZmluZSBfTUlQSUNfTFBfQllURUNMSwkJKGRldl9wcml2LT5t aXBpX21taW9fYmFzZSArIDB4Yjg2MCkKPiArI2RlZmluZSBNSVBJX0xQX0JZVEVDTEsocG9ydCkJ CV9NSVBJX1BPUlQocG9ydCwgX01JUElBX0xQX0JZVEVDTEssIFwKPiArCQkJCQlfTUlQSUNfTFBf QllURUNMSykKPiAgICNkZWZpbmUgIExQX0JZVEVDTEtfU0hJRlQJCQkJMAo+ICAgI2RlZmluZSAg TFBfQllURUNMS19NQVNLCQkJCSgweGZmZmYgPDwgMCkKPiAgIAo+ICAgLyogYml0cyAzMTowICov Cj4gICAjZGVmaW5lIF9NSVBJQV9MUF9HRU5fREFUQQkJKGRldl9wcml2LT5taXBpX21taW9fYmFz ZSArIDB4YjA2NCkKPiAtI2RlZmluZSBfTUlQSUJfTFBfR0VOX0RBVEEJCShkZXZfcHJpdi0+bWlw aV9tbWlvX2Jhc2UgKyAweGI4NjQpCj4gLSNkZWZpbmUgTUlQSV9MUF9HRU5fREFUQSh0YykJCV9U UkFOU0NPREVSKHRjLCBfTUlQSUFfTFBfR0VOX0RBVEEsIFwKPiAtCQkJCQlfTUlQSUJfTFBfR0VO X0RBVEEpCj4gKyNkZWZpbmUgX01JUElDX0xQX0dFTl9EQVRBCQkoZGV2X3ByaXYtPm1pcGlfbW1p b19iYXNlICsgMHhiODY0KQo+ICsjZGVmaW5lIE1JUElfTFBfR0VOX0RBVEEocG9ydCkJCV9NSVBJ X1BPUlQocG9ydCwgX01JUElBX0xQX0dFTl9EQVRBLCBcCj4gKwkJCQkJX01JUElDX0xQX0dFTl9E QVRBKQo+ICAgCj4gICAvKiBiaXRzIDMxOjAgKi8KPiAgICNkZWZpbmUgX01JUElBX0hTX0dFTl9E QVRBCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMDY4KQo+IC0jZGVmaW5lIF9NSVBJ Ql9IU19HRU5fREFUQQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg2OCkKPiAtI2Rl ZmluZSBNSVBJX0hTX0dFTl9EQVRBKHRjKQkJX1RSQU5TQ09ERVIodGMsIF9NSVBJQV9IU19HRU5f REFUQSwgXAo+IC0JCQkJCV9NSVBJQl9IU19HRU5fREFUQSkKPiArI2RlZmluZSBfTUlQSUNfSFNf R0VOX0RBVEEJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4NjgpCj4gKyNkZWZpbmUg TUlQSV9IU19HRU5fREFUQShwb3J0KQkJX01JUElfUE9SVChwb3J0LCBfTUlQSUFfSFNfR0VOX0RB VEEsIFwKPiArCQkJCQlfTUlQSUNfSFNfR0VOX0RBVEEpCj4gICAKPiAgICNkZWZpbmUgX01JUElB X0xQX0dFTl9DVFJMCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMDZjKQo+IC0jZGVm aW5lIF9NSVBJQl9MUF9HRU5fQ1RSTAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg2 YykKPiAtI2RlZmluZSBNSVBJX0xQX0dFTl9DVFJMKHRjKQkJX1RSQU5TQ09ERVIodGMsIF9NSVBJ QV9MUF9HRU5fQ1RSTCwgXAo+IC0JCQkJCV9NSVBJQl9MUF9HRU5fQ1RSTCkKPiArI2RlZmluZSBf TUlQSUNfTFBfR0VOX0NUUkwJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4NmMpCj4g KyNkZWZpbmUgTUlQSV9MUF9HRU5fQ1RSTChwb3J0KQkJX01JUElfUE9SVChwb3J0LCBfTUlQSUFf TFBfR0VOX0NUUkwsIFwKPiArCQkJCQlfTUlQSUNfTFBfR0VOX0NUUkwpCj4gICAjZGVmaW5lIF9N SVBJQV9IU19HRU5fQ1RSTAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjA3MCkKPiAt I2RlZmluZSBfTUlQSUJfSFNfR0VOX0NUUkwJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAw eGI4NzApCj4gLSNkZWZpbmUgTUlQSV9IU19HRU5fQ1RSTCh0YykJCV9UUkFOU0NPREVSKHRjLCBf TUlQSUFfSFNfR0VOX0NUUkwsIFwKPiAtCQkJCQlfTUlQSUJfSFNfR0VOX0NUUkwpCj4gKyNkZWZp bmUgX01JUElDX0hTX0dFTl9DVFJMCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODcw KQo+ICsjZGVmaW5lIE1JUElfSFNfR0VOX0NUUkwocG9ydCkJCV9NSVBJX1BPUlQocG9ydCwgX01J UElBX0hTX0dFTl9DVFJMLCBcCj4gKwkJCQkJX01JUElDX0hTX0dFTl9DVFJMKQo+ICAgI2RlZmlu ZSAgTE9OR19QQUNLRVRfV09SRF9DT1VOVF9TSElGVAkJCTgKPiAgICNkZWZpbmUgIExPTkdfUEFD S0VUX1dPUkRfQ09VTlRfTUFTSwkJCSgweGZmZmYgPDwgOCkKPiAgICNkZWZpbmUgIFNIT1JUX1BB Q0tFVF9QQVJBTV9TSElGVAkJCTgKPiBAQCAtNjkyNCw5ICs2OTI3LDkgQEAgZW51bSBwdW5pdF9w b3dlcl93ZWxsIHsKPiAgIC8qIGRhdGEgdHlwZSB2YWx1ZXMsIHNlZSBpbmNsdWRlL3ZpZGVvL21p cGlfZGlzcGxheS5oICovCj4gICAKPiAgICNkZWZpbmUgX01JUElBX0dFTl9GSUZPX1NUQVQJCShk ZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGIwNzQpCj4gLSNkZWZpbmUgX01JUElCX0dFTl9G SUZPX1NUQVQJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4NzQpCj4gLSNkZWZpbmUg TUlQSV9HRU5fRklGT19TVEFUKHRjKQlfVFJBTlNDT0RFUih0YywgX01JUElBX0dFTl9GSUZPX1NU QVQsIFwKPiAtCQkJCQlfTUlQSUJfR0VOX0ZJRk9fU1RBVCkKPiArI2RlZmluZSBfTUlQSUNfR0VO X0ZJRk9fU1RBVAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg3NCkKPiArI2RlZmlu ZSBNSVBJX0dFTl9GSUZPX1NUQVQocG9ydCkJX01JUElfUE9SVChwb3J0LCBfTUlQSUFfR0VOX0ZJ Rk9fU1RBVCwgXAo+ICsJCQkJCV9NSVBJQ19HRU5fRklGT19TVEFUKQo+ICAgI2RlZmluZSAgRFBJ X0ZJRk9fRU1QVFkJCQkJCSgxIDw8IDI4KQo+ICAgI2RlZmluZSAgREJJX0ZJRk9fRU1QVFkJCQkJ CSgxIDw8IDI3KQo+ICAgI2RlZmluZSAgTFBfQ1RSTF9GSUZPX0VNUFRZCQkJCSgxIDw8IDI2KQo+ IEBAIC02OTQzLDE3ICs2OTQ2LDE3IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7Cj4gICAjZGVm aW5lICBIU19EQVRBX0ZJRk9fRlVMTAkJCQkoMSA8PCAwKQo+ICAgCj4gICAjZGVmaW5lIF9NSVBJ QV9IU19MU19EQklfRU5BQkxFCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMDc4KQo+ IC0jZGVmaW5lIF9NSVBJQl9IU19MU19EQklfRU5BQkxFCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19i YXNlICsgMHhiODc4KQo+IC0jZGVmaW5lIE1JUElfSFNfTFBfREJJX0VOQUJMRSh0YykJX1RSQU5T Q09ERVIodGMsIFwKPiAtCQkJX01JUElBX0hTX0xTX0RCSV9FTkFCTEUsIF9NSVBJQl9IU19MU19E QklfRU5BQkxFKQo+ICsjZGVmaW5lIF9NSVBJQ19IU19MU19EQklfRU5BQkxFCQkoZGV2X3ByaXYt Pm1pcGlfbW1pb19iYXNlICsgMHhiODc4KQo+ICsjZGVmaW5lIE1JUElfSFNfTFBfREJJX0VOQUJM RShwb3J0KQlfTUlQSV9QT1JUKHBvcnQsIFwKPiArCQkJX01JUElBX0hTX0xTX0RCSV9FTkFCTEUs IF9NSVBJQ19IU19MU19EQklfRU5BQkxFKQo+ICAgI2RlZmluZSAgREJJX0hTX0xQX01PREVfTUFT SwkJCQkoMSA8PCAwKQo+ICAgI2RlZmluZSAgREJJX0xQX01PREUJCQkJCSgxIDw8IDApCj4gICAj ZGVmaW5lICBEQklfSFNfTU9ERQkJCQkJKDAgPDwgMCkKPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFf RFBIWV9QQVJBTQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjA4MCkKPiAtI2RlZmlu ZSBfTUlQSUJfRFBIWV9QQVJBTQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg4MCkK PiAtI2RlZmluZSBNSVBJX0RQSFlfUEFSQU0odGMpCQlfVFJBTlNDT0RFUih0YywgX01JUElBX0RQ SFlfUEFSQU0sIFwKPiAtCQkJCQlfTUlQSUJfRFBIWV9QQVJBTSkKPiArI2RlZmluZSBfTUlQSUNf RFBIWV9QQVJBTQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg4MCkKPiArI2RlZmlu ZSBNSVBJX0RQSFlfUEFSQU0ocG9ydCkJCV9NSVBJX1BPUlQocG9ydCwgX01JUElBX0RQSFlfUEFS QU0sIFwKPiArCQkJCQlfTUlQSUNfRFBIWV9QQVJBTSkKPiAgICNkZWZpbmUgIEVYSVRfWkVST19D T1VOVF9TSElGVAkJCQkyNAo+ICAgI2RlZmluZSAgRVhJVF9aRVJPX0NPVU5UX01BU0sJCQkJKDB4 M2YgPDwgMjQpCj4gICAjZGVmaW5lICBUUkFJTF9DT1VOVF9TSElGVAkJCQkxNgo+IEBAIC02OTY1 LDM2ICs2OTY4LDM2IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7Cj4gICAKPiAgIC8qIGJpdHMg MzE6MCAqLwo+ICAgI2RlZmluZSBfTUlQSUFfREJJX0JXX0NUUkwJCShkZXZfcHJpdi0+bWlwaV9t bWlvX2Jhc2UgKyAweGIwODQpCj4gLSNkZWZpbmUgX01JUElCX0RCSV9CV19DVFJMCQkoZGV2X3By aXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODg0KQo+IC0jZGVmaW5lIE1JUElfREJJX0JXX0NUUkwo dGMpCQlfVFJBTlNDT0RFUih0YywgX01JUElBX0RCSV9CV19DVFJMLCBcCj4gLQkJCQkJX01JUElC X0RCSV9CV19DVFJMKQo+ICsjZGVmaW5lIF9NSVBJQ19EQklfQldfQ1RSTAkJKGRldl9wcml2LT5t aXBpX21taW9fYmFzZSArIDB4Yjg4NCkKPiArI2RlZmluZSBNSVBJX0RCSV9CV19DVFJMKHBvcnQp CQlfTUlQSV9QT1JUKHBvcnQsIF9NSVBJQV9EQklfQldfQ1RSTCwgXAo+ICsJCQkJCV9NSVBJQ19E QklfQldfQ1RSTCkKPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfQ0xLX0xBTkVfU1dJVENIX1RJTUVf Q05UCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlIFwKPiAgIAkJCQkJCQkrIDB4YjA4OCkKPiAt I2RlZmluZSBfTUlQSUJfQ0xLX0xBTkVfU1dJVENIX1RJTUVfQ05UCQkoZGV2X3ByaXYtPm1pcGlf bW1pb19iYXNlIFwKPiArI2RlZmluZSBfTUlQSUNfQ0xLX0xBTkVfU1dJVENIX1RJTUVfQ05UCQko ZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlIFwKPiAgIAkJCQkJCQkrIDB4Yjg4OCkKPiAtI2RlZmlu ZSBNSVBJX0NMS19MQU5FX1NXSVRDSF9USU1FX0NOVCh0YykJX1RSQU5TQ09ERVIodGMsIFwKPiAt CV9NSVBJQV9DTEtfTEFORV9TV0lUQ0hfVElNRV9DTlQsIF9NSVBJQl9DTEtfTEFORV9TV0lUQ0hf VElNRV9DTlQpCj4gKyNkZWZpbmUgTUlQSV9DTEtfTEFORV9TV0lUQ0hfVElNRV9DTlQocG9ydCkJ X01JUElfUE9SVChwb3J0LCBcCj4gKwlfTUlQSUFfQ0xLX0xBTkVfU1dJVENIX1RJTUVfQ05ULCBf TUlQSUNfQ0xLX0xBTkVfU1dJVENIX1RJTUVfQ05UKQo+ICAgI2RlZmluZSAgTFBfSFNfU1NXX0NO VF9TSElGVAkJCQkxNgo+ICAgI2RlZmluZSAgTFBfSFNfU1NXX0NOVF9NQVNLCQkJCSgweGZmZmYg PDwgMTYpCj4gICAjZGVmaW5lICBIU19MUF9QV1JfU1dfQ05UX1NISUZUCQkJCTAKPiAgICNkZWZp bmUgIEhTX0xQX1BXUl9TV19DTlRfTUFTSwkJCQkoMHhmZmZmIDw8IDApCj4gICAKPiAgICNkZWZp bmUgX01JUElBX1NUT1BfU1RBVEVfU1RBTEwJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAw eGIwOGMpCj4gLSNkZWZpbmUgX01JUElCX1NUT1BfU1RBVEVfU1RBTEwJCShkZXZfcHJpdi0+bWlw aV9tbWlvX2Jhc2UgKyAweGI4OGMpCj4gLSNkZWZpbmUgTUlQSV9TVE9QX1NUQVRFX1NUQUxMKHRj KQlfVFJBTlNDT0RFUih0YywgXAo+IC0JCQlfTUlQSUFfU1RPUF9TVEFURV9TVEFMTCwgX01JUElC X1NUT1BfU1RBVEVfU1RBTEwpCj4gKyNkZWZpbmUgX01JUElDX1NUT1BfU1RBVEVfU1RBTEwJCShk ZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4OGMpCj4gKyNkZWZpbmUgTUlQSV9TVE9QX1NU QVRFX1NUQUxMKHBvcnQpCV9NSVBJX1BPUlQocG9ydCwgXAo+ICsJCQlfTUlQSUFfU1RPUF9TVEFU RV9TVEFMTCwgX01JUElDX1NUT1BfU1RBVEVfU1RBTEwpCj4gICAjZGVmaW5lICBTVE9QX1NUQVRF X1NUQUxMX0NPVU5URVJfU0hJRlQJCQkwCj4gICAjZGVmaW5lICBTVE9QX1NUQVRFX1NUQUxMX0NP VU5URVJfTUFTSwkJCSgweGZmIDw8IDApCj4gICAKPiAgICNkZWZpbmUgX01JUElBX0lOVFJfU1RB VF9SRUdfMQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjA5MCkKPiAtI2RlZmluZSBf TUlQSUJfSU5UUl9TVEFUX1JFR18xCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiODkw KQo+IC0jZGVmaW5lIE1JUElfSU5UUl9TVEFUX1JFR18xKHRjKQlfVFJBTlNDT0RFUih0YywgXAo+ IC0JCQkJX01JUElBX0lOVFJfU1RBVF9SRUdfMSwgX01JUElCX0lOVFJfU1RBVF9SRUdfMSkKPiAr I2RlZmluZSBfTUlQSUNfSU5UUl9TVEFUX1JFR18xCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNl ICsgMHhiODkwKQo+ICsjZGVmaW5lIE1JUElfSU5UUl9TVEFUX1JFR18xKHBvcnQpCV9NSVBJX1BP UlQocG9ydCwgXAo+ICsJCQkJX01JUElBX0lOVFJfU1RBVF9SRUdfMSwgX01JUElDX0lOVFJfU1RB VF9SRUdfMSkKPiAgICNkZWZpbmUgX01JUElBX0lOVFJfRU5fUkVHXzEJCShkZXZfcHJpdi0+bWlw aV9tbWlvX2Jhc2UgKyAweGIwOTQpCj4gLSNkZWZpbmUgX01JUElCX0lOVFJfRU5fUkVHXzEJCShk ZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI4OTQpCj4gLSNkZWZpbmUgTUlQSV9JTlRSX0VO X1JFR18xKHRjKQlfVFJBTlNDT0RFUih0YywgX01JUElBX0lOVFJfRU5fUkVHXzEsIFwKPiAtCQkJ CQlfTUlQSUJfSU5UUl9FTl9SRUdfMSkKPiArI2RlZmluZSBfTUlQSUNfSU5UUl9FTl9SRUdfMQkJ KGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg5NCkKPiArI2RlZmluZSBNSVBJX0lOVFJf RU5fUkVHXzEocG9ydCkJX01JUElfUE9SVChwb3J0LCBfTUlQSUFfSU5UUl9FTl9SRUdfMSwgXAo+ ICsJCQkJCV9NSVBJQ19JTlRSX0VOX1JFR18xKQo+ICAgI2RlZmluZSAgUlhfQ09OVEVOVElPTl9E RVRFQ1RFRAkJCQkoMSA8PCAwKQo+ICAgCj4gICAvKiBYWFg6IG9ubHkgcGlwZSBBID8hPyAqLwo+ IEBAIC03MDEzLDkgKzcwMTYsOSBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewo+ICAgLyogTUlQ SSBhZGFwdGVyIHJlZ2lzdGVycyAqLwo+ICAgCj4gICAjZGVmaW5lIF9NSVBJQV9DVFJMCQkJKGRl dl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjEwNCkKPiAtI2RlZmluZSBfTUlQSUJfQ1RSTAkJ CShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI5MDQpCj4gLSNkZWZpbmUgTUlQSV9DVFJM KHRjKQkJCV9UUkFOU0NPREVSKHRjLCBfTUlQSUFfQ1RSTCwgXAo+IC0JCQkJCV9NSVBJQl9DVFJM KQo+ICsjZGVmaW5lIF9NSVBJQ19DVFJMCQkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4 YjkwNCkKPiArI2RlZmluZSBNSVBJX0NUUkwocG9ydCkJCQlfTUlQSV9QT1JUKHBvcnQsIF9NSVBJ QV9DVFJMLCBcCj4gKwkJCQkJX01JUElDX0NUUkwpCj4gICAjZGVmaW5lICBFU0NBUEVfQ0xPQ0tf RElWSURFUl9TSElGVAkJCTUgLyogQSBvbmx5ICovCj4gICAjZGVmaW5lICBFU0NBUEVfQ0xPQ0tf RElWSURFUl9NQVNLCQkJKDMgPDwgNSkKPiAgICNkZWZpbmUgIEVTQ0FQRV9DTE9DS19ESVZJREVS XzEJCQkJKDAgPDwgNSkKPiBAQCAtNzAyOCwyNCArNzAzMSwyNCBAQCBlbnVtIHB1bml0X3Bvd2Vy X3dlbGwgewo+ICAgI2RlZmluZSAgUkdCX0ZMSVBfVE9fQkdSCQkJCSgxIDw8IDIpCj4gICAKPiAg ICNkZWZpbmUgX01JUElBX0RBVEFfQUREUkVTUwkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSAr IDB4YjEwOCkKPiAtI2RlZmluZSBfTUlQSUJfREFUQV9BRERSRVNTCQkoZGV2X3ByaXYtPm1pcGlf bW1pb19iYXNlICsgMHhiOTA4KQo+IC0jZGVmaW5lIE1JUElfREFUQV9BRERSRVNTKHRjKQkJX1RS QU5TQ09ERVIodGMsIF9NSVBJQV9EQVRBX0FERFJFU1MsIFwKPiAtCQkJCQlfTUlQSUJfREFUQV9B RERSRVNTKQo+ICsjZGVmaW5lIF9NSVBJQ19EQVRBX0FERFJFU1MJCShkZXZfcHJpdi0+bWlwaV9t bWlvX2Jhc2UgKyAweGI5MDgpCj4gKyNkZWZpbmUgTUlQSV9EQVRBX0FERFJFU1MocG9ydCkJCV9N SVBJX1BPUlQocG9ydCwgX01JUElBX0RBVEFfQUREUkVTUywgXAo+ICsJCQkJCV9NSVBJQ19EQVRB X0FERFJFU1MpCj4gICAjZGVmaW5lICBEQVRBX01FTV9BRERSRVNTX1NISUZUCQkJCTUKPiAgICNk ZWZpbmUgIERBVEFfTUVNX0FERFJFU1NfTUFTSwkJCQkoMHg3ZmZmZmZmIDw8IDUpCj4gICAjZGVm aW5lICBEQVRBX1ZBTElECQkJCQkoMSA8PCAwKQo+ICAgCj4gICAjZGVmaW5lIF9NSVBJQV9EQVRB X0xFTkdUSAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjEwYykKPiAtI2RlZmluZSBf TUlQSUJfREFUQV9MRU5HVEgJCShkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgKyAweGI5MGMpCj4g LSNkZWZpbmUgTUlQSV9EQVRBX0xFTkdUSCh0YykJCV9UUkFOU0NPREVSKHRjLCBfTUlQSUFfREFU QV9MRU5HVEgsIFwKPiAtCQkJCQlfTUlQSUJfREFUQV9MRU5HVEgpCj4gKyNkZWZpbmUgX01JUElD X0RBVEFfTEVOR1RICQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiOTBjKQo+ICsjZGVm aW5lIE1JUElfREFUQV9MRU5HVEgocG9ydCkJCV9NSVBJX1BPUlQocG9ydCwgX01JUElBX0RBVEFf TEVOR1RILCBcCj4gKwkJCQkJX01JUElDX0RBVEFfTEVOR1RIKQo+ICAgI2RlZmluZSAgREFUQV9M RU5HVEhfU0hJRlQJCQkJMAo+ICAgI2RlZmluZSAgREFUQV9MRU5HVEhfTUFTSwkJCQkoMHhmZmZm ZiA8PCAwKQo+ICAgCj4gICAjZGVmaW5lIF9NSVBJQV9DT01NQU5EX0FERFJFU1MJCShkZXZfcHJp di0+bWlwaV9tbWlvX2Jhc2UgKyAweGIxMTApCj4gLSNkZWZpbmUgX01JUElCX0NPTU1BTkRfQURE UkVTUwkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjkxMCkKPiAtI2RlZmluZSBNSVBJ X0NPTU1BTkRfQUREUkVTUyh0YykJX1RSQU5TQ09ERVIodGMsIFwKPiAtCQkJCV9NSVBJQV9DT01N QU5EX0FERFJFU1MsIF9NSVBJQl9DT01NQU5EX0FERFJFU1MpCj4gKyNkZWZpbmUgX01JUElDX0NP TU1BTkRfQUREUkVTUwkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjkxMCkKPiArI2Rl ZmluZSBNSVBJX0NPTU1BTkRfQUREUkVTUyhwb3J0KQlfTUlQSV9QT1JUKHBvcnQsIFwKPiArCQkJ CV9NSVBJQV9DT01NQU5EX0FERFJFU1MsIF9NSVBJQ19DT01NQU5EX0FERFJFU1MpCj4gICAjZGVm aW5lICBDT01NQU5EX01FTV9BRERSRVNTX1NISUZUCQkJNQo+ICAgI2RlZmluZSAgQ09NTUFORF9N RU1fQUREUkVTU19NQVNLCQkJKDB4N2ZmZmZmZiA8PCA1KQo+ICAgI2RlZmluZSAgQVVUT19QV0df RU5BQkxFCQkJCSgxIDw8IDIpCj4gQEAgLTcwNTMsMjIgKzcwNTYsMjIgQEAgZW51bSBwdW5pdF9w b3dlcl93ZWxsIHsKPiAgICNkZWZpbmUgIENPTU1BTkRfVkFMSUQJCQkJCSgxIDw8IDApCj4gICAK PiAgICNkZWZpbmUgX01JUElBX0NPTU1BTkRfTEVOR1RICQkoZGV2X3ByaXYtPm1pcGlfbW1pb19i YXNlICsgMHhiMTE0KQo+IC0jZGVmaW5lIF9NSVBJQl9DT01NQU5EX0xFTkdUSAkJKGRldl9wcml2 LT5taXBpX21taW9fYmFzZSArIDB4YjkxNCkKPiAtI2RlZmluZSBNSVBJX0NPTU1BTkRfTEVOR1RI KHRjKQlfVFJBTlNDT0RFUih0YywgX01JUElBX0NPTU1BTkRfTEVOR1RILCBcCj4gLQkJCQkJX01J UElCX0NPTU1BTkRfTEVOR1RIKQo+ICsjZGVmaW5lIF9NSVBJQ19DT01NQU5EX0xFTkdUSAkJKGRl dl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjkxNCkKPiArI2RlZmluZSBNSVBJX0NPTU1BTkRf TEVOR1RIKHBvcnQpCV9NSVBJX1BPUlQocG9ydCwgX01JUElBX0NPTU1BTkRfTEVOR1RILCBcCj4g KwkJCQkJX01JUElDX0NPTU1BTkRfTEVOR1RIKQo+ICAgI2RlZmluZSAgQ09NTUFORF9MRU5HVEhf U0hJRlQobikJCQkoOCAqIChuKSkgLyogbjogMC4uLjMgKi8KPiAgICNkZWZpbmUgIENPTU1BTkRf TEVOR1RIX01BU0sobikJCQkJKDB4ZmYgPDwgKDggKiAobikpKQo+ICAgCj4gICAjZGVmaW5lIF9N SVBJQV9SRUFEX0RBVEFfUkVUVVJOMAkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMTE4 KQo+IC0jZGVmaW5lIF9NSVBJQl9SRUFEX0RBVEFfUkVUVVJOMAkoZGV2X3ByaXYtPm1pcGlfbW1p b19iYXNlICsgMHhiOTE4KQo+IC0jZGVmaW5lIE1JUElfUkVBRF9EQVRBX1JFVFVSTih0Yywgbikg XAo+IC0JKF9UUkFOU0NPREVSKHRjLCBfTUlQSUFfUkVBRF9EQVRBX1JFVFVSTjAsIF9NSVBJQl9S RUFEX0RBVEFfUkVUVVJOMCkgXAo+ICsjZGVmaW5lIF9NSVBJQ19SRUFEX0RBVEFfUkVUVVJOMAko ZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiOTE4KQo+ICsjZGVmaW5lIE1JUElfUkVBRF9E QVRBX1JFVFVSTihwb3J0LCBuKSBcCj4gKwkoX01JUElfUE9SVChwb3J0LCBfTUlQSUFfUkVBRF9E QVRBX1JFVFVSTjAsIF9NSVBJQ19SRUFEX0RBVEFfUkVUVVJOMCkgXAo+ICAgCQkJCQkrIDQgKiAo bikpIC8qIG46IDAuLi43ICovCj4gICAKPiAgICNkZWZpbmUgX01JUElBX1JFQURfREFUQV9WQUxJ RAkJKGRldl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4YjEzOCkKPiAtI2RlZmluZSBfTUlQSUJf UkVBRF9EQVRBX1ZBTElECQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiOTM4KQo+IC0j ZGVmaW5lIE1JUElfUkVBRF9EQVRBX1ZBTElEKHRjKQlfVFJBTlNDT0RFUih0YywgXAo+IC0JCQkJ X01JUElBX1JFQURfREFUQV9WQUxJRCwgX01JUElCX1JFQURfREFUQV9WQUxJRCkKPiArI2RlZmlu ZSBfTUlQSUNfUkVBRF9EQVRBX1ZBTElECQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhi OTM4KQo+ICsjZGVmaW5lIE1JUElfUkVBRF9EQVRBX1ZBTElEKHBvcnQpCV9NSVBJX1BPUlQocG9y dCwgXAo+ICsJCQkJX01JUElBX1JFQURfREFUQV9WQUxJRCwgX01JUElDX1JFQURfREFUQV9WQUxJ RCkKPiAgICNkZWZpbmUgIFJFQURfREFUQV9WQUxJRChuKQkJCQkoMSA8PCAobikpCj4gICAKPiAg IC8qIEZvciBVTVMgb25seSAoZGVwcmVjYXRlZCk6ICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNp LmMKPiBpbmRleCAwYjE4NDA3OWRlMTQuLjM1ODQyYTY2ODdkOCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RzaS5jCj4gQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lf ZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZf cHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiAtCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsK PiArCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZHNpX3BpcGVfdG9fcG9ydChpbnRlbF9jcnRjLT5w aXBlKTsKPiAgIAl1MzIgdmFsOwo+ICAgCj4gICAJRFJNX0RFQlVHX0tNUygiXG4iKTsKPiBAQCAt MTIwLDE3ICsxMjAsMTcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2RldmljZV9yZWFkeShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIAkvKiBiYW5kZ2FwIHJlc2V0IGlzIG5lZWRl ZCBhZnRlciBldmVyeXRpbWUgd2UgZG8gcG93ZXIgZ2F0ZSAqLwo+ICAgCWJhbmRfZ2FwX3Jlc2V0 KGRldl9wcml2KTsKPiAgIAo+IC0JSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShwaXBlKSwg VUxQU19TVEFURV9FTlRFUik7Cj4gKwlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQp LCBVTFBTX1NUQVRFX0VOVEVSKTsKPiAgIAl1c2xlZXBfcmFuZ2UoMjUwMCwgMzAwMCk7Cj4gICAK PiAtCXZhbCA9IEk5MTVfUkVBRChNSVBJX1BPUlRfQ1RSTChwaXBlKSk7Cj4gLQlJOTE1X1dSSVRF KE1JUElfUE9SVF9DVFJMKHBpcGUpLCB2YWwgfCBMUF9PVVRQVVRfSE9MRCk7Cj4gKwl2YWwgPSBJ OTE1X1JFQUQoTUlQSV9QT1JUX0NUUkwocG9ydCkpOwo+ICsJSTkxNV9XUklURShNSVBJX1BPUlRf Q1RSTChwb3J0KSwgdmFsIHwgTFBfT1VUUFVUX0hPTEQpOwo+ICAgCXVzbGVlcF9yYW5nZSgxMDAw LCAxNTAwKTsKPiAgIAo+IC0JSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShwaXBlKSwgVUxQ U19TVEFURV9FWElUKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCksIFVM UFNfU1RBVEVfRVhJVCk7Cj4gICAJdXNsZWVwX3JhbmdlKDI1MDAsIDMwMDApOwo+ICAgCj4gLQlJ OTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBpcGUpLCBERVZJQ0VfUkVBRFkpOwo+ICsJSTkx NV9XUklURShNSVBJX0RFVklDRV9SRUFEWShwb3J0KSwgREVWSUNFX1JFQURZKTsKPiAgIAl1c2xl ZXBfcmFuZ2UoMjUwMCwgMzAwMCk7Cj4gICB9Cj4gICAKPiBAQCAtMTQwLDEzICsxNDAsMTMgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHNpX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhl bmNvZGVyLT5iYXNlLmNydGMpOwo+ICAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVu Y190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+IC0JaW50IHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwo+ICsJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kc2lfcGlwZV90b19wb3J0KGludGVs X2NydGMtPnBpcGUpOwo+ICAgCXUzMiB0ZW1wOwo+ICAgCj4gICAJRFJNX0RFQlVHX0tNUygiXG4i KTsKPiAgIAo+ICAgCWlmIChpc19jbWRfbW9kZShpbnRlbF9kc2kpKQo+IC0JCUk5MTVfV1JJVEUo TUlQSV9NQVhfUkVUVVJOX1BLVF9TSVpFKHBpcGUpLCA4ICogNCk7Cj4gKwkJSTkxNV9XUklURShN SVBJX01BWF9SRVRVUk5fUEtUX1NJWkUocG9ydCksIDggKiA0KTsKPiAgIAllbHNlIHsKPiAgIAkJ bXNsZWVwKDIwKTsgLyogWFhYICovCj4gICAJCWRwaV9zZW5kX2NtZChpbnRlbF9kc2ksIFRVUk5f T04sIERQSV9MUF9NT0RFX0VOKTsKPiBAQCAtMTU4LDEwICsxNTgsMTAgQEAgc3RhdGljIHZvaWQg aW50ZWxfZHNpX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIAkJd2Fp dF9mb3JfZHNpX2ZpZm9fZW1wdHkoaW50ZWxfZHNpKTsKPiAgIAo+ICAgCQkvKiBhc3NlcnQgaXBf dGdfZW5hYmxlIHNpZ25hbCAqLwo+IC0JCXRlbXAgPSBJOTE1X1JFQUQoTUlQSV9QT1JUX0NUUkwo cGlwZSkpICYgfkxBTkVfQ09ORklHVVJBVElPTl9NQVNLOwo+ICsJCXRlbXAgPSBJOTE1X1JFQUQo TUlQSV9QT1JUX0NUUkwocG9ydCkpICYgfkxBTkVfQ09ORklHVVJBVElPTl9NQVNLOwo+ICAgCQl0 ZW1wID0gdGVtcCB8IGludGVsX2RzaS0+cG9ydF9iaXRzOwo+IC0JCUk5MTVfV1JJVEUoTUlQSV9Q T1JUX0NUUkwocGlwZSksIHRlbXAgfCBEUElfRU5BQkxFKTsKPiAtCQlQT1NUSU5HX1JFQUQoTUlQ SV9QT1JUX0NUUkwocGlwZSkpOwo+ICsJCUk5MTVfV1JJVEUoTUlQSV9QT1JUX0NUUkwocG9ydCks IHRlbXAgfCBEUElfRU5BQkxFKTsKPiArCQlQT1NUSU5HX1JFQUQoTUlQSV9QT1JUX0NUUkwocG9y dCkpOwo+ICAgCX0KPiAgIH0KPiAgIAo+IEBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZHNpX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFz ZS5jcnRjKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxf ZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiAtCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAr CWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZHNpX3BpcGVfdG9fcG9ydChpbnRlbF9jcnRjLT5waXBl KTsKPiAgIAl1MzIgdGVtcDsKPiAgIAo+ICAgCURSTV9ERUJVR19LTVMoIlxuIik7Cj4gQEAgLTI0 NiwyOSArMjQ2LDI5IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9kaXNhYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQo+ICAgCQl3YWl0X2Zvcl9kc2lfZmlmb19lbXB0eShpbnRlbF9k c2kpOwo+ICAgCj4gICAJCS8qIGRlLWFzc2VydCBpcF90Z19lbmFibGUgc2lnbmFsICovCj4gLQkJ dGVtcCA9IEk5MTVfUkVBRChNSVBJX1BPUlRfQ1RSTChwaXBlKSk7Cj4gLQkJSTkxNV9XUklURShN SVBJX1BPUlRfQ1RSTChwaXBlKSwgdGVtcCAmIH5EUElfRU5BQkxFKTsKPiAtCQlQT1NUSU5HX1JF QUQoTUlQSV9QT1JUX0NUUkwocGlwZSkpOwo+ICsJCXRlbXAgPSBJOTE1X1JFQUQoTUlQSV9QT1JU X0NUUkwocG9ydCkpOwo+ICsJCUk5MTVfV1JJVEUoTUlQSV9QT1JUX0NUUkwocG9ydCksIHRlbXAg JiB+RFBJX0VOQUJMRSk7Cj4gKwkJUE9TVElOR19SRUFEKE1JUElfUE9SVF9DVFJMKHBvcnQpKTsK PiAgIAo+ICAgCQltc2xlZXAoMik7Cj4gICAJfQo+ICAgCj4gICAJLyogUGFuZWwgY29tbWFuZHMg Y2FuIGJlIHNlbnQgd2hlbiBjbG9jayBpcyBpbiBMUDExICovCj4gLQlJOTE1X1dSSVRFKE1JUElf REVWSUNFX1JFQURZKHBpcGUpLCAweDApOwo+ICsJSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFE WShwb3J0KSwgMHgwKTsKPiAgIAo+IC0JdGVtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocGlwZSkp Owo+ICsJdGVtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpOwo+ICAgCXRlbXAgJj0gfkVT Q0FQRV9DTE9DS19ESVZJREVSX01BU0s7Cj4gLQlJOTE1X1dSSVRFKE1JUElfQ1RSTChwaXBlKSwg dGVtcCB8Cj4gKwlJOTE1X1dSSVRFKE1JUElfQ1RSTChwb3J0KSwgdGVtcCB8Cj4gICAJCSAgIGlu dGVsX2RzaS0+ZXNjYXBlX2Nsa19kaXYgPDwKPiAgIAkJICAgRVNDQVBFX0NMT0NLX0RJVklERVJf U0hJRlQpOwo+ICAgCj4gLQlJOTE1X1dSSVRFKE1JUElfRU9UX0RJU0FCTEUocGlwZSksIENMT0NL U1RPUCk7Cj4gKwlJOTE1X1dSSVRFKE1JUElfRU9UX0RJU0FCTEUocG9ydCksIENMT0NLU1RPUCk7 Cj4gICAKPiAtCXRlbXAgPSBJOTE1X1JFQUQoTUlQSV9EU0lfRlVOQ19QUkcocGlwZSkpOwo+ICsJ dGVtcCA9IEk5MTVfUkVBRChNSVBJX0RTSV9GVU5DX1BSRyhwb3J0KSk7Cj4gICAJdGVtcCAmPSB+ VklEX01PREVfRk9STUFUX01BU0s7Cj4gLQlJOTE1X1dSSVRFKE1JUElfRFNJX0ZVTkNfUFJHKHBp cGUpLCB0ZW1wKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9EU0lfRlVOQ19QUkcocG9ydCksIHRlbXAp Owo+ICAgCj4gLQlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBpcGUpLCAweDEpOwo+ICsJ STkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShwb3J0KSwgMHgxKTsKPiAgIAo+ICAgCS8qIGlm IGRpc2FibGUgcGFja2V0cyBhcmUgc2VudCBiZWZvcmUgc2VuZGluZyBzaHV0ZG93biBwYWNrZXQg dGhlbiBpbgo+ICAgCSAqIHNvbWUgbmV4dCBlbmFibGUgc2VxdWVuY2Ugc2VuZCB0dXJuIG9uIHBh Y2tldCBlcnJvciBpcyBvYnNlcnZlZCAqLwo+IEBAIC0yODIsMjkgKzI4MiwyOSBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVu Y29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiAtCWludCBwaXBl ID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiArCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZHNpX3BpcGVf dG9fcG9ydChpbnRlbF9jcnRjLT5waXBlKTsKPiAgIAl1MzIgdmFsOwo+ICAgCj4gICAJRFJNX0RF QlVHX0tNUygiXG4iKTsKPiAgIAo+IC0JSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShwaXBl KSwgREVWSUNFX1JFQURZIHwgVUxQU19TVEFURV9FTlRFUik7Cj4gKwlJOTE1X1dSSVRFKE1JUElf REVWSUNFX1JFQURZKHBvcnQpLCBERVZJQ0VfUkVBRFkgfCBVTFBTX1NUQVRFX0VOVEVSKTsKPiAg IAl1c2xlZXBfcmFuZ2UoMjAwMCwgMjUwMCk7Cj4gICAKPiAtCUk5MTVfV1JJVEUoTUlQSV9ERVZJ Q0VfUkVBRFkocGlwZSksIERFVklDRV9SRUFEWSB8IFVMUFNfU1RBVEVfRVhJVCk7Cj4gKwlJOTE1 X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQpLCBERVZJQ0VfUkVBRFkgfCBVTFBTX1NUQVRF X0VYSVQpOwo+ICAgCXVzbGVlcF9yYW5nZSgyMDAwLCAyNTAwKTsKPiAgIAo+IC0JSTkxNV9XUklU RShNSVBJX0RFVklDRV9SRUFEWShwaXBlKSwgREVWSUNFX1JFQURZIHwgVUxQU19TVEFURV9FTlRF Uik7Cj4gKwlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQpLCBERVZJQ0VfUkVBRFkg fCBVTFBTX1NUQVRFX0VOVEVSKTsKPiAgIAl1c2xlZXBfcmFuZ2UoMjAwMCwgMjUwMCk7Cj4gICAK PiAtCWlmICh3YWl0X2ZvcigoKEk5MTVfUkVBRChNSVBJX1BPUlRfQ1RSTChwaXBlKSkgJiBBRkVf TEFUQ0hPVVQpCj4gKwlpZiAod2FpdF9mb3IoKChJOTE1X1JFQUQoTUlQSV9QT1JUX0NUUkwocG9y dCkpICYgQUZFX0xBVENIT1VUKQo+ICAgCQkgICAgICA9PSAweDAwMDAwKSwgMzApKQo+ICAgCQlE Uk1fRVJST1IoIkRTSSBMUCBub3QgZ29pbmcgTG93XG4iKTsKPiAgIAo+IC0JdmFsID0gSTkxNV9S RUFEKE1JUElfUE9SVF9DVFJMKHBpcGUpKTsKPiAtCUk5MTVfV1JJVEUoTUlQSV9QT1JUX0NUUkwo cGlwZSksIHZhbCAmIH5MUF9PVVRQVVRfSE9MRCk7Cj4gKwl2YWwgPSBJOTE1X1JFQUQoTUlQSV9Q T1JUX0NUUkwocG9ydCkpOwo+ICsJSTkxNV9XUklURShNSVBJX1BPUlRfQ1RSTChwb3J0KSwgdmFs ICYgfkxQX09VVFBVVF9IT0xEKTsKPiAgIAl1c2xlZXBfcmFuZ2UoMTAwMCwgMTUwMCk7Cj4gICAK PiAtCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFkocGlwZSksIDB4MDApOwo+ICsJSTkxNV9X UklURShNSVBJX0RFVklDRV9SRUFEWShwb3J0KSwgMHgwMCk7Cj4gICAJdXNsZWVwX3JhbmdlKDIw MDAsIDI1MDApOwo+ICAgCj4gICAJdmx2X2Rpc2FibGVfZHNpX3BsbChlbmNvZGVyKTsKPiBAQCAt MzM4LDggKzMzOCw4IEBAIHN0YXRpYyBib29sIGludGVsX2RzaV9nZXRfaHdfc3RhdGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+ICAgCWVudW0g aW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+IC0JdTMyIHBvcnQsIGZ1 bmM7Cj4gLQllbnVtIHBpcGUgcDsKPiArCXUzMiBwb3J0X2N0bCwgZnVuYzsKPiArCWVudW0gcG9y dCBwb3J0Owo+ICAgCj4gICAJRFJNX0RFQlVHX0tNUygiXG4iKTsKPiAgIAo+IEBAIC0zNDgsMTMg KzM0OCwxMyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQlyZXR1cm4gZmFsc2U7Cj4gICAKPiAgIAkvKiBYWFg6 IHRoaXMgb25seSB3b3JrcyBmb3Igb25lIERTSSBvdXRwdXQgKi8KPiAtCWZvciAocCA9IFBJUEVf QTsgcCA8PSBQSVBFX0I7IHArKykgewo+IC0JCXBvcnQgPSBJOTE1X1JFQUQoTUlQSV9QT1JUX0NU UkwocCkpOwo+IC0JCWZ1bmMgPSBJOTE1X1JFQUQoTUlQSV9EU0lfRlVOQ19QUkcocCkpOwo+ICsJ Zm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgKDEgPDwgUE9SVF9BKSB8ICgxIDw8IFBPUlRfQykpIHsK PiArCQlwb3J0X2N0bCA9IEk5MTVfUkVBRChNSVBJX1BPUlRfQ1RSTChwb3J0KSk7Cj4gKwkJZnVu YyA9IEk5MTVfUkVBRChNSVBJX0RTSV9GVU5DX1BSRyhwb3J0KSk7Cj4gICAKPiAtCQlpZiAoKHBv cnQgJiBEUElfRU5BQkxFKSB8fCAoZnVuYyAmIENNRF9NT0RFX0RBVEFfV0lEVEhfTUFTSykpIHsK PiAtCQkJaWYgKEk5MTVfUkVBRChNSVBJX0RFVklDRV9SRUFEWShwKSkgJiBERVZJQ0VfUkVBRFkp IHsKPiAtCQkJCSpwaXBlID0gcDsKPiArCQlpZiAoKHBvcnRfY3RsICYgRFBJX0VOQUJMRSkgfHwg KGZ1bmMgJiBDTURfTU9ERV9EQVRBX1dJRFRIX01BU0spKSB7Cj4gKwkJCWlmIChJOTE1X1JFQUQo TUlQSV9ERVZJQ0VfUkVBRFkocG9ydCkpICYgREVWSUNFX1JFQURZKSB7Cj4gKwkJCQkqcGlwZSA9 IHBvcnQgPT0gUE9SVF9BID8gUElQRV9BIDogUElQRV9DOwo+ICAgCQkJCXJldHVybiB0cnVlOwo+ ICAgCQkJfQo+ICAgCQl9Cj4gQEAgLTQzNyw3ICs0MzcsNyBAQCBzdGF0aWMgdm9pZCBzZXRfZHNp X3RpbWluZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+ICAgCXN0 cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4g LQlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVs X2RzaV9waXBlX3RvX3BvcnQoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gICAJdW5zaWduZWQgaW50IGJw cCA9IGludGVsX2NydGMtPmNvbmZpZy5waXBlX2JwcDsKPiAgIAl1bnNpZ25lZCBpbnQgbGFuZV9j b3VudCA9IGludGVsX2RzaS0+bGFuZV9jb3VudDsKPiAgIAo+IEBAIC00NjAsMTggKzQ2MCwxOCBA QCBzdGF0aWMgdm9pZCBzZXRfZHNpX3RpbWluZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAo+ICAgCQkJICAgIGludGVsX2RzaS0+YnVyc3RfbW9kZV9yYXRpbyk7Cj4gICAJaGJwID0gdHhi eXRlY2xraHMoaGJwLCBicHAsIGxhbmVfY291bnQsIGludGVsX2RzaS0+YnVyc3RfbW9kZV9yYXRp byk7Cj4gICAKPiAtCUk5MTVfV1JJVEUoTUlQSV9IQUNUSVZFX0FSRUFfQ09VTlQocGlwZSksIGhh Y3RpdmUpOwo+IC0JSTkxNV9XUklURShNSVBJX0hGUF9DT1VOVChwaXBlKSwgaGZwKTsKPiArCUk5 MTVfV1JJVEUoTUlQSV9IQUNUSVZFX0FSRUFfQ09VTlQocG9ydCksIGhhY3RpdmUpOwo+ICsJSTkx NV9XUklURShNSVBJX0hGUF9DT1VOVChwb3J0KSwgaGZwKTsKPiAgIAo+ICAgCS8qIG1lYW5pbmdm dWwgZm9yIHZpZGVvIG1vZGUgbm9uLWJ1cnN0IHN5bmMgcHVsc2UgbW9kZSBvbmx5LCBjYW4gYmUg emVybwo+ICAgCSAqIGZvciBub24tYnVyc3Qgc3luYyBldmVudHMgYW5kIGJ1cnN0IG1vZGVzICov Cj4gLQlJOTE1X1dSSVRFKE1JUElfSFNZTkNfUEFERElOR19DT1VOVChwaXBlKSwgaHN5bmMpOwo+ IC0JSTkxNV9XUklURShNSVBJX0hCUF9DT1VOVChwaXBlKSwgaGJwKTsKPiArCUk5MTVfV1JJVEUo TUlQSV9IU1lOQ19QQURESU5HX0NPVU5UKHBvcnQpLCBoc3luYyk7Cj4gKwlJOTE1X1dSSVRFKE1J UElfSEJQX0NPVU5UKHBvcnQpLCBoYnApOwo+ICAgCj4gICAJLyogdmVydGljYWwgdmFsdWVzIGFy ZSBpbiB0ZXJtcyBvZiBsaW5lcyAqLwo+IC0JSTkxNV9XUklURShNSVBJX1ZGUF9DT1VOVChwaXBl KSwgdmZwKTsKPiAtCUk5MTVfV1JJVEUoTUlQSV9WU1lOQ19QQURESU5HX0NPVU5UKHBpcGUpLCB2 c3luYyk7Cj4gLQlJOTE1X1dSSVRFKE1JUElfVkJQX0NPVU5UKHBpcGUpLCB2YnApOwo+ICsJSTkx NV9XUklURShNSVBJX1ZGUF9DT1VOVChwb3J0KSwgdmZwKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9W U1lOQ19QQURESU5HX0NPVU5UKHBvcnQpLCB2c3luYyk7Cj4gKwlJOTE1X1dSSVRFKE1JUElfVkJQ X0NPVU5UKHBvcnQpLCB2YnApOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBpbnRlbF9kc2lf cHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiBAQCAtNDgzLDMw ICs0ODMsMzAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZXBhcmUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIpCj4gICAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0g ZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9Cj4gICAJCSZpbnRlbF9jcnRjLT5jb25maWcuYWRqdXN0ZWRfbW9kZTsK PiAtCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiArCWVudW0gcG9ydCBwb3J0ID0gaW50 ZWxfZHNpX3BpcGVfdG9fcG9ydChpbnRlbF9jcnRjLT5waXBlKTsKPiAgIAl1bnNpZ25lZCBpbnQg YnBwID0gaW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfYnBwOwo+ICAgCXUzMiB2YWwsIHRtcDsKPiAg IAo+IC0JRFJNX0RFQlVHX0tNUygicGlwZSAlY1xuIiwgcGlwZV9uYW1lKHBpcGUpKTsKPiArCURS TV9ERUJVR19LTVMoInBpcGUgJWNcbiIsIHBpcGVfbmFtZShpbnRlbF9jcnRjLT5waXBlKSk7Cj4g ICAKPiAgIAkvKiBlc2NhcGUgY2xvY2sgZGl2aWRlciwgMjBNSHosIHNoYXJlZCBmb3IgQSBhbmQg Qy4gZGV2aWNlIHJlYWR5IG11c3QgYmUKPiAgIAkgKiBvZmYgd2hlbiBkb2luZyB0aGlzISB0eGNs a2VzYz8gKi8KPiAtCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwoMCkpOwo+ICsJdG1wID0gSTkx NV9SRUFEKE1JUElfQ1RSTChQT1JUX0EpKTsKPiAgIAl0bXAgJj0gfkVTQ0FQRV9DTE9DS19ESVZJ REVSX01BU0s7Cj4gLQlJOTE1X1dSSVRFKE1JUElfQ1RSTCgwKSwgdG1wIHwgRVNDQVBFX0NMT0NL X0RJVklERVJfMSk7Cj4gKwlJOTE1X1dSSVRFKE1JUElfQ1RSTChQT1JUX0EpLCB0bXAgfCBFU0NB UEVfQ0xPQ0tfRElWSURFUl8xKTsKPiAgIAo+ICAgCS8qIHJlYWQgcmVxdWVzdCBwcmlvcml0eSBp cyBwZXIgcGlwZSAqLwo+IC0JdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RSTChwaXBlKSk7Cj4gKwl0 bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPiAgIAl0bXAgJj0gflJFQURfUkVRVUVT VF9QUklPUklUWV9NQVNLOwo+IC0JSTkxNV9XUklURShNSVBJX0NUUkwocGlwZSksIHRtcCB8IFJF QURfUkVRVUVTVF9QUklPUklUWV9ISUdIKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9DVFJMKHBvcnQp LCB0bXAgfCBSRUFEX1JFUVVFU1RfUFJJT1JJVFlfSElHSCk7Cj4gICAKPiAgIAkvKiBYWFg6IHdo eSBoZXJlLCB3aHkgbGlrZSB0aGlzPyBoYW5kbGluZyBpbiBpcnEgaGFuZGxlcj8hICovCj4gLQlJ OTE1X1dSSVRFKE1JUElfSU5UUl9TVEFUKHBpcGUpLCAweGZmZmZmZmZmKTsKPiAtCUk5MTVfV1JJ VEUoTUlQSV9JTlRSX0VOKHBpcGUpLCAweGZmZmZmZmZmKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9J TlRSX1NUQVQocG9ydCksIDB4ZmZmZmZmZmYpOwo+ICsJSTkxNV9XUklURShNSVBJX0lOVFJfRU4o cG9ydCksIDB4ZmZmZmZmZmYpOwo+ICAgCj4gLQlJOTE1X1dSSVRFKE1JUElfRFBIWV9QQVJBTShw aXBlKSwgaW50ZWxfZHNpLT5kcGh5X3JlZyk7Cj4gKwlJOTE1X1dSSVRFKE1JUElfRFBIWV9QQVJB TShwb3J0KSwgaW50ZWxfZHNpLT5kcGh5X3JlZyk7Cj4gICAKPiAtCUk5MTVfV1JJVEUoTUlQSV9E UElfUkVTT0xVVElPTihwaXBlKSwKPiArCUk5MTVfV1JJVEUoTUlQSV9EUElfUkVTT0xVVElPTihw b3J0KSwKPiAgIAkJICAgYWRqdXN0ZWRfbW9kZS0+dmRpc3BsYXkgPDwgVkVSVElDQUxfQUREUkVT U19TSElGVCB8Cj4gICAJCSAgIGFkanVzdGVkX21vZGUtPmhkaXNwbGF5IDw8IEhPUklaT05UQUxf QUREUkVTU19TSElGVCk7Cj4gICAKPiBAQCAtNTIyLDcgKzUyMiw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICAg CQkvKiBYWFg6IGNyb3NzLWNoZWNrIGJwcCB2cy4gcGl4ZWwgZm9ybWF0PyAqLwo+ICAgCQl2YWwg fD0gaW50ZWxfZHNpLT5waXhlbF9mb3JtYXQ7Cj4gICAJfQo+IC0JSTkxNV9XUklURShNSVBJX0RT SV9GVU5DX1BSRyhwaXBlKSwgdmFsKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9EU0lfRlVOQ19QUkco cG9ydCksIHZhbCk7Cj4gICAKPiAgIAkvKiB0aW1lb3V0cyBmb3IgcmVjb3ZlcnkuIG9uZSBmcmFt ZSBJSVVDLiBpZiBjb3VudGVyIGV4cGlyZXMsIEVPVCBhbmQKPiAgIAkgKiBzdG9wIHN0YXRlLiAq Lwo+IEBAIC01NDMsMjUgKzU0MywyNSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlcGFyZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgIAo+ICAgCWlmIChpc192aWRf bW9kZShpbnRlbF9kc2kpICYmCj4gICAJICAgIGludGVsX2RzaS0+dmlkZW9fbW9kZV9mb3JtYXQg PT0gVklERU9fTU9ERV9CVVJTVCkgewo+IC0JCUk5MTVfV1JJVEUoTUlQSV9IU19UWF9USU1FT1VU KHBpcGUpLAo+ICsJCUk5MTVfV1JJVEUoTUlQSV9IU19UWF9USU1FT1VUKHBvcnQpLAo+ICAgCQkJ ICAgdHhieXRlY2xraHMoYWRqdXN0ZWRfbW9kZS0+aHRvdGFsLCBicHAsCj4gICAJCQkJICAgICAg IGludGVsX2RzaS0+bGFuZV9jb3VudCwKPiAgIAkJCQkgICAgICAgaW50ZWxfZHNpLT5idXJzdF9t b2RlX3JhdGlvKSArIDEpOwo+ICAgCX0gZWxzZSB7Cj4gLQkJSTkxNV9XUklURShNSVBJX0hTX1RY X1RJTUVPVVQocGlwZSksCj4gKwkJSTkxNV9XUklURShNSVBJX0hTX1RYX1RJTUVPVVQocG9ydCks Cj4gICAJCQkgICB0eGJ5dGVjbGtocyhhZGp1c3RlZF9tb2RlLT52dG90YWwgKgo+ICAgCQkJCSAg ICAgICBhZGp1c3RlZF9tb2RlLT5odG90YWwsCj4gICAJCQkJICAgICAgIGJwcCwgaW50ZWxfZHNp LT5sYW5lX2NvdW50LAo+ICAgCQkJCSAgICAgICBpbnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0aW8p ICsgMSk7Cj4gICAJfQo+IC0JSTkxNV9XUklURShNSVBJX0xQX1JYX1RJTUVPVVQocGlwZSksIGlu dGVsX2RzaS0+bHBfcnhfdGltZW91dCk7Cj4gLQlJOTE1X1dSSVRFKE1JUElfVFVSTl9BUk9VTkRf VElNRU9VVChwaXBlKSwgaW50ZWxfZHNpLT50dXJuX2FybmRfdmFsKTsKPiAtCUk5MTVfV1JJVEUo TUlQSV9ERVZJQ0VfUkVTRVRfVElNRVIocGlwZSksIGludGVsX2RzaS0+cnN0X3RpbWVyX3ZhbCk7 Cj4gKwlJOTE1X1dSSVRFKE1JUElfTFBfUlhfVElNRU9VVChwb3J0KSwgaW50ZWxfZHNpLT5scF9y eF90aW1lb3V0KTsKPiArCUk5MTVfV1JJVEUoTUlQSV9UVVJOX0FST1VORF9USU1FT1VUKHBvcnQp LCBpbnRlbF9kc2ktPnR1cm5fYXJuZF92YWwpOwo+ICsJSTkxNV9XUklURShNSVBJX0RFVklDRV9S RVNFVF9USU1FUihwb3J0KSwgaW50ZWxfZHNpLT5yc3RfdGltZXJfdmFsKTsKPiAgIAo+ICAgCS8q IGRwaHkgc3R1ZmYgKi8KPiAgIAo+ICAgCS8qIGluIHRlcm1zIG9mIGxvdyBwb3dlciBjbG9jayAq Lwo+IC0JSTkxNV9XUklURShNSVBJX0lOSVRfQ09VTlQocGlwZSksIHR4Y2xrZXNjKGludGVsX2Rz aS0+ZXNjYXBlX2Nsa19kaXYsIDEwMCkpOwo+ICsJSTkxNV9XUklURShNSVBJX0lOSVRfQ09VTlQo cG9ydCksIHR4Y2xrZXNjKGludGVsX2RzaS0+ZXNjYXBlX2Nsa19kaXYsIDEwMCkpOwo+ICAgCj4g ICAJdmFsID0gMDsKPiAgIAlpZiAoaW50ZWxfZHNpLT5lb3RwX3BrdCA9PSAwKQo+IEBAIC01NzEs MTcgKzU3MSwxNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlcGFyZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgIAkJdmFsIHw9IENMT0NLU1RPUDsKPiAgIAo+ICAg CS8qIHJlY292ZXJ5IGRpc2FibGVzICovCj4gLQlJOTE1X1dSSVRFKE1JUElfRU9UX0RJU0FCTEUo cGlwZSksIHZhbCk7Cj4gKwlJOTE1X1dSSVRFKE1JUElfRU9UX0RJU0FCTEUocG9ydCksIHZhbCk7 Cj4gICAKPiAgIAkvKiBpbiB0ZXJtcyBvZiBsb3cgcG93ZXIgY2xvY2sgKi8KPiAtCUk5MTVfV1JJ VEUoTUlQSV9JTklUX0NPVU5UKHBpcGUpLCBpbnRlbF9kc2ktPmluaXRfY291bnQpOwo+ICsJSTkx NV9XUklURShNSVBJX0lOSVRfQ09VTlQocG9ydCksIGludGVsX2RzaS0+aW5pdF9jb3VudCk7Cj4g ICAKPiAgIAkvKiBpbiB0ZXJtcyBvZiB0eGJ5dGVjbGtocy4gYWN0dWFsIGhpZ2ggdG8gbG93IHN3 aXRjaCArCj4gICAJICogTUlQSV9TVE9QX1NUQVRFX1NUQUxMICogTUlQSV9MUF9CWVRFQ0xLLgo+ ICAgCSAqCj4gICAJICogWFhYOiB3cml0ZSBNSVBJX1NUT1BfU1RBVEVfU1RBTEw/Cj4gICAJICov Cj4gLQlJOTE1X1dSSVRFKE1JUElfSElHSF9MT1dfU1dJVENIX0NPVU5UKHBpcGUpLAo+ICsJSTkx NV9XUklURShNSVBJX0hJR0hfTE9XX1NXSVRDSF9DT1VOVChwb3J0KSwKPiAgIAkJICAgaW50ZWxf ZHNpLT5oc190b19scF9jb3VudCk7Cj4gICAKPiAgIAkvKiBYWFg6IGxvdyBwb3dlciBjbG9jayBl cXVpdmFsZW5jZSBpbiB0ZXJtcyBvZiBieXRlIGNsb2NrLiB0aGUgbnVtYmVyCj4gQEAgLTU4OSwx NiArNTg5LDE2IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICAgCSAqIGFuZCB0eGNsa2VzYy4gdHhjbGtlc2MgdGlt ZSAvIHR4Ynl0ZWNsayB0aW1lICogKDEwNSArCj4gICAJICogTUlQSV9TVE9QX1NUQVRFX1NUQUxM KSAvIDEwNS4/Pz8KPiAgIAkgKi8KPiAtCUk5MTVfV1JJVEUoTUlQSV9MUF9CWVRFQ0xLKHBpcGUp LCBpbnRlbF9kc2ktPmxwX2J5dGVfY2xrKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9MUF9CWVRFQ0xL KHBvcnQpLCBpbnRlbF9kc2ktPmxwX2J5dGVfY2xrKTsKPiAgIAo+ICAgCS8qIHRoZSBidyBlc3Nl bnRpYWwgZm9yIHRyYW5zbWl0dGluZyAxNiBsb25nIHBhY2tldHMgY29udGFpbmluZyAyNTIKPiAg IAkgKiBieXRlcyBtZWFudCBmb3IgZGNzIHdyaXRlIG1lbW9yeSBjb21tYW5kIGlzIHByb2dyYW1t ZWQgaW4gdGhpcwo+ICAgCSAqIHJlZ2lzdGVyIGluIHRlcm1zIG9mIGJ5dGUgY2xvY2tzLiBiYXNl ZCBvbiBkc2kgdHJhbnNmZXIgcmF0ZSBhbmQgdGhlCj4gICAJICogbnVtYmVyIG9mIGxhbmVzIGNv bmZpZ3VyZWQgdGhlIHRpbWUgdGFrZW4gdG8gdHJhbnNtaXQgMTYgbG9uZyBwYWNrZXRzCj4gICAJ ICogaW4gYSBkc2kgc3RyZWFtIHZhcmllcy4gKi8KPiAtCUk5MTVfV1JJVEUoTUlQSV9EQklfQldf Q1RSTChwaXBlKSwgaW50ZWxfZHNpLT5id190aW1lcik7Cj4gKwlJOTE1X1dSSVRFKE1JUElfREJJ X0JXX0NUUkwocG9ydCksIGludGVsX2RzaS0+YndfdGltZXIpOwo+ICAgCj4gLQlJOTE1X1dSSVRF KE1JUElfQ0xLX0xBTkVfU1dJVENIX1RJTUVfQ05UKHBpcGUpLAo+ICsJSTkxNV9XUklURShNSVBJ X0NMS19MQU5FX1NXSVRDSF9USU1FX0NOVChwb3J0KSwKPiAgIAkJICAgaW50ZWxfZHNpLT5jbGtf bHBfdG9faHNfY291bnQgPDwgTFBfSFNfU1NXX0NOVF9TSElGVCB8Cj4gICAJCSAgIGludGVsX2Rz aS0+Y2xrX2hzX3RvX2xwX2NvdW50IDw8IEhTX0xQX1BXUl9TV19DTlRfU0hJRlQpOwo+ICAgCj4g QEAgLTYwNiw3ICs2MDYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlcGFyZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgIAkJLyogU29tZSBwYW5lbHMgbWlnaHQg aGF2ZSByZXNvbHV0aW9uIHdoaWNoIGlzIG5vdCBhIG11bHRpcGxlIG9mCj4gICAJCSAqIDY0IGxp a2UgMTM2NiB4IDc2OC4gRW5hYmxlIFJBTkRPTSByZXNvbHV0aW9uIHN1cHBvcnQgZm9yIHN1Y2gK PiAgIAkJICogcGFuZWxzIGJ5IGRlZmF1bHQgKi8KPiAtCQlJOTE1X1dSSVRFKE1JUElfVklERU9f TU9ERV9GT1JNQVQocGlwZSksCj4gKwkJSTkxNV9XUklURShNSVBJX1ZJREVPX01PREVfRk9STUFU KHBvcnQpLAo+ICAgCQkJICAgaW50ZWxfZHNpLT52aWRlb19mcm10X2NmZ19iaXRzIHwKPiAgIAkJ CSAgIGludGVsX2RzaS0+dmlkZW9fbW9kZV9mb3JtYXQgfAo+ICAgCQkJICAgSVBfVEdfQ09ORklH IHwKPiBAQCAtNzQ4LDYgKzc0OCwxMiBAQCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gICAJaW50ZWxfY29ubmVjdG9yLT5nZXRfaHdfc3RhdGUgPSBpbnRlbF9j b25uZWN0b3JfZ2V0X2h3X3N0YXRlOwo+ICAgCWludGVsX2Nvbm5lY3Rvci0+dW5yZWdpc3RlciA9 IGludGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyOwo+ICAgCj4gKwkvKiBQaXBlIEEgbWFwcyB0byBN SVBJIERTSSBwb3J0IEEsIHBpcGUgQiBtYXBzIHRvIE1JUEkgRFNJIHBvcnQgQyAqLwo+ICsJaWYg KGRldl9wcml2LT52YnQuZHNpLnBvcnQgPT0gRFZPX1BPUlRfTUlQSUEpCj4gKwkJaW50ZWxfZW5j b2Rlci0+Y3J0Y19tYXNrID0gKDEgPDwgUElQRV9BKTsKPiArCWVsc2UgaWYgKGRldl9wcml2LT52 YnQuZHNpLnBvcnQgPT0gRFZPX1BPUlRfTUlQSUMpCj4gKwkJaW50ZWxfZW5jb2Rlci0+Y3J0Y19t YXNrID0gKDEgPDwgUElQRV9CKTsKPiArCj4gICAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo aW50ZWxfZHNpX2RldmljZXMpOyBpKyspIHsKPiAgIAkJZHNpID0gJmludGVsX2RzaV9kZXZpY2Vz W2ldOwo+ICAgCQlpbnRlbF9kc2ktPmRldiA9ICpkc2k7Cj4gQEAgLTc2Miw4ICs3NjgsNiBAQCB2 b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJfQo+ICAgCj4g ICAJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9EU0k7Cj4gLQlpbnRlbF9lbmNv ZGVyLT5jcnRjX21hc2sgPSAoMSA8PCAwKTsgLyogWFhYICovCj4gLQo+ICAgCWludGVsX2VuY29k ZXItPmNsb25lYWJsZSA9IDA7Cj4gICAJZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwgY29ubmVjdG9y LCAmaW50ZWxfZHNpX2Nvbm5lY3Rvcl9mdW5jcywKPiAgIAkJCSAgIERSTV9NT0RFX0NPTk5FQ1RP Ul9EU0kpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCj4gaW5kZXggNjU3ZWI1YzFiOWQ4Li45 N2E2ZjYyMTc3NGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNp LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+IEBAIC0xMjcsNiAr MTI3LDIyIEBAIHN0cnVjdCBpbnRlbF9kc2kgewo+ICAgCXUxNiBwYW5lbF9wd3JfY3ljbGVfZGVs YXk7Cj4gICB9Owo+ICAgCj4gKy8qIFhYWDogVHJhbnNpdGlvbmFsIGJlZm9yZSBkdWFsIHBvcnQg Y29uZmlndXJhdGlvbiAqLwo+ICtzdGF0aWMgaW5saW5lIGVudW0gcG9ydCBpbnRlbF9kc2lfcGlw ZV90b19wb3J0KGVudW0gcGlwZSBwaXBlKQo+ICt7Cj4gKwlpZiAocGlwZSA9PSBQSVBFX0EpCj4g KwkJcmV0dXJuIFBPUlRfQTsKPiArCWVsc2UgaWYgKHBpcGUgPT0gUElQRV9CKQo+ICsJCXJldHVy biBQT1JUX0M7Cj4gKwo+ICsJV0FSTigxLCAiRFNJIG9uIHBpcGUgJWMsIGFzc3VtaW5nIHBvcnQg Q1xuIiwgcGlwZV9uYW1lKHBpcGUpKTsKPiArCXJldHVybiBQT1JUX0M7Cj4gK30KPiArCj4gKyNk ZWZpbmUgZm9yX2VhY2hfZHNpX3BvcnQoX19wb3J0LCBfX3BvcnRzX21hc2spIFwKPiArCWZvciAo KF9fcG9ydCkgPSBQT1JUX0E7IChfX3BvcnQpIDwgSTkxNV9NQVhfUE9SVFM7IChfX3BvcnQpKysp CVwKPiArCQlpZiAoKF9fcG9ydHNfbWFzaykgJiAoMSA8PCAoX19wb3J0KSkpCj4gKwo+ICAgc3Rh dGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZHNpICplbmNfdG9faW50ZWxfZHNpKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAgIAlyZXR1cm4gY29udGFpbmVyX29mKGVuY29kZXIs IHN0cnVjdCBpbnRlbF9kc2ksIGJhc2UuYmFzZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaV9jbWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aV9jbWQuYwo+IGluZGV4IGY0NzY3ZmQyZWJlYi4uMDA0ZmE5MThjYTAzIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9jbWQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaV9jbWQuYwo+IEBAIC01NCwxNSArNTQsMTUgQEAgc3RhdGljIHZv aWQgcHJpbnRfc3RhdChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kpCj4gICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiAtCWVudW0gcGlwZSBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiArCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZHNpX3Bp cGVfdG9fcG9ydChpbnRlbF9jcnRjLT5waXBlKTsKPiAgIAl1MzIgdmFsOwo+ICAgCj4gLQl2YWwg PSBJOTE1X1JFQUQoTUlQSV9JTlRSX1NUQVQocGlwZSkpOwo+ICsJdmFsID0gSTkxNV9SRUFEKE1J UElfSU5UUl9TVEFUKHBvcnQpKTsKPiAgIAo+ICAgI2RlZmluZSBTVEFUX0JJVCh2YWwsIGJpdCkg KHZhbCkgJiAoYml0KSA/ICIgIiAjYml0IDogIiIKPiAtCURSTV9ERUJVR19LTVMoIk1JUElfSU5U Ul9TVEFUKCVkKSA9ICUwOHgiCj4gKwlEUk1fREVCVUdfS01TKCJNSVBJX0lOVFJfU1RBVCglYykg PSAlMDh4Igo+ICAgCQkgICAgICAiJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyIKPiAtCQkgICAgICAiXG4iLCBwaXBlLCB2YWws Cj4gKwkJICAgICAgIlxuIiwgcG9ydF9uYW1lKHBvcnQpLCB2YWwsCj4gICAJCSAgICAgIFNUQVRf QklUKHZhbCwgVEVBUklOR19FRkZFQ1QpLAo+ICAgCQkgICAgICBTVEFUX0JJVCh2YWwsIFNQTF9Q S1RfU0VOVF9JTlRFUlJVUFQpLAo+ICAgCQkgICAgICBTVEFUX0JJVCh2YWwsIEdFTl9SRUFEX0RB VEFfQVZBSUwpLAo+IEBAIC0xMTAsMTYgKzExMCwxNiBAQCB2b2lkIGRzaV9oc19tb2RlX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGJvb2wgZW5hYmxlKQo+ICAgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gLQllbnVtIHBpcGUg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RzaV9w aXBlX3RvX3BvcnQoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gICAJdTMyIHRlbXA7Cj4gICAJdTMyIG1h c2sgPSBEQklfRklGT19FTVBUWTsKPiAgIAo+IC0JaWYgKHdhaXRfZm9yKChJOTE1X1JFQUQoTUlQ SV9HRU5fRklGT19TVEFUKHBpcGUpKSAmIG1hc2spID09IG1hc2ssIDUwKSkKPiArCWlmICh3YWl0 X2ZvcigoSTkxNV9SRUFEKE1JUElfR0VOX0ZJRk9fU1RBVChwb3J0KSkgJiBtYXNrKSA9PSBtYXNr LCA1MCkpCj4gICAJCURSTV9FUlJPUigiVGltZW91dCB3YWl0aW5nIGZvciBEQkkgRklGTyBlbXB0 eVxuIik7Cj4gICAKPiAtCXRlbXAgPSBJOTE1X1JFQUQoTUlQSV9IU19MUF9EQklfRU5BQkxFKHBp cGUpKTsKPiArCXRlbXAgPSBJOTE1X1JFQUQoTUlQSV9IU19MUF9EQklfRU5BQkxFKHBvcnQpKTsK PiAgIAl0ZW1wICY9IERCSV9IU19MUF9NT0RFX01BU0s7Cj4gLQlJOTE1X1dSSVRFKE1JUElfSFNf TFBfREJJX0VOQUJMRShwaXBlKSwgZW5hYmxlID8gREJJX0hTX01PREUgOiBEQklfTFBfTU9ERSk7 Cj4gKwlJOTE1X1dSSVRFKE1JUElfSFNfTFBfREJJX0VOQUJMRShwb3J0KSwgZW5hYmxlID8gREJJ X0hTX01PREUgOiBEQklfTFBfTU9ERSk7Cj4gICAKPiAgIAlpbnRlbF9kc2ktPmhzID0gZW5hYmxl Owo+ICAgfQo+IEBAIC0xMzEsNyArMTMxLDcgQEAgc3RhdGljIGludCBkc2lfdmNfc2VuZF9zaG9y dChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGludCBjaGFubmVsLAo+ICAgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gLQllbnVtIHBpcGUg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RzaV9w aXBlX3RvX3BvcnQoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gICAJdTMyIGN0cmxfcmVnOwo+ICAgCXUz MiBjdHJsOwo+ICAgCXUzMiBtYXNrOwo+IEBAIC0xNDAsMTQgKzE0MCwxNCBAQCBzdGF0aWMgaW50 IGRzaV92Y19zZW5kX3Nob3J0KHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgaW50IGNoYW5u ZWwsCj4gICAJCSAgICAgIGNoYW5uZWwsIGRhdGFfdHlwZSwgZGF0YSk7Cj4gICAKPiAgIAlpZiAo aW50ZWxfZHNpLT5ocykgewo+IC0JCWN0cmxfcmVnID0gTUlQSV9IU19HRU5fQ1RSTChwaXBlKTsK PiArCQljdHJsX3JlZyA9IE1JUElfSFNfR0VOX0NUUkwocG9ydCk7Cj4gICAJCW1hc2sgPSBIU19D VFJMX0ZJRk9fRlVMTDsKPiAgIAl9IGVsc2Ugewo+IC0JCWN0cmxfcmVnID0gTUlQSV9MUF9HRU5f Q1RSTChwaXBlKTsKPiArCQljdHJsX3JlZyA9IE1JUElfTFBfR0VOX0NUUkwocG9ydCk7Cj4gICAJ CW1hc2sgPSBMUF9DVFJMX0ZJRk9fRlVMTDsKPiAgIAl9Cj4gICAKPiAtCWlmICh3YWl0X2Zvcigo STkxNV9SRUFEKE1JUElfR0VOX0ZJRk9fU1RBVChwaXBlKSkgJiBtYXNrKSA9PSAwLCA1MCkpIHsK PiArCWlmICh3YWl0X2ZvcigoSTkxNV9SRUFEKE1JUElfR0VOX0ZJRk9fU1RBVChwb3J0KSkgJiBt YXNrKSA9PSAwLCA1MCkpIHsKPiAgIAkJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIEhT L0xQIENUUkwgRklGTyAhZnVsbFxuIik7Cj4gICAJCXByaW50X3N0YXQoaW50ZWxfZHNpKTsKPiAg IAl9Cj4gQEAgLTE3Myw3ICsxNzMsNyBAQCBzdGF0aWMgaW50IGRzaV92Y19zZW5kX2xvbmcoc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAgIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+IC0JZW51bSBwaXBlIHBpcGUg PSBpbnRlbF9jcnRjLT5waXBlOwo+ICsJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kc2lfcGlwZV90 b19wb3J0KGludGVsX2NydGMtPnBpcGUpOwo+ICAgCXUzMiBkYXRhX3JlZzsKPiAgIAlpbnQgaSwg aiwgbjsKPiAgIAl1MzIgbWFzazsKPiBAQCAtMTgyLDE0ICsxODIsMTQgQEAgc3RhdGljIGludCBk c2lfdmNfc2VuZF9sb25nKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgaW50IGNoYW5uZWws Cj4gICAJCSAgICAgIGNoYW5uZWwsIGRhdGFfdHlwZSwgbGVuKTsKPiAgIAo+ICAgCWlmIChpbnRl bF9kc2ktPmhzKSB7Cj4gLQkJZGF0YV9yZWcgPSBNSVBJX0hTX0dFTl9EQVRBKHBpcGUpOwo+ICsJ CWRhdGFfcmVnID0gTUlQSV9IU19HRU5fREFUQShwb3J0KTsKPiAgIAkJbWFzayA9IEhTX0RBVEFf RklGT19GVUxMOwo+ICAgCX0gZWxzZSB7Cj4gLQkJZGF0YV9yZWcgPSBNSVBJX0xQX0dFTl9EQVRB KHBpcGUpOwo+ICsJCWRhdGFfcmVnID0gTUlQSV9MUF9HRU5fREFUQShwb3J0KTsKPiAgIAkJbWFz ayA9IExQX0RBVEFfRklGT19GVUxMOwo+ICAgCX0KPiAgIAo+IC0JaWYgKHdhaXRfZm9yKChJOTE1 X1JFQUQoTUlQSV9HRU5fRklGT19TVEFUKHBpcGUpKSAmIG1hc2spID09IDAsIDUwKSkKPiArCWlm ICh3YWl0X2ZvcigoSTkxNV9SRUFEKE1JUElfR0VOX0ZJRk9fU1RBVChwb3J0KSkgJiBtYXNrKSA9 PSAwLCA1MCkpCj4gICAJCURSTV9FUlJPUigiVGltZW91dCB3YWl0aW5nIGZvciBIUy9MUCBEQVRB IEZJRk8gIWZ1bGxcbiIpOwo+ICAgCj4gICAJZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSBuKSB7 Cj4gQEAgLTI5MiwxNCArMjkyLDE0IEBAIHN0YXRpYyBpbnQgZHNpX3JlYWRfZGF0YV9yZXR1cm4o c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlbmNvZGVyLT5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gLQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2Ny dGMtPnBpcGU7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RzaV9waXBlX3RvX3BvcnQoaW50 ZWxfY3J0Yy0+cGlwZSk7Cj4gICAJaW50IGksIGxlbiA9IDA7Cj4gICAJdTMyIGRhdGFfcmVnLCB2 YWw7Cj4gICAKPiAgIAlpZiAoaW50ZWxfZHNpLT5ocykgewo+IC0JCWRhdGFfcmVnID0gTUlQSV9I U19HRU5fREFUQShwaXBlKTsKPiArCQlkYXRhX3JlZyA9IE1JUElfSFNfR0VOX0RBVEEocG9ydCk7 Cj4gICAJfSBlbHNlIHsKPiAtCQlkYXRhX3JlZyA9IE1JUElfTFBfR0VOX0RBVEEocGlwZSk7Cj4g KwkJZGF0YV9yZWcgPSBNSVBJX0xQX0dFTl9EQVRBKHBvcnQpOwo+ICAgCX0KPiAgIAo+ICAgCXdo aWxlIChsZW4gPCBidWZsZW4pIHsKPiBAQCAtMzE4LDcgKzMxOCw3IEBAIGludCBkc2lfdmNfZGNz X3JlYWQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwgdTggZGNzX2Nt ZCwKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMp Owo+IC0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICsJZW51bSBwb3J0IHBv cnQgPSBpbnRlbF9kc2lfcGlwZV90b19wb3J0KGludGVsX2NydGMtPnBpcGUpOwo+ICAgCXUzMiBt YXNrOwo+ICAgCWludCByZXQ7Cj4gICAKPiBAQCAtMzI3LDE0ICszMjcsMTQgQEAgaW50IGRzaV92 Y19kY3NfcmVhZChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGludCBjaGFubmVsLCB1OCBk Y3NfY21kLAo+ICAgCSAqIGxvbmdlciB0aGFuIE1JUElfTUFYX1JFVFVSTl9QS1RfU0laRQo+ICAg CSAqLwo+ICAgCj4gLQlJOTE1X1dSSVRFKE1JUElfSU5UUl9TVEFUKHBpcGUpLCBHRU5fUkVBRF9E QVRBX0FWQUlMKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9JTlRSX1NUQVQocG9ydCksIEdFTl9SRUFE X0RBVEFfQVZBSUwpOwo+ICAgCj4gICAJcmV0ID0gZHNpX3ZjX2Rjc19zZW5kX3JlYWRfcmVxdWVz dChpbnRlbF9kc2ksIGNoYW5uZWwsIGRjc19jbWQpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVy biByZXQ7Cj4gICAKPiAgIAltYXNrID0gR0VOX1JFQURfREFUQV9BVkFJTDsKPiAtCWlmICh3YWl0 X2ZvcigoSTkxNV9SRUFEKE1JUElfSU5UUl9TVEFUKHBpcGUpKSAmIG1hc2spID09IG1hc2ssIDUw KSkKPiArCWlmICh3YWl0X2ZvcigoSTkxNV9SRUFEKE1JUElfSU5UUl9TVEFUKHBvcnQpKSAmIG1h c2spID09IG1hc2ssIDUwKSkKPiAgIAkJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIHJl YWQgZGF0YS5cbiIpOwo+ICAgCj4gICAJcmV0ID0gZHNpX3JlYWRfZGF0YV9yZXR1cm4oaW50ZWxf ZHNpLCBidWYsIGJ1Zmxlbik7Cj4gQEAgLTM1NCw3ICszNTQsNyBAQCBpbnQgZHNpX3ZjX2dlbmVy aWNfcmVhZChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGludCBjaGFubmVsLAo+ICAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gLQllbnVt IHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVs X2RzaV9waXBlX3RvX3BvcnQoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gICAJdTMyIG1hc2s7Cj4gICAJ aW50IHJldDsKPiAgIAo+IEBAIC0zNjMsNyArMzYzLDcgQEAgaW50IGRzaV92Y19nZW5lcmljX3Jl YWQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAgIAkgKiBsb25n ZXIgdGhhbiBNSVBJX01BWF9SRVRVUk5fUEtUX1NJWkUKPiAgIAkgKi8KPiAgIAo+IC0JSTkxNV9X UklURShNSVBJX0lOVFJfU1RBVChwaXBlKSwgR0VOX1JFQURfREFUQV9BVkFJTCk7Cj4gKwlJOTE1 X1dSSVRFKE1JUElfSU5UUl9TVEFUKHBvcnQpLCBHRU5fUkVBRF9EQVRBX0FWQUlMKTsKPiAgIAo+ ICAgCXJldCA9IGRzaV92Y19nZW5lcmljX3NlbmRfcmVhZF9yZXF1ZXN0KGludGVsX2RzaSwgY2hh bm5lbCwgcmVxZGF0YSwKPiAgIAkJCQkJICAgICAgIHJlcWxlbik7Cj4gQEAgLTM3MSw3ICszNzEs NyBAQCBpbnQgZHNpX3ZjX2dlbmVyaWNfcmVhZChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ks IGludCBjaGFubmVsLAo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCj4gICAJbWFzayA9IEdFTl9SRUFE X0RBVEFfQVZBSUw7Cj4gLQlpZiAod2FpdF9mb3IoKEk5MTVfUkVBRChNSVBJX0lOVFJfU1RBVChw aXBlKSkgJiBtYXNrKSA9PSBtYXNrLCA1MCkpCj4gKwlpZiAod2FpdF9mb3IoKEk5MTVfUkVBRChN SVBJX0lOVFJfU1RBVChwb3J0KSkgJiBtYXNrKSA9PSBtYXNrLCA1MCkpCj4gICAJCURSTV9FUlJP UigiVGltZW91dCB3YWl0aW5nIGZvciByZWFkIGRhdGEuXG4iKTsKPiAgIAo+ICAgCXJldCA9IGRz aV9yZWFkX2RhdGFfcmV0dXJuKGludGVsX2RzaSwgYnVmLCBidWZsZW4pOwo+IEBAIC0zOTUsNyAr Mzk1LDcgQEAgaW50IGRwaV9zZW5kX2NtZChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIHUz MiBjbWQsIGJvb2wgaHMpCj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRl djsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhl bmNvZGVyLT5jcnRjKTsKPiAtCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAr CWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZHNpX3BpcGVfdG9fcG9ydChpbnRlbF9jcnRjLT5waXBl KTsKPiAgIAl1MzIgbWFzazsKPiAgIAo+ICAgCS8qIFhYWDogcGlwZSwgaHMgKi8KPiBAQCAtNDA1 LDE2ICs0MDUsMTYgQEAgaW50IGRwaV9zZW5kX2NtZChzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2ksIHUzMiBjbWQsIGJvb2wgaHMpCj4gICAJCWNtZCB8PSBEUElfTFBfTU9ERTsKPiAgIAo+ICAg CS8qIGNsZWFyIGJpdCAqLwo+IC0JSTkxNV9XUklURShNSVBJX0lOVFJfU1RBVChwaXBlKSwgU1BM X1BLVF9TRU5UX0lOVEVSUlVQVCk7Cj4gKwlJOTE1X1dSSVRFKE1JUElfSU5UUl9TVEFUKHBvcnQp LCBTUExfUEtUX1NFTlRfSU5URVJSVVBUKTsKPiAgIAo+ICAgCS8qIFhYWDogb2xkIGNvZGUgc2tp cHMgd3JpdGUgaWYgY29udHJvbCB1bmNoYW5nZWQgKi8KPiAtCWlmIChjbWQgPT0gSTkxNV9SRUFE KE1JUElfRFBJX0NPTlRST0wocGlwZSkpKQo+ICsJaWYgKGNtZCA9PSBJOTE1X1JFQUQoTUlQSV9E UElfQ09OVFJPTChwb3J0KSkpCj4gICAJCURSTV9FUlJPUigiU2FtZSBzcGVjaWFsIHBhY2tldCAl MDJ4IHR3aWNlIGluIGEgcm93LlxuIiwgY21kKTsKPiAgIAo+IC0JSTkxNV9XUklURShNSVBJX0RQ SV9DT05UUk9MKHBpcGUpLCBjbWQpOwo+ICsJSTkxNV9XUklURShNSVBJX0RQSV9DT05UUk9MKHBv cnQpLCBjbWQpOwo+ICAgCj4gICAJbWFzayA9IFNQTF9QS1RfU0VOVF9JTlRFUlJVUFQ7Cj4gLQlp ZiAod2FpdF9mb3IoKEk5MTVfUkVBRChNSVBJX0lOVFJfU1RBVChwaXBlKSkgJiBtYXNrKSA9PSBt YXNrLCAxMDApKQo+ICsJaWYgKHdhaXRfZm9yKChJOTE1X1JFQUQoTUlQSV9JTlRSX1NUQVQocG9y dCkpICYgbWFzaykgPT0gbWFzaywgMTAwKSkKPiAgIAkJRFJNX0VSUk9SKCJWaWRlbyBtb2RlIGNv bW1hbmQgMHglMDh4IHNlbmQgZmFpbGVkLlxuIiwgY21kKTsKPiAgIAo+ICAgCXJldHVybiAwOwo+ IEBAIC00MjYsMTIgKzQyNiwxMiBAQCB2b2lkIHdhaXRfZm9yX2RzaV9maWZvX2VtcHR5KHN0cnVj dCBpbnRlbF9kc2kgKmludGVsX2RzaSkKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5j b2Rlci0+ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGVuY29kZXItPmNydGMpOwo+IC0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5w aXBlOwo+ICsJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kc2lfcGlwZV90b19wb3J0KGludGVsX2Ny dGMtPnBpcGUpOwo+ICAgCXUzMiBtYXNrOwo+ICAgCj4gICAJbWFzayA9IExQX0NUUkxfRklGT19F TVBUWSB8IEhTX0NUUkxfRklGT19FTVBUWSB8Cj4gICAJCUxQX0RBVEFfRklGT19FTVBUWSB8IEhT X0RBVEFfRklGT19FTVBUWTsKPiAgIAo+IC0JaWYgKHdhaXRfZm9yKChJOTE1X1JFQUQoTUlQSV9H RU5fRklGT19TVEFUKHBpcGUpKSAmIG1hc2spID09IG1hc2ssIDEwMCkpCj4gKwlpZiAod2FpdF9m b3IoKEk5MTVfUkVBRChNSVBJX0dFTl9GSUZPX1NUQVQocG9ydCkpICYgbWFzaykgPT0gbWFzaywg MTAwKSkKPiAgIAkJRFJNX0VSUk9SKCJEUEkgRklGT3MgYXJlIG5vdCBlbXB0eVxuIik7Cj4gICB9 CmNoZWNrcGF0Y2gucGwgaXMgdGhyb3dpbmcgZmV3IHdhcm5pbmdzIGFuZCBvbmUgZXJyb3Igd2hp Y2ggYXJlIG1haW5seSAKYmVjYXVzZSBvZiBsaW5lcyBtb3JlIHRoYW4gODAgY2hhcmFjdGVycy4g IFRoZSBwYXRjaCBpcyBvdGhlcndpc2UgCmxvb2tpbmcgZ29vZC4KCndpdGggcmVnYXJkcywKR2F1 cmF2Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==