[5063] in arla-drinkers
Re: PATCH v3: Arla 0.90 on Linux 2.6.34 to 4.4
daemon@ATHENA.MIT.EDU (Bo Branten)
Fri Jan 22 08:22:38 2016
From arla-drinkers-bounces@stacken.kth.se Fri Jan 22 13:22:38 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 20465 invoked from network); 22 Jan 2016 13:22:37 -0000
Received: from mx7.kth.se (130.237.48.48)
by charon.mit.edu with SMTP; 22 Jan 2016 13:22:37 -0000
Received: from mx7.kth.se (localhost [127.0.0.1])
by mx7.kth.se (Postfix) with ESMTP id 2F60B14018E;
Fri, 22 Jan 2016 14:22:36 +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 5gTyGmjMTpH8; Fri, 22 Jan 2016 14:22:18 +0100 (CET)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
by mx7.kth.se (Postfix) with ESMTP;
Fri, 22 Jan 2016 14:22:18 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id F21FC14CA99;
Fri, 22 Jan 2016 14:22:17 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id 8F36814CAC2; Fri, 22 Jan 2016 14:22:16 +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 8AF2614CA99
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 14:22:16 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
by mx5.kth.se (Postfix) with ESMTP id 86221240189
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 14:22:16 +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]:47098
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 1RQkuJijRVBe for <arla-drinkers@stacken.kth.se>;
Fri, 22 Jan 2016 14:22:14 +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 14:22:14 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id B536EE42
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 14:22:13 +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 0937CE40
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 14:22:07 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id EA49644B8C; Fri, 22 Jan 2016 14:22:06 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id E479B44B8B
for <arla-drinkers@stacken.kth.se>; Fri, 22 Jan 2016 14:22:06 +0100 (CET)
Date: Fri, 22 Jan 2016 14:22:06 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v3: 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.1601221418210.9412@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-1863843585-1453468926=:9412"
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-1863843585-1453468926=:9412
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH v3: Arla 0.90 on Linux 2.6.34 to 4.4
This is a small correction of my earlier patch: A change in a common
include file broke compilation of arlad, this is now corrected.
Bo Branten
---276651502-1863843585-1453468926=:9412
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v3-arla-0.90-for-linux-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601221422060.9412@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-v3-arla-0.90-for-linux-4.4
ZGlmZiAtdXByTiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1ZGUvbm5wZnMv
bm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9u
bnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzozMC4wMDAwMDAw
MDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBmcy9u
bnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy40NDIxNDExODIgKzAx
MDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBmc19hdHRyIHsN
CiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50MzJfdAkJeGFf
dHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QJ
CXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZWxzZQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90CQl4YV9naWQ7
DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisgICAgdWludDMy
X3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgdWludDMy
X3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRpbWU7DQpkaWZm
IC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm
c19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm
c19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9u
bnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEwLTI0IDE4OjMzOjMxLjAwMDAw
MDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQgMTg6MDk6MTcuMDAwMDAwMDAw
ICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAvKg0KLSAqIENvcHlyaWdodCAo
YykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVuaXZlcnNpdGV0DQorICogQ29w
eXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2NraG9sbXMgVW5pdmVyc2l0ZXQN
CiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHksIFN0b2NraG9sbSBTd2VkZW4p
DQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAgKg0KQEAgLTMxLDExICsz
MSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KICAq
Lw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tzLmgsdiAxLjIgMjAwNi8xMC8y
NCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX2Jsb2Nr
cy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6MTcgdG9sIEV4cCAkICovDQog
DQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAgIDAgIC8qIGR1bW15IGNhY2hl
IGluZGV4ICovDQogI2RlZmluZSBOTlBGU19OT19PRkZTRVQgICgodWludDY0
X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5vIGJsb2NrICovDQogDQotI2Rl
ZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEggICAgIiUwMlgvJTAyWC8lMDJs
bFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9ESVJfUEFUSCAgICAgIiUwMlgv
JTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNIRV9QQVRIX1NJWkUgICAgKCA2
ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUgTk5QRlNfQ0FDSEVfRklMRV9E
SVIxICAgICAgICAiJTAyeCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVf
RElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklMRV9ESVIxICIvIiBOTlBGU19D
QUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfQkxP
Q0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJ
TEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggIi8iIE5OUEZT
X0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNkZWZpbmUgTk5QRlNfQ0FDSEVf
RElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklMRV9ESVJfUEFUSCAiQCINCisj
ZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0laRSAgICggNiArMSArMisxICsx
NiArMSApDQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19tZXNzYWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0
IDE4OjMzOjMyLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBm
cy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEy
OjUzOjI5LjQ3NzE0OTc0NSArMDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAg
KiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3Nh
Z2UuaCx2IDEuNjEgMjAwNi8xMC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8N
CisvKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAy
MDoyMDo1NSB0b2wgRXhwICQgKi8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAj
ZGVmaW5lIF94bXNnX2gNCkBAIC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVp
bnQxNl90IG5ucGZzX3JpZ2h0czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYg
cGFnID09IDAsIHVzZSB1aWQgDQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5w
ZnNfY3JlZCB7DQorI2lmbmRlZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90
IHVpZDsNCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNl
DQorICAgIHVpbnQzMl90IHVpZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAg
bm5wZnNfcGFnX3QgcGFnOw0KIH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYs
NyArMTE0LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxl
IHsNCiANCiAvKiBubnBmc19ub2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2
IGJpdCBmbGFncyBhcmUgcmVzZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFn
cw0KLSAqIFRoZSB1cHBlciAxNiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZv
ciBvcGVydGluZyBzeXN0ZW0gZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2
IGJpdCBmbGFncyBhcmUgcmVzZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0g
ZGVwZW5kZW50DQogICogZmxhZ3MuDQogICovDQogDQpkaWZmIC11cHJOIGFy
bGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkw
LW9sZC9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEy
OjQ3OjE3LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9s
aW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAw
MDAwMCArMDIwMA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMu
aCx2IDEuMiAyMDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8q
ICRTb3VyY2U6IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9z
aXRvcnkvYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8N
CisvKiAkU291cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0
b3J5L2FybGEvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQog
DQogI2RlZmluZSBOTk5QRlMgMg0KZGlmZiAtdXByTiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0
OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjM4NzY5MzMz
OSArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog
ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv
cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj
YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh
Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K
KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl
bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN
CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO
IGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5o
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgNCi0t
LSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wu
aAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w
MS0xMyAyMzowMToxMC4xNzg3MDgwMzcgKzAxMDANCkBAIC0zNCw3ICszNCw3
IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyogJElkOiBubnBm
c19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkgdG9sIEV4cCAk
ICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIwMTAvMDgvMDgg
MjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhBVkVfQ09ORklH
X0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyArNTEsOSBAQA0K
ICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3N0
cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2lu
Y2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUg
PGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSArMTQwLDE2IEBA
IHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5ucGZzX2ZldGNo
X3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIGludA0K
IG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlw
ZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0K
IAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAqbW50KTsNCiAj
ZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNfZ2V0X3NiIChz
dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0JICAgICAgaW50
IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAqZGF0YSk7DQor
c3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0
ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNo
YXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0KICNlbmRpZg0K
IA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbm5wZnNfZGVu
dHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUgQEAgbm5wZnNf
aXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogICogSGVscCBm
dW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQgYSBwb3J0YWJs
ZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5saW5lIGludA0K
IG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0K
Ky8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZzX2Rjb3VudCAo
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQogew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQog
ICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2NvdW50KTsNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEx
LDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3QgYXRvbWljX3Qq
KSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJldHVybiBkX2Nv
dW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRlcm4gDQotI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgp
DQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVy
YXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0X2Zvcl9lYWNo
DQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9zeXNjYWxsX2xv
c3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBubnBmc19kZXZf
dCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFz
aGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisjZGVmaW5lIG5u
cGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQoZCkN
CisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAgICB3aGlsZSgw
KXt9DQogDQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
cy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4
L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEyLTExIDE3OjI5OjM5LjAwMDAw
MDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9u
bnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0MzowNy4wMDAwMDAwMDAgKzAy
MDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVybiB1aW50MzJfdCBubnBmc19i
bG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0KICAqLw0KIA0KLSNkZWZpbmUg
Tk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAgICAvKiBub2RlIGlzIGluIGlw
dXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisjZGVmaW5lIE5OUEZTX05PREVf
SVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBpcyBpbiBpcHV0KCksIGF2b2lk
IGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8gKi8NCiANCiAjZGVmaW5lIFhO
X0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhOX0NMRUFOVVBfSVRFUlMgMTI5
DQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf
YmxvY2tzLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5j
DQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3Mu
YwkyMDA3LTAxLTA4IDE0OjI0OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTE2
IDE0OjE2OjQ5Ljk5NDQzNzgxMyArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEAN
CiAgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0v
KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6
MjQgdG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEu
NiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNs
dWRlIDxubnBmcy9ubnBmc19sb2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25u
cGZzX2ZzLmg+DQpAQCAtNDMsNiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGlu
dXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkN
CitleHRlcm4gaW50IHZmc19wYXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICos
IHN0cnVjdCB2ZnNtb3VudCAqLA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5z
aWduZWQgaW50LCBzdHJ1Y3QgcGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0K
ICAqIHJldHVybiB0cnVlIGlmIGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpA
QCAtMjkwLDcgKzI5NSwxMyBAQCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0
IG5ucGZzX25vZGUgKm5vDQogICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZf
bWFwcGluZy0+aG9zdDsNCiANCiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUt
PmlfbXV0ZXgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDgsMCkNCiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9k
ZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9k
ZV9uZXdzaXplX29rKGJhY2tub2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAg
ICBpZighcmV0KQ0KKyAgICAgICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9k
ZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5s
b2NrKCZiYWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxwX2Ns
b3NlKGJhY2tmaWxlLCBOVUxMKTsNCkBAIC0zMTgsMTAgKzMyOSwyNiBAQCBu
bnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAg
IHN0cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2Rl
KTsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RF
KG5vZGUpOw0KICAgICBpbnQgZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAg
ICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90
IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAg
a3VpZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRp
Zg0KICAgICBpbnQgcmV0Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3Jl
ZCAqb2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVk
Ow0KKyNlbmRpZg0KKw0KKyAgICAodm9pZClzYXZldWlkOw0KKyAgICAodm9p
ZClzYXZlZ2lkOw0KIA0KICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJV
R19PTihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0z
NDYsMjEgKzM3MywzOCBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm
c19ub2RlICpub2RlDQogICAgIEJVR19PTighbm5wZnNwLT5jYWNoZWRpciB8
fCAhbm5wZnNwLT5jYWNoZXJvb3QpOw0KICAgICANCiAgICAgLyogdXNlIHRo
ZSBuZnNkIHRyaWNrIHRvIGdpdmUgdXMgYWNjZXNzICovDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg
IHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1
cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+
dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0K
LSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAg
ICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBu
ZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAgIG5kLmRlcHRoID0gMDsN
Ci0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0gICAgaWYgKGZsYWdzICYg
T19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBfUEFSRU5UOw0KLSAgICAN
Ci0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFtZSwgJm5kKTsNCisjZWxz
ZQ0KKyAgICBzYXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0KKyAgICBzYXZl
Z2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyAgICBvdmVycmlkZV9jcmVkID0g
cHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBO
VUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRl
X2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2Ny
ZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3Zl
cnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0K
KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg
bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm
bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu
ZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw
LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h
bWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDog
MCwNCisJCQkgICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNf
cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv
b3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQg
PyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYN
CiAgICAgaWYgKHJldCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5k
YXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCkBAIC0zODcsMTYgKzQz
MSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpu
b2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8q
IFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAq
Lw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0
ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxs
IHRvIGtlcm5fcGF0aF9jcmVhdGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVu
dCBvcHRpb25hbD8gKi8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vy
bl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkN
CisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3Bh
dGhfY3JlYXRlKCksIGlzIHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/
ICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVh
dGUoQVRfRkRDV0QsIE5VTEwsICZwYXRoLCAwKTsJDQorI2VuZGlmDQogCWlm
IChJU19FUlIoZGVudHJ5KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihkZW50
cnkpOw0KIAl9IGVsc2Ugew0KLQkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5k
ZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQp
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCisJICAgIHJldCA9IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnkt
PmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCisJICAgIC8qIFRPRE86IHNob3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0
byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwgYmUgMCBvciAxPyAqLw0K
KwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9k
ZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDApOw0KKyNlbHNlDQorCSAg
ICAvKiBUT0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2Ny
ZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJl
dCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwg
U19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCiAJICAgIGRwdXQoZGVu
dHJ5KTsNCiAJfQ0KIA0KLQltdXRleF91bmxvY2soJm5kLmRlbnRyeS0+ZF9p
bm9kZS0+aV9tdXRleCk7DQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor
CW11dGV4X3VubG9jaygmbmQucGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0
ZXgpOw0KKwlwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhf
dW5sb2NrKCZwYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBh
dGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkg
ICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVk
OiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MTAsMTIgKzQ3NSwy
NSBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl
DQogCSAgICByZXQgPSBubnBmc19ibG9ja19leHRlbmQobm9kZSwgb2Zmc2V0
KTsNCiAJfQ0KICAgICB9IGVsc2Ugew0KLQlzdHJ1Y3QgZmlsZSAqZiA9IGRl
bnRyeV9vcGVuKG5kLmRlbnRyeSwgbmQubW50LCBmbGFncyk7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisJ
c3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwg
bmQucGF0aC5tbnQsIGZsYWdzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisgICAgICAgIHN0cnVjdCBm
aWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgu
bW50LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJc3RydWN0
IHBhdGggdG1wX3BhdGggPSB7IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRy
eSA9IG5kLnBhdGguZGVudHJ5IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAq
ZiA9IGRlbnRyeV9vcGVuKCZ0bXBfcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3Jl
ZCgpKTsNCisjZWxzZQ0KKyAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50
cnlfb3BlbigmcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZW5k
aWYNCiAJaWYgKElTX0VSUihmKSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihm
KTsNCiAJICAgIHByaW50aygibm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBm
YWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNf
ZGVidWdfb29wcygpOw0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgcGF0
aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkgICAgKmZp
bGUgPSBmOw0KIAl9DQpAQCAtNDI0LDggKzUwMiwxMyBAQCBubnBmc19ibG9j
a19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIC8qIHBhdGhf
cmVsZWFzZSgpIGlzIHVzdWFsbHkgaGFuZGxlZCBvbiBjbG9zZSAqLw0KIA0K
ICBvdXQ6DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS
U0lPTigyLDYsMjgpDQogICAgIGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsN
CiAgICAgY3VycmVudC0+ZnNnaWQgPSBzYXZlZ2lkOw0KKyNlbHNlDQorICAg
IHJldmVydF9jcmVkcyhvbGRfY3JlZCk7DQorICAgIHB1dF9jcmVkKG92ZXJy
aWRlX2NyZWQpOw0KKyNlbmRpZg0KIA0KICAgICByZXR1cm4gcmV0Ow0KIH0N
CmRpZmYgLXVwck4gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19j
b21tb24uYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMN
Ci0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5j
CTIwMDYtMTItMTEgMTc6MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJs
YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMTYtMDEtMTQg
MTY6MTU6MDAuMzQ3NDQ3NjU3ICswMTAwDQpAQCAtMTEyLDEwICsxMTIsMTUg
QEAgbm5wZnNfcHJpbnRfYWxpYXNlcyhjb25zdCBzdHJ1Y3QgaW5vZGUgKg0K
IHZvaWQNCiBubnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0
IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFk
ICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFz
Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQogICAg
IGludCBiYWlsb3V0ID0gMTAwOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9k
ZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9k
ZS0+aV9kZW50cnkpIHsNCiAJaWYgKC0tYmFpbG91dCA8IDApIHsNCkBAIC0x
MzEsNiArMTM2LDI2IEBAIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25z
dCBzdHJ1Y3QgaW4NCiAJfQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KICAg
ICB9DQorI2Vsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl
bnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2Rl
LT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zv
cl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRf
YWxpYXMpIHsNCisjZW5kaWYNCisJaWYgKC0tYmFpbG91dCA8IDApIHsNCisJ
ICAgIHByaW50aygiIC4uLiIpOw0KKwkgICAgYnJlYWs7DQorCX0NCisJaWYg
KGRlbnRyeSkgew0KKwkgICAgcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWRl
bnRyeS0+ZF9uYW1lLmxlbiwNCisJCSAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUs
IGRlbnRyeSk7DQorCSAgICBpZiAobm5wZnNfZF9lbnRyeV91bmhhc2hlZCgm
ZGVudHJ5LT5kX2hhc2gpKQ0KKwkJcHJpbnRrKCIodW5oYXNoZWQpIik7DQor
CX0NCisgICAgfQ0KKyNlbmRpZg0KICAgICBwcmludGsoIlxuIik7DQogfQ0K
IA0KQEAgLTE0Niw3ICsxNzEsMTEgQEAgbm5wZnNfcHJpbnRfY2hpbGRyZW4o
Y29uc3Qgc3RydWN0IGRlbnRyeQ0KIA0KICAgICB3aGlsZSAoc3ViZGlycyAh
PSAmZGVudHJ5LT5kX3N1YmRpcnMpIHsNCiAJc3RydWN0IGxpc3RfaGVhZCAq
dG1wID0gc3ViZGlyczsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9
IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7
DQorI2Vsc2UNCisJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5
KHRtcCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQogDQog
CXByaW50aygiICUuKnMoJXApIiwgKGludCljaGlsZC0+ZF9uYW1lLmxlbiwN
CiAJICAgICAgIGNoaWxkLT5kX25hbWUubmFtZSwgY2hpbGQpOw0KZGlmZiAt
dXByTiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMJMjAwNi0xMC0yNCAxODoz
MzozNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGlu
dXgvbm5wZnNfZGV2LmMJMjAxNi0wMS0xNCAxNjoyODoxOS4yNTA0OTU4MjAg
KzAxMDANCkBAIC0zMDAsNyArMzAwLDkgQEAgbm5wZnNfaW52YWxpZGF0ZV9h
bGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBGU0RFQihYREVCTk9E
RSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGluZ1xuIikpOw0KIA0K
ICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAgICAg
aW52YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsNCisjZW5kaWYNCiAgICAg
DQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZyZWVfYWxsX25ucGZzX25v
ZGVzIGRvbmVcbiIpKTsNCiB9DQpAQCAtMzc0LDcgKzM3NiwxMSBAQCBubnBm
c19kZXZjbG9zZShzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RyDQogc3RhdGlj
IHNzaXplX3QNCiBubnBmc19kZXZyZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBj
aGFyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQ0KIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k
aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1Io
ZGV2KV07DQogICAgIHN0cnVjdCBubnBmc19saW5rICpmaXJzdDsNCiAgICAg
aW50IHJldCA9IDAsIGVycm9yID0gMDsNCkBAIC00MzksOCArNDQ1LDEyIEBA
IG5ucGZzX2RldndyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdA0KIA0K
ICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldndyaXRlXG4iKSk7
DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu
b2RlLT5pX3JkZXY7DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYp
XTsNCisjZWxzZQ0KKyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k
X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQorICAgICBubnBmc3AgPSAmbm5w
ZnNbTUlOT1IoZGV2KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+Y2hhbm5l
bF9zZW0pOw0KICAgICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZX
UklURSkgew0KQEAgLTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2RldndyaXRl
KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdA0KIC8qDQogICogTm90IHVzZWQu
DQogICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3Ry
dWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAg
ICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxz
ZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3Ry
dWN0IGZpbGUgKmZpbGUsDQorCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1
bnNpZ25lZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgTk5Q
RlNERUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxh
Z3MgPSAlZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5m
X2ZsYWdzKSk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5u
cGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAg
ICAgIGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZf
ZmxhZ3MpKTsNCisjZWxzZQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5u
cGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAg
ICAgIGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmls
ZS0+Zl9mbGFncykpOw0KKyNlbmRpZg0KICAgICByZXR1cm4gLUVJTlZBTDsN
CiB9DQogDQogc3RhdGljIHVuc2lnbmVkIGludA0KIG5ucGZzX2RldnBvbGwo
c3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpDQogew0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu
b2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0g
ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRp
Zg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihk
ZXYpXTsNCiAgICAgaW50IHJldCA9IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5
ODEsMTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0g
ew0KICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlu
bnBmc19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
NikNCiAgICAgaW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAg
ICB1bmxvY2tlZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQor
I2VuZGlmDQogICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAg
b3BlbjoJCW5ucGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArMTAwMCwx
MyBAQCBubnBmc19pbml0X2RldmljZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1
ZV9oZWFkKCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkpOw0KIAlubnBmc19pbml0
cSgmbm5wZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBmc19pbml0cSgmbm5wZnNb
aV0uc2xlZXBxKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM3KQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFj
dGl2ZV9zZW0pOw0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5jaGFubmVsX3Nl
bSk7DQorI2Vsc2UNCisJc2VtYV9pbml0KCZubnBmc1tpXS5pbmFjdGl2ZV9z
ZW0sIDEpOw0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAx
KTsNCisjZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0
aXZlX2xpc3QpOw0KIAlubnBmc1tpXS5ubm9kZXMgPSAwOw0KICAgICB9DQpk
aWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v
ZGVvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMu
Yw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVv
cHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAwMDAwMCArMDEwMA0KKysr
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMTYt
MDEtMTUgMTI6NDQ6NTYuOTIyODk2NjM5ICswMTAwDQpAQCAtNDAsMjUgKzQw
LDQxIEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNpbmNs
dWRlIDxubnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMv
bm5wZnNfc3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+DQog
I2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGludXgv
ZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogI2luY2x1
ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyNpbmNsdWRlIDxsaW51
eC91aW8uaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvd3JpdGViYWNr
Lmg+DQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBSQ1NJ
RA0KLVJDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2
LzEyLzExIDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5u
cGZzX2lub2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRv
bCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCiBubnBmc19m
c3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNl
bHNlDQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlm
DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1
Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50DQor
bm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsN
CisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFzZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTEwNSw3ICsxMjEsNyBAQCBu
bnBmc192bWFfY2xvc2UgKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqDQogfQ0K
IA0KIHN0YXRpYyBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgbm5wZnNf
ZmlsZV92bV9vcHMgPSB7DQotICAgIC5ub3BhZ2UJPSBmaWxlbWFwX25vcGFn
ZSwNCisgICAgLmZhdWx0ICAgICAgPSBmaWxlbWFwX2ZhdWx0LA0KICAgICAu
Y2xvc2UJPSBubnBmc192bWFfY2xvc2UsDQogfTsNCiANCkBAIC0xMzQsMTIg
KzE1MCwxNCBAQCBubnBmc19wcmludF9wYXRoKHN0cnVjdCBkZW50cnkgKmRl
bnRyeSkNCiAgKg0KICAqLw0KIA0KKyNpZiAwDQogdm9pZA0KIG5ucGZzX3By
aW50X2xvY2soY2hhciAqcywgc3RydWN0IHNlbWFwaG9yZSAqc2VtKQ0KIHsN
CiAgICAgTk5QRlNERUIoWERFQkxPQ0ssICgibG9jazogJXMgc2VtOiAlcCBj
b3VudDogJWRcbiIsDQogCQkgICAgICBzLCBzZW0sIChpbnQpYXRvbWljX3Jl
YWQoJnNlbS0+Y291bnQpKSk7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQogICoN
CkBAIC0xODUsNyArMjAzLDcgQEAgbm5wZnNfZF9pcHV0KHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwgc3RydQ0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsDQog
CSAgICAgKCJubnBmc19kX2lwdXQ6IGRlbnRyeSAlcCwgaW5vZGUgJXBcbiIs
IGRlbnRyeSwgaW5vZGUpKTsNCiAgICAgDQotICAgIGlmIChub2RlLT5mbGFn
cyAmIE5OUEZTX05PREVfSVBVVCkgLyogWFhYIGxvY2tpbmcgKi8NCisgICAg
aWYgKG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9j
a2luZy4gbmV2ZXIgc2V0PyAqLw0KIAlubnBmc19pcmVsZShpbm9kZSk7DQog
ICAgIGVsc2UNCiAJaXB1dChpbm9kZSk7DQpAQCAtMjEyLDggKzIzMCwxMyBA
QCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAq
IG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8NCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAo
c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry
dWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRl
bnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2Vu
ZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2RlIG1z
ZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtMjQwLDcgKzI2
MywxMSBAQCBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1
Y3QNCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUTk9E
RTsNCiAgICAgICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS
TkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50
LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJl
bnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl
dF9wYWcoKTsNCiAJbXNnLnBhcmVudF9oYW5kbGUgPSBkLT5oYW5kbGU7DQog
ICAgICAgICANCkBAIC0zMTAsNyArMzM3LDExIEBAIG5ucGZzX29wZW5fdmFs
aWQoc3RydWN0IGlub2RlICp2cCwgdV9pbnQNCiAgICAgICB7DQogCXN0cnVj
dCBubnBmc19tZXNzYWdlX29wZW4gbXNnOw0KIAltc2cuaGVhZGVyLm9wY29k
ZSA9IE5OUEZTX01TR19PUEVOOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9
IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5u
cGZzX2dldF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog
CW1zZy50b2tlbnMgPSB0b2s7DQpAQCAtMzk3LDcgKzQyOCwxMSBAQCBmaW5k
X2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogc3RhdGlj
IGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9p
bnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9
IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZT
X0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq
eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGxvZmZfdCBsZW4g
PSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDI1LDcgKzQ2MCwxMSBAQCBu
bnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50DQogDQog
CW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVERBVEE7DQogCW1z
Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNy
ZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cu
Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuaGFu
ZGxlID0geG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcgICA9IGZsYWc7DQogCW1z
Zy5vZmZzZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs0OTksMjcgQEAgbm5wZnNf
ZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2ludA0KICAqDQogICov
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzNSkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmMoc3RydWN0IGZp
bGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IGRhdGFzeW5j
KQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMSwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmls
ZSAqZmlsZSwgaW50IGRhdGFzeW5jKQ0KKyNlbHNlDQorc3RhdGljIGludA0K
K25ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQs
IGxvZmZfdCBlbmQsIGludCBkYXRhc3luYykNCisjZW5kaWYNCiB7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzUp
DQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5k
ZW50cnk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBE
RU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCiAgICAgc3RydWN0IG5ucGZzICpu
bnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50
IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBl
cnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVy
cm9yKQ0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtNTExLDcgKzU2MywxMSBAQCBu
bnBmc19hdHRyX3ZhbGlkKHN0cnVjdCBpbm9kZSAqIHZwLCB1X2luDQogICAg
ICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQog
DQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df
R0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICAgICAgICAgIG1z
Zy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBtc2cuaGFuZGxlID0g
eG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBA
IC01NTEsNyArNjA3LDExIEBAIG5ucGZzX3JpZ2h0c192YWxpZChzdHJ1Y3Qg
aW5vZGUgKiB2cCwgbm4NCiAgICAgICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV9nZXRhdHRyIG1zZzsNCiANCiAgICAgICAgICAgICBtc2cuaGVhZGVy
Lm9wY29kZSA9IE5OUEZTX01TR19HRVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICAgICAg
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAg
ICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu
ZGlmDQogICAgICAgICAgICAgbXNnLmNyZWQucGFnID0gcGFnOw0KICAgICAg
ICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICAgICAgICAg
IGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRl
ciwgc2l6ZW9mKG1zZykpOw0KQEAgLTU5MiwxMSArNjUyLDI1IEBAIGNoZWNr
X3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBk
b24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIChMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZF
UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkpDQorc3RhdGlj
IGludA0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwg
aW50IG1vZGUpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQotbm5wZnNfcGVybWlz
c2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgc3RydWN0IG5h
bWVpZGF0YSAqbmQpDQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRp
Zg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3Qg
cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz
LDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAg
ICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYg
SVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisj
ZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXAp
IG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBu
bnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC02MzYsNyArNzEwLDEx
IEBAIG5ucGZzX2RvX2dldGRhdGEoc3RydWN0IG5ucGZzX25vZGUgKnhuLA0K
ICAgICBpbnQgZXJyb3I7DQogDQogICAgIG1zZy5oZWFkZXIub3Bjb2RlID0g
Tk5QRlNfTVNHX0dFVERBVEE7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9
IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBu
bnBmc19nZXRfcGFnKCk7DQogICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxl
Ow0KICAgICBtc2cudG9rZW5zID0gdG9rOw0KQEAgLTc1MCwxMSArODI4LDE5
IEBAIG5ucGZzX2RhdGFfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSwgdV8N
CiBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICogZmlsZSwgc3Ry
dWN0IHZtX2FyZWFfc3RydWN0ICogdm1hKQ0KIHsNCiAgICAgaW50IGZsYWdz
LCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9
IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu
ZyA9IGZpbGUtPmZfbWFwcGluZzsNCiANCiAgICAgTk5QRlNERUIoWERFQlZO
T1BTLCAoIm5ucGZzX21tYXAgaW5vZGU6ICVwXG4iLCBpbm9kZSkpOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9kZW50cnkpOw0KKyNl
bHNlDQorICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9wYXRoLmRlbnRy
eSk7DQorI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBm
c19tbWFwIGFsaWFzZXM6IikpOw0KICAgICBubnBmc19wcmludF9hbGlhc2Vz
KGlub2RlKTsNCiAgICAgDQpAQCAtNzg5LDM3ICs4NzUsNTAgQEAgaW50IG5u
cGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsDQogICoNCiAgKi8N
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3JlYWQoc3Ry
dWN0IGtpb2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0
IGlvdmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJICAgICAg
IGxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JICAgICAgIGNoYXIgX191c2VyICpi
dWYsIHNpemVfdCBjb3VudCwNCitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3Jl
YWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAq
dG8pDQogI2VuZGlmDQotCSAgICAgICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAg
aW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2Ni
LT5raV9maWxwOw0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDEyLDApDQogICAgIHNzaXplX3QgY291bnQgPSBp
b2NiLT5raV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9j
Yi0+a2lfbmJ5dGVzOw0KKyNlbHNlDQorICAgIHNzaXplX3QgY291bnQgPSBp
b3ZfaXRlcl9jb3VudCh0byk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0
IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNl
bHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGgu
ZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNf
bm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAg
ICBpZiAoeG4gIT0gTlVMTCkNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u
cGZzX3JlYWRfZmlsZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgICAg
IGlub2RlLCB4bi0+dG9rZW5zKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBu
bnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBvcywgcG9z
ICsgY291bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNfZGF0YV92
YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3MsIGlvY2It
PmtpX3BvcyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7
DQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGRh
dGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7
DQogICAgIH0NCiAgICAgDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5l
cmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0K
ICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlv
Y2IsIGJ1ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19m
aWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQogI2VuZGlmDQogICAgIE5OUEZT
REVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRc
biIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC04MjksMjMg
KzkyOCwzNiBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2Is
DQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNf
YWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCi0jaWYgTElOVVhfVkVS
U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAJCWNvbnN0
IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQor
CQlsb2ZmX3QgcG9zKQ0KICNlbHNlDQotCQljb25zdCBjaGFyIF9fdXNlciAq
YnVmLCBzaXplX3QgY291bnQsIA0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNf
d3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRl
ciAqZnJvbSkNCiAjZW5kaWYNCi0JCWxvZmZfdCBwb3MpDQogew0KICAgICBp
bnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2It
PmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlv
Y2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQgPSBpb2Ni
LT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlv
dl9pdGVyX2NvdW50KGZyb20pOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisj
ZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRo
LmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZz
X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAg
IGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxvZmZfdCBy
ZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICANCiAgICAg
Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSglcCk6IHRv
a2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMpKTsNCkBA
IC04NTksMTAgKzk3MSwxMCBAQCBubnBmc19haW9fd3JpdGUoc3RydWN0IGtp
b2NiICppb2NiLA0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiANCi0jaWYg
TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
NiwwKQ0KICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9j
YiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVycm9yID0g
Z2VuZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBidWYsIGNvdW50LCBwb3Mp
Ow0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlvY2Is
IGZyb20pOw0KICNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJv
cikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFgg
cmFjZSAqLw0KQEAgLTg3MSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlvX3dyaXRl
KHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0N
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5v
ZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAgIGludCBt
b2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50
DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgbmFt
ZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVh
dGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwN
CisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5kaWYNCiB7
DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5w
ZnNfbm9kZSAqeG47DQpAQCAtOTAzLDkgKzEwMjUsMTcgQEAgbm5wZnNfY3Jl
YXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZA0KICAgICBYQV9DTEVB
UigmbXNnLmF0dHIpOw0KICAgICBYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1v
ZGUpOw0KICAgICBYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVf
UkVHKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkNCiAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJl
bnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfR0lEKCZtc2cuYXR0
ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCiAgICAgbXNnLm1vZGUg
PSAwOwkJLyogWFhYICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1
cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJy
ZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo
bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAo
ZXJyb3IgPT0gMCkNCkBAIC05NDYsNyArMTA3NiwxMSBAQCBubnBmc191bmxp
bmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0DQogICAgIGlmIChzdHJs
Y3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNn
Lm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRP
T0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt
PnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3Vp
ZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRf
cGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw
LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3Ig
PT0gMCkNCkBAIC05OTEsNyArMTEyNSwxMSBAQCBubnBmc19yZW5hbWUgKHN0
cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1z
Zy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZiht
c2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1F
TkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3Vy
cmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5w
ZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBj
KG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYg
KGVycm9yID09IDApDQpAQCAtMTAwOCw4ICsxMTQ2LDEzIEBAIG5ucGZzX3Jl
bmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAgcmV0dXJu
IGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX21rZGly
KHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBp
bnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19ta2Rpcihz
dHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1v
ZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpu
bnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xMDQw
LDkgKzExODMsMTcgQEAgbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGly
LCBzdHJ1Y3QgZA0KIAlYQV9DTEVBUigmbXNnLmF0dHIpOw0KIAlYQV9TRVRf
TU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KIAlYQV9TRVRfVFlQRSgmbXNnLmF0
dHIsIE5OUEZTX0ZJTEVfRElSKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJWEFfU0VUX0dJRCgmbXNn
LmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFf
U0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlm
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj
ZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsN
CisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K
IAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFk
ZXIsIHNpemVvZihtc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQpAQCAtMTA4
Myw3ICsxMjM0LDExIEBAIG5ucGZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqIGRp
ciwgc3RydWN0IGQNCiAgICAgbXNnLnBhcmVudF9oYW5kbGUgPSB4bi0+aGFu
ZGxlOw0KICAgICBpZiAoc3RybGNweShtc2cubmFtZSwgZGVudHJ5LT5kX25h
bWUubmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUp
DQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNn
LmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5j
cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5j
cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBm
c19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNn
KSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTExMjgsNyArMTI4Mywx
MSBAQCBzdGF0aWMgaW50IG5ucGZzX2xpbmsoc3RydWN0IGRlbnRyeSAqb2xk
DQogCWlmIChzdHJsY3B5KG1zZy5uYW1lLCBuYW1lLCBzaXplb2YobXNnLm5h
bWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVU
T09MT05HOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM
X1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51
aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf
dWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9w
YWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZt
c2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0K
QEAgLTExNTcsMjkgKzEzMTYsNDcgQEAgc3RhdGljIGludCBubnBmc19zeW1s
aW5rKHN0cnVjdCBpbm9kZSAqZA0KICAgICB4biA9IFZOT0RFX1RPX1hOT0RF
KGRpcik7DQogDQogICAgIHsNCi0Jc3RydWN0IG5ucGZzX21lc3NhZ2Vfc3lt
bGluayBtc2c7DQorCXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxpbmsgKm1z
ZyA9IE5VTEw7DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNH
X1NZTUxJTks7DQotCW1zZy5wYXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsN
Ci0JaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5hbWUsIHNpemVvZihtc2cubmFt
ZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRP
T0xPTkc7DQotCWlmIChzdHJsY3B5KG1zZy5jb250ZW50cywgc3ltbmFtZSwg
c2l6ZW9mKG1zZy5jb250ZW50cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NP
TlRFTlQpDQotCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JWEFfQ0xF
QVIoJm1zZy5hdHRyKTsNCi0JWEFfU0VUX01PREUoJm1zZy5hdHRyLCAwNzc3
KTsNCi0JWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0xOSyk7
DQotCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQor
CW1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiAN
Ci0JbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KLQltc2cuY3JlZC5w
YWcgPSBubnBmc19nZXRfcGFnKCk7DQotCWVycm9yID0gbm5wZnNfbWVzc2Fn
ZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KKwlp
ZiAobXNnID09IE5VTEwpDQorCSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1z
Zy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ct
PnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweSht
c2ctPm5hbWUsIG5hbWUsIHNpemVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19N
QVhfTkFNRSkgew0KKwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFN
RVRPT0xPTkc7DQorCX0NCisJaWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywg
c3ltbmFtZSwgc2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhf
U1lNTElOS19DT05URU5UKSB7DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1
cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRy
KTsNCisJWEFfU0VUX01PREUoJm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NF
VF9UWVBFKCZtc2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJ
WEFfU0VUX0dJRCgmbXNnLT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vs
c2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9m
c2dpZCgpKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9
IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcg
PSBubnBmc19nZXRfcGFnKCk7DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9y
cGMobm5wZnNwLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNnKSk7DQogCWlm
IChlcnJvciA9PSAwKQ0KLQkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQ
X0VSUk9SKCZtc2cpOw0KKwkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQ
X0VSUk9SKG1zZyk7DQogDQogCS8qIFhYWCBzaG91bGQgdGhpcyByZWFsbHkg
YmUgaGVyZSAqLw0KIAlpZiAoREVOVFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+
eGRfZmxhZ3MgPT0gMCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5O
UEZTIFBhbmljOiBubnBmc19zeW1saW5rOiBkZW50cnkgbm90IHZhbGlkXG4i
KTsNCiAJfQ0KKwlrZnJlZShtc2cpOw0KICAgICB9DQogDQogICAgIHJldHVy
biBlcnJvcjsNCkBAIC0xMTg4LDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQg
bm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhv
bGQgaV9tdXRleC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19y
ZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmls
bGRpcl90IGZpbGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNf
aXRlcmF0ZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4
dCAqY3R4KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBs
b2ZmX3Qgb2Zmc2V0LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0
IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNl
bHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGgu
ZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUg
KmNhY2hlX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBW
Tk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0x
MjY0LDYgKzE0NTAsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICog
ZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1sZW4s
DQogCQkgICAgKGludCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs
MCkNCiAJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAo
ZmlsbGRpcl9lcnJvciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAgICB4
ZGlyZW50LT5kX25hbWUsDQpAQCAtMTI3NSw2ICsxNDYyLDE4IEBAIG5ucGZz
X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJu
bnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7
DQogCQlicmVhazsNCiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJl
bnQtPmRfZmlsZW5vICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGly
X2VtaXQgKGN0eCwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJ
CSAgICAgeGRpcmVudC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+
ZF9maWxlbm8sDQorCQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJ
Tk5QRlNERUIoWERFQlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBm
aWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQor
CSAgICB9DQorI2VuZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9y
ZWNsZW47DQogDQogCSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkg
ew0KQEAgLTEzMzEsOSArMTUzMCwxNSBAQCBubnBmc19yZWFkbGluayAoc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211
dGV4Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTig0LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9s
bG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3Qg
bmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoN
CitubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0K
KwkJIHZvaWQgKipwYWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9y
ID0gMDsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19J
Tk9ERShkZW50cnkpOw0KQEAgLTEzNDQsNyArMTU0OSwxMSBAQCBubnBmc19m
b2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlmIChl
cnJvcikNCiAgICAgICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkN
CiAgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBu
ZCk7DQorI2Vsc2UNCisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGln
aHQoZGVudHJ5LCBwYWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBAIC0x
Mzk4LDcgKzE2MDcsMTEgQEAgbm5wZnNfc2V0YXR0ciAoc3RydWN0IGRlbnRy
eSAqZGVudHJ5LCBzdA0KICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf
cHV0YXR0ciBtc2c7DQogDQogICAgICAgICBtc2cuaGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19QVVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9
IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5u
cGZzX2dldF9wYWcoKTsNCiAgICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFu
ZGxlOw0KICAgICAgICAgbm5wZnNfaWF0dHIyYXR0cih4biwgYXR0ciwgJm1z
Zy5hdHRyKTsNCkBAIC0xNDIyLDYgKzE2MzUsOCBAQCBubnBmc19yZWxlYXNl
X2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogICAgIHN0cnVjdCBubnBm
c19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZv
aWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5w
ZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQogICAgIGVycm9yID0gbm5wZnNf
aW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE0NTAsMTggKzE2NjUsMTggQEAg
bm5wZnNfcmVsZWFzZV9maWxlIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAq
DQogICovDQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigyLDYsMTgpDQogc3RhdGljIGludA0KIG5ucGZzX2ZsdXNoKHN0
cnVjdCBmaWxlICpmaWxlLCBmbF9vd25lcl90IGlkKQ0KLSNlbHNlDQotc3Rh
dGljIGludA0KLW5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KLSNl
bmRpZg0KIHsNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Zs
dXNoXG4iKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9k
ZW50cnkgJiYgZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUpDQogCXJldHVybiBu
bnBmc19yZWxlYXNlX2ZpbGUoZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUsIGZp
bGUpOw0KKyNlbHNlDQorICAgIGlmIChmaWxlICYmIGZpbGUtPmZfcGF0aC5k
ZW50cnkgJiYgZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkNCisJcmV0
dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX3BhdGguZGVudHJ5LT5k
X2lub2RlLCBmaWxlKTsNCisjZW5kaWYNCiAgICAgZWxzZQ0KIAlyZXR1cm4g
MDsNCiB9DQpAQCAtMTQ3MCw4ICsxNjg1LDEzIEBAIG5ucGZzX2ZsdXNoKHN0
cnVjdCBmaWxlICpmaWxlKQ0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlz
IHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3Rh
dGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFs
aWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRh
ICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRh
dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3Mp
DQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVO
VFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAgIE5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVw
KVxuIiwNCkBAIC0xNTE5LDkgKzE3MzksMTUgQEAgbm5wZnNfZF9yZXZhbGlk
YXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICByZXR1cm4gMDsNCiB9
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1
Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vsc2UNCitzdGF0aWMNCitpbnQNCitu
bnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQor
I2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOw0KICAgICBz
dHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTU0NiwxMSArMTc3MiwxNiBA
QCBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogfQ0K
IA0KIHN0YXRpYyBzc2l6ZV90DQotbm5wZnNfc2VuZGZpbGUoc3RydWN0IGZp
bGUgKmZpbGUsIGxvZmZfdCAqcHBvcywgc2l6ZV90IGNvdW50LA0KLQkgICAg
ICAgcmVhZF9hY3Rvcl90IGFjdG9yLCB2b2lkICp0YXJnZXQpDQorbm5wZnNf
c3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCAqcHBvcywN
CisJCSAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwgc2l6ZV90IGNv
dW50LA0KKwkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQogew0KICAgICBpbnQg
ZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBm
aWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsN
CisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf
VE9fWE5PREUoaW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhuICE9IE5VTEwp
DQpAQCAtMTU2MSw4ICsxNzkyLDcgQEAgbm5wZnNfc2VuZGZpbGUoc3RydWN0
IGZpbGUgKmZpbGUsIGxvZmZfdA0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgi
bm5wZnNfc2VuZGZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikp
Ow0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCi0NCi0gICAgZXJyb3IgPSBn
ZW5lcmljX2ZpbGVfc2VuZGZpbGUoZmlsZSwgcHBvcywgY291bnQsIGFjdG9y
LCB0YXJnZXQpOw0KKyAgICBlcnJvciA9IGZpbGUtPmZfb3AtPnNwbGljZV9y
ZWFkKGZpbGUsIHBwb3MsIHBpcGUsIGNvdW50LCBmbGFncyk7DQogDQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogZXJyb3Ig
PSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTE2
MzksMzQgKzE4NjksMzEgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0
IHBhZ2UgKnBhZ2UsDQogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n
ID0gYmFja2ZpbGUtPmZfbWFwcGluZzsNCiAJdW5zaWduZWQgbGVuID0gUEFH
RV9DQUNIRV9TSVpFOw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7DQorCXZv
aWQgKmZzZGF0YTsNCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7DQogDQogCWlu
dCBlcnJvcjsNCiAJDQotCWRvIHsNCi0JCWJhY2twYWdlID0gZ3JhYl9jYWNo
ZV9wYWdlKG1hcHBpbmcsIG5ucGZzX2dldF9iYWNraW5kZXgocGFnZSkpOw0K
LQkJaWYgKCFiYWNrcGFnZSkgew0KLQkJCXByaW50aygibm5wZnNfd3JpdGVf
YmFja3BhZ2U6IG5vIHBhZ2VcbiIpOw0KLQkJCXJldHVybiAtRUlPOw0KLQkJ
fQ0KKwkodm9pZClvZmZzZXQ7DQogDQotCQllcnJvciA9IG1hcHBpbmctPmFf
b3BzLT5wcmVwYXJlX3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJ
CQkgICAgICAwLCBsZW4pOw0KKwlkbyB7DQorCQllcnJvciA9IHBhZ2VjYWNo
ZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJ
CQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJQkxFLA0KKwkJCQkJICAg
ICAgJmJhY2twYWdlLCAmZnNkYXRhKTsNCiAJCWlmICghZXJyb3IpIHsNCiAJ
CQljb3B5X2hpZ2hwYWdlKGJhY2twYWdlLCBwYWdlKTsNCiAJCQlmbHVzaF9k
Y2FjaGVfcGFnZShiYWNrcGFnZSk7DQotCQkJZXJyb3IgPSBtYXBwaW5nLT5h
X29wcy0+Y29tbWl0X3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJ
CQkJICAgICAwLCBsZW4pOw0KKwkJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRl
X2VuZChiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJCQkJbGVuLCBi
YWNrcGFnZSwgZnNkYXRhKTsNCisJCQlpZiAoZXJyb3IgPiAwKQ0KKwkJCQll
cnJvciA9IDA7DQogCQl9DQogCQlpZiAoZXJyb3IgPT0gQU9QX1RSVU5DQVRF
RF9QQUdFKSB7DQotCQkJcGFnZV9jYWNoZV9yZWxlYXNlKGJhY2twYWdlKTsN
CiAJCQljb250aW51ZTsNCiAJCX0NCiAJfSB3aGlsZSAoMCk7DQogDQogCW9m
ZnNldCA9IHBhZ2Vfb2Zmc2V0KGJhY2twYWdlKTsNCi0JdW5sb2NrX3BhZ2Uo
YmFja3BhZ2UpOw0KLQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0K
IA0KIAlpZiAoZXJyb3IpDQogCQlwcmludGsoIm5ucGZzX3dyaXRlX2JhY2tw
YWdlOiBFSU9cbiIpOw0KQEAgLTE2ODksMTMgKzE5MTYsOSBAQCBubnBmc19y
ZWFkX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzDQogCXN0cnVjdCBw
YWdlICpiYWNrcGFnZTsNCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7DQogDQot
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs
MTgpDQorCSh2b2lkKW9mZnNldDsNCisNCiAJYmFja3BhZ2UgPSByZWFkX21h
cHBpbmdfcGFnZShtYXBwaW5nLCBuLCBiYWNrZmlsZSk7DQotI2Vsc2UNCi0J
YmFja3BhZ2UgPSByZWFkX2NhY2hlX3BhZ2UobWFwcGluZywgbiwNCi0JCQkJ
ICAgKGZpbGxlcl90ICopbWFwcGluZy0+YV9vcHMtPnJlYWRwYWdlLA0KLQkJ
CQkgICBiYWNrZmlsZSk7DQotI2VuZGlmDQogCWlmICghSVNfRVJSKGJhY2tw
YWdlKSkgew0KIAkJd2FpdF9vbl9wYWdlX2xvY2tlZChiYWNrcGFnZSk7DQog
DQpAQCAtMTg0MiwxMSArMjA2NSwxNyBAQCBubnBmc19wcmVwYXJlX3dyaXRl
KHN0cnVjdCBmaWxlICpmaWxlLCBzDQogDQogCWlmIChtb2RzaXplID4gaV9z
aXplX3JlYWQoaW5vZGUpKSB7DQogCQlpbnQgZXJyb3I7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAkJZXJy
b3IgPSB2bXRydW5jYXRlKGlub2RlLCBtb2RzaXplKTsNCisjZWxzZQ0KKwkJ
ZXJyb3IgPSBpbm9kZV9uZXdzaXplX29rKGlub2RlLCBtb2RzaXplKTsNCisJ
CWlmKCFlcnJvcikNCisJCQl0cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBtb2Rz
aXplKTsNCisjZW5kaWYNCiAJCWlmIChlcnJvcikgew0KIAkJCXByaW50aygi
bm5wZnNfcHJlcGFyZV93cml0ZTogdHJ1bmNhdGUoJWxsdSkgLT4gJWRcbiIs
DQogCQkJICAgICAgIG1vZHNpemUsIC1lcnJvcik7DQotCQkJQlVHKCk7IC8q
IFhYWCBub3QgY29ycmVjdCAqLw0KKwkJCS8qQlVHKCk7Ki8gLyogWFhYIG5v
dCBjb3JyZWN0ICovDQogCQl9DQogCX0NCiANCkBAIC0xODcyLDggKzIxMDEs
MzcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg
cw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50
DQorbm5wZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj
dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2ln
bmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAs
IHZvaWQgKipmc2RhdGEpDQorew0KKwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJ
cGdvZmZfdCBpbmRleDsNCisJdW5zaWduZWQgZnJvbTsNCisNCisJaW5kZXgg
PSBwb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsNCisJZnJvbSA9IHBvcyAmIChQ
QUdFX0NBQ0hFX1NJWkUgLSAxKTsNCisNCisjaWZkZWYgQU9QX0ZMQUdfTk9G
Uw0KKwlwYWdlID0gZ3JhYl9jYWNoZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBp
bmcsIGluZGV4LCBmbGFncyk7DQorI2Vsc2UNCisJcGFnZSA9IF9fZ3JhYl9j
YWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4KTsNCisjZW5kaWYNCisJaWYgKHBh
Z2UgPT0gTlVMTCkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwkqcGFnZXAg
PSBwYWdlOw0KKw0KKwlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxl
LCBwYWdlLCBmcm9tLCBmcm9tICsgbGVuKTsNCit9DQorDQorI2VuZGlmDQor
DQogc3RhdGljIGludA0KLW5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmls
ZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIHRvKQ0KK25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAq
ZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBmcm9t
LCB1bnNpZ25lZCB0bykNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg
PSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KICAgICBsb2ZmX3QgcG9zID0gKChs
b2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsN
CkBAIC0xOTAyLDE0ICsyMTYwLDUxIEBAIG5ucGZzX2NvbW1pdF93cml0ZShz
dHJ1Y3QgZmlsZSAqZmlsZSwgc3QNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDE4KQ0KLWNvbnN0DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQorDQorc3RhdGljIGludA0KK25ucGZzX3dy
aXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3Bh
Y2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQorCQl1bnNpZ25lZCBsZW4sIHVu
c2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0
YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9T
SVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhl
IHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0KKwlpZiAoY29waWVk
IDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhw
YWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQgKmthZGRyID0ga21h
cF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQorCQltZW1zZXQoa2FkZHIgKyBm
cm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0KKwkJZmx1c2hfZGNh
Y2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkciwg
S01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGthZGRyKTsN
CiAjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19jb21taXRfd3JpdGUoZmlsZSwg
cGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQorDQorCXVubG9ja19wYWdl
KHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQorDQorCXJl
dHVybiBjb3BpZWQ7DQorfQ0KKw0KKyNlbmRpZg0KKw0KK2NvbnN0DQogc3Ry
dWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hb3BzID0gew0K
IAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwNCiAJLndyaXRlcGFnZSA9
IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFyZV93cml0ZSA9IG5u
cGZzX3ByZXBhcmVfd3JpdGUsDQogCS5jb21taXRfd3JpdGUgPSBubnBmc19j
b21taXRfd3JpdGUsDQorI2Vsc2UNCisJLndyaXRlX2JlZ2luID0gbm5wZnNf
d3JpdGVfYmVnaW4sDQorCS53cml0ZV9lbmQgPSBubnBmc193cml0ZV9lbmQs
DQorI2VuZGlmDQogfTsNCiANCiAvKg0KQEAgLTE5MTcsMjEgKzIyMTIsMzAg
QEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hbw0K
ICAqLw0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZmlsZV9v
cGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE2LDApDQogICAgIC5haW9fcmVhZAk9IG5ucGZzX2Fp
b19yZWFkLA0KICAgICAuYWlvX3dyaXRlCT0gbm5wZnNfYWlvX3dyaXRlLA0K
KyNlbHNlDQorICAgIC5yZWFkX2l0ZXIJPSBubnBmc19yZWFkX2l0ZXIsDQor
ICAgIC53cml0ZV9pdGVyCT0gbm5wZnNfd3JpdGVfaXRlciwNCisjZW5kaWYN
CiAgICAgLm1tYXAJPSBubnBmc19maWxlX21tYXAsDQogICAgIC5vcGVuCT0g
bm5wZnNfb3BlbiwNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogICAg
IC5yZWxlYXNlCT0gbm5wZnNfcmVsZWFzZV9maWxlLA0KICAgICAuZnN5bmMJ
PSBubnBmc19mc3luYywNCi0gICAgLnNlbmRmaWxlCT0gbm5wZnNfc2VuZGZp
bGUsDQorICAgIC5zcGxpY2VfcmVhZCA9IG5ucGZzX3NwbGljZV9yZWFkLA0K
IH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29w
ZXJhdGlvbnMgPSB7DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z
IG5ucGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGly
CT0gbm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9
IG5ucGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZz
X2ZsdXNoLA0KIH07DQogDQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5w
ZnMvbGludXgvbm5wZnNfbG9hZC5jIGFybGEtMC45MC9ubnBmcy9saW51eC9u
bnBmc19sb2FkLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25u
cGZzX2xvYWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAx
Ni0wMS0xMyAyMDoxNDowMi44MzAxMDM1MTcgKzAxMDANCkBAIC01NCw3ICs1
NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19m
b3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgbm5wZnNfZnNfdHlw
ZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAgICAgICJubnBmcyIsDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5ucGZzX2dldF9zYiwNCisjZWxz
ZQ0KKyAgICAgICBtb3VudDogICAgICAgICAgbm5wZnNfbW91bnQsDQorI2Vu
ZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAgICBraWxsX2xpdHRlcl9zdXBl
ciwNCiAgICAgICAgb3duZXI6ICAgICAgICAgIFRISVNfTU9EVUxFLA0KIH07
DQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf
bWVzc2FnZS5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdl
LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3Nh
Z2UuYwkyMDA3LTAxLTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysr
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0w
MS0xNCAxNjo1MDoxNS4xMzk1NzUxNTEgKzAxMDANCkBAIC00NSw3ICs0NSw3
IEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVmIFJD
U0lEDQotUkNTSUQoIiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMuMi4x
IDIwMDcvMDEvMDkgMTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJ
ZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0Mzow
NSB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KQEAg
LTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1vdmUo
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIoWERF
Qk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN
CiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQogICAgIGRnZXRfbG9j
a2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7
DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQor
ICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAgc3Bpbl91bmxvY2soJmRl
bnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7
DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcgKzEyNywxMSBA
QCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQog
ICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsNCiAgICAgc3RydWN0IGRl
bnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3RydWN0IHFzdHIgc3FzdHI7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisg
ICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3Rh
bGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3NiwxMiArMTg2LDI2IEBAIG5u
cGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAg
ICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBkaS0+aV9k
ZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZkaS0+aV9kZW50
cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRl
bnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0K
LQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGluX3VubG9jaygmZGNhY2hl
X2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJl
bnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50
cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l
bnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQor
ICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZk
Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQt
PmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bp
bl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5
ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVC
TVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMg
JXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU3LDkgQEAgbm5wZnNf
bWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1
dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBh
bGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9
DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0
YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5
NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBm
cyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0
KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVu
dHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbGlmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisg
ICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0
LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50
cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVj
dCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAgICAgDQogICAg
IE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0
ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUp
KTsNCkBAIC0zOTYsMTcgKzQyOCwzNiBAQCBubnBmc19tZXNzYWdlX2luc3Rh
bGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGljIHZvaWQNCiBjbGVhcl9h
bGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBwYXJlbnQp
DQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBz
dHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhs
aXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0KICBhZ2FpbjoNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0K
ICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAv
KiBUT0RPOiBmaW5kIHRoZSBkZW50cnkgdG8gbG9jayAqLw0KKyAgICAvKnNw
aW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOyovDQorI2VuZGlmDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAg
ICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAo
YWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KLQlzdHJ1Y3QgZGVudHJ5
ICpkZW50cnk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl
bnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2Rl
LT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zv
cl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRf
YWxpYXMpIHsNCisjZW5kaWYNCiAJc3RydWN0IGxpc3RfaGVhZCAqc3ViZGly
czsNCiAJc3RydWN0IG5ucGZzX2RlbnRyeV9kYXRhICp4ZDsNCiAJDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
IAlkZW50cnkgPSBsaXN0X2VudHJ5KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5LCBk
X2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKGRlbnRyeSA9PSBOVUxMKSB7DQog
CSAgICBwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IGRlbnRyeSBp
biBhbGlhcyBsaXN0IGlzIG51bGxcbiIpOw0KIAkgICAgYnJlYWs7DQpAQCAt
NDIyLDcgKzQ3MywxMSBAQCBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBp
bm9kZSAqaW5vZGUsDQogCXN1YmRpcnMgPSBkZW50cnktPmRfc3ViZGlycy5u
ZXh0Ow0KIAl3aGlsZSAoc3ViZGlycyAhPSAmZGVudHJ5LT5kX3N1YmRpcnMp
IHsNCiAJICAgIHN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0
bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsNCisjZWxzZQ0KKwkg
ICAgc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry
dWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQogCSAgICBzdWJkaXJz
ID0gdG1wLT5uZXh0Ow0KIAkgICAgTk5QRlNERUIoWERFQk1TRywgKCJjbGVh
cl9hbGxfY2hpbGRyZW4gY2hpbGQ6ICUuKnMgaW5vZGU6ICVwLyVwICINCiAJ
CQkgICAgICAgImRjb3VudDogJWQgYWxpYXNlczpcbiIsDQpAQCAtNDQyLDE0
ICs0OTcsMjYgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLA0KIA0KIAkgICAgLyogVGhyb3cgaW1tZWRpYXRlbHkgKi8NCiAJ
ICAgIGlmIChubnBmc19kY291bnQoY2hpbGQpID09IDApIHsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KIAkg
ICAgICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisJ
CS8qIFRPRE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorCQkvKnNwaW5fdW5s
b2NrKCZkZW50cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiAJCW5ucGZzX2Rf
cmVtb3ZlKGNoaWxkKTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0N
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogICAgIH0N
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM4KQ0KICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNl
DQorICAgIC8qIFRPRE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorICAgIC8q
c3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIH0N
CiANCiBzdGF0aWMgdm9pZA0KQEAgLTYwNSwxMiArNjcyLDEwIEBAIGdjX2Js
b2NrKHN0cnVjdCBubnBmcyAqbm5wZnNwLA0KICAgICB9DQogDQogICAgIGlm
ICghbm5wZnNfYmxvY2tfaGF2ZV9wKHhuLCBvZmZzZXQpKSB7DQotI2lmIDAg
ICAvKiBoYXBwZW5zIHdoZW4gZGFlbW9uIHNlbmRzIHNldmVyYWwgbWVzc2Fn
ZXMgZm9yIHNhbWUgYmxvY2sgKi8NCiAJcHJpbnRrKEtFUk5fRU1FUkcgIk5O
UEZTL2djX2Jsb2NrOiAiDQogCSAgICAgICAiRU5PRU5UICglZCwlZCwlZCwl
ZCkgMHglbGx4XG4iLCANCiAJICAgICAgIHhuLT5oYW5kbGUuYSwgeG4tPmhh
bmRsZS5iLCB4bi0+aGFuZGxlLmMsIHhuLT5oYW5kbGUuZCwgDQogCSAgICAg
ICAodW5zaWduZWQgbG9uZyBsb25nKW9mZnNldCk7DQotI2VuZGlmDQogCXJl
dHVybiAtRU5PRU5UOw0KICAgICB9DQogDQpAQCAtNzIxLDEyICs3ODYsMjIg
QEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0K
IA0KICAgICAvKiBzYW5pdHkgY2hlY2sgYmVmb3JlIHdlIGxvb2sgYXQgaXQg
Ki8NCiAgICAgaWYgKHNpemUgPT0gc2l6ZW9mKCptZXNzYWdlKSAmJiBtZXNz
YWdlLT52ZXJzaW9uID09IE5OUEZTX1ZFUlNJT04pIHsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1
Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBhdGg7
DQorI2VuZGlmDQogCWludCBlcnJvcjsNCiANCiAJdWludDY0X3QgYmxvY2tz
aXplID0gbWVzc2FnZS0+YmxvY2tzaXplOw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0g
cGF0aF9sb29rdXAoIi4iLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBr
ZXJuX3BhdGgoIi4iLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJyb3Ig
PSBrZXJuX3BhdGgoIi4iLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChl
cnJvcikgew0KIAkgICAgLyoNCiAJICAgICAqIEJhZCBjYWNoZSByb290LCBq
dXN0IHJldHVybi4NCkBAIC03MzcsMTIgKzgxMiwyMyBAQCBubnBmc19tZXNz
YWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogCQkgICAibm5wZnNf
bWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBwYXRoX2xvb2t1cCwgIg0KIAkJICAg
ImVycm5vOiAlZFxuIiwgZXJyb3IpOw0KIAl9IGVsc2Ugew0KLQkgICAgbm5w
ZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQubW50KTsNCi0JICAgIG5ucGZz
cC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLmRlbnRyeSk7DQotCSAgICBwYXRoX3Jl
bGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBt
bnRnZXQobmQucGF0aC5tbnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9
IGRnZXQobmQucGF0aC5kZW50cnkpOw0KKwkgICAgcGF0aF9wdXQoJm5kLnBh
dGgpOw0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdl
dChwYXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChw
YXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlm
DQogCSAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+
ZnN1aWQ7DQogCSAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0K
KyNlbHNlDQorICAgICAgICAgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50X2Zz
dWlkKCk7DQorICAgICAgICAgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50X2Zz
Z2lkKCk7DQorI2VuZGlmDQogDQogCSAgICAvKiBYWFggd2Ugc2hvdWxkIHZh
bGlkYXRlIHRoZXNlIHZhbHVlcyAqLw0KIAkgICAgbm5wZnNfYmxvY2tzaXpl
ID0gYmxvY2tzaXplOw0KZGlmZiAtdXByTiBhcmxhLTAuOTAtb2xkL25ucGZz
L2xpbnV4L25ucGZzX25vZGUuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfbm9kZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm
c19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDAN
CisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYt
MDEtMTQgMTY6NTE6MTEuNDIwNTc4NTQ0ICswMTAwDQpAQCAtMTMyLDcgKzEz
MiwxMiBAQCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVp
bnQ2DQogCXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHgl
bGx1XG4iLA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsN
CiAjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBY
WFggcmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2so
aW5vZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwg
c2l6ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBz
aXplKTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZz
X2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0
IHRpbWVzcGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAg
ID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+
aV9naWQgICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtV
SURUX0lOSVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQo
MCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNl
bHNlDQorCXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2Rl
LT5pX2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90
aW1lOw0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcg
KzE4MywxMSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBm
c19hdHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2Rl
LT5pX2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElE
X05MSU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+
eGFfbmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54
YV9ubGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURf
U0laRShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54
YV9zaXplKTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNfcGFn
KGNvbnN0IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9k
ZV91c2VycyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0
cnVjdCBsaXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxp
c3Rfbm9kZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0K
ICAgICANCiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHBy
b3RlY3RlZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBv
cywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zv
cl9lYWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBz
dHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwg
ZF91LmRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRl
bnRyeSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXBy
TiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMg
YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMNCi0tLSBh
cmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAw
Ny0wMS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAxLTE0IDE3
OjAwOjIwLjY0MTYxMTY1NSArMDEwMA0KQEAgLTQyLDcgKzQyLDkgQEANCiAj
aW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5jbHVkZSA8
bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUu
aD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM5KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRp
Zg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgv
cHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUg
PGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisjdW5kZWYg
U1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2Jv
dW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyLCBz
ZSBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYNCisNCiAj
aWYgMA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUgPGxpbnV4
L2lvY3RsMzIuaD4NCkBAIC02NCw3ICs3MSw3IEBADQogI3VuZGVmIE5FRURf
VklDRUlPQ1RMMzINCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBu
bnBmc19zeXNjYWxscy5jLHYgMS4xMjIgMjAwNy8wMS8wMyAxNDoyNjoyNyB0
b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy5jLHYg
MS4xMjUgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsNCiAjZW5k
aWYNCiANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpubnBmc19w
cm9jZnNfZGlyOw0KQEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVmIHN0cnVj
dCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbDsN
CiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZz
X3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls
ZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxv
bmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2Zz
X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50
IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0KIHN0YXRp
YyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19mb3BzID0g
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisj
ZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9jZnNfaW9j
dGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNDcsNTMgKzE2NCw0OCBA
QCBzdGF0aWMgaW50IG5ucGZzX3NlY19yZWdpc3RlcmVkID0gMDsNCiAjZGVm
aW5lIFNFQzJQQUcocykgKG5ucGZzX3BhZ190KSh1bnNpZ25lZCBsb25nKShz
KQ0KICNkZWZpbmUgUEFHMlNFQyhwKSAodm9pZCAqKSh1bnNpZ25lZCBsb25n
KShwKQ0KIA0KLXN0YXRpYyBpbnQNCi1ubnBmc19zZWNfdGFza19hbGxvYyhz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBw
YWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCi0gICAgaWYgKHBh
ZykNCi0JcC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZyk7DQotICAgIHJldHVy
biAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3NlY190YXNrX2Zy
ZWUoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAgbm5wZnNfcGFn
X3QgcGFnID0gU0VDMlBBRyhwLT5zZWN1cml0eSk7DQotICAgIGlmIChwYWcp
DQotCXAtPnNlY3VyaXR5ID0gTlVMTDsNCi19DQotDQogc3RhdGljIG5ucGZz
X3BhZ190DQogbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+c2VjdXJp
dHkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUco
Y3VycmVudF9zZWN1cml0eSgpKTsNCisjZW5kaWYNCiAgICAgaWYgKHBhZykN
CiAJcmV0dXJuIHBhZzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQt
PnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNl
bHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1
cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIGludA0K
IG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBzdGF0aWMgbm5w
ZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQorICAg
IHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAgICBpZiAocGFn
bnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVOT01FTTsNCiAg
ICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQogICAgIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMocGFnbnVtKTsN
CisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICopIGN1cnJlbnQt
PmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0p
Ow0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0dXJuIDA7DQog
fQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBubnBm
c19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1cml0eSA9IG5u
cGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVlX3NlY3VyaXR5
ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFza19yZXBhcmVu
dF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2luaXQsDQotfTsN
Ci0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQogDQogI2lmZGVm
IEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMTgsMTIgQEAgZmluZF9wYWcoc3Ry
dWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihYREVCU1lTLCAo
ImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBzKSk7DQog
DQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAwOyBpLS0p
IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisj
ZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKwln
aWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2VuZGlmDQogCWlmICgobm5w
ZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5ucGZzX3Bh
Z190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsNCiAJICAgIE5OUEZTREVC
KFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6IEV4aXN0aW5nIHBhZyAl
dSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpAQCAtMjIyLDE1ICsyMzks
MzEgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KIHN0YXRp
YyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGN1cnJlbnQt
Pmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnQt
PnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBn
ZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBubnBmc19wYWdfdCBy
ZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBrdWlk
ID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0ga3Vp
ZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAgIGludCBpOw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQorI2VuZGlmDQogDQogICAg
IGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19O
T1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vs
c2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsgcmV0ID0g
a2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3VwX2luZm8o
Z2kpOw0KIA0KQEAgLTI0MiwxMyArMjc1LDE5IEBAIG5ucGZzX2dldF9wYWdf
Z3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVfcGFnKG5ucGZzX3Bh
Z190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZv
ICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KKyNlbHNlDQorICAg
c3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9jdXJyZW50X2dyb3Vw
cygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqbmV3X2dp
Ow0KLSAgICBpbnQgbmJsb2NrcywgY291bnQ7DQorICAgIHVuc2lnbmVkIGlu
dCBuYmxvY2tzLCBjb3VudDsNCiAgICAgaW50IGZvdW5kID0gMDsNCiAgICAg
aW50IGksIGs7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KSAgICANCiAgICAgZ2V0X2dyb3VwX2lu
Zm8ob2xkX2dpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKG9s
ZF9naSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCkBA
IC0yNzQsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFnX3QgcGFn
bnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAgICAgfQ0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3X2dpLCBp
KSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdfZ2ksIG5l
d19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQorICAgIGlm
IChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQocGFnbnVt
KTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAgZWxzZQ0K
Kwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9B
VChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsgfQ0KKyNl
bmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5ld19naSk7
DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzE3LDcgKzM2
MywxMyBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJuIG5ucGZzX2dl
dF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdTICovDQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBy
ZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBr
dWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQorI2Vu
ZGlmDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpAQCAtNDIyLDcgKzQ3
NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6ZSwgb2xk
X2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYgLyogR1JP
VVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitzdHJ1Y3Qg
bm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBkZXY7DQog
ICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAtNTA5LDE0
ICs1NjEsMjcgQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBhcmxhVmlj
ZUlvY3RsDQogICogZm9sbG93IHN5bWxpbmtzIGlmZiBgZm9sbG93Jw0KICAq
Lw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIHVzZXJfcGF0
aDJkZW50cnkgKHN0cnVjdCBuYW1laWRhdGEgKm5kLCBjaGFyICp1c2VyX3Bh
dGgsIGludCBmb2xsb3cpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRy
eSAqDQordXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IHBhdGggKnBhdGgsIGNo
YXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCisjZW5kaWYNCiB7DQotICAg
IGNoYXIgKmtuYW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAgICBpbnQg
ZXJyb3IgPSAwOw0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVzZXJfcGF0
aCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsNywwKQ0KKyAgICBjaGFyICprbmFtZTsNCisgICAga25hbWUgPSBnZXRu
YW1lKHVzZXJfcGF0aCk7DQorI2Vsc2UNCisgICAgY29uc3QgY2hhciAqa25h
bWU7DQorICAgIHN0cnVjdCBmaWxlbmFtZSAqZm5hbWU7DQorICAgIGZuYW1l
ID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyAgICBrbmFtZSA9IGZuYW1lLT5u
YW1lOw0KKyNlbmRpZg0KKw0KICAgICBpZiAoSVNfRVJSKGtuYW1lKSkNCiAJ
cmV0dXJuIEVSUl9QVFIoUFRSX0VSUihrbmFtZSkpOw0KICAgICBpZiAoZm9s
bG93KQ0KQEAgLTUyNCwxMSArNTg5LDI1IEBAIHVzZXJfcGF0aDJkZW50cnkg
KHN0cnVjdCBuYW1laWRhdGEgKm5kLA0KIA0KICAgICBOTlBGU0RFQihYREVC
TVNHLCAoIm5ucGZzX3N5c2NhbGw6IGxvb2tpbmcgdXA6ICVzXG4iLCBrbmFt
ZSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzkpDQogICAgIGVycm9yID0gcGF0aF9sb29rdXAoa25hbWUs
IGZsYWdzLCBuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBlcnJvciA9IGtlcm5fcGF0aChr
bmFtZSwgZmxhZ3MsICYobmQtPnBhdGgpKTsNCisjZWxzZQ0KKyAgICBlcnJv
ciA9IGtlcm5fcGF0aChrbmFtZSwgZmxhZ3MsIHBhdGgpOw0KKyNlbmRpZg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcs
MCkNCiAgICAgcHV0bmFtZShrbmFtZSk7DQorI2Vsc2UNCisgICAga21lbV9j
YWNoZV9mcmVlKG5hbWVzX2NhY2hlcCwgKHZvaWQgKilrbmFtZSk7DQorI2Vu
ZGlmDQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIEVSUl9QVFIoZXJyb3Ip
Ow0KLSAgICByZXR1cm4gbmQtPmRlbnRyeTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICByZXR1cm4g
bmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVybiBwYXRoLT5k
ZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9uZw0KQEAg
LTU0MCwxMiArNjE5LDI0IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9u
LA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBhcmxh
VmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9w
aW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdl
X3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0g
TlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNl
DQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogICAgIA0KKyAg
ICBtc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQor
ICAgIGlmIChtc2cgPT0gTlVMTCkNCisgICAgICByZXR1cm4gLUVOT01FTTsN
CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM5KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8q
IFRPRE86IGxvY2tfa2VybmVsKCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRk
aW5nIGFuIHByaXZhdGUgbG9jayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBG
U0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0K
IA0KQEAgLTU3NSw3ICs2NjYsNyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJh
dGlvbiwNCiAJICAgIGdvdG8gdW5sb2NrOw0KIAl9DQogCWlmICh2aWNlX2lv
Y3RsLmluX3NpemUgIT0gMCkgew0KLQkgICAgaWYoY29weV9mcm9tX3VzZXIo
Jm1zZy5tc2csDQorCSAgICBpZihjb3B5X2Zyb21fdXNlcigmbXNnLT5tc2cs
DQogCQkJICAgICAgdmljZV9pb2N0bC5pbiwNCiAJCQkgICAgICB2aWNlX2lv
Y3RsLmluX3NpemUpICE9IDApIHsNCiAJCWVycm9yID0gLUVGQVVMVDsNCkBA
IC01ODMsNyArNjc0LDExIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9u
LA0KIAkgICAgfQ0KIAl9DQogCWlmIChhX3BhdGhQICE9IE5VTEwpIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KIAkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRyeSAoJm5kLCBhX3Bh
dGhQLCBhX2ZvbGxvd1N5bWxpbmtzKTsNCisjZWxzZQ0KKwkgICAgZGVudHJ5
ID0gdXNlcl9wYXRoMmRlbnRyeSAoJnBhdGgsIGFfcGF0aFAsIGFfZm9sbG93
U3ltbGlua3MpOw0KKyNlbmRpZg0KIAkgICAgaWYgKCFkZW50cnkpIHsNCiAJ
CWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KQEAgLTYyOCwx
OSArNzIzLDIzIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkJ
ZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQogCSAgICB9DQot
CSAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCisJICAgIG1zZy0+aGFu
ZGxlID0geG4tPmhhbmRsZTsNCiAJfQ0KIA0KLQltc2cuaGVhZGVyLm9wY29k
ZSA9IE5OUEZTX01TR19QSU9DVEw7DQotCW1zZy5vcGNvZGUgPSBhX29wY29k
ZTsNCisJbXNnLT5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsN
CisJbXNnLT5vcGNvZGUgPSBhX29wY29kZTsNCiAJDQotCW1zZy5pbnNpemUg
ICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCi0JbXNnLm91dHNpemUgID0gdmlj
ZV9pb2N0bC5vdXRfc2l6ZTsNCi0JbXNnLmNyZWQudWlkID0gY3VycmVudC0+
dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorCW1z
Zy0+aW5zaXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQorCW1zZy0+b3V0
c2l6ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKwltc2ctPmNy
ZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2ct
PmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCisJbXNnLT5j
cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJDQotCWVycm9yID0gbm5w
ZnNfbWVzc2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLmhlYWRlciwgc2l6ZW9m
KG1zZykpOyAvKiBYWFggKi8NCi0JbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV93YWtldXAgKikgJm1zZzsNCisJZXJyb3IgPSBubnBmc19tZXNzYWdl
X3JwYygmbm5wZnNbMF0sICZtc2ctPmhlYWRlciwgc2l6ZW9mKCptc2cpKTsg
LyogWFhYICovDQorCW1zZzIgPSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2Fr
ZXVwICopIG1zZzsNCiAJaWYgKGVycm9yID09IDApDQogCSAgICBlcnJvciA9
IG1zZzItPmVycm9yOw0KIA0KQEAgLTY3NSwxMiArNzc0LDIxIEBAIHN5c19h
ZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICANCiAgdW5sb2NrOg0KICAg
ICBpZiAoZGVudHJ5KQ0KLQlwYXRoX3JlbGVhc2UoJm5kKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwlw
YXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJcGF0aF9wdXQoJnBhdGgp
Ow0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoIm5ucGZz
X3N5c2NhbGwgcmV0dXJucyBlcnJvcjogJWxkXG4iLCBlcnJvcikpOw0KIA0K
ICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIHVubG9j
a1xuIikpOw0KKyAgICBrZnJlZShtc2cpOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgIHVubG9ja19r
ZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBzZWUgdGhlIGNvbW1l
bnQgYXQgbG9ja19rZXJuZWwoKSBhYm92ZSAqLw0KKyNlbmRpZg0KIA0KICAg
ICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTcyOSw5ICs4MzcsMTUgQEAgc3lz
X2FmcyAoaW50IG9wZXJhdGlvbiwNCiAJCSAgICAgICBhX2ZvbGxvd1N5bWxp
bmtzKTsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2Zz
X2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxl
LA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcp
DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChz
dHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVu
c2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsNCiAgICAgYWZzcHJvY2Rh
dGEgYXJnczsNCiAgICAgbG9uZyByZXQ7DQpAQCAtNzgwLDIxICs4OTQsMzEg
QEAgc3RhdGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KIHsNCiAg
ICAgc3RydWN0IHByb2NfZGlyX2VudHJ5ICplbnRyeTsNCiAgICAgDQotICAg
IG5ucGZzX3Byb2Nmc19kaXIgPSBwcm9jX21rZGlyKE5OUEZTX1BST0NfRElS
LCBwcm9jX3Jvb3RfZnMpOw0KKyAgICBubnBmc19wcm9jZnNfZGlyID0gcHJv
Y19ta2RpcigiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQogICAgIGlm
IChubnBmc19wcm9jZnNfZGlyID09IE5VTEwpDQogCXJldHVybiAtRU5PTUVN
Ow0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDMwKQ0KICAgICBubnBmc19wcm9jZnNfZGlyLT5vd25lciA9
IFRISVNfTU9EVUxFOw0KKyNlbmRpZg0KICAgICANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRy
eSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgMDY2Niwg
bm5wZnNfcHJvY2ZzX2Rpcik7DQorI2Vsc2UNCisgICAgZW50cnkgPSBwcm9j
X2NyZWF0ZShOTlBGU19QUk9DX05PREUsIDA2NjYsIE5VTEwsICZubnBmc19w
cm9jZnNfZm9wcyk7DQorI2VuZGlmDQogICAgIGlmIChlbnRyeSA9PSBOVUxM
KSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5pdF9wcm9jZnM6
IG5vIG5vZGVcbiIpKTsNCi0JcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJP
Q19ESVIsIHByb2Nfcm9vdF9mcyk7DQorCXJlbW92ZV9wcm9jX2VudHJ5KCJm
cy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiAJcmV0dXJuIC1FTk9NRU07
DQogICAgIH0NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAgZW50cnktPm93bmVyID0gVEhJ
U19NT0RVTEU7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnktPnByb2NfZm9w
cyA9ICZubnBmc19wcm9jZnNfZm9wczsNCisjZW5kaWYNCiANCiAjaWZkZWYg
U1lTQ0FMTENPTVBBVA0KICAgICBpZiAocmVnaXN0ZXJfaW9jdGwzMl9jb252
ZXJzaW9uKEFSTEFfVklPQ19TWVNDQUxMMzIsIG5ucGZzX3Byb2Nmc19pb2N0
bDMyKSkgew0KQEAgLTgxNSw3ICs5MzksNyBAQCBzdGF0aWMgdm9pZCBubnBm
c19leGl0X3Byb2Nmcyh2b2lkKQ0KICAgICB9DQogI2VuZGlmIC8qIFNZU0NB
TExDT01QQVQgKi8NCiAgICAgcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJP
Q19OT0RFLCBubnBmc19wcm9jZnNfZGlyKTsNCi0gICAgcmVtb3ZlX3Byb2Nf
ZW50cnkoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIHJl
bW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsN
CiB9DQogDQogI2lmZGVmIEdST1VQUEFHUw0KQEAgLTgzOSwxNCArOTYzLDYg
QEAgaW5zdGFsbF9zZXRncm91cHModm9pZCkNCiB2b2lkDQogaW5zdGFsbF9h
ZnNfc3lzY2FsbCh2b2lkKQ0KIHsNCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZ
DQotICAgIGlmIChyZWdpc3Rlcl9zZWN1cml0eSgmbm5wZnNfc2VjX29wcykp
DQotCU5OUEZTREVCKFhERUJTWVMsDQotCQkgKCJpbnN0YWxsX2Fmc19zeXNj
YWxsOiBubnBmc19pbml0X3NlYyBmYWlsZWRcbiIpKTsNCi0gICAgZWxzZQ0K
LQlubnBmc19zZWNfcmVnaXN0ZXJlZCA9IDE7DQotI2VuZGlmDQotDQogICAg
IG5ucGZzX2luaXRfcHJvY2ZzKCk7DQogDQogI2lmZGVmIFNZU0NBTExIQUNL
DQpAQCAtODg3LDEyICsxMDAzLDYgQEAgcmVzdG9yZV9hZnNfc3lzY2FsbCAo
dm9pZCkNCiAjZW5kaWYNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAN
Ci0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQotICAgIGlmIChubnBmc19zZWNf
cmVnaXN0ZXJlZCkNCi0JaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZz
X3NlY19vcHMpKQ0KLQkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIm5ucGZzX2V4
aXRfc2VjOiBjb3VsZG4ndCB1bnJlZ2lzdGVyXG4iKTsNCi0jZW5kaWYgLyog
IUNPTkZJR19TRUNVUklUWSAqLw0KLQ0KICNpZmRlZiBHUk9VUFBBR1MNCiAj
aWZkZWYgU1lTQ0FMTEhBQ0sNCiAgICAgaWYgKG9sZF9zZXRncm91cHMpIHsN
CmRpZmYgLXVwck4gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19z
eXNjYWxscy1sb3NzYWdlLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz
X3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv
bGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMDYtMTItMTEgMTc6
MzE6NDUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xp
bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDE2LTAxLTEzIDIxOjUx
OjQ5LjY4MjQ1NzIxMyArMDEwMA0KQEAgLTQ3LDExICs0NywyMCBAQA0KICNp
bmNsdWRlIDxsaW51eC91bmlzdGQuaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1S
Q1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE3IDIw
MDYvMTIvMTEgMTY6MzE6NDUgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDog
bm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4IDIw
OjQzOjA1IHRvbCBFeHAgJCIpOw0KKyNlbmRpZg0KKw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyogdGhl
IG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBv
biBrZXJuZWwgMy43IGFuZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxMSEFD
Sw0KICNlbmRpZg0KIA0KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPg0K
KyNpZmRlZiBTWVNDQUxMSEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93ZXJf
Ym91bmQgPSAma2VybmVsX3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYNCiAN
CiB2b2lkICogX19hdHRyaWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3RhYmxl
KHZvaWQpOw0KIG5ucGZzX3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19zeXNf
Y2FsbF90YWJsZSA9DQpAQCAtNjMsNiArNzIsMTEgQEAgY29uc3QgY2hhciAq
IF9fYXR0cmlidXRlX18oKHdlYWspKQ0KIAkJICAgIHVuc2lnbmVkIGxvbmcg
Km9mZnNldCwNCiAJCSAgICBjaGFyICoqbW9kbmFtZSwgY2hhciAqbmFtZWJ1
Zik7DQogDQorI2lmZGVmIF9feDg2XzY0X18NCitleHRlcm4gcndsb2NrX3Qg
dGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7DQorI2VuZGlm
DQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQogc3RhdGljIHZvaWQgKioNCiBn
ZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18NCkBA
IC03MSw2ICs4NSw3IEBAIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAgICAg
cmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2NrOw0KICNlbmRpZg0KIH0NCisj
ZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGludCANCiBrYWxsc3ltX2lzX2Vx
dWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29uc3QgY2hhciAqbmFtZSkNCkBA
IC0xMzksNiArMTU0LDggQEAgdmVyaWZ5KHZvaWQgKipwKSB7DQogICAgIHJl
dHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0
aWMgaW5saW5lIGludCBsb29rc19nb29kKHZvaWQgKipwKQ0KIHsNCiAgICAg
aWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3VuZCB8fCAqcCA+PSAodm9pZCop
cCkNCkBAIC0xODgsMyArMjA1LDUgQEAgbm5wZnNfZml4dXBfc3lzY2FsbF9s
b3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVybiAwOw0KIH0NCisNCisjZW5k
aWYNCmRpZmYgLXVwck4gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm
c192ZnNvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfdmZzb3Bz
LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29w
cy5jCTIwMDYtMTItMTEgMTc6NDM6MzUuMDAwMDAwMDAwICswMTAwDQorKysg
YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMTYtMDEt
MTQgMTc6MTM6MTguMjYzNjU4NTM2ICswMTAwDQpAQCAtNDQsMzAgKzQ0LDI2
IEBADQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQogDQogI2lmZGVmIFJDU0lE
DQotUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjEwOSAyMDA2LzEy
LzExIDE2OjQzOjM1IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZz
X3Zmc29wcy5jLHYgMS4xMTEgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhw
ICQiKTsNCiAjZW5kaWYNCiANCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZT
XTsNCiANCi1zdGF0aWMgdm9pZCBubnBmc19yZWFkX2lub2RlKHN0cnVjdCBp
bm9kZSAqaW5vZGUpOw0KIHN0YXRpYyB2b2lkIG5ucGZzX3B1dF9zdXBlcihz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCi1zdGF0aWMgdm9pZCBubnBmc19w
dXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2
b2lkIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNi
KTsNCisjZW5kaWYNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF
Uk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50IG5ucGZzX3N0YXRm
cyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYp
Ow0KLSNlbHNlDQotc3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IHN1
cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2VuZGlm
DQogDQogc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3Nv
cHMgPSB7IA0KLSAgICByZWFkX2lub2RlCQk6IG5ucGZzX3JlYWRfaW5vZGUs
DQotICAgIHB1dF9pbm9kZQkJOiBubnBmc19wdXRfaW5vZGUsDQogICAgIGFs
bG9jX2lub2RlCQk6IG5ucGZzX25vZGVfYWxsb2MsDQogICAgIGRlc3Ryb3lf
aW5vZGUJOiBubnBmc19ub2RlX2ZyZWUsDQogICAgIGRyb3BfaW5vZGUJCTog
Z2VuZXJpY19kZWxldGVfaW5vZGUsDQogICAgIHB1dF9zdXBlcgkJOiBubnBm
c19wdXRfc3VwZXIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNiwwKQ0KICAgICB3cml0ZV9zdXBlcgkJOiBubnBmc193
cml0ZV9zdXBlciwNCisjZW5kaWYNCiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0
YXRmcywNCiB9Ow0KIA0KQEAgLTk0LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNo
X3Jvb3Qoc3RydWN0IGlub2RlICppKQ0KIAkgKiByb290J3MgcHJpdmlsaWdl
cyAodXN1YWxseSBub25lLCBhbmQgbm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8N
CiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTQsMCkNCiAJbXNnLmNyZWQudWlkID0gMDsNCisjZWxzZQ0KKwltc2cu
Y3JlZC51aWQgPSBLVUlEVF9JTklUKDApOw0KKyNlbmRpZg0KIAltc2cuY3Jl
ZC5wYWcgPSAwOw0KIAkNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhu
bnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtMTI5LDgg
KzEyOSwxMyBAQCBtYWtlX3Jvb3RfaW5vZGUoc3RydWN0IG5ucGZzICpubnBm
c3ApDQogICAgIFhBX1NFVF9NT0RFKCZub2RlLmF0dHIsIFNfSUZESVIgfCAw
Nzc3KTsNCiAgICAgWEFfU0VUX05MSU5LKCZub2RlLmF0dHIsIDEwMCk7DQog
ICAgIFhBX1NFVF9TSVpFKCZub2RlLmF0dHIsIDApOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIFhB
X1NFVF9VSUQoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9HSUQoJm5v
ZGUuYXR0ciwgMCk7DQorI2Vsc2UNCisgICAgWEFfU0VUX1VJRCgmbm9kZS5h
dHRyLCBLVUlEVF9JTklUKDApKTsNCisgICAgWEFfU0VUX0dJRCgmbm9kZS5h
dHRyLCBLR0lEVF9JTklUKDApKTsNCisjZW5kaWYNCiAgICAgWEFfU0VUX0FU
SU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfTVRJTUUoJm5vZGUu
YXR0ciwgMCk7DQogICAgIFhBX1NFVF9DVElNRSgmbm9kZS5hdHRyLCAwKTsN
CkBAIC0xNTksNyArMTY0LDExIEBAIG1ha2Vfcm9vdCAoc3RydWN0IHN1cGVy
X2Jsb2NrICpzYikNCiAgICAgbm5wZnMtPnJvb3QgPSBpbm9kZTsNCiANCiAg
ICAgLyogWFhYIGVycm9yIGhhbmRsaW5nICovDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNCwwKQ0KICAgICBkcCA9IGRf
YWxsb2Nfcm9vdChpbm9kZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vf
cm9vdChpbm9kZSk7DQorI2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7
DQogICAgIHNiLT5zX3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAt
MTgzLDEzICsxOTIsMjcgQEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1
cGVyX2Jsb2NrICogcw0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5w
ZnNfcmVhZF9zdXBlcjogYmVnaW4gc2V0dGluZyB2YXJpYWJsZXNcbiIpKTsN
CiANCiAgICAgaWYgKGRhdGEgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBu
YW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisj
ZW5kaWYNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAw
LCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwg
Jm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEs
IDAsICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRl
diA9IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQotCSAgICBkZGV2ID0gbmQu
ZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQorCSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQor
I2Vsc2UNCisJICAgIGRkZXYgPSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiAN
CiAJaWYgKCFJU19FUlIoZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0g
TUlOT1IoZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsNCkBAIC0yMzMsNyArMjU2
LDcgQEAgbm5wZnNfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpz
Yg0KICAgICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBu
bnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUs
DQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCkBA
IC0yNDIsMTkgKzI2NSwyMiBAQCBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgKmZzDQogICAgIHJldHVybiBnZXRfc2Jfbm9kZXYoZnNf
dHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIsIG1udCk7DQog
fQ0KICNlbHNlDQotc3RydWN0IHN1cGVyX2Jsb2NrICoNCi1ubnBmc19nZXRf
c2IgKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KLQkgICAg
ICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRh
KSANCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxl
X3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29u
c3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSkgDQogew0K
LSAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRh
LCBubnBmc19maWxsX3N1cGVyKTsNCisgICAgcmV0dXJuIG1vdW50X25vZGV2
KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCiB9
DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVf
c3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+
c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMg
dGhpcyBnb29kPyANCkBAIC0yNzMsNzMgKzI5OSw2IEBAIG5ucGZzX3B1dF9z
dXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihY
REVCVkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9
DQogDQotc3RhdGljIHZvaWQNCi1ubnBmc19yZWFkX2lub2RlKHN0cnVjdCBp
bm9kZSAqaW5vZGUpDQotew0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJu
bnBmc19yZWFkX2lub2RlIHN0YXJ0aW5nIGlub2RlOiAlcFxuIixpbm9kZSkp
Ow0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2Rl
IGlub2RlLT5pX2lubzogJWxkXG4iLGlub2RlLT5pX2lubykpOw0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQot
ICAgIGlub2RlLT5pX2Jsa3NpemUgPSAxMDI0Ow0KLSNlbmRpZg0KLSAgICBp
bm9kZS0+aV9tb2RlID0gMDsNCi0gICAgaW5vZGUtPmlfb3AgPSBOVUxMOw0K
LSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGV4
aXRpbmdcbiIpKTsNCi19DQotIA0KLS8qDQotICogQ2FsbGVkIHdoZW4gYGlu
b2RlJyBpcyBkZS1yZWZlcmVuY2VkLCBpZSB3aGVuIGlwdXQgaXMgY2FsbGVk
Lg0KLSAqLw0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfcHV0X2lub2RlKHN0
cnVjdCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQotICAgIHN0cnVjdCBu
bnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShpbm9kZSk7DQotICAg
IGludCBiYWQ7DQotDQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZz
X3B1dF9pbm9kZTogaW5vZGU6ICVwIGNvdW50OiAlZCBhbGlhc2VzOiIsDQot
CQkJaW5vZGUsIG5ucGZzX2ljb3VudChpbm9kZSkpKTsNCi0gICAgbm5wZnNf
cHJpbnRfYWxpYXNlcyhpbm9kZSk7DQotICAgIA0KLSAgICBkb3duKCZubnBm
c3AtPmluYWN0aXZlX3NlbSk7DQotDQotICAgIGlmICgobm5wZnNwLT5zdGF0
dXMgJiBOTlBGU19ERVZPUEVOKSA9PSAwKSB7DQotCWlmICghaXNfYmFkX2lu
b2RlKGlub2RlKSkgew0KLQkgICAgaWYgKGlub2RlICE9IG5ucGZzcC0+cm9v
dCkgew0KLQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOw0KLQkJbm5wZnNfaXJl
bGUoaW5vZGUpOyAvKiBzZWUgbm5wZnNfbm9kZV9hZGQoKSAqLw0KLQkgICAg
fQ0KLQkgICAgeG4tPmZsYWdzIHw9IE5OUEZTX1NUQUxFOw0KLQl9DQotCWJh
ZCA9IDE7IC8qIG9yIHJvb3QsIHJlYWxseSAqLw0KLSAgICB9IGVsc2Ugew0K
LQliYWQgPSBpc19iYWRfaW5vZGUoaW5vZGUpOw0KLSAgICB9DQotDQotICAg
IGlmICh4bi0+ZmxhZ3MgJiBOTlBGU19TVEFMRSAmJiAhbm5wZnNfbm9kZV91
c2Vycyhpbm9kZSkpIHsNCi0JeG4tPmZsYWdzIHw9IE5OUEZTX05PREVfSVBV
VDsgLyogWFhYIGxvY2tpbmcgKi8NCi0gIAlubnBmc19mb3JjZV9pbnZhbGlk
X25vZGUoeG4pOw0KLQl4bi0+ZmxhZ3MgJj0gfk5OUEZTX05PREVfSVBVVDsN
Ci0gICAgfQ0KLSAgICANCi0gICAgaWYgKGJhZCkgew0KLQlpZiAobm5wZnNf
aWNvdW50KGlub2RlKSA9PSAxKQ0KLQkgICAgbm5wZnNfbm9kZV9jbGVhcih4
bik7DQotICAgIH0gZWxzZSBpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAy
KSB7DQotCS8qIA0KLQkgKiBUaGUgbGFzdCBleHRlcm5hbCByZWZlcmVuY2Ug
aXMgYmVpbmcgZHJvcHBlZCwgb25seSB0aGUgb25lDQotCSAqIGZyb20gbm5w
ZnNfbm9kZV9hZGQoKSBpcyBsZWZ0LiBUaW1lIHRvIGxldCBkYWVtb24gcmVs
ZWFzZQ0KLQkgKiB0aGlzIG5vZGUgcHJvcGVybHkuDQotCSAqLw0KLQlpZiAo
KHhuLT5mbGFncyAmIE5OUEZTX0xJTUJPKSA9PSAwKSB7DQotCSAgICBubnBm
c19ub2RlX2NsZWFyKHhuKTsNCi0JICAgIG5ucGZzX3F1ZXVlX2luYWN0aXZl
KHhuKTsNCi0JfQ0KLSAgICB9DQotDQotICAgIHVwKCZubnBmc3AtPmluYWN0
aXZlX3NlbSk7DQotfQ0KLQ0KIHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNf
aW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpi
dWYpDQogew0KQEAgLTM1MiwyNSArMzExLDIxIEBAIG5ucGZzX3N0YXRmc19p
bnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWls
ICA9IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxlcyAgID0gMTAy
NCoxMDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsN
CisgICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lk
LnZhbFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsN
CisgICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBd
ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9z
cGFyZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisgICAg
dG1wLmZfc3BhcmVbNF0gPSAwOw0KICAgICAqYnVmID0gdG1wOw0KICAgICBy
ZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGljIGludA0KIG5ucGZz
X3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZz
ICpidWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50
cnktPmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGlu
dA0KLW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1
Y3Qga3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRm
c19pbnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0K
---276651502-1863843585-1453468926=:9412
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-1863843585-1453468926=:9412--