[5060] in arla-drinkers
Re: PATCH: Arla CVS Current on Linux 2.6.34 to 4.4
daemon@ATHENA.MIT.EDU (Bo Branten)
Thu Jan 14 21:13:58 2016
From arla-drinkers-bounces@stacken.kth.se Fri Jan 15 02:13:58 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 8391 invoked from network); 15 Jan 2016 02:13:57 -0000
Received: from mx6.kth.se (130.237.48.70)
by charon.mit.edu with SMTP; 15 Jan 2016 02:13:57 -0000
Received: from mx6.kth.se (localhost [127.0.0.1])
by mx6.kth.se (Postfix) with ESMTP id 2CF261C010D;
Fri, 15 Jan 2016 03:13:57 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx6.kth.se ([127.0.0.1])
by mx6.kth.se (mx6.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id TgoDRK5Li9yF; Fri, 15 Jan 2016 03:13:53 +0100 (CET)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
by mx6.kth.se (Postfix) with ESMTP;
Fri, 15 Jan 2016 03:13:53 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id 9172A14CA9E;
Fri, 15 Jan 2016 03:13:53 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id 1617214CADC; Fri, 15 Jan 2016 03:13:52 +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 113EB14CAD8
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:13:52 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
by mx5.kth.se (Postfix) with ESMTP id 0A9EF2400A3
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:13:52 +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]:43839
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 hGzWIdg1tmAG for <arla-drinkers@stacken.kth.se>;
Fri, 15 Jan 2016 03:13:50 +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, 15 Jan 2016 03:13:50 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id AC2E085F
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:13:49 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [130.239.18.162])
by mail.acc.umu.se (Postfix) with ESMTP id 01E6185E
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:13:45 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id E1D9C44B8C; Fri, 15 Jan 2016 03:13:44 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id DF21344B8B
for <arla-drinkers@stacken.kth.se>; Fri, 15 Jan 2016 03:13:44 +0100 (CET)
Date: Fri, 15 Jan 2016 03:13:44 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH: Arla CVS Current on Linux 2.6.34 to 4.4
In-Reply-To: <alpine.DEB.2.10.1601110319280.18025@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601150312080.11672@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110319280.18025@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
BOUNDARY="-276651502-387345283-1452824024=:11672"
X-BeenThere: arla-drinkers@stacken.kth.se
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Arla discussions <arla-drinkers.stacken.kth.se>
List-Unsubscribe: <https://lists.stacken.kth.se/mailman/options/arla-drinkers>,
<mailto:arla-drinkers-request@stacken.kth.se?subject=unsubscribe>
List-Archive: <http://lists.stacken.kth.se/pipermail/arla-drinkers/>
List-Post: <mailto:arla-drinkers@stacken.kth.se>
List-Help: <mailto:arla-drinkers-request@stacken.kth.se?subject=help>
List-Subscribe: <https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers>,
<mailto:arla-drinkers-request@stacken.kth.se?subject=subscribe>
Errors-To: arla-drinkers-bounces@stacken.kth.se
Sender: "Arla-drinkers" <arla-drinkers-bounces@stacken.kth.se>
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
---276651502-387345283-1452824024=:11672
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH: Arla CVS Current on Linux 2.6.34 to 4.4
The latest patch to keep nnpfs uptodate with the Linux kernel.
Bo Branten
---276651502-387345283-1452824024=:11672
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-cvs-for-linux-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601150313440.11672@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-arla-cvs-for-linux-4.4
ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS1mb3ItbGludXgtNC40L25ucGZz
L2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5oDQotLS0gYXJsYS1jdnMvbm5w
ZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODoz
MzozMC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQv
bm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0xMiAx
OToyOTo1MC41MjIwNzIwODQgKzAxMDANCkBAIC0xMTMsOCArMTEzLDEzIEBA
IHN0cnVjdCBubnBmc19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5r
Ow0KICAgICB1aW50MzJfdAkJeGFfdHlwZTsNCiANCisjaWYgKGRlZmluZWQo
X19LRVJORUxfXykgJiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W
RVJTSU9OKDMsMTQsMCkpDQorICAgIGt1aWRfdAkJeGFfdWlkOw0KKyAgICBr
Z2lkX3QJCXhhX2dpZDsNCisjZWxzZQ0KICAgICB1aW50MzJfdAkJeGFfdWlk
Ow0KICAgICB1aW50MzJfdAkJeGFfZ2lkOw0KKyNlbmRpZg0KIA0KICAgICB1
aW50MzJfdAkJeGFfYXRpbWU7DQogICAgIHVpbnQzMl90CQl4YV9tdGltZTsN
CmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oIGFybGEtZm9yLWxpbnV4LTQuNC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaA0KLS0tIGFybGEt
Y3ZzL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDkt
MDItMjQgMjE6MjA6NTUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3It
bGludXgtNC40L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5o
CTIwMTYtMDEtMTQgMDA6MjY6MDQuMTI2MDE1MTM2ICswMTAwDQpAQCAtNTIs
NyArNTIsMTEgQEAgdHlwZWRlZiB1aW50MTZfdCBubnBmc19yaWdodHM7DQog
ICogVGhlIG5ucGZzX2NyZWQsIGlmIHBhZyA9PSAwLCB1c2UgdWlkIA0KICAq
Lw0KIHR5cGVkZWYgc3RydWN0IG5ucGZzX2NyZWQgew0KKyNpZiAoZGVmaW5l
ZChfX0tFUk5FTF9fKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMywxNCwwKSkNCisgICAga3VpZF90IHVpZDsNCisjZWxzZQ0K
ICAgICB1aW50MzJfdCB1aWQ7DQorI2VuZGlmDQogICAgIG5ucGZzX3BhZ190
IHBhZzsNCiB9IG5ucGZzX2NyZWQ7DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZm
LnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oIGFy
bGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5o
DQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAky
MDA2LTEwLTI0IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEt
Zm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oCTIw
MTYtMDEtMTMgMjI6NTc6MDYuMzg3NjkzMzM5ICswMTAwDQpAQCAtODQsOCAr
ODQsMTMgQEAgc3RydWN0IG5ucGZzIHsNCiAgICAgc3RydWN0IHZmc21vdW50
ICpjYWNoZXJvb3Q7IC8qIHNpbXBsaWZ5IG9wZW4gb2YgY2FjaGUgYmxvY2tz
ICovDQogICAgIHN0cnVjdCBkZW50cnkgKmNhY2hlZGlyOw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQog
ICAgIHVpZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVu
dGl0eSAqLw0KICAgICBnaWRfdCBnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90
IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0eSAqLw0K
KyAgICBrZ2lkX3QgZ2lkOw0KKyNlbmRpZg0KIA0KICAgICBzdHJ1Y3Qgew0K
IAlpbnQgcmVjdXJzZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEt
Y3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxhLWZvci1s
aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oDQotLS0g
YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oCTIwMTAt
MDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3It
bGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDE2
LTAxLTEzIDIzOjAxOjEwLjE3ODcwODAzNyArMDEwMA0KQEAgLTUxLDcgKzUx
LDkgQEANCiAjaW5jbHVkZSA8bGludXgvc3RhdC5oPg0KICNpbmNsdWRlIDxs
aW51eC9zdHJpbmcuaD4NCiAjaW5jbHVkZSA8bGludXgvbmFtZWkuaD4NCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNp
bmNsdWRlIDxsaW51eC93YWl0Lmg+DQogDQogLyoNCkBAIC0xMzgsMTAgKzE0
MCwxNyBAQCB0eXBlZGVmIF9fdTMyICB1aW50MzJfdDsNCiBpbnQNCiBubnBm
c19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSk7DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQN
CiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5
cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwN
CiAJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCk7DQor
I2Vsc2UNCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBm
aWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywg
Y29uc3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSk7DQor
I2VuZGlmDQogDQogZXh0ZXJuIHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyBu
bnBmc19kZW50cnlfb3BlcmF0aW9uczsNCiANCkBAIC0xOTQsMTAgKzIwMywy
MSBAQCBubnBmc19pd3JpdGVjb3VudCAoc3RydWN0IGlub2RlICppbm9kZSkN
CiAgKiBIZWxwIGZ1bmN0aW9uIHRvIHJlYWQgdGhlIGRlbnRyeS0+ZF9jb3Vu
dCBhIHBvcnRhYmxlIHdheQ0KICAqLw0KIA0KKy8qI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkqLw0KIHN0YXRpYyBp
bmxpbmUgaW50DQogbm5wZnNfZGNvdW50IChjb25zdCBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkpDQorLyojZWxzZQ0KK3N0YXRpYyBpbmxpbmUgaW50DQorbm5w
ZnNfZGNvdW50IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmKi8N
CiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRf
Y291bnQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTEsMCkNCisgICAgcmV0dXJuIGF0b21pY19yZWFkKChjb25z
dCBhdG9taWNfdCopJmRlbnRyeS0+ZF9jb3VudCk7DQorI2Vsc2UNCisgICAg
cmV0dXJuIGRfY291bnQoZGVudHJ5KTs7DQorI2VuZGlmDQogfQ0KIA0KIGV4
dGVybiANCkBAIC0yMjksNyArMjQ5LDEyIEBAIG5ucGZzX2ZpeHVwX3N5c2Nh
bGxfbG9zc2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5lIG5ucGZz
X2Rldl90IGRldl90DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAjZGVmaW5lIG5ucGZzX2RfZW50cnlf
dW5oYXNoZWQoZCkgaGxpc3RfdW5oYXNoZWQoZCkNCisjZWxzZQ0KKyNkZWZp
bmUgbm5wZnNfZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF9ibF91bmhhc2hl
ZChkKQ0KKyNlbmRpZg0KIA0KICNkZWZpbmUgTk5QRlNfTk9PUCAgICAgIHdo
aWxlKDApe30NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3Zz
L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jIGFybGEtZm9yLWxpbnV4LTQu
NC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0KLS0tIGFybGEtY3ZzL25u
cGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQu
MDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtNC40L25ucGZz
L2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTYtMDEtMTQgMDE6MDE6MTkuODA3
MTQyNjg1ICswMTAwDQpAQCAtNDMsNiArNDMsMzYgQEANCiAjaW5jbHVkZSA8
bGludXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIs
MCkNCisvKiBUT0RPOiBpbXBsZW1lbnQgYSByZXBsYWNlbWVudCBmb3IgdmZz
X3BhdGhfbG9va3VwIG9uIGtlcm5lbCAzLjEyIGFuZCBsYXRlciAqLw0KKy8q
Kg0KKyAqIHZmc19wYXRoX2xvb2t1cCAtIGxvb2t1cCBhIGZpbGUgcGF0aCBy
ZWxhdGl2ZSB0byBhIGRlbnRyeS12ZnNtb3VudCBwYWlyDQorICogQGRlbnRy
eTogIHBvaW50ZXIgdG8gZGVudHJ5IG9mIHRoZSBiYXNlIGRpcmVjdG9yeQ0K
KyAqIEBtbnQ6IHBvaW50ZXIgdG8gdmZzIG1vdW50IG9mIHRoZSBiYXNlIGRp
cmVjdG9yeQ0KKyAqIEBuYW1lOiBwb2ludGVyIHRvIGZpbGUgbmFtZQ0KKyAq
IEBmbGFnczogbG9va3VwIGZsYWdzDQorICogQHBhdGg6IHBvaW50ZXIgdG8g
c3RydWN0IHBhdGggdG8gZmlsbA0KKyAqLw0KK2ludCBubnBmc19wYXRoX2xv
b2t1cChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCB2ZnNtb3VudCAq
bW50LA0KKwkJICAgIGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBm
bGFncywNCisJCSAgICBzdHJ1Y3QgcGF0aCAqcGF0aCkNCit7DQorI2lmIDAN
CisJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisJaW50IGVycjsNCisJbmQucm9v
dC5kZW50cnkgPSBkZW50cnk7DQorCW5kLnJvb3QubW50ID0gbW50Ow0KKwlC
VUdfT04oZmxhZ3MgJiBMT09LVVBfUEFSRU5UKTsNCisJLyogdGhlIGZpcnN0
IGFyZ3VtZW50IG9mIGRvX3BhdGhfbG9va3VwKCkgaXMgaWdub3JlZCB3aXRo
IExPT0tVUF9ST09UICovDQorCWVyciA9IGRvX3BhdGhfbG9va3VwKEFUX0ZE
Q1dELCBuYW1lLCBmbGFncyB8IExPT0tVUF9ST09ULCAmbmQpOw0KKwlpZiAo
IWVycikNCisJCSpwYXRoID0gbmQucGF0aDsNCisJcmV0dXJuIGVycjsNCisj
ZW5kaWYNCisJcmV0dXJuIC0xOw0KK30NCisjZW5kaWYNCisNCiAvKg0KICAq
IHJldHVybiB0cnVlIGlmIGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAt
MjkwLDcgKzMyMCwxMyBAQCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5u
cGZzX25vZGUgKm5vDQogICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFw
cGluZy0+aG9zdDsNCiANCiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlf
bXV0ZXgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDgsMCkNCiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwg
bm5wZnNfYmxvY2tzaXplKTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9u
ZXdzaXplX29rKGJhY2tub2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBp
ZighcmV0KQ0KKyAgICAgICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwg
bm5wZnNfYmxvY2tzaXplKTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2Nr
KCZiYWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3Nl
KGJhY2tmaWxlLCBOVUxMKTsNCkBAIC0zMTgsMTUgKzM1NCwyNyBAQCBubnBm
c19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIHN0
cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2RlKTsN
CiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKG5v
ZGUpOw0KICAgICBpbnQgZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBz
dHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90IHNh
dmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAga3Vp
ZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRpZg0K
ICAgICBpbnQgcmV0Ow0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS
TkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAq
b2xkX2NyZWQ7DQogICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0K
ICNlbmRpZg0KIA0KKyAgICAodm9pZClzYXZldWlkOw0KKyAgICAodm9pZClz
YXZlZ2lkOw0KKw0KICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19P
TihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCiANCkBAIC0z
NjYsMTAgKzQxNCwyNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm
c19ub2RlICpub2RlDQogICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMo
b3ZlcnJpZGVfY3JlZCk7DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KICAgICByZXQgPSB2
ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNo
ZXJvb3QsDQogCQkJICBjYWNoZW5hbWUsDQogCQkJICBmbGFncyAmIE9fQ1JF
QVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCiAJCQkgICZuZCk7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0K
KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg
bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm
bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu
ZC5wYXRoKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQorICAgIHJldCA9IG5ucGZzX3BhdGhfbG9va3Vw
KG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAg
Y2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BB
UkVOVCA6IDAsDQorCQkJICAmbmQucGF0aCk7DQorI2Vsc2UNCisgICAgcmV0
ID0gbm5wZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNw
LT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAm
IE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZwYXRoKTsN
CisjZW5kaWYNCiAgICAgaWYgKHJldCkgew0KIAl1aW50MzJfdCBubWFza3Mg
PSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCkBAIC0z
OTYsMTYgKzQ2MSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm
c19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFU
KSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8
U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9v
a3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCS8qIFRPRE86IGNoZWNr
IHRoZSBjYWxsIHRvIGtlcm5fcGF0aF9jcmVhdGUoKSwgaXMgdGhlIHNlY29u
ZCBhcmd1bWVudCBvcHRpb25hbD8gKi8NCisJc3RydWN0IGRlbnRyeSAqZGVu
dHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVMTCwgJm5kLnBh
dGgsIDApOwkNCisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0
byBrZXJuX3BhdGhfY3JlYXRlKCksIGlzIHRoZSBzZWNvbmQgYXJndW1lbnQg
b3B0aW9uYWw/ICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5f
cGF0aF9jcmVhdGUoQVRfRkRDV0QsIE5VTEwsICZwYXRoLCAwKTsJDQorI2Vu
ZGlmDQogCWlmIChJU19FUlIoZGVudHJ5KSkgew0KIAkgICAgcmV0ID0gUFRS
X0VSUihkZW50cnkpOw0KIAl9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJICAgIHJldCA9IHZm
c19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19J
UlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIC8qIFRPRE86IHNo
b3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29sIHdh
bnRfZXhjbCwgYmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2NyZWF0
ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNf
SVdVU1IsIDApOw0KKyNlbHNlDQorCSAgICAvKiBUT0RPOiBzaG91bGQgdGhl
IGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4Y2ws
IGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0aC5k
ZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAwKTsN
CisjZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CW11dGV4X3VubG9jaygmbmQucGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0
ZXgpOw0KIAlwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhf
dW5sb2NrKCZwYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBh
dGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkg
ICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVk
OiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MjEsMTQgKzUwNywy
MyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl
DQogICAgIH0gZWxzZSB7DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOSkNCiAJc3RydWN0IGZpbGUgKmYgPSBkZW50
cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzKTsN
Ci0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KICAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50
cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzLCBj
dXJyZW50X2NyZWQoKSk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwlzdHJ1Y3QgcGF0aCB0bXBfcGF0
aCA9IHsgLm1udCA9IG5kLnBhdGgubW50LCAuZGVudHJ5ID0gbmQucGF0aC5k
ZW50cnkgfTsNCisgICAgICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29w
ZW4oJnRtcF9wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNl
DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRo
LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAoSVNf
RVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJp
bnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIs
IGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkg
ICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkg
ICAgKmZpbGUgPSBmOw0KIAl9DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBh
cmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBhcmxhLWZvci1s
aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxh
LWN2cy9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3
OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQu
NC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1
OjAwLjM0NzQ0NzY1NyArMDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5u
cGZzX3ByaW50X2FsaWFzZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lk
DQogbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9k
ZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxp
YXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisj
ZW5kaWYNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQg
YmFpbG91dCA9IDEwMDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlf
ZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlf
ZGVudHJ5KSB7DQogCWlmICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYg
KzEzNiwyNiBAQCBubnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3Ry
dWN0IGluDQogCX0NCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0K
KyNlbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks
IGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9k
ZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFj
aF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFz
KSB7DQorI2VuZGlmDQorCWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBw
cmludGsoIiAuLi4iKTsNCisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50
cnkpIHsNCisJICAgIHByaW50aygiICUuKnMoJXApIiwgKGludClkZW50cnkt
PmRfbmFtZS5sZW4sDQorCQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50
cnkpOw0KKwkgICAgaWYgKG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRy
eS0+ZF9oYXNoKSkNCisJCXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQor
ICAgIH0NCisjZW5kaWYNCiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBA
IC0xNDYsNyArMTcxLDExIEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0
IHN0cnVjdCBkZW50cnkNCiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRl
bnRyeS0+ZF9zdWJkaXJzKSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9
IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0
X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNl
bHNlDQorCXN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAs
IHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmlu
dGsoIiAlLipzKCVwKSIsIChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAg
ICAgICBjaGlsZC0+ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4g
LVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5j
IGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0K
LS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAt
MjQgMTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGlu
dXgtNC40L25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEtMTQgMTY6
Mjg6MTkuMjUwNDk1ODIwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5IEBAIG5u
cGZzX2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMNCiAgICAg
Tk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3Rh
cnRpbmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihubnBmcy0+
c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZzLT5zYik7
DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJm
cmVlX2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAgLTM3NCw3
ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2RlICogaW5v
ZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVhZChzdHJ1
Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZf
dCAqcHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmls
ZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBu
bnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl
LT5pX3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNw
ID0gJm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbGlu
ayAqZmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7DQpAQCAt
NDM5LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAq
ZmlsZSwgY29uc3QNCiANCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBm
c19kZXZ3cml0ZVxuIikpOw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBkZXYgPSBmaWxl
LT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KLSAgICBubnBmc3AgPSAm
bm5wZnNbTUlOT1IoZGV2KV07DQorI2Vsc2UNCisgICAgZGV2ID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KKyAg
ICAgbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KIA0KICAgICBkb3du
KCZubnBmc3AtPmNoYW5uZWxfc2VtKTsNCiAgICAgaWYgKG5ucGZzcC0+c3Rh
dHVzICYgTk5QRlNfREVWV1JJVEUpIHsNCkBAIC01MDUsMTkgKzUxNSwzNyBA
QCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QNCiAv
Kg0KICAqIE5vdCB1c2VkLg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5u
cGZzX2RldmlvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl
ICpmaWxlLA0KIAkgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQg
bG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9j
a2VkX2RldmlvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5z
aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzYpDQogICAgIE5OUEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9j
dGwgZGV2ID0gJWQsIGZsYWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUt
PmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNE
RUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3Mg
PSAlZFxuIiwNCisJCSAgICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+
aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNE
RUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3Mg
PSAlZFxuIiwNCisJCSAgICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lu
b2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAg
cmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQN
CiBubnBmc19kZXZwb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxl
ICp3YWl0KQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxl
LT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5u
cGZzX2Rldl90IGRldiA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUt
PmlfcmRldjsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3Ag
PSAmbm5wZnNbTUlOT1IoZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAg
ICANCkBAIC05NTMsNyArOTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgbm5wZnNfZm9wcyA9IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQs
DQogICAgIHdyaXRlOgkJbm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlu
bnBmc19kZXZwb2xsLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9j
dGwsDQorI2Vsc2UNCisgICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9j
a2VkX2RldmlvY3RsLA0KKyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNf
ZGV2Y2xvc2UsDQogICAgIG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpA
QCAtOTY4LDggKzEwMDAsMTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkN
CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUp
KTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5w
ZnNfaW5pdHEoJm5ucGZzW2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRF
WCgmbm5wZnNbaV0uaW5hY3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5w
ZnNbaV0uY2hhbm5lbF9zZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5w
ZnNbaV0uaW5hY3RpdmVfc2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tp
XS5jaGFubmVsX3NlbSwgMSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFE
KCZubnBmc1tpXS5pbmFjdGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVz
ID0gMDsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1j
dnMvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLWZvci1saW51
eC00LjQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEt
Y3ZzL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJMjAxMC0wOC0wOCAy
Mjo0MzowNC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00
LjQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDE2LTAxLTE0IDE5
OjIwOjE5LjMyMjExNzk4OCArMDEwMA0KQEAgLTQwLDEwICs0MCwxNCBAQA0K
ICNpbmNsdWRlIDxubnBmcy9ubnBmc19kZXYuaD4NCiAjaW5jbHVkZSA8bm5w
ZnMvbm5wZnNfZGlyZW50Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5
c2NhbGxzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2Fpby5oPg0KICNpbmNsdWRl
IDxsaW51eC9iaW5mbXRzLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4N
CiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPg0KICNpbmNsdWRlIDxsaW51
eC9wYWdlLWZsYWdzLmg+DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTig0LDEsMCkNCisjaW5jbHVkZSA8bGludXgvdWlvLmg+
DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPg0KICNp
bmNsdWRlIDxhc20vZmNudGwuaD4NCiANCkBAIC01NCwxMSArNTgsMjMgQEAg
UkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIwMQ0KIHN0
YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs
IHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9y
ZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVp
ZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25ucGZzX2Rf
cmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGlu
dCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBu
bnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNl
DQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0
IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0K
IG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAg
LTIxNCw4ICsyMzAsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlu
b2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJldHVybnMgYSBk
ZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoN
CiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQor
c3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xvb2t1cCAoc3RydWN0
IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQg
aW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzX21l
c3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNw
Ow0KQEAgLTQwNyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9ibG9jayhzdHJ1
Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3lu
Y19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpDQogew0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+
ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0g
ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAg
c3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RFKGlub2Rl
KTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5P
REUoaW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXplX3JlYWQoaW5v
ZGUpOw0KQEAgLTQ3NCwxNSArNDk5LDE4IEBAIG5ucGZzX2ZzeW5jX2ludChz
dHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAq
ZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgZGF0YXN5bmMpDQot
I2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDEsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmMoc3RydWN0
IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0KK3N0YXRpYyBp
bnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0
YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQogI2VuZGlmDQogew0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiwg
NiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigyLDYsMzUpDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZp
bGUtPmZfcGF0aC5kZW50cnk7DQogI2VuZGlmDQogICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBAIC00OTAs
NiArNTE4LDggQEAgbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGlu
dCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAgIGlu
dCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAgICAg
ZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlmIChl
cnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTYyMiwxMSArNjUyLDI1IEBA
IGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50IG0NCiAg
KiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIChMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpIHx8IExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkpDQog
c3RhdGljIGludA0KIG5ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICpp
bm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNf
cGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5z
aWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9y
ID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygp
Ow0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUg
JiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs
NiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAg
ICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0g
bm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZO
T1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoi
LCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlu
b2RlKTsNCkBAIC03ODQsMTEgKzgyOCwxOSBAQCBubnBmc19kYXRhX3ZhbGlk
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2ZpbGVfbW1h
cChzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq
IHZtYSkNCiB7DQogICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls
ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3Ry
dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7
DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGlu
b2RlOiAlcFxuIiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19wcmludF9w
YXRoKGZpbGUtPmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wcmlu
dF9wYXRoKGZpbGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0KICAgICBO
TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2VzOiIpKTsN
CiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAgIA0KQEAg
LTgyMywyOCArODc1LDUxIEBAIGludCBubnBmc19maWxlX21tYXAoc3RydWN0
IGZpbGUgKiBmaWxlLA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3Np
emVfdA0KIG5ucGZzX2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJ
ICAgICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25n
IG5yX3NlZ3MsDQogCSAgICAgICBsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3Rh
dGljIHNzaXplX3QNCitubnBmc19yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICpp
b2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKQ0KKyNlbmRpZg0KIHsNCiAgICAg
aW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2Ni
LT5raV9maWxwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDEyLDApDQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5r
aV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDQsMiwwKQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lf
bmJ5dGVzOw0KKyNlbHNlDQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRl
cl9jb3VudCh0byk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2Rl
ICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQor
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5
LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq
eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAo
eG4gIT0gTlVMTCkNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3Jl
YWRfZmlsZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2Rl
LCB4bi0+dG9rZW5zKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19k
YXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291
bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChp
bm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3Bv
cyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5O
UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90
IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAg
IH0NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlv
X3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KKyNlbHNlDQorICAg
IGVycm9yID0gZ2VuZXJpY19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQor
I2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFk
X2ZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBl
cnJvcjsNCiB9DQpAQCAtODUzLDE3ICs5MjgsMzYgQEAgbm5wZnNfYWlvX3Jl
YWQoc3RydWN0IGtpb2NiICppb2NiLA0KICAqDQogICovDQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBz
dGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogCQljb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQg
bG9uZyBucl9zZWdzLA0KIAkJbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRp
YyBzc2l6ZV90DQorbm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlv
Y2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkNCisjZW5kaWYNCiB7DQogICAg
IGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9j
Yi0+a2lfZmlscDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+
a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTig0LDIsMCkNCisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtp
X25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW92X2l0
ZXJfY291bnQoZnJvbSk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl
DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu
dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgbG9m
Zl90IHJlYWxwb3MgPSBwb3M7DQorI2Vsc2UNCisgICAgbG9mZl90IHJlYWxw
b3MgPSBpb2NiLT5raV9wb3M7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBG
U0RFQihYREVCVk5PUFMsICgibm5wZnNfYWlvX3dyaXRlKCVwKTogdG9rZW5z
OiAweCV4XG4iLA0KIAkJCSBpbm9kZSwgeG4tPnRva2VucykpOw0KQEAgLTg3
Nyw3ICs5NzEsMTEgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAq
aW9jYiwNCiAJcmV0dXJuIGVycm9yOw0KICAgICB9DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAg
ZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJf
c2VncywgcG9zKTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmls
ZV93cml0ZV9pdGVyKGlvY2IsIGZyb20pOw0KKyNlbmRpZg0KICAgICBpZiAo
IUlTX0VSUl9WQUxVRShlcnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19E
QVRBX0RJUlRZOyAvKiBYWFggcmFjZSAqLw0KIA0KQEAgLTg4NSw5ICs5ODMs
MTkgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAg
ICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5u
cGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5LA0KIAkgICAgIGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpu
ZCkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBp
bm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1v
ZGVfdCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0
YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJv
b2wgZXhjbCkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5w
ZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTAzOCw4
ICsxMTQ2LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xk
X2Rpciwgc3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3Rh
dGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRp
YyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsN
CiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBm
c19ub2RlICp4bjsNCkBAIC0xMjUyLDEyICsxMzY1LDIxIEBAIHN0YXRpYyBp
bnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdl
IGhvbGQgaV9tdXRleC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwg
ZmlsbGRpcl90IGZpbGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5w
ZnNfaXRlcmF0ZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29u
dGV4dCAqY3R4KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAg
ICBsb2ZmX3Qgb2Zmc2V0LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3Ry
dWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0K
KyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3Bh
dGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5v
ZGUgKmNhY2hlX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4g
PSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBA
IC0xMzI4LDYgKzE0NTAsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxl
ICogZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1s
ZW4sDQogCQkgICAgKGludCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTEsMCkNCiAJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkm
JiAoZmlsbGRpcl9lcnJvciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAg
ICB4ZGlyZW50LT5kX25hbWUsDQpAQCAtMTMzOSw2ICsxNDYyLDE4IEBAIG5u
cGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkg
KCJubnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9y
KSk7DQogCQlicmVhazsNCiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhk
aXJlbnQtPmRfZmlsZW5vICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0g
ZGlyX2VtaXQgKGN0eCwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQor
CQkJCSAgICAgeGRpcmVudC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVu
dC0+ZF9maWxlbm8sDQorCQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0K
KwkJTk5QRlNERUIoWERFQlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRp
ciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7
DQorCSAgICB9DQorI2VuZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+
ZF9yZWNsZW47DQogDQogCSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0g
MCkgew0KQEAgLTEzOTUsOSArMTUzMCwxNSBAQCBubnBmc19yZWFkbGluayAo
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBp
X211dGV4Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTig0LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNf
Zm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1
Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFy
ICoNCitubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5
LA0KKwkJIHZvaWQgKipwYWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVy
cm9yID0gMDsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9U
T19JTk9ERShkZW50cnkpOw0KQEAgLTE0MDgsNyArMTU0OSwxMSBAQCBubnBm
c19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlm
IChlcnJvcikNCiAgICAgICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIs
MCkNCiAgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5
LCBuZCk7DQorI2Vsc2UNCisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtf
bGlnaHQoZGVudHJ5LCBwYWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBA
IC0xNDkwLDYgKzE2MzUsOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVj
dCBpbm9kZSAqaW5vZGUsDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsN
CiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0K
Kw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9m
aWxlXG4iKSk7DQogDQogICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQo
aW5vZGUpOw0KQEAgLTE1MjMsOCArMTY3MCwxMyBAQCBubnBmc19mbHVzaChz
dHJ1Y3QgZmlsZSAqZmlsZSwgZmxfb3duZXJfDQogew0KICAgICBOTlBGU0RF
QihYREVCVk5PUFMsICgibm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAg
ICBpZiAoZmlsZSAmJiBmaWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRy
eS0+ZF9pbm9kZSkNCiAJcmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxl
LT5mX2RlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYg
KGZpbGUgJiYgZmlsZS0+Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGgu
ZGVudHJ5LT5kX2lub2RlKQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxl
KGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRp
Zg0KICAgICBlbHNlDQogCXJldHVybiAwOw0KIH0NCkBAIC0xNTMzLDggKzE2
ODUsMTMgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293
bmVyXw0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlk
LCBvdGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25u
cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVj
dCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZz
X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBu
YW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRl
bnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQog
ew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RF
KGRlbnRyeSk7DQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19k
X3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVwKVxuIiwNCkBAIC0x
NTgyLDkgKzE3MzksMTUgQEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBk
ZW50cnkgKmRlbnRyeQ0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiBz
dGF0aWMNCiBpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkpDQorI2Vsc2UNCitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0
ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0K
ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNf
bm9kZSAqeG47DQpAQCAtMTYxNCw3ICsxNzc3LDExIEBAIG5ucGZzX3NwbGlj
ZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBsb2YNCiAJCSAgdW5zaWduZWQg
aW50IGZsYWdzKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAg
ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5v
ZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt
PmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVj
dCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAg
ICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0KQEAgLTE3MDcsNiArMTg3NCw4
IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLA0K
IA0KIAlpbnQgZXJyb3I7DQogCQ0KKwkodm9pZClvZmZzZXQ7DQorDQogCWRv
IHsNCiAJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxl
LCBtYXBwaW5nLCAwLCBsZW4sDQogCQkJCQkgICAgICBBT1BfRkxBR19VTklO
VEVSUlVQVElCTEUsDQpAQCAtMTc0Nyw2ICsxOTE2LDggQEAgbm5wZnNfcmVh
ZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFn
ZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KKwko
dm9pZClvZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9tYXBwaW5nX3Bh
Z2UobWFwcGluZywgbiwgYmFja2ZpbGUpOw0KIAlpZiAoIUlTX0VSUihiYWNr
cGFnZSkpIHsNCiAJCXdhaXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0K
QEAgLTE4OTQsMTEgKzIwNjUsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShz
dHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlfc2l6
ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVycm9y
ID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJCWVy
cm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQorCQlp
ZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6
ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5u
cGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0K
IAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBY
WFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3Qg
Y29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAtMTk5MywxMCArMjE3MCwx
OCBAQCBubnBmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj
DQogDQogCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYg
d2UgZGlkIGEgc2hvcnQgY29weSAqLw0KIAlpZiAoY29waWVkIDwgbGVuKSB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KIAkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9V
U0VSMCk7DQorI2Vsc2UNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMo
cGFnZSk7DQorI2VuZGlmDQogCQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29w
aWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0KIAkJZmx1c2hfZGNhY2hlX3BhZ2Uo
cGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsNiwwKQ0KIAkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjAp
Ow0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGthZGRyKTsNCisjZW5kaWYN
CiAJfQ0KIA0KIAlubnBmc19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJv
bSwgZnJvbSArIGNvcGllZCk7DQpAQCAtMjAyNyw4ICsyMjEyLDEzIEBAIHN0
cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8N
CiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0
aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNiwwKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVh
ZCwNCiAgICAgLmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxz
ZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAu
d3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAg
IC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZz
X29wZW4sDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KQEAgLTIwNDEs
NyArMjIzMSwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rl
YWRfb3BlcmF0DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u
cGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0g
bm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5u
cGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2Zs
dXNoLA0KIH07DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2
cy9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMgYXJsYS1mb3ItbGludXgtNC40
L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0tIGFybGEtY3ZzL25ucGZz
L2xpbnV4L25ucGZzX2xvYWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAwMDAw
MDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51
eC9ubnBmc19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi44MzAxMDM1MTcg
KzAxMDANCkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVf
b3BlcmF0aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVt
X3R5cGUgbm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAg
ICAgICJubnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5u
cGZzX2dldF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAgICAgICAg
bm5wZnNfbW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAg
ICBraWxsX2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAgICAgICAg
IFRISVNfTU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBh
cmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS1mb3It
bGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFy
bGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDEwLTA4LTA4
IDIyOjQzOjA1LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4
LTQuNC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0wMS0xNCAx
Njo1MDoxNS4xMzk1NzUxNTEgKzAxMDANCkBAIC01NSw5ICs1NSwxNSBAQCBz
dGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRl
bnRyeSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfZF9y
ZW1vdmUgJXBcbiIsIGRlbnRyeSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygm
ZGNhY2hlX2xvY2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAg
ICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNw
aW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRl
bnRyeSk7DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQor
I2VuZGlmDQogICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRy
eSk7DQogfQ0KQEAgLTEyMSw3ICsxMjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9p
bnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUg
KmRpLCAqaW5vZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5V
TEw7DQogICAgIHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0
IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9u
b2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhE
RUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZVxuIikpOw0KICAg
ICANCkBAIC0xNzYsMTIgKzE4NiwyNiBAQCBubnBmc19tZXNzYWdlX2luc3Rh
bGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgICAqDQogICAgICAqLw0KICAg
ICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAg
IHdoaWxlIChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9
IGxpc3RfZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0K
LQlzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFy
ZW50KTsNCi0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisg
ICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCBhbGlhcywgJmRpLT5p
X2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2Vh
Y2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQor
I2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGkt
PmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAg
IHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChw
YXJlbnQpOw0KKyAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl
bHNlDQorICAgIHNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBk
Z2V0X2Rsb2NrKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQt
PmRfbG9jayk7DQorI2VuZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVu
dCwgJnNxc3RyKTsNCiAJTk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZz
X21lc3NhZ2VfaW5zdGFsbG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIs
DQpAQCAtMjMzLDcgKzI1Nyw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5v
ZGUoc3RydWN0IG5ucGZzICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVu
dHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2Vu
ZGlmDQogCWRwdXQocGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihY
REVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5z
dGFsbGluZ1xuIikpOw0KQEAgLTI2OCw3ICsyOTQsMTMgQEAgbm5wZnNfbWVz
c2FnZV9pbnN0YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQog
ICAgIGlub2RlID0gWE5PREVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50
cnkgPSBsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3Qg
ZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGRlbnRyeSA9IGhsaXN0
X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwg
ZF9hbGlhcyk7DQorI2Vsc2UNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnko
aW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9h
bGlhcyk7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNH
LCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJ
CSAgICAgICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0
MjgsMzYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5w
ZnMgKg0KIHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1
Y3QgaW5vZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0
IGRlbnRyeSAqZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAq
YWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsN
CisjZW5kaWYNCiANCiAgYWdhaW46DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZk
Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogZmluZCB0aGUg
ZGVudHJ5IHRvIGxvY2sgKi8NCisgICAgLypzcGluX2xvY2soJmRlbnRyeS0+
ZF9sb2NrKTsqLw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+
aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+
aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5v
ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m
b3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxp
YXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50
cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlm
DQogCXN0cnVjdCBsaXN0X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBm
c19kZW50cnlfZGF0YSAqeGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9l
bnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlm
DQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5f
RU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBu
dWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQyMiw3ICs0NzMsMTEgQEAg
Y2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlz
dWJkaXJzID0gZGVudHJ5LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1
YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1Y3Qg
bGlzdF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1Y3Qg
ZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5
LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50cnkg
KmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hp
bGQpOw0KKyNlbmRpZg0KIAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJ
ICAgIE5OUEZTREVCKFhERUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNo
aWxkOiAlLipzIGlub2RlOiAlcC8lcCAiDQogCQkJICAgICAgICJkY291bnQ6
ICVkIGFsaWFzZXM6XG4iLA0KQEAgLTQ0MiwxNCArNDk3LDI2IEBAIGNsZWFy
X2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAg
IC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNv
dW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9j
aygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorCQkvKiBUT0RPOiB1bmxvY2sg
dGhlIGRlbnRyeSAqLw0KKwkJLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xv
Y2spOyovDQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQog
CQlnb3RvIGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFs
aWFzLT5uZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91
bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiB1
bmxvY2sgdGhlIGRlbnRyeSAqLw0KKyAgICAvKnNwaW5fdW5sb2NrKCZkZW50
cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIHZvaWQN
CkBAIC03MTksMTIgKzc4NiwyMiBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24o
c3RydWN0IG5ucGZzICpubnBmDQogDQogICAgIC8qIHNhbml0eSBjaGVjayBi
ZWZvcmUgd2UgbG9vayBhdCBpdCAqLw0KICAgICBpZiAoc2l6ZSA9PSBzaXpl
b2YoKm1lc3NhZ2UpICYmIG1lc3NhZ2UtPnZlcnNpb24gPT0gTk5QRlNfVkVS
U0lPTikgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UN
CisJc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAJaW50IGVycm9yOw0K
IA0KIAl1aW50NjRfdCBibG9ja3NpemUgPSBtZXNzYWdlLT5ibG9ja3NpemU7
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cCgiLiIsIDAsICZuZCk7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KKwllcnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZuZC5wYXRo
KTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZwYXRo
KTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKSB7DQogCSAgICAvKg0KIAkgICAg
ICogQmFkIGNhY2hlIHJvb3QsIGp1c3QgcmV0dXJuLg0KQEAgLTczNSw5ICs4
MTIsMTUgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAq
bm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0
aF9sb29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJ
fSBlbHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KIAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRn
ZXQobmQucGF0aC5tbnQpOw0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRn
ZXQobmQucGF0aC5kZW50cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBhdGgp
Ow0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChw
YXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRo
LmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQog
CSAgICANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1
aWQ7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9s
aW51eC9ubnBmc19ub2RlLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xp
bnV4L25ucGZzX25vZGUuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25u
cGZzX25vZGUuYwkyMDA3LTAxLTAzIDE0OjUyOjAyLjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19u
b2RlLmMJMjAxNi0wMS0xNCAxNjo1MToxMS40MjA1Nzg1NDQgKzAxMDANCkBA
IC0xMzIsNyArMTMyLDEyIEBAIG5ucGZzX3NldHNpemUoc3RydWN0IGlub2Rl
ICppbm9kZSwgdWludDYNCiAJcHJpbnRrKCJubnBmc19zZXRzaXplOiB0cnVu
Y2F0aW5nIEAweCVsbHVcbiIsDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBs
b25nKXNpemUpOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJdm10cnVuY2F0ZShpbm9kZSwg
c2l6ZSk7IC8qIFhYWCByZXR2YWwgKi8NCisjZWxzZQ0KKwlpZighaW5vZGVf
bmV3c2l6ZV9vayhpbm9kZSwgc2l6ZSkpDQorCSAgICB0cnVuY2F0ZV9zZXRz
aXplKGlub2RlLCBzaXplKTsNCisjZW5kaWYNCiAJbm5wZnNfYmxvY2tfdHJ1
bmNhdGUoeG4sIHNpemUpOw0KICAgICB9DQogfQ0KQEAgLTE1MCw5ICsxNTUs
MTggQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0
cg0KIAlzdHJ1Y3QgdGltZXNwZWMgbm90aW1lID0gezB9Ow0KIA0KIAlpbm9k
ZS0+aV9tb2RlICAgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE0LDApDQogCWlub2RlLT5pX3VpZCAgICA9IDA7
DQogCWlub2RlLT5pX2dpZCAgICA9IDA7DQorI2Vsc2UNCisJaW5vZGUtPmlf
dWlkICAgID0gS1VJRFRfSU5JVCgwKTsNCisJaW5vZGUtPmlfZ2lkICAgID0g
S0dJRFRfSU5JVCgwKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5r
ICA9IDE7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCAxKTsNCisjZW5k
aWYNCiAJaW5vZGUtPmlfYXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9t
dGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX2N0aW1lICA9IG5vdGltZTsN
CkBAIC0xNjksNyArMTgzLDExIEBAIG5ucGZzX2F0dHIyaW5vZGUoY29uc3Qg
c3RydWN0IG5ucGZzX2F0dHINCiAgICAgaWYgKFhBX1ZBTElEX0dJRChhdHRy
KSkNCiAJaW5vZGUtPmlfZ2lkICAgID0gYXR0ci0+eGFfZ2lkOw0KICAgICBp
ZiAoWEFfVkFMSURfTkxJTksoYXR0cikpDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGlu
ayAgPSBhdHRyLT54YV9ubGluazsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5v
ZGUsIGF0dHItPnhhX25saW5rKTsNCisjZW5kaWYNCiAgICAgDQogICAgIGlm
IChYQV9WQUxJRF9TSVpFKGF0dHIpKSB7DQogCW5ucGZzX3NldHNpemUoaW5v
ZGUsIGF0dHItPnhhX3NpemUpOw0KQEAgLTUxMCwxMiArNTI4LDI0IEBAIG5u
cGZzX2hhc19wYWcoY29uc3Qgc3RydWN0IG5ucGZzX25vZGUgKngNCiBpbnQN
CiBubnBmc19ub2RlX3VzZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcG9zOw0KKyNlbHNlDQorICAg
IHN0cnVjdCBobGlzdF9ub2RlICpwb3M7DQorI2VuZGlmDQogICAgIGludCB1
c2VycyA9IDA7DQogICAgIA0KICAgICAvKiBYWFggdGhpcyBzaG91bGQgcHJv
YmFibHkgYmUgcHJvdGVjdGVkIHNvbWVob3cgKi8NCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGxpc3Rf
Zm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQorI2Vsc2UNCisg
ICAgaGxpc3RfZm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9l
bnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNlDQor
CXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1
Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChubnBm
c19kY291bnQoZGVudHJ5KSA+IDEpDQogCSAgICB1c2VycysrOw0KICAgICB9
DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51
eC9ubnBmc19zeXNjYWxscy5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9s
aW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGlu
dXgvbm5wZnNfc3lzY2FsbHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAw
MDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51
eC9ubnBmc19zeXNjYWxscy5jCTIwMTYtMDEtMTQgMTc6MDA6MjAuNjQxNjEx
NjU1ICswMTAwDQpAQCAtNDIsNyArNDIsOSBAQA0KICNpbmNsdWRlIDxubnBm
cy9ubnBmc19zeXNjYWxscy5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19j
b21tb24uaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2lu
Y2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUg
PGxpbnV4L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+DQog
DQpAQCAtNTAsNiArNTIsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvc2VjdXJp
dHkuaD4NCiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49
IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKyN1bmRlZiBTWVNDQUxMSEFDSw0K
Ky8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90
IHdvcmsgb24ga2VybmVsIDMuNyBhbmQgbGF0ZXIsIHNlIG5ucGZzX3N5c2Nh
bGxzLWxvc3NhZ2UuYyAqLw0KKyNlbmRpZg0KKw0KICNpZiAwDQogI2lmZGVm
IENPTkZJR19DT01QQVQNCiAjaW5jbHVkZSA8bGludXgvaW9jdGwzMi5oPg0K
QEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVmIHN0cnVjdCBhZnNwcm9jZGF0
YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbDsNCiB9IGFmc3Byb2Nk
YXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0
bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJ
CSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisj
ZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVj
dCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu
ZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmls
ZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19mb3BzID0gew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAg
IC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZWxzZQ0KKyAgICAu
dW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2VuZGlm
DQogfTsNCiANCiANCkBAIC0xNjAsOCArMTc3LDEwIEBAIG5ucGZzX2dldF9w
YWdfc2VjKHZvaWQpDQogDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51
aWQ7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE0LDApDQogICAgIHJldHVybiBjdXJyZW50X3VpZCgp
Ow0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgp
OyByZXR1cm4ga3VpZC52YWw7IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtMTk5
LDcgKzIxOCwxMiBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kp
DQogICAgIE5OUEZTREVCKFhERUJTWVMsICgiZmluZF9wYWc6IG5ncm91cHMg
PSAlZFxuIiwgZ2ktPm5ncm91cHMpKTsNCiANCiAgICAgZm9yIChpID0gZ2kt
Pm5ncm91cHMgLSAxOyBpID49IDA7IGktLSkgew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCWdpZF90IGdy
b3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3Jv
dXAgPSBHUk9VUF9BVChnaSwgaSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3Vw
LnZhbDsNCisjZW5kaWYNCiAJaWYgKChubnBmc19wYWdfdClncm91cCA+PSBO
TlBGU19QQUdfTExJTSAmJiAobm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19Q
QUdfVUxJTSkgew0KIAkgICAgTk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAg
KCJmaW5kX3BhZzogRXhpc3RpbmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3Jv
dXAsIGkpKTsNCkBAIC0yMjAsNyArMjQ0LDEyIEBAIG5ucGZzX2dldF9wYWdf
Z3JvdXAodm9pZCkNCiAgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+
dWlkOw0KICNlbHNlDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdl
dF9jdXJyZW50X2dyb3VwcygpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIG5ucGZzX3BhZ190IHJl
dCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAga3VpZF90IGt1aWQg
PSBjdXJyZW50X3VpZCgpOw0KKyAgICBubnBmc19wYWdfdCByZXQgPSBrdWlk
LnZhbDsNCisjZW5kaWYNCiAjZW5kaWYNCiAgICAgaW50IGk7DQogDQpAQCAt
MjMwLDcgKzI1OSwxMSBAQCBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQog
DQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZT
X1BBR19OT1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7
DQorI2Vsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsg
cmV0ID0ga2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3Vw
X2luZm8oZ2kpOw0KIA0KQEAgLTI4MCwxMCArMzEzLDE3IEBAIHN0b3JlX3Bh
ZyhubnBmc19wYWdfdCBwYWdudW0pDQogCWNvdW50IC09IE5HUk9VUFNfUEVS
X0JMT0NLOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgaWYgKGZvdW5kKQ0KIAlH
Uk9VUF9BVChuZXdfZ2ksIGkpID0gcGFnbnVtOw0KICAgICBlbHNlDQogCUdS
T1VQX0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBwYWdudW07
DQorI2Vsc2UNCisgICAgaWYgKGZvdW5kKQ0KKwl7IGtnaWRfdCBrZ2lkID0g
S0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9BVChuZXdfZ2ksIGkpID0ga2dp
ZDsgfQ0KKyAgICBlbHNlDQorCXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklU
KHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0g
MSkgPSBrZ2lkOyB9DQorI2VuZGlmDQogICAgIA0KICAgICBzZXRfY3VycmVu
dF9ncm91cHMobmV3X2dpKTsNCiAgICAgcHV0X2dyb3VwX2luZm8obmV3X2dp
KTsNCkBAIC0zMjUsOCArMzY1LDEwIEBAIG5ucGZzX2dldF9wYWcoKQ0KIA0K
ICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0KLSNlbHNlDQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KICAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7
IGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFs
OyB9DQogI2VuZGlmDQogfQ0KIA0KQEAgLTQzMiw3ICs0NzQsNyBAQCBubnBm
c19zZXRncm91cHMxNiAoaW50IGdpZHNldHNpemUsIG9sZF9nDQogI2VuZGlm
IC8qIFNZU0NBTExIQUNLICovDQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0K
IA0KLXN0cnVjdCBmaWxlX2hhbmRsZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVf
aGFuZGxlIHsNCiAgICAgbm5wZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBp
bm9kZTsNCiAgICAgX191MzIgZ2VuOw0KQEAgLTUxOSwxNCArNTYxLDI3IEBA
IG5ucGZzX2RlYnVnX3ByaW50IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bA0KICAq
IGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxvdycNCiAgKi8NCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
IHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChz
dHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9s
bG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK3VzZXJf
cGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICp1c2VyX3Bh
dGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQogew0KLSAgICBjaGFyICprbmFt
ZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAgICAgaW50IGVycm9yID0gMDsN
CiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1c2VyX3BhdGgpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisg
ICAgY2hhciAqa25hbWU7DQorICAgIGtuYW1lID0gZ2V0bmFtZSh1c2VyX3Bh
dGgpOw0KKyNlbHNlDQorICAgIGNvbnN0IGNoYXIgKmtuYW1lOw0KKyAgICBz
dHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0KKyAgICBmbmFtZSA9IGdldG5hbWUo
dXNlcl9wYXRoKTsNCisgICAga25hbWUgPSBmbmFtZS0+bmFtZTsNCisjZW5k
aWYNCisNCiAgICAgaWYgKElTX0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJf
UFRSKFBUUl9FUlIoa25hbWUpKTsNCiAgICAgaWYgKGZvbGxvdykNCkBAIC01
MzQsMTEgKzU4OSwyNSBAQCB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFt
ZWlkYXRhICpuZCwNCiANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm
c19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KICAgICBlcnJvciA9IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywgbmQp
Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdz
LCAmKG5kLT5wYXRoKSk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3Bh
dGgoa25hbWUsIGZsYWdzLCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAgIHB1
dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIGttZW1fY2FjaGVfZnJlZShu
YW1lc19jYWNoZXAsICh2b2lkICopa25hbWUpOw0KKyNlbmRpZg0KICAgICBp
ZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVycm9yKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAg
ICByZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVy
biBwYXRoLT5kZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2Ug
bG9uZw0KQEAgLTU1MywxMyArNjIyLDIxIEBAIHN5c19hZnNfaW50IChpbnQg
b3BlcmF0aW9uLA0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwg
Km1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1
cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gTlVMTDsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAg
IHN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogICAgIA0KICAgICBtc2cg
PSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQogICAgIGlm
IChtc2cgPT0gTlVMTCkNCiAgICAgICByZXR1cm4gLUVOT01FTTsNCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86
IGxvY2tfa2VybmVsKCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRkaW5nIGFu
IHByaXZhdGUgbG9jayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihY
REVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0KIA0KQEAg
LTU5Nyw3ICs2NzQsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24s
DQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFfcGF0
aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50cnkg
PSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xsb3dT
eW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0KIAkJ
ZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjkzLDEz
ICs3NzQsMjEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAg
IA0KICB1bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJcGF0aF9w
dXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZwYXRoKTsNCisj
ZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19zeXNj
YWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAg
Tk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIp
KTsNCiAgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxvY2tfa2VybmVs
KCk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogc2VlIHRoZSBjb21tZW50IGF0
IGxvY2tfa2VybmVsKCkgYWJvdmUgKi8NCisjZW5kaWYNCiANCiAgICAgcmV0
dXJuIGVycm9yOw0KIH0NCkBAIC03NDgsOSArODM3LDE1IEBAIHN5c19hZnMg
KGludCBvcGVyYXRpb24sDQogCQkgICAgICAgYV9mb2xsb3dTeW1saW5rcyk7
DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0
bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJ
CSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNl
bHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0
IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l
ZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQogICAgIGFmc3Byb2NkYXRhIGFy
Z3M7DQogICAgIGxvbmcgcmV0Ow0KQEAgLTgwNyw3ICs5MDIsMTEgQEAgc3Rh
dGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KICAgICBubnBmc19w
cm9jZnNfZGlyLT5vd25lciA9IFRISVNfTU9EVUxFOw0KICNlbmRpZg0KICAg
ICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxMCwwKQ0KICAgICBlbnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZT
X1BST0NfTk9ERSwgMDY2Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQorI2Vsc2UN
CisgICAgZW50cnkgPSBwcm9jX2NyZWF0ZShOTlBGU19QUk9DX05PREUsIDA2
NjYsIE5VTEwsICZubnBmc19wcm9jZnNfZm9wcyk7DQorI2VuZGlmDQogICAg
IGlmIChlbnRyeSA9PSBOVUxMKSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgi
bm5wZnNfaW5pdF9wcm9jZnM6IG5vIG5vZGVcbiIpKTsNCiAJcmVtb3ZlX3By
b2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KQEAgLTgx
Nyw3ICs5MTYsOSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZv
aWQpDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzMCkNCiAgICAgZW50cnktPm93bmVyID0gVEhJU19NT0RVTEU7DQog
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTAsMCkNCiAgICAgZW50cnktPnByb2NfZm9wcyA9ICZubnBmc19w
cm9jZnNfZm9wczsNCisjZW5kaWYNCiANCiAjaWZkZWYgU1lTQ0FMTENPTVBB
VA0KICAgICBpZiAocmVnaXN0ZXJfaW9jdGwzMl9jb252ZXJzaW9uKEFSTEFf
VklPQ19TWVNDQUxMMzIsIG5ucGZzX3Byb2Nmc19pb2N0bDMyKSkgew0KZGlm
ZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5w
ZnNfc3lzY2FsbHMtbG9zc2FnZS5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBm
cy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxhLWN2
cy9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxMC0w
OC0wOCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1s
aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j
CTIwMTYtMDEtMTMgMjE6NTE6NDkuNjgyNDU3MjEzICswMTAwDQpAQCAtNTAs
OCArNTAsMTcgQEANCiBSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3Nz
YWdlLmMsdiAxLjE5IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7
DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigzLDcsMCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xv
d2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxh
dGVyICovDQorI3VuZGVmIFNZU0NBTExIQUNLDQorI2VuZGlmDQorDQogI2lu
Y2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNL
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NywwKQ0KIHN0YXRpYyB2b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhy
ZWFkOw0KKyNlbmRpZg0KKyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0
ZV9fKCh3ZWFrKSkgc3lzX2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lz
X2NhbGxfZnVuY3Rpb24gKm5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02
Niw2ICs3NSw4IEBAIGNvbnN0IGNoYXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFr
KSkNCiAjaWZkZWYgX194ODZfNjRfXw0KIGV4dGVybiByd2xvY2tfdCB0YXNr
bGlzdF9sb2NrIF9fYXR0cmlidXRlX18oKHdlYWspKTsNCiAjZW5kaWYNCisN
CisjaWZkZWYgU1lTQ0FMTEhBQ0sNCiBzdGF0aWMgdm9pZCAqKg0KIGdldF9z
dGFydF9hZGRyKHZvaWQpIHsNCiAjaWZkZWYgX194ODZfNjRfXw0KQEAgLTc0
LDYgKzg1LDcgQEAgZ2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICAgICByZXR1
cm4gKHZvaWQgKiopJm11dGV4X2xvY2s7DQogI2VuZGlmDQogfQ0KKyNlbmRp
Zg0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IA0KIGthbGxzeW1faXNfZXF1YWwo
dW5zaWduZWQgbG9uZyBhZGRyLCBjb25zdCBjaGFyICpuYW1lKQ0KQEAgLTE0
Miw2ICsxNTQsOCBAQCB2ZXJpZnkodm9pZCAqKnApIHsNCiAgICAgcmV0dXJu
IDE7DQogfQ0KIA0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KKw0KIHN0YXRpYyBp
bmxpbmUgaW50IGxvb2tzX2dvb2Qodm9pZCAqKnApDQogew0KICAgICBpZiAo
KnAgPD0gKHZvaWQqKWxvd2VyX2JvdW5kIHx8ICpwID49ICh2b2lkKilwKQ0K
QEAgLTE5MSwzICsyMDUsNSBAQCBubnBmc19maXh1cF9zeXNjYWxsX2xvc3Nh
Z2Uodm9pZCkNCiANCiAgICAgcmV0dXJuIDA7DQogfQ0KKw0KKyNlbmRpZg0K
ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgv
bm5wZnNfdmZzb3BzLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4
L25ucGZzX3Zmc29wcy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5w
ZnNfdmZzb3BzLmMJMjAxMC0wOC0wOCAyMjo0MzowNi4wMDAwMDAwMDAgKzAy
MDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNf
dmZzb3BzLmMJMjAxNi0wMS0xNCAxNzoxMzoxOC4yNjM2NTg1MzYgKzAxMDAN
CkBAIC01MCw3ICs1MCw5IEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5j
LHYgMS4xMTEgMjAxMC8NCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsN
CiANCiBzdGF0aWMgdm9pZCBubnBmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVy
X2Jsb2NrICpzYik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1
cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsNCisjZW5kaWYNCiANCiBz
dGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
IHN0cnVjdCBrc3RhdGZzICpidWYpOw0KIA0KQEAgLTU5LDcgKzYxLDkgQEAg
c3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcA0KICAg
ICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBkcm9w
X2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KICAgICBwdXRfc3Vw
ZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgd3JpdGVfc3VwZXIJ
CTogbm5wZnNfd3JpdGVfc3VwZXIsDQorI2VuZGlmDQogICAgIHN0YXRmcwkJ
OiBubnBmc19zdGF0ZnMsDQogfTsNCiANCkBAIC04Niw3ICs5MCwxMSBAQCBu
bnBmc19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSkNCiAJICogcm9vdCdz
IHByaXZpbGlnZXMgKHVzdWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMgbmVlZGVk
KS4NCiAJICovDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE0LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7DQorI2Vs
c2UNCisJbXNnLmNyZWQudWlkID0gS1VJRFRfSU5JVCgwKTsNCisjZW5kaWYN
CiAJbXNnLmNyZWQucGFnID0gMDsNCiAJDQogCWVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K
QEAgLTEyMSw4ICsxMjksMTMgQEAgbWFrZV9yb290X2lub2RlKHN0cnVjdCBu
bnBmcyAqbm5wZnNwKQ0KICAgICBYQV9TRVRfTU9ERSgmbm9kZS5hdHRyLCBT
X0lGRElSIHwgMDc3Nyk7DQogICAgIFhBX1NFVF9OTElOSygmbm9kZS5hdHRy
LCAxMDApOw0KICAgICBYQV9TRVRfU0laRSgmbm9kZS5hdHRyLCAwKTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9T
RVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNlbHNlDQorICAgIFhBX1NFVF9V
SUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgwKSk7DQorICAgIFhBX1NFVF9H
SUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgwKSk7DQorI2VuZGlmDQogICAg
IFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX01U
SU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfQ1RJTUUoJm5vZGUu
YXR0ciwgMCk7DQpAQCAtMTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jvb3QgKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAgIG5ucGZzLT5yb290ID0gaW5v
ZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBoYW5kbGluZyAqLw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDQsMCkNCiAg
ICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQorICAgIGRw
ID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNlbmRpZg0KICAgICBubnBmc19k
X2luaXQoZHApOw0KICAgICBzYi0+c19yb290ID0gZHA7DQogICAgIHJldHVy
biAwOw0KQEAgLTE3NSwxMyArMTkyLDI3IEBAIG5ucGZzX3JlYWRfc3VwZXIg
KHN0cnVjdCBzdXBlcl9ibG9jayAqIHMNCiAgICAgTk5QRlNERUIoWERFQlZG
T1BTLCAoIm5ucGZzX3JlYWRfc3VwZXI6IGJlZ2luIHNldHRpbmcgdmFyaWFi
bGVzXG4iKSk7DQogDQogICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
IAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRo
IHBhdGg7DQorI2VuZGlmDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29r
dXAoZGF0YSwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRo
KGRhdGEsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5f
cGF0aChkYXRhLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikN
CiAJICAgIGRkZXYgPSBFUlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQorI2Vsc2UNCisJICAgIGRk
ZXYgPSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19FUlIo
ZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9p
bm9kZS0+aV9yZGV2KTsNCkBAIC0yMjUsNiArMjU2LDcgQEAgbm5wZnNfZmls
bF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0KICAgICByZXR1cm4g
MDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZp
bGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBj
b25zdCBjaGFyICpkZXZfbmFtZSwNCkBAIC0yMzIsMTIgKzI2NCwyMyBAQCBu
bnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQogew0K
ICAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRh
LCBubnBmc19maWxsX3N1cGVyLCBtbnQpOw0KIH0NCisjZWxzZQ0KK3N0cnVj
dCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5
cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpk
ZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKSANCit7DQorICAgIHJldHVy
biBtb3VudF9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmls
bF9zdXBlcik7DQorfQ0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZA0K
IG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKQ0K
IHsNCiAgICAgc2ItPnNfZGlydCA9IDA7DQogfQ0KKyNlbmRpZg0KIA0KIC8q
DQogICogWFhYIGlzIHRoaXMgZ29vZD8gDQo=
---276651502-387345283-1452824024=:11672
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Arla-drinkers mailing list
Arla-drinkers@stacken.kth.se
https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers
---276651502-387345283-1452824024=:11672--