From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [PATCH 9/9] drm/i915: take a reference to uncore in the engine and use it Date: Mon, 25 Mar 2019 14:49:40 -0700 Message-ID: <20190325214940.23632-10-daniele.ceraolospurio@intel.com> References: <20190325214940.23632-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 494106E714 for ; Mon, 25 Mar 2019 21:50:13 +0000 (UTC) In-Reply-To: <20190325214940.23632-1-daniele.ceraolospurio@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org QSBmZXcgYWR2YW50YWdlczoKCi0gUHJlcGFyZXMgdXMgZm9yIHRoZSBwbGFubmVkIHNwbGl0IG9m IGRpc3BsYXkgdW5jb3JlIGZyb20gR1QgdW5jb3JlCgotIEltcHJvdmVzIG91ciBlbmdpbmUtY2Vu dHJpYyB2aWV3IG9mIHRoZSB3b3JsZCBpbiB0aGUgZW5naW5lIGNvZGUKICBhbmQgYWxsb3dzIHVz IHRvIGF2b2lkIGp1bXBpbmcgYmFjayB0byBkZXZfcHJpdi4KCi0gQWxsb3dzIHVzIHRvIHdyYXAg YWNjZXNzZXMgdG8gZW5naW5lIHJlZ2lzdGVyIGluIG5pY2UgbWFjcm9zIHRoYXQKICBhdXRvbWF0 aWNhbGx5IHBpY2sgdGhlIHJpZ2h0IG1taW8gYmFzZS4KClNpZ25lZC1vZmYtYnk6IERhbmllbGUg Q2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+CkNjOiBQYXVs byBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5k bGVycy5jICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAg ICAgfCAgNDIgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAg ICB8ICAxNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuYyAgICAgICAgIHwg ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICB8IDExOSAr KysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5cGVz LmggfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMgICAgfCAg IDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgIHwgIDE5ICsr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggICAgICAgICAgfCAgMjIgKystLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgfCAxNDkgKysrKysrKysr Ky0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICAg fCAgNDUgKysrKystLQogMTIgZmlsZXMgY2hhbmdlZCwgMjEzIGluc2VydGlvbnMoKyksIDIxMSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaGFuZGxl cnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5kbGVycy5jCmluZGV4IGI1OTZjYjQy ZTI0ZS4uZGJjNzQ5NjE3OTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv aGFuZGxlcnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaGFuZGxlcnMuYwpAQCAt MTg0OCw3ICsxODQ4LDcgQEAgc3RhdGljIGludCBpbml0X2dlbmVyaWNfbW1pb19pbmZvKHN0cnVj dCBpbnRlbF9ndnQgKmd2dCkKIAlNTUlPX0RIKEdFTjdfU0NfSU5TVERPTkUsIERfQkRXX1BMVVMs IG1taW9fcmVhZF9mcm9tX2h3LCBOVUxMKTsKIAogCU1NSU9fR01fUkRSKF9NTUlPKDB4MjE0OCks IERfQUxMLCBOVUxMLCBOVUxMKTsKLQlNTUlPX0dNX1JEUihDQ0lELCBEX0FMTCwgTlVMTCwgTlVM TCk7CisJTU1JT19HTV9SRFIoQ0NJRChSRU5ERVJfUklOR19CQVNFKSwgRF9BTEwsIE5VTEwsIE5V TEwpOwogCU1NSU9fR01fUkRSKF9NTUlPKDB4MTIxOTgpLCBEX0FMTCwgTlVMTCwgTlVMTCk7CiAJ TU1JT19EKEdFTjdfQ1hUX1NJWkUsIERfQUxMKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwppbmRleCA0N2JmMDdhNTliNWUuLmJiMmMxNmM0MzllYSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKQEAgLTg4MCw3ICs4ODAsNyBAQCBzdGF0aWMgaW50IGk5MTVfaW50ZXJy dXB0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCQlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKIAkJCXNlcV9wcmludGYobSwKIAkJCQkgICAiR3Jh cGhpY3MgSW50ZXJydXB0IG1hc2sgKCVzKToJJTA4eFxuIiwKLQkJCQkgICBlbmdpbmUtPm5hbWUs IEk5MTVfUkVBRF9JTVIoZW5naW5lKSk7CisJCQkJICAgZW5naW5lLT5uYW1lLCBFTkdJTkVfUkVB RChlbmdpbmUsIFJJTkdfSU1SKSk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dw dV9lcnJvci5jCmluZGV4IGE5NTU3ZjkyNzU2Zi4uYjg4MDIxYTg3NjI2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTExMzYsNyArMTEzNiw3IEBAIHN0YXRpYyB2b2lk IGVycm9yX3JlY29yZF9lbmdpbmVfcmVnaXN0ZXJzKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJy b3IsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owog CiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewotCQllZS0+cmNfcHNtaSA9IEk5MTVf UkVBRChSSU5HX1BTTUlfQ1RMKGVuZ2luZS0+bW1pb19iYXNlKSk7CisJCWVlLT5yY19wc21pID0g RU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX1BTTUlfQ1RMKTsKIAkJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gOCkKIAkJCWVlLT5mYXVsdF9yZWcgPSBJOTE1X1JFQUQoR0VOOF9SSU5HX0ZBVUxU X1JFRyk7CiAJCWVsc2UKQEAgLTExNDQsMzIgKzExNDQsMzIgQEAgc3RhdGljIHZvaWQgZXJyb3Jf cmVjb3JkX2VuZ2luZV9yZWdpc3RlcnMoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvciwKIAl9 CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KSB7Ci0JCWVlLT5mYWRkciA9IEk5MTVf UkVBRChSSU5HX0RNQV9GQUREKGVuZ2luZS0+bW1pb19iYXNlKSk7Ci0JCWVlLT5pcGVpciA9IEk5 MTVfUkVBRChSSU5HX0lQRUlSKGVuZ2luZS0+bW1pb19iYXNlKSk7Ci0JCWVlLT5pcGVociA9IEk5 MTVfUkVBRChSSU5HX0lQRUhSKGVuZ2luZS0+bW1pb19iYXNlKSk7Ci0JCWVlLT5pbnN0cHMgPSBJ OTE1X1JFQUQoUklOR19JTlNUUFMoZW5naW5lLT5tbWlvX2Jhc2UpKTsKLQkJZWUtPmJiYWRkciA9 IEk5MTVfUkVBRChSSU5HX0JCQUREUihlbmdpbmUtPm1taW9fYmFzZSkpOworCQllZS0+ZmFkZHIg PSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfRE1BX0ZBREQpOworCQllZS0+aXBlaXIgPSBFTkdJ TkVfUkVBRChlbmdpbmUsIFJJTkdfSVBFSVIpOworCQllZS0+aXBlaHIgPSBFTkdJTkVfUkVBRChl bmdpbmUsIFJJTkdfSVBFSFIpOworCQllZS0+aW5zdHBzID0gRU5HSU5FX1JFQUQoZW5naW5lLCBS SU5HX0lOU1RQUyk7CisJCWVlLT5iYmFkZHIgPSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfQkJB RERSKTsKIAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkgewotCQkJZWUtPmZhZGRyIHw9 ICh1NjQpIEk5MTVfUkVBRChSSU5HX0RNQV9GQUREX1VEVyhlbmdpbmUtPm1taW9fYmFzZSkpIDw8 IDMyOwotCQkJZWUtPmJiYWRkciB8PSAodTY0KSBJOTE1X1JFQUQoUklOR19CQkFERFJfVURXKGVu Z2luZS0+bW1pb19iYXNlKSkgPDwgMzI7CisJCQllZS0+ZmFkZHIgfD0gKHU2NCkgRU5HSU5FX1JF QUQoZW5naW5lLCBSSU5HX0RNQV9GQUREX1VEVykgPDwgMzI7CisJCQllZS0+YmJhZGRyIHw9ICh1 NjQpIEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19CQkFERFJfVURXKSA8PCAzMjsKIAkJfQotCQll ZS0+YmJzdGF0ZSA9IEk5MTVfUkVBRChSSU5HX0JCU1RBVEUoZW5naW5lLT5tbWlvX2Jhc2UpKTsK KwkJZWUtPmJic3RhdGUgPSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfQkJTVEFURSk7CiAJfSBl bHNlIHsKLQkJZWUtPmZhZGRyID0gSTkxNV9SRUFEKERNQV9GQUREX0k4WFgpOwotCQllZS0+aXBl aXIgPSBJOTE1X1JFQUQoSVBFSVIpOwotCQllZS0+aXBlaHIgPSBJOTE1X1JFQUQoSVBFSFIpOwor CQllZS0+ZmFkZHIgPSBFTkdJTkVfUkVBRChlbmdpbmUsIERNQV9GQUREX0k4WFgpOworCQllZS0+ aXBlaXIgPSBFTkdJTkVfUkVBRChlbmdpbmUsIElQRUlSKTsKKwkJZWUtPmlwZWhyID0gRU5HSU5F X1JFQUQoZW5naW5lLCBJUEVIUik7CiAJfQogCiAJaW50ZWxfZW5naW5lX2dldF9pbnN0ZG9uZShl bmdpbmUsICZlZS0+aW5zdGRvbmUpOwogCi0JZWUtPmluc3RwbSA9IEk5MTVfUkVBRChSSU5HX0lO U1RQTShlbmdpbmUtPm1taW9fYmFzZSkpOworCWVlLT5pbnN0cG0gPSBFTkdJTkVfUkVBRChlbmdp bmUsIFJJTkdfSU5TVFBNKTsKIAllZS0+YWN0aGQgPSBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9o ZWFkKGVuZ2luZSk7Ci0JZWUtPnN0YXJ0ID0gSTkxNV9SRUFEX1NUQVJUKGVuZ2luZSk7Ci0JZWUt PmhlYWQgPSBJOTE1X1JFQURfSEVBRChlbmdpbmUpOwotCWVlLT50YWlsID0gSTkxNV9SRUFEX1RB SUwoZW5naW5lKTsKLQllZS0+Y3RsID0gSTkxNV9SRUFEX0NUTChlbmdpbmUpOworCWVlLT5zdGFy dCA9IEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19TVEFSVCk7CisJZWUtPmhlYWQgPSBFTkdJTkVf UkVBRChlbmdpbmUsIFJJTkdfSEVBRCk7CisJZWUtPnRhaWwgPSBFTkdJTkVfUkVBRChlbmdpbmUs IFJJTkdfVEFJTCk7CisJZWUtPmN0bCA9IEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19DVEwpOwog CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID4gMikKLQkJZWUtPm1vZGUgPSBJOTE1X1JFQURfTU9E RShlbmdpbmUpOworCQllZS0+bW9kZSA9IEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19NSV9NT0RF KTsKIAogCWlmICghSFdTX05FRURTX1BIWVNJQ0FMKGRldl9wcml2KSkgewogCQlpOTE1X3JlZ190 IG1taW87CkBAIC0xMjE0LDEwICsxMjE0LDEwIEBAIHN0YXRpYyB2b2lkIGVycm9yX3JlY29yZF9l bmdpbmVfcmVnaXN0ZXJzKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IsCiAKIAkJaWYgKElT X0dFTihkZXZfcHJpdiwgNikpCiAJCQllZS0+dm1faW5mby5wcF9kaXJfYmFzZSA9Ci0JCQkJSTkx NV9SRUFEKFJJTkdfUFBfRElSX0JBU0VfUkVBRChlbmdpbmUpKTsKKwkJCQlFTkdJTkVfUkVBRChl bmdpbmUsIFJJTkdfUFBfRElSX0JBU0VfUkVBRCk7CiAJCWVsc2UgaWYgKElTX0dFTihkZXZfcHJp diwgNykpCiAJCQllZS0+dm1faW5mby5wcF9kaXJfYmFzZSA9Ci0JCQkJSTkxNV9SRUFEKFJJTkdf UFBfRElSX0JBU0UoZW5naW5lKSk7CisJCQkJCUVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19QUF9E SVJfQkFTRSk7CiAJCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKIAkJCWZvciAo aSA9IDA7IGkgPCA0OyBpKyspIHsKIAkJCQllZS0+dm1faW5mby5wZHBbaV0gPQpAQCAtMTYwMSw3 ICsxNjAxLDcgQEAgc3RhdGljIHZvaWQgY2FwdHVyZV9yZWdfc3RhdGUoc3RydWN0IGk5MTVfZ3B1 X3N0YXRlICplcnJvcikKIAl9CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA1KQotCQll cnJvci0+Y2NpZCA9IEk5MTVfUkVBRChDQ0lEKTsKKwkJZXJyb3ItPmNjaWQgPSBJOTE1X1JFQUQo Q0NJRChSRU5ERVJfUklOR19CQVNFKSk7CiAKIAkvKiAzOiBGZWF0dXJlIHNwZWNpZmljIHJlZ2lz dGVycyAqLwogCWlmIChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDYsIDcpKSB7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAppbmRleCBiNDY5MTA0NTNlNjEuLjM2MmY0ODNmOGFiMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCkBAIC00MzQsOSArNDM0LDkgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVf bW1pb19yZWdfdmFsaWQoaTkxNV9yZWdfdCByZWcpCiAjZGVmaW5lIEdFTjExX1ZFQ1NfU0ZDX1VT QUdFKGVuZ2luZSkJCV9NTUlPKChlbmdpbmUpLT5tbWlvX2Jhc2UgKyAweDIwMTQpCiAjZGVmaW5l ICAgR0VOMTFfVkVDU19TRkNfVVNBR0VfQklUCQkoMSA8PCAwKQogCi0jZGVmaW5lIFJJTkdfUFBf RElSX0JBU0UoZW5naW5lKQlfTU1JTygoZW5naW5lKS0+bW1pb19iYXNlICsgMHgyMjgpCi0jZGVm aW5lIFJJTkdfUFBfRElSX0JBU0VfUkVBRChlbmdpbmUpCV9NTUlPKChlbmdpbmUpLT5tbWlvX2Jh c2UgKyAweDUxOCkKLSNkZWZpbmUgUklOR19QUF9ESVJfRENMVihlbmdpbmUpCV9NTUlPKChlbmdp bmUpLT5tbWlvX2Jhc2UgKyAweDIyMCkKKyNkZWZpbmUgUklOR19QUF9ESVJfQkFTRShiYXNlKQkJ X01NSU8oKGJhc2UpICsgMHgyMjgpCisjZGVmaW5lIFJJTkdfUFBfRElSX0JBU0VfUkVBRChiYXNl KQlfTU1JTygoYmFzZSkgKyAweDUxOCkKKyNkZWZpbmUgUklOR19QUF9ESVJfRENMVihiYXNlKQkJ X01NSU8oKGJhc2UpICsgMHgyMjApCiAjZGVmaW5lICAgUFBfRElSX0RDTFZfMkcJCTB4ZmZmZmZm ZmYKIAogI2RlZmluZSBHRU44X1JJTkdfUERQX1VEVyhlbmdpbmUsIG4pCV9NTUlPKChlbmdpbmUp LT5tbWlvX2Jhc2UgKyAweDI3MCArIChuKSAqIDggKyA0KQpAQCAtMjU2OCwxMiArMjU2OCwxMiBA QCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7CiAjZGVmaW5lIEhXU19TVEFSVF9BRERSRVNTX1NI SUZUCTQKICNkZWZpbmUgUFdSQ1RYQQkJX01NSU8oMHgyMDg4KSAvKiA5NjVHTSsgb25seSAqLwog I2RlZmluZSAgIFBXUkNUWF9FTgkoMSA8PCAwKQotI2RlZmluZSBJUEVJUgkJX01NSU8oMHgyMDg4 KQotI2RlZmluZSBJUEVIUgkJX01NSU8oMHgyMDhjKQorI2RlZmluZSBJUEVJUihiYXNlKQlfTU1J TygoYmFzZSkgKyAweDg4KQorI2RlZmluZSBJUEVIUihiYXNlKQlfTU1JTygoYmFzZSkgKyAweDhj KQogI2RlZmluZSBHRU4yX0lOU1RET05FCV9NTUlPKDB4MjA5MCkKICNkZWZpbmUgTk9QSUQJCV9N TUlPKDB4MjA5NCkKICNkZWZpbmUgSFdTVEFNCQlfTU1JTygweDIwOTgpCi0jZGVmaW5lIERNQV9G QUREX0k4WFgJX01NSU8oMHgyMGQwKQorI2RlZmluZSBETUFfRkFERF9JOFhYKGJhc2UpCV9NTUlP KChiYXNlKSArIDB4ZDApCiAjZGVmaW5lIFJJTkdfQkJTVEFURShiYXNlKQlfTU1JTygoYmFzZSkg KyAweDExMCkKICNkZWZpbmUgICBSSU5HX0JCX1BQR1RUCQkoMSA8PCA1KQogI2RlZmluZSBSSU5H X1NCQkFERFIoYmFzZSkJX01NSU8oKGJhc2UpICsgMHgxMTQpIC8qIGhzdysgKi8KQEAgLTI3NDcs NyArMjc0Nyw3IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKICNkZWZpbmUgICBJTlNUUE1f Rk9SQ0VfT1JERVJJTkcJCQkJKDEgPDwgNykgLyogR0VONisgKi8KICNkZWZpbmUgICBJTlNUUE1f VExCX0lOVkFMSURBVEUJKDEgPDwgOSkKICNkZWZpbmUgICBJTlNUUE1fU1lOQ19GTFVTSAkoMSA8 PCA1KQotI2RlZmluZSBBQ1RIRAkgICAgICAgIF9NTUlPKDB4MjBjOCkKKyNkZWZpbmUgQUNUSEQo YmFzZSkJX01NSU8oKGJhc2UpICsgMHhjOCkKICNkZWZpbmUgTUVNX01PREUJX01NSU8oMHgyMGNj KQogI2RlZmluZSAgIE1FTV9ESVNQTEFZX0JfVFJJQ0tMRV9GRUVEX0RJU0FCTEUgKDEgPDwgMykg LyogODMwIG9ubHkgKi8KICNkZWZpbmUgICBNRU1fRElTUExBWV9BX1RSSUNLTEVfRkVFRF9ESVNB QkxFICgxIDw8IDIpIC8qIDgzMC84NDUgb25seSAqLwpAQCAtMzk0Nyw3ICszOTQ3LDcgQEAgZW51 bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewogLyoKICAqIExvZ2ljYWwgQ29udGV4dCByZWdzCiAgKi8K LSNkZWZpbmUgQ0NJRAkJCQlfTU1JTygweDIxODApCisjZGVmaW5lIENDSUQoYmFzZSkJCQlfTU1J TygoYmFzZSkgKyAweDE4MCkKICNkZWZpbmUgICBDQ0lEX0VOCQkJQklUKDApCiAjZGVmaW5lICAg Q0NJRF9FWFRFTkRFRF9TVEFURV9SRVNUT1JFCUJJVCgyKQogI2RlZmluZSAgIENDSURfRVhURU5E RURfU1RBVEVfU0FWRQlCSVQoMykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuYwppbmRleCAxN2Y4 MDJhOGY4ZjAuLjJlZjI4ZGQ3YTRjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXNldC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuYwpAQCAt MTE4MSw3ICsxMTgxLDcgQEAgdm9pZCBpOTE1X2NsZWFyX2Vycm9yX3JlZ2lzdGVycyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCUk5MTVfV1JJVEUoUEdUQkxfRVIsIEk5MTVf UkVBRChQR1RCTF9FUikpOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA0KQotCQlJOTE1 X1dSSVRFKElQRUlSLCBJOTE1X1JFQUQoSVBFSVIpKTsKKwkJSTkxNV9XUklURShJUEVJUihSRU5E RVJfUklOR19CQVNFKSwgSTkxNV9SRUFEKElQRUlSKFJFTkRFUl9SSU5HX0JBU0UpKSk7CiAJZWxz ZQogCQlJOTE1X1dSSVRFKElQRUlSX0k5NjUsIEk5MTVfUkVBRChJUEVJUl9JOTY1KSk7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggYzkzNmM2ZGYzNGU0Li43NGI2 MzM0YzVlZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0yNTUs MjEgKzI1NSwxNyBAQCBzdGF0aWMgdm9pZCBfX3NwcmludF9lbmdpbmVfbmFtZShjaGFyICpuYW1l LCBjb25zdCBzdHJ1Y3QgZW5naW5lX2luZm8gKmluZm8pCiAKIHZvaWQgaW50ZWxfZW5naW5lX3Nl dF9od3NwX3dyaXRlbWFzayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBtYXNr KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsK LQlpOTE1X3JlZ190IGh3c3RhbTsKLQogCS8qCiAJICogVGhvdWdoIHRoZXkgYWRkZWQgbW9yZSBy aW5ncyBvbiBnNHgvaWxrLCB0aGV5IGRpZCBub3QgYWRkCiAJICogcGVyLWVuZ2luZSBIV1NUQU0g dW50aWwgZ2VuNi4KIAkgKi8KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDYgJiYgZW5naW5l LT5jbGFzcyAhPSBSRU5ERVJfQ0xBU1MpCisJaWYgKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpIDwg NiAmJiBlbmdpbmUtPmNsYXNzICE9IFJFTkRFUl9DTEFTUykKIAkJcmV0dXJuOwogCi0JaHdzdGFt ID0gUklOR19IV1NUQU0oZW5naW5lLT5tbWlvX2Jhc2UpOwotCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDMpCi0JCUk5MTVfV1JJVEUoaHdzdGFtLCBtYXNrKTsKKwlpZiAoSU5URUxfR0VOKGVu Z2luZS0+aTkxNSkgPj0gMykKKwkJRU5HSU5FX1dSSVRFKGVuZ2luZSwgUklOR19IV1NUQU0sIG1h c2spOwogCWVsc2UKLQkJSTkxNV9XUklURTE2KGh3c3RhbSwgbWFzayk7CisJCUVOR0lORV9XUklU RTE2KGVuZ2luZSwgUklOR19IV1NUQU0sIG1hc2spOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9l bmdpbmVfc2FuaXRpemVfbW1pbyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCkBAIC0z MDksNiArMzA1LDcgQEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAllbmdpbmUtPmlkID0gaWQ7CiAJZW5naW5lLT5tYXNrID0gQklUKGlkKTsK IAllbmdpbmUtPmk5MTUgPSBkZXZfcHJpdjsKKwllbmdpbmUtPnVuY29yZSA9ICZkZXZfcHJpdi0+ dW5jb3JlOwogCV9fc3ByaW50X2VuZ2luZV9uYW1lKGVuZ2luZS0+bmFtZSwgaW5mbyk7CiAJZW5n aW5lLT5od19pZCA9IGVuZ2luZS0+Z3VjX2lkID0gaW5mby0+aHdfaWQ7CiAJZW5naW5lLT5tbWlv X2Jhc2UgPSBfX2VuZ2luZV9tbWlvX2Jhc2UoZGV2X3ByaXYsIGluZm8tPm1taW9fYmFzZXMpOwpA QCAtNzg3LDM3ICs3ODQsMzUgQEAgdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cF9jb21tb24oc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiB1NjQgaW50ZWxfZW5naW5lX2dldF9hY3Rp dmVfaGVhZChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OworCiAJdTY0IGFjdGhkOwogCi0JaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKLQkJYWN0aGQgPSBJOTE1X1JFQUQ2NF8yeDMyKFJJ TkdfQUNUSEQoZW5naW5lLT5tbWlvX2Jhc2UpLAotCQkJCQkgUklOR19BQ1RIRF9VRFcoZW5naW5l LT5tbWlvX2Jhc2UpKTsKLQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpCi0JCWFj dGhkID0gSTkxNV9SRUFEKFJJTkdfQUNUSEQoZW5naW5lLT5tbWlvX2Jhc2UpKTsKKwlpZiAoSU5U RUxfR0VOKGk5MTUpID49IDgpCisJCWFjdGhkID0gRU5HSU5FX1JFQUQ2NChlbmdpbmUsIFJJTkdf QUNUSEQsIFJJTkdfQUNUSERfVURXKTsKKwllbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNCkK KwkJYWN0aGQgPSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfQUNUSEQpOwogCWVsc2UKLQkJYWN0 aGQgPSBJOTE1X1JFQUQoQUNUSEQpOworCQlhY3RoZCA9IEVOR0lORV9SRUFEKGVuZ2luZSwgQUNU SEQpOwogCiAJcmV0dXJuIGFjdGhkOwogfQogCiB1NjQgaW50ZWxfZW5naW5lX2dldF9sYXN0X2Jh dGNoX2hlYWQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKIAl1NjQgYmJhZGRy OwogCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKLQkJYmJhZGRyID0gSTkxNV9SRUFE NjRfMngzMihSSU5HX0JCQUREUihlbmdpbmUtPm1taW9fYmFzZSksCi0JCQkJCSAgUklOR19CQkFE RFJfVURXKGVuZ2luZS0+bW1pb19iYXNlKSk7CisJaWYgKElOVEVMX0dFTihlbmdpbmUtPmk5MTUp ID49IDgpCisJCWJiYWRkciA9IEVOR0lORV9SRUFENjQoZW5naW5lLCBSSU5HX0JCQUREUiwgUklO R19CQkFERFJfVURXKTsKIAllbHNlCi0JCWJiYWRkciA9IEk5MTVfUkVBRChSSU5HX0JCQUREUihl bmdpbmUtPm1taW9fYmFzZSkpOworCQliYmFkZHIgPSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdf QkJBRERSKTsKIAogCXJldHVybiBiYmFkZHI7CiB9CiAKIGludCBpbnRlbF9lbmdpbmVfc3RvcF9j cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGludGVsX3VuY29y ZSAqdW5jb3JlID0gJmVuZ2luZS0+aTkxNS0+dW5jb3JlOworCXN0cnVjdCBpbnRlbF91bmNvcmUg KnVuY29yZSA9IGVuZ2luZS0+dW5jb3JlOwogCWNvbnN0IHUzMiBiYXNlID0gZW5naW5lLT5tbWlv X2Jhc2U7CiAJY29uc3QgaTkxNV9yZWdfdCBtb2RlID0gUklOR19NSV9NT0RFKGJhc2UpOwogCWlu dCBlcnI7CkBAIC04NDYsMTIgKzg0MSw5IEBAIGludCBpbnRlbF9lbmdpbmVfc3RvcF9jcyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIHZvaWQgaW50ZWxfZW5naW5lX2NhbmNlbF9z dG9wX2NzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Ci0KIAlHRU1fVFJBQ0UoIiVzXG4i LCBlbmdpbmUtPm5hbWUpOwogCi0JSTkxNV9XUklURV9GVyhSSU5HX01JX01PREUoZW5naW5lLT5t bWlvX2Jhc2UpLAotCQkgICAgICBfTUFTS0VEX0JJVF9ESVNBQkxFKFNUT1BfUklORykpOworCUVO R0lORV9XUklURV9GVyhlbmdpbmUsIFJJTkdfTUlfTU9ERSwgX01BU0tFRF9CSVRfRElTQUJMRShT VE9QX1JJTkcpKTsKIH0KIAogY29uc3QgY2hhciAqaTkxNV9jYWNoZV9sZXZlbF9zdHIoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCB0eXBlKQpAQCAtOTQ2LDYgKzkzOCw3IEBAIHZv aWQgaW50ZWxfZW5naW5lX2dldF9pbnN0ZG9uZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCiAJCQkgICAgICAgc3RydWN0IGludGVsX2luc3Rkb25lICppbnN0ZG9uZSkKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CisJc3RydWN0IGlu dGVsX3VuY29yZSAqdW5jb3JlID0gZW5naW5lLT51bmNvcmU7CiAJdTMyIG1taW9fYmFzZSA9IGVu Z2luZS0+bW1pb19iYXNlOwogCWludCBzbGljZTsKIAlpbnQgc3Vic2xpY2U7CkBAIC05NTQsMTIg Kzk0NywxMiBAQCB2b2lkIGludGVsX2VuZ2luZV9nZXRfaW5zdGRvbmUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLAogCiAJc3dpdGNoIChJTlRFTF9HRU4oZGV2X3ByaXYpKSB7CiAJZGVm YXVsdDoKLQkJaW5zdGRvbmUtPmluc3Rkb25lID0gSTkxNV9SRUFEKFJJTkdfSU5TVERPTkUobW1p b19iYXNlKSk7CisJCWluc3Rkb25lLT5pbnN0ZG9uZSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29y ZSwgUklOR19JTlNURE9ORShtbWlvX2Jhc2UpKTsKIAogCQlpZiAoZW5naW5lLT5pZCAhPSBSQ1Mw KQogCQkJYnJlYWs7CiAKLQkJaW5zdGRvbmUtPnNsaWNlX2NvbW1vbiA9IEk5MTVfUkVBRChHRU43 X1NDX0lOU1RET05FKTsKKwkJaW5zdGRvbmUtPnNsaWNlX2NvbW1vbiA9IGludGVsX3VuY29yZV9y ZWFkKHVuY29yZSwgR0VON19TQ19JTlNURE9ORSk7CiAJCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNl X3N1YnNsaWNlKGRldl9wcml2LCBzbGljZSwgc3Vic2xpY2UpIHsKIAkJCWluc3Rkb25lLT5zYW1w bGVyW3NsaWNlXVtzdWJzbGljZV0gPQogCQkJCXJlYWRfc3Vic2xpY2VfcmVnKGRldl9wcml2LCBz bGljZSwgc3Vic2xpY2UsCkBAIC05NzAsMjggKzk2MywyOCBAQCB2b2lkIGludGVsX2VuZ2luZV9n ZXRfaW5zdGRvbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQl9CiAJCWJyZWFr OwogCWNhc2UgNzoKLQkJaW5zdGRvbmUtPmluc3Rkb25lID0gSTkxNV9SRUFEKFJJTkdfSU5TVERP TkUobW1pb19iYXNlKSk7CisJCWluc3Rkb25lLT5pbnN0ZG9uZSA9IGludGVsX3VuY29yZV9yZWFk KHVuY29yZSwgUklOR19JTlNURE9ORShtbWlvX2Jhc2UpKTsKIAogCQlpZiAoZW5naW5lLT5pZCAh PSBSQ1MwKQogCQkJYnJlYWs7CiAKLQkJaW5zdGRvbmUtPnNsaWNlX2NvbW1vbiA9IEk5MTVfUkVB RChHRU43X1NDX0lOU1RET05FKTsKLQkJaW5zdGRvbmUtPnNhbXBsZXJbMF1bMF0gPSBJOTE1X1JF QUQoR0VON19TQU1QTEVSX0lOU1RET05FKTsKLQkJaW5zdGRvbmUtPnJvd1swXVswXSA9IEk5MTVf UkVBRChHRU43X1JPV19JTlNURE9ORSk7CisJCWluc3Rkb25lLT5zbGljZV9jb21tb24gPSBpbnRl bF91bmNvcmVfcmVhZCh1bmNvcmUsIEdFTjdfU0NfSU5TVERPTkUpOworCQlpbnN0ZG9uZS0+c2Ft cGxlclswXVswXSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgR0VON19TQU1QTEVSX0lOU1RE T05FKTsKKwkJaW5zdGRvbmUtPnJvd1swXVswXSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwg R0VON19ST1dfSU5TVERPTkUpOwogCiAJCWJyZWFrOwogCWNhc2UgNjoKIAljYXNlIDU6CiAJY2Fz ZSA0OgotCQlpbnN0ZG9uZS0+aW5zdGRvbmUgPSBJOTE1X1JFQUQoUklOR19JTlNURE9ORShtbWlv X2Jhc2UpKTsKKwkJaW5zdGRvbmUtPmluc3Rkb25lID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3Jl LCBSSU5HX0lOU1RET05FKG1taW9fYmFzZSkpOwogCiAJCWlmIChlbmdpbmUtPmlkID09IFJDUzAp CiAJCQkvKiBIQUNLOiBVc2luZyB0aGUgd3Jvbmcgc3RydWN0IG1lbWJlciAqLwotCQkJaW5zdGRv bmUtPnNsaWNlX2NvbW1vbiA9IEk5MTVfUkVBRChHRU40X0lOU1RET05FMSk7CisJCQlpbnN0ZG9u ZS0+c2xpY2VfY29tbW9uID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBHRU40X0lOU1RET05F MSk7CiAJCWJyZWFrOwogCWNhc2UgMzoKIAljYXNlIDI6Ci0JCWluc3Rkb25lLT5pbnN0ZG9uZSA9 IEk5MTVfUkVBRChHRU4yX0lOU1RET05FKTsKKwkJaW5zdGRvbmUtPmluc3Rkb25lID0gaW50ZWxf dW5jb3JlX3JlYWQodW5jb3JlLCBHRU4yX0lOU1RET05FKTsKIAkJYnJlYWs7CiAJfQogfQpAQCAt MTAxMSwxMiArMTAwNCwxMiBAQCBzdGF0aWMgYm9vbCByaW5nX2lzX2lkbGUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qIEZpcnN0IGNoZWNrIHRo YXQgbm8gY29tbWFuZHMgYXJlIGxlZnQgaW4gdGhlIHJpbmcgKi8KLQlpZiAoKEk5MTVfUkVBRF9I RUFEKGVuZ2luZSkgJiBIRUFEX0FERFIpICE9Ci0JICAgIChJOTE1X1JFQURfVEFJTChlbmdpbmUp ICYgVEFJTF9BRERSKSkKKwlpZiAoKEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19IRUFEKSAmIEhF QURfQUREUikgIT0KKwkgICAgKEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19UQUlMKSAmIFRBSUxf QUREUikpCiAJCWlkbGUgPSBmYWxzZTsKIAogCS8qIE5vIGJpdCBmb3IgZ2VuMiwgc28gYXNzdW1l IHRoZSBDUyBwYXJzZXIgaXMgaWRsZSAqLwotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID4gMiAm JiAhKEk5MTVfUkVBRF9NT0RFKGVuZ2luZSkgJiBNT0RFX0lETEUpKQorCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID4gMiAmJiAhKEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19NSV9NT0RFKSAmIE1P REVfSURMRSkpCiAJCWlkbGUgPSBmYWxzZTsKIAogCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9w cml2LCB3YWtlcmVmKTsKQEAgLTEzMzIsMjQgKzEzMjUsMjQgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZW5naW5lX3ByaW50X3JlZ2lzdGVycyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCiAJdTY0IGFkZHI7CiAKIAlpZiAoZW5naW5lLT5pZCA9PSBSQ1MwICYmIElTX0dFTl9SQU5H RShkZXZfcHJpdiwgNCwgNykpCi0JCWRybV9wcmludGYobSwgIlx0Q0NJRDogMHglMDh4XG4iLCBJ OTE1X1JFQUQoQ0NJRCkpOworCQlkcm1fcHJpbnRmKG0sICJcdENDSUQ6IDB4JTA4eFxuIiwgRU5H SU5FX1JFQUQoZW5naW5lLCBDQ0lEKSk7CiAJZHJtX3ByaW50ZihtLCAiXHRSSU5HX1NUQVJUOiAw eCUwOHhcbiIsCi0JCSAgIEk5MTVfUkVBRChSSU5HX1NUQVJUKGVuZ2luZS0+bW1pb19iYXNlKSkp OworCQkgICBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfU1RBUlQpKTsKIAlkcm1fcHJpbnRmKG0s ICJcdFJJTkdfSEVBRDogIDB4JTA4eFxuIiwKLQkJICAgSTkxNV9SRUFEKFJJTkdfSEVBRChlbmdp bmUtPm1taW9fYmFzZSkpICYgSEVBRF9BRERSKTsKKwkJICAgRU5HSU5FX1JFQUQoZW5naW5lLCBS SU5HX0hFQUQpICYgSEVBRF9BRERSKTsKIAlkcm1fcHJpbnRmKG0sICJcdFJJTkdfVEFJTDogIDB4 JTA4eFxuIiwKLQkJICAgSTkxNV9SRUFEKFJJTkdfVEFJTChlbmdpbmUtPm1taW9fYmFzZSkpICYg VEFJTF9BRERSKTsKKwkJICAgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX1RBSUwpICYgVEFJTF9B RERSKTsKIAlkcm1fcHJpbnRmKG0sICJcdFJJTkdfQ1RMOiAgIDB4JTA4eCVzXG4iLAotCQkgICBJ OTE1X1JFQUQoUklOR19DVEwoZW5naW5lLT5tbWlvX2Jhc2UpKSwKLQkJICAgSTkxNV9SRUFEKFJJ TkdfQ1RMKGVuZ2luZS0+bW1pb19iYXNlKSkgJiAoUklOR19XQUlUIHwgUklOR19XQUlUX1NFTUFQ SE9SRSkgPyAiIFt3YWl0aW5nXSIgOiAiIik7CisJCSAgIEVOR0lORV9SRUFEKGVuZ2luZSwgUklO R19DVEwpLAorCQkgICBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfQ1RMKSAmIChSSU5HX1dBSVQg fCBSSU5HX1dBSVRfU0VNQVBIT1JFKSA/ICIgW3dhaXRpbmddIiA6ICIiKTsKIAlpZiAoSU5URUxf R0VOKGVuZ2luZS0+aTkxNSkgPiAyKSB7CiAJCWRybV9wcmludGYobSwgIlx0UklOR19NT0RFOiAg MHglMDh4JXNcbiIsCi0JCQkgICBJOTE1X1JFQUQoUklOR19NSV9NT0RFKGVuZ2luZS0+bW1pb19i YXNlKSksCi0JCQkgICBJOTE1X1JFQUQoUklOR19NSV9NT0RFKGVuZ2luZS0+bW1pb19iYXNlKSkg JiAoTU9ERV9JRExFKSA/ICIgW2lkbGVdIiA6ICIiKTsKKwkJCSAgIEVOR0lORV9SRUFEKGVuZ2lu ZSwgUklOR19NSV9NT0RFKSwKKwkJCSAgIEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19NSV9NT0RF KSAmIChNT0RFX0lETEUpID8gIiBbaWRsZV0iIDogIiIpOwogCX0KIAogCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDYpIHsKLQkJZHJtX3ByaW50ZihtLCAiXHRSSU5HX0lNUjogJTA4eFxuIiwg STkxNV9SRUFEX0lNUihlbmdpbmUpKTsKKwkJZHJtX3ByaW50ZihtLCAiXHRSSU5HX0lNUjogJTA4 eFxuIiwgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0lNUikpOwogCX0KIAogCWFkZHIgPSBpbnRl bF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7CkBAIC0xMzU5LDIyICsxMzUyLDIxIEBA IHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9wcmludF9yZWdpc3RlcnMoY29uc3Qgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCWRybV9wcmludGYobSwgIlx0QkJBRERSOiAweCUwOHhf JTA4eFxuIiwKIAkJICAgdXBwZXJfMzJfYml0cyhhZGRyKSwgbG93ZXJfMzJfYml0cyhhZGRyKSk7 CiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKLQkJYWRkciA9IEk5MTVfUkVBRDY0XzJ4 MzIoUklOR19ETUFfRkFERChlbmdpbmUtPm1taW9fYmFzZSksCi0JCQkJCVJJTkdfRE1BX0ZBRERf VURXKGVuZ2luZS0+bW1pb19iYXNlKSk7CisJCWFkZHIgPSBFTkdJTkVfUkVBRDY0KGVuZ2luZSwg UklOR19ETUFfRkFERCwgUklOR19ETUFfRkFERF9VRFcpOwogCWVsc2UgaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gNCkKLQkJYWRkciA9IEk5MTVfUkVBRChSSU5HX0RNQV9GQUREKGVuZ2luZS0+ bW1pb19iYXNlKSk7CisJCWFkZHIgPSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfRE1BX0ZBREQp OwogCWVsc2UKLQkJYWRkciA9IEk5MTVfUkVBRChETUFfRkFERF9JOFhYKTsKKwkJYWRkciA9IEVO R0lORV9SRUFEKGVuZ2luZSwgRE1BX0ZBRERfSThYWCk7CiAJZHJtX3ByaW50ZihtLCAiXHRETUFf RkFERFI6IDB4JTA4eF8lMDh4XG4iLAogCQkgICB1cHBlcl8zMl9iaXRzKGFkZHIpLCBsb3dlcl8z Ml9iaXRzKGFkZHIpKTsKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KSB7CiAJCWRybV9w cmludGYobSwgIlx0SVBFSVI6IDB4JTA4eFxuIiwKLQkJCSAgIEk5MTVfUkVBRChSSU5HX0lQRUlS KGVuZ2luZS0+bW1pb19iYXNlKSkpOworCQkJICAgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0lQ RUlSKSk7CiAJCWRybV9wcmludGYobSwgIlx0SVBFSFI6IDB4JTA4eFxuIiwKLQkJCSAgIEk5MTVf UkVBRChSSU5HX0lQRUhSKGVuZ2luZS0+bW1pb19iYXNlKSkpOworCQkJICAgRU5HSU5FX1JFQUQo ZW5naW5lLCBSSU5HX0lQRUhSKSk7CiAJfSBlbHNlIHsKLQkJZHJtX3ByaW50ZihtLCAiXHRJUEVJ UjogMHglMDh4XG4iLCBJOTE1X1JFQUQoSVBFSVIpKTsKLQkJZHJtX3ByaW50ZihtLCAiXHRJUEVI UjogMHglMDh4XG4iLCBJOTE1X1JFQUQoSVBFSFIpKTsKKwkJZHJtX3ByaW50ZihtLCAiXHRJUEVJ UjogMHglMDh4XG4iLCBFTkdJTkVfUkVBRChlbmdpbmUsIElQRUlSKSk7CisJCWRybV9wcmludGYo bSwgIlx0SVBFSFI6IDB4JTA4eFxuIiwgRU5HSU5FX1JFQUQoZW5naW5lLCBJUEVIUikpOwogCX0K IAogCWlmIChIQVNfRVhFQ0xJU1RTKGRldl9wcml2KSkgewpAQCAtMTM4NCwxNSArMTM3NiwxNSBA QCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfcHJpbnRfcmVnaXN0ZXJzKGNvbnN0IHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJdTggcmVhZCwgd3JpdGU7CiAKIAkJZHJtX3ByaW50 ZihtLCAiXHRFeGVjbGlzdCBzdGF0dXM6IDB4JTA4eCAlMDh4XG4iLAotCQkJICAgSTkxNV9SRUFE KFJJTkdfRVhFQ0xJU1RfU1RBVFVTX0xPKGVuZ2luZSkpLAotCQkJICAgSTkxNV9SRUFEKFJJTkdf RVhFQ0xJU1RfU1RBVFVTX0hJKGVuZ2luZSkpKTsKKwkJCSAgIEVOR0lORV9SRUFEKGVuZ2luZSwg UklOR19FWEVDTElTVF9TVEFUVVNfTE8pLAorCQkJICAgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5H X0VYRUNMSVNUX1NUQVRVU19ISSkpOwogCiAJCXJlYWQgPSBleGVjbGlzdHMtPmNzYl9oZWFkOwog CQl3cml0ZSA9IFJFQURfT05DRSgqZXhlY2xpc3RzLT5jc2Jfd3JpdGUpOwogCiAJCWRybV9wcmlu dGYobSwgIlx0RXhlY2xpc3QgQ1NCIHJlYWQgJWQsIHdyaXRlICVkIFttbWlvOiVkXSwgdGFza2xl dCBxdWV1ZWQ/ICVzICglcylcbiIsCiAJCQkgICByZWFkLCB3cml0ZSwKLQkJCSAgIEdFTjhfQ1NC X1dSSVRFX1BUUihJOTE1X1JFQUQoUklOR19DT05URVhUX1NUQVRVU19QVFIoZW5naW5lKSkpLAor CQkJICAgR0VOOF9DU0JfV1JJVEVfUFRSKEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19DT05URVhU X1NUQVRVU19QVFIpKSwKIAkJCSAgIHllc25vKHRlc3RfYml0KFRBU0tMRVRfU1RBVEVfU0NIRUQs CiAJCQkJCSAgJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQuc3RhdGUpKSwKIAkJCSAgIGVuYWJs ZWRkaXNhYmxlZCghYXRvbWljX3JlYWQoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQuY291bnQp KSk7CkBAIC0xNDA3LDkgKzEzOTksOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfcHJpbnRf cmVnaXN0ZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCWRybV9w cmludGYobSwgIlx0RXhlY2xpc3QgQ1NCWyVkXTogMHglMDh4IFttbWlvOjB4JTA4eF0sIGNvbnRl eHQ6ICVkIFttbWlvOiVkXVxuIiwKIAkJCQkgICBpZHgsCiAJCQkJICAgaHdzW2lkeCAqIDJdLAot CQkJCSAgIEk5MTVfUkVBRChSSU5HX0NPTlRFWFRfU1RBVFVTX0JVRl9MTyhlbmdpbmUsIGlkeCkp LAorCQkJCSAgIEVOR0lORV9SRUFEX0lEWChlbmdpbmUsIFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVG X0xPLCBpZHgpLAogCQkJCSAgIGh3c1tpZHggKiAyICsgMV0sCi0JCQkJICAgSTkxNV9SRUFEKFJJ TkdfQ09OVEVYVF9TVEFUVVNfQlVGX0hJKGVuZ2luZSwgaWR4KSkpOworCQkJCSAgIEVOR0lORV9S RUFEX0lEWChlbmdpbmUsIFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVGX0hJLCBpZHgpKTsKIAkJfQog CiAJCXJjdV9yZWFkX2xvY2soKTsKQEAgLTE0MzYsMTEgKzE0MjgsMTEgQEAgc3RhdGljIHZvaWQg aW50ZWxfZW5naW5lX3ByaW50X3JlZ2lzdGVycyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCiAJCXJjdV9yZWFkX3VubG9jaygpOwogCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+IDYpIHsKIAkJZHJtX3ByaW50ZihtLCAiXHRQUF9ESVJfQkFTRTogMHglMDh4XG4i LAotCQkJICAgSTkxNV9SRUFEKFJJTkdfUFBfRElSX0JBU0UoZW5naW5lKSkpOworCQkJICAgRU5H SU5FX1JFQUQoZW5naW5lLCBSSU5HX1BQX0RJUl9CQVNFKSk7CiAJCWRybV9wcmludGYobSwgIlx0 UFBfRElSX0JBU0VfUkVBRDogMHglMDh4XG4iLAotCQkJICAgSTkxNV9SRUFEKFJJTkdfUFBfRElS X0JBU0VfUkVBRChlbmdpbmUpKSk7CisJCQkgICBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfUFBf RElSX0JBU0VfUkVBRCkpOwogCQlkcm1fcHJpbnRmKG0sICJcdFBQX0RJUl9EQ0xWOiAweCUwOHhc biIsCi0JCQkgICBJOTE1X1JFQUQoUklOR19QUF9ESVJfRENMVihlbmdpbmUpKSk7CisJCQkgICBF TkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfUFBfRElSX0RDTFYpKTsKIAl9CiB9CiAKQEAgLTE2ODcs OCArMTY3OSw3IEBAIHZvaWQgaW50ZWxfZGlzYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCiBzdGF0aWMgYm9vbCBtYXRjaF9yaW5nKHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJx LT5pOTE1OwotCXUzMiByaW5nID0gSTkxNV9SRUFEKFJJTkdfU1RBUlQocnEtPmVuZ2luZS0+bW1p b19iYXNlKSk7CisJdTMyIHJpbmcgPSBFTkdJTkVfUkVBRChycS0+ZW5naW5lLCBSSU5HX1NUQVJU KTsKIAogCXJldHVybiByaW5nID09IGk5MTVfZ2d0dF9vZmZzZXQocnEtPnJpbmctPnZtYSk7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfdHlwZXMuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oCmluZGV4IDg4ZWQ3YmE4 ODg2Zi4uYjMyNDliZjZhNjVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9lbmdpbmVfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf dHlwZXMuaApAQCAtMjksNiArMjksNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcmVnX3RhYmxlOwogc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQ7CiBzdHJ1Y3QgaTkxNV9yZXF1ZXN0Owogc3RydWN0IGk5MTVf c2NoZWRfYXR0cjsKK3N0cnVjdCBpbnRlbF91bmNvcmU7CiAKIHN0cnVjdCBpbnRlbF9od19zdGF0 dXNfcGFnZSB7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CkBAIC0yNTAsNiArMjUxLDcgQEAgc3Ry dWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgewogCiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1 bmNvcmU7CiAJY2hhciBuYW1lW0lOVEVMX0VOR0lORV9DU19NQVhfTkFNRV07CiAKIAllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKaW5k ZXggMTI1NjYyYzY0OTM0Li41OTIzMmRmMTFhZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hhbmdjaGVjay5jCkBAIC0xMTgsMTEgKzExOCwxMSBAQCBlbmdpbmVfc3R1Y2soc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCiAJICogYW5kIGJyZWFrIHRoZSBoYW5n LiBUaGlzIHNob3VsZCB3b3JrIG9uCiAJICogYWxsIGJ1dCB0aGUgc2Vjb25kIGdlbmVyYXRpb24g Y2hpcHNldHMuCiAJICovCi0JdG1wID0gSTkxNV9SRUFEX0NUTChlbmdpbmUpOworCXRtcCA9IEVO R0lORV9SRUFEKGVuZ2luZSwgUklOR19DVEwpOwogCWlmICh0bXAgJiBSSU5HX1dBSVQpIHsKIAkJ aTkxNV9oYW5kbGVfZXJyb3IoZGV2X3ByaXYsIGVuZ2luZS0+bWFzaywgMCwKIAkJCQkgICJzdHVj ayB3YWl0IG9uICVzIiwgZW5naW5lLT5uYW1lKTsKLQkJSTkxNV9XUklURV9DVEwoZW5naW5lLCB0 bXApOworCQlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0NUTCwgdG1wKTsKIAkJcmV0dXJuIEVO R0lORV9XQUlUX0tJQ0s7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDY2YmMz Y2Q0ZTE2Ni4uNmVkYmU1Y2JkYjk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMjA3 NCwxNiArMjA3NCwxNCBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9iYl9zdGFydChzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpycSwKIAogc3RhdGljIHZvaWQgZ2VuOF9sb2dpY2FsX3JpbmdfZW5hYmxlX2ly cShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCUk5MTVfV1JJVEVfSU1SKGVuZ2luZSwK KwlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0lNUiwKIAkJICAgICAgIH4oZW5naW5lLT5pcnFf ZW5hYmxlX21hc2sgfCBlbmdpbmUtPmlycV9rZWVwX21hc2spKTsKLQlQT1NUSU5HX1JFQURfRlco UklOR19JTVIoZW5naW5lLT5tbWlvX2Jhc2UpKTsKKwlFTkdJTkVfUE9TVElOR19SRUFEKGVuZ2lu ZSwgUklOR19JTVIpOwogfQogCiBzdGF0aWMgdm9pZCBnZW44X2xvZ2ljYWxfcmluZ19kaXNhYmxl X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCUk5MTVfV1JJVEVfSU1SKGVuZ2lu ZSwgfmVuZ2luZS0+aXJxX2tlZXBfbWFzayk7CisJRU5HSU5FX1dSSVRFKGVuZ2luZSwgUklOR19J TVIsIH5lbmdpbmUtPmlycV9rZWVwX21hc2spOwogfQogCiBzdGF0aWMgaW50IGdlbjhfZW1pdF9m bHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgbW9kZSkKQEAgLTIyODgsNyAr MjI4Niw3IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXAoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogCWRldl9wcml2ID0gZW5naW5lLT5pOTE1OwogCiAJaWYgKGVuZ2lu ZS0+YnVmZmVyKSB7Ci0JCVdBUk5fT04oKEk5MTVfUkVBRF9NT0RFKGVuZ2luZSkgJiBNT0RFX0lE TEUpID09IDApOworCQlXQVJOX09OKChFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfTUlfTU9ERSkg JiBNT0RFX0lETEUpID09IDApOwogCX0KIAogCWlmIChlbmdpbmUtPmNsZWFudXApCkBAIC0yNDAw LDYgKzIzOTgsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVu Z2luZS0+aTkxNTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNs aXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKKwl1MzIgYmFzZSA9IGVuZ2luZS0+bW1pb19iYXNl OwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9lbmdpbmVfaW5pdF9jb21tb24oZW5naW5lKTsK QEAgLTI0MTAsMTIgKzI0MDksMTIgQEAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfaW5pdChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAlpZiAoSEFTX0xPR0lDQUxfUklOR19FTFNR KGk5MTUpKSB7CiAJCWV4ZWNsaXN0cy0+c3VibWl0X3JlZyA9IGk5MTUtPnVuY29yZS5yZWdzICsK LQkJCWk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfRVhFQ0xJU1RfU1FfQ09OVEVOVFMoZW5naW5l KSk7CisJCQlpOTE1X21taW9fcmVnX29mZnNldChSSU5HX0VYRUNMSVNUX1NRX0NPTlRFTlRTKGJh c2UpKTsKIAkJZXhlY2xpc3RzLT5jdHJsX3JlZyA9IGk5MTUtPnVuY29yZS5yZWdzICsKLQkJCWk5 MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfRVhFQ0xJU1RfQ09OVFJPTChlbmdpbmUpKTsKKwkJCWk5 MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfRVhFQ0xJU1RfQ09OVFJPTChiYXNlKSk7CiAJfSBlbHNl IHsKIAkJZXhlY2xpc3RzLT5zdWJtaXRfcmVnID0gaTkxNS0+dW5jb3JlLnJlZ3MgKwotCQkJaTkx NV9tbWlvX3JlZ19vZmZzZXQoUklOR19FTFNQKGVuZ2luZSkpOworCQkJaTkxNV9tbWlvX3JlZ19v ZmZzZXQoUklOR19FTFNQKGJhc2UpKTsKIAl9CiAKIAlleGVjbGlzdHMtPnByZWVtcHRfY29tcGxl dGVfc3RhdHVzID0gfjB1OwpAQCAtMjY1OCw3ICsyNjU3LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xp c3RzX2luaXRfcmVnX3N0YXRlKHUzMiAqcmVncywKIAlyZWdzW0NUWF9MUklfSEVBREVSXzBdID0g TUlfTE9BRF9SRUdJU1RFUl9JTU0ocmNzID8gMTQgOiAxMSkgfAogCQkJCSBNSV9MUklfRk9SQ0Vf UE9TVEVEOwogCi0JQ1RYX1JFRyhyZWdzLCBDVFhfQ09OVEVYVF9DT05UUk9MLCBSSU5HX0NPTlRF WFRfQ09OVFJPTChlbmdpbmUpLAorCUNUWF9SRUcocmVncywgQ1RYX0NPTlRFWFRfQ09OVFJPTCwg UklOR19DT05URVhUX0NPTlRST0woYmFzZSksCiAJCV9NQVNLRURfQklUX0RJU0FCTEUoQ1RYX0NU UkxfRU5HSU5FX0NUWF9SRVNUT1JFX0lOSElCSVQpIHwKIAkJX01BU0tFRF9CSVRfRU5BQkxFKENU WF9DVFJMX0lOSElCSVRfU1lOX0NUWF9TV0lUQ0gpKTsKIAlpZiAoSU5URUxfR0VOKGVuZ2luZS0+ aTkxNSkgPCAxMSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAppbmRleCBmMWFlYzhhNjk4NmYu LjkyNjQyYWI5MTQ3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKQEAgLTI4LDIwICsyOCwy MCBAQAogI2luY2x1ZGUgImk5MTVfZ2VtX2NvbnRleHQuaCIKIAogLyogRXhlY2xpc3RzIHJlZ3Mg Ki8KLSNkZWZpbmUgUklOR19FTFNQKGVuZ2luZSkJCQlfTU1JTygoZW5naW5lKS0+bW1pb19iYXNl ICsgMHgyMzApCi0jZGVmaW5lIFJJTkdfRVhFQ0xJU1RfU1RBVFVTX0xPKGVuZ2luZSkJCV9NTUlP KChlbmdpbmUpLT5tbWlvX2Jhc2UgKyAweDIzNCkKLSNkZWZpbmUgUklOR19FWEVDTElTVF9TVEFU VVNfSEkoZW5naW5lKQkJX01NSU8oKGVuZ2luZSktPm1taW9fYmFzZSArIDB4MjM0ICsgNCkKLSNk ZWZpbmUgUklOR19DT05URVhUX0NPTlRST0woZW5naW5lKQkJX01NSU8oKGVuZ2luZSktPm1taW9f YmFzZSArIDB4MjQ0KQorI2RlZmluZSBSSU5HX0VMU1AoYmFzZSkJCQkJX01NSU8oKGJhc2UpICsg MHgyMzApCisjZGVmaW5lIFJJTkdfRVhFQ0xJU1RfU1RBVFVTX0xPKGJhc2UpCQlfTU1JTygoYmFz ZSkgKyAweDIzNCkKKyNkZWZpbmUgUklOR19FWEVDTElTVF9TVEFUVVNfSEkoYmFzZSkJCV9NTUlP KChiYXNlKSArIDB4MjM0ICsgNCkKKyNkZWZpbmUgUklOR19DT05URVhUX0NPTlRST0woYmFzZSkJ CV9NTUlPKChiYXNlKSArIDB4MjQ0KQogI2RlZmluZQkgIENUWF9DVFJMX0lOSElCSVRfU1lOX0NU WF9TV0lUQ0gJKDEgPDwgMykKICNkZWZpbmUJICBDVFhfQ1RSTF9FTkdJTkVfQ1RYX1JFU1RPUkVf SU5ISUJJVAkoMSA8PCAwKQotI2RlZmluZSAgIENUWF9DVFJMX1JTX0NUWF9FTkFCTEUgICAgICAg ICAgICAgICAgKDEgPDwgMSkKKyNkZWZpbmUgICBDVFhfQ1RSTF9SU19DVFhfRU5BQkxFCQkoMSA8 PCAxKQogI2RlZmluZQkgIENUWF9DVFJMX0VOR0lORV9DVFhfU0FWRV9JTkhJQklUCSgxIDw8IDIp Ci0jZGVmaW5lIFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVGX0JBU0UoZW5naW5lKQlfTU1JTygoZW5n aW5lKS0+bW1pb19iYXNlICsgMHgzNzApCi0jZGVmaW5lIFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVG X0xPKGVuZ2luZSwgaSkJX01NSU8oKGVuZ2luZSktPm1taW9fYmFzZSArIDB4MzcwICsgKGkpICog OCkKLSNkZWZpbmUgUklOR19DT05URVhUX1NUQVRVU19CVUZfSEkoZW5naW5lLCBpKQlfTU1JTygo ZW5naW5lKS0+bW1pb19iYXNlICsgMHgzNzAgKyAoaSkgKiA4ICsgNCkKLSNkZWZpbmUgUklOR19D T05URVhUX1NUQVRVU19QVFIoZW5naW5lKQkJX01NSU8oKGVuZ2luZSktPm1taW9fYmFzZSArIDB4 M2EwKQotI2RlZmluZSBSSU5HX0VYRUNMSVNUX1NRX0NPTlRFTlRTKGVuZ2luZSkJX01NSU8oKGVu Z2luZSktPm1taW9fYmFzZSArIDB4NTEwKQotI2RlZmluZSBSSU5HX0VYRUNMSVNUX0NPTlRST0wo ZW5naW5lKQkJX01NSU8oKGVuZ2luZSktPm1taW9fYmFzZSArIDB4NTUwKQorI2RlZmluZSBSSU5H X0NPTlRFWFRfU1RBVFVTX0JVRl9CQVNFKGJhc2UpCV9NTUlPKChiYXNlKSArIDB4MzcwKQorI2Rl ZmluZSBSSU5HX0NPTlRFWFRfU1RBVFVTX0JVRl9MTyhiYXNlLCBpKQlfTU1JTygoYmFzZSkgKyAw eDM3MCArIChpKSAqIDgpCisjZGVmaW5lIFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVGX0hJKGJhc2Us IGkpCV9NTUlPKChiYXNlKSArIDB4MzcwICsgKGkpICogOCArIDQpCisjZGVmaW5lIFJJTkdfQ09O VEVYVF9TVEFUVVNfUFRSKGJhc2UpCQlfTU1JTygoYmFzZSkgKyAweDNhMCkKKyNkZWZpbmUgUklO R19FWEVDTElTVF9TUV9DT05URU5UUyhiYXNlKQkJX01NSU8oKGJhc2UpICsgMHg1MTApCisjZGVm aW5lIFJJTkdfRVhFQ0xJU1RfQ09OVFJPTChiYXNlKQkJX01NSU8oKGJhc2UpICsgMHg1NTApCiAj ZGVmaW5lCSAgRUxfQ1RSTF9MT0FECQkJCSgxIDw8IDApCiAKIC8qIFRoZSBkb2NzIHNwZWNpZnkg dGhhdCB0aGUgd3JpdGUgcG9pbnRlciB3cmFwcyBhcm91bmQgYWZ0ZXIgNWgsICJBZnRlciBzdGF0 dXMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBhNWI0YTJkOWE0 OTIuLjY3ZjEwM2ZiYjkxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YwpAQCAtNTc1LDE5ICs1NzUsMTkgQEAgc3RhdGljIHZvaWQgc2V0X2h3c3Aoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgb2Zmc2V0KQogc3RhdGljIHZvaWQgZmx1c2hfY3NfdGxi KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Ci0JaTkxNV9yZWdfdCBpbnN0cG0gPSBSSU5H X0lOU1RQTShlbmdpbmUtPm1taW9fYmFzZSk7CiAKIAlpZiAoIUlTX0dFTl9SQU5HRShkZXZfcHJp diwgNiwgNykpCiAJCXJldHVybjsKIAogCS8qIHJpbmcgc2hvdWxkIGJlIGlkbGUgYmVmb3JlIGlz c3VpbmcgYSBzeW5jIGZsdXNoKi8KLQlXQVJOX09OKChJOTE1X1JFQURfTU9ERShlbmdpbmUpICYg TU9ERV9JRExFKSA9PSAwKTsKLQotCUk5MTVfV1JJVEUoaW5zdHBtLAotCQkgICBfTUFTS0VEX0JJ VF9FTkFCTEUoSU5TVFBNX1RMQl9JTlZBTElEQVRFIHwKLQkJCQkgICAgICBJTlNUUE1fU1lOQ19G TFVTSCkpOwotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwK LQkJCQkgICAgaW5zdHBtLCBJTlNUUE1fU1lOQ19GTFVTSCwgMCwKKwlXQVJOX09OKChFTkdJTkVf UkVBRChlbmdpbmUsIFJJTkdfTUlfTU9ERSkgJiBNT0RFX0lETEUpID09IDApOworCisJRU5HSU5F X1dSSVRFKGVuZ2luZSwgUklOR19JTlNUUE0sCisJCSAgICAgX01BU0tFRF9CSVRfRU5BQkxFKElO U1RQTV9UTEJfSU5WQUxJREFURSB8CisJCQkJCUlOU1RQTV9TWU5DX0ZMVVNIKSk7CisJaWYgKGlu dGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGVuZ2luZS0+dW5jb3JlLAorCQkJCSAgICBSSU5HX0lOU1RQ TShlbmdpbmUtPm1taW9fYmFzZSksCisJCQkJICAgIElOU1RQTV9TWU5DX0ZMVVNILCAwLAogCQkJ CSAgICAxMDAwKSkKIAkJRFJNX0VSUk9SKCIlczogd2FpdCBmb3IgU3luY0ZsdXNoIHRvIGNvbXBs ZXRlIGZvciBUTEIgaW52YWxpZGF0aW9uIHRpbWVkIG91dFxuIiwKIAkJCSAgZW5naW5lLT5uYW1l KTsKQEAgLTYwNiw4ICs2MDYsOCBAQCBzdGF0aWMgYm9vbCBzdG9wX3Jpbmcoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGVuZ2luZS0+aTkxNTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID4gMikgewotCQlJOTE1 X1dSSVRFX01PREUoZW5naW5lLCBfTUFTS0VEX0JJVF9FTkFCTEUoU1RPUF9SSU5HKSk7Ci0JCWlm IChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwKKwkJRU5HSU5FX1dS SVRFKGVuZ2luZSwgUklOR19NSV9NT0RFLCBfTUFTS0VEX0JJVF9FTkFCTEUoU1RPUF9SSU5HKSk7 CisJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihlbmdpbmUtPnVuY29yZSwKIAkJCQkJICAg IFJJTkdfTUlfTU9ERShlbmdpbmUtPm1taW9fYmFzZSksCiAJCQkJCSAgICBNT0RFX0lETEUsCiAJ CQkJCSAgICBNT0RFX0lETEUsCkBAIC02MTgsMjAgKzYxOCwyMCBAQCBzdGF0aWMgYm9vbCBzdG9w X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJICogc2V0IGV2ZW4gdGhv dWdoIHRoZSByaW5nIGlzIGVtcHR5LiBTbyBkb3VibGUKIAkJCSAqIGNoZWNrIGJlZm9yZSBnaXZp bmcgdXAuCiAJCQkgKi8KLQkJCWlmIChJOTE1X1JFQURfSEVBRChlbmdpbmUpICE9IEk5MTVfUkVB RF9UQUlMKGVuZ2luZSkpCisJCQlpZiAoRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0hFQUQpICE9 IEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19UQUlMKSkKIAkJCQlyZXR1cm4gZmFsc2U7CiAJCX0K IAl9CiAKLQlJOTE1X1dSSVRFX0hFQUQoZW5naW5lLCBJOTE1X1JFQURfVEFJTChlbmdpbmUpKTsK KwlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0hFQUQsIEVOR0lORV9SRUFEKGVuZ2luZSwgUklO R19UQUlMKSk7CiAKLQlJOTE1X1dSSVRFX0hFQUQoZW5naW5lLCAwKTsKLQlJOTE1X1dSSVRFX1RB SUwoZW5naW5lLCAwKTsKKwlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0hFQUQsIDApOworCUVO R0lORV9XUklURShlbmdpbmUsIFJJTkdfVEFJTCwgMCk7CiAKIAkvKiBUaGUgcmluZyBtdXN0IGJl IGVtcHR5IGJlZm9yZSBpdCBpcyBkaXNhYmxlZCAqLwotCUk5MTVfV1JJVEVfQ1RMKGVuZ2luZSwg MCk7CisJRU5HSU5FX1dSSVRFKGVuZ2luZSwgUklOR19DVEwsIDApOwogCi0JcmV0dXJuIChJOTE1 X1JFQURfSEVBRChlbmdpbmUpICYgSEVBRF9BRERSKSA9PSAwOworCXJldHVybiAoRU5HSU5FX1JF QUQoZW5naW5lLCBSSU5HX0hFQUQpICYgSEVBRF9BRERSKSA9PSAwOwogfQogCiBzdGF0aWMgaW50 IGluaXRfcmluZ19jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtNjQw LDI2ICs2NDAsMjYgQEAgc3RhdGljIGludCBpbml0X3JpbmdfY29tbW9uKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIAlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IGVuZ2luZS0+YnVm ZmVyOwogCWludCByZXQgPSAwOwogCi0JaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoJmRldl9w cml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOworCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0 KGVuZ2luZS0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKIAogCWlmICghc3RvcF9yaW5nKGVuZ2lu ZSkpIHsKIAkJLyogRzQ1IHJpbmcgaW5pdGlhbGl6YXRpb24gb2Z0ZW4gZmFpbHMgdG8gcmVzZXQg aGVhZCB0byB6ZXJvICovCiAJCURSTV9ERUJVR19EUklWRVIoIiVzIGhlYWQgbm90IHJlc2V0IHRv IHplcm8gIgogCQkJCSJjdGwgJTA4eCBoZWFkICUwOHggdGFpbCAlMDh4IHN0YXJ0ICUwOHhcbiIs CiAJCQkJZW5naW5lLT5uYW1lLAotCQkJCUk5MTVfUkVBRF9DVEwoZW5naW5lKSwKLQkJCQlJOTE1 X1JFQURfSEVBRChlbmdpbmUpLAotCQkJCUk5MTVfUkVBRF9UQUlMKGVuZ2luZSksCi0JCQkJSTkx NV9SRUFEX1NUQVJUKGVuZ2luZSkpOworCQkJCUVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19DVEwp LAorCQkJCUVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19IRUFEKSwKKwkJCQlFTkdJTkVfUkVBRChl bmdpbmUsIFJJTkdfVEFJTCksCisJCQkJRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX1NUQVJUKSk7 CiAKIAkJaWYgKCFzdG9wX3JpbmcoZW5naW5lKSkgewogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8g c2V0ICVzIGhlYWQgdG8gemVybyAiCiAJCQkJICAiY3RsICUwOHggaGVhZCAlMDh4IHRhaWwgJTA4 eCBzdGFydCAlMDh4XG4iLAogCQkJCSAgZW5naW5lLT5uYW1lLAotCQkJCSAgSTkxNV9SRUFEX0NU TChlbmdpbmUpLAotCQkJCSAgSTkxNV9SRUFEX0hFQUQoZW5naW5lKSwKLQkJCQkgIEk5MTVfUkVB RF9UQUlMKGVuZ2luZSksCi0JCQkJICBJOTE1X1JFQURfU1RBUlQoZW5naW5lKSk7CisJCQkJICBF TkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfQ1RMKSwKKwkJCQkgIEVOR0lORV9SRUFEKGVuZ2luZSwg UklOR19IRUFEKSwKKwkJCQkgIEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19UQUlMKSwKKwkJCQkg IEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19TVEFSVCkpOwogCQkJcmV0ID0gLUVJTzsKIAkJCWdv dG8gb3V0OwogCQl9CkBAIC02NzMsMTggKzY3MywxOCBAQCBzdGF0aWMgaW50IGluaXRfcmluZ19j b21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWludGVsX2VuZ2luZV9yZXNl dF9icmVhZGNydW1icyhlbmdpbmUpOwogCiAJLyogRW5mb3JjZSBvcmRlcmluZyBieSByZWFkaW5n IEhFQUQgcmVnaXN0ZXIgYmFjayAqLwotCUk5MTVfUkVBRF9IRUFEKGVuZ2luZSk7CisJRU5HSU5F X1JFQUQoZW5naW5lLCBSSU5HX0hFQUQpOwogCiAJLyogSW5pdGlhbGl6ZSB0aGUgcmluZy4gVGhp cyBtdXN0IGhhcHBlbiBfYWZ0ZXJfIHdlJ3ZlIGNsZWFyZWQgdGhlIHJpbmcKIAkgKiByZWdpc3Rl cnMgd2l0aCB0aGUgYWJvdmUgc2VxdWVuY2UgKHRoZSByZWFkYmFjayBvZiB0aGUgSEVBRCByZWdp c3RlcnMKIAkgKiBhbHNvIGVuZm9yY2VzIG9yZGVyaW5nKSwgb3RoZXJ3aXNlIHRoZSBodyBtaWdo dCBsb3NlIHRoZSBuZXcgcmluZwogCSAqIHJlZ2lzdGVyIHZhbHVlcy4gKi8KLQlJOTE1X1dSSVRF X1NUQVJUKGVuZ2luZSwgaTkxNV9nZ3R0X29mZnNldChyaW5nLT52bWEpKTsKKwlFTkdJTkVfV1JJ VEUoZW5naW5lLCBSSU5HX1NUQVJULCBpOTE1X2dndHRfb2Zmc2V0KHJpbmctPnZtYSkpOwogCiAJ LyogV2FDbGVhclJpbmdCdWZIZWFkUmVnQXRJbml0OmN0ZyxlbGsgKi8KLQlpZiAoSTkxNV9SRUFE X0hFQUQoZW5naW5lKSkKKwlpZiAoRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0hFQUQpKQogCQlE Uk1fREVCVUdfRFJJVkVSKCIlcyBpbml0aWFsaXphdGlvbiBmYWlsZWQgW2hlYWQ9JTA4eF0sIGZ1 ZGdpbmdcbiIsCi0JCQkJIGVuZ2luZS0+bmFtZSwgSTkxNV9SRUFEX0hFQUQoZW5naW5lKSk7CisJ CQkJIGVuZ2luZS0+bmFtZSwgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0hFQUQpKTsKIAogCS8q IENoZWNrIHRoYXQgdGhlIHJpbmcgb2Zmc2V0cyBwb2ludCB3aXRoaW4gdGhlIHJpbmchICovCiAJ R0VNX0JVR19PTighaW50ZWxfcmluZ19vZmZzZXRfdmFsaWQocmluZywgcmluZy0+aGVhZCkpOwpA QCAtNjkyLDQzICs2OTIsNDMgQEAgc3RhdGljIGludCBpbml0X3JpbmdfY29tbW9uKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nKTsK IAogCS8qIEZpcnN0IHdha2UgdGhlIHJpbmcgdXAgdG8gYW4gZW1wdHkvaWRsZSByaW5nICovCi0J STkxNV9XUklURV9IRUFEKGVuZ2luZSwgcmluZy0+aGVhZCk7Ci0JSTkxNV9XUklURV9UQUlMKGVu Z2luZSwgcmluZy0+aGVhZCk7Ci0JKHZvaWQpSTkxNV9SRUFEX1RBSUwoZW5naW5lKTsKKwlFTkdJ TkVfV1JJVEUoZW5naW5lLCBSSU5HX0hFQUQsIHJpbmctPmhlYWQpOworCUVOR0lORV9XUklURShl bmdpbmUsIFJJTkdfVEFJTCwgcmluZy0+aGVhZCk7CisJRU5HSU5FX1BPU1RJTkdfUkVBRChlbmdp bmUsIFJJTkdfVEFJTCk7CiAKLQlJOTE1X1dSSVRFX0NUTChlbmdpbmUsIFJJTkdfQ1RMX1NJWkUo cmluZy0+c2l6ZSkgfCBSSU5HX1ZBTElEKTsKKwlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0NU TCwgUklOR19DVExfU0laRShyaW5nLT5zaXplKSB8IFJJTkdfVkFMSUQpOwogCiAJLyogSWYgdGhl IGhlYWQgaXMgc3RpbGwgbm90IHplcm8sIHRoZSByaW5nIGlzIGRlYWQgKi8KLQlpZiAoaW50ZWxf d2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCisJaWYgKGludGVsX3dhaXRfZm9y X3JlZ2lzdGVyKGVuZ2luZS0+dW5jb3JlLAogCQkJCSAgICBSSU5HX0NUTChlbmdpbmUtPm1taW9f YmFzZSksCiAJCQkJICAgIFJJTkdfVkFMSUQsIFJJTkdfVkFMSUQsCiAJCQkJICAgIDUwKSkgewog CQlEUk1fRVJST1IoIiVzIGluaXRpYWxpemF0aW9uIGZhaWxlZCAiCiAJCQkgICJjdGwgJTA4eCAo dmFsaWQ/ICVkKSBoZWFkICUwOHggWyUwOHhdIHRhaWwgJTA4eCBbJTA4eF0gc3RhcnQgJTA4eCBb ZXhwZWN0ZWQgJTA4eF1cbiIsCiAJCQkgIGVuZ2luZS0+bmFtZSwKLQkJCSAgSTkxNV9SRUFEX0NU TChlbmdpbmUpLAotCQkJICBJOTE1X1JFQURfQ1RMKGVuZ2luZSkgJiBSSU5HX1ZBTElELAotCQkJ ICBJOTE1X1JFQURfSEVBRChlbmdpbmUpLCByaW5nLT5oZWFkLAotCQkJICBJOTE1X1JFQURfVEFJ TChlbmdpbmUpLCByaW5nLT50YWlsLAotCQkJICBJOTE1X1JFQURfU1RBUlQoZW5naW5lKSwKKwkJ CSAgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX0NUTCksCisJCQkgIEVOR0lORV9SRUFEKGVuZ2lu ZSwgUklOR19DVEwpICYgUklOR19WQUxJRCwKKwkJCSAgRU5HSU5FX1JFQUQoZW5naW5lLCBSSU5H X0hFQUQpLCByaW5nLT5oZWFkLAorCQkJICBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfVEFJTCks IHJpbmctPnRhaWwsCisJCQkgIEVOR0lORV9SRUFEKGVuZ2luZSwgUklOR19TVEFSVCksCiAJCQkg IGk5MTVfZ2d0dF9vZmZzZXQocmluZy0+dm1hKSk7CiAJCXJldCA9IC1FSU87CiAJCWdvdG8gb3V0 OwogCX0KIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID4gMikKLQkJSTkxNV9XUklURV9NT0RF KGVuZ2luZSwgX01BU0tFRF9CSVRfRElTQUJMRShTVE9QX1JJTkcpKTsKKwkJRU5HSU5FX1dSSVRF KGVuZ2luZSwgUklOR19NSV9NT0RFLCBfTUFTS0VEX0JJVF9ESVNBQkxFKFNUT1BfUklORykpOwog CiAJLyogTm93IGF3YWtlLCBsZXQgaXQgZ2V0IHN0YXJ0ZWQgKi8KIAlpZiAocmluZy0+dGFpbCAh PSByaW5nLT5oZWFkKSB7Ci0JCUk5MTVfV1JJVEVfVEFJTChlbmdpbmUsIHJpbmctPnRhaWwpOwot CQkodm9pZClJOTE1X1JFQURfVEFJTChlbmdpbmUpOworCQlFTkdJTkVfV1JJVEUoZW5naW5lLCBS SU5HX1RBSUwsIHJpbmctPnRhaWwpOworCQlFTkdJTkVfUE9TVElOR19SRUFEKGVuZ2luZSwgUklO R19UQUlMKTsKIAl9CiAKIAkvKiBQYXBlcmluZyBvdmVyIGxvc3QgX2ludGVycnVwdHNfIGltbWVk aWF0ZWx5IGZvbGxvd2luZyB0aGUgcmVzdGFydCAqLwogCWludGVsX2VuZ2luZV9xdWV1ZV9icmVh ZGNydW1icyhlbmdpbmUpOwogb3V0OgotCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KCZkZXZf cHJpdi0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1 dChlbmdpbmUtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAt ODY5LDcgKzg2OSw3IEBAIHN0YXRpYyBpbnQgaW5pdF9yZW5kZXJfcmluZyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJCUk5MTVfV1JJVEUoSU5TVFBNLCBfTUFTS0VEX0JJVF9FTkFC TEUoSU5TVFBNX0ZPUkNFX09SREVSSU5HKSk7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA2KQotCQlJOTE1X1dSSVRFX0lNUihlbmdpbmUsIH5lbmdpbmUtPmlycV9rZWVwX21hc2spOwor CQlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0lNUiwgfmVuZ2luZS0+aXJxX2tlZXBfbWFzayk7 CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTg5NiwxMiArODk2LDEwIEBAIHN0YXRpYyB2b2lkIGNhbmNl bF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIHN0YXRpYyB2b2lk IGk5eHhfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIHsKLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByZXF1ZXN0LT5pOTE1OwotCiAJaTkx NV9yZXF1ZXN0X3N1Ym1pdChyZXF1ZXN0KTsKIAotCUk5MTVfV1JJVEVfVEFJTChyZXF1ZXN0LT5l bmdpbmUsCi0JCQlpbnRlbF9yaW5nX3NldF90YWlsKHJlcXVlc3QtPnJpbmcsIHJlcXVlc3QtPnRh aWwpKTsKKwlFTkdJTkVfV1JJVEUocmVxdWVzdC0+ZW5naW5lLCBSSU5HX1RBSUwsCisJCSAgICAg aW50ZWxfcmluZ19zZXRfdGFpbChyZXF1ZXN0LT5yaW5nLCByZXF1ZXN0LT50YWlsKSk7CiB9CiAK IHN0YXRpYyB1MzIgKmk5eHhfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx LCB1MzIgKmNzKQpAQCAtOTczLDIwICs5NzEsMjAgQEAgZ2VuNV9pcnFfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiBzdGF0aWMgdm9pZAogaTl4eF9pcnFfZW5hYmxlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CisJR0VNX0JVR19PTihlbmdpbmUtPmlkICE9IFJD UzApOwogCi0JZGV2X3ByaXYtPmlycV9tYXNrICY9IH5lbmdpbmUtPmlycV9lbmFibGVfbWFzazsK LQlJOTE1X1dSSVRFKElNUiwgZGV2X3ByaXYtPmlycV9tYXNrKTsKLQlQT1NUSU5HX1JFQURfRlco UklOR19JTVIoZW5naW5lLT5tbWlvX2Jhc2UpKTsKKwllbmdpbmUtPmk5MTUtPmlycV9tYXNrICY9 IH5lbmdpbmUtPmlycV9lbmFibGVfbWFzazsKKwlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0lN UiwgZW5naW5lLT5pOTE1LT5pcnFfbWFzayk7CisJRU5HSU5FX1BPU1RJTkdfUkVBRChlbmdpbmUs IFJJTkdfSU1SKTsKIH0KIAogc3RhdGljIHZvaWQKIGk5eHhfaXJxX2Rpc2FibGUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGVuZ2luZS0+aTkxNTsKKwlHRU1fQlVHX09OKGVuZ2luZS0+aWQgIT0gUkNTMCk7CiAK LQlkZXZfcHJpdi0+aXJxX21hc2sgfD0gZW5naW5lLT5pcnFfZW5hYmxlX21hc2s7Ci0JSTkxNV9X UklURShJTVIsIGRldl9wcml2LT5pcnFfbWFzayk7CisJZW5naW5lLT5pOTE1LT5pcnFfbWFzayB8 PSBlbmdpbmUtPmlycV9lbmFibGVfbWFzazsKKwlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0lN UiwgZW5naW5lLT5pOTE1LT5pcnFfbWFzayk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xMDI2LDQ3 ICsxMDI0LDM4IEBAIGJzZF9yaW5nX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIg bW9kZSkKIHN0YXRpYyB2b2lkCiBnZW42X2lycV9lbmFibGUoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2lu ZS0+aTkxNTsKLQotCUk5MTVfV1JJVEVfSU1SKGVuZ2luZSwKLQkJICAgICAgIH4oZW5naW5lLT5p cnFfZW5hYmxlX21hc2sgfAotCQkJIGVuZ2luZS0+aXJxX2tlZXBfbWFzaykpOworCUVOR0lORV9X UklURShlbmdpbmUsIFJJTkdfSU1SLAorCQkgICAgIH4oZW5naW5lLT5pcnFfZW5hYmxlX21hc2sg fCBlbmdpbmUtPmlycV9rZWVwX21hc2spKTsKIAogCS8qIEZsdXNoL2RlbGF5IHRvIGVuc3VyZSB0 aGUgUklOR19JTVIgaXMgYWN0aXZlIGJlZm9yZSB0aGUgR1QgSU1SICovCi0JUE9TVElOR19SRUFE X0ZXKFJJTkdfSU1SKGVuZ2luZS0+bW1pb19iYXNlKSk7CisJRU5HSU5FX1BPU1RJTkdfUkVBRChl bmdpbmUsIFJJTkdfSU1SKTsKIAotCWdlbjVfZW5hYmxlX2d0X2lycShkZXZfcHJpdiwgZW5naW5l LT5pcnFfZW5hYmxlX21hc2spOworCWdlbjVfZW5hYmxlX2d0X2lycShlbmdpbmUtPmk5MTUsIGVu Z2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKIH0KIAogc3RhdGljIHZvaWQKIGdlbjZfaXJxX2Rpc2Fi bGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKLQotCUk5MTVfV1JJVEVfSU1SKGVuZ2lu ZSwgfmVuZ2luZS0+aXJxX2tlZXBfbWFzayk7Ci0JZ2VuNV9kaXNhYmxlX2d0X2lycShkZXZfcHJp diwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOworCUVOR0lORV9XUklURShlbmdpbmUsIFJJTkdf SU1SLCB+ZW5naW5lLT5pcnFfa2VlcF9tYXNrKTsKKwlnZW41X2Rpc2FibGVfZ3RfaXJxKGVuZ2lu ZS0+aTkxNSwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOwogfQogCiBzdGF0aWMgdm9pZAogaHN3 X3ZlYm94X2lycV9lbmFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKLQotCUk5MTVf V1JJVEVfSU1SKGVuZ2luZSwgfmVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKKwlFTkdJTkVfV1JJ VEUoZW5naW5lLCBSSU5HX0lNUiwgfmVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKIAogCS8qIEZs dXNoL2RlbGF5IHRvIGVuc3VyZSB0aGUgUklOR19JTVIgaXMgYWN0aXZlIGJlZm9yZSB0aGUgR1Qg SU1SICovCi0JUE9TVElOR19SRUFEX0ZXKFJJTkdfSU1SKGVuZ2luZS0+bW1pb19iYXNlKSk7CisJ RU5HSU5FX1BPU1RJTkdfUkVBRChlbmdpbmUsIFJJTkdfSU1SKTsKIAotCWdlbjZfdW5tYXNrX3Bt X2lycShkZXZfcHJpdiwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOworCWdlbjZfdW5tYXNrX3Bt X2lycShlbmdpbmUtPmk5MTUsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKIH0KIAogc3RhdGlj IHZvaWQKIGhzd192ZWJveF9pcnFfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1 OwotCi0JSTkxNV9XUklURV9JTVIoZW5naW5lLCB+MCk7Ci0JZ2VuNl9tYXNrX3BtX2lycShkZXZf cHJpdiwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOworCUVOR0lORV9XUklURShlbmdpbmUsIFJJ TkdfSU1SLCB+MCk7CisJZ2VuNl9tYXNrX3BtX2lycShlbmdpbmUtPmk5MTUsIGVuZ2luZS0+aXJx X2VuYWJsZV9tYXNrKTsKIH0KIAogc3RhdGljIGludApAQCAtMTU3Nyw3ICsxNTY2LDcgQEAgdm9p ZCBpbnRlbF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwogCiAJV0FS Tl9PTihJTlRFTF9HRU4oZGV2X3ByaXYpID4gMiAmJgotCQkoSTkxNV9SRUFEX01PREUoZW5naW5l KSAmIE1PREVfSURMRSkgPT0gMCk7CisJCShFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfTUlfTU9E RSkgJiBNT0RFX0lETEUpID09IDApOwogCiAJaW50ZWxfcmluZ191bnBpbihlbmdpbmUtPmJ1ZmZl cik7CiAJaW50ZWxfcmluZ19wdXQoZW5naW5lLT5idWZmZXIpOwpAQCAtMTYxMiwxMSArMTYwMSwx MSBAQCBzdGF0aWMgaW50IGxvYWRfcGRfZGlyKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCQly ZXR1cm4gUFRSX0VSUihjcyk7CiAKIAkqY3MrKyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDEpOwot CSpjcysrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19QUF9ESVJfRENMVihlbmdpbmUpKTsK KwkqY3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfUFBfRElSX0RDTFYoZW5naW5lLT5t bWlvX2Jhc2UpKTsKIAkqY3MrKyA9IFBQX0RJUl9EQ0xWXzJHOwogCiAJKmNzKysgPSBNSV9MT0FE X1JFR0lTVEVSX0lNTSgxKTsKLQkqY3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfUFBf RElSX0JBU0UoZW5naW5lKSk7CisJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX1BQ X0RJUl9CQVNFKGVuZ2luZS0+bW1pb19iYXNlKSk7CiAJKmNzKysgPSBwcGd0dC0+cGQuYmFzZS5n Z3R0X29mZnNldCA8PCAxMDsKIAogCWludGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOwpAQCAtMTYz NSw3ICsxNjI0LDcgQEAgc3RhdGljIGludCBmbHVzaF9wZF9kaXIoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEpCiAKIAkvKiBTdGFsbCB1bnRpbCB0aGUgcGFnZSB0YWJsZSBsb2FkIGlzIGNvbXBsZXRl ICovCiAJKmNzKysgPSBNSV9TVE9SRV9SRUdJU1RFUl9NRU0gfCBNSV9TUk1fTFJNX0dMT0JBTF9H VFQ7Ci0JKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX1BQX0RJUl9CQVNFKGVuZ2lu ZSkpOworCSpjcysrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19QUF9ESVJfQkFTRShlbmdp bmUtPm1taW9fYmFzZSkpOwogCSpjcysrID0gaTkxNV9zY3JhdGNoX29mZnNldChycS0+aTkxNSk7 CiAJKmNzKysgPSBNSV9OT09QOwogCkBAIC0yMDUyLDcgKzIwNDEsNyBAQCBpbnQgaW50ZWxfcmlu Z19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAKIHN0YXRpYyB2b2lk IGdlbjZfYnNkX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiB7 Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJnJlcXVlc3QtPmk5MTUtPnVuY29yZTsK KwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSByZXF1ZXN0LT5lbmdpbmUtPnVuY29yZTsK IAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCBhMDJjOTJkYWM1ZGEu LmU1OGQ2ZjA0MTc3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApA QCAtMjksMjMgKzI5LDQ0IEBAIHN0cnVjdCBkcm1fcHJpbnRlcjsKICNkZWZpbmUgQ0FDSEVMSU5F X0JZVEVTIDY0CiAjZGVmaW5lIENBQ0hFTElORV9EV09SRFMgKENBQ0hFTElORV9CWVRFUyAvIHNp emVvZih1MzIpKQogCi0jZGVmaW5lIEk5MTVfUkVBRF9UQUlMKGVuZ2luZSkgSTkxNV9SRUFEKFJJ TkdfVEFJTCgoZW5naW5lKS0+bW1pb19iYXNlKSkKLSNkZWZpbmUgSTkxNV9XUklURV9UQUlMKGVu Z2luZSwgdmFsKSBJOTE1X1dSSVRFKFJJTkdfVEFJTCgoZW5naW5lKS0+bW1pb19iYXNlKSwgdmFs KQorLyoKKyAqIFRoZSByZWdpc3RlciBkZWZpbmVzIHRvIGJlIHVzZWQgd2l0aCB0aGUgZm9sbG93 aW5nIG1hY3JvcyBuZWVkIHRvIGFjY2VwdCBhCisgKiBiYXNlIHBhcmFtLCBlLmc6CisgKgorICog UkVHX0ZPTyhiYXNlKSBfTU1JTygoYmFzZSkgKyA8cmVsYXRpdmUgb2Zmc2V0PikKKyAqIEVOR0lO RV9SRUFEKGVuZ2luZSwgUkVHX0ZPTyk7CisgKgorICogcmVnaXN0ZXIgYXJyYXlzIGFyZSB0byBi ZSBkZWZpbmVkIGFuZCBhY2Nlc3NlZCBhcyBmb2xsb3dzOgorICoKKyAqIFJFR19CQVIoYmFzZSwg aSkgX01NSU8oKGJhc2UpICsgPHJlbGF0aXZlIG9mZnNldD4gKyAoaSkgKiA8c2hpZnQ+KQorICog RU5HSU5FX1JFQURfSURYKGVuZ2luZSwgUkVHX0JBUiwgaSkKKyAqLworCisjZGVmaW5lIF9fRU5H SU5FX1JFR19PUChvcF9fLCBlbmdpbmVfXywgLi4uKSBcCisJaW50ZWxfdW5jb3JlXyMjb3BfXygo ZW5naW5lX18pLT51bmNvcmUsIF9fVkFfQVJHU19fKQorCisjZGVmaW5lIF9fRU5HSU5FX1JFQURf T1Aob3BfXywgZW5naW5lX18sIHJlZ19fKSBcCisJX19FTkdJTkVfUkVHX09QKG9wX18sIChlbmdp bmVfXyksIHJlZ19fKChlbmdpbmVfXyktPm1taW9fYmFzZSkpCiAKLSNkZWZpbmUgSTkxNV9SRUFE X1NUQVJUKGVuZ2luZSkgSTkxNV9SRUFEKFJJTkdfU1RBUlQoKGVuZ2luZSktPm1taW9fYmFzZSkp Ci0jZGVmaW5lIEk5MTVfV1JJVEVfU1RBUlQoZW5naW5lLCB2YWwpIEk5MTVfV1JJVEUoUklOR19T VEFSVCgoZW5naW5lKS0+bW1pb19iYXNlKSwgdmFsKQorI2RlZmluZSBFTkdJTkVfUkVBRDE2KC4u LikJX19FTkdJTkVfUkVBRF9PUChyZWFkMTYsIF9fVkFfQVJHU19fKQorI2RlZmluZSBFTkdJTkVf UkVBRCguLi4pCV9fRU5HSU5FX1JFQURfT1AocmVhZCwgX19WQV9BUkdTX18pCisjZGVmaW5lIEVO R0lORV9SRUFEX0ZXKC4uLikJX19FTkdJTkVfUkVBRF9PUChyZWFkX2Z3LCBfX1ZBX0FSR1NfXykK KyNkZWZpbmUgRU5HSU5FX1BPU1RJTkdfUkVBRCguLi4pIF9fRU5HSU5FX1JFQURfT1AocG9zdGlu Z19yZWFkLCBfX1ZBX0FSR1NfXykKIAotI2RlZmluZSBJOTE1X1JFQURfSEVBRChlbmdpbmUpICBJ OTE1X1JFQUQoUklOR19IRUFEKChlbmdpbmUpLT5tbWlvX2Jhc2UpKQotI2RlZmluZSBJOTE1X1dS SVRFX0hFQUQoZW5naW5lLCB2YWwpIEk5MTVfV1JJVEUoUklOR19IRUFEKChlbmdpbmUpLT5tbWlv X2Jhc2UpLCB2YWwpCisjZGVmaW5lIEVOR0lORV9SRUFENjQoZW5naW5lX18sIGxvd2VyX3JlZ19f LCB1cHBlcl9yZWdfXykgXAorCV9fRU5HSU5FX1JFR19PUChyZWFkNjRfMngzMiwgKGVuZ2luZV9f KSwgXAorCQkJbG93ZXJfcmVnX18oKGVuZ2luZV9fKS0+bW1pb19iYXNlKSwgXAorCQkJdXBwZXJf cmVnX18oKGVuZ2luZV9fKS0+bW1pb19iYXNlKSkKIAotI2RlZmluZSBJOTE1X1JFQURfQ1RMKGVu Z2luZSkgSTkxNV9SRUFEKFJJTkdfQ1RMKChlbmdpbmUpLT5tbWlvX2Jhc2UpKQotI2RlZmluZSBJ OTE1X1dSSVRFX0NUTChlbmdpbmUsIHZhbCkgSTkxNV9XUklURShSSU5HX0NUTCgoZW5naW5lKS0+ bW1pb19iYXNlKSwgdmFsKQorI2RlZmluZSBFTkdJTkVfUkVBRF9JRFgoZW5naW5lX18sIHJlZ19f LCBpZHhfXykgXAorCV9fRU5HSU5FX1JFR19PUChyZWFkLCAoZW5naW5lX18pLCByZWdfXygoZW5n aW5lX18pLT5tbWlvX2Jhc2UsIChpZHhfXykpKQogCi0jZGVmaW5lIEk5MTVfUkVBRF9JTVIoZW5n aW5lKSBJOTE1X1JFQUQoUklOR19JTVIoKGVuZ2luZSktPm1taW9fYmFzZSkpCi0jZGVmaW5lIEk5 MTVfV1JJVEVfSU1SKGVuZ2luZSwgdmFsKSBJOTE1X1dSSVRFKFJJTkdfSU1SKChlbmdpbmUpLT5t bWlvX2Jhc2UpLCB2YWwpCisjZGVmaW5lIF9fRU5HSU5FX1dSSVRFX09QKG9wX18sIGVuZ2luZV9f LCByZWdfXywgdmFsX18pIFwKKwlfX0VOR0lORV9SRUdfT1Aob3BfXywgKGVuZ2luZV9fKSwgcmVn X18oKGVuZ2luZV9fKS0+bW1pb19iYXNlKSwgKHZhbF9fKSkKIAotI2RlZmluZSBJOTE1X1JFQURf TU9ERShlbmdpbmUpIEk5MTVfUkVBRChSSU5HX01JX01PREUoKGVuZ2luZSktPm1taW9fYmFzZSkp Ci0jZGVmaW5lIEk5MTVfV1JJVEVfTU9ERShlbmdpbmUsIHZhbCkgSTkxNV9XUklURShSSU5HX01J X01PREUoKGVuZ2luZSktPm1taW9fYmFzZSksIHZhbCkKKyNkZWZpbmUgRU5HSU5FX1dSSVRFMTYo Li4uKQlfX0VOR0lORV9XUklURV9PUCh3cml0ZTE2LCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgRU5H SU5FX1dSSVRFKC4uLikJX19FTkdJTkVfV1JJVEVfT1Aod3JpdGUsIF9fVkFfQVJHU19fKQorI2Rl ZmluZSBFTkdJTkVfV1JJVEVfRlcoLi4uKQlfX0VOR0lORV9XUklURV9PUCh3cml0ZV9mdywgX19W QV9BUkdTX18pCiAKIC8qIHNlcW5vIHNpemUgaXMgYWN0dWFsbHkgb25seSBhIHVpbnQzMiwgYnV0 IHNpbmNlIHdlIHBsYW4gdG8gdXNlIE1JX0ZMVVNIX0RXIHRvCiAgKiBkbyB0aGUgd3JpdGVzLCBh bmQgdGhhdCBtdXN0IGhhdmUgcXcgYWxpZ25lZCBvZmZzZXRzLCBzaW1wbHkgcHJldGVuZCBpdCdz IDhiLgotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng=