From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753553AbcARDqV (ORCPT ); Sun, 17 Jan 2016 22:46:21 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:59672 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752746AbcARDqO (ORCPT ); Sun, 17 Jan 2016 22:46:14 -0500 Message-ID: <1453088757.2519.101.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 00/70] 3.2.76-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: Mon, 18 Jan 2016 03:45:57 +0000 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-XaoHpq7vpd9dEag+i3sm" X-Mailer: Evolution 3.18.3-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.247 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 --=-XaoHpq7vpd9dEag+i3sm Content-Type: multipart/mixed; boundary="=-4j96dx6Sg/c624YP/M0/" --=-4j96dx6Sg/c624YP/M0/ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.76-rc1 relative to 3.2.75. Ben. --=20 Ben Hutchings A free society is one where it is safe to be unpopular. - Adlai Stevenson --=-4j96dx6Sg/c624YP/M0/ Content-Disposition: attachment; filename="linux-3.2.76-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.76-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2J1c3Nlcy9pMmMtaTgwMSBiL0RvY3VtZW50 YXRpb24vaTJjL2J1c3Nlcy9pMmMtaTgwMQppbmRleCA5OWQ0ZTQ0Li40MzQxZDg3IDEwMDY0NAot LS0gYS9Eb2N1bWVudGF0aW9uL2kyYy9idXNzZXMvaTJjLWk4MDEKKysrIGIvRG9jdW1lbnRhdGlv bi9pMmMvYnVzc2VzL2kyYy1pODAxCkBAIC0yMiw2ICsyMiwxNyBAQCBTdXBwb3J0ZWQgYWRhcHRl cnM6CiAgICogSW50ZWwgUGFudGhlciBQb2ludCAoUENIKQogICAqIEludGVsIEx5bnggUG9pbnQg KFBDSCkKICAgKiBJbnRlbCBMeW54IFBvaW50LUxQIChQQ0gpCisgICogSW50ZWwgQXZvdG9uIChT T0MpCisgICogSW50ZWwgV2VsbHNidXJnIChQQ0gpCisgICogSW50ZWwgQ29sZXRvIENyZWVrIChQ Q0gpCisgICogSW50ZWwgV2lsZGNhdCBQb2ludCAoUENIKQorICAqIEludGVsIFdpbGRjYXQgUG9p bnQtTFAgKFBDSCkKKyAgKiBJbnRlbCBCYXlUcmFpbCAoU09DKQorICAqIEludGVsIFN1bnJpc2Ug UG9pbnQtSCAoUENIKQorICAqIEludGVsIFN1bnJpc2UgUG9pbnQtTFAgKFBDSCkKKyAgKiBJbnRl bCBETlYgKFNPQykKKyAgKiBJbnRlbCBCcm94dG9uIChTT0MpCisgICogSW50ZWwgTGV3aXNidXJn IChQQ0gpCiAgICBEYXRhc2hlZXRzOiBQdWJsaWNseSBhdmFpbGFibGUgYXQgdGhlIEludGVsIHdl YnNpdGUKIAogT24gSW50ZWwgUGF0c2J1cmcgYW5kIGxhdGVyIGNoaXBzZXRzLCBib3RoIHRoZSBu b3JtYWwgaG9zdCBTTUJ1cyBjb250cm9sbGVyCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2Vm aWxlCmluZGV4IDFmYmI2ZjQuLmYwMzI4NTQgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01h a2VmaWxlCkBAIC0xLDcgKzEsNyBAQAogVkVSU0lPTiA9IDMKIFBBVENITEVWRUwgPSAyCi1TVUJM RVZFTCA9IDc1Ci1FWFRSQVZFUlNJT04gPQorU1VCTEVWRUwgPSA3NgorRVhUUkFWRVJTSU9OID0g LXJjMQogTkFNRSA9IFNhYmVyLXRvb3RoZWQgU3F1aXJyZWwKIAogIyAqRE9DVU1FTlRBVElPTioK ZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvc2NhbGwzMi1vMzIuUyBiL2FyY2gvbWlwcy9r ZXJuZWwvc2NhbGwzMi1vMzIuUwppbmRleCAxZDM5YmVhLi41MzJhMzMwIDEwMDY0NAotLS0gYS9h cmNoL21pcHMva2VybmVsL3NjYWxsMzItbzMyLlMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9zY2Fs bDMyLW8zMi5TCkBAIC0xOTIsNiArMTkyLDcgQEAgaWxsZWdhbF9zeXNjYWxsOgogCXNsbAl0MSwg dDAsIDMKIAliZXF6CXYwLCBlaW52YWwKIAlsdwl0Miwgc3lzX2NhbGxfdGFibGUodDEpCQkjIHN5 c2NhbGwgcm91dGluZQorCXN3CWEwLCBQVF9SMihzcCkJCQkjIGNhbGwgcm91dGluZSBkaXJlY3Rs eSBvbiByZXN0YXJ0CiAKIAkvKiBTb21lIHN5c2NhbGxzIGxpa2UgZXhlY3ZlIGdldCB0aGVpciBh cmd1bWVudHMgZnJvbSBzdHJ1Y3QgcHRfcmVncwogCSAgIGFuZCBjbGFpbSB6ZXJvIGFyZ3VtZW50 cyBpbiB0aGUgc3lzY2FsbCB0YWJsZS4gVGh1cyB3ZSBoYXZlIHRvCmRpZmYgLS1naXQgYS9hcmNo L21pcHMva2VybmVsL3NjYWxsNjQtbzMyLlMgYi9hcmNoL21pcHMva2VybmVsL3NjYWxsNjQtbzMy LlMKaW5kZXggYTU2MTc1Yi4uNjY1MTc1OSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9z Y2FsbDY0LW8zMi5TCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvc2NhbGw2NC1vMzIuUwpAQCAtMTgw LDYgKzE4MCw3IEBAIExFQUYoc3lzMzJfc3lzY2FsbCkKIAlkc2xsCXQxLCB0MCwgMwogCWJlcXoJ djAsIGVpbnZhbAogCWxkCXQyLCBzeXNfY2FsbF90YWJsZSh0MSkJCSMgc3lzY2FsbCByb3V0aW5l CisJc2QJYTAsIFBUX1IyKHNwKQkJIyBjYWxsIHJvdXRpbmUgZGlyZWN0bHkgb24gcmVzdGFydAog CiAJbW92ZQlhMCwgYTEJCQkjIHNoaWZ0IGFyZ3VtZW50IHJlZ2lzdGVycwogCW1vdmUJYTEsIGEy CmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsLmMgYi9hcmNoL3BhcmlzYy9r ZXJuZWwvc2lnbmFsLmMKaW5kZXggMTJjMWVkMy4uZjdjODM1MiAxMDA2NDQKLS0tIGEvYXJjaC9w YXJpc2Mva2VybmVsL3NpZ25hbC5jCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9zaWduYWwuYwpA QCAtNDY4LDYgKzQ2OCw1NSBAQCBoYW5kbGVfc2lnbmFsKHVuc2lnbmVkIGxvbmcgc2lnLCBzaWdp bmZvX3QgKmluZm8sIHN0cnVjdCBrX3NpZ2FjdGlvbiAqa2EsCiAJcmV0dXJuIDE7CiB9CiAKKy8q CisgKiBDaGVjayBob3cgdGhlIHN5c2NhbGwgbnVtYmVyIGdldHMgbG9hZGVkIGludG8gJXIyMCB3 aXRoaW4KKyAqIHRoZSBkZWxheSBicmFuY2ggaW4gdXNlcnNwYWNlIGFuZCBhZGp1c3QgYXMgbmVl ZGVkLgorICovCisKK3N0YXRpYyB2b2lkIGNoZWNrX3N5c2NhbGxub19pbl9kZWxheV9icmFuY2go c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJdTMyIG9wY29kZSwgc291cmNlX3JlZzsKKwl1MzIg X191c2VyICp1YWRkcjsKKwlpbnQgZXJyOworCisJLyogVXN1YWxseSB3ZSBkb24ndCBoYXZlIHRv IHJlc3RvcmUgJXIyMCAodGhlIHN5c3RlbSBjYWxsIG51bWJlcikKKwkgKiBiZWNhdXNlIGl0IGdl dHMgbG9hZGVkIGluIHRoZSBkZWxheSBzbG90IG9mIHRoZSBicmFuY2ggZXh0ZXJuYWwKKwkgKiBp bnN0cnVjdGlvbiB2aWEgdGhlIGxkaSBpbnN0cnVjdGlvbi4KKwkgKiBJbiBzb21lIGNhc2VzIGEg cmVnaXN0ZXItdG8tcmVnaXN0ZXIgY29weSBpbnN0cnVjdGlvbiBtaWdodCBoYXZlCisJICogYmVl biB1c2VkIGluc3RlYWQsIGluIHdoaWNoIGNhc2Ugd2UgbmVlZCB0byBjb3B5IHRoZSBzeXNjYWxs CisJICogbnVtYmVyIGludG8gdGhlIHNvdXJjZSByZWdpc3RlciBiZWZvcmUgcmV0dXJuaW5nIHRv IHVzZXJzcGFjZS4KKwkgKi8KKworCS8qIEEgc3lzY2FsbCBpcyBqdXN0IGEgYnJhbmNoLCBzbyBh bGwgd2UgaGF2ZSB0byBkbyBpcyBmaWRkbGUgdGhlCisJICogcmV0dXJuIHBvaW50ZXIgc28gdGhh dCB0aGUgYmxlIGluc3RydWN0aW9uIGdldHMgZXhlY3V0ZWQgYWdhaW4uCisJICovCisJcmVncy0+ Z3JbMzFdIC09IDg7IC8qIGRlbGF5ZWQgYnJhbmNoaW5nICovCisKKwkvKiBHZXQgYXNzZW1ibGVy IG9wY29kZSBvZiBjb2RlIGluIGRlbGF5IGJyYW5jaCAqLworCXVhZGRyID0gKHVuc2lnbmVkIGlu dCAqKSAoKHJlZ3MtPmdyWzMxXSAmIH4zKSArIDQpOworCWVyciA9IGdldF91c2VyKG9wY29kZSwg dWFkZHIpOworCWlmIChlcnIpCisJCXJldHVybjsKKworCS8qIENoZWNrIGlmIGRlbGF5IGJyYW5j aCB1c2VzICJsZGkgaW50LCVyMjAiICovCisJaWYgKChvcGNvZGUgJiAweGZmZmYwMDAwKSA9PSAw eDM0MTQwMDAwKQorCQlyZXR1cm47CS8qIGV2ZXJ5dGhpbmcgb2ssIGp1c3QgcmV0dXJuICovCisK KwkvKiBDaGVjayBpZiBkZWxheSBicmFuY2ggdXNlcyAibm9wIiAqLworCWlmIChvcGNvZGUgPT0g SU5TTl9OT1ApCisJCXJldHVybjsKKworCS8qIENoZWNrIGlmIGRlbGF5IGJyYW5jaCB1c2VzICJj b3B5ICVyWCwlcjIwIiAqLworCWlmICgob3Bjb2RlICYgMHhmZmUwZmZmZikgPT0gMHgwODAwMDI1 NCkgeworCQlzb3VyY2VfcmVnID0gKG9wY29kZSA+PiAxNikgJiAzMTsKKwkJcmVncy0+Z3Jbc291 cmNlX3JlZ10gPSByZWdzLT5nclsyMF07CisJCXJldHVybjsKKwl9CisKKwlwcl93YXJuKCJzeXNj YWxsIHJlc3RhcnQ6ICVzIChwaWQgJWQpOiB1bmV4cGVjdGVkIG9wY29kZSAweCUwOHhcbiIsCisJ CWN1cnJlbnQtPmNvbW0sIHRhc2tfcGlkX25yKGN1cnJlbnQpLCBvcGNvZGUpOworfQorCiBzdGF0 aWMgaW5saW5lIHZvaWQKIHN5c2NhbGxfcmVzdGFydChzdHJ1Y3QgcHRfcmVncyAqcmVncywgc3Ry dWN0IGtfc2lnYWN0aW9uICprYSkKIHsKQEAgLTQ4OSwxMCArNTM4LDcgQEAgc3lzY2FsbF9yZXN0 YXJ0KHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3Qga19zaWdhY3Rpb24gKmthKQogCQl9CiAJ CS8qIGZhbGx0aHJvdWdoICovCiAJY2FzZSAtRVJFU1RBUlROT0lOVFI6Ci0JCS8qIEEgc3lzY2Fs bCBpcyBqdXN0IGEgYnJhbmNoLCBzbyBhbGwKLQkJICogd2UgaGF2ZSB0byBkbyBpcyBmaWRkbGUg dGhlIHJldHVybiBwb2ludGVyLgotCQkgKi8KLQkJcmVncy0+Z3JbMzFdIC09IDg7IC8qIGRlbGF5 ZWQgYnJhbmNoaW5nICovCisJCWNoZWNrX3N5c2NhbGxub19pbl9kZWxheV9icmFuY2gocmVncyk7 CiAJCS8qIFByZXNlcnZlIG9yaWdpbmFsIHIyOC4gKi8KIAkJcmVncy0+Z3JbMjhdID0gcmVncy0+ b3JpZ19yMjg7CiAJCWJyZWFrOwpAQCAtNTQzLDE4ICs1ODksMTIgQEAgaW5zZXJ0X3Jlc3RhcnRf dHJhbXBvbGluZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAl9CiAJY2FzZSAtRVJFU1RBUlROT0hB TkQ6CiAJY2FzZSAtRVJFU1RBUlRTWVM6Ci0JY2FzZSAtRVJFU1RBUlROT0lOVFI6IHsKLQkJLyog SG9vcmF5IGZvciBkZWxheWVkIGJyYW5jaGluZy4gIFdlIGRvbid0Ci0JCSAqIGhhdmUgdG8gcmVz dG9yZSAlcjIwICh0aGUgc3lzdGVtIGNhbGwKLQkJICogbnVtYmVyKSBiZWNhdXNlIGl0IGdldHMg bG9hZGVkIGluIHRoZSBkZWxheQotCQkgKiBzbG90IG9mIHRoZSBicmFuY2ggZXh0ZXJuYWwgaW5z dHJ1Y3Rpb24uCi0JCSAqLwotCQlyZWdzLT5nclszMV0gLT0gODsKKwljYXNlIC1FUkVTVEFSVE5P SU5UUjoKKwkJY2hlY2tfc3lzY2FsbG5vX2luX2RlbGF5X2JyYW5jaChyZWdzKTsKIAkJLyogUHJl c2VydmUgb3JpZ2luYWwgcjI4LiAqLwogCQlyZWdzLT5nclsyOF0gPSByZWdzLT5vcmlnX3IyODsK IAogCQlyZXR1cm47Ci0JfQogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL2Fy Y2gvczM5MC9rZXJuZWwvZGlzLmMgYi9hcmNoL3MzOTAva2VybmVsL2Rpcy5jCmluZGV4IDQ1ZGY2 ZDQuLjg0N2VhMTUgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvZGlzLmMKKysrIGIvYXJj aC9zMzkwL2tlcm5lbC9kaXMuYwpAQCAtMTUwMywxNCArMTUwMywyMSBAQCBzdGF0aWMgaW50IHBy aW50X2luc24oY2hhciAqYnVmZmVyLCB1bnNpZ25lZCBjaGFyICpjb2RlLCB1bnNpZ25lZCBsb25n IGFkZHIpCiAJCQl9CiAJCQlpZiAoc2VwYXJhdG9yKQogCQkJCXB0ciArPSBzcHJpbnRmKHB0ciwg IiVjIiwgc2VwYXJhdG9yKTsKKwkJCS8qCisJCQkgKiBVc2UgZm91ciAnJScgY2hhcmFjdGVycyBi ZWxvdyBiZWNhdXNlIG9mIHRoZQorCQkJICogZm9sbG93aW5nIHR3byBjb252ZXJzaW9uczoKKwkJ CSAqCisJCQkgKiAgMSkgc3ByaW50ZjogJSUlJXIgLT4gJSVyCisJCQkgKiAgMikgcHJpbnRrIDog JSVyICAgLT4gJXIKKwkJCSAqLwogCQkJaWYgKG9wZXJhbmQtPmZsYWdzICYgT1BFUkFORF9HUFIp Ci0JCQkJcHRyICs9IHNwcmludGYocHRyLCAiJSVyJWkiLCB2YWx1ZSk7CisJCQkJcHRyICs9IHNw cmludGYocHRyLCAiJSUlJXIlaSIsIHZhbHVlKTsKIAkJCWVsc2UgaWYgKG9wZXJhbmQtPmZsYWdz ICYgT1BFUkFORF9GUFIpCi0JCQkJcHRyICs9IHNwcmludGYocHRyLCAiJSVmJWkiLCB2YWx1ZSk7 CisJCQkJcHRyICs9IHNwcmludGYocHRyLCAiJSUlJWYlaSIsIHZhbHVlKTsKIAkJCWVsc2UgaWYg KG9wZXJhbmQtPmZsYWdzICYgT1BFUkFORF9BUikKLQkJCQlwdHIgKz0gc3ByaW50ZihwdHIsICIl JWElaSIsIHZhbHVlKTsKKwkJCQlwdHIgKz0gc3ByaW50ZihwdHIsICIlJSUlYSVpIiwgdmFsdWUp OwogCQkJZWxzZSBpZiAob3BlcmFuZC0+ZmxhZ3MgJiBPUEVSQU5EX0NSKQotCQkJCXB0ciArPSBz cHJpbnRmKHB0ciwgIiUlYyVpIiwgdmFsdWUpOworCQkJCXB0ciArPSBzcHJpbnRmKHB0ciwgIiUl JSVjJWkiLCB2YWx1ZSk7CiAJCQllbHNlIGlmIChvcGVyYW5kLT5mbGFncyAmIE9QRVJBTkRfUENS RUwpCiAJCQkJcHRyICs9IHNwcmludGYocHRyLCAiJWx4IiwgKHNpZ25lZCBpbnQpIHZhbHVlCiAJ CQkJCQkJCSAgICAgICsgYWRkcik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vaTgyNTQuYyBi L2FyY2gveDg2L2t2bS9pODI1NC5jCmluZGV4IGFiOThmZTUuLmFhMjFhYTEgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L2t2bS9pODI1NC5jCisrKyBiL2FyY2gveDg2L2t2bS9pODI1NC5jCkBAIC00Mzcs NiArNDM3LDcgQEAgdm9pZCBrdm1fcGl0X2xvYWRfY291bnQoc3RydWN0IGt2bSAqa3ZtLCBpbnQg Y2hhbm5lbCwgdTMyIHZhbCwgaW50IGhwZXRfbGVnYWN5X3MKIAl1OCBzYXZlZF9tb2RlOwogCWlm IChocGV0X2xlZ2FjeV9zdGFydCkgewogCQkvKiBzYXZlIGV4aXN0aW5nIG1vZGUgZm9yIGxhdGVy IHJlZW5hYmxlbWVudCAqLworCQlXQVJOX09OKGNoYW5uZWwgIT0gMCk7CiAJCXNhdmVkX21vZGUg PSBrdm0tPmFyY2gudnBpdC0+cGl0X3N0YXRlLmNoYW5uZWxzWzBdLm1vZGU7CiAJCWt2bS0+YXJj aC52cGl0LT5waXRfc3RhdGUuY2hhbm5lbHNbMF0ubW9kZSA9IDB4ZmY7IC8qIGRpc2FibGUgdGlt ZXIgKi8KIAkJcGl0X2xvYWRfY291bnQoa3ZtLCBjaGFubmVsLCB2YWwpOwpkaWZmIC0tZ2l0IGEv YXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IDBlMzI4OWIuLjgw YzZkNjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYworKysgYi9hcmNoL3g4Ni9rdm0v eDg2LmMKQEAgLTM0MzQsMTAgKzM0MzQsMTEgQEAgc3RhdGljIGludCBrdm1fdm1faW9jdGxfZ2V0 X3BpdChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fcGl0X3N0YXRlICpwcykKIHN0YXRpYyBp bnQga3ZtX3ZtX2lvY3RsX3NldF9waXQoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX3BpdF9z dGF0ZSAqcHMpCiB7CiAJaW50IHIgPSAwOwotCisJaW50IGk7CiAJbXV0ZXhfbG9jaygma3ZtLT5h cmNoLnZwaXQtPnBpdF9zdGF0ZS5sb2NrKTsKIAltZW1jcHkoJmt2bS0+YXJjaC52cGl0LT5waXRf c3RhdGUsIHBzLCBzaXplb2Yoc3RydWN0IGt2bV9waXRfc3RhdGUpKTsKLQlrdm1fcGl0X2xvYWRf Y291bnQoa3ZtLCAwLCBwcy0+Y2hhbm5lbHNbMF0uY291bnQsIDApOworCWZvciAoaSA9IDA7IGkg PCAzOyBpKyspCisJCWt2bV9waXRfbG9hZF9jb3VudChrdm0sIGksIHBzLT5jaGFubmVsc1tpXS5j b3VudCwgMCk7CiAJbXV0ZXhfdW5sb2NrKCZrdm0tPmFyY2gudnBpdC0+cGl0X3N0YXRlLmxvY2sp OwogCXJldHVybiByOwogfQpAQCAtMzQ1OCw2ICszNDU5LDcgQEAgc3RhdGljIGludCBrdm1fdm1f aW9jdGxfZ2V0X3BpdDIoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX3BpdF9zdGF0ZTIgKnBz KQogc3RhdGljIGludCBrdm1fdm1faW9jdGxfc2V0X3BpdDIoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1 Y3Qga3ZtX3BpdF9zdGF0ZTIgKnBzKQogewogCWludCByID0gMCwgc3RhcnQgPSAwOworCWludCBp OwogCXUzMiBwcmV2X2xlZ2FjeSwgY3VyX2xlZ2FjeTsKIAltdXRleF9sb2NrKCZrdm0tPmFyY2gu dnBpdC0+cGl0X3N0YXRlLmxvY2spOwogCXByZXZfbGVnYWN5ID0ga3ZtLT5hcmNoLnZwaXQtPnBp dF9zdGF0ZS5mbGFncyAmIEtWTV9QSVRfRkxBR1NfSFBFVF9MRUdBQ1k7CkBAIC0zNDY3LDcgKzM0 NjksOSBAQCBzdGF0aWMgaW50IGt2bV92bV9pb2N0bF9zZXRfcGl0MihzdHJ1Y3Qga3ZtICprdm0s IHN0cnVjdCBrdm1fcGl0X3N0YXRlMiAqcHMpCiAJbWVtY3B5KCZrdm0tPmFyY2gudnBpdC0+cGl0 X3N0YXRlLmNoYW5uZWxzLCAmcHMtPmNoYW5uZWxzLAogCSAgICAgICBzaXplb2Yoa3ZtLT5hcmNo LnZwaXQtPnBpdF9zdGF0ZS5jaGFubmVscykpOwogCWt2bS0+YXJjaC52cGl0LT5waXRfc3RhdGUu ZmxhZ3MgPSBwcy0+ZmxhZ3M7Ci0Ja3ZtX3BpdF9sb2FkX2NvdW50KGt2bSwgMCwga3ZtLT5hcmNo LnZwaXQtPnBpdF9zdGF0ZS5jaGFubmVsc1swXS5jb3VudCwgc3RhcnQpOworCWZvciAoaSA9IDA7 IGkgPCAzOyBpKyspCisJCWt2bV9waXRfbG9hZF9jb3VudChrdm0sIGksIGt2bS0+YXJjaC52cGl0 LT5waXRfc3RhdGUuY2hhbm5lbHNbaV0uY291bnQsCisJCQkJICAgc3RhcnQgJiYgaSA9PSAwKTsK IAltdXRleF91bmxvY2soJmt2bS0+YXJjaC52cGl0LT5waXRfc3RhdGUubG9jayk7CiAJcmV0dXJu IHI7CiB9CmRpZmYgLS1naXQgYS9jcnlwdG8vYWJsa2NpcGhlci5jIGIvY3J5cHRvL2FibGtjaXBo ZXIuYwppbmRleCBkNTNhMzBiLi42ZWI2ZWIxIDEwMDY0NAotLS0gYS9jcnlwdG8vYWJsa2NpcGhl ci5jCisrKyBiL2NyeXB0by9hYmxrY2lwaGVyLmMKQEAgLTI4MCwxMiArMjgwLDEyIEBAIHN0YXRp YyBpbnQgYWJsa2NpcGhlcl93YWxrX2ZpcnN0KHN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKnJl cSwKIAlpZiAoV0FSTl9PTl9PTkNFKGluX2lycSgpKSkKIAkJcmV0dXJuIC1FREVBRExLOwogCisJ d2Fsay0+aXYgPSByZXEtPmluZm87CiAJd2Fsay0+bmJ5dGVzID0gd2Fsay0+dG90YWw7CiAJaWYg KHVubGlrZWx5KCF3YWxrLT50b3RhbCkpCiAJCXJldHVybiAwOwogCiAJd2Fsay0+aXZfYnVmZmVy ID0gTlVMTDsKLQl3YWxrLT5pdiA9IHJlcS0+aW5mbzsKIAlpZiAodW5saWtlbHkoKCh1bnNpZ25l ZCBsb25nKXdhbGstPml2ICYgYWxpZ25tYXNrKSkpIHsKIAkJaW50IGVyciA9IGFibGtjaXBoZXJf Y29weV9pdih3YWxrLCB0Zm0sIGFsaWdubWFzayk7CiAJCWlmIChlcnIpCmRpZmYgLS1naXQgYS9j cnlwdG8vYmxrY2lwaGVyLmMgYi9jcnlwdG8vYmxrY2lwaGVyLmMKaW5kZXggMDRmMGYzOC4uMzA0 MTUwNCAxMDA2NDQKLS0tIGEvY3J5cHRvL2Jsa2NpcGhlci5jCisrKyBiL2NyeXB0by9ibGtjaXBo ZXIuYwpAQCAtMzI5LDEyICszMjksMTIgQEAgc3RhdGljIGludCBibGtjaXBoZXJfd2Fsa19maXJz dChzdHJ1Y3QgYmxrY2lwaGVyX2Rlc2MgKmRlc2MsCiAJaWYgKFdBUk5fT05fT05DRShpbl9pcnEo KSkpCiAJCXJldHVybiAtRURFQURMSzsKIAorCXdhbGstPml2ID0gZGVzYy0+aW5mbzsKIAl3YWxr LT5uYnl0ZXMgPSB3YWxrLT50b3RhbDsKIAlpZiAodW5saWtlbHkoIXdhbGstPnRvdGFsKSkKIAkJ cmV0dXJuIDA7CiAKIAl3YWxrLT5idWZmZXIgPSBOVUxMOwotCXdhbGstPml2ID0gZGVzYy0+aW5m bzsKIAlpZiAodW5saWtlbHkoKCh1bnNpZ25lZCBsb25nKXdhbGstPml2ICYgYWxpZ25tYXNrKSkp IHsKIAkJaW50IGVyciA9IGJsa2NpcGhlcl9jb3B5X2l2KHdhbGssIHRmbSwgYWxpZ25tYXNrKTsK IAkJaWYgKGVycikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2FoY2kuYyBiL2RyaXZlcnMvYXRh L2FoY2kuYwppbmRleCBlMjk1OGFhLi43MTE3NDU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9h aGNpLmMKKysrIGIvZHJpdmVycy9hdGEvYWhjaS5jCkBAIC0zMjQsNiArMzI0LDggQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGFoY2lfcGNpX3RibFtdID0gewogCXsgUENJX1ZE RVZJQ0UoSU5URUwsIDB4MWYzNyksIGJvYXJkX2FoY2lfYXZuIH0sIC8qIEF2b3RvbiBSQUlEICov CiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjNlKSwgYm9hcmRfYWhjaV9hdm4gfSwgLyogQXZv dG9uIFJBSUQgKi8KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmM2YpLCBib2FyZF9haGNpX2F2 biB9LCAvKiBBdm90b24gUkFJRCAqLworCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjgyMyksIGJv YXJkX2FoY2kgfSwgLyogV2VsbHNidXJnIFJBSUQgKi8KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAw eDI4MjcpLCBib2FyZF9haGNpIH0sIC8qIFdlbGxzYnVyZyBSQUlEICovCiAJeyBQQ0lfVkRFVklD RShJTlRFTCwgMHg4ZDAyKSwgYm9hcmRfYWhjaSB9LCAvKiBXZWxsc2J1cmcgQUhDSSAqLwogCXsg UENJX1ZERVZJQ0UoSU5URUwsIDB4OGQwNCksIGJvYXJkX2FoY2kgfSwgLyogV2VsbHNidXJnIFJB SUQgKi8KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhkMDYpLCBib2FyZF9haGNpIH0sIC8qIFdl bGxzYnVyZyBSQUlEICovCkBAIC0zNDgsMTUgKzM1MCwyOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHBjaV9kZXZpY2VfaWQgYWhjaV9wY2lfdGJsW10gPSB7CiAJeyBQQ0lfVkRFVklDRShJTlRFTCwg MHg5ZDAzKSwgYm9hcmRfYWhjaSB9LCAvKiBTdW5yaXNlIFBvaW50LUxQIEFIQ0kgKi8KIAl7IFBD SV9WREVWSUNFKElOVEVMLCAweDlkMDUpLCBib2FyZF9haGNpIH0sIC8qIFN1bnJpc2UgUG9pbnQt TFAgUkFJRCAqLwogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWQwNyksIGJvYXJkX2FoY2kgfSwg LyogU3VucmlzZSBQb2ludC1MUCBSQUlEICovCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTAy KSwgYm9hcmRfYWhjaSB9LCAvKiBTdW5yaXNlIFBvaW50LUggQUhDSSAqLwogCXsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4YTEwMyksIGJvYXJkX2FoY2kgfSwgLyogU3VucmlzZSBQb2ludC1IIEFIQ0kg Ki8KLQl7IFBDSV9WREVWSUNFKElOVEVMLCAweGExMDMpLCBib2FyZF9haGNpIH0sIC8qIFN1bnJp c2UgUG9pbnQtSCBSQUlEICovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTA1KSwgYm9hcmRf YWhjaSB9LCAvKiBTdW5yaXNlIFBvaW50LUggUkFJRCAqLworCXsgUENJX1ZERVZJQ0UoSU5URUws IDB4YTEwNiksIGJvYXJkX2FoY2kgfSwgLyogU3VucmlzZSBQb2ludC1IIFJBSUQgKi8KIAl7IFBD SV9WREVWSUNFKElOVEVMLCAweGExMDcpLCBib2FyZF9haGNpIH0sIC8qIFN1bnJpc2UgUG9pbnQt SCBSQUlEICovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTBmKSwgYm9hcmRfYWhjaSB9LCAv KiBTdW5yaXNlIFBvaW50LUggUkFJRCAqLworCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjgyMiks IGJvYXJkX2FoY2kgfSwgLyogTGV3aXNidXJnIFJBSUQqLworCXsgUENJX1ZERVZJQ0UoSU5URUws IDB4MjgyNiksIGJvYXJkX2FoY2kgfSwgLyogTGV3aXNidXJnIFJBSUQqLworCXsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4YTE4MiksIGJvYXJkX2FoY2kgfSwgLyogTGV3aXNidXJnIEFIQ0kqLworCXsg UENJX1ZERVZJQ0UoSU5URUwsIDB4YTE4NCksIGJvYXJkX2FoY2kgfSwgLyogTGV3aXNidXJnIFJB SUQqLworCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTE4NiksIGJvYXJkX2FoY2kgfSwgLyogTGV3 aXNidXJnIFJBSUQqLworCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTE4ZSksIGJvYXJkX2FoY2kg fSwgLyogTGV3aXNidXJnIFJBSUQqLworCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTIwMiksIGJv YXJkX2FoY2kgfSwgLyogTGV3aXNidXJnIEFIQ0kqLworCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4 YTIwNCksIGJvYXJkX2FoY2kgfSwgLyogTGV3aXNidXJnIFJBSUQqLworCXsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4YTIwNiksIGJvYXJkX2FoY2kgfSwgLyogTGV3aXNidXJnIFJBSUQqLworCXsgUENJ X1ZERVZJQ0UoSU5URUwsIDB4YTIwZSksIGJvYXJkX2FoY2kgfSwgLyogTGV3aXNidXJnIFJBSUQq LwogCiAJLyogSk1pY3JvbiAzNjAvMS8zLzUvNiwgbWF0Y2ggY2xhc3MgdG8gYXZvaWQgSURFIGZ1 bmN0aW9uICovCiAJeyBQQ0lfVkVORE9SX0lEX0pNSUNST04sIFBDSV9BTllfSUQsIFBDSV9BTllf SUQsIFBDSV9BTllfSUQsCiAJICBQQ0lfQ0xBU1NfU1RPUkFHRV9TQVRBX0FIQ0ksIDB4ZmZmZmZm LCBib2FyZF9haGNpX2lnbl9pZmVyciB9LAorCS8qIEpNaWNyb24gMzYyQiBhbmQgMzYyQyBoYXZl IGFuIEFIQ0kgZnVuY3Rpb24gd2l0aCBJREUgY2xhc3MgY29kZSAqLworCXsgUENJX1ZERVZJQ0Uo Sk1JQ1JPTiwgMHgyMzYyKSwgYm9hcmRfYWhjaV9pZ25faWZlcnIgfSwKKwl7IFBDSV9WREVWSUNF KEpNSUNST04sIDB4MjM2ZiksIGJvYXJkX2FoY2lfaWduX2lmZXJyIH0sCiAKIAkvKiBBVEkgKi8K IAl7IFBDSV9WREVWSUNFKEFUSSwgMHg0MzgwKSwgYm9hcmRfYWhjaV9zYjYwMCB9LCAvKiBBVEkg U0I2MDAgKi8KQEAgLTQ5NCw2ICs1MTAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZp Y2VfaWQgYWhjaV9wY2lfdGJsW10gPSB7CiAJICAuZHJpdmVyX2RhdGEgPSBib2FyZF9haGNpX3ll c19mYnMgfSwJCQkvKiA4OHNlOTE3MiBvbiBzb21lIEdpZ2FieXRlICovCiAJeyBQQ0lfREVWSUNF KFBDSV9WRU5ET1JfSURfTUFSVkVMTF9FWFQsIDB4OTFhMCksCiAJICAuZHJpdmVyX2RhdGEgPSBi b2FyZF9haGNpX3llc19mYnMgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxM X0VYVCwgMHg5MWEyKSwgCS8qIDg4c2U5MWEyICovCisJICAuZHJpdmVyX2RhdGEgPSBib2FyZF9h aGNpX3llc19mYnMgfSwKIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMX0VYVCwg MHg5MWEzKSwKIAkgIC5kcml2ZXJfZGF0YSA9IGJvYXJkX2FoY2lfeWVzX2ZicyB9LAogCXsgUENJ X0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTExfRVhULCAweDkyMzApLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay9jb21tb24uaCBiL2RyaXZlcnMvYmxvY2sveGVuLWJs a2JhY2svY29tbW9uLmgKaW5kZXggZjY3OTg1ZC4uMmM2MjA1ZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ibG9jay94ZW4tYmxrYmFjay9jb21tb24uaAorKysgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGti YWNrL2NvbW1vbi5oCkBAIC0yMzgsMTEgKzIzOCwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYmxr aWZfZ2V0X3g4Nl8zMl9yZXEoc3RydWN0IGJsa2lmX3JlcXVlc3QgKmRzdCwKIAkJCQkJc3RydWN0 IGJsa2lmX3g4Nl8zMl9yZXF1ZXN0ICpzcmMpCiB7CiAJaW50IGksIG4gPSBCTEtJRl9NQVhfU0VH TUVOVFNfUEVSX1JFUVVFU1Q7Ci0JZHN0LT5vcGVyYXRpb24gPSBzcmMtPm9wZXJhdGlvbjsKKwlk c3QtPm9wZXJhdGlvbiA9IEFDQ0VTU19PTkNFKHNyYy0+b3BlcmF0aW9uKTsKIAlkc3QtPm5yX3Nl Z21lbnRzID0gc3JjLT5ucl9zZWdtZW50czsKIAlkc3QtPmhhbmRsZSA9IHNyYy0+aGFuZGxlOwog CWRzdC0+aWQgPSBzcmMtPmlkOwotCXN3aXRjaCAoc3JjLT5vcGVyYXRpb24pIHsKKwlzd2l0Y2gg KGRzdC0+b3BlcmF0aW9uKSB7CiAJY2FzZSBCTEtJRl9PUF9SRUFEOgogCWNhc2UgQkxLSUZfT1Bf V1JJVEU6CiAJY2FzZSBCTEtJRl9PUF9XUklURV9CQVJSSUVSOgpAQCAtMjY3LDExICsyNjcsMTEg QEAgc3RhdGljIGlubGluZSB2b2lkIGJsa2lmX2dldF94ODZfNjRfcmVxKHN0cnVjdCBibGtpZl9y ZXF1ZXN0ICpkc3QsCiAJCQkJCXN0cnVjdCBibGtpZl94ODZfNjRfcmVxdWVzdCAqc3JjKQogewog CWludCBpLCBuID0gQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUOwotCWRzdC0+b3BlcmF0 aW9uID0gc3JjLT5vcGVyYXRpb247CisJZHN0LT5vcGVyYXRpb24gPSBBQ0NFU1NfT05DRShzcmMt Pm9wZXJhdGlvbik7CiAJZHN0LT5ucl9zZWdtZW50cyA9IHNyYy0+bnJfc2VnbWVudHM7CiAJZHN0 LT5oYW5kbGUgPSBzcmMtPmhhbmRsZTsKIAlkc3QtPmlkID0gc3JjLT5pZDsKLQlzd2l0Y2ggKHNy Yy0+b3BlcmF0aW9uKSB7CisJc3dpdGNoIChkc3QtPm9wZXJhdGlvbikgewogCWNhc2UgQkxLSUZf T1BfUkVBRDoKIAljYXNlIEJMS0lGX09QX1dSSVRFOgogCWNhc2UgQkxLSUZfT1BfV1JJVEVfQkFS UklFUjoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2Ryb20vY2Ryb20uYyBiL2RyaXZlcnMvY2Ryb20v Y2Ryb20uYwppbmRleCAxMzMxNzQwLi5hMDNlODQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nkcm9t L2Nkcm9tLmMKKysrIGIvZHJpdmVycy9jZHJvbS9jZHJvbS5jCkBAIC04NzMsNiArODczLDcgQEAg c3RhdGljIGludCBjZHJvbV9pc19kdmRfcncoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkp CiAJc3dpdGNoIChjZGktPm1tYzNfcHJvZmlsZSkgewogCWNhc2UgMHgxMjoJLyogRFZELVJBTQkq LwogCWNhc2UgMHgxQToJLyogRFZEK1JXCSovCisJY2FzZSAweDQzOgkvKiBCRC1SRQkqLwogCQly ZXR1cm4gMDsKIAlkZWZhdWx0OgogCQlyZXR1cm4gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2lycV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2lycV9rbXMuYwppbmRleCA0MmY1YTJiLi45MzFhOGE5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9pcnFfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25faXJxX2ttcy5jCkBAIC01MSw2ICs1MSwxMSBAQCBzdGF0aWMgdm9pZCByYWRl b25faG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCBk cm1fbW9kZV9jb25maWcgKm1vZGVfY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7CiAJc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAorCS8qIHdlIGNhbiByYWNlIGhlcmUgYXQgc3Rh cnR1cCwgc29tZSBib2FyZHMgc2VlbSB0byB0cmlnZ2VyCisJICogaG90cGx1ZyBpcnFzIHdoZW4g dGhleSBzaG91bGRuJ3QuICovCisJaWYgKCFyZGV2LT5tb2RlX2luZm8ubW9kZV9jb25maWdfaW5p dGlhbGl6ZWQpCisJCXJldHVybjsKKwogCW11dGV4X2xvY2soJm1vZGVfY29uZmlnLT5tdXRleCk7 CiAJaWYgKG1vZGVfY29uZmlnLT5udW1fY29ubmVjdG9yKSB7CiAJCWxpc3RfZm9yX2VhY2hfZW50 cnkoY29ubmVjdG9yLCAmbW9kZV9jb25maWctPmNvbm5lY3Rvcl9saXN0LCBoZWFkKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9oaWQvaGlkLWRyLmMgYi9kcml2ZXJzL2hpZC9oaWQtZHIuYwppbmRleCBl ODMyZjQ0Li5iNTBkYWIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtZHIuYworKysgYi9k cml2ZXJzL2hpZC9oaWQtZHIuYwpAQCAtMjM2LDYgKzIzNiw1OCBAQCBzdGF0aWMgX191OCBwaWQw MDExX3JkZXNjX2ZpeGVkW10gPSB7CiAJMHhDMCAgICAgICAgICAgICAgICAvKiAgRW5kIENvbGxl Y3Rpb24gICAgICAgICAgICAgICAgICAqLwogfTsKIAorc3RhdGljIF9fdTggcGlkMDAwNl9yZGVz Y19maXhlZFtdID0geworCTB4MDUsIDB4MDEsICAgICAgICAvKiBVc2FnZSBQYWdlIChHZW5lcmlj IERlc2t0b3ApCSovCisJMHgwOSwgMHgwNCwgICAgICAgIC8qIFVzYWdlIChKb3lzdGljaykJCQkq LworCTB4QTEsIDB4MDEsICAgICAgICAvKiBDb2xsZWN0aW9uIChBcHBsaWNhdGlvbikJCSovCisJ MHhBMSwgMHgwMiwgICAgICAgIC8qICAgQ29sbGVjdGlvbiAoTG9naWNhbCkJCSovCisJMHg3NSwg MHgwOCwgICAgICAgIC8qICAgICBSZXBvcnQgU2l6ZSAoOCkJCSovCisJMHg5NSwgMHgwNSwgICAg ICAgIC8qICAgICBSZXBvcnQgQ291bnQgKDUpCQkqLworCTB4MTUsIDB4MDAsICAgICAgICAvKiAg ICAgTG9naWNhbCBNaW5pbXVtICgwKQkJKi8KKwkweDI2LCAweEZGLCAweDAwLCAgLyogICAgIExv Z2ljYWwgTWF4aW11bSAoMjU1KQkJKi8KKwkweDM1LCAweDAwLCAgICAgICAgLyogICAgIFBoeXNp Y2FsIE1pbmltdW0gKDApCQkqLworCTB4NDYsIDB4RkYsIDB4MDAsICAvKiAgICAgUGh5c2ljYWwg TWF4aW11bSAoMjU1KQkqLworCTB4MDksIDB4MzAsICAgICAgICAvKiAgICAgVXNhZ2UgKFgpCQkJ Ki8KKwkweDA5LCAweDMzLCAgICAgICAgLyogICAgIFVzYWdlIChSeSkJCQkqLworCTB4MDksIDB4 MzIsICAgICAgICAvKiAgICAgVXNhZ2UgKFopCQkJKi8KKwkweDA5LCAweDMxLCAgICAgICAgLyog ICAgIFVzYWdlIChZKQkJCSovCisJMHgwOSwgMHgzNCwgICAgICAgIC8qICAgICBVc2FnZSAoUnkp CQkJKi8KKwkweDgxLCAweDAyLCAgICAgICAgLyogICAgIElucHV0IChWYXJpYWJsZSkJCSovCisJ MHg3NSwgMHgwNCwgICAgICAgIC8qICAgICBSZXBvcnQgU2l6ZSAoNCkJCSovCisJMHg5NSwgMHgw MSwgICAgICAgIC8qICAgICBSZXBvcnQgQ291bnQgKDEpCQkqLworCTB4MjUsIDB4MDcsICAgICAg ICAvKiAgICAgTG9naWNhbCBNYXhpbXVtICg3KQkJKi8KKwkweDQ2LCAweDNCLCAweDAxLCAgLyog ICAgIFBoeXNpY2FsIE1heGltdW0gKDMxNSkJKi8KKwkweDY1LCAweDE0LCAgICAgICAgLyogICAg IFVuaXQgKENlbnRpbWV0ZXIpCQkqLworCTB4MDksIDB4MzksICAgICAgICAvKiAgICAgVXNhZ2Ug KEhhdCBzd2l0Y2gpCQkqLworCTB4ODEsIDB4NDIsICAgICAgICAvKiAgICAgSW5wdXQgKFZhcmlh YmxlKQkJKi8KKwkweDY1LCAweDAwLCAgICAgICAgLyogICAgIFVuaXQgKE5vbmUpCQkJKi8KKwkw eDc1LCAweDAxLCAgICAgICAgLyogICAgIFJlcG9ydCBTaXplICgxKQkJKi8KKwkweDk1LCAweDBD LCAgICAgICAgLyogICAgIFJlcG9ydCBDb3VudCAoMTIpCQkqLworCTB4MjUsIDB4MDEsICAgICAg ICAvKiAgICAgTG9naWNhbCBNYXhpbXVtICgxKQkJKi8KKwkweDQ1LCAweDAxLCAgICAgICAgLyog ICAgIFBoeXNpY2FsIE1heGltdW0gKDEpCQkqLworCTB4MDUsIDB4MDksICAgICAgICAvKiAgICAg VXNhZ2UgUGFnZSAoQnV0dG9uKQkJKi8KKwkweDE5LCAweDAxLCAgICAgICAgLyogICAgIFVzYWdl IE1pbmltdW0gKDB4MDEpCQkqLworCTB4MjksIDB4MEMsICAgICAgICAvKiAgICAgVXNhZ2UgTWF4 aW11bSAoMHgwQykJCSovCisJMHg4MSwgMHgwMiwgICAgICAgIC8qICAgICBJbnB1dCAoVmFyaWFi bGUpCQkqLworCTB4MDYsIDB4MDAsIDB4RkYsICAvKiAgICAgVXNhZ2UgUGFnZSAoVmVuZG9yIERl ZmluZWQpCSovCisJMHg3NSwgMHgwMSwgICAgICAgIC8qICAgICBSZXBvcnQgU2l6ZSAoMSkJCSov CisJMHg5NSwgMHgwOCwgICAgICAgIC8qICAgICBSZXBvcnQgQ291bnQgKDgpCQkqLworCTB4MjUs IDB4MDEsICAgICAgICAvKiAgICAgTG9naWNhbCBNYXhpbXVtICgxKQkJKi8KKwkweDQ1LCAweDAx LCAgICAgICAgLyogICAgIFBoeXNpY2FsIE1heGltdW0gKDEpCQkqLworCTB4MDksIDB4MDEsICAg ICAgICAvKiAgICAgVXNhZ2UgKDB4MDEpCQkJKi8KKwkweDgxLCAweDAyLCAgICAgICAgLyogICAg IElucHV0IChWYXJpYWJsZSkJCSovCisJMHhDMCwgICAgICAgICAgICAgIC8qICAgRW5kIENvbGxl Y3Rpb24JCQkqLworCTB4QTEsIDB4MDIsICAgICAgICAvKiAgIENvbGxlY3Rpb24gKExvZ2ljYWwp CQkqLworCTB4NzUsIDB4MDgsICAgICAgICAvKiAgICAgUmVwb3J0IFNpemUgKDgpCQkqLworCTB4 OTUsIDB4MDcsICAgICAgICAvKiAgICAgUmVwb3J0IENvdW50ICg3KQkJKi8KKwkweDQ2LCAweEZG LCAweDAwLCAgLyogICAgIFBoeXNpY2FsIE1heGltdW0gKDI1NSkJKi8KKwkweDI2LCAweEZGLCAw eDAwLCAgLyogICAgIExvZ2ljYWwgTWF4aW11bSAoMjU1KQkJKi8KKwkweDA5LCAweDAyLCAgICAg ICAgLyogICAgIFVzYWdlICgweDAyKQkJCSovCisJMHg5MSwgMHgwMiwgICAgICAgIC8qICAgICBP dXRwdXQgKFZhcmlhYmxlKQkJKi8KKwkweEMwLCAgICAgICAgICAgICAgLyogICBFbmQgQ29sbGVj dGlvbgkJCSovCisJMHhDMCAgICAgICAgICAgICAgIC8qIEVuZCBDb2xsZWN0aW9uCQkJKi8KK307 CisKIHN0YXRpYyBfX3U4ICpkcl9yZXBvcnRfZml4dXAoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYs IF9fdTggKnJkZXNjLAogCQkJCXVuc2lnbmVkIGludCAqcnNpemUpCiB7CkBAIC0yNDYsNiArMjk4 LDEyIEBAIHN0YXRpYyBfX3U4ICpkcl9yZXBvcnRfZml4dXAoc3RydWN0IGhpZF9kZXZpY2UgKmhk ZXYsIF9fdTggKnJkZXNjLAogCQkJKnJzaXplID0gc2l6ZW9mKHBpZDAwMTFfcmRlc2NfZml4ZWQp OwogCQl9CiAJCWJyZWFrOworCWNhc2UgMHgwMDA2OgorCQlpZiAoKnJzaXplID09IHNpemVvZihw aWQwMDA2X3JkZXNjX2ZpeGVkKSkgeworCQkJcmRlc2MgPSBwaWQwMDA2X3JkZXNjX2ZpeGVkOwor CQkJKnJzaXplID0gc2l6ZW9mKHBpZDAwMDZfcmRlc2NfZml4ZWQpOworCQl9CisJCWJyZWFrOwog CX0KIAlyZXR1cm4gcmRlc2M7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvS2Nv bmZpZyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9LY29uZmlnCmluZGV4IDk0OWVhNjQwLi5jYTFiMmE0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZworKysgYi9kcml2ZXJzL2ky Yy9idXNzZXMvS2NvbmZpZwpAQCAtMTA1LDYgKzEwNSwxNyBAQCBjb25maWcgSTJDX0k4MDEKIAkg ICAgUGFudGhlciBQb2ludCAoUENIKQogCSAgICBMeW54IFBvaW50IChQQ0gpCiAJICAgIEx5bngg UG9pbnQtTFAgKFBDSCkKKwkgICAgQXZvdG9uIChTT0MpCisJICAgIFdlbGxzYnVyZyAoUENIKQor CSAgICBDb2xldG8gQ3JlZWsgKFBDSCkKKwkgICAgV2lsZGNhdCBQb2ludCAoUENIKQorCSAgICBX aWxkY2F0IFBvaW50LUxQIChQQ0gpCisJICAgIEJheVRyYWlsIChTT0MpCisJICAgIFN1bnJpc2Ug UG9pbnQtSCAoUENIKQorCSAgICBTdW5yaXNlIFBvaW50LUxQIChQQ0gpCisJICAgIEROViAoU09D KQorCSAgICBCcm94dG9uIChTT0MpCisJICAgIExld2lzYnVyZyAoUENIKQogCiAJICBUaGlzIGRy aXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCiAJ ICB3aWxsIGJlIGNhbGxlZCBpMmMtaTgwMS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nl cy9pMmMtaTgwMS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAxLmMKaW5kZXggODE3ZDAy NS4uOWNlMTRhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAxLmMKKysr IGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAxLmMKQEAgLTIyLDQ4ICsyMiw2MyBAQAogKi8K IAogLyoKLSAgU3VwcG9ydHMgdGhlIGZvbGxvd2luZyBJbnRlbCBJL08gQ29udHJvbGxlciBIdWJz IChJQ0gpOgotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSS9PICAgICAgICAg ICAgICAgICAgICAgQmxvY2sgICBJMkMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZWdpb24gIFNNQnVzICAgQmxvY2sgICBwcm9jLiAgIGJsb2NrCi0gIENoaXAgbmFtZSAgICAg ICAgICAgICBQQ0kgSUQgICAgc2l6ZSAgICBQRUMgICAgIGJ1ZmZlciAgY2FsbCAgICByZWFkCi0g IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSAgODI4MDFBQSAgKElDSCkgICAgICAgIDB4MjQxMyAgICAgMTYgICAg ICBubyAgICAgIG5vICAgICAgbm8gICAgICBubwotICA4MjgwMUFCICAoSUNIMCkgICAgICAgMHgy NDIzICAgICAxNiAgICAgIG5vICAgICAgbm8gICAgICBubyAgICAgIG5vCi0gIDgyODAxQkEgIChJ Q0gyKSAgICAgICAweDI0NDMgICAgIDE2ICAgICAgbm8gICAgICBubyAgICAgIG5vICAgICAgbm8K LSAgODI4MDFDQSAgKElDSDMpICAgICAgIDB4MjQ4MyAgICAgMzIgICAgIHNvZnQgICAgIG5vICAg ICAgbm8gICAgICBubwotICA4MjgwMURCICAoSUNINCkgICAgICAgMHgyNGMzICAgICAzMiAgICAg aGFyZCAgICAgeWVzICAgICBubyAgICAgIG5vCi0gIDgyODAxRSAgIChJQ0g1KSAgICAgICAweDI0 ZDMgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIDYzMDBFU0IgICAg ICAgICAgICAgICAweDI1YTQgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVz Ci0gIDgyODAxRiAgIChJQ0g2KSAgICAgICAweDI2NmEgICAgIDMyICAgICBoYXJkICAgICB5ZXMg ICAgIHllcyAgICAgeWVzCi0gIDYzMTBFU0IvNjMyMEVTQiAgICAgICAweDI2OWIgICAgIDMyICAg ICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIDgyODAxRyAgIChJQ0g3KSAgICAgICAw eDI3ZGEgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIDgyODAxSCAg IChJQ0g4KSAgICAgICAweDI4M2UgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAg eWVzCi0gIDgyODAxSSAgIChJQ0g5KSAgICAgICAweDI5MzAgICAgIDMyICAgICBoYXJkICAgICB5 ZXMgICAgIHllcyAgICAgeWVzCi0gIEVQODA1NzkgKFRvbGFwYWkpICAgICAweDUwMzIgICAgIDMy ICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIElDSDEwICAgICAgICAgICAgICAg ICAweDNhMzAgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIElDSDEw ICAgICAgICAgICAgICAgICAweDNhNjAgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAg ICAgeWVzCi0gIDUvMzQwMCBTZXJpZXMgKFBDSCkgICAweDNiMzAgICAgIDMyICAgICBoYXJkICAg ICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIDYgU2VyaWVzIChQQ0gpICAgICAgICAweDFjMjIgICAg IDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIFBhdHNidXJnIChQQ0gpICAg ICAgICAweDFkMjIgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIFBh dHNidXJnIChQQ0gpIElERiAgICAweDFkNzAgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHll cyAgICAgeWVzCi0gIFBhdHNidXJnIChQQ0gpIElERiAgICAweDFkNzEgICAgIDMyICAgICBoYXJk ICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIFBhdHNidXJnIChQQ0gpIElERiAgICAweDFkNzIg ICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIERIODl4eENDIChQQ0gp ICAgICAgICAweDIzMzAgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0g IFBhbnRoZXIgUG9pbnQgKFBDSCkgICAweDFlMjIgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAg IHllcyAgICAgeWVzCi0gIEx5bnggUG9pbnQgKFBDSCkgICAgICAweDhjMjIgICAgIDMyICAgICBo YXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0gIEx5bnggUG9pbnQtTFAgKFBDSCkgICAweDlj MjIgICAgIDMyICAgICBoYXJkICAgICB5ZXMgICAgIHllcyAgICAgeWVzCi0KLSAgRmVhdHVyZXMg c3VwcG9ydGVkIGJ5IHRoaXMgZHJpdmVyOgotICBTb2Z0d2FyZSBQRUMgICAgICAgICAgICAgICAg ICAgICBubwotICBIYXJkd2FyZSBQRUMgICAgICAgICAgICAgICAgICAgICB5ZXMKLSAgQmxvY2sg YnVmZmVyICAgICAgICAgICAgICAgICAgICAgeWVzCi0gIEJsb2NrIHByb2Nlc3MgY2FsbCB0cmFu c2FjdGlvbiAgIG5vCi0gIEkyQyBibG9jayByZWFkIHRyYW5zYWN0aW9uICAgICAgIHllcyAgKGRv ZXNuJ3QgdXNlIHRoZSBibG9jayBidWZmZXIpCi0gIFNsYXZlIG1vZGUgICAgICAgICAgICAgICAg ICAgICAgIG5vCi0KLSAgU2VlIHRoZSBmaWxlIERvY3VtZW50YXRpb24vaTJjL2J1c3Nlcy9pMmMt aTgwMSBmb3IgZGV0YWlscy4KLSovCisgKiBTdXBwb3J0cyB0aGUgZm9sbG93aW5nIEludGVsIEkv TyBDb250cm9sbGVyIEh1YnMgKElDSCk6CisgKgorICoJCQkJCUkvTwkJCUJsb2NrCUkyQworICoJ CQkJCXJlZ2lvbglTTUJ1cwlCbG9jawlwcm9jLglibG9jaworICogQ2hpcCBuYW1lCQkJUENJIElE CXNpemUJUEVDCWJ1ZmZlcgljYWxsCXJlYWQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogODI4 MDFBQSAoSUNIKQkJMHgyNDEzCTE2CW5vCW5vCW5vCW5vCisgKiA4MjgwMUFCIChJQ0gwKQkJMHgy NDIzCTE2CW5vCW5vCW5vCW5vCisgKiA4MjgwMUJBIChJQ0gyKQkJMHgyNDQzCTE2CW5vCW5vCW5v CW5vCisgKiA4MjgwMUNBIChJQ0gzKQkJMHgyNDgzCTMyCXNvZnQJbm8Jbm8Jbm8KKyAqIDgyODAx REIgKElDSDQpCQkweDI0YzMJMzIJaGFyZAl5ZXMJbm8Jbm8KKyAqIDgyODAxRSAoSUNINSkJCTB4 MjRkMwkzMgloYXJkCXllcwl5ZXMJeWVzCisgKiA2MzAwRVNCCQkJMHgyNWE0CTMyCWhhcmQJeWVz CXllcwl5ZXMKKyAqIDgyODAxRiAoSUNINikJCTB4MjY2YQkzMgloYXJkCXllcwl5ZXMJeWVzCisg KiA2MzEwRVNCLzYzMjBFU0IJCTB4MjY5YgkzMgloYXJkCXllcwl5ZXMJeWVzCisgKiA4MjgwMUcg KElDSDcpCQkweDI3ZGEJMzIJaGFyZAl5ZXMJeWVzCXllcworICogODI4MDFIIChJQ0g4KQkJMHgy ODNlCTMyCWhhcmQJeWVzCXllcwl5ZXMKKyAqIDgyODAxSSAoSUNIOSkJCTB4MjkzMAkzMgloYXJk CXllcwl5ZXMJeWVzCisgKiBFUDgwNTc5IChUb2xhcGFpKQkJMHg1MDMyCTMyCWhhcmQJeWVzCXll cwl5ZXMKKyAqIElDSDEwCQkJMHgzYTMwCTMyCWhhcmQJeWVzCXllcwl5ZXMKKyAqIElDSDEwCQkJ MHgzYTYwCTMyCWhhcmQJeWVzCXllcwl5ZXMKKyAqIDUvMzQwMCBTZXJpZXMgKFBDSCkJCTB4M2Iz MAkzMgloYXJkCXllcwl5ZXMJeWVzCisgKiA2IFNlcmllcyAoUENIKQkJMHgxYzIyCTMyCWhhcmQJ eWVzCXllcwl5ZXMKKyAqIFBhdHNidXJnIChQQ0gpCQkweDFkMjIJMzIJaGFyZAl5ZXMJeWVzCXll cworICogUGF0c2J1cmcgKFBDSCkgSURGCQkweDFkNzAJMzIJaGFyZAl5ZXMJeWVzCXllcworICog UGF0c2J1cmcgKFBDSCkgSURGCQkweDFkNzEJMzIJaGFyZAl5ZXMJeWVzCXllcworICogUGF0c2J1 cmcgKFBDSCkgSURGCQkweDFkNzIJMzIJaGFyZAl5ZXMJeWVzCXllcworICogREg4OXh4Q0MgKFBD SCkJCTB4MjMzMAkzMgloYXJkCXllcwl5ZXMJeWVzCisgKiBQYW50aGVyIFBvaW50IChQQ0gpCQkw eDFlMjIJMzIJaGFyZAl5ZXMJeWVzCXllcworICogTHlueCBQb2ludCAoUENIKQkJMHg4YzIyCTMy CWhhcmQJeWVzCXllcwl5ZXMKKyAqIEx5bnggUG9pbnQtTFAgKFBDSCkJCTB4OWMyMgkzMgloYXJk CXllcwl5ZXMJeWVzCisgKiBBdm90b24gKFNPQykJCQkweDFmM2MJMzIJaGFyZAl5ZXMJeWVzCXll cworICogV2VsbHNidXJnIChQQ0gpCQkweDhkMjIJMzIJaGFyZAl5ZXMJeWVzCXllcworICogV2Vs bHNidXJnIChQQ0gpIE1TCQkweDhkN2QJMzIJaGFyZAl5ZXMJeWVzCXllcworICogV2VsbHNidXJn IChQQ0gpIE1TCQkweDhkN2UJMzIJaGFyZAl5ZXMJeWVzCXllcworICogV2VsbHNidXJnIChQQ0gp IE1TCQkweDhkN2YJMzIJaGFyZAl5ZXMJeWVzCXllcworICogQ29sZXRvIENyZWVrIChQQ0gpCQkw eDIzYjAJMzIJaGFyZAl5ZXMJeWVzCXllcworICogV2lsZGNhdCBQb2ludCAoUENIKQkJMHg4Y2Ey CTMyCWhhcmQJeWVzCXllcwl5ZXMKKyAqIFdpbGRjYXQgUG9pbnQtTFAgKFBDSCkJMHg5Y2EyCTMy CWhhcmQJeWVzCXllcwl5ZXMKKyAqIEJheVRyYWlsIChTT0MpCQkweDBmMTIJMzIJaGFyZAl5ZXMJ eWVzCXllcworICogU3VucmlzZSBQb2ludC1IIChQQ0gpIAkweGExMjMgIDMyCWhhcmQJeWVzCXll cwl5ZXMKKyAqIFN1bnJpc2UgUG9pbnQtTFAgKFBDSCkJMHg5ZDIzCTMyCWhhcmQJeWVzCXllcwl5 ZXMKKyAqIEROViAoU09DKQkJCTB4MTlkZgkzMgloYXJkCXllcwl5ZXMJeWVzCisgKiBCcm94dG9u IChTT0MpCQkweDVhZDQJMzIJaGFyZAl5ZXMJeWVzCXllcworICogTGV3aXNidXJnIChQQ0gpCQkw eGExYTMJMzIJaGFyZAl5ZXMJeWVzCXllcworICogTGV3aXNidXJnIFN1cGVyc2t1IChQQ0gpCTB4 YTIyMwkzMgloYXJkCXllcwl5ZXMJeWVzCisgKgorICogRmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRo aXMgZHJpdmVyOgorICogU29mdHdhcmUgUEVDCQkJCW5vCisgKiBIYXJkd2FyZSBQRUMJCQkJeWVz CisgKiBCbG9jayBidWZmZXIJCQkJeWVzCisgKiBCbG9jayBwcm9jZXNzIGNhbGwgdHJhbnNhY3Rp b24Jbm8KKyAqIEkyQyBibG9jayByZWFkIHRyYW5zYWN0aW9uCQl5ZXMgKGRvZXNuJ3QgdXNlIHRo ZSBibG9jayBidWZmZXIpCisgKiBTbGF2ZSBtb2RlCQkJCW5vCisgKgorICogU2VlIHRoZSBmaWxl IERvY3VtZW50YXRpb24vaTJjL2J1c3Nlcy9pMmMtaTgwMSBmb3IgZGV0YWlscy4KKyAqLwogCiAj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CkBAIC0xMzgs MTcgKzE1MywzMyBAQAogCQkJCSBTTUJIU1RTVFNfSU5UUikKIAogLyogT2xkZXIgZGV2aWNlcyBo YXZlIHRoZWlyIElEIGRlZmluZWQgaW4gPGxpbnV4L3BjaV9pZHMuaD4gKi8KLSNkZWZpbmUgUENJ X0RFVklDRV9JRF9JTlRFTF9DT1VHQVJQT0lOVF9TTUJVUwkweDFjMjIKLSNkZWZpbmUgUENJX0RF VklDRV9JRF9JTlRFTF9QQVRTQlVSR19TTUJVUwkweDFkMjIKKyNkZWZpbmUgUENJX0RFVklDRV9J RF9JTlRFTF9CQVlUUkFJTF9TTUJVUwkJMHgwZjEyCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5U RUxfQlJBU1dFTExfU01CVVMJCTB4MjI5MgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0NP VUdBUlBPSU5UX1NNQlVTCQkweDFjMjIKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9QQVRT QlVSR19TTUJVUwkJMHgxZDIyCiAvKiBQYXRzYnVyZyBhbHNvIGhhcyB0aHJlZSAnSW50ZWdyYXRl ZCBEZXZpY2UgRnVuY3Rpb24nIFNNQnVzIGNvbnRyb2xsZXJzICovCi0jZGVmaW5lIFBDSV9ERVZJ Q0VfSURfSU5URUxfUEFUU0JVUkdfU01CVVNfSURGMAkweDFkNzAKLSNkZWZpbmUgUENJX0RFVklD RV9JRF9JTlRFTF9QQVRTQlVSR19TTUJVU19JREYxCTB4MWQ3MQotI2RlZmluZSBQQ0lfREVWSUNF X0lEX0lOVEVMX1BBVFNCVVJHX1NNQlVTX0lERjIJMHgxZDcyCi0jZGVmaW5lIFBDSV9ERVZJQ0Vf SURfSU5URUxfUEFOVEhFUlBPSU5UX1NNQlVTCTB4MWUyMgotI2RlZmluZSBQQ0lfREVWSUNFX0lE X0lOVEVMX0RIODlYWENDX1NNQlVTCTB4MjMzMAotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVM XzVfMzQwMF9TRVJJRVNfU01CVVMJMHgzYjMwCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxf TFlOWFBPSU5UX1NNQlVTCTB4OGMyMgotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0xZTlhQ T0lOVF9MUF9TTUJVUwkweDljMjIKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9QQVRTQlVS R19TTUJVU19JREYwCQkweDFkNzAKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9QQVRTQlVS R19TTUJVU19JREYxCQkweDFkNzEKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9QQVRTQlVS R19TTUJVU19JREYyCQkweDFkNzIKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9QQU5USEVS UE9JTlRfU01CVVMJCTB4MWUyMgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0FWT1RPTl9T TUJVUwkJMHgxZjNjCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfREg4OVhYQ0NfU01CVVMJ CTB4MjMzMAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0NPTEVUT0NSRUVLX1NNQlVTCQkw eDIzYjAKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF81XzM0MDBfU0VSSUVTX1NNQlVTCQkw eDNiMzAKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9MWU5YUE9JTlRfU01CVVMJCTB4OGMy MgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1dJTERDQVRQT0lOVF9TTUJVUwkJMHg4Y2Ey CisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfV0VMTFNCVVJHX1NNQlVTCQkweDhkMjIKKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9XRUxMU0JVUkdfU01CVVNfTVMwCQkweDhkN2QKKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9XRUxMU0JVUkdfU01CVVNfTVMxCQkweDhkN2UKKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9XRUxMU0JVUkdfU01CVVNfTVMyCQkweDhkN2YKKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9MWU5YUE9JTlRfTFBfU01CVVMJCTB4OWMyMgorI2Rl ZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1dJTERDQVRQT0lOVF9MUF9TTUJVUwkweDljYTIKKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9TVU5SSVNFUE9JTlRfSF9TTUJVUwkweGExMjMKKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9TVU5SSVNFUE9JTlRfTFBfU01CVVMJMHg5ZDIzCisj ZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfRE5WX1NNQlVTCQkJMHgxOWRmCisjZGVmaW5lIFBD SV9ERVZJQ0VfSURfSU5URUxfQlJPWFRPTl9TTUJVUwkJMHg1YWQ0CisjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfSU5URUxfTEVXSVNCVVJHX1NNQlVTCQkweGExYTMKKyNkZWZpbmUgUENJX0RFVklDRV9J RF9JTlRFTF9MRVdJU0JVUkdfU1NLVV9TTUJVUwkweGEyMjMKIAogc3RydWN0IGk4MDFfcHJpdiB7 CiAJc3RydWN0IGkyY19hZGFwdGVyIGFkYXB0ZXI7CkBAIC02MzksNiArNjcwLDIyIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpODAxX2lkc1tdID0gewogCXsgUENJX0RFVklD RShQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX1BBTlRIRVJQT0lOVF9T TUJVUykgfSwKIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9J RF9JTlRFTF9MWU5YUE9JTlRfU01CVVMpIH0sCiAJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURf SU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfTFlOWFBPSU5UX0xQX1NNQlVTKSB9LAorCXsgUENJ X0RFVklDRShQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0FWT1RPTl9T TUJVUykgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9J RF9JTlRFTF9XRUxMU0JVUkdfU01CVVMpIH0sCisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURf SU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfV0VMTFNCVVJHX1NNQlVTX01TMCkgfSwKKwl7IFBD SV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9XRUxMU0JV UkdfU01CVVNfTVMxKSB9LAorCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lf REVWSUNFX0lEX0lOVEVMX1dFTExTQlVSR19TTUJVU19NUzIpIH0sCisJeyBQQ0lfREVWSUNFKFBD SV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfQ09MRVRPQ1JFRUtfU01CVVMp IH0sCisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5U RUxfV0lMRENBVFBPSU5UX1NNQlVTKSB9LAorCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0lO VEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX1dJTERDQVRQT0lOVF9MUF9TTUJVUykgfSwKKwl7IFBD SV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9CQVlUUkFJ TF9TTUJVUykgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklD RV9JRF9JTlRFTF9CUkFTV0VMTF9TTUJVUykgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9J RF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9TVU5SSVNFUE9JTlRfSF9TTUJVUykgfSwKKwl7 IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9TVU5S SVNFUE9JTlRfTFBfU01CVVMpIH0sCisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfSU5URUws IFBDSV9ERVZJQ0VfSURfSU5URUxfRE5WX1NNQlVTKSB9LAorCXsgUENJX0RFVklDRShQQ0lfVkVO RE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0JST1hUT05fU01CVVMpIH0sCisJeyBQ Q0lfREVWSUNFKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfTEVXSVNC VVJHX1NNQlVTKSB9LAorCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVW SUNFX0lEX0lOVEVMX0xFV0lTQlVSR19TU0tVX1NNQlVTKSB9LAogCXsgMCwgfQogfTsKIApAQCAt Nzg2LDYgKzgzMyw5IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGk4MDFfcHJvYmUoc3RydWN0IHBj aV9kZXYgKmRldiwKIAljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfUEFUU0JVUkdfU01CVVNfSURG MDoKIAljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfUEFUU0JVUkdfU01CVVNfSURGMToKIAljYXNl IFBDSV9ERVZJQ0VfSURfSU5URUxfUEFUU0JVUkdfU01CVVNfSURGMjoKKwljYXNlIFBDSV9ERVZJ Q0VfSURfSU5URUxfV0VMTFNCVVJHX1NNQlVTX01TMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5U RUxfV0VMTFNCVVJHX1NNQlVTX01TMToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfV0VMTFNC VVJHX1NNQlVTX01TMjoKIAkJcHJpdi0+ZmVhdHVyZXMgfD0gRkVBVFVSRV9JREY7CiAJCS8qIGZh bGwgdGhyb3VnaCAqLwogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vZ2lnYXNl dC9zZXItZ2lnYXNldC5jIGIvZHJpdmVycy9pc2RuL2dpZ2FzZXQvc2VyLWdpZ2FzZXQuYwppbmRl eCA4NmE1YzRmLi5jZjNjMWQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vZ2lnYXNldC9zZXIt Z2lnYXNldC5jCisrKyBiL2RyaXZlcnMvaXNkbi9naWdhc2V0L3Nlci1naWdhc2V0LmMKQEAgLTM3 MSwxOSArMzcxLDIzIEBAIHN0YXRpYyB2b2lkIGdpZ2FzZXRfZnJlZWNzaHcoc3RydWN0IGNhcmRz dGF0ZSAqY3MpCiAJdGFza2xldF9raWxsKCZjcy0+d3JpdGVfdGFza2xldCk7CiAJaWYgKCFjcy0+ aHcuc2VyKQogCQlyZXR1cm47Ci0JZGV2X3NldF9kcnZkYXRhKCZjcy0+aHcuc2VyLT5kZXYuZGV2 LCBOVUxMKTsKIAlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcigmY3MtPmh3LnNlci0+ZGV2KTsK LQlrZnJlZShjcy0+aHcuc2VyKTsKLQljcy0+aHcuc2VyID0gTlVMTDsKIH0KIAogc3RhdGljIHZv aWQgZ2lnYXNldF9kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOworCXN0cnVj dCBjYXJkc3RhdGUgKmNzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKIAkvKiBhZGFwdGVkIGZy b20gcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2UoKSBpbiBkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYyAq LwogCWtmcmVlKGRldi0+cGxhdGZvcm1fZGF0YSk7CiAJa2ZyZWUocGRldi0+cmVzb3VyY2UpOwor CisJaWYgKCFjcykKKwkJcmV0dXJuOworCWRldl9zZXRfZHJ2ZGF0YShkZXYsIE5VTEwpOworCWtm cmVlKGNzLT5ody5zZXIpOworCWNzLT5ody5zZXIgPSBOVUxMOwogfQogCiAvKgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL21JU0ROL21JU0ROaXBhYy5jIGIvZHJpdmVycy9pc2Ru L2hhcmR3YXJlL21JU0ROL21JU0ROaXBhYy5jCmluZGV4IGQyZmZiMWQuLjY2MTRiMjggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9tSVNETi9tSVNETmlwYWMuYworKysgYi9kcml2 ZXJzL2lzZG4vaGFyZHdhcmUvbUlTRE4vbUlTRE5pcGFjLmMKQEAgLTExNTYsNyArMTE1Niw3IEBA IG1JU0ROaXBhY19pcnEoc3RydWN0IGlwYWNfaHcgKmlwYWMsIGludCBtYXhsb29wKQogCiAJaWYg KGlwYWMtPnR5cGUgJiBJUEFDX1RZUEVfSVBBQ1gpIHsKIAkJaXN0YSA9IFJlYWRJUEFDKGlwYWMs IElTQUNYX0lTVEEpOwotCQl3aGlsZSAoaXN0YSAmJiBjbnQtLSkgeworCQl3aGlsZSAoaXN0YSAm JiAtLWNudCkgewogCQkJcHJfZGVidWcoIiVzOiBJU1RBICUwMnhcbiIsIGlwYWMtPm5hbWUsIGlz dGEpOwogCQkJaWYgKGlzdGEgJiBJUEFDWF9fSUNBKQogCQkJCWlwYWNfaXJxKCZpcGFjLT5oc2N4 WzBdLCBpc3RhKTsKQEAgLTExNjgsNyArMTE2OCw3IEBAIG1JU0ROaXBhY19pcnEoc3RydWN0IGlw YWNfaHcgKmlwYWMsIGludCBtYXhsb29wKQogCQl9CiAJfSBlbHNlIGlmIChpcGFjLT50eXBlICYg SVBBQ19UWVBFX0lQQUMpIHsKIAkJaXN0YSA9IFJlYWRJUEFDKGlwYWMsIElQQUNfSVNUQSk7Ci0J CXdoaWxlIChpc3RhICYmIGNudC0tKSB7CisJCXdoaWxlIChpc3RhICYmIC0tY250KSB7CiAJCQlw cl9kZWJ1ZygiJXM6IElTVEEgJTAyeFxuIiwgaXBhYy0+bmFtZSwgaXN0YSk7CiAJCQlpZiAoaXN0 YSAmIChJUEFDX19JQ0QgfCBJUEFDX19FWEQpKSB7CiAJCQkJaXN0YWQgPSBSZWFkSVNBQyhpc2Fj LCBJU0FDX0lTVEEpOwpAQCAtMTE4Niw3ICsxMTg2LDcgQEAgbUlTRE5pcGFjX2lycShzdHJ1Y3Qg aXBhY19odyAqaXBhYywgaW50IG1heGxvb3ApCiAJCQlpc3RhID0gUmVhZElQQUMoaXBhYywgSVBB Q19JU1RBKTsKIAkJfQogCX0gZWxzZSBpZiAoaXBhYy0+dHlwZSAmIElQQUNfVFlQRV9IU0NYKSB7 Ci0JCXdoaWxlIChjbnQpIHsKKwkJd2hpbGUgKC0tY250KSB7CiAJCQlpc3RhID0gUmVhZElQQUMo aXBhYywgSVBBQ19JU1RBQiArIGlwYWMtPmhzY3hbMV0ub2ZmKTsKIAkJCXByX2RlYnVnKCIlczog QjIgSVNUQSAlMDJ4XG4iLCBpcGFjLT5uYW1lLCBpc3RhKTsKIAkJCWlmIChpc3RhKQpAQCAtMTE5 Nyw3ICsxMTk3LDYgQEAgbUlTRE5pcGFjX2lycShzdHJ1Y3QgaXBhY19odyAqaXBhYywgaW50IG1h eGxvb3ApCiAJCQkJbUlTRE5pc2FjX2lycShpc2FjLCBpc3RhZCk7CiAJCQlpZiAoMCA9PSAoaXN0 YSB8IGlzdGFkKSkKIAkJCQlicmVhazsKLQkJCWNudC0tOwogCQl9CiAJfQogCWlmIChjbnQgPiBt YXhsb29wKSAvKiBvbmx5IGZvciBJU0FDL0hTQ1ggd2l0aG91dCBQQ0kgSVJRIHRlc3QgKi8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5jCmluZGV4IGU0OTIwOGQuLjk4NDJmZDkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9zaF9ldGguYwpAQCAtMTQ5OSw4ICsxNDk5LDcgQEAg c3RhdGljIGludCBzaF9ldGhfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg bmV0X2RldmljZSAqbmRldikKIAl0eGRlc2MgPSAmbWRwLT50eF9yaW5nW2VudHJ5XTsKIAkvKiBz b2Z0IHN3YXAuICovCiAJaWYgKCFtZHAtPmNkLT5od19zd2FwKQotCQlzaF9ldGhfc29mdF9zd2Fw KHBoeXNfdG9fdmlydChBTElHTih0eGRlc2MtPmFkZHIsIDQpKSwKLQkJCQkgc2tiLT5sZW4gKyAy KTsKKwkJc2hfZXRoX3NvZnRfc3dhcChQVFJfQUxJR04oc2tiLT5kYXRhLCA0KSwgc2tiLT5sZW4g KyAyKTsKIAl0eGRlc2MtPmFkZHIgPSBkbWFfbWFwX3NpbmdsZSgmbmRldi0+ZGV2LCBza2ItPmRh dGEsIHNrYi0+bGVuLAogCQkJCSAgICAgIERNQV9UT19ERVZJQ0UpOwogCWlmIChza2ItPmxlbiA8 IEVUSEVSU01BTEwpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNr LmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMKaW5kZXggYjI1MjhmNi4uN2I3 MTI1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jCisrKyBi L2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYwpAQCAtNDA2LDE3ICs0MDYsMTcgQEAg c3RhdGljIHN0cnVjdCBuZXRia19yeF9tZXRhICpnZXRfbmV4dF9yeF9idWZmZXIoc3RydWN0IHhl bnZpZiAqdmlmLAogCQkJCQkJc3RydWN0IG5ldHJ4X3BlbmRpbmdfb3BlcmF0aW9ucyAqbnBvKQog ewogCXN0cnVjdCBuZXRia19yeF9tZXRhICptZXRhOwotCXN0cnVjdCB4ZW5fbmV0aWZfcnhfcmVx dWVzdCAqcmVxOworCXN0cnVjdCB4ZW5fbmV0aWZfcnhfcmVxdWVzdCByZXE7CiAKLQlyZXEgPSBS SU5HX0dFVF9SRVFVRVNUKCZ2aWYtPnJ4LCB2aWYtPnJ4LnJlcV9jb25zKyspOworCVJJTkdfQ09Q WV9SRVFVRVNUKCZ2aWYtPnJ4LCB2aWYtPnJ4LnJlcV9jb25zKyssICZyZXEpOwogCiAJbWV0YSA9 IG5wby0+bWV0YSArIG5wby0+bWV0YV9wcm9kKys7CiAJbWV0YS0+Z3NvX3NpemUgPSAwOwogCW1l dGEtPnNpemUgPSAwOwotCW1ldGEtPmlkID0gcmVxLT5pZDsKKwltZXRhLT5pZCA9IHJlcS5pZDsK IAogCW5wby0+Y29weV9vZmYgPSAwOwotCW5wby0+Y29weV9ncmVmID0gcmVxLT5ncmVmOworCW5w by0+Y29weV9ncmVmID0gcmVxLmdyZWY7CiAKIAlyZXR1cm4gbWV0YTsKIH0KQEAgLTUxOCw3ICs1 MTgsNyBAQCBzdGF0aWMgaW50IG5ldGJrX2dvcF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlz dHJ1Y3QgeGVudmlmICp2aWYgPSBuZXRkZXZfcHJpdihza2ItPmRldik7CiAJaW50IG5yX2ZyYWdz ID0gc2tiX3NoaW5mbyhza2IpLT5ucl9mcmFnczsKIAlpbnQgaTsKLQlzdHJ1Y3QgeGVuX25ldGlm X3J4X3JlcXVlc3QgKnJlcTsKKwlzdHJ1Y3QgeGVuX25ldGlmX3J4X3JlcXVlc3QgcmVxOwogCXN0 cnVjdCBuZXRia19yeF9tZXRhICptZXRhOwogCXVuc2lnbmVkIGNoYXIgKmRhdGE7CiAJaW50IGhl YWQgPSAxOwpAQCAtNTI4LDE0ICs1MjgsMTQgQEAgc3RhdGljIGludCBuZXRia19nb3Bfc2tiKHN0 cnVjdCBza19idWZmICpza2IsCiAKIAkvKiBTZXQgdXAgYSBHU08gcHJlZml4IGRlc2NyaXB0b3Is IGlmIG5lY2Vzc2FyeSAqLwogCWlmIChza2Jfc2hpbmZvKHNrYiktPmdzb19zaXplICYmIHZpZi0+ Z3NvX3ByZWZpeCkgewotCQlyZXEgPSBSSU5HX0dFVF9SRVFVRVNUKCZ2aWYtPnJ4LCB2aWYtPnJ4 LnJlcV9jb25zKyspOworCQlSSU5HX0NPUFlfUkVRVUVTVCgmdmlmLT5yeCwgdmlmLT5yeC5yZXFf Y29ucysrLCAmcmVxKTsKIAkJbWV0YSA9IG5wby0+bWV0YSArIG5wby0+bWV0YV9wcm9kKys7CiAJ CW1ldGEtPmdzb19zaXplID0gc2tiX3NoaW5mbyhza2IpLT5nc29fc2l6ZTsKIAkJbWV0YS0+c2l6 ZSA9IDA7Ci0JCW1ldGEtPmlkID0gcmVxLT5pZDsKKwkJbWV0YS0+aWQgPSByZXEuaWQ7CiAJfQog Ci0JcmVxID0gUklOR19HRVRfUkVRVUVTVCgmdmlmLT5yeCwgdmlmLT5yeC5yZXFfY29ucysrKTsK KwlSSU5HX0NPUFlfUkVRVUVTVCgmdmlmLT5yeCwgdmlmLT5yeC5yZXFfY29ucysrLCAmcmVxKTsK IAltZXRhID0gbnBvLT5tZXRhICsgbnBvLT5tZXRhX3Byb2QrKzsKIAogCWlmICghdmlmLT5nc29f cHJlZml4KQpAQCAtNTQ0LDkgKzU0NCw5IEBAIHN0YXRpYyBpbnQgbmV0YmtfZ29wX3NrYihzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLAogCQltZXRhLT5nc29fc2l6ZSA9IDA7CiAKIAltZXRhLT5zaXplID0g MDsKLQltZXRhLT5pZCA9IHJlcS0+aWQ7CisJbWV0YS0+aWQgPSByZXEuaWQ7CiAJbnBvLT5jb3B5 X29mZiA9IDA7Ci0JbnBvLT5jb3B5X2dyZWYgPSByZXEtPmdyZWY7CisJbnBvLT5jb3B5X2dyZWYg PSByZXEuZ3JlZjsKIAogCWRhdGEgPSBza2ItPmRhdGE7CiAJd2hpbGUgKGRhdGEgPCBza2JfdGFp bF9wb2ludGVyKHNrYikpIHsKQEAgLTg2NCw5ICs4NjQsNyBAQCBzdGF0aWMgdm9pZCB0eF9hZGRf Y3JlZGl0KHN0cnVjdCB4ZW52aWYgKnZpZikKIAkgKiBBbGxvdyBhIGJ1cnN0IGJpZyBlbm91Z2gg dG8gdHJhbnNtaXQgYSBqdW1ibyBwYWNrZXQgb2YgdXAgdG8gMTI4a0IuCiAJICogT3RoZXJ3aXNl IHRoZSBpbnRlcmZhY2UgY2FuIHNlaXplIHVwIGR1ZSB0byBpbnN1ZmZpY2llbnQgY3JlZGl0Lgog CSAqLwotCW1heF9idXJzdCA9IFJJTkdfR0VUX1JFUVVFU1QoJnZpZi0+dHgsIHZpZi0+dHgucmVx X2NvbnMpLT5zaXplOwotCW1heF9idXJzdCA9IG1pbihtYXhfYnVyc3QsIDEzMTA3MlVMKTsKLQlt YXhfYnVyc3QgPSBtYXgobWF4X2J1cnN0LCB2aWYtPmNyZWRpdF9ieXRlcyk7CisJbWF4X2J1cnN0 ID0gbWF4KDEzMTA3MlVMLCB2aWYtPmNyZWRpdF9ieXRlcyk7CiAKIAkvKiBUYWtlIGNhcmUgdGhh dCBhZGRpbmcgYSBuZXcgY2h1bmsgb2YgY3JlZGl0IGRvZXNuJ3Qgd3JhcCB0byB6ZXJvLiAqLwog CW1heF9jcmVkaXQgPSB2aWYtPnJlbWFpbmluZ19jcmVkaXQgKyB2aWYtPmNyZWRpdF9ieXRlczsK QEAgLTg5Miw3ICs4OTAsNyBAQCBzdGF0aWMgdm9pZCBuZXRia190eF9lcnIoc3RydWN0IHhlbnZp ZiAqdmlmLAogCQltYWtlX3R4X3Jlc3BvbnNlKHZpZiwgdHhwLCBYRU5fTkVUSUZfUlNQX0VSUk9S KTsKIAkJaWYgKGNvbnMgPT0gZW5kKQogCQkJYnJlYWs7Ci0JCXR4cCA9IFJJTkdfR0VUX1JFUVVF U1QoJnZpZi0+dHgsIGNvbnMrKyk7CisJCVJJTkdfQ09QWV9SRVFVRVNUKCZ2aWYtPnR4LCBjb25z KyssIHR4cCk7CiAJfSB3aGlsZSAoMSk7CiAJdmlmLT50eC5yZXFfY29ucyA9IGNvbnM7CiAJeGVu X25ldGJrX2NoZWNrX3J4X3hlbnZpZih2aWYpOwpAQCAtOTU5LDggKzk1Nyw3IEBAIHN0YXRpYyBp bnQgbmV0YmtfY291bnRfcmVxdWVzdHMoc3RydWN0IHhlbnZpZiAqdmlmLAogCQlpZiAoZHJvcF9l cnIpCiAJCQl0eHAgPSAmZHJvcHBlZF90eDsKIAotCQltZW1jcHkodHhwLCBSSU5HX0dFVF9SRVFV RVNUKCZ2aWYtPnR4LCBjb25zICsgc2xvdHMpLAotCQkgICAgICAgc2l6ZW9mKCp0eHApKTsKKwkJ UklOR19DT1BZX1JFUVVFU1QoJnZpZi0+dHgsIGNvbnMgKyBzbG90cywgdHhwKTsKIAogCQkvKiBJ ZiB0aGUgZ3Vlc3Qgc3VibWl0dGVkIGEgZnJhbWUgPj0gNjQgS2lCIHRoZW4KIAkJICogZmlyc3Qt PnNpemUgb3ZlcmZsb3dlZCBhbmQgZm9sbG93aW5nIHNsb3RzIHdpbGwKQEAgLTEyNDgsOCArMTI0 NSw3IEBAIHN0YXRpYyBpbnQgeGVuX25ldGJrX2dldF9leHRyYXMoc3RydWN0IHhlbnZpZiAqdmlm LAogCQkJcmV0dXJuIC1FQkFEUjsKIAkJfQogCi0JCW1lbWNweSgmZXh0cmEsIFJJTkdfR0VUX1JF UVVFU1QoJnZpZi0+dHgsIGNvbnMpLAotCQkgICAgICAgc2l6ZW9mKGV4dHJhKSk7CisJCVJJTkdf Q09QWV9SRVFVRVNUKCZ2aWYtPnR4LCBjb25zLCAmZXh0cmEpOwogCQlpZiAodW5saWtlbHkoIWV4 dHJhLnR5cGUgfHwKIAkJCSAgICAgZXh0cmEudHlwZSA+PSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9N QVgpKSB7CiAJCQl2aWYtPnR4LnJlcV9jb25zID0gKytjb25zOwpAQCAtMTQ0NCw3ICsxNDQwLDcg QEAgc3RhdGljIHVuc2lnbmVkIHhlbl9uZXRia190eF9idWlsZF9nb3BzKHN0cnVjdCB4ZW5fbmV0 YmsgKm5ldGJrKQogCiAJCWlkeCA9IHZpZi0+dHgucmVxX2NvbnM7CiAJCXJtYigpOyAvKiBFbnN1 cmUgdGhhdCB3ZSBzZWUgdGhlIHJlcXVlc3QgYmVmb3JlIHdlIGNvcHkgaXQuICovCi0JCW1lbWNw eSgmdHhyZXEsIFJJTkdfR0VUX1JFUVVFU1QoJnZpZi0+dHgsIGlkeCksIHNpemVvZih0eHJlcSkp OworCQlSSU5HX0NPUFlfUkVRVUVTVCgmdmlmLT50eCwgaWR4LCAmdHhyZXEpOwogCiAJCS8qIENy ZWRpdC1iYXNlZCBzY2hlZHVsaW5nLiAqLwogCQlpZiAodHhyZXEuc2l6ZSA+IHZpZi0+cmVtYWlu aW5nX2NyZWRpdCAmJgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Nlcy5jIGIvZHJpdmVycy9z Y3NpL3Nlcy5jCmluZGV4IGViYTE4M2MuLjM2NDNiYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2Nz aS9zZXMuYworKysgYi9kcml2ZXJzL3Njc2kvc2VzLmMKQEAgLTcwLDYgKzcwLDcgQEAgc3RhdGlj IGludCBzZXNfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQogc3RhdGljIGludCBzZXNfcmVjdl9k aWFnKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwgaW50IHBhZ2VfY29kZSwKIAkJCSB2b2lkICpi dWYsIGludCBidWZmbGVuKQogeworCWludCByZXQ7CiAJdW5zaWduZWQgY2hhciBjbWRbXSA9IHsK IAkJUkVDRUlWRV9ESUFHTk9TVElDLAogCQkxLAkJLyogU2V0IFBDViBiaXQgKi8KQEAgLTc4LDkg Kzc5LDI2IEBAIHN0YXRpYyBpbnQgc2VzX3JlY3ZfZGlhZyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNk ZXYsIGludCBwYWdlX2NvZGUsCiAJCWJ1ZmZsZW4gJiAweGZmLAogCQkwCiAJfTsKKwl1bnNpZ25l ZCBjaGFyIHJlY3ZfcGFnZV9jb2RlOwogCi0JcmV0dXJuIHNjc2lfZXhlY3V0ZV9yZXEoc2Rldiwg Y21kLCBETUFfRlJPTV9ERVZJQ0UsIGJ1ZiwgYnVmZmxlbiwKKwlyZXQgPSAgc2NzaV9leGVjdXRl X3JlcShzZGV2LCBjbWQsIERNQV9GUk9NX0RFVklDRSwgYnVmLCBidWZmbGVuLAogCQkJCU5VTEws IFNFU19USU1FT1VULCBTRVNfUkVUUklFUywgTlVMTCk7CisJaWYgKHVubGlrZWx5KCFyZXQpKQor CQlyZXR1cm4gcmV0OworCisJcmVjdl9wYWdlX2NvZGUgPSAoKHVuc2lnbmVkIGNoYXIgKilidWYp WzBdOworCisJaWYgKGxpa2VseShyZWN2X3BhZ2VfY29kZSA9PSBwYWdlX2NvZGUpKQorCQlyZXR1 cm4gcmV0OworCisJLyogc3VjY2Vzc2Z1bCBkaWFnbm9zdGljIGJ1dCB3cm9uZyBwYWdlIGNvZGUu ICBUaGlzIGhhcHBlbnMgdG8gc29tZQorCSAqIFVTQiBkZXZpY2VzLCBqdXN0IHByaW50IGEgbWVz c2FnZSBhbmQgcHJldGVuZCB0aGVyZSB3YXMgYW4gZXJyb3IgKi8KKworCXNkZXZfcHJpbnRrKEtF Uk5fRVJSLCBzZGV2LAorCQkgICAgIldyb25nIGRpYWdub3N0aWMgcGFnZTsgYXNrZWQgZm9yICVk IGdvdCAldVxuIiwKKwkJICAgIHBhZ2VfY29kZSwgcmVjdl9wYWdlX2NvZGUpOworCisJcmV0dXJu IC1FSU5WQUw7CiB9CiAKIHN0YXRpYyBpbnQgc2VzX3NlbmRfZGlhZyhzdHJ1Y3Qgc2NzaV9kZXZp Y2UgKnNkZXYsIGludCBwYWdlX2NvZGUsCkBAIC00MzYsNyArNDU0LDE1IEBAIHN0YXRpYyB2b2lk IHNlc19lbmNsb3N1cmVfZGF0YV9wcm9jZXNzKHN0cnVjdCBlbmNsb3N1cmVfZGV2aWNlICplZGV2 LAogCQkJaWYgKGRlc2NfcHRyKQogCQkJCWRlc2NfcHRyICs9IGxlbjsKIAotCQkJaWYgKGFkZGxf ZGVzY19wdHIpCisJCQlpZiAoYWRkbF9kZXNjX3B0ciAmJgorCQkJICAgIC8qIG9ubHkgZmluZCBh ZGRpdGlvbmFsIGRlc2NyaXB0aW9ucyBmb3Igc3BlY2lmaWMgZGV2aWNlcyAqLworCQkJICAgICh0 eXBlX3B0clswXSA9PSBFTkNMT1NVUkVfQ09NUE9ORU5UX0RFVklDRSB8fAorCQkJICAgICB0eXBl X3B0clswXSA9PSBFTkNMT1NVUkVfQ09NUE9ORU5UX0FSUkFZX0RFVklDRSB8fAorCQkJICAgICB0 eXBlX3B0clswXSA9PSBFTkNMT1NVUkVfQ09NUE9ORU5UX1NBU19FWFBBTkRFUiB8fAorCQkJICAg ICAvKiB0aGVzZSBlbGVtZW50cyBhcmUgb3B0aW9uYWwgKi8KKwkJCSAgICAgdHlwZV9wdHJbMF0g PT0gRU5DTE9TVVJFX0NPTVBPTkVOVF9TQ1NJX1RBUkdFVF9QT1JUIHx8CisJCQkgICAgIHR5cGVf cHRyWzBdID09IEVOQ0xPU1VSRV9DT01QT05FTlRfU0NTSV9JTklUSUFUT1JfUE9SVCB8fAorCQkJ ICAgICB0eXBlX3B0clswXSA9PSBFTkNMT1NVUkVfQ09NUE9ORU5UX0NPTlRST0xMRVJfRUxFQ1RS T05JQ1MpKQogCQkJCWFkZGxfZGVzY19wdHIgKz0gYWRkbF9kZXNjX3B0clsxXSArIDI7CiAKIAkJ fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGkuYwppbmRl eCBiMmNjZGVhLi5mOTc4MDUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGkuYworKysgYi9k cml2ZXJzL3NwaS9zcGkuYwpAQCAtNTU0LDcgKzU1NCw3IEBAIHN0cnVjdCBzcGlfbWFzdGVyICpz cGlfYWxsb2NfbWFzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgc2l6ZSkKIAogCWRl dmljZV9pbml0aWFsaXplKCZtYXN0ZXItPmRldik7CiAJbWFzdGVyLT5kZXYuY2xhc3MgPSAmc3Bp X21hc3Rlcl9jbGFzczsKLQltYXN0ZXItPmRldi5wYXJlbnQgPSBnZXRfZGV2aWNlKGRldik7CisJ bWFzdGVyLT5kZXYucGFyZW50ID0gZGV2OwogCXNwaV9tYXN0ZXJfc2V0X2RldmRhdGEobWFzdGVy LCAmbWFzdGVyWzFdKTsKIAogCXJldHVybiBtYXN0ZXI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0 eS90dHlfYnVmZmVyLmMgYi9kcml2ZXJzL3R0eS90dHlfYnVmZmVyLmMKaW5kZXggNGYwMmY5Yy4u YTg0NjYxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvdHR5X2J1ZmZlci5jCisrKyBiL2RyaXZl cnMvdHR5L3R0eV9idWZmZXIuYwpAQCAtNDQyLDEwICs0NDIsMTIgQEAgc3RhdGljIHZvaWQgZmx1 c2hfdG9fbGRpc2Moc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkJY2hhcl9idWYgPSBoZWFk LT5jaGFyX2J1Zl9wdHIgKyBoZWFkLT5yZWFkOwogCQkJZmxhZ19idWYgPSBoZWFkLT5mbGFnX2J1 Zl9wdHIgKyBoZWFkLT5yZWFkOwogCQkJaGVhZC0+cmVhZCArPSBjb3VudDsKLQkJCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJnR0eS0+YnVmLmxvY2ssIGZsYWdzKTsKLQkJCWRpc2MtPm9wcy0+cmVj ZWl2ZV9idWYodHR5LCBjaGFyX2J1ZiwKKwkJCWlmIChkaXNjLT5vcHMtPnJlY2VpdmVfYnVmKSB7 CisJCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHR5LT5idWYubG9jaywgZmxhZ3MpOworCQkJ CWRpc2MtPm9wcy0+cmVjZWl2ZV9idWYodHR5LCBjaGFyX2J1ZiwKIAkJCQkJCQlmbGFnX2J1Ziwg Y291bnQpOwotCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnR0eS0+YnVmLmxvY2ssIGZsYWdzKTsKKwkJ CQlzcGluX2xvY2tfaXJxc2F2ZSgmdHR5LT5idWYubG9jaywgZmxhZ3MpOworCQkJfQogCQl9CiAJ CWNsZWFyX2JpdChUVFlfRkxVU0hJTkcsICZ0dHktPmZsYWdzKTsKIAl9CmRpZmYgLS1naXQgYS9k cml2ZXJzL3VzYi9jb3JlL2h1Yi5jIGIvZHJpdmVycy91c2IvY29yZS9odWIuYwppbmRleCA3Y2Zl Mjg2Li5kZGUwMzMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCisrKyBiL2Ry aXZlcnMvdXNiL2NvcmUvaHViLmMKQEAgLTE1Myw3ICsxNTMsNyBAQCBFWFBPUlRfU1lNQk9MX0dQ TChlaGNpX2NmX3BvcnRfcmVzZXRfcndzZW0pOwogI2RlZmluZSBIVUJfREVCT1VOQ0VfU1RFUAkg IDI1CiAjZGVmaW5lIEhVQl9ERUJPVU5DRV9TVEFCTEUJIDEwMAogCi0KK3N0YXRpYyB2b2lkIGh1 Yl9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKTsKIHN0YXRpYyBpbnQgdXNiX3Jlc2V0X2FuZF92 ZXJpZnlfZGV2aWNlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KTsKIAogc3RhdGljIGlubGluZSBj aGFyICpwb3J0c3BlZWQoc3RydWN0IHVzYl9odWIgKmh1YiwgaW50IHBvcnRzdGF0dXMpCkBAIC03 OTIsMTAgKzc5MiwyMCBAQCBzdGF0aWMgdm9pZCBodWJfYWN0aXZhdGUoc3RydWN0IHVzYl9odWIg Kmh1YiwgZW51bSBodWJfYWN0aXZhdGlvbl90eXBlIHR5cGUpCiAJdW5zaWduZWQgZGVsYXk7CiAK IAkvKiBDb250aW51ZSBhIHBhcnRpYWwgaW5pdGlhbGl6YXRpb24gKi8KLQlpZiAodHlwZSA9PSBI VUJfSU5JVDIpCi0JCWdvdG8gaW5pdDI7Ci0JaWYgKHR5cGUgPT0gSFVCX0lOSVQzKQorCWlmICh0 eXBlID09IEhVQl9JTklUMiB8fCB0eXBlID09IEhVQl9JTklUMykgeworCQlkZXZpY2VfbG9jayho dWItPmludGZkZXYpOworCisJCS8qIFdhcyB0aGUgaHViIGRpc2Nvbm5lY3RlZCB3aGlsZSB3ZSB3 ZXJlIHdhaXRpbmc/ICovCisJCWlmIChodWItPmRpc2Nvbm5lY3RlZCkgeworCQkJZGV2aWNlX3Vu bG9jayhodWItPmludGZkZXYpOworCQkJa3JlZl9wdXQoJmh1Yi0+a3JlZiwgaHViX3JlbGVhc2Up OworCQkJcmV0dXJuOworCQl9CisJCWlmICh0eXBlID09IEhVQl9JTklUMikKKwkJCWdvdG8gaW5p dDI7CiAJCWdvdG8gaW5pdDM7CisJfQorCWtyZWZfZ2V0KCZodWItPmtyZWYpOwogCiAJLyogVGhl IHN1cGVyc3BlZWQgaHViIGV4Y2VwdCBmb3Igcm9vdCBodWIgaGFzIHRvIHVzZSBIdWIgRGVwdGgK IAkgKiB2YWx1ZSBhcyBhbiBvZmZzZXQgaW50byB0aGUgcm91dGUgc3RyaW5nIHRvIGxvY2F0ZSB0 aGUgYml0cwpAQCAtOTg0LDYgKzk5NCw3IEBAIHN0YXRpYyB2b2lkIGh1Yl9hY3RpdmF0ZShzdHJ1 Y3QgdXNiX2h1YiAqaHViLCBlbnVtIGh1Yl9hY3RpdmF0aW9uX3R5cGUgdHlwZSkKIAkJCVBSRVBB UkVfREVMQVlFRF9XT1JLKCZodWItPmluaXRfd29yaywgaHViX2luaXRfZnVuYzMpOwogCQkJc2No ZWR1bGVfZGVsYXllZF93b3JrKCZodWItPmluaXRfd29yaywKIAkJCQkJbXNlY3NfdG9famlmZmll cyhkZWxheSkpOworCQkJZGV2aWNlX3VubG9jayhodWItPmludGZkZXYpOwogCQkJcmV0dXJuOwkJ LyogQ29udGludWVzIGF0IGluaXQzOiBiZWxvdyAqLwogCQl9IGVsc2UgewogCQkJbXNsZWVwKGRl bGF5KTsKQEAgLTEwMDQsNiArMTAxNSwxMSBAQCBzdGF0aWMgdm9pZCBodWJfYWN0aXZhdGUoc3Ry dWN0IHVzYl9odWIgKmh1YiwgZW51bSBodWJfYWN0aXZhdGlvbl90eXBlIHR5cGUpCiAJLyogQWxs b3cgYXV0b3N1c3BlbmQgaWYgaXQgd2FzIHN1cHByZXNzZWQgKi8KIAlpZiAodHlwZSA8PSBIVUJf SU5JVDMpCiAJCXVzYl9hdXRvcG1fcHV0X2ludGVyZmFjZV9hc3luYyh0b191c2JfaW50ZXJmYWNl KGh1Yi0+aW50ZmRldikpOworCisJaWYgKHR5cGUgPT0gSFVCX0lOSVQyIHx8IHR5cGUgPT0gSFVC X0lOSVQzKQorCQlkZXZpY2VfdW5sb2NrKGh1Yi0+aW50ZmRldik7CisKKwlrcmVmX3B1dCgmaHVi LT5rcmVmLCBodWJfcmVsZWFzZSk7CiB9CiAKIC8qIEltcGxlbWVudCB0aGUgY29udGludWF0aW9u cyBmb3IgdGhlIGRlbGF5cyBhYm92ZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFs L2lwYXEuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pcGFxLmMKaW5kZXggNDczNTkzMS4uZmEzZGRm OSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuYworKysgYi9kcml2ZXJzL3Vz Yi9zZXJpYWwvaXBhcS5jCkBAIC01ODIsNyArNTgyLDggQEAgc3RhdGljIGludCBpcGFxX29wZW4o c3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwKIAkgKiB0aHJvdWdoLiBTaW5jZSB0aGlzIGhhcyBhIHJl YXNvbmFibHkgaGlnaCBmYWlsdXJlIHJhdGUsIHdlIHJldHJ5CiAJICogc2V2ZXJhbCB0aW1lcy4K IAkgKi8KLQl3aGlsZSAocmV0cmllcy0tKSB7CisJd2hpbGUgKHJldHJpZXMpIHsKKwkJcmV0cmll cy0tOwogCQlyZXN1bHQgPSB1c2JfY29udHJvbF9tc2coc2VyaWFsLT5kZXYsCiAJCQkJdXNiX3Nu ZGN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwgMHgyMiwgMHgyMSwKIAkJCQkweDEsIDAsIE5VTEws IDAsIDEwMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZzbC1kaXUtZmIuYyBiL2RyaXZl cnMvdmlkZW8vZnNsLWRpdS1mYi5jCmluZGV4IGExNmJlZWIuLmI3ZjY0ODUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdmlkZW8vZnNsLWRpdS1mYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZnNsLWRpdS1m Yi5jCkBAIC00NDYsNyArNDQ2LDEwIEBAIHN0YXRpYyBlbnVtIGZzbF9kaXVfbW9uaXRvcl9wb3J0 IGZzbF9kaXVfbmFtZV90b19wb3J0KGNvbnN0IGNoYXIgKnMpCiAJCQlwb3J0ID0gRlNMX0RJVV9Q T1JUX0RMVkRTOwogCX0KIAotCXJldHVybiBkaXVfb3BzLnZhbGlkX21vbml0b3JfcG9ydChwb3J0 KTsKKwlpZiAoZGl1X29wcy52YWxpZF9tb25pdG9yX3BvcnQpCisJCXBvcnQgPSBkaXVfb3BzLnZh bGlkX21vbml0b3JfcG9ydChwb3J0KTsKKworCXJldHVybiBwb3J0OwogfQogCiAvKioKQEAgLTE3 NTksNiArMTc2MiwxNCBAQCBzdGF0aWMgaW50IF9faW5pdCBmc2xfZGl1X2luaXQodm9pZCkKICNl bHNlCiAJbW9uaXRvcl9wb3J0ID0gZnNsX2RpdV9uYW1lX3RvX3BvcnQobW9uaXRvcl9zdHJpbmcp OwogI2VuZGlmCisKKwkvKgorCSAqIE11c3QgdG8gdmVyaWZ5IHNldF9waXhlbF9jbG9jay4gSWYg bm90IGltcGxlbWVudCBvbiBwbGF0Zm9ybSwKKwkgKiB0aGVuIHRoYXQgbWVhbnMgdGhhdCB0aGVy ZSBpcyBubyBwbGF0Zm9ybSBzdXBwb3J0IGZvciB0aGUgRElVLgorCSAqLworCWlmICghZGl1X29w cy5zZXRfcGl4ZWxfY2xvY2spCisJCXJldHVybiAtRU5PREVWOworCiAJcHJfaW5mbygiRnJlZXNj YWxlIERpc3BsYXkgSW50ZXJmYWNlIFVuaXQgKERJVSkgZnJhbWVidWZmZXIgZHJpdmVyXG4iKTsK IAogI2lmZGVmIENPTkZJR19OT1RfQ09IRVJFTlRfQ0FDSEUKZGlmZiAtLWdpdCBhL2RyaXZlcnMv eGVuL3hlbi1wY2liYWNrL3BjaWJhY2suaCBiL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJh Y2suaAppbmRleCBlOWI0MDExLi45NDQ3ZmNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi94ZW4t cGNpYmFjay9wY2liYWNrLmgKKysrIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFjay5o CkBAIC0zNyw2ICszNyw3IEBAIHN0cnVjdCB4ZW5fcGNpYmtfZGV2aWNlIHsKIAlzdHJ1Y3QgeGVu X3BjaV9zaGFyZWRpbmZvICpzaF9pbmZvOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3RydWN0 IHdvcmtfc3RydWN0IG9wX3dvcms7CisJc3RydWN0IHhlbl9wY2lfb3Agb3A7CiB9OwogCiBzdHJ1 Y3QgeGVuX3BjaWJrX2Rldl9kYXRhIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbi1wY2li YWNrL3BjaWJhY2tfb3BzLmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrX29wcy5j CmluZGV4IGU5NDdlNzguLjMxYzg1ODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbi1wY2li YWNrL3BjaWJhY2tfb3BzLmMKKysrIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19v cHMuYwpAQCAtNjgsNiArNjgsMTMgQEAgc3RhdGljIHZvaWQgeGVuX3BjaWJrX2NvbnRyb2xfaXNy KHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCByZXNldCkKIAkJZW5hYmxlID8gImVuYWJsZSIgOiAi ZGlzYWJsZSIpOwogCiAJaWYgKGVuYWJsZSkgeworCQkvKgorCQkgKiBUaGUgTVNJIG9yIE1TSS1Y IHNob3VsZCBub3QgaGF2ZSBhbiBJUlEgaGFuZGxlci4gT3RoZXJ3aXNlCisJCSAqIGlmIHRoZSBn dWVzdCB0ZXJtaW5hdGVzIHdlIEJVR19PTiBpbiBmcmVlX21zaV9pcnFzLgorCQkgKi8KKwkJaWYg KGRldi0+bXNpX2VuYWJsZWQgfHwgZGV2LT5tc2l4X2VuYWJsZWQpCisJCQlnb3RvIG91dDsKKwog CQlyYyA9IHJlcXVlc3RfaXJxKGRldl9kYXRhLT5pcnEsCiAJCQkJeGVuX3BjaWJrX2d1ZXN0X2lu dGVycnVwdCwgSVJRRl9TSEFSRUQsCiAJCQkJZGV2X2RhdGEtPmlycV9uYW1lLCBkZXYpOwpAQCAt MTQyLDcgKzE0OSwxMiBAQCBpbnQgeGVuX3BjaWJrX2VuYWJsZV9tc2koc3RydWN0IHhlbl9wY2li a19kZXZpY2UgKnBkZXYsCiAJaWYgKHVubGlrZWx5KHZlcmJvc2VfcmVxdWVzdCkpCiAJCXByaW50 ayhLRVJOX0RFQlVHIERSVl9OQU1FICI6ICVzOiBlbmFibGUgTVNJXG4iLCBwY2lfbmFtZShkZXYp KTsKIAotCXN0YXR1cyA9IHBjaV9lbmFibGVfbXNpKGRldik7CisJaWYgKGRldi0+bXNpX2VuYWJs ZWQpCisJCXN0YXR1cyA9IC1FQUxSRUFEWTsKKwllbHNlIGlmIChkZXYtPm1zaXhfZW5hYmxlZCkK KwkJc3RhdHVzID0gLUVOWElPOworCWVsc2UKKwkJc3RhdHVzID0gcGNpX2VuYWJsZV9tc2koZGV2 KTsKIAogCWlmIChzdGF0dXMpIHsKIAkJcHJfd2Fybl9yYXRlbGltaXRlZChEUlZfTkFNRSAiOiAl czogZXJyb3IgZW5hYmxpbmcgTVNJIGZvciBndWVzdCAldTogZXJyICVkXG4iLApAQCAtMTcxLDIw ICsxODMsMjMgQEAgc3RhdGljCiBpbnQgeGVuX3BjaWJrX2Rpc2FibGVfbXNpKHN0cnVjdCB4ZW5f cGNpYmtfZGV2aWNlICpwZGV2LAogCQkJICBzdHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgeGVu X3BjaV9vcCAqb3ApCiB7Ci0Jc3RydWN0IHhlbl9wY2lia19kZXZfZGF0YSAqZGV2X2RhdGE7Ci0K IAlpZiAodW5saWtlbHkodmVyYm9zZV9yZXF1ZXN0KSkKIAkJcHJpbnRrKEtFUk5fREVCVUcgRFJW X05BTUUgIjogJXM6IGRpc2FibGUgTVNJXG4iLAogCQkgICAgICAgcGNpX25hbWUoZGV2KSk7Ci0J cGNpX2Rpc2FibGVfbXNpKGRldik7CiAKKwlpZiAoZGV2LT5tc2lfZW5hYmxlZCkgeworCQlzdHJ1 Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpkZXZfZGF0YTsKKworCQlwY2lfZGlzYWJsZV9tc2koZGV2 KTsKKworCQlkZXZfZGF0YSA9IHBjaV9nZXRfZHJ2ZGF0YShkZXYpOworCQlpZiAoZGV2X2RhdGEp CisJCQlkZXZfZGF0YS0+YWNrX2ludHIgPSAxOworCX0KIAlvcC0+dmFsdWUgPSBkZXYtPmlycSA/ IHhlbl9waXJxX2Zyb21faXJxKGRldi0+aXJxKSA6IDA7CiAJaWYgKHVubGlrZWx5KHZlcmJvc2Vf cmVxdWVzdCkpCiAJCXByaW50ayhLRVJOX0RFQlVHIERSVl9OQU1FICI6ICVzOiBNU0k6ICVkXG4i LCBwY2lfbmFtZShkZXYpLAogCQkJb3AtPnZhbHVlKTsKLQlkZXZfZGF0YSA9IHBjaV9nZXRfZHJ2 ZGF0YShkZXYpOwotCWlmIChkZXZfZGF0YSkKLQkJZGV2X2RhdGEtPmFja19pbnRyID0gMTsKIAly ZXR1cm4gMDsKIH0KIApAQCAtMTk1LDEzICsyMTAsMjYgQEAgaW50IHhlbl9wY2lia19lbmFibGVf bXNpeChzdHJ1Y3QgeGVuX3BjaWJrX2RldmljZSAqcGRldiwKIAlzdHJ1Y3QgeGVuX3BjaWJrX2Rl dl9kYXRhICpkZXZfZGF0YTsKIAlpbnQgaSwgcmVzdWx0OwogCXN0cnVjdCBtc2l4X2VudHJ5ICpl bnRyaWVzOworCXUxNiBjbWQ7CiAKIAlpZiAodW5saWtlbHkodmVyYm9zZV9yZXF1ZXN0KSkKIAkJ cHJpbnRrKEtFUk5fREVCVUcgRFJWX05BTUUgIjogJXM6IGVuYWJsZSBNU0ktWFxuIiwKIAkJICAg ICAgIHBjaV9uYW1lKGRldikpOworCiAJaWYgKG9wLT52YWx1ZSA+IFNIX0lORk9fTUFYX1ZFQykK IAkJcmV0dXJuIC1FSU5WQUw7CiAKKwlpZiAoZGV2LT5tc2l4X2VuYWJsZWQpCisJCXJldHVybiAt RUFMUkVBRFk7CisKKwkvKgorCSAqIFBDSV9DT01NQU5EX01FTU9SWSBtdXN0IGJlIGVuYWJsZWQs IG90aGVyd2lzZSB3ZSBtYXkgbm90IGJlIGFibGUKKwkgKiB0byBhY2Nlc3MgdGhlIEJBUnMgd2hl cmUgdGhlIE1TSS1YIGVudHJpZXMgcmVzaWRlLgorCSAqLworCXBjaV9yZWFkX2NvbmZpZ193b3Jk KGRldiwgUENJX0NPTU1BTkQsICZjbWQpOworCWlmIChkZXYtPm1zaV9lbmFibGVkIHx8ICEoY21k ICYgUENJX0NPTU1BTkRfTUVNT1JZKSkKKwkJcmV0dXJuIC1FTlhJTzsKKwogCWVudHJpZXMgPSBr bWFsbG9jKG9wLT52YWx1ZSAqIHNpemVvZigqZW50cmllcyksIEdGUF9LRVJORUwpOwogCWlmIChl bnRyaWVzID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMjQzLDIzICsyNzEsMjcgQEAg c3RhdGljCiBpbnQgeGVuX3BjaWJrX2Rpc2FibGVfbXNpeChzdHJ1Y3QgeGVuX3BjaWJrX2Rldmlj ZSAqcGRldiwKIAkJCSAgIHN0cnVjdCBwY2lfZGV2ICpkZXYsIHN0cnVjdCB4ZW5fcGNpX29wICpv cCkKIHsKLQlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpkZXZfZGF0YTsKIAlpZiAodW5saWtl bHkodmVyYm9zZV9yZXF1ZXN0KSkKIAkJcHJpbnRrKEtFUk5fREVCVUcgRFJWX05BTUUgIjogJXM6 IGRpc2FibGUgTVNJLVhcbiIsCiAJCQlwY2lfbmFtZShkZXYpKTsKLQlwY2lfZGlzYWJsZV9tc2l4 KGRldik7CiAKKwlpZiAoZGV2LT5tc2l4X2VuYWJsZWQpIHsKKwkJc3RydWN0IHhlbl9wY2lia19k ZXZfZGF0YSAqZGV2X2RhdGE7CisKKwkJcGNpX2Rpc2FibGVfbXNpeChkZXYpOworCisJCWRldl9k YXRhID0gcGNpX2dldF9kcnZkYXRhKGRldik7CisJCWlmIChkZXZfZGF0YSkKKwkJCWRldl9kYXRh LT5hY2tfaW50ciA9IDE7CisJfQogCS8qCiAJICogU1ItSU9WIGRldmljZXMgKHdoaWNoIGRvbid0 IGhhdmUgYW55IGxlZ2FjeSBJUlEpIGhhdmUKIAkgKiBhbiB1bmRlZmluZWQgSVJRIHZhbHVlIG9m IHplcm8uCiAJICovCiAJb3AtPnZhbHVlID0gZGV2LT5pcnEgPyB4ZW5fcGlycV9mcm9tX2lycShk ZXYtPmlycSkgOiAwOwogCWlmICh1bmxpa2VseSh2ZXJib3NlX3JlcXVlc3QpKQotCQlwcmludGso S0VSTl9ERUJVRyBEUlZfTkFNRSAiOiAlczogTVNJLVg6ICVkXG4iLCBwY2lfbmFtZShkZXYpLAot CQkJb3AtPnZhbHVlKTsKLQlkZXZfZGF0YSA9IHBjaV9nZXRfZHJ2ZGF0YShkZXYpOwotCWlmIChk ZXZfZGF0YSkKLQkJZGV2X2RhdGEtPmFja19pbnRyID0gMTsKKwkJcHJpbnRrKEtFUk5fREVCVUcg RFJWX05BTUUgIjogJXM6IE1TSS1YOiAlZFxuIiwKKwkJICAgICAgIHBjaV9uYW1lKGRldiksIG9w LT52YWx1ZSk7CiAJcmV0dXJuIDA7CiB9CiAjZW5kaWYKQEAgLTI5Niw5ICszMjgsMTEgQEAgdm9p ZCB4ZW5fcGNpYmtfZG9fb3Aoc3RydWN0IHdvcmtfc3RydWN0ICpkYXRhKQogCQljb250YWluZXJf b2YoZGF0YSwgc3RydWN0IHhlbl9wY2lia19kZXZpY2UsIG9wX3dvcmspOwogCXN0cnVjdCBwY2lf ZGV2ICpkZXY7CiAJc3RydWN0IHhlbl9wY2lia19kZXZfZGF0YSAqZGV2X2RhdGEgPSBOVUxMOwot CXN0cnVjdCB4ZW5fcGNpX29wICpvcCA9ICZwZGV2LT5zaF9pbmZvLT5vcDsKKwlzdHJ1Y3QgeGVu X3BjaV9vcCAqb3AgPSAmcGRldi0+b3A7CiAJaW50IHRlc3RfaW50eCA9IDA7CiAKKwkqb3AgPSBw ZGV2LT5zaF9pbmZvLT5vcDsKKwliYXJyaWVyKCk7CiAJZGV2ID0geGVuX3BjaWJrX2dldF9wY2lf ZGV2KHBkZXYsIG9wLT5kb21haW4sIG9wLT5idXMsIG9wLT5kZXZmbik7CiAKIAlpZiAoZGV2ID09 IE5VTEwpCkBAIC0zNDAsNiArMzc0LDE3IEBAIHZvaWQgeGVuX3BjaWJrX2RvX29wKHN0cnVjdCB3 b3JrX3N0cnVjdCAqZGF0YSkKIAkJaWYgKChkZXZfZGF0YS0+ZW5hYmxlX2ludHggIT0gdGVzdF9p bnR4KSkKIAkJCXhlbl9wY2lia19jb250cm9sX2lzcihkZXYsIDAgLyogbm8gcmVzZXQgKi8pOwog CX0KKwlwZGV2LT5zaF9pbmZvLT5vcC5lcnIgPSBvcC0+ZXJyOworCXBkZXYtPnNoX2luZm8tPm9w LnZhbHVlID0gb3AtPnZhbHVlOworI2lmZGVmIENPTkZJR19QQ0lfTVNJCisJaWYgKG9wLT5jbWQg PT0gWEVOX1BDSV9PUF9lbmFibGVfbXNpeCAmJiBvcC0+ZXJyID09IDApIHsKKwkJdW5zaWduZWQg aW50IGk7CisKKwkJZm9yIChpID0gMDsgaSA8IG9wLT52YWx1ZTsgaSsrKQorCQkJcGRldi0+c2hf aW5mby0+b3AubXNpeF9lbnRyaWVzW2ldLnZlY3RvciA9CisJCQkJb3AtPm1zaXhfZW50cmllc1tp XS52ZWN0b3I7CisJfQorI2VuZGlmCiAJLyogVGVsbCB0aGUgZHJpdmVyIGRvbWFpbiB0aGF0IHdl J3JlIGRvbmUuICovCiAJd21iKCk7CiAJY2xlYXJfYml0KF9YRU5fUENJRl9hY3RpdmUsICh1bnNp Z25lZCBsb25nICopJnBkZXYtPnNoX2luZm8tPmZsYWdzKTsKZGlmZiAtLWdpdCBhL2ZzL29jZnMy L3Jlc2l6ZS5jIGIvZnMvb2NmczIvcmVzaXplLmMKaW5kZXggZWM1NWFkZC4uMmNhNjRmYSAxMDA2 NDQKLS0tIGEvZnMvb2NmczIvcmVzaXplLmMKKysrIGIvZnMvb2NmczIvcmVzaXplLmMKQEAgLTU2 LDExICs1NiwxMiBAQCBzdGF0aWMgdTE2IG9jZnMyX2NhbGNfbmV3X2JhY2t1cF9zdXBlcihzdHJ1 Y3QgaW5vZGUgKmlub2RlLAogCQkJCSAgICAgICBpbnQgbmV3X2NsdXN0ZXJzLAogCQkJCSAgICAg ICB1MzIgZmlyc3RfbmV3X2NsdXN0ZXIsCiAJCQkJICAgICAgIHUxNiBjbF9jcGcsCisJCQkJICAg ICAgIHUxNiBvbGRfYmdfY2x1c3RlcnMsCiAJCQkJICAgICAgIGludCBzZXQpCiB7CiAJaW50IGk7 CiAJdTE2IGJhY2t1cHMgPSAwOwotCXUzMiBjbHVzdGVyOworCXUzMiBjbHVzdGVyLCBsZ2RfY2x1 c3RlcjsKIAl1NjQgYmxrbm8sIGdkX2Jsa25vLCBsZ2RfYmxrbm8gPSBsZTY0X3RvX2NwdShnZC0+ YmdfYmxrbm8pOwogCiAJZm9yIChpID0gMDsgaSA8IE9DRlMyX01BWF9CQUNLVVBfU1VQRVJCTE9D S1M7IGkrKykgewpAQCAtNzMsNiArNzQsMTIgQEAgc3RhdGljIHUxNiBvY2ZzMl9jYWxjX25ld19i YWNrdXBfc3VwZXIoc3RydWN0IGlub2RlICppbm9kZSwKIAkJZWxzZSBpZiAoZ2RfYmxrbm8gPiBs Z2RfYmxrbm8pCiAJCQlicmVhazsKIAorCQkvKiBjaGVjayBpZiBhbHJlYWR5IGRvbmUgYmFja3Vw IHN1cGVyICovCisJCWxnZF9jbHVzdGVyID0gb2NmczJfYmxvY2tzX3RvX2NsdXN0ZXJzKGlub2Rl LT5pX3NiLCBsZ2RfYmxrbm8pOworCQlsZ2RfY2x1c3RlciArPSBvbGRfYmdfY2x1c3RlcnM7CisJ CWlmIChsZ2RfY2x1c3RlciA+PSBjbHVzdGVyKQorCQkJY29udGludWU7CisKIAkJaWYgKHNldCkK IAkJCW9jZnMyX3NldF9iaXQoY2x1c3RlciAlIGNsX2NwZywKIAkJCQkgICAgICAodW5zaWduZWQg bG9uZyAqKWdkLT5iZ19iaXRtYXApOwpAQCAtMTAxLDYgKzEwOCw3IEBAIHN0YXRpYyBpbnQgb2Nm czJfdXBkYXRlX2xhc3RfZ3JvdXBfYW5kX2lub2RlKGhhbmRsZV90ICpoYW5kbGUsCiAJdTE2IGNo YWluLCBudW1fYml0cywgYmFja3VwcyA9IDA7CiAJdTE2IGNsX2JwYyA9IGxlMTZfdG9fY3B1KGNs LT5jbF9icGMpOwogCXUxNiBjbF9jcGcgPSBsZTE2X3RvX2NwdShjbC0+Y2xfY3BnKTsKKwl1MTYg b2xkX2JnX2NsdXN0ZXJzOwogCiAJdHJhY2Vfb2NmczJfdXBkYXRlX2xhc3RfZ3JvdXBfYW5kX2lu b2RlKG5ld19jbHVzdGVycywKIAkJCQkJCWZpcnN0X25ld19jbHVzdGVyKTsKQEAgLTExNCw2ICsx MjIsNyBAQCBzdGF0aWMgaW50IG9jZnMyX3VwZGF0ZV9sYXN0X2dyb3VwX2FuZF9pbm9kZShoYW5k bGVfdCAqaGFuZGxlLAogCiAJZ3JvdXAgPSAoc3RydWN0IG9jZnMyX2dyb3VwX2Rlc2MgKilncm91 cF9iaC0+Yl9kYXRhOwogCisJb2xkX2JnX2NsdXN0ZXJzID0gbGUxNl90b19jcHUoZ3JvdXAtPmJn X2JpdHMpIC8gY2xfYnBjOwogCS8qIHVwZGF0ZSB0aGUgZ3JvdXAgZmlyc3QuICovCiAJbnVtX2Jp dHMgPSBuZXdfY2x1c3RlcnMgKiBjbF9icGM7CiAJbGUxNl9hZGRfY3B1KCZncm91cC0+YmdfYml0 cywgbnVtX2JpdHMpOwpAQCAtMTI5LDcgKzEzOCw3IEBAIHN0YXRpYyBpbnQgb2NmczJfdXBkYXRl X2xhc3RfZ3JvdXBfYW5kX2lub2RlKGhhbmRsZV90ICpoYW5kbGUsCiAJCQkJCQkgICAgIGdyb3Vw LAogCQkJCQkJICAgICBuZXdfY2x1c3RlcnMsCiAJCQkJCQkgICAgIGZpcnN0X25ld19jbHVzdGVy LAotCQkJCQkJICAgICBjbF9jcGcsIDEpOworCQkJCQkJICAgICBjbF9jcGcsIG9sZF9iZ19jbHVz dGVycywgMSk7CiAJCWxlMTZfYWRkX2NwdSgmZ3JvdXAtPmJnX2ZyZWVfYml0c19jb3VudCwgLTEg KiBiYWNrdXBzKTsKIAl9CiAKQEAgLTE2OSw3ICsxNzgsNyBAQCBvdXRfcm9sbGJhY2s6CiAJCQkJ CSAgICBncm91cCwKIAkJCQkJICAgIG5ld19jbHVzdGVycywKIAkJCQkJICAgIGZpcnN0X25ld19j bHVzdGVyLAotCQkJCQkgICAgY2xfY3BnLCAwKTsKKwkJCQkJICAgIGNsX2NwZywgb2xkX2JnX2Ns dXN0ZXJzLCAwKTsKIAkJbGUxNl9hZGRfY3B1KCZncm91cC0+YmdfZnJlZV9iaXRzX2NvdW50LCBi YWNrdXBzKTsKIAkJbGUxNl9hZGRfY3B1KCZncm91cC0+YmdfYml0cywgLTEgKiBudW1fYml0cyk7 CiAJCWxlMTZfYWRkX2NwdSgmZ3JvdXAtPmJnX2ZyZWVfYml0c19jb3VudCwgLTEgKiBudW1fYml0 cyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2VuY2xvc3VyZS5oIGIvaW5jbHVkZS9saW51 eC9lbmNsb3N1cmUuaAppbmRleCA5YTMzYzVmLi5mNmMyMjllIDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L2VuY2xvc3VyZS5oCisrKyBiL2luY2x1ZGUvbGludXgvZW5jbG9zdXJlLmgKQEAgLTI5 LDcgKzI5LDExIEBACiAvKiBBIGZldyBnZW5lcmljIHR5cGVzIC4uLiB0YWtlbiBmcm9tIHNlcy0y ICovCiBlbnVtIGVuY2xvc3VyZV9jb21wb25lbnRfdHlwZSB7CiAJRU5DTE9TVVJFX0NPTVBPTkVO VF9ERVZJQ0UgPSAweDAxLAorCUVOQ0xPU1VSRV9DT01QT05FTlRfQ09OVFJPTExFUl9FTEVDVFJP TklDUyA9IDB4MDcsCisJRU5DTE9TVVJFX0NPTVBPTkVOVF9TQ1NJX1RBUkdFVF9QT1JUID0gMHgx NCwKKwlFTkNMT1NVUkVfQ09NUE9ORU5UX1NDU0lfSU5JVElBVE9SX1BPUlQgPSAweDE1LAogCUVO Q0xPU1VSRV9DT01QT05FTlRfQVJSQVlfREVWSUNFID0gMHgxNywKKwlFTkNMT1NVUkVfQ09NUE9O RU5UX1NBU19FWFBBTkRFUiA9IDB4MTgsCiB9OwogCiAvKiBzZXMtMiBjb21tb24gZWxlbWVudCBz dGF0dXMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2tidWZmLmggYi9pbmNsdWRlL2xp bnV4L3NrYnVmZi5oCmluZGV4IGQwYzllNmQuLmQ5YzRhNjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvc2tidWZmLmgKKysrIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaApAQCAtMjEzNCw4ICsy MTM0LDcgQEAgZXh0ZXJuIGludAkgICAgICAgc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoY29uc3Qg c3RydWN0IHNrX2J1ZmYgKmZyb20sCiAJCQkJCSAgICAgICBpbnQgc2l6ZSk7CiBleHRlcm4gaW50 CSAgICAgICBza2JfY29weV9hbmRfY3N1bV9kYXRhZ3JhbV9pb3ZlYyhzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAogCQkJCQkJCWludCBobGVuLAotCQkJCQkJCXN0cnVjdCBpb3ZlYyAqaW92LAotCQkJCQkJ CWludCBsZW4pOworCQkJCQkJCXN0cnVjdCBpb3ZlYyAqaW92KTsKIGV4dGVybiBpbnQJICAgICAg IHNrYl9jb3B5X2RhdGFncmFtX2Zyb21faW92ZWMoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJ CSAgICBpbnQgb2Zmc2V0LAogCQkJCQkJICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqZnJvbSwKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oIGIvaW5jbHVkZS9uZXQvc2N0cC9z dHJ1Y3RzLmgKaW5kZXggMmNjY2Q4Mi4uOTA2OWY4ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv c2N0cC9zdHJ1Y3RzLmgKKysrIGIvaW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmgKQEAgLTE1ODYs NyArMTU4Niw4IEBAIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uIHsKIAkJICogICAgICAgICAgICAg OiBvcmRlci4gIFdoZW4gREFUQSBjaHVua3MgYXJlIG91dCBvZiBvcmRlciwKIAkJICogICAgICAg ICAgICAgOiBTQUNLJ3MgYXJlIG5vdCBkZWxheWVkIChzZWUgU2VjdGlvbiA2KS4KIAkJICovCi0J CV9fdTggICAgc2Fja19uZWVkZWQ7ICAgICAvKiBEbyB3ZSBuZWVkIHRvIHNhY2sgdGhlIHBlZXI/ ICovCisJCV9fdTggICAgc2Fja19uZWVkZWQ6MSwgICAgIC8qIERvIHdlIG5lZWQgdG8gc2FjayB0 aGUgcGVlcj8gKi8KKwkJCXplcm9fd2luZG93X2Fubm91bmNlZDoxOwogCQlfX3UzMglzYWNrX2Nu dDsKIAogCQkvKiBUaGVzZSBhcmUgY2FwYWJpbGl0aWVzIHdoaWNoIG91ciBwZWVyIGFkdmVydGlz ZWQuICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc29jay5oIGIvaW5jbHVkZS9uZXQvc29j ay5oCmluZGV4IGNlNmY2NDEuLjM4ZmNlZTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NvY2su aAorKysgYi9pbmNsdWRlL25ldC9zb2NrLmgKQEAgLTMwMiw4ICszMDIsOCBAQCBzdHJ1Y3Qgc29j ayB7CiAJCQkJc2tfbm9fY2hlY2sgIDogMiwKIAkJCQlza191c2VybG9ja3MgOiA0LAogCQkJCXNr X3Byb3RvY29sICA6IDgsCi0jZGVmaW5lIFNLX1BST1RPQ09MX01BWCAoKHU4KX4wVSkKIAkJCQlz a190eXBlICAgICAgOiAxNjsKKyNkZWZpbmUgU0tfUFJPVE9DT0xfTUFYICgodTgpfjBVKQogCWtt ZW1jaGVja19iaXRmaWVsZF9lbmQoZmxhZ3MpOwogCWludAkJCXNrX3dtZW1fcXVldWVkOwogCWdm cF90CQkJc2tfYWxsb2NhdGlvbjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvdGx2LmggYi9p bmNsdWRlL3NvdW5kL3Rsdi5oCmluZGV4IDcwNjdlMmQuLjQ5ZTdiZDYgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvc291bmQvdGx2LmgKKysrIGIvaW5jbHVkZS9zb3VuZC90bHYuaApAQCAtMzgsMjEgKzM4 LDI2IEBACiAjZGVmaW5lIFNORFJWX0NUTF9UTFZUX0RCX01JTk1BWCA0CS8qIGRCIHNjYWxlIHdp dGggbWluL21heCAqLwogI2RlZmluZSBTTkRSVl9DVExfVExWVF9EQl9NSU5NQVhfTVVURSA1CS8q IGRCIHNjYWxlIHdpdGggbWluL21heCB3aXRoIG11dGUgKi8KIAorI2RlZmluZSBUTFZfSVRFTSh0 eXBlLCAuLi4pIFwKKwkodHlwZSksIFRMVl9MRU5HVEgoX19WQV9BUkdTX18pLCBfX1ZBX0FSR1Nf XworI2RlZmluZSBUTFZfTEVOR1RIKC4uLikgXAorCSgodW5zaWduZWQgaW50KXNpemVvZigoY29u c3QgdW5zaWduZWQgaW50W10pIHsgX19WQV9BUkdTX18gfSkpCisKICNkZWZpbmUgVExWX0RCX1ND QUxFX01BU0sJMHhmZmZmCiAjZGVmaW5lIFRMVl9EQl9TQ0FMRV9NVVRFCTB4MTAwMDAKICNkZWZp bmUgVExWX0RCX1NDQUxFX0lURU0obWluLCBzdGVwLCBtdXRlKQkJCVwKLQlTTkRSVl9DVExfVExW VF9EQl9TQ0FMRSwgMiAqIHNpemVvZih1bnNpZ25lZCBpbnQpLAlcCi0JKG1pbiksICgoc3RlcCkg JiBUTFZfREJfU0NBTEVfTUFTSykgfCAoKG11dGUpID8gVExWX0RCX1NDQUxFX01VVEUgOiAwKQor CVRMVl9JVEVNKFNORFJWX0NUTF9UTFZUX0RCX1NDQUxFLAkJCVwKKwkJIChtaW4pLAkJCQkJXAor CQkgKChzdGVwKSAmIFRMVl9EQl9TQ0FMRV9NQVNLKSB8CQlcCisJCQkoKG11dGUpID8gVExWX0RC X1NDQUxFX01VVEUgOiAwKSkKICNkZWZpbmUgREVDTEFSRV9UTFZfREJfU0NBTEUobmFtZSwgbWlu LCBzdGVwLCBtdXRlKSBcCiAJdW5zaWduZWQgaW50IG5hbWVbXSA9IHsgVExWX0RCX1NDQUxFX0lU RU0obWluLCBzdGVwLCBtdXRlKSB9CiAKIC8qIGRCIHNjYWxlIHNwZWNpZmllZCB3aXRoIG1pbi9t YXggdmFsdWVzIGluc3RlYWQgb2Ygc3RlcCAqLwogI2RlZmluZSBUTFZfREJfTUlOTUFYX0lURU0o bWluX2RCLCBtYXhfZEIpCQkJXAotCVNORFJWX0NUTF9UTFZUX0RCX01JTk1BWCwgMiAqIHNpemVv Zih1bnNpZ25lZCBpbnQpLAlcCi0JKG1pbl9kQiksIChtYXhfZEIpCisJVExWX0lURU0oU05EUlZf Q1RMX1RMVlRfREJfTUlOTUFYLCAobWluX2RCKSwgKG1heF9kQikpCiAjZGVmaW5lIFRMVl9EQl9N SU5NQVhfTVVURV9JVEVNKG1pbl9kQiwgbWF4X2RCKQkJCVwKLQlTTkRSVl9DVExfVExWVF9EQl9N SU5NQVhfTVVURSwgMiAqIHNpemVvZih1bnNpZ25lZCBpbnQpLAlcCi0JKG1pbl9kQiksIChtYXhf ZEIpCisJVExWX0lURU0oU05EUlZfQ1RMX1RMVlRfREJfTUlOTUFYX01VVEUsIChtaW5fZEIpLCAo bWF4X2RCKSkKICNkZWZpbmUgREVDTEFSRV9UTFZfREJfTUlOTUFYKG5hbWUsIG1pbl9kQiwgbWF4 X2RCKSBcCiAJdW5zaWduZWQgaW50IG5hbWVbXSA9IHsgVExWX0RCX01JTk1BWF9JVEVNKG1pbl9k QiwgbWF4X2RCKSB9CiAjZGVmaW5lIERFQ0xBUkVfVExWX0RCX01JTk1BWF9NVVRFKG5hbWUsIG1p bl9kQiwgbWF4X2RCKSBcCkBAIC02MCwxMyArNjUsMTYgQEAKIAogLyogbGluZWFyIHZvbHVtZSBi ZXR3ZWVuIG1pbl9kQiBhbmQgbWF4X2RCICguMDFkQiB1bml0KSAqLwogI2RlZmluZSBUTFZfREJf TElORUFSX0lURU0obWluX2RCLCBtYXhfZEIpCQkgICAgXAotCVNORFJWX0NUTF9UTFZUX0RCX0xJ TkVBUiwgMiAqIHNpemVvZih1bnNpZ25lZCBpbnQpLCBcCi0JKG1pbl9kQiksIChtYXhfZEIpCisJ VExWX0lURU0oU05EUlZfQ1RMX1RMVlRfREJfTElORUFSLCAobWluX2RCKSwgKG1heF9kQikpCiAj ZGVmaW5lIERFQ0xBUkVfVExWX0RCX0xJTkVBUihuYW1lLCBtaW5fZEIsIG1heF9kQikJXAogCXVu c2lnbmVkIGludCBuYW1lW10gPSB7IFRMVl9EQl9MSU5FQVJfSVRFTShtaW5fZEIsIG1heF9kQikg fQogCiAvKiBkQiByYW5nZSBjb250YWluZXIgKi8KIC8qIEVhY2ggaXRlbSBpczogPG1pbj4gPG1h eD4gPFRMVj4gKi8KKyNkZWZpbmUgVExWX0RCX1JBTkdFX0lURU0oLi4uKSBcCisJVExWX0lURU0o U05EUlZfQ1RMX1RMVlRfREJfUkFOR0UsIF9fVkFfQVJHU19fKQorI2RlZmluZSBERUNMQVJFX1RM Vl9EQl9SQU5HRShuYW1lLCAuLi4pIFwKKwl1bnNpZ25lZCBpbnQgbmFtZVtdID0geyBUTFZfREJf UkFOR0VfSVRFTShfX1ZBX0FSR1NfXykgfQogLyogVGhlIGJlbG93IGFzc3VtZXMgdGhhdCBlYWNo IGl0ZW0gVExWIGlzIDQgd29yZHMgbGlrZSBEQl9TQ0FMRSBvciBMSU5FQVIgKi8KICNkZWZpbmUg VExWX0RCX1JBTkdFX0hFQUQobnVtKQkJCVwKIAlTTkRSVl9DVExfVExWVF9EQl9SQU5HRSwgNiAq IChudW0pICogc2l6ZW9mKHVuc2lnbmVkIGludCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2lu dGVyZmFjZS9pby9yaW5nLmggYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vcmluZy5oCmluZGV4 IDdkMjhhZmYuLjdkYzY4NWI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8v cmluZy5oCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9yaW5nLmgKQEAgLTE4MSw2ICsx ODEsMjAgQEAgc3RydWN0IF9fbmFtZSMjX2JhY2tfcmluZyB7CQkJCQkJXAogI2RlZmluZSBSSU5H X0dFVF9SRVFVRVNUKF9yLCBfaWR4KQkJCQkJXAogICAgICgmKChfciktPnNyaW5nLT5yaW5nWygo X2lkeCkgJiAoUklOR19TSVpFKF9yKSAtIDEpKV0ucmVxKSkKIAorLyoKKyAqIEdldCBhIGxvY2Fs IGNvcHkgb2YgYSByZXF1ZXN0LgorICoKKyAqIFVzZSB0aGlzIGluIHByZWZlcmVuY2UgdG8gUklO R19HRVRfUkVRVUVTVCgpIHNvIGFsbCBwcm9jZXNzaW5nIGlzCisgKiBkb25lIG9uIGEgbG9jYWwg Y29weSB0aGF0IGNhbm5vdCBiZSBtb2RpZmllZCBieSB0aGUgb3RoZXIgZW5kLgorICoKKyAqIE5v dGUgdGhhdCBodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD01ODE0 NSBtYXkgY2F1c2UgdGhpcworICogdG8gYmUgaW5lZmZlY3RpdmUgd2hlcmUgX3JlcSBpcyBhIHN0 cnVjdCB3aGljaCBjb25zaXN0cyBvZiBvbmx5IGJpdGZpZWxkcy4KKyAqLworI2RlZmluZSBSSU5H X0NPUFlfUkVRVUVTVChfciwgX2lkeCwgX3JlcSkgZG8gewkJCQlcCisJLyogVXNlIHZvbGF0aWxl IHRvIGZvcmNlIHRoZSBjb3B5IGludG8gX3JlcS4gKi8JCQlcCisJKihfcmVxKSA9ICoodm9sYXRp bGUgdHlwZW9mKF9yZXEpKVJJTkdfR0VUX1JFUVVFU1QoX3IsIF9pZHgpOwlcCit9IHdoaWxlICgw KQorCiAjZGVmaW5lIFJJTkdfR0VUX1JFU1BPTlNFKF9yLCBfaWR4KQkJCQkJXAogICAgICgmKChf ciktPnNyaW5nLT5yaW5nWygoX2lkeCkgJiAoUklOR19TSVpFKF9yKSAtIDEpKV0ucnNwKSkKIApk aWZmIC0tZ2l0IGEva2VybmVsL2lycS9tYW5hZ2UuYyBiL2tlcm5lbC9pcnEvbWFuYWdlLmMKaW5k ZXggMTI3YTMyZS4uODA4MGY5OCAxMDA2NDQKLS0tIGEva2VybmVsL2lycS9tYW5hZ2UuYworKysg Yi9rZXJuZWwvaXJxL21hbmFnZS5jCkBAIC0xMjAwLDYgKzEyMDAsNyBAQCBzdGF0aWMgc3RydWN0 IGlycWFjdGlvbiAqX19mcmVlX2lycSh1bnNpZ25lZCBpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJ aWYgKCFkZXNjKQogCQlyZXR1cm4gTlVMTDsKIAorCWNoaXBfYnVzX2xvY2soZGVzYyk7CiAJcmF3 X3NwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CiAKIAkvKgpAQCAtMTIxMyw3 ICsxMjE0LDcgQEAgc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gKl9fZnJlZV9pcnEodW5zaWduZWQg aW50IGlycSwgdm9pZCAqZGV2X2lkKQogCQlpZiAoIWFjdGlvbikgewogCQkJV0FSTigxLCAiVHJ5 aW5nIHRvIGZyZWUgYWxyZWFkeS1mcmVlIElSUSAlZFxuIiwgaXJxKTsKIAkJCXJhd19zcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7Ci0KKwkJCWNoaXBfYnVzX3N5bmNf dW5sb2NrKGRlc2MpOwogCQkJcmV0dXJuIE5VTEw7CiAJCX0KIApAQCAtMTI0Miw2ICsxMjQzLDcg QEAgc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gKl9fZnJlZV9pcnEodW5zaWduZWQgaW50IGlycSwg dm9pZCAqZGV2X2lkKQogI2VuZGlmCiAKIAlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVz Yy0+bG9jaywgZmxhZ3MpOworCWNoaXBfYnVzX3N5bmNfdW5sb2NrKGRlc2MpOwogCiAJdW5yZWdp c3Rlcl9oYW5kbGVyX3Byb2MoaXJxLCBhY3Rpb24pOwogCkBAIC0xMzE2LDkgKzEzMTgsNyBAQCB2 b2lkIGZyZWVfaXJxKHVuc2lnbmVkIGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAkJZGVzYy0+YWZm aW5pdHlfbm90aWZ5ID0gTlVMTDsKICNlbmRpZgogCi0JY2hpcF9idXNfbG9jayhkZXNjKTsKIAlr ZnJlZShfX2ZyZWVfaXJxKGlycSwgZGV2X2lkKSk7Ci0JY2hpcF9idXNfc3luY191bmxvY2soZGVz Yyk7CiB9CiBFWFBPUlRfU1lNQk9MKGZyZWVfaXJxKTsKIApkaWZmIC0tZ2l0IGEvbW0vbWVtb3J5 X2hvdHBsdWcuYyBiL21tL21lbW9yeV9ob3RwbHVnLmMKaW5kZXggMDlkODdiNy4uMjIzMjMyYSAx MDA2NDQKLS0tIGEvbW0vbWVtb3J5X2hvdHBsdWcuYworKysgYi9tbS9tZW1vcnlfaG90cGx1Zy5j CkBAIC03MTYsMjMgKzcxNiwzMCBAQCBpbnQgaXNfbWVtX3NlY3Rpb25fcmVtb3ZhYmxlKHVuc2ln bmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQogICovCiBzdGF0aWMg aW50IHRlc3RfcGFnZXNfaW5fYV96b25lKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25l ZCBsb25nIGVuZF9wZm4pCiB7Ci0JdW5zaWduZWQgbG9uZyBwZm47CisJdW5zaWduZWQgbG9uZyBw Zm4sIHNlY19lbmRfcGZuOwogCXN0cnVjdCB6b25lICp6b25lID0gTlVMTDsKIAlzdHJ1Y3QgcGFn ZSAqcGFnZTsKIAlpbnQgaTsKLQlmb3IgKHBmbiA9IHN0YXJ0X3BmbjsKKwlmb3IgKHBmbiA9IHN0 YXJ0X3Bmbiwgc2VjX2VuZF9wZm4gPSBTRUNUSU9OX0FMSUdOX1VQKHN0YXJ0X3Bmbik7CiAJICAg ICBwZm4gPCBlbmRfcGZuOwotCSAgICAgcGZuICs9IE1BWF9PUkRFUl9OUl9QQUdFUykgewotCQlp ID0gMDsKLQkJLyogVGhpcyBpcyBqdXN0IGEgQ09ORklHX0hPTEVTX0lOX1pPTkUgY2hlY2suKi8K LQkJd2hpbGUgKChpIDwgTUFYX09SREVSX05SX1BBR0VTKSAmJiAhcGZuX3ZhbGlkX3dpdGhpbihw Zm4gKyBpKSkKLQkJCWkrKzsKLQkJaWYgKGkgPT0gTUFYX09SREVSX05SX1BBR0VTKQorCSAgICAg cGZuID0gc2VjX2VuZF9wZm4gKyAxLCBzZWNfZW5kX3BmbiArPSBQQUdFU19QRVJfU0VDVElPTikg eworCQkvKiBNYWtlIHN1cmUgdGhlIG1lbW9yeSBzZWN0aW9uIGlzIHByZXNlbnQgZmlyc3QgKi8K KwkJaWYgKCFwcmVzZW50X3NlY3Rpb25fbnIocGZuX3RvX3NlY3Rpb25fbnIocGZuKSkpCiAJCQlj b250aW51ZTsKLQkJcGFnZSA9IHBmbl90b19wYWdlKHBmbiArIGkpOwotCQlpZiAoem9uZSAmJiBw YWdlX3pvbmUocGFnZSkgIT0gem9uZSkKLQkJCXJldHVybiAwOwotCQl6b25lID0gcGFnZV96b25l KHBhZ2UpOworCQlmb3IgKDsgcGZuIDwgc2VjX2VuZF9wZm4gJiYgcGZuIDwgZW5kX3BmbjsKKwkJ ICAgICBwZm4gKz0gTUFYX09SREVSX05SX1BBR0VTKSB7CisJCQlpID0gMDsKKwkJCS8qIFRoaXMg aXMganVzdCBhIENPTkZJR19IT0xFU19JTl9aT05FIGNoZWNrLiovCisJCQl3aGlsZSAoKGkgPCBN QVhfT1JERVJfTlJfUEFHRVMpICYmCisJCQkJIXBmbl92YWxpZF93aXRoaW4ocGZuICsgaSkpCisJ CQkJaSsrOworCQkJaWYgKGkgPT0gTUFYX09SREVSX05SX1BBR0VTKQorCQkJCWNvbnRpbnVlOwor CQkJcGFnZSA9IHBmbl90b19wYWdlKHBmbiArIGkpOworCQkJaWYgKHpvbmUgJiYgcGFnZV96b25l KHBhZ2UpICE9IHpvbmUpCisJCQkJcmV0dXJuIDA7CisJCQl6b25lID0gcGFnZV96b25lKHBhZ2Up OworCQl9CiAJfQogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvbW0vdm1zdGF0LmMgYi9tbS92 bXN0YXQuYwppbmRleCAxNGQ4Y2I0Li44ODdlODNmIDEwMDY0NAotLS0gYS9tbS92bXN0YXQuYwor KysgYi9tbS92bXN0YXQuYwpAQCAtMTIwMyw5ICsxMjAzLDEwIEBAIHN0YXRpYyBpbnQgX19pbml0 IHNldHVwX3Ztc3RhdCh2b2lkKQogI2lmZGVmIENPTkZJR19TTVAKIAlpbnQgY3B1OwogCisJdm1z dGF0X3dxID0gYWxsb2Nfd29ya3F1ZXVlKCJ2bXN0YXQiLCBXUV9GUkVFWkFCTEV8V1FfTUVNX1JF Q0xBSU0sIDApOworCiAJcmVnaXN0ZXJfY3B1X25vdGlmaWVyKCZ2bXN0YXRfbm90aWZpZXIpOwog Ci0Jdm1zdGF0X3dxID0gYWxsb2Nfd29ya3F1ZXVlKCJ2bXN0YXQiLCBXUV9GUkVFWkFCTEV8V1Ff TUVNX1JFQ0xBSU0sIDApOwogCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQogCQlzdGFydF9jcHVf dGltZXIoY3B1KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0uYyBiL25l dC9jb3JlL2RhdGFncmFtLmMKaW5kZXggNjYxNmJmYi4uYTQ5NjMxMyAxMDA2NDQKLS0tIGEvbmV0 L2NvcmUvZGF0YWdyYW0uYworKysgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCkBAIC03MDksNyArNzA5 LDYgQEAgRVhQT1JUX1NZTUJPTChfX3NrYl9jaGVja3N1bV9jb21wbGV0ZSk7CiAgKglAc2tiOiBz a2J1ZmYKICAqCUBobGVuOiBoYXJkd2FyZSBsZW5ndGgKICAqCUBpb3Y6IGlvIHZlY3RvcgotICoJ QGxlbjogYW1vdW50IG9mIGRhdGEgdG8gY29weSBmcm9tIHNrYiB0byBpb3YKICAqCiAgKglDYWxs ZXIgX211c3RfIGNoZWNrIHRoYXQgc2tiIHdpbGwgZml0IHRvIHRoaXMgaW92ZWMuCiAgKgpAQCAt NzE5LDE0ICs3MTgsMTEgQEAgRVhQT1JUX1NZTUJPTChfX3NrYl9jaGVja3N1bV9jb21wbGV0ZSk7 CiAgKgkJCSAgIGNhbiBiZSBtb2RpZmllZCEKICAqLwogaW50IHNrYl9jb3B5X2FuZF9jc3VtX2Rh dGFncmFtX2lvdmVjKHN0cnVjdCBza19idWZmICpza2IsCi0JCQkJICAgICBpbnQgaGxlbiwgc3Ry dWN0IGlvdmVjICppb3YsIGludCBsZW4pCisJCQkJICAgICBpbnQgaGxlbiwgc3RydWN0IGlvdmVj ICppb3YpCiB7CiAJX193c3VtIGNzdW07CiAJaW50IGNodW5rID0gc2tiLT5sZW4gLSBobGVuOwog Ci0JaWYgKGNodW5rID4gbGVuKQotCQljaHVuayA9IGxlbjsKLQogCWlmICghY2h1bmspCiAJCXJl dHVybiAwOwogCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmlu ZGV4IDlhOTUyMDUuLmVjMjk5NTggMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25l dC9jb3JlL2Rldi5jCkBAIC01NDQ2LDcgKzU0NDYsMTAgQEAgaW50IF9fbmV0ZGV2X3VwZGF0ZV9m ZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQluZXRkZXZfZXJyKGRldiwKIAkJCSJz ZXRfZmVhdHVyZXMoKSBmYWlsZWQgKCVkKTsgd2FudGVkIDB4JTA4eCwgbGVmdCAweCUwOHhcbiIs CiAJCQllcnIsIGZlYXR1cmVzLCBkZXYtPmZlYXR1cmVzKTsKLQkJcmV0dXJuIDA7CisJCS8qIHJl dHVybiBub24tMCBzaW5jZSBzb21lIGZlYXR1cmVzIG1pZ2h0IGhhdmUgY2hhbmdlZCBhbmQKKwkJ ICogaXQncyBiZXR0ZXIgdG8gZmlyZSBhIHNwdXJpb3VzIG5vdGlmaWNhdGlvbiB0aGFuIG1pc3Mg aXQKKwkJICovCisJCXJldHVybiAtMTsKIAl9CiAKIAlpZiAoIWVycikKZGlmZiAtLWdpdCBhL25l dC9jb3JlL2RzdC5jIGIvbmV0L2NvcmUvZHN0LmMKaW5kZXggOTQ2ZTIxNC4uNTkzODFkZSAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvZHN0LmMKKysrIGIvbmV0L2NvcmUvZHN0LmMKQEAgLTI2OSwxMCAr MjY5LDExIEBAIHZvaWQgZHN0X3JlbGVhc2Uoc3RydWN0IGRzdF9lbnRyeSAqZHN0KQogewogCWlm IChkc3QpIHsKIAkJaW50IG5ld3JlZmNudDsKKwkJdW5zaWduZWQgc2hvcnQgbm9jYWNoZSA9IGRz dC0+ZmxhZ3MgJiBEU1RfTk9DQUNIRTsKIAogCQluZXdyZWZjbnQgPSBhdG9taWNfZGVjX3JldHVy bigmZHN0LT5fX3JlZmNudCk7CiAJCVdBUk5fT04obmV3cmVmY250IDwgMCk7Ci0JCWlmICghbmV3 cmVmY250ICYmIHVubGlrZWx5KGRzdC0+ZmxhZ3MgJiBEU1RfTk9DQUNIRSkpIHsKKwkJaWYgKCFu ZXdyZWZjbnQgJiYgdW5saWtlbHkobm9jYWNoZSkpIHsKIAkJCWRzdCA9IGRzdF9kZXN0cm95KGRz dCk7CiAJCQlpZiAoZHN0KQogCQkJCV9fZHN0X2ZyZWUoZHN0KTsKZGlmZiAtLWdpdCBhL25ldC9p cHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggMzg3N2UxNi4uMDM5 ZTQwZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNw X2lucHV0LmMKQEAgLTUxOTgsNyArNTE5OCw3IEBAIHN0YXRpYyBpbnQgdGNwX2NvcHlfdG9faW92 ZWMoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgaGxlbikKIAkJZXJy ID0gc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCBobGVuLCB0cC0+dWNvcHkuaW92LCBjaHVu ayk7CiAJZWxzZQogCQllcnIgPSBza2JfY29weV9hbmRfY3N1bV9kYXRhZ3JhbV9pb3ZlYyhza2Is IGhsZW4sCi0JCQkJCQkgICAgICAgdHAtPnVjb3B5LmlvdiwgY2h1bmspOworCQkJCQkJICAgICAg IHRwLT51Y29weS5pb3YpOwogCiAJaWYgKCFlcnIpIHsKIAkJdHAtPnVjb3B5LmxlbiAtPSBjaHVu azsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggYjEx MTIyMS4uZjYwMjYxMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQv dWRwLmMKQEAgLTExNzIsNiArMTE3Miw3IEBAIGludCB1ZHBfcmVjdm1zZyhzdHJ1Y3Qga2lvY2Ig KmlvY2IsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLAogCWludCBwZWVrZWQ7 CiAJaW50IGVycjsKIAlpbnQgaXNfdWRwbGl0ZSA9IElTX1VEUExJVEUoc2spOworCWJvb2wgY2hl Y2tzdW1fdmFsaWQgPSBmYWxzZTsKIAlib29sIHNsb3c7CiAKIAlpZiAoZmxhZ3MgJiBNU0dfRVJS UVVFVUUpCkBAIC0xMTk3LDE3ICsxMTk4LDE4IEBAIHRyeV9hZ2FpbjoKIAkgKi8KIAogCWlmIChj b3BpZWQgPCB1bGVuIHx8IFVEUF9TS0JfQ0Ioc2tiKS0+cGFydGlhbF9jb3YpIHsKLQkJaWYgKHVk cF9saWJfY2hlY2tzdW1fY29tcGxldGUoc2tiKSkKKwkJY2hlY2tzdW1fdmFsaWQgPSAhdWRwX2xp Yl9jaGVja3N1bV9jb21wbGV0ZShza2IpOworCQlpZiAoIWNoZWNrc3VtX3ZhbGlkKQogCQkJZ290 byBjc3VtX2NvcHlfZXJyOwogCX0KIAotCWlmIChza2JfY3N1bV91bm5lY2Vzc2FyeShza2IpKQor CWlmIChjaGVja3N1bV92YWxpZCB8fCBza2JfY3N1bV91bm5lY2Vzc2FyeShza2IpKQogCQllcnIg PSBza2JfY29weV9kYXRhZ3JhbV9pb3ZlYyhza2IsIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSwKIAkJ CQkJICAgICAgbXNnLT5tc2dfaW92LCBjb3BpZWQpOwogCWVsc2UgewogCQllcnIgPSBza2JfY29w eV9hbmRfY3N1bV9kYXRhZ3JhbV9pb3ZlYyhza2IsCiAJCQkJCQkgICAgICAgc2l6ZW9mKHN0cnVj dCB1ZHBoZHIpLAotCQkJCQkJICAgICAgIG1zZy0+bXNnX2lvdiwgY29waWVkKTsKKwkJCQkJCSAg ICAgICBtc2ctPm1zZ19pb3YpOwogCiAJCWlmIChlcnIgPT0gLUVJTlZBTCkKIAkJCWdvdG8gY3N1 bV9jb3B5X2VycjsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJsYWJlbC5jIGIvbmV0L2lwdjYv YWRkcmxhYmVsLmMKaW5kZXggMmQ4ZGRiYS4uYzhjNmExMiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYv YWRkcmxhYmVsLmMKKysrIGIvbmV0L2lwdjYvYWRkcmxhYmVsLmMKQEAgLTU1OCw3ICs1NTgsNyBA QCBzdGF0aWMgaW50IGlwNmFkZHJsYmxfZ2V0KHN0cnVjdCBza19idWZmICppbl9za2IsIHN0cnVj dCBubG1zZ2hkciogbmxoLAogCiAJcmN1X3JlYWRfbG9jaygpOwogCXAgPSBfX2lwdjZfYWRkcl9s YWJlbChuZXQsIGFkZHIsIGlwdjZfYWRkcl90eXBlKGFkZHIpLCBpZmFsLT5pZmFsX2luZGV4KTsK LQlpZiAocCAmJiBpcDZhZGRybGJsX2hvbGQocCkpCisJaWYgKHAgJiYgIWlwNmFkZHJsYmxfaG9s ZChwKSkKIAkJcCA9IE5VTEw7CiAJbHNlcSA9IGlwNmFkZHJsYmxfdGFibGUuc2VxOwogCXJjdV9y ZWFkX3VubG9jaygpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcmF3LmMgYi9uZXQvaXB2Ni9yYXcu YwppbmRleCBkMWU1MjhjLi5iZWJjODIxIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yYXcuYworKysg Yi9uZXQvaXB2Ni9yYXcuYwpAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBpbnQgcmF3djZfcmVj dm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrICpzaywKIAkJCWdvdG8gY3N1bV9j b3B5X2VycjsKIAkJZXJyID0gc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCAwLCBtc2ctPm1z Z19pb3YsIGNvcGllZCk7CiAJfSBlbHNlIHsKLQkJZXJyID0gc2tiX2NvcHlfYW5kX2NzdW1fZGF0 YWdyYW1faW92ZWMoc2tiLCAwLCBtc2ctPm1zZ19pb3YsIGNvcGllZCk7CisJCWVyciA9IHNrYl9j b3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjKHNrYiwgMCwgbXNnLT5tc2dfaW92KTsKIAkJaWYg KGVyciA9PSAtRUlOVkFMKQogCQkJZ290byBjc3VtX2NvcHlfZXJyOwogCX0KZGlmZiAtLWdpdCBh L25ldC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5kZXggMzMwODgwMy4uMDNhN2VkMSAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvdWRwLmMKKysrIGIvbmV0L2lwdjYvdWRwLmMKQEAgLTM0NCw2 ICszNDQsNyBAQCBpbnQgdWRwdjZfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBz b2NrICpzaywKIAlpbnQgcGVla2VkOwogCWludCBlcnI7CiAJaW50IGlzX3VkcGxpdGUgPSBJU19V RFBMSVRFKHNrKTsKKwlib29sIGNoZWNrc3VtX3ZhbGlkID0gZmFsc2U7CiAJaW50IGlzX3VkcDQ7 CiAJYm9vbCBzbG93OwogCkBAIC0zNzUsMTYgKzM3NiwxNiBAQCB0cnlfYWdhaW46CiAJICovCiAK IAlpZiAoY29waWVkIDwgdWxlbiB8fCBVRFBfU0tCX0NCKHNrYiktPnBhcnRpYWxfY292KSB7Ci0J CWlmICh1ZHBfbGliX2NoZWNrc3VtX2NvbXBsZXRlKHNrYikpCisJCWNoZWNrc3VtX3ZhbGlkID0g IXVkcF9saWJfY2hlY2tzdW1fY29tcGxldGUoc2tiKTsKKwkJaWYgKCFjaGVja3N1bV92YWxpZCkK IAkJCWdvdG8gY3N1bV9jb3B5X2VycjsKIAl9CiAKLQlpZiAoc2tiX2NzdW1fdW5uZWNlc3Nhcnko c2tiKSkKKwlpZiAoY2hlY2tzdW1fdmFsaWQgfHwgc2tiX2NzdW1fdW5uZWNlc3Nhcnkoc2tiKSkK IAkJZXJyID0gc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCBzaXplb2Yoc3RydWN0IHVkcGhk ciksCiAJCQkJCSAgICAgIG1zZy0+bXNnX2lvdiwgY29waWVkICAgICAgICk7CiAJZWxzZSB7Ci0J CWVyciA9IHNrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjKHNrYiwgc2l6ZW9mKHN0cnVj dCB1ZHBoZHIpLAotCQkJCQkJICAgICAgIG1zZy0+bXNnX2lvdiwgY29waWVkKTsKKwkJZXJyID0g c2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1faW92ZWMoc2tiLCBzaXplb2Yoc3RydWN0IHVkcGhk ciksIG1zZy0+bXNnX2lvdik7CiAJCWlmIChlcnIgPT0gLUVJTlZBTCkKIAkJCWdvdG8gY3N1bV9j b3B5X2VycjsKIAl9CmRpZmYgLS1naXQgYS9uZXQvcmZraWxsL2NvcmUuYyBiL25ldC9yZmtpbGwv Y29yZS5jCmluZGV4IDViZTE5NTcuLjEzZDBmYjYgMTAwNjQ0Ci0tLSBhL25ldC9yZmtpbGwvY29y ZS5jCisrKyBiL25ldC9yZmtpbGwvY29yZS5jCkBAIC01MCw3ICs1MCw2IEBACiBzdHJ1Y3QgcmZr aWxsIHsKIAlzcGlubG9ja190CQlsb2NrOwogCi0JY29uc3QgY2hhcgkJKm5hbWU7CiAJZW51bSBy ZmtpbGxfdHlwZQl0eXBlOwogCiAJdW5zaWduZWQgbG9uZwkJc3RhdGU7CkBAIC03NCw2ICs3Myw3 IEBAIHN0cnVjdCByZmtpbGwgewogCXN0cnVjdCBkZWxheWVkX3dvcmsJcG9sbF93b3JrOwogCXN0 cnVjdCB3b3JrX3N0cnVjdAl1ZXZlbnRfd29yazsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QJc3luY193 b3JrOworCWNoYXIJCQluYW1lW107CiB9OwogI2RlZmluZSB0b19yZmtpbGwoZCkJY29udGFpbmVy X29mKGQsIHN0cnVjdCByZmtpbGwsIGRldikKIApAQCAtODQ4LDE0ICs4NDgsMTQgQEAgc3RydWN0 IHJma2lsbCAqIF9fbXVzdF9jaGVjayByZmtpbGxfYWxsb2MoY29uc3QgY2hhciAqbmFtZSwKIAlp ZiAoV0FSTl9PTih0eXBlID09IFJGS0lMTF9UWVBFX0FMTCB8fCB0eXBlID49IE5VTV9SRktJTExf VFlQRVMpKQogCQlyZXR1cm4gTlVMTDsKIAotCXJma2lsbCA9IGt6YWxsb2Moc2l6ZW9mKCpyZmtp bGwpLCBHRlBfS0VSTkVMKTsKKwlyZmtpbGwgPSBremFsbG9jKHNpemVvZigqcmZraWxsKSArIHN0 cmxlbihuYW1lKSArIDEsIEdGUF9LRVJORUwpOwogCWlmICghcmZraWxsKQogCQlyZXR1cm4gTlVM TDsKIAogCXNwaW5fbG9ja19pbml0KCZyZmtpbGwtPmxvY2spOwogCUlOSVRfTElTVF9IRUFEKCZy ZmtpbGwtPm5vZGUpOwogCXJma2lsbC0+dHlwZSA9IHR5cGU7Ci0JcmZraWxsLT5uYW1lID0gbmFt ZTsKKwlzdHJjcHkocmZraWxsLT5uYW1lLCBuYW1lKTsKIAlyZmtpbGwtPm9wcyA9IG9wczsKIAly ZmtpbGwtPmRhdGEgPSBvcHNfZGF0YTsKIApkaWZmIC0tZ2l0IGEvbmV0L3J4cnBjL2FyLXJlY3Zt c2cuYyBiL25ldC9yeHJwYy9hci1yZWN2bXNnLmMKaW5kZXggYzY3ZjVkMy4uNWNjMmRhNSAxMDA2 NDQKLS0tIGEvbmV0L3J4cnBjL2FyLXJlY3Ztc2cuYworKysgYi9uZXQvcnhycGMvYXItcmVjdm1z Zy5jCkBAIC0xODUsOCArMTg1LDcgQEAgaW50IHJ4cnBjX3JlY3Ztc2coc3RydWN0IGtpb2NiICpp b2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQkJCQkJICAgICAgbXNnLT5tc2dfaW92LCBjb3B5 KTsKIAkJfSBlbHNlIHsKIAkJCXJldCA9IHNrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVj KHNrYiwgb2Zmc2V0LAotCQkJCQkJCSAgICAgICBtc2ctPm1zZ19pb3YsCi0JCQkJCQkJICAgICAg IGNvcHkpOworCQkJCQkJCSAgICAgICBtc2ctPm1zZ19pb3YpOwogCQkJaWYgKHJldCA9PSAtRUlO VkFMKQogCQkJCWdvdG8gY3N1bV9jb3B5X2Vycm9yOwogCQl9CmRpZmYgLS1naXQgYS9uZXQvc2N0 cC9pcHY2LmMgYi9uZXQvc2N0cC9pcHY2LmMKaW5kZXggMWY5YTZmNy4uMDU0YzZhMiAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvaXB2Ni5jCisrKyBiL25ldC9zY3RwL2lwdjYuYwpAQCAtMzE0LDE0ICsz MTQsMTMgQEAgc3RhdGljIHZvaWQgc2N0cF92Nl9nZXRfZHN0KHN0cnVjdCBzY3RwX3RyYW5zcG9y dCAqdCwgdW5pb24gc2N0cF9hZGRyICpzYWRkciwKIAkJCX0KIAkJfQogCX0KLQlyY3VfcmVhZF91 bmxvY2soKTsKLQogCWlmIChiYWRkcikgewogCQlpcHY2X2FkZHJfY29weSgmZmw2LT5zYWRkciwg JmJhZGRyLT52Ni5zaW42X2FkZHIpOwogCQlmbDYtPmZsNl9zcG9ydCA9IGJhZGRyLT52Ni5zaW42 X3BvcnQ7CiAJCWZpbmFsX3AgPSBmbDZfdXBkYXRlX2RzdChmbDYsIG5wLT5vcHQsICZmaW5hbCk7 CiAJCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssIGZsNiwgZmluYWxfcCwgZmFsc2UpOwog CX0KKwlyY3VfcmVhZF91bmxvY2soKTsKIAogb3V0OgogCWlmICghSVNfRVJSKGRzdCkpIHsKZGlm ZiAtLWdpdCBhL25ldC9zY3RwL291dHF1ZXVlLmMgYi9uZXQvc2N0cC9vdXRxdWV1ZS5jCmluZGV4 IDNkZDcyMDcuLjdiMjg1NDYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL291dHF1ZXVlLmMKKysrIGIv bmV0L3NjdHAvb3V0cXVldWUuYwpAQCAtMTI2NSw2ICsxMjY1LDcgQEAgaW50IHNjdHBfb3V0cV9z YWNrKHN0cnVjdCBzY3RwX291dHEgKnEsIHN0cnVjdCBzY3RwX3NhY2toZHIgKnNhY2spCiAJICov CiAKIAlzYWNrX2FfcnduZCA9IG50b2hsKHNhY2stPmFfcnduZCk7CisJYXNvYy0+cGVlci56ZXJv X3dpbmRvd19hbm5vdW5jZWQgPSAhc2Fja19hX3J3bmQ7CiAJb3V0c3RhbmRpbmcgPSBxLT5vdXRz dGFuZGluZ19ieXRlczsKIAogCWlmIChvdXRzdGFuZGluZyA8IHNhY2tfYV9yd25kKQpkaWZmIC0t Z2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwpp bmRleCBkMDJkZDNjLi5lYjYzOGRkIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMu YworKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwpAQCAtNTMwMiw3ICs1MzAyLDggQEAgc2N0 cF9kaXNwb3NpdGlvbl90IHNjdHBfc2ZfZG9fNl8zXzNfcnR4KGNvbnN0IHN0cnVjdCBzY3RwX2Vu ZHBvaW50ICplcCwKIAlTQ1RQX0lOQ19TVEFUUyhTQ1RQX01JQl9UM19SVFhfRVhQSVJFRFMpOwog CiAJaWYgKGFzb2MtPm92ZXJhbGxfZXJyb3JfY291bnQgPj0gYXNvYy0+bWF4X3JldHJhbnMpIHsK LQkJaWYgKGFzb2MtPnN0YXRlID09IFNDVFBfU1RBVEVfU0hVVERPV05fUEVORElORykgeworCQlp ZiAoYXNvYy0+cGVlci56ZXJvX3dpbmRvd19hbm5vdW5jZWQgJiYKKwkJICAgIGFzb2MtPnN0YXRl ID09IFNDVFBfU1RBVEVfU0hVVERPV05fUEVORElORykgewogCQkJLyoKIAkJCSAqIFdlIGFyZSBo ZXJlIGxpa2VseSBiZWNhdXNlIHRoZSByZWNlaXZlciBoYWQgaXRzIHJ3bmQKIAkJCSAqIGNsb3Nl ZCBmb3IgYSB3aGlsZSBhbmQgd2UgaGF2ZSBub3QgYmVlbiBhYmxlIHRvCmRpZmYgLS1naXQgYS9z Y3JpcHRzL3JlY29yZG1jb3VudC5jIGIvc2NyaXB0cy9yZWNvcmRtY291bnQuYwppbmRleCBlZTUy Y2I4Li4wZDVhZTRhIDEwMDY0NAotLS0gYS9zY3JpcHRzL3JlY29yZG1jb3VudC5jCisrKyBiL3Nj cmlwdHMvcmVjb3JkbWNvdW50LmMKQEAgLTM1LDEyICszNSwxNyBAQAogCiBzdGF0aWMgaW50IGZk X21hcDsJLyogRmlsZSBkZXNjcmlwdG9yIGZvciBmaWxlIGJlaW5nIG1vZGlmaWVkLiAqLwogc3Rh dGljIGludCBtbWFwX2ZhaWxlZDsgLyogQm9vbGVhbiBmbGFnLiAqLwotc3RhdGljIHZvaWQgKmVo ZHJfY3VycjsgLyogY3VycmVudCBFbGZYWF9FaGRyICogIGZvciByZXNvdXJjZSBjbGVhbnVwICov CiBzdGF0aWMgY2hhciBncGZ4OwkvKiBwcmVmaXggZm9yIGdsb2JhbCBzeW1ib2wgbmFtZSAoc29t ZXRpbWVzICdfJykgKi8KIHN0YXRpYyBzdHJ1Y3Qgc3RhdCBzYjsJLyogUmVtZW1iZXIgLnN0X3Np emUsIGV0Yy4gKi8KIHN0YXRpYyBqbXBfYnVmIGptcGVudjsJLyogc2V0am1wL2xvbmdqbXAgcGVy LWZpbGUgZXJyb3IgZXNjYXBlICovCiBzdGF0aWMgY29uc3QgY2hhciAqYWx0bWNvdW50OwkvKiBh bHRlcm5hdGUgbWNvdW50IHN5bWJvbCBuYW1lICovCiBzdGF0aWMgaW50IHdhcm5fb25fbm90cmFj ZV9zZWN0OyAvKiB3YXJuIHdoZW4gc2VjdGlvbiBoYXMgbWNvdW50IG5vdCBiZWluZyByZWNvcmRl ZCAqLworc3RhdGljIHZvaWQgKmZpbGVfbWFwOwkvKiBwb2ludGVyIG9mIHRoZSBtYXBwZWQgZmls ZSAqLworc3RhdGljIHZvaWQgKmZpbGVfZW5kOwkvKiBwb2ludGVyIHRvIHRoZSBlbmQgb2YgdGhl IG1hcHBlZCBmaWxlICovCitzdGF0aWMgaW50IGZpbGVfdXBkYXRlZDsgLyogZmxhZyB0byBzdGF0 ZSBmaWxlIHdhcyBjaGFuZ2VkICovCitzdGF0aWMgdm9pZCAqZmlsZV9wdHI7CS8qIGN1cnJlbnQg ZmlsZSBwb2ludGVyIGxvY2F0aW9uICovCitzdGF0aWMgdm9pZCAqZmlsZV9hcHBlbmQ7IC8qIGFk ZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUgKi8KK3N0YXRpYyBzaXplX3QgZmlsZV9hcHBlbmRf c2l6ZTsgLyogaG93IG11Y2ggaXMgYWRkZWQgdG8gZW5kIG9mIGZpbGUgKi8KIAogLyogc2V0am1w KCkgcmV0dXJuIHZhbHVlcyAqLwogZW51bSB7CkBAIC01NCwxMCArNTksMTQgQEAgc3RhdGljIHZv aWQKIGNsZWFudXAodm9pZCkKIHsKIAlpZiAoIW1tYXBfZmFpbGVkKQotCQltdW5tYXAoZWhkcl9j dXJyLCBzYi5zdF9zaXplKTsKKwkJbXVubWFwKGZpbGVfbWFwLCBzYi5zdF9zaXplKTsKIAllbHNl Ci0JCWZyZWUoZWhkcl9jdXJyKTsKLQljbG9zZShmZF9tYXApOworCQlmcmVlKGZpbGVfbWFwKTsK KwlmaWxlX21hcCA9IE5VTEw7CisJZnJlZShmaWxlX2FwcGVuZCk7CisJZmlsZV9hcHBlbmQgPSBO VUxMOworCWZpbGVfYXBwZW5kX3NpemUgPSAwOworCWZpbGVfdXBkYXRlZCA9IDA7CiB9CiAKIHN0 YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSkKQEAgLTc5LDEyICs4OCwyMiBAQCBz dWNjZWVkX2ZpbGUodm9pZCkKIHN0YXRpYyBvZmZfdAogdWxzZWVrKGludCBjb25zdCBmZCwgb2Zm X3QgY29uc3Qgb2Zmc2V0LCBpbnQgY29uc3Qgd2hlbmNlKQogewotCW9mZl90IGNvbnN0IHcgPSBs c2VlayhmZCwgb2Zmc2V0LCB3aGVuY2UpOwotCWlmICh3ID09IChvZmZfdCktMSkgewotCQlwZXJy b3IoImxzZWVrIik7CisJc3dpdGNoICh3aGVuY2UpIHsKKwljYXNlIFNFRUtfU0VUOgorCQlmaWxl X3B0ciA9IGZpbGVfbWFwICsgb2Zmc2V0OworCQlicmVhazsKKwljYXNlIFNFRUtfQ1VSOgorCQlm aWxlX3B0ciArPSBvZmZzZXQ7CisJCWJyZWFrOworCWNhc2UgU0VFS19FTkQ6CisJCWZpbGVfcHRy ID0gZmlsZV9tYXAgKyAoc2Iuc3Rfc2l6ZSAtIG9mZnNldCk7CisJCWJyZWFrOworCX0KKwlpZiAo ZmlsZV9wdHIgPCBmaWxlX21hcCkgeworCQlmcHJpbnRmKHN0ZGVyciwgImxzZWVrOiBzZWVrIGJl Zm9yZSBmaWxlXG4iKTsKIAkJZmFpbF9maWxlKCk7CiAJfQotCXJldHVybiB3OworCXJldHVybiBm aWxlX3B0ciAtIGZpbGVfbWFwOwogfQogCiBzdGF0aWMgc2l6ZV90CkBAIC0xMDEsMTIgKzEyMCwz OCBAQCB1cmVhZChpbnQgY29uc3QgZmQsIHZvaWQgKmNvbnN0IGJ1Ziwgc2l6ZV90IGNvbnN0IGNv dW50KQogc3RhdGljIHNpemVfdAogdXdyaXRlKGludCBjb25zdCBmZCwgdm9pZCBjb25zdCAqY29u c3QgYnVmLCBzaXplX3QgY29uc3QgY291bnQpCiB7Ci0Jc2l6ZV90IGNvbnN0IG4gPSB3cml0ZShm ZCwgYnVmLCBjb3VudCk7Ci0JaWYgKG4gIT0gY291bnQpIHsKLQkJcGVycm9yKCJ3cml0ZSIpOwot CQlmYWlsX2ZpbGUoKTsKKwlzaXplX3QgY250ID0gY291bnQ7CisJb2ZmX3QgaWR4ID0gMDsKKwor CWZpbGVfdXBkYXRlZCA9IDE7CisKKwlpZiAoZmlsZV9wdHIgKyBjb3VudCA+PSBmaWxlX2VuZCkg eworCQlvZmZfdCBhb2Zmc2V0ID0gKGZpbGVfcHRyICsgY291bnQpIC0gZmlsZV9lbmQ7CisKKwkJ aWYgKGFvZmZzZXQgPiBmaWxlX2FwcGVuZF9zaXplKSB7CisJCQlmaWxlX2FwcGVuZCA9IHJlYWxs b2MoZmlsZV9hcHBlbmQsIGFvZmZzZXQpOworCQkJZmlsZV9hcHBlbmRfc2l6ZSA9IGFvZmZzZXQ7 CisJCX0KKwkJaWYgKCFmaWxlX2FwcGVuZCkgeworCQkJcGVycm9yKCJ3cml0ZSIpOworCQkJZmFp bF9maWxlKCk7CisJCX0KKwkJaWYgKGZpbGVfcHRyIDwgZmlsZV9lbmQpIHsKKwkJCWNudCA9IGZp bGVfZW5kIC0gZmlsZV9wdHI7CisJCX0gZWxzZSB7CisJCQljbnQgPSAwOworCQkJaWR4ID0gYW9m ZnNldCAtIGNvdW50OworCQl9CiAJfQotCXJldHVybiBuOworCisJaWYgKGNudCkKKwkJbWVtY3B5 KGZpbGVfcHRyLCBidWYsIGNudCk7CisKKwlpZiAoY250IDwgY291bnQpCisJCW1lbWNweShmaWxl X2FwcGVuZCArIGlkeCwgYnVmICsgY250LCBjb3VudCAtIGNudCk7CisKKwlmaWxlX3B0ciArPSBj b3VudDsKKwlyZXR1cm4gY291bnQ7CiB9CiAKIHN0YXRpYyB2b2lkICoKQEAgLTE2Myw5ICsyMDgs NyBAQCBzdGF0aWMgaW50IG1ha2Vfbm9wX3g4Nih2b2lkICptYXAsIHNpemVfdCBjb25zdCBvZmZz ZXQpCiAgKi8KIHN0YXRpYyB2b2lkICptbWFwX2ZpbGUoY2hhciBjb25zdCAqZm5hbWUpCiB7Ci0J dm9pZCAqYWRkcjsKLQotCWZkX21hcCA9IG9wZW4oZm5hbWUsIE9fUkRXUik7CisJZmRfbWFwID0g b3BlbihmbmFtZSwgT19SRE9OTFkpOwogCWlmIChmZF9tYXAgPCAwIHx8IGZzdGF0KGZkX21hcCwg JnNiKSA8IDApIHsKIAkJcGVycm9yKGZuYW1lKTsKIAkJZmFpbF9maWxlKCk7CkBAIC0xNzQsMTUg KzIxNyw1OCBAQCBzdGF0aWMgdm9pZCAqbW1hcF9maWxlKGNoYXIgY29uc3QgKmZuYW1lKQogCQlm cHJpbnRmKHN0ZGVyciwgIm5vdCBhIHJlZ3VsYXIgZmlsZTogJXNcbiIsIGZuYW1lKTsKIAkJZmFp bF9maWxlKCk7CiAJfQotCWFkZHIgPSBtbWFwKDAsIHNiLnN0X3NpemUsIFBST1RfUkVBRHxQUk9U X1dSSVRFLCBNQVBfUFJJVkFURSwKLQkJICAgIGZkX21hcCwgMCk7CisJZmlsZV9tYXAgPSBtbWFw KDAsIHNiLnN0X3NpemUsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSwKKwkJCWZk X21hcCwgMCk7CiAJbW1hcF9mYWlsZWQgPSAwOwotCWlmIChhZGRyID09IE1BUF9GQUlMRUQpIHsK KwlpZiAoZmlsZV9tYXAgPT0gTUFQX0ZBSUxFRCkgewogCQltbWFwX2ZhaWxlZCA9IDE7Ci0JCWFk ZHIgPSB1bWFsbG9jKHNiLnN0X3NpemUpOwotCQl1cmVhZChmZF9tYXAsIGFkZHIsIHNiLnN0X3Np emUpOworCQlmaWxlX21hcCA9IHVtYWxsb2Moc2Iuc3Rfc2l6ZSk7CisJCXVyZWFkKGZkX21hcCwg ZmlsZV9tYXAsIHNiLnN0X3NpemUpOworCX0KKwljbG9zZShmZF9tYXApOworCisJZmlsZV9lbmQg PSBmaWxlX21hcCArIHNiLnN0X3NpemU7CisKKwlyZXR1cm4gZmlsZV9tYXA7Cit9CisKK3N0YXRp YyB2b2lkIHdyaXRlX2ZpbGUoY29uc3QgY2hhciAqZm5hbWUpCit7CisJY2hhciB0bXBfZmlsZVtz dHJsZW4oZm5hbWUpICsgNF07CisJc2l6ZV90IG47CisKKwlpZiAoIWZpbGVfdXBkYXRlZCkKKwkJ cmV0dXJuOworCisJc3ByaW50Zih0bXBfZmlsZSwgIiVzLnJjIiwgZm5hbWUpOworCisJLyoKKwkg KiBBZnRlciByZWFkaW5nIHRoZSBlbnRpcmUgZmlsZSBpbnRvIG1lbW9yeSwgZGVsZXRlIGl0CisJ ICogYW5kIHdyaXRlIGl0IGJhY2ssIHRvIHByZXZlbnQgd2VpcmQgc2lkZSBlZmZlY3RzIG9mIG1v ZGlmeWluZworCSAqIGFuIG9iamVjdCBmaWxlIGluIHBsYWNlLgorCSAqLworCWZkX21hcCA9IG9w ZW4odG1wX2ZpbGUsIE9fV1JPTkxZIHwgT19UUlVOQyB8IE9fQ1JFQVQsIHNiLnN0X21vZGUpOwor CWlmIChmZF9tYXAgPCAwKSB7CisJCXBlcnJvcihmbmFtZSk7CisJCWZhaWxfZmlsZSgpOworCX0K KwluID0gd3JpdGUoZmRfbWFwLCBmaWxlX21hcCwgc2Iuc3Rfc2l6ZSk7CisJaWYgKG4gIT0gc2Iu c3Rfc2l6ZSkgeworCQlwZXJyb3IoIndyaXRlIik7CisJCWZhaWxfZmlsZSgpOworCX0KKwlpZiAo ZmlsZV9hcHBlbmRfc2l6ZSkgeworCQluID0gd3JpdGUoZmRfbWFwLCBmaWxlX2FwcGVuZCwgZmls ZV9hcHBlbmRfc2l6ZSk7CisJCWlmIChuICE9IGZpbGVfYXBwZW5kX3NpemUpIHsKKwkJCXBlcnJv cigid3JpdGUiKTsKKwkJCWZhaWxfZmlsZSgpOworCQl9CisJfQorCWNsb3NlKGZkX21hcCk7CisJ aWYgKHJlbmFtZSh0bXBfZmlsZSwgZm5hbWUpIDwgMCkgeworCQlwZXJyb3IoZm5hbWUpOworCQlm YWlsX2ZpbGUoKTsKIAl9Ci0JcmV0dXJuIGFkZHI7CiB9CiAKIC8qIHc4cmV2LCB3OG5hdCwgLi4u OiBIYW5kbGUgZW5kaWFubmVzcy4gKi8KQEAgLTI4OSw3ICszNzUsNiBAQCBkb19maWxlKGNoYXIg Y29uc3QgKmNvbnN0IGZuYW1lKQogCUVsZjMyX0VoZHIgKmNvbnN0IGVoZHIgPSBtbWFwX2ZpbGUo Zm5hbWUpOwogCXVuc2lnbmVkIGludCByZWx0eXBlID0gMDsKIAotCWVoZHJfY3VyciA9IGVoZHI7 CiAJdyA9IHc0bmF0OwogCXcyID0gdzJuYXQ7CiAJdzggPSB3OG5hdDsKQEAgLTQwMSw2ICs0ODYs NyBAQCBkb19maWxlKGNoYXIgY29uc3QgKmNvbnN0IGZuYW1lKQogCX0KIAl9ICAvKiBlbmQgc3dp dGNoICovCiAKKwl3cml0ZV9maWxlKGZuYW1lKTsKIAljbGVhbnVwKCk7CiB9CiAKQEAgLTQ1Mywx MSArNTM5LDE0IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJY2FzZSBTSl9TRVRK TVA6ICAgIC8qIG5vcm1hbCBzZXF1ZW5jZSAqLwogCQkJLyogQXZvaWQgcHJvYmxlbXMgaWYgZWFy bHkgY2xlYW51cCgpICovCiAJCQlmZF9tYXAgPSAtMTsKLQkJCWVoZHJfY3VyciA9IE5VTEw7CiAJ CQltbWFwX2ZhaWxlZCA9IDE7CisJCQlmaWxlX21hcCA9IE5VTEw7CisJCQlmaWxlX3B0ciA9IE5V TEw7CisJCQlmaWxlX3VwZGF0ZWQgPSAwOwogCQkJZG9fZmlsZShmaWxlKTsKIAkJCWJyZWFrOwog CQljYXNlIFNKX0ZBSUw6ICAgIC8qIGVycm9yIGluIGRvX2ZpbGUgb3IgYmVsb3cgKi8KKwkJCWZw cmludGYoc3RkZXJyLCAiJXM6IGZhaWxlZFxuIiwgZmlsZSk7CiAJCQkrK25fZXJyb3I7CiAJCQli cmVhazsKIAkJY2FzZSBTSl9TVUNDRUVEOiAgICAvKiBwcmVtYXR1cmUgc3VjY2VzcyAqLwpkaWZm IC0tZ2l0IGEvc2VjdXJpdHkva2V5cy9rZXljdGwuYyBiL3NlY3VyaXR5L2tleXMva2V5Y3RsLmMK aW5kZXggYjcwZWFhMi4uMjM0Y2UzMCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkva2V5cy9rZXljdGwu YworKysgYi9zZWN1cml0eS9rZXlzL2tleWN0bC5jCkBAIC02ODgsMTYgKzY4OCwxNiBAQCBsb25n IGtleWN0bF9yZWFkX2tleShrZXlfc2VyaWFsX3Qga2V5aWQsIGNoYXIgX191c2VyICpidWZmZXIs IHNpemVfdCBidWZsZW4pCiAKIAkvKiB0aGUga2V5IGlzIHByb2JhYmx5IHJlYWRhYmxlIC0gbm93 IHRyeSB0byByZWFkIGl0ICovCiBjYW5fcmVhZF9rZXk6Ci0JcmV0ID0ga2V5X3ZhbGlkYXRlKGtl eSk7Ci0JaWYgKHJldCA9PSAwKSB7Ci0JCXJldCA9IC1FT1BOT1RTVVBQOwotCQlpZiAoa2V5LT50 eXBlLT5yZWFkKSB7Ci0JCQkvKiByZWFkIHRoZSBkYXRhIHdpdGggdGhlIHNlbWFwaG9yZSBoZWxk IChzaW5jZSB3ZQotCQkJICogbWlnaHQgc2xlZXApICovCi0JCQlkb3duX3JlYWQoJmtleS0+c2Vt KTsKKwlyZXQgPSAtRU9QTk9UU1VQUDsKKwlpZiAoa2V5LT50eXBlLT5yZWFkKSB7CisJCS8qIFJl YWQgdGhlIGRhdGEgd2l0aCB0aGUgc2VtYXBob3JlIGhlbGQgKHNpbmNlIHdlIG1pZ2h0IHNsZWVw KQorCQkgKiB0byBwcm90ZWN0IGFnYWluc3QgdGhlIGtleSBiZWluZyB1cGRhdGVkIG9yIHJldm9r ZWQuCisJCSAqLworCQlkb3duX3JlYWQoJmtleS0+c2VtKTsKKwkJcmV0ID0ga2V5X3ZhbGlkYXRl KGtleSk7CisJCWlmIChyZXQgPT0gMCkKIAkJCXJldCA9IGtleS0+dHlwZS0+cmVhZChrZXksIGJ1 ZmZlciwgYnVmbGVuKTsKLQkJCXVwX3JlYWQoJmtleS0+c2VtKTsKLQkJfQorCQl1cF9yZWFkKCZr ZXktPnNlbSk7CiAJfQogCiBlcnJvcjI6CmRpZmYgLS1naXQgYS9zb3VuZC91c2IvbWl4ZXIuYyBi L3NvdW5kL3VzYi9taXhlci5jCmluZGV4IDQ4OGU1MzEuLjJkYzkwYTQgMTAwNjQ0Ci0tLSBhL3Nv dW5kL3VzYi9taXhlci5jCisrKyBiL3NvdW5kL3VzYi9taXhlci5jCkBAIC0xMjEzLDYgKzEyMTMs OCBAQCBzdGF0aWMgdm9pZCBidWlsZF9mZWF0dXJlX2N0bChzdHJ1Y3QgbWl4ZXJfYnVpbGQgKnN0 YXRlLCB2b2lkICpyYXdfZGVzYywKIAkJYnJlYWs7CiAJfQogCisJc25kX3VzYl9taXhlcl9mdV9h cHBseV9xdWlyayhzdGF0ZS0+bWl4ZXIsIGN2YWwsIHVuaXRpZCwga2N0bCk7CisKIAlyYW5nZSA9 IChjdmFsLT5tYXggLSBjdmFsLT5taW4pIC8gY3ZhbC0+cmVzOwogCS8qIEFyZSB0aGVyZSBkZXZp Y2VzIHdpdGggdm9sdW1lIHJhbmdlIG1vcmUgdGhhbiAyNTU/IEkgdXNlIGEgYml0IG1vcmUKIAkg KiB0byBiZSBzdXJlLiAzODQgaXMgYSByZXNvbHV0aW9uIG1hZ2ljIG51bWJlciBmb3VuZCBvbiBM b2dpdGVjaApkaWZmIC0tZ2l0IGEvc291bmQvdXNiL21peGVyX21hcHMuYyBiL3NvdW5kL3VzYi9t aXhlcl9tYXBzLmMKaW5kZXggODkzYjc1MC4uY2I5ODA0MCAxMDA2NDQKLS0tIGEvc291bmQvdXNi L21peGVyX21hcHMuYworKysgYi9zb3VuZC91c2IvbWl4ZXJfbWFwcy5jCkBAIC0zMTksMTMgKzMx OSw2IEBAIHN0YXRpYyBzdHJ1Y3QgdXNibWl4X25hbWVfbWFwIGJvc2VfY29tcGFuaW9uNV9tYXBb XSA9IHsKIAl7IDAgfQkvKiB0ZXJtaW5hdG9yICovCiB9OwogCi0vKiBEcmFnb25mbHkgREFDIDEu MiwgdGhlIGRCIGNvbnZlcnNpb24gZmFjdG9yIGlzIDEgaW5zdGVhZCBvZiAyNTYgKi8KLXN0YXRp YyBzdHJ1Y3QgdXNibWl4X2RCX21hcCBkcmFnb25mbHlfMV8yX2RCID0gezAsIDUwMDB9Owotc3Rh dGljIHN0cnVjdCB1c2JtaXhfbmFtZV9tYXAgZHJhZ29uZmx5XzFfMl9tYXBbXSA9IHsKLQl7IDcs IE5VTEwsIC5kQiA9ICZkcmFnb25mbHlfMV8yX2RCIH0sCi0JeyAwIH0JLyogdGVybWluYXRvciAq LwotfTsKLQogLyoKICAqIENvbnRyb2wgbWFwIGVudHJpZXMKICAqLwpAQCAtNDEzLDExICs0MDYs NiBAQCBzdGF0aWMgc3RydWN0IHVzYm1peF9jdGxfbWFwIHVzYm1peF9jdGxfbWFwc1tdID0gewog CQkuaWQgPSBVU0JfSUQoMHgwNWE3LCAweDEwMjApLAogCQkubWFwID0gYm9zZV9jb21wYW5pb241 X21hcCwKIAl9LAotCXsKLQkJLyogRHJhZ29uZmx5IERBQyAxLjIgKi8KLQkJLmlkID0gVVNCX0lE KDB4MjFiNCwgMHgwMDgxKSwKLQkJLm1hcCA9IGRyYWdvbmZseV8xXzJfbWFwLAotCX0sCiAJeyAw IH0gLyogdGVybWluYXRvciAqLwogfTsKIApkaWZmIC0tZ2l0IGEvc291bmQvdXNiL21peGVyX3F1 aXJrcy5jIGIvc291bmQvdXNiL21peGVyX3F1aXJrcy5jCmluZGV4IDA0MGQxMDEuLjIxZjRkNDQg MTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9taXhlcl9xdWlya3MuYworKysgYi9zb3VuZC91c2IvbWl4 ZXJfcXVpcmtzLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxzb3VuZC9jb250cm9sLmg+ CiAjaW5jbHVkZSA8c291bmQvaHdkZXAuaD4KICNpbmNsdWRlIDxzb3VuZC9pbmZvLmg+CisjaW5j bHVkZSA8c291bmQvdGx2Lmg+CiAKICNpbmNsdWRlICJ1c2JhdWRpby5oIgogI2luY2x1ZGUgIm1p eGVyLmgiCkBAIC02ODIsMyArNjgzLDM5IEBAIHZvaWQgc25kX3VzYl9taXhlcl9yY19tZW1vcnlf Y2hhbmdlKHN0cnVjdCB1c2JfbWl4ZXJfaW50ZXJmYWNlICptaXhlciwKIAl9CiB9CiAKK3N0YXRp YyB2b2lkIHNuZF9kcmFnb25mbHlfcXVpcmtfZGJfc2NhbGUoc3RydWN0IHVzYl9taXhlcl9pbnRl cmZhY2UgKm1peGVyLAorCQkJCQkgc3RydWN0IHNuZF9rY29udHJvbCAqa2N0bCkKK3sKKwkvKiBB cHByb3hpbWF0aW9uIHVzaW5nIDEwIHJhbmdlcyBiYXNlZCBvbiBvdXRwdXQgbWVhc3VyZW1lbnQg b24gaHcgdjEuMi4KKwkgKiBUaGlzIHNlZW1zIGNsb3NlIHRvIHRoZSBjdWJpYyBtYXBwaW5nIGUu Zy4gYWxzYW1peGVyIHVzZXMuICovCisJc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1JBTkdF KHNjYWxlLAorCQkgMCwgIDEsIFRMVl9EQl9NSU5NQVhfSVRFTSgtNTMwMCwgLTQ5NzApLAorCQkg MiwgIDUsIFRMVl9EQl9NSU5NQVhfSVRFTSgtNDcxMCwgLTQxNjApLAorCQkgNiwgIDcsIFRMVl9E Ql9NSU5NQVhfSVRFTSgtMzg4NCwgLTM3MTApLAorCQkgOCwgMTQsIFRMVl9EQl9NSU5NQVhfSVRF TSgtMzQ0MywgLTI1NjApLAorCQkxNSwgMTYsIFRMVl9EQl9NSU5NQVhfSVRFTSgtMjQ3NSwgLTIz MjQpLAorCQkxNywgMTksIFRMVl9EQl9NSU5NQVhfSVRFTSgtMjIyOCwgLTIwMzEpLAorCQkyMCwg MjYsIFRMVl9EQl9NSU5NQVhfSVRFTSgtMTkxMCwgLTEzOTMpLAorCQkyNywgMzEsIFRMVl9EQl9N SU5NQVhfSVRFTSgtMTMyMiwgLTEwMzIpLAorCQkzMiwgNDAsIFRMVl9EQl9NSU5NQVhfSVRFTSgt OTY4LCAtNDkwKSwKKwkJNDEsIDUwLCBUTFZfREJfTUlOTUFYX0lURU0oLTQ0MSwgMCksCisJKTsK KworCWRldl9pbmZvKCZtaXhlci0+Y2hpcC0+ZGV2LT5kZXYsICJhcHBseWluZyBEcmFnb25GbHkg ZEIgc2NhbGUgcXVpcmtcbiIpOworCWtjdGwtPnRsdi5wID0gc2NhbGU7CisJa2N0bC0+dmRbMF0u YWNjZXNzIHw9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRDsKKwlrY3RsLT52ZFswXS5h Y2Nlc3MgJj0gflNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfQ0FMTEJBQ0s7Cit9CisKK3ZvaWQg c25kX3VzYl9taXhlcl9mdV9hcHBseV9xdWlyayhzdHJ1Y3QgdXNiX21peGVyX2ludGVyZmFjZSAq bWl4ZXIsCisJCQkJICBzdHJ1Y3QgdXNiX21peGVyX2VsZW1faW5mbyAqY3ZhbCwgaW50IHVuaXRp ZCwKKwkJCQkgIHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjdGwpCit7CisJc3dpdGNoIChtaXhlci0+ Y2hpcC0+dXNiX2lkKSB7CisJY2FzZSBVU0JfSUQoMHgyMWI0LCAweDAwODEpOiAvKiBBdWRpb1F1 ZXN0IERyYWdvbkZseSAqLworCQlpZiAodW5pdGlkID09IDcgJiYgY3ZhbC0+bWluID09IDAgJiYg Y3ZhbC0+bWF4ID09IDUwKQorCQkJc25kX2RyYWdvbmZseV9xdWlya19kYl9zY2FsZShtaXhlciwg a2N0bCk7CisJCWJyZWFrOworCX0KK30KKwpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL21peGVyX3F1 aXJrcy5oIGIvc291bmQvdXNiL21peGVyX3F1aXJrcy5oCmluZGV4IGJkYmZhYjAuLjE3N2MzMjkg MTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9taXhlcl9xdWlya3MuaAorKysgYi9zb3VuZC91c2IvbWl4 ZXJfcXVpcmtzLmgKQEAgLTksNSArOSw5IEBAIHZvaWQgc25kX2VtdXVzYl9zZXRfc2FtcGxlcmF0 ZShzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwKIHZvaWQgc25kX3VzYl9taXhlcl9yY19tZW1v cnlfY2hhbmdlKHN0cnVjdCB1c2JfbWl4ZXJfaW50ZXJmYWNlICptaXhlciwKIAkJCQkgICAgaW50 IHVuaXRpZCk7CiAKK3ZvaWQgc25kX3VzYl9taXhlcl9mdV9hcHBseV9xdWlyayhzdHJ1Y3QgdXNi X21peGVyX2ludGVyZmFjZSAqbWl4ZXIsCisJCQkJICBzdHJ1Y3QgdXNiX21peGVyX2VsZW1faW5m byAqY3ZhbCwgaW50IHVuaXRpZCwKKwkJCQkgIHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjdGwpOwor CiAjZW5kaWYgLyogU05EX1VTQl9NSVhFUl9RVUlSS1NfSCAqLwogCi== --=-4j96dx6Sg/c624YP/M0/-- --=-XaoHpq7vpd9dEag+i3sm Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVpxf9ee/yOyVhhEJAQrShRAAo9KCsFiYhn4MGQV446wX4YbBLYYCPyjZ nIN8lnQhhxnegXgODA1xpC3Nep6nHm2kQK+TzMiDROtLWt4kksZu/AwC0/rBHTqB HtaAmgYm5AUsZxXkExXIxwP2gWAStrJD+YhGfMcFVDhtEh7ImHSqe39B89W249bM 3nch6NEV4EC0tSPi2tUZMAZEouPR1sRXOn/NmR61bp35Za5zYNZlpTzx0fIVsI6x cjj2YuI4V3DKFsrCWdItCao+csf4QQxiJDNgSBQAIoiiFkfmjuUfTym1ZpVbglZN Plb19q1dHLXO2Sz7KkdA1BTfpsm6vD/UzaVXVsaEnRLZj/x5mMqvzMmhQ9YXPzNe kPdR1Sb5aqumd/cefJSHGe5jXyhPY4VEtZ6ujUaT6fdBgWzUPGPPqEaZbK8iJNKf v1hwu4Cv0Gvn5CLJmbZGcLiz2meLwIK1lNaEJEIoP/QmzgT7BCnGs0K/6GSZ/tjH QAEYCgtp1QMwF3NAd5bs55BC5sBVKpO5LeO6q2Lx9GWZKYwTd342UZqkARCCxuRv bIzWjueYAWkmWG5iNk/nAgTN4hNb1AqAc+C03z8Oz9PwGeUb3sWOYqo+Hgq2q898 LzabRO4fugfZZtKv/y3FUGXDbwlkJmwWdicCXSC926bWR8MiNYJkgyANKj384rUA wLcTNiKmrbw= =kkpV -----END PGP SIGNATURE----- --=-XaoHpq7vpd9dEag+i3sm--