[5073] in arla-drinkers

home help back first fref pref prev next nref lref last post

Re: PATCH: Arla 0.90 on Linux 2.6.3x to 4.4

daemon@ATHENA.MIT.EDU (Bo Branten)
Sun Feb 14 09:14:01 2016

From arla-drinkers-bounces@stacken.kth.se Sun Feb 14 14:14:01 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 838 invoked from network); 14 Feb 2016 14:14:01 -0000
Received: from mx7.kth.se (130.237.48.48)
  by charon.mit.edu with SMTP; 14 Feb 2016 14:14:01 -0000
Received: from mx7.kth.se (localhost [127.0.0.1])
	by mx7.kth.se (Postfix) with ESMTP id EA69E140081;
	Sun, 14 Feb 2016 15:13:59 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx7.kth.se ([127.0.0.1])
	by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id A5T-hbRqp3ly; Sun, 14 Feb 2016 15:13:44 +0100 (CET)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
	by mx7.kth.se (Postfix) with ESMTP;
	Sun, 14 Feb 2016 15:13:44 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id 4A8B314CB00;
	Sun, 14 Feb 2016 15:13:44 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id 8C1DF14CA3F; Sun, 14 Feb 2016 15:13:42 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx7.kth.se (mx7.kth.se [130.237.48.48])
 by vingummi.stacken.kth.se (Postfix) with ESMTPS id 863F613F6C4
 for <arla-drinkers@stacken.kth.se>; Sun, 14 Feb 2016 15:13:42 +0100 (CET)
Received: from mx7.kth.se (localhost [127.0.0.1])
 by mx7.kth.se (Postfix) with ESMTP id 7C4EE140081
 for <arla-drinkers@stacken.kth.se>; Sun, 14 Feb 2016 15:13:42 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: Windows NT kernel; dist: 9; link: Ethernet or modem; 
 params: generic fuzzy; raw_mtu: 1500; raw_sig:
 6:55+9:0:1440:mss*45,0:mss,nop,ws,nop,nop,sok::0,
 [2001:6b0:e:2018::156]:44309
Received: from mx7.kth.se ([127.0.0.1])
 by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id uKUTe_sgflCT for <arla-drinkers@stacken.kth.se>;
 Sun, 14 Feb 2016 15:13:39 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
 by mx7.kth.se (Postfix) with ESMTPS
 for <arla-drinkers@stacken.kth.se>; Sun, 14 Feb 2016 15:13:39 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id 850F5663
 for <arla-drinkers@stacken.kth.se>; Sun, 14 Feb 2016 15:13:39 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [130.239.18.162])
 by mail.acc.umu.se (Postfix) with ESMTP id E7A0B660
 for <arla-drinkers@stacken.kth.se>; Sun, 14 Feb 2016 15:13:31 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id E1B3644B8C; Sun, 14 Feb 2016 15:13:31 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id DC04444B8B
 for <arla-drinkers@stacken.kth.se>; Sun, 14 Feb 2016 15:13:31 +0100 (CET)
Date: Sun, 14 Feb 2016 15:13:31 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH: Arla 0.90 on Linux 2.6.3x to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1602141507420.21655@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
 <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
 BOUNDARY="-276651502-885096632-1455459211=:21655"
X-BeenThere: arla-drinkers@stacken.kth.se
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Arla discussions <arla-drinkers.stacken.kth.se>
List-Unsubscribe: <https://lists.stacken.kth.se/mailman/options/arla-drinkers>, 
 <mailto:arla-drinkers-request@stacken.kth.se?subject=unsubscribe>
List-Archive: <http://lists.stacken.kth.se/pipermail/arla-drinkers/>
List-Post: <mailto:arla-drinkers@stacken.kth.se>
List-Help: <mailto:arla-drinkers-request@stacken.kth.se?subject=help>
List-Subscribe: <https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers>, 
 <mailto:arla-drinkers-request@stacken.kth.se?subject=subscribe>
Errors-To: arla-drinkers-bounces@stacken.kth.se
Sender: "Arla-drinkers" <arla-drinkers-bounces@stacken.kth.se>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---276651502-885096632-1455459211=:21655
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH: Arla 0.90 on Linux 2.6.3x to 4.4

Small correction in nnpfs_statfs_int()

Bo Branten

---276651502-885096632-1455459211=:21655
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v8-arla-0.90-for-linux-2.6.32-to-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1602141513310.21655@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v8-arla-0.90-for-linux-2.6.32-to-4.4

ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzoz
MC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAw
MDAwMDAgKzAxMDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBm
c19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50
MzJfdAkJeGFfdHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAg
dWludDMyX3QJCXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisj
ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90
CQl4YV9naWQ7DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisg
ICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAg
ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp
bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEw
LTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQg
MTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAv
Kg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVu
aXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2Nr
aG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHks
IFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4N
CiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tz
LmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisv
KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6
MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAg
IDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2RlZmluZSBOTlBGU19O
T19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5v
IGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEgg
ICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9E
SVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNI
RV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUg
Tk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAyeCINCisjZGVmaW5l
IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5O
UEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVm
aW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVf
RElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNk
ZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0la
RSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNz
YWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVz
c2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0IDE4OjMzOjMyLjAwMDAwMDAw
MCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAg
Ki8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjEgMjAwNi8x
MC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX21l
c3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAyMDoyMDo1NSB0b2wgRXhwICQg
Ki8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAjZGVmaW5lIF94bXNnX2gNCkBA
IC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVpbnQxNl90IG5ucGZzX3JpZ2h0
czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYgcGFnID09IDAsIHVzZSB1aWQg
DQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfY3JlZCB7DQorI2lmbmRl
ZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90IHVpZDsNCisjZWxzZQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNlDQorICAgIHVpbnQzMl90IHVp
ZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgbm5wZnNfcGFnX3QgcGFnOw0K
IH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYsNyArMTE0LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxlIHsNCiANCiAvKiBubnBmc19u
b2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFncw0KLSAqIFRoZSB1cHBlciAx
NiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZvciBvcGVydGluZyBzeXN0ZW0g
ZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50DQogICogZmxh
Z3MuDQogICovDQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAw
MDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw
MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy
MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6
IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs
YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291
cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv
bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu
ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0
OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog
ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv
cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj
YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh
Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K
KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl
bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN
CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO
IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5w
ZnNfbG9jbC5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19s
b2NsLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25u
cGZzX2xvY2wuaAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgJMjAxNi0wMS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0z
NCw3ICszNCw3IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog
JElkOiBubnBmc19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkg
dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIw
MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhB
VkVfQ09ORklHX0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyAr
NTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog
I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSAr
MTQwLDE2IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5u
cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl
dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq
bW50KTsNCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNf
Z2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0J
ICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAq
ZGF0YSk7DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0K
ICNlbmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMg
bm5wZnNfZGVudHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTgpDQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19z
cGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0
X2Zvcl9lYWNoDQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9z
eXNjYWxsX2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBu
bnBmc19kZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2Vu
dHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisj
ZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5o
YXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAg
ICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAu
OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEy
LTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0
MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVy
biB1aW50MzJfdCBubnBmc19ibG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0K
ICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAg
ICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisj
ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp
cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8g
Ki8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhO
X0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0
OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTI4IDE3OjQ0OjM2LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEANCiAgKiBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX2Jsb2Nr
cy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6MjQgdG9sIEV4cCAkICovDQor
LyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuNiAyMDEwLzA4LzA4IDIwOjQz
OjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19s
b2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2ZzLmg+DQpAQCAtNDMs
NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j
bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w
YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq
LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg
cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm
IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA
QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog
ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN
CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg
ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu
b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg
ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t
dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM
KTsNCkBAIC0zMTgsOSArMzI5LDE4IEBAIG5ucGZzX2Jsb2NrX29wZW4oc3Ry
dWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgc3RydWN0IG5ucGZzICpubnBm
c3AgPSBOTlBGU19GUk9NX1hOT0RFKG5vZGUpOw0KICAgICBzdHJ1Y3QgaW5v
ZGUgKmlub2RlID0gWE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBm
bGFncyA9IE9fTEFSR0VGSUxFIHwgZmxhZzsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3Qg
bmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOSkNCiAgICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lk
X3Qgc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3JlZCAq
b2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0K
KyNlbmRpZg0KICAgICBpbnQgcmV0Ow0KIA0KICAgICBCVUdfT04oIW5ucGZz
cCk7DQpAQCAtMzQ2LDIxICszNjYsMzYgQEAgbm5wZnNfYmxvY2tfb3Blbihz
dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+
Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAg
IC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2
ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9
IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+
Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+Y2FjaGVk
aXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNoZXJvb3Qp
Ow0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAgIG5kLmRl
cHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0gICAgaWYg
KGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBfUEFSRU5U
Ow0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFtZSwgJm5k
KTsNCisjZWxzZQ0KKyAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9jcmVk
cygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KKyAgICAg
ICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzdWlk
ID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzZ2lkID0g
bm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMo
b3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KKyAgICByZXQgPSB2
ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNo
ZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JF
QVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg
bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm
bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu
ZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAo
bm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBj
YWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFS
RU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYNCiAgICAgaWYgKHJl
dCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsN
CiAJdWludDMyX3QgbWFzazsNCkBAIC0zODcsMTcgKzQyMiwzOSBAQCBubnBm
c19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0K
ICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJp
dHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQorCS8qIFhYWCB2ZXJpZnkgdGhhdCBjYWNoZW5hbWUgaXMgdGhl
IGNvcnJlY3QgcGF0aCBzdHJpbmcgdG8gdXNlIGhlcmUgKi8NCisJc3RydWN0
IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwg
Y2FjaGVuYW1lLCAmbmQucGF0aCwgMCk7CQ0KKyNlbHNlDQorCS8qIFhYWCB2
ZXJpZnkgdGhhdCBjYWNoZW5hbWUgaXMgdGhlIGNvcnJlY3QgcGF0aCBzdHJp
bmcgdG8gdXNlIGhlcmUgKi8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0g
a2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgY2FjaGVuYW1lLCAmcGF0aCwg
MCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsNCiAJICAg
IHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCi0JICAgIHJl
dCA9IHZmc19jcmVhdGUobmQuZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNf
SVJVU1J8U19JV1VTUiwgJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorCSAgICByZXQgPSB2ZnNfY3Jl
YXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8
U19JV1VTUiwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICAvKiBYWFggc2hvdWxkIHRo
ZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19jcmVhdGU6IGJvb2wgd2FudF9leGNs
LCBiZSAwIG9yIDE/ICovDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBh
dGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwg
MCk7DQorI2Vsc2UNCisJICAgIC8qIFhYWCBzaG91bGQgdGhlIGxhc3QgYXJn
dW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3Ig
MT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRf
aW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYN
CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogCSAgICBkcHV0KGRlbnRyeSk7DQorCSAgICBtdXRleF91bmxv
Y2soJm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCisJICAg
IHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICBkb25lX3BhdGhf
Y3JlYXRlKCZuZC5wYXRoLCBkZW50cnkpOw0KKyNlbHNlDQorCSAgICBkb25l
X3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50cnkpOw0KKyNlbmRpZg0KIAl9DQog
DQotCW11dGV4X3VubG9jaygmbmQuZGVudHJ5LT5kX2lub2RlLT5pX211dGV4
KTsNCi0JcGF0aF9yZWxlYXNlKCZuZCk7DQotDQogCWlmIChyZXQpIHsNCiAJ
ICAgIHByaW50aygibm5wZnNfYmxvY2tfb3BlbiglcykgY3JlYXRlIGZhaWxl
ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1
Z19vb3BzKCk7DQpAQCAtNDEwLDEyICs0NjcsMjQgQEAgbm5wZnNfYmxvY2tf
b3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIAkgICAgcmV0ID0gbm5w
ZnNfYmxvY2tfZXh0ZW5kKG5vZGUsIG9mZnNldCk7DQogCX0NCiAgICAgfSBl
bHNlIHsNCi0Jc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5kZW50
cnksIG5kLm1udCwgZmxhZ3MpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQorCXN0cnVjdCBmaWxlICpmID0g
ZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBmbGFn
cyk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v
cGVuKG5kLnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJl
bnRfY3JlZCgpKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9
IGRlbnRyeV9vcGVuKCZuZC5wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkp
Ow0KKyNlbHNlDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v
cGVuKCZwYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbmRpZg0K
IAlpZiAoSVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0K
IAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxl
ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1
Z19vb3BzKCk7DQotCSAgICBwYXRoX3JlbGVhc2UoJm5kKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkg
ICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBwYXRoX3B1
dCgmcGF0aCk7DQorI2VuZGlmDQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9
IGY7DQogCX0NCkBAIC00MjQsOCArNDkzLDEzIEBAIG5ucGZzX2Jsb2NrX29w
ZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgLyogcGF0aF9yZWxl
YXNlKCkgaXMgdXN1YWxseSBoYW5kbGVkIG9uIGNsb3NlICovDQogDQogIG91
dDoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDI5KQ0KICAgICBjdXJyZW50LT5mc3VpZCA9IHNhdmV1aWQ7DQogICAg
IGN1cnJlbnQtPmZzZ2lkID0gc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICByZXZl
cnRfY3JlZHMob2xkX2NyZWQpOw0KKyAgICBwdXRfY3JlZChvdmVycmlkZV9j
cmVkKTsNCisjZW5kaWYNCiANCiAgICAgcmV0dXJuIHJldDsNCiB9DQpkaWZm
IC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5w
ZnNfY29tbW9uLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2NvbW1v
bi5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21t
b24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0KKysr
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDE2LTAx
LTE0IDE2OjE1OjAwLjAwMDAwMDAwMCArMDEwMA0KQEAgLTExMiwxMCArMTEy
LDE1IEBAIG5ucGZzX3ByaW50X2FsaWFzZXMoY29uc3Qgc3RydWN0IGlub2Rl
ICoNCiB2b2lkDQogbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0
cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICph
bGlhczsNCisjZW5kaWYNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0K
ICAgICBpbnQgYmFpbG91dCA9IDEwMDsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0g
aW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAm
aW5vZGUtPmlfZGVudHJ5KSB7DQogCWlmICgtLWJhaWxvdXQgPCAwKSB7DQpA
QCAtMTMxLDYgKzEzNiwyNiBAQCBubnBmc19wcmludF9hbGlhc2VzX3JlYWwo
Y29uc3Qgc3RydWN0IGluDQogCX0NCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsN
CiAgICAgfQ0KKyNlbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRy
eShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZp
bm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlz
dF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRf
dS5kX2FsaWFzKSB7DQorI2VuZGlmDQorCWlmICgtLWJhaWxvdXQgPCAwKSB7
DQorCSAgICBwcmludGsoIiAuLi4iKTsNCisJICAgIGJyZWFrOw0KKwl9DQor
CWlmIChkZW50cnkpIHsNCisJICAgIHByaW50aygiICUuKnMoJXApIiwgKGlu
dClkZW50cnktPmRfbmFtZS5sZW4sDQorCQkgICBkZW50cnktPmRfbmFtZS5u
YW1lLCBkZW50cnkpOw0KKwkgICAgaWYgKG5ucGZzX2RfZW50cnlfdW5oYXNo
ZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJCXByaW50aygiKHVuaGFzaGVkKSIp
Ow0KKwl9DQorICAgIH0NCisjZW5kaWYNCiAgICAgcHJpbnRrKCJcbiIpOw0K
IH0NCiANCkBAIC0xNDYsNyArMTcxLDExIEBAIG5ucGZzX3ByaW50X2NoaWxk
cmVuKGNvbnN0IHN0cnVjdCBkZW50cnkNCiANCiAgICAgd2hpbGUgKHN1YmRp
cnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCXN0cnVjdCBsaXN0X2hl
YWQgKnRtcCA9IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqY2hp
bGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hp
bGQpOw0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9l
bnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0K
IA0KIAlwcmludGsoIiAlLipzKCVwKSIsIChpbnQpY2hpbGQtPmRfbmFtZS5s
ZW4sDQogCSAgICAgICBjaGlsZC0+ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRp
ZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9u
bnBmc19kZXYuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMN
Ci0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIw
MDYtMTAtMjQgMTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6
MTkuMDAwMDAwMDAwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZz
X2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMNCiAgICAgTk5Q
RlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRp
bmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihubnBmcy0+c2Ip
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZzLT5zYik7DQor
I2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJmcmVl
X2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAgLTM3NCw3ICsz
NzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2RlICogaW5vZGUs
IHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAq
cHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+
Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBubnBm
c19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0g
Jm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAq
Zmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5
LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmls
ZSwgY29uc3QgDQogDQogICAgIE5OUEZTREVCKFhERUJERVYsICgibm5wZnNf
ZGV2d3JpdGVcbiIpKTsNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgZGV2ID0gZmlsZS0+
Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCi0gICAgbm5wZnNwID0gJm5u
cGZzW01JTk9SKGRldildOw0KKyNlbHNlDQorICAgIGRldiA9IGZpbGUtPmZf
cGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5kaWYNCisgICAg
IG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiANCiAgICAgZG93bigm
bm5wZnNwLT5jaGFubmVsX3NlbSk7DQogICAgIGlmIChubnBmc3AtPnN0YXR1
cyAmIE5OUEZTX0RFVldSSVRFKSB7DQpAQCAtNTA1LDE5ICs1MTUsMzcgQEAg
bm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IA0KIC8q
DQogICogTm90IHVzZWQuDQogICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5w
ZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUg
KmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs
b25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfdW5sb2Nr
ZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAgICAgICB1bnNp
Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZW5kaWYNCiB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzNikNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0
bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+
aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBOTlBGU0RF
QihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9
ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAgICBOTlBGU0RF
QihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9
ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5v
ZGUtPmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbmRpZg0KICAgICBy
ZXR1cm4gLUVJTlZBTDsNCiB9DQogDQogc3RhdGljIHVuc2lnbmVkIGludA0K
IG5ucGZzX2RldnBvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUg
KndhaXQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUt
PmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5w
ZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+
aV9yZGV2Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9
ICZubnBmc1tNSU5PUihkZXYpXTsNCiAgICAgaW50IHJldCA9IDA7DQogICAg
IA0KQEAgLTk1Myw3ICs5ODEsMTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9u
cyBubnBmc19mb3BzID0gew0KICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwN
CiAgICAgd3JpdGU6CQlubnBmc19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5u
cGZzX2RldnBvbGwsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzNikNCiAgICAgaW9jdGw6CQlubnBmc19kZXZpb2N0
bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tlZF9pb2N0bDoJbm5wZnNfdW5sb2Nr
ZWRfZGV2aW9jdGwsDQorI2VuZGlmDQogICAgIHJlbGVhc2U6CQlubnBmc19k
ZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5ucGZzX2Rldm9wZW4sDQogfTsNCkBA
IC05NjgsOCArMTAwMCwxMyBAQCBubnBmc19pbml0X2RldmljZSh2b2lkKQ0K
IAlpbml0X3dhaXRxdWV1ZV9oZWFkKCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkp
Ow0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBm
c19pbml0cSgmbm5wZnNbaV0uc2xlZXBxKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KIAlpbml0X01VVEVY
KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0pOw0KIAlpbml0X01VVEVYKCZubnBm
c1tpXS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9pbml0KCZubnBm
c1tpXS5pbmFjdGl2ZV9zZW0sIDEpOw0KKwlzZW1hX2luaXQoJm5ucGZzW2ld
LmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQo
Jm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tpXS5ubm9kZXMg
PSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLTAuOTAvbm5w
ZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtMC45MC1vbGQv
bm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1
OjI2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19pbm9kZW9wcy5jCTIwMTYtMDEtMjggMTI6MTk6MDUuMDAwMDAw
MDAwICswMTAwDQpAQCAtNDAsMjUgKzQwLDQxIEBADQogI2luY2x1ZGUgPG5u
cGZzL25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kaXJl
bnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisj
aW5jbHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZt
dHMuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KICNpbmNsdWRlIDxs
aW51eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3Mu
aD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDQsMSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8uaD4NCisjZW5kaWYNCiAj
aW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGFzbS9m
Y250bC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZz
X2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2LzEyLzExIDE2OjM1OjI2IHRvbCBF
eHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIy
NiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0K
IA0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUg
KmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5w
ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0
IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25u
cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln
bmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitp
bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0K
KyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMg
dm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
Ow0KQEAgLTEwNSw3ICsxMjEsNyBAQCBubnBmc192bWFfY2xvc2UgKHN0cnVj
dCB2bV9hcmVhX3N0cnVjdCAqDQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3Qgdm1f
b3BlcmF0aW9uc19zdHJ1Y3Qgbm5wZnNfZmlsZV92bV9vcHMgPSB7DQotICAg
IC5ub3BhZ2UJPSBmaWxlbWFwX25vcGFnZSwNCisgICAgLmZhdWx0ICAgICAg
PSBmaWxlbWFwX2ZhdWx0LA0KICAgICAuY2xvc2UJPSBubnBmc192bWFfY2xv
c2UsDQogfTsNCiANCkBAIC0xMzQsMTIgKzE1MCwxNCBAQCBubnBmc19wcmlu
dF9wYXRoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiAgKg0KICAqLw0KIA0K
KyNpZiAwDQogdm9pZA0KIG5ucGZzX3ByaW50X2xvY2soY2hhciAqcywgc3Ry
dWN0IHNlbWFwaG9yZSAqc2VtKQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQkxP
Q0ssICgibG9jazogJXMgc2VtOiAlcCBjb3VudDogJWRcbiIsDQogCQkgICAg
ICBzLCBzZW0sIChpbnQpYXRvbWljX3JlYWQoJnNlbS0+Y291bnQpKSk7DQog
fQ0KKyNlbmRpZg0KIA0KIC8qDQogICoNCkBAIC0xODUsNyArMjAzLDcgQEAg
bm5wZnNfZF9pcHV0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydQ0KICAg
ICBOTlBGU0RFQihYREVCVk5PUFMsDQogCSAgICAgKCJubnBmc19kX2lwdXQ6
IGRlbnRyeSAlcCwgaW5vZGUgJXBcbiIsIGRlbnRyeSwgaW5vZGUpKTsNCiAg
ICAgDQotICAgIGlmIChub2RlLT5mbGFncyAmIE5OUEZTX05PREVfSVBVVCkg
LyogWFhYIGxvY2tpbmcgKi8NCisgICAgaWYgKG5vZGUtPmZsYWdzICYgTk5Q
RlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2luZy4gbmV2ZXIgc2V0PyAqLw0K
IAlubnBmc19pcmVsZShpbm9kZSk7DQogICAgIGVsc2UNCiAJaXB1dChpbm9k
ZSk7DQpAQCAtMjEyLDggKzIzMCwxMyBAQCBubnBmc19pbm9kZV92YWxpZChz
dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIG5ucGZzX2xvb2t1cCBub3cgcmV0
dXJucyBhIGRlbnRyeS4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHN0cnVjdCBk
ZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQor
I2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQorbm5wZnNfbG9va3Vw
IChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1
bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9nZXRub2RlIG1zZzsNCiAgICAgc3RydWN0IG5ucGZz
ICpubnBmc3A7DQpAQCAtMjQwLDcgKzI2MywxMSBAQCBubnBmc19sb29rdXAg
KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgDQogDQogCW1zZy5oZWFkZXIu
b3Bjb2RlID0gTk5QRlNfTVNHX0dFVE5PREU7DQogICAgICAgICANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
CiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
ICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
IAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5wYXJl
bnRfaGFuZGxlID0gZC0+aGFuZGxlOw0KICAgICAgICAgDQpAQCAtMzEwLDcg
KzMzNywxMSBAQCBubnBmc19vcGVuX3ZhbGlkKHN0cnVjdCBpbm9kZSAqdnAs
IHVfaW50DQogICAgICAgew0KIAlzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9vcGVu
IG1zZzsNCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfT1BFTjsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNl
bmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1z
Zy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAltc2cudG9rZW5zID0gdG9rOw0K
QEAgLTM5Nyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qg
bm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19p
bnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpDQogew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls
ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3Ry
dWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RFKGlub2RlKTsN
CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUo
aW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXplX3JlYWQoaW5vZGUp
Ow0KQEAgLTQyNSw3ICs0NjAsMTEgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVj
dCBmaWxlICpmaWxlLCB1X2ludA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19QVVREQVRBOw0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19n
ZXRfcGFnKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp
ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91
aWQoKTsNCisjZW5kaWYNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog
CW1zZy5mbGFnICAgPSBmbGFnOw0KIAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAg
LTQ2MCwxNCArNDk5LDI3IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls
ZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogc3RhdGljIGlu
dA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIGludCBkYXRhc3luYykNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCitzdGF0aWMgaW50
DQorbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3lu
YykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0
YXN5bmMpDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkgPSBmaWxlLT5mX3BhdGguZGVudHJ5Ow0KKyNlbmRpZg0KICAg
ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRy
eSk7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAg
ICh2b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92
YWxpZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9y
Ow0KQEAgLTUxMSw3ICs1NjMsMTEgQEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1
Y3QgaW5vZGUgKiB2cCwgdV9pbg0KICAgICAgICAgICAgIHN0cnVjdCBubnBm
c19tZXNzYWdlX2dldGF0dHIgbXNnOw0KIA0KICAgICAgICAgICAgIG1zZy5o
ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVEFUVFI7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg
ICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsN
CisjZW5kaWYNCiAgICAgICAgICAgICBtc2cuY3JlZC5wYWcgPSBwYWc7DQog
ICAgICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAg
ICAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cu
aGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtNTUxLDcgKzYwNywxMSBAQCBu
bnBmc19yaWdodHNfdmFsaWQoc3RydWN0IGlub2RlICogdnAsIG5uDQogICAg
ICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQog
DQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df
R0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICAgICAgICAgIG1z
Zy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBtc2cuaGFuZGxlID0g
eG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBA
IC01OTIsMTEgKzY1MiwyNSBAQCBjaGVja19yaWdodHMgKG5ucGZzX3JpZ2h0
cyByaWdodHMsIGludCBtDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0K
ICAqLw0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM4KSB8fCBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMywxLDApKQ0KIHN0YXRpYyBpbnQNCi1ubnBmc19wZXJtaXNz
aW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlLCBzdHJ1Y3QgbmFt
ZWlkYXRhICpuZCkNCitubnBmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAq
aW5vZGUsIGludCBtb2RlKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZz
X3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHVu
c2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv
ciA9IDA7DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IG5ucGZzX2dldF9wYWco
KTsNCisgICAgbm5wZnNfcGFnX3QgcGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApDQorICAgIGlmIChtb2Rl
ICYgTUFZX05PVF9CTE9DSykNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQorICAgIGlmIChmbGFncyAmIElQRVJNX0ZMQUdfUkNVKQ0KKyAg
ICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VuZGlmDQorDQorICAgIHBhZyA9
IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19hY2Nlc3MgKCVwKSBtb2RlID0gMCVvIGFsaWFzZXM6
IiwgaW5vZGUsIG1vZGUpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhp
bm9kZSk7DQpAQCAtNjM2LDcgKzcxMCwxMSBAQCBubnBmc19kb19nZXRkYXRh
KHN0cnVjdCBubnBmc19ub2RlICp4biwgDQogICAgIGludCBlcnJvcjsNCiAN
CiAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUREFUQTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNl
bHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu
ZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAg
ICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIG1zZy50b2tlbnMg
PSB0b2s7DQpAQCAtNzUwLDExICs4MjgsMTkgQEAgbm5wZnNfZGF0YV92YWxp
ZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1Xw0KIGludCBubnBmc19maWxlX21t
YXAoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg
KiB2bWEpDQogew0KICAgICBpbnQgZmxhZ3MsIGVycm9yID0gMDsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRf
aW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0
cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gZmlsZS0+Zl9tYXBwaW5n
Ow0KIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBp
bm9kZTogJXBcbiIsIGlub2RlKSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfcHJpbnRf
cGF0aChmaWxlLT5mX2RlbnRyeSk7DQorI2Vsc2UNCisgICAgbm5wZnNfcHJp
bnRfcGF0aChmaWxlLT5mX3BhdGguZGVudHJ5KTsNCisjZW5kaWYNCiAgICAg
Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgYWxpYXNlczoiKSk7
DQogICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0KICAgICANCkBA
IC03ODksMzcgKzg3NSw1MCBAQCBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVj
dCBmaWxlICogZmlsZSwgDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBz
c2l6ZV90DQogbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDE5KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVuc2ln
bmVkIGxvbmcgbnJfc2VncywNCisJICAgICAgIGxvZmZfdCBwb3MpDQogI2Vs
c2UNCi0JICAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwN
CitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3JlYWRfaXRlcihzdHJ1Y3Qga2lv
Y2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pDQogI2VuZGlmDQotCSAg
ICAgICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAg
ICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEy
LDApDQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSww
KQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNl
bHNlDQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7
DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K
KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U
T19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkN
CiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6
IHRva2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5z
KSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlu
b2RlLCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNl
DQorICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNf
REFUQV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsN
CisjZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4i
LCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQot
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs
MTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQo
aW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVycm9y
ID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlvY2IsIGJ1ZiwgY291bnQsIHBv
cyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3JlYWRfaXRlcihpb2Ni
LCB0byk7DQogI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJu
bnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9yKSk7DQogICAg
IHJldHVybiBlcnJvcjsNCkBAIC04MjksMjMgKzkyOCwzNiBAQCBubnBmc19h
aW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICoNCiAgKi8NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiww
KQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBr
aW9jYiAqaW9jYiwNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwxOSkNCiAJCWNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92
LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQorCQlsb2ZmX3QgcG9zKQ0KICNl
bHNlDQotCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQs
IA0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qg
a2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkNCiAjZW5kaWYN
Ci0JCWxvZmZfdCBwb3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAg
ICBzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIs
MCkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwxLDAp
DQorICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vs
c2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlvdl9pdGVyX2NvdW50KGZyb20p
Ow0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBm
aWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsN
CisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf
VE9fWE5PREUoaW5vZGUpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGxvZmZfdCByZWFscG9zID0g
cG9zOw0KKyNlbHNlDQorICAgIGxvZmZfdCByZWFscG9zID0gaW9jYi0+a2lf
cG9zOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX2Fpb193cml0ZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJ
CQkgaW5vZGUsIHhuLT50b2tlbnMpKTsNCkBAIC04NTksMTAgKzk3MSwxMCBA
QCBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KIAlyZXR1
cm4gZXJyb3I7DQogICAgIH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAgICBlcnJvciA9
IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgaW92LCBucl9zZWdzLCBw
b3MpOw0KICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193
cml0ZShpb2NiLCBidWYsIGNvdW50LCBwb3MpOw0KKyAgICBlcnJvciA9IGdl
bmVyaWNfZmlsZV93cml0ZV9pdGVyKGlvY2IsIGZyb20pOw0KICNlbmRpZg0K
ICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJvcikpDQogCXhuLT5mbGFncyB8
PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFggcmFjZSAqLw0KQEAgLTg3MSw5
ICs5ODMsMTkgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9j
YiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGlu
dA0KIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LA0KIAkgICAgIGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlk
YXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0
cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAg
ICAgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxz
ZQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpk
aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1v
ZGUsIGJvb2wgZXhjbCkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAt
OTAzLDkgKzEwMjUsMTcgQEAgbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAq
ZGlyLCBzdHJ1Y3QgZA0KICAgICBYQV9DTEVBUigmbXNnLmF0dHIpOw0KICAg
ICBYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KICAgICBYQV9TRVRf
VFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfUkVHKTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
WEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxz
ZQ0KKyAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dpZCgp
KTsNCisjZW5kaWYNCiAgICAgbXNnLm1vZGUgPSAwOwkJLyogWFhYICovDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxz
ZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp
Zg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAg
IGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRl
ciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05
NDYsNyArMTA3NiwxMSBAQCBubnBmc191bmxpbmsgKHN0cnVjdCBpbm9kZSAq
IGRpciwgc3RydWN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1lLCBkZW50
cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19N
QVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAg
ICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9y
ID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6
ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05OTEsNyAr
MTEyNSwxMSBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9k
aXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uZXdfbmFtZSwgbmV3X2Rl
bnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmV3X25hbWUpKSA+PSBO
TlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5k
aWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAg
ICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFk
ZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAt
MTAwOCw4ICsxMTQ2LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2Rl
ICogb2xkX2Rpciwgc3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDAp
DQogc3RhdGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRp
ciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0K
K3N0YXRpYyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIs
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRp
Zg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVj
dCBubnBmc19ub2RlICp4bjsNCkBAIC0xMDQwLDkgKzExODMsMTcgQEAgbm5w
ZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KIAlYQV9D
TEVBUigmbXNnLmF0dHIpOw0KIAlYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1v
ZGUpOw0KIAlYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfRElS
KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCiAJWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZz
Z2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIs
IGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5j
cmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNn
LmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNy
ZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21l
c3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsN
CiAJaWYgKGVycm9yID09IDApDQpAQCAtMTA4Myw3ICsxMjM0LDExIEBAIG5u
cGZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAgICAg
bXNnLnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBpZiAoc3Ry
bGNweShtc2cubmFtZSwgZGVudHJ5LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1z
Zy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQogCSAgICByZXR1cm4gLUVO
QU1FVE9PTE9ORzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVu
dC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf
dWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl
dF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBm
c3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogICAgIGlmIChlcnJv
ciA9PSAwKQ0KQEAgLTExMjgsNyArMTI4MywxMSBAQCBzdGF0aWMgaW50IG5u
cGZzX2xpbmsoc3RydWN0IGRlbnRyeSAqb2xkDQogCWlmIChzdHJsY3B5KG1z
Zy5uYW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhf
TkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K
IAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQog
CW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBu
bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2Yo
bXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KQEAgLTExNTcsMjkgKzEzMTYs
NDcgQEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAq
ZA0KICAgICB4biA9IFZOT0RFX1RPX1hOT0RFKGRpcik7DQogDQogICAgIHsN
Ci0Jc3RydWN0IG5ucGZzX21lc3NhZ2Vfc3ltbGluayBtc2c7DQorCXN0cnVj
dCBubnBmc19tZXNzYWdlX3N5bWxpbmsgKm1zZyA9IE5VTEw7DQogDQotCW1z
Zy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1NZTUxJTks7DQotCW1zZy5w
YXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCi0JaWYgKHN0cmxjcHkobXNn
Lm5hbWUsIG5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9O
QU1FKQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQotCWlmIChzdHJs
Y3B5KG1zZy5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy5jb250ZW50
cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpDQotCSAgICByZXR1
cm4gLUVOQU1FVE9PTE9ORzsNCi0JWEFfQ0xFQVIoJm1zZy5hdHRyKTsNCi0J
WEFfU0VUX01PREUoJm1zZy5hdHRyLCAwNzc3KTsNCi0JWEFfU0VUX1RZUEUo
Jm1zZy5hdHRyLCBOTlBGU19GSUxFX0xOSyk7DQotCVhBX1NFVF9HSUQoJm1z
Zy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorCW1zZyA9IGttYWxsb2Moc2l6
ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiANCi0JbXNnLmNyZWQudWlkID0g
Y3VycmVudC0+dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFn
KCk7DQotCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNn
LmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KKwlpZiAobXNnID09IE5VTEwpDQor
CSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1zZy0+aGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ctPnBhcmVudF9oYW5kbGUgPSB4
bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweShtc2ctPm5hbWUsIG5hbWUsIHNp
emVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkgew0KKwkgIGtm
cmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQorCX0NCisJ
aWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1z
Zy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5UKSB7
DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1cm4gLUVOQU1FVE9PTE9ORzsN
CisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRyKTsNCisJWEFfU0VUX01PREUo
Jm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NFVF9UWVBFKCZtc2ctPmF0dHIs
IE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJWEFfU0VUX0dJRCgmbXNnLT5h
dHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAgICAgIFhBX1NF
VF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYN
CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj
ZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7
DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7
DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLT5o
ZWFkZXIsIHNpemVvZigqbXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KLQkg
ICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKCZtc2cpOw0KKwkg
ICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKG1zZyk7DQogDQog
CS8qIFhYWCBzaG91bGQgdGhpcyByZWFsbHkgYmUgaGVyZSAqLw0KIAlpZiAo
REVOVFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+eGRfZmxhZ3MgPT0gMCkgew0K
IAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBubnBmc19z
eW1saW5rOiBkZW50cnkgbm90IHZhbGlkXG4iKTsNCiAJfQ0KKwlrZnJlZSht
c2cpOw0KICAgICB9DQogDQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xMTg4
LDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1
Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4NCiAgKi8N
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
MSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxl
ICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQor
I2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1Y3QgZmls
ZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNlbmRpZg0K
IHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0LCBiZWdp
bl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K
KyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2RlOw0KICAg
ICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9k
ZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjY0LDYgKzE0NTAsNyBAQCBu
bnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkg
ICAgKGludCkgeGRpcmVudC0+ZF9uYW1sZW4sDQogCQkgICAgKGludCkgKG9m
ZnNldCtiZWdpbl9vZmZzZXQpKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJICAgIGlmICh4ZGly
ZW50LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAoZmlsbGRpcl9lcnJvciA9IGZp
bGxkaXIgKGRpcmVudCwNCiAJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQpA
QCAtMTI3NSw2ICsxNDYyLDE4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZp
bGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxk
aXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAg
IH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDAN
CisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJ
ICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9u
YW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAg
ICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURE
SVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmls
bGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQog
CSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBp
ZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KQEAgLTEzMzEsOSArMTUz
MCwxNSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5
LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkN
CiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisj
ZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19mb2xsb3dfbGlu
ayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZvaWQgKipwYWdlKQ0K
KyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0
IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkpOw0KQEAg
LTEzNDQsNyArMTU0OSwxMSBAQCBubnBmc19mb2xsb3dfbGluayAoc3RydWN0
IGRlbnRyeSAqZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAgICAgcmV0
dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJuIHBhZ2Vf
Zm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2Vsc2UNCisgICAg
cmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBwYWdlKTsN
CisjZW5kaWYNCiB9DQogDQogLyoNCkBAIC0xMzk4LDcgKzE2MDcsMTEgQEAg
bm5wZnNfc2V0YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdA0KICAg
ICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcHV0YXR0ciBtc2c7DQogDQog
ICAgICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QVVRBVFRS
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQor
I2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAg
ICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICAgICAgbm5w
ZnNfaWF0dHIyYXR0cih4biwgYXR0ciwgJm1zZy5hdHRyKTsNCkBAIC0xNDIy
LDYgKzE2MzUsOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9k
ZSAqaW5vZGUsDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAg
aW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAg
ICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4i
KSk7DQogDQogICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUp
Ow0KQEAgLTE0NTAsMTggKzE2NjUsMTggQEAgbm5wZnNfcmVsZWFzZV9maWxl
IChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAqDQogICovDQogDQotI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQog
c3RhdGljIGludA0KIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlLCBm
bF9vd25lcl90IGlkKQ0KLSNlbHNlDQotc3RhdGljIGludA0KLW5ucGZzX2Zs
dXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KLSNlbmRpZg0KIHsNCiAgICAgTk5Q
RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2ZsdXNoXG4iKSk7DQogDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CiAgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9kZW50cnkgJiYgZmlsZS0+Zl9k
ZW50cnktPmRfaW5vZGUpDQogCXJldHVybiBubnBmc19yZWxlYXNlX2ZpbGUo
ZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbHNlDQorICAg
IGlmIChmaWxlICYmIGZpbGUtPmZfcGF0aC5kZW50cnkgJiYgZmlsZS0+Zl9w
YXRoLmRlbnRyeS0+ZF9pbm9kZSkNCisJcmV0dXJuIG5ucGZzX3JlbGVhc2Vf
ZmlsZShmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisj
ZW5kaWYNCiAgICAgZWxzZQ0KIAlyZXR1cm4gMDsNCiB9DQpAQCAtMTQ3MCwx
MCArMTY4NSwyNCBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSkN
CiAgKiBSZXR1cm4gMSBpZiBgZGVudHJ5JyBpcyBzdGlsbCB2YWxpZCwgb3Ro
ZXJ3aXNlIDAuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19k
X3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFt
ZWlkYXRhICpuZCkNCisjZWxzZQ0KIHN0YXRpYyBpbnQNCi1ubnBmc19kX3Jl
dmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlk
YXRhICpuZCkgDQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAg
ICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50
cnkpOw0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQorICAgIGlmIChmbGFncyAmIExPT0tVUF9SQ1UpDQor
ICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZWxpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBpZiAobmQg
JiYgbmQtPmZsYWdzICYgTE9PS1VQX1JDVSkNCisgICAgICAgIHJldHVybiAt
RUNISUxEOw0KKyNlbmRpZg0KKw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs
ICgibm5wZnNfZF9yZXZhbGlkYXRlICVwIFwiJS4qc1wiIChpbm9kZSAlcClc
biIsDQogCQkgICAgICAgZGVudHJ5LA0KIAkJICAgICAgIChpbnQpZGVudHJ5
LT5kX25hbWUubGVuLA0KQEAgLTE1MTksOSArMTc0OCwxNSBAQCBubnBmc19k
X3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIHJldHVy
biAwOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM4KQ0KIHN0YXRpYw0KIGludA0KIG5ucGZzX2RfZGVs
ZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisjZWxzZQ0KK3N0YXRpYw0K
K2ludA0KK25ucGZzX2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRl
bnRyeSkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGU7
DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xNTQ2LDExICsx
NzgxLDE2IEBAIG5ucGZzX2RfZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy
eSkNCiB9DQogDQogc3RhdGljIHNzaXplX3QNCi1ubnBmc19zZW5kZmlsZShz
dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLCBzaXplX3QgY291bnQs
DQotCSAgICAgICByZWFkX2FjdG9yX3QgYWN0b3IsIHZvaWQgKnRhcmdldCkN
CitubnBmc19zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90
ICpwcG9zLA0KKwkJICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLCBz
aXplX3QgY291bnQsDQorCQkgIHVuc2lnbmVkIGludCBmbGFncykNCiB7DQog
ICAgIGludCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICpp
bm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAg
IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k
X2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4g
PSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4g
IT0gTlVMTCkNCkBAIC0xNTYxLDggKzE4MDEsNyBAQCBubnBmc19zZW5kZmls
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90DQogCU5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19zZW5kZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIs
IGVycm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KLQ0KLSAgICBl
cnJvciA9IGdlbmVyaWNfZmlsZV9zZW5kZmlsZShmaWxlLCBwcG9zLCBjb3Vu
dCwgYWN0b3IsIHRhcmdldCk7DQorICAgIGVycm9yID0gZmlsZS0+Zl9vcC0+
c3BsaWNlX3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZsYWdzKTsN
CiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRmaWxl
OiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4gZXJyb3I7
DQpAQCAtMTYzOSw0MCArMTg3OCw0MSBAQCBubnBmc193cml0ZV9iYWNrcGFn
ZShzdHJ1Y3QgcGFnZSAqcGFnZSwgDQogCXN0cnVjdCBhZGRyZXNzX3NwYWNl
ICptYXBwaW5nID0gYmFja2ZpbGUtPmZfbWFwcGluZzsNCiAJdW5zaWduZWQg
bGVuID0gUEFHRV9DQUNIRV9TSVpFOw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3Bh
Z2U7DQorCXZvaWQgKmZzZGF0YTsNCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7
DQogDQogCWludCBlcnJvcjsNCiAJDQotCWRvIHsNCi0JCWJhY2twYWdlID0g
Z3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIG5ucGZzX2dldF9iYWNraW5kZXgo
cGFnZSkpOw0KLQkJaWYgKCFiYWNrcGFnZSkgew0KLQkJCXByaW50aygibm5w
ZnNfd3JpdGVfYmFja3BhZ2U6IG5vIHBhZ2VcbiIpOw0KLQkJCXJldHVybiAt
RUlPOw0KLQkJfQ0KKwkodm9pZClvZmZzZXQ7DQogDQotCQllcnJvciA9IG1h
cHBpbmctPmFfb3BzLT5wcmVwYXJlX3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFn
ZSwNCi0JCQkJCQkgICAgICAwLCBsZW4pOw0KKwlkbyB7DQorCQllcnJvciA9
IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGluZywgMCwg
bGVuLA0KKwkJCQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJQkxFLA0K
KwkJCQkJICAgICAgJmJhY2twYWdlLCAmZnNkYXRhKTsNCiAJCWlmICghZXJy
b3IpIHsNCiAJCQljb3B5X2hpZ2hwYWdlKGJhY2twYWdlLCBwYWdlKTsNCiAJ
CQlmbHVzaF9kY2FjaGVfcGFnZShiYWNrcGFnZSk7DQotCQkJZXJyb3IgPSBt
YXBwaW5nLT5hX29wcy0+Y29tbWl0X3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFn
ZSwNCi0JCQkJCQkJICAgICAwLCBsZW4pOw0KKwkJCWVycm9yID0gcGFnZWNh
Y2hlX3dyaXRlX2VuZChiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJ
CQkJbGVuLCBiYWNrcGFnZSwgZnNkYXRhKTsNCisJCQlpZiAoZXJyb3IgPiAw
KQ0KKwkJCQllcnJvciA9IDA7DQogCQl9DQogCQlpZiAoZXJyb3IgPT0gQU9Q
X1RSVU5DQVRFRF9QQUdFKSB7DQotCQkJcGFnZV9jYWNoZV9yZWxlYXNlKGJh
Y2twYWdlKTsNCiAJCQljb250aW51ZTsNCiAJCX0NCiAJfSB3aGlsZSAoMCk7
DQogDQogCW9mZnNldCA9IHBhZ2Vfb2Zmc2V0KGJhY2twYWdlKTsNCi0JdW5s
b2NrX3BhZ2UoYmFja3BhZ2UpOw0KLQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFj
a3BhZ2UpOw0KIA0KIAlpZiAoZXJyb3IpDQogCQlwcmludGsoIm5ucGZzX3dy
aXRlX2JhY2twYWdlOiBFSU9cbiIpOw0KICNpZmRlZiBOTlBGU19TQUZFX1NZ
TkMNCiAJZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzIpDQogCQkodm9pZClzeW5jX3BhZ2VfcmFuZ2UobWFw
cGluZy0+aG9zdCwgbWFwcGluZywgb2Zmc2V0LCBsZW4pOw0KKyNlbHNlDQor
CQkodm9pZClmaWxlbWFwX3dyaXRlX2FuZF93YWl0X3JhbmdlKG1hcHBpbmcs
IG9mZnNldCwgb2Zmc2V0ICsgbGVuIC0gMSk7DQorI2VuZGlmDQogI2VuZGlm
DQogCQ0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtMTY4OSwxMyArMTkyOSw5IEBA
IG5ucGZzX3JlYWRfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJ
c3RydWN0IHBhZ2UgKmJhY2twYWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNl
dDsNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwxOCkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAliYWNrcGFnZSA9
IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBpbmcsIG4sIGJhY2tmaWxlKTsNCi0j
ZWxzZQ0KLQliYWNrcGFnZSA9IHJlYWRfY2FjaGVfcGFnZShtYXBwaW5nLCBu
LA0KLQkJCQkgICAoZmlsbGVyX3QgKiltYXBwaW5nLT5hX29wcy0+cmVhZHBh
Z2UsDQotCQkJCSAgIGJhY2tmaWxlKTsNCi0jZW5kaWYNCiAJaWYgKCFJU19F
UlIoYmFja3BhZ2UpKSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2tw
YWdlKTsNCiANCkBAIC0xODQyLDExICsyMDc4LDE3IEBAIG5ucGZzX3ByZXBh
cmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiANCiAJaWYgKG1vZHNp
emUgPiBpX3NpemVfcmVhZChpbm9kZSkpIHsNCiAJCWludCBlcnJvcjsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDAp
DQogCQllcnJvciA9IHZtdHJ1bmNhdGUoaW5vZGUsIG1vZHNpemUpOw0KKyNl
bHNlDQorCQllcnJvciA9IGlub2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNp
emUpOw0KKwkJaWYoIWVycm9yKQ0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5v
ZGUsIG1vZHNpemUpOw0KKyNlbmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJ
cHJpbnRrKCJubnBmc19wcmVwYXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAt
PiAlZFxuIiwNCiAJCQkgICAgICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlC
VUcoKTsgLyogWFhYIG5vdCBjb3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAv
KiBYWFggbm90IGNvcnJlY3QgKi8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE4NzIs
NDQgKzIxMTQsMTE4IEBAIG5ucGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0IGZp
bGUgKmZpbGUsIHMNCiAJcmV0dXJuIHJldDsNCiB9DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogc3Rh
dGljIGludA0KLW5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmls
ZSwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IHRvKQ0KK25ucGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBz
dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCit1
bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBh
Z2VwLCB2b2lkICoqZnNkYXRhKQ0KIHsNCi0gICAgc3RydWN0IGlub2RlICpp
bm9kZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7DQotICAgIGxvZmZfdCBwb3Mg
PSAoKGxvZmZfdClwYWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUKSAr
IHRvOw0KKwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJcGdvZmZfdCBpbmRleDsN
CisJdW5zaWduZWQgZnJvbTsNCisJaW50IHJldCA9IDA7DQogDQotICAgIGlm
IChwb3MgPiBpbm9kZS0+aV9zaXplKSB7DQotCWlfc2l6ZV93cml0ZShpbm9k
ZSwgcG9zKTsNCisJaW5kZXggPSBwb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsN
CisJZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsNCiANCi0J
c3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCi0JaW5vZGUtPmlfYmxvY2tz
ID0gKHBvcyArIElfQkxPQ0tTX1VOSVQgLSAxKSA+PiBJX0JMT0NLU19CSVRT
Ow0KLQlzcGluX3VubG9jaygmaW5vZGUtPmlfbG9jayk7DQotICAgIH0NCi0g
ICAgc2V0X3BhZ2VfZGlydHkocGFnZSk7DQorCXBhZ2UgPSBncmFiX2NhY2hl
X3BhZ2Vfd3JpdGVfYmVnaW4obWFwcGluZywgaW5kZXgsIGZsYWdzKTsNCisJ
aWYgKCFwYWdlKQ0KKwkJcmV0dXJuIC1FTk9NRU07DQorDQorCSpwYWdlcCA9
IHBhZ2U7DQorDQorCXJldCA9IG5ucGZzX3ByZXBhcmVfd3JpdGUoZmlsZSwg
cGFnZSwgZnJvbSwgZnJvbSArIGxlbik7DQorCWlmIChyZXQpIHsNCisJCXVu
bG9ja19wYWdlKHBhZ2UpOw0KKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2Up
Ow0KKwl9DQorDQorCXJldHVybiByZXQ7DQorfQ0KKyNlbmRpZg0KIA0KKy8q
IFhYWCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfY29tbWl0
X3dyaXRlIGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9y
IG5vdyAqLw0KICNpZiAwDQotICAgIHsNCi0JY2hhciAqYWRkcjsNCi0Ja21h
cChwYWdlKTsNCi0JYWRkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsNCi0JTk5Q
RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2NvbW1pdF93cml0ZSglcCk6ICV4
JXgleCV4XG4iLA0KK3N0YXRpYyBpbnQNCitubnBmc19jb21taXRfd3JpdGUo
c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlLA0KKwkJICAg
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pDQorew0KKwlzdHJ1Y3QgaW5v
ZGUgKmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsNCisJbG9mZl90IHBv
cyA9ICgobG9mZl90KXBhZ2UtPmluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQp
ICsgdG87DQorDQorCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKQ0KKwkJU2V0
UGFnZVVwdG9kYXRlKHBhZ2UpOw0KKw0KKwlpZiAocG9zID4gaW5vZGUtPmlf
c2l6ZSkgew0KKwkJaV9zaXplX3dyaXRlKGlub2RlLCBwb3MpOw0KKw0KKwkJ
c3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisJCWlub2RlLT5pX2Jsb2Nr
cyA9IChwb3MgKyBJX0JMT0NLU19VTklUIC0gMSkgPj4gSV9CTE9DS1NfQklU
UzsNCisJCXNwaW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisJfQ0KKwlz
ZXRfcGFnZV9kaXJ0eShwYWdlKTsNCisNCisjaWYgMA0KKwl7DQorCSAgICBj
aGFyICphZGRyOw0KKwkgICAga21hcChwYWdlKTsNCisJICAgIGFkZHIgPSBw
YWdlX2FkZHJlc3MocGFnZSk7DQorCSAgICBOTlBGU0RFQihYREVCVk5PUFMs
ICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTogJXgleCV4JXhcbiIsDQogCQkJ
ICAgICBmaWxlLT5mX21hcHBpbmctPmhvc3QsIA0KIAkJCSAgICAgYWRkclsw
XSwgYWRkclsxXSwgYWRkclsyXSwgYWRkclszXSkpOw0KLQlrdW5tYXAocGFn
ZSk7DQotICAgIH0NCisJICAgIGt1bm1hcChwYWdlKTsNCisJfQ0KICNlbmRp
Zg0KLSAgICANCi0gICAgcmV0dXJuIDA7DQorIA0KKwlyZXR1cm4gMDsNCiB9
DQorI2VuZGlmDQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMTgpDQotY29uc3QNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisvKiBYWFggd2Ug
dXNlIHRoZSBzeXN0ZW0gcHJvdmlkZWQgc2ltcGxlX3dyaXRlX2VuZCBpbnN0
ZWFkIHNvIHRoaXMgZnVuY3Rpb24gaXMgdW51c2VkIGZvciBub3cgKi8NCisj
aWYgMA0KK3N0YXRpYyBpbnQNCitubnBmc193cml0ZV9lbmQoc3RydWN0IGZp
bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2Zm
X3QgcG9zLA0KKwkJdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsIHN0
cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpDQorew0KKwl1bnNpZ25l
ZCBmcm9tID0gcG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOw0KKw0KKwkv
KiB6ZXJvIHRoZSBzdGFsZSBwYXJ0IG9mIHRoZSBwYWdlIGlmIHdlIGRpZCBh
IHNob3J0IGNvcHkgKi8NCisJaWYgKGNvcGllZCA8IGxlbikgew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisJ
CXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSwgS01fVVNFUjApOw0K
KyNlbHNlDQorCQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UpOw0K
KyNlbmRpZg0KKwkJbWVtc2V0KGthZGRyICsgZnJvbSArIGNvcGllZCwgMCwg
bGVuIC0gY29waWVkKTsNCisJCWZsdXNoX2RjYWNoZV9wYWdlKHBhZ2UpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCisJCWt1bm1hcF9hdG9taWMoa2FkZHIsIEtNX1VTRVIwKTsNCisjZWxz
ZQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkcik7DQorI2VuZGlmDQorCX0NCisN
CisJbm5wZnNfY29tbWl0X3dyaXRlKGZpbGUsIHBhZ2UsIGZyb20sIGZyb20g
KyBjb3BpZWQpOw0KKw0KKwl1bmxvY2tfcGFnZShwYWdlKTsNCisJcGFnZV9j
YWNoZV9yZWxlYXNlKHBhZ2UpOw0KKw0KKwlyZXR1cm4gY29waWVkOw0KK30N
CiAjZW5kaWYNCisjZW5kaWYNCisNCitjb25zdA0KIHN0cnVjdCBhZGRyZXNz
X3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW9wcyA9IHsNCiAJLnJlYWRwYWdl
ID0gbm5wZnNfcmVhZHBhZ2UsDQogCS53cml0ZXBhZ2UgPSBubnBmc193cml0
ZXBhZ2UsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkNCiAJLnByZXBhcmVfd3JpdGUgPSBubnBmc19wcmVwYXJl
X3dyaXRlLA0KLQkuY29tbWl0X3dyaXRlID0gbm5wZnNfY29tbWl0X3dyaXRl
LA0KKwkuY29tbWl0X3dyaXRlID0gc2ltcGxlX2NvbW1pdF93cml0ZSwNCisj
ZWxzZQ0KKwkud3JpdGVfYmVnaW4gPSBubnBmc193cml0ZV9iZWdpbiwNCisJ
LndyaXRlX2VuZCA9IHNpbXBsZV93cml0ZV9lbmQsDQorI2VuZGlmDQogfTsN
CiANCiAvKg0KQEAgLTE5MTcsMjEgKzIyMzMsMzAgQEAgc3RydWN0IGFkZHJl
c3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hbw0KICAqLw0KIA0KIHN0cnVj
dCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZmlsZV9vcGVyYXRpb25zID0gew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2
LDApDQogICAgIC5haW9fcmVhZAk9IG5ucGZzX2Fpb19yZWFkLA0KICAgICAu
YWlvX3dyaXRlCT0gbm5wZnNfYWlvX3dyaXRlLA0KKyNlbHNlDQorICAgIC5y
ZWFkX2l0ZXIJPSBubnBmc19yZWFkX2l0ZXIsDQorICAgIC53cml0ZV9pdGVy
CT0gbm5wZnNfd3JpdGVfaXRlciwNCisjZW5kaWYNCiAgICAgLm1tYXAJPSBu
bnBmc19maWxlX21tYXAsDQogICAgIC5vcGVuCT0gbm5wZnNfb3BlbiwNCiAg
ICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogICAgIC5yZWxlYXNlCT0gbm5w
ZnNfcmVsZWFzZV9maWxlLA0KICAgICAuZnN5bmMJPSBubnBmc19mc3luYywN
Ci0gICAgLnNlbmRmaWxlCT0gbm5wZnNfc2VuZGZpbGUsDQorICAgIC5zcGxp
Y2VfcmVhZCA9IG5ucGZzX3NwbGljZV9yZWFkLA0KIH07DQogDQogc3RydWN0
IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29wZXJhdGlvbnMgPSB7DQog
fTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rpcl9vcGVy
YXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0gbm5wZnNfcmVhZGRp
ciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5ucGZzX2l0ZXJhdGUs
DQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KIH07DQog
DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGlu
dXgvbm5wZnNfbG9hZC5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19s
b2FkLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xv
YWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysr
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAxNi0wMS0x
MyAyMDoxNDowMi4wMDAwMDAwMDAgKzAxMDANCkBAIC01NCw3ICs1NCwxMSBA
QCBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzDQog
DQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgbm5wZnNfZnNfdHlwZSA9IHsN
CiAgICAgICAgbmFtZTogICAgICAgICAgICJubnBmcyIsDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg
ICAgZ2V0X3NiOiAgICAgICAgIG5ucGZzX2dldF9zYiwNCisjZWxzZQ0KKyAg
ICAgICBtb3VudDogICAgICAgICAgbm5wZnNfbW91bnQsDQorI2VuZGlmDQog
ICAgICAgIGtpbGxfc2I6ICAgICAgICBraWxsX2xpdHRlcl9zdXBlciwNCiAg
ICAgICAgb3duZXI6ICAgICAgICAgIFRISVNfTU9EVUxFLA0KIH07DQpkaWZm
IC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5w
ZnNfbWVzc2FnZS5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNz
YWdlLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX21l
c3NhZ2UuYwkyMDA3LTAxLTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0K
KysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAx
Ni0wMS0yNCAxODo1MjoyOC4wMDAwMDAwMDAgKzAxMDANCkBAIC00NSw3ICs0
NSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVm
IFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMu
Mi4xIDIwMDcvMDEvMDkgMTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQo
IiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0
MzowNSB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0K
QEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1v
dmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIo
WERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQogICAgIGRnZXRf
bG9ja2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9j
ayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7
DQorICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAgc3Bpbl91bmxvY2so
JmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAgZF9kcm9wKGRlbnRy
eSk7DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcgKzEyNywx
MSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAq
DQogICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsNCiAgICAgc3RydWN0
IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3RydWN0IHFzdHIgc3Fz
dHI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkN
CisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KICAg
ICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2lu
c3RhbGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3NiwxMiArMTg2LDI2IEBA
IG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAg
ICAgICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBkaS0+
aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZkaS0+aV9k
ZW50cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0
IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygmZGNhY2hlX2xvY2sp
Ow0KLQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGluX3VubG9jaygmZGNh
Y2hlX2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShw
YXJlbnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9k
ZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFj
aF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7
DQorICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2Nr
KCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJl
bnQtPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAg
c3Bpbl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVu
dHJ5ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihY
REVCTVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxp
YXMgJXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU3LDkgQEAgbm5w
ZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJ
ZHB1dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMg
PSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAg
ICB9DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9p
bnN0YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcg
KzI5NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBu
bnBmcyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9E
RSh0KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlf
ZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZp
cnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBk
ZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0
cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAgICAgDQog
ICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxs
YXR0ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRyeS0+ZF9uYW1lLm5h
bWUpKTsNCkBAIC0zOTYsMTcgKzQyOCwzNSBAQCBubnBmc19tZXNzYWdlX2lu
c3RhbGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGljIHZvaWQNCiBjbGVh
cl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBwYXJl
bnQpDQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAg
ICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0
IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0KICBhZ2FpbjoNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4
KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAg
ICBzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAg
ICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUg
KGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRy
eSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk
ZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9k
ZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9m
b3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5k
X2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0X2hlYWQgKnN1YmRp
cnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAqeGQ7DQogCQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkN
CiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwg
ZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0K
IAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkg
aW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAg
LTQyMiw3ICs0NzIsMTEgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3Qg
aW5vZGUgKmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5LT5kX3N1YmRpcnMu
bmV4dDsNCiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJz
KSB7DQogCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJkaXJzOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQogCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnko
dG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UNCisJ
ICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0
cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIAkgICAgc3ViZGly
cyA9IHRtcC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhERUJNU0csICgiY2xl
YXJfYWxsX2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2RlOiAlcC8lcCAiDQog
CQkJICAgICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4iLA0KQEAgLTQ0Miwx
NCArNDk2LDI0IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2Rl
ICppbm9kZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQog
CSAgICBpZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAJ
ICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQor
CSAgICAgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRp
Zg0KIAkJbm5wZnNfZF9yZW1vdmUoY2hpbGQpOw0KIAkJZ290byBhZ2FpbjsN
CiAJICAgIH0NCiAJfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisj
ZW5kaWYNCiAgICAgfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVf
bG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xv
Y2spOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgdm9pZA0KQEAgLTYwNSwx
MiArNjY5LDEwIEBAIGdjX2Jsb2NrKHN0cnVjdCBubnBmcyAqbm5wZnNwLA0K
ICAgICB9DQogDQogICAgIGlmICghbm5wZnNfYmxvY2tfaGF2ZV9wKHhuLCBv
ZmZzZXQpKSB7DQotI2lmIDAgICAvKiBoYXBwZW5zIHdoZW4gZGFlbW9uIHNl
bmRzIHNldmVyYWwgbWVzc2FnZXMgZm9yIHNhbWUgYmxvY2sgKi8NCiAJcHJp
bnRrKEtFUk5fRU1FUkcgIk5OUEZTL2djX2Jsb2NrOiAiDQogCSAgICAgICAi
RU5PRU5UICglZCwlZCwlZCwlZCkgMHglbGx4XG4iLCANCiAJICAgICAgIHhu
LT5oYW5kbGUuYSwgeG4tPmhhbmRsZS5iLCB4bi0+aGFuZGxlLmMsIHhuLT5o
YW5kbGUuZCwgDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKW9mZnNl
dCk7DQotI2VuZGlmDQogCXJldHVybiAtRU5PRU5UOw0KICAgICB9DQogDQpA
QCAtNzIxLDEyICs3ODMsMjIgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0
cnVjdCBubnBmcyAqbm5wZg0KIA0KICAgICAvKiBzYW5pdHkgY2hlY2sgYmVm
b3JlIHdlIGxvb2sgYXQgaXQgKi8NCiAgICAgaWYgKHNpemUgPT0gc2l6ZW9m
KCptZXNzYWdlKSAmJiBtZXNzYWdlLT52ZXJzaW9uID09IE5OUEZTX1ZFUlNJ
T04pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KIAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQor
CXN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogCWludCBlcnJvcjsNCiAN
CiAJdWludDY0X3QgYmxvY2tzaXplID0gbWVzc2FnZS0+YmxvY2tzaXplOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAoIi4iLCAwLCAmbmQpOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoIi4iLCAwLCAmbmQucGF0aCk7
DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3BhdGgoIi4iLCAwLCAmcGF0aCk7
DQorI2VuZGlmDQogCWlmIChlcnJvcikgew0KIAkgICAgLyoNCiAJICAgICAq
IEJhZCBjYWNoZSByb290LCBqdXN0IHJldHVybi4NCkBAIC03MzcsMTIgKzgw
OSwyMyBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpu
bnBmDQogCQkgICAibm5wZnNfbWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBwYXRo
X2xvb2t1cCwgIg0KIAkJICAgImVycm5vOiAlZFxuIiwgZXJyb3IpOw0KIAl9
IGVsc2Ugew0KLQkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQu
bW50KTsNCi0JICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLmRlbnRy
eSk7DQotCSAgICBwYXRoX3JlbGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgbm5w
ZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQucGF0aC5tbnQpOw0KKwkgICAg
bm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQucGF0aC5kZW50cnkpOw0KKwkg
ICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBubnBmc3At
PmNhY2hlcm9vdCA9IG1udGdldChwYXRoLm1udCk7DQorCSAgICBubnBmc3At
PmNhY2hlZGlyID0gZGdldChwYXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1
dCgmcGF0aCk7DQorI2VuZGlmDQogCSAgICANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KIAkgICAgbm5wZnNw
LT51aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0g
Y3VycmVudC0+ZnNnaWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBubnBmc3At
PnVpZCA9IGN1cnJlbnRfZnN1aWQoKTsNCisgICAgICAgICAgICBubnBmc3At
PmdpZCA9IGN1cnJlbnRfZnNnaWQoKTsNCisjZW5kaWYNCiANCiAJICAgIC8q
IFhYWCB3ZSBzaG91bGQgdmFsaWRhdGUgdGhlc2UgdmFsdWVzICovDQogCSAg
ICBubnBmc19ibG9ja3NpemUgPSBibG9ja3NpemU7DQpkaWZmIC11cHJOIC1Y
bm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5j
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMNCi0tLSBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDA3LTAxLTAz
IDE0OjUyOjAyLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBm
cy9saW51eC9ubnBmc19ub2RlLmMJMjAxNi0wMS0xNCAxNjo1MToxMS4wMDAw
MDAwMDAgKzAxMDANCkBAIC0xMzIsNyArMTMyLDEyIEBAIG5ucGZzX3NldHNp
emUoc3RydWN0IGlub2RlICppbm9kZSwgdWludDYNCiAJcHJpbnRrKCJubnBm
c19zZXRzaXplOiB0cnVuY2F0aW5nIEAweCVsbHVcbiIsDQogCSAgICAgICAo
dW5zaWduZWQgbG9uZyBsb25nKXNpemUpOw0KICNlbmRpZg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJdm10
cnVuY2F0ZShpbm9kZSwgc2l6ZSk7IC8qIFhYWCByZXR2YWwgKi8NCisjZWxz
ZQ0KKwlpZighaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgc2l6ZSkpDQorCSAg
ICB0cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBzaXplKTsNCisjZW5kaWYNCiAJ
bm5wZnNfYmxvY2tfdHJ1bmNhdGUoeG4sIHNpemUpOw0KICAgICB9DQogfQ0K
QEAgLTE1MCw5ICsxNTUsMTggQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBz
dHJ1Y3Qgbm5wZnNfYXR0cg0KIAlzdHJ1Y3QgdGltZXNwZWMgbm90aW1lID0g
ezB9Ow0KIA0KIAlpbm9kZS0+aV9tb2RlICAgPSAwOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCWlub2Rl
LT5pX3VpZCAgICA9IDA7DQogCWlub2RlLT5pX2dpZCAgICA9IDA7DQorI2Vs
c2UNCisJaW5vZGUtPmlfdWlkICAgID0gS1VJRFRfSU5JVCgwKTsNCisJaW5v
ZGUtPmlfZ2lkICAgID0gS0dJRFRfSU5JVCgwKTsNCisjZW5kaWYNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApDQog
CWlub2RlLT5pX25saW5rICA9IDE7DQorI2Vsc2UNCisJc2V0X25saW5rKGlu
b2RlLCAxKTsNCisjZW5kaWYNCiAJaW5vZGUtPmlfYXRpbWUgID0gbm90aW1l
Ow0KIAlpbm9kZS0+aV9tdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX2N0
aW1lICA9IG5vdGltZTsNCkBAIC0xNjksNyArMTgzLDExIEBAIG5ucGZzX2F0
dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAgICAgaWYgKFhB
X1ZBTElEX0dJRChhdHRyKSkNCiAJaW5vZGUtPmlfZ2lkICAgID0gYXR0ci0+
eGFfZ2lkOw0KICAgICBpZiAoWEFfVkFMSURfTkxJTksoYXR0cikpDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMiwwKQ0K
IAlpbm9kZS0+aV9ubGluayAgPSBhdHRyLT54YV9ubGluazsNCisjZWxzZQ0K
KwlzZXRfbmxpbmsoaW5vZGUsIGF0dHItPnhhX25saW5rKTsNCisjZW5kaWYN
CiAgICAgDQogICAgIGlmIChYQV9WQUxJRF9TSVpFKGF0dHIpKSB7DQogCW5u
cGZzX3NldHNpemUoaW5vZGUsIGF0dHItPnhhX3NpemUpOw0KQEAgLTUxMCwx
MiArNTI4LDI0IEBAIG5ucGZzX2hhc19wYWcoY29uc3Qgc3RydWN0IG5ucGZz
X25vZGUgKngNCiBpbnQNCiBubnBmc19ub2RlX3VzZXJzKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcG9z
Ow0KKyNlbHNlDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICpwb3M7DQorI2Vu
ZGlmDQogICAgIGludCB1c2VycyA9IDA7DQogICAgIA0KICAgICAvKiBYWFgg
dGhpcyBzaG91bGQgcHJvYmFibHkgYmUgcHJvdGVjdGVkIHNvbWVob3cgKi8N
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQogICAgIGxpc3RfZm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5
KSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2gocG9zLCAmaW5vZGUt
PmlfZGVudHJ5KSB7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAq
ZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfYWxp
YXMpOw0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3Rf
ZW50cnkocG9zLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7DQorI2Vu
ZGlmDQogCWlmIChubnBmc19kY291bnQoZGVudHJ5KSA+IDEpDQogCSAgICB1
c2VycysrOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYw0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDA3LTAxLTAzIDE1
OjI2OjI3LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9s
aW51eC9ubnBmc19zeXNjYWxscy5jCTIwMTYtMDEtMTQgMTc6MDA6MjAuMDAw
MDAwMDAwICswMTAwDQpAQCAtNDIsNyArNDIsOSBAQA0KICNpbmNsdWRlIDxu
bnBmcy9ubnBmc19zeXNjYWxscy5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBm
c19jb21tb24uaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQog
I2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1
ZGUgPGxpbnV4L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+
DQogDQpAQCAtNTAsNiArNTIsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvc2Vj
dXJpdHkuaD4NCiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKyN1bmRlZiBTWVNDQUxMSEFD
Sw0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMg
bm90IHdvcmsgb24ga2VybmVsIDMuNyBhbmQgbGF0ZXIsIHNlIG5ucGZzX3N5
c2NhbGxzLWxvc3NhZ2UuYyAqLw0KKyNlbmRpZg0KKw0KICNpZiAwDQogI2lm
ZGVmIENPTkZJR19DT01QQVQNCiAjaW5jbHVkZSA8bGludXgvaW9jdGwzMi5o
Pg0KQEAgLTY0LDcgKzcxLDcgQEANCiAjdW5kZWYgTkVFRF9WSUNFSU9DVEwz
Mg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2Nh
bGxzLmMsdiAxLjEyMiAyMDA3LzAxLzAzIDE0OjI2OjI3IHRvbCBFeHAgJCIp
Ow0KK1JDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLmMsdiAxLjEyNSAyMDEw
LzA4LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0
YXRpYyBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKm5ucGZzX3Byb2Nmc19kaXI7
DQpAQCAtODIsMTIgKzg5LDIyIEBAIHR5cGVkZWYgc3RydWN0IGFmc3Byb2Nk
YXRhIHsNCiAgICAgdW5zaWduZWQgbG9uZyBzeXNjYWxsOw0KIH0gYWZzcHJv
Y2RhdGE7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lv
Y3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0K
IAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0K
KyNlbHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3Ry
dWN0IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNp
Z25lZCBsb25nIGFyZyk7DQorI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBm
aWxlX29wZXJhdGlvbnMgbm5wZnNfcHJvY2ZzX2ZvcHMgPSB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAg
ICAgLmlvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQorICAg
IC51bmxvY2tlZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZW5k
aWYNCiB9Ow0KIA0KIA0KQEAgLTE0Nyw1MyArMTY0LDQ4IEBAIHN0YXRpYyBp
bnQgbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAwOw0KICNkZWZpbmUgU0VDMlBB
RyhzKSAobm5wZnNfcGFnX3QpKHVuc2lnbmVkIGxvbmcpKHMpDQogI2RlZmlu
ZSBQQUcyU0VDKHApICh2b2lkICopKHVuc2lnbmVkIGxvbmcpKHApDQogDQot
c3RhdGljIGludA0KLW5ucGZzX3NlY190YXNrX2FsbG9jKHN0cnVjdCB0YXNr
X3N0cnVjdCAqcCkNCi17DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQ
QUcoY3VycmVudC0+c2VjdXJpdHkpOw0KLSAgICBpZiAocGFnKQ0KLQlwLT5z
ZWN1cml0eSA9IFBBRzJTRUMocGFnKTsNCi0gICAgcmV0dXJuIDA7DQotfQ0K
LQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfc2VjX3Rhc2tfZnJlZShzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBwYWcgPSBT
RUMyUEFHKHAtPnNlY3VyaXR5KTsNCi0gICAgaWYgKHBhZykNCi0JcC0+c2Vj
dXJpdHkgPSBOVUxMOw0KLX0NCi0NCiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBu
bnBmc19nZXRfcGFnX3NlYyh2b2lkKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbm5wZnNf
cGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50LT5zZWN1cml0eSk7DQorI2Vs
c2UNCisgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50X3Nl
Y3VyaXR5KCkpOw0KKyNlbmRpZg0KICAgICBpZiAocGFnKQ0KIAlyZXR1cm4g
cGFnOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF
UlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQs
MCkNCisgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAg
eyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZh
bDsgfQ0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgaW50DQogbm5wZnNfc2V0
X3BhZ19zZWModm9pZCkNCiB7DQogICAgIHN0YXRpYyBubnBmc19wYWdfdCBw
YWdudW0gPSBOTlBGU19QQUdfTExJTTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisgICAgc3RydWN0IGNy
ZWQgKmNyZWQ7DQorI2VuZGlmDQogDQogICAgIGlmIChwYWdudW0gPT0gTk5Q
RlNfUEFHX1VMSU0pDQogCXJldHVybiAtRU5PTUVNOw0KICAgICAvKiBwYWdu
dW0gPSBOTlBGU19QQUdfTExJTTsgKi8NCiAgICAgDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGN1
cnJlbnQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0pOw0KKyNlbHNlDQor
ICAgIGNyZWQgPSAoc3RydWN0IGNyZWQgKikgY3VycmVudC0+Y3JlZDsNCisg
ICAgY3JlZC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQorI2VuZGlm
DQogICAgIHBhZ251bSsrOw0KICAgICByZXR1cm4gMDsNCiB9DQogDQotc3Rh
dGljIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIG5ucGZzX3NlY19vcHMg
PSB7DQotICAgIC50YXNrX2FsbG9jX3NlY3VyaXR5ID0gbm5wZnNfc2VjX3Rh
c2tfYWxsb2MsDQotICAgIC50YXNrX2ZyZWVfc2VjdXJpdHkgPSBubnBmc19z
ZWNfdGFza19mcmVlLA0KLS8vICAgIC50YXNrX3JlcGFyZW50X3RvX2luaXQg
PSBubnBmc19zZWNfcmVwYXJlbnRfdG9faW5pdCwNCi19Ow0KLQ0KICNlbmRp
ZiAvKiBDT05GSUdfU0VDVVJJVFkgKi8NCiANCiAjaWZkZWYgR1JPVVBQQUdT
DQpAQCAtMjA2LDcgKzIxOCwxMiBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBf
aW5mbyAqZ2kpDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgiZmluZF9wYWc6
IG5ncm91cHMgPSAlZFxuIiwgZ2ktPm5ncm91cHMpKTsNCiANCiAgICAgZm9y
IChpID0gZ2ktPm5ncm91cHMgLSAxOyBpID49IDA7IGktLSkgew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQog
CWdpZF90IGdyb3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQorCWtn
aWRfdCBrZ3JvdXAgPSBHUk9VUF9BVChnaSwgaSk7DQorCWdpZF90IGdyb3Vw
ID0ga2dyb3VwLnZhbDsNCisjZW5kaWYNCiAJaWYgKChubnBmc19wYWdfdCln
cm91cCA+PSBOTlBGU19QQUdfTExJTSAmJiAobm5wZnNfcGFnX3QpZ3JvdXAg
PCBOTlBGU19QQUdfVUxJTSkgew0KIAkgICAgTk5QRlNERUIoWERFQlNZUywN
CiAJCSAgICAgKCJmaW5kX3BhZzogRXhpc3RpbmcgcGFnICV1IGF0IHBvcyAl
dVxuIiwgZ3JvdXAsIGkpKTsNCkBAIC0yMjIsMTUgKzIzOSwzMSBAQCBmaW5k
X3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogc3RhdGljIG5ucGZzX3Bh
Z190DQogbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg
ICAgc3RydWN0IGdyb3VwX2luZm8gKmdpID0gY3VycmVudC0+Z3JvdXBfaW5m
bzsNCiAgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+dWlkOw0KKyNl
bHNlDQorICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdldF9jdXJyZW50
X2dyb3VwcygpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE0LDApDQorICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJl
bnRfdWlkKCk7DQorI2Vsc2UNCisgICAga3VpZF90IGt1aWQgPSBjdXJyZW50
X3VpZCgpOw0KKyAgICBubnBmc19wYWdfdCByZXQgPSBrdWlkLnZhbDsNCisj
ZW5kaWYNCisjZW5kaWYNCiAgICAgaW50IGk7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGdl
dF9ncm91cF9pbmZvKGdpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRf
cGFnKGdpKTsNCiAgICAgaWYgKGkgIT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0
LDApDQogCXJldCA9IEdST1VQX0FUKGdpLCBpKTsNCisjZWxzZQ0KKwl7IGtn
aWRfdCBrZ2lkID0gR1JPVVBfQVQoZ2ksIGkpOyByZXQgPSBrZ2lkLnZhbDsg
fQ0KKyNlbmRpZg0KIA0KICAgICBwdXRfZ3JvdXBfaW5mbyhnaSk7DQogDQpA
QCAtMjQyLDEzICsyNzUsMTkgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lk
KQ0KIHN0YXRpYyBpbnQNCiBzdG9yZV9wYWcobm5wZnNfcGFnX3QgcGFnbnVt
KQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9
IGN1cnJlbnQtPmdyb3VwX2luZm87DQorI2Vsc2UNCisgICBzdHJ1Y3QgZ3Jv
dXBfaW5mbyAqb2xkX2dpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2Vu
ZGlmDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpuZXdfZ2k7DQotICAgIGlu
dCBuYmxvY2tzLCBjb3VudDsNCisgICAgdW5zaWduZWQgaW50IG5ibG9ja3Ms
IGNvdW50Ow0KICAgICBpbnQgZm91bmQgPSAwOw0KICAgICBpbnQgaSwgazsN
CiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS
U0lPTigyLDYsMjgpICAgIA0KICAgICBnZXRfZ3JvdXBfaW5mbyhvbGRfZ2kp
Ow0KKyNlbmRpZg0KIA0KICAgICBpID0gZmluZF9wYWcob2xkX2dpKTsNCiAg
ICAgaWYgKGkgIT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0KQEAgLTI3NCwxMCAr
MzEzLDE3IEBAIHN0b3JlX3BhZyhubnBmc19wYWdfdCBwYWdudW0pDQogCWNv
dW50IC09IE5HUk9VUFNfUEVSX0JMT0NLOw0KICAgICB9DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAg
ICAgaWYgKGZvdW5kKQ0KIAlHUk9VUF9BVChuZXdfZ2ksIGkpID0gcGFnbnVt
Ow0KICAgICBlbHNlDQogCUdST1VQX0FUKG5ld19naSwgbmV3X2dpLT5uZ3Jv
dXBzIC0gMSkgPSBwYWdudW07DQorI2Vsc2UNCisgICAgaWYgKGZvdW5kKQ0K
Kwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9B
VChuZXdfZ2ksIGkpID0ga2dpZDsgfQ0KKyAgICBlbHNlDQorCXsga2dpZF90
IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwg
bmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQorI2VuZGlmDQogICAg
IA0KICAgICBzZXRfY3VycmVudF9ncm91cHMobmV3X2dpKTsNCiAgICAgcHV0
X2dyb3VwX2luZm8obmV3X2dpKTsNCkBAIC0zMTcsNyArMzYzLDEzIEBAIG5u
cGZzX2dldF9wYWcoKQ0KICAgICByZXR1cm4gbm5wZnNfZ2V0X3BhZ19ncm91
cCgpOw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
cmV0dXJuIGN1cnJlbnQtPnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJy
ZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJy
ZW50X3VpZCgpOyByZXR1cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQog
DQogc3RhdGljIGlubGluZSBpbnQNCkBAIC00MjIsNyArNDc0LDcgQEAgbm5w
ZnNfc2V0Z3JvdXBzMTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRp
ZiAvKiBTWVNDQUxMSEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8N
CiANCi1zdHJ1Y3QgZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxl
X2hhbmRsZSB7DQogICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3Qg
aW5vZGU7DQogICAgIF9fdTMyIGdlbjsNCkBAIC01MDksMTQgKzU2MSwyNyBA
QCBubnBmc19kZWJ1Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9jdGwgDQog
ICogZm9sbG93IHN5bWxpbmtzIGlmZiBgZm9sbG93Jw0KICAqLw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIHVzZXJfcGF0aDJkZW50cnkg
KHN0cnVjdCBuYW1laWRhdGEgKm5kLCBjaGFyICp1c2VyX3BhdGgsIGludCBm
b2xsb3cpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQordXNl
cl9wYXRoMmRlbnRyeSAoc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKnVzZXJf
cGF0aCwgaW50IGZvbGxvdykNCisjZW5kaWYNCiB7DQotICAgIGNoYXIgKmtu
YW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAgICBpbnQgZXJyb3IgPSAw
Ow0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVzZXJfcGF0aCk7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0K
KyAgICBjaGFyICprbmFtZTsNCisgICAga25hbWUgPSBnZXRuYW1lKHVzZXJf
cGF0aCk7DQorI2Vsc2UNCisgICAgY29uc3QgY2hhciAqa25hbWU7DQorICAg
IHN0cnVjdCBmaWxlbmFtZSAqZm5hbWU7DQorICAgIGZuYW1lID0gZ2V0bmFt
ZSh1c2VyX3BhdGgpOw0KKyAgICBrbmFtZSA9IGZuYW1lLT5uYW1lOw0KKyNl
bmRpZg0KKw0KICAgICBpZiAoSVNfRVJSKGtuYW1lKSkNCiAJcmV0dXJuIEVS
Ul9QVFIoUFRSX0VSUihrbmFtZSkpOw0KICAgICBpZiAoZm9sbG93KQ0KQEAg
LTUyNCwxMSArNTg5LDI1IEBAIHVzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBu
YW1laWRhdGEgKm5kLCANCiANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJu
bnBmc19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM5KQ0KICAgICBlcnJvciA9IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywg
bmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZs
YWdzLCAmKG5kLT5wYXRoKSk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJu
X3BhdGgoa25hbWUsIGZsYWdzLCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAg
IHB1dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIGttZW1fY2FjaGVfZnJl
ZShuYW1lc19jYWNoZXAsICh2b2lkICopa25hbWUpOw0KKyNlbmRpZg0KICAg
ICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVycm9yKTsNCi0gICAg
cmV0dXJuIG5kLT5kZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgcmV0dXJuIG5kLT5wYXRo
LmRlbnRyeTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGF0aC0+ZGVudHJ5Ow0K
KyNlbmRpZg0KIH0NCiANCiBhc21saW5rYWdlIGxvbmcNCkBAIC01NDAsMTIg
KzYxOSwyNCBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiB7DQog
ICAgIGxvbmcgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgYXJsYVZpY2VJb2N0
bCB2aWNlX2lvY3RsOyANCi0gICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlv
Y3RsIG1zZzsNCisgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3RsICpt
c2cgPSBOVUxMOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAg
Km1zZzI7DQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5VTEw7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBz
dHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KICAgICANCisgICAgbXNnID0g
a21hbGxvYyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOw0KKyAgICBpZiAo
bXNnID09IE5VTEwpDQorICAgICAgcmV0dXJuIC1FTk9NRU07DQorDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBs
b2NrX2tlcm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVyIGFkZGluZyBhbiBw
cml2YXRlIGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERF
QlNZUywgKCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIpKTsNCiANCkBAIC01
NzUsNyArNjY2LDcgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQog
CSAgICBnb3RvIHVubG9jazsNCiAJfQ0KIAlpZiAodmljZV9pb2N0bC5pbl9z
aXplICE9IDApIHsNCi0JICAgIGlmKGNvcHlfZnJvbV91c2VyKCZtc2cubXNn
LA0KKwkgICAgaWYoY29weV9mcm9tX3VzZXIoJm1zZy0+bXNnLA0KIAkJCSAg
ICAgIHZpY2VfaW9jdGwuaW4sDQogCQkJICAgICAgdmljZV9pb2N0bC5pbl9z
aXplKSAhPSAwKSB7DQogCQllcnJvciA9IC1FRkFVTFQ7DQpAQCAtNTgzLDcg
KzY3NCwxMSBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAJICAg
IH0NCiAJfQ0KIAlpZiAoYV9wYXRoUCAhPSBOVUxMKSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAg
IGRlbnRyeSA9IHVzZXJfcGF0aDJkZW50cnkgKCZuZCwgYV9wYXRoUCwgYV9m
b2xsb3dTeW1saW5rcyk7DQorI2Vsc2UNCisJICAgIGRlbnRyeSA9IHVzZXJf
cGF0aDJkZW50cnkgKCZwYXRoLCBhX3BhdGhQLCBhX2ZvbGxvd1N5bWxpbmtz
KTsNCisjZW5kaWYNCiAJICAgIGlmICghZGVudHJ5KSB7DQogCQllcnJvciA9
IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCkBAIC02MjgsMTkgKzcyMywy
MyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAJCWVycm9yID0g
LUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KIAkgICAgfQ0KLQkgICAgbXNn
LmhhbmRsZSA9IHhuLT5oYW5kbGU7DQorCSAgICBtc2ctPmhhbmRsZSA9IHhu
LT5oYW5kbGU7DQogCX0NCiANCi0JbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBG
U19NU0dfUElPQ1RMOw0KLQltc2cub3Bjb2RlID0gYV9vcGNvZGU7DQorCW1z
Zy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QSU9DVEw7DQorCW1zZy0+
b3Bjb2RlID0gYV9vcGNvZGU7DQogCQ0KLQltc2cuaW5zaXplICAgPSB2aWNl
X2lvY3RsLmluX3NpemU7DQotCW1zZy5vdXRzaXplICA9IHZpY2VfaW9jdGwu
b3V0X3NpemU7DQotCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCi0J
bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKwltc2ctPmluc2l6
ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KKwltc2ctPm91dHNpemUgID0g
dmljZV9pb2N0bC5vdXRfc2l6ZTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9
IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcg
PSBubnBmc19nZXRfcGFnKCk7DQogCQ0KLQllcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKCZubnBmc1swXSwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsg
LyogWFhYICovDQotCW1zZzIgPSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2Fr
ZXVwICopICZtc2c7DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMoJm5u
cGZzWzBdLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNnKSk7IC8qIFhYWCAq
Lw0KKwltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1cCAqKSBt
c2c7DQogCWlmIChlcnJvciA9PSAwKQ0KIAkgICAgZXJyb3IgPSBtc2cyLT5l
cnJvcjsNCiANCkBAIC02NzUsMTIgKzc3NCwyMSBAQCBzeXNfYWZzX2ludCAo
aW50IG9wZXJhdGlvbiwNCiAgICAgDQogIHVubG9jazoNCiAgICAgaWYgKGRl
bnRyeSkNCi0JcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJcGF0aF9wdXQo
Jm5kLnBhdGgpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZwYXRoKTsNCisjZW5k
aWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19zeXNjYWxs
IHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAgTk5Q
RlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIpKTsN
CisgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxvY2tfa2VybmVsKCk7
DQorI2Vsc2UNCisgICAgLyogVE9ETzogc2VlIHRoZSBjb21tZW50IGF0IGxv
Y2tfa2VybmVsKCkgYWJvdmUgKi8NCisjZW5kaWYNCiANCiAgICAgcmV0dXJu
IGVycm9yOw0KIH0NCkBAIC03MjksOSArODM3LDE1IEBAIHN5c19hZnMgKGlu
dCBvcGVyYXRpb24sDQogCQkgICAgICAgYV9mb2xsb3dTeW1saW5rcyk7DQog
fQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChz
dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAg
IHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbHNl
DQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGZp
bGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs
b25nIGFyZykNCisjZW5kaWYNCiB7DQogICAgIGFmc3Byb2NkYXRhIGFyZ3M7
DQogICAgIGxvbmcgcmV0Ow0KQEAgLTc4MCwyMSArODk0LDMxIEBAIHN0YXRp
YyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiB7DQogICAgIHN0cnVj
dCBwcm9jX2Rpcl9lbnRyeSAqZW50cnk7DQogICAgIA0KLSAgICBubnBmc19w
cm9jZnNfZGlyID0gcHJvY19ta2RpcihOTlBGU19QUk9DX0RJUiwgcHJvY19y
b290X2ZzKTsNCisgICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIo
ImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KICAgICBpZiAobm5wZnNf
cHJvY2ZzX2RpciA9PSBOVUxMKQ0KIAlyZXR1cm4gLUVOT01FTTsNCiAgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzMCkNCiAgICAgbm5wZnNfcHJvY2ZzX2Rpci0+b3duZXIgPSBUSElTX01P
RFVMRTsNCisjZW5kaWYNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnkgPSBjcmVh
dGVfcHJvY19lbnRyeShOTlBGU19QUk9DX05PREUsIDA2NjYsIG5ucGZzX3By
b2Nmc19kaXIpOw0KKyNlbHNlDQorICAgIGVudHJ5ID0gcHJvY19jcmVhdGUo
Tk5QRlNfUFJPQ19OT0RFLCAwNjY2LCBOVUxMLCAmbm5wZnNfcHJvY2ZzX2Zv
cHMpOw0KKyNlbmRpZg0KICAgICBpZiAoZW50cnkgPT0gTlVMTCkgew0KIAlO
TlBGU0RFQihYREVCU1lTLCAoIm5ucGZzX2luaXRfcHJvY2ZzOiBubyBub2Rl
XG4iKSk7DQotCXJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfRElSLCBw
cm9jX3Jvb3RfZnMpOw0KKwlyZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBOTlBG
U19QUk9DX0RJUiwgTlVMTCk7DQogCXJldHVybiAtRU5PTUVNOw0KICAgICB9
DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzApDQogICAgIGVudHJ5LT5vd25lciA9IFRISVNfTU9EVUxF
Ow0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDEwLDApDQogICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5w
ZnNfcHJvY2ZzX2ZvcHM7DQorI2VuZGlmDQogDQogI2lmZGVmIFNZU0NBTExD
T01QQVQNCiAgICAgaWYgKHJlZ2lzdGVyX2lvY3RsMzJfY29udmVyc2lvbihB
UkxBX1ZJT0NfU1lTQ0FMTDMyLCBubnBmc19wcm9jZnNfaW9jdGwzMikpIHsN
CkBAIC04MTUsNyArOTM5LDcgQEAgc3RhdGljIHZvaWQgbm5wZnNfZXhpdF9w
cm9jZnModm9pZCkNCiAgICAgfQ0KICNlbmRpZiAvKiBTWVNDQUxMQ09NUEFU
ICovDQogICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwg
bm5wZnNfcHJvY2ZzX2Rpcik7DQotICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5O
UEZTX1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyAgICByZW1vdmVfcHJv
Y19lbnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQogfQ0KIA0K
ICNpZmRlZiBHUk9VUFBBR1MNCkBAIC04MzksMTQgKzk2Myw2IEBAIGluc3Rh
bGxfc2V0Z3JvdXBzKHZvaWQpDQogdm9pZA0KIGluc3RhbGxfYWZzX3N5c2Nh
bGwodm9pZCkNCiB7DQotI2lmZGVmIENPTkZJR19TRUNVUklUWQ0KLSAgICBp
ZiAocmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMpKQ0KLQlOTlBG
U0RFQihYREVCU1lTLA0KLQkJICgiaW5zdGFsbF9hZnNfc3lzY2FsbDogbm5w
ZnNfaW5pdF9zZWMgZmFpbGVkXG4iKSk7DQotICAgIGVsc2UNCi0Jbm5wZnNf
c2VjX3JlZ2lzdGVyZWQgPSAxOw0KLSNlbmRpZg0KLQ0KICAgICBubnBmc19p
bml0X3Byb2NmcygpOw0KIA0KICNpZmRlZiBTWVNDQUxMSEFDSw0KQEAgLTg4
NywxMiArMTAwMyw2IEBAIHJlc3RvcmVfYWZzX3N5c2NhbGwgKHZvaWQpDQog
I2VuZGlmDQogI2VuZGlmIC8qIFNZU0NBTExIQUNLICovDQogDQotI2lmZGVm
IENPTkZJR19TRUNVUklUWQ0KLSAgICBpZiAobm5wZnNfc2VjX3JlZ2lzdGVy
ZWQpDQotCWlmICh1bnJlZ2lzdGVyX3NlY3VyaXR5KCZubnBmc19zZWNfb3Bz
KSkNCi0JICAgIHByaW50ayhLRVJOX0VNRVJHICJubnBmc19leGl0X3NlYzog
Y291bGRuJ3QgdW5yZWdpc3RlclxuIik7DQotI2VuZGlmIC8qICFDT05GSUdf
U0VDVVJJVFkgKi8NCi0NCiAjaWZkZWYgR1JPVVBQQUdTDQogI2lmZGVmIFNZ
U0NBTExIQUNLDQogICAgIGlmIChvbGRfc2V0Z3JvdXBzKSB7DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf
c3lzY2FsbHMtbG9zc2FnZS5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
c19zeXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZz
L2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDA2LTEyLTExIDE3
OjMxOjQ1LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9s
aW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxNi0wMS0xMyAyMTo1
MTo0OS4wMDAwMDAwMDAgKzAxMDANCkBAIC00NywxMSArNDcsMjAgQEANCiAj
aW5jbHVkZSA8bGludXgvdW5pc3RkLmg+DQogDQogI2lmZGVmIFJDU0lEDQot
UkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xNyAy
MDA2LzEyLzExIDE2OjMxOjQ1IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6
IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyx2IDEuMTkgMjAxMC8wOC8wOCAy
MDo0MzowNSB0b2wgRXhwICQiKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKy8qIHRo
ZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsg
b24ga2VybmVsIDMuNyBhbmQgbGF0ZXIgKi8NCisjdW5kZWYgU1lTQ0FMTEhB
Q0sNCiAjZW5kaWYNCiANCiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4N
CisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogc3RhdGljIHZvaWQgKmxvd2Vy
X2JvdW5kID0gJmtlcm5lbF90aHJlYWQ7DQorI2VuZGlmDQorI2VuZGlmDQog
DQogdm9pZCAqIF9fYXR0cmlidXRlX18oKHdlYWspKSBzeXNfY2FsbF90YWJs
ZSh2b2lkKTsNCiBubnBmc19zeXNfY2FsbF9mdW5jdGlvbiAqbm5wZnNfc3lz
X2NhbGxfdGFibGUgPQ0KQEAgLTYzLDYgKzcyLDExIEBAIGNvbnN0IGNoYXIg
KiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkNCiAJCSAgICB1bnNpZ25lZCBsb25n
ICpvZmZzZXQsDQogCQkgICAgY2hhciAqKm1vZG5hbWUsIGNoYXIgKm5hbWVi
dWYpOw0KIA0KKyNpZmRlZiBfX3g4Nl82NF9fDQorZXh0ZXJuIHJ3bG9ja190
IHRhc2tsaXN0X2xvY2sgX19hdHRyaWJ1dGVfXygod2VhaykpOw0KKyNlbmRp
Zg0KKw0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0YXRpYyB2b2lkICoqDQog
Z2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICNpZmRlZiBfX3g4Nl82NF9fDQpA
QCAtNzEsNiArODUsNyBAQCBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogICAg
IHJldHVybiAodm9pZCAqKikmbXV0ZXhfbG9jazsNCiAjZW5kaWYNCiB9DQor
I2VuZGlmDQogDQogc3RhdGljIGlubGluZSBpbnQgDQoga2FsbHN5bV9pc19l
cXVhbCh1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKm5hbWUpDQpA
QCAtMTM5LDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lkICoqcCkgew0KICAgICBy
ZXR1cm4gMTsNCiB9DQogDQorI2lmZGVmIFNZU0NBTExIQUNLDQorDQogc3Rh
dGljIGlubGluZSBpbnQgbG9va3NfZ29vZCh2b2lkICoqcCkNCiB7DQogICAg
IGlmICgqcCA8PSAodm9pZCopbG93ZXJfYm91bmQgfHwgKnAgPj0gKHZvaWQq
KXApDQpAQCAtMTg4LDMgKzIwNSw1IEBAIG5ucGZzX2ZpeHVwX3N5c2NhbGxf
bG9zc2FnZSh2b2lkKQ0KIA0KICAgICByZXR1cm4gMDsNCiB9DQorDQorI2Vu
ZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv
bGludXgvbm5wZnNfdmZzb3BzLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25u
cGZzX3Zmc29wcy5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9u
bnBmc192ZnNvcHMuYwkyMDA2LTEyLTExIDE3OjQzOjM1LjAwMDAwMDAwMCAr
MDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMu
YwkyMDE2LTAyLTE0IDAxOjM2OjA2LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQ0
LDMwICs0NCwyNiBAQA0KICNpbmNsdWRlIDxsaW51eC9tbS5oPg0KIA0KICNp
ZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5jLHYgMS4x
MDkgMjAwNi8xMi8xMSAxNjo0MzozNSB0b2wgRXhwICQiKTsNCitSQ1NJRCgi
JElkOiBubnBmc192ZnNvcHMuYyx2IDEuMTExIDIwMTAvMDgvMDggMjA6NDM6
MDYgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RydWN0IG5ucGZzIG5u
cGZzW05OTlBGU107DQogDQotc3RhdGljIHZvaWQgbm5wZnNfcmVhZF9pbm9k
ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsNCiBzdGF0aWMgdm9pZCBubnBmc19w
dXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7DQotc3RhdGljIHZv
aWQgbm5wZnNfcHV0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkN
CiBzdGF0aWMgdm9pZCBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiBzYik7DQorI2VuZGlmDQogDQotI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQogc3RhdGljIGludCBu
bnBmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qga3N0
YXRmcyAqYnVmKTsNCi0jZWxzZQ0KLXN0YXRpYyBpbnQgbm5wZnNfc3RhdGZz
KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYp
Ow0KLSNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9u
cyBubnBmc19zb3BzID0geyANCi0gICAgcmVhZF9pbm9kZQkJOiBubnBmc19y
ZWFkX2lub2RlLA0KLSAgICBwdXRfaW5vZGUJCTogbm5wZnNfcHV0X2lub2Rl
LA0KICAgICBhbGxvY19pbm9kZQkJOiBubnBmc19ub2RlX2FsbG9jLA0KICAg
ICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBkcm9w
X2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KICAgICBwdXRfc3Vw
ZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgd3JpdGVfc3VwZXIJ
CTogbm5wZnNfd3JpdGVfc3VwZXIsDQorI2VuZGlmDQogICAgIHN0YXRmcwkJ
OiBubnBmc19zdGF0ZnMsDQogfTsNCiANCkBAIC05NCw3ICs5MCwxMSBAQCBu
bnBmc19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSkNCiAJICogcm9vdCdz
IHByaXZpbGlnZXMgKHVzdWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMgbmVlZGVk
KS4NCiAJICovDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE0LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7DQorI2Vs
c2UNCisJbXNnLmNyZWQudWlkID0gS1VJRFRfSU5JVCgwKTsNCisjZW5kaWYN
CiAJbXNnLmNyZWQucGFnID0gMDsNCiAJDQogCWVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K
QEAgLTEyOSw4ICsxMjksMTMgQEAgbWFrZV9yb290X2lub2RlKHN0cnVjdCBu
bnBmcyAqbm5wZnNwKQ0KICAgICBYQV9TRVRfTU9ERSgmbm9kZS5hdHRyLCBT
X0lGRElSIHwgMDc3Nyk7DQogICAgIFhBX1NFVF9OTElOSygmbm9kZS5hdHRy
LCAxMDApOw0KICAgICBYQV9TRVRfU0laRSgmbm9kZS5hdHRyLCAwKTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9T
RVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNlbHNlDQorICAgIFhBX1NFVF9V
SUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgwKSk7DQorICAgIFhBX1NFVF9H
SUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgwKSk7DQorI2VuZGlmDQogICAg
IFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX01U
SU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfQ1RJTUUoJm5vZGUu
YXR0ciwgMCk7DQpAQCAtMTU5LDcgKzE2NCwxMSBAQCBtYWtlX3Jvb3QgKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAgIG5ucGZzLT5yb290ID0gaW5v
ZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBoYW5kbGluZyAqLw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDQsMCkNCiAg
ICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQorICAgIGRw
ID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNlbmRpZg0KICAgICBubnBmc19k
X2luaXQoZHApOw0KICAgICBzYi0+c19yb290ID0gZHA7DQogICAgIHJldHVy
biAwOw0KQEAgLTE4MywxMyArMTkyLDI3IEBAIG5ucGZzX3JlYWRfc3VwZXIg
KHN0cnVjdCBzdXBlcl9ibG9jayAqIHMNCiAgICAgTk5QRlNERUIoWERFQlZG
T1BTLCAoIm5ucGZzX3JlYWRfc3VwZXI6IGJlZ2luIHNldHRpbmcgdmFyaWFi
bGVzXG4iKSk7DQogDQogICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
IAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRo
IHBhdGg7DQorI2VuZGlmDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29r
dXAoZGF0YSwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRo
KGRhdGEsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5f
cGF0aChkYXRhLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikN
CiAJICAgIGRkZXYgPSBFUlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KLQkgICAg
ZGRldiA9IG5kLmRlbnRyeTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgZGRldiA9IG5kLnBhdGgu
ZGVudHJ5Ow0KKyNlbHNlDQorCSAgICBkZGV2ID0gcGF0aC5kZW50cnk7DQor
I2VuZGlmDQogDQogCWlmICghSVNfRVJSKGRkZXYpKSB7DQogCSAgICBtaW5v
cmRldmljZSA9IE1JTk9SKGRkZXYtPmRfaW5vZGUtPmlfcmRldik7DQpAQCAt
MjMzLDcgKzI1Niw3IEBAIG5ucGZzX2ZpbGxfc3VwZXIgKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2INCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkp
DQogaW50DQogbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBl
ICpmc190eXBlLA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2
X25hbWUsDQpAQCAtMjQyLDE5ICsyNjUsMjIgQEAgbm5wZnNfZ2V0X3NiKHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmcw0KICAgICByZXR1cm4gZ2V0X3Ni
X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVy
LCBtbnQpOw0KIH0NCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQot
bm5wZnNfZ2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlw
ZSwNCi0JICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwg
dm9pZCAqZGF0YSkgDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChz
dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQg
ZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRh
dGEpIA0KIHsNCi0gICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBm
bGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlcik7DQorICAgIHJldHVybiBt
b3VudF9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9z
dXBlcik7DQogfQ0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZA0KIG5u
cGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKQ0KIHsN
CiAgICAgc2ItPnNfZGlydCA9IDA7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQog
ICogWFhYIGlzIHRoaXMgZ29vZD8gDQpAQCAtMjczLDczICsyOTksNiBAQCBu
bnBmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikNCiAgICAg
Tk5QRlNERUIoWERFQlZGT1BTLCAoIm5ucGZzX3B1dF9zdXBlciBleGl0aW5n
XG4iKSk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkDQotbm5wZnNfcmVhZF9pbm9k
ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KLXsNCi0gICAgTk5QRlNERUIoWERF
QlZGT1BTLCgibm5wZnNfcmVhZF9pbm9kZSBzdGFydGluZyBpbm9kZTogJXBc
biIsaW5vZGUpKTsNCi0gICAgTk5QRlNERUIoWERFQlZGT1BTLCgibm5wZnNf
cmVhZF9pbm9kZSBpbm9kZS0+aV9pbm86ICVsZFxuIixpbm9kZS0+aV9pbm8p
KTsNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDE5KQ0KLSAgICBpbm9kZS0+aV9ibGtzaXplID0gMTAyNDsNCi0jZW5k
aWYNCi0gICAgaW5vZGUtPmlfbW9kZSA9IDA7DQotICAgIGlub2RlLT5pX29w
ID0gTlVMTDsNCi0gICAgTk5QRlNERUIoWERFQlZGT1BTLCgibm5wZnNfcmVh
ZF9pbm9kZSBleGl0aW5nXG4iKSk7DQotfQ0KLSANCi0vKg0KLSAqIENhbGxl
ZCB3aGVuIGBpbm9kZScgaXMgZGUtcmVmZXJlbmNlZCwgaWUgd2hlbiBpcHV0
IGlzIGNhbGxlZC4NCi0gKi8NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3B1
dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KLXsNCi0gICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KLSAg
ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5v
ZGUpOw0KLSAgICBpbnQgYmFkOw0KLQ0KLSAgICBOTlBGU0RFQihYREVCVkZP
UFMsKCJubnBmc19wdXRfaW5vZGU6IGlub2RlOiAlcCBjb3VudDogJWQgYWxp
YXNlczoiLA0KLQkJCWlub2RlLCBubnBmc19pY291bnQoaW5vZGUpKSk7DQot
ICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0KLSAgICANCi0gICAg
ZG93bigmbm5wZnNwLT5pbmFjdGl2ZV9zZW0pOw0KLQ0KLSAgICBpZiAoKG5u
cGZzcC0+c3RhdHVzICYgTk5QRlNfREVWT1BFTikgPT0gMCkgew0KLQlpZiAo
IWlzX2JhZF9pbm9kZShpbm9kZSkpIHsNCi0JICAgIGlmIChpbm9kZSAhPSBu
bnBmc3AtPnJvb3QpIHsNCi0JCW1ha2VfYmFkX2lub2RlKGlub2RlKTsNCi0J
CW5ucGZzX2lyZWxlKGlub2RlKTsgLyogc2VlIG5ucGZzX25vZGVfYWRkKCkg
Ki8NCi0JICAgIH0NCi0JICAgIHhuLT5mbGFncyB8PSBOTlBGU19TVEFMRTsN
Ci0JfQ0KLQliYWQgPSAxOyAvKiBvciByb290LCByZWFsbHkgKi8NCi0gICAg
fSBlbHNlIHsNCi0JYmFkID0gaXNfYmFkX2lub2RlKGlub2RlKTsNCi0gICAg
fQ0KLQ0KLSAgICBpZiAoeG4tPmZsYWdzICYgTk5QRlNfU1RBTEUgJiYgIW5u
cGZzX25vZGVfdXNlcnMoaW5vZGUpKSB7DQotCXhuLT5mbGFncyB8PSBOTlBG
U19OT0RFX0lQVVQ7IC8qIFhYWCBsb2NraW5nICovDQotICAJbm5wZnNfZm9y
Y2VfaW52YWxpZF9ub2RlKHhuKTsNCi0JeG4tPmZsYWdzICY9IH5OTlBGU19O
T0RFX0lQVVQ7DQotICAgIH0NCi0gICAgDQotICAgIGlmIChiYWQpIHsNCi0J
aWYgKG5ucGZzX2ljb3VudChpbm9kZSkgPT0gMSkNCi0JICAgIG5ucGZzX25v
ZGVfY2xlYXIoeG4pOw0KLSAgICB9IGVsc2UgaWYgKG5ucGZzX2ljb3VudChp
bm9kZSkgPT0gMikgew0KLQkvKiANCi0JICogVGhlIGxhc3QgZXh0ZXJuYWwg
cmVmZXJlbmNlIGlzIGJlaW5nIGRyb3BwZWQsIG9ubHkgdGhlIG9uZQ0KLQkg
KiBmcm9tIG5ucGZzX25vZGVfYWRkKCkgaXMgbGVmdC4gVGltZSB0byBsZXQg
ZGFlbW9uIHJlbGVhc2UNCi0JICogdGhpcyBub2RlIHByb3Blcmx5Lg0KLQkg
Ki8NCi0JaWYgKCh4bi0+ZmxhZ3MgJiBOTlBGU19MSU1CTykgPT0gMCkgew0K
LQkgICAgbm5wZnNfbm9kZV9jbGVhcih4bik7DQotCSAgICBubnBmc19xdWV1
ZV9pbmFjdGl2ZSh4bik7DQotCX0NCi0gICAgfQ0KLQ0KLSAgICB1cCgmbm5w
ZnNwLT5pbmFjdGl2ZV9zZW0pOw0KLX0NCi0NCiBzdGF0aWMgaW50DQogbm5w
ZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qg
a3N0YXRmcyAqYnVmKQ0KIHsNCkBAIC0zNTIsMjUgKzMxMSwyNSBAQCBubnBm
c19zdGF0ZnNfaW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsDQogICAgIHRt
cC5mX2JhdmFpbCAgPSAxMDI0KjEwMjQqMi01MDsNCiAgICAgdG1wLmZfZmls
ZXMgICA9IDEwMjQqMTAyNDsNCiAgICAgdG1wLmZfZmZyZWUgICA9IDEwMjQq
MTAyNC0xMDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzBdID0gMDsNCisgICAg
dG1wLmZfZnNpZC52YWxbMV0gPSAwOw0KICAgICB0bXAuZl9uYW1lbGVuID0g
TkFNRV9NQVg7DQorICAgIHRtcC5mX2Zyc2l6ZSAgPSAwOw0KKyAgICB0bXAu
Zl9zcGFyZVswXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzFdID0gMDsNCisg
ICAgdG1wLmZfc3BhcmVbMl0gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVszXSA9
IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzNikNCisgICAgdG1wLmZfc3BhcmVbNF0gPSAwOw0KKyNlbHNlDQor
ICAgIHRtcC5mX2ZsYWdzID0gMDsNCisjZW5kaWYNCiAgICAgKmJ1ZiA9IHRt
cDsNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KLSNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KLQ0KIHN0YXRpYyBp
bnQNCiBubnBmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1
Y3Qga3N0YXRmcyAqYnVmKQ0KIHsNCiAgICAgcmV0dXJuIG5ucGZzX3N0YXRm
c19pbnQoZGVudHJ5LT5kX3NiLCBidWYpOw0KIH0NCi0NCi0jZWxzZQ0KLQ0K
LXN0YXRpYyBpbnQNCi1ubnBmc19zdGF0ZnMoc3RydWN0IHN1cGVyX2Jsb2Nr
ICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCi17DQotICAgIHJldHVybiBu
bnBmc19zdGF0ZnNfaW50KHNiLCBidWYpOw0KLX0NCi0NCi0jZW5kaWYNCmRp
ZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9hcmxhZC9mY2FjaGUu
YyBhcmxhLTAuOTAvYXJsYWQvZmNhY2hlLmMNCi0tLSBhcmxhLTAuOTAtb2xk
L2FybGFkL2ZjYWNoZS5jCTIwMDYtMTItMTEgMTc6MjM6MjQuMDAwMDAwMDAw
ICswMTAwDQorKysgYXJsYS0wLjkwL2FybGFkL2ZjYWNoZS5jCTIwMTYtMDEt
MjIgMTc6MDA6NDMuMDAwMDAwMDAwICswMTAwDQpAQCAtNzEzLDcgKzcxMyw3
IEBAIGZjYWNoZV9oYXZlX3dhbnRlZChGQ2FjaGVFbnRyeSAqZW50cnksIHUN
CiBpbnQNCiBmY2FjaGVfZGlyX25hbWUgKEZDYWNoZUVudHJ5ICplbnRyeSwg
Y2hhciAqcywgc2l6ZV90IGxlbikNCiB7DQotICAgIHJldHVybiBzbnByaW50
ZiAocywgbGVuLCAiJTAyWCIsIGVudHJ5LT5pbmRleCAvIDB4MTAwKTsNCisg
ICAgcmV0dXJuIHNucHJpbnRmIChzLCBsZW4sIE5OUEZTX0NBQ0hFX0ZJTEVf
RElSMSwgZW50cnktPmluZGV4IC8gMHgxMDApOw0KIH0NCiANCiAvKg0KQEAg
LTcyMyw3ICs3MjMsNyBAQCBmY2FjaGVfZGlyX25hbWUgKEZDYWNoZUVudHJ5
ICplbnRyeSwgY2hhDQogc3RhdGljIGludA0KIGZjYWNoZV9maWxlX25hbWUg
KEZDYWNoZUVudHJ5ICplbnRyeSwgY2hhciAqcywgc2l6ZV90IGxlbikNCiB7
DQotICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCAiJTAyWC8lMDJYIiwN
CisgICAgcmV0dXJuIHNucHJpbnRmIChzLCBsZW4sIE5OUEZTX0NBQ0hFX0ZJ
TEVfRElSX1BBVEgsDQogCQkgICAgIGVudHJ5LT5pbmRleCAvIDB4MTAwLCBl
bnRyeS0+aW5kZXggJSAweDEwMCk7DQogfQ0KIA0KQEAgLTgxNSw3ICs4MTUs
NyBAQCBmY2FjaGVfZmhnZXQgKGNoYXIgKmZpbGVuYW1lLCBmY2FjaGVfY2Fj
DQogCWludCByZXQsIGEsIGI7DQogCWNoYXIgYnVmWzEwMjRdOw0KIA0KLQly
ZXQgPSBzc2NhbmYoZmlsZW5hbWUsICIlMDJYLyUwMlgiLCAmYSwgJmIpOw0K
KwlyZXQgPSBzc2NhbmYoZmlsZW5hbWUsIE5OUEZTX0NBQ0hFX0ZJTEVfRElS
X1BBVEgsICZhLCAmYik7DQogCWlmIChyZXQgIT0gMikNCiAJICAgIHJldHVy
biBFSU5WQUw7DQogDQpAQCAtODI0LDcgKzgyNCw3IEBAIGZjYWNoZV9maGdl
dCAoY2hhciAqZmlsZW5hbWUsIGZjYWNoZV9jYWMNCiAJDQogCXJldCA9IHNu
cHJpbnRmKChjaGFyICopaGFuZGxlLT5ubnBmc19oYW5kbGUsIA0KIAkJICAg
ICAgIHNpemVvZihoYW5kbGUtPm5ucGZzX2hhbmRsZSksDQotCQkgICAgICAg
IiVzXFwlMDJYXFwlMDJYIiwgYnVmLCBhLCBiKTsNCisJCSAgICAgICAiJXNc
XCIgTk5QRlNfQ0FDSEVfRklMRV9ESVJfUEFUSCwgYnVmLCBhLCBiKTsNCiAN
CiAJaWYgKHJldCA+IDAgJiYgcmV0IDwgc2l6ZW9mKGhhbmRsZS0+bm5wZnNf
aGFuZGxlKSkNCiAJICAgIGhhbmRsZS0+dmFsaWQgPSAxOw0K

---276651502-885096632-1455459211=:21655
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Arla-drinkers mailing list
Arla-drinkers@stacken.kth.se
https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers

---276651502-885096632-1455459211=:21655--

home help back first fref pref prev next nref lref last post