From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH 29/45] drm/amd/display: Use 100 Hz precision for pipe pixel clocks Date: Tue, 11 Dec 2018 17:57:35 -0500 Message-ID: <1544569071-7114-30-git-send-email-sunpeng.li@amd.com> References: <1544569071-7114-1-git-send-email-sunpeng.li@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1544569071-7114-1-git-send-email-sunpeng.li-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: sunpeng.li-5C7GfCeVMHo@public.gmane.org, Ken Chalmers RnJvbTogS2VuIENoYWxtZXJzIDxrZW4uY2hhbG1lcnNAYW1kLmNvbT4KCltXaHldClVzZXJzIHdv dWxkIGxpa2UgbW9yZSBhY2N1cmF0ZSBwaXhlbCBjbG9ja3MsIGVzcGVjaWFsbHkgZm9yIGZyYWN0 aW9uYWwKIlRWIiBmcmFtZSByYXRlcyBsaWtlIDU5Ljk0IEh6LgoKW0hvd10KU3RvcmUgYW5kIGNv bW11bmljYXRlIHBpeGVsIGNsb2NrcyB3aXRoIDEwMCBIeiBhY2N1cmFjeSBmcm9tCmRjX2NydGNf dGltaW5nIHRocm91Z2ggdG8gQklPUyBjb21tYW5kIHRhYmxlIHNldHBpeGVsY2xvY2sgY2FsbC4K ClNpZ25lZC1vZmYtYnk6IEtlbiBDaGFsbWVycyA8a2VuLmNoYWxtZXJzQGFtZC5jb20+ClJldmll d2VkLWJ5OiBDaGFybGVuZSBMaXUgPENoYXJsZW5lLkxpdUBhbWQuY29tPgpBY2tlZC1ieTogTGVv IExpIDxzdW5wZW5nLmxpQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2FtZGdwdV9kbS9hbWRncHVfZG0uYyAgfCAgIDggKy0KIC4uLi9kcm0vYW1kL2Rpc3BsYXkvYW1k Z3B1X2RtL2FtZGdwdV9kbV9oZWxwZXJzLmMgIHwgICAyICstCiAuLi4vZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGUuYyAgICB8ICAxOSArLQogLi4uL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvYmlvcy9jb21tYW5kX3RhYmxlMi5jICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9jYWxjcy9kY2VfY2FsY3MuYyAgIHwgIDEwICstCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2FsY3MvZGNuX2NhbGNzLmMgICB8ICAxMCArLQogZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMuYyAgICAgICAgICAgfCAgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmsuYyAgICAgIHwgIDIy ICstLQogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGlua19kcC5jICAg fCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfaHdz cy5jIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19yZXNv dXJjZS5jICB8ICAxMCArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNf c3RyZWFtLmMgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY19o d190eXBlcy5oICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMv ZGNlL2RjZV9jbGtfbWdyLmMgICB8ICAxMiArLQogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMv ZGNlL2RjZV9jbG9ja19zb3VyY2UuYyAgfCAxOTYgKysrKysrKysrKy0tLS0tLS0tLS0tCiAuLi4v Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2xpbmtfZW5jb2Rlci5jICB8ICAgNiArLQog Li4uL2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX3N0cmVhbV9lbmNvZGVyLmMgICAgfCAgIDQg Ky0KIC4uLi9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX2h3X3NlcXVlbmNlci5jICAgIHwg IDIwICstLQogLi4uL2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX3Jlc291cmNlLmMg ICAgfCAgMTAgKy0KIC4uLi9hbWQvZGlzcGxheS9kYy9kY2U4MC9kY2U4MF90aW1pbmdfZ2VuZXJh dG9yLmMgIHwgICA4ICstCiAuLi4vZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3Nl cXVlbmNlci5jICB8ICAgMiArLQogLi4uL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVu Y2VyX2RlYnVnLmMgICAgfCAgIDIgKy0KIC4uLi9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNu MTBfbGlua19lbmNvZGVyLmMgIHwgIDE4ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvZGNuMTAvZGNuMTBfb3B0Yy5jICB8ICAgMiArLQogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvZGNuMTAvZGNuMTBfcmVzb3VyY2UuYyAgfCAgIDYgKy0KIC4uLi9hbWQvZGlzcGxheS9kYy9k Y24xMC9kY24xMF9zdHJlYW1fZW5jb2Rlci5jICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvaW5jL2Nsb2NrX3NvdXJjZS5oICB8ICAgOCArLQogLi4uL2RybS9hbWQv ZGlzcGxheS9pbmNsdWRlL2Jpb3NfcGFyc2VyX3R5cGVzLmggICAgfCAgIDQgKy0KIC4uLi9kcm0v YW1kL2Rpc3BsYXkvbW9kdWxlcy9mcmVlc3luYy9mcmVlc3luYy5jICAgIHwgIDEyICstCiAyOSBm aWxlcyBjaGFuZ2VkLCAyMDYgaW5zZXJ0aW9ucygrKSwgMjA5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCmluZGV4 IGMwYzY2NGUuLjIzYmI0OWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2FtZGdwdV9kbS9hbWRncHVfZG0uYwpAQCAtMjU1NCw3ICsyNTU0LDcgQEAgZ2V0X291dHB1dF9j b2xvcl9zcGFjZShjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmRjX2NydGNfdGltaW5nKQog CQkgKiBhY2NvcmRpbmcgdG8gSERNSSBzcGVjLCB3ZSB1c2UgWUNiQ3I3MDkgYW5kIFlDYkNyNjAx CiAJCSAqIHJlc3BlY3RpdmVseQogCQkgKi8KLQkJaWYgKGRjX2NydGNfdGltaW5nLT5waXhfY2xr X2toeiA+IDI3MDMwKSB7CisJCWlmIChkY19jcnRjX3RpbWluZy0+cGl4X2Nsa18xMDBoeiA+IDI3 MDMwMCkgewogCQkJaWYgKGRjX2NydGNfdGltaW5nLT5mbGFncy5ZX09OTFkpCiAJCQkJY29sb3Jf c3BhY2UgPQogCQkJCQlDT0xPUl9TUEFDRV9ZQ0JDUjcwOV9MSU1JVEVEOwpAQCAtMjU5Nyw3ICsy NTk3LDcgQEAgc3RhdGljIHZvaWQgYWRqdXN0X2NvbG91cl9kZXB0aF9mcm9tX2Rpc3BsYXlfaW5m byhzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZ18KIAlpZiAodGltaW5nX291dC0+ZGlzcGxh eV9jb2xvcl9kZXB0aCA8PSBDT0xPUl9ERVBUSF84ODgpCiAJCXJldHVybjsKIAlkbyB7Ci0JCW5v cm1hbGl6ZWRfY2xrID0gdGltaW5nX291dC0+cGl4X2Nsa19raHo7CisJCW5vcm1hbGl6ZWRfY2xr ID0gdGltaW5nX291dC0+cGl4X2Nsa18xMDBoeiAvIDEwOwogCQkvKiBZQ2JDciA0OjI6MCByZXF1 aXJlcyBhZGRpdGlvbmFsIGFkanVzdG1lbnQgb2YgMS8yICovCiAJCWlmICh0aW1pbmdfb3V0LT5w aXhlbF9lbmNvZGluZyA9PSBQSVhFTF9FTkNPRElOR19ZQ0JDUjQyMCkKIAkJCW5vcm1hbGl6ZWRf Y2xrIC89IDI7CkBAIC0yNjc4LDcgKzI2NzgsNyBAQCBmaWxsX3N0cmVhbV9wcm9wZXJ0aWVzX2Zy b21fZHJtX2Rpc3BsYXlfbW9kZShzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAJCW1v ZGVfaW4tPmNydGNfdnN5bmNfc3RhcnQgLSBtb2RlX2luLT5jcnRjX3ZkaXNwbGF5OwogCXRpbWlu Z19vdXQtPnZfc3luY193aWR0aCA9CiAJCW1vZGVfaW4tPmNydGNfdnN5bmNfZW5kIC0gbW9kZV9p bi0+Y3J0Y192c3luY19zdGFydDsKLQl0aW1pbmdfb3V0LT5waXhfY2xrX2toeiA9IG1vZGVfaW4t PmNydGNfY2xvY2s7CisJdGltaW5nX291dC0+cGl4X2Nsa18xMDBoeiA9IG1vZGVfaW4tPmNydGNf Y2xvY2sgKiAxMDsKIAl0aW1pbmdfb3V0LT5hc3BlY3RfcmF0aW8gPSBnZXRfYXNwZWN0X3JhdGlv KG1vZGVfaW4pOwogCiAJc3RyZWFtLT5vdXRwdXRfY29sb3Jfc3BhY2UgPSBnZXRfb3V0cHV0X2Nv bG9yX3NwYWNlKHRpbWluZ19vdXQpOwpAQCAtMjgwNiw3ICsyODA2LDcgQEAgc3RhdGljIHZvaWQg c2V0X21hc3Rlcl9zdHJlYW0oc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtX3NldFtdLAog CQlpZiAoc3RyZWFtX3NldFtqXSAmJiBzdHJlYW1fc2V0W2pdLT50cmlnZ2VyZWRfY3J0Y19yZXNl dC5lbmFibGVkKSB7CiAJCQlpbnQgcmVmcmVzaF9yYXRlID0gMDsKIAotCQkJcmVmcmVzaF9yYXRl ID0gKHN0cmVhbV9zZXRbal0tPnRpbWluZy5waXhfY2xrX2toeioxMDAwKS8KKwkJCXJlZnJlc2hf cmF0ZSA9IChzdHJlYW1fc2V0W2pdLT50aW1pbmcucGl4X2Nsa18xMDBoeioxMDApLwogCQkJCShz dHJlYW1fc2V0W2pdLT50aW1pbmcuaF90b3RhbCpzdHJlYW1fc2V0W2pdLT50aW1pbmcudl90b3Rh bCk7CiAJCQlpZiAocmVmcmVzaF9yYXRlID4gaGlnaGVzdF9yZnIpIHsKIAkJCQloaWdoZXN0X3Jm ciA9IHJlZnJlc2hfcmF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9hbWRncHVfZG0vYW1kZ3B1X2RtX2hlbHBlcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2hlbHBlcnMuYwppbmRleCBiMGJjODMxLi5lNmFiMDE4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdw dV9kbV9oZWxwZXJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9k bS9hbWRncHVfZG1faGVscGVycy5jCkBAIC0yMDUsNyArMjA1LDcgQEAgYm9vbCBkbV9oZWxwZXJz X2RwX21zdF93cml0ZV9wYXlsb2FkX2FsbG9jYXRpb25fdGFibGUoCiAJbXN0X3BvcnQgPSBhY29u bmVjdG9yLT5wb3J0OwogCiAJaWYgKGVuYWJsZSkgewotCQljbG9jayA9IHN0cmVhbS0+dGltaW5n LnBpeF9jbGtfa2h6OworCQljbG9jayA9IHN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHogLyAx MDsKIAogCQlzd2l0Y2ggKHN0cmVhbS0+dGltaW5nLmRpc3BsYXlfY29sb3JfZGVwdGgpIHsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90 YWJsZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJs ZS5jCmluZGV4IDJiZDdjZDkuLjY3YzExOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvYmlvcy9jb21tYW5kX3RhYmxlLmMKQEAgLTk2NCw5ICs5NjQsOSBAQCBz dGF0aWMgZW51bSBicF9yZXN1bHQgc2V0X3BpeGVsX2Nsb2NrX3YzKAogCWFsbG9jYXRpb24uc1BD TEtJbnB1dC51Y1Bvc3REaXYgPQogCQkJKHVpbnQ4X3QpYnBfcGFyYW1zLT5waXhlbF9jbG9ja19w b3N0X2RpdmlkZXI7CiAKLQkvKiBXZSBuZWVkIHRvIGNvbnZlcnQgZnJvbSBLSHogdW5pdHMgaW50 byAxMEtIeiB1bml0cyAqLworCS8qIFdlIG5lZWQgdG8gY29udmVydCBmcm9tIDEwMEh6IHVuaXRz IGludG8gMTBLSHogdW5pdHMgKi8KIAlhbGxvY2F0aW9uLnNQQ0xLSW5wdXQudXNQaXhlbENsb2Nr ID0KLQkJCWNwdV90b19sZTE2KCh1aW50MTZfdCkoYnBfcGFyYW1zLT50YXJnZXRfcGl4ZWxfY2xv Y2sgLyAxMCkpOworCQkJY3B1X3RvX2xlMTYoKHVpbnQxNl90KShicF9wYXJhbXMtPnRhcmdldF9w aXhlbF9jbG9ja18xMDBoeiAvIDEwMCkpOwogCiAJcGFyYW1zID0gKFBJWEVMX0NMT0NLX1BBUkFN RVRFUlNfVjMgKikmYWxsb2NhdGlvbi5zUENMS0lucHV0OwogCXBhcmFtcy0+dWNUcmFuc21pdHRl cklkID0KQEAgLTEwNDIsOSArMTA0Miw5IEBAIHN0YXRpYyBlbnVtIGJwX3Jlc3VsdCBzZXRfcGl4 ZWxfY2xvY2tfdjUoCiAJCQkJKHVpbnQ4X3QpYnAtPmNtZF9oZWxwZXItPmVuY29kZXJfbW9kZV9i cF90b19hdG9tKAogCQkJCQkJYnBfcGFyYW1zLT5zaWduYWxfdHlwZSwgZmFsc2UpOwogCi0JCS8q IFdlIG5lZWQgdG8gY29udmVydCBmcm9tIEtIeiB1bml0cyBpbnRvIDEwS0h6IHVuaXRzICovCisJ CS8qIFdlIG5lZWQgdG8gY29udmVydCBmcm9tIDEwMEh6IHVuaXRzIGludG8gMTBLSHogdW5pdHMg Ki8KIAkJY2xrLnNQQ0xLSW5wdXQudXNQaXhlbENsb2NrID0KLQkJCQljcHVfdG9fbGUxNigodWlu dDE2X3QpKGJwX3BhcmFtcy0+dGFyZ2V0X3BpeGVsX2Nsb2NrIC8gMTApKTsKKwkJCQljcHVfdG9f bGUxNigodWludDE2X3QpKGJwX3BhcmFtcy0+dGFyZ2V0X3BpeGVsX2Nsb2NrXzEwMGh6IC8gMTAw KSk7CiAKIAkJaWYgKGJwX3BhcmFtcy0+ZmxhZ3MuRk9SQ0VfUFJPR1JBTU1JTkdfT0ZfUExMKQog CQkJY2xrLnNQQ0xLSW5wdXQudWNNaXNjSW5mbyB8PQpAQCAtMTExOCw5ICsxMTE4LDkgQEAgc3Rh dGljIGVudW0gYnBfcmVzdWx0IHNldF9waXhlbF9jbG9ja192NigKIAkJCQkodWludDhfdCkgYnAt PmNtZF9oZWxwZXItPmVuY29kZXJfbW9kZV9icF90b19hdG9tKAogCQkJCQkJYnBfcGFyYW1zLT5z aWduYWxfdHlwZSwgZmFsc2UpOwogCi0JCS8qIFdlIG5lZWQgdG8gY29udmVydCBmcm9tIEtIeiB1 bml0cyBpbnRvIDEwS0h6IHVuaXRzICovCisJCS8qIFdlIG5lZWQgdG8gY29udmVydCBmcm9tIDEw MCBIeiB1bml0cyBpbnRvIDEwS0h6IHVuaXRzICovCiAJCWNsay5zUENMS0lucHV0LnVsQ3J0Y1Bj bGtGcmVxLnVsUGl4ZWxDbG9jayA9Ci0JCQkJY3B1X3RvX2xlMzIoYnBfcGFyYW1zLT50YXJnZXRf cGl4ZWxfY2xvY2sgLyAxMCk7CisJCQkJY3B1X3RvX2xlMzIoYnBfcGFyYW1zLT50YXJnZXRfcGl4 ZWxfY2xvY2tfMTAwaHogLyAxMDApOwogCiAJCWlmIChicF9wYXJhbXMtPmZsYWdzLkZPUkNFX1BS T0dSQU1NSU5HX09GX1BMTCkgewogCQkJY2xrLnNQQ0xLSW5wdXQudWNNaXNjSW5mbyB8PQpAQCAt MTE4Miw4ICsxMTgyLDcgQEAgc3RhdGljIGVudW0gYnBfcmVzdWx0IHNldF9waXhlbF9jbG9ja192 NygKIAkJY2xrLnVjVHJhbnNtaXR0ZXJJRCA9IGJwLT5jbWRfaGVscGVyLT5lbmNvZGVyX2lkX3Rv X2F0b20oZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRfZW5jb2Rlcl9pZChicF9wYXJhbXMtPmVu Y29kZXJfb2JqZWN0X2lkKSk7CiAJCWNsay51Y0VuY29kZXJNb2RlID0gKHVpbnQ4X3QpIGJwLT5j bWRfaGVscGVyLT5lbmNvZGVyX21vZGVfYnBfdG9fYXRvbShicF9wYXJhbXMtPnNpZ25hbF90eXBl LCBmYWxzZSk7CiAKLQkJLyogV2UgbmVlZCB0byBjb252ZXJ0IGZyb20gS0h6IHVuaXRzIGludG8g MTBLSHogdW5pdHMgKi8KLQkJY2xrLnVsUGl4ZWxDbG9jayA9IGNwdV90b19sZTMyKGJwX3BhcmFt cy0+dGFyZ2V0X3BpeGVsX2Nsb2NrICogMTApOworCQljbGsudWxQaXhlbENsb2NrID0gY3B1X3Rv X2xlMzIoYnBfcGFyYW1zLT50YXJnZXRfcGl4ZWxfY2xvY2tfMTAwaHopOwogCiAJCWNsay51Y0Rl ZXBDb2xvclJhdGlvID0gKHVpbnQ4X3QpIGJwLT5jbWRfaGVscGVyLT50cmFuc21pdHRlcl9jb2xv cl9kZXB0aF90b19hdG9tKGJwX3BhcmFtcy0+Y29sb3JfZGVwdGgpOwogCkBAIC0yMTY0LDcgKzIx NjMsNyBAQCBzdGF0aWMgZW51bSBicF9yZXN1bHQgcHJvZ3JhbV9jbG9ja192NSgKIAkvKiBXZSBu ZWVkIHRvIGNvbnZlcnQgZnJvbSBLSHogdW5pdHMgaW50byAxMEtIeiB1bml0cyAqLwogCXBhcmFt cy5zUENMS0lucHV0LnVjUHBsbCA9ICh1aW50OF90KSBhdG9tX3BsbF9pZDsKIAlwYXJhbXMuc1BD TEtJbnB1dC51c1BpeGVsQ2xvY2sgPQotCQkJY3B1X3RvX2xlMTYoKHVpbnQxNl90KSAoYnBfcGFy YW1zLT50YXJnZXRfcGl4ZWxfY2xvY2sgLyAxMCkpOworCQkJY3B1X3RvX2xlMTYoKHVpbnQxNl90 KSAoYnBfcGFyYW1zLT50YXJnZXRfcGl4ZWxfY2xvY2tfMTAwaHogLyAxMDApKTsKIAlwYXJhbXMu c1BDTEtJbnB1dC51Y0NSVEMgPSAodWludDhfdCkgQVRPTV9DUlRDX0lOVkFMSUQ7CiAKIAlpZiAo YnBfcGFyYW1zLT5mbGFncy5TRVRfRVhURVJOQUxfUkVGX0RJVl9TUkMpCkBAIC0yMTk2LDcgKzIx OTUsNyBAQCBzdGF0aWMgZW51bSBicF9yZXN1bHQgcHJvZ3JhbV9jbG9ja192NigKIAkvKiBXZSBu ZWVkIHRvIGNvbnZlcnQgZnJvbSBLSHogdW5pdHMgaW50byAxMEtIeiB1bml0cyAqLwogCXBhcmFt cy5zUENMS0lucHV0LnVjUHBsbCA9ICh1aW50OF90KWF0b21fcGxsX2lkOwogCXBhcmFtcy5zUENM S0lucHV0LnVsRGlzcEVuZ0Nsa0ZyZXEgPQotCQkJY3B1X3RvX2xlMzIoYnBfcGFyYW1zLT50YXJn ZXRfcGl4ZWxfY2xvY2sgLyAxMCk7CisJCQljcHVfdG9fbGUzMihicF9wYXJhbXMtPnRhcmdldF9w aXhlbF9jbG9ja18xMDBoeiAvIDEwMCk7CiAKIAlpZiAoYnBfcGFyYW1zLT5mbGFncy5TRVRfRVhU RVJOQUxfUkVGX0RJVl9TUkMpCiAJCXBhcmFtcy5zUENMS0lucHV0LnVjTWlzY0luZm8gfD0gUElY RUxfQ0xPQ0tfTUlTQ19SRUZfRElWX1NSQzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGUyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvYmlvcy9jb21tYW5kX3RhYmxlMi5jCmluZGV4IDJiNWRjNDkuLjdkM2U1Nzcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRf dGFibGUyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFu ZF90YWJsZTIuYwpAQCAtMzAxLDkgKzMwMSw3IEBAIHN0YXRpYyBlbnVtIGJwX3Jlc3VsdCBzZXRf cGl4ZWxfY2xvY2tfdjcoCiAJCQljbWRfaGVscGVyLT5lbmNvZGVyX21vZGVfYnBfdG9fYXRvbSgK IAkJCQlicF9wYXJhbXMtPnNpZ25hbF90eXBlLCBmYWxzZSk7CiAKLQkJLyogV2UgbmVlZCB0byBj b252ZXJ0IGZyb20gS0h6IHVuaXRzIGludG8gMTBLSHogdW5pdHMgKi8KLQkJY2xrLnBpeGNsa18x MDBoeiA9IGNwdV90b19sZTMyKGJwX3BhcmFtcy0+dGFyZ2V0X3BpeGVsX2Nsb2NrICoKLQkJCQkx MCk7CisJCWNsay5waXhjbGtfMTAwaHogPSBjcHVfdG9fbGUzMihicF9wYXJhbXMtPnRhcmdldF9w aXhlbF9jbG9ja18xMDBoeik7CiAKIAkJY2xrLmRlZXBfY29sb3JfcmF0aW8gPQogCQkJKHVpbnQ4 X3QpIGJwLT5jbWRfaGVscGVyLT4KQEAgLTMxMSw3ICszMDksNyBAQCBzdGF0aWMgZW51bSBicF9y ZXN1bHQgc2V0X3BpeGVsX2Nsb2NrX3Y3KAogCQkJCQlicF9wYXJhbXMtPmNvbG9yX2RlcHRoKTsK IAkJRENfTE9HX0JJT1MoIiVzOnByb2dyYW0gZGlzcGxheSBjbG9jayA9ICVkIlwKIAkJCQkiY29s b3JEZXB0aCA9ICVkXG4iLCBfX2Z1bmNfXyxcCi0JCQkJYnBfcGFyYW1zLT50YXJnZXRfcGl4ZWxf Y2xvY2ssIGJwX3BhcmFtcy0+Y29sb3JfZGVwdGgpOworCQkJCWJwX3BhcmFtcy0+dGFyZ2V0X3Bp eGVsX2Nsb2NrXzEwMGh6LCBicF9wYXJhbXMtPmNvbG9yX2RlcHRoKTsKIAogCQlpZiAoYnBfcGFy YW1zLT5mbGFncy5GT1JDRV9QUk9HUkFNTUlOR19PRl9QTEwpCiAJCQljbGsubWlzY2luZm8gfD0g UElYRUxfQ0xPQ0tfVjdfTUlTQ19GT1JDRV9QUk9HX1BQTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2FsY3MvZGNlX2NhbGNzLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvZGMvY2FsY3MvZGNlX2NhbGNzLmMKaW5kZXggOWViZTMwYi4uZjNhYTdi NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NhbGNzL2RjZV9j YWxjcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jYWxjcy9kY2VfY2Fs Y3MuYwpAQCAtMjc5Miw3ICsyNzkyLDcgQEAgc3RhdGljIHZvaWQgcG9wdWxhdGVfaW5pdGlhbF9k YXRhKAogCQlkYXRhLT5scHRfZW5bbnVtX2Rpc3BsYXlzICsgNF0gPSBmYWxzZTsKIAkJZGF0YS0+ aF90b3RhbFtudW1fZGlzcGxheXMgKyA0XSA9IGJ3X2ludF90b19maXhlZChwaXBlW2ldLnN0cmVh bS0+dGltaW5nLmhfdG90YWwpOwogCQlkYXRhLT52X3RvdGFsW251bV9kaXNwbGF5cyArIDRdID0g YndfaW50X3RvX2ZpeGVkKHBpcGVbaV0uc3RyZWFtLT50aW1pbmcudl90b3RhbCk7Ci0JCWRhdGEt PnBpeGVsX3JhdGVbbnVtX2Rpc3BsYXlzICsgNF0gPSBid19mcmNfdG9fZml4ZWQocGlwZVtpXS5z dHJlYW0tPnRpbWluZy5waXhfY2xrX2toeiwgMTAwMCk7CisJCWRhdGEtPnBpeGVsX3JhdGVbbnVt X2Rpc3BsYXlzICsgNF0gPSBid19mcmNfdG9fZml4ZWQocGlwZVtpXS5zdHJlYW0tPnRpbWluZy5w aXhfY2xrXzEwMGh6LCAxMDAwMCk7CiAJCWRhdGEtPnNyY193aWR0aFtudW1fZGlzcGxheXMgKyA0 XSA9IGJ3X2ludF90b19maXhlZChwaXBlW2ldLnBsYW5lX3Jlcy5zY2xfZGF0YS52aWV3cG9ydC53 aWR0aCk7CiAJCWRhdGEtPnBpdGNoX2luX3BpeGVsc1tudW1fZGlzcGxheXMgKyA0XSA9IGRhdGEt PnNyY193aWR0aFtudW1fZGlzcGxheXMgKyA0XTsKIAkJZGF0YS0+c3JjX2hlaWdodFtudW1fZGlz cGxheXMgKyA0XSA9IGJ3X2ludF90b19maXhlZChwaXBlW2ldLnBsYW5lX3Jlcy5zY2xfZGF0YS52 aWV3cG9ydC5oZWlnaHQpOwpAQCAtMjg4MSw3ICsyODgxLDcgQEAgc3RhdGljIHZvaWQgcG9wdWxh dGVfaW5pdGlhbF9kYXRhKAogCiAJLyogUGlwZXMgd2l0aG91dCB1bmRlcmxheSBhZnRlciAqLwog CWZvciAoaSA9IDA7IGkgPCBwaXBlX2NvdW50OyBpKyspIHsKLQkJdW5zaWduZWQgaW50IHBpeGVs X2Nsb2NrX2toejsKKwkJdW5zaWduZWQgaW50IHBpeGVsX2Nsb2NrXzEwMGh6OwogCQlpZiAoIXBp cGVbaV0uc3RyZWFtIHx8IHBpcGVbaV0uYm90dG9tX3BpcGUpCiAJCQljb250aW51ZTsKIApAQCAt Mjg5MCwxMCArMjg5MCwxMCBAQCBzdGF0aWMgdm9pZCBwb3B1bGF0ZV9pbml0aWFsX2RhdGEoCiAJ CWRhdGEtPmxwdF9lbltudW1fZGlzcGxheXMgKyA0XSA9IGZhbHNlOwogCQlkYXRhLT5oX3RvdGFs W251bV9kaXNwbGF5cyArIDRdID0gYndfaW50X3RvX2ZpeGVkKHBpcGVbaV0uc3RyZWFtLT50aW1p bmcuaF90b3RhbCk7CiAJCWRhdGEtPnZfdG90YWxbbnVtX2Rpc3BsYXlzICsgNF0gPSBid19pbnRf dG9fZml4ZWQocGlwZVtpXS5zdHJlYW0tPnRpbWluZy52X3RvdGFsKTsKLQkJcGl4ZWxfY2xvY2tf a2h6ID0gcGlwZVtpXS5zdHJlYW0tPnRpbWluZy5waXhfY2xrX2toejsKKwkJcGl4ZWxfY2xvY2tf MTAwaHogPSBwaXBlW2ldLnN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHo7CiAJCWlmIChwaXBl W2ldLnN0cmVhbS0+dGltaW5nLnRpbWluZ18zZF9mb3JtYXQgPT0gVElNSU5HXzNEX0ZPUk1BVF9I V19GUkFNRV9QQUNLSU5HKQotCQkJcGl4ZWxfY2xvY2tfa2h6ICo9IDI7Ci0JCWRhdGEtPnBpeGVs X3JhdGVbbnVtX2Rpc3BsYXlzICsgNF0gPSBid19mcmNfdG9fZml4ZWQocGl4ZWxfY2xvY2tfa2h6 LCAxMDAwKTsKKwkJCXBpeGVsX2Nsb2NrXzEwMGh6ICo9IDI7CisJCWRhdGEtPnBpeGVsX3JhdGVb bnVtX2Rpc3BsYXlzICsgNF0gPSBid19mcmNfdG9fZml4ZWQocGl4ZWxfY2xvY2tfMTAwaHosIDEw MDAwKTsKIAkJaWYgKHBpcGVbaV0ucGxhbmVfc3RhdGUpIHsKIAkJCWRhdGEtPnNyY193aWR0aFtu dW1fZGlzcGxheXMgKyA0XSA9IGJ3X2ludF90b19maXhlZChwaXBlW2ldLnBsYW5lX3Jlcy5zY2xf ZGF0YS52aWV3cG9ydC53aWR0aCk7CiAJCQlkYXRhLT5waXRjaF9pbl9waXhlbHNbbnVtX2Rpc3Bs YXlzICsgNF0gPSBkYXRhLT5zcmNfd2lkdGhbbnVtX2Rpc3BsYXlzICsgNF07CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2FsY3MvZGNuX2NhbGNzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2FsY3MvZGNuX2NhbGNzLmMKaW5kZXggNDQ2ZWU0 OC4uMTJkMTg0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nh bGNzL2Rjbl9jYWxjcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jYWxj cy9kY25fY2FsY3MuYwpAQCAtNDE2LDcgKzQxNiw3IEBAIHN0YXRpYyB2b2lkIHBpcGVfY3R4X3Rv X2UyZV9waXBlX3BhcmFtcyAoCiAJCQktIHBpcGUtPnN0cmVhbS0+dGltaW5nLnZfYWRkcmVzc2Fi bGUKIAkJCS0gcGlwZS0+c3RyZWFtLT50aW1pbmcudl9ib3JkZXJfYm90dG9tCiAJCQktIHBpcGUt PnN0cmVhbS0+dGltaW5nLnZfYm9yZGVyX3RvcDsKLQlpbnB1dC0+ZGVzdC5waXhlbF9yYXRlX21o eiA9IHBpcGUtPnN0cmVhbS0+dGltaW5nLnBpeF9jbGtfa2h6LzEwMDAuMDsKKwlpbnB1dC0+ZGVz dC5waXhlbF9yYXRlX21oeiA9IHBpcGUtPnN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHovMTAw MDAuMDsKIAlpbnB1dC0+ZGVzdC52c3RhcnR1cF9zdGFydCA9IHBpcGUtPnBpcGVfZGxnX3BhcmFt LnZzdGFydHVwX3N0YXJ0OwogCWlucHV0LT5kZXN0LnZ1cGRhdGVfb2Zmc2V0ID0gcGlwZS0+cGlw ZV9kbGdfcGFyYW0udnVwZGF0ZV9vZmZzZXQ7CiAJaW5wdXQtPmRlc3QudnVwZGF0ZV9vZmZzZXQg PSBwaXBlLT5waXBlX2RsZ19wYXJhbS52dXBkYXRlX29mZnNldDsKQEAgLTY2Myw5ICs2NjMsOSBA QCBzdGF0aWMgdm9pZCBoYWNrX2Rpc2FibGVfb3B0aW9uYWxfcGlwZV9zcGxpdChzdHJ1Y3QgZGNu X2J3X2ludGVybmFsX3ZhcnMgKnYpCiB9CiAKIHN0YXRpYyB2b2lkIGhhY2tfZm9yY2VfcGlwZV9z cGxpdChzdHJ1Y3QgZGNuX2J3X2ludGVybmFsX3ZhcnMgKnYsCi0JCXVuc2lnbmVkIGludCBwaXhl bF9yYXRlX2toeikKKwkJdW5zaWduZWQgaW50IHBpeGVsX3JhdGVfMTAwaHopCiB7Ci0JZmxvYXQg cGl4ZWxfcmF0ZV9taHogPSBwaXhlbF9yYXRlX2toeiAvIDEwMDA7CisJZmxvYXQgcGl4ZWxfcmF0 ZV9taHogPSBwaXhlbF9yYXRlXzEwMGh6IC8gMTAwMDA7CiAKIAkvKgogCSAqIGZvcmNlIGVuYWJs aW5nIHBpcGUgc3BsaXQgYnkgbG93ZXIgZHBwIGNsb2NrIGZvciBEUE0wIHRvIGp1c3QKQEAgLTY4 OCw3ICs2ODgsNyBAQCBzdGF0aWMgdm9pZCBoYWNrX2JvdW5kaW5nX2JveChzdHJ1Y3QgZGNuX2J3 X2ludGVybmFsX3ZhcnMgKnYsCiAKIAlpZiAoY29udGV4dC0+c3RyZWFtX2NvdW50ID09IDEgJiYK IAkJCWRiZy0+Zm9yY2Vfc2luZ2xlX2Rpc3BfcGlwZV9zcGxpdCkKLQkJaGFja19mb3JjZV9waXBl X3NwbGl0KHYsIGNvbnRleHQtPnN0cmVhbXNbMF0tPnRpbWluZy5waXhfY2xrX2toeik7CisJCWhh Y2tfZm9yY2VfcGlwZV9zcGxpdCh2LCBjb250ZXh0LT5zdHJlYW1zWzBdLT50aW1pbmcucGl4X2Ns a18xMDBoeik7CiB9CiAKIGJvb2wgZGNuX3ZhbGlkYXRlX2JhbmR3aWR0aCgKQEAgLTg0NSw3ICs4 NDUsNyBAQCBib29sIGRjbl92YWxpZGF0ZV9iYW5kd2lkdGgoCiAJCXYtPnZfc3luY19wbHVzX2Jh Y2tfcG9yY2hbaW5wdXRfaWR4XSA9IHBpcGUtPnN0cmVhbS0+dGltaW5nLnZfdG90YWwKIAkJCQkt IHYtPnZhY3RpdmVbaW5wdXRfaWR4XQogCQkJCS0gcGlwZS0+c3RyZWFtLT50aW1pbmcudl9mcm9u dF9wb3JjaDsKLQkJdi0+cGl4ZWxfY2xvY2tbaW5wdXRfaWR4XSA9IHBpcGUtPnN0cmVhbS0+dGlt aW5nLnBpeF9jbGtfa2h6LzEwMDAuMDsKKwkJdi0+cGl4ZWxfY2xvY2tbaW5wdXRfaWR4XSA9IHBp cGUtPnN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHovMTAwMDAuMDsKIAkJaWYgKHBpcGUtPnN0 cmVhbS0+dGltaW5nLnRpbWluZ18zZF9mb3JtYXQgPT0gVElNSU5HXzNEX0ZPUk1BVF9IV19GUkFN RV9QQUNLSU5HKQogCQkJdi0+cGl4ZWxfY2xvY2tbaW5wdXRfaWR4XSAqPSAyOwogCQlpZiAoIXBp cGUtPnBsYW5lX3N0YXRlKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvY29yZS9kYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMu YwppbmRleCBjOThmYThkLi43NjRhN2JmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvY29yZS9kYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9k Yy9jb3JlL2RjLmMKQEAgLTEwODMsNyArMTA4Myw3IEBAIHN0YXRpYyBlbnVtIGRjX3N0YXR1cyBk Y19jb21taXRfc3RhdGVfbm9fY2hlY2soc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpj CiAJCQkJY29udGV4dC0+c3RyZWFtc1tpXS0+dGltaW5nLnZfYWRkcmVzc2FibGUsCiAJCQkJY29u dGV4dC0+c3RyZWFtc1tpXS0+dGltaW5nLmhfdG90YWwsCiAJCQkJY29udGV4dC0+c3RyZWFtc1tp XS0+dGltaW5nLnZfdG90YWwsCi0JCQkJY29udGV4dC0+c3RyZWFtc1tpXS0+dGltaW5nLnBpeF9j bGtfa2h6KTsKKwkJCQljb250ZXh0LT5zdHJlYW1zW2ldLT50aW1pbmcucGl4X2Nsa18xMDBoeiAv IDEwKTsKIAl9CiAKIAlkY19lbmFibGVfc3RlcmVvKGRjLCBjb250ZXh0LCBkY19zdHJlYW1zLCBj b250ZXh0LT5zdHJlYW1fY291bnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2NvcmUvZGNfbGluay5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2NvcmUvZGNfbGluay5jCmluZGV4IDY5YmVlMDEuLmE4N2RiN2EgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmsuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19saW5rLmMKQEAgLTE5MzQsNyArMTkzNCw3IEBA IHN0YXRpYyB2b2lkIGVuYWJsZV9saW5rX2hkbWkoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkK IAkJCSYmIChzdHJlYW0tPnRpbWluZy52X2FkZHJlc3NhYmxlID09IDQ4MCk7CiAKIAlpZiAoc3Ry ZWFtLT5waHlfcGl4X2NsayA9PSAwKQotCQlzdHJlYW0tPnBoeV9waXhfY2xrID0gc3RyZWFtLT50 aW1pbmcucGl4X2Nsa19raHo7CisJCXN0cmVhbS0+cGh5X3BpeF9jbGsgPSBzdHJlYW0tPnRpbWlu Zy5waXhfY2xrXzEwMGh6IC8gMTA7CiAJaWYgKHN0cmVhbS0+cGh5X3BpeF9jbGsgPiAzNDAwMDAp CiAJCWlzX292ZXJfMzQwbWh6ID0gdHJ1ZTsKIApAQCAtMTk4OCw3ICsxOTg4LDcgQEAgc3RhdGlj IHZvaWQgZW5hYmxlX2xpbmtfbHZkcyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCXN0cnVj dCBkY19saW5rICpsaW5rID0gc3RyZWFtLT5saW5rOwogCiAJaWYgKHN0cmVhbS0+cGh5X3BpeF9j bGsgPT0gMCkKLQkJc3RyZWFtLT5waHlfcGl4X2NsayA9IHN0cmVhbS0+dGltaW5nLnBpeF9jbGtf a2h6OworCQlzdHJlYW0tPnBoeV9waXhfY2xrID0gc3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBo eiAvIDEwOwogCiAJbWVtc2V0KCZzdHJlYW0tPmxpbmstPmN1cl9saW5rX3NldHRpbmdzLCAwLAog CQkJc2l6ZW9mKHN0cnVjdCBkY19saW5rX3NldHRpbmdzKSk7CkBAIC0yMDYzLDcgKzIwNjMsNyBA QCBzdGF0aWMgYm9vbCBkcF9hY3RpdmVfZG9uZ2xlX3ZhbGlkYXRlX3RpbWluZygKIAkJY29uc3Qg c3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsCiAJCWNvbnN0IHN0cnVjdCBkcGNkX2NhcHMg KmRwY2RfY2FwcykKIHsKLQl1bnNpZ25lZCBpbnQgcmVxdWlyZWRfcGl4X2NsayA9IHRpbWluZy0+ cGl4X2Nsa19raHo7CisJdW5zaWduZWQgaW50IHJlcXVpcmVkX3BpeF9jbGtfMTAwaHogPSB0aW1p bmctPnBpeF9jbGtfMTAwaHo7CiAJY29uc3Qgc3RydWN0IGRjX2RvbmdsZV9jYXBzICpkb25nbGVf Y2FwcyA9ICZkcGNkX2NhcHMtPmRvbmdsZV9jYXBzOwogCiAJc3dpdGNoIChkcGNkX2NhcHMtPmRv bmdsZV90eXBlKSB7CkBAIC0yMTAzLDkgKzIxMDMsOSBAQCBzdGF0aWMgYm9vbCBkcF9hY3RpdmVf ZG9uZ2xlX3ZhbGlkYXRlX3RpbWluZygKIAogCS8qIENoZWNrIENvbG9yIERlcHRoIGFuZCBQaXhl bCBDbG9jayAqLwogCWlmICh0aW1pbmctPnBpeGVsX2VuY29kaW5nID09IFBJWEVMX0VOQ09ESU5H X1lDQkNSNDIwKQotCQlyZXF1aXJlZF9waXhfY2xrIC89IDI7CisJCXJlcXVpcmVkX3BpeF9jbGtf MTAwaHogLz0gMjsKIAllbHNlIGlmICh0aW1pbmctPnBpeGVsX2VuY29kaW5nID09IFBJWEVMX0VO Q09ESU5HX1lDQkNSNDIyKQotCQlyZXF1aXJlZF9waXhfY2xrID0gcmVxdWlyZWRfcGl4X2NsayAq IDIgLyAzOworCQlyZXF1aXJlZF9waXhfY2xrXzEwMGh6ID0gcmVxdWlyZWRfcGl4X2Nsa18xMDBo eiAqIDIgLyAzOwogCiAJc3dpdGNoICh0aW1pbmctPmRpc3BsYXlfY29sb3JfZGVwdGgpIHsKIAlj YXNlIENPTE9SX0RFUFRIXzY2NjoKQEAgLTIxMTUsMTIgKzIxMTUsMTIgQEAgc3RhdGljIGJvb2wg ZHBfYWN0aXZlX2RvbmdsZV92YWxpZGF0ZV90aW1pbmcoCiAJY2FzZSBDT0xPUl9ERVBUSF8xMDEw MTA6CiAJCWlmIChkb25nbGVfY2Fwcy0+ZHBfaGRtaV9tYXhfYnBjIDwgMTApCiAJCQlyZXR1cm4g ZmFsc2U7Ci0JCXJlcXVpcmVkX3BpeF9jbGsgPSByZXF1aXJlZF9waXhfY2xrICogMTAgLyA4Owor CQlyZXF1aXJlZF9waXhfY2xrXzEwMGh6ID0gcmVxdWlyZWRfcGl4X2Nsa18xMDBoeiAqIDEwIC8g ODsKIAkJYnJlYWs7CiAJY2FzZSBDT0xPUl9ERVBUSF8xMjEyMTI6CiAJCWlmIChkb25nbGVfY2Fw cy0+ZHBfaGRtaV9tYXhfYnBjIDwgMTIpCiAJCQlyZXR1cm4gZmFsc2U7Ci0JCXJlcXVpcmVkX3Bp eF9jbGsgPSByZXF1aXJlZF9waXhfY2xrICogMTIgLyA4OworCQlyZXF1aXJlZF9waXhfY2xrXzEw MGh6ID0gcmVxdWlyZWRfcGl4X2Nsa18xMDBoeiAqIDEyIC8gODsKIAkJYnJlYWs7CiAKIAljYXNl IENPTE9SX0RFUFRIXzE0MTQxNDoKQEAgLTIxMzAsNyArMjEzMCw3IEBAIHN0YXRpYyBib29sIGRw X2FjdGl2ZV9kb25nbGVfdmFsaWRhdGVfdGltaW5nKAogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0J aWYgKHJlcXVpcmVkX3BpeF9jbGsgPiBkb25nbGVfY2Fwcy0+ZHBfaGRtaV9tYXhfcGl4ZWxfY2xr KQorCWlmIChyZXF1aXJlZF9waXhfY2xrXzEwMGh6ID4gKGRvbmdsZV9jYXBzLT5kcF9oZG1pX21h eF9waXhlbF9jbGsgKiAxMCkpCiAJCXJldHVybiBmYWxzZTsKIAogCXJldHVybiB0cnVlOwpAQCAt MjE0MSw3ICsyMTQxLDcgQEAgZW51bSBkY19zdGF0dXMgZGNfbGlua192YWxpZGF0ZV9tb2RlX3Rp bWluZygKIAkJc3RydWN0IGRjX2xpbmsgKmxpbmssCiAJCWNvbnN0IHN0cnVjdCBkY19jcnRjX3Rp bWluZyAqdGltaW5nKQogewotCXVpbnQzMl90IG1heF9waXhfY2xrID0gc3RyZWFtLT5saW5rLT5k b25nbGVfbWF4X3BpeF9jbGs7CisJdWludDMyX3QgbWF4X3BpeF9jbGsgPSBzdHJlYW0tPmxpbmst PmRvbmdsZV9tYXhfcGl4X2NsayAqIDEwOwogCXN0cnVjdCBkcGNkX2NhcHMgKmRwY2RfY2FwcyA9 ICZsaW5rLT5kcGNkX2NhcHM7CiAKIAkvKiBBIGhhY2sgdG8gYXZvaWQgZmFpbGluZyBhbnkgbW9k ZXMgZm9yIEVESUQgb3ZlcnJpZGUgZmVhdHVyZSBvbgpAQCAtMjE1MSw3ICsyMTUxLDcgQEAgZW51 bSBkY19zdGF0dXMgZGNfbGlua192YWxpZGF0ZV9tb2RlX3RpbWluZygKIAkJcmV0dXJuIERDX09L OwogCiAJLyogUGFzc2l2ZSBEb25nbGUgKi8KLQlpZiAoMCAhPSBtYXhfcGl4X2NsayAmJiB0aW1p bmctPnBpeF9jbGtfa2h6ID4gbWF4X3BpeF9jbGspCisJaWYgKDAgIT0gbWF4X3BpeF9jbGsgJiYg dGltaW5nLT5waXhfY2xrXzEwMGh6ID4gbWF4X3BpeF9jbGspCiAJCXJldHVybiBEQ19FWENFRURf RE9OR0xFX0NBUDsKIAogCS8qIEFjdGl2ZSBEb25nbGUqLwpAQCAtMjMwMSw3ICsyMzAxLDcgQEAg c3RhdGljIHN0cnVjdCBmaXhlZDMxXzMyIGdldF9wYm5fZnJvbV90aW1pbmcoc3RydWN0IHBpcGVf Y3R4ICpwaXBlX2N0eCkKIAl1aW50MzJfdCBkZW5vbWluYXRvcjsKIAogCWJwYyA9IGdldF9jb2xv cl9kZXB0aChwaXBlX2N0eC0+c3RyZWFtX3Jlcy5waXhfY2xrX3BhcmFtcy5jb2xvcl9kZXB0aCk7 Ci0Ja2JwcyA9IHBpcGVfY3R4LT5zdHJlYW1fcmVzLnBpeF9jbGtfcGFyYW1zLnJlcXVlc3RlZF9w aXhfY2xrICogYnBjICogMzsKKwlrYnBzID0gcGlwZV9jdHgtPnN0cmVhbV9yZXMucGl4X2Nsa19w YXJhbXMucmVxdWVzdGVkX3BpeF9jbGtfMTAwaHogLyAxMCAqIGJwYyAqIDM7CiAKIAkvKgogCSAq IG1hcmdpbiA1MzAwcHBtICsgMzAwcHBtIH4gMC42JSBhcyBwZXIgc3BlYywgZmFjdG9yIGlzIDEu MDA2CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19s aW5rX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19saW5rX2Rw LmMKaW5kZXggZjQwMjcxZS4uNTZhMDZiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGlua19kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfZHAuYwpAQCAtMTQxOSw3ICsxNDE5LDcgQEAgc3RhdGlj IHVpbnQzMl90IGJhbmR3aWR0aF9pbl9rYnBzX2Zyb21fdGltaW5nKAogCiAJQVNTRVJUKGJpdHNf cGVyX2NoYW5uZWwgIT0gMCk7CiAKLQlrYnBzID0gdGltaW5nLT5waXhfY2xrX2toejsKKwlrYnBz ID0gdGltaW5nLT5waXhfY2xrXzEwMGh6IC8gMTA7CiAJa2JwcyAqPSBiaXRzX3Blcl9jaGFubmVs OwogCiAJaWYgKHRpbWluZy0+ZmxhZ3MuWV9PTkxZICE9IDEpIHsKQEAgLTE0NjEsNyArMTQ2MSw3 IEBAIGJvb2wgZHBfdmFsaWRhdGVfbW9kZV90aW1pbmcoCiAJY29uc3Qgc3RydWN0IGRjX2xpbmtf c2V0dGluZ3MgKmxpbmtfc2V0dGluZzsKIAogCS8qYWx3YXlzIERQIGZhaWwgc2FmZSBtb2RlKi8K LQlpZiAodGltaW5nLT5waXhfY2xrX2toeiA9PSAodWludDMyX3QpIDI1MTc1ICYmCisJaWYgKCh0 aW1pbmctPnBpeF9jbGtfMTAwaHogLyAxMCkgPT0gKHVpbnQzMl90KSAyNTE3NSAmJgogCQl0aW1p bmctPmhfYWRkcmVzc2FibGUgPT0gKHVpbnQzMl90KSA2NDAgJiYKIAkJdGltaW5nLT52X2FkZHJl c3NhYmxlID09ICh1aW50MzJfdCkgNDgwKQogCQlyZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfaHdzcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGlua19od3NzLmMKaW5kZXggZjhhZjc3 Ni4uZjk2ZmFiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nv cmUvZGNfbGlua19od3NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Nv cmUvZGNfbGlua19od3NzLmMKQEAgLTc0LDggKzc0LDggQEAgdm9pZCBkcF9lbmFibGVfbGlua19w aHkoCiAJCQlpZiAocGlwZXNbaV0uY2xvY2tfc291cmNlICE9IE5VTEwgJiYKIAkJCQkJcGlwZXNb aV0uY2xvY2tfc291cmNlLT5pZCAhPSBDTE9DS19TT1VSQ0VfSURfRFBfRFRPKSB7CiAJCQkJcGlw ZXNbaV0uY2xvY2tfc291cmNlID0gZHBfY3M7Ci0JCQkJcGlwZXNbaV0uc3RyZWFtX3Jlcy5waXhf Y2xrX3BhcmFtcy5yZXF1ZXN0ZWRfcGl4X2NsayA9Ci0JCQkJCQlwaXBlc1tpXS5zdHJlYW0tPnRp bWluZy5waXhfY2xrX2toejsKKwkJCQlwaXBlc1tpXS5zdHJlYW1fcmVzLnBpeF9jbGtfcGFyYW1z LnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6ID0KKwkJCQkJCXBpcGVzW2ldLnN0cmVhbS0+dGltaW5n LnBpeF9jbGtfMTAwaHo7CiAJCQkJcGlwZXNbaV0uY2xvY2tfc291cmNlLT5mdW5jcy0+cHJvZ3Jh bV9waXhfY2xrKAogCQkJCQkJCXBpcGVzW2ldLmNsb2NrX3NvdXJjZSwKIAkJCQkJCQkmcGlwZXNb aV0uc3RyZWFtX3Jlcy5waXhfY2xrX3BhcmFtcywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvY29yZS9kY19yZXNvdXJjZS5jCmluZGV4IGNlZTcxMmEuLjMzZmQ4OGQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX3Jlc291cmNl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfcmVzb3VyY2Uu YwpAQCAtMzUxLDggKzM1MSw4IEBAIGJvb2wgcmVzb3VyY2VfYXJlX3N0cmVhbXNfdGltaW5nX3N5 bmNocm9uaXphYmxlKAogCQkJCSE9IHN0cmVhbTItPnRpbWluZy52X2FkZHJlc3NhYmxlKQogCQly ZXR1cm4gZmFsc2U7CiAKLQlpZiAoc3RyZWFtMS0+dGltaW5nLnBpeF9jbGtfa2h6Ci0JCQkJIT0g c3RyZWFtMi0+dGltaW5nLnBpeF9jbGtfa2h6KQorCWlmIChzdHJlYW0xLT50aW1pbmcucGl4X2Ns a18xMDBoegorCQkJCSE9IHN0cmVhbTItPnRpbWluZy5waXhfY2xrXzEwMGh6KQogCQlyZXR1cm4g ZmFsc2U7CiAKIAlpZiAoc3RyZWFtMS0+Y2xhbXBpbmcuY19kZXB0aCAhPSBzdHJlYW0yLT5jbGFt cGluZy5jX2RlcHRoKQpAQCAtMTc1NSw3ICsxNzU1LDcgQEAgc3RhdGljIHN0cnVjdCBkY19zdHJl YW1fc3RhdGUgKmZpbmRfcGxsX3NoYXJhYmxlX3N0cmVhbSgKIAogc3RhdGljIGludCBnZXRfbm9y bV9waXhfY2xrKGNvbnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5nKQogewotCXVpbnQz Ml90IHBpeF9jbGsgPSB0aW1pbmctPnBpeF9jbGtfa2h6OworCXVpbnQzMl90IHBpeF9jbGsgPSB0 aW1pbmctPnBpeF9jbGtfMTAwaHo7CiAJdWludDMyX3Qgbm9ybWFsaXplZF9waXhfY2xrID0gcGl4 X2NsazsKIAogCWlmICh0aW1pbmctPnBpeGVsX2VuY29kaW5nID09IFBJWEVMX0VOQ09ESU5HX1lD QkNSNDIwKQpAQCAtMTc4NywxMCArMTc4NywxMCBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVfcGh5 X3BpeF9jbGtzKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSkKIAkvKiB1cGRhdGUgYWN0 dWFsIHBpeGVsIGNsb2NrIG9uIGFsbCBzdHJlYW1zICovCiAJaWYgKGRjX2lzX2hkbWlfc2lnbmFs KHN0cmVhbS0+c2lnbmFsKSkKIAkJc3RyZWFtLT5waHlfcGl4X2NsayA9IGdldF9ub3JtX3BpeF9j bGsoCi0JCQkmc3RyZWFtLT50aW1pbmcpOworCQkJJnN0cmVhbS0+dGltaW5nKSAvIDEwOwogCWVs c2UKIAkJc3RyZWFtLT5waHlfcGl4X2NsayA9Ci0JCQlzdHJlYW0tPnRpbWluZy5waXhfY2xrX2to ejsKKwkJCXN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHogLyAxMDsKIAogCWlmIChzdHJlYW0t PnRpbWluZy50aW1pbmdfM2RfZm9ybWF0ID09IFRJTUlOR18zRF9GT1JNQVRfSFdfRlJBTUVfUEFD S0lORykKIAkJc3RyZWFtLT5waHlfcGl4X2NsayAqPSAyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfc3RyZWFtLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvY29yZS9kY19zdHJlYW0uYwppbmRleCBlZDVlYjhhLi45OTYyOThjIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19zdHJlYW0u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19zdHJlYW0uYwpA QCAtNDQsNyArNDQsNyBAQCB2b2lkIHVwZGF0ZV9zdHJlYW1fc2lnbmFsKHN0cnVjdCBkY19zdHJl YW1fc3RhdGUgKnN0cmVhbSwgc3RydWN0IGRjX3NpbmsgKnNpbmspCiAKIAlpZiAoZGNfaXNfZHZp X3NpZ25hbChzdHJlYW0tPnNpZ25hbCkpIHsKIAkJaWYgKHN0cmVhbS0+Y3R4LT5kYy0+Y2Fwcy5k dWFsX2xpbmtfZHZpICYmCi0JCSAgICBzdHJlYW0tPnRpbWluZy5waXhfY2xrX2toeiA+IFRNRFNf TUFYX1BJWEVMX0NMT0NLICYmCisJCSAgICAoc3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBoeiAv IDEwKSA+IFRNRFNfTUFYX1BJWEVMX0NMT0NLICYmCiAJCSAgICBzaW5rLT5zaW5rX3NpZ25hbCAh PSBTSUdOQUxfVFlQRV9EVklfU0lOR0xFX0xJTkspCiAJCQlzdHJlYW0tPnNpZ25hbCA9IFNJR05B TF9UWVBFX0RWSV9EVUFMX0xJTks7CiAJCWVsc2UKQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lkIGRj X3N0cmVhbV9sb2coY29uc3Qgc3RydWN0IGRjICpkYywgY29uc3Qgc3RydWN0IGRjX3N0cmVhbV9z dGF0ZSAqc3RyZWFtKQogCQkJc3RyZWFtLT5vdXRwdXRfY29sb3Jfc3BhY2UpOwogCURDX0xPR19E QygKIAkJCSJcdHBpeF9jbGtfa2h6OiAlZCwgaF90b3RhbDogJWQsIHZfdG90YWw6ICVkLCBwaXhl bGVuY29kZXI6JWQsIGRpc3BsYXljb2xvckRlcHRoOiVkXG4iLAotCQkJc3RyZWFtLT50aW1pbmcu cGl4X2Nsa19raHosCisJCQlzdHJlYW0tPnRpbWluZy5waXhfY2xrXzEwMGh6IC8gMTAsCiAJCQlz dHJlYW0tPnRpbWluZy5oX3RvdGFsLAogCQkJc3RyZWFtLT50aW1pbmcudl90b3RhbCwKIAkJCXN0 cmVhbS0+dGltaW5nLnBpeGVsX2VuY29kaW5nLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvZGNfaHdfdHlwZXMuaAppbmRleCA5ZGRmZTRjLi5lNjljOWNjIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaApAQCAtNzMwLDcgKzczMCw3IEBA IHN0cnVjdCBkY19jcnRjX3RpbWluZyB7CiAJdWludDMyX3Qgdl9mcm9udF9wb3JjaDsKIAl1aW50 MzJfdCB2X3N5bmNfd2lkdGg7CiAKLQl1aW50MzJfdCBwaXhfY2xrX2toejsKKwl1aW50MzJfdCBw aXhfY2xrXzEwMGh6OwogCiAJdWludDMyX3QgdmljOwogCXVpbnQzMl90IGhkbWlfdmljOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xrX21nci5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xrX21nci5jCmluZGV4 IDVjMWE3YzAuLjg5NDA0MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9kY2UvZGNlX2Nsa19tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvZGNlL2RjZV9jbGtfbWdyLmMKQEAgLTE5NCw4ICsxOTQsOCBAQCBzdGF0aWMgdWludDMyX3Qg Z2V0X21heF9waXhlbF9jbG9ja19mb3JfYWxsX3BhdGhzKHN0cnVjdCBkY19zdGF0ZSAqY29udGV4 dCkKIAkJaWYgKHBpcGVfY3R4LT50b3BfcGlwZSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChwaXBl X2N0eC0+c3RyZWFtX3Jlcy5waXhfY2xrX3BhcmFtcy5yZXF1ZXN0ZWRfcGl4X2NsayA+IG1heF9w aXhfY2xrKQotCQkJbWF4X3BpeF9jbGsgPSBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5waXhfY2xrX3Bh cmFtcy5yZXF1ZXN0ZWRfcGl4X2NsazsKKwkJaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLnBpeF9j bGtfcGFyYW1zLnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6IC8gMTAgPiBtYXhfcGl4X2NsaykKKwkJ CW1heF9waXhfY2xrID0gcGlwZV9jdHgtPnN0cmVhbV9yZXMucGl4X2Nsa19wYXJhbXMucmVxdWVz dGVkX3BpeF9jbGtfMTAwaHogLyAxMDsKIAogCQkvKiByYWlzZSBjbG9jayBzdGF0ZSBmb3IgSEJS My8yIGlmIHJlcXVpcmVkLiBDb25maXJtZWQgd2l0aCBIVyBEQ0UvRFBDUwogCQkgKiBsb2dpYyBm b3IgSEJSMyBzdGlsbCBuZWVkcyBOb21pbmFsICgwLjhWKSBvbiBWRERDIHJhaWwKQEAgLTI1Nyw3 ICsyNTcsNyBAQCBzdGF0aWMgaW50IGRjZV9zZXRfY2xvY2soCiAJCQkJY2xrX21ncl9kY2UtPmRl bnRpc3RfdmNvX2ZyZXFfa2h6IC8gNjQpOwogCiAJLyogUHJlcGFyZSB0byBwcm9ncmFtIGRpc3Bs YXkgY2xvY2sqLwotCXB4bF9jbGtfcGFyYW1zLnRhcmdldF9waXhlbF9jbG9jayA9IHJlcXVlc3Rl ZF9jbGtfa2h6OworCXB4bF9jbGtfcGFyYW1zLnRhcmdldF9waXhlbF9jbG9ja18xMDBoeiA9IHJl cXVlc3RlZF9jbGtfa2h6ICogMTA7CiAJcHhsX2Nsa19wYXJhbXMucGxsX2lkID0gQ0xPQ0tfU09V UkNFX0lEX0RGUzsKIAogCWlmIChjbGtfbWdyX2RjZS0+ZGZzX2J5cGFzc19hY3RpdmUpCkBAIC00 OTQsNyArNDk0LDcgQEAgdm9pZCBkY2UxMTBfZmlsbF9kaXNwbGF5X2NvbmZpZ3MoCiAJCQlzdHJl YW0tPmxpbmstPmN1cl9saW5rX3NldHRpbmdzLmxpbmtfc3ByZWFkOwogCQljZmctPnN5bV9jbG9j ayA9IHN0cmVhbS0+cGh5X3BpeF9jbGs7CiAJCS8qIFJvdW5kIHZfcmVmcmVzaCovCi0JCWNmZy0+ dl9yZWZyZXNoID0gc3RyZWFtLT50aW1pbmcucGl4X2Nsa19raHogKiAxMDAwOworCQljZmctPnZf cmVmcmVzaCA9IHN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHogKiAxMDA7CiAJCWNmZy0+dl9y ZWZyZXNoIC89IHN0cmVhbS0+dGltaW5nLmhfdG90YWw7CiAJCWNmZy0+dl9yZWZyZXNoID0gKGNm Zy0+dl9yZWZyZXNoICsgc3RyZWFtLT50aW1pbmcudl90b3RhbCAvIDIpCiAJCQkJCQkJLyBzdHJl YW0tPnRpbWluZy52X3RvdGFsOwpAQCAtNTE4LDcgKzUxOCw3IEBAIHN0YXRpYyB1aW50MzJfdCBk Y2UxMTBfZ2V0X21pbl92YmxhbmtfdGltZV91cyhjb25zdCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRl eHQpCiAJCQkgLSBzdHJlYW0tPnRpbWluZy52X2FkZHJlc3NhYmxlKTsKIAogCQl2ZXJ0aWNhbF9i bGFua190aW1lID0gdmVydGljYWxfYmxhbmtfaW5fcGl4ZWxzCi0JCQkqIDEwMDAgLyBzdHJlYW0t PnRpbWluZy5waXhfY2xrX2toejsKKwkJCSogMTAwMDAgLyBzdHJlYW0tPnRpbWluZy5waXhfY2xr XzEwMGh6OwogCiAJCWlmIChtaW5fdmVydGljYWxfYmxhbmtfdGltZSA+IHZlcnRpY2FsX2JsYW5r X3RpbWUpCiAJCQltaW5fdmVydGljYWxfYmxhbmtfdGltZSA9IHZlcnRpY2FsX2JsYW5rX3RpbWU7 CkBAIC02MTIsNyArNjEyLDcgQEAgc3RhdGljIHZvaWQgZGNlMTFfcHBsaWJfYXBwbHlfZGlzcGxh eV9yZXF1aXJlbWVudHMoCiAKIAkJcHBfZGlzcGxheV9jZmctPmNydGNfaW5kZXggPQogCQkJcHBf ZGlzcGxheV9jZmctPmRpc3BfY29uZmlnc1swXS5waXBlX2lkeDsKLQkJcHBfZGlzcGxheV9jZmct PmxpbmVfdGltZV9pbl91cyA9IHRpbWluZy0+aF90b3RhbCAqIDEwMDAgLyB0aW1pbmctPnBpeF9j bGtfa2h6OworCQlwcF9kaXNwbGF5X2NmZy0+bGluZV90aW1lX2luX3VzID0gdGltaW5nLT5oX3Rv dGFsICogMTAwMDAgLyB0aW1pbmctPnBpeF9jbGtfMTAwaHo7CiAJfQogCiAJaWYgKG1lbWNtcCgm ZGMtPmN1cnJlbnRfc3RhdGUtPnBwX2Rpc3BsYXlfY2ZnLCBwcF9kaXNwbGF5X2NmZywgc2l6ZW9m KCpwcF9kaXNwbGF5X2NmZykpICE9ICAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9ja19zb3VyY2UuYwppbmRleCA3MjNjZTgwLi5jNjdlOTBl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9jbG9j a19zb3VyY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9j bG9ja19zb3VyY2UuYwpAQCAtMTA4LDI4ICsxMDgsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBz cHJlYWRfc3BlY3RydW1fZGF0YSAqZ2V0X3NzX2RhdGFfZW50cnkoCiB9CiAKIC8qKgotKiBGdW5j dGlvbjogY2FsY3VsYXRlX2ZiX2FuZF9mcmFjdGlvbmFsX2ZiX2RpdmlkZXIKLSoKLSogKiBERVND UklQVElPTjogQ2FsY3VsYXRlcyBmZWVkYmFjayBhbmQgZnJhY3Rpb25hbCBmZWVkYmFjayBkaXZp ZGVycyB2YWx1ZXMKLSoKLSpQQVJBTUVURVJTOgotKiB0YXJnZXRQaXhlbENsb2NrICAgICAgICAg ICAgIERlc2lyZWQgZnJlcXVlbmN5IGluIDEwIEtIegotKiByZWZfZGl2aWRlciAgICAgICAgICAg ICAgICAgIFJlZmVyZW5jZSBkaXZpZGVyIChhbHJlYWR5IGtub3duKQotKiBwb3N0RGl2aWRlciAg ICAgICAgICAgICAgICAgIFBvc3QgRGl2aWRlciAoYWxyZWFkeSBrbm93bikKLSogZmVlZGJhY2tf ZGl2aWRlcl9wYXJhbSAgICAgICBQb2ludGVyIHdoZXJlIHRvIHN0b3JlCi0qCQkJCQljYWxjdWxh dGVkIGZlZWRiYWNrIGRpdmlkZXIgdmFsdWUKLSogZnJhY3RfZmVlZGJhY2tfZGl2aWRlcl9wYXJh bSBQb2ludGVyIHdoZXJlIHRvIHN0b3JlCi0qCQkJCQljYWxjdWxhdGVkIGZyYWN0IGZlZWRiYWNr IGRpdmlkZXIgdmFsdWUKLSoKLSpSRVRVUk5TOgotKiBJdCBmaWxscyB0aGUgbG9jYXRpb25zIHBv aW50ZWQgYnkgZmVlZGJhY2tfZGl2aWRlcl9wYXJhbQotKgkJCQkJYW5kIGZyYWN0X2ZlZWRiYWNr X2RpdmlkZXJfcGFyYW0KLSogSXQgcmV0dXJucwktIHRydWUgaWYgZmVlZGJhY2sgZGl2aWRlciBu b3QgMAotKgkJLSBmYWxzZSBzaG91bGQgbmV2ZXIgaGFwcGVuKQotKi8KKyAqIEZ1bmN0aW9uOiBj YWxjdWxhdGVfZmJfYW5kX2ZyYWN0aW9uYWxfZmJfZGl2aWRlcgorICoKKyAqICogREVTQ1JJUFRJ T046IENhbGN1bGF0ZXMgZmVlZGJhY2sgYW5kIGZyYWN0aW9uYWwgZmVlZGJhY2sgZGl2aWRlcnMg dmFsdWVzCisgKgorICpQQVJBTUVURVJTOgorICogdGFyZ2V0UGl4ZWxDbG9jayAgICAgICAgICAg ICBEZXNpcmVkIGZyZXF1ZW5jeSBpbiAxMDAgSHoKKyAqIHJlZl9kaXZpZGVyICAgICAgICAgICAg ICAgICAgUmVmZXJlbmNlIGRpdmlkZXIgKGFscmVhZHkga25vd24pCisgKiBwb3N0RGl2aWRlciAg ICAgICAgICAgICAgICAgIFBvc3QgRGl2aWRlciAoYWxyZWFkeSBrbm93bikKKyAqIGZlZWRiYWNr X2RpdmlkZXJfcGFyYW0gICAgICAgUG9pbnRlciB3aGVyZSB0byBzdG9yZQorICoJCQkJCWNhbGN1 bGF0ZWQgZmVlZGJhY2sgZGl2aWRlciB2YWx1ZQorICogZnJhY3RfZmVlZGJhY2tfZGl2aWRlcl9w YXJhbSBQb2ludGVyIHdoZXJlIHRvIHN0b3JlCisgKgkJCQkJY2FsY3VsYXRlZCBmcmFjdCBmZWVk YmFjayBkaXZpZGVyIHZhbHVlCisgKgorICpSRVRVUk5TOgorICogSXQgZmlsbHMgdGhlIGxvY2F0 aW9ucyBwb2ludGVkIGJ5IGZlZWRiYWNrX2RpdmlkZXJfcGFyYW0KKyAqCQkJCQlhbmQgZnJhY3Rf ZmVlZGJhY2tfZGl2aWRlcl9wYXJhbQorICogSXQgcmV0dXJucwktIHRydWUgaWYgZmVlZGJhY2sg ZGl2aWRlciBub3QgMAorICoJCS0gZmFsc2Ugc2hvdWxkIG5ldmVyIGhhcHBlbikKKyAqLwogc3Rh dGljIGJvb2wgY2FsY3VsYXRlX2ZiX2FuZF9mcmFjdGlvbmFsX2ZiX2RpdmlkZXIoCiAJCXN0cnVj dCBjYWxjX3BsbF9jbG9ja19zb3VyY2UgKmNhbGNfcGxsX2NzLAotCQl1aW50MzJfdCB0YXJnZXRf cGl4X2Nsa19raHosCisJCXVpbnQzMl90IHRhcmdldF9waXhfY2xrXzEwMGh6LAogCQl1aW50MzJf dCByZWZfZGl2aWRlciwKIAkJdWludDMyX3QgcG9zdF9kaXZpZGVyLAogCQl1aW50MzJfdCAqZmVl ZGJhY2tfZGl2aWRlcl9wYXJhbSwKQEAgLTEzOCwxMSArMTM4LDExIEBAIHN0YXRpYyBib29sIGNh bGN1bGF0ZV9mYl9hbmRfZnJhY3Rpb25hbF9mYl9kaXZpZGVyKAogCXVpbnQ2NF90IGZlZWRiYWNr X2RpdmlkZXI7CiAKIAlmZWVkYmFja19kaXZpZGVyID0KLQkJKHVpbnQ2NF90KXRhcmdldF9waXhf Y2xrX2toeiAqIHJlZl9kaXZpZGVyICogcG9zdF9kaXZpZGVyOworCQkodWludDY0X3QpdGFyZ2V0 X3BpeF9jbGtfMTAwaHogKiByZWZfZGl2aWRlciAqIHBvc3RfZGl2aWRlcjsKIAlmZWVkYmFja19k aXZpZGVyICo9IDEwOwogCS8qIGFkZGl0aW9uYWwgZmFjdG9yLCBzaW5jZSB3ZSBkaXZpZGUgYnkg MTAgYWZ0ZXJ3YXJkcyAqLwogCWZlZWRiYWNrX2RpdmlkZXIgKj0gKHVpbnQ2NF90KShjYWxjX3Bs bF9jcy0+ZnJhY3RfZmJfZGl2aWRlcl9mYWN0b3IpOwotCWZlZWRiYWNrX2RpdmlkZXIgPSBkaXZf dTY0KGZlZWRiYWNrX2RpdmlkZXIsIGNhbGNfcGxsX2NzLT5yZWZfZnJlcV9raHopOworCWZlZWRi YWNrX2RpdmlkZXIgPSBkaXZfdTY0KGZlZWRiYWNrX2RpdmlkZXIsIGNhbGNfcGxsX2NzLT5yZWZf ZnJlcV9raHogKiAxMHVsbCk7CiAKIC8qUm91bmQgdG8gdGhlIG51bWJlciBvZiBwcmVjaXNpb24K ICAqIFRoZSBmb2xsb3dpbmcgY29kZSByZXBsYWNlIHRoZSBvbGQgY29kZSAodWxsZmVlZGJhY2tE aXZpZGVyICsgNSkvMTAKQEAgLTE5NSwzNiArMTk1LDM2IEBAIHN0YXRpYyBib29sIGNhbGNfZmJf ZGl2aWRlcl9jaGVja2luZ190b2xlcmFuY2UoCiB7CiAJdWludDMyX3QgZmVlZGJhY2tfZGl2aWRl cjsKIAl1aW50MzJfdCBmcmFjdF9mZWVkYmFja19kaXZpZGVyOwotCXVpbnQzMl90IGFjdHVhbF9j YWxjdWxhdGVkX2Nsb2NrX2toejsKKwl1aW50MzJfdCBhY3R1YWxfY2FsY3VsYXRlZF9jbG9ja18x MDBoejsKIAl1aW50MzJfdCBhYnNfZXJyOwotCXVpbnQ2NF90IGFjdHVhbF9jYWxjX2Nsa19raHo7 CisJdWludDY0X3QgYWN0dWFsX2NhbGNfY2xrXzEwMGh6OwogCiAJY2FsY3VsYXRlX2ZiX2FuZF9m cmFjdGlvbmFsX2ZiX2RpdmlkZXIoCiAJCQljYWxjX3BsbF9jcywKLQkJCXBsbF9zZXR0aW5ncy0+ YWRqdXN0ZWRfcGl4X2NsaywKKwkJCXBsbF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2Nsa18xMDBo eiwKIAkJCXJlZl9kaXZpZGVyLAogCQkJcG9zdF9kaXZpZGVyLAogCQkJJmZlZWRiYWNrX2Rpdmlk ZXIsCiAJCQkmZnJhY3RfZmVlZGJhY2tfZGl2aWRlcik7CiAKIAkvKkFjdHVhbCBjYWxjdWxhdGVk IHZhbHVlKi8KLQlhY3R1YWxfY2FsY19jbGtfa2h6ID0gKHVpbnQ2NF90KWZlZWRiYWNrX2Rpdmlk ZXIgKgorCWFjdHVhbF9jYWxjX2Nsa18xMDBoeiA9ICh1aW50NjRfdClmZWVkYmFja19kaXZpZGVy ICoKIAkJCQkJY2FsY19wbGxfY3MtPmZyYWN0X2ZiX2RpdmlkZXJfZmFjdG9yICsKIAkJCQkJCQlm cmFjdF9mZWVkYmFja19kaXZpZGVyOwotCWFjdHVhbF9jYWxjX2Nsa19raHogKj0gY2FsY19wbGxf Y3MtPnJlZl9mcmVxX2toejsKLQlhY3R1YWxfY2FsY19jbGtfa2h6ID0KLQkJZGl2X3U2NChhY3R1 YWxfY2FsY19jbGtfa2h6LAorCWFjdHVhbF9jYWxjX2Nsa18xMDBoeiAqPSBjYWxjX3BsbF9jcy0+ cmVmX2ZyZXFfa2h6ICogMTA7CisJYWN0dWFsX2NhbGNfY2xrXzEwMGh6ID0KKwkJZGl2X3U2NChh Y3R1YWxfY2FsY19jbGtfMTAwaHosCiAJCQlyZWZfZGl2aWRlciAqIHBvc3RfZGl2aWRlciAqCiAJ CQkJY2FsY19wbGxfY3MtPmZyYWN0X2ZiX2RpdmlkZXJfZmFjdG9yKTsKIAotCWFjdHVhbF9jYWxj dWxhdGVkX2Nsb2NrX2toeiA9ICh1aW50MzJfdCkoYWN0dWFsX2NhbGNfY2xrX2toeik7CisJYWN0 dWFsX2NhbGN1bGF0ZWRfY2xvY2tfMTAwaHogPSAodWludDMyX3QpKGFjdHVhbF9jYWxjX2Nsa18x MDBoeik7CiAKLQlhYnNfZXJyID0gKGFjdHVhbF9jYWxjdWxhdGVkX2Nsb2NrX2toeiA+Ci0JCQkJ CXBsbF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2NsaykKLQkJCT8gYWN0dWFsX2NhbGN1bGF0ZWRf Y2xvY2tfa2h6IC0KLQkJCQkJcGxsX3NldHRpbmdzLT5hZGp1c3RlZF9waXhfY2xrCi0JCQk6IHBs bF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2NsayAtCi0JCQkJCQlhY3R1YWxfY2FsY3VsYXRlZF9j bG9ja19raHo7CisJYWJzX2VyciA9IChhY3R1YWxfY2FsY3VsYXRlZF9jbG9ja18xMDBoeiA+CisJ CQkJCXBsbF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2Nsa18xMDBoeikKKwkJCT8gYWN0dWFsX2Nh bGN1bGF0ZWRfY2xvY2tfMTAwaHogLQorCQkJCQlwbGxfc2V0dGluZ3MtPmFkanVzdGVkX3BpeF9j bGtfMTAwaHoKKwkJCTogcGxsX3NldHRpbmdzLT5hZGp1c3RlZF9waXhfY2xrXzEwMGh6IC0KKwkJ CQkJCWFjdHVhbF9jYWxjdWxhdGVkX2Nsb2NrXzEwMGh6OwogCiAJaWYgKGFic19lcnIgPD0gdG9s ZXJhbmNlKSB7CiAJCS8qZm91bmQgZ29vZCB2YWx1ZXMqLwpAQCAtMjMzLDEwICsyMzMsMTAgQEAg c3RhdGljIGJvb2wgY2FsY19mYl9kaXZpZGVyX2NoZWNraW5nX3RvbGVyYW5jZSgKIAkJcGxsX3Nl dHRpbmdzLT5mZWVkYmFja19kaXZpZGVyID0gZmVlZGJhY2tfZGl2aWRlcjsKIAkJcGxsX3NldHRp bmdzLT5mcmFjdF9mZWVkYmFja19kaXZpZGVyID0gZnJhY3RfZmVlZGJhY2tfZGl2aWRlcjsKIAkJ cGxsX3NldHRpbmdzLT5waXhfY2xrX3Bvc3RfZGl2aWRlciA9IHBvc3RfZGl2aWRlcjsKLQkJcGxs X3NldHRpbmdzLT5jYWxjdWxhdGVkX3BpeF9jbGsgPQotCQkJYWN0dWFsX2NhbGN1bGF0ZWRfY2xv Y2tfa2h6OworCQlwbGxfc2V0dGluZ3MtPmNhbGN1bGF0ZWRfcGl4X2Nsa18xMDBoeiA9CisJCQlh Y3R1YWxfY2FsY3VsYXRlZF9jbG9ja18xMDBoejsKIAkJcGxsX3NldHRpbmdzLT52Y29fZnJlcSA9 Ci0JCQlhY3R1YWxfY2FsY3VsYXRlZF9jbG9ja19raHogKiBwb3N0X2RpdmlkZXI7CisJCQlhY3R1 YWxfY2FsY3VsYXRlZF9jbG9ja18xMDBoeiAqIHBvc3RfZGl2aWRlciAvIDEwOwogCQlyZXR1cm4g dHJ1ZTsKIAl9CiAJcmV0dXJuIGZhbHNlOwpAQCAtMjU3LDggKzI1Nyw4IEBAIHN0YXRpYyBib29s IGNhbGNfcGxsX2RpdmlkZXJzX2luX3JhbmdlKAogCiAvKiBUaGlzIGlzIGVycl90b2xlcmFuY2Ug LyAxMDAwMCA9IDAuMDAyNSAtIGFjY2VwdGFibGUgZXJyb3Igb2YgMC4yNSUKICAqIFRoaXMgaXMg ZXJyb3JUb2xlcmFuY2UgLyAxMDAwMCA9IDAuMDAwMSAtIGFjY2VwdGFibGUgZXJyb3Igb2YgMC4w MSUqLwotCXRvbGVyYW5jZSA9IChwbGxfc2V0dGluZ3MtPmFkanVzdGVkX3BpeF9jbGsgKiBlcnJf dG9sZXJhbmNlKSAvCi0JCQkJCQkJCQkxMDAwMDsKKwl0b2xlcmFuY2UgPSAocGxsX3NldHRpbmdz LT5hZGp1c3RlZF9waXhfY2xrXzEwMGh6ICogZXJyX3RvbGVyYW5jZSkgLworCQkJCQkJCQkJMTAw MDAwOwogCWlmICh0b2xlcmFuY2UgPCBDQUxDX1BMTF9DTEtfU1JDX0VSUl9UT0xFUkFOQ0UpCiAJ CXRvbGVyYW5jZSA9IENBTENfUExMX0NMS19TUkNfRVJSX1RPTEVSQU5DRTsKIApAQCAtMjk0LDcg KzI5NCw3IEBAIHN0YXRpYyB1aW50MzJfdCBjYWxjdWxhdGVfcGl4ZWxfY2xvY2tfcGxsX2Rpdmlk ZXJzKAogCXVpbnQzMl90IG1pbl9yZWZfZGl2aWRlcjsKIAl1aW50MzJfdCBtYXhfcmVmX2Rpdmlk ZXI7CiAKLQlpZiAocGxsX3NldHRpbmdzLT5hZGp1c3RlZF9waXhfY2xrID09IDApIHsKKwlpZiAo cGxsX3NldHRpbmdzLT5hZGp1c3RlZF9waXhfY2xrXzEwMGh6ID09IDApIHsKIAkJRENfTE9HX0VS Uk9SKAogCQkJIiVzIEJhZCByZXF1ZXN0ZWQgcGl4ZWwgY2xvY2siLCBfX2Z1bmNfXyk7CiAJCXJl dHVybiBNQVhfUExMX0NBTENfRVJST1I7CkBAIC0zMDYsMjEgKzMwNiwyMSBAQCBzdGF0aWMgdWlu dDMyX3QgY2FsY3VsYXRlX3BpeGVsX2Nsb2NrX3BsbF9kaXZpZGVycygKIAkJbWF4X3Bvc3RfZGl2 aWRlciA9IHBsbF9zZXR0aW5ncy0+cGl4X2Nsa19wb3N0X2RpdmlkZXI7CiAJfSBlbHNlIHsKIAkJ bWluX3Bvc3RfZGl2aWRlciA9IGNhbGNfcGxsX2NzLT5taW5fcGl4X2Nsb2NrX3BsbF9wb3N0X2Rp dmlkZXI7Ci0JCWlmIChtaW5fcG9zdF9kaXZpZGVyICogcGxsX3NldHRpbmdzLT5hZGp1c3RlZF9w aXhfY2xrIDwKLQkJCQkJCWNhbGNfcGxsX2NzLT5taW5fdmNvX2toeikgewotCQkJbWluX3Bvc3Rf ZGl2aWRlciA9IGNhbGNfcGxsX2NzLT5taW5fdmNvX2toeiAvCi0JCQkJCXBsbF9zZXR0aW5ncy0+ YWRqdXN0ZWRfcGl4X2NsazsKKwkJaWYgKG1pbl9wb3N0X2RpdmlkZXIgKiBwbGxfc2V0dGluZ3Mt PmFkanVzdGVkX3BpeF9jbGtfMTAwaHogPAorCQkJCQkJY2FsY19wbGxfY3MtPm1pbl92Y29fa2h6 ICogMTApIHsKKwkJCW1pbl9wb3N0X2RpdmlkZXIgPSBjYWxjX3BsbF9jcy0+bWluX3Zjb19raHog KiAxMCAvCisJCQkJCXBsbF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2Nsa18xMDBoejsKIAkJCWlm ICgobWluX3Bvc3RfZGl2aWRlciAqCi0JCQkJCXBsbF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2Ns aykgPAotCQkJCQkJY2FsY19wbGxfY3MtPm1pbl92Y29fa2h6KQorCQkJCQlwbGxfc2V0dGluZ3Mt PmFkanVzdGVkX3BpeF9jbGtfMTAwaHopIDwKKwkJCQkJCWNhbGNfcGxsX2NzLT5taW5fdmNvX2to eiAqIDEwKQogCQkJCW1pbl9wb3N0X2RpdmlkZXIrKzsKIAkJfQogCiAJCW1heF9wb3N0X2Rpdmlk ZXIgPSBjYWxjX3BsbF9jcy0+bWF4X3BpeF9jbG9ja19wbGxfcG9zdF9kaXZpZGVyOwotCQlpZiAo bWF4X3Bvc3RfZGl2aWRlciAqIHBsbF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2NsawotCQkJCT4g Y2FsY19wbGxfY3MtPm1heF92Y29fa2h6KQotCQkJbWF4X3Bvc3RfZGl2aWRlciA9IGNhbGNfcGxs X2NzLT5tYXhfdmNvX2toeiAvCi0JCQkJCXBsbF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2NsazsK KwkJaWYgKG1heF9wb3N0X2RpdmlkZXIgKiBwbGxfc2V0dGluZ3MtPmFkanVzdGVkX3BpeF9jbGtf MTAwaHoKKwkJCQk+IGNhbGNfcGxsX2NzLT5tYXhfdmNvX2toeiAqIDEwKQorCQkJbWF4X3Bvc3Rf ZGl2aWRlciA9IGNhbGNfcGxsX2NzLT5tYXhfdmNvX2toeiAqIDEwIC8KKwkJCQkJcGxsX3NldHRp bmdzLT5hZGp1c3RlZF9waXhfY2xrXzEwMGh6OwogCX0KIAogLyogMikgRmluZCBSZWZlcmVuY2Ug ZGl2aWRlciByYW5nZXMKQEAgLTM5Miw0NyArMzkyLDQ3IEBAIHN0YXRpYyBib29sIHBsbF9hZGp1 c3RfcGl4X2NsaygKIAkJc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgKnBpeF9jbGtfcGFyYW1zLAog CQlzdHJ1Y3QgcGxsX3NldHRpbmdzICpwbGxfc2V0dGluZ3MpCiB7Ci0JdWludDMyX3QgYWN0dWFs X3BpeF9jbGtfa2h6ID0gMDsKLQl1aW50MzJfdCByZXF1ZXN0ZWRfY2xrX2toeiA9IDA7CisJdWlu dDMyX3QgYWN0dWFsX3BpeF9jbGtfMTAwaHogPSAwOworCXVpbnQzMl90IHJlcXVlc3RlZF9jbGtf MTAwaHogPSAwOwogCXN0cnVjdCBicF9hZGp1c3RfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycyBicF9h ZGp1c3RfcGl4ZWxfY2xvY2tfcGFyYW1zID0gewogCQkJCQkJCTAgfTsKIAllbnVtIGJwX3Jlc3Vs dCBicF9yZXN1bHQ7CiAJc3dpdGNoIChwaXhfY2xrX3BhcmFtcy0+c2lnbmFsX3R5cGUpIHsKIAlj YXNlIFNJR05BTF9UWVBFX0hETUlfVFlQRV9BOiB7Ci0JCXJlcXVlc3RlZF9jbGtfa2h6ID0gcGl4 X2Nsa19wYXJhbXMtPnJlcXVlc3RlZF9waXhfY2xrOworCQlyZXF1ZXN0ZWRfY2xrXzEwMGh6ID0g cGl4X2Nsa19wYXJhbXMtPnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6OwogCQlpZiAocGl4X2Nsa19w YXJhbXMtPnBpeGVsX2VuY29kaW5nICE9IFBJWEVMX0VOQ09ESU5HX1lDQkNSNDIyKSB7CiAJCQlz d2l0Y2ggKHBpeF9jbGtfcGFyYW1zLT5jb2xvcl9kZXB0aCkgewogCQkJY2FzZSBDT0xPUl9ERVBU SF8xMDEwMTA6Ci0JCQkJcmVxdWVzdGVkX2Nsa19raHogPSAocmVxdWVzdGVkX2Nsa19raHogKiA1 KSA+PiAyOworCQkJCXJlcXVlc3RlZF9jbGtfMTAwaHogPSAocmVxdWVzdGVkX2Nsa18xMDBoeiAq IDUpID4+IDI7CiAJCQkJYnJlYWs7IC8qIHgxLjI1Ki8KIAkJCWNhc2UgQ09MT1JfREVQVEhfMTIx MjEyOgotCQkJCXJlcXVlc3RlZF9jbGtfa2h6ID0gKHJlcXVlc3RlZF9jbGtfa2h6ICogNikgPj4g MjsKKwkJCQlyZXF1ZXN0ZWRfY2xrXzEwMGh6ID0gKHJlcXVlc3RlZF9jbGtfMTAwaHogKiA2KSA+ PiAyOwogCQkJCWJyZWFrOyAvKiB4MS41Ki8KIAkJCWNhc2UgQ09MT1JfREVQVEhfMTYxNjE2Ogot CQkJCXJlcXVlc3RlZF9jbGtfa2h6ID0gcmVxdWVzdGVkX2Nsa19raHogKiAyOworCQkJCXJlcXVl c3RlZF9jbGtfMTAwaHogPSByZXF1ZXN0ZWRfY2xrXzEwMGh6ICogMjsKIAkJCQlicmVhazsgLyog eDIuMCovCiAJCQlkZWZhdWx0OgogCQkJCWJyZWFrOwogCQkJfQogCQl9Ci0JCWFjdHVhbF9waXhf Y2xrX2toeiA9IHJlcXVlc3RlZF9jbGtfa2h6OworCQlhY3R1YWxfcGl4X2Nsa18xMDBoeiA9IHJl cXVlc3RlZF9jbGtfMTAwaHo7CiAJfQogCQlicmVhazsKIAogCWNhc2UgU0lHTkFMX1RZUEVfRElT UExBWV9QT1JUOgogCWNhc2UgU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUX01TVDoKIAljYXNlIFNJ R05BTF9UWVBFX0VEUDoKLQkJcmVxdWVzdGVkX2Nsa19raHogPSBwaXhfY2xrX3BhcmFtcy0+cmVx dWVzdGVkX3N5bV9jbGs7Ci0JCWFjdHVhbF9waXhfY2xrX2toeiA9IHBpeF9jbGtfcGFyYW1zLT5y ZXF1ZXN0ZWRfcGl4X2NsazsKKwkJcmVxdWVzdGVkX2Nsa18xMDBoeiA9IHBpeF9jbGtfcGFyYW1z LT5yZXF1ZXN0ZWRfc3ltX2NsayAqIDEwOworCQlhY3R1YWxfcGl4X2Nsa18xMDBoeiA9IHBpeF9j bGtfcGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoejsKIAkJYnJlYWs7CiAKIAlkZWZhdWx0 OgotCQlyZXF1ZXN0ZWRfY2xrX2toeiA9IHBpeF9jbGtfcGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2Ns azsKLQkJYWN0dWFsX3BpeF9jbGtfa2h6ID0gcGl4X2Nsa19wYXJhbXMtPnJlcXVlc3RlZF9waXhf Y2xrOworCQlyZXF1ZXN0ZWRfY2xrXzEwMGh6ID0gcGl4X2Nsa19wYXJhbXMtPnJlcXVlc3RlZF9w aXhfY2xrXzEwMGh6OworCQlhY3R1YWxfcGl4X2Nsa18xMDBoeiA9IHBpeF9jbGtfcGFyYW1zLT5y ZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoejsKIAkJYnJlYWs7CiAJfQogCi0JYnBfYWRqdXN0X3BpeGVs X2Nsb2NrX3BhcmFtcy5waXhlbF9jbG9jayA9IHJlcXVlc3RlZF9jbGtfa2h6OworCWJwX2FkanVz dF9waXhlbF9jbG9ja19wYXJhbXMucGl4ZWxfY2xvY2sgPSByZXF1ZXN0ZWRfY2xrXzEwMGh6IC8g MTA7CiAJYnBfYWRqdXN0X3BpeGVsX2Nsb2NrX3BhcmFtcy4KIAkJZW5jb2Rlcl9vYmplY3RfaWQg PSBwaXhfY2xrX3BhcmFtcy0+ZW5jb2Rlcl9vYmplY3RfaWQ7CiAJYnBfYWRqdXN0X3BpeGVsX2Ns b2NrX3BhcmFtcy5zaWduYWxfdHlwZSA9IHBpeF9jbGtfcGFyYW1zLT5zaWduYWxfdHlwZTsKQEAg LTQ0MSw5ICs0NDEsOSBAQCBzdGF0aWMgYm9vbCBwbGxfYWRqdXN0X3BpeF9jbGsoCiAJYnBfcmVz dWx0ID0gY2xrX3NyYy0+Ymlvcy0+ZnVuY3MtPmFkanVzdF9waXhlbF9jbG9jaygKIAkJCWNsa19z cmMtPmJpb3MsICZicF9hZGp1c3RfcGl4ZWxfY2xvY2tfcGFyYW1zKTsKIAlpZiAoYnBfcmVzdWx0 ID09IEJQX1JFU1VMVF9PSykgewotCQlwbGxfc2V0dGluZ3MtPmFjdHVhbF9waXhfY2xrID0gYWN0 dWFsX3BpeF9jbGtfa2h6OwotCQlwbGxfc2V0dGluZ3MtPmFkanVzdGVkX3BpeF9jbGsgPQotCQkJ YnBfYWRqdXN0X3BpeGVsX2Nsb2NrX3BhcmFtcy5hZGp1c3RlZF9waXhlbF9jbG9jazsKKwkJcGxs X3NldHRpbmdzLT5hY3R1YWxfcGl4X2Nsa18xMDBoeiA9IGFjdHVhbF9waXhfY2xrXzEwMGh6Owor CQlwbGxfc2V0dGluZ3MtPmFkanVzdGVkX3BpeF9jbGtfMTAwaHogPQorCQkJYnBfYWRqdXN0X3Bp eGVsX2Nsb2NrX3BhcmFtcy5hZGp1c3RlZF9waXhlbF9jbG9jayAqIDEwOwogCQlwbGxfc2V0dGlu Z3MtPnJlZmVyZW5jZV9kaXZpZGVyID0KIAkJCWJwX2FkanVzdF9waXhlbF9jbG9ja19wYXJhbXMu cmVmZXJlbmNlX2RpdmlkZXI7CiAJCXBsbF9zZXR0aW5ncy0+cGl4X2Nsa19wb3N0X2RpdmlkZXIg PQpAQCAtNDkwLDcgKzQ5MCw3IEBAIHN0YXRpYyB1aW50MzJfdCBkY2UxMTBfZ2V0X3BpeF9jbGtf ZGl2aWRlcnNfaGVscGVyICgKIAkJY29uc3Qgc3RydWN0IHNwcmVhZF9zcGVjdHJ1bV9kYXRhICpz c19kYXRhID0gZ2V0X3NzX2RhdGFfZW50cnkoCiAJCQkJCWNsa19zcmMsCiAJCQkJCXBpeF9jbGtf cGFyYW1zLT5zaWduYWxfdHlwZSwKLQkJCQkJcGxsX3NldHRpbmdzLT5hZGp1c3RlZF9waXhfY2xr KTsKKwkJCQkJcGxsX3NldHRpbmdzLT5hZGp1c3RlZF9waXhfY2xrXzEwMGh6IC8gMTApOwogCiAJ CWlmIChOVUxMICE9IHNzX2RhdGEpCiAJCQlwbGxfc2V0dGluZ3MtPnNzX3BlcmNlbnRhZ2UgPSBz c19kYXRhLT5wZXJjZW50YWdlOwpAQCAtNTAyLDEzICs1MDIsMTMgQEAgc3RhdGljIHVpbnQzMl90 IGRjZTExMF9nZXRfcGl4X2Nsa19kaXZpZGVyc19oZWxwZXIgKAogCQkgKiB0byBjb250aW51ZS4g Ki8KIAkJRENfTE9HX0VSUk9SKAogCQkJIiVzOiBGYWlsZWQgdG8gYWRqdXN0IHBpeGVsIGNsb2Nr ISEiLCBfX2Z1bmNfXyk7Ci0JCXBsbF9zZXR0aW5ncy0+YWN0dWFsX3BpeF9jbGsgPQotCQkJCXBp eF9jbGtfcGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2NsazsKLQkJcGxsX3NldHRpbmdzLT5hZGp1c3Rl ZF9waXhfY2xrID0KLQkJCQlwaXhfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGs7CisJCXBs bF9zZXR0aW5ncy0+YWN0dWFsX3BpeF9jbGtfMTAwaHogPQorCQkJCXBpeF9jbGtfcGFyYW1zLT5y ZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoejsKKwkJcGxsX3NldHRpbmdzLT5hZGp1c3RlZF9waXhfY2xr XzEwMGh6ID0KKwkJCQlwaXhfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGtfMTAwaHo7CiAK IAkJaWYgKGRjX2lzX2RwX3NpZ25hbChwaXhfY2xrX3BhcmFtcy0+c2lnbmFsX3R5cGUpKQotCQkJ cGxsX3NldHRpbmdzLT5hZGp1c3RlZF9waXhfY2xrID0gMTAwMDAwOworCQkJcGxsX3NldHRpbmdz LT5hZGp1c3RlZF9waXhfY2xrXzEwMGh6ID0gMTAwMDAwMDsKIAl9CiAKIAkvKiBDYWxjdWxhdGUg RGl2aWRlcnMgKi8KQEAgLTUzMywyOCArNTMzLDI4IEBAIHN0YXRpYyB2b2lkIGRjZTExMl9nZXRf cGl4X2Nsa19kaXZpZGVyc19oZWxwZXIgKAogCQlzdHJ1Y3QgcGxsX3NldHRpbmdzICpwbGxfc2V0 dGluZ3MsCiAJCXN0cnVjdCBwaXhlbF9jbGtfcGFyYW1zICpwaXhfY2xrX3BhcmFtcykKIHsKLQl1 aW50MzJfdCBhY3R1YWxQaXhlbENsb2NrSW5LSHo7CisJdWludDMyX3QgYWN0dWFsX3BpeGVsX2Ns b2NrXzEwMGh6OwogCi0JYWN0dWFsUGl4ZWxDbG9ja0luS0h6ID0gcGl4X2Nsa19wYXJhbXMtPnJl cXVlc3RlZF9waXhfY2xrOworCWFjdHVhbF9waXhlbF9jbG9ja18xMDBoeiA9IHBpeF9jbGtfcGFy YW1zLT5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoejsKIAkvKiBDYWxjdWxhdGUgRGl2aWRlcnMgKi8K IAlpZiAocGl4X2Nsa19wYXJhbXMtPnNpZ25hbF90eXBlID09IFNJR05BTF9UWVBFX0hETUlfVFlQ RV9BKSB7CiAJCXN3aXRjaCAocGl4X2Nsa19wYXJhbXMtPmNvbG9yX2RlcHRoKSB7CiAJCWNhc2Ug Q09MT1JfREVQVEhfMTAxMDEwOgotCQkJYWN0dWFsUGl4ZWxDbG9ja0luS0h6ID0gKGFjdHVhbFBp eGVsQ2xvY2tJbktIeiAqIDUpID4+IDI7CisJCQlhY3R1YWxfcGl4ZWxfY2xvY2tfMTAwaHogPSAo YWN0dWFsX3BpeGVsX2Nsb2NrXzEwMGh6ICogNSkgPj4gMjsKIAkJCWJyZWFrOwogCQljYXNlIENP TE9SX0RFUFRIXzEyMTIxMjoKLQkJCWFjdHVhbFBpeGVsQ2xvY2tJbktIeiA9IChhY3R1YWxQaXhl bENsb2NrSW5LSHogKiA2KSA+PiAyOworCQkJYWN0dWFsX3BpeGVsX2Nsb2NrXzEwMGh6ID0gKGFj dHVhbF9waXhlbF9jbG9ja18xMDBoeiAqIDYpID4+IDI7CiAJCQlicmVhazsKIAkJY2FzZSBDT0xP Ul9ERVBUSF8xNjE2MTY6Ci0JCQlhY3R1YWxQaXhlbENsb2NrSW5LSHogPSBhY3R1YWxQaXhlbENs b2NrSW5LSHogKiAyOworCQkJYWN0dWFsX3BpeGVsX2Nsb2NrXzEwMGh6ID0gYWN0dWFsX3BpeGVs X2Nsb2NrXzEwMGh6ICogMjsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJCX0K IAl9Ci0JcGxsX3NldHRpbmdzLT5hY3R1YWxfcGl4X2NsayA9IGFjdHVhbFBpeGVsQ2xvY2tJbktI ejsKLQlwbGxfc2V0dGluZ3MtPmFkanVzdGVkX3BpeF9jbGsgPSBhY3R1YWxQaXhlbENsb2NrSW5L SHo7Ci0JcGxsX3NldHRpbmdzLT5jYWxjdWxhdGVkX3BpeF9jbGsgPSBwaXhfY2xrX3BhcmFtcy0+ cmVxdWVzdGVkX3BpeF9jbGs7CisJcGxsX3NldHRpbmdzLT5hY3R1YWxfcGl4X2Nsa18xMDBoeiA9 IGFjdHVhbF9waXhlbF9jbG9ja18xMDBoejsKKwlwbGxfc2V0dGluZ3MtPmFkanVzdGVkX3BpeF9j bGtfMTAwaHogPSBhY3R1YWxfcGl4ZWxfY2xvY2tfMTAwaHo7CisJcGxsX3NldHRpbmdzLT5jYWxj dWxhdGVkX3BpeF9jbGtfMTAwaHogPSBwaXhfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGtf MTAwaHo7CiB9CiAKIHN0YXRpYyB1aW50MzJfdCBkY2UxMTBfZ2V0X3BpeF9jbGtfZGl2aWRlcnMo CkBAIC01NjcsNyArNTY3LDcgQEAgc3RhdGljIHVpbnQzMl90IGRjZTExMF9nZXRfcGl4X2Nsa19k aXZpZGVycygKIAlEQ19MT0dHRVJfSU5JVCgpOwogCiAJaWYgKHBpeF9jbGtfcGFyYW1zID09IE5V TEwgfHwgcGxsX3NldHRpbmdzID09IE5VTEwKLQkJCXx8IHBpeF9jbGtfcGFyYW1zLT5yZXF1ZXN0 ZWRfcGl4X2NsayA9PSAwKSB7CisJCQl8fCBwaXhfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9j bGtfMTAwaHogPT0gMCkgewogCQlEQ19MT0dfRVJST1IoCiAJCQkiJXM6IEludmFsaWQgcGFyYW1l dGVycyEhXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiBwbGxfY2FsY19lcnJvcjsKQEAgLTU3Nywx MCArNTc3LDEwIEBAIHN0YXRpYyB1aW50MzJfdCBkY2UxMTBfZ2V0X3BpeF9jbGtfZGl2aWRlcnMo CiAKIAlpZiAoY3MtPmlkID09IENMT0NLX1NPVVJDRV9JRF9EUF9EVE8gfHwKIAkJCWNzLT5pZCA9 PSBDTE9DS19TT1VSQ0VfSURfRVhURVJOQUwpIHsKLQkJcGxsX3NldHRpbmdzLT5hZGp1c3RlZF9w aXhfY2xrID0gY2xrX3NyYy0+ZXh0X2Nsa19raHo7Ci0JCXBsbF9zZXR0aW5ncy0+Y2FsY3VsYXRl ZF9waXhfY2xrID0gY2xrX3NyYy0+ZXh0X2Nsa19raHo7Ci0JCXBsbF9zZXR0aW5ncy0+YWN0dWFs X3BpeF9jbGsgPQotCQkJCQlwaXhfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGs7CisJCXBs bF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2Nsa18xMDBoeiA9IGNsa19zcmMtPmV4dF9jbGtfa2h6 ICogMTA7CisJCXBsbF9zZXR0aW5ncy0+Y2FsY3VsYXRlZF9waXhfY2xrXzEwMGh6ID0gY2xrX3Ny Yy0+ZXh0X2Nsa19raHogKiAxMDsKKwkJcGxsX3NldHRpbmdzLT5hY3R1YWxfcGl4X2Nsa18xMDBo eiA9CisJCQkJCXBpeF9jbGtfcGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoejsKIAkJcmV0 dXJuIDA7CiAJfQogCkBAIC01OTksNyArNTk5LDcgQEAgc3RhdGljIHVpbnQzMl90IGRjZTExMl9n ZXRfcGl4X2Nsa19kaXZpZGVycygKIAlEQ19MT0dHRVJfSU5JVCgpOwogCiAJaWYgKHBpeF9jbGtf cGFyYW1zID09IE5VTEwgfHwgcGxsX3NldHRpbmdzID09IE5VTEwKLQkJCXx8IHBpeF9jbGtfcGFy YW1zLT5yZXF1ZXN0ZWRfcGl4X2NsayA9PSAwKSB7CisJCQl8fCBwaXhfY2xrX3BhcmFtcy0+cmVx dWVzdGVkX3BpeF9jbGtfMTAwaHogPT0gMCkgewogCQlEQ19MT0dfRVJST1IoCiAJCQkiJXM6IElu dmFsaWQgcGFyYW1ldGVycyEhXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtMTsKQEAgLTYwOSwx MCArNjA5LDEwIEBAIHN0YXRpYyB1aW50MzJfdCBkY2UxMTJfZ2V0X3BpeF9jbGtfZGl2aWRlcnMo CiAKIAlpZiAoY3MtPmlkID09IENMT0NLX1NPVVJDRV9JRF9EUF9EVE8gfHwKIAkJCWNzLT5pZCA9 PSBDTE9DS19TT1VSQ0VfSURfRVhURVJOQUwpIHsKLQkJcGxsX3NldHRpbmdzLT5hZGp1c3RlZF9w aXhfY2xrID0gY2xrX3NyYy0+ZXh0X2Nsa19raHo7Ci0JCXBsbF9zZXR0aW5ncy0+Y2FsY3VsYXRl ZF9waXhfY2xrID0gY2xrX3NyYy0+ZXh0X2Nsa19raHo7Ci0JCXBsbF9zZXR0aW5ncy0+YWN0dWFs X3BpeF9jbGsgPQotCQkJCQlwaXhfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGs7CisJCXBs bF9zZXR0aW5ncy0+YWRqdXN0ZWRfcGl4X2Nsa18xMDBoeiA9IGNsa19zcmMtPmV4dF9jbGtfa2h6 ICogMTA7CisJCXBsbF9zZXR0aW5ncy0+Y2FsY3VsYXRlZF9waXhfY2xrXzEwMGh6ID0gY2xrX3Ny Yy0+ZXh0X2Nsa19raHogKiAxMDsKKwkJcGxsX3NldHRpbmdzLT5hY3R1YWxfcGl4X2Nsa18xMDBo eiA9CisJCQkJCXBpeF9jbGtfcGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoejsKIAkJcmV0 dXJuIC0xOwogCX0KIApAQCAtNzE0LDcgKzcxNCw3IEBAIHN0YXRpYyBib29sIGVuYWJsZV9zcHJl YWRfc3BlY3RydW0oCiAJc3NfZGF0YSA9IGdldF9zc19kYXRhX2VudHJ5KAogCQkJY2xrX3NyYywK IAkJCXNpZ25hbCwKLQkJCXBsbF9zZXR0aW5ncy0+Y2FsY3VsYXRlZF9waXhfY2xrKTsKKwkJCXBs bF9zZXR0aW5ncy0+Y2FsY3VsYXRlZF9waXhfY2xrXzEwMGh6IC8gMTApOwogCiAvKiBQaXhlbCBj bG9jayBQTEwgaGFzIGJlZW4gcHJvZ3JhbW1lZCB0byBnZW5lcmF0ZSBkZXNpcmVkIHBpeGVsIGNs b2NrLAogICogbm93IGVuYWJsZSBTUyBvbiBwaXhlbCBjbG9jayAqLwpAQCAtODUzLDcgKzg1Myw3 IEBAIHN0YXRpYyBib29sIGRjZTExMF9wcm9ncmFtX3BpeF9jbGsoCiAJLypBVE9NQklPUyBleHBl Y3RzIHBpeGVsIHJhdGUgYWRqdXN0ZWQgYnkgZGVlcCBjb2xvciByYXRpbykqLwogCWJwX3BjX3Bh cmFtcy5jb250cm9sbGVyX2lkID0gcGl4X2Nsa19wYXJhbXMtPmNvbnRyb2xsZXJfaWQ7CiAJYnBf cGNfcGFyYW1zLnBsbF9pZCA9IGNsb2NrX3NvdXJjZS0+aWQ7Ci0JYnBfcGNfcGFyYW1zLnRhcmdl dF9waXhlbF9jbG9jayA9IHBsbF9zZXR0aW5ncy0+YWN0dWFsX3BpeF9jbGs7CisJYnBfcGNfcGFy YW1zLnRhcmdldF9waXhlbF9jbG9ja18xMDBoeiA9IHBsbF9zZXR0aW5ncy0+YWN0dWFsX3BpeF9j bGtfMTAwaHo7CiAJYnBfcGNfcGFyYW1zLmVuY29kZXJfb2JqZWN0X2lkID0gcGl4X2Nsa19wYXJh bXMtPmVuY29kZXJfb2JqZWN0X2lkOwogCWJwX3BjX3BhcmFtcy5zaWduYWxfdHlwZSA9IHBpeF9j bGtfcGFyYW1zLT5zaWduYWxfdHlwZTsKIApAQCAtOTAzLDEyICs5MDMsMTIgQEAgc3RhdGljIGJv b2wgZGNlMTEyX3Byb2dyYW1fcGl4X2NsaygKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RD X0RDTjFfMCkKIAlpZiAoSVNfRlBHQV9NQVhJTVVTX0RDKGNsb2NrX3NvdXJjZS0+Y3R4LT5kY2Vf ZW52aXJvbm1lbnQpKSB7CiAJCXVuc2lnbmVkIGludCBpbnN0ID0gcGl4X2Nsa19wYXJhbXMtPmNv bnRyb2xsZXJfaWQgLSBDT05UUk9MTEVSX0lEX0QwOwotCQl1bnNpZ25lZCBkcF9kdG9fcmVmX2tI eiA9IDcwMDAwMDsKLQkJdW5zaWduZWQgY2xvY2tfa0h6ID0gcGxsX3NldHRpbmdzLT5hY3R1YWxf cGl4X2NsazsKKwkJdW5zaWduZWQgZHBfZHRvX3JlZl8xMDBoeiA9IDcwMDAwMDA7CisJCXVuc2ln bmVkIGNsb2NrXzEwMGh6ID0gcGxsX3NldHRpbmdzLT5hY3R1YWxfcGl4X2Nsa18xMDBoejsKIAog CQkvKiBTZXQgRFRPIHZhbHVlczogcGhhc2UgPSB0YXJnZXQgY2xvY2ssIG1vZHVsbyA9IHJlZmVy ZW5jZSBjbG9jayAqLwotCQlSRUdfV1JJVEUoUEhBU0VbaW5zdF0sIGNsb2NrX2tIeik7Ci0JCVJF R19XUklURShNT0RVTE9baW5zdF0sIGRwX2R0b19yZWZfa0h6KTsKKwkJUkVHX1dSSVRFKFBIQVNF W2luc3RdLCBjbG9ja18xMDBoeik7CisJCVJFR19XUklURShNT0RVTE9baW5zdF0sIGRwX2R0b19y ZWZfMTAwaHopOwogCiAJCS8qIEVuYWJsZSBEVE8gKi8KIAkJUkVHX1VQREFURShQSVhFTF9SQVRF X0NOVExbaW5zdF0sIERQX0RUTzBfRU5BQkxFLCAxKTsKQEAgLTkyNyw3ICs5MjcsNyBAQCBzdGF0 aWMgYm9vbCBkY2UxMTJfcHJvZ3JhbV9waXhfY2xrKAogCS8qQVRPTUJJT1MgZXhwZWN0cyBwaXhl bCByYXRlIGFkanVzdGVkIGJ5IGRlZXAgY29sb3IgcmF0aW8pKi8KIAlicF9wY19wYXJhbXMuY29u dHJvbGxlcl9pZCA9IHBpeF9jbGtfcGFyYW1zLT5jb250cm9sbGVyX2lkOwogCWJwX3BjX3BhcmFt cy5wbGxfaWQgPSBjbG9ja19zb3VyY2UtPmlkOwotCWJwX3BjX3BhcmFtcy50YXJnZXRfcGl4ZWxf Y2xvY2sgPSBwbGxfc2V0dGluZ3MtPmFjdHVhbF9waXhfY2xrOworCWJwX3BjX3BhcmFtcy50YXJn ZXRfcGl4ZWxfY2xvY2tfMTAwaHogPSBwbGxfc2V0dGluZ3MtPmFjdHVhbF9waXhfY2xrXzEwMGh6 OwogCWJwX3BjX3BhcmFtcy5lbmNvZGVyX29iamVjdF9pZCA9IHBpeF9jbGtfcGFyYW1zLT5lbmNv ZGVyX29iamVjdF9pZDsKIAlicF9wY19wYXJhbXMuc2lnbmFsX3R5cGUgPSBwaXhfY2xrX3BhcmFt cy0+c2lnbmFsX3R5cGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9kY2UvZGNlX2xpbmtfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RjZS9kY2VfbGlua19lbmNvZGVyLmMKaW5kZXggMWQ3OTRjNi4uMzE0YzA0YSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfbGlua19lbmNvZGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfbGlua19lbmNv ZGVyLmMKQEAgLTU5OSwxMiArNTk5LDEyIEBAIGJvb2wgZGNlMTEwX2xpbmtfZW5jb2Rlcl92YWxp ZGF0ZV9kdmlfb3V0cHV0KAogCWlmICgoY29ubmVjdG9yX3NpZ25hbCA9PSBTSUdOQUxfVFlQRV9E VklfU0lOR0xFX0xJTksgfHwKIAkJY29ubmVjdG9yX3NpZ25hbCA9PSBTSUdOQUxfVFlQRV9IRE1J X1RZUEVfQSkgJiYKIAkJc2lnbmFsICE9IFNJR05BTF9UWVBFX0hETUlfVFlQRV9BICYmCi0JCWNy dGNfdGltaW5nLT5waXhfY2xrX2toeiA+IFRNRFNfTUFYX1BJWEVMX0NMT0NLKQorCQljcnRjX3Rp bWluZy0+cGl4X2Nsa18xMDBoeiA+IChUTURTX01BWF9QSVhFTF9DTE9DSyAqIDEwKSkKIAkJcmV0 dXJuIGZhbHNlOwotCWlmIChjcnRjX3RpbWluZy0+cGl4X2Nsa19raHogPCBUTURTX01JTl9QSVhF TF9DTE9DSykKKwlpZiAoY3J0Y190aW1pbmctPnBpeF9jbGtfMTAwaHogPCAoVE1EU19NSU5fUElY RUxfQ0xPQ0sgKiAxMCkpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChjcnRjX3RpbWluZy0+cGl4 X2Nsa19raHogPiBtYXhfcGl4ZWxfY2xvY2spCisJaWYgKGNydGNfdGltaW5nLT5waXhfY2xrXzEw MGh6ID4gKG1heF9waXhlbF9jbG9jayAqIDEwKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogRFZJ IHN1cHBvcnRzIDYvOGJwcCBzaW5nbGUtbGluayBhbmQgMTAvMTZicHAgZHVhbC1saW5rICovCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9zdHJlYW1f ZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2Vfc3RyZWFt X2VuY29kZXIuYwppbmRleCBjY2UwZDE4Li40YmQ3YzVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9zdHJlYW1fZW5jb2Rlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX3N0cmVhbV9lbmNvZGVyLmMKQEAgLTY2 Miw3ICs2NjIsNyBAQCBzdGF0aWMgdm9pZCBkY2UxMTBfc3RyZWFtX2VuY29kZXJfZHZpX3NldF9z dHJlYW1fYXR0cmlidXRlKAogCWNudGwuc2lnbmFsID0gaXNfZHVhbF9saW5rID8KIAkJCVNJR05B TF9UWVBFX0RWSV9EVUFMX0xJTksgOiBTSUdOQUxfVFlQRV9EVklfU0lOR0xFX0xJTks7CiAJY250 bC5lbmFibGVfZHBfYXVkaW8gPSBmYWxzZTsKLQljbnRsLnBpeGVsX2Nsb2NrID0gY3J0Y190aW1p bmctPnBpeF9jbGtfa2h6OworCWNudGwucGl4ZWxfY2xvY2sgPSBjcnRjX3RpbWluZy0+cGl4X2Ns a18xMDBoeiAvIDEwOwogCWNudGwubGFuZXNfbnVtYmVyID0gKGlzX2R1YWxfbGluaykgPyBMQU5F X0NPVU5UX0VJR0hUIDogTEFORV9DT1VOVF9GT1VSOwogCiAJaWYgKGVuYzExMC0+YmFzZS5icC0+ ZnVuY3MtPmVuY29kZXJfY29udHJvbCgKQEAgLTY4Niw3ICs2ODYsNyBAQCBzdGF0aWMgdm9pZCBk Y2UxMTBfc3RyZWFtX2VuY29kZXJfbHZkc19zZXRfc3RyZWFtX2F0dHJpYnV0ZSgKIAljbnRsLmVu Z2luZV9pZCA9IGVuYzExMC0+YmFzZS5pZDsKIAljbnRsLnNpZ25hbCA9IFNJR05BTF9UWVBFX0xW RFM7CiAJY250bC5lbmFibGVfZHBfYXVkaW8gPSBmYWxzZTsKLQljbnRsLnBpeGVsX2Nsb2NrID0g Y3J0Y190aW1pbmctPnBpeF9jbGtfa2h6OworCWNudGwucGl4ZWxfY2xvY2sgPSBjcnRjX3RpbWlu Zy0+cGl4X2Nsa18xMDBoeiAvIDEwOwogCWNudGwubGFuZXNfbnVtYmVyID0gTEFORV9DT1VOVF9G T1VSOwogCiAJaWYgKGVuYzExMC0+YmFzZS5icC0+ZnVuY3MtPmVuY29kZXJfY29udHJvbCgKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEwX2h3 X3NlcXVlbmNlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2Ux MTBfaHdfc2VxdWVuY2VyLmMKaW5kZXggZTk0N2NjNS4uOGU5NjFlNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2Vx dWVuY2VyLmMKQEAgLTEwNzQsNyArMTA3NCw3IEBAIHZvaWQgZGNlMTEwX3VuYmxhbmtfc3RyZWFt KHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAKIAkvKiBvbmx5IDMgaXRlbXMgYmVsb3cgYXJl IHVzZWQgYnkgdW5ibGFuayAqLwogCXBhcmFtcy5waXhlbF9jbGtfa2h6ID0KLQkJcGlwZV9jdHgt PnN0cmVhbS0+dGltaW5nLnBpeF9jbGtfa2h6OworCQlwaXBlX2N0eC0+c3RyZWFtLT50aW1pbmcu cGl4X2Nsa18xMDBoeiAvIDEwOwogCXBhcmFtcy5saW5rX3NldHRpbmdzLmxpbmtfcmF0ZSA9IGxp bmtfc2V0dGluZ3MtPmxpbmtfcmF0ZTsKIAogCWlmIChkY19pc19kcF9zaWduYWwocGlwZV9jdHgt PnN0cmVhbS0+c2lnbmFsKSkKQEAgLTExNjAsMjcgKzExNjAsMjcgQEAgc3RhdGljIHZvaWQgYnVp bGRfYXVkaW9fb3V0cHV0KAogCQkJc3RyZWFtLT50aW1pbmcuZmxhZ3MuSU5URVJMQUNFOwogCiAJ YXVkaW9fb3V0cHV0LT5jcnRjX2luZm8ucmVmcmVzaF9yYXRlID0KLQkJKHN0cmVhbS0+dGltaW5n LnBpeF9jbGtfa2h6KjEwMDApLworCQkoc3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBoeioxMDAw MCkvCiAJCShzdHJlYW0tPnRpbWluZy5oX3RvdGFsKnN0cmVhbS0+dGltaW5nLnZfdG90YWwpOwog CiAJYXVkaW9fb3V0cHV0LT5jcnRjX2luZm8uY29sb3JfZGVwdGggPQogCQlzdHJlYW0tPnRpbWlu Zy5kaXNwbGF5X2NvbG9yX2RlcHRoOwogCiAJYXVkaW9fb3V0cHV0LT5jcnRjX2luZm8ucmVxdWVz dGVkX3BpeGVsX2Nsb2NrID0KLQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnBpeF9jbGtfcGFyYW1z LnJlcXVlc3RlZF9waXhfY2xrOworCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMucGl4X2Nsa19wYXJh bXMucmVxdWVzdGVkX3BpeF9jbGtfMTAwaHogLyAxMDsKIAogCWF1ZGlvX291dHB1dC0+Y3J0Y19p bmZvLmNhbGN1bGF0ZWRfcGl4ZWxfY2xvY2sgPQotCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMucGl4 X2Nsa19wYXJhbXMucmVxdWVzdGVkX3BpeF9jbGs7CisJCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5w aXhfY2xrX3BhcmFtcy5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoeiAvIDEwOwogCiAvKmZvciBIRE1J LCBhdWRpbyBBQ1IgaXMgd2l0aCBkZWVwIGNvbG9yIHJhdGlvIGZhY3RvciovCiAJaWYgKGRjX2lz X2hkbWlfc2lnbmFsKHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbCkgJiYKIAkJYXVkaW9fb3V0cHV0 LT5jcnRjX2luZm8ucmVxdWVzdGVkX3BpeGVsX2Nsb2NrID09Ci0JCQkJc3RyZWFtLT50aW1pbmcu cGl4X2Nsa19raHopIHsKKwkJCQkoc3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBoeiAvIDEwKSkg ewogCQlpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMucGl4X2Nsa19wYXJhbXMucGl4ZWxfZW5jb2Rp bmcgPT0gUElYRUxfRU5DT0RJTkdfWUNCQ1I0MjApIHsKIAkJCWF1ZGlvX291dHB1dC0+Y3J0Y19p bmZvLnJlcXVlc3RlZF9waXhlbF9jbG9jayA9CiAJCQkJCWF1ZGlvX291dHB1dC0+Y3J0Y19pbmZv LnJlcXVlc3RlZF9waXhlbF9jbG9jay8yOwogCQkJYXVkaW9fb3V0cHV0LT5jcnRjX2luZm8uY2Fs Y3VsYXRlZF9waXhlbF9jbG9jayA9Ci0JCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnBpeF9jbGtf cGFyYW1zLnJlcXVlc3RlZF9waXhfY2xrLzI7CisJCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnBp eF9jbGtfcGFyYW1zLnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6LzIwOwogCiAJCX0KIAl9CkBAIC0x NjIxLDggKzE2MjEsOCBAQCBzdGF0aWMgdWludDMyX3QgY29tcHV0ZV9wc3RhdGVfYmxhY2tvdXRf ZHVyYXRpb24oCiAJcHN0YXRlX2JsYWNrb3V0X2R1cmF0aW9uX25zID0gMTAwMCAqIGJsYWNrb3V0 X2R1cmF0aW9uLnZhbHVlID4+IDI0OwogCiAJdG90YWxfZGVzdF9saW5lX3RpbWVfbnMgPSAxMDAw MDAwVUwgKgotCQlzdHJlYW0tPnRpbWluZy5oX3RvdGFsIC8KLQkJc3RyZWFtLT50aW1pbmcucGl4 X2Nsa19raHogKworCQkoc3RyZWFtLT50aW1pbmcuaF90b3RhbCAqIDEwKSAvCisJCXN0cmVhbS0+ dGltaW5nLnBpeF9jbGtfMTAwaHogKwogCQlwc3RhdGVfYmxhY2tvdXRfZHVyYXRpb25fbnM7CiAK IAlyZXR1cm4gdG90YWxfZGVzdF9saW5lX3RpbWVfbnM7CkBAIC0yNTY3LDcgKzI1NjcsNyBAQCBz dGF0aWMgdm9pZCBkY2UxMTBfYXBwbHlfY3R4X2Zvcl9zdXJmYWNlKAogCQkJCXBpcGVfY3R4LT5w bGFuZV9yZXMubWksCiAJCQkJcGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nLmhfdG90YWwsCiAJCQkJ cGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nLnZfdG90YWwsCi0JCQkJcGlwZV9jdHgtPnN0cmVhbS0+ dGltaW5nLnBpeF9jbGtfa2h6LAorCQkJCXBpcGVfY3R4LT5zdHJlYW0tPnRpbWluZy5waXhfY2xr XzEwMGh6IC8gMTAsCiAJCQkJY29udGV4dC0+c3RyZWFtX2NvdW50KTsKIAogCQlkY2UxMTBfcHJv Z3JhbV9mcm9udF9lbmRfZm9yX3BpcGUoZGMsIHBpcGVfY3R4KTsKQEAgLTI2MjIsNyArMjYyMiw3 IEBAIHZvaWQgZGNlMTEwX3NldF9jdXJzb3JfcG9zaXRpb24oc3RydWN0IHBpcGVfY3R4ICpwaXBl X2N0eCkKIAlzdHJ1Y3QgaW5wdXRfcGl4ZWxfcHJvY2Vzc29yICppcHAgPSBwaXBlX2N0eC0+cGxh bmVfcmVzLmlwcDsKIAlzdHJ1Y3QgbWVtX2lucHV0ICptaSA9IHBpcGVfY3R4LT5wbGFuZV9yZXMu bWk7CiAJc3RydWN0IGRjX2N1cnNvcl9taV9wYXJhbSBwYXJhbSA9IHsKLQkJLnBpeGVsX2Nsa19r aHogPSBwaXBlX2N0eC0+c3RyZWFtLT50aW1pbmcucGl4X2Nsa19raHosCisJCS5waXhlbF9jbGtf a2h6ID0gcGlwZV9jdHgtPnN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHogLyAxMCwKIAkJLnJl Zl9jbGtfa2h6ID0gcGlwZV9jdHgtPnN0cmVhbS0+Y3R4LT5kYy0+cmVzX3Bvb2wtPnJlZl9jbG9j a19pbktoeiwKIAkJLnZpZXdwb3J0ID0gcGlwZV9jdHgtPnBsYW5lX3Jlcy5zY2xfZGF0YS52aWV3 cG9ydCwKIAkJLmhfc2NhbGVfcmF0aW8gPSBwaXBlX2N0eC0+cGxhbmVfcmVzLnNjbF9kYXRhLnJh dGlvcy5ob3J6LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Rj ZTExMC9kY2UxMTBfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9k Y2UxMTAvZGNlMTEwX3Jlc291cmNlLmMKaW5kZXggM2M5ODliOC4uM2MyN2MzMSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfcmVzb3VyY2Uu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9yZXNv dXJjZS5jCkBAIC03NzksNyArNzc5LDcgQEAgc3RhdGljIHZvaWQgZ2V0X3BpeGVsX2Nsb2NrX3Bh cmFtZXRlcnMoCiAJICogdGhlIHBpeGVsIGNsb2NrIG5vcm1hbGl6YXRpb24gZm9yIGhkbWkgdXAg dG8gaGVyZSBpbnN0ZWFkIG9mIGRvaW5nIGl0CiAJICogaW4gcGxsX2FkanVzdF9waXhfY2xrCiAJ ICovCi0JcGl4ZWxfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGsgPSBzdHJlYW0tPnRpbWlu Zy5waXhfY2xrX2toejsKKwlwaXhlbF9jbGtfcGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBo eiA9IHN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHo7CiAJcGl4ZWxfY2xrX3BhcmFtcy0+ZW5j b2Rlcl9vYmplY3RfaWQgPSBzdHJlYW0tPmxpbmstPmxpbmtfZW5jLT5pZDsKIAlwaXhlbF9jbGtf cGFyYW1zLT5zaWduYWxfdHlwZSA9IHBpcGVfY3R4LT5zdHJlYW0tPnNpZ25hbDsKIAlwaXhlbF9j bGtfcGFyYW1zLT5jb250cm9sbGVyX2lkID0gcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmluc3Qg KyAxOwpAQCAtNzk3LDEwICs3OTcsMTAgQEAgc3RhdGljIHZvaWQgZ2V0X3BpeGVsX2Nsb2NrX3Bh cmFtZXRlcnMoCiAJCXBpeGVsX2Nsa19wYXJhbXMtPmNvbG9yX2RlcHRoID0gQ09MT1JfREVQVEhf ODg4OwogCX0KIAlpZiAoc3RyZWFtLT50aW1pbmcucGl4ZWxfZW5jb2RpbmcgPT0gUElYRUxfRU5D T0RJTkdfWUNCQ1I0MjApIHsKLQkJcGl4ZWxfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGsg ID0gcGl4ZWxfY2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGsgLyAyOworCQlwaXhlbF9jbGtf cGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2Nsa18xMDBoeiAgPSBwaXhlbF9jbGtfcGFyYW1zLT5yZXF1 ZXN0ZWRfcGl4X2Nsa18xMDBoeiAvIDI7CiAJfQogCWlmIChzdHJlYW0tPnRpbWluZy50aW1pbmdf M2RfZm9ybWF0ID09IFRJTUlOR18zRF9GT1JNQVRfSFdfRlJBTUVfUEFDS0lORykKLQkJcGl4ZWxf Y2xrX3BhcmFtcy0+cmVxdWVzdGVkX3BpeF9jbGsgKj0gMjsKKwkJcGl4ZWxfY2xrX3BhcmFtcy0+ cmVxdWVzdGVkX3BpeF9jbGtfMTAwaHogKj0gMjsKIAogfQogCkBAIC04NzQsNyArODc0LDcgQEAg c3RhdGljIGJvb2wgZGNlMTEwX3ZhbGlkYXRlX2JhbmR3aWR0aCgKIAkJCV9fZnVuY19fLAogCQkJ Y29udGV4dC0+c3RyZWFtc1swXS0+dGltaW5nLmhfYWRkcmVzc2FibGUsCiAJCQljb250ZXh0LT5z dHJlYW1zWzBdLT50aW1pbmcudl9hZGRyZXNzYWJsZSwKLQkJCWNvbnRleHQtPnN0cmVhbXNbMF0t PnRpbWluZy5waXhfY2xrX2toeik7CisJCQljb250ZXh0LT5zdHJlYW1zWzBdLT50aW1pbmcucGl4 X2Nsa18xMDBoeiAvIDEwKTsKIAogCWlmIChtZW1jbXAoJmRjLT5jdXJyZW50X3N0YXRlLT5idy5k Y2UsCiAJCQkmY29udGV4dC0+YncuZGNlLCBzaXplb2YoY29udGV4dC0+YncuZGNlKSkpIHsKQEAg LTEwNTUsNyArMTA1NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGlwZV9jdHggKmRjZTExMF9hY3F1aXJl X3VuZGVybGF5KAogCQlwaXBlX2N0eC0+cGxhbmVfcmVzLm1pLT5mdW5jcy0+YWxsb2NhdGVfbWVt X2lucHV0KHBpcGVfY3R4LT5wbGFuZV9yZXMubWksCiAJCQkJc3RyZWFtLT50aW1pbmcuaF90b3Rh bCwKIAkJCQlzdHJlYW0tPnRpbWluZy52X3RvdGFsLAotCQkJCXN0cmVhbS0+dGltaW5nLnBpeF9j bGtfa2h6LAorCQkJCXN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHogLyAxMCwKIAkJCQljb250 ZXh0LT5zdHJlYW1fY291bnQpOwogCiAJCWNvbG9yX3NwYWNlX3RvX2JsYWNrX2NvbG9yKGRjLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTgwL2RjZTgwX3Rp bWluZ19nZW5lcmF0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2U4MC9k Y2U4MF90aW1pbmdfZ2VuZXJhdG9yLmMKaW5kZXggM2JhNDcxMi4uNWM2MjlhZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTgwL2RjZTgwX3RpbWluZ19nZW5l cmF0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlODAvZGNlODBf dGltaW5nX2dlbmVyYXRvci5jCkBAIC04NCwxNyArODQsMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBkY2UxMTBfdGltaW5nX2dlbmVyYXRvcl9vZmZzZXRzIHJlZ19vZmZzZXRzW10gPSB7CiAjZGVm aW5lIERDUF9SRUcocmVnKSAocmVnICsgdGcxMTAtPm9mZnNldHMuZGNwKQogI2RlZmluZSBETUlG X1JFRyhyZWcpIChyZWcgKyB0ZzExMC0+b2Zmc2V0cy5kbWlmKQogCi1zdGF0aWMgdm9pZCBwcm9n cmFtX3BpeF9kdXIoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCB1aW50MzJfdCBwaXhfY2xr X2toeikKK3N0YXRpYyB2b2lkIHByb2dyYW1fcGl4X2R1cihzdHJ1Y3QgdGltaW5nX2dlbmVyYXRv ciAqdGcsIHVpbnQzMl90IHBpeF9jbGtfMTAwaHopCiB7CiAJdWludDY0X3QgcGl4X2R1cjsKIAl1 aW50MzJfdCBhZGRyID0gbW1ETUlGX1BHMF9EUEdfUElQRV9BUkJJVFJBVElPTl9DT05UUk9MMQog CQkJCQkrIERDRTExMFRHX0ZST01fVEcodGcpLT5vZmZzZXRzLmRtaWY7CiAJdWludDMyX3QgdmFs dWUgPSBkbV9yZWFkX3JlZyh0Zy0+Y3R4LCBhZGRyKTsKIAotCWlmIChwaXhfY2xrX2toeiA9PSAw KQorCWlmIChwaXhfY2xrXzEwMGh6ID09IDApCiAJCXJldHVybjsKIAotCXBpeF9kdXIgPSAxMDAw MDAwMDAwIC8gcGl4X2Nsa19raHo7CisJcGl4X2R1ciA9IDEwMDAwMDAwMDAwdWxsIC8gcGl4X2Ns a18xMDBoejsKIAogCXNldF9yZWdfZmllbGRfdmFsdWUoCiAJCXZhbHVlLApAQCAtMTEwLDcgKzEx MCw3IEBAIHN0YXRpYyB2b2lkIHByb2dyYW1fdGltaW5nKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9y ICp0ZywKIAlib29sIHVzZV92YmlvcykKIHsKIAlpZiAoIXVzZV92YmlvcykKLQkJcHJvZ3JhbV9w aXhfZHVyKHRnLCB0aW1pbmctPnBpeF9jbGtfa2h6KTsKKwkJcHJvZ3JhbV9waXhfZHVyKHRnLCB0 aW1pbmctPnBpeF9jbGtfMTAwaHopOwogCiAJZGNlMTEwX3RnX3Byb2dyYW1fdGltaW5nKHRnLCB0 aW1pbmcsIHVzZV92Ymlvcyk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyLmMKaW5kZXggNjEzMjkzZC4uMDVj NjE1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2Rj bjEwX2h3X3NlcXVlbmNlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9k Y24xMC9kY24xMF9od19zZXF1ZW5jZXIuYwpAQCAtMjY1NSw3ICsyNjU1LDcgQEAgc3RhdGljIHZv aWQgZGNuMTBfc2V0X2N1cnNvcl9wb3NpdGlvbihzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQog CXN0cnVjdCBodWJwICpodWJwID0gcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwOwogCXN0cnVjdCBk cHAgKmRwcCA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwOwogCXN0cnVjdCBkY19jdXJzb3JfbWlf cGFyYW0gcGFyYW0gPSB7Ci0JCS5waXhlbF9jbGtfa2h6ID0gcGlwZV9jdHgtPnN0cmVhbS0+dGlt aW5nLnBpeF9jbGtfa2h6LAorCQkucGl4ZWxfY2xrX2toeiA9IHBpcGVfY3R4LT5zdHJlYW0tPnRp bWluZy5waXhfY2xrXzEwMGh6IC8gMTAsCiAJCS5yZWZfY2xrX2toeiA9IHBpcGVfY3R4LT5zdHJl YW0tPmN0eC0+ZGMtPnJlc19wb29sLT5yZWZfY2xvY2tfaW5LaHosCiAJCS52aWV3cG9ydCA9IHBp cGVfY3R4LT5wbGFuZV9yZXMuc2NsX2RhdGEudmlld3BvcnQsCiAJCS5oX3NjYWxlX3JhdGlvID0g cGlwZV9jdHgtPnBsYW5lX3Jlcy5zY2xfZGF0YS5yYXRpb3MuaG9yeiwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXJfZGVi dWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1 ZW5jZXJfZGVidWcuYwppbmRleCBhZTRmZDVlLi4xOWQxNWVjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyX2RlYnVnLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVl bmNlcl9kZWJ1Zy5jCkBAIC00MjksNyArNDI5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkY24x MF9nZXRfb3RnX3N0YXRlcyhzdHJ1Y3QgZGMgKmRjLCBjaGFyICpwQnVmLCB1bnNpZ25lZCBpbnQK IAkJaW50IHBpeF9jbGsgPSAwOwogCiAJCW9wdGMxX3JlYWRfb3RnX3N0YXRlKERDTjEwVEdfRlJP TV9URyh0ZyksICZzKTsKLQkJcGl4X2NsayA9IGRjLT5jdXJyZW50X3N0YXRlLT5yZXNfY3R4LnBp cGVfY3R4W2ldLnN0cmVhbV9yZXMucGl4X2Nsa19wYXJhbXMucmVxdWVzdGVkX3BpeF9jbGs7CisJ CXBpeF9jbGsgPSBkYy0+Y3VycmVudF9zdGF0ZS0+cmVzX2N0eC5waXBlX2N0eFtpXS5zdHJlYW1f cmVzLnBpeF9jbGtfcGFyYW1zLnJlcXVlc3RlZF9waXhfY2xrXzEwMGh6IC8gMTA7CiAKIAkJLy9v bmx5IHByaW50IGlmIE9URyBtYXN0ZXIgaXMgZW5hYmxlZAogCQlpZiAocy5vdGdfZW5hYmxlZCAm IDEpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9k Y24xMF9saW5rX2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24x MC9kY24xMF9saW5rX2VuY29kZXIuYwppbmRleCBhZWZlODk3Li5hZjBiY2ZmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfbGlua19lbmNvZGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2xpbmtf ZW5jb2Rlci5jCkBAIC01NDMsMTIgKzU0MywxMiBAQCBib29sIGRjbjEwX2xpbmtfZW5jb2Rlcl92 YWxpZGF0ZV9kdmlfb3V0cHV0KAogCWlmICgoY29ubmVjdG9yX3NpZ25hbCA9PSBTSUdOQUxfVFlQ RV9EVklfU0lOR0xFX0xJTksgfHwKIAkJY29ubmVjdG9yX3NpZ25hbCA9PSBTSUdOQUxfVFlQRV9I RE1JX1RZUEVfQSkgJiYKIAkJc2lnbmFsICE9IFNJR05BTF9UWVBFX0hETUlfVFlQRV9BICYmCi0J CWNydGNfdGltaW5nLT5waXhfY2xrX2toeiA+IFRNRFNfTUFYX1BJWEVMX0NMT0NLKQorCQljcnRj X3RpbWluZy0+cGl4X2Nsa18xMDBoeiA+IChUTURTX01BWF9QSVhFTF9DTE9DSyAqIDEwKSkKIAkJ cmV0dXJuIGZhbHNlOwotCWlmIChjcnRjX3RpbWluZy0+cGl4X2Nsa19raHogPCBUTURTX01JTl9Q SVhFTF9DTE9DSykKKwlpZiAoY3J0Y190aW1pbmctPnBpeF9jbGtfMTAwaHogPCAoVE1EU19NSU5f UElYRUxfQ0xPQ0sgKiAxMCkpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChjcnRjX3RpbWluZy0+ cGl4X2Nsa19raHogPiBtYXhfcGl4ZWxfY2xvY2spCisJaWYgKGNydGNfdGltaW5nLT5waXhfY2xr XzEwMGh6ID4gKG1heF9waXhlbF9jbG9jayAqIDEwKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyog RFZJIHN1cHBvcnRzIDYvOGJwcCBzaW5nbGUtbGluayBhbmQgMTAvMTZicHAgZHVhbC1saW5rICov CkBAIC01NzEsNyArNTcxLDcgQEAgYm9vbCBkY24xMF9saW5rX2VuY29kZXJfdmFsaWRhdGVfZHZp X291dHB1dCgKIHN0YXRpYyBib29sIGRjbjEwX2xpbmtfZW5jb2Rlcl92YWxpZGF0ZV9oZG1pX291 dHB1dCgKIAljb25zdCBzdHJ1Y3QgZGNuMTBfbGlua19lbmNvZGVyICplbmMxMCwKIAljb25zdCBz dHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nLAotCWludCBhZGp1c3RlZF9waXhfY2xr X2toeikKKwlpbnQgYWRqdXN0ZWRfcGl4X2Nsa18xMDBoeikKIHsKIAllbnVtIGRjX2NvbG9yX2Rl cHRoIG1heF9kZWVwX2NvbG9yID0KIAkJCWVuYzEwLT5iYXNlLmZlYXR1cmVzLm1heF9oZG1pX2Rl ZXBfY29sb3I7CkBAIC01ODEsMTEgKzU4MSwxMSBAQCBzdGF0aWMgYm9vbCBkY24xMF9saW5rX2Vu Y29kZXJfdmFsaWRhdGVfaGRtaV9vdXRwdXQoCiAKIAlpZiAoY3J0Y190aW1pbmctPmRpc3BsYXlf Y29sb3JfZGVwdGggPCBDT0xPUl9ERVBUSF84ODgpCiAJCXJldHVybiBmYWxzZTsKLQlpZiAoYWRq dXN0ZWRfcGl4X2Nsa19raHogPCBUTURTX01JTl9QSVhFTF9DTE9DSykKKwlpZiAoYWRqdXN0ZWRf cGl4X2Nsa18xMDBoeiA8IChUTURTX01JTl9QSVhFTF9DTE9DSyAqIDEwKSkKIAkJcmV0dXJuIGZh bHNlOwogCi0JaWYgKChhZGp1c3RlZF9waXhfY2xrX2toeiA9PSAwKSB8fAotCQkoYWRqdXN0ZWRf cGl4X2Nsa19raHogPiBlbmMxMC0+YmFzZS5mZWF0dXJlcy5tYXhfaGRtaV9waXhlbF9jbG9jaykp CisJaWYgKChhZGp1c3RlZF9waXhfY2xrXzEwMGh6ID09IDApIHx8CisJCShhZGp1c3RlZF9waXhf Y2xrXzEwMGh6ID4gKGVuYzEwLT5iYXNlLmZlYXR1cmVzLm1heF9oZG1pX3BpeGVsX2Nsb2NrICog MTApKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogRENFMTEgSFcgZG9lcyBub3Qgc3VwcG9ydCA0 MjAgKi8KQEAgLTU5NCw3ICs1OTQsNyBAQCBzdGF0aWMgYm9vbCBkY24xMF9saW5rX2VuY29kZXJf dmFsaWRhdGVfaGRtaV9vdXRwdXQoCiAJCXJldHVybiBmYWxzZTsKIAogCWlmICghZW5jMTAtPmJh c2UuZmVhdHVyZXMuZmxhZ3MuYml0cy5IRE1JXzZHQl9FTiAmJgotCQlhZGp1c3RlZF9waXhfY2xr X2toeiA+PSAzMDAwMDApCisJCWFkanVzdGVkX3BpeF9jbGtfMTAwaHogPj0gMzAwMDAwMCkKIAkJ cmV0dXJuIGZhbHNlOwogCWlmIChlbmMxMC0+YmFzZS5jdHgtPmRjLT5kZWJ1Zy5oZG1pMjBfZGlz YWJsZSAmJgogCQljcnRjX3RpbWluZy0+cGl4ZWxfZW5jb2RpbmcgPT0gUElYRUxfRU5DT0RJTkdf WUNCQ1I0MjApCkBAIC03NDYsNyArNzQ2LDcgQEAgYm9vbCBkY24xMF9saW5rX2VuY29kZXJfdmFs aWRhdGVfb3V0cHV0X3dpdGhfc3RyZWFtKAogCQlpc192YWxpZCA9IGRjbjEwX2xpbmtfZW5jb2Rl cl92YWxpZGF0ZV9oZG1pX291dHB1dCgKIAkJCQllbmMxMCwKIAkJCQkmc3RyZWFtLT50aW1pbmcs Ci0JCQkJc3RyZWFtLT5waHlfcGl4X2Nsayk7CisJCQkJc3RyZWFtLT5waHlfcGl4X2NsayAqIDEw KTsKIAlicmVhazsKIAljYXNlIFNJR05BTF9UWVBFX0RJU1BMQVlfUE9SVDoKIAljYXNlIFNJR05B TF9UWVBFX0RJU1BMQVlfUE9SVF9NU1Q6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfb3B0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjbjEwL2RjbjEwX29wdGMuYwppbmRleCA1N2QwMGQ2Li5lYjAxOWQ0IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfb3B0Yy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9vcHRjLmMKQEAg LTEyNiw3ICsxMjYsNyBAQCB2b2lkIG9wdGMxX3Byb2dyYW1fdmxpbmVfaW50ZXJydXB0KAogCXN0 cnVjdCBvcHRjICpvcHRjMSA9IERDTjEwVEdfRlJPTV9URyhvcHRjKTsKIAogCXVuc2lnbmVkIGxv bmcgbG9uZyByZXFfZGVsdGFfdGVuc19vZl91c2VjID0gZGl2NjRfdTY0KCh2c3luY19kZWx0YSAr IDk5OTkpLCAxMDAwMCk7Ci0JdW5zaWduZWQgbG9uZyBsb25nIHBpeF9jbGtfaHVuZHJlZHNfa2h6 ID0gZGl2NjRfdTY0KChkY19jcnRjX3RpbWluZy0+cGl4X2Nsa19raHogKyA5OSksIDEwMCk7CisJ dW5zaWduZWQgbG9uZyBsb25nIHBpeF9jbGtfaHVuZHJlZHNfa2h6ID0gZGl2NjRfdTY0KChkY19j cnRjX3RpbWluZy0+cGl4X2Nsa18xMDBoeiArIDk5OSksIDEwMDApOwogCXVpbnQzMl90IHJlcV9k ZWx0YV9saW5lcyA9ICh1aW50MzJfdCkgZGl2NjRfdTY0KAogCQkJKHJlcV9kZWx0YV90ZW5zX29m X3VzZWMgKiBwaXhfY2xrX2h1bmRyZWRzX2toeiArIGRjX2NydGNfdGltaW5nLT5oX3RvdGFsIC0g MSksCiAJCQkJCQkJCWRjX2NydGNfdGltaW5nLT5oX3RvdGFsKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9yZXNvdXJjZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMKaW5kZXggODM0 NDdjZC4uYWRkODRmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2RjbjEwL2RjbjEwX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMKQEAgLTk3NCw3ICs5NzQsNyBAQCBzdGF0aWMgdm9p ZCBnZXRfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycygKIAlzdHJ1Y3QgcGl4ZWxfY2xrX3BhcmFtcyAq cGl4ZWxfY2xrX3BhcmFtcykKIHsKIAljb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJl YW0gPSBwaXBlX2N0eC0+c3RyZWFtOwotCXBpeGVsX2Nsa19wYXJhbXMtPnJlcXVlc3RlZF9waXhf Y2xrID0gc3RyZWFtLT50aW1pbmcucGl4X2Nsa19raHo7CisJcGl4ZWxfY2xrX3BhcmFtcy0+cmVx dWVzdGVkX3BpeF9jbGtfMTAwaHogPSBzdHJlYW0tPnRpbWluZy5waXhfY2xrXzEwMGh6OwogCXBp eGVsX2Nsa19wYXJhbXMtPmVuY29kZXJfb2JqZWN0X2lkID0gc3RyZWFtLT5saW5rLT5saW5rX2Vu Yy0+aWQ7CiAJcGl4ZWxfY2xrX3BhcmFtcy0+c2lnbmFsX3R5cGUgPSBwaXBlX2N0eC0+c3RyZWFt LT5zaWduYWw7CiAJcGl4ZWxfY2xrX3BhcmFtcy0+Y29udHJvbGxlcl9pZCA9IHBpcGVfY3R4LT5z dHJlYW1fcmVzLnRnLT5pbnN0ICsgMTsKQEAgLTk5MSw5ICs5OTEsOSBAQCBzdGF0aWMgdm9pZCBn ZXRfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycygKIAkJcGl4ZWxfY2xrX3BhcmFtcy0+Y29sb3JfZGVw dGggPSBDT0xPUl9ERVBUSF84ODg7CiAKIAlpZiAoc3RyZWFtLT50aW1pbmcucGl4ZWxfZW5jb2Rp bmcgPT0gUElYRUxfRU5DT0RJTkdfWUNCQ1I0MjApCi0JCXBpeGVsX2Nsa19wYXJhbXMtPnJlcXVl c3RlZF9waXhfY2xrICAvPSAyOworCQlwaXhlbF9jbGtfcGFyYW1zLT5yZXF1ZXN0ZWRfcGl4X2Ns a18xMDBoeiAgLz0gMjsKIAlpZiAoc3RyZWFtLT50aW1pbmcudGltaW5nXzNkX2Zvcm1hdCA9PSBU SU1JTkdfM0RfRk9STUFUX0hXX0ZSQU1FX1BBQ0tJTkcpCi0JCXBpeGVsX2Nsa19wYXJhbXMtPnJl cXVlc3RlZF9waXhfY2xrICo9IDI7CisJCXBpeGVsX2Nsa19wYXJhbXMtPnJlcXVlc3RlZF9waXhf Y2xrXzEwMGh6ICo9IDI7CiAKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2RjbjEwL2RjbjEwX3N0cmVhbV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfc3RyZWFtX2VuY29kZXIuYwppbmRleCBiOGI1NTI1 Li4wYjBlMDZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNu MTAvZGNuMTBfc3RyZWFtX2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvZGNuMTAvZGNuMTBfc3RyZWFtX2VuY29kZXIuYwpAQCAtNTk0LDcgKzU5NCw3IEBAIHZv aWQgZW5jMV9zdHJlYW1fZW5jb2Rlcl9kdmlfc2V0X3N0cmVhbV9hdHRyaWJ1dGUoCiAJY250bC5z aWduYWwgPSBpc19kdWFsX2xpbmsgPwogCQkJU0lHTkFMX1RZUEVfRFZJX0RVQUxfTElOSyA6IFNJ R05BTF9UWVBFX0RWSV9TSU5HTEVfTElOSzsKIAljbnRsLmVuYWJsZV9kcF9hdWRpbyA9IGZhbHNl OwotCWNudGwucGl4ZWxfY2xvY2sgPSBjcnRjX3RpbWluZy0+cGl4X2Nsa19raHo7CisJY250bC5w aXhlbF9jbG9jayA9IGNydGNfdGltaW5nLT5waXhfY2xrXzEwMGh6IC8gMTA7CiAJY250bC5sYW5l c19udW1iZXIgPSAoaXNfZHVhbF9saW5rKSA/IExBTkVfQ09VTlRfRUlHSFQgOiBMQU5FX0NPVU5U X0ZPVVI7CiAKIAlpZiAoZW5jMS0+YmFzZS5icC0+ZnVuY3MtPmVuY29kZXJfY29udHJvbCgKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvY2xvY2tfc291cmNl LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2Nsb2NrX3NvdXJjZS5oCmlu ZGV4IDQ3ZWY5MDQuLjQzZDFmYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9pbmMvY2xvY2tfc291cmNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaApAQCAtNzgsNyArNzgsNyBAQCBzdHJ1Y3QgY3NkcF9y ZWZfY2xrX2RzX3BhcmFtcyB7CiB9OwogCiBzdHJ1Y3QgcGl4ZWxfY2xrX3BhcmFtcyB7Ci0JdWlu dDMyX3QgcmVxdWVzdGVkX3BpeF9jbGs7IC8qIGluIEtIeiAqLworCXVpbnQzMl90IHJlcXVlc3Rl ZF9waXhfY2xrXzEwMGh6OwogLyo+IFJlcXVlc3RlZCBQaXhlbCBDbG9jawogICogKGJhc2VkIG9u IFZpZGVvIFRpbWluZyBzdGFuZGFyZCB1c2VkIGZvciByZXF1ZXN0ZWQgbW9kZSkqLwogCXVpbnQz Ml90IHJlcXVlc3RlZF9zeW1fY2xrOyAvKiBpbiBLSHogKi8KQEAgLTEwNCw5ICsxMDQsOSBAQCBz dHJ1Y3QgcGl4ZWxfY2xrX3BhcmFtcyB7CiAgKiAgd2l0aCBhY3R1YWxseSBjYWxjdWxhdGVkIENs b2NrIGFuZCByZWZlcmVuY2UgQ3J5c3RhbCBmcmVxdWVuY3kKICAqLwogc3RydWN0IHBsbF9zZXR0 aW5ncyB7Ci0JdWludDMyX3QgYWN0dWFsX3BpeF9jbGs7Ci0JdWludDMyX3QgYWRqdXN0ZWRfcGl4 X2NsazsKLQl1aW50MzJfdCBjYWxjdWxhdGVkX3BpeF9jbGs7CisJdWludDMyX3QgYWN0dWFsX3Bp eF9jbGtfMTAwaHo7CisJdWludDMyX3QgYWRqdXN0ZWRfcGl4X2Nsa18xMDBoejsKKwl1aW50MzJf dCBjYWxjdWxhdGVkX3BpeF9jbGtfMTAwaHo7CiAJdWludDMyX3QgdmNvX2ZyZXE7CiAJdWludDMy X3QgcmVmZXJlbmNlX2ZyZXE7CiAJdWludDMyX3QgcmVmZXJlbmNlX2RpdmlkZXI7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBl cy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfdHlw ZXMuaAppbmRleCBmOGRiZmE1Li5iMTRiM2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2Jpb3NfcGFyc2VyX3R5cGVzLmgKQEAgLTIxMCw4ICsy MTAsOCBAQCBzdHJ1Y3QgYnBfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycyB7CiAJLyogc2lnbmFsX3R5 cGUgLT4gRW5jb2RlciBNb2RlIC0gbmVlZGVkIGJ5IFZCSU9TIEV4ZWMgdGFibGUgKi8KIAllbnVt IHNpZ25hbF90eXBlIHNpZ25hbF90eXBlOwogCS8qIEFkanVzdGVkIFBpeGVsIENsb2NrIChhZnRl ciBWQklPUyBleGVjIHRhYmxlKQotCSAqIHRoYXQgYmVjb21lcyBUYXJnZXQgUGl4ZWwgQ2xvY2sg KEtIeikgKi8KLQl1aW50MzJfdCB0YXJnZXRfcGl4ZWxfY2xvY2s7CisJICogdGhhdCBiZWNvbWVz IFRhcmdldCBQaXhlbCBDbG9jayAoMTAwIEh6IHVuaXRzKSAqLworCXVpbnQzMl90IHRhcmdldF9w aXhlbF9jbG9ja18xMDBoejsKIAkvKiBDYWxjdWxhdGVkIFJlZmVyZW5jZSBkaXZpZGVyIG9mIERp c3BsYXkgUExMICovCiAJdWludDMyX3QgcmVmZXJlbmNlX2RpdmlkZXI7CiAJLyogQ2FsY3VsYXRl ZCBGZWVkYmFjayBkaXZpZGVyIG9mIERpc3BsYXkgUExMICovCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9mcmVlc3luYy9mcmVlc3luYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvZnJlZXN5bmMvZnJlZXN5bmMuYwppbmRleCAx NTQ0ZWQzLi5kOTY3YWMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv bW9kdWxlcy9mcmVlc3luYy9mcmVlc3luYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9tb2R1bGVzL2ZyZWVzeW5jL2ZyZWVzeW5jLmMKQEAgLTEwOCw4ICsxMDgsOCBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IGNhbGNfZHVyYXRpb25faW5fdXNfZnJvbV92X3RvdGFsKAogewogCXVu c2lnbmVkIGludCBkdXJhdGlvbl9pbl91cyA9CiAJCQkodW5zaWduZWQgaW50KShkaXY2NF91NjQo KCh1bnNpZ25lZCBsb25nIGxvbmcpKHZfdG90YWwpCi0JCQkJKiAxMDAwKSAqIHN0cmVhbS0+dGlt aW5nLmhfdG90YWwsCi0JCQkJCXN0cmVhbS0+dGltaW5nLnBpeF9jbGtfa2h6KSk7CisJCQkJKiAx MDAwMCkgKiBzdHJlYW0tPnRpbWluZy5oX3RvdGFsLAorCQkJCQlzdHJlYW0tPnRpbWluZy5waXhf Y2xrXzEwMGh6KSk7CiAKIAlyZXR1cm4gZHVyYXRpb25faW5fdXM7CiB9CkBAIC0xMjYsNyArMTI2 LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBjYWxjX3ZfdG90YWxfZnJvbV9yZWZyZXNoKAogCQkJ CQlyZWZyZXNoX2luX3VoeikpKTsKIAogCXZfdG90YWwgPSBkaXY2NF91NjQoZGl2NjRfdTY0KCgo dW5zaWduZWQgbG9uZyBsb25nKSgKLQkJCWZyYW1lX2R1cmF0aW9uX2luX25zKSAqIHN0cmVhbS0+ dGltaW5nLnBpeF9jbGtfa2h6KSwKKwkJCWZyYW1lX2R1cmF0aW9uX2luX25zKSAqIChzdHJlYW0t PnRpbWluZy5waXhfY2xrXzEwMGh6IC8gMTApKSwKIAkJCXN0cmVhbS0+dGltaW5nLmhfdG90YWwp LCAxMDAwMDAwKTsKIAogCS8qIHZfdG90YWwgY2Fubm90IGJlIGxlc3MgdGhhbiBub21pbmFsICov CkBAIC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBjYWxjX3ZfdG90YWxfZnJv bV9kdXJhdGlvbigKIAkJZHVyYXRpb25faW5fdXMgPSB2cnItPm1heF9kdXJhdGlvbl9pbl91czsK IAogCXZfdG90YWwgPSBkaXY2NF91NjQoZGl2NjRfdTY0KCgodW5zaWduZWQgbG9uZyBsb25nKSgK LQkJCQlkdXJhdGlvbl9pbl91cykgKiBzdHJlYW0tPnRpbWluZy5waXhfY2xrX2toeiksCisJCQkJ ZHVyYXRpb25faW5fdXMpICogKHN0cmVhbS0+dGltaW5nLnBpeF9jbGtfMTAwaHogLyAxMCkpLAog CQkJCXN0cmVhbS0+dGltaW5nLmhfdG90YWwpLCAxMDAwKTsKIAogCS8qIHZfdG90YWwgY2Fubm90 IGJlIGxlc3MgdGhhbiBub21pbmFsICovCkBAIC0yMjcsNyArMjI3LDcgQEAgc3RhdGljIHZvaWQg dXBkYXRlX3ZfdG90YWxfZm9yX3N0YXRpY19yYW1wKAogCX0KIAogCXZfdG90YWwgPSBkaXY2NF91 NjQoZGl2NjRfdTY0KCgodW5zaWduZWQgbG9uZyBsb25nKSgKLQkJCWN1cnJlbnRfZHVyYXRpb25f aW5fdXMpICogc3RyZWFtLT50aW1pbmcucGl4X2Nsa19raHopLAorCQkJY3VycmVudF9kdXJhdGlv bl9pbl91cykgKiAoc3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBoeiAvIDEwKSksCiAJCQkJc3Ry ZWFtLT50aW1pbmcuaF90b3RhbCksIDEwMDApOwogCiAJaW5fb3V0X3Zyci0+YWRqdXN0LnZfdG90 YWxfbWluID0gdl90b3RhbDsKQEAgLTk3Miw3ICs5NzIsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcg bW9kX2ZyZWVzeW5jX2NhbGNfbm9taW5hbF9maWVsZF9yYXRlKAogCXVuc2lnbmVkIGxvbmcgbG9u ZyBub21pbmFsX2ZpZWxkX3JhdGVfaW5fdWh6ID0gMDsKIAogCS8qIENhbGN1bGF0ZSBub21pbmFs IGZpZWxkIHJhdGUgZm9yIHN0cmVhbSAqLwotCW5vbWluYWxfZmllbGRfcmF0ZV9pbl91aHogPSBz dHJlYW0tPnRpbWluZy5waXhfY2xrX2toejsKKwlub21pbmFsX2ZpZWxkX3JhdGVfaW5fdWh6ID0g c3RyZWFtLT50aW1pbmcucGl4X2Nsa18xMDBoeiAvIDEwOwogCW5vbWluYWxfZmllbGRfcmF0ZV9p bl91aHogKj0gMTAwMFVMTCAqIDEwMDBVTEwgKiAxMDAwVUxMOwogCW5vbWluYWxfZmllbGRfcmF0 ZV9pbl91aHogPSBkaXZfdTY0KG5vbWluYWxfZmllbGRfcmF0ZV9pbl91aHosCiAJCQkJCQlzdHJl YW0tPnRpbWluZy5oX3RvdGFsKTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2FtZC1nZngK