From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932106AbbHBAxS (ORCPT ); Sat, 1 Aug 2015 20:53:18 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:36927 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751931AbbHBAxJ (ORCPT ); Sat, 1 Aug 2015 20:53:09 -0400 Message-ID: <1438476773.3225.50.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 000/164] 3.2.70-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: torvalds@linux-foundation.org, Guenter Roeck , Phil Jensen , akpm@linux-foundation.org Date: Sun, 02 Aug 2015 01:52:53 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-kMK4fgGf6YA1fvy6iyFp" X-Mailer: Evolution 3.16.3-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.249 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-kMK4fgGf6YA1fvy6iyFp Content-Type: multipart/mixed; boundary="=-97LK3R2aAPHGT4N+UsR+" --=-97LK3R2aAPHGT4N+UsR+ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.70-rc1 relative to 3.2.69. Ben. --=20 Ben Hutchings In a hierarchy, every employee tends to rise to his level of incompetence. --=-97LK3R2aAPHGT4N+UsR+ Content-Disposition: attachment; filename="linux-3.2.70-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.70-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9yZHMudHh0IGIvRG9jdW1lbnRh dGlvbi9uZXR3b3JraW5nL3Jkcy50eHQKaW5kZXggYzY3MDc3Yy4uZTFhM2Q1OSAxMDA2NDQKLS0t IGEvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3Jkcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9u ZXR3b3JraW5nL3Jkcy50eHQKQEAgLTYyLDExICs2MiwxMCBAQCBTb2NrZXQgSW50ZXJmYWNlCiA9 PT09PT09PT09PT09PT09CiAKICAgQUZfUkRTLCBQRl9SRFMsIFNPTF9SRFMKLSAgICAgICAgVGhl c2UgY29uc3RhbnRzIGhhdmVuJ3QgYmVlbiBhc3NpZ25lZCB5ZXQsIGJlY2F1c2UgUkRTIGlzbid0 IGluCi0gICAgICAgIG1haW5saW5lIHlldC4gQ3VycmVudGx5LCB0aGUga2VybmVsIG1vZHVsZSBh c3NpZ25zIHNvbWUgY29uc3RhbnQKLSAgICAgICAgYW5kIHB1Ymxpc2hlcyBpdCB0byB1c2VyIHNw YWNlIHRocm91Z2ggdHdvIHN5c2N0bCBmaWxlcwotICAgICAgICAgICAgICAgIC9wcm9jL3N5cy9u ZXQvcmRzL3BmX3JkcwotICAgICAgICAgICAgICAgIC9wcm9jL3N5cy9uZXQvcmRzL3NvbF9yZHMK KwlBRl9SRFMgYW5kIFBGX1JEUyBhcmUgdGhlIGRvbWFpbiB0eXBlIHRvIGJlIHVzZWQgd2l0aCBz b2NrZXQoMikKKwl0byBjcmVhdGUgUkRTIHNvY2tldHMuIFNPTF9SRFMgaXMgdGhlIHNvY2tldC1s ZXZlbCB0byBiZSB1c2VkCisJd2l0aCBzZXRzb2Nrb3B0KDIpIGFuZCBnZXRzb2Nrb3B0KDIpIGZv ciBSRFMgc3BlY2lmaWMgc29ja2V0CisJb3B0aW9ucy4KIAogICBmZCA9IHNvY2tldChQRl9SRFMs IFNPQ0tfU0VRUEFDS0VULCAwKTsKICAgICAgICAgVGhpcyBjcmVhdGVzIGEgbmV3LCB1bmJvdW5k IFJEUyBzb2NrZXQuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3BpbmN0cmwudHh0IGIvRG9j dW1lbnRhdGlvbi9waW5jdHJsLnR4dAppbmRleCBiMDRjYjdkLi4wNzRkYTYyIDEwMDY0NAotLS0g YS9Eb2N1bWVudGF0aW9uL3BpbmN0cmwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vcGluY3RybC50 eHQKQEAgLTE2NCw4ICsxNjQsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqZm9vX2dldF9ncm91cF9u YW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKIH0KIAogc3RhdGljIGludCBmb29fZ2V0 X2dyb3VwX3BpbnMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBzZWxlY3Rv ciwKLQkJCSAgICAgICB1bnNpZ25lZCAqKiBjb25zdCBwaW5zLAotCQkJICAgICAgIHVuc2lnbmVk ICogY29uc3QgbnVtX3BpbnMpCisJCQkgICAgICAgY29uc3QgdW5zaWduZWQgKipwaW5zLAorCQkJ ICAgICAgIHVuc2lnbmVkICpudW1fcGlucykKIHsKIAkqcGlucyA9ICh1bnNpZ25lZCAqKSBmb29f Z3JvdXBzW3NlbGVjdG9yXS5waW5zOwogCSpudW1fcGlucyA9IGZvb19ncm91cHNbc2VsZWN0b3Jd Lm51bV9waW5zOwpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCA4MDcxODg4 Li4wZGNiY2IxIDEwMDY0NAotLS0gYS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtMSw3ICsx LDcgQEAKIFZFUlNJT04gPSAzCiBQQVRDSExFVkVMID0gMgotU1VCTEVWRUwgPSA2OQotRVhUUkFW RVJTSU9OID0KK1NVQkxFVkVMID0gNzAKK0VYVFJBVkVSU0lPTiA9IC1yYzEKIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsCiAKICMgKkRPQ1VNRU5UQVRJT04qCmRpZmYgLS1naXQgYS9hcmNo L2FybS9pbmNsdWRlL2FzbS9lbGYuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2VsZi5oCmluZGV4 IDBlOWNlOGQuLmE0YjExODYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2VsZi5o CisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2VsZi5oCkBAIC0xMTYsNyArMTE2LDcgQEAgaW50 IGR1bXBfdGFza19yZWdzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwgZWxmX2dyZWdzZXRfdCAqZWxm cmVncyk7CiAgICB0aGUgbG9hZGVyLiAgV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBpdCBpcyBv dXQgb2YgdGhlIHdheSBvZiB0aGUgcHJvZ3JhbQogICAgdGhhdCBpdCB3aWxsICJleGVjIiwgYW5k IHRoYXQgdGhlcmUgaXMgc3VmZmljaWVudCByb29tIGZvciB0aGUgYnJrLiAgKi8KIAotI2RlZmlu ZSBFTEZfRVRfRFlOX0JBU0UJKDIgKiBUQVNLX1NJWkUgLyAzKQorI2RlZmluZSBFTEZfRVRfRFlO X0JBU0UJKFRBU0tfU0laRSAvIDMgKiAyKQogCiAvKiBXaGVuIHRoZSBwcm9ncmFtIHN0YXJ0cywg YTEgY29udGFpbnMgYSBwb2ludGVyIHRvIGEgZnVuY3Rpb24gdG8gYmUgCiAgICByZWdpc3RlcmVk IHdpdGggYXRleGl0LCBhcyBwZXIgdGhlIFNWUjQgQUJJLiAgQSB2YWx1ZSBvZiAwIG1lYW5zIHdl IApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2NhY2hlZmx1c2guaCBiL2FyY2gv bWlwcy9pbmNsdWRlL2FzbS9jYWNoZWZsdXNoLmgKaW5kZXggNjk0NjhkZS4uNDg0YzViYyAxMDA2 NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2NhY2hlZmx1c2guaAorKysgYi9hcmNoL21p cHMvaW5jbHVkZS9hc20vY2FjaGVmbHVzaC5oCkBAIC0yOSw2ICsyOSwyMCBAQAogICogIC0gZmx1 c2hfaWNhY2hlX2FsbCgpIGZsdXNoIHRoZSBlbnRpcmUgaW5zdHJ1Y3Rpb24gY2FjaGUKICAqICAt IGZsdXNoX2RhdGFfY2FjaGVfcGFnZSgpIGZsdXNoZXMgYSBwYWdlIGZyb20gdGhlIGRhdGEgY2Fj aGUKICAqLworCisgLyoKKyAqIFRoaXMgZmxhZyBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQgdGhl IHBhZ2UgcG9pbnRlZCB0byBieSBhIHB0ZQorICogaXMgZGlydHkgYW5kIHJlcXVpcmVzIGNsZWFu aW5nIGJlZm9yZSByZXR1cm5pbmcgaXQgdG8gdGhlIHVzZXIuCisgKi8KKyNkZWZpbmUgUEdfZGNh Y2hlX2RpcnR5CQkJUEdfYXJjaF8xCisKKyNkZWZpbmUgUGFnZV9kY2FjaGVfZGlydHkocGFnZSkJ CVwKKwl0ZXN0X2JpdChQR19kY2FjaGVfZGlydHksICYocGFnZSktPmZsYWdzKQorI2RlZmluZSBT ZXRQYWdlRGNhY2hlRGlydHkocGFnZSkJXAorCXNldF9iaXQoUEdfZGNhY2hlX2RpcnR5LCAmKHBh Z2UpLT5mbGFncykKKyNkZWZpbmUgQ2xlYXJQYWdlRGNhY2hlRGlydHkocGFnZSkJXAorCWNsZWFy X2JpdChQR19kY2FjaGVfZGlydHksICYocGFnZSktPmZsYWdzKQorCiBleHRlcm4gdm9pZCAoKmZs dXNoX2NhY2hlX2FsbCkodm9pZCk7CiBleHRlcm4gdm9pZCAoKl9fZmx1c2hfY2FjaGVfYWxsKSh2 b2lkKTsKIGV4dGVybiB2b2lkICgqZmx1c2hfY2FjaGVfbW0pKHN0cnVjdCBtbV9zdHJ1Y3QgKm1t KTsKQEAgLTM3LDEzICs1MSwxNSBAQCBleHRlcm4gdm9pZCAoKmZsdXNoX2NhY2hlX3JhbmdlKShz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25l ZCBsb25nIGVuZCk7CiBleHRlcm4gdm9pZCAoKmZsdXNoX2NhY2hlX3BhZ2UpKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHBhZ2UsIHVuc2lnbmVkIGxvbmcgcGZuKTsK IGV4dGVybiB2b2lkIF9fZmx1c2hfZGNhY2hlX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOworZXh0 ZXJuIHZvaWQgX19mbHVzaF9pY2FjaGVfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwg c3RydWN0IHBhZ2UgKnBhZ2UpOwogCiAjZGVmaW5lIEFSQ0hfSU1QTEVNRU5UU19GTFVTSF9EQ0FD SEVfUEFHRSAxCiBzdGF0aWMgaW5saW5lIHZvaWQgZmx1c2hfZGNhY2hlX3BhZ2Uoc3RydWN0IHBh Z2UgKnBhZ2UpCiB7Ci0JaWYgKGNwdV9oYXNfZGNfYWxpYXNlcyB8fCAhY3B1X2hhc19pY19maWxs c19mX2RjKQorCWlmIChjcHVfaGFzX2RjX2FsaWFzZXMpCiAJCV9fZmx1c2hfZGNhY2hlX3BhZ2Uo cGFnZSk7Ci0KKwllbHNlIGlmICghY3B1X2hhc19pY19maWxsc19mX2RjKQorCQlTZXRQYWdlRGNh Y2hlRGlydHkocGFnZSk7CiB9CiAKICNkZWZpbmUgZmx1c2hfZGNhY2hlX21tYXBfbG9jayhtYXBw aW5nKQkJZG8geyB9IHdoaWxlICgwKQpAQCAtNjEsNiArNzcsMTEgQEAgc3RhdGljIGlubGluZSB2 b2lkIGZsdXNoX2Fub25fcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIHN0YXRpYyBp bmxpbmUgdm9pZCBmbHVzaF9pY2FjaGVfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwK IAlzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsKKwlpZiAoIWNwdV9oYXNfaWNfZmlsbHNfZl9kYyAmJiAo dm1hLT52bV9mbGFncyAmIFZNX0VYRUMpICYmCisJICAgIFBhZ2VfZGNhY2hlX2RpcnR5KHBhZ2Up KSB7CisJCV9fZmx1c2hfaWNhY2hlX3BhZ2Uodm1hLCBwYWdlKTsKKwkJQ2xlYXJQYWdlRGNhY2hl RGlydHkocGFnZSk7CisJfQogfQogCiBleHRlcm4gdm9pZCAoKmZsdXNoX2ljYWNoZV9yYW5nZSko dW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwpAQCAtOTUsMTkgKzExNiw2 IEBAIGV4dGVybiB2b2lkICgqZmx1c2hfaWNhY2hlX2FsbCkodm9pZCk7CiBleHRlcm4gdm9pZCAo KmxvY2FsX2ZsdXNoX2RhdGFfY2FjaGVfcGFnZSkodm9pZCAqIGFkZHIpOwogZXh0ZXJuIHZvaWQg KCpmbHVzaF9kYXRhX2NhY2hlX3BhZ2UpKHVuc2lnbmVkIGxvbmcgYWRkcik7CiAKLS8qCi0gKiBU aGlzIGZsYWcgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBwYWdlIHBvaW50ZWQgdG8gYnkg YSBwdGUKLSAqIGlzIGRpcnR5IGFuZCByZXF1aXJlcyBjbGVhbmluZyBiZWZvcmUgcmV0dXJuaW5n IGl0IHRvIHRoZSB1c2VyLgotICovCi0jZGVmaW5lIFBHX2RjYWNoZV9kaXJ0eQkJCVBHX2FyY2hf MQotCi0jZGVmaW5lIFBhZ2VfZGNhY2hlX2RpcnR5KHBhZ2UpCQlcCi0JdGVzdF9iaXQoUEdfZGNh Y2hlX2RpcnR5LCAmKHBhZ2UpLT5mbGFncykKLSNkZWZpbmUgU2V0UGFnZURjYWNoZURpcnR5KHBh Z2UpCVwKLQlzZXRfYml0KFBHX2RjYWNoZV9kaXJ0eSwgJihwYWdlKS0+ZmxhZ3MpCi0jZGVmaW5l IENsZWFyUGFnZURjYWNoZURpcnR5KHBhZ2UpCVwKLQljbGVhcl9iaXQoUEdfZGNhY2hlX2RpcnR5 LCAmKHBhZ2UpLT5mbGFncykKLQogLyogUnVuIGtlcm5lbCBjb2RlIHVuY2FjaGVkLCB1c2VmdWwg Zm9yIGNhY2hlIHByb2JpbmcgZnVuY3Rpb25zLiAqLwogdW5zaWduZWQgbG9uZyBydW5fdW5jYWNo ZWQodm9pZCAqZnVuYyk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9jcHUt ZmVhdHVyZXMuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9jcHUtZmVhdHVyZXMuaAppbmRleCBj YTQwMGY3Li4wZjQ5OTFiIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vY3B1LWZl YXR1cmVzLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2NwdS1mZWF0dXJlcy5oCkBAIC0x NTMsOCArMTUzLDMyIEBACiAjZGVmaW5lIGNwdV9oYXNfbWlwc19yCShjcHVfaGFzX21pcHMzMnIx IHwgY3B1X2hhc19taXBzMzJyMiB8IFwKIAkJCSBjcHVfaGFzX21pcHM2NHIxIHwgY3B1X2hhc19t aXBzNjRyMikKIAorLyoKKyAqIGNwdV9oYXNfbWlwc19yMl9leGVjX2hhemFyZCAtIHJldHVybiBp ZiBJSEIgaXMgcmVxdWlyZWQgb24gY3VycmVudCBwcm9jZXNzb3IKKyAqCisgKiBSZXR1cm5zIG5v bi16ZXJvIHZhbHVlIGlmIHRoZSBjdXJyZW50IHByb2Nlc3NvciBpbXBsZW1lbnRhdGlvbiByZXF1 aXJlcworICogYW4gSUhCIGluc3RydWN0aW9uIHRvIGRlYWwgd2l0aCBhbiBpbnN0cnVjdGlvbiBo YXphcmQgYXMgcGVyIE1JUFMgUjIKKyAqIGFyY2hpdGVjdHVyZSBzcGVjaWZpY2F0aW9uLCB6ZXJv IG90aGVyd2lzZS4KKyAqLwogI2lmbmRlZiBjcHVfaGFzX21pcHNfcjJfZXhlY19oYXphcmQKLSNk ZWZpbmUgY3B1X2hhc19taXBzX3IyX2V4ZWNfaGF6YXJkIGNwdV9oYXNfbWlwc19yMgorI2RlZmlu ZSBjcHVfaGFzX21pcHNfcjJfZXhlY19oYXphcmQJCQkJCVwKKyh7CQkJCQkJCQkJXAorCWludCBf X3JlczsJCQkJCQkJXAorCQkJCQkJCQkJXAorCXN3aXRjaCAoY3VycmVudF9jcHVfdHlwZSgpKSB7 CQkJCQlcCisJY2FzZSBDUFVfNzRLOgkJCQkJCQlcCisJY2FzZSBDUFVfQ0FWSVVNX09DVEVPTjoJ CQkJCQlcCisJY2FzZSBDUFVfQ0FWSVVNX09DVEVPTl9QTFVTOgkJCQkJXAorCWNhc2UgQ1BVX0NB VklVTV9PQ1RFT04yOgkJCQkJXAorCQlfX3JlcyA9IDA7CQkJCQkJXAorCQlicmVhazsJCQkJCQkJ XAorCQkJCQkJCQkJXAorCWRlZmF1bHQ6CQkJCQkJCVwKKwkJX19yZXMgPSAxOwkJCQkJCVwKKwl9 CQkJCQkJCQlcCisJCQkJCQkJCQlcCisJX19yZXM7CQkJCQkJCQlcCit9KQogI2VuZGlmCiAKIC8q CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1jYXZpdW0tb2N0ZW9uL2Nw dS1mZWF0dXJlLW92ZXJyaWRlcy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21hY2gtY2F2aXVt LW9jdGVvbi9jcHUtZmVhdHVyZS1vdmVycmlkZXMuaAppbmRleCBhNThhZGRiLi42YWU4ZTNjIDEw MDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbWFjaC1jYXZpdW0tb2N0ZW9uL2NwdS1m ZWF0dXJlLW92ZXJyaWRlcy5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWNhdml1 bS1vY3Rlb24vY3B1LWZlYXR1cmUtb3ZlcnJpZGVzLmgKQEAgLTUxLDcgKzUxLDYgQEAKICNkZWZp bmUgY3B1X2hhc19taXBzMzJyMgkwCiAjZGVmaW5lIGNwdV9oYXNfbWlwczY0cjEJMAogI2RlZmlu ZSBjcHVfaGFzX21pcHM2NHIyCTEKLSNkZWZpbmUgY3B1X2hhc19taXBzX3IyX2V4ZWNfaGF6YXJk IDAKICNkZWZpbmUgY3B1X2hhc19kc3AJCTAKICNkZWZpbmUgY3B1X2hhc19taXBzbXQJCTAKICNk ZWZpbmUgY3B1X2hhc192aW50CQkwCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20v b2N0ZW9uL3BjaS1vY3Rlb24uaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9vY3Rlb24vcGNpLW9j dGVvbi5oCmluZGV4IGZiYTJiYTIuLmFjODMyODMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNs dWRlL2FzbS9vY3Rlb24vcGNpLW9jdGVvbi5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9v Y3Rlb24vcGNpLW9jdGVvbi5oCkBAIC0xMSw5ICsxMSw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9w Y2kuaD4KIAotLyogU29tZSBQQ0kgY2FyZHMgcmVxdWlyZSBkZWxheXMgd2hlbiBhY2Nlc3Npbmcg Y29uZmlnIHNwYWNlLiAqLwotI2RlZmluZSBQQ0lfQ09ORklHX1NQQUNFX0RFTEFZIDEwMDAwCi0K IC8qCiAgKiBUaGUgcGh5c2ljYWwgbWVtb3J5IGJhc2UgbWFwcGVkIGJ5IEJBUjEuICAyNTZNQiBh dCB0aGUgZW5kIG9mIHRoZQogICogZmlyc3QgNEdCLgpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tl cm5lbC9pcnEuYyBiL2FyY2gvbWlwcy9rZXJuZWwvaXJxLmMKaW5kZXggN2Y1MDMxOC4uNmU0ODll NSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9pcnEuYworKysgYi9hcmNoL21pcHMva2Vy bmVsL2lycS5jCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBfX2luaXQgaW5pdF9JUlEodm9pZCkK ICNlbmRpZgogfQogCi0jaWZkZWYgREVCVUdfU1RBQ0tPVkVSRkxPVworI2lmZGVmIENPTkZJR19E RUJVR19TVEFDS09WRVJGTE9XCiBzdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfc3RhY2tfb3ZlcmZs b3codm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHNwOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21t L2NhY2hlLmMgYi9hcmNoL21pcHMvbW0vY2FjaGUuYwppbmRleCA4MjkzMjBjLi4wZjg4MzliIDEw MDY0NAotLS0gYS9hcmNoL21pcHMvbW0vY2FjaGUuYworKysgYi9hcmNoL21pcHMvbW0vY2FjaGUu YwpAQCAtMTE4LDYgKzExOCwxOCBAQCB2b2lkIF9fZmx1c2hfYW5vbl9wYWdlKHN0cnVjdCBwYWdl ICpwYWdlLCB1bnNpZ25lZCBsb25nIHZtYWRkcikKIAogRVhQT1JUX1NZTUJPTChfX2ZsdXNoX2Fu b25fcGFnZSk7CiAKK3ZvaWQgX19mbHVzaF9pY2FjaGVfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UpCit7CisJdW5zaWduZWQgbG9uZyBhZGRyOworCisJ aWYgKFBhZ2VIaWdoTWVtKHBhZ2UpKQorCQlyZXR1cm47CisKKwlhZGRyID0gKHVuc2lnbmVkIGxv bmcpIHBhZ2VfYWRkcmVzcyhwYWdlKTsKKwlmbHVzaF9kYXRhX2NhY2hlX3BhZ2UoYWRkcik7Cit9 CitFWFBPUlRfU1lNQk9MX0dQTChfX2ZsdXNoX2ljYWNoZV9wYWdlKTsKKwogdm9pZCBfX3VwZGF0 ZV9jYWNoZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNz LAogCXB0ZV90IHB0ZSkKIHsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9wY2kvcGNpLW9jdGVvbi5j IGIvYXJjaC9taXBzL3BjaS9wY2ktb2N0ZW9uLmMKaW5kZXggZWQxYzU0Mi4uNjZkM2MzOCAxMDA2 NDQKLS0tIGEvYXJjaC9taXBzL3BjaS9wY2ktb2N0ZW9uLmMKKysrIGIvYXJjaC9taXBzL3BjaS9w Y2ktb2N0ZW9uLmMKQEAgLTI3OSw5ICsyNzksNiBAQCBzdGF0aWMgaW50IG9jdGVvbl9yZWFkX2Nv bmZpZyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiAJcGNpX2FkZHIu cy5mdW5jID0gZGV2Zm4gJiAweDc7CiAJcGNpX2FkZHIucy5yZWcgPSByZWc7CiAKLSNpZiBQQ0lf Q09ORklHX1NQQUNFX0RFTEFZCi0JdWRlbGF5KFBDSV9DT05GSUdfU1BBQ0VfREVMQVkpOwotI2Vu ZGlmCiAJc3dpdGNoIChzaXplKSB7CiAJY2FzZSA0OgogCQkqdmFsID0gbGUzMl90b19jcHUoY3Zt eF9yZWFkNjRfdWludDMyKHBjaV9hZGRyLnU2NCkpOwpAQCAtMzE2LDkgKzMxMyw2IEBAIHN0YXRp YyBpbnQgb2N0ZW9uX3dyaXRlX2NvbmZpZyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBp bnQgZGV2Zm4sCiAJcGNpX2FkZHIucy5mdW5jID0gZGV2Zm4gJiAweDc7CiAJcGNpX2FkZHIucy5y ZWcgPSByZWc7CiAKLSNpZiBQQ0lfQ09ORklHX1NQQUNFX0RFTEFZCi0JdWRlbGF5KFBDSV9DT05G SUdfU1BBQ0VfREVMQVkpOwotI2VuZGlmCiAJc3dpdGNoIChzaXplKSB7CiAJY2FzZSA0OgogCQlj dm14X3dyaXRlNjRfdWludDMyKHBjaV9hZGRyLnU2NCwgY3B1X3RvX2xlMzIodmFsKSk7CmRpZmYg LS1naXQgYS9hcmNoL21pcHMvcGNpL3BjaWUtb2N0ZW9uLmMgYi9hcmNoL21pcHMvcGNpL3BjaWUt b2N0ZW9uLmMKaW5kZXggMDU4M2M0NjMuLjM3YTg3OTAgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9w Y2kvcGNpZS1vY3Rlb24uYworKysgYi9hcmNoL21pcHMvcGNpL3BjaWUtb2N0ZW9uLmMKQEAgLTEy MTksOSArMTIxOSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IG9jdGVvbl9wY2llX3dyaXRlX2NvbmZp ZyhpbnQgcGNpZV9wb3J0LCBzdHJ1Y3QgcGNpX2J1cyAqYnVzLAogCQkJCQlkZXZmbiAmIDB4Nywg cmVnLCB2YWwpOwogCQlyZXR1cm4gUENJQklPU19TVUNDRVNTRlVMOwogCX0KLSNpZiBQQ0lfQ09O RklHX1NQQUNFX0RFTEFZCi0JdWRlbGF5KFBDSV9DT05GSUdfU1BBQ0VfREVMQVkpOwotI2VuZGlm CiAJcmV0dXJuIFBDSUJJT1NfRlVOQ19OT1RfU1VQUE9SVEVEOwogfQogCmRpZmYgLS1naXQgYS9h cmNoL21pcHMvcG93ZXIvaGliZXJuYXRlLlMgYi9hcmNoL21pcHMvcG93ZXIvaGliZXJuYXRlLlMK aW5kZXggNWJmMzRlYy4uMmNhMTczNSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3Bvd2VyL2hpYmVy bmF0ZS5TCisrKyBiL2FyY2gvbWlwcy9wb3dlci9oaWJlcm5hdGUuUwpAQCAtMzEsNiArMzEsOCBA QCBMRUFGKHN3c3VzcF9hcmNoX3N1c3BlbmQpCiBFTkQoc3dzdXNwX2FyY2hfc3VzcGVuZCkKIAog TEVBRihzd3N1c3BfYXJjaF9yZXN1bWUpCisJLyogQXZvaWQgVExCIG1pc21hdGNoIGR1cmluZyBh bmQgYWZ0ZXIga2VybmVsIHJlc3VtZSAqLworCWphbCBsb2NhbF9mbHVzaF90bGJfYWxsCiAJUFRS X0wgdDAsIHJlc3RvcmVfcGJsaXN0CiAwOgogCVBUUl9MIHQxLCBQQkVfQUREUkVTUyh0MCkgICAv KiBzb3VyY2UgKi8KQEAgLTQ0LDcgKzQ2LDYgQEAgTEVBRihzd3N1c3BfYXJjaF9yZXN1bWUpCiAJ Ym5lIHQxLCB0MywgMWIKIAlQVFJfTCB0MCwgUEJFX05FWFQodDApCiAJYm5leiB0MCwgMGIKLQlq YWwgbG9jYWxfZmx1c2hfdGxiX2FsbCAvKiBBdm9pZCBUTEIgbWlzbWF0Y2ggYWZ0ZXIga2VybmVs IHJlc3VtZSAqLwogCVBUUl9MQSB0MCwgc2F2ZWRfcmVncwogCVBUUl9MIHJhLCBQVF9SMzEodDAp CiAJUFRSX0wgc3AsIFBUX1IyOSh0MCkKZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2tlcm5lbC9w YXJpc2Nfa3N5bXMuYyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wYXJpc2Nfa3N5bXMuYwppbmRleCBh N2JiNzU3Li5jM2YxYmU5NSAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3BhcmlzY19r c3ltcy5jCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wYXJpc2Nfa3N5bXMuYwpAQCAtMTIxLDEx ICsxMjEsMTMgQEAgZXh0ZXJuIHZvaWQgX19hc2hyZGkzKHZvaWQpOwogZXh0ZXJuIHZvaWQgX19h c2hsZGkzKHZvaWQpOwogZXh0ZXJuIHZvaWQgX19sc2hyZGkzKHZvaWQpOwogZXh0ZXJuIHZvaWQg X19tdWxkaTModm9pZCk7CitleHRlcm4gdm9pZCBfX3VjbXBkaTIodm9pZCk7CiAKIEVYUE9SVF9T WU1CT0woX19hc2hyZGkzKTsKIEVYUE9SVF9TWU1CT0woX19hc2hsZGkzKTsKIEVYUE9SVF9TWU1C T0woX19sc2hyZGkzKTsKIEVYUE9SVF9TWU1CT0woX19tdWxkaTMpOworRVhQT1JUX1NZTUJPTChf X3VjbXBkaTIpOwogCiBhc21saW5rYWdlIHZvaWQgKiBfX2Nhbm9uaWNhbGl6ZV9mdW5jcHRyX2Zv cl9jb21wYXJlKHZvaWQgKik7CiBFWFBPUlRfU1lNQk9MKF9fY2Fub25pY2FsaXplX2Z1bmNwdHJf Zm9yX2NvbXBhcmUpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbGliL01ha2VmaWxlIGIvYXJj aC9wYXJpc2MvbGliL01ha2VmaWxlCmluZGV4IDVmMmU2OTAuLjU2NTE1MzYgMTAwNjQ0Ci0tLSBh L2FyY2gvcGFyaXNjL2xpYi9NYWtlZmlsZQorKysgYi9hcmNoL3BhcmlzYy9saWIvTWFrZWZpbGUK QEAgLTIsNiArMiw3IEBACiAjIE1ha2VmaWxlIGZvciBwYXJpc2Mtc3BlY2lmaWMgbGlicmFyeSBm aWxlcwogIwogCi1saWIteQk6PSBsdXNlcmNvcHkubyBiaXRvcHMubyBjaGVja3N1bS5vIGlvLm8g bWVtc2V0Lm8gZml4dXAubyBtZW1jcHkubworbGliLXkJOj0gbHVzZXJjb3B5Lm8gYml0b3BzLm8g Y2hlY2tzdW0ubyBpby5vIG1lbXNldC5vIGZpeHVwLm8gbWVtY3B5Lm8gXAorCSAgIHVjbXBkaTIu bwogCiBvYmoteQk6PSBpb21hcC5vCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9saWIvdWNtcGRp Mi5jIGIvYXJjaC9wYXJpc2MvbGliL3VjbXBkaTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xNDljMDE2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wYXJpc2MvbGliL3Vj bXBkaTIuYwpAQCAtMCwwICsxLDI1IEBACisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisKK3Vu aW9uIHVsbF91bmlvbiB7CisJdW5zaWduZWQgbG9uZyBsb25nIHVsbDsKKwlzdHJ1Y3QgeworCQl1 bnNpZ25lZCBpbnQgaGlnaDsKKwkJdW5zaWduZWQgaW50IGxvdzsKKwl9IHVpOworfTsKKworaW50 IF9fdWNtcGRpMih1bnNpZ25lZCBsb25nIGxvbmcgYSwgdW5zaWduZWQgbG9uZyBsb25nIGIpCit7 CisJdW5pb24gdWxsX3VuaW9uIGF1ID0gey51bGwgPSBhfTsKKwl1bmlvbiB1bGxfdW5pb24gYnUg PSB7LnVsbCA9IGJ9OworCisJaWYgKGF1LnVpLmhpZ2ggPCBidS51aS5oaWdoKQorCQlyZXR1cm4g MDsKKwllbHNlIGlmIChhdS51aS5oaWdoID4gYnUudWkuaGlnaCkKKwkJcmV0dXJuIDI7CisJaWYg KGF1LnVpLmxvdyA8IGJ1LnVpLmxvdykKKwkJcmV0dXJuIDA7CisJZWxzZSBpZiAoYXUudWkubG93 ID4gYnUudWkubG93KQorCQlyZXR1cm4gMjsKKwlyZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL2Fy Y2gvcG93ZXJwYy9rZXJuZWwvY2FjaGVpbmZvLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2NhY2hl aW5mby5jCmluZGV4IDAyZWJlMWEuLjRmMTU1NjUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9r ZXJuZWwvY2FjaGVpbmZvLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9jYWNoZWluZm8uYwpA QCAtNjIsMTIgKzYyLDIyIEBAIHN0cnVjdCBjYWNoZV90eXBlX2luZm8gewogfTsKIAogLyogVGhl c2UgYXJlIHVzZWQgdG8gaW5kZXggdGhlIGNhY2hlX3R5cGVfaW5mbyBhcnJheS4gKi8KLSNkZWZp bmUgQ0FDSEVfVFlQRV9VTklGSUVEICAgICAwCi0jZGVmaW5lIENBQ0hFX1RZUEVfSU5TVFJVQ1RJ T04gMQotI2RlZmluZSBDQUNIRV9UWVBFX0RBVEEgICAgICAgIDIKKyNkZWZpbmUgQ0FDSEVfVFlQ RV9VTklGSUVEICAgICAwIC8qIGNhY2hlLXNpemUsIGNhY2hlLWJsb2NrLXNpemUsIGV0Yy4gKi8K KyNkZWZpbmUgQ0FDSEVfVFlQRV9VTklGSUVEX0QgICAxIC8qIGQtY2FjaGUtc2l6ZSwgZC1jYWNo ZS1ibG9jay1zaXplLCBldGMgKi8KKyNkZWZpbmUgQ0FDSEVfVFlQRV9JTlNUUlVDVElPTiAyCisj ZGVmaW5lIENBQ0hFX1RZUEVfREFUQSAgICAgICAgMwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGNh Y2hlX3R5cGVfaW5mbyBjYWNoZV90eXBlX2luZm9bXSA9IHsKIAl7CisJCS8qIEVtYmVkZGVkIHN5 c3RlbXMgdGhhdCB1c2UgY2FjaGUtc2l6ZSwgY2FjaGUtYmxvY2stc2l6ZSwKKwkJICogZXRjLiBm b3IgdGhlIFVuaWZpZWQgKHR5cGljYWxseSBMMikgY2FjaGUuICovCisJCS5uYW1lICAgICAgICAg ICAgPSAiVW5pZmllZCIsCisJCS5zaXplX3Byb3AgICAgICAgPSAiY2FjaGUtc2l6ZSIsCisJCS5s aW5lX3NpemVfcHJvcHMgPSB7ICJjYWNoZS1saW5lLXNpemUiLAorCQkJCSAgICAgImNhY2hlLWJs b2NrLXNpemUiLCB9LAorCQkubnJfc2V0c19wcm9wICAgID0gImNhY2hlLXNldHMiLAorCX0sCisJ ewogCQkvKiBQb3dlclBDIFByb2Nlc3NvciBiaW5kaW5nIHNheXMgdGhlIFtkaV0tY2FjaGUtKgog CQkgKiBtdXN0IGJlIGVxdWFsIG9uIHVuaWZpZWQgY2FjaGVzLCBzbyBqdXN0IHVzZQogCQkgKiBk LWNhY2hlIHByb3BlcnRpZXMuICovCkBAIC0yOTMsNyArMzAzLDggQEAgc3RhdGljIHN0cnVjdCBj YWNoZSAqY2FjaGVfZmluZF9maXJzdF9zaWJsaW5nKHN0cnVjdCBjYWNoZSAqY2FjaGUpCiB7CiAJ c3RydWN0IGNhY2hlICppdGVyOwogCi0JaWYgKGNhY2hlLT50eXBlID09IENBQ0hFX1RZUEVfVU5J RklFRCkKKwlpZiAoY2FjaGUtPnR5cGUgPT0gQ0FDSEVfVFlQRV9VTklGSUVEIHx8CisJICAgIGNh Y2hlLT50eXBlID09IENBQ0hFX1RZUEVfVU5JRklFRF9EKQogCQlyZXR1cm4gY2FjaGU7CiAKIAls aXN0X2Zvcl9lYWNoX2VudHJ5KGl0ZXIsICZjYWNoZV9saXN0LCBsaXN0KQpAQCAtMzI0LDE1ICsz MzUsMjkgQEAgc3RhdGljIGJvb2wgY2FjaGVfbm9kZV9pc191bmlmaWVkKGNvbnN0IHN0cnVjdCBk ZXZpY2Vfbm9kZSAqbnApCiAJcmV0dXJuIG9mX2dldF9wcm9wZXJ0eShucCwgImNhY2hlLXVuaWZp ZWQiLCBOVUxMKTsKIH0KIAotc3RhdGljIHN0cnVjdCBjYWNoZSAqX19jcHVpbml0IGNhY2hlX2Rv X29uZV9kZXZub2RlX3VuaWZpZWQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLCBpbnQgbGV2ZWwp CisvKgorICogVW5pZmllZCBjYWNoZXMgY2FuIGhhdmUgdHdvIGRpZmZlcmVudCBzZXRzIG9mIHRh Z3MuICBNb3N0IGVtYmVkZGVkCisgKiB1c2UgY2FjaGUtc2l6ZSwgZXRjLiBmb3IgdGhlIHVuaWZp ZWQgY2FjaGUgc2l6ZSwgYnV0IG9wZW4gZmlybXdhcmUgc3lzdGVtcworICogdXNlIGQtY2FjaGUt c2l6ZSwgZXRjLiAgIENoZWNrIG9uIGluaXRpYWxpemF0aW9uIGZvciB3aGljaCB0eXBlIHdlIGhh dmUsIGFuZAorICogcmV0dXJuIHRoZSBhcHByb3ByaWF0ZSBzdHJ1Y3R1cmUgdHlwZS4gIEFzc3Vt ZSBpdCdzIGVtYmVkZGVkIGlmIGl0IGlzbid0CisgKiBvcGVuIGZpcm13YXJlLiAgSWYgaXQncyB5 ZXQgYSAzcmQgdHlwZSwgdGhlbiB0aGVyZSB3aWxsIGJlIG1pc3NpbmcgZW50cmllcworICogaW4g L3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1MC9jYWNoZS9pbmRleDIvLCBhbmQgdGhpcyBjb2Rl IHdpbGwgbmVlZAorICogdG8gYmUgZXh0ZW5kZWQgZnVydGhlci4KKyAqLworc3RhdGljIGludCBj YWNoZV9pc191bmlmaWVkX2QoY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKLQlzdHJ1 Y3QgY2FjaGUgKmNhY2hlOworCXJldHVybiBvZl9nZXRfcHJvcGVydHkobnAsCisJCWNhY2hlX3R5 cGVfaW5mb1tDQUNIRV9UWVBFX1VOSUZJRURfRF0uc2l6ZV9wcm9wLCBOVUxMKSA/CisJCUNBQ0hF X1RZUEVfVU5JRklFRF9EIDogQ0FDSEVfVFlQRV9VTklGSUVEOworfQogCisvKgorICovCitzdGF0 aWMgc3RydWN0IGNhY2hlICpfX2NwdWluaXQgY2FjaGVfZG9fb25lX2Rldm5vZGVfdW5pZmllZChz dHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsIGludCBsZXZlbCkKK3sKIAlwcl9kZWJ1ZygiY3JlYXRp bmcgTCVkIHVjYWNoZSBmb3IgJXNcbiIsIGxldmVsLCBub2RlLT5mdWxsX25hbWUpOwogCi0JY2Fj aGUgPSBuZXdfY2FjaGUoQ0FDSEVfVFlQRV9VTklGSUVELCBsZXZlbCwgbm9kZSk7Ci0KLQlyZXR1 cm4gY2FjaGU7CisJcmV0dXJuIG5ld19jYWNoZShjYWNoZV9pc191bmlmaWVkX2Qobm9kZSksIGxl dmVsLCBub2RlKTsKIH0KIAogc3RhdGljIHN0cnVjdCBjYWNoZSAqX19jcHVpbml0IGNhY2hlX2Rv X29uZV9kZXZub2RlX3NwbGl0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgaW50IGxldmVsKQpk aWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wZXJmX2NhbGxjaGFpbi5jIGIvYXJjaC9w b3dlcnBjL2tlcm5lbC9wZXJmX2NhbGxjaGFpbi5jCmluZGV4IDU2NGMxZDguLmU4MDAyNmMgMTAw NjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGVyZl9jYWxsY2hhaW4uYworKysgYi9hcmNo L3Bvd2VycGMva2VybmVsL3BlcmZfY2FsbGNoYWluLmMKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0 aWMgdm9pZCBwZXJmX2NhbGxjaGFpbl91c2VyXzY0KHN0cnVjdCBwZXJmX2NhbGxjaGFpbl9lbnRy eSAqZW50cnksCiAJc3AgPSByZWdzLT5ncHJbMV07CiAJcGVyZl9jYWxsY2hhaW5fc3RvcmUoZW50 cnksIG5leHRfaXApOwogCi0JZm9yICg7OykgeworCXdoaWxlIChlbnRyeS0+bnIgPCBQRVJGX01B WF9TVEFDS19ERVBUSCkgewogCQlmcCA9ICh1bnNpZ25lZCBsb25nIF9fdXNlciAqKSBzcDsKIAkJ aWYgKCF2YWxpZF91c2VyX3NwKHNwLCAxKSB8fCByZWFkX3VzZXJfc3RhY2tfNjQoZnAsICZuZXh0 X3NwKSkKIAkJCXJldHVybjsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXAt Y29tbW9uLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwLWNvbW1vbi5jCmluZGV4IDgyMjg4 ZTkuLjgzOTQwZDcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXAtY29tbW9u LmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cC1jb21tb24uYwpAQCAtNDI4LDcgKzQy OCw3IEBAIHZvaWQgX19pbml0IHNtcF9zZXR1cF9jcHVfbWFwcyh2b2lkKQogCURCRygic21wX3Nl dHVwX2NwdV9tYXBzKClcbiIpOwogCiAJd2hpbGUgKChkbiA9IG9mX2ZpbmRfbm9kZV9ieV90eXBl KGRuLCAiY3B1IikpICYmIGNwdSA8IG5yX2NwdV9pZHMpIHsKLQkJY29uc3QgaW50ICppbnRzZXJ2 OworCQljb25zdCBfX2JlMzIgKmludHNlcnY7CiAJCWludCBqLCBsZW47CiAKIAkJREJHKCIgICog JXMuLi5cbiIsIGRuLT5mdWxsX25hbWUpOwpAQCAtNDQ3LDEwICs0NDcsMTggQEAgdm9pZCBfX2lu aXQgc21wX3NldHVwX2NwdV9tYXBzKHZvaWQpCiAJCX0KIAogCQlmb3IgKGogPSAwOyBqIDwgbnRo cmVhZHMgJiYgY3B1IDwgbnJfY3B1X2lkczsgaisrKSB7CisJCQlib29sIGF2YWlsOworCiAJCQlE QkcoIiAgICB0aHJlYWQgJWQgLT4gY3B1ICVkIChoYXJkIGlkICVkKVxuIiwKLQkJCSAgICBqLCBj cHUsIGludHNlcnZbal0pOwotCQkJc2V0X2NwdV9wcmVzZW50KGNwdSwgb2ZfZGV2aWNlX2lzX2F2 YWlsYWJsZShkbikpOwotCQkJc2V0X2hhcmRfc21wX3Byb2Nlc3Nvcl9pZChjcHUsIGludHNlcnZb al0pOworCQkJICAgIGosIGNwdSwgYmUzMl90b19jcHUoaW50c2VydltqXSkpOworCisJCQlhdmFp bCA9IG9mX2RldmljZV9pc19hdmFpbGFibGUoZG4pOworCQkJaWYgKCFhdmFpbCkKKwkJCQlhdmFp bCA9ICFvZl9wcm9wZXJ0eV9tYXRjaF9zdHJpbmcoZG4sCisJCQkJCQkiZW5hYmxlLW1ldGhvZCIs ICJzcGluLXRhYmxlIik7CisKKwkJCXNldF9jcHVfcHJlc2VudChjcHUsIGF2YWlsKTsKKwkJCXNl dF9oYXJkX3NtcF9wcm9jZXNzb3JfaWQoY3B1LCBiZTMyX3RvX2NwdShpbnRzZXJ2W2pdKSk7CiAJ CQlzZXRfY3B1X3Bvc3NpYmxlKGNwdSwgdHJ1ZSk7CiAJCQljcHUrKzsKIAkJfQpkaWZmIC0tZ2l0 IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9wb3dlcnBjL2tlcm5l bC92bWxpbnV4Lmxkcy5TCmluZGV4IDNlOGZlNGIuLmNlYzY2NGEgMTAwNjQ0Ci0tLSBhL2FyY2gv cG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3Zt bGludXgubGRzLlMKQEAgLTIxMiw2ICsyMTIsNyBAQCBTRUNUSU9OUwogCQkqKC5vcGQpCiAJfQog CisJLiA9IEFMSUdOKDI1Nik7CiAJLmdvdCA6IEFUKEFERFIoLmdvdCkgLSBMT0FEX09GRlNFVCkg ewogCQlfX3RvY19zdGFydCA9IC47CiAJCSooLmdvdCkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJw Yy9tbS9tbWFwXzY0LmMgYi9hcmNoL3Bvd2VycGMvbW0vbW1hcF82NC5jCmluZGV4IDVhNzgzZDgu LjY3YTQyZWQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9tbWFwXzY0LmMKKysrIGIvYXJj aC9wb3dlcnBjL21tL21tYXBfNjQuYwpAQCAtNTMsMTQgKzUzLDYgQEAgc3RhdGljIGlubGluZSBp bnQgbW1hcF9pc19sZWdhY3kodm9pZCkKIAlyZXR1cm4gc3lzY3RsX2xlZ2FjeV92YV9sYXlvdXQ7 CiB9CiAKLS8qCi0gKiBTaW5jZSBnZXRfcmFuZG9tX2ludCgpIHJldHVybnMgdGhlIHNhbWUgdmFs dWUgd2l0aGluIGEgMSBqaWZmeSB3aW5kb3csCi0gKiB3ZSB3aWxsIGFsbW9zdCBhbHdheXMgZ2V0 IHRoZSBzYW1lIHJhbmRvbWlzYXRpb24gZm9yIHRoZSBzdGFjayBhbmQgbW1hcAotICogcmVnaW9u LiBUaGlzIHdpbGwgbWVhbiB0aGUgcmVsYXRpdmUgZGlzdGFuY2UgYmV0d2VlbiBzdGFjayBhbmQg bW1hcCB3aWxsCi0gKiBiZSB0aGUgc2FtZS4KLSAqCi0gKiBUbyBhdm9pZCB0aGlzIHdlIGNhbiBz aGlmdCB0aGUgcmFuZG9tbmVzcyBieSAxIGJpdC4KLSAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcg bW1hcF9ybmQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHJuZCA9IDA7CkBAIC02OCwxMSArNjAs MTEgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1hcF9ybmQodm9pZCkKIAlpZiAoY3VycmVudC0+ ZmxhZ3MgJiBQRl9SQU5ET01JWkUpIHsKIAkJLyogOE1CIGZvciAzMmJpdCwgMUdCIGZvciA2NGJp dCAqLwogCQlpZiAoaXNfMzJiaXRfdGFzaygpKQotCQkJcm5kID0gKGxvbmcpKGdldF9yYW5kb21f aW50KCkgJSAoMTw8KDIyLVBBR0VfU0hJRlQpKSk7CisJCQlybmQgPSAobG9uZykoZ2V0X3JhbmRv bV9pbnQoKSAlICgxPDwoMjMtUEFHRV9TSElGVCkpKTsKIAkJZWxzZQotCQkJcm5kID0gKGxvbmcp KGdldF9yYW5kb21faW50KCkgJSAoMTw8KDI5LVBBR0VfU0hJRlQpKSk7CisJCQlybmQgPSAobG9u ZykoZ2V0X3JhbmRvbV9pbnQoKSAlICgxPDwoMzAtUEFHRV9TSElGVCkpKTsKIAl9Ci0JcmV0dXJu IChybmQgPDwgUEFHRV9TSElGVCkgKiAyOworCXJldHVybiBybmQgPDwgUEFHRV9TSElGVDsKIH0K IAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIG1tYXBfYmFzZSh2b2lkKQpkaWZmIC0tZ2l0 IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2RscGFyLmMgYi9hcmNoL3Bvd2VycGMv cGxhdGZvcm1zL3BzZXJpZXMvZGxwYXIuYwppbmRleCAwZjFiNzA2Li4yNzY3Mjc2IDEwMDY0NAot LS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvZGxwYXIuYworKysgYi9hcmNoL3Bv d2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvZGxwYXIuYwpAQCAtNDE2LDYgKzQxNiwxMiBAQCBzdGF0 aWMgc3NpemVfdCBkbHBhcl9jcHVfcHJvYmUoY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQp CiAJCWdvdG8gb3V0OwogCX0KIAorCXJjID0gZGxwYXJfYWNxdWlyZV9kcmMoZHJjX2luZGV4KTsK KwlpZiAocmMpIHsKKwkJcmMgPSAtRUlOVkFMOworCQlnb3RvIG91dDsKKwl9CisKIAlkbiA9IGRs cGFyX2NvbmZpZ3VyZV9jb25uZWN0b3IoZHJjX2luZGV4KTsKIAlpZiAoIWRuKSB7CiAJCXJjID0g LUVJTlZBTDsKQEAgLTQzNiwxMyArNDQyLDYgQEAgc3RhdGljIHNzaXplX3QgZGxwYXJfY3B1X3By b2JlKGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQogCWtmcmVlKGRuLT5mdWxsX25hbWUp OwogCWRuLT5mdWxsX25hbWUgPSBjcHVfbmFtZTsKIAotCXJjID0gZGxwYXJfYWNxdWlyZV9kcmMo ZHJjX2luZGV4KTsKLQlpZiAocmMpIHsKLQkJZGxwYXJfZnJlZV9jY19ub2Rlcyhkbik7Ci0JCXJj ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7Ci0JfQotCiAJcmMgPSBkbHBhcl9hdHRhY2hfbm9kZShk bik7CiAJaWYgKHJjKSB7CiAJCWRscGFyX3JlbGVhc2VfZHJjKGRyY19pbmRleCk7CmRpZmYgLS1n aXQgYS9hcmNoL3MzOTAvY3J5cHRvL2doYXNoX3MzOTAuYyBiL2FyY2gvczM5MC9jcnlwdG8vZ2hh c2hfczM5MC5jCmluZGV4IDMxMDg2ZWEuLjU2ODUyMWEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9j cnlwdG8vZ2hhc2hfczM5MC5jCisrKyBiL2FyY2gvczM5MC9jcnlwdG8vZ2hhc2hfczM5MC5jCkBA IC0xNiwxMSArMTYsMTIgQEAKICNkZWZpbmUgR0hBU0hfRElHRVNUX1NJWkUJMTYKIAogc3RydWN0 IGdoYXNoX2N0eCB7Ci0JdTggaWN2WzE2XTsKLQl1OCBrZXlbMTZdOworCXU4IGtleVtHSEFTSF9C TE9DS19TSVpFXTsKIH07CiAKIHN0cnVjdCBnaGFzaF9kZXNjX2N0eCB7CisJdTggaWN2W0dIQVNI X0JMT0NLX1NJWkVdOworCXU4IGtleVtHSEFTSF9CTE9DS19TSVpFXTsKIAl1OCBidWZmZXJbR0hB U0hfQkxPQ0tfU0laRV07CiAJdTMyIGJ5dGVzOwogfTsKQEAgLTI4LDggKzI5LDEwIEBAIHN0cnVj dCBnaGFzaF9kZXNjX2N0eCB7CiBzdGF0aWMgaW50IGdoYXNoX2luaXQoc3RydWN0IHNoYXNoX2Rl c2MgKmRlc2MpCiB7CiAJc3RydWN0IGdoYXNoX2Rlc2NfY3R4ICpkY3R4ID0gc2hhc2hfZGVzY19j dHgoZGVzYyk7CisJc3RydWN0IGdoYXNoX2N0eCAqY3R4ID0gY3J5cHRvX3NoYXNoX2N0eChkZXNj LT50Zm0pOwogCiAJbWVtc2V0KGRjdHgsIDAsIHNpemVvZigqZGN0eCkpOworCW1lbWNweShkY3R4 LT5rZXksIGN0eC0+a2V5LCBHSEFTSF9CTE9DS19TSVpFKTsKIAogCXJldHVybiAwOwogfQpAQCAt NDUsNyArNDgsNiBAQCBzdGF0aWMgaW50IGdoYXNoX3NldGtleShzdHJ1Y3QgY3J5cHRvX3NoYXNo ICp0Zm0sCiAJfQogCiAJbWVtY3B5KGN0eC0+a2V5LCBrZXksIEdIQVNIX0JMT0NLX1NJWkUpOwot CW1lbXNldChjdHgtPmljdiwgMCwgR0hBU0hfQkxPQ0tfU0laRSk7CiAKIAlyZXR1cm4gMDsKIH0K QEAgLTU0LDcgKzU2LDYgQEAgc3RhdGljIGludCBnaGFzaF91cGRhdGUoc3RydWN0IHNoYXNoX2Rl c2MgKmRlc2MsCiAJCQkgY29uc3QgdTggKnNyYywgdW5zaWduZWQgaW50IHNyY2xlbikKIHsKIAlz dHJ1Y3QgZ2hhc2hfZGVzY19jdHggKmRjdHggPSBzaGFzaF9kZXNjX2N0eChkZXNjKTsKLQlzdHJ1 Y3QgZ2hhc2hfY3R4ICpjdHggPSBjcnlwdG9fc2hhc2hfY3R4KGRlc2MtPnRmbSk7CiAJdW5zaWdu ZWQgaW50IG47CiAJdTggKmJ1ZiA9IGRjdHgtPmJ1ZmZlcjsKIAlpbnQgcmV0OwpAQCAtNzAsNyAr NzEsNyBAQCBzdGF0aWMgaW50IGdoYXNoX3VwZGF0ZShzdHJ1Y3Qgc2hhc2hfZGVzYyAqZGVzYywK IAkJc3JjICs9IG47CiAKIAkJaWYgKCFkY3R4LT5ieXRlcykgewotCQkJcmV0ID0gY3J5cHRfczM5 MF9raW1kKEtJTURfR0hBU0gsIGN0eCwgYnVmLAorCQkJcmV0ID0gY3J5cHRfczM5MF9raW1kKEtJ TURfR0hBU0gsIGRjdHgsIGJ1ZiwKIAkJCQkJICAgICAgR0hBU0hfQkxPQ0tfU0laRSk7CiAJCQlp ZiAocmV0ICE9IEdIQVNIX0JMT0NLX1NJWkUpCiAJCQkJcmV0dXJuIC1FSU87CkBAIC03OSw3ICs4 MCw3IEBAIHN0YXRpYyBpbnQgZ2hhc2hfdXBkYXRlKHN0cnVjdCBzaGFzaF9kZXNjICpkZXNjLAog CiAJbiA9IHNyY2xlbiAmIH4oR0hBU0hfQkxPQ0tfU0laRSAtIDEpOwogCWlmIChuKSB7Ci0JCXJl dCA9IGNyeXB0X3MzOTBfa2ltZChLSU1EX0dIQVNILCBjdHgsIHNyYywgbik7CisJCXJldCA9IGNy eXB0X3MzOTBfa2ltZChLSU1EX0dIQVNILCBkY3R4LCBzcmMsIG4pOwogCQlpZiAocmV0ICE9IG4p CiAJCQlyZXR1cm4gLUVJTzsKIAkJc3JjICs9IG47CkBAIC05NCw3ICs5NSw3IEBAIHN0YXRpYyBp bnQgZ2hhc2hfdXBkYXRlKHN0cnVjdCBzaGFzaF9kZXNjICpkZXNjLAogCXJldHVybiAwOwogfQog Ci1zdGF0aWMgaW50IGdoYXNoX2ZsdXNoKHN0cnVjdCBnaGFzaF9jdHggKmN0eCwgc3RydWN0IGdo YXNoX2Rlc2NfY3R4ICpkY3R4KQorc3RhdGljIGludCBnaGFzaF9mbHVzaChzdHJ1Y3QgZ2hhc2hf ZGVzY19jdHggKmRjdHgpCiB7CiAJdTggKmJ1ZiA9IGRjdHgtPmJ1ZmZlcjsKIAlpbnQgcmV0OwpA QCAtMTA0LDI0ICsxMDUsMjQgQEAgc3RhdGljIGludCBnaGFzaF9mbHVzaChzdHJ1Y3QgZ2hhc2hf Y3R4ICpjdHgsIHN0cnVjdCBnaGFzaF9kZXNjX2N0eCAqZGN0eCkKIAogCQltZW1zZXQocG9zLCAw LCBkY3R4LT5ieXRlcyk7CiAKLQkJcmV0ID0gY3J5cHRfczM5MF9raW1kKEtJTURfR0hBU0gsIGN0 eCwgYnVmLCBHSEFTSF9CTE9DS19TSVpFKTsKKwkJcmV0ID0gY3J5cHRfczM5MF9raW1kKEtJTURf R0hBU0gsIGRjdHgsIGJ1ZiwgR0hBU0hfQkxPQ0tfU0laRSk7CiAJCWlmIChyZXQgIT0gR0hBU0hf QkxPQ0tfU0laRSkKIAkJCXJldHVybiAtRUlPOworCisJCWRjdHgtPmJ5dGVzID0gMDsKIAl9CiAK LQlkY3R4LT5ieXRlcyA9IDA7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZ2hhc2hfZmlu YWwoc3RydWN0IHNoYXNoX2Rlc2MgKmRlc2MsIHU4ICpkc3QpCiB7CiAJc3RydWN0IGdoYXNoX2Rl c2NfY3R4ICpkY3R4ID0gc2hhc2hfZGVzY19jdHgoZGVzYyk7Ci0Jc3RydWN0IGdoYXNoX2N0eCAq Y3R4ID0gY3J5cHRvX3NoYXNoX2N0eChkZXNjLT50Zm0pOwogCWludCByZXQ7CiAKLQlyZXQgPSBn aGFzaF9mbHVzaChjdHgsIGRjdHgpOworCXJldCA9IGdoYXNoX2ZsdXNoKGRjdHgpOwogCWlmICgh cmV0KQotCQltZW1jcHkoZHN0LCBjdHgtPmljdiwgR0hBU0hfQkxPQ0tfU0laRSk7CisJCW1lbWNw eShkc3QsIGRjdHgtPmljdiwgR0hBU0hfQkxPQ0tfU0laRSk7CiAJcmV0dXJuIHJldDsKIH0KIApk aWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9zdXNwZW5kLmMgYi9hcmNoL3MzOTAva2VybmVs L3N1c3BlbmQuYwppbmRleCA0N2RmNzc1Li5iYTE3MDkyIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAv a2VybmVsL3N1c3BlbmQuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3N1c3BlbmQuYwpAQCAtOSw2 ICs5LDggQEAKICNpbmNsdWRlIDxsaW51eC9wZm4uaD4KICNpbmNsdWRlIDxsaW51eC9zdXNwZW5k Lmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxhc20vaXBsLmg+CisjaW5jbHVk ZSA8YXNtL3NlY3Rpb25zLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogCiAvKgpAQCAtMTM3 LDYgKzEzOSw4IEBAIGludCBwZm5faXNfbm9zYXZlKHVuc2lnbmVkIGxvbmcgcGZuKQogewogCXVu c2lnbmVkIGxvbmcgbm9zYXZlX2JlZ2luX3BmbiA9IFBGTl9ET1dOKF9fcGEoJl9fbm9zYXZlX2Jl Z2luKSk7CiAJdW5zaWduZWQgbG9uZyBub3NhdmVfZW5kX3BmbiA9IFBGTl9ET1dOKF9fcGEoJl9f bm9zYXZlX2VuZCkpOworCXVuc2lnbmVkIGxvbmcgZXNoYXJlZF9wZm4gPSBQRk5fRE9XTihfX3Bh KCZfZXNoYXJlZCkpIC0gMTsKKwl1bnNpZ25lZCBsb25nIHN0ZXh0X3BmbiA9IFBGTl9ET1dOKF9f cGEoJl9zdGV4dCkpOwogCiAJLyogQWx3YXlzIHNhdmUgbG93Y29yZSBwYWdlcyAoTEMgcHJvdGVj dGlvbiBtaWdodCBiZSBlbmFibGVkKS4gKi8KIAlpZiAocGZuIDw9IExDX1BBR0VTKQpAQCAtMTQ0 LDYgKzE0OCw4IEBAIGludCBwZm5faXNfbm9zYXZlKHVuc2lnbmVkIGxvbmcgcGZuKQogCWlmIChw Zm4gPj0gbm9zYXZlX2JlZ2luX3BmbiAmJiBwZm4gPCBub3NhdmVfZW5kX3BmbikKIAkJcmV0dXJu IDE7CiAJLyogU2tpcCBtZW1vcnkgaG9sZXMgYW5kIHJlYWQtb25seSBwYWdlcyAoTlNTLCBEQ1NT LCAuLi4pLiAqLworCWlmIChwZm4gPj0gc3RleHRfcGZuICYmIHBmbiA8PSBlc2hhcmVkX3BmbikK KwkJcmV0dXJuIGlwbF9pbmZvLnR5cGUgPT0gSVBMX1RZUEVfTlNTID8gMSA6IDA7CiAJaWYgKHRw cm90KFBGTl9QSFlTKHBmbikpKQogCQlyZXR1cm4gMTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBh L2FyY2gvczM5MC9rdm0vcHJpdi5jIGIvYXJjaC9zMzkwL2t2bS9wcml2LmMKaW5kZXggZDAyNjM4 OS4uYzU5M2UxZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2t2bS9wcml2LmMKKysrIGIvYXJjaC9z MzkwL2t2bS9wcml2LmMKQEAgLTIxOSw2ICsyMTksNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfc3Rz aV8zXzJfMihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBzeXNpbmZvXzNfMl8yICptZW0p CiAJZm9yIChuID0gbWVtLT5jb3VudCAtIDE7IG4gPiAwIDsgbi0tKQogCQltZW1jcHkoJm1lbS0+ dm1bbl0sICZtZW0tPnZtW24gLSAxXSwgc2l6ZW9mKG1lbS0+dm1bMF0pKTsKIAorCW1lbXNldCgm bWVtLT52bVswXSwgMCwgc2l6ZW9mKG1lbS0+dm1bMF0pKTsKIAltZW0tPnZtWzBdLmNwdXNfdG90 YWwgPSBjcHVzOwogCW1lbS0+dm1bMF0uY3B1c19jb25maWd1cmVkID0gY3B1czsKIAltZW0tPnZt WzBdLmNwdXNfc3RhbmRieSA9IDA7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9sZW9u X3BjaS5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvbGVvbl9wY2kuYwppbmRleCBmMWNmNmVmLi5hMGVm MzJlIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9sZW9uX3BjaS5jCisrKyBiL2FyY2gv c3BhcmMva2VybmVsL2xlb25fcGNpLmMKQEAgLTc4LDcgKzc4LDYgQEAgRVhQT1JUX1NZTUJPTChw Y2liaW9zX2J1c190b19yZXNvdXJjZSk7CiAKIHZvaWQgX19kZXZpbml0IHBjaWJpb3NfZml4dXBf YnVzKHN0cnVjdCBwY2lfYnVzICpwYnVzKQogewotCXN0cnVjdCBsZW9uX3BjaV9pbmZvICppbmZv ID0gcGJ1cy0+c3lzZGF0YTsKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2OwogCWludCBpLCBoYXNfaW8s IGhhc19tZW07CiAJdTE2IGNtZDsKQEAgLTE1MywxOCArMTUyLDYgQEAgaW50IHBjaWJpb3NfZW5h YmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgbWFzaykKIAlyZXR1cm4gcGNpX2Vu YWJsZV9yZXNvdXJjZXMoZGV2LCBtYXNrKTsKIH0KIAotc3RydWN0IGRldmljZV9ub2RlICpwY2lf ZGV2aWNlX3RvX09GX25vZGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCi17Ci0JLyoKLQkgKiBDdXJy ZW50bHkgdGhlIE9wZW5Cb290IG5vZGVzIGFyZSBub3QgY29ubmVjdGVkIHdpdGggdGhlIFBDSSBk ZXZpY2UsCi0JICogdGhpcyBpcyBiZWNhdXNlIHRoZSBMRU9OIFBST00gZG9lcyBub3QgY3JlYXRl IFBDSSBub2Rlcy4gRXZlbnR1YWxseQotCSAqIHRoaXMgd2lsbCBjaGFuZ2UgYW5kIHRoZSBzYW1l IGFwcHJvYWNoIGFzIHBjaWMuYyBjYW4gYmUgdXNlZCB0bwotCSAqIG1hdGNoIFBST00gbm9kZXMg d2l0aCBwY2kgZGV2aWNlcy4KLQkgKi8KLQlyZXR1cm4gTlVMTDsKLX0KLUVYUE9SVF9TWU1CT0wo cGNpX2RldmljZV90b19PRl9ub2RlKTsKLQogdm9pZCBfX2RldmluaXQgcGNpYmlvc191cGRhdGVf aXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBpcnEpCiB7CiAjaWZkZWYgQ09ORklHX1BDSV9E RUJVRwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvc3lzX3NwYXJjXzY0LmMgYi9hcmNo L3NwYXJjL2tlcm5lbC9zeXNfc3BhcmNfNjQuYwppbmRleCA1ZTQyNTJiLi4wZmY2ODJkIDEwMDY0 NAotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9zeXNfc3BhcmNfNjQuYworKysgYi9hcmNoL3NwYXJj L2tlcm5lbC9zeXNfc3BhcmNfNjQuYwpAQCAtMzY4LDExICszNjgsMTEgQEAgc3RhdGljIHVuc2ln bmVkIGxvbmcgbW1hcF9ybmQodm9pZCkKIAlpZiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9SQU5ET01J WkUpIHsKIAkJdW5zaWduZWQgbG9uZyB2YWwgPSBnZXRfcmFuZG9tX2ludCgpOwogCQlpZiAodGVz dF90aHJlYWRfZmxhZyhUSUZfMzJCSVQpKQotCQkJcm5kID0gKHZhbCAlICgxVUwgPDwgKDIyVUwt UEFHRV9TSElGVCkpKTsKKwkJCXJuZCA9ICh2YWwgJSAoMVVMIDw8ICgyM1VMLVBBR0VfU0hJRlQp KSk7CiAJCWVsc2UKLQkJCXJuZCA9ICh2YWwgJSAoMVVMIDw8ICgyOVVMLVBBR0VfU0hJRlQpKSk7 CisJCQlybmQgPSAodmFsICUgKDFVTCA8PCAoMzBVTC1QQUdFX1NISUZUKSkpOwogCX0KLQlyZXR1 cm4gKHJuZCA8PCBQQUdFX1NISUZUKSAqIDI7CisJcmV0dXJuIHJuZCA8PCBQQUdFX1NISUZUOwog fQogCiB2b2lkIGFyY2hfcGlja19tbWFwX2xheW91dChzdHJ1Y3QgbW1fc3RydWN0ICptbSkKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmlnCmluZGV4IDI4YTFi Y2EuLmQ3MjAyMDggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYv S2NvbmZpZwpAQCAtMTMzLDcgKzEzMyw4IEBAIGNvbmZpZyBTQlVTCiAJYm9vbAogCiBjb25maWcg TkVFRF9ETUFfTUFQX1NUQVRFCi0gICAgICAgZGVmX2Jvb2wgKFg4Nl82NCB8fCBJTlRFTF9JT01N VSB8fCBETUFfQVBJX0RFQlVHKQorCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFg4Nl82NCB8fCBJ TlRFTF9JT01NVSB8fCBETUFfQVBJX0RFQlVHIHx8IFNXSU9UTEIKIAogY29uZmlnIE5FRURfU0df RE1BX0xFTkdUSAogCWRlZl9ib29sIHkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNt L2lvbW11X3RhYmxlLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb21tdV90YWJsZS5oCmluZGV4 IGYyMjliMTMuLjBjNTQ4MjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lvbW11 X3RhYmxlLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vaW9tbXVfdGFibGUuaApAQCAtNzks MTEgKzc5LDEyIEBAIHN0cnVjdCBpb21tdV90YWJsZV9lbnRyeSB7CiAgKiAgZCkuIFNpbWlsYXIg dG8gdGhlICdpbml0JywgZXhjZXB0IHRoYXQgdGhpcyBnZXRzIGNhbGxlZCBmcm9tIHBjaV9pb21t dV9pbml0CiAgKiAgICAgIHdoZXJlIHdlIGRvIGhhdmUgYSBtZW1vcnkgYWxsb2NhdG9yLgogICoK LSAqIFRoZSBzdGFuZGFyZCB2cyB0aGUgX0ZJTklTSCBkaWZmZXJzIGluIHRoYXQgdGhlIF9GSU5J U0ggdmFyaWFudCB3aWxsCi0gKiBjb250aW51ZSBkZXRlY3Rpbmcgb3RoZXIgSU9NTVVzIGluIHRo ZSBjYWxsIGxpc3QgYWZ0ZXIgdGhlCi0gKiB0aGUgZGV0ZWN0aW9uIHJvdXRpbmUgcmV0dXJucyBh IHBvc2l0aXZlIG51bWJlci4gVGhlIF9GSU5JU0ggd2lsbAotICogc3RvcCB0aGUgZXhlY3V0aW9u IGNoYWluLiBCb3RoIHdpbGwgc3RpbGwgY2FsbCB0aGUgJ2luaXQnIGFuZAotICogJ2xhdGVfaW5p dCcgZnVuY3Rpb25zIGlmIHRoZXkgYXJlIHNldC4KKyAqIFRoZSBzdGFuZGFyZCBJT01NVV9JTklU IGRpZmZlcnMgZnJvbSB0aGUgSU9NTVVfSU5JVF9GSU5JU0ggdmFyaWFudAorICogaW4gdGhhdCB0 aGUgZm9ybWVyIHdpbGwgY29udGludWUgZGV0ZWN0aW5nIG90aGVyIElPTU1VcyBpbiB0aGUgY2Fs bAorICogbGlzdCBhZnRlciB0aGUgZGV0ZWN0aW9uIHJvdXRpbmUgcmV0dXJucyBhIHBvc2l0aXZl IG51bWJlciwgd2hpbGUgdGhlCisgKiBsYXR0ZXIgd2lsbCBzdG9wIHRoZSBleGVjdXRpb24gY2hh aW4gdXBvbiBmaXJzdCBzdWNjZXNzZnVsIGRldGVjdGlvbi4KKyAqIEJvdGggdmFyaWFudHMgd2ls bCBzdGlsbCBjYWxsIHRoZSAnaW5pdCcgYW5kICdsYXRlX2luaXQnIGZ1bmN0aW9ucyBpZgorICog dGhleSBhcmUgc2V0LgogICovCiAjZGVmaW5lIElPTU1VX0lOSVRfRklOSVNIKF9kZXRlY3QsIF9k ZXBlbmQsIF9pbml0LCBfbGF0ZV9pbml0KQkJXAogCV9fSU9NTVVfSU5JVChfZGV0ZWN0LCBfZGVw ZW5kLCBfaW5pdCwgX2xhdGVfaW5pdCwgMSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9y ZWJvb3QuYyBiL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYwppbmRleCA0MWIyZjU3Li43ODg0MmNl IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMKKysrIGIvYXJjaC94ODYva2Vy bmVsL3JlYm9vdC5jCkBAIC03MDAsOSArNzAwLDEyIEBAIHZvaWQgbmF0aXZlX21hY2hpbmVfc2h1 dGRvd24odm9pZCkKIAkvKiBNYWtlIGNlcnRhaW4gSSBvbmx5IHJ1biBvbiB0aGUgYXBwcm9wcmlh dGUgcHJvY2Vzc29yICovCiAJc2V0X2NwdXNfYWxsb3dlZF9wdHIoY3VycmVudCwgY3B1bWFza19v ZihyZWJvb3RfY3B1X2lkKSk7CiAKLQkvKiBPLksgTm93IHRoYXQgSSdtIG9uIHRoZSBhcHByb3By aWF0ZSBwcm9jZXNzb3IsCi0JICogc3RvcCBhbGwgb2YgdGhlIG90aGVycy4KKwkvKgorCSAqIE8u SyBOb3cgdGhhdCBJJ20gb24gdGhlIGFwcHJvcHJpYXRlIHByb2Nlc3Nvciwgc3RvcCBhbGwgb2Yg dGhlCisJICogb3RoZXJzLiBBbHNvIGRpc2FibGUgdGhlIGxvY2FsIGlycSB0byBub3QgcmVjZWl2 ZSB0aGUgcGVyLWNwdQorCSAqIHRpbWVyIGludGVycnVwdCB3aGljaCBtYXkgdHJpZ2dlciBzY2hl ZHVsZXIncyBsb2FkIGJhbGFuY2UuCiAJICovCisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAlzdG9w X290aGVyX2NwdXMoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbW11LmMg Yi9hcmNoL3g4Ni9rdm0vbW11LmMKaW5kZXggYmZjOTUwNy4uNGE5NDljNyAxMDA2NDQKLS0tIGEv YXJjaC94ODYva3ZtL21tdS5jCisrKyBiL2FyY2gveDg2L2t2bS9tbXUuYwpAQCAtMzYwOSw3ICsz NjA5LDcgQEAgdm9pZCBrdm1fbW11X3B0ZV93cml0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdw YV90IGdwYSwKIAkJfQogCX0KIAotCW1hc2suY3IwX3dwID0gbWFzay5jcjRfcGFlID0gbWFzay5u eGUgPSAxOworCW1hc2suY3IwX3dwID0gbWFzay5jcjRfcGFlID0gbWFzay5ueGUgPSBtYXNrLnNt ZXBfYW5kbm90X3dwID0gMTsKIAlmb3JfZWFjaF9nZm5faW5kaXJlY3RfdmFsaWRfc3AodmNwdS0+ a3ZtLCBzcCwgZ2ZuLCBub2RlKSB7CiAJCXB0ZV9zaXplID0gc3AtPnJvbGUuY3I0X3BhZSA/IDgg OiA0OwogCQltaXNhbGlnbmVkID0gKG9mZnNldCBeIChvZmZzZXQgKyBieXRlcyAtIDEpKSAmIH4o cHRlX3NpemUgLSAxKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXguYyBiL2FyY2gveDg2 L2t2bS92bXguYwppbmRleCA4ODMxYzQzLi40MjE5NThmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9r dm0vdm14LmMKKysrIGIvYXJjaC94ODYva3ZtL3ZteC5jCkBAIC0zMDMyLDggKzMwMzIsMTYgQEAg c3RhdGljIHZvaWQgdm14X3NldF9jcjMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBs b25nIGNyMykKIAogc3RhdGljIGludCB2bXhfc2V0X2NyNChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUs IHVuc2lnbmVkIGxvbmcgY3I0KQogewotCXVuc2lnbmVkIGxvbmcgaHdfY3I0ID0gY3I0IHwgKHRv X3ZteCh2Y3B1KS0+cm1vZGUudm04Nl9hY3RpdmUgPwotCQkgICAgS1ZNX1JNT0RFX1ZNX0NSNF9B TFdBWVNfT04gOiBLVk1fUE1PREVfVk1fQ1I0X0FMV0FZU19PTik7CisJLyoKKwkgKiBQYXNzIHRo cm91Z2ggaG9zdCdzIE1hY2hpbmUgQ2hlY2sgRW5hYmxlIHZhbHVlIHRvIGh3X2NyNCwgd2hpY2gK KwkgKiBpcyBpbiBmb3JjZSB3aGlsZSB3ZSBhcmUgaW4gZ3Vlc3QgbW9kZS4gIERvIG5vdCBsZXQg Z3Vlc3RzIGNvbnRyb2wKKwkgKiB0aGlzIGJpdCwgZXZlbiBpZiBob3N0IENSNC5NQ0UgPT0gMC4K KwkgKi8KKwl1bnNpZ25lZCBsb25nIGh3X2NyNCA9CisJCShyZWFkX2NyNCgpICYgWDg2X0NSNF9N Q0UpIHwKKwkJKGNyNCAmIH5YODZfQ1I0X01DRSkgfAorCQkodG9fdm14KHZjcHUpLT5ybW9kZS52 bTg2X2FjdGl2ZSA/CisJCSBLVk1fUk1PREVfVk1fQ1I0X0FMV0FZU19PTiA6IEtWTV9QTU9ERV9W TV9DUjRfQUxXQVlTX09OKTsKIAogCWlmIChjcjQgJiBYODZfQ1I0X1ZNWEUpIHsKIAkJLyoKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2xpYi91c2VyY29weV82NC5jIGIvYXJjaC94ODYvbGliL3VzZXJj b3B5XzY0LmMKaW5kZXggNTU0YjdiNS4uNDMzYjIxZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGli L3VzZXJjb3B5XzY0LmMKKysrIGIvYXJjaC94ODYvbGliL3VzZXJjb3B5XzY0LmMKQEAgLTExMyw3 ICsxMTMsNyBAQCBsb25nIF9fc3Rybmxlbl91c2VyKGNvbnN0IGNoYXIgX191c2VyICpzLCBsb25n IG4pCiAJY2hhciBjOwogCiAJd2hpbGUgKDEpIHsKLQkJaWYgKHJlcz5uKQorCQlpZiAocmVzID49 IG4pCiAJCQlyZXR1cm4gbisxOwogCQlpZiAoX19nZXRfdXNlcihjLCBzKSkKIAkJCXJldHVybiAw OwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jIGIvYXJjaC94ODYvbmV0 L2JwZl9qaXRfY29tcC5jCmluZGV4IDVhNWI2ZTQuLjExZTMxMDAgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L25ldC9icGZfaml0X2NvbXAuYworKysgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMK QEAgLTE1MCw3ICsxNTAsMTIgQEAgdm9pZCBicGZfaml0X2NvbXBpbGUoc3RydWN0IHNrX2ZpbHRl ciAqZnApCiAJfQogCWNsZWFudXBfYWRkciA9IHByb2dsZW47IC8qIGVwaWxvZ3VlIGFkZHJlc3Mg Ki8KIAotCWZvciAocGFzcyA9IDA7IHBhc3MgPCAxMDsgcGFzcysrKSB7CisJLyogSklUZWQgaW1h Z2Ugc2hyaW5rcyB3aXRoIGV2ZXJ5IHBhc3MgYW5kIHRoZSBsb29wIGl0ZXJhdGVzCisJICogdW50 aWwgdGhlIGltYWdlIHN0b3BzIHNocmlua2luZy4gVmVyeSBsYXJnZSBicGYgcHJvZ3JhbXMKKwkg KiBtYXkgY29udmVyZ2Ugb24gdGhlIGxhc3QgcGFzcy4gSW4gc3VjaCBjYXNlIGRvIG9uZSBtb3Jl CisJICogcGFzcyB0byBlbWl0IHRoZSBmaW5hbCBpbWFnZQorCSAqLworCWZvciAocGFzcyA9IDA7 IHBhc3MgPCAxMCB8fCBpbWFnZTsgcGFzcysrKSB7CiAJCXU4IHNlZW5fb3JfcGFzczAgPSAocGFz cyA9PSAwKSA/IChTRUVOX1hSRUcgfCBTRUVOX0RBVEFSRUYgfCBTRUVOX01FTSkgOiBzZWVuOwog CQkvKiBubyBwcm9sb2d1ZS9lcGlsb2d1ZSBmb3IgdHJpdmlhbCBmaWx0ZXJzIChSRVQgc29tZXRo aW5nKSAqLwogCQlwcm9nbGVuID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9hY3BpY2Ev YWNtYWNyb3MuaCBiL2RyaXZlcnMvYWNwaS9hY3BpY2EvYWNtYWNyb3MuaAppbmRleCBiNzQ5MWVl Li42NDU0ZmU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvYWNwaWNhL2FjbWFjcm9zLmgKKysr IGIvZHJpdmVycy9hY3BpL2FjcGljYS9hY21hY3Jvcy5oCkBAIC01OSwxOSArNTksMTUgQEAKICNk ZWZpbmUgQUNQSV9TRVQ2NChwdHIpICAgICAgICAgICAgICAgICAqQUNQSV9DQVNUX1BUUiAodTY0 LCBwdHIpCiAKIC8qCi0gKiBwcmludGYoKSBmb3JtYXQgaGVscGVycworICogcHJpbnRmKCkgZm9y bWF0IGhlbHBlci4gVGhpcyBtYWNyb3MgaXMgYSB3b3JrYXJvdW5kIGZvciB0aGUgZGlmZmljdWx0 aWVzCisgKiB3aXRoIGVtaXR0aW5nIDY0LWJpdCBpbnRlZ2VycyBhbmQgNjQtYml0IHBvaW50ZXJz IHdpdGggdGhlIHNhbWUgY29kZQorICogZm9yIGJvdGggMzItYml0IGFuZCA2NC1iaXQgaG9zdHMu CiAgKi8KIAogLyogU3BsaXQgNjQtYml0IGludGVnZXIgaW50byB0d28gMzItYml0IHZhbHVlcy4g VXNlIHdpdGggJTguOF94JTguOF94ICovCiAKICNkZWZpbmUgQUNQSV9GT1JNQVRfVUlOVDY0KGkp ICAgICAgICAgICBBQ1BJX0hJRFdPUkQoaSksIEFDUElfTE9EV09SRChpKQogCi0jaWYgQUNQSV9N QUNISU5FX1dJRFRIID09IDY0Ci0jZGVmaW5lIEFDUElfRk9STUFUX05BVElWRV9VSU5UKGkpICAg ICAgQUNQSV9GT1JNQVRfVUlOVDY0KGkpCi0jZWxzZQotI2RlZmluZSBBQ1BJX0ZPUk1BVF9OQVRJ VkVfVUlOVChpKSAgICAgIDAsIChpKQotI2VuZGlmCi0KIC8qCiAgKiBNYWNyb3MgZm9yIG1vdmlu ZyBkYXRhIGFyb3VuZCB0by9mcm9tIGJ1ZmZlcnMgdGhhdCBhcmUgcG9zc2libHkgdW5hbGlnbmVk LgogICogSWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIHRoZSB0cmFuc2ZlciBvZiB1bmFsaWduZWQg ZGF0YSwganVzdCBkbyB0aGUgc3RvcmUuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvYWNwaWNh L2Rzb3Bjb2RlLmMgYi9kcml2ZXJzL2FjcGkvYWNwaWNhL2Rzb3Bjb2RlLmMKaW5kZXggYzYyN2Ey OC4uOWQxOTU4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2FjcGljYS9kc29wY29kZS5jCisr KyBiL2RyaXZlcnMvYWNwaS9hY3BpY2EvZHNvcGNvZGUuYwpAQCAtNDQ2LDcgKzQ0Niw3IEBAIGFj cGlfZHNfZXZhbF9yZWdpb25fb3BlcmFuZHMoc3RydWN0IGFjcGlfd2Fsa19zdGF0ZSAqd2Fsa19z dGF0ZSwKIAogCUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJfRVhFQywgIlJnbk9iaiAlcCBBZGRy ICU4LjhYJTguOFggTGVuICVYXG4iLAogCQkJICBvYmpfZGVzYywKLQkJCSAgQUNQSV9GT1JNQVRf TkFUSVZFX1VJTlQob2JqX2Rlc2MtPnJlZ2lvbi5hZGRyZXNzKSwKKwkJCSAgQUNQSV9GT1JNQVRf VUlOVDY0KG9ial9kZXNjLT5yZWdpb24uYWRkcmVzcyksCiAJCQkgIG9ial9kZXNjLT5yZWdpb24u bGVuZ3RoKSk7CiAKIAkvKiBOb3cgdGhlIGFkZHJlc3MgYW5kIGxlbmd0aCBhcmUgdmFsaWQgZm9y IHRoaXMgb3ByZWdpb24gKi8KQEAgLTU0NSw3ICs1NDUsNyBAQCBhY3BpX2RzX2V2YWxfdGFibGVf cmVnaW9uX29wZXJhbmRzKHN0cnVjdCBhY3BpX3dhbGtfc3RhdGUgKndhbGtfc3RhdGUsCiAKIAlB Q1BJX0RFQlVHX1BSSU5UKChBQ1BJX0RCX0VYRUMsICJSZ25PYmogJXAgQWRkciAlOC44WCU4LjhY IExlbiAlWFxuIiwKIAkJCSAgb2JqX2Rlc2MsCi0JCQkgIEFDUElfRk9STUFUX05BVElWRV9VSU5U KG9ial9kZXNjLT5yZWdpb24uYWRkcmVzcyksCisJCQkgIEFDUElfRk9STUFUX1VJTlQ2NChvYmpf ZGVzYy0+cmVnaW9uLmFkZHJlc3MpLAogCQkJICBvYmpfZGVzYy0+cmVnaW9uLmxlbmd0aCkpOwog CiAJLyogTm93IHRoZSBhZGRyZXNzIGFuZCBsZW5ndGggYXJlIHZhbGlkIGZvciB0aGlzIG9wcmVn aW9uICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvYWNwaWNhL2V2cmVnaW9uLmMgYi9kcml2 ZXJzL2FjcGkvYWNwaWNhL2V2cmVnaW9uLmMKaW5kZXggZjBlZGY1Yy4uY2IxOGFiNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9hY3BpL2FjcGljYS9ldnJlZ2lvbi5jCisrKyBiL2RyaXZlcnMvYWNwaS9h Y3BpY2EvZXZyZWdpb24uYwpAQCAtNDUwLDggKzQ1MCw4IEBAIGFjcGlfZXZfYWRkcmVzc19zcGFj ZV9kaXNwYXRjaCh1bmlvbiBhY3BpX29wZXJhbmRfb2JqZWN0ICpyZWdpb25fb2JqLAogCUFDUElf REVCVUdfUFJJTlQoKEFDUElfREJfT1BSRUdJT04sCiAJCQkgICJIYW5kbGVyICVwIChAJXApIEFk ZHJlc3MgJTguOFglOC44WCBbJXNdXG4iLAogCQkJICAmcmVnaW9uX29iai0+cmVnaW9uLmhhbmRs ZXItPmFkZHJlc3Nfc3BhY2UsIGhhbmRsZXIsCi0JCQkgIEFDUElfRk9STUFUX05BVElWRV9VSU5U KHJlZ2lvbl9vYmotPnJlZ2lvbi5hZGRyZXNzICsKLQkJCQkJCSAgcmVnaW9uX29mZnNldCksCisJ CQkgIEFDUElfRk9STUFUX1VJTlQ2NChyZWdpb25fb2JqLT5yZWdpb24uYWRkcmVzcyArCisJCQkJ CSAgICAgcmVnaW9uX29mZnNldCksCiAJCQkgIGFjcGlfdXRfZ2V0X3JlZ2lvbl9uYW1lKHJlZ2lv bl9vYmotPnJlZ2lvbi4KIAkJCQkJCSAgc3BhY2VfaWQpKSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvYWNwaS9hY3BpY2EvZXhkdW1wLmMgYi9kcml2ZXJzL2FjcGkvYWNwaWNhL2V4ZHVtcC5jCmlu ZGV4IDYxYjhjMGUuLmM1NzJmYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpY2EvZXhk dW1wLmMKKysrIGIvZHJpdmVycy9hY3BpL2FjcGljYS9leGR1bXAuYwpAQCAtNjEzLDggKzYxMyw4 IEBAIHZvaWQgYWNwaV9leF9kdW1wX29wZXJhbmQodW5pb24gYWNwaV9vcGVyYW5kX29iamVjdCAq b2JqX2Rlc2MsIHUzMiBkZXB0aCkKIAkJCWFjcGlfb3NfcHJpbnRmKCJcbiIpOwogCQl9IGVsc2Ug ewogCQkJYWNwaV9vc19wcmludGYoIiBiYXNlICU4LjhYJTguOFggTGVuZ3RoICVYXG4iLAotCQkJ CSAgICAgICBBQ1BJX0ZPUk1BVF9OQVRJVkVfVUlOVChvYmpfZGVzYy0+cmVnaW9uLgotCQkJCQkJ CSAgICAgICBhZGRyZXNzKSwKKwkJCQkgICAgICAgQUNQSV9GT1JNQVRfVUlOVDY0KG9ial9kZXNj LT5yZWdpb24uCisJCQkJCQkJICBhZGRyZXNzKSwKIAkJCQkgICAgICAgb2JqX2Rlc2MtPnJlZ2lv bi5sZW5ndGgpOwogCQl9CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlj YS9leGZsZGlvLmMgYi9kcml2ZXJzL2FjcGkvYWNwaWNhL2V4ZmxkaW8uYwppbmRleCBiMzM0ZjU0 Li5iZTIyMTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvYWNwaWNhL2V4ZmxkaW8uYworKysg Yi9kcml2ZXJzL2FjcGkvYWNwaWNhL2V4ZmxkaW8uYwpAQCAtMjU3LDE3ICsyNTcsMTUgQEAgYWNw aV9leF9hY2Nlc3NfcmVnaW9uKHVuaW9uIGFjcGlfb3BlcmFuZF9vYmplY3QgKm9ial9kZXNjLAog CX0KIAogCUFDUElfREVCVUdfUFJJTlRfUkFXKChBQ1BJX0RCX0JGSUVMRCwKLQkJCSAgICAgICIg UmVnaW9uIFslczolWF0sIFdpZHRoICVYLCBCeXRlQmFzZSAlWCwgT2Zmc2V0ICVYIGF0ICVwXG4i LAorCQkJICAgICAgIiBSZWdpb24gWyVzOiVYXSwgV2lkdGggJVgsIEJ5dGVCYXNlICVYLCBPZmZz ZXQgJVggYXQgJTguOFglOC44WFxuIiwKIAkJCSAgICAgIGFjcGlfdXRfZ2V0X3JlZ2lvbl9uYW1l KHJnbl9kZXNjLT5yZWdpb24uCiAJCQkJCQkgICAgICBzcGFjZV9pZCksCiAJCQkgICAgICByZ25f ZGVzYy0+cmVnaW9uLnNwYWNlX2lkLAogCQkJICAgICAgb2JqX2Rlc2MtPmNvbW1vbl9maWVsZC5h Y2Nlc3NfYnl0ZV93aWR0aCwKIAkJCSAgICAgIG9ial9kZXNjLT5jb21tb25fZmllbGQuYmFzZV9i eXRlX29mZnNldCwKLQkJCSAgICAgIGZpZWxkX2RhdHVtX2J5dGVfb2Zmc2V0LCBBQ1BJX0NBU1Rf UFRSKHZvaWQsCi0JCQkJCQkJCSAgICAgKHJnbl9kZXNjLT4KLQkJCQkJCQkJICAgICAgcmVnaW9u LgotCQkJCQkJCQkgICAgICBhZGRyZXNzICsKLQkJCQkJCQkJICAgICAgcmVnaW9uX29mZnNldCkp KSk7CisJCQkgICAgICBmaWVsZF9kYXR1bV9ieXRlX29mZnNldCwKKwkJCSAgICAgIEFDUElfRk9S TUFUX1VJTlQ2NChyZ25fZGVzYy0+cmVnaW9uLmFkZHJlc3MgKworCQkJCQkJIHJlZ2lvbl9vZmZz ZXQpKSk7CiAKIAkvKiBJbnZva2UgdGhlIGFwcHJvcHJpYXRlIGFkZHJlc3Nfc3BhY2Uvb3BfcmVn aW9uIGhhbmRsZXIgKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGljYS9leHJlZ2lv bi5jIGIvZHJpdmVycy9hY3BpL2FjcGljYS9leHJlZ2lvbi5jCmluZGV4IGYwZDVlMTQuLmRkNWU5 MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpY2EvZXhyZWdpb24uYworKysgYi9kcml2 ZXJzL2FjcGkvYWNwaWNhL2V4cmVnaW9uLmMKQEAgLTE3NCw3ICsxNzQsNyBAQCBhY3BpX2V4X3N5 c3RlbV9tZW1vcnlfc3BhY2VfaGFuZGxlcih1MzIgZnVuY3Rpb24sCiAJCWlmICghbWVtX2luZm8t Pm1hcHBlZF9sb2dpY2FsX2FkZHJlc3MpIHsKIAkJCUFDUElfRVJST1IoKEFFX0lORk8sCiAJCQkJ ICAgICJDb3VsZCBub3QgbWFwIG1lbW9yeSBhdCAweCU4LjhYJTguOFgsIHNpemUgJXUiLAotCQkJ CSAgICBBQ1BJX0ZPUk1BVF9OQVRJVkVfVUlOVChhZGRyZXNzKSwKKwkJCQkgICAgQUNQSV9GT1JN QVRfVUlOVDY0KGFkZHJlc3MpLAogCQkJCSAgICAodTMyKSBtYXBfbGVuZ3RoKSk7CiAJCQltZW1f aW5mby0+bWFwcGVkX2xlbmd0aCA9IDA7CiAJCQlyZXR1cm5fQUNQSV9TVEFUVVMoQUVfTk9fTUVN T1JZKTsKQEAgLTE5NSw4ICsxOTUsNyBAQCBhY3BpX2V4X3N5c3RlbV9tZW1vcnlfc3BhY2VfaGFu ZGxlcih1MzIgZnVuY3Rpb24sCiAKIAlBQ1BJX0RFQlVHX1BSSU5UKChBQ1BJX0RCX0lORk8sCiAJ CQkgICJTeXN0ZW0tTWVtb3J5ICh3aWR0aCAldSkgUi9XICV1IEFkZHJlc3M9JTguOFglOC44WFxu IiwKLQkJCSAgYml0X3dpZHRoLCBmdW5jdGlvbiwKLQkJCSAgQUNQSV9GT1JNQVRfTkFUSVZFX1VJ TlQoYWRkcmVzcykpKTsKKwkJCSAgYml0X3dpZHRoLCBmdW5jdGlvbiwgQUNQSV9GT1JNQVRfVUlO VDY0KGFkZHJlc3MpKSk7CiAKIAkvKgogCSAqIFBlcmZvcm0gdGhlIG1lbW9yeSByZWFkIG9yIHdy aXRlCkBAIC0yOTgsOCArMjk3LDcgQEAgYWNwaV9leF9zeXN0ZW1faW9fc3BhY2VfaGFuZGxlcih1 MzIgZnVuY3Rpb24sCiAKIAlBQ1BJX0RFQlVHX1BSSU5UKChBQ1BJX0RCX0lORk8sCiAJCQkgICJT eXN0ZW0tSU8gKHdpZHRoICV1KSBSL1cgJXUgQWRkcmVzcz0lOC44WCU4LjhYXG4iLAotCQkJICBi aXRfd2lkdGgsIGZ1bmN0aW9uLAotCQkJICBBQ1BJX0ZPUk1BVF9OQVRJVkVfVUlOVChhZGRyZXNz KSkpOworCQkJICBiaXRfd2lkdGgsIGZ1bmN0aW9uLCBBQ1BJX0ZPUk1BVF9VSU5UNjQoYWRkcmVz cykpKTsKIAogCS8qIERlY29kZSB0aGUgZnVuY3Rpb24gcGFyYW1ldGVyICovCiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvYWNwaS9hY3BpY2EvaHd2YWxpZC5jIGIvZHJpdmVycy9hY3BpL2FjcGljYS9o d3ZhbGlkLmMKaW5kZXggNWYxNjA1OC4uZDQzYjhhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3Bp L2FjcGljYS9od3ZhbGlkLmMKKysrIGIvZHJpdmVycy9hY3BpL2FjcGljYS9od3ZhbGlkLmMKQEAg LTE0MSwxNyArMTQxLDE3IEBAIGFjcGlfaHdfdmFsaWRhdGVfaW9fcmVxdWVzdChhY3BpX2lvX2Fk ZHJlc3MgYWRkcmVzcywgdTMyIGJpdF93aWR0aCkKIAlieXRlX3dpZHRoID0gQUNQSV9ESVZfOChi aXRfd2lkdGgpOwogCWxhc3RfYWRkcmVzcyA9IGFkZHJlc3MgKyBieXRlX3dpZHRoIC0gMTsKIAot CUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJfSU8sICJBZGRyZXNzICVwIExhc3RBZGRyZXNzICVw IExlbmd0aCAlWCIsCi0JCQkgIEFDUElfQ0FTVF9QVFIodm9pZCwgYWRkcmVzcyksIEFDUElfQ0FT VF9QVFIodm9pZCwKLQkJCQkJCQkJICAgICAgbGFzdF9hZGRyZXNzKSwKLQkJCSAgYnl0ZV93aWR0 aCkpOworCUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJfSU8sCisJCQkgICJBZGRyZXNzICU4LjhY JTguOFggTGFzdEFkZHJlc3MgJTguOFglOC44WCBMZW5ndGggJVgiLAorCQkJICBBQ1BJX0ZPUk1B VF9VSU5UNjQoYWRkcmVzcyksCisJCQkgIEFDUElfRk9STUFUX1VJTlQ2NChsYXN0X2FkZHJlc3Mp LCBieXRlX3dpZHRoKSk7CiAKIAkvKiBNYXhpbXVtIDE2LWJpdCBhZGRyZXNzIGluIEkvTyBzcGFj ZSAqLwogCiAJaWYgKGxhc3RfYWRkcmVzcyA+IEFDUElfVUlOVDE2X01BWCkgewogCQlBQ1BJX0VS Uk9SKChBRV9JTkZPLAotCQkJICAgICJJbGxlZ2FsIEkvTyBwb3J0IGFkZHJlc3MvbGVuZ3RoIGFi b3ZlIDY0SzogJXAvMHglWCIsCi0JCQkgICAgQUNQSV9DQVNUX1BUUih2b2lkLCBhZGRyZXNzKSwg Ynl0ZV93aWR0aCkpOworCQkJICAgICJJbGxlZ2FsIEkvTyBwb3J0IGFkZHJlc3MvbGVuZ3RoIGFi b3ZlIDY0SzogJTguOFglOC44WC8weCVYIiwKKwkJCSAgICBBQ1BJX0ZPUk1BVF9VSU5UNjQoYWRk cmVzcyksIGJ5dGVfd2lkdGgpKTsKIAkJcmV0dXJuX0FDUElfU1RBVFVTKEFFX0xJTUlUKTsKIAl9 CiAKQEAgLTE4MCw4ICsxODAsOCBAQCBhY3BpX2h3X3ZhbGlkYXRlX2lvX3JlcXVlc3QoYWNwaV9p b19hZGRyZXNzIGFkZHJlc3MsIHUzMiBiaXRfd2lkdGgpCiAKIAkJCWlmIChhY3BpX2dibF9vc2lf ZGF0YSA+PSBwb3J0X2luZm8tPm9zaV9kZXBlbmRlbmN5KSB7CiAJCQkJQUNQSV9ERUJVR19QUklO VCgoQUNQSV9EQl9JTywKLQkJCQkJCSAgIkRlbmllZCBBTUwgYWNjZXNzIHRvIHBvcnQgMHglcC8l WCAoJXMgMHglLjRYLTB4JS40WCkiLAotCQkJCQkJICBBQ1BJX0NBU1RfUFRSKHZvaWQsIGFkZHJl c3MpLAorCQkJCQkJICAiRGVuaWVkIEFNTCBhY2Nlc3MgdG8gcG9ydCAweCU4LjhYJTguOFgvJVgg KCVzIDB4JS40WC0weCUuNFgpIiwKKwkJCQkJCSAgQUNQSV9GT1JNQVRfVUlOVDY0KGFkZHJlc3Mp LAogCQkJCQkJICBieXRlX3dpZHRoLCBwb3J0X2luZm8tPm5hbWUsCiAJCQkJCQkgIHBvcnRfaW5m by0+c3RhcnQsCiAJCQkJCQkgIHBvcnRfaW5mby0+ZW5kKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2FjcGkvYWNwaWNhL25zZHVtcC5jIGIvZHJpdmVycy9hY3BpL2FjcGljYS9uc2R1bXAuYwppbmRl eCBiNjgzY2MyLi4wYTY4YzczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvYWNwaWNhL25zZHVt cC5jCisrKyBiL2RyaXZlcnMvYWNwaS9hY3BpY2EvbnNkdW1wLmMKQEAgLTI1MSwxMiArMjUxLDEx IEBAIGFjcGlfbnNfZHVtcF9vbmVfb2JqZWN0KGFjcGlfaGFuZGxlIG9ial9oYW5kbGUsCiAJCXN3 aXRjaCAodHlwZSkgewogCQljYXNlIEFDUElfVFlQRV9QUk9DRVNTT1I6CiAKLQkJCWFjcGlfb3Nf cHJpbnRmKCJJRCAlWCBMZW4gJS40WCBBZGRyICVwXG4iLAorCQkJYWNwaV9vc19wcmludGYoIklE ICUwMlggTGVuICUwMlggQWRkciAlOC44WCU4LjhYXG4iLAogCQkJCSAgICAgICBvYmpfZGVzYy0+ cHJvY2Vzc29yLnByb2NfaWQsCiAJCQkJICAgICAgIG9ial9kZXNjLT5wcm9jZXNzb3IubGVuZ3Ro LAotCQkJCSAgICAgICBBQ1BJX0NBU1RfUFRSKHZvaWQsCi0JCQkJCQkgICAgIG9ial9kZXNjLT5w cm9jZXNzb3IuCi0JCQkJCQkgICAgIGFkZHJlc3MpKTsKKwkJCQkgICAgICAgQUNQSV9GT1JNQVRf VUlOVDY0KG9ial9kZXNjLT5wcm9jZXNzb3IuCisJCQkJCQkJICBhZGRyZXNzKSk7CiAJCQlicmVh azsKIAogCQljYXNlIEFDUElfVFlQRV9ERVZJQ0U6CkBAIC0zMjcsOCArMzI2LDkgQEAgYWNwaV9u c19kdW1wX29uZV9vYmplY3QoYWNwaV9oYW5kbGUgb2JqX2hhbmRsZSwKIAkJCQkJCQkgICAgICAg c3BhY2VfaWQpKTsKIAkJCWlmIChvYmpfZGVzYy0+cmVnaW9uLmZsYWdzICYgQU9QT0JKX0RBVEFf VkFMSUQpIHsKIAkJCQlhY3BpX29zX3ByaW50ZigiIEFkZHIgJTguOFglOC44WCBMZW4gJS40WFxu IiwKLQkJCQkJICAgICAgIEFDUElfRk9STUFUX05BVElWRV9VSU5UCi0JCQkJCSAgICAgICAob2Jq X2Rlc2MtPnJlZ2lvbi5hZGRyZXNzKSwKKwkJCQkJICAgICAgIEFDUElfRk9STUFUX1VJTlQ2NChv YmpfZGVzYy0+CisJCQkJCQkJCSAgcmVnaW9uLgorCQkJCQkJCQkgIGFkZHJlc3MpLAogCQkJCQkg ICAgICAgb2JqX2Rlc2MtPnJlZ2lvbi5sZW5ndGgpOwogCQkJfSBlbHNlIHsKIAkJCQlhY3BpX29z X3ByaW50ZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGljYS90Ymluc3RhbC5jIGIvZHJp dmVycy9hY3BpL2FjcGljYS90Ymluc3RhbC5jCmluZGV4IDYyMzY1ZjYuLjA4YTMzODAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpY2EvdGJpbnN0YWwuYworKysgYi9kcml2ZXJzL2FjcGkv YWNwaWNhL3RiaW5zdGFsLmMKQEAgLTIyOCw5ICsyMjgsOSBAQCBhY3BpX3RiX2FkZF90YWJsZShz dHJ1Y3QgYWNwaV90YWJsZV9kZXNjICp0YWJsZV9kZXNjLCB1MzIgKnRhYmxlX2luZGV4KQogCXN0 YXR1cyA9IGFjcGlfb3NfdGFibGVfb3ZlcnJpZGUodGFibGVfZGVzYy0+cG9pbnRlciwgJm92ZXJy aWRlX3RhYmxlKTsKIAlpZiAoQUNQSV9TVUNDRVNTKHN0YXR1cykgJiYgb3ZlcnJpZGVfdGFibGUp IHsKIAkJQUNQSV9JTkZPKChBRV9JTkZPLAotCQkJICAgIiU0LjRzIEAgMHglcCBUYWJsZSBvdmVy cmlkZSwgcmVwbGFjZWQgd2l0aDoiLAorCQkJICAgIiU0LjRzIEAgMHglOC44WCU4LjhYIFRhYmxl IG92ZXJyaWRlLCByZXBsYWNlZCB3aXRoOiIsCiAJCQkgICB0YWJsZV9kZXNjLT5wb2ludGVyLT5z aWduYXR1cmUsCi0JCQkgICBBQ1BJX0NBU1RfUFRSKHZvaWQsIHRhYmxlX2Rlc2MtPmFkZHJlc3Mp KSk7CisJCQkgICBBQ1BJX0ZPUk1BVF9VSU5UNjQodGFibGVfZGVzYy0+YWRkcmVzcykpKTsKIAog CQkvKiBXZSBjYW4gZGVsZXRlIHRoZSB0YWJsZSB0aGF0IHdhcyBwYXNzZWQgYXMgYSBwYXJhbWV0 ZXIgKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGljYS90YnV0aWxzLmMgYi9kcml2 ZXJzL2FjcGkvYWNwaWNhL3RidXRpbHMuYwppbmRleCAwZjJkMzk1Li4yNGRlNzhmZSAxMDA2NDQK LS0tIGEvZHJpdmVycy9hY3BpL2FjcGljYS90YnV0aWxzLmMKKysrIGIvZHJpdmVycy9hY3BpL2Fj cGljYS90YnV0aWxzLmMKQEAgLTIzNywxNiArMjM3LDEyIEBAIGFjcGlfdGJfcHJpbnRfdGFibGVf aGVhZGVyKGFjcGlfcGh5c2ljYWxfYWRkcmVzcyBhZGRyZXNzLAogewogCXN0cnVjdCBhY3BpX3Rh YmxlX2hlYWRlciBsb2NhbF9oZWFkZXI7CiAKLQkvKgotCSAqIFRoZSByZWFzb24gdGhhdCB0aGUg QWRkcmVzcyBpcyBjYXN0IHRvIGEgdm9pZCBwb2ludGVyIGlzIHNvIHRoYXQgd2UKLQkgKiBjYW4g dXNlICVwIHdoaWNoIHdpbGwgd29yayBwcm9wZXJseSBvbiBib3RoIDMyLWJpdCBhbmQgNjQtYml0 IGhvc3RzLgotCSAqLwogCWlmIChBQ1BJX0NPTVBBUkVfTkFNRShoZWFkZXItPnNpZ25hdHVyZSwg QUNQSV9TSUdfRkFDUykpIHsKIAogCQkvKiBGQUNTIG9ubHkgaGFzIHNpZ25hdHVyZSBhbmQgbGVu Z3RoIGZpZWxkcyAqLwogCi0JCUFDUElfSU5GTygoQUVfSU5GTywgIiU0LjRzICVwICUwNVgiLAot CQkJICAgaGVhZGVyLT5zaWduYXR1cmUsIEFDUElfQ0FTVF9QVFIodm9pZCwgYWRkcmVzcyksCisJ CUFDUElfSU5GTygoQUVfSU5GTywgIiU0LjRzIDB4JTguOFglOC44WCAlMDVYIiwKKwkJCSAgIGhl YWRlci0+c2lnbmF0dXJlLCBBQ1BJX0ZPUk1BVF9VSU5UNjQoYWRkcmVzcyksCiAJCQkgICBoZWFk ZXItPmxlbmd0aCkpOwogCX0gZWxzZSBpZiAoQUNQSV9DT01QQVJFX05BTUUoaGVhZGVyLT5zaWdu YXR1cmUsIEFDUElfU0lHX1JTRFApKSB7CiAKQEAgLTI1Nyw4ICsyNTMsOCBAQCBhY3BpX3RiX3By aW50X3RhYmxlX2hlYWRlcihhY3BpX3BoeXNpY2FsX2FkZHJlc3MgYWRkcmVzcywKIAkJCQkJICBo ZWFkZXIpLT5vZW1faWQsIEFDUElfT0VNX0lEX1NJWkUpOwogCQlhY3BpX3RiX2ZpeF9zdHJpbmco bG9jYWxfaGVhZGVyLm9lbV9pZCwgQUNQSV9PRU1fSURfU0laRSk7CiAKLQkJQUNQSV9JTkZPKChB RV9JTkZPLCAiUlNEUCAlcCAlMDVYICh2JS4yZCAlNi42cykiLAotCQkJICAgQUNQSV9DQVNUX1BU UiAodm9pZCwgYWRkcmVzcyksCisJCUFDUElfSU5GTygoQUVfSU5GTywgIlJTRFAgMHglOC44WCU4 LjhYICUwNVggKHYlLjJkICU2LjZzKSIsCisJCQkgICBBQ1BJX0ZPUk1BVF9VSU5UNjQoYWRkcmVz cyksCiAJCQkgICAoQUNQSV9DQVNUX1BUUihzdHJ1Y3QgYWNwaV90YWJsZV9yc2RwLCBoZWFkZXIp LT4KIAkJCSAgICByZXZpc2lvbiA+CiAJCQkgICAgMCkgPyBBQ1BJX0NBU1RfUFRSKHN0cnVjdCBh Y3BpX3RhYmxlX3JzZHAsCkBAIC0yNzIsOCArMjY4LDggQEAgYWNwaV90Yl9wcmludF90YWJsZV9o ZWFkZXIoYWNwaV9waHlzaWNhbF9hZGRyZXNzIGFkZHJlc3MsCiAJCWFjcGlfdGJfY2xlYW51cF90 YWJsZV9oZWFkZXIoJmxvY2FsX2hlYWRlciwgaGVhZGVyKTsKIAogCQlBQ1BJX0lORk8oKEFFX0lO Rk8sCi0JCQkgICAiJTQuNHMgJXAgJTA1WCAodiUuMmQgJTYuNnMgJTguOHMgJTA4WCAlNC40cyAl MDhYKSIsCi0JCQkgICBsb2NhbF9oZWFkZXIuc2lnbmF0dXJlLCBBQ1BJX0NBU1RfUFRSKHZvaWQs IGFkZHJlc3MpLAorCQkJICAgIiUtNC40cyAweCU4LjhYJTguOFggJTA1WCAodiUuMmQgJS02LjZz ICUtOC44cyAlMDhYICUtNC40cyAlMDhYKSIsCisJCQkgICBsb2NhbF9oZWFkZXIuc2lnbmF0dXJl LCBBQ1BJX0ZPUk1BVF9VSU5UNjQoYWRkcmVzcyksCiAJCQkgICBsb2NhbF9oZWFkZXIubGVuZ3Ro LCBsb2NhbF9oZWFkZXIucmV2aXNpb24sCiAJCQkgICBsb2NhbF9oZWFkZXIub2VtX2lkLCBsb2Nh bF9oZWFkZXIub2VtX3RhYmxlX2lkLAogCQkJICAgbG9jYWxfaGVhZGVyLm9lbV9yZXZpc2lvbiwK QEAgLTQ4OCw5ICs0ODQsOCBAQCBhY3BpX3RiX2luc3RhbGxfdGFibGUoYWNwaV9waHlzaWNhbF9h ZGRyZXNzIGFkZHJlc3MsCiAJc3RhdHVzID0gYWNwaV9vc190YWJsZV9vdmVycmlkZShtYXBwZWRf dGFibGUsICZvdmVycmlkZV90YWJsZSk7CiAJaWYgKEFDUElfU1VDQ0VTUyhzdGF0dXMpICYmIG92 ZXJyaWRlX3RhYmxlKSB7CiAJCUFDUElfSU5GTygoQUVfSU5GTywKLQkJCSAgICIlNC40cyBAIDB4 JXAgVGFibGUgb3ZlcnJpZGUsIHJlcGxhY2VkIHdpdGg6IiwKLQkJCSAgIG1hcHBlZF90YWJsZS0+ c2lnbmF0dXJlLCBBQ1BJX0NBU1RfUFRSKHZvaWQsCi0JCQkJCQkJCSAgYWRkcmVzcykpKTsKKwkJ CSAgICIlNC40cyBAIDB4JTguOFglOC44WCBUYWJsZSBvdmVycmlkZSwgcmVwbGFjZWQgd2l0aDoi LAorCQkJICAgbWFwcGVkX3RhYmxlLT5zaWduYXR1cmUsIEFDUElfRk9STUFUX1VJTlQ2NChhZGRy ZXNzKSkpOwogCiAJCWFjcGlfZ2JsX3Jvb3RfdGFibGVfbGlzdC50YWJsZXNbdGFibGVfaW5kZXhd LnBvaW50ZXIgPQogCQkgICAgb3ZlcnJpZGVfdGFibGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Fj cGkvYWNwaWNhL3RieGZyb290LmMgYi9kcml2ZXJzL2FjcGkvYWNwaWNhL3RieGZyb290LmMKaW5k ZXggN2ViNmM2Yy4uMDI3MmZiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2FjcGljYS90Ynhm cm9vdC5jCisrKyBiL2RyaXZlcnMvYWNwaS9hY3BpY2EvdGJ4ZnJvb3QuYwpAQCAtMTE5LDcgKzEx OSw3IEBAIHN0YXRpYyBhY3BpX3N0YXR1cyBhY3BpX3RiX3ZhbGlkYXRlX3JzZHAoc3RydWN0IGFj cGlfdGFibGVfcnNkcCAqcnNkcCkKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi1hY3Bp X3N0YXR1cyBhY3BpX2ZpbmRfcm9vdF9wb2ludGVyKGFjcGlfc2l6ZSAqdGFibGVfYWRkcmVzcykK K2FjcGlfc3RhdHVzIGFjcGlfZmluZF9yb290X3BvaW50ZXIoYWNwaV9waHlzaWNhbF9hZGRyZXNz ICogdGFibGVfYWRkcmVzcykKIHsKIAl1OCAqdGFibGVfcHRyOwogCXU4ICptZW1fcm92ZXI7CkBA IC0xNzcsNyArMTc3LDggQEAgYWNwaV9zdGF0dXMgYWNwaV9maW5kX3Jvb3RfcG9pbnRlcihhY3Bp X3NpemUgKnRhYmxlX2FkZHJlc3MpCiAJCQlwaHlzaWNhbF9hZGRyZXNzICs9CiAJCQkgICAgKHUz MikgQUNQSV9QVFJfRElGRihtZW1fcm92ZXIsIHRhYmxlX3B0cik7CiAKLQkJCSp0YWJsZV9hZGRy ZXNzID0gcGh5c2ljYWxfYWRkcmVzczsKKwkJCSp0YWJsZV9hZGRyZXNzID0KKwkJCSAgICAoYWNw aV9waHlzaWNhbF9hZGRyZXNzKSBwaHlzaWNhbF9hZGRyZXNzOwogCQkJcmV0dXJuX0FDUElfU1RB VFVTKEFFX09LKTsKIAkJfQogCX0KQEAgLTIxMCw3ICsyMTEsNyBAQCBhY3BpX3N0YXR1cyBhY3Bp X2ZpbmRfcm9vdF9wb2ludGVyKGFjcGlfc2l6ZSAqdGFibGVfYWRkcmVzcykKIAkJICAgIChBQ1BJ X0hJX1JTRFBfV0lORE9XX0JBU0UgKwogCQkgICAgIEFDUElfUFRSX0RJRkYobWVtX3JvdmVyLCB0 YWJsZV9wdHIpKTsKIAotCQkqdGFibGVfYWRkcmVzcyA9IHBoeXNpY2FsX2FkZHJlc3M7CisJCSp0 YWJsZV9hZGRyZXNzID0gKGFjcGlfcGh5c2ljYWxfYWRkcmVzcykgcGh5c2ljYWxfYWRkcmVzczsK IAkJcmV0dXJuX0FDUElfU1RBVFVTKEFFX09LKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv YWNwaS9vc2wuYyBiL2RyaXZlcnMvYWNwaS9vc2wuYwppbmRleCBhNjY2NGQyLi43YmU3YWE2IDEw MDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvb3NsLmMKKysrIGIvZHJpdmVycy9hY3BpL29zbC5jCkBA IC0xNzksNyArMTc5LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGFjcGlfcmVxdWVzdF9yZWdpb24g KHN0cnVjdCBhY3BpX2dlbmVyaWNfYWRkcmVzcyAqYWRkciwKIAkJcmVxdWVzdF9tZW1fcmVnaW9u KGFkZHItPmFkZHJlc3MsIGxlbmd0aCwgZGVzYyk7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IGFj cGlfcmVzZXJ2ZV9yZXNvdXJjZXModm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCBhY3BpX3Jlc2Vy dmVfcmVzb3VyY2VzKHZvaWQpCiB7CiAJYWNwaV9yZXF1ZXN0X3JlZ2lvbigmYWNwaV9nYmxfRkFE VC54cG0xYV9ldmVudF9ibG9jaywgYWNwaV9nYmxfRkFEVC5wbTFfZXZlbnRfbGVuZ3RoLAogCQki QUNQSSBQTTFhX0VWVF9CTEsiKTsKQEAgLTIwOCwxMCArMjA4LDcgQEAgc3RhdGljIGludCBfX2lu aXQgYWNwaV9yZXNlcnZlX3Jlc291cmNlcyh2b2lkKQogCWlmICghKGFjcGlfZ2JsX0ZBRFQuZ3Bl MV9ibG9ja19sZW5ndGggJiAweDEpKQogCQlhY3BpX3JlcXVlc3RfcmVnaW9uKCZhY3BpX2dibF9G QURULnhncGUxX2Jsb2NrLAogCQkJICAgICAgIGFjcGlfZ2JsX0ZBRFQuZ3BlMV9ibG9ja19sZW5n dGgsICJBQ1BJIEdQRTFfQkxLIik7Ci0KLQlyZXR1cm4gMDsKIH0KLWRldmljZV9pbml0Y2FsbChh Y3BpX3Jlc2VydmVfcmVzb3VyY2VzKTsKIAogdm9pZCBhY3BpX29zX3ByaW50Zihjb25zdCBjaGFy ICpmbXQsIC4uLikKIHsKQEAgLTE2MzAsNiArMTYyNyw3IEBAIGFjcGlfc3RhdHVzIF9faW5pdCBh Y3BpX29zX2luaXRpYWxpemUodm9pZCkKIAogYWNwaV9zdGF0dXMgX19pbml0IGFjcGlfb3NfaW5p dGlhbGl6ZTEodm9pZCkKIHsKKwlhY3BpX3Jlc2VydmVfcmVzb3VyY2VzKCk7CiAJa2FjcGlkX3dx ID0gYWxsb2Nfd29ya3F1ZXVlKCJrYWNwaWQiLCAwLCAxKTsKIAlrYWNwaV9ub3RpZnlfd3EgPSBh bGxvY193b3JrcXVldWUoImthY3BpX25vdGlmeSIsIDAsIDEpOwogCWthY3BpX2hvdHBsdWdfd3Eg PSBhbGxvY193b3JrcXVldWUoImthY3BpX2hvdHBsdWciLCAwLCAxKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvYXRhL2FoY2kuYyBiL2RyaXZlcnMvYXRhL2FoY2kuYwppbmRleCA4MWYzMmU1Li5lMjk1 OGFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9haGNpLmMKKysrIGIvZHJpdmVycy9hdGEvYWhj aS5jCkBAIC02Nyw2ICs2Nyw3IEBAIGVudW0gYm9hcmRfaWRzIHsKIAlib2FyZF9haGNpX3llc19m YnMsCiAKIAkvKiBib2FyZCBJRHMgZm9yIHNwZWNpZmljIGNoaXBzZXRzIGluIGFscGhhYmV0aWNh bCBvcmRlciAqLworCWJvYXJkX2FoY2lfYXZuLAogCWJvYXJkX2FoY2lfbWNwNjUsCiAJYm9hcmRf YWhjaV9tY3A3NywKIAlib2FyZF9haGNpX21jcDg5LApAQCAtODUsNiArODYsOCBAQCBlbnVtIGJv YXJkX2lkcyB7CiBzdGF0aWMgaW50IGFoY2lfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYs IGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpOwogc3RhdGljIGludCBhaGNpX3Z0ODI1 MV9oYXJkcmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBpbnQgKmNsYXNzLAog CQkJCSB1bnNpZ25lZCBsb25nIGRlYWRsaW5lKTsKK3N0YXRpYyBpbnQgYWhjaV9hdm5faGFyZHJl c2V0KHN0cnVjdCBhdGFfbGluayAqbGluaywgdW5zaWduZWQgaW50ICpjbGFzcywKKwkJCSAgICAg IHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpOwogc3RhdGljIGludCBhaGNpX3A1d2RoX2hhcmRyZXNl dChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCiAJCQkJdW5zaWdu ZWQgbG9uZyBkZWFkbGluZSk7CiAjaWZkZWYgQ09ORklHX1BNCkBAIC0xMDgsNiArMTExLDExIEBA IHN0YXRpYyBzdHJ1Y3QgYXRhX3BvcnRfb3BlcmF0aW9ucyBhaGNpX3A1d2RoX29wcyA9IHsKIAog I2RlZmluZSBBSENJX0hGTEFHUyhmbGFncykJLnByaXZhdGVfZGF0YQk9ICh2b2lkICopKGZsYWdz KQogCitzdGF0aWMgc3RydWN0IGF0YV9wb3J0X29wZXJhdGlvbnMgYWhjaV9hdm5fb3BzID0gewor CS5pbmhlcml0cwkJPSAmYWhjaV9vcHMsCisJLmhhcmRyZXNldAkJPSBhaGNpX2F2bl9oYXJkcmVz ZXQsCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGF0YV9wb3J0X2luZm8gYWhjaV9wb3J0X2lu Zm9bXSA9IHsKIAkvKiBieSBmZWF0dXJlcyAqLwogCVtib2FyZF9haGNpXSA9CkBAIC0xNTYsNiAr MTY0LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRhX3BvcnRfaW5mbyBhaGNpX3BvcnRfaW5m b1tdID0gewogCQkucG9ydF9vcHMJPSAmYWhjaV9vcHMsCiAJfSwKIAkvKiBieSBjaGlwc2V0cyAq LworCVtib2FyZF9haGNpX2F2bl0gPSB7CisJCS5mbGFncwkJPSBBSENJX0ZMQUdfQ09NTU9OLAor CQkucGlvX21hc2sJPSBBVEFfUElPNCwKKwkJLnVkbWFfbWFzawk9IEFUQV9VRE1BNiwKKwkJLnBv cnRfb3BzCT0gJmFoY2lfYXZuX29wcywKKwl9LAogCVtib2FyZF9haGNpX21jcDY1XSA9CiAJewog CQlBSENJX0hGTEFHUwkoQUhDSV9IRkxBR19OT19GUERNQV9BQSB8IEFIQ0lfSEZMQUdfTk9fUE1Q IHwKQEAgLTMwMiwxNCArMzE2LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9p ZCBhaGNpX3BjaV90YmxbXSA9IHsKIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmMjcpLCBib2Fy ZF9haGNpIH0sIC8qIEF2b3RvbiBSQUlEICovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjJl KSwgYm9hcmRfYWhjaSB9LCAvKiBBdm90b24gUkFJRCAqLwogCXsgUENJX1ZERVZJQ0UoSU5URUws IDB4MWYyZiksIGJvYXJkX2FoY2kgfSwgLyogQXZvdG9uIFJBSUQgKi8KLQl7IFBDSV9WREVWSUNF KElOVEVMLCAweDFmMzIpLCBib2FyZF9haGNpIH0sIC8qIEF2b3RvbiBBSENJICovCi0JeyBQQ0lf VkRFVklDRShJTlRFTCwgMHgxZjMzKSwgYm9hcmRfYWhjaSB9LCAvKiBBdm90b24gQUhDSSAqLwot CXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYzNCksIGJvYXJkX2FoY2kgfSwgLyogQXZvdG9uIFJB SUQgKi8KLQl7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmMzUpLCBib2FyZF9haGNpIH0sIC8qIEF2 b3RvbiBSQUlEICovCi0JeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjM2KSwgYm9hcmRfYWhjaSB9 LCAvKiBBdm90b24gUkFJRCAqLwotCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYzNyksIGJvYXJk X2FoY2kgfSwgLyogQXZvdG9uIFJBSUQgKi8KLQl7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmM2Up LCBib2FyZF9haGNpIH0sIC8qIEF2b3RvbiBSQUlEICovCi0JeyBQQ0lfVkRFVklDRShJTlRFTCwg MHgxZjNmKSwgYm9hcmRfYWhjaSB9LCAvKiBBdm90b24gUkFJRCAqLworCXsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4MWYzMiksIGJvYXJkX2FoY2lfYXZuIH0sIC8qIEF2b3RvbiBBSENJICovCisJeyBQ Q0lfVkRFVklDRShJTlRFTCwgMHgxZjMzKSwgYm9hcmRfYWhjaV9hdm4gfSwgLyogQXZvdG9uIEFI Q0kgKi8KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmMzQpLCBib2FyZF9haGNpX2F2biB9LCAv KiBBdm90b24gUkFJRCAqLworCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYzNSksIGJvYXJkX2Fo Y2lfYXZuIH0sIC8qIEF2b3RvbiBSQUlEICovCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjM2 KSwgYm9hcmRfYWhjaV9hdm4gfSwgLyogQXZvdG9uIFJBSUQgKi8KKwl7IFBDSV9WREVWSUNFKElO VEVMLCAweDFmMzcpLCBib2FyZF9haGNpX2F2biB9LCAvKiBBdm90b24gUkFJRCAqLworCXsgUENJ X1ZERVZJQ0UoSU5URUwsIDB4MWYzZSksIGJvYXJkX2FoY2lfYXZuIH0sIC8qIEF2b3RvbiBSQUlE ICovCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjNmKSwgYm9hcmRfYWhjaV9hdm4gfSwgLyog QXZvdG9uIFJBSUQgKi8KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhkMDIpLCBib2FyZF9haGNp IH0sIC8qIFdlbGxzYnVyZyBBSENJICovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4ZDA0KSwg Ym9hcmRfYWhjaSB9LCAvKiBXZWxsc2J1cmcgUkFJRCAqLwogCXsgUENJX1ZERVZJQ0UoSU5URUws IDB4OGQwNiksIGJvYXJkX2FoY2kgfSwgLyogV2VsbHNidXJnIFJBSUQgKi8KQEAgLTY4MCw2ICs2 OTQsNzggQEAgc3RhdGljIGludCBhaGNpX3A1d2RoX2hhcmRyZXNldChzdHJ1Y3QgYXRhX2xpbmsg KmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCiAJcmV0dXJuIHJjOwogfQogCisvKgorICogYWhj aV9hdm5faGFyZHJlc2V0IC0gYXR0ZW1wdCBtb3JlIGFnZ3Jlc3NpdmUgcmVjb3Zlcnkgb2YgQXZv dG9uIHBvcnRzLgorICoKKyAqIEl0IGhhcyBiZWVuIG9ic2VydmVkIHdpdGggc29tZSBTU0RzIHRo YXQgdGhlIHRpbWluZyBvZiBldmVudHMgaW4gdGhlCisgKiBsaW5rIHN5bmNocm9uaXphdGlvbiBw aGFzZSBjYW4gbGVhdmUgdGhlIHBvcnQgaW4gYSBzdGF0ZSB0aGF0IGNhbiBub3QKKyAqIGJlIHJl Y292ZXJlZCBieSBhIFNBVEEtaGFyZC1yZXNldCBhbG9uZS4gIFRoZSBmYWlsaW5nIHNpZ25hdHVy ZSBpcworICogU1N0YXR1cy5ERVQgc3R1Y2sgYXQgMSAoIkRldmljZSBwcmVzZW5jZSBkZXRlY3Rl ZCBidXQgUGh5CisgKiBjb21tdW5pY2F0aW9uIG5vdCBlc3RhYmxpc2hlZCIpLiAgSXQgd2FzIGZv dW5kIHRoYXQgdW5sb2FkaW5nIGFuZAorICogcmVsb2FkaW5nIHRoZSBkcml2ZXIgd2hlbiB0aGlz IHByb2JsZW0gb2NjdXJzIGFsbG93cyB0aGUgZHJpdmUKKyAqIGNvbm5lY3Rpb24gdG8gYmUgcmVj b3ZlcmVkIChERVQgYWR2YW5jZWQgdG8gMHgzKS4gIFRoZSBjcml0aWNhbAorICogY29tcG9uZW50 IG9mIHJlbG9hZGluZyB0aGUgZHJpdmVyIGlzIHRoYXQgdGhlIHBvcnQgc3RhdGUgbWFjaGluZXMg YXJlCisgKiByZXNldCBieSBib3VuY2luZyAicG9ydCBlbmFibGUiIGluIHRoZSBBSENJIFBDUyBj b25maWd1cmF0aW9uCisgKiByZWdpc3Rlci4gIFNvLCByZXByb2R1Y2UgdGhhdCBlZmZlY3QgYnkg Ym91bmNpbmcgYSBwb3J0IHdoZW5ldmVyIHdlCisgKiBzZWUgREVUPT0xIGFmdGVyIGEgcmVzZXQu CisgKi8KK3N0YXRpYyBpbnQgYWhjaV9hdm5faGFyZHJlc2V0KHN0cnVjdCBhdGFfbGluayAqbGlu aywgdW5zaWduZWQgaW50ICpjbGFzcywKKwkJCSAgICAgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUp Cit7CisJY29uc3QgdW5zaWduZWQgbG9uZyAqdGltaW5nID0gc2F0YV9laGNfZGViX3RpbWluZygm bGluay0+ZWhfY29udGV4dCk7CisJc3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstPmFwOworCXN0 cnVjdCBhaGNpX3BvcnRfcHJpdiAqcHAgPSBhcC0+cHJpdmF0ZV9kYXRhOworCXU4ICpkMmhfZmlz ID0gcHAtPnJ4X2ZpcyArIFJYX0ZJU19EMkhfUkVHOworCXVuc2lnbmVkIGxvbmcgdG1vID0gZGVh ZGxpbmUgLSBqaWZmaWVzOworCXN0cnVjdCBhdGFfdGFza2ZpbGUgdGY7CisJYm9vbCBvbmxpbmU7 CisJaW50IHJjLCBpOworCisJRFBSSU5USygiRU5URVJcbiIpOworCisJYWhjaV9zdG9wX2VuZ2lu ZShhcCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CisJCXUxNiB2YWw7CisJCXUzMiBz c3RhdHVzOworCQlpbnQgcG9ydCA9IGFwLT5wb3J0X25vOworCQlzdHJ1Y3QgYXRhX2hvc3QgKmhv c3QgPSBhcC0+aG9zdDsKKwkJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGhvc3Qt PmRldik7CisKKwkJLyogY2xlYXIgRDJIIHJlY2VwdGlvbiBhcmVhIHRvIHByb3Blcmx5IHdhaXQg Zm9yIEQySCBGSVMgKi8KKwkJYXRhX3RmX2luaXQobGluay0+ZGV2aWNlLCAmdGYpOworCQl0Zi5j b21tYW5kID0gQVRBX0JVU1k7CisJCWF0YV90Zl90b19maXMoJnRmLCAwLCAwLCBkMmhfZmlzKTsK KworCQlyYyA9IHNhdGFfbGlua19oYXJkcmVzZXQobGluaywgdGltaW5nLCBkZWFkbGluZSwgJm9u bGluZSwKKwkJCQlhaGNpX2NoZWNrX3JlYWR5KTsKKworCQlpZiAoc2F0YV9zY3JfcmVhZChsaW5r LCBTQ1JfU1RBVFVTLCAmc3N0YXR1cykgIT0gMCB8fAorCQkJCShzc3RhdHVzICYgMHhmKSAhPSAx KQorCQkJYnJlYWs7CisKKwkJYXRhX2xpbmtfcHJpbnRrKGxpbmssIEtFUk5fSU5GTywgImF2biBi b3VuY2UgcG9ydCVkXG4iLAorCQkJCXBvcnQpOworCisJCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBk ZXYsIDB4OTIsICZ2YWwpOworCQl2YWwgJj0gfigxIDw8IHBvcnQpOworCQlwY2lfd3JpdGVfY29u ZmlnX3dvcmQocGRldiwgMHg5MiwgdmFsKTsKKwkJYXRhX21zbGVlcChhcCwgMTAwMCk7CisJCXZh bCB8PSAxIDw8IHBvcnQ7CisJCXBjaV93cml0ZV9jb25maWdfd29yZChwZGV2LCAweDkyLCB2YWwp OworCQlkZWFkbGluZSArPSB0bW87CisJfQorCisJYWhjaV9zdGFydF9lbmdpbmUoYXApOworCisJ aWYgKG9ubGluZSkKKwkJKmNsYXNzID0gYWhjaV9kZXZfY2xhc3NpZnkoYXApOworCisJRFBSSU5U SygiRVhJVCwgcmM9JWQsIGNsYXNzPSV1XG4iLCByYywgKmNsYXNzKTsKKwlyZXR1cm4gcmM7Cit9 CisKKwogI2lmZGVmIENPTkZJR19QTQogc3RhdGljIGludCBhaGNpX3BjaV9kZXZpY2Vfc3VzcGVu ZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgcG1fbWVzc2FnZV90IG1lc2cpCiB7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2F0YS9haGNpLmggYi9kcml2ZXJzL2F0YS9haGNpLmgKaW5kZXggYjE3NTAwMC4u Y2RmNThmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvYWhjaS5oCisrKyBiL2RyaXZlcnMvYXRh L2FoY2kuaApAQCAtMzE0LDYgKzMxNCw3IEBAIGV4dGVybiBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqYWhjaV9zZGV2X2F0dHJzW107CiBleHRlcm4gc3RydWN0IGF0YV9wb3J0X29wZXJhdGlvbnMg YWhjaV9vcHM7CiBleHRlcm4gc3RydWN0IGF0YV9wb3J0X29wZXJhdGlvbnMgYWhjaV9wbXBfcmV0 cnlfc3JzdF9vcHM7CiAKK3Vuc2lnbmVkIGludCBhaGNpX2Rldl9jbGFzc2lmeShzdHJ1Y3QgYXRh X3BvcnQgKmFwKTsKIHZvaWQgYWhjaV9maWxsX2NtZF9zbG90KHN0cnVjdCBhaGNpX3BvcnRfcHJp diAqcHAsIHVuc2lnbmVkIGludCB0YWcsCiAJCQl1MzIgb3B0cyk7CiB2b2lkIGFoY2lfc2F2ZV9p bml0aWFsX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0 YS9saWJhaGNpLmMgYi9kcml2ZXJzL2F0YS9saWJhaGNpLmMKaW5kZXggZGUyODAyYy4uNDFmZmI4 YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvbGliYWhjaS5jCisrKyBiL2RyaXZlcnMvYXRhL2xp YmFoY2kuYwpAQCAtMTEzNyw3ICsxMTM3LDcgQEAgc3RhdGljIHZvaWQgYWhjaV9kZXZfY29uZmln KHN0cnVjdCBhdGFfZGV2aWNlICpkZXYpCiAJfQogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50IGFo Y2lfZGV2X2NsYXNzaWZ5KHN0cnVjdCBhdGFfcG9ydCAqYXApCit1bnNpZ25lZCBpbnQgYWhjaV9k ZXZfY2xhc3NpZnkoc3RydWN0IGF0YV9wb3J0ICphcCkKIHsKIAl2b2lkIF9faW9tZW0gKnBvcnRf bW1pbyA9IGFoY2lfcG9ydF9iYXNlKGFwKTsKIAlzdHJ1Y3QgYXRhX3Rhc2tmaWxlIHRmOwpAQCAt MTE1MSw2ICsxMTUxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBhaGNpX2Rldl9jbGFzc2lmeShz dHJ1Y3QgYXRhX3BvcnQgKmFwKQogCiAJcmV0dXJuIGF0YV9kZXZfY2xhc3NpZnkoJnRmKTsKIH0K K0VYUE9SVF9TWU1CT0xfR1BMKGFoY2lfZGV2X2NsYXNzaWZ5KTsKIAogdm9pZCBhaGNpX2ZpbGxf Y21kX3Nsb3Qoc3RydWN0IGFoY2lfcG9ydF9wcml2ICpwcCwgdW5zaWduZWQgaW50IHRhZywKIAkJ CXUzMiBvcHRzKQpAQCAtMTY2OCw4ICsxNjY5LDcgQEAgc3RhdGljIHZvaWQgYWhjaV9wb3J0X2lu dHIoc3RydWN0IGF0YV9wb3J0ICphcCkKIAlpZiAodW5saWtlbHkocmVzZXR0aW5nKSkKIAkJc3Rh dHVzICY9IH5QT1JUX0lSUV9CQURfUE1QOwogCi0JLyogaWYgTFBNIGlzIGVuYWJsZWQsIFBIWVJE WSBkb2Vzbid0IG1lYW4gYW55dGhpbmcgKi8KLQlpZiAoYXAtPmxpbmsubHBtX3BvbGljeSA+IEFU QV9MUE1fTUFYX1BPV0VSKSB7CisJaWYgKHNhdGFfbHBtX2lnbm9yZV9waHlfZXZlbnRzKCZhcC0+ bGluaykpIHsKIAkJc3RhdHVzICY9IH5QT1JUX0lSUV9QSFlSRFk7CiAJCWFoY2lfc2NyX3dyaXRl KCZhcC0+bGluaywgU0NSX0VSUk9SLCBTRVJSX1BIWVJEWV9DSEcpOwogCX0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtY29yZS5jCmlu ZGV4IDVkOGZjM2QuLmZjZDg1ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3Jl LmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYwpAQCAtNjYxNSw2ICs2NjE1LDM4IEBA IHUzMiBhdGFfd2FpdF9yZWdpc3RlcihzdHJ1Y3QgYXRhX3BvcnQgKmFwLCB2b2lkIF9faW9tZW0g KnJlZywgdTMyIG1hc2ssIHUzMiB2YWwsCiAJcmV0dXJuIHRtcDsKIH0KIAorLyoqCisgKglzYXRh X2xwbV9pZ25vcmVfcGh5X2V2ZW50cyAtIHRlc3QgaWYgUEhZIGV2ZW50IHNob3VsZCBiZSBpZ25v cmVkCisgKglAbGluazogTGluayByZWNlaXZpbmcgdGhlIGV2ZW50CisgKgorICoJVGVzdCB3aGV0 aGVyIHRoZSByZWNlaXZlZCBQSFkgZXZlbnQgaGFzIHRvIGJlIGlnbm9yZWQgb3Igbm90LgorICoK KyAqCUxPQ0tJTkc6CisgKglOb25lOgorICoKKyAqCVJFVFVSTlM6CisgKglUcnVlIGlmIHRoZSBl dmVudCBoYXMgdG8gYmUgaWdub3JlZC4KKyAqLworYm9vbCBzYXRhX2xwbV9pZ25vcmVfcGh5X2V2 ZW50cyhzdHJ1Y3QgYXRhX2xpbmsgKmxpbmspCit7CisJdW5zaWduZWQgbG9uZyBscG1fdGltZW91 dCA9IGxpbmstPmxhc3RfbHBtX2NoYW5nZSArCisJCQkJICAgIG1zZWNzX3RvX2ppZmZpZXMoQVRB X1RNT1VUX1NQVVJJT1VTX1BIWSk7CisKKwkvKiBpZiBMUE0gaXMgZW5hYmxlZCwgUEhZUkRZIGRv ZXNuJ3QgbWVhbiBhbnl0aGluZyAqLworCWlmIChsaW5rLT5scG1fcG9saWN5ID4gQVRBX0xQTV9N QVhfUE9XRVIpCisJCXJldHVybiB0cnVlOworCisJLyogaWdub3JlIHRoZSBmaXJzdCBQSFkgZXZl bnQgYWZ0ZXIgdGhlIExQTSBwb2xpY3kgY2hhbmdlZAorCSAqIGFzIGl0IGlzIG1pZ2h0IGJlIHNw dXJpb3VzCisJICovCisJaWYgKChsaW5rLT5mbGFncyAmIEFUQV9MRkxBR19DSEFOR0VEKSAmJgor CSAgICB0aW1lX2JlZm9yZShqaWZmaWVzLCBscG1fdGltZW91dCkpCisJCXJldHVybiB0cnVlOwor CisJcmV0dXJuIGZhbHNlOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F0YV9scG1faWdub3JlX3Bo eV9ldmVudHMpOworCiAvKgogICogRHVtbXkgcG9ydF9vcHMKICAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9hdGEvbGliYXRhLWVoLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtZWguYwppbmRleCA3ZDFh NDc4Li5mNTRiMDc3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvbGliYXRhLWVoLmMKKysrIGIv ZHJpdmVycy9hdGEvbGliYXRhLWVoLmMKQEAgLTM0MjMsNiArMzQyMyw5IEBAIHN0YXRpYyBpbnQg YXRhX2VoX3NldF9scG0oc3RydWN0IGF0YV9saW5rICpsaW5rLCBlbnVtIGF0YV9scG1fcG9saWN5 IHBvbGljeSwKIAkJfQogCX0KIAorCWxpbmstPmxhc3RfbHBtX2NoYW5nZSA9IGppZmZpZXM7CisJ bGluay0+ZmxhZ3MgfD0gQVRBX0xGTEFHX0NIQU5HRUQ7CisKIAlyZXR1cm4gMDsKIAogZmFpbDoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMgYi9kcml2ZXJzL2JsdWV0b290 aC9hdGgzay5jCmluZGV4IDNlYjZhZDIuLjlmMzJmNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmx1 ZXRvb3RoL2F0aDNrLmMKKysrIGIvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYwpAQCAtNjMsNiAr NjMsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYXRoM2tfdGFibGVbXSA9IHsKIAkv KiBBdGhlcm9zIEFSMzAxMSB3aXRoIHNmbGFzaCBmaXJtd2FyZSovCiAJeyBVU0JfREVWSUNFKDB4 MDQ4OSwgMHhFMDI3KSB9LAogCXsgVVNCX0RFVklDRSgweDA0ODksIDB4RTAzRCkgfSwKKwl7IFVT Ql9ERVZJQ0UoMHgwNEYyLCAweEFGRjEpIH0sCiAJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjE1 KSB9LAogCXsgVVNCX0RFVklDRSgweDBDRjMsIDB4MzAwMikgfSwKIAl7IFVTQl9ERVZJQ0UoMHgw Q0YzLCAweEUwMTkpIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jIGIv ZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYwppbmRleCA1YzM4NWU1Li45Mjk3M2EzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jCisrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0 dXNiLmMKQEAgLTE0OCw2ICsxNDgsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYmxh Y2tsaXN0X3RhYmxlW10gPSB7CiAJLyogQXRoZXJvcyAzMDExIHdpdGggc2ZsYXNoIGZpcm13YXJl ICovCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDI3KSwgLmRyaXZlcl9pbmZvID0gQlRVU0Jf SUdOT1JFIH0sCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDNkKSwgLmRyaXZlcl9pbmZvID0g QlRVU0JfSUdOT1JFIH0sCisJeyBVU0JfREVWSUNFKDB4MDRmMiwgMHhhZmYxKSwgLmRyaXZlcl9p bmZvID0gQlRVU0JfSUdOT1JFIH0sCiAJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjE1KSwgLmRy aXZlcl9pbmZvID0gQlRVU0JfSUdOT1JFIH0sCiAJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDAy KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfSUdOT1JFIH0sCiAJeyBVU0JfREVWSUNFKDB4MGNmMywg MHhlMDE5KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfSUdOT1JFIH0sCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2VkYWMvS2NvbmZpZyBiL2RyaXZlcnMvZWRhYy9LY29uZmlnCmluZGV4IDU5NDhhMjEuLjIw MzM2MWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvZWRh Yy9LY29uZmlnCkBAIC0yMTQsNyArMjE0LDcgQEAgY29uZmlnIEVEQUNfSTczMDAKIAogY29uZmln IEVEQUNfU0JSSURHRQogCXRyaXN0YXRlICJJbnRlbCBTYW5keS1CcmlkZ2UgSW50ZWdyYXRlZCBN QyIKLQlkZXBlbmRzIG9uIEVEQUNfTU1fRURBQyAmJiBQQ0kgJiYgWDg2XzY0ICYmIFg4Nl9NQ0Vf SU5URUwKKwlkZXBlbmRzIG9uIEVEQUNfTU1fRURBQyAmJiBQQ0kgJiYgWDg2ICYmIFg4Nl9NQ0Vf SU5URUwKIAlkZXBlbmRzIG9uIEVYUEVSSU1FTlRBTAogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIGVy cm9yIGRldGVjdGlvbiBhbmQgY29ycmVjdGlvbiB0aGUgSW50ZWwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZWRhYy9zYl9lZGFjLmMgYi9kcml2ZXJzL2VkYWMvc2JfZWRhYy5jCmluZGV4IGRhNzE4ODEu LmY4Zjc5MGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9zYl9lZGFjLmMKKysrIGIvZHJpdmVy cy9lZGFjL3NiX2VkYWMuYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21tem9u ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG1hcC5oPgor I2luY2x1ZGUgPGxpbnV4L21hdGg2NC5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNp bmNsdWRlIDxhc20vbWNlLmg+CiAKQEAgLTY3MSw2ICs2NzIsNyBAQCBzdGF0aWMgdm9pZCBnZXRf bWVtb3J5X2xheW91dChjb25zdCBzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kpCiAJdTMyIHJlZzsK IAl1NjQgbGltaXQsIHBydiA9IDA7CiAJdTY0IHRtcF9tYjsKKwl1MzIgZ2IsIG1iOwogCXUzMiBy aXJfd2F5OwogCiAJLyoKQEAgLTY4Myw4ICs2ODUsOSBAQCBzdGF0aWMgdm9pZCBnZXRfbWVtb3J5 X2xheW91dChjb25zdCBzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kpCiAJcHZ0LT50b2xtID0gR0VU X1RPTE0ocmVnKTsKIAl0bXBfbWIgPSAoMSArIHB2dC0+dG9sbSkgPj4gMjA7CiAKLQlkZWJ1Z2Yw KCJUT0xNOiAlTHUuJTAzTHUgR0IgKDB4JTAxNkx4KVxuIiwKLQkJdG1wX21iIC8gMTAwMCwgdG1w X21iICUgMTAwMCwgKHU2NClwdnQtPnRvbG0pOworCWdiID0gZGl2X3U2NF9yZW0odG1wX21iLCAx MDI0LCAmbWIpOworCWRlYnVnZjAoIlRPSE06ICV1LiUwM3UgR0IgKDB4JTAxNkx4KVxuIiwKKwkJ Z2IsIChtYioxMDAwKS8xMDI0LCAodTY0KXB2dC0+dG9obSk7CiAKIAkvKiBBZGRyZXNzIHJhbmdl IGlzIGFscmVhZHkgNDU6MjUgKi8KIAlwY2lfcmVhZF9jb25maWdfZHdvcmQocHZ0LT5wY2lfc2Fk MSwgVE9ITSwKQEAgLTY5Miw4ICs2OTUsOSBAQCBzdGF0aWMgdm9pZCBnZXRfbWVtb3J5X2xheW91 dChjb25zdCBzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kpCiAJcHZ0LT50b2htID0gR0VUX1RPSE0o cmVnKTsKIAl0bXBfbWIgPSAoMSArIHB2dC0+dG9obSkgPj4gMjA7CiAKLQlkZWJ1Z2YwKCJUT0hN OiAlTHUuJTAzTHUgR0IgKDB4JTAxNkx4KSIsCi0JCXRtcF9tYiAvIDEwMDAsIHRtcF9tYiAlIDEw MDAsICh1NjQpcHZ0LT50b2htKTsKKwlnYiA9IGRpdl91NjRfcmVtKHRtcF9tYiwgMTAyNCwgJm1i KTsKKwlkZWJ1Z2YwKCJUT0hNOiAldS4lMDN1IEdCICgweCUwMTZMeCkiLAorCQlnYiwgKG1iKjEw MDApLzEwMjQsICh1NjQpcHZ0LT50b2htKTsKIAogCS8qCiAJICogU3RlcCAyKSBHZXQgU0FEIHJh bmdlIGFuZCBTQUQgSW50ZXJsZWF2ZSBsaXN0CkBAIC03MTUsMTAgKzcxOSwxMSBAQCBzdGF0aWMg dm9pZCBnZXRfbWVtb3J5X2xheW91dChjb25zdCBzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kpCiAJ CQlicmVhazsKIAogCQl0bXBfbWIgPSAobGltaXQgKyAxKSA+PiAyMDsKLQkJZGVidWdmMCgiU0FE IyVkICVzIHVwIHRvICVMdS4lMDNMdSBHQiAoMHglMDE2THgpICVzIHJlZz0weCUwOHhcbiIsCisJ CWdiID0gZGl2X3U2NF9yZW0odG1wX21iLCAxMDAwLCAmbWIpOworCQlkZWJ1Z2YwKCJTQUQjJWQg JXMgdXAgdG8gJXUuJTAzdSBHQiAoMHglMDE2THgpICVzIHJlZz0weCUwOHhcbiIsCiAJCQluX3Nh ZHMsCiAJCQlnZXRfZHJhbV9hdHRyKHJlZyksCi0JCQl0bXBfbWIgLyAxMDAwLCB0bXBfbWIgJSAx MDAwLAorCQkJZ2IsIChtYioxMDAwKS8xMDI0LAogCQkJKCh1NjQpdG1wX21iKSA8PCAyMEwsCiAJ CQlJTlRFUkxFQVZFX01PREUocmVnKSA/ICJJbnRlcmxlYXZlOiA4OjYiIDogIkludGVybGVhdmU6 IFs4OjZdWE9SWzE4OjE2XSIsCiAJCQlyZWcpOwpAQCAtNzQ4LDggKzc1Myw5IEBAIHN0YXRpYyB2 b2lkIGdldF9tZW1vcnlfbGF5b3V0KGNvbnN0IHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkKIAkJ CWJyZWFrOwogCQl0bXBfbWIgPSAobGltaXQgKyAxKSA+PiAyMDsKIAotCQlkZWJ1Z2YwKCJUQUQj JWQ6IHVwIHRvICVMdS4lMDNMdSBHQiAoMHglMDE2THgpLCBzb2NrZXQgaW50ZXJsZWF2ZSAlZCwg bWVtb3J5IGludGVybGVhdmUgJWQsIFRHVDogJWQsICVkLCAlZCwgJWQsIHJlZz0weCUwOHhcbiIs Ci0JCQluX3RhZHMsIHRtcF9tYiAvIDEwMDAsIHRtcF9tYiAlIDEwMDAsCisJCWdiID0gZGl2X3U2 NF9yZW0odG1wX21iLCAxMDAwLCAmbWIpOworCQlkZWJ1Z2YwKCJUQUQjJWQ6IHVwIHRvICV1LiUw M3UgR0IgKDB4JTAxNkx4KSwgc29ja2V0IGludGVybGVhdmUgJWQsIG1lbW9yeSBpbnRlcmxlYXZl ICVkLCBUR1Q6ICVkLCAlZCwgJWQsICVkLCByZWc9MHglMDh4XG4iLAorCQkJbl90YWRzLCBnYiwg KG1iKjEwMDApLzEwMjQsCiAJCQkoKHU2NCl0bXBfbWIpIDw8IDIwTCwKIAkJCSh1MzIpVEFEX1NP Q0socmVnKSwKIAkJCSh1MzIpVEFEX0NIKHJlZyksCkBAIC03NzIsOSArNzc4LDEwIEBAIHN0YXRp YyB2b2lkIGdldF9tZW1vcnlfbGF5b3V0KGNvbnN0IHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkK IAkJCQkJICAgICAgdGFkX2NoX25pbHZfb2Zmc2V0W2pdLAogCQkJCQkgICAgICAmcmVnKTsKIAkJ CXRtcF9tYiA9IFRBRF9PRkZTRVQocmVnKSA+PiAyMDsKLQkJCWRlYnVnZjAoIlRBRCBDSCMlZCwg b2Zmc2V0ICMlZDogJUx1LiUwM0x1IEdCICgweCUwMTZMeCksIHJlZz0weCUwOHhcbiIsCisJCQln YiA9IGRpdl91NjRfcmVtKHRtcF9tYiwgMTAyNCwgJm1iKTsKKwkJCWRlYnVnZjAoIlRBRCBDSCMl ZCwgb2Zmc2V0ICMlZDogJXUuJTAzdSBHQiAoMHglMDE2THgpLCByZWc9MHglMDh4XG4iLAogCQkJ CWksIGosCi0JCQkJdG1wX21iIC8gMTAwMCwgdG1wX21iICUgMTAwMCwKKwkJCQlnYiwgKG1iKjEw MDApLzEwMjQsCiAJCQkJKCh1NjQpdG1wX21iKSA8PCAyMEwsCiAJCQkJcmVnKTsKIAkJfQpAQCAt Nzk2LDkgKzgwMywxMCBAQCBzdGF0aWMgdm9pZCBnZXRfbWVtb3J5X2xheW91dChjb25zdCBzdHJ1 Y3QgbWVtX2N0bF9pbmZvICptY2kpCiAKIAkJCXRtcF9tYiA9IFJJUl9MSU1JVChyZWcpID4+IDIw OwogCQkJcmlyX3dheSA9IDEgPDwgUklSX1dBWShyZWcpOwotCQkJZGVidWdmMCgiQ0gjJWQgUklS IyVkLCBsaW1pdDogJUx1LiUwM0x1IEdCICgweCUwMTZMeCksIHdheTogJWQsIHJlZz0weCUwOHhc biIsCisJCQlnYiA9IGRpdl91NjRfcmVtKHRtcF9tYiwgMTAyNCwgJm1iKTsKKwkJCWRlYnVnZjAo IkNIIyVkIFJJUiMlZCwgbGltaXQ6ICV1LiUwM3UgR0IgKDB4JTAxNkx4KSwgd2F5OiAlZCwgcmVn PTB4JTA4eFxuIiwKIAkJCQlpLCBqLAotCQkJCXRtcF9tYiAvIDEwMDAsIHRtcF9tYiAlIDEwMDAs CisJCQkJZ2IsIChtYioxMDAwKS8xMDI0LAogCQkJCSgodTY0KXRtcF9tYikgPDwgMjBMLAogCQkJ CXJpcl93YXksCiAJCQkJcmVnKTsKQEAgLTgwOSw5ICs4MTcsMTAgQEAgc3RhdGljIHZvaWQgZ2V0 X21lbW9yeV9sYXlvdXQoY29uc3Qgc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpKQogCQkJCQkJICAg ICAgJnJlZyk7CiAJCQkJdG1wX21iID0gUklSX09GRlNFVChyZWcpIDw8IDY7CiAKLQkJCQlkZWJ1 Z2YwKCJDSCMlZCBSSVIjJWQgSU5UTCMlZCwgb2Zmc2V0ICVMdS4lMDNMdSBHQiAoMHglMDE2THgp LCB0Z3Q6ICVkLCByZWc9MHglMDh4XG4iLAorCQkJCWdiID0gZGl2X3U2NF9yZW0odG1wX21iLCAx MDI0LCAmbWIpOworCQkJCWRlYnVnZjAoIkNIIyVkIFJJUiMlZCBJTlRMIyVkLCBvZmZzZXQgJXUu JTAzdSBHQiAoMHglMDE2THgpLCB0Z3Q6ICVkLCByZWc9MHglMDh4XG4iLAogCQkJCQlpLCBqLCBr LAotCQkJCQl0bXBfbWIgLyAxMDAwLCB0bXBfbWIgJSAxMDAwLAorCQkJCQlnYiwgKG1iKjEwMDAp LzEwMjQsCiAJCQkJCSgodTY0KXRtcF9tYikgPDwgMjBMLAogCQkJCQkodTMyKVJJUl9STktfVEdU KHJlZyksCiAJCQkJCXJlZyk7CkBAIC04NDksNiArODU4LDcgQEAgc3RhdGljIGludCBnZXRfbWVt b3J5X2Vycm9yX2RhdGEoc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpLAogCXU4CQkJY2hfd2F5LHNj a193YXk7CiAJdTMyCQkJdGFkX29mZnNldDsKIAl1MzIJCQlyaXJfd2F5OworCXUzMgkJCWdiLCBt YjsKIAl1NjQJCQljaF9hZGRyLCBvZmZzZXQsIGxpbWl0LCBwcnYgPSAwOwogCiAKQEAgLTg1OSw3 ICs4NjksNyBAQCBzdGF0aWMgaW50IGdldF9tZW1vcnlfZXJyb3JfZGF0YShzdHJ1Y3QgbWVtX2N0 bF9pbmZvICptY2ksCiAJICogcmFuZ2UgKGUuIGcuIFZHQSBhZGRyZXNzZXMpLiBJdCBpcyB1bmxp a2VseSwgaG93ZXZlciwgdGhhdCB0aGUKIAkgKiBtZW1vcnkgY29udHJvbGxlciB3b3VsZCBnZW5l cmF0ZSBhbiBlcnJvciBvbiB0aGF0IHJhbmdlLgogCSAqLwotCWlmICgoYWRkciA+ICh1NjQpIHB2 dC0+dG9sbSkgJiYgKGFkZHIgPCAoMUwgPDwgMzIpKSkgeworCWlmICgoYWRkciA+ICh1NjQpIHB2 dC0+dG9sbSkgJiYgKGFkZHIgPCAoMUxMIDw8IDMyKSkpIHsKIAkJc3ByaW50Zihtc2csICJFcnJv ciBhdCBUT0xNIGFyZWEsIG9uIGFkZHIgMHglMDhMeCIsIGFkZHIpOwogCQllZGFjX21jX2hhbmRs ZV9jZV9ub19pbmZvKG1jaSwgbXNnKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMDU0LDcgKzEw NjQsNyBAQCBzdGF0aWMgaW50IGdldF9tZW1vcnlfZXJyb3JfZGF0YShzdHJ1Y3QgbWVtX2N0bF9p bmZvICptY2ksCiAJY2hfYWRkciA9IGFkZHIgJiAweDdmOwogCS8qIFJlbW92ZSBzb2NrZXQgd2F5 bmVzcyBhbmQgcmVtb3ZlIDYgYml0cyAqLwogCWFkZHIgPj49IDY7Ci0JYWRkciAvPSBzY2tfeGNo OworCWFkZHIgPSBkaXZfdTY0KGFkZHIsIHNja194Y2gpOwogI2lmIDAKIAkvKiBEaXZpZGUgYnkg Y2hhbm5lbCB3YXkgKi8KIAlhZGRyID0gYWRkciAvIGNoX3dheTsKQEAgLTEwNzQsMTAgKzEwODQs MTAgQEAgc3RhdGljIGludCBnZXRfbWVtb3J5X2Vycm9yX2RhdGEoc3RydWN0IG1lbV9jdGxfaW5m byAqbWNpLAogCQkJY29udGludWU7CiAKIAkJbGltaXQgPSBSSVJfTElNSVQocmVnKTsKLQotCQlk ZWJ1Z2YwKCJSSVIjJWQsIGxpbWl0OiAlTHUuJTAzTHUgR0IgKDB4JTAxNkx4KSwgd2F5OiAlZFxu IiwKKwkJZ2IgPSBkaXZfdTY0X3JlbShsaW1pdCA+PiAyMCwgMTAyNCwgJm1iKTsKKwkJZGVidWdm MCgiUklSIyVkLCBsaW1pdDogJXUuJTAzdSBHQiAoMHglMDE2THgpLCB3YXk6ICVkXG4iLAogCQkJ bl9yaXIsCi0JCQkobGltaXQgPj4gMjApIC8gMTAwMCwgKGxpbWl0ID4+IDIwKSAlIDEwMDAsCisJ CQlnYiwgKG1iKjEwMDApLzEwMjQsCiAJCQlsaW1pdCwKIAkJCTEgPDwgUklSX1dBWShyZWcpKTsK IAkJaWYgIChjaF9hZGRyIDw9IGxpbWl0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9k bWlfc2Nhbi5jIGIvZHJpdmVycy9maXJtd2FyZS9kbWlfc2Nhbi5jCmluZGV4IDI4NjFlZjQuLjIw ZjdkYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlybXdhcmUvZG1pX3NjYW4uYworKysgYi9kcml2 ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMKQEAgLTQxMCwyNCArNDEwLDQ4IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBkbWlfZHVtcF9pZHModm9pZCkKIAlwcmludGsoS0VSTl9DT05UICJcbiIpOwogfQog Ci1zdGF0aWMgaW50IF9faW5pdCBkbWlfcHJlc2VudChjb25zdCBjaGFyIF9faW9tZW0gKnApCitz dGF0aWMgaW50IF9faW5pdCBkbWlfcHJlc2VudChjb25zdCB1OCAqYnVmKQogewotCXU4IGJ1Zlsx NV07CisJaW50IHNtYmlvc192ZXI7CiAKLQltZW1jcHlfZnJvbWlvKGJ1ZiwgcCwgMTUpOwotCWlm IChkbWlfY2hlY2tzdW0oYnVmLCAxNSkpIHsKKwlpZiAobWVtY21wKGJ1ZiwgIl9TTV8iLCA0KSA9 PSAwICYmCisJICAgIGJ1Zls1XSA8IDMyICYmIGRtaV9jaGVja3N1bShidWYsIGJ1Zls1XSkpIHsK KwkJc21iaW9zX3ZlciA9IChidWZbNl0gPDwgOCkgKyBidWZbN107CisKKwkJLyogU29tZSBCSU9T IHJlcG9ydCB3ZWlyZCBTTUJJT1MgdmVyc2lvbiwgZml4IHRoYXQgdXAgKi8KKwkJc3dpdGNoIChz bWJpb3NfdmVyKSB7CisJCWNhc2UgMHgwMjFGOgorCQljYXNlIDB4MDIyMToKKwkJCXByX2RlYnVn KCJTTUJJT1MgdmVyc2lvbiBmaXh1cCgyLiVkLT4yLiVkKVxuIiwKKwkJCQkgc21iaW9zX3ZlciAm IDB4RkYsIDMpOworCQkJc21iaW9zX3ZlciA9IDB4MDIwMzsKKwkJCWJyZWFrOworCQljYXNlIDB4 MDIzMzoKKwkJCXByX2RlYnVnKCJTTUJJT1MgdmVyc2lvbiBmaXh1cCgyLiVkLT4yLiVkKVxuIiwg NTEsIDYpOworCQkJc21iaW9zX3ZlciA9IDB4MDIwNjsKKwkJCWJyZWFrOworCQl9CisJfSBlbHNl IHsKKwkJc21iaW9zX3ZlciA9IDA7CisJfQorCisJYnVmICs9IDE2OworCisJaWYgKG1lbWNtcChi dWYsICJfRE1JXyIsIDUpID09IDAgJiYgZG1pX2NoZWNrc3VtKGJ1ZiwgMTUpKSB7CisJCWlmIChz bWJpb3NfdmVyKQorCQkJZG1pX3ZlciA9IHNtYmlvc192ZXI7CisJCWVsc2UKKwkJCWRtaV92ZXIg PSAoYnVmWzE0XSAmIDB4RjApIDw8IDQgfCAoYnVmWzE0XSAmIDB4MEYpOwogCQlkbWlfbnVtID0g KGJ1ZlsxM10gPDwgOCkgfCBidWZbMTJdOwogCQlkbWlfbGVuID0gKGJ1Zls3XSA8PCA4KSB8IGJ1 Zls2XTsKIAkJZG1pX2Jhc2UgPSAoYnVmWzExXSA8PCAyNCkgfCAoYnVmWzEwXSA8PCAxNikgfAog CQkJKGJ1Zls5XSA8PCA4KSB8IGJ1Zls4XTsKIAogCQlpZiAoZG1pX3dhbGtfZWFybHkoZG1pX2Rl Y29kZSkgPT0gMCkgewotCQkJaWYgKGRtaV92ZXIpCisJCQlpZiAoc21iaW9zX3ZlcikgewogCQkJ CXByX2luZm8oIlNNQklPUyAlZC4lZCBwcmVzZW50LlxuIiwKIAkJCQkgICAgICAgZG1pX3ZlciA+ PiA4LCBkbWlfdmVyICYgMHhGRik7Ci0JCQllbHNlIHsKLQkJCQlkbWlfdmVyID0gKGJ1ZlsxNF0g JiAweEYwKSA8PCA0IHwKLQkJCQkJICAgKGJ1ZlsxNF0gJiAweDBGKTsKKwkJCX0gZWxzZSB7CiAJ CQkJcHJfaW5mbygiTGVnYWN5IERNSSAlZC4lZCBwcmVzZW50LlxuIiwKIAkJCQkgICAgICAgZG1p X3ZlciA+PiA4LCBkbWlfdmVyICYgMHhGRik7CiAJCQl9CkBAIC00MzUsNDAgKzQ1OSwxNCBAQCBz dGF0aWMgaW50IF9faW5pdCBkbWlfcHJlc2VudChjb25zdCBjaGFyIF9faW9tZW0gKnApCiAJCQly ZXR1cm4gMDsKIAkJfQogCX0KLQlkbWlfdmVyID0gMDsKLQlyZXR1cm4gMTsKLX0KIAotc3RhdGlj IGludCBfX2luaXQgc21iaW9zX3ByZXNlbnQoY29uc3QgY2hhciBfX2lvbWVtICpwKQotewotCXU4 IGJ1ZlszMl07Ci0KLQltZW1jcHlfZnJvbWlvKGJ1ZiwgcCwgMzIpOwotCWlmICgoYnVmWzVdIDwg MzIpICYmIGRtaV9jaGVja3N1bShidWYsIGJ1Zls1XSkpIHsKLQkJZG1pX3ZlciA9IChidWZbNl0g PDwgOCkgKyBidWZbN107Ci0KLQkJLyogU29tZSBCSU9TIHJlcG9ydCB3ZWlyZCBTTUJJT1MgdmVy c2lvbiwgZml4IHRoYXQgdXAgKi8KLQkJc3dpdGNoIChkbWlfdmVyKSB7Ci0JCWNhc2UgMHgwMjFG OgotCQljYXNlIDB4MDIyMToKLQkJCXByX2RlYnVnKCJTTUJJT1MgdmVyc2lvbiBmaXh1cCgyLiVk LT4yLiVkKVxuIiwKLQkJCSAgICAgICBkbWlfdmVyICYgMHhGRiwgMyk7Ci0JCQlkbWlfdmVyID0g MHgwMjAzOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMjMzOgotCQkJcHJfZGVidWcoIlNNQklPUyB2 ZXJzaW9uIGZpeHVwKDIuJWQtPjIuJWQpXG4iLCA1MSwgNik7Ci0JCQlkbWlfdmVyID0gMHgwMjA2 OwotCQkJYnJlYWs7Ci0JCX0KLQkJcmV0dXJuIG1lbWNtcChwICsgMTYsICJfRE1JXyIsIDUpIHx8 IGRtaV9wcmVzZW50KHAgKyAxNik7Ci0JfQogCXJldHVybiAxOwogfQogCiB2b2lkIF9faW5pdCBk bWlfc2Nhbl9tYWNoaW5lKHZvaWQpCiB7CiAJY2hhciBfX2lvbWVtICpwLCAqcTsKLQlpbnQgcmM7 CisJY2hhciBidWZbMzJdOwogCiAJaWYgKGVmaV9lbmFibGVkKEVGSV9DT05GSUdfVEFCTEVTKSkg ewogCQlpZiAoZWZpLnNtYmlvcyA9PSBFRklfSU5WQUxJRF9UQUJMRV9BRERSKQpAQCAtNDgxLDEw ICs0NzksMTAgQEAgdm9pZCBfX2luaXQgZG1pX3NjYW5fbWFjaGluZSh2b2lkKQogCQlwID0gZG1p X2lvcmVtYXAoZWZpLnNtYmlvcywgMzIpOwogCQlpZiAocCA9PSBOVUxMKQogCQkJZ290byBlcnJv cjsKLQotCQlyYyA9IHNtYmlvc19wcmVzZW50KHApOworCQltZW1jcHlfZnJvbWlvKGJ1ZiwgcCwg MzIpOwogCQlkbWlfaW91bm1hcChwLCAzMik7Ci0JCWlmICghcmMpIHsKKworCQlpZiAoIWRtaV9w cmVzZW50KGJ1ZikpIHsKIAkJCWRtaV9hdmFpbGFibGUgPSAxOwogCQkJZ290byBvdXQ7CiAJCX0K QEAgLTQ5OSwxOCArNDk3LDE1IEBAIHZvaWQgX19pbml0IGRtaV9zY2FuX21hY2hpbmUodm9pZCkK IAkJaWYgKHAgPT0gTlVMTCkKIAkJCWdvdG8gZXJyb3I7CiAKKwkJbWVtc2V0KGJ1ZiwgMCwgMTYp OwogCQlmb3IgKHEgPSBwOyBxIDwgcCArIDB4MTAwMDA7IHEgKz0gMTYpIHsKLQkJCWlmIChtZW1j bXAocSwgIl9TTV8iLCA0KSA9PSAwICYmIHEgLSBwIDw9IDB4RkZFMCkKLQkJCQlyYyA9IHNtYmlv c19wcmVzZW50KHEpOwotCQkJZWxzZSBpZiAobWVtY21wKHEsICJfRE1JXyIsIDUpID09IDApCi0J CQkJcmMgPSBkbWlfcHJlc2VudChxKTsKLQkJCWVsc2UKLQkJCQljb250aW51ZTsKLQkJCWlmICgh cmMpIHsKKwkJCW1lbWNweV9mcm9taW8oYnVmICsgMTYsIHEsIDE2KTsKKwkJCWlmICghZG1pX3By ZXNlbnQoYnVmKSkgewogCQkJCWRtaV9hdmFpbGFibGUgPSAxOwogCQkJCWRtaV9pb3VubWFwKHAs IDB4MTAwMDApOwogCQkJCWdvdG8gb3V0OwogCQkJfQorCQkJbWVtY3B5KGJ1ZiwgYnVmICsgMTYs IDE2KTsKIAkJfQogCQlkbWlfaW91bm1hcChwLCAweDEwMDAwKTsKIAl9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwaW8vZ3Bpb2xpYi5jIGIvZHJpdmVycy9ncGlvL2dwaW9saWIuYwppbmRleCAzNmFl MDU1Li5lOTAxZmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vZ3Bpb2xpYi5jCisrKyBiL2Ry aXZlcnMvZ3Bpby9ncGlvbGliLmMKQEAgLTcyNiw2ICs3MjYsNyBAQCBzdGF0aWMgc3RydWN0IGNs YXNzIGdwaW9fY2xhc3MgPSB7CiAgKi8KIGludCBncGlvX2V4cG9ydCh1bnNpZ25lZCBncGlvLCBi b29sIGRpcmVjdGlvbl9tYXlfY2hhbmdlKQogeworCXN0cnVjdCBncGlvX2NoaXAJKmNoaXA7CiAJ dW5zaWduZWQgbG9uZwkJZmxhZ3M7CiAJc3RydWN0IGdwaW9fZGVzYwkqZGVzYzsKIAlpbnQJCQlz dGF0dXM7CkBAIC03NDMsMTAgKzc0NCwxOCBAQCBpbnQgZ3Bpb19leHBvcnQodW5zaWduZWQgZ3Bp bywgYm9vbCBkaXJlY3Rpb25fbWF5X2NoYW5nZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJ ZGVzYyA9ICZncGlvX2Rlc2NbZ3Bpb107CisJY2hpcCA9IGRlc2MtPmNoaXA7CisKIAltdXRleF9s b2NrKCZzeXNmc19sb2NrKTsKIAorCS8qIGNoZWNrIGlmIGNoaXAgaXMgYmVpbmcgcmVtb3ZlZCAq LworCWlmICghY2hpcCB8fCAhY2hpcC0+ZXhwb3J0ZWQpIHsKKwkJc3RhdHVzID0gLUVOT0RFVjsK KwkJZ290byBmYWlsX3VubG9jazsKKwl9CisKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZ3Bpb19sb2Nr LCBmbGFncyk7Ci0JZGVzYyA9ICZncGlvX2Rlc2NbZ3Bpb107CiAJaWYgKCF0ZXN0X2JpdChGTEFH X1JFUVVFU1RFRCwgJmRlc2MtPmZsYWdzKSB8fAogCSAgICAgdGVzdF9iaXQoRkxBR19FWFBPUlQs ICZkZXNjLT5mbGFncykpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ3Bpb19sb2NrLCBm bGFncyk7CkBAIC05NzMsMTIgKzk4MiwxNSBAQCBzdGF0aWMgdm9pZCBncGlvY2hpcF91bmV4cG9y dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwKQogewogCWludAkJCXN0YXR1czsKIAlzdHJ1Y3QgZGV2 aWNlCQkqZGV2OworCXN0cnVjdCBncGlvX2Rlc2MgKmRlc2M7CisJdW5zaWduZWQgaW50IGk7CiAK IAltdXRleF9sb2NrKCZzeXNmc19sb2NrKTsKIAlkZXYgPSBjbGFzc19maW5kX2RldmljZSgmZ3Bp b19jbGFzcywgTlVMTCwgY2hpcCwgbWF0Y2hfZXhwb3J0KTsKIAlpZiAoZGV2KSB7CiAJCXB1dF9k ZXZpY2UoZGV2KTsKIAkJZGV2aWNlX3VucmVnaXN0ZXIoZGV2KTsKKwkJLyogcHJldmVudCBmdXJ0 aGVyIGdwaW9kIGV4cG9ydHMgKi8KIAkJY2hpcC0+ZXhwb3J0ZWQgPSAwOwogCQlzdGF0dXMgPSAw OwogCX0gZWxzZQpAQCAtOTg4LDYgKzEwMDAsMTMgQEAgc3RhdGljIHZvaWQgZ3Bpb2NoaXBfdW5l eHBvcnQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCkKIAlpZiAoc3RhdHVzKQogCQlwcl9kZWJ1Zygi JXM6IGNoaXAgJXMgc3RhdHVzICVkXG4iLCBfX2Z1bmNfXywKIAkJCQljaGlwLT5sYWJlbCwgc3Rh dHVzKTsKKworCS8qIHVucmVnaXN0ZXIgZ3BpbyBjbGFzcyBkZXZpY2VzIG93bmVkIGJ5IHN5c2Zz ICovCisJZm9yIChpID0gMDsgaSA8IGNoaXAtPm5ncGlvOyBpKyspIHsKKwkJZGVzYyA9ICZncGlv X2Rlc2NbY2hpcC0+YmFzZSArIGldOworCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KEZMQUdfU1lT RlMsICZkZXNjLT5mbGFncykpCisJCQlncGlvX2ZyZWUoY2hpcC0+YmFzZSArIGkpOworCX0KIH0K IAogc3RhdGljIGludCBfX2luaXQgZ3Bpb2xpYl9zeXNmc19pbml0KHZvaWQpCkBAIC0xMTM3LDYg KzExNTYsOCBAQCBpbnQgZ3Bpb2NoaXBfcmVtb3ZlKHN0cnVjdCBncGlvX2NoaXAgKmNoaXApCiAJ aW50CQlzdGF0dXMgPSAwOwogCXVuc2lnbmVkCWlkOwogCisJZ3Bpb2NoaXBfdW5leHBvcnQoY2hp cCk7CisKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZ3Bpb19sb2NrLCBmbGFncyk7CiAKIAlvZl9ncGlv Y2hpcF9yZW1vdmUoY2hpcCk7CkBAIC0xMTU0LDkgKzExNzUsNiBAQCBpbnQgZ3Bpb2NoaXBfcmVt b3ZlKHN0cnVjdCBncGlvX2NoaXAgKmNoaXApCiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZn cGlvX2xvY2ssIGZsYWdzKTsKIAotCWlmIChzdGF0dXMgPT0gMCkKLQkJZ3Bpb2NoaXBfdW5leHBv cnQoY2hpcCk7Ci0KIAlyZXR1cm4gc3RhdHVzOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZ3Bpb2No aXBfcmVtb3ZlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3Nf Y3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKaW5kZXggOTI3 ZDE3MC4uNzZjNGYyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlv c19jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKQEAg LTMwMiw4ICszMDIsMTAgQEAgYXRvbWJpb3Nfc2V0X2NydGNfZHRkX3RpbWluZyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJCW1pc2MgfD0gQVRPTV9DT01QT1NJVEVTWU5DOwogCWlmIChtb2RlLT5m bGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQogCQltaXNjIHw9IEFUT01fSU5URVJMQUNF OwotCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKKwlpZiAobW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTENMSykKIAkJbWlzYyB8PSBBVE9NX0RPVUJMRV9DTE9D S19NT0RFOworCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKKwkJbWlz YyB8PSBBVE9NX0hfUkVQTElDQVRJT05CWTIgfCBBVE9NX1ZfUkVQTElDQVRJT05CWTI7CiAKIAlh cmdzLnN1c01vZGVNaXNjSW5mby51c0FjY2VzcyA9IGNwdV90b19sZTE2KG1pc2MpOwogCWFyZ3Mu dWNDUlRDID0gcmFkZW9uX2NydGMtPmNydGNfaWQ7CkBAIC0zNDYsOCArMzQ4LDEwIEBAIHN0YXRp YyB2b2lkIGF0b21iaW9zX2NydGNfc2V0X3RpbWluZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJ CW1pc2MgfD0gQVRPTV9DT01QT1NJVEVTWU5DOwogCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RF X0ZMQUdfSU5URVJMQUNFKQogCQltaXNjIHw9IEFUT01fSU5URVJMQUNFOwotCWlmIChtb2RlLT5m bGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9E RV9GTEFHX0RCTENMSykKIAkJbWlzYyB8PSBBVE9NX0RPVUJMRV9DTE9DS19NT0RFOworCWlmICht b2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKKwkJbWlzYyB8PSBBVE9NX0hfUkVQ TElDQVRJT05CWTIgfCBBVE9NX1ZfUkVQTElDQVRJT05CWTI7CiAKIAlhcmdzLnN1c01vZGVNaXNj SW5mby51c0FjY2VzcyA9IGNwdV90b19sZTE2KG1pc2MpOwogCWFyZ3MudWNDUlRDID0gcmFkZW9u X2NydGMtPmNydGNfaWQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h2L2NoYW5uZWwuYyBiL2RyaXZl cnMvaHYvY2hhbm5lbC5jCmluZGV4IDQ0YTFlYTQuLmE3ZTZmMDMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvaHYvY2hhbm5lbC5jCisrKyBiL2RyaXZlcnMvaHYvY2hhbm5lbC5jCkBAIC0xNzcsNyArMTc3 LDcgQEAgaW50IHZtYnVzX29wZW4oc3RydWN0IHZtYnVzX2NoYW5uZWwgKm5ld2NoYW5uZWwsIHUz MiBzZW5kX3JpbmdidWZmZXJfc2l6ZSwKIAkJCSAgIEdGUF9LRVJORUwpOwogCWlmICghb3Blbl9p bmZvKSB7CiAJCWVyciA9IC1FTk9NRU07Ci0JCWdvdG8gZXJyb3IwOworCQlnb3RvIGVycm9yX2dw YWRsOwogCX0KIAogCWluaXRfY29tcGxldGlvbigmb3Blbl9pbmZvLT53YWl0ZXZlbnQpOwpAQCAt MTkzLDcgKzE5Myw3IEBAIGludCB2bWJ1c19vcGVuKHN0cnVjdCB2bWJ1c19jaGFubmVsICpuZXdj aGFubmVsLCB1MzIgc2VuZF9yaW5nYnVmZmVyX3NpemUsCiAKIAlpZiAodXNlcmRhdGFsZW4gPiBN QVhfVVNFUl9ERUZJTkVEX0JZVEVTKSB7CiAJCWVyciA9IC1FSU5WQUw7Ci0JCWdvdG8gZXJyb3Iw OworCQlnb3RvIGVycm9yX2dwYWRsOwogCX0KIAogCWlmICh1c2VyZGF0YWxlbikKQEAgLTIzNCw2 ICsyMzQsOSBAQCBlcnJvcjE6CiAJbGlzdF9kZWwoJm9wZW5faW5mby0+bXNnbGlzdGVudHJ5KTsK IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2bWJ1c19jb25uZWN0aW9uLmNoYW5uZWxtc2dfbG9j aywgZmxhZ3MpOwogCitlcnJvcl9ncGFkbDoKKwl2bWJ1c190ZWFyZG93bl9ncGFkbChuZXdjaGFu bmVsLCBuZXdjaGFubmVsLT5yaW5nYnVmZmVyX2dwYWRsaGFuZGxlKTsKKwogZXJyb3IwOgogCWZy ZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpb3V0LAogCQlnZXRfb3JkZXIoc2VuZF9yaW5nYnVmZmVy X3NpemUgKyByZWN2X3JpbmdidWZmZXJfc2l6ZSkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9odi9j aGFubmVsX21nbXQuYyBiL2RyaXZlcnMvaHYvY2hhbm5lbF9tZ210LmMKaW5kZXggMTJiODVmZi4u N2Y5NjMzMjhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h2L2NoYW5uZWxfbWdtdC5jCisrKyBiL2Ry aXZlcnMvaHYvY2hhbm5lbF9tZ210LmMKQEAgLTYwNiw3ICs2MDYsNyBAQCBpbnQgdm1idXNfcmVx dWVzdF9vZmZlcnModm9pZCkKIHsKIAlzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9tZXNzYWdlX2hlYWRl ciAqbXNnOwogCXN0cnVjdCB2bWJ1c19jaGFubmVsX21zZ2luZm8gKm1zZ2luZm87Ci0JaW50IHJl dCwgdDsKKwlpbnQgcmV0OwogCiAJbXNnaW5mbyA9IGttYWxsb2Moc2l6ZW9mKCptc2dpbmZvKSAr CiAJCQkgIHNpemVvZihzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9tZXNzYWdlX2hlYWRlciksCkBAIC02 MTQsOCArNjE0LDYgQEAgaW50IHZtYnVzX3JlcXVlc3Rfb2ZmZXJzKHZvaWQpCiAJaWYgKCFtc2dp bmZvKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCWluaXRfY29tcGxldGlvbigmbXNnaW5mby0+d2Fp dGV2ZW50KTsKLQogCW1zZyA9IChzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9tZXNzYWdlX2hlYWRlciAq KW1zZ2luZm8tPm1zZzsKIAogCW1zZy0+bXNndHlwZSA9IENIQU5ORUxNU0dfUkVRVUVTVE9GRkVS UzsKQEAgLTYyOSwxNCArNjI3LDYgQEAgaW50IHZtYnVzX3JlcXVlc3Rfb2ZmZXJzKHZvaWQpCiAJ CWdvdG8gY2xlYW51cDsKIAl9CiAKLQl0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZt c2dpbmZvLT53YWl0ZXZlbnQsIDUqSFopOwotCWlmICh0ID09IDApIHsKLQkJcmV0ID0gLUVUSU1F RE9VVDsKLQkJZ290byBjbGVhbnVwOwotCX0KLQotCi0KIGNsZWFudXA6CiAJa2ZyZWUobXNnaW5m byk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYyBiL2RyaXZl cnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYwppbmRleCAwNTVlYmViLi5jMWZlZjI3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMKKysrIGIvZHJpdmVycy9pbmZpbmli YW5kL2NvcmUvdW1lbS5jCkBAIC05NCwxMiArOTQsMTUgQEAgc3RydWN0IGliX3VtZW0gKmliX3Vt ZW1fZ2V0KHN0cnVjdCBpYl91Y29udGV4dCAqY29udGV4dCwgdW5zaWduZWQgbG9uZyBhZGRyLAog CWlmIChkbWFzeW5jKQogCQlkbWFfc2V0X2F0dHIoRE1BX0FUVFJfV1JJVEVfQkFSUklFUiwgJmF0 dHJzKTsKIAorCWlmICghc2l6ZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisKIAkvKgog CSAqIElmIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgYWRkciBhbmQgc2l6ZSByZXF1ZXN0ZWQgZm9y IHRoaXMgbWVtb3J5CiAJICogcmVnaW9uIGNhdXNlcyBhbiBpbnRlZ2VyIG92ZXJmbG93LCByZXR1 cm4gZXJyb3IuCiAJICovCi0JaWYgKChQQUdFX0FMSUdOKGFkZHIgKyBzaXplKSA8PSBzaXplKSB8 fAotCSAgICAoUEFHRV9BTElHTihhZGRyICsgc2l6ZSkgPD0gYWRkcikpCisJaWYgKCgoYWRkciAr IHNpemUpIDwgYWRkcikgfHwKKwkgICAgUEFHRV9BTElHTihhZGRyICsgc2l6ZSkgPCAoYWRkciAr IHNpemUpKQogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAogCWlmICghY2FuX2RvX21sb2Nr KCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9xcC5jIGIvZHJpdmVy cy9pbmZpbmliYW5kL2h3L21seDQvcXAuYwppbmRleCBhMTZmMGM4Li4yZWQxNGE3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9xcC5jCisrKyBiL2RyaXZlcnMvaW5maW5p YmFuZC9ody9tbHg0L3FwLmMKQEAgLTE2NzAsOCArMTY3MCw3IEBAIHN0YXRpYyBpbnQgYnVpbGRf bHNvX3NlZyhzdHJ1Y3QgbWx4NF93cWVfbHNvX3NlZyAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAq d3IsCiAKIAltZW1jcHkod3FlLT5oZWFkZXIsIHdyLT53ci51ZC5oZWFkZXIsIHdyLT53ci51ZC5o bGVuKTsKIAotCSpsc29faGRyX3N6ICA9IGNwdV90b19iZTMyKCh3ci0+d3IudWQubXNzIC0gd3It PndyLnVkLmhsZW4pIDw8IDE2IHwKLQkJCQkgICB3ci0+d3IudWQuaGxlbik7CisJKmxzb19oZHJf c3ogID0gY3B1X3RvX2JlMzIod3ItPndyLnVkLm1zcyA8PCAxNiB8IHdyLT53ci51ZC5obGVuKTsK IAkqbHNvX3NlZ19sZW4gPSBoYWxpZ247CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2lucHV0L21vdXNlL2VsYW50ZWNoLmMgYi9kcml2ZXJzL2lucHV0L21vdXNlL2VsYW50ZWNo LmMKaW5kZXggMmQ1YmI1Yi4uNTQ4ZWE5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3Vz ZS9lbGFudGVjaC5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbnRlY2guYwpAQCAtMjk2 LDcgKzI5Niw3IEBAIHN0YXRpYyB2b2lkIGVsYW50ZWNoX3JlcG9ydF9zZW1pX210X2RhdGEoc3Ry dWN0IGlucHV0X2RldiAqZGV2LAogCQkJCQkgdW5zaWduZWQgaW50IHgyLCB1bnNpZ25lZCBpbnQg eTIpCiB7CiAJZWxhbnRlY2hfc2V0X3Nsb3QoZGV2LCAwLCBudW1fZmluZ2VycyAhPSAwLCB4MSwg eTEpOwotCWVsYW50ZWNoX3NldF9zbG90KGRldiwgMSwgbnVtX2ZpbmdlcnMgPT0gMiwgeDIsIHky KTsKKwllbGFudGVjaF9zZXRfc2xvdChkZXYsIDEsIG51bV9maW5nZXJzID49IDIsIHgyLCB5Mik7 CiB9CiAKIC8qCkBAIC02OTIsMTggKzY5MiwxOCBAQCBzdGF0aWMgaW50IGVsYW50ZWNoX3BhY2tl dF9jaGVja192MyhzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSkKIHN0YXRpYyBpbnQgZWxhbnRlY2hf cGFja2V0X2NoZWNrX3Y0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKQogewogCXVuc2lnbmVkIGNo YXIgKnBhY2tldCA9IHBzbW91c2UtPnBhY2tldDsKKwl1bnNpZ25lZCBjaGFyIHBhY2tldF90eXBl ID0gcGFja2V0WzNdICYgMHgwMzsKIAotCWlmICgocGFja2V0WzBdICYgMHgwYykgPT0gMHgwNCAm JgotCSAgICAocGFja2V0WzNdICYgMHgxZikgPT0gMHgxMSkKKwlzd2l0Y2ggKHBhY2tldF90eXBl KSB7CisJY2FzZSAwOgorCQlyZXR1cm4gUEFDS0VUX1Y0X1NUQVRVUzsKKworCWNhc2UgMToKIAkJ cmV0dXJuIFBBQ0tFVF9WNF9IRUFEOwogCi0JaWYgKChwYWNrZXRbMF0gJiAweDBjKSA9PSAweDA0 ICYmCi0JICAgIChwYWNrZXRbM10gJiAweDFmKSA9PSAweDEyKQorCWNhc2UgMjoKIAkJcmV0dXJu IFBBQ0tFVF9WNF9NT1RJT047Ci0KLQlpZiAoKHBhY2tldFswXSAmIDB4MGMpID09IDB4MDQgJiYK LQkgICAgKHBhY2tldFszXSAmIDB4MWYpID09IDB4MTApCi0JCXJldHVybiBQQUNLRVRfVjRfU1RB VFVTOworCX0KIAogCXJldHVybiBQQUNLRVRfVU5LTk9XTjsKIH0KQEAgLTc2Niw2ICs3NjYsMjEg QEAgc3RhdGljIHBzbW91c2VfcmV0X3QgZWxhbnRlY2hfcHJvY2Vzc19ieXRlKHN0cnVjdCBwc21v dXNlICpwc21vdXNlKQogfQogCiAvKgorICogVGhpcyB3cml0ZXMgdGhlIHJlZ18wNyB2YWx1ZSBh Z2FpbiB0byB0aGUgaGFyZHdhcmUgYXQgdGhlIGVuZCBvZiBldmVyeQorICogc2V0X3JhdGUgY2Fs bCBiZWNhdXNlIHRoZSByZWdpc3RlciBsb3NlcyBpdHMgdmFsdWUuIHJlZ18wNyBhbGxvd3Mgc2V0 dGluZworICogYWJzb2x1dGUgbW9kZSBvbiB2NCBoYXJkd2FyZQorICovCitzdGF0aWMgdm9pZCBl bGFudGVjaF9zZXRfcmF0ZV9yZXN0b3JlX3JlZ18wNyhzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwK KwkJdW5zaWduZWQgaW50IHJhdGUpCit7CisJc3RydWN0IGVsYW50ZWNoX2RhdGEgKmV0ZCA9IHBz bW91c2UtPnByaXZhdGU7CisKKwlldGQtPm9yaWdpbmFsX3NldF9yYXRlKHBzbW91c2UsIHJhdGUp OworCWlmIChlbGFudGVjaF93cml0ZV9yZWcocHNtb3VzZSwgMHgwNywgZXRkLT5yZWdfMDcpKQor CQlwc21vdXNlX2Vycihwc21vdXNlLCAicmVzdG9yaW5nIHJlZ18wNyBmYWlsZWRcbiIpOworfQor CisvKgogICogUHV0IHRoZSB0b3VjaHBhZCBpbnRvIGFic29sdXRlIG1vZGUKICAqLwogc3RhdGlj IGludCBlbGFudGVjaF9zZXRfYWJzb2x1dGVfbW9kZShzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSkK QEAgLTExMzEsMTAgKzExNDYsMTEgQEAgc3RhdGljIGJvb2wgZWxhbnRlY2hfaXNfc2lnbmF0dXJl X3ZhbGlkKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBhcmFtKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8q Ci0JICogU29tZSBtb2RlbHMgaGF2ZSBhIHJldmlzaW9uIGhpZ2hlciB0aGVuIDIwLiBNZWFuaW5n IHBhcmFtWzJdIG1heQotCSAqIGJlIDEwIG9yIDIwLCBza2lwIHRoZSByYXRlcyBjaGVjayBmb3Ig dGhlc2UuCisJICogU29tZSBod192ZXJzaW9uID49IDQgbW9kZWxzIGhhdmUgYSByZXZpc2lvbiBo aWdoZXIgdGhlbiAyMC4gTWVhbmluZworCSAqIHRoYXQgcGFyYW1bMl0gbWF5IGJlIDEwIG9yIDIw LCBza2lwIHRoZSByYXRlcyBjaGVjayBmb3IgdGhlc2UuCiAJICovCi0JaWYgKHBhcmFtWzBdID09 IDB4NDYgJiYgKHBhcmFtWzFdICYgMHhlZikgPT0gMHgwZiAmJiBwYXJhbVsyXSA8IDQwKQorCWlm ICgocGFyYW1bMF0gJiAweDBmKSA+PSAweDA2ICYmIChwYXJhbVsxXSAmIDB4YWYpID09IDB4MGYg JiYKKwkgICAgcGFyYW1bMl0gPCA0MCkKIAkJcmV0dXJuIHRydWU7CiAKIAlmb3IgKGkgPSAwOyBp IDwgQVJSQVlfU0laRShyYXRlcyk7IGkrKykKQEAgLTEyNjksNiArMTI4NSwxMiBAQCBzdGF0aWMg aW50IGVsYW50ZWNoX3NldF9wcm9wZXJ0aWVzKHN0cnVjdCBlbGFudGVjaF9kYXRhICpldGQpCiAJ CQlldGQtPmh3X3ZlcnNpb24gPSAzOwogCQkJYnJlYWs7CiAJCWNhc2UgNjoKKwkJY2FzZSA3Ogor CQljYXNlIDg6CisJCWNhc2UgOToKKwkJY2FzZSAxMDoKKwkJY2FzZSAxMzoKKwkJY2FzZSAxNDoK IAkJCWV0ZC0+aHdfdmVyc2lvbiA9IDQ7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTEzNTMs NiArMTM3NSwxMSBAQCBpbnQgZWxhbnRlY2hfaW5pdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSkK IAkJZ290byBpbml0X2ZhaWw7CiAJfQogCisJaWYgKGV0ZC0+ZndfdmVyc2lvbiA9PSAweDM4MWYx NykgeworCQlldGQtPm9yaWdpbmFsX3NldF9yYXRlID0gcHNtb3VzZS0+c2V0X3JhdGU7CisJCXBz bW91c2UtPnNldF9yYXRlID0gZWxhbnRlY2hfc2V0X3JhdGVfcmVzdG9yZV9yZWdfMDc7CisJfQor CiAJaWYgKGVsYW50ZWNoX3NldF9pbnB1dF9wYXJhbXMocHNtb3VzZSkpIHsKIAkJcHNtb3VzZV9l cnIocHNtb3VzZSwgImZhaWxlZCB0byBxdWVyeSB0b3VjaHBhZCByYW5nZS5cbiIpOwogCQlnb3Rv IGluaXRfZmFpbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbnRlY2guaCBi L2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbnRlY2guaAppbmRleCAzNTY5YmVkLi4wOTJhYzcyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL2VsYW50ZWNoLmgKKysrIGIvZHJpdmVycy9p bnB1dC9tb3VzZS9lbGFudGVjaC5oCkBAIC0xMzYsNiArMTM2LDcgQEAgc3RydWN0IGVsYW50ZWNo X2RhdGEgewogCXVuc2lnbmVkIGludCB3aWR0aDsKIAlzdHJ1Y3QgZmluZ2VyX3BvcyBtdFtFVFBf TUFYX0ZJTkdFUlNdOwogCXVuc2lnbmVkIGNoYXIgcGFyaXR5WzI1Nl07CisJdm9pZCAoKm9yaWdp bmFsX3NldF9yYXRlKShzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwgdW5zaWduZWQgaW50IHJhdGUp OwogfTsKIAogI2lmZGVmIENPTkZJR19NT1VTRV9QUzJfRUxBTlRFQ0gKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbGd1ZXN0L2NvcmUuYyBiL2RyaXZlcnMvbGd1ZXN0L2NvcmUuYwppbmRleCBiNWZkY2I3 Li4zNDg0MmU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2xndWVzdC9jb3JlLmMKKysrIGIvZHJpdmVy cy9sZ3Vlc3QvY29yZS5jCkBAIC0xNzEsNyArMTcxLDcgQEAgc3RhdGljIHZvaWQgdW5tYXBfc3dp dGNoZXIodm9pZCkKIGJvb2wgbGd1ZXN0X2FkZHJlc3Nfb2soY29uc3Qgc3RydWN0IGxndWVzdCAq bGcsCiAJCSAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuKQogewot CXJldHVybiAoYWRkcitsZW4pIC8gUEFHRV9TSVpFIDwgbGctPnBmbl9saW1pdCAmJiAoYWRkcits ZW4gPj0gYWRkcik7CisJcmV0dXJuIGFkZHIrbGVuIDw9IGxnLT5wZm5fbGltaXQgKiBQQUdFX1NJ WkUgJiYgKGFkZHIrbGVuID49IGFkZHIpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZC9yYWlkNS5jIGIvZHJpdmVycy9tZC9yYWlkNS5jCmluZGV4IGMyOTNkOWMuLjYwNTZlZTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDUuYworKysgYi9kcml2ZXJzL21kL3JhaWQ1LmMKQEAg LTE1NTQsNyArMTU1NCw4IEBAIHN0YXRpYyBpbnQgcmVzaXplX3N0cmlwZXMoc3RydWN0IHI1Y29u ZiAqY29uZiwgaW50IG5ld3NpemUpCiAKIAljb25mLT5zbGFiX2NhY2hlID0gc2M7CiAJY29uZi0+ YWN0aXZlX25hbWUgPSAxLWNvbmYtPmFjdGl2ZV9uYW1lOwotCWNvbmYtPnBvb2xfc2l6ZSA9IG5l d3NpemU7CisJaWYgKCFlcnIpCisJCWNvbmYtPnBvb2xfc2l6ZSA9IG5ld3NpemU7CiAJcmV0dXJu IGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZW1zdGljay9jb3JlL21zcHJvX2Jsb2Nr LmMgYi9kcml2ZXJzL21lbXN0aWNrL2NvcmUvbXNwcm9fYmxvY2suYwppbmRleCA5NzI5YjkyLi5m ODQ0OWQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lbXN0aWNrL2NvcmUvbXNwcm9fYmxvY2suYwor KysgYi9kcml2ZXJzL21lbXN0aWNrL2NvcmUvbXNwcm9fYmxvY2suYwpAQCAtNzYwLDcgKzc2MCw3 IEBAIHN0YXRpYyBpbnQgbXNwcm9fYmxvY2tfY29tcGxldGVfcmVxKHN0cnVjdCBtZW1zdGlja19k ZXYgKmNhcmQsIGludCBlcnJvcikKIAogCQlpZiAoZXJyb3IgfHwgKGNhcmQtPmN1cnJlbnRfbXJx LnRwYyA9PSBNU1BST19DTURfU1RPUCkpIHsKIAkJCWlmIChtc2ItPmRhdGFfZGlyID09IFJFQUQp IHsKLQkJCQlmb3IgKGNudCA9IDA7IGNudCA8IG1zYi0+Y3VycmVudF9zZWc7IGNudCsrKQorCQkJ CWZvciAoY250ID0gMDsgY250IDwgbXNiLT5jdXJyZW50X3NlZzsgY250KyspIHsKIAkJCQkJdF9s ZW4gKz0gbXNiLT5yZXFfc2dbY250XS5sZW5ndGgKIAkJCQkJCSAvIG1zYi0+cGFnZV9zaXplOwog CkBAIC03NjgsNiArNzY4LDcgQEAgc3RhdGljIGludCBtc3Byb19ibG9ja19jb21wbGV0ZV9yZXEo c3RydWN0IG1lbXN0aWNrX2RldiAqY2FyZCwgaW50IGVycm9yKQogCQkJCQkJdF9sZW4gKz0gbXNi LT5jdXJyZW50X3BhZ2UgLSAxOwogCiAJCQkJCXRfbGVuICo9IG1zYi0+cGFnZV9zaXplOworCQkJ CX0KIAkJCX0KIAkJfSBlbHNlCiAJCQl0X2xlbiA9IGJsa19ycV9ieXRlcyhtc2ItPmJsb2NrX3Jl cSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL2NvcmUuYyBiL2RyaXZlcnMvbW1jL2Nv cmUvY29yZS5jCmluZGV4IDQxMWE5OTQuLmZjNzM4NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1j L2NvcmUvY29yZS5jCisrKyBiL2RyaXZlcnMvbW1jL2NvcmUvY29yZS5jCkBAIC0yNDI0LDYgKzI0 MjQsNyBAQCBpbnQgbW1jX3BtX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5vdGlmeV9i bG9jaywKIAlzd2l0Y2ggKG1vZGUpIHsKIAljYXNlIFBNX0hJQkVSTkFUSU9OX1BSRVBBUkU6CiAJ Y2FzZSBQTV9TVVNQRU5EX1BSRVBBUkU6CisJY2FzZSBQTV9SRVNUT1JFX1BSRVBBUkU6CiAKIAkJ c3Bpbl9sb2NrX2lycXNhdmUoJmhvc3QtPmxvY2ssIGZsYWdzKTsKIAkJaG9zdC0+cmVzY2FuX2Rp c2FibGUgPSAxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvdWJpL2NkZXYuYyBiL2RyaXZlcnMv bXRkL3ViaS9jZGV2LmMKaW5kZXggYWQ3NjU5Mi4uN2FjMmMwNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9tdGQvdWJpL2NkZXYuYworKysgYi9kcml2ZXJzL210ZC91YmkvY2Rldi5jCkBAIC00NzUsNyAr NDc1LDcgQEAgc3RhdGljIGxvbmcgdm9sX2NkZXZfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVu c2lnbmVkIGludCBjbWQsCiAJCS8qIFZhbGlkYXRlIHRoZSByZXF1ZXN0ICovCiAJCWVyciA9IC1F SU5WQUw7CiAJCWlmIChyZXEubG51bSA8IDAgfHwgcmVxLmxudW0gPj0gdm9sLT5yZXNlcnZlZF9w ZWJzIHx8Ci0JCSAgICByZXEuYnl0ZXMgPCAwIHx8IHJlcS5sbnVtID49IHZvbC0+dXNhYmxlX2xl Yl9zaXplKQorCQkgICAgcmVxLmJ5dGVzIDwgMCB8fCByZXEuYnl0ZXMgPiB2b2wtPnVzYWJsZV9s ZWJfc2l6ZSkKIAkJCWJyZWFrOwogCQlpZiAocmVxLmR0eXBlICE9IFVCSV9MT05HVEVSTSAmJiBy ZXEuZHR5cGUgIT0gVUJJX1NIT1JUVEVSTSAmJgogCQkgICAgcmVxLmR0eXBlICE9IFVCSV9VTktO T1dOKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvdWJpL2ViYS5jIGIvZHJpdmVycy9tdGQvdWJp L2ViYS5jCmluZGV4IGNkMjZkYTguLjIyYjM2MzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3Vi aS9lYmEuYworKysgYi9kcml2ZXJzL210ZC91YmkvZWJhLmMKQEAgLTEyNjEsNyArMTI2MSw4IEBA IGludCB1YmlfZWJhX2luaXRfc2NhbihzdHJ1Y3QgdWJpX2RldmljZSAqdWJpLCBzdHJ1Y3QgdWJp X3NjYW5faW5mbyAqc2kpCiAJCQkJICogZHVyaW5nIHJlLXNpemUuCiAJCQkJICovCiAJCQkJdWJp X3NjYW5fbW92ZV90b19saXN0KHN2LCBzZWIsICZzaS0+ZXJhc2UpOwotCQkJdm9sLT5lYmFfdGJs W3NlYi0+bG51bV0gPSBzZWItPnBudW07CisJCQllbHNlCisJCQkJdm9sLT5lYmFfdGJsW3NlYi0+ bG51bV0gPSBzZWItPnBudW07CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3Vi aS9taXNjLmMgYi9kcml2ZXJzL210ZC91YmkvbWlzYy5jCmluZGV4IGY2YTdkN2EuLmIxNGFiNDMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3ViaS9taXNjLmMKKysrIGIvZHJpdmVycy9tdGQvdWJp L21pc2MuYwpAQCAtNzQsNiArNzQsOCBAQCBpbnQgdWJpX2NoZWNrX3ZvbHVtZShzdHJ1Y3QgdWJp X2RldmljZSAqdWJpLCBpbnQgdm9sX2lkKQogCWZvciAoaSA9IDA7IGkgPCB2b2wtPnVzZWRfZWJz OyBpKyspIHsKIAkJaW50IHNpemU7CiAKKwkJY29uZF9yZXNjaGVkKCk7CisKIAkJaWYgKGkgPT0g dm9sLT51c2VkX2VicyAtIDEpCiAJCQlzaXplID0gdm9sLT5sYXN0X2ViX2J5dGVzOwogCQllbHNl CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC91Ymkvc2Nhbi5jIGIvZHJpdmVycy9tdGQvdWJpL3Nj YW4uYwppbmRleCBiMmI2MmRlLi5jNWIyMzU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC91Ymkv c2Nhbi5jCisrKyBiL2RyaXZlcnMvbXRkL3ViaS9zY2FuLmMKQEAgLTQwOCw3ICs0MDgsNyBAQCBz dGF0aWMgaW50IGNvbXBhcmVfbGVicyhzdHJ1Y3QgdWJpX2RldmljZSAqdWJpLCBjb25zdCBzdHJ1 Y3QgdWJpX3NjYW5fbGViICpzZWIsCiAJCXNlY29uZF9pc19uZXdlciA9ICFzZWNvbmRfaXNfbmV3 ZXI7CiAJfSBlbHNlIHsKIAkJZGJnX2JsZCgiUEVCICVkIENSQyBpcyBPSyIsIHBudW0pOwotCQli aXRmbGlwcyA9ICEhZXJyOworCQliaXRmbGlwcyB8PSAhIWVycjsKIAl9CiAKIAl2ZnJlZShidWYp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvdWJpL3dsLmMgYi9kcml2ZXJzL210ZC91Ymkvd2wu YwppbmRleCBjZjQyOTcxLi40MjJlNWJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC91Ymkvd2wu YworKysgYi9kcml2ZXJzL210ZC91Ymkvd2wuYwpAQCAtNjY1LDcgKzY2NSw3IEBAIHN0YXRpYyBp bnQgd2Vhcl9sZXZlbGluZ193b3JrZXIoc3RydWN0IHViaV9kZXZpY2UgKnViaSwgc3RydWN0IHVi aV93b3JrICp3cmssCiAJCQkJaW50IGNhbmNlbCkKIHsKIAlpbnQgZXJyLCBzY3J1YmJpbmcgPSAw LCB0b3J0dXJlID0gMCwgcHJvdGVjdCA9IDAsIGVycm9uZW91cyA9IDA7Ci0JaW50IHZvbF9pZCA9 IC0xLCB1bmluaXRpYWxpemVkX3ZhcihsbnVtKTsKKwlpbnQgdm9sX2lkID0gLTEsIGxudW0gPSAt MTsKIAlzdHJ1Y3QgdWJpX3dsX2VudHJ5ICplMSwgKmUyOwogCXN0cnVjdCB1YmlfdmlkX2hkciAq dmlkX2hkcjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvZTEwMDAv ZTEwMDBfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvZTEwMDAvZTEwMDBfbWFp bi5jCmluZGV4IDY1NDYxOTEuLmJkNGU1OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2ludGVsL2UxMDAwL2UxMDAwX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9p bnRlbC9lMTAwMC9lMTAwMF9tYWluLmMKQEAgLTE0OSw2ICsxNDksMTEgQEAgc3RhdGljIGJvb2wg ZTEwMDBfY2xlYW5fcnhfaXJxKHN0cnVjdCBlMTAwMF9hZGFwdGVyICphZGFwdGVyLAogc3RhdGlj IGJvb2wgZTEwMDBfY2xlYW5fanVtYm9fcnhfaXJxKHN0cnVjdCBlMTAwMF9hZGFwdGVyICphZGFw dGVyLAogCQkJCSAgICAgc3RydWN0IGUxMDAwX3J4X3JpbmcgKnJ4X3JpbmcsCiAJCQkJICAgICBp bnQgKndvcmtfZG9uZSwgaW50IHdvcmtfdG9fZG8pOworc3RhdGljIHZvaWQgZTEwMDBfYWxsb2Nf ZHVtbXlfcnhfYnVmZmVycyhzdHJ1Y3QgZTEwMDBfYWRhcHRlciAqYWRhcHRlciwKKwkJCQkJIHN0 cnVjdCBlMTAwMF9yeF9yaW5nICpyeF9yaW5nLAorCQkJCQkgaW50IGNsZWFuZWRfY291bnQpCit7 Cit9CiBzdGF0aWMgdm9pZCBlMTAwMF9hbGxvY19yeF9idWZmZXJzKHN0cnVjdCBlMTAwMF9hZGFw dGVyICphZGFwdGVyLAogCQkJCSAgIHN0cnVjdCBlMTAwMF9yeF9yaW5nICpyeF9yaW5nLAogCQkJ CSAgIGludCBjbGVhbmVkX2NvdW50KTsKQEAgLTMzMjIsOCArMzMyNywxMSBAQCBzdGF0aWMgaW50 IGUxMDAwX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG5ld19tdHUp CiAJCW1zbGVlcCgxKTsKIAkvKiBlMTAwMF9kb3duIGhhcyBhIGRlcGVuZGVuY3kgb24gbWF4X2Zy YW1lX3NpemUgKi8KIAlody0+bWF4X2ZyYW1lX3NpemUgPSBtYXhfZnJhbWU7Ci0JaWYgKG5ldGlm X3J1bm5pbmcobmV0ZGV2KSkKKwlpZiAobmV0aWZfcnVubmluZyhuZXRkZXYpKSB7CisJCS8qIHBy ZXZlbnQgYnVmZmVycyBmcm9tIGJlaW5nIHJlYWxsb2NhdGVkICovCisJCWFkYXB0ZXItPmFsbG9j X3J4X2J1ZiA9IGUxMDAwX2FsbG9jX2R1bW15X3J4X2J1ZmZlcnM7CiAJCWUxMDAwX2Rvd24oYWRh cHRlcik7CisJfQogCiAJLyogTk9URTogbmV0ZGV2X2FsbG9jX3NrYiByZXNlcnZlcyAxNiBieXRl cywgYW5kIHR5cGljYWxseSBORVRfSVBfQUxJR04KIAkgKiBtZWFucyB3ZSByZXNlcnZlIDIgbW9y ZSwgdGhpcyBwdXNoZXMgdXMgdG8gYWxsb2NhdGUgZnJvbSB0aGUgbmV4dApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKaW5k ZXggOTY2M2UwYi4uYmIzMzVhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAu YworKysgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCkBAIC00Miw3ICs0Miw3IEBACiAjZGVm aW5lIFBTRl9UWAkJMHgxMDAwCiAjZGVmaW5lIEVYVF9FVkVOVAkxCiAjZGVmaW5lIENBTF9FVkVO VAk3Ci0jZGVmaW5lIENBTF9UUklHR0VSCTcKKyNkZWZpbmUgQ0FMX1RSSUdHRVIJMQogI2RlZmlu ZSBQRVJfVFJJR0dFUgk2CiAKIC8qIHBoeXRlciBzZWVtcyB0byBtaXNzIHRoZSBtYXJrIGJ5IDE2 IG5zICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJj dS9zdy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYwppbmRl eCAxNjQ0YjFmLi5lYzM0N2QyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3 aWZpL3J0bDgxOTJjdS9zdy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRs ODE5MmN1L3N3LmMKQEAgLTM2Nyw2ICszNjcsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2Vf aWQgcnRsODE5MmNfdXNiX2lkc1tdID0gewogCXtSVExfVVNCX0RFVklDRSgweDIwMDEsIDB4MzMw NywgcnRsOTJjdV9oYWxfY2ZnKX0sIC8qRC1MaW5rLUNhbWVvKi8KIAl7UlRMX1VTQl9ERVZJQ0Uo MHgyMDAxLCAweDMzMDksIHJ0bDkyY3VfaGFsX2NmZyl9LCAvKkQtTGluay1BbHBoYSovCiAJe1JU TF9VU0JfREVWSUNFKDB4MjAwMSwgMHgzMzBhLCBydGw5MmN1X2hhbF9jZmcpfSwgLypELUxpbmst QWxwaGEqLworCXtSVExfVVNCX0RFVklDRSgweDIwMDEsIDB4MzMwZCwgcnRsOTJjdV9oYWxfY2Zn KX0sIC8qRC1MaW5rIERXQS0xMzEgKi8KIAl7UlRMX1VTQl9ERVZJQ0UoMHgyMDE5LCAweGFiMmIs IHJ0bDkyY3VfaGFsX2NmZyl9LCAvKlBsYW5leCAtQWJvY29tKi8KIAl7UlRMX1VTQl9ERVZJQ0Uo MHgyMGY0LCAweDYyNGQsIHJ0bDkyY3VfaGFsX2NmZyl9LCAvKlRSRU5ETmV0Ki8KIAl7UlRMX1VT Ql9ERVZJQ0UoMHgyMzU3LCAweDAxMDAsIHJ0bDkyY3VfaGFsX2NmZyl9LCAvKlRQLUxpbmsgV044 MjAwTkQqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS91c2IuYyBi L2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvdXNiLmMKaW5kZXggZTVmZTk1Ni4uMTdlNjQy OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS91c2IuYworKysgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3VzYi5jCkBAIC0xMTcsNyArMTE3LDcgQEAgc3Rh dGljIGludCBfdXNiY3RybF92ZW5kb3JyZXFfc3luY19yZWFkKHN0cnVjdCB1c2JfZGV2aWNlICp1 ZGV2LCB1OCByZXF1ZXN0LAogCXJlcXR5cGUgPSAgUkVBTFRFS19VU0JfVkVOUVRfUkVBRDsKIAog CXN0YXR1cyA9IHVzYl9jb250cm9sX21zZyh1ZGV2LCBwaXBlLCByZXF1ZXN0LCByZXF0eXBlLCB2 YWx1ZSwgaW5kZXgsCi0JCQkJIHBkYXRhLCBsZW4sIDApOyAvKiBtYXguIHRpbWVvdXQgKi8KKwkJ CQkgcGRhdGEsIGxlbiwgMTAwMCk7CiAKIAlpZiAoc3RhdHVzIDwgMCkKIAkJcHJfZXJyKCJyZWcg MHgleCwgdXNiY3RybF92ZW5kb3JyZXEgVGltZU91dCEgc3RhdHVzOjB4JXggdmFsdWU9MHgleFxu IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jIGIvZHJpdmVy cy9uZXQveGVuLW5ldGJhY2sveGVuYnVzLmMKaW5kZXggMWNlNzI5ZC4uYjdkNzgyZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sveGVuYnVzLmMKKysrIGIvZHJpdmVycy9uZXQv eGVuLW5ldGJhY2sveGVuYnVzLmMKQEAgLTI3LDYgKzI3LDggQEAgc3RydWN0IGJhY2tlbmRfaW5m byB7CiAJZW51bSB4ZW5idXNfc3RhdGUgZnJvbnRlbmRfc3RhdGU7CiAJc3RydWN0IHhlbmJ1c193 YXRjaCBob3RwbHVnX3N0YXR1c193YXRjaDsKIAl1OCBoYXZlX2hvdHBsdWdfc3RhdHVzX3dhdGNo OjE7CisKKwljb25zdCBjaGFyICpob3RwbHVnX3NjcmlwdDsKIH07CiAKIHN0YXRpYyBpbnQgY29u bmVjdF9yaW5ncyhzdHJ1Y3QgYmFja2VuZF9pbmZvICopOwpAQCAtNDUsNiArNDcsNyBAQCBzdGF0 aWMgaW50IG5ldGJhY2tfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCiAJCXhlbnZp Zl9kaXNjb25uZWN0KGJlLT52aWYpOwogCQliZS0+dmlmID0gTlVMTDsKIAl9CisJa2ZyZWUoYmUt PmhvdHBsdWdfc2NyaXB0KTsKIAlrZnJlZShiZSk7CiAJZGV2X3NldF9kcnZkYXRhKCZkZXYtPmRl diwgTlVMTCk7CiAJcmV0dXJuIDA7CkBAIC02Miw2ICs2NSw3IEBAIHN0YXRpYyBpbnQgbmV0YmFj a19wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCXN0cnVjdCB4ZW5idXNfdHJhbnNh Y3Rpb24geGJ0OwogCWludCBlcnI7CiAJaW50IHNnOworCWNvbnN0IGNoYXIgKnNjcmlwdDsKIAlz dHJ1Y3QgYmFja2VuZF9pbmZvICpiZSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBiYWNrZW5kX2lu Zm8pLAogCQkJCQkgIEdGUF9LRVJORUwpOwogCWlmICghYmUpIHsKQEAgLTEyMiw2ICsxMjYsMTUg QEAgc3RhdGljIGludCBuZXRiYWNrX3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAJ CWdvdG8gZmFpbDsKIAl9CiAKKwlzY3JpcHQgPSB4ZW5idXNfcmVhZChYQlRfTklMLCBkZXYtPm5v ZGVuYW1lLCAic2NyaXB0IiwgTlVMTCk7CisJaWYgKElTX0VSUihzY3JpcHQpKSB7CisJCWVyciA9 IFBUUl9FUlIoc2NyaXB0KTsKKwkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIGVyciwgInJlYWRpbmcg c2NyaXB0Iik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwliZS0+aG90cGx1Z19zY3JpcHQgPSBzY3Jp cHQ7CisKIAllcnIgPSB4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVJbml0V2Fp dCk7CiAJaWYgKGVycikKIAkJZ290byBmYWlsOwpAQCAtMTUwLDIyICsxNjMsMTQgQEAgc3RhdGlj IGludCBuZXRiYWNrX3VldmVudChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqeGRldiwKIAkJCSAgc3Ry dWN0IGtvYmpfdWV2ZW50X2VudiAqZW52KQogewogCXN0cnVjdCBiYWNrZW5kX2luZm8gKmJlID0g ZGV2X2dldF9kcnZkYXRhKCZ4ZGV2LT5kZXYpOwotCWNoYXIgKnZhbDsKIAotCXZhbCA9IHhlbmJ1 c19yZWFkKFhCVF9OSUwsIHhkZXYtPm5vZGVuYW1lLCAic2NyaXB0IiwgTlVMTCk7Ci0JaWYgKElT X0VSUih2YWwpKSB7Ci0JCWludCBlcnIgPSBQVFJfRVJSKHZhbCk7Ci0JCXhlbmJ1c19kZXZfZmF0 YWwoeGRldiwgZXJyLCAicmVhZGluZyBzY3JpcHQiKTsKLQkJcmV0dXJuIGVycjsKLQl9IGVsc2Ug ewotCQlpZiAoYWRkX3VldmVudF92YXIoZW52LCAic2NyaXB0PSVzIiwgdmFsKSkgewotCQkJa2Zy ZWUodmFsKTsKLQkJCXJldHVybiAtRU5PTUVNOwotCQl9Ci0JCWtmcmVlKHZhbCk7Ci0JfQorCWlm ICghYmUpCisJCXJldHVybiAwOworCisJaWYgKGFkZF91ZXZlbnRfdmFyKGVudiwgInNjcmlwdD0l cyIsIGJlLT5ob3RwbHVnX3NjcmlwdCkpCisJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKCFiZSB8 fCAhYmUtPnZpZikKKwlpZiAoIWJlLT52aWYpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIGFkZF91 ZXZlbnRfdmFyKGVudiwgInZpZj0lcyIsIGJlLT52aWYtPmRldi0+bmFtZSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL29mL2Jhc2UuYyBiL2RyaXZlcnMvb2YvYmFzZS5jCmluZGV4IDM3NjM5YTYuLjIx OTM1NTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL29mL2Jhc2UuYworKysgYi9kcml2ZXJzL29mL2Jh c2UuYwpAQCAtNzYxLDYgKzc2MSw0MiBAQCBpbnQgb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfaW5k ZXgoc3RydWN0IGRldmljZV9ub2RlICpucCwgY29uc3QgY2hhciAqcHJvcG5hbWUsCiB9CiBFWFBP UlRfU1lNQk9MX0dQTChvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZ19pbmRleCk7CiAKKy8qKgorICog b2ZfcHJvcGVydHlfbWF0Y2hfc3RyaW5nKCkgLSBGaW5kIHN0cmluZyBpbiBhIGxpc3QgYW5kIHJl dHVybiBpbmRleAorICogQG5wOiBwb2ludGVyIHRvIG5vZGUgY29udGFpbmluZyBzdHJpbmcgbGlz dCBwcm9wZXJ0eQorICogQHByb3BuYW1lOiBzdHJpbmcgbGlzdCBwcm9wZXJ0eSBuYW1lCisgKiBA c3RyaW5nOiBwb2ludGVyIHRvIHN0cmluZyB0byBzZWFyY2ggZm9yIGluIHN0cmluZyBsaXN0Cisg KgorICogVGhpcyBmdW5jdGlvbiBzZWFyY2hlcyBhIHN0cmluZyBsaXN0IHByb3BlcnR5IGFuZCBy ZXR1cm5zIHRoZSBpbmRleAorICogb2YgYSBzcGVjaWZpYyBzdHJpbmcgdmFsdWUuCisgKi8KK2lu dCBvZl9wcm9wZXJ0eV9tYXRjaF9zdHJpbmcoc3RydWN0IGRldmljZV9ub2RlICpucCwgY29uc3Qg Y2hhciAqcHJvcG5hbWUsCisJCQkgICAgIGNvbnN0IGNoYXIgKnN0cmluZykKK3sKKwlzdHJ1Y3Qg cHJvcGVydHkgKnByb3AgPSBvZl9maW5kX3Byb3BlcnR5KG5wLCBwcm9wbmFtZSwgTlVMTCk7CisJ c2l6ZV90IGw7CisJaW50IGk7CisJY29uc3QgY2hhciAqcCwgKmVuZDsKKworCWlmICghcHJvcCkK KwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFwcm9wLT52YWx1ZSkKKwkJcmV0dXJuIC1FTk9EQVRB OworCisJcCA9IHByb3AtPnZhbHVlOworCWVuZCA9IHAgKyBwcm9wLT5sZW5ndGg7CisKKwlmb3Ig KGkgPSAwOyBwIDwgZW5kOyBpKyssIHAgKz0gbCkgeworCQlsID0gc3RybGVuKHApICsgMTsKKwkJ aWYgKHAgKyBsID4gZW5kKQorCQkJcmV0dXJuIC1FSUxTRVE7CisJCXByX2RlYnVnKCJjb21wYXJp bmcgJXMgd2l0aCAlc1xuIiwgc3RyaW5nLCBwKTsKKwkJaWYgKHN0cmNtcChzdHJpbmcsIHApID09 IDApCisJCQlyZXR1cm4gaTsgLyogRm91bmQgaXQ7IHJldHVybiBpbmRleCAqLworCX0KKwlyZXR1 cm4gLUVOT0RBVEE7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChvZl9wcm9wZXJ0eV9tYXRjaF9zdHJp bmcpOwogCiAvKioKICAqIG9mX3Byb3BlcnR5X2NvdW50X3N0cmluZ3MgLSBGaW5kIGFuZCByZXR1 cm4gdGhlIG51bWJlciBvZiBzdHJpbmdzIGZyb20gYQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0 Zm9ybS94ODYvY29tcGFsLWxhcHRvcC5jIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvY29tcGFsLWxh cHRvcC5jCmluZGV4IDg4NzdiODMuLmJhMzYzOGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZv cm0veDg2L2NvbXBhbC1sYXB0b3AuYworKysgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9jb21wYWwt bGFwdG9wLmMKQEAgLTEwNDYsNyArMTA0NiwxNCBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBjb21w YWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCS8qIFBvd2VyIHN1cHBs eSAqLwogCWluaXRpYWxpemVfcG93ZXJfc3VwcGx5X2RhdGEoZGF0YSk7Ci0JcG93ZXJfc3VwcGx5 X3JlZ2lzdGVyKCZjb21wYWxfZGV2aWNlLT5kZXYsICZkYXRhLT5wc3kpOworCWVyciA9IHBvd2Vy X3N1cHBseV9yZWdpc3RlcigmY29tcGFsX2RldmljZS0+ZGV2LCAmZGF0YS0+cHN5KTsKKwlpZiAo ZXJyIDwgMCkgeworCQlod21vbl9kZXZpY2VfdW5yZWdpc3RlcihkYXRhLT5od21vbl9kZXYpOwor CQlzeXNmc19yZW1vdmVfZ3JvdXAoJnBkZXYtPmRldi5rb2JqLAorCQkJCSZjb21wYWxfYXR0cmli dXRlX2dyb3VwKTsKKwkJa2ZyZWUoZGF0YSk7CisJCXJldHVybiBlcnI7CisJfQogCiAJcGxhdGZv cm1fc2V0X2RydmRhdGEocGRldiwgZGF0YSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS8z dy05eHh4LmMgYi9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jCmluZGV4IDM4NjhhYjIuLmZiMzdkZjYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS8zdy05eHh4LmMKKysrIGIvZHJpdmVycy9zY3NpLzN3 LTl4eHguYwpAQCAtMTQ5LDcgKzE0OSw2IEBAIHN0YXRpYyBpbnQgdHdhX3Jlc2V0X3NlcXVlbmNl KFRXX0RldmljZV9FeHRlbnNpb24gKnR3X2RldiwgaW50IHNvZnRfcmVzZXQpOwogc3RhdGljIGlu dCB0d2Ffc2NzaW9wX2V4ZWN1dGVfc2NzaShUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19kZXYsIGlu dCByZXF1ZXN0X2lkLCBjaGFyICpjZGIsIGludCB1c2Vfc2csIFRXX1NHX0VudHJ5ICpzZ2xpc3Rh cmcpOwogc3RhdGljIHZvaWQgdHdhX3Njc2lvcF9leGVjdXRlX3Njc2lfY29tcGxldGUoVFdfRGV2 aWNlX0V4dGVuc2lvbiAqdHdfZGV2LCBpbnQgcmVxdWVzdF9pZCk7CiBzdGF0aWMgY2hhciAqdHdh X3N0cmluZ19sb29rdXAodHdhX21lc3NhZ2VfdHlwZSAqdGFibGUsIHVuc2lnbmVkIGludCBhZW5f Y29kZSk7Ci1zdGF0aWMgdm9pZCB0d2FfdW5tYXBfc2NzaV9kYXRhKFRXX0RldmljZV9FeHRlbnNp b24gKnR3X2RldiwgaW50IHJlcXVlc3RfaWQpOwogCiAvKiBGdW5jdGlvbnMgKi8KIApAQCAtMTM1 MiwxMSArMTM1MSwxMSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdHdhX2ludGVycnVwdChpbnQgaXJx LCB2b2lkICpkZXZfaW5zdGFuY2UpCiAJCQkJfQogCiAJCQkJLyogTm93IGNvbXBsZXRlIHRoZSBp byAqLworCQkJCXNjc2lfZG1hX3VubWFwKGNtZCk7CisJCQkJY21kLT5zY3NpX2RvbmUoY21kKTsK IAkJCQl0d19kZXYtPnN0YXRlW3JlcXVlc3RfaWRdID0gVFdfU19DT01QTEVURUQ7CiAJCQkJdHdh X2ZyZWVfcmVxdWVzdF9pZCh0d19kZXYsIHJlcXVlc3RfaWQpOwogCQkJCXR3X2Rldi0+cG9zdGVk X3JlcXVlc3RfY291bnQtLTsKLQkJCQl0d19kZXYtPnNyYltyZXF1ZXN0X2lkXS0+c2NzaV9kb25l KHR3X2Rldi0+c3JiW3JlcXVlc3RfaWRdKTsKLQkJCQl0d2FfdW5tYXBfc2NzaV9kYXRhKHR3X2Rl diwgcmVxdWVzdF9pZCk7CiAJCQl9CiAKIAkJCS8qIENoZWNrIGZvciB2YWxpZCBzdGF0dXMgYWZ0 ZXIgZWFjaCBkcmFpbiAqLwpAQCAtMTQxNCwyNiArMTQxMyw2IEBAIHN0YXRpYyB2b2lkIHR3YV9s b2FkX3NnbChUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19kZXYsIFRXX0NvbW1hbmRfRnVsbCAqZnVs bF9jb21tCiAJfQogfSAvKiBFbmQgdHdhX2xvYWRfc2dsKCkgKi8KIAotLyogVGhpcyBmdW5jdGlv biB3aWxsIHBlcmZvcm0gYSBwY2ktZG1hIG1hcHBpbmcgZm9yIGEgc2NhdHRlciBnYXRoZXIgbGlz dCAqLwotc3RhdGljIGludCB0d2FfbWFwX3Njc2lfc2dfZGF0YShUV19EZXZpY2VfRXh0ZW5zaW9u ICp0d19kZXYsIGludCByZXF1ZXN0X2lkKQotewotCWludCB1c2Vfc2c7Ci0Jc3RydWN0IHNjc2lf Y21uZCAqY21kID0gdHdfZGV2LT5zcmJbcmVxdWVzdF9pZF07Ci0KLQl1c2Vfc2cgPSBzY3NpX2Rt YV9tYXAoY21kKTsKLQlpZiAoIXVzZV9zZykKLQkJcmV0dXJuIDA7Ci0JZWxzZSBpZiAodXNlX3Nn IDwgMCkgewotCQlUV19QUklOVEsodHdfZGV2LT5ob3N0LCBUV19EUklWRVIsIDB4MWMsICJGYWls ZWQgdG8gbWFwIHNjYXR0ZXIgZ2F0aGVyIGxpc3QiKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JY21k LT5TQ3AucGhhc2UgPSBUV19QSEFTRV9TR0xJU1Q7Ci0JY21kLT5TQ3AuaGF2ZV9kYXRhX2luID0g dXNlX3NnOwotCi0JcmV0dXJuIHVzZV9zZzsKLX0gLyogRW5kIHR3YV9tYXBfc2NzaV9zZ19kYXRh KCkgKi8KLQogLyogVGhpcyBmdW5jdGlvbiB3aWxsIHBvbGwgZm9yIGEgcmVzcG9uc2UgaW50ZXJy dXB0IG9mIGEgcmVxdWVzdCAqLwogc3RhdGljIGludCB0d2FfcG9sbF9yZXNwb25zZShUV19EZXZp Y2VfRXh0ZW5zaW9uICp0d19kZXYsIGludCByZXF1ZXN0X2lkLCBpbnQgc2Vjb25kcykKIHsKQEAg LTE2MTIsOSArMTU5MSwxMSBAQCBzdGF0aWMgaW50IHR3YV9yZXNldF9kZXZpY2VfZXh0ZW5zaW9u KFRXX0RldmljZV9FeHRlbnNpb24gKnR3X2RldikKIAkJICAgICh0d19kZXYtPnN0YXRlW2ldICE9 IFRXX1NfSU5JVElBTCkgJiYKIAkJICAgICh0d19kZXYtPnN0YXRlW2ldICE9IFRXX1NfQ09NUExF VEVEKSkgewogCQkJaWYgKHR3X2Rldi0+c3JiW2ldKSB7Ci0JCQkJdHdfZGV2LT5zcmJbaV0tPnJl c3VsdCA9IChESURfUkVTRVQgPDwgMTYpOwotCQkJCXR3X2Rldi0+c3JiW2ldLT5zY3NpX2RvbmUo dHdfZGV2LT5zcmJbaV0pOwotCQkJCXR3YV91bm1hcF9zY3NpX2RhdGEodHdfZGV2LCBpKTsKKwkJ CQlzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQgPSB0d19kZXYtPnNyYltpXTsKKworCQkJCWNtZC0+cmVz dWx0ID0gKERJRF9SRVNFVCA8PCAxNik7CisJCQkJc2NzaV9kbWFfdW5tYXAoY21kKTsKKwkJCQlj bWQtPnNjc2lfZG9uZShjbWQpOwogCQkJfQogCQl9CiAJfQpAQCAtMTc5MywyMSArMTc3NCwxOCBA QCBzdGF0aWMgaW50IHR3YV9zY3NpX3F1ZXVlX2xjayhzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCwg dm9pZCAoKmRvbmUpKHN0cnVjdCBzY3NpXwogCS8qIFNhdmUgdGhlIHNjc2kgY29tbWFuZCBmb3Ig dXNlIGJ5IHRoZSBJU1IgKi8KIAl0d19kZXYtPnNyYltyZXF1ZXN0X2lkXSA9IFNDcG50OwogCi0J LyogSW5pdGlhbGl6ZSBwaGFzZSB0byB6ZXJvICovCi0JU0NwbnQtPlNDcC5waGFzZSA9IFRXX1BI QVNFX0lOSVRJQUw7Ci0KIAlyZXR2YWwgPSB0d2Ffc2NzaW9wX2V4ZWN1dGVfc2NzaSh0d19kZXYs IHJlcXVlc3RfaWQsIE5VTEwsIDAsIE5VTEwpOwogCXN3aXRjaCAocmV0dmFsKSB7CiAJY2FzZSBT Q1NJX01MUVVFVUVfSE9TVF9CVVNZOgorCQlzY3NpX2RtYV91bm1hcChTQ3BudCk7CiAJCXR3YV9m cmVlX3JlcXVlc3RfaWQodHdfZGV2LCByZXF1ZXN0X2lkKTsKLQkJdHdhX3VubWFwX3Njc2lfZGF0 YSh0d19kZXYsIHJlcXVlc3RfaWQpOwogCQlicmVhazsKIAljYXNlIDE6Ci0JCXR3X2Rldi0+c3Rh dGVbcmVxdWVzdF9pZF0gPSBUV19TX0NPTVBMRVRFRDsKLQkJdHdhX2ZyZWVfcmVxdWVzdF9pZCh0 d19kZXYsIHJlcXVlc3RfaWQpOwotCQl0d2FfdW5tYXBfc2NzaV9kYXRhKHR3X2RldiwgcmVxdWVz dF9pZCk7CiAJCVNDcG50LT5yZXN1bHQgPSAoRElEX0VSUk9SIDw8IDE2KTsKKwkJc2NzaV9kbWFf dW5tYXAoU0NwbnQpOwogCQlkb25lKFNDcG50KTsKKwkJdHdfZGV2LT5zdGF0ZVtyZXF1ZXN0X2lk XSA9IFRXX1NfQ09NUExFVEVEOworCQl0d2FfZnJlZV9yZXF1ZXN0X2lkKHR3X2RldiwgcmVxdWVz dF9pZCk7CiAJCXJldHZhbCA9IDA7CiAJfQogb3V0OgpAQCAtMTg3NSw4ICsxODUzLDggQEAgc3Rh dGljIGludCB0d2Ffc2NzaW9wX2V4ZWN1dGVfc2NzaShUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19k ZXYsIGludCByZXF1ZXN0X2lkLAogCQkJCWNvbW1hbmRfcGFja2V0LT5zZ19saXN0WzBdLmFkZHJl c3MgPSBUV19DUFVfVE9fU0dMKHR3X2Rldi0+Z2VuZXJpY19idWZmZXJfcGh5c1tyZXF1ZXN0X2lk XSk7CiAJCQkJY29tbWFuZF9wYWNrZXQtPnNnX2xpc3RbMF0ubGVuZ3RoID0gY3B1X3RvX2xlMzIo VFdfTUlOX1NHTF9MRU5HVEgpOwogCQkJfSBlbHNlIHsKLQkJCQlzZ19jb3VudCA9IHR3YV9tYXBf c2NzaV9zZ19kYXRhKHR3X2RldiwgcmVxdWVzdF9pZCk7Ci0JCQkJaWYgKHNnX2NvdW50ID09IDAp CisJCQkJc2dfY291bnQgPSBzY3NpX2RtYV9tYXAoc3JiKTsKKwkJCQlpZiAoc2dfY291bnQgPCAw KQogCQkJCQlnb3RvIG91dDsKIAogCQkJCXNjc2lfZm9yX2VhY2hfc2coc3JiLCBzZywgc2dfY291 bnQsIGkpIHsKQEAgLTE5OTEsMTUgKzE5NjksNiBAQCBzdGF0aWMgY2hhciAqdHdhX3N0cmluZ19s b29rdXAodHdhX21lc3NhZ2VfdHlwZSAqdGFibGUsIHVuc2lnbmVkIGludCBjb2RlKQogCXJldHVy bih0YWJsZVtpbmRleF0udGV4dCk7CiB9IC8qIEVuZCB0d2Ffc3RyaW5nX2xvb2t1cCgpICovCiAK LS8qIFRoaXMgZnVuY3Rpb24gd2lsbCBwZXJmb3JtIGEgcGNpLWRtYSB1bm1hcCAqLwotc3RhdGlj IHZvaWQgdHdhX3VubWFwX3Njc2lfZGF0YShUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19kZXYsIGlu dCByZXF1ZXN0X2lkKQotewotCXN0cnVjdCBzY3NpX2NtbmQgKmNtZCA9IHR3X2Rldi0+c3JiW3Jl cXVlc3RfaWRdOwotCi0JaWYgKGNtZC0+U0NwLnBoYXNlID09IFRXX1BIQVNFX1NHTElTVCkKLQkJ c2NzaV9kbWFfdW5tYXAoY21kKTsKLX0gLyogRW5kIHR3YV91bm1hcF9zY3NpX2RhdGEoKSAqLwot CiAvKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW4gYSBkaXNrIGlzIGNvbWluZyBvbi1s aW5lICovCiBzdGF0aWMgaW50IHR3YV9zbGF2ZV9jb25maWd1cmUoc3RydWN0IHNjc2lfZGV2aWNl ICpzZGV2KQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpLzN3LTl4eHguaCBiL2RyaXZlcnMv c2NzaS8zdy05eHh4LmgKaW5kZXggMDQwZjcyMS4uMGZkYzgzYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zY3NpLzN3LTl4eHguaAorKysgYi9kcml2ZXJzL3Njc2kvM3ctOXh4eC5oCkBAIC0zMjQsMTEg KzMyNCw2IEBAIHN0YXRpYyB0d2FfbWVzc2FnZV90eXBlIHR3YV9lcnJvcl90YWJsZVtdID0gewog I2RlZmluZSBUV19DVVJSRU5UX0RSSVZFUl9CVUlMRCAwCiAjZGVmaW5lIFRXX0NVUlJFTlRfRFJJ VkVSX0JSQU5DSCAwCiAKLS8qIFBoYXNlIGRlZmluZXMgKi8KLSNkZWZpbmUgVFdfUEhBU0VfSU5J VElBTCAwCi0jZGVmaW5lIFRXX1BIQVNFX1NJTkdMRSAgMQotI2RlZmluZSBUV19QSEFTRV9TR0xJ U1QgIDIKLQogLyogTWlzYyBkZWZpbmVzICovCiAjZGVmaW5lIFRXXzk1NTBTWF9EUkFJTl9DT01Q TEVURUQJICAgICAgMHhGRkZGCiAjZGVmaW5lIFRXX1NFQ1RPUl9TSVpFICAgICAgICAgICAgICAg ICAgICAgICAgNTEyCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvM3ctc2FzLmMgYi9kcml2ZXJz L3Njc2kvM3ctc2FzLmMKaW5kZXggMTNlMzllMS4uYzU1NWNjYiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zY3NpLzN3LXNhcy5jCisrKyBiL2RyaXZlcnMvc2NzaS8zdy1zYXMuYwpAQCAtMzAzLDI2ICsz MDMsNiBAQCBzdGF0aWMgaW50IHR3bF9wb3N0X2NvbW1hbmRfcGFja2V0KFRXX0RldmljZV9FeHRl bnNpb24gKnR3X2RldiwgaW50IHJlcXVlc3RfaWQpCiAJcmV0dXJuIDA7CiB9IC8qIEVuZCB0d2xf cG9zdF9jb21tYW5kX3BhY2tldCgpICovCiAKLS8qIFRoaXMgZnVuY3Rpb24gd2lsbCBwZXJmb3Jt IGEgcGNpLWRtYSBtYXBwaW5nIGZvciBhIHNjYXR0ZXIgZ2F0aGVyIGxpc3QgKi8KLXN0YXRpYyBp bnQgdHdsX21hcF9zY3NpX3NnX2RhdGEoVFdfRGV2aWNlX0V4dGVuc2lvbiAqdHdfZGV2LCBpbnQg cmVxdWVzdF9pZCkKLXsKLQlpbnQgdXNlX3NnOwotCXN0cnVjdCBzY3NpX2NtbmQgKmNtZCA9IHR3 X2Rldi0+c3JiW3JlcXVlc3RfaWRdOwotCi0JdXNlX3NnID0gc2NzaV9kbWFfbWFwKGNtZCk7Ci0J aWYgKCF1c2Vfc2cpCi0JCXJldHVybiAwOwotCWVsc2UgaWYgKHVzZV9zZyA8IDApIHsKLQkJVFdf UFJJTlRLKHR3X2Rldi0+aG9zdCwgVFdfRFJJVkVSLCAweDEsICJGYWlsZWQgdG8gbWFwIHNjYXR0 ZXIgZ2F0aGVyIGxpc3QiKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JY21kLT5TQ3AucGhhc2UgPSBU V19QSEFTRV9TR0xJU1Q7Ci0JY21kLT5TQ3AuaGF2ZV9kYXRhX2luID0gdXNlX3NnOwotCi0JcmV0 dXJuIHVzZV9zZzsKLX0gLyogRW5kIHR3bF9tYXBfc2NzaV9zZ19kYXRhKCkgKi8KLQogLyogVGhp cyBmdW5jdGlvbiBoYW5kcyBzY3NpIGNkYidzIHRvIHRoZSBmaXJtd2FyZSAqLwogc3RhdGljIGlu dCB0d2xfc2NzaW9wX2V4ZWN1dGVfc2NzaShUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19kZXYsIGlu dCByZXF1ZXN0X2lkLCBjaGFyICpjZGIsIGludCB1c2Vfc2csIFRXX1NHX0VudHJ5X0lTTyAqc2ds aXN0YXJnKQogewpAQCAtMzcwLDggKzM1MCw4IEBAIHN0YXRpYyBpbnQgdHdsX3Njc2lvcF9leGVj dXRlX3Njc2koVFdfRGV2aWNlX0V4dGVuc2lvbiAqdHdfZGV2LCBpbnQgcmVxdWVzdF9pZCwKIAlp ZiAoIXNnbGlzdGFyZykgewogCQkvKiBNYXAgc2dsaXN0IGZyb20gc2NzaSBsYXllciB0byBjbWQg cGFja2V0ICovCiAJCWlmIChzY3NpX3NnX2NvdW50KHNyYikpIHsKLQkJCXNnX2NvdW50ID0gdHds X21hcF9zY3NpX3NnX2RhdGEodHdfZGV2LCByZXF1ZXN0X2lkKTsKLQkJCWlmIChzZ19jb3VudCA9 PSAwKQorCQkJc2dfY291bnQgPSBzY3NpX2RtYV9tYXAoc3JiKTsKKwkJCWlmIChzZ19jb3VudCA8 PSAwKQogCQkJCWdvdG8gb3V0OwogCiAJCQlzY3NpX2Zvcl9lYWNoX3NnKHNyYiwgc2csIHNnX2Nv dW50LCBpKSB7CkBAIC0xMTE2LDE1ICsxMDk2LDYgQEAgb3V0OgogCXJldHVybiByZXR2YWw7CiB9 IC8qIEVuZCB0d2xfaW5pdGlhbGl6ZV9kZXZpY2VfZXh0ZW5zaW9uKCkgKi8KIAotLyogVGhpcyBm dW5jdGlvbiB3aWxsIHBlcmZvcm0gYSBwY2ktZG1hIHVubWFwICovCi1zdGF0aWMgdm9pZCB0d2xf dW5tYXBfc2NzaV9kYXRhKFRXX0RldmljZV9FeHRlbnNpb24gKnR3X2RldiwgaW50IHJlcXVlc3Rf aWQpCi17Ci0Jc3RydWN0IHNjc2lfY21uZCAqY21kID0gdHdfZGV2LT5zcmJbcmVxdWVzdF9pZF07 Ci0KLQlpZiAoY21kLT5TQ3AucGhhc2UgPT0gVFdfUEhBU0VfU0dMSVNUKQotCQlzY3NpX2RtYV91 bm1hcChjbWQpOwotfSAvKiBFbmQgdHdsX3VubWFwX3Njc2lfZGF0YSgpICovCi0KIC8qIFRoaXMg ZnVuY3Rpb24gd2lsbCBoYW5kbGUgYXR0ZW50aW9uIGludGVycnVwdHMgKi8KIHN0YXRpYyBpbnQg dHdsX2hhbmRsZV9hdHRlbnRpb25faW50ZXJydXB0KFRXX0RldmljZV9FeHRlbnNpb24gKnR3X2Rl dikKIHsKQEAgLTEyNjUsMTEgKzEyMzYsMTEgQEAgc3RhdGljIGlycXJldHVybl90IHR3bF9pbnRl cnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKQogCQkJfQogCiAJCQkvKiBOb3cgY29t cGxldGUgdGhlIGlvICovCisJCQlzY3NpX2RtYV91bm1hcChjbWQpOworCQkJY21kLT5zY3NpX2Rv bmUoY21kKTsKIAkJCXR3X2Rldi0+c3RhdGVbcmVxdWVzdF9pZF0gPSBUV19TX0NPTVBMRVRFRDsK IAkJCXR3bF9mcmVlX3JlcXVlc3RfaWQodHdfZGV2LCByZXF1ZXN0X2lkKTsKIAkJCXR3X2Rldi0+ cG9zdGVkX3JlcXVlc3RfY291bnQtLTsKLQkJCXR3X2Rldi0+c3JiW3JlcXVlc3RfaWRdLT5zY3Np X2RvbmUodHdfZGV2LT5zcmJbcmVxdWVzdF9pZF0pOwotCQkJdHdsX3VubWFwX3Njc2lfZGF0YSh0 d19kZXYsIHJlcXVlc3RfaWQpOwogCQl9CiAKIAkJLyogQ2hlY2sgZm9yIGFub3RoZXIgcmVzcG9u c2UgaW50ZXJydXB0ICovCkBAIC0xNDE0LDEwICsxMzg1LDEyIEBAIHN0YXRpYyBpbnQgdHdsX3Jl c2V0X2RldmljZV9leHRlbnNpb24oVFdfRGV2aWNlX0V4dGVuc2lvbiAqdHdfZGV2LCBpbnQgaW9j dGxfcmVzCiAJCWlmICgodHdfZGV2LT5zdGF0ZVtpXSAhPSBUV19TX0ZJTklTSEVEKSAmJgogCQkg ICAgKHR3X2Rldi0+c3RhdGVbaV0gIT0gVFdfU19JTklUSUFMKSAmJgogCQkgICAgKHR3X2Rldi0+ c3RhdGVbaV0gIT0gVFdfU19DT01QTEVURUQpKSB7Ci0JCQlpZiAodHdfZGV2LT5zcmJbaV0pIHsK LQkJCQl0d19kZXYtPnNyYltpXS0+cmVzdWx0ID0gKERJRF9SRVNFVCA8PCAxNik7Ci0JCQkJdHdf ZGV2LT5zcmJbaV0tPnNjc2lfZG9uZSh0d19kZXYtPnNyYltpXSk7Ci0JCQkJdHdsX3VubWFwX3Nj c2lfZGF0YSh0d19kZXYsIGkpOworCQkJc3RydWN0IHNjc2lfY21uZCAqY21kID0gdHdfZGV2LT5z cmJbaV07CisKKwkJCWlmIChjbWQpIHsKKwkJCQljbWQtPnJlc3VsdCA9IChESURfUkVTRVQgPDwg MTYpOworCQkJCXNjc2lfZG1hX3VubWFwKGNtZCk7CisJCQkJY21kLT5zY3NpX2RvbmUoY21kKTsK IAkJCX0KIAkJfQogCX0KQEAgLTE1MjEsOSArMTQ5NCw2IEBAIHN0YXRpYyBpbnQgdHdsX3Njc2lf cXVldWVfbGNrKHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50LCB2b2lkICgqZG9uZSkoc3RydWN0IHNj c2lfCiAJLyogU2F2ZSB0aGUgc2NzaSBjb21tYW5kIGZvciB1c2UgYnkgdGhlIElTUiAqLwogCXR3 X2Rldi0+c3JiW3JlcXVlc3RfaWRdID0gU0NwbnQ7CiAKLQkvKiBJbml0aWFsaXplIHBoYXNlIHRv IHplcm8gKi8KLQlTQ3BudC0+U0NwLnBoYXNlID0gVFdfUEhBU0VfSU5JVElBTDsKLQogCXJldHZh bCA9IHR3bF9zY3Npb3BfZXhlY3V0ZV9zY3NpKHR3X2RldiwgcmVxdWVzdF9pZCwgTlVMTCwgMCwg TlVMTCk7CiAJaWYgKHJldHZhbCkgewogCQl0d19kZXYtPnN0YXRlW3JlcXVlc3RfaWRdID0gVFdf U19DT01QTEVURUQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvM3ctc2FzLmggYi9kcml2ZXJz L3Njc2kvM3ctc2FzLmgKaW5kZXggZDQ3NDg5Mi4uZmVjNjQ0OSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zY3NpLzN3LXNhcy5oCisrKyBiL2RyaXZlcnMvc2NzaS8zdy1zYXMuaApAQCAtMTAzLDEwICsx MDMsNiBAQCBzdGF0aWMgY2hhciAqdHdsX2Flbl9zZXZlcml0eV90YWJsZVtdID0KICNkZWZpbmUg VFdfQ1VSUkVOVF9EUklWRVJfQlVJTEQgMAogI2RlZmluZSBUV19DVVJSRU5UX0RSSVZFUl9CUkFO Q0ggMAogCi0vKiBQaGFzZSBkZWZpbmVzICovCi0jZGVmaW5lIFRXX1BIQVNFX0lOSVRJQUwgMAot I2RlZmluZSBUV19QSEFTRV9TR0xJU1QgIDIKLQogLyogTWlzYyBkZWZpbmVzICovCiAjZGVmaW5l IFRXX1NFQ1RPUl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgNTEyCiAjZGVmaW5lIFRXX01B WF9VTklUUwkJCSAgICAgIDMyCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvM3cteHh4eC5jIGIv ZHJpdmVycy9zY3NpLzN3LXh4eHguYwppbmRleCA3ZmU5NmZmLi44NmJjNWY5IDEwMDY0NAotLS0g YS9kcml2ZXJzL3Njc2kvM3cteHh4eC5jCisrKyBiL2RyaXZlcnMvc2NzaS8zdy14eHh4LmMKQEAg LTEyODMsMzIgKzEyODMsNiBAQCBzdGF0aWMgaW50IHR3X2luaXRpYWxpemVfZGV2aWNlX2V4dGVu c2lvbihUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19kZXYpCiAJcmV0dXJuIDA7CiB9IC8qIEVuZCB0 d19pbml0aWFsaXplX2RldmljZV9leHRlbnNpb24oKSAqLwogCi1zdGF0aWMgaW50IHR3X21hcF9z Y3NpX3NnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkK LXsKLQlpbnQgdXNlX3NnOwotCi0JZHByaW50ayhLRVJOX1dBUk5JTkcgIjN3LXh4eHg6IHR3X21h cF9zY3NpX3NnX2RhdGEoKVxuIik7Ci0KLQl1c2Vfc2cgPSBzY3NpX2RtYV9tYXAoY21kKTsKLQlp ZiAodXNlX3NnIDwgMCkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICIzdy14eHh4OiB0d19tYXBf c2NzaV9zZ19kYXRhKCk6IHBjaV9tYXBfc2coKSBmYWlsZWQuXG4iKTsKLQkJcmV0dXJuIDA7Ci0J fQotCi0JY21kLT5TQ3AucGhhc2UgPSBUV19QSEFTRV9TR0xJU1Q7Ci0JY21kLT5TQ3AuaGF2ZV9k YXRhX2luID0gdXNlX3NnOwotCi0JcmV0dXJuIHVzZV9zZzsKLX0gLyogRW5kIHR3X21hcF9zY3Np X3NnX2RhdGEoKSAqLwotCi1zdGF0aWMgdm9pZCB0d191bm1hcF9zY3NpX2RhdGEoc3RydWN0IHBj aV9kZXYgKnBkZXYsIHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKLXsKLQlkcHJpbnRrKEtFUk5fV0FS TklORyAiM3cteHh4eDogdHdfdW5tYXBfc2NzaV9kYXRhKClcbiIpOwotCi0JaWYgKGNtZC0+U0Nw LnBoYXNlID09IFRXX1BIQVNFX1NHTElTVCkKLQkJc2NzaV9kbWFfdW5tYXAoY21kKTsKLX0gLyog RW5kIHR3X3VubWFwX3Njc2lfZGF0YSgpICovCi0KIC8qIFRoaXMgZnVuY3Rpb24gd2lsbCByZXNl dCBhIGRldmljZSBleHRlbnNpb24gKi8KIHN0YXRpYyBpbnQgdHdfcmVzZXRfZGV2aWNlX2V4dGVu c2lvbihUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19kZXYpCiB7CkBAIC0xMzMxLDggKzEzMDUsOCBA QCBzdGF0aWMgaW50IHR3X3Jlc2V0X2RldmljZV9leHRlbnNpb24oVFdfRGV2aWNlX0V4dGVuc2lv biAqdHdfZGV2KQogCQkJc3JiID0gdHdfZGV2LT5zcmJbaV07CiAJCQlpZiAoc3JiICE9IE5VTEwp IHsKIAkJCQlzcmItPnJlc3VsdCA9IChESURfUkVTRVQgPDwgMTYpOwotCQkJCXR3X2Rldi0+c3Ji W2ldLT5zY3NpX2RvbmUodHdfZGV2LT5zcmJbaV0pOwotCQkJCXR3X3VubWFwX3Njc2lfZGF0YSh0 d19kZXYtPnR3X3BjaV9kZXYsIHR3X2Rldi0+c3JiW2ldKTsKKwkJCQlzY3NpX2RtYV91bm1hcChz cmIpOworCQkJCXNyYi0+c2NzaV9kb25lKHNyYik7CiAJCQl9CiAJCX0KIAl9CkBAIC0xNzc5LDgg KzE3NTMsOCBAQCBzdGF0aWMgaW50IHR3X3Njc2lvcF9yZWFkX3dyaXRlKFRXX0RldmljZV9FeHRl bnNpb24gKnR3X2RldiwgaW50IHJlcXVlc3RfaWQpCiAJY29tbWFuZF9wYWNrZXQtPmJ5dGU4Lmlv LmxiYSA9IGxiYTsKIAljb21tYW5kX3BhY2tldC0+Ynl0ZTYuYmxvY2tfY291bnQgPSBudW1fc2Vj dG9yczsKIAotCXVzZV9zZyA9IHR3X21hcF9zY3NpX3NnX2RhdGEodHdfZGV2LT50d19wY2lfZGV2 LCB0d19kZXYtPnNyYltyZXF1ZXN0X2lkXSk7Ci0JaWYgKCF1c2Vfc2cpCisJdXNlX3NnID0gc2Nz aV9kbWFfbWFwKHNyYik7CisJaWYgKHVzZV9zZyA8PSAwKQogCQlyZXR1cm4gMTsKIAogCXNjc2lf Zm9yX2VhY2hfc2codHdfZGV2LT5zcmJbcmVxdWVzdF9pZF0sIHNnLCB1c2Vfc2csIGkpIHsKQEAg LTE5NjcsOSArMTk0MSw2IEBAIHN0YXRpYyBpbnQgdHdfc2NzaV9xdWV1ZV9sY2soc3RydWN0IHNj c2lfY21uZCAqU0NwbnQsIHZvaWQgKCpkb25lKShzdHJ1Y3Qgc2NzaV9jCiAJLyogU2F2ZSB0aGUg c2NzaSBjb21tYW5kIGZvciB1c2UgYnkgdGhlIElTUiAqLwogCXR3X2Rldi0+c3JiW3JlcXVlc3Rf aWRdID0gU0NwbnQ7CiAKLQkvKiBJbml0aWFsaXplIHBoYXNlIHRvIHplcm8gKi8KLQlTQ3BudC0+ U0NwLnBoYXNlID0gVFdfUEhBU0VfSU5JVElBTDsKLQogCXN3aXRjaCAoKmNvbW1hbmQpIHsKIAkJ Y2FzZSBSRUFEXzEwOgogCQljYXNlIFJFQURfNjoKQEAgLTIxOTYsMTIgKzIxNjcsMTEgQEAgc3Rh dGljIGlycXJldHVybl90IHR3X2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2Up CiAKIAkJCQkvKiBOb3cgY29tcGxldGUgdGhlIGlvICovCiAJCQkJaWYgKChlcnJvciAhPSBUV19J U1JfRE9OVF9DT01QTEVURSkpIHsKKwkJCQkJc2NzaV9kbWFfdW5tYXAodHdfZGV2LT5zcmJbcmVx dWVzdF9pZF0pOworCQkJCQl0d19kZXYtPnNyYltyZXF1ZXN0X2lkXS0+c2NzaV9kb25lKHR3X2Rl di0+c3JiW3JlcXVlc3RfaWRdKTsKIAkJCQkJdHdfZGV2LT5zdGF0ZVtyZXF1ZXN0X2lkXSA9IFRX X1NfQ09NUExFVEVEOwogCQkJCQl0d19zdGF0ZV9yZXF1ZXN0X2ZpbmlzaCh0d19kZXYsIHJlcXVl c3RfaWQpOwogCQkJCQl0d19kZXYtPnBvc3RlZF9yZXF1ZXN0X2NvdW50LS07Ci0JCQkJCXR3X2Rl di0+c3JiW3JlcXVlc3RfaWRdLT5zY3NpX2RvbmUodHdfZGV2LT5zcmJbcmVxdWVzdF9pZF0pOwot CQkJCQkKLQkJCQkJdHdfdW5tYXBfc2NzaV9kYXRhKHR3X2Rldi0+dHdfcGNpX2RldiwgdHdfZGV2 LT5zcmJbcmVxdWVzdF9pZF0pOwogCQkJCX0KIAkJCX0KIAkJCQkKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc2NzaS8zdy14eHh4LmggYi9kcml2ZXJzL3Njc2kvM3cteHh4eC5oCmluZGV4IDQ5ZGNmMDMu LjFkMzE4NTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS8zdy14eHh4LmgKKysrIGIvZHJpdmVy cy9zY3NpLzN3LXh4eHguaApAQCAtMTk1LDExICsxOTUsNiBAQCBzdGF0aWMgdW5zaWduZWQgY2hh ciB0d19zZW5zZV90YWJsZVtdWzRdID0KICNkZWZpbmUgVFdfQUVOX1NNQVJUX0ZBSUwgICAgICAg IDB4MDAwRgogI2RlZmluZSBUV19BRU5fU0JVRl9GQUlMICAgICAgICAgMHgwMDI0CiAKLS8qIFBo YXNlIGRlZmluZXMgKi8KLSNkZWZpbmUgVFdfUEhBU0VfSU5JVElBTCAwCi0jZGVmaW5lIFRXX1BI QVNFX1NJTkdMRSAxCi0jZGVmaW5lIFRXX1BIQVNFX1NHTElTVCAyCi0KIC8qIE1pc2MgZGVmaW5l cyAqLwogI2RlZmluZSBUV19BTElHTk1FTlRfNjAwMAkJICAgICAgNjQgLyogNjQgYnl0ZXMgKi8K ICNkZWZpbmUgVFdfQUxJR05NRU5UXzcwMDAgICAgICAgICAgICAgICAgICAgICA0ICAvKiA0IGJ5 dGVzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzX2Z1 c2lvbi5jIGIvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhc19mdXNpb24uYwppbmRl eCBiZmQ4N2ZhLi4zZTBmNzFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVn YXJhaWRfc2FzX2Z1c2lvbi5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9z YXNfZnVzaW9uLmMKQEAgLTE0MjYsMTEgKzE0MjYsMTEgQEAgbWVnYXNhc19idWlsZF9sZGlvX2Z1 c2lvbihzdHJ1Y3QgbWVnYXNhc19pbnN0YW5jZSAqaW5zdGFuY2UsCiAJCQlmcF9wb3NzaWJsZSA9 IGlvX2luZm8uZnBPa0ZvcklvOwogCX0KIAotCS8qIFVzZSBzbXBfcHJvY2Vzc29yX2lkKCkgZm9y IG5vdyB1bnRpbCBjbWQtPnJlcXVlc3QtPmNwdSBpcyBDUFUKKwkvKiBVc2UgcmF3X3NtcF9wcm9j ZXNzb3JfaWQoKSBmb3Igbm93IHVudGlsIGNtZC0+cmVxdWVzdC0+Y3B1IGlzIENQVQogCSAgIGlk IGJ5IGRlZmF1bHQsIG5vdCBDUFUgZ3JvdXAgaWQsIG90aGVyd2lzZSBhbGwgTVNJLVggcXVldWVz IHdvbid0CiAJICAgYmUgdXRpbGl6ZWQgKi8KIAljbWQtPnJlcXVlc3RfZGVzYy0+U0NTSUlPLk1T SXhJbmRleCA9IGluc3RhbmNlLT5tc2l4X3ZlY3RvcnMgPwotCQlzbXBfcHJvY2Vzc29yX2lkKCkg JSBpbnN0YW5jZS0+bXNpeF92ZWN0b3JzIDogMDsKKwkJcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSAl IGluc3RhbmNlLT5tc2l4X3ZlY3RvcnMgOiAwOwogCiAJaWYgKGZwX3Bvc3NpYmxlKSB7CiAJCW1l Z2FzYXNfc2V0X3BkX2xiYShpb19yZXF1ZXN0LCBzY3AtPmNtZF9sZW4sICZpb19pbmZvLCBzY3As CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2QuYyBiL2RyaXZlcnMvc2NzaS9zZC5jCmluZGV4 IDVjNmI1ZjUuLmE1MDgyNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zZC5jCisrKyBiL2Ry aXZlcnMvc2NzaS9zZC5jCkBAIC0xMzM4LDYgKzEzMzgsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50 IHNkX2NvbXBsZXRlZF9ieXRlcyhzdHJ1Y3Qgc2NzaV9jbW5kICpzY21kKQogewogCXU2NCBzdGFy dF9sYmEgPSBibGtfcnFfcG9zKHNjbWQtPnJlcXVlc3QpOwogCXU2NCBlbmRfbGJhID0gYmxrX3Jx X3BvcyhzY21kLT5yZXF1ZXN0KSArIChzY3NpX2J1ZmZsZW4oc2NtZCkgLyA1MTIpOworCXU2NCBm YWN0b3IgPSBzY21kLT5kZXZpY2UtPnNlY3Rvcl9zaXplIC8gNTEyOwogCXU2NCBiYWRfbGJhOwog CWludCBpbmZvX3ZhbGlkOwogCS8qCkBAIC0xMzU5LDE2ICsxMzYwLDkgQEAgc3RhdGljIHVuc2ln bmVkIGludCBzZF9jb21wbGV0ZWRfYnl0ZXMoc3RydWN0IHNjc2lfY21uZCAqc2NtZCkKIAlpZiAo c2NzaV9idWZmbGVuKHNjbWQpIDw9IHNjbWQtPmRldmljZS0+c2VjdG9yX3NpemUpCiAJCXJldHVy biAwOwogCi0JaWYgKHNjbWQtPmRldmljZS0+c2VjdG9yX3NpemUgPCA1MTIpIHsKLQkJLyogb25s eSBsZWdpdGltYXRlIHNlY3Rvcl9zaXplIGhlcmUgaXMgMjU2ICovCi0JCXN0YXJ0X2xiYSA8PD0g MTsKLQkJZW5kX2xiYSA8PD0gMTsKLQl9IGVsc2UgewotCQkvKiBiZSBjYXJlZnVsIC4uLiBkb24n dCB3YW50IGFueSBvdmVyZmxvd3MgKi8KLQkJdTY0IGZhY3RvciA9IHNjbWQtPmRldmljZS0+c2Vj dG9yX3NpemUgLyA1MTI7Ci0JCWRvX2RpdihzdGFydF9sYmEsIGZhY3Rvcik7Ci0JCWRvX2Rpdihl bmRfbGJhLCBmYWN0b3IpOwotCX0KKwkvKiBiZSBjYXJlZnVsIC4uLiBkb24ndCB3YW50IGFueSBv dmVyZmxvd3MgKi8KKwlkb19kaXYoc3RhcnRfbGJhLCBmYWN0b3IpOworCWRvX2RpdihlbmRfbGJh LCBmYWN0b3IpOwogCiAJLyogVGhlIGJhZCBsYmEgd2FzIHJlcG9ydGVkIGluY29ycmVjdGx5LCB3 ZSBoYXZlIG5vIGlkZWEgd2hlcmUKIAkgKiB0aGUgZXJyb3IgaXMuCkBAIC0xODk1LDggKzE4ODks NyBAQCBnb3RfZGF0YToKIAlpZiAoc2VjdG9yX3NpemUgIT0gNTEyICYmCiAJICAgIHNlY3Rvcl9z aXplICE9IDEwMjQgJiYKIAkgICAgc2VjdG9yX3NpemUgIT0gMjA0OCAmJgotCSAgICBzZWN0b3Jf c2l6ZSAhPSA0MDk2ICYmCi0JICAgIHNlY3Rvcl9zaXplICE9IDI1NikgeworCSAgICBzZWN0b3Jf c2l6ZSAhPSA0MDk2KSB7CiAJCXNkX3ByaW50ayhLRVJOX05PVElDRSwgc2RrcCwgIlVuc3VwcG9y dGVkIHNlY3RvciBzaXplICVkLlxuIiwKIAkJCSAgc2VjdG9yX3NpemUpOwogCQkvKgpAQCAtMTk0 NSw4ICsxOTM4LDYgQEAgZ290X2RhdGE6CiAJCXNka3AtPmNhcGFjaXR5IDw8PSAyOwogCWVsc2Ug aWYgKHNlY3Rvcl9zaXplID09IDEwMjQpCiAJCXNka3AtPmNhcGFjaXR5IDw8PSAxOwotCWVsc2Ug aWYgKHNlY3Rvcl9zaXplID09IDI1NikKLQkJc2RrcC0+Y2FwYWNpdHkgPj49IDE7CiAKIAlibGtf cXVldWVfcGh5c2ljYWxfYmxvY2tfc2l6ZShzZHAtPnJlcXVlc3RfcXVldWUsCiAJCQkJICAgICAg c2RrcC0+cGh5c2ljYWxfYmxvY2tfc2l6ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2cu YyBiL2RyaXZlcnMvc2NzaS9zZy5jCmluZGV4IDJkMjU2MTYuLmI0Y2FjMzkgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvc2NzaS9zZy5jCisrKyBiL2RyaXZlcnMvc2NzaS9zZy5jCkBAIC0xNjg3LDYgKzE2 ODcsOSBAQCBzdGF0aWMgaW50IHNnX3N0YXJ0X3JlcShTZ19yZXF1ZXN0ICpzcnAsIHVuc2lnbmVk IGNoYXIgKmNtZCkKIAkJCW1kLT5mcm9tX3VzZXIgPSAwOwogCX0KIAorCWlmICh1bmxpa2VseShp b3ZfY291bnQgPiBVSU9fTUFYSU9WKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlpZiAoaW92X2Nv dW50KSB7CiAJCWludCBsZW4sIHNpemUgPSBzaXplb2Yoc3RydWN0IHNnX2lvdmVjKSAqIGlvdl9j b3VudDsKIAkJc3RydWN0IGlvdmVjICppb3Y7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv aHYvc3RvcnZzY19kcnYuYyBiL2RyaXZlcnMvc3RhZ2luZy9odi9zdG9ydnNjX2Rydi5jCmluZGV4 IGM0M2E5ZTguLjU0ZWYzZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9odi9zdG9ydnNj X2Rydi5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9odi9zdG9ydnNjX2Rydi5jCkBAIC05NDAsMjMg Kzk0MCwyNCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGNvcHlfdG9fYm91bmNlX2J1ZmZlcihzdHJ1 Y3Qgc2NhdHRlcmxpc3QgKm9yaWdfc2dsLAogCQkJaWYgKGJvdW5jZV9zZ2xbal0ubGVuZ3RoID09 IFBBR0VfU0laRSkgewogCQkJCS8qIGZ1bGwuLm1vdmUgdG8gbmV4dCBlbnRyeSAqLwogCQkJCWt1 bm1hcF9hdG9taWMoKHZvaWQgKilib3VuY2VfYWRkciwgS01fSVJRMCk7CisJCQkJYm91bmNlX2Fk ZHIgPSAwOwogCQkJCWorKzsKKwkJCX0KIAotCQkJCS8qIGlmIHdlIG5lZWQgdG8gdXNlIGFub3Ro ZXIgYm91bmNlIGJ1ZmZlciAqLwotCQkJCWlmIChzcmNsZW4gfHwgaSAhPSBvcmlnX3NnbF9jb3Vu dCAtIDEpCi0JCQkJCWJvdW5jZV9hZGRyID0KKwkJCS8qIGlmIHdlIG5lZWQgdG8gdXNlIGFub3Ro ZXIgYm91bmNlIGJ1ZmZlciAqLworCQkJaWYgKHNyY2xlbiAmJiBib3VuY2VfYWRkciA9PSAwKQor CQkJCWJvdW5jZV9hZGRyID0KIAkJCQkJKHVuc2lnbmVkIGxvbmcpa21hcF9hdG9taWMoCiAJCQkJ CXNnX3BhZ2UoKCZib3VuY2Vfc2dsW2pdKSksIEtNX0lSUTApOwogCi0JCQl9IGVsc2UgaWYgKHNy Y2xlbiA9PSAwICYmIGkgPT0gb3JpZ19zZ2xfY291bnQgLSAxKSB7Ci0JCQkJLyogdW5tYXAgdGhl IGxhc3QgYm91bmNlIHRoYXQgaXMgPCBQQUdFX1NJWkUgKi8KLQkJCQlrdW5tYXBfYXRvbWljKCh2 b2lkICopYm91bmNlX2FkZHIsIEtNX0lSUTApOwotCQkJfQogCQl9CiAKIAkJa3VubWFwX2F0b21p Yygodm9pZCAqKShzcmNfYWRkciAtIG9yaWdfc2dsW2ldLm9mZnNldCksIEtNX0lSUTApOwogCX0K IAorCWlmIChib3VuY2VfYWRkcikKKwkJa3VubWFwX2F0b21pYygodm9pZCAqKWJvdW5jZV9hZGRy LCBLTV9JUlEwKTsKKwogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAogCXJldHVybiB0b3Rh bF9jb3BpZWQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbGluZTYvcGNtLmMgYi9kcml2 ZXJzL3N0YWdpbmcvbGluZTYvcGNtLmMKaW5kZXggMmQzYTQyMC4uOTU1YzZkZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9zdGFnaW5nL2xpbmU2L3BjbS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9saW5l Ni9wY20uYwpAQCAtODgsMTAgKzg4LDEzIEBAIHN0YXRpYyBERVZJQ0VfQVRUUihpbXB1bHNlX3Bl cmlvZCwgU19JV1VTUiB8IFNfSVJVR08sIHBjbV9nZXRfaW1wdWxzZV9wZXJpb2QsCiAKIGludCBs aW5lNl9wY21fc3RhcnQoc3RydWN0IHNuZF9saW5lNl9wY20gKmxpbmU2cGNtLCBpbnQgY2hhbm5l bHMpCiB7Ci0JdW5zaWduZWQgbG9uZyBmbGFnc19vbGQgPQotCSAgICBfX3N5bmNfZmV0Y2hfYW5k X29yKCZsaW5lNnBjbS0+ZmxhZ3MsIGNoYW5uZWxzKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzX25l dyA9IGZsYWdzX29sZCB8IGNoYW5uZWxzOwotCWludCBlcnIgPSAwOworCXVuc2lnbmVkIGxvbmcg ZmxhZ3Nfb2xkLCBmbGFnc19uZXc7CisJaW50IGVycjsKKworCWRvIHsKKwkJZmxhZ3Nfb2xkID0g QUNDRVNTX09OQ0UobGluZTZwY20tPmZsYWdzKTsKKwkJZmxhZ3NfbmV3ID0gZmxhZ3Nfb2xkIHwg Y2hhbm5lbHM7CisJfSB3aGlsZSAoY21weGNoZygmbGluZTZwY20tPmZsYWdzLCBmbGFnc19vbGQs IGZsYWdzX25ldykgIT0gZmxhZ3Nfb2xkKTsKIAogI2lmIExJTkU2X0JBQ0tVUF9NT05JVE9SX1NJ R05BTAogCWlmICghKGxpbmU2cGNtLT5saW5lNi0+cHJvcGVydGllcy0+Y2FwYWJpbGl0aWVzICYg TElORTZfQklUX0hXTU9OKSkgewpAQCAtMTMzLDEwICsxMzYsOCBAQCBpbnQgbGluZTZfcGNtX3N0 YXJ0KHN0cnVjdCBzbmRfbGluZTZfcGNtICpsaW5lNnBjbSwgaW50IGNoYW5uZWxzKQogCQlsaW5l NnBjbS0+cHJldl9mc2l6ZSA9IDA7CiAJCWVyciA9IGxpbmU2X3N1Ym1pdF9hdWRpb19pbl9hbGxf dXJicyhsaW5lNnBjbSk7CiAKLQkJaWYgKGVyciA8IDApIHsKLQkJCV9fc3luY19mZXRjaF9hbmRf YW5kKCZsaW5lNnBjbS0+ZmxhZ3MsIH5jaGFubmVscyk7Ci0JCQlyZXR1cm4gZXJyOwotCQl9CisJ CWlmIChlcnIgPCAwKQorCQkJZ290byBmYWlsOwogCX0KIAogCWlmICgoKGZsYWdzX29sZCAmIE1B U0tfUExBWUJBQ0spID09IDApICYmCkBAIC0xNjAsMjAgKzE2MSwyOSBAQCBpbnQgbGluZTZfcGNt X3N0YXJ0KHN0cnVjdCBzbmRfbGluZTZfcGNtICpsaW5lNnBjbSwgaW50IGNoYW5uZWxzKQogCQls aW5lNnBjbS0+Y291bnRfb3V0ID0gMDsKIAkJZXJyID0gbGluZTZfc3VibWl0X2F1ZGlvX291dF9h bGxfdXJicyhsaW5lNnBjbSk7CiAKLQkJaWYgKGVyciA8IDApIHsKLQkJCV9fc3luY19mZXRjaF9h bmRfYW5kKCZsaW5lNnBjbS0+ZmxhZ3MsIH5jaGFubmVscyk7Ci0JCQlyZXR1cm4gZXJyOwotCQl9 CisJCWlmIChlcnIgPCAwKQorCQkJZ290byBmYWlsOwogCX0KIAogCXJldHVybiAwOworCitmYWls OgorCWRvIHsKKwkJZmxhZ3Nfb2xkID0gQUNDRVNTX09OQ0UobGluZTZwY20tPmZsYWdzKTsKKwkJ ZmxhZ3NfbmV3ID0gZmxhZ3Nfb2xkICYgfmNoYW5uZWxzOworCX0gd2hpbGUgKGNtcHhjaGcoJmxp bmU2cGNtLT5mbGFncywgZmxhZ3Nfb2xkLCBmbGFnc19uZXcpICE9IGZsYWdzX29sZCk7CisKKwly ZXR1cm4gZXJyOwogfQogCiBpbnQgbGluZTZfcGNtX3N0b3Aoc3RydWN0IHNuZF9saW5lNl9wY20g KmxpbmU2cGNtLCBpbnQgY2hhbm5lbHMpCiB7Ci0JdW5zaWduZWQgbG9uZyBmbGFnc19vbGQgPQot CSAgICBfX3N5bmNfZmV0Y2hfYW5kX2FuZCgmbGluZTZwY20tPmZsYWdzLCB+Y2hhbm5lbHMpOwot CXVuc2lnbmVkIGxvbmcgZmxhZ3NfbmV3ID0gZmxhZ3Nfb2xkICYgfmNoYW5uZWxzOworCXVuc2ln bmVkIGxvbmcgZmxhZ3Nfb2xkLCBmbGFnc19uZXc7CisKKwlkbyB7CisJCWZsYWdzX29sZCA9IEFD Q0VTU19PTkNFKGxpbmU2cGNtLT5mbGFncyk7CisJCWZsYWdzX25ldyA9IGZsYWdzX29sZCAmIH5j aGFubmVsczsKKwl9IHdoaWxlIChjbXB4Y2hnKCZsaW5lNnBjbS0+ZmxhZ3MsIGZsYWdzX29sZCwg ZmxhZ3NfbmV3KSAhPSBmbGFnc19vbGQpOwogCiAJaWYgKCgoZmxhZ3Nfb2xkICYgTUFTS19DQVBU VVJFKSAhPSAwKSAmJgogCSAgICAoKGZsYWdzX25ldyAmIE1BU0tfQ0FQVFVSRSkgPT0gMCkpIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9wYW5lbC9wYW5lbC5jIGIvZHJpdmVycy9zdGFn aW5nL3BhbmVsL3BhbmVsLmMKaW5kZXggNDY4M2Q1Zi4uOWE1ODRkYSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zdGFnaW5nL3BhbmVsL3BhbmVsLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3BhbmVsL3Bh bmVsLmMKQEAgLTI3NCwxMSArMjc0LDExIEBAIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGxjZF9iaXRz W0xDRF9QT1JUU11bTENEX0JJVFNdW0JJVF9TVEFURVNdOwogICogTENEIHR5cGVzCiAgKi8KICNk ZWZpbmUgTENEX1RZUEVfTk9ORQkJMAotI2RlZmluZSBMQ0RfVFlQRV9PTEQJCTEKLSNkZWZpbmUg TENEX1RZUEVfS1MwMDc0CQkyCi0jZGVmaW5lIExDRF9UWVBFX0hBTlRST05JWAkzCi0jZGVmaW5l IExDRF9UWVBFX05FWENPTQkJNAotI2RlZmluZSBMQ0RfVFlQRV9DVVNUT00JCTUKKyNkZWZpbmUg TENEX1RZUEVfQ1VTVE9NCQkxCisjZGVmaW5lIExDRF9UWVBFX09MRAkJMgorI2RlZmluZSBMQ0Rf VFlQRV9LUzAwNzQJCTMKKyNkZWZpbmUgTENEX1RZUEVfSEFOVFJPTklYCTQKKyNkZWZpbmUgTENE X1RZUEVfTkVYQ09NCQk1CiAKIC8qCiAgKiBrZXlwYWQgdHlwZXMKQEAgLTQ1Niw4ICs0NTYsNyBA QCBNT0RVTEVfUEFSTV9ERVNDKGtleXBhZF9lbmFibGVkLCAiRGVwcmVjYXRlZCBvcHRpb24sIHVz ZSBrZXlwYWRfdHlwZSBpbnN0ZWFkIik7CiBzdGF0aWMgaW50IGxjZF90eXBlID0gLTE7CiBtb2R1 bGVfcGFyYW0obGNkX3R5cGUsIGludCwgMDAwMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGxjZF90eXBl LAotCQkgIkxDRCB0eXBlOiAwPW5vbmUsIDE9b2xkIC8vLCAyPXNlcmlhbCBrczAwNzQsICIKLQkJ ICIzPWhhbnRyb25peCAvLywgND1uZXhjb20gLy8sIDU9Y29tcGlsZWQtaW4iKTsKKwkJICJMQ0Qg dHlwZTogMD1ub25lLCAxPWNvbXBpbGVkLWluLCAyPW9sZCwgMz1zZXJpYWwga3MwMDc0LCA0PWhh bnRyb25peCwgNT1uZXhjb20iKTsKIAogc3RhdGljIGludCBsY2RfcHJvdG8gPSAtMTsKIG1vZHVs ZV9wYXJhbShsY2RfcHJvdG8sIGludCwgMDAwMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Rhcmdl dC90YXJnZXRfY29yZV9wc2NzaS5jIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfcHNjc2ku YwppbmRleCBlYmY5YjYwLi4xZmI5ZTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC90YXJn ZXRfY29yZV9wc2NzaS5jCisrKyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX3BzY3NpLmMK QEAgLTU2OSw2ICs1NjksNyBAQCBzdGF0aWMgc3RydWN0IHNlX2RldmljZSAqcHNjc2lfY3JlYXRl X3ZpcnRkZXZpY2UoCiAJCQkJCSIgcGR2X2hvc3RfaWQ6ICVkXG4iLCBwZHYtPnBkdl9ob3N0X2lk KTsKIAkJCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAkJCX0KKwkJCXBkdi0+cGR2X2xsZF9o b3N0ID0gc2g7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAocGh2LT5waHZfbW9kZSA9PSBQSFZfVklS VVRBTF9IT1NUX0lEKSB7CkBAIC02NTUsNiArNjU2LDggQEAgc3RhdGljIHZvaWQgcHNjc2lfZnJl ZV9kZXZpY2Uodm9pZCAqcCkKIAkJaWYgKChwaHYtPnBodl9tb2RlID09IFBIVl9MTERfU0NTSV9I T1NUX05PKSAmJgogCQkgICAgKHBodi0+cGh2X2xsZF9ob3N0ICE9IE5VTEwpKQogCQkJc2NzaV9o b3N0X3B1dChwaHYtPnBodl9sbGRfaG9zdCk7CisJCWVsc2UgaWYgKHBkdi0+cGR2X2xsZF9ob3N0 KQorCQkJc2NzaV9ob3N0X3B1dChwZHYtPnBkdl9sbGRfaG9zdCk7CiAKIAkJaWYgKChzZC0+dHlw ZSA9PSBUWVBFX0RJU0spIHx8IChzZC0+dHlwZSA9PSBUWVBFX1JPTSkpCiAJCQlzY3NpX2Rldmlj ZV9wdXQoc2QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfcHNjc2ku aCBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX3BzY3NpLmgKaW5kZXggZmRjMTdiNi4uOGIw YTMzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfcHNjc2kuaAorKysg Yi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9wc2NzaS5oCkBAIC00Niw2ICs0Niw3IEBAIHN0 cnVjdCBwc2NzaV9kZXZfdmlydCB7CiAJc3RydWN0IGJsb2NrX2RldmljZSAqcGR2X2JkOwogCXN0 cnVjdCBzY3NpX2RldmljZSAqcGR2X3NkOwogCXN0cnVjdCBzZV9oYmEgKnBkdl9zZV9oYmE7CisJ c3RydWN0IFNjc2lfSG9zdCAqcGR2X2xsZF9ob3N0OwogfSBfX19fY2FjaGVsaW5lX2FsaWduZWQ7 CiAKIHR5cGVkZWYgZW51bSBwaHZfbW9kZXMgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvaHZj L2h2Y194ZW4uYyBiL2RyaXZlcnMvdHR5L2h2Yy9odmNfeGVuLmMKaW5kZXggNTJmZGY2MC4uZGY4 ZjhlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvaHZjL2h2Y194ZW4uYworKysgYi9kcml2ZXJz L3R0eS9odmMvaHZjX3hlbi5jCkBAIC0xNjcsNyArMTY3LDcgQEAgc3RhdGljIGludCBfX2luaXQg eGVuX2h2Y19pbml0KHZvaWQpCiAKIAlpZiAoeGVuX2luaXRpYWxfZG9tYWluKCkpIHsKIAkJb3Bz ID0gJmRvbTBfaHZjX29wczsKLQkJeGVuY29uc19pcnEgPSBiaW5kX3ZpcnFfdG9faXJxKFZJUlFf Q09OU09MRSwgMCk7CisJCXhlbmNvbnNfaXJxID0gYmluZF92aXJxX3RvX2lycShWSVJRX0NPTlNP TEUsIDAsIGZhbHNlKTsKIAl9IGVsc2UgewogCQlpZiAoIXhlbl9zdGFydF9pbmZvLT5jb25zb2xl LmRvbVUuZXZ0Y2huKQogCQkJcmV0dXJuIC1FTk9ERVY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0 eS9zZXJpYWwvb2Zfc2VyaWFsLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvb2Zfc2VyaWFsLmMKaW5k ZXggNjU2M2NhZC4uNzQ2ZTc3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL29mX3Nl cmlhbC5jCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9vZl9zZXJpYWwuYwpAQCAtMTkyLDcgKzE5 Miw2IEBAIHN0YXRpYyBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIF9fZGV2aW5pdGRhdGEgb2ZfcGxhdGZv cm1fc2VyaWFsX3RhYmxlW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICJpYm0scXBhY2UtbndwLXNl cmlhbCIsCiAJCS5kYXRhID0gKHZvaWQgKilQT1JUX05XUFNFUklBTCwgfSwKICNlbmRpZgotCXsg LnR5cGUgPSAic2VyaWFsIiwgICAgICAgICAuZGF0YSA9ICh2b2lkICopUE9SVF9VTktOT1dOLCB9 LAogCXsgLyogZW5kIG9mIGxpc3QgKi8gfSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5 L3NlcmlhbC91YXJ0bGl0ZS5jIGIvZHJpdmVycy90dHkvc2VyaWFsL3VhcnRsaXRlLmMKaW5kZXgg NmNkNDE0My4uZDk3MDZlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL3VhcnRsaXRl LmMKKysrIGIvZHJpdmVycy90dHkvc2VyaWFsL3VhcnRsaXRlLmMKQEAgLTU3Myw3ICs1NzMsOCBA QCBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB1bGl0ZV9vZl9tYXRjaCk7CiAKIHN0YXRpYyBpbnQg X19kZXZpbml0IHVsaXRlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7Ci0J c3RydWN0IHJlc291cmNlICpyZXMsICpyZXMyOworCXN0cnVjdCByZXNvdXJjZSAqcmVzOworCWlu dCBpcnE7CiAJaW50IGlkID0gcGRldi0+aWQ7CiAjaWZkZWYgQ09ORklHX09GCiAJY29uc3QgX19i ZTMyICpwcm9wOwpAQCAtNTg3LDExICs1ODgsMTEgQEAgc3RhdGljIGludCBfX2RldmluaXQgdWxp dGVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoIXJlcykKIAkJcmV0 dXJuIC1FTk9ERVY7CiAKLQlyZXMyID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVT T1VSQ0VfSVJRLCAwKTsKLQlpZiAoIXJlczIpCi0JCXJldHVybiAtRU5PREVWOworCWlycSA9IHBs YXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJaWYgKGlycSA8PSAwKQorCQlyZXR1cm4gLUVOWElP OwogCi0JcmV0dXJuIHVsaXRlX2Fzc2lnbigmcGRldi0+ZGV2LCBpZCwgcmVzLT5zdGFydCwgcmVz Mi0+c3RhcnQpOworCXJldHVybiB1bGl0ZV9hc3NpZ24oJnBkZXYtPmRldiwgaWQsIHJlcy0+c3Rh cnQsIGlycSk7CiB9CiAKIHN0YXRpYyBpbnQgX19kZXZleGl0IHVsaXRlX3JlbW92ZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL3hp bGlueF91YXJ0cHMuYyBiL2RyaXZlcnMvdHR5L3NlcmlhbC94aWxpbnhfdWFydHBzLmMKaW5kZXgg YjYyNzM2My4uNzc4YzM5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL3hpbGlueF91 YXJ0cHMuYworKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwveGlsaW54X3VhcnRwcy5jCkBAIC05NDEs OSArOTQxLDkgQEAgc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciB4dWFydHBzX3VhcnRfZHJpdmVy ID0gewogICoqLwogc3RhdGljIGludCBfX2RldmluaXQgeHVhcnRwc19wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQogewotCWludCByYzsKKwlpbnQgcmMsIGlycTsKIAlzdHJ1Y3Qg dWFydF9wb3J0ICpwb3J0OwotCXN0cnVjdCByZXNvdXJjZSAqcmVzLCAqcmVzMjsKKwlzdHJ1Y3Qg cmVzb3VyY2UgKnJlczsKIAlpbnQgY2xrID0gMDsKIAogI2lmZGVmIENPTkZJR19PRgpAQCAtOTY0 LDkgKzk2NCw5IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IHh1YXJ0cHNfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoIXJlcykKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQly ZXMyID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfSVJRLCAwKTsKLQlp ZiAoIXJlczIpCi0JCXJldHVybiAtRU5PREVWOworCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRl diwgMCk7CisJaWYgKGlycSA8PSAwKQorCQlyZXR1cm4gLUVOWElPOwogCiAJLyogSW5pdGlhbGl6 ZSB0aGUgcG9ydCBzdHJ1Y3R1cmUgKi8KIAlwb3J0ID0geHVhcnRwc19nZXRfcG9ydCgpOwpAQCAt OTgwLDcgKzk4MCw3IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IHh1YXJ0cHNfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJICogYW5kIHRyaWdnZXJzIGludm9jYXRpb24gb2Yg dGhlIGNvbmZpZ19wb3J0KCkgZW50cnkgcG9pbnQuCiAJCSAqLwogCQlwb3J0LT5tYXBiYXNlID0g cmVzLT5zdGFydDsKLQkJcG9ydC0+aXJxID0gcmVzMi0+c3RhcnQ7CisJCXBvcnQtPmlycSA9IGly cTsKIAkJcG9ydC0+ZGV2ID0gJnBkZXYtPmRldjsKIAkJcG9ydC0+dWFydGNsayA9IGNsazsKIAkJ ZGV2X3NldF9kcnZkYXRhKCZwZGV2LT5kZXYsIHBvcnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2IvY2xhc3MvY2RjLWFjbS5jIGIvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jCmluZGV4IDM2 MGRkYjUuLjU3ZDYzMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYwor KysgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMKQEAgLTk0NywxMSArOTQ3LDE2IEBAIHN0 YXRpYyBpbnQgYWNtX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAogCX0KIAogCXdo aWxlIChidWZsZW4gPiAwKSB7CisJCWVsZW5ndGggPSBidWZmZXJbMF07CisJCWlmICghZWxlbmd0 aCkgeworCQkJZGV2X2VycigmaW50Zi0+ZGV2LCAic2tpcHBpbmcgZ2FyYmFnZSBieXRlXG4iKTsK KwkJCWVsZW5ndGggPSAxOworCQkJZ290byBuZXh0X2Rlc2M7CisJCX0KIAkJaWYgKGJ1ZmZlclsx XSAhPSBVU0JfRFRfQ1NfSU5URVJGQUNFKSB7CiAJCQlkZXZfZXJyKCZpbnRmLT5kZXYsICJza2lw cGluZyBnYXJiYWdlXG4iKTsKIAkJCWdvdG8gbmV4dF9kZXNjOwogCQl9Ci0JCWVsZW5ndGggPSBi dWZmZXJbMF07CiAKIAkJc3dpdGNoIChidWZmZXJbMl0pIHsKIAkJY2FzZSBVU0JfQ0RDX1VOSU9O X1RZUEU6IC8qIHdlJ3ZlIGZvdW5kIGl0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jbGFz cy9jZGMtd2RtLmMgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtd2RtLmMKaW5kZXggMDZkZmI0Zi4u ZDM0MDA1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLXdkbS5jCisrKyBiL2Ry aXZlcnMvdXNiL2NsYXNzL2NkYy13ZG0uYwpAQCAtMjI0LDcgKzIyNCw3IEBAIHN0YXRpYyB2b2lk IHdkbV9pbnRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKQogCWNhc2UgVVNCX0NEQ19OT1RJRllf UkVTUE9OU0VfQVZBSUxBQkxFOgogCQlkZXZfZGJnKCZkZXNjLT5pbnRmLT5kZXYsCiAJCQkiTk9U SUZZX1JFU1BPTlNFX0FWQUlMQUJMRSByZWNlaXZlZDogaW5kZXggJWQgbGVuICVkIiwKLQkJCWRy LT53SW5kZXgsIGRyLT53TGVuZ3RoKTsKKwkJCWxlMTZfdG9fY3B1KGRyLT53SW5kZXgpLCBsZTE2 X3RvX2NwdShkci0+d0xlbmd0aCkpOwogCQlicmVhazsKIAogCWNhc2UgVVNCX0NEQ19OT1RJRllf TkVUV09SS19DT05ORUNUSU9OOgpAQCAtMjM3LDE0ICsyMzcsMTYgQEAgc3RhdGljIHZvaWQgd2Rt X2ludF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpCiAJCWNsZWFyX2JpdChXRE1fUE9MTF9SVU5O SU5HLCAmZGVzYy0+ZmxhZ3MpOwogCQlkZXZfZXJyKCZkZXNjLT5pbnRmLT5kZXYsCiAJCQkidW5r bm93biBub3RpZmljYXRpb24gJWQgcmVjZWl2ZWQ6IGluZGV4ICVkIGxlbiAlZFxuIiwKLQkJCWRy LT5iTm90aWZpY2F0aW9uVHlwZSwgZHItPndJbmRleCwgZHItPndMZW5ndGgpOworCQkJZHItPmJO b3RpZmljYXRpb25UeXBlLAorCQkJbGUxNl90b19jcHUoZHItPndJbmRleCksCisJCQlsZTE2X3Rv X2NwdShkci0+d0xlbmd0aCkpOwogCQlnb3RvIGV4aXQ7CiAJfQogCiAJcmVxLT5iUmVxdWVzdFR5 cGUgPSAoVVNCX0RJUl9JTiB8IFVTQl9UWVBFX0NMQVNTIHwgVVNCX1JFQ0lQX0lOVEVSRkFDRSk7 CiAJcmVxLT5iUmVxdWVzdCA9IFVTQl9DRENfR0VUX0VOQ0FQU1VMQVRFRF9SRVNQT05TRTsKIAly ZXEtPndWYWx1ZSA9IDA7Ci0JcmVxLT53SW5kZXggPSBkZXNjLT5pbnVtOworCXJlcS0+d0luZGV4 ID0gZGVzYy0+aW51bTsgLyogYWxyZWFkeSBjb252ZXJ0ZWQgKi8KIAlyZXEtPndMZW5ndGggPSBj cHVfdG9fbGUxNihkZXNjLT53TWF4Q29tbWFuZCk7CiAKIAl1c2JfZmlsbF9jb250cm9sX3VyYigK QEAgLTQwMSw3ICs0MDMsNyBAQCBzdGF0aWMgc3NpemVfdCB3ZG1fd3JpdGUKIAkJCSAgICAgVVNC X1JFQ0lQX0lOVEVSRkFDRSk7CiAJcmVxLT5iUmVxdWVzdCA9IFVTQl9DRENfU0VORF9FTkNBUFNV TEFURURfQ09NTUFORDsKIAlyZXEtPndWYWx1ZSA9IDA7Ci0JcmVxLT53SW5kZXggPSBkZXNjLT5p bnVtOworCXJlcS0+d0luZGV4ID0gZGVzYy0+aW51bTsgLyogYWxyZWFkeSBjb252ZXJ0ZWQgKi8K IAlyZXEtPndMZW5ndGggPSBjcHVfdG9fbGUxNihjb3VudCk7CiAJc2V0X2JpdChXRE1fSU5fVVNF LCAmZGVzYy0+ZmxhZ3MpOwogCWRlc2MtPm91dGJ1ZiA9IGJ1ZjsKQEAgLTQxNCw3ICs0MTYsNyBA QCBzdGF0aWMgc3NpemVfdCB3ZG1fd3JpdGUKIAkJZGV2X2VycigmZGVzYy0+aW50Zi0+ZGV2LCAi VHggVVJCIGVycm9yOiAlZFxuIiwgcnYpOwogCX0gZWxzZSB7CiAJCWRldl9kYmcoJmRlc2MtPmlu dGYtPmRldiwgIlR4IFVSQiBoYXMgYmVlbiBzdWJtaXR0ZWQgaW5kZXg9JWQiLAotCQkJcmVxLT53 SW5kZXgpOworCQkJbGUxNl90b19jcHUocmVxLT53SW5kZXgpKTsKIAl9CiBvdXQ6CiAJdXNiX2F1 dG9wbV9wdXRfaW50ZXJmYWNlKGRlc2MtPmludGYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Iv aG9zdC94aGNpLXJpbmcuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMKaW5kZXggMjVl OWViNC4uYTQ3ZTI5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYwor KysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jCkBAIC0yMDYwLDggKzIwNjAsMTMgQEAg c3RhdGljIGludCBwcm9jZXNzX2lzb2NfdGQoc3RydWN0IHhoY2lfaGNkICp4aGNpLCBzdHJ1Y3Qg eGhjaV90ZCAqdGQsCiAJCWJyZWFrOwogCWNhc2UgQ09NUF9ERVZfRVJSOgogCWNhc2UgQ09NUF9T VEFMTDoKKwkJZnJhbWUtPnN0YXR1cyA9IC1FUFJPVE87CisJCXNraXBfdGQgPSB0cnVlOworCQli cmVhazsKIAljYXNlIENPTVBfVFhfRVJSOgogCQlmcmFtZS0+c3RhdHVzID0gLUVQUk9UTzsKKwkJ aWYgKGV2ZW50X3RyYiAhPSB0ZC0+bGFzdF90cmIpCisJCQlyZXR1cm4gMDsKIAkJc2tpcF90ZCA9 IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgQ09NUF9TVE9QOgpAQCAtMjY0Niw3ICsyNjUxLDcgQEAg aXJxcmV0dXJuX3QgeGhjaV9pcnEoc3RydWN0IHVzYl9oY2QgKmhjZCkKIAkJeGhjaV9oYWx0KHho Y2kpOwogaHdfZGllZDoKIAkJc3Bpbl91bmxvY2soJnhoY2ktPmxvY2spOwotCQlyZXR1cm4gLUVT SFVURE9XTjsKKwkJcmV0dXJuIElSUV9IQU5ETEVEOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9k cml2ZXJzL3VzYi9ob3N0L3hoY2kuaCBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oCmluZGV4IGVm YmRmODMuLmQ2NzZhZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oCisrKyBi L2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oCkBAIC0xMjMxLDcgKzEyMzEsNyBAQCB1bmlvbiB4aGNp X3RyYiB7CiAgKiBzaW5jZSB0aGUgY29tbWFuZCByaW5nIGlzIDY0LWJ5dGUgYWxpZ25lZC4KICAq IEl0IG11c3QgYWxzbyBiZSBncmVhdGVyIHRoYW4gMTYuCiAgKi8KLSNkZWZpbmUgVFJCU19QRVJf U0VHTUVOVAk2NAorI2RlZmluZSBUUkJTX1BFUl9TRUdNRU5UCTI1NgogLyogQWxsb3cgdHdvIGNv bW1hbmRzICsgYSBsaW5rIFRSQiwgYWxvbmcgd2l0aCBhbnkgcmVzZXJ2ZWQgY29tbWFuZCBUUkJz ICovCiAjZGVmaW5lIE1BWF9SU1ZEX0NNRF9UUkJTCShUUkJTX1BFUl9TRUdNRU5UIC0gMykKICNk ZWZpbmUgU0VHTUVOVF9TSVpFCQkoVFJCU19QRVJfU0VHTUVOVCoxNikKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL211c2IvbXVzYl9jb3JlLmMgYi9kcml2ZXJzL3VzYi9tdXNiL211c2JfY29yZS5j CmluZGV4IDY0MWNhZjguLjZmN2Q4NGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL211c2IvbXVz Yl9jb3JlLmMKKysrIGIvZHJpdmVycy91c2IvbXVzYi9tdXNiX2NvcmUuYwpAQCAtMTUyNCwxNiAr MTUyNCwzMCBAQCBpcnFyZXR1cm5fdCBtdXNiX2ludGVycnVwdChzdHJ1Y3QgbXVzYiAqbXVzYikK IAkJKGRldmN0bCAmIE1VU0JfREVWQ1RMX0hNKSA/ICJob3N0IiA6ICJwZXJpcGhlcmFsIiwKIAkJ bXVzYi0+aW50X3VzYiwgbXVzYi0+aW50X3R4LCBtdXNiLT5pbnRfcngpOwogCi0JLyogdGhlIGNv cmUgY2FuIGludGVycnVwdCB1cyBmb3IgbXVsdGlwbGUgcmVhc29uczsgZG9jcyBoYXZlCi0JICog YSBnZW5lcmljIGludGVycnVwdCBmbG93Y2hhcnQgdG8gZm9sbG93CisJLyoqCisJICogQWNjb3Jk aW5nIHRvIE1lbnRvciBHcmFwaGljcycgZG9jdW1lbnRhdGlvbiwgZmxvd2NoYXJ0IG9uIHBhZ2Ug OTgsCisJICogSVJRIHNob3VsZCBiZSBoYW5kbGVkIGFzIGZvbGxvd3M6CisJICoKKwkgKiAuIFJl c3VtZSBJUlEKKwkgKiAuIFNlc3Npb24gUmVxdWVzdCBJUlEKKwkgKiAuIFZCVVMgRXJyb3IgSVJR CisJICogLiBTdXNwZW5kIElSUQorCSAqIC4gQ29ubmVjdCBJUlEKKwkgKiAuIERpc2Nvbm5lY3Qg SVJRCisJICogLiBSZXNldC9CYWJibGUgSVJRCisJICogLiBTT0YgSVJRICh3ZSdyZSBub3QgdXNp bmcgdGhpcyBvbmUpCisJICogLiBFbmRwb2ludCAwIElSUQorCSAqIC4gVFggRW5kcG9pbnRzCisJ ICogLiBSWCBFbmRwb2ludHMKKwkgKgorCSAqIFdlIHdpbGwgYmUgZm9sbG93aW5nIHRoYXQgZmxv d2NoYXJ0IGluIG9yZGVyIHRvIGF2b2lkIGFueSBwcm9ibGVtcworCSAqIHRoYXQgbWlnaHQgYXJp c2Ugd2l0aCBpbnRlcm5hbCBGaW5pdGUgU3RhdGUgTWFjaGluZS4KIAkgKi8KKwogCWlmIChtdXNi LT5pbnRfdXNiKQogCQlyZXR2YWwgfD0gbXVzYl9zdGFnZTBfaXJxKG11c2IsIG11c2ItPmludF91 c2IsCiAJCQkJZGV2Y3RsLCBwb3dlcik7CiAKLQkvKiAic3RhZ2UgMSIgaXMgaGFuZGxpbmcgZW5k cG9pbnQgaXJxcyAqLwotCi0JLyogaGFuZGxlIGVuZHBvaW50IDAgZmlyc3QgKi8KIAlpZiAobXVz Yi0+aW50X3R4ICYgMSkgewogCQlpZiAoZGV2Y3RsICYgTVVTQl9ERVZDVExfSE0pCiAJCQlyZXR2 YWwgfD0gbXVzYl9oX2VwMF9pcnEobXVzYik7CkBAIC0xNTQxLDQzICsxNTU1LDM3IEBAIGlycXJl dHVybl90IG11c2JfaW50ZXJydXB0KHN0cnVjdCBtdXNiICptdXNiKQogCQkJcmV0dmFsIHw9IG11 c2JfZ19lcDBfaXJxKG11c2IpOwogCX0KIAotCS8qIFJYIG9uIGVuZHBvaW50cyAxLTE1ICovCi0J cmVnID0gbXVzYi0+aW50X3J4ID4+IDE7CisJcmVnID0gbXVzYi0+aW50X3R4ID4+IDE7CiAJZXBf bnVtID0gMTsKIAl3aGlsZSAocmVnKSB7CiAJCWlmIChyZWcgJiAxKSB7Ci0JCQkvKiBtdXNiX2Vw X3NlbGVjdChtdXNiLT5tcmVncywgZXBfbnVtKTsgKi8KLQkJCS8qIFJFVklTSVQganVzdCByZXR2 YWwgPSBlcC0+cnhfaXJxKC4uLikgKi8KIAkJCXJldHZhbCA9IElSUV9IQU5ETEVEOwogCQkJaWYg KGRldmN0bCAmIE1VU0JfREVWQ1RMX0hNKSB7CiAJCQkJaWYgKGlzX2hvc3RfY2FwYWJsZSgpKQot CQkJCQltdXNiX2hvc3RfcngobXVzYiwgZXBfbnVtKTsKKwkJCQkJbXVzYl9ob3N0X3R4KG11c2Is IGVwX251bSk7CiAJCQl9IGVsc2UgewogCQkJCWlmIChpc19wZXJpcGhlcmFsX2NhcGFibGUoKSkK LQkJCQkJbXVzYl9nX3J4KG11c2IsIGVwX251bSk7CisJCQkJCW11c2JfZ190eChtdXNiLCBlcF9u dW0pOwogCQkJfQogCQl9Ci0KIAkJcmVnID4+PSAxOwogCQllcF9udW0rKzsKIAl9CiAKLQkvKiBU WCBvbiBlbmRwb2ludHMgMS0xNSAqLwotCXJlZyA9IG11c2ItPmludF90eCA+PiAxOworCXJlZyA9 IG11c2ItPmludF9yeCA+PiAxOwogCWVwX251bSA9IDE7CiAJd2hpbGUgKHJlZykgewogCQlpZiAo cmVnICYgMSkgewotCQkJLyogbXVzYl9lcF9zZWxlY3QobXVzYi0+bXJlZ3MsIGVwX251bSk7ICov Ci0JCQkvKiBSRVZJU0lUIGp1c3QgcmV0dmFsIHw9IGVwLT50eF9pcnEoLi4uKSAqLwogCQkJcmV0 dmFsID0gSVJRX0hBTkRMRUQ7CiAJCQlpZiAoZGV2Y3RsICYgTVVTQl9ERVZDVExfSE0pIHsKIAkJ CQlpZiAoaXNfaG9zdF9jYXBhYmxlKCkpCi0JCQkJCW11c2JfaG9zdF90eChtdXNiLCBlcF9udW0p OworCQkJCQltdXNiX2hvc3RfcngobXVzYiwgZXBfbnVtKTsKIAkJCX0gZWxzZSB7CiAJCQkJaWYg KGlzX3BlcmlwaGVyYWxfY2FwYWJsZSgpKQotCQkJCQltdXNiX2dfdHgobXVzYiwgZXBfbnVtKTsK KwkJCQkJbXVzYl9nX3J4KG11c2IsIGVwX251bSk7CiAJCQl9CiAJCX0KKwogCQlyZWcgPj49IDE7 CiAJCWVwX251bSsrOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHgu YyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYwppbmRleCA3ZjMyYzc0Li4wNzNhMGY5OCAx MDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jCisrKyBiL2RyaXZlcnMvdXNi L3NlcmlhbC9jcDIxMHguYwpAQCAtMTMzLDYgKzEzMyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dXNiX2RldmljZV9pZCBpZF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODhB NSkgfSwgLyogUGxhbmV0IElubm92YXRpb24gSW5nZW5pIFppZ0JlZSBVU0IgRGV2aWNlICovCiAJ eyBVU0JfREVWSUNFKDB4MTBDNCwgMHg4OTQ2KSB9LCAvKiBLZXRyYSBOMSBXaXJlbGVzcyBJbnRl cmZhY2UgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDg5NzcpIH0sCS8qIENFTCBNZXNoV29y a3MgRGV2S2l0IERldmljZSAqLworCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODk5OCkgfSwgLyog S0NGIFRlY2hub2xvZ2llcyBQUk4gKi8KKwl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDhBMkEpIH0s IC8qIEh1YlogZHVhbCBaaWdCZWUgYW5kIFotV2F2ZSBkb25nbGUgKi8KIAl7IFVTQl9ERVZJQ0Uo MHgxMEM0LCAweEVBNjApIH0sIC8qIFNpbGljb24gTGFicyBmYWN0b3J5IGRlZmF1bHQgKi8KIAl7 IFVTQl9ERVZJQ0UoMHgxMEM0LCAweEVBNjEpIH0sIC8qIFNpbGljb24gTGFicyBmYWN0b3J5IGRl ZmF1bHQgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweEVBNzApIH0sIC8qIFNpbGljb24gTGFi cyBmYWN0b3J5IGRlZmF1bHQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRp X3Npby5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKaW5kZXggZTEzZWJiMC4uODI1 N2QzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKKysrIGIvZHJp dmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKQEAgLTcyMyw2ICs3MjMsNyBAQCBzdGF0aWMgc3Ry dWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfY29tYmluZWQgW10gPSB7CiAJeyBVU0JfREVWSUNF KFhTRU5TX1ZJRCwgWFNFTlNfQVdJTkRBX0RPTkdMRV9QSUQpIH0sCiAJeyBVU0JfREVWSUNFKFhT RU5TX1ZJRCwgWFNFTlNfQVdJTkRBX1NUQVRJT05fUElEKSB9LAogCXsgVVNCX0RFVklDRShYU0VO U19WSUQsIFhTRU5TX0NPTlZFUlRFUl9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFhTRU5TX1ZJRCwg WFNFTlNfTVRERVZCT0FSRF9QSUQpIH0sCiAJeyBVU0JfREVWSUNFKFhTRU5TX1ZJRCwgWFNFTlNf TVRXX1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfT01OSTE1MDkpIH0sCiAJ eyBVU0JfREVWSUNFKE1PQklMSVRZX1ZJRCwgTU9CSUxJVFlfVVNCX1NFUklBTF9QSUQpIH0sCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW9faWRzLmggYi9kcml2ZXJzL3Vz Yi9zZXJpYWwvZnRkaV9zaW9faWRzLmgKaW5kZXggMzYxMTkyYy4uZTRhNTdiYiAxMDA2NDQKLS0t IGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lkcy5oCisrKyBiL2RyaXZlcnMvdXNiL3Nl cmlhbC9mdGRpX3Npb19pZHMuaApAQCAtMTU1LDYgKzE1NSw3IEBACiAjZGVmaW5lIFhTRU5TX0FX SU5EQV9TVEFUSU9OX1BJRCAweDAxMDEKICNkZWZpbmUgWFNFTlNfQVdJTkRBX0RPTkdMRV9QSUQg MHgwMTAyCiAjZGVmaW5lIFhTRU5TX01UV19QSUQJCTB4MDIwMAkvKiBYc2VucyBNVHcgKi8KKyNk ZWZpbmUgWFNFTlNfTVRERVZCT0FSRF9QSUQJMHgwMzAwCS8qIE1vdGlvbiBUcmFja2VyIERldmVs b3BtZW50IEJvYXJkICovCiAjZGVmaW5lIFhTRU5TX0NPTlZFUlRFUl9QSUQJMHhEMDBECS8qIFhz ZW5zIFVTQi1zZXJpYWwgY29udmVydGVyICovCiAKIC8qIFhzZW5zIGRldmljZXMgdXNpbmcgRlRE SSBWSUQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYyBiL2RyaXZl cnMvdXNiL3NlcmlhbC9wbDIzMDMuYwppbmRleCA3YmEzOGVhLi5hNDQwMzg3IDEwMDY0NAotLS0g YS9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3Bs MjMwMy5jCkBAIC02Nyw3ICs2Nyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9p ZCBpZF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRShEQ1UxMF9WRU5ET1JfSUQsIERDVTEwX1BS T0RVQ1RfSUQpIH0sCiAJeyBVU0JfREVWSUNFKFNJVEVDT01fVkVORE9SX0lELCBTSVRFQ09NX1BS T0RVQ1RfSUQpIH0sCiAJeyBVU0JfREVWSUNFKEFMQ0FURUxfVkVORE9SX0lELCBBTENBVEVMX1BS T0RVQ1RfSUQpIH0sCi0JeyBVU0JfREVWSUNFKFNBTVNVTkdfVkVORE9SX0lELCBTQU1TVU5HX1BS T0RVQ1RfSUQpIH0sCiAJeyBVU0JfREVWSUNFKFNJRU1FTlNfVkVORE9SX0lELCBTSUVNRU5TX1BS T0RVQ1RfSURfU1gxKSB9LAogCXsgVVNCX0RFVklDRShTSUVNRU5TX1ZFTkRPUl9JRCwgU0lFTUVO U19QUk9EVUNUX0lEX1g2NSkgfSwKIAl7IFVTQl9ERVZJQ0UoU0lFTUVOU19WRU5ET1JfSUQsIFNJ RU1FTlNfUFJPRFVDVF9JRF9YNzUpIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwv cGwyMzAzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmgKaW5kZXggNzFmZDlkYS4uZTNi N2FmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5oCisrKyBiL2RyaXZl cnMvdXNiL3NlcmlhbC9wbDIzMDMuaApAQCAtNjIsMTAgKzYyLDYgQEAKICNkZWZpbmUgQUxDQVRF TF9WRU5ET1JfSUQJMHgxMWY3CiAjZGVmaW5lIEFMQ0FURUxfUFJPRFVDVF9JRAkweDAyZGYKIAot LyogU2Ftc3VuZyBJMzMwIHBob25lIGNyYWRsZSAqLwotI2RlZmluZSBTQU1TVU5HX1ZFTkRPUl9J RAkweDA0ZTgKLSNkZWZpbmUgU0FNU1VOR19QUk9EVUNUX0lECTB4ODAwMQotCiAjZGVmaW5lIFNJ RU1FTlNfVkVORE9SX0lECTB4MTFmNQogI2RlZmluZSBTSUVNRU5TX1BST0RVQ1RfSURfU1gxCTB4 MDAwMQogI2RlZmluZSBTSUVNRU5TX1BST0RVQ1RfSURfWDY1CTB4MDAwMwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaCBiL2RyaXZlcnMvdXNiL3N0b3JhZ2Uv dW51c3VhbF9kZXZzLmgKaW5kZXggMGUyYzJkZS4uNjhlODU1MiAxMDA2NDQKLS0tIGEvZHJpdmVy cy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaAorKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3Vu dXN1YWxfZGV2cy5oCkBAIC03NTIsNiArNzUyLDEzIEBAIFVOVVNVQUxfREVWKCAgMHgwNTlmLCAw eDA2NDMsIDB4MDAwMCwgMHgwMDAwLAogCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCBO VUxMLAogCQlVU19GTF9HT19TTE9XICksCiAKKy8qIFJlcG9ydGVkIGJ5IENocmlzdGlhbiBTY2hh bGxlciA8Y3NjaGFsbGVAcmVkaGF0LmNvbT4gKi8KK1VOVVNVQUxfREVWKCAgMHgwNTlmLCAweDA2 NTEsIDB4MDAwMCwgMHgwMDAwLAorCQkiTGFDaWUiLAorCQkiRXh0ZXJuYWwgSEREIiwKKwkJVVNC X1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgTlVMTCwKKwkJVVNfRkxfTk9fV1BfREVURUNUICks CisKIC8qIFN1Ym1pdHRlZCBieSBKb2VsIEJvdXJxdWFyZCA8bnVtbG9ja0BmcmVlc3VyZi5jaD4K ICAqIFNvbWUgdmVyc2lvbnMgb2YgdGhpcyBkZXZpY2UgbmVlZCB0aGUgU3ViQ2xhc3MgYW5kIFBy b3RvY29sIG92ZXJyaWRlcwogICogd2hpbGUgb3RoZXJzIGRvbid0LgpkaWZmIC0tZ2l0IGEvZHJp dmVycy94ZW4vZXZlbnRzLmMgYi9kcml2ZXJzL3hlbi9ldmVudHMuYwppbmRleCBmNjIyN2NjLi5i Y2Y3NzExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9ldmVudHMuYworKysgYi9kcml2ZXJzL3hl bi9ldmVudHMuYwpAQCAtODk1LDcgKzg5NSw3IEBAIHN0YXRpYyBpbnQgZmluZF92aXJxKHVuc2ln bmVkIGludCB2aXJxLCB1bnNpZ25lZCBpbnQgY3B1KQogCXJldHVybiByYzsKIH0KIAotaW50IGJp bmRfdmlycV90b19pcnEodW5zaWduZWQgaW50IHZpcnEsIHVuc2lnbmVkIGludCBjcHUpCitpbnQg YmluZF92aXJxX3RvX2lycSh1bnNpZ25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IGNwdSwgYm9v bCBwZXJjcHUpCiB7CiAJc3RydWN0IGV2dGNobl9iaW5kX3ZpcnEgYmluZF92aXJxOwogCWludCBl dnRjaG4sIGlycSwgcmV0OwpAQCAtOTA5LDggKzkwOSwxMiBAQCBpbnQgYmluZF92aXJxX3RvX2ly cSh1bnNpZ25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IGNwdSkKIAkJaWYgKGlycSA9PSAtMSkK IAkJCWdvdG8gb3V0OwogCi0JCWlycV9zZXRfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGlycSwgJnhl bl9wZXJjcHVfY2hpcCwKLQkJCQkJICAgICAgaGFuZGxlX3BlcmNwdV9pcnEsICJ2aXJxIik7CisJ CWlmIChwZXJjcHUpCisJCQlpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpcnEsICZ4ZW5f cGVyY3B1X2NoaXAsCisJCQkJCQkgICAgICBoYW5kbGVfcGVyY3B1X2lycSwgInZpcnEiKTsKKwkJ ZWxzZQorCQkJaXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmeGVuX2R5bmFtaWNf Y2hpcCwKKwkJCQkJCSAgICAgIGhhbmRsZV9lZGdlX2lycSwgInZpcnEiKTsKIAogCQliaW5kX3Zp cnEudmlycSA9IHZpcnE7CiAJCWJpbmRfdmlycS52Y3B1ID0gY3B1OwpAQCAtMTAyMyw3ICsxMDI3 LDcgQEAgaW50IGJpbmRfdmlycV90b19pcnFoYW5kbGVyKHVuc2lnbmVkIGludCB2aXJxLCB1bnNp Z25lZCBpbnQgY3B1LAogewogCWludCBpcnEsIHJldHZhbDsKIAotCWlycSA9IGJpbmRfdmlycV90 b19pcnEodmlycSwgY3B1KTsKKwlpcnEgPSBiaW5kX3ZpcnFfdG9faXJxKHZpcnEsIGNwdSwgaXJx ZmxhZ3MgJiBJUlFGX1BFUkNQVSk7CiAJaWYgKGlycSA8IDApCiAJCXJldHVybiBpcnE7CiAJcmV0 dmFsID0gcmVxdWVzdF9pcnEoaXJxLCBoYW5kbGVyLCBpcnFmbGFncywgZGV2bmFtZSwgZGV2X2lk KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL2NvbmZfc3BhY2UuYyBiL2Ry aXZlcnMveGVuL3hlbi1wY2liYWNrL2NvbmZfc3BhY2UuYwppbmRleCA4MmFiMWMzLi5iYjhjYjY5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9jb25mX3NwYWNlLmMKKysrIGIv ZHJpdmVycy94ZW4veGVuLXBjaWJhY2svY29uZl9zcGFjZS5jCkBAIC0xNiw4ICsxNiw4IEBACiAj aW5jbHVkZSAiY29uZl9zcGFjZS5oIgogI2luY2x1ZGUgImNvbmZfc3BhY2VfcXVpcmtzLmgiCiAK LWJvb2wgcGVybWlzc2l2ZTsKLW1vZHVsZV9wYXJhbShwZXJtaXNzaXZlLCBib29sLCAwNjQ0KTsK K2Jvb2wgeGVuX3BjaWJrX3Blcm1pc3NpdmU7Cittb2R1bGVfcGFyYW1fbmFtZWQocGVybWlzc2l2 ZSwgeGVuX3BjaWJrX3Blcm1pc3NpdmUsIGJvb2wsIDA2NDQpOwogCiAvKiBUaGlzIGlzIHdoZXJl IHhlbl9wY2lia19yZWFkX2NvbmZpZ19ieXRlLCB4ZW5fcGNpYmtfcmVhZF9jb25maWdfd29yZCwK ICAqIHhlbl9wY2lia193cml0ZV9jb25maWdfd29yZCwgYW5kIHhlbl9wY2lia193cml0ZV9jb25m aWdfYnl0ZSBhcmUgY3JlYXRlZC4gKi8KQEAgLTI2Miw3ICsyNjIsNyBAQCBpbnQgeGVuX3BjaWJr X2NvbmZpZ193cml0ZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwg dTMyIHZhbHVlKQogCQkgKiBUaGlzIG1lYW5zIHRoYXQgc29tZSBmaWVsZHMgbWF5IHN0aWxsIGJl IHJlYWQtb25seSBiZWNhdXNlCiAJCSAqIHRoZXkgaGF2ZSBlbnRyaWVzIGluIHRoZSBjb25maWdf ZmllbGQgbGlzdCB0aGF0IGludGVyY2VwdAogCQkgKiB0aGUgd3JpdGUgYW5kIGRvIG5vdGhpbmcu ICovCi0JCWlmIChkZXZfZGF0YS0+cGVybWlzc2l2ZSB8fCBwZXJtaXNzaXZlKSB7CisJCWlmIChk ZXZfZGF0YS0+cGVybWlzc2l2ZSB8fCB4ZW5fcGNpYmtfcGVybWlzc2l2ZSkgewogCQkJc3dpdGNo IChzaXplKSB7CiAJCQljYXNlIDE6CiAJCQkJZXJyID0gcGNpX3dyaXRlX2NvbmZpZ19ieXRlKGRl diwgb2Zmc2V0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svY29uZl9zcGFj ZS5oIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svY29uZl9zcGFjZS5oCmluZGV4IDJlMWQ3M2Qu LjYyNDYxYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL2NvbmZfc3BhY2Uu aAorKysgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9jb25mX3NwYWNlLmgKQEAgLTY0LDcgKzY0 LDcgQEAgc3RydWN0IGNvbmZpZ19maWVsZF9lbnRyeSB7CiAJdm9pZCAqZGF0YTsKIH07CiAKLWV4 dGVybiBib29sIHBlcm1pc3NpdmU7CitleHRlcm4gYm9vbCB4ZW5fcGNpYmtfcGVybWlzc2l2ZTsK IAogI2RlZmluZSBPRkZTRVQoY2ZnX2VudHJ5KSAoKGNmZ19lbnRyeSktPmJhc2Vfb2Zmc2V0Kyhj ZmdfZW50cnkpLT5maWVsZC0+b2Zmc2V0KQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW4t cGNpYmFjay9jb25mX3NwYWNlX2hlYWRlci5jIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svY29u Zl9zcGFjZV9oZWFkZXIuYwppbmRleCBhNWJiODFhLi4xNjY3YTkwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3hlbi94ZW4tcGNpYmFjay9jb25mX3NwYWNlX2hlYWRlci5jCisrKyBiL2RyaXZlcnMveGVu L3hlbi1wY2liYWNrL2NvbmZfc3BhY2VfaGVhZGVyLmMKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0 aWMgaW50IGNvbW1hbmRfd3JpdGUoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG9mZnNldCwgdTE2 IHZhbHVlLCB2b2lkICpkYXRhKQogCiAJY21kLT52YWwgPSB2YWx1ZTsKIAotCWlmICghcGVybWlz c2l2ZSAmJiAoIWRldl9kYXRhIHx8ICFkZXZfZGF0YS0+cGVybWlzc2l2ZSkpCisJaWYgKCF4ZW5f cGNpYmtfcGVybWlzc2l2ZSAmJiAoIWRldl9kYXRhIHx8ICFkZXZfZGF0YS0+cGVybWlzc2l2ZSkp CiAJCXJldHVybiAwOwogCiAJLyogT25seSBhbGxvdyB0aGUgZ3Vlc3QgdG8gY29udHJvbCBjZXJ0 YWluIGJpdHMuICovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9paGV4MmZ3LmMgYi9maXJtd2FyZS9p aGV4MmZ3LmMKaW5kZXggY2YzOGUxNS4uMDhkOTBlMiAxMDA2NDQKLS0tIGEvZmlybXdhcmUvaWhl eDJmdy5jCisrKyBiL2Zpcm13YXJlL2loZXgyZncuYwpAQCAtODYsNiArODYsNyBAQCBpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWNhc2UgJ2onOgogCQkJaW5jbHVkZV9qdW1wID0g MTsKIAkJCWJyZWFrOworCQlkZWZhdWx0OgogCQkJcmV0dXJuIHVzYWdlKCk7CiAJCX0KIAl9CmRp ZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmLmMgYi9mcy9iaW5mbXRfZWxmLmMKaW5kZXggMmFlZDY2 Ny4uZDI1MjQ2MiAxMDA2NDQKLS0tIGEvZnMvYmluZm10X2VsZi5jCisrKyBiL2ZzL2JpbmZtdF9l bGYuYwpAQCAtNzQ2LDYgKzc0Niw3IEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVj dCBsaW51eF9iaW5wcm0gKmJwcm0sIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCSAgICBpIDwgbG9j LT5lbGZfZXguZV9waG51bTsgaSsrLCBlbGZfcHBudCsrKSB7CiAJCWludCBlbGZfcHJvdCA9IDAs IGVsZl9mbGFnczsKIAkJdW5zaWduZWQgbG9uZyBrLCB2YWRkcjsKKwkJdW5zaWduZWQgbG9uZyB0 b3RhbF9zaXplID0gMDsKIAogCQlpZiAoZWxmX3BwbnQtPnBfdHlwZSAhPSBQVF9MT0FEKQogCQkJ Y29udGludWU7CkBAIC04MDksMTAgKzgxMCwxNiBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFy eShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKICNlbHNl CiAJCQlsb2FkX2JpYXMgPSBFTEZfUEFHRVNUQVJUKEVMRl9FVF9EWU5fQkFTRSAtIHZhZGRyKTsK ICNlbmRpZgorCQkJdG90YWxfc2l6ZSA9IHRvdGFsX21hcHBpbmdfc2l6ZShlbGZfcGhkYXRhLAor CQkJCQkJCWxvYy0+ZWxmX2V4LmVfcGhudW0pOworCQkJaWYgKCF0b3RhbF9zaXplKSB7CisJCQkJ cmV0dmFsID0gLUVJTlZBTDsKKwkJCQlnb3RvIG91dF9mcmVlX2RlbnRyeTsKKwkJCX0KIAkJfQog CiAJCWVycm9yID0gZWxmX21hcChicHJtLT5maWxlLCBsb2FkX2JpYXMgKyB2YWRkciwgZWxmX3Bw bnQsCi0JCQkJZWxmX3Byb3QsIGVsZl9mbGFncywgMCk7CisJCQkJZWxmX3Byb3QsIGVsZl9mbGFn cywgdG90YWxfc2l6ZSk7CiAJCWlmIChCQURfQUREUihlcnJvcikpIHsKIAkJCXNlbmRfc2lnKFNJ R0tJTEwsIGN1cnJlbnQsIDApOwogCQkJcmV0dmFsID0gSVNfRVJSKCh2b2lkICopZXJyb3IpID8K ZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMgYi9mcy9idHJmcy9leHRlbnQtdHJl ZS5jCmluZGV4IGE2OTQzMTcuLmRhNTI4ZjggMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2V4dGVudC10 cmVlLmMKKysrIGIvZnMvYnRyZnMvZXh0ZW50LXRyZWUuYwpAQCAtNTY3OCwxMiArNTY3OCwxMSBA QCBzdGF0aWMgaW50IF9fYnRyZnNfZnJlZV9yZXNlcnZlZF9leHRlbnQoc3RydWN0IGJ0cmZzX3Jv b3QgKnJvb3QsCiAJCXJldHVybiAtRU5PU1BDOwogCX0KIAotCWlmIChidHJmc190ZXN0X29wdChy b290LCBESVNDQVJEKSkKLQkJcmV0ID0gYnRyZnNfZGlzY2FyZF9leHRlbnQocm9vdCwgc3RhcnQs IGxlbiwgTlVMTCk7Ci0KIAlpZiAocGluKQogCQlwaW5fZG93bl9leHRlbnQocm9vdCwgY2FjaGUs IHN0YXJ0LCBsZW4sIDEpOwogCWVsc2UgeworCQlpZiAoYnRyZnNfdGVzdF9vcHQocm9vdCwgRElT Q0FSRCkpCisJCQlyZXQgPSBidHJmc19kaXNjYXJkX2V4dGVudChyb290LCBzdGFydCwgbGVuLCBO VUxMKTsKIAkJYnRyZnNfYWRkX2ZyZWVfc3BhY2UoY2FjaGUsIHN0YXJ0LCBsZW4pOwogCQlidHJm c191cGRhdGVfcmVzZXJ2ZWRfYnl0ZXMoY2FjaGUsIGxlbiwgUkVTRVJWRV9GUkVFKTsKIAl9CmRp ZmYgLS1naXQgYS9mcy9idHJmcy9pb2N0bC5jIGIvZnMvYnRyZnMvaW9jdGwuYwppbmRleCA3Y2Jl MmY4Li41MmJhY2ZmIDEwMDY0NAotLS0gYS9mcy9idHJmcy9pb2N0bC5jCisrKyBiL2ZzL2J0cmZz L2lvY3RsLmMKQEAgLTIyNjMsNiArMjI2MywxMSBAQCBzdGF0aWMgbm9pbmxpbmUgbG9uZyBidHJm c19pb2N0bF9jbG9uZShzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBzcmNmZCwKIAlp ZiAob2ZmICsgbGVuID09IHNyYy0+aV9zaXplKQogCQlsZW4gPSBBTElHTihzcmMtPmlfc2l6ZSwg YnMpIC0gb2ZmOwogCisJaWYgKGxlbiA9PSAwKSB7CisJCXJldCA9IDA7CisJCWdvdG8gb3V0X3Vu bG9jazsKKwl9CisKIAkvKiB2ZXJpZnkgdGhlIGVuZCByZXN1bHQgaXMgYmxvY2sgYWxpZ25lZCAq LwogCWlmICghSVNfQUxJR05FRChvZmYsIGJzKSB8fCAhSVNfQUxJR05FRChvZmYgKyBsZW4sIGJz KSB8fAogCSAgICAhSVNfQUxJR05FRChkZXN0b2ZmLCBicykpCmRpZmYgLS1naXQgYS9mcy9idHJm cy94YXR0ci5jIGIvZnMvYnRyZnMveGF0dHIuYwppbmRleCAzODQ4YjA0Li42MGZmNDVlIDEwMDY0 NAotLS0gYS9mcy9idHJmcy94YXR0ci5jCisrKyBiL2ZzL2J0cmZzL3hhdHRyLmMKQEAgLTMxMCwy MSArMzEwLDQwIEBAIGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICpidHJmc194YXR0cl9oYW5k bGVyc1tdID0gewogLyoKICAqIENoZWNrIGlmIHRoZSBhdHRyaWJ1dGUgaXMgaW4gYSBzdXBwb3J0 ZWQgbmFtZXNwYWNlLgogICoKLSAqIFRoaXMgYXBwbGllZCBhZnRlciB0aGUgY2hlY2sgZm9yIHRo ZSBzeW50aGV0aWMgYXR0cmlidXRlcyBpbiB0aGUgc3lzdGVtCisgKiBUaGlzIGlzIGFwcGxpZWQg YWZ0ZXIgdGhlIGNoZWNrIGZvciB0aGUgc3ludGhldGljIGF0dHJpYnV0ZXMgaW4gdGhlIHN5c3Rl bQogICogbmFtZXNwYWNlLgogICovCi1zdGF0aWMgYm9vbCBidHJmc19pc192YWxpZF94YXR0cihj b25zdCBjaGFyICpuYW1lKQorc3RhdGljIGludCBidHJmc19pc192YWxpZF94YXR0cihjb25zdCBj aGFyICpuYW1lKQogewotCXJldHVybiAhc3RybmNtcChuYW1lLCBYQVRUUl9TRUNVUklUWV9QUkVG SVgsCi0JCQlYQVRUUl9TRUNVUklUWV9QUkVGSVhfTEVOKSB8fAotCSAgICAgICAhc3RybmNtcChu YW1lLCBYQVRUUl9TWVNURU1fUFJFRklYLCBYQVRUUl9TWVNURU1fUFJFRklYX0xFTikgfHwKLQkg ICAgICAgIXN0cm5jbXAobmFtZSwgWEFUVFJfVFJVU1RFRF9QUkVGSVgsIFhBVFRSX1RSVVNURURf UFJFRklYX0xFTikgfHwKLQkgICAgICAgIXN0cm5jbXAobmFtZSwgWEFUVFJfVVNFUl9QUkVGSVgs IFhBVFRSX1VTRVJfUFJFRklYX0xFTik7CisJaW50IGxlbiA9IHN0cmxlbihuYW1lKTsKKwlpbnQg cHJlZml4bGVuID0gMDsKKworCWlmICghc3RybmNtcChuYW1lLCBYQVRUUl9TRUNVUklUWV9QUkVG SVgsCisJCQlYQVRUUl9TRUNVUklUWV9QUkVGSVhfTEVOKSkKKwkJcHJlZml4bGVuID0gWEFUVFJf U0VDVVJJVFlfUFJFRklYX0xFTjsKKwllbHNlIGlmICghc3RybmNtcChuYW1lLCBYQVRUUl9TWVNU RU1fUFJFRklYLCBYQVRUUl9TWVNURU1fUFJFRklYX0xFTikpCisJCXByZWZpeGxlbiA9IFhBVFRS X1NZU1RFTV9QUkVGSVhfTEVOOworCWVsc2UgaWYgKCFzdHJuY21wKG5hbWUsIFhBVFRSX1RSVVNU RURfUFJFRklYLCBYQVRUUl9UUlVTVEVEX1BSRUZJWF9MRU4pKQorCQlwcmVmaXhsZW4gPSBYQVRU Ul9UUlVTVEVEX1BSRUZJWF9MRU47CisJZWxzZSBpZiAoIXN0cm5jbXAobmFtZSwgWEFUVFJfVVNF Ul9QUkVGSVgsIFhBVFRSX1VTRVJfUFJFRklYX0xFTikpCisJCXByZWZpeGxlbiA9IFhBVFRSX1VT RVJfUFJFRklYX0xFTjsKKwllbHNlCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKworCS8qCisJICog VGhlIG5hbWUgY2Fubm90IGNvbnNpc3Qgb2YganVzdCBwcmVmaXgKKwkgKi8KKwlpZiAobGVuIDw9 IHByZWZpeGxlbikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gMDsKIH0KIAogc3NpemVf dCBidHJmc19nZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUs CiAJCSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKQogeworCWludCByZXQ7CisKIAkv KgogCSAqIElmIHRoaXMgaXMgYSByZXF1ZXN0IGZvciBhIHN5bnRoZXRpYyBhdHRyaWJ1dGUgaW4g dGhlIHN5c3RlbS4qCiAJICogbmFtZXNwYWNlIHVzZSB0aGUgZ2VuZXJpYyBpbmZyYXN0cnVjdHVy ZSB0byByZXNvbHZlIGEgaGFuZGxlcgpAQCAtMzMzLDggKzM1Miw5IEBAIHNzaXplX3QgYnRyZnNf Z2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lLAogCWlmICgh c3RybmNtcChuYW1lLCBYQVRUUl9TWVNURU1fUFJFRklYLCBYQVRUUl9TWVNURU1fUFJFRklYX0xF TikpCiAJCXJldHVybiBnZW5lcmljX2dldHhhdHRyKGRlbnRyeSwgbmFtZSwgYnVmZmVyLCBzaXpl KTsKIAotCWlmICghYnRyZnNfaXNfdmFsaWRfeGF0dHIobmFtZSkpCi0JCXJldHVybiAtRU9QTk9U U1VQUDsKKwlyZXQgPSBidHJmc19pc192YWxpZF94YXR0cihuYW1lKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gcmV0OwogCXJldHVybiBfX2J0cmZzX2dldHhhdHRyKGRlbnRyeS0+ZF9pbm9kZSwgbmFt ZSwgYnVmZmVyLCBzaXplKTsKIH0KIApAQCAtMzQyLDYgKzM2Miw3IEBAIGludCBidHJmc19zZXR4 YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHZvaWQg KnZhbHVlLAogCQkgICBzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKQogewogCXN0cnVjdCBidHJmc19y b290ICpyb290ID0gQlRSRlNfSShkZW50cnktPmRfaW5vZGUpLT5yb290OworCWludCByZXQ7CiAK IAkvKgogCSAqIFRoZSBwZXJtaXNzaW9uIG9uIHNlY3VyaXR5LiogYW5kIHN5c3RlbS4qIGlzIG5v dCBjaGVja2VkCkBAIC0zNTgsOCArMzc5LDkgQEAgaW50IGJ0cmZzX3NldHhhdHRyKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgdm9pZCAqdmFsdWUsCiAJaWYg KCFzdHJuY21wKG5hbWUsIFhBVFRSX1NZU1RFTV9QUkVGSVgsIFhBVFRSX1NZU1RFTV9QUkVGSVhf TEVOKSkKIAkJcmV0dXJuIGdlbmVyaWNfc2V0eGF0dHIoZGVudHJ5LCBuYW1lLCB2YWx1ZSwgc2l6 ZSwgZmxhZ3MpOwogCi0JaWYgKCFidHJmc19pc192YWxpZF94YXR0cihuYW1lKSkKLQkJcmV0dXJu IC1FT1BOT1RTVVBQOworCXJldCA9IGJ0cmZzX2lzX3ZhbGlkX3hhdHRyKG5hbWUpOworCWlmIChy ZXQpCisJCXJldHVybiByZXQ7CiAKIAlpZiAoc2l6ZSA9PSAwKQogCQl2YWx1ZSA9ICIiOyAgLyog ZW1wdHkgRUEsIGRvIG5vdCByZW1vdmUgKi8KQEAgLTM3MSw2ICszOTMsNyBAQCBpbnQgYnRyZnNf c2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCB2 b2lkICp2YWx1ZSwKIGludCBidHJmc19yZW1vdmV4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnks IGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QgPSBCVFJGU19J KGRlbnRyeS0+ZF9pbm9kZSktPnJvb3Q7CisJaW50IHJldDsKIAogCS8qCiAJICogVGhlIHBlcm1p c3Npb24gb24gc2VjdXJpdHkuKiBhbmQgc3lzdGVtLiogaXMgbm90IGNoZWNrZWQKQEAgLTM4Nyw4 ICs0MTAsOSBAQCBpbnQgYnRyZnNfcmVtb3ZleGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj b25zdCBjaGFyICpuYW1lKQogCWlmICghc3RybmNtcChuYW1lLCBYQVRUUl9TWVNURU1fUFJFRklY LCBYQVRUUl9TWVNURU1fUFJFRklYX0xFTikpCiAJCXJldHVybiBnZW5lcmljX3JlbW92ZXhhdHRy KGRlbnRyeSwgbmFtZSk7CiAKLQlpZiAoIWJ0cmZzX2lzX3ZhbGlkX3hhdHRyKG5hbWUpKQotCQly ZXR1cm4gLUVPUE5PVFNVUFA7CisJcmV0ID0gYnRyZnNfaXNfdmFsaWRfeGF0dHIobmFtZSk7CisJ aWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCXJldHVybiBfX2J0cmZzX3NldHhhdHRyKE5VTEws IGRlbnRyeS0+ZF9pbm9kZSwgbmFtZSwgTlVMTCwgMCwKIAkJCQlYQVRUUl9SRVBMQUNFKTsKZGlm ZiAtLWdpdCBhL2ZzL2RjYWNoZS5jIGIvZnMvZGNhY2hlLmMKaW5kZXggOGJjOThhZi4uOGEzNTMw MCAxMDA2NDQKLS0tIGEvZnMvZGNhY2hlLmMKKysrIGIvZnMvZGNhY2hlLmMKQEAgLTEwMTYsMTMg KzEwMTYsMTMgQEAgYXNjZW5kOgogCQkvKiBtaWdodCBnbyBiYWNrIHVwIHRoZSB3cm9uZyBwYXJl bnQgaWYgd2UgaGF2ZSBoYWQgYSByZW5hbWUgKi8KIAkJaWYgKCFsb2NrZWQgJiYgcmVhZF9zZXFy ZXRyeSgmcmVuYW1lX2xvY2ssIHNlcSkpCiAJCQlnb3RvIHJlbmFtZV9yZXRyeTsKLQkJbmV4dCA9 IGNoaWxkLT5kX2NoaWxkLm5leHQ7Ci0JCXdoaWxlICh1bmxpa2VseShjaGlsZC0+ZF9mbGFncyAm IERDQUNIRV9ERU5UUllfS0lMTEVEKSkgeworCQkvKiBnbyBpbnRvIHRoZSBmaXJzdCBzaWJsaW5n IHN0aWxsIGFsaXZlICovCisJCWRvIHsKKwkJCW5leHQgPSBjaGlsZC0+ZF9jaGlsZC5uZXh0Owog CQkJaWYgKG5leHQgPT0gJnRoaXNfcGFyZW50LT5kX3N1YmRpcnMpCiAJCQkJZ290byBhc2NlbmQ7 CiAJCQljaGlsZCA9IGxpc3RfZW50cnkobmV4dCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7Ci0J CQluZXh0ID0gbmV4dC0+bmV4dDsKLQkJfQorCQl9IHdoaWxlICh1bmxpa2VseShjaGlsZC0+ZF9m bGFncyAmIERDQUNIRV9ERU5UUllfS0lMTEVEKSk7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCQln b3RvIHJlc3VtZTsKIAl9CkBAIC0xMTQyLDEzICsxMTQyLDEzIEBAIGFzY2VuZDoKIAkJLyogbWln aHQgZ28gYmFjayB1cCB0aGUgd3JvbmcgcGFyZW50IGlmIHdlIGhhdmUgaGFkIGEgcmVuYW1lICov CiAJCWlmICghbG9ja2VkICYmIHJlYWRfc2VxcmV0cnkoJnJlbmFtZV9sb2NrLCBzZXEpKQogCQkJ Z290byByZW5hbWVfcmV0cnk7Ci0JCW5leHQgPSBjaGlsZC0+ZF9jaGlsZC5uZXh0OwotCQl3aGls ZSAodW5saWtlbHkoY2hpbGQtPmRfZmxhZ3MgJiBEQ0FDSEVfREVOVFJZX0tJTExFRCkpIHsKKwkJ LyogZ28gaW50byB0aGUgZmlyc3Qgc2libGluZyBzdGlsbCBhbGl2ZSAqLworCQlkbyB7CisJCQlu ZXh0ID0gY2hpbGQtPmRfY2hpbGQubmV4dDsKIAkJCWlmIChuZXh0ID09ICZ0aGlzX3BhcmVudC0+ ZF9zdWJkaXJzKQogCQkJCWdvdG8gYXNjZW5kOwogCQkJY2hpbGQgPSBsaXN0X2VudHJ5KG5leHQs IHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOwotCQkJbmV4dCA9IG5leHQtPm5leHQ7Ci0JCX0KKwkJ fSB3aGlsZSAodW5saWtlbHkoY2hpbGQtPmRfZmxhZ3MgJiBEQ0FDSEVfREVOVFJZX0tJTExFRCkp OwogCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJZ290byByZXN1bWU7CiAJfQpAQCAtMjkzOCwxMyAr MjkzOCwxMyBAQCBhc2NlbmQ6CiAJCS8qIG1pZ2h0IGdvIGJhY2sgdXAgdGhlIHdyb25nIHBhcmVu dCBpZiB3ZSBoYXZlIGhhZCBhIHJlbmFtZSAqLwogCQlpZiAoIWxvY2tlZCAmJiByZWFkX3NlcXJl dHJ5KCZyZW5hbWVfbG9jaywgc2VxKSkKIAkJCWdvdG8gcmVuYW1lX3JldHJ5OwotCQluZXh0ID0g Y2hpbGQtPmRfY2hpbGQubmV4dDsKLQkJd2hpbGUgKHVubGlrZWx5KGNoaWxkLT5kX2ZsYWdzICYg RENBQ0hFX0RFTlRSWV9LSUxMRUQpKSB7CisJCS8qIGdvIGludG8gdGhlIGZpcnN0IHNpYmxpbmcg c3RpbGwgYWxpdmUgKi8KKwkJZG8geworCQkJbmV4dCA9IGNoaWxkLT5kX2NoaWxkLm5leHQ7CiAJ CQlpZiAobmV4dCA9PSAmdGhpc19wYXJlbnQtPmRfc3ViZGlycykKIAkJCQlnb3RvIGFzY2VuZDsK IAkJCWNoaWxkID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsKLQkJ CW5leHQgPSBuZXh0LT5uZXh0OwotCQl9CisJCX0gd2hpbGUgKHVubGlrZWx5KGNoaWxkLT5kX2Zs YWdzICYgRENBQ0hFX0RFTlRSWV9LSUxMRUQpKTsKIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCWdv dG8gcmVzdW1lOwogCX0KZGlmZiAtLWdpdCBhL2ZzL2RlYnVnZnMvaW5vZGUuYyBiL2ZzL2RlYnVn ZnMvaW5vZGUuYwppbmRleCBhMTVmMWUyLi43NGYwM2I1IDEwMDY0NAotLS0gYS9mcy9kZWJ1Z2Zz L2lub2RlLmMKKysrIGIvZnMvZGVidWdmcy9pbm9kZS5jCkBAIC0xMzUsNiArMTM1LDcgQEAgc3Rh dGljIHZvaWQgZGVidWdmc19ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCiBzdGF0 aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgZGVidWdmc19zdXBlcl9vcGVyYXRpb25z ID0gewogCS5ldmljdF9pbm9kZQk9IGRlYnVnZnNfZXZpY3RfaW5vZGUsCisJLnN0YXRmcwkJPSBz aW1wbGVfc3RhdGZzLAogfTsKIAogc3RhdGljIGludCBkZWJ1Z19maWxsX3N1cGVyKHN0cnVjdCBz dXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCmRpZmYgLS1naXQgYS9mcy9l eHQ0L2V4dGVudHMuYyBiL2ZzL2V4dDQvZXh0ZW50cy5jCmluZGV4IDgzNGQ5YTEuLjJkYTYzYWIg MTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0ZW50cy5jCisrKyBiL2ZzL2V4dDQvZXh0ZW50cy5jCkBA IC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIGludCBleHQ0X3ZhbGlkX2V4dGVudChzdHJ1Y3QgaW5v ZGUgKmlub2RlLCBzdHJ1Y3QgZXh0NF9leHRlbnQgKmV4dCkKIAlleHQ0X2xibGtfdCBsYmxvY2sg PSBsZTMyX3RvX2NwdShleHQtPmVlX2Jsb2NrKTsKIAlleHQ0X2xibGtfdCBsYXN0ID0gbGJsb2Nr ICsgbGVuIC0gMTsKIAotCWlmIChsYmxvY2sgPiBsYXN0KQorCWlmIChsZW4gPT0gMCB8fCBsYmxv Y2sgPiBsYXN0KQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gZXh0NF9kYXRhX2Jsb2NrX3ZhbGlkKEVY VDRfU0IoaW5vZGUtPmlfc2IpLCBibG9jaywgbGVuKTsKIH0KQEAgLTQ0NzAsMTMgKzQ0NzAsNiBA QCBsb25nIGV4dDRfZmFsbG9jYXRlKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwgbG9mZl90 IG9mZnNldCwgbG9mZl90IGxlbikKIAlzdHJ1Y3QgZXh0NF9tYXBfYmxvY2tzIG1hcDsKIAl1bnNp Z25lZCBpbnQgY3JlZGl0cywgYmxrYml0cyA9IGlub2RlLT5pX2Jsa2JpdHM7CiAKLQkvKgotCSAq IGN1cnJlbnRseSBzdXBwb3J0aW5nIChwcmUpYWxsb2NhdGUgbW9kZSBmb3IgZXh0ZW50LWJhc2Vk Ci0JICogZmlsZXMgX29ubHlfCi0JICovCi0JaWYgKCEoZXh0NF90ZXN0X2lub2RlX2ZsYWcoaW5v ZGUsIEVYVDRfSU5PREVfRVhURU5UUykpKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0KIAkvKiBS ZXR1cm4gZXJyb3IgaWYgbW9kZSBpcyBub3Qgc3VwcG9ydGVkICovCiAJaWYgKG1vZGUgJiB+KEZB TExPQ19GTF9LRUVQX1NJWkUgfCBGQUxMT0NfRkxfUFVOQ0hfSE9MRSkpCiAJCXJldHVybiAtRU9Q Tk9UU1VQUDsKQEAgLTQ0OTcsNiArNDQ5MCwxNSBAQCBsb25nIGV4dDRfZmFsbG9jYXRlKHN0cnVj dCBmaWxlICpmaWxlLCBpbnQgbW9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbikKIAkgKi8K IAljcmVkaXRzID0gZXh0NF9jaHVua190cmFuc19ibG9ja3MoaW5vZGUsIG1heF9ibG9ja3MpOwog CW11dGV4X2xvY2soJmlub2RlLT5pX211dGV4KTsKKworCS8qCisJICogV2Ugb25seSBzdXBwb3J0 IHByZWFsbG9jYXRpb24gZm9yIGV4dGVudC1iYXNlZCBmaWxlcyBvbmx5CisJICovCisJaWYgKCEo ZXh0NF90ZXN0X2lub2RlX2ZsYWcoaW5vZGUsIEVYVDRfSU5PREVfRVhURU5UUykpKSB7CisJCXJl dCA9IC1FT1BOT1RTVVBQOworCQlnb3RvIG91dDsKKwl9CisKIAlyZXQgPSBpbm9kZV9uZXdzaXpl X29rKGlub2RlLCAobGVuICsgb2Zmc2V0KSk7CiAJaWYgKHJldCkgewogCQltdXRleF91bmxvY2so Jmlub2RlLT5pX211dGV4KTsKQEAgLTQ1NTMsNiArNDU1NSw3IEBAIHJldHJ5OgogCQlyZXQgPSAw OwogCQlnb3RvIHJldHJ5OwogCX0KK291dDoKIAltdXRleF91bmxvY2soJmlub2RlLT5pX211dGV4 KTsKIAl0cmFjZV9leHQ0X2ZhbGxvY2F0ZV9leGl0KGlub2RlLCBvZmZzZXQsIG1heF9ibG9ja3Ms CiAJCQkJcmV0ID4gMCA/IHJldDIgOiByZXQpOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9uYW1laS5j IGIvZnMvZXh0NC9uYW1laS5jCmluZGV4IGM5ZjJlM2QuLmNkMWRkNDkgMTAwNjQ0Ci0tLSBhL2Zz L2V4dDQvbmFtZWkuYworKysgYi9mcy9leHQ0L25hbWVpLmMKQEAgLTE0NTYsNyArMTQ1Niw3IEBA IHN0YXRpYyBpbnQgZXh0NF9hZGRfZW50cnkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGRlbnRy eSAqZGVudHJ5LAogCQkJICBzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewogCXN0cnVjdCBpbm9kZSAq ZGlyID0gZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZTsKLQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJo OworCXN0cnVjdCBidWZmZXJfaGVhZCAqYmggPSBOVUxMOwogCXN0cnVjdCBleHQ0X2Rpcl9lbnRy eV8yICpkZTsKIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiOwogCWludAlyZXR2YWw7CkBAIC0xNDcx LDcgKzE0NzEsNyBAQCBzdGF0aWMgaW50IGV4dDRfYWRkX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUs IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKIAlpZiAoaXNfZHgoZGlyKSkgewogCQlyZXR2YWwgPSBl eHQ0X2R4X2FkZF9lbnRyeShoYW5kbGUsIGRlbnRyeSwgaW5vZGUpOwogCQlpZiAoIXJldHZhbCB8 fCAocmV0dmFsICE9IEVSUl9CQURfRFhfRElSKSkKLQkJCXJldHVybiByZXR2YWw7CisJCQlnb3Rv IG91dDsKIAkJZXh0NF9jbGVhcl9pbm9kZV9mbGFnKGRpciwgRVhUNF9JTk9ERV9JTkRFWCk7CiAJ CWR4X2ZhbGxiYWNrKys7CiAJCWV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGRpcik7CkBA IC0xNDgyLDE0ICsxNDgyLDE1IEBAIHN0YXRpYyBpbnQgZXh0NF9hZGRfZW50cnkoaGFuZGxlX3Qg KmhhbmRsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAogCQlpZighYmgpCiAJCQlyZXR1cm4gcmV0 dmFsOwogCQlyZXR2YWwgPSBhZGRfZGlyZW50X3RvX2J1ZihoYW5kbGUsIGRlbnRyeSwgaW5vZGUs IE5VTEwsIGJoKTsKLQkJaWYgKHJldHZhbCAhPSAtRU5PU1BDKSB7Ci0JCQlicmVsc2UoYmgpOwot CQkJcmV0dXJuIHJldHZhbDsKLQkJfQorCQlpZiAocmV0dmFsICE9IC1FTk9TUEMpCisJCQlnb3Rv IG91dDsKIAogCQlpZiAoYmxvY2tzID09IDEgJiYgIWR4X2ZhbGxiYWNrICYmCi0JCSAgICBFWFQ0 X0hBU19DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX0NPTVBBVF9ESVJfSU5ERVgpKQot CQkJcmV0dXJuIG1ha2VfaW5kZXhlZF9kaXIoaGFuZGxlLCBkZW50cnksIGlub2RlLCBiaCk7CisJ CSAgICBFWFQ0X0hBU19DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX0NPTVBBVF9ESVJf SU5ERVgpKSB7CisJCQlyZXR2YWwgPSBtYWtlX2luZGV4ZWRfZGlyKGhhbmRsZSwgZGVudHJ5LCBp bm9kZSwgYmgpOworCQkJYmggPSBOVUxMOyAvKiBtYWtlX2luZGV4ZWRfZGlyIHJlbGVhc2VzIGJo ICovCisJCQlnb3RvIG91dDsKKwkJfQogCQlicmVsc2UoYmgpOwogCX0KIAliaCA9IGV4dDRfYXBw ZW5kKGhhbmRsZSwgZGlyLCAmYmxvY2ssICZyZXR2YWwpOwpAQCAtMTQ5OSw2ICsxNTAwLDcgQEAg c3RhdGljIGludCBleHQ0X2FkZF9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnksCiAJZGUtPmlub2RlID0gMDsKIAlkZS0+cmVjX2xlbiA9IGV4dDRfcmVjX2xlbl90 b19kaXNrKGJsb2Nrc2l6ZSwgYmxvY2tzaXplKTsKIAlyZXR2YWwgPSBhZGRfZGlyZW50X3RvX2J1 ZihoYW5kbGUsIGRlbnRyeSwgaW5vZGUsIGRlLCBiaCk7CitvdXQ6CiAJYnJlbHNlKGJoKTsKIAlp ZiAocmV0dmFsID09IDApCiAJCWV4dDRfc2V0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRF X05FV0VOVFJZKTsKZGlmZiAtLWdpdCBhL2ZzL2ZoYW5kbGUuYyBiL2ZzL2ZoYW5kbGUuYwppbmRl eCA2YjA4ODY0Li5jOWUxOGYzIDEwMDY0NAotLS0gYS9mcy9maGFuZGxlLmMKKysrIGIvZnMvZmhh bmRsZS5jCkBAIC0xOTYsOCArMTk2LDkgQEAgc3RhdGljIGludCBoYW5kbGVfdG9fcGF0aChpbnQg bW91bnRkaXJmZCwgc3RydWN0IGZpbGVfaGFuZGxlIF9fdXNlciAqdWZoLAogCQlnb3RvIG91dF9l cnI7CiAJfQogCS8qIGNvcHkgdGhlIGZ1bGwgaGFuZGxlICovCi0JaWYgKGNvcHlfZnJvbV91c2Vy KGhhbmRsZSwgdWZoLAotCQkJICAgc2l6ZW9mKHN0cnVjdCBmaWxlX2hhbmRsZSkgKworCSpoYW5k bGUgPSBmX2hhbmRsZTsKKwlpZiAoY29weV9mcm9tX3VzZXIoJmhhbmRsZS0+Zl9oYW5kbGUsCisJ CQkgICAmdWZoLT5mX2hhbmRsZSwKIAkJCSAgIGZfaGFuZGxlLmhhbmRsZV9ieXRlcykpIHsKIAkJ cmV0dmFsID0gLUVGQVVMVDsKIAkJZ290byBvdXRfaGFuZGxlOwpkaWZmIC0tZ2l0IGEvZnMvamJk Mi9yZWNvdmVyeS5jIGIvZnMvamJkMi9yZWNvdmVyeS5jCmluZGV4IGRhNmQ3YmEuLjQyMTgzNGIg MTAwNjQ0Ci0tLSBhL2ZzL2piZDIvcmVjb3ZlcnkuYworKysgYi9mcy9qYmQyL3JlY292ZXJ5LmMK QEAgLTcxMSwxMSArNzExLDE2IEBAIHN0YXRpYyBpbnQgc2Nhbl9yZXZva2VfcmVjb3Jkcyhqb3Vy bmFsX3QgKmpvdXJuYWwsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsCiB7CiAJamJkMl9qb3VybmFs X3Jldm9rZV9oZWFkZXJfdCAqaGVhZGVyOwogCWludCBvZmZzZXQsIG1heDsKKwlfX3UzMiByY291 bnQ7CiAJaW50IHJlY29yZF9sZW4gPSA0OwogCiAJaGVhZGVyID0gKGpiZDJfam91cm5hbF9yZXZv a2VfaGVhZGVyX3QgKikgYmgtPmJfZGF0YTsKIAlvZmZzZXQgPSBzaXplb2YoamJkMl9qb3VybmFs X3Jldm9rZV9oZWFkZXJfdCk7Ci0JbWF4ID0gYmUzMl90b19jcHUoaGVhZGVyLT5yX2NvdW50KTsK KwlyY291bnQgPSBiZTMyX3RvX2NwdShoZWFkZXItPnJfY291bnQpOworCisJaWYgKHJjb3VudCA+ IGpvdXJuYWwtPmpfYmxvY2tzaXplKQorCQlyZXR1cm4gLUVJTlZBTDsKKwltYXggPSByY291bnQ7 CiAKIAlpZiAoSkJEMl9IQVNfSU5DT01QQVRfRkVBVFVSRShqb3VybmFsLCBKQkQyX0ZFQVRVUkVf SU5DT01QQVRfNjRCSVQpKQogCQlyZWNvcmRfbGVuID0gODsKZGlmZiAtLWdpdCBhL2ZzL25mc2Qv bmZzNHN0YXRlLmMgYi9mcy9uZnNkL25mczRzdGF0ZS5jCmluZGV4IDZlOTFmOGIuLmQ0NTVlYTAg MTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmZzNHN0YXRlLmMKKysrIGIvZnMvbmZzZC9uZnM0c3RhdGUu YwpAQCAtMzI3MiwxMCArMzI3MiwxNyBAQCBzdGF0aWMgaW50IGNoZWNrX3N0YXRlaWRfZ2VuZXJh dGlvbihzdGF0ZWlkX3QgKmluLCBzdGF0ZWlkX3QgKnJlZiwgYm9vbCBoYXNfc2VzcwogCXJldHVy biBuZnNlcnJfb2xkX3N0YXRlaWQ7CiB9CiAKK3N0YXRpYyBfX2JlMzIgbmZzZDRfY2hlY2tfb3Bl bm93bmVyX2NvbmZpcm1lZChzdHJ1Y3QgbmZzNF9vbF9zdGF0ZWlkICpvbHMpCit7CisJaWYgKG9s cy0+c3Rfc3RhdGVvd25lci0+c29faXNfb3Blbl9vd25lciAmJgorCSAgICAhKG9wZW5vd25lcihv bHMtPnN0X3N0YXRlb3duZXIpLT5vb19mbGFncyAmIE5GUzRfT09fQ09ORklSTUVEKSkKKwkJcmV0 dXJuIG5mc2Vycl9iYWRfc3RhdGVpZDsKKwlyZXR1cm4gbmZzX29rOworfQorCiBfX2JlMzIgbmZz NF92YWxpZGF0ZV9zdGF0ZWlkKHN0cnVjdCBuZnM0X2NsaWVudCAqY2wsIHN0YXRlaWRfdCAqc3Rh dGVpZCkKIHsKIAlzdHJ1Y3QgbmZzNF9zdGlkICpzOwotCXN0cnVjdCBuZnM0X29sX3N0YXRlaWQg Km9sczsKIAlfX2JlMzIgc3RhdHVzOwogCiAJaWYgKFNUQUxFX1NUQVRFSUQoc3RhdGVpZCkpCkBA IC0zMjg5LDExICszMjk2LDcgQEAgX19iZTMyIG5mczRfdmFsaWRhdGVfc3RhdGVpZChzdHJ1Y3Qg bmZzNF9jbGllbnQgKmNsLCBzdGF0ZWlkX3QgKnN0YXRlaWQpCiAJCXJldHVybiBzdGF0dXM7CiAJ aWYgKCEocy0+c2NfdHlwZSAmIChORlM0X09QRU5fU1RJRCB8IE5GUzRfTE9DS19TVElEKSkpCiAJ CXJldHVybiBuZnNfb2s7Ci0Jb2xzID0gb3BlbmxvY2tzdGF0ZWlkKHMpOwotCWlmIChvbHMtPnN0 X3N0YXRlb3duZXItPnNvX2lzX29wZW5fb3duZXIKLQkgICAgJiYgIShvcGVub3duZXIob2xzLT5z dF9zdGF0ZW93bmVyKS0+b29fZmxhZ3MgJiBORlM0X09PX0NPTkZJUk1FRCkpCi0JCXJldHVybiBu ZnNlcnJfYmFkX3N0YXRlaWQ7Ci0JcmV0dXJuIG5mc19vazsKKwlyZXR1cm4gbmZzZDRfY2hlY2tf b3Blbm93bmVyX2NvbmZpcm1lZChvcGVubG9ja3N0YXRlaWQocykpOwogfQogCiBzdGF0aWMgX19i ZTMyIG5mc2Q0X2xvb2t1cF9zdGF0ZWlkKHN0YXRlaWRfdCAqc3RhdGVpZCwgdW5zaWduZWQgY2hh ciB0eXBlbWFzaywgc3RydWN0IG5mczRfc3RpZCAqKnMpCkBAIC0zMzYwLDggKzMzNjMsOCBAQCBu ZnM0X3ByZXByb2Nlc3Nfc3RhdGVpZF9vcChzdHJ1Y3QgbmZzZDRfY29tcG91bmRfc3RhdGUgKmNz dGF0ZSwKIAkJc3RhdHVzID0gbmZzNF9jaGVja19maChjdXJyZW50X2ZoLCBzdHApOwogCQlpZiAo c3RhdHVzKQogCQkJZ290byBvdXQ7Ci0JCWlmIChzdHAtPnN0X3N0YXRlb3duZXItPnNvX2lzX29w ZW5fb3duZXIKLQkJICAgICYmICEob3Blbm93bmVyKHN0cC0+c3Rfc3RhdGVvd25lciktPm9vX2Zs YWdzICYgTkZTNF9PT19DT05GSVJNRUQpKQorCQlzdGF0dXMgPSBuZnNkNF9jaGVja19vcGVub3du ZXJfY29uZmlybWVkKHN0cCk7CisJCWlmIChzdGF0dXMpCiAJCQlnb3RvIG91dDsKIAkJc3RhdHVz ID0gbmZzNF9jaGVja19vcGVubW9kZShzdHAsIGZsYWdzKTsKIAkJaWYgKHN0YXR1cykKZGlmZiAt LWdpdCBhL2ZzL25pbGZzMi9idHJlZS5jIGIvZnMvbmlsZnMyL2J0cmVlLmMKaW5kZXggZWNkYmFl MS4uMDkwZDhjZSAxMDA2NDQKLS0tIGEvZnMvbmlsZnMyL2J0cmVlLmMKKysrIGIvZnMvbmlsZnMy L2J0cmVlLmMKQEAgLTM4OCw3ICszODgsNyBAQCBzdGF0aWMgaW50IG5pbGZzX2J0cmVlX3Jvb3Rf YnJva2VuKGNvbnN0IHN0cnVjdCBuaWxmc19idHJlZV9ub2RlICpub2RlLAogCW5jaGlsZHJlbiA9 IG5pbGZzX2J0cmVlX25vZGVfZ2V0X25jaGlsZHJlbihub2RlKTsKIAogCWlmICh1bmxpa2VseShs ZXZlbCA8IE5JTEZTX0JUUkVFX0xFVkVMX05PREVfTUlOIHx8Ci0JCSAgICAgbGV2ZWwgPiBOSUxG U19CVFJFRV9MRVZFTF9NQVggfHwKKwkJICAgICBsZXZlbCA+PSBOSUxGU19CVFJFRV9MRVZFTF9N QVggfHwKIAkJICAgICBuY2hpbGRyZW4gPCAwIHx8CiAJCSAgICAgbmNoaWxkcmVuID4gTklMRlNf QlRSRUVfUk9PVF9OQ0hJTERSRU5fTUFYKSkgewogCQlwcl9jcml0KCJOSUxGUzogYmFkIGJ0cmVl IHJvb3QgKGlub2RlIG51bWJlcj0lbHUpOiBsZXZlbCA9ICVkLCBmbGFncyA9IDB4JXgsIG5jaGls ZHJlbiA9ICVkXG4iLApkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5jIGIvZnMv b2NmczIvZGxtL2RsbW1hc3Rlci5jCmluZGV4IGRiYzM3MmUuLjdiYTZhYzEgMTAwNjQ0Ci0tLSBh L2ZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMK QEAgLTcyOSw2ICs3MjksMTkgQEAgbG9va3VwOgogCWlmICh0bXByZXMpIHsKIAkJc3Bpbl91bmxv Y2soJmRsbS0+c3BpbmxvY2spOwogCQlzcGluX2xvY2soJnRtcHJlcy0+c3BpbmxvY2spOworCisJ CS8qCisJCSAqIFJpZ2h0IGFmdGVyIGRsbSBzcGlubG9jayB3YXMgcmVsZWFzZWQsIGRsbV90aHJl YWQgY291bGQgaGF2ZQorCQkgKiBwdXJnZWQgdGhlIGxvY2tyZXMuIENoZWNrIGlmIGxvY2tyZXMg Z290IHVuaGFzaGVkLiBJZiBzbworCQkgKiBzdGFydCBvdmVyLgorCQkgKi8KKwkJaWYgKGhsaXN0 X3VuaGFzaGVkKCZ0bXByZXMtPmhhc2hfbm9kZSkpIHsKKwkJCXNwaW5fdW5sb2NrKCZ0bXByZXMt PnNwaW5sb2NrKTsKKwkJCWRsbV9sb2NrcmVzX3B1dCh0bXByZXMpOworCQkJdG1wcmVzID0gTlVM TDsKKwkJCWdvdG8gbG9va3VwOworCQl9CisKIAkJLyogV2FpdCBvbiB0aGUgdGhyZWFkIHRoYXQg aXMgbWFzdGVyaW5nIHRoZSByZXNvdXJjZSAqLwogCQlpZiAodG1wcmVzLT5vd25lciA9PSBETE1f TE9DS19SRVNfT1dORVJfVU5LTk9XTikgewogCQkJX19kbG1fd2FpdF9vbl9sb2NrcmVzKHRtcHJl cyk7CmRpZmYgLS1naXQgYS9mcy9vbWZzL2lub2RlLmMgYi9mcy9vbWZzL2lub2RlLmMKaW5kZXgg ZTA0M2M0Yy4uZjU4ZjFjNCAxMDA2NDQKLS0tIGEvZnMvb21mcy9pbm9kZS5jCisrKyBiL2ZzL29t ZnMvaW5vZGUuYwpAQCAtMzYxLDcgKzM2MSw3IEBAIG5vbWVtOgogfQogCiBlbnVtIHsKLQlPcHRf dWlkLCBPcHRfZ2lkLCBPcHRfdW1hc2ssIE9wdF9kbWFzaywgT3B0X2ZtYXNrCisJT3B0X3VpZCwg T3B0X2dpZCwgT3B0X3VtYXNrLCBPcHRfZG1hc2ssIE9wdF9mbWFzaywgT3B0X2VycgogfTsKIAog c3RhdGljIGNvbnN0IG1hdGNoX3RhYmxlX3QgdG9rZW5zID0gewpAQCAtMzcwLDYgKzM3MCw3IEBA IHN0YXRpYyBjb25zdCBtYXRjaF90YWJsZV90IHRva2VucyA9IHsKIAl7T3B0X3VtYXNrLCAidW1h c2s9JW8ifSwKIAl7T3B0X2RtYXNrLCAiZG1hc2s9JW8ifSwKIAl7T3B0X2ZtYXNrLCAiZm1hc2s9 JW8ifSwKKwl7T3B0X2VyciwgTlVMTH0sCiB9OwogCiBzdGF0aWMgaW50IHBhcnNlX29wdGlvbnMo Y2hhciAqb3B0aW9ucywgc3RydWN0IG9tZnNfc2JfaW5mbyAqc2JpKQpkaWZmIC0tZ2l0IGEvZnMv cGlwZS5jIGIvZnMvcGlwZS5jCmluZGV4IDhjYTg4ZmMuLmQyY2JlZmYgMTAwNjQ0Ci0tLSBhL2Zz L3BpcGUuYworKysgYi9mcy9waXBlLmMKQEAgLTEwMywyNSArMTAzLDI3IEBAIHZvaWQgcGlwZV93 YWl0KHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpCiB9CiAKIHN0YXRpYyBpbnQKLXBpcGVf aW92X2NvcHlfZnJvbV91c2VyKHZvaWQgKnRvLCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQg bG9uZyBsZW4sCi0JCQlpbnQgYXRvbWljKQorcGlwZV9pb3ZfY29weV9mcm9tX3VzZXIodm9pZCAq YWRkciwgaW50ICpvZmZzZXQsIHN0cnVjdCBpb3ZlYyAqaW92LAorCQkJc2l6ZV90ICpyZW1haW5p bmcsIGludCBhdG9taWMpCiB7CiAJdW5zaWduZWQgbG9uZyBjb3B5OwogCi0Jd2hpbGUgKGxlbiA+ IDApIHsKKwl3aGlsZSAoKnJlbWFpbmluZyA+IDApIHsKIAkJd2hpbGUgKCFpb3YtPmlvdl9sZW4p CiAJCQlpb3YrKzsKLQkJY29weSA9IG1pbl90KHVuc2lnbmVkIGxvbmcsIGxlbiwgaW92LT5pb3Zf bGVuKTsKKwkJY29weSA9IG1pbl90KHVuc2lnbmVkIGxvbmcsICpyZW1haW5pbmcsIGlvdi0+aW92 X2xlbik7CiAKIAkJaWYgKGF0b21pYykgewotCQkJaWYgKF9fY29weV9mcm9tX3VzZXJfaW5hdG9t aWModG8sIGlvdi0+aW92X2Jhc2UsIGNvcHkpKQorCQkJaWYgKF9fY29weV9mcm9tX3VzZXJfaW5h dG9taWMoYWRkciArICpvZmZzZXQsCisJCQkJCQkgICAgICBpb3YtPmlvdl9iYXNlLCBjb3B5KSkK IAkJCQlyZXR1cm4gLUVGQVVMVDsKIAkJfSBlbHNlIHsKLQkJCWlmIChjb3B5X2Zyb21fdXNlcih0 bywgaW92LT5pb3ZfYmFzZSwgY29weSkpCisJCQlpZiAoY29weV9mcm9tX3VzZXIoYWRkciArICpv ZmZzZXQsCisJCQkJCSAgIGlvdi0+aW92X2Jhc2UsIGNvcHkpKQogCQkJCXJldHVybiAtRUZBVUxU OwogCQl9Ci0JCXRvICs9IGNvcHk7Ci0JCWxlbiAtPSBjb3B5OworCQkqb2Zmc2V0ICs9IGNvcHk7 CisJCSpyZW1haW5pbmcgLT0gY29weTsKIAkJaW92LT5pb3ZfYmFzZSArPSBjb3B5OwogCQlpb3Yt Pmlvdl9sZW4gLT0gY29weTsKIAl9CkBAIC0xMjksMjUgKzEzMSwyNyBAQCBwaXBlX2lvdl9jb3B5 X2Zyb21fdXNlcih2b2lkICp0bywgc3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbGVu LAogfQogCiBzdGF0aWMgaW50Ci1waXBlX2lvdl9jb3B5X3RvX3VzZXIoc3RydWN0IGlvdmVjICpp b3YsIGNvbnN0IHZvaWQgKmZyb20sIHVuc2lnbmVkIGxvbmcgbGVuLAotCQkgICAgICBpbnQgYXRv bWljKQorcGlwZV9pb3ZfY29weV90b191c2VyKHN0cnVjdCBpb3ZlYyAqaW92LCB2b2lkICphZGRy LCBpbnQgKm9mZnNldCwKKwkJICAgICAgc2l6ZV90ICpyZW1haW5pbmcsIGludCBhdG9taWMpCiB7 CiAJdW5zaWduZWQgbG9uZyBjb3B5OwogCi0Jd2hpbGUgKGxlbiA+IDApIHsKKwl3aGlsZSAoKnJl bWFpbmluZyA+IDApIHsKIAkJd2hpbGUgKCFpb3YtPmlvdl9sZW4pCiAJCQlpb3YrKzsKLQkJY29w eSA9IG1pbl90KHVuc2lnbmVkIGxvbmcsIGxlbiwgaW92LT5pb3ZfbGVuKTsKKwkJY29weSA9IG1p bl90KHVuc2lnbmVkIGxvbmcsICpyZW1haW5pbmcsIGlvdi0+aW92X2xlbik7CiAKIAkJaWYgKGF0 b21pYykgewotCQkJaWYgKF9fY29weV90b191c2VyX2luYXRvbWljKGlvdi0+aW92X2Jhc2UsIGZy b20sIGNvcHkpKQorCQkJaWYgKF9fY29weV90b191c2VyX2luYXRvbWljKGlvdi0+aW92X2Jhc2Us CisJCQkJCQkgICAgYWRkciArICpvZmZzZXQsIGNvcHkpKQogCQkJCXJldHVybiAtRUZBVUxUOwog CQl9IGVsc2UgewotCQkJaWYgKGNvcHlfdG9fdXNlcihpb3YtPmlvdl9iYXNlLCBmcm9tLCBjb3B5 KSkKKwkJCWlmIChjb3B5X3RvX3VzZXIoaW92LT5pb3ZfYmFzZSwKKwkJCQkJIGFkZHIgKyAqb2Zm c2V0LCBjb3B5KSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKIAkJfQotCQlmcm9tICs9IGNvcHk7Ci0J CWxlbiAtPSBjb3B5OworCQkqb2Zmc2V0ICs9IGNvcHk7CisJCSpyZW1haW5pbmcgLT0gY29weTsK IAkJaW92LT5pb3ZfYmFzZSArPSBjb3B5OwogCQlpb3YtPmlvdl9sZW4gLT0gY29weTsKIAl9CkBA IC0zODMsNyArMzg3LDcgQEAgcGlwZV9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgY29uc3Qgc3Ry dWN0IGlvdmVjICpfaW92LAogCQkJc3RydWN0IHBpcGVfYnVmZmVyICpidWYgPSBwaXBlLT5idWZz ICsgY3VyYnVmOwogCQkJY29uc3Qgc3RydWN0IHBpcGVfYnVmX29wZXJhdGlvbnMgKm9wcyA9IGJ1 Zi0+b3BzOwogCQkJdm9pZCAqYWRkcjsKLQkJCXNpemVfdCBjaGFycyA9IGJ1Zi0+bGVuOworCQkJ c2l6ZV90IGNoYXJzID0gYnVmLT5sZW4sIHJlbWFpbmluZzsKIAkJCWludCBlcnJvciwgYXRvbWlj OwogCiAJCQlpZiAoY2hhcnMgPiB0b3RhbF9sZW4pCkBAIC0zOTcsOSArNDAxLDExIEBAIHBpcGVf cmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqX2lvdiwKIAkJCX0K IAogCQkJYXRvbWljID0gIWlvdl9mYXVsdF9pbl9wYWdlc193cml0ZShpb3YsIGNoYXJzKTsKKwkJ CXJlbWFpbmluZyA9IGNoYXJzOwogcmVkbzoKIAkJCWFkZHIgPSBvcHMtPm1hcChwaXBlLCBidWYs IGF0b21pYyk7Ci0JCQllcnJvciA9IHBpcGVfaW92X2NvcHlfdG9fdXNlcihpb3YsIGFkZHIgKyBi dWYtPm9mZnNldCwgY2hhcnMsIGF0b21pYyk7CisJCQllcnJvciA9IHBpcGVfaW92X2NvcHlfdG9f dXNlcihpb3YsIGFkZHIsICZidWYtPm9mZnNldCwKKwkJCQkJCSAgICAgICZyZW1haW5pbmcsIGF0 b21pYyk7CiAJCQlvcHMtPnVubWFwKHBpcGUsIGJ1ZiwgYWRkcik7CiAJCQlpZiAodW5saWtlbHko ZXJyb3IpKSB7CiAJCQkJLyoKQEAgLTQxNCw3ICs0MjAsNiBAQCByZWRvOgogCQkJCWJyZWFrOwog CQkJfQogCQkJcmV0ICs9IGNoYXJzOwotCQkJYnVmLT5vZmZzZXQgKz0gY2hhcnM7CiAJCQlidWYt PmxlbiAtPSBjaGFyczsKIAogCQkJLyogV2FzIGl0IGEgcGFja2V0IGJ1ZmZlcj8gQ2xlYW4gdXAg YW5kIGV4aXQgKi8KQEAgLTUyMSw2ICs1MjYsNyBAQCBwaXBlX3dyaXRlKHN0cnVjdCBraW9jYiAq aW9jYiwgY29uc3Qgc3RydWN0IGlvdmVjICpfaW92LAogCQlpZiAob3BzLT5jYW5fbWVyZ2UgJiYg b2Zmc2V0ICsgY2hhcnMgPD0gUEFHRV9TSVpFKSB7CiAJCQlpbnQgZXJyb3IsIGF0b21pYyA9IDE7 CiAJCQl2b2lkICphZGRyOworCQkJc2l6ZV90IHJlbWFpbmluZyA9IGNoYXJzOwogCiAJCQllcnJv ciA9IG9wcy0+Y29uZmlybShwaXBlLCBidWYpOwogCQkJaWYgKGVycm9yKQpAQCAtNTI5LDggKzUz NSw4IEBAIHBpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBjb25zdCBzdHJ1Y3QgaW92ZWMg Kl9pb3YsCiAJCQlpb3ZfZmF1bHRfaW5fcGFnZXNfcmVhZChpb3YsIGNoYXJzKTsKIHJlZG8xOgog CQkJYWRkciA9IG9wcy0+bWFwKHBpcGUsIGJ1ZiwgYXRvbWljKTsKLQkJCWVycm9yID0gcGlwZV9p b3ZfY29weV9mcm9tX3VzZXIob2Zmc2V0ICsgYWRkciwgaW92LAotCQkJCQkJCWNoYXJzLCBhdG9t aWMpOworCQkJZXJyb3IgPSBwaXBlX2lvdl9jb3B5X2Zyb21fdXNlcihhZGRyLCAmb2Zmc2V0LCBp b3YsCisJCQkJCQkJJnJlbWFpbmluZywgYXRvbWljKTsKIAkJCW9wcy0+dW5tYXAocGlwZSwgYnVm LCBhZGRyKTsKIAkJCXJldCA9IGVycm9yOwogCQkJZG9fd2FrZXVwID0gMTsKQEAgLTU2NSw2ICs1 NzEsOCBAQCByZWRvMToKIAkJCXN0cnVjdCBwYWdlICpwYWdlID0gcGlwZS0+dG1wX3BhZ2U7CiAJ CQljaGFyICpzcmM7CiAJCQlpbnQgZXJyb3IsIGF0b21pYyA9IDE7CisJCQlpbnQgb2Zmc2V0ID0g MDsKKwkJCXNpemVfdCByZW1haW5pbmc7CiAKIAkJCWlmICghcGFnZSkgewogCQkJCXBhZ2UgPSBh bGxvY19wYWdlKEdGUF9ISUdIVVNFUik7CkBAIC01ODUsMTQgKzU5MywxNSBAQCByZWRvMToKIAkJ CQljaGFycyA9IHRvdGFsX2xlbjsKIAogCQkJaW92X2ZhdWx0X2luX3BhZ2VzX3JlYWQoaW92LCBj aGFycyk7CisJCQlyZW1haW5pbmcgPSBjaGFyczsKIHJlZG8yOgogCQkJaWYgKGF0b21pYykKIAkJ CQlzcmMgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7CiAJCQllbHNlCiAJCQkJc3JjID0g a21hcChwYWdlKTsKIAotCQkJZXJyb3IgPSBwaXBlX2lvdl9jb3B5X2Zyb21fdXNlcihzcmMsIGlv diwgY2hhcnMsCi0JCQkJCQkJYXRvbWljKTsKKwkJCWVycm9yID0gcGlwZV9pb3ZfY29weV9mcm9t X3VzZXIoc3JjLCAmb2Zmc2V0LCBpb3YsCisJCQkJCQkJJnJlbWFpbmluZywgYXRvbWljKTsKIAkJ CWlmIChhdG9taWMpCiAJCQkJa3VubWFwX2F0b21pYyhzcmMsIEtNX1VTRVIwKTsKIAkJCWVsc2UK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9hY3BpeGYuaCBiL2luY2x1ZGUvYWNwaS9hY3BpeGYu aAppbmRleCBmNTU0YTkzLi4yYmEyMThlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FjcGkvYWNwaXhm LmgKKysrIGIvaW5jbHVkZS9hY3BpL2FjcGl4Zi5oCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBh Y3BpX2ZyZWUodm9pZCAqYWRkcmVzcyk7CiAgKi8KIGFjcGlfc3RhdHVzIGFjcGlfcmVhbGxvY2F0 ZV9yb290X3RhYmxlKHZvaWQpOwogCi1hY3BpX3N0YXR1cyBhY3BpX2ZpbmRfcm9vdF9wb2ludGVy KGFjcGlfc2l6ZSAqcnNkcF9hZGRyZXNzKTsKK2FjcGlfc3RhdHVzIGFjcGlfZmluZF9yb290X3Bv aW50ZXIoYWNwaV9waHlzaWNhbF9hZGRyZXNzICpyc2RwX2FkZHJlc3MpOwogCiBhY3BpX3N0YXR1 cyBhY3BpX2xvYWRfdGFibGVzKHZvaWQpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FjcGkvYWN0 eXBlcy5oIGIvaW5jbHVkZS9hY3BpL2FjdHlwZXMuaAppbmRleCBlZDczZjY3Li5iMGQ3ZWY4IDEw MDY0NAotLS0gYS9pbmNsdWRlL2FjcGkvYWN0eXBlcy5oCisrKyBiL2luY2x1ZGUvYWNwaS9hY3R5 cGVzLmgKQEAgLTE5OCw5ICsxOTgsMjkgQEAgdHlwZWRlZiBpbnQgSU5UMzI7CiB0eXBlZGVmIHMz MiBhY3BpX25hdGl2ZV9pbnQ7CiAKIHR5cGVkZWYgdTMyIGFjcGlfc2l6ZTsKKworI2lmZGVmIEFD UElfMzJCSVRfUEhZU0lDQUxfQUREUkVTUworCisvKgorICogT1NQTXMgY2FuIGRlZmluZSB0aGlz IHRvIHNocmluayB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlcyBmb3IgMzItYml0CisgKiBub25l IFBBRSBlbnZpcm9ubWVudC4gQVNMIGNvbXBpbGVyIG1heSBhbHdheXMgZGVmaW5lIHRoaXMgdG8g Z2VuZXJhdGUKKyAqIDMyLWJpdCBPU1BNIGNvbXBsaWFudCB0YWJsZXMuCisgKi8KIHR5cGVkZWYg dTMyIGFjcGlfaW9fYWRkcmVzczsKIHR5cGVkZWYgdTMyIGFjcGlfcGh5c2ljYWxfYWRkcmVzczsK IAorI2Vsc2UJCQkJLyogQUNQSV8zMkJJVF9QSFlTSUNBTF9BRERSRVNTICovCisKKy8qCisgKiBJ dCBpcyByZXBvcnRlZCB0aGF0LCBhZnRlciBzb21lIGNhbGN1bGF0aW9ucywgdGhlIHBoeXNpY2Fs IGFkZHJlc3NlcyBjYW4KKyAqIHdyYXAgb3ZlciB0aGUgMzItYml0IGJvdW5kYXJ5IG9uIDMyLWJp dCBQQUUgZW52aXJvbm1lbnQuCisgKiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19i dWcuY2dpP2lkPTg3OTcxCisgKi8KK3R5cGVkZWYgdTY0IGFjcGlfaW9fYWRkcmVzczsKK3R5cGVk ZWYgdTY0IGFjcGlfcGh5c2ljYWxfYWRkcmVzczsKKworI2VuZGlmCQkJCS8qIEFDUElfMzJCSVRf UEhZU0lDQUxfQUREUkVTUyAqLworCiAjZGVmaW5lIEFDUElfTUFYX1BUUiAgICAgICAgICAgICAg ICAgICAgQUNQSV9VSU5UMzJfTUFYCiAjZGVmaW5lIEFDUElfU0laRV9NQVggICAgICAgICAgICAg ICAgICAgQUNQSV9VSU5UMzJfTUFYCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9wbGF0Zm9y bS9hY2Vudi5oIGIvaW5jbHVkZS9hY3BpL3BsYXRmb3JtL2FjZW52LmgKaW5kZXggNWFmM2VkNS4u YjlmOTIxMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hY3BpL3BsYXRmb3JtL2FjZW52LmgKKysrIGIv aW5jbHVkZS9hY3BpL3BsYXRmb3JtL2FjZW52LmgKQEAgLTc1LDYgKzc1LDcgQEAKICNkZWZpbmUg QUNQSV9DT05TVEFOVF9FVkFMX09OTFkKICNkZWZpbmUgQUNQSV9MQVJHRV9OQU1FU1BBQ0VfTk9E RQogI2RlZmluZSBBQ1BJX0RBVEFfVEFCTEVfRElTQVNTRU1CTFkKKyNkZWZpbmUgQUNQSV8zMkJJ VF9QSFlTSUNBTF9BRERSRVNTCiAjZW5kaWYKIAogI2lmZGVmIEFDUElfRVhFQ19BUFAKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvamhhc2guaCBiL2luY2x1ZGUvbGludXgvamhhc2guaAppbmRl eCA0N2NiMDllLi4zNDhjNmY0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2poYXNoLmgKKysr IGIvaW5jbHVkZS9saW51eC9qaGFzaC5oCkBAIC0xNDUsMTEgKzE0NSwxMSBAQCBzdGF0aWMgaW5s aW5lIHUzMiBqaGFzaDIoY29uc3QgdTMyICprLCB1MzIgbGVuZ3RoLCB1MzIgaW5pdHZhbCkKIH0K IAogCi0vKiBqaGFzaF8zd29yZHMgLSBoYXNoIGV4YWN0bHkgMywgMiBvciAxIHdvcmQocykgKi8K LXN0YXRpYyBpbmxpbmUgdTMyIGpoYXNoXzN3b3Jkcyh1MzIgYSwgdTMyIGIsIHUzMiBjLCB1MzIg aW5pdHZhbCkKKy8qIF9famhhc2hfbndvcmRzIC0gaGFzaCBleGFjdGx5IDMsIDIgb3IgMSB3b3Jk KHMpICovCitzdGF0aWMgaW5saW5lIHUzMiBfX2poYXNoX253b3Jkcyh1MzIgYSwgdTMyIGIsIHUz MiBjLCB1MzIgaW5pdHZhbCkKIHsKLQlhICs9IEpIQVNIX0lOSVRWQUw7Ci0JYiArPSBKSEFTSF9J TklUVkFMOworCWEgKz0gaW5pdHZhbDsKKwliICs9IGluaXR2YWw7CiAJYyArPSBpbml0dmFsOwog CiAJX19qaGFzaF9maW5hbChhLCBiLCBjKTsKQEAgLTE1NywxNCArMTU3LDE5IEBAIHN0YXRpYyBp bmxpbmUgdTMyIGpoYXNoXzN3b3Jkcyh1MzIgYSwgdTMyIGIsIHUzMiBjLCB1MzIgaW5pdHZhbCkK IAlyZXR1cm4gYzsKIH0KIAorc3RhdGljIGlubGluZSB1MzIgamhhc2hfM3dvcmRzKHUzMiBhLCB1 MzIgYiwgdTMyIGMsIHUzMiBpbml0dmFsKQoreworCXJldHVybiBfX2poYXNoX253b3JkcyhhLCBi LCBjLCBpbml0dmFsICsgSkhBU0hfSU5JVFZBTCArICgzIDw8IDIpKTsKK30KKwogc3RhdGljIGlu bGluZSB1MzIgamhhc2hfMndvcmRzKHUzMiBhLCB1MzIgYiwgdTMyIGluaXR2YWwpCiB7Ci0JcmV0 dXJuIGpoYXNoXzN3b3JkcyhhLCBiLCAwLCBpbml0dmFsKTsKKwlyZXR1cm4gX19qaGFzaF9ud29y ZHMoYSwgYiwgMCwgaW5pdHZhbCArIEpIQVNIX0lOSVRWQUwgKyAoMiA8PCAyKSk7CiB9CiAKIHN0 YXRpYyBpbmxpbmUgdTMyIGpoYXNoXzF3b3JkKHUzMiBhLCB1MzIgaW5pdHZhbCkKIHsKLQlyZXR1 cm4gamhhc2hfM3dvcmRzKGEsIDAsIDAsIGluaXR2YWwpOworCXJldHVybiBfX2poYXNoX253b3Jk cyhhLCAwLCAwLCBpbml0dmFsICsgSkhBU0hfSU5JVFZBTCArICgxIDw8IDIpKTsKIH0KIAogI2Vu ZGlmIC8qIF9MSU5VWF9KSEFTSF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xpYmF0 YS5oIGIvaW5jbHVkZS9saW51eC9saWJhdGEuaAppbmRleCA0MmFjNmFkLi4zZDRiNWI2IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oCisrKyBiL2luY2x1ZGUvbGludXgvbGliYXRh LmgKQEAgLTE4Miw2ICsxODIsNyBAQCBlbnVtIHsKIAlBVEFfTEZMQUdfRElTQUJMRUQJPSAoMSA8 PCA2KSwgLyogbGluayBpcyBkaXNhYmxlZCAqLwogCUFUQV9MRkxBR19TV19BQ1RJVklUWQk9ICgx IDw8IDcpLCAvKiBrZWVwIGFjdGl2aXR5IHN0YXRzICovCiAJQVRBX0xGTEFHX05PX0xQTQk9ICgx IDw8IDgpLCAvKiBkaXNhYmxlIExQTSBvbiB0aGlzIGxpbmsgKi8KKwlBVEFfTEZMQUdfQ0hBTkdF RAk9ICgxIDw8IDEwKSwgLyogTFBNIHN0YXRlIGNoYW5nZWQgb24gdGhpcyBsaW5rICovCiAKIAkv KiBzdHJ1Y3QgYXRhX3BvcnQgZmxhZ3MgKi8KIAlBVEFfRkxBR19TTEFWRV9QT1NTCT0gKDEgPDwg MCksIC8qIGhvc3Qgc3VwcG9ydHMgc2xhdmUgZGV2ICovCkBAIC0yODQsNiArMjg1LDEyIEBAIGVu dW0gewogCSAqLwogCUFUQV9UTU9VVF9QTVBfU1JTVF9XQUlUCT0gNTAwMCwKIAorCS8qIFdoZW4g dGhlIExQTSBwb2xpY3kgaXMgc2V0IHRvIEFUQV9MUE1fTUFYX1BPV0VSLCB0aGVyZSBtaWdodAor CSAqIGJlIGEgc3B1cmlvdXMgUEhZIGV2ZW50LCBzbyBpZ25vcmUgdGhlIGZpcnN0IFBIWSBldmVu dCB0aGF0CisJICogb2NjdXJzIHdpdGhpbiAxMHMgYWZ0ZXIgdGhlIHBvbGljeSBjaGFuZ2UuCisJ ICovCisJQVRBX1RNT1VUX1NQVVJJT1VTX1BIWQk9IDEwMDAwLAorCiAJLyogQVRBIGJ1cyBzdGF0 ZXMgKi8KIAlCVVNfVU5LTk9XTgkJPSAwLAogCUJVU19ETUEJCQk9IDEsCkBAIC03MjgsNiArNzM1 LDggQEAgc3RydWN0IGF0YV9saW5rIHsKIAlzdHJ1Y3QgYXRhX2VoX2NvbnRleHQJZWhfY29udGV4 dDsKIAogCXN0cnVjdCBhdGFfZGV2aWNlCWRldmljZVtBVEFfTUFYX0RFVklDRVNdOworCisJdW5z aWduZWQgbG9uZwkJbGFzdF9scG1fY2hhbmdlOyAvKiB3aGVuIGxhc3QgTFBNIGNoYW5nZSBoYXBw ZW5lZCAqLwogfTsKICNkZWZpbmUgQVRBX0xJTktfQ0xFQVJfQkVHSU4JCW9mZnNldG9mKHN0cnVj dCBhdGFfbGluaywgYWN0aXZlX3RhZykKICNkZWZpbmUgQVRBX0xJTktfQ0xFQVJfRU5ECQlvZmZz ZXRvZihzdHJ1Y3QgYXRhX2xpbmssIGRldmljZVswXSkKQEAgLTEwNjQsNiArMTA3Myw3IEBAIGV4 dGVybiBzdHJ1Y3QgYXRhX2RldmljZSAqYXRhX2Rldl9wYWlyKHN0cnVjdCBhdGFfZGV2aWNlICph ZGV2KTsKIGV4dGVybiBpbnQgYXRhX2RvX3NldF9tb2RlKHN0cnVjdCBhdGFfbGluayAqbGluaywg c3RydWN0IGF0YV9kZXZpY2UgKipyX2ZhaWxlZF9kZXYpOwogZXh0ZXJuIHZvaWQgYXRhX3Njc2lf cG9ydF9lcnJvcl9oYW5kbGVyKHN0cnVjdCBTY3NpX0hvc3QgKmhvc3QsIHN0cnVjdCBhdGFfcG9y dCAqYXApOwogZXh0ZXJuIHZvaWQgYXRhX3Njc2lfY21kX2Vycm9yX2hhbmRsZXIoc3RydWN0IFNj c2lfSG9zdCAqaG9zdCwgc3RydWN0IGF0YV9wb3J0ICphcCwgc3RydWN0IGxpc3RfaGVhZCAqZWhf cSk7CitleHRlcm4gYm9vbCBzYXRhX2xwbV9pZ25vcmVfcGh5X2V2ZW50cyhzdHJ1Y3QgYXRhX2xp bmsgKmxpbmspOwogCiBleHRlcm4gaW50IGF0YV9jYWJsZV80MHdpcmUoc3RydWN0IGF0YV9wb3J0 ICphcCk7CiBleHRlcm4gaW50IGF0YV9jYWJsZV84MHdpcmUoc3RydWN0IGF0YV9wb3J0ICphcCk7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25pbGZzMl9mcy5oIGIvaW5jbHVkZS9saW51eC9u aWxmczJfZnMuaAppbmRleCA3NDU0YWQ3Li5kNGQ1MTJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xp bnV4L25pbGZzMl9mcy5oCisrKyBiL2luY2x1ZGUvbGludXgvbmlsZnMyX2ZzLmgKQEAgLTQ1Nyw3 ICs0NTcsNyBAQCBzdHJ1Y3QgbmlsZnNfYnRyZWVfbm9kZSB7CiAvKiBsZXZlbCAqLwogI2RlZmlu ZSBOSUxGU19CVFJFRV9MRVZFTF9EQVRBICAgICAgICAgIDAKICNkZWZpbmUgTklMRlNfQlRSRUVf TEVWRUxfTk9ERV9NSU4gICAgICAoTklMRlNfQlRSRUVfTEVWRUxfREFUQSArIDEpCi0jZGVmaW5l IE5JTEZTX0JUUkVFX0xFVkVMX01BWCAgICAgICAgICAgMTQKKyNkZWZpbmUgTklMRlNfQlRSRUVf TEVWRUxfTUFYICAgICAgICAgICAxNAkvKiBNYXggbGV2ZWwgKGV4Y2x1c2l2ZSkgKi8KIAogLyoq CiAgKiBzdHJ1Y3QgbmlsZnNfcGFsbG9jX2dyb3VwX2Rlc2MgLSBibG9jayBncm91cCBkZXNjcmlw dG9yCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L29mLmggYi9pbmNsdWRlL2xpbnV4L29mLmgK aW5kZXggOWJmOTYxMS4uYzgxZWYzMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9vZi5oCisr KyBiL2luY2x1ZGUvbGludXgvb2YuaApAQCAtMjExLDYgKzIxMSw5IEBAIGV4dGVybiBpbnQgb2Zf cHJvcGVydHlfcmVhZF9zdHJpbmcoc3RydWN0IGRldmljZV9ub2RlICpucCwKIGV4dGVybiBpbnQg b2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfaW5kZXgoc3RydWN0IGRldmljZV9ub2RlICpucCwKIAkJ CQkJIGNvbnN0IGNoYXIgKnByb3BuYW1lLAogCQkJCQkgaW50IGluZGV4LCBjb25zdCBjaGFyICoq b3V0cHV0KTsKK2V4dGVybiBpbnQgb2ZfcHJvcGVydHlfbWF0Y2hfc3RyaW5nKHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbnAsCisJCQkJICAgIGNvbnN0IGNoYXIgKnByb3BuYW1lLAorCQkJCSAgICBjb25z dCBjaGFyICpzdHJpbmcpOwogZXh0ZXJuIGludCBvZl9wcm9wZXJ0eV9jb3VudF9zdHJpbmdzKHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCQkJICAgICBjb25zdCBjaGFyICpwcm9wbmFtZSk7CiBl eHRlcm4gaW50IG9mX2RldmljZV9pc19jb21wYXRpYmxlKGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9k ZSAqZGV2aWNlLApAQCAtMzE1LDYgKzMxOCwxMyBAQCBzdGF0aWMgaW5saW5lIGludCBvZl9wcm9w ZXJ0eV9yZWFkX3U2NChjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCXJldHVybiAtRU5P U1lTOwogfQogCitzdGF0aWMgaW5saW5lIGludCBvZl9wcm9wZXJ0eV9tYXRjaF9zdHJpbmcoc3Ry dWN0IGRldmljZV9ub2RlICpucCwKKwkJCQkJICAgY29uc3QgY2hhciAqcHJvcG5hbWUsCisJCQkJ CSAgIGNvbnN0IGNoYXIgKnN0cmluZykKK3sKKwlyZXR1cm4gLUVOT1NZUzsKK30KKwogc3RhdGlj IGlubGluZSBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX3BhcnNlX3BoYW5kbGUoc3RydWN0IGRldmlj ZV9ub2RlICpucCwKIAkJCQkJCSAgIGNvbnN0IGNoYXIgKnBoYW5kbGVfbmFtZSwKIAkJCQkJCSAg IGludCBpbmRleCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2NoZWQuaCBiL2luY2x1ZGUv bGludXgvc2NoZWQuaAppbmRleCBjYjM0ZmY0Li40NGU1ZjQ3IDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L3NjaGVkLmgKKysrIGIvaW5jbHVkZS9saW51eC9zY2hlZC5oCkBAIC0yMzQ3LDE1ICsy MzQ3LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0aHJlYWRfZ3JvdXBfbGVhZGVyKHN0cnVjdCB0 YXNrX3N0cnVjdCAqcCkKICAqIGFsbCB3ZSBjYXJlIGFib3V0IGlzIHRoYXQgd2UgaGF2ZSBhIHRh c2sgd2l0aCB0aGUgYXBwcm9wcmlhdGUKICAqIHBpZCwgd2UgZG9uJ3QgYWN0dWFsbHkgY2FyZSBp ZiB3ZSBoYXZlIHRoZSByaWdodCB0YXNrLgogICovCi1zdGF0aWMgaW5saW5lIGludCBoYXNfZ3Jv dXBfbGVhZGVyX3BpZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCitzdGF0aWMgaW5saW5lIGJvb2wg aGFzX2dyb3VwX2xlYWRlcl9waWQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQogewotCXJldHVybiBw LT5waWQgPT0gcC0+dGdpZDsKKwlyZXR1cm4gdGFza19waWQocCkgPT0gcC0+c2lnbmFsLT5sZWFk ZXJfcGlkOwogfQogCiBzdGF0aWMgaW5saW5lCi1pbnQgc2FtZV90aHJlYWRfZ3JvdXAoc3RydWN0 IHRhc2tfc3RydWN0ICpwMSwgc3RydWN0IHRhc2tfc3RydWN0ICpwMikKK2Jvb2wgc2FtZV90aHJl YWRfZ3JvdXAoc3RydWN0IHRhc2tfc3RydWN0ICpwMSwgc3RydWN0IHRhc2tfc3RydWN0ICpwMikK IHsKLQlyZXR1cm4gcDEtPnRnaWQgPT0gcDItPnRnaWQ7CisJcmV0dXJuIHAxLT5zaWduYWwgPT0g cDItPnNpZ25hbDsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHRf dGhyZWFkKGNvbnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bmV0L2lwX3ZzLmggYi9pbmNsdWRlL25ldC9pcF92cy5oCmluZGV4IDQxNmRjYjAuLmI4YjJlNTAg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwX3ZzLmgKKysrIGIvaW5jbHVkZS9uZXQvaXBfdnMu aApAQCAtMTIwMiw2ICsxMjAyLDggQEAgaXBfdnNfbG9va3VwX3JlYWxfc2VydmljZShzdHJ1Y3Qg bmV0ICpuZXQsIGludCBhZiwgX191MTYgcHJvdG9jb2wsCiAKIGV4dGVybiBpbnQgaXBfdnNfdXNl X2NvdW50X2luYyh2b2lkKTsKIGV4dGVybiB2b2lkIGlwX3ZzX3VzZV9jb3VudF9kZWModm9pZCk7 CitleHRlcm4gaW50IGlwX3ZzX3JlZ2lzdGVyX25sX2lvY3RsKHZvaWQpOworZXh0ZXJuIHZvaWQg aXBfdnNfdW5yZWdpc3Rlcl9ubF9pb2N0bCh2b2lkKTsKIGV4dGVybiBpbnQgaXBfdnNfY29udHJv bF9pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgaXBfdnNfY29udHJvbF9jbGVhbnVwKHZvaWQpOwog ZXh0ZXJuIHN0cnVjdCBpcF92c19kZXN0ICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjdHAv c3RydWN0cy5oIGIvaW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmgKaW5kZXggYTE1NDMyZGEuLjJj Y2NkODIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oCisrKyBiL2luY2x1 ZGUvbmV0L3NjdHAvc3RydWN0cy5oCkBAIC0yMDksNiArMjA5LDcgQEAgZXh0ZXJuIHN0cnVjdCBz Y3RwX2dsb2JhbHMgewogCXN0cnVjdCBsaXN0X2hlYWQgYWRkcl93YWl0cTsKIAlzdHJ1Y3QgdGlt ZXJfbGlzdCBhZGRyX3dxX3RpbWVyOwogCXN0cnVjdCBsaXN0X2hlYWQgYXV0b19hc2NvbmZfc3Bs aXN0OworCS8qIExvY2sgdGhhdCBwcm90ZWN0cyBib3RoIGFkZHJfd2FpdHEgYW5kIGF1dG9fYXNj b25mX3NwbGlzdCAqLwogCXNwaW5sb2NrX3QgYWRkcl93cV9sb2NrOwogCiAJLyogTG9jayB0aGF0 IHByb3RlY3RzIHRoZSBsb2NhbF9hZGRyX2xpc3Qgd3JpdGVycyAqLwpAQCAtMzU1LDYgKzM1Niwx MCBAQCBzdHJ1Y3Qgc2N0cF9zb2NrIHsKIAlhdG9taWNfdCBwZF9tb2RlOwogCS8qIFJlY2VpdmUg dG8gaGVyZSB3aGlsZSBwYXJ0aWFsIGRlbGl2ZXJ5IGlzIGluIGVmZmVjdC4gKi8KIAlzdHJ1Y3Qg c2tfYnVmZl9oZWFkIHBkX2xvYmJ5OworCisJLyogVGhlc2UgbXVzdCBiZSB0aGUgbGFzdCBmaWVs ZHMsIGFzIHRoZXkgd2lsbCBza2lwcGVkIG9uIGNvcGllcywKKwkgKiBsaWtlIG9uIGFjY2VwdCBh bmQgcGVlbG9mZiBvcGVyYXRpb25zCisJICovCiAJc3RydWN0IGxpc3RfaGVhZCBhdXRvX2FzY29u Zl9saXN0OwogCWludCBkb19hdXRvX2FzY29uZjsKIH07CmRpZmYgLS1naXQgYS9pbmNsdWRlL3Nv dW5kL2VtdTEwazEuaCBiL2luY2x1ZGUvc291bmQvZW11MTBrMS5oCmluZGV4IDRmODY1ZGYuLjdl ZTU1ZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvZW11MTBrMS5oCisrKyBiL2luY2x1ZGUv c291bmQvZW11MTBrMS5oCkBAIC00Myw3ICs0Myw4IEBACiAKICNkZWZpbmUgRU1VUEFHRVNJWkUg ICAgIDQwOTYKICNkZWZpbmUgTUFYUkVRVk9JQ0VTICAgIDgKLSNkZWZpbmUgTUFYUEFHRVMgICAg ICAgIDgxOTIKKyNkZWZpbmUgTUFYUEFHRVMwICAgICAgIDQwOTYJLyogMzIgYml0IG1vZGUgKi8K KyNkZWZpbmUgTUFYUEFHRVMxICAgICAgIDgxOTIJLyogMzEgYml0IG1vZGUgKi8KICNkZWZpbmUg UkVTRVJWRUQgICAgICAgIDAKICNkZWZpbmUgTlVNX01JREkgICAgICAgIDE2CiAjZGVmaW5lIE5V TV9HICAgICAgICAgICA2NCAgICAgICAgICAgICAgLyogdXNlIGFsbCBjaGFubmVscyAqLwpAQCAt NTIsOCArNTMsNyBAQAogCiAvKiBGSVhNRT8gLSBhY2NvcmRpbmcgdG8gdGhlIE9TUyBkcml2ZXIg dGhlIEVNVTEwSzEgbmVlZHMgYSAyOSBiaXQgRE1BIG1hc2sgKi8KICNkZWZpbmUgRU1VMTBLMV9E TUFfTUFTSwkweDdmZmZmZmZmVUwJLyogMzFiaXQgKi8KLSNkZWZpbmUgQVVESUdZX0RNQV9NQVNL CQkweDdmZmZmZmZmVUwJLyogMzFiaXQgRklYTUUgLSAzMiBzaG91bGQgd29yaz8gKi8KLQkJCQkJ CS8qIFNlZSBBTFNBIGJ1ZyAjMTI3NiAtIHJscmV2ZWxsICovCisjZGVmaW5lIEFVRElHWV9ETUFf TUFTSwkJMHhmZmZmZmZmZlVMCS8qIDMyYml0IG1vZGUgKi8KIAogI2RlZmluZSBUTUVNU0laRSAg ICAgICAgMjU2KjEwMjQKICNkZWZpbmUgVE1FTVNJWkVSRUcgICAgIDQKQEAgLTQ3MCw4ICs0NzAs MTEgQEAKIAogI2RlZmluZSBNQVBCCQkJMHgwZAkJLyogQ2FjaGUgbWFwIEIJCQkJCQkqLwogCi0j ZGVmaW5lIE1BUF9QVEVfTUFTSwkJMHhmZmZmZTAwMAkvKiBUaGUgMTkgTVNCcyBvZiB0aGUgUFRF IGluZGV4ZWQgYnkgdGhlIFBUSQkJKi8KLSNkZWZpbmUgTUFQX1BUSV9NQVNLCQkweDAwMDAxZmZm CS8qIFRoZSAxMyBiaXQgaW5kZXggdG8gb25lIG9mIHRoZSA4MTkyIFBURSBkd29yZHMgICAgICAJ Ki8KKyNkZWZpbmUgTUFQX1BURV9NQVNLMAkJMHhmZmZmZjAwMAkvKiBUaGUgMjAgTVNCcyBvZiB0 aGUgUFRFIGluZGV4ZWQgYnkgdGhlIFBUSQkJKi8KKyNkZWZpbmUgTUFQX1BUSV9NQVNLMAkJMHgw MDAwMGZmZgkvKiBUaGUgMTIgYml0IGluZGV4IHRvIG9uZSBvZiB0aGUgNDA5NiBQVEUgZHdvcmRz ICAgICAgCSovCisKKyNkZWZpbmUgTUFQX1BURV9NQVNLMQkJMHhmZmZmZTAwMAkvKiBUaGUgMTkg TVNCcyBvZiB0aGUgUFRFIGluZGV4ZWQgYnkgdGhlIFBUSQkJKi8KKyNkZWZpbmUgTUFQX1BUSV9N QVNLMQkJMHgwMDAwMWZmZgkvKiBUaGUgMTMgYml0IGluZGV4IHRvIG9uZSBvZiB0aGUgODE5MiBQ VEUgZHdvcmRzICAgICAgCSovCiAKIC8qIDB4MGUsIDB4MGY6IE5vdCB1c2VkICovCiAKQEAgLTE3 MDgsNiArMTcxMSw3IEBAIHN0cnVjdCBzbmRfZW11MTBrMSB7CiAJdW5zaWduZWQgc2hvcnQgbW9k ZWw7CQkJLyogc3Vic3lzdGVtIGlkICovCiAJdW5zaWduZWQgaW50IGNhcmRfdHlwZTsJCQkvKiBF TVUxMEsxX0NBUkRfKiAqLwogCXVuc2lnbmVkIGludCBlY2FyZF9jdHJsOwkJLyogZWNhcmQgY29u dHJvbCBiaXRzICovCisJdW5zaWduZWQgaW50IGFkZHJlc3NfbW9kZTsJCS8qIGFkZHJlc3MgbW9k ZSAqLwogCXVuc2lnbmVkIGxvbmcgZG1hX21hc2s7CQkJLyogUENJIERNQSBtYXNrICovCiAJdW5z aWduZWQgaW50IGRlbGF5X3BjbV9pcnE7CQkvKiBpbiBzYW1wbGVzICovCiAJaW50IG1heF9jYWNo ZV9wYWdlczsJCQkvKiBtYXggbWVtb3J5IHNpemUgLyBQQUdFX1NJWkUgKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUveGVuL2V2ZW50cy5oIGIvaW5jbHVkZS94ZW4vZXZlbnRzLmgKaW5kZXggOGYzZDYy Mi4uODliNjcyZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vZXZlbnRzLmgKKysrIGIvaW5jbHVk ZS94ZW4vZXZlbnRzLmgKQEAgLTEyLDcgKzEyLDcgQEAgaW50IGJpbmRfZXZ0Y2huX3RvX2lycWhh bmRsZXIodW5zaWduZWQgaW50IGV2dGNobiwKIAkJCSAgICAgIGlycV9oYW5kbGVyX3QgaGFuZGxl ciwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgaXJxZmxhZ3MsIGNvbnN0IGNoYXIgKmRldm5hbWUs CiAJCQkgICAgICB2b2lkICpkZXZfaWQpOwotaW50IGJpbmRfdmlycV90b19pcnEodW5zaWduZWQg aW50IHZpcnEsIHVuc2lnbmVkIGludCBjcHUpOworaW50IGJpbmRfdmlycV90b19pcnEodW5zaWdu ZWQgaW50IHZpcnEsIHVuc2lnbmVkIGludCBjcHUsIGJvb2wgcGVyY3B1KTsKIGludCBiaW5kX3Zp cnFfdG9faXJxaGFuZGxlcih1bnNpZ25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IGNwdSwKIAkJ CSAgICBpcnFfaGFuZGxlcl90IGhhbmRsZXIsCiAJCQkgICAgdW5zaWduZWQgbG9uZyBpcnFmbGFn cywgY29uc3QgY2hhciAqZGV2bmFtZSwKZGlmZiAtLWdpdCBhL2tlcm5lbC9wdHJhY2UuYyBiL2tl cm5lbC9wdHJhY2UuYwppbmRleCBmNzk4MDNhLi5mMDdjMTQ0IDEwMDY0NAotLS0gYS9rZXJuZWwv cHRyYWNlLmMKKysrIGIva2VybmVsL3B0cmFjZS5jCkBAIC0yMjUsNyArMjI1LDcgQEAgaW50IF9f cHRyYWNlX21heV9hY2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCB1bnNpZ25lZCBpbnQg bW9kZSkKIAkgKi8KIAlpbnQgZHVtcGFibGUgPSAwOwogCS8qIERvbid0IGxldCBzZWN1cml0eSBt b2R1bGVzIGRlbnkgaW50cm9zcGVjdGlvbiAqLwotCWlmICh0YXNrID09IGN1cnJlbnQpCisJaWYg KHNhbWVfdGhyZWFkX2dyb3VwKHRhc2ssIGN1cnJlbnQpKQogCQlyZXR1cm4gMDsKIAlyY3VfcmVh ZF9sb2NrKCk7CiAJdGNyZWQgPSBfX3Rhc2tfY3JlZCh0YXNrKTsKQEAgLTY0MCw2ICs2NDAsOCBA QCBzdGF0aWMgaW50IHB0cmFjZV9zZXRzaWdpbmZvKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQs IGNvbnN0IHNpZ2luZm9fdCAqaW5mbykKIHN0YXRpYyBpbnQgcHRyYWNlX3Jlc3VtZShzdHJ1Y3Qg dGFza19zdHJ1Y3QgKmNoaWxkLCBsb25nIHJlcXVlc3QsCiAJCQkgdW5zaWduZWQgbG9uZyBkYXRh KQogeworCWJvb2wgbmVlZF9zaWdsb2NrOworCiAJaWYgKCF2YWxpZF9zaWduYWwoZGF0YSkpCiAJ CXJldHVybiAtRUlPOwogCkBAIC02NjcsOCArNjY5LDI2IEBAIHN0YXRpYyBpbnQgcHRyYWNlX3Jl c3VtZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBsb25nIHJlcXVlc3QsCiAJCXVzZXJfZGlz YWJsZV9zaW5nbGVfc3RlcChjaGlsZCk7CiAJfQogCisJLyoKKwkgKiBDaGFuZ2UgLT5leGl0X2Nv ZGUgYW5kIC0+c3RhdGUgdW5kZXIgc2lnbG9jayB0byBhdm9pZCB0aGUgcmFjZQorCSAqIHdpdGgg d2FpdF90YXNrX3N0b3BwZWQoKSBpbiBiZXR3ZWVuOyBhIG5vbi16ZXJvIC0+ZXhpdF9jb2RlIHdp bGwKKwkgKiB3cm9uZ2x5IGxvb2sgbGlrZSBhbm90aGVyIHJlcG9ydCBmcm9tIHRyYWNlZS4KKwkg KgorCSAqIE5vdGUgdGhhdCB3ZSBuZWVkIHNpZ2xvY2sgZXZlbiBpZiAtPmV4aXRfY29kZSA9PSBk YXRhIGFuZC9vciB0aGlzCisJICogc3RhdHVzIHdhcyBub3QgcmVwb3J0ZWQgeWV0LCB0aGUgbmV3 IHN0YXR1cyBtdXN0IG5vdCBiZSBjbGVhcmVkIGJ5CisJICogd2FpdF90YXNrX3N0b3BwZWQoKSBh ZnRlciByZXN1bWUuCisJICoKKwkgKiBJZiBkYXRhID09IDAgd2UgZG8gbm90IGNhcmUgaWYgd2Fp dF90YXNrX3N0b3BwZWQoKSByZXBvcnRzIHRoZSBvbGQKKwkgKiBzdGF0dXMgYW5kIGNsZWFycyB0 aGUgY29kZSB0b287IHRoaXMgY2FuJ3QgcmFjZSB3aXRoIHRoZSB0cmFjZWUsIGl0CisJICogdGFr ZXMgc2lnbG9jayBhZnRlciByZXN1bWUuCisJICovCisJbmVlZF9zaWdsb2NrID0gZGF0YSAmJiAh dGhyZWFkX2dyb3VwX2VtcHR5KGN1cnJlbnQpOworCWlmIChuZWVkX3NpZ2xvY2spCisJCXNwaW5f bG9ja19pcnEoJmNoaWxkLT5zaWdoYW5kLT5zaWdsb2NrKTsKIAljaGlsZC0+ZXhpdF9jb2RlID0g ZGF0YTsKIAl3YWtlX3VwX3N0YXRlKGNoaWxkLCBfX1RBU0tfVFJBQ0VEKTsKKwlpZiAobmVlZF9z aWdsb2NrKQorCQlzcGluX3VubG9ja19pcnEoJmNoaWxkLT5zaWdoYW5kLT5zaWdsb2NrKTsKIAog CXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEva2VybmVsL3NvZnRpcnEuYyBiL2tlcm5lbC9zb2Z0 aXJxLmMKaW5kZXggMmM3MWQ5MS4uNDRiYzEwMyAxMDA2NDQKLS0tIGEva2VybmVsL3NvZnRpcnEu YworKysgYi9rZXJuZWwvc29mdGlycS5jCkBAIC0xOTQsMjIgKzE5NCwyOCBAQCB2b2lkIGxvY2Fs X2JoX2VuYWJsZV9pcCh1bnNpZ25lZCBsb25nIGlwKQogRVhQT1JUX1NZTUJPTChsb2NhbF9iaF9l bmFibGVfaXApOwogCiAvKgotICogV2UgcmVzdGFydCBzb2Z0aXJxIHByb2Nlc3NpbmcgTUFYX1NP RlRJUlFfUkVTVEFSVCB0aW1lcywKLSAqIGFuZCB3ZSBmYWxsIGJhY2sgdG8gc29mdGlycWQgYWZ0 ZXIgdGhhdC4KKyAqIFdlIHJlc3RhcnQgc29mdGlycSBwcm9jZXNzaW5nIGZvciBhdCBtb3N0IE1B WF9TT0ZUSVJRX1JFU1RBUlQgdGltZXMsCisgKiBidXQgYnJlYWsgdGhlIGxvb3AgaWYgbmVlZF9y ZXNjaGVkKCkgaXMgc2V0IG9yIGFmdGVyIDIgbXMuCisgKiBUaGUgTUFYX1NPRlRJUlFfVElNRSBw cm92aWRlcyBhIG5pY2UgdXBwZXIgYm91bmQgaW4gbW9zdCBjYXNlcywgYnV0IGluCisgKiBjZXJ0 YWluIGNhc2VzLCBzdWNoIGFzIHN0b3BfbWFjaGluZSgpLCBqaWZmaWVzIG1heSBjZWFzZSB0bwor ICogaW5jcmVtZW50IGFuZCBzbyB3ZSBuZWVkIHRoZSBNQVhfU09GVElSUV9SRVNUQVJUIGxpbWl0 IGFzCisgKiB3ZWxsIHRvIG1ha2Ugc3VyZSB3ZSBldmVudHVhbGx5IHJldHVybiBmcm9tIHRoaXMg bWV0aG9kLgogICoKLSAqIFRoaXMgbnVtYmVyIGhhcyBiZWVuIGVzdGFibGlzaGVkIHZpYSBleHBl cmltZW50YXRpb24uCisgKiBUaGVzZSBsaW1pdHMgaGF2ZSBiZWVuIGVzdGFibGlzaGVkIHZpYSBl eHBlcmltZW50YXRpb24uCiAgKiBUaGUgdHdvIHRoaW5ncyB0byBiYWxhbmNlIGlzIGxhdGVuY3kg YWdhaW5zdCBmYWlybmVzcyAtCiAgKiB3ZSB3YW50IHRvIGhhbmRsZSBzb2Z0aXJxcyBhcyBzb29u IGFzIHBvc3NpYmxlLCBidXQgdGhleQogICogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGxvY2sgdXAg dGhlIGJveC4KICAqLworI2RlZmluZSBNQVhfU09GVElSUV9USU1FICBtc2Vjc190b19qaWZmaWVz KDIpCiAjZGVmaW5lIE1BWF9TT0ZUSVJRX1JFU1RBUlQgMTAKIAogYXNtbGlua2FnZSB2b2lkIF9f ZG9fc29mdGlycSh2b2lkKQogewogCXN0cnVjdCBzb2Z0aXJxX2FjdGlvbiAqaDsKIAlfX3UzMiBw ZW5kaW5nOwotCWludCBtYXhfcmVzdGFydCA9IE1BWF9TT0ZUSVJRX1JFU1RBUlQ7CisJdW5zaWdu ZWQgbG9uZyBlbmQgPSBqaWZmaWVzICsgTUFYX1NPRlRJUlFfVElNRTsKIAlpbnQgY3B1OworCWlu dCBtYXhfcmVzdGFydCA9IE1BWF9TT0ZUSVJRX1JFU1RBUlQ7CiAKIAlwZW5kaW5nID0gbG9jYWxf c29mdGlycV9wZW5kaW5nKCk7CiAJYWNjb3VudF9zeXN0ZW1fdnRpbWUoY3VycmVudCk7CkBAIC0y NTUsMTEgKzI2MSwxMyBAQCByZXN0YXJ0OgogCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAKIAlwZW5k aW5nID0gbG9jYWxfc29mdGlycV9wZW5kaW5nKCk7Ci0JaWYgKHBlbmRpbmcgJiYgLS1tYXhfcmVz dGFydCkKLQkJZ290byByZXN0YXJ0OworCWlmIChwZW5kaW5nKSB7CisJCWlmICh0aW1lX2JlZm9y ZShqaWZmaWVzLCBlbmQpICYmICFuZWVkX3Jlc2NoZWQoKSAmJgorCQkgICAgLS1tYXhfcmVzdGFy dCkKKwkJCWdvdG8gcmVzdGFydDsKIAotCWlmIChwZW5kaW5nKQogCQl3YWtldXBfc29mdGlycWQo KTsKKwl9CiAKIAlsb2NrZGVwX3NvZnRpcnFfZXhpdCgpOwogCmRpZmYgLS1naXQgYS9rZXJuZWwv dHJhY2UvcmluZ19idWZmZXJfYmVuY2htYXJrLmMgYi9rZXJuZWwvdHJhY2UvcmluZ19idWZmZXJf YmVuY2htYXJrLmMKaW5kZXggYTU0NTdkNS4uNmFkMmUyZCAxMDA2NDQKLS0tIGEva2VybmVsL3Ry YWNlL3JpbmdfYnVmZmVyX2JlbmNobWFyay5jCisrKyBiL2tlcm5lbC90cmFjZS9yaW5nX2J1ZmZl cl9iZW5jaG1hcmsuYwpAQCAtNDU1LDcgKzQ1NSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHJpbmdf YnVmZmVyX2JlbmNobWFya19pbml0KHZvaWQpCiAKIAlpZiAocHJvZHVjZXJfZmlmbyA+PSAwKSB7 CiAJCXN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbSA9IHsKLQkJCS5zY2hlZF9wcmlvcml0eSA9IGNv bnN1bWVyX2ZpZm8KKwkJCS5zY2hlZF9wcmlvcml0eSA9IHByb2R1Y2VyX2ZpZm8KIAkJfTsKIAkJ c2NoZWRfc2V0c2NoZWR1bGVyKHByb2R1Y2VyLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOwogCX0gZWxz ZQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c19maWx0ZXIuYyBiL2tlcm5l bC90cmFjZS90cmFjZV9ldmVudHNfZmlsdGVyLmMKaW5kZXggYjA5OTZjMS4uNDczNDNjYyAxMDA2 NDQKLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c19maWx0ZXIuYworKysgYi9rZXJuZWwv dHJhY2UvdHJhY2VfZXZlbnRzX2ZpbHRlci5jCkBAIC0xMzQzLDE5ICsxMzQzLDI1IEBAIHN0YXRp YyBpbnQgY2hlY2tfcHJlZHMoc3RydWN0IGZpbHRlcl9wYXJzZV9zdGF0ZSAqcHMpCiB7CiAJaW50 IG5fbm9ybWFsX3ByZWRzID0gMCwgbl9sb2dpY2FsX3ByZWRzID0gMDsKIAlzdHJ1Y3QgcG9zdGZp eF9lbHQgKmVsdDsKKwlpbnQgY250ID0gMDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZWx0LCAm cHMtPnBvc3RmaXgsIGxpc3QpIHsKLQkJaWYgKGVsdC0+b3AgPT0gT1BfTk9ORSkKKwkJaWYgKGVs dC0+b3AgPT0gT1BfTk9ORSkgeworCQkJY250Kys7CiAJCQljb250aW51ZTsKKwkJfQogCiAJCWlm IChlbHQtPm9wID09IE9QX0FORCB8fCBlbHQtPm9wID09IE9QX09SKSB7CiAJCQluX2xvZ2ljYWxf cHJlZHMrKzsKKwkJCWNudC0tOwogCQkJY29udGludWU7CiAJCX0KKwkJY250LS07CiAJCW5fbm9y bWFsX3ByZWRzKys7CisJCVdBUk5fT05fT05DRShjbnQgPCAwKTsKIAl9CiAKLQlpZiAoIW5fbm9y bWFsX3ByZWRzIHx8IG5fbG9naWNhbF9wcmVkcyA+PSBuX25vcm1hbF9wcmVkcykgeworCWlmIChj bnQgIT0gMSB8fCAhbl9ub3JtYWxfcHJlZHMgfHwgbl9sb2dpY2FsX3ByZWRzID49IG5fbm9ybWFs X3ByZWRzKSB7CiAJCXBhcnNlX2Vycm9yKHBzLCBGSUxUX0VSUl9JTlZBTElEX0ZJTFRFUiwgMCk7 CiAJCXJldHVybiAtRUlOVkFMOwogCX0KZGlmZiAtLWdpdCBhL2xpYi9zdHJpbmcuYyBiL2xpYi9z dHJpbmcuYwppbmRleCA0MDEzNmY2Li5kY2JlNjk1IDEwMDY0NAotLS0gYS9saWIvc3RyaW5nLmMK KysrIGIvbGliL3N0cmluZy5jCkBAIC01OTUsNyArNTk1LDcgQEAgRVhQT1JUX1NZTUJPTChtZW1z ZXQpOwogdm9pZCBtZW16ZXJvX2V4cGxpY2l0KHZvaWQgKnMsIHNpemVfdCBjb3VudCkKIHsKIAlt ZW1zZXQocywgMCwgY291bnQpOwotCU9QVElNSVpFUl9ISURFX1ZBUihzKTsKKwliYXJyaWVyKCk7 CiB9CiBFWFBPUlRfU1lNQk9MKG1lbXplcm9fZXhwbGljaXQpOwogCmRpZmYgLS1naXQgYS9tbS9w YWdlLXdyaXRlYmFjay5jIGIvbW0vcGFnZS13cml0ZWJhY2suYwppbmRleCAxYmYxZjc0Li42MmJm YmQ5IDEwMDY0NAotLS0gYS9tbS9wYWdlLXdyaXRlYmFjay5jCisrKyBiL21tL3BhZ2Utd3JpdGVi YWNrLmMKQEAgLTU2MCw3ICs1NjAsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBiZGlfcG9zaXRp b25fcmF0aW8oc3RydWN0IGJhY2tpbmdfZGV2X2luZm8gKmJkaSwKIAkgKi8KIAlzZXRwb2ludCA9 IChmcmVlcnVuICsgbGltaXQpIC8gMjsKIAl4ID0gZGl2NjRfczY0KCgoczY0KXNldHBvaW50IC0g KHM2NClkaXJ0eSkgPDwgUkFURUxJTUlUX0NBTENfU0hJRlQsCi0JCSAgICBsaW1pdCAtIHNldHBv aW50ICsgMSk7CisJCSAgICAgIChsaW1pdCAtIHNldHBvaW50KSB8IDEpOwogCXBvc19yYXRpbyA9 IHg7CiAJcG9zX3JhdGlvID0gcG9zX3JhdGlvICogeCA+PiBSQVRFTElNSVRfQ0FMQ19TSElGVDsK IAlwb3NfcmF0aW8gPSBwb3NfcmF0aW8gKiB4ID4+IFJBVEVMSU1JVF9DQUxDX1NISUZUOwpAQCAt NjExLDcgKzYxMSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGJkaV9wb3NpdGlvbl9yYXRpbyhz dHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRpLAogCSAqIHNjYWxlIGdsb2JhbCBzZXRwb2ludCB0 byBiZGknczoKIAkgKgliZGlfc2V0cG9pbnQgPSBzZXRwb2ludCAqIGJkaV90aHJlc2ggLyB0aHJl c2gKIAkgKi8KLQl4ID0gZGl2X3U2NCgodTY0KWJkaV90aHJlc2ggPDwgMTYsIHRocmVzaCArIDEp OworCXggPSBkaXZfdTY0KCh1NjQpYmRpX3RocmVzaCA8PCAxNiwgdGhyZXNoIHwgMSk7CiAJYmRp X3NldHBvaW50ID0gc2V0cG9pbnQgKiAodTY0KXggPj4gMTY7CiAJLyoKIAkgKiBVc2Ugc3Bhbj0o OCp3cml0ZV9idykgaW4gc2luZ2xlIGJkaSBjYXNlIGFzIGluZGljYXRlZCBieQpAQCAtNjI2LDcg KzYyNiw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGJkaV9wb3NpdGlvbl9yYXRpbyhzdHJ1Y3Qg YmFja2luZ19kZXZfaW5mbyAqYmRpLAogCiAJaWYgKGJkaV9kaXJ0eSA8IHhfaW50ZXJjZXB0IC0g c3BhbiAvIDQpIHsKIAkJcG9zX3JhdGlvID0gZGl2NjRfdTY0KHBvc19yYXRpbyAqICh4X2ludGVy Y2VwdCAtIGJkaV9kaXJ0eSksCi0JCQkJICAgIHhfaW50ZXJjZXB0IC0gYmRpX3NldHBvaW50ICsg MSk7CisJCQkJICAgICAgKHhfaW50ZXJjZXB0IC0gYmRpX3NldHBvaW50KSB8IDEpOwogCX0gZWxz ZQogCQlwb3NfcmF0aW8gLz0gNDsKIApkaWZmIC0tZ2l0IGEvbW0vc2x1Yi5jIGIvbW0vc2x1Yi5j CmluZGV4IDZhNGMyZmIuLjYwYzY5Njk2IDEwMDY0NAotLS0gYS9tbS9zbHViLmMKKysrIGIvbW0v c2x1Yi5jCkBAIC0xODczLDE4ICsxODczLDI0IEBAIHJlZG86CiAvKiBVbmZyZWV6ZSBhbGwgdGhl IGNwdSBwYXJ0aWFsIHNsYWJzICovCiBzdGF0aWMgdm9pZCB1bmZyZWV6ZV9wYXJ0aWFscyhzdHJ1 Y3Qga21lbV9jYWNoZSAqcykKIHsKLQlzdHJ1Y3Qga21lbV9jYWNoZV9ub2RlICpuID0gTlVMTDsK KwlzdHJ1Y3Qga21lbV9jYWNoZV9ub2RlICpuID0gTlVMTCwgKm4yID0gTlVMTDsKIAlzdHJ1Y3Qg a21lbV9jYWNoZV9jcHUgKmMgPSB0aGlzX2NwdV9wdHIocy0+Y3B1X3NsYWIpOwogCXN0cnVjdCBw YWdlICpwYWdlLCAqZGlzY2FyZF9wYWdlID0gTlVMTDsKIAogCXdoaWxlICgocGFnZSA9IGMtPnBh cnRpYWwpKSB7Ci0JCWVudW0gc2xhYl9tb2RlcyB7IE1fUEFSVElBTCwgTV9GUkVFIH07Ci0JCWVu dW0gc2xhYl9tb2RlcyBsLCBtOwogCQlzdHJ1Y3QgcGFnZSBuZXc7CiAJCXN0cnVjdCBwYWdlIG9s ZDsKIAogCQljLT5wYXJ0aWFsID0gcGFnZS0+bmV4dDsKLQkJbCA9IE1fRlJFRTsKKworCQluMiA9 IGdldF9ub2RlKHMsIHBhZ2VfdG9fbmlkKHBhZ2UpKTsKKwkJaWYgKG4gIT0gbjIpIHsKKwkJCWlm IChuKQorCQkJCXNwaW5fdW5sb2NrKCZuLT5saXN0X2xvY2spOworCisJCQluID0gbjI7CisJCQlz cGluX2xvY2soJm4tPmxpc3RfbG9jayk7CisJCX0KIAogCQlkbyB7CiAKQEAgLTE4OTcsNDAgKzE5 MDMsMTcgQEAgc3RhdGljIHZvaWQgdW5mcmVlemVfcGFydGlhbHMoc3RydWN0IGttZW1fY2FjaGUg KnMpCiAKIAkJCW5ldy5mcm96ZW4gPSAwOwogCi0JCQlpZiAoIW5ldy5pbnVzZSAmJiAoIW4gfHwg bi0+bnJfcGFydGlhbCA+IHMtPm1pbl9wYXJ0aWFsKSkKLQkJCQltID0gTV9GUkVFOwotCQkJZWxz ZSB7Ci0JCQkJc3RydWN0IGttZW1fY2FjaGVfbm9kZSAqbjIgPSBnZXRfbm9kZShzLAotCQkJCQkJ CXBhZ2VfdG9fbmlkKHBhZ2UpKTsKLQotCQkJCW0gPSBNX1BBUlRJQUw7Ci0JCQkJaWYgKG4gIT0g bjIpIHsKLQkJCQkJaWYgKG4pCi0JCQkJCQlzcGluX3VubG9jaygmbi0+bGlzdF9sb2NrKTsKLQot CQkJCQluID0gbjI7Ci0JCQkJCXNwaW5fbG9jaygmbi0+bGlzdF9sb2NrKTsKLQkJCQl9Ci0JCQl9 Ci0KLQkJCWlmIChsICE9IG0pIHsKLQkJCQlpZiAobCA9PSBNX1BBUlRJQUwpCi0JCQkJCXJlbW92 ZV9wYXJ0aWFsKG4sIHBhZ2UpOwotCQkJCWVsc2UKLQkJCQkJYWRkX3BhcnRpYWwobiwgcGFnZSwK LQkJCQkJCURFQUNUSVZBVEVfVE9fVEFJTCk7Ci0KLQkJCQlsID0gbTsKLQkJCX0KLQogCQl9IHdo aWxlICghY21weGNoZ19kb3VibGVfc2xhYihzLCBwYWdlLAogCQkJCW9sZC5mcmVlbGlzdCwgb2xk LmNvdW50ZXJzLAogCQkJCW5ldy5mcmVlbGlzdCwgbmV3LmNvdW50ZXJzLAogCQkJCSJ1bmZyZWV6 aW5nIHNsYWIiKSk7CiAKLQkJaWYgKG0gPT0gTV9GUkVFKSB7CisJCWlmICh1bmxpa2VseSghbmV3 LmludXNlICYmIG4tPm5yX3BhcnRpYWwgPiBzLT5taW5fcGFydGlhbCkpIHsKIAkJCXBhZ2UtPm5l eHQgPSBkaXNjYXJkX3BhZ2U7CiAJCQlkaXNjYXJkX3BhZ2UgPSBwYWdlOworCQl9IGVsc2Ugewor CQkJYWRkX3BhcnRpYWwobiwgcGFnZSwgREVBQ1RJVkFURV9UT19UQUlMKTsKKwkJCXN0YXQocywg RlJFRV9BRERfUEFSVElBTCk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJf aW9jdGwuYyBiL25ldC9icmlkZ2UvYnJfaW9jdGwuYwppbmRleCA3MjIyZmUxLi5lYTBlMTVjIDEw MDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2lvY3RsLmMKKysrIGIvbmV0L2JyaWRnZS9icl9pb2N0 bC5jCkBAIC0yNDYsOSArMjQ2LDcgQEAgc3RhdGljIGludCBvbGRfZGV2X2lvY3RsKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqcnEsIGludCBjbWQpCiAJCWlmICghY2FwYWJs ZShDQVBfTkVUX0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CiAKLQkJc3Bpbl9sb2NrX2JoKCZi ci0+bG9jayk7CiAJCWJyX3N0cF9zZXRfYnJpZGdlX3ByaW9yaXR5KGJyLCBhcmdzWzFdKTsKLQkJ c3Bpbl91bmxvY2tfYmgoJmJyLT5sb2NrKTsKIAkJcmV0dXJuIDA7CiAKIAljYXNlIEJSQ1RMX1NF VF9QT1JUX1BSSU9SSVRZOgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyBi L25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggMzk4YTI5Ny4uMWJkMTk3ZiAxMDA2NDQK LS0tIGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYworKysgYi9uZXQvYnJpZGdlL2JyX211bHRp Y2FzdC5jCkBAIC05NzIsNyArOTcyLDcgQEAgc3RhdGljIGludCBicl9pcDZfbXVsdGljYXN0X21s ZDJfcmVwb3J0KHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAkJfQogCiAJCWVyciA9IGJyX2lwNl9t dWx0aWNhc3RfYWRkX2dyb3VwKGJyLCBwb3J0LCAmZ3JlYy0+Z3JlY19tY2EpOwotCQlpZiAoIWVy cikKKwkJaWYgKGVycikKIAkJCWJyZWFrOwogCX0KIApAQCAtOTkxLDYgKzk5MSw5IEBAIHN0YXRp YyB2b2lkIGJyX211bHRpY2FzdF9hZGRfcm91dGVyKHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAlz dHJ1Y3QgbmV0X2JyaWRnZV9wb3J0ICpwOwogCXN0cnVjdCBobGlzdF9ub2RlICpuLCAqc2xvdCA9 IE5VTEw7CiAKKwlpZiAoIWhsaXN0X3VuaGFzaGVkKCZwb3J0LT5ybGlzdCkpCisJCXJldHVybjsK KwogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsIG4sICZici0+cm91dGVyX2xpc3QsIHJsaXN0KSB7 CiAJCWlmICgodW5zaWduZWQgbG9uZykgcG9ydCA+PSAodW5zaWduZWQgbG9uZykgcCkKIAkJCWJy ZWFrOwpAQCAtMTAxOCwxMiArMTAyMSw4IEBAIHN0YXRpYyB2b2lkIGJyX211bHRpY2FzdF9tYXJr X3JvdXRlcihzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAJaWYgKHBvcnQtPm11bHRpY2FzdF9yb3V0 ZXIgIT0gMSkKIAkJcmV0dXJuOwogCi0JaWYgKCFobGlzdF91bmhhc2hlZCgmcG9ydC0+cmxpc3Qp KQotCQlnb3RvIHRpbWVyOwotCiAJYnJfbXVsdGljYXN0X2FkZF9yb3V0ZXIoYnIsIHBvcnQpOwog Ci10aW1lcjoKIAltb2RfdGltZXIoJnBvcnQtPm11bHRpY2FzdF9yb3V0ZXJfdGltZXIsCiAJCSAg bm93ICsgYnItPm11bHRpY2FzdF9xdWVyaWVyX2ludGVydmFsKTsKIH0KZGlmZiAtLWdpdCBhL25l dC9icmlkZ2UvYnJfc3RwX2lmLmMgYi9uZXQvYnJpZGdlL2JyX3N0cF9pZi5jCmluZGV4IDE5MzA4 ZTMuLjBmN2RjNjAgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfc3RwX2lmLmMKKysrIGIvbmV0 L2JyaWRnZS9icl9zdHBfaWYuYwpAQCAtMjM1LDEyICsyMzUsMTMgQEAgYm9vbCBicl9zdHBfcmVj YWxjdWxhdGVfYnJpZGdlX2lkKHN0cnVjdCBuZXRfYnJpZGdlICpicikKIAlyZXR1cm4gdHJ1ZTsK IH0KIAotLyogY2FsbGVkIHVuZGVyIGJyaWRnZSBsb2NrICovCisvKiBBY3F1aXJlcyBhbmQgcmVs ZWFzZXMgYnJpZGdlIGxvY2sgKi8KIHZvaWQgYnJfc3RwX3NldF9icmlkZ2VfcHJpb3JpdHkoc3Ry dWN0IG5ldF9icmlkZ2UgKmJyLCB1MTYgbmV3cHJpbykKIHsKIAlzdHJ1Y3QgbmV0X2JyaWRnZV9w b3J0ICpwOwogCWludCB3YXNyb290OwogCisJc3Bpbl9sb2NrX2JoKCZici0+bG9jayk7CiAJd2Fz cm9vdCA9IGJyX2lzX3Jvb3RfYnJpZGdlKGJyKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkocCwg JmJyLT5wb3J0X2xpc3QsIGxpc3QpIHsKQEAgLTI1OCw2ICsyNTksNyBAQCB2b2lkIGJyX3N0cF9z ZXRfYnJpZGdlX3ByaW9yaXR5KHN0cnVjdCBuZXRfYnJpZGdlICpiciwgdTE2IG5ld3ByaW8pCiAJ YnJfcG9ydF9zdGF0ZV9zZWxlY3Rpb24oYnIpOwogCWlmIChicl9pc19yb290X2JyaWRnZShicikg JiYgIXdhc3Jvb3QpCiAJCWJyX2JlY29tZV9yb290X2JyaWRnZShicik7CisJc3Bpbl91bmxvY2tf YmgoJmJyLT5sb2NrKTsKIH0KIAogLyogY2FsbGVkIHVuZGVyIGJyaWRnZSBsb2NrICovCmRpZmYg LS1naXQgYS9uZXQvY2FpZi9jYWlmX3NvY2tldC5jIGIvbmV0L2NhaWYvY2FpZl9zb2NrZXQuYwpp bmRleCA3ZWVkOWViLi43ZTRiNGI0IDEwMDY0NAotLS0gYS9uZXQvY2FpZi9jYWlmX3NvY2tldC5j CisrKyBiL25ldC9jYWlmL2NhaWZfc29ja2V0LmMKQEAgLTM2Niw2ICszNjYsMTAgQEAgc3RhdGlj IGxvbmcgY2FpZl9zdHJlYW1fZGF0YV93YWl0KHN0cnVjdCBzb2NrICpzaywgbG9uZyB0aW1lbykK IAkJcmVsZWFzZV9zb2NrKHNrKTsKIAkJdGltZW8gPSBzY2hlZHVsZV90aW1lb3V0KHRpbWVvKTsK IAkJbG9ja19zb2NrKHNrKTsKKworCQlpZiAoc29ja19mbGFnKHNrLCBTT0NLX0RFQUQpKQorCQkJ YnJlYWs7CisKIAkJY2xlYXJfYml0KFNPQ0tfQVNZTkNfV0FJVERBVEEsICZzay0+c2tfc29ja2V0 LT5mbGFncyk7CiAJfQogCkBAIC00MTAsNiArNDE0LDEwIEBAIHN0YXRpYyBpbnQgY2FpZl9zdHJl YW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCXN0 cnVjdCBza19idWZmICpza2I7CiAKIAkJbG9ja19zb2NrKHNrKTsKKwkJaWYgKHNvY2tfZmxhZyhz aywgU09DS19ERUFEKSkgeworCQkJZXJyID0gLUVDT05OUkVTRVQ7CisJCQlnb3RvIHVubG9jazsK KwkJfQogCQlza2IgPSBza2JfZGVxdWV1ZSgmc2stPnNrX3JlY2VpdmVfcXVldWUpOwogCQljYWlm X2NoZWNrX2Zsb3dfcmVsZWFzZShzayk7CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25laWdoYm91 ci5jIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKaW5kZXggMGVhM2ZkMy4uYzhjMjY0NSAxMDA2NDQK LS0tIGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMKKysrIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKQEAg LTk1NSw2ICs5NTUsOCBAQCBpbnQgX19uZWlnaF9ldmVudF9zZW5kKHN0cnVjdCBuZWlnaGJvdXIg Km5laWdoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXJjID0gMDsKIAlpZiAobmVpZ2gtPm51ZF9z dGF0ZSAmIChOVURfQ09OTkVDVEVEIHwgTlVEX0RFTEFZIHwgTlVEX1BST0JFKSkKIAkJZ290byBv dXRfdW5sb2NrX2JoOworCWlmIChuZWlnaC0+ZGVhZCkKKwkJZ290byBvdXRfZGVhZDsKIAogCWlm ICghKG5laWdoLT5udWRfc3RhdGUgJiAoTlVEX1NUQUxFIHwgTlVEX0lOQ09NUExFVEUpKSkgewog CQlpZiAobmVpZ2gtPnBhcm1zLT5tY2FzdF9wcm9iZXMgKyBuZWlnaC0+cGFybXMtPmFwcF9wcm9i ZXMpIHsKQEAgLTEwMDMsNiArMTAwNSwxMyBAQCBvdXRfdW5sb2NrX2JoOgogCQl3cml0ZV91bmxv Y2soJm5laWdoLT5sb2NrKTsKIAlsb2NhbF9iaF9lbmFibGUoKTsKIAlyZXR1cm4gcmM7CisKK291 dF9kZWFkOgorCWlmIChuZWlnaC0+bnVkX3N0YXRlICYgTlVEX1NUQUxFKQorCQlnb3RvIG91dF91 bmxvY2tfYmg7CisJd3JpdGVfdW5sb2NrX2JoKCZuZWlnaC0+bG9jayk7CisJa2ZyZWVfc2tiKHNr Yik7CisJcmV0dXJuIDE7CiB9CiBFWFBPUlRfU1lNQk9MKF9fbmVpZ2hfZXZlbnRfc2VuZCk7CiAK QEAgLTEwNjYsNiArMTA3NSw4IEBAIGludCBuZWlnaF91cGRhdGUoc3RydWN0IG5laWdoYm91ciAq bmVpZ2gsIGNvbnN0IHU4ICpsbGFkZHIsIHU4IG5ldywKIAlpZiAoIShmbGFncyAmIE5FSUdIX1VQ REFURV9GX0FETUlOKSAmJgogCSAgICAob2xkICYgKE5VRF9OT0FSUCB8IE5VRF9QRVJNQU5FTlQp KSkKIAkJZ290byBvdXQ7CisJaWYgKG5laWdoLT5kZWFkKQorCQlnb3RvIG91dDsKIAogCWlmICgh KG5ldyAmIE5VRF9WQUxJRCkpIHsKIAkJbmVpZ2hfZGVsX3RpbWVyKG5laWdoKTsKZGlmZiAtLWdp dCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggOGMyZTI1OS4uNWU5MjA0 MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTEy NDgsMTAgKzEyNDgsOCBAQCBjc3VtX2NvcHlfZXJyOgogCQlVRFBfSU5DX1NUQVRTX1VTRVIoc29j a19uZXQoc2spLCBVRFBfTUlCX0lORVJST1JTLCBpc191ZHBsaXRlKTsKIAl1bmxvY2tfc29ja19m YXN0KHNrLCBzbG93KTsKIAotCWlmIChub2Jsb2NrKQotCQlyZXR1cm4gLUVBR0FJTjsKLQotCS8q IHN0YXJ0aW5nIG92ZXIgZm9yIGEgbmV3IHBhY2tldCAqLworCS8qIHN0YXJ0aW5nIG92ZXIgZm9y IGEgbmV3IHBhY2tldCwgYnV0IGNoZWNrIGlmIHdlIG5lZWQgdG8geWllbGQgKi8KKwljb25kX3Jl c2NoZWQoKTsKIAltc2ctPm1zZ19mbGFncyAmPSB+TVNHX1RSVU5DOwogCWdvdG8gdHJ5X2FnYWlu OwogfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdWRwLmMgYi9uZXQvaXB2Ni91ZHAuYwppbmRleCBk MTMxYTk1Li5kYzA4YWZkIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni91ZHAuYworKysgYi9uZXQvaXB2 Ni91ZHAuYwpAQCAtNDUxLDEwICs0NTEsOCBAQCBjc3VtX2NvcHlfZXJyOgogCX0KIAl1bmxvY2tf c29ja19mYXN0KHNrLCBzbG93KTsKIAotCWlmIChub2Jsb2NrKQotCQlyZXR1cm4gLUVBR0FJTjsK LQotCS8qIHN0YXJ0aW5nIG92ZXIgZm9yIGEgbmV3IHBhY2tldCAqLworCS8qIHN0YXJ0aW5nIG92 ZXIgZm9yIGEgbmV3IHBhY2tldCwgYnV0IGNoZWNrIGlmIHdlIG5lZWQgdG8geWllbGQgKi8KKwlj b25kX3Jlc2NoZWQoKTsKIAltc2ctPm1zZ19mbGFncyAmPSB+TVNHX1RSVU5DOwogCWdvdG8gdHJ5 X2FnYWluOwogfQpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3dlcC5jIGIvbmV0L21hYzgwMjEx L3dlcC5jCmluZGV4IGExYzZiZmQuLjM0NTgzYzUgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS93 ZXAuYworKysgYi9uZXQvbWFjODAyMTEvd2VwLmMKQEAgLTk3LDggKzk3LDcgQEAgc3RhdGljIHU4 ICppZWVlODAyMTFfd2VwX2FkZF9pdihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwKIAog CWhkci0+ZnJhbWVfY29udHJvbCB8PSBjcHVfdG9fbGUxNihJRUVFODAyMTFfRkNUTF9QUk9URUNU RUQpOwogCi0JaWYgKFdBUk5fT04oc2tiX3RhaWxyb29tKHNrYikgPCBXRVBfSUNWX0xFTiB8fAot CQkgICAgc2tiX2hlYWRyb29tKHNrYikgPCBXRVBfSVZfTEVOKSkKKwlpZiAoV0FSTl9PTihza2Jf aGVhZHJvb20oc2tiKSA8IFdFUF9JVl9MRU4pKQogCQlyZXR1cm4gTlVMTDsKIAogCWhkcmxlbiA9 IGllZWU4MDIxMV9oZHJsZW4oaGRyLT5mcmFtZV9jb250cm9sKTsKQEAgLTE2MCw2ICsxNTksOSBA QCBpbnQgaWVlZTgwMjExX3dlcF9lbmNyeXB0KHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2Fs LAogCXNpemVfdCBsZW47CiAJdTggcmM0a2V5WzMgKyBXTEFOX0tFWV9MRU5fV0VQMTA0XTsKIAor CWlmIChXQVJOX09OKHNrYl90YWlscm9vbShza2IpIDwgV0VQX0lDVl9MRU4pKQorCQlyZXR1cm4g LTE7CisKIAlpdiA9IGllZWU4MDIxMV93ZXBfYWRkX2l2KGxvY2FsLCBza2IsIGtleWxlbiwga2V5 aWR4KTsKIAlpZiAoIWl2KQogCQlyZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVy L2lwdnMvaXBfdnNfY29yZS5jIGIvbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX2NvcmUuYwppbmRl eCBkODY0YWFmLi4xOTdlZDkzIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNf Y29yZS5jCisrKyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19jb3JlLmMKQEAgLTIwMDMsMTAg KzIwMDMsMTggQEAgc3RhdGljIGludCBfX2luaXQgaXBfdnNfaW5pdCh2b2lkKQogCQlnb3RvIGNs ZWFudXBfZGV2OwogCX0KIAorCXJldCA9IGlwX3ZzX3JlZ2lzdGVyX25sX2lvY3RsKCk7CisJaWYg KHJldCA8IDApIHsKKwkJcHJfZXJyKCJjYW4ndCByZWdpc3RlciBuZXRsaW5rL2lvY3RsLlxuIik7 CisJCWdvdG8gY2xlYW51cF9ob29rczsKKwl9CisKIAlwcl9pbmZvKCJpcHZzIGxvYWRlZC5cbiIp OwogCiAJcmV0dXJuIHJldDsKIAorY2xlYW51cF9ob29rczoKKwluZl91bnJlZ2lzdGVyX2hvb2tz KGlwX3ZzX29wcywgQVJSQVlfU0laRShpcF92c19vcHMpKTsKIGNsZWFudXBfZGV2OgogCXVucmVn aXN0ZXJfcGVybmV0X2RldmljZSgmaXB2c19jb3JlX2Rldl9vcHMpOwogY2xlYW51cF9zdWI6CkBA IC0yMDIyLDYgKzIwMzAsNyBAQCBleGl0OgogCiBzdGF0aWMgdm9pZCBfX2V4aXQgaXBfdnNfY2xl YW51cCh2b2lkKQogeworCWlwX3ZzX3VucmVnaXN0ZXJfbmxfaW9jdGwoKTsKIAluZl91bnJlZ2lz dGVyX2hvb2tzKGlwX3ZzX29wcywgQVJSQVlfU0laRShpcF92c19vcHMpKTsKIAl1bnJlZ2lzdGVy X3Blcm5ldF9kZXZpY2UoJmlwdnNfY29yZV9kZXZfb3BzKTsKIAl1bnJlZ2lzdGVyX3Blcm5ldF9z dWJzeXMoJmlwdnNfY29yZV9vcHMpOwkvKiBmcmVlIGlwX3ZzIHN0cnVjdCAqLwpkaWZmIC0tZ2l0 IGEvbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX2N0bC5jIGIvbmV0L25ldGZpbHRlci9pcHZzL2lw X3ZzX2N0bC5jCmluZGV4IDkzYWNmYTEuLjFlMjdhMWYgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0 ZXIvaXB2cy9pcF92c19jdGwuYworKysgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfY3RsLmMK QEAgLTM2ODksNiArMzY4OSw5IEBAIHZvaWQgX19uZXRfaW5pdCBpcF92c19jb250cm9sX25ldF9j bGVhbnVwX3N5c2N0bChzdHJ1Y3QgbmV0ICpuZXQpCiAJY2FuY2VsX3dvcmtfc3luYygmaXB2cy0+ ZGVmZW5zZV93b3JrLndvcmspOwogCXVucmVnaXN0ZXJfbmV0X3N5c2N0bF90YWJsZShpcHZzLT5z eXNjdGxfaGRyKTsKIAlpcF92c19zdG9wX2VzdGltYXRvcihuZXQsICZpcHZzLT50b3Rfc3RhdHMp OworCisJaWYgKCFuZXRfZXEobmV0LCAmaW5pdF9uZXQpKQorCQlrZnJlZShpcHZzLT5zeXNjdGxf dGJsKTsKIH0KIAogI2Vsc2UKQEAgLTM3NTEsMjEgKzM3NTQsMTAgQEAgdm9pZCBfX25ldF9leGl0 IGlwX3ZzX2NvbnRyb2xfbmV0X2NsZWFudXAoc3RydWN0IG5ldCAqbmV0KQogCWZyZWVfcGVyY3B1 KGlwdnMtPnRvdF9zdGF0cy5jcHVzdGF0cyk7CiB9CiAKLWludCBfX2luaXQgaXBfdnNfY29udHJv bF9pbml0KHZvaWQpCitpbnQgX19pbml0IGlwX3ZzX3JlZ2lzdGVyX25sX2lvY3RsKHZvaWQpCiB7 Ci0JaW50IGlkeDsKIAlpbnQgcmV0OwogCi0JRW50ZXJGdW5jdGlvbigyKTsKLQotCS8qIEluaXRp YWxpemUgc3ZjX3RhYmxlLCBpcF92c19zdmNfZndtX3RhYmxlLCByc190YWJsZSAqLwotCWZvcihp ZHggPSAwOyBpZHggPCBJUF9WU19TVkNfVEFCX1NJWkU7IGlkeCsrKSAgewotCQlJTklUX0xJU1Rf SEVBRCgmaXBfdnNfc3ZjX3RhYmxlW2lkeF0pOwotCQlJTklUX0xJU1RfSEVBRCgmaXBfdnNfc3Zj X2Z3bV90YWJsZVtpZHhdKTsKLQl9Ci0KLQlzbXBfd21iKCk7CS8qIERvIHdlIHJlYWxseSBuZWVk IGl0IG5vdyA/ICovCi0KIAlyZXQgPSBuZl9yZWdpc3Rlcl9zb2Nrb3B0KCZpcF92c19zb2Nrb3B0 cyk7CiAJaWYgKHJldCkgewogCQlwcl9lcnIoImNhbm5vdCByZWdpc3RlciBzb2Nrb3B0LlxuIik7 CkBAIC0zNzc3LDI4ICszNzY5LDQ3IEBAIGludCBfX2luaXQgaXBfdnNfY29udHJvbF9pbml0KHZv aWQpCiAJCXByX2VycigiY2Fubm90IHJlZ2lzdGVyIEdlbmVyaWMgTmV0bGluayBpbnRlcmZhY2Uu XG4iKTsKIAkJZ290byBlcnJfZ2VubDsKIAl9Ci0KLQlyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vf bm90aWZpZXIoJmlwX3ZzX2RzdF9ub3RpZmllcik7Ci0JaWYgKHJldCA8IDApCi0JCWdvdG8gZXJy X25vdGY7Ci0KLQlMZWF2ZUZ1bmN0aW9uKDIpOwogCXJldHVybiAwOwogCi1lcnJfbm90ZjoKLQlp cF92c19nZW5sX3VucmVnaXN0ZXIoKTsKIGVycl9nZW5sOgogCW5mX3VucmVnaXN0ZXJfc29ja29w dCgmaXBfdnNfc29ja29wdHMpOwogZXJyX3NvY2s6CiAJcmV0dXJuIHJldDsKIH0KIAordm9pZCBp cF92c191bnJlZ2lzdGVyX25sX2lvY3RsKHZvaWQpCit7CisJaXBfdnNfZ2VubF91bnJlZ2lzdGVy KCk7CisJbmZfdW5yZWdpc3Rlcl9zb2Nrb3B0KCZpcF92c19zb2Nrb3B0cyk7Cit9CisKK2ludCBf X2luaXQgaXBfdnNfY29udHJvbF9pbml0KHZvaWQpCit7CisJaW50IGlkeDsKKwlpbnQgcmV0Owor CisJRW50ZXJGdW5jdGlvbigyKTsKKworCS8qIEluaXRpYWxpemUgc3ZjX3RhYmxlLCBpcF92c19z dmNfZndtX3RhYmxlLCByc190YWJsZSAqLworCWZvciAoaWR4ID0gMDsgaWR4IDwgSVBfVlNfU1ZD X1RBQl9TSVpFOyBpZHgrKykgeworCQlJTklUX0xJU1RfSEVBRCgmaXBfdnNfc3ZjX3RhYmxlW2lk eF0pOworCQlJTklUX0xJU1RfSEVBRCgmaXBfdnNfc3ZjX2Z3bV90YWJsZVtpZHhdKTsKKwl9CisK KwlzbXBfd21iKCk7CS8qIERvIHdlIHJlYWxseSBuZWVkIGl0IG5vdyA/ICovCisKKwlyZXQgPSBy ZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJmlwX3ZzX2RzdF9ub3RpZmllcik7CisJaWYgKHJl dCA8IDApCisJCXJldHVybiByZXQ7CisKKwlMZWF2ZUZ1bmN0aW9uKDIpOworCXJldHVybiAwOwor fQorCiAKIHZvaWQgaXBfdnNfY29udHJvbF9jbGVhbnVwKHZvaWQpCiB7CiAJRW50ZXJGdW5jdGlv bigyKTsKIAl1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcigmaXBfdnNfZHN0X25vdGlmaWVy KTsKLQlpcF92c19nZW5sX3VucmVnaXN0ZXIoKTsKLQluZl91bnJlZ2lzdGVyX3NvY2tvcHQoJmlw X3ZzX3NvY2tvcHRzKTsKIAlMZWF2ZUZ1bmN0aW9uKDIpOwogfQpkaWZmIC0tZ2l0IGEvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggNGYxOWJmMi4u MGMyMWYwNiAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCkBAIC0xMTcwLDE2ICsxMTcwLDYgQEAgc3RhdGljIHZvaWQgcGFja2V0 X3NvY2tfZGVzdHJ1Y3Qoc3RydWN0IHNvY2sgKnNrKQogCXNrX3JlZmNudF9kZWJ1Z19kZWMoc2sp OwogfQogCi1zdGF0aWMgaW50IGZhbm91dF9ycl9uZXh0KHN0cnVjdCBwYWNrZXRfZmFub3V0ICpm LCB1bnNpZ25lZCBpbnQgbnVtKQotewotCWludCB4ID0gYXRvbWljX3JlYWQoJmYtPnJyX2N1cikg KyAxOwotCi0JaWYgKHggPj0gbnVtKQotCQl4ID0gMDsKLQotCXJldHVybiB4OwotfQotCiBzdGF0 aWMgc3RydWN0IHNvY2sgKmZhbm91dF9kZW11eF9oYXNoKHN0cnVjdCBwYWNrZXRfZmFub3V0ICpm LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgbnVtKQogewogCXUzMiBpZHgsIGhh c2ggPSBza2ItPnJ4aGFzaDsKQEAgLTExOTEsMTMgKzExODEsOSBAQCBzdGF0aWMgc3RydWN0IHNv Y2sgKmZhbm91dF9kZW11eF9oYXNoKHN0cnVjdCBwYWNrZXRfZmFub3V0ICpmLCBzdHJ1Y3Qgc2tf YnVmZiAqcwogCiBzdGF0aWMgc3RydWN0IHNvY2sgKmZhbm91dF9kZW11eF9sYihzdHJ1Y3QgcGFj a2V0X2Zhbm91dCAqZiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IG51bSkKIHsK LQlpbnQgY3VyLCBvbGQ7CisJdW5zaWduZWQgaW50IHZhbCA9IGF0b21pY19pbmNfcmV0dXJuKCZm LT5ycl9jdXIpOwogCi0JY3VyID0gYXRvbWljX3JlYWQoJmYtPnJyX2N1cik7Ci0Jd2hpbGUgKChv bGQgPSBhdG9taWNfY21weGNoZygmZi0+cnJfY3VyLCBjdXIsCi0JCQkJICAgICBmYW5vdXRfcnJf bmV4dChmLCBudW0pKSkgIT0gY3VyKQotCQljdXIgPSBvbGQ7Ci0JcmV0dXJuIGYtPmFycltjdXJd OworCXJldHVybiBmLT5hcnJbdmFsICUgbnVtXTsKIH0KIAogc3RhdGljIHN0cnVjdCBzb2NrICpm YW5vdXRfZGVtdXhfY3B1KHN0cnVjdCBwYWNrZXRfZmFub3V0ICpmLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1bnNpZ25lZCBpbnQgbnVtKQpAQCAtMTIxMSw3ICsxMTk3LDcgQEAgc3RhdGljIGludCBw YWNrZXRfcmN2X2Zhbm91dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LAogCQkJICAgICBzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0LCBzdHJ1Y3QgbmV0X2RldmljZSAq b3JpZ19kZXYpCiB7CiAJc3RydWN0IHBhY2tldF9mYW5vdXQgKmYgPSBwdC0+YWZfcGFja2V0X3By aXY7Ci0JdW5zaWduZWQgaW50IG51bSA9IGYtPm51bV9tZW1iZXJzOworCXVuc2lnbmVkIGludCBu dW0gPSBBQ0NFU1NfT05DRShmLT5udW1fbWVtYmVycyk7CiAJc3RydWN0IHBhY2tldF9zb2NrICpw bzsKIAlzdHJ1Y3Qgc29jayAqc2s7CiAKZGlmZiAtLWdpdCBhL25ldC9zY3RwL291dHB1dC5jIGIv bmV0L3NjdHAvb3V0cHV0LmMKaW5kZXggYzNiODU0OS4uNmQ1NmVlYyAxMDA2NDQKLS0tIGEvbmV0 L3NjdHAvb3V0cHV0LmMKKysrIGIvbmV0L3NjdHAvb3V0cHV0LmMKQEAgLTU4Nyw3ICs1ODcsOSBA QCBvdXQ6CiAJcmV0dXJuIGVycjsKIG5vX3JvdXRlOgogCWtmcmVlX3NrYihuc2tiKTsKLQlJUF9J TkNfU1RBVFMoJmluaXRfbmV0LCBJUFNUQVRTX01JQl9PVVROT1JPVVRFUyk7CisKKwlpZiAoYXNv YykKKwkJSVBfSU5DX1NUQVRTKCZpbml0X25ldCwgSVBTVEFUU19NSUJfT1VUTk9ST1VURVMpOwog CiAJLyogRklYTUU6IFJldHVybmluZyB0aGUgJ2Vycicgd2lsbCBlZmZlY3QgYWxsIHRoZSBhc3Nv Y2lhdGlvbnMKIAkgKiBhc3NvY2lhdGVkIHdpdGggYSBzb2NrZXQsIGFsdGhvdWdoIG9ubHkgb25l IG9mIHRoZSBwYXRocyBvZiB0aGUKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0 L3NjdHAvc29ja2V0LmMKaW5kZXggZmM2MzY2NC4uMjRlODhhZiAxMDA2NDQKLS0tIGEvbmV0L3Nj dHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTE1MzksOCArMTUzOSwxMCBA QCBTQ1RQX1NUQVRJQyB2b2lkIHNjdHBfY2xvc2Uoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRpbWVv dXQpCiAKIAkvKiBTdXBwb3NlZGx5LCBubyBwcm9jZXNzIGhhcyBhY2Nlc3MgdG8gdGhlIHNvY2tl dCwgYnV0CiAJICogdGhlIG5ldCBsYXllcnMgc3RpbGwgbWF5LgorCSAqIEFsc28sIHNjdHBfZGVz dHJveV9zb2NrKCkgbmVlZHMgdG8gYmUgY2FsbGVkIHdpdGggYWRkcl93cV9sb2NrCisJICogaGVs ZCBhbmQgdGhhdCBzaG91bGQgYmUgZ3JhYmJlZCBiZWZvcmUgc29ja2V0IGxvY2suCiAJICovCi0J c2N0cF9sb2NhbF9iaF9kaXNhYmxlKCk7CisJc3Bpbl9sb2NrX2JoKCZzY3RwX2dsb2JhbHMuYWRk cl93cV9sb2NrKTsKIAlzY3RwX2JoX2xvY2tfc29jayhzayk7CiAKIAkvKiBIb2xkIHRoZSBzb2Nr LCBzaW5jZSBza19jb21tb25fcmVsZWFzZSgpIHdpbGwgcHV0IHNvY2tfcHV0KCkKQEAgLTE1NTAs NyArMTU1Miw3IEBAIFNDVFBfU1RBVElDIHZvaWQgc2N0cF9jbG9zZShzdHJ1Y3Qgc29jayAqc2ss IGxvbmcgdGltZW91dCkKIAlza19jb21tb25fcmVsZWFzZShzayk7CiAKIAlzY3RwX2JoX3VubG9j a19zb2NrKHNrKTsKLQlzY3RwX2xvY2FsX2JoX2VuYWJsZSgpOworCXNwaW5fdW5sb2NrX2JoKCZz Y3RwX2dsb2JhbHMuYWRkcl93cV9sb2NrKTsKIAogCXNvY2tfcHV0KHNrKTsKIApAQCAtMzQ5OSw2 ICszNTAxLDcgQEAgc3RhdGljIGludCBzY3RwX3NldHNvY2tvcHRfYXV0b19hc2NvbmYoc3RydWN0 IHNvY2sgKnNrLCBjaGFyIF9fdXNlciAqb3B0dmFsLAogCWlmICgodmFsICYmIHNwLT5kb19hdXRv X2FzY29uZikgfHwgKCF2YWwgJiYgIXNwLT5kb19hdXRvX2FzY29uZikpCiAJCXJldHVybiAwOwog CisJc3Bpbl9sb2NrX2JoKCZzY3RwX2dsb2JhbHMuYWRkcl93cV9sb2NrKTsKIAlpZiAodmFsID09 IDAgJiYgc3AtPmRvX2F1dG9fYXNjb25mKSB7CiAJCWxpc3RfZGVsKCZzcC0+YXV0b19hc2NvbmZf bGlzdCk7CiAJCXNwLT5kb19hdXRvX2FzY29uZiA9IDA7CkBAIC0zNTA3LDYgKzM1MTAsNyBAQCBz dGF0aWMgaW50IHNjdHBfc2V0c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qgc29jayAqc2ssIGNo YXIgX191c2VyICpvcHR2YWwsCiAJCSAgICAmc2N0cF9hdXRvX2FzY29uZl9zcGxpc3QpOwogCQlz cC0+ZG9fYXV0b19hc2NvbmYgPSAxOwogCX0KKwlzcGluX3VubG9ja19iaCgmc2N0cF9nbG9iYWxz LmFkZHJfd3FfbG9jayk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM5NDIsMTggKzM5NDYsMjggQEAg U0NUUF9TVEFUSUMgaW50IHNjdHBfaW5pdF9zb2NrKHN0cnVjdCBzb2NrICpzaykKIAlsb2NhbF9i aF9kaXNhYmxlKCk7CiAJcGVyY3B1X2NvdW50ZXJfaW5jKCZzY3RwX3NvY2tldHNfYWxsb2NhdGVk KTsKIAlzb2NrX3Byb3RfaW51c2VfYWRkKHNvY2tfbmV0KHNrKSwgc2stPnNrX3Byb3QsIDEpOwor CisJLyogTm90aGluZyBjYW4gZmFpbCBhZnRlciB0aGlzIGJsb2NrLCBvdGhlcndpc2UKKwkgKiBz Y3RwX2Rlc3Ryb3lfc29jaygpIHdpbGwgYmUgY2FsbGVkIHdpdGhvdXQgYWRkcl93cV9sb2NrIGhl bGQKKwkgKi8KIAlpZiAoc2N0cF9kZWZhdWx0X2F1dG9fYXNjb25mKSB7CisJCXNwaW5fbG9jaygm c2N0cF9nbG9iYWxzLmFkZHJfd3FfbG9jayk7CiAJCWxpc3RfYWRkX3RhaWwoJnNwLT5hdXRvX2Fz Y29uZl9saXN0LAogCQkgICAgJnNjdHBfYXV0b19hc2NvbmZfc3BsaXN0KTsKIAkJc3AtPmRvX2F1 dG9fYXNjb25mID0gMTsKLQl9IGVsc2UKKwkJc3Bpbl91bmxvY2soJnNjdHBfZ2xvYmFscy5hZGRy X3dxX2xvY2spOworCX0gZWxzZSB7CiAJCXNwLT5kb19hdXRvX2FzY29uZiA9IDA7CisJfQorCiAJ bG9jYWxfYmhfZW5hYmxlKCk7CiAKIAlyZXR1cm4gMDsKIH0KIAotLyogQ2xlYW51cCBhbnkgU0NU UCBwZXIgc29ja2V0IHJlc291cmNlcy4gICovCisvKiBDbGVhbnVwIGFueSBTQ1RQIHBlciBzb2Nr ZXQgcmVzb3VyY2VzLiBNdXN0IGJlIGNhbGxlZCB3aXRoCisgKiBzY3RwX2dsb2JhbHMuYWRkcl93 cV9sb2NrIGhlbGQgaWYgc3AtPmRvX2F1dG9fYXNjb25mIGlzIHRydWUKKyAqLwogU0NUUF9TVEFU SUMgdm9pZCBzY3RwX2Rlc3Ryb3lfc29jayhzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHNj dHBfc29jayAqc3A7CkBAIC02NzE5LDYgKzY3MzMsMTkgQEAgdm9pZCBzY3RwX2NvcHlfc29jayhz dHJ1Y3Qgc29jayAqbmV3c2ssIHN0cnVjdCBzb2NrICpzaywKIAluZXdpbmV0LT5tY19saXN0ID0g TlVMTDsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHNjdHBfY29weV9kZXNjZW5kYW50KHN0cnVj dCBzb2NrICpza190bywKKwkJCQkJY29uc3Qgc3RydWN0IHNvY2sgKnNrX2Zyb20pCit7CisJaW50 IGFuY2VzdG9yX3NpemUgPSBzaXplb2Yoc3RydWN0IGluZXRfc29jaykgKworCQkJICAgIHNpemVv ZihzdHJ1Y3Qgc2N0cF9zb2NrKSAtCisJCQkgICAgb2Zmc2V0b2Yoc3RydWN0IHNjdHBfc29jaywg YXV0b19hc2NvbmZfbGlzdCk7CisKKwlpZiAoc2tfZnJvbS0+c2tfZmFtaWx5ID09IFBGX0lORVQ2 KQorCQlhbmNlc3Rvcl9zaXplICs9IHNpemVvZihzdHJ1Y3QgaXB2Nl9waW5mbyk7CisKKwlfX2lu ZXRfc2tfY29weV9kZXNjZW5kYW50KHNrX3RvLCBza19mcm9tLCBhbmNlc3Rvcl9zaXplKTsKK30K KwogLyogUG9wdWxhdGUgdGhlIGZpZWxkcyBvZiB0aGUgbmV3c2sgZnJvbSB0aGUgb2xkc2sgYW5k IG1pZ3JhdGUgdGhlIGFzc29jCiAgKiBhbmQgaXRzIG1lc3NhZ2VzIHRvIHRoZSBuZXdzay4KICAq LwpAQCAtNjczMyw3ICs2NzYwLDYgQEAgc3RhdGljIHZvaWQgc2N0cF9zb2NrX21pZ3JhdGUoc3Ry dWN0IHNvY2sgKm9sZHNrLCBzdHJ1Y3Qgc29jayAqbmV3c2ssCiAJc3RydWN0IHNrX2J1ZmYgKnNr YiwgKnRtcDsKIAlzdHJ1Y3Qgc2N0cF91bHBldmVudCAqZXZlbnQ7CiAJc3RydWN0IHNjdHBfYmlu ZF9oYXNoYnVja2V0ICpoZWFkOwotCXN0cnVjdCBsaXN0X2hlYWQgdG1wbGlzdDsKIAogCS8qIE1p Z3JhdGUgc29ja2V0IGJ1ZmZlciBzaXplcyBhbmQgYWxsIHRoZSBzb2NrZXQgbGV2ZWwgb3B0aW9u cyB0byB0aGUKIAkgKiBuZXcgc29ja2V0LgpAQCAtNjc0MSwxMiArNjc2Nyw3IEBAIHN0YXRpYyB2 b2lkIHNjdHBfc29ja19taWdyYXRlKHN0cnVjdCBzb2NrICpvbGRzaywgc3RydWN0IHNvY2sgKm5l d3NrLAogCW5ld3NrLT5za19zbmRidWYgPSBvbGRzay0+c2tfc25kYnVmOwogCW5ld3NrLT5za19y Y3ZidWYgPSBvbGRzay0+c2tfcmN2YnVmOwogCS8qIEJydXRlIGZvcmNlIGNvcHkgb2xkIHNjdHAg b3B0LiAqLwotCWlmIChvbGRzcC0+ZG9fYXV0b19hc2NvbmYpIHsKLQkJbWVtY3B5KCZ0bXBsaXN0 LCAmbmV3c3AtPmF1dG9fYXNjb25mX2xpc3QsIHNpemVvZih0bXBsaXN0KSk7Ci0JCWluZXRfc2tf Y29weV9kZXNjZW5kYW50KG5ld3NrLCBvbGRzayk7Ci0JCW1lbWNweSgmbmV3c3AtPmF1dG9fYXNj b25mX2xpc3QsICZ0bXBsaXN0LCBzaXplb2YodG1wbGlzdCkpOwotCX0gZWxzZQotCQlpbmV0X3Nr X2NvcHlfZGVzY2VuZGFudChuZXdzaywgb2xkc2spOworCXNjdHBfY29weV9kZXNjZW5kYW50KG5l d3NrLCBvbGRzayk7CiAKIAkvKiBSZXN0b3JlIHRoZSBlcCB2YWx1ZSB0aGF0IHdhcyBvdmVyd3Jp dHRlbiB3aXRoIHRoZSBhYm92ZSBzdHJ1Y3R1cmUKIAkgKiBjb3B5LgpkaWZmIC0tZ2l0IGEvbmV0 L3NvY2tldC5jIGIvbmV0L3NvY2tldC5jCmluZGV4IDExNmNmOWQuLjEwZWEyNWEgMTAwNjQ0Ci0t LSBhL25ldC9zb2NrZXQuYworKysgYi9uZXQvc29ja2V0LmMKQEAgLTE5MTEsMTQgKzE5MTEsMTIg QEAgc3RhdGljIGludCBfX19zeXNfc2VuZG1zZyhzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg bXNnaGRyIF9fdXNlciAqbXNnLAogCWludCBlcnIsIGN0bF9sZW4sIGlvdl9zaXplLCB0b3RhbF9s ZW47CiAKIAllcnIgPSAtRUZBVUxUOwotCWlmIChNU0dfQ01TR19DT01QQVQgJiBmbGFncykgewot CQlpZiAoZ2V0X2NvbXBhdF9tc2doZHIobXNnX3N5cywgbXNnX2NvbXBhdCkpCi0JCQlyZXR1cm4g LUVGQVVMVDsKLQl9IGVsc2UgeworCWlmIChNU0dfQ01TR19DT01QQVQgJiBmbGFncykKKwkJZXJy ID0gZ2V0X2NvbXBhdF9tc2doZHIobXNnX3N5cywgbXNnX2NvbXBhdCk7CisJZWxzZQogCQllcnIg PSBjb3B5X21zZ2hkcl9mcm9tX3VzZXIobXNnX3N5cywgbXNnKTsKLQkJaWYgKGVycikKLQkJCXJl dHVybiBlcnI7Ci0JfQorCWlmIChlcnIpCisJCXJldHVybiBlcnI7CiAKIAkvKiBkbyBub3QgbW92 ZSBiZWZvcmUgbXNnX3N5cyBpcyB2YWxpZCAqLwogCWVyciA9IC1FTVNHU0laRTsKQEAgLTIxMzAs MTQgKzIxMjgsMTIgQEAgc3RhdGljIGludCBfX19zeXNfcmVjdm1zZyhzdHJ1Y3Qgc29ja2V0ICpz b2NrLCBzdHJ1Y3QgbXNnaGRyIF9fdXNlciAqbXNnLAogCXN0cnVjdCBzb2NrYWRkciBfX3VzZXIg KnVhZGRyOwogCWludCBfX3VzZXIgKnVhZGRyX2xlbjsKIAotCWlmIChNU0dfQ01TR19DT01QQVQg JiBmbGFncykgewotCQlpZiAoZ2V0X2NvbXBhdF9tc2doZHIobXNnX3N5cywgbXNnX2NvbXBhdCkp Ci0JCQlyZXR1cm4gLUVGQVVMVDsKLQl9IGVsc2UgeworCWlmIChNU0dfQ01TR19DT01QQVQgJiBm bGFncykKKwkJZXJyID0gZ2V0X2NvbXBhdF9tc2doZHIobXNnX3N5cywgbXNnX2NvbXBhdCk7CisJ ZWxzZQogCQllcnIgPSBjb3B5X21zZ2hkcl9mcm9tX3VzZXIobXNnX3N5cywgbXNnKTsKLQkJaWYg KGVycikKLQkJCXJldHVybiBlcnI7Ci0JfQorCWlmIChlcnIpCisJCXJldHVybiBlcnI7CiAKIAll cnIgPSAtRU1TR1NJWkU7CiAJaWYgKG1zZ19zeXMtPm1zZ19pb3ZsZW4gPiBVSU9fTUFYSU9WKQpk aWZmIC0tZ2l0IGEvbmV0L3VuaXgvYWZfdW5peC5jIGIvbmV0L3VuaXgvYWZfdW5peC5jCmluZGV4 IDg3MDVlZTMuLjliMWYzNzEgMTAwNjQ0Ci0tLSBhL25ldC91bml4L2FmX3VuaXguYworKysgYi9u ZXQvdW5peC9hZl91bml4LmMKQEAgLTE4NzAsNiArMTg3MCwxMCBAQCBzdGF0aWMgbG9uZyB1bml4 X3N0cmVhbV9kYXRhX3dhaXQoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRpbWVvKQogCQl1bml4X3N0 YXRlX3VubG9jayhzayk7CiAJCXRpbWVvID0gc2NoZWR1bGVfdGltZW91dCh0aW1lbyk7CiAJCXVu aXhfc3RhdGVfbG9jayhzayk7CisKKwkJaWYgKHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkKKwkJ CWJyZWFrOworCiAJCWNsZWFyX2JpdChTT0NLX0FTWU5DX1dBSVREQVRBLCAmc2stPnNrX3NvY2tl dC0+ZmxhZ3MpOwogCX0KIApAQCAtMTkzMCw2ICsxOTM0LDEwIEBAIHN0YXRpYyBpbnQgdW5peF9z dHJlYW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJ CXN0cnVjdCBza19idWZmICpza2I7CiAKIAkJdW5peF9zdGF0ZV9sb2NrKHNrKTsKKwkJaWYgKHNv Y2tfZmxhZyhzaywgU09DS19ERUFEKSkgeworCQkJZXJyID0gLUVDT05OUkVTRVQ7CisJCQlnb3Rv IHVubG9jazsKKwkJfQogCQlza2IgPSBza2JfcGVlaygmc2stPnNrX3JlY2VpdmVfcXVldWUpOwog CQlpZiAoc2tiID09IE5VTEwpIHsKIAkJCXVuaXhfc2soc2spLT5yZWN1cnNpb25fbGV2ZWwgPSAw OwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9ubG1zZ3RhYi5jIGIvc2VjdXJpdHkvc2Vs aW51eC9ubG1zZ3RhYi5jCmluZGV4IDA5MjBlYTMuLjU3NzY5MjEgMTAwNjQ0Ci0tLSBhL3NlY3Vy aXR5L3NlbGludXgvbmxtc2d0YWIuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L25sbXNndGFiLmMK QEAgLTEwMCw2ICsxMDAsMTIgQEAgc3RhdGljIHN0cnVjdCBubG1zZ19wZXJtIG5sbXNnX3hmcm1f cGVybXNbXSA9CiAJeyBYRlJNX01TR19GTFVTSFBPTElDWSwJTkVUTElOS19YRlJNX1NPQ0tFVF9f TkxNU0dfV1JJVEUgfSwKIAl7IFhGUk1fTVNHX05FV0FFLAlORVRMSU5LX1hGUk1fU09DS0VUX19O TE1TR19XUklURSB9LAogCXsgWEZSTV9NU0dfR0VUQUUsCU5FVExJTktfWEZSTV9TT0NLRVRfX05M TVNHX1JFQUQgIH0sCisJeyBYRlJNX01TR19SRVBPUlQsCU5FVExJTktfWEZSTV9TT0NLRVRfX05M TVNHX1JFQUQgIH0sCisJeyBYRlJNX01TR19NSUdSQVRFLAlORVRMSU5LX1hGUk1fU09DS0VUX19O TE1TR19XUklURSB9LAorCXsgWEZSTV9NU0dfTkVXU0FESU5GTywJTkVUTElOS19YRlJNX1NPQ0tF VF9fTkxNU0dfUkVBRCAgfSwKKwl7IFhGUk1fTVNHX0dFVFNBRElORk8sCU5FVExJTktfWEZSTV9T T0NLRVRfX05MTVNHX1JFQUQgIH0sCisJeyBYRlJNX01TR19HRVRTUERJTkZPLAlORVRMSU5LX1hG Uk1fU09DS0VUX19OTE1TR19SRUFEICB9LAorCXsgWEZSTV9NU0dfTUFQUElORywJTkVUTElOS19Y RlJNX1NPQ0tFVF9fTkxNU0dfUkVBRCAgfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgbmxtc2dfcGVy bSBubG1zZ19hdWRpdF9wZXJtc1tdID0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9lbXUxMGsxL2Vt dTEwazEuYyBiL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazEuYwppbmRleCBlYWExOThlLi5mMzNl M2NjIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvZW11MTBrMS9lbXUxMGsxLmMKKysrIGIvc291bmQv cGNpL2VtdTEwazEvZW11MTBrMS5jCkBAIC0xODEsOCArMTgxLDEwIEBAIHN0YXRpYyBpbnQgX19k ZXZpbml0IHNuZF9jYXJkX2VtdTEwazFfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBjaSwKIAl9CiAj ZW5kaWYKICAKLQlzdHJjcHkoY2FyZC0+ZHJpdmVyLCBlbXUtPmNhcmRfY2FwYWJpbGl0aWVzLT5k cml2ZXIpOwotCXN0cmNweShjYXJkLT5zaG9ydG5hbWUsIGVtdS0+Y2FyZF9jYXBhYmlsaXRpZXMt Pm5hbWUpOworCXN0cmxjcHkoY2FyZC0+ZHJpdmVyLCBlbXUtPmNhcmRfY2FwYWJpbGl0aWVzLT5k cml2ZXIsCisJCXNpemVvZihjYXJkLT5kcml2ZXIpKTsKKwlzdHJsY3B5KGNhcmQtPnNob3J0bmFt ZSwgZW11LT5jYXJkX2NhcGFiaWxpdGllcy0+bmFtZSwKKwkJc2l6ZW9mKGNhcmQtPnNob3J0bmFt ZSkpOwogCXNucHJpbnRmKGNhcmQtPmxvbmduYW1lLCBzaXplb2YoY2FyZC0+bG9uZ25hbWUpLAog CQkgIiVzIChyZXYuJWQsIHNlcmlhbDoweCV4KSBhdCAweCVseCwgaXJxICVpIiwKIAkJIGNhcmQt PnNob3J0bmFtZSwgZW11LT5yZXZpc2lvbiwgZW11LT5zZXJpYWwsIGVtdS0+cG9ydCwgZW11LT5p cnEpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2VtdTEwazEvZW11MTBrMV9jYWxsYmFjay5jIGIv c291bmQvcGNpL2VtdTEwazEvZW11MTBrMV9jYWxsYmFjay5jCmluZGV4IGYzNTI4NGIuLjgyOTU5 NTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazFfY2FsbGJhY2suYworKysg Yi9zb3VuZC9wY2kvZW11MTBrMS9lbXUxMGsxX2NhbGxiYWNrLmMKQEAgLTQxNSw3ICs0MTUsNyBA QCBzdGFydF92b2ljZShzdHJ1Y3Qgc25kX2VtdXhfdm9pY2UgKnZwKQogCXNuZF9lbXUxMGsxX3B0 cl93cml0ZShodywgWjIsIGNoLCAwKTsKIAogCS8qIGludmFsaWRhdGUgbWFwcyAqLwotCXRlbXAg PSAoaHctPnNpbGVudF9wYWdlLmFkZHIgPDwgMSkgfCBNQVBfUFRJX01BU0s7CisJdGVtcCA9ICho dy0+c2lsZW50X3BhZ2UuYWRkciA8PCBody0+YWRkcmVzc19tb2RlKSB8IChody0+YWRkcmVzc19t b2RlID8gTUFQX1BUSV9NQVNLMSA6IE1BUF9QVElfTUFTSzApOwogCXNuZF9lbXUxMGsxX3B0cl93 cml0ZShodywgTUFQQSwgY2gsIHRlbXApOwogCXNuZF9lbXUxMGsxX3B0cl93cml0ZShodywgTUFQ QiwgY2gsIHRlbXApOwogI2lmIDAKQEAgLTQzNiw3ICs0MzYsNyBAQCBzdGFydF92b2ljZShzdHJ1 Y3Qgc25kX2VtdXhfdm9pY2UgKnZwKQogCQlzbmRfZW11MTBrMV9wdHJfd3JpdGUoaHcsIENERiwg Y2gsIHNhbXBsZSk7CiAKIAkJLyogaW52YWxpZGF0ZSBtYXBzICovCi0JCXRlbXAgPSAoKHVuc2ln bmVkIGludClody0+c2lsZW50X3BhZ2UuYWRkciA8PCAxKSB8IE1BUF9QVElfTUFTSzsKKwkJdGVt cCA9ICgodW5zaWduZWQgaW50KWh3LT5zaWxlbnRfcGFnZS5hZGRyIDw8IGh3X2FkZHJlc3NfbW9k ZSkgfCAoaHctPmFkZHJlc3NfbW9kZSA/IE1BUF9QVElfTUFTSzEgOiBNQVBfUFRJX01BU0swKTsK IAkJc25kX2VtdTEwazFfcHRyX3dyaXRlKGh3LCBNQVBBLCBjaCwgdGVtcCk7CiAJCXNuZF9lbXUx MGsxX3B0cl93cml0ZShodywgTUFQQiwgY2gsIHRlbXApOwogCQkKZGlmZiAtLWdpdCBhL3NvdW5k L3BjaS9lbXUxMGsxL2VtdTEwazFfbWFpbi5jIGIvc291bmQvcGNpL2VtdTEwazEvZW11MTBrMV9t YWluLmMKaW5kZXggZDM3Yjk0Ni4uNzA1ZTczZSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2VtdTEw azEvZW11MTBrMV9tYWluLmMKKysrIGIvc291bmQvcGNpL2VtdTEwazEvZW11MTBrMV9tYWluLmMK QEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgaW50IHNuZF9lbXUxMGsxX2luaXQoc3RydWN0IHNu ZF9lbXUxMGsxICplbXUsIGludCBlbmFibGVfaXIsIGludCByZXN1bWUpCiAJc25kX2VtdTEwazFf cHRyX3dyaXRlKGVtdSwgVENCLCAwLCAwKTsJLyogdGFrZW4gZnJvbSBvcmlnaW5hbCBkcml2ZXIg Ki8KIAlzbmRfZW11MTBrMV9wdHJfd3JpdGUoZW11LCBUQ0JTLCAwLCA0KTsJLyogdGFrZW4gZnJv bSBvcmlnaW5hbCBkcml2ZXIgKi8KIAotCXNpbGVudF9wYWdlID0gKGVtdS0+c2lsZW50X3BhZ2Uu YWRkciA8PCAxKSB8IE1BUF9QVElfTUFTSzsKKwlzaWxlbnRfcGFnZSA9IChlbXUtPnNpbGVudF9w YWdlLmFkZHIgPDwgZW11LT5hZGRyZXNzX21vZGUpIHwgKGVtdS0+YWRkcmVzc19tb2RlID8gTUFQ X1BUSV9NQVNLMSA6IE1BUF9QVElfTUFTSzApOwogCWZvciAoY2ggPSAwOyBjaCA8IE5VTV9HOyBj aCsrKSB7CiAJCXNuZF9lbXUxMGsxX3B0cl93cml0ZShlbXUsIE1BUEEsIGNoLCBzaWxlbnRfcGFn ZSk7CiAJCXNuZF9lbXUxMGsxX3B0cl93cml0ZShlbXUsIE1BUEIsIGNoLCBzaWxlbnRfcGFnZSk7 CkBAIC0zNDgsNiArMzQ4LDExIEBAIHN0YXRpYyBpbnQgc25kX2VtdTEwazFfaW5pdChzdHJ1Y3Qg c25kX2VtdTEwazEgKmVtdSwgaW50IGVuYWJsZV9pciwgaW50IHJlc3VtZSkKIAkJb3V0bChyZWcg fCBBX0lPQ0ZHX0dQT1VUMCwgZW11LT5wb3J0ICsgQV9JT0NGRyk7CiAJfQogCisJaWYgKGVtdS0+ YWRkcmVzc19tb2RlID09IDApIHsKKwkJLyogdXNlIDE2TSBpbiA0RyAqLworCQlvdXRsKGlubChl bXUtPnBvcnQgKyBIQ0ZHKSB8IEhDRkdfRVhQQU5ERURfTUVNLCBlbXUtPnBvcnQgKyBIQ0ZHKTsK Kwl9CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTM5MCw3ICsxMzk1LDcgQEAgc3RhdGljIHN0cnVj dCBzbmRfZW11X2NoaXBfZGV0YWlscyBlbXVfY2hpcF9kZXRhaWxzW10gPSB7CiAJICoKIAkgKi8K IAl7LnZlbmRvciA9IDB4MTEwMiwgLmRldmljZSA9IDB4MDAwOCwgLnN1YnN5c3RlbSA9IDB4MjAw MTExMDIsCi0JIC5kcml2ZXIgPSAiQXVkaWd5MiIsIC5uYW1lID0gIlNCIEF1ZGlneSAyIFpTIE5v dGVib29rIFtTQjA1MzBdIiwKKwkgLmRyaXZlciA9ICJBdWRpZ3kyIiwgLm5hbWUgPSAiQXVkaWd5 IDIgWlMgTm90ZWJvb2sgW1NCMDUzMF0iLAogCSAuaWQgPSAiQXVkaWd5MiIsCiAJIC5lbXUxMGsy X2NoaXAgPSAxLAogCSAuY2EwMTA4X2NoaXAgPSAxLApAQCAtMTUyOCw3ICsxNTMzLDcgQEAgc3Rh dGljIHN0cnVjdCBzbmRfZW11X2NoaXBfZGV0YWlscyBlbXVfY2hpcF9kZXRhaWxzW10gPSB7CiAJ IC5hZGNfMTM2MXQgPSAxLCAgLyogMjQgYml0IGNhcHR1cmUgaW5zdGVhZCBvZiAxNmJpdCAqLwog CSAuYWM5N19jaGlwID0gMX0gLAogCXsudmVuZG9yID0gMHgxMTAyLCAuZGV2aWNlID0gMHgwMDA0 LCAuc3Vic3lzdGVtID0gMHgxMDA1MTEwMiwKLQkgLmRyaXZlciA9ICJBdWRpZ3kyIiwgLm5hbWUg PSAiU0IgQXVkaWd5IDIgUGxhdGludW0gRVggW1NCMDI4MF0iLAorCSAuZHJpdmVyID0gIkF1ZGln eTIiLCAubmFtZSA9ICJBdWRpZ3kgMiBQbGF0aW51bSBFWCBbU0IwMjgwXSIsCiAJIC5pZCA9ICJB dWRpZ3kyIiwKIAkgLmVtdTEwazJfY2hpcCA9IDEsCiAJIC5jYTAxMDJfY2hpcCA9IDEsCkBAIC0x ODMyLDggKzE4MzcsMTAgQEAgaW50IF9fZGV2aW5pdCBzbmRfZW11MTBrMV9jcmVhdGUoc3RydWN0 IHNuZF9jYXJkICpjYXJkLAogCiAJaXNfYXVkaWd5ID0gZW11LT5hdWRpZ3kgPSBjLT5lbXUxMGsy X2NoaXA7CiAKKwkvKiBzZXQgYWRkcmVzc2luZyBtb2RlICovCisJZW11LT5hZGRyZXNzX21vZGUg PSBpc19hdWRpZ3kgPyAwIDogMTsKIAkvKiBzZXQgdGhlIERNQSB0cmFuc2ZlciBtYXNrICovCi0J ZW11LT5kbWFfbWFzayA9IGlzX2F1ZGlneSA/IEFVRElHWV9ETUFfTUFTSyA6IEVNVTEwSzFfRE1B X01BU0s7CisJZW11LT5kbWFfbWFzayA9IGVtdS0+YWRkcmVzc19tb2RlID8gRU1VMTBLMV9ETUFf TUFTSyA6IEFVRElHWV9ETUFfTUFTSzsKIAlpZiAocGNpX3NldF9kbWFfbWFzayhwY2ksIGVtdS0+ ZG1hX21hc2spIDwgMCB8fAogCSAgICBwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2socGNpLCBl bXUtPmRtYV9tYXNrKSA8IDApIHsKIAkJc25kX3ByaW50ayhLRVJOX0VSUiAiYXJjaGl0ZWN0dXJl IGRvZXMgbm90IHN1cHBvcnQgUENJIGJ1c21hc3RlciBETUEgd2l0aCBtYXNrIDB4JWx4XG4iLCBl bXUtPmRtYV9tYXNrKTsKQEAgLTE4NTYsNyArMTg2Myw3IEBAIGludCBfX2RldmluaXQgc25kX2Vt dTEwazFfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKIAogCWVtdS0+bWF4X2NhY2hlX3Bh Z2VzID0gbWF4X2NhY2hlX2J5dGVzID4+IFBBR0VfU0hJRlQ7CiAJaWYgKHNuZF9kbWFfYWxsb2Nf cGFnZXMoU05EUlZfRE1BX1RZUEVfREVWLCBzbmRfZG1hX3BjaV9kYXRhKHBjaSksCi0JCQkJMzIg KiAxMDI0LCAmZW11LT5wdGJfcGFnZXMpIDwgMCkgeworCQkJCShlbXUtPmFkZHJlc3NfbW9kZSA/ IDMyIDogMTYpICogMTAyNCwgJmVtdS0+cHRiX3BhZ2VzKSA8IDApIHsKIAkJZXJyID0gLUVOT01F TTsKIAkJZ290byBlcnJvcjsKIAl9CkBAIC0xOTU1LDggKzE5NjIsOCBAQCBpbnQgX19kZXZpbml0 IHNuZF9lbXUxMGsxX2NyZWF0ZShzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCiAKIAkvKiBDbGVhciBz aWxlbnQgcGFnZXMgYW5kIHNldCB1cCBwb2ludGVycyAqLwogCW1lbXNldChlbXUtPnNpbGVudF9w YWdlLmFyZWEsIDAsIFBBR0VfU0laRSk7Ci0Jc2lsZW50X3BhZ2UgPSBlbXUtPnNpbGVudF9wYWdl LmFkZHIgPDwgMTsKLQlmb3IgKGlkeCA9IDA7IGlkeCA8IE1BWFBBR0VTOyBpZHgrKykKKwlzaWxl bnRfcGFnZSA9IGVtdS0+c2lsZW50X3BhZ2UuYWRkciA8PCBlbXUtPmFkZHJlc3NfbW9kZTsKKwlm b3IgKGlkeCA9IDA7IGlkeCA8IChlbXUtPmFkZHJlc3NfbW9kZSA/IE1BWFBBR0VTMSA6IE1BWFBB R0VTMCk7IGlkeCsrKQogCQkoKHUzMiAqKWVtdS0+cHRiX3BhZ2VzLmFyZWEpW2lkeF0gPSBjcHVf dG9fbGUzMihzaWxlbnRfcGFnZSB8IGlkeCk7CiAKIAkvKiBzZXQgdXAgdm9pY2UgaW5kaWNlcyAq LwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2VtdTEwazEvZW11cGNtLmMgYi9zb3VuZC9wY2kvZW11 MTBrMS9lbXVwY20uYwppbmRleCBlMjJiOGUyLi5jNjczZDJiIDEwMDY0NAotLS0gYS9zb3VuZC9w Y2kvZW11MTBrMS9lbXVwY20uYworKysgYi9zb3VuZC9wY2kvZW11MTBrMS9lbXVwY20uYwpAQCAt Mzc5LDcgKzM3OSw3IEBAIHN0YXRpYyB2b2lkIHNuZF9lbXUxMGsxX3BjbV9pbml0X3ZvaWNlKHN0 cnVjdCBzbmRfZW11MTBrMSAqZW11LAogCXNuZF9lbXUxMGsxX3B0cl93cml0ZShlbXUsIFoxLCB2 b2ljZSwgMCk7CiAJc25kX2VtdTEwazFfcHRyX3dyaXRlKGVtdSwgWjIsIHZvaWNlLCAwKTsKIAkv KiBpbnZhbGlkYXRlIG1hcHMgKi8KLQlzaWxlbnRfcGFnZSA9ICgodW5zaWduZWQgaW50KWVtdS0+ c2lsZW50X3BhZ2UuYWRkciA8PCAxKSB8IE1BUF9QVElfTUFTSzsKKwlzaWxlbnRfcGFnZSA9ICgo dW5zaWduZWQgaW50KWVtdS0+c2lsZW50X3BhZ2UuYWRkciA8PCBlbXUtPmFkZHJlc3NfbW9kZSkg fCAoZW11LT5hZGRyZXNzX21vZGUgPyBNQVBfUFRJX01BU0sxIDogTUFQX1BUSV9NQVNLMCk7CiAJ c25kX2VtdTEwazFfcHRyX3dyaXRlKGVtdSwgTUFQQSwgdm9pY2UsIHNpbGVudF9wYWdlKTsKIAlz bmRfZW11MTBrMV9wdHJfd3JpdGUoZW11LCBNQVBCLCB2b2ljZSwgc2lsZW50X3BhZ2UpOwogCS8q IG1vZHVsYXRpb24gZW52ZWxvcGUgKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9lbXUxMGsxL2Vt dXByb2MuYyBiL3NvdW5kL3BjaS9lbXUxMGsxL2VtdXByb2MuYwppbmRleCBiYzM4ZGQ0Li45YzQ5 OWU2IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvZW11MTBrMS9lbXVwcm9jLmMKKysrIGIvc291bmQv cGNpL2VtdTEwazEvZW11cHJvYy5jCkBAIC0yNDEsMzEgKzI0MSwyMiBAQCBzdGF0aWMgdm9pZCBz bmRfZW11MTBrMV9wcm9jX3NwZGlmX3JlYWQoc3RydWN0IHNuZF9pbmZvX2VudHJ5ICplbnRyeSwK IAlzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSA9IGVudHJ5LT5wcml2YXRlX2RhdGE7CiAJdTMyIHZh bHVlOwogCXUzMiB2YWx1ZTI7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgcmF0ZTsKIAog CWlmIChlbXUtPmNhcmRfY2FwYWJpbGl0aWVzLT5lbXVfbW9kZWwpIHsKLQkJc3Bpbl9sb2NrX2ly cXNhdmUoJmVtdS0+ZW11X2xvY2ssIGZsYWdzKTsKIAkJc25kX2VtdTEwMTBfZnBnYV9yZWFkKGVt dSwgMHgzOCwgJnZhbHVlKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW11LT5lbXVfbG9j aywgZmxhZ3MpOwogCQlpZiAoKHZhbHVlICYgMHgxKSA9PSAwKSB7Ci0JCQlzcGluX2xvY2tfaXJx c2F2ZSgmZW11LT5lbXVfbG9jaywgZmxhZ3MpOwogCQkJc25kX2VtdTEwMTBfZnBnYV9yZWFkKGVt dSwgMHgyYSwgJnZhbHVlKTsKIAkJCXNuZF9lbXUxMDEwX2ZwZ2FfcmVhZChlbXUsIDB4MmIsICZ2 YWx1ZTIpOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW11LT5lbXVfbG9jaywgZmxhZ3Mp OwogCQkJcmF0ZSA9IDB4MTc3MDAwMCAvICgoKHZhbHVlIDw8IDUpIHwgdmFsdWUyKSsxKTsJCiAJ CQlzbmRfaXByaW50ZihidWZmZXIsICJBREFUIExvY2tlZCA6ICV1XG4iLCByYXRlKTsKIAkJfSBl bHNlIHsKIAkJCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIkFEQVQgVW5sb2NrZWRcbiIpOwogCQl9Ci0J CXNwaW5fbG9ja19pcnFzYXZlKCZlbXUtPmVtdV9sb2NrLCBmbGFncyk7CiAJCXNuZF9lbXUxMDEw X2ZwZ2FfcmVhZChlbXUsIDB4MjAsICZ2YWx1ZSk7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmVtdS0+ZW11X2xvY2ssIGZsYWdzKTsKIAkJaWYgKCh2YWx1ZSAmIDB4NCkgPT0gMCkgewotCQkJ c3Bpbl9sb2NrX2lycXNhdmUoJmVtdS0+ZW11X2xvY2ssIGZsYWdzKTsKIAkJCXNuZF9lbXUxMDEw X2ZwZ2FfcmVhZChlbXUsIDB4MjgsICZ2YWx1ZSk7CiAJCQlzbmRfZW11MTAxMF9mcGdhX3JlYWQo ZW11LCAweDI5LCAmdmFsdWUyKTsKLQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVtdS0+ZW11 X2xvY2ssIGZsYWdzKTsKIAkJCXJhdGUgPSAweDE3NzAwMDAgLyAoKCh2YWx1ZSA8PCA1KSB8IHZh bHVlMikrMSk7CQogCQkJc25kX2lwcmludGYoYnVmZmVyLCAiU1BESUYgTG9ja2VkIDogJWRcbiIs IHJhdGUpOwogCQl9IGVsc2UgewpAQCAtNDEwLDE0ICs0MDEsMTEgQEAgc3RhdGljIHZvaWQgc25k X2VtdV9wcm9jX2VtdTEwMTBfcmVnX3JlYWQoc3RydWN0IHNuZF9pbmZvX2VudHJ5ICplbnRyeSwK IHsKIAlzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSA9IGVudHJ5LT5wcml2YXRlX2RhdGE7CiAJdTMy IHZhbHVlOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGk7CiAJc25kX2lwcmludGYoYnVm ZmVyLCAiRU1VMTAxMCBSZWdpc3RlcnM6XG5cbiIpOwogCiAJZm9yKGkgPSAwOyBpIDwgMHg0MDsg aSs9MSkgewotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZW11LT5lbXVfbG9jaywgZmxhZ3MpOwogCQlz bmRfZW11MTAxMF9mcGdhX3JlYWQoZW11LCBpLCAmdmFsdWUpOwotCQlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZlbXUtPmVtdV9sb2NrLCBmbGFncyk7CiAJCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiUw Mlg6ICUwOFgsICUwMlhcbiIsIGksIHZhbHVlLCAodmFsdWUgPj4gOCkgJiAweDdmKTsKIAl9CiB9 CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvZW11MTBrMS9tZW1vcnkuYyBiL3NvdW5kL3BjaS9lbXUx MGsxL21lbW9yeS5jCmluZGV4IDRmNTAyYTIuLjg3YjdjNjUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3Bj aS9lbXUxMGsxL21lbW9yeS5jCisrKyBiL3NvdW5kL3BjaS9lbXUxMGsxL21lbW9yeS5jCkBAIC0z NCwxMCArMzQsMTEgQEAKICAqIGFsaWduZWQgcGFnZXMgaW4gb3RoZXJzCiAgKi8KICNkZWZpbmUg X19zZXRfcHRiX2VudHJ5KGVtdSxwYWdlLGFkZHIpIFwKLQkoKCh1MzIgKikoZW11KS0+cHRiX3Bh Z2VzLmFyZWEpW3BhZ2VdID0gY3B1X3RvX2xlMzIoKChhZGRyKSA8PCAxKSB8IChwYWdlKSkpCisJ KCgodTMyICopKGVtdSktPnB0Yl9wYWdlcy5hcmVhKVtwYWdlXSA9IGNwdV90b19sZTMyKCgoYWRk cikgPDwgKGVtdS0+YWRkcmVzc19tb2RlKSkgfCAocGFnZSkpKQogCiAjZGVmaW5lIFVOSVRfUEFH RVMJCShQQUdFX1NJWkUgLyBFTVVQQUdFU0laRSkKLSNkZWZpbmUgTUFYX0FMSUdOX1BBR0VTCQko TUFYUEFHRVMgLyBVTklUX1BBR0VTKQorI2RlZmluZSBNQVhfQUxJR05fUEFHRVMwCQkoTUFYUEFH RVMwIC8gVU5JVF9QQUdFUykKKyNkZWZpbmUgTUFYX0FMSUdOX1BBR0VTMQkJKE1BWFBBR0VTMSAv IFVOSVRfUEFHRVMpCiAvKiBnZXQgYWxpZ25lZCBwYWdlIGZyb20gb2Zmc2V0IGFkZHJlc3MgKi8K ICNkZWZpbmUgZ2V0X2FsaWduZWRfcGFnZShvZmZzZXQpCSgob2Zmc2V0KSA+PiBQQUdFX1NISUZU KQogLyogZ2V0IG9mZnNldCBhZGRyZXNzIGZyb20gYWxpZ25lZCBwYWdlICovCkBAIC0xMjQsNyAr MTI1LDcgQEAgc3RhdGljIGludCBzZWFyY2hfZW1wdHlfbWFwX2FyZWEoc3RydWN0IHNuZF9lbXUx MGsxICplbXUsIGludCBucGFnZXMsIHN0cnVjdCBsaXMKIAkJfQogCQlwYWdlID0gYmxrLT5tYXBw ZWRfcGFnZSArIGJsay0+cGFnZXM7CiAJfQotCXNpemUgPSBNQVhfQUxJR05fUEFHRVMgLSBwYWdl OworCXNpemUgPSAoZW11LT5hZGRyZXNzX21vZGUgPyBNQVhfQUxJR05fUEFHRVMxIDogTUFYX0FM SUdOX1BBR0VTMCkgLSBwYWdlOwogCWlmIChzaXplID49IG1heF9zaXplKSB7CiAJCSpuZXh0cCA9 IHBvczsKIAkJcmV0dXJuIHBhZ2U7CkBAIC0xODEsNyArMTgyLDcgQEAgc3RhdGljIGludCB1bm1h cF9tZW1ibGsoc3RydWN0IHNuZF9lbXUxMGsxICplbXUsIHN0cnVjdCBzbmRfZW11MTBrMV9tZW1i bGsgKmJsaykKIAkJcSA9IGdldF9lbXUxMGsxX21lbWJsayhwLCBtYXBwZWRfbGluayk7CiAJCWVu ZF9wYWdlID0gcS0+bWFwcGVkX3BhZ2U7CiAJfSBlbHNlCi0JCWVuZF9wYWdlID0gTUFYX0FMSUdO X1BBR0VTOworCQllbmRfcGFnZSA9IChlbXUtPmFkZHJlc3NfbW9kZSA/IE1BWF9BTElHTl9QQUdF UzEgOiBNQVhfQUxJR05fUEFHRVMwKTsKIAogCS8qIHJlbW92ZSBsaW5rcyAqLwogCWxpc3RfZGVs KCZibGstPm1hcHBlZF9saW5rKTsKQEAgLTMwNSw3ICszMDYsNyBAQCBzbmRfZW11MTBrMV9hbGxv Y19wYWdlcyhzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSwgc3RydWN0IHNuZF9wY21fc3Vic3RyZWFt ICpzdWJzdAogCWlmIChzbmRfQlVHX09OKCFlbXUpKQogCQlyZXR1cm4gTlVMTDsKIAlpZiAoc25k X0JVR19PTihydW50aW1lLT5kbWFfYnl0ZXMgPD0gMCB8fAotCQkgICAgICAgcnVudGltZS0+ZG1h X2J5dGVzID49IE1BWFBBR0VTICogRU1VUEFHRVNJWkUpKQorCQkgICAgICAgcnVudGltZS0+ZG1h X2J5dGVzID49IChlbXUtPmFkZHJlc3NfbW9kZSA/IE1BWFBBR0VTMSA6IE1BWFBBR0VTMCkgKiBF TVVQQUdFU0laRSkpCiAJCXJldHVybiBOVUxMOwogCWhkciA9IGVtdS0+bWVtaGRyOwogCWlmIChz bmRfQlVHX09OKCFoZHIpKQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFu dC5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFudC5jCmluZGV4IDg0M2Q5ZjMuLjZhNTI0 ZmIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY29uZXhhbnQuYworKysgYi9zb3Vu ZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMKQEAgLTQ1OTgsNiArNDU5OCwxNCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGhkYV9jb2RlY19wcmVzZXQgc25kX2hkYV9wcmVzZXRfY29uZXhhbnRbXSA9 IHsKIAkgIC5wYXRjaCA9IHBhdGNoX2NvbmV4YW50X2F1dG8gfSwKIAl7IC5pZCA9IDB4MTRmMTUw YjksIC5uYW1lID0gIkNYMjA2NjUiLAogCSAgLnBhdGNoID0gcGF0Y2hfY29uZXhhbnRfYXV0byB9 LAorCXsgLmlkID0gMHgxNGYxNTBmMSwgLm5hbWUgPSAiQ1gyMDcyMSIsCisJICAucGF0Y2ggPSBw YXRjaF9jb25leGFudF9hdXRvIH0sCisJeyAuaWQgPSAweDE0ZjE1MGYyLCAubmFtZSA9ICJDWDIw NzIyIiwKKwkgIC5wYXRjaCA9IHBhdGNoX2NvbmV4YW50X2F1dG8gfSwKKwl7IC5pZCA9IDB4MTRm MTUwZjMsIC5uYW1lID0gIkNYMjA3MjMiLAorCSAgLnBhdGNoID0gcGF0Y2hfY29uZXhhbnRfYXV0 byB9LAorCXsgLmlkID0gMHgxNGYxNTBmNCwgLm5hbWUgPSAiQ1gyMDcyNCIsCisJICAucGF0Y2gg PSBwYXRjaF9jb25leGFudF9hdXRvIH0sCiAJeyAuaWQgPSAweDE0ZjE1MTBmLCAubmFtZSA9ICJD WDIwNzUxLzIiLAogCSAgLnBhdGNoID0gcGF0Y2hfY29uZXhhbnRfYXV0byB9LAogCXsgLmlkID0g MHgxNGYxNTExMCwgLm5hbWUgPSAiQ1gyMDc1MS8yIiwKQEAgLTQ2MzIsNiArNDY0MCwxMCBAQCBN T0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUwYWIiKTsKIE1PRFVMRV9BTElBUygi c25kLWhkYS1jb2RlYy1pZDoxNGYxNTBhYyIpOwogTU9EVUxFX0FMSUFTKCJzbmQtaGRhLWNvZGVj LWlkOjE0ZjE1MGI4Iik7CiBNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUwYjki KTsKK01PRFVMRV9BTElBUygic25kLWhkYS1jb2RlYy1pZDoxNGYxNTBmMSIpOworTU9EVUxFX0FM SUFTKCJzbmQtaGRhLWNvZGVjLWlkOjE0ZjE1MGYyIik7CitNT0RVTEVfQUxJQVMoInNuZC1oZGEt Y29kZWMtaWQ6MTRmMTUwZjMiKTsKK01PRFVMRV9BTElBUygic25kLWhkYS1jb2RlYy1pZDoxNGYx NTBmNCIpOwogTU9EVUxFX0FMSUFTKCJzbmQtaGRhLWNvZGVjLWlkOjE0ZjE1MTBmIik7CiBNT0RV TEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUxMTAiKTsKIE1PRFVMRV9BTElBUygic25k LWhkYS1jb2RlYy1pZDoxNGYxNTExMSIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9j czQyNzEuYyBiL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcxLmMKaW5kZXggNTYxZDVlMC4uZTk5YzEw YiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9jczQyNzEuYworKysgYi9zb3VuZC9zb2Mv Y29kZWNzL2NzNDI3MS5jCkBAIC00NzUsMTAgKzQ3NSwxMCBAQCBzdGF0aWMgaW50IGNzNDI3MV9w cm9iZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiAJaWYgKGdwaW9fbnJlc2V0ID49IDAp IHsKIAkJLyogUmVzZXQgY29kZWMgKi8KIAkJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KGdwaW9fbnJl c2V0LCAwKTsKLQkJdWRlbGF5KDEpOworCQltZGVsYXkoMSk7CiAJCWdwaW9fc2V0X3ZhbHVlKGdw aW9fbnJlc2V0LCAxKTsKIAkJLyogR2l2ZSB0aGUgY29kZWMgdGltZSB0byB3YWtlIHVwICovCi0J CXVkZWxheSgxKTsKKwkJbWRlbGF5KDEpOwogCX0KIAogCWNzNDI3MS0+Z3Bpb19ucmVzZXQgPSBn cGlvX25yZXNldDsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzQxLmMgYi9zb3Vu ZC9zb2MvY29kZWNzL3dtODc0MS5jCmluZGV4IDU3YWQyMmEuLjZhYjRmMjcgMTAwNjQ0Ci0tLSBh L3NvdW5kL3NvYy9jb2RlY3Mvd204NzQxLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg3NDEu YwpAQCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgewogfTsKIAogc3RhdGljIHVuc2ln bmVkIGludCByYXRlc18xMTI4OVtdID0gewotCTQ0MTAwLCA4ODIzNSwKKwk0NDEwMCwgODgyMDAs CiB9OwogCiBzdGF0aWMgc3RydWN0IHNuZF9wY21faHdfY29uc3RyYWludF9saXN0IGNvbnN0cmFp bnRzXzExMjg5ID0gewpAQCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9o d19jb25zdHJhaW50X2xpc3QgY29uc3RyYWludHNfMTYzODQgPSB7CiB9OwogCiBzdGF0aWMgdW5z aWduZWQgaW50IHJhdGVzXzE2OTM0W10gPSB7Ci0JNDQxMDAsIDg4MjM1LAorCTQ0MTAwLCA4ODIw MCwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9od19jb25zdHJhaW50X2xpc3QgY29uc3Ry YWludHNfMTY5MzQgPSB7CkBAIC0xNjIsNyArMTYyLDcgQEAgc3RhdGljIHN0cnVjdCBzbmRfcGNt X2h3X2NvbnN0cmFpbnRfbGlzdCBjb25zdHJhaW50c18xODQzMiA9IHsKIH07CiAKIHN0YXRpYyB1 bnNpZ25lZCBpbnQgcmF0ZXNfMjI1NzlbXSA9IHsKLQk0NDEwMCwgODgyMzUsIDE3NjQwMDAKKwk0 NDEwMCwgODgyMDAsIDE3NjQwMAogfTsKIAogc3RhdGljIHN0cnVjdCBzbmRfcGNtX2h3X2NvbnN0 cmFpbnRfbGlzdCBjb25zdHJhaW50c18yMjU3OSA9IHsKQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0 aWMgc3RydWN0IHNuZF9wY21faHdfY29uc3RyYWludF9saXN0IGNvbnN0cmFpbnRzXzI0NTc2ID0g ewogfTsKIAogc3RhdGljIHVuc2lnbmVkIGludCByYXRlc18zNjg2NFtdID0gewotCTQ4MDAwLCA5 NjAwMCwgMTkyMDAKKwk0ODAwMCwgOTYwMDAsIDE5MjAwMAogfTsKIAogc3RhdGljIHN0cnVjdCBz bmRfcGNtX2h3X2NvbnN0cmFpbnRfbGlzdCBjb25zdHJhaW50c18zNjg2NCA9IHsKZGlmZiAtLWdp dCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTYwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODk2MC5j CmluZGV4IGIyYWJlOTMuLjhkMjYxMDQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204 OTYwLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg5NjAuYwpAQCAtMzM2LDcgKzMzNiw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX3BhdGhzW10gPSB7 CiAJeyAiUmlnaHQgSW5wdXQgTWl4ZXIiLCAiQm9vc3QgU3dpdGNoIiwgIlJpZ2h0IEJvb3N0IE1p eGVyIiwgfSwKIAl7ICJSaWdodCBJbnB1dCBNaXhlciIsIE5VTEwsICJSSU5QVVQxIiwgfSwgIC8q IFJlYWxseSBCb29zdCBTd2l0Y2ggKi8KIAl7ICJSaWdodCBJbnB1dCBNaXhlciIsIE5VTEwsICJS SU5QVVQyIiB9LAotCXsgIlJpZ2h0IElucHV0IE1peGVyIiwgTlVMTCwgIkxJTlBVVDMiIH0sCisJ eyAiUmlnaHQgSW5wdXQgTWl4ZXIiLCBOVUxMLCAiUklOUFVUMyIgfSwKIAogCXsgIkxlZnQgQURD IiwgTlVMTCwgIkxlZnQgSW5wdXQgTWl4ZXIiIH0sCiAJeyAiUmlnaHQgQURDIiwgTlVMTCwgIlJp Z2h0IElucHV0IE1peGVyIiB9LApkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg5OTQu YyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTk0LmMKaW5kZXggYjczZjIyNi4uOWE1Njc5OCAxMDA2 NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg5OTQuYworKysgYi9zb3VuZC9zb2MvY29kZWNz L3dtODk5NC5jCkBAIC0yNDQ5LDcgKzI0NDksNyBAQCBzdGF0aWMgc3RydWN0IHsKIH07CiAKIHN0 YXRpYyBpbnQgZnNfcmF0aW9zW10gPSB7Ci0JNjQsIDEyOCwgMTkyLCAyNTYsIDM0OCwgNTEyLCA3 NjgsIDEwMjQsIDE0MDgsIDE1MzYKKwk2NCwgMTI4LCAxOTIsIDI1NiwgMzg0LCA1MTIsIDc2OCwg MTAyNCwgMTQwOCwgMTUzNgogfTsKIAogc3RhdGljIGludCBiY2xrX2RpdnNbXSA9IHsKZGlmZiAt LWdpdCBhL3NvdW5kL3NvYy9zb2MtZGFwbS5jIGIvc291bmQvc29jL3NvYy1kYXBtLmMKaW5kZXgg MWQ4M2E0MC4uM2RjMWI4YSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3NvYy1kYXBtLmMKKysrIGIv c291bmQvc29jL3NvYy1kYXBtLmMKQEAgLTI2NzUsMTIgKzI2NzUsMTggQEAgaW50IHNuZF9zb2Nf ZGFwbV9uZXdfY29udHJvbChzdHJ1Y3Qgc25kX3NvY19kYXBtX2NvbnRleHQgKmRhcG0sCiAJCWtm cmVlKHcpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0JaWYgKGRhcG0tPmNvZGVjICYmIGRhcG0t PmNvZGVjLT5uYW1lX3ByZWZpeCkKKwlpZiAoZGFwbS0+Y29kZWMgJiYgZGFwbS0+Y29kZWMtPm5h bWVfcHJlZml4KSB7CiAJCXNucHJpbnRmKHctPm5hbWUsIG5hbWVfbGVuLCAiJXMgJXMiLAogCQkJ ZGFwbS0+Y29kZWMtPm5hbWVfcHJlZml4LCB3aWRnZXQtPm5hbWUpOwotCWVsc2UKKwkJaWYgKHdp ZGdldC0+c25hbWUpCisJCQl3LT5zbmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiJXMgJXMi LAorCQkJCQkgICAgIGRhcG0tPmNvZGVjLT5uYW1lX3ByZWZpeCwKKwkJCQkJICAgICB3aWRnZXQt PnNuYW1lKTsKKwl9IGVsc2UgewogCQlzbnByaW50Zih3LT5uYW1lLCBuYW1lX2xlbiwgIiVzIiwg d2lkZ2V0LT5uYW1lKTsKLQorCQlpZiAod2lkZ2V0LT5zbmFtZSkKKwkJCXctPnNuYW1lID0ga2Fz cHJpbnRmKEdGUF9LRVJORUwsICIlcyIsIHdpZGdldC0+c25hbWUpOworCX0KIAlzd2l0Y2ggKHct PmlkKSB7CiAJY2FzZSBzbmRfc29jX2RhcG1fc3dpdGNoOgogCWNhc2Ugc25kX3NvY19kYXBtX21p eGVyOgpkaWZmIC0tZ2l0IGEvc291bmQvc3ludGgvZW11eC9lbXV4X29zcy5jIGIvc291bmQvc3lu dGgvZW11eC9lbXV4X29zcy5jCmluZGV4IDMxOTc1NGMuLmRhZjYxYWIgMTAwNjQ0Ci0tLSBhL3Nv dW5kL3N5bnRoL2VtdXgvZW11eF9vc3MuYworKysgYi9zb3VuZC9zeW50aC9lbXV4L2VtdXhfb3Nz LmMKQEAgLTExOCwxMiArMTE4LDggQEAgc25kX2VtdXhfb3Blbl9zZXFfb3NzKHN0cnVjdCBzbmRf c2VxX29zc19hcmcgKmFyZywgdm9pZCAqY2xvc3VyZSkKIAlpZiAoc25kX0JVR19PTighYXJnIHx8 ICFlbXUpKQogCQlyZXR1cm4gLUVOWElPOwogCi0JbXV0ZXhfbG9jaygmZW11LT5yZWdpc3Rlcl9t dXRleCk7Ci0KLQlpZiAoIXNuZF9lbXV4X2luY19jb3VudChlbXUpKSB7Ci0JCW11dGV4X3VubG9j aygmZW11LT5yZWdpc3Rlcl9tdXRleCk7CisJaWYgKCFzbmRfZW11eF9pbmNfY291bnQoZW11KSkK IAkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQogCiAJbWVtc2V0KCZjYWxsYmFjaywgMCwgc2l6ZW9mKGNh bGxiYWNrKSk7CiAJY2FsbGJhY2sub3duZXIgPSBUSElTX01PRFVMRTsKQEAgLTEzNSw3ICsxMzEs NiBAQCBzbmRfZW11eF9vcGVuX3NlcV9vc3Moc3RydWN0IHNuZF9zZXFfb3NzX2FyZyAqYXJnLCB2 b2lkICpjbG9zdXJlKQogCWlmIChwID09IE5VTEwpIHsKIAkJc25kX3ByaW50ayhLRVJOX0VSUiAi Y2FuJ3QgY3JlYXRlIHBvcnRcbiIpOwogCQlzbmRfZW11eF9kZWNfY291bnQoZW11KTsKLQkJbXV0 ZXhfdW5sb2NrKCZlbXUtPnJlZ2lzdGVyX211dGV4KTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQog CkBAIC0xNDgsOCArMTQzLDYgQEAgc25kX2VtdXhfb3Blbl9zZXFfb3NzKHN0cnVjdCBzbmRfc2Vx X29zc19hcmcgKmFyZywgdm9pZCAqY2xvc3VyZSkKIAlyZXNldF9wb3J0X21vZGUocCwgYXJnLT5z ZXFfbW9kZSk7CiAKIAlzbmRfZW11eF9yZXNldF9wb3J0KHApOwotCi0JbXV0ZXhfdW5sb2NrKCZl bXUtPnJlZ2lzdGVyX211dGV4KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTk1LDEzICsxODgsMTEg QEAgc25kX2VtdXhfY2xvc2Vfc2VxX29zcyhzdHJ1Y3Qgc25kX3NlcV9vc3NfYXJnICphcmcpCiAJ aWYgKHNuZF9CVUdfT04oIWVtdSkpCiAJCXJldHVybiAtRU5YSU87CiAKLQltdXRleF9sb2NrKCZl bXUtPnJlZ2lzdGVyX211dGV4KTsKIAlzbmRfZW11eF9zb3VuZHNfb2ZmX2FsbChwKTsKIAlzbmRf c291bmRmb250X2Nsb3NlX2NoZWNrKGVtdS0+c2ZsaXN0LCBTRl9DTElFTlRfTk8ocC0+Y2hzZXQu cG9ydCkpOwogCXNuZF9zZXFfZXZlbnRfcG9ydF9kZXRhY2gocC0+Y2hzZXQuY2xpZW50LCBwLT5j aHNldC5wb3J0KTsKIAlzbmRfZW11eF9kZWNfY291bnQoZW11KTsKIAotCW11dGV4X3VubG9jaygm ZW11LT5yZWdpc3Rlcl9tdXRleCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5k L3N5bnRoL2VtdXgvZW11eF9zZXEuYyBiL3NvdW5kL3N5bnRoL2VtdXgvZW11eF9zZXEuYwppbmRl eCA3Nzc4YjhlLi5hMDIwOTIwIDEwMDY0NAotLS0gYS9zb3VuZC9zeW50aC9lbXV4L2VtdXhfc2Vx LmMKKysrIGIvc291bmQvc3ludGgvZW11eC9lbXV4X3NlcS5jCkBAIC0xMjQsMTIgKzEyNCwxMCBA QCBzbmRfZW11eF9kZXRhY2hfc2VxKHN0cnVjdCBzbmRfZW11eCAqZW11KQogCWlmIChlbXUtPnZv aWNlcykKIAkJc25kX2VtdXhfdGVybWluYXRlX2FsbChlbXUpOwogCQkKLQltdXRleF9sb2NrKCZl bXUtPnJlZ2lzdGVyX211dGV4KTsKIAlpZiAoZW11LT5jbGllbnQgPj0gMCkgewogCQlzbmRfc2Vx X2RlbGV0ZV9rZXJuZWxfY2xpZW50KGVtdS0+Y2xpZW50KTsKIAkJZW11LT5jbGllbnQgPSAtMTsK IAl9Ci0JbXV0ZXhfdW5sb2NrKCZlbXUtPnJlZ2lzdGVyX211dGV4KTsKIH0KIAogCkBAIC0yNjks OCArMjY3LDggQEAgc25kX2VtdXhfZXZlbnRfaW5wdXQoc3RydWN0IHNuZF9zZXFfZXZlbnQgKmV2 LCBpbnQgZGlyZWN0LCB2b2lkICpwcml2YXRlX2RhdGEsCiAvKgogICogaW5jcmVtZW50IHVzYWdl IGNvdW50CiAgKi8KLWludAotc25kX2VtdXhfaW5jX2NvdW50KHN0cnVjdCBzbmRfZW11eCAqZW11 KQorc3RhdGljIGludAorX19zbmRfZW11eF9pbmNfY291bnQoc3RydWN0IHNuZF9lbXV4ICplbXUp CiB7CiAJZW11LT51c2VkKys7CiAJaWYgKCF0cnlfbW9kdWxlX2dldChlbXUtPm9wcy5vd25lcikp CkBAIC0yODQsMTIgKzI4MiwyMSBAQCBzbmRfZW11eF9pbmNfY291bnQoc3RydWN0IHNuZF9lbXV4 ICplbXUpCiAJcmV0dXJuIDE7CiB9CiAKK2ludCBzbmRfZW11eF9pbmNfY291bnQoc3RydWN0IHNu ZF9lbXV4ICplbXUpCit7CisJaW50IHJldDsKKworCW11dGV4X2xvY2soJmVtdS0+cmVnaXN0ZXJf bXV0ZXgpOworCXJldCA9IF9fc25kX2VtdXhfaW5jX2NvdW50KGVtdSk7CisJbXV0ZXhfdW5sb2Nr KCZlbXUtPnJlZ2lzdGVyX211dGV4KTsKKwlyZXR1cm4gcmV0OworfQogCiAvKgogICogZGVjcmVh c2UgdXNhZ2UgY291bnQKICAqLwotdm9pZAotc25kX2VtdXhfZGVjX2NvdW50KHN0cnVjdCBzbmRf ZW11eCAqZW11KQorc3RhdGljIHZvaWQKK19fc25kX2VtdXhfZGVjX2NvdW50KHN0cnVjdCBzbmRf ZW11eCAqZW11KQogewogCW1vZHVsZV9wdXQoZW11LT5jYXJkLT5tb2R1bGUpOwogCWVtdS0+dXNl ZC0tOwpAQCAtMjk4LDYgKzMwNSwxMiBAQCBzbmRfZW11eF9kZWNfY291bnQoc3RydWN0IHNuZF9l bXV4ICplbXUpCiAJbW9kdWxlX3B1dChlbXUtPm9wcy5vd25lcik7CiB9CiAKK3ZvaWQgc25kX2Vt dXhfZGVjX2NvdW50KHN0cnVjdCBzbmRfZW11eCAqZW11KQoreworCW11dGV4X2xvY2soJmVtdS0+ cmVnaXN0ZXJfbXV0ZXgpOworCV9fc25kX2VtdXhfZGVjX2NvdW50KGVtdSk7CisJbXV0ZXhfdW5s b2NrKCZlbXUtPnJlZ2lzdGVyX211dGV4KTsKK30KIAogLyoKICAqIFJvdXRpbmUgdGhhdCBpcyBj YWxsZWQgdXBvbiBhIGZpcnN0IHVzZSBvZiBhIHBhcnRpY3VsYXIgcG9ydApAQCAtMzE3LDcgKzMz MCw3IEBAIHNuZF9lbXV4X3VzZSh2b2lkICpwcml2YXRlX2RhdGEsIHN0cnVjdCBzbmRfc2VxX3Bv cnRfc3Vic2NyaWJlICppbmZvKQogCiAJbXV0ZXhfbG9jaygmZW11LT5yZWdpc3Rlcl9tdXRleCk7 CiAJc25kX2VtdXhfaW5pdF9wb3J0KHApOwotCXNuZF9lbXV4X2luY19jb3VudChlbXUpOworCV9f c25kX2VtdXhfaW5jX2NvdW50KGVtdSk7CiAJbXV0ZXhfdW5sb2NrKCZlbXUtPnJlZ2lzdGVyX211 dGV4KTsKIAlyZXR1cm4gMDsKIH0KQEAgLTM0MCw3ICszNTMsNyBAQCBzbmRfZW11eF91bnVzZSh2 b2lkICpwcml2YXRlX2RhdGEsIHN0cnVjdCBzbmRfc2VxX3BvcnRfc3Vic2NyaWJlICppbmZvKQog CiAJbXV0ZXhfbG9jaygmZW11LT5yZWdpc3Rlcl9tdXRleCk7CiAJc25kX2VtdXhfc291bmRzX29m Zl9hbGwocCk7Ci0Jc25kX2VtdXhfZGVjX2NvdW50KGVtdSk7CisJX19zbmRfZW11eF9kZWNfY291 bnQoZW11KTsKIAltdXRleF91bmxvY2soJmVtdS0+cmVnaXN0ZXJfbXV0ZXgpOwogCXJldHVybiAw OwogfQpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL21peGVyLmMgYi9zb3VuZC91c2IvbWl4ZXIuYwpp bmRleCA4ODE2MGI3Li40ODhlNTMxIDEwMDY0NAotLS0gYS9zb3VuZC91c2IvbWl4ZXIuYworKysg Yi9zb3VuZC91c2IvbWl4ZXIuYwpAQCAtODM4LDYgKzgzOCw4IEBAIHN0YXRpYyB2b2lkIHZvbHVt ZV9jb250cm9sX3F1aXJrcyhzdHJ1Y3QgdXNiX21peGVyX2VsZW1faW5mbyAqY3ZhbCwKIAljYXNl IFVTQl9JRCgweDA0NmQsIDB4MDgxYik6IC8qIEhEIFdlYmNhbSBjMzEwICovCiAJY2FzZSBVU0Jf SUQoMHgwNDZkLCAweDA4MWQpOiAvKiBIRCBXZWJjYW0gYzUxMCAqLwogCWNhc2UgVVNCX0lEKDB4 MDQ2ZCwgMHgwODI1KTogLyogSEQgV2ViY2FtIGMyNzAgKi8KKwljYXNlIFVTQl9JRCgweDA0NmQs IDB4MDgyNik6IC8qIEhEIFdlYmNhbSBjNTI1ICovCisJY2FzZSBVU0JfSUQoMHgwNDZkLCAweDA4 Y2EpOiAvKiBMb2dpdGVjaCBRdWlja2NhbSBGdXNpb24gKi8KIAljYXNlIFVTQl9JRCgweDA0NmQs IDB4MDk5MSk6CiAJLyogTW9zdCBhdWRpbyB1c2IgZGV2aWNlcyBsaWUgYWJvdXQgdm9sdW1lIHJl c29sdXRpb24uCiAJICogTW9zdCBMb2dpdGVjaCB3ZWJjYW1zIGhhdmUgcmVzID0gMzg0LgpAQCAt MTQyMywxMSArMTQyNSw2IEBAIHN0YXRpYyBpbnQgcGFyc2VfYXVkaW9fbWl4ZXJfdW5pdChzdHJ1 Y3QgbWl4ZXJfYnVpbGQgKnN0YXRlLCBpbnQgdW5pdGlkLCB2b2lkICpyCiAJCXNuZF9wcmludGso S0VSTl9FUlIgImludmFsaWQgTUlYRVIgVU5JVCBkZXNjcmlwdG9yICVkXG4iLCB1bml0aWQpOwog CQlyZXR1cm4gLUVJTlZBTDsKIAl9Ci0JLyogbm8gYm1Db250cm9scyBmaWVsZCAoZS5nLiBNYXlh NDQpIC0+IGlnbm9yZSAqLwotCWlmIChkZXNjLT5iTGVuZ3RoIDw9IDEwICsgaW5wdXRfcGlucykg ewotCQlzbmRfcHJpbnRkZChLRVJOX0lORk8gIk1VICVkIGhhcyBubyBibUNvbnRyb2xzIGZpZWxk XG4iLCB1bml0aWQpOwotCQlyZXR1cm4gMDsKLQl9CiAKIAludW1faW5zID0gMDsKIAlpY2ggPSAw OwpAQCAtMTQzNSw2ICsxNDMyLDkgQEAgc3RhdGljIGludCBwYXJzZV9hdWRpb19taXhlcl91bml0 KHN0cnVjdCBtaXhlcl9idWlsZCAqc3RhdGUsIGludCB1bml0aWQsIHZvaWQgKnIKIAkJZXJyID0g cGFyc2VfYXVkaW9fdW5pdChzdGF0ZSwgZGVzYy0+YmFTb3VyY2VJRFtwaW5dKTsKIAkJaWYgKGVy ciA8IDApCiAJCQlyZXR1cm4gZXJyOworCQkvKiBubyBibUNvbnRyb2xzIGZpZWxkIChlLmcuIE1h eWE0NCkgLT4gaWdub3JlICovCisJCWlmIChkZXNjLT5iTGVuZ3RoIDw9IDEwICsgaW5wdXRfcGlu cykKKwkJCWNvbnRpbnVlOwogCQllcnIgPSBjaGVja19pbnB1dF90ZXJtKHN0YXRlLCBkZXNjLT5i YVNvdXJjZUlEW3Bpbl0sICZpdGVybSk7CiAJCWlmIChlcnIgPCAwKQogCQkJcmV0dXJuIGVycjsK ZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9taXhlcl9tYXBzLmMgYi9zb3VuZC91c2IvbWl4ZXJfbWFw cy5jCmluZGV4IDFlMDc5OGYuLjg1MTc4NmYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9taXhlcl9t YXBzLmMKKysrIGIvc291bmQvdXNiL21peGVyX21hcHMuYwpAQCAtMzgwLDYgKzM4MCwxMSBAQCBz dGF0aWMgc3RydWN0IHVzYm1peF9jdGxfbWFwIHVzYm1peF9jdGxfbWFwc1tdID0gewogCQkuaWdu b3JlX2N0bF9lcnJvciA9IDEsCiAJfSwKIAl7CisJCS8qIE1BWUE0NCBVU0IrICovCisJCS5pZCA9 IFVTQl9JRCgweDI1NzMsIDB4MDAwOCksCisJCS5tYXAgPSBtYXlhNDRfbWFwLAorCX0sCisJewog CQkvKiBLRUYgWDMwMEEgKi8KIAkJLmlkID0gVVNCX0lEKDB4MjdhYywgMHgxMDAwKSwKIAkJLm1h cCA9IHNjbXNfdXNiMzMxOF9tYXAsCm== --=-97LK3R2aAPHGT4N+UsR+-- --=-kMK4fgGf6YA1fvy6iyFp Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVb1p5ee/yOyVhhEJAQpyyQ//Q0XSmzxbTH6eF16QrfQzaP3CI3qCtJY7 ZiqnGjudbkJNf9Hvn95NtlugnU9QcC/KOYhyQN+qObltNLNrdlRCSDyA/XpjhXKd IM1njddtBWuNUua/J1HT7JGhOwVi5JrbGmp0BZL2zXFjQLyBjnlGh/onLGIvYNBc dOKzkKyaYJFbU1Lg7+1Uim7pmGSdS9nnZKiVLv11sNDcueBu6Z+4ntEIhxbfEqS3 JPRvD1VnCc5THqNbaazXaHEiS/X8Y76M+clwAkNEaribgz8+TpsQWehck219+IOL KpdSChTvQQ0PZ0ZhGmJXwnZZuPoJ01VcX6ESPUTgYvRJ/fLjbBbO9jYyUa9VUtqd TQ26540DXFbREB+jF54DmMb2W7Gh+0iZ6x+oVb3kAE+9R+Xg+sO8sZp9TF/qMjSR 0tTsrY3DC4uH8+rfBTXlvuyzb8JvfoKP+X9FWKeo7sIfbVrnFM23pKcdz9QjJSrK 9G4SrRxKQkDFxdMSkAR4pQGoYpKNr117CUY1qDFsEFofQl9stOMSplutxiJhr+IW mmeiob3MPD81F55wIHJAmeFeWG2x/rqYzk93vSlJb9mHKyPYAvCer0L2jkvapbpo tJPunKVEL/IwGvbtNzZTU/qlwq5VtflpBBrPmMAamu5ix+aZT45UGlHbpUjW7HGP W7dahpWR4HY= =jdcU -----END PGP SIGNATURE----- --=-kMK4fgGf6YA1fvy6iyFp--