[5059] in arla-drinkers
Re: PATCH: Arla 0.90 on Linux 2.6.34 to 4.4
daemon@ATHENA.MIT.EDU (Bo Branten)
Thu Jan 14 21:12:52 2016
From arla-drinkers-bounces@stacken.kth.se Fri Jan 15 02:12:52 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 8325 invoked from network); 15 Jan 2016 02:12:51 -0000
Received: from mx6.kth.se (130.237.48.70)
by charon.mit.edu with SMTP; 15 Jan 2016 02:12:51 -0000
Received: from mx6.kth.se (localhost [127.0.0.1])
by mx6.kth.se (Postfix) with ESMTP id D391A1C0114;
Fri, 15 Jan 2016 03:12:50 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx6.kth.se ([127.0.0.1])
by mx6.kth.se (mx6.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id Bfx79U1y4jjX; Fri, 15 Jan 2016 03:12:17 +0100 (CET)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
by mx6.kth.se (Postfix) with ESMTP;
Fri, 15 Jan 2016 03:12:17 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id 1AEFF14CAD8;
Fri, 15 Jan 2016 03:12:17 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id 97D9614CAD8; Fri, 15 Jan 2016 03:12:15 +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 9200B14CAD7
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:12:15 +0100 (CET)
Received: from mx7.kth.se (localhost [127.0.0.1])
by mx7.kth.se (Postfix) with ESMTP id 7EF41140084
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:12:15 +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]:43795
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 qbyp6ToV8Xwa for <arla-drinkers@stacken.kth.se>;
Fri, 15 Jan 2016 03:12:13 +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>; Fri, 15 Jan 2016 03:12:12 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id A34C1856
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:12:12 +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 1BBD5853
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:12:00 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id 16C8944B8C; Fri, 15 Jan 2016 03:12:00 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id 1037744B8B
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:12:00 +0100 (CET)
Date: Fri, 15 Jan 2016 03:12:00 +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.34 to 4.4
In-Reply-To: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
BOUNDARY="-276651502-1797910491-1452823920=:11672"
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-1797910491-1452823920=:11672
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH: Arla 0.90 on Linux 2.6.34 to 4.4
With this patch there are no newer kernels so now we can start debugging
nnpfs.
Bo Branten
---276651502-1797910491-1452823920=:11672
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-0.90-for-linux-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601150312000.11672@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-arla-0.90-for-linux-4.4
ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBm
cy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaAkyMDA2LTEwLTI0IDE4
OjMzOjMwLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQu
NC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaAkyMDE2LTAxLTEy
IDE5OjI5OjUwLjUyMjA3MjA4NCArMDEwMA0KQEAgLTExMyw4ICsxMTMsMTMg
QEAgc3RydWN0IG5ucGZzX2F0dHIgew0KICAgICB1aW50MzJfdAkJeGFfbmxp
bms7DQogICAgIHVpbnQzMl90CQl4YV90eXBlOw0KIA0KKyNpZiAoZGVmaW5l
ZChfX0tFUk5FTF9fKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMywxNCwwKSkNCisgICAga3VpZF90CQl4YV91aWQ7DQorICAg
IGtnaWRfdAkJeGFfZ2lkOw0KKyNlbHNlDQogICAgIHVpbnQzMl90CQl4YV91
aWQ7DQogICAgIHVpbnQzMl90CQl4YV9naWQ7DQorI2VuZGlmDQogDQogICAg
IHVpbnQzMl90CQl4YV9hdGltZTsNCiAgICAgdWludDMyX3QJCXhhX210aW1l
Ow0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2lu
Y2x1ZGUvbm5wZnMvbm5wZnNfYmxvY2tzLmggYXJsYS1mb3ItbGludXgtNC40
L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfYmxvY2tzLmgNCi0tLSBhcmxh
LTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2
LTEwLTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9y
LWxpbnV4LTQuNC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5o
CTIwMDctMDEtMjQgMTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1
ICsxLDUgQEANCiAvKg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBT
dG9ja2hvbG1zIFVuaXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1
LTIwMDcsIFN0b2NraG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xt
IFVuaXZlcnNpdHksIFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0
cyByZXNlcnZlZC4NCiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDog
bm5wZnNfYmxvY2tzLmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wg
RXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcv
MDEvMjQgMTc6MDk6MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBG
U19OT19JTkRFWCAgIDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2Rl
ZmluZSBOTlBGU19OT19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1t
eSBvZmZzZXQsIG5vIGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNI
RV9GSUxFX1BBVEggICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBO
TlBGU19DQUNIRV9ESVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmlu
ZSBOTlBGU19DQUNIRV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsx
KQ0KKyNkZWZpbmUgTk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAy
eCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5Q
RlNfQ0FDSEVfRklMRV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjEN
CisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxs
eCINCisNCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZT
X0NBQ0hFX0ZJTEVfRElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxP
Q0tfUEFUSA0KKyNkZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5Q
RlNfQ0FDSEVfRklMRV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NB
Q0hFX1BBVEhfU0laRSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11
cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBm
cy9ubnBmc19tZXNzYWdlLmggYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2lu
Y2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oDQotLS0gYXJsYS0wLjkwL25u
cGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDYtMTAtMjQg
MTg6MzM6MzIuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgt
NC40L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMTYt
MDEtMTQgMDA6MjY6MDQuMTI2MDE1MTM2ICswMTAwDQpAQCAtMzEsNyArMzEs
NyBAQA0KICAqIFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5w
ZnNfbWVzc2FnZS5oLHYgMS42MSAyMDA2LzEwLzI0IDE2OjMzOjMyIHRvbCBF
eHAgJCAqLw0KKy8qICRJZDogbm5wZnNfbWVzc2FnZS5oLHYgMS42MiAyMDA5
LzAyLzI0IDIwOjIwOjU1IHRvbCBFeHAgJCAqLw0KIA0KICNpZm5kZWYgX3ht
c2dfaA0KICNkZWZpbmUgX3htc2dfaA0KQEAgLTUyLDcgKzUyLDExIEBAIHR5
cGVkZWYgdWludDE2X3Qgbm5wZnNfcmlnaHRzOw0KICAqIFRoZSBubnBmc19j
cmVkLCBpZiBwYWcgPT0gMCwgdXNlIHVpZCANCiAgKi8NCiB0eXBlZGVmIHN0
cnVjdCBubnBmc19jcmVkIHsNCisjaWYgKGRlZmluZWQoX19LRVJORUxfXykg
JiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTQs
MCkpDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCiAgICAgdWludDMyX3Qg
dWlkOw0KKyNlbmRpZg0KICAgICBubnBmc19wYWdfdCBwYWc7DQogfSBubnBm
c19jcmVkOw0KIA0KQEAgLTEwNiw3ICsxMTAsNyBAQCB0eXBlZGVmIHN0cnVj
dCBubnBmc19ibG9ja19oYW5kbGUgew0KIA0KIC8qIG5ucGZzX25vZGUuZmxh
Z3MNCiAgKiBUaGUgbG93ZXIgMTYgYml0IGZsYWdzIGFyZSByZXNlcnZlZCBm
b3IgY29tbW9uIG5ucGZzIGZsYWdzDQotICogVGhlIHVwcGVyIDE2IGJpdCBm
bGFncyBhcmUgcmVzZXJ2ZWQgZm9yIG9wZXJ0aW5nIHN5c3RlbSBkZXBlbmRh
bnQNCisgKiBUaGUgdXBwZXIgMTYgYml0IGZsYWdzIGFyZSByZXNlcnZlZCBm
b3Igb3BlcmF0aW5nIHN5c3RlbSBkZXBlbmRlbnQNCiAgKiBmbGFncy4NCiAg
Ki8NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBm
cy9saW51eC9ubnBmcy9ubm5wZnMuaCBhcmxhLWZvci1saW51eC00LjQvbm5w
ZnMvbGludXgvbm5wZnMvbm5ucGZzLmgNCi0tLSBhcmxhLTAuOTAvbm5wZnMv
bGludXgvbm5wZnMvbm5ucGZzLmgJMjAwMi0wOS0wNyAxMjo0NzoxNy4wMDAw
MDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGlu
dXgvbm5wZnMvbm5ucGZzLmgJMjAwMi0wOS0wNyAxMjo0NzoxNy4wMDAwMDAw
MDAgKzAyMDANCkBAIC0xLDQgKzEsNCBAQA0KIC8qICRJZDogbm5ucGZzLmgs
diAxLjIgMjAwMi8wOS8wNyAxMDo0NzoxNyBsaGEgRXhwICQgKi8NCi0vKiAk
U291cmNlOiAvYWZzL3N0YWNrZW4ua3RoLnNlL3NyYy9Tb3VyY2VSZXBvc2l0
b3J5L2FybGEvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQor
LyogJFNvdXJjZTogL1VzZXJzL2JvL3RtcC9BcmxhU291cmNlUmVwb3NpdG9y
eS9hcmxhL25ucGZzL2xpbnV4L25ucGZzL25ubnBmcy5oLHYgJCAqLw0KIA0K
ICNkZWZpbmUgTk5OUEZTIDINCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oIGFybGEtZm9y
LWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oDQotLS0g
YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0x
MC0yNCAxODozMzo0OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1s
aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAx
LTEzIDIyOjU3OjA2LjM4NzY5MzMzOSArMDEwMA0KQEAgLTg0LDggKzg0LDEz
IEBAIHN0cnVjdCBubnBmcyB7DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2Fj
aGVyb290OyAvKiBzaW1wbGlmeSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0K
ICAgICBzdHJ1Y3QgZGVudHJ5ICpjYWNoZWRpcjsNCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICB1
aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkg
Ki8NCiAgICAgZ2lkX3QgZ2lkOw0KKyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7
IC8qIGtlZXAgdHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCisgICAg
a2dpZF90IGdpZDsNCisjZW5kaWYNCiANCiAgICAgc3RydWN0IHsNCiAJaW50
IHJlY3Vyc2U7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oIGFybGEtZm9yLWxpbnV4
LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgNCi0tLSBhcmxh
LTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oCTIwMDctMDEt
MDggMTQ6NTI6NDkuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGlu
dXgtNC40L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDE2LTAx
LTEzIDIzOjAxOjEwLjE3ODcwODAzNyArMDEwMA0KQEAgLTM0LDcgKzM0LDcg
QEANCiAgKiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZz
X2xvY2wuaCx2IDEuNzcgMjAwNy8wMS8wOCAxMzo1Mjo0OSB0b2wgRXhwICQg
Ki8NCisvKiAkSWQ6IG5ucGZzX2xvY2wuaCx2IDEuNzggMjAxMC8wOC8wOCAy
MDo0MzowNiB0b2wgRXhwICQgKi8NCiANCiAjaWZkZWYgSEFWRV9DT05GSUdf
SA0KICNpbmNsdWRlIDxjb25maWcuaD4NCkBAIC01MSw3ICs1MSw5IEBADQog
I2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGludXgvc3Ry
aW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAjaW5j
bHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8
bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDE1ICsxNDAsMTYgQEAg
dHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNfZmV0Y2hf
cm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KLSNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQog
bm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl
LA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQog
CSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpOw0KICNl
bHNlDQotc3RydWN0IHN1cGVyX2Jsb2NrICoNCi1ubnBmc19nZXRfc2IgKHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KLQkgICAgICBpbnQg
ZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKTsNCitz
dHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3Rl
bV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3QgY2hh
ciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSk7DQogI2VuZGlmDQog
DQogZXh0ZXJuIHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyBubnBmc19kZW50
cnlfb3BlcmF0aW9uczsNCkBAIC0yMDAsMTYgKzIwMywyNSBAQCBubnBmc19p
d3JpdGVjb3VudCAoc3RydWN0IGlub2RlICppbm9kZSkNCiAgKiBIZWxwIGZ1
bmN0aW9uIHRvIHJlYWQgdGhlIGRlbnRyeS0+ZF9jb3VudCBhIHBvcnRhYmxl
IHdheQ0KICAqLw0KIA0KKy8qI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOCkqLw0KIHN0YXRpYyBpbmxpbmUgaW50DQog
bm5wZnNfZGNvdW50IChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQor
LyojZWxzZQ0KK3N0YXRpYyBpbmxpbmUgaW50DQorbm5wZnNfZGNvdW50IChz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmKi8NCiB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAg
ICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRfY291bnQpOw0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs
MCkNCisgICAgcmV0dXJuIGF0b21pY19yZWFkKChjb25zdCBhdG9taWNfdCop
JmRlbnRyeS0+ZF9jb3VudCk7DQorI2Vsc2UNCisgICAgcmV0dXJuIGRfY291
bnQoZGVudHJ5KTs7DQorI2VuZGlmDQogfQ0KIA0KIGV4dGVybiANCi0jaWYg
TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkN
CiBjb25zdA0KLSNlbmRpZg0KIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJh
dGlvbnMgbm5wZnNfYW9wczsNCiANCiAjaWZuZGVmIGxpc3RfZm9yX2VhY2gN
CkBAIC0yMzcsNyArMjQ5LDEyIEBAIG5ucGZzX2ZpeHVwX3N5c2NhbGxfbG9z
c2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5lIG5ucGZzX2Rldl90
IGRldl90DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOCkNCiAjZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNo
ZWQoZCkgaGxpc3RfdW5oYXNoZWQoZCkNCisjZWxzZQ0KKyNkZWZpbmUgbm5w
ZnNfZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF9ibF91bmhhc2hlZChkKQ0K
KyNlbmRpZg0KIA0KICNkZWZpbmUgTk5QRlNfTk9PUCAgICAgIHdoaWxlKDAp
e30NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBm
cy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmggYXJsYS1mb3ItbGludXgtNC40
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaA0KLS0tIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAwNi0xMi0xMSAx
NzoyOTozOS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC00
LjQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oCTIwMTAtMDgtMDgg
MjI6NDM6MDcuMDAwMDAwMDAwICswMjAwDQpAQCAtNTQsNyArNTQsNyBAQCBl
eHRlcm4gdWludDMyX3Qgbm5wZnNfYmxvY2tzaXplYml0czsNCiAgKiBmbGFn
cy4NCiAgKi8NCiANCi0jZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEw
MDAwICAgLyogbm9kZSBpcyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrICov
DQorI2RlZmluZSBOTlBGU19OT0RFX0lQVVQJMHgwMDAxMDAwMCAgIC8qIG5v
ZGUgaXMgaW4gaXB1dCgpLCBhdm9pZCBkZWFkbG9jay4gQ2FuIGJlIHJlbW92
ZWQ/ICovDQogDQogI2RlZmluZSBYTl9IQVNIU0laRSAxMDA5DQogI2RlZmlu
ZSBYTl9DTEVBTlVQX0lURVJTIDEyOQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50
eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jIGFybGEt
Zm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0KLS0t
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAx
LTA4IDE0OjI0OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxp
bnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTE0
IDAxOjAxOjE5LjgwNzE0MjY4NSArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEAN
CiAgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0v
KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6
MjQgdG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEu
NiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNs
dWRlIDxubnBmcy9ubnBmc19sb2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25u
cGZzX2ZzLmg+DQpAQCAtNDMsNiArNDMsMzYgQEANCiAjaW5jbHVkZSA8bGlu
dXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkN
CisvKiBUT0RPOiBpbXBsZW1lbnQgYSByZXBsYWNlbWVudCBmb3IgdmZzX3Bh
dGhfbG9va3VwIG9uIGtlcm5lbCAzLjEyIGFuZCBsYXRlciAqLw0KKy8qKg0K
KyAqIHZmc19wYXRoX2xvb2t1cCAtIGxvb2t1cCBhIGZpbGUgcGF0aCByZWxh
dGl2ZSB0byBhIGRlbnRyeS12ZnNtb3VudCBwYWlyDQorICogQGRlbnRyeTog
IHBvaW50ZXIgdG8gZGVudHJ5IG9mIHRoZSBiYXNlIGRpcmVjdG9yeQ0KKyAq
IEBtbnQ6IHBvaW50ZXIgdG8gdmZzIG1vdW50IG9mIHRoZSBiYXNlIGRpcmVj
dG9yeQ0KKyAqIEBuYW1lOiBwb2ludGVyIHRvIGZpbGUgbmFtZQ0KKyAqIEBm
bGFnczogbG9va3VwIGZsYWdzDQorICogQHBhdGg6IHBvaW50ZXIgdG8gc3Ry
dWN0IHBhdGggdG8gZmlsbA0KKyAqLw0KK2ludCBubnBmc19wYXRoX2xvb2t1
cChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCB2ZnNtb3VudCAqbW50
LA0KKwkJICAgIGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBmbGFn
cywNCisJCSAgICBzdHJ1Y3QgcGF0aCAqcGF0aCkNCit7DQorI2lmIDANCisJ
c3RydWN0IG5hbWVpZGF0YSBuZDsNCisJaW50IGVycjsNCisJbmQucm9vdC5k
ZW50cnkgPSBkZW50cnk7DQorCW5kLnJvb3QubW50ID0gbW50Ow0KKwlCVUdf
T04oZmxhZ3MgJiBMT09LVVBfUEFSRU5UKTsNCisJLyogdGhlIGZpcnN0IGFy
Z3VtZW50IG9mIGRvX3BhdGhfbG9va3VwKCkgaXMgaWdub3JlZCB3aXRoIExP
T0tVUF9ST09UICovDQorCWVyciA9IGRvX3BhdGhfbG9va3VwKEFUX0ZEQ1dE
LCBuYW1lLCBmbGFncyB8IExPT0tVUF9ST09ULCAmbmQpOw0KKwlpZiAoIWVy
cikNCisJCSpwYXRoID0gbmQucGF0aDsNCisJcmV0dXJuIGVycjsNCisjZW5k
aWYNCisJcmV0dXJuIC0xOw0KK30NCisjZW5kaWYNCisNCiAvKg0KICAqIHJl
dHVybiB0cnVlIGlmIGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkw
LDcgKzMyMCwxMyBAQCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZz
X25vZGUgKm5vDQogICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGlu
Zy0+aG9zdDsNCiANCiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0
ZXgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDgsMCkNCiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5w
ZnNfYmxvY2tzaXplKTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdz
aXplX29rKGJhY2tub2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZigh
cmV0KQ0KKyAgICAgICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5w
ZnNfYmxvY2tzaXplKTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZi
YWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJh
Y2tmaWxlLCBOVUxMKTsNCkBAIC0zMTgsMTAgKzM1NCwyNiBAQCBubnBmc19i
bG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIHN0cnVj
dCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2RlKTsNCiAg
ICAgc3RydWN0IGlub2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKG5vZGUp
Ow0KICAgICBpbnQgZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBzdHJ1
Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90IHNhdmV1
aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90
IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRpZg0KICAg
ICBpbnQgcmV0Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqb2xk
X2NyZWQ7DQorICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0KKyNl
bmRpZg0KKw0KKyAgICAodm9pZClzYXZldWlkOw0KKyAgICAodm9pZClzYXZl
Z2lkOw0KIA0KICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19PTihm
bGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0zNDYsMjEg
KzM5OCw0MyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2Rl
ICpub2RlDQogICAgIEJVR19PTighbm5wZnNwLT5jYWNoZWRpciB8fCAhbm5w
ZnNwLT5jYWNoZXJvb3QpOw0KICAgICANCiAgICAgLyogdXNlIHRoZSBuZnNk
IHRyaWNrIHRvIGdpdmUgdXMgYWNjZXNzICovDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHNhdmV1
aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1cnJlbnQt
PmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+dWlkOw0K
ICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0KLSAgICBu
ZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAgICBuZC5t
bnQgPSBtbnRnZXQobm5wZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBuZC5sYXN0
X3R5cGUgPSBMQVNUX05PUk07DQotICAgIG5kLmRlcHRoID0gMDsNCi0gICAg
bmQuZmxhZ3MgPSAwOw0KLSAgICANCi0gICAgaWYgKGZsYWdzICYgT19DUkVB
VCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBfUEFSRU5UOw0KLSAgICANCi0gICAg
cmV0ID0gcGF0aF93YWxrKGNhY2hlbmFtZSwgJm5kKTsNCisjZWxzZQ0KKyAg
ICBzYXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0KKyAgICBzYXZlZ2lkID0g
Y3VycmVudF9mc2dpZCgpOw0KKyAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFy
ZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0K
KyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRlX2NyZWQt
PmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2NyZWQtPmZz
Z2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVf
Y3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KKyAgICBy
ZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNw
LT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAm
IE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
MiwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNo
ZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQor
CQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJ
CQkgICZuZC5wYXRoKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIHJldCA9IG5ucGZzX3BhdGhf
bG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0K
KwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9P
S1VQX1BBUkVOVCA6IDAsDQorCQkJICAmbmQucGF0aCk7DQorI2Vsc2UNCisg
ICAgcmV0ID0gbm5wZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg
bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm
bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZw
YXRoKTsNCisjZW5kaWYNCiAgICAgaWYgKHJldCkgew0KIAl1aW50MzJfdCBu
bWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsN
CkBAIC0zODcsMTYgKzQ2MSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVj
dCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBP
X0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNf
SVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5
ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCS8qIFRPRE86
IGNoZWNrIHRoZSBjYWxsIHRvIGtlcm5fcGF0aF9jcmVhdGUoKSwgaXMgdGhl
IHNlY29uZCBhcmd1bWVudCBvcHRpb25hbD8gKi8NCisJc3RydWN0IGRlbnRy
eSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVMTCwg
Jm5kLnBhdGgsIDApOwkNCisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUg
Y2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCksIGlzIHRoZSBzZWNvbmQgYXJn
dW1lbnQgb3B0aW9uYWw/ICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9
IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIE5VTEwsICZwYXRoLCAwKTsJ
DQorI2VuZGlmDQogCWlmIChJU19FUlIoZGVudHJ5KSkgew0KIAkgICAgcmV0
ID0gUFRSX0VSUihkZW50cnkpOw0KIAl9IGVsc2Ugew0KLQkgICAgcmV0ID0g
dmZzX2NyZWF0ZShuZC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVT
UnxTX0lXVVNSLCAmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCisJICAgIHJldCA9IHZmc19jcmVhdGUo
bmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lX
VVNSLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCisJICAgIC8qIFRPRE86IHNob3VsZCB0aGUg
bGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwg
YmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRo
LmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDAp
Ow0KKyNlbHNlDQorCSAgICAvKiBUT0RPOiBzaG91bGQgdGhlIGxhc3QgYXJn
dW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3Ig
MT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRf
aW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYN
CiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KLQltdXRleF91bmxvY2so
Jm5kLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQotCXBhdGhfcmVsZWFz
ZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQorCW11dGV4X3VubG9jaygmbmQucGF0aC5kZW50cnkt
PmRfaW5vZGUtPmlfbXV0ZXgpOw0KKwlwYXRoX3B1dCgmbmQucGF0aCk7DQor
I2Vsc2UNCisJbXV0ZXhfdW5sb2NrKCZwYXRoLmRlbnRyeS0+ZF9pbm9kZS0+
aV9tdXRleCk7DQorCXBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAJ
aWYgKHJldCkgew0KIAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVz
KSBjcmVhdGUgZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBA
IC00MTAsMTIgKzUwNSwyNSBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBu
bnBmc19ub2RlICpub2RlDQogCSAgICByZXQgPSBubnBmc19ibG9ja19leHRl
bmQobm9kZSwgb2Zmc2V0KTsNCiAJfQ0KICAgICB9IGVsc2Ugew0KLQlzdHJ1
Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLmRlbnRyeSwgbmQubW50LCBm
bGFncyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOSkNCisJc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3Blbihu
ZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzKTsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisg
ICAgICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5k
ZW50cnksIG5kLnBhdGgubW50LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCisJc3RydWN0IHBhdGggdG1wX3BhdGggPSB7IC5tbnQgPSBuZC5w
YXRoLm1udCwgLmRlbnRyeSA9IG5kLnBhdGguZGVudHJ5IH07DQorICAgICAg
ICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZ0bXBfcGF0aCwgZmxh
Z3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZWxzZQ0KKyAgICAgICAgc3RydWN0
IGZpbGUgKmYgPSBkZW50cnlfb3BlbigmcGF0aCwgZmxhZ3MsIGN1cnJlbnRf
Y3JlZCgpKTsNCisjZW5kaWYNCiAJaWYgKElTX0VSUihmKSkgew0KIAkgICAg
cmV0ID0gUFRSX0VSUihmKTsNCiAJICAgIHByaW50aygibm5wZnNfYmxvY2tf
b3Blbiglcykgb3BlbiBmYWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQp
Ow0KIAkgICAgbm5wZnNfZGVidWdfb29wcygpOw0KLQkgICAgcGF0aF9yZWxl
YXNlKCZuZCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisj
ZWxzZQ0KKwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVs
c2Ugew0KIAkgICAgKmZpbGUgPSBmOw0KIAl9DQpAQCAtNDI0LDggKzUzMiwx
MyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl
DQogICAgIC8qIHBhdGhfcmVsZWFzZSgpIGlzIHVzdWFsbHkgaGFuZGxlZCBv
biBjbG9zZSAqLw0KIA0KICBvdXQ6DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGN1cnJlbnQtPmZz
dWlkID0gc2F2ZXVpZDsNCiAgICAgY3VycmVudC0+ZnNnaWQgPSBzYXZlZ2lk
Ow0KKyNlbHNlDQorICAgIHJldmVydF9jcmVkcyhvbGRfY3JlZCk7DQorICAg
IHB1dF9jcmVkKG92ZXJyaWRlX2NyZWQpOw0KKyNlbmRpZg0KIA0KICAgICBy
ZXR1cm4gcmV0Ow0KIH0NCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEt
MC45MC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBhcmxhLWZvci1saW51
eC00LjQvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAwNi0xMi0xMSAxNzoz
MTo0Ni4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC00LjQv
bm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAxNi0wMS0xNCAxNjoxNTow
MC4zNDc0NDc2NTcgKzAxMDANCkBAIC0xMTIsMTAgKzExMiwxNSBAQCBubnBm
c19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVjdCBpbm9kZSAqDQogdm9pZA0K
IG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1Y3QgaW5vZGUg
Kmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFsaWFz
Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQorI2Vu
ZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCiAgICAgaW50IGJh
aWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlub2RlLT5pX2Rl
bnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2Rl
bnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwgMCkgew0KQEAgLTEzMSw2ICsx
MzYsMjYgQEAgbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0cnVj
dCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQogICAgIH0NCisj
ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCBh
bGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisg
ICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVu
dHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hf
ZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX3UuZF9hbGlhcykg
ew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkgew0KKwkgICAgcHJp
bnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0KKwlpZiAoZGVudHJ5
KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChpbnQpZGVudHJ5LT5k
X25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUubmFtZSwgZGVudHJ5
KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFzaGVkKCZkZW50cnkt
PmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCkiKTsNCisJfQ0KKyAg
ICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsNCiB9DQogDQpAQCAt
MTQ2LDcgKzE3MSwxMSBAQCBubnBmc19wcmludF9jaGlsZHJlbihjb25zdCBz
dHJ1Y3QgZGVudHJ5DQogDQogICAgIHdoaWxlIChzdWJkaXJzICE9ICZkZW50
cnktPmRfc3ViZGlycykgew0KIAlzdHJ1Y3QgbGlzdF9oZWFkICp0bXAgPSBz
dWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9l
bnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsNCisjZWxz
ZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBz
dHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5kaWYNCiANCiAJcHJpbnRr
KCIgJS4qcyglcCkiLCAoaW50KWNoaWxkLT5kX25hbWUubGVuLA0KIAkgICAg
ICAgY2hpbGQtPmRfbmFtZS5uYW1lLCBjaGlsZCk7DQpkaWZmIC11cHJOIC1Y
bm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMg
YXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX2Rldi5jDQot
LS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAt
MjQgMTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGlu
dXgtNC40L25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEtMTQgMTY6
Mjg6MTkuMjUwNDk1ODIwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5IEBAIG5u
cGZzX2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMNCiAgICAg
Tk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3Rh
cnRpbmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihubnBmcy0+
c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZzLT5zYik7
DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJm
cmVlX2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAgLTM3NCw3
ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2RlICogaW5v
ZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVhZChzdHJ1
Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZf
dCAqcHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmls
ZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBu
bnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl
LT5pX3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNw
ID0gJm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbGlu
ayAqZmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7DQpAQCAt
NDM5LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAq
ZmlsZSwgY29uc3QNCiANCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBm
c19kZXZ3cml0ZVxuIikpOw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBkZXYgPSBmaWxl
LT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KLSAgICBubnBmc3AgPSAm
bm5wZnNbTUlOT1IoZGV2KV07DQorI2Vsc2UNCisgICAgZGV2ID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KKyAg
ICAgbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KIA0KICAgICBkb3du
KCZubnBmc3AtPmNoYW5uZWxfc2VtKTsNCiAgICAgaWYgKG5ucGZzcC0+c3Rh
dHVzICYgTk5QRlNfREVWV1JJVEUpIHsNCkBAIC01MDUsMTkgKzUxNSwzNyBA
QCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QNCiAv
Kg0KICAqIE5vdCB1c2VkLg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5u
cGZzX2RldmlvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl
ICpmaWxlLA0KIAkgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQg
bG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9j
a2VkX2RldmlvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5z
aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzYpDQogICAgIE5OUEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9j
dGwgZGV2ID0gJWQsIGZsYWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUt
PmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNE
RUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3Mg
PSAlZFxuIiwNCisJCSAgICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+
aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNE
RUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3Mg
PSAlZFxuIiwNCisJCSAgICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lu
b2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAg
cmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQN
CiBubnBmc19kZXZwb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxl
ICp3YWl0KQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxl
LT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5u
cGZzX2Rldl90IGRldiA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUt
PmlfcmRldjsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3Ag
PSAmbm5wZnNbTUlOT1IoZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAg
ICANCkBAIC05NTMsNyArOTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgbm5wZnNfZm9wcyA9IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQs
DQogICAgIHdyaXRlOgkJbm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlu
bnBmc19kZXZwb2xsLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9j
dGwsDQorI2Vsc2UNCisgICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9j
a2VkX2RldmlvY3RsLA0KKyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNf
ZGV2Y2xvc2UsDQogICAgIG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpA
QCAtOTY4LDggKzEwMDAsMTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkN
CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUp
KTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5w
ZnNfaW5pdHEoJm5ucGZzW2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRF
WCgmbm5wZnNbaV0uaW5hY3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5w
ZnNbaV0uY2hhbm5lbF9zZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5w
ZnNbaV0uaW5hY3RpdmVfc2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tp
XS5jaGFubmVsX3NlbSwgMSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFE
KCZubnBmc1tpXS5pbmFjdGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVz
ID0gMDsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMgYXJsYS1mb3ItbGlu
dXgtNC40L25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMNCi0tLSBhcmxh
LTAuOTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDA2LTEyLTEx
IDE3OjM1OjI2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4
LTQuNC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMTYtMDEtMTQg
MTk6MjA6MTkuMzIyMTE3OTg4ICswMTAwDQpAQCAtNDAsMjUgKzQwLDQxIEBA
DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxu
bnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNf
c3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1
ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5o
Pg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxp
bnV4L3BhZ2UtZmxhZ3MuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49
IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8u
aD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQog
I2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJD
U0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2LzEyLzEx
IDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX2lu
b2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAg
JCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19p
bnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBz
dGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQog
c3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5
ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNf
ZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5k
aWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnkpOw0KQEAgLTEwNSw3ICsxMjEsNyBAQCBubnBmc192
bWFfY2xvc2UgKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqDQogfQ0KIA0KIHN0
YXRpYyBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgbm5wZnNfZmlsZV92
bV9vcHMgPSB7DQotICAgIC5ub3BhZ2UJPSBmaWxlbWFwX25vcGFnZSwNCisg
ICAgLmZhdWx0ICAgICAgPSBmaWxlbWFwX2ZhdWx0LA0KICAgICAuY2xvc2UJ
PSBubnBmc192bWFfY2xvc2UsDQogfTsNCiANCkBAIC0xMzQsMTIgKzE1MCwx
NCBAQCBubnBmc19wcmludF9wYXRoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkN
CiAgKg0KICAqLw0KIA0KKyNpZiAwDQogdm9pZA0KIG5ucGZzX3ByaW50X2xv
Y2soY2hhciAqcywgc3RydWN0IHNlbWFwaG9yZSAqc2VtKQ0KIHsNCiAgICAg
Tk5QRlNERUIoWERFQkxPQ0ssICgibG9jazogJXMgc2VtOiAlcCBjb3VudDog
JWRcbiIsDQogCQkgICAgICBzLCBzZW0sIChpbnQpYXRvbWljX3JlYWQoJnNl
bS0+Y291bnQpKSk7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQogICoNCkBAIC0x
ODUsNyArMjAzLDcgQEAgbm5wZnNfZF9pcHV0KHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwgc3RydQ0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsDQogCSAgICAg
KCJubnBmc19kX2lwdXQ6IGRlbnRyeSAlcCwgaW5vZGUgJXBcbiIsIGRlbnRy
eSwgaW5vZGUpKTsNCiAgICAgDQotICAgIGlmIChub2RlLT5mbGFncyAmIE5O
UEZTX05PREVfSVBVVCkgLyogWFhYIGxvY2tpbmcgKi8NCisgICAgaWYgKG5v
ZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2luZy4g
bmV2ZXIgc2V0PyAqLw0KIAlubnBmc19pcmVsZShpbm9kZSk7DQogICAgIGVs
c2UNCiAJaXB1dChpbm9kZSk7DQpAQCAtMjEyLDggKzIzMCwxMyBAQCBubnBm
c19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIG5ucGZz
X2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8NCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
c3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAoc3RydWN0
IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5h
bWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRyeSAq
DQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQog
ew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2RlIG1zZzsNCiAg
ICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtMjQwLDcgKzI2MywxMSBA
QCBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QNCiAN
CiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUTk9ERTsNCiAg
ICAgICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF
UlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7
DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlk
KCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWco
KTsNCiAJbXNnLnBhcmVudF9oYW5kbGUgPSBkLT5oYW5kbGU7DQogICAgICAg
ICANCkBAIC0zMTAsNyArMzM3LDExIEBAIG5ucGZzX29wZW5fdmFsaWQoc3Ry
dWN0IGlub2RlICp2cCwgdV9pbnQNCiAgICAgICB7DQogCXN0cnVjdCBubnBm
c19tZXNzYWdlX29wZW4gbXNnOw0KIAltc2cuaGVhZGVyLm9wY29kZSA9IE5O
UEZTX01TR19PUEVOOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS
TkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50
LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJl
bnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl
dF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCW1zZy50
b2tlbnMgPSB0b2s7DQpAQCAtMzk3LDcgKzQyOCwxMSBAQCBmaW5kX2ZpcnN0
X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogc3RhdGljIGludA0K
IG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQgZmxh
ZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt
PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl
bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZTX0ZST01f
Vk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBW
Tk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGxvZmZfdCBsZW4gPSBpX3Np
emVfcmVhZChpbm9kZSk7DQpAQCAtNDI1LDcgKzQ2MCwxMSBAQCBubnBmc19m
c3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50DQogDQogCW1zZy5o
ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVERBVEE7DQogCW1zZy5jcmVk
LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuaGFuZGxlID0g
eG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcgICA9IGZsYWc7DQogCW1zZy5vZmZz
ZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs0OTksMjcgQEAgbm5wZnNfZnN5bmNf
aW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2ludA0KICAqDQogICovDQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
NSkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZp
bGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IGRhdGFzeW5jKQ0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSww
KQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmls
ZSwgaW50IGRhdGFzeW5jKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZz
X2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQsIGxvZmZf
dCBlbmQsIGludCBkYXRhc3luYykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQorICAg
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7
DQorI2VuZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllf
VE9fSU5PREUoZGVudHJ5KTsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7
DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9y
ID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBlcnJvciA9
IG5ucGZzX2lub2RlX3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVycm9yKQ0K
IAlyZXR1cm4gZXJyb3I7DQpAQCAtNTExLDcgKzU2MywxMSBAQCBubnBmc19h
dHRyX3ZhbGlkKHN0cnVjdCBpbm9kZSAqIHZwLCB1X2luDQogICAgICAgICAg
ICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAg
ICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRU
UjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50
LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVk
LnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhh
bmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBj
KG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01NTEs
NyArNjA3LDExIEBAIG5ucGZzX3JpZ2h0c192YWxpZChzdHJ1Y3QgaW5vZGUg
KiB2cCwgbm4NCiAgICAgICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9n
ZXRhdHRyIG1zZzsNCiANCiAgICAgICAgICAgICBtc2cuaGVhZGVyLm9wY29k
ZSA9IE5OUEZTX01TR19HRVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICAgICAgICAgIG1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQog
ICAgICAgICAgICAgbXNnLmNyZWQucGFnID0gcGFnOw0KICAgICAgICAgICAg
IG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICAgICAgICAgIGVycm9y
ID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6
ZW9mKG1zZykpOw0KQEAgLTU5MiwxMSArNjUyLDI1IEBAIGNoZWNrX3JpZ2h0
cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBo
b2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkpDQorc3RhdGljIGludA0K
K25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1v
ZGUpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQotbm5wZnNfcGVybWlzc2lvbihz
dHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0
YSAqbmQpDQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsN
CiAgICAgaW50IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0g
bm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkN
CisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0
dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1f
RkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYN
CisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAg
Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUg
PSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19w
cmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC02MzYsNyArNzEwLDExIEBAIG5u
cGZzX2RvX2dldGRhdGEoc3RydWN0IG5ucGZzX25vZGUgKnhuLA0KICAgICBp
bnQgZXJyb3I7DQogDQogICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNf
TVNHX0dFVERBVEE7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJl
bnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50
X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19n
ZXRfcGFnKCk7DQogICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAg
ICBtc2cudG9rZW5zID0gdG9rOw0KQEAgLTc1MCwxMSArODI4LDE5IEBAIG5u
cGZzX2RhdGFfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSwgdV8NCiBpbnQg
bm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICogZmlsZSwgc3RydWN0IHZt
X2FyZWFfc3RydWN0ICogdm1hKQ0KIHsNCiAgICAgaW50IGZsYWdzLCBlcnJv
ciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt
PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl
bmRpZg0KICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGZp
bGUtPmZfbWFwcGluZzsNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo
Im5ucGZzX21tYXAgaW5vZGU6ICVwXG4iLCBpbm9kZSkpOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9kZW50cnkpOw0KKyNlbHNlDQor
ICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9wYXRoLmRlbnRyeSk7DQor
I2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19tbWFw
IGFsaWFzZXM6IikpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2Rl
KTsNCiAgICAgDQpAQCAtNzg5LDM3ICs4NzUsNTAgQEAgaW50IG5ucGZzX2Zp
bGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsDQogICoNCiAgKi8NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiww
KQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtp
b2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMiw2LDE5KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0IGlvdmVj
ICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJICAgICAgIGxvZmZf
dCBwb3MpDQogI2Vsc2UNCi0JICAgICAgIGNoYXIgX191c2VyICpidWYsIHNp
emVfdCBjb3VudCwNCitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3JlYWRfaXRl
cihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pDQog
I2VuZGlmDQotCSAgICAgICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVy
cm9yID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9m
aWxwOw0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDEyLDApDQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5r
aV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDQsMiwwKQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lf
bmJ5dGVzOw0KKyNlbHNlDQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRl
cl9jb3VudCh0byk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2Rl
ICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQor
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5
LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq
eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAo
eG4gIT0gTlVMTCkNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3Jl
YWRfZmlsZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2Rl
LCB4bi0+dG9rZW5zKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19k
YXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291
bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChp
bm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3Bv
cyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5O
UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90
IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAg
IH0NCiAgICAgDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2Zp
bGVfYWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNl
DQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlvY2IsIGJ1
ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3Jl
YWRfaXRlcihpb2NiLCB0byk7DQogI2VuZGlmDQogICAgIE5OUEZTREVCKFhE
RUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRcbiIsIGVy
cm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC04MjksMjMgKzkyOCwz
NiBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICoN
CiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3dy
aXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCi0jaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAJCWNvbnN0IHN0cnVj
dCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQorCQlsb2Zm
X3QgcG9zKQ0KICNlbHNlDQotCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBz
aXplX3QgY291bnQsIA0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfd3JpdGVf
aXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJv
bSkNCiAjZW5kaWYNCi0JCWxvZmZfdCBwb3MpDQogew0KICAgICBpbnQgZXJy
b3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2Zp
bHA7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtp
X2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oNCwyLDApDQorICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9u
Ynl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlvdl9pdGVy
X2NvdW50KGZyb20pOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0K
KyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRy
eS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUg
KnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGxvZmZf
dCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxvZmZfdCByZWFscG9z
ID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNE
RUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSglcCk6IHRva2Vuczog
MHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMpKTsNCkBAIC04NTks
MTAgKzk3MSwxMCBAQCBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICpp
b2NiLA0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiANCi0jaWYgTElOVVhf
VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K
ICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgaW92
LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJp
Y19maWxlX2Fpb193cml0ZShpb2NiLCBidWYsIGNvdW50LCBwb3MpOw0KKyAg
ICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlvY2IsIGZyb20p
Ow0KICNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJvcikpDQog
CXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFggcmFjZSAq
Lw0KQEAgLTg3MSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVj
dCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDAp
DQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRp
ciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAgIGludCBtb2RlLCBz
dHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5w
ZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRh
ICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3Ry
dWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAg
ICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5kaWYNCiB7DQogICAg
IHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqeG47DQpAQCAtOTAzLDkgKzEwMjUsMTcgQEAgbm5wZnNfY3JlYXRlKHN0
cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZA0KICAgICBYQV9DTEVBUigmbXNn
LmF0dHIpOw0KICAgICBYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0K
ICAgICBYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfUkVHKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZz
Z2lkKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3Vy
cmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCiAgICAgbXNnLm1vZGUgPSAwOwkJ
LyogWFhYICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt
PnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3Vp
ZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRf
cGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw
LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3Ig
PT0gMCkNCkBAIC05NDYsNyArMTA3NiwxMSBAQCBubnBmc191bmxpbmsgKHN0
cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0DQogICAgIGlmIChzdHJsY3B5KG1z
Zy5uYW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUp
KSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsN
CisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7
DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNn
LmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkN
CkBAIC05OTEsNyArMTEyNSwxMSBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBp
bm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uZXdf
bmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmV3
X25hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRP
T0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM
X1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50
LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91
aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0
X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZz
cCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9y
ID09IDApDQpAQCAtMTAwOCw4ICsxMTQ2LDEzIEBAIG5ucGZzX3JlbmFtZSAo
c3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAgcmV0dXJuIGVycm9y
Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVj
dCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9k
ZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3Qg
aW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBt
b2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7
DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xMDQwLDkgKzEx
ODMsMTcgQEAgbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1
Y3QgZA0KIAlYQV9DTEVBUigmbXNnLmF0dHIpOw0KIAlYQV9TRVRfTU9ERSgm
bXNnLmF0dHIsIG1vZGUpOw0KIAlYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5O
UEZTX0ZJTEVfRElSKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJWEFfU0VUX0dJRCgmbXNnLmF0dHIs
IGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJ
RCgmbXNnLmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0K
KyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5k
aWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJv
ciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNp
emVvZihtc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQpAQCAtMTA4Myw3ICsx
MjM0LDExIEBAIG5ucGZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3Ry
dWN0IGQNCiAgICAgbXNnLnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0K
ICAgICBpZiAoc3RybGNweShtc2cubmFtZSwgZGVudHJ5LT5kX25hbWUubmFt
ZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQogCSAg
ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQu
dWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBh
ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19tZXNz
YWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQog
ICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTExMjgsNyArMTI4MywxMSBAQCBz
dGF0aWMgaW50IG5ucGZzX2xpbmsoc3RydWN0IGRlbnRyeSAqb2xkDQogCWlm
IChzdHJsY3B5KG1zZy5uYW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+
PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05H
Ow0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQor
I2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7
DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsN
CiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVh
ZGVyLCBzaXplb2YobXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KQEAgLTEx
NTcsMjkgKzEzMTYsNDcgQEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0
cnVjdCBpbm9kZSAqZA0KICAgICB4biA9IFZOT0RFX1RPX1hOT0RFKGRpcik7
DQogDQogICAgIHsNCi0Jc3RydWN0IG5ucGZzX21lc3NhZ2Vfc3ltbGluayBt
c2c7DQorCXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxpbmsgKm1zZyA9IE5V
TEw7DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1NZTUxJ
Tks7DQotCW1zZy5wYXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCi0JaWYg
KHN0cmxjcHkobXNnLm5hbWUsIG5hbWUsIHNpemVvZihtc2cubmFtZSkpID49
IE5OUEZTX01BWF9OQU1FKQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7
DQotCWlmIChzdHJsY3B5KG1zZy5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9m
KG1zZy5jb250ZW50cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQp
DQotCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JWEFfQ0xFQVIoJm1z
Zy5hdHRyKTsNCi0JWEFfU0VUX01PREUoJm1zZy5hdHRyLCAwNzc3KTsNCi0J
WEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0xOSyk7DQotCVhB
X1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorCW1zZyA9
IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiANCi0JbXNn
LmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBu
bnBmc19nZXRfcGFnKCk7DQotCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo
bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KKwlpZiAobXNn
ID09IE5VTEwpDQorCSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1zZy0+aGVh
ZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ctPnBhcmVu
dF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweShtc2ctPm5h
bWUsIG5hbWUsIHNpemVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19NQVhfTkFN
RSkgew0KKwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xP
Tkc7DQorCX0NCisJaWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywgc3ltbmFt
ZSwgc2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElO
S19DT05URU5UKSB7DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1cm4gLUVO
QU1FVE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRyKTsNCisJ
WEFfU0VUX01PREUoJm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NFVF9UWVBF
KCZtc2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJWEFfU0VU
X0dJRCgmbXNnLT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisg
ICAgICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9mc2dpZCgp
KTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJl
bnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1
cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5w
ZnNwLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNnKSk7DQogCWlmIChlcnJv
ciA9PSAwKQ0KLQkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9S
KCZtc2cpOw0KKwkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9S
KG1zZyk7DQogDQogCS8qIFhYWCBzaG91bGQgdGhpcyByZWFsbHkgYmUgaGVy
ZSAqLw0KIAlpZiAoREVOVFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+eGRfZmxh
Z3MgPT0gMCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBh
bmljOiBubnBmc19zeW1saW5rOiBkZW50cnkgbm90IHZhbGlkXG4iKTsNCiAJ
fQ0KKwlrZnJlZShtc2cpOw0KICAgICB9DQogDQogICAgIHJldHVybiBlcnJv
cjsNCkBAIC0xMTg4LDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNf
c3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9t
dXRleC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGly
KHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90
IGZpbGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0
ZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4
KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qg
b2Zmc2V0LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2Rl
ICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQor
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5
LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hl
X2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U
T19YTk9ERShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjY0LDYg
KzE0NTAsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwg
dm9pZCAqDQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1sZW4sDQogCQkg
ICAgKGludCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJ
ICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAoZmlsbGRp
cl9lcnJvciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAgICB4ZGlyZW50
LT5kX25hbWUsDQpAQCAtMTI3NSw2ICsxNDYyLDE4IEBAIG5ucGZzX3JlYWRk
aXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19y
ZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQli
cmVhazsNCiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRf
ZmlsZW5vICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQg
KGN0eCwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAg
eGRpcmVudC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxl
bm8sDQorCQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNE
RUIoWERFQlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGly
OiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9
DQorI2VuZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47
DQogDQogCSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KQEAg
LTEzMzEsOSArMTUzMCwxNSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRl
bnRyeSAqZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0K
ICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTig0LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xp
bmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlk
YXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBm
c19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZv
aWQgKipwYWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsN
CiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShk
ZW50cnkpOw0KQEAgLTEzNDQsNyArMTU0OSwxMSBAQCBubnBmc19mb2xsb3df
bGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlmIChlcnJvcikN
CiAgICAgICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiAgICAg
cmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBuZCk7DQor
I2Vsc2UNCisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVu
dHJ5LCBwYWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBAIC0xMzk4LDcg
KzE2MDcsMTEgQEAgbm5wZnNfc2V0YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBzdA0KICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcHV0YXR0
ciBtc2c7DQogDQogICAgICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZT
X01TR19QVVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS
TkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50
LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJl
bnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl
dF9wYWcoKTsNCiAgICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0K
ICAgICAgICAgbm5wZnNfaWF0dHIyYXR0cih4biwgYXR0ciwgJm1zZy5hdHRy
KTsNCkBAIC0xNDIyLDYgKzE2MzUsOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUg
KHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogICAgIHN0cnVjdCBubnBmc19ub2Rl
ICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5w
ZnNwOw0KKw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVs
ZWFzZV9maWxlXG4iKSk7DQogDQogICAgIGVycm9yID0gbm5wZnNfaW5vZGVf
dmFsaWQoaW5vZGUpOw0KQEAgLTE0NTAsMTggKzE2NjUsMTggQEAgbm5wZnNf
cmVsZWFzZV9maWxlIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAqDQogICov
DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTgpDQogc3RhdGljIGludA0KIG5ucGZzX2ZsdXNoKHN0cnVjdCBm
aWxlICpmaWxlLCBmbF9vd25lcl90IGlkKQ0KLSNlbHNlDQotc3RhdGljIGlu
dA0KLW5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KLSNlbmRpZg0K
IHsNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2ZsdXNoXG4i
KSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCiAgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9kZW50cnkg
JiYgZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUpDQogCXJldHVybiBubnBmc19y
ZWxlYXNlX2ZpbGUoZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0K
KyNlbHNlDQorICAgIGlmIChmaWxlICYmIGZpbGUtPmZfcGF0aC5kZW50cnkg
JiYgZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkNCisJcmV0dXJuIG5u
cGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl
LCBmaWxlKTsNCisjZW5kaWYNCiAgICAgZWxzZQ0KIAlyZXR1cm4gMDsNCiB9
DQpAQCAtMTQ3MCw4ICsxNjg1LDEzIEBAIG5ucGZzX2ZsdXNoKHN0cnVjdCBm
aWxlICpmaWxlKQ0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxs
IHZhbGlkLCBvdGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIGlu
dA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
IHN0cnVjdCBuYW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUo
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkN
CisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRhdGUoc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2Vu
ZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RP
X0lOT0RFKGRlbnRyeSk7DQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJu
bnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVwKVxuIiwN
CkBAIC0xNTE5LDkgKzE3MzksMTUgQEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0
cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICByZXR1cm4gMDsNCiB9DQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OCkNCiBzdGF0aWMNCiBpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpDQorI2Vsc2UNCitzdGF0aWMNCitpbnQNCitubnBmc19k
X2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlm
DQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG47DQpAQCAtMTU0NiwxMSArMTc3MiwxNiBAQCBubnBm
c19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogfQ0KIA0KIHN0
YXRpYyBzc2l6ZV90DQotbm5wZnNfc2VuZGZpbGUoc3RydWN0IGZpbGUgKmZp
bGUsIGxvZmZfdCAqcHBvcywgc2l6ZV90IGNvdW50LA0KLQkgICAgICAgcmVh
ZF9hY3Rvcl90IGFjdG9yLCB2b2lkICp0YXJnZXQpDQorbm5wZnNfc3BsaWNl
X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCAqcHBvcywNCisJCSAg
c3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwgc2l6ZV90IGNvdW50LA0K
KwkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQogew0KICAgICBpbnQgZXJyb3Ig
PSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m
X2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5k
aWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5P
REUoaW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhuICE9IE5VTEwpDQpAQCAt
MTU2MSw4ICsxNzkyLDcgQEAgbm5wZnNfc2VuZGZpbGUoc3RydWN0IGZpbGUg
KmZpbGUsIGxvZmZfdA0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNf
c2VuZGZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAly
ZXR1cm4gZXJyb3I7DQogICAgIH0NCi0NCi0gICAgZXJyb3IgPSBnZW5lcmlj
X2ZpbGVfc2VuZGZpbGUoZmlsZSwgcHBvcywgY291bnQsIGFjdG9yLCB0YXJn
ZXQpOw0KKyAgICBlcnJvciA9IGZpbGUtPmZfb3AtPnNwbGljZV9yZWFkKGZp
bGUsIHBwb3MsIHBpcGUsIGNvdW50LCBmbGFncyk7DQogDQogICAgIE5OUEZT
REVCKFhERUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogZXJyb3IgPSAlZFxu
IiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTE2MzksMzQg
KzE4NjksMzEgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBhZ2Ug
KnBhZ2UsDQogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gYmFj
a2ZpbGUtPmZfbWFwcGluZzsNCiAJdW5zaWduZWQgbGVuID0gUEFHRV9DQUNI
RV9TSVpFOw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7DQorCXZvaWQgKmZz
ZGF0YTsNCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7DQogDQogCWludCBlcnJv
cjsNCiAJDQotCWRvIHsNCi0JCWJhY2twYWdlID0gZ3JhYl9jYWNoZV9wYWdl
KG1hcHBpbmcsIG5ucGZzX2dldF9iYWNraW5kZXgocGFnZSkpOw0KLQkJaWYg
KCFiYWNrcGFnZSkgew0KLQkJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3Bh
Z2U6IG5vIHBhZ2VcbiIpOw0KLQkJCXJldHVybiAtRUlPOw0KLQkJfQ0KKwko
dm9pZClvZmZzZXQ7DQogDQotCQllcnJvciA9IG1hcHBpbmctPmFfb3BzLT5w
cmVwYXJlX3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJCQkgICAg
ICAwLCBsZW4pOw0KKwlkbyB7DQorCQllcnJvciA9IHBhZ2VjYWNoZV93cml0
ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJCQkJICAg
ICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJQkxFLA0KKwkJCQkJICAgICAgJmJh
Y2twYWdlLCAmZnNkYXRhKTsNCiAJCWlmICghZXJyb3IpIHsNCiAJCQljb3B5
X2hpZ2hwYWdlKGJhY2twYWdlLCBwYWdlKTsNCiAJCQlmbHVzaF9kY2FjaGVf
cGFnZShiYWNrcGFnZSk7DQotCQkJZXJyb3IgPSBtYXBwaW5nLT5hX29wcy0+
Y29tbWl0X3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJCQkJICAg
ICAwLCBsZW4pOw0KKwkJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2VuZChi
YWNrZmlsZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJCQkJbGVuLCBiYWNrcGFn
ZSwgZnNkYXRhKTsNCisJCQlpZiAoZXJyb3IgPiAwKQ0KKwkJCQllcnJvciA9
IDA7DQogCQl9DQogCQlpZiAoZXJyb3IgPT0gQU9QX1RSVU5DQVRFRF9QQUdF
KSB7DQotCQkJcGFnZV9jYWNoZV9yZWxlYXNlKGJhY2twYWdlKTsNCiAJCQlj
b250aW51ZTsNCiAJCX0NCiAJfSB3aGlsZSAoMCk7DQogDQogCW9mZnNldCA9
IHBhZ2Vfb2Zmc2V0KGJhY2twYWdlKTsNCi0JdW5sb2NrX3BhZ2UoYmFja3Bh
Z2UpOw0KLQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0KIA0KIAlp
ZiAoZXJyb3IpDQogCQlwcmludGsoIm5ucGZzX3dyaXRlX2JhY2twYWdlOiBF
SU9cbiIpOw0KQEAgLTE2ODksMTMgKzE5MTYsOSBAQCBubnBmc19yZWFkX2Jh
Y2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzDQogCXN0cnVjdCBwYWdlICpi
YWNrcGFnZTsNCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7DQogDQotI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQor
CSh2b2lkKW9mZnNldDsNCisNCiAJYmFja3BhZ2UgPSByZWFkX21hcHBpbmdf
cGFnZShtYXBwaW5nLCBuLCBiYWNrZmlsZSk7DQotI2Vsc2UNCi0JYmFja3Bh
Z2UgPSByZWFkX2NhY2hlX3BhZ2UobWFwcGluZywgbiwNCi0JCQkJICAgKGZp
bGxlcl90ICopbWFwcGluZy0+YV9vcHMtPnJlYWRwYWdlLA0KLQkJCQkgICBi
YWNrZmlsZSk7DQotI2VuZGlmDQogCWlmICghSVNfRVJSKGJhY2twYWdlKSkg
ew0KIAkJd2FpdF9vbl9wYWdlX2xvY2tlZChiYWNrcGFnZSk7DQogDQpAQCAt
MTg0MiwxMSArMjA2NSwxNyBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVj
dCBmaWxlICpmaWxlLCBzDQogDQogCWlmIChtb2RzaXplID4gaV9zaXplX3Jl
YWQoaW5vZGUpKSB7DQogCQlpbnQgZXJyb3I7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAkJZXJyb3IgPSB2
bXRydW5jYXRlKGlub2RlLCBtb2RzaXplKTsNCisjZWxzZQ0KKwkJZXJyb3Ig
PSBpbm9kZV9uZXdzaXplX29rKGlub2RlLCBtb2RzaXplKTsNCisJCWlmKCFl
cnJvcikNCisJCQl0cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBtb2RzaXplKTsN
CisjZW5kaWYNCiAJCWlmIChlcnJvcikgew0KIAkJCXByaW50aygibm5wZnNf
cHJlcGFyZV93cml0ZTogdHJ1bmNhdGUoJWxsdSkgLT4gJWRcbiIsDQogCQkJ
ICAgICAgIG1vZHNpemUsIC1lcnJvcik7DQotCQkJQlVHKCk7IC8qIFhYWCBu
b3QgY29ycmVjdCAqLw0KKwkJCS8qQlVHKCk7Ki8gLyogWFhYIG5vdCBjb3Jy
ZWN0ICovDQogCQl9DQogCX0NCiANCkBAIC0xODcyLDggKzIxMDEsMzcgQEAg
bm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIAly
ZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5w
ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRy
ZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxl
biwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQg
Kipmc2RhdGEpDQorew0KKwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJcGdvZmZf
dCBpbmRleDsNCisJdW5zaWduZWQgZnJvbTsNCisNCisJaW5kZXggPSBwb3Mg
Pj4gUEFHRV9DQUNIRV9TSElGVDsNCisJZnJvbSA9IHBvcyAmIChQQUdFX0NB
Q0hFX1NJWkUgLSAxKTsNCisNCisjaWZkZWYgQU9QX0ZMQUdfTk9GUw0KKwlw
YWdlID0gZ3JhYl9jYWNoZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGlu
ZGV4LCBmbGFncyk7DQorI2Vsc2UNCisJcGFnZSA9IF9fZ3JhYl9jYWNoZV9w
YWdlKG1hcHBpbmcsIGluZGV4KTsNCisjZW5kaWYNCisJaWYgKHBhZ2UgPT0g
TlVMTCkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwkqcGFnZXAgPSBwYWdl
Ow0KKw0KKwlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdl
LCBmcm9tLCBmcm9tICsgbGVuKTsNCit9DQorDQorI2VuZGlmDQorDQogc3Rh
dGljIGludA0KLW5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmls
ZSwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IHRvKQ0KK25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg
c3RydWN0IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCB0bykNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdl
LT5tYXBwaW5nLT5ob3N0Ow0KICAgICBsb2ZmX3QgcG9zID0gKChsb2ZmX3Qp
cGFnZS0+aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCkBAIC0x
OTAyLDE0ICsyMTYwLDUxIEBAIG5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgc3QNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0K
LWNvbnN0DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigyLDYsMjgpDQorDQorc3RhdGljIGludA0KK25ucGZzX3dyaXRlX2Vu
ZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h
cHBpbmcsIGxvZmZfdCBwb3MsDQorCQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVk
IGNvcGllZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkNCit7
DQorCXVuc2lnbmVkIGZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0g
MSk7DQorDQorCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2Ug
aWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0KKwlpZiAoY29waWVkIDwgbGVu
KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsNiwwKQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBL
TV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9t
aWMocGFnZSk7DQorI2VuZGlmDQorCQltZW1zZXQoa2FkZHIgKyBmcm9tICsg
Y29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0KKwkJZmx1c2hfZGNhY2hlX3Bh
Z2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNF
UjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGthZGRyKTsNCiAjZW5k
aWYNCisJfQ0KKw0KKwlubnBmc19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwg
ZnJvbSwgZnJvbSArIGNvcGllZCk7DQorDQorCXVubG9ja19wYWdlKHBhZ2Up
Ow0KKwlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQorDQorCXJldHVybiBj
b3BpZWQ7DQorfQ0KKw0KKyNlbmRpZg0KKw0KK2NvbnN0DQogc3RydWN0IGFk
ZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hb3BzID0gew0KIAkucmVh
ZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwNCiAJLndyaXRlcGFnZSA9IG5ucGZz
X3dyaXRlcGFnZSwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFyZV93cml0ZSA9IG5ucGZzX3By
ZXBhcmVfd3JpdGUsDQogCS5jb21taXRfd3JpdGUgPSBubnBmc19jb21taXRf
d3JpdGUsDQorI2Vsc2UNCisJLndyaXRlX2JlZ2luID0gbm5wZnNfd3JpdGVf
YmVnaW4sDQorCS53cml0ZV9lbmQgPSBubnBmc193cml0ZV9lbmQsDQorI2Vu
ZGlmDQogfTsNCiANCiAvKg0KQEAgLTE5MTcsMjEgKzIyMTIsMzAgQEAgc3Ry
dWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hbw0KICAqLw0K
IA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZmlsZV9vcGVyYXRp
b25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE2LDApDQogICAgIC5haW9fcmVhZAk9IG5ucGZzX2Fpb19yZWFk
LA0KICAgICAuYWlvX3dyaXRlCT0gbm5wZnNfYWlvX3dyaXRlLA0KKyNlbHNl
DQorICAgIC5yZWFkX2l0ZXIJPSBubnBmc19yZWFkX2l0ZXIsDQorICAgIC53
cml0ZV9pdGVyCT0gbm5wZnNfd3JpdGVfaXRlciwNCisjZW5kaWYNCiAgICAg
Lm1tYXAJPSBubnBmc19maWxlX21tYXAsDQogICAgIC5vcGVuCT0gbm5wZnNf
b3BlbiwNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogICAgIC5yZWxl
YXNlCT0gbm5wZnNfcmVsZWFzZV9maWxlLA0KICAgICAuZnN5bmMJPSBubnBm
c19mc3luYywNCi0gICAgLnNlbmRmaWxlCT0gbm5wZnNfc2VuZGZpbGUsDQor
ICAgIC5zcGxpY2VfcmVhZCA9IG5ucGZzX3NwbGljZV9yZWFkLA0KIH07DQog
DQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29wZXJhdGlv
bnMgPSB7DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZz
X2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0gbm5w
ZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5ucGZz
X2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNo
LA0KIH07DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfbG9hZC5jIGFybGEtZm9yLWxpbnV4LTQuNC9u
bnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMv
bGludXgvbm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6NDEuMDAwMDAw
MDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4
L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEzIDIwOjE0OjAyLjgzMDEwMzUxNyAr
MDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3QgZmlsZV9v
cGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBuYW1lOiAgICAgICAg
ICAgIm5ucGZzIiwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM5KQ0KICAgICAgICBnZXRfc2I6ICAgICAgICAgbm5w
ZnNfZ2V0X3NiLA0KKyNlbHNlDQorICAgICAgIG1vdW50OiAgICAgICAgICBu
bnBmc19tb3VudCwNCisjZW5kaWYNCiAgICAgICAga2lsbF9zYjogICAgICAg
IGtpbGxfbGl0dGVyX3N1cGVyLA0KICAgICAgICBvd25lcjogICAgICAgICAg
VEhJU19NT0RVTEUsDQogfTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS1mb3It
bGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAwNy0wMS0w
OSAxNzozMzozMS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51
eC00LjQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jCTIwMTYtMDEtMTQg
MTY6NTA6MTUuMTM5NTc1MTUxICswMTAwDQpAQCAtNDUsNyArNDUsNyBAQA0K
ICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0K
LVJDU0lEKCIkSWQ6IG5ucGZzX21lc3NhZ2UuYyx2IDEuMTQzLjIuMSAyMDA3
LzAxLzA5IDE2OjMzOjMxIHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5u
cGZzX21lc3NhZ2UuYyx2IDEuMTQ1IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9s
IEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGljIHZvaWQNCkBAIC01NSw5
ICs1NSwxNSBAQCBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVtb3ZlKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJNU0cs
ICgibm5wZnNfZF9yZW1vdmUgJXBcbiIsIGRlbnRyeSkpOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAg
IHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KICAgICBkZ2V0X2xvY2tlZChk
ZW50cnkpOw0KICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl
bHNlDQorICAgIHNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyAgICBk
Z2V0X2Rsb2NrKGRlbnRyeSk7DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnkt
PmRfbG9jayk7DQorI2VuZGlmDQogICAgIGRfZHJvcChkZW50cnkpOw0KICAg
ICBkcHV0KGRlbnRyeSk7DQogfQ0KQEAgLTEyMSw3ICsxMjcsMTEgQEAgbm5w
ZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBz
dHJ1Y3QgaW5vZGUgKmRpLCAqaW5vZGU7DQogICAgIHN0cnVjdCBkZW50cnkg
KnBhcmVudCA9IE5VTEw7DQogICAgIHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkN
CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0
cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgDQogICAg
IE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9k
ZVxuIikpOw0KICAgICANCkBAIC0xNzYsMTIgKzE4NiwyNiBAQCBubnBmc19t
ZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgICAqDQog
ICAgICAqLw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5
Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7
DQogCXBhcmVudCA9IGxpc3RfZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnks
IGRfYWxpYXMpOw0KLQlzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdl
dF9sb2NrZWQocGFyZW50KTsNCi0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2Nr
KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCBh
bGlhcywgJmRpLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAg
aGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBk
X2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnko
cGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRp
Zg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQorICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KKyAgICBk
Z2V0X2xvY2tlZChwYXJlbnQpOw0KKyAgICBzcGluX3VubG9jaygmZGNhY2hl
X2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygmcGFyZW50LT5kX2xv
Y2spOw0KKyAgICBkZ2V0X2Rsb2NrKHBhcmVudCk7DQorICAgIHNwaW5fdW5s
b2NrKCZwYXJlbnQtPmRfbG9jayk7DQorI2VuZGlmDQogCWRlbnRyeSA9IGRf
bG9va3VwKHBhcmVudCwgJnNxc3RyKTsNCiAJTk5QRlNERUIoWERFQk1TRywN
CiAJCSAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGFsaWFzICVwLCBs
b29rdXAgJXBcbiIsDQpAQCAtMjMzLDcgKzI1Nyw5IEBAIG5ucGZzX21lc3Nh
Z2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAJDQogCWRwdXQoZGVu
dHJ5KTsNCiAJZGVudHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMt
Pm5leHQ7DQorI2VuZGlmDQogCWRwdXQocGFyZW50KTsNCiAgICAgfQ0KICAg
ICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5v
ZGU6IGRvbmUgaW5zdGFsbGluZ1xuIikpOw0KQEAgLTI2OCw3ICsyOTQsMTMg
QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0K
ICAgICB9DQogDQogICAgIGlub2RlID0gWE5PREVfVE9fVk5PREUodCk7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KQ0KICAgICBkZW50cnkgPSBsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5u
ZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGRl
bnRyeSA9IGhsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5maXJzdCwgc3Ry
dWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vsc2UNCisgICAgZGVudHJ5ID0g
aGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVu
dHJ5LCBkX3UuZF9hbGlhcyk7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBG
U0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFt
ZTolc1xuIiwNCiAJCSAgICAgICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpA
QCAtMzk2LDE3ICs0MjgsMzYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0
YShzdHJ1Y3Qgbm5wZnMgKg0KIHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2No
aWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsN
CisgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0
IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9u
b2RlICphbGlhczsNCisjZW5kaWYNCiANCiAgYWdhaW46DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAg
c3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyogVE9E
TzogZmluZCB0aGUgZGVudHJ5IHRvIGxvY2sgKi8NCisgICAgLypzcGluX2xv
Y2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxp
YXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFz
ICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRyeSAqZGVu
dHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks
IGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9k
ZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFj
aF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFz
KSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0X2hlYWQgKnN1YmRpcnM7DQog
CXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAqeGQ7DQogCQ0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJZGVu
dHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlh
cyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAg
cHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxp
YXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQyMiw3
ICs0NzMsMTEgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5LT5kX3N1YmRpcnMubmV4dDsN
CiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQog
CSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBz
dHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UNCisJICAgIHN0
cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBk
ZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIAkgICAgc3ViZGlycyA9IHRt
cC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhERUJNU0csICgiY2xlYXJfYWxs
X2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2RlOiAlcC8lcCAiDQogCQkJICAg
ICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4iLA0KQEAgLTQ0MiwxNCArNDk3
LDI2IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9k
ZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBp
ZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAg
ICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorCQkvKiBU
T0RPOiB1bmxvY2sgdGhlIGRlbnRyeSAqLw0KKwkJLypzcGluX3VubG9jaygm
ZGVudHJ5LT5kX2xvY2spOyovDQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92
ZShjaGlsZCk7DQogCQlnb3RvIGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
IAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN
CiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAg
ICAvKiBUT0RPOiB1bmxvY2sgdGhlIGRlbnRyeSAqLw0KKyAgICAvKnNwaW5f
dW5sb2NrKCZkZW50cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiB9DQogDQog
c3RhdGljIHZvaWQNCkBAIC02MDUsMTIgKzY3MiwxMCBAQCBnY19ibG9jayhz
dHJ1Y3Qgbm5wZnMgKm5ucGZzcCwNCiAgICAgfQ0KIA0KICAgICBpZiAoIW5u
cGZzX2Jsb2NrX2hhdmVfcCh4biwgb2Zmc2V0KSkgew0KLSNpZiAwICAgLyog
aGFwcGVucyB3aGVuIGRhZW1vbiBzZW5kcyBzZXZlcmFsIG1lc3NhZ2VzIGZv
ciBzYW1lIGJsb2NrICovDQogCXByaW50ayhLRVJOX0VNRVJHICJOTlBGUy9n
Y19ibG9jazogIg0KIAkgICAgICAgIkVOT0VOVCAoJWQsJWQsJWQsJWQpIDB4
JWxseFxuIiwgDQogCSAgICAgICB4bi0+aGFuZGxlLmEsIHhuLT5oYW5kbGUu
YiwgeG4tPmhhbmRsZS5jLCB4bi0+aGFuZGxlLmQsIA0KIAkgICAgICAgKHVu
c2lnbmVkIGxvbmcgbG9uZylvZmZzZXQpOw0KLSNlbmRpZg0KIAlyZXR1cm4g
LUVOT0VOVDsNCiAgICAgfQ0KIA0KQEAgLTcyMSwxMiArNzg2LDIyIEBAIG5u
cGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiANCiAg
ICAgLyogc2FuaXR5IGNoZWNrIGJlZm9yZSB3ZSBsb29rIGF0IGl0ICovDQog
ICAgIGlmIChzaXplID09IHNpemVvZigqbWVzc2FnZSkgJiYgbWVzc2FnZS0+
dmVyc2lvbiA9PSBOTlBGU19WRVJTSU9OKSB7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5h
bWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNl
bmRpZg0KIAlpbnQgZXJyb3I7DQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6ZSA9
IG1lc3NhZ2UtPmJsb2Nrc2l6ZTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhf
bG9va3VwKCIuIiwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9w
YXRoKCIuIiwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vy
bl9wYXRoKCIuIiwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3Ip
IHsNCiAJICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCBy
ZXR1cm4uDQpAQCAtNzM3LDEyICs4MTIsMjMgQEAgbm5wZnNfbWVzc2FnZV92
ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3Nh
Z2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJu
bzogJWRcbiIsIGVycm9yKTsNCiAJfSBlbHNlIHsNCi0JICAgIG5ucGZzcC0+
Y2FjaGVyb290ID0gbW50Z2V0KG5kLm1udCk7DQotCSAgICBubnBmc3AtPmNh
Y2hlZGlyID0gZGdldChuZC5kZW50cnkpOw0KLQkgICAgcGF0aF9yZWxlYXNl
KCZuZCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCisJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0
KG5kLnBhdGgubW50KTsNCisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0
KG5kLnBhdGguZGVudHJ5KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsN
CisjZWxzZQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQocGF0
aC5tbnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQocGF0aC5k
ZW50cnkpOw0KKwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAkg
ICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogCSAgICBubnBmc3AtPnVpZCA9IGN1cnJlbnQtPmZzdWlk
Ow0KIAkgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50LT5mc2dpZDsNCisjZWxz
ZQ0KKyAgICAgICAgICAgIG5ucGZzcC0+dWlkID0gY3VycmVudF9mc3VpZCgp
Ow0KKyAgICAgICAgICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudF9mc2dpZCgp
Ow0KKyNlbmRpZg0KIA0KIAkgICAgLyogWFhYIHdlIHNob3VsZCB2YWxpZGF0
ZSB0aGVzZSB2YWx1ZXMgKi8NCiAJICAgIG5ucGZzX2Jsb2Nrc2l6ZSA9IGJs
b2Nrc2l6ZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmc19ub2RlLmMgYXJsYS1mb3ItbGludXgtNC40L25u
cGZzL2xpbnV4L25ucGZzX25vZGUuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9s
aW51eC9ubnBmc19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAw
MDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGludXgv
bm5wZnNfbm9kZS5jCTIwMTYtMDEtMTQgMTY6NTE6MTEuNDIwNTc4NTQ0ICsw
MTAwDQpAQCAtMTMyLDcgKzEzMiwxMiBAQCBubnBmc19zZXRzaXplKHN0cnVj
dCBpbm9kZSAqaW5vZGUsIHVpbnQ2DQogCXByaW50aygibm5wZnNfc2V0c2l6
ZTogdHJ1bmNhdGluZyBAMHglbGx1XG4iLA0KIAkgICAgICAgKHVuc2lnbmVk
IGxvbmcgbG9uZylzaXplKTsNCiAjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogCXZtdHJ1bmNhdGUo
aW5vZGUsIHNpemUpOyAvKiBYWFggcmV0dmFsICovDQorI2Vsc2UNCisJaWYo
IWlub2RlX25ld3NpemVfb2soaW5vZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNh
dGVfc2V0c2l6ZShpbm9kZSwgc2l6ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Js
b2NrX3RydW5jYXRlKHhuLCBzaXplKTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAs
OSArMTU1LDE4IEBAIG5ucGZzX2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5u
cGZzX2F0dHINCiAJc3RydWN0IHRpbWVzcGVjIG5vdGltZSA9IHswfTsNCiAN
CiAJaW5vZGUtPmlfbW9kZSAgID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlpbm9kZS0+aV91aWQg
ICAgPSAwOw0KIAlpbm9kZS0+aV9naWQgICAgPSAwOw0KKyNlbHNlDQorCWlu
b2RlLT5pX3VpZCAgICA9IEtVSURUX0lOSVQoMCk7DQorCWlub2RlLT5pX2dp
ZCAgICA9IEtHSURUX0lOSVQoMCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+
aV9ubGluayAgPSAxOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgMSk7
DQorI2VuZGlmDQogCWlub2RlLT5pX2F0aW1lICA9IG5vdGltZTsNCiAJaW5v
ZGUtPmlfbXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9jdGltZSAgPSBu
b3RpbWU7DQpAQCAtMTY5LDcgKzE4MywxMSBAQCBubnBmc19hdHRyMmlub2Rl
KGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogICAgIGlmIChYQV9WQUxJRF9H
SUQoYXR0cikpDQogCWlub2RlLT5pX2dpZCAgICA9IGF0dHItPnhhX2dpZDsN
CiAgICAgaWYgKFhBX1ZBTElEX05MSU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUt
PmlfbmxpbmsgID0gYXR0ci0+eGFfbmxpbms7DQorI2Vsc2UNCisJc2V0X25s
aW5rKGlub2RlLCBhdHRyLT54YV9ubGluayk7DQorI2VuZGlmDQogICAgIA0K
ICAgICBpZiAoWEFfVkFMSURfU0laRShhdHRyKSkgew0KIAlubnBmc19zZXRz
aXplKGlub2RlLCBhdHRyLT54YV9zaXplKTsNCkBAIC01MTAsMTIgKzUyOCwy
NCBAQCBubnBmc19oYXNfcGFnKGNvbnN0IHN0cnVjdCBubnBmc19ub2RlICp4
DQogaW50DQogbm5wZnNfbm9kZV91c2VycyhzdHJ1Y3QgaW5vZGUgKmlub2Rl
KQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKnBvczsNCisjZWxz
ZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqcG9zOw0KKyNlbmRpZg0KICAg
ICBpbnQgdXNlcnMgPSAwOw0KICAgICANCiAgICAgLyogWFhYIHRoaXMgc2hv
dWxkIHByb2JhYmx5IGJlIHByb3RlY3RlZCBzb21laG93ICovDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAg
ICBsaXN0X2Zvcl9lYWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNl
bHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoKHBvcywgJmlub2RlLT5pX2RlbnRy
eSkgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9
IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisj
ZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBv
cywgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxpYXMpOw0KKyNlbmRpZg0KIAlp
ZiAobm5wZnNfZGNvdW50KGRlbnRyeSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsN
CiAgICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25u
cGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMgYXJsYS1mb3ItbGludXgtNC40
L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMNCi0tLSBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDA3LTAxLTAzIDE1OjI2
OjI3LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9u
bnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jCTIwMTYtMDEtMTQgMTc6MDA6
MjAuNjQxNjExNjU1ICswMTAwDQpAQCAtNDIsNyArNDIsOSBAQA0KICNpbmNs
dWRlIDxubnBmcy9ubnBmc19zeXNjYWxscy5oPg0KICNpbmNsdWRlIDxubnBm
cy9ubnBmc19jb21tb24uaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog
I2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9wcm9j
X2ZzLmg+DQogDQpAQCAtNTAsNiArNTIsMTEgQEANCiAjaW5jbHVkZSA8bGlu
dXgvc2VjdXJpdHkuaD4NCiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKyN1bmRlZiBTWVND
QUxMSEFDSw0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQn
IGRvZXMgbm90IHdvcmsgb24ga2VybmVsIDMuNyBhbmQgbGF0ZXIsIHNlIG5u
cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyAqLw0KKyNlbmRpZg0KKw0KICNpZiAw
DQogI2lmZGVmIENPTkZJR19DT01QQVQNCiAjaW5jbHVkZSA8bGludXgvaW9j
dGwzMi5oPg0KQEAgLTY0LDcgKzcxLDcgQEANCiAjdW5kZWYgTkVFRF9WSUNF
SU9DVEwzMg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZz
X3N5c2NhbGxzLmMsdiAxLjEyMiAyMDA3LzAxLzAzIDE0OjI2OjI3IHRvbCBF
eHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLmMsdiAxLjEy
NSAyMDEwLzA4LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0K
IA0KIHN0YXRpYyBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKm5ucGZzX3Byb2Nm
c19kaXI7DQpAQCAtODIsMTIgKzg5LDIyIEBAIHR5cGVkZWYgc3RydWN0IGFm
c3Byb2NkYXRhIHsNCiAgICAgdW5zaWduZWQgbG9uZyBzeXNjYWxsOw0KIH0g
YWZzcHJvY2RhdGE7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJv
Y2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpm
aWxlLA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBh
cmcpOw0KKyNlbHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9j
dGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21k
LCB1bnNpZ25lZCBsb25nIGFyZyk7DQorI2VuZGlmDQogDQogc3RhdGljIHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfcHJvY2ZzX2ZvcHMgPSB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
NikNCiAgICAgLmlvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNl
DQorICAgIC51bmxvY2tlZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwN
CisjZW5kaWYNCiB9Ow0KIA0KIA0KQEAgLTE0Nyw1MyArMTY0LDQ4IEBAIHN0
YXRpYyBpbnQgbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAwOw0KICNkZWZpbmUg
U0VDMlBBRyhzKSAobm5wZnNfcGFnX3QpKHVuc2lnbmVkIGxvbmcpKHMpDQog
I2RlZmluZSBQQUcyU0VDKHApICh2b2lkICopKHVuc2lnbmVkIGxvbmcpKHAp
DQogDQotc3RhdGljIGludA0KLW5ucGZzX3NlY190YXNrX2FsbG9jKHN0cnVj
dCB0YXNrX3N0cnVjdCAqcCkNCi17DQotICAgIG5ucGZzX3BhZ190IHBhZyA9
IFNFQzJQQUcoY3VycmVudC0+c2VjdXJpdHkpOw0KLSAgICBpZiAocGFnKQ0K
LQlwLT5zZWN1cml0eSA9IFBBRzJTRUMocGFnKTsNCi0gICAgcmV0dXJuIDA7
DQotfQ0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfc2VjX3Rhc2tfZnJlZShz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBw
YWcgPSBTRUMyUEFHKHAtPnNlY3VyaXR5KTsNCi0gICAgaWYgKHBhZykNCi0J
cC0+c2VjdXJpdHkgPSBOVUxMOw0KLX0NCi0NCiBzdGF0aWMgbm5wZnNfcGFn
X3QNCiBubnBmc19nZXRfcGFnX3NlYyh2b2lkKQ0KIHsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
bm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50LT5zZWN1cml0eSk7
DQorI2Vsc2UNCisgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJy
ZW50X3NlY3VyaXR5KCkpOw0KKyNlbmRpZg0KICAgICBpZiAocGFnKQ0KIAly
ZXR1cm4gcGFnOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS
TkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlk
Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTQsMCkNCisgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UN
CisgICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBr
dWlkLnZhbDsgfQ0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgaW50DQogbm5w
ZnNfc2V0X3BhZ19zZWModm9pZCkNCiB7DQogICAgIHN0YXRpYyBubnBmc19w
YWdfdCBwYWdudW0gPSBOTlBGU19QQUdfTExJTTsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisgICAgc3Ry
dWN0IGNyZWQgKmNyZWQ7DQorI2VuZGlmDQogDQogICAgIGlmIChwYWdudW0g
PT0gTk5QRlNfUEFHX1VMSU0pDQogCXJldHVybiAtRU5PTUVNOw0KICAgICAv
KiBwYWdudW0gPSBOTlBGU19QQUdfTExJTTsgKi8NCiAgICAgDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIGN1cnJlbnQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0pOw0KKyNl
bHNlDQorICAgIGNyZWQgPSAoc3RydWN0IGNyZWQgKikgY3VycmVudC0+Y3Jl
ZDsNCisgICAgY3JlZC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQor
I2VuZGlmDQogICAgIHBhZ251bSsrOw0KICAgICByZXR1cm4gMDsNCiB9DQog
DQotc3RhdGljIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIG5ucGZzX3Nl
Y19vcHMgPSB7DQotICAgIC50YXNrX2FsbG9jX3NlY3VyaXR5ID0gbm5wZnNf
c2VjX3Rhc2tfYWxsb2MsDQotICAgIC50YXNrX2ZyZWVfc2VjdXJpdHkgPSBu
bnBmc19zZWNfdGFza19mcmVlLA0KLS8vICAgIC50YXNrX3JlcGFyZW50X3Rv
X2luaXQgPSBubnBmc19zZWNfcmVwYXJlbnRfdG9faW5pdCwNCi19Ow0KLQ0K
ICNlbmRpZiAvKiBDT05GSUdfU0VDVVJJVFkgKi8NCiANCiAjaWZkZWYgR1JP
VVBQQUdTDQpAQCAtMjA2LDcgKzIxOCwxMiBAQCBmaW5kX3BhZyhzdHJ1Y3Qg
Z3JvdXBfaW5mbyAqZ2kpDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgiZmlu
ZF9wYWc6IG5ncm91cHMgPSAlZFxuIiwgZ2ktPm5ncm91cHMpKTsNCiANCiAg
ICAgZm9yIChpID0gZ2ktPm5ncm91cHMgLSAxOyBpID49IDA7IGktLSkgew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0
LDApDQogCWdpZF90IGdyb3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNl
DQorCWtnaWRfdCBrZ3JvdXAgPSBHUk9VUF9BVChnaSwgaSk7DQorCWdpZF90
IGdyb3VwID0ga2dyb3VwLnZhbDsNCisjZW5kaWYNCiAJaWYgKChubnBmc19w
YWdfdClncm91cCA+PSBOTlBGU19QQUdfTExJTSAmJiAobm5wZnNfcGFnX3Qp
Z3JvdXAgPCBOTlBGU19QQUdfVUxJTSkgew0KIAkgICAgTk5QRlNERUIoWERF
QlNZUywNCiAJCSAgICAgKCJmaW5kX3BhZzogRXhpc3RpbmcgcGFnICV1IGF0
IHBvcyAldVxuIiwgZ3JvdXAsIGkpKTsNCkBAIC0yMjIsMTUgKzIzOSwzMSBA
QCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogc3RhdGljIG5u
cGZzX3BhZ190DQogbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OCkNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKmdpID0gY3VycmVudC0+Z3Jv
dXBfaW5mbzsNCiAgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+dWlk
Ow0KKyNlbHNlDQorICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdldF9j
dXJyZW50X2dyb3VwcygpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE0LDApDQorICAgIG5ucGZzX3BhZ190IHJldCA9
IGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAga3VpZF90IGt1aWQgPSBj
dXJyZW50X3VpZCgpOw0KKyAgICBubnBmc19wYWdfdCByZXQgPSBrdWlkLnZh
bDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgaW50IGk7DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIGdldF9ncm91cF9pbmZvKGdpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9
IGZpbmRfcGFnKGdpKTsNCiAgICAgaWYgKGkgIT0gTk5QRlNfUEFHX05PVEZP
VU5EKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE0LDApDQogCXJldCA9IEdST1VQX0FUKGdpLCBpKTsNCisjZWxzZQ0K
Kwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBfQVQoZ2ksIGkpOyByZXQgPSBrZ2lk
LnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAgICBwdXRfZ3JvdXBfaW5mbyhnaSk7
DQogDQpAQCAtMjQyLDEzICsyNzUsMTkgQEAgbm5wZnNfZ2V0X3BhZ19ncm91
cCh2b2lkKQ0KIHN0YXRpYyBpbnQNCiBzdG9yZV9wYWcobm5wZnNfcGFnX3Qg
cGFnbnVtKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKm9s
ZF9naSA9IGN1cnJlbnQtPmdyb3VwX2luZm87DQorI2Vsc2UNCisgICBzdHJ1
Y3QgZ3JvdXBfaW5mbyAqb2xkX2dpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7
DQorI2VuZGlmDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpuZXdfZ2k7DQot
ICAgIGludCBuYmxvY2tzLCBjb3VudDsNCisgICAgdW5zaWduZWQgaW50IG5i
bG9ja3MsIGNvdW50Ow0KICAgICBpbnQgZm91bmQgPSAwOw0KICAgICBpbnQg
aSwgazsNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpICAgIA0KICAgICBnZXRfZ3JvdXBfaW5mbyhv
bGRfZ2kpOw0KKyNlbmRpZg0KIA0KICAgICBpID0gZmluZF9wYWcob2xkX2dp
KTsNCiAgICAgaWYgKGkgIT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0KQEAgLTI3
NCwxMCArMzEzLDE3IEBAIHN0b3JlX3BhZyhubnBmc19wYWdfdCBwYWdudW0p
DQogCWNvdW50IC09IE5HUk9VUFNfUEVSX0JMT0NLOw0KICAgICB9DQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQs
MCkNCiAgICAgaWYgKGZvdW5kKQ0KIAlHUk9VUF9BVChuZXdfZ2ksIGkpID0g
cGFnbnVtOw0KICAgICBlbHNlDQogCUdST1VQX0FUKG5ld19naSwgbmV3X2dp
LT5uZ3JvdXBzIC0gMSkgPSBwYWdudW07DQorI2Vsc2UNCisgICAgaWYgKGZv
dW5kKQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBH
Uk9VUF9BVChuZXdfZ2ksIGkpID0ga2dpZDsgfQ0KKyAgICBlbHNlDQorCXsg
a2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5l
d19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQorI2VuZGlm
DQogICAgIA0KICAgICBzZXRfY3VycmVudF9ncm91cHMobmV3X2dpKTsNCiAg
ICAgcHV0X2dyb3VwX2luZm8obmV3X2dpKTsNCkBAIC0zMTcsNyArMzYzLDEz
IEBAIG5ucGZzX2dldF9wYWcoKQ0KICAgICByZXR1cm4gbm5wZnNfZ2V0X3Bh
Z19ncm91cCgpOw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
CiAgICAgcmV0dXJuIGN1cnJlbnQtPnVpZDsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQorICAgIHJldHVy
biBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQg
PSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3VpZC52YWw7IH0NCisjZW5kaWYN
CiB9DQogDQogc3RhdGljIGlubGluZSBpbnQNCkBAIC00MjIsNyArNDc0LDcg
QEAgbm5wZnNfc2V0Z3JvdXBzMTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0K
ICNlbmRpZiAvKiBTWVNDQUxMSEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBB
R1MgKi8NCiANCi1zdHJ1Y3QgZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBm
c19maWxlX2hhbmRsZSB7DQogICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAg
aW5vX3QgaW5vZGU7DQogICAgIF9fdTMyIGdlbjsNCkBAIC01MDksMTQgKzU2
MSwyNyBAQCBubnBmc19kZWJ1Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9j
dGwNCiAgKiBmb2xsb3cgc3ltbGlua3MgaWZmIGBmb2xsb3cnDQogICovDQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQogdXNlcl9wYXRoMmRl
bnRyeSAoc3RydWN0IG5hbWVpZGF0YSAqbmQsIGNoYXIgKnVzZXJfcGF0aCwg
aW50IGZvbGxvdykNCisjZWxzZQ0KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoN
Cit1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgcGF0aCAqcGF0aCwgY2hhciAq
dXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbmRpZg0KIHsNCi0gICAgY2hh
ciAqa25hbWU7DQogICAgIGludCBmbGFncyA9IDA7DQogICAgIGludCBlcnJv
ciA9IDA7DQogDQotICAgIGtuYW1lID0gZ2V0bmFtZSAodXNlcl9wYXRoKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3
LDApDQorICAgIGNoYXIgKmtuYW1lOw0KKyAgICBrbmFtZSA9IGdldG5hbWUo
dXNlcl9wYXRoKTsNCisjZWxzZQ0KKyAgICBjb25zdCBjaGFyICprbmFtZTsN
CisgICAgc3RydWN0IGZpbGVuYW1lICpmbmFtZTsNCisgICAgZm5hbWUgPSBn
ZXRuYW1lKHVzZXJfcGF0aCk7DQorICAgIGtuYW1lID0gZm5hbWUtPm5hbWU7
DQorI2VuZGlmDQorDQogICAgIGlmIChJU19FUlIoa25hbWUpKQ0KIAlyZXR1
cm4gRVJSX1BUUihQVFJfRVJSKGtuYW1lKSk7DQogICAgIGlmIChmb2xsb3cp
DQpAQCAtNTI0LDExICs1ODksMjUgQEAgdXNlcl9wYXRoMmRlbnRyeSAoc3Ry
dWN0IG5hbWVpZGF0YSAqbmQsDQogDQogICAgIE5OUEZTREVCKFhERUJNU0cs
ICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1lKSk7
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwgZmxh
Z3MsIG5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1l
LCBmbGFncywgJihuZC0+cGF0aCkpOw0KKyNlbHNlDQorICAgIGVycm9yID0g
a2Vybl9wYXRoKGtuYW1lLCBmbGFncywgcGF0aCk7DQorI2VuZGlmDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0K
ICAgICBwdXRuYW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAgICBrbWVtX2NhY2hl
X2ZyZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKWtuYW1lKTsNCisjZW5kaWYN
CiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQot
ICAgIHJldHVybiBuZC0+ZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIHJldHVybiBuZC0+
cGF0aC5kZW50cnk7DQorI2Vsc2UNCisgICAgcmV0dXJuIHBhdGgtPmRlbnRy
eTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlua2FnZSBsb25nDQpAQCAtNTQw
LDEyICs2MTksMjQgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQog
ew0KICAgICBsb25nIGVycm9yID0gMDsNCiAgICAgc3RydWN0IGFybGFWaWNl
SW9jdGwgdmljZV9pb2N0bDsgDQotICAgIHN0cnVjdCBubnBmc19tZXNzYWdl
X3Bpb2N0bCBtc2c7DQorICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3Bpb2N0
bCAqbXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2Fr
ZXVwICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBOVUxM
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisg
ICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAgICAgDQorICAgIG1z
ZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCisgICAg
aWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAtRU5PTUVNOw0KKw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogICAgIGxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogVE9E
TzogbG9ja19rZXJuZWwoKSBpcyByZW1vdmVkLCBjb25zaWRlciBhZGRpbmcg
YW4gcHJpdmF0ZSBsb2NrICovDQorI2VuZGlmDQogDQogICAgIE5OUEZTREVC
KFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2VkXG4iKSk7DQogDQpA
QCAtNTc1LDcgKzY2Niw3IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9u
LA0KIAkgICAgZ290byB1bmxvY2s7DQogCX0NCiAJaWYgKHZpY2VfaW9jdGwu
aW5fc2l6ZSAhPSAwKSB7DQotCSAgICBpZihjb3B5X2Zyb21fdXNlcigmbXNn
Lm1zZywNCisJICAgIGlmKGNvcHlfZnJvbV91c2VyKCZtc2ctPm1zZywNCiAJ
CQkgICAgICB2aWNlX2lvY3RsLmluLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwu
aW5fc2l6ZSkgIT0gMCkgew0KIAkJZXJyb3IgPSAtRUZBVUxUOw0KQEAgLTU4
Myw3ICs2NzQsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQog
CSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFfcGF0aFAs
IGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50cnkgPSB1
c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xsb3dTeW1s
aW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0KIAkJZXJy
b3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjI4LDE5ICs3
MjMsMjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCQllcnJv
ciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCiAJICAgIH0NCi0JICAg
IG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkgICAgbXNnLT5oYW5kbGUg
PSB4bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0g
Tk5QRlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29kZSA9IGFfb3Bjb2RlOw0K
Kwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KKwlt
c2ctPm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0JbXNnLmluc2l6ZSAgID0g
dmljZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0c2l6ZSAgPSB2aWNlX2lv
Y3RsLm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7
DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJbXNnLT5p
bnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCisJbXNnLT5vdXRzaXpl
ICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorCW1zZy0+Y3JlZC51
aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy0+Y3Jl
ZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KKwltc2ctPmNyZWQu
cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0JZXJyb3IgPSBubnBmc19t
ZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVhZGVyLCBzaXplb2YobXNn
KSk7IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdl
X3dha2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBj
KCZubnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXplb2YoKm1zZykpOyAvKiBY
WFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAg
KikgbXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJICAgIGVycm9yID0gbXNn
Mi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3NzQsMjEgQEAgc3lzX2Fmc19p
bnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxvY2s6DQogICAgIGlm
IChkZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCXBhdGhf
cHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1dCgmcGF0aCk7DQor
I2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lz
Y2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAg
IE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4i
KSk7DQorICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgdW5sb2NrX2tlcm5l
bCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IHNlZSB0aGUgY29tbWVudCBh
dCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlmDQogDQogICAgIHJl
dHVybiBlcnJvcjsNCiB9DQpAQCAtNzI5LDkgKzgzNywxNSBAQCBzeXNfYWZz
IChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9sbG93U3ltbGlua3Mp
Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9j
dGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQog
CQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj
ZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVj
dCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu
ZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBhZnNwcm9jZGF0YSBh
cmdzOw0KICAgICBsb25nIHJldDsNCkBAIC03ODAsMjEgKzg5NCwzMSBAQCBz
dGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogew0KICAgICBz
dHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0KICAgICANCi0gICAgbm5w
ZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoTk5QRlNfUFJPQ19ESVIsIHBy
b2Nfcm9vdF9mcyk7DQorICAgIG5ucGZzX3Byb2Nmc19kaXIgPSBwcm9jX21r
ZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiAgICAgaWYgKG5u
cGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJcmV0dXJuIC1FTk9NRU07DQog
ICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nmc19kaXItPm93bmVyID0gVEhJ
U19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQogICAgIGVudHJ5ID0g
Y3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RFLCAwNjY2LCBubnBm
c19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRyeSA9IHByb2NfY3Jl
YXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwgJm5ucGZzX3Byb2Nm
c19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5ID09IE5VTEwpIHsN
CiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0X3Byb2Nmczogbm8g
bm9kZVxuIikpOw0KLQlyZW1vdmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJ
UiwgcHJvY19yb290X2ZzKTsNCisJcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIg
Tk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIAlyZXR1cm4gLUVOT01FTTsNCiAg
ICAgfQ0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3duZXIgPSBUSElTX01P
RFVMRTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+cHJvY19mb3BzID0g
Jm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0KICNpZmRlZiBTWVND
QUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0bDMyX2NvbnZlcnNp
b24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJvY2ZzX2lvY3RsMzIp
KSB7DQpAQCAtODE1LDcgKzkzOSw3IEBAIHN0YXRpYyB2b2lkIG5ucGZzX2V4
aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5kaWYgLyogU1lTQ0FMTENP
TVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRyeShOTlBGU19QUk9DX05P
REUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KLSAgICByZW1vdmVfcHJvY19lbnRy
eShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisgICAgcmVtb3Zl
X3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIH0N
CiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODM5LDE0ICs5NjMsNiBAQCBp
bnN0YWxsX3NldGdyb3Vwcyh2b2lkKQ0KIHZvaWQNCiBpbnN0YWxsX2Fmc19z
eXNjYWxsKHZvaWQpDQogew0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0g
ICAgaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZubnBmc19zZWNfb3BzKSkNCi0J
Tk5QRlNERUIoWERFQlNZUywNCi0JCSAoImluc3RhbGxfYWZzX3N5c2NhbGw6
IG5ucGZzX2luaXRfc2VjIGZhaWxlZFxuIikpOw0KLSAgICBlbHNlDQotCW5u
cGZzX3NlY19yZWdpc3RlcmVkID0gMTsNCi0jZW5kaWYNCi0NCiAgICAgbm5w
ZnNfaW5pdF9wcm9jZnMoKTsNCiANCiAjaWZkZWYgU1lTQ0FMTEhBQ0sNCkBA
IC04ODcsMTIgKzEwMDMsNiBAQCByZXN0b3JlX2Fmc19zeXNjYWxsICh2b2lk
KQ0KICNlbmRpZg0KICNlbmRpZiAvKiBTWVNDQUxMSEFDSyAqLw0KIA0KLSNp
ZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYgKG5ucGZzX3NlY19yZWdp
c3RlcmVkKQ0KLQlpZiAodW5yZWdpc3Rlcl9zZWN1cml0eSgmbm5wZnNfc2Vj
X29wcykpDQotCSAgICBwcmludGsoS0VSTl9FTUVSRyAibm5wZnNfZXhpdF9z
ZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0KLSNlbmRpZiAvKiAhQ09O
RklHX1NFQ1VSSVRZICovDQotDQogI2lmZGVmIEdST1VQUEFHUw0KICNpZmRl
ZiBTWVNDQUxMSEFDSw0KICAgICBpZiAob2xkX3NldGdyb3Vwcykgew0KZGlm
ZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25u
cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLWZvci1saW51eC00LjQvbm5w
ZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDA2
LTEyLTExIDE3OjMxOjQ1LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9y
LWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl
LmMJMjAxNi0wMS0xMyAyMTo1MTo0OS42ODI0NTcyMTMgKzAxMDANCkBAIC00
NywxMSArNDcsMjAgQEANCiAjaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+DQog
DQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMt
bG9zc2FnZS5jLHYgMS4xNyAyMDA2LzEyLzExIDE2OjMxOjQ1IHRvbCBFeHAg
JCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyx2
IDEuMTkgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhwICQiKTsNCisjZW5k
aWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDMsNywwKQ0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91
bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVsIDMuNyBhbmQgbGF0ZXIgKi8N
CisjdW5kZWYgU1lTQ0FMTEhBQ0sNCiAjZW5kaWYNCiANCiAjaW5jbHVkZSA8
bGludXgva2FsbHN5bXMuaD4NCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQog
c3RhdGljIHZvaWQgKmxvd2VyX2JvdW5kID0gJmtlcm5lbF90aHJlYWQ7DQor
I2VuZGlmDQorI2VuZGlmDQogDQogdm9pZCAqIF9fYXR0cmlidXRlX18oKHdl
YWspKSBzeXNfY2FsbF90YWJsZSh2b2lkKTsNCiBubnBmc19zeXNfY2FsbF9m
dW5jdGlvbiAqbm5wZnNfc3lzX2NhbGxfdGFibGUgPQ0KQEAgLTYzLDYgKzcy
LDExIEBAIGNvbnN0IGNoYXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkNCiAJ
CSAgICB1bnNpZ25lZCBsb25nICpvZmZzZXQsDQogCQkgICAgY2hhciAqKm1v
ZG5hbWUsIGNoYXIgKm5hbWVidWYpOw0KIA0KKyNpZmRlZiBfX3g4Nl82NF9f
DQorZXh0ZXJuIHJ3bG9ja190IHRhc2tsaXN0X2xvY2sgX19hdHRyaWJ1dGVf
Xygod2VhaykpOw0KKyNlbmRpZg0KKw0KKyNpZmRlZiBTWVNDQUxMSEFDSw0K
IHN0YXRpYyB2b2lkICoqDQogZ2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICNp
ZmRlZiBfX3g4Nl82NF9fDQpAQCAtNzEsNiArODUsNyBAQCBnZXRfc3RhcnRf
YWRkcih2b2lkKSB7DQogICAgIHJldHVybiAodm9pZCAqKikmbXV0ZXhfbG9j
azsNCiAjZW5kaWYNCiB9DQorI2VuZGlmDQogDQogc3RhdGljIGlubGluZSBp
bnQgDQoga2FsbHN5bV9pc19lcXVhbCh1bnNpZ25lZCBsb25nIGFkZHIsIGNv
bnN0IGNoYXIgKm5hbWUpDQpAQCAtMTM5LDYgKzE1NCw4IEBAIHZlcmlmeSh2
b2lkICoqcCkgew0KICAgICByZXR1cm4gMTsNCiB9DQogDQorI2lmZGVmIFNZ
U0NBTExIQUNLDQorDQogc3RhdGljIGlubGluZSBpbnQgbG9va3NfZ29vZCh2
b2lkICoqcCkNCiB7DQogICAgIGlmICgqcCA8PSAodm9pZCopbG93ZXJfYm91
bmQgfHwgKnAgPj0gKHZvaWQqKXApDQpAQCAtMTg4LDMgKzIwNSw1IEBAIG5u
cGZzX2ZpeHVwX3N5c2NhbGxfbG9zc2FnZSh2b2lkKQ0KIA0KICAgICByZXR1
cm4gMDsNCiB9DQorDQorI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4
dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMgYXJsYS1m
b3ItbGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jDQotLS0g
YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMDYtMTIt
MTEgMTc6NDM6MzUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGlu
dXgtNC40L25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMTYtMDEtMTQg
MTc6MTM6MTguMjYzNjU4NTM2ICswMTAwDQpAQCAtNDQsMzAgKzQ0LDI2IEBA
DQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQogDQogI2lmZGVmIFJDU0lEDQot
UkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjEwOSAyMDA2LzEyLzEx
IDE2OjQzOjM1IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX3Zm
c29wcy5jLHYgMS4xMTEgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQi
KTsNCiAjZW5kaWYNCiANCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsN
CiANCi1zdGF0aWMgdm9pZCBubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpOw0KIHN0YXRpYyB2b2lkIG5ucGZzX3B1dF9zdXBlcihzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCi1zdGF0aWMgdm9pZCBubnBmc19wdXRf
aW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lk
IG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsN
CisjZW5kaWYNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50IG5ucGZzX3N0YXRmcyhz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpOw0K
LSNlbHNlDQotc3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IHN1cGVy
X2Jsb2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2VuZGlmDQog
DQogc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcHMg
PSB7IA0KLSAgICByZWFkX2lub2RlCQk6IG5ucGZzX3JlYWRfaW5vZGUsDQot
ICAgIHB1dF9pbm9kZQkJOiBubnBmc19wdXRfaW5vZGUsDQogICAgIGFsbG9j
X2lub2RlCQk6IG5ucGZzX25vZGVfYWxsb2MsDQogICAgIGRlc3Ryb3lfaW5v
ZGUJOiBubnBmc19ub2RlX2ZyZWUsDQogICAgIGRyb3BfaW5vZGUJCTogZ2Vu
ZXJpY19kZWxldGVfaW5vZGUsDQogICAgIHB1dF9zdXBlcgkJOiBubnBmc19w
dXRfc3VwZXIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KICAgICB3cml0ZV9zdXBlcgkJOiBubnBmc193cml0
ZV9zdXBlciwNCisjZW5kaWYNCiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0YXRm
cywNCiB9Ow0KIA0KQEAgLTk0LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNoX3Jv
b3Qoc3RydWN0IGlub2RlICppKQ0KIAkgKiByb290J3MgcHJpdmlsaWdlcyAo
dXN1YWxseSBub25lLCBhbmQgbm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8NCiAJ
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTQsMCkNCiAJbXNnLmNyZWQudWlkID0gMDsNCisjZWxzZQ0KKwltc2cuY3Jl
ZC51aWQgPSBLVUlEVF9JTklUKDApOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5w
YWcgPSAwOw0KIAkNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBm
c3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtMTI5LDggKzEy
OSwxMyBAQCBtYWtlX3Jvb3RfaW5vZGUoc3RydWN0IG5ucGZzICpubnBmc3Ap
DQogICAgIFhBX1NFVF9NT0RFKCZub2RlLmF0dHIsIFNfSUZESVIgfCAwNzc3
KTsNCiAgICAgWEFfU0VUX05MSU5LKCZub2RlLmF0dHIsIDEwMCk7DQogICAg
IFhBX1NFVF9TSVpFKCZub2RlLmF0dHIsIDApOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIFhBX1NF
VF9VSUQoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9HSUQoJm5vZGUu
YXR0ciwgMCk7DQorI2Vsc2UNCisgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRy
LCBLVUlEVF9JTklUKDApKTsNCisgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRy
LCBLR0lEVF9JTklUKDApKTsNCisjZW5kaWYNCiAgICAgWEFfU0VUX0FUSU1F
KCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfTVRJTUUoJm5vZGUuYXR0
ciwgMCk7DQogICAgIFhBX1NFVF9DVElNRSgmbm9kZS5hdHRyLCAwKTsNCkBA
IC0xNTksNyArMTY0LDExIEBAIG1ha2Vfcm9vdCAoc3RydWN0IHN1cGVyX2Js
b2NrICpzYikNCiAgICAgbm5wZnMtPnJvb3QgPSBpbm9kZTsNCiANCiAgICAg
LyogWFhYIGVycm9yIGhhbmRsaW5nICovDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNCwwKQ0KICAgICBkcCA9IGRfYWxs
b2Nfcm9vdChpbm9kZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vfcm9v
dChpbm9kZSk7DQorI2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7DQog
ICAgIHNiLT5zX3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTgz
LDEzICsxOTIsMjcgQEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1cGVy
X2Jsb2NrICogcw0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNf
cmVhZF9zdXBlcjogYmVnaW4gc2V0dGluZyB2YXJpYWJsZXNcbiIpKTsNCiAN
CiAgICAgaWYgKGRhdGEgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBuYW1l
aWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisjZW5k
aWYNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAwLCAm
bmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJm5k
LnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAs
ICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRldiA9
IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQotCSAgICBkZGV2ID0gbmQuZGVu
dHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQorCSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQorI2Vs
c2UNCisJICAgIGRkZXYgPSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiANCiAJ
aWYgKCFJU19FUlIoZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlO
T1IoZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsNCkBAIC0yMzMsNyArMjU2LDcg
QEAgbm5wZnNfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0K
ICAgICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBubnBm
c19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQog
CSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCkBAIC0y
NDIsMTkgKzI2NSwyMiBAQCBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lz
dGVtX3R5cGUgKmZzDQogICAgIHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlw
ZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIsIG1udCk7DQogfQ0K
ICNlbHNlDQotc3RydWN0IHN1cGVyX2Jsb2NrICoNCi1ubnBmc19nZXRfc2Ig
KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KLQkgICAgICBp
bnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKSAN
CitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5
c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3Qg
Y2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSkgDQogew0KLSAg
ICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBu
bnBmc19maWxsX3N1cGVyKTsNCisgICAgcmV0dXJuIG1vdW50X25vZGV2KGZz
X3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCiB9DQog
I2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVfc3Vw
ZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+c19k
aXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMgdGhp
cyBnb29kPyANCkBAIC0yNzMsNzMgKzI5OSw2IEBAIG5ucGZzX3B1dF9zdXBl
cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihYREVC
VkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9DQog
DQotc3RhdGljIHZvaWQNCi1ubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpDQotew0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBm
c19yZWFkX2lub2RlIHN0YXJ0aW5nIGlub2RlOiAlcFxuIixpbm9kZSkpOw0K
LSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGlu
b2RlLT5pX2lubzogJWxkXG4iLGlub2RlLT5pX2lubykpOw0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQotICAg
IGlub2RlLT5pX2Jsa3NpemUgPSAxMDI0Ow0KLSNlbmRpZg0KLSAgICBpbm9k
ZS0+aV9tb2RlID0gMDsNCi0gICAgaW5vZGUtPmlfb3AgPSBOVUxMOw0KLSAg
ICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGV4aXRp
bmdcbiIpKTsNCi19DQotIA0KLS8qDQotICogQ2FsbGVkIHdoZW4gYGlub2Rl
JyBpcyBkZS1yZWZlcmVuY2VkLCBpZSB3aGVuIGlwdXQgaXMgY2FsbGVkLg0K
LSAqLw0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfcHV0X2lub2RlKHN0cnVj
dCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq
eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQotICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShpbm9kZSk7DQotICAgIGlu
dCBiYWQ7DQotDQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3B1
dF9pbm9kZTogaW5vZGU6ICVwIGNvdW50OiAlZCBhbGlhc2VzOiIsDQotCQkJ
aW5vZGUsIG5ucGZzX2ljb3VudChpbm9kZSkpKTsNCi0gICAgbm5wZnNfcHJp
bnRfYWxpYXNlcyhpbm9kZSk7DQotICAgIA0KLSAgICBkb3duKCZubnBmc3At
PmluYWN0aXZlX3NlbSk7DQotDQotICAgIGlmICgobm5wZnNwLT5zdGF0dXMg
JiBOTlBGU19ERVZPUEVOKSA9PSAwKSB7DQotCWlmICghaXNfYmFkX2lub2Rl
KGlub2RlKSkgew0KLQkgICAgaWYgKGlub2RlICE9IG5ucGZzcC0+cm9vdCkg
ew0KLQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOw0KLQkJbm5wZnNfaXJlbGUo
aW5vZGUpOyAvKiBzZWUgbm5wZnNfbm9kZV9hZGQoKSAqLw0KLQkgICAgfQ0K
LQkgICAgeG4tPmZsYWdzIHw9IE5OUEZTX1NUQUxFOw0KLQl9DQotCWJhZCA9
IDE7IC8qIG9yIHJvb3QsIHJlYWxseSAqLw0KLSAgICB9IGVsc2Ugew0KLQli
YWQgPSBpc19iYWRfaW5vZGUoaW5vZGUpOw0KLSAgICB9DQotDQotICAgIGlm
ICh4bi0+ZmxhZ3MgJiBOTlBGU19TVEFMRSAmJiAhbm5wZnNfbm9kZV91c2Vy
cyhpbm9kZSkpIHsNCi0JeG4tPmZsYWdzIHw9IE5OUEZTX05PREVfSVBVVDsg
LyogWFhYIGxvY2tpbmcgKi8NCi0gIAlubnBmc19mb3JjZV9pbnZhbGlkX25v
ZGUoeG4pOw0KLQl4bi0+ZmxhZ3MgJj0gfk5OUEZTX05PREVfSVBVVDsNCi0g
ICAgfQ0KLSAgICANCi0gICAgaWYgKGJhZCkgew0KLQlpZiAobm5wZnNfaWNv
dW50KGlub2RlKSA9PSAxKQ0KLQkgICAgbm5wZnNfbm9kZV9jbGVhcih4bik7
DQotICAgIH0gZWxzZSBpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAyKSB7
DQotCS8qIA0KLQkgKiBUaGUgbGFzdCBleHRlcm5hbCByZWZlcmVuY2UgaXMg
YmVpbmcgZHJvcHBlZCwgb25seSB0aGUgb25lDQotCSAqIGZyb20gbm5wZnNf
bm9kZV9hZGQoKSBpcyBsZWZ0LiBUaW1lIHRvIGxldCBkYWVtb24gcmVsZWFz
ZQ0KLQkgKiB0aGlzIG5vZGUgcHJvcGVybHkuDQotCSAqLw0KLQlpZiAoKHhu
LT5mbGFncyAmIE5OUEZTX0xJTUJPKSA9PSAwKSB7DQotCSAgICBubnBmc19u
b2RlX2NsZWFyKHhuKTsNCi0JICAgIG5ucGZzX3F1ZXVlX2luYWN0aXZlKHhu
KTsNCi0JfQ0KLSAgICB9DQotDQotICAgIHVwKCZubnBmc3AtPmluYWN0aXZl
X3NlbSk7DQotfQ0KLQ0KIHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNfaW50
KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYp
DQogew0KQEAgLTM1MiwyNSArMzExLDIxIEBAIG5ucGZzX3N0YXRmc19pbnQo
c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWlsICA9
IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxlcyAgID0gMTAyNCox
MDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsNCisg
ICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lkLnZh
bFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsNCisg
ICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBdID0g
MDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9zcGFy
ZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisgICAgdG1w
LmZfc3BhcmVbNF0gPSAwOw0KICAgICAqYnVmID0gdG1wOw0KICAgICByZXR1
cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3N0
YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpi
dWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50cnkt
PmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGludA0K
LW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qg
a3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRmc19p
bnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0K
---276651502-1797910491-1452823920=:11672
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-1797910491-1452823920=:11672--