From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756394Ab3K0OpY (ORCPT ); Wed, 27 Nov 2013 09:45:24 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:38092 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750905Ab3K0OpO (ORCPT ); Wed, 27 Nov 2013 09:45:14 -0500 Message-ID: <1385563504.23855.64.camel@deadeye.wl.decadent.org.uk> Subject: Re: [PATCH 3.2 00/87] 3.2.53-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: Wed, 27 Nov 2013 14:45:04 +0000 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-ry1FVcYTM2+QoIrO3jxV" X-Mailer: Evolution 3.8.5-2+b1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.213 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 --=-ry1FVcYTM2+QoIrO3jxV Content-Type: multipart/mixed; boundary="=-7mg8BlENhhxukZ5qCcHZ" --=-7mg8BlENhhxukZ5qCcHZ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.53-rc1 relative to 3.2.52. Ben. --=20 Ben Hutchings Usenet is essentially a HUGE group of people passing notes in class. - Rachel Kadel, `A Quick Guide to Newsgroup Etiquette= ' --=-7mg8BlENhhxukZ5qCcHZ Content-Disposition: attachment; filename="linux-3.2.53-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.53-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IDFkZDJjMDkuLjA5NmMwZTEg MTAwNjQ0DQotLS0gYS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0K IFZFUlNJT04gPSAzDQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDUyDQotRVhUUkFWRVJT SU9OID0NCitTVUJMRVZFTCA9IDUzDQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9h cmNoL21pcHMvaW5jbHVkZS9hc20vanVtcF9sYWJlbC5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNt L2p1bXBfbGFiZWwuaA0KaW5kZXggMTg4MWIzMS4uYjE5NTU5YyAxMDA2NDQNCi0tLSBhL2FyY2gv bWlwcy9pbmNsdWRlL2FzbS9qdW1wX2xhYmVsLmgNCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2Fz bS9qdW1wX2xhYmVsLmgNCkBAIC0yMiw3ICsyMiw3IEBADQogDQogc3RhdGljIF9fYWx3YXlzX2lu bGluZSBib29sIGFyY2hfc3RhdGljX2JyYW5jaChzdHJ1Y3QganVtcF9sYWJlbF9rZXkgKmtleSkN CiB7DQotCWFzbSBnb3RvKCIxOlx0bm9wXG5cdCINCisJYXNtX3ZvbGF0aWxlX2dvdG8oIjE6XHRu b3Bcblx0Ig0KIAkJIm5vcFxuXHQiDQogCQkiLnB1c2hzZWN0aW9uIF9fanVtcF90YWJsZSwgIFwi YXdcIlxuXHQiDQogCQlXT1JEX0lOU04gIiAxYiwgJWxbbF95ZXNdLCAlMFxuXHQiDQpkaWZmIC0t Z2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3RyYXBzLmMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvdHJh cHMuYw0KaW5kZXggZjE5ZTY2MC4uY2Q4YjAyZiAxMDA2NDQNCi0tLSBhL2FyY2gvcGFyaXNjL2tl cm5lbC90cmFwcy5jDQorKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvdHJhcHMuYw0KQEAgLTgxMSwx NCArODExLDE0IEBAIHZvaWQgbm90cmFjZSBoYW5kbGVfaW50ZXJydXB0aW9uKGludCBjb2RlLCBz dHJ1Y3QgcHRfcmVncyAqcmVncykNCiAJZWxzZSB7DQogDQogCSAgICAvKg0KLQkgICAgICogVGhl IGtlcm5lbCBzaG91bGQgbmV2ZXIgZmF1bHQgb24gaXRzIG93biBhZGRyZXNzIHNwYWNlLg0KKwkg ICAgICogVGhlIGtlcm5lbCBzaG91bGQgbmV2ZXIgZmF1bHQgb24gaXRzIG93biBhZGRyZXNzIHNw YWNlLA0KKwkgICAgICogdW5sZXNzIHBhZ2VmYXVsdF9kaXNhYmxlKCkgd2FzIGNhbGxlZCBiZWZv cmUuDQogCSAgICAgKi8NCiANCi0JICAgIGlmIChmYXVsdF9zcGFjZSA9PSAwKSANCisJICAgIGlm IChmYXVsdF9zcGFjZSA9PSAwICYmICFpbl9hdG9taWMoKSkNCiAJICAgIHsNCiAJCXBkY19jaGFz c2lzX3NlbmRfc3RhdHVzKFBEQ19DSEFTU0lTX0RJUkVDVF9QQU5JQyk7DQogCQlwYXJpc2NfdGVy bWluYXRlKCJLZXJuZWwgRmF1bHQiLCByZWdzLCBjb2RlLCBmYXVsdF9hZGRyZXNzKTsNCi0JDQog CSAgICB9DQogCX0NCiANCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vanVt cF9sYWJlbC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaA0KaW5kZXgg OTM4OTg2ZS4uZWUzMzg4OCAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9q dW1wX2xhYmVsLmgNCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9qdW1wX2xhYmVsLmgN CkBAIC0xOSw3ICsxOSw3IEBADQogDQogc3RhdGljIF9fYWx3YXlzX2lubGluZSBib29sIGFyY2hf c3RhdGljX2JyYW5jaChzdHJ1Y3QganVtcF9sYWJlbF9rZXkgKmtleSkNCiB7DQotCWFzbSBnb3Rv KCIxOlxuXHQiDQorCWFzbV92b2xhdGlsZV9nb3RvKCIxOlxuXHQiDQogCQkgIm5vcFxuXHQiDQog CQkgIi5wdXNoc2VjdGlvbiBfX2p1bXBfdGFibGUsICBcImF3XCJcblx0Ig0KIAkJIEpVTVBfRU5U UllfVFlQRSAiMWIsICVsW2xfeWVzXSwgJWMwXG5cdCINCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy cGMva3ZtL2Jvb2szc19odl9ybWhhbmRsZXJzLlMgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19o dl9ybWhhbmRsZXJzLlMNCmluZGV4IDVlOGRjMDguLmUzYjNjZjkgMTAwNjQ0DQotLS0gYS9hcmNo L3Bvd2VycGMva3ZtL2Jvb2szc19odl9ybWhhbmRsZXJzLlMNCisrKyBiL2FyY2gvcG93ZXJwYy9r dm0vYm9vazNzX2h2X3JtaGFuZGxlcnMuUw0KQEAgLTkyMiw3ICs5MjIsNyBAQCBFTkRfRlRSX1NF Q1RJT05fSUZTRVQoQ1BVX0ZUUl9BUkNIXzIwNikNCiBCRUdJTl9GVFJfU0VDVElPTg0KIAltZnNw cglyOCwgU1BSTl9EU0NSDQogCWxkCXI3LCBIU1RBVEVfRFNDUihyMTMpDQotCXN0ZAlyOCwgVkNQ VV9EU0NSKHI3KQ0KKwlzdGQJcjgsIFZDUFVfRFNDUihyOSkNCiAJbXRzcHIJU1BSTl9EU0NSLCBy Nw0KIEVORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSX0FSQ0hfMjA2KQ0KIA0KZGlmZiAtLWdp dCBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9qdW1wX2xhYmVsLmggYi9hcmNoL3MzOTAvaW5jbHVk ZS9hc20vanVtcF9sYWJlbC5oDQppbmRleCA5NWE2Y2YyLi44NTEyZDBhIDEwMDY0NA0KLS0tIGEv YXJjaC9zMzkwL2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaA0KKysrIGIvYXJjaC9zMzkwL2luY2x1 ZGUvYXNtL2p1bXBfbGFiZWwuaA0KQEAgLTE1LDcgKzE1LDcgQEANCiANCiBzdGF0aWMgX19hbHdh eXNfaW5saW5lIGJvb2wgYXJjaF9zdGF0aWNfYnJhbmNoKHN0cnVjdCBqdW1wX2xhYmVsX2tleSAq a2V5KQ0KIHsNCi0JYXNtIGdvdG8oIjA6CWJyY2wgMCwwXG4iDQorCWFzbV92b2xhdGlsZV9nb3Rv KCIwOglicmNsIDAsMFxuIg0KIAkJIi5wdXNoc2VjdGlvbiBfX2p1bXBfdGFibGUsIFwiYXdcIlxu Ig0KIAkJQVNNX0FMSUdOICJcbiINCiAJCUFTTV9QVFIgIiAwYiwgJWxbbGFiZWxdLCAlMFxuIg0K ZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vanVtcF9sYWJlbC5oIGIvYXJjaC9z cGFyYy9pbmNsdWRlL2FzbS9qdW1wX2xhYmVsLmgNCmluZGV4IGZjNzNhODIuLmUxN2I2NWIgMTAw NjQ0DQotLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaA0KKysrIGIvYXJj aC9zcGFyYy9pbmNsdWRlL2FzbS9qdW1wX2xhYmVsLmgNCkBAIC05LDcgKzksNyBAQA0KIA0KIHN0 YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3N0YXRpY19icmFuY2goc3RydWN0IGp1bXBf bGFiZWxfa2V5ICprZXkpDQogew0KLQkJYXNtIGdvdG8oIjE6XG5cdCINCisJCWFzbV92b2xhdGls ZV9nb3RvKCIxOlxuXHQiDQogCQkJICJub3Bcblx0Ig0KIAkJCSAibm9wXG5cdCINCiAJCQkgIi5w dXNoc2VjdGlvbiBfX2p1bXBfdGFibGUsICBcImF3XCJcblx0Ig0KZGlmZiAtLWdpdCBhL2FyY2gv dGlsZS9pbmNsdWRlL2FzbS9wZXJjcHUuaCBiL2FyY2gvdGlsZS9pbmNsdWRlL2FzbS9wZXJjcHUu aA0KaW5kZXggNjMyOTRmNS4uNGY3YWUzOSAxMDA2NDQNCi0tLSBhL2FyY2gvdGlsZS9pbmNsdWRl L2FzbS9wZXJjcHUuaA0KKysrIGIvYXJjaC90aWxlL2luY2x1ZGUvYXNtL3BlcmNwdS5oDQpAQCAt MTUsOSArMTUsMzcgQEANCiAjaWZuZGVmIF9BU01fVElMRV9QRVJDUFVfSA0KICNkZWZpbmUgX0FT TV9USUxFX1BFUkNQVV9IDQogDQotcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBfX215X2NwdV9vZmZz ZXQgX19hc21fXygidHAiKTsNCi0jZGVmaW5lIF9fbXlfY3B1X29mZnNldCBfX215X2NwdV9vZmZz ZXQNCi0jZGVmaW5lIHNldF9teV9jcHVfb2Zmc2V0KHRwKSAoX19teV9jcHVfb2Zmc2V0ID0gKHRw KSkNCityZWdpc3RlciB1bnNpZ25lZCBsb25nIG15X2NwdV9vZmZzZXRfcmVnIGFzbSgidHAiKTsN CisNCisjaWZkZWYgQ09ORklHX1BSRUVNUFQNCisvKg0KKyAqIEZvciBmdWxsIHByZWVtcHRpb24s IHdlIGNhbid0IGp1c3QgdXNlIHRoZSByZWdpc3RlciB2YXJpYWJsZQ0KKyAqIGRpcmVjdGx5LCBz aW5jZSB3ZSBuZWVkIGJhcnJpZXIoKSB0byBoYXphcmQgYWdhaW5zdCBpdCwgY2F1c2luZyB0aGUN CisgKiBjb21waWxlciB0byByZWxvYWQgYW55dGhpbmcgY29tcHV0ZWQgZnJvbSBhIHByZXZpb3Vz ICJ0cCIgdmFsdWUuDQorICogQnV0IHdlIGFsc28gZG9uJ3Qgd2FudCB0byB1c2Ugdm9sYXRpbGUg YXNtLCBzaW5jZSB3ZSdkIGxpa2UgdGhlDQorICogY29tcGlsZXIgdG8gYmUgYWJsZSB0byBjYWNo ZSB0aGUgdmFsdWUgYWNyb3NzIG11bHRpcGxlIHBlcmNwdSByZWFkcy4NCisgKiBTbyB3ZSB1c2Ug YSBmYWtlIHN0YWNrIHJlYWQgYXMgYSBoYXphcmQgYWdhaW5zdCBiYXJyaWVyKCkuDQorICogVGhl ICdVJyBjb25zdHJhaW50IGlzIGxpa2UgJ20nIGJ1dCBkaXNhbGxvd3MgcG9zdGluY3JlbWVudC4N CisgKi8NCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19teV9jcHVfb2Zmc2V0KHZvaWQp DQorew0KKwl1bnNpZ25lZCBsb25nIHRwOw0KKwlyZWdpc3RlciB1bnNpZ25lZCBsb25nICpzcCBh c20oInNwIik7DQorCWFzbSgibW92ZSAlMCwgdHAiIDogIj1yIiAodHApIDogIlUiICgqc3ApKTsN CisJcmV0dXJuIHRwOw0KK30NCisjZGVmaW5lIF9fbXlfY3B1X29mZnNldCBfX215X2NwdV9vZmZz ZXQoKQ0KKyNlbHNlDQorLyoNCisgKiBXZSBkb24ndCBuZWVkIHRvIGhhemFyZCBhZ2FpbnN0IGJh cnJpZXIoKSBzaW5jZSAidHAiIGRvZXNuJ3QgZXZlcg0KKyAqIGNoYW5nZSB3aXRoIFBSRUVNUFRf Tk9ORSwgYW5kIHdpdGggUFJFRU1QVF9WT0xVTlRBUlkgaXQgb25seQ0KKyAqIGNoYW5nZXMgYXQg ZnVuY3Rpb24gY2FsbCBwb2ludHMsIGF0IHdoaWNoIHdlIGFyZSBhbHJlYWR5IHJlLXJlYWRpbmcN CisgKiB0aGUgdmFsdWUgb2YgInRwIiBkdWUgdG8gIm15X2NwdV9vZmZzZXRfcmVnIiBiZWluZyBh IGdsb2JhbCB2YXJpYWJsZS4NCisgKi8NCisjZGVmaW5lIF9fbXlfY3B1X29mZnNldCBteV9jcHVf b2Zmc2V0X3JlZw0KKyNlbmRpZg0KKw0KKyNkZWZpbmUgc2V0X215X2NwdV9vZmZzZXQodHApICht eV9jcHVfb2Zmc2V0X3JlZyA9ICh0cCkpDQogDQogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3BlcmNw dS5oPg0KIA0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaA0KaW5kZXggMGMzYjc3NS4uYTMxNWYx YyAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaA0KKysrIGIv YXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oDQpAQCAtMzM0LDcgKzMzNCw3IEBAIGV4 dGVybiBjb25zdCBjaGFyICogY29uc3QgeDg2X3Bvd2VyX2ZsYWdzWzMyXTsNCiBzdGF0aWMgX19h bHdheXNfaW5saW5lIF9fcHVyZSBib29sIF9fc3RhdGljX2NwdV9oYXModTE2IGJpdCkNCiB7DQog I2lmIF9fR05VQ19fID4gNCB8fCBfX0dOVUNfTUlOT1JfXyA+PSA1DQotCQlhc20gZ290bygiMTog am1wICVsW3Rfbm9dXG4iDQorCQlhc21fdm9sYXRpbGVfZ290bygiMTogam1wICVsW3Rfbm9dXG4i DQogCQkJICIyOlxuIg0KIAkJCSAiLnNlY3Rpb24gLmFsdGluc3RydWN0aW9ucyxcImFcIlxuIg0K IAkJCSAiIC5sb25nIDFiIC0gLlxuIg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNt L2p1bXBfbGFiZWwuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaA0KaW5kZXgg YTMyYjE4Yy4uZTEyYzFiYyAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2p1bXBf bGFiZWwuaA0KKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vanVtcF9sYWJlbC5oDQpAQCAtMTMs NyArMTMsNyBAQA0KIA0KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3N0YXRpY19i cmFuY2goc3RydWN0IGp1bXBfbGFiZWxfa2V5ICprZXkpDQogew0KLQlhc20gZ290bygiMToiDQor CWFzbV92b2xhdGlsZV9nb3RvKCIxOiINCiAJCUpVTVBfTEFCRUxfSU5JVElBTF9OT1ANCiAJCSIu cHVzaHNlY3Rpb24gX19qdW1wX3RhYmxlLCAgXCJhd1wiIFxuXHQiDQogCQlfQVNNX0FMSUdOICJc blx0Ig0KZGlmZiAtLWdpdCBhL2FyY2gveHRlbnNhL2tlcm5lbC9zaWduYWwuYyBiL2FyY2gveHRl bnNhL2tlcm5lbC9zaWduYWwuYw0KaW5kZXggZjIyMjBiNS4uY2YzZTljYiAxMDA2NDQNCi0tLSBh L2FyY2gveHRlbnNhL2tlcm5lbC9zaWduYWwuYw0KKysrIGIvYXJjaC94dGVuc2Eva2VybmVsL3Np Z25hbC5jDQpAQCAtMzQ2LDcgKzM0Niw3IEBAIHN0YXRpYyB2b2lkIHNldHVwX2ZyYW1lKGludCBz aWcsIHN0cnVjdCBrX3NpZ2FjdGlvbiAqa2EsIHNpZ2luZm9fdCAqaW5mbywNCiANCiAJc3AgPSBy ZWdzLT5hcmVnWzFdOw0KIA0KLQlpZiAoKGthLT5zYS5zYV9mbGFncyAmIFNBX09OU1RBQ0spICE9 IDAgJiYgISBvbl9zaWdfc3RhY2soc3ApKSB7DQorCWlmICgoa2EtPnNhLnNhX2ZsYWdzICYgU0Ff T05TVEFDSykgIT0gMCAmJiBzYXNfc3NfZmxhZ3Moc3ApID09IDApIHsNCiAJCXNwID0gY3VycmVu dC0+c2FzX3NzX3NwICsgY3VycmVudC0+c2FzX3NzX3NpemU7DQogCX0NCiANCmRpZmYgLS1naXQg YS9kcml2ZXJzL2F0YS9saWJhdGEtZWguYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1laC5jDQppbmRl eCBhZWE2MjdlLi43ZDFhNDc4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hdGEvbGliYXRhLWVoLmMN CisrKyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1laC5jDQpAQCAtMTI4NiwxNCArMTI4NiwxNCBAQCB2 b2lkIGF0YV9laF9xY19jb21wbGV0ZShzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKQ0KICAqCXNo b3VsZCBiZSByZXRyaWVkLiAgVG8gYmUgdXNlZCBmcm9tIEVILg0KICAqDQogICoJU0NTSSBtaWRs YXllciBsaW1pdHMgdGhlIG51bWJlciBvZiByZXRyaWVzIHRvIHNjbWQtPmFsbG93ZWQuDQotICoJ c2NtZC0+cmV0cmllcyBpcyBkZWNyZW1lbnRlZCBmb3IgY29tbWFuZHMgd2hpY2ggZ2V0IHJldHJp ZWQNCisgKglzY21kLT5hbGxvd2VkIGlzIGluY3JlbWVudGVkIGZvciBjb21tYW5kcyB3aGljaCBn ZXQgcmV0cmllZA0KICAqCWR1ZSB0byB1bnJlbGF0ZWQgZmFpbHVyZXMgKHFjLT5lcnJfbWFzayBp cyB6ZXJvKS4NCiAgKi8NCiB2b2lkIGF0YV9laF9xY19yZXRyeShzdHJ1Y3QgYXRhX3F1ZXVlZF9j bWQgKnFjKQ0KIHsNCiAJc3RydWN0IHNjc2lfY21uZCAqc2NtZCA9IHFjLT5zY3NpY21kOw0KLQlp ZiAoIXFjLT5lcnJfbWFzayAmJiBzY21kLT5yZXRyaWVzKQ0KLQkJc2NtZC0+cmV0cmllcy0tOw0K KwlpZiAoIXFjLT5lcnJfbWFzaykNCisJCXNjbWQtPmFsbG93ZWQrKzsNCiAJX19hdGFfZWhfcWNf Y29tcGxldGUocWMpOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcmFuZG9tLmMg Yi9kcml2ZXJzL2NoYXIvcmFuZG9tLmMNCmluZGV4IGI2NTE3MzMuLmMyNDRmMGUgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL2NoYXIvcmFuZG9tLmMNCisrKyBiL2RyaXZlcnMvY2hhci9yYW5kb20uYw0K QEAgLTY2OCw3ICs2NjgsNyBAQCBzdGF0aWMgdm9pZCBzZXRfdGltZXJfcmFuZF9zdGF0ZSh1bnNp Z25lZCBpbnQgaXJxLA0KICAqLw0KIHZvaWQgYWRkX2RldmljZV9yYW5kb21uZXNzKGNvbnN0IHZv aWQgKmJ1ZiwgdW5zaWduZWQgaW50IHNpemUpDQogew0KLQl1bnNpZ25lZCBsb25nIHRpbWUgPSBn ZXRfY3ljbGVzKCkgXiBqaWZmaWVzOw0KKwl1bnNpZ25lZCBsb25nIHRpbWUgPSByYW5kb21fZ2V0 X2VudHJvcHkoKSBeIGppZmZpZXM7DQogDQogCW1peF9wb29sX2J5dGVzKCZpbnB1dF9wb29sLCBi dWYsIHNpemUsIE5VTEwpOw0KIAltaXhfcG9vbF9ieXRlcygmaW5wdXRfcG9vbCwgJnRpbWUsIHNp emVvZih0aW1lKSwgTlVMTCk7DQpAQCAtNzA1LDcgKzcwNSw3IEBAIHN0YXRpYyB2b2lkIGFkZF90 aW1lcl9yYW5kb21uZXNzKHN0cnVjdCB0aW1lcl9yYW5kX3N0YXRlICpzdGF0ZSwgdW5zaWduZWQg bnVtKQ0KIAkJZ290byBvdXQ7DQogDQogCXNhbXBsZS5qaWZmaWVzID0gamlmZmllczsNCi0Jc2Ft cGxlLmN5Y2xlcyA9IGdldF9jeWNsZXMoKTsNCisJc2FtcGxlLmN5Y2xlcyA9IHJhbmRvbV9nZXRf ZW50cm9weSgpOw0KIAlzYW1wbGUubnVtID0gbnVtOw0KIAltaXhfcG9vbF9ieXRlcygmaW5wdXRf cG9vbCwgJnNhbXBsZSwgc2l6ZW9mKHNhbXBsZSksIE5VTEwpOw0KIA0KQEAgLTc3Miw3ICs3NzIs NyBAQCB2b2lkIGFkZF9pbnRlcnJ1cHRfcmFuZG9tbmVzcyhpbnQgaXJxLCBpbnQgaXJxX2ZsYWdz KQ0KIAlzdHJ1Y3QgZmFzdF9wb29sCSpmYXN0X3Bvb2wgPSAmX19nZXRfY3B1X3ZhcihpcnFfcmFu ZG9tbmVzcyk7DQogCXN0cnVjdCBwdF9yZWdzCQkqcmVncyA9IGdldF9pcnFfcmVncygpOw0KIAl1 bnNpZ25lZCBsb25nCQlub3cgPSBqaWZmaWVzOw0KLQlfX3UzMgkJCWlucHV0WzRdLCBjeWNsZXMg PSBnZXRfY3ljbGVzKCk7DQorCV9fdTMyCQkJaW5wdXRbNF0sIGN5Y2xlcyA9IHJhbmRvbV9nZXRf ZW50cm9weSgpOw0KIA0KIAlpbnB1dFswXSA9IGN5Y2xlcyBeIGppZmZpZXM7DQogCWlucHV0WzFd ID0gaXJxOw0KQEAgLTE0ODAsMTIgKzE0ODAsMTEgQEAgY3RsX3RhYmxlIHJhbmRvbV90YWJsZVtd ID0gew0KIA0KIHN0YXRpYyB1MzIgcmFuZG9tX2ludF9zZWNyZXRbTUQ1X01FU1NBR0VfQllURVMg LyA0XSBfX19fY2FjaGVsaW5lX2FsaWduZWQ7DQogDQotc3RhdGljIGludCBfX2luaXQgcmFuZG9t X2ludF9zZWNyZXRfaW5pdCh2b2lkKQ0KK2ludCByYW5kb21faW50X3NlY3JldF9pbml0KHZvaWQp DQogew0KIAlnZXRfcmFuZG9tX2J5dGVzKHJhbmRvbV9pbnRfc2VjcmV0LCBzaXplb2YocmFuZG9t X2ludF9zZWNyZXQpKTsNCiAJcmV0dXJuIDA7DQogfQ0KLWxhdGVfaW5pdGNhbGwocmFuZG9tX2lu dF9zZWNyZXRfaW5pdCk7DQogDQogLyoNCiAgKiBHZXQgYSByYW5kb20gd29yZCBmb3IgaW50ZXJu YWwga2VybmVsIHVzZSBvbmx5LiBTaW1pbGFyIHRvIHVyYW5kb20gYnV0DQpAQCAtMTUwNCw3ICsx NTAzLDcgQEAgdW5zaWduZWQgaW50IGdldF9yYW5kb21faW50KHZvaWQpDQogDQogCWhhc2ggPSBn ZXRfY3B1X3ZhcihnZXRfcmFuZG9tX2ludF9oYXNoKTsNCiANCi0JaGFzaFswXSArPSBjdXJyZW50 LT5waWQgKyBqaWZmaWVzICsgZ2V0X2N5Y2xlcygpOw0KKwloYXNoWzBdICs9IGN1cnJlbnQtPnBp ZCArIGppZmZpZXMgKyByYW5kb21fZ2V0X2VudHJvcHkoKTsNCiAJbWQ1X3RyYW5zZm9ybShoYXNo LCByYW5kb21faW50X3NlY3JldCk7DQogCXJldCA9IGhhc2hbMF07DQogCXB1dF9jcHVfdmFyKGdl dF9yYW5kb21faW50X2hhc2gpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29ubmVjdG9yL2NuX3By b2MuYyBiL2RyaXZlcnMvY29ubmVjdG9yL2NuX3Byb2MuYw0KaW5kZXggNDZiYmY0My4uNjZkNTM4 NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvY29ubmVjdG9yL2NuX3Byb2MuYw0KKysrIGIvZHJpdmVy cy9jb25uZWN0b3IvY25fcHJvYy5jDQpAQCAtNjQsNiArNjQsNyBAQCB2b2lkIHByb2NfZm9ya19j b25uZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KIA0KIAltc2cgPSAoc3RydWN0IGNu X21zZyopYnVmZmVyOw0KIAlldiA9IChzdHJ1Y3QgcHJvY19ldmVudCopbXNnLT5kYXRhOw0KKwlt ZW1zZXQoJmV2LT5ldmVudF9kYXRhLCAwLCBzaXplb2YoZXYtPmV2ZW50X2RhdGEpKTsNCiAJZ2V0 X3NlcSgmbXNnLT5zZXEsICZldi0+Y3B1KTsNCiAJa3RpbWVfZ2V0X3RzKCZ0cyk7IC8qIGdldCBo aWdoIHJlcyBtb25vdG9uaWMgdGltZXN0YW1wICovDQogCXB1dF91bmFsaWduZWQodGltZXNwZWNf dG9fbnMoJnRzKSwgKF9fdTY0ICopJmV2LT50aW1lc3RhbXBfbnMpOw0KQEAgLTc5LDYgKzgwLDcg QEAgdm9pZCBwcm9jX2ZvcmtfY29ubmVjdG9yKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykNCiAJ bWVtY3B5KCZtc2ctPmlkLCAmY25fcHJvY19ldmVudF9pZCwgc2l6ZW9mKG1zZy0+aWQpKTsNCiAJ bXNnLT5hY2sgPSAwOyAvKiBub3QgdXNlZCAqLw0KIAltc2ctPmxlbiA9IHNpemVvZigqZXYpOw0K Kwltc2ctPmZsYWdzID0gMDsgLyogbm90IHVzZWQgKi8NCiAJLyogIElmIGNuX25ldGxpbmtfc2Vu ZCgpIGZhaWxlZCwgdGhlIGRhdGEgaXMgbm90IHNlbnQgKi8NCiAJY25fbmV0bGlua19zZW5kKG1z ZywgQ05fSURYX1BST0MsIEdGUF9LRVJORUwpOw0KIH0NCkBAIC05NSw2ICs5Nyw3IEBAIHZvaWQg cHJvY19leGVjX2Nvbm5lY3RvcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spDQogDQogCW1zZyA9 IChzdHJ1Y3QgY25fbXNnKilidWZmZXI7DQogCWV2ID0gKHN0cnVjdCBwcm9jX2V2ZW50Kiltc2ct PmRhdGE7DQorCW1lbXNldCgmZXYtPmV2ZW50X2RhdGEsIDAsIHNpemVvZihldi0+ZXZlbnRfZGF0 YSkpOw0KIAlnZXRfc2VxKCZtc2ctPnNlcSwgJmV2LT5jcHUpOw0KIAlrdGltZV9nZXRfdHMoJnRz KTsgLyogZ2V0IGhpZ2ggcmVzIG1vbm90b25pYyB0aW1lc3RhbXAgKi8NCiAJcHV0X3VuYWxpZ25l ZCh0aW1lc3BlY190b19ucygmdHMpLCAoX191NjQgKikmZXYtPnRpbWVzdGFtcF9ucyk7DQpAQCAt MTA1LDYgKzEwOCw3IEBAIHZvaWQgcHJvY19leGVjX2Nvbm5lY3RvcihzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnRhc2spDQogCW1lbWNweSgmbXNnLT5pZCwgJmNuX3Byb2NfZXZlbnRfaWQsIHNpemVvZiht c2ctPmlkKSk7DQogCW1zZy0+YWNrID0gMDsgLyogbm90IHVzZWQgKi8NCiAJbXNnLT5sZW4gPSBz aXplb2YoKmV2KTsNCisJbXNnLT5mbGFncyA9IDA7IC8qIG5vdCB1c2VkICovDQogCWNuX25ldGxp bmtfc2VuZChtc2csIENOX0lEWF9QUk9DLCBHRlBfS0VSTkVMKTsNCiB9DQogDQpAQCAtMTIxLDYg KzEyNSw3IEBAIHZvaWQgcHJvY19pZF9jb25uZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr LCBpbnQgd2hpY2hfaWQpDQogDQogCW1zZyA9IChzdHJ1Y3QgY25fbXNnKilidWZmZXI7DQogCWV2 ID0gKHN0cnVjdCBwcm9jX2V2ZW50Kiltc2ctPmRhdGE7DQorCW1lbXNldCgmZXYtPmV2ZW50X2Rh dGEsIDAsIHNpemVvZihldi0+ZXZlbnRfZGF0YSkpOw0KIAlldi0+d2hhdCA9IHdoaWNoX2lkOw0K IAlldi0+ZXZlbnRfZGF0YS5pZC5wcm9jZXNzX3BpZCA9IHRhc2stPnBpZDsNCiAJZXYtPmV2ZW50 X2RhdGEuaWQucHJvY2Vzc190Z2lkID0gdGFzay0+dGdpZDsNCkBAIC0xNDQsNiArMTQ5LDcgQEAg dm9pZCBwcm9jX2lkX2Nvbm5lY3RvcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGludCB3aGlj aF9pZCkNCiAJbWVtY3B5KCZtc2ctPmlkLCAmY25fcHJvY19ldmVudF9pZCwgc2l6ZW9mKG1zZy0+ aWQpKTsNCiAJbXNnLT5hY2sgPSAwOyAvKiBub3QgdXNlZCAqLw0KIAltc2ctPmxlbiA9IHNpemVv ZigqZXYpOw0KKwltc2ctPmZsYWdzID0gMDsgLyogbm90IHVzZWQgKi8NCiAJY25fbmV0bGlua19z ZW5kKG1zZywgQ05fSURYX1BST0MsIEdGUF9LRVJORUwpOw0KIH0NCiANCkBAIC0xNTksNiArMTY1 LDcgQEAgdm9pZCBwcm9jX3NpZF9jb25uZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0K IA0KIAltc2cgPSAoc3RydWN0IGNuX21zZyAqKWJ1ZmZlcjsNCiAJZXYgPSAoc3RydWN0IHByb2Nf ZXZlbnQgKiltc2ctPmRhdGE7DQorCW1lbXNldCgmZXYtPmV2ZW50X2RhdGEsIDAsIHNpemVvZihl di0+ZXZlbnRfZGF0YSkpOw0KIAlnZXRfc2VxKCZtc2ctPnNlcSwgJmV2LT5jcHUpOw0KIAlrdGlt ZV9nZXRfdHMoJnRzKTsgLyogZ2V0IGhpZ2ggcmVzIG1vbm90b25pYyB0aW1lc3RhbXAgKi8NCiAJ cHV0X3VuYWxpZ25lZCh0aW1lc3BlY190b19ucygmdHMpLCAoX191NjQgKikmZXYtPnRpbWVzdGFt cF9ucyk7DQpAQCAtMTY5LDYgKzE3Niw3IEBAIHZvaWQgcHJvY19zaWRfY29ubmVjdG9yKHN0cnVj dCB0YXNrX3N0cnVjdCAqdGFzaykNCiAJbWVtY3B5KCZtc2ctPmlkLCAmY25fcHJvY19ldmVudF9p ZCwgc2l6ZW9mKG1zZy0+aWQpKTsNCiAJbXNnLT5hY2sgPSAwOyAvKiBub3QgdXNlZCAqLw0KIAlt c2ctPmxlbiA9IHNpemVvZigqZXYpOw0KKwltc2ctPmZsYWdzID0gMDsgLyogbm90IHVzZWQgKi8N CiAJY25fbmV0bGlua19zZW5kKG1zZywgQ05fSURYX1BST0MsIEdGUF9LRVJORUwpOw0KIH0NCiAN CkBAIC0xODQsNiArMTkyLDcgQEAgdm9pZCBwcm9jX3B0cmFjZV9jb25uZWN0b3Ioc3RydWN0IHRh c2tfc3RydWN0ICp0YXNrLCBpbnQgcHRyYWNlX2lkKQ0KIA0KIAltc2cgPSAoc3RydWN0IGNuX21z ZyAqKWJ1ZmZlcjsNCiAJZXYgPSAoc3RydWN0IHByb2NfZXZlbnQgKiltc2ctPmRhdGE7DQorCW1l bXNldCgmZXYtPmV2ZW50X2RhdGEsIDAsIHNpemVvZihldi0+ZXZlbnRfZGF0YSkpOw0KIAlnZXRf c2VxKCZtc2ctPnNlcSwgJmV2LT5jcHUpOw0KIAlrdGltZV9nZXRfdHMoJnRzKTsgLyogZ2V0IGhp Z2ggcmVzIG1vbm90b25pYyB0aW1lc3RhbXAgKi8NCiAJcHV0X3VuYWxpZ25lZCh0aW1lc3BlY190 b19ucygmdHMpLCAoX191NjQgKikmZXYtPnRpbWVzdGFtcF9ucyk7DQpAQCAtMjAyLDYgKzIxMSw3 IEBAIHZvaWQgcHJvY19wdHJhY2VfY29ubmVjdG9yKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywg aW50IHB0cmFjZV9pZCkNCiAJbWVtY3B5KCZtc2ctPmlkLCAmY25fcHJvY19ldmVudF9pZCwgc2l6 ZW9mKG1zZy0+aWQpKTsNCiAJbXNnLT5hY2sgPSAwOyAvKiBub3QgdXNlZCAqLw0KIAltc2ctPmxl biA9IHNpemVvZigqZXYpOw0KKwltc2ctPmZsYWdzID0gMDsgLyogbm90IHVzZWQgKi8NCiAJY25f bmV0bGlua19zZW5kKG1zZywgQ05fSURYX1BST0MsIEdGUF9LRVJORUwpOw0KIH0NCiANCkBAIC0y MTcsNiArMjI3LDcgQEAgdm9pZCBwcm9jX2NvbW1fY29ubmVjdG9yKHN0cnVjdCB0YXNrX3N0cnVj dCAqdGFzaykNCiANCiAJbXNnID0gKHN0cnVjdCBjbl9tc2cgKilidWZmZXI7DQogCWV2ID0gKHN0 cnVjdCBwcm9jX2V2ZW50ICopbXNnLT5kYXRhOw0KKwltZW1zZXQoJmV2LT5ldmVudF9kYXRhLCAw LCBzaXplb2YoZXYtPmV2ZW50X2RhdGEpKTsNCiAJZ2V0X3NlcSgmbXNnLT5zZXEsICZldi0+Y3B1 KTsNCiAJa3RpbWVfZ2V0X3RzKCZ0cyk7IC8qIGdldCBoaWdoIHJlcyBtb25vdG9uaWMgdGltZXN0 YW1wICovDQogCXB1dF91bmFsaWduZWQodGltZXNwZWNfdG9fbnMoJnRzKSwgKF9fdTY0ICopJmV2 LT50aW1lc3RhbXBfbnMpOw0KQEAgLTIyOCw2ICsyMzksNyBAQCB2b2lkIHByb2NfY29tbV9jb25u ZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KIAltZW1jcHkoJm1zZy0+aWQsICZjbl9w cm9jX2V2ZW50X2lkLCBzaXplb2YobXNnLT5pZCkpOw0KIAltc2ctPmFjayA9IDA7IC8qIG5vdCB1 c2VkICovDQogCW1zZy0+bGVuID0gc2l6ZW9mKCpldik7DQorCW1zZy0+ZmxhZ3MgPSAwOyAvKiBu b3QgdXNlZCAqLw0KIAljbl9uZXRsaW5rX3NlbmQobXNnLCBDTl9JRFhfUFJPQywgR0ZQX0tFUk5F TCk7DQogfQ0KIA0KQEAgLTI0Myw2ICsyNTUsNyBAQCB2b2lkIHByb2NfZXhpdF9jb25uZWN0b3Io c3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KIA0KIAltc2cgPSAoc3RydWN0IGNuX21zZyopYnVm ZmVyOw0KIAlldiA9IChzdHJ1Y3QgcHJvY19ldmVudCopbXNnLT5kYXRhOw0KKwltZW1zZXQoJmV2 LT5ldmVudF9kYXRhLCAwLCBzaXplb2YoZXYtPmV2ZW50X2RhdGEpKTsNCiAJZ2V0X3NlcSgmbXNn LT5zZXEsICZldi0+Y3B1KTsNCiAJa3RpbWVfZ2V0X3RzKCZ0cyk7IC8qIGdldCBoaWdoIHJlcyBt b25vdG9uaWMgdGltZXN0YW1wICovDQogCXB1dF91bmFsaWduZWQodGltZXNwZWNfdG9fbnMoJnRz KSwgKF9fdTY0ICopJmV2LT50aW1lc3RhbXBfbnMpOw0KQEAgLTI1NSw2ICsyNjgsNyBAQCB2b2lk IHByb2NfZXhpdF9jb25uZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KIAltZW1jcHko Jm1zZy0+aWQsICZjbl9wcm9jX2V2ZW50X2lkLCBzaXplb2YobXNnLT5pZCkpOw0KIAltc2ctPmFj ayA9IDA7IC8qIG5vdCB1c2VkICovDQogCW1zZy0+bGVuID0gc2l6ZW9mKCpldik7DQorCW1zZy0+ ZmxhZ3MgPSAwOyAvKiBub3QgdXNlZCAqLw0KIAljbl9uZXRsaW5rX3NlbmQobXNnLCBDTl9JRFhf UFJPQywgR0ZQX0tFUk5FTCk7DQogfQ0KIA0KQEAgLTI3OCw2ICsyOTIsNyBAQCBzdGF0aWMgdm9p ZCBjbl9wcm9jX2FjayhpbnQgZXJyLCBpbnQgcmN2ZF9zZXEsIGludCByY3ZkX2FjaykNCiANCiAJ bXNnID0gKHN0cnVjdCBjbl9tc2cqKWJ1ZmZlcjsNCiAJZXYgPSAoc3RydWN0IHByb2NfZXZlbnQq KW1zZy0+ZGF0YTsNCisJbWVtc2V0KCZldi0+ZXZlbnRfZGF0YSwgMCwgc2l6ZW9mKGV2LT5ldmVu dF9kYXRhKSk7DQogCW1zZy0+c2VxID0gcmN2ZF9zZXE7DQogCWt0aW1lX2dldF90cygmdHMpOyAv KiBnZXQgaGlnaCByZXMgbW9ub3RvbmljIHRpbWVzdGFtcCAqLw0KIAlwdXRfdW5hbGlnbmVkKHRp bWVzcGVjX3RvX25zKCZ0cyksIChfX3U2NCAqKSZldi0+dGltZXN0YW1wX25zKTsNCkBAIC0yODcs NiArMzAyLDcgQEAgc3RhdGljIHZvaWQgY25fcHJvY19hY2soaW50IGVyciwgaW50IHJjdmRfc2Vx LCBpbnQgcmN2ZF9hY2spDQogCW1lbWNweSgmbXNnLT5pZCwgJmNuX3Byb2NfZXZlbnRfaWQsIHNp emVvZihtc2ctPmlkKSk7DQogCW1zZy0+YWNrID0gcmN2ZF9hY2sgKyAxOw0KIAltc2ctPmxlbiA9 IHNpemVvZigqZXYpOw0KKwltc2ctPmZsYWdzID0gMDsgLyogbm90IHVzZWQgKi8NCiAJY25fbmV0 bGlua19zZW5kKG1zZywgQ05fSURYX1BST0MsIEdGUF9LRVJORUwpOw0KIH0NCiANCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Nvbm5lY3Rvci9jb25uZWN0b3IuYyBiL2RyaXZlcnMvY29ubmVjdG9yL2Nv bm5lY3Rvci5jDQppbmRleCBkZGU2YTBmLi5lYTZlZmU4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9j b25uZWN0b3IvY29ubmVjdG9yLmMNCisrKyBiL2RyaXZlcnMvY29ubmVjdG9yL2Nvbm5lY3Rvci5j DQpAQCAtMTU3LDE3ICsxNTcsMTggQEAgc3RhdGljIGludCBjbl9jYWxsX2NhbGxiYWNrKHN0cnVj dCBza19idWZmICpza2IpDQogc3RhdGljIHZvaWQgY25fcnhfc2tiKHN0cnVjdCBza19idWZmICpf X3NrYikNCiB7DQogCXN0cnVjdCBubG1zZ2hkciAqbmxoOw0KLQlpbnQgZXJyOw0KIAlzdHJ1Y3Qg c2tfYnVmZiAqc2tiOw0KKwlpbnQgbGVuLCBlcnI7DQogDQogCXNrYiA9IHNrYl9nZXQoX19za2Ip Ow0KIA0KIAlpZiAoc2tiLT5sZW4gPj0gTkxNU0dfU1BBQ0UoMCkpIHsNCiAJCW5saCA9IG5sbXNn X2hkcihza2IpOw0KKwkJbGVuID0gbmxtc2dfbGVuKG5saCk7DQogDQotCQlpZiAobmxoLT5ubG1z Z19sZW4gPCBzaXplb2Yoc3RydWN0IGNuX21zZykgfHwNCisJCWlmIChsZW4gPCAoaW50KXNpemVv ZihzdHJ1Y3QgY25fbXNnKSB8fA0KIAkJICAgIHNrYi0+bGVuIDwgbmxoLT5ubG1zZ19sZW4gfHwN Ci0JCSAgICBubGgtPm5sbXNnX2xlbiA+IENPTk5FQ1RPUl9NQVhfTVNHX1NJWkUpIHsNCisJCSAg ICBsZW4gPiBDT05ORUNUT1JfTUFYX01TR19TSVpFKSB7DQogCQkJa2ZyZWVfc2tiKHNrYik7DQog CQkJcmV0dXJuOw0KIAkJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZl cmdyZWVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jDQppbmRleCBhNjgw NTdhLi41ZWZiYTQ3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3Jl ZW4uYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYw0KQEAgLTE3OTcs NyArMTc5Nyw3IEBAIHN0YXRpYyB2b2lkIGV2ZXJncmVlbl9ncHVfaW5pdChzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldikNCiAJCXJkZXYtPmNvbmZpZy5ldmVyZ3JlZW4uc3hfbWF4X2V4cG9ydF9z aXplID0gMjU2Ow0KIAkJcmRldi0+Y29uZmlnLmV2ZXJncmVlbi5zeF9tYXhfZXhwb3J0X3Bvc19z aXplID0gNjQ7DQogCQlyZGV2LT5jb25maWcuZXZlcmdyZWVuLnN4X21heF9leHBvcnRfc214X3Np emUgPSAxOTI7DQotCQlyZGV2LT5jb25maWcuZXZlcmdyZWVuLm1heF9od19jb250ZXh0cyA9IDg7 DQorCQlyZGV2LT5jb25maWcuZXZlcmdyZWVuLm1heF9od19jb250ZXh0cyA9IDQ7DQogCQlyZGV2 LT5jb25maWcuZXZlcmdyZWVuLnNxX251bV9jZl9pbnN0cyA9IDI7DQogDQogCQlyZGV2LT5jb25m aWcuZXZlcmdyZWVuLnNjX3ByaW1fZmlmb19zaXplID0gMHg0MDsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2h3bW9uL2FwcGxlc21jLmMgYi9kcml2ZXJzL2h3bW9uL2FwcGxlc21jLmMNCmluZGV4IDMw Y2FjNTguLjBiODZkNDcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2h3bW9uL2FwcGxlc21jLmMNCisr KyBiL2RyaXZlcnMvaHdtb24vYXBwbGVzbWMuYw0KQEAgLTIxMiw2ICsyMTIsNyBAQCBzdGF0aWMg aW50IHNlbmRfYXJndW1lbnQoY29uc3QgY2hhciAqa2V5KQ0KIA0KIHN0YXRpYyBpbnQgcmVhZF9z bWModTggY21kLCBjb25zdCBjaGFyICprZXksIHU4ICpidWZmZXIsIHU4IGxlbikNCiB7DQorCXU4 IHN0YXR1cywgZGF0YSA9IDA7DQogCWludCBpOw0KIA0KIAlpZiAoc2VuZF9jb21tYW5kKGNtZCkg fHwgc2VuZF9hcmd1bWVudChrZXkpKSB7DQpAQCAtMjE5LDYgKzIyMCw3IEBAIHN0YXRpYyBpbnQg cmVhZF9zbWModTggY21kLCBjb25zdCBjaGFyICprZXksIHU4ICpidWZmZXIsIHU4IGxlbikNCiAJ CXJldHVybiAtRUlPOw0KIAl9DQogDQorCS8qIFRoaXMgaGFzIG5vIGVmZmVjdCBvbiBuZXdlciAo MjAxMikgU01DcyAqLw0KIAlvdXRiKGxlbiwgQVBQTEVTTUNfREFUQV9QT1JUKTsNCiANCiAJZm9y IChpID0gMDsgaSA8IGxlbjsgaSsrKSB7DQpAQCAtMjI5LDYgKzIzMSwxNyBAQCBzdGF0aWMgaW50 IHJlYWRfc21jKHU4IGNtZCwgY29uc3QgY2hhciAqa2V5LCB1OCAqYnVmZmVyLCB1OCBsZW4pDQog CQlidWZmZXJbaV0gPSBpbmIoQVBQTEVTTUNfREFUQV9QT1JUKTsNCiAJfQ0KIA0KKwkvKiBSZWFk IHRoZSBkYXRhIHBvcnQgdW50aWwgYml0MCBpcyBjbGVhcmVkICovDQorCWZvciAoaSA9IDA7IGkg PCAxNjsgaSsrKSB7DQorCQl1ZGVsYXkoQVBQTEVTTUNfTUlOX1dBSVQpOw0KKwkJc3RhdHVzID0g aW5iKEFQUExFU01DX0NNRF9QT1JUKTsNCisJCWlmICghKHN0YXR1cyAmIDB4MDEpKQ0KKwkJCWJy ZWFrOw0KKwkJZGF0YSA9IGluYihBUFBMRVNNQ19EQVRBX1BPUlQpOw0KKwl9DQorCWlmIChpKQ0K KwkJcHJfd2FybigiZmx1c2hlZCAlZCBieXRlcywgbGFzdCB2YWx1ZSBpczogJWRcbiIsIGksIGRh dGEpOw0KKw0KIAlyZXR1cm4gMDsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1z bmFwLXBlcnNpc3RlbnQuYyBiL2RyaXZlcnMvbWQvZG0tc25hcC1wZXJzaXN0ZW50LmMNCmluZGV4 IDNhYzQxNTYuLjc1YzE4MmIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21kL2RtLXNuYXAtcGVyc2lz dGVudC5jDQorKysgYi9kcml2ZXJzL21kL2RtLXNuYXAtcGVyc2lzdGVudC5jDQpAQCAtMjY5LDYg KzI2OSwxNCBAQCBzdGF0aWMgY2h1bmtfdCBhcmVhX2xvY2F0aW9uKHN0cnVjdCBwc3RvcmUgKnBz LCBjaHVua190IGFyZWEpDQogCXJldHVybiBOVU1fU05BUFNIT1RfSERSX0NIVU5LUyArICgocHMt PmV4Y2VwdGlvbnNfcGVyX2FyZWEgKyAxKSAqIGFyZWEpOw0KIH0NCiANCitzdGF0aWMgdm9pZCBz a2lwX21ldGFkYXRhKHN0cnVjdCBwc3RvcmUgKnBzKQ0KK3sNCisJdWludDMyX3Qgc3RyaWRlID0g cHMtPmV4Y2VwdGlvbnNfcGVyX2FyZWEgKyAxOw0KKwljaHVua190IG5leHRfZnJlZSA9IHBzLT5u ZXh0X2ZyZWU7DQorCWlmIChzZWN0b3JfZGl2KG5leHRfZnJlZSwgc3RyaWRlKSA9PSBOVU1fU05B UFNIT1RfSERSX0NIVU5LUykNCisJCXBzLT5uZXh0X2ZyZWUrKzsNCit9DQorDQogLyoNCiAgKiBS ZWFkIG9yIHdyaXRlIGEgbWV0YWRhdGEgYXJlYS4gIFJlbWVtYmVyaW5nIHRvIHNraXAgdGhlIGZp cnN0DQogICogY2h1bmsgd2hpY2ggaG9sZHMgdGhlIGhlYWRlci4NCkBAIC01MDIsNiArNTEwLDgg QEAgc3RhdGljIGludCByZWFkX2V4Y2VwdGlvbnMoc3RydWN0IHBzdG9yZSAqcHMsDQogDQogCXBz LT5jdXJyZW50X2FyZWEtLTsNCiANCisJc2tpcF9tZXRhZGF0YShwcyk7DQorDQogCXJldHVybiAw Ow0KIH0NCiANCkBAIC02MTYsOCArNjI2LDYgQEAgc3RhdGljIGludCBwZXJzaXN0ZW50X3ByZXBh cmVfZXhjZXB0aW9uKHN0cnVjdCBkbV9leGNlcHRpb25fc3RvcmUgKnN0b3JlLA0KIAkJCQkJc3Ry dWN0IGRtX2V4Y2VwdGlvbiAqZSkNCiB7DQogCXN0cnVjdCBwc3RvcmUgKnBzID0gZ2V0X2luZm8o c3RvcmUpOw0KLQl1aW50MzJfdCBzdHJpZGU7DQotCWNodW5rX3QgbmV4dF9mcmVlOw0KIAlzZWN0 b3JfdCBzaXplID0gZ2V0X2Rldl9zaXplKGRtX3NuYXBfY293KHN0b3JlLT5zbmFwKS0+YmRldik7 DQogDQogCS8qIElzIHRoZXJlIGVub3VnaCByb29tID8gKi8NCkBAIC02MzAsMTAgKzYzOCw4IEBA IHN0YXRpYyBpbnQgcGVyc2lzdGVudF9wcmVwYXJlX2V4Y2VwdGlvbihzdHJ1Y3QgZG1fZXhjZXB0 aW9uX3N0b3JlICpzdG9yZSwNCiAJICogTW92ZSBvbnRvIHRoZSBuZXh0IGZyZWUgcGVuZGluZywg bWFraW5nIHN1cmUgdG8gdGFrZQ0KIAkgKiBpbnRvIGFjY291bnQgdGhlIGxvY2F0aW9uIG9mIHRo ZSBtZXRhZGF0YSBjaHVua3MuDQogCSAqLw0KLQlzdHJpZGUgPSAocHMtPmV4Y2VwdGlvbnNfcGVy X2FyZWEgKyAxKTsNCi0JbmV4dF9mcmVlID0gKytwcy0+bmV4dF9mcmVlOw0KLQlpZiAoc2VjdG9y X2RpdihuZXh0X2ZyZWUsIHN0cmlkZSkgPT0gMSkNCi0JCXBzLT5uZXh0X2ZyZWUrKzsNCisJcHMt Pm5leHRfZnJlZSsrOw0KKwlza2lwX21ldGFkYXRhKHBzKTsNCiANCiAJYXRvbWljX2luYygmcHMt PnBlbmRpbmdfY291bnQpOw0KIAlyZXR1cm4gMDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9j YW4vZGV2LmMgYi9kcml2ZXJzL25ldC9jYW4vZGV2LmMNCmluZGV4IGEzMTkwNTcuLmRlODdmODIg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9jYW4vZGV2LmMNCisrKyBiL2RyaXZlcnMvbmV0L2Nh bi9kZXYuYw0KQEAgLTY1OCwxNCArNjU4LDE0IEBAIHN0YXRpYyBzaXplX3QgY2FuX2dldF9zaXpl KGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQogCXNpemVfdCBzaXplOw0KIA0KIAlzaXpl ID0gbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpOyAgIC8qIElGTEFfQ0FOX1NUQVRFICovDQot CXNpemUgKz0gc2l6ZW9mKHN0cnVjdCBjYW5fY3RybG1vZGUpOyAgLyogSUZMQV9DQU5fQ1RSTE1P REUgKi8NCisJc2l6ZSArPSBubGFfdG90YWxfc2l6ZShzaXplb2Yoc3RydWN0IGNhbl9jdHJsbW9k ZSkpOyAgLyogSUZMQV9DQU5fQ1RSTE1PREUgKi8NCiAJc2l6ZSArPSBubGFfdG90YWxfc2l6ZShz aXplb2YodTMyKSk7ICAvKiBJRkxBX0NBTl9SRVNUQVJUX01TICovDQotCXNpemUgKz0gc2l6ZW9m KHN0cnVjdCBjYW5fYml0dGltaW5nKTsgLyogSUZMQV9DQU5fQklUVElNSU5HICovDQotCXNpemUg Kz0gc2l6ZW9mKHN0cnVjdCBjYW5fY2xvY2spOyAgICAgLyogSUZMQV9DQU5fQ0xPQ0sgKi8NCisJ c2l6ZSArPSBubGFfdG90YWxfc2l6ZShzaXplb2Yoc3RydWN0IGNhbl9iaXR0aW1pbmcpKTsgLyog SUZMQV9DQU5fQklUVElNSU5HICovDQorCXNpemUgKz0gbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHN0 cnVjdCBjYW5fY2xvY2spKTsgICAgIC8qIElGTEFfQ0FOX0NMT0NLICovDQogCWlmIChwcml2LT5k b19nZXRfYmVycl9jb3VudGVyKSAgICAgICAgLyogSUZMQV9DQU5fQkVSUl9DT1VOVEVSICovDQot CQlzaXplICs9IHNpemVvZihzdHJ1Y3QgY2FuX2JlcnJfY291bnRlcik7DQorCQlzaXplICs9IG5s YV90b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgY2FuX2JlcnJfY291bnRlcikpOw0KIAlpZiAocHJp di0+Yml0dGltaW5nX2NvbnN0KQkgICAgICAvKiBJRkxBX0NBTl9CSVRUSU1JTkdfQ09OU1QgKi8N Ci0JCXNpemUgKz0gc2l6ZW9mKHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0KTsNCisJCXNpemUg Kz0gbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0KSk7DQog DQogCXJldHVybiBzaXplOw0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueDJ4L2JueDJ4X2Ntbi5jDQppbmRleCA0YzUwYWMwLi5iYmI2NjkyIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmMNCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jDQpAQCAtNTE2LDYg KzUxNiw3IEBAIHN0YXRpYyB2b2lkIGJueDJ4X3RwYV9zdG9wKHN0cnVjdCBibngyeCAqYnAsIHN0 cnVjdCBibngyeF9mYXN0cGF0aCAqZnAsDQogCQlpZiAoIWJueDJ4X2ZpbGxfZnJhZ19za2IoYnAs IGZwLCBxdWV1ZSwgc2tiLCBjcWUsIGNxZV9pZHgpKSB7DQogCQkJaWYgKHRwYV9pbmZvLT5wYXJz aW5nX2ZsYWdzICYgUEFSU0lOR19GTEFHU19WTEFOKQ0KIAkJCQlfX3ZsYW5faHdhY2NlbF9wdXRf dGFnKHNrYiwgdHBhX2luZm8tPnZsYW5fdGFnKTsNCisJCQlza2JfcmVjb3JkX3J4X3F1ZXVlKHNr YiwgZnAtPmluZGV4KTsNCiAJCQluYXBpX2dyb19yZWNlaXZlKCZmcC0+bmFwaSwgc2tiKTsNCiAJ CX0gZWxzZSB7DQogCQkJRFAoTkVUSUZfTVNHX1JYX1NUQVRVUywgIkZhaWxlZCB0byBhbGxvY2F0 ZSBuZXcgcGFnZXMiDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay84 MTM5Y3AuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvODEzOWNwLmMNCmluZGV4IDQy MzZiODIuLjRhYTgzMGYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVr LzgxMzljcC5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrLzgxMzljcC5jDQpA QCAtMTIzNCw2ICsxMjM0LDcgQEAgc3RhdGljIHZvaWQgY3BfdHhfdGltZW91dChzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQ0KIAljcF9jbGVhbl9yaW5ncyhjcCk7DQogCXJjID0gY3BfaW5pdF9yaW5n cyhjcCk7DQogCWNwX3N0YXJ0X2h3KGNwKTsNCisJY3BfZW5hYmxlX2lycShjcCk7DQogDQogCW5l dGlmX3dha2VfcXVldWUoZGV2KTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC90aS9kYXZpbmNpX2VtYWMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2RhdmluY2lfZW1h Yy5jDQppbmRleCBmZDgxMTVlLi4xMDY2OGViIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvdGkvZGF2aW5jaV9lbWFjLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Rh dmluY2lfZW1hYy5jDQpAQCAtODczLDggKzg3Myw3IEBAIHN0YXRpYyB2b2lkIGVtYWNfZGV2X21j YXN0X3NldChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikNCiAJCSAgICBuZXRkZXZfbWNfY291bnQo bmRldikgPiBFTUFDX0RFRl9NQVhfTVVMVElDQVNUX0FERFJFU1NFUykgew0KIAkJCW1icF9lbmFi bGUgPSAobWJwX2VuYWJsZSB8IEVNQUNfTUJQX1JYTUNBU1QpOw0KIAkJCWVtYWNfYWRkX21jYXN0 KHByaXYsIEVNQUNfQUxMX01VTFRJX1NFVCwgTlVMTCk7DQotCQl9DQotCQlpZiAoIW5ldGRldl9t Y19lbXB0eShuZGV2KSkgew0KKwkJfSBlbHNlIGlmICghbmV0ZGV2X21jX2VtcHR5KG5kZXYpKSB7 DQogCQkJc3RydWN0IG5ldGRldl9od19hZGRyICpoYTsNCiANCiAJCQltYnBfZW5hYmxlID0gKG1i cF9lbmFibGUgfCBFTUFDX01CUF9SWE1DQVNUKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93 YW4vZmFyc3luYy5jIGIvZHJpdmVycy9uZXQvd2FuL2ZhcnN5bmMuYw0KaW5kZXggZWJiOWYyNC4u N2E0YzQ5MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dhbi9mYXJzeW5jLmMNCisrKyBiL2Ry aXZlcnMvbmV0L3dhbi9mYXJzeW5jLmMNCkBAIC0xOTcyLDYgKzE5NzIsNyBAQCBmc3RfZ2V0X2lm YWNlKHN0cnVjdCBmc3RfY2FyZF9pbmZvICpjYXJkLCBzdHJ1Y3QgZnN0X3BvcnRfaW5mbyAqcG9y dCwNCiAJfQ0KIA0KIAlpID0gcG9ydC0+aW5kZXg7DQorCW1lbXNldCgmc3luYywgMCwgc2l6ZW9m KHN5bmMpKTsNCiAJc3luYy5jbG9ja19yYXRlID0gRlNUX1JETChjYXJkLCBwb3J0Q29uZmlnW2ld LmxpbmVTcGVlZCk7DQogCS8qIEx1Y2t5IGNhcmQgYW5kIGxpbnV4IHVzZSBzYW1lIGVuY29kaW5n IGhlcmUgKi8NCiAJc3luYy5jbG9ja190eXBlID0gRlNUX1JEQihjYXJkLCBwb3J0Q29uZmlnW2ld LmludGVybmFsQ2xvY2spID09DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMg Yi9kcml2ZXJzL25ldC93YW4vd2FueGwuYw0KaW5kZXggNDRiNzA3MS4uYzY0M2Q3NyAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jDQorKysgYi9kcml2ZXJzL25ldC93YW4vd2Fu eGwuYw0KQEAgLTM1NSw2ICszNTUsNyBAQCBzdGF0aWMgaW50IHdhbnhsX2lvY3RsKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqaWZyLCBpbnQgY21kKQ0KIAkJCWlmci0+aWZy X3NldHRpbmdzLnNpemUgPSBzaXplOyAvKiBkYXRhIHNpemUgd2FudGVkICovDQogCQkJcmV0dXJu IC1FTk9CVUZTOw0KIAkJfQ0KKwkJbWVtc2V0KCZsaW5lLCAwLCBzaXplb2YobGluZSkpOw0KIAkJ bGluZS5jbG9ja190eXBlID0gZ2V0X3N0YXR1cyhwb3J0KS0+Y2xvY2tpbmc7DQogCQlsaW5lLmNs b2NrX3JhdGUgPSAwOw0KIAkJbGluZS5sb29wYmFjayA9IDA7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtMjAwMC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv aXdsd2lmaS9pd2wtMjAwMC5jDQppbmRleCBhOTdhNTJhLi40MDg0NzdkIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtMjAwMC5jDQorKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9pd2x3aWZpL2l3bC0yMDAwLmMNCkBAIC0yNzAsMTEgKzI3MCw2IEBAIHN0cnVj dCBpd2xfY2ZnIGl3bDIwMDBfMmJnbl9jZmcgPSB7DQogCS5odF9wYXJhbXMgPSAmaXdsMjAwMF9o dF9wYXJhbXMsDQogfTsNCiANCi1zdHJ1Y3QgaXdsX2NmZyBpd2wyMDAwXzJiZ19jZmcgPSB7DQot CS5uYW1lID0gIjIwMDAgU2VyaWVzIDJ4MiBCRyIsDQotCUlXTF9ERVZJQ0VfMjAwMCwNCi19Ow0K LQ0KIHN0cnVjdCBpd2xfY2ZnIGl3bDIwMDBfMmJnbl9kX2NmZyA9IHsNCiAJLm5hbWUgPSAiMjAw MEQgU2VyaWVzIDJ4MiBCR04iLA0KIAlJV0xfREVWSUNFXzIwMDAsDQpAQCAtMzA0LDExICsyOTks NiBAQCBzdHJ1Y3QgaXdsX2NmZyBpd2wyMDMwXzJiZ25fY2ZnID0gew0KIAkuaHRfcGFyYW1zID0g Jml3bDIwMDBfaHRfcGFyYW1zLA0KIH07DQogDQotc3RydWN0IGl3bF9jZmcgaXdsMjAzMF8yYmdf Y2ZnID0gew0KLQkubmFtZSA9ICIyMDAwIFNlcmllcyAyeDIgQkcvQlQiLA0KLQlJV0xfREVWSUNF XzIwMzAsDQotfTsNCi0NCiAjZGVmaW5lIElXTF9ERVZJQ0VfMTA1CQkJCQkJXA0KIAkuZndfbmFt ZV9wcmUgPSBJV0wxMDVfRldfUFJFLAkJCQlcDQogCS51Y29kZV9hcGlfbWF4ID0gSVdMMTA1X1VD T0RFX0FQSV9NQVgsCQkJXA0KQEAgLTMyNiwxMSArMzE2LDYgQEAgc3RydWN0IGl3bF9jZmcgaXds MjAzMF8yYmdfY2ZnID0gew0KIAkucnhfd2l0aF9zaXNvX2RpdmVyc2l0eSA9IHRydWUsCQkJCVwN CiAJLmlxX2ludmVydCA9IHRydWUJCQkJCVwNCiANCi1zdHJ1Y3QgaXdsX2NmZyBpd2wxMDVfYmdf Y2ZnID0gew0KLQkubmFtZSA9ICIxMDUgU2VyaWVzIDF4MSBCRyIsDQotCUlXTF9ERVZJQ0VfMTA1 LA0KLX07DQotDQogc3RydWN0IGl3bF9jZmcgaXdsMTA1X2Jnbl9jZmcgPSB7DQogCS5uYW1lID0g IjEwNSBTZXJpZXMgMXgxIEJHTiIsDQogCUlXTF9ERVZJQ0VfMTA1LA0KQEAgLTM2MSwxMSArMzQ2 LDYgQEAgc3RydWN0IGl3bF9jZmcgaXdsMTA1X2Jnbl9kX2NmZyA9IHsNCiAJLnJ4X3dpdGhfc2lz b19kaXZlcnNpdHkgPSB0cnVlLAkJCQlcDQogCS5pcV9pbnZlcnQgPSB0cnVlCQkJCQlcDQogDQot c3RydWN0IGl3bF9jZmcgaXdsMTM1X2JnX2NmZyA9IHsNCi0JLm5hbWUgPSAiMTM1IFNlcmllcyAx eDEgQkcvQlQiLA0KLQlJV0xfREVWSUNFXzEzNSwNCi19Ow0KLQ0KIHN0cnVjdCBpd2xfY2ZnIGl3 bDEzNV9iZ25fY2ZnID0gew0KIAkubmFtZSA9ICIxMzUgU2VyaWVzIDF4MSBCR04vQlQiLA0KIAlJ V0xfREVWSUNFXzEzNSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZp L2l3bC02MDAwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC02MDAwLmMNCmlu ZGV4IDRhYzRlZjAuLmUxYTQzYzQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9p d2x3aWZpL2l3bC02MDAwLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXds LTYwMDAuYw0KQEAgLTQxMSw2ICs0MTEsMTcgQEAgc3RydWN0IGl3bF9jZmcgaXdsNjAwNV8yYWdu X2RfY2ZnID0gew0KIAkuaHRfcGFyYW1zID0gJml3bDYwMDBfaHRfcGFyYW1zLA0KIH07DQogDQor c3RydWN0IGl3bF9jZmcgaXdsNjAwNV8yYWduX21vdzFfY2ZnID0gew0KKwkubmFtZSA9ICJJbnRl bChSKSBDZW50cmlubyhSKSBBZHZhbmNlZC1OIDYyMDYgQUdOIiwNCisJSVdMX0RFVklDRV82MDA1 LA0KKwkuaHRfcGFyYW1zID0gJml3bDYwMDBfaHRfcGFyYW1zLA0KK307DQorc3RydWN0IGl3bF9j ZmcgaXdsNjAwNV8yYWduX21vdzJfY2ZnID0gew0KKwkubmFtZSA9ICJJbnRlbChSKSBDZW50cmlu byhSKSBBZHZhbmNlZC1OIDYyMDcgQUdOIiwNCisJSVdMX0RFVklDRV82MDA1LA0KKwkuaHRfcGFy YW1zID0gJml3bDYwMDBfaHRfcGFyYW1zLA0KK307DQorDQogI2RlZmluZSBJV0xfREVWSUNFXzYw MzAJCQkJCQlcDQogCS5md19uYW1lX3ByZSA9IElXTDYwMzBfRldfUFJFLAkJCQlcDQogCS51Y29k ZV9hcGlfbWF4ID0gSVdMNjAwMEcyX1VDT0RFX0FQSV9NQVgsCQlcDQpAQCAtNDY5LDE0ICs0ODAs MTAgQEAgc3RydWN0IGl3bF9jZmcgaXdsNjAzNV8yYWduX2NmZyA9IHsNCiAJLmh0X3BhcmFtcyA9 ICZpd2w2MDAwX2h0X3BhcmFtcywNCiB9Ow0KIA0KLXN0cnVjdCBpd2xfY2ZnIGl3bDYwMzVfMmFi Z19jZmcgPSB7DQotCS5uYW1lID0gIjYwMzUgU2VyaWVzIDJ4MiBBQkcvQlQiLA0KLQlJV0xfREVW SUNFXzYwMzAsDQotfTsNCi0NCi1zdHJ1Y3QgaXdsX2NmZyBpd2w2MDM1XzJiZ19jZmcgPSB7DQot CS5uYW1lID0gIjYwMzUgU2VyaWVzIDJ4MiBCRy9CVCIsDQotCUlXTF9ERVZJQ0VfNjAzMCwNCitz dHJ1Y3QgaXdsX2NmZyBpd2w2MDM1XzJhZ25fc2ZmX2NmZyA9IHsNCisJLm5hbWUgPSAiSW50ZWwo UikgQ2VudHJpbm8oUikgVWx0aW1hdGUtTiA2MjM1IEFHTiIsDQorCUlXTF9ERVZJQ0VfNjAzNSwN CisJLmh0X3BhcmFtcyA9ICZpd2w2MDAwX2h0X3BhcmFtcywNCiB9Ow0KIA0KIHN0cnVjdCBpd2xf Y2ZnIGl3bDEwMzBfYmduX2NmZyA9IHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9pd2x3aWZpL2l3bC1jZmcuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLWNm Zy5oDQppbmRleCAyYTJkYzQ1Li5lNzg2NDk3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvaXdsd2lmaS9pd2wtY2ZnLmgNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdp ZmkvaXdsLWNmZy5oDQpAQCAtODAsNiArODAsOCBAQCBleHRlcm4gc3RydWN0IGl3bF9jZmcgaXds NjAwNV8yYWJnX2NmZzsNCiBleHRlcm4gc3RydWN0IGl3bF9jZmcgaXdsNjAwNV8yYmdfY2ZnOw0K IGV4dGVybiBzdHJ1Y3QgaXdsX2NmZyBpd2w2MDA1XzJhZ25fc2ZmX2NmZzsNCiBleHRlcm4gc3Ry dWN0IGl3bF9jZmcgaXdsNjAwNV8yYWduX2RfY2ZnOw0KK2V4dGVybiBzdHJ1Y3QgaXdsX2NmZyBp d2w2MDA1XzJhZ25fbW93MV9jZmc7DQorZXh0ZXJuIHN0cnVjdCBpd2xfY2ZnIGl3bDYwMDVfMmFn bl9tb3cyX2NmZzsNCiBleHRlcm4gc3RydWN0IGl3bF9jZmcgaXdsMTAzMF9iZ25fY2ZnOw0KIGV4 dGVybiBzdHJ1Y3QgaXdsX2NmZyBpd2wxMDMwX2JnX2NmZzsNCiBleHRlcm4gc3RydWN0IGl3bF9j ZmcgaXdsNjAzMF8yYWduX2NmZzsNCkBAIC0xMDEsMTcgKzEwMywxMiBAQCBleHRlcm4gc3RydWN0 IGl3bF9jZmcgaXdsMTAwX2JnX2NmZzsNCiBleHRlcm4gc3RydWN0IGl3bF9jZmcgaXdsMTMwX2Jn bl9jZmc7DQogZXh0ZXJuIHN0cnVjdCBpd2xfY2ZnIGl3bDEzMF9iZ19jZmc7DQogZXh0ZXJuIHN0 cnVjdCBpd2xfY2ZnIGl3bDIwMDBfMmJnbl9jZmc7DQotZXh0ZXJuIHN0cnVjdCBpd2xfY2ZnIGl3 bDIwMDBfMmJnX2NmZzsNCiBleHRlcm4gc3RydWN0IGl3bF9jZmcgaXdsMjAwMF8yYmduX2RfY2Zn Ow0KIGV4dGVybiBzdHJ1Y3QgaXdsX2NmZyBpd2wyMDMwXzJiZ25fY2ZnOw0KLWV4dGVybiBzdHJ1 Y3QgaXdsX2NmZyBpd2wyMDMwXzJiZ19jZmc7DQogZXh0ZXJuIHN0cnVjdCBpd2xfY2ZnIGl3bDYw MzVfMmFnbl9jZmc7DQotZXh0ZXJuIHN0cnVjdCBpd2xfY2ZnIGl3bDYwMzVfMmFiZ19jZmc7DQot ZXh0ZXJuIHN0cnVjdCBpd2xfY2ZnIGl3bDYwMzVfMmJnX2NmZzsNCi1leHRlcm4gc3RydWN0IGl3 bF9jZmcgaXdsMTA1X2JnX2NmZzsNCitleHRlcm4gc3RydWN0IGl3bF9jZmcgaXdsNjAzNV8yYWdu X3NmZl9jZmc7DQogZXh0ZXJuIHN0cnVjdCBpd2xfY2ZnIGl3bDEwNV9iZ25fY2ZnOw0KIGV4dGVy biBzdHJ1Y3QgaXdsX2NmZyBpd2wxMDVfYmduX2RfY2ZnOw0KLWV4dGVybiBzdHJ1Y3QgaXdsX2Nm ZyBpd2wxMzVfYmdfY2ZnOw0KIGV4dGVybiBzdHJ1Y3QgaXdsX2NmZyBpd2wxMzVfYmduX2NmZzsN CiANCiAjZW5kaWYgLyogX19pd2xfcGNpX2hfXyAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2l3bHdpZmkvaXdsLXBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lm aS9pd2wtcGNpLmMNCmluZGV4IDM0NmRjOWIuLjYyYTBmODEgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1wY2kuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvaXdsd2lmaS9pd2wtcGNpLmMNCkBAIC0yMzYsMTMgKzIzNiwxNiBAQCBzdGF0aWMgREVGSU5F X1BDSV9ERVZJQ0VfVEFCTEUoaXdsX2h3X2NhcmRfaWRzKSA9IHsNCiANCiAvKiA2eDAwIFNlcmll cyAqLw0KIAl7SVdMX1BDSV9ERVZJQ0UoMHg0MjJCLCAweDExMDEsIGl3bDYwMDBfM2Fnbl9jZmcp fSwNCisJe0lXTF9QQ0lfREVWSUNFKDB4NDIyQiwgMHgxMTA4LCBpd2w2MDAwXzNhZ25fY2ZnKX0s DQogCXtJV0xfUENJX0RFVklDRSgweDQyMkIsIDB4MTEyMSwgaXdsNjAwMF8zYWduX2NmZyl9LA0K Kwl7SVdMX1BDSV9ERVZJQ0UoMHg0MjJCLCAweDExMjgsIGl3bDYwMDBfM2Fnbl9jZmcpfSwNCiAJ e0lXTF9QQ0lfREVWSUNFKDB4NDIyQywgMHgxMzAxLCBpd2w2MDAwaV8yYWduX2NmZyl9LA0KIAl7 SVdMX1BDSV9ERVZJQ0UoMHg0MjJDLCAweDEzMDYsIGl3bDYwMDBpXzJhYmdfY2ZnKX0sDQogCXtJ V0xfUENJX0RFVklDRSgweDQyMkMsIDB4MTMwNywgaXdsNjAwMGlfMmJnX2NmZyl9LA0KIAl7SVdM X1BDSV9ERVZJQ0UoMHg0MjJDLCAweDEzMjEsIGl3bDYwMDBpXzJhZ25fY2ZnKX0sDQogCXtJV0xf UENJX0RFVklDRSgweDQyMkMsIDB4MTMyNiwgaXdsNjAwMGlfMmFiZ19jZmcpfSwNCiAJe0lXTF9Q Q0lfREVWSUNFKDB4NDIzOCwgMHgxMTExLCBpd2w2MDAwXzNhZ25fY2ZnKX0sDQorCXtJV0xfUENJ X0RFVklDRSgweDQyMzgsIDB4MTExOCwgaXdsNjAwMF8zYWduX2NmZyl9LA0KIAl7SVdMX1BDSV9E RVZJQ0UoMHg0MjM5LCAweDEzMTEsIGl3bDYwMDBpXzJhZ25fY2ZnKX0sDQogCXtJV0xfUENJX0RF VklDRSgweDQyMzksIDB4MTMxNiwgaXdsNjAwMGlfMmFiZ19jZmcpfSwNCiANCkBAIC0yNTAsMTMg KzI1MywxOSBAQCBzdGF0aWMgREVGSU5FX1BDSV9ERVZJQ0VfVEFCTEUoaXdsX2h3X2NhcmRfaWRz KSA9IHsNCiAJe0lXTF9QQ0lfREVWSUNFKDB4MDA4MiwgMHgxMzAxLCBpd2w2MDA1XzJhZ25fY2Zn KX0sDQogCXtJV0xfUENJX0RFVklDRSgweDAwODIsIDB4MTMwNiwgaXdsNjAwNV8yYWJnX2NmZyl9 LA0KIAl7SVdMX1BDSV9ERVZJQ0UoMHgwMDgyLCAweDEzMDcsIGl3bDYwMDVfMmJnX2NmZyl9LA0K Kwl7SVdMX1BDSV9ERVZJQ0UoMHgwMDgyLCAweDEzMDgsIGl3bDYwMDVfMmFnbl9jZmcpfSwNCiAJ e0lXTF9QQ0lfREVWSUNFKDB4MDA4MiwgMHgxMzIxLCBpd2w2MDA1XzJhZ25fY2ZnKX0sDQogCXtJ V0xfUENJX0RFVklDRSgweDAwODIsIDB4MTMyNiwgaXdsNjAwNV8yYWJnX2NmZyl9LA0KKwl7SVdM X1BDSV9ERVZJQ0UoMHgwMDgyLCAweDEzMjgsIGl3bDYwMDVfMmFnbl9jZmcpfSwNCiAJe0lXTF9Q Q0lfREVWSUNFKDB4MDA4NSwgMHgxMzExLCBpd2w2MDA1XzJhZ25fY2ZnKX0sDQorCXtJV0xfUENJ X0RFVklDRSgweDAwODUsIDB4MTMxOCwgaXdsNjAwNV8yYWduX2NmZyl9LA0KIAl7SVdMX1BDSV9E RVZJQ0UoMHgwMDg1LCAweDEzMTYsIGl3bDYwMDVfMmFiZ19jZmcpfSwNCiAJe0lXTF9QQ0lfREVW SUNFKDB4MDA4MiwgMHhDMDIwLCBpd2w2MDA1XzJhZ25fc2ZmX2NmZyl9LA0KIAl7SVdMX1BDSV9E RVZJQ0UoMHgwMDg1LCAweEMyMjAsIGl3bDYwMDVfMmFnbl9zZmZfY2ZnKX0sDQotCXtJV0xfUENJ X0RFVklDRSgweDAwODIsIDB4MTM0MSwgaXdsNjAwNV8yYWduX2RfY2ZnKX0sDQorCXtJV0xfUENJ X0RFVklDRSgweDAwODUsIDB4QzIyOCwgaXdsNjAwNV8yYWduX3NmZl9jZmcpfSwNCisJe0lXTF9Q Q0lfREVWSUNFKDB4MDA4MiwgMHg0ODIwLCBpd2w2MDA1XzJhZ25fZF9jZmcpfSwNCisJe0lXTF9Q Q0lfREVWSUNFKDB4MDA4MiwgMHgxMzA0LCBpd2w2MDA1XzJhZ25fbW93MV9jZmcpfSwvKiBsb3cg NUdIeiBhY3RpdmUgKi8NCisJe0lXTF9QQ0lfREVWSUNFKDB4MDA4MiwgMHgxMzA1LCBpd2w2MDA1 XzJhZ25fbW93Ml9jZmcpfSwvKiBoaWdoIDVHSHogYWN0aXZlICovDQogDQogLyogNngzMCBTZXJp ZXMgKi8NCiAJe0lXTF9QQ0lfREVWSUNFKDB4MDA4QSwgMHg1MzA1LCBpd2wxMDMwX2Jnbl9jZmcp fSwNCkBAIC0zMjYsNDYgKzMzNSwzMyBAQCBzdGF0aWMgREVGSU5FX1BDSV9ERVZJQ0VfVEFCTEUo aXdsX2h3X2NhcmRfaWRzKSA9IHsNCiAJe0lXTF9QQ0lfREVWSUNFKDB4MDg5MCwgMHg0MDIyLCBp d2wyMDAwXzJiZ25fY2ZnKX0sDQogCXtJV0xfUENJX0RFVklDRSgweDA4OTEsIDB4NDIyMiwgaXds MjAwMF8yYmduX2NmZyl9LA0KIAl7SVdMX1BDSV9ERVZJQ0UoMHgwODkwLCAweDQ0MjIsIGl3bDIw MDBfMmJnbl9jZmcpfSwNCi0Je0lXTF9QQ0lfREVWSUNFKDB4MDg5MCwgMHg0MDI2LCBpd2wyMDAw XzJiZ19jZmcpfSwNCi0Je0lXTF9QQ0lfREVWSUNFKDB4MDg5MSwgMHg0MjI2LCBpd2wyMDAwXzJi Z19jZmcpfSwNCi0Je0lXTF9QQ0lfREVWSUNFKDB4MDg5MCwgMHg0NDI2LCBpd2wyMDAwXzJiZ19j ZmcpfSwNCiAJe0lXTF9QQ0lfREVWSUNFKDB4MDg5MCwgMHg0ODIyLCBpd2wyMDAwXzJiZ25fZF9j ZmcpfSwNCiANCiAvKiAyeDMwIFNlcmllcyAqLw0KIAl7SVdMX1BDSV9ERVZJQ0UoMHgwODg3LCAw eDQwNjIsIGl3bDIwMzBfMmJnbl9jZmcpfSwNCiAJe0lXTF9QQ0lfREVWSUNFKDB4MDg4OCwgMHg0 MjYyLCBpd2wyMDMwXzJiZ25fY2ZnKX0sDQogCXtJV0xfUENJX0RFVklDRSgweDA4ODcsIDB4NDQ2 MiwgaXdsMjAzMF8yYmduX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgwODg3LCAweDQwNjYs IGl3bDIwMzBfMmJnX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgwODg4LCAweDQyNjYsIGl3 bDIwMzBfMmJnX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgwODg3LCAweDQ0NjYsIGl3bDIw MzBfMmJnX2NmZyl9LA0KIA0KIC8qIDZ4MzUgU2VyaWVzICovDQogCXtJV0xfUENJX0RFVklDRSgw eDA4OEUsIDB4NDA2MCwgaXdsNjAzNV8yYWduX2NmZyl9LA0KKwl7SVdMX1BDSV9ERVZJQ0UoMHgw ODhFLCAweDQwNkEsIGl3bDYwMzVfMmFnbl9zZmZfY2ZnKX0sDQogCXtJV0xfUENJX0RFVklDRSgw eDA4OEYsIDB4NDI2MCwgaXdsNjAzNV8yYWduX2NmZyl9LA0KKwl7SVdMX1BDSV9ERVZJQ0UoMHgw ODhGLCAweDQyNkEsIGl3bDYwMzVfMmFnbl9zZmZfY2ZnKX0sDQogCXtJV0xfUENJX0RFVklDRSgw eDA4OEUsIDB4NDQ2MCwgaXdsNjAzNV8yYWduX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgw ODhFLCAweDQwNjQsIGl3bDYwMzVfMmFiZ19jZmcpfSwNCi0Je0lXTF9QQ0lfREVWSUNFKDB4MDg4 RiwgMHg0MjY0LCBpd2w2MDM1XzJhYmdfY2ZnKX0sDQotCXtJV0xfUENJX0RFVklDRSgweDA4OEUs IDB4NDQ2NCwgaXdsNjAzNV8yYWJnX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgwODhFLCAw eDQwNjYsIGl3bDYwMzVfMmJnX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgwODhGLCAweDQy NjYsIGl3bDYwMzVfMmJnX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgwODhFLCAweDQ0NjYs IGl3bDYwMzVfMmJnX2NmZyl9LA0KKwl7SVdMX1BDSV9ERVZJQ0UoMHgwODhFLCAweDQ0NkEsIGl3 bDYwMzVfMmFnbl9zZmZfY2ZnKX0sDQorCXtJV0xfUENJX0RFVklDRSgweDA4OEUsIDB4NDg2MCwg aXdsNjAzNV8yYWduX2NmZyl9LA0KKwl7SVdMX1BDSV9ERVZJQ0UoMHgwODhGLCAweDUyNjAsIGl3 bDYwMzVfMmFnbl9jZmcpfSwNCiANCiAvKiAxMDUgU2VyaWVzICovDQogCXtJV0xfUENJX0RFVklD RSgweDA4OTQsIDB4MDAyMiwgaXdsMTA1X2Jnbl9jZmcpfSwNCiAJe0lXTF9QQ0lfREVWSUNFKDB4 MDg5NSwgMHgwMjIyLCBpd2wxMDVfYmduX2NmZyl9LA0KIAl7SVdMX1BDSV9ERVZJQ0UoMHgwODk0 LCAweDA0MjIsIGl3bDEwNV9iZ25fY2ZnKX0sDQotCXtJV0xfUENJX0RFVklDRSgweDA4OTQsIDB4 MDAyNiwgaXdsMTA1X2JnX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgwODk1LCAweDAyMjYs IGl3bDEwNV9iZ19jZmcpfSwNCi0Je0lXTF9QQ0lfREVWSUNFKDB4MDg5NCwgMHgwNDI2LCBpd2wx MDVfYmdfY2ZnKX0sDQogCXtJV0xfUENJX0RFVklDRSgweDA4OTQsIDB4MDgyMiwgaXdsMTA1X2Jn bl9kX2NmZyl9LA0KIA0KIC8qIDEzNSBTZXJpZXMgKi8NCiAJe0lXTF9QQ0lfREVWSUNFKDB4MDg5 MiwgMHgwMDYyLCBpd2wxMzVfYmduX2NmZyl9LA0KIAl7SVdMX1BDSV9ERVZJQ0UoMHgwODkzLCAw eDAyNjIsIGl3bDEzNV9iZ25fY2ZnKX0sDQogCXtJV0xfUENJX0RFVklDRSgweDA4OTIsIDB4MDQ2 MiwgaXdsMTM1X2Jnbl9jZmcpfSwNCi0Je0lXTF9QQ0lfREVWSUNFKDB4MDg5MiwgMHgwMDY2LCBp d2wxMzVfYmdfY2ZnKX0sDQotCXtJV0xfUENJX0RFVklDRSgweDA4OTMsIDB4MDI2NiwgaXdsMTM1 X2JnX2NmZyl9LA0KLQl7SVdMX1BDSV9ERVZJQ0UoMHgwODkyLCAweDA0NjYsIGl3bDEzNV9iZ19j ZmcpfSwNCiANCiAJezB9DQogfTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9y dGx3aWZpL3J0bDgxOTJjdS90cnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRs ODE5MmN1L3RyeC5jDQppbmRleCBiYzMzYjE0Li5hN2UxYTJjIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3UvdHJ4LmMNCisrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MmN1L3RyeC5jDQpAQCAtMzQzLDcgKzM0Myw4IEBAIGJv b2wgcnRsOTJjdV9yeF9xdWVyeV9kZXNjKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIAkJCQkJ KGJvb2wpR0VUX1JYX0RFU0NfUEFHR1IocGRlc2MpKTsNCiAJcnhfc3RhdHVzLT5tYWN0aW1lID0g R0VUX1JYX0RFU0NfVFNGTChwZGVzYyk7DQogCWlmIChwaHlzdGF0dXMpIHsNCi0JCXBfZHJ2aW5m byA9IChzdHJ1Y3QgcnhfZndpbmZvXzkyYyAqKShwZGVzYyArIFJUTF9SWF9ERVNDX1NJWkUpOw0K KwkJcF9kcnZpbmZvID0gKHN0cnVjdCByeF9md2luZm9fOTJjICopKHNrYi0+ZGF0YSArDQorCQkJ CQkJICAgICBzdGF0cy0+cnhfYnVmc2hpZnQpOw0KIAkJcnRsOTJjX3RyYW5zbGF0ZV9yeF9zaWdu YWxfc3R1ZmYoaHcsIHNrYiwgc3RhdHMsIHBkZXNjLA0KIAkJCQkJCSBwX2RydmluZm8pOw0KIAl9 DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svY29tbW9uLmggYi9kcml2ZXJz L25ldC94ZW4tbmV0YmFjay9jb21tb24uaA0KaW5kZXggOWQ3ZjE3Mi4uMDkzYmYwYSAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL2NvbW1vbi5oDQorKysgYi9kcml2ZXJzL25l dC94ZW4tbmV0YmFjay9jb21tb24uaA0KQEAgLTg4LDYgKzg4LDcgQEAgc3RydWN0IHhlbnZpZiB7 DQogCXVuc2lnbmVkIGxvbmcgICBjcmVkaXRfdXNlYzsNCiAJdW5zaWduZWQgbG9uZyAgIHJlbWFp bmluZ19jcmVkaXQ7DQogCXN0cnVjdCB0aW1lcl9saXN0IGNyZWRpdF90aW1lb3V0Ow0KKwl1NjQg Y3JlZGl0X3dpbmRvd19zdGFydDsNCiANCiAJLyogU3RhdGlzdGljcyAqLw0KIAl1bnNpZ25lZCBs b25nIHJ4X2dzb19jaGVja3N1bV9maXh1cDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4t bmV0YmFjay9pbnRlcmZhY2UuYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL2ludGVyZmFjZS5j DQppbmRleCA4ZWFmMGUyLi4yY2I5YzkyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQveGVuLW5l dGJhY2svaW50ZXJmYWNlLmMNCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL2ludGVyZmFj ZS5jDQpAQCAtMjcyLDggKzI3Miw3IEBAIHN0cnVjdCB4ZW52aWYgKnhlbnZpZl9hbGxvYyhzdHJ1 Y3QgZGV2aWNlICpwYXJlbnQsIGRvbWlkX3QgZG9taWQsDQogCXZpZi0+Y3JlZGl0X2J5dGVzID0g dmlmLT5yZW1haW5pbmdfY3JlZGl0ID0gfjBVTDsNCiAJdmlmLT5jcmVkaXRfdXNlYyAgPSAwVUw7 DQogCWluaXRfdGltZXIoJnZpZi0+Y3JlZGl0X3RpbWVvdXQpOw0KLQkvKiBJbml0aWFsaXplICdl eHBpcmVzJyBub3c6IGl0J3MgdXNlZCB0byB0cmFjayB0aGUgY3JlZGl0IHdpbmRvdy4gKi8NCi0J dmlmLT5jcmVkaXRfdGltZW91dC5leHBpcmVzID0gamlmZmllczsNCisJdmlmLT5jcmVkaXRfd2lu ZG93X3N0YXJ0ID0gZ2V0X2ppZmZpZXNfNjQoKTsNCiANCiAJZGV2LT5uZXRkZXZfb3BzCT0gJnhl bnZpZl9uZXRkZXZfb3BzOw0KIAlkZXYtPmh3X2ZlYXR1cmVzID0gTkVUSUZfRl9TRyB8IE5FVElG X0ZfSVBfQ1NVTSB8IE5FVElGX0ZfVFNPOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hlbi1u ZXRiYWNrL25ldGJhY2suYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYw0KaW5k ZXggZmQyYjkyZC4uOWE0NjI2YyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNr L25ldGJhY2suYw0KKysrIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jDQpAQCAt MTM2NSw5ICsxMzY1LDggQEAgb3V0Og0KIA0KIHN0YXRpYyBib29sIHR4X2NyZWRpdF9leGNlZWRl ZChzdHJ1Y3QgeGVudmlmICp2aWYsIHVuc2lnbmVkIHNpemUpDQogew0KLQl1bnNpZ25lZCBsb25n IG5vdyA9IGppZmZpZXM7DQotCXVuc2lnbmVkIGxvbmcgbmV4dF9jcmVkaXQgPQ0KLQkJdmlmLT5j cmVkaXRfdGltZW91dC5leHBpcmVzICsNCisJdTY0IG5vdyA9IGdldF9qaWZmaWVzXzY0KCk7DQor CXU2NCBuZXh0X2NyZWRpdCA9IHZpZi0+Y3JlZGl0X3dpbmRvd19zdGFydCArDQogCQltc2Vjc190 b19qaWZmaWVzKHZpZi0+Y3JlZGl0X3VzZWMgLyAxMDAwKTsNCiANCiAJLyogVGltZXIgY291bGQg YWxyZWFkeSBiZSBwZW5kaW5nIGluIHJhcmUgY2FzZXMuICovDQpAQCAtMTM3NSw4ICsxMzc0LDgg QEAgc3RhdGljIGJvb2wgdHhfY3JlZGl0X2V4Y2VlZGVkKHN0cnVjdCB4ZW52aWYgKnZpZiwgdW5z aWduZWQgc2l6ZSkNCiAJCXJldHVybiB0cnVlOw0KIA0KIAkvKiBQYXNzZWQgdGhlIHBvaW50IHdo ZXJlIHdlIGNhbiByZXBsZW5pc2ggY3JlZGl0PyAqLw0KLQlpZiAodGltZV9hZnRlcl9lcShub3cs IG5leHRfY3JlZGl0KSkgew0KLQkJdmlmLT5jcmVkaXRfdGltZW91dC5leHBpcmVzID0gbm93Ow0K KwlpZiAodGltZV9hZnRlcl9lcTY0KG5vdywgbmV4dF9jcmVkaXQpKSB7DQorCQl2aWYtPmNyZWRp dF93aW5kb3dfc3RhcnQgPSBub3c7DQogCQl0eF9hZGRfY3JlZGl0KHZpZik7DQogCX0NCiANCkBA IC0xMzg4LDYgKzEzODcsNyBAQCBzdGF0aWMgYm9vbCB0eF9jcmVkaXRfZXhjZWVkZWQoc3RydWN0 IHhlbnZpZiAqdmlmLCB1bnNpZ25lZCBzaXplKQ0KIAkJCXR4X2NyZWRpdF9jYWxsYmFjazsNCiAJ CW1vZF90aW1lcigmdmlmLT5jcmVkaXRfdGltZW91dCwNCiAJCQkgIG5leHRfY3JlZGl0KTsNCisJ CXZpZi0+Y3JlZGl0X3dpbmRvd19zdGFydCA9IG5leHRfY3JlZGl0Ow0KIA0KIAkJcmV0dXJuIHRy dWU7DQogCX0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZXR1cC1yZXMuYyBiL2RyaXZlcnMv cGNpL3NldHVwLXJlcy5jDQppbmRleCA4YjI1ZjljLi40MWYwOGU1IDEwMDY0NA0KLS0tIGEvZHJp dmVycy9wY2kvc2V0dXAtcmVzLmMNCisrKyBiL2RyaXZlcnMvcGNpL3NldHVwLXJlcy5jDQpAQCAt MTg4LDcgKzE4OCw4IEBAIHN0YXRpYyBpbnQgcGNpX3JldmVydF9md19hZGRyZXNzKHN0cnVjdCBy ZXNvdXJjZSAqcmVzLCBzdHJ1Y3QgcGNpX2RldiAqZGV2LA0KIAlyZXR1cm4gcmV0Ow0KIH0NCiAN Ci1zdGF0aWMgaW50IF9wY2lfYXNzaWduX3Jlc291cmNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGlu dCByZXNubywgaW50IHNpemUsIHJlc291cmNlX3NpemVfdCBtaW5fYWxpZ24pDQorc3RhdGljIGlu dCBfcGNpX2Fzc2lnbl9yZXNvdXJjZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcmVzbm8sDQor CQkJCXJlc291cmNlX3NpemVfdCBzaXplLCByZXNvdXJjZV9zaXplX3QgbWluX2FsaWduKQ0KIHsN CiAJc3RydWN0IHJlc291cmNlICpyZXMgPSBkZXYtPnJlc291cmNlICsgcmVzbm87DQogCXN0cnVj dCBwY2lfYnVzICpidXM7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3pyYW0venJhbV9k cnYuYyBiL2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fZHJ2LmMNCmluZGV4IGQxOTdiM2UuLmUx YTQ5OTQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvenJhbS96cmFtX2Rydi5jDQorKysg Yi9kcml2ZXJzL3N0YWdpbmcvenJhbS96cmFtX2Rydi5jDQpAQCAtNTUzLDcgKzU1Myw3IEBAIHN0 YXRpYyBpbmxpbmUgaW50IHZhbGlkX2lvX3JlcXVlc3Qoc3RydWN0IHpyYW0gKnpyYW0sIHN0cnVj dCBiaW8gKmJpbykNCiAJZW5kID0gc3RhcnQgKyAoYmlvLT5iaV9zaXplID4+IFNFQ1RPUl9TSElG VCk7DQogCWJvdW5kID0genJhbS0+ZGlza3NpemUgPj4gU0VDVE9SX1NISUZUOw0KIAkvKiBvdXQg b2YgcmFuZ2UgcmFuZ2UgKi8NCi0JaWYgKHVubGlrZWx5KHN0YXJ0ID49IGJvdW5kIHx8IGVuZCA+ PSBib3VuZCB8fCBzdGFydCA+IGVuZCkpDQorCWlmICh1bmxpa2VseShzdGFydCA+PSBib3VuZCB8 fCBlbmQgPiBib3VuZCB8fCBzdGFydCA+IGVuZCkpDQogCQlyZXR1cm4gMDsNCiANCiAJLyogSS9P IHJlcXVlc3QgaXMgdmFsaWQgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL3F1aXJr cy5jIGIvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYw0KaW5kZXggZjUyMTgyZC4uYmNkZTZmNiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMNCisrKyBiL2RyaXZlcnMvdXNi L2NvcmUvcXVpcmtzLmMNCkBAIC05Nyw2ICs5Nyw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZCB1c2JfcXVpcmtfbGlzdFtdID0gew0KIAkvKiBBbGNvciBNaWNybyBDb3JwLiBI dWIgKi8NCiAJeyBVU0JfREVWSUNFKDB4MDU4ZiwgMHg5MjU0KSwgLmRyaXZlcl9pbmZvID0gVVNC X1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KIA0KKwkvKiBNaWNyb1RvdWNoIFN5c3RlbXMgdG91Y2hz Y3JlZW4gKi8NCisJeyBVU0JfREVWSUNFKDB4MDU5NiwgMHgwNTFlKSwgLmRyaXZlcl9pbmZvID0g VVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KKw0KIAkvKiBhcHBsZXRvdWNoICovDQogCXsgVVNC X0RFVklDRSgweDA1YWMsIDB4MDIxYSksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9S RVNVTUUgfSwNCiANCkBAIC0xMzAsNiArMTMzLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2Jf ZGV2aWNlX2lkIHVzYl9xdWlya19saXN0W10gPSB7DQogCS8qIEJyb2FkY29tIEJDTTkyMDM1REdS T00gQlQgZG9uZ2xlICovDQogCXsgVVNCX0RFVklDRSgweDBhNWMsIDB4MjAyMSksIC5kcml2ZXJf aW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwNCiANCisJLyogTUFZQTQ0VVNCIHNvdW5k IGRldmljZSAqLw0KKwl7IFVTQl9ERVZJQ0UoMHgwYTkyLCAweDAwOTEpLCAuZHJpdmVyX2luZm8g PSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sDQorDQogCS8qIEFjdGlvbiBTZW1pY29uZHVjdG9y IGZsYXNoIGRpc2sgKi8NCiAJeyBVU0JfREVWSUNFKDB4MTBkNiwgMHgyMjAwKSwgLmRyaXZlcl9p bmZvID0NCiAJCQlVU0JfUVVJUktfU1RSSU5HX0ZFVENIXzI1NSB9LA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS1odWIuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1odWIuYw0K aW5kZXggMjQxMDdhNy4uMTA3ZTZiNCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhj aS1odWIuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLWh1Yi5jDQpAQCAtMTAwNywyMCAr MTAwNyw2IEBAIGludCB4aGNpX2J1c19zdXNwZW5kKHN0cnVjdCB1c2JfaGNkICpoY2QpDQogCQl0 MSA9IHhoY2lfcG9ydF9zdGF0ZV90b19uZXV0cmFsKHQxKTsNCiAJCWlmICh0MSAhPSB0MikNCiAJ CQl4aGNpX3dyaXRlbCh4aGNpLCB0MiwgcG9ydF9hcnJheVtwb3J0X2luZGV4XSk7DQotDQotCQlp ZiAoaGNkLT5zcGVlZCAhPSBIQ0RfVVNCMykgew0KLQkJCS8qIGVuYWJsZSByZW1vdGUgd2FrZSB1 cCBmb3IgVVNCIDIuMCAqLw0KLQkJCV9fbGUzMiBfX2lvbWVtICphZGRyOw0KLQkJCXUzMiB0bXA7 DQotDQotCQkJLyogQWRkIG9uZSB0byB0aGUgcG9ydCBzdGF0dXMgcmVnaXN0ZXIgYWRkcmVzcyB0 byBnZXQNCi0JCQkgKiB0aGUgcG9ydCBwb3dlciBjb250cm9sIHJlZ2lzdGVyIGFkZHJlc3MuDQot CQkJICovDQotCQkJYWRkciA9IHBvcnRfYXJyYXlbcG9ydF9pbmRleF0gKyAxOw0KLQkJCXRtcCA9 IHhoY2lfcmVhZGwoeGhjaSwgYWRkcik7DQotCQkJdG1wIHw9IFBPUlRfUldFOw0KLQkJCXhoY2lf d3JpdGVsKHhoY2ksIHRtcCwgYWRkcik7DQotCQl9DQogCX0NCiAJaGNkLT5zdGF0ZSA9IEhDX1NU QVRFX1NVU1BFTkRFRDsNCiAJYnVzX3N0YXRlLT5uZXh0X3N0YXRlY2hhbmdlID0gamlmZmllcyAr IG1zZWNzX3RvX2ppZmZpZXMoMTApOw0KQEAgLTEwOTksMjAgKzEwODUsNiBAQCBpbnQgeGhjaV9i dXNfcmVzdW1lKHN0cnVjdCB1c2JfaGNkICpoY2QpDQogCQkJCXhoY2lfcmluZ19kZXZpY2UoeGhj aSwgc2xvdF9pZCk7DQogCQl9IGVsc2UNCiAJCQl4aGNpX3dyaXRlbCh4aGNpLCB0ZW1wLCBwb3J0 X2FycmF5W3BvcnRfaW5kZXhdKTsNCi0NCi0JCWlmIChoY2QtPnNwZWVkICE9IEhDRF9VU0IzKSB7 DQotCQkJLyogZGlzYWJsZSByZW1vdGUgd2FrZSB1cCBmb3IgVVNCIDIuMCAqLw0KLQkJCV9fbGUz MiBfX2lvbWVtICphZGRyOw0KLQkJCXUzMiB0bXA7DQotDQotCQkJLyogQWRkIG9uZSB0byB0aGUg cG9ydCBzdGF0dXMgcmVnaXN0ZXIgYWRkcmVzcyB0byBnZXQNCi0JCQkgKiB0aGUgcG9ydCBwb3dl ciBjb250cm9sIHJlZ2lzdGVyIGFkZHJlc3MuDQotCQkJICovDQotCQkJYWRkciA9IHBvcnRfYXJy YXlbcG9ydF9pbmRleF0gKyAxOw0KLQkJCXRtcCA9IHhoY2lfcmVhZGwoeGhjaSwgYWRkcik7DQot CQkJdG1wICY9IH5QT1JUX1JXRTsNCi0JCQl4aGNpX3dyaXRlbCh4aGNpLCB0bXAsIGFkZHIpOw0K LQkJfQ0KIAl9DQogDQogCSh2b2lkKSB4aGNpX3JlYWRsKHhoY2ksICZ4aGNpLT5vcF9yZWdzLT5j b21tYW5kKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMgYi9kcml2 ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMNCmluZGV4IDYxYjA2NjguLjgyN2Y5MzMgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMNCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qv eGhjaS1wY2kuYw0KQEAgLTM0LDYgKzM0LDkgQEANCiAjZGVmaW5lIFBDSV9WRU5ET1JfSURfRVRS T04JCTB4MWI2Zg0KICNkZWZpbmUgUENJX0RFVklDRV9JRF9BU1JPQ0tfUDY3CTB4NzAyMw0KIA0K KyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9MWU5YUE9JTlRfWEhDSQkweDhjMzENCisjZGVm aW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfTFlOWFBPSU5UX0xQX1hIQ0kJMHg5YzMxDQorDQogc3Rh dGljIGNvbnN0IGNoYXIgaGNkX25hbWVbXSA9ICJ4aGNpX2hjZCI7DQogDQogLyogY2FsbGVkIGFm dGVyIHBvd2VydXAsIGJ5IHByb2JlIG9yIHN5c3RlbS1wbSAid2FrZXVwIiAqLw0KQEAgLTY3LDYg KzcwLDE0IEBAIHN0YXRpYyB2b2lkIHhoY2lfcGNpX3F1aXJrcyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkNCiAJCQl4aGNpX2RiZyh4aGNpLCAiUVVJUks6IEZyZXNj byBMb2dpYyB4SEMgbmVlZHMgY29uZmlndXJlIg0KIAkJCQkJIiBlbmRwb2ludCBjbWQgYWZ0ZXIg cmVzZXQgZW5kcG9pbnRcbiIpOw0KIAkJfQ0KKwkJaWYgKHBkZXYtPmRldmljZSA9PSBQQ0lfREVW SUNFX0lEX0ZSRVNDT19MT0dJQ19QREsgJiYNCisJCQkJcGRldi0+cmV2aXNpb24gPT0gMHg0KSB7 DQorCQkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfU0xPV19TVVNQRU5EOw0KKwkJCXhoY2lfZGJnKHho Y2ksDQorCQkJCSJRVUlSSzogRnJlc2NvIExvZ2ljIHhIQyByZXZpc2lvbiAldSINCisJCQkJIm11 c3QgYmUgc3VzcGVuZGVkIGV4dHJhIHNsb3dseSIsDQorCQkJCXBkZXYtPnJldmlzaW9uKTsNCisJ CX0NCiAJCS8qIEZyZXNjbyBMb2dpYyBjb25maXJtczogYWxsIHJldmlzaW9ucyBvZiB0aGlzIGNo aXAgZG8gbm90DQogCQkgKiBzdXBwb3J0IE1TSSwgZXZlbiB0aG91Z2ggc29tZSBvZiB0aGVtIGNs YWltIHRvIGluIHRoZWlyIFBDSQ0KIAkJICogY2FwYWJpbGl0aWVzLg0KQEAgLTEwMyw2ICsxMTQs MTUgQEAgc3RhdGljIHZvaWQgeGhjaV9wY2lfcXVpcmtzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IHhoY2lfaGNkICp4aGNpKQ0KIAkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfU1BVUklPVVNfUkVC T09UOw0KIAkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfQVZPSURfQkVJOw0KIAl9DQorCWlmIChwZGV2 LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9JTlRFTCAmJg0KKwkgICAgKHBkZXYtPmRldmljZSA9 PSBQQ0lfREVWSUNFX0lEX0lOVEVMX0xZTlhQT0lOVF9YSENJIHx8DQorCSAgICAgcGRldi0+ZGV2 aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfTFlOWFBPSU5UX0xQX1hIQ0kpKSB7DQorCQkvKiBX b3JrYXJvdW5kIGZvciBvY2Nhc2lvbmFsIHNwdXJpb3VzIHdha2V1cHMgZnJvbSBTNSAob3INCisJ CSAqIGFueSBvdGhlciBzbGVlcCkgb24gSGFzd2VsbCBtYWNoaW5lcyB3aXRoIExQVCBhbmQgTFBU LUxQDQorCQkgKiB3aXRoIHRoZSBuZXcgSW50ZWwgQklPUw0KKwkJICovDQorCQl4aGNpLT5xdWly a3MgfD0gWEhDSV9TUFVSSU9VU19XQUtFVVA7DQorCX0NCiAJaWYgKHBkZXYtPnZlbmRvciA9PSBQ Q0lfVkVORE9SX0lEX0VUUk9OICYmDQogCQkJcGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURf QVNST0NLX1A2Nykgew0KIAkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfUkVTRVRfT05fUkVTVU1FOw0K QEAgLTIwMiw2ICsyMjIsMTEgQEAgc3RhdGljIHZvaWQgeGhjaV9wY2lfcmVtb3ZlKHN0cnVjdCBw Y2lfZGV2ICpkZXYpDQogCQl1c2JfcHV0X2hjZCh4aGNpLT5zaGFyZWRfaGNkKTsNCiAJfQ0KIAl1 c2JfaGNkX3BjaV9yZW1vdmUoZGV2KTsNCisNCisJLyogV29ya2Fyb3VuZCBmb3Igc3B1cmlvdXMg d2FrZXVwcyBhdCBzaHV0ZG93biB3aXRoIEhTVyAqLw0KKwlpZiAoeGhjaS0+cXVpcmtzICYgWEhD SV9TUFVSSU9VU19XQUtFVVApDQorCQlwY2lfc2V0X3Bvd2VyX3N0YXRlKGRldiwgUENJX0QzaG90 KTsNCisNCiAJa2ZyZWUoeGhjaSk7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hv c3QveGhjaS5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLmMNCmluZGV4IDYyOWFhNzQuLjAzYzM1 ZGEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYw0KKysrIGIvZHJpdmVycy91 c2IvaG9zdC94aGNpLmMNCkBAIC03NjMsMTIgKzc2MywxOSBAQCB2b2lkIHhoY2lfc2h1dGRvd24o c3RydWN0IHVzYl9oY2QgKmhjZCkNCiANCiAJc3Bpbl9sb2NrX2lycSgmeGhjaS0+bG9jayk7DQog CXhoY2lfaGFsdCh4aGNpKTsNCisJLyogV29ya2Fyb3VuZCBmb3Igc3B1cmlvdXMgd2FrZXVwcyBh dCBzaHV0ZG93biB3aXRoIEhTVyAqLw0KKwlpZiAoeGhjaS0+cXVpcmtzICYgWEhDSV9TUFVSSU9V U19XQUtFVVApDQorCQl4aGNpX3Jlc2V0KHhoY2kpOw0KIAlzcGluX3VubG9ja19pcnEoJnhoY2kt PmxvY2spOw0KIA0KIAl4aGNpX2NsZWFudXBfbXNpeCh4aGNpKTsNCiANCiAJeGhjaV9kYmcoeGhj aSwgInhoY2lfc2h1dGRvd24gY29tcGxldGVkIC0gc3RhdHVzID0gJXhcbiIsDQogCQkgICAgeGhj aV9yZWFkbCh4aGNpLCAmeGhjaS0+b3BfcmVncy0+c3RhdHVzKSk7DQorDQorCS8qIFlldCBhbm90 aGVyIHdvcmthcm91bmQgZm9yIHNwdXJpb3VzIHdha2V1cHMgYXQgc2h1dGRvd24gd2l0aCBIU1cg Ki8NCisJaWYgKHhoY2ktPnF1aXJrcyAmIFhIQ0lfU1BVUklPVVNfV0FLRVVQKQ0KKwkJcGNpX3Nl dF9wb3dlcl9zdGF0ZSh0b19wY2lfZGV2KGhjZC0+c2VsZi5jb250cm9sbGVyKSwgUENJX0QzaG90 KTsNCiB9DQogDQogI2lmZGVmIENPTkZJR19QTQ0KQEAgLTg2OSw2ICs4NzYsNyBAQCBzdGF0aWMg dm9pZCB4aGNpX2NsZWFyX2NvbW1hbmRfcmluZyhzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kpDQogaW50 IHhoY2lfc3VzcGVuZChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kpDQogew0KIAlpbnQJCQlyYyA9IDA7 DQorCXVuc2lnbmVkIGludAkJZGVsYXkgPSBYSENJX01BWF9IQUxUX1VTRUM7DQogCXN0cnVjdCB1 c2JfaGNkCQkqaGNkID0geGhjaV90b19oY2QoeGhjaSk7DQogCXUzMgkJCWNvbW1hbmQ7DQogDQpA QCAtODg3LDggKzg5NSwxMiBAQCBpbnQgeGhjaV9zdXNwZW5kKHN0cnVjdCB4aGNpX2hjZCAqeGhj aSkNCiAJY29tbWFuZCA9IHhoY2lfcmVhZGwoeGhjaSwgJnhoY2ktPm9wX3JlZ3MtPmNvbW1hbmQp Ow0KIAljb21tYW5kICY9IH5DTURfUlVOOw0KIAl4aGNpX3dyaXRlbCh4aGNpLCBjb21tYW5kLCAm eGhjaS0+b3BfcmVncy0+Y29tbWFuZCk7DQorDQorCS8qIFNvbWUgY2hpcHMgZnJvbSBGcmVzY28g TG9naWMgbmVlZCBhbiBleHRyYW9yZGluYXJ5IGRlbGF5ICovDQorCWRlbGF5ICo9ICh4aGNpLT5x dWlya3MgJiBYSENJX1NMT1dfU1VTUEVORCkgPyAxMCA6IDE7DQorDQogCWlmIChoYW5kc2hha2Uo eGhjaSwgJnhoY2ktPm9wX3JlZ3MtPnN0YXR1cywNCi0JCSAgICAgIFNUU19IQUxULCBTVFNfSEFM VCwgWEhDSV9NQVhfSEFMVF9VU0VDKSkgew0KKwkJICAgICAgU1RTX0hBTFQsIFNUU19IQUxULCBk ZWxheSkpIHsNCiAJCXhoY2lfd2Fybih4aGNpLCAiV0FSTjogeEhDIENNRF9SVU4gdGltZW91dFxu Iik7DQogCQlzcGluX3VubG9ja19pcnEoJnhoY2ktPmxvY2spOw0KIAkJcmV0dXJuIC1FVElNRURP VVQ7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLmggYi9kcml2ZXJzL3VzYi9o b3N0L3hoY2kuaA0KaW5kZXggOGI0Y2NlNDUuLmNmNGZkMjQgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L3VzYi9ob3N0L3hoY2kuaA0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLmgNCkBAIC0xNDkz LDYgKzE0OTMsOCBAQCBzdHJ1Y3QgeGhjaV9oY2Qgew0KICNkZWZpbmUgWEhDSV9TUFVSSU9VU19S RUJPT1QJKDEgPDwgMTMpDQogI2RlZmluZSBYSENJX0NPTVBfTU9ERV9RVUlSSwkoMSA8PCAxNCkN CiAjZGVmaW5lIFhIQ0lfQVZPSURfQkVJCQkoMSA8PCAxNSkNCisjZGVmaW5lIFhIQ0lfU0xPV19T VVNQRU5ECSgxIDw8IDE3KQ0KKyNkZWZpbmUgWEhDSV9TUFVSSU9VU19XQUtFVVAJKDEgPDwgMTgp DQogCXVuc2lnbmVkIGludAkJbnVtX2FjdGl2ZV9lcHM7DQogCXVuc2lnbmVkIGludAkJbGltaXRf YWN0aXZlX2VwczsNCiAJLyogVGhlcmUgYXJlIHR3byByb290aHVicyB0byBrZWVwIHRyYWNrIG9m IGJ1cyBzdXNwZW5kIGluZm8gZm9yICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFs L29wdGlvbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQppbmRleCA1MzZjNGFkLi5k OGFjZTgyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQorKysgYi9k cml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMNCkBAIC00NTcsNiArNDU3LDEwIEBAIHN0YXRpYyB2 b2lkIG9wdGlvbl9pbnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKTsNCiAjZGVmaW5lIENI QU5HSE9OR19WRU5ET1JfSUQJCQkweDIwNzcNCiAjZGVmaW5lIENIQU5HSE9OR19QUk9EVUNUX0NI NjkwCQkJMHg3MDAxDQogDQorLyogSW5vdmlhICovDQorI2RlZmluZSBJTk9WSUFfVkVORE9SX0lE CQkJMHgyMGE2DQorI2RlZmluZSBJTk9WSUFfU0VXODU4CQkJCTB4MTEwNQ0KKw0KIC8qIHNvbWUg ZGV2aWNlcyBpbnRlcmZhY2VzIG5lZWQgc3BlY2lhbCBoYW5kbGluZyBkdWUgdG8gYSBudW1iZXIg b2YgcmVhc29ucyAqLw0KIGVudW0gb3B0aW9uX2JsYWNrbGlzdF9yZWFzb24gew0KIAkJT1BUSU9O X0JMQUNLTElTVF9OT05FID0gMCwNCkBAIC03MDMsNiArNzA3LDIyMiBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIAl7IFVTQl9WRU5ET1JfQU5E X0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDIsIDB4N0EpIH0sDQog CXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwg MHgwMiwgMHg3QikgfSwNCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlf VkVORE9SX0lELCAweGZmLCAweDAyLCAweDdDKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVS RkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4MDEpIH0sDQorCXsgVVNC X1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywg MHgwMikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9S X0lELCAweGZmLCAweDAzLCAweDAzKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9J TkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4MDQpIH0sDQorCXsgVVNCX1ZFTkRP Ul9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHgwNSkg fSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAw eGZmLCAweDAzLCAweDA2KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhV QVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4MEEpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRf SU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHgwQikgfSwNCisJ eyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAw eDAzLCAweDBEKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9W RU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4MEUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJG QUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHgwRikgfSwNCisJeyBVU0Jf VkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAw eDEwKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1Jf SUQsIDB4ZmYsIDB4MDMsIDB4MTIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lO Rk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHgxMykgfSwNCisJeyBVU0JfVkVORE9S X0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDE0KSB9 LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4 ZmYsIDB4MDMsIDB4MTUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVB V0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHgxNykgfSwNCisJeyBVU0JfVkVORE9SX0FORF9J TlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDE4KSB9LA0KKwl7 IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4 MDMsIDB4MTkpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZF TkRPUl9JRCwgMHhmZiwgMHgwMywgMHgxQSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZB Q0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDFCKSB9LA0KKwl7IFVTQl9W RU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4 MUMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9J RCwgMHhmZiwgMHgwMywgMHgzMSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5G TyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDMyKSB9LA0KKwl7IFVTQl9WRU5ET1Jf QU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4MzMpIH0s DQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhm ZiwgMHgwMywgMHgzNCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFX RUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDM1KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lO VEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4MzYpIH0sDQorCXsg VVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgw MywgMHgzQSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVO RE9SX0lELCAweGZmLCAweDAzLCAweDNCKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFD RV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4M0QpIH0sDQorCXsgVVNCX1ZF TkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHgz RSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lE LCAweGZmLCAweDAzLCAweDNGKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZP KEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4NDgpIH0sDQorCXsgVVNCX1ZFTkRPUl9B TkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHg0OSkgfSwN CisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZm LCAweDAzLCAweDRBKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdF SV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4NEIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5U RVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHg0QykgfSwNCisJeyBV U0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAz LCAweDYxKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5E T1JfSUQsIDB4ZmYsIDB4MDMsIDB4NjIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNF X0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHg2MykgfSwNCisJeyBVU0JfVkVO RE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDY0 KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQs IDB4ZmYsIDB4MDMsIDB4NjUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8o SFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHg2NikgfSwNCisJeyBVU0JfVkVORE9SX0FO RF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDZBKSB9LA0K Kwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYs IDB4MDMsIDB4NkIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJ X1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHg2RCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRF UkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDZFKSB9LA0KKwl7IFVT Ql9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMs IDB4NkYpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRP Ul9JRCwgMHhmZiwgMHgwMywgMHg3OCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0Vf SU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDc5KSB9LA0KKwl7IFVTQl9WRU5E T1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4N0Ep IH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwg MHhmZiwgMHgwMywgMHg3QikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhI VUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDdDKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5E X0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4MDEpIH0sDQor CXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwg MHgwNCwgMHgwMikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlf VkVORE9SX0lELCAweGZmLCAweDA0LCAweDAzKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVS RkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4MDQpIH0sDQorCXsgVVNC X1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwg MHgwNSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9S X0lELCAweGZmLCAweDA0LCAweDA2KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9J TkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4MEEpIH0sDQorCXsgVVNCX1ZFTkRP Ul9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHgwQikg fSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAw eGZmLCAweDA0LCAweDBEKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhV QVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4MEUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRf SU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHgwRikgfSwNCisJ eyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAw eDA0LCAweDEwKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9W RU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4MTIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJG QUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHgxMykgfSwNCisJeyBVU0Jf VkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAw eDE0KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1Jf SUQsIDB4ZmYsIDB4MDQsIDB4MTUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lO Rk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHgxNykgfSwNCisJeyBVU0JfVkVORE9S X0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDE4KSB9 LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4 ZmYsIDB4MDQsIDB4MTkpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVB V0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHgxQSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9J TlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDFCKSB9LA0KKwl7 IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4 MDQsIDB4MUMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZF TkRPUl9JRCwgMHhmZiwgMHgwNCwgMHgzMSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZB Q0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDMyKSB9LA0KKwl7IFVTQl9W RU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4 MzMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9J RCwgMHhmZiwgMHgwNCwgMHgzNCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5G TyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDM1KSB9LA0KKwl7IFVTQl9WRU5ET1Jf QU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4MzYpIH0s DQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhm ZiwgMHgwNCwgMHgzQSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFX RUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDNCKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lO VEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4M0QpIH0sDQorCXsg VVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgw NCwgMHgzRSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVO RE9SX0lELCAweGZmLCAweDA0LCAweDNGKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFD RV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4NDgpIH0sDQorCXsgVVNCX1ZF TkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg0 OSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lE LCAweGZmLCAweDA0LCAweDRBKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZP KEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4NEIpIH0sDQorCXsgVVNCX1ZFTkRPUl9B TkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg0QykgfSwN CisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZm LCAweDA0LCAweDYxKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdF SV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4NjIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5U RVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg2MykgfSwNCisJeyBV U0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0 LCAweDY0KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5E T1JfSUQsIDB4ZmYsIDB4MDQsIDB4NjUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNF X0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg2NikgfSwNCisJeyBVU0JfVkVO RE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDZB KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQs IDB4ZmYsIDB4MDQsIDB4NkIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8o SFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg2RCkgfSwNCisJeyBVU0JfVkVORE9SX0FO RF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDZFKSB9LA0K Kwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYs IDB4MDQsIDB4NkYpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJ X1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg3OCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRF UkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDc5KSB9LA0KKwl7IFVT Ql9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQs IDB4N0EpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRP Ul9JRCwgMHhmZiwgMHgwNCwgMHg3QikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0Vf SU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0LCAweDdDKSB9LA0KKwl7IFVTQl9WRU5E T1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4MDEp IH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwg MHhmZiwgMHgwNSwgMHgwMikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhI VUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDAzKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5E X0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4MDQpIH0sDQor CXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwg MHgwNSwgMHgwNSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlf VkVORE9SX0lELCAweGZmLCAweDA1LCAweDA2KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVS RkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4MEEpIH0sDQorCXsgVVNC X1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwg MHgwQikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9S X0lELCAweGZmLCAweDA1LCAweDBEKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9J TkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4MEUpIH0sDQorCXsgVVNCX1ZFTkRP Ul9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHgwRikg fSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAw eGZmLCAweDA1LCAweDEwKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhV QVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4MTIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRf SU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHgxMykgfSwNCisJ eyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAw eDA1LCAweDE0KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9W RU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4MTUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJG QUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHgxNykgfSwNCisJeyBVU0Jf VkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAw eDE4KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1Jf SUQsIDB4ZmYsIDB4MDUsIDB4MTkpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lO Rk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHgxQSkgfSwNCisJeyBVU0JfVkVORE9S X0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDFCKSB9 LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4 ZmYsIDB4MDUsIDB4MUMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVB V0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHgzMSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9J TlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDMyKSB9LA0KKwl7 IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4 MDUsIDB4MzMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZF TkRPUl9JRCwgMHhmZiwgMHgwNSwgMHgzNCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZB Q0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDM1KSB9LA0KKwl7IFVTQl9W RU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4 MzYpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9J RCwgMHhmZiwgMHgwNSwgMHgzQSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5G TyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDNCKSB9LA0KKwl7IFVTQl9WRU5ET1Jf QU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4M0QpIH0s DQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhm ZiwgMHgwNSwgMHgzRSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFX RUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDNGKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lO VEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4NDgpIH0sDQorCXsg VVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgw NSwgMHg0OSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVO RE9SX0lELCAweGZmLCAweDA1LCAweDRBKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFD RV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4NEIpIH0sDQorCXsgVVNCX1ZF TkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHg0 QykgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lE LCAweGZmLCAweDA1LCAweDYxKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZP KEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4NjIpIH0sDQorCXsgVVNCX1ZFTkRPUl9B TkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHg2MykgfSwN CisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZm LCAweDA1LCAweDY0KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdF SV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4NjUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5U RVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHg2NikgfSwNCisJeyBV U0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1 LCAweDZBKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5E T1JfSUQsIDB4ZmYsIDB4MDUsIDB4NkIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNF X0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHg2RCkgfSwNCisJeyBVU0JfVkVO RE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDZF KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQs IDB4ZmYsIDB4MDUsIDB4NkYpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8o SFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHg3OCkgfSwNCisJeyBVU0JfVkVORE9SX0FO RF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDc5KSB9LA0K Kwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYs IDB4MDUsIDB4N0EpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJ X1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwgMHg3QikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRF UkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDdDKSB9LA0KKwl7IFVT Ql9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYs IDB4MDEpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRP Ul9JRCwgMHhmZiwgMHgwNiwgMHgwMikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0Vf SU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDAzKSB9LA0KKwl7IFVTQl9WRU5E T1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4MDQp IH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwg MHhmZiwgMHgwNiwgMHgwNSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhI VUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDA2KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5E X0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4MEEpIH0sDQor CXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwg MHgwNiwgMHgwQikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlf VkVORE9SX0lELCAweGZmLCAweDA2LCAweDBEKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVS RkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4MEUpIH0sDQorCXsgVVNC X1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwg MHgwRikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9S X0lELCAweGZmLCAweDA2LCAweDEwKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9J TkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4MTIpIH0sDQorCXsgVVNCX1ZFTkRP Ul9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHgxMykg fSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAw eGZmLCAweDA2LCAweDE0KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhV QVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4MTUpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRf SU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHgxNykgfSwNCisJ eyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAw eDA2LCAweDE4KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9W RU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4MTkpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJG QUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHgxQSkgfSwNCisJeyBVU0Jf VkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAw eDFCKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1Jf SUQsIDB4ZmYsIDB4MDYsIDB4MUMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lO Rk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHgzMSkgfSwNCisJeyBVU0JfVkVORE9S X0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDMyKSB9 LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4 ZmYsIDB4MDYsIDB4MzMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVB V0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHgzNCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9J TlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDM1KSB9LA0KKwl7 IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4 MDYsIDB4MzYpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZF TkRPUl9JRCwgMHhmZiwgMHgwNiwgMHgzQSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZB Q0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDNCKSB9LA0KKwl7IFVTQl9W RU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4 M0QpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9J RCwgMHhmZiwgMHgwNiwgMHgzRSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5G TyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDNGKSB9LA0KKwl7IFVTQl9WRU5ET1Jf QU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4NDgpIH0s DQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhm ZiwgMHgwNiwgMHg0OSkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFX RUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDRBKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lO VEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4NEIpIH0sDQorCXsg VVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgw NiwgMHg0QykgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVO RE9SX0lELCAweGZmLCAweDA2LCAweDYxKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFD RV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4NjIpIH0sDQorCXsgVVNCX1ZF TkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHg2 MykgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lE LCAweGZmLCAweDA2LCAweDY0KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZP KEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4NjUpIH0sDQorCXsgVVNCX1ZFTkRPUl9B TkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHg2NikgfSwN CisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZm LCAweDA2LCAweDZBKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdF SV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4NkIpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5U RVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHg2RCkgfSwNCisJeyBV U0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2 LCAweDZFKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5E T1JfSUQsIDB4ZmYsIDB4MDYsIDB4NkYpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNF X0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHg3OCkgfSwNCisJeyBVU0JfVkVO RE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDc5 KSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQs IDB4ZmYsIDB4MDYsIDB4N0EpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8o SFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHg3QikgfSwNCisJeyBVU0JfVkVORE9SX0FO RF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDdDKSB9LA0K IA0KIA0KIAl7IFVTQl9ERVZJQ0UoTk9WQVRFTFdJUkVMRVNTX1ZFTkRPUl9JRCwgTk9WQVRFTFdJ UkVMRVNTX1BST0RVQ1RfVjY0MCkgfSwNCkBAIC0xMjc5LDcgKzE0OTksOSBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIA0KIAl7IFVTQl9ERVZJ Q0UoT0xJVkVUVElfVkVORE9SX0lELCBPTElWRVRUSV9QUk9EVUNUX09MSUNBUkQxMDApIH0sDQog CXsgVVNCX0RFVklDRShPTElWRVRUSV9WRU5ET1JfSUQsIE9MSVZFVFRJX1BST0RVQ1RfT0xJQ0FS RDE0NSkgfSwNCi0JeyBVU0JfREVWSUNFKE9MSVZFVFRJX1ZFTkRPUl9JRCwgT0xJVkVUVElfUFJP RFVDVF9PTElDQVJEMjAwKSB9LA0KKwl7IFVTQl9ERVZJQ0UoT0xJVkVUVElfVkVORE9SX0lELCBP TElWRVRUSV9QUk9EVUNUX09MSUNBUkQyMDApLA0KKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91 bG9uZ190KSZuZXRfaW50ZjZfYmxhY2tsaXN0DQorCX0sDQogCXsgVVNCX0RFVklDRShDRUxPVF9W RU5ET1JfSUQsIENFTE9UX1BST0RVQ1RfQ1Q2ODBNKSB9LCAvKiBDVC02NTAgQ0RNQSA0NTAgMXhF VkRPIG1vZGVtICovDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oU0FNU1VOR19W RU5ET1JfSUQsIFNBTVNVTkdfUFJPRFVDVF9HVF9CMzczMCwgVVNCX0NMQVNTX0NEQ19EQVRBLCAw eDAwLCAweDAwKSB9LCAvKiBTYW1zdW5nIEdULUIzNzMwIExURSBVU0IgbW9kZW0uKi8NCiAJeyBV U0JfREVWSUNFKFlVR0FfVkVORE9SX0lELCBZVUdBX1BST0RVQ1RfQ0VNNjAwKSB9LA0KQEAgLTEz NjcsNiArMTU4OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25f aWRzW10gPSB7DQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgyMDAxLCAweDdk MDMsIDB4ZmYsIDB4MDAsIDB4MDApIH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lO Rk8oMHgwN2QxLCAweDNlMDEsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sIC8qIEQtTGluayBEV00tMTUy L0MxICovDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwN2QxLCAweDNlMDIs IDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sIC8qIEQtTGluayBEV00tMTU2L0MxICovDQorCXsgVVNCX0RF VklDRShJTk9WSUFfVkVORE9SX0lELCBJTk9WSUFfU0VXODU4KSB9LA0KIAl7IH0gLyogVGVybWlu YXRpbmcgZW50cnkgKi8NCiB9Ow0KIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBvcHRpb25faWRz KTsNCmRpZmYgLS1naXQgYS9mcy9lY3J5cHRmcy9rZXlzdG9yZS5jIGIvZnMvZWNyeXB0ZnMva2V5 c3RvcmUuYw0KaW5kZXggYWMxYWQ0OC4uNWNlNTZlNyAxMDA2NDQNCi0tLSBhL2ZzL2VjcnlwdGZz L2tleXN0b3JlLmMNCisrKyBiL2ZzL2VjcnlwdGZzL2tleXN0b3JlLmMNCkBAIC0xMTUxLDcgKzEx NTEsNyBAQCBkZWNyeXB0X3BraV9lbmNyeXB0ZWRfc2Vzc2lvbl9rZXkoc3RydWN0IGVjcnlwdGZz X2F1dGhfdG9rICphdXRoX3RvaywNCiAJc3RydWN0IGVjcnlwdGZzX21zZ19jdHggKm1zZ19jdHg7 DQogCXN0cnVjdCBlY3J5cHRmc19tZXNzYWdlICptc2cgPSBOVUxMOw0KIAljaGFyICphdXRoX3Rv a19zaWc7DQotCWNoYXIgKnBheWxvYWQ7DQorCWNoYXIgKnBheWxvYWQgPSBOVUxMOw0KIAlzaXpl X3QgcGF5bG9hZF9sZW47DQogCWludCByYzsNCiANCkBAIC0xMjA2LDYgKzEyMDYsNyBAQCBkZWNy eXB0X3BraV9lbmNyeXB0ZWRfc2Vzc2lvbl9rZXkoc3RydWN0IGVjcnlwdGZzX2F1dGhfdG9rICph dXRoX3RvaywNCiBvdXQ6DQogCWlmIChtc2cpDQogCQlrZnJlZShtc2cpOw0KKwlrZnJlZShwYXls b2FkKTsNCiAJcmV0dXJuIHJjOw0KIH0NCiANCmRpZmYgLS1naXQgYS9mcy9leHQzL2Rpci5jIGIv ZnMvZXh0My9kaXIuYw0KaW5kZXggMzRmMGEwNy4uMzI2ODY5NyAxMDA2NDQNCi0tLSBhL2ZzL2V4 dDMvZGlyLmMNCisrKyBiL2ZzL2V4dDMvZGlyLmMNCkBAIC0yNSw2ICsyNSw3IEBADQogI2luY2x1 ZGUgPGxpbnV4L2piZC5oPg0KICNpbmNsdWRlIDxsaW51eC9leHQzX2ZzLmg+DQogI2luY2x1ZGUg PGxpbnV4L2J1ZmZlcl9oZWFkLmg+DQorI2luY2x1ZGUgPGxpbnV4L2NvbXBhdC5oPg0KICNpbmNs dWRlIDxsaW51eC9zbGFiLmg+DQogI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPg0KIA0KQEAgLTMy LDI0ICszMyw4IEBAIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGV4dDNfZmlsZXR5cGVfdGFibGVbXSA9 IHsNCiAJRFRfVU5LTk9XTiwgRFRfUkVHLCBEVF9ESVIsIERUX0NIUiwgRFRfQkxLLCBEVF9GSUZP LCBEVF9TT0NLLCBEVF9MTksNCiB9Ow0KIA0KLXN0YXRpYyBpbnQgZXh0M19yZWFkZGlyKHN0cnVj dCBmaWxlICosIHZvaWQgKiwgZmlsbGRpcl90KTsNCiBzdGF0aWMgaW50IGV4dDNfZHhfcmVhZGRp cihzdHJ1Y3QgZmlsZSAqIGZpbHAsDQogCQkJICAgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZp bGxkaXIpOw0KLXN0YXRpYyBpbnQgZXh0M19yZWxlYXNlX2RpciAoc3RydWN0IGlub2RlICogaW5v ZGUsDQotCQkJCXN0cnVjdCBmaWxlICogZmlscCk7DQotDQotY29uc3Qgc3RydWN0IGZpbGVfb3Bl cmF0aW9ucyBleHQzX2Rpcl9vcGVyYXRpb25zID0gew0KLQkubGxzZWVrCQk9IGdlbmVyaWNfZmls ZV9sbHNlZWssDQotCS5yZWFkCQk9IGdlbmVyaWNfcmVhZF9kaXIsDQotCS5yZWFkZGlyCT0gZXh0 M19yZWFkZGlyLAkJLyogd2UgdGFrZSBCS0wuIG5lZWRlZD8qLw0KLQkudW5sb2NrZWRfaW9jdGwJ PSBleHQzX2lvY3RsLA0KLSNpZmRlZiBDT05GSUdfQ09NUEFUDQotCS5jb21wYXRfaW9jdGwJPSBl eHQzX2NvbXBhdF9pb2N0bCwNCi0jZW5kaWYNCi0JLmZzeW5jCQk9IGV4dDNfc3luY19maWxlLAkv KiBCS0wgaGVsZCAqLw0KLQkucmVsZWFzZQk9IGV4dDNfcmVsZWFzZV9kaXIsDQotfTsNCi0NCiAN CiBzdGF0aWMgdW5zaWduZWQgY2hhciBnZXRfZHR5cGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwg aW50IGZpbGV0eXBlKQ0KIHsNCkBAIC02MCw2ICs0NSwyNSBAQCBzdGF0aWMgdW5zaWduZWQgY2hh ciBnZXRfZHR5cGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IGZpbGV0eXBlKQ0KIAlyZXR1 cm4gKGV4dDNfZmlsZXR5cGVfdGFibGVbZmlsZXR5cGVdKTsNCiB9DQogDQorLyoqDQorICogQ2hl Y2sgaWYgdGhlIGdpdmVuIGRpci1pbm9kZSByZWZlcnMgdG8gYW4gaHRyZWUtaW5kZXhlZCBkaXJl Y3RvcnkNCisgKiAob3IgYSBkaXJlY3Rvcnkgd2hpY2ggY2hvdWxkIHBvdGVudGlhbGx5IGdldCBj b3ZlcnRlZCB0byB1c2UgaHRyZWUNCisgKiBpbmRleGluZykuDQorICoNCisgKiBSZXR1cm4gMSBp ZiBpdCBpcyBhIGR4IGRpciwgMCBpZiBub3QNCisgKi8NCitzdGF0aWMgaW50IGlzX2R4X2Rpcihz dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KK3sNCisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGlub2Rl LT5pX3NiOw0KKw0KKwlpZiAoRVhUM19IQVNfQ09NUEFUX0ZFQVRVUkUoaW5vZGUtPmlfc2IsDQor CQkgICAgIEVYVDNfRkVBVFVSRV9DT01QQVRfRElSX0lOREVYKSAmJg0KKwkgICAgKChFWFQzX0ko aW5vZGUpLT5pX2ZsYWdzICYgRVhUM19JTkRFWF9GTCkgfHwNCisJICAgICAoKGlub2RlLT5pX3Np emUgPj4gc2ItPnNfYmxvY2tzaXplX2JpdHMpID09IDEpKSkNCisJCXJldHVybiAxOw0KKw0KKwly ZXR1cm4gMDsNCit9DQogDQogaW50IGV4dDNfY2hlY2tfZGlyX2VudHJ5IChjb25zdCBjaGFyICog ZnVuY3Rpb24sIHN0cnVjdCBpbm9kZSAqIGRpciwNCiAJCQkgIHN0cnVjdCBleHQzX2Rpcl9lbnRy eV8yICogZGUsDQpAQCAtOTksMTggKzEwMywxMyBAQCBzdGF0aWMgaW50IGV4dDNfcmVhZGRpcihz dHJ1Y3QgZmlsZSAqIGZpbHAsDQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIAlpbnQgaSwgc3Rv cmVkOw0KIAlzdHJ1Y3QgZXh0M19kaXJfZW50cnlfMiAqZGU7DQotCXN0cnVjdCBzdXBlcl9ibG9j ayAqc2I7DQogCWludCBlcnI7DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxwLT5mX3BhdGgu ZGVudHJ5LT5kX2lub2RlOw0KKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7 DQogCWludCByZXQgPSAwOw0KIAlpbnQgZGlyX2hhc19lcnJvciA9IDA7DQogDQotCXNiID0gaW5v ZGUtPmlfc2I7DQotDQotCWlmIChFWFQzX0hBU19DT01QQVRfRkVBVFVSRShpbm9kZS0+aV9zYiwN Ci0JCQkJICAgIEVYVDNfRkVBVFVSRV9DT01QQVRfRElSX0lOREVYKSAmJg0KLQkgICAgKChFWFQz X0koaW5vZGUpLT5pX2ZsYWdzICYgRVhUM19JTkRFWF9GTCkgfHwNCi0JICAgICAoKGlub2RlLT5p X3NpemUgPj4gc2ItPnNfYmxvY2tzaXplX2JpdHMpID09IDEpKSkgew0KKwlpZiAoaXNfZHhfZGly KGlub2RlKSkgew0KIAkJZXJyID0gZXh0M19keF9yZWFkZGlyKGZpbHAsIGRpcmVudCwgZmlsbGRp cik7DQogCQlpZiAoZXJyICE9IEVSUl9CQURfRFhfRElSKSB7DQogCQkJcmV0ID0gZXJyOw0KQEAg LTIzMiwyMiArMjMxLDg3IEBAIG91dDoNCiAJcmV0dXJuIHJldDsNCiB9DQogDQorc3RhdGljIGlu bGluZSBpbnQgaXNfMzJiaXRfYXBpKHZvaWQpDQorew0KKyNpZmRlZiBDT05GSUdfQ09NUEFUDQor CXJldHVybiBpc19jb21wYXRfdGFzaygpOw0KKyNlbHNlDQorCXJldHVybiAoQklUU19QRVJfTE9O RyA9PSAzMik7DQorI2VuZGlmDQorfQ0KKw0KIC8qDQogICogVGhlc2UgZnVuY3Rpb25zIGNvbnZl cnQgZnJvbSB0aGUgbWFqb3IvbWlub3IgaGFzaCB0byBhbiBmX3Bvcw0KLSAqIHZhbHVlLg0KKyAq IHZhbHVlIGZvciBkeCBkaXJlY3Rvcmllcw0KICAqDQotICogQ3VycmVudGx5IHdlIG9ubHkgdXNl IG1ham9yIGhhc2ggbnVtZXIuICBUaGlzIGlzIHVuZm9ydHVuYXRlLCBidXQNCi0gKiBvbiAzMi1i aXQgbWFjaGluZXMsIHRoZSBzYW1lIFZGUyBpbnRlcmZhY2UgaXMgdXNlZCBmb3IgbHNlZWsgYW5k DQotICogbGxzZWVrLCBzbyBpZiB3ZSB1c2UgdGhlIDY0IGJpdCBvZmZzZXQsIHRoZW4gdGhlIDMy LWJpdCB2ZXJzaW9ucyBvZg0KLSAqIGxzZWVrL3RlbGxkaXIvc2Vla2RpciB3aWxsIGJsb3cgb3V0 IHNwZWN0YWN1bGFybHksIGFuZCBmcm9tIHdpdGhpbg0KLSAqIHRoZSBleHQyIGxvdy1sZXZlbCBy b3V0aW5lLCB3ZSBkb24ndCBrbm93IGlmIHdlJ3JlIGJlaW5nIGNhbGxlZCBieQ0KLSAqIGEgNjQt Yml0IHZlcnNpb24gb2YgdGhlIHN5c3RlbSBjYWxsIG9yIHRoZSAzMi1iaXQgdmVyc2lvbiBvZiB0 aGUNCi0gKiBzeXN0ZW0gY2FsbC4gIFdvcnNlIHlldCwgTkZTdjIgb25seSBhbGxvd3MgZm9yIGEg MzItYml0IHJlYWRkaXINCi0gKiBjb29raWUuICBTaWdoLg0KKyAqIFVwcGVyIGxheWVyIChmb3Ig ZXhhbXBsZSBORlMpIHNob3VsZCBzcGVjaWZ5IEZNT0RFXzMyQklUSEFTSCBvcg0KKyAqIEZNT0RF XzY0QklUSEFTSCBleHBsaWNpdGx5LiBPbiB0aGUgb3RoZXIgaGFuZCwgd2UgYWxsb3cgZXh0MyB0 byBiZSBtb3VudGVkDQorICogZGlyZWN0bHkgb24gYm90aCAzMi1iaXQgYW5kIDY0LWJpdCBub2Rl cywgdW5kZXIgc3VjaCBjYXNlLCBuZWl0aGVyDQorICogRk1PREVfMzJCSVRIQVNIIG5vciBGTU9E RV82NEJJVEhBU0ggaXMgc3BlY2lmaWVkLg0KICAqLw0KLSNkZWZpbmUgaGFzaDJwb3MobWFqb3Is IG1pbm9yKQkobWFqb3IgPj4gMSkNCi0jZGVmaW5lIHBvczJtYWpfaGFzaChwb3MpCSgocG9zIDw8 IDEpICYgMHhmZmZmZmZmZikNCi0jZGVmaW5lIHBvczJtaW5faGFzaChwb3MpCSgwKQ0KK3N0YXRp YyBpbmxpbmUgbG9mZl90IGhhc2gycG9zKHN0cnVjdCBmaWxlICpmaWxwLCBfX3UzMiBtYWpvciwg X191MzIgbWlub3IpDQorew0KKwlpZiAoKGZpbHAtPmZfbW9kZSAmIEZNT0RFXzMyQklUSEFTSCkg fHwNCisJICAgICghKGZpbHAtPmZfbW9kZSAmIEZNT0RFXzY0QklUSEFTSCkgJiYgaXNfMzJiaXRf YXBpKCkpKQ0KKwkJcmV0dXJuIG1ham9yID4+IDE7DQorCWVsc2UNCisJCXJldHVybiAoKF9fdTY0 KShtYWpvciA+PiAxKSA8PCAzMikgfCAoX191NjQpbWlub3I7DQorfQ0KKw0KK3N0YXRpYyBpbmxp bmUgX191MzIgcG9zMm1hal9oYXNoKHN0cnVjdCBmaWxlICpmaWxwLCBsb2ZmX3QgcG9zKQ0KK3sN CisJaWYgKChmaWxwLT5mX21vZGUgJiBGTU9ERV8zMkJJVEhBU0gpIHx8DQorCSAgICAoIShmaWxw LT5mX21vZGUgJiBGTU9ERV82NEJJVEhBU0gpICYmIGlzXzMyYml0X2FwaSgpKSkNCisJCXJldHVy biAocG9zIDw8IDEpICYgMHhmZmZmZmZmZjsNCisJZWxzZQ0KKwkJcmV0dXJuICgocG9zID4+IDMy KSA8PCAxKSAmIDB4ZmZmZmZmZmY7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgX191MzIgcG9zMm1p bl9oYXNoKHN0cnVjdCBmaWxlICpmaWxwLCBsb2ZmX3QgcG9zKQ0KK3sNCisJaWYgKChmaWxwLT5m X21vZGUgJiBGTU9ERV8zMkJJVEhBU0gpIHx8DQorCSAgICAoIShmaWxwLT5mX21vZGUgJiBGTU9E RV82NEJJVEhBU0gpICYmIGlzXzMyYml0X2FwaSgpKSkNCisJCXJldHVybiAwOw0KKwllbHNlDQor CQlyZXR1cm4gcG9zICYgMHhmZmZmZmZmZjsNCit9DQorDQorLyoNCisgKiBSZXR1cm4gMzItIG9y IDY0LWJpdCBlbmQtb2YtZmlsZSBmb3IgZHggZGlyZWN0b3JpZXMNCisgKi8NCitzdGF0aWMgaW5s aW5lIGxvZmZfdCBleHQzX2dldF9odHJlZV9lb2Yoc3RydWN0IGZpbGUgKmZpbHApDQorew0KKwlp ZiAoKGZpbHAtPmZfbW9kZSAmIEZNT0RFXzMyQklUSEFTSCkgfHwNCisJICAgICghKGZpbHAtPmZf bW9kZSAmIEZNT0RFXzY0QklUSEFTSCkgJiYgaXNfMzJiaXRfYXBpKCkpKQ0KKwkJcmV0dXJuIEVY VDNfSFRSRUVfRU9GXzMyQklUOw0KKwllbHNlDQorCQlyZXR1cm4gRVhUM19IVFJFRV9FT0ZfNjRC SVQ7DQorfQ0KKw0KKw0KKy8qDQorICogZXh0M19kaXJfbGxzZWVrKCkgY2FsbHMgZ2VuZXJpY19m aWxlX2xsc2Vla1tfc2l6ZV0oKSB0byBoYW5kbGUgYm90aA0KKyAqIG5vbi1odHJlZSBhbmQgaHRy ZWUgZGlyZWN0b3JpZXMsIHdoZXJlIHRoZSAib2Zmc2V0IiBpcyBpbiB0ZXJtcw0KKyAqIG9mIHRo ZSBmaWxlbmFtZSBoYXNoIHZhbHVlIGluc3RlYWQgb2YgdGhlIGJ5dGUgb2Zmc2V0Lg0KKyAqDQor ICogQmVjYXVzZSB3ZSBtYXkgcmV0dXJuIGEgNjQtYml0IGhhc2ggdGhhdCBpcyB3ZWxsIGJleW9u ZCBzX21heGJ5dGVzLA0KKyAqIHdlIG5lZWQgdG8gcGFzcyB0aGUgbWF4IGhhc2ggYXMgdGhlIG1h eGltdW0gYWxsb3dhYmxlIG9mZnNldCBpbg0KKyAqIHRoZSBodHJlZSBkaXJlY3RvcnkgY2FzZS4N CisgKg0KKyAqIE5PVEU6IG9mZnNldHMgb2J0YWluZWQgKmJlZm9yZSogZXh0M19zZXRfaW5vZGVf ZmxhZyhkaXIsIEVYVDNfSU5PREVfSU5ERVgpDQorICogICAgICAgd2lsbCBiZSBpbnZhbGlkIG9u Y2UgdGhlIGRpcmVjdG9yeSB3YXMgY29udmVydGVkIGludG8gYSBkeCBkaXJlY3RvcnkNCisgKi8N Citsb2ZmX3QgZXh0M19kaXJfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0 LCBpbnQgb3JpZ2luKQ0KK3sNCisJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfbWFwcGlu Zy0+aG9zdDsNCisJaW50IGR4X2RpciA9IGlzX2R4X2Rpcihpbm9kZSk7DQorDQorCWlmIChsaWtl bHkoZHhfZGlyKSkNCisJCXJldHVybiBnZW5lcmljX2ZpbGVfbGxzZWVrX3NpemUoZmlsZSwgb2Zm c2V0LCBvcmlnaW4sDQorCQkJCQkgICAgICAgIGV4dDNfZ2V0X2h0cmVlX2VvZihmaWxlKSk7DQor CWVsc2UNCisJCXJldHVybiBnZW5lcmljX2ZpbGVfbGxzZWVrKGZpbGUsIG9mZnNldCwgb3JpZ2lu KTsNCit9DQogDQogLyoNCiAgKiBUaGlzIHN0cnVjdHVyZSBob2xkcyB0aGUgbm9kZXMgb2YgdGhl IHJlZC1ibGFjayB0cmVlIHVzZWQgdG8gc3RvcmUNCkBAIC0zMDgsMTUgKzM3MiwxNiBAQCBzdGF0 aWMgdm9pZCBmcmVlX3JiX3RyZWVfZm5hbWUoc3RydWN0IHJiX3Jvb3QgKnJvb3QpDQogfQ0KIA0K IA0KLXN0YXRpYyBzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyAqZXh0M19odHJlZV9jcmVhdGVfZGly X2luZm8obG9mZl90IHBvcykNCitzdGF0aWMgc3RydWN0IGRpcl9wcml2YXRlX2luZm8gKmV4dDNf aHRyZWVfY3JlYXRlX2Rpcl9pbmZvKHN0cnVjdCBmaWxlICpmaWxwLA0KKwkJCQkJCQkgICBsb2Zm X3QgcG9zKQ0KIHsNCiAJc3RydWN0IGRpcl9wcml2YXRlX2luZm8gKnA7DQogDQogCXAgPSBremFs bG9jKHNpemVvZihzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyksIEdGUF9LRVJORUwpOw0KIAlpZiAo IXApDQogCQlyZXR1cm4gTlVMTDsNCi0JcC0+Y3Vycl9oYXNoID0gcG9zMm1hal9oYXNoKHBvcyk7 DQotCXAtPmN1cnJfbWlub3JfaGFzaCA9IHBvczJtaW5faGFzaChwb3MpOw0KKwlwLT5jdXJyX2hh c2ggPSBwb3MybWFqX2hhc2goZmlscCwgcG9zKTsNCisJcC0+Y3Vycl9taW5vcl9oYXNoID0gcG9z Mm1pbl9oYXNoKGZpbHAsIHBvcyk7DQogCXJldHVybiBwOw0KIH0NCiANCkBAIC00MDYsNyArNDcx LDcgQEAgc3RhdGljIGludCBjYWxsX2ZpbGxkaXIoc3RydWN0IGZpbGUgKiBmaWxwLCB2b2lkICog ZGlyZW50LA0KIAkJcHJpbnRrKCJjYWxsX2ZpbGxkaXI6IGNhbGxlZCB3aXRoIG51bGwgZm5hbWU/ IT9cbiIpOw0KIAkJcmV0dXJuIDA7DQogCX0NCi0JY3Vycl9wb3MgPSBoYXNoMnBvcyhmbmFtZS0+ aGFzaCwgZm5hbWUtPm1pbm9yX2hhc2gpOw0KKwljdXJyX3BvcyA9IGhhc2gycG9zKGZpbHAsIGZu YW1lLT5oYXNoLCBmbmFtZS0+bWlub3JfaGFzaCk7DQogCXdoaWxlIChmbmFtZSkgew0KIAkJZXJy b3IgPSBmaWxsZGlyKGRpcmVudCwgZm5hbWUtPm5hbWUsDQogCQkJCWZuYW1lLT5uYW1lX2xlbiwg Y3Vycl9wb3MsDQpAQCAtNDMxLDEzICs0OTYsMTMgQEAgc3RhdGljIGludCBleHQzX2R4X3JlYWRk aXIoc3RydWN0IGZpbGUgKiBmaWxwLA0KIAlpbnQJcmV0Ow0KIA0KIAlpZiAoIWluZm8pIHsNCi0J CWluZm8gPSBleHQzX2h0cmVlX2NyZWF0ZV9kaXJfaW5mbyhmaWxwLT5mX3Bvcyk7DQorCQlpbmZv ID0gZXh0M19odHJlZV9jcmVhdGVfZGlyX2luZm8oZmlscCwgZmlscC0+Zl9wb3MpOw0KIAkJaWYg KCFpbmZvKQ0KIAkJCXJldHVybiAtRU5PTUVNOw0KIAkJZmlscC0+cHJpdmF0ZV9kYXRhID0gaW5m bzsNCiAJfQ0KIA0KLQlpZiAoZmlscC0+Zl9wb3MgPT0gRVhUM19IVFJFRV9FT0YpDQorCWlmIChm aWxwLT5mX3BvcyA9PSBleHQzX2dldF9odHJlZV9lb2YoZmlscCkpDQogCQlyZXR1cm4gMDsJLyog RU9GICovDQogDQogCS8qIFNvbWUgb25lIGhhcyBtZXNzZWQgd2l0aCBmX3BvczsgcmVzZXQgdGhl IHdvcmxkICovDQpAQCAtNDQ1LDggKzUxMCw4IEBAIHN0YXRpYyBpbnQgZXh0M19keF9yZWFkZGly KHN0cnVjdCBmaWxlICogZmlscCwNCiAJCWZyZWVfcmJfdHJlZV9mbmFtZSgmaW5mby0+cm9vdCk7 DQogCQlpbmZvLT5jdXJyX25vZGUgPSBOVUxMOw0KIAkJaW5mby0+ZXh0cmFfZm5hbWUgPSBOVUxM Ow0KLQkJaW5mby0+Y3Vycl9oYXNoID0gcG9zMm1hal9oYXNoKGZpbHAtPmZfcG9zKTsNCi0JCWlu Zm8tPmN1cnJfbWlub3JfaGFzaCA9IHBvczJtaW5faGFzaChmaWxwLT5mX3Bvcyk7DQorCQlpbmZv LT5jdXJyX2hhc2ggPSBwb3MybWFqX2hhc2goZmlscCwgZmlscC0+Zl9wb3MpOw0KKwkJaW5mby0+ Y3Vycl9taW5vcl9oYXNoID0gcG9zMm1pbl9oYXNoKGZpbHAsIGZpbHAtPmZfcG9zKTsNCiAJfQ0K IA0KIAkvKg0KQEAgLTQ3OCw3ICs1NDMsNyBAQCBzdGF0aWMgaW50IGV4dDNfZHhfcmVhZGRpcihz dHJ1Y3QgZmlsZSAqIGZpbHAsDQogCQkJaWYgKHJldCA8IDApDQogCQkJCXJldHVybiByZXQ7DQog CQkJaWYgKHJldCA9PSAwKSB7DQotCQkJCWZpbHAtPmZfcG9zID0gRVhUM19IVFJFRV9FT0Y7DQor CQkJCWZpbHAtPmZfcG9zID0gZXh0M19nZXRfaHRyZWVfZW9mKGZpbHApOw0KIAkJCQlicmVhazsN CiAJCQl9DQogCQkJaW5mby0+Y3Vycl9ub2RlID0gcmJfZmlyc3QoJmluZm8tPnJvb3QpOw0KQEAg LTQ5OCw3ICs1NjMsNyBAQCBzdGF0aWMgaW50IGV4dDNfZHhfcmVhZGRpcihzdHJ1Y3QgZmlsZSAq IGZpbHAsDQogCQkJaW5mby0+Y3Vycl9taW5vcl9oYXNoID0gZm5hbWUtPm1pbm9yX2hhc2g7DQog CQl9IGVsc2Ugew0KIAkJCWlmIChpbmZvLT5uZXh0X2hhc2ggPT0gfjApIHsNCi0JCQkJZmlscC0+ Zl9wb3MgPSBFWFQzX0hUUkVFX0VPRjsNCisJCQkJZmlscC0+Zl9wb3MgPSBleHQzX2dldF9odHJl ZV9lb2YoZmlscCk7DQogCQkJCWJyZWFrOw0KIAkJCX0NCiAJCQlpbmZvLT5jdXJyX2hhc2ggPSBp bmZvLT5uZXh0X2hhc2g7DQpAQCAtNTE3LDMgKzU4MiwxNSBAQCBzdGF0aWMgaW50IGV4dDNfcmVs ZWFzZV9kaXIgKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApDQogDQog CXJldHVybiAwOw0KIH0NCisNCitjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGV4dDNfZGly X29wZXJhdGlvbnMgPSB7DQorCS5sbHNlZWsJCT0gZXh0M19kaXJfbGxzZWVrLA0KKwkucmVhZAkJ PSBnZW5lcmljX3JlYWRfZGlyLA0KKwkucmVhZGRpcgk9IGV4dDNfcmVhZGRpciwNCisJLnVubG9j a2VkX2lvY3RsID0gZXh0M19pb2N0bCwNCisjaWZkZWYgQ09ORklHX0NPTVBBVA0KKwkuY29tcGF0 X2lvY3RsCT0gZXh0M19jb21wYXRfaW9jdGwsDQorI2VuZGlmDQorCS5mc3luYwkJPSBleHQzX3N5 bmNfZmlsZSwNCisJLnJlbGVhc2UJPSBleHQzX3JlbGVhc2VfZGlyLA0KK307DQpkaWZmIC0tZ2l0 IGEvZnMvZXh0My9oYXNoLmMgYi9mcy9leHQzL2hhc2guYw0KaW5kZXggN2QyMTViNC4uZDRkM2Fk ZSAxMDA2NDQNCi0tLSBhL2ZzL2V4dDMvaGFzaC5jDQorKysgYi9mcy9leHQzL2hhc2guYw0KQEAg LTIwMCw4ICsyMDAsOCBAQCBpbnQgZXh0M2ZzX2Rpcmhhc2goY29uc3QgY2hhciAqbmFtZSwgaW50 IGxlbiwgc3RydWN0IGR4X2hhc2hfaW5mbyAqaGluZm8pDQogCQlyZXR1cm4gLTE7DQogCX0NCiAJ aGFzaCA9IGhhc2ggJiB+MTsNCi0JaWYgKGhhc2ggPT0gKEVYVDNfSFRSRUVfRU9GIDw8IDEpKQ0K LQkJaGFzaCA9IChFWFQzX0hUUkVFX0VPRi0xKSA8PCAxOw0KKwlpZiAoaGFzaCA9PSAoRVhUM19I VFJFRV9FT0ZfMzJCSVQgPDwgMSkpDQorCQloYXNoID0gKEVYVDNfSFRSRUVfRU9GXzMyQklUIC0g MSkgPDwgMTsNCiAJaGluZm8tPmhhc2ggPSBoYXNoOw0KIAloaW5mby0+bWlub3JfaGFzaCA9IG1p bm9yX2hhc2g7DQogCXJldHVybiAwOw0KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZGlyLmMgYi9mcy9l eHQ0L2Rpci5jDQppbmRleCAxNjRjNTYwLi42ODlkMWIxIDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9k aXIuYw0KKysrIGIvZnMvZXh0NC9kaXIuYw0KQEAgLTMyLDI0ICszMiw4IEBAIHN0YXRpYyB1bnNp Z25lZCBjaGFyIGV4dDRfZmlsZXR5cGVfdGFibGVbXSA9IHsNCiAJRFRfVU5LTk9XTiwgRFRfUkVH LCBEVF9ESVIsIERUX0NIUiwgRFRfQkxLLCBEVF9GSUZPLCBEVF9TT0NLLCBEVF9MTksNCiB9Ow0K IA0KLXN0YXRpYyBpbnQgZXh0NF9yZWFkZGlyKHN0cnVjdCBmaWxlICosIHZvaWQgKiwgZmlsbGRp cl90KTsNCiBzdGF0aWMgaW50IGV4dDRfZHhfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqZmlscCwNCiAJ CQkgICB2b2lkICpkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKTsNCi1zdGF0aWMgaW50IGV4dDRf cmVsZWFzZV9kaXIoc3RydWN0IGlub2RlICppbm9kZSwNCi0JCQkJc3RydWN0IGZpbGUgKmZpbHAp Ow0KLQ0KLWNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZXh0NF9kaXJfb3BlcmF0aW9ucyA9 IHsNCi0JLmxsc2VlawkJPSBleHQ0X2xsc2VlaywNCi0JLnJlYWQJCT0gZ2VuZXJpY19yZWFkX2Rp ciwNCi0JLnJlYWRkaXIJPSBleHQ0X3JlYWRkaXIsCQkvKiB3ZSB0YWtlIEJLTC4gbmVlZGVkPyov DQotCS51bmxvY2tlZF9pb2N0bCA9IGV4dDRfaW9jdGwsDQotI2lmZGVmIENPTkZJR19DT01QQVQN Ci0JLmNvbXBhdF9pb2N0bAk9IGV4dDRfY29tcGF0X2lvY3RsLA0KLSNlbmRpZg0KLQkuZnN5bmMJ CT0gZXh0NF9zeW5jX2ZpbGUsDQotCS5yZWxlYXNlCT0gZXh0NF9yZWxlYXNlX2RpciwNCi19Ow0K LQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGdldF9kdHlwZShzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiLCBpbnQgZmlsZXR5cGUpDQogew0KQEAgLTYwLDYgKzQ0LDI2IEBAIHN0YXRpYyB1bnNpZ25l ZCBjaGFyIGdldF9kdHlwZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgZmlsZXR5cGUpDQog CXJldHVybiAoZXh0NF9maWxldHlwZV90YWJsZVtmaWxldHlwZV0pOw0KIH0NCiANCisvKioNCisg KiBDaGVjayBpZiB0aGUgZ2l2ZW4gZGlyLWlub2RlIHJlZmVycyB0byBhbiBodHJlZS1pbmRleGVk IGRpcmVjdG9yeQ0KKyAqIChvciBhIGRpcmVjdG9yeSB3aGljaCBjaG91bGQgcG90ZW50aWFsbHkg Z2V0IGNvdmVydGVkIHRvIHVzZSBodHJlZQ0KKyAqIGluZGV4aW5nKS4NCisgKg0KKyAqIFJldHVy biAxIGlmIGl0IGlzIGEgZHggZGlyLCAwIGlmIG5vdA0KKyAqLw0KK3N0YXRpYyBpbnQgaXNfZHhf ZGlyKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQorew0KKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0g aW5vZGUtPmlfc2I7DQorDQorCWlmIChFWFQ0X0hBU19DT01QQVRfRkVBVFVSRShpbm9kZS0+aV9z YiwNCisJCSAgICAgRVhUNF9GRUFUVVJFX0NPTVBBVF9ESVJfSU5ERVgpICYmDQorCSAgICAoKGV4 dDRfdGVzdF9pbm9kZV9mbGFnKGlub2RlLCBFWFQ0X0lOT0RFX0lOREVYKSkgfHwNCisJICAgICAo KGlub2RlLT5pX3NpemUgPj4gc2ItPnNfYmxvY2tzaXplX2JpdHMpID09IDEpKSkNCisJCXJldHVy biAxOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQogLyoNCiAgKiBSZXR1cm4gMCBpZiB0aGUgZGly ZWN0b3J5IGVudHJ5IGlzIE9LLCBhbmQgMSBpZiB0aGVyZSBpcyBhIHByb2JsZW0NCiAgKg0KQEAg LTExNSwxOCArMTE5LDEzIEBAIHN0YXRpYyBpbnQgZXh0NF9yZWFkZGlyKHN0cnVjdCBmaWxlICpm aWxwLA0KIAl1bnNpZ25lZCBpbnQgb2Zmc2V0Ow0KIAlpbnQgaSwgc3RvcmVkOw0KIAlzdHJ1Y3Qg ZXh0NF9kaXJfZW50cnlfMiAqZGU7DQotCXN0cnVjdCBzdXBlcl9ibG9jayAqc2I7DQogCWludCBl cnI7DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl Ow0KKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7DQogCWludCByZXQgPSAw Ow0KIAlpbnQgZGlyX2hhc19lcnJvciA9IDA7DQogDQotCXNiID0gaW5vZGUtPmlfc2I7DQotDQot CWlmIChFWFQ0X0hBU19DT01QQVRfRkVBVFVSRShpbm9kZS0+aV9zYiwNCi0JCQkJICAgIEVYVDRf RkVBVFVSRV9DT01QQVRfRElSX0lOREVYKSAmJg0KLQkgICAgKChleHQ0X3Rlc3RfaW5vZGVfZmxh Zyhpbm9kZSwgRVhUNF9JTk9ERV9JTkRFWCkpIHx8DQotCSAgICAgKChpbm9kZS0+aV9zaXplID4+ IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzKSA9PSAxKSkpIHsNCisJaWYgKGlzX2R4X2Rpcihpbm9kZSkp IHsNCiAJCWVyciA9IGV4dDRfZHhfcmVhZGRpcihmaWxwLCBkaXJlbnQsIGZpbGxkaXIpOw0KIAkJ aWYgKGVyciAhPSBFUlJfQkFEX0RYX0RJUikgew0KIAkJCXJldCA9IGVycjsNCkBAIC0yNTQsMjIg KzI1MywxMzQgQEAgb3V0Og0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCitzdGF0aWMgaW5saW5lIGlu dCBpc18zMmJpdF9hcGkodm9pZCkNCit7DQorI2lmZGVmIENPTkZJR19DT01QQVQNCisJcmV0dXJu IGlzX2NvbXBhdF90YXNrKCk7DQorI2Vsc2UNCisJcmV0dXJuIChCSVRTX1BFUl9MT05HID09IDMy KTsNCisjZW5kaWYNCit9DQorDQogLyoNCiAgKiBUaGVzZSBmdW5jdGlvbnMgY29udmVydCBmcm9t IHRoZSBtYWpvci9taW5vciBoYXNoIHRvIGFuIGZfcG9zDQotICogdmFsdWUuDQorICogdmFsdWUg Zm9yIGR4IGRpcmVjdG9yaWVzDQorICoNCisgKiBVcHBlciBsYXllciAoZm9yIGV4YW1wbGUgTkZT KSBzaG91bGQgc3BlY2lmeSBGTU9ERV8zMkJJVEhBU0ggb3INCisgKiBGTU9ERV82NEJJVEhBU0gg ZXhwbGljaXRseS4gT24gdGhlIG90aGVyIGhhbmQsIHdlIGFsbG93IGV4dDQgdG8gYmUgbW91bnRl ZA0KKyAqIGRpcmVjdGx5IG9uIGJvdGggMzItYml0IGFuZCA2NC1iaXQgbm9kZXMsIHVuZGVyIHN1 Y2ggY2FzZSwgbmVpdGhlcg0KKyAqIEZNT0RFXzMyQklUSEFTSCBub3IgRk1PREVfNjRCSVRIQVNI IGlzIHNwZWNpZmllZC4NCisgKi8NCitzdGF0aWMgaW5saW5lIGxvZmZfdCBoYXNoMnBvcyhzdHJ1 Y3QgZmlsZSAqZmlscCwgX191MzIgbWFqb3IsIF9fdTMyIG1pbm9yKQ0KK3sNCisJaWYgKChmaWxw LT5mX21vZGUgJiBGTU9ERV8zMkJJVEhBU0gpIHx8DQorCSAgICAoIShmaWxwLT5mX21vZGUgJiBG TU9ERV82NEJJVEhBU0gpICYmIGlzXzMyYml0X2FwaSgpKSkNCisJCXJldHVybiBtYWpvciA+PiAx Ow0KKwllbHNlDQorCQlyZXR1cm4gKChfX3U2NCkobWFqb3IgPj4gMSkgPDwgMzIpIHwgKF9fdTY0 KW1pbm9yOw0KK30NCisNCitzdGF0aWMgaW5saW5lIF9fdTMyIHBvczJtYWpfaGFzaChzdHJ1Y3Qg ZmlsZSAqZmlscCwgbG9mZl90IHBvcykNCit7DQorCWlmICgoZmlscC0+Zl9tb2RlICYgRk1PREVf MzJCSVRIQVNIKSB8fA0KKwkgICAgKCEoZmlscC0+Zl9tb2RlICYgRk1PREVfNjRCSVRIQVNIKSAm JiBpc18zMmJpdF9hcGkoKSkpDQorCQlyZXR1cm4gKHBvcyA8PCAxKSAmIDB4ZmZmZmZmZmY7DQor CWVsc2UNCisJCXJldHVybiAoKHBvcyA+PiAzMikgPDwgMSkgJiAweGZmZmZmZmZmOw0KK30NCisN CitzdGF0aWMgaW5saW5lIF9fdTMyIHBvczJtaW5faGFzaChzdHJ1Y3QgZmlsZSAqZmlscCwgbG9m Zl90IHBvcykNCit7DQorCWlmICgoZmlscC0+Zl9tb2RlICYgRk1PREVfMzJCSVRIQVNIKSB8fA0K KwkgICAgKCEoZmlscC0+Zl9tb2RlICYgRk1PREVfNjRCSVRIQVNIKSAmJiBpc18zMmJpdF9hcGko KSkpDQorCQlyZXR1cm4gMDsNCisJZWxzZQ0KKwkJcmV0dXJuIHBvcyAmIDB4ZmZmZmZmZmY7DQor fQ0KKw0KKy8qDQorICogUmV0dXJuIDMyLSBvciA2NC1iaXQgZW5kLW9mLWZpbGUgZm9yIGR4IGRp cmVjdG9yaWVzDQorICovDQorc3RhdGljIGlubGluZSBsb2ZmX3QgZXh0NF9nZXRfaHRyZWVfZW9m KHN0cnVjdCBmaWxlICpmaWxwKQ0KK3sNCisJaWYgKChmaWxwLT5mX21vZGUgJiBGTU9ERV8zMkJJ VEhBU0gpIHx8DQorCSAgICAoIShmaWxwLT5mX21vZGUgJiBGTU9ERV82NEJJVEhBU0gpICYmIGlz XzMyYml0X2FwaSgpKSkNCisJCXJldHVybiBFWFQ0X0hUUkVFX0VPRl8zMkJJVDsNCisJZWxzZQ0K KwkJcmV0dXJuIEVYVDRfSFRSRUVfRU9GXzY0QklUOw0KK30NCisNCisNCisvKg0KKyAqIGV4dDRf ZGlyX2xsc2VlaygpIGJhc2VkIG9uIGdlbmVyaWNfZmlsZV9sbHNlZWsoKSB0byBoYW5kbGUgYm90 aA0KKyAqIG5vbi1odHJlZSBhbmQgaHRyZWUgZGlyZWN0b3JpZXMsIHdoZXJlIHRoZSAib2Zmc2V0 IiBpcyBpbiB0ZXJtcw0KKyAqIG9mIHRoZSBmaWxlbmFtZSBoYXNoIHZhbHVlIGluc3RlYWQgb2Yg dGhlIGJ5dGUgb2Zmc2V0Lg0KICAqDQotICogQ3VycmVudGx5IHdlIG9ubHkgdXNlIG1ham9yIGhh c2ggbnVtZXIuICBUaGlzIGlzIHVuZm9ydHVuYXRlLCBidXQNCi0gKiBvbiAzMi1iaXQgbWFjaGlu ZXMsIHRoZSBzYW1lIFZGUyBpbnRlcmZhY2UgaXMgdXNlZCBmb3IgbHNlZWsgYW5kDQotICogbGxz ZWVrLCBzbyBpZiB3ZSB1c2UgdGhlIDY0IGJpdCBvZmZzZXQsIHRoZW4gdGhlIDMyLWJpdCB2ZXJz aW9ucyBvZg0KLSAqIGxzZWVrL3RlbGxkaXIvc2Vla2RpciB3aWxsIGJsb3cgb3V0IHNwZWN0YWN1 bGFybHksIGFuZCBmcm9tIHdpdGhpbg0KLSAqIHRoZSBleHQyIGxvdy1sZXZlbCByb3V0aW5lLCB3 ZSBkb24ndCBrbm93IGlmIHdlJ3JlIGJlaW5nIGNhbGxlZCBieQ0KLSAqIGEgNjQtYml0IHZlcnNp b24gb2YgdGhlIHN5c3RlbSBjYWxsIG9yIHRoZSAzMi1iaXQgdmVyc2lvbiBvZiB0aGUNCi0gKiBz eXN0ZW0gY2FsbC4gIFdvcnNlIHlldCwgTkZTdjIgb25seSBhbGxvd3MgZm9yIGEgMzItYml0IHJl YWRkaXINCi0gKiBjb29raWUuICBTaWdoLg0KKyAqIE5PVEU6IG9mZnNldHMgb2J0YWluZWQgKmJl Zm9yZSogZXh0NF9zZXRfaW5vZGVfZmxhZyhkaXIsIEVYVDRfSU5PREVfSU5ERVgpDQorICogICAg ICAgd2lsbCBiZSBpbnZhbGlkIG9uY2UgdGhlIGRpcmVjdG9yeSB3YXMgY29udmVydGVkIGludG8g YSBkeCBkaXJlY3RvcnkNCiAgKi8NCi0jZGVmaW5lIGhhc2gycG9zKG1ham9yLCBtaW5vcikJKG1h am9yID4+IDEpDQotI2RlZmluZSBwb3MybWFqX2hhc2gocG9zKQkoKHBvcyA8PCAxKSAmIDB4ZmZm ZmZmZmYpDQotI2RlZmluZSBwb3MybWluX2hhc2gocG9zKQkoMCkNCitsb2ZmX3QgZXh0NF9kaXJf bGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQ0KK3sN CisJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCisJbG9mZl90 IHJldCA9IC1FSU5WQUw7DQorCWludCBkeF9kaXIgPSBpc19keF9kaXIoaW5vZGUpOw0KKw0KKwlt dXRleF9sb2NrKCZpbm9kZS0+aV9tdXRleCk7DQorDQorCS8qIE5PVEU6IHJlbGF0aXZlIG9mZnNl dHMgd2l0aCBkeCBkaXJlY3RvcmllcyBtaWdodCBub3Qgd29yaw0KKwkgKiAgICAgICBhcyBleHBl Y3RlZCwgYXMgaXQgaXMgZGlmZmljdWx0IHRvIGZpZ3VyZSBvdXQgdGhlDQorCSAqICAgICAgIGNv cnJlY3Qgb2Zmc2V0IGJldHdlZW4gZHggaGFzaGVzICovDQorDQorCXN3aXRjaCAob3JpZ2luKSB7 DQorCWNhc2UgU0VFS19FTkQ6DQorCQlpZiAodW5saWtlbHkob2Zmc2V0ID4gMCkpDQorCQkJZ290 byBvdXRfZXJyOyAvKiBub3Qgc3VwcG9ydGVkIGZvciBkaXJlY3RvcmllcyAqLw0KKw0KKwkJLyog c28gb25seSBuZWdhdGl2ZSBvZmZzZXRzIGFyZSBsZWZ0LCBkb2VzIHRoYXQgaGF2ZSBhDQorCQkg KiBtZWFuaW5nIGZvciBkaXJlY3RvcmllcyBhdCBhbGw/ICovDQorCQlpZiAoZHhfZGlyKQ0KKwkJ CW9mZnNldCArPSBleHQ0X2dldF9odHJlZV9lb2YoZmlsZSk7DQorCQllbHNlDQorCQkJb2Zmc2V0 ICs9IGlub2RlLT5pX3NpemU7DQorCQlicmVhazsNCisJY2FzZSBTRUVLX0NVUjoNCisJCS8qDQor CQkgKiBIZXJlIHdlIHNwZWNpYWwtY2FzZSB0aGUgbHNlZWsoZmQsIDAsIFNFRUtfQ1VSKQ0KKwkJ ICogcG9zaXRpb24tcXVlcnlpbmcgb3BlcmF0aW9uLiAgQXZvaWQgcmV3cml0aW5nIHRoZSAic2Ft ZSINCisJCSAqIGZfcG9zIHZhbHVlIGJhY2sgdG8gdGhlIGZpbGUgYmVjYXVzZSBhIGNvbmN1cnJl bnQgcmVhZCgpLA0KKwkJICogd3JpdGUoKSBvciBsc2VlaygpIG1pZ2h0IGhhdmUgYWx0ZXJlZCBp dA0KKwkJICovDQorCQlpZiAob2Zmc2V0ID09IDApIHsNCisJCQlvZmZzZXQgPSBmaWxlLT5mX3Bv czsNCisJCQlnb3RvIG91dF9vazsNCisJCX0NCisNCisJCW9mZnNldCArPSBmaWxlLT5mX3BvczsN CisJCWJyZWFrOw0KKwl9DQorDQorCWlmICh1bmxpa2VseShvZmZzZXQgPCAwKSkNCisJCWdvdG8g b3V0X2VycjsNCisNCisJaWYgKCFkeF9kaXIpIHsNCisJCWlmIChvZmZzZXQgPiBpbm9kZS0+aV9z Yi0+c19tYXhieXRlcykNCisJCQlnb3RvIG91dF9lcnI7DQorCX0gZWxzZSBpZiAob2Zmc2V0ID4g ZXh0NF9nZXRfaHRyZWVfZW9mKGZpbGUpKQ0KKwkJZ290byBvdXRfZXJyOw0KKw0KKwkvKiBTcGVj aWFsIGxvY2sgbmVlZGVkIGhlcmU/ICovDQorCWlmIChvZmZzZXQgIT0gZmlsZS0+Zl9wb3MpIHsN CisJCWZpbGUtPmZfcG9zID0gb2Zmc2V0Ow0KKwkJZmlsZS0+Zl92ZXJzaW9uID0gMDsNCisJfQ0K Kw0KK291dF9vazoNCisJcmV0ID0gb2Zmc2V0Ow0KK291dF9lcnI6DQorCW11dGV4X3VubG9jaygm aW5vZGUtPmlfbXV0ZXgpOw0KKw0KKwlyZXR1cm4gcmV0Ow0KK30NCiANCiAvKg0KICAqIFRoaXMg c3RydWN0dXJlIGhvbGRzIHRoZSBub2RlcyBvZiB0aGUgcmVkLWJsYWNrIHRyZWUgdXNlZCB0byBz dG9yZQ0KQEAgLTMzMCwxNSArNDQxLDE2IEBAIHN0YXRpYyB2b2lkIGZyZWVfcmJfdHJlZV9mbmFt ZShzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkNCiB9DQogDQogDQotc3RhdGljIHN0cnVjdCBkaXJfcHJp dmF0ZV9pbmZvICpleHQ0X2h0cmVlX2NyZWF0ZV9kaXJfaW5mbyhsb2ZmX3QgcG9zKQ0KK3N0YXRp YyBzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyAqZXh0NF9odHJlZV9jcmVhdGVfZGlyX2luZm8oc3Ry dWN0IGZpbGUgKmZpbHAsDQorCQkJCQkJCSAgIGxvZmZfdCBwb3MpDQogew0KIAlzdHJ1Y3QgZGly X3ByaXZhdGVfaW5mbyAqcDsNCiANCiAJcCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkaXJfcHJp dmF0ZV9pbmZvKSwgR0ZQX0tFUk5FTCk7DQogCWlmICghcCkNCiAJCXJldHVybiBOVUxMOw0KLQlw LT5jdXJyX2hhc2ggPSBwb3MybWFqX2hhc2gocG9zKTsNCi0JcC0+Y3Vycl9taW5vcl9oYXNoID0g cG9zMm1pbl9oYXNoKHBvcyk7DQorCXAtPmN1cnJfaGFzaCA9IHBvczJtYWpfaGFzaChmaWxwLCBw b3MpOw0KKwlwLT5jdXJyX21pbm9yX2hhc2ggPSBwb3MybWluX2hhc2goZmlscCwgcG9zKTsNCiAJ cmV0dXJuIHA7DQogfQ0KIA0KQEAgLTQyOSw3ICs1NDEsNyBAQCBzdGF0aWMgaW50IGNhbGxfZmls bGRpcihzdHJ1Y3QgZmlsZSAqZmlscCwgdm9pZCAqZGlyZW50LA0KIAkJICAgICAgICJudWxsIGZu YW1lPyE/XG4iKTsNCiAJCXJldHVybiAwOw0KIAl9DQotCWN1cnJfcG9zID0gaGFzaDJwb3MoZm5h bWUtPmhhc2gsIGZuYW1lLT5taW5vcl9oYXNoKTsNCisJY3Vycl9wb3MgPSBoYXNoMnBvcyhmaWxw LCBmbmFtZS0+aGFzaCwgZm5hbWUtPm1pbm9yX2hhc2gpOw0KIAl3aGlsZSAoZm5hbWUpIHsNCiAJ CWVycm9yID0gZmlsbGRpcihkaXJlbnQsIGZuYW1lLT5uYW1lLA0KIAkJCQlmbmFtZS0+bmFtZV9s ZW4sIGN1cnJfcG9zLA0KQEAgLTQ1NCwxMyArNTY2LDEzIEBAIHN0YXRpYyBpbnQgZXh0NF9keF9y ZWFkZGlyKHN0cnVjdCBmaWxlICpmaWxwLA0KIAlpbnQJcmV0Ow0KIA0KIAlpZiAoIWluZm8pIHsN Ci0JCWluZm8gPSBleHQ0X2h0cmVlX2NyZWF0ZV9kaXJfaW5mbyhmaWxwLT5mX3Bvcyk7DQorCQlp bmZvID0gZXh0NF9odHJlZV9jcmVhdGVfZGlyX2luZm8oZmlscCwgZmlscC0+Zl9wb3MpOw0KIAkJ aWYgKCFpbmZvKQ0KIAkJCXJldHVybiAtRU5PTUVNOw0KIAkJZmlscC0+cHJpdmF0ZV9kYXRhID0g aW5mbzsNCiAJfQ0KIA0KLQlpZiAoZmlscC0+Zl9wb3MgPT0gRVhUNF9IVFJFRV9FT0YpDQorCWlm IChmaWxwLT5mX3BvcyA9PSBleHQ0X2dldF9odHJlZV9lb2YoZmlscCkpDQogCQlyZXR1cm4gMDsJ LyogRU9GICovDQogDQogCS8qIFNvbWUgb25lIGhhcyBtZXNzZWQgd2l0aCBmX3BvczsgcmVzZXQg dGhlIHdvcmxkICovDQpAQCAtNDY4LDggKzU4MCw4IEBAIHN0YXRpYyBpbnQgZXh0NF9keF9yZWFk ZGlyKHN0cnVjdCBmaWxlICpmaWxwLA0KIAkJZnJlZV9yYl90cmVlX2ZuYW1lKCZpbmZvLT5yb290 KTsNCiAJCWluZm8tPmN1cnJfbm9kZSA9IE5VTEw7DQogCQlpbmZvLT5leHRyYV9mbmFtZSA9IE5V TEw7DQotCQlpbmZvLT5jdXJyX2hhc2ggPSBwb3MybWFqX2hhc2goZmlscC0+Zl9wb3MpOw0KLQkJ aW5mby0+Y3Vycl9taW5vcl9oYXNoID0gcG9zMm1pbl9oYXNoKGZpbHAtPmZfcG9zKTsNCisJCWlu Zm8tPmN1cnJfaGFzaCA9IHBvczJtYWpfaGFzaChmaWxwLCBmaWxwLT5mX3Bvcyk7DQorCQlpbmZv LT5jdXJyX21pbm9yX2hhc2ggPSBwb3MybWluX2hhc2goZmlscCwgZmlscC0+Zl9wb3MpOw0KIAl9 DQogDQogCS8qDQpAQCAtNTAxLDcgKzYxMyw3IEBAIHN0YXRpYyBpbnQgZXh0NF9keF9yZWFkZGly KHN0cnVjdCBmaWxlICpmaWxwLA0KIAkJCWlmIChyZXQgPCAwKQ0KIAkJCQlyZXR1cm4gcmV0Ow0K IAkJCWlmIChyZXQgPT0gMCkgew0KLQkJCQlmaWxwLT5mX3BvcyA9IEVYVDRfSFRSRUVfRU9GOw0K KwkJCQlmaWxwLT5mX3BvcyA9IGV4dDRfZ2V0X2h0cmVlX2VvZihmaWxwKTsNCiAJCQkJYnJlYWs7 DQogCQkJfQ0KIAkJCWluZm8tPmN1cnJfbm9kZSA9IHJiX2ZpcnN0KCZpbmZvLT5yb290KTsNCkBA IC01MjEsNyArNjMzLDcgQEAgc3RhdGljIGludCBleHQ0X2R4X3JlYWRkaXIoc3RydWN0IGZpbGUg KmZpbHAsDQogCQkJaW5mby0+Y3Vycl9taW5vcl9oYXNoID0gZm5hbWUtPm1pbm9yX2hhc2g7DQog CQl9IGVsc2Ugew0KIAkJCWlmIChpbmZvLT5uZXh0X2hhc2ggPT0gfjApIHsNCi0JCQkJZmlscC0+ Zl9wb3MgPSBFWFQ0X0hUUkVFX0VPRjsNCisJCQkJZmlscC0+Zl9wb3MgPSBleHQ0X2dldF9odHJl ZV9lb2YoZmlscCk7DQogCQkJCWJyZWFrOw0KIAkJCX0NCiAJCQlpbmZvLT5jdXJyX2hhc2ggPSBp bmZvLT5uZXh0X2hhc2g7DQpAQCAtNTQwLDMgKzY1MiwxNSBAQCBzdGF0aWMgaW50IGV4dDRfcmVs ZWFzZV9kaXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApDQogDQogCXJl dHVybiAwOw0KIH0NCisNCitjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGV4dDRfZGlyX29w ZXJhdGlvbnMgPSB7DQorCS5sbHNlZWsJCT0gZXh0NF9kaXJfbGxzZWVrLA0KKwkucmVhZAkJPSBn ZW5lcmljX3JlYWRfZGlyLA0KKwkucmVhZGRpcgk9IGV4dDRfcmVhZGRpciwNCisJLnVubG9ja2Vk X2lvY3RsID0gZXh0NF9pb2N0bCwNCisjaWZkZWYgQ09ORklHX0NPTVBBVA0KKwkuY29tcGF0X2lv Y3RsCT0gZXh0NF9jb21wYXRfaW9jdGwsDQorI2VuZGlmDQorCS5mc3luYwkJPSBleHQ0X3N5bmNf ZmlsZSwNCisJLnJlbGVhc2UJPSBleHQ0X3JlbGVhc2VfZGlyLA0KK307DQpkaWZmIC0tZ2l0IGEv ZnMvZXh0NC9leHQ0LmggYi9mcy9leHQ0L2V4dDQuaA0KaW5kZXggNjBiNmNhNS4uMjJjNzFiOSAx MDA2NDQNCi0tLSBhL2ZzL2V4dDQvZXh0NC5oDQorKysgYi9mcy9leHQ0L2V4dDQuaA0KQEAgLTE1 OTcsNyArMTU5NywxMSBAQCBzdHJ1Y3QgZHhfaGFzaF9pbmZvDQogCXUzMgkJKnNlZWQ7DQogfTsN CiANCi0jZGVmaW5lIEVYVDRfSFRSRUVfRU9GCTB4N2ZmZmZmZmYNCisNCisvKiAzMiBhbmQgNjQg Yml0IHNpZ25lZCBFT0YgZm9yIGR4IGRpcmVjdG9yaWVzICovDQorI2RlZmluZSBFWFQ0X0hUUkVF X0VPRl8zMkJJVCAgICgoMVVMICA8PCAoMzIgLSAxKSkgLSAxKQ0KKyNkZWZpbmUgRVhUNF9IVFJF RV9FT0ZfNjRCSVQgICAoKDFVTEwgPDwgKDY0IC0gMSkpIC0gMSkNCisNCiANCiAvKg0KICAqIENv bnRyb2wgcGFyYW1ldGVycyB1c2VkIGJ5IGV4dDRfaHRyZWVfbmV4dF9ibG9jaw0KZGlmZiAtLWdp dCBhL2ZzL2V4dDQvaGFzaC5jIGIvZnMvZXh0NC9oYXNoLmMNCmluZGV4IGFjOGYxNjguLmZhOGU0 OTEgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L2hhc2guYw0KKysrIGIvZnMvZXh0NC9oYXNoLmMNCkBA IC0yMDAsOCArMjAwLDggQEAgaW50IGV4dDRmc19kaXJoYXNoKGNvbnN0IGNoYXIgKm5hbWUsIGlu dCBsZW4sIHN0cnVjdCBkeF9oYXNoX2luZm8gKmhpbmZvKQ0KIAkJcmV0dXJuIC0xOw0KIAl9DQog CWhhc2ggPSBoYXNoICYgfjE7DQotCWlmIChoYXNoID09IChFWFQ0X0hUUkVFX0VPRiA8PCAxKSkN Ci0JCWhhc2ggPSAoRVhUNF9IVFJFRV9FT0YtMSkgPDwgMTsNCisJaWYgKGhhc2ggPT0gKEVYVDRf SFRSRUVfRU9GXzMyQklUIDw8IDEpKQ0KKwkJaGFzaCA9IChFWFQ0X0hUUkVFX0VPRl8zMkJJVCAt IDEpIDw8IDE7DQogCWhpbmZvLT5oYXNoID0gaGFzaDsNCiAJaGluZm8tPm1pbm9yX2hhc2ggPSBt aW5vcl9oYXNoOw0KIAlyZXR1cm4gMDsNCmRpZmYgLS1naXQgYS9mcy9leHQ0L3hhdHRyLmMgYi9m cy9leHQ0L3hhdHRyLmMNCmluZGV4IGQ1NDk4YjIuLmI0ZTlmM2YgMTAwNjQ0DQotLS0gYS9mcy9l eHQ0L3hhdHRyLmMNCisrKyBiL2ZzL2V4dDQveGF0dHIuYw0KQEAgLTEyNjksNiArMTI2OSw4IEBA IHJldHJ5Og0KIAkJCQkgICAgc19taW5fZXh0cmFfaXNpemUpIHsNCiAJCQkJCXRyaWVkX21pbl9l eHRyYV9pc2l6ZSsrOw0KIAkJCQkJbmV3X2V4dHJhX2lzaXplID0gc19taW5fZXh0cmFfaXNpemU7 DQorCQkJCQlrZnJlZShpcyk7IGlzID0gTlVMTDsNCisJCQkJCWtmcmVlKGJzKTsgYnMgPSBOVUxM Ow0KIAkJCQkJZ290byByZXRyeTsNCiAJCQkJfQ0KIAkJCQllcnJvciA9IC0xOw0KZGlmZiAtLWdp dCBhL2ZzL2pmcy9qZnNfaW5vZGUuYyBiL2ZzL2pmcy9qZnNfaW5vZGUuYw0KaW5kZXggYzFhM2U2 MC4uN2Y0NjRjNSAxMDA2NDQNCi0tLSBhL2ZzL2pmcy9qZnNfaW5vZGUuYw0KKysrIGIvZnMvamZz L2pmc19pbm9kZS5jDQpAQCAtOTUsNyArOTUsNyBAQCBzdHJ1Y3QgaW5vZGUgKmlhbGxvYyhzdHJ1 Y3QgaW5vZGUgKnBhcmVudCwgdW1vZGVfdCBtb2RlKQ0KIA0KIAlpZiAoaW5zZXJ0X2lub2RlX2xv Y2tlZChpbm9kZSkgPCAwKSB7DQogCQlyYyA9IC1FSU5WQUw7DQotCQlnb3RvIGZhaWxfdW5sb2Nr Ow0KKwkJZ290byBmYWlsX3B1dDsNCiAJfQ0KIA0KIAlpbm9kZV9pbml0X293bmVyKGlub2RlLCBw YXJlbnQsIG1vZGUpOw0KQEAgLTE1Niw3ICsxNTYsNiBAQCBzdHJ1Y3QgaW5vZGUgKmlhbGxvYyhz dHJ1Y3QgaW5vZGUgKnBhcmVudCwgdW1vZGVfdCBtb2RlKQ0KIGZhaWxfZHJvcDoNCiAJZHF1b3Rf ZHJvcChpbm9kZSk7DQogCWlub2RlLT5pX2ZsYWdzIHw9IFNfTk9RVU9UQTsNCi1mYWlsX3VubG9j azoNCiAJY2xlYXJfbmxpbmsoaW5vZGUpOw0KIAl1bmxvY2tfbmV3X2lub2RlKGlub2RlKTsNCiBm YWlsX3B1dDoNCmRpZmYgLS1naXQgYS9mcy9uZnNkL3Zmcy5jIGIvZnMvbmZzZC92ZnMuYw0KaW5k ZXggNTYxYTNkYy4uNjFiNjk3ZSAxMDA2NDQNCi0tLSBhL2ZzL25mc2QvdmZzLmMNCisrKyBiL2Zz L25mc2QvdmZzLmMNCkBAIC03MjYsMTIgKzcyNiwxMyBAQCBzdGF0aWMgaW50IG5mc2Rfb3Blbl9i cmVha19sZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYWNjZXNzKQ0KIA0KIC8qDQogICog T3BlbiBhbiBleGlzdGluZyBmaWxlIG9yIGRpcmVjdG9yeS4NCi0gKiBUaGUgYWNjZXNzIGFyZ3Vt ZW50IGluZGljYXRlcyB0aGUgdHlwZSBvZiBvcGVuIChyZWFkL3dyaXRlL2xvY2spDQorICogVGhl IG1heV9mbGFncyBhcmd1bWVudCBpbmRpY2F0ZXMgdGhlIHR5cGUgb2Ygb3BlbiAocmVhZC93cml0 ZS9sb2NrKQ0KKyAqIGFuZCBhZGRpdGlvbmFsIGZsYWdzLg0KICAqIE4uQi4gQWZ0ZXIgdGhpcyBj YWxsIGZocCBuZWVkcyBhbiBmaF9wdXQNCiAgKi8NCiBfX2JlMzINCiBuZnNkX29wZW4oc3RydWN0 IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmhwLCBpbnQgdHlwZSwNCi0JCQlpbnQg YWNjZXNzLCBzdHJ1Y3QgZmlsZSAqKmZpbHApDQorCQkJaW50IG1heV9mbGFncywgc3RydWN0IGZp bGUgKipmaWxwKQ0KIHsNCiAJc3RydWN0IGRlbnRyeQkqZGVudHJ5Ow0KIAlzdHJ1Y3QgaW5vZGUJ Kmlub2RlOw0KQEAgLTc0Niw3ICs3NDcsNyBAQCBuZnNkX29wZW4oc3RydWN0IHN2Y19ycXN0ICpy cXN0cCwgc3RydWN0IHN2Y19maCAqZmhwLCBpbnQgdHlwZSwNCiAJICogYW5kIChob3BlZnVsbHkp IGNoZWNrZWQgcGVybWlzc2lvbiAtIHNvIGFsbG93IE9XTkVSX09WRVJSSURFDQogCSAqIGluIGNh c2UgYSBjaG1vZCBoYXMgbm93IHJldm9rZWQgcGVybWlzc2lvbi4NCiAJICovDQotCWVyciA9IGZo X3ZlcmlmeShycXN0cCwgZmhwLCB0eXBlLCBhY2Nlc3MgfCBORlNEX01BWV9PV05FUl9PVkVSUklE RSk7DQorCWVyciA9IGZoX3ZlcmlmeShycXN0cCwgZmhwLCB0eXBlLCBtYXlfZmxhZ3MgfCBORlNE X01BWV9PV05FUl9PVkVSUklERSk7DQogCWlmIChlcnIpDQogCQlnb3RvIG91dDsNCiANCkBAIC03 NTcsNyArNzU4LDcgQEAgbmZzZF9vcGVuKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBz dmNfZmggKmZocCwgaW50IHR5cGUsDQogCSAqIG9yIGFueSBhY2Nlc3Mgd2hlbiBtYW5kYXRvcnkg bG9ja2luZyBlbmFibGVkDQogCSAqLw0KIAllcnIgPSBuZnNlcnJfcGVybTsNCi0JaWYgKElTX0FQ UEVORChpbm9kZSkgJiYgKGFjY2VzcyAmIE5GU0RfTUFZX1dSSVRFKSkNCisJaWYgKElTX0FQUEVO RChpbm9kZSkgJiYgKG1heV9mbGFncyAmIE5GU0RfTUFZX1dSSVRFKSkNCiAJCWdvdG8gb3V0Ow0K IAkvKg0KIAkgKiBXZSBtdXN0IGlnbm9yZSBmaWxlcyAoYnV0IG9ubHkgZmlsZXMpIHdoaWNoIG1p Z2h0IGhhdmUgbWFuZGF0b3J5DQpAQCAtNzcwLDEyICs3NzEsMTIgQEAgbmZzZF9vcGVuKHN0cnVj dCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgaW50IHR5cGUsDQogCWlmICgh aW5vZGUtPmlfZm9wKQ0KIAkJZ290byBvdXQ7DQogDQotCWhvc3RfZXJyID0gbmZzZF9vcGVuX2Jy ZWFrX2xlYXNlKGlub2RlLCBhY2Nlc3MpOw0KKwlob3N0X2VyciA9IG5mc2Rfb3Blbl9icmVha19s ZWFzZShpbm9kZSwgbWF5X2ZsYWdzKTsNCiAJaWYgKGhvc3RfZXJyKSAvKiBOT01FTSBvciBXT1VM REJMT0NLICovDQogCQlnb3RvIG91dF9uZnNlcnI7DQogDQotCWlmIChhY2Nlc3MgJiBORlNEX01B WV9XUklURSkgew0KLQkJaWYgKGFjY2VzcyAmIE5GU0RfTUFZX1JFQUQpDQorCWlmIChtYXlfZmxh Z3MgJiBORlNEX01BWV9XUklURSkgew0KKwkJaWYgKG1heV9mbGFncyAmIE5GU0RfTUFZX1JFQUQp DQogCQkJZmxhZ3MgPSBPX1JEV1J8T19MQVJHRUZJTEU7DQogCQllbHNlDQogCQkJZmxhZ3MgPSBP X1dST05MWXxPX0xBUkdFRklMRTsNCkBAIC03ODUsOCArNzg2LDE1IEBAIG5mc2Rfb3BlbihzdHJ1 Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsIGludCB0eXBlLA0KIAlpZiAo SVNfRVJSKCpmaWxwKSkgew0KIAkJaG9zdF9lcnIgPSBQVFJfRVJSKCpmaWxwKTsNCiAJCSpmaWxw ID0gTlVMTDsNCi0JfSBlbHNlDQotCQlob3N0X2VyciA9IGltYV9maWxlX2NoZWNrKCpmaWxwLCBh Y2Nlc3MpOw0KKwl9IGVsc2Ugew0KKwkJaG9zdF9lcnIgPSBpbWFfZmlsZV9jaGVjaygqZmlscCwg bWF5X2ZsYWdzKTsNCisNCisJCWlmIChtYXlfZmxhZ3MgJiBORlNEX01BWV82NEJJVF9DT09LSUUp DQorCQkJKCpmaWxwKS0+Zl9tb2RlIHw9IEZNT0RFXzY0QklUSEFTSDsNCisJCWVsc2UNCisJCQko KmZpbHApLT5mX21vZGUgfD0gRk1PREVfMzJCSVRIQVNIOw0KKwl9DQorDQogb3V0X25mc2VycjoN CiAJZXJyID0gbmZzZXJybm8oaG9zdF9lcnIpOw0KIG91dDoNCkBAIC0yMDE2LDggKzIwMjQsMTMg QEAgbmZzZF9yZWFkZGlyKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZo cCwgbG9mZl90ICpvZmZzZXRwLA0KIAlfX2JlMzIJCWVycjsNCiAJc3RydWN0IGZpbGUJKmZpbGU7 DQogCWxvZmZfdAkJb2Zmc2V0ID0gKm9mZnNldHA7DQorCWludCAgICAgICAgICAgICBtYXlfZmxh Z3MgPSBORlNEX01BWV9SRUFEOw0KKw0KKwkvKiBORlN2MiBvbmx5IHN1cHBvcnRzIDMyIGJpdCBj b29raWVzICovDQorCWlmIChycXN0cC0+cnFfdmVycyA+IDIpDQorCQltYXlfZmxhZ3MgfD0gTkZT RF9NQVlfNjRCSVRfQ09PS0lFOw0KIA0KLQllcnIgPSBuZnNkX29wZW4ocnFzdHAsIGZocCwgU19J RkRJUiwgTkZTRF9NQVlfUkVBRCwgJmZpbGUpOw0KKwllcnIgPSBuZnNkX29wZW4ocnFzdHAsIGZo cCwgU19JRkRJUiwgbWF5X2ZsYWdzLCAmZmlsZSk7DQogCWlmIChlcnIpDQogCQlnb3RvIG91dDsN CiANCmRpZmYgLS1naXQgYS9mcy9uZnNkL3Zmcy5oIGIvZnMvbmZzZC92ZnMuaA0KaW5kZXggM2Y1 NGFkMC4uODVkNGQ0MiAxMDA2NDQNCi0tLSBhL2ZzL25mc2QvdmZzLmgNCisrKyBiL2ZzL25mc2Qv dmZzLmgNCkBAIC0yNyw2ICsyNyw4IEBADQogI2RlZmluZSBORlNEX01BWV9CWVBBU1NfR1NTCQkw eDQwMA0KICNkZWZpbmUgTkZTRF9NQVlfUkVBRF9JRl9FWEVDCQkweDgwMA0KIA0KKyNkZWZpbmUg TkZTRF9NQVlfNjRCSVRfQ09PS0lFCQkweDEwMDAgLyogNjQgYml0IHJlYWRkaXIgY29va2llcyBm b3IgPj0gTkZTdjMgKi8NCisNCiAjZGVmaW5lIE5GU0RfTUFZX0NSRUFURQkJKE5GU0RfTUFZX0VY RUN8TkZTRF9NQVlfV1JJVEUpDQogI2RlZmluZSBORlNEX01BWV9SRU1PVkUJCShORlNEX01BWV9F WEVDfE5GU0RfTUFZX1dSSVRFfE5GU0RfTUFZX1RSVU5DKQ0KIA0KZGlmZiAtLWdpdCBhL2ZzL3N0 YXRmcy5jIGIvZnMvc3RhdGZzLmMNCmluZGV4IDljZjA0YTEuLmExMzNjM2UgMTAwNjQ0DQotLS0g YS9mcy9zdGF0ZnMuYw0KKysrIGIvZnMvc3RhdGZzLmMNCkBAIC04Niw3ICs4Niw3IEBAIGludCB1 c2VyX3N0YXRmcyhjb25zdCBjaGFyIF9fdXNlciAqcGF0aG5hbWUsIHN0cnVjdCBrc3RhdGZzICpz dCkNCiANCiBpbnQgZmRfc3RhdGZzKGludCBmZCwgc3RydWN0IGtzdGF0ZnMgKnN0KQ0KIHsNCi0J c3RydWN0IGZpbGUgKmZpbGUgPSBmZ2V0KGZkKTsNCisJc3RydWN0IGZpbGUgKmZpbGUgPSBmZ2V0 X3JhdyhmZCk7DQogCWludCBlcnJvciA9IC1FQkFERjsNCiAJaWYgKGZpbGUpIHsNCiAJCWVycm9y ID0gdmZzX3N0YXRmcygmZmlsZS0+Zl9wYXRoLCBzdCk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9jb21waWxlci1nY2MuaCBiL2luY2x1ZGUvbGludXgvY29tcGlsZXItZ2NjLmgNCmluZGV4 IDNmZDE3YzIuLjU2MzMwNTMgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdj Yy5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYy5oDQpAQCAtNSw2ICs1LDkgQEAN CiAvKg0KICAqIENvbW1vbiBkZWZpbml0aW9ucyBmb3IgYWxsIGdjYyB2ZXJzaW9ucyBnbyBoZXJl Lg0KICAqLw0KKyNkZWZpbmUgR0NDX1ZFUlNJT04gKF9fR05VQ19fICogMTAwMDAgXA0KKwkJICAg KyBfX0dOVUNfTUlOT1JfXyAqIDEwMCBcDQorCQkgICArIF9fR05VQ19QQVRDSExFVkVMX18pDQog DQogDQogLyogT3B0aW1pemF0aW9uIGJhcnJpZXIgKi8NCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2NvbXBpbGVyLWdjYzQuaCBiL2luY2x1ZGUvbGludXgvY29tcGlsZXItZ2NjNC5oDQppbmRl eCBkZmFkYzk2Li42NDNkNmM0IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9jb21waWxlci1n Y2M0LmgNCisrKyBiL2luY2x1ZGUvbGludXgvY29tcGlsZXItZ2NjNC5oDQpAQCAtMjksNiArMjks MjEgQEANCiAgICB0aGUga2VybmVsIGNvbnRleHQgKi8NCiAjZGVmaW5lIF9fY29sZAkJCV9fYXR0 cmlidXRlX18oKF9fY29sZF9fKSkNCiANCisvKg0KKyAqIEdDQyAnYXNtIGdvdG8nIG1pc2NvbXBp bGVzIGNlcnRhaW4gY29kZSBzZXF1ZW5jZXM6DQorICoNCisgKiAgIGh0dHA6Ly9nY2MuZ251Lm9y Zy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTg2NzANCisgKg0KKyAqIFdvcmsgaXQgYXJvdW5k IHZpYSBhIGNvbXBpbGVyIGJhcnJpZXIgcXVpcmsgc3VnZ2VzdGVkIGJ5IEpha3ViIEplbGluZWsu DQorICogRml4ZWQgaW4gR0NDIDQuOC4yIGFuZCBsYXRlciB2ZXJzaW9ucy4NCisgKg0KKyAqIChh c20gZ290byBpcyBhdXRvbWF0aWNhbGx5IHZvbGF0aWxlIC0gdGhlIG5hbWluZyByZWZsZWN0cyB0 aGlzLikNCisgKi8NCisjaWYgR0NDX1ZFUlNJT04gPD0gNDA4MDENCisjIGRlZmluZSBhc21fdm9s YXRpbGVfZ290byh4Li4uKQlkbyB7IGFzbSBnb3RvKHgpOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkN CisjZWxzZQ0KKyMgZGVmaW5lIGFzbV92b2xhdGlsZV9nb3RvKHguLi4pCWRvIHsgYXNtIGdvdG8o eCk7IH0gd2hpbGUgKDApDQorI2VuZGlmDQogDQogI2lmIF9fR05VQ19NSU5PUl9fID49IDUNCiAv Kg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZXh0M19mcy5oIGIvaW5jbHVkZS9saW51eC9l eHQzX2ZzLmgNCmluZGV4IGRlYzk5MTEuLmQ1OWFiMTIgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xp bnV4L2V4dDNfZnMuaA0KKysrIGIvaW5jbHVkZS9saW51eC9leHQzX2ZzLmgNCkBAIC03ODEsNyAr NzgxLDExIEBAIHN0cnVjdCBkeF9oYXNoX2luZm8NCiAJdTMyCQkqc2VlZDsNCiB9Ow0KIA0KLSNk ZWZpbmUgRVhUM19IVFJFRV9FT0YJMHg3ZmZmZmZmZg0KKw0KKy8qIDMyIGFuZCA2NCBiaXQgc2ln bmVkIEVPRiBmb3IgZHggZGlyZWN0b3JpZXMgKi8NCisjZGVmaW5lIEVYVDNfSFRSRUVfRU9GXzMy QklUICAgKCgxVUwgIDw8ICgzMiAtIDEpKSAtIDEpDQorI2RlZmluZSBFWFQzX0hUUkVFX0VPRl82 NEJJVCAgICgoMVVMTCA8PCAoNjQgLSAxKSkgLSAxKQ0KKw0KIA0KIC8qDQogICogQ29udHJvbCBw YXJhbWV0ZXJzIHVzZWQgYnkgZXh0M19odHJlZV9uZXh0X2Jsb2NrDQpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9mcy5oIGIvaW5jbHVkZS9saW51eC9mcy5oDQppbmRleCBhMjc2ODE3Li5kZDc0 Mzg1IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9mcy5oDQorKysgYi9pbmNsdWRlL2xpbnV4 L2ZzLmgNCkBAIC05Miw2ICs5MiwxMCBAQCBzdHJ1Y3QgaW5vZGVzX3N0YXRfdCB7DQogLyogRmls ZSBpcyBvcGVuZWQgdXNpbmcgb3BlbiguLiwgMywgLi4pIGFuZCBpcyB3cml0ZWFibGUgb25seSBm b3IgaW9jdGxzDQogICAgKHNwZWNpYWx5IGhhY2sgZm9yIGZsb3BweS5jKSAqLw0KICNkZWZpbmUg Rk1PREVfV1JJVEVfSU9DVEwJKChfX2ZvcmNlIGZtb2RlX3QpMHgxMDApDQorLyogMzJiaXQgaGFz aGVzIGFzIGxsc2VlaygpIG9mZnNldCAoZm9yIGRpcmVjdG9yaWVzKSAqLw0KKyNkZWZpbmUgRk1P REVfMzJCSVRIQVNIICAgICAgICAgKChfX2ZvcmNlIGZtb2RlX3QpMHgyMDApDQorLyogNjRiaXQg aGFzaGVzIGFzIGxsc2VlaygpIG9mZnNldCAoZm9yIGRpcmVjdG9yaWVzKSAqLw0KKyNkZWZpbmUg Rk1PREVfNjRCSVRIQVNIICAgICAgICAgKChfX2ZvcmNlIGZtb2RlX3QpMHg0MDApDQogDQogLyoN CiAgKiBEb24ndCB1cGRhdGUgY3RpbWUgYW5kIG10aW1lLg0KQEAgLTkwNyw5ICs5MTEsMTEgQEAg c3RhdGljIGlubGluZSBsb2ZmX3QgaV9zaXplX3JlYWQoY29uc3Qgc3RydWN0IGlub2RlICppbm9k ZSkNCiBzdGF0aWMgaW5saW5lIHZvaWQgaV9zaXplX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUs IGxvZmZfdCBpX3NpemUpDQogew0KICNpZiBCSVRTX1BFUl9MT05HPT0zMiAmJiBkZWZpbmVkKENP TkZJR19TTVApDQorCXByZWVtcHRfZGlzYWJsZSgpOw0KIAl3cml0ZV9zZXFjb3VudF9iZWdpbigm aW5vZGUtPmlfc2l6ZV9zZXFjb3VudCk7DQogCWlub2RlLT5pX3NpemUgPSBpX3NpemU7DQogCXdy aXRlX3NlcWNvdW50X2VuZCgmaW5vZGUtPmlfc2l6ZV9zZXFjb3VudCk7DQorCXByZWVtcHRfZW5h YmxlKCk7DQogI2VsaWYgQklUU19QRVJfTE9ORz09MzIgJiYgZGVmaW5lZChDT05GSUdfUFJFRU1Q VCkNCiAJcHJlZW1wdF9kaXNhYmxlKCk7DQogCWlub2RlLT5pX3NpemUgPSBpX3NpemU7DQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wZXJmX2V2ZW50LmggYi9pbmNsdWRlL2xpbnV4L3BlcmZf ZXZlbnQuaA0KaW5kZXggZWViNmEyOS4uOGQ1YjkxZSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGlu dXgvcGVyZl9ldmVudC5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQuaA0KQEAgLTMw MCwxMyArMzAwLDE1IEBAIHN0cnVjdCBwZXJmX2V2ZW50X21tYXBfcGFnZSB7DQogCS8qDQogCSAq IENvbnRyb2wgZGF0YSBmb3IgdGhlIG1tYXAoKSBkYXRhIGJ1ZmZlci4NCiAJICoNCi0JICogVXNl ci1zcGFjZSByZWFkaW5nIHRoZSBAZGF0YV9oZWFkIHZhbHVlIHNob3VsZCBpc3N1ZSBhbiBybWIo KSwgb24NCi0JICogU01QIGNhcGFibGUgcGxhdGZvcm1zLCBhZnRlciByZWFkaW5nIHRoaXMgdmFs dWUgLS0gc2VlDQotCSAqIHBlcmZfZXZlbnRfd2FrZXVwKCkuDQorCSAqIFVzZXItc3BhY2UgcmVh ZGluZyB0aGUgQGRhdGFfaGVhZCB2YWx1ZSBzaG91bGQgaXNzdWUgYW4gc21wX3JtYigpLA0KKwkg KiBhZnRlciByZWFkaW5nIHRoaXMgdmFsdWUuDQogCSAqDQogCSAqIFdoZW4gdGhlIG1hcHBpbmcg aXMgUFJPVF9XUklURSB0aGUgQGRhdGFfdGFpbCB2YWx1ZSBzaG91bGQgYmUNCi0JICogd3JpdHRl biBieSB1c2Vyc3BhY2UgdG8gcmVmbGVjdCB0aGUgbGFzdCByZWFkIGRhdGEuIEluIHRoaXMgY2Fz ZQ0KLQkgKiB0aGUga2VybmVsIHdpbGwgbm90IG92ZXItd3JpdGUgdW5yZWFkIGRhdGEuDQorCSAq IHdyaXR0ZW4gYnkgdXNlcnNwYWNlIHRvIHJlZmxlY3QgdGhlIGxhc3QgcmVhZCBkYXRhLCBhZnRl ciBpc3N1ZWluZw0KKwkgKiBhbiBzbXBfbWIoKSB0byBzZXBhcmF0ZSB0aGUgZGF0YSByZWFkIGZy b20gdGhlIC0+ZGF0YV90YWlsIHN0b3JlLg0KKwkgKiBJbiB0aGlzIGNhc2UgdGhlIGtlcm5lbCB3 aWxsIG5vdCBvdmVyLXdyaXRlIHVucmVhZCBkYXRhLg0KKwkgKg0KKwkgKiBTZWUgcGVyZl9vdXRw dXRfcHV0X2hhbmRsZSgpIGZvciB0aGUgZGF0YSBvcmRlcmluZy4NCiAJICovDQogCV9fdTY0ICAg ZGF0YV9oZWFkOwkJLyogaGVhZCBpbiB0aGUgZGF0YSBzZWN0aW9uICovDQogCV9fdTY0CWRhdGFf dGFpbDsJCS8qIHVzZXItc3BhY2Ugd3JpdHRlbiB0YWlsICovDQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9yYW5kb20uaCBiL2luY2x1ZGUvbGludXgvcmFuZG9tLmgNCmluZGV4IDI5ZTIxN2Eu LjdlNzdjZWUgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L3JhbmRvbS5oDQorKysgYi9pbmNs dWRlL2xpbnV4L3JhbmRvbS5oDQpAQCAtNTgsNiArNTgsNyBAQCBleHRlcm4gdm9pZCBhZGRfaW50 ZXJydXB0X3JhbmRvbW5lc3MoaW50IGlycSwgaW50IGlycV9mbGFncyk7DQogZXh0ZXJuIHZvaWQg Z2V0X3JhbmRvbV9ieXRlcyh2b2lkICpidWYsIGludCBuYnl0ZXMpOw0KIGV4dGVybiB2b2lkIGdl dF9yYW5kb21fYnl0ZXNfYXJjaCh2b2lkICpidWYsIGludCBuYnl0ZXMpOw0KIHZvaWQgZ2VuZXJh dGVfcmFuZG9tX3V1aWQodW5zaWduZWQgY2hhciB1dWlkX291dFsxNl0pOw0KK2V4dGVybiBpbnQg cmFuZG9tX2ludF9zZWNyZXRfaW5pdCh2b2lkKTsNCiANCiAjaWZuZGVmIE1PRFVMRQ0KIGV4dGVy biBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJhbmRvbV9mb3BzLCB1cmFuZG9tX2ZvcHM7 DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaCBiL2luY2x1ZGUvbGludXgvc2ti dWZmLmgNCmluZGV4IGVmZTUwYWYuLjg1MTgwYmYgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4 L3NrYnVmZi5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oDQpAQCAtNzM3LDYgKzczNywx NiBAQCBzdGF0aWMgaW5saW5lIGludCBza2JfY2xvbmVkKGNvbnN0IHN0cnVjdCBza19idWZmICpz a2IpDQogCSAgICAgICAoYXRvbWljX3JlYWQoJnNrYl9zaGluZm8oc2tiKS0+ZGF0YXJlZikgJiBT S0JfREFUQVJFRl9NQVNLKSAhPSAxOw0KIH0NCiANCitzdGF0aWMgaW5saW5lIGludCBza2JfdW5j bG9uZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBnZnBfdCBwcmkpDQorew0KKwltaWdodF9zbGVlcF9p ZihwcmkgJiBfX0dGUF9XQUlUKTsNCisNCisJaWYgKHNrYl9jbG9uZWQoc2tiKSkNCisJCXJldHVy biBwc2tiX2V4cGFuZF9oZWFkKHNrYiwgMCwgMCwgcHJpKTsNCisNCisJcmV0dXJuIDA7DQorfQ0K Kw0KIC8qKg0KICAqCXNrYl9oZWFkZXJfY2xvbmVkIC0gaXMgdGhlIGhlYWRlciBhIGNsb25lDQog ICoJQHNrYjogYnVmZmVyIHRvIGNoZWNrDQpAQCAtMTE1Nyw2ICsxMTY3LDExIEBAIHN0YXRpYyBp bmxpbmUgaW50IHNrYl9wYWdlbGVuKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpDQogCXJldHVy biBsZW4gKyBza2JfaGVhZGxlbihza2IpOw0KIH0NCiANCitzdGF0aWMgaW5saW5lIGJvb2wgc2ti X2hhc19mcmFncyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KK3sNCisJcmV0dXJuIHNrYl9z aGluZm8oc2tiKS0+bnJfZnJhZ3M7DQorfQ0KKw0KIC8qKg0KICAqIF9fc2tiX2ZpbGxfcGFnZV9k ZXNjIC0gaW5pdGlhbGlzZSBhIHBhZ2VkIGZyYWdtZW50IGluIGFuIHNrYg0KICAqIEBza2I6IGJ1 ZmZlciBjb250YWluaW5nIGZyYWdtZW50IHRvIGJlIGluaXRpYWxpc2VkDQpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC90aW1leC5oIGIvaW5jbHVkZS9saW51eC90aW1leC5oDQppbmRleCAwOGU5 MGZiLi41ZmVlNTc1IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC90aW1leC5oDQorKysgYi9p bmNsdWRlL2xpbnV4L3RpbWV4LmgNCkBAIC0xNzMsNiArMTczLDIwIEBAIHN0cnVjdCB0aW1leCB7 DQogDQogI2luY2x1ZGUgPGFzbS90aW1leC5oPg0KIA0KKyNpZm5kZWYgcmFuZG9tX2dldF9lbnRy b3B5DQorLyoNCisgKiBUaGUgcmFuZG9tX2dldF9lbnRyb3B5KCkgZnVuY3Rpb24gaXMgdXNlZCBi eSB0aGUgL2Rldi9yYW5kb20gZHJpdmVyDQorICogaW4gb3JkZXIgdG8gZXh0cmFjdCBlbnRyb3B5 IHZpYSB0aGUgcmVsYXRpdmUgdW5wcmVkaWN0YWJpbGl0eSBvZg0KKyAqIHdoZW4gYW4gaW50ZXJy dXB0IHRha2VzIHBsYWNlcyB2ZXJzdXMgYSBoaWdoIHNwZWVkLCBmaW5lLWdyYWluZWQNCisgKiB0 aW1pbmcgc291cmNlIG9yIGN5Y2xlIGNvdW50ZXIuICBTaW5jZSBpdCB3aWxsIGJlIG9jY3VycmVk IG9uIGV2ZXJ5DQorICogc2luZ2xlIGludGVycnVwdCwgaXQgbXVzdCBoYXZlIGEgdmVyeSBsb3cg Y29zdC9vdmVyaGVhZC4NCisgKg0KKyAqIEJ5IGRlZmF1bHQgd2UgdXNlIGdldF9jeWNsZXMoKSBm b3IgdGhpcyBwdXJwb3NlLCBidXQgaW5kaXZpZHVhbA0KKyAqIGFyY2hpdGVjdHVyZXMgbWF5IG92 ZXJyaWRlIHRoaXMgaW4gdGhlaXIgYXNtL3RpbWV4LmggaGVhZGVyIGZpbGUuDQorICovDQorI2Rl ZmluZSByYW5kb21fZ2V0X2VudHJvcHkoKQlnZXRfY3ljbGVzKCkNCisjZW5kaWYNCisNCiAvKg0K ICAqIFNISUZUX1BMTCBpcyB1c2VkIGFzIGEgZGFtcGVuaW5nIGZhY3RvciB0byBkZWZpbmUgaG93 IG11Y2ggd2UNCiAgKiBhZGp1c3QgdGhlIGZyZXF1ZW5jeSBjb3JyZWN0aW9uIGZvciBhIGdpdmVu IG9mZnNldCBpbiBQTEwgbW9kZS4NCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9jaXBzb19pcHY0 LmggYi9pbmNsdWRlL25ldC9jaXBzb19pcHY0LmgNCmluZGV4IGE3YTY4M2UuLmE4YzJlZjYgMTAw NjQ0DQotLS0gYS9pbmNsdWRlL25ldC9jaXBzb19pcHY0LmgNCisrKyBiL2luY2x1ZGUvbmV0L2Np cHNvX2lwdjQuaA0KQEAgLTI5MCw2ICsyOTAsNyBAQCBzdGF0aWMgaW5saW5lIGludCBjaXBzb192 NF92YWxpZGF0ZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KIAl1bnNpZ25lZCBjaGFyIGVy cl9vZmZzZXQgPSAwOw0KIAl1OCBvcHRfbGVuID0gb3B0WzFdOw0KIAl1OCBvcHRfaXRlcjsNCisJ dTggdGFnX2xlbjsNCiANCiAJaWYgKG9wdF9sZW4gPCA4KSB7DQogCQllcnJfb2Zmc2V0ID0gMTsN CkBAIC0zMDIsMTEgKzMwMywxMiBAQCBzdGF0aWMgaW5saW5lIGludCBjaXBzb192NF92YWxpZGF0 ZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KIAl9DQogDQogCWZvciAob3B0X2l0ZXIgPSA2 OyBvcHRfaXRlciA8IG9wdF9sZW47KSB7DQotCQlpZiAob3B0W29wdF9pdGVyICsgMV0gPiAob3B0 X2xlbiAtIG9wdF9pdGVyKSkgew0KKwkJdGFnX2xlbiA9IG9wdFtvcHRfaXRlciArIDFdOw0KKwkJ aWYgKCh0YWdfbGVuID09IDApIHx8IChvcHRbb3B0X2l0ZXIgKyAxXSA+IChvcHRfbGVuIC0gb3B0 X2l0ZXIpKSkgew0KIAkJCWVycl9vZmZzZXQgPSBvcHRfaXRlciArIDE7DQogCQkJZ290byBvdXQ7 DQogCQl9DQotCQlvcHRfaXRlciArPSBvcHRbb3B0X2l0ZXIgKyAxXTsNCisJCW9wdF9pdGVyICs9 IHRhZ19sZW47DQogCX0NCiANCiBvdXQ6DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvZHN0Lmgg Yi9pbmNsdWRlL25ldC9kc3QuaA0KaW5kZXggMTYwMTBkMS4uODZlZjc4ZCAxMDA2NDQNCi0tLSBh L2luY2x1ZGUvbmV0L2RzdC5oDQorKysgYi9pbmNsdWRlL25ldC9kc3QuaA0KQEAgLTQ1OSwxMCAr NDU5LDIyIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRzdF9lbnRyeSAqeGZybV9sb29rdXAoc3Ry dWN0IG5ldCAqbmV0LA0KIHsNCiAJcmV0dXJuIGRzdF9vcmlnOw0KIH0gDQorDQorc3RhdGljIGlu bGluZSBzdHJ1Y3QgeGZybV9zdGF0ZSAqZHN0X3hmcm0oY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAq ZHN0KQ0KK3sNCisJcmV0dXJuIE5VTEw7DQorfQ0KKw0KICNlbHNlDQogZXh0ZXJuIHN0cnVjdCBk c3RfZW50cnkgKnhmcm1fbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGRzdF9lbnRyeSAq ZHN0X29yaWcsDQogCQkJCSAgICAgY29uc3Qgc3RydWN0IGZsb3dpICpmbCwgc3RydWN0IHNvY2sg KnNrLA0KIAkJCQkgICAgIGludCBmbGFncyk7DQorDQorLyogc2tiIGF0dGFjaGVkIHdpdGggdGhp cyBkc3QgbmVlZHMgdHJhbnNmb3JtYXRpb24gaWYgZHN0LT54ZnJtIGlzIHZhbGlkICovDQorc3Rh dGljIGlubGluZSBzdHJ1Y3QgeGZybV9zdGF0ZSAqZHN0X3hmcm0oY29uc3Qgc3RydWN0IGRzdF9l bnRyeSAqZHN0KQ0KK3sNCisJcmV0dXJuIGRzdC0+eGZybTsNCit9DQogI2VuZGlmDQogDQogI2Vu ZGlmIC8qIF9ORVRfRFNUX0ggKi8NCmRpZmYgLS1naXQgYS9pbml0L21haW4uYyBiL2luaXQvbWFp bi5jDQppbmRleCA1ZDBlYjFkLi43NDc0NDUwIDEwMDY0NA0KLS0tIGEvaW5pdC9tYWluLmMNCisr KyBiL2luaXQvbWFpbi5jDQpAQCAtNjgsNiArNjgsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9zaG1l bV9mcy5oPg0KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BlcmZf ZXZlbnQuaD4NCisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+DQogDQogI2luY2x1ZGUgPGFzbS9p by5oPg0KICNpbmNsdWRlIDxhc20vYnVncy5oPg0KQEAgLTczMiw2ICs3MzMsNyBAQCBzdGF0aWMg dm9pZCBfX2luaXQgZG9fYmFzaWNfc2V0dXAodm9pZCkNCiAJZG9fY3RvcnMoKTsNCiAJdXNlcm1v ZGVoZWxwZXJfZW5hYmxlKCk7DQogCWRvX2luaXRjYWxscygpOw0KKwlyYW5kb21faW50X3NlY3Jl dF9pbml0KCk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIF9faW5pdCBkb19wcmVfc21wX2luaXRjYWxs cyh2b2lkKQ0KZGlmZiAtLWdpdCBhL2tlcm5lbC9ldmVudHMvcmluZ19idWZmZXIuYyBiL2tlcm5l bC9ldmVudHMvcmluZ19idWZmZXIuYw0KaW5kZXggN2YzMDExYy4uNThjM2I1MSAxMDA2NDQNCi0t LSBhL2tlcm5lbC9ldmVudHMvcmluZ19idWZmZXIuYw0KKysrIGIva2VybmVsL2V2ZW50cy9yaW5n X2J1ZmZlci5jDQpAQCAtNzUsMTAgKzc1LDMxIEBAIGFnYWluOg0KIAkJZ290byBvdXQ7DQogDQog CS8qDQotCSAqIFB1Ymxpc2ggdGhlIGtub3duIGdvb2QgaGVhZC4gUmVseSBvbiB0aGUgZnVsbCBi YXJyaWVyIGltcGxpZWQNCi0JICogYnkgYXRvbWljX2RlY19hbmRfdGVzdCgpIG9yZGVyIHRoZSBy Yi0+aGVhZCByZWFkIGFuZCB0aGlzDQotCSAqIHdyaXRlLg0KKwkgKiBTaW5jZSB0aGUgbW1hcCgp IGNvbnN1bWVyICh1c2Vyc3BhY2UpIGNhbiBydW4gb24gYSBkaWZmZXJlbnQgQ1BVOg0KKwkgKg0K KwkgKiAgIGtlcm5lbAkJCQl1c2VyDQorCSAqDQorCSAqICAgUkVBRCAtPmRhdGFfdGFpbAkJCVJF QUQgLT5kYXRhX2hlYWQNCisJICogICBzbXBfbWIoKQkoQSkJCQlzbXBfcm1iKCkJKEMpDQorCSAq ICAgV1JJVEUgJGRhdGEJCQlSRUFEICRkYXRhDQorCSAqICAgc21wX3dtYigpCShCKQkJCXNtcF9t YigpCShEKQ0KKwkgKiAgIFNUT1JFIC0+ZGF0YV9oZWFkCQkJV1JJVEUgLT5kYXRhX3RhaWwNCisJ ICoNCisJICogV2hlcmUgQSBwYWlycyB3aXRoIEQsIGFuZCBCIHBhaXJzIHdpdGggQy4NCisJICoN CisJICogSSBkb24ndCB0aGluayBBIG5lZWRzIHRvIGJlIGEgZnVsbCBiYXJyaWVyIGJlY2F1c2Ug d2Ugd29uJ3QgaW4gZmFjdA0KKwkgKiB3cml0ZSBkYXRhIHVudGlsIHdlIHNlZSB0aGUgc3RvcmUg ZnJvbSB1c2Vyc3BhY2UuIFNvIHdlIHNpbXBseSBkb24ndA0KKwkgKiBpc3N1ZSB0aGUgZGF0YSBX UklURSB1bnRpbCB3ZSBvYnNlcnZlIGl0LiBCZSBjb25zZXJ2YXRpdmUgZm9yIG5vdy4NCisJICoN CisJICogT1RPSCwgRCBuZWVkcyB0byBiZSBhIGZ1bGwgYmFycmllciBzaW5jZSBpdCBzZXBhcmF0 ZXMgdGhlIGRhdGEgUkVBRA0KKwkgKiBmcm9tIHRoZSB0YWlsIFdSSVRFLg0KKwkgKg0KKwkgKiBG b3IgQiBhIFdNQiBpcyBzdWZmaWNpZW50IHNpbmNlIGl0IHNlcGFyYXRlcyB0d28gV1JJVEVzLCBh bmQgZm9yIEMNCisJICogYW4gUk1CIGlzIHN1ZmZpY2llbnQgc2luY2UgaXQgc2VwYXJhdGVzIHR3 byBSRUFEcy4NCisJICoNCisJICogU2VlIHBlcmZfb3V0cHV0X2JlZ2luKCkuDQogCSAqLw0KKwlz bXBfd21iKCk7DQogCXJiLT51c2VyX3BhZ2UtPmRhdGFfaGVhZCA9IGhlYWQ7DQogDQogCS8qDQpA QCAtMTQyLDkgKzE2MywxMSBAQCBpbnQgcGVyZl9vdXRwdXRfYmVnaW4oc3RydWN0IHBlcmZfb3V0 cHV0X2hhbmRsZSAqaGFuZGxlLA0KIAkJICogVXNlcnNwYWNlIGNvdWxkIGNob29zZSB0byBpc3N1 ZSBhIG1iKCkgYmVmb3JlIHVwZGF0aW5nIHRoZQ0KIAkJICogdGFpbCBwb2ludGVyLiBTbyB0aGF0 IGFsbCByZWFkcyB3aWxsIGJlIGNvbXBsZXRlZCBiZWZvcmUgdGhlDQogCQkgKiB3cml0ZSBpcyBp c3N1ZWQuDQorCQkgKg0KKwkJICogU2VlIHBlcmZfb3V0cHV0X3B1dF9oYW5kbGUoKS4NCiAJCSAq Lw0KIAkJdGFpbCA9IEFDQ0VTU19PTkNFKHJiLT51c2VyX3BhZ2UtPmRhdGFfdGFpbCk7DQotCQlz bXBfcm1iKCk7DQorCQlzbXBfbWIoKTsNCiAJCW9mZnNldCA9IGhlYWQgPSBsb2NhbF9yZWFkKCZy Yi0+aGVhZCk7DQogCQloZWFkICs9IHNpemU7DQogCQlpZiAodW5saWtlbHkoIXBlcmZfb3V0cHV0 X3NwYWNlKHJiLCB0YWlsLCBvZmZzZXQsIGhlYWQpKSkNCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJh Y2UvdHJhY2UuYyBiL2tlcm5lbC90cmFjZS90cmFjZS5jDQppbmRleCBjZTEwNjdmLi5jNWExMmE3 IDEwMDY0NA0KLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlLmMNCisrKyBiL2tlcm5lbC90cmFjZS90 cmFjZS5jDQpAQCAtNTM0LDkgKzUzNCwxMiBAQCBpbnQgdHJhY2VfZ2V0X3VzZXIoc3RydWN0IHRy YWNlX3BhcnNlciAqcGFyc2VyLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwNCiAJaWYgKGlzc3Bh Y2UoY2gpKSB7DQogCQlwYXJzZXItPmJ1ZmZlcltwYXJzZXItPmlkeF0gPSAwOw0KIAkJcGFyc2Vy LT5jb250ID0gZmFsc2U7DQotCX0gZWxzZSB7DQorCX0gZWxzZSBpZiAocGFyc2VyLT5pZHggPCBw YXJzZXItPnNpemUgLSAxKSB7DQogCQlwYXJzZXItPmNvbnQgPSB0cnVlOw0KIAkJcGFyc2VyLT5i dWZmZXJbcGFyc2VyLT5pZHgrK10gPSBjaDsNCisJfSBlbHNlIHsNCisJCXJldCA9IC1FSU5WQUw7 DQorCQlnb3RvIG91dDsNCiAJfQ0KIA0KIAkqcHBvcyArPSByZWFkOw0KZGlmZiAtLWdpdCBhL25l dC84MDIxcS92bGFuX25ldGxpbmsuYyBiL25ldC84MDIxcS92bGFuX25ldGxpbmsuYw0KaW5kZXgg MjM1YzIxOS4uYzcwNTYxMiAxMDA2NDQNCi0tLSBhL25ldC84MDIxcS92bGFuX25ldGxpbmsuYw0K KysrIGIvbmV0LzgwMjFxL3ZsYW5fbmV0bGluay5jDQpAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRp YyBzaXplX3Qgdmxhbl9nZXRfc2l6ZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQ0KIAlz dHJ1Y3Qgdmxhbl9kZXZfaW5mbyAqdmxhbiA9IHZsYW5fZGV2X2luZm8oZGV2KTsNCiANCiAJcmV0 dXJuIG5sYV90b3RhbF9zaXplKDIpICsJLyogSUZMQV9WTEFOX0lEICovDQotCSAgICAgICBzaXpl b2Yoc3RydWN0IGlmbGFfdmxhbl9mbGFncykgKyAvKiBJRkxBX1ZMQU5fRkxBR1MgKi8NCisJICAg ICAgIG5sYV90b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgaWZsYV92bGFuX2ZsYWdzKSkgKyAvKiBJ RkxBX1ZMQU5fRkxBR1MgKi8NCiAJICAgICAgIHZsYW5fcW9zX21hcF9zaXplKHZsYW4tPm5yX2lu Z3Jlc3NfbWFwcGluZ3MpICsNCiAJICAgICAgIHZsYW5fcW9zX21hcF9zaXplKHZsYW4tPm5yX2Vn cmVzc19tYXBwaW5ncyk7DQogfQ0KZGlmZiAtLWdpdCBhL25ldC9jb21wYXQuYyBiL25ldC9jb21w YXQuYw0KaW5kZXggOGM5NzljYy4uMzEzOWVmMiAxMDA2NDQNCi0tLSBhL25ldC9jb21wYXQuYw0K KysrIGIvbmV0L2NvbXBhdC5jDQpAQCAtNzEsNiArNzEsOCBAQCBpbnQgZ2V0X2NvbXBhdF9tc2do ZHIoc3RydWN0IG1zZ2hkciAqa21zZywgc3RydWN0IGNvbXBhdF9tc2doZHIgX191c2VyICp1bXNn KQ0KIAkgICAgX19nZXRfdXNlcihrbXNnLT5tc2dfY29udHJvbGxlbiwgJnVtc2ctPm1zZ19jb250 cm9sbGVuKSB8fA0KIAkgICAgX19nZXRfdXNlcihrbXNnLT5tc2dfZmxhZ3MsICZ1bXNnLT5tc2df ZmxhZ3MpKQ0KIAkJcmV0dXJuIC1FRkFVTFQ7DQorCWlmIChrbXNnLT5tc2dfbmFtZWxlbiA+IHNp emVvZihzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSkpDQorCQlyZXR1cm4gLUVJTlZBTDsNCiAJa21z Zy0+bXNnX25hbWUgPSBjb21wYXRfcHRyKHRtcDEpOw0KIAlrbXNnLT5tc2dfaW92ID0gY29tcGF0 X3B0cih0bXAyKTsNCiAJa21zZy0+bXNnX2NvbnRyb2wgPSBjb21wYXRfcHRyKHRtcDMpOw0KZGlm ZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jIGIvbmV0L2lwdjQvaW5ldF9oYXNo dGFibGVzLmMNCmluZGV4IDk4NGVjNjUuLjRhZmNmMzEgMTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9p bmV0X2hhc2h0YWJsZXMuYw0KKysrIGIvbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMNCkBAIC0y NjgsNyArMjY4LDcgQEAgYmVnaW50dzoNCiAJCQl9DQogCQkJaWYgKHVubGlrZWx5KCFJTkVUX1RX X01BVENIKHNrLCBuZXQsIGhhc2gsIGFjb29raWUsDQogCQkJCSBzYWRkciwgZGFkZHIsIHBvcnRz LCBkaWYpKSkgew0KLQkJCQlzb2NrX3B1dChzayk7DQorCQkJCWluZXRfdHdza19wdXQoaW5ldF90 d3NrKHNrKSk7DQogCQkJCWdvdG8gYmVnaW50dzsNCiAJCQl9DQogCQkJZ290byBvdXQ7DQpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYw0KaW5k ZXggZGFmNDA4ZS4uMTYxOTFmMCAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L2lwX291dHB1dC5jDQor KysgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYw0KQEAgLTgzMyw3ICs4MzMsNyBAQCBzdGF0aWMgaW50 IF9faXBfYXBwZW5kX2RhdGEoc3RydWN0IHNvY2sgKnNrLA0KIAkJY3N1bW1vZGUgPSBDSEVDS1NV TV9QQVJUSUFMOw0KIA0KIAljb3JrLT5sZW5ndGggKz0gbGVuZ3RoOw0KLQlpZiAoKChsZW5ndGgg PiBtdHUpIHx8IChza2IgJiYgc2tiX2lzX2dzbyhza2IpKSkgJiYNCisJaWYgKCgobGVuZ3RoID4g bXR1KSB8fCAoc2tiICYmIHNrYl9oYXNfZnJhZ3Moc2tiKSkpICYmDQogCSAgICAoc2stPnNrX3By b3RvY29sID09IElQUFJPVE9fVURQKSAmJg0KIAkgICAgKHJ0LT5kc3QuZGV2LT5mZWF0dXJlcyAm IE5FVElGX0ZfVUZPKSAmJiAhcnQtPmRzdC5oZWFkZXJfbGVuKSB7DQogCQllcnIgPSBpcF91Zm9f YXBwZW5kX2RhdGEoc2ssIHF1ZXVlLCBnZXRmcmFnLCBmcm9tLCBsZW5ndGgsDQpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMNCmluZGV4IGM0NWExNTVhMy4u Njc2OGNlMiAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L3JvdXRlLmMNCisrKyBiL25ldC9pcHY0L3Jv dXRlLmMNCkBAIC0yNzI3LDcgKzI3MjcsNyBAQCBzdGF0aWMgc3RydWN0IHJ0YWJsZSAqaXBfcm91 dGVfb3V0cHV0X3Nsb3coc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmxvd2k0ICpmbDQpDQogCQkJ CQkJCSAgICAgIFJUX1NDT1BFX0xJTkspOw0KIAkJCWdvdG8gbWFrZV9yb3V0ZTsNCiAJCX0NCi0J CWlmIChmbDQtPnNhZGRyKSB7DQorCQlpZiAoIWZsNC0+c2FkZHIpIHsNCiAJCQlpZiAoaXB2NF9p c19tdWx0aWNhc3QoZmw0LT5kYWRkcikpDQogCQkJCWZsNC0+c2FkZHIgPSBpbmV0X3NlbGVjdF9h ZGRyKGRldl9vdXQsIDAsDQogCQkJCQkJCSAgICAgIGZsNC0+Zmxvd2k0X3Njb3BlKTsNCmRpZmYg LS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jDQppbmRl eCA4NzJiNDFkLi5jMWVkMDFlIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMNCisr KyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jDQpAQCAtMTQ2OSw3ICsxNDY5LDEwIEBAIHN0YXRpYyBp bnQgdGNwX3NoaWZ0ZWRfc2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwN CiAJCXRwLT5sb3N0X2NudF9oaW50IC09IHRjcF9za2JfcGNvdW50KHByZXYpOw0KIAl9DQogDQot CVRDUF9TS0JfQ0Ioc2tiKS0+dGNwX2ZsYWdzIHw9IFRDUF9TS0JfQ0IocHJldiktPnRjcF9mbGFn czsNCisJVENQX1NLQl9DQihwcmV2KS0+dGNwX2ZsYWdzIHw9IFRDUF9TS0JfQ0Ioc2tiKS0+dGNw X2ZsYWdzOw0KKwlpZiAoVENQX1NLQl9DQihza2IpLT50Y3BfZmxhZ3MgJiBUQ1BIRFJfRklOKQ0K KwkJVENQX1NLQl9DQihwcmV2KS0+ZW5kX3NlcSsrOw0KKw0KIAlpZiAoc2tiID09IHRjcF9oaWdo ZXN0X3NhY2soc2spKQ0KIAkJdGNwX2FkdmFuY2VfaGlnaGVzdF9zYWNrKHNrLCBza2IpOw0KIA0K ZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9vdXRwdXQu Yw0KaW5kZXggM2FkZDQ4Ni4uMGQ1YTExOCAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L3RjcF9vdXRw dXQuYw0KKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jDQpAQCAtOTMzLDYgKzkzMyw5IEBAIHN0 YXRpYyB2b2lkIHRjcF9xdWV1ZV9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQ0KIHN0YXRpYyB2b2lkIHRjcF9zZXRfc2tiX3Rzb19zZWdzKGNvbnN0IHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCiAJCQkJIHVuc2lnbmVkIGludCBtc3Nfbm93KQ0K IHsNCisJLyogTWFrZSBzdXJlIHdlIG93biB0aGlzIHNrYiBiZWZvcmUgbWVzc2luZyBnc29fc2l6 ZS9nc29fc2VncyAqLw0KKwlXQVJOX09OX09OQ0Uoc2tiX2Nsb25lZChza2IpKTsNCisNCiAJaWYg KHNrYi0+bGVuIDw9IG1zc19ub3cgfHwgIXNrX2Nhbl9nc28oc2spIHx8DQogCSAgICBza2ItPmlw X3N1bW1lZCA9PSBDSEVDS1NVTV9OT05FKSB7DQogCQkvKiBBdm9pZCB0aGUgY29zdGx5IGRpdmlk ZSBpbiB0aGUgbm9ybWFsDQpAQCAtMTAxNCw5ICsxMDE3LDcgQEAgaW50IHRjcF9mcmFnbWVudChz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBsZW4sDQogCWlmIChuc2l6 ZSA8IDApDQogCQluc2l6ZSA9IDA7DQogDQotCWlmIChza2JfY2xvbmVkKHNrYikgJiYNCi0JICAg IHNrYl9pc19ub25saW5lYXIoc2tiKSAmJg0KLQkgICAgcHNrYl9leHBhbmRfaGVhZChza2IsIDAs IDAsIEdGUF9BVE9NSUMpKQ0KKwlpZiAoc2tiX3VuY2xvbmUoc2tiLCBHRlBfQVRPTUlDKSkNCiAJ CXJldHVybiAtRU5PTUVNOw0KIA0KIAkvKiBHZXQgYSBuZXcgc2tiLi4uIGZvcmNlIGZsYWcgb24u ICovDQpAQCAtMjEyOSw2ICsyMTMwLDggQEAgaW50IHRjcF9yZXRyYW5zbWl0X3NrYihzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpDQogCQlpbnQgb2xkcGNvdW50ID0gdGNwX3Nr Yl9wY291bnQoc2tiKTsNCiANCiAJCWlmICh1bmxpa2VseShvbGRwY291bnQgPiAxKSkgew0KKwkJ CWlmIChza2JfdW5jbG9uZShza2IsIEdGUF9BVE9NSUMpKQ0KKwkJCQlyZXR1cm4gLUVOT01FTTsN CiAJCQl0Y3BfaW5pdF90c29fc2Vncyhzaywgc2tiLCBjdXJfbXNzKTsNCiAJCQl0Y3BfYWRqdXN0 X3Bjb3VudChzaywgc2tiLCBvbGRwY291bnQgLSB0Y3Bfc2tiX3Bjb3VudChza2IpKTsNCiAJCX0N CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pbmV0Nl9oYXNodGFibGVzLmMgYi9uZXQvaXB2Ni9pbmV0 Nl9oYXNodGFibGVzLmMNCmluZGV4IDczZjFhMDAuLmUzODI5MGIgMTAwNjQ0DQotLS0gYS9uZXQv aXB2Ni9pbmV0Nl9oYXNodGFibGVzLmMNCisrKyBiL25ldC9pcHY2L2luZXQ2X2hhc2h0YWJsZXMu Yw0KQEAgLTExMCw3ICsxMTAsNyBAQCBiZWdpbnR3Og0KIAkJCQlnb3RvIG91dDsNCiAJCQl9DQog CQkJaWYgKCFJTkVUNl9UV19NQVRDSChzaywgbmV0LCBoYXNoLCBzYWRkciwgZGFkZHIsIHBvcnRz LCBkaWYpKSB7DQotCQkJCXNvY2tfcHV0KHNrKTsNCisJCQkJaW5ldF90d3NrX3B1dChpbmV0X3R3 c2soc2spKTsNCiAJCQkJZ290byBiZWdpbnR3Ow0KIAkJCX0NCiAJCQlnb3RvIG91dDsNCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMNCmlu ZGV4IDkxZDA3MTEuLjk3Njc1YmYgMTAwNjQ0DQotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMN CisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYw0KQEAgLTEzNDIsNyArMTM0Miw3IEBAIGludCBp cDZfYXBwZW5kX2RhdGEoc3RydWN0IHNvY2sgKnNrLCBpbnQgZ2V0ZnJhZyh2b2lkICpmcm9tLCBj aGFyICp0bywNCiAJc2tiID0gc2tiX3BlZWtfdGFpbCgmc2stPnNrX3dyaXRlX3F1ZXVlKTsNCiAJ Y29yay0+bGVuZ3RoICs9IGxlbmd0aDsNCiAJaWYgKCgobGVuZ3RoID4gbXR1KSB8fA0KLQkgICAg IChza2IgJiYgc2tiX2lzX2dzbyhza2IpKSkgJiYNCisJICAgICAoc2tiICYmIHNrYl9oYXNfZnJh Z3Moc2tiKSkpICYmDQogCSAgICAoc2stPnNrX3Byb3RvY29sID09IElQUFJPVE9fVURQKSAmJg0K IAkgICAgKHJ0LT5kc3QuZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfVUZPKSkgew0KIAkJZXJyID0g aXA2X3Vmb19hcHBlbmRfZGF0YShzaywgZ2V0ZnJhZywgZnJvbSwgbGVuZ3RoLA0KZGlmZiAtLWdp dCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jDQppbmRleCAxOGVhNzNjLi5i YzkxMDNkIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjYvcm91dGUuYw0KKysrIGIvbmV0L2lwdjYvcm91 dGUuYw0KQEAgLTc5MSw3ICs3OTEsNyBAQCBzdGF0aWMgc3RydWN0IHJ0Nl9pbmZvICpydDZfYWxs b2NfY2xvbmUoc3RydWN0IHJ0Nl9pbmZvICpvcnQsDQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3QgcnQ2 X2luZm8gKmlwNl9wb2xfcm91dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmliNl90YWJsZSAq dGFibGUsIGludCBvaWYsDQotCQkJCSAgICAgIHN0cnVjdCBmbG93aTYgKmZsNiwgaW50IGZsYWdz KQ0KKwkJCQkgICAgICBzdHJ1Y3QgZmxvd2k2ICpmbDYsIGludCBmbGFncywgYm9vbCBpbnB1dCkN CiB7DQogCXN0cnVjdCBmaWI2X25vZGUgKmZuOw0KIAlzdHJ1Y3QgcnQ2X2luZm8gKnJ0LCAqbnJ0 Ow0KQEAgLTc5OSw4ICs3OTksMTEgQEAgc3RhdGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X3BvbF9y b3V0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmaWI2X3RhYmxlICp0YWJsZSwNCiAJaW50IGF0 dGVtcHRzID0gMzsNCiAJaW50IGVycjsNCiAJaW50IHJlYWNoYWJsZSA9IG5ldC0+aXB2Ni5kZXZj b25mX2FsbC0+Zm9yd2FyZGluZyA/IDAgOiBSVDZfTE9PS1VQX0ZfUkVBQ0hBQkxFOw0KKwlpbnQg bG9jYWwgPSBSVEZfTk9ORVhUSE9QOw0KIA0KIAlzdHJpY3QgfD0gZmxhZ3MgJiBSVDZfTE9PS1VQ X0ZfSUZBQ0U7DQorCWlmIChpbnB1dCkNCisJCWxvY2FsIHw9IFJURl9MT0NBTDsNCiANCiByZWxv b2t1cDoNCiAJcmVhZF9sb2NrX2JoKCZ0YWJsZS0+dGI2X2xvY2spOw0KQEAgLTgyMCw3ICs4MjMs NyBAQCByZXN0YXJ0Og0KIAlyZWFkX3VubG9ja19iaCgmdGFibGUtPnRiNl9sb2NrKTsNCiANCiAJ aWYgKCFkc3RfZ2V0X25laWdoYm91cl9yYXcoJnJ0LT5kc3QpDQotCSAgICAmJiAhKHJ0LT5ydDZp X2ZsYWdzICYgKFJURl9OT05FWFRIT1AgfCBSVEZfTE9DQUwpKSkNCisJICAgICYmICEocnQtPnJ0 NmlfZmxhZ3MgJiBsb2NhbCkpDQogCQlucnQgPSBydDZfYWxsb2NfY293KHJ0LCAmZmw2LT5kYWRk ciwgJmZsNi0+c2FkZHIpOw0KIAllbHNlIGlmICghKHJ0LT5kc3QuZmxhZ3MgJiBEU1RfSE9TVCkp DQogCQlucnQgPSBydDZfYWxsb2NfY2xvbmUocnQsICZmbDYtPmRhZGRyKTsNCkBAIC04NjQsNyAr ODY3LDcgQEAgb3V0MjoNCiBzdGF0aWMgc3RydWN0IHJ0Nl9pbmZvICppcDZfcG9sX3JvdXRlX2lu cHV0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpYjZfdGFibGUgKnRhYmxlLA0KIAkJCQkJICAg IHN0cnVjdCBmbG93aTYgKmZsNiwgaW50IGZsYWdzKQ0KIHsNCi0JcmV0dXJuIGlwNl9wb2xfcm91 dGUobmV0LCB0YWJsZSwgZmw2LT5mbG93aTZfaWlmLCBmbDYsIGZsYWdzKTsNCisJcmV0dXJuIGlw Nl9wb2xfcm91dGUobmV0LCB0YWJsZSwgZmw2LT5mbG93aTZfaWlmLCBmbDYsIGZsYWdzLCB0cnVl KTsNCiB9DQogDQogdm9pZCBpcDZfcm91dGVfaW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYikNCkBA IC04OTAsNyArODkzLDcgQEAgdm9pZCBpcDZfcm91dGVfaW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNr YikNCiBzdGF0aWMgc3RydWN0IHJ0Nl9pbmZvICppcDZfcG9sX3JvdXRlX291dHB1dChzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBmaWI2X3RhYmxlICp0YWJsZSwNCiAJCQkJCSAgICAgc3RydWN0IGZs b3dpNiAqZmw2LCBpbnQgZmxhZ3MpDQogew0KLQlyZXR1cm4gaXA2X3BvbF9yb3V0ZShuZXQsIHRh YmxlLCBmbDYtPmZsb3dpNl9vaWYsIGZsNiwgZmxhZ3MpOw0KKwlyZXR1cm4gaXA2X3BvbF9yb3V0 ZShuZXQsIHRhYmxlLCBmbDYtPmZsb3dpNl9vaWYsIGZsNiwgZmxhZ3MsIGZhbHNlKTsNCiB9DQog DQogc3RydWN0IGRzdF9lbnRyeSAqIGlwNl9yb3V0ZV9vdXRwdXQoc3RydWN0IG5ldCAqbmV0LCBj b25zdCBzdHJ1Y3Qgc29jayAqc2ssDQpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9wcHAuYyBi L25ldC9sMnRwL2wydHBfcHBwLmMNCmluZGV4IGU1NzkwMDYuLjg1NzAwNzkgMTAwNjQ0DQotLS0g YS9uZXQvbDJ0cC9sMnRwX3BwcC5jDQorKysgYi9uZXQvbDJ0cC9sMnRwX3BwcC5jDQpAQCAtMzU3 LDcgKzM1Nyw5IEBAIHN0YXRpYyBpbnQgcHBwb2wydHBfc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKmlv Y2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doDQogCQlnb3RvIGVycm9yX3B1dF9z ZXNzX3R1bjsNCiAJfQ0KIA0KKwlsb2NhbF9iaF9kaXNhYmxlKCk7DQogCWwydHBfeG1pdF9za2Io c2Vzc2lvbiwgc2tiLCBzZXNzaW9uLT5oZHJfbGVuKTsNCisJbG9jYWxfYmhfZW5hYmxlKCk7DQog DQogCXNvY2tfcHV0KHBzLT50dW5uZWxfc29jayk7DQogCXNvY2tfcHV0KHNrKTsNCkBAIC00MzIs NyArNDM0LDkgQEAgc3RhdGljIGludCBwcHBvbDJ0cF94bWl0KHN0cnVjdCBwcHBfY2hhbm5lbCAq Y2hhbiwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCiAJc2tiLT5kYXRhWzBdID0gcHBwaFswXTsNCiAJ c2tiLT5kYXRhWzFdID0gcHBwaFsxXTsNCiANCisJbG9jYWxfYmhfZGlzYWJsZSgpOw0KIAlsMnRw X3htaXRfc2tiKHNlc3Npb24sIHNrYiwgc2Vzc2lvbi0+aGRyX2xlbik7DQorCWxvY2FsX2JoX2Vu YWJsZSgpOw0KIA0KIAlzb2NrX3B1dChza190dW4pOw0KIAlzb2NrX3B1dChzayk7DQpkaWZmIC0t Z2l0IGEvbmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmggYi9uZXQvbWFjODAyMTEvaWVlZTgwMjEx X2kuaA0KaW5kZXggNzM0OTVmMS4uYTljZjU5MyAxMDA2NDQNCi0tLSBhL25ldC9tYWM4MDIxMS9p ZWVlODAyMTFfaS5oDQorKysgYi9uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaA0KQEAgLTcwOCw2 ICs3MDgsOCBAQCBzdHJ1Y3QgdHB0X2xlZF90cmlnZ2VyIHsNCiAgKgl0aGF0IHRoZSBzY2FuIGNv bXBsZXRlZC4NCiAgKiBAU0NBTl9BQk9SVEVEOiBTZXQgZm9yIG91ciBzY2FuIHdvcmsgZnVuY3Rp b24gd2hlbiB0aGUgZHJpdmVyIHJlcG9ydGVkDQogICoJYSBzY2FuIGNvbXBsZXRlIGZvciBhbiBh Ym9ydGVkIHNjYW4uDQorICogQFNDQU5fSFdfQ0FOQ0VMTEVEOiBTZXQgZm9yIG91ciBzY2FuIHdv cmsgZnVuY3Rpb24gd2hlbiB0aGUgc2NhbiBpcyBiZWluZw0KKyAqCWNhbmNlbGxlZC4NCiAgKi8N CiBlbnVtIHsNCiAJU0NBTl9TV19TQ0FOTklORywNCkBAIC03MTUsNiArNzE3LDcgQEAgZW51bSB7 DQogCVNDQU5fT0ZGX0NIQU5ORUwsDQogCVNDQU5fQ09NUExFVEVELA0KIAlTQ0FOX0FCT1JURUQs DQorCVNDQU5fSFdfQ0FOQ0VMTEVELA0KIH07DQogDQogLyoqDQpkaWZmIC0tZ2l0IGEvbmV0L21h YzgwMjExL3J4LmMgYi9uZXQvbWFjODAyMTEvcnguYw0KaW5kZXggN2Q4ODJmYy4uZGIwMWQwMiAx MDA2NDQNCi0tLSBhL25ldC9tYWM4MDIxMS9yeC5jDQorKysgYi9uZXQvbWFjODAyMTEvcnguYw0K QEAgLTI3ODAsNiArMjc4MCw5IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9mb3JfaGFuZGxlcnMoc3Ry dWN0IGllZWU4MDIxMV9yeF9kYXRhICpyeCwNCiAJY2FzZSBOTDgwMjExX0lGVFlQRV9BREhPQzoN CiAJCWlmICghYnNzaWQpDQogCQkJcmV0dXJuIDA7DQorCQlpZiAoY29tcGFyZV9ldGhlcl9hZGRy KHNkYXRhLT52aWYuYWRkciwgaGRyLT5hZGRyMikgPT0gMCB8fA0KKwkJICAgIGNvbXBhcmVfZXRo ZXJfYWRkcihzZGF0YS0+dS5pYnNzLmJzc2lkLCBoZHItPmFkZHIyKSA9PSAwKQ0KKwkJCXJldHVy biAwOw0KIAkJaWYgKGllZWU4MDIxMV9pc19iZWFjb24oaGRyLT5mcmFtZV9jb250cm9sKSkgew0K IAkJCXJldHVybiAxOw0KIAkJfQ0KZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9zY2FuLmMgYi9u ZXQvbWFjODAyMTEvc2Nhbi5jDQppbmRleCA1Mjc5MzAwLi4wYWVlYTQ5IDEwMDY0NA0KLS0tIGEv bmV0L21hYzgwMjExL3NjYW4uYw0KKysrIGIvbmV0L21hYzgwMjExL3NjYW4uYw0KQEAgLTIyNCw2 ICsyMjQsOSBAQCBzdGF0aWMgYm9vbCBpZWVlODAyMTFfcHJlcF9od19zY2FuKHN0cnVjdCBpZWVl ODAyMTFfbG9jYWwgKmxvY2FsKQ0KIAllbnVtIGllZWU4MDIxMV9iYW5kIGJhbmQ7DQogCWludCBp LCBpZWxlbiwgbl9jaGFuczsNCiANCisJaWYgKHRlc3RfYml0KFNDQU5fSFdfQ0FOQ0VMTEVELCAm bG9jYWwtPnNjYW5uaW5nKSkNCisJCXJldHVybiBmYWxzZTsNCisNCiAJZG8gew0KIAkJaWYgKGxv Y2FsLT5od19zY2FuX2JhbmQgPT0gSUVFRTgwMjExX05VTV9CQU5EUykNCiAJCQlyZXR1cm4gZmFs c2U7DQpAQCAtODE1LDcgKzgxOCwyMyBAQCB2b2lkIGllZWU4MDIxMV9zY2FuX2NhbmNlbChzdHJ1 Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCkNCiAJaWYgKCFsb2NhbC0+c2Nhbl9yZXEpDQogCQln b3RvIG91dDsNCiANCisJLyoNCisJICogV2UgaGF2ZSBhIHNjYW4gcnVubmluZyBhbmQgdGhlIGRy aXZlciBhbHJlYWR5IHJlcG9ydGVkIGNvbXBsZXRpb24sDQorCSAqIGJ1dCB0aGUgd29ya2VyIGhh c24ndCBydW4geWV0IG9yIGlzIHN0dWNrIG9uIHRoZSBtdXRleCAtIG1hcmsgaXQgYXMNCisJICog Y2FuY2VsbGVkLg0KKwkgKi8NCisJaWYgKHRlc3RfYml0KFNDQU5fSFdfU0NBTk5JTkcsICZsb2Nh bC0+c2Nhbm5pbmcpICYmDQorCSAgICB0ZXN0X2JpdChTQ0FOX0NPTVBMRVRFRCwgJmxvY2FsLT5z Y2FubmluZykpIHsNCisJCXNldF9iaXQoU0NBTl9IV19DQU5DRUxMRUQsICZsb2NhbC0+c2Nhbm5p bmcpOw0KKwkJZ290byBvdXQ7DQorCX0NCisNCiAJaWYgKHRlc3RfYml0KFNDQU5fSFdfU0NBTk5J TkcsICZsb2NhbC0+c2Nhbm5pbmcpKSB7DQorCQkvKg0KKwkJICogTWFrZSBzdXJlIHRoYXQgX19p ZWVlODAyMTFfc2Nhbl9jb21wbGV0ZWQgZG9lc24ndCB0cmlnZ2VyIGENCisJCSAqIHNjYW4gb24g YW5vdGhlciBiYW5kLg0KKwkJICovDQorCQlzZXRfYml0KFNDQU5fSFdfQ0FOQ0VMTEVELCAmbG9j YWwtPnNjYW5uaW5nKTsNCiAJCWlmIChsb2NhbC0+b3BzLT5jYW5jZWxfaHdfc2NhbikNCiAJCQlk cnZfY2FuY2VsX2h3X3NjYW4obG9jYWwsIGxvY2FsLT5zY2FuX3NkYXRhKTsNCiAJCWdvdG8gb3V0 Ow0KZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9zdGF0dXMuYyBiL25ldC9tYWM4MDIxMS9zdGF0 dXMuYw0KaW5kZXggNjdkZjUwZS4uMWE0OTM1NCAxMDA2NDQNCi0tLSBhL25ldC9tYWM4MDIxMS9z dGF0dXMuYw0KKysrIGIvbmV0L21hYzgwMjExL3N0YXR1cy5jDQpAQCAtMTgxLDYgKzE4MSw5IEBA IHN0YXRpYyB2b2lkIGllZWU4MDIxMV9mcmFtZV9hY2tlZChzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwg c3RydWN0IHNrX2J1ZmYgKnNrYikNCiAJc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBz dGEtPmxvY2FsOw0KIAlzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSA9IHN0YS0+ c2RhdGE7DQogDQorCWlmIChsb2NhbC0+aHcuZmxhZ3MgJiBJRUVFODAyMTFfSFdfUkVQT1JUU19U WF9BQ0tfU1RBVFVTKQ0KKwkJc3RhLT5sYXN0X3J4ID0gamlmZmllczsNCisNCiAJaWYgKGllZWU4 MDIxMV9pc19kYXRhX3FvcyhtZ210LT5mcmFtZV9jb250cm9sKSkgew0KIAkJc3RydWN0IGllZWU4 MDIxMV9oZHIgKmhkciA9ICh2b2lkICopIHNrYi0+ZGF0YTsNCiAJCXU4ICpxYyA9IGllZWU4MDIx MV9nZXRfcW9zX2N0bChoZHIpOw0KZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRy YWNrX3NpcC5jIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfc2lwLmMNCmluZGV4IDkzZmFm NmEuLjRhOGM1NWIgMTAwNjQ0DQotLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19zaXAu Yw0KKysrIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfc2lwLmMNCkBAIC0xNDY4LDcgKzE0 NjgsNyBAQCBzdGF0aWMgaW50IHNpcF9oZWxwX3RjcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNp Z25lZCBpbnQgcHJvdG9mZiwNCiANCiAJCW1zZ2xlbiA9IG9yaWdsZW4gPSBlbmQgLSBkcHRyOw0K IAkJaWYgKG1zZ2xlbiA+IGRhdGFsZW4pDQotCQkJcmV0dXJuIE5GX0RST1A7DQorCQkJcmV0dXJu IE5GX0FDQ0VQVDsNCiANCiAJCXJldCA9IHByb2Nlc3Nfc2lwX21zZyhza2IsIGN0LCBkYXRhb2Zm LCAmZHB0ciwgJm1zZ2xlbik7DQogCQlpZiAocmV0ICE9IE5GX0FDQ0VQVCkNCmRpZmYgLS1naXQg YS9uZXQvc2N0cC9vdXRwdXQuYyBiL25ldC9zY3RwL291dHB1dC5jDQppbmRleCAzMmJhOGQwLi5j ZjNlMjJjIDEwMDY0NA0KLS0tIGEvbmV0L3NjdHAvb3V0cHV0LmMNCisrKyBiL25ldC9zY3RwL291 dHB1dC5jDQpAQCAtNTE4LDcgKzUxOCw4IEBAIGludCBzY3RwX3BhY2tldF90cmFuc21pdChzdHJ1 Y3Qgc2N0cF9wYWNrZXQgKnBhY2tldCkNCiAJICogYnkgQ1JDMzItQyBhcyBkZXNjcmliZWQgaW4g PGRyYWZ0LWlldGYtdHN2d2ctc2N0cGNzdW0tMDIudHh0Pi4NCiAJICovDQogCWlmICghc2N0cF9j aGVja3N1bV9kaXNhYmxlKSB7DQotCQlpZiAoIShkc3QtPmRldi0+ZmVhdHVyZXMgJiBORVRJRl9G X1NDVFBfQ1NVTSkpIHsNCisJCWlmICghKGRzdC0+ZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfU0NU UF9DU1VNKSB8fA0KKwkJICAgIChkc3RfeGZybShkc3QpICE9IE5VTEwpIHx8IHBhY2tldC0+aXBm cmFnb2spIHsNCiAJCQlfX3UzMiBjcmMzMiA9IHNjdHBfc3RhcnRfY2tzdW0oKF9fdTggKilzaCwg Y2tzdW1fYnVmX2xlbik7DQogDQogCQkJLyogMykgUHV0IHRoZSByZXN1bHRhbnQgdmFsdWUgaW50 byB0aGUgY2hlY2tzdW0gZmllbGQgaW4gdGhlDQpkaWZmIC0tZ2l0IGEvbmV0L3NvY2tldC5jIGIv bmV0L3NvY2tldC5jDQppbmRleCBjZjU0NmEzLi5iZjdhZGFhIDEwMDY0NA0KLS0tIGEvbmV0L3Nv Y2tldC5jDQorKysgYi9uZXQvc29ja2V0LmMNCkBAIC0xODc2LDYgKzE4NzYsMTYgQEAgc3RydWN0 IHVzZWRfYWRkcmVzcyB7DQogCXVuc2lnbmVkIGludCBuYW1lX2xlbjsNCiB9Ow0KIA0KK3N0YXRp YyBpbnQgY29weV9tc2doZHJfZnJvbV91c2VyKHN0cnVjdCBtc2doZHIgKmttc2csDQorCQkJCSBz dHJ1Y3QgbXNnaGRyIF9fdXNlciAqdW1zZykNCit7DQorCWlmIChjb3B5X2Zyb21fdXNlcihrbXNn LCB1bXNnLCBzaXplb2Yoc3RydWN0IG1zZ2hkcikpKQ0KKwkJcmV0dXJuIC1FRkFVTFQ7DQorCWlm IChrbXNnLT5tc2dfbmFtZWxlbiA+IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSkpDQor CQlyZXR1cm4gLUVJTlZBTDsNCisJcmV0dXJuIDA7DQorfQ0KKw0KIHN0YXRpYyBpbnQgX19fc3lz X3NlbmRtc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciBfX3VzZXIgKm1zZywN CiAJCQkgIHN0cnVjdCBtc2doZHIgKm1zZ19zeXMsIHVuc2lnbmVkIGZsYWdzLA0KIAkJCSAgc3Ry dWN0IHVzZWRfYWRkcmVzcyAqdXNlZF9hZGRyZXNzKQ0KQEAgLTE4OTQsOCArMTkwNCwxMSBAQCBz dGF0aWMgaW50IF9fX3N5c19zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2do ZHIgX191c2VyICptc2csDQogCWlmIChNU0dfQ01TR19DT01QQVQgJiBmbGFncykgew0KIAkJaWYg KGdldF9jb21wYXRfbXNnaGRyKG1zZ19zeXMsIG1zZ19jb21wYXQpKQ0KIAkJCXJldHVybiAtRUZB VUxUOw0KLQl9IGVsc2UgaWYgKGNvcHlfZnJvbV91c2VyKG1zZ19zeXMsIG1zZywgc2l6ZW9mKHN0 cnVjdCBtc2doZHIpKSkNCi0JCXJldHVybiAtRUZBVUxUOw0KKwl9IGVsc2Ugew0KKwkJZXJyID0g Y29weV9tc2doZHJfZnJvbV91c2VyKG1zZ19zeXMsIG1zZyk7DQorCQlpZiAoZXJyKQ0KKwkJCXJl dHVybiBlcnI7DQorCX0NCiANCiAJLyogZG8gbm90IG1vdmUgYmVmb3JlIG1zZ19zeXMgaXMgdmFs aWQgKi8NCiAJZXJyID0gLUVNU0dTSVpFOw0KQEAgLTIxMTAsOCArMjEyMywxMSBAQCBzdGF0aWMg aW50IF9fX3N5c19yZWN2bXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgX191 c2VyICptc2csDQogCWlmIChNU0dfQ01TR19DT01QQVQgJiBmbGFncykgew0KIAkJaWYgKGdldF9j b21wYXRfbXNnaGRyKG1zZ19zeXMsIG1zZ19jb21wYXQpKQ0KIAkJCXJldHVybiAtRUZBVUxUOw0K LQl9IGVsc2UgaWYgKGNvcHlfZnJvbV91c2VyKG1zZ19zeXMsIG1zZywgc2l6ZW9mKHN0cnVjdCBt c2doZHIpKSkNCi0JCXJldHVybiAtRUZBVUxUOw0KKwl9IGVsc2Ugew0KKwkJZXJyID0gY29weV9t c2doZHJfZnJvbV91c2VyKG1zZ19zeXMsIG1zZyk7DQorCQlpZiAoZXJyKQ0KKwkJCXJldHVybiBl cnI7DQorCX0NCiANCiAJZXJyID0gLUVNU0dTSVpFOw0KIAlpZiAobXNnX3N5cy0+bXNnX2lvdmxl biA+IFVJT19NQVhJT1YpDQpkaWZmIC0tZ2l0IGEvbmV0L3VuaXgvYWZfdW5peC5jIGIvbmV0L3Vu aXgvYWZfdW5peC5jDQppbmRleCA1NjExNTYzLi41MTIyYjIyIDEwMDY0NA0KLS0tIGEvbmV0L3Vu aXgvYWZfdW5peC5jDQorKysgYi9uZXQvdW5peC9hZl91bml4LmMNCkBAIC0xMjM2LDYgKzEyMzYs MTUgQEAgc3RhdGljIGludCB1bml4X3NvY2tldHBhaXIoc3RydWN0IHNvY2tldCAqc29ja2EsIHN0 cnVjdCBzb2NrZXQgKnNvY2tiKQ0KIAlyZXR1cm4gMDsNCiB9DQogDQorc3RhdGljIHZvaWQgdW5p eF9zb2NrX2luaGVyaXRfZmxhZ3MoY29uc3Qgc3RydWN0IHNvY2tldCAqb2xkLA0KKwkJCQkgICAg c3RydWN0IHNvY2tldCAqbmV3KQ0KK3sNCisJaWYgKHRlc3RfYml0KFNPQ0tfUEFTU0NSRUQsICZv bGQtPmZsYWdzKSkNCisJCXNldF9iaXQoU09DS19QQVNTQ1JFRCwgJm5ldy0+ZmxhZ3MpOw0KKwlp ZiAodGVzdF9iaXQoU09DS19QQVNTU0VDLCAmb2xkLT5mbGFncykpDQorCQlzZXRfYml0KFNPQ0tf UEFTU1NFQywgJm5ldy0+ZmxhZ3MpOw0KK30NCisNCiBzdGF0aWMgaW50IHVuaXhfYWNjZXB0KHN0 cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2ssIGludCBmbGFncykNCiB7 DQogCXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrOw0KQEAgLTEyNzAsNiArMTI3OSw3IEBAIHN0 YXRpYyBpbnQgdW5peF9hY2NlcHQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAq bmV3c29jaywgaW50IGZsYWdzKQ0KIAkvKiBhdHRhY2ggYWNjZXB0ZWQgc29jayB0byBzb2NrZXQg Ki8NCiAJdW5peF9zdGF0ZV9sb2NrKHRzayk7DQogCW5ld3NvY2stPnN0YXRlID0gU1NfQ09OTkVD VEVEOw0KKwl1bml4X3NvY2tfaW5oZXJpdF9mbGFncyhzb2NrLCBuZXdzb2NrKTsNCiAJc29ja19n cmFmdCh0c2ssIG5ld3NvY2spOw0KIAl1bml4X3N0YXRlX3VubG9jayh0c2spOw0KIAlyZXR1cm4g MDsNCmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvcmFkaW90YXAuYyBiL25ldC93aXJlbGVzcy9y YWRpb3RhcC5jDQppbmRleCBjNGFkNzk1Li42MTdhMzEwIDEwMDY0NA0KLS0tIGEvbmV0L3dpcmVs ZXNzL3JhZGlvdGFwLmMNCisrKyBiL25ldC93aXJlbGVzcy9yYWRpb3RhcC5jDQpAQCAtOTUsNiAr OTUsMTAgQEAgaW50IGllZWU4MDIxMV9yYWRpb3RhcF9pdGVyYXRvcl9pbml0KA0KIAlzdHJ1Y3Qg aWVlZTgwMjExX3JhZGlvdGFwX2hlYWRlciAqcmFkaW90YXBfaGVhZGVyLA0KIAlpbnQgbWF4X2xl bmd0aCwgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9yYWRpb3RhcF92ZW5kb3JfbmFtZXNwYWNlcyAq dm5zKQ0KIHsNCisJLyogY2hlY2sgdGhlIHJhZGlvdGFwIGhlYWRlciBjYW4gYWN0dWFsbHkgYmUg cHJlc2VudCAqLw0KKwlpZiAobWF4X2xlbmd0aCA8IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Jh ZGlvdGFwX2hlYWRlcikpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCiAJLyogTGludXggb25seSBz dXBwb3J0cyB2ZXJzaW9uIDAgcmFkaW90YXAgZm9ybWF0ICovDQogCWlmIChyYWRpb3RhcF9oZWFk ZXItPml0X3ZlcnNpb24pDQogCQlyZXR1cm4gLUVJTlZBTDsNCkBAIC0xMjksNyArMTMzLDggQEAg aW50IGllZWU4MDIxMV9yYWRpb3RhcF9pdGVyYXRvcl9pbml0KA0KIAkJCSAqLw0KIA0KIAkJCWlm ICgodW5zaWduZWQgbG9uZylpdGVyYXRvci0+X2FyZyAtDQotCQkJICAgICh1bnNpZ25lZCBsb25n KWl0ZXJhdG9yLT5fcnRoZWFkZXIgPg0KKwkJCSAgICAodW5zaWduZWQgbG9uZylpdGVyYXRvci0+ X3J0aGVhZGVyICsNCisJCQkgICAgc2l6ZW9mKHVpbnQzMl90KSA+DQogCQkJICAgICh1bnNpZ25l ZCBsb25nKWl0ZXJhdG9yLT5fbWF4X2xlbmd0aCkNCiAJCQkJcmV0dXJuIC1FSU5WQUw7DQogCQl9 DQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMgYi9zb3VuZC9wY2kv aGRhL3BhdGNoX3JlYWx0ZWsuYw0KaW5kZXggMWI0M2ZkZS4uYmVhYzMxNiAxMDA2NDQNCi0tLSBh L3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jDQorKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNo X3JlYWx0ZWsuYw0KQEAgLTU3OTgsNiArNTc5OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25k X3BjaV9xdWlyayBhbGM2NjJfZml4dXBfdGJsW10gPSB7DQogCVNORF9QQ0lfUVVJUksoMHgxMDI1 LCAweDAzMWMsICJHYXRld2F5IE5WNzkiLCBBTEM2NjJfRklYVVBfU0tVX0lHTk9SRSksDQogCVNO RF9QQ0lfUVVJUksoMHgxMDI1LCAweDAzOGIsICJBY2VyIEFzcGlyZSA4OTQzRyIsIEFMQzY2Ml9G SVhVUF9BU1BJUkUpLA0KIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgxNjMyLCAiSFAgUlA1ODAw IiwgQUxDNjYyX0ZJWFVQX0hQX1JQNTgwMCksDQorCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDE0 NzcsICJBU1VTIE41NlZaIiwgQUxDNjYyX0ZJWFVQX0FTVVNfTU9ERTQpLA0KIAlTTkRfUENJX1FV SVJLKDB4MTA0MywgMHg4NDY5LCAiQVNVUyBtb2JvIiwgQUxDNjYyX0ZJWFVQX05PX0pBQ0tfREVU RUNUKSwNCiAJU05EX1BDSV9RVUlSSygweDEwNWIsIDB4MGNkNiwgIkZveGNvbm4iLCBBTEM2NjJf RklYVVBfQVNVU19NT0RFMiksDQogCVNORF9QQ0lfUVVJUksoMHgxNDRkLCAweGMwNTEsICJTYW1z dW5nIFI3MjAiLCBBTEM2NjJfRklYVVBfSURFQVBBRCksDQpkaWZmIC0tZ2l0IGEvc291bmQvdXNi L3VzeDJ5L3VzYnVzeDJ5YXVkaW8uYyBiL3NvdW5kL3VzYi91c3gyeS91c2J1c3gyeWF1ZGlvLmMN CmluZGV4IGQ1NzI0ZDguLjEyMjY2MzEgMTAwNjQ0DQotLS0gYS9zb3VuZC91c2IvdXN4MnkvdXNi dXN4MnlhdWRpby5jDQorKysgYi9zb3VuZC91c2IvdXN4MnkvdXNidXN4MnlhdWRpby5jDQpAQCAt Mjk5LDE5ICsyOTksNiBAQCBzdGF0aWMgdm9pZCB1c1gyWV9lcnJvcl91cmJfc3RhdHVzKHN0cnVj dCB1c1gyWWRldiAqdXNYMlksDQogCXVzWDJZX2NsaWVudHNfc3RvcCh1c1gyWSk7DQogfQ0KIA0K LXN0YXRpYyB2b2lkIHVzWDJZX2Vycm9yX3NlcXVlbmNlKHN0cnVjdCB1c1gyWWRldiAqdXNYMlks DQotCQkJCSBzdHJ1Y3Qgc25kX3VzWDJZX3N1YnN0cmVhbSAqc3Vicywgc3RydWN0IHVyYiAqdXJi KQ0KLXsNCi0Jc25kX3ByaW50ayhLRVJOX0VSUg0KLSJTZXF1ZW5jZSBFcnJvciEoaGNkX2ZyYW1l PSVpIGVwPSVpJXM7d2FpdD0laSxmcmFtZT0laSkuXG4iDQotIk1vc3QgcHJvcGFibHkgc29tZSB1 cmIgb2YgdXNiLWZyYW1lICVpIGlzIHN0aWxsIG1pc3NpbmcuXG4iDQotIkNhdXNlIGNvdWxkIGJl IHRvbyBsb25nIGRlbGF5cyBpbiB1c2ItaGNkIGludGVycnVwdCBoYW5kbGluZy5cbiIsDQotCQkg ICB1c2JfZ2V0X2N1cnJlbnRfZnJhbWVfbnVtYmVyKHVzWDJZLT5kZXYpLA0KLQkJICAgc3Vicy0+ ZW5kcG9pbnQsIHVzYl9waXBlaW4odXJiLT5waXBlKSA/ICJpbiIgOiAib3V0IiwNCi0JCSAgIHVz WDJZLT53YWl0X2lzb19mcmFtZSwgdXJiLT5zdGFydF9mcmFtZSwgdXNYMlktPndhaXRfaXNvX2Zy YW1lKTsNCi0JdXNYMllfY2xpZW50c19zdG9wKHVzWDJZKTsNCi19DQotDQogc3RhdGljIHZvaWQg aV91c1gyWV91cmJfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKQ0KIHsNCiAJc3RydWN0IHNuZF91 c1gyWV9zdWJzdHJlYW0gKnN1YnMgPSB1cmItPmNvbnRleHQ7DQpAQCAtMzI4LDEyICszMTUsOSBA QCBzdGF0aWMgdm9pZCBpX3VzWDJZX3VyYl9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpDQogCQl1 c1gyWV9lcnJvcl91cmJfc3RhdHVzKHVzWDJZLCBzdWJzLCB1cmIpOw0KIAkJcmV0dXJuOw0KIAl9 DQotCWlmIChsaWtlbHkoKHVyYi0+c3RhcnRfZnJhbWUgJiAweEZGRkYpID09ICh1c1gyWS0+d2Fp dF9pc29fZnJhbWUgJiAweEZGRkYpKSkNCi0JCXN1YnMtPmNvbXBsZXRlZF91cmIgPSB1cmI7DQot CWVsc2Ugew0KLQkJdXNYMllfZXJyb3Jfc2VxdWVuY2UodXNYMlksIHN1YnMsIHVyYik7DQotCQly ZXR1cm47DQotCX0NCisNCisJc3Vicy0+Y29tcGxldGVkX3VyYiA9IHVyYjsNCisNCiAJew0KIAkJ c3RydWN0IHNuZF91c1gyWV9zdWJzdHJlYW0gKmNhcHN1YnMgPSB1c1gyWS0+c3Vic1tTTkRSVl9Q Q01fU1RSRUFNX0NBUFRVUkVdLA0KIAkJCSpwbGF5YmFja3N1YnMgPSB1c1gyWS0+c3Vic1tTTkRS Vl9QQ01fU1RSRUFNX1BMQVlCQUNLXTsNCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvdXN4MnkvdXN4 Mnlod2RlcHBjbS5jIGIvc291bmQvdXNiL3VzeDJ5L3VzeDJ5aHdkZXBwY20uYw0KaW5kZXggYTUx MzQwZi4uODNhOGI4ZCAxMDA2NDQNCi0tLSBhL3NvdW5kL3VzYi91c3gyeS91c3gyeWh3ZGVwcGNt LmMNCisrKyBiL3NvdW5kL3VzYi91c3gyeS91c3gyeWh3ZGVwcGNtLmMNCkBAIC0yNDQsMTMgKzI0 NCw4IEBAIHN0YXRpYyB2b2lkIGlfdXNYMllfdXNicGNtX3VyYl9jb21wbGV0ZShzdHJ1Y3QgdXJi ICp1cmIpDQogCQl1c1gyWV9lcnJvcl91cmJfc3RhdHVzKHVzWDJZLCBzdWJzLCB1cmIpOw0KIAkJ cmV0dXJuOw0KIAl9DQotCWlmIChsaWtlbHkoKHVyYi0+c3RhcnRfZnJhbWUgJiAweEZGRkYpID09 ICh1c1gyWS0+d2FpdF9pc29fZnJhbWUgJiAweEZGRkYpKSkNCi0JCXN1YnMtPmNvbXBsZXRlZF91 cmIgPSB1cmI7DQotCWVsc2Ugew0KLQkJdXNYMllfZXJyb3Jfc2VxdWVuY2UodXNYMlksIHN1YnMs IHVyYik7DQotCQlyZXR1cm47DQotCX0NCiANCisJc3Vicy0+Y29tcGxldGVkX3VyYiA9IHVyYjsN CiAJY2Fwc3VicyA9IHVzWDJZLT5zdWJzW1NORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRV07DQogCWNh cHN1YnMyID0gdXNYMlktPnN1YnNbU05EUlZfUENNX1NUUkVBTV9DQVBUVVJFICsgMl07DQogCXBs YXliYWNrc3VicyA9IHVzWDJZLT5zdWJzW1NORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0tdOw0KZGlm ZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1zY2hlZC5jIGIvdG9vbHMvcGVyZi9idWlsdGlu LXNjaGVkLmMNCmluZGV4IDUxNzc5NjQuLjcxNGZjMzUgMTAwNjQ0DQotLS0gYS90b29scy9wZXJm L2J1aWx0aW4tc2NoZWQuYw0KKysrIGIvdG9vbHMvcGVyZi9idWlsdGluLXNjaGVkLmMNCkBAIC0x NCw2ICsxNCw3IEBADQogI2luY2x1ZGUgInV0aWwvZGVidWcuaCINCiANCiAjaW5jbHVkZSA8c3lz L3ByY3RsLmg+DQorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPg0KIA0KICNpbmNsdWRlIDxzZW1h cGhvcmUuaD4NCiAjaW5jbHVkZSA8cHRocmVhZC5oPg0K --=-7mg8BlENhhxukZ5qCcHZ-- --=-ry1FVcYTM2+QoIrO3jxV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.15 (GNU/Linux) iQIVAwUAUpYFcOe/yOyVhhEJAQo05w/+Nn/s1gFEOW8l+9Df6D2EzU8f7ELCa9lM O7Xphl8r2iBgOxXNPjG4sCv5Ted7uWhaMTumDDmyfxOesWGt0E0Wne8/1rRZ0kdB Kbhw/dzZ0IhDnXTxDIo6c+PQILgOqhKimD7YTS2U9A6Ug3CsQalBgBOcvMv0vXuY zSkV8/WJC68VGprUH6wV1tscWCBENAc6/hen+vwmWpPrAfmys4cdg/K5+X8HFTha FntVKruXwWtja6BtHxSlEdzNYj3Ny8v5C0KxM62vNskAz4KUr6WdRCNqhJ3epGL9 QA68O04W0gs4FZm8dHSYtfNIwWzpSI3+Hwz9GkCZJkmFBgb99ALFW4VuI31JQjcr qWnl813kPvvAenF/IQbA1IIRa6/tKrbcYIx5iQ2XFALJSmN4sLN4WQ03Mg4TCETI 9MYnDyUoSMkzMhv0zf5yWFx9p6eeXbiMXJTEdGv+ttSwId7KhSsYaQGMoV7ksXaq fnKLe5bo9s7i8wzMQaqliswVfGvXsQz/4yBozhtYu7LzwFT8B7AjFrgVlJAx5vg/ an4EvXwjnJJif9txy0K/F9ng5yV/7TQkD0OGPf41+eS3xXFsJv5ZH+bPZRqUYZNI VfGYMnD1oAsaTvO0fsvV/rH50fxidKygXFy/cssTyzthNgG7N2oMdsj/Wn+RJ1iF ebZzhjHGg6c= =l5cL -----END PGP SIGNATURE----- --=-ry1FVcYTM2+QoIrO3jxV--