[5066] in arla-drinkers
Re: PATCH v4: Arla 0.90 on Linux 2.6.34 to 4.4
daemon@ATHENA.MIT.EDU (Bo Branten)
Fri Jan 22 14:25:31 2016
From arla-drinkers-bounces@stacken.kth.se Fri Jan 22 19:25:31 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 765 invoked from network); 22 Jan 2016 19:25:30 -0000
Received: from mx7.kth.se (130.237.48.48)
by charon.mit.edu with SMTP; 22 Jan 2016 19:25:30 -0000
Received: from mx7.kth.se (localhost [127.0.0.1])
by mx7.kth.se (Postfix) with ESMTP id DE1DA1401B9;
Fri, 22 Jan 2016 20:25:29 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx7.kth.se ([127.0.0.1])
by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id C-CTjIXj1td7; Fri, 22 Jan 2016 20:25:10 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
by mx7.kth.se (Postfix) with ESMTP;
Fri, 22 Jan 2016 20:25:09 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id C96E114CA7D;
Fri, 22 Jan 2016 20:25:09 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id BD01014CACC; Fri, 22 Jan 2016 20:25:08 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx5.kth.se (mx5.kth.se [130.237.32.10])
by vingummi.stacken.kth.se (Postfix) with ESMTPS id B8D7E14CA7D
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 20:25:08 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
by mx5.kth.se (Postfix) with ESMTP id AA78424017C
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 20:25:08 +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]:59486
Received: from mx5.kth.se ([127.0.0.1])
by mx5.kth.se (mx5.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id lFt59hNSHUki for <arla-drinkers@stacken.kth.se>;
Fri, 22 Jan 2016 20:25:06 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
by mx5.kth.se (Postfix) with ESMTPS
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 20:25:06 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id AF372B48
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 20:25:05 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [IPv6:2001:6b0:e:2018::162])
by mail.acc.umu.se (Postfix) with ESMTP id 1AF22B42
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 20:24:59 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id 0991B44B8C; Fri, 22 Jan 2016 20:24:58 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id E8EC344B8B
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 20:24:58 +0100 (CET)
Date: Fri, 22 Jan 2016 20:24:58 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v4: Arla 0.90 on Linux 2.6.34 to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601222021390.21172@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
<alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
BOUNDARY="-276651502-1608297379-1453490698=:21172"
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-1608297379-1453490698=:21172
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH v4: Arla 0.90 on Linux 2.6.34 to 4.4
The latest patch to 0.90 (the CVS patch v3 is still valid so there is
only one patch this time)
Bo Branten
---276651502-1608297379-1453490698=:21172
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v4-arla-0.90-for-linux-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601222024580.21172@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-v4-arla-0.90-for-linux-4.4
ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzoz
MC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAw
MDAwMDAgKzAxMDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBm
c19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50
MzJfdAkJeGFfdHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAg
dWludDMyX3QJCXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisj
ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90
CQl4YV9naWQ7DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisg
ICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAg
ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp
bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEw
LTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQg
MTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAv
Kg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVu
aXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2Nr
aG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHks
IFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4N
CiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tz
LmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisv
KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6
MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAg
IDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2RlZmluZSBOTlBGU19O
T19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5v
IGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEgg
ICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9E
SVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNI
RV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUg
Tk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAyeCINCisjZGVmaW5l
IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5O
UEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVm
aW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVf
RElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNk
ZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0la
RSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNz
YWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVz
c2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0IDE4OjMzOjMyLjAwMDAwMDAw
MCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAg
Ki8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjEgMjAwNi8x
MC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX21l
c3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAyMDoyMDo1NSB0b2wgRXhwICQg
Ki8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAjZGVmaW5lIF94bXNnX2gNCkBA
IC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVpbnQxNl90IG5ucGZzX3JpZ2h0
czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYgcGFnID09IDAsIHVzZSB1aWQg
DQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfY3JlZCB7DQorI2lmbmRl
ZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90IHVpZDsNCisjZWxzZQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNlDQorICAgIHVpbnQzMl90IHVp
ZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgbm5wZnNfcGFnX3QgcGFnOw0K
IH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYsNyArMTE0LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxlIHsNCiANCiAvKiBubnBmc19u
b2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFncw0KLSAqIFRoZSB1cHBlciAx
NiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZvciBvcGVydGluZyBzeXN0ZW0g
ZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50DQogICogZmxh
Z3MuDQogICovDQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAw
MDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw
MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy
MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6
IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs
YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291
cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv
bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu
ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0
OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog
ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv
cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj
YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh
Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K
KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl
bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN
CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO
IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5w
ZnNfbG9jbC5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19s
b2NsLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25u
cGZzX2xvY2wuaAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgJMjAxNi0wMS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0z
NCw3ICszNCw3IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog
JElkOiBubnBmc19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkg
dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIw
MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhB
VkVfQ09ORklHX0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyAr
NTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog
I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSAr
MTQwLDE2IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5u
cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl
dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq
bW50KTsNCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNf
Z2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0J
ICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAq
ZGF0YSk7DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0K
ICNlbmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMg
bm5wZnNfZGVudHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTgpDQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19z
cGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0
X2Zvcl9lYWNoDQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9z
eXNjYWxsX2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBu
bnBmc19kZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2Vu
dHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisj
ZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5o
YXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAg
ICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAu
OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEy
LTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0
MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVy
biB1aW50MzJfdCBubnBmc19ibG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0K
ICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAg
ICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisj
ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp
cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8g
Ki8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhO
X0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0
OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTE2IDE0OjE2OjQ5LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEANCiAgKiBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX2Jsb2Nr
cy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6MjQgdG9sIEV4cCAkICovDQor
LyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuNiAyMDEwLzA4LzA4IDIwOjQz
OjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19s
b2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2ZzLmg+DQpAQCAtNDMs
NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j
bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w
YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq
LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg
cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm
IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA
QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog
ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN
CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg
ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu
b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg
ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t
dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM
KTsNCkBAIC0zMTgsMTAgKzMyOSwyNiBAQCBubnBmc19ibG9ja19vcGVuKHN0
cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIHN0cnVjdCBubnBmcyAqbm5w
ZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2RlKTsNCiAgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKG5vZGUpOw0KICAgICBpbnQg
ZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0
IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgcGF0aCBwYXRo
Ow0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90IHNhdmV1aWQ7DQogICAgIGdp
ZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90IHNhdmV1aWQ7DQor
ICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRpZg0KICAgICBpbnQgcmV0Ow0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI5KQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQorICAg
IHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0KKyNlbmRpZg0KKw0KKyAg
ICAodm9pZClzYXZldWlkOw0KKyAgICAodm9pZClzYXZlZ2lkOw0KIA0KICAg
ICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9fQ1JF
QVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0zNDYsMjEgKzM3MywzOCBAQCBu
bnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAg
IEJVR19PTighbm5wZnNwLT5jYWNoZWRpciB8fCAhbm5wZnNwLT5jYWNoZXJv
b3QpOw0KICAgICANCiAgICAgLyogdXNlIHRoZSBuZnNkIHRyaWNrIHRvIGdp
dmUgdXMgYWNjZXNzICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50
LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAg
ICBjdXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50
LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBk
Z2V0KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQo
bm5wZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNU
X05PUk07DQotICAgIG5kLmRlcHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAw
Ow0KLSAgICANCi0gICAgaWYgKGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxh
Z3MgPSBMT09LVVBfUEFSRU5UOw0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93
YWxrKGNhY2hlbmFtZSwgJm5kKTsNCisjZWxzZQ0KKyAgICBzYXZldWlkID0g
Y3VycmVudF9mc3VpZCgpOw0KKyAgICBzYXZlZ2lkID0gY3VycmVudF9mc2dp
ZCgpOw0KKyAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9jcmVkcygpOw0K
KyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KKyAgICAgICAgcmV0
dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzdWlkID0gbm5w
ZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzZ2lkID0gbm5wZnNw
LT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMob3ZlcnJp
ZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0
aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3Qs
DQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBM
T09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBy
ZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNw
LT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAm
IE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZC5wYXRo
KTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw
LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h
bWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDog
MCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYNCiAgICAgaWYgKHJldCkgew0K
IAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWlu
dDMyX3QgbWFzazsNCkBAIC0zODcsMTYgKzQzMSwzNyBAQCBubnBmc19ibG9j
a19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBp
ZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24g
Y3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRl
bnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxsIHRvIGtlcm5fcGF0aF9jcmVh
dGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVudCBvcHRpb25hbD8gKi8NCisJ
c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9G
RENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkNCisjZWxzZQ0KKwkvKiBUT0RP
OiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCksIGlzIHRo
ZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ICovDQorCXN0cnVjdCBkZW50
cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIE5VTEws
ICZwYXRoLCAwKTsJDQorI2VuZGlmDQogCWlmIChJU19FUlIoZGVudHJ5KSkg
ew0KIAkgICAgcmV0ID0gUFRSX0VSUihkZW50cnkpOw0KIAl9IGVsc2Ugew0K
LQkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5kZW50cnktPmRfaW5vZGUsIGRl
bnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisJICAgIHJldCA9
IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwg
U19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIC8qIFRPRE86
IHNob3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29s
IHdhbnRfZXhjbCwgYmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2Ny
ZWF0ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNS
fFNfSVdVU1IsIDApOw0KKyNlbHNlDQorCSAgICAvKiBUT0RPOiBzaG91bGQg
dGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4
Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0
aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAw
KTsNCisjZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KLQlt
dXRleF91bmxvY2soJm5kLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQot
CXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCW11dGV4X3VubG9jaygmbmQu
cGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KKwlwYXRoX3B1dCgm
bmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhfdW5sb2NrKCZwYXRoLmRlbnRy
eS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBhdGhfcHV0KCZwYXRoKTsNCisj
ZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkgICAgcHJpbnRrKCJubnBmc19i
bG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1l
LCAtcmV0KTsNCkBAIC00MTAsMTIgKzQ3NSwyNSBAQCBubnBmc19ibG9ja19v
cGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogCSAgICByZXQgPSBubnBm
c19ibG9ja19leHRlbmQobm9kZSwgb2Zmc2V0KTsNCiAJfQ0KICAgICB9IGVs
c2Ugew0KLQlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLmRlbnRy
eSwgbmQubW50LCBmbGFncyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisJc3RydWN0IGZpbGUgKmYgPSBk
ZW50cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdz
KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDYsMCkNCisgICAgICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29w
ZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBmbGFncywgY3VycmVu
dF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCisJc3RydWN0IHBhdGggdG1wX3BhdGggPSB7
IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRyeSA9IG5kLnBhdGguZGVudHJ5
IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZ0
bXBfcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZWxzZQ0KKyAg
ICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbigmcGF0aCwgZmxh
Z3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZW5kaWYNCiAJaWYgKElTX0VSUihm
KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsNCiAJICAgIHByaW50aygi
bm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWlsZWQ6ICVkXG4iLCBjYWNo
ZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVidWdfb29wcygpOw0KLQkg
ICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIHBhdGhfcHV0KCZu
ZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNl
bmRpZg0KIAl9IGVsc2Ugew0KIAkgICAgKmZpbGUgPSBmOw0KIAl9DQpAQCAt
NDI0LDggKzUwMiwxMyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm
c19ub2RlICpub2RlDQogICAgIC8qIHBhdGhfcmVsZWFzZSgpIGlzIHVzdWFs
bHkgaGFuZGxlZCBvbiBjbG9zZSAqLw0KIA0KICBvdXQ6DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg
IGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsNCiAgICAgY3VycmVudC0+ZnNn
aWQgPSBzYXZlZ2lkOw0KKyNlbHNlDQorICAgIHJldmVydF9jcmVkcyhvbGRf
Y3JlZCk7DQorICAgIHB1dF9jcmVkKG92ZXJyaWRlX2NyZWQpOw0KKyNlbmRp
Zg0KIA0KICAgICByZXR1cm4gcmV0Ow0KIH0NCmRpZmYgLXVwck4gLVhub2Rp
ZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBh
cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMDYtMTIt
MTEgMTc6MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25u
cGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMTYtMDEtMTQgMTY6MTU6MDAu
MDAwMDAwMDAwICswMTAwDQpAQCAtMTEyLDEwICsxMTIsMTUgQEAgbm5wZnNf
cHJpbnRfYWxpYXNlcyhjb25zdCBzdHJ1Y3QgaW5vZGUgKg0KIHZvaWQNCiBu
bnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGlub2RlICpp
bm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRp
Zg0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQogICAgIGludCBiYWls
b3V0ID0gMTAwOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50
cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50
cnkpIHsNCiAJaWYgKC0tYmFpbG91dCA8IDApIHsNCkBAIC0xMzEsNiArMTM2
LDI2IEBAIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1Y3Qg
aW4NCiAJfQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KICAgICB9DQorI2Vs
c2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgYWxp
YXMsICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAg
IGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRy
eSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2Vu
dHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRfYWxpYXMpIHsN
CisjZW5kaWYNCisJaWYgKC0tYmFpbG91dCA8IDApIHsNCisJICAgIHByaW50
aygiIC4uLiIpOw0KKwkgICAgYnJlYWs7DQorCX0NCisJaWYgKGRlbnRyeSkg
ew0KKwkgICAgcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWRlbnRyeS0+ZF9u
YW1lLmxlbiwNCisJCSAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGRlbnRyeSk7
DQorCSAgICBpZiAobm5wZnNfZF9lbnRyeV91bmhhc2hlZCgmZGVudHJ5LT5k
X2hhc2gpKQ0KKwkJcHJpbnRrKCIodW5oYXNoZWQpIik7DQorCX0NCisgICAg
fQ0KKyNlbmRpZg0KICAgICBwcmludGsoIlxuIik7DQogfQ0KIA0KQEAgLTE0
Niw3ICsxNzEsMTEgQEAgbm5wZnNfcHJpbnRfY2hpbGRyZW4oY29uc3Qgc3Ry
dWN0IGRlbnRyeQ0KIA0KICAgICB3aGlsZSAoc3ViZGlycyAhPSAmZGVudHJ5
LT5kX3N1YmRpcnMpIHsNCiAJc3RydWN0IGxpc3RfaGVhZCAqdG1wID0gc3Vi
ZGlyczsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50
cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UN
CisJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry
dWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQogDQogCXByaW50aygi
ICUuKnMoJXApIiwgKGludCljaGlsZC0+ZF9uYW1lLmxlbiwNCiAJICAgICAg
IGNoaWxkLT5kX25hbWUubmFtZSwgY2hpbGQpOw0KZGlmZiAtdXByTiAtWG5v
ZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMJMjAwNi0xMC0yNCAxODoz
MzozNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGlu
dXgvbm5wZnNfZGV2LmMJMjAxNi0wMS0xNCAxNjoyODoxOS4wMDAwMDAwMDAg
KzAxMDANCkBAIC0zMDAsNyArMzAwLDkgQEAgbm5wZnNfaW52YWxpZGF0ZV9h
bGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBGU0RFQihYREVCTk9E
RSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGluZ1xuIikpOw0KIA0K
ICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAgICAg
aW52YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsNCisjZW5kaWYNCiAgICAg
DQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZyZWVfYWxsX25ucGZzX25v
ZGVzIGRvbmVcbiIpKTsNCiB9DQpAQCAtMzc0LDcgKzM3NiwxMSBAQCBubnBm
c19kZXZjbG9zZShzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RyDQogc3RhdGlj
IHNzaXplX3QNCiBubnBmc19kZXZyZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBj
aGFyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQ0KIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k
aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1Io
ZGV2KV07DQogICAgIHN0cnVjdCBubnBmc19saW5rICpmaXJzdDsNCiAgICAg
aW50IHJldCA9IDAsIGVycm9yID0gMDsNCkBAIC00MzksOCArNDQ1LDEyIEBA
IG5ucGZzX2RldndyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCANCiAN
CiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZ3cml0ZVxuIikp
Ow0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KICAgICBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZS0+aV9yZGV2Ow0KLSAgICBubnBmc3AgPSAmbm5wZnNbTUlOT1IoZGV2
KV07DQorI2Vsc2UNCisgICAgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+
ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KKyAgICAgbm5wZnNwID0gJm5u
cGZzW01JTk9SKGRldildOw0KIA0KICAgICBkb3duKCZubnBmc3AtPmNoYW5u
ZWxfc2VtKTsNCiAgICAgaWYgKG5ucGZzcC0+c3RhdHVzICYgTk5QRlNfREVW
V1JJVEUpIHsNCkBAIC01MDUsMTkgKzUxNSwzNyBAQCBubnBmc19kZXZ3cml0
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgDQogLyoNCiAgKiBOb3QgdXNl
ZC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kZXZpb2N0bChz
dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJICAg
ICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNl
bHNlDQorc3RhdGljIGxvbmcNCitubnBmc191bmxvY2tlZF9kZXZpb2N0bChz
dHJ1Y3QgZmlsZSAqZmlsZSwNCisJICAgICAgIHVuc2lnbmVkIGludCBjbWQs
IHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAgICBO
TlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBm
bGFncyA9ICVkXG4iLA0KIAkJICAgICAgIGlub2RlLT5pX3JkZXYsIGZpbGUt
PmZfZmxhZ3MpKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQorICAgIE5OUEZTREVCKFhERUJERVYsICgi
bm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQsIGZsYWdzID0gJWRcbiIsDQorCQkg
ICAgICAgZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+
Zl9mbGFncykpOw0KKyNlbHNlDQorICAgIE5OUEZTREVCKFhERUJERVYsICgi
bm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQsIGZsYWdzID0gJWRcbiIsDQorCQkg
ICAgICAgZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBm
aWxlLT5mX2ZsYWdzKSk7DQorI2VuZGlmDQogICAgIHJldHVybiAtRUlOVkFM
Ow0KIH0NCiANCiBzdGF0aWMgdW5zaWduZWQgaW50DQogbm5wZnNfZGV2cG9s
bChzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqd2FpdCkNCiB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRf
aW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBubnBmc19kZXZfdCBkZXYg
PSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vu
ZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0gJm5ucGZzW01JTk9S
KGRldildOw0KICAgICBpbnQgcmV0ID0gMDsNCiAgICAgDQpAQCAtOTUzLDcg
Kzk4MSwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMg
PSB7DQogICAgIHJlYWQ6CQlubnBmc19kZXZyZWFkLA0KICAgICB3cml0ZToJ
CW5ucGZzX2RldndyaXRlLA0KICAgICBwb2xsOgkJbm5wZnNfZGV2cG9sbCwN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM2KQ0KICAgICBpb2N0bDoJCW5ucGZzX2RldmlvY3RsLA0KKyNlbHNlDQor
ICAgIHVubG9ja2VkX2lvY3RsOglubnBmc191bmxvY2tlZF9kZXZpb2N0bCwN
CisjZW5kaWYNCiAgICAgcmVsZWFzZToJCW5ucGZzX2RldmNsb3NlLA0KICAg
ICBvcGVuOgkJbm5wZnNfZGV2b3BlbiwNCiB9Ow0KQEAgLTk2OCw4ICsxMDAw
LDEzIEBAIG5ucGZzX2luaXRfZGV2aWNlKHZvaWQpDQogCWluaXRfd2FpdHF1
ZXVlX2hlYWQoJihubnBmc1tpXS53YWl0X3F1ZXVlKSk7DQogCW5ucGZzX2lu
aXRxKCZubnBmc1tpXS5tZXNzYWdlcSk7DQogCW5ucGZzX2luaXRxKCZubnBm
c1tpXS5zbGVlcHEpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzcpDQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmlu
YWN0aXZlX3NlbSk7DQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmNoYW5uZWxf
c2VtKTsNCisjZWxzZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmluYWN0aXZl
X3NlbSwgMSk7DQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uY2hhbm5lbF9zZW0s
IDEpOw0KKyNlbmRpZg0KIAlJTklUX0xJU1RfSEVBRCgmbm5wZnNbaV0uaW5h
Y3RpdmVfbGlzdCk7DQogCW5ucGZzW2ldLm5ub2RlcyA9IDA7DQogICAgIH0N
CmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51
eC9ubnBmc19pbm9kZW9wcy5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
c19pbm9kZW9wcy5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9u
bnBmc19pbm9kZW9wcy5jCTIwMDYtMTItMTEgMTc6MzU6MjYuMDAwMDAwMDAw
ICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2lub2Rl
b3BzLmMJMjAxNi0wMS0xNSAxMjo0NDo1Ni4wMDAwMDAwMDAgKzAxMDANCkBA
IC00MCwyNSArNDAsNDEgQEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGV2
Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2RpcmVudC5oPg0KICNpbmNs
dWRlIDxubnBmcy9ubnBmc19zeXNjYWxscy5oPg0KKyNpbmNsdWRlIDxsaW51
eC9haW8uaD4NCiAjaW5jbHVkZSA8bGludXgvYmluZm10cy5oPg0KICNpbmNs
dWRlIDxsaW51eC9maWxlLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAu
aD4NCiAjaW5jbHVkZSA8bGludXgvcGFnZS1mbGFncy5oPg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorI2lu
Y2x1ZGUgPGxpbnV4L3Vpby5oPg0KKyNlbmRpZg0KICNpbmNsdWRlIDxsaW51
eC93cml0ZWJhY2suaD4NCiAjaW5jbHVkZSA8YXNtL2ZjbnRsLmg+DQogDQog
I2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2
IDEuMjIzIDIwMDYvMTIvMTEgMTY6MzU6MjYgdG9sIEV4cCAkIik7DQorUkNT
SUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIwMTAvMDgvMDgg
MjA6NDM6MDQgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGljIGlu
dA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQg
ZmxhZyk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFsaWRh
dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpu
ZCk7DQotDQorI2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlk
YXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdz
KTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM4KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2Rf
ZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0
aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNf
ZF9yZWxlYXNlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMTA1LDcg
KzEyMSw3IEBAIG5ucGZzX3ZtYV9jbG9zZSAoc3RydWN0IHZtX2FyZWFfc3Ry
dWN0ICoNCiB9DQogDQogc3RhdGljIHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0
cnVjdCBubnBmc19maWxlX3ZtX29wcyA9IHsNCi0gICAgLm5vcGFnZQk9IGZp
bGVtYXBfbm9wYWdlLA0KKyAgICAuZmF1bHQgICAgICA9IGZpbGVtYXBfZmF1
bHQsDQogICAgIC5jbG9zZQk9IG5ucGZzX3ZtYV9jbG9zZSwNCiB9Ow0KIA0K
QEAgLTEzNCwxMiArMTUwLDE0IEBAIG5ucGZzX3ByaW50X3BhdGgoc3RydWN0
IGRlbnRyeSAqZGVudHJ5KQ0KICAqDQogICovDQogDQorI2lmIDANCiB2b2lk
DQogbm5wZnNfcHJpbnRfbG9jayhjaGFyICpzLCBzdHJ1Y3Qgc2VtYXBob3Jl
ICpzZW0pDQogew0KICAgICBOTlBGU0RFQihYREVCTE9DSywgKCJsb2NrOiAl
cyBzZW06ICVwIGNvdW50OiAlZFxuIiwNCiAJCSAgICAgIHMsIHNlbSwgKGlu
dClhdG9taWNfcmVhZCgmc2VtLT5jb3VudCkpKTsNCiB9DQorI2VuZGlmDQog
DQogLyoNCiAgKg0KQEAgLTE4NSw3ICsyMDMsNyBAQCBubnBmc19kX2lwdXQo
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1DQogICAgIE5OUEZTREVCKFhE
RUJWTk9QUywNCiAJICAgICAoIm5ucGZzX2RfaXB1dDogZGVudHJ5ICVwLCBp
bm9kZSAlcFxuIiwgZGVudHJ5LCBpbm9kZSkpOw0KICAgICANCi0gICAgaWYg
KG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2lu
ZyAqLw0KKyAgICBpZiAobm9kZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQVVQp
IC8qIFhYWCBsb2NraW5nLiBuZXZlciBzZXQ/ICovDQogCW5ucGZzX2lyZWxl
KGlub2RlKTsNCiAgICAgZWxzZQ0KIAlpcHV0KGlub2RlKTsNCkBAIC0yMTIs
OCArMjMwLDEzIEBAIG5ucGZzX2lub2RlX3ZhbGlkKHN0cnVjdCBpbm9kZSAq
aW5vZGUpDQogICogbm5wZnNfbG9va3VwIG5vdyByZXR1cm5zIGEgZGVudHJ5
Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQogbm5w
ZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRp
YyBzdHJ1Y3QgZGVudHJ5ICoNCitubnBmc19sb29rdXAgKHN0cnVjdCBpbm9k
ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBm
bGFncykNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdl
X2dldG5vZGUgbXNnOw0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCkBA
IC0yNDAsNyArMjYzLDExIEBAIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlub2Rl
ICpkaXIsIHN0cnVjdCANCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBG
U19NU0dfR0VUTk9ERTsNCiAgICAgICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51
aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVk
LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBh
ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLnBhcmVudF9oYW5kbGUgPSBk
LT5oYW5kbGU7DQogICAgICAgICANCkBAIC0zMTAsNyArMzM3LDExIEBAIG5u
cGZzX29wZW5fdmFsaWQoc3RydWN0IGlub2RlICp2cCwgdV9pbnQNCiAgICAg
ICB7DQogCXN0cnVjdCBubnBmc19tZXNzYWdlX29wZW4gbXNnOw0KIAltc2cu
aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19PUEVOOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cu
Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5j
cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9IHhu
LT5oYW5kbGU7DQogCW1zZy50b2tlbnMgPSB0b2s7DQpAQCAtMzk3LDcgKzQy
OCwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpu
b2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls
ZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl
DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu
dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u
cGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg
IGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDI1LDcg
KzQ2MCwxMSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs
IHVfaW50DQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BV
VERBVEE7DQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQor
ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp
Zg0KIAltc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcgICA9
IGZsYWc7DQogCW1zZy5vZmZzZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs0OTks
MjcgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2lu
dA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzNSkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5
bmMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg
aW50IGRhdGFzeW5jKQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMSwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3lu
YyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5jKQ0KKyNlbHNlDQor
c3RhdGljIGludA0KK25ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBs
b2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQsIGludCBkYXRhc3luYykNCisjZW5k
aWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigyLDYsMzUpDQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZp
bGUtPmZfcGF0aC5kZW50cnk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCiAgICAgc3Ry
dWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4
bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNw
Ow0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2RlKTsN
CiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtNTExLDcg
KzU2MywxMSBAQCBubnBmc19hdHRyX3ZhbGlkKHN0cnVjdCBpbm9kZSAqIHZw
LCB1X2luDQogICAgICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0
YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUg
PSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cu
Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAg
ICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBt
c2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9
IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVv
Zihtc2cpKTsNCkBAIC01NTEsNyArNjA3LDExIEBAIG5ucGZzX3JpZ2h0c192
YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgbm4NCiAgICAgICAgICAgICBzdHJ1
Y3Qgbm5wZnNfbWVzc2FnZV9nZXRhdHRyIG1zZzsNCiANCiAgICAgICAgICAg
ICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVRBVFRSOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KQ0KICAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsN
CisjZWxzZQ0KKyAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf
dWlkKCk7DQorI2VuZGlmDQogICAgICAgICAgICAgbXNnLmNyZWQucGFnID0g
cGFnOw0KICAgICAgICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0K
ICAgICAgICAgICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw
LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KQEAgLTU5MiwxMSArNjUy
LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50
IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lm
IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgp
IHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEs
MCkpDQorc3RhdGljIGludA0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu
b2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQot
bm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9k
ZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorbm5wZnNfcGVybWlzc2lvbihz
dHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZs
YWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAg
bm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBm
c19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JM
T0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAg
aWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4g
LUVDSElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3Bh
ZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZz
X2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9k
ZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC02
MzYsNyArNzEwLDExIEBAIG5ucGZzX2RvX2dldGRhdGEoc3RydWN0IG5ucGZz
X25vZGUgKnhuLCANCiAgICAgaW50IGVycm9yOw0KIA0KICAgICBtc2cuaGVh
ZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVREQVRBOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBt
c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNn
LmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNn
LmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBtc2cuaGFuZGxl
ID0geG4tPmhhbmRsZTsNCiAgICAgbXNnLnRva2VucyA9IHRvazsNCkBAIC03
NTAsMTEgKzgyOCwxOSBAQCBubnBmc19kYXRhX3ZhbGlkKHN0cnVjdCBpbm9k
ZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmls
ZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSkNCiB7DQog
ICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxz
ZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRl
bnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGFkZHJlc3Nf
c3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7DQogDQogICAgIE5O
UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGlub2RlOiAlcFxuIiwg
aW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KICAgICBubnBmc19wcmludF9wYXRoKGZpbGUtPmZf
ZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wcmludF9wYXRoKGZpbGUt
PmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVC
Vk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2VzOiIpKTsNCiAgICAgbm5wZnNf
cHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAgIA0KQEAgLTc4OSwzNyArODc1
LDUwIEBAIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBmaWxl
LCANCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBm
c19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQotI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQogCSAgICAg
ICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9z
ZWdzLA0KKwkgICAgICAgbG9mZl90IHBvcykNCiAjZWxzZQ0KLQkgICAgICAg
Y2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LA0KK3N0YXRpYyBzc2l6
ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3Ry
dWN0IGlvdl9pdGVyICp0bykNCiAjZW5kaWYNCi0JICAgICAgIGxvZmZfdCBw
b3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmls
ZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3Np
emVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXpl
X3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3Np
emVfdCBjb3VudCA9IGlvdl9pdGVyX2NvdW50KHRvKTsNCiAjZW5kaWYNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnkt
PmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAg
IHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2Rl
KTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0KIAlOTlBGU0RFQihY
REVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVwKTogdG9rZW5zOiAweCV4
XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tlbnMpKTsNCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K
ICAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUsIE5OUEZTX0RB
VEFfUiwgcG9zLCBwb3MgKyBjb3VudCk7DQorI2Vsc2UNCisgICAgZXJyb3Ig
PSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIGlvY2It
PmtpX3BvcywgaW9jYi0+a2lfcG9zICsgY291bnQpOw0KKyNlbmRpZg0KICAg
ICBpZiAoZXJyb3IpIHsNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZz
X3JlYWRfZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVycm9yKSk7DQog
CXJldHVybiBlcnJvcjsNCiAgICAgfQ0KICAgICANCi0jaWYgTElOVVhfVkVS
U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAg
ICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2NiLCBpb3YsIG5y
X3NlZ3MsIHBvcyk7DQogI2Vsc2UNCi0gICAgZXJyb3IgPSBnZW5lcmljX2Zp
bGVfYWlvX3JlYWQoaW9jYiwgYnVmLCBjb3VudCwgcG9zKTsNCisgICAgZXJy
b3IgPSBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyKGlvY2IsIHRvKTsNCiAjZW5k
aWYNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmls
ZTogZXJyb3IgPSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9y
Ow0KQEAgLTgyOSwyMyArOTI4LDM2IEBAIG5ucGZzX2Fpb19yZWFkKHN0cnVj
dCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGljIHNz
aXplX3QNCiBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDE5KQ0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVkIGxv
bmcgbnJfc2VncywNCisJCWxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JCWNvbnN0
IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgDQorc3RhdGljIHNz
aXplX3QNCitubnBmc193cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwg
c3RydWN0IGlvdl9pdGVyICpmcm9tKQ0KICNlbmRpZg0KLQkJbG9mZl90IHBv
cykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxl
ICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCi0jaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6
ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3NpemVf
dCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6
ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7DQogI2VuZGlmDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5
LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg
PSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAg
ICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9k
ZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBwb3M7DQorI2Vsc2UN
CisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9wb3M7DQorI2VuZGlm
DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWlv
X3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJCSBpbm9kZSwgeG4t
PnRva2VucykpOw0KQEAgLTg1OSwxMCArOTcxLDEwIEBAIG5ucGZzX2Fpb193
cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAg
ICAgfQ0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF
UlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19maWxl
X2Fpb193cml0ZShpb2NiLCBpb3YsIG5yX3NlZ3MsIHBvcyk7DQogI2Vsc2UN
Ci0gICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGJ1
ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3dy
aXRlX2l0ZXIoaW9jYiwgZnJvbSk7DQogI2VuZGlmDQogICAgIGlmICghSVNf
RVJSX1ZBTFVFKGVycm9yKSkNCiAJeG4tPmZsYWdzIHw9IE5OUEZTX0RBVEFf
RElSVFk7IC8qIFhYWCByYWNlICovDQpAQCAtODcxLDkgKzk4MywxOSBAQCBu
bnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KICAgICByZXR1
cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDMsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfY3Jl
YXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
DQogCSAgICAgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpk
aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1v
ZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGlu
dA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwgYm9vbCBleGNs
KQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQog
ICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC05MDMsOSArMTAyNSwx
NyBAQCBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBk
DQogICAgIFhBX0NMRUFSKCZtc2cuYXR0cik7DQogICAgIFhBX1NFVF9NT0RF
KCZtc2cuYXR0ciwgbW9kZSk7DQogICAgIFhBX1NFVF9UWVBFKCZtc2cuYXR0
ciwgTk5QRlNfRklMRV9SRUcpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBYQV9TRVRfR0lEKCZt
c2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNlDQorICAgIFhBX1NF
VF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0K
ICAgICBtc2cubW9kZSA9IDA7CQkvKiBYWFggKi8NCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNn
LmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5j
cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5j
cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBm
c19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNn
KSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk0Niw3ICsxMDc2LDEx
IEBAIG5ucGZzX3VubGluayAoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QN
CiAgICAgaWYgKHN0cmxjcHkobXNnLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5h
bWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAly
ZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQu
dWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBh
ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19tZXNz
YWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQog
ICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk5MSw3ICsxMTI1LDExIEBAIG5u
cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg
aWYgKHN0cmxjcHkobXNnLm5ld19uYW1lLCBuZXdfZGVudHJ5LT5kX25hbWUu
bmFtZSwgc2l6ZW9mKG1zZy5uZXdfbmFtZSkpID49IE5OUEZTX01BWF9OQU1F
KQ0KIAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiAJDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cu
Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cu
Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5w
ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1z
ZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMDA4LDggKzExNDYs
MTMgQEAgbm5wZnNfcmVuYW1lIChzdHJ1Y3QgaW5vZGUgKiBvbGRfZGlyLCBz
dA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDMsMCkNCiBzdGF0aWMgaW50
DQogbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIGludCBtb2RlKQ0KKyNlbHNlDQorc3RhdGljIGludA0K
K25ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRy
eSAqZGVudHJ5LCB1bW9kZV90IG1vZGUpDQorI2VuZGlmDQogew0KICAgICBz
dHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUg
KnhuOw0KQEAgLTEwNDAsOSArMTE4MywxNyBAQCBubnBmc19ta2RpcihzdHJ1
Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogCVhBX0NMRUFSKCZtc2cuYXR0
cik7DQogCVhBX1NFVF9NT0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogCVhBX1NF
VF9UWVBFKCZtc2cuYXR0ciwgTk5QRlNfRklMRV9ESVIpOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAlY
QV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNl
DQorICAgICAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dp
ZCgpKTsNCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3Vy
cmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5w
ZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KIAlpZiAoZXJyb3Ig
PT0gMCkNCkBAIC0xMDgzLDcgKzEyMzQsMTEgQEAgbm5wZnNfcm1kaXIoc3Ry
dWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KICAgICBtc2cucGFyZW50X2hh
bmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1l
LCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBO
TlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5k
aWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAg
ICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFk
ZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAt
MTEyOCw3ICsxMjgzLDExIEBAIHN0YXRpYyBpbnQgbm5wZnNfbGluayhzdHJ1
Y3QgZGVudHJ5ICpvbGQNCiAJaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5hbWUs
IHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkgICAg
cmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQu
dWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFn
ID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3NhZ2Vf
cnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJaWYg
KGVycm9yID09IDApDQpAQCAtMTE1NywyOSArMTMxNiw0NyBAQCBzdGF0aWMg
aW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQogICAgIHhuID0g
Vk5PREVfVE9fWE5PREUoZGlyKTsNCiANCiAgICAgew0KLQlzdHJ1Y3Qgbm5w
ZnNfbWVzc2FnZV9zeW1saW5rIG1zZzsNCisJc3RydWN0IG5ucGZzX21lc3Nh
Z2Vfc3ltbGluayAqbXNnID0gTlVMTDsNCiANCi0JbXNnLmhlYWRlci5vcGNv
ZGUgPSBOTlBGU19NU0dfU1lNTElOSzsNCi0JbXNnLnBhcmVudF9oYW5kbGUg
PSB4bi0+aGFuZGxlOw0KLQlpZiAoc3RybGNweShtc2cubmFtZSwgbmFtZSwg
c2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQotCSAgICBy
ZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JaWYgKHN0cmxjcHkobXNnLmNvbnRl
bnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLmNvbnRlbnRzKSkgPj0gTk5QRlNf
TUFYX1NZTUxJTktfQ09OVEVOVCkNCi0JICAgIHJldHVybiAtRU5BTUVUT09M
T05HOw0KLQlYQV9DTEVBUigmbXNnLmF0dHIpOw0KLQlYQV9TRVRfTU9ERSgm
bXNnLmF0dHIsIDA3NzcpOw0KLQlYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5O
UEZTX0ZJTEVfTE5LKTsNCi0JWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJl
bnQtPmZzZ2lkKTsNCisJbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdG
UF9LRVJORUwpOw0KIA0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7
DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCi0JZXJyb3Ig
PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXpl
b2YobXNnKSk7DQorCWlmIChtc2cgPT0gTlVMTCkNCisJICByZXR1cm4gLUVO
T01FTTsNCisNCisJbXNnLT5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1NZ
TUxJTks7DQorCW1zZy0+cGFyZW50X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQor
CWlmIChzdHJsY3B5KG1zZy0+bmFtZSwgbmFtZSwgc2l6ZW9mKG1zZy0+bmFt
ZSkpID49IE5OUEZTX01BWF9OQU1FKSB7DQorCSAga2ZyZWUobXNnKTsNCisJ
ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlpZiAoc3RybGNweSht
c2ctPmNvbnRlbnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLT5jb250ZW50cykp
ID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpIHsNCisJICBrZnJlZSht
c2cpOw0KKwkgIHJldHVybiAtRU5BTUVUT09MT05HOw0KKwl9DQorCVhBX0NM
RUFSKCZtc2ctPmF0dHIpOw0KKwlYQV9TRVRfTU9ERSgmbXNnLT5hdHRyLCAw
Nzc3KTsNCisJWEFfU0VUX1RZUEUoJm1zZy0+YXR0ciwgTk5QRlNfRklMRV9M
TkspOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KKwlYQV9TRVRfR0lEKCZtc2ctPmF0dHIsIGN1cnJlbnQt
PmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNnLT5h
dHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KKw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKwlt
c2ctPmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAg
ICBtc2ctPmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCisJ
bXNnLT5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJZXJyb3IgPSBu
bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2ctPmhlYWRlciwgc2l6ZW9m
KCptc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQotCSAgICBlcnJvciA9IE5O
UEZTX01TR19XQUtFVVBfRVJST1IoJm1zZyk7DQorCSAgICBlcnJvciA9IE5O
UEZTX01TR19XQUtFVVBfRVJST1IobXNnKTsNCiANCiAJLyogWFhYIHNob3Vs
ZCB0aGlzIHJlYWxseSBiZSBoZXJlICovDQogCWlmIChERU5UUllfVE9fWERF
TlRSWShkZW50cnkpLT54ZF9mbGFncyA9PSAwKSB7DQogCSAgICBwcmludGso
S0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IG5ucGZzX3N5bWxpbms6IGRlbnRy
eSBub3QgdmFsaWRcbiIpOw0KIAl9DQorCWtmcmVlKG1zZyk7DQogICAgIH0N
CiANCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTExODgsMTIgKzEzNjUsMjEg
QEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZA0K
IC8qDQogICogV2UgaG9sZCBpX211dGV4Lg0KICAqLw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogc3RhdGlj
IGludA0KIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lk
ICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCisjZWxzZQ0KK3N0YXRp
YyBpbnQNCitubnBmc19pdGVyYXRlKHN0cnVjdCBmaWxlICogZmlsZSwgc3Ry
dWN0IGRpcl9jb250ZXh0ICpjdHgpDQorI2VuZGlmDQogew0KICAgICBpbnQg
ZXJyb3I7DQogICAgIGxvZmZfdCBvZmZzZXQsIGJlZ2luX29mZnNldDsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnkt
PmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAg
IHN0cnVjdCBpbm9kZSAqY2FjaGVfaW5vZGU7DQogICAgIHN0cnVjdCBubnBm
c19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgY2hh
ciAqYnVmOw0KQEAgLTEyNjQsNiArMTQ1MCw3IEBAIG5ucGZzX3JlYWRkaXIo
c3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCSAgICAoaW50KSB4ZGly
ZW50LT5kX25hbWxlbiwNCiAJCSAgICAoaW50KSAob2Zmc2V0K2JlZ2luX29m
ZnNldCkpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxMSwwKQ0KIAkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5v
ICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRpciAoZGlyZW50
LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0xMjc1LDYgKzE0
NjIsMTggQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZv
aWQgKg0KIAkJCSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZp
bGxkaXJfZXJyb3IpKTsNCiAJCWJyZWFrOw0KIAkgICAgfQ0KKyNlbHNlDQor
CSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0KKwkJJiYgKGZpbGxk
aXJfZXJyb3IgPSBkaXJfZW1pdCAoY3R4LA0KKwkJCQkgICAgIHhkaXJlbnQt
PmRfbmFtZSwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWxlbiwNCisJCQkJ
ICAgICB4ZGlyZW50LT5kX2ZpbGVubywNCisJCQkJICAgICBEVF9VTktOT1dO
KSkgPCAwKSB7DQorCQlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJCQkgKCJu
bnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7
DQorCQlicmVhazsNCisJICAgIH0NCisjZW5kaWYNCiAJICAgIG9mZnNldCAr
PSB4ZGlyZW50LT5kX3JlY2xlbjsNCiANCiAJICAgIGlmICh4ZGlyZW50LT5k
X3JlY2xlbiA9PSAwKSB7DQpAQCAtMTMzMSw5ICsxNTMwLDE1IEBAIG5ucGZz
X3JlYWRsaW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGMNCiAgKiBXZSBk
b24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMiwwKQ0KIHN0YXRpYyB2b2lk
ICoNCiBubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5
LA0KIAkJIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGlj
IGNvbnN0IGNoYXIgKg0KK25ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksDQorCQkgdm9pZCAqKnBhZ2UpDQorI2VuZGlmDQogew0K
ICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQpAQCAtMTM0NCw3ICsxNTQ5
LDExIEBAIG5ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkNCiAgICAgaWYgKGVycm9yKQ0KICAgICAgICByZXR1cm4gRVJSX1BUUihl
cnJvcik7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDQsMiwwKQ0KICAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19s
aWdodChkZW50cnksIG5kKTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGFnZV9m
b2xsb3dfbGlua19saWdodChkZW50cnksIHBhZ2UpOw0KKyNlbmRpZg0KIH0N
CiANCiAvKg0KQEAgLTEzOTgsNyArMTYwNywxMSBAQCBubnBmc19zZXRhdHRy
IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0DQogICAgICAgICBzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9wdXRhdHRyIG1zZzsNCiANCiAgICAgICAgIG1zZy5o
ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVEFUVFI7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNn
LmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAgICAgbXNnLmhh
bmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICBubnBmc19pYXR0cjJhdHRy
KHhuLCBhdHRyLCAmbXNnLmF0dHIpOw0KQEAgLTE0MjIsNiArMTYzNSw4IEBA
IG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAg
ICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAgICBpbnQgZXJyb3IgPSAw
Ow0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQogICAgIE5OUEZTREVCKFhE
RUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVcbiIpKTsNCiANCiAgICAg
ZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQpAQCAtMTQ1MCwx
OCArMTY2NSwxOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9k
ZSAqaW5vZGUsDQogICoNCiAgKi8NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50DQog
bm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyX3QgaWQp
DQotI2Vsc2UNCi1zdGF0aWMgaW50DQotbm5wZnNfZmx1c2goc3RydWN0IGZp
bGUgKmZpbGUpDQotI2VuZGlmDQogew0KICAgICBOTlBGU0RFQihYREVCVk5P
UFMsICgibm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmls
ZSAmJiBmaWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZSkNCiAJcmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRy
eS0+ZF9pbm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYg
ZmlsZS0+Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5k
X2lub2RlKQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZf
cGF0aC5kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBl
bHNlDQogCXJldHVybiAwOw0KIH0NCkBAIC0xNDcwLDggKzE2ODUsMTMgQEAg
bm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUpDQogICogUmV0dXJuIDEg
aWYgYGRlbnRyeScgaXMgc3RpbGwgdmFsaWQsIG90aGVyd2lzZSAwLg0KICAq
Lw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDYsMCkNCiBzdGF0aWMgaW50DQotbm5wZnNfZF9yZXZhbGlkYXRlKHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpIA0K
K25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0
cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25u
cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln
bmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCiAgICAgTk5Q
RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUu
KnNcIiAoaW5vZGUgJXApXG4iLA0KQEAgLTE1MTksOSArMTczOSwxNSBAQCBu
bnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAg
IHJldHVybiAwOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KIHN0YXRpYw0KIGludA0KIG5ucGZz
X2RfZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisjZWxzZQ0KK3N0
YXRpYw0KK2ludA0KK25ucGZzX2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50
cnkgKmRlbnRyeSkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAq
aW5vZGU7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xNTQ2
LDExICsxNzcyLDE2IEBAIG5ucGZzX2RfZGVsZXRlKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkNCiB9DQogDQogc3RhdGljIHNzaXplX3QNCi1ubnBmc19zZW5k
ZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLCBzaXplX3Qg
Y291bnQsDQotCSAgICAgICByZWFkX2FjdG9yX3QgYWN0b3IsIHZvaWQgKnRh
cmdldCkNCitubnBmc19zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwg
bG9mZl90ICpwcG9zLA0KKwkJICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpw
aXBlLCBzaXplX3QgY291bnQsDQorCQkgIHVuc2lnbmVkIGludCBmbGFncykN
CiB7DQogICAgIGludCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl
DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu
dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBp
ZiAoeG4gIT0gTlVMTCkNCkBAIC0xNTYxLDggKzE3OTIsNyBAQCBubnBmc19z
ZW5kZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90DQogCU5OUEZTREVC
KFhERUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogZGF0YSBub3QgdmFsaWQg
JWRcbiIsIGVycm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KLQ0K
LSAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9zZW5kZmlsZShmaWxlLCBwcG9z
LCBjb3VudCwgYWN0b3IsIHRhcmdldCk7DQorICAgIGVycm9yID0gZmlsZS0+
Zl9vcC0+c3BsaWNlX3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZs
YWdzKTsNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3Nl
bmRmaWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4g
ZXJyb3I7DQpAQCAtMTYzOSwzNCArMTg2OSwzMSBAQCBubnBmc193cml0ZV9i
YWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgDQogCXN0cnVjdCBhZGRyZXNz
X3NwYWNlICptYXBwaW5nID0gYmFja2ZpbGUtPmZfbWFwcGluZzsNCiAJdW5z
aWduZWQgbGVuID0gUEFHRV9DQUNIRV9TSVpFOw0KIAlzdHJ1Y3QgcGFnZSAq
YmFja3BhZ2U7DQorCXZvaWQgKmZzZGF0YTsNCiAJdW5zaWduZWQgbG9uZyBv
ZmZzZXQ7DQogDQogCWludCBlcnJvcjsNCiAJDQotCWRvIHsNCi0JCWJhY2tw
YWdlID0gZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIG5ucGZzX2dldF9iYWNr
aW5kZXgocGFnZSkpOw0KLQkJaWYgKCFiYWNrcGFnZSkgew0KLQkJCXByaW50
aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6IG5vIHBhZ2VcbiIpOw0KLQkJCXJl
dHVybiAtRUlPOw0KLQkJfQ0KKwkodm9pZClvZmZzZXQ7DQogDQotCQllcnJv
ciA9IG1hcHBpbmctPmFfb3BzLT5wcmVwYXJlX3dyaXRlKGJhY2tmaWxlLCBi
YWNrcGFnZSwNCi0JCQkJCQkgICAgICAwLCBsZW4pOw0KKwlkbyB7DQorCQll
cnJvciA9IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGlu
ZywgMCwgbGVuLA0KKwkJCQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJ
QkxFLA0KKwkJCQkJICAgICAgJmJhY2twYWdlLCAmZnNkYXRhKTsNCiAJCWlm
ICghZXJyb3IpIHsNCiAJCQljb3B5X2hpZ2hwYWdlKGJhY2twYWdlLCBwYWdl
KTsNCiAJCQlmbHVzaF9kY2FjaGVfcGFnZShiYWNrcGFnZSk7DQotCQkJZXJy
b3IgPSBtYXBwaW5nLT5hX29wcy0+Y29tbWl0X3dyaXRlKGJhY2tmaWxlLCBi
YWNrcGFnZSwNCi0JCQkJCQkJICAgICAwLCBsZW4pOw0KKwkJCWVycm9yID0g
cGFnZWNhY2hlX3dyaXRlX2VuZChiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVu
LA0KKwkJCQkJbGVuLCBiYWNrcGFnZSwgZnNkYXRhKTsNCisJCQlpZiAoZXJy
b3IgPiAwKQ0KKwkJCQllcnJvciA9IDA7DQogCQl9DQogCQlpZiAoZXJyb3Ig
PT0gQU9QX1RSVU5DQVRFRF9QQUdFKSB7DQotCQkJcGFnZV9jYWNoZV9yZWxl
YXNlKGJhY2twYWdlKTsNCiAJCQljb250aW51ZTsNCiAJCX0NCiAJfSB3aGls
ZSAoMCk7DQogDQogCW9mZnNldCA9IHBhZ2Vfb2Zmc2V0KGJhY2twYWdlKTsN
Ci0JdW5sb2NrX3BhZ2UoYmFja3BhZ2UpOw0KLQlwYWdlX2NhY2hlX3JlbGVh
c2UoYmFja3BhZ2UpOw0KIA0KIAlpZiAoZXJyb3IpDQogCQlwcmludGsoIm5u
cGZzX3dyaXRlX2JhY2twYWdlOiBFSU9cbiIpOw0KQEAgLTE2ODksMTMgKzE5
MTYsOSBAQCBubnBmc19yZWFkX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdl
LCBzDQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCiAJdW5zaWduZWQgbG9u
ZyBvZmZzZXQ7DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMTgpDQorCSh2b2lkKW9mZnNldDsNCisNCiAJYmFj
a3BhZ2UgPSByZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBuLCBiYWNrZmls
ZSk7DQotI2Vsc2UNCi0JYmFja3BhZ2UgPSByZWFkX2NhY2hlX3BhZ2UobWFw
cGluZywgbiwNCi0JCQkJICAgKGZpbGxlcl90ICopbWFwcGluZy0+YV9vcHMt
PnJlYWRwYWdlLA0KLQkJCQkgICBiYWNrZmlsZSk7DQotI2VuZGlmDQogCWlm
ICghSVNfRVJSKGJhY2twYWdlKSkgew0KIAkJd2FpdF9vbl9wYWdlX2xvY2tl
ZChiYWNrcGFnZSk7DQogDQpAQCAtMTg0MiwxMSArMjA2NSwxNyBAQCBubnBm
c19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzDQogDQogCWlm
IChtb2RzaXplID4gaV9zaXplX3JlYWQoaW5vZGUpKSB7DQogCQlpbnQgZXJy
b3I7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsOCwwKQ0KIAkJZXJyb3IgPSB2bXRydW5jYXRlKGlub2RlLCBtb2RzaXpl
KTsNCisjZWxzZQ0KKwkJZXJyb3IgPSBpbm9kZV9uZXdzaXplX29rKGlub2Rl
LCBtb2RzaXplKTsNCisJCWlmKCFlcnJvcikNCisJCQl0cnVuY2F0ZV9zZXRz
aXplKGlub2RlLCBtb2RzaXplKTsNCisjZW5kaWYNCiAJCWlmIChlcnJvcikg
ew0KIAkJCXByaW50aygibm5wZnNfcHJlcGFyZV93cml0ZTogdHJ1bmNhdGUo
JWxsdSkgLT4gJWRcbiIsDQogCQkJICAgICAgIG1vZHNpemUsIC1lcnJvcik7
DQotCQkJQlVHKCk7IC8qIFhYWCBub3QgY29ycmVjdCAqLw0KKwkJCS8qQlVH
KCk7Ki8gLyogWFhYIG5vdCBjb3JyZWN0ICovDQogCQl9DQogCX0NCiANCkBA
IC0xODcyLDggKzIxMDEsMzcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1
Y3QgZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
CisNCitzdGF0aWMgaW50DQorbm5wZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZp
bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2Zm
X3QgcG9zLA0KK3Vuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsIHN0cnVj
dCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpDQorew0KKwlzdHJ1Y3Qg
cGFnZSAqcGFnZTsNCisJcGdvZmZfdCBpbmRleDsNCisJdW5zaWduZWQgZnJv
bTsNCisNCisJaW5kZXggPSBwb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsNCisJ
ZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsNCisNCisjaWZk
ZWYgQU9QX0ZMQUdfTk9GUw0KKwlwYWdlID0gZ3JhYl9jYWNoZV9wYWdlX3dy
aXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBmbGFncyk7DQorI2Vsc2UNCisJ
cGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4KTsNCisj
ZW5kaWYNCisJaWYgKHBhZ2UgPT0gTlVMTCkNCisJCXJldHVybiAtRU5PTUVN
Ow0KKw0KKwkqcGFnZXAgPSBwYWdlOw0KKw0KKwlyZXR1cm4gbm5wZnNfcHJl
cGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsgbGVuKTsNCit9
DQorDQorI2VuZGlmDQorDQogc3RhdGljIGludA0KLW5ucGZzX2NvbW1pdF93
cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVu
c2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQ0KK25ucGZzX2NvbW1pdF93cml0
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQorCQkg
ICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykNCiB7DQogICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KICAgICBs
b2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNI
RV9TSElGVCkgKyB0bzsNCkBAIC0xOTAyLDE0ICsyMTYwLDUxIEBAIG5ucGZz
X2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3QNCiAgICAgcmV0
dXJuIDA7DQogfQ0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS
TkVMX1ZFUlNJT04oMiw2LDE4KQ0KLWNvbnN0DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorDQorc3RhdGlj
IGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry
dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQorCQl1
bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2UgKnBh
Z2UsIHZvaWQgKmZzZGF0YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBwb3Mg
JiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhlIHN0
YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAq
Lw0KKwlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJdm9pZCAqa2FkZHIg
PSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZv
aWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQorCQlt
ZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQp
Ow0KKwkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJa3VubWFw
X2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBf
YXRvbWljKGthZGRyKTsNCiAjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19jb21t
aXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQor
DQorCXVubG9ja19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVhc2Uo
cGFnZSk7DQorDQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKw0KKyNlbmRpZg0K
Kw0KK2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBu
bnBmc19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwN
CiAJLndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJl
cGFyZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQogCS5jb21taXRf
d3JpdGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorI2Vsc2UNCisJLndyaXRl
X2JlZ2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQorCS53cml0ZV9lbmQgPSBu
bnBmc193cml0ZV9lbmQsDQorI2VuZGlmDQogfTsNCiANCiAvKg0KQEAgLTE5
MTcsMjEgKzIyMTIsMzAgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0
aW9ucyBubnBmc19hbw0KICAqLw0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgbm5wZnNfZmlsZV9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIC5haW9f
cmVhZAk9IG5ucGZzX2Fpb19yZWFkLA0KICAgICAuYWlvX3dyaXRlCT0gbm5w
ZnNfYWlvX3dyaXRlLA0KKyNlbHNlDQorICAgIC5yZWFkX2l0ZXIJPSBubnBm
c19yZWFkX2l0ZXIsDQorICAgIC53cml0ZV9pdGVyCT0gbm5wZnNfd3JpdGVf
aXRlciwNCisjZW5kaWYNCiAgICAgLm1tYXAJPSBubnBmc19maWxlX21tYXAs
DQogICAgIC5vcGVuCT0gbm5wZnNfb3BlbiwNCiAgICAgLmZsdXNoCT0gbm5w
ZnNfZmx1c2gsDQogICAgIC5yZWxlYXNlCT0gbm5wZnNfcmVsZWFzZV9maWxl
LA0KICAgICAuZnN5bmMJPSBubnBmc19mc3luYywNCi0gICAgLnNlbmRmaWxl
CT0gbm5wZnNfc2VuZGZpbGUsDQorICAgIC5zcGxpY2VfcmVhZCA9IG5ucGZz
X3NwbGljZV9yZWFkLA0KIH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9u
cyBubnBmc19kZWFkX29wZXJhdGlvbnMgPSB7DQogfTsNCiANCiBzdHJ1Y3Qg
ZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDAp
DQogICAgIC5yZWFkZGlyCT0gbm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAg
ICAuaXRlcmF0ZSAgICA9IG5ucGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAg
IC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KIH07DQogDQpkaWZmIC11cHJOIC1Y
bm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5j
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDA2LTEwLTMx
IDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBm
cy9saW51eC9ubnBmc19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi4wMDAw
MDAwMDAgKzAxMDANCkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0
IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgbm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTog
ICAgICAgICAgICJubnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAg
ICAgIG5ucGZzX2dldF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAg
ICAgICAgbm5wZnNfbW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6
ICAgICAgICBraWxsX2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAg
ICAgICAgIFRISVNfTU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMNCi0tLSBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDA3LTAx
LTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0wMS0xNCAxNjo1MDox
NS4wMDAwMDAwMDAgKzAxMDANCkBAIC00NSw3ICs0NSw3IEBADQogI2luY2x1
ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQo
IiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMuMi4xIDIwMDcvMDEvMDkg
MTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfbWVz
c2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhwICQi
KTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KQEAgLTU1LDkgKzU1LDE1
IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRy
eSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm
c19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9s
b2NrKCZkY2FjaGVfbG9jayk7DQogICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7
DQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisg
ICAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIGRnZXRfZGxv
Y2soZGVudHJ5KTsNCisgICAgc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2Nr
KTsNCisjZW5kaWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7DQogICAgIGRwdXQo
ZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcgKzEyNywxMSBAQCBubnBmc19tZXNz
YWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgIHN0cnVjdCBp
bm9kZSAqZGksICppbm9kZTsNCiAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50
ID0gTlVMTDsNCiAgICAgc3RydWN0IHFzdHIgc3FzdHI7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBz
dHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhs
aXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNE
RUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7
DQogICAgIA0KQEAgLTE3NiwxMiArMTg2LDI2IEBAIG5ucGZzX21lc3NhZ2Vf
aW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgICoNCiAgICAgICov
DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsN
CiAgICAgd2hpbGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFy
ZW50ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlh
cyk7DQotCXNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tl
ZChwYXJlbnQpOw0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSww
KQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAm
ZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m
b3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfYWxpYXMp
IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQs
ICZkaS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN
CisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9j
a2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7
DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQor
ICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBh
cmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAo
cGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgi
bm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAl
cFxuIiwNCkBAIC0yMzMsNyArMjU3LDkgQEAgbm5wZnNfbWVzc2FnZV9pbnN0
YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1dChkZW50cnkpOw0K
IAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsN
CisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9DQogICAgIE5OUEZT
REVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogZG9u
ZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5NCwxMyBAQCBubnBm
c19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBmcyAqDQogICAgIH0N
CiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0KTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAg
IGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0
cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgZGVudHJ5ID0g
aGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVu
dHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50cnkgPSBobGlzdF9l
bnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRf
dS5kX2FsaWFzKTsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhE
RUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0ciBuYW1lOiVzXG4i
LA0KIAkJICAgICAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUpKTsNCkBAIC0zOTYs
MTcgKzQyOCwzNiBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxkYXRhKHN0cnVj
dCBubnBmcyAqDQogc3RhdGljIHZvaWQNCiBjbGVhcl9hbGxfY2hpbGRyZW4g
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBwYXJlbnQpDQogew0KKyAgICBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFs
aWFzOw0KKyNlbmRpZg0KIA0KICBhZ2FpbjoNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xv
Y2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBmaW5k
IHRoZSBkZW50cnkgdG8gbG9jayAqLw0KKyAgICAvKnNwaW5fbG9jaygmZGVu
dHJ5LT5kX2xvY2spOyovDQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlu
b2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlu
b2RlLT5pX2RlbnRyeSkgew0KLQlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5
LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgYWxpYXMs
ICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGhs
aXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwg
ZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5
KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRfYWxpYXMpIHsNCisj
ZW5kaWYNCiAJc3RydWN0IGxpc3RfaGVhZCAqc3ViZGlyczsNCiAJc3RydWN0
IG5ucGZzX2RlbnRyeV9kYXRhICp4ZDsNCiAJDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlkZW50cnkgPSBs
aXN0X2VudHJ5KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisj
ZW5kaWYNCiAJaWYgKGRlbnRyeSA9PSBOVUxMKSB7DQogCSAgICBwcmludGso
S0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IGRlbnRyeSBpbiBhbGlhcyBsaXN0
IGlzIG51bGxcbiIpOw0KIAkgICAgYnJlYWs7DQpAQCAtNDIyLDcgKzQ3Mywx
MSBAQCBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUs
DQogCXN1YmRpcnMgPSBkZW50cnktPmRfc3ViZGlycy5uZXh0Ow0KIAl3aGls
ZSAoc3ViZGlycyAhPSAmZGVudHJ5LT5kX3N1YmRpcnMpIHsNCiAJICAgIHN0
cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAgIHN0
cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBk
ZW50cnksIGRfdS5kX2NoaWxkKTsNCisjZWxzZQ0KKwkgICAgc3RydWN0IGRl
bnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwg
ZF9jaGlsZCk7DQorI2VuZGlmDQogCSAgICBzdWJkaXJzID0gdG1wLT5uZXh0
Ow0KIAkgICAgTk5QRlNERUIoWERFQk1TRywgKCJjbGVhcl9hbGxfY2hpbGRy
ZW4gY2hpbGQ6ICUuKnMgaW5vZGU6ICVwLyVwICINCiAJCQkgICAgICAgImRj
b3VudDogJWQgYWxpYXNlczpcbiIsDQpAQCAtNDQyLDE0ICs0OTcsMjYgQEAg
Y2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIA0K
IAkgICAgLyogVGhyb3cgaW1tZWRpYXRlbHkgKi8NCiAJICAgIGlmIChubnBm
c19kY291bnQoY2hpbGQpID09IDApIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KIAkgICAgICAgIHNwaW5f
dW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisJCS8qIFRPRE86IHVu
bG9jayB0aGUgZGVudHJ5ICovDQorCQkvKnNwaW5fdW5sb2NrKCZkZW50cnkt
PmRfbG9jayk7Ki8NCisjZW5kaWYNCiAJCW5ucGZzX2RfcmVtb3ZlKGNoaWxk
KTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCWFsaWFz
ID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogICAgIH0NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBz
cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIC8qIFRP
RE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorICAgIC8qc3Bpbl91bmxvY2so
JmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMg
dm9pZA0KQEAgLTYwNSwxMiArNjcyLDEwIEBAIGdjX2Jsb2NrKHN0cnVjdCBu
bnBmcyAqbm5wZnNwLA0KICAgICB9DQogDQogICAgIGlmICghbm5wZnNfYmxv
Y2tfaGF2ZV9wKHhuLCBvZmZzZXQpKSB7DQotI2lmIDAgICAvKiBoYXBwZW5z
IHdoZW4gZGFlbW9uIHNlbmRzIHNldmVyYWwgbWVzc2FnZXMgZm9yIHNhbWUg
YmxvY2sgKi8NCiAJcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTL2djX2Jsb2Nr
OiAiDQogCSAgICAgICAiRU5PRU5UICglZCwlZCwlZCwlZCkgMHglbGx4XG4i
LCANCiAJICAgICAgIHhuLT5oYW5kbGUuYSwgeG4tPmhhbmRsZS5iLCB4bi0+
aGFuZGxlLmMsIHhuLT5oYW5kbGUuZCwgDQogCSAgICAgICAodW5zaWduZWQg
bG9uZyBsb25nKW9mZnNldCk7DQotI2VuZGlmDQogCXJldHVybiAtRU5PRU5U
Ow0KICAgICB9DQogDQpAQCAtNzIxLDEyICs3ODYsMjIgQEAgbm5wZnNfbWVz
c2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIA0KICAgICAvKiBz
YW5pdHkgY2hlY2sgYmVmb3JlIHdlIGxvb2sgYXQgaXQgKi8NCiAgICAgaWYg
KHNpemUgPT0gc2l6ZW9mKCptZXNzYWdlKSAmJiBtZXNzYWdlLT52ZXJzaW9u
ID09IE5OUEZTX1ZFUlNJT04pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgbmFtZWlkYXRh
IG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQog
CWludCBlcnJvcjsNCiANCiAJdWludDY0X3QgYmxvY2tzaXplID0gbWVzc2Fn
ZS0+YmxvY2tzaXplOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAo
Ii4iLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoIi4i
LCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3BhdGgo
Ii4iLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikgew0KIAkg
ICAgLyoNCiAJICAgICAqIEJhZCBjYWNoZSByb290LCBqdXN0IHJldHVybi4N
CkBAIC03MzcsMTIgKzgxMiwyMyBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24o
c3RydWN0IG5ucGZzICpubnBmDQogCQkgICAibm5wZnNfbWVzc2FnZV92ZXJz
aW9uIGZhaWxlZCBwYXRoX2xvb2t1cCwgIg0KIAkJICAgImVycm5vOiAlZFxu
IiwgZXJyb3IpOw0KIAl9IGVsc2Ugew0KLQkgICAgbm5wZnNwLT5jYWNoZXJv
b3QgPSBtbnRnZXQobmQubW50KTsNCi0JICAgIG5ucGZzcC0+Y2FjaGVkaXIg
PSBkZ2V0KG5kLmRlbnRyeSk7DQotCSAgICBwYXRoX3JlbGVhc2UoJm5kKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQucGF0
aC5tbnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQucGF0
aC5kZW50cnkpOw0KKwkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNl
DQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChwYXRoLm1udCk7
DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRoLmRlbnRyeSk7
DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogCSAgICANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OCkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQogCSAg
ICBubnBmc3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KKyNlbHNlDQorICAg
ICAgICAgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAg
ICAgICAgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQorI2Vu
ZGlmDQogDQogCSAgICAvKiBYWFggd2Ugc2hvdWxkIHZhbGlkYXRlIHRoZXNl
IHZhbHVlcyAqLw0KIAkgICAgbm5wZnNfYmxvY2tzaXplID0gYmxvY2tzaXpl
Ow0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xp
bnV4L25ucGZzX25vZGUuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf
bm9kZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19u
b2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDANCisr
KyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYtMDEt
MTQgMTY6NTE6MTEuMDAwMDAwMDAwICswMTAwDQpAQCAtMTMyLDcgKzEzMiwx
MiBAQCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVpbnQ2
DQogCXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHglbGx1
XG4iLA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsNCiAj
ZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBYWFgg
cmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2soaW5v
ZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgc2l6
ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBzaXpl
KTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZzX2F0
dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0IHRp
bWVzcGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAgID0g
MDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+aV9n
aWQgICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtVSURU
X0lOSVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQoMCk7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNlbHNl
DQorCXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2RlLT5p
X2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90aW1l
Ow0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcgKzE4
MywxMSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19h
dHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2RlLT5p
X2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElEX05M
SU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+eGFf
bmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54YV9u
bGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURfU0la
RShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54YV9z
aXplKTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNfcGFnKGNv
bnN0IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9kZV91
c2VycyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVj
dCBsaXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rf
bm9kZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0KICAg
ICANCiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHByb3Rl
Y3RlZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBvcywg
Jmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9l
YWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1
Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF91
LmRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRlbnRy
eSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXByTiAt
WG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2Nh
bGxzLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMN
Ci0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxz
LmMJMjAwNy0wMS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAx
LTE0IDE3OjAwOjIwLjAwMDAwMDAwMCArMDEwMA0KQEAgLTQyLDcgKzQyLDkg
QEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5j
bHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4
L2ZpbGUuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM5KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0K
KyNlbmRpZg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8
bGludXgvcHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2lu
Y2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisj
dW5kZWYgU1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xv
d2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxh
dGVyLCBzZSBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYN
CisNCiAjaWYgMA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUg
PGxpbnV4L2lvY3RsMzIuaD4NCkBAIC02NCw3ICs3MSw3IEBADQogI3VuZGVm
IE5FRURfVklDRUlPQ1RMMzINCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgi
JElkOiBubnBmc19zeXNjYWxscy5jLHYgMS4xMjIgMjAwNy8wMS8wMyAxNDoy
NjoyNyB0b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxs
cy5jLHYgMS4xMjUgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsN
CiAjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpu
bnBmc19wcm9jZnNfZGlyOw0KQEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVm
IHN0cnVjdCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lz
Y2FsbDsNCiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0K
IG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1
Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln
bmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNf
cHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWdu
ZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0K
IHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19m
b3BzID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0
bCwNCisjZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9j
ZnNfaW9jdGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNDcsNTMgKzE2
NCw0OCBAQCBzdGF0aWMgaW50IG5ucGZzX3NlY19yZWdpc3RlcmVkID0gMDsN
CiAjZGVmaW5lIFNFQzJQQUcocykgKG5ucGZzX3BhZ190KSh1bnNpZ25lZCBs
b25nKShzKQ0KICNkZWZpbmUgUEFHMlNFQyhwKSAodm9pZCAqKSh1bnNpZ25l
ZCBsb25nKShwKQ0KIA0KLXN0YXRpYyBpbnQNCi1ubnBmc19zZWNfdGFza19h
bGxvYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19w
YWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCi0gICAg
aWYgKHBhZykNCi0JcC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZyk7DQotICAg
IHJldHVybiAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3NlY190
YXNrX2ZyZWUoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAgbm5w
ZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhwLT5zZWN1cml0eSk7DQotICAgIGlm
IChwYWcpDQotCXAtPnNlY3VyaXR5ID0gTlVMTDsNCi19DQotDQogc3RhdGlj
IG5ucGZzX3BhZ190DQogbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+
c2VjdXJpdHkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3BhZ190IHBhZyA9IFNF
QzJQQUcoY3VycmVudF9zZWN1cml0eSgpKTsNCisjZW5kaWYNCiAgICAgaWYg
KHBhZykNCiAJcmV0dXJuIHBhZzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1
cnJlbnQtPnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgp
Ow0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgp
OyByZXR1cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGlj
IGludA0KIG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBzdGF0
aWMgbm5wZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjkp
DQorICAgIHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAgICBp
ZiAocGFnbnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVOT01F
TTsNCiAgICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQogICAg
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMocGFn
bnVtKTsNCisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICopIGN1
cnJlbnQtPmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNFQyhw
YWdudW0pOw0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0dXJu
IDA7DQogfQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9u
cyBubnBmc19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1cml0
eSA9IG5ucGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVlX3Nl
Y3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFza19y
ZXBhcmVudF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2luaXQs
DQotfTsNCi0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQogDQog
I2lmZGVmIEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMTgsMTIgQEAgZmluZF9w
YWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihYREVC
U1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBz
KSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAw
OyBpLS0pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQX0FUKGdpLCBp
KTsNCisjZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkp
Ow0KKwlnaWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2VuZGlmDQogCWlm
ICgobm5wZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5u
cGZzX3BhZ190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsNCiAJICAgIE5O
UEZTREVCKFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6IEV4aXN0aW5n
IHBhZyAldSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpAQCAtMjIyLDE1
ICsyMzksMzEgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0K
IHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9p
ZCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS
U0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGN1
cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1
cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq
Z2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBubnBmc19w
YWdfdCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRf
dCBrdWlkID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0
ID0ga3VpZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAgIGludCBpOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQorI2VuZGlmDQog
DQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZT
X1BBR19OT1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7
DQorI2Vsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsg
cmV0ID0ga2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3Vw
X2luZm8oZ2kpOw0KIA0KQEAgLTI0MiwxMyArMjc1LDE5IEBAIG5ucGZzX2dl
dF9wYWdfZ3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVfcGFnKG5u
cGZzX3BhZ190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91
cF9pbmZvICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KKyNlbHNl
DQorICAgc3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9jdXJyZW50
X2dyb3VwcygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq
bmV3X2dpOw0KLSAgICBpbnQgbmJsb2NrcywgY291bnQ7DQorICAgIHVuc2ln
bmVkIGludCBuYmxvY2tzLCBjb3VudDsNCiAgICAgaW50IGZvdW5kID0gMDsN
CiAgICAgaW50IGksIGs7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KSAgICANCiAgICAgZ2V0X2dy
b3VwX2luZm8ob2xkX2dpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRf
cGFnKG9sZF9naSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VO
RCkNCkBAIC0yNzQsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFn
X3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAg
ICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3
X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdf
Z2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQor
ICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQo
cGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAg
ZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBH
Uk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsg
fQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5l
d19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzE3
LDcgKzM2MywxMyBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJuIG5u
cGZzX2dldF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdTICov
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K
KyAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1
aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9
DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpAQCAtNDIy
LDcgKzQ3NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6
ZSwgb2xkX2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYg
LyogR1JPVVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitz
dHJ1Y3Qgbm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBk
ZXY7DQogICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAt
NTA5LDE0ICs1NjEsMjcgQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBh
cmxhVmljZUlvY3RsIA0KICAqIGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxv
dycNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1
c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAq
dXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVj
dCBkZW50cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpw
YXRoLCBjaGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQog
ew0KLSAgICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAg
ICAgaW50IGVycm9yID0gMDsNCiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1
c2VyX3BhdGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDcsMCkNCisgICAgY2hhciAqa25hbWU7DQorICAgIGtuYW1l
ID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGNvbnN0IGNo
YXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0KKyAg
ICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisgICAga25hbWUgPSBm
bmFtZS0+bmFtZTsNCisjZW5kaWYNCisNCiAgICAgaWYgKElTX0VSUihrbmFt
ZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25hbWUpKTsNCiAgICAg
aWYgKGZvbGxvdykNCkBAIC01MjQsMTEgKzU4OSwyNSBAQCB1c2VyX3BhdGgy
ZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgDQogDQogICAgIE5OUEZT
REVCKFhERUJNU0csICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNc
biIsIGtuYW1lKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1
cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGVycm9yID0ga2Vy
bl9wYXRoKGtuYW1lLCBmbGFncywgJihuZC0+cGF0aCkpOw0KKyNlbHNlDQor
ICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgcGF0aCk7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsNywwKQ0KICAgICBwdXRuYW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAg
ICBrbWVtX2NhY2hlX2ZyZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKWtuYW1l
KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BU
UihlcnJvcik7DQotICAgIHJldHVybiBuZC0+ZGVudHJ5Ow0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAg
IHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQorI2Vsc2UNCisgICAgcmV0dXJu
IHBhdGgtPmRlbnRyeTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlua2FnZSBs
b25nDQpAQCAtNTQwLDEyICs2MTksMjQgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogew0KICAgICBsb25nIGVycm9yID0gMDsNCiAgICAgc3Ry
dWN0IGFybGFWaWNlSW9jdGwgdmljZV9pb2N0bDsgDQotICAgIHN0cnVjdCBu
bnBmc19tZXNzYWdlX3Bpb2N0bCBtc2c7DQorICAgIHN0cnVjdCBubnBmc19t
ZXNzYWdlX3Bpb2N0bCAqbXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZz
X21lc3NhZ2Vfd2FrZXVwICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7
DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAg
ICAgDQorICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VS
TkVMKTsNCisgICAgaWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAt
RU5PTUVNOw0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzkpDQogICAgIGxvY2tfa2VybmVsKCk7DQorI2Vsc2UN
CisgICAgLyogVE9ETzogbG9ja19rZXJuZWwoKSBpcyByZW1vdmVkLCBjb25z
aWRlciBhZGRpbmcgYW4gcHJpdmF0ZSBsb2NrICovDQorI2VuZGlmDQogDQog
ICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2Vk
XG4iKSk7DQogDQpAQCAtNTc1LDcgKzY2Niw3IEBAIHN5c19hZnNfaW50IChp
bnQgb3BlcmF0aW9uLA0KIAkgICAgZ290byB1bmxvY2s7DQogCX0NCiAJaWYg
KHZpY2VfaW9jdGwuaW5fc2l6ZSAhPSAwKSB7DQotCSAgICBpZihjb3B5X2Zy
b21fdXNlcigmbXNnLm1zZywNCisJICAgIGlmKGNvcHlfZnJvbV91c2VyKCZt
c2ctPm1zZywNCiAJCQkgICAgICB2aWNlX2lvY3RsLmluLA0KIAkJCSAgICAg
IHZpY2VfaW9jdGwuaW5fc2l6ZSkgIT0gMCkgew0KIAkJZXJyb3IgPSAtRUZB
VUxUOw0KQEAgLTU4Myw3ICs2NzQsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVM
TCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgm
bmQsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAg
ICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwg
YV9mb2xsb3dTeW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRy
eSkgew0KIAkJZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpA
QCAtNjI4LDE5ICs3MjMsMjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRp
b24sDQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCiAJ
ICAgIH0NCi0JICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkgICAg
bXNnLT5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5oZWFk
ZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29kZSA9
IGFfb3Bjb2RlOw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df
UElPQ1RMOw0KKwltc2ctPm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0JbXNn
Lmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0c2l6
ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWco
KTsNCisJbXNnLT5pbnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCisJ
bXNnLT5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQor
CW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg
ICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
Kwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0JZXJy
b3IgPSBubnBmc19tZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVhZGVy
LCBzaXplb2YobXNnKSk7IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVjdCBu
bnBmc19tZXNzYWdlX3dha2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5ucGZz
X21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXplb2Yo
Km1zZykpOyAvKiBYWFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV93YWtldXAgKikgbXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJICAg
IGVycm9yID0gbXNnMi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3NzQsMjEg
QEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxv
Y2s6DQogICAgIGlmIChkZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1
dCgmcGF0aCk7DQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMs
ICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9y
KSk7DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJu
ZWwgdW5sb2NrXG4iKSk7DQorICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg
dW5sb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IHNlZSB0
aGUgY29tbWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlm
DQogDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzI5LDkgKzgzNywx
NSBAQCBzeXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9s
bG93U3ltbGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZp
bGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs
b25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2Zz
X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50
IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBh
ZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC03ODAsMjEg
Kzg5NCwzMSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQp
DQogew0KICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0KICAg
ICANCi0gICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoTk5QRlNf
UFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZzX3Byb2Nmc19k
aXIgPSBwcm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsN
CiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJcmV0dXJu
IC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nmc19kaXIt
Pm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQog
ICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RF
LCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRy
eSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwg
Jm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5
ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0
X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJvY19lbnRyeShO
TlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVtb3ZlX3Byb2Nf
ZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIAlyZXR1cm4g
LUVOT01FTTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3du
ZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+
cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0K
ICNpZmRlZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0
bDMyX2NvbnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJv
Y2ZzX2lvY3RsMzIpKSB7DQpAQCAtODE1LDcgKzkzOSw3IEBAIHN0YXRpYyB2
b2lkIG5ucGZzX2V4aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5kaWYg
LyogU1lTQ0FMTENPTVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRyeShO
TlBGU19QUk9DX05PREUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KLSAgICByZW1v
dmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsN
CisgICAgcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIs
IE5VTEwpOw0KIH0NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODM5LDE0
ICs5NjMsNiBAQCBpbnN0YWxsX3NldGdyb3Vwcyh2b2lkKQ0KIHZvaWQNCiBp
bnN0YWxsX2Fmc19zeXNjYWxsKHZvaWQpDQogew0KLSNpZmRlZiBDT05GSUdf
U0VDVVJJVFkNCi0gICAgaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZubnBmc19z
ZWNfb3BzKSkNCi0JTk5QRlNERUIoWERFQlNZUywNCi0JCSAoImluc3RhbGxf
YWZzX3N5c2NhbGw6IG5ucGZzX2luaXRfc2VjIGZhaWxlZFxuIikpOw0KLSAg
ICBlbHNlDQotCW5ucGZzX3NlY19yZWdpc3RlcmVkID0gMTsNCi0jZW5kaWYN
Ci0NCiAgICAgbm5wZnNfaW5pdF9wcm9jZnMoKTsNCiANCiAjaWZkZWYgU1lT
Q0FMTEhBQ0sNCkBAIC04ODcsMTIgKzEwMDMsNiBAQCByZXN0b3JlX2Fmc19z
eXNjYWxsICh2b2lkKQ0KICNlbmRpZg0KICNlbmRpZiAvKiBTWVNDQUxMSEFD
SyAqLw0KIA0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYgKG5u
cGZzX3NlY19yZWdpc3RlcmVkKQ0KLQlpZiAodW5yZWdpc3Rlcl9zZWN1cml0
eSgmbm5wZnNfc2VjX29wcykpDQotCSAgICBwcmludGsoS0VSTl9FTUVSRyAi
bm5wZnNfZXhpdF9zZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0KLSNl
bmRpZiAvKiAhQ09ORklHX1NFQ1VSSVRZICovDQotDQogI2lmZGVmIEdST1VQ
UEFHUw0KICNpZmRlZiBTWVNDQUxMSEFDSw0KICAgICBpZiAob2xkX3NldGdy
b3Vwcykgew0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJs
YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl
LmMJMjAwNi0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j
CTIwMTYtMDEtMTMgMjE6NTE6NDkuMDAwMDAwMDAwICswMTAwDQpAQCAtNDcs
MTEgKzQ3LDIwIEBADQogI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0KIA0K
ICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxv
c3NhZ2UuYyx2IDEuMTcgMjAwNi8xMi8xMSAxNjozMTo0NSB0b2wgRXhwICQi
KTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAx
LjE5IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQorI2VuZGlm
DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigzLDcsMCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5k
JyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQor
I3VuZGVmIFNZU0NBTExIQUNLDQogI2VuZGlmDQogDQogI2luY2x1ZGUgPGxp
bnV4L2thbGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0
YXRpYyB2b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNl
bmRpZg0KKyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFr
KSkgc3lzX2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVu
Y3Rpb24gKm5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Myw2ICs3Miwx
MSBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogCQkg
ICAgdW5zaWduZWQgbG9uZyAqb2Zmc2V0LA0KIAkJICAgIGNoYXIgKiptb2Ru
YW1lLCBjaGFyICpuYW1lYnVmKTsNCiANCisjaWZkZWYgX194ODZfNjRfXw0K
K2V4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmlidXRlX18o
KHdlYWspKTsNCisjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCiBz
dGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAjaWZk
ZWYgX194ODZfNjRfXw0KQEAgLTcxLDYgKzg1LDcgQEAgZ2V0X3N0YXJ0X2Fk
ZHIodm9pZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11dGV4X2xvY2s7
DQogI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbmxpbmUgaW50
IA0KIGthbGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBhZGRyLCBjb25z
dCBjaGFyICpuYW1lKQ0KQEAgLTEzOSw2ICsxNTQsOCBAQCB2ZXJpZnkodm9p
ZCAqKnApIHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNpZmRlZiBTWVND
QUxMSEFDSw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tzX2dvb2Qodm9p
ZCAqKnApDQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxvd2VyX2JvdW5k
IHx8ICpwID49ICh2b2lkKilwKQ0KQEAgLTE4OCwzICsyMDUsNSBAQCBubnBm
c19maXh1cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAgICAgcmV0dXJu
IDA7DQogfQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAxNzo0
MzozNS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGlu
dXgvbm5wZnNfdmZzb3BzLmMJMjAxNi0wMS0xNCAxNzoxMzoxOC4wMDAwMDAw
MDAgKzAxMDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8bGlu
dXgvbW0uaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBm
c192ZnNvcHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4
cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAy
MDEwLzA4LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0K
IHN0cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lk
IG5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3Rh
dGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IpOw0KLXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5v
ZGUgKmlub2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3Vw
ZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpOw0KKyNlbmRpZg0KIA0KLSNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4
KQ0KIHN0YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2Vsc2UNCi1zdGF0aWMg
aW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1
Y3Qga3N0YXRmcyAqYnVmKTsNCi0jZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0
IHN1cGVyX29wZXJhdGlvbnMgbm5wZnNfc29wcyA9IHsgDQotICAgIHJlYWRf
aW5vZGUJCTogbm5wZnNfcmVhZF9pbm9kZSwNCi0gICAgcHV0X2lub2RlCQk6
IG5ucGZzX3B1dF9pbm9kZSwNCiAgICAgYWxsb2NfaW5vZGUJCTogbm5wZnNf
bm9kZV9hbGxvYywNCiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVf
ZnJlZSwNCiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9k
ZSwNCiAgICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
ICAgIHdyaXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRp
Zg0KICAgICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAt
OTQsNyArOTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUg
KmkpDQogCSAqIHJvb3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFu
ZCBub25lIGlzIG5lZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3Jl
ZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lO
SVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAll
cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs
IHNpemVvZihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vfcm9v
dF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01P
REUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRf
TkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5v
ZGUuYXR0ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRy
LCAwKTsNCiAgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxz
ZQ0KKyAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkp
Ow0KKyAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkp
Ow0KKyNlbmRpZg0KICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7
DQogICAgIFhBX1NFVF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFf
U0VUX0NUSU1FKCZub2RlLmF0dHIsIDApOw0KQEAgLTE1OSw3ICsxNjQsMTEg
QEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBu
bnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFu
ZGxpbmcgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw0LDApDQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2RlKTsN
CisjZWxzZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5k
aWYNCiAgICAgbm5wZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9
IGRwOw0KICAgICByZXR1cm4gMDsNCkBAIC0xODMsMTMgKzE5MiwyNyBAQCBu
bnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAg
IE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdp
biBzZXR0aW5nIHZhcmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAh
PSBOVUxMKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxz
ZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAll
cnJvciA9IHBhdGhfbG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwll
cnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UN
CisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRp
Zg0KIAlpZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7
DQogCWVsc2UNCi0JICAgIGRkZXYgPSBuZC5kZW50cnk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAg
IGRkZXYgPSBuZC5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9
IHBhdGguZGVudHJ5Ow0KKyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2
KSkgew0KIAkgICAgbWlub3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2Rl
LT5pX3JkZXYpOw0KQEAgLTIzMyw3ICsyNTYsNyBAQCBubnBmc19maWxsX3N1
cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0K
IH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwxOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0MiwxOSArMjY1LDIyIEBA
IG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiAg
ICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwg
bm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQogI2Vsc2UNCi1zdHJ1Y3Qg
c3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9zYiAoc3RydWN0IGZpbGVfc3lz
dGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAgIGludCBmbGFncywgY29uc3Qg
Y2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0KK3N0cnVjdCBkZW50cnkq
DQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5
cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwN
CisJICAgICB2b2lkICpkYXRhKSANCiB7DQotICAgIHJldHVybiBnZXRfc2Jf
bm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIp
Ow0KKyAgICByZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRh
dGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAjZW5kaWYNCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
c3RhdGljIHZvaWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiBzYikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisj
ZW5kaWYNCiANCiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3
Myw3MyArMjk5LDYgQEAgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IpDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19w
dXRfc3VwZXIgZXhpdGluZ1xuIikpOw0KIH0NCiANCi1zdGF0aWMgdm9pZA0K
LW5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQot
ICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgc3Rh
cnRpbmcgaW5vZGU6ICVwXG4iLGlub2RlKSk7DQotICAgIE5OUEZTREVCKFhE
RUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgaW5vZGUtPmlfaW5vOiAlbGRc
biIsaW5vZGUtPmlfaW5vKSk7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCi0gICAgaW5vZGUtPmlfYmxrc2l6
ZSA9IDEwMjQ7DQotI2VuZGlmDQotICAgIGlub2RlLT5pX21vZGUgPSAwOw0K
LSAgICBpbm9kZS0+aV9vcCA9IE5VTEw7DQotICAgIE5OUEZTREVCKFhERUJW
Rk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgZXhpdGluZ1xuIikpOw0KLX0NCi0g
DQotLyoNCi0gKiBDYWxsZWQgd2hlbiBgaW5vZGUnIGlzIGRlLXJlZmVyZW5j
ZWQsIGllIHdoZW4gaXB1dCBpcyBjYWxsZWQuDQotICovDQotDQotc3RhdGlj
IHZvaWQNCi1ubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkN
Ci17DQotICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hO
T0RFKGlub2RlKTsNCi0gICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBG
U19GUk9NX1ZOT0RFKGlub2RlKTsNCi0gICAgaW50IGJhZDsNCi0NCi0gICAg
Tk5QRlNERUIoWERFQlZGT1BTLCgibm5wZnNfcHV0X2lub2RlOiBpbm9kZTog
JXAgY291bnQ6ICVkIGFsaWFzZXM6IiwNCi0JCQlpbm9kZSwgbm5wZnNfaWNv
dW50KGlub2RlKSkpOw0KLSAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2Rl
KTsNCi0gICAgDQotICAgIGRvd24oJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsN
Ci0NCi0gICAgaWYgKChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVk9QRU4p
ID09IDApIHsNCi0JaWYgKCFpc19iYWRfaW5vZGUoaW5vZGUpKSB7DQotCSAg
ICBpZiAoaW5vZGUgIT0gbm5wZnNwLT5yb290KSB7DQotCQltYWtlX2JhZF9p
bm9kZShpbm9kZSk7DQotCQlubnBmc19pcmVsZShpbm9kZSk7IC8qIHNlZSBu
bnBmc19ub2RlX2FkZCgpICovDQotCSAgICB9DQotCSAgICB4bi0+ZmxhZ3Mg
fD0gTk5QRlNfU1RBTEU7DQotCX0NCi0JYmFkID0gMTsgLyogb3Igcm9vdCwg
cmVhbGx5ICovDQotICAgIH0gZWxzZSB7DQotCWJhZCA9IGlzX2JhZF9pbm9k
ZShpbm9kZSk7DQotICAgIH0NCi0NCi0gICAgaWYgKHhuLT5mbGFncyAmIE5O
UEZTX1NUQUxFICYmICFubnBmc19ub2RlX3VzZXJzKGlub2RlKSkgew0KLQl4
bi0+ZmxhZ3MgfD0gTk5QRlNfTk9ERV9JUFVUOyAvKiBYWFggbG9ja2luZyAq
Lw0KLSAgCW5ucGZzX2ZvcmNlX2ludmFsaWRfbm9kZSh4bik7DQotCXhuLT5m
bGFncyAmPSB+Tk5QRlNfTk9ERV9JUFVUOw0KLSAgICB9DQotICAgIA0KLSAg
ICBpZiAoYmFkKSB7DQotCWlmIChubnBmc19pY291bnQoaW5vZGUpID09IDEp
DQotCSAgICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0gICAgfSBlbHNlIGlm
IChubnBmc19pY291bnQoaW5vZGUpID09IDIpIHsNCi0JLyogDQotCSAqIFRo
ZSBsYXN0IGV4dGVybmFsIHJlZmVyZW5jZSBpcyBiZWluZyBkcm9wcGVkLCBv
bmx5IHRoZSBvbmUNCi0JICogZnJvbSBubnBmc19ub2RlX2FkZCgpIGlzIGxl
ZnQuIFRpbWUgdG8gbGV0IGRhZW1vbiByZWxlYXNlDQotCSAqIHRoaXMgbm9k
ZSBwcm9wZXJseS4NCi0JICovDQotCWlmICgoeG4tPmZsYWdzICYgTk5QRlNf
TElNQk8pID09IDApIHsNCi0JICAgIG5ucGZzX25vZGVfY2xlYXIoeG4pOw0K
LQkgICAgbm5wZnNfcXVldWVfaW5hY3RpdmUoeG4pOw0KLQl9DQotICAgIH0N
Ci0NCi0gICAgdXAoJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi19DQotDQog
c3RhdGljIGludA0KIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Js
b2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQpAQCAtMzUyLDI1
ICszMTEsMjEgQEAgbm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiLA0KICAgICB0bXAuZl9iYXZhaWwgID0gMTAyNCoxMDI0KjItNTA7
DQogICAgIHRtcC5mX2ZpbGVzICAgPSAxMDI0KjEwMjQ7DQogICAgIHRtcC5m
X2ZmcmVlICAgPSAxMDI0KjEwMjQtMTAwOw0KKyAgICB0bXAuZl9mc2lkLnZh
bFswXSA9IDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzFdID0gMDsNCiAgICAg
dG1wLmZfbmFtZWxlbiA9IE5BTUVfTUFYOw0KKyAgICB0bXAuZl9mcnNpemUg
ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMF0gPSAwOw0KKyAgICB0bXAuZl9z
cGFyZVsxXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzJdID0gMDsNCisgICAg
dG1wLmZfc3BhcmVbM10gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVs0XSA9IDA7
DQogICAgICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0KIH0NCiANCi0j
aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwx
OCkNCi0NCiBzdGF0aWMgaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQogICAgIHJl
dHVybiBubnBmc19zdGF0ZnNfaW50KGRlbnRyeS0+ZF9zYiwgYnVmKTsNCiB9
DQotDQotI2Vsc2UNCi0NCi1zdGF0aWMgaW50DQotbm5wZnNfc3RhdGZzKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQot
ew0KLSAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChzYiwgYnVmKTsNCi19
DQotDQotI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvYXJsYWQvZmNhY2hlLmMgYXJsYS0wLjkwL2FybGFkL2ZjYWNoZS5jDQot
LS0gYXJsYS0wLjkwLW9sZC9hcmxhZC9mY2FjaGUuYwkyMDA2LTEyLTExIDE3
OjIzOjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9hcmxhZC9m
Y2FjaGUuYwkyMDE2LTAxLTIyIDE3OjAwOjQzLjAwMDAwMDAwMCArMDEwMA0K
QEAgLTcxMyw3ICs3MTMsNyBAQCBmY2FjaGVfaGF2ZV93YW50ZWQoRkNhY2hl
RW50cnkgKmVudHJ5LCB1DQogaW50DQogZmNhY2hlX2Rpcl9uYW1lIChGQ2Fj
aGVFbnRyeSAqZW50cnksIGNoYXIgKnMsIHNpemVfdCBsZW4pDQogew0KLSAg
ICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgIiUwMlgiLCBlbnRyeS0+aW5k
ZXggLyAweDEwMCk7DQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCBO
TlBGU19DQUNIRV9GSUxFX0RJUjEsIGVudHJ5LT5pbmRleCAvIDB4MTAwKTsN
CiB9DQogDQogLyoNCkBAIC03MjMsNyArNzIzLDcgQEAgZmNhY2hlX2Rpcl9u
YW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYQ0KIHN0YXRpYyBpbnQNCiBm
Y2FjaGVfZmlsZV9uYW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYXIgKnMs
IHNpemVfdCBsZW4pDQogew0KLSAgICByZXR1cm4gc25wcmludGYgKHMsIGxl
biwgIiUwMlgvJTAyWCIsDQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVu
LCBOTlBGU19DQUNIRV9GSUxFX0RJUl9QQVRILA0KIAkJICAgICBlbnRyeS0+
aW5kZXggLyAweDEwMCwgZW50cnktPmluZGV4ICUgMHgxMDApOw0KIH0NCiAN
CkBAIC04MTUsNyArODE1LDcgQEAgZmNhY2hlX2ZoZ2V0IChjaGFyICpmaWxl
bmFtZSwgZmNhY2hlX2NhYw0KIAlpbnQgcmV0LCBhLCBiOw0KIAljaGFyIGJ1
ZlsxMDI0XTsNCiANCi0JcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCAiJTAyWC8l
MDJYIiwgJmEsICZiKTsNCisJcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCBOTlBG
U19DQUNIRV9GSUxFX0RJUl9QQVRILCAmYSwgJmIpOw0KIAlpZiAocmV0ICE9
IDIpDQogCSAgICByZXR1cm4gRUlOVkFMOw0KIA0KQEAgLTgyNCw3ICs4MjQs
NyBAQCBmY2FjaGVfZmhnZXQgKGNoYXIgKmZpbGVuYW1lLCBmY2FjaGVfY2Fj
DQogCQ0KIAlyZXQgPSBzbnByaW50ZigoY2hhciAqKWhhbmRsZS0+bm5wZnNf
aGFuZGxlLCANCiAJCSAgICAgICBzaXplb2YoaGFuZGxlLT5ubnBmc19oYW5k
bGUpLA0KLQkJICAgICAgICIlc1xcJTAyWFxcJTAyWCIsIGJ1ZiwgYSwgYik7
DQorCQkgICAgICAgIiVzXFwiIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEgs
IGJ1ZiwgYSwgYik7DQogDQogCWlmIChyZXQgPiAwICYmIHJldCA8IHNpemVv
ZihoYW5kbGUtPm5ucGZzX2hhbmRsZSkpDQogCSAgICBoYW5kbGUtPnZhbGlk
ID0gMTsNCg==
---276651502-1608297379-1453490698=:21172
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-1608297379-1453490698=:21172--