From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 115/117] drm/amdgpu/display: Enable DCN in DC Date: Wed, 10 May 2017 14:47:46 -0400 Message-ID: <1494442068-8202-108-git-send-email-alexander.deucher@amd.com> References: <1494442068-8202-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1494442068-8202-1-git-send-email-alexander.deucher-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Alex Deucher , Harry Wentland RnJvbTogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+CgpFbmFibGUgRENO IGluIERDLgoKU2lnbmVkLW9mZi1ieTogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFt ZC5jb20+ClNpZ25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1k LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvS2NvbmZpZyAgICAgICAgICAg ICAgICB8ICAgNyArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdw dV9kbS5jICB8IDE2NyArKysrKysrKysrKystCiAuLi4vZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9k bS9hbWRncHVfZG1fdHlwZXMuYyAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL01ha2VmaWxlICAgICAgICAgICAgfCAgIDUgKwogLi4uL2FtZC9kaXNwbGF5L2RjL2Jp b3MvY29tbWFuZF90YWJsZV9oZWxwZXIyLmMgICAgfCAgIDUgKwogZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2NhbGNzL01ha2VmaWxlICAgICAgfCAgIDggKwogZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfcmVzb3VyY2UuYyAgfCAgMTkgKysKIGRyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9kYy5oICAgICAgICAgICAgICAgIHwgIDE4ICsrCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9hYm0uaCAgICAgICB8ICA0OSArKysrCiAu Li4vZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5jICB8ICAzMSAr KysKIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmggIHwg IDIxICsrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9ja3MuYyAg ICB8ICAxNSArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tz LmggICAgfCAgIDkgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfZG1j dS5jICAgICAgfCAyNDUgKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2RjZS9kY2VfZG1jdS5oICAgICAgfCAgMjEgKysKIGRyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9kY2UvZGNlX2h3c2VxLmggICAgIHwgIDE1ICsrCiAuLi4vZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9kY2UvZGNlX2xpbmtfZW5jb2Rlci5oICB8ICAxNiArLQogLi4uL2RybS9h bWQvZGlzcGxheS9kYy9kY2UvZGNlX3N0cmVhbV9lbmNvZGVyLmMgICAgfCAyNjQgKysrKysrKysr KysrKysrKysrKysrCiAuLi4vZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2Vfc3RyZWFtX2VuY29k ZXIuaCAgICB8ICA2OSArKysrKysKIC4uLi9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX2h3 X3NlcXVlbmNlci5jICAgIHwgIDI5ICsrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2RtX3NlcnZpY2VzLmggICAgICAgfCAgIDQgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RtX3NlcnZpY2VzX3R5cGVzLmggfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2dwaW8vTWFrZWZpbGUgICAgICAgfCAgMTEgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2dwaW8vaHdfZmFjdG9yeS5jICAgfCAgIDkgKy0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9ncGlvL2h3X3RyYW5zbGF0ZS5jIHwgICA5ICsKIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9kYy9pMmNhdXgvTWFrZWZpbGUgICAgIHwgIDExICsKIGRyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9pMmNhdXgvaTJjYXV4LmMgICAgIHwgICA4ICsKIGRyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY29yZV9kYy5oICAgICAgIHwgICA1ICsKIGRyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oICAgIHwgIDI2ICsrCiAu Li4vZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvZGlzcGxheV9jbG9jay5oICB8ICAgNyAr CiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2lwcC5oICAgICAgICB8ICAg MSArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L21lbV9pbnB1dC5oICB8 ICA0MSArKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oICAg ICAgICB8IDExMCArKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMv aHcvb3BwLmggICAgICAgIHwgICAxICsKIC4uLi9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L3Rp bWluZ19nZW5lcmF0b3IuaCAgIHwgIDE2ICsrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvaXJxL01ha2VmaWxlICAgICAgICB8ICAxMCArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvaXJxL2lycV9zZXJ2aWNlLmMgICB8ICAgNSArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvaW5jbHVkZS9kYWxfYXNpY19pZC5oICB8ICAxMyArCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvaW5jbHVkZS9kYWxfdHlwZXMuaCAgICB8ICAgNSArLQogMzkgZmlsZXMgY2hhbmdl ZCwgMTMwMiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9LY29uZmlnCmluZGV4IGY2NTJjYzMuLjJiOGQ3N2MgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9LY29uZmlnCkBAIC05LDYgKzksMTMgQEAgY29uZmlnIERSTV9BTURfREMKIAog ICAgICAgICAgIFdpbGwgYmUgZGVwcmVjYXRlZCB3aGVuIHRoZSBEQyBjb21wb25lbnQgaXMgdXBz dHJlYW0uCiAKK2NvbmZpZyBEUk1fQU1EX0RDX0RDTjFfMAorICAgICAgICBib29sICJEQ04gMS4w IFJhdmVuIGZhbWlseSIKKyAgICAgICAgZGVwZW5kcyBvbiBEUk1fQU1EX0RDCisgICAgICAgIGhl bHAKKyAgICAgICAgICAgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBoYXZlCisg ICAgICAgICAgICBSViBmYW1pbHkgZm9yIGRpc3BsYXkgZW5naW5lCisKIGNvbmZpZyBERUJVR19L RVJORUxfREMKICAgICAgICAgYm9vbCAiRW5hYmxlIGtnZGIgYnJlYWsgaW4gREMiCiAgICAgICAg IGRlcGVuZHMgb24gRFJNX0FNRF9EQwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKaW5kZXggYmQ0YmMxYy4uOTgxMzY4OCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCkBAIC01 NSw2ICs1NSwxNiBAQAogCiAjaW5jbHVkZSAibW9kdWxlcy9pbmMvbW9kX2ZyZWVzeW5jLmgiCiAK KyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKyNpbmNsdWRlICJpdnNyY2lk L2lycXNyY3NfZGNuXzFfMC5oIgorCisjaW5jbHVkZSAicmF2ZW4xL0RDTi9kY25fMV8wX29mZnNl dC5oIgorI2luY2x1ZGUgInJhdmVuMS9EQ04vZGNuXzFfMF9zaF9tYXNrLmgiCisjaW5jbHVkZSAi dmVnYTEwL3NvYzE1aXAuaCIKKworI2luY2x1ZGUgInNvYzE1X2NvbW1vbi5oIgorI2VuZGlmCisK IHN0YXRpYyBlbnVtIGRybV9wbGFuZV90eXBlIGRtX3N1cmZhY2VzX3R5cGVfZGVmYXVsdFtBTURH UFVfTUFYX1BMQU5FU10gPSB7CiAJRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKIAlEUk1fUExBTkVf VFlQRV9QUklNQVJZLApAQCAtOTM2LDcgKzk0Niw4IEBAIHN0YXRpYyBpbnQgZGNlMTEwX3JlZ2lz dGVyX2lycV9oYW5kbGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpbnQgaTsKIAl1 bnNpZ25lZCBjbGllbnRfaWQgPSBBTURHUFVfSUhfQ0xJRU5USURfTEVHQUNZOwogCi0JaWYgKGFk ZXYtPmFzaWNfdHlwZSA9PSBDSElQX1ZFR0ExMCkKKwlpZiAoYWRldi0+YXNpY190eXBlID09IENI SVBfVkVHQTEwIHx8CisJICAgIGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOKQogCQljbGll bnRfaWQgPSBBTURHUFVfSUhfQ0xJRU5USURfRENFOwogCiAJaW50X3BhcmFtcy5yZXF1ZXN0ZWRf cG9sYXJpdHkgPSBJTlRFUlJVUFRfUE9MQVJJVFlfREVGQVVMVDsKQEAgLTEwMDksNiArMTAyMCw5 MiBAQCBzdGF0aWMgaW50IGRjZTExMF9yZWdpc3Rlcl9pcnFfaGFuZGxlcnMoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1f QU1EX0RDX0RDTjFfMCkKKy8qIFJlZ2lzdGVyIElSUSBzb3VyY2VzIGFuZCBpbml0aWFsaXplIElS USBjYWxsYmFja3MgKi8KK3N0YXRpYyBpbnQgZGNuMTBfcmVnaXN0ZXJfaXJxX2hhbmRsZXJzKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCXN0cnVjdCBkYyAqZGMgPSBhZGV2LT5kbS5k YzsKKwlzdHJ1Y3QgY29tbW9uX2lycV9wYXJhbXMgKmNfaXJxX3BhcmFtczsKKwlzdHJ1Y3QgZGNf aW50ZXJydXB0X3BhcmFtcyBpbnRfcGFyYW1zID0gezB9OworCWludCByOworCWludCBpOworCisJ aW50X3BhcmFtcy5yZXF1ZXN0ZWRfcG9sYXJpdHkgPSBJTlRFUlJVUFRfUE9MQVJJVFlfREVGQVVM VDsKKwlpbnRfcGFyYW1zLmN1cnJlbnRfcG9sYXJpdHkgPSBJTlRFUlJVUFRfUE9MQVJJVFlfREVG QVVMVDsKKworCS8qIEFjdGlvbnMgb2YgYW1kZ3B1X2lycV9hZGRfaWQoKToKKwkgKiAxLiBSZWdp c3RlciBhIHNldCgpIGZ1bmN0aW9uIHdpdGggYmFzZSBkcml2ZXIuCisJICogICAgQmFzZSBkcml2 ZXIgd2lsbCBjYWxsIHNldCgpIGZ1bmN0aW9uIHRvIGVuYWJsZS9kaXNhYmxlIGFuCisJICogICAg aW50ZXJydXB0IGluIERDIGhhcmR3YXJlLgorCSAqIDIuIFJlZ2lzdGVyIGFtZGdwdV9kbV9pcnFf aGFuZGxlcigpLgorCSAqICAgIEJhc2UgZHJpdmVyIHdpbGwgY2FsbCBhbWRncHVfZG1faXJxX2hh bmRsZXIoKSBmb3IgQUxMIGludGVycnVwdHMKKwkgKiAgICBjb21pbmcgZnJvbSBEQyBoYXJkd2Fy ZS4KKwkgKiAgICBhbWRncHVfZG1faXJxX2hhbmRsZXIoKSB3aWxsIHJlLWRpcmVjdCB0aGUgaW50 ZXJydXB0IHRvIERDCisJICogICAgZm9yIGFja25vd2xlZGdpbmcgYW5kIGhhbmRsaW5nLgorCSAq ICovCisKKwkvKiBVc2UgVlNUQVJUVVAgaW50ZXJydXB0ICovCisJZm9yIChpID0gRENOXzFfMF9f U1JDSURfX0RDX0QxX09UR19WU1RBUlRVUDsKKwkJCWkgPD0gRENOXzFfMF9fU1JDSURfX0RDX0Qx X09UR19WU1RBUlRVUCArIGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YyAtIDE7CisJCQlpKyspIHsK KwkJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIEFNREdQVV9JSF9DTElFTlRJRF9EQ0UsIGks ICZhZGV2LT5jcnRjX2lycSk7CisKKwkJaWYgKHIpIHsKKwkJCURSTV9FUlJPUigiRmFpbGVkIHRv IGFkZCBjcnRjIGlycSBpZCFcbiIpOworCQkJcmV0dXJuIHI7CisJCX0KKworCQlpbnRfcGFyYW1z LmludF9jb250ZXh0ID0gSU5URVJSVVBUX0hJR0hfSVJRX0NPTlRFWFQ7CisJCWludF9wYXJhbXMu aXJxX3NvdXJjZSA9CisJCQlkY19pbnRlcnJ1cHRfdG9faXJxX3NvdXJjZShkYywgaSwgMCk7CisK KwkJY19pcnFfcGFyYW1zID0gJmFkZXYtPmRtLnZibGFua19wYXJhbXNbaW50X3BhcmFtcy5pcnFf c291cmNlIC0gRENfSVJRX1NPVVJDRV9WQkxBTksxXTsKKworCQljX2lycV9wYXJhbXMtPmFkZXYg PSBhZGV2OworCQljX2lycV9wYXJhbXMtPmlycV9zcmMgPSBpbnRfcGFyYW1zLmlycV9zb3VyY2U7 CisKKwkJYW1kZ3B1X2RtX2lycV9yZWdpc3Rlcl9pbnRlcnJ1cHQoYWRldiwgJmludF9wYXJhbXMs CisJCQkJZG1fY3J0Y19oaWdoX2lycSwgY19pcnFfcGFyYW1zKTsKKwl9CisKKwkvKiBVc2UgR1JQ SF9QRkxJUCBpbnRlcnJ1cHQgKi8KKwlmb3IgKGkgPSBEQ05fMV8wX19TUkNJRF9fSFVCUDBfRkxJ UF9JTlRFUlJVUFQ7CisJCQlpIDw9IERDTl8xXzBfX1NSQ0lEX19IVUJQMF9GTElQX0lOVEVSUlVQ VCArIGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YyAtIDE7CisJCQlpKyspIHsKKwkJciA9IGFtZGdw dV9pcnFfYWRkX2lkKGFkZXYsIEFNREdQVV9JSF9DTElFTlRJRF9EQ0UsIGksICZhZGV2LT5wYWdl ZmxpcF9pcnEpOworCQlpZiAocikgeworCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWRkIHBhZ2Ug ZmxpcCBpcnEgaWQhXG4iKTsKKwkJCXJldHVybiByOworCQl9CisKKwkJaW50X3BhcmFtcy5pbnRf Y29udGV4dCA9IElOVEVSUlVQVF9ISUdIX0lSUV9DT05URVhUOworCQlpbnRfcGFyYW1zLmlycV9z b3VyY2UgPQorCQkJZGNfaW50ZXJydXB0X3RvX2lycV9zb3VyY2UoZGMsIGksIDApOworCisJCWNf aXJxX3BhcmFtcyA9ICZhZGV2LT5kbS5wZmxpcF9wYXJhbXNbaW50X3BhcmFtcy5pcnFfc291cmNl IC0gRENfSVJRX1NPVVJDRV9QRkxJUF9GSVJTVF07CisKKwkJY19pcnFfcGFyYW1zLT5hZGV2ID0g YWRldjsKKwkJY19pcnFfcGFyYW1zLT5pcnFfc3JjID0gaW50X3BhcmFtcy5pcnFfc291cmNlOwor CisJCWFtZGdwdV9kbV9pcnFfcmVnaXN0ZXJfaW50ZXJydXB0KGFkZXYsICZpbnRfcGFyYW1zLAor CQkJCWRtX3BmbGlwX2hpZ2hfaXJxLCBjX2lycV9wYXJhbXMpOworCisJfQorCisJLyogSFBEICov CisJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIEFNREdQVV9JSF9DTElFTlRJRF9EQ0UsIERD Tl8xXzBfX1NSQ0lEX19EQ19IUEQxX0lOVCwKKwkJCSZhZGV2LT5ocGRfaXJxKTsKKwlpZiAocikg eworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhZGQgaHBkIGlycSBpZCFcbiIpOworCQlyZXR1cm4g cjsKKwl9CisKKwlyZWdpc3Rlcl9ocGRfaGFuZGxlcnMoYWRldik7CisKKwlyZXR1cm4gMDsKK30K KyNlbmRpZgorCiBzdGF0aWMgaW50IGFtZGdwdV9kbV9tb2RlX2NvbmZpZ19pbml0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQogewogCWludCByOwpAQCAtMTE3OCw2ICsxMjc1LDE0IEBAIGlu dCBhbWRncHVfZG1faW5pdGlhbGl6ZV9kcm1fZGV2aWNlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQogCQkJZ290byBmYWlsX2ZyZWVfZW5jb2RlcjsKIAkJfQogCQlicmVhazsKKyNpZiBkZWZp bmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKwljYXNlIENISVBfUkFWRU46CisJCWlmIChk Y24xMF9yZWdpc3Rlcl9pcnFfaGFuZGxlcnMoZG0tPmFkZXYpKSB7CisJCQlEUk1fRVJST1IoIkRN OiBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBJUlFcbiIpOworCQkJZ290byBmYWlsX2ZyZWVfZW5jb2Rl cjsKKwkJfQorCQlicmVhazsKKyNlbmRpZgogCWRlZmF1bHQ6CiAJCURSTV9FUlJPUigiVXN1cHBv cnRlZCBBU0lDIHR5cGU6IDB4JVhcbiIsIGFkZXYtPmFzaWNfdHlwZSk7CiAJCWdvdG8gZmFpbF9m cmVlX2VuY29kZXI7CkBAIC0xNDQ1LDYgKzE1NTAsMzIgQEAgdm9pZCBkY2VfdjEyXzBfc2V0X3Zn YV9yZW5kZXJfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJfQogfQogCisjaWYg ZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCit2b2lkIGRjbl92MV8wX3NldF92Z2Ff cmVuZGVyX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCSAgICBib29sIHJl bmRlcikKK3sKKwl1MzIgdG1wOworCisJLyogTG9ja291dCBhY2Nlc3MgdGhyb3VnaCBWR0EgYXBl cnR1cmUqLworCXRtcCA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKERDRSwgMCwgbW1WR0FfSERQ X0NPTlRST0wpKTsKKwlpZiAocmVuZGVyKQorCQl0bXAgPSB0bXAgJiAweEZGRkZGRkVGOworCWVs c2UKKwkJdG1wIHw9IDB4MTA7CisKKwlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChEQ0UsIDAsIG1t VkdBX0hEUF9DT05UUk9MKSwgdG1wKTsKKworCS8qIGRpc2FibGUgVkdBIHJlbmRlciAqLworCXRt cCA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKERDRSwgMCwgbW1WR0FfUkVOREVSX0NPTlRST0wp KTsKKwlpZiAocmVuZGVyKQorCQl0bXAgfD0gIDB4MTAwMDA7CisJZWxzZQorCQl0bXAgPSB0bXAg JiAweEZGRkNGRkZGOworCisJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoRENFLCAwLCBtbVZHQV9I RFBfQ09OVFJPTCksIHRtcCk7Cit9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19EUk1fQU1ER1BV X0NJSwogc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfZGlzcGxheV9mdW5jcyBkbV9kY2Vfdjhf MF9kaXNwbGF5X2Z1bmNzID0gewogCS5zZXRfdmdhX3JlbmRlcl9zdGF0ZSA9IGRjZV92OF8wX3Nl dF92Z2FfcmVuZGVyX3N0YXRlLApAQCAtMTUzOCw2ICsxNjY5LDMwIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfZnVuY3MgZG1fZGNlX3YxMl8wX2Rpc3BsYXlfZnVuY3MgPSB7 CiAKIH07CiAKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfZnVuY3MgZG1fZGNuX3YxXzBfZGlzcGxheV9mdW5j cyA9IHsKKwkuc2V0X3ZnYV9yZW5kZXJfc3RhdGUgPSBkY25fdjFfMF9zZXRfdmdhX3JlbmRlcl9z dGF0ZSwKKwkuYmFuZHdpZHRoX3VwZGF0ZSA9IGRtX2JhbmR3aWR0aF91cGRhdGUsIC8qIGNhbGxl ZCB1bmNvbmRpdGlvbmFsbHkgKi8KKwkudmJsYW5rX2dldF9jb3VudGVyID0gZG1fdmJsYW5rX2dl dF9jb3VudGVyLC8qIGNhbGxlZCB1bmNvbmRpdGlvbmFsbHkgKi8KKwkudmJsYW5rX3dhaXQgPSBO VUxMLAorCS5iYWNrbGlnaHRfc2V0X2xldmVsID0KKwkJZG1fc2V0X2JhY2tsaWdodF9sZXZlbCwv KiBjYWxsZWQgdW5jb25kaXRpb25hbGx5ICovCisJLmJhY2tsaWdodF9nZXRfbGV2ZWwgPQorCQlk bV9nZXRfYmFja2xpZ2h0X2xldmVsLC8qIGNhbGxlZCB1bmNvbmRpdGlvbmFsbHkgKi8KKwkuaHBk X3NlbnNlID0gTlVMTCwvKiBjYWxsZWQgdW5jb25kaXRpb25hbGx5ICovCisJLmhwZF9zZXRfcG9s YXJpdHkgPSBOVUxMLCAvKiBjYWxsZWQgdW5jb25kaXRpb25hbGx5ICovCisJLmhwZF9nZXRfZ3Bp b19yZWcgPSBOVUxMLCAvKiBWQklPUyBwYXJzaW5nLiBEQUwgZG9lcyBpdC4gKi8KKwkucGFnZV9m bGlwID0gZG1fcGFnZV9mbGlwLCAvKiBjYWxsZWQgdW5jb25kaXRpb25hbGx5ICovCisJLnBhZ2Vf ZmxpcF9nZXRfc2Nhbm91dHBvcyA9CisJCWRtX2NydGNfZ2V0X3NjYW5vdXRwb3MsLyogY2FsbGVk IHVuY29uZGl0aW9uYWxseSAqLworCS5hZGRfZW5jb2RlciA9IE5VTEwsIC8qIFZCSU9TIHBhcnNp bmcuIERBTCBkb2VzIGl0LiAqLworCS5hZGRfY29ubmVjdG9yID0gTlVMTCwgLyogVkJJT1MgcGFy c2luZy4gREFMIGRvZXMgaXQuICovCisJLnN0b3BfbWNfYWNjZXNzID0gZGNlX3YxMl8wX3N0b3Bf bWNfYWNjZXNzLCAvKiBjYWxsZWQgdW5jb25kaXRpb25hbGx5ICovCisJLnJlc3VtZV9tY19hY2Nl c3MgPSBkY2VfdjEyXzBfcmVzdW1lX21jX2FjY2VzcywgLyogY2FsbGVkIHVuY29uZGl0aW9uYWxs eSAqLworCS5ub3RpZnlfZnJlZXN5bmMgPSBhbWRncHVfbm90aWZ5X2ZyZWVzeW5jLAorCit9Owor I2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19LRVJORUxfREMpCiAKQEAgLTE2Mzks NiArMTc5NCwxNiBAQCBzdGF0aWMgaW50IGRtX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogCQlp ZiAoYWRldi0+bW9kZV9pbmZvLmZ1bmNzID09IE5VTEwpCiAJCQlhZGV2LT5tb2RlX2luZm8uZnVu Y3MgPSAmZG1fZGNlX3YxMl8wX2Rpc3BsYXlfZnVuY3M7CiAJCWJyZWFrOworI2lmIGRlZmluZWQo Q09ORklHX0RSTV9BTURfRENfRENOMV8wKQorCWNhc2UgQ0hJUF9SQVZFTjoKKwkJYWRldi0+bW9k ZV9pbmZvLm51bV9jcnRjID0gNDsKKwkJYWRldi0+bW9kZV9pbmZvLm51bV9ocGQgPSA0OworCQlh ZGV2LT5tb2RlX2luZm8ubnVtX2RpZyA9IDQ7CisJCWFkZXYtPm1vZGVfaW5mby5wbGFuZV90eXBl ID0gZG1fc3VyZmFjZXNfdHlwZV9kZWZhdWx0OworCQlpZiAoYWRldi0+bW9kZV9pbmZvLmZ1bmNz ID09IE5VTEwpCisJCQlhZGV2LT5tb2RlX2luZm8uZnVuY3MgPSAmZG1fZGNuX3YxXzBfZGlzcGxh eV9mdW5jczsKKwkJYnJlYWs7CisjZW5kaWYKIAlkZWZhdWx0OgogCQlEUk1fRVJST1IoIlVzdXBw b3J0ZWQgQVNJQyB0eXBlOiAweCVYXG4iLCBhZGV2LT5hc2ljX3R5cGUpOwogCQlyZXR1cm4gLUVJ TlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0v YW1kZ3B1X2RtX3R5cGVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2Rt L2FtZGdwdV9kbV90eXBlcy5jCmluZGV4IDQ3M2Y5OTEuLjMzMjU5NWIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3R5cGVzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHlwZXMu YwpAQCAtNTYzLDcgKzU2Myw4IEBAIHN0YXRpYyB2b2lkIGZpbGxfcGxhbmVfYXR0cmlidXRlc19m cm9tX2ZiKAogCXN1cmZhY2UtPnRpbGluZ19pbmZvLmdmeDgucGlwZV9jb25maWcgPQogCQkJQU1E R1BVX1RJTElOR19HRVQodGlsaW5nX2ZsYWdzLCBQSVBFX0NPTkZJRyk7CiAKLQlpZiAoYWRldi0+ YXNpY190eXBlID09IENISVBfVkVHQTEwKSB7CisJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQ X1ZFR0ExMCB8fAorCSAgICBhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SQVZFTikgewogCQkvKiBG aWxsIEdGWDkgcGFyYW1zICovCiAJCXN1cmZhY2UtPnRpbGluZ19pbmZvLmdmeDkubnVtX3BpcGVz ID0KIAkJCWFkZXYtPmdmeC5jb25maWcuZ2JfYWRkcl9jb25maWdfZmllbGRzLm51bV9waXBlczsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9NYWtlZmlsZQppbmRleCAxYTc5NzYyLi40Zjgz ZTMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvTWFrZWZpbGUK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL01ha2VmaWxlCkBAIC00LDcgKzQs MTIgQEAKIAogRENfTElCUyA9IGJhc2ljcyBiaW9zIGNhbGNzIGRjZSBncGlvIGkyY2F1eCBpcnEg dmlydHVhbAogCitpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzAKK0RDX0xJQlMgKz0gZGNu MTAgZG1sCitlbmRpZgorCiBEQ19MSUJTICs9IGRjZTEyMAorCiBEQ19MSUJTICs9IGRjZTExMgog RENfTElCUyArPSBkY2UxMTAKIERDX0xJQlMgKz0gZGNlMTAwCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9jb21tYW5kX3RhYmxlX2hlbHBlcjIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGVfaGVscGVyMi5j CmluZGV4IDFjYzNkZjEuLjg0YjFmNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGVfaGVscGVyMi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGVfaGVscGVyMi5jCkBAIC01Myw2 ICs1MywxMSBAQCBib29sIGRhbF9iaW9zX3BhcnNlcl9pbml0X2NtZF90YmxfaGVscGVyMigKIAlj YXNlIERDRV9WRVJTSU9OXzExXzI6CiAJCSpoID0gZGFsX2NtZF90YmxfaGVscGVyX2RjZTExMl9n ZXRfdGFibGUyKCk7CiAJCXJldHVybiB0cnVlOworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURf RENfRENOMV8wKQorCWNhc2UgRENOX1ZFUlNJT05fMV8wOgorCQkqaCA9IGRhbF9jbWRfdGJsX2hl bHBlcl9kY2UxMTJfZ2V0X3RhYmxlMigpOworCQlyZXR1cm4gdHJ1ZTsKKyNlbmRpZgogCWNhc2Ug RENFX1ZFUlNJT05fMTJfMDoKIAkJKmggPSBkYWxfY21kX3RibF9oZWxwZXJfZGNlMTEyX2dldF90 YWJsZTIoKTsKIAkJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvY2FsY3MvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvY2FsY3MvTWFrZWZpbGUKaW5kZXggNjNhMGVkYi4uYTA5NTQ3MiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NhbGNzL01ha2VmaWxlCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9jYWxjcy9NYWtlZmlsZQpAQCAtMyw4ICszLDE2IEBACiAj IEl0IGNhbGN1bGF0ZXMgQmFuZHdpZHRoIGFuZCBXYXRlcm1hcmtzIHZhbHVlcyBmb3IgSFcgcHJv Z3JhbW1pbmcKICMKIAorQ0ZMQUdTX2Rjbl9jYWxjcy5vIDo9IC1taGFyZC1mbG9hdCAtbXNzZSAt bXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT00CitDRkxBR1NfZGNuX2NhbGNfYXV0by5vIDo9IC1t aGFyZC1mbG9hdCAtbXNzZSAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT00CitDRkxBR1NfZGNu X2NhbGNfbWF0aC5vIDo9IC1taGFyZC1mbG9hdCAtbXNzZSAtbXByZWZlcnJlZC1zdGFjay1ib3Vu ZGFyeT00CisKIEJXX0NBTENTID0gZGNlX2NhbGNzLm8gYndfZml4ZWQubyBjdXN0b21fZmxvYXQu bwogCitpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzAKK0JXX0NBTENTICs9IGRjbl9jYWxj cy5vIGRjbl9jYWxjX21hdGgubyBkY25fY2FsY19hdXRvLm8KK2VuZGlmCisKIEFNRF9EQUxfQldf Q0FMQ1MgPSAkKGFkZHByZWZpeCAkKEFNRERBTFBBVEgpL2RjL2NhbGNzLywkKEJXX0NBTENTKSkK IAogQU1EX0RJU1BMQVlfRklMRVMgKz0gJChBTURfREFMX0JXX0NBTENTKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfcmVzb3VyY2UuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX3Jlc291cmNlLmMKaW5kZXggMmRlODZm OC4uYWU4YjIyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nv cmUvZGNfcmVzb3VyY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29y ZS9kY19yZXNvdXJjZS5jCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAiZGNlMTAwL2RjZTEw MF9yZXNvdXJjZS5oIgogI2luY2x1ZGUgImRjZTExMC9kY2UxMTBfcmVzb3VyY2UuaCIKICNpbmNs dWRlICJkY2UxMTIvZGNlMTEyX3Jlc291cmNlLmgiCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FN RF9EQ19EQ04xXzApCisjaW5jbHVkZSAiZGNuMTAvZGNuMTBfcmVzb3VyY2UuaCIKKyNlbmRpZgog I2luY2x1ZGUgImRjZTEyMC9kY2UxMjBfcmVzb3VyY2UuaCIKIAogZW51bSBkY2VfdmVyc2lvbiBy ZXNvdXJjZV9wYXJzZV9hc2ljX2lkKHN0cnVjdCBod19hc2ljX2lkIGFzaWNfaWQpCkBAIC02OSw2 ICs3MiwxMSBAQCBlbnVtIGRjZV92ZXJzaW9uIHJlc291cmNlX3BhcnNlX2FzaWNfaWQoc3RydWN0 IGh3X2FzaWNfaWQgYXNpY19pZCkKIAljYXNlIEZBTUlMWV9BSToKIAkJZGNfdmVyc2lvbiA9IERD RV9WRVJTSU9OXzEyXzA7CiAJCWJyZWFrOworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENf RENOMV8wKQorCWNhc2UgRkFNSUxZX1JWOgorCQlkY192ZXJzaW9uID0gRENOX1ZFUlNJT05fMV8w OworCQlicmVhazsKKyNlbmRpZgogCWRlZmF1bHQ6CiAJCWRjX3ZlcnNpb24gPSBEQ0VfVkVSU0lP Tl9VTktOT1dOOwogCQlicmVhazsKQEAgLTEwNSw2ICsxMTMsMTMgQEAgc3RydWN0IHJlc291cmNl X3Bvb2wgKmRjX2NyZWF0ZV9yZXNvdXJjZV9wb29sKAogCQlyZXNfcG9vbCA9IGRjZTEyMF9jcmVh dGVfcmVzb3VyY2VfcG9vbCgKIAkJCW51bV92aXJ0dWFsX2xpbmtzLCBkYyk7CiAJCWJyZWFrOwor CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJY2FzZSBEQ05fVkVSU0lP Tl8xXzA6CisJCXJlc19wb29sID0gZGNuMTBfY3JlYXRlX3Jlc291cmNlX3Bvb2woCisJCQludW1f dmlydHVhbF9saW5rcywgZGMpOworCQlicmVhazsKKyNlbmRpZgogCWRlZmF1bHQ6CiAJCWJyZWFr OwogCX0KQEAgLTExODgsNiArMTIwMywxMCBAQCBzdGF0aWMgaW50IGFjcXVpcmVfZmlyc3RfZnJl ZV9waXBlKAogCQkJcGlwZV9jdHgtPmRpc19jbGsgPSBwb29sLT5kaXNwbGF5X2Nsb2NrOwogCQkJ cGlwZV9jdHgtPnBpcGVfaWR4ID0gaTsKIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENf RENOMV8wKQorCQkJcGlwZV9jdHgtPm1wY19pZHggPSAtMTsKKyNlbmRpZgorCiAJCQlwaXBlX2N0 eC0+c3RyZWFtID0gc3RyZWFtOwogCQkJcmV0dXJuIGk7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kYy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjLmgKaW5kZXggODc2NzVmMC4uZDc0YmJkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjLmgKQEAgLTk0LDcgKzk0LDEzIEBAIHN0cnVjdCBkY19zdXJmYWNlOwogc3RydWN0 IHZhbGlkYXRlX2NvbnRleHQ7CiAKIHN0cnVjdCBkY19jYXBfZnVuY3MgeworI2lmIGRlZmluZWQo Q09ORklHX0RSTV9BTURfRENfRENOMV8wKQorCWJvb2wgKCpnZXRfZGNjX2NvbXByZXNzaW9uX2Nh cCkoY29uc3Qgc3RydWN0IGRjICpkYywKKwkJCWNvbnN0IHN0cnVjdCBkY19kY2Nfc3VyZmFjZV9w YXJhbSAqaW5wdXQsCisJCQlzdHJ1Y3QgZGNfc3VyZmFjZV9kY2NfY2FwICpvdXRwdXQpOworI2Vs c2UKIAlpbnQgaTsKKyNlbmRpZgogfTsKIAogc3RydWN0IGRjX3N0cmVhbV9mdW5jcyB7CkBAIC0x NjQsNiArMTcwLDE4IEBAIHN0cnVjdCBkY19kZWJ1ZyB7CiAJYm9vbCBkaXNhYmxlX3N0dXR0ZXI7 CiAJYm9vbCBkaXNhYmxlX2RjYzsKIAlib29sIGRpc2FibGVfZGZzX2J5cGFzczsKKyNpZiBkZWZp bmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKwlib29sIGRpc2FibGVfZHBwX3Bvd2VyX2dh dGU7CisJYm9vbCBkaXNhYmxlX2h1YnBfcG93ZXJfZ2F0ZTsKKwlib29sIGRpc2FibGVfcHBsaWJf d21fcmFuZ2U7CisJYm9vbCB1c2VfZG1sX3dtOworCWJvb2wgdXNlX21heF92b2x0YWdlOworCWlu dCBzcl9leGl0X3RpbWVfbnM7CisJaW50IHNyX2VudGVyX3BsdXNfZXhpdF90aW1lX25zOworCWlu dCB1cmdlbnRfbGF0ZW5jeV9uczsKKwlpbnQgcGVyY2VudF9vZl9pZGVhbF9kcmFtYnc7CisJaW50 IGRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfbnM7CisjZW5kaWYKIAlib29sIGRpc2FibGVfcHBs aWJfY2xvY2tfcmVxdWVzdDsKIAlib29sIGRpc2FibGVfY2xvY2tfZ2F0ZTsKIAlib29sIGRpc2Fi bGVfZG1jdTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2Uv ZGNlX2FibS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfYWJtLmgK aW5kZXggNTYwODdiMy4uZTBhYmQyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2RjZS9kY2VfYWJtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RjZS9kY2VfYWJtLmgKQEAgLTU0LDYgKzU0LDIyIEBACiAJU1IoRENfQUJNMV9IR0xTX1JF R19SRUFEX1BST0dSRVNTKSwgXAogCVNSKEJJT1NfU0NSQVRDSF8yKQogCisjaWYgZGVmaW5lZChD T05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJI2RlZmluZSBBQk1fRENOMTBfUkVHX0xJU1QoaWQp XAorCQlBQk1fQ09NTU9OX1JFR19MSVNUX0RDRV9CQVNFKCksIFwKKwkJU1JJKERDX0FCTTFfSEdf U0FNUExFX1JBVEUsIEFCTSwgaWQpLCBcCisJCVNSSShEQ19BQk0xX0xTX1NBTVBMRV9SQVRFLCBB Qk0sIGlkKSwgXAorCQlTUkkoQkwxX1BXTV9CTF9VUERBVEVfU0FNUExFX1JBVEUsIEFCTSwgaWQp LCBcCisJCVNSSShEQ19BQk0xX0hHX01JU0NfQ1RSTCwgQUJNLCBpZCksIFwKKwkJU1JJKERDX0FC TTFfSVBDU0NfQ09FRkZfU0VMLCBBQk0sIGlkKSwgXAorCQlTUkkoQkwxX1BXTV9DVVJSRU5UX0FC TV9MRVZFTCwgQUJNLCBpZCksIFwKKwkJU1JJKEJMMV9QV01fVEFSR0VUX0FCTV9MRVZFTCwgQUJN LCBpZCksIFwKKwkJU1JJKEJMMV9QV01fVVNFUl9MRVZFTCwgQUJNLCBpZCksIFwKKwkJU1JJKERD X0FCTTFfTFNfTUlOX01BWF9QSVhFTF9WQUxVRV9USFJFUywgQUJNLCBpZCksIFwKKwkJU1JJKERD X0FCTTFfSEdMU19SRUdfUkVBRF9QUk9HUkVTUywgQUJNLCBpZCksIFwKKwkJTkJJT19TUihCSU9T X1NDUkFUQ0hfMikKKyNlbmRpZgorCiAjZGVmaW5lIEFCTV9TRihyZWdfbmFtZSwgZmllbGRfbmFt ZSwgcG9zdF9maXgpXAogCS5maWVsZF9uYW1lID0gcmVnX25hbWUgIyMgX18gIyMgZmllbGRfbmFt ZSAjIyBwb3N0X2ZpeAogCkBAIC0xMDUsNiArMTIxLDM5IEBACiAJCQlBQk0xX0JMX1JFR19SRUFE X01JU1NFRF9GUkFNRV9DTEVBUiwgbWFza19zaCkKIAogCisjaWYgZGVmaW5lZChDT05GSUdfRFJN X0FNRF9EQ19EQ04xXzApCisJI2RlZmluZSBBQk1fTUFTS19TSF9MSVNUX0RDTjEwKG1hc2tfc2gp IFwKKwkJQUJNX0NPTU1PTl9NQVNLX1NIX0xJU1RfRENFX0NPTU1PTl9CQVNFKG1hc2tfc2gpLCBc CisJCUFCTV9TRihBQk0wX0RDX0FCTTFfSEdfTUlTQ19DVFJMLCBcCisJCQkJQUJNMV9IR19OVU1f T0ZfQklOU19TRUwsIG1hc2tfc2gpLCBcCisJCUFCTV9TRihBQk0wX0RDX0FCTTFfSEdfTUlTQ19D VFJMLCBcCisJCQkJQUJNMV9IR19WTUFYX1NFTCwgbWFza19zaCksIFwKKwkJQUJNX1NGKEFCTTBf RENfQUJNMV9IR19NSVNDX0NUUkwsIFwKKwkJCQlBQk0xX0hHX0JJTl9CSVRXSURUSF9TSVpFX1NF TCwgbWFza19zaCksIFwKKwkJQUJNX1NGKEFCTTBfRENfQUJNMV9JUENTQ19DT0VGRl9TRUwsIFwK KwkJCQlBQk0xX0lQQ1NDX0NPRUZGX1NFTF9SLCBtYXNrX3NoKSwgXAorCQlBQk1fU0YoQUJNMF9E Q19BQk0xX0lQQ1NDX0NPRUZGX1NFTCwgXAorCQkJCUFCTTFfSVBDU0NfQ09FRkZfU0VMX0csIG1h c2tfc2gpLCBcCisJCUFCTV9TRihBQk0wX0RDX0FCTTFfSVBDU0NfQ09FRkZfU0VMLCBcCisJCQkJ QUJNMV9JUENTQ19DT0VGRl9TRUxfQiwgbWFza19zaCksIFwKKwkJQUJNX1NGKEFCTTBfQkwxX1BX TV9DVVJSRU5UX0FCTV9MRVZFTCwgXAorCQkJCUJMMV9QV01fQ1VSUkVOVF9BQk1fTEVWRUwsIG1h c2tfc2gpLCBcCisJCUFCTV9TRihBQk0wX0JMMV9QV01fVEFSR0VUX0FCTV9MRVZFTCwgXAorCQkJ CUJMMV9QV01fVEFSR0VUX0FCTV9MRVZFTCwgbWFza19zaCksIFwKKwkJQUJNX1NGKEFCTTBfQkwx X1BXTV9VU0VSX0xFVkVMLCBcCisJCQkJQkwxX1BXTV9VU0VSX0xFVkVMLCBtYXNrX3NoKSwgXAor CQlBQk1fU0YoQUJNMF9EQ19BQk0xX0xTX01JTl9NQVhfUElYRUxfVkFMVUVfVEhSRVMsIFwKKwkJ CQlBQk0xX0xTX01JTl9QSVhFTF9WQUxVRV9USFJFUywgbWFza19zaCksIFwKKwkJQUJNX1NGKEFC TTBfRENfQUJNMV9MU19NSU5fTUFYX1BJWEVMX1ZBTFVFX1RIUkVTLCBcCisJCQkJQUJNMV9MU19N QVhfUElYRUxfVkFMVUVfVEhSRVMsIG1hc2tfc2gpLCBcCisJCUFCTV9TRihBQk0wX0RDX0FCTTFf SEdMU19SRUdfUkVBRF9QUk9HUkVTUywgXAorCQkJCUFCTTFfSEdfUkVHX1JFQURfTUlTU0VEX0ZS QU1FX0NMRUFSLCBtYXNrX3NoKSwgXAorCQlBQk1fU0YoQUJNMF9EQ19BQk0xX0hHTFNfUkVHX1JF QURfUFJPR1JFU1MsIFwKKwkJCQlBQk0xX0xTX1JFR19SRUFEX01JU1NFRF9GUkFNRV9DTEVBUiwg bWFza19zaCksIFwKKwkJQUJNX1NGKEFCTTBfRENfQUJNMV9IR0xTX1JFR19SRUFEX1BST0dSRVNT LCBcCisJCQkJQUJNMV9CTF9SRUdfUkVBRF9NSVNTRURfRlJBTUVfQ0xFQVIsIG1hc2tfc2gpCisj ZW5kaWYKKwogI2RlZmluZSBBQk1fUkVHX0ZJRUxEX0xJU1QodHlwZSkgXAogCXR5cGUgQUJNMV9I R19OVU1fT0ZfQklOU19TRUw7IFwKIAl0eXBlIEFCTTFfSEdfVk1BWF9TRUw7IFwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmMK aW5kZXggYmQ0NTI0ZS4uMTQyYjNhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmMKQEAgLTU4Niw2ICs1ODYsOSBAQCBz dGF0aWMgdWludDMyX3QgZGNlMTEwX2dldF9waXhfY2xrX2RpdmlkZXJzKAogCQlicmVhazsKIAlj YXNlIERDRV9WRVJTSU9OXzExXzI6CiAJY2FzZSBEQ0VfVkVSU0lPTl8xMl8wOgorI2lmIGRlZmlu ZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQorCWNhc2UgRENOX1ZFUlNJT05fMV8wOgorI2Vu ZGlmCiAJCWRjZTExMl9nZXRfcGl4X2Nsa19kaXZpZGVyc19oZWxwZXIoY2xrX3NyYywKIAkJCQlw bGxfc2V0dGluZ3MsIHBpeF9jbGtfcGFyYW1zKTsKIAkJYnJlYWs7CkBAIC04MTUsNiArODE4LDMx IEBAIHN0YXRpYyBib29sIGRjZTExMF9wcm9ncmFtX3BpeF9jbGsoCiAJc3RydWN0IGRjZTExMF9j bGtfc3JjICpjbGtfc3JjID0gVE9fRENFMTEwX0NMS19TUkMoY2xvY2tfc291cmNlKTsKIAlzdHJ1 Y3QgYnBfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycyBicF9wY19wYXJhbXMgPSB7MH07CiAKKyNpZiBk ZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKwlpZiAoSVNfRlBHQV9NQVhJTVVTX0RD KGNsb2NrX3NvdXJjZS0+Y3R4LT5kY2VfZW52aXJvbm1lbnQpKSB7CisJCXVuc2lnbmVkIGludCBp bnN0ID0gcGl4X2Nsa19wYXJhbXMtPmNvbnRyb2xsZXJfaWQgLSBDT05UUk9MTEVSX0lEX0QwOwor CQl1bnNpZ25lZCBkcF9kdG9fcmVmX2tIeiA9IDYwMDAwMDsKKwkJLyogRFBSRUYgY2xvY2sgZnJv bSBGUEdBIFRPRE86IERvZXMgRlBHQSBoYXZlIHRoaXMgdmFsdWU/ICovCisJCXVuc2lnbmVkIGNs b2NrX2tIeiA9IHBsbF9zZXR0aW5ncy0+YWN0dWFsX3BpeF9jbGs7CisKKwkJLyogRm9yIGZhc3Rl ciBzaW11bGF0aW9uLCBpZiBtb2RlIHBpeGUgY2xvY2sgbGVzcyB0aGFuIDI5ME1IeiwKKwkJICog cGl4ZWwgY2xvY2sgY2FuIGJlIGhhcmQgY29kZWQgdG8gMjkwTWh6LiBGb3IgNEsgbW9kZSwgcGl4 ZWwgY2xvY2sKKwkJICogaXMgZ3JlYXRlciB0aGFuIDUwME1oeiwgbmVlZCByZWFsIHBpeGVsIGNs b2NrCisJCSAqIGNsb2NrX2tIeiA9IDI5MDAwMDsKKwkJICovCisJCS8qIFRPRE86IHVuLWhhcmRj b2RlIHdoZW4gd2UgY2FuIHNldCBkaXNwbGF5IGNsb2NrIHByb3Blcmx5Ki8KKwkJLypjbG9ja19r SHogPSBwaXhfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGs7Ki8KKwkJY2xvY2tfa0h6ID0g MjkwMDAwOworCisJCS8qIFNldCBEVE8gdmFsdWVzOiBwaGFzZSA9IHRhcmdldCBjbG9jaywgbW9k dWxvID0gcmVmZXJlbmNlIGNsb2NrICovCisJCVJFR19XUklURShQSEFTRVtpbnN0XSwgY2xvY2tf a0h6KTsKKwkJUkVHX1dSSVRFKE1PRFVMT1tpbnN0XSwgZHBfZHRvX3JlZl9rSHopOworCisJCS8q IEVuYWJsZSBEVE8gKi8KKwkJUkVHX1VQREFURShQSVhFTF9SQVRFX0NOVExbaW5zdF0sIERQX0RU TzBfRU5BQkxFLCAxKTsKKwkJcmV0dXJuIHRydWU7CisJfQorI2VuZGlmCiAJLyogRmlyc3QgZGlz YWJsZSBTUwogCSAqIEFUT01CSU9TIHdpbGwgZW5hYmxlIGJ5IGRlZmF1bHQgU1Mgb24gUExMIGZv ciBEUCwKIAkgKiBkbyBub3QgZGlzYWJsZSBpdCBoZXJlCkBAIC04NzAsNiArODk4LDkgQEAgc3Rh dGljIGJvb2wgZGNlMTEwX3Byb2dyYW1fcGl4X2NsaygKIAkJYnJlYWs7CiAJY2FzZSBEQ0VfVkVS U0lPTl8xMV8yOgogCWNhc2UgRENFX1ZFUlNJT05fMTJfMDoKKyNpZiBkZWZpbmVkKENPTkZJR19E Uk1fQU1EX0RDX0RDTjFfMCkKKwljYXNlIERDTl9WRVJTSU9OXzFfMDoKKyNlbmRpZgogCQlpZiAo Y2xvY2tfc291cmNlLT5pZCAhPSBDTE9DS19TT1VSQ0VfSURfRFBfRFRPKSB7CiAJCQlicF9wY19w YXJhbXMuZmxhZ3MuU0VUX0dFTkxPQ0tfUkVGX0RJVl9TUkMgPQogCQkJCQkJCXBsbF9zZXR0aW5n cy0+dXNlX2V4dGVybmFsX2NsazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmgKaW5kZXggMjg5ODRjNzkuLmU4YmM5OGIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2NrX3Nv dXJjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2Nr X3NvdXJjZS5oCkBAIC01NSw2ICs1NSwyNyBAQAogCUNTX1NGKFBIWVBMTEFfUElYQ0xLX1JFU1lO Q19DTlRMLCBQSFlQTExBX0RDQ0dfREVFUF9DT0xPUl9DTlRMLCBtYXNrX3NoKSxcCiAJQ1NfU0Yo UEhZUExMQV9QSVhDTEtfUkVTWU5DX0NOVEwsIFBIWVBMTEFfUElYQ0xLX0RPVUJMRV9SQVRFX0VO QUJMRSwgbWFza19zaCkKIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQor I2RlZmluZSBDU19DT01NT05fUkVHX0xJU1RfRENOMV8wKGluZGV4LCBwbGxpZCkgXAorCQlTUkko UElYQ0xLX1JFU1lOQ19DTlRMLCBQSFlQTEwsIHBsbGlkKSxcCisJCVNSSUkoUEhBU0UsIERQX0RU TywgMCksXAorCQlTUklJKFBIQVNFLCBEUF9EVE8sIDEpLFwKKwkJU1JJSShQSEFTRSwgRFBfRFRP LCAyKSxcCisJCVNSSUkoUEhBU0UsIERQX0RUTywgMyksXAorCQlTUklJKE1PRFVMTywgRFBfRFRP LCAwKSxcCisJCVNSSUkoTU9EVUxPLCBEUF9EVE8sIDEpLFwKKwkJU1JJSShNT0RVTE8sIERQX0RU TywgMiksXAorCQlTUklJKE1PRFVMTywgRFBfRFRPLCAzKSxcCisJCVNSSUkoUElYRUxfUkFURV9D TlRMLCBPVEcsIDApLCBcCisJCVNSSUkoUElYRUxfUkFURV9DTlRMLCBPVEcsIDEpLCBcCisJCVNS SUkoUElYRUxfUkFURV9DTlRMLCBPVEcsIDIpLCBcCisJCVNSSUkoUElYRUxfUkFURV9DTlRMLCBP VEcsIDMpCisKKyNkZWZpbmUgQ1NfQ09NTU9OX01BU0tfU0hfTElTVF9EQ04xXzAobWFza19zaClc CisJQ1NfU0YoUEhZUExMQV9QSVhDTEtfUkVTWU5DX0NOVEwsIFBIWVBMTEFfRENDR19ERUVQX0NP TE9SX0NOVEwsIG1hc2tfc2gpLFwKKwlDU19TRihPVEcwX1BJWEVMX1JBVEVfQ05UTCwgRFBfRFRP MF9FTkFCTEUsIG1hc2tfc2gpCisjZW5kaWYKKwogI2RlZmluZSBDU19SRUdfRklFTERfTElTVCh0 eXBlKSBcCiAJdHlwZSBQTExfUkVGX0RJVl9TUkM7IFwKIAl0eXBlIERDQ0dfREVFUF9DT0xPUl9D TlRMMTsgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9k Y2VfY2xvY2tzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9j a3MuYwppbmRleCA4MWNiMTM4Li42ZTU2ZDgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9ja3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9ja3MuYwpAQCAtMjksNiArMjksMTAgQEAKICNpbmNsdWRl ICJmaXhlZDMyXzMyLmgiCiAjaW5jbHVkZSAiYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiCiAjaW5j bHVkZSAiZGMuaCIKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKyNpbmNs dWRlICJkY25fY2FsY3MuaCIKKyNpbmNsdWRlICJjb3JlX2RjLmgiCisjZW5kaWYKIAogI2RlZmlu ZSBUT19EQ0VfQ0xPQ0tTKGNsb2NrcylcCiAJY29udGFpbmVyX29mKGNsb2Nrcywgc3RydWN0IGRj ZV9kaXNwX2NsaywgYmFzZSkKQEAgLTQwMCw2ICs0MDQsMTAgQEAgc3RhdGljIHZvaWQgZGNlMTEy X3NldF9jbG9jaygKIAogCWJwLT5mdW5jcy0+c2V0X2RjZV9jbG9jayhicCwgJmRjZV9jbGtfcGFy YW1zKTsKIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQorCWRjZV9wc3Jf d2FpdF9sb29wKGNsa19kY2UsIHJlcXVlc3RlZF9jbGtfa2h6KTsKKyNlbmRpZgorCiB9CiAKIHN0 YXRpYyB2b2lkIGRjZV9jbG9ja19yZWFkX2ludGVncmF0ZWRfaW5mbyhzdHJ1Y3QgZGNlX2Rpc3Bf Y2xrICpjbGtfZGNlKQpAQCAtNTk2LDYgKzYwNCwxMyBAQCBzdGF0aWMgYm9vbCBkY2VfYXBwbHlf Y2xvY2tfdm9sdGFnZV9yZXF1ZXN0KAogCQl9CiAJfQogCWlmIChzZW5kX3JlcXVlc3QpIHsKKyNp ZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKwlzdHJ1Y3QgY29yZV9kYyAqY29y ZV9kYyA9IERDX1RPX0NPUkUoY2xrLT5jdHgtPmRjKTsKKwkvKnVzZSBkY2ZjbGsgcmVxdWVzdCB2 b2x0YWdlKi8KKwkJY2xvY2tfdm9sdGFnZV9yZXEuY2xrX3R5cGUgPSBETV9QUF9DTE9DS19UWVBF X0RDRkNMSzsKKwkJY2xvY2tfdm9sdGFnZV9yZXEuY2xvY2tzX2luX2toeiA9CisJCQkJZGNuX2Zp bmRfZGNmY2xrX3N1aXRzX2FsbChjb3JlX2RjLCAmY2xrLT5jdXJfY2xvY2tzX3ZhbHVlKTsKKyNl bmRpZgogCQlkbV9wcF9hcHBseV9jbG9ja19mb3Jfdm9sdGFnZV9yZXF1ZXN0KAogCQkJY2xrLT5j dHgsICZjbG9ja192b2x0YWdlX3JlcSk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZGNlL2RjZV9jbG9ja3MuaAppbmRleCAyOWZmNDcwLi4xMDNlOTA1IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9ja3MuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9ja3MuaApAQCAtNDUs NiArNDUsMTUgQEAKIAlDTEtfU0YoTUFTVEVSX0NPTU1fQ01EX1JFRywgTUFTVEVSX0NPTU1fQ01E X1JFR19CWVRFMCwgbWFza19zaCksIFwKIAlDTEtfU0YoTUFTVEVSX0NPTU1fQ05UTF9SRUcsIE1B U1RFUl9DT01NX0lOVEVSUlVQVCwgbWFza19zaCkKIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9B TURfRENfRENOMV8wKQorI2RlZmluZSBDTEtfRENOMTBfUkVHX0xJU1QoKVwKKwlTUihEUFJFRkNM S19DTlRMKSwgXAorCVNSKERFTlRJU1RfRElTUENMS19DTlRMKSwgXAorCVNSKE1BU1RFUl9DT01N X0RBVEFfUkVHMSksIFwKKwlTUihNQVNURVJfQ09NTV9DTURfUkVHKSwgXAorCVNSKE1BU1RFUl9D T01NX0NOVExfUkVHKQorI2VuZGlmCisKICNkZWZpbmUgQ0xLX0NPTU1PTl9NQVNLX1NIX0xJU1Rf U09DX0JBU0UobWFza19zaCkgXAogCUNMS19TRihEQ0NHX0RGU19EUFJFRkNMS19DTlRMLCBEUFJF RkNMS19TUkNfU0VMLCBtYXNrX3NoKSwgXAogCUNMS19TRihEQ0NHX0RGU19ERU5USVNUX0RJU1BD TEtfQ05UTCwgREVOVElTVF9EUFJFRkNMS19XRElWSURFUiwgbWFza19zaCksIFwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2RtY3UuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2RtY3UuYwppbmRleCBkYTdmODZiLi5j NTgzMjhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2Rj ZV9kbWN1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfZG1j dS5jCkBAIC0yNTIsMTIgKzI1MiwyMzQgQEAgc3RhdGljIHZvaWQgZGNlX2RtY3Vfc2V0dXBfcHNy KHN0cnVjdCBkbWN1ICpkbWN1LAogCVJFR19VUERBVEUoTUFTVEVSX0NPTU1fQ05UTF9SRUcsIE1B U1RFUl9DT01NX0lOVEVSUlVQVCwgMSk7CiB9CiAKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1E X0RDX0RDTjFfMCkKK2Jvb2wgZGNuMTBfZG1jdV9sb2FkX2lyYW0oc3RydWN0IGRtY3UgKmRtY3Us CisJCXVuc2lnbmVkIGludCBzdGFydF9vZmZzZXQsCisJCWNvbnN0IGNoYXIgKnNyYywKKwkJdW5z aWduZWQgaW50IGJ5dGVzKQoreworCXN0cnVjdCBkY2VfZG1jdSAqZG1jdV9kY2UgPSBUT19EQ0Vf RE1DVShkbWN1KTsKKwl1bnNpZ25lZCBpbnQgY291bnQgPSAwOworCisJUkVHX1VQREFURShETUNV X0NUUkwsIERNQ1VfRU5BQkxFLCAxKTsKKworCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MgdG8gSVJB TSAqLworCVJFR19VUERBVEVfMihETUNVX1JBTV9BQ0NFU1NfQ1RSTCwKKwkJCUlSQU1fSE9TVF9B Q0NFU1NfRU4sIDEsCisJCQlJUkFNX1dSX0FERFJfQVVUT19JTkMsIDEpOworCisJUkVHX1dBSVQo RE1VX01FTV9QV1JfQ05UTCwgRE1DVV9JUkFNX01FTV9QV1JfU1RBVEUsIDAsIDIsIDEwKTsKKwor CVJFR19XUklURShETUNVX0lSQU1fV1JfQ1RSTCwgc3RhcnRfb2Zmc2V0KTsKKworCWZvciAoY291 bnQgPSAwOyBjb3VudCA8IGJ5dGVzOyBjb3VudCsrKQorCQlSRUdfV1JJVEUoRE1DVV9JUkFNX1dS X0RBVEEsIHNyY1tjb3VudF0pOworCisJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MgdG8gSVJBTSB0 byBhbGxvdyBkeW5hbWljIHNsZWVwIHN0YXRlICovCisJUkVHX1VQREFURV8yKERNQ1VfUkFNX0FD Q0VTU19DVFJMLAorCQkJSVJBTV9IT1NUX0FDQ0VTU19FTiwgMCwKKwkJCUlSQU1fV1JfQUREUl9B VVRPX0lOQywgMCk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgZGNuMTBfZ2V0 X2RtY3VfcHNyX3N0YXRlKHN0cnVjdCBkbWN1ICpkbWN1LCB1aW50MzJfdCAqcHNyX3N0YXRlKQor eworCXN0cnVjdCBkY2VfZG1jdSAqZG1jdV9kY2UgPSBUT19EQ0VfRE1DVShkbWN1KTsKKworCXVp bnQzMl90IHBzclN0YXRlT2Zmc2V0ID0gMHhmMDsKKworCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3Mg dG8gSVJBTSAqLworCVJFR19VUERBVEUoRE1DVV9SQU1fQUNDRVNTX0NUUkwsIElSQU1fSE9TVF9B Q0NFU1NfRU4sIDEpOworCisJUkVHX1dBSVQoRE1VX01FTV9QV1JfQ05UTCwgRE1DVV9JUkFNX01F TV9QV1JfU1RBVEUsIDAsIDIsIDEwKTsKKworCS8qIFdyaXRlIGFkZHJlc3MgdG8gSVJBTV9SRF9B RERSIGluIERNQ1VfSVJBTV9SRF9DVFJMICovCisJUkVHX1dSSVRFKERNQ1VfSVJBTV9SRF9DVFJM LCBwc3JTdGF0ZU9mZnNldCk7CisKKwkvKiBSZWFkIGRhdGEgZnJvbSBJUkFNX1JEX0RBVEEgaW4g RE1DVV9JUkFNX1JEX0RBVEEqLworCSpwc3Jfc3RhdGUgPSBSRUdfUkVBRChETUNVX0lSQU1fUkRf REFUQSk7CisKKwkvKiBEaXNhYmxlIHdyaXRlIGFjY2VzcyB0byBJUkFNIGFmdGVyIGZpbmlzaGVk IHVzaW5nIElSQU0KKwkgKiBpbiBvcmRlciB0byBhbGxvdyBkeW5hbWljIHNsZWVwIHN0YXRlCisJ ICovCisJUkVHX1VQREFURShETUNVX1JBTV9BQ0NFU1NfQ1RSTCwgSVJBTV9IT1NUX0FDQ0VTU19F TiwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIGRjbjEwX2RtY3Vfc2V0X3Bzcl9lbmFibGUoc3RydWN0 IGRtY3UgKmRtY3UsIGJvb2wgZW5hYmxlKQoreworCXN0cnVjdCBkY2VfZG1jdSAqZG1jdV9kY2Ug PSBUT19EQ0VfRE1DVShkbWN1KTsKKwl1bnNpZ25lZCBpbnQgZG1jdV9tYXhfcmV0cnlfb25fd2Fp dF9yZWdfcmVhZHkgPSA4MDE7CisJdW5zaWduZWQgaW50IGRtY3Vfd2FpdF9yZWdfcmVhZHlfaW50 ZXJ2YWwgPSAxMDA7CisKKwl1bnNpZ25lZCBpbnQgcmV0cnlDb3VudDsKKwl1aW50MzJfdCBwc3Jf c3RhdGUgPSAwOworCisJLyogd2FpdERNQ1VSZWFkeUZvckNtZCAqLworCVJFR19XQUlUKE1BU1RF Ul9DT01NX0NOVExfUkVHLCBNQVNURVJfQ09NTV9JTlRFUlJVUFQsIDAsCisJCQkJZG1jdV93YWl0 X3JlZ19yZWFkeV9pbnRlcnZhbCwKKwkJCQlkbWN1X21heF9yZXRyeV9vbl93YWl0X3JlZ19yZWFk eSk7CisKKwkvKiBzZXRETUNVUGFyYW1fQ21kICovCisJaWYgKGVuYWJsZSkKKwkJUkVHX1VQREFU RShNQVNURVJfQ09NTV9DTURfUkVHLCBNQVNURVJfQ09NTV9DTURfUkVHX0JZVEUwLAorCQkJCVBT Ul9FTkFCTEUpOworCWVsc2UKKwkJUkVHX1VQREFURShNQVNURVJfQ09NTV9DTURfUkVHLCBNQVNU RVJfQ09NTV9DTURfUkVHX0JZVEUwLAorCQkJCVBTUl9FWElUKTsKKworCS8qIG5vdGlmeURNQ1VN c2cgKi8KKwlSRUdfVVBEQVRFKE1BU1RFUl9DT01NX0NOVExfUkVHLCBNQVNURVJfQ09NTV9JTlRF UlJVUFQsIDEpOworCisJLyogQmVsb3cgbG9vcHMgMTAwMCB4IDUwMHVzID0gNTAwIG1zLgorCSAq ICBFeGl0IFBTUiBtYXkgbmVlZCB0byB3YWl0IDEtMiBmcmFtZXMgdG8gcG93ZXIgdXAuIFRpbWVv dXQgYWZ0ZXIgYXQKKwkgKiAgbGVhc3QgYSBmZXcgZnJhbWVzLiBTaG91bGQgbmV2ZXIgaGl0IHRo ZSBtYXggcmV0cnkgYXNzZXJ0IGJlbG93LgorCSAqLworCWZvciAocmV0cnlDb3VudCA9IDA7IHJl dHJ5Q291bnQgPD0gMTAwMDsgcmV0cnlDb3VudCsrKSB7CisJCWRjbjEwX2dldF9kbWN1X3Bzcl9z dGF0ZShkbWN1LCAmcHNyX3N0YXRlKTsKKwkJaWYgKGVuYWJsZSkgeworCQkJaWYgKHBzcl9zdGF0 ZSAhPSAwKQorCQkJCWJyZWFrOworCQl9IGVsc2UgeworCQkJaWYgKHBzcl9zdGF0ZSA9PSAwKQor CQkJCWJyZWFrOworCQl9CisJCWRtX2RlbGF5X2luX21pY3Jvc2Vjb25kcyhkbWN1LT5jdHgsIDUw MCk7CisJfQorCisJLyogYXNzZXJ0IGlmIG1heCByZXRyeSBoaXQgKi8KKwlBU1NFUlQocmV0cnlD b3VudCA8PSAxMDAwKTsKK30KKworc3RhdGljIHZvaWQgZGNuMTBfZG1jdV9zZXR1cF9wc3Ioc3Ry dWN0IGRtY3UgKmRtY3UsCisJCXN0cnVjdCBjb3JlX2xpbmsgKmxpbmssCisJCXN0cnVjdCBwc3Jf Y29udGV4dCAqcHNyX2NvbnRleHQpCit7CisJc3RydWN0IGRjZV9kbWN1ICpkbWN1X2RjZSA9IFRP X0RDRV9ETUNVKGRtY3UpOworCisJdW5zaWduZWQgaW50IGRtY3VfbWF4X3JldHJ5X29uX3dhaXRf cmVnX3JlYWR5ID0gODAxOworCXVuc2lnbmVkIGludCBkbWN1X3dhaXRfcmVnX3JlYWR5X2ludGVy dmFsID0gMTAwOworCisJdW5pb24gZGNlX2RtY3VfcHNyX2NvbmZpZ19kYXRhX3JlZzEgbWFzdGVy Q21kRGF0YTE7CisJdW5pb24gZGNlX2RtY3VfcHNyX2NvbmZpZ19kYXRhX3JlZzIgbWFzdGVyQ21k RGF0YTI7CisJdW5pb24gZGNlX2RtY3VfcHNyX2NvbmZpZ19kYXRhX3JlZzMgbWFzdGVyQ21kRGF0 YTM7CisKKwlsaW5rLT5saW5rX2VuYy0+ZnVuY3MtPnBzcl9wcm9ncmFtX2RwX2RwaHlfZmFzdF90 cmFpbmluZyhsaW5rLT5saW5rX2VuYywKKwkJCXBzcl9jb250ZXh0LT5wc3JFeGl0TGlua1RyYWlu aW5nUmVxdWlyZWQpOworCisJLyogRW5hYmxlIHN0YXRpYyBzY3JlZW4gaW50ZXJydXB0cyBmb3Ig UFNSIHN1cHBvcnRlZCBkaXNwbGF5ICovCisJLyogRGlzYWJsZSB0aGUgaW50ZXJydXB0IGNvbWlu ZyBmcm9tIG90aGVyIGRpc3BsYXlzLiAqLworCVJFR19VUERBVEVfNChETUNVX0lOVEVSUlVQVF9U T19VQ19FTl9NQVNLLAorCQkJU1RBVElDX1NDUkVFTjFfSU5UX1RPX1VDX0VOLCAwLAorCQkJU1RB VElDX1NDUkVFTjJfSU5UX1RPX1VDX0VOLCAwLAorCQkJU1RBVElDX1NDUkVFTjNfSU5UX1RPX1VD X0VOLCAwLAorCQkJU1RBVElDX1NDUkVFTjRfSU5UX1RPX1VDX0VOLCAwKTsKKworCXN3aXRjaCAo cHNyX2NvbnRleHQtPmNvbnRyb2xsZXJJZCkgeworCS8qIERyaXZlciB1c2VzIGNhc2UgMSBmb3Ig dW5jb25maWd1cmVkICovCisJY2FzZSAxOgorCQlSRUdfVVBEQVRFKERNQ1VfSU5URVJSVVBUX1RP X1VDX0VOX01BU0ssCisJCQkJU1RBVElDX1NDUkVFTjFfSU5UX1RPX1VDX0VOLCAxKTsKKwkJYnJl YWs7CisJY2FzZSAyOgorCQlSRUdfVVBEQVRFKERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0ss CisJCQkJU1RBVElDX1NDUkVFTjJfSU5UX1RPX1VDX0VOLCAxKTsKKwkJYnJlYWs7CisJY2FzZSAz OgorCQlSRUdfVVBEQVRFKERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0ssCisJCQkJU1RBVElD X1NDUkVFTjNfSU5UX1RPX1VDX0VOLCAxKTsKKwkJYnJlYWs7CisJY2FzZSA0OgorCQlSRUdfVVBE QVRFKERNQ1VfSU5URVJSVVBUX1RPX1VDX0VOX01BU0ssCisJCQkJU1RBVElDX1NDUkVFTjRfSU5U X1RPX1VDX0VOLCAxKTsKKwkJYnJlYWs7CisJY2FzZSA1OgorCQkvKiBDWi9OTCBvbmx5IGhhcyA0 IENSVEMhIQorCQkgKiByZWFsbHkgdmFsaWQuCisJCSAqIFRoZXJlIGlzIG5vIGludGVycnVwdCBl bmFibGUgbWFzayBmb3IgdGhlc2UgaW5zdGFuY2VzLgorCQkgKi8KKwkJYnJlYWs7CisJY2FzZSA2 OgorCQkvKiBDWi9OTCBvbmx5IGhhcyA0IENSVEMhIQorCQkgKiBUaGVzZSBhcmUgaGVyZSBiZWNh dXNlIHRoZXkgYXJlIGRlZmluZWQgaW4gSFcgcmVnc3BlYywKKwkJICogYnV0IG5vdCByZWFsbHkg dmFsaWQuIFRoZXJlIGlzIG5vIGludGVycnVwdCBlbmFibGUgbWFzaworCQkgKiBmb3IgdGhlc2Ug aW5zdGFuY2VzLgorCQkgKi8KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJUkVHX1VQREFURShETUNV X0lOVEVSUlVQVF9UT19VQ19FTl9NQVNLLAorCQkJCVNUQVRJQ19TQ1JFRU4xX0lOVF9UT19VQ19F TiwgMSk7CisJCWJyZWFrOworCX0KKworCWxpbmstPmxpbmtfZW5jLT5mdW5jcy0+cHNyX3Byb2dy YW1fc2Vjb25kYXJ5X3BhY2tldChsaW5rLT5saW5rX2VuYywKKwkJCXBzcl9jb250ZXh0LT5zZHBU cmFuc21pdExpbmVOdW1EZWFkbGluZSk7CisKKwlpZiAocHNyX2NvbnRleHQtPnBzcl9sZXZlbC5i aXRzLlNLSVBfU01VX05PVElGSUNBVElPTikKKwkJUkVHX1VQREFURShTTVVfSU5URVJSVVBUX0NP TlRST0wsIERDX1NNVV9JTlRfRU5BQkxFLCAxKTsKKworCS8qIHdhaXRETUNVUmVhZHlGb3JDbWQg Ki8KKwlSRUdfV0FJVChNQVNURVJfQ09NTV9DTlRMX1JFRywgTUFTVEVSX0NPTU1fSU5URVJSVVBU LCAwLAorCQkJZG1jdV93YWl0X3JlZ19yZWFkeV9pbnRlcnZhbCwKKwkJCWRtY3VfbWF4X3JldHJ5 X29uX3dhaXRfcmVnX3JlYWR5KTsKKworCS8qIHNldERNQ1VQYXJhbV9QU1JIb3N0Q29uZmlnRGF0 YSAqLworCW1hc3RlckNtZERhdGExLnUzMkFsbCA9IDA7CisJbWFzdGVyQ21kRGF0YTEuYml0cy50 aW1laHlzdF9mcmFtZXMgPSBwc3JfY29udGV4dC0+dGltZWh5c3RfZnJhbWVzOworCW1hc3RlckNt ZERhdGExLmJpdHMuaHlzdF9saW5lcyA9IHBzcl9jb250ZXh0LT5oeXN0X2xpbmVzOworCW1hc3Rl ckNtZERhdGExLmJpdHMucmZiX3VwZGF0ZV9hdXRvX2VuID0KKwkJCXBzcl9jb250ZXh0LT5yZmJf dXBkYXRlX2F1dG9fZW47CisJbWFzdGVyQ21kRGF0YTEuYml0cy5kcF9wb3J0X251bSA9IHBzcl9j b250ZXh0LT50cmFuc21pdHRlcklkOworCW1hc3RlckNtZERhdGExLmJpdHMuZGNwX3NlbCA9IHBz cl9jb250ZXh0LT5jb250cm9sbGVySWQ7CisJbWFzdGVyQ21kRGF0YTEuYml0cy5waHlfdHlwZSAg PSBwc3JfY29udGV4dC0+cGh5VHlwZTsKKwltYXN0ZXJDbWREYXRhMS5iaXRzLmZyYW1lX2NhcF9p bmQgPQorCQkJcHNyX2NvbnRleHQtPnBzckZyYW1lQ2FwdHVyZUluZGljYXRpb25SZXE7CisJbWFz dGVyQ21kRGF0YTEuYml0cy5hdXhfY2hhbiA9IHBzcl9jb250ZXh0LT5jaGFubmVsOworCW1hc3Rl ckNtZERhdGExLmJpdHMuYXV4X3JlcGVhdCA9IHBzcl9jb250ZXh0LT5hdXhfcmVwZWF0czsKKwlk bV93cml0ZV9yZWcoZG1jdS0+Y3R4LCBSRUcoTUFTVEVSX0NPTU1fREFUQV9SRUcxKSwKKwkJCQkJ bWFzdGVyQ21kRGF0YTEudTMyQWxsKTsKKworCW1hc3RlckNtZERhdGEyLnUzMkFsbCA9IDA7CisJ bWFzdGVyQ21kRGF0YTIuYml0cy5kaWdfZmUgPSBwc3JfY29udGV4dC0+ZW5naW5lSWQ7CisJbWFz dGVyQ21kRGF0YTIuYml0cy5kaWdfYmUgPSBwc3JfY29udGV4dC0+dHJhbnNtaXR0ZXJJZDsKKwlt YXN0ZXJDbWREYXRhMi5iaXRzLnNraXBfd2FpdF9mb3JfcGxsX2xvY2sgPQorCQkJcHNyX2NvbnRl eHQtPnNraXBQc3JXYWl0Rm9yUGxsTG9jazsKKwltYXN0ZXJDbWREYXRhMi5iaXRzLmZyYW1lX2Rl bGF5ID0gcHNyX2NvbnRleHQtPmZyYW1lX2RlbGF5OworCW1hc3RlckNtZERhdGEyLmJpdHMuc211 X3BoeV9pZCA9IHBzcl9jb250ZXh0LT5zbXVQaHlJZDsKKwltYXN0ZXJDbWREYXRhMi5iaXRzLm51 bV9vZl9jb250cm9sbGVycyA9CisJCQlwc3JfY29udGV4dC0+bnVtYmVyT2ZDb250cm9sbGVyczsK KwlkbV93cml0ZV9yZWcoZG1jdS0+Y3R4LCBSRUcoTUFTVEVSX0NPTU1fREFUQV9SRUcyKSwKKwkJ CW1hc3RlckNtZERhdGEyLnUzMkFsbCk7CisKKwltYXN0ZXJDbWREYXRhMy51MzJBbGwgPSAwOwor CW1hc3RlckNtZERhdGEzLmJpdHMucHNyX2xldmVsID0gcHNyX2NvbnRleHQtPnBzcl9sZXZlbC51 MzJhbGw7CisJZG1fd3JpdGVfcmVnKGRtY3UtPmN0eCwgUkVHKE1BU1RFUl9DT01NX0RBVEFfUkVH MyksCisJCQltYXN0ZXJDbWREYXRhMy51MzJBbGwpOworCisJLyogc2V0RE1DVVBhcmFtX0NtZCAq LworCVJFR19VUERBVEUoTUFTVEVSX0NPTU1fQ01EX1JFRywKKwkJCU1BU1RFUl9DT01NX0NNRF9S RUdfQllURTAsIFBTUl9TRVQpOworCisJLyogbm90aWZ5RE1DVU1zZyAqLworCVJFR19VUERBVEUo TUFTVEVSX0NPTU1fQ05UTF9SRUcsIE1BU1RFUl9DT01NX0lOVEVSUlVQVCwgMSk7Cit9CisKKyNl bmRpZgorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRtY3VfZnVuY3MgZGNlX2Z1bmNzID0gewogCS5s b2FkX2lyYW0gPSBkY2VfZG1jdV9sb2FkX2lyYW0sCiAJLnNldF9wc3JfZW5hYmxlID0gZGNlX2Rt Y3Vfc2V0X3Bzcl9lbmFibGUsCiAJLnNldHVwX3BzciA9IGRjZV9kbWN1X3NldHVwX3BzciwKIH07 CiAKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZG1jdV9mdW5jcyBkY24xMF9mdW5jcyA9IHsKKwkubG9hZF9pcmFtID0gZGNuMTBfZG1j dV9sb2FkX2lyYW0sCisJLnNldF9wc3JfZW5hYmxlID0gZGNuMTBfZG1jdV9zZXRfcHNyX2VuYWJs ZSwKKwkuc2V0dXBfcHNyID0gZGNuMTBfZG1jdV9zZXR1cF9wc3IsCit9OworI2VuZGlmCisKIHN0 YXRpYyB2b2lkIGRjZV9kbWN1X2NvbnN0cnVjdCgKIAlzdHJ1Y3QgZGNlX2RtY3UgKmRtY3VfZGNl LAogCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCkBAIC0yOTYsNiArNTE4LDI5IEBAIHN0cnVjdCBk bWN1ICpkY2VfZG1jdV9jcmVhdGUoCiAJcmV0dXJuICZkbWN1X2RjZS0+YmFzZTsKIH0KIAorI2lm IGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQorc3RydWN0IGRtY3UgKmRjbjEwX2Rt Y3VfY3JlYXRlKAorCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCisJY29uc3Qgc3RydWN0IGRjZV9k bWN1X3JlZ2lzdGVycyAqcmVncywKKwljb25zdCBzdHJ1Y3QgZGNlX2RtY3Vfc2hpZnQgKmRtY3Vf c2hpZnQsCisJY29uc3Qgc3RydWN0IGRjZV9kbWN1X21hc2sgKmRtY3VfbWFzaykKK3sKKwlzdHJ1 Y3QgZGNlX2RtY3UgKmRtY3VfZGNlID0gZG1fYWxsb2Moc2l6ZW9mKCpkbWN1X2RjZSkpOworCisJ aWYgKGRtY3VfZGNlID09IE5VTEwpIHsKKwkJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwkJcmV0dXJu IE5VTEw7CisJfQorCisJZGNlX2RtY3VfY29uc3RydWN0KAorCQlkbWN1X2RjZSwgY3R4LCByZWdz LCBkbWN1X3NoaWZ0LCBkbWN1X21hc2spOworCisJZG1jdV9kY2UtPmJhc2UuZnVuY3MgPSAmZGNu MTBfZnVuY3M7CisKKwlyZXR1cm4gJmRtY3VfZGNlLT5iYXNlOworfQorI2VuZGlmCisKIHZvaWQg ZGNlX2RtY3VfZGVzdHJveShzdHJ1Y3QgZG1jdSAqKmRtY3UpCiB7CiAJc3RydWN0IGRjZV9kbWN1 ICpkbWN1X2RjZSA9IFRPX0RDRV9ETUNVKCpkbWN1KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2RtY3UuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9kY2UvZGNlX2RtY3UuaAppbmRleCA3ZGMyNTM4Li41ODQ2ODJiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9kbWN1LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfZG1jdS5oCkBAIC00OCw2ICs0 OCwxMiBAQAogCURNQ1VfQ09NTU9OX1JFR19MSVNUX0RDRV9CQVNFKCksIFwKIAlTUihEQ0lfTUVN X1BXUl9TVEFUVVMpCiAKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKwkj ZGVmaW5lIERNQ1VfRENOMTBfUkVHX0xJU1QoKVwKKwkJRE1DVV9DT01NT05fUkVHX0xJU1RfRENF X0JBU0UoKSwgXAorCQlTUihETVVfTUVNX1BXUl9DTlRMKQorI2VuZGlmCisKICNkZWZpbmUgRE1D VV9TRihyZWdfbmFtZSwgZmllbGRfbmFtZSwgcG9zdF9maXgpXAogCS5maWVsZF9uYW1lID0gcmVn X25hbWUgIyMgX18gIyMgZmllbGRfbmFtZSAjIyBwb3N0X2ZpeAogCkBAIC03Niw2ICs4MiwxMyBA QAogCURNQ1VfU0YoRENJX01FTV9QV1JfU1RBVFVTLCBcCiAJCURNQ1VfSVJBTV9NRU1fUFdSX1NU QVRFLCBtYXNrX3NoKQogCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJ I2RlZmluZSBETUNVX01BU0tfU0hfTElTVF9EQ04xMChtYXNrX3NoKSBcCisJCURNQ1VfQ09NTU9O X01BU0tfU0hfTElTVF9EQ0VfQ09NTU9OX0JBU0UobWFza19zaCksIFwKKwkJRE1DVV9TRihETVVf TUVNX1BXUl9DTlRMLCBcCisJCQkJRE1DVV9JUkFNX01FTV9QV1JfU1RBVEUsIG1hc2tfc2gpCisj ZW5kaWYKKwogI2RlZmluZSBETUNVX1JFR19GSUVMRF9MSVNUKHR5cGUpIFwKIAl0eXBlIERNQ1Vf SVJBTV9NRU1fUFdSX1NUQVRFOyBcCiAJdHlwZSBJUkFNX0hPU1RfQUNDRVNTX0VOOyBcCkBAIC0x OTAsNiArMjAzLDE0IEBAIHN0cnVjdCBkbWN1ICpkY2VfZG1jdV9jcmVhdGUoCiAJY29uc3Qgc3Ry dWN0IGRjZV9kbWN1X3NoaWZ0ICpkbWN1X3NoaWZ0LAogCWNvbnN0IHN0cnVjdCBkY2VfZG1jdV9t YXNrICpkbWN1X21hc2spOwogCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzAp CitzdHJ1Y3QgZG1jdSAqZGNuMTBfZG1jdV9jcmVhdGUoCisJc3RydWN0IGRjX2NvbnRleHQgKmN0 eCwKKwljb25zdCBzdHJ1Y3QgZGNlX2RtY3VfcmVnaXN0ZXJzICpyZWdzLAorCWNvbnN0IHN0cnVj dCBkY2VfZG1jdV9zaGlmdCAqZG1jdV9zaGlmdCwKKwljb25zdCBzdHJ1Y3QgZGNlX2RtY3VfbWFz ayAqZG1jdV9tYXNrKTsKKyNlbmRpZgorCiB2b2lkIGRjZV9kbWN1X2Rlc3Ryb3koc3RydWN0IGRt Y3UgKipkbWN1KTsKIAogI2VuZGlmIC8qIF9EQ0VfQUJNX0hfICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9od3NlcS5oIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfaHdzZXEuaAppbmRleCBjNjY1ODUxLi5kZDEzZjQ3 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9od3Nl cS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2h3c2VxLmgK QEAgLTEyMSw2ICsxMjEsMTIgQEAKIAlIV1NFUV9QSVhFTF9SQVRFX1JFR19MSVNUKENSVEMpLCBc CiAJSFdTRVFfUEhZUExMX1JFR19MSVNUKENSVEMpCiAKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1f QU1EX0RDX0RDTjFfMCkKKyNkZWZpbmUgSFdTRVFfRENOMV9SRUdfTElTVCgpXAorCUhXU0VRX1BJ WEVMX1JBVEVfUkVHX0xJU1QoT1RHKSwgXAorCUhXU0VRX1BIWVBMTF9SRUdfTElTVChPVEcpCisj ZW5kaWYKKwogc3RydWN0IGRjZV9od3NlcV9yZWdpc3RlcnMgewogCXVpbnQzMl90IERDRkVfQ0xP Q0tfQ09OVFJPTFs2XTsKIAl1aW50MzJfdCBEQ0ZFVl9DTE9DS19DT05UUk9MOwpAQCAtMTI5LDYg KzEzNSw5IEBAIHN0cnVjdCBkY2VfaHdzZXFfcmVnaXN0ZXJzIHsKIAl1aW50MzJfdCBCTE5EX0NP TlRST0xbNl07CiAJdWludDMyX3QgQkxORFZfQ09OVFJPTDsKIAorI2lmIGRlZmluZWQoQ09ORklH X0RSTV9BTURfRENfRENOMV8wKQorCS8qIERDRSArIERDTiAqLworI2VuZGlmCiAJdWludDMyX3Qg Q1JUQ19IX0JMQU5LX1NUQVJUX0VORFs2XTsKIAl1aW50MzJfdCBQSVhFTF9SQVRFX0NOVExbNl07 CiAJdWludDMyX3QgUEhZUExMX1BJWEVMX1JBVEVfQ05UTFs2XTsKQEAgLTE5Miw2ICsyMDEsMTIg QEAgc3RydWN0IGRjZV9od3NlcV9yZWdpc3RlcnMgewogCUhXU0VRX1BJWEVMX1JBVEVfTUFTS19T SF9MSVNUKG1hc2tfc2gsIENSVEMwXyksXAogCUhXU0VRX1BIWVBMTF9NQVNLX1NIX0xJU1QobWFz a19zaCwgQ1JUQzBfKQogCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisj ZGVmaW5lIEhXU0VRX0RDTjFfTUFTS19TSF9MSVNUKG1hc2tfc2gpXAorCUhXU0VRX1BJWEVMX1JB VEVfTUFTS19TSF9MSVNUKG1hc2tfc2gsIE9URzBfKSxcCisJSFdTRVFfUEhZUExMX01BU0tfU0hf TElTVChtYXNrX3NoLCBPVEcwXykKKyNlbmRpZgorCiAjZGVmaW5lIEhXU0VRX1JFR19GSUVEX0xJ U1QodHlwZSkgXAogCXR5cGUgRENGRV9DTE9DS19FTkFCTEU7IFwKIAl0eXBlIERDRkVWX0NMT0NL X0VOQUJMRTsgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Rj ZS9kY2VfbGlua19lbmNvZGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNl L2RjZV9saW5rX2VuY29kZXIuaAppbmRleCA0ZTBiNWQ5Li44YjA0OTk2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9saW5rX2VuY29kZXIuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9saW5rX2VuY29kZXIuaApA QCAtNzgsNiArNzgsMTAgQEAKIAlTUkkoRFBfRFBIWV9JTlRFUk5BTF9DVFJMLCBEUCwgaWQpLCBc CiAJU1IoRENJX01FTV9QV1JfU1RBVFVTKQogCisjZGVmaW5lIExFX0RDRTgwX1JFR19MSVNUKGlk KVwKKwlTUkkoRFBfRFBIWV9JTlRFUk5BTF9DVFJMLCBEUCwgaWQpLCBcCisJTEVfQ09NTU9OX1JF R19MSVNUX0JBU0UoaWQpCisKICNkZWZpbmUgTEVfRENFMTAwX1JFR19MSVNUKGlkKVwKIAlMRV9D T01NT05fUkVHX0xJU1RfQkFTRShpZCksIFwKIAlTUkkoRFBfRFBIWV9CU19TUl9TV0FQX0NOVEws IERQLCBpZCksIFwKQEAgLTk3LDkgKzEwMSwxNSBAQAogCVNSSShEUF9EUEhZX0hCUjJfUEFUVEVS Tl9DT05UUk9MLCBEUCwgaWQpLCBcCiAJU1IoRENJX01FTV9QV1JfU1RBVFVTKQogCi0jZGVmaW5l IExFX0RDRTgwX1JFR19MSVNUKGlkKVwKLQlTUkkoRFBfRFBIWV9JTlRFUk5BTF9DVFJMLCBEUCwg aWQpLCBcCi0JTEVfQ09NTU9OX1JFR19MSVNUX0JBU0UoaWQpCisjaWYgZGVmaW5lZChDT05GSUdf RFJNX0FNRF9EQ19EQ04xXzApCisJI2RlZmluZSBMRV9EQ04xMF9SRUdfTElTVChpZClcCisJCUxF X0NPTU1PTl9SRUdfTElTVF9CQVNFKGlkKSwgXAorCQlTUkkoRFBfRFBIWV9CU19TUl9TV0FQX0NO VEwsIERQLCBpZCksIFwKKwkJU1JJKERQX0RQSFlfSU5URVJOQUxfQ1RSTCwgRFAsIGlkKSwgXAor CQlTUkkoRFBfRFBIWV9IQlIyX1BBVFRFUk5fQ09OVFJPTCwgRFAsIGlkKSwgXAorCQlTUihETVVf TUVNX1BXUl9DTlRMKQorI2VuZGlmCisKIAogc3RydWN0IGRjZTExMF9saW5rX2VuY19hdXhfcmVn aXN0ZXJzIHsKIAl1aW50MzJfdCBBVVhfQ09OVFJPTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX3N0cmVhbV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9zdHJlYW1fZW5jb2Rlci5jCmluZGV4IDk3MTNk ZWYuLmEwNjVlNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9k Y2UvZGNlX3N0cmVhbV9lbmNvZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RjZS9kY2Vfc3RyZWFtX2VuY29kZXIuYwpAQCAtMTQ3LDYgKzE0Nyw0NiBAQCBzdGF0aWMg dm9pZCBkY2UxMTBfdXBkYXRlX2dlbmVyaWNfaW5mb19wYWNrZXQoCiAJCQlBRk1UX0dFTkVSSUMw X1VQREFURSwgKHBhY2tldF9pbmRleCA9PSAwKSwKIAkJCUFGTVRfR0VORVJJQzJfVVBEQVRFLCAo cGFja2V0X2luZGV4ID09IDIpKTsKIAl9CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19E Q04xXzApCisJaWYgKFJFRyhBRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDEpKSB7CisJCXN3aXRjaCAo cGFja2V0X2luZGV4KSB7CisJCWNhc2UgMDoKKwkJCVJFR19VUERBVEUoQUZNVF9WQklfUEFDS0VU X0NPTlRST0wxLAorCQkJCQlBRk1UX0dFTkVSSUMwX0ZSQU1FX1VQREFURSwgMSk7CisJCQlicmVh azsKKwkJY2FzZSAxOgorCQkJUkVHX1VQREFURShBRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDEsCisJ CQkJCUFGTVRfR0VORVJJQzFfRlJBTUVfVVBEQVRFLCAxKTsKKwkJCWJyZWFrOworCQljYXNlIDI6 CisJCQlSRUdfVVBEQVRFKEFGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMSwKKwkJCQkJQUZNVF9HRU5F UklDMl9GUkFNRV9VUERBVEUsIDEpOworCQkJYnJlYWs7CisJCWNhc2UgMzoKKwkJCVJFR19VUERB VEUoQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxLAorCQkJCQlBRk1UX0dFTkVSSUMzX0ZSQU1FX1VQ REFURSwgMSk7CisJCQlicmVhazsKKwkJY2FzZSA0OgorCQkJUkVHX1VQREFURShBRk1UX1ZCSV9Q QUNLRVRfQ09OVFJPTDEsCisJCQkJCUFGTVRfR0VORVJJQzRfRlJBTUVfVVBEQVRFLCAxKTsKKwkJ CWJyZWFrOworCQljYXNlIDU6CisJCQlSRUdfVVBEQVRFKEFGTVRfVkJJX1BBQ0tFVF9DT05UUk9M MSwKKwkJCQkJQUZNVF9HRU5FUklDNV9GUkFNRV9VUERBVEUsIDEpOworCQkJYnJlYWs7CisJCWNh c2UgNjoKKwkJCVJFR19VUERBVEUoQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxLAorCQkJCQlBRk1U X0dFTkVSSUM2X0ZSQU1FX1VQREFURSwgMSk7CisJCQlicmVhazsKKwkJY2FzZSA3OgorCQkJUkVH X1VQREFURShBRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDEsCisJCQkJCUFGTVRfR0VORVJJQzdfRlJB TUVfVVBEQVRFLCAxKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKwl9 CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgZGNlMTEwX3VwZGF0ZV9oZG1pX2luZm9fcGFja2V0 KApAQCAtMjAyLDYgKzI0MiwzNiBAQCBzdGF0aWMgdm9pZCBkY2UxMTBfdXBkYXRlX2hkbWlfaW5m b19wYWNrZXQoCiAJCQkJSERNSV9HRU5FUklDMV9TRU5ELCBzZW5kLAogCQkJCUhETUlfR0VORVJJ QzFfTElORSwgbGluZSk7CiAJCWJyZWFrOworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENf RENOMV8wKQorCWNhc2UgNDoKKwkJaWYgKFJFRyhIRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wy KSkKKwkJCVJFR19VUERBVEVfMyhIRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyLAorCQkJCQlI RE1JX0dFTkVSSUMwX0NPTlQsIGNvbnQsCisJCQkJCUhETUlfR0VORVJJQzBfU0VORCwgc2VuZCwK KwkJCQkJSERNSV9HRU5FUklDMF9MSU5FLCBsaW5lKTsKKwkJYnJlYWs7CisJY2FzZSA1OgorCQlp ZiAoUkVHKEhETUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDIpKQorCQkJUkVHX1VQREFURV8zKEhE TUlfR0VORVJJQ19QQUNLRVRfQ09OVFJPTDIsCisJCQkJCUhETUlfR0VORVJJQzFfQ09OVCwgY29u dCwKKwkJCQkJSERNSV9HRU5FUklDMV9TRU5ELCBzZW5kLAorCQkJCQlIRE1JX0dFTkVSSUMxX0xJ TkUsIGxpbmUpOworCQlicmVhazsKKwljYXNlIDY6CisJCWlmIChSRUcoSERNSV9HRU5FUklDX1BB Q0tFVF9DT05UUk9MMykpCisJCQlSRUdfVVBEQVRFXzMoSERNSV9HRU5FUklDX1BBQ0tFVF9DT05U Uk9MMywKKwkJCQkJSERNSV9HRU5FUklDMF9DT05ULCBjb250LAorCQkJCQlIRE1JX0dFTkVSSUMw X1NFTkQsIHNlbmQsCisJCQkJCUhETUlfR0VORVJJQzBfTElORSwgbGluZSk7CisJCWJyZWFrOwor CWNhc2UgNzoKKwkJaWYgKFJFRyhIRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzKSkKKwkJCVJF R19VUERBVEVfMyhIRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzLAorCQkJCQlIRE1JX0dFTkVS SUMxX0NPTlQsIGNvbnQsCisJCQkJCUhETUlfR0VORVJJQzFfU0VORCwgc2VuZCwKKwkJCQkJSERN SV9HRU5FUklDMV9MSU5FLCBsaW5lKTsKKwkJYnJlYWs7CisjZW5kaWYKIAlkZWZhdWx0OgogCQkv KiBpbnZhbGlkIEhXIHBhY2tldCBpbmRleCAqLwogCQlkbV9sb2dnZXJfd3JpdGUoCkBAIC0yMTgs OSArMjg4LDI0IEBAIHN0YXRpYyB2b2lkIGRjZTExMF9zdHJlYW1fZW5jb2Rlcl9kcF9zZXRfc3Ry ZWFtX2F0dHJpYnV0ZSgKIAlzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nLAogCWVu dW0gZGNfY29sb3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlKQogeworI2lmIGRlZmluZWQoQ09O RklHX0RSTV9BTURfRENfRENOMV8wKQorCXVpbnQzMl90IGhfYWN0aXZlX3N0YXJ0OworCXVpbnQz Ml90IHZfYWN0aXZlX3N0YXJ0OworCXVpbnQzMl90IG1pc2MwID0gMDsKKwl1aW50MzJfdCBtaXNj MSA9IDA7CisJdWludDMyX3QgaF9ibGFuazsKKwl1aW50MzJfdCBoX2JhY2tfcG9yY2g7CisJdWlu dDhfdCBzeW5jaHJvbm91c19jbG9jayA9IDA7IC8qIGFzeW5jaHJvbm91cyBtb2RlICovCisJdWlu dDhfdCBjb2xvcmltZXRyeV9icGM7CisjZW5kaWYKIAogCXN0cnVjdCBkY2UxMTBfc3RyZWFtX2Vu Y29kZXIgKmVuYzExMCA9IERDRTExMFNUUkVOQ19GUk9NX1NUUkVOQyhlbmMpOwogCisjaWYgZGVm aW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJaWYgKFJFRyhEUF9EQl9DTlRMKSkKKwkJ UkVHX1VQREFURShEUF9EQl9DTlRMLCBEUF9EQl9ESVNBQkxFLCAxKTsKKyNlbmRpZgorCiAJLyog c2V0IHBpeGVsIGVuY29kaW5nICovCiAJc3dpdGNoIChjcnRjX3RpbWluZy0+cGl4ZWxfZW5jb2Rp bmcpIHsKIAljYXNlIFBJWEVMX0VOQ09ESU5HX1lDQkNSNDIyOgpAQCAtMjQ5LDYgKzMzNCwxMCBA QCBzdGF0aWMgdm9pZCBkY2UxMTBfc3RyZWFtX2VuY29kZXJfZHBfc2V0X3N0cmVhbV9hdHRyaWJ1 dGUoCiAJCWlmIChlbmMxMTAtPnNlX21hc2stPkRQX1ZJRF9NX0RPVUJMRV9WQUxVRV9FTikKIAkJ CVJFR19VUERBVEUoRFBfVklEX1RJTUlORywgRFBfVklEX01fRE9VQkxFX1ZBTFVFX0VOLCAxKTsK IAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQorCQlpZiAoZW5jMTEwLT5z ZV9tYXNrLT5EUF9WSURfTl9NVUwpCisJCQlSRUdfVVBEQVRFKERQX1ZJRF9USU1JTkcsIERQX1ZJ RF9OX01VTCwgMSk7CisjZW5kaWYKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJUkVHX1VQREFURShE UF9QSVhFTF9GT1JNQVQsIERQX1BJWEVMX0VOQ09ESU5HLApAQCAtMjU2LDYgKzM0NSwxMSBAQCBz dGF0aWMgdm9pZCBkY2UxMTBfc3RyZWFtX2VuY29kZXJfZHBfc2V0X3N0cmVhbV9hdHRyaWJ1dGUo CiAJCWJyZWFrOwogCX0KIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQor CWlmIChSRUcoRFBfTVNBX01JU0MpKQorCQltaXNjMSA9IFJFR19SRUFEKERQX01TQV9NSVNDKTsK KyNlbmRpZgorCiAJLyogc2V0IGNvbG9yIGRlcHRoICovCiAKIAlzd2l0Y2ggKGNydGNfdGltaW5n LT5kaXNwbGF5X2NvbG9yX2RlcHRoKSB7CkBAIC0yODksNiArMzgzLDEyOCBAQCBzdGF0aWMgdm9p ZCBkY2UxMTBfc3RyZWFtX2VuY29kZXJfZHBfc2V0X3N0cmVhbV9hdHRyaWJ1dGUoCiAJCQlEUF9E WU5fUkFOR0UsIDAsCiAJCQlEUF9ZQ0JDUl9SQU5HRSwgMCk7CiAKKyNpZiBkZWZpbmVkKENPTkZJ R19EUk1fQU1EX0RDX0RDTjFfMCkKKwlzd2l0Y2ggKGNydGNfdGltaW5nLT5kaXNwbGF5X2NvbG9y X2RlcHRoKSB7CisJY2FzZSBDT0xPUl9ERVBUSF82NjY6CisJCWNvbG9yaW1ldHJ5X2JwYyA9IDA7 CisJCWJyZWFrOworCWNhc2UgQ09MT1JfREVQVEhfODg4OgorCQljb2xvcmltZXRyeV9icGMgPSAx OworCQlicmVhazsKKwljYXNlIENPTE9SX0RFUFRIXzEwMTAxMDoKKwkJY29sb3JpbWV0cnlfYnBj ID0gMjsKKwkJYnJlYWs7CisJY2FzZSBDT0xPUl9ERVBUSF8xMjEyMTI6CisJCWNvbG9yaW1ldHJ5 X2JwYyA9IDM7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWNvbG9yaW1ldHJ5X2JwYyA9IDA7CisJ CWJyZWFrOworCX0KKworCW1pc2MwID0gbWlzYzAgfCBzeW5jaHJvbm91c19jbG9jazsKKwltaXNj MCA9IGNvbG9yaW1ldHJ5X2JwYyA8PCA1OworCisJaWYgKFJFRyhEUF9NU0FfVElNSU5HX1BBUkFN MSkpIHsKKwkJc3dpdGNoIChvdXRwdXRfY29sb3Jfc3BhY2UpIHsKKwkJY2FzZSBDT0xPUl9TUEFD RV9TUkdCOgorCQkJbWlzYzAgPSBtaXNjMCB8IDB4MDs7CisJCQltaXNjMSA9IG1pc2MxICYgfjB4 ODA7IC8qIGJpdDcgPSAwKi8KKwkJCWJyZWFrOworCQljYXNlIENPTE9SX1NQQUNFX1NSR0JfTElN SVRFRDoKKwkJCW1pc2MwID0gbWlzYzAgfCAweDg7IC8qIGJpdDM9MSAqLworCQkJbWlzYzEgPSBt aXNjMSAmIH4weDgwOyAvKiBiaXQ3ID0gMCovCisJCQlicmVhazsKKwkJY2FzZSBDT0xPUl9TUEFD RV9ZQ0JDUjYwMToKKwkJCW1pc2MwID0gbWlzYzAgfCAweDg7IC8qIGJpdDM9MSwgYml0ND0wICov CisJCQltaXNjMSA9IG1pc2MxICYgfjB4ODA7IC8qIGJpdDcgPSAwKi87CisJCQlpZiAoY3J0Y190 aW1pbmctPnBpeGVsX2VuY29kaW5nID09IFBJWEVMX0VOQ09ESU5HX1lDQkNSNDIyKQorCQkJCW1p c2MwID0gbWlzYzAgfCAweDI7IC8qIGJpdDI9MCwgYml0MT0xICovCisJCQllbHNlIGlmIChjcnRj X3RpbWluZy0+cGl4ZWxfZW5jb2RpbmcgPT0gUElYRUxfRU5DT0RJTkdfWUNCQ1I0NDQpCisJCQkJ bWlzYzAgPSBtaXNjMCB8IDB4NDsgLyogYml0Mj0xLCBiaXQxPTAgKi8KKwkJCWJyZWFrOworCQlj YXNlIENPTE9SX1NQQUNFX1lDQkNSNzA5OgorCQkJbWlzYzAgPSBtaXNjMCB8IDB4MTg7IC8qIGJp dDM9MSwgYml0ND0xICovCisJCQltaXNjMSA9IG1pc2MxICYgfjB4ODA7IC8qIGJpdDcgPSAwKi8K KwkJCWlmIChjcnRjX3RpbWluZy0+cGl4ZWxfZW5jb2RpbmcgPT0gUElYRUxfRU5DT0RJTkdfWUNC Q1I0MjIpCisJCQkJbWlzYzAgPSBtaXNjMCB8IDB4MjsgLyogYml0Mj0wLCBiaXQxPTEgKi8KKwkJ CWVsc2UgaWYgKGNydGNfdGltaW5nLT5waXhlbF9lbmNvZGluZyA9PSBQSVhFTF9FTkNPRElOR19Z Q0JDUjQ0NCkKKwkJCQltaXNjMCA9IG1pc2MwIHwgMHg0OyAvKiBiaXQyPTEsIGJpdDE9MCAqLwor CQkJYnJlYWs7CisJCWNhc2UgQ09MT1JfU1BBQ0VfMjAyMF9SR0JfRlVMTFJBTkdFOgorCQljYXNl IENPTE9SX1NQQUNFXzIwMjBfUkdCX0xJTUlURURSQU5HRToKKwkJY2FzZSBDT0xPUl9TUEFDRV8y MDIwX1lDQkNSOgorCQljYXNlIENPTE9SX1NQQUNFX0FET0JFUkdCOgorCQljYXNlIENPTE9SX1NQ QUNFX1VOS05PV046CisJCWNhc2UgQ09MT1JfU1BBQ0VfWUNCQ1I2MDFfTElNSVRFRDoKKwkJY2Fz ZSBDT0xPUl9TUEFDRV9ZQ0JDUjcwOV9MSU1JVEVEOgorCQkJLyogZG8gbm90aGluZyAqLworCQkJ YnJlYWs7CisJCX0KKworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQorCQlp ZiAoUkVHKERQX01TQV9DT0xPUklNRVRSWSkpCisJCQlSRUdfU0VUKERQX01TQV9DT0xPUklNRVRS WSwgMCwgRFBfTVNBX01JU0MwLCBtaXNjMCk7CisKKwkJaWYgKFJFRyhEUF9NU0FfTUlTQykpCisJ CQlSRUdfV1JJVEUoRFBfTVNBX01JU0MsIG1pc2MxKTsgICAvKiBNU0FfTUlTQzEgKi8KKworCS8q IGRjbiBuZXcgcmVnaXN0ZXIKKwkgKiBkY19jcnRjX3RpbWluZyBpcyB2ZXNhIGRtdCBzdHJ1Y3Qu IGRhdGEgZnJvbSBlZGlkCisJICovCisJCWlmIChSRUcoRFBfTVNBX1RJTUlOR19QQVJBTTEpKQor CQkJUkVHX1NFVF8yKERQX01TQV9USU1JTkdfUEFSQU0xLCAwLAorCQkJCQlEUF9NU0FfSFRPVEFM LCBjcnRjX3RpbWluZy0+aF90b3RhbCwKKwkJCQkJRFBfTVNBX1ZUT1RBTCwgY3J0Y190aW1pbmct PnZfdG90YWwpOworI2VuZGlmCisKKwkJLyogY2FsY3VhdGUgZnJvbSB2ZXNhIHRpbWluZyBwYXJh bWV0ZXJzCisJCSAqIGhfYWN0aXZlX3N0YXJ0IHJlbGF0ZWQgdG8gbGVhZGluZyBlZGdlIG9mIHN5 bmMKKwkJICovCisKKwkJaF9ibGFuayA9IGNydGNfdGltaW5nLT5oX3RvdGFsIC0gY3J0Y190aW1p bmctPmhfYm9yZGVyX2xlZnQgLQorCQkJCWNydGNfdGltaW5nLT5oX2FkZHJlc3NhYmxlIC0gY3J0 Y190aW1pbmctPmhfYm9yZGVyX3JpZ2h0OworCisJCWhfYmFja19wb3JjaCA9IGhfYmxhbmsgLSBj cnRjX3RpbWluZy0+aF9mcm9udF9wb3JjaCAtCisJCQkJY3J0Y190aW1pbmctPmhfc3luY193aWR0 aDsKKworCQkvKiBzdGFydCBhdCBiZWdpbmluZyBvZiBsZWZ0IGJvcmRlciAqLworCQloX2FjdGl2 ZV9zdGFydCA9IGNydGNfdGltaW5nLT5oX3N5bmNfd2lkdGggKyBoX2JhY2tfcG9yY2g7CisKKwor CQl2X2FjdGl2ZV9zdGFydCA9IGNydGNfdGltaW5nLT52X3RvdGFsIC0gY3J0Y190aW1pbmctPnZf Ym9yZGVyX3RvcCAtCisJCQkJY3J0Y190aW1pbmctPnZfYWRkcmVzc2FibGUgLSBjcnRjX3RpbWlu Zy0+dl9ib3JkZXJfYm90dG9tIC0KKwkJCQljcnRjX3RpbWluZy0+dl9mcm9udF9wb3JjaDsKKwor CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJCS8qIHN0YXJ0IGF0IGJl Z2luaW5nIG9mIGxlZnQgYm9yZGVyICovCisJCWlmIChSRUcoRFBfTVNBX1RJTUlOR19QQVJBTTIp KQorCQkJUkVHX1NFVF8yKERQX01TQV9USU1JTkdfUEFSQU0yLCAwLAorCQkJCURQX01TQV9IU1RB UlQsIGhfYWN0aXZlX3N0YXJ0LAorCQkJCURQX01TQV9WU1RBUlQsIHZfYWN0aXZlX3N0YXJ0KTsK KworCQlpZiAoUkVHKERQX01TQV9USU1JTkdfUEFSQU0zKSkKKwkJCVJFR19TRVRfNChEUF9NU0Ff VElNSU5HX1BBUkFNMywgMCwKKwkJCQkJRFBfTVNBX0hTWU5DV0lEVEgsCisJCQkJCWNydGNfdGlt aW5nLT5oX3N5bmNfd2lkdGgsCisJCQkJCURQX01TQV9IU1lOQ1BPTEFSSVRZLAorCQkJCQkhY3J0 Y190aW1pbmctPmZsYWdzLkhTWU5DX1BPU0lUSVZFX1BPTEFSSVRZLAorCQkJCQlEUF9NU0FfVlNZ TkNXSURUSCwKKwkJCQkJY3J0Y190aW1pbmctPnZfc3luY193aWR0aCwKKwkJCQkJRFBfTVNBX1ZT WU5DUE9MQVJJVFksCisJCQkJCSFjcnRjX3RpbWluZy0+ZmxhZ3MuVlNZTkNfUE9TSVRJVkVfUE9M QVJJVFkpOworCisJCS8qIEhXRElUSCBpbmNsdWRlIGJvcmRlciBvciBvdmVyc2NhbiAqLworCQlp ZiAoUkVHKERQX01TQV9USU1JTkdfUEFSQU00KSkKKwkJCVJFR19TRVRfMihEUF9NU0FfVElNSU5H X1BBUkFNNCwgMCwKKwkJCQlEUF9NU0FfSFdJRFRILCBjcnRjX3RpbWluZy0+aF9ib3JkZXJfbGVm dCArCisJCQkJY3J0Y190aW1pbmctPmhfYWRkcmVzc2FibGUgKyBjcnRjX3RpbWluZy0+aF9ib3Jk ZXJfcmlnaHQsCisJCQkJRFBfTVNBX1ZIRUlHSFQsIGNydGNfdGltaW5nLT52X2JvcmRlcl90b3Ag KworCQkJCWNydGNfdGltaW5nLT52X2FkZHJlc3NhYmxlICsgY3J0Y190aW1pbmctPnZfYm9yZGVy X2JvdHRvbSk7CisjZW5kaWYKKwl9CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgZGNlMTEwX3N0 cmVhbV9lbmNvZGVyX3NldF9zdHJlYW1fYXR0cmlidXRlX2hlbHBlcigKQEAgLTUzMyw2ICs3NDks MTkgQEAgc3RhdGljIHZvaWQgZGNlMTEwX3N0cmVhbV9lbmNvZGVyX3VwZGF0ZV9oZG1pX2luZm9f cGFja2V0cygKIAkJZGNlMTEwX3VwZGF0ZV9oZG1pX2luZm9fcGFja2V0KGVuYzExMCwgMywgJmlu Zm9fZnJhbWUtPmhkcnNtZCk7CiAJfQogCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19E Q04xXzApCisJaWYgKGVuYzExMC0+c2VfbWFzay0+SERNSV9EQl9ESVNBQkxFKSB7CisJCS8qIGZv ciBicmluZyB1cCwgZGlzYWJsZSBkcCBkb3VibGUgIFRPRE8gKi8KKwkJaWYgKFJFRyhIRE1JX0RC X0NPTlRST0wpKQorCQkJUkVHX1VQREFURShIRE1JX0RCX0NPTlRST0wsIEhETUlfREJfRElTQUJM RSwgMSk7CisKKwkJZGNlMTEwX3VwZGF0ZV9oZG1pX2luZm9fcGFja2V0KGVuYzExMCwgMCwgJmlu Zm9fZnJhbWUtPmF2aSk7CisJCWRjZTExMF91cGRhdGVfaGRtaV9pbmZvX3BhY2tldChlbmMxMTAs IDEsICZpbmZvX2ZyYW1lLT52ZW5kb3IpOworCQlkY2UxMTBfdXBkYXRlX2hkbWlfaW5mb19wYWNr ZXQoZW5jMTEwLCAyLCAmaW5mb19mcmFtZS0+Z2FtdXQpOworCQlkY2UxMTBfdXBkYXRlX2hkbWlf aW5mb19wYWNrZXQoZW5jMTEwLCAzLCAmaW5mb19mcmFtZS0+c3BkKTsKKwkJZGNlMTEwX3VwZGF0 ZV9oZG1pX2luZm9fcGFja2V0KGVuYzExMCwgNCwgJmluZm9fZnJhbWUtPmhkcnNtZCk7CisJfQor I2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIGRjZTExMF9zdHJlYW1fZW5jb2Rlcl9zdG9wX2hkbWlf aW5mb19wYWNrZXRzKApAQCAtNTU4LDYgKzc4NywyNiBAQCBzdGF0aWMgdm9pZCBkY2UxMTBfc3Ry ZWFtX2VuY29kZXJfc3RvcF9oZG1pX2luZm9fcGFja2V0cygKIAkJSERNSV9HRU5FUklDMV9MSU5F LCAwLAogCQlIRE1JX0dFTkVSSUMxX1NFTkQsIDApOwogCisjaWYgZGVmaW5lZChDT05GSUdfRFJN X0FNRF9EQ19EQ04xXzApCisJLyogc3RvcCBnZW5lcmljIHBhY2tldHMgMiAmIDMgb24gSERNSSAq LworCWlmIChSRUcoSERNSV9HRU5FUklDX1BBQ0tFVF9DT05UUk9MMikpCisJCVJFR19TRVRfNihI RE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyLCAwLAorCQkJSERNSV9HRU5FUklDMF9DT05ULCAw LAorCQkJSERNSV9HRU5FUklDMF9MSU5FLCAwLAorCQkJSERNSV9HRU5FUklDMF9TRU5ELCAwLAor CQkJSERNSV9HRU5FUklDMV9DT05ULCAwLAorCQkJSERNSV9HRU5FUklDMV9MSU5FLCAwLAorCQkJ SERNSV9HRU5FUklDMV9TRU5ELCAwKTsKKworCWlmIChSRUcoSERNSV9HRU5FUklDX1BBQ0tFVF9D T05UUk9MMykpCisJCVJFR19TRVRfNihIRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzLCAwLAor CQkJSERNSV9HRU5FUklDMF9DT05ULCAwLAorCQkJSERNSV9HRU5FUklDMF9MSU5FLCAwLAorCQkJ SERNSV9HRU5FUklDMF9TRU5ELCAwLAorCQkJSERNSV9HRU5FUklDMV9DT05ULCAwLAorCQkJSERN SV9HRU5FUklDMV9MSU5FLCAwLAorCQkJSERNSV9HRU5FUklDMV9TRU5ELCAwKTsKKyNlbmRpZgog fQogCiBzdGF0aWMgdm9pZCBkY2UxMTBfc3RyZWFtX2VuY29kZXJfdXBkYXRlX2RwX2luZm9fcGFj a2V0cygKQEAgLTYyMSw2ICs4NzAsMjEgQEAgc3RhdGljIHZvaWQgZGNlMTEwX3N0cmVhbV9lbmNv ZGVyX3N0b3BfZHBfaW5mb19wYWNrZXRzKAogCQkJRFBfU0VDX1NUUkVBTV9FTkFCTEUsIDApOwog CX0KIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQorCWlmIChlbmMxMTAt PnNlX21hc2stPkRQX1NFQ19HU1A3X0VOQUJMRSkgeworCQlSRUdfU0VUXzEwKERQX1NFQ19DTlRM LCAwLAorCQkJRFBfU0VDX0dTUDBfRU5BQkxFLCAwLAorCQkJRFBfU0VDX0dTUDFfRU5BQkxFLCAw LAorCQkJRFBfU0VDX0dTUDJfRU5BQkxFLCAwLAorCQkJRFBfU0VDX0dTUDNfRU5BQkxFLCAwLAor CQkJRFBfU0VDX0dTUDRfRU5BQkxFLCAwLAorCQkJRFBfU0VDX0dTUDVfRU5BQkxFLCAwLAorCQkJ RFBfU0VDX0dTUDZfRU5BQkxFLCAwLAorCQkJRFBfU0VDX0dTUDdfRU5BQkxFLCAwLAorCQkJRFBf U0VDX01QR19FTkFCTEUsIDAsCisJCQlEUF9TRUNfU1RSRUFNX0VOQUJMRSwgMCk7CisJfQorI2Vu ZGlmCiAJLyogdGhpcyByZWdpc3RlciBzaGFyZWQgd2l0aCBhdWRpbyBpbmZvIGZyYW1lLgogCSAq IHRoZXJlZm9yZSB3ZSBuZWVkIHRvIGtlZXAgbWFzdGVyIGVuYWJsZWQKIAkgKiBpZiBhdCBsZWFz dCBvbmUgb2YgdGhlIGZpZWxkcyBpcyBub3QgMCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2Vfc3RyZWFtX2VuY29kZXIuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX3N0cmVhbV9lbmNvZGVyLmgKaW5kZXggODUwZTEy YS4uMGI1NDhjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Rj ZS9kY2Vfc3RyZWFtX2VuY29kZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvZGNlL2RjZV9zdHJlYW1fZW5jb2Rlci5oCkBAIC05Nyw2ICs5NywyMyBAQAogCVNFX0NPTU1P Tl9SRUdfTElTVF9EQ0VfQkFTRShpZCksIFwKIAlTUkkoQUZNVF9DTlRMLCBESUcsIGlkKQogCisj aWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisjZGVmaW5lIFNFX0RDTl9SRUdf TElTVChpZClcCisJU0VfQ09NTU9OX1JFR19MSVNUX0JBU0UoaWQpLFwKKwlTUkkoQUZNVF9DTlRM LCBESUcsIGlkKSxcCisJU1JJKEFGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMSwgRElHLCBpZCksXAor CVNSSShIRE1JX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wyLCBESUcsIGlkKSwgXAorCVNSSShIRE1J X0dFTkVSSUNfUEFDS0VUX0NPTlRST0wzLCBESUcsIGlkKSwgXAorCVNSSShEUF9EQl9DTlRMLCBE UCwgaWQpLCBcCisJU1JJKERQX01TQV9NSVNDLCBEUCwgaWQpLCBcCisJU1JJKERQX01TQV9DT0xP UklNRVRSWSwgRFAsIGlkKSwgXAorCVNSSShEUF9NU0FfVElNSU5HX1BBUkFNMSwgRFAsIGlkKSwg XAorCVNSSShEUF9NU0FfVElNSU5HX1BBUkFNMiwgRFAsIGlkKSwgXAorCVNSSShEUF9NU0FfVElN SU5HX1BBUkFNMywgRFAsIGlkKSwgXAorCVNSSShEUF9NU0FfVElNSU5HX1BBUkFNNCwgRFAsIGlk KSwgXAorCVNSSShIRE1JX0RCX0NPTlRST0wsIERJRywgaWQpCisjZW5kaWYKKwogI2RlZmluZSBT RV9TRihyZWdfbmFtZSwgZmllbGRfbmFtZSwgcG9zdF9maXgpXAogCS5maWVsZF9uYW1lID0gcmVn X25hbWUgIyMgX18gIyMgZmllbGRfbmFtZSAjIyBwb3N0X2ZpeAogCkBAIC0zMTEsNiArMzI4LDQ4 IEBACiAJU0VfU0YoRElHMF9BRk1UX0FWSV9JTkZPMywgQUZNVF9BVklfSU5GT19WRVJTSU9OLCBt YXNrX3NoKSxcCiAJU0VfU0YoRFAwX0RQX1ZJRF9USU1JTkcsIERQX1ZJRF9NX0RPVUJMRV9WQUxV RV9FTiwgbWFza19zaCkKIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQor I2RlZmluZSBTRV9DT01NT05fTUFTS19TSF9MSVNUX0RDTjEwKG1hc2tfc2gpXAorCVNFX0NPTU1P Tl9NQVNLX1NIX0xJU1RfU09DKG1hc2tfc2gpLFwKKwlTRV9TRihESUcwX0FGTVRfVkJJX1BBQ0tF VF9DT05UUk9MLCBBRk1UX0dFTkVSSUNfTE9DS19TVEFUVVMsIG1hc2tfc2gpLFwKKwlTRV9TRihE SUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MLCBBRk1UX0dFTkVSSUNfQ09ORkxJQ1QsIG1hc2tf c2gpLFwKKwlTRV9TRihESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MLCBBRk1UX0dFTkVSSUNf Q09ORkxJQ1RfQ0xSLCBtYXNrX3NoKSxcCisJU0VfU0YoRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09O VFJPTDEsIEFGTVRfR0VORVJJQzBfRlJBTUVfVVBEQVRFX1BFTkRJTkcsIG1hc2tfc2gpLFwKKwlT RV9TRihESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMSwgQUZNVF9HRU5FUklDMV9GUkFNRV9V UERBVEVfUEVORElORywgbWFza19zaCksXAorCVNFX1NGKERJRzBfQUZNVF9WQklfUEFDS0VUX0NP TlRST0wxLCBBRk1UX0dFTkVSSUMyX0ZSQU1FX1VQREFURV9QRU5ESU5HLCBtYXNrX3NoKSxcCisJ U0VfU0YoRElHMF9BRk1UX1ZCSV9QQUNLRVRfQ09OVFJPTDEsIEFGTVRfR0VORVJJQzNfRlJBTUVf VVBEQVRFX1BFTkRJTkcsIG1hc2tfc2gpLFwKKwlTRV9TRihESUcwX0FGTVRfVkJJX1BBQ0tFVF9D T05UUk9MMSwgQUZNVF9HRU5FUklDNF9GUkFNRV9VUERBVEVfUEVORElORywgbWFza19zaCksXAor CVNFX1NGKERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxLCBBRk1UX0dFTkVSSUM1X0ZSQU1F X1VQREFURV9QRU5ESU5HLCBtYXNrX3NoKSxcCisJU0VfU0YoRElHMF9BRk1UX1ZCSV9QQUNLRVRf Q09OVFJPTDEsIEFGTVRfR0VORVJJQzZfRlJBTUVfVVBEQVRFX1BFTkRJTkcsIG1hc2tfc2gpLFwK KwlTRV9TRihESUcwX0FGTVRfVkJJX1BBQ0tFVF9DT05UUk9MMSwgQUZNVF9HRU5FUklDN19GUkFN RV9VUERBVEVfUEVORElORywgbWFza19zaCksXAorCVNFX1NGKERJRzBfQUZNVF9WQklfUEFDS0VU X0NPTlRST0wxLCBBRk1UX0dFTkVSSUMwX0ZSQU1FX1VQREFURSwgbWFza19zaCksXAorCVNFX1NG KERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxLCBBRk1UX0dFTkVSSUMxX0ZSQU1FX1VQREFU RSwgbWFza19zaCksXAorCVNFX1NGKERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxLCBBRk1U X0dFTkVSSUMyX0ZSQU1FX1VQREFURSwgbWFza19zaCksXAorCVNFX1NGKERJRzBfQUZNVF9WQklf UEFDS0VUX0NPTlRST0wxLCBBRk1UX0dFTkVSSUMzX0ZSQU1FX1VQREFURSwgbWFza19zaCksXAor CVNFX1NGKERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxLCBBRk1UX0dFTkVSSUM0X0ZSQU1F X1VQREFURSwgbWFza19zaCksXAorCVNFX1NGKERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wx LCBBRk1UX0dFTkVSSUM1X0ZSQU1FX1VQREFURSwgbWFza19zaCksXAorCVNFX1NGKERJRzBfQUZN VF9WQklfUEFDS0VUX0NPTlRST0wxLCBBRk1UX0dFTkVSSUM2X0ZSQU1FX1VQREFURSwgbWFza19z aCksXAorCVNFX1NGKERJRzBfQUZNVF9WQklfUEFDS0VUX0NPTlRST0wxLCBBRk1UX0dFTkVSSUM3 X0ZSQU1FX1VQREFURSwgbWFza19zaCksXAorCVNFX1NGKERQMF9EUF9TRUNfQ05UTCwgRFBfU0VD X0dTUDRfRU5BQkxFLCBtYXNrX3NoKSxcCisJU0VfU0YoRFAwX0RQX1NFQ19DTlRMLCBEUF9TRUNf R1NQNV9FTkFCTEUsIG1hc2tfc2gpLFwKKwlTRV9TRihEUDBfRFBfU0VDX0NOVEwsIERQX1NFQ19H U1A2X0VOQUJMRSwgbWFza19zaCksXAorCVNFX1NGKERQMF9EUF9TRUNfQ05UTCwgRFBfU0VDX0dT UDdfRU5BQkxFLCBtYXNrX3NoKSxcCisJU0VfU0YoRFAwX0RQX0RCX0NOVEwsIERQX0RCX0RJU0FC TEUsIG1hc2tfc2gpLFwKKwlTRV9TRihEUDBfRFBfTVNBX0NPTE9SSU1FVFJZLCBEUF9NU0FfTUlT QzAsIG1hc2tfc2gpLFwKKwlTRV9TRihEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTEsIERQX01TQV9I VE9UQUwsIG1hc2tfc2gpLFwKKwlTRV9TRihEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTEsIERQX01T QV9WVE9UQUwsIG1hc2tfc2gpLFwKKwlTRV9TRihEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTIsIERQ X01TQV9IU1RBUlQsIG1hc2tfc2gpLFwKKwlTRV9TRihEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTIs IERQX01TQV9WU1RBUlQsIG1hc2tfc2gpLFwKKwlTRV9TRihEUDBfRFBfTVNBX1RJTUlOR19QQVJB TTMsIERQX01TQV9IU1lOQ1dJRFRILCBtYXNrX3NoKSxcCisJU0VfU0YoRFAwX0RQX01TQV9USU1J TkdfUEFSQU0zLCBEUF9NU0FfSFNZTkNQT0xBUklUWSwgbWFza19zaCksXAorCVNFX1NGKERQMF9E UF9NU0FfVElNSU5HX1BBUkFNMywgRFBfTVNBX1ZTWU5DV0lEVEgsIG1hc2tfc2gpLFwKKwlTRV9T RihEUDBfRFBfTVNBX1RJTUlOR19QQVJBTTMsIERQX01TQV9WU1lOQ1BPTEFSSVRZLCBtYXNrX3No KSxcCisJU0VfU0YoRFAwX0RQX01TQV9USU1JTkdfUEFSQU00LCBEUF9NU0FfSFdJRFRILCBtYXNr X3NoKSxcCisJU0VfU0YoRFAwX0RQX01TQV9USU1JTkdfUEFSQU00LCBEUF9NU0FfVkhFSUdIVCwg bWFza19zaCksXAorCVNFX1NGKERJRzBfSERNSV9EQl9DT05UUk9MLCBIRE1JX0RCX0RJU0FCTEUs IG1hc2tfc2gpLFwKKwlTRV9TRihEUDBfRFBfVklEX1RJTUlORywgRFBfVklEX05fTVVMLCBtYXNr X3NoKQorI2VuZGlmCisKIHN0cnVjdCBkY2Vfc3RyZWFtX2VuY29kZXJfc2hpZnQgewogCXVpbnQ4 X3QgQUZNVF9HRU5FUklDX0lOREVYOwogCXVpbnQ4X3QgQUZNVF9HRU5FUklDMF9VUERBVEU7CkBA IC02MjUsNiArNjg0LDE2IEBAIHN0cnVjdCBkY2UxMTBfc3RyZWFtX2VuY19yZWdpc3RlcnMgewog CXVpbnQzMl90IEhETUlfQUNSXzQ4XzA7CiAJdWludDMyX3QgSERNSV9BQ1JfNDhfMTsKIAl1aW50 MzJfdCBUTURTX0NOVEw7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJ dWludDMyX3QgRFBfREJfQ05UTDsKKwl1aW50MzJfdCBEUF9NU0FfTUlTQzsKKwl1aW50MzJfdCBE UF9NU0FfQ09MT1JJTUVUUlk7CisJdWludDMyX3QgRFBfTVNBX1RJTUlOR19QQVJBTTE7CisJdWlu dDMyX3QgRFBfTVNBX1RJTUlOR19QQVJBTTI7CisJdWludDMyX3QgRFBfTVNBX1RJTUlOR19QQVJB TTM7CisJdWludDMyX3QgRFBfTVNBX1RJTUlOR19QQVJBTTQ7CisJdWludDMyX3QgSERNSV9EQl9D T05UUk9MOworI2VuZGlmCiB9OwogCiBzdHJ1Y3QgZGNlMTEwX3N0cmVhbV9lbmNvZGVyIHsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX2h3 X3NlcXVlbmNlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2Ux MTBfaHdfc2VxdWVuY2VyLmMKaW5kZXggZGM0YzE2NC4uYzg5ZGY4YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2Vx dWVuY2VyLmMKQEAgLTk0Nyw2ICs5NDcsMTIgQEAgc3RhdGljIHZvaWQgcHJvZ3JhbV9zY2FsZXIo Y29uc3Qgc3RydWN0IGNvcmVfZGMgKmRjLAogewogCXN0cnVjdCB0Z19jb2xvciBjb2xvciA9IHsw fTsKIAorI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8wKQorCS8qIFRPRlBHQSAq LworCWlmIChwaXBlX2N0eC0+eGZtLT5mdW5jcy0+dHJhbnNmb3JtX3NldF9waXhlbF9zdG9yYWdl X2RlcHRoID09IE5VTEwpCisJCXJldHVybjsKKyNlbmRpZgorCiAJaWYgKGRjLT5wdWJsaWMuZGVi dWcuc3VyZmFjZV92aXN1YWxfY29uZmlybSkKIAkJZ2V0X3N1cmZhY2VfdmlzdWFsX2NvbmZpcm1f Y29sb3IocGlwZV9jdHgsICZjb2xvcik7CiAJZWxzZQpAQCAtMTExMyw2ICsxMTE5LDkgQEAgc3Rh dGljIGVudW0gZGNfc3RhdHVzIGFwcGx5X3NpbmdsZV9jb250cm9sbGVyX2N0eF90b19odygKIAkJ cHJvZ3JhbV9zY2FsZXIoZGMsIHBpcGVfY3R4KTsKIAogCS8qIG1zdCBzdXBwb3J0IC0gdXNlIHRv dGFsIHN0cmVhbSBjb3VudCAqLworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8w KQorCWlmIChwaXBlX2N0eC0+bWktPmZ1bmNzLT5hbGxvY2F0ZV9tZW1faW5wdXQgIT0gTlVMTCkK KyNlbmRpZgogCQlwaXBlX2N0eC0+bWktPmZ1bmNzLT5hbGxvY2F0ZV9tZW1faW5wdXQoCiAJCQkJ CXBpcGVfY3R4LT5taSwKIAkJCQkJc3RyZWFtLT5wdWJsaWMudGltaW5nLmhfdG90YWwsCkBAIC0x NjM3LDYgKzE2NDYsMjYgQEAgZW51bSBkY19zdGF0dXMgZGNlMTEwX2FwcGx5X2N0eF90b19odygK IAkvKlRPRE86IHdoZW4gcHBsaWIgd29ya3MqLwogCWFwcGx5X21pbl9jbG9ja3MoZGMsIGNvbnRl eHQsICZjbG9ja3Nfc3RhdGUsIHRydWUpOwogCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9E Q19EQ04xXzApCisJaWYgKGNvbnRleHQtPmZjbGtfa2h6CisJCQk+IGRjLT5jdXJyZW50X2NvbnRl eHQtPmZjbGtfa2h6KSB7CisJCXN0cnVjdCBkbV9wcF9jbG9ja19mb3Jfdm9sdGFnZV9yZXEgY2xv Y2s7CisKKwkJY2xvY2suY2xrX3R5cGUgPSBETV9QUF9DTE9DS19UWVBFX0ZDTEs7CisJCWNsb2Nr LmNsb2Nrc19pbl9raHogPSBjb250ZXh0LT5mY2xrX2toejsKKwkJZG1fcHBfYXBwbHlfY2xvY2tf Zm9yX3ZvbHRhZ2VfcmVxdWVzdChkYy0+Y3R4LCAmY2xvY2spOworCQlkYy0+Y3VycmVudF9jb250 ZXh0LT5mY2xrX2toeiA9IGNsb2NrLmNsb2Nrc19pbl9raHo7CisJfQorCWlmIChjb250ZXh0LT5k Y2ZjbGtfa2h6CisJCQk+IGRjLT5jdXJyZW50X2NvbnRleHQtPmRjZmNsa19raHopIHsKKwkJc3Ry dWN0IGRtX3BwX2Nsb2NrX2Zvcl92b2x0YWdlX3JlcSBjbG9jazsKKworCQljbG9jay5jbGtfdHlw ZSA9IERNX1BQX0NMT0NLX1RZUEVfRENGQ0xLOworCQljbG9jay5jbG9ja3NfaW5fa2h6ID0gY29u dGV4dC0+ZGNmY2xrX2toejsKKwkJZG1fcHBfYXBwbHlfY2xvY2tfZm9yX3ZvbHRhZ2VfcmVxdWVz dChkYy0+Y3R4LCAmY2xvY2spOworCQlkYy0+Y3VycmVudF9jb250ZXh0LT5kY2ZjbGtfa2h6ID0g Y2xvY2suY2xvY2tzX2luX2toejsKKwl9CisjZW5kaWYKIAlpZiAoY29udGV4dC0+ZGlzcGNsa19r aHoKIAkJCT4gZGMtPmN1cnJlbnRfY29udGV4dC0+ZGlzcGNsa19raHopIHsKIAkJZGMtPnJlc19w b29sLT5kaXNwbGF5X2Nsb2NrLT5mdW5jcy0+c2V0X2Nsb2NrKApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmggYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaAppbmRleCBjZjZlY2ZjLi5mYjYxZTMzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaApAQCAtNzUsNiAr NzUsMTAgQEAKIAlCUkVBS19UT19ERUJVR0dFUigpOyBcCiB9IHdoaWxlICgwKQogCisjaWYgZGVm aW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisjaW5jbHVkZSA8YXNtL2ZwdS9hcGkuaD4K KyNlbmRpZgorCiAjZGVmaW5lIGRtX2FsbG9jKHNpemUpIGt6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5F TCkKICNkZWZpbmUgZG1fcmVhbGxvYyhwdHIsIHNpemUpIGtyZWFsbG9jKHB0ciwgc2l6ZSwgR0ZQ X0tFUk5FTCkKICNkZWZpbmUgZG1fZnJlZShwdHIpIGtmcmVlKHB0cikKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190eXBlcy5oIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzX3R5cGVzLmgKaW5kZXggNDA4MTQx Yy4uYjI4MzA0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Rt X3NlcnZpY2VzX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Rt X3NlcnZpY2VzX3R5cGVzLmgKQEAgLTY5LDYgKzY5LDcgQEAgZW51bSBkbV9wcF9jbG9ja190eXBl IHsKIAlETV9QUF9DTE9DS19UWVBFX0VOR0lORV9DTEssIC8qIFN5c3RlbSBjbG9jayAqLwogCURN X1BQX0NMT0NLX1RZUEVfTUVNT1JZX0NMSywKIAlETV9QUF9DTE9DS19UWVBFX0RDRkNMSywKKwlE TV9QUF9DTE9DS19UWVBFX0RDRUZDTEssCiAJRE1fUFBfQ0xPQ0tfVFlQRV9TT0NDTEssCiAJRE1f UFBfQ0xPQ0tfVFlQRV9QSVhFTENMSywKIAlETV9QUF9DTE9DS19UWVBFX0RJU1BMQVlQSFlDTEss CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9NYWtlZmls ZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL01ha2VmaWxlCmluZGV4IDVl ODMxYWYuLjcwZDAxYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9k Yy9ncGlvL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlv L01ha2VmaWxlCkBAIC0zOCw2ICszOCwxNyBAQCBBTURfREFMX0dQSU9fRENFMTIwID0gJChhZGRw cmVmaXggJChBTUREQUxQQVRIKS9kYy9ncGlvL2RjZTEyMC8sJChHUElPX0RDRTEyMCkpCiBBTURf RElTUExBWV9GSUxFUyArPSAkKEFNRF9EQUxfR1BJT19EQ0UxMjApCiAKICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgRENOIDF4CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpZmRlZiBDT05GSUdf RFJNX0FNRF9EQ19EQ04xXzAKK0dQSU9fRENOMTAgPSBod190cmFuc2xhdGVfZGNuMTAubyBod19m YWN0b3J5X2RjbjEwLm8KKworQU1EX0RBTF9HUElPX0RDTjEwID0gJChhZGRwcmVmaXggJChBTURE QUxQQVRIKS9kYy9ncGlvL2RjbjEwLywkKEdQSU9fRENOMTApKQorCitBTURfRElTUExBWV9GSUxF UyArPSAkKEFNRF9EQUxfR1BJT19EQ04xMCkKK2VuZGlmCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKICMgRGlhZ25vc3RpY3Mgb24gRlBHQQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogR1BJT19E SUFHX0ZQR0EgPSBod190cmFuc2xhdGVfZGlhZy5vIGh3X2ZhY3RvcnlfZGlhZy5vCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19mYWN0b3J5LmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZ3Bpby9od19mYWN0b3J5LmMKaW5kZXggMjli YTgzZC4uOGE4YjYxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2dwaW8vaHdfZmFjdG9yeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9n cGlvL2h3X2ZhY3RvcnkuYwpAQCAtNDMsOCArNDMsMTAgQEAKICNpbmNsdWRlICJkY2U4MC9od19m YWN0b3J5X2RjZTgwLmgiCiAKICNpbmNsdWRlICJkY2UxMTAvaHdfZmFjdG9yeV9kY2UxMTAuaCIK LQogI2luY2x1ZGUgImRjZTEyMC9od19mYWN0b3J5X2RjZTEyMC5oIgorI2lmIGRlZmluZWQoQ09O RklHX0RSTV9BTURfRENfRENOMV8wKQorI2luY2x1ZGUgImRjbjEwL2h3X2ZhY3RvcnlfZGNuMTAu aCIKKyNlbmRpZgogCiAjaW5jbHVkZSAiZGlhZ25vc3RpY3MvaHdfZmFjdG9yeV9kaWFnLmgiCiAK QEAgLTc3LDYgKzc5LDExIEBAIGJvb2wgZGFsX2h3X2ZhY3RvcnlfaW5pdCgKIAljYXNlIERDRV9W RVJTSU9OXzEyXzA6CiAJCWRhbF9od19mYWN0b3J5X2RjZTEyMF9pbml0KGZhY3RvcnkpOwogCQly ZXR1cm4gdHJ1ZTsKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKwljYXNl IERDTl9WRVJTSU9OXzFfMDoKKwkJZGFsX2h3X2ZhY3RvcnlfZGNuMTBfaW5pdChmYWN0b3J5KTsK KwkJcmV0dXJuIHRydWU7CisjZW5kaWYKIAlkZWZhdWx0OgogCQlBU1NFUlRfQ1JJVElDQUwoZmFs c2UpOwogCQlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZ3Bpby9od190cmFuc2xhdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9ncGlvL2h3X3RyYW5zbGF0ZS5jCmluZGV4IDg3MmVkZGEuLjM2YzA4MmIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X3RyYW5zbGF0ZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9ncGlvL2h3X3RyYW5zbGF0ZS5jCkBA IC00Myw2ICs0MywxMCBAQAogI2luY2x1ZGUgImRjZTgwL2h3X3RyYW5zbGF0ZV9kY2U4MC5oIgog I2luY2x1ZGUgImRjZTExMC9od190cmFuc2xhdGVfZGNlMTEwLmgiCiAjaW5jbHVkZSAiZGNlMTIw L2h3X3RyYW5zbGF0ZV9kY2UxMjAuaCIKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RD TjFfMCkKKyNpbmNsdWRlICJkY24xMC9od190cmFuc2xhdGVfZGNuMTAuaCIKKyNlbmRpZgorCiAj aW5jbHVkZSAiZGlhZ25vc3RpY3MvaHdfdHJhbnNsYXRlX2RpYWcuaCIKIAogLyoKQEAgLTcxLDYg Kzc1LDExIEBAIGJvb2wgZGFsX2h3X3RyYW5zbGF0ZV9pbml0KAogCWNhc2UgRENFX1ZFUlNJT05f MTJfMDoKIAkJZGFsX2h3X3RyYW5zbGF0ZV9kY2UxMjBfaW5pdCh0cmFuc2xhdGUpOwogCQlyZXR1 cm4gdHJ1ZTsKKyNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKwljYXNlIERD Tl9WRVJTSU9OXzFfMDoKKwkJZGFsX2h3X3RyYW5zbGF0ZV9kY24xMF9pbml0KHRyYW5zbGF0ZSk7 CisJCXJldHVybiB0cnVlOworI2VuZGlmCiAJZGVmYXVsdDoKIAkJQlJFQUtfVE9fREVCVUdHRVIo KTsKIAkJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2kyY2F1eC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9p MmNhdXgvTWFrZWZpbGUKaW5kZXggYTYzNjc2OC4uNTU2MDM0MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2kyY2F1eC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvaTJjYXV4L01ha2VmaWxlCkBAIC00OCw2ICs0OCwxNyBAQCBB TURfREFMX0kyQ0FVWF9EQ0UxMTIgPSAkKGFkZHByZWZpeCAkKEFNRERBTFBBVEgpL2RjL2kyY2F1 eC9kY2UxMTIvLCQoSTJDQVVYX0RDRQogQU1EX0RJU1BMQVlfRklMRVMgKz0gJChBTURfREFMX0ky Q0FVWF9EQ0UxMTIpCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgRENOIDEuMCBmYW1pbHkK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2lmZGVmIENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMAor STJDQVVYX0RDTjEgPSBpMmNhdXhfZGNuMTAubworCitBTURfREFMX0kyQ0FVWF9EQ04xID0gJChh ZGRwcmVmaXggJChBTUREQUxQQVRIKS9kYy9pMmNhdXgvZGNuMTAvLCQoSTJDQVVYX0RDTjEpKQor CitBTURfRElTUExBWV9GSUxFUyArPSAkKEFNRF9EQUxfSTJDQVVYX0RDTjEpCitlbmRpZgorCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIERDRSAxMjAgZmFtaWx5CiAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiBJMkNBVVhfRENFMTIwID0gaTJjYXV4X2RjZTEyMC5vCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaTJjYXV4L2kyY2F1eC5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2kyY2F1eC9pMmNhdXguYwppbmRleCAwNzQzMjY1Li45ODM2NDVi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaTJjYXV4L2kyY2F1 eC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pMmNhdXgvaTJjYXV4LmMK QEAgLTU5LDYgKzU5LDEwIEBACiAKICNpbmNsdWRlICJkY2UxMjAvaTJjYXV4X2RjZTEyMC5oIgog CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisjaW5jbHVkZSAiZGNuMTAv aTJjYXV4X2RjbjEwLmgiCisjZW5kaWYKKwogI2luY2x1ZGUgImRpYWdub3N0aWNzL2kyY2F1eF9k aWFnLmgiCiAKIC8qCkBAIC04NCw2ICs4OCwxMCBAQCBzdHJ1Y3QgaTJjYXV4ICpkYWxfaTJjYXV4 X2NyZWF0ZSgKIAkJcmV0dXJuIGRhbF9pMmNhdXhfZGNlMTAwX2NyZWF0ZShjdHgpOwogCWNhc2Ug RENFX1ZFUlNJT05fMTJfMDoKIAkJcmV0dXJuIGRhbF9pMmNhdXhfZGNlMTIwX2NyZWF0ZShjdHgp OworCSNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFfMCkKKwljYXNlIERDTl9WRVJT SU9OXzFfMDoKKwkJcmV0dXJuIGRhbF9pMmNhdXhfZGNuMTBfY3JlYXRlKGN0eCk7CisJI2VuZGlm CiAJZGVmYXVsdDoKIAkJQlJFQUtfVE9fREVCVUdHRVIoKTsKIAkJcmV0dXJuIE5VTEw7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2NvcmVfZGMuaCBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY29yZV9kYy5oCmluZGV4IGY5MzYzZjYu LjM5MmNmZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMv Y29yZV9kYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY29yZV9k Yy5oCkBAIC0zMCw2ICszMCwxMSBAQCBzdHJ1Y3QgY29yZV9kYyB7CiAJLyogSW5wdXRzIGludG8g QlcgYW5kIFdNIGNhbGN1bGF0aW9ucy4gKi8KIAlzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgYndfZGNl aXA7CiAJc3RydWN0IGJ3X2NhbGNzX3ZiaW9zIGJ3X3ZiaW9zOworI2lmZGVmIENPTkZJR19EUk1f QU1EX0RDX0RDTjFfMAorCXN0cnVjdCBkY25fc29jX2JvdW5kaW5nX2JveCBkY25fc29jOworCXN0 cnVjdCBkY25faXBfcGFyYW1zIGRjbl9pcDsKKwlzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiBkbWw7 CisjZW5kaWYKIAogCS8qIEhXIGZ1bmN0aW9ucyAqLwogCXN0cnVjdCBod19zZXF1ZW5jZXJfZnVu Y3MgaHdzczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMv Y29yZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9jb3JlX3R5 cGVzLmgKaW5kZXggOWU1ZTBiYS4uYzEyNzNkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgKQEAgLTI4LDggKzI4LDExIEBACiAKICNpbmNs dWRlICJkYy5oIgogI2luY2x1ZGUgImRjZV9jYWxjcy5oIgorI2luY2x1ZGUgImRjbl9jYWxjcy5o IgogI2luY2x1ZGUgImRkY19zZXJ2aWNlX3R5cGVzLmgiCiAjaW5jbHVkZSAiZGNfYmlvc190eXBl cy5oIgorI2luY2x1ZGUgIm1lbV9pbnB1dC5oIgorI2luY2x1ZGUgIm1wYy5oIgogCiBzdHJ1Y3Qg Y29yZV9zdHJlYW07CiAKQEAgLTI1NCw2ICsyNTcsNyBAQCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCB7 CiAKIAlzdHJ1Y3QgYWJtICphYm07CiAJc3RydWN0IGRtY3UgKmRtY3U7CisJc3RydWN0IG1wYyAq bXBjOwogCiAJY29uc3Qgc3RydWN0IHJlc291cmNlX2Z1bmNzICpmdW5jczsKIAljb25zdCBzdHJ1 Y3QgcmVzb3VyY2VfY2FwcyAqcmVzX2NhcDsKQEAgLTI4NywxMCArMjkxLDIwIEBAIHN0cnVjdCBw aXBlX2N0eCB7CiAKIAlzdHJ1Y3QgcGlwZV9jdHggKnRvcF9waXBlOwogCXN0cnVjdCBwaXBlX2N0 eCAqYm90dG9tX3BpcGU7CisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMV8wCisJdWludDhf dCBtcGNfaWR4OworCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0IGRsZ19yZWdz OworCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0IHR0dV9yZWdzOworCXN0cnVj dCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgcnFfcmVnczsKKwlzdHJ1Y3QgX3Zjc19kcGlf ZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0IHBpcGVfZGxnX3BhcmFtOworI2VuZGlmCiB9Owog CiBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCB7CiAJc3RydWN0IHBpcGVfY3R4IHBpcGVfY3R4W01B WF9QSVBFU107CisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMV8wCisJc3RydWN0IG1wY190 cmVlX2NmZyBtcGNfdHJlZVtNQVhfUElQRVNdOworI2VuZGlmCiAJYm9vbCBpc19zdHJlYW1fZW5j X2FjcXVpcmVkW01BWF9QSVBFUyAqIDJdOwogCWJvb2wgaXNfYXVkaW9fYWNxdWlyZWRbTUFYX1BJ UEVTXTsKIAl1aW50OF90IGNsb2NrX3NvdXJjZV9yZWZfY291bnRbTUFYX0NMT0NLX1NPVVJDRVNd OwpAQCAtMzA5LDYgKzMyMywxOCBAQCBzdHJ1Y3QgdmFsaWRhdGVfY29udGV4dCB7CiAJLyogTm90 ZTogdGhlc2UgYXJlIGJpZyBzdHJ1Y3R1cmVzLCBkbyAqbm90KiBwdXQgb24gc3RhY2shICovCiAJ c3RydWN0IGRtX3BwX2Rpc3BsYXlfY29uZmlndXJhdGlvbiBwcF9kaXNwbGF5X2NmZzsKIAlpbnQg ZGlzcGNsa19raHo7CisjaWZkZWYgQ09ORklHX0RSTV9BTURfRENfRENOMV8wCisJaW50IGRwcGNs a19raHo7CisJYm9vbCBkcHBjbGtfZGl2OworCWludCBkY2ZjbGtfa2h6OworCWludCBkY2ZjbGtf ZGVlcF9zbGVlcF9raHo7CisJaW50IHNvY2Nsa19raHo7CisJaW50IGZjbGtfa2h6OworCWludCBk cmFtX2NjbV91czsKKwlpbnQgbWluX2FjdGl2ZV9kcmFtX2NjbV91czsKKwlzdHJ1Y3QgZGNuX3dh dGVybWFya19zZXQgd2F0ZXJtYXJrczsKKwlzdHJ1Y3QgZGNuX2J3X2ludGVybmFsX3ZhcnMgZGNu X2J3X3ZhcnM7CisjZW5kaWYKIH07CiAKICNlbmRpZiAvKiBfQ09SRV9UWVBFU19IXyAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9kaXNwbGF5X2Ns b2NrLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2Rpc3BsYXlfY2xv Y2suaAppbmRleCA5N2YyNmI1Li4yNDBhYjExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2Rpc3BsYXlfY2xvY2suaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L2Rpc3BsYXlfY2xvY2suaApAQCAtMzcsNiArMzcsMTMg QEAgc3RydWN0IGNsb2Nrc192YWx1ZSB7CiAJYm9vbCBkaXNwY2xrX25vdGlmeV9wcGxpYl9kb25l OwogCWJvb2wgcGl4ZWxjbGtfbm90aWZ5X3BwbGliX2RvbmU7CiAJYm9vbCBwaHljbGtfbm90aWd5 X3BwbGliX2RvbmU7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJaW50 IGRjZmNsb2NrX2luX2toejsKKwlpbnQgZHBwY2xrX2luX2toejsKKwlpbnQgbWNsa19pbl9raHo7 CisJaW50IHBoeWNsa19pbl9raHo7CisJaW50IGNvbW1vbl92ZGRfbGV2ZWw7CisjZW5kaWYKIH07 CiAKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9p cHAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvaXBwLmgKaW5kZXgg MmQ0NzJkOC4uMGY5NTJlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2luYy9ody9pcHAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5j L2h3L2lwcC5oCkBAIC0xMjIsNiArMTIyLDcgQEAgc3RydWN0IGlwcF9mdW5jcyB7CiAJCXN0cnVj dCBpbnB1dF9waXhlbF9wcm9jZXNzb3IgKmlwcCwKIAkJY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMg KnBhcmFtcyk7CiAKKwl2b2lkICgqaXBwX2Rlc3Ryb3kpKHN0cnVjdCBpbnB1dF9waXhlbF9wcm9j ZXNzb3IgKippcHApOwogfTsKIAogI2VuZGlmIC8qIF9fREFMX0lQUF9IX18gKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvbWVtX2lucHV0LmggYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L21lbV9pbnB1dC5oCmluZGV4IDE3 OWY1YWQuLjA4ODBjZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9k Yy9pbmMvaHcvbWVtX2lucHV0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2luYy9ody9tZW1faW5wdXQuaApAQCAtMzEsNiArMzEsMzAgQEAKIAogI2luY2x1ZGUgImRjZS9k Y2VfbWVtX2lucHV0LmgiIC8qIHRlbXBvcmFyeSAqLwogCisjaWYgZGVmaW5lZChDT05GSUdfRFJN X0FNRF9EQ19EQ04xXzApCisjaW5jbHVkZSAiZG1sL2Rpc3BsYXlfbW9kZV9zdHJ1Y3RzLmgiCisK K3N0cnVjdCBjc3RhdGVfcHN0YXRlX3dhdGVybWFya3Nfc3QgeworCXVpbnQzMl90IGNzdGF0ZV9l eGl0X25zOworCXVpbnQzMl90IGNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnM7CisJdWludDMyX3Qg cHN0YXRlX2NoYW5nZV9uczsKK307CisKK3N0cnVjdCBkY25fd2F0ZXJtYXJrcyB7CisJdWludDMy X3QgcHRlX21ldGFfdXJnZW50X25zOworCXVpbnQzMl90IHVyZ2VudF9uczsKKwlzdHJ1Y3QgY3N0 YXRlX3BzdGF0ZV93YXRlcm1hcmtzX3N0IGNzdGF0ZV9wc3RhdGU7Cit9OworCitzdHJ1Y3QgZGNu X3dhdGVybWFya19zZXQgeworCXN0cnVjdCBkY25fd2F0ZXJtYXJrcyBhOworCXN0cnVjdCBkY25f d2F0ZXJtYXJrcyBiOworCXN0cnVjdCBkY25fd2F0ZXJtYXJrcyBjOworCXN0cnVjdCBkY25fd2F0 ZXJtYXJrcyBkOworfTsKKworI2VuZGlmCisKIHN0cnVjdCBzdHV0dGVyX21vZGVzIHsKIAlib29s IGVuaGFuY2VkOwogCWJvb2wgcXVhZF9kbWlmX2J1ZmZlcjsKQEAgLTUyLDYgKzc2LDIzIEBAIHN0 cnVjdCBtZW1faW5wdXQgewogfTsKIAogc3RydWN0IG1lbV9pbnB1dF9mdW5jcyB7CisjaWYgZGVm aW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJdm9pZCAoKnByb2dyYW1fd2F0ZXJtYXJr cykoCisJCQlzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQsCisJCQlzdHJ1Y3QgZGNuX3dhdGVy bWFya19zZXQgKndhdGVybWFya3MsCisJCQl1bnNpZ25lZCBpbnQgcmVmY2xrX3BlcmlvZF9ucyk7 CisKKwl2b2lkICgqbWVtX2lucHV0X3NldHVwKSgKKwkJCXN0cnVjdCBtZW1faW5wdXQgKm1lbV9p bnB1dCwKKwkJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfcmVncywK KwkJCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0ICp0dHVfcmVncywKKwkJCXN0 cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MsCisJCQlzdHJ1Y3QgX3Zj c19kcGlfZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0ICpwaXBlX2Rlc3QpOworCisJdm9pZCAo KmRpc2FibGVfcmVxdWVzdCkoc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0KTsKKworI2VuZGlm CisKIAl2b2lkICgqbWVtX2lucHV0X3Byb2dyYW1fZGlzcGxheV9tYXJrcykoCiAJCXN0cnVjdCBt ZW1faW5wdXQgKm1lbV9pbnB1dCwKIAkJc3RydWN0IGJ3X3dhdGVybWFya3MgbmJwLApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMmU4NmViZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgKQEAgLTAsMCArMSwxMTAgQEAKKy8qIENv cHlyaWdodCAyMDEyLTE1IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3 YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAq IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNo ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAq IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo YWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z IG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwg SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC SUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9S IEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIg TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FS RS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2lmbmRlZiBfX0RDX01QQ19IX18K KyNkZWZpbmUgX19EQ19NUENfSF9fCisKKy8qIGRlZmluZSB0aGUgbWF4aW11bSBudW1iZXIgb2Yg cGlwZXMKKyAqIE1BWF9OVU1fUElQUEVTID0gTUFYX1BJUEVTIGRlZmluZWQgaW4gY29yZV90eXBl LmgKKyAqLworZW51bSB7CisJTUFYX05VTV9QSVBQRVMgPSA2Cit9OworCitlbnVtIGJsZW5kX21v ZGUgeworCURJR0lfQllQQVNTID0gMCwJLyogZGlnaXRhbCBieXBhc3MgKi8KKwlUT1BfUEFTU1RI UlUsCQkvKiB0b3AgbGF5ZXIgcGFzcyB0aHJvdWdoICovCisJVE9QX0JMTkQJCS8qIHRvcCBsYXll ciBibGVuZCAqLworfTsKKworLyogVGhpcyBzdHJ1Y3R1cmUgZGVmaW5lIHRoZSBtcGMgdHJlZSBj b25maWd1cmF0aW9uCisgKiBudW1fcGlwZXMgLSBudW1iZXIgb2YgcGlwZXMgb2YgdGhlIHRyZWUK KyAqIG9wcF9pZCAtIGluc3RhbmNlIGlkIG9mIE9QUCB0byBkcml2ZSBNUEMKKyAqIGRwcC0gYXJy YXkgb2YgRFBQIGluZGV4CisgKiBtcGNjIC0gYXJyYXkgb2YgTVBDQyBpbmRleAorICogbW9kZQkt IHRoZSBtb3N0IGJvdHRvbSBsYXllciBNUENDIG1vZGUgY29udHJvbC4KKyAqICBBbGwgb3RoZXIg bGF5ZXJzIG5lZWQgdG8gYmUgcHJvZ3JhbSB0byAzCisgKgorICogVGhlIGNvbm5lY3Rpb24gd2ls bCBiZToKKyAqIG1wY2NbbnVtX3BpcGVzLTFdLT5tcGNjW251bV9waXBlcy0yXS0+Li4uLT5tcGNj WzFdLT5tcGNjWzBdLT5PUFBbb3BwX2lkXQorICogZHBwWzBdLT5tcGNjWzBdCisgKiBkcHBbMV0t Pm1wY2NbMV0KKyAqIC4uLgorICogZHBwW251bV9waXBlcy0xXS0+bXBjY1tudW1fcGlwZXMtMV0K KyAqIG1wY2NbMF0gaXMgdGhlIG1vc3QgdG9wIGxheWVyIG9mIE1QQyB0cmVlLAorICogbXBjY1tu dW1fcGlwZXMtMV0gaXMgdGhlIG1vc3QgYm90dG9tIGxheWVyLgorICovCisKK3N0cnVjdCBtcGNf dHJlZV9jZmcgeworCXVpbnQ4X3QgbnVtX3BpcGVzOworCXVpbnQ4X3Qgb3BwX2lkOworCS8qIGRw cCBwaXBlcyBmb3IgYmxlbmQgKi8KKwl1aW50OF90IGRwcFtNQVhfTlVNX1BJUFBFU107CisJLyog bXBjYyBpbnNhdG5jZXMgZm9yIGJsZW5kICovCisJdWludDhfdCBtcGNjW01BWF9OVU1fUElQUEVT XTsKKwllbnVtIGJsZW5kX21vZGUgbW9kZTsKK307CisKK3N0cnVjdCBtcGNjX2JsbmRfY2ZnIHsK KwkvKiAwLSBwZXJwaXhlbCBhbHBoYSwgMS0gcGVycGl4ZWwgYWxwaGEgY29tYmluZWQgd2l0aCBn bG9iYWwgZ2FpbiwKKwkgKiAyLSBnbG9iYWwgYWxwaGEKKwkgKi8KKwl1aW50OF90IGFscGhhX21v ZGU7CisJdWludDhfdCBnbG9iYWxfZ2FpbjsKKwl1aW50OF90IGdsb2JhbF9hbHBoYTsKKwlib29s IG92ZXJsYXBfb25seTsKKwlib29sIHByZV9tdWx0aXBsaWVkX2FscGhhOworfTsKKworc3RydWN0 IG1wY2Nfc21fY2ZnIHsKKwlib29sIGVuYWJsZTsKKwkvKiAwLXNpbmdsZSBwbGFuZSwgMi1yb3cg c3Vic2FtcGxpbmcsIDQtY29sdW1uIHN1YnNhbXBsaW5nLAorCSAqIDYtY2hlY2tib2FyZCBzdWJz YW1wbGluZworCSAqLworCXVpbnQ4X3Qgc21fbW9kZTsKKwlib29sIGZyYW1lX2FsdDsgLyogMC0g ZGlzYWJsZSwgMS0gZW5hYmxlICovCisJYm9vbCBmaWVsZF9hbHQ7IC8qIDAtIGRpc2FibGUsIDEt IGVuYWJsZSAqLworCS8qIDAtbm8gZm9yY2UsIDItZm9yY2UgZnJhbWUgcG9sYXJpdHkgZnJvbSB0 b3AsCisJICogMy1mb3JjZSBmcmFtZSBwb2xhcml0eSBmcm9tIGJvdHRvbQorCSAqLworCXVpbnQ4 X3QgZm9yY2VfbmV4dF9mcmFtZV9wb3JsYXJpdHk7CisJLyogMC1ubyBmb3JjZSwgMi1mb3JjZSBm aWVsZCBwb2xhcml0eSBmcm9tIHRvcCwKKwkgKiAzLWZvcmNlIGZpZWxkIHBvbGFyaXR5IGZyb20g Ym90dG9tCisJICovCisJdWludDhfdCBmb3JjZV9uZXh0X2ZpZWxkX3BvbGFyaXR5OworfTsKKwor c3RydWN0IG1wY2NfdnVwZGF0ZV9sb2NrX2NmZyB7CisJYm9vbCBjZmdfbG9jazsKKwlib29sIGFk cl9sb2NrOworCWJvb2wgYWRyX2NmZ19sb2NrOworCWJvb2wgY3VyMF9sb2NrOworCWJvb2wgY3Vy MV9sb2NrOworfTsKKworc3RydWN0IG1wYyB7CisJc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKK307 CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lu Yy9ody9vcHAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgK aW5kZXggOTJjOTljMy4uNjRkNDMyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2luYy9ody9vcHAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvaW5jL2h3L29wcC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIF9fREFMX09QUF9IX18K IAogI2luY2x1ZGUgImh3X3NoYXJlZC5oIgorI2luY2x1ZGUgImRjX2h3X3R5cGVzLmgiCiAjaW5j bHVkZSAidHJhbnNmb3JtLmgiCiAKIHN0cnVjdCBmaXhlZDMxXzMyOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody90aW1pbmdfZ2VuZXJhdG9yLmggYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3L3RpbWluZ19nZW5lcmF0b3IuaApp bmRleCAwMGNkYWFhZS4uOWYxMzBhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2luYy9ody90aW1pbmdfZ2VuZXJhdG9yLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2luYy9ody90aW1pbmdfZ2VuZXJhdG9yLmgKQEAgLTkxLDEwICs5MSwy MiBAQCBlbnVtIGNydGNfc3RhdGUgewogCUNSVENfU1RBVEVfVkJMQU5LID0gMCwKIAlDUlRDX1NU QVRFX1ZBQ1RJVkUKIH07CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCitz dHJ1Y3QgX2RsZ19vdGdfcGFyYW0geworCWludCB2c3RhcnR1cF9zdGFydDsKKwlpbnQgdnVwZGF0 ZV9vZmZzZXQ7CisJaW50IHZ1cGRhdGVfd2lkdGg7CisJaW50IHZyZWFkeV9vZmZzZXQ7CisJZW51 bSBzaWduYWxfdHlwZSBzaWduYWw7Cit9OworI2VuZGlmCiBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRv ciB7CiAJY29uc3Qgc3RydWN0IHRpbWluZ19nZW5lcmF0b3JfZnVuY3MgKmZ1bmNzOwogCXN0cnVj dCBkY19iaW9zICpicDsKIAlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OworI2lmIGRlZmluZWQoQ09O RklHX0RSTV9BTURfRENfRENOMV8wKQorCXN0cnVjdCBfZGxnX290Z19wYXJhbSBkbGdfb3RnX3Bh cmFtOworI2VuZGlmCiAJaW50IGluc3Q7CiB9OwogCkBAIC0xNTUsNiArMTY3LDEwIEBAIHN0cnVj dCB0aW1pbmdfZ2VuZXJhdG9yX2Z1bmNzIHsKIAogCWJvb2wgKCphcm1fdmVydF9pbnRyKShzdHJ1 Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsIHVpbnQ4X3Qgd2lkdGgpOwogCisjaWYgZGVmaW5lZChD T05GSUdfRFJNX0FNRF9EQ19EQ04xXzApCisJdm9pZCAoKnByb2dyYW1fZ2xvYmFsX3N5bmMpKHN0 cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CisJdm9pZCAoKmVuYWJsZV9vcHRjX2Nsb2NrKShz dHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsIGJvb2wgZW5hYmxlKTsKKyNlbmRpZgogfTsKIAog I2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaXJxL01h a2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lycS9NYWtlZmlsZQppbmRl eCAyMjJmMzZlLi5jN2U5M2Y3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvaXJxL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9p cnEvTWFrZWZpbGUKQEAgLTM2LDMgKzM2LDEzIEBAIEFNRF9EQUxfSVJRX0RDRTEyID0gJChhZGRw cmVmaXggJChBTUREQUxQQVRIKS9kYy9pcnEvZGNlMTIwLywkKElSUV9EQ0UxMikpCiAKIEFNRF9E SVNQTEFZX0ZJTEVTICs9ICQoQU1EX0RBTF9JUlFfRENFMTIpCiAKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMgRENOIDF4CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpZmRlZiBDT05GSUdfRFJN X0FNRF9EQ19EQ04xXzAKK0lSUV9EQ04xID0gaXJxX3NlcnZpY2VfZGNuMTAubworCitBTURfREFM X0lSUV9EQ04xID0gJChhZGRwcmVmaXggJChBTUREQUxQQVRIKS9kYy9pcnEvZGNuMTAvLCQoSVJR X0RDTjEpKQorCitBTURfRElTUExBWV9GSUxFUyArPSAkKEFNRF9EQUxfSVJRX0RDTjEpCitlbmRp ZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lycS9pcnFfc2Vy dmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2lycS9pcnFfc2VydmljZS5j CmluZGV4IDUyNTVjMTQuLjBhMWZhZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9pcnEvaXJxX3NlcnZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvaXJxL2lycV9zZXJ2aWNlLmMKQEAgLTM1LDYgKzM1LDExIEBACiAKICNpbmNsdWRl ICJkY2UxMjAvaXJxX3NlcnZpY2VfZGNlMTIwLmgiCiAKKworI2lmIGRlZmluZWQoQ09ORklHX0RS TV9BTURfRENfRENOMV8wKQorI2luY2x1ZGUgImRjbjEwL2lycV9zZXJ2aWNlX2RjbjEwLmgiCisj ZW5kaWYKKwogI2luY2x1ZGUgInJlZ19oZWxwZXIuaCIKICNpbmNsdWRlICJpcnFfc2VydmljZS5o IgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9kYWxf YXNpY19pZC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZGFsX2FzaWNf aWQuaAppbmRleCA2ZGFiMDU4Li4zZDJlZDVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvaW5jbHVkZS9kYWxfYXNpY19pZC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9pbmNsdWRlL2RhbF9hc2ljX2lkLmgKQEAgLTEwOSw2ICsxMDksMTkgQEAKICNk ZWZpbmUgQVNJQ19SRVZfSVNfU1RPTkVZKHJldikgXAogCSgocmV2ID49IFNUT05FWV9BMCkgJiYg KHJldiA8IENaX1VOS05PV04pKQogCisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04x XzApCisvKiBEQ04xXzAgKi8KKyNkZWZpbmUgSU5URVJOQUxfUkVWX1JBVkVOX0EwICAgICAgICAg ICAgIDB4MDAgICAgLyogRmlyc3Qgc3BpbiBvZiBSYXZlbiAqLworI2RlZmluZSBSQVZFTl9BMCAw eDAxCisjZGVmaW5lIFJBVkVOX1VOS05PV04gMHhGRgorCisjZGVmaW5lIEFTSUNfUkVWX0lTX1JB VkVOKGVDaGlwUmV2KSAoKGVDaGlwUmV2ID49IFJBVkVOX0EwKSAmJiBlQ2hpcFJldiA8IFJBVkVO X1VOS05PV04pCisjZW5kaWYKKworI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfRENOMV8w KQorI2RlZmluZSBGQU1JTFlfUlYgMTQyIC8qIERDTiAxKi8KKyNlbmRpZgorCiAvKgogICogQVNJ QyBjaGlwIElECiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9p bmNsdWRlL2RhbF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUv ZGFsX3R5cGVzLmgKaW5kZXggMGNlZmRlMS4uNTBhMmEzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgKQEAgLTM5LDcgKzM5LDEwIEBAIGVu dW0gZGNlX3ZlcnNpb24gewogCURDRV9WRVJTSU9OXzExXzAsCiAJRENFX1ZFUlNJT05fMTFfMiwK IAlEQ0VfVkVSU0lPTl8xMl8wLAotCURDRV9WRVJTSU9OX01BWCwKKyNpZiBkZWZpbmVkKENPTkZJ R19EUk1fQU1EX0RDX0RDTjFfMCkKKwlEQ05fVkVSU0lPTl8xXzAsCisjZW5kaWYKKwlEQ05fVkVS U0lPTl9NQVgKIH07CiAKICNlbmRpZiAvKiBfX0RBTF9UWVBFU19IX18gKi8KLS0gCjIuNS41Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1h aWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK