Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757133Ab3EJOlL (ORCPT ); Fri, 10 May 2013 10:41:11 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:57474 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757085Ab3EJOk7 (ORCPT ); Fri, 10 May 2013 10:40:59 -0400 Message-ID: <1368196845.8310.17.camel@deadeye.wl.decadent.org.uk> Subject: Re: [000/118] 3.2.45-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Fri, 10 May 2013 15:40:45 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-IzqN96DCSBs/hnoLd/+3" X-Mailer: Evolution 3.4.4-2 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 2001:470:1f08:1539:d51a:8785:aa0a:cebe 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 Content-Length: 176691 Lines: 2325 --=-IzqN96DCSBs/hnoLd/+3 Content-Type: multipart/mixed; boundary="=-d93cBL9WH8PevUgsScAW" --=-d93cBL9WH8PevUgsScAW Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.45-rc1 relative to 3.2.44. Ben. --=20 Ben Hutchings For every action, there is an equal and opposite criticism. - Harrison --=-d93cBL9WH8PevUgsScAW Content-Disposition: attachment; filename="linux-3.2.45-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.45-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IDU2Njc1MGMuLjFkMGNmYmIg MTAwNjQ0DQotLS0gYS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0K IFZFUlNJT04gPSAzDQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDQ0DQotRVhUUkFWRVJT SU9OID0NCitTVUJMRVZFTCA9IDQ1DQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLXUzMDAvaW5jbHVkZS9tYWNoL3UzMDAtcmVncy5oIGIvYXJjaC9hcm0vbWFj aC11MzAwL2luY2x1ZGUvbWFjaC91MzAwLXJlZ3MuaA0KaW5kZXggMDM1ZmRjOS4uYThiNzFmMiAx MDA2NDQNCi0tLSBhL2FyY2gvYXJtL21hY2gtdTMwMC9pbmNsdWRlL21hY2gvdTMwMC1yZWdzLmgN CisrKyBiL2FyY2gvYXJtL21hY2gtdTMwMC9pbmNsdWRlL21hY2gvdTMwMC1yZWdzLmgNCkBAIC0x MDIsNyArMTAyLDcgQEANCiANCiAjaWZkZWYgQ09ORklHX01BQ0hfVTMwMF9CUzMzNQ0KIC8qIEZh c3QgVUFSVDEgb24gVTMzNSBvbmx5ICovDQotI2RlZmluZSBVMzAwX1VBUlQxX0JBU0UJCQkoVTMw MF9TTE9XX1BFUl9QSFlTX0JBU0UrMHg3MDAwKQ0KKyNkZWZpbmUgVTMwMF9VQVJUMV9CQVNFCQkJ KFUzMDBfRkFTVF9QRVJfUEhZU19CQVNFKzB4NzAwMCkNCiAjZW5kaWYNCiANCiAvKg0KZGlmZiAt LWdpdCBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9mdXRleC5oIGIvYXJjaC9pYTY0L2luY2x1ZGUv YXNtL2Z1dGV4LmgNCmluZGV4IDIxYWIzNzYuLjFiZDE0ZDUgMTAwNjQ0DQotLS0gYS9hcmNoL2lh NjQvaW5jbHVkZS9hc20vZnV0ZXguaA0KKysrIGIvYXJjaC9pYTY0L2luY2x1ZGUvYXNtL2Z1dGV4 LmgNCkBAIC0xMDcsMTYgKzEwNywxNSBAQCBmdXRleF9hdG9taWNfY21weGNoZ19pbmF0b21pYyh1 MzIgKnV2YWwsIHUzMiBfX3VzZXIgKnVhZGRyLA0KIAkJcmV0dXJuIC1FRkFVTFQ7DQogDQogCXsN Ci0JCXJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgcjggX19hc20gKCJyOCIpOw0KKwkJcmVnaXN0ZXIg dW5zaWduZWQgbG9uZyByOCBfX2FzbSAoInI4IikgPSAwOw0KIAkJdW5zaWduZWQgbG9uZyBwcmV2 Ow0KIAkJX19hc21fXyBfX3ZvbGF0aWxlX18oDQogCQkJIgltZjs7CQkJCQlcbiINCi0JCQkiCW1v diAlMD1yMAkJCQlcbiINCiAJCQkiCW1vdiBhci5jY3Y9JTQ7OwkJCQlcbiINCiAJCQkiWzE6XQlj bXB4Y2hnNC5hY3EgJTE9WyUyXSwlMyxhci5jY3YJCVxuIg0KIAkJCSIJLnhkYXRhNCBcIl9fZXhf dGFibGVcIiwgMWItLiwgMmYtLglcbiINCiAJCQkiWzI6XSINCi0JCQk6ICI9ciIgKHI4KSwgIj1y IiAocHJldikNCisJCQk6ICIrciIgKHI4KSwgIj0mciIgKHByZXYpDQogCQkJOiAiciIgKHVhZGRy KSwgInIiIChuZXd2YWwpLA0KIAkJCSAgInJPIiAoKGxvbmcpICh1bnNpZ25lZCkgb2xkdmFsKQ0K IAkJCTogIm1lbW9yeSIpOw0KZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9tY2Eu aCBiL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9tY2EuaA0KaW5kZXggNDNmOTZhYi4uOGM3MDk2MSAx MDA2NDQNCi0tLSBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9tY2EuaA0KKysrIGIvYXJjaC9pYTY0 L2luY2x1ZGUvYXNtL21jYS5oDQpAQCAtMTQzLDYgKzE0Myw3IEBAIGV4dGVybiB1bnNpZ25lZCBs b25nIF9fcGVyX2NwdV9tY2FbTlJfQ1BVU107DQogZXh0ZXJuIGludCBjcGVfdmVjdG9yOw0KIGV4 dGVybiBpbnQgaWE2NF9jcGVfaXJxOw0KIGV4dGVybiB2b2lkIGlhNjRfbWNhX2luaXQodm9pZCk7 DQorZXh0ZXJuIHZvaWQgaWE2NF9tY2FfaXJxX2luaXQodm9pZCk7DQogZXh0ZXJuIHZvaWQgaWE2 NF9tY2FfY3B1X2luaXQodm9pZCAqKTsNCiBleHRlcm4gdm9pZCBpYTY0X29zX21jYV9kaXNwYXRj aCh2b2lkKTsNCiBleHRlcm4gdm9pZCBpYTY0X29zX21jYV9kaXNwYXRjaF9lbmQodm9pZCk7DQpk aWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2tlcm5lbC9pcnEuYyBiL2FyY2gvaWE2NC9rZXJuZWwvaXJx LmMNCmluZGV4IGFkNjk2MDYuLmYyYzQxODI4IDEwMDY0NA0KLS0tIGEvYXJjaC9pYTY0L2tlcm5l bC9pcnEuYw0KKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9pcnEuYw0KQEAgLTIzLDYgKzIzLDggQEAN CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9z dGF0Lmg+DQogDQorI2luY2x1ZGUgPGFzbS9tY2EuaD4NCisNCiAvKg0KICAqICd3aGF0IHNob3Vs ZCB3ZSBkbyBpZiB3ZSBnZXQgYSBodyBpcnEgZXZlbnQgb24gYW4gaWxsZWdhbCB2ZWN0b3InLg0K ICAqIGVhY2ggYXJjaGl0ZWN0dXJlIGhhcyB0byBhbnN3ZXIgdGhpcyB0aGVtc2VsdmVzLg0KQEAg LTgzLDYgKzg1LDEyIEBAIGJvb2wgaXNfYWZmaW5pdHlfbWFza192YWxpZChjb25zdCBzdHJ1Y3Qg Y3B1bWFzayAqY3B1bWFzaykNCiANCiAjZW5kaWYgLyogQ09ORklHX1NNUCAqLw0KIA0KK2ludCBf X2luaXQgYXJjaF9lYXJseV9pcnFfaW5pdCh2b2lkKQ0KK3sNCisJaWE2NF9tY2FfaXJxX2luaXQo KTsNCisJcmV0dXJuIDA7DQorfQ0KKw0KICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUNCiB1bnNp Z25lZCBpbnQgdmVjdG9yc19pbl9taWdyYXRpb25bTlJfSVJRU107DQogDQpkaWZmIC0tZ2l0IGEv YXJjaC9pYTY0L2tlcm5lbC9tY2EuYyBiL2FyY2gvaWE2NC9rZXJuZWwvbWNhLmMNCmluZGV4IDg0 ZmI0MDUuLjliOTczMDMgMTAwNjQ0DQotLS0gYS9hcmNoL2lhNjQva2VybmVsL21jYS5jDQorKysg Yi9hcmNoL2lhNjQva2VybmVsL21jYS5jDQpAQCAtMjA3MSwyMiArMjA3MSwxNiBAQCBpYTY0X21j YV9pbml0KHZvaWQpDQogCXByaW50ayhLRVJOX0lORk8gIk1DQSByZWxhdGVkIGluaXRpYWxpemF0 aW9uIGRvbmVcbiIpOw0KIH0NCiANCisNCiAvKg0KLSAqIGlhNjRfbWNhX2xhdGVfaW5pdA0KLSAq DQotICoJT3Bwb3J0dW5pdHkgdG8gc2V0dXAgdGhpbmdzIHRoYXQgcmVxdWlyZSBpbml0aWFsaXph dGlvbiBsYXRlcg0KLSAqCXRoYW4gaWE2NF9tY2FfaW5pdC4gIFNldHVwIGEgdGltZXIgdG8gcG9s bCBmb3IgQ1BFcyBpZiB0aGUNCi0gKglwbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQgYW4gaW50ZXJy dXB0IGRyaXZlbiBtZWNoYW5pc20uDQotICoNCi0gKiAgSW5wdXRzICA6ICAgTm9uZQ0KLSAqICBP dXRwdXRzIDogICBTdGF0dXMNCisgKiBUaGVzZSBwaWVjZXMgY2Fubm90IGJlIGRvbmUgaW4gaWE2 NF9tY2FfaW5pdCgpIGJlY2F1c2UgaXQgaXMgY2FsbGVkIGJlZm9yZQ0KKyAqIGVhcmx5X2lycV9p bml0KCkgd2hpY2ggd291bGQgd2lwZSBvdXQgb3VyIHBlcmNwdSBpcnEgcmVnaXN0cmF0aW9ucy4g QnV0IHdlDQorICogY2Fubm90IGxlYXZlIHRoZW0gdW50aWwgaWE2NF9tY2FfbGF0ZV9pbml0KCkg YmVjYXVzZSBieSB0aGVuIGFsbCB0aGUgb3RoZXINCisgKiBwcm9jZXNzb3JzIGhhdmUgYmVlbiBi cm91Z2h0IG9ubGluZSBhbmQgaGF2ZSBzZXQgdGhlaXIgb3duIENNQyB2ZWN0b3JzIHRvDQorICog cG9pbnQgYXQgYSBub24tZXhpc3RhbnQgYWN0aW9uLiBDYWxsZWQgZnJvbSBhcmNoX2Vhcmx5X2ly cV9pbml0KCkuDQogICovDQotc3RhdGljIGludCBfX2luaXQNCi1pYTY0X21jYV9sYXRlX2luaXQo dm9pZCkNCit2b2lkIF9faW5pdCBpYTY0X21jYV9pcnFfaW5pdCh2b2lkKQ0KIHsNCi0JaWYgKCFt Y2FfaW5pdCkNCi0JCXJldHVybiAwOw0KLQ0KIAkvKg0KIAkgKiAgQ29uZmlndXJlIHRoZSBDTUNJ L1AgdmVjdG9yIGFuZCBoYW5kbGVyLiBJbnRlcnJ1cHRzIGZvciBDTUMgYXJlDQogCSAqICBwZXIt cHJvY2Vzc29yLCBzbyBBUCBDTUMgaW50ZXJydXB0cyBhcmUgc2V0dXAgaW4gc21wX2NhbGxpbigp IChzbXBib290LmMpLg0KQEAgLTIxMDUsNiArMjA5OSwyMyBAQCBpYTY0X21jYV9sYXRlX2luaXQo dm9pZCkNCiAJLyogU2V0dXAgdGhlIENQRUkvUCBoYW5kbGVyICovDQogCXJlZ2lzdGVyX3BlcmNw dV9pcnEoSUE2NF9DUEVQX1ZFQ1RPUiwgJm1jYV9jcGVwX2lycWFjdGlvbik7DQogI2VuZGlmDQor fQ0KKw0KKy8qDQorICogaWE2NF9tY2FfbGF0ZV9pbml0DQorICoNCisgKglPcHBvcnR1bml0eSB0 byBzZXR1cCB0aGluZ3MgdGhhdCByZXF1aXJlIGluaXRpYWxpemF0aW9uIGxhdGVyDQorICoJdGhh biBpYTY0X21jYV9pbml0LiAgU2V0dXAgYSB0aW1lciB0byBwb2xsIGZvciBDUEVzIGlmIHRoZQ0K KyAqCXBsYXRmb3JtIGRvZXNuJ3Qgc3VwcG9ydCBhbiBpbnRlcnJ1cHQgZHJpdmVuIG1lY2hhbmlz bS4NCisgKg0KKyAqICBJbnB1dHMgIDogICBOb25lDQorICogIE91dHB1dHMgOiAgIFN0YXR1cw0K KyAqLw0KK3N0YXRpYyBpbnQgX19pbml0DQoraWE2NF9tY2FfbGF0ZV9pbml0KHZvaWQpDQorew0K KwlpZiAoIW1jYV9pbml0KQ0KKwkJcmV0dXJuIDA7DQogDQogCXJlZ2lzdGVyX2hvdGNwdV9ub3Rp ZmllcigmbWNhX2NwdV9ub3RpZmllcik7DQogDQpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2t2bS92 dGxiLmMgYi9hcmNoL2lhNjQva3ZtL3Z0bGIuYw0KaW5kZXggNDMzMmY3ZS4uYTc4NjlmOCAxMDA2 NDQNCi0tLSBhL2FyY2gvaWE2NC9rdm0vdnRsYi5jDQorKysgYi9hcmNoL2lhNjQva3ZtL3Z0bGIu Yw0KQEAgLTI1Niw3ICsyNTYsNyBAQCB1NjQgZ3Vlc3RfdmhwdF9sb29rdXAodTY0IGloYSwgdTY0 ICpwdGUpDQogCQkJInNybHouZDs7Ig0KIAkJCSJzc20gcHNyLmk7OyINCiAJCQkic3Jsei5kOzsi DQotCQkJOiAiPXIiKHJldCkgOiAiciIoaWhhKSwgInIiKHB0ZSk6Im1lbW9yeSIpOw0KKwkJCTog Ij0mciIocmV0KSA6ICJyIihpaGEpLCAiciIocHRlKSA6ICJtZW1vcnkiKTsNCiANCiAJcmV0dXJu IHJldDsNCiB9DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzY0LlMgYi9h cmNoL3Bvd2VycGMva2VybmVsL2hlYWRfNjQuUw0KaW5kZXggY2RmNmIzZi4uMmM0OTIyNyAxMDA2 NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF82NC5TDQorKysgYi9hcmNoL3Bvd2Vy cGMva2VybmVsL2hlYWRfNjQuUw0KQEAgLTUwMiw2ICs1MDIsNyBAQCBfR0xPQkFMKGNvcHlfYW5k X2ZsdXNoKQ0KIAlzeW5jDQogCWFkZGkJcjUscjUsOA0KIAlhZGRpCXI2LHI2LDgNCisJaXN5bmMN CiAJYmxyDQogDQogLmFsaWduIDgNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vbnVtYS5j IGIvYXJjaC9wb3dlcnBjL21tL251bWEuYw0KaW5kZXggYjIyYTgzYS4uMjQ1MjNkYyAxMDA2NDQN Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9udW1hLmMNCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9udW1h LmMNCkBAIC0yMjEsNyArMjIxLDcgQEAgaW50IF9fbm9kZV9kaXN0YW5jZShpbnQgYSwgaW50IGIp DQogCWludCBkaXN0YW5jZSA9IExPQ0FMX0RJU1RBTkNFOw0KIA0KIAlpZiAoIWZvcm0xX2FmZmlu aXR5KQ0KLQkJcmV0dXJuIGRpc3RhbmNlOw0KKwkJcmV0dXJuICgoYSA9PSBiKSA/IExPQ0FMX0RJ U1RBTkNFIDogUkVNT1RFX0RJU1RBTkNFKTsNCiANCiAJZm9yIChpID0gMDsgaSA8IGRpc3RhbmNl X3JlZl9wb2ludHNfZGVwdGg7IGkrKykgew0KIAkJaWYgKGRpc3RhbmNlX2xvb2t1cF90YWJsZVth XVtpXSA9PSBkaXN0YW5jZV9sb29rdXBfdGFibGVbYl1baV0pDQpkaWZmIC0tZ2l0IGEvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3NwdWZzL2lub2RlLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZv cm1zL2NlbGwvc3B1ZnMvaW5vZGUuYw0KaW5kZXggZTQ4MWY2Yi4uNzBlYzRlOSAxMDA2NDQNCi0t LSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVmcy9pbm9kZS5jDQorKysgYi9hcmNo L3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvaW5vZGUuYw0KQEAgLTEwMCw2ICsxMDAsNyBA QCBzcHVmc19uZXdfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IG1vZGUpDQogCWlm ICghaW5vZGUpDQogCQlnb3RvIG91dDsNCiANCisJaW5vZGUtPmlfaW5vID0gZ2V0X25leHRfaW5v KCk7DQogCWlub2RlLT5pX21vZGUgPSBtb2RlOw0KIAlpbm9kZS0+aV91aWQgPSBjdXJyZW50X2Zz dWlkKCk7DQogCWlub2RlLT5pX2dpZCA9IGN1cnJlbnRfZnNnaWQoKTsNCmRpZmYgLS1naXQgYS9h cmNoL3NwYXJjL2luY2x1ZGUvYXNtL3BndGFibGVfNjQuaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9h c20vcGd0YWJsZV82NC5oDQppbmRleCAzOGViYjJjLi5kZGJiZWEzIDEwMDY0NA0KLS0tIGEvYXJj aC9zcGFyYy9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgNCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVk ZS9hc20vcGd0YWJsZV82NC5oDQpAQCAtNzgxLDYgKzc4MSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50 IGlvX3JlbWFwX3Bmbl9yYW5nZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJcmV0dXJu IHJlbWFwX3Bmbl9yYW5nZSh2bWEsIGZyb20sIHBoeXNfYmFzZSA+PiBQQUdFX1NISUZULCBzaXpl LCBwcm90KTsNCiB9DQogDQorI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPg0KICNpbmNsdWRlIDxh c20tZ2VuZXJpYy9wZ3RhYmxlLmg+DQogDQogLyogV2UgcHJvdmlkZSBvdXIgb3duIGdldF91bm1h cHBlZF9hcmVhIHRvIGNvcGUgd2l0aCBWQSBob2xlcyBhbmQNCmRpZmYgLS1naXQgYS9hcmNoL3Nw YXJjL2luY2x1ZGUvYXNtL3N5c3RlbV82NC5oIGIvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9zeXN0 ZW1fNjQuaA0KaW5kZXggMTBiY2FiYy4uZjg1NmM3ZiAxMDA2NDQNCi0tLSBhL2FyY2gvc3BhcmMv aW5jbHVkZS9hc20vc3lzdGVtXzY0LmgNCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vc3lz dGVtXzY0LmgNCkBAIC0xNDAsOCArMTQwLDcgQEAgZG8gewkJCQkJCVwNCiAJICogYW5kIDIgc3Rv cmVzIGluIHRoaXMgY3JpdGljYWwgY29kZSBwYXRoLiAgLURhdmVNDQogCSAqLw0KICNkZWZpbmUg c3dpdGNoX3RvKHByZXYsIG5leHQsIGxhc3QpCQkJCQlcDQotZG8gewlmbHVzaF90bGJfcGVuZGlu ZygpOwkJCQkJCVwNCi0Jc2F2ZV9hbmRfY2xlYXJfZnB1KCk7CQkJCQkJXA0KK2RvIHsJc2F2ZV9h bmRfY2xlYXJfZnB1KCk7CQkJCQkJXA0KIAkvKiBJZiB5b3UgYXJlIHRlbXB0ZWQgdG8gY29uZGl0 aW9uYWxpemUgdGhlIGZvbGxvd2luZyAqLwlcDQogCS8qIHNvIHRoYXQgQVNJIGlzIG9ubHkgd3Jp dHRlbiBpZiBpdCBjaGFuZ2VzLCB0aGluayBhZ2Fpbi4gKi8JXA0KIAlfX2FzbV9fIF9fdm9sYXRp bGVfXygid3IgJSVnMCwgJTAsICUlYXNpIgkJCVwNCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2lu Y2x1ZGUvYXNtL3RsYmZsdXNoXzY0LmggYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3RsYmZsdXNo XzY0LmgNCmluZGV4IDJlZjQ2MzQuLmYwZDZhOTcgMTAwNjQ0DQotLS0gYS9hcmNoL3NwYXJjL2lu Y2x1ZGUvYXNtL3RsYmZsdXNoXzY0LmgNCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vdGxi Zmx1c2hfNjQuaA0KQEAgLTExLDI0ICsxMSw0MCBAQA0KIHN0cnVjdCB0bGJfYmF0Y2ggew0KIAlz dHJ1Y3QgbW1fc3RydWN0ICptbTsNCiAJdW5zaWduZWQgbG9uZyB0bGJfbnI7DQorCXVuc2lnbmVk IGxvbmcgYWN0aXZlOw0KIAl1bnNpZ25lZCBsb25nIHZhZGRyc1tUTEJfQkFUQ0hfTlJdOw0KIH07 DQogDQogZXh0ZXJuIHZvaWQgZmx1c2hfdHNiX2tlcm5lbF9yYW5nZSh1bnNpZ25lZCBsb25nIHN0 YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7DQogZXh0ZXJuIHZvaWQgZmx1c2hfdHNiX3VzZXIoc3Ry dWN0IHRsYl9iYXRjaCAqdGIpOw0KK2V4dGVybiB2b2lkIGZsdXNoX3RzYl91c2VyX3BhZ2Uoc3Ry dWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgdmFkZHIpOw0KIA0KIC8qIFRMQiBmbHVz aCBvcGVyYXRpb25zLiAqLw0KIA0KLWV4dGVybiB2b2lkIGZsdXNoX3RsYl9wZW5kaW5nKHZvaWQp Ow0KK3N0YXRpYyBpbmxpbmUgdm9pZCBmbHVzaF90bGJfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0p DQorew0KK30NCisNCitzdGF0aWMgaW5saW5lIHZvaWQgZmx1c2hfdGxiX3BhZ2Uoc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsDQorCQkJCSAgdW5zaWduZWQgbG9uZyB2bWFkZHIpDQorew0KK30N CisNCitzdGF0aWMgaW5saW5lIHZvaWQgZmx1c2hfdGxiX3JhbmdlKHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLA0KKwkJCQkgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVu ZCkNCit7DQorfQ0KKw0KKyNkZWZpbmUgX19IQVZFX0FSQ0hfRU5URVJfTEFaWV9NTVVfTU9ERQ0K IA0KLSNkZWZpbmUgZmx1c2hfdGxiX3JhbmdlKHZtYSxzdGFydCxlbmQpCVwNCi0JZG8geyAodm9p ZCkoc3RhcnQpOyBmbHVzaF90bGJfcGVuZGluZygpOyB9IHdoaWxlICgwKQ0KLSNkZWZpbmUgZmx1 c2hfdGxiX3BhZ2Uodm1hLGFkZHIpCWZsdXNoX3RsYl9wZW5kaW5nKCkNCi0jZGVmaW5lIGZsdXNo X3RsYl9tbShtbSkJCWZsdXNoX3RsYl9wZW5kaW5nKCkNCitleHRlcm4gdm9pZCBmbHVzaF90bGJf cGVuZGluZyh2b2lkKTsNCitleHRlcm4gdm9pZCBhcmNoX2VudGVyX2xhenlfbW11X21vZGUodm9p ZCk7DQorZXh0ZXJuIHZvaWQgYXJjaF9sZWF2ZV9sYXp5X21tdV9tb2RlKHZvaWQpOw0KKyNkZWZp bmUgYXJjaF9mbHVzaF9sYXp5X21tdV9tb2RlKCkgICAgICBkbyB7fSB3aGlsZSAoMCkNCiANCiAv KiBMb2NhbCBjcHUgb25seS4gICovDQogZXh0ZXJuIHZvaWQgX19mbHVzaF90bGJfYWxsKHZvaWQp Ow0KLQ0KK2V4dGVybiB2b2lkIF9fZmx1c2hfdGxiX3BhZ2UodW5zaWduZWQgbG9uZyBjb250ZXh0 LCB1bnNpZ25lZCBsb25nIHZhZGRyKTsNCiBleHRlcm4gdm9pZCBfX2ZsdXNoX3RsYl9rZXJuZWxf cmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOw0KIA0KICNpZm5k ZWYgQ09ORklHX1NNUA0KQEAgLTM4LDE1ICs1NCwyNCBAQCBkbyB7CWZsdXNoX3RzYl9rZXJuZWxf cmFuZ2Uoc3RhcnQsZW5kKTsgXA0KIAlfX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2Uoc3RhcnQsZW5k KTsgXA0KIH0gd2hpbGUgKDApDQogDQorc3RhdGljIGlubGluZSB2b2lkIGdsb2JhbF9mbHVzaF90 bGJfcGFnZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyB2YWRkcikNCit7DQor CV9fZmx1c2hfdGxiX3BhZ2UoQ1RYX0hXQklUUyhtbS0+Y29udGV4dCksIHZhZGRyKTsNCit9DQor DQogI2Vsc2UgLyogQ09ORklHX1NNUCAqLw0KIA0KIGV4dGVybiB2b2lkIHNtcF9mbHVzaF90bGJf a2VybmVsX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsNCitl eHRlcm4gdm9pZCBzbXBfZmx1c2hfdGxiX3BhZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2ln bmVkIGxvbmcgdmFkZHIpOw0KIA0KICNkZWZpbmUgZmx1c2hfdGxiX2tlcm5lbF9yYW5nZShzdGFy dCwgZW5kKSBcDQogZG8gewlmbHVzaF90c2Jfa2VybmVsX3JhbmdlKHN0YXJ0LGVuZCk7IFwNCiAJ c21wX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2Uoc3RhcnQsIGVuZCk7IFwNCiB9IHdoaWxlICgwKQ0K IA0KKyNkZWZpbmUgZ2xvYmFsX2ZsdXNoX3RsYl9wYWdlKG1tLCB2YWRkcikgXA0KKwlzbXBfZmx1 c2hfdGxiX3BhZ2UobW0sIHZhZGRyKQ0KKw0KICNlbmRpZiAvKiAhIENPTkZJR19TTVAgKi8NCiAN CiAjZW5kaWYgLyogX1NQQVJDNjRfVExCRkxVU0hfSCAqLw0KZGlmZiAtLWdpdCBhL2FyY2gvc3Bh cmMva2VybmVsL3NtcF82NC5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvc21wXzY0LmMNCmluZGV4IDc1 NjA3NzIuLmUyMWQzYzBkIDEwMDY0NA0KLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvc21wXzY0LmMN CisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3NtcF82NC5jDQpAQCAtODU2LDcgKzg1Niw3IEBAIHZv aWQgc21wX3RzYl9zeW5jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQ0KIH0NCiANCiBleHRlcm4gdW5z aWduZWQgbG9uZyB4Y2FsbF9mbHVzaF90bGJfbW07DQotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgeGNh bGxfZmx1c2hfdGxiX3BlbmRpbmc7DQorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgeGNhbGxfZmx1c2hf dGxiX3BhZ2U7DQogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgeGNhbGxfZmx1c2hfdGxiX2tlcm5lbF9y YW5nZTsNCiBleHRlcm4gdW5zaWduZWQgbG9uZyB4Y2FsbF9mZXRjaF9nbG9iX3JlZ3M7DQogZXh0 ZXJuIHVuc2lnbmVkIGxvbmcgeGNhbGxfcmVjZWl2ZV9zaWduYWw7DQpAQCAtMTA3MCwyMyArMTA3 MCw1NiBAQCBsb2NhbF9mbHVzaF9hbmRfb3V0Og0KIAlwdXRfY3B1KCk7DQogfQ0KIA0KK3N0cnVj dCB0bGJfcGVuZGluZ19pbmZvIHsNCisJdW5zaWduZWQgbG9uZyBjdHg7DQorCXVuc2lnbmVkIGxv bmcgbnI7DQorCXVuc2lnbmVkIGxvbmcgKnZhZGRyczsNCit9Ow0KKw0KK3N0YXRpYyB2b2lkIHRs Yl9wZW5kaW5nX2Z1bmModm9pZCAqaW5mbykNCit7DQorCXN0cnVjdCB0bGJfcGVuZGluZ19pbmZv ICp0ID0gaW5mbzsNCisNCisJX19mbHVzaF90bGJfcGVuZGluZyh0LT5jdHgsIHQtPm5yLCB0LT52 YWRkcnMpOw0KK30NCisNCiB2b2lkIHNtcF9mbHVzaF90bGJfcGVuZGluZyhzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwgdW5zaWduZWQgbG9uZyBuciwgdW5zaWduZWQgbG9uZyAqdmFkZHJzKQ0KIHsNCiAJ dTMyIGN0eCA9IENUWF9IV0JJVFMobW0tPmNvbnRleHQpOw0KKwlzdHJ1Y3QgdGxiX3BlbmRpbmdf aW5mbyBpbmZvOw0KIAlpbnQgY3B1ID0gZ2V0X2NwdSgpOw0KIA0KKwlpbmZvLmN0eCA9IGN0eDsN CisJaW5mby5uciA9IG5yOw0KKwlpbmZvLnZhZGRycyA9IHZhZGRyczsNCisNCiAJaWYgKG1tID09 IGN1cnJlbnQtPm1tICYmIGF0b21pY19yZWFkKCZtbS0+bW1fdXNlcnMpID09IDEpDQogCQljcHVt YXNrX2NvcHkobW1fY3B1bWFzayhtbSksIGNwdW1hc2tfb2YoY3B1KSk7DQogCWVsc2UNCi0JCXNt cF9jcm9zc19jYWxsX21hc2tlZCgmeGNhbGxfZmx1c2hfdGxiX3BlbmRpbmcsDQotCQkJCSAgICAg IGN0eCwgbnIsICh1bnNpZ25lZCBsb25nKSB2YWRkcnMsDQotCQkJCSAgICAgIG1tX2NwdW1hc2so bW0pKTsNCisJCXNtcF9jYWxsX2Z1bmN0aW9uX21hbnkobW1fY3B1bWFzayhtbSksIHRsYl9wZW5k aW5nX2Z1bmMsDQorCQkJCSAgICAgICAmaW5mbywgMSk7DQogDQogCV9fZmx1c2hfdGxiX3BlbmRp bmcoY3R4LCBuciwgdmFkZHJzKTsNCiANCiAJcHV0X2NwdSgpOw0KIH0NCiANCit2b2lkIHNtcF9m bHVzaF90bGJfcGFnZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyB2YWRkcikN Cit7DQorCXVuc2lnbmVkIGxvbmcgY29udGV4dCA9IENUWF9IV0JJVFMobW0tPmNvbnRleHQpOw0K KwlpbnQgY3B1ID0gZ2V0X2NwdSgpOw0KKw0KKwlpZiAobW0gPT0gY3VycmVudC0+bW0gJiYgYXRv bWljX3JlYWQoJm1tLT5tbV91c2VycykgPT0gMSkNCisJCWNwdW1hc2tfY29weShtbV9jcHVtYXNr KG1tKSwgY3B1bWFza19vZihjcHUpKTsNCisJZWxzZQ0KKwkJc21wX2Nyb3NzX2NhbGxfbWFza2Vk KCZ4Y2FsbF9mbHVzaF90bGJfcGFnZSwNCisJCQkJICAgICAgY29udGV4dCwgdmFkZHIsIDAsDQor CQkJCSAgICAgIG1tX2NwdW1hc2sobW0pKTsNCisJX19mbHVzaF90bGJfcGFnZShjb250ZXh0LCB2 YWRkcik7DQorDQorCXB1dF9jcHUoKTsNCit9DQorDQogdm9pZCBzbXBfZmx1c2hfdGxiX2tlcm5l bF9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkNCiB7DQogCXN0 YXJ0ICY9IFBBR0VfTUFTSzsNCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL21tL3RsYi5jIGIvYXJj aC9zcGFyYy9tbS90bGIuYw0KaW5kZXggYjFmMjc5Yy4uYWZkMDIxZSAxMDA2NDQNCi0tLSBhL2Fy Y2gvc3BhcmMvbW0vdGxiLmMNCisrKyBiL2FyY2gvc3BhcmMvbW0vdGxiLmMNCkBAIC0yNCwxMSAr MjQsMTcgQEAgc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCB0bGJfYmF0Y2gsIHRsYl9iYXRj aCk7DQogdm9pZCBmbHVzaF90bGJfcGVuZGluZyh2b2lkKQ0KIHsNCiAJc3RydWN0IHRsYl9iYXRj aCAqdGIgPSAmZ2V0X2NwdV92YXIodGxiX2JhdGNoKTsNCisJc3RydWN0IG1tX3N0cnVjdCAqbW0g PSB0Yi0+bW07DQogDQotCWlmICh0Yi0+dGxiX25yKSB7DQotCQlmbHVzaF90c2JfdXNlcih0Yik7 DQorCWlmICghdGItPnRsYl9ucikNCisJCWdvdG8gb3V0Ow0KIA0KLQkJaWYgKENUWF9WQUxJRCh0 Yi0+bW0tPmNvbnRleHQpKSB7DQorCWZsdXNoX3RzYl91c2VyKHRiKTsNCisNCisJaWYgKENUWF9W QUxJRChtbS0+Y29udGV4dCkpIHsNCisJCWlmICh0Yi0+dGxiX25yID09IDEpIHsNCisJCQlnbG9i YWxfZmx1c2hfdGxiX3BhZ2UobW0sIHRiLT52YWRkcnNbMF0pOw0KKwkJfSBlbHNlIHsNCiAjaWZk ZWYgQ09ORklHX1NNUA0KIAkJCXNtcF9mbHVzaF90bGJfcGVuZGluZyh0Yi0+bW0sIHRiLT50bGJf bnIsDQogCQkJCQkgICAgICAmdGItPnZhZGRyc1swXSk7DQpAQCAtMzcsMTIgKzQzLDMwIEBAIHZv aWQgZmx1c2hfdGxiX3BlbmRpbmcodm9pZCkNCiAJCQkJCSAgICB0Yi0+dGxiX25yLCAmdGItPnZh ZGRyc1swXSk7DQogI2VuZGlmDQogCQl9DQotCQl0Yi0+dGxiX25yID0gMDsNCiAJfQ0KIA0KKwl0 Yi0+dGxiX25yID0gMDsNCisNCitvdXQ6DQogCXB1dF9jcHVfdmFyKHRsYl9iYXRjaCk7DQogfQ0K IA0KK3ZvaWQgYXJjaF9lbnRlcl9sYXp5X21tdV9tb2RlKHZvaWQpDQorew0KKwlzdHJ1Y3QgdGxi X2JhdGNoICp0YiA9ICZfX2dldF9jcHVfdmFyKHRsYl9iYXRjaCk7DQorDQorCXRiLT5hY3RpdmUg PSAxOw0KK30NCisNCit2b2lkIGFyY2hfbGVhdmVfbGF6eV9tbXVfbW9kZSh2b2lkKQ0KK3sNCisJ c3RydWN0IHRsYl9iYXRjaCAqdGIgPSAmX19nZXRfY3B1X3Zhcih0bGJfYmF0Y2gpOw0KKw0KKwlp ZiAodGItPnRsYl9ucikNCisJCWZsdXNoX3RsYl9wZW5kaW5nKCk7DQorCXRiLT5hY3RpdmUgPSAw Ow0KK30NCisNCiB2b2lkIHRsYl9iYXRjaF9hZGQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2ln bmVkIGxvbmcgdmFkZHIsDQogCQkgICBwdGVfdCAqcHRlcCwgcHRlX3Qgb3JpZywgaW50IGZ1bGxt bSkNCiB7DQpAQCAtOTAsNiArMTE0LDEyIEBAIG5vX2NhY2hlX2ZsdXNoOg0KIAkJbnIgPSAwOw0K IAl9DQogDQorCWlmICghdGItPmFjdGl2ZSkgew0KKwkJZ2xvYmFsX2ZsdXNoX3RsYl9wYWdlKG1t LCB2YWRkcik7DQorCQlmbHVzaF90c2JfdXNlcl9wYWdlKG1tLCB2YWRkcik7DQorCQlnb3RvIG91 dDsNCisJfQ0KKw0KIAlpZiAobnIgPT0gMCkNCiAJCXRiLT5tbSA9IG1tOw0KIA0KQEAgLTk4LDUg KzEyOCw2IEBAIG5vX2NhY2hlX2ZsdXNoOg0KIAlpZiAobnIgPj0gVExCX0JBVENIX05SKQ0KIAkJ Zmx1c2hfdGxiX3BlbmRpbmcoKTsNCiANCitvdXQ6DQogCXB1dF9jcHVfdmFyKHRsYl9iYXRjaCk7 DQogfQ0KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvbW0vdHNiLmMgYi9hcmNoL3NwYXJjL21tL3Rz Yi5jDQppbmRleCA1MzY0MTJkLi4zZWJjYWM3IDEwMDY0NA0KLS0tIGEvYXJjaC9zcGFyYy9tbS90 c2IuYw0KKysrIGIvYXJjaC9zcGFyYy9tbS90c2IuYw0KQEAgLTgsMTEgKzgsMTAgQEANCiAjaW5j bHVkZSA8bGludXgvc2xhYi5oPg0KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+DQogI2luY2x1ZGUg PGFzbS9wYWdlLmg+DQotI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPg0KLSNpbmNsdWRlIDxhc20v dGxiLmg+DQotI2luY2x1ZGUgPGFzbS9tbXVfY29udGV4dC5oPg0KICNpbmNsdWRlIDxhc20vcGd0 YWJsZS5oPg0KKyNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4NCiAjaW5jbHVkZSA8YXNtL3Rz Yi5oPg0KKyNpbmNsdWRlIDxhc20vdGxiLmg+DQogI2luY2x1ZGUgPGFzbS9vcGxpYi5oPg0KIA0K IGV4dGVybiBzdHJ1Y3QgdHNiIHN3YXBwZXJfdHNiW0tFUk5FTF9UU0JfTkVOVFJJRVNdOw0KQEAg LTQ3LDIzICs0NiwyNyBAQCB2b2lkIGZsdXNoX3RzYl9rZXJuZWxfcmFuZ2UodW5zaWduZWQgbG9u ZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpDQogCX0NCiB9DQogDQotc3RhdGljIHZvaWQgX19m bHVzaF90c2Jfb25lKHN0cnVjdCB0bGJfYmF0Y2ggKnRiLCB1bnNpZ25lZCBsb25nIGhhc2hfc2hp ZnQsDQotCQkJICAgIHVuc2lnbmVkIGxvbmcgdHNiLCB1bnNpZ25lZCBsb25nIG5lbnRyaWVzKQ0K K3N0YXRpYyB2b2lkIF9fZmx1c2hfdHNiX29uZV9lbnRyeSh1bnNpZ25lZCBsb25nIHRzYiwgdW5z aWduZWQgbG9uZyB2LA0KKwkJCQkgIHVuc2lnbmVkIGxvbmcgaGFzaF9zaGlmdCwNCisJCQkJICB1 bnNpZ25lZCBsb25nIG5lbnRyaWVzKQ0KIHsNCi0JdW5zaWduZWQgbG9uZyBpOw0KKwl1bnNpZ25l ZCBsb25nIHRhZywgZW50LCBoYXNoOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgdGItPnRsYl9ucjsg aSsrKSB7DQotCQl1bnNpZ25lZCBsb25nIHYgPSB0Yi0+dmFkZHJzW2ldOw0KLQkJdW5zaWduZWQg bG9uZyB0YWcsIGVudCwgaGFzaDsNCisJdiAmPSB+MHgxVUw7DQorCWhhc2ggPSB0c2JfaGFzaCh2 LCBoYXNoX3NoaWZ0LCBuZW50cmllcyk7DQorCWVudCA9IHRzYiArIChoYXNoICogc2l6ZW9mKHN0 cnVjdCB0c2IpKTsNCisJdGFnID0gKHYgPj4gMjJVTCk7DQogDQotCQl2ICY9IH4weDFVTDsNCisJ dHNiX2ZsdXNoKGVudCwgdGFnKTsNCit9DQogDQotCQloYXNoID0gdHNiX2hhc2godiwgaGFzaF9z aGlmdCwgbmVudHJpZXMpOw0KLQkJZW50ID0gdHNiICsgKGhhc2ggKiBzaXplb2Yoc3RydWN0IHRz YikpOw0KLQkJdGFnID0gKHYgPj4gMjJVTCk7DQorc3RhdGljIHZvaWQgX19mbHVzaF90c2Jfb25l KHN0cnVjdCB0bGJfYmF0Y2ggKnRiLCB1bnNpZ25lZCBsb25nIGhhc2hfc2hpZnQsDQorCQkJICAg IHVuc2lnbmVkIGxvbmcgdHNiLCB1bnNpZ25lZCBsb25nIG5lbnRyaWVzKQ0KK3sNCisJdW5zaWdu ZWQgbG9uZyBpOw0KIA0KLQkJdHNiX2ZsdXNoKGVudCwgdGFnKTsNCi0JfQ0KKwlmb3IgKGkgPSAw OyBpIDwgdGItPnRsYl9ucjsgaSsrKQ0KKwkJX19mbHVzaF90c2Jfb25lX2VudHJ5KHRzYiwgdGIt PnZhZGRyc1tpXSwgaGFzaF9zaGlmdCwgbmVudHJpZXMpOw0KIH0NCiANCiB2b2lkIGZsdXNoX3Rz Yl91c2VyKHN0cnVjdCB0bGJfYmF0Y2ggKnRiKQ0KQEAgLTkxLDYgKzk0LDMwIEBAIHZvaWQgZmx1 c2hfdHNiX3VzZXIoc3RydWN0IHRsYl9iYXRjaCAqdGIpDQogCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJm1tLT5jb250ZXh0LmxvY2ssIGZsYWdzKTsNCiB9DQogDQordm9pZCBmbHVzaF90c2JfdXNl cl9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIHZhZGRyKQ0KK3sNCisJ dW5zaWduZWQgbG9uZyBuZW50cmllcywgYmFzZSwgZmxhZ3M7DQorDQorCXNwaW5fbG9ja19pcnFz YXZlKCZtbS0+Y29udGV4dC5sb2NrLCBmbGFncyk7DQorDQorCWJhc2UgPSAodW5zaWduZWQgbG9u ZykgbW0tPmNvbnRleHQudHNiX2Jsb2NrW01NX1RTQl9CQVNFXS50c2I7DQorCW5lbnRyaWVzID0g bW0tPmNvbnRleHQudHNiX2Jsb2NrW01NX1RTQl9CQVNFXS50c2JfbmVudHJpZXM7DQorCWlmICh0 bGJfdHlwZSA9PSBjaGVldGFoX3BsdXMgfHwgdGxiX3R5cGUgPT0gaHlwZXJ2aXNvcikNCisJCWJh c2UgPSBfX3BhKGJhc2UpOw0KKwlfX2ZsdXNoX3RzYl9vbmVfZW50cnkoYmFzZSwgdmFkZHIsIFBB R0VfU0hJRlQsIG5lbnRyaWVzKTsNCisNCisjaWYgZGVmaW5lZChDT05GSUdfSFVHRVRMQl9QQUdF KSB8fCBkZWZpbmVkKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkNCisJaWYgKG1tLT5jb250 ZXh0LnRzYl9ibG9ja1tNTV9UU0JfSFVHRV0udHNiKSB7DQorCQliYXNlID0gKHVuc2lnbmVkIGxv bmcpIG1tLT5jb250ZXh0LnRzYl9ibG9ja1tNTV9UU0JfSFVHRV0udHNiOw0KKwkJbmVudHJpZXMg PSBtbS0+Y29udGV4dC50c2JfYmxvY2tbTU1fVFNCX0hVR0VdLnRzYl9uZW50cmllczsNCisJCWlm ICh0bGJfdHlwZSA9PSBjaGVldGFoX3BsdXMgfHwgdGxiX3R5cGUgPT0gaHlwZXJ2aXNvcikNCisJ CQliYXNlID0gX19wYShiYXNlKTsNCisJCV9fZmx1c2hfdHNiX29uZV9lbnRyeShiYXNlLCB2YWRk ciwgSFBBR0VfU0hJRlQsIG5lbnRyaWVzKTsNCisJfQ0KKyNlbmRpZg0KKwlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZtbS0+Y29udGV4dC5sb2NrLCBmbGFncyk7DQorfQ0KKw0KICNpZiBkZWZpbmVk KENPTkZJR19TUEFSQzY0X1BBR0VfU0laRV84S0IpDQogI2RlZmluZSBIVl9QR1NaX0lEWF9CQVNF CUhWX1BHU1pfSURYXzhLDQogI2RlZmluZSBIVl9QR1NaX01BU0tfQkFTRQlIVl9QR1NaX01BU0tf OEsNCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL21tL3VsdHJhLlMgYi9hcmNoL3NwYXJjL21tL3Vs dHJhLlMNCmluZGV4IDg3NDE2MmEuLmRkMTBjYWEgMTAwNjQ0DQotLS0gYS9hcmNoL3NwYXJjL21t L3VsdHJhLlMNCisrKyBiL2FyY2gvc3BhcmMvbW0vdWx0cmEuUw0KQEAgLTUzLDYgKzUzLDMzIEBA IF9fZmx1c2hfdGxiX21tOgkJLyogMTggaW5zbnMgKi8NCiAJbm9wDQogDQogCS5hbGlnbgkJMzIN CisJLmdsb2JsCQlfX2ZsdXNoX3RsYl9wYWdlDQorX19mbHVzaF90bGJfcGFnZToJLyogMjIgaW5z bnMgKi8NCisJLyogJW8wID0gY29udGV4dCwgJW8xID0gdmFkZHIgKi8NCisJcmRwcgkJJXBzdGF0 ZSwgJWc3DQorCWFuZG4JCSVnNywgUFNUQVRFX0lFLCAlZzINCisJd3JwcgkJJWcyLCAlcHN0YXRl DQorCW1vdgkJU0VDT05EQVJZX0NPTlRFWFQsICVvNA0KKwlsZHhhCQlbJW80XSBBU0lfRE1NVSwg JWcyDQorCXN0eGEJCSVvMCwgWyVvNF0gQVNJX0RNTVUNCisJYW5kY2MJCSVvMSwgMSwgJWcwDQor CWFuZG4JCSVvMSwgMSwgJW8zDQorCWJlLHBuCQklaWNjLCAxZg0KKwkgb3IJCSVvMywgMHgxMCwg JW8zDQorCXN0eGEJCSVnMCwgWyVvM10gQVNJX0lNTVVfREVNQVANCisxOglzdHhhCQklZzAsIFsl bzNdIEFTSV9ETU1VX0RFTUFQDQorCW1lbWJhcgkJI1N5bmMNCisJc3R4YQkJJWcyLCBbJW80XSBB U0lfRE1NVQ0KKwlzZXRoaQkJJWhpKEtFUk5CQVNFKSwgJW80DQorCWZsdXNoCQklbzQNCisJcmV0 bA0KKwkgd3JwcgkJJWc3LCAweDAsICVwc3RhdGUNCisJbm9wDQorCW5vcA0KKwlub3ANCisJbm9w DQorDQorCS5hbGlnbgkJMzINCiAJLmdsb2JsCQlfX2ZsdXNoX3RsYl9wZW5kaW5nDQogX19mbHVz aF90bGJfcGVuZGluZzoJLyogMjYgaW5zbnMgKi8NCiAJLyogJW8wID0gY29udGV4dCwgJW8xID0g bnIsICVvMiA9IHZhZGRyc1tdICovDQpAQCAtMjAzLDYgKzIzMCwzMSBAQCBfX2NoZWV0YWhfZmx1 c2hfdGxiX21tOiAvKiAxOSBpbnNucyAqLw0KIAlyZXRsDQogCSB3cnByCQklZzcsIDB4MCwgJXBz dGF0ZQ0KIA0KK19fY2hlZXRhaF9mbHVzaF90bGJfcGFnZToJLyogMjIgaW5zbnMgKi8NCisJLyog JW8wID0gY29udGV4dCwgJW8xID0gdmFkZHIgKi8NCisJcmRwcgkJJXBzdGF0ZSwgJWc3DQorCWFu ZG4JCSVnNywgUFNUQVRFX0lFLCAlZzINCisJd3JwcgkJJWcyLCAweDAsICVwc3RhdGUNCisJd3Jw cgkJJWcwLCAxLCAldGwNCisJbW92CQlQUklNQVJZX0NPTlRFWFQsICVvNA0KKwlsZHhhCQlbJW80 XSBBU0lfRE1NVSwgJWcyDQorCXNybHgJCSVnMiwgQ1RYX1BHU1oxX05VQ19TSElGVCwgJW8zDQor CXNsbHgJCSVvMywgQ1RYX1BHU1oxX05VQ19TSElGVCwgJW8zDQorCW9yCQklbzAsICVvMywgJW8w CS8qIFByZXNlcnZlIG51Y2xldXMgcGFnZSBzaXplIGZpZWxkcyAqLw0KKwlzdHhhCQklbzAsIFsl bzRdIEFTSV9ETU1VDQorCWFuZGNjCQklbzEsIDEsICVnMA0KKwliZSxwbgkJJWljYywgMWYNCisJ IGFuZG4JCSVvMSwgMSwgJW8zDQorCXN0eGEJCSVnMCwgWyVvM10gQVNJX0lNTVVfREVNQVANCisx OglzdHhhCQklZzAsIFslbzNdIEFTSV9ETU1VX0RFTUFQDQorCW1lbWJhcgkJI1N5bmMNCisJc3R4 YQkJJWcyLCBbJW80XSBBU0lfRE1NVQ0KKwlzZXRoaQkJJWhpKEtFUk5CQVNFKSwgJW80DQorCWZs dXNoCQklbzQNCisJd3JwcgkJJWcwLCAwLCAldGwNCisJcmV0bA0KKwkgd3JwcgkJJWc3LCAweDAs ICVwc3RhdGUNCisNCiBfX2NoZWV0YWhfZmx1c2hfdGxiX3BlbmRpbmc6CS8qIDI3IGluc25zICov DQogCS8qICVvMCA9IGNvbnRleHQsICVvMSA9IG5yLCAlbzIgPSB2YWRkcnNbXSAqLw0KIAlyZHBy CQklcHN0YXRlLCAlZzcNCkBAIC0yNjksNiArMzIxLDIwIEBAIF9faHlwZXJ2aXNvcl9mbHVzaF90 bGJfbW06IC8qIDEwIGluc25zICovDQogCXJldGwNCiAJIG5vcA0KIA0KK19faHlwZXJ2aXNvcl9m bHVzaF90bGJfcGFnZTogLyogMTEgaW5zbnMgKi8NCisJLyogJW8wID0gY29udGV4dCwgJW8xID0g dmFkZHIgKi8NCisJbW92CQklbzAsICVnMg0KKwltb3YJCSVvMSwgJW8wICAgICAgICAgICAgICAv KiBBUkcwOiB2YWRkciArIElNTVUtYml0ICovDQorCW1vdgkJJWcyLCAlbzEJICAgICAgLyogQVJH MTogbW11IGNvbnRleHQgKi8NCisJbW92CQlIVl9NTVVfQUxMLCAlbzIJICAgICAgLyogQVJHMjog ZmxhZ3MgKi8NCisJc3JseAkJJW8wLCBQQUdFX1NISUZULCAlbzANCisJc2xseAkJJW8wLCBQQUdF X1NISUZULCAlbzANCisJdGEJCUhWX01NVV9VTk1BUF9BRERSX1RSQVANCisJYnJueixwbgkJJW8w LCBfX2h5cGVydmlzb3JfdGxiX3RsMF9lcnJvcg0KKwkgbW92CQlIVl9NTVVfVU5NQVBfQUREUl9U UkFQLCAlbzENCisJcmV0bA0KKwkgbm9wDQorDQogX19oeXBlcnZpc29yX2ZsdXNoX3RsYl9wZW5k aW5nOiAvKiAxNiBpbnNucyAqLw0KIAkvKiAlbzAgPSBjb250ZXh0LCAlbzEgPSBuciwgJW8yID0g dmFkZHJzW10gKi8NCiAJc2xseAkJJW8xLCAzLCAlZzENCkBAIC0zMzksNiArNDA1LDEzIEBAIGNo ZWV0YWhfcGF0Y2hfY2FjaGV0bGJvcHM6DQogCWNhbGwJCXRsYl9wYXRjaF9vbmUNCiAJIG1vdgkJ MTksICVvMg0KIA0KKwlzZXRoaQkJJWhpKF9fZmx1c2hfdGxiX3BhZ2UpLCAlbzANCisJb3IJCSVv MCwgJWxvKF9fZmx1c2hfdGxiX3BhZ2UpLCAlbzANCisJc2V0aGkJCSVoaShfX2NoZWV0YWhfZmx1 c2hfdGxiX3BhZ2UpLCAlbzENCisJb3IJCSVvMSwgJWxvKF9fY2hlZXRhaF9mbHVzaF90bGJfcGFn ZSksICVvMQ0KKwljYWxsCQl0bGJfcGF0Y2hfb25lDQorCSBtb3YJCTIyLCAlbzINCisNCiAJc2V0 aGkJCSVoaShfX2ZsdXNoX3RsYl9wZW5kaW5nKSwgJW8wDQogCW9yCQklbzAsICVsbyhfX2ZsdXNo X3RsYl9wZW5kaW5nKSwgJW8wDQogCXNldGhpCQklaGkoX19jaGVldGFoX2ZsdXNoX3RsYl9wZW5k aW5nKSwgJW8xDQpAQCAtMzk3LDEwICs0NzAsOSBAQCB4Y2FsbF9mbHVzaF90bGJfbW06CS8qIDIx IGluc25zICovDQogCW5vcA0KIAlub3ANCiANCi0JLmdsb2JsCQl4Y2FsbF9mbHVzaF90bGJfcGVu ZGluZw0KLXhjYWxsX2ZsdXNoX3RsYl9wZW5kaW5nOgkvKiAyMSBpbnNucyAqLw0KLQkvKiAlZzU9 Y29udGV4dCwgJWcxPW5yLCAlZzc9dmFkZHJzW10gKi8NCi0Jc2xseAkJJWcxLCAzLCAlZzENCisJ Lmdsb2JsCQl4Y2FsbF9mbHVzaF90bGJfcGFnZQ0KK3hjYWxsX2ZsdXNoX3RsYl9wYWdlOgkvKiAx NyBpbnNucyAqLw0KKwkvKiAlZzU9Y29udGV4dCwgJWcxPXZhZGRyICovDQogCW1vdgkJUFJJTUFS WV9DT05URVhULCAlZzQNCiAJbGR4YQkJWyVnNF0gQVNJX0RNTVUsICVnMg0KIAlzcmx4CQklZzIs IENUWF9QR1NaMV9OVUNfU0hJRlQsICVnNA0KQEAgLTQwOCwyMCArNDgwLDE2IEBAIHhjYWxsX2Zs dXNoX3RsYl9wZW5kaW5nOgkvKiAyMSBpbnNucyAqLw0KIAlvcgkJJWc1LCAlZzQsICVnNQ0KIAlt b3YJCVBSSU1BUllfQ09OVEVYVCwgJWc0DQogCXN0eGEJCSVnNSwgWyVnNF0gQVNJX0RNTVUNCi0x OglzdWIJCSVnMSwgKDEgPDwgMyksICVnMQ0KLQlsZHgJCVslZzcgKyAlZzFdLCAlZzUNCi0JYW5k Y2MJCSVnNSwgMHgxLCAlZzANCisJYW5kY2MJCSVnMSwgMHgxLCAlZzANCiAJYmUscG4JCSVpY2Ms IDJmDQotDQotCSBhbmRuCQklZzUsIDB4MSwgJWc1DQorCSBhbmRuCQklZzEsIDB4MSwgJWc1DQog CXN0eGEJCSVnMCwgWyVnNV0gQVNJX0lNTVVfREVNQVANCiAyOglzdHhhCQklZzAsIFslZzVdIEFT SV9ETU1VX0RFTUFQDQogCW1lbWJhcgkJI1N5bmMNCi0JYnJueixwdAkJJWcxLCAxYg0KLQkgbm9w DQogCXN0eGEJCSVnMiwgWyVnNF0gQVNJX0RNTVUNCiAJcmV0cnkNCiAJbm9wDQorCW5vcA0KIA0K IAkuZ2xvYmwJCXhjYWxsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UNCiB4Y2FsbF9mbHVzaF90bGJf a2VybmVsX3JhbmdlOgkvKiAyNSBpbnNucyAqLw0KQEAgLTU5NiwxNSArNjY0LDEzIEBAIF9faHlw ZXJ2aXNvcl94Y2FsbF9mbHVzaF90bGJfbW06IC8qIDIxIGluc25zICovDQogCW1lbWJhcgkJI1N5 bmMNCiAJcmV0cnkNCiANCi0JLmdsb2JsCQlfX2h5cGVydmlzb3JfeGNhbGxfZmx1c2hfdGxiX3Bl bmRpbmcNCi1fX2h5cGVydmlzb3JfeGNhbGxfZmx1c2hfdGxiX3BlbmRpbmc6IC8qIDIxIGluc25z ICovDQotCS8qICVnNT1jdHgsICVnMT1uciwgJWc3PXZhZGRyc1tdLCAlZzIsJWczLCVnNCxnNj1z Y3JhdGNoICovDQotCXNsbHgJCSVnMSwgMywgJWcxDQorCS5nbG9ibAkJX19oeXBlcnZpc29yX3hj YWxsX2ZsdXNoX3RsYl9wYWdlDQorX19oeXBlcnZpc29yX3hjYWxsX2ZsdXNoX3RsYl9wYWdlOiAv KiAxNyBpbnNucyAqLw0KKwkvKiAlZzU9Y3R4LCAlZzE9dmFkZHIgKi8NCiAJbW92CQklbzAsICVn Mg0KIAltb3YJCSVvMSwgJWczDQogCW1vdgkJJW8yLCAlZzQNCi0xOglzdWIJCSVnMSwgKDEgPDwg MyksICVnMQ0KLQlsZHgJCVslZzcgKyAlZzFdLCAlbzAJLyogQVJHMDogdmlydHVhbCBhZGRyZXNz ICovDQorCW1vdgkJJWcxLCAlbzAJICAgICAgICAvKiBBUkcwOiB2aXJ0dWFsIGFkZHJlc3MgKi8N CiAJbW92CQklZzUsICVvMQkJLyogQVJHMTogbW11IGNvbnRleHQgKi8NCiAJbW92CQlIVl9NTVVf QUxMLCAlbzIJCS8qIEFSRzI6IGZsYWdzICovDQogCXNybHgJCSVvMCwgUEFHRV9TSElGVCwgJW8w DQpAQCAtNjEzLDggKzY3OSw2IEBAIF9faHlwZXJ2aXNvcl94Y2FsbF9mbHVzaF90bGJfcGVuZGlu ZzogLyogMjEgaW5zbnMgKi8NCiAJbW92CQlIVl9NTVVfVU5NQVBfQUREUl9UUkFQLCAlZzYNCiAJ YnJueixhLHBuCSVvMCwgX19oeXBlcnZpc29yX3RsYl94Y2FsbF9lcnJvcg0KIAkgbW92CQklbzAs ICVnNQ0KLQlicm56LHB0CQklZzEsIDFiDQotCSBub3ANCiAJbW92CQklZzIsICVvMA0KIAltb3YJ CSVnMywgJW8xDQogCW1vdgkJJWc0LCAlbzINCkBAIC02OTcsNiArNzYxLDEzIEBAIGh5cGVydmlz b3JfcGF0Y2hfY2FjaGV0bGJvcHM6DQogCWNhbGwJCXRsYl9wYXRjaF9vbmUNCiAJIG1vdgkJMTAs ICVvMg0KIA0KKwlzZXRoaQkJJWhpKF9fZmx1c2hfdGxiX3BhZ2UpLCAlbzANCisJb3IJCSVvMCwg JWxvKF9fZmx1c2hfdGxiX3BhZ2UpLCAlbzANCisJc2V0aGkJCSVoaShfX2h5cGVydmlzb3JfZmx1 c2hfdGxiX3BhZ2UpLCAlbzENCisJb3IJCSVvMSwgJWxvKF9faHlwZXJ2aXNvcl9mbHVzaF90bGJf cGFnZSksICVvMQ0KKwljYWxsCQl0bGJfcGF0Y2hfb25lDQorCSBtb3YJCTExLCAlbzINCisNCiAJ c2V0aGkJCSVoaShfX2ZsdXNoX3RsYl9wZW5kaW5nKSwgJW8wDQogCW9yCQklbzAsICVsbyhfX2Zs dXNoX3RsYl9wZW5kaW5nKSwgJW8wDQogCXNldGhpCQklaGkoX19oeXBlcnZpc29yX2ZsdXNoX3Rs Yl9wZW5kaW5nKSwgJW8xDQpAQCAtNzI4LDEyICs3OTksMTIgQEAgaHlwZXJ2aXNvcl9wYXRjaF9j YWNoZXRsYm9wczoNCiAJY2FsbAkJdGxiX3BhdGNoX29uZQ0KIAkgbW92CQkyMSwgJW8yDQogDQot CXNldGhpCQklaGkoeGNhbGxfZmx1c2hfdGxiX3BlbmRpbmcpLCAlbzANCi0Jb3IJCSVvMCwgJWxv KHhjYWxsX2ZsdXNoX3RsYl9wZW5kaW5nKSwgJW8wDQotCXNldGhpCQklaGkoX19oeXBlcnZpc29y X3hjYWxsX2ZsdXNoX3RsYl9wZW5kaW5nKSwgJW8xDQotCW9yCQklbzEsICVsbyhfX2h5cGVydmlz b3JfeGNhbGxfZmx1c2hfdGxiX3BlbmRpbmcpLCAlbzENCisJc2V0aGkJCSVoaSh4Y2FsbF9mbHVz aF90bGJfcGFnZSksICVvMA0KKwlvcgkJJW8wLCAlbG8oeGNhbGxfZmx1c2hfdGxiX3BhZ2UpLCAl bzANCisJc2V0aGkJCSVoaShfX2h5cGVydmlzb3JfeGNhbGxfZmx1c2hfdGxiX3BhZ2UpLCAlbzEN CisJb3IJCSVvMSwgJWxvKF9faHlwZXJ2aXNvcl94Y2FsbF9mbHVzaF90bGJfcGFnZSksICVvMQ0K IAljYWxsCQl0bGJfcGF0Y2hfb25lDQotCSBtb3YJCTIxLCAlbzINCisJIG1vdgkJMTcsICVvMg0K IA0KIAlzZXRoaQkJJWhpKHhjYWxsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UpLCAlbzANCiAJb3IJ CSVvMCwgJWxvKHhjYWxsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UpLCAlbzANCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3BlcmZfZXZlbnRfaW50ZWwuYyBiL2FyY2gveDg2L2tlcm5l bC9jcHUvcGVyZl9ldmVudF9pbnRlbC5jDQppbmRleCA5NTdjMjE2Li40YmIxMmY3IDEwMDY0NA0K LS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmX2V2ZW50X2ludGVsLmMNCisrKyBiL2FyY2gv eDg2L2tlcm5lbC9jcHUvcGVyZl9ldmVudF9pbnRlbC5jDQpAQCAtMTMwLDggKzEzMCwxNCBAQCBz dGF0aWMgc3RydWN0IGV2ZW50X2NvbnN0cmFpbnQgaW50ZWxfZ2VuX2V2ZW50X2NvbnN0cmFpbnRz W10gX19yZWFkX21vc3RseSA9DQogfTsNCiANCiBzdGF0aWMgc3RydWN0IGV4dHJhX3JlZyBpbnRl bF9zbmJfZXh0cmFfcmVnc1tdIF9fcmVhZF9tb3N0bHkgPSB7DQotCUlOVEVMX0VWRU5UX0VYVFJB X1JFRygweGI3LCBNU1JfT0ZGQ09SRV9SU1BfMCwgMHgzZmZmZmZmZmZmdWxsLCBSU1BfMCksDQot CUlOVEVMX0VWRU5UX0VYVFJBX1JFRygweGJiLCBNU1JfT0ZGQ09SRV9SU1BfMSwgMHgzZmZmZmZm ZmZmdWxsLCBSU1BfMSksDQorCUlOVEVMX0VWRU5UX0VYVFJBX1JFRygweGI3LCBNU1JfT0ZGQ09S RV9SU1BfMCwgMHgzZjgwN2Y4ZmZmdWxsLCBSU1BfMCksDQorCUlOVEVMX0VWRU5UX0VYVFJBX1JF RygweGJiLCBNU1JfT0ZGQ09SRV9SU1BfMSwgMHgzZjgwN2Y4ZmZmdWxsLCBSU1BfMSksDQorCUVW RU5UX0VYVFJBX0VORA0KK307DQorDQorc3RhdGljIHN0cnVjdCBleHRyYV9yZWcgaW50ZWxfc25i ZXBfZXh0cmFfcmVnc1tdIF9fcmVhZF9tb3N0bHkgPSB7DQorCUlOVEVMX0VWRU5UX0VYVFJBX1JF RygweGI3LCBNU1JfT0ZGQ09SRV9SU1BfMCwgMHgzZmZmZmY4ZmZmdWxsLCBSU1BfMCksDQorCUlO VEVMX0VWRU5UX0VYVFJBX1JFRygweGJiLCBNU1JfT0ZGQ09SRV9SU1BfMSwgMHgzZmZmZmY4ZmZm dWxsLCBSU1BfMSksDQogCUVWRU5UX0VYVFJBX0VORA0KIH07DQogDQpAQCAtMTcxMSw3ICsxNzE3 LDEwIEBAIF9faW5pdCBpbnQgaW50ZWxfcG11X2luaXQodm9pZCkNCiANCiAJCXg4Nl9wbXUuZXZl bnRfY29uc3RyYWludHMgPSBpbnRlbF9zbmJfZXZlbnRfY29uc3RyYWludHM7DQogCQl4ODZfcG11 LnBlYnNfY29uc3RyYWludHMgPSBpbnRlbF9zbmJfcGVic19ldmVudF9jb25zdHJhaW50czsNCi0J CXg4Nl9wbXUuZXh0cmFfcmVncyA9IGludGVsX3NuYl9leHRyYV9yZWdzOw0KKwkJaWYgKGJvb3Rf Y3B1X2RhdGEueDg2X21vZGVsID09IDQ1KQ0KKwkJCXg4Nl9wbXUuZXh0cmFfcmVncyA9IGludGVs X3NuYmVwX2V4dHJhX3JlZ3M7DQorCQllbHNlDQorCQkJeDg2X3BtdS5leHRyYV9yZWdzID0gaW50 ZWxfc25iX2V4dHJhX3JlZ3M7DQogCQkvKiBhbGwgZXh0cmEgcmVncyBhcmUgcGVyLWNwdSB3aGVu IEhUIGlzIG9uICovDQogCQl4ODZfcG11LmVyX2ZsYWdzIHw9IEVSRl9IQVNfUlNQXzE7DQogCQl4 ODZfcG11LmVyX2ZsYWdzIHw9IEVSRl9OT19IVF9TSEFSSU5HOw0KZGlmZiAtLWdpdCBhL2FyY2gv eDg2L21tL2luaXQuYyBiL2FyY2gveDg2L21tL2luaXQuYw0KaW5kZXggMzRhN2Y0MC4uYTRjY2Ew NiAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L21tL2luaXQuYw0KKysrIGIvYXJjaC94ODYvbW0vaW5p dC5jDQpAQCAtNDQsMTEgKzQ0LDE1IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBmaW5kX2Vhcmx5X3Rh YmxlX3NwYWNlKHN0cnVjdCBtYXBfcmFuZ2UgKm1yLCBpbnQgbnJfcmFuZ2UpDQogCWludCBpOw0K IAl1bnNpZ25lZCBsb25nIHB1ZHMgPSAwLCBwbWRzID0gMCwgcHRlcyA9IDAsIHRhYmxlczsNCiAJ dW5zaWduZWQgbG9uZyBzdGFydCA9IDAsIGdvb2RfZW5kOw0KKwl1bnNpZ25lZCBsb25nIHBnZF9l eHRyYSA9IDA7DQogCXBoeXNfYWRkcl90IGJhc2U7DQogDQogCWZvciAoaSA9IDA7IGkgPCBucl9y YW5nZTsgaSsrKSB7DQogCQl1bnNpZ25lZCBsb25nIHJhbmdlLCBleHRyYTsNCiANCisJCWlmICgo bXJbaV0uZW5kID4+IFBHRElSX1NISUZUKSAtIChtcltpXS5zdGFydCA+PiBQR0RJUl9TSElGVCkp DQorCQkJcGdkX2V4dHJhKys7DQorDQogCQlyYW5nZSA9IG1yW2ldLmVuZCAtIG1yW2ldLnN0YXJ0 Ow0KIAkJcHVkcyArPSAocmFuZ2UgKyBQVURfU0laRSAtIDEpID4+IFBVRF9TSElGVDsNCiANCkBA IC03Myw2ICs3Nyw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBmaW5kX2Vhcmx5X3RhYmxlX3NwYWNl KHN0cnVjdCBtYXBfcmFuZ2UgKm1yLCBpbnQgbnJfcmFuZ2UpDQogCXRhYmxlcyA9IHJvdW5kdXAo cHVkcyAqIHNpemVvZihwdWRfdCksIFBBR0VfU0laRSk7DQogCXRhYmxlcyArPSByb3VuZHVwKHBt ZHMgKiBzaXplb2YocG1kX3QpLCBQQUdFX1NJWkUpOw0KIAl0YWJsZXMgKz0gcm91bmR1cChwdGVz ICogc2l6ZW9mKHB0ZV90KSwgUEFHRV9TSVpFKTsNCisJdGFibGVzICs9IChwZ2RfZXh0cmEgKiBQ QUdFX1NJWkUpOw0KIA0KICNpZmRlZiBDT05GSUdfWDg2XzMyDQogCS8qIGZvciBmaXhtYXAgKi8N CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMgYi9hcmNoL3g4Ni94ZW4vZW5s aWdodGVuLmMNCmluZGV4IDY5YjllZjYuLjA0NGY1ZDkgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni94 ZW4vZW5saWdodGVuLmMNCisrKyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYw0KQEAgLTEzOTEs OCArMTM5MSwxMSBAQCBzdGF0aWMgaW50IF9fY3B1aW5pdCB4ZW5faHZtX2NwdV9ub3RpZnkoc3Ry dWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLA0KIAlzd2l0Y2ggKGFjdGlvbikgew0KIAljYXNlIENQ VV9VUF9QUkVQQVJFOg0KIAkJeGVuX3ZjcHVfc2V0dXAoY3B1KTsNCi0JCWlmICh4ZW5faGF2ZV92 ZWN0b3JfY2FsbGJhY2spDQorCQlpZiAoeGVuX2hhdmVfdmVjdG9yX2NhbGxiYWNrKSB7DQogCQkJ eGVuX2luaXRfbG9ja19jcHUoY3B1KTsNCisJCQlpZiAoeGVuX2ZlYXR1cmUoWEVORkVBVF9odm1f c2FmZV9wdmNsb2NrKSkNCisJCQkJeGVuX3NldHVwX3RpbWVyKGNwdSk7DQorCQl9DQogCQlicmVh azsNCiAJZGVmYXVsdDoNCiAJCWJyZWFrOw0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9zbXAu YyBiL2FyY2gveDg2L3hlbi9zbXAuYw0KaW5kZXggOWEyM2ZmZi4uNmU0ZDVkYyAxMDA2NDQNCi0t LSBhL2FyY2gveDg2L3hlbi9zbXAuYw0KKysrIGIvYXJjaC94ODYveGVuL3NtcC5jDQpAQCAtNTYz LDYgKzU2Myw4IEBAIHN0YXRpYyB2b2lkIHhlbl9odm1fY3B1X2RpZSh1bnNpZ25lZCBpbnQgY3B1 KQ0KIAl1bmJpbmRfZnJvbV9pcnFoYW5kbGVyKHBlcl9jcHUoeGVuX2NhbGxmdW5jX2lycSwgY3B1 KSwgTlVMTCk7DQogCXVuYmluZF9mcm9tX2lycWhhbmRsZXIocGVyX2NwdSh4ZW5fZGVidWdfaXJx LCBjcHUpLCBOVUxMKTsNCiAJdW5iaW5kX2Zyb21faXJxaGFuZGxlcihwZXJfY3B1KHhlbl9jYWxs ZnVuY3NpbmdsZV9pcnEsIGNwdSksIE5VTEwpOw0KKwl4ZW5fdW5pbml0X2xvY2tfY3B1KGNwdSk7 DQorCXhlbl90ZWFyZG93bl90aW1lcihjcHUpOw0KIAluYXRpdmVfY3B1X2RpZShjcHUpOw0KIH0N CiANCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vdGltZS5jIGIvYXJjaC94ODYveGVuL3RpbWUu Yw0KaW5kZXggMDI5NmE5NS4uMDU0Y2MwMSAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L3hlbi90aW1l LmMNCisrKyBiL2FyY2gveDg2L3hlbi90aW1lLmMNCkBAIC00OTcsNyArNDk3LDExIEBAIHN0YXRp YyB2b2lkIHhlbl9odm1fc2V0dXBfY3B1X2Nsb2NrZXZlbnRzKHZvaWQpDQogew0KIAlpbnQgY3B1 ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOw0KIAl4ZW5fc2V0dXBfcnVuc3RhdGVfaW5mbyhjcHUpOw0K LQl4ZW5fc2V0dXBfdGltZXIoY3B1KTsNCisJLyoNCisJICogeGVuX3NldHVwX3RpbWVyKGNwdSkg LSBzbnByaW50ZiBpcyBiYWQgaW4gYXRvbWljIGNvbnRleHQuIEhlbmNlDQorCSAqIGRvaW5nIGl0 IHhlbl9odm1fY3B1X25vdGlmeSAod2hpY2ggZ2V0cyBjYWxsZWQgYnkgc21wX2luaXQgZHVyaW5n DQorCSAqIGVhcmx5IGJvb3R1cCBhbmQgYWxzbyBkdXJpbmcgQ1BVIGhvdHBsdWcgZXZlbnRzKS4N CisJICovDQogCXhlbl9zZXR1cF9jcHVfY2xvY2tldmVudHMoKTsNCiB9DQogDQpkaWZmIC0tZ2l0 IGEvY3J5cHRvL2FsZ2lmX2hhc2guYyBiL2NyeXB0by9hbGdpZl9oYXNoLmMNCmluZGV4IGVmNTM1 NmMuLjAyNjIyMTAgMTAwNjQ0DQotLS0gYS9jcnlwdG8vYWxnaWZfaGFzaC5jDQorKysgYi9jcnlw dG8vYWxnaWZfaGFzaC5jDQpAQCAtMTYxLDYgKzE2MSw4IEBAIHN0YXRpYyBpbnQgaGFzaF9yZWN2 bXNnKHN0cnVjdCBraW9jYiAqdW51c2VkLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLA0KIAllbHNlIGlm IChsZW4gPCBkcykNCiAJCW1zZy0+bXNnX2ZsYWdzIHw9IE1TR19UUlVOQzsNCiANCisJbXNnLT5t c2dfbmFtZWxlbiA9IDA7DQorDQogCWxvY2tfc29jayhzayk7DQogCWlmIChjdHgtPm1vcmUpIHsN CiAJCWN0eC0+bW9yZSA9IDA7DQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FsZ2lmX3NrY2lwaGVyLmMg Yi9jcnlwdG8vYWxnaWZfc2tjaXBoZXIuYw0KaW5kZXggNmE2ZGZjMC4uYTFjNGYwYSAxMDA2NDQN Ci0tLSBhL2NyeXB0by9hbGdpZl9za2NpcGhlci5jDQorKysgYi9jcnlwdG8vYWxnaWZfc2tjaXBo ZXIuYw0KQEAgLTQzMiw2ICs0MzIsNyBAQCBzdGF0aWMgaW50IHNrY2lwaGVyX3JlY3Ztc2coc3Ry dWN0IGtpb2NiICp1bnVzZWQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWxvbmcgY29waWVkID0g MDsNCiANCiAJbG9ja19zb2NrKHNrKTsNCisJbXNnLT5tc2dfbmFtZWxlbiA9IDA7DQogCWZvciAo aW92ID0gbXNnLT5tc2dfaW92LCBpb3ZsZW4gPSBtc2ctPm1zZ19pb3ZsZW47IGlvdmxlbiA+IDA7 DQogCSAgICAgaW92bGVuLS0sIGlvdisrKSB7DQogCQl1bnNpZ25lZCBsb25nIHNlZ2xlbiA9IGlv di0+aW92X2xlbjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcGNpX3Jvb3QuYyBiL2RyaXZl cnMvYWNwaS9wY2lfcm9vdC5jDQppbmRleCA3YWZmNjMxLi41YjBmMDc1IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9hY3BpL3BjaV9yb290LmMNCisrKyBiL2RyaXZlcnMvYWNwaS9wY2lfcm9vdC5jDQpA QCAtMjQ3LDggKzI0Nyw4IEBAIHN0YXRpYyBhY3BpX3N0YXR1cyBhY3BpX3BjaV9xdWVyeV9vc2Mo c3RydWN0IGFjcGlfcGNpX3Jvb3QgKnJvb3QsDQogCQkqY29udHJvbCAmPSBPU0NfUENJX0NPTlRS T0xfTUFTS1M7DQogCQljYXBidWZbT1NDX0NPTlRST0xfVFlQRV0gPSAqY29udHJvbCB8IHJvb3Qt Pm9zY19jb250cm9sX3NldDsNCiAJfSBlbHNlIHsNCi0JCS8qIFJ1biBfT1NDIHF1ZXJ5IGZvciBh bGwgcG9zc2libGUgY29udHJvbHMuICovDQotCQljYXBidWZbT1NDX0NPTlRST0xfVFlQRV0gPSBP U0NfUENJX0NPTlRST0xfTUFTS1M7DQorCQkvKiBSdW4gX09TQyBxdWVyeSBvbmx5IHdpdGggZXhp c3RpbmcgY29udHJvbHMuICovDQorCQljYXBidWZbT1NDX0NPTlRST0xfVFlQRV0gPSByb290LT5v c2NfY29udHJvbF9zZXQ7DQogCX0NCiANCiAJc3RhdHVzID0gYWNwaV9wY2lfcnVuX29zYyhyb290 LT5kZXZpY2UtPmhhbmRsZSwgY2FwYnVmLCAmcmVzdWx0KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2NoYXIvaHBldC5jIGIvZHJpdmVycy9jaGFyL2hwZXQuYw0KaW5kZXggMDgzMzg5Ni4uMTRkNDll NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvY2hhci9ocGV0LmMNCisrKyBiL2RyaXZlcnMvY2hhci9o cGV0LmMNCkBAIC0zNzQsMjYgKzM3NCwxNCBAQCBzdGF0aWMgaW50IGhwZXRfbW1hcChzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpDQogCXN0cnVjdCBocGV0X2Rl diAqZGV2cDsNCiAJdW5zaWduZWQgbG9uZyBhZGRyOw0KIA0KLQlpZiAoKCh2bWEtPnZtX2VuZCAt IHZtYS0+dm1fc3RhcnQpICE9IFBBR0VfU0laRSkgfHwgdm1hLT52bV9wZ29mZikNCi0JCXJldHVy biAtRUlOVkFMOw0KLQ0KIAlkZXZwID0gZmlsZS0+cHJpdmF0ZV9kYXRhOw0KIAlhZGRyID0gZGV2 cC0+aGRfaHBldHMtPmhwX2hwZXRfcGh5czsNCiANCiAJaWYgKGFkZHIgJiAoUEFHRV9TSVpFIC0g MSkpDQogCQlyZXR1cm4gLUVOT1NZUzsNCiANCi0Jdm1hLT52bV9mbGFncyB8PSBWTV9JTzsNCiAJ dm1hLT52bV9wYWdlX3Byb3QgPSBwZ3Byb3Rfbm9uY2FjaGVkKHZtYS0+dm1fcGFnZV9wcm90KTsN Ci0NCi0JaWYgKGlvX3JlbWFwX3Bmbl9yYW5nZSh2bWEsIHZtYS0+dm1fc3RhcnQsIGFkZHIgPj4g UEFHRV9TSElGVCwNCi0JCQkJCVBBR0VfU0laRSwgdm1hLT52bV9wYWdlX3Byb3QpKSB7DQotCQlw cmludGsoS0VSTl9FUlIgIiVzOiBpb19yZW1hcF9wZm5fcmFuZ2UgZmFpbGVkXG4iLA0KLQkJCV9f ZnVuY19fKTsNCi0JCXJldHVybiAtRUFHQUlOOw0KLQl9DQotDQotCXJldHVybiAwOw0KKwlyZXR1 cm4gdm1faW9tYXBfbWVtb3J5KHZtYSwgYWRkciwgUEFHRV9TSVpFKTsNCiAjZWxzZQ0KIAlyZXR1 cm4gLUVOT1NZUzsNCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYw0KaW5kZXggY2E2NzMz OC4uYzc3ZmM2NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMN CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMNCkBAIC0xMDA3LDU2ICsxMDA3 LDUwIEBAIGludGVsX3RlYXJkb3duX21jaGJhcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KIAkJ cmVsZWFzZV9yZXNvdXJjZSgmZGV2X3ByaXYtPm1jaF9yZXMpOw0KIH0NCiANCi0jZGVmaW5lIFBU RV9BRERSRVNTX01BU0sJCTB4ZmZmZmYwMDANCi0jZGVmaW5lIFBURV9BRERSRVNTX01BU0tfSElH SAkJMHgwMDAwMDBmMCAvKiBpOTE1KyAqLw0KLSNkZWZpbmUgUFRFX01BUFBJTkdfVFlQRV9VTkNB Q0hFRAkoMCA8PCAxKQ0KLSNkZWZpbmUgUFRFX01BUFBJTkdfVFlQRV9EQ0FDSEUJCSgxIDw8IDEp IC8qIGk4MzAgb25seSAqLw0KLSNkZWZpbmUgUFRFX01BUFBJTkdfVFlQRV9DQUNIRUQJCSgzIDw8 IDEpDQotI2RlZmluZSBQVEVfTUFQUElOR19UWVBFX01BU0sJCSgzIDw8IDEpDQotI2RlZmluZSBQ VEVfVkFMSUQJCQkoMSA8PCAwKQ0KLQ0KLS8qKg0KLSAqIGk5MTVfc3RvbGVuX3RvX3BoeXMgLSB0 YWtlIGFuIG9mZnNldCBpbnRvIHN0b2xlbiBtZW1vcnkgYW5kIHR1cm4gaXQgaW50bw0KLSAqICAg ICAgICAgICAgICAgICAgICAgICBhIHBoeXNpY2FsIG9uZQ0KLSAqIEBkZXY6IGRybSBkZXZpY2UN Ci0gKiBAb2Zmc2V0OiBhZGRyZXNzIHRvIHRyYW5zbGF0ZQ0KLSAqDQotICogU29tZSBjaGlwIGZ1 bmN0aW9ucyByZXF1aXJlIGFsbG9jYXRpb25zIGZyb20gc3RvbGVuIHNwYWNlIGFuZCBuZWVkIHRo ZQ0KLSAqIHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSBpbiBxdWVzdGlvbi4NCi0gKi8N Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHUzMiBvZmZzZXQpDQorc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5f dG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikNCiB7DQogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7DQogCXN0cnVjdCBwY2lfZGV2 ICpwZGV2ID0gZGV2X3ByaXYtPmJyaWRnZV9kZXY7DQogCXUzMiBiYXNlOw0KIA0KLSNpZiAwDQog CS8qIE9uIHRoZSBtYWNoaW5lcyBJIGhhdmUgdGVzdGVkIHRoZSBHcmFwaGljcyBCYXNlIG9mIFN0 b2xlbiBNZW1vcnkNCi0JICogaXMgdW5yZWxpYWJsZSwgc28gY29tcHV0ZSB0aGUgYmFzZSBieSBz dWJ0cmFjdGluZyB0aGUgc3RvbGVuIG1lbW9yeQ0KLQkgKiBmcm9tIHRoZSBUb3Agb2YgTG93IFVz YWJsZSBEUkFNIHdoaWNoIGlzIHdoZXJlIHRoZSBCSU9TIHBsYWNlcw0KLQkgKiB0aGUgZ3JhcGhp Y3Mgc3RvbGVuIG1lbW9yeS4NCisJICogaXMgdW5yZWxpYWJsZSwgc28gb24gdGhvc2UgY29tcHV0 ZSB0aGUgYmFzZSBieSBzdWJ0cmFjdGluZyB0aGUNCisJICogc3RvbGVuIG1lbW9yeSBmcm9tIHRo ZSBUb3Agb2YgTG93IFVzYWJsZSBEUkFNIHdoaWNoIGlzIHdoZXJlIHRoZQ0KKwkgKiBCSU9TIHBs YWNlcyB0aGUgZ3JhcGhpY3Mgc3RvbGVuIG1lbW9yeS4NCisJICoNCisJICogT24gZ2VuMiwgdGhl IGxheW91dCBpcyBzbGlnaHRseSBkaWZmZXJlbnQgd2l0aCB0aGUgR3JhcGhpY3MgU2VnbWVudA0K KwkgKiBpbW1lZGlhdGVseSBmb2xsb3dpbmcgVG9wIG9mIE1lbW9yeSAob3IgVG9wIG9mIFVzYWJs ZSBEUkFNKS4gTm90ZQ0KKwkgKiBpdCBhcHBlYXJzIHRoYXQgVE9VRCBpcyBvbmx5IHJlcG9ydGVk IGJ5IDg2NWcsIHNvIHdlIGp1c3QgdXNlIHRoZQ0KKwkgKiB0b3Agb2YgbWVtb3J5IGFzIGRldGVy bWluZWQgYnkgdGhlIGU4MjAgcHJvYmUuDQorCSAqDQorCSAqIFhYWCBnZW4yIHJlcXVpcmVzIGFu IHVuYXZhaWxhYmxlIHN5bWJvbCBhbmQgOTQ1Z20gZmFpbHMgd2l0aA0KKwkgKiBpdHMgdmFsdWUg b2YgVE9MVUQuDQogCSAqLw0KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPiAzIHx8IElTX0cz MyhkZXYpKSB7DQotCQkvKiB0b3AgMzJiaXRzIGFyZSByZXNlcnZlZCA9IDAgKi8NCisJYmFzZSA9 IDA7DQorCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7DQorCQkvKiBSZWFkIEJhc2Ug RGF0YSBvZiBTdG9sZW4gTWVtb3J5IFJlZ2lzdGVyIChCRFNNKSBkaXJlY3RseS4NCisJCSAqIE5v dGUgdGhhdCB0aGVyZSBpcyBhbHNvIGEgTUNIQkFSIG1pcm9yIGF0IDB4MTA4MGMwIG9yDQorCQkg KiB3ZSBjb3VsZCB1c2UgZGV2aWNlIDI6MHg1YyBpbnN0ZWFkLg0KKwkJKi8NCisJCXBjaV9yZWFk X2NvbmZpZ19kd29yZChwZGV2LCAweEIwLCAmYmFzZSk7DQorCQliYXNlICY9IH40MDk1OyAvKiBs b3dlciBiaXRzIHVzZWQgZm9yIGxvY2tpbmcgcmVnaXN0ZXIgKi8NCisJfSBlbHNlIGlmIChJTlRF TF9JTkZPKGRldiktPmdlbiA+IDMgfHwgSVNfRzMzKGRldikpIHsNCisJCS8qIFJlYWQgR3JhcGhp Y3MgQmFzZSBvZiBTdG9sZW4gTWVtb3J5IGRpcmVjdGx5ICovDQogCQlwY2lfcmVhZF9jb25maWdf ZHdvcmQocGRldiwgMHhBNCwgJmJhc2UpOw0KLQl9IGVsc2Ugew0KLQkJLyogWFhYIHByZXN1bWUg OHh4IGlzIHRoZSBzYW1lIGFzIGk5MTUgKi8NCi0JCXBjaV9idXNfcmVhZF9jb25maWdfZHdvcmQo cGRldi0+YnVzLCAyLCAweDVDLCAmYmFzZSk7DQotCX0NCi0jZWxzZQ0KLQlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPiAzIHx8IElTX0czMyhkZXYpKSB7DQotCQl1MTYgdmFsOw0KLQkJcGNpX3Jl YWRfY29uZmlnX3dvcmQocGRldiwgMHhiMCwgJnZhbCk7DQotCQliYXNlID0gdmFsID4+IDQgPDwg MjA7DQotCX0gZWxzZSB7DQorI2lmIDANCisJfSBlbHNlIGlmIChJU19HRU4zKGRldikpIHsNCiAJ CXU4IHZhbDsNCisJCS8qIFN0b2xlbiBpcyBpbW1lZGlhdGVseSBiZWxvdyBUb3Agb2YgTG93IFVz YWJsZSBEUkFNICovDQogCQlwY2lfcmVhZF9jb25maWdfYnl0ZShwZGV2LCAweDljLCAmdmFsKTsN CiAJCWJhc2UgPSB2YWwgPj4gMyA8PCAyNzsNCi0JfQ0KLQliYXNlIC09IGRldl9wcml2LT5tbS5n dHQtPnN0b2xlbl9zaXplOw0KKwkJYmFzZSAtPSBkZXZfcHJpdi0+bW0uZ3R0LT5zdG9sZW5fc2l6 ZTsNCisJfSBlbHNlIHsNCisJCS8qIFN0b2xlbiBpcyBpbW1lZGlhdGVseSBhYm92ZSBUb3Agb2Yg TWVtb3J5ICovDQorCQliYXNlID0gbWF4X2xvd19wZm5fbWFwcGVkIDw8IFBBR0VfU0hJRlQ7DQog I2VuZGlmDQorCX0NCiANCi0JcmV0dXJuIGJhc2UgKyBvZmZzZXQ7DQorCXJldHVybiBiYXNlOw0K IH0NCiANCiBzdGF0aWMgdm9pZCBpOTE1X3dhcm5fc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpDQpAQCAtMTA4MSw3ICsxMDc1LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9zZXR1cF9jb21wcmVz c2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2l6ZSkNCiAJaWYgKCFjb21wcmVzc2Vk X2ZiKQ0KIAkJZ290byBlcnI7DQogDQotCWNmYl9iYXNlID0gaTkxNV9zdG9sZW5fdG9fcGh5cyhk ZXYsIGNvbXByZXNzZWRfZmItPnN0YXJ0KTsNCisJY2ZiX2Jhc2UgPSBkZXZfcHJpdi0+bW0uc3Rv bGVuX2Jhc2UgKyBjb21wcmVzc2VkX2ZiLT5zdGFydDsNCiAJaWYgKCFjZmJfYmFzZSkNCiAJCWdv dG8gZXJyX2ZiOw0KIA0KQEAgLTEwOTQsNyArMTA4OCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfc2V0 dXBfY29tcHJlc3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHNpemUpDQogCQlpZiAo IWNvbXByZXNzZWRfbGxiKQ0KIAkJCWdvdG8gZXJyX2ZiOw0KIA0KLQkJbGxfYmFzZSA9IGk5MTVf c3RvbGVuX3RvX3BoeXMoZGV2LCBjb21wcmVzc2VkX2xsYi0+c3RhcnQpOw0KKwkJbGxfYmFzZSA9 IGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSArIGNvbXByZXNzZWRfbGxiLT5zdGFydDsNCiAJCWlm ICghbGxfYmFzZSkNCiAJCQlnb3RvIGVycl9sbGI7DQogCX0NCkBAIC0xMTEzLDcgKzExMDcsNyBA QCBzdGF0aWMgdm9pZCBpOTE1X3NldHVwX2NvbXByZXNzaW9uKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBzaXplKQ0KIAl9DQogDQogCURSTV9ERUJVR19LTVMoIkZCQyBiYXNlIDB4JTA4bHgs IGxsIGJhc2UgMHglMDhseCwgc2l6ZSAlZE1cbiIsDQotCQkgICAgICBjZmJfYmFzZSwgbGxfYmFz ZSwgc2l6ZSA+PiAyMCk7DQorCQkgICAgICAobG9uZyljZmJfYmFzZSwgKGxvbmcpbGxfYmFzZSwg c2l6ZSA+PiAyMCk7DQogCXJldHVybjsNCiANCiBlcnJfbGxiOg0KQEAgLTExODcsNiArMTE4MSwx MyBAQCBzdGF0aWMgaW50IGk5MTVfbG9hZF9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQ0KIAlndHRfc2l6ZSA9IGRldl9wcml2LT5tbS5ndHQtPmd0dF90b3RhbF9lbnRyaWVzIDw8IFBB R0VfU0hJRlQ7DQogCW1hcHBhYmxlX3NpemUgPSBkZXZfcHJpdi0+bW0uZ3R0LT5ndHRfbWFwcGFi bGVfZW50cmllcyA8PCBQQUdFX1NISUZUOw0KIA0KKwlkZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2Ug PSBpOTE1X3N0b2xlbl90b19waHlzaWNhbChkZXYpOw0KKwlpZiAoZGV2X3ByaXYtPm1tLnN0b2xl bl9iYXNlID09IDApDQorCQlyZXR1cm4gMDsNCisNCisJRFJNX0RFQlVHX0tNUygiZm91bmQgJWQg Ynl0ZXMgb2Ygc3RvbGVuIG1lbW9yeSBhdCAlMDhseFxuIiwNCisJCSAgICAgIGRldl9wcml2LT5t bS5ndHQtPnN0b2xlbl9zaXplLCBkZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2UpOw0KKw0KIAkvKiBC YXNpYyBtZW1yYW5nZSBhbGxvY2F0b3IgZm9yIHN0b2xlbiBzcGFjZSAqLw0KIAlkcm1fbW1faW5p dCgmZGV2X3ByaXYtPm1tLnN0b2xlbiwgMCwgcHJlYWxsb2Nfc2l6ZSk7DQogDQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgNCmluZGV4IDE0NGQzN2MuLjIwY2QyOTUgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oDQpAQCAtNTgxLDYgKzU4MSw3IEBAIHR5cGVkZWYgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgew0KIAkJdW5zaWduZWQgbG9uZyBndHRfc3RhcnQ7DQogCQl1bnNpZ25lZCBsb25nIGd0dF9t YXBwYWJsZV9lbmQ7DQogCQl1bnNpZ25lZCBsb25nIGd0dF9lbmQ7DQorCQl1bnNpZ25lZCBsb25n IHN0b2xlbl9iYXNlOyAvKiBsaW1pdGVkIHRvIGxvdyBtZW1vcnkgKDMyLWJpdCkgKi8NCiANCiAJ CXN0cnVjdCBpb19tYXBwaW5nICpndHRfbWFwcGluZzsNCiAJCWludCBndHRfbXRycjsNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYw0KaW5kZXggYjAxODZiOC4uMjg2NWI0NCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMNCkBAIC0yNTIwLDYgKzI1MjAsMTEgQEAgaTkxNV9maW5kX2ZlbmNlX3JlZyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KIAlyZXR1cm4gYXZhaWw7DQogfQ0KIA0KK3N0YXRpYyB2 b2lkIGk5MTVfZ2VtX3dyaXRlX2ZlbmNlX19pcGkodm9pZCAqZGF0YSkNCit7DQorCXdiaW52ZCgp Ow0KK30NCisNCiAvKioNCiAgKiBpOTE1X2dlbV9vYmplY3RfZ2V0X2ZlbmNlIC0gc2V0IHVwIGEg ZmVuY2UgcmVnIGZvciBhbiBvYmplY3QNCiAgKiBAb2JqOiBvYmplY3QgdG8gbWFwIHRocm91Z2gg YSBmZW5jZSByZWcNCkBAIC0yNjQwLDYgKzI2NDUsMTcgQEAgdXBkYXRlOg0KIAlzd2l0Y2ggKElO VEVMX0lORk8oZGV2KS0+Z2VuKSB7DQogCWNhc2UgNzoNCiAJY2FzZSA2Og0KKwkJLyogSW4gb3Jk ZXIgdG8gZnVsbHkgc2VyaWFsaXplIGFjY2VzcyB0byB0aGUgZmVuY2VkIHJlZ2lvbiBhbmQNCisJ CSAqIHRoZSB1cGRhdGUgdG8gdGhlIGZlbmNlIHJlZ2lzdGVyIHdlIG5lZWQgdG8gdGFrZSBleHRy ZW1lDQorCQkgKiBtZWFzdXJlcyBvbiBTTkIrLiBJbiB0aGVvcnksIHRoZSB3cml0ZSB0byB0aGUg ZmVuY2UgcmVnaXN0ZXINCisJCSAqIGZsdXNoZXMgYWxsIG1lbW9yeSB0cmFuc2FjdGlvbnMgYmVm b3JlLCBhbmQgY291cGxlZCB3aXRoIHRoZQ0KKwkJICogbWIoKSBwbGFjZWQgYXJvdW5kIHRoZSBy ZWdpc3RlciB3cml0ZSB3ZSBzZXJpYWxpc2UgYWxsIG1lbW9yeQ0KKwkJICogb3BlcmF0aW9ucyB3 aXRoIHJlc3BlY3QgdG8gdGhlIGNoYW5nZXMgaW4gdGhlIHRpbGVyLiBZZXQsIG9uDQorCQkgKiBT TkIrIHdlIG5lZWQgdG8gdGFrZSBhIHN0ZXAgZnVydGhlciBhbmQgZW1pdCBhbiBleHBsaWNpdCB3 YmludmQoKQ0KKwkJICogb24gZWFjaCBwcm9jZXNzb3IgaW4gb3JkZXIgdG8gbWFudWFsbHkgZmx1 c2ggYWxsIG1lbW9yeQ0KKwkJICogdHJhbnNhY3Rpb25zIGJlZm9yZSB1cGRhdGluZyB0aGUgZmVu Y2UgcmVnaXN0ZXIuDQorCQkgKi8NCisJCW9uX2VhY2hfY3B1KGk5MTVfZ2VtX3dyaXRlX2ZlbmNl X19pcGksIE5VTEwsIDEpOw0KIAkJcmV0ID0gc2FuZHlicmlkZ2Vfd3JpdGVfZmVuY2VfcmVnKG9i aiwgcGlwZWxpbmVkKTsNCiAJCWJyZWFrOw0KIAljYXNlIDU6DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jDQppbmRleCA4OTdjYTA2Li5jZmJiODkzIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMNCkBAIC05MDkzLDYgKzkwOTMsOSBAQCB2b2lkIGludGVsX21vZGVz ZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KIAlkZWxfdGltZXJfc3luYygmZGV2 X3ByaXYtPmlkbGVfdGltZXIpOw0KIAljYW5jZWxfd29ya19zeW5jKCZkZXZfcHJpdi0+aWRsZV93 b3JrKTsNCiANCisJLyogZGVzdHJveSBiYWNrbGlnaHQsIGlmIGFueSwgYmVmb3JlIHRoZSBjb25u ZWN0b3JzICovDQorCWludGVsX3BhbmVsX2Rlc3Ryb3lfYmFja2xpZ2h0KGRldik7DQorDQogCWRy bV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRldik7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j DQppbmRleCBjOGVjYWFiLi5hMDdjY2FiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KQEAg LTIyNzQsMTEgKzIyNzQsNiBAQCBkb25lOg0KIHN0YXRpYyB2b2lkDQogaW50ZWxfZHBfZGVzdHJv eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQ0KIHsNCi0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Ow0KLQ0KLQlpZiAoaW50ZWxfZHBkX2lzX2VkcChkZXYp KQ0KLQkJaW50ZWxfcGFuZWxfZGVzdHJveV9iYWNrbGlnaHQoZGV2KTsNCi0NCiAJZHJtX3N5c2Zz X2Nvbm5lY3Rvcl9yZW1vdmUoY29ubmVjdG9yKTsNCiAJZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNv bm5lY3Rvcik7DQogCWtmcmVlKGNvbm5lY3Rvcik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYw0K aW5kZXggNmVkYTFiNS4uOGFjOTFiOCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2R2by5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYw0KQEAg LTM3MSw2ICszNzEsNyBAQCB2b2lkIGludGVsX2R2b19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpDQogCQljb25zdCBzdHJ1Y3QgaW50ZWxfZHZvX2RldmljZSAqZHZvID0gJmludGVsX2R2b19k ZXZpY2VzW2ldOw0KIAkJc3RydWN0IGkyY19hZGFwdGVyICppMmM7DQogCQlpbnQgZ3BpbzsNCisJ CWJvb2wgZHZvaW5pdDsNCiANCiAJCS8qIEFsbG93IHRoZSBJMkMgZHJpdmVyIGluZm8gdG8gc3Bl Y2lmeSB0aGUgR1BJTyB0byBiZSB1c2VkIGluDQogCQkgKiBzcGVjaWFsIGNhc2VzLCBidXQgb3Ro ZXJ3aXNlIGRlZmF1bHQgdG8gd2hhdCdzIGRlZmluZWQNCkBAIC0zOTAsNyArMzkxLDE3IEBAIHZv aWQgaW50ZWxfZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikNCiAJCWkyYyA9ICZkZXZf cHJpdi0+Z21idXNbZ3Bpb10uYWRhcHRlcjsNCiANCiAJCWludGVsX2R2by0+ZGV2ID0gKmR2bzsN Ci0JCWlmICghZHZvLT5kZXZfb3BzLT5pbml0KCZpbnRlbF9kdm8tPmRldiwgaTJjKSkNCisNCisJ CS8qIEdNQlVTIE5BSyBoYW5kbGluZyBzZWVtcyB0byBiZSB1bnN0YWJsZSwgaGVuY2UgbGV0IHRo ZQ0KKwkJICogdHJhbnNtaXR0ZXIgZGV0ZWN0aW9uIHJ1biBpbiBiaXQgYmFuZ2luZyBtb2RlIGZv ciBub3cuDQorCQkgKi8NCisJCWludGVsX2dtYnVzX2ZvcmNlX2JpdChpMmMsIHRydWUpOw0KKw0K KwkJZHZvaW5pdCA9IGR2by0+ZGV2X29wcy0+aW5pdCgmaW50ZWxfZHZvLT5kZXYsIGkyYyk7DQor DQorCQlpbnRlbF9nbWJ1c19mb3JjZV9iaXQoaTJjLCBmYWxzZSk7DQorDQorCQlpZiAoIWR2b2lu aXQpDQogCQkJY29udGludWU7DQogDQogCQlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VU UFVUX0RWTzsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMNCmluZGV4IDY2MDFkMjEuLjg3NmJh YzAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMNCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYw0KQEAgLTU1Myw4ICs1NTMsNiBAQCBz dGF0aWMgdm9pZCBpbnRlbF9sdmRzX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikNCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Ow0KIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOw0KIA0KLQlp bnRlbF9wYW5lbF9kZXN0cm95X2JhY2tsaWdodChkZXYpOw0KLQ0KIAlpZiAoZGV2X3ByaXYtPmxp ZF9ub3RpZmllci5ub3RpZmllcl9jYWxsKQ0KIAkJYWNwaV9saWRfbm90aWZpZXJfdW5yZWdpc3Rl cigmZGV2X3ByaXYtPmxpZF9ub3RpZmllcik7DQogCWRybV9zeXNmc19jb25uZWN0b3JfcmVtb3Zl KGNvbm5lY3Rvcik7DQpAQCAtNzg4LDYgKzc4NiwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRt aV9zeXN0ZW1faWQgaW50ZWxfbm9fbHZkc1tdID0gew0KIAkJCURNSV9NQVRDSChETUlfUFJPRFVD VF9OQU1FLCAiWDdTUEEtSCIpLA0KIAkJfSwNCiAJfSwNCisJew0KKwkJLmNhbGxiYWNrID0gaW50 ZWxfbm9fbHZkc19kbWlfY2FsbGJhY2ssDQorCQkuaWRlbnQgPSAiRnVqaXRzdSBFc3ByaW1vIFE5 MDAiLA0KKwkJLm1hdGNoZXMgPSB7DQorCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiRlVK SVRTVSIpLA0KKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiRVNQUklNTyBROTAwIiks DQorCQl9LA0KKwl9LA0KIA0KIAl7IH0JLyogdGVybWluYXRpbmcgZW50cnkgKi8NCiB9Ow0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jDQppbmRleCA3MmI4OTQ5Li4wNGNiMzRhIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYw0KKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYw0KQEAgLTM2MSw2ICszNjEsOSBAQCBpbnQgaW50ZWxf cGFuZWxfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpDQogDQogCWludGVs X3BhbmVsX2luaXRfYmFja2xpZ2h0KGRldik7DQogDQorCWlmIChXQVJOX09OKGRldl9wcml2LT5i YWNrbGlnaHQpKQ0KKwkJcmV0dXJuIC1FTk9ERVY7DQorDQogCWlmIChkZXZfcHJpdi0+aW50X2x2 ZHNfY29ubmVjdG9yKQ0KIAkJY29ubmVjdG9yID0gZGV2X3ByaXYtPmludF9sdmRzX2Nvbm5lY3Rv cjsNCiAJZWxzZSBpZiAoZGV2X3ByaXYtPmludF9lZHBfY29ubmVjdG9yKQ0KQEAgLTM4OCw4ICsz OTEsMTAgQEAgaW50IGludGVsX3BhbmVsX3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQ0KIHZvaWQgaW50ZWxfcGFuZWxfZGVzdHJveV9iYWNrbGlnaHQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikNCiB7DQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7DQotCWlmIChkZXZfcHJpdi0+YmFja2xpZ2h0KQ0KKwlpZiAoZGV2X3By aXYtPmJhY2tsaWdodCkgew0KIAkJYmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKGRldl9wcml2 LT5iYWNrbGlnaHQpOw0KKwkJZGV2X3ByaXYtPmJhY2tsaWdodCA9IE5VTEw7DQorCX0NCiB9DQog I2Vsc2UNCiBpbnQgaW50ZWxfcGFuZWxfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b20uYw0KaW5kZXggM2EwNWNkYi4uZDk2OWYzYyAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbS5jDQorKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2F0b20uYw0KQEAgLTEzODcsMTAgKzEzODcsMTAgQEAgaW50IGF0b21fYWxsb2Nh dGVfZmJfc2NyYXRjaChzdHJ1Y3QgYXRvbV9jb250ZXh0ICpjdHgpDQogCQlmaXJtd2FyZV91c2Fn ZSA9IChzdHJ1Y3QgX0FUT01fVlJBTV9VU0FHRV9CWV9GSVJNV0FSRSAqKShjdHgtPmJpb3MgKyBk YXRhX29mZnNldCk7DQogDQogCQlEUk1fREVCVUcoImF0b20gZmlybXdhcmUgcmVxdWVzdGVkICUw OHggJWRrYlxuIiwNCi0JCQkgIGZpcm13YXJlX3VzYWdlLT5hc0Zpcm13YXJlVnJhbVJlc2VydmVJ bmZvWzBdLnVsU3RhcnRBZGRyVXNlZEJ5RmlybXdhcmUsDQotCQkJICBmaXJtd2FyZV91c2FnZS0+ YXNGaXJtd2FyZVZyYW1SZXNlcnZlSW5mb1swXS51c0Zpcm13YXJlVXNlSW5LYik7DQorCQkJICBs ZTMyX3RvX2NwdShmaXJtd2FyZV91c2FnZS0+YXNGaXJtd2FyZVZyYW1SZXNlcnZlSW5mb1swXS51 bFN0YXJ0QWRkclVzZWRCeUZpcm13YXJlKSwNCisJCQkgIGxlMTZfdG9fY3B1KGZpcm13YXJlX3Vz YWdlLT5hc0Zpcm13YXJlVnJhbVJlc2VydmVJbmZvWzBdLnVzRmlybXdhcmVVc2VJbktiKSk7DQog DQotCQl1c2FnZV9ieXRlcyA9IGZpcm13YXJlX3VzYWdlLT5hc0Zpcm13YXJlVnJhbVJlc2VydmVJ bmZvWzBdLnVzRmlybXdhcmVVc2VJbktiICogMTAyNDsNCisJCXVzYWdlX2J5dGVzID0gbGUxNl90 b19jcHUoZmlybXdhcmVfdXNhZ2UtPmFzRmlybXdhcmVWcmFtUmVzZXJ2ZUluZm9bMF0udXNGaXJt d2FyZVVzZUluS2IpICogMTAyNDsNCiAJfQ0KIAljdHgtPnNjcmF0Y2hfc2l6ZV9ieXRlcyA9IDA7 DQogCWlmICh1c2FnZV9ieXRlcyA9PSAwKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vYXRvbWJpb3NfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19j cnRjLmMNCmluZGV4IGEyNWQwOGEuLjAzODU3MGEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9h dG9tYmlvc19jcnRjLmMNCkBAIC01NDQsNiArNTQ0LDkgQEAgc3RhdGljIHUzMiBhdG9tYmlvc19h ZGp1c3RfcGxsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCiAJCS8qIHVzZSBmcmFjIGZiIGRpdiBv biBBUFVzICovDQogCQlpZiAoQVNJQ19JU19EQ0U0MShyZGV2KSkNCiAJCQlwbGwtPmZsYWdzIHw9 IFJBREVPTl9QTExfVVNFX0ZSQUNfRkJfRElWOw0KKwkJLyogdXNlIGZyYWMgZmIgZGl2IG9uIFJT NzgwL1JTODgwICovDQorCQlpZiAoKHJkZXYtPmZhbWlseSA9PSBDSElQX1JTNzgwKSB8fCAocmRl di0+ZmFtaWx5ID09IENISVBfUlM4ODApKQ0KKwkJCXBsbC0+ZmxhZ3MgfD0gUkFERU9OX1BMTF9V U0VfRlJBQ19GQl9ESVY7DQogCQlpZiAoQVNJQ19JU19EQ0UzMihyZGV2KSAmJiBtb2RlLT5jbG9j ayA+IDE2NTAwMCkNCiAJCQlwbGwtPmZsYWdzIHw9IFJBREVPTl9QTExfVVNFX0ZSQUNfRkJfRElW Ow0KIAl9IGVsc2Ugew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdy ZWVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jDQppbmRleCA2MGQxM2Zl Li4wNDk1YTUwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4u Yw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYw0KQEAgLTQxMiw2ICs0 MTIsMTYgQEAgdm9pZCBldmVyZ3JlZW5faHBkX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYpDQogDQogCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZp Zy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgew0KIAkJc3RydWN0IHJhZGVvbl9jb25uZWN0b3IgKnJh ZGVvbl9jb25uZWN0b3IgPSB0b19yYWRlb25fY29ubmVjdG9yKGNvbm5lY3Rvcik7DQorDQorCQlp ZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQIHx8 DQorCQkgICAgY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1Jf TFZEUykgew0KKwkJCS8qIGRvbid0IHRyeSB0byBlbmFibGUgaHBkIG9uIGVEUCBvciBMVkRTIGF2 b2lkIGJyZWFraW5nIHRoZQ0KKwkJCSAqIGF1eCBkcCBjaGFubmVsIG9uIGltYWMgYW5kIGhlbHAg KGJ1dCBub3QgY29tcGxldGVseSBmaXgpDQorCQkJICogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQu Y29tL3Nob3dfYnVnLmNnaT9pZD03MjYxNDMNCisJCQkgKiBhbHNvIGF2b2lkIGludGVycnVwdCBz dG9ybXMgZHVyaW5nIGRwbXMuDQorCQkJICovDQorCQkJY29udGludWU7DQorCQl9DQogCQlzd2l0 Y2ggKHJhZGVvbl9jb25uZWN0b3ItPmhwZC5ocGQpIHsNCiAJCWNhc2UgUkFERU9OX0hQRF8xOg0K IAkJCVdSRUczMihEQ19IUEQxX0NPTlRST0wsIHRtcCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yNjAwX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9o ZG1pLmMNCmluZGV4IGM0NWQ5MjEuLjU3YTgyNWQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3I2MDBfaGRtaS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBf aGRtaS5jDQpAQCAtNTA2LDcgKzUwNiw3IEBAIHZvaWQgcjYwMF9oZG1pX2VuYWJsZShzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIpDQogCW9mZnNldCA9IHJhZGVvbl9lbmNvZGVyLT5oZG1pX29m ZnNldDsNCiAJaWYgKEFTSUNfSVNfRENFMzIocmRldikgJiYgIUFTSUNfSVNfRENFNChyZGV2KSkg ew0KIAkJV1JFRzMyX1AocmFkZW9uX2VuY29kZXItPmhkbWlfY29uZmlnX29mZnNldCArIDB4NCwg MHgxLCB+MHgxKTsNCi0JfSBlbHNlIGlmIChyZGV2LT5mYW1pbHkgPj0gQ0hJUF9SNjAwICYmICFB U0lDX0lTX0RDRTMocmRldikpIHsNCisJfSBlbHNlIGlmIChBU0lDX0lTX0RDRTIocmRldikgJiYg IUFTSUNfSVNfRENFMyhyZGV2KSkgew0KIAkJc3dpdGNoIChyYWRlb25fZW5jb2Rlci0+ZW5jb2Rl cl9pZCkgew0KIAkJY2FzZSBFTkNPREVSX09CSkVDVF9JRF9JTlRFUk5BTF9LTERTQ1BfVE1EUzE6 DQogCQkJV1JFRzMyX1AoQVZJVk9fVE1EU0FfQ05UTCwgMHg0LCB+MHg0KTsNCkBAIC01NzIsNyAr NTcyLDcgQEAgdm9pZCByNjAwX2hkbWlfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpDQogDQogCWlmIChBU0lDX0lTX0RDRTMyKHJkZXYpICYmICFBU0lDX0lTX0RDRTQocmRldikp IHsNCiAJCVdSRUczMl9QKHJhZGVvbl9lbmNvZGVyLT5oZG1pX2NvbmZpZ19vZmZzZXQgKyAweDQs IDAsIH4weDEpOw0KLQl9IGVsc2UgaWYgKHJkZXYtPmZhbWlseSA+PSBDSElQX1I2MDAgJiYgIUFT SUNfSVNfRENFMyhyZGV2KSkgew0KKwl9IGVsc2UgaWYgKEFTSUNfSVNfRENFMihyZGV2KSAmJiAh QVNJQ19JU19EQ0UzKHJkZXYpKSB7DQogCQlzd2l0Y2ggKHJhZGVvbl9lbmNvZGVyLT5lbmNvZGVy X2lkKSB7DQogCQljYXNlIEVOQ09ERVJfT0JKRUNUX0lEX0lOVEVSTkFMX0tMRFNDUF9UTURTMToN CiAJCQlXUkVHMzJfUChBVklWT19UTURTQV9DTlRMLCAwLCB+MHg0KTsNCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdG9tYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fYXRvbWJpb3MuYw0KaW5kZXggMzg1ODVjNS4uMzgzYjM4ZSAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F0b21iaW9zLmMNCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F0b21iaW9zLmMNCkBAIC0xOTg5LDYgKzE5ODks OCBAQCBzdGF0aWMgaW50IHJhZGVvbl9hdG9tYmlvc19wYXJzZV9wb3dlcl90YWJsZV8xXzMoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpDQogCW51bV9tb2RlcyA9IHBvd2VyX2luZm8tPmluZm8u dWNOdW1PZlBvd2VyTW9kZUVudHJpZXM7DQogCWlmIChudW1fbW9kZXMgPiBBVE9NX01BWF9OVU1C RVJPRl9QT1dFUl9CTE9DSykNCiAJCW51bV9tb2RlcyA9IEFUT01fTUFYX05VTUJFUk9GX1BPV0VS X0JMT0NLOw0KKwlpZiAobnVtX21vZGVzID09IDApDQorCQlyZXR1cm4gc3RhdGVfaW5kZXg7DQog CXJkZXYtPnBtLnBvd2VyX3N0YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVvbl9wb3dl cl9zdGF0ZSkgKiBudW1fbW9kZXMsIEdGUF9LRVJORUwpOw0KIAlpZiAoIXJkZXYtPnBtLnBvd2Vy X3N0YXRlKQ0KIAkJcmV0dXJuIHN0YXRlX2luZGV4Ow0KQEAgLTIzNjEsNiArMjM2Myw4IEBAIHN0 YXRpYyBpbnQgcmFkZW9uX2F0b21iaW9zX3BhcnNlX3Bvd2VyX3RhYmxlXzRfNShzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldikNCiAJcG93ZXJfaW5mbyA9ICh1bmlvbiBwb3dlcl9pbmZvICopKG1v ZGVfaW5mby0+YXRvbV9jb250ZXh0LT5iaW9zICsgZGF0YV9vZmZzZXQpOw0KIA0KIAlyYWRlb25f YXRvbWJpb3NfYWRkX3BwbGliX3RoZXJtYWxfY29udHJvbGxlcihyZGV2LCAmcG93ZXJfaW5mby0+ cHBsaWIuc1RoZXJtYWxDb250cm9sbGVyKTsNCisJaWYgKHBvd2VyX2luZm8tPnBwbGliLnVjTnVt U3RhdGVzID09IDApDQorCQlyZXR1cm4gc3RhdGVfaW5kZXg7DQogCXJkZXYtPnBtLnBvd2VyX3N0 YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVvbl9wb3dlcl9zdGF0ZSkgKg0KIAkJCQkg ICAgICAgcG93ZXJfaW5mby0+cHBsaWIudWNOdW1TdGF0ZXMsIEdGUF9LRVJORUwpOw0KIAlpZiAo IXJkZXYtPnBtLnBvd2VyX3N0YXRlKQ0KQEAgLTI0NDMsNiArMjQ0Nyw3IEBAIHN0YXRpYyBpbnQg cmFkZW9uX2F0b21iaW9zX3BhcnNlX3Bvd2VyX3RhYmxlXzYoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYpDQogCWludCBpbmRleCA9IEdldEluZGV4SW50b01hc3RlclRhYmxlKERBVEEsIFBvd2Vy UGxheUluZm8pOw0KICAgICAgICAgdTE2IGRhdGFfb2Zmc2V0Ow0KIAl1OCBmcmV2LCBjcmV2Ow0K Kwl1OCAqcG93ZXJfc3RhdGVfb2Zmc2V0Ow0KIA0KIAlpZiAoIWF0b21fcGFyc2VfZGF0YV9oZWFk ZXIobW9kZV9pbmZvLT5hdG9tX2NvbnRleHQsIGluZGV4LCBOVUxMLA0KIAkJCQkgICAmZnJldiwg JmNyZXYsICZkYXRhX29mZnNldCkpDQpAQCAtMjQ1OSwxNSArMjQ2NCwxNyBAQCBzdGF0aWMgaW50 IHJhZGVvbl9hdG9tYmlvc19wYXJzZV9wb3dlcl90YWJsZV82KHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KQ0KIAlub25fY2xvY2tfaW5mb19hcnJheSA9IChzdHJ1Y3QgTm9uQ2xvY2tJbmZvQXJy YXkgKikNCiAJCShtb2RlX2luZm8tPmF0b21fY29udGV4dC0+YmlvcyArIGRhdGFfb2Zmc2V0ICsN CiAJCSBsZTE2X3RvX2NwdShwb3dlcl9pbmZvLT5wcGxpYi51c05vbkNsb2NrSW5mb0FycmF5T2Zm c2V0KSk7DQorCWlmIChzdGF0ZV9hcnJheS0+dWNOdW1FbnRyaWVzID09IDApDQorCQlyZXR1cm4g c3RhdGVfaW5kZXg7DQogCXJkZXYtPnBtLnBvd2VyX3N0YXRlID0ga3phbGxvYyhzaXplb2Yoc3Ry dWN0IHJhZGVvbl9wb3dlcl9zdGF0ZSkgKg0KIAkJCQkgICAgICAgc3RhdGVfYXJyYXktPnVjTnVt RW50cmllcywgR0ZQX0tFUk5FTCk7DQogCWlmICghcmRldi0+cG0ucG93ZXJfc3RhdGUpDQogCQly ZXR1cm4gc3RhdGVfaW5kZXg7DQorCXBvd2VyX3N0YXRlX29mZnNldCA9ICh1OCAqKXN0YXRlX2Fy cmF5LT5zdGF0ZXM7DQogCWZvciAoaSA9IDA7IGkgPCBzdGF0ZV9hcnJheS0+dWNOdW1FbnRyaWVz OyBpKyspIHsNCiAJCW1vZGVfaW5kZXggPSAwOw0KLQkJcG93ZXJfc3RhdGUgPSAodW5pb24gcHBs aWJfcG93ZXJfc3RhdGUgKikmc3RhdGVfYXJyYXktPnN0YXRlc1tpXTsNCi0JCS8qIFhYWCB0aGlz IG1pZ2h0IGJlIGFuIGluYWd1YSBidWcuLi4gKi8NCi0JCW5vbl9jbG9ja19hcnJheV9pbmRleCA9 IGk7IC8qIHBvd2VyX3N0YXRlLT52Mi5ub25DbG9ja0luZm9JbmRleCAqLw0KKwkJcG93ZXJfc3Rh dGUgPSAodW5pb24gcHBsaWJfcG93ZXJfc3RhdGUgKilwb3dlcl9zdGF0ZV9vZmZzZXQ7DQorCQlu b25fY2xvY2tfYXJyYXlfaW5kZXggPSBwb3dlcl9zdGF0ZS0+djIubm9uQ2xvY2tJbmZvSW5kZXg7 DQogCQlub25fY2xvY2tfaW5mbyA9IChzdHJ1Y3QgX0FUT01fUFBMSUJfTk9OQ0xPQ0tfSU5GTyAq KQ0KIAkJCSZub25fY2xvY2tfaW5mb19hcnJheS0+bm9uQ2xvY2tJbmZvW25vbl9jbG9ja19hcnJh eV9pbmRleF07DQogCQlyZGV2LT5wbS5wb3dlcl9zdGF0ZVtpXS5jbG9ja19pbmZvID0ga3phbGxv YyhzaXplb2Yoc3RydWN0IHJhZGVvbl9wbV9jbG9ja19pbmZvKSAqDQpAQCAtMjQ3OSw5ICsyNDg2 LDYgQEAgc3RhdGljIGludCByYWRlb25fYXRvbWJpb3NfcGFyc2VfcG93ZXJfdGFibGVfNihzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldikNCiAJCWlmIChwb3dlcl9zdGF0ZS0+djIudWNOdW1EUE1M ZXZlbHMpIHsNCiAJCQlmb3IgKGogPSAwOyBqIDwgcG93ZXJfc3RhdGUtPnYyLnVjTnVtRFBNTGV2 ZWxzOyBqKyspIHsNCiAJCQkJY2xvY2tfYXJyYXlfaW5kZXggPSBwb3dlcl9zdGF0ZS0+djIuY2xv Y2tJbmZvSW5kZXhbal07DQotCQkJCS8qIFhYWCB0aGlzIG1pZ2h0IGJlIGFuIGluYWd1YSBidWcu Li4gKi8NCi0JCQkJaWYgKGNsb2NrX2FycmF5X2luZGV4ID49IGNsb2NrX2luZm9fYXJyYXktPnVj TnVtRW50cmllcykNCi0JCQkJCWNvbnRpbnVlOw0KIAkJCQljbG9ja19pbmZvID0gKHVuaW9uIHBw bGliX2Nsb2NrX2luZm8gKikNCiAJCQkJCSZjbG9ja19pbmZvX2FycmF5LT5jbG9ja0luZm9bY2xv Y2tfYXJyYXlfaW5kZXhdOw0KIAkJCQl2YWxpZCA9IHJhZGVvbl9hdG9tYmlvc19wYXJzZV9wcGxp Yl9jbG9ja19pbmZvKHJkZXYsDQpAQCAtMjUwMyw2ICsyNTA3LDcgQEAgc3RhdGljIGludCByYWRl b25fYXRvbWJpb3NfcGFyc2VfcG93ZXJfdGFibGVfNihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl dikNCiAJCQkJCQkJCSAgIG5vbl9jbG9ja19pbmZvKTsNCiAJCQlzdGF0ZV9pbmRleCsrOw0KIAkJ fQ0KKwkJcG93ZXJfc3RhdGVfb2Zmc2V0ICs9IDIgKyBwb3dlcl9zdGF0ZS0+djIudWNOdW1EUE1M ZXZlbHM7DQogCX0NCiAJLyogaWYgbXVsdGlwbGUgY2xvY2sgbW9kZXMsIG1hcmsgdGhlIGxvd2Vz dCBhcyBubyBkaXNwbGF5ICovDQogCWZvciAoaSA9IDA7IGkgPCBzdGF0ZV9pbmRleDsgaSsrKSB7 DQpAQCAtMjU0OSw3ICsyNTU0LDkgQEAgdm9pZCByYWRlb25fYXRvbWJpb3NfZ2V0X3Bvd2VyX21v ZGVzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQ0KIAkJZGVmYXVsdDoNCiAJCQlicmVhazsN CiAJCX0NCi0JfSBlbHNlIHsNCisJfQ0KKw0KKwlpZiAoc3RhdGVfaW5kZXggPT0gMCkgew0KIAkJ cmRldi0+cG0ucG93ZXJfc3RhdGUgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmFkZW9uX3Bvd2Vy X3N0YXRlKSwgR0ZQX0tFUk5FTCk7DQogCQlpZiAocmRldi0+cG0ucG93ZXJfc3RhdGUpIHsNCiAJ CQlyZGV2LT5wbS5wb3dlcl9zdGF0ZVswXS5jbG9ja19pbmZvID0NCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2ttcy5jDQppbmRleCBiZTJjMTIyLi40YmI5ZTI3IDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fa21zLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2ttcy5jDQpAQCAtMzksOCArMzksMTIgQEAgaW50IHJhZGVvbl9kcml2ZXJfdW5s b2FkX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KIA0KIAlpZiAocmRldiA9PSBOVUxMKQ0K IAkJcmV0dXJuIDA7DQorCWlmIChyZGV2LT5ybW1pbyA9PSBOVUxMKQ0KKwkJZ290byBkb25lX2Zy ZWU7DQogCXJhZGVvbl9tb2Rlc2V0X2ZpbmkocmRldik7DQogCXJhZGVvbl9kZXZpY2VfZmluaShy ZGV2KTsNCisNCitkb25lX2ZyZWU6DQogCWtmcmVlKHJkZXYpOw0KIAlkZXYtPmRldl9wcml2YXRl ID0gTlVMTDsNCiAJcmV0dXJuIDA7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3BtLmMNCmluZGV4 IGViZDZjNTEuLmQ1OGVjY2IgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9wbS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wbS5jDQpAQCAt ODYzLDcgKzg2MywxMSBAQCBzdGF0aWMgaW50IHJhZGVvbl9kZWJ1Z2ZzX3BtX2luZm8oc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQ0KIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9 IGRldi0+ZGV2X3ByaXZhdGU7DQogDQogCXNlcV9wcmludGYobSwgImRlZmF1bHQgZW5naW5lIGNs b2NrOiAldTAga0h6XG4iLCByZGV2LT5wbS5kZWZhdWx0X3NjbGspOw0KLQlzZXFfcHJpbnRmKG0s ICJjdXJyZW50IGVuZ2luZSBjbG9jazogJXUwIGtIelxuIiwgcmFkZW9uX2dldF9lbmdpbmVfY2xv Y2socmRldikpOw0KKwkvKiByYWRlb25fZ2V0X2VuZ2luZV9jbG9jayBpcyBub3QgcmVsaWFibGUg b24gQVBVcyBzbyBqdXN0IHByaW50IHRoZSBjdXJyZW50IGNsb2NrICovDQorCWlmICgocmRldi0+ ZmFtaWx5ID49IENISVBfUEFMTSkgJiYgKHJkZXYtPmZsYWdzICYgUkFERU9OX0lTX0lHUCkpDQor CQlzZXFfcHJpbnRmKG0sICJjdXJyZW50IGVuZ2luZSBjbG9jazogJXUwIGtIelxuIiwgcmRldi0+ cG0uY3VycmVudF9zY2xrKTsNCisJZWxzZQ0KKwkJc2VxX3ByaW50ZihtLCAiY3VycmVudCBlbmdp bmUgY2xvY2s6ICV1MCBrSHpcbiIsIHJhZGVvbl9nZXRfZW5naW5lX2Nsb2NrKHJkZXYpKTsNCiAJ c2VxX3ByaW50ZihtLCAiZGVmYXVsdCBtZW1vcnkgY2xvY2s6ICV1MCBrSHpcbiIsIHJkZXYtPnBt LmRlZmF1bHRfbWNsayk7DQogCWlmIChyZGV2LT5hc2ljLT5nZXRfbWVtb3J5X2Nsb2NrKQ0KIAkJ c2VxX3ByaW50ZihtLCAiY3VycmVudCBtZW1vcnkgY2xvY2s6ICV1MCBrSHpcbiIsIHJhZGVvbl9n ZXRfbWVtb3J5X2Nsb2NrKHJkZXYpKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMv aTJjLXhpaWMuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMteGlpYy5jDQppbmRleCA0YmI2OGYz Li42NGU3MDY1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy14aWljLmMNCisr KyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMteGlpYy5jDQpAQCAtMzExLDEwICszMTEsOCBAQCBz dGF0aWMgdm9pZCB4aWljX2ZpbGxfdHhfZmlmbyhzdHJ1Y3QgeGlpY19pMmMgKmkyYykNCiAJCQkv KiBsYXN0IG1lc3NhZ2UgaW4gdHJhbnNmZXIgLT4gU1RPUCAqLw0KIAkJCWRhdGEgfD0gWElJQ19U WF9EWU5fU1RPUF9NQVNLOw0KIAkJCWRldl9kYmcoaTJjLT5hZGFwLmRldi5wYXJlbnQsICIlcyBU WCBTVE9QXG4iLCBfX2Z1bmNfXyk7DQotDQotCQkJeGlpY19zZXRyZWcxNihpMmMsIFhJSUNfRFRS X1JFR19PRkZTRVQsIGRhdGEpOw0KLQkJfSBlbHNlDQotCQkJeGlpY19zZXRyZWc4KGkyYywgWElJ Q19EVFJfUkVHX09GRlNFVCwgZGF0YSk7DQorCQl9DQorCQl4aWljX3NldHJlZzE2KGkyYywgWElJ Q19EVFJfUkVHX09GRlNFVCwgZGF0YSk7DQogCX0NCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZC9tZC5jIGIvZHJpdmVycy9tZC9tZC5jDQppbmRleCAxNzAyMTMzLi4yZDA1NDRjIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9tZC9tZC5jDQorKysgYi9kcml2ZXJzL21kL21kLmMNCkBAIC0xNTg4 LDggKzE1ODgsOCBAQCBzdGF0aWMgaW50IHN1cGVyXzFfbG9hZChzdHJ1Y3QgbWRfcmRldiAqcmRl diwgc3RydWN0IG1kX3JkZXYgKnJlZmRldiwgaW50IG1pbm9yXw0KIAkJCQkJICAgICBzZWN0b3Is IGNvdW50LCAxKSA9PSAwKQ0KIAkJCQlyZXR1cm4gLUVJTlZBTDsNCiAJCX0NCi0JfSBlbHNlIGlm IChzYi0+YmJsb2dfb2Zmc2V0ID09IDApDQotCQlyZGV2LT5iYWRibG9ja3Muc2hpZnQgPSAtMTsN CisJfSBlbHNlIGlmIChzYi0+YmJsb2dfb2Zmc2V0ICE9IDApDQorCQlyZGV2LT5iYWRibG9ja3Mu c2hpZnQgPSAwOw0KIA0KIAlpZiAoIXJlZmRldikgew0KIAkJcmV0ID0gMTsNCkBAIC0zMDYzLDcg KzMwNjMsNyBAQCBpbnQgbWRfcmRldl9pbml0KHN0cnVjdCBtZF9yZGV2ICpyZGV2KQ0KIAkgKiBi ZSB1c2VkIC0gSSB3b25kZXIgaWYgdGhhdCBtYXR0ZXJzDQogCSAqLw0KIAlyZGV2LT5iYWRibG9j a3MuY291bnQgPSAwOw0KLQlyZGV2LT5iYWRibG9ja3Muc2hpZnQgPSAwOw0KKwlyZGV2LT5iYWRi bG9ja3Muc2hpZnQgPSAtMTsgLyogZGlzYWJsZWQgdW50aWwgZXhwbGljaXRseSBlbmFibGVkICov DQogCXJkZXYtPmJhZGJsb2Nrcy5wYWdlID0ga21hbGxvYyhQQUdFX1NJWkUsIEdGUF9LRVJORUwp Ow0KIAlzZXFsb2NrX2luaXQoJnJkZXYtPmJhZGJsb2Nrcy5sb2NrKTsNCiAJaWYgKHJkZXYtPmJh ZGJsb2Nrcy5wYWdlID09IE5VTEwpDQpAQCAtMzEzNSw5ICszMTM1LDYgQEAgc3RhdGljIHN0cnVj dCBtZF9yZGV2ICptZF9pbXBvcnRfZGV2aWNlKGRldl90IG5ld2RldiwgaW50IHN1cGVyX2Zvcm1h dCwgaW50IHN1cGUNCiAJCQlnb3RvIGFib3J0X2ZyZWU7DQogCQl9DQogCX0NCi0JaWYgKHN1cGVy X2Zvcm1hdCA9PSAtMSkNCi0JCS8qIGhvdC1hZGQgZm9yIDAuOTAsIG9yIG5vbi1wZXJzaXN0ZW50 OiBzbyBubyBiYWRibG9ja3MgKi8NCi0JCXJkZXYtPmJhZGJsb2Nrcy5zaGlmdCA9IC0xOw0KIA0K IAlyZXR1cm4gcmRldjsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf bWFpbi5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYw0KaW5kZXggZmMwN2Y5MC4u YjQzNmI4NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMNCisr KyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMNCkBAIC0xODY2LDYgKzE4NjYsNyBA QCBlcnJfZGV0YWNoOg0KIAl3cml0ZV91bmxvY2tfYmgoJmJvbmQtPmxvY2spOw0KIA0KIGVycl9j bG9zZToNCisJc2xhdmVfZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfQk9ORElORzsNCiAJZGV2X2Ns b3NlKHNsYXZlX2Rldik7DQogDQogZXJyX3Vuc2V0X21hc3RlcjoNCkBAIC00ODUzLDkgKzQ4NTQs MTggQEAgc3RhdGljIGludCBfX25ldF9pbml0IGJvbmRfbmV0X2luaXQoc3RydWN0IG5ldCAqbmV0 KQ0KIHN0YXRpYyB2b2lkIF9fbmV0X2V4aXQgYm9uZF9uZXRfZXhpdChzdHJ1Y3QgbmV0ICpuZXQp DQogew0KIAlzdHJ1Y3QgYm9uZF9uZXQgKmJuID0gbmV0X2dlbmVyaWMobmV0LCBib25kX25ldF9p ZCk7DQorCXN0cnVjdCBib25kaW5nICpib25kLCAqdG1wX2JvbmQ7DQorCUxJU1RfSEVBRChsaXN0 KTsNCiANCiAJYm9uZF9kZXN0cm95X3N5c2ZzKGJuKTsNCiAJYm9uZF9kZXN0cm95X3Byb2NfZGly KGJuKTsNCisNCisJLyogS2lsbCBvZmYgYW55IGJvbmRzIGNyZWF0ZWQgYWZ0ZXIgdW5yZWdpc3Rl cmluZyBib25kIHJ0bmwgb3BzICovDQorCXJ0bmxfbG9jaygpOw0KKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUoYm9uZCwgdG1wX2JvbmQsICZibi0+ZGV2X2xpc3QsIGJvbmRfbGlzdCkNCisJCXVu cmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKGJvbmQtPmRldiwgJmxpc3QpOw0KKwl1bnJlZ2lzdGVy X25ldGRldmljZV9tYW55KCZsaXN0KTsNCisJcnRubF91bmxvY2soKTsNCiB9DQogDQogc3RhdGlj IHN0cnVjdCBwZXJuZXRfb3BlcmF0aW9ucyBib25kX25ldF9vcHMgPSB7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hdGwxZS9hdGwxZS5oIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYXRoZXJvcy9hdGwxZS9hdGwxZS5oDQppbmRleCBlZGZkZjZiLi5iNWZkOTM0IDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hdGwxZS9hdGwxZS5oDQor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0bDFlL2F0bDFlLmgNCkBAIC0xODYs NyArMTg2LDcgQEAgc3RydWN0IGF0bDFlX3RwZF9kZXNjIHsNCiAvKiBob3cgYWJvdXQgMHgyMDAw ICovDQogI2RlZmluZSBNQVhfVFhfQlVGX0xFTiAgICAgIDB4MjAwMA0KICNkZWZpbmUgTUFYX1RY X0JVRl9TSElGVCAgICAxMw0KLS8qI2RlZmluZSBNQVhfVFhfQlVGX0xFTiAgMHgzMDAwICovDQor I2RlZmluZSBNQVhfVFNPX1NFR19TSVpFICAgIDB4M2MwMA0KIA0KIC8qIHJycyB3b3JkIDEgYml0 IDA6MzEgKi8NCiAjZGVmaW5lIFJSU19SWF9DU1VNX01BU0sJMHhGRkZGDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hdGwxZS9hdGwxZV9tYWluLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0bDFlL2F0bDFlX21haW4uYw0KaW5kZXggYzY5ZGMyOS4u ZGQ4OTNiMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYXRsMWUv YXRsMWVfbWFpbi5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0bDFlL2F0 bDFlX21haW4uYw0KQEAgLTIzNTIsNiArMjM1Miw3IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGF0 bDFlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KIA0KIAlJTklUX1dPUksoJmFkYXB0ZXIt PnJlc2V0X3Rhc2ssIGF0bDFlX3Jlc2V0X3Rhc2spOw0KIAlJTklUX1dPUksoJmFkYXB0ZXItPmxp bmtfY2hnX3Rhc2ssIGF0bDFlX2xpbmtfY2hnX3Rhc2spOw0KKwluZXRpZl9zZXRfZ3NvX21heF9z aXplKG5ldGRldiwgTUFYX1RTT19TRUdfU0laRSk7DQogCWVyciA9IHJlZ2lzdGVyX25ldGRldihu ZXRkZXYpOw0KIAlpZiAoZXJyKSB7DQogCQluZXRkZXZfZXJyKG5ldGRldiwgInJlZ2lzdGVyIG5l dGRldmljZSBmYWlsZWRcbiIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Zy ZWVzY2FsZS9naWFuZmFyX3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dp YW5mYXJfcHRwLmMNCmluZGV4IGY2N2I4YWUuLjY5YzNhZGYgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhcl9wdHAuYw0KKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXJfcHRwLmMNCkBAIC0xMjcsNyArMTI3LDYgQEAgc3Ry dWN0IGdpYW5mYXJfcHRwX3JlZ2lzdGVycyB7DQogDQogI2RlZmluZSBEUklWRVIJCSJnaWFuZmFy X3B0cCINCiAjZGVmaW5lIERFRkFVTFRfQ0tTRUwJMQ0KLSNkZWZpbmUgTl9BTEFSTQkJMSAvKiBm aXJzdCBhbGFybSBpcyB1c2VkIGludGVybmFsbHkgdG8gcmVzZXQgZmlwZXJzICovDQogI2RlZmlu ZSBOX0VYVF9UUwkyDQogI2RlZmluZSBSRUdfU0laRQlzaXplb2Yoc3RydWN0IGdpYW5mYXJfcHRw X3JlZ2lzdGVycykNCiANCkBAIC00MTAsNyArNDA5LDcgQEAgc3RhdGljIHN0cnVjdCBwdHBfY2xv Y2tfaW5mbyBwdHBfZ2lhbmZhcl9jYXBzID0gew0KIAkub3duZXIJCT0gVEhJU19NT0RVTEUsDQog CS5uYW1lCQk9ICJnaWFuZmFyIGNsb2NrIiwNCiAJLm1heF9hZGoJPSA1MTIwMDAsDQotCS5uX2Fs YXJtCT0gTl9BTEFSTSwNCisJLm5fYWxhcm0JPSAwLA0KIAkubl9leHRfdHMJPSBOX0VYVF9UUywN CiAJLm5fcGVyX291dAk9IDAsDQogCS5wcHMJCT0gMSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMNCmluZGV4IDQxMzk2ZmEuLmQ5M2VlZTEgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMNCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYw0KQEAgLTE5 MzcsNiArMTkzNywxNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXhnYmVfbXNpeF9vdGhlcihpbnQg aXJxLCB2b2lkICpkYXRhKQ0KIAkgKiB3aXRoIHRoZSB3cml0ZSB0byBFSUNSLg0KIAkgKi8NCiAJ ZWljciA9IElYR0JFX1JFQURfUkVHKGh3LCBJWEdCRV9FSUNTKTsNCisNCisJLyogVGhlIGxvd2Vy IDE2Yml0cyBvZiB0aGUgRUlDUiByZWdpc3RlciBhcmUgZm9yIHRoZSBxdWV1ZSBpbnRlcnJ1cHRz DQorCSAqIHdoaWNoIHNob3VsZCBiZSBtYXNrZWQgaGVyZSBpbiBvcmRlciB0byBub3QgYWNjaWRl bnRseSBjbGVhciB0aGVtIGlmDQorCSAqIHRoZSBiaXRzIGFyZSBoaWdoIHdoZW4gaXhnYmVfbXNp eF9vdGhlciBpcyBjYWxsZWQuIFRoZXJlIGlzIGEgcmFjZQ0KKwkgKiBjb25kaXRpb24gb3RoZXJ3 aXNlIHdoaWNoIHJlc3VsdHMgaW4gcG9zc2libGUgcGVyZm9ybWFuY2UgbG9zcw0KKwkgKiBlc3Bl Y2lhbGx5IGlmIHRoZSBpeGdiZV9tc2l4X290aGVyIGludGVycnVwdCBpcyB0cmlnZ2VyaW5nDQor CSAqIGNvbnNpc3RlbnRseSAoYXMgaXQgd291bGQgd2hlbiBQUFMgaXMgdHVybmVkIG9uIGZvciB0 aGUgWDU0MCBkZXZpY2UpDQorCSAqLw0KKwllaWNyICY9IDB4RkZGRjAwMDA7DQorDQogCUlYR0JF X1dSSVRFX1JFRyhodywgSVhHQkVfRUlDUiwgZWljcik7DQogDQogCWlmIChlaWNyICYgSVhHQkVf RUlDUl9MU0MpDQpAQCAtNTQwOCw3ICs1NDE4LDkgQEAgc3RhdGljIGludCBpeGdiZV9yZXN1bWUo c3RydWN0IHBjaV9kZXYgKnBkZXYpDQogDQogCXBjaV93YWtlX2Zyb21fZDMocGRldiwgZmFsc2Up Ow0KIA0KKwlydG5sX2xvY2soKTsNCiAJZXJyID0gaXhnYmVfaW5pdF9pbnRlcnJ1cHRfc2NoZW1l KGFkYXB0ZXIpOw0KKwlydG5sX3VubG9jaygpOw0KIAlpZiAoZXJyKSB7DQogCQllX2Rldl9lcnIo IkNhbm5vdCBpbml0aWFsaXplIGludGVycnVwdHMgZm9yIGRldmljZVxuIik7DQogCQlyZXR1cm4g ZXJyOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYw0KaW5kZXggZDgxMjc5MC4uZjY5 ODE4MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYw0K KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jDQpAQCAtMTYyOSw4ICsx NjI5LDYgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9yeF92bGFuX3RhZyhzdHJ1Y3QgUnhEZXNjICpk ZXNjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIA0KIAlpZiAob3B0czIgJiBSeFZsYW5UYWcpDQog CQlfX3ZsYW5faHdhY2NlbF9wdXRfdGFnKHNrYiwgc3dhYjE2KG9wdHMyICYgMHhmZmZmKSk7DQot DQotCWRlc2MtPm9wdHMyID0gMDsNCiB9DQogDQogc3RhdGljIGludCBydGw4MTY5X2dzZXRfdGJp KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX2NtZCAqY21kKQ0KQEAgLTU1 NjYsNiArNTU2NCwxNCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgcnRsODE2OV9zdGFydF94bWl0KHN0 cnVjdCBza19idWZmICpza2IsDQogCQlnb3RvIGVycl9zdG9wXzA7DQogCX0NCiANCisJLyogODE2 OGV2bCBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IHBhZCB0byBtaW5pbXVtIGxlbmd0aC4gKi8NCisJ aWYgKHVubGlrZWx5KHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzM0ICYmDQor CQkgICAgIHNrYi0+bGVuIDwgRVRIX1pMRU4pKSB7DQorCQlpZiAoc2tiX3BhZHRvKHNrYiwgRVRI X1pMRU4pKQ0KKwkJCWdvdG8gZXJyX3VwZGF0ZV9zdGF0czsNCisJCXNrYl9wdXQoc2tiLCBFVEhf WkxFTiAtIHNrYi0+bGVuKTsNCisJfQ0KKw0KIAlpZiAodW5saWtlbHkobGUzMl90b19jcHUodHhk LT5vcHRzMSkgJiBEZXNjT3duKSkNCiAJCWdvdG8gZXJyX3N0b3BfMDsNCiANCkBAIC01NjMzLDYg KzU2MzksNyBAQCBlcnJfZG1hXzE6DQogCXJ0bDgxNjlfdW5tYXBfdHhfc2tiKGQsIHRwLT50eF9z a2IgKyBlbnRyeSwgdHhkKTsNCiBlcnJfZG1hXzA6DQogCWRldl9rZnJlZV9za2Ioc2tiKTsNCitl cnJfdXBkYXRlX3N0YXRzOg0KIAlkZXYtPnN0YXRzLnR4X2Ryb3BwZWQrKzsNCiAJcmV0dXJuIE5F VERFVl9UWF9PSzsNCiANCkBAIC01ODE0LDcgKzU4MjEsNiBAQCBzdGF0aWMgaW50IHJ0bDgxNjlf cnhfaW50ZXJydXB0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsDQogCQkJCXJ0bDgxNjlfc2NoZWR1 bGVfd29yayhkZXYsIHJ0bDgxNjlfcmVzZXRfdGFzayk7DQogCQkJCWRldi0+c3RhdHMucnhfZmlm b19lcnJvcnMrKzsNCiAJCQl9DQotCQkJcnRsODE2OV9tYXJrX3RvX2FzaWMoZGVzYywgcnhfYnVm X3N6KTsNCiAJCX0gZWxzZSB7DQogCQkJc3RydWN0IHNrX2J1ZmYgKnNrYjsNCiAJCQlkbWFfYWRk cl90IGFkZHIgPSBsZTY0X3RvX2NwdShkZXNjLT5hZGRyKTsNCkBAIC01ODI4LDE2ICs1ODM0LDE0 IEBAIHN0YXRpYyBpbnQgcnRsODE2OV9yeF9pbnRlcnJ1cHQoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwNCiAJCQlpZiAodW5saWtlbHkocnRsODE2OV9mcmFnbWVudGVkX2ZyYW1lKHN0YXR1cykpKSB7 DQogCQkJCWRldi0+c3RhdHMucnhfZHJvcHBlZCsrOw0KIAkJCQlkZXYtPnN0YXRzLnJ4X2xlbmd0 aF9lcnJvcnMrKzsNCi0JCQkJcnRsODE2OV9tYXJrX3RvX2FzaWMoZGVzYywgcnhfYnVmX3N6KTsN Ci0JCQkJY29udGludWU7DQorCQkJCWdvdG8gcmVsZWFzZV9kZXNjcmlwdG9yOw0KIAkJCX0NCiAN CiAJCQlza2IgPSBydGw4MTY5X3RyeV9yeF9jb3B5KHRwLT5SeF9kYXRhYnVmZltlbnRyeV0sDQog CQkJCQkJICB0cCwgcGt0X3NpemUsIGFkZHIpOw0KLQkJCXJ0bDgxNjlfbWFya190b19hc2ljKGRl c2MsIHJ4X2J1Zl9zeik7DQogCQkJaWYgKCFza2IpIHsNCiAJCQkJZGV2LT5zdGF0cy5yeF9kcm9w cGVkKys7DQotCQkJCWNvbnRpbnVlOw0KKwkJCQlnb3RvIHJlbGVhc2VfZGVzY3JpcHRvcjsNCiAJ CQl9DQogDQogCQkJcnRsODE2OV9yeF9jc3VtKHNrYiwgc3RhdHVzKTsNCkBAIC01ODUxLDYgKzU4 NTUsMTAgQEAgc3RhdGljIGludCBydGw4MTY5X3J4X2ludGVycnVwdChzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LA0KIAkJCWRldi0+c3RhdHMucnhfYnl0ZXMgKz0gcGt0X3NpemU7DQogCQkJZGV2LT5z dGF0cy5yeF9wYWNrZXRzKys7DQogCQl9DQorcmVsZWFzZV9kZXNjcmlwdG9yOg0KKwkJZGVzYy0+ b3B0czIgPSAwOw0KKwkJd21iKCk7DQorCQlydGw4MTY5X21hcmtfdG9fYXNpYyhkZXNjLCByeF9i dWZfc3opOw0KIAl9DQogDQogCWNvdW50ID0gY3VyX3J4IC0gdHAtPmN1cl9yeDsNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1hZ24tc3RhLmMgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1hZ24tc3RhLmMNCmluZGV4IGNjZjE1MjQuLjM5MzU5 OTQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1hZ24tc3Rh LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLWFnbi1zdGEuYw0KQEAg LTU2Myw2ICs1NjMsNyBAQCB2b2lkIGl3bF9jbGVhcl91Y29kZV9zdGF0aW9ucyhzdHJ1Y3QgaXds X3ByaXYgKnByaXYsDQogdm9pZCBpd2xfcmVzdG9yZV9zdGF0aW9ucyhzdHJ1Y3QgaXdsX3ByaXYg KnByaXYsIHN0cnVjdCBpd2xfcnhvbl9jb250ZXh0ICpjdHgpDQogew0KIAlzdHJ1Y3QgaXdsX2Fk ZHN0YV9jbWQgc3RhX2NtZDsNCisJc3RhdGljIGNvbnN0IHN0cnVjdCBpd2xfbGlua19xdWFsaXR5 X2NtZCB6ZXJvX2xxID0ge307DQogCXN0cnVjdCBpd2xfbGlua19xdWFsaXR5X2NtZCBscTsNCiAJ dW5zaWduZWQgbG9uZyBmbGFnc19zcGluOw0KIAlpbnQgaTsNCkBAIC02MDIsNyArNjAzLDkgQEAg dm9pZCBpd2xfcmVzdG9yZV9zdGF0aW9ucyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBp d2xfcnhvbl9jb250ZXh0ICpjdHgpDQogCQkJCWVsc2UNCiAJCQkJCW1lbWNweSgmbHEsIHByaXYt PnN0YXRpb25zW2ldLmxxLA0KIAkJCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgaXdsX2xpbmtfcXVh bGl0eV9jbWQpKTsNCi0JCQkJc2VuZF9scSA9IHRydWU7DQorDQorCQkJCWlmICghbWVtY21wKCZs cSwgJnplcm9fbHEsIHNpemVvZihscSkpKQ0KKwkJCQkJc2VuZF9scSA9IHRydWU7DQogCQkJfQ0K IAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPnNocmQtPnN0YV9sb2NrLA0KIAkJCQkJ ICAgICAgIGZsYWdzX3NwaW4pOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213 aWZpZXgvcGNpZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9wY2llLmMNCmluZGV4 IDNjZjRlY2MuLjYyMWI4NGYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lm aWV4L3BjaWUuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9wY2llLmMNCkBA IC0xODIxLDkgKzE4MjEsOSBAQCBzdGF0aWMgdm9pZCBtd2lmaWV4X3BjaWVfY2xlYW51cChzdHJ1 Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyKQ0KIAlpZiAocGRldikgew0KIAkJcGNpX2lvdW5t YXAocGRldiwgY2FyZC0+cGNpX21tYXApOw0KIAkJcGNpX2lvdW5tYXAocGRldiwgY2FyZC0+cGNp X21tYXAxKTsNCi0NCi0JCXBjaV9yZWxlYXNlX3JlZ2lvbnMocGRldik7DQogCQlwY2lfZGlzYWJs ZV9kZXZpY2UocGRldik7DQorCQlwY2lfcmVsZWFzZV9yZWdpb24ocGRldiwgMik7DQorCQlwY2lf cmVsZWFzZV9yZWdpb24ocGRldiwgMCk7DQogCQlwY2lfc2V0X2RydmRhdGEocGRldiwgTlVMTCk7 DQogCX0NCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLmMgYi9kcml2ZXJzL3BjaS9w Y2kuYw0KaW5kZXggNmQ0YTUzMS4uMzYzYTVjNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGNpL3Bj aS5jDQorKysgYi9kcml2ZXJzL3BjaS9wY2kuYw0KQEAgLTY2NCwxNSArNjY0LDExIEBAIHN0YXRp YyBpbnQgcGNpX3BsYXRmb3JtX3Bvd2VyX3RyYW5zaXRpb24oc3RydWN0IHBjaV9kZXYgKmRldiwg cGNpX3Bvd2VyX3Qgc3RhdGUpDQogCQllcnJvciA9IHBsYXRmb3JtX3BjaV9zZXRfcG93ZXJfc3Rh dGUoZGV2LCBzdGF0ZSk7DQogCQlpZiAoIWVycm9yKQ0KIAkJCXBjaV91cGRhdGVfY3VycmVudF9z dGF0ZShkZXYsIHN0YXRlKTsNCi0JCS8qIEZhbGwgYmFjayB0byBQQ0lfRDAgaWYgbmF0aXZlIFBN IGlzIG5vdCBzdXBwb3J0ZWQgKi8NCi0JCWlmICghZGV2LT5wbV9jYXApDQotCQkJZGV2LT5jdXJy ZW50X3N0YXRlID0gUENJX0QwOw0KLQl9IGVsc2Ugew0KKwl9IGVsc2UNCiAJCWVycm9yID0gLUVO T0RFVjsNCi0JCS8qIEZhbGwgYmFjayB0byBQQ0lfRDAgaWYgbmF0aXZlIFBNIGlzIG5vdCBzdXBw b3J0ZWQgKi8NCi0JCWlmICghZGV2LT5wbV9jYXApDQotCQkJZGV2LT5jdXJyZW50X3N0YXRlID0g UENJX0QwOw0KLQl9DQorDQorCWlmIChlcnJvciAmJiAhZGV2LT5wbV9jYXApIC8qIEZhbGwgYmFj ayB0byBQQ0lfRDAgKi8NCisJCWRldi0+Y3VycmVudF9zdGF0ZSA9IFBDSV9EMDsNCiANCiAJcmV0 dXJuIGVycm9yOw0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtY21vcy5jIGIvZHJp dmVycy9ydGMvcnRjLWNtb3MuYw0KaW5kZXggMDViZWI2Yy4uZTNlZWQxOCAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvcnRjL3J0Yy1jbW9zLmMNCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1jbW9zLmMNCkBA IC04MDUsOSArODA1LDggQEAgc3RhdGljIGludCBjbW9zX3N1c3BlbmQoc3RydWN0IGRldmljZSAq ZGV2KQ0KIAkJCW1hc2sgPSBSVENfSVJRTUFTSzsNCiAJCXRtcCAmPSB+bWFzazsNCiAJCUNNT1Nf V1JJVEUodG1wLCBSVENfQ09OVFJPTCk7DQorCQlocGV0X21hc2tfcnRjX2lycV9iaXQobWFzayk7 DQogDQotCQkvKiBzaHV0IGRvd24gaHBldCBlbXVsYXRpb24gLSB3ZSBkb24ndCBuZWVkIGl0IGZv ciBhbGFybSAqLw0KLQkJaHBldF9tYXNrX3J0Y19pcnFfYml0KFJUQ19QSUV8UlRDX0FJRXxSVENf VUlFKTsNCiAJCWNtb3NfY2hlY2tpbnRyKGNtb3MsIHRtcCk7DQogCX0NCiAJc3Bpbl91bmxvY2tf aXJxKCZydGNfbG9jayk7DQpAQCAtODcyLDYgKzg3MSw3IEBAIHN0YXRpYyBpbnQgY21vc19yZXN1 bWUoc3RydWN0IGRldmljZSAqZGV2KQ0KIAkJCXJ0Y191cGRhdGVfaXJxKGNtb3MtPnJ0YywgMSwg bWFzayk7DQogCQkJdG1wICY9IH5SVENfQUlFOw0KIAkJCWhwZXRfbWFza19ydGNfaXJxX2JpdChS VENfQUlFKTsNCisJCQlocGV0X3J0Y190aW1lcl9pbml0KCk7DQogCQl9IHdoaWxlIChtYXNrICYg UlRDX0FJRSk7DQogCQlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsNCiAJfQ0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY21kLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xw X2NtZC5jDQppbmRleCAwYjU0YTkxLi5hNTZhMTVlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zMzkw L2NoYXIvc2NscF9jbWQuYw0KKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jbWQuYw0KQEAg LTUwOSw2ICs1MDksOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgc2NscF9hZGRfc3RhbmRieV9tZW1v cnkodm9pZCkNCiAJYWRkX21lbW9yeV9tZXJnZWQoMCk7DQogfQ0KIA0KKyNkZWZpbmUgTUVNX1ND VF9TSVpFICgxVUwgPDwgU0VDVElPTl9TSVpFX0JJVFMpDQorDQogc3RhdGljIHZvaWQgX19pbml0 IGluc2VydF9pbmNyZW1lbnQodTE2IHJuLCBpbnQgc3RhbmRieSwgaW50IGFzc2lnbmVkKQ0KIHsN CiAJc3RydWN0IG1lbW9yeV9pbmNyZW1lbnQgKmluY3IsICpuZXdfaW5jcjsNCkBAIC01MjEsNyAr NTIzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGluc2VydF9pbmNyZW1lbnQodTE2IHJuLCBpbnQg c3RhbmRieSwgaW50IGFzc2lnbmVkKQ0KIAluZXdfaW5jci0+cm4gPSBybjsNCiAJbmV3X2luY3It PnN0YW5kYnkgPSBzdGFuZGJ5Ow0KIAlpZiAoIXN0YW5kYnkpDQotCQluZXdfaW5jci0+dXNlY291 bnQgPSAxOw0KKwkJbmV3X2luY3ItPnVzZWNvdW50ID0gcnptID4gTUVNX1NDVF9TSVpFID8gcnpt L01FTV9TQ1RfU0laRSA6IDE7DQogCWxhc3Rfcm4gPSAwOw0KIAlwcmV2ID0gJnNjbHBfbWVtX2xp c3Q7DQogCWxpc3RfZm9yX2VhY2hfZW50cnkoaW5jciwgJnNjbHBfbWVtX2xpc3QsIGxpc3QpIHsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9wdHkuYyBiL2RyaXZlcnMvdHR5L3B0eS5jDQppbmRl eCBkMTliODc5Li40NzM1OTI4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy90dHkvcHR5LmMNCisrKyBi L2RyaXZlcnMvdHR5L3B0eS5jDQpAQCAtNjY5LDYgKzY2OSw5IEBAIHN0YXRpYyBpbnQgcHRteF9v cGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQ0KIA0KIAlub25zZWVr YWJsZV9vcGVuKGlub2RlLCBmaWxwKTsNCiANCisJLyogV2UgcmVmdXNlIGZzbm90aWZ5IGV2ZW50 cyBvbiBwdG14LCBzaW5jZSBpdCdzIGEgc2hhcmVkIHJlc291cmNlICovDQorCWZpbHAtPmZfbW9k ZSB8PSBGTU9ERV9OT05PVElGWTsNCisNCiAJcmV0dmFsID0gdHR5X2FsbG9jX2ZpbGUoZmlscCk7 DQogCWlmIChyZXR2YWwpDQogCQlyZXR1cm4gcmV0dmFsOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dHR5L3NlcmlhbC9zZXJpYWxfY29yZS5jIGIvZHJpdmVycy90dHkvc2VyaWFsL3NlcmlhbF9jb3Jl LmMNCmluZGV4IGFmNWZmYjkuLjQ4ODIxNGEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3R0eS9zZXJp YWwvc2VyaWFsX2NvcmUuYw0KKysrIGIvZHJpdmVycy90dHkvc2VyaWFsL3NlcmlhbF9jb3JlLmMN CkBAIC0xOTAxLDYgKzE5MDEsOCBAQCBpbnQgdWFydF9zdXNwZW5kX3BvcnQoc3RydWN0IHVhcnRf ZHJpdmVyICpkcnYsIHN0cnVjdCB1YXJ0X3BvcnQgKnVwb3J0KQ0KIAkJbXV0ZXhfdW5sb2NrKCZw b3J0LT5tdXRleCk7DQogCQlyZXR1cm4gMDsNCiAJfQ0KKwlwdXRfZGV2aWNlKHR0eV9kZXYpOw0K Kw0KIAlpZiAoY29uc29sZV9zdXNwZW5kX2VuYWJsZWQgfHwgIXVhcnRfY29uc29sZSh1cG9ydCkp DQogCQl1cG9ydC0+c3VzcGVuZGVkID0gMTsNCiANCkBAIC0xOTY2LDkgKzE5NjgsMTEgQEAgaW50 IHVhcnRfcmVzdW1lX3BvcnQoc3RydWN0IHVhcnRfZHJpdmVyICpkcnYsIHN0cnVjdCB1YXJ0X3Bv cnQgKnVwb3J0KQ0KIAkJCWRpc2FibGVfaXJxX3dha2UodXBvcnQtPmlycSk7DQogCQkJdXBvcnQt PmlycV93YWtlID0gMDsNCiAJCX0NCisJCXB1dF9kZXZpY2UodHR5X2Rldik7DQogCQltdXRleF91 bmxvY2soJnBvcnQtPm11dGV4KTsNCiAJCXJldHVybiAwOw0KIAl9DQorCXB1dF9kZXZpY2UodHR5 X2Rldik7DQogCXVwb3J0LT5zdXNwZW5kZWQgPSAwOw0KIA0KIAkvKg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdHR5L3R0eV9pby5jIGIvZHJpdmVycy90dHkvdHR5X2lvLmMNCmluZGV4IDA1MDg1YmUu LjNmMzVlNDIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3R0eS90dHlfaW8uYw0KKysrIGIvZHJpdmVy cy90dHkvdHR5X2lvLmMNCkBAIC05NDAsNiArOTQwLDE0IEBAIHZvaWQgc3RhcnRfdHR5KHN0cnVj dCB0dHlfc3RydWN0ICp0dHkpDQogDQogRVhQT1JUX1NZTUJPTChzdGFydF90dHkpOw0KIA0KKy8q IFdlIGxpbWl0IHR0eSB0aW1lIHVwZGF0ZSB2aXNpYmlsaXR5IHRvIGV2ZXJ5IDggc2Vjb25kcyBv ciBzby4gKi8NCitzdGF0aWMgdm9pZCB0dHlfdXBkYXRlX3RpbWUoc3RydWN0IHRpbWVzcGVjICp0 aW1lKQ0KK3sNCisJdW5zaWduZWQgbG9uZyBzZWMgPSBnZXRfc2Vjb25kcygpICYgfjc7DQorCWlm ICgobG9uZykoc2VjIC0gdGltZS0+dHZfc2VjKSA+IDApDQorCQl0aW1lLT50dl9zZWMgPSBzZWM7 DQorfQ0KKw0KIC8qKg0KICAqCXR0eV9yZWFkCS0JcmVhZCBtZXRob2QgZm9yIHR0eSBkZXZpY2Ug ZmlsZXMNCiAgKglAZmlsZTogcG9pbnRlciB0byB0dHkgZmlsZQ0KQEAgLTk3Niw4ICs5ODQsMTAg QEAgc3RhdGljIHNzaXplX3QgdHR5X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2Vy ICpidWYsIHNpemVfdCBjb3VudCwNCiAJZWxzZQ0KIAkJaSA9IC1FSU87DQogCXR0eV9sZGlzY19k ZXJlZihsZCk7DQorDQogCWlmIChpID4gMCkNCi0JCWlub2RlLT5pX2F0aW1lID0gY3VycmVudF9m c190aW1lKGlub2RlLT5pX3NiKTsNCisJCXR0eV91cGRhdGVfdGltZSgmaW5vZGUtPmlfYXRpbWUp Ow0KKw0KIAlyZXR1cm4gaTsNCiB9DQogDQpAQCAtMTA3OSw4ICsxMDg5LDggQEAgc3RhdGljIGlu bGluZSBzc2l6ZV90IGRvX3R0eV93cml0ZSgNCiAJCWNvbmRfcmVzY2hlZCgpOw0KIAl9DQogCWlm ICh3cml0dGVuKSB7DQotCQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRy eS0+ZF9pbm9kZTsNCi0JCWlub2RlLT5pX210aW1lID0gY3VycmVudF9mc190aW1lKGlub2RlLT5p X3NiKTsNCisgICAgICAgICAgICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRo LmRlbnRyeS0+ZF9pbm9kZTsNCisJCXR0eV91cGRhdGVfdGltZSgmaW5vZGUtPmlfbXRpbWUpOw0K IAkJcmV0ID0gd3JpdHRlbjsNCiAJfQ0KIG91dDoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9j b3JlL2RldmlvLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2RldmlvLmMNCmluZGV4IGE5ZGYyMTguLjIy Zjc3MGEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2RldmlvLmMNCisrKyBiL2RyaXZl cnMvdXNiL2NvcmUvZGV2aW8uYw0KQEAgLTY0Myw2ICs2NDMsOCBAQCBzdGF0aWMgaW50IGNoZWNr X2N0cmxyZWNpcChzdHJ1Y3QgZGV2X3N0YXRlICpwcywgdW5zaWduZWQgaW50IHJlcXVlc3R0eXBl LA0KIAlpbmRleCAmPSAweGZmOw0KIAlzd2l0Y2ggKHJlcXVlc3R0eXBlICYgVVNCX1JFQ0lQX01B U0spIHsNCiAJY2FzZSBVU0JfUkVDSVBfRU5EUE9JTlQ6DQorCQlpZiAoKGluZGV4ICYgflVTQl9E SVJfSU4pID09IDApDQorCQkJcmV0dXJuIDA7DQogCQlyZXQgPSBmaW5kaW50ZmVwKHBzLT5kZXYs IGluZGV4KTsNCiAJCWlmIChyZXQgPj0gMCkNCiAJCQlyZXQgPSBjaGVja2ludGYocHMsIHJldCk7 DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9hcHBsZWRpc3BsYXkuYyBiL2RyaXZlcnMv dXNiL21pc2MvYXBwbGVkaXNwbGF5LmMNCmluZGV4IGFjMGQ3NWEuLjlmNzAwM2UgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3VzYi9taXNjL2FwcGxlZGlzcGxheS5jDQorKysgYi9kcml2ZXJzL3VzYi9t aXNjL2FwcGxlZGlzcGxheS5jDQpAQCAtNjMsNiArNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHVzYl9kZXZpY2VfaWQgYXBwbGVkaXNwbGF5X3RhYmxlW10gPSB7DQogCXsgQVBQTEVESVNQTEFZ X0RFVklDRSgweDkyMTkpIH0sDQogCXsgQVBQTEVESVNQTEFZX0RFVklDRSgweDkyMWMpIH0sDQog CXsgQVBQTEVESVNQTEFZX0RFVklDRSgweDkyMWQpIH0sDQorCXsgQVBQTEVESVNQTEFZX0RFVklD RSgweDkyMzYpIH0sDQogDQogCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovDQogCXsgfQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJpdmVycy91c2Ivc2VyaWFs L2Z0ZGlfc2lvLmMNCmluZGV4IDA2Mzk0ZTVhLi41MWQxNzEyIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Np by5jDQpAQCAtMTk1LDYgKzE5NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90 YWJsZV9jb21iaW5lZCBbXSA9IHsNCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX09QRU5E Q0NfVEhST1RUTEVfUElEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfT1BFTkRD Q19HQVRFV0FZX1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX09QRU5EQ0Nf R0JNX1BJRCkgfSwNCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX09QRU5EQ0NfR0JNX0JP T1NUX1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKE5FV1BPUlRfVklELCBORVdQT1JUX0FHSUxJU19Q SUQpIH0sDQogCXsgVVNCX0RFVklDRShJTlRFUkJJT01FVFJJQ1NfVklELCBJTlRFUkJJT01FVFJJ Q1NfSU9CT0FSRF9QSUQpIH0sDQogCXsgVVNCX0RFVklDRShJTlRFUkJJT01FVFJJQ1NfVklELCBJ TlRFUkJJT01FVFJJQ1NfTUlOSV9JT0JPQVJEX1BJRCkgfSwNCkBAIC04NzYsNyArODc3LDkgQEAg c3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0gew0KIAl7 IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfRE9URUNfUElEKSB9LA0KIAl7IFVTQl9ERVZJQ0Uo UUlIQVJEV0FSRV9WSUQsIE1JTEtZTUlTVE9ORV9KVEFHU0VSSUFMX1BJRCksDQogCQkuZHJpdmVy X2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0ZGlfanRhZ19xdWlyayB9LA0KLQl7IFVTQl9ERVZJ Q0UoU1RfVklELCBTVF9TVE1DTFQxMDMwX1BJRCksDQorCXsgVVNCX0RFVklDRShTVF9WSUQsIFNU X1NUTUNMVF8yMjMyX1BJRCksDQorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0 ZGlfanRhZ19xdWlyayB9LA0KKwl7IFVTQl9ERVZJQ0UoU1RfVklELCBTVF9TVE1DTFRfNDIzMl9Q SUQpLA0KIAkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZmdGRpX3N0bWNsaXRlX3F1 aXJrIH0sDQogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9SRl9SMTA2KSB9LA0KIAl7IFVT Ql9ERVZJQ0UoRlRESV9WSUQsIEZURElfRElTVE9SVEVDX0pUQUdfTE9DS19QSUNLX1BJRCksDQpA QCAtMTgxNiw4ICsxODE5LDExIEBAIHN0YXRpYyBpbnQgZnRkaV84dTIyMzJjX3Byb2JlKHN0cnVj dCB1c2Jfc2VyaWFsICpzZXJpYWwpDQogfQ0KIA0KIC8qDQotICogRmlyc3QgYW5kIHNlY29uZCBw b3J0IG9uIFNUTUNMaXRlYWRhcHRvcnMgaXMgcmVzZXJ2ZWQgZm9yIEpUQUcgaW50ZXJmYWNlDQot ICogYW5kIHRoZSBmb3J0aCBwb3J0IGZvciBwaW8NCisgKiBGaXJzdCB0d28gcG9ydHMgb24gSlRB RyBhZGFwdG9ycyB1c2luZyBhbiBGVDQyMzIgc3VjaCBhcyBTVE1pY3JvZWxlY3Ryb25pY3Mncw0K KyAqIFNUIE1pY3JvIENvbm5lY3QgTGl0ZSBhcmUgcmVzZXJ2ZWQgZm9yIEpUQUcgb3Igb3RoZXIg bm9uLVVBUlQgaW50ZXJmYWNlcyBhbmQNCisgKiBjYW4gYmUgYWNjZXNzZWQgZnJvbSB1c2Vyc3Bh Y2UuDQorICogVGhlIG5leHQgdHdvIHBvcnRzIGFyZSBlbmFibGVkIGFzIFVBUlRzIGJ5IGRlZmF1 bHQsIHdoZXJlIHBvcnQgMiBpcw0KKyAqIGEgY29udmVudGlvbmFsIFJTLTIzMiBVQVJULg0KICAq Lw0KIHN0YXRpYyBpbnQgZnRkaV9zdG1jbGl0ZV9wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2Vy aWFsKQ0KIHsNCkBAIC0xODI2LDEyICsxODMyLDEzIEBAIHN0YXRpYyBpbnQgZnRkaV9zdG1jbGl0 ZV9wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQ0KIA0KIAlkYmcoIiVzIiwgX19mdW5j X18pOw0KIA0KLQlpZiAoaW50ZXJmYWNlID09IHVkZXYtPmFjdGNvbmZpZy0+aW50ZXJmYWNlWzJd KQ0KLQkJcmV0dXJuIDA7DQotDQotCWRldl9pbmZvKCZ1ZGV2LT5kZXYsICJJZ25vcmluZyBzZXJp YWwgcG9ydCByZXNlcnZlZCBmb3IgSlRBR1xuIik7DQorCWlmIChpbnRlcmZhY2UgPT0gdWRldi0+ YWN0Y29uZmlnLT5pbnRlcmZhY2VbMF0gfHwNCisJICAgIGludGVyZmFjZSA9PSB1ZGV2LT5hY3Rj b25maWctPmludGVyZmFjZVsxXSkgew0KKwkJZGV2X2luZm8oJnVkZXYtPmRldiwgIklnbm9yaW5n IHNlcmlhbCBwb3J0IHJlc2VydmVkIGZvciBKVEFHXG4iKTsNCisJCXJldHVybiAtRU5PREVWOw0K Kwl9DQogDQotCXJldHVybiAtRU5PREVWOw0KKwlyZXR1cm4gMDsNCiB9DQogDQogLyoNCmRpZmYg LS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW9faWRzLmggYi9kcml2ZXJzL3VzYi9z ZXJpYWwvZnRkaV9zaW9faWRzLmgNCmluZGV4IDgwOWMwM2EuLjJmODYwMDggMTAwNjQ0DQotLS0g YS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW9faWRzLmgNCisrKyBiL2RyaXZlcnMvdXNiL3Nl cmlhbC9mdGRpX3Npb19pZHMuaA0KQEAgLTc0LDYgKzc0LDcgQEANCiAjZGVmaW5lIEZURElfT1BF TkRDQ19USFJPVFRMRV9QSUQJMHhCRkRBDQogI2RlZmluZSBGVERJX09QRU5EQ0NfR0FURVdBWV9Q SUQJMHhCRkRCDQogI2RlZmluZSBGVERJX09QRU5EQ0NfR0JNX1BJRAkweEJGREMNCisjZGVmaW5l IEZURElfT1BFTkRDQ19HQk1fQk9PU1RfUElECTB4QkZERA0KIA0KIC8qIE5aUiBTRU0gMTYrIFVT QiAoaHR0cDovL3d3dy5uenIuZGUpICovDQogI2RlZmluZSBGVERJX05aUl9TRU1fVVNCX1BJRAkw eEMxRTAJLyogTlpSIFNFTS1MT0cxNisgKi8NCkBAIC0xMTUwLDcgKzExNTEsOCBAQA0KICAqIFNU TWljcm9lbGVjdG9uaWNzDQogICovDQogI2RlZmluZSBTVF9WSUQJCQkweDA0ODMNCi0jZGVmaW5l IFNUX1NUTUNMVDEwMzBfUElECTB4Mzc0NyAvKiBTVCBNaWNybyBDb25uZWN0IExpdGUgU1RNQ0xU MTAzMCAqLw0KKyNkZWZpbmUgU1RfU1RNQ0xUXzIyMzJfUElECTB4Mzc0Ng0KKyNkZWZpbmUgU1Rf U1RNQ0xUXzQyMzJfUElECTB4Mzc0Nw0KIA0KIC8qDQogICogUGFwb3VjaCBwcm9kdWN0cyAoaHR0 cDovL3d3dy5wYXBvdWNoLmNvbS8pDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL29w dGlvbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQppbmRleCA0NDE4NTM4Li44NTEz ZjUxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQorKysgYi9kcml2 ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMNCkBAIC0zNDcsNiArMzQ3LDcgQEAgc3RhdGljIHZvaWQg b3B0aW9uX2luc3RhdF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpOw0KIC8qIE9saXZldHRpIHBy b2R1Y3RzICovDQogI2RlZmluZSBPTElWRVRUSV9WRU5ET1JfSUQJCQkweDBiM2MNCiAjZGVmaW5l IE9MSVZFVFRJX1BST0RVQ1RfT0xJQ0FSRDEwMAkJMHhjMDAwDQorI2RlZmluZSBPTElWRVRUSV9Q Uk9EVUNUX09MSUNBUkQxNDUJCTB4YzAwMw0KIA0KIC8qIENlbG90IHByb2R1Y3RzICovDQogI2Rl ZmluZSBDRUxPVF9WRU5ET1JfSUQJCQkJMHgyMTFmDQpAQCAtMTI3Myw2ICsxMjc0LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0Jf REVWSUNFKFNJRU1FTlNfVkVORE9SX0lELCBDSU5URVJJT05fUFJPRFVDVF9IQzI4X01ETU5FVCkg fSwNCiANCiAJeyBVU0JfREVWSUNFKE9MSVZFVFRJX1ZFTkRPUl9JRCwgT0xJVkVUVElfUFJPRFVD VF9PTElDQVJEMTAwKSB9LA0KKwl7IFVTQl9ERVZJQ0UoT0xJVkVUVElfVkVORE9SX0lELCBPTElW RVRUSV9QUk9EVUNUX09MSUNBUkQxNDUpIH0sDQogCXsgVVNCX0RFVklDRShDRUxPVF9WRU5ET1Jf SUQsIENFTE9UX1BST0RVQ1RfQ1Q2ODBNKSB9LCAvKiBDVC02NTAgQ0RNQSA0NTAgMXhFVkRPIG1v ZGVtICovDQogCXsgVVNCX0RFVklDRShPTkRBX1ZFTkRPUl9JRCwgT05EQV9NVDgyNVVQKSB9LCAv KiBPTkRBIE1UODI1VVAgbW9kZW0gKi8NCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5G TyhTQU1TVU5HX1ZFTkRPUl9JRCwgU0FNU1VOR19QUk9EVUNUX0dUX0IzNzMwLCBVU0JfQ0xBU1Nf Q0RDX0RBVEEsIDB4MDAsIDB4MDApIH0sIC8qIFNhbXN1bmcgR1QtQjM3MzAgTFRFIFVTQiBtb2Rl bS4qLw0KQEAgLTEzNTAsNiArMTM1MiwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZp Y2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIAl7IFVTQl9ERVZJQ0UoVFBMSU5LX1ZFTkRPUl9JRCwg VFBMSU5LX1BST0RVQ1RfTUExODApLA0KIAkgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdf dCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJQ0UoQ0hBTkdIT05HX1ZFTkRP Ul9JRCwgQ0hBTkdIT05HX1BST0RVQ1RfQ0g2OTApIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5U RVJGQUNFX0lORk8oMHgyMDAxLCAweDdkMDEsIDB4ZmYsIDB4MDIsIDB4MDEpIH0sCS8qIEQtTGlu ayBEV00tMTU2ICh2YXJpYW50KSAqLw0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZP KDB4MjAwMSwgMHg3ZDAxLCAweGZmLCAweDAwLCAweDAwKSB9LAkvKiBELUxpbmsgRFdNLTE1NiAo dmFyaWFudCkgKi8NCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4 N2QwMiwgMHhmZiwgMHgwMiwgMHgwMSkgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0Vf SU5GTygweDIwMDEsIDB4N2QwMiwgMHhmZiwgMHgwMCwgMHgwMCkgfSwNCisJeyBVU0JfREVWSUNF X0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4N2QwMywgMHhmZiwgMHgwMiwgMHgwMSkgfSwN CisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4N2QwMywgMHhmZiwg MHgwMCwgMHgwMCkgfSwNCiAJeyB9IC8qIFRlcm1pbmF0aW5nIGVudHJ5ICovDQogfTsNCiBNT0RV TEVfREVWSUNFX1RBQkxFKHVzYiwgb3B0aW9uX2lkcyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2Ivc3RvcmFnZS9jeXByZXNzX2F0YWNiLmMgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL2N5cHJlc3Nf YXRhY2IuYw0KaW5kZXggYzg0NDcxOC4uNzM0MWNlMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNi L3N0b3JhZ2UvY3lwcmVzc19hdGFjYi5jDQorKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL2N5cHJl c3NfYXRhY2IuYw0KQEAgLTI0OCwxNCArMjQ4LDI2IEBAIHN0YXRpYyBpbnQgY3lwcmVzc19wcm9i ZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwNCiB7DQogCXN0cnVjdCB1c19kYXRhICp1czsN CiAJaW50IHJlc3VsdDsNCisJc3RydWN0IHVzYl9kZXZpY2UgKmRldmljZTsNCiANCiAJcmVzdWx0 ID0gdXNiX3N0b3JfcHJvYmUxKCZ1cywgaW50ZiwgaWQsDQogCQkJKGlkIC0gY3lwcmVzc191c2Jf aWRzKSArIGN5cHJlc3NfdW51c3VhbF9kZXZfbGlzdCk7DQogCWlmIChyZXN1bHQpDQogCQlyZXR1 cm4gcmVzdWx0Ow0KIA0KLQl1cy0+cHJvdG9jb2xfbmFtZSA9ICJUcmFuc3BhcmVudCBTQ1NJIHdp dGggQ3lwcmVzcyBBVEFDQiI7DQotCXVzLT5wcm90b19oYW5kbGVyID0gY3lwcmVzc19hdGFjYl9w YXNzdGhyb3VnaDsNCisJLyogQW1vbmcgQ1k3QzY4MzAwIGNoaXBzLCB0aGUgQSByZXZpc2lvbiBk b2VzIG5vdCBzdXBwb3J0IEN5cHJlc3MgQVRBQ0INCisJICogRmlsdGVyIG91dCB0aGlzIHJldmlz aW9uIGZyb20gRUVQUk9NIGRlZmF1bHQgZGVzY3JpcHRvciB2YWx1ZXMNCisJICovDQorCWRldmlj ZSA9IGludGVyZmFjZV90b191c2JkZXYoaW50Zik7DQorCWlmIChkZXZpY2UtPmRlc2NyaXB0b3Iu aU1hbnVmYWN0dXJlciAhPSAweDM4IHx8DQorCSAgICBkZXZpY2UtPmRlc2NyaXB0b3IuaVByb2R1 Y3QgIT0gMHg0ZSB8fA0KKwkgICAgZGV2aWNlLT5kZXNjcmlwdG9yLmlTZXJpYWxOdW1iZXIgIT0g MHg2NCkgew0KKwkJdXMtPnByb3RvY29sX25hbWUgPSAiVHJhbnNwYXJlbnQgU0NTSSB3aXRoIEN5 cHJlc3MgQVRBQ0IiOw0KKwkJdXMtPnByb3RvX2hhbmRsZXIgPSBjeXByZXNzX2F0YWNiX3Bhc3N0 aHJvdWdoOw0KKwl9IGVsc2Ugew0KKwkJdXMtPnByb3RvY29sX25hbWUgPSAiVHJhbnNwYXJlbnQg U0NTSSI7DQorCQl1cy0+cHJvdG9faGFuZGxlciA9IHVzYl9zdG9yX3RyYW5zcGFyZW50X3Njc2lf Y29tbWFuZDsNCisJfQ0KIA0KIAlyZXN1bHQgPSB1c2Jfc3Rvcl9wcm9iZTIodXMpOw0KIAlyZXR1 cm4gcmVzdWx0Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vY29uc29sZS9mYmNvbi5jIGIv ZHJpdmVycy92aWRlby9jb25zb2xlL2ZiY29uLmMNCmluZGV4IDdhMzZkZmYuLjZiNGZiNWMgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3ZpZGVvL2NvbnNvbGUvZmJjb24uYw0KKysrIGIvZHJpdmVycy92 aWRlby9jb25zb2xlL2ZiY29uLmMNCkBAIC0xMjI5LDYgKzEyMjksOCBAQCBzdGF0aWMgdm9pZCBm YmNvbl9kZWluaXQoc3RydWN0IHZjX2RhdGEgKnZjKQ0KIGZpbmlzaGVkOg0KIA0KIAlmYmNvbl9m cmVlX2ZvbnQocCwgZnJlZV9mb250KTsNCisJaWYgKGZyZWVfZm9udCkNCisJCXZjLT52Y19mb250 LmRhdGEgPSBOVUxMOw0KIA0KIAlpZiAoIWNvbl9pc19ib3VuZCgmZmJfY29uKSkNCiAJCWZiY29u X2V4aXQoKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZibWVtLmMgYi9kcml2ZXJzL3Zp ZGVvL2ZibWVtLmMNCmluZGV4IGJhYmJiMDcuLjBhMjI4MDggMTAwNjQ0DQotLS0gYS9kcml2ZXJz L3ZpZGVvL2ZibWVtLmMNCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJtZW0uYw0KQEAgLTEzNTAsMTUg KzEzNTAsMTIgQEAgZmJfbW1hcChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICogdm1hKQ0KIHsNCiAJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmaWxlX2ZiX2luZm8oZmls ZSk7DQogCXN0cnVjdCBmYl9vcHMgKmZiOw0KLQl1bnNpZ25lZCBsb25nIG9mZjsNCisJdW5zaWdu ZWQgbG9uZyBtbWlvX3Bnb2ZmOw0KIAl1bnNpZ25lZCBsb25nIHN0YXJ0Ow0KIAl1MzIgbGVuOw0K IA0KIAlpZiAoIWluZm8pDQogCQlyZXR1cm4gLUVOT0RFVjsNCi0JaWYgKHZtYS0+dm1fcGdvZmYg PiAofjBVTCA+PiBQQUdFX1NISUZUKSkNCi0JCXJldHVybiAtRUlOVkFMOw0KLQlvZmYgPSB2bWEt PnZtX3Bnb2ZmIDw8IFBBR0VfU0hJRlQ7DQogCWZiID0gaW5mby0+ZmJvcHM7DQogCWlmICghZmIp DQogCQlyZXR1cm4gLUVOT0RFVjsNCkBAIC0xMzcwLDMzICsxMzY3LDI0IEBAIGZiX21tYXAoc3Ry dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSkNCiAJCXJldHVybiBy ZXM7DQogCX0NCiANCi0JLyogZnJhbWUgYnVmZmVyIG1lbW9yeSAqLw0KKwkvKg0KKwkgKiBVZ2gu IFRoaXMgY2FuIGJlIGVpdGhlciB0aGUgZnJhbWUgYnVmZmVyIG1hcHBpbmcsIG9yDQorCSAqIGlm IHBnb2ZmIHBvaW50cyBwYXN0IGl0LCB0aGUgbW1pbyBtYXBwaW5nLg0KKwkgKi8NCiAJc3RhcnQg PSBpbmZvLT5maXguc21lbV9zdGFydDsNCi0JbGVuID0gUEFHRV9BTElHTigoc3RhcnQgJiB+UEFH RV9NQVNLKSArIGluZm8tPmZpeC5zbWVtX2xlbik7DQotCWlmIChvZmYgPj0gbGVuKSB7DQotCQkv KiBtZW1vcnkgbWFwcGVkIGlvICovDQotCQlvZmYgLT0gbGVuOw0KLQkJaWYgKGluZm8tPnZhci5h Y2NlbF9mbGFncykgew0KLQkJCW11dGV4X3VubG9jaygmaW5mby0+bW1fbG9jayk7DQotCQkJcmV0 dXJuIC1FSU5WQUw7DQotCQl9DQorCWxlbiA9IGluZm8tPmZpeC5zbWVtX2xlbjsNCisJbW1pb19w Z29mZiA9IFBBR0VfQUxJR04oKHN0YXJ0ICYgflBBR0VfTUFTSykgKyBsZW4pID4+IFBBR0VfU0hJ RlQ7DQorCWlmICh2bWEtPnZtX3Bnb2ZmID49IG1taW9fcGdvZmYpIHsNCisJCXZtYS0+dm1fcGdv ZmYgLT0gbW1pb19wZ29mZjsNCiAJCXN0YXJ0ID0gaW5mby0+Zml4Lm1taW9fc3RhcnQ7DQotCQls ZW4gPSBQQUdFX0FMSUdOKChzdGFydCAmIH5QQUdFX01BU0spICsgaW5mby0+Zml4Lm1taW9fbGVu KTsNCisJCWxlbiA9IGluZm8tPmZpeC5tbWlvX2xlbjsNCiAJfQ0KIAltdXRleF91bmxvY2soJmlu Zm8tPm1tX2xvY2spOw0KLQlzdGFydCAmPSBQQUdFX01BU0s7DQotCWlmICgodm1hLT52bV9lbmQg LSB2bWEtPnZtX3N0YXJ0ICsgb2ZmKSA+IGxlbikNCi0JCXJldHVybiAtRUlOVkFMOw0KLQlvZmYg Kz0gc3RhcnQ7DQotCXZtYS0+dm1fcGdvZmYgPSBvZmYgPj4gUEFHRV9TSElGVDsNCi0JLyogVGhp cyBpcyBhbiBJTyBtYXAgLSB0ZWxsIG1heWR1bXAgdG8gc2tpcCB0aGlzIFZNQSAqLw0KLQl2bWEt PnZtX2ZsYWdzIHw9IFZNX0lPIHwgVk1fUkVTRVJWRUQ7DQorDQogCXZtYS0+dm1fcGFnZV9wcm90 ID0gdm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKTsNCi0JZmJfcGdwcm90ZWN0KGZpbGUs IHZtYSwgb2ZmKTsNCi0JaWYgKGlvX3JlbWFwX3Bmbl9yYW5nZSh2bWEsIHZtYS0+dm1fc3RhcnQs IG9mZiA+PiBQQUdFX1NISUZULA0KLQkJCSAgICAgdm1hLT52bV9lbmQgLSB2bWEtPnZtX3N0YXJ0 LCB2bWEtPnZtX3BhZ2VfcHJvdCkpDQotCQlyZXR1cm4gLUVBR0FJTjsNCi0JcmV0dXJuIDA7DQor CWZiX3BncHJvdGVjdChmaWxlLCB2bWEsIHN0YXJ0KTsNCisNCisJcmV0dXJuIHZtX2lvbWFwX21l bW9yeSh2bWEsIHN0YXJ0LCBsZW4pOw0KIH0NCiANCiBzdGF0aWMgaW50DQpkaWZmIC0tZ2l0IGEv ZnMvYWlvLmMgYi9mcy9haW8uYw0KaW5kZXggM2I2NWVlNy4uOGNkZDhlYSAxMDA2NDQNCi0tLSBh L2ZzL2Fpby5jDQorKysgYi9mcy9haW8uYw0KQEAgLTExMTIsOSArMTExMiw5IEBAIHN0YXRpYyBp bnQgYWlvX3JlYWRfZXZ0KHN0cnVjdCBraW9jdHggKmlvY3R4LCBzdHJ1Y3QgaW9fZXZlbnQgKmVu dCkNCiAJc3Bpbl91bmxvY2soJmluZm8tPnJpbmdfbG9jayk7DQogDQogb3V0Og0KLQlrdW5tYXBf YXRvbWljKHJpbmcsIEtNX1VTRVIwKTsNCiAJZHByaW50aygibGVhdmluZyBhaW9fcmVhZF9ldnQ6 ICVkICBoJWx1IHQlbHVcbiIsIHJldCwNCiAJCSAodW5zaWduZWQgbG9uZylyaW5nLT5oZWFkLCAo dW5zaWduZWQgbG9uZylyaW5nLT50YWlsKTsNCisJa3VubWFwX2F0b21pYyhyaW5nLCBLTV9VU0VS MCk7DQogCXJldHVybiByZXQ7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2ZzL2RjYWNoZS5jIGIvZnMv ZGNhY2hlLmMNCmluZGV4IGU5MjNiZjQuLmQzMjI5MjkgMTAwNjQ0DQotLS0gYS9mcy9kY2FjaGUu Yw0KKysrIGIvZnMvZGNhY2hlLmMNCkBAIC0xMTc2LDggKzExNzYsMTAgQEAgdm9pZCBzaHJpbmtf ZGNhY2hlX3BhcmVudChzdHJ1Y3QgZGVudHJ5ICogcGFyZW50KQ0KIAlMSVNUX0hFQUQoZGlzcG9z ZSk7DQogCWludCBmb3VuZDsNCiANCi0Jd2hpbGUgKChmb3VuZCA9IHNlbGVjdF9wYXJlbnQocGFy ZW50LCAmZGlzcG9zZSkpICE9IDApDQorCXdoaWxlICgoZm91bmQgPSBzZWxlY3RfcGFyZW50KHBh cmVudCwgJmRpc3Bvc2UpKSAhPSAwKSB7DQogCQlzaHJpbmtfZGVudHJ5X2xpc3QoJmRpc3Bvc2Up Ow0KKwkJY29uZF9yZXNjaGVkKCk7DQorCX0NCiB9DQogRVhQT1JUX1NZTUJPTChzaHJpbmtfZGNh Y2hlX3BhcmVudCk7DQogDQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9LY29uZmlnIGIvZnMvZXh0NC9L Y29uZmlnDQppbmRleCA5ZWQxYmIxLi41NDU5MTY4IDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9LY29u ZmlnDQorKysgYi9mcy9leHQ0L0tjb25maWcNCkBAIC04Miw0ICs4Miw1IEBAIGNvbmZpZyBFWFQ0 X0RFQlVHDQogCSAgRW5hYmxlcyBydW4tdGltZSBkZWJ1Z2dpbmcgc3VwcG9ydCBmb3IgdGhlIGV4 dDQgZmlsZXN5c3RlbS4NCiANCiAJICBJZiB5b3Ugc2VsZWN0IFkgaGVyZSwgdGhlbiB5b3Ugd2ls bCBiZSBhYmxlIHRvIHR1cm4gb24gZGVidWdnaW5nDQotCSAgd2l0aCBhIGNvbW1hbmQgc3VjaCBh cyAiZWNobyAxID4gL3N5cy9rZXJuZWwvZGVidWcvZXh0NC9tYmFsbG9jLWRlYnVnIg0KKwkgIHdp dGggYSBjb21tYW5kIHN1Y2ggYXM6DQorCQllY2hvIDEgPiAvc3lzL21vZHVsZS9leHQ0L3BhcmFt ZXRlcnMvbWJhbGxvY19kZWJ1Zw0KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZnN5bmMuYyBiL2ZzL2V4 dDQvZnN5bmMuYw0KaW5kZXggYmI2YzdkOC4uYThkMDNhNCAxMDA2NDQNCi0tLSBhL2ZzL2V4dDQv ZnN5bmMuYw0KKysrIGIvZnMvZXh0NC9mc3luYy5jDQpAQCAtMjYwLDggKzI2MCw3IEBAIGludCBl eHQ0X3N5bmNfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5k LCBpbnQgZGF0YXN5bmMpDQogCWlmIChqb3VybmFsLT5qX2ZsYWdzICYgSkJEMl9CQVJSSUVSICYm DQogCSAgICAhamJkMl90cmFuc193aWxsX3NlbmRfZGF0YV9iYXJyaWVyKGpvdXJuYWwsIGNvbW1p dF90aWQpKQ0KIAkJbmVlZHNfYmFycmllciA9IHRydWU7DQotCWpiZDJfbG9nX3N0YXJ0X2NvbW1p dChqb3VybmFsLCBjb21taXRfdGlkKTsNCi0JcmV0ID0gamJkMl9sb2dfd2FpdF9jb21taXQoam91 cm5hbCwgY29tbWl0X3RpZCk7DQorCXJldCA9IGpiZDJfY29tcGxldGVfdHJhbnNhY3Rpb24oam91 cm5hbCwgY29tbWl0X3RpZCk7DQogCWlmIChuZWVkc19iYXJyaWVyKQ0KIAkJYmxrZGV2X2lzc3Vl X2ZsdXNoKGlub2RlLT5pX3NiLT5zX2JkZXYsIEdGUF9LRVJORUwsIE5VTEwpOw0KICBvdXQ6DQpk aWZmIC0tZ2l0IGEvZnMvZXh0NC9pbm9kZS5jIGIvZnMvZXh0NC9pbm9kZS5jDQppbmRleCAzMjcw ZmZkLi4wMjViNGI2IDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9pbm9kZS5jDQorKysgYi9mcy9leHQ0 L2lub2RlLmMNCkBAIC0xNDcsOCArMTQ3LDcgQEAgdm9pZCBleHQ0X2V2aWN0X2lub2RlKHN0cnVj dCBpbm9kZSAqaW5vZGUpDQogCQkJam91cm5hbF90ICpqb3VybmFsID0gRVhUNF9TQihpbm9kZS0+ aV9zYiktPnNfam91cm5hbDsNCiAJCQl0aWRfdCBjb21taXRfdGlkID0gRVhUNF9JKGlub2RlKS0+ aV9kYXRhc3luY190aWQ7DQogDQotCQkJamJkMl9sb2dfc3RhcnRfY29tbWl0KGpvdXJuYWwsIGNv bW1pdF90aWQpOw0KLQkJCWpiZDJfbG9nX3dhaXRfY29tbWl0KGpvdXJuYWwsIGNvbW1pdF90aWQp Ow0KKwkJCWpiZDJfY29tcGxldGVfdHJhbnNhY3Rpb24oam91cm5hbCwgY29tbWl0X3RpZCk7DQog CQkJZmlsZW1hcF93cml0ZV9hbmRfd2FpdCgmaW5vZGUtPmlfZGF0YSk7DQogCQl9DQogCQl0cnVu Y2F0ZV9pbm9kZV9wYWdlcygmaW5vZGUtPmlfZGF0YSwgMCk7DQpkaWZmIC0tZ2l0IGEvZnMvZnNj YWNoZS9zdGF0cy5jIGIvZnMvZnNjYWNoZS9zdGF0cy5jDQppbmRleCA0NzY1MTkwLi43M2MwYmQ3 IDEwMDY0NA0KLS0tIGEvZnMvZnNjYWNoZS9zdGF0cy5jDQorKysgYi9mcy9mc2NhY2hlL3N0YXRz LmMNCkBAIC0yNzYsNSArMjc2LDUgQEAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmc2Nh Y2hlX3N0YXRzX2ZvcHMgPSB7DQogCS5vcGVuCQk9IGZzY2FjaGVfc3RhdHNfb3BlbiwNCiAJLnJl YWQJCT0gc2VxX3JlYWQsDQogCS5sbHNlZWsJCT0gc2VxX2xzZWVrLA0KLQkucmVsZWFzZQk9IHNl cV9yZWxlYXNlLA0KKwkucmVsZWFzZSAgICAgICAgPSBzaW5nbGVfcmVsZWFzZSwNCiB9Ow0KZGlm ZiAtLWdpdCBhL2ZzL2piZDIvY29tbWl0LmMgYi9mcy9qYmQyL2NvbW1pdC5jDQppbmRleCBkNzUx ZjA0Li5hYjk0NjNhIDEwMDY0NA0KLS0tIGEvZnMvamJkMi9jb21taXQuYw0KKysrIGIvZnMvamJk Mi9jb21taXQuYw0KQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIGpiZDJfam91cm5hbF9jb21taXRf dHJhbnNhY3Rpb24oam91cm5hbF90ICpqb3VybmFsKQ0KIAlpbnQgc3BhY2VfbGVmdCA9IDA7DQog CWludCBmaXJzdF90YWcgPSAwOw0KIAlpbnQgdGFnX2ZsYWc7DQotCWludCBpLCB0b19mcmVlID0g MDsNCisJaW50IGk7DQogCWludCB0YWdfYnl0ZXMgPSBqb3VybmFsX3RhZ19ieXRlcyhqb3VybmFs KTsNCiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpjYmggPSBOVUxMOyAvKiBGb3IgdHJhbnNhY3Rpb25h bCBjaGVja3N1bXMgKi8NCiAJX191MzIgY3JjMzJfc3VtID0gfjA7DQpAQCAtOTk2LDcgKzk5Niw3 IEBAIHJlc3RhcnRfbG9vcDoNCiAJam91cm5hbC0+al9zdGF0cy5ydW4ucnNfYmxvY2tzX2xvZ2dl ZCArPSBzdGF0cy5ydW4ucnNfYmxvY2tzX2xvZ2dlZDsNCiAJc3Bpbl91bmxvY2soJmpvdXJuYWwt PmpfaGlzdG9yeV9sb2NrKTsNCiANCi0JY29tbWl0X3RyYW5zYWN0aW9uLT50X3N0YXRlID0gVF9G SU5JU0hFRDsNCisJY29tbWl0X3RyYW5zYWN0aW9uLT50X3N0YXRlID0gVF9DT01NSVRfQ0FMTEJB Q0s7DQogCUpfQVNTRVJUKGNvbW1pdF90cmFuc2FjdGlvbiA9PSBqb3VybmFsLT5qX2NvbW1pdHRp bmdfdHJhbnNhY3Rpb24pOw0KIAlqb3VybmFsLT5qX2NvbW1pdF9zZXF1ZW5jZSA9IGNvbW1pdF90 cmFuc2FjdGlvbi0+dF90aWQ7DQogCWpvdXJuYWwtPmpfY29tbWl0dGluZ190cmFuc2FjdGlvbiA9 IE5VTEw7DQpAQCAtMTAxMSwzOCArMTAxMSw0NCBAQCByZXN0YXJ0X2xvb3A6DQogCQkJCWpvdXJu YWwtPmpfYXZlcmFnZV9jb21taXRfdGltZSozKSAvIDQ7DQogCWVsc2UNCiAJCWpvdXJuYWwtPmpf YXZlcmFnZV9jb21taXRfdGltZSA9IGNvbW1pdF90aW1lOw0KKw0KIAl3cml0ZV91bmxvY2soJmpv dXJuYWwtPmpfc3RhdGVfbG9jayk7DQogDQotCWlmIChjb21taXRfdHJhbnNhY3Rpb24tPnRfY2hl Y2twb2ludF9saXN0ID09IE5VTEwgJiYNCi0JICAgIGNvbW1pdF90cmFuc2FjdGlvbi0+dF9jaGVj a3BvaW50X2lvX2xpc3QgPT0gTlVMTCkgew0KLQkJX19qYmQyX2pvdXJuYWxfZHJvcF90cmFuc2Fj dGlvbihqb3VybmFsLCBjb21taXRfdHJhbnNhY3Rpb24pOw0KLQkJdG9fZnJlZSA9IDE7DQorCWlm IChqb3VybmFsLT5qX2NoZWNrcG9pbnRfdHJhbnNhY3Rpb25zID09IE5VTEwpIHsNCisJCWpvdXJu YWwtPmpfY2hlY2twb2ludF90cmFuc2FjdGlvbnMgPSBjb21taXRfdHJhbnNhY3Rpb247DQorCQlj b21taXRfdHJhbnNhY3Rpb24tPnRfY3BuZXh0ID0gY29tbWl0X3RyYW5zYWN0aW9uOw0KKwkJY29t bWl0X3RyYW5zYWN0aW9uLT50X2NwcHJldiA9IGNvbW1pdF90cmFuc2FjdGlvbjsNCiAJfSBlbHNl IHsNCi0JCWlmIChqb3VybmFsLT5qX2NoZWNrcG9pbnRfdHJhbnNhY3Rpb25zID09IE5VTEwpIHsN Ci0JCQlqb3VybmFsLT5qX2NoZWNrcG9pbnRfdHJhbnNhY3Rpb25zID0gY29tbWl0X3RyYW5zYWN0 aW9uOw0KLQkJCWNvbW1pdF90cmFuc2FjdGlvbi0+dF9jcG5leHQgPSBjb21taXRfdHJhbnNhY3Rp b247DQotCQkJY29tbWl0X3RyYW5zYWN0aW9uLT50X2NwcHJldiA9IGNvbW1pdF90cmFuc2FjdGlv bjsNCi0JCX0gZWxzZSB7DQotCQkJY29tbWl0X3RyYW5zYWN0aW9uLT50X2NwbmV4dCA9DQotCQkJ CWpvdXJuYWwtPmpfY2hlY2twb2ludF90cmFuc2FjdGlvbnM7DQotCQkJY29tbWl0X3RyYW5zYWN0 aW9uLT50X2NwcHJldiA9DQotCQkJCWNvbW1pdF90cmFuc2FjdGlvbi0+dF9jcG5leHQtPnRfY3Bw cmV2Ow0KLQkJCWNvbW1pdF90cmFuc2FjdGlvbi0+dF9jcG5leHQtPnRfY3BwcmV2ID0NCi0JCQkJ Y29tbWl0X3RyYW5zYWN0aW9uOw0KLQkJCWNvbW1pdF90cmFuc2FjdGlvbi0+dF9jcHByZXYtPnRf Y3BuZXh0ID0NCisJCWNvbW1pdF90cmFuc2FjdGlvbi0+dF9jcG5leHQgPQ0KKwkJCWpvdXJuYWwt PmpfY2hlY2twb2ludF90cmFuc2FjdGlvbnM7DQorCQljb21taXRfdHJhbnNhY3Rpb24tPnRfY3Bw cmV2ID0NCisJCQljb21taXRfdHJhbnNhY3Rpb24tPnRfY3BuZXh0LT50X2NwcHJldjsNCisJCWNv bW1pdF90cmFuc2FjdGlvbi0+dF9jcG5leHQtPnRfY3BwcmV2ID0NCisJCQljb21taXRfdHJhbnNh Y3Rpb247DQorCQljb21taXRfdHJhbnNhY3Rpb24tPnRfY3BwcmV2LT50X2NwbmV4dCA9DQogCQkJ CWNvbW1pdF90cmFuc2FjdGlvbjsNCi0JCX0NCiAJfQ0KIAlzcGluX3VubG9jaygmam91cm5hbC0+ al9saXN0X2xvY2spOw0KLQ0KKwkvKiBEcm9wIGFsbCBzcGluX2xvY2tzIGJlY2F1c2UgY29tbWl0 X2NhbGxiYWNrIG1heSBiZSBibG9jay4NCisJICogX19qb3VybmFsX3JlbW92ZV9jaGVja3BvaW50 KCkgY2FuIG5vdCBkZXN0cm95IHRyYW5zYWN0aW9uDQorCSAqIHVuZGVyIHVzIGJlY2F1c2UgaXQg aXMgbm90IG1hcmtlZCBhcyBUX0ZJTklTSEVEIHlldCAqLw0KIAlpZiAoam91cm5hbC0+al9jb21t aXRfY2FsbGJhY2spDQogCQlqb3VybmFsLT5qX2NvbW1pdF9jYWxsYmFjayhqb3VybmFsLCBjb21t aXRfdHJhbnNhY3Rpb24pOw0KIA0KIAl0cmFjZV9qYmQyX2VuZF9jb21taXQoam91cm5hbCwgY29t bWl0X3RyYW5zYWN0aW9uKTsNCiAJamJkX2RlYnVnKDEsICJKQkQyOiBjb21taXQgJWQgY29tcGxl dGUsIGhlYWQgJWRcbiIsDQogCQkgIGpvdXJuYWwtPmpfY29tbWl0X3NlcXVlbmNlLCBqb3VybmFs LT5qX3RhaWxfc2VxdWVuY2UpOw0KLQlpZiAodG9fZnJlZSkNCi0JCWtmcmVlKGNvbW1pdF90cmFu c2FjdGlvbik7DQogDQorCXdyaXRlX2xvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7DQorCXNw aW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOw0KKwljb21taXRfdHJhbnNhY3Rpb24tPnRf c3RhdGUgPSBUX0ZJTklTSEVEOw0KKwkvKiBSZWNoZWNrIGNoZWNrcG9pbnQgbGlzdHMgYWZ0ZXIg al9saXN0X2xvY2sgd2FzIGRyb3BwZWQgKi8NCisJaWYgKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9j aGVja3BvaW50X2xpc3QgPT0gTlVMTCAmJg0KKwkgICAgY29tbWl0X3RyYW5zYWN0aW9uLT50X2No ZWNrcG9pbnRfaW9fbGlzdCA9PSBOVUxMKSB7DQorCQlfX2piZDJfam91cm5hbF9kcm9wX3RyYW5z YWN0aW9uKGpvdXJuYWwsIGNvbW1pdF90cmFuc2FjdGlvbik7DQorCQlrZnJlZShjb21taXRfdHJh bnNhY3Rpb24pOw0KKwl9DQorCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7DQor CXdyaXRlX3VubG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsNCiAJd2FrZV91cCgmam91cm5h bC0+al93YWl0X2RvbmVfY29tbWl0KTsNCiB9DQpkaWZmIC0tZ2l0IGEvZnMvamJkMi9qb3VybmFs LmMgYi9mcy9qYmQyL2pvdXJuYWwuYw0KaW5kZXggMGZhMDEyMy4uMTdiMDRmYyAxMDA2NDQNCi0t LSBhL2ZzL2piZDIvam91cm5hbC5jDQorKysgYi9mcy9qYmQyL2pvdXJuYWwuYw0KQEAgLTY2Myw2 ICs2NjMsMzcgQEAgaW50IGpiZDJfbG9nX3dhaXRfY29tbWl0KGpvdXJuYWxfdCAqam91cm5hbCwg dGlkX3QgdGlkKQ0KIH0NCiANCiAvKg0KKyAqIFdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRo ZSB0cmFuc2FjdGlvbiBjb3JyZXNwb25kaW5nIHRvIHRpZA0KKyAqIHdpbGwgYmUgY29tcGxldGVk LiAgSWYgdGhlIHRyYW5zYWN0aW9uIGhhcyBjdXJyZW50bHkgcnVubmluZywgc3RhcnQNCisgKiBj b21taXR0aW5nIHRoYXQgdHJhbnNhY3Rpb24gYmVmb3JlIHdhaXRpbmcgZm9yIGl0IHRvIGNvbXBs ZXRlLiAgSWYNCisgKiB0aGUgdHJhbnNhY3Rpb24gaWQgaXMgc3RhbGUsIGl0IGlzIGJ5IGRlZmlu aXRpb24gYWxyZWFkeSBjb21wbGV0ZWQsDQorICogc28ganVzdCByZXR1cm4gU1VDQ0VTUy4NCisg Ki8NCitpbnQgamJkMl9jb21wbGV0ZV90cmFuc2FjdGlvbihqb3VybmFsX3QgKmpvdXJuYWwsIHRp ZF90IHRpZCkNCit7DQorCWludAluZWVkX3RvX3dhaXQgPSAxOw0KKw0KKwlyZWFkX2xvY2soJmpv dXJuYWwtPmpfc3RhdGVfbG9jayk7DQorCWlmIChqb3VybmFsLT5qX3J1bm5pbmdfdHJhbnNhY3Rp b24gJiYNCisJICAgIGpvdXJuYWwtPmpfcnVubmluZ190cmFuc2FjdGlvbi0+dF90aWQgPT0gdGlk KSB7DQorCQlpZiAoam91cm5hbC0+al9jb21taXRfcmVxdWVzdCAhPSB0aWQpIHsNCisJCQkvKiB0 cmFuc2FjdGlvbiBub3QgeWV0IHN0YXJ0ZWQsIHNvIHJlcXVlc3QgaXQgKi8NCisJCQlyZWFkX3Vu bG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsNCisJCQlqYmQyX2xvZ19zdGFydF9jb21taXQo am91cm5hbCwgdGlkKTsNCisJCQlnb3RvIHdhaXRfY29tbWl0Ow0KKwkJfQ0KKwl9IGVsc2UgaWYg KCEoam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uICYmDQorCQkgICAgIGpvdXJuYWwt PmpfY29tbWl0dGluZ190cmFuc2FjdGlvbi0+dF90aWQgPT0gdGlkKSkNCisJCW5lZWRfdG9fd2Fp dCA9IDA7DQorCXJlYWRfdW5sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOw0KKwlpZiAoIW5l ZWRfdG9fd2FpdCkNCisJCXJldHVybiAwOw0KK3dhaXRfY29tbWl0Og0KKwlyZXR1cm4gamJkMl9s b2dfd2FpdF9jb21taXQoam91cm5hbCwgdGlkKTsNCit9DQorRVhQT1JUX1NZTUJPTChqYmQyX2Nv bXBsZXRlX3RyYW5zYWN0aW9uKTsNCisNCisvKg0KICAqIExvZyBidWZmZXIgYWxsb2NhdGlvbiBy b3V0aW5lczoNCiAgKi8NCiANCmRpZmYgLS1naXQgYS9mcy9sb2NrZC9jbG50bG9jay5jIGIvZnMv bG9ja2QvY2xudGxvY2suYw0KaW5kZXggOGQ0ZWE4My4uZGU4ODkyMiAxMDA2NDQNCi0tLSBhL2Zz L2xvY2tkL2NsbnRsb2NrLmMNCisrKyBiL2ZzL2xvY2tkL2NsbnRsb2NrLmMNCkBAIC0xNDEsNiAr MTQxLDkgQEAgaW50IG5sbWNsbnRfYmxvY2soc3RydWN0IG5sbV93YWl0ICpibG9jaywgc3RydWN0 IG5sbV9ycXN0ICpyZXEsIGxvbmcgdGltZW91dCkNCiAJCQl0aW1lb3V0KTsNCiAJaWYgKHJldCA8 IDApDQogCQlyZXR1cm4gLUVSRVNUQVJUU1lTOw0KKwkvKiBSZXNldCB0aGUgbG9jayBzdGF0dXMg YWZ0ZXIgYSBzZXJ2ZXIgcmVib290IHNvIHdlIHJlc2VuZCAqLw0KKwlpZiAoYmxvY2stPmJfc3Rh dHVzID09IG5sbV9sY2tfZGVuaWVkX2dyYWNlX3BlcmlvZCkNCisJCWJsb2NrLT5iX3N0YXR1cyA9 IG5sbV9sY2tfYmxvY2tlZDsNCiAJcmVxLT5hX3Jlcy5zdGF0dXMgPSBibG9jay0+Yl9zdGF0dXM7 DQogCXJldHVybiAwOw0KIH0NCmRpZmYgLS1naXQgYS9mcy9sb2NrZC9jbG50cHJvYy5jIGIvZnMv bG9ja2QvY2xudHByb2MuYw0KaW5kZXggYTNhMDk4Ny4uODM5MmNiOCAxMDA2NDQNCi0tLSBhL2Zz L2xvY2tkL2NsbnRwcm9jLmMNCisrKyBiL2ZzL2xvY2tkL2NsbnRwcm9jLmMNCkBAIC01NTEsOSAr NTUxLDYgQEAgYWdhaW46DQogCQlzdGF0dXMgPSBubG1jbG50X2Jsb2NrKGJsb2NrLCByZXEsIE5M TUNMTlRfUE9MTF9USU1FT1VUKTsNCiAJCWlmIChzdGF0dXMgPCAwKQ0KIAkJCWJyZWFrOw0KLQkJ LyogUmVzZW5kIHRoZSBibG9ja2luZyBsb2NrIHJlcXVlc3QgYWZ0ZXIgYSBzZXJ2ZXIgcmVib290 ICovDQotCQlpZiAocmVzcC0+c3RhdHVzID09ICBubG1fbGNrX2RlbmllZF9ncmFjZV9wZXJpb2Qp DQotCQkJY29udGludWU7DQogCQlpZiAocmVzcC0+c3RhdHVzICE9IG5sbV9sY2tfYmxvY2tlZCkN CiAJCQlicmVhazsNCiAJfQ0KZGlmZiAtLWdpdCBhL2ZzL25mc2QvbmZzNHByb2MuYyBiL2ZzL25m c2QvbmZzNHByb2MuYw0KaW5kZXggZmU1YzVmYjYuLjA4OTIxYjggMTAwNjQ0DQotLS0gYS9mcy9u ZnNkL25mczRwcm9jLmMNCisrKyBiL2ZzL25mc2QvbmZzNHByb2MuYw0KQEAgLTg4MCwxNCArODgw LDE0IEBAIG5mc2Q0X3dyaXRlKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9j b21wb3VuZF9zdGF0ZSAqY3N0YXRlLA0KIA0KIAluZnM0X2xvY2tfc3RhdGUoKTsNCiAJc3RhdHVz ID0gbmZzNF9wcmVwcm9jZXNzX3N0YXRlaWRfb3AoY3N0YXRlLCBzdGF0ZWlkLCBXUl9TVEFURSwg JmZpbHApOw0KLQlpZiAoZmlscCkNCi0JCWdldF9maWxlKGZpbHApOw0KLQluZnM0X3VubG9ja19z dGF0ZSgpOw0KLQ0KIAlpZiAoc3RhdHVzKSB7DQorCQluZnM0X3VubG9ja19zdGF0ZSgpOw0KIAkJ ZHByaW50aygiTkZTRDogbmZzZDRfd3JpdGU6IGNvdWxkbid0IHByb2Nlc3Mgc3RhdGVpZCFcbiIp Ow0KIAkJcmV0dXJuIHN0YXR1czsNCiAJfQ0KKwlpZiAoZmlscCkNCisJCWdldF9maWxlKGZpbHAp Ow0KKwluZnM0X3VubG9ja19zdGF0ZSgpOw0KIA0KIAljbnQgPSB3cml0ZS0+d3JfYnVmbGVuOw0K IAl3cml0ZS0+d3JfaG93X3dyaXR0ZW4gPSB3cml0ZS0+d3Jfc3RhYmxlX2hvdzsNCmRpZmYgLS1n aXQgYS9mcy9uZnNkL25mczRzdGF0ZS5jIGIvZnMvbmZzZC9uZnM0c3RhdGUuYw0KaW5kZXggN2Qx ODlkYy4uNGNlZjk5ZiAxMDA2NDQNCi0tLSBhL2ZzL25mc2QvbmZzNHN0YXRlLmMNCisrKyBiL2Zz L25mc2QvbmZzNHN0YXRlLmMNCkBAIC0xODgsMTMgKzE4OCw3IEBAIHN0YXRpYyB2b2lkIF9fbmZz NF9maWxlX3B1dF9hY2Nlc3Moc3RydWN0IG5mczRfZmlsZSAqZnAsIGludCBvZmxhZykNCiB7DQog CWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZmcC0+ZmlfYWNjZXNzW29mbGFnXSkpIHsNCiAJCW5m czRfZmlsZV9wdXRfZmQoZnAsIG9mbGFnKTsNCi0JCS8qDQotCQkgKiBJdCdzIGFsc28gc2FmZSB0 byBnZXQgcmlkIG9mIHRoZSBSRFdSIG9wZW4gKmlmKg0KLQkJICogd2Ugbm8gbG9uZ2VyIGhhdmUg bmVlZCBvZiB0aGUgb3RoZXIga2luZCBvZiBhY2Nlc3MNCi0JCSAqIG9yIGlmIHdlIGFscmVhZHkg aGF2ZSB0aGUgb3RoZXIga2luZCBvZiBvcGVuOg0KLQkJICovDQotCQlpZiAoZnAtPmZpX2Zkc1sx LW9mbGFnXQ0KLQkJCXx8IGF0b21pY19yZWFkKCZmcC0+ZmlfYWNjZXNzWzEgLSBvZmxhZ10pID09 IDApDQorCQlpZiAoYXRvbWljX3JlYWQoJmZwLT5maV9hY2Nlc3NbMSAtIG9mbGFnXSkgPT0gMCkN CiAJCQluZnM0X2ZpbGVfcHV0X2ZkKGZwLCBPX1JEV1IpOw0KIAl9DQogfQ0KZGlmZiAtLWdpdCBh L2ZzL25mc2QvbmZzNHhkci5jIGIvZnMvbmZzZC9uZnM0eGRyLmMNCmluZGV4IDI0YWZhOTYuLmFk ZTUzMTYgMTAwNjQ0DQotLS0gYS9mcy9uZnNkL25mczR4ZHIuYw0KKysrIGIvZnMvbmZzZC9uZnM0 eGRyLmMNCkBAIC0zNjAsMTAgKzM2MCw3IEBAIG5mc2Q0X2RlY29kZV9mYXR0cihzdHJ1Y3QgbmZz ZDRfY29tcG91bmRhcmdzICphcmdwLCB1MzIgKmJtdmFsLA0KIAkJCSAgIGFsbCAzMiBiaXRzIG9m ICduc2Vjb25kcycuICovDQogCQkJUkVBRF9CVUYoMTIpOw0KIAkJCWxlbiArPSAxMjsNCi0JCQlS RUFEMzIoZHVtbXkzMik7DQotCQkJaWYgKGR1bW15MzIpDQotCQkJCXJldHVybiBuZnNlcnJfaW52 YWw7DQotCQkJUkVBRDMyKGlhdHRyLT5pYV9hdGltZS50dl9zZWMpOw0KKwkJCVJFQUQ2NChpYXR0 ci0+aWFfYXRpbWUudHZfc2VjKTsNCiAJCQlSRUFEMzIoaWF0dHItPmlhX2F0aW1lLnR2X25zZWMp Ow0KIAkJCWlmIChpYXR0ci0+aWFfYXRpbWUudHZfbnNlYyA+PSAodTMyKTEwMDAwMDAwMDApDQog CQkJCXJldHVybiBuZnNlcnJfaW52YWw7DQpAQCAtMzg2LDEwICszODMsNyBAQCBuZnNkNF9kZWNv ZGVfZmF0dHIoc3RydWN0IG5mc2Q0X2NvbXBvdW5kYXJncyAqYXJncCwgdTMyICpibXZhbCwNCiAJ CQkgICBhbGwgMzIgYml0cyBvZiAnbnNlY29uZHMnLiAqLw0KIAkJCVJFQURfQlVGKDEyKTsNCiAJ CQlsZW4gKz0gMTI7DQotCQkJUkVBRDMyKGR1bW15MzIpOw0KLQkJCWlmIChkdW1teTMyKQ0KLQkJ CQlyZXR1cm4gbmZzZXJyX2ludmFsOw0KLQkJCVJFQUQzMihpYXR0ci0+aWFfbXRpbWUudHZfc2Vj KTsNCisJCQlSRUFENjQoaWF0dHItPmlhX210aW1lLnR2X3NlYyk7DQogCQkJUkVBRDMyKGlhdHRy LT5pYV9tdGltZS50dl9uc2VjKTsNCiAJCQlpZiAoaWF0dHItPmlhX210aW1lLnR2X25zZWMgPj0g KHUzMikxMDAwMDAwMDAwKQ0KIAkJCQlyZXR1cm4gbmZzZXJyX2ludmFsOw0KQEAgLTIzNzQsOCAr MjM2OCw3IEBAIG91dF9hY2w6DQogCWlmIChibXZhbDEgJiBGQVRUUjRfV09SRDFfVElNRV9BQ0NF U1MpIHsNCiAJCWlmICgoYnVmbGVuIC09IDEyKSA8IDApDQogCQkJZ290byBvdXRfcmVzb3VyY2U7 DQotCQlXUklURTMyKDApOw0KLQkJV1JJVEUzMihzdGF0LmF0aW1lLnR2X3NlYyk7DQorCQlXUklU RTY0KChzNjQpc3RhdC5hdGltZS50dl9zZWMpOw0KIAkJV1JJVEUzMihzdGF0LmF0aW1lLnR2X25z ZWMpOw0KIAl9DQogCWlmIChibXZhbDEgJiBGQVRUUjRfV09SRDFfVElNRV9ERUxUQSkgew0KQEAg LTIzODgsMTUgKzIzODEsMTMgQEAgb3V0X2FjbDoNCiAJaWYgKGJtdmFsMSAmIEZBVFRSNF9XT1JE MV9USU1FX01FVEFEQVRBKSB7DQogCQlpZiAoKGJ1ZmxlbiAtPSAxMikgPCAwKQ0KIAkJCWdvdG8g b3V0X3Jlc291cmNlOw0KLQkJV1JJVEUzMigwKTsNCi0JCVdSSVRFMzIoc3RhdC5jdGltZS50dl9z ZWMpOw0KKwkJV1JJVEU2NCgoczY0KXN0YXQuY3RpbWUudHZfc2VjKTsNCiAJCVdSSVRFMzIoc3Rh dC5jdGltZS50dl9uc2VjKTsNCiAJfQ0KIAlpZiAoYm12YWwxICYgRkFUVFI0X1dPUkQxX1RJTUVf TU9ESUZZKSB7DQogCQlpZiAoKGJ1ZmxlbiAtPSAxMikgPCAwKQ0KIAkJCWdvdG8gb3V0X3Jlc291 cmNlOw0KLQkJV1JJVEUzMigwKTsNCi0JCVdSSVRFMzIoc3RhdC5tdGltZS50dl9zZWMpOw0KKwkJ V1JJVEU2NCgoczY0KXN0YXQubXRpbWUudHZfc2VjKTsNCiAJCVdSSVRFMzIoc3RhdC5tdGltZS50 dl9uc2VjKTsNCiAJfQ0KIAlpZiAoYm12YWwxICYgRkFUVFI0X1dPUkQxX01PVU5URURfT05fRklM RUlEKSB7DQpkaWZmIC0tZ2l0IGEvZnMvbm90aWZ5L2lub3RpZnkvaW5vdGlmeV91c2VyLmMgYi9m cy9ub3RpZnkvaW5vdGlmeS9pbm90aWZ5X3VzZXIuYw0KaW5kZXggNmYyOTJkZC4uZjI1NWQzNyAx MDA2NDQNCi0tLSBhL2ZzL25vdGlmeS9pbm90aWZ5L2lub3RpZnlfdXNlci5jDQorKysgYi9mcy9u b3RpZnkvaW5vdGlmeS9pbm90aWZ5X3VzZXIuYw0KQEAgLTU3Nyw3ICs1NzcsNiBAQCBzdGF0aWMg aW50IGlub3RpZnlfdXBkYXRlX2V4aXN0aW5nX3dhdGNoKHN0cnVjdCBmc25vdGlmeV9ncm91cCAq Z3JvdXAsDQogCWludCBhZGQgPSAoYXJnICYgSU5fTUFTS19BREQpOw0KIAlpbnQgcmV0Ow0KIA0K LQkvKiBkb24ndCBhbGxvdyBpbnZhbGlkIGJpdHM6IHdlIGRvbid0IHdhbnQgZmxhZ3Mgc2V0ICov DQogCW1hc2sgPSBpbm90aWZ5X2FyZ190b19tYXNrKGFyZyk7DQogDQogCWZzbl9tYXJrID0gZnNu b3RpZnlfZmluZF9pbm9kZV9tYXJrKGdyb3VwLCBpbm9kZSk7DQpAQCAtNjI4LDcgKzYyNyw2IEBA IHN0YXRpYyBpbnQgaW5vdGlmeV9uZXdfd2F0Y2goc3RydWN0IGZzbm90aWZ5X2dyb3VwICpncm91 cCwNCiAJc3RydWN0IGlkciAqaWRyID0gJmdyb3VwLT5pbm90aWZ5X2RhdGEuaWRyOw0KIAlzcGlu bG9ja190ICppZHJfbG9jayA9ICZncm91cC0+aW5vdGlmeV9kYXRhLmlkcl9sb2NrOw0KIA0KLQkv KiBkb24ndCBhbGxvdyBpbnZhbGlkIGJpdHM6IHdlIGRvbid0IHdhbnQgZmxhZ3Mgc2V0ICovDQog CW1hc2sgPSBpbm90aWZ5X2FyZ190b19tYXNrKGFyZyk7DQogDQogCXRtcF9pX21hcmsgPSBrbWVt X2NhY2hlX2FsbG9jKGlub3RpZnlfaW5vZGVfbWFya19jYWNoZXAsIEdGUF9LRVJORUwpOw0KQEAg LTc1Nyw2ICs3NTUsMTAgQEAgU1lTQ0FMTF9ERUZJTkUzKGlub3RpZnlfYWRkX3dhdGNoLCBpbnQs IGZkLCBjb25zdCBjaGFyIF9fdXNlciAqLCBwYXRobmFtZSwNCiAJaW50IHJldCwgZnB1dF9uZWVk ZWQ7DQogCXVuc2lnbmVkIGZsYWdzID0gMDsNCiANCisJLyogZG9uJ3QgYWxsb3cgaW52YWxpZCBi aXRzOiB3ZSBkb24ndCB3YW50IGZsYWdzIHNldCAqLw0KKwlpZiAodW5saWtlbHkoIShtYXNrICYg QUxMX0lOT1RJRllfQklUUykpKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQogCWZpbHAgPSBmZ2V0 X2xpZ2h0KGZkLCAmZnB1dF9uZWVkZWQpOw0KIAlpZiAodW5saWtlbHkoIWZpbHApKQ0KIAkJcmV0 dXJuIC1FQkFERjsNCmRpZmYgLS1naXQgYS9mcy9zeXNmcy9kaXIuYyBiL2ZzL3N5c2ZzL2Rpci5j DQppbmRleCAzODk5ZTI0Li5lNzU2YmM0IDEwMDY0NA0KLS0tIGEvZnMvc3lzZnMvZGlyLmMNCisr KyBiL2ZzL3N5c2ZzL2Rpci5jDQpAQCAtOTc3LDYgKzk3Nyw3IEBAIHN0YXRpYyBpbnQgc3lzZnNf cmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbHAsIHZvaWQgKiBkaXJlbnQsIGZpbGxkaXJfdCBmaWxs ZGlyKQ0KIAllbnVtIGtvYmpfbnNfdHlwZSB0eXBlOw0KIAljb25zdCB2b2lkICpuczsNCiAJaW5v X3QgaW5vOw0KKwlsb2ZmX3Qgb2ZmOw0KIA0KIAl0eXBlID0gc3lzZnNfbnNfdHlwZShwYXJlbnRf c2QpOw0KIAlucyA9IHN5c2ZzX2luZm8oZGVudHJ5LT5kX3NiKS0+bnNbdHlwZV07DQpAQCAtOTk5 LDYgKzEwMDAsNyBAQCBzdGF0aWMgaW50IHN5c2ZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxw LCB2b2lkICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCiAJCQlyZXR1cm4gMDsNCiAJfQ0K IAltdXRleF9sb2NrKCZzeXNmc19tdXRleCk7DQorCW9mZiA9IGZpbHAtPmZfcG9zOw0KIAlmb3Ig KHBvcyA9IHN5c2ZzX2Rpcl9wb3MobnMsIHBhcmVudF9zZCwgZmlscC0+Zl9wb3MsIHBvcyk7DQog CSAgICAgcG9zOw0KIAkgICAgIHBvcyA9IHN5c2ZzX2Rpcl9uZXh0X3BvcyhucywgcGFyZW50X3Nk LCBmaWxwLT5mX3BvcywgcG9zKSkgew0KQEAgLTEwMTAsMTkgKzEwMTIsMjQgQEAgc3RhdGljIGlu dCBzeXNmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlscCwgdm9pZCAqIGRpcmVudCwgZmlsbGRp cl90IGZpbGxkaXIpDQogCQlsZW4gPSBzdHJsZW4obmFtZSk7DQogCQlpbm8gPSBwb3MtPnNfaW5v Ow0KIAkJdHlwZSA9IGR0X3R5cGUocG9zKTsNCi0JCWZpbHAtPmZfcG9zID0gaW5vOw0KKwkJb2Zm ID0gZmlscC0+Zl9wb3MgPSBpbm87DQogCQlmaWxwLT5wcml2YXRlX2RhdGEgPSBzeXNmc19nZXQo cG9zKTsNCiANCiAJCW11dGV4X3VubG9jaygmc3lzZnNfbXV0ZXgpOw0KLQkJcmV0ID0gZmlsbGRp cihkaXJlbnQsIG5hbWUsIGxlbiwgZmlscC0+Zl9wb3MsIGlubywgdHlwZSk7DQorCQlyZXQgPSBm aWxsZGlyKGRpcmVudCwgbmFtZSwgbGVuLCBvZmYsIGlubywgdHlwZSk7DQogCQltdXRleF9sb2Nr KCZzeXNmc19tdXRleCk7DQogCQlpZiAocmV0IDwgMCkNCiAJCQlicmVhazsNCiAJfQ0KIAltdXRl eF91bmxvY2soJnN5c2ZzX211dGV4KTsNCi0JaWYgKChmaWxwLT5mX3BvcyA+IDEpICYmICFwb3Mp IHsgLyogRU9GICovDQotCQlmaWxwLT5mX3BvcyA9IElOVF9NQVg7DQorDQorCS8qIGRvbid0IHJl ZmVyZW5jZSBsYXN0IGVudHJ5IGlmIGl0cyByZWZjb3VudCBpcyBkcm9wcGVkICovDQorCWlmICgh cG9zKSB7DQogCQlmaWxwLT5wcml2YXRlX2RhdGEgPSBOVUxMOw0KKw0KKwkJLyogRU9GIGFuZCBu b3QgY2hhbmdlZCBhcyAwIG9yIDEgaW4gcmVhZC93cml0ZSBwYXRoICovDQorCQlpZiAob2ZmID09 IGZpbHAtPmZfcG9zICYmIG9mZiA+IDEpDQorCQkJZmlscC0+Zl9wb3MgPSBJTlRfTUFYOw0KIAl9 DQogCXJldHVybiAwOw0KIH0NCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lwY19uYW1lc3Bh Y2UuaCBiL2luY2x1ZGUvbGludXgvaXBjX25hbWVzcGFjZS5oDQppbmRleCA4YTI5N2E1Li40OTdj NmNjIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9pcGNfbmFtZXNwYWNlLmgNCisrKyBiL2lu Y2x1ZGUvbGludXgvaXBjX25hbWVzcGFjZS5oDQpAQCAtNDIsOCArNDIsOCBAQCBzdHJ1Y3QgaXBj X25hbWVzcGFjZSB7DQogDQogCXNpemVfdAkJc2htX2N0bG1heDsNCiAJc2l6ZV90CQlzaG1fY3Rs YWxsOw0KKwl1bnNpZ25lZCBsb25nCXNobV90b3Q7DQogCWludAkJc2htX2N0bG1uaTsNCi0JaW50 CQlzaG1fdG90Ow0KIAkvKg0KIAkgKiBEZWZpbmVzIHdoZXRoZXIgSVBDX1JNSUQgaXMgZm9yY2Vk IGZvciBfYWxsXyBzaG0gc2VnbWVudHMgcmVnYXJkbGVzcw0KIAkgKiBvZiBzaG1jdGwoKQ0KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvamJkMi5oIGIvaW5jbHVkZS9saW51eC9qYmQyLmgNCmlu ZGV4IDIwOTJlYTIuLmExNTNlZDUgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2piZDIuaA0K KysrIGIvaW5jbHVkZS9saW51eC9qYmQyLmgNCkBAIC00NzAsNiArNDcwLDcgQEAgc3RydWN0IHRy YW5zYWN0aW9uX3MNCiAJCVRfQ09NTUlULA0KIAkJVF9DT01NSVRfREZMVVNILA0KIAkJVF9DT01N SVRfSkZMVVNILA0KKwkJVF9DT01NSVRfQ0FMTEJBQ0ssDQogCQlUX0ZJTklTSEVEDQogCX0JCQl0 X3N0YXRlOw0KIA0KQEAgLTExNjUsNiArMTE2Niw3IEBAIGludCBfX2piZDJfbG9nX3N0YXJ0X2Nv bW1pdChqb3VybmFsX3QgKmpvdXJuYWwsIHRpZF90IHRpZCk7DQogaW50IGpiZDJfam91cm5hbF9z dGFydF9jb21taXQoam91cm5hbF90ICpqb3VybmFsLCB0aWRfdCAqdGlkKTsNCiBpbnQgamJkMl9q b3VybmFsX2ZvcmNlX2NvbW1pdF9uZXN0ZWQoam91cm5hbF90ICpqb3VybmFsKTsNCiBpbnQgamJk Ml9sb2dfd2FpdF9jb21taXQoam91cm5hbF90ICpqb3VybmFsLCB0aWRfdCB0aWQpOw0KK2ludCBq YmQyX2NvbXBsZXRlX3RyYW5zYWN0aW9uKGpvdXJuYWxfdCAqam91cm5hbCwgdGlkX3QgdGlkKTsN CiBpbnQgamJkMl9sb2dfZG9fY2hlY2twb2ludChqb3VybmFsX3QgKmpvdXJuYWwpOw0KIGludCBq YmQyX3RyYW5zX3dpbGxfc2VuZF9kYXRhX2JhcnJpZXIoam91cm5hbF90ICpqb3VybmFsLCB0aWRf dCB0aWQpOw0KIA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGlu dXgvbW0uaA0KaW5kZXggNGJhYWRkMS4uZDA0OTNmNiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGlu dXgvbW0uaA0KKysrIGIvaW5jbHVkZS9saW51eC9tbS5oDQpAQCAtMTUwOSw2ICsxNTA5LDggQEAg aW50IHZtX2luc2VydF9wZm4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxv bmcgYWRkciwNCiAJCQl1bnNpZ25lZCBsb25nIHBmbik7DQogaW50IHZtX2luc2VydF9taXhlZChz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyLA0KIAkJCXVuc2ln bmVkIGxvbmcgcGZuKTsNCitpbnQgdm1faW9tYXBfbWVtb3J5KHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLCBwaHlzX2FkZHJfdCBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW4pOw0KKw0KIA0KIHN0 cnVjdCBwYWdlICpmb2xsb3dfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiwgdW5zaWduZWQg bG9uZyBhZGRyZXNzLA0KIAkJCXVuc2lnbmVkIGludCBmb2xsX2ZsYWdzKTsNCmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oIGIvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaA0K aW5kZXggMDBjYTMyYi4uOGM0M2ZkMSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZGV2 aWNlLmgNCisrKyBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgNCkBAIC0yMjUsOSArMjI1LDkg QEAgc3RydWN0IG5ldGRldl9od19hZGRyIHsNCiAjZGVmaW5lIE5FVERFVl9IV19BRERSX1RfU0xB VkUJCTMNCiAjZGVmaW5lIE5FVERFVl9IV19BRERSX1RfVU5JQ0FTVAk0DQogI2RlZmluZSBORVRE RVZfSFdfQUREUl9UX01VTFRJQ0FTVAk1DQotCWJvb2wJCQlzeW5jZWQ7DQogCWJvb2wJCQlnbG9i YWxfdXNlOw0KIAlpbnQJCQlyZWZjb3VudDsNCisJaW50CQkJc3luY2VkOw0KIAlzdHJ1Y3QgcmN1 X2hlYWQJCXJjdV9oZWFkOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9za2J1 ZmYuaCBiL2luY2x1ZGUvbGludXgvc2tidWZmLmgNCmluZGV4IGRhNjU4OTAuLmVmZTUwYWYgMTAw NjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3Nr YnVmZi5oDQpAQCAtMjM2Nyw2ICsyMzY3LDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBuZl9yZXNl dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KICNlbmRpZg0KIH0NCiANCitzdGF0aWMgaW5saW5lIHZv aWQgbmZfcmVzZXRfdHJhY2Uoc3RydWN0IHNrX2J1ZmYgKnNrYikNCit7DQorI2lmIElTX0VOQUJM RUQoQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfVFJBQ0UpDQorCXNrYi0+bmZfdHJhY2UgPSAw Ow0KKyNlbmRpZg0KK30NCisNCiAvKiBOb3RlOiBUaGlzIGRvZXNuJ3QgcHV0IGFueSBjb25udHJh Y2sgYW5kIGJyaWRnZSBpbmZvIGluIGRzdC4gKi8NCiBzdGF0aWMgaW5saW5lIHZvaWQgX19uZl9j b3B5KHN0cnVjdCBza19idWZmICpkc3QsIGNvbnN0IHN0cnVjdCBza19idWZmICpzcmMpDQogew0K ZGlmZiAtLWdpdCBhL2lwYy9zaG0uYyBiL2lwYy9zaG0uYw0KaW5kZXggYjc2YmU1Yi4uMzI2YTIw YiAxMDA2NDQNCi0tLSBhL2lwYy9zaG0uYw0KKysrIGIvaXBjL3NobS5jDQpAQCAtNDUwLDcgKzQ1 MCw3IEBAIHN0YXRpYyBpbnQgbmV3c2VnKHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgc3RydWN0 IGlwY19wYXJhbXMgKnBhcmFtcykNCiAJc2l6ZV90IHNpemUgPSBwYXJhbXMtPnUuc2l6ZTsNCiAJ aW50IGVycm9yOw0KIAlzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHA7DQotCWludCBudW1wYWdlcyA9 IChzaXplICsgUEFHRV9TSVpFIC0xKSA+PiBQQUdFX1NISUZUOw0KKwlzaXplX3QgbnVtcGFnZXMg PSAoc2l6ZSArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7DQogCXN0cnVjdCBmaWxlICog ZmlsZTsNCiAJY2hhciBuYW1lWzEzXTsNCiAJaW50IGlkOw0KZGlmZiAtLWdpdCBhL2tlcm5lbC9h dWRpdF90cmVlLmMgYi9rZXJuZWwvYXVkaXRfdHJlZS5jDQppbmRleCAzMWZkYzQ4Li4wY2FmMWY4 IDEwMDY0NA0KLS0tIGEva2VybmVsL2F1ZGl0X3RyZWUuYw0KKysrIGIva2VybmVsL2F1ZGl0X3Ry ZWUuYw0KQEAgLTYwOCw5ICs2MDgsOSBAQCB2b2lkIGF1ZGl0X3RyaW1fdHJlZXModm9pZCkNCiAJ CX0NCiAJCXNwaW5fdW5sb2NrKCZoYXNoX2xvY2spOw0KIAkJdHJpbV9tYXJrZWQodHJlZSk7DQot CQlwdXRfdHJlZSh0cmVlKTsNCiAJCWRyb3BfY29sbGVjdGVkX21vdW50cyhyb290X21udCk7DQog c2tpcF9pdDoNCisJCXB1dF90cmVlKHRyZWUpOw0KIAkJbXV0ZXhfbG9jaygmYXVkaXRfZmlsdGVy X211dGV4KTsNCiAJfQ0KIAlsaXN0X2RlbCgmY3Vyc29yKTsNCmRpZmYgLS1naXQgYS9rZXJuZWwv Y2dyb3VwLmMgYi9rZXJuZWwvY2dyb3VwLmMNCmluZGV4IGMwNzM5ZjguLmQyYTAxZmUgMTAwNjQ0 DQotLS0gYS9rZXJuZWwvY2dyb3VwLmMNCisrKyBiL2tlcm5lbC9jZ3JvdXAuYw0KQEAgLTIwMjks NyArMjAyOSw3IEBAIGludCBjZ3JvdXBfYXR0YWNoX3Byb2Moc3RydWN0IGNncm91cCAqY2dycCwg c3RydWN0IHRhc2tfc3RydWN0ICpsZWFkZXIpDQogCWlmICghZ3JvdXApDQogCQlyZXR1cm4gLUVO T01FTTsNCiAJLyogcHJlLWFsbG9jYXRlIHRvIGd1YXJhbnRlZSBzcGFjZSB3aGlsZSBpdGVyYXRp bmcgaW4gcmN1IHJlYWQtc2lkZS4gKi8NCi0JcmV0dmFsID0gZmxleF9hcnJheV9wcmVhbGxvYyhn cm91cCwgMCwgZ3JvdXBfc2l6ZSAtIDEsIEdGUF9LRVJORUwpOw0KKwlyZXR2YWwgPSBmbGV4X2Fy cmF5X3ByZWFsbG9jKGdyb3VwLCAwLCBncm91cF9zaXplLCBHRlBfS0VSTkVMKTsNCiAJaWYgKHJl dHZhbCkNCiAJCWdvdG8gb3V0X2ZyZWVfZ3JvdXBfbGlzdDsNCiANCmRpZmYgLS1naXQgYS9rZXJu ZWwvZXZlbnRzL2NvcmUuYyBiL2tlcm5lbC9ldmVudHMvY29yZS5jDQppbmRleCA3ZDFmMDVlLi45 ZjIxOTE1IDEwMDY0NA0KLS0tIGEva2VybmVsL2V2ZW50cy9jb3JlLmMNCisrKyBiL2tlcm5lbC9l dmVudHMvY29yZS5jDQpAQCAtNTE2NCw3ICs1MTY0LDcgQEAgc3RhdGljIHZvaWQgc3dfcGVyZl9l dmVudF9kZXN0cm95KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkNCiANCiBzdGF0aWMgaW50IHBl cmZfc3dldmVudF9pbml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkNCiB7DQotCWludCBldmVu dF9pZCA9IGV2ZW50LT5hdHRyLmNvbmZpZzsNCisJdTY0IGV2ZW50X2lkID0gZXZlbnQtPmF0dHIu Y29uZmlnOw0KIA0KIAlpZiAoZXZlbnQtPmF0dHIudHlwZSAhPSBQRVJGX1RZUEVfU09GVFdBUkUp DQogCQlyZXR1cm4gLUVOT0VOVDsNCkBAIC01NzU2LDYgKzU3NTYsNyBAQCBza2lwX3R5cGU6DQog CWlmIChwbXUtPnBtdV9jcHVfY29udGV4dCkNCiAJCWdvdG8gZ290X2NwdV9jb250ZXh0Ow0KIA0K KwlyZXQgPSAtRU5PTUVNOw0KIAlwbXUtPnBtdV9jcHVfY29udGV4dCA9IGFsbG9jX3BlcmNwdShz dHJ1Y3QgcGVyZl9jcHVfY29udGV4dCk7DQogCWlmICghcG11LT5wbXVfY3B1X2NvbnRleHQpDQog CQlnb3RvIGZyZWVfZGV2Ow0KZGlmZiAtLWdpdCBhL2tlcm5lbC9ocnRpbWVyLmMgYi9rZXJuZWwv aHJ0aW1lci5jDQppbmRleCBlNGNlZThkLi42MGY3ZTMyIDEwMDY0NA0KLS0tIGEva2VybmVsL2hy dGltZXIuYw0KKysrIGIva2VybmVsL2hydGltZXIuYw0KQEAgLTI5OCw2ICsyOTgsMTAgQEAga3Rp bWVfdCBrdGltZV9zdWJfbnMoY29uc3Qga3RpbWVfdCBrdCwgdTY0IG5zZWMpDQogCX0gZWxzZSB7 DQogCQl1bnNpZ25lZCBsb25nIHJlbSA9IGRvX2Rpdihuc2VjLCBOU0VDX1BFUl9TRUMpOw0KIA0K KwkJLyogTWFrZSBzdXJlIG5zZWMgZml0cyBpbnRvIGxvbmcgKi8NCisJCWlmICh1bmxpa2VseShu c2VjID4gS1RJTUVfU0VDX01BWCkpDQorCQkJcmV0dXJuIChrdGltZV90KXsgLnR2NjQgPSBLVElN RV9NQVggfTsNCisNCiAJCXRtcCA9IGt0aW1lX3NldCgobG9uZyluc2VjLCByZW0pOw0KIAl9DQog DQpAQCAtMTMwOCw2ICsxMzEyLDggQEAgcmV0cnk6DQogDQogCQkJCWV4cGlyZXMgPSBrdGltZV9z dWIoaHJ0aW1lcl9nZXRfZXhwaXJlcyh0aW1lciksDQogCQkJCQkJICAgIGJhc2UtPm9mZnNldCk7 DQorCQkJCWlmIChleHBpcmVzLnR2NjQgPCAwKQ0KKwkJCQkJZXhwaXJlcy50djY0ID0gS1RJTUVf TUFYOw0KIAkJCQlpZiAoZXhwaXJlcy50djY0IDwgZXhwaXJlc19uZXh0LnR2NjQpDQogCQkJCQll eHBpcmVzX25leHQgPSBleHBpcmVzOw0KIAkJCQlicmVhazsNCmRpZmYgLS1naXQgYS9rZXJuZWwv dGltZS90aWNrLWJyb2FkY2FzdC5jIGIva2VybmVsL3RpbWUvdGljay1icm9hZGNhc3QuYw0KaW5k ZXggY2QwNjhiMi4uYzM1MDlmYiAxMDA2NDQNCi0tLSBhL2tlcm5lbC90aW1lL3RpY2stYnJvYWRj YXN0LmMNCisrKyBiL2tlcm5lbC90aW1lL3RpY2stYnJvYWRjYXN0LmMNCkBAIC02Niw2ICs2Niw4 IEBAIHN0YXRpYyB2b2lkIHRpY2tfYnJvYWRjYXN0X3N0YXJ0X3BlcmlvZGljKHN0cnVjdCBjbG9j a19ldmVudF9kZXZpY2UgKmJjKQ0KICAqLw0KIGludCB0aWNrX2NoZWNrX2Jyb2FkY2FzdF9kZXZp Y2Uoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2KQ0KIHsNCisJc3RydWN0IGNsb2NrX2V2 ZW50X2RldmljZSAqY3VyID0gdGlja19icm9hZGNhc3RfZGV2aWNlLmV2dGRldjsNCisNCiAJaWYg KChkZXYtPmZlYXR1cmVzICYgQ0xPQ0tfRVZUX0ZFQVRfRFVNTVkpIHx8DQogCSAgICAodGlja19i cm9hZGNhc3RfZGV2aWNlLmV2dGRldiAmJg0KIAkgICAgIHRpY2tfYnJvYWRjYXN0X2RldmljZS5l dnRkZXYtPnJhdGluZyA+PSBkZXYtPnJhdGluZykgfHwNCkBAIC03Myw2ICs3NSw4IEBAIGludCB0 aWNrX2NoZWNrX2Jyb2FkY2FzdF9kZXZpY2Uoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2 KQ0KIAkJcmV0dXJuIDA7DQogDQogCWNsb2NrZXZlbnRzX2V4Y2hhbmdlX2RldmljZSh0aWNrX2Jy b2FkY2FzdF9kZXZpY2UuZXZ0ZGV2LCBkZXYpOw0KKwlpZiAoY3VyKQ0KKwkJY3VyLT5ldmVudF9o YW5kbGVyID0gY2xvY2tldmVudHNfaGFuZGxlX25vb3A7DQogCXRpY2tfYnJvYWRjYXN0X2Rldmlj ZS5ldnRkZXYgPSBkZXY7DQogCWlmICghY3B1bWFza19lbXB0eSh0aWNrX2dldF9icm9hZGNhc3Rf bWFzaygpKSkNCiAJCXRpY2tfYnJvYWRjYXN0X3N0YXJ0X3BlcmlvZGljKGRldik7DQpkaWZmIC0t Z2l0IGEva2VybmVsL3RpbWUvdGljay1jb21tb24uYyBiL2tlcm5lbC90aW1lL3RpY2stY29tbW9u LmMNCmluZGV4IGRhNmM5ZWMuLmVhZDc5YmMgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdGltZS90aWNr LWNvbW1vbi5jDQorKysgYi9rZXJuZWwvdGltZS90aWNrLWNvbW1vbi5jDQpAQCAtMzIzLDYgKzMy Myw3IEBAIHN0YXRpYyB2b2lkIHRpY2tfc2h1dGRvd24odW5zaWduZWQgaW50ICpjcHVwKQ0KIAkJ ICovDQogCQlkZXYtPm1vZGUgPSBDTE9DS19FVlRfTU9ERV9VTlVTRUQ7DQogCQljbG9ja2V2ZW50 c19leGNoYW5nZV9kZXZpY2UoZGV2LCBOVUxMKTsNCisJCWRldi0+ZXZlbnRfaGFuZGxlciA9IGNs b2NrZXZlbnRzX2hhbmRsZV9ub29wOw0KIAkJdGQtPmV2dGRldiA9IE5VTEw7DQogCX0NCiAJcmF3 X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRpY2tfZGV2aWNlX2xvY2ssIGZsYWdzKTsNCmRpZmYg LS1naXQgYS9rZXJuZWwvdHJhY2UvZnRyYWNlLmMgYi9rZXJuZWwvdHJhY2UvZnRyYWNlLmMNCmlu ZGV4IDU1MjcyMTEuLjI0YjM3NTkgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJhY2UvZnRyYWNlLmMN CisrKyBiL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KQEAgLTU1NCw3ICs1NTQsNyBAQCBpbnQgZnRy YWNlX3Byb2ZpbGVfcGFnZXNfaW5pdChzdHJ1Y3QgZnRyYWNlX3Byb2ZpbGVfc3RhdCAqc3RhdCkN CiANCiAJcGFnZXMgPSBESVZfUk9VTkRfVVAoZnVuY3Rpb25zLCBQUk9GSUxFU19QRVJfUEFHRSk7 DQogDQotCWZvciAoaSA9IDA7IGkgPCBwYWdlczsgaSsrKSB7DQorCWZvciAoaSA9IDE7IGkgPCBw YWdlczsgaSsrKSB7DQogCQlwZy0+bmV4dCA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9L RVJORUwpOw0KIAkJaWYgKCFwZy0+bmV4dCkNCiAJCQlnb3RvIG91dF9mcmVlOw0KQEAgLTMzMDMs NyArMzMwMyw4IEBAIG91dDoNCiAJaWYgKGZhaWwpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0J ZnRyYWNlX2dyYXBoX2ZpbHRlcl9lbmFibGVkID0gMTsNCisJZnRyYWNlX2dyYXBoX2ZpbHRlcl9l bmFibGVkID0gISEoKmlkeCk7DQorDQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYgLS1naXQgYS9r ZXJuZWwvdHJhY2UvdHJhY2UuYyBiL2tlcm5lbC90cmFjZS90cmFjZS5jDQppbmRleCAxN2VkYjE0 Li4wZWM2YzM0IDEwMDY0NA0KLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlLmMNCisrKyBiL2tlcm5l bC90cmFjZS90cmFjZS5jDQpAQCAtNDU2Myw2ICs0NTYzLDggQEAgc3RhdGljIF9faW5pdCBpbnQg dHJhY2VyX2luaXRfZGVidWdmcyh2b2lkKQ0KIAl0cmFjZV9hY2Nlc3NfbG9ja19pbml0KCk7DQog DQogCWRfdHJhY2VyID0gdHJhY2luZ19pbml0X2RlbnRyeSgpOw0KKwlpZiAoIWRfdHJhY2VyKQ0K KwkJcmV0dXJuIDA7DQogDQogCXRyYWNlX2NyZWF0ZV9maWxlKCJ0cmFjaW5nX2VuYWJsZWQiLCAw NjQ0LCBkX3RyYWNlciwNCiAJCQkmZ2xvYmFsX3RyYWNlLCAmdHJhY2luZ19jdHJsX2ZvcHMpOw0K QEAgLTQ2OTYsMzYgKzQ2OTgsMzIgQEAgdm9pZCB0cmFjZV9pbml0X2dsb2JhbF9pdGVyKHN0cnVj dCB0cmFjZV9pdGVyYXRvciAqaXRlcikNCiAJaXRlci0+Y3B1X2ZpbGUgPSBUUkFDRV9QSVBFX0FM TF9DUFU7DQogfQ0KIA0KLXN0YXRpYyB2b2lkDQotX19mdHJhY2VfZHVtcChib29sIGRpc2FibGVf dHJhY2luZywgZW51bSBmdHJhY2VfZHVtcF9tb2RlIG9vcHNfZHVtcF9tb2RlKQ0KK3ZvaWQgZnRy YWNlX2R1bXAoZW51bSBmdHJhY2VfZHVtcF9tb2RlIG9vcHNfZHVtcF9tb2RlKQ0KIHsNCi0Jc3Rh dGljIGFyY2hfc3BpbmxvY2tfdCBmdHJhY2VfZHVtcF9sb2NrID0NCi0JCShhcmNoX3NwaW5sb2Nr X3QpX19BUkNIX1NQSU5fTE9DS19VTkxPQ0tFRDsNCiAJLyogdXNlIHN0YXRpYyBiZWNhdXNlIGl0 ZXIgY2FuIGJlIGEgYml0IGJpZyBmb3IgdGhlIHN0YWNrICovDQogCXN0YXRpYyBzdHJ1Y3QgdHJh Y2VfaXRlcmF0b3IgaXRlcjsNCisJc3RhdGljIGF0b21pY190IGR1bXBfcnVubmluZzsNCiAJdW5z aWduZWQgaW50IG9sZF91c2Vyb2JqOw0KLQlzdGF0aWMgaW50IGR1bXBfcmFuOw0KIAl1bnNpZ25l ZCBsb25nIGZsYWdzOw0KIAlpbnQgY250ID0gMCwgY3B1Ow0KIA0KLQkvKiBvbmx5IG9uZSBkdW1w ICovDQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsNCi0JYXJjaF9zcGluX2xvY2soJmZ0cmFjZV9k dW1wX2xvY2spOw0KLQlpZiAoZHVtcF9yYW4pDQotCQlnb3RvIG91dDsNCi0NCi0JZHVtcF9yYW4g PSAxOw0KKwkvKiBPbmx5IGFsbG93IG9uZSBkdW1wIHVzZXIgYXQgYSB0aW1lLiAqLw0KKwlpZiAo YXRvbWljX2luY19yZXR1cm4oJmR1bXBfcnVubmluZykgIT0gMSkgew0KKwkJYXRvbWljX2RlYygm ZHVtcF9ydW5uaW5nKTsNCisJCXJldHVybjsNCisJfQ0KIA0KKwkvKg0KKwkgKiBBbHdheXMgdHVy biBvZmYgdHJhY2luZyB3aGVuIHdlIGR1bXAuDQorCSAqIFdlIGRvbid0IG5lZWQgdG8gc2hvdyB0 cmFjZSBvdXRwdXQgb2Ygd2hhdCBoYXBwZW5zDQorCSAqIGJldHdlZW4gbXVsdGlwbGUgY3Jhc2hl cy4NCisJICoNCisJICogSWYgdGhlIHVzZXIgZG9lcyBhIHN5c3JxLXosIHRoZW4gdGhleSBjYW4g cmUtZW5hYmxlDQorCSAqIHRyYWNpbmcgd2l0aCBlY2hvIDEgPiB0cmFjaW5nX29uLg0KKwkgKi8N CiAJdHJhY2luZ19vZmYoKTsNCiANCi0JLyogRGlkIGZ1bmN0aW9uIHRyYWNlciBhbHJlYWR5IGdl dCBkaXNhYmxlZD8gKi8NCi0JaWYgKGZ0cmFjZV9pc19kZWFkKCkpIHsNCi0JCXByaW50aygiIyBX QVJOSU5HOiBGVU5DVElPTiBUUkFDSU5HIElTIENPUlJVUFRFRFxuIik7DQotCQlwcmludGsoIiMg ICAgICAgICAgTUFZIEJFIE1JU1NJTkcgRlVOQ1RJT04gRVZFTlRTXG4iKTsNCi0JfQ0KLQ0KLQlp ZiAoZGlzYWJsZV90cmFjaW5nKQ0KLQkJZnRyYWNlX2tpbGwoKTsNCisJbG9jYWxfaXJxX3NhdmUo ZmxhZ3MpOw0KIA0KIAl0cmFjZV9pbml0X2dsb2JhbF9pdGVyKCZpdGVyKTsNCiANCkBAIC00NzU4 LDYgKzQ3NTYsMTIgQEAgX19mdHJhY2VfZHVtcChib29sIGRpc2FibGVfdHJhY2luZywgZW51bSBm dHJhY2VfZHVtcF9tb2RlIG9vcHNfZHVtcF9tb2RlKQ0KIA0KIAlwcmludGsoS0VSTl9UUkFDRSAi RHVtcGluZyBmdHJhY2UgYnVmZmVyOlxuIik7DQogDQorCS8qIERpZCBmdW5jdGlvbiB0cmFjZXIg YWxyZWFkeSBnZXQgZGlzYWJsZWQ/ICovDQorCWlmIChmdHJhY2VfaXNfZGVhZCgpKSB7DQorCQlw cmludGsoIiMgV0FSTklORzogRlVOQ1RJT04gVFJBQ0lORyBJUyBDT1JSVVBURURcbiIpOw0KKwkJ cHJpbnRrKCIjICAgICAgICAgIE1BWSBCRSBNSVNTSU5HIEZVTkNUSU9OIEVWRU5UU1xuIik7DQor CX0NCisNCiAJLyoNCiAJICogV2UgbmVlZCB0byBzdG9wIGFsbCB0cmFjaW5nIG9uIGFsbCBDUFVT IHRvIHJlYWQgdGhlDQogCSAqIHRoZSBuZXh0IGJ1ZmZlci4gVGhpcyBpcyBhIGJpdCBleHBlbnNp dmUsIGJ1dCBpcw0KQEAgLTQ3OTYsMjYgKzQ4MDAsMTUgQEAgX19mdHJhY2VfZHVtcChib29sIGRp c2FibGVfdHJhY2luZywgZW51bSBmdHJhY2VfZHVtcF9tb2RlIG9vcHNfZHVtcF9tb2RlKQ0KIAkJ cHJpbnRrKEtFUk5fVFJBQ0UgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7 DQogDQogIG91dF9lbmFibGU6DQotCS8qIFJlLWVuYWJsZSB0cmFjaW5nIGlmIHJlcXVlc3RlZCAq Lw0KLQlpZiAoIWRpc2FibGVfdHJhY2luZykgew0KLQkJdHJhY2VfZmxhZ3MgfD0gb2xkX3VzZXJv Ymo7DQorCXRyYWNlX2ZsYWdzIHw9IG9sZF91c2Vyb2JqOw0KIA0KLQkJZm9yX2VhY2hfdHJhY2lu Z19jcHUoY3B1KSB7DQotCQkJYXRvbWljX2RlYygmaXRlci50ci0+ZGF0YVtjcHVdLT5kaXNhYmxl ZCk7DQotCQl9DQotCQl0cmFjaW5nX29uKCk7DQorCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGNwdSkg ew0KKwkJYXRvbWljX2RlYygmaXRlci50ci0+ZGF0YVtjcHVdLT5kaXNhYmxlZCk7DQogCX0NCi0N Ci0gb3V0Og0KLQlhcmNoX3NwaW5fdW5sb2NrKCZmdHJhY2VfZHVtcF9sb2NrKTsNCisgCWF0b21p Y19kZWMoJmR1bXBfcnVubmluZyk7DQogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsNCiB9DQot DQotLyogQnkgZGVmYXVsdDogZGlzYWJsZSB0cmFjaW5nIGFmdGVyIHRoZSBkdW1wICovDQotdm9p ZCBmdHJhY2VfZHVtcChlbnVtIGZ0cmFjZV9kdW1wX21vZGUgb29wc19kdW1wX21vZGUpDQotew0K LQlfX2Z0cmFjZV9kdW1wKHRydWUsIG9vcHNfZHVtcF9tb2RlKTsNCi19DQorRVhQT1JUX1NZTUJP TF9HUEwoZnRyYWNlX2R1bXApOw0KIA0KIF9faW5pdCBzdGF0aWMgaW50IHRyYWNlcl9hbGxvY19i dWZmZXJzKHZvaWQpDQogew0KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zZWxmdGVz dC5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0LmMNCmluZGV4IDI4ODU0MWYuLjA5ZmQ5 OGEgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3QuYw0KKysrIGIva2Vy bmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0LmMNCkBAIC00NjEsOCArNDYxLDYgQEAgdHJhY2Vfc2Vs ZnRlc3Rfc3RhcnR1cF9mdW5jdGlvbihzdHJ1Y3QgdHJhY2VyICp0cmFjZSwgc3RydWN0IHRyYWNl X2FycmF5ICp0cikNCiAvKiBNYXhpbXVtIG51bWJlciBvZiBmdW5jdGlvbnMgdG8gdHJhY2UgYmVm b3JlIGRpYWdub3NpbmcgYSBoYW5nICovDQogI2RlZmluZSBHUkFQSF9NQVhfRlVOQ19URVNUCTEw MDAwMDAwMA0KIA0KLXN0YXRpYyB2b2lkDQotX19mdHJhY2VfZHVtcChib29sIGRpc2FibGVfdHJh Y2luZywgZW51bSBmdHJhY2VfZHVtcF9tb2RlIG9vcHNfZHVtcF9tb2RlKTsNCiBzdGF0aWMgdW5z aWduZWQgaW50IGdyYXBoX2hhbmdfdGhyZXNoOw0KIA0KIC8qIFdyYXAgdGhlIHJlYWwgZnVuY3Rp b24gZW50cnkgcHJvYmUgdG8gYXZvaWQgcG9zc2libGUgaGFuZ2luZyAqLw0KQEAgLTQ3Miw4ICs0 NzAsMTEgQEAgc3RhdGljIGludCB0cmFjZV9ncmFwaF9lbnRyeV93YXRjaGRvZyhzdHJ1Y3QgZnRy YWNlX2dyYXBoX2VudCAqdHJhY2UpDQogCWlmICh1bmxpa2VseSgrK2dyYXBoX2hhbmdfdGhyZXNo ID4gR1JBUEhfTUFYX0ZVTkNfVEVTVCkpIHsNCiAJCWZ0cmFjZV9ncmFwaF9zdG9wKCk7DQogCQlw cmludGsoS0VSTl9XQVJOSU5HICJCVUc6IEZ1bmN0aW9uIGdyYXBoIHRyYWNlciBoYW5nIVxuIik7 DQotCQlpZiAoZnRyYWNlX2R1bXBfb25fb29wcykNCi0JCQlfX2Z0cmFjZV9kdW1wKGZhbHNlLCBE VU1QX0FMTCk7DQorCQlpZiAoZnRyYWNlX2R1bXBfb25fb29wcykgew0KKwkJCWZ0cmFjZV9kdW1w KERVTVBfQUxMKTsNCisJCQkvKiBmdHJhY2VfZHVtcCgpIGRpc2FibGVzIHRyYWNpbmcgKi8NCisJ CQl0cmFjaW5nX29uKCk7DQorCQl9DQogCQlyZXR1cm4gMDsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBh L2tlcm5lbC90cmFjZS90cmFjZV9zdGFjay5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3N0YWNrLmMN CmluZGV4IDc3NTc1YjMuLmM1YjIwYTMgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vf c3RhY2suYw0KKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3N0YWNrLmMNCkBAIC0xNywxMyArMTcs MjQgQEANCiANCiAjZGVmaW5lIFNUQUNLX1RSQUNFX0VOVFJJRVMgNTAwDQogDQorI2lmZGVmIEND X1VTSU5HX0ZFTlRSWQ0KKyMgZGVmaW5lIGZlbnRyeQkJMQ0KKyNlbHNlDQorIyBkZWZpbmUgZmVu dHJ5CQkwDQorI2VuZGlmDQorDQogc3RhdGljIHVuc2lnbmVkIGxvbmcgc3RhY2tfZHVtcF90cmFj ZVtTVEFDS19UUkFDRV9FTlRSSUVTKzFdID0NCiAJIHsgWzAgLi4uIChTVEFDS19UUkFDRV9FTlRS SUVTKV0gPSBVTE9OR19NQVggfTsNCiBzdGF0aWMgdW5zaWduZWQgc3RhY2tfZHVtcF9pbmRleFtT VEFDS19UUkFDRV9FTlRSSUVTXTsNCiANCisvKg0KKyAqIFJlc2VydmUgb25lIGVudHJ5IGZvciB0 aGUgcGFzc2VkIGluIGlwLiBUaGlzIHdpbGwgYWxsb3cNCisgKiB1cyB0byByZW1vdmUgbW9zdCBv ciBhbGwgb2YgdGhlIHN0YWNrIHNpemUgb3ZlcmhlYWQNCisgKiBhZGRlZCBieSB0aGUgc3RhY2sg dHJhY2VyIGl0c2VsZi4NCisgKi8NCiBzdGF0aWMgc3RydWN0IHN0YWNrX3RyYWNlIG1heF9zdGFj a190cmFjZSA9IHsNCi0JLm1heF9lbnRyaWVzCQk9IFNUQUNLX1RSQUNFX0VOVFJJRVMsDQotCS5l bnRyaWVzCQk9IHN0YWNrX2R1bXBfdHJhY2UsDQorCS5tYXhfZW50cmllcwkJPSBTVEFDS19UUkFD RV9FTlRSSUVTIC0gMSwNCisJLmVudHJpZXMJCT0gJnN0YWNrX2R1bXBfdHJhY2VbMV0sDQogfTsN CiANCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBtYXhfc3RhY2tfc2l6ZTsNCkBAIC0zNywyNSArNDgs MzQgQEAgc3RhdGljIERFRklORV9NVVRFWChzdGFja19zeXNjdGxfbXV0ZXgpOw0KIGludCBzdGFj a190cmFjZXJfZW5hYmxlZDsNCiBzdGF0aWMgaW50IGxhc3Rfc3RhY2tfdHJhY2VyX2VuYWJsZWQ7 DQogDQotc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX3N0YWNrKHZvaWQpDQorc3RhdGljIGlubGlu ZSB2b2lkDQorY2hlY2tfc3RhY2sodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyAqc3Rh Y2spDQogew0KIAl1bnNpZ25lZCBsb25nIHRoaXNfc2l6ZSwgZmxhZ3M7DQogCXVuc2lnbmVkIGxv bmcgKnAsICp0b3AsICpzdGFydDsNCisJc3RhdGljIGludCB0cmFjZXJfZnJhbWU7DQorCWludCBm cmFtZV9zaXplID0gQUNDRVNTX09OQ0UodHJhY2VyX2ZyYW1lKTsNCiAJaW50IGk7DQogDQotCXRo aXNfc2l6ZSA9ICgodW5zaWduZWQgbG9uZykmdGhpc19zaXplKSAmIChUSFJFQURfU0laRS0xKTsN CisJdGhpc19zaXplID0gKCh1bnNpZ25lZCBsb25nKXN0YWNrKSAmIChUSFJFQURfU0laRS0xKTsN CiAJdGhpc19zaXplID0gVEhSRUFEX1NJWkUgLSB0aGlzX3NpemU7DQorCS8qIFJlbW92ZSB0aGUg ZnJhbWUgb2YgdGhlIHRyYWNlciAqLw0KKwl0aGlzX3NpemUgLT0gZnJhbWVfc2l6ZTsNCiANCiAJ aWYgKHRoaXNfc2l6ZSA8PSBtYXhfc3RhY2tfc2l6ZSkNCiAJCXJldHVybjsNCiANCiAJLyogd2Ug ZG8gbm90IGhhbmRsZSBpbnRlcnJ1cHQgc3RhY2tzIHlldCAqLw0KLQlpZiAoIW9iamVjdF9pc19v bl9zdGFjaygmdGhpc19zaXplKSkNCisJaWYgKCFvYmplY3RfaXNfb25fc3RhY2soc3RhY2spKQ0K IAkJcmV0dXJuOw0KIA0KIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7DQogCWFyY2hfc3Bpbl9sb2Nr KCZtYXhfc3RhY2tfbG9jayk7DQogDQorCS8qIEluIGNhc2UgYW5vdGhlciBDUFUgc2V0IHRoZSB0 cmFjZXJfZnJhbWUgb24gdXMgKi8NCisJaWYgKHVubGlrZWx5KCFmcmFtZV9zaXplKSkNCisJCXRo aXNfc2l6ZSAtPSB0cmFjZXJfZnJhbWU7DQorDQogCS8qIGEgcmFjZSBjb3VsZCBoYXZlIGFscmVh ZHkgdXBkYXRlZCBpdCAqLw0KIAlpZiAodGhpc19zaXplIDw9IG1heF9zdGFja19zaXplKQ0KIAkJ Z290byBvdXQ7DQpAQCAtNjgsMTAgKzg4LDE4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19z dGFjayh2b2lkKQ0KIAlzYXZlX3N0YWNrX3RyYWNlKCZtYXhfc3RhY2tfdHJhY2UpOw0KIA0KIAkv Kg0KKwkgKiBBZGQgdGhlIHBhc3NlZCBpbiBpcCBmcm9tIHRoZSBmdW5jdGlvbiB0cmFjZXIuDQor CSAqIFNlYXJjaGluZyBmb3IgdGhpcyBvbiB0aGUgc3RhY2sgd2lsbCBza2lwIG92ZXINCisJICog bW9zdCBvZiB0aGUgb3ZlcmhlYWQgZnJvbSB0aGUgc3RhY2sgdHJhY2VyIGl0c2VsZi4NCisJICov DQorCXN0YWNrX2R1bXBfdHJhY2VbMF0gPSBpcDsNCisJbWF4X3N0YWNrX3RyYWNlLm5yX2VudHJp ZXMrKzsNCisNCisJLyoNCiAJICogTm93IGZpbmQgd2hlcmUgaW4gdGhlIHN0YWNrIHRoZXNlIGFy ZS4NCiAJICovDQogCWkgPSAwOw0KLQlzdGFydCA9ICZ0aGlzX3NpemU7DQorCXN0YXJ0ID0gc3Rh Y2s7DQogCXRvcCA9ICh1bnNpZ25lZCBsb25nICopDQogCQkoKCh1bnNpZ25lZCBsb25nKXN0YXJ0 ICYgfihUSFJFQURfU0laRS0xKSkgKyBUSFJFQURfU0laRSk7DQogDQpAQCAtOTUsNiArMTIzLDE4 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19zdGFjayh2b2lkKQ0KIAkJCQlmb3VuZCA9IDE7 DQogCQkJCS8qIFN0YXJ0IHRoZSBzZWFyY2ggZnJvbSBoZXJlICovDQogCQkJCXN0YXJ0ID0gcCAr IDE7DQorCQkJCS8qDQorCQkJCSAqIFdlIGRvIG5vdCB3YW50IHRvIHNob3cgdGhlIG92ZXJoZWFk DQorCQkJCSAqIG9mIHRoZSBzdGFjayB0cmFjZXIgc3RhY2sgaW4gdGhlDQorCQkJCSAqIG1heCBz dGFjay4gSWYgd2UgaGF2ZW4ndCBmaWd1cmVkDQorCQkJCSAqIG91dCB3aGF0IHRoYXQgaXMsIHRo ZW4gZmlndXJlIGl0IG91dA0KKwkJCQkgKiBub3cuDQorCQkJCSAqLw0KKwkJCQlpZiAodW5saWtl bHkoIXRyYWNlcl9mcmFtZSkgJiYgaSA9PSAxKSB7DQorCQkJCQl0cmFjZXJfZnJhbWUgPSAocCAt IHN0YWNrKSAqDQorCQkJCQkJc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOw0KKwkJCQkJbWF4X3N0YWNr X3NpemUgLT0gdHJhY2VyX2ZyYW1lOw0KKwkJCQl9DQogCQkJfQ0KIAkJfQ0KIA0KQEAgLTExMCw2 ICsxNTAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfc3RhY2sodm9pZCkNCiBzdGF0aWMg dm9pZA0KIHN0YWNrX3RyYWNlX2NhbGwodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBw YXJlbnRfaXApDQogew0KKwl1bnNpZ25lZCBsb25nIHN0YWNrOw0KIAlpbnQgY3B1Ow0KIA0KIAlp ZiAodW5saWtlbHkoIWZ0cmFjZV9lbmFibGVkIHx8IHN0YWNrX3RyYWNlX2Rpc2FibGVkKSkNCkBA IC0xMjIsNyArMTYzLDI2IEBAIHN0YWNrX3RyYWNlX2NhbGwodW5zaWduZWQgbG9uZyBpcCwgdW5z aWduZWQgbG9uZyBwYXJlbnRfaXApDQogCWlmIChwZXJfY3B1KHRyYWNlX2FjdGl2ZSwgY3B1KSsr ICE9IDApDQogCQlnb3RvIG91dDsNCiANCi0JY2hlY2tfc3RhY2soKTsNCisJLyoNCisJICogV2hl biBmZW50cnkgaXMgdXNlZCwgdGhlIHRyYWNlZCBmdW5jdGlvbiBkb2VzIG5vdCBnZXQNCisJICog aXRzIHN0YWNrIGZyYW1lIHNldCB1cCwgYW5kIHdlIGxvc2UgdGhlIHBhcmVudC4NCisJICogVGhl IGlwIGlzIHByZXR0eSB1c2VsZXNzIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIHRyYWNlcg0KKwkgKiB3 YXMgY2FsbGVkIGJlZm9yZSB0aGF0IGZ1bmN0aW9uIHNldCB1cCBpdHMgc3RhY2sgZnJhbWUuDQor CSAqIEluIHRoaXMgY2FzZSwgd2UgdXNlIHRoZSBwYXJlbnQgaXAuDQorCSAqDQorCSAqIEJ5IGFk ZGluZyB0aGUgcmV0dXJuIGFkZHJlc3Mgb2YgZWl0aGVyIHRoZSBwYXJlbnQgaXANCisJICogb3Ig dGhlIGN1cnJlbnQgaXAgd2UgY2FuIGRpc3JlZ2FyZCBtb3N0IG9mIHRoZSBzdGFjayB1c2FnZQ0K KwkgKiBjYXVzZWQgYnkgdGhlIHN0YWNrIHRyYWNlciBpdHNlbGYuDQorCSAqDQorCSAqIFRoZSBm dW5jdGlvbiB0cmFjZXIgYWx3YXlzIHJlcG9ydHMgdGhlIGFkZHJlc3Mgb2Ygd2hlcmUgdGhlDQor CSAqIG1jb3VudCBjYWxsIHdhcywgYnV0IHRoZSBzdGFjayB3aWxsIGhvbGQgdGhlIHJldHVybiBh ZGRyZXNzLg0KKwkgKi8NCisJaWYgKGZlbnRyeSkNCisJCWlwID0gcGFyZW50X2lwOw0KKwllbHNl DQorCQlpcCArPSBNQ09VTlRfSU5TTl9TSVpFOw0KKw0KKwljaGVja19zdGFjayhpcCwgJnN0YWNr KTsNCiANCiAgb3V0Og0KIAlwZXJfY3B1KHRyYWNlX2FjdGl2ZSwgY3B1KS0tOw0KQEAgLTM1MSw2 ICs0MTEsOCBAQCBzdGF0aWMgX19pbml0IGludCBzdGFja190cmFjZV9pbml0KHZvaWQpDQogCXN0 cnVjdCBkZW50cnkgKmRfdHJhY2VyOw0KIA0KIAlkX3RyYWNlciA9IHRyYWNpbmdfaW5pdF9kZW50 cnkoKTsNCisJaWYgKCFkX3RyYWNlcikNCisJCXJldHVybiAwOw0KIA0KIAl0cmFjZV9jcmVhdGVf ZmlsZSgic3RhY2tfbWF4X3NpemUiLCAwNjQ0LCBkX3RyYWNlciwNCiAJCQkmbWF4X3N0YWNrX3Np emUsICZzdGFja19tYXhfc2l6ZV9mb3BzKTsNCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJh Y2Vfc3RhdC5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3N0YXQuYw0KaW5kZXggOTZjZmZiMi4uODQ3 Zjg4YSAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFjZS90cmFjZV9zdGF0LmMNCisrKyBiL2tlcm5l bC90cmFjZS90cmFjZV9zdGF0LmMNCkBAIC0zMDcsNiArMzA3LDggQEAgc3RhdGljIGludCB0cmFj aW5nX3N0YXRfaW5pdCh2b2lkKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpkX3RyYWNpbmc7DQogDQogCWRf dHJhY2luZyA9IHRyYWNpbmdfaW5pdF9kZW50cnkoKTsNCisJaWYgKCFkX3RyYWNpbmcpDQorCQly ZXR1cm4gMDsNCiANCiAJc3RhdF9kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoInRyYWNlX3N0YXQi LCBkX3RyYWNpbmcpOw0KIAlpZiAoIXN0YXRfZGlyKQ0KZGlmZiAtLWdpdCBhL21tL21lbW9yeS5j IGIvbW0vbWVtb3J5LmMNCmluZGV4IDRmMmFkZDEuLmQ1ZjkxM2IgMTAwNjQ0DQotLS0gYS9tbS9t ZW1vcnkuYw0KKysrIGIvbW0vbWVtb3J5LmMNCkBAIC0yMzA5LDYgKzIzMDksNTMgQEAgaW50IHJl bWFwX3Bmbl9yYW5nZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBh ZGRyLA0KIH0NCiBFWFBPUlRfU1lNQk9MKHJlbWFwX3Bmbl9yYW5nZSk7DQogDQorLyoqDQorICog dm1faW9tYXBfbWVtb3J5IC0gcmVtYXAgbWVtb3J5IHRvIHVzZXJzcGFjZQ0KKyAqIEB2bWE6IHVz ZXIgdm1hIHRvIG1hcCB0bw0KKyAqIEBzdGFydDogc3RhcnQgb2YgYXJlYQ0KKyAqIEBsZW46IHNp emUgb2YgYXJlYQ0KKyAqDQorICogVGhpcyBpcyBhIHNpbXBsaWZpZWQgaW9fcmVtYXBfcGZuX3Jh bmdlKCkgZm9yIGNvbW1vbiBkcml2ZXIgdXNlLiBUaGUNCisgKiBkcml2ZXIganVzdCBuZWVkcyB0 byBnaXZlIHVzIHRoZSBwaHlzaWNhbCBtZW1vcnkgcmFuZ2UgdG8gYmUgbWFwcGVkLA0KKyAqIHdl J2xsIGZpZ3VyZSBvdXQgdGhlIHJlc3QgZnJvbSB0aGUgdm1hIGluZm9ybWF0aW9uLg0KKyAqDQor ICogTk9URSEgU29tZSBkcml2ZXJzIG1pZ2h0IHdhbnQgdG8gdHdlYWsgdm1hLT52bV9wYWdlX3By b3QgZmlyc3QgdG8gZ2V0DQorICogd2hhdGV2ZXIgd3JpdGUtY29tYmluaW5nIGRldGFpbHMgb3Ig c2ltaWxhci4NCisgKi8NCitpbnQgdm1faW9tYXBfbWVtb3J5KHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLCBwaHlzX2FkZHJfdCBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW4pDQorew0KKwl1bnNp Z25lZCBsb25nIHZtX2xlbiwgcGZuLCBwYWdlczsNCisNCisJLyogQ2hlY2sgdGhhdCB0aGUgcGh5 c2ljYWwgbWVtb3J5IGFyZWEgcGFzc2VkIGluIGxvb2tzIHZhbGlkICovDQorCWlmIChzdGFydCAr IGxlbiA8IHN0YXJ0KQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorCS8qDQorCSAqIFlvdSAqcmVhbGx5 KiBzaG91bGRuJ3QgbWFwIHRoaW5ncyB0aGF0IGFyZW4ndCBwYWdlLWFsaWduZWQsDQorCSAqIGJ1 dCB3ZSd2ZSBoaXN0b3JpY2FsbHkgYWxsb3dlZCBpdCBiZWNhdXNlIElPIG1lbW9yeSBtaWdodA0K KwkgKiBqdXN0IGhhdmUgc21hbGxlciBhbGlnbm1lbnQuDQorCSAqLw0KKwlsZW4gKz0gc3RhcnQg JiB+UEFHRV9NQVNLOw0KKwlwZm4gPSBzdGFydCA+PiBQQUdFX1NISUZUOw0KKwlwYWdlcyA9IChs ZW4gKyB+UEFHRV9NQVNLKSA+PiBQQUdFX1NISUZUOw0KKwlpZiAocGZuICsgcGFnZXMgPCBwZm4p DQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJLyogV2Ugc3RhcnQgdGhlIG1hcHBpbmcgJ3ZtX3Bn b2ZmJyBwYWdlcyBpbnRvIHRoZSBhcmVhICovDQorCWlmICh2bWEtPnZtX3Bnb2ZmID4gcGFnZXMp DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJcGZuICs9IHZtYS0+dm1fcGdvZmY7DQorCXBhZ2VzIC09 IHZtYS0+dm1fcGdvZmY7DQorDQorCS8qIENhbiB3ZSBmaXQgYWxsIG9mIHRoZSBtYXBwaW5nPyAq Lw0KKwl2bV9sZW4gPSB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQ7DQorCWlmICh2bV9sZW4g Pj4gUEFHRV9TSElGVCA+IHBhZ2VzKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCS8qIE9rLCBs ZXQgaXQgcmlwICovDQorCXJldHVybiBpb19yZW1hcF9wZm5fcmFuZ2Uodm1hLCB2bWEtPnZtX3N0 YXJ0LCBwZm4sIHZtX2xlbiwgdm1hLT52bV9wYWdlX3Byb3QpOw0KK30NCitFWFBPUlRfU1lNQk9M KHZtX2lvbWFwX21lbW9yeSk7DQorDQogc3RhdGljIGludCBhcHBseV90b19wdGVfcmFuZ2Uoc3Ry dWN0IG1tX3N0cnVjdCAqbW0sIHBtZF90ICpwbWQsDQogCQkJCSAgICAgdW5zaWduZWQgbG9uZyBh ZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwNCiAJCQkJICAgICBwdGVfZm5fdCBmbiwgdm9pZCAqZGF0 YSkNCmRpZmYgLS1naXQgYS9uZXQvYXRtL2NvbW1vbi5jIGIvbmV0L2F0bS9jb21tb24uYw0KaW5k ZXggMGNhMDZlOC4uNDNiNmJmZSAxMDA2NDQNCi0tLSBhL25ldC9hdG0vY29tbW9uLmMNCisrKyBi L25ldC9hdG0vY29tbW9uLmMNCkBAIC01MDAsNiArNTAwLDggQEAgaW50IHZjY19yZWN2bXNnKHN0 cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNn LA0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KIAlpbnQgY29waWVkLCBlcnJvciA9IC1FSU5WQUw7 DQogDQorCW1zZy0+bXNnX25hbWVsZW4gPSAwOw0KKw0KIAlpZiAoc29jay0+c3RhdGUgIT0gU1Nf Q09OTkVDVEVEKQ0KIAkJcmV0dXJuIC1FTk9UQ09OTjsNCiAJaWYgKGZsYWdzICYgfk1TR19ET05U V0FJVCkJCS8qIG9ubHkgaGFuZGxlIE1TR19ET05UV0FJVCAqLw0KZGlmZiAtLWdpdCBhL25ldC9h eDI1L2FmX2F4MjUuYyBiL25ldC9heDI1L2FmX2F4MjUuYw0KaW5kZXggYjA0YTZlZi4uODZhYzM3 ZiAxMDA2NDQNCi0tLSBhL25ldC9heDI1L2FmX2F4MjUuYw0KKysrIGIvbmV0L2F4MjUvYWZfYXgy NS5jDQpAQCAtMTY0MSw2ICsxNjQxLDcgQEAgc3RhdGljIGludCBheDI1X3JlY3Ztc2coc3RydWN0 IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLA0KIAkJYXgyNV9hZGRyZXNzIHNyYzsN CiAJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1hYyA9IHNrYl9tYWNfaGVhZGVyKHNrYik7DQogDQor CQltZW1zZXQoc2F4LCAwLCBzaXplb2Yoc3RydWN0IGZ1bGxfc29ja2FkZHJfYXgyNSkpOw0KIAkJ YXgyNV9hZGRyX3BhcnNlKG1hYyArIDEsIHNrYi0+ZGF0YSAtIG1hYyAtIDEsICZzcmMsIE5VTEws DQogCQkJCSZkaWdpLCBOVUxMLCBOVUxMKTsNCiAJCXNheC0+c2F4MjVfZmFtaWx5ID0gQUZfQVgy NTsNCmRpZmYgLS1naXQgYS9uZXQvYmx1ZXRvb3RoL2FmX2JsdWV0b290aC5jIGIvbmV0L2JsdWV0 b290aC9hZl9ibHVldG9vdGguYw0KaW5kZXggMDYyMTI0Yy4uODM4ZjExMyAxMDA2NDQNCi0tLSBh L25ldC9ibHVldG9vdGgvYWZfYmx1ZXRvb3RoLmMNCisrKyBiL25ldC9ibHVldG9vdGgvYWZfYmx1 ZXRvb3RoLmMNCkBAIC0yNDUsNiArMjQ1LDggQEAgaW50IGJ0X3NvY2tfcmVjdm1zZyhzdHJ1Y3Qg a2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWlmIChmbGFncyAmIChNU0dfT09C KSkNCiAJCXJldHVybiAtRU9QTk9UU1VQUDsNCiANCisJbXNnLT5tc2dfbmFtZWxlbiA9IDA7DQor DQogCXNrYiA9IHNrYl9yZWN2X2RhdGFncmFtKHNrLCBmbGFncywgbm9ibG9jaywgJmVycik7DQog CWlmICghc2tiKSB7DQogCQlpZiAoc2stPnNrX3NodXRkb3duICYgUkNWX1NIVVRET1dOKQ0KQEAg LTI1Miw4ICsyNTQsNiBAQCBpbnQgYnRfc29ja19yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwg c3RydWN0IHNvY2tldCAqc29jaywNCiAJCXJldHVybiBlcnI7DQogCX0NCiANCi0JbXNnLT5tc2df bmFtZWxlbiA9IDA7DQotDQogCWNvcGllZCA9IHNrYi0+bGVuOw0KIAlpZiAobGVuIDwgY29waWVk KSB7DQogCQltc2ctPm1zZ19mbGFncyB8PSBNU0dfVFJVTkM7DQpkaWZmIC0tZ2l0IGEvbmV0L2Js dWV0b290aC9yZmNvbW0vc29jay5jIGIvbmV0L2JsdWV0b290aC9yZmNvbW0vc29jay5jDQppbmRl eCAxNGM0ODY0Li44MmNlMTY0IDEwMDY0NA0KLS0tIGEvbmV0L2JsdWV0b290aC9yZmNvbW0vc29j ay5jDQorKysgYi9uZXQvYmx1ZXRvb3RoL3JmY29tbS9zb2NrLmMNCkBAIC02MjcsNiArNjI3LDcg QEAgc3RhdGljIGludCByZmNvbW1fc29ja19yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3Ry dWN0IHNvY2tldCAqc29jaywNCiANCiAJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChSRkNPTU1fREVG RVJfU0VUVVAsICZkLT5mbGFncykpIHsNCiAJCXJmY29tbV9kbGNfYWNjZXB0KGQpOw0KKwkJbXNn LT5tc2dfbmFtZWxlbiA9IDA7DQogCQlyZXR1cm4gMDsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL25l dC9jYWlmL2NhaWZfc29ja2V0LmMgYi9uZXQvY2FpZi9jYWlmX3NvY2tldC5jDQppbmRleCBhOTg2 MjgwLi41M2E4ZTM3IDEwMDY0NA0KLS0tIGEvbmV0L2NhaWYvY2FpZl9zb2NrZXQuYw0KKysrIGIv bmV0L2NhaWYvY2FpZl9zb2NrZXQuYw0KQEAgLTMyMCw2ICszMjAsOCBAQCBzdGF0aWMgaW50IGNh aWZfc2VxcGt0X3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2Nr LA0KIAlpZiAobS0+bXNnX2ZsYWdzJk1TR19PT0IpDQogCQlnb3RvIHJlYWRfZXJyb3I7DQogDQor CW0tPm1zZ19uYW1lbGVuID0gMDsNCisNCiAJc2tiID0gc2tiX3JlY3ZfZGF0YWdyYW0oc2ssIGZs YWdzLCAwICwgJnJldCk7DQogCWlmICghc2tiKQ0KIAkJZ290byByZWFkX2Vycm9yOw0KZGlmZiAt LWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMNCmluZGV4IDcyMGFlYTAuLjhl NDU1YjggMTAwNjQ0DQotLS0gYS9uZXQvY29yZS9kZXYuYw0KKysrIGIvbmV0L2NvcmUvZGV2LmMN CkBAIC0xNjE5LDYgKzE2MTksNyBAQCBpbnQgZGV2X2ZvcndhcmRfc2tiKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQogCXNrYi0+bWFyayA9IDA7DQogCXNlY3Bh dGhfcmVzZXQoc2tiKTsNCiAJbmZfcmVzZXQoc2tiKTsNCisJbmZfcmVzZXRfdHJhY2Uoc2tiKTsN CiAJcmV0dXJuIG5ldGlmX3J4KHNrYik7DQogfQ0KIEVYUE9SVF9TWU1CT0xfR1BMKGRldl9mb3J3 YXJkX3NrYik7DQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2X2FkZHJfbGlzdHMuYyBiL25ldC9j b3JlL2Rldl9hZGRyX2xpc3RzLmMNCmluZGV4IDAzODdkYTAuLmNkMDk0MTQgMTAwNjQ0DQotLS0g YS9uZXQvY29yZS9kZXZfYWRkcl9saXN0cy5jDQorKysgYi9uZXQvY29yZS9kZXZfYWRkcl9saXN0 cy5jDQpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgaW50IF9faHdfYWRkcl9hZGRfZXgoc3RydWN0 IG5ldGRldl9od19hZGRyX2xpc3QgKmxpc3QsDQogCWhhLT50eXBlID0gYWRkcl90eXBlOw0KIAlo YS0+cmVmY291bnQgPSAxOw0KIAloYS0+Z2xvYmFsX3VzZSA9IGdsb2JhbDsNCi0JaGEtPnN5bmNl ZCA9IGZhbHNlOw0KKwloYS0+c3luY2VkID0gMDsNCiAJbGlzdF9hZGRfdGFpbF9yY3UoJmhhLT5s aXN0LCAmbGlzdC0+bGlzdCk7DQogCWxpc3QtPmNvdW50Kys7DQogCXJldHVybiAwOw0KQEAgLTE1 NSw3ICsxNTUsNyBAQCBpbnQgX19od19hZGRyX3N5bmMoc3RydWN0IG5ldGRldl9od19hZGRyX2xp c3QgKnRvX2xpc3QsDQogCQkJCQkgICAgYWRkcl9sZW4sIGhhLT50eXBlKTsNCiAJCQlpZiAoZXJy KQ0KIAkJCQlicmVhazsNCi0JCQloYS0+c3luY2VkID0gdHJ1ZTsNCisJCQloYS0+c3luY2VkKys7 DQogCQkJaGEtPnJlZmNvdW50Kys7DQogCQl9IGVsc2UgaWYgKGhhLT5yZWZjb3VudCA9PSAxKSB7 DQogCQkJX19od19hZGRyX2RlbCh0b19saXN0LCBoYS0+YWRkciwgYWRkcl9sZW4sIGhhLT50eXBl KTsNCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBfX2h3X2FkZHJfdW5zeW5jKHN0cnVjdCBuZXRk ZXZfaHdfYWRkcl9saXN0ICp0b19saXN0LA0KIAkJaWYgKGhhLT5zeW5jZWQpIHsNCiAJCQlfX2h3 X2FkZHJfZGVsKHRvX2xpc3QsIGhhLT5hZGRyLA0KIAkJCQkgICAgICBhZGRyX2xlbiwgaGEtPnR5 cGUpOw0KLQkJCWhhLT5zeW5jZWQgPSBmYWxzZTsNCisJCQloYS0+c3luY2VkLS07DQogCQkJX19o d19hZGRyX2RlbChmcm9tX2xpc3QsIGhhLT5hZGRyLA0KIAkJCQkgICAgICBhZGRyX2xlbiwgaGEt PnR5cGUpOw0KIAkJfQ0KZGlmZiAtLWdpdCBhL25ldC9jb3JlL3J0bmV0bGluay5jIGIvbmV0L2Nv cmUvcnRuZXRsaW5rLmMNCmluZGV4IDNiNWU2ODAuLjViN2Q1ZjIgMTAwNjQ0DQotLS0gYS9uZXQv Y29yZS9ydG5ldGxpbmsuYw0KKysrIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMNCkBAIC0xMDY0LDcg KzEwNjQsNyBAQCBzdGF0aWMgaW50IHJ0bmxfZHVtcF9pZmluZm8oc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQ0KIAlyY3VfcmVhZF9sb2NrKCk7DQogCWNi LT5zZXEgPSBuZXQtPmRldl9iYXNlX3NlcTsNCiANCi0JaWYgKG5sbXNnX3BhcnNlKGNiLT5ubGgs IHNpemVvZihzdHJ1Y3QgcnRnZW5tc2cpLCB0YiwgSUZMQV9NQVgsDQorCWlmIChubG1zZ19wYXJz ZShjYi0+bmxoLCBzaXplb2Yoc3RydWN0IGlmaW5mb21zZyksIHRiLCBJRkxBX01BWCwNCiAJCQlp ZmxhX3BvbGljeSkgPj0gMCkgew0KIA0KIAkJaWYgKHRiW0lGTEFfRVhUX01BU0tdKQ0KQEAgLTE5 MDcsNyArMTkwNyw3IEBAIHN0YXRpYyB1MTYgcnRubF9jYWxjaXQoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG5sbXNnaGRyICpubGgpDQogCXUzMiBleHRfZmlsdGVyX21hc2sgPSAwOw0KIAl1 MTYgbWluX2lmaW5mb19kdW1wX3NpemUgPSAwOw0KIA0KLQlpZiAobmxtc2dfcGFyc2UobmxoLCBz aXplb2Yoc3RydWN0IHJ0Z2VubXNnKSwgdGIsIElGTEFfTUFYLA0KKwlpZiAobmxtc2dfcGFyc2Uo bmxoLCBzaXplb2Yoc3RydWN0IGlmaW5mb21zZyksIHRiLCBJRkxBX01BWCwNCiAJCQlpZmxhX3Bv bGljeSkgPj0gMCkgew0KIAkJaWYgKHRiW0lGTEFfRVhUX01BU0tdKQ0KIAkJCWV4dF9maWx0ZXJf bWFzayA9IG5sYV9nZXRfdTMyKHRiW0lGTEFfRVhUX01BU0tdKTsNCmRpZmYgLS1naXQgYS9uZXQv aXB2NC9lc3A0LmMgYi9uZXQvaXB2NC9lc3A0LmMNCmluZGV4IDUzMDc4N2IuLjIzOGZjM2IgMTAw NjQ0DQotLS0gYS9uZXQvaXB2NC9lc3A0LmMNCisrKyBiL25ldC9pcHY0L2VzcDQuYw0KQEAgLTEz Nyw4ICsxMzcsNiBAQCBzdGF0aWMgaW50IGVzcF9vdXRwdXQoc3RydWN0IHhmcm1fc3RhdGUgKngs IHN0cnVjdCBza19idWZmICpza2IpDQogDQogCS8qIHNrYiBpcyBwdXJlIHBheWxvYWQgdG8gZW5j cnlwdCAqLw0KIA0KLQllcnIgPSAtRU5PTUVNOw0KLQ0KIAllc3AgPSB4LT5kYXRhOw0KIAlhZWFk ID0gZXNwLT5hZWFkOw0KIAlhbGVuID0gY3J5cHRvX2FlYWRfYXV0aHNpemUoYWVhZCk7DQpAQCAt MTc0LDggKzE3MiwxMCBAQCBzdGF0aWMgaW50IGVzcF9vdXRwdXQoc3RydWN0IHhmcm1fc3RhdGUg KngsIHN0cnVjdCBza19idWZmICpza2IpDQogCX0NCiANCiAJdG1wID0gZXNwX2FsbG9jX3RtcChh ZWFkLCBuZnJhZ3MgKyBzZ2xpc3RzLCBzZXFoaWxlbik7DQotCWlmICghdG1wKQ0KKwlpZiAoIXRt cCkgew0KKwkJZXJyID0gLUVOT01FTTsNCiAJCWdvdG8gZXJyb3I7DQorCX0NCiANCiAJc2VxaGkg PSBlc3BfdG1wX3NlcWhpKHRtcCk7DQogCWl2ID0gZXNwX3RtcF9pdihhZWFkLCB0bXAsIHNlcWhp bGVuKTsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9mcmFnbWVudC5jIGIvbmV0L2lwdjQvaXBf ZnJhZ21lbnQuYw0KaW5kZXggYjJjZmU4My4uOGY0NDFiMiAxMDA2NDQNCi0tLSBhL25ldC9pcHY0 L2lwX2ZyYWdtZW50LmMNCisrKyBiL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMNCkBAIC0yNTEsOCAr MjUxLDcgQEAgc3RhdGljIHZvaWQgaXBfZXhwaXJlKHVuc2lnbmVkIGxvbmcgYXJnKQ0KIAkJaWYg KCFoZWFkLT5kZXYpDQogCQkJZ290byBvdXRfcmN1X3VubG9jazsNCiANCi0JCS8qIHNrYiBkc3Qg aXMgc3RhbGUsIGRyb3AgaXQsIGFuZCBwZXJmb3JtIHJvdXRlIGxvb2t1cCBhZ2FpbiAqLw0KLQkJ c2tiX2RzdF9kcm9wKGhlYWQpOw0KKwkJLyogc2tiIGhhcyBubyBkc3QsIHBlcmZvcm0gcm91dGUg bG9va3VwIGFnYWluICovDQogCQlpcGggPSBpcF9oZHIoaGVhZCk7DQogCQllcnIgPSBpcF9yb3V0 ZV9pbnB1dF9ub3JlZihoZWFkLCBpcGgtPmRhZGRyLCBpcGgtPnNhZGRyLA0KIAkJCQkJICAgaXBo LT50b3MsIGhlYWQtPmRldik7DQpAQCAtNTE4LDggKzUxNywxNiBAQCBmb3VuZDoNCiAJCXFwLT5x Lmxhc3RfaW4gfD0gSU5FVF9GUkFHX0ZJUlNUX0lOOw0KIA0KIAlpZiAocXAtPnEubGFzdF9pbiA9 PSAoSU5FVF9GUkFHX0ZJUlNUX0lOIHwgSU5FVF9GUkFHX0xBU1RfSU4pICYmDQotCSAgICBxcC0+ cS5tZWF0ID09IHFwLT5xLmxlbikNCi0JCXJldHVybiBpcF9mcmFnX3JlYXNtKHFwLCBwcmV2LCBk ZXYpOw0KKwkgICAgcXAtPnEubWVhdCA9PSBxcC0+cS5sZW4pIHsNCisJCXVuc2lnbmVkIGxvbmcg b3JlZmRzdCA9IHNrYi0+X3NrYl9yZWZkc3Q7DQorDQorCQlza2ItPl9za2JfcmVmZHN0ID0gMFVM Ow0KKwkJZXJyID0gaXBfZnJhZ19yZWFzbShxcCwgcHJldiwgZGV2KTsNCisJCXNrYi0+X3NrYl9y ZWZkc3QgPSBvcmVmZHN0Ow0KKwkJcmV0dXJuIGVycjsNCisJfQ0KKw0KKwlza2JfZHN0X2Ryb3Ao c2tiKTsNCiANCiAJd3JpdGVfbG9jaygmaXA0X2ZyYWdzLmxvY2spOw0KIAlsaXN0X21vdmVfdGFp bCgmcXAtPnEubHJ1X2xpc3QsICZxcC0+cS5uZXQtPmxydV9saXN0KTsNCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9zeW5jb29raWVzLmMgYi9uZXQvaXB2NC9zeW5jb29raWVzLmMNCmluZGV4IDc2OWMw ZTkuLjhhMWJlZDIgMTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9zeW5jb29raWVzLmMNCisrKyBiL25l dC9pcHY0L3N5bmNvb2tpZXMuYw0KQEAgLTM0Nyw4ICszNDcsOCBAQCBzdHJ1Y3Qgc29jayAqY29v a2llX3Y0X2NoZWNrKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCiAJICog aGFzbid0IGNoYW5nZWQgc2luY2Ugd2UgcmVjZWl2ZWQgdGhlIG9yaWdpbmFsIHN5biwgYnV0IEkg c2VlDQogCSAqIG5vIGVhc3kgd2F5IHRvIGRvIHRoaXMuDQogCSAqLw0KLQlmbG93aTRfaW5pdF9v dXRwdXQoJmZsNCwgMCwgc2stPnNrX21hcmssIFJUX0NPTk5fRkxBR1Moc2spLA0KLQkJCSAgIFJU X1NDT1BFX1VOSVZFUlNFLCBJUFBST1RPX1RDUCwNCisJZmxvd2k0X2luaXRfb3V0cHV0KCZmbDQs IHNrLT5za19ib3VuZF9kZXZfaWYsIHNrLT5za19tYXJrLA0KKwkJCSAgIFJUX0NPTk5fRkxBR1Mo c2spLCBSVF9TQ09QRV9VTklWRVJTRSwgSVBQUk9UT19UQ1AsDQogCQkJICAgaW5ldF9za19mbG93 aV9mbGFncyhzayksDQogCQkJICAgKG9wdCAmJiBvcHQtPnNycikgPyBvcHQtPmZhZGRyIDogaXJl cS0+cm10X2FkZHIsDQogCQkJICAgaXJlcS0+bG9jX2FkZHIsIHRoLT5zb3VyY2UsIHRoLT5kZXN0 KTsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1 dC5jDQppbmRleCAzMTI0ZTE3Li44NzJiNDFkIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvdGNwX2lu cHV0LmMNCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jDQpAQCAtMTE1LDYgKzExNSw3IEBAIGlu dCBzeXNjdGxfdGNwX2FiYyBfX3JlYWRfbW9zdGx5Ow0KICNkZWZpbmUgRkxBR19EU0FDS0lOR19B Q0sJMHg4MDAgLyogU0FDSyBibG9ja3MgY29udGFpbmVkIEQtU0FDSyBpbmZvICovDQogI2RlZmlu ZSBGTEFHX05PTkhFQURfUkVUUkFOU19BQ0tFRAkweDEwMDAgLyogTm9uLWhlYWQgcmV4bWl0dGVk IGRhdGEgd2FzIEFDS2VkICovDQogI2RlZmluZSBGTEFHX1NBQ0tfUkVORUdJTkcJMHgyMDAwIC8q IHNuZF91bmEgYWR2YW5jZWQgdG8gYSBzYWNrZWQgc2VxICovDQorI2RlZmluZSBGTEFHX1VQREFU RV9UU19SRUNFTlQJMHg0MDAwIC8qIHRjcF9yZXBsYWNlX3RzX3JlY2VudCgpICovDQogDQogI2Rl ZmluZSBGTEFHX0FDS0VECQkoRkxBR19EQVRBX0FDS0VEfEZMQUdfU1lOX0FDS0VEKQ0KICNkZWZp bmUgRkxBR19OT1RfRFVQCQkoRkxBR19EQVRBfEZMQUdfV0lOX1VQREFURXxGTEFHX0FDS0VEKQ0K QEAgLTM3MjMsNiArMzcyNCwyNyBAQCBzdGF0aWMgdm9pZCB0Y3Bfc2VuZF9jaGFsbGVuZ2VfYWNr KHN0cnVjdCBzb2NrICpzaykNCiAJfQ0KIH0NCiANCitzdGF0aWMgdm9pZCB0Y3Bfc3RvcmVfdHNf cmVjZW50KHN0cnVjdCB0Y3Bfc29jayAqdHApDQorew0KKwl0cC0+cnhfb3B0LnRzX3JlY2VudCA9 IHRwLT5yeF9vcHQucmN2X3RzdmFsOw0KKwl0cC0+cnhfb3B0LnRzX3JlY2VudF9zdGFtcCA9IGdl dF9zZWNvbmRzKCk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHRjcF9yZXBsYWNlX3RzX3JlY2VudChz dHJ1Y3QgdGNwX3NvY2sgKnRwLCB1MzIgc2VxKQ0KK3sNCisJaWYgKHRwLT5yeF9vcHQuc2F3X3Rz dGFtcCAmJiAhYWZ0ZXIoc2VxLCB0cC0+cmN2X3d1cCkpIHsNCisJCS8qIFBBV1MgYnVnIHdvcmth cm91bmQgd3J0LiBBQ0sgZnJhbWVzLCB0aGUgUEFXUyBkaXNjYXJkDQorCQkgKiBleHRyYSBjaGVj ayBiZWxvdyBtYWtlcyBzdXJlIHRoaXMgY2FuIG9ubHkgaGFwcGVuDQorCQkgKiBmb3IgcHVyZSBB Q0sgZnJhbWVzLiAgLURhdmVNDQorCQkgKg0KKwkJICogTm90IG9ubHksIGFsc28gaXQgb2NjdXJz IGZvciBleHBpcmVkIHRpbWVzdGFtcHMuDQorCQkgKi8NCisNCisJCWlmICh0Y3BfcGF3c19jaGVj aygmdHAtPnJ4X29wdCwgMCkpDQorCQkJdGNwX3N0b3JlX3RzX3JlY2VudCh0cCk7DQorCX0NCit9 DQorDQogLyogVGhpcyByb3V0aW5lIGRlYWxzIHdpdGggaW5jb21pbmcgYWNrcywgYnV0IG5vdCBv dXRnb2luZyBvbmVzLiAqLw0KIHN0YXRpYyBpbnQgdGNwX2FjayhzdHJ1Y3Qgc29jayAqc2ssIGNv bnN0IHN0cnVjdCBza19idWZmICpza2IsIGludCBmbGFnKQ0KIHsNCkBAIC0zNzcxLDYgKzM3OTMs MTIgQEAgc3RhdGljIGludCB0Y3BfYWNrKHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHNr X2J1ZmYgKnNrYiwgaW50IGZsYWcpDQogCXByaW9yX2ZhY2tldHMgPSB0cC0+ZmFja2V0c19vdXQ7 DQogCXByaW9yX2luX2ZsaWdodCA9IHRjcF9wYWNrZXRzX2luX2ZsaWdodCh0cCk7DQogDQorCS8q IHRzX3JlY2VudCB1cGRhdGUgbXVzdCBiZSBtYWRlIGFmdGVyIHdlIGFyZSBzdXJlIHRoYXQgdGhl IHBhY2tldA0KKwkgKiBpcyBpbiB3aW5kb3cuDQorCSAqLw0KKwlpZiAoZmxhZyAmIEZMQUdfVVBE QVRFX1RTX1JFQ0VOVCkNCisJCXRjcF9yZXBsYWNlX3RzX3JlY2VudCh0cCwgVENQX1NLQl9DQihz a2IpLT5zZXEpOw0KKw0KIAlpZiAoIShmbGFnICYgRkxBR19TTE9XUEFUSCkgJiYgYWZ0ZXIoYWNr LCBwcmlvcl9zbmRfdW5hKSkgew0KIAkJLyogV2luZG93IGlzIGNvbnN0YW50LCBwdXJlIGZvcndh cmQgYWR2YW5jZS4NCiAJCSAqIE5vIG1vcmUgY2hlY2tzIGFyZSByZXF1aXJlZC4NCkBAIC00MDYx LDI3ICs0MDg5LDYgQEAgY29uc3QgdTggKnRjcF9wYXJzZV9tZDVzaWdfb3B0aW9uKGNvbnN0IHN0 cnVjdCB0Y3BoZHIgKnRoKQ0KIEVYUE9SVF9TWU1CT0wodGNwX3BhcnNlX21kNXNpZ19vcHRpb24p Ow0KICNlbmRpZg0KIA0KLXN0YXRpYyBpbmxpbmUgdm9pZCB0Y3Bfc3RvcmVfdHNfcmVjZW50KHN0 cnVjdCB0Y3Bfc29jayAqdHApDQotew0KLQl0cC0+cnhfb3B0LnRzX3JlY2VudCA9IHRwLT5yeF9v cHQucmN2X3RzdmFsOw0KLQl0cC0+cnhfb3B0LnRzX3JlY2VudF9zdGFtcCA9IGdldF9zZWNvbmRz KCk7DQotfQ0KLQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCB0Y3BfcmVwbGFjZV90c19yZWNlbnQoc3Ry dWN0IHRjcF9zb2NrICp0cCwgdTMyIHNlcSkNCi17DQotCWlmICh0cC0+cnhfb3B0LnNhd190c3Rh bXAgJiYgIWFmdGVyKHNlcSwgdHAtPnJjdl93dXApKSB7DQotCQkvKiBQQVdTIGJ1ZyB3b3JrYXJv dW5kIHdydC4gQUNLIGZyYW1lcywgdGhlIFBBV1MgZGlzY2FyZA0KLQkJICogZXh0cmEgY2hlY2sg YmVsb3cgbWFrZXMgc3VyZSB0aGlzIGNhbiBvbmx5IGhhcHBlbg0KLQkJICogZm9yIHB1cmUgQUNL IGZyYW1lcy4gIC1EYXZlTQ0KLQkJICoNCi0JCSAqIE5vdCBvbmx5LCBhbHNvIGl0IG9jY3VycyBm b3IgZXhwaXJlZCB0aW1lc3RhbXBzLg0KLQkJICovDQotDQotCQlpZiAodGNwX3Bhd3NfY2hlY2so JnRwLT5yeF9vcHQsIDApKQ0KLQkJCXRjcF9zdG9yZV90c19yZWNlbnQodHApOw0KLQl9DQotfQ0K LQ0KIC8qIFNvcnJ5LCBQQVdTIGFzIHNwZWNpZmllZCBpcyBicm9rZW4gd3J0LiBwdXJlLUFDS3Mg LURhdmVNDQogICoNCiAgKiBJdCBpcyBub3QgZmF0YWwuIElmIHRoaXMgQUNLIGRvZXMgX25vdF8g Y2hhbmdlIGNyaXRpY2FsIHN0YXRlIChzZXFzLCB3aW5kb3cpDQpAQCAtNTU1MiwxNCArNTU1OSwx MCBAQCBzbG93X3BhdGg6DQogCQlyZXR1cm4gMDsNCiANCiBzdGVwNToNCi0JaWYgKHRoLT5hY2sg JiYgdGNwX2Fjayhzaywgc2tiLCBGTEFHX1NMT1dQQVRIKSA8IDApDQorCWlmICh0aC0+YWNrICYm DQorCSAgICB0Y3BfYWNrKHNrLCBza2IsIEZMQUdfU0xPV1BBVEggfCBGTEFHX1VQREFURV9UU19S RUNFTlQpIDwgMCkNCiAJCWdvdG8gZGlzY2FyZDsNCiANCi0JLyogdHNfcmVjZW50IHVwZGF0ZSBt dXN0IGJlIG1hZGUgYWZ0ZXIgd2UgYXJlIHN1cmUgdGhhdCB0aGUgcGFja2V0DQotCSAqIGlzIGlu IHdpbmRvdy4NCi0JICovDQotCXRjcF9yZXBsYWNlX3RzX3JlY2VudCh0cCwgVENQX1NLQl9DQihz a2IpLT5zZXEpOw0KLQ0KIAl0Y3BfcmN2X3J0dF9tZWFzdXJlX3RzKHNrLCBza2IpOw0KIA0KIAkv KiBQcm9jZXNzIHVyZ2VudCBkYXRhLiAqLw0KQEAgLTU5MjMsNyArNTkyNiw4IEBAIGludCB0Y3Bf cmN2X3N0YXRlX3Byb2Nlc3Moc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0K IA0KIAkvKiBzdGVwIDU6IGNoZWNrIHRoZSBBQ0sgZmllbGQgKi8NCiAJaWYgKHRoLT5hY2spIHsN Ci0JCWludCBhY2NlcHRhYmxlID0gdGNwX2Fjayhzaywgc2tiLCBGTEFHX1NMT1dQQVRIKSA+IDA7 DQorCQlpbnQgYWNjZXB0YWJsZSA9IHRjcF9hY2soc2ssIHNrYiwgRkxBR19TTE9XUEFUSCB8DQor CQkJCQkJICBGTEFHX1VQREFURV9UU19SRUNFTlQpID4gMDsNCiANCiAJCXN3aXRjaCAoc2stPnNr X3N0YXRlKSB7DQogCQljYXNlIFRDUF9TWU5fUkVDVjoNCkBAIC02MDMwLDExICs2MDM0LDYgQEAg aW50IHRjcF9yY3Zfc3RhdGVfcHJvY2VzcyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZm ICpza2IsDQogCX0gZWxzZQ0KIAkJZ290byBkaXNjYXJkOw0KIA0KLQkvKiB0c19yZWNlbnQgdXBk YXRlIG11c3QgYmUgbWFkZSBhZnRlciB3ZSBhcmUgc3VyZSB0aGF0IHRoZSBwYWNrZXQNCi0JICog aXMgaW4gd2luZG93Lg0KLQkgKi8NCi0JdGNwX3JlcGxhY2VfdHNfcmVjZW50KHRwLCBUQ1BfU0tC X0NCKHNrYiktPnNlcSk7DQotDQogCS8qIHN0ZXAgNjogY2hlY2sgdGhlIFVSRyBiaXQgKi8NCiAJ dGNwX3VyZyhzaywgc2tiLCB0aCk7DQogDQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYu YyBiL25ldC9pcHY2L2FkZHJjb25mLmMNCmluZGV4IDg1ODljMmQuLmQ4NDAzM2IgMTAwNjQ0DQot LS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jDQorKysgYi9uZXQvaXB2Ni9hZGRyY29uZi5jDQpAQCAt MjQwNCw2ICsyNDA0LDkgQEAgc3RhdGljIHZvaWQgc2l0X2FkZF92NF9hZGRycyhzdHJ1Y3QgaW5l dDZfZGV2ICppZGV2KQ0KIHN0YXRpYyB2b2lkIGluaXRfbG9vcGJhY2soc3RydWN0IG5ldF9kZXZp Y2UgKmRldikNCiB7DQogCXN0cnVjdCBpbmV0Nl9kZXYgICppZGV2Ow0KKwlzdHJ1Y3QgbmV0X2Rl dmljZSAqc3BfZGV2Ow0KKwlzdHJ1Y3QgaW5ldDZfaWZhZGRyICpzcF9pZmE7DQorCXN0cnVjdCBy dDZfaW5mbyAqc3BfcnQ7DQogDQogCS8qIDo6MSAqLw0KIA0KQEAgLTI0MTUsNiArMjQxOCwzMCBA QCBzdGF0aWMgdm9pZCBpbml0X2xvb3BiYWNrKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQogCX0N CiANCiAJYWRkX2FkZHIoaWRldiwgJmluNmFkZHJfbG9vcGJhY2ssIDEyOCwgSUZBX0hPU1QpOw0K Kw0KKwkvKiBBZGQgcm91dGVzIHRvIG90aGVyIGludGVyZmFjZSdzIElQdjYgYWRkcmVzc2VzICov DQorCWZvcl9lYWNoX25ldGRldihkZXZfbmV0KGRldiksIHNwX2Rldikgew0KKwkJaWYgKCFzdHJj bXAoc3BfZGV2LT5uYW1lLCBkZXYtPm5hbWUpKQ0KKwkJCWNvbnRpbnVlOw0KKw0KKwkJaWRldiA9 IF9faW42X2Rldl9nZXQoc3BfZGV2KTsNCisJCWlmICghaWRldikNCisJCQljb250aW51ZTsNCisN CisJCXJlYWRfbG9ja19iaCgmaWRldi0+bG9jayk7DQorCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNw X2lmYSwgJmlkZXYtPmFkZHJfbGlzdCwgaWZfbGlzdCkgew0KKw0KKwkJCWlmIChzcF9pZmEtPmZs YWdzICYgKElGQV9GX0RBREZBSUxFRCB8IElGQV9GX1RFTlRBVElWRSkpDQorCQkJCWNvbnRpbnVl Ow0KKw0KKwkJCXNwX3J0ID0gYWRkcmNvbmZfZHN0X2FsbG9jKGlkZXYsICZzcF9pZmEtPmFkZHIs IDApOw0KKw0KKwkJCS8qIEZhaWx1cmUgY2FzZXMgYXJlIGlnbm9yZWQgKi8NCisJCQlpZiAoIUlT X0VSUihzcF9ydCkpDQorCQkJCWlwNl9pbnNfcnQoc3BfcnQpOw0KKwkJfQ0KKwkJcmVhZF91bmxv Y2tfYmgoJmlkZXYtPmxvY2spOw0KKwl9DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGFkZHJjb25mX2Fk ZF9saW5rbG9jYWwoc3RydWN0IGluZXQ2X2RldiAqaWRldiwgY29uc3Qgc3RydWN0IGluNl9hZGRy ICphZGRyKQ0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JlYXNzZW1ibHkuYyBiL25ldC9pcHY2L3Jl YXNzZW1ibHkuYw0KaW5kZXggMmIwYTRjYS4uNDExZmUyYyAxMDA2NDQNCi0tLSBhL25ldC9pcHY2 L3JlYXNzZW1ibHkuYw0KKysrIGIvbmV0L2lwdjYvcmVhc3NlbWJseS5jDQpAQCAtMzg2LDggKzM4 NiwxNyBAQCBmb3VuZDoNCiAJfQ0KIA0KIAlpZiAoZnEtPnEubGFzdF9pbiA9PSAoSU5FVF9GUkFH X0ZJUlNUX0lOIHwgSU5FVF9GUkFHX0xBU1RfSU4pICYmDQotCSAgICBmcS0+cS5tZWF0ID09IGZx LT5xLmxlbikNCi0JCXJldHVybiBpcDZfZnJhZ19yZWFzbShmcSwgcHJldiwgZGV2KTsNCisJICAg IGZxLT5xLm1lYXQgPT0gZnEtPnEubGVuKSB7DQorCQlpbnQgcmVzOw0KKwkJdW5zaWduZWQgbG9u ZyBvcmVmZHN0ID0gc2tiLT5fc2tiX3JlZmRzdDsNCisNCisJCXNrYi0+X3NrYl9yZWZkc3QgPSAw VUw7DQorCQlyZXMgPSBpcDZfZnJhZ19yZWFzbShmcSwgcHJldiwgZGV2KTsNCisJCXNrYi0+X3Nr Yl9yZWZkc3QgPSBvcmVmZHN0Ow0KKwkJcmV0dXJuIHJlczsNCisJfQ0KKw0KKwlza2JfZHN0X2Ry b3Aoc2tiKTsNCiANCiAJd3JpdGVfbG9jaygmaXA2X2ZyYWdzLmxvY2spOw0KIAlsaXN0X21vdmVf dGFpbCgmZnEtPnEubHJ1X2xpc3QsICZmcS0+cS5uZXQtPmxydV9saXN0KTsNCmRpZmYgLS1naXQg YS9uZXQvaXJkYS9hZl9pcmRhLmMgYi9uZXQvaXJkYS9hZl9pcmRhLmMNCmluZGV4IGY0YjQ5YzUu LjkxODIxZTkgMTAwNjQ0DQotLS0gYS9uZXQvaXJkYS9hZl9pcmRhLmMNCisrKyBiL25ldC9pcmRh L2FmX2lyZGEuYw0KQEAgLTEzODYsNiArMTM4Niw4IEBAIHN0YXRpYyBpbnQgaXJkYV9yZWN2bXNn X2RncmFtKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiANCiAJSVJE QV9ERUJVRyg0LCAiJXMoKVxuIiwgX19mdW5jX18pOw0KIA0KKwltc2ctPm1zZ19uYW1lbGVuID0g MDsNCisNCiAJc2tiID0gc2tiX3JlY3ZfZGF0YWdyYW0oc2ssIGZsYWdzICYgfk1TR19ET05UV0FJ VCwNCiAJCQkJZmxhZ3MgJiBNU0dfRE9OVFdBSVQsICZlcnIpOw0KIAlpZiAoIXNrYikNCmRpZmYg LS1naXQgYS9uZXQvaXVjdi9hZl9pdWN2LmMgYi9uZXQvaXVjdi9hZl9pdWN2LmMNCmluZGV4IGNm OThkNjIuLmU4MzYxNDAgMTAwNjQ0DQotLS0gYS9uZXQvaXVjdi9hZl9pdWN2LmMNCisrKyBiL25l dC9pdWN2L2FmX2l1Y3YuYw0KQEAgLTEzNTYsNiArMTM1Niw4IEBAIHN0YXRpYyBpbnQgaXVjdl9z b2NrX3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLA0KIAlp bnQgYmxlbjsNCiAJaW50IGVyciA9IDA7DQogDQorCW1zZy0+bXNnX25hbWVsZW4gPSAwOw0KKw0K IAlpZiAoKHNrLT5za19zdGF0ZSA9PSBJVUNWX0RJU0NPTk4gfHwgc2stPnNrX3N0YXRlID09IElV Q1ZfU0VWRVJFRCkgJiYNCiAJICAgIHNrYl9xdWV1ZV9lbXB0eSgmaXVjdi0+YmFja2xvZ19za2Jf cSkgJiYNCiAJICAgIHNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpICYmDQpk aWZmIC0tZ2l0IGEvbmV0L2xsYy9hZl9sbGMuYyBiL25ldC9sbGMvYWZfbGxjLmMNCmluZGV4IDk5 YTYwZDUuLmU1NTY1YzcgMTAwNjQ0DQotLS0gYS9uZXQvbGxjL2FmX2xsYy5jDQorKysgYi9uZXQv bGxjL2FmX2xsYy5jDQpAQCAtNzIwLDYgKzcyMCw4IEBAIHN0YXRpYyBpbnQgbGxjX3VpX3JlY3Zt c2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLA0KIAlpbnQgdGFyZ2V0 OwkvKiBSZWFkIGF0IGxlYXN0IHRoaXMgbWFueSBieXRlcyAqLw0KIAlsb25nIHRpbWVvOw0KIA0K Kwltc2ctPm1zZ19uYW1lbGVuID0gMDsNCisNCiAJbG9ja19zb2NrKHNrKTsNCiAJY29waWVkID0g LUVOT1RDT05OOw0KIAlpZiAodW5saWtlbHkoc2stPnNrX3R5cGUgPT0gU09DS19TVFJFQU0gJiYg c2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4pKQ0KZGlmZiAtLWdpdCBhL25ldC9uZXRyb20vYWZf bmV0cm9tLmMgYi9uZXQvbmV0cm9tL2FmX25ldHJvbS5jDQppbmRleCBmMTU2MzgyLi4zZGY3YzVh IDEwMDY0NA0KLS0tIGEvbmV0L25ldHJvbS9hZl9uZXRyb20uYw0KKysrIGIvbmV0L25ldHJvbS9h Zl9uZXRyb20uYw0KQEAgLTExNzgsNiArMTE3OCw3IEBAIHN0YXRpYyBpbnQgbnJfcmVjdm1zZyhz dHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCX0NCiANCiAJaWYgKHNh eCAhPSBOVUxMKSB7DQorCQltZW1zZXQoc2F4LCAwLCBzaXplb2YoKnNheCkpOw0KIAkJc2F4LT5z YXgyNV9mYW1pbHkgPSBBRl9ORVRST007DQogCQlza2JfY29weV9mcm9tX2xpbmVhcl9kYXRhX29m ZnNldChza2IsIDcsIHNheC0+c2F4MjVfY2FsbC5heDI1X2NhbGwsDQogCQkJICAgICAgQVgyNV9B RERSX0xFTik7DQpkaWZmIC0tZ2l0IGEvbmV0L3Jvc2UvYWZfcm9zZS5jIGIvbmV0L3Jvc2UvYWZf cm9zZS5jDQppbmRleCBmOWVhOTI1Li4xZjk2ZmI5IDEwMDY0NA0KLS0tIGEvbmV0L3Jvc2UvYWZf cm9zZS5jDQorKysgYi9uZXQvcm9zZS9hZl9yb3NlLmMNCkBAIC0xMjU4LDYgKzEyNTgsNyBAQCBz dGF0aWMgaW50IHJvc2VfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQg KnNvY2ssDQogCXNrYl9jb3B5X2RhdGFncmFtX2lvdmVjKHNrYiwgMCwgbXNnLT5tc2dfaW92LCBj b3BpZWQpOw0KIA0KIAlpZiAoc3Jvc2UgIT0gTlVMTCkgew0KKwkJbWVtc2V0KHNyb3NlLCAwLCBt c2ctPm1zZ19uYW1lbGVuKTsNCiAJCXNyb3NlLT5zcm9zZV9mYW1pbHkgPSBBRl9ST1NFOw0KIAkJ c3Jvc2UtPnNyb3NlX2FkZHIgICA9IHJvc2UtPmRlc3RfYWRkcjsNCiAJCXNyb3NlLT5zcm9zZV9j YWxsICAgPSByb3NlLT5kZXN0X2NhbGw7DQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYnEu YyBiL25ldC9zY2hlZC9zY2hfY2JxLmMNCmluZGV4IDU5OWY2N2EuLmI3Y2RkYjkgMTAwNjQ0DQot LS0gYS9uZXQvc2NoZWQvc2NoX2NicS5jDQorKysgYi9uZXQvc2NoZWQvc2NoX2NicS5jDQpAQCAt OTYzLDggKzk2MywxMSBAQCBjYnFfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkNCiAJCWNicV91 cGRhdGUocSk7DQogCQlpZiAoKGluY3IgLT0gaW5jcjIpIDwgMCkNCiAJCQlpbmNyID0gMDsNCisJ CXEtPm5vdyArPSBpbmNyOw0KKwl9IGVsc2Ugew0KKwkJaWYgKG5vdyA+IHEtPm5vdykNCisJCQlx LT5ub3cgPSBub3c7DQogCX0NCi0JcS0+bm93ICs9IGluY3I7DQogCXEtPm5vd19ydCA9IG5vdzsN CiANCiAJZm9yICg7Oykgew0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL2F1dGguYyBiL25ldC9zY3Rw L2F1dGguYw0KaW5kZXggYmY4MTIwNC4uMzMzOTI2ZCAxMDA2NDQNCi0tLSBhL25ldC9zY3RwL2F1 dGguYw0KKysrIGIvbmV0L3NjdHAvYXV0aC5jDQpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIHNjdHBf YXV0aF9rZXlfcHV0KHN0cnVjdCBzY3RwX2F1dGhfYnl0ZXMgKmtleSkNCiAJCXJldHVybjsNCiAN CiAJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmtleS0+cmVmY250KSkgew0KLQkJa2ZyZWUoa2V5 KTsNCisJCWt6ZnJlZShrZXkpOw0KIAkJU0NUUF9EQkdfT0JKQ05UX0RFQyhrZXlzKTsNCiAJfQ0K IH0NCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9zb2NrZXQuYyBiL25ldC90aXBjL3NvY2tldC5jDQpp bmRleCA0MmI4MzI0Li5mZGYzNGFmIDEwMDY0NA0KLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMNCisr KyBiL25ldC90aXBjL3NvY2tldC5jDQpAQCAtODI5LDYgKzgyOSw3IEBAIHN0YXRpYyB2b2lkIHNl dF9vcmlnX2FkZHIoc3RydWN0IG1zZ2hkciAqbSwgc3RydWN0IHRpcGNfbXNnICptc2cpDQogCWlm IChhZGRyKSB7DQogCQlhZGRyLT5mYW1pbHkgPSBBRl9USVBDOw0KIAkJYWRkci0+YWRkcnR5cGUg PSBUSVBDX0FERFJfSUQ7DQorCQltZW1zZXQoJmFkZHItPmFkZHIsIDAsIHNpemVvZihhZGRyLT5h ZGRyKSk7DQogCQlhZGRyLT5hZGRyLmlkLnJlZiA9IG1zZ19vcmlncG9ydChtc2cpOw0KIAkJYWRk ci0+YWRkci5pZC5ub2RlID0gbXNnX29yaWdub2RlKG1zZyk7DQogCQlhZGRyLT5hZGRyLm5hbWUu ZG9tYWluID0gMDsJLyogY291bGQgbGVhdmUgdW5pbml0aWFsaXplZCAqLw0KQEAgLTk0OCw2ICs5 NDksOSBAQCBzdGF0aWMgaW50IHJlY3ZfbXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNv Y2tldCAqc29jaywNCiAJCWdvdG8gZXhpdDsNCiAJfQ0KIA0KKwkvKiB3aWxsIGJlIHVwZGF0ZWQg aW4gc2V0X29yaWdfYWRkcigpIGlmIG5lZWRlZCAqLw0KKwltLT5tc2dfbmFtZWxlbiA9IDA7DQor DQogCXRpbWVvdXQgPSBzb2NrX3JjdnRpbWVvKHNrLCBmbGFncyAmIE1TR19ET05UV0FJVCk7DQog cmVzdGFydDoNCiANCkBAIC0xMDc0LDYgKzEwNzgsOSBAQCBzdGF0aWMgaW50IHJlY3Zfc3RyZWFt KHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiAJCWdvdG8gZXhpdDsN CiAJfQ0KIA0KKwkvKiB3aWxsIGJlIHVwZGF0ZWQgaW4gc2V0X29yaWdfYWRkcigpIGlmIG5lZWRl ZCAqLw0KKwltLT5tc2dfbmFtZWxlbiA9IDA7DQorDQogCXRhcmdldCA9IHNvY2tfcmN2bG93YXQo c2ssIGZsYWdzICYgTVNHX1dBSVRBTEwsIGJ1Zl9sZW4pOw0KIAl0aW1lb3V0ID0gc29ja19yY3Z0 aW1lbyhzaywgZmxhZ3MgJiBNU0dfRE9OVFdBSVQpOw0KIHJlc3RhcnQ6DQpkaWZmIC0tZ2l0IGEv bmV0L3VuaXgvYWZfdW5peC5jIGIvbmV0L3VuaXgvYWZfdW5peC5jDQppbmRleCAxODk3OGI2Li41 NjExNTYzIDEwMDY0NA0KLS0tIGEvbmV0L3VuaXgvYWZfdW5peC5jDQorKysgYi9uZXQvdW5peC9h Zl91bml4LmMNCkBAIC0xOTU2LDcgKzE5NTYsNyBAQCBzdGF0aWMgaW50IHVuaXhfc3RyZWFtX3Jl Y3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLA0KIAkJCWlmICgo VU5JWENCKHNrYikucGlkICAhPSBzaW9jYi0+c2NtLT5waWQpIHx8DQogCQkJICAgIChVTklYQ0Io c2tiKS5jcmVkICE9IHNpb2NiLT5zY20tPmNyZWQpKQ0KIAkJCQlicmVhazsNCi0JCX0gZWxzZSB7 DQorCQl9IGVsc2UgaWYgKHRlc3RfYml0KFNPQ0tfUEFTU0NSRUQsICZzb2NrLT5mbGFncykpIHsN CiAJCQkvKiBDb3B5IGNyZWRlbnRpYWxzICovDQogCQkJc2NtX3NldF9jcmVkKHNpb2NiLT5zY20s IFVOSVhDQihza2IpLnBpZCwgVU5JWENCKHNrYikuY3JlZCk7DQogCQkJY2hlY2tfY3JlZHMgPSAx Ow0KZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9yZWcuYyBiL25ldC93aXJlbGVzcy9yZWcuYw0K aW5kZXggMGIwODkwNS4uMjE5NThjZCAxMDA2NDQNCi0tLSBhL25ldC93aXJlbGVzcy9yZWcuYw0K KysrIGIvbmV0L3dpcmVsZXNzL3JlZy5jDQpAQCAtODUzLDcgKzg1Myw3IEBAIHN0YXRpYyB2b2lk IGhhbmRsZV9jaGFubmVsKHN0cnVjdCB3aXBoeSAqd2lwaHksDQogCQkJcmV0dXJuOw0KIA0KIAkJ UkVHX0RCR19QUklOVCgiRGlzYWJsaW5nIGZyZXEgJWQgTUh6XG4iLCBjaGFuLT5jZW50ZXJfZnJl cSk7DQotCQljaGFuLT5mbGFncyA9IElFRUU4MDIxMV9DSEFOX0RJU0FCTEVEOw0KKwkJY2hhbi0+ ZmxhZ3MgfD0gSUVFRTgwMjExX0NIQU5fRElTQUJMRUQ7DQogCQlyZXR1cm47DQogCX0NCiANCmRp ZmYgLS1naXQgYS9zb3VuZC9jb3JlL3BjbV9uYXRpdmUuYyBiL3NvdW5kL2NvcmUvcGNtX25hdGl2 ZS5jDQppbmRleCA3YWRhNDBlLi42Mzg2MDBiIDEwMDY0NA0KLS0tIGEvc291bmQvY29yZS9wY21f bmF0aXZlLmMNCisrKyBiL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jDQpAQCAtMzIwNCwxOCArMzIw NCwxMCBAQCBFWFBPUlRfU1lNQk9MX0dQTChzbmRfcGNtX2xpYl9kZWZhdWx0X21tYXApOw0KIGlu dCBzbmRfcGNtX2xpYl9tbWFwX2lvbWVtKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3Ry ZWFtLA0KIAkJCSAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqYXJlYSkNCiB7DQotCWxvbmcgc2l6 ZTsNCi0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7DQorCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1 bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7Ow0KIA0KIAlhcmVhLT52bV9wYWdlX3Byb3QgPSBw Z3Byb3Rfbm9uY2FjaGVkKGFyZWEtPnZtX3BhZ2VfcHJvdCk7DQotCWFyZWEtPnZtX2ZsYWdzIHw9 IFZNX0lPOw0KLQlzaXplID0gYXJlYS0+dm1fZW5kIC0gYXJlYS0+dm1fc3RhcnQ7DQotCW9mZnNl dCA9IGFyZWEtPnZtX3Bnb2ZmIDw8IFBBR0VfU0hJRlQ7DQotCWlmIChpb19yZW1hcF9wZm5fcmFu Z2UoYXJlYSwgYXJlYS0+dm1fc3RhcnQsDQotCQkJCShzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9h ZGRyICsgb2Zmc2V0KSA+PiBQQUdFX1NISUZULA0KLQkJCQlzaXplLCBhcmVhLT52bV9wYWdlX3By b3QpKQ0KLQkJcmV0dXJuIC1FQUdBSU47DQotCXJldHVybiAwOw0KKwlyZXR1cm4gdm1faW9tYXBf bWVtb3J5KGFyZWEsIHJ1bnRpbWUtPmRtYV9hZGRyLCBydW50aW1lLT5kbWFfYnl0ZXMpOw0KIH0N CiANCiBFWFBPUlRfU1lNQk9MKHNuZF9wY21fbGliX21tYXBfaW9tZW0pOw0KZGlmZiAtLWdpdCBh L3NvdW5kL3NvYy9jb2RlY3MvbWF4OTgwODguYyBiL3NvdW5kL3NvYy9jb2RlY3MvbWF4OTgwODgu Yw0KaW5kZXggZWJiZjYzYy4uYjdjZjI0NiAxMDA2NDQNCi0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mv bWF4OTgwODguYw0KKysrIGIvc291bmQvc29jL2NvZGVjcy9tYXg5ODA4OC5jDQpAQCAtMjAwNyw3 ICsyMDA3LDcgQEAgc3RhdGljIGludCBtYXg5ODA4OF9wcm9iZShzdHJ1Y3Qgc25kX3NvY19jb2Rl YyAqY29kZWMpDQogICAgICAgICAgICAgICAgICAgICAgICByZXQpOw0KICAgICAgICAgICAgICAg IGdvdG8gZXJyX2FjY2VzczsNCiAgICAgICAgfQ0KLSAgICAgICBkZXZfaW5mbyhjb2RlYy0+ZGV2 LCAicmV2aXNpb24gJWNcbiIsIHJldCArICdBJyk7DQorICAgICAgIGRldl9pbmZvKGNvZGVjLT5k ZXYsICJyZXZpc2lvbiAlY1xuIiwgcmV0IC0gMHg0MCArICdBJyk7DQogDQogICAgICAgIHNuZF9z b2Nfd3JpdGUoY29kZWMsIE05ODA4OF9SRUdfNTFfUFdSX1NZUywgTTk4MDg4X1BXUlNWKTsNCiAN CmRpZmYgLS1naXQgYS9zb3VuZC91c2IvY2FyZC5jIGIvc291bmQvdXNiL2NhcmQuYw0KaW5kZXgg NTY2YWNiMy4uYWNiN2ZhYyAxMDA2NDQNCi0tLSBhL3NvdW5kL3VzYi9jYXJkLmMNCisrKyBiL3Nv dW5kL3VzYi9jYXJkLmMNCkBAIC02MTEsNyArNjExLDkgQEAgaW50IHNuZF91c2JfYXV0b3Jlc3Vt ZShzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCkNCiAJaW50IGVyciA9IC1FTk9ERVY7DQogDQog CWRvd25fcmVhZCgmY2hpcC0+c2h1dGRvd25fcndzZW0pOw0KLQlpZiAoIWNoaXAtPnNodXRkb3du ICYmICFjaGlwLT5wcm9iaW5nKQ0KKwlpZiAoY2hpcC0+cHJvYmluZykNCisJCWVyciA9IDA7DQor CWVsc2UgaWYgKCFjaGlwLT5zaHV0ZG93bikNCiAJCWVyciA9IHVzYl9hdXRvcG1fZ2V0X2ludGVy ZmFjZShjaGlwLT5wbV9pbnRmKTsNCiAJdXBfcmVhZCgmY2hpcC0+c2h1dGRvd25fcndzZW0pOw0K IA0KZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9jYXJkLmggYi9zb3VuZC91c2IvY2FyZC5oDQppbmRl eCA2NjVlMjk3Li4yYjc1NTljIDEwMDY0NA0KLS0tIGEvc291bmQvdXNiL2NhcmQuaA0KKysrIGIv c291bmQvdXNiL2NhcmQuaA0KQEAgLTczLDYgKzczLDcgQEAgc3RydWN0IHNuZF91c2Jfc3Vic3Ry ZWFtIHsNCiAJdW5zaWduZWQgaW50IGZpbGxfbWF4OiAxOwkvKiBmaWxsIG1heCBwYWNrZXQgc2l6 ZSBhbHdheXMgKi8NCiAJdW5zaWduZWQgaW50IHR4ZnJfcXVpcms6MTsJLyogYWxsb3cgc3ViLWZy YW1lIGFsaWdubWVudCAqLw0KIAl1bnNpZ25lZCBpbnQgZm10X3R5cGU7CQkvKiBVU0IgYXVkaW8g Zm9ybWF0IHR5cGUgKDEtMykgKi8NCisJdW5zaWduZWQgaW50IHBrdF9vZmZzZXRfYWRqOwkvKiBC eXRlcyB0byBkcm9wIGZyb20gYmVnaW5uaW5nIG9mIHBhY2tldHMgKGZvciBub24tY29tcGxpYW50 IGRldmljZXMpICovDQogDQogCXVuc2lnbmVkIGludCBydW5uaW5nOiAxOwkvKiBydW5uaW5nIHN0 YXR1cyAqLw0KIA0KZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9lbmRwb2ludC5jIGIvc291bmQvdXNi L2VuZHBvaW50LmMNCmluZGV4IDlhYjJiM2UuLjVlYmU4YzQgMTAwNjQ0DQotLS0gYS9zb3VuZC91 c2IvZW5kcG9pbnQuYw0KKysrIGIvc291bmQvdXNiL2VuZHBvaW50LmMNCkBAIC00NTgsNyArNDU4 LDcgQEAgc3RhdGljIGludCByZXRpcmVfY2FwdHVyZV91cmIoc3RydWN0IHNuZF91c2Jfc3Vic3Ry ZWFtICpzdWJzLA0KIAlzdHJpZGUgPSBydW50aW1lLT5mcmFtZV9iaXRzID4+IDM7DQogDQogCWZv ciAoaSA9IDA7IGkgPCB1cmItPm51bWJlcl9vZl9wYWNrZXRzOyBpKyspIHsNCi0JCWNwID0gKHVu c2lnbmVkIGNoYXIgKil1cmItPnRyYW5zZmVyX2J1ZmZlciArIHVyYi0+aXNvX2ZyYW1lX2Rlc2Nb aV0ub2Zmc2V0Ow0KKwkJY3AgPSAodW5zaWduZWQgY2hhciAqKXVyYi0+dHJhbnNmZXJfYnVmZmVy ICsgdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5vZmZzZXQgKyBzdWJzLT5wa3Rfb2Zmc2V0X2FkajsN CiAJCWlmICh1cmItPmlzb19mcmFtZV9kZXNjW2ldLnN0YXR1cyAmJiBwcmludGtfcmF0ZWxpbWl0 KCkpIHsNCiAJCQlzbmRfcHJpbnRkZCgiZnJhbWUgJWQgYWN0aXZlOiAlZFxuIiwgaSwgdXJiLT5p c29fZnJhbWVfZGVzY1tpXS5zdGF0dXMpOw0KIAkJCS8vIGNvbnRpbnVlOw0KQEAgLTg5OCw2ICs4 OTgsNyBAQCB2b2lkIHNuZF91c2JfaW5pdF9zdWJzdHJlYW0oc3RydWN0IHNuZF91c2Jfc3RyZWFt ICphcywNCiAJc3Vicy0+c3BlZWQgPSBzbmRfdXNiX2dldF9zcGVlZChzdWJzLT5kZXYpOw0KIAlp ZiAoc3Vicy0+c3BlZWQgPj0gVVNCX1NQRUVEX0hJR0gpDQogCQlzdWJzLT5vcHMucHJlcGFyZV9z eW5jID0gcHJlcGFyZV9jYXB0dXJlX3N5bmNfdXJiX2hzOw0KKwlzdWJzLT5wa3Rfb2Zmc2V0X2Fk aiA9IDA7DQogDQogCXNuZF91c2Jfc2V0X3BjbV9vcHMoYXMtPnBjbSwgc3RyZWFtKTsNCiANCmRp ZmYgLS1naXQgYS9zb3VuZC91c2IvbWlkaS5jIGIvc291bmQvdXNiL21pZGkuYw0KaW5kZXggMzRi OWJiNy4uZTVmZWUxOCAxMDA2NDQNCi0tLSBhL3NvdW5kL3VzYi9taWRpLmMNCisrKyBiL3NvdW5k L3VzYi9taWRpLmMNCkBAIC0xMjYsNyArMTI2LDYgQEAgc3RydWN0IHNuZF91c2JfbWlkaSB7DQog CQlzdHJ1Y3Qgc25kX3VzYl9taWRpX2luX2VuZHBvaW50ICppbjsNCiAJfSBlbmRwb2ludHNbTUlE SV9NQVhfRU5EUE9JTlRTXTsNCiAJdW5zaWduZWQgbG9uZyBpbnB1dF90cmlnZ2VyZWQ7DQotCWJv b2wgYXV0b3BtX3JlZmVyZW5jZTsNCiAJdW5zaWduZWQgaW50IG9wZW5lZFsyXTsNCiAJdW5zaWdu ZWQgY2hhciBkaXNjb25uZWN0ZWQ7DQogCXVuc2lnbmVkIGNoYXIgaW5wdXRfcnVubmluZzsNCkBA IC0xMDQwLDcgKzEwMzksNiBAQCBzdGF0aWMgaW50IHN1YnN0cmVhbV9vcGVuKHN0cnVjdCBzbmRf cmF3bWlkaV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGRpciwNCiB7DQogCXN0cnVjdCBzbmRf dXNiX21pZGkqIHVtaWRpID0gc3Vic3RyZWFtLT5ybWlkaS0+cHJpdmF0ZV9kYXRhOw0KIAlzdHJ1 Y3Qgc25kX2tjb250cm9sICpjdGw7DQotCWludCBlcnI7DQogDQogCWRvd25fcmVhZCgmdW1pZGkt PmRpc2NfcndzZW0pOw0KIAlpZiAodW1pZGktPmRpc2Nvbm5lY3RlZCkgew0KQEAgLTEwNTEsMTMg KzEwNDksNiBAQCBzdGF0aWMgaW50IHN1YnN0cmVhbV9vcGVuKHN0cnVjdCBzbmRfcmF3bWlkaV9z dWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGRpciwNCiAJbXV0ZXhfbG9jaygmdW1pZGktPm11dGV4 KTsNCiAJaWYgKG9wZW4pIHsNCiAJCWlmICghdW1pZGktPm9wZW5lZFswXSAmJiAhdW1pZGktPm9w ZW5lZFsxXSkgew0KLQkJCWVyciA9IHVzYl9hdXRvcG1fZ2V0X2ludGVyZmFjZSh1bWlkaS0+aWZh Y2UpOw0KLQkJCXVtaWRpLT5hdXRvcG1fcmVmZXJlbmNlID0gZXJyID49IDA7DQotCQkJaWYgKGVy ciA8IDAgJiYgZXJyICE9IC1FQUNDRVMpIHsNCi0JCQkJbXV0ZXhfdW5sb2NrKCZ1bWlkaS0+bXV0 ZXgpOw0KLQkJCQl1cF9yZWFkKCZ1bWlkaS0+ZGlzY19yd3NlbSk7DQotCQkJCXJldHVybiAtRUlP Ow0KLQkJCX0NCiAJCQlpZiAodW1pZGktPnJvbGFuZF9sb2FkX2N0bCkgew0KIAkJCQljdGwgPSB1 bWlkaS0+cm9sYW5kX2xvYWRfY3RsOw0KIAkJCQljdGwtPnZkWzBdLmFjY2VzcyB8PSBTTkRSVl9D VExfRUxFTV9BQ0NFU1NfSU5BQ1RJVkU7DQpAQCAtMTA4MCw4ICsxMDcxLDYgQEAgc3RhdGljIGlu dCBzdWJzdHJlYW1fb3BlbihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzdWJzdHJlYW0s IGludCBkaXIsDQogCQkJCXNuZF9jdGxfbm90aWZ5KHVtaWRpLT5jYXJkLA0KIAkJCQkgICAgICAg U05EUlZfQ1RMX0VWRU5UX01BU0tfSU5GTywgJmN0bC0+aWQpOw0KIAkJCX0NCi0JCQlpZiAodW1p ZGktPmF1dG9wbV9yZWZlcmVuY2UpDQotCQkJCXVzYl9hdXRvcG1fcHV0X2ludGVyZmFjZSh1bWlk aS0+aWZhY2UpOw0KIAkJfQ0KIAl9DQogCW11dGV4X3VubG9jaygmdW1pZGktPm11dGV4KTsNCkBA IC0yMjU2LDYgKzIyNDUsOCBAQCBpbnQgc25kX3VzYm1pZGlfY3JlYXRlKHN0cnVjdCBzbmRfY2Fy ZCAqY2FyZCwNCiAJCXJldHVybiBlcnI7DQogCX0NCiANCisJdXNiX2F1dG9wbV9nZXRfaW50ZXJm YWNlX25vX3Jlc3VtZSh1bWlkaS0+aWZhY2UpOw0KKw0KIAlsaXN0X2FkZF90YWlsKCZ1bWlkaS0+ bGlzdCwgbWlkaV9saXN0KTsNCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL3NvdW5kL3Vz Yi9xdWlya3MuYyBiL3NvdW5kL3VzYi9xdWlya3MuYw0KaW5kZXggZGZiZDY1ZC4uNDJlZWVlOCAx MDA2NDQNCi0tLSBhL3NvdW5kL3VzYi9xdWlya3MuYw0KKysrIGIvc291bmQvdXNiL3F1aXJrcy5j DQpAQCAtNzQ0LDYgKzc0NCw3IEBAIHN0YXRpYyB2b2lkIHNldF9mb3JtYXRfZW11X3F1aXJrKHN0 cnVjdCBzbmRfdXNiX3N1YnN0cmVhbSAqc3VicywNCiAJCWJyZWFrOw0KIAl9DQogCXNuZF9lbXV1 c2Jfc2V0X3NhbXBsZXJhdGUoc3Vicy0+c3RyZWFtLT5jaGlwLCBlbXVfc2FtcGxlcmF0ZV9pZCk7 DQorCXN1YnMtPnBrdF9vZmZzZXRfYWRqID0gKGVtdV9zYW1wbGVyYXRlX2lkID49IEVNVV9RVUlS S19TUl8xNzY0MDBIWikgPyA0IDogMDsNCiB9DQogDQogdm9pZCBzbmRfdXNiX3NldF9mb3JtYXRf cXVpcmsoc3RydWN0IHNuZF91c2Jfc3Vic3RyZWFtICpzdWJzLA0KZGlmZiAtLWdpdCBhL3NvdW5k L3VzYi9zdHJlYW0uYyBiL3NvdW5kL3VzYi9zdHJlYW0uYw0KaW5kZXggNWZmODAxMC4uMzNhMzM1 YiAxMDA2NDQNCi0tLSBhL3NvdW5kL3VzYi9zdHJlYW0uYw0KKysrIGIvc291bmQvdXNiL3N0cmVh bS5jDQpAQCAtMTY4LDYgKzE2OCwxNCBAQCBzdGF0aWMgaW50IHBhcnNlX3VhY19lbmRwb2ludF9h dHRyaWJ1dGVzKHN0cnVjdCBzbmRfdXNiX2F1ZGlvICpjaGlwLA0KIAlpZiAoIWNzZXAgJiYgYWx0 c2QtPmJOdW1FbmRwb2ludHMgPj0gMikNCiAJCWNzZXAgPSBzbmRfdXNiX2ZpbmRfZGVzYyhhbHRz LT5lbmRwb2ludFsxXS5leHRyYSwgYWx0cy0+ZW5kcG9pbnRbMV0uZXh0cmFsZW4sIE5VTEwsIFVT Ql9EVF9DU19FTkRQT0lOVCk7DQogDQorCS8qDQorCSAqIElmIHdlIGNhbid0IGxvY2F0ZSB0aGUg VVNCX0RUX0NTX0VORFBPSU5UIGRlc2NyaXB0b3IgaW4gdGhlIGV4dHJhDQorCSAqIGJ5dGVzIGFm dGVyIHRoZSBmaXJzdCBlbmRwb2ludCwgZ28gc2VhcmNoIHRoZSBlbnRpcmUgaW50ZXJmYWNlLg0K KwkgKiBTb21lIGRldmljZXMgaGF2ZSBpdCBkaXJlY3RseSAqYmVmb3JlKiB0aGUgc3RhbmRhcmQg ZW5kcG9pbnQuDQorCSAqLw0KKwlpZiAoIWNzZXApDQorCQljc2VwID0gc25kX3VzYl9maW5kX2Rl c2MoYWx0cy0+ZXh0cmEsIGFsdHMtPmV4dHJhbGVuLCBOVUxMLCBVU0JfRFRfQ1NfRU5EUE9JTlQp Ow0KKw0KIAlpZiAoIWNzZXAgfHwgY3NlcC0+Ykxlbmd0aCA8IDcgfHwNCiAJICAgIGNzZXAtPmJE ZXNjcmlwdG9yU3VidHlwZSAhPSBVQUNfRVBfR0VORVJBTCkgew0KIAkJc25kX3ByaW50ayhLRVJO X1dBUk5JTkcgIiVkOiV1OiVkIDogbm8gb3IgaW52YWxpZCINCl== --=-d93cBL9WH8PevUgsScAW-- --=-IzqN96DCSBs/hnoLd/+3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUY0G7ee/yOyVhhEJAQrGyw//QzjU1B+VDbbmTcKwGuQV//UW3Pbb1Lga 1wOVhkVTTuErf6sw2DS8XbW0+xsYQZZk72sj3RyG5sQABwPEbaadyxnZZXcehx5Q nbYHI6kNdmUfnoWaYU7oRxAW/VF6LOjU4Nh4zJNzfTLL0r5mUWKyQWI9e4UVPLSt Xl+rY4S3vgbI5TdJjls6wSCy+p4FbczT7RK9f9ufbm2ACniMcxouolcpfpwc7/c2 BynQR7cBdkLGCPogWckzmybc+kwPHAnMrDOuJX78HC1SlH4+G/DKCwn0NutUQYIi uzYlwPRdFif65w/DyFq6W0mBPWD9qiZLi6qXa+RMurnFWAGIbxcs5LhCIaSpUOcJ 9v8ahJ2LKK1VU/WBjMhf79Am5seTImiK/YRcgRslSOnb9jU9bVObedw4SpJO13Xg OxcToHHVO3a80uAJQY//Y28npwXM75UUCayoOVZbhE7lX9Rj5lKoivJ71+tz/Y4u Mn429t5anH0BEctpvK9SlpXQh1BLwMqG02QpBbNoRAhVmzvPKEtdva+MtHZGjjed azelVs2aEKzwVsAkWZaD+nH4JcciDoMZ5utXWUoLVaenWL8nFh3xZpyB9RYqwhUw XCLpRlwfb/2n2P0UNNAOrt1j1nF/EeiydcZVslbnbqysGPO2sxkZwvKQ0ZNBRWy6 qShSS7FezVI= =8srw -----END PGP SIGNATURE----- --=-IzqN96DCSBs/hnoLd/+3-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/