[5058] in arla-drinkers
Re: PATCH v2: Arla CVS Current on Linux 2.6.34 to 3.18
daemon@ATHENA.MIT.EDU (Bo Branten)
Wed Jan 13 19:30:47 2016
From arla-drinkers-bounces@stacken.kth.se Thu Jan 14 00:30:47 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 5100 invoked from network); 14 Jan 2016 00:30:46 -0000
Received: from mx6.kth.se (130.237.48.70)
by charon.mit.edu with SMTP; 14 Jan 2016 00:30:46 -0000
Received: from mx6.kth.se (localhost [127.0.0.1])
by mx6.kth.se (Postfix) with ESMTP id 10DF01C00DD;
Thu, 14 Jan 2016 01:30:46 +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 p6krgijabXkf; Thu, 14 Jan 2016 01:30:29 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
by mx6.kth.se (Postfix) with ESMTP;
Thu, 14 Jan 2016 01:30:29 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id 7B8A014CACB;
Thu, 14 Jan 2016 01:30:29 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id DE0C214CACA; Thu, 14 Jan 2016 01:30:27 +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 DB7D714C913
for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:30:27 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
by mx5.kth.se (Postfix) with ESMTP id CE7F22400D8
for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:30:27 +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]:58199
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 Mf1w_8M_mE7e for <arla-drinkers@stacken.kth.se>;
Thu, 14 Jan 2016 01:30:26 +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>; Thu, 14 Jan 2016 01:30:26 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id 08C6FC68
for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:30:26 +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 E5689C67
for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:30:21 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id D98D744B8C; Thu, 14 Jan 2016 01:30:21 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id D712044B8B
for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:30:21 +0100 (CET)
Date: Thu, 14 Jan 2016 01:30:21 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v2: Arla CVS Current on Linux 2.6.34 to 3.18
In-Reply-To: <alpine.DEB.2.10.1601110319280.18025@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601140128360.24061@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-700296685-1452731421=:24061"
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-700296685-1452731421=:24061
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH v2: Arla CVS Current on Linux 2.6.34 to 3.18
Hello,
I have corrected two things in the existing patch:
Before I forgot two include files that is stored higher up in the
direvtory hierarchy.
And I have changed the syntax of the preprocessor statements to what was
used in the rest of the driver.
I have tested that this patch compiles clean on ALL kernels from 2.6.34 to
3.18.
Bo Branten
---276651502-700296685-1452731421=:24061
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-cvs-for-linux-3.18
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601140130210.24061@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-arla-cvs-for-linux-3.18
ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS1mb3ItbGludXgtMy4xOC9ubnBm
cy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtY3ZzL25u
cGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5oCTIwMDYtMTAtMjQgMTg6
MzM6MzAuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtMy4x
OC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaAkyMDE2LTAxLTEy
IDE5OjI5OjUwLjUyMjA3MjA4NCArMDEwMA0KQEAgLTExMyw4ICsxMTMsMTMg
QEAgc3RydWN0IG5ucGZzX2F0dHIgew0KICAgICB1aW50MzJfdAkJeGFfbmxp
bms7DQogICAgIHVpbnQzMl90CQl4YV90eXBlOw0KIA0KKyNpZiAoZGVmaW5l
ZChfX0tFUk5FTF9fKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMywxNCwwKSkNCisgICAga3VpZF90CQl4YV91aWQ7DQorICAg
IGtnaWRfdAkJeGFfZ2lkOw0KKyNlbHNlDQogICAgIHVpbnQzMl90CQl4YV91
aWQ7DQogICAgIHVpbnQzMl90CQl4YV9naWQ7DQorI2VuZGlmDQogDQogICAg
IHVpbnQzMl90CQl4YV9hdGltZTsNCiAgICAgdWludDMyX3QJCXhhX210aW1l
Ow0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvaW5j
bHVkZS9ubnBmcy9ubnBmc19tZXNzYWdlLmggYXJsYS1mb3ItbGludXgtMy4x
OC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaA0KLS0tIGFy
bGEtY3ZzL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIw
MDktMDItMjQgMjE6MjA6NTUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1m
b3ItbGludXgtMy4xOC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3Nh
Z2UuaAkyMDE2LTAxLTE0IDAwOjI2OjA0LjEyNjAxNTEzNiArMDEwMA0KQEAg
LTUyLDcgKzUyLDExIEBAIHR5cGVkZWYgdWludDE2X3Qgbm5wZnNfcmlnaHRz
Ow0KICAqIFRoZSBubnBmc19jcmVkLCBpZiBwYWcgPT0gMCwgdXNlIHVpZCAN
CiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBubnBmc19jcmVkIHsNCisjaWYgKGRl
ZmluZWQoX19LRVJORUxfXykgJiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF
Uk5FTF9WRVJTSU9OKDMsMTQsMCkpDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vs
c2UNCiAgICAgdWludDMyX3QgdWlkOw0KKyNlbmRpZg0KICAgICBubnBmc19w
YWdfdCBwYWc7DQogfSBubnBmc19jcmVkOw0KIA0KZGlmZiAtdXByTiAtWG5v
ZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMu
aCBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZz
X2ZzLmgNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19m
cy5oCTIwMDYtMTAtMjQgMTg6MzM6NDguMDAwMDAwMDAwICswMjAwDQorKysg
YXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19m
cy5oCTIwMTYtMDEtMTMgMjI6NTc6MDYuMzg3NjkzMzM5ICswMTAwDQpAQCAt
ODQsOCArODQsMTMgQEAgc3RydWN0IG5ucGZzIHsNCiAgICAgc3RydWN0IHZm
c21vdW50ICpjYWNoZXJvb3Q7IC8qIHNpbXBsaWZ5IG9wZW4gb2YgY2FjaGUg
YmxvY2tzICovDQogICAgIHN0cnVjdCBkZW50cnkgKmNhY2hlZGlyOw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0
LDApDQogICAgIHVpZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24n
cyBpZGVudGl0eSAqLw0KICAgICBnaWRfdCBnaWQ7DQorI2Vsc2UNCisgICAg
a3VpZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0
eSAqLw0KKyAgICBrZ2lkX3QgZ2lkOw0KKyNlbmRpZg0KIA0KICAgICBzdHJ1
Y3Qgew0KIAlpbnQgcmVjdXJzZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0
IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxh
LWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wu
aA0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wu
aAkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFy
bGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9j
bC5oCTIwMTYtMDEtMTMgMjM6MDE6MTAuMTc4NzA4MDM3ICswMTAwDQpAQCAt
NTEsNyArNTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2lu
Y2x1ZGUgPGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1l
aS5oPg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2Vu
ZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEz
OCwxMCArMTQwLDE3IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGlu
dA0KIG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl
dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq
bW50KTsNCisjZWxzZQ0KK3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQo
c3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50
IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpk
YXRhKTsNCisjZW5kaWYNCiANCiBleHRlcm4gc3RydWN0IGRlbnRyeV9vcGVy
YXRpb25zIG5ucGZzX2RlbnRyeV9vcGVyYXRpb25zOw0KIA0KQEAgLTE5NCwx
MCArMjAzLDIxIEBAIG5ucGZzX2l3cml0ZWNvdW50IChzdHJ1Y3QgaW5vZGUg
Kmlub2RlKQ0KICAqIEhlbHAgZnVuY3Rpb24gdG8gcmVhZCB0aGUgZGVudHJ5
LT5kX2NvdW50IGEgcG9ydGFibGUgd2F5DQogICovDQogDQorLyojaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSovDQog
c3RhdGljIGlubGluZSBpbnQNCiBubnBmc19kY291bnQgKGNvbnN0IHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkNCisvKiNlbHNlDQorc3RhdGljIGlubGluZSBp
bnQNCitubnBmc19kY291bnQgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisj
ZW5kaWYqLw0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM4KQ0KICAgICByZXR1cm4gYXRvbWljX3JlYWQoJmRl
bnRyeS0+ZF9jb3VudCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KKyAgICByZXR1cm4gYXRvbWljX3Jl
YWQoKGNvbnN0IGF0b21pY190KikmZGVudHJ5LT5kX2NvdW50KTsNCisjZWxz
ZQ0KKyAgICByZXR1cm4gZF9jb3VudChkZW50cnkpOzsNCisjZW5kaWYNCiB9
DQogDQogZXh0ZXJuIA0KQEAgLTIyOSw3ICsyNDksMTIgQEAgbm5wZnNfZml4
dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpOw0KICNlbmRpZg0KIA0KICNkZWZp
bmUgbm5wZnNfZGV2X3QgZGV2X3QNCisNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICNkZWZpbmUgbm5wZnNf
ZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF91bmhhc2hlZChkKQ0KKyNlbHNl
DQorI2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFzaGVkKGQpIGhsaXN0X2Js
X3VuaGFzaGVkKGQpDQorI2VuZGlmDQogDQogI2RlZmluZSBOTlBGU19OT09Q
ICAgICAgd2hpbGUoMCl7fQ0KIA0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQg
YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS1mb3It
bGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0KLS0tIGFy
bGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDgg
MjI6NDM6MDQuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgt
My4xOC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTE0IDAx
OjAxOjE5LjgwNzE0MjY4NSArMDEwMA0KQEAgLTQzLDYgKzQzLDM2IEBADQog
I2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUgPGxpbnV4L21t
Lmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigzLDEyLDApDQorLyogVE9ETzogaW1wbGVtZW50IGEgcmVwbGFjZW1l
bnQgZm9yIHZmc19wYXRoX2xvb2t1cCBvbiBrZXJuZWwgMy4xMiBhbmQgbGF0
ZXIgKi8NCisvKioNCisgKiB2ZnNfcGF0aF9sb29rdXAgLSBsb29rdXAgYSBm
aWxlIHBhdGggcmVsYXRpdmUgdG8gYSBkZW50cnktdmZzbW91bnQgcGFpcg0K
KyAqIEBkZW50cnk6ICBwb2ludGVyIHRvIGRlbnRyeSBvZiB0aGUgYmFzZSBk
aXJlY3RvcnkNCisgKiBAbW50OiBwb2ludGVyIHRvIHZmcyBtb3VudCBvZiB0
aGUgYmFzZSBkaXJlY3RvcnkNCisgKiBAbmFtZTogcG9pbnRlciB0byBmaWxl
IG5hbWUNCisgKiBAZmxhZ3M6IGxvb2t1cCBmbGFncw0KKyAqIEBwYXRoOiBw
b2ludGVyIHRvIHN0cnVjdCBwYXRoIHRvIGZpbGwNCisgKi8NCitpbnQgbm5w
ZnNfcGF0aF9sb29rdXAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qg
dmZzbW91bnQgKm1udCwNCisJCSAgICBjb25zdCBjaGFyICpuYW1lLCB1bnNp
Z25lZCBpbnQgZmxhZ3MsDQorCQkgICAgc3RydWN0IHBhdGggKnBhdGgpDQor
ew0KKyNpZiAwDQorCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorCWludCBlcnI7
DQorCW5kLnJvb3QuZGVudHJ5ID0gZGVudHJ5Ow0KKwluZC5yb290Lm1udCA9
IG1udDsNCisJQlVHX09OKGZsYWdzICYgTE9PS1VQX1BBUkVOVCk7DQorCS8q
IHRoZSBmaXJzdCBhcmd1bWVudCBvZiBkb19wYXRoX2xvb2t1cCgpIGlzIGln
bm9yZWQgd2l0aCBMT09LVVBfUk9PVCAqLw0KKwllcnIgPSBkb19wYXRoX2xv
b2t1cChBVF9GRENXRCwgbmFtZSwgZmxhZ3MgfCBMT09LVVBfUk9PVCwgJm5k
KTsNCisJaWYgKCFlcnIpDQorCQkqcGF0aCA9IG5kLnBhdGg7DQorCXJldHVy
biBlcnI7DQorI2VuZGlmDQorCXJldHVybiAtMTsNCit9DQorI2VuZGlmDQor
DQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9jayBpcyBpbiBjYWNoZQ0K
ICAqLw0KQEAgLTI5MCw3ICszMjAsMTMgQEAgbm5wZnNfYmxvY2tfZXh0ZW5k
KHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBiYWNrbm9kZSA9IGJhY2tm
aWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAgIG11dGV4X2xvY2soJmJh
Y2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJldCA9IHZtdHJ1bmNhdGUo
YmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQorI2Vsc2UNCisgICAgcmV0
ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRydW5jYXRlX3NldHNpemUo
YmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQorI2VuZGlmDQogICAgIG11
dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KICAgICANCiAgICAg
ZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpAQCAtMzE4LDE1ICszNTQs
MjcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9k
ZQ0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZTX0ZST01fWE5P
REUobm9kZSk7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBYTk9ERV9U
T19WTk9ERShub2RlKTsNCiAgICAgaW50IGZsYWdzID0gT19MQVJHRUZJTEUg
fCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vs
c2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAg
ICB1aWRfdCBzYXZldWlkOw0KICAgICBnaWRfdCBzYXZlZ2lkOw0KKyNlbHNl
DQorICAgIGt1aWRfdCBzYXZldWlkOw0KKyAgICBrZ2lkX3Qgc2F2ZWdpZDsN
CisjZW5kaWYNCiAgICAgaW50IHJldDsNCiAjaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCiAgICAgY29uc3Qgc3Ry
dWN0IGNyZWQgKm9sZF9jcmVkOw0KICAgICBzdHJ1Y3QgY3JlZCAqb3ZlcnJp
ZGVfY3JlZDsNCiAjZW5kaWYNCiANCisgICAgKHZvaWQpc2F2ZXVpZDsNCisg
ICAgKHZvaWQpc2F2ZWdpZDsNCisNCiAgICAgQlVHX09OKCFubnBmc3ApOw0K
ICAgICBCVUdfT04oZmxhZ3MgJiBPX0NSRUFUICYmIGZpbGUgIT0gTlVMTCk7
DQogDQpAQCAtMzY2LDEwICs0MTQsMjcgQEAgbm5wZnNfYmxvY2tfb3Blbihz
dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBvbGRfY3JlZCA9IG92ZXJy
aWRlX2NyZWRzKG92ZXJyaWRlX2NyZWQpOw0KICNlbmRpZg0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAg
ICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5u
cGZzcC0+Y2FjaGVyb290LA0KIAkJCSAgY2FjaGVuYW1lLA0KIAkJCSAgZmxh
Z3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQogCQkJICAmbmQp
Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTIsMCkNCisgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+
Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2FjaGVuYW1l
LA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAs
DQorCQkJICAmbmQucGF0aCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICByZXQgPSBubnBmc19w
YXRoX2xvb2t1cChubnBmc3AtPmNhY2hlZGlyLCBubnBmc3AtPmNhY2hlcm9v
dCwNCisJCQkgIGNhY2hlbmFtZSwNCisJCQkgIGZsYWdzICYgT19DUkVBVCA/
IExPT0tVUF9QQVJFTlQgOiAwLA0KKwkJCSAgJm5kLnBhdGgpOw0KKyNlbHNl
DQorICAgIHJldCA9IG5ucGZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVk
aXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJ
CSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJ
ICAmcGF0aCk7DQorI2VuZGlmDQogICAgIGlmIChyZXQpIHsNCiAJdWludDMy
X3Qgbm1hc2tzID0gbm9kZS0+ZGF0YS5ubWFza3M7DQogCXVpbnQzMl90IG1h
c2s7DQpAQCAtMzk2LDE2ICs0NjEsMzcgQEAgbm5wZnNfYmxvY2tfb3Blbihz
dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICANCiAgICAgaWYgKGZsYWdz
ICYgT19DUkVBVCkgew0KIAkvKiBYWFggbW9kZSBiaXRzIG9uIGNyZWF0ZSAt
LSBTX0lSVVNSfFNfSVdVU1IgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxLDApDQogCXN0cnVjdCBkZW50cnkgKmRl
bnRyeSA9IGxvb2t1cF9jcmVhdGUoJm5kLCAwKTsJDQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkvKiBU
T0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCksIGlz
IHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ICovDQorCXN0cnVjdCBk
ZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIE5V
TEwsICZuZC5wYXRoLCAwKTsJDQorI2Vsc2UNCisJLyogVE9ETzogY2hlY2sg
dGhlIGNhbGwgdG8ga2Vybl9wYXRoX2NyZWF0ZSgpLCBpcyB0aGUgc2Vjb25k
IGFyZ3VtZW50IG9wdGlvbmFsPyAqLw0KKwlzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkgPSBrZXJuX3BhdGhfY3JlYXRlKEFUX0ZEQ1dELCBOVUxMLCAmcGF0aCwg
MCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsNCiAJICAg
IHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAg
ICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBk
ZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICAv
KiBUT0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0
ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9
IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwg
U19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZWxzZQ0KKwkgICAgLyogVE9ETzog
c2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19jcmVhdGU6IGJvb2wg
d2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAgICByZXQgPSB2ZnNfY3Jl
YXRlKHBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19J
V1VTUiwgMCk7DQorI2VuZGlmDQogCSAgICBkcHV0KGRlbnRyeSk7DQogCX0N
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KIAltdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lu
b2RlLT5pX211dGV4KTsNCiAJcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNl
DQorCW11dGV4X3VubG9jaygmcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0
ZXgpOw0KKwlwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogDQogCWlmIChy
ZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNfYmxvY2tfb3BlbiglcykgY3Jl
YXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQpAQCAtNDIx
LDE0ICs1MDcsMjMgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf
bm9kZSAqbm9kZQ0KICAgICB9IGVsc2Ugew0KICNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQogCXN0cnVjdCBmaWxl
ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50
LCBmbGFncyk7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgICAgIHN0cnVjdCBmaWxl
ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50
LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJc3RydWN0IHBh
dGggdG1wX3BhdGggPSB7IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRyeSA9
IG5kLnBhdGguZGVudHJ5IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9
IGRlbnRyeV9vcGVuKCZ0bXBfcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgp
KTsNCisjZWxzZQ0KKyAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlf
b3BlbigmcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCiAjZW5kaWYN
CiAJaWYgKElTX0VSUihmKSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsN
CiAJICAgIHByaW50aygibm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWls
ZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVi
dWdfb29wcygpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQor
I2Vsc2UNCisJICAgIHBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiAJfSBl
bHNlIHsNCiAJICAgICpmaWxlID0gZjsNCiAJfQ0KZGlmZiAtdXByTiAtWG5v
ZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMg
YXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19jb21tb24u
Yw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIw
MDYtMTItMTEgMTc6MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1m
b3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDE2
LTAxLTEzIDE4OjU4OjU3LjYxMDgzMTkxMCArMDEwMA0KQEAgLTExMiwxMCAr
MTEyLDE1IEBAIG5ucGZzX3ByaW50X2FsaWFzZXMoY29uc3Qgc3RydWN0IGlu
b2RlICoNCiB2b2lkDQogbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0
IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxp
c3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2Rl
ICphbGlhczsNCisjZW5kaWYNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5
Ow0KICAgICBpbnQgYmFpbG91dCA9IDEwMDsNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFz
ID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAh
PSAmaW5vZGUtPmlfZGVudHJ5KSB7DQogCWlmICgtLWJhaWxvdXQgPCAwKSB7
DQpAQCAtMTMxLDYgKzEzNiwyNCBAQCBubnBmc19wcmludF9hbGlhc2VzX3Jl
YWwoY29uc3Qgc3RydWN0IGluDQogCX0NCiAJYWxpYXMgPSBhbGlhcy0+bmV4
dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l
bnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFz
KSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5
LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VuZGlmDQorCWlm
ICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4iKTsNCisJ
ICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAgIHByaW50
aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQorCQkg
ICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAgaWYgKG5u
cGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJCXBy
aW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5kaWYNCiAg
ICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCmRpZmYgLXVwck4gLVhub2RpZmYu
dHh0IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEtZm9y
LWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxh
LWN2cy9ubnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0IDE4OjMz
OjM2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgv
bm5wZnMvbGludXgvbm5wZnNfZGV2LmMJMjAxNi0wMS0xNCAwMDozNDoxNS4y
OTEwNDQ3NDcgKzAxMDANCkBAIC0zMDAsNyArMzAwLDkgQEAgbm5wZnNfaW52
YWxpZGF0ZV9hbGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBGU0RF
QihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGluZ1xu
IikpOw0KIA0KICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
NykNCiAgICAgaW52YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsNCisjZW5k
aWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZyZWVfYWxs
X25ucGZzX25vZGVzIGRvbmVcbiIpKTsNCiB9DQpAQCAtNTA1LDEyICs1MDcs
MjMgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0
DQogLyoNCiAgKiBOb3QgdXNlZC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQN
CiBubnBmc19kZXZpb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg
ZmlsZSAqZmlsZSwNCiAJICAgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln
bmVkIGxvbmcgYXJnKQ0KKyNlbHNlDQorc3RhdGljIGxvbmcNCitubnBmc191
bmxvY2tlZF9kZXZpb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJICAgICAg
IHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRp
Zg0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM2KQ0KICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl
dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KIAkJICAgICAgIGlu
b2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAgICBO
TlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBm
bGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5kX2lu
b2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAg
cmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KQEAgLTk1Myw3ICs5NjYsMTEgQEAg
c3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAgICBy
ZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19kZXZ3
cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAg
aW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tl
ZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQog
ICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5u
cGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArOTg1LDEzIEBAIG5ucGZz
X2luaXRfZGV2aWNlKHZvaWQpDQogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJihu
bnBmc1tpXS53YWl0X3F1ZXVlKSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tp
XS5tZXNzYWdlcSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tpXS5zbGVlcHEp
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzcpDQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmluYWN0aXZlX3NlbSk7
DQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmNoYW5uZWxfc2VtKTsNCisjZWxz
ZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmluYWN0aXZlX3NlbSwgMSk7DQor
CXNlbWFfaW5pdCgmbm5wZnNbaV0uY2hhbm5lbF9zZW0sIDEpOw0KKyNlbmRp
Zg0KIAlJTklUX0xJU1RfSEVBRCgmbm5wZnNbaV0uaW5hY3RpdmVfbGlzdCk7
DQogCW5ucGZzW2ldLm5ub2RlcyA9IDA7DQogICAgIH0NCmRpZmYgLXVwck4g
LVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2lub2Rl
b3BzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19p
bm9kZW9wcy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfaW5v
ZGVvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA0LjAwMDAwMDAwMCArMDIwMA0K
KysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfaW5v
ZGVvcHMuYwkyMDE2LTAxLTE0IDAwOjQxOjA4Ljg2MzA2OTY4MCArMDEwMA0K
QEAgLTQwLDYgKzQwLDcgQEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGV2
Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2RpcmVudC5oPg0KICNpbmNs
dWRlIDxubnBmcy9ubnBmc19zeXNjYWxscy5oPg0KKyNpbmNsdWRlIDxsaW51
eC9haW8uaD4NCiAjaW5jbHVkZSA8bGludXgvYmluZm10cy5oPg0KICNpbmNs
dWRlIDxsaW51eC9maWxlLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAu
aD4NCkBAIC01NCwxMSArNTUsMjMgQEAgUkNTSUQoIiRJZDogbm5wZnNfaW5v
ZGVvcHMuYyx2IDEuMjI2IDIwMQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3lu
Y19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkN
CiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNl
DQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlmDQor
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5w
ZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisj
ZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1
Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTIxNCw4ICsyMjcsMTMgQEAgbm5w
ZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBm
c19sb29rdXAgbm93IHJldHVybnMgYSBkZW50cnkuDQogICovDQogDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
IHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVj
dCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBu
YW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkg
Kg0KK25ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0K
IHsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQog
ICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KQEAgLTQ3NCwxNSArNDkyLDE4
IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQN
CiAgKg0KICAqLw0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBpbnQgZGF0YXN5bmMpDQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiBzdGF0aWMgaW50
DQogbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3lu
YykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0
YXN5bmMpDQogI2VuZGlmDQogew0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMiwgNiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogICAgIHN0cnVj
dCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQogI2Vu
ZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5P
REUoZGVudHJ5KTsNCkBAIC00OTAsNiArNTExLDggQEAgbm5wZnNfZnN5bmMo
c3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5w
ZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2
b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxp
ZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0K
QEAgLTYyMiwxMSArNjQ1LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmln
aHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXgu
DQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigzLDEsMCkpDQogc3RhdGljIGludA0KIG5ucGZzX3Blcm1p
c3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UN
CitzdGF0aWMgaW50DQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRp
Zg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3Qg
cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz
LDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAg
ICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYg
SVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisj
ZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXAp
IG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBu
bnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC04MjMsMTQgKzg2MCwy
MyBAQCBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICogZmlsZSwN
CiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19h
aW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCSAgICAgICBjb25zdCBz
dHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0KIAkg
ICAgICAgbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQor
bm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlv
dl9pdGVyICp0bykNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7
DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiww
KQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxz
ZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNl
bmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50
cnktPmRfaW5vZGU7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZO
T0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQpAQCAtODM4LDEzICs4ODQs
MjEgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0KIAlO
TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVwKTogdG9r
ZW5zOiAweCV4XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tlbnMpKTsN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNiwwKQ0KICAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUs
IE5OUEZTX0RBVEFfUiwgcG9zLCBwb3MgKyBjb3VudCk7DQorI2Vsc2UNCisg
ICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRB
X1IsIGlvY2ItPmtpX3BvcywgaW9jYi0+a2lfcG9zICsgY291bnQpOw0KKyNl
bmRpZg0KICAgICBpZiAoZXJyb3IpIHsNCiAJTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX3JlYWRfZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVy
cm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KICAgICANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K
ICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2NiLCBpb3Ys
IG5yX3NlZ3MsIHBvcyk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBnZW5lcmlj
X2ZpbGVfcmVhZF9pdGVyKGlvY2IsIHRvKTsNCisjZW5kaWYNCiAgICAgTk5Q
RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZTogZXJyb3IgPSAl
ZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCkBAIC04
NTMsMTcgKzkwNywzMCBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQog
bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJCWNvbnN0
IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQog
CQlsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3RhdGljIHNzaXplX3QNCitubnBm
c193cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9p
dGVyICpmcm9tKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsN
CiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDAp
DQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbHNl
DQorICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vu
ZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRy
eS0+ZF9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5P
REVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGxvZmZfdCByZWFscG9z
ID0gcG9zOw0KKyNlbHNlDQorICAgIGxvZmZfdCByZWFscG9zID0gaW9jYi0+
a2lfcG9zOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZO
T1BTLCAoIm5ucGZzX2Fpb193cml0ZSglcCk6IHRva2VuczogMHgleFxuIiwN
CiAJCQkgaW5vZGUsIHhuLT50b2tlbnMpKTsNCkBAIC04NzcsNyArOTQ0LDEx
IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCXJl
dHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2Vu
ZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBpb3YsIG5yX3NlZ3MsIHBvcyk7
DQorI2Vsc2UNCisgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfd3JpdGVfaXRl
cihpb2NiLCBmcm9tKTsNCisjZW5kaWYNCiAgICAgaWYgKCFJU19FUlJfVkFM
VUUoZXJyb3IpKQ0KIAl4bi0+ZmxhZ3MgfD0gTk5QRlNfREFUQV9ESVJUWTsg
LyogWFhYIHJhY2UgKi8NCiANCkBAIC04ODUsOSArOTU2LDE5IEBAIG5ucGZz
X2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICAgIHJldHVybiBl
cnJvcjsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19jcmVhdGUo
c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJ
ICAgICBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQor
c3RhdGljIGludA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwg
c3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwg
c3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor
bm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBib29sIGV4Y2wpDQor
I2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAg
c3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTEwMzgsOCArMTExOSwxMyBA
QCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQog
ICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRpYyBpbnQNCiBu
bnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5w
ZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnksIHVtb2RlX3QgbW9kZSkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVj
dCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47
DQpAQCAtMTI1Miw4ICsxMzM4LDEzIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3lt
bGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRl
eC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0
cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZp
bGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShz
dHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0K
KyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zm
c2V0LCBiZWdpbl9vZmZzZXQ7DQpAQCAtMTMyOCw2ICsxNDE5LDcgQEAgbm5w
ZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAkJICAg
IChpbnQpIHhkaXJlbnQtPmRfbmFtbGVuLA0KIAkJICAgIChpbnQpIChvZmZz
ZXQrYmVnaW5fb2Zmc2V0KSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogCSAgICBpZiAoeGRpcmVu
dC0+ZF9maWxlbm8gIT0gMA0KIAkJJiYgKGZpbGxkaXJfZXJyb3IgPSBmaWxs
ZGlyIChkaXJlbnQsDQogCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KQEAg
LTEzMzksNiArMTQzMSwxOCBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxl
ICogZmlsZSwgdm9pZCAqDQogCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGly
OiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KIAkJYnJlYWs7DQogCSAgICB9
DQorI2Vsc2UNCisJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQor
CQkmJiAoZmlsbGRpcl9lcnJvciA9IGRpcl9lbWl0IChjdHgsDQorCQkJCSAg
ICAgeGRpcmVudC0+ZF9uYW1lLA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfbmFt
bGVuLA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfZmlsZW5vLA0KKwkJCQkgICAg
IERUX1VOS05PV04pKSA8IDApIHsNCisJCU5OUEZTREVCKFhERUJSRUFERElS
LA0KKwkJCSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZpbGxk
aXJfZXJyb3IpKTsNCisJCWJyZWFrOw0KKwkgICAgfQ0KKyNlbmRpZg0KIAkg
ICAgb2Zmc2V0ICs9IHhkaXJlbnQtPmRfcmVjbGVuOw0KIA0KIAkgICAgaWYg
KHhkaXJlbnQtPmRfcmVjbGVuID09IDApIHsNCkBAIC0xNDkwLDYgKzE1OTQs
OCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUs
DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9y
ID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RF
QihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQog
ICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE1
MzMsOCArMTYzOSwxMyBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls
ZSwgZmxfb3duZXJfDQogICogUmV0dXJuIDEgaWYgYGRlbnRyeScgaXMgc3Rp
bGwgdmFsaWQsIG90aGVyd2lzZSAwLg0KICAqLw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMg
aW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMgaW50
DQotbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg
c3RydWN0IG5hbWVpZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0ZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykNCisj
ZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllf
VE9fSU5PREUoZGVudHJ5KTsNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo
Im5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUuKnNcIiAoaW5vZGUgJXApXG4i
LA0KQEAgLTE1ODIsOSArMTY5MywxNSBAQCBubnBmc19kX3JldmFsaWRhdGUo
c3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIHJldHVybiAwOw0KIH0NCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM4KQ0KIHN0YXRpYw0KIGludA0KIG5ucGZzX2RfZGVsZXRlKHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSkNCisjZWxzZQ0KK3N0YXRpYw0KK2ludA0KK25ucGZz
X2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisjZW5k
aWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGU7DQogICAgIHN0cnVj
dCBubnBmc19ub2RlICp4bjsNCkBAIC0xNzA3LDYgKzE4MjQsOCBAQCBubnBm
c193cml0ZV9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwNCiANCiAJaW50
IGVycm9yOw0KIAkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAlkbyB7DQogCQll
cnJvciA9IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGlu
ZywgMCwgbGVuLA0KIAkJCQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJ
QkxFLA0KQEAgLTE3NDcsNiArMTg2Niw4IEBAIG5ucGZzX3JlYWRfYmFja3Bh
Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3RydWN0IHBhZ2UgKmJhY2tw
YWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCisJKHZvaWQpb2Zm
c2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBp
bmcsIG4sIGJhY2tmaWxlKTsNCiAJaWYgKCFJU19FUlIoYmFja3BhZ2UpKSB7
DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2twYWdlKTsNCkBAIC0xODk0
LDExICsyMDE1LDE3IEBAIG5ucGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0IGZp
bGUgKmZpbGUsIHMNCiANCiAJaWYgKG1vZHNpemUgPiBpX3NpemVfcmVhZChp
bm9kZSkpIHsNCiAJCWludCBlcnJvcjsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogCQllcnJvciA9IHZtdHJ1
bmNhdGUoaW5vZGUsIG1vZHNpemUpOw0KKyNlbHNlDQorCQllcnJvciA9IGlu
b2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNpemUpOw0KKwkJaWYoIWVycm9y
KQ0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIG1vZHNpemUpOw0KKyNl
bmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJpbnRrKCJubnBmc19wcmVw
YXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAlZFxuIiwNCiAJCQkgICAg
ICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUcoKTsgLyogWFhYIG5vdCBj
b3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBYWFggbm90IGNvcnJlY3Qg
Ki8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE5OTMsMTAgKzIxMjAsMTggQEAgbm5w
ZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Yw0KIA0KIAkv
KiB6ZXJvIHRoZSBzdGFsZSBwYXJ0IG9mIHRoZSBwYWdlIGlmIHdlIGRpZCBh
IHNob3J0IGNvcHkgKi8NCiAJaWYgKGNvcGllZCA8IGxlbikgew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJ
CXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSwgS01fVVNFUjApOw0K
KyNlbHNlDQorCQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UpOw0K
KyNlbmRpZg0KIAkJbWVtc2V0KGthZGRyICsgZnJvbSArIGNvcGllZCwgMCwg
bGVuIC0gY29waWVkKTsNCiAJCWZsdXNoX2RjYWNoZV9wYWdlKHBhZ2UpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAJCWt1bm1hcF9hdG9taWMoa2FkZHIsIEtNX1VTRVIwKTsNCisjZWxz
ZQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkcik7DQorI2VuZGlmDQogCX0NCiAN
CiAJbm5wZnNfY29tbWl0X3dyaXRlKGZpbGUsIHBhZ2UsIGZyb20sIGZyb20g
KyBjb3BpZWQpOw0KQEAgLTIwMjcsOCArMjE2MiwxMyBAQCBzdHJ1Y3QgYWRk
cmVzc19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvDQogICovDQogDQogc3Ry
dWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19maWxlX29wZXJhdGlvbnMgPSB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTYsMCkNCiAgICAgLmFpb19yZWFkCT0gbm5wZnNfYWlvX3JlYWQsDQogICAg
IC5haW9fd3JpdGUJPSBubnBmc19haW9fd3JpdGUsDQorI2Vsc2UNCisgICAg
LnJlYWRfaXRlcgk9IG5ucGZzX3JlYWRfaXRlciwNCisgICAgLndyaXRlX2l0
ZXIJPSBubnBmc193cml0ZV9pdGVyLA0KKyNlbmRpZg0KICAgICAubW1hcAk9
IG5ucGZzX2ZpbGVfbW1hcCwNCiAgICAgLm9wZW4JPSBubnBmc19vcGVuLA0K
ICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCkBAIC0yMDQxLDcgKzIxODEs
MTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29wZXJh
dA0KIH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kaXJf
b3BlcmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxMSwwKQ0KICAgICAucmVhZGRpcgk9IG5ucGZzX3Jl
YWRkaXIsDQorI2Vsc2UNCisgICAgLml0ZXJhdGUgICAgPSBubnBmc19pdGVy
YXRlLA0KKyNlbmRpZg0KICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiB9
Ow0KIA0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMv
bGludXgvbm5wZnNfbG9hZC5jIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMv
bGludXgvbm5wZnNfbG9hZC5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgv
bm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6NDEuMDAwMDAwMDAwICsw
MTAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBm
c19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi44MzAxMDM1MTcgKzAxMDAN
CkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0
aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg
bm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAgICAgICJu
bnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5ucGZzX2dl
dF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAgICAgICAgbm5wZnNf
bW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAgICBraWxs
X2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAgICAgICAgIFRISVNf
TU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2
cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS1mb3ItbGludXgt
My4xOC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMNCi0tLSBhcmxhLWN2
cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wOC0wOCAyMjo0
MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4
L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDE2LTAxLTE0IDAwOjQ0
OjIxLjU2NjA4MTI5OCArMDEwMA0KQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRp
YyB2b2lkDQogbm5wZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5
KQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19kX3JlbW92
ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2Fj
aGVfbG9jayk7DQogICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7DQogICAgIHNw
aW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9s
b2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2soZGVudHJ5
KTsNCisgICAgc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5k
aWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7DQogICAgIGRwdXQoZGVudHJ5KTsN
CiB9DQpAQCAtMTIxLDcgKzEyNywxMSBAQCBubnBmc19tZXNzYWdlX2luc3Rh
bGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgIHN0cnVjdCBpbm9kZSAqZGks
ICppbm9kZTsNCiAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsN
CiAgICAgc3RydWN0IHFzdHIgc3FzdHI7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlz
dF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUg
KmFsaWFzOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1T
RywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0K
QEAgLTE3NiwxMiArMTg2LDI0IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5v
ZGUoc3RydWN0IG5ucGZzICoNCiAgICAgICoNCiAgICAgICovDQogICAgIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hp
bGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlz
dF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNw
aW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQp
Ow0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbGlmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBo
bGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAmZGktPmlfZGVu
dHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hf
ZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vu
ZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAg
IGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2Fj
aGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRf
bG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91
bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0g
ZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNH
LA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAs
IGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU1LDkgQEAgbm5wZnNfbWVz
c2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1dChk
ZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlh
cy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9DQog
ICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxs
bm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5Miwx
MSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBmcyAq
DQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0KTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5
Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNlDQorICAg
IGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5maXJzdCwg
c3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogICAgIA0KICAg
ICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0
dHIgbmFtZTolc1xuIiwNCiAJCSAgICAgICBkZW50cnktPmRfbmFtZS5uYW1l
KSk7DQpAQCAtMzk2LDE3ICs0MjQsMzQgQEAgbm5wZnNfbWVzc2FnZV9pbnN0
YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0KIHN0YXRpYyB2b2lkDQogY2xlYXJf
YWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgcGFyZW50
KQ0KIHsNCisgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAg
c3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBo
bGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiANCiAgYWdhaW46DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN
CiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAg
LyogVE9ETzogZmluZCB0aGUgZGVudHJ5IHRvIGxvY2sgKi8NCisgICAgLypz
cGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAg
ICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUg
KGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRy
eSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk
ZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQor
I2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5v
ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBs
aXN0X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0
YSAqeGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywg
c3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50
cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZT
IFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJ
ICAgIGJyZWFrOw0KQEAgLTQ0MiwxNCArNDg3LDI2IEBAIGNsZWFyX2FsbF9j
aGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRo
cm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNo
aWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNh
Y2hlX2xvY2spOw0KKyNlbHNlDQorCQkvKiBUT0RPOiB1bmxvY2sgdGhlIGRl
bnRyeSAqLw0KKwkJLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOyov
DQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQlnb3Rv
IGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFzLT5u
ZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91bmxvY2so
JmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiB1bmxvY2sg
dGhlIGRlbnRyeSAqLw0KKyAgICAvKnNwaW5fdW5sb2NrKCZkZW50cnktPmRf
bG9jayk7Ki8NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIHZvaWQNCkBAIC03
MjQsNyArNzgxLDExIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qg
bm5wZnMgKm5ucGYNCiANCiAJdWludDY0X3QgYmxvY2tzaXplID0gbWVzc2Fn
ZS0+YmxvY2tzaXplOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAo
Ii4iLCAwLCAmbmQpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIu
IiwgMCwgJm5kLnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJ
ICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4u
DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51
eC9ubnBmc19ub2RlLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51
eC9ubnBmc19ub2RlLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBm
c19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDAN
CisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX25v
ZGUuYwkyMDE2LTAxLTEzIDIwOjQ1OjQwLjg3MDIxNzk0NCArMDEwMA0KQEAg
LTEzMiw3ICsxMzIsMTIgQEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCB1aW50Ng0KIAlwcmludGsoIm5ucGZzX3NldHNpemU6IHRydW5j
YXRpbmcgQDB4JWxsdVxuIiwNCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxv
bmcpc2l6ZSk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBz
aXplKTsgLyogWFhYIHJldHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9u
ZXdzaXplX29rKGlub2RlLCBzaXplKSkNCisJICAgIHRydW5jYXRlX3NldHNp
emUoaW5vZGUsIHNpemUpOw0KKyNlbmRpZg0KIAlubnBmc19ibG9ja190cnVu
Y2F0ZSh4biwgc2l6ZSk7DQogICAgIH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwx
OCBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRy
DQogCXN0cnVjdCB0aW1lc3BlYyBub3RpbWUgPSB7MH07DQogDQogCWlub2Rl
LT5pX21vZGUgICA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsN
CiAJaW5vZGUtPmlfZ2lkICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91
aWQgICAgPSBLVUlEVF9JTklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAgPSBL
R0lEVF9JTklUKDApOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsg
ID0gMTsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRp
Zg0KIAlpbm9kZS0+aV9hdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210
aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0K
QEAgLTE2OSw3ICsxODMsMTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBz
dHJ1Y3Qgbm5wZnNfYXR0cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIp
KQ0KIAlpbm9kZS0+aV9naWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlm
IChYQV9WQUxJRF9OTElOSyhhdHRyKSkNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5r
ICA9IGF0dHItPnhhX25saW5rOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9k
ZSwgYXR0ci0+eGFfbmxpbmspOw0KKyNlbmRpZg0KICAgICANCiAgICAgaWYg
KFhBX1ZBTElEX1NJWkUoYXR0cikpIHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9k
ZSwgYXR0ci0+eGFfc2l6ZSk7DQpAQCAtNTEwLDExICs1MjgsMTkgQEAgbm5w
ZnNfaGFzX3BhZyhjb25zdCBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0K
IG5ucGZzX25vZGVfdXNlcnMoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7DQorI2Vsc2UNCisgICAg
c3RydWN0IGhsaXN0X25vZGUgKnBvczsNCisjZW5kaWYNCiAgICAgaW50IHVz
ZXJzID0gMDsNCiAgICAgDQogICAgIC8qIFhYWCB0aGlzIHNob3VsZCBwcm9i
YWJseSBiZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgbGlzdF9m
b3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAg
ICBobGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisj
ZW5kaWYNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShw
b3MsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KIAlpZiAobm5wZnNfZGNv
dW50KGRlbnRyeSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCmRpZmYgLXVwck4g
LVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX3N5c2Nh
bGxzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19z
eXNjYWxscy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lz
Y2FsbHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAwMDAwMCArMDIwMA0K
KysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfc3lz
Y2FsbHMuYwkyMDE2LTAxLTE0IDAwOjQ2OjA4LjQ2ODA4Nzc0MyArMDEwMA0K
QEAgLTQyLDcgKzQyLDkgQEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lz
Y2FsbHMuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+DQog
I2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICNpbmNsdWRlIDxsaW51
eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNpbmNsdWRlIDxsaW51eC9zbXAu
aD4NCiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPg0KIA0KQEAgLTUwLDYg
KzUyLDExIEBADQogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQogI2Vu
ZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigzLDcsMCkNCisjdW5kZWYgU1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0
aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtl
cm5lbCAzLjcgYW5kIGxhdGVyLCBzZSBubnBmc19zeXNjYWxscy1sb3NzYWdl
LmMgKi8NCisjZW5kaWYNCisNCiAjaWYgMA0KICNpZmRlZiBDT05GSUdfQ09N
UEFUDQogI2luY2x1ZGUgPGxpbnV4L2lvY3RsMzIuaD4NCkBAIC04MiwxMiAr
ODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEgew0KICAgICB1
bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0YTsNCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2
KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlu
b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25l
ZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7DQorI2Vsc2UNCitzdGF0
aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmls
ZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJn
KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9u
cyBubnBmc19wcm9jZnNfZm9wcyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAgICAuaW9jdGwgPSBu
bnBmc19wcm9jZnNfaW9jdGwsDQorI2Vsc2UNCisgICAgLnVubG9ja2VkX2lv
Y3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbmRpZg0KIH07DQogDQog
DQpAQCAtMTYwLDggKzE3NywxMCBAQCBubnBmc19nZXRfcGFnX3NlYyh2b2lk
KQ0KIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0KLSNlbHNl
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNCwwKQ0KICAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0K
KyAgICB7IGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1
aWQudmFsOyB9DQogI2VuZGlmDQogfQ0KIA0KQEAgLTE5OSw3ICsyMTgsMTIg
QEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBG
U0RFQihYREVCU1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdp
LT5uZ3JvdXBzKSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0g
MTsgaSA+PSAwOyBpLS0pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQ
X0FUKGdpLCBpKTsNCisjZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBf
QVQoZ2ksIGkpOw0KKwlnaWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2Vu
ZGlmDQogCWlmICgobm5wZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xM
SU0gJiYgKG5ucGZzX3BhZ190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsN
CiAJICAgIE5OUEZTREVCKFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6
IEV4aXN0aW5nIHBhZyAldSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpA
QCAtMjIwLDcgKzI0NCwxMiBAQCBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQp
DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnQtPnVpZDsNCiAjZWxz
ZQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBnZXRfY3VycmVudF9n
cm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNCwwKQ0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50
X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBrdWlkID0gY3VycmVudF91
aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0ga3VpZC52YWw7DQorI2Vu
ZGlmDQogI2VuZGlmDQogICAgIGludCBpOw0KIA0KQEAgLTIzMCw3ICsyNTks
MTEgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIA0KICAgICBpID0g
ZmluZF9wYWcoZ2kpOw0KICAgICBpZiAoaSAhPSBOTlBGU19QQUdfTk9URk9V
TkQpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTQsMCkNCiAJcmV0ID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQor
CXsga2dpZF90IGtnaWQgPSBHUk9VUF9BVChnaSwgaSk7IHJldCA9IGtnaWQu
dmFsOyB9DQorI2VuZGlmDQogDQogICAgIHB1dF9ncm91cF9pbmZvKGdpKTsN
CiANCkBAIC0yODAsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFn
X3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAg
ICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3
X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdf
Z2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQor
ICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQo
cGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAg
ZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBH
Uk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsg
fQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5l
d19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzI1
LDggKzM2NSwxMCBAQCBubnBmc19nZXRfcGFnKCkNCiANCiAjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
cmV0dXJuIGN1cnJlbnQtPnVpZDsNCi0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgcmV0
dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3Vp
ZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KICNlbmRp
Zg0KIH0NCiANCkBAIC00MzIsNyArNDc0LDcgQEAgbm5wZnNfc2V0Z3JvdXBz
MTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRpZiAvKiBTWVNDQUxM
SEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCi1zdHJ1Y3Qg
ZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxlX2hhbmRsZSB7DQog
ICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3QgaW5vZGU7DQogICAg
IF9fdTMyIGdlbjsNCkBAIC01MjIsMTEgKzU2NCwxOSBAQCBubnBmc19kZWJ1
Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9jdGwNCiBzdGF0aWMgc3RydWN0
IGRlbnRyeSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0
YSAqbmQsIGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCiB7DQotICAg
IGNoYXIgKmtuYW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAgICBpbnQg
ZXJyb3IgPSAwOw0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVzZXJfcGF0
aCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsNywwKQ0KKyAgICBjaGFyICprbmFtZTsNCisgICAga25hbWUgPSBnZXRu
YW1lKHVzZXJfcGF0aCk7DQorI2Vsc2UNCisgICAgY29uc3QgY2hhciAqa25h
bWU7DQorICAgIHN0cnVjdCBmaWxlbmFtZSAqZm5hbWU7DQorICAgIGZuYW1l
ID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyAgICBrbmFtZSA9IGZuYW1lLT5u
YW1lOw0KKyNlbmRpZg0KKw0KICAgICBpZiAoSVNfRVJSKGtuYW1lKSkNCiAJ
cmV0dXJuIEVSUl9QVFIoUFRSX0VSUihrbmFtZSkpOw0KICAgICBpZiAoZm9s
bG93KQ0KQEAgLTUzNCw4ICs1ODQsMTYgQEAgdXNlcl9wYXRoMmRlbnRyeSAo
c3RydWN0IG5hbWVpZGF0YSAqbmQsDQogDQogICAgIE5OUEZTREVCKFhERUJN
U0csICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1l
KSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwg
ZmxhZ3MsIG5kKTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IGtlcm5fcGF0aChr
bmFtZSwgZmxhZ3MsICYobmQtPnBhdGgpKTsNCisjZW5kaWYNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAg
IHB1dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIGttZW1fY2FjaGVfZnJl
ZShuYW1lc19jYWNoZXAsICh2b2lkICopa25hbWUpOw0KKyNlbmRpZg0KICAg
ICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVycm9yKTsNCiAgICAg
cmV0dXJuIG5kLT5wYXRoLmRlbnRyeTsNCkBAIC01NTksNyArNjE3LDExIEBA
IHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICBpZiAobXNnID09
IE5VTEwpDQogICAgICAgcmV0dXJuIC1FTk9NRU07DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg
bG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBsb2NrX2tl
cm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVyIGFkZGluZyBhbiBwcml2YXRl
IGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywg
KCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIpKTsNCiANCkBAIC02OTksNyAr
NzYxLDExIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIA0KICAg
ICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIHVubG9ja1xu
IikpOw0KICAgICBrZnJlZShtc2cpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgIHVubG9ja19rZXJu
ZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBzZWUgdGhlIGNvbW1lbnQg
YXQgbG9ja19rZXJuZWwoKSBhYm92ZSAqLw0KKyNlbmRpZg0KIA0KICAgICBy
ZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTc0OCw5ICs4MTQsMTUgQEAgc3lzX2Fm
cyAoaW50IG9wZXJhdGlvbiwNCiAJCSAgICAgICBhX2ZvbGxvd1N5bWxpbmtz
KTsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lv
Y3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0K
IAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQor
I2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1
Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln
bmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsNCiAgICAgYWZzcHJvY2RhdGEg
YXJnczsNCiAgICAgbG9uZyByZXQ7DQpAQCAtODA3LDcgKzg3OSwxMSBAQCBz
dGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogICAgIG5ucGZz
X3Byb2Nmc19kaXItPm93bmVyID0gVEhJU19NT0RVTEU7DQogI2VuZGlmDQog
ICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDEwLDApDQogICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5Q
RlNfUFJPQ19OT0RFLCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxz
ZQ0KKyAgICBlbnRyeSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwg
MDY2NiwgTlVMTCwgJm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAg
ICAgaWYgKGVudHJ5ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywg
KCJubnBmc19pbml0X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KIAlyZW1vdmVf
cHJvY19lbnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQpAQCAt
ODE3LDcgKzg5Myw5IEBAIHN0YXRpYyBpbnQgbm5wZnNfaW5pdF9wcm9jZnMo
dm9pZCkNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3duZXIgPSBUSElTX01PRFVMRTsN
CiAjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+cHJvY19mb3BzID0gJm5ucGZz
X3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0KICNpZmRlZiBTWVNDQUxMQ09N
UEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0bDMyX2NvbnZlcnNpb24oQVJM
QV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJvY2ZzX2lvY3RsMzIpKSB7DQpk
aWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9u
bnBmc19zeXNjYWxscy1sb3NzYWdlLmMgYXJsYS1mb3ItbGludXgtMy4xOC9u
bnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxh
LWN2cy9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAx
MC0wOC0wOCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZv
ci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3Nh
Z2UuYwkyMDE2LTAxLTEzIDIxOjUxOjQ5LjY4MjQ1NzIxMyArMDEwMA0KQEAg
LTUwLDggKzUwLDE3IEBADQogUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMt
bG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAg
JCIpOw0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyogdGhlIG1ldGhvZCB0byByZWFk
ICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBvbiBrZXJuZWwgMy43IGFu
ZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKyNlbmRpZg0KKw0K
ICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPg0KKyNpZmRlZiBTWVNDQUxM
SEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93ZXJfYm91bmQgPSAma2VybmVs
X3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiB2b2lkICogX19hdHRy
aWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3RhYmxlKHZvaWQpOw0KIG5ucGZz
X3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19zeXNfY2FsbF90YWJsZSA9DQpA
QCAtNjYsNiArNzUsOCBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygo
d2VhaykpDQogI2lmZGVmIF9feDg2XzY0X18NCiBleHRlcm4gcndsb2NrX3Qg
dGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7DQogI2VuZGlm
DQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQogc3RhdGljIHZvaWQgKioNCiBn
ZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18NCkBA
IC03NCw2ICs4NSw3IEBAIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAgICAg
cmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2NrOw0KICNlbmRpZg0KIH0NCisj
ZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGludCANCiBrYWxsc3ltX2lzX2Vx
dWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29uc3QgY2hhciAqbmFtZSkNCkBA
IC0xNDIsNiArMTU0LDggQEAgdmVyaWZ5KHZvaWQgKipwKSB7DQogICAgIHJl
dHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0
aWMgaW5saW5lIGludCBsb29rc19nb29kKHZvaWQgKipwKQ0KIHsNCiAgICAg
aWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3VuZCB8fCAqcCA+PSAodm9pZCop
cCkNCkBAIC0xOTEsMyArMjA1LDUgQEAgbm5wZnNfZml4dXBfc3lzY2FsbF9s
b3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVybiAwOw0KIH0NCisNCisjZW5k
aWYNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2xp
bnV4L25ucGZzX3Zmc29wcy5jIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMv
bGludXgvbm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51
eC9ubnBmc192ZnNvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAwMDAw
MCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgv
bm5wZnNfdmZzb3BzLmMJMjAxNi0wMS0xMyAyMjo1NDo1NS4yMjc2ODU0MzIg
KzAxMDANCkBAIC01MCw3ICs1MCw5IEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zm
c29wcy5jLHYgMS4xMTEgMjAxMC8NCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5O
UEZTXTsNCiANCiBzdGF0aWMgdm9pZCBubnBmc19wdXRfc3VwZXIoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dy
aXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsNCisjZW5kaWYN
CiANCiBzdGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpOw0KIA0KQEAgLTU5LDcgKzYx
LDkgQEAgc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3Nv
cA0KICAgICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAg
ICBkcm9wX2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KICAgICBw
dXRfc3VwZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgd3JpdGVf
c3VwZXIJCTogbm5wZnNfd3JpdGVfc3VwZXIsDQorI2VuZGlmDQogICAgIHN0
YXRmcwkJOiBubnBmc19zdGF0ZnMsDQogfTsNCiANCkBAIC04Niw3ICs5MCwx
MSBAQCBubnBmc19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSkNCiAJICog
cm9vdCdzIHByaXZpbGlnZXMgKHVzdWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMg
bmVlZGVkKS4NCiAJICovDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7
DQorI2Vsc2UNCisJbXNnLmNyZWQudWlkID0gS1VJRFRfSU5JVCgwKTsNCisj
ZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gMDsNCiAJDQogCWVycm9yID0gbm5w
ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1z
ZykpOw0KQEAgLTEyMSw4ICsxMjksMTMgQEAgbWFrZV9yb290X2lub2RlKHN0
cnVjdCBubnBmcyAqbm5wZnNwKQ0KICAgICBYQV9TRVRfTU9ERSgmbm9kZS5h
dHRyLCBTX0lGRElSIHwgMDc3Nyk7DQogICAgIFhBX1NFVF9OTElOSygmbm9k
ZS5hdHRyLCAxMDApOw0KICAgICBYQV9TRVRfU0laRSgmbm9kZS5hdHRyLCAw
KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNCwwKQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIDApOw0KICAg
ICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNlbHNlDQorICAgIFhB
X1NFVF9VSUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgwKSk7DQorICAgIFhB
X1NFVF9HSUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgwKSk7DQorI2VuZGlm
DQogICAgIFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFf
U0VUX01USU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfQ1RJTUUo
Jm5vZGUuYXR0ciwgMCk7DQpAQCAtMTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jv
b3QgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAgIG5ucGZzLT5yb290
ID0gaW5vZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBoYW5kbGluZyAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDQs
MCkNCiAgICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQor
ICAgIGRwID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNlbmRpZg0KICAgICBu
bnBmc19kX2luaXQoZHApOw0KICAgICBzYi0+c19yb290ID0gZHA7DQogICAg
IHJldHVybiAwOw0KQEAgLTE3Nyw3ICsxOTQsMTEgQEAgbm5wZnNfcmVhZF9z
dXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICogcw0KICAgICBpZiAoZGF0YSAh
PSBOVUxMKSB7DQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQogCQ0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQog
CWVycm9yID0gcGF0aF9sb29rdXAoZGF0YSwgMCwgJm5kKTsNCisjZWxzZQ0K
KwllcnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vu
ZGlmDQogCWlmIChlcnJvcikNCiAJICAgIGRkZXYgPSBFUlJfUFRSKGVycm9y
KTsNCiAJZWxzZQ0KQEAgLTIyNSw2ICsyNDYsNyBAQCBubnBmc19maWxsX3N1
cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0K
IH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9z
eXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0
IGNoYXIgKmRldl9uYW1lLA0KQEAgLTIzMiwxMiArMjU0LDIzIEBAIG5ucGZz
X2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiB7DQogICAg
IHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5u
cGZzX2ZpbGxfc3VwZXIsIG1udCk7DQogfQ0KKyNlbHNlDQorc3RydWN0IGRl
bnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAq
ZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9u
YW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpIA0KK3sNCisgICAgcmV0dXJuIG1v
dW50X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1
cGVyKTsNCit9DQorI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5w
ZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0K
ICAgICBzYi0+c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAg
KiBYWFggaXMgdGhpcyBnb29kPyANCg==
---276651502-700296685-1452731421=:24061
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-700296685-1452731421=:24061--