[5080] in arla-drinkers

home help back first fref pref prev next nref lref last post

Re: PATCH v11: Arla CVS Current on Linux 2.6.3x to 4.4

daemon@ATHENA.MIT.EDU (Bo Branten)
Sat Feb 20 14:49:55 2016

From arla-drinkers-bounces@stacken.kth.se Sat Feb 20 19:49:55 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 7027 invoked from network); 20 Feb 2016 19:49:54 -0000
Received: from mx7.kth.se (130.237.48.48)
  by charon.mit.edu with SMTP; 20 Feb 2016 19:49:54 -0000
Received: from mx7.kth.se (localhost [127.0.0.1])
	by mx7.kth.se (Postfix) with ESMTP id CC10B1400DC;
	Sat, 20 Feb 2016 20:49:53 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx7.kth.se ([127.0.0.1])
	by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id sltluy7ZcqAd; Sat, 20 Feb 2016 20:49:40 +0100 (CET)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
	by mx7.kth.se (Postfix) with ESMTP;
	Sat, 20 Feb 2016 20:49:39 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id AA31714CB32;
	Sat, 20 Feb 2016 20:49:39 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id F17E314CB32; Sat, 20 Feb 2016 20:49:37 +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 EDC3114CAF4
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:49:37 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
 by mx5.kth.se (Postfix) with ESMTP id D504B24014B
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:49:37 +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]:42521
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 3BrSSNEIQ-NT for <arla-drinkers@stacken.kth.se>;
 Sat, 20 Feb 2016 20:49:35 +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>; Sat, 20 Feb 2016 20:49:35 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id AF4CABD1
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:49:35 +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 9ACC5BD0
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:49:30 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id 8F55844B8C; Sat, 20 Feb 2016 20:49:30 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id 8C6B944B8B
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:49:30 +0100 (CET)
Date: Sat, 20 Feb 2016 20:49:30 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v11: Arla CVS Current on Linux 2.6.3x to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150312080.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1602202047440.736@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110319280.18025@suiko.acc.umu.se>
 <alpine.DEB.2.10.1601150312080.11672@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-276651502-1872514844-1455997770=:736"
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-1872514844-1455997770=:736
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v11: Arla CVS Current on Linux 2.6.3x to 4.4

Corrected an error that stopped writing from work on Linux kernel 3.1 and 
later versions.

Bo Branten

---276651502-1872514844-1455997770=:736
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v11-arla-cvs-for-linux-2.6.3x-to-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1602202049300.736@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v11-arla-cvs-for-linux-2.6.3x-to-4.4

ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX2F0dHIuaA0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaAkyMDA2LTEwLTI0IDE4OjMzOjMwLjAwMDAw
MDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm
c19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAwMDAwMDAgKzAxMDAN
CkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBmc19hdHRyIHsNCiAg
ICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50MzJfdAkJeGFfdHlw
ZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QJCXhh
X3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZWxzZQ0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K
KyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90CQl4YV9naWQ7DQor
I2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisgICAgdWludDMyX3QJ
CXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgdWludDMyX3QJ
CXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRpbWU7DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaCBhcmxhL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5w
ZnNfbWVzc2FnZS5oDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2luY2x1ZGUv
bm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDktMDItMjQgMjE6MjA6NTUuMDAw
MDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTUyLDcgKzUyLDE1IEBAIHR5cGVkZWYgdWludDE2X3Qgbm5w
ZnNfcmlnaHRzOw0KICAqIFRoZSBubnBmc19jcmVkLCBpZiBwYWcgPT0gMCwg
dXNlIHVpZCANCiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBubnBmc19jcmVkIHsN
CisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QgdWlkOw0KKyNl
bHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigzLDE0LDApDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCisgICAgdWlu
dDMyX3QgdWlkOw0KKyNlbmRpZg0KKyNlbmRpZg0KICAgICBubnBmc19wYWdf
dCBwYWc7DQogfSBubnBmc19jcmVkOw0KIA0KZGlmZiAtdXByTiAtWG5vZGlm
ZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaCBh
cmxhL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLWN2
cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0
IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu
dXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAw
MDAwMCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7
DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlm
eSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5
ICpjYWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAg
dHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lk
Ow0KKyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2Yg
ZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5k
aWYNCiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmcy9u
bnBmc19sb2NsLmggYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNf
bG9jbC5oCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQor
KysgYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w
MS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC01MSw3ICs1MSw5
IEBADQogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGlu
dXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j
bHVkZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDEwICsxNDAs
MTcgQEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNf
ZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQog
bm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl
LA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQog
CSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpOw0KKyNl
bHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmls
ZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNv
bnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0KKyNl
bmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbm5w
ZnNfZGVudHJ5X29wZXJhdGlvbnM7DQogDQpAQCAtMTk0LDEwICsyMDMsMjEg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQpAQCAtMjI5LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9zeXNjYWxs
X2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBubnBmc19k
ZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2VudHJ5X3Vu
aGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisjZGVmaW5l
IG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQo
ZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAgICB3aGls
ZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9u
bnBmcy9saW51eC9ubnBmc19ibG9ja3MuYyBhcmxhL25ucGZzL2xpbnV4L25u
cGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u
cGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQuMDAwMDAwMDAwICsw
MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2
LTAyLTIwIDE5OjQ0OjM5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz
LDExIEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L21tLmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigzLDEyLDApDQorZXh0ZXJuIGludCB2ZnNfcGF0aF9s
b29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwNCisJ
CQkgICBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgc3RydWN0IHBhdGgg
Kik7DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9j
ayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICsyOTUsMTMgQEAgbm5w
ZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBi
YWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAg
IG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJl
dCA9IHZtdHJ1bmNhdGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor
I2Vsc2UNCisgICAgcmV0ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwg
bm5wZnNfYmxvY2tzaXplKTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRy
dW5jYXRlX3NldHNpemUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor
I2VuZGlmDQogICAgIG11dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgp
Ow0KICAgICANCiAgICAgZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpA
QCAtMzEzLDE5ICszMjQsMjcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg
bm5wZnNfbm9kZSAqbm9kZQ0KIAkJIHN0cnVjdCBmaWxlICoqZmlsZSkNCiB7
DQogICAgIGNoYXIgY2FjaGVuYW1lW05OUEZTX0NBQ0hFX1BBVEhfU0laRV07
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz
LDEsMCkNCisgICAgY2hhciBmdWxsX2NhY2hlbmFtZVtOTlBGU19DQUNIRV9Q
QVRIX1NJWkVdOw0KKyNlbmRpZg0KICAgICB1aW50NjRfdCBibG9ja2luZGV4
ID0gbm5wZnNfYmxvY2tfaW5kZXgob2Zmc2V0KTsNCiAgICAgdWludDMyX3Qg
aWQgPSBub2RlLT5pbmRleDsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3Ag
PSBOTlBGU19GUk9NX1hOT0RFKG5vZGUpOw0KICAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gWE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBmbGFn
cyA9IE9fTEFSR0VGSUxFIHwgZmxhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFt
ZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOSkNCiAgICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lkX3Qg
c2F2ZWdpZDsNCi0gICAgaW50IHJldDsNCi0jaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisjZWxzZQ0KICAgICBj
b25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQogICAgIHN0cnVjdCBjcmVk
ICpvdmVycmlkZV9jcmVkOw0KICNlbmRpZg0KKyAgICBpbnQgcmV0Ow0KIA0K
ICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9f
Q1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0zMzQsMTIgKzM1MywyMiBA
QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog
CXJldCA9IHNucHJpbnRmKGNhY2hlbmFtZSwgc2l6ZW9mKGNhY2hlbmFtZSks
DQogCQkgICAgICAgTk5QRlNfQ0FDSEVfRElSX1BBVEgsDQogCQkgICAgICAg
aWQgLyAweDEwMCwgaWQgJSAweDEwMCk7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisJcmV0ID0gc25wcmlu
dGYoZnVsbF9jYWNoZW5hbWUsIHNpemVvZihjYWNoZW5hbWUpLA0KKwkJICAg
ICAgICIvdXNyL2FybGEvY2FjaGUvIiBOTlBGU19DQUNIRV9ESVJfUEFUSCwN
CisJCSAgICAgICBpZCAvIDB4MTAwLCBpZCAlIDB4MTAwKTsNCisjZW5kaWYN
CiAgICAgfSBlbHNlIHsNCiAJcmV0ID0gc25wcmludGYoY2FjaGVuYW1lLCBz
aXplb2YoY2FjaGVuYW1lKSwNCiAJCSAgICAgICBOTlBGU19DQUNIRV9GSUxF
X1BBVEgsDQogCQkgICAgICAgaWQgLyAweDEwMCwgaWQgJSAweDEwMCwNCiAJ
CSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWJsb2NraW5kZXgpOw0KLQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywx
LDApDQorCXJldCA9IHNucHJpbnRmKGZ1bGxfY2FjaGVuYW1lLCBzaXplb2Yo
Y2FjaGVuYW1lKSwNCisJCSAgICAgICAiL3Vzci9hcmxhL2NhY2hlLyIgTk5Q
RlNfQ0FDSEVfRklMRV9QQVRILA0KKwkJICAgICAgIGlkIC8gMHgxMDAsIGlk
ICUgMHgxMDAsDQorCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylibG9j
a2luZGV4KTsNCisjZW5kaWYNCiAJaWYgKCFubnBmc19ibG9ja19oYXZlX3Ao
bm9kZSwgb2Zmc2V0KSAmJiAoZmxhZ3MgJiBPX0NSRUFUKSA9PSAwKSB7DQog
CSAgICBwcmludGsoS0VSTl9FTUVSRyAicmVhZGluZyBibG9jayAlczogbm90
IHRoZXJlXG4iLCBjYWNoZW5hbWUpOw0KIAkgICAgQlVHKCk7DQpAQCAtMzUw
LDE0ICszNzksMTIgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf
bm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwg
IW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUg
bmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0KLSNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQog
ICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9
IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9IG5ucGZz
cC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0K
ICNlbHNlDQotICAgIHNhdmV1aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQotICAg
IHNhdmVnaWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQogICAgIG92ZXJyaWRlX2Ny
ZWQgPSBwcmVwYXJlX2NyZWRzKCk7DQogICAgIGlmIChvdmVycmlkZV9jcmVk
ID09IE5VTEwpDQogICAgICAgICByZXR1cm4gLUVOT01FTTsNCkBAIC0zNjYs
MTEgKzM5MywyMyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19u
b2RlICpub2RlDQogICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMob3Zl
cnJpZGVfY3JlZCk7DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KICAgICByZXQgPSB2ZnNf
cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv
b3QsDQogCQkJICBjYWNoZW5hbWUsDQogCQkJICBmbGFncyAmIE9fQ1JFQVQg
PyBMT09LVVBfUEFSRU5UIDogMCwNCiAJCQkgICZuZCk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAg
ICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5w
ZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsIDAsICZuZC5wYXRo
KTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw
LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h
bWUsIDAsICZwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApDQogICAgIGlmIChyZXQpIHsN
CisjZWxzZQ0KKyAgICBpZiAocmV0ICYmICEoZmxhZ3MgJiBPX0NSRUFUKSkg
ew0KKyNlbmRpZg0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5t
YXNrczsNCiAJdWludDMyX3QgbWFzazsNCiANCkBAIC0zOTYsMTcgKzQzNSwz
NyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl
DQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhY
WCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEs
MCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgm
bmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtl
cm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1bGxfY2FjaGVuYW1lLCAmbmQu
cGF0aCwgMCk7CQ0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9
IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1bGxfY2FjaGVuYW1lLCAm
cGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsN
CiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQogCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lu
b2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor
CSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19j
cmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAgICBy
ZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50
cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2Vsc2UNCisJICAgIC8qIFhY
WCBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9v
bCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19j
cmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxT
X0lXVVNSLCAwKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAgICBkcHV0KGRlbnRy
eSk7DQorCSAgICBtdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lu
b2RlLT5pX211dGV4KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZuZC5wYXRoLCBkZW50cnkp
Ow0KKyNlbHNlDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50
cnkpOw0KKyNlbmRpZg0KIAl9DQogDQotCW11dGV4X3VubG9jaygmbmQucGF0
aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KLQlwYXRoX3B1dCgmbmQu
cGF0aCk7DQotDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNf
YmxvY2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFt
ZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQpAQCAtNDIx
LDE0ICs0ODAsMjIgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf
bm9kZSAqbm9kZQ0KICAgICB9IGVsc2Ugew0KICNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQogCXN0cnVjdCBmaWxl
ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50
LCBmbGFncyk7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgICAgIHN0cnVjdCBmaWxl
ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50
LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgICAgIHN0
cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4oJm5kLnBhdGgsIGZsYWdzLCBj
dXJyZW50X2NyZWQoKSk7DQorI2Vsc2UNCisgICAgICAgIHN0cnVjdCBmaWxl
ICpmID0gZGVudHJ5X29wZW4oJnBhdGgsIGZsYWdzLCBjdXJyZW50X2NyZWQo
KSk7DQogI2VuZGlmDQogCWlmIChJU19FUlIoZikpIHsNCiAJICAgIHJldCA9
IFBUUl9FUlIoZik7DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4o
JXMpIG9wZW4gZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCiAJ
ICAgIG5ucGZzX2RlYnVnX29vcHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgcGF0aF9wdXQo
Jm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQor
I2VuZGlmDQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBA
IC00MzcsNyArNTA0LDcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5w
ZnNfbm9kZSAqbm9kZQ0KICAgICAvKiBwYXRoX3JlbGVhc2UoKSBpcyB1c3Vh
bGx5IGhhbmRsZWQgb24gY2xvc2UgKi8NCiANCiAgb3V0Og0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkp
DQogICAgIGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsNCiAgICAgY3VycmVu
dC0+ZnNnaWQgPSBzYXZlZ2lkOw0KICNlbHNlDQpkaWZmIC11cHJOIC1Ybm9k
aWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBh
cmxhL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jDQotLS0gYXJsYS1jdnMt
b2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMDYtMTItMTEgMTc6
MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u
bnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2FsaWFz
ZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJpbnRf
YWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg
IHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEwMDsN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQog
ICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQogCWlm
ICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBubnBm
c19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0NCiAJ
YWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAg
ICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUt
PmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3Jf
ZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMp
IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks
ICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQor
CWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4iKTsN
CisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAgIHBy
aW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQor
CQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAgaWYg
KG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJ
CXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5kaWYN
CiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcxLDEx
IEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50cnkN
CiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJz
KSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry
dWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVjdCBk
ZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnks
IGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVwKSIs
IChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+ZF9u
YW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1j
dnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEvbm5wZnMvbGlu
dXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgv
bm5wZnNfZGV2LmMJMjAwNi0xMC0yNCAxODozMzozNi4wMDAwMDAwMDAgKzAy
MDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEt
MTQgMTY6Mjg6MTkuMDAwMDAwMDAwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5
IEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMN
CiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9k
ZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihu
bnBmcy0+c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZz
LT5zYik7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9E
RSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAg
LTM3NCw3ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2Rl
ICogaW5vZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVh
ZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQs
IGxvZmZfdCAqcHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2
ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0K
KyAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k
X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAq
bm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5w
ZnNfbGluayAqZmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7
DQpAQCAtNDM5LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgY29uc3QgDQogDQogICAgIE5OUEZTREVCKFhERUJERVYs
ICgibm5wZnNfZGV2d3JpdGVcbiIpKTsNCiAgICAgDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgZGV2
ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCi0gICAgbm5w
ZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KKyNlbHNlDQorICAgIGRldiA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k
aWYNCisgICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiANCiAg
ICAgZG93bigmbm5wZnNwLT5jaGFubmVsX3NlbSk7DQogICAgIGlmIChubnBm
c3AtPnN0YXR1cyAmIE5OUEZTX0RFVldSSVRFKSB7DQpAQCAtNTA1LDE5ICs1
MTUsMzcgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNv
bnN0IA0KIC8qDQogICogTm90IHVzZWQuDQogICovDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMg
aW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry
dWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1
bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5w
ZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAg
ICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj
ZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBm
c19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAg
ICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAg
ICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVk
LCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5k
X2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAg
ICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVk
LCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfcGF0aC5kZW50
cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbmRp
Zg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQogDQogc3RhdGljIHVuc2ln
bmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBv
bGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX2Rldl90IGRl
diA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vsc2UN
CisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+
ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMg
Km5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiAgICAgaW50IHJldCA9
IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEgQEAgc3RydWN0IGZpbGVf
b3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAgICByZWFkOgkJbm5wZnNf
ZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19kZXZ3cml0ZSwNCiAgICAg
cG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgaW9jdGw6CQlubnBm
c19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tlZF9pb2N0bDoJbm5w
ZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQogICAgIHJlbGVhc2U6
CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5ucGZzX2Rldm9wZW4s
DQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBubnBmc19pbml0X2Rldmlj
ZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCYobm5wZnNbaV0ud2Fp
dF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0ubWVzc2FnZXEp
Ow0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xlZXBxKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KIAlp
bml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0pOw0KIAlpbml0X01V
VEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9p
bml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEpOw0KKwlzZW1hX2luaXQo
Jm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9M
SVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tp
XS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFy
bGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jIGFybGEv
bm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtY3ZzLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMTAtMDgtMDggMjI6
NDM6MDQuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u
bnBmc19pbm9kZW9wcy5jCTIwMTYtMDItMTUgMTY6MTU6MjkuMDAwMDAwMDAw
ICswMTAwDQpAQCAtNDAsMTAgKzQwLDE0IEBADQogI2luY2x1ZGUgPG5ucGZz
L25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQu
aD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5j
bHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMu
aD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51
eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4N
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQs
MSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5j
bHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250
bC5oPg0KIA0KQEAgLTU0LDExICs1OCwyMyBAQCBSQ1NJRCgiJElkOiBubnBm
c19pbm9kZW9wcy5jLHYgMS4yMjYgMjAxDQogc3RhdGljIGludA0KIG5ucGZz
X2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQgZmxhZyk7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFsaWRhdGUoc3RydWN0
IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCk7DQotDQor
I2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKTsNCisjZW5k
aWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM4KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2RfZGVsZXRlKHN0
cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0aWMNCitpbnQN
CitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
Ow0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZWxlYXNl
KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMjE0LDggKzIzMCwxMyBA
QCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAq
IG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8NCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAo
c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry
dWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRl
bnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2Vu
ZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2RlIG1z
ZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtNDA3LDcgKzQy
OCwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpu
b2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls
ZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl
DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu
dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u
cGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg
IGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDc0LDE1
ICs0OTksMTggQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxl
LCB1X2ludA0KICAqDQogICovDQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDM1KQ0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogc3RhdGljIGlu
dA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIGludCBkYXRhc3luYykNCi0jZWxzZQ0KKyNlbGlmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KIHN0
YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50
IGRhdGFzeW5jKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5j
KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQs
IGludCBkYXRhc3luYykNCiAjZW5kaWYNCiB7DQotI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzNSkNCiAg
ICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gZmlsZS0+Zl9wYXRoLmRlbnRy
eTsNCiAjZW5kaWYNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRS
WV9UT19JTk9ERShkZW50cnkpOw0KQEAgLTQ5MCw2ICs1MTgsOCBAQCBubnBm
c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzDQogICAgIHN0
cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiAN
CisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lu
b2RlX3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4g
ZXJyb3I7DQpAQCAtNjIyLDExICs2NTIsMjUgQEAgY2hlY2tfcmlnaHRzIChu
bnBmc19yaWdodHMgcmlnaHRzLCBpbnQgbQ0KICAqIFdlIGRvbid0IGhvbGQg
aV9tdXRleC4NCiAgKi8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkgfHwgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCiBzdGF0aWMgaW50DQogbm5w
ZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSkN
CisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19wZXJtaXNzaW9uKHN0cnVj
dCBpbm9kZSAqaW5vZGUsIGludCBtb2RlLCB1bnNpZ25lZCBpbnQgZmxhZ3Mp
DQorI2VuZGlmDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KLSAgICBubnBm
c19wYWdfdCBwYWcgPSBubnBmc19nZXRfcGFnKCk7DQorICAgIG5ucGZzX3Bh
Z190IHBhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W
RVJTSU9OKDMsMSwwKQ0KKyAgICBpZiAobW9kZSAmIE1BWV9OT1RfQkxPQ0sp
DQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBpZiAo
ZmxhZ3MgJiBJUEVSTV9GTEFHX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNI
SUxEOw0KKyNlbmRpZg0KKw0KKyAgICBwYWcgPSBubnBmc19nZXRfcGFnKCk7
DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWNj
ZXNzICglcCkgbW9kZSA9IDAlbyBhbGlhc2VzOiIsIGlub2RlLCBtb2RlKSk7
DQogICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0KQEAgLTc4NCwx
MSArODI4LDE5IEBAIG5ucGZzX2RhdGFfdmFsaWQoc3RydWN0IGlub2RlICpp
bm9kZSwgdV8NCiBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICog
ZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICogdm1hKQ0KIHsNCiAgICAg
aW50IGZsYWdzLCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2Rl
ICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQor
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5
LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFj
ZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsNCiANCiAgICAgTk5QRlNE
RUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgaW5vZGU6ICVwXG4iLCBpbm9k
ZSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9kZW50
cnkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9w
YXRoLmRlbnRyeSk7DQorI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19tbWFwIGFsaWFzZXM6IikpOw0KICAgICBubnBmc19wcmlu
dF9hbGlhc2VzKGlub2RlKTsNCiAgICAgDQpAQCAtODIzLDI4ICs4NzUsNTEg
QEAgaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIA0K
ICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fp
b19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJICAgICAgIGNvbnN0IHN0
cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQogCSAg
ICAgICBsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3RhdGljIHNzaXplX3QNCitu
bnBmc19yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92
X2l0ZXIgKnRvKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsN
CiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDAp
DQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0K
KyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNl
DQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt
PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl
bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y
Tk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJ
Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRv
a2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2Rl
LCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNlDQor
ICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFU
QV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisj
ZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBl
cnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkN
CiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92
LCBucl9zZWdzLCBwb3MpOw0KKyNlbHNlDQorICAgIGVycm9yID0gZ2VuZXJp
Y19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQorI2VuZGlmDQogICAgIE5O
UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0g
JWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAt
ODUzLDE3ICs5MjgsMzYgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2Ni
ICppb2NiLA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0K
IG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQljb25z
dCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0K
IAkJbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5w
ZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3Zf
aXRlciAqZnJvbSkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7
DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiww
KQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkN
CisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxz
ZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K
KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U
T19YTk9ERShpbm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBw
b3M7DQorI2Vsc2UNCisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9w
b3M7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs
ICgibm5wZnNfYWlvX3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJ
CSBpbm9kZSwgeG4tPnRva2VucykpOw0KQEAgLTg3Nyw3ICs5NzEsMTEgQEAg
bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJcmV0dXJu
IGVycm9yOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmlj
X2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisj
ZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlv
Y2IsIGZyb20pOw0KKyNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShl
cnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBY
WFggcmFjZSAqLw0KIA0KQEAgLTg4NSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlv
X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y
Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1
Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg
IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0
aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1
Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBm
c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5k
aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTAzOCw4ICsxMTQ2LDEzIEBAIG5u
cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg
cmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZz
X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19t
a2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u
cGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBA
IC0xMjUyLDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGlu
ayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4N
CiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVj
dCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxk
aXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1
Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNl
bmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0
LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9k
ZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0
cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lu
b2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2Rl
Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9E
RShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjgxLDYgKzE0MDMs
NyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAq
DQogDQogICAgIGNhY2hlX2lub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+
aG9zdDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxMSwwKQ0KICAgICB3aGlsZSAoZmlsZS0+Zl9wb3MgPCBpX3Np
emVfcmVhZChjYWNoZV9pbm9kZSkpIHsNCiAJTk5QRlNERUIoWERFQlJFQURE
SVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgZmlsZS0+Zl9wb3M6ICVk
IGlfc2l6ZTogJWRcbiIsDQpAQCAtMTI5Myw2ICsxNDE2LDIwIEBAIG5ucGZz
X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJbWFwcGlu
ZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQogCWlucGFnZSA9IGZpbGUtPmZf
cG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsNCiAJcGFnZV9udW0gPSBmaWxl
LT5mX3BvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKyNlbHNlDQorICAgIHdo
aWxlIChjdHgtPnBvcyA8IGlfc2l6ZV9yZWFkKGNhY2hlX2lub2RlKSkgew0K
KwlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJICAgICAgICgibm5wZnNfcmVh
ZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXplOiAlZFxuIiwNCisJCShpbnQp
IGN0eC0+cG9zLCAoaW50KSBjYWNoZV9pbm9kZS0+aV9zaXplKSk7DQorCWJl
Z2luX29mZnNldCA9IGN0eC0+cG9zICZ+IChOTlBGU19ESVJFTlRfQkxPQ0tT
SVpFIC0gMSk7DQorCW9mZnNldCA9IGN0eC0+cG9zICYgKE5OUEZTX0RJUkVO
VF9CTE9DS1NJWkUgLSAxKTsNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQ7
DQorCU5OUEZTREVCKFhERUJSRUFERElSLCAoIm5ucGZzX3JlYWRkaXIgYmVn
aW5fb2Zmc2V0OiAlZCBvZmZzZXQ6ICVkXG4iLA0KKwkJCSAgICAgKGludCli
ZWdpbl9vZmZzZXQsIChpbnQpb2Zmc2V0KSk7DQorCW1hcHBpbmcgPSBiYWNr
ZmlsZS0+Zl9tYXBwaW5nOw0KKwlpbnBhZ2UgPSBjdHgtPnBvcyAmIChQQUdF
X0NBQ0hFX1NJWkUtMSk7DQorCXBhZ2VfbnVtID0gY3R4LT5wb3MgPj4gUEFH
RV9DQUNIRV9TSElGVDsNCisjZW5kaWYNCiANCiAJTk5QRlNERUIoWERFQlJF
QURESVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgaW5wYWdlOiAlZCBw
YWdlX251bTogJWx1XG4iLA0KQEAgLTEzMjgsNiArMTQ2NSw3IEBAIG5ucGZz
X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCSAgICAo
aW50KSB4ZGlyZW50LT5kX25hbWxlbiwNCiAJCSAgICAoaW50KSAob2Zmc2V0
K2JlZ2luX29mZnNldCkpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIAkgICAgaWYgKHhkaXJlbnQt
PmRfZmlsZW5vICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRp
ciAoZGlyZW50LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0x
MzM5LDEyICsxNDc3LDI4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUg
KiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6
ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0N
CisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJ
CSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAg
ICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1s
ZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAg
RFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIs
DQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRp
cl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAg
ICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAo
eGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KIAkJcHJpbnRrKEtFUk5fRU1F
UkcgIk5OUEZTIFBhbmljOiAiDQogCQkgICAgICAgImVtcHR5IGRpcmVudCBh
dCAlbGxkIGluIG5ucGZzX3JlYWRkaXIsIHBvcyAlZCBzaXplICVkXG4iLA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEx
LDApDQogCQkgICAgICAgKGxvbmcgbG9uZylvZmZzZXQsIChpbnQpZmlsZS0+
Zl9wb3MsDQorI2Vsc2UNCisJCSAgICAgICAobG9uZyBsb25nKW9mZnNldCwg
KGludCljdHgtPnBvcywNCisjZW5kaWYNCiAJCSAgICAgICAoaW50KWNhY2hl
X2lub2RlLT5pX3NpemUpOw0KIAkJTk5QRlNERUIoWERFQlZOT1BTLCAoImlu
b2RlOiAlcCBhbGlhc2VzOiIsIGlub2RlKSk7DQogCQlubnBmc19wcmludF9h
bGlhc2VzKGlub2RlKTsNCkBAIC0xMzYyLDcgKzE1MTYsMTEgQEAgbm5wZnNf
cmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAlpZiAob2Zm
c2V0ID4gTk5QRlNfRElSRU5UX0JMT0NLU0laRSkNCiAJICAgIG9mZnNldCA9
IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkU7DQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJZmlsZS0+Zl9w
b3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2Vsc2UNCisJY3R4LT5w
b3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2VuZGlmDQogDQogCWlm
IChlcnJvciB8fCBvZmZzZXQgPCBOTlBGU19ESVJFTlRfQkxPQ0tTSVpFKQ0K
IAkgICAgYnJlYWs7DQpAQCAtMTM5NSw5ICsxNTUzLDE1IEBAIG5ucGZzX3Jl
YWRsaW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGMNCiAgKiBXZSBkb24n
dCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMiwwKQ0KIHN0YXRpYyB2b2lkICoN
CiBubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0K
IAkJIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGNv
bnN0IGNoYXIgKg0KK25ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5
ICpkZW50cnksDQorCQkgdm9pZCAqKnBhZ2UpDQorI2VuZGlmDQogew0KICAg
ICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0g
REVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQpAQCAtMTQwOCw3ICsxNTcyLDEx
IEBAIG5ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkN
CiAgICAgaWYgKGVycm9yKQ0KICAgICAgICByZXR1cm4gRVJSX1BUUihlcnJv
cik7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDQsMiwwKQ0KICAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19saWdo
dChkZW50cnksIG5kKTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGFnZV9mb2xs
b3dfbGlua19saWdodChkZW50cnksIHBhZ2UpOw0KKyNlbmRpZg0KIH0NCiAN
CiAvKg0KQEAgLTE0OTAsNiArMTY1OCw4IEBAIG5ucGZzX3JlbGVhc2VfZmls
ZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuOw0KICAgICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClu
bnBmc3A7DQorDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19y
ZWxlYXNlX2ZpbGVcbiIpKTsNCiANCiAgICAgZXJyb3IgPSBubnBmc19pbm9k
ZV92YWxpZChpbm9kZSk7DQpAQCAtMTUyMyw4ICsxNjkzLDEzIEBAIG5ucGZz
X2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlLCBmbF9vd25lcl8NCiB7DQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQogICAgIGlmIChmaWxlICYmIGZpbGUtPmZfZGVudHJ5ICYmIGZpbGUt
PmZfZGVudHJ5LT5kX2lub2RlKQ0KIAlyZXR1cm4gbm5wZnNfcmVsZWFzZV9m
aWxlKGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisjZWxzZQ0K
KyAgICBpZiAoZmlsZSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5ICYmIGZpbGUt
PmZfcGF0aC5kZW50cnktPmRfaW5vZGUpDQorCXJldHVybiBubnBmc19yZWxl
YXNlX2ZpbGUoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7
DQorI2VuZGlmDQogICAgIGVsc2UNCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTE1
MzMsMTAgKzE3MDgsMjQgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZp
bGUsIGZsX293bmVyXw0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0
aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorc3RhdGlj
IGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50
cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQogc3RhdGljIGlu
dA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
IHN0cnVjdCBuYW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUo
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQor
I2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZ
X1RPX0lOT0RFKGRlbnRyeSk7DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA+PSBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisgICAgaWYgKGZsYWdzICYg
TE9PS1VQX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzgp
DQorICAgIGlmIChuZCAmJiBuZC0+ZmxhZ3MgJiBMT09LVVBfUkNVKQ0KKyAg
ICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VuZGlmDQorDQogICAgIE5OUEZT
REVCKFhERUJWTk9QUywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipz
XCIgKGlub2RlICVwKVxuIiwNCiAJCSAgICAgICBkZW50cnksDQogCQkgICAg
ICAgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQpAQCAtMTU4Miw5ICsxNzcx
LDE1IEBAIG5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogc3RhdGljDQogaW50
DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNl
bHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0
IGlub2RlICppbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0K
QEAgLTE2MTQsNyArMTgwOSwxMSBAQCBubnBmc19zcGxpY2VfcmVhZChzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mDQogCQkgIHVuc2lnbmVkIGludCBmbGFncykN
CiB7DQogICAgIGludCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl
DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu
dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBp
ZiAoeG4gIT0gTlVMTCkNCkBAIC0xNzA3LDYgKzE5MDYsOCBAQCBubnBmc193
cml0ZV9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgDQogDQogCWludCBl
cnJvcjsNCiAJDQorCSh2b2lkKW9mZnNldDsNCisNCiAJZG8gew0KIAkJZXJy
b3IgPSBwYWdlY2FjaGVfd3JpdGVfYmVnaW4oYmFja2ZpbGUsIG1hcHBpbmcs
IDAsIGxlbiwNCiAJCQkJCSAgICAgIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJM
RSwNCkBAIC0xNzMwLDcgKzE5MzEsMTEgQEAgbm5wZnNfd3JpdGVfYmFja3Bh
Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIA0KIAkJcHJpbnRrKCJubnBmc193cml0
ZV9iYWNrcGFnZTogRUlPXG4iKTsNCiAjaWZkZWYgTk5QRlNfU0FGRV9TWU5D
DQogCWVsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDMyKQ0KIAkJKHZvaWQpc3luY19wYWdlX3JhbmdlKG1hcHBp
bmctPmhvc3QsIG1hcHBpbmcsIG9mZnNldCwgbGVuKTsNCisjZWxzZQ0KKwkJ
KHZvaWQpZmlsZW1hcF93cml0ZV9hbmRfd2FpdF9yYW5nZShtYXBwaW5nLCBv
ZmZzZXQsIG9mZnNldCArIGxlbiAtIDEpOw0KKyNlbmRpZg0KICNlbmRpZg0K
IAkNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTE3NDcsNiArMTk1Miw4IEBAIG5u
cGZzX3JlYWRfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3Ry
dWN0IHBhZ2UgKmJhY2twYWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsN
CiANCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRfbWFw
cGluZ19wYWdlKG1hcHBpbmcsIG4sIGJhY2tmaWxlKTsNCiAJaWYgKCFJU19F
UlIoYmFja3BhZ2UpKSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2tw
YWdlKTsNCkBAIC0xODk0LDExICsyMTAxLDE3IEBAIG5ucGZzX3ByZXBhcmVf
d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiANCiAJaWYgKG1vZHNpemUg
PiBpX3NpemVfcmVhZChpbm9kZSkpIHsNCiAJCWludCBlcnJvcjsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQog
CQllcnJvciA9IHZtdHJ1bmNhdGUoaW5vZGUsIG1vZHNpemUpOw0KKyNlbHNl
DQorCQllcnJvciA9IGlub2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNpemUp
Ow0KKwkJaWYoIWVycm9yKQ0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUs
IG1vZHNpemUpOw0KKyNlbmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJp
bnRrKCJubnBmc19wcmVwYXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAl
ZFxuIiwNCiAJCQkgICAgICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUco
KTsgLyogWFhYIG5vdCBjb3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBY
WFggbm90IGNvcnJlY3QgKi8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE5MjUsNyAr
MjEzOCw2IEBAIG5ucGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0IGZpbGUgKmZp
bGUsIHMNCiB9DQogDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3dy
aXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z
cGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCiB1bnNpZ25lZCBsZW4sIHVu
c2lnbmVkIGZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNk
YXRhKQ0KQEAgLTE5MzMsNTggKzIxNDUsNjcgQEAgdW5zaWduZWQgbGVuLCB1
bnNpZ25lZCBmbGFncywgc3RydWN0IHBhZw0KIAlzdHJ1Y3QgcGFnZSAqcGFn
ZTsNCiAJcGdvZmZfdCBpbmRleDsNCiAJdW5zaWduZWQgZnJvbTsNCisJaW50
IHJldCA9IDA7DQogDQogCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJ
RlQ7DQogCWZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQog
DQotI2lmZGVmIEFPUF9GTEFHX05PRlMNCiAJcGFnZSA9IGdyYWJfY2FjaGVf
cGFnZV93cml0ZV9iZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0KLSNl
bHNlDQotCXBhZ2UgPSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRl
eCk7DQotI2VuZGlmDQotCWlmIChwYWdlID09IE5VTEwpDQorCWlmICghcGFn
ZSkNCiAJCXJldHVybiAtRU5PTUVNOw0KIA0KIAkqcGFnZXAgPSBwYWdlOw0K
IA0KLQlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBm
cm9tLCBmcm9tICsgbGVuKTsNCi19DQorCXJldCA9IG5ucGZzX3ByZXBhcmVf
d3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGxlbik7DQorCWlmIChy
ZXQpIHsNCisJCXVubG9ja19wYWdlKHBhZ2UpOw0KKwkJcGFnZV9jYWNoZV9y
ZWxlYXNlKHBhZ2UpOw0KKwl9DQogDQorCXJldHVybiByZXQ7DQorfQ0KICNl
bmRpZg0KIA0KKy8qIFhYWCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRlZCBz
aW1wbGVfY29tbWl0X3dyaXRlIGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBp
cyB1bnVzZWQgZm9yIG5vdyAqLw0KKyNpZiAwDQogc3RhdGljIGludA0KIG5u
cGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBh
Z2UgKnBhZ2UsDQogCQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykN
CiB7DQotICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5n
LT5ob3N0Ow0KLSAgICBsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5k
ZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCisJc3RydWN0IGlub2Rl
ICppbm9kZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7DQorCWxvZmZfdCBwb3Mg
PSAoKGxvZmZfdClwYWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUKSAr
IHRvOw0KIA0KLSAgICBpZiAocG9zID4gaW5vZGUtPmlfc2l6ZSkgew0KLQlp
X3NpemVfd3JpdGUoaW5vZGUsIHBvcyk7DQorCWlmICghUGFnZVVwdG9kYXRl
KHBhZ2UpKQ0KKwkJU2V0UGFnZVVwdG9kYXRlKHBhZ2UpOw0KIA0KLQlzcGlu
X2xvY2soJmlub2RlLT5pX2xvY2spOw0KLQlpbm9kZS0+aV9ibG9ja3MgPSAo
cG9zICsgSV9CTE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQot
CXNwaW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCi0gICAgfQ0KLSAgICBz
ZXRfcGFnZV9kaXJ0eShwYWdlKTsNCisJaWYgKHBvcyA+IGlub2RlLT5pX3Np
emUpIHsNCisJCWlfc2l6ZV93cml0ZShpbm9kZSwgcG9zKTsNCisNCisJCXNw
aW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQorCQlpbm9kZS0+aV9ibG9ja3Mg
PSAocG9zICsgSV9CTE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7
DQorCQlzcGluX3VubG9jaygmaW5vZGUtPmlfbG9jayk7DQorCX0NCisJc2V0
X3BhZ2VfZGlydHkocGFnZSk7DQogDQogI2lmIDANCi0gICAgew0KLQljaGFy
ICphZGRyOw0KLQlrbWFwKHBhZ2UpOw0KLQlhZGRyID0gcGFnZV9hZGRyZXNz
KHBhZ2UpOw0KLQlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfY29tbWl0
X3dyaXRlKCVwKTogJXgleCV4JXhcbiIsDQorCXsNCisJICAgIGNoYXIgKmFk
ZHI7DQorCSAgICBrbWFwKHBhZ2UpOw0KKwkgICAgYWRkciA9IHBhZ2VfYWRk
cmVzcyhwYWdlKTsNCisJICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBm
c19jb21taXRfd3JpdGUoJXApOiAleCV4JXgleFxuIiwNCiAJCQkgICAgIGZp
bGUtPmZfbWFwcGluZy0+aG9zdCwgDQogCQkJICAgICBhZGRyWzBdLCBhZGRy
WzFdLCBhZGRyWzJdLCBhZGRyWzNdKSk7DQotCWt1bm1hcChwYWdlKTsNCi0g
ICAgfQ0KKwkgICAga3VubWFwKHBhZ2UpOw0KKwl9DQogI2VuZGlmDQotICAg
IA0KLSAgICByZXR1cm4gMDsNCisgDQorCXJldHVybiAwOw0KIH0NCisjZW5k
aWYNCiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkNCi0NCisvKiBYWFggd2UgdXNlIHRoZSBzeXN0ZW0gcHJv
dmlkZWQgc2ltcGxlX3dyaXRlX2VuZCBpbnN0ZWFkIHNvIHRoaXMgZnVuY3Rp
b24gaXMgdW51c2VkIGZvciBub3cgKi8NCisjaWYgMA0KIHN0YXRpYyBpbnQN
CiBubnBmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBh
ZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KIAkJdW5zaWdu
ZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsIHN0cnVjdCBwYWdlICpwYWdlLCB2
b2lkICpmc2RhdGEpDQpAQCAtMTk5MywxMCArMjIxNCwxOCBAQCBubnBmc193
cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQogCS8qIHpl
cm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hv
cnQgY29weSAqLw0KIAlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJdm9p
ZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vs
c2UNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2Vu
ZGlmDQogCQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4g
LSBjb3BpZWQpOw0KIAkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
IAkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQor
CQlrdW5tYXBfYXRvbWljKGthZGRyKTsNCisjZW5kaWYNCiAJfQ0KIA0KIAlu
bnBmc19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNv
cGllZCk7DQpAQCAtMjAwNiw3ICsyMjM1LDcgQEAgbm5wZnNfd3JpdGVfZW5k
KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Yw0KIA0KIAlyZXR1cm4gY29waWVk
Ow0KIH0NCi0NCisjZW5kaWYNCiAjZW5kaWYNCiANCiBjb25zdA0KQEAgLTIw
MTUsMTAgKzIyNDQsMTAgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0
aW9ucyBubnBmc19hbw0KIAkud3JpdGVwYWdlID0gbm5wZnNfd3JpdGVwYWdl
LA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogCS5wcmVwYXJlX3dyaXRlID0gbm5wZnNfcHJlcGFyZV93cml0
ZSwNCi0JLmNvbW1pdF93cml0ZSA9IG5ucGZzX2NvbW1pdF93cml0ZSwNCisJ
LmNvbW1pdF93cml0ZSA9IHNpbXBsZV9jb21taXRfd3JpdGUsDQogI2Vsc2UN
CiAJLndyaXRlX2JlZ2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQotCS53cml0
ZV9lbmQgPSBubnBmc193cml0ZV9lbmQsDQorCS53cml0ZV9lbmQgPSBzaW1w
bGVfd3JpdGVfZW5kLA0KICNlbmRpZg0KIH07DQogDQpAQCAtMjAyNyw4ICsy
MjU2LDEzIEBAIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5w
ZnNfYW8NCiAgKi8NCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZz
X2ZpbGVfb3BlcmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAgICAuYWlvX3JlYWQJPSBu
bnBmc19haW9fcmVhZCwNCiAgICAgLmFpb193cml0ZQk9IG5ucGZzX2Fpb193
cml0ZSwNCisjZWxzZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9p
dGVyLA0KKyAgICAud3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQor
I2VuZGlmDQogICAgIC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFwLA0KICAgICAu
b3Blbgk9IG5ucGZzX29wZW4sDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNo
LA0KQEAgLTIwNDEsNyArMjI3NSwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRp
b25zIG5ucGZzX2RlYWRfb3BlcmF0DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9v
cGVyYXRpb25zIG5ucGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAg
IC5yZWFkZGlyCT0gbm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRl
cmF0ZSAgICA9IG5ucGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVz
aAk9IG5ucGZzX2ZsdXNoLA0KIH07DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMgYXJsYS9u
bnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5w
ZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6NDEuMDAw
MDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19sb2Fk
LmMJMjAxNi0wMS0xMyAyMDoxNDowMi4wMDAwMDAwMDAgKzAxMDANCkBAIC01
NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBu
bnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgbm5wZnNf
ZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAgICAgICJubnBmcyIs
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5ucGZzX2dldF9zYiwN
CisjZWxzZQ0KKyAgICAgICBtb3VudDogICAgICAgICAgbm5wZnNfbW91bnQs
DQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAgICBraWxsX2xpdHRl
cl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAgICAgICAgIFRISVNfTU9EVUxF
LA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBm
cy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS9ubnBmcy9saW51eC9ubnBm
c19tZXNzYWdlLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5w
ZnNfbWVzc2FnZS5jCTIwMTAtMDgtMDggMjI6NDM6MDUuMDAwMDAwMDAwICsw
MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAx
Ni0wMS0yNCAxODo1MjoyOC4wMDAwMDAwMDAgKzAxMDANCkBAIC01NSw5ICs1
NSwxNSBAQCBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVtb3ZlKHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJNU0csICgi
bm5wZnNfZF9yZW1vdmUgJXBcbiIsIGRlbnRyeSkpOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNw
aW5fbG9jaygmZGNhY2hlX2xvY2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50
cnkpOw0KICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNl
DQorICAgIHNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0
X2Rsb2NrKGRlbnRyeSk7DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRf
bG9jayk7DQorI2VuZGlmDQogICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBk
cHV0KGRlbnRyeSk7DQogfQ0KQEAgLTEyMSw3ICsxMjcsMTEgQEAgbm5wZnNf
bWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1
Y3QgaW5vZGUgKmRpLCAqaW5vZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBh
cmVudCA9IE5VTEw7DQogICAgIHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAg
ICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVj
dCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgDQogICAgIE5O
UEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZVxu
IikpOw0KICAgICANCkBAIC0xNzYsMTIgKzE4NiwyNiBAQCBubnBmc19tZXNz
YWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgICAqDQogICAg
ICAqLw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5l
eHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQog
CXBhcmVudCA9IGxpc3RfZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRf
YWxpYXMpOw0KLQlzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9s
b2NrZWQocGFyZW50KTsNCi0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCBhbGlh
cywgJmRpLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxp
c3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2Fs
aWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFy
ZW50LCAmZGktPmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzgpDQorICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KKyAgICBkZ2V0
X2xvY2tlZChwYXJlbnQpOw0KKyAgICBzcGluX3VubG9jaygmZGNhY2hlX2xv
Y2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2sp
Ow0KKyAgICBkZ2V0X2Rsb2NrKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2Nr
KCZwYXJlbnQtPmRfbG9jayk7DQorI2VuZGlmDQogCWRlbnRyeSA9IGRfbG9v
a3VwKHBhcmVudCwgJnNxc3RyKTsNCiAJTk5QRlNERUIoWERFQk1TRywNCiAJ
CSAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGFsaWFzICVwLCBsb29r
dXAgJXBcbiIsDQpAQCAtMjMzLDcgKzI1Nyw5IEBAIG5ucGZzX21lc3NhZ2Vf
aW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAJDQogCWRwdXQoZGVudHJ5
KTsNCiAJZGVudHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5l
eHQ7DQorI2VuZGlmDQogCWRwdXQocGFyZW50KTsNCiAgICAgfQ0KICAgICBO
TlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6
IGRvbmUgaW5zdGFsbGluZ1xuIikpOw0KQEAgLTI2OCw3ICsyOTQsMTMgQEAg
bm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAg
ICB9DQogDQogICAgIGlub2RlID0gWE5PREVfVE9fVk5PREUodCk7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
ICAgICBkZW50cnkgPSBsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0
LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGRlbnRy
eSA9IGhsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0
IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vsc2UNCisgICAgZGVudHJ5ID0gaGxp
c3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5
LCBkX3UuZF9hbGlhcyk7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RF
QihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTol
c1xuIiwNCiAJCSAgICAgICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAt
Mzk2LDE3ICs0MjgsMzUgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShz
dHJ1Y3Qgbm5wZnMgKg0KIHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxk
cmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisg
ICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxp
c3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2Rl
ICphbGlhczsNCisjZW5kaWYNCiANCiAgYWdhaW46DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bp
bl9sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2Nr
KCZpbm9kZS0+aV9sb2NrKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0g
aW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAm
aW5vZGUtPmlfZGVudHJ5KSB7DQotCXN0cnVjdCBkZW50cnkgKmRlbnRyeTsN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCBhbGlh
cywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAg
aGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5
LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50
cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0K
KyNlbmRpZg0KIAlzdHJ1Y3QgbGlzdF9oZWFkICpzdWJkaXJzOw0KIAlzdHJ1
Y3Qgbm5wZnNfZGVudHJ5X2RhdGEgKnhkOw0KIAkNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCWRlbnRyeSA9
IGxpc3RfZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0K
KyNlbmRpZg0KIAlpZiAoZGVudHJ5ID09IE5VTEwpIHsNCiAJICAgIHByaW50
ayhLRVJOX0VNRVJHICJOTlBGUyBQYW5pYzogZGVudHJ5IGluIGFsaWFzIGxp
c3QgaXMgbnVsbFxuIik7DQogCSAgICBicmVhazsNCkBAIC00MjIsNyArNDcy
LDExIEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9k
ZSwNCiAJc3ViZGlycyA9IGRlbnRyeS0+ZF9zdWJkaXJzLm5leHQ7DQogCXdo
aWxlIChzdWJkaXJzICE9ICZkZW50cnktPmRfc3ViZGlycykgew0KIAkgICAg
c3RydWN0IGxpc3RfaGVhZCAqdG1wID0gc3ViZGlyczsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAg
c3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0
IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCSAgICBzdHJ1Y3Qg
ZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5
LCBkX2NoaWxkKTsNCisjZW5kaWYNCiAJICAgIHN1YmRpcnMgPSB0bXAtPm5l
eHQ7DQogCSAgICBOTlBGU0RFQihYREVCTVNHLCAoImNsZWFyX2FsbF9jaGls
ZHJlbiBjaGlsZDogJS4qcyBpbm9kZTogJXAvJXAgIg0KIAkJCSAgICAgICAi
ZGNvdW50OiAlZCBhbGlhc2VzOlxuIiwNCkBAIC00NDIsMTQgKzQ5NiwyNCBA
QCBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQog
DQogCSAgICAvKiBUaHJvdyBpbW1lZGlhdGVseSAqLw0KIAkgICAgaWYgKG5u
cGZzX2Rjb3VudChjaGlsZCkgPT0gMCkgew0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogCSAgICAgICAgc3Bp
bl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKwkgICAgICAgIHNw
aW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisjZW5kaWYNCiAJCW5ucGZz
X2RfcmVtb3ZlKGNoaWxkKTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQog
CX0NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogICAg
IH0NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM4KQ0KICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl
bHNlDQorICAgIHNwaW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisjZW5k
aWYNCiB9DQogDQogc3RhdGljIHZvaWQNCkBAIC03MTksMTIgKzc4MywyMiBA
QCBubnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQog
DQogICAgIC8qIHNhbml0eSBjaGVjayBiZWZvcmUgd2UgbG9vayBhdCBpdCAq
Lw0KICAgICBpZiAoc2l6ZSA9PSBzaXplb2YoKm1lc3NhZ2UpICYmIG1lc3Nh
Z2UtPnZlcnNpb24gPT0gTk5QRlNfVkVSU0lPTikgew0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVj
dCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsN
CisjZW5kaWYNCiAJaW50IGVycm9yOw0KIA0KIAl1aW50NjRfdCBibG9ja3Np
emUgPSBtZXNzYWdlLT5ibG9ja3NpemU7DQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBw
YXRoX2xvb2t1cCgiLiIsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9IGtl
cm5fcGF0aCgiLiIsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwllcnJvciA9
IGtlcm5fcGF0aCgiLiIsIDAsICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVy
cm9yKSB7DQogCSAgICAvKg0KIAkgICAgICogQmFkIGNhY2hlIHJvb3QsIGp1
c3QgcmV0dXJuLg0KQEAgLTczNSwxMSArODA5LDE3IEBAIG5ucGZzX21lc3Nh
Z2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiAJCSAgICJubnBmc19t
ZXNzYWdlX3ZlcnNpb24gZmFpbGVkIHBhdGhfbG9va3VwLCAiDQogCQkgICAi
ZXJybm86ICVkXG4iLCBlcnJvcik7DQogCX0gZWxzZSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAg
IG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KG5kLnBhdGgubW50KTsNCiAJ
ICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLnBhdGguZGVudHJ5KTsN
CiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgbm5w
ZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQocGF0aC5tbnQpOw0KKwkgICAgbm5w
ZnNwLT5jYWNoZWRpciA9IGRnZXQocGF0aC5kZW50cnkpOw0KKwkgICAgcGF0
aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAkgICAgDQotI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCiAJ
ICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQogCSAgICBubnBm
c3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICNlbHNlDQpkaWZmIC11cHJO
IC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19ub2Rl
LmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMNCi0tLSBhcmxhLWN2
cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMDctMDEtMDMgMTQ6
NTI6MDIuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u
bnBmc19ub2RlLmMJMjAxNi0wMS0xNCAxNjo1MToxMS4wMDAwMDAwMDAgKzAx
MDANCkBAIC0xMzIsNyArMTMyLDEyIEBAIG5ucGZzX3NldHNpemUoc3RydWN0
IGlub2RlICppbm9kZSwgdWludDYNCiAJcHJpbnRrKCJubnBmc19zZXRzaXpl
OiB0cnVuY2F0aW5nIEAweCVsbHVcbiIsDQogCSAgICAgICAodW5zaWduZWQg
bG9uZyBsb25nKXNpemUpOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJdm10cnVuY2F0ZShp
bm9kZSwgc2l6ZSk7IC8qIFhYWCByZXR2YWwgKi8NCisjZWxzZQ0KKwlpZigh
aW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgc2l6ZSkpDQorCSAgICB0cnVuY2F0
ZV9zZXRzaXplKGlub2RlLCBzaXplKTsNCisjZW5kaWYNCiAJbm5wZnNfYmxv
Y2tfdHJ1bmNhdGUoeG4sIHNpemUpOw0KICAgICB9DQogfQ0KQEAgLTE1MCw5
ICsxNTUsMTggQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5w
ZnNfYXR0cg0KIAlzdHJ1Y3QgdGltZXNwZWMgbm90aW1lID0gezB9Ow0KIA0K
IAlpbm9kZS0+aV9tb2RlICAgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCWlub2RlLT5pX3VpZCAg
ICA9IDA7DQogCWlub2RlLT5pX2dpZCAgICA9IDA7DQorI2Vsc2UNCisJaW5v
ZGUtPmlfdWlkICAgID0gS1VJRFRfSU5JVCgwKTsNCisJaW5vZGUtPmlfZ2lk
ICAgID0gS0dJRFRfSU5JVCgwKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5p
X25saW5rICA9IDE7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCAxKTsN
CisjZW5kaWYNCiAJaW5vZGUtPmlfYXRpbWUgID0gbm90aW1lOw0KIAlpbm9k
ZS0+aV9tdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX2N0aW1lICA9IG5v
dGltZTsNCkBAIC0xNjksNyArMTgzLDExIEBAIG5ucGZzX2F0dHIyaW5vZGUo
Y29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAgICAgaWYgKFhBX1ZBTElEX0dJ
RChhdHRyKSkNCiAJaW5vZGUtPmlfZ2lkICAgID0gYXR0ci0+eGFfZ2lkOw0K
ICAgICBpZiAoWEFfVkFMSURfTkxJTksoYXR0cikpDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+
aV9ubGluayAgPSBhdHRyLT54YV9ubGluazsNCisjZWxzZQ0KKwlzZXRfbmxp
bmsoaW5vZGUsIGF0dHItPnhhX25saW5rKTsNCisjZW5kaWYNCiAgICAgDQog
ICAgIGlmIChYQV9WQUxJRF9TSVpFKGF0dHIpKSB7DQogCW5ucGZzX3NldHNp
emUoaW5vZGUsIGF0dHItPnhhX3NpemUpOw0KQEAgLTUxMCwxMiArNTI4LDI0
IEBAIG5ucGZzX2hhc19wYWcoY29uc3Qgc3RydWN0IG5ucGZzX25vZGUgKngN
CiBpbnQNCiBubnBmc19ub2RlX3VzZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUp
DQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcG9zOw0KKyNlbHNl
DQorICAgIHN0cnVjdCBobGlzdF9ub2RlICpwb3M7DQorI2VuZGlmDQogICAg
IGludCB1c2VycyA9IDA7DQogICAgIA0KICAgICAvKiBYWFggdGhpcyBzaG91
bGQgcHJvYmFibHkgYmUgcHJvdGVjdGVkIHNvbWVob3cgKi8NCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAg
IGxpc3RfZm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQorI2Vs
c2UNCisgICAgaGxpc3RfZm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5
KSB7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0g
bGlzdF9lbnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNl
bHNlDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9z
LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7DQorI2VuZGlmDQogCWlm
IChubnBmc19kY291bnQoZGVudHJ5KSA+IDEpDQogCSAgICB1c2VycysrOw0K
ICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBm
cy9saW51eC9ubnBmc19zeXNjYWxscy5jIGFybGEvbm5wZnMvbGludXgvbm5w
ZnNfc3lzY2FsbHMuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9u
bnBmc19zeXNjYWxscy5jCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAw
ICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5j
CTIwMTYtMDItMjAgMTk6NDM6NDIuMDAwMDAwMDAwICswMTAwDQpAQCAtNDIs
NyArNDIsOSBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19zeXNjYWxscy5o
Pg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19jb21tb24uaD4NCiAjaW5jbHVk
ZSA8bGludXgvZmlsZS5oPg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9s
b2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0KICNp
bmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+DQogDQpAQCAtNTAsNiArNTIsMTEg
QEANCiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4NCiAjZW5kaWYNCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMs
NywwKQ0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKy8qIHRoZSBtZXRob2QgdG8g
cmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVsIDMu
NyBhbmQgbGF0ZXIsIHNlIG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyAqLw0K
KyNlbmRpZg0KKw0KICNpZiAwDQogI2lmZGVmIENPTkZJR19DT01QQVQNCiAj
aW5jbHVkZSA8bGludXgvaW9jdGwzMi5oPg0KQEAgLTgyLDEyICs4OSwyMiBA
QCB0eXBlZGVmIHN0cnVjdCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVk
IGxvbmcgc3lzY2FsbDsNCiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3Rh
dGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlu
b2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBj
bWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25n
DQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJ
ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNl
bmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZz
X3Byb2Nmc19mb3BzID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3By
b2Nmc19pb2N0bCwNCisjZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBu
bnBmc19wcm9jZnNfaW9jdGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0x
NjAsOCArMTc3LDEwIEBAIG5ucGZzX2dldF9wYWdfc2VjKHZvaWQpDQogDQog
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQotI2Vsc2UNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDAp
DQogICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIHsg
a3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3VpZC52YWw7
IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtMTk5LDcgKzIxOCwxMiBAQCBmaW5k
X3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogICAgIE5OUEZTREVCKFhE
RUJTWVMsICgiZmluZF9wYWc6IG5ncm91cHMgPSAlZFxuIiwgZ2ktPm5ncm91
cHMpKTsNCiANCiAgICAgZm9yIChpID0gZ2ktPm5ncm91cHMgLSAxOyBpID49
IDA7IGktLSkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE0LDApDQogCWdpZF90IGdyb3VwID0gR1JPVVBfQVQoZ2ks
IGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3JvdXAgPSBHUk9VUF9BVChnaSwg
aSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3VwLnZhbDsNCisjZW5kaWYNCiAJ
aWYgKChubnBmc19wYWdfdClncm91cCA+PSBOTlBGU19QQUdfTExJTSAmJiAo
bm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19QQUdfVUxJTSkgew0KIAkgICAg
Tk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAgKCJmaW5kX3BhZzogRXhpc3Rp
bmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3JvdXAsIGkpKTsNCkBAIC0yMjAs
NyArMjQ0LDEyIEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiAgICAg
bm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+dWlkOw0KICNlbHNlDQogICAg
IHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdldF9jdXJyZW50X2dyb3Vwcygp
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE0LDApDQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnRfdWlkKCk7
DQorI2Vsc2UNCisgICAga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyAgICBubnBmc19wYWdfdCByZXQgPSBrdWlkLnZhbDsNCisjZW5kaWYNCiAj
ZW5kaWYNCiAgICAgaW50IGk7DQogDQpAQCAtMjMwLDcgKzI1OSwxMSBAQCBu
bnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQogDQogICAgIGkgPSBmaW5kX3Bh
ZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJeyBrZ2lk
X3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsgcmV0ID0ga2dpZC52YWw7IH0N
CisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3VwX2luZm8oZ2kpOw0KIA0KQEAg
LTI4MCwxMCArMzEzLDE3IEBAIHN0b3JlX3BhZyhubnBmc19wYWdfdCBwYWdu
dW0pDQogCWNvdW50IC09IE5HUk9VUFNfUEVSX0JMT0NLOw0KICAgICB9DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTQsMCkNCiAgICAgaWYgKGZvdW5kKQ0KIAlHUk9VUF9BVChuZXdfZ2ksIGkp
ID0gcGFnbnVtOw0KICAgICBlbHNlDQogCUdST1VQX0FUKG5ld19naSwgbmV3
X2dpLT5uZ3JvdXBzIC0gMSkgPSBwYWdudW07DQorI2Vsc2UNCisgICAgaWYg
KGZvdW5kKQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0p
OyBHUk9VUF9BVChuZXdfZ2ksIGkpID0ga2dpZDsgfQ0KKyAgICBlbHNlDQor
CXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FU
KG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQorI2Vu
ZGlmDQogICAgIA0KICAgICBzZXRfY3VycmVudF9ncm91cHMobmV3X2dpKTsN
CiAgICAgcHV0X2dyb3VwX2luZm8obmV3X2dpKTsNCkBAIC0zMjUsOCArMzY1
LDEwIEBAIG5ucGZzX2dldF9wYWcoKQ0KIA0KICNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4g
Y3VycmVudC0+dWlkOw0KLSNlbHNlDQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICByZXR1cm4gY3Vy
cmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0gY3Vy
cmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQogI2VuZGlmDQogfQ0K
IA0KQEAgLTQzMiw3ICs0NzQsNyBAQCBubnBmc19zZXRncm91cHMxNiAoaW50
IGdpZHNldHNpemUsIG9sZF9nDQogI2VuZGlmIC8qIFNZU0NBTExIQUNLICov
DQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KLXN0cnVjdCBmaWxlX2hh
bmRsZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVfaGFuZGxlIHsNCiAgICAgbm5w
ZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBpbm9kZTsNCiAgICAgX191MzIg
Z2VuOw0KQEAgLTUxOSwyNiArNTYxLDU4IEBAIG5ucGZzX2RlYnVnX3ByaW50
IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bCANCiAgKiBmb2xsb3cgc3ltbGlua3Mg
aWZmIGBmb2xsb3cnDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiBzdGF0aWMgc3RydWN0IGRl
bnRyeSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAq
bmQsIGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCisjZWxzZQ0KK3N0
YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCit1c2VyX3BhdGgyZGVudHJ5IChzdHJ1
Y3QgcGF0aCAqcGF0aCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0K
KyNlbmRpZg0KIHsNCiAgICAgY2hhciAqa25hbWU7DQogICAgIGludCBmbGFn
cyA9IDA7DQogICAgIGludCBlcnJvciA9IDA7DQogDQotICAgIGtuYW1lID0g
Z2V0bmFtZSAodXNlcl9wYXRoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorICAgIGtuYW1lID0gZ2V0bmFt
ZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGtuYW1lID0gX19nZXRuYW1l
KCk7DQorI2VuZGlmDQorDQogICAgIGlmIChJU19FUlIoa25hbWUpKQ0KIAly
ZXR1cm4gRVJSX1BUUihQVFJfRVJSKGtuYW1lKSk7DQogICAgIGlmIChmb2xs
b3cpDQogCWZsYWdzIHw9IExPT0tVUF9GT0xMT1c7DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisgICAg
ZXJyb3IgPSBzdHJuY3B5X2Zyb21fdXNlcihrbmFtZSwgdXNlcl9wYXRoLCBQ
QVRIX01BWCk7DQorICAgIGlmIChlcnJvciA8IDAgfHwgZXJyb3IgPT0gUEFU
SF9NQVgpIHsNCisJX19wdXRuYW1lKGtuYW1lKTsNCisJcmV0dXJuIEVSUl9Q
VFIoZXJyb3IpOw0KKyAgICB9DQorI2VuZGlmDQorDQogICAgIE5OUEZTREVC
KFhERUJNU0csICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNcbiIs
IGtuYW1lKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1cChr
bmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGVycm9yID0ga2Vybl9w
YXRoKGtuYW1lLCBmbGFncywgJihuZC0+cGF0aCkpOw0KKyNlbHNlDQorICAg
IGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgcGF0aCk7DQorI2Vu
ZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsNywwKQ0KICAgICBwdXRuYW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAgICBf
X3B1dG5hbWUoa25hbWUpOw0KKyNlbmRpZg0KICAgICBpZiAoZXJyb3IpDQog
CXJldHVybiBFUlJfUFRSKGVycm9yKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICByZXR1cm4gbmQt
PnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVybiBwYXRoLT5kZW50
cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9uZw0KQEAgLTU1
MywxMyArNjI3LDIxIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0K
ICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7
DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAg
ICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gTlVMTDsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBz
dHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRo
IHBhdGg7DQorI2VuZGlmDQogICAgIA0KICAgICBtc2cgPSBrbWFsbG9jKHNp
emVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQogICAgIGlmIChtc2cgPT0gTlVM
TCkNCiAgICAgICByZXR1cm4gLUVOT01FTTsNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBsb2Nr
X2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFhYWCBsb2NrX2tlcm5lbCgp
IGlzIHJlbW92ZWQsIGNvbnNpZGVyIGFkZGluZyBhbiBwcml2YXRlIGxvY2sg
Ki8NCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNf
YWZzIGtlcm5lbCBsb2NrZWRcbiIpKTsNCiANCkBAIC01OTcsNyArNjc5LDEx
IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkgICAgfQ0KIAl9
DQogCWlmIChhX3BhdGhQICE9IE5VTEwpIHsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgZGVudHJ5
ID0gdXNlcl9wYXRoMmRlbnRyeSAoJm5kLCBhX3BhdGhQLCBhX2ZvbGxvd1N5
bWxpbmtzKTsNCisjZWxzZQ0KKwkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRl
bnRyeSAoJnBhdGgsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNl
bmRpZg0KIAkgICAgaWYgKCFkZW50cnkpIHsNCiAJCWVycm9yID0gLUVJTlZB
TDsNCiAJCWdvdG8gdW5sb2NrOw0KQEAgLTY5MywxMyArNzc5LDIxIEBAIHN5
c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICANCiAgdW5sb2NrOg0K
ICAgICBpZiAoZGVudHJ5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQogCXBhdGhfcHV0KCZuZC5wYXRoKTsN
CisjZWxzZQ0KKwlwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogDQogICAg
IE5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVy
cm9yOiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAgIE5OUEZTREVCKFhERUJT
WVMsICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4iKSk7DQogICAgIGtmcmVl
KG1zZyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOSkNCiAgICAgdW5sb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQor
ICAgIC8qIFhYWCBzZWUgdGhlIGNvbW1lbnQgYXQgbG9ja19rZXJuZWwoKSBh
Ym92ZSAqLw0KKyNlbmRpZg0KIA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0K
QEAgLTc0OCw5ICs4NDIsMTUgQEAgc3lzX2FmcyAoaW50IG9wZXJhdGlvbiwN
CiAJCSAgICAgICBhX2ZvbGxvd1N5bWxpbmtzKTsNCiB9DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBz
dGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAq
aW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5zaWduZWQgaW50
IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9u
Zw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJ
CSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNl
bmRpZg0KIHsNCiAgICAgYWZzcHJvY2RhdGEgYXJnczsNCiAgICAgbG9uZyBy
ZXQ7DQpAQCAtODA3LDcgKzkwNywxMSBAQCBzdGF0aWMgaW50IG5ucGZzX2lu
aXRfcHJvY2ZzKHZvaWQpDQogICAgIG5ucGZzX3Byb2Nmc19kaXItPm93bmVy
ID0gVEhJU19NT0RVTEU7DQogI2VuZGlmDQogICAgIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQogICAgIGVu
dHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RFLCAwNjY2
LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRyeSA9IHBy
b2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwgJm5ucGZz
X3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5ID09IE5V
TEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0X3Byb2Nm
czogbm8gbm9kZVxuIikpOw0KIAlyZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBO
TlBGU19QUk9DX0RJUiwgTlVMTCk7DQpAQCAtODE3LDcgKzkyMSw5IEBAIHN0
YXRpYyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiAjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBl
bnRyeS0+b3duZXIgPSBUSElTX01PRFVMRTsNCiAjZW5kaWYNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAg
ICBlbnRyeS0+cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNl
bmRpZg0KIA0KICNpZmRlZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdp
c3Rlcl9pb2N0bDMyX2NvbnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwg
bm5wZnNfcHJvY2ZzX2lvY3RsMzIpKSB7DQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3Nz
YWdlLmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl
LmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2Fs
bHMtbG9zc2FnZS5jCTIwMTAtMDgtMDggMjI6NDM6MDUuMDAwMDAwMDAwICsw
MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3Nz
YWdlLmMJMjAxNi0wMS0xMyAyMTo1MTo0OS4wMDAwMDAwMDAgKzAxMDANCkBA
IC01MCw4ICs1MCwxNyBAQA0KIFJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxz
LWxvc3NhZ2UuYyx2IDEuMTkgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhw
ICQiKTsNCiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49
IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKy8qIHRoZSBtZXRob2QgdG8gcmVh
ZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVsIDMuNyBh
bmQgbGF0ZXIgKi8NCisjdW5kZWYgU1lTQ0FMTEhBQ0sNCisjZW5kaWYNCisN
CiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4NCisjaWZkZWYgU1lTQ0FM
TEhBQ0sNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw3LDApDQogc3RhdGljIHZvaWQgKmxvd2VyX2JvdW5kID0gJmtlcm5l
bF90aHJlYWQ7DQorI2VuZGlmDQorI2VuZGlmDQogDQogdm9pZCAqIF9fYXR0
cmlidXRlX18oKHdlYWspKSBzeXNfY2FsbF90YWJsZSh2b2lkKTsNCiBubnBm
c19zeXNfY2FsbF9mdW5jdGlvbiAqbm5wZnNfc3lzX2NhbGxfdGFibGUgPQ0K
QEAgLTY2LDYgKzc1LDggQEAgY29uc3QgY2hhciAqIF9fYXR0cmlidXRlX18o
KHdlYWspKQ0KICNpZmRlZiBfX3g4Nl82NF9fDQogZXh0ZXJuIHJ3bG9ja190
IHRhc2tsaXN0X2xvY2sgX19hdHRyaWJ1dGVfXygod2VhaykpOw0KICNlbmRp
Zg0KKw0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0YXRpYyB2b2lkICoqDQog
Z2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICNpZmRlZiBfX3g4Nl82NF9fDQpA
QCAtNzQsNiArODUsNyBAQCBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogICAg
IHJldHVybiAodm9pZCAqKikmbXV0ZXhfbG9jazsNCiAjZW5kaWYNCiB9DQor
I2VuZGlmDQogDQogc3RhdGljIGlubGluZSBpbnQgDQoga2FsbHN5bV9pc19l
cXVhbCh1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKm5hbWUpDQpA
QCAtMTQyLDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lkICoqcCkgew0KICAgICBy
ZXR1cm4gMTsNCiB9DQogDQorI2lmZGVmIFNZU0NBTExIQUNLDQorDQogc3Rh
dGljIGlubGluZSBpbnQgbG9va3NfZ29vZCh2b2lkICoqcCkNCiB7DQogICAg
IGlmICgqcCA8PSAodm9pZCopbG93ZXJfYm91bmQgfHwgKnAgPj0gKHZvaWQq
KXApDQpAQCAtMTkxLDMgKzIwNSw1IEBAIG5ucGZzX2ZpeHVwX3N5c2NhbGxf
bG9zc2FnZSh2b2lkKQ0KIA0KICAgICByZXR1cm4gMDsNCiB9DQorDQorI2Vu
ZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9s
aW51eC9ubnBmc192ZnNvcHMuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3Zm
c29wcy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zm
c29wcy5jCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQor
KysgYXJsYS9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYwkyMDE2LTAyLTE0
IDAxOjM2OjA2LjAwMDAwMDAwMCArMDEwMA0KQEAgLTUwLDcgKzUwLDkgQEAg
UkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAyMDEwLw0KIHN0
cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KIHN0YXRpYyB2b2lkIG5u
cGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
c3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Js
b2NrICogc2IpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbnQgbm5wZnNfc3Rh
dGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1
Zik7DQogDQpAQCAtNTksNyArNjEsOSBAQCBzdGF0aWMgc3RydWN0IHN1cGVy
X29wZXJhdGlvbnMgbm5wZnNfc29wDQogICAgIGRlc3Ryb3lfaW5vZGUJOiBu
bnBmc19ub2RlX2ZyZWUsDQogICAgIGRyb3BfaW5vZGUJCTogZ2VuZXJpY19k
ZWxldGVfaW5vZGUsDQogICAgIHB1dF9zdXBlcgkJOiBubnBmc19wdXRfc3Vw
ZXIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsNiwwKQ0KICAgICB3cml0ZV9zdXBlcgkJOiBubnBmc193cml0ZV9zdXBl
ciwNCisjZW5kaWYNCiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0YXRmcywNCiB9
Ow0KIA0KQEAgLTg2LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNoX3Jvb3Qoc3Ry
dWN0IGlub2RlICppKQ0KIAkgKiByb290J3MgcHJpdmlsaWdlcyAodXN1YWxs
eSBub25lLCBhbmQgbm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8NCiAJDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkN
CiAJbXNnLmNyZWQudWlkID0gMDsNCisjZWxzZQ0KKwltc2cuY3JlZC51aWQg
PSBLVUlEVF9JTklUKDApOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSAw
Ow0KIAkNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZt
c2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtMTIxLDggKzEyOSwxMyBA
QCBtYWtlX3Jvb3RfaW5vZGUoc3RydWN0IG5ucGZzICpubnBmc3ApDQogICAg
IFhBX1NFVF9NT0RFKCZub2RlLmF0dHIsIFNfSUZESVIgfCAwNzc3KTsNCiAg
ICAgWEFfU0VUX05MSU5LKCZub2RlLmF0dHIsIDEwMCk7DQogICAgIFhBX1NF
VF9TSVpFKCZub2RlLmF0dHIsIDApOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIFhBX1NFVF9VSUQo
Jm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwg
MCk7DQorI2Vsc2UNCisgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCBLVUlE
VF9JTklUKDApKTsNCisgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCBLR0lE
VF9JTklUKDApKTsNCisjZW5kaWYNCiAgICAgWEFfU0VUX0FUSU1FKCZub2Rl
LmF0dHIsIDApOw0KICAgICBYQV9TRVRfTVRJTUUoJm5vZGUuYXR0ciwgMCk7
DQogICAgIFhBX1NFVF9DVElNRSgmbm9kZS5hdHRyLCAwKTsNCkBAIC0xNTEs
NyArMTY0LDExIEBAIG1ha2Vfcm9vdCAoc3RydWN0IHN1cGVyX2Jsb2NrICpz
YikNCiAgICAgbm5wZnMtPnJvb3QgPSBpbm9kZTsNCiANCiAgICAgLyogWFhY
IGVycm9yIGhhbmRsaW5nICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNCwwKQ0KICAgICBkcCA9IGRfYWxsb2Nfcm9v
dChpbm9kZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vfcm9vdChpbm9k
ZSk7DQorI2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7DQogICAgIHNi
LT5zX3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTc1LDEzICsx
OTIsMjcgQEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2Nr
ICogcw0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNfcmVhZF9z
dXBlcjogYmVnaW4gc2V0dGluZyB2YXJpYWJsZXNcbiIpKTsNCiANCiAgICAg
aWYgKGRhdGEgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBuYW1laWRhdGEg
bmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAJ
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAwLCAmbmQpOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJm5kLnBhdGgp
Ow0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAsICZwYXRo
KTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRldiA9IEVSUl9Q
VFIoZXJyb3IpOw0KIAllbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAgIGRkZXYgPSBuZC5wYXRo
LmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9IHBhdGguZGVudHJ5Ow0K
KyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2KSkgew0KIAkgICAgbWlu
b3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2RlLT5pX3JkZXYpOw0KQEAg
LTIyNSw2ICsyNTYsNyBAQCBubnBmc19maWxsX3N1cGVyIChzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0KIH0NCiANCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIGlu
dA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNf
dHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1l
LA0KQEAgLTIzMiwxMiArMjY0LDIzIEBAIG5ucGZzX2dldF9zYihzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiB7DQogICAgIHJldHVybiBnZXRfc2Jf
bm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIs
IG1udCk7DQogfQ0KKyNlbHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19t
b3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAg
ICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZv
aWQgKmRhdGEpIA0KK3sNCisgICAgcmV0dXJuIG1vdW50X25vZGV2KGZzX3R5
cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCit9DQorI2Vu
ZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVfc3VwZXIo
c3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+c19kaXJ0
ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMgdGhpcyBn
b29kPyANCkBAIC0yNzYsNyArMzE5LDExIEBAIG5ucGZzX3N0YXRmc19pbnQo
c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfc3BhcmVbMV0g
PSAwOw0KICAgICB0bXAuZl9zcGFyZVsyXSA9IDA7DQogICAgIHRtcC5mX3Nw
YXJlWzNdID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM2KQ0KICAgICB0bXAuZl9zcGFyZVs0XSA9IDA7DQor
I2Vsc2UNCisgICAgdG1wLmZfZmxhZ3MgPSAwOw0KKyNlbmRpZg0KICAgICAq
YnVmID0gdG1wOw0KICAgICByZXR1cm4gMDsNCiB9DQo=

---276651502-1872514844-1455997770=:736
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-1872514844-1455997770=:736--

home help back first fref pref prev next nref lref last post