[5077] in arla-drinkers

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

Re: PATCH v10: Arla 0.90 on Linux 2.6.3x to 4.4

daemon@ATHENA.MIT.EDU (Bo Branten)
Tue Feb 16 12:53:22 2016

From arla-drinkers-bounces@stacken.kth.se Tue Feb 16 17:53:22 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 16400 invoked from network); 16 Feb 2016 17:53:21 -0000
Received: from mx6.kth.se (130.237.48.70)
  by charon.mit.edu with SMTP; 16 Feb 2016 17:53:21 -0000
Received: from mx6.kth.se (localhost [127.0.0.1])
	by mx6.kth.se (Postfix) with ESMTP id 9F78C1C0093;
	Tue, 16 Feb 2016 18:53:20 +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 b1W0KZnyvhIW; Tue, 16 Feb 2016 18:53:08 +0100 (CET)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
	by mx6.kth.se (Postfix) with ESMTP;
	Tue, 16 Feb 2016 18:53:07 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id A9E2814CB5B;
	Tue, 16 Feb 2016 18:53:07 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id 210B714CB5C; Tue, 16 Feb 2016 18:53:06 +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 1D1AA14CB00
 for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:53:06 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
 by mx5.kth.se (Postfix) with ESMTP id 0E68A2400A8
 for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:53:06 +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]:34293
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 01t2cMzvLKVk for <arla-drinkers@stacken.kth.se>;
 Tue, 16 Feb 2016 18:53:03 +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>; Tue, 16 Feb 2016 18:53:03 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id C620F63F
 for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:53:02 +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 0AA0463E
 for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:52:56 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id F2A2144B8C; Tue, 16 Feb 2016 18:52:55 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id ECBD244B8B
 for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:52:55 +0100 (CET)
Date: Tue, 16 Feb 2016 18:52:55 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v10: Arla 0.90 on Linux 2.6.3x to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1602161850320.24402@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
 <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
 BOUNDARY="-276651502-719180580-1455645175=:24402"
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-719180580-1455645175=:24402
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v10: Arla 0.90 on Linux 2.6.3x to 4.4

Corrected an error in the use of getname/putname that showed up on Linux 
kernel 3.14 and later.

Bo Branten

---276651502-719180580-1455645175=:24402
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v10-arla-0.90-for-linux-2.6.3x-to-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1602161852550.24402@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v10-arla-0.90-for-linux-2.6.3x-to-4.4

ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzoz
MC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAw
MDAwMDAgKzAxMDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBm
c19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50
MzJfdAkJeGFfdHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAg
dWludDMyX3QJCXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisj
ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90
CQl4YV9naWQ7DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisg
ICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAg
ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp
bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEw
LTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQg
MTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAv
Kg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVu
aXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2Nr
aG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHks
IFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4N
CiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tz
LmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisv
KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6
MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAg
IDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2RlZmluZSBOTlBGU19O
T19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5v
IGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEgg
ICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9E
SVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNI
RV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUg
Tk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAyeCINCisjZGVmaW5l
IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5O
UEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVm
aW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVf
RElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNk
ZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0la
RSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNz
YWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVz
c2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0IDE4OjMzOjMyLjAwMDAwMDAw
MCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAg
Ki8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjEgMjAwNi8x
MC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX21l
c3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAyMDoyMDo1NSB0b2wgRXhwICQg
Ki8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAjZGVmaW5lIF94bXNnX2gNCkBA
IC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVpbnQxNl90IG5ucGZzX3JpZ2h0
czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYgcGFnID09IDAsIHVzZSB1aWQg
DQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfY3JlZCB7DQorI2lmbmRl
ZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90IHVpZDsNCisjZWxzZQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNlDQorICAgIHVpbnQzMl90IHVp
ZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgbm5wZnNfcGFnX3QgcGFnOw0K
IH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYsNyArMTE0LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxlIHsNCiANCiAvKiBubnBmc19u
b2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFncw0KLSAqIFRoZSB1cHBlciAx
NiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZvciBvcGVydGluZyBzeXN0ZW0g
ZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50DQogICogZmxh
Z3MuDQogICovDQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAw
MDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw
MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy
MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6
IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs
YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291
cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv
bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu
ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0
OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog
ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv
cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj
YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh
Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K
KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl
bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN
CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO
IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5w
ZnNfbG9jbC5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19s
b2NsLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25u
cGZzX2xvY2wuaAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgJMjAxNi0wMS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0z
NCw3ICszNCw3IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog
JElkOiBubnBmc19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkg
dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIw
MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhB
VkVfQ09ORklHX0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyAr
NTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog
I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSAr
MTQwLDE2IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5u
cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl
dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq
bW50KTsNCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNf
Z2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0J
ICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAq
ZGF0YSk7DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0K
ICNlbmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMg
bm5wZnNfZGVudHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTgpDQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19z
cGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0
X2Zvcl9lYWNoDQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9z
eXNjYWxsX2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBu
bnBmc19kZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2Vu
dHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisj
ZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5o
YXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAg
ICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAu
OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEy
LTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0
MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVy
biB1aW50MzJfdCBubnBmc19ibG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0K
ICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAg
ICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisj
ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp
cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8g
Ki8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhO
X0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0
OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTI4IDE3OjQ0OjM2LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEANCiAgKiBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX2Jsb2Nr
cy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6MjQgdG9sIEV4cCAkICovDQor
LyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuNiAyMDEwLzA4LzA4IDIwOjQz
OjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19s
b2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2ZzLmg+DQpAQCAtNDMs
NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j
bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w
YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq
LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg
cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm
IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA
QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog
ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN
CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg
ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu
b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg
ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t
dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM
KTsNCkBAIC0zMTgsOSArMzI5LDE4IEBAIG5ucGZzX2Jsb2NrX29wZW4oc3Ry
dWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgc3RydWN0IG5ucGZzICpubnBm
c3AgPSBOTlBGU19GUk9NX1hOT0RFKG5vZGUpOw0KICAgICBzdHJ1Y3QgaW5v
ZGUgKmlub2RlID0gWE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBm
bGFncyA9IE9fTEFSR0VGSUxFIHwgZmxhZzsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3Qg
bmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOSkNCiAgICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lk
X3Qgc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3JlZCAq
b2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0K
KyNlbmRpZg0KICAgICBpbnQgcmV0Ow0KIA0KICAgICBCVUdfT04oIW5ucGZz
cCk7DQpAQCAtMzQ2LDIxICszNjYsMzYgQEAgbm5wZnNfYmxvY2tfb3Blbihz
dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+
Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAg
IC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2
ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9
IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+
Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+Y2FjaGVk
aXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNoZXJvb3Qp
Ow0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAgIG5kLmRl
cHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0gICAgaWYg
KGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBfUEFSRU5U
Ow0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFtZSwgJm5k
KTsNCisjZWxzZQ0KKyAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9jcmVk
cygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KKyAgICAg
ICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzdWlk
ID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzZ2lkID0g
bm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMo
b3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KKyAgICByZXQgPSB2
ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNo
ZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JF
QVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg
bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm
bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu
ZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAo
bm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBj
YWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFS
RU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYNCiAgICAgaWYgKHJl
dCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsN
CiAJdWludDMyX3QgbWFzazsNCkBAIC0zODcsMTcgKzQyMiwzOSBAQCBubnBm
c19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0K
ICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJp
dHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQorCS8qIFhYWCB2ZXJpZnkgdGhhdCBjYWNoZW5hbWUgaXMgdGhl
IGNvcnJlY3QgcGF0aCBzdHJpbmcgdG8gdXNlIGhlcmUgKi8NCisJc3RydWN0
IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwg
Y2FjaGVuYW1lLCAmbmQucGF0aCwgMCk7CQ0KKyNlbHNlDQorCS8qIFhYWCB2
ZXJpZnkgdGhhdCBjYWNoZW5hbWUgaXMgdGhlIGNvcnJlY3QgcGF0aCBzdHJp
bmcgdG8gdXNlIGhlcmUgKi8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0g
a2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgY2FjaGVuYW1lLCAmcGF0aCwg
MCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsNCiAJICAg
IHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCi0JICAgIHJl
dCA9IHZmc19jcmVhdGUobmQuZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNf
SVJVU1J8U19JV1VTUiwgJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorCSAgICByZXQgPSB2ZnNfY3Jl
YXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8
U19JV1VTUiwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICAvKiBYWFggc2hvdWxkIHRo
ZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19jcmVhdGU6IGJvb2wgd2FudF9leGNs
LCBiZSAwIG9yIDE/ICovDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBh
dGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwg
MCk7DQorI2Vsc2UNCisJICAgIC8qIFhYWCBzaG91bGQgdGhlIGxhc3QgYXJn
dW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3Ig
MT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRf
aW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYN
CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogCSAgICBkcHV0KGRlbnRyeSk7DQorCSAgICBtdXRleF91bmxv
Y2soJm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCisJICAg
IHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICBkb25lX3BhdGhf
Y3JlYXRlKCZuZC5wYXRoLCBkZW50cnkpOw0KKyNlbHNlDQorCSAgICBkb25l
X3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50cnkpOw0KKyNlbmRpZg0KIAl9DQog
DQotCW11dGV4X3VubG9jaygmbmQuZGVudHJ5LT5kX2lub2RlLT5pX211dGV4
KTsNCi0JcGF0aF9yZWxlYXNlKCZuZCk7DQotDQogCWlmIChyZXQpIHsNCiAJ
ICAgIHByaW50aygibm5wZnNfYmxvY2tfb3BlbiglcykgY3JlYXRlIGZhaWxl
ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1
Z19vb3BzKCk7DQpAQCAtNDEwLDEyICs0NjcsMjQgQEAgbm5wZnNfYmxvY2tf
b3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIAkgICAgcmV0ID0gbm5w
ZnNfYmxvY2tfZXh0ZW5kKG5vZGUsIG9mZnNldCk7DQogCX0NCiAgICAgfSBl
bHNlIHsNCi0Jc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5kZW50
cnksIG5kLm1udCwgZmxhZ3MpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQorCXN0cnVjdCBmaWxlICpmID0g
ZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBmbGFn
cyk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v
cGVuKG5kLnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJl
bnRfY3JlZCgpKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9
IGRlbnRyeV9vcGVuKCZuZC5wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkp
Ow0KKyNlbHNlDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v
cGVuKCZwYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbmRpZg0K
IAlpZiAoSVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0K
IAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxl
ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1
Z19vb3BzKCk7DQotCSAgICBwYXRoX3JlbGVhc2UoJm5kKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkg
ICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBwYXRoX3B1
dCgmcGF0aCk7DQorI2VuZGlmDQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9
IGY7DQogCX0NCkBAIC00MjQsOCArNDkzLDEzIEBAIG5ucGZzX2Jsb2NrX29w
ZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgLyogcGF0aF9yZWxl
YXNlKCkgaXMgdXN1YWxseSBoYW5kbGVkIG9uIGNsb3NlICovDQogDQogIG91
dDoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDI5KQ0KICAgICBjdXJyZW50LT5mc3VpZCA9IHNhdmV1aWQ7DQogICAg
IGN1cnJlbnQtPmZzZ2lkID0gc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICByZXZl
cnRfY3JlZHMob2xkX2NyZWQpOw0KKyAgICBwdXRfY3JlZChvdmVycmlkZV9j
cmVkKTsNCisjZW5kaWYNCiANCiAgICAgcmV0dXJuIHJldDsNCiB9DQpkaWZm
IC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5w
ZnNfY29tbW9uLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2NvbW1v
bi5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21t
b24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0KKysr
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDE2LTAx
LTE0IDE2OjE1OjAwLjAwMDAwMDAwMCArMDEwMA0KQEAgLTExMiwxMCArMTEy
LDE1IEBAIG5ucGZzX3ByaW50X2FsaWFzZXMoY29uc3Qgc3RydWN0IGlub2Rl
ICoNCiB2b2lkDQogbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0
cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICph
bGlhczsNCisjZW5kaWYNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0K
ICAgICBpbnQgYmFpbG91dCA9IDEwMDsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0g
aW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAm
aW5vZGUtPmlfZGVudHJ5KSB7DQogCWlmICgtLWJhaWxvdXQgPCAwKSB7DQpA
QCAtMTMxLDYgKzEzNiwyNiBAQCBubnBmc19wcmludF9hbGlhc2VzX3JlYWwo
Y29uc3Qgc3RydWN0IGluDQogCX0NCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsN
CiAgICAgfQ0KKyNlbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRy
eShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZp
bm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlz
dF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRf
dS5kX2FsaWFzKSB7DQorI2VuZGlmDQorCWlmICgtLWJhaWxvdXQgPCAwKSB7
DQorCSAgICBwcmludGsoIiAuLi4iKTsNCisJICAgIGJyZWFrOw0KKwl9DQor
CWlmIChkZW50cnkpIHsNCisJICAgIHByaW50aygiICUuKnMoJXApIiwgKGlu
dClkZW50cnktPmRfbmFtZS5sZW4sDQorCQkgICBkZW50cnktPmRfbmFtZS5u
YW1lLCBkZW50cnkpOw0KKwkgICAgaWYgKG5ucGZzX2RfZW50cnlfdW5oYXNo
ZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJCXByaW50aygiKHVuaGFzaGVkKSIp
Ow0KKwl9DQorICAgIH0NCisjZW5kaWYNCiAgICAgcHJpbnRrKCJcbiIpOw0K
IH0NCiANCkBAIC0xNDYsNyArMTcxLDExIEBAIG5ucGZzX3ByaW50X2NoaWxk
cmVuKGNvbnN0IHN0cnVjdCBkZW50cnkNCiANCiAgICAgd2hpbGUgKHN1YmRp
cnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCXN0cnVjdCBsaXN0X2hl
YWQgKnRtcCA9IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqY2hp
bGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hp
bGQpOw0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9l
bnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0K
IA0KIAlwcmludGsoIiAlLipzKCVwKSIsIChpbnQpY2hpbGQtPmRfbmFtZS5s
ZW4sDQogCSAgICAgICBjaGlsZC0+ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRp
ZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9u
bnBmc19kZXYuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMN
Ci0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIw
MDYtMTAtMjQgMTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6
MTkuMDAwMDAwMDAwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZz
X2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMNCiAgICAgTk5Q
RlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRp
bmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihubnBmcy0+c2Ip
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZzLT5zYik7DQor
I2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJmcmVl
X2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAgLTM3NCw3ICsz
NzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2RlICogaW5vZGUs
IHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAq
cHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+
Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBubnBm
c19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0g
Jm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAq
Zmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5
LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmls
ZSwgY29uc3QgDQogDQogICAgIE5OUEZTREVCKFhERUJERVYsICgibm5wZnNf
ZGV2d3JpdGVcbiIpKTsNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgZGV2ID0gZmlsZS0+
Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCi0gICAgbm5wZnNwID0gJm5u
cGZzW01JTk9SKGRldildOw0KKyNlbHNlDQorICAgIGRldiA9IGZpbGUtPmZf
cGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5kaWYNCisgICAg
IG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiANCiAgICAgZG93bigm
bm5wZnNwLT5jaGFubmVsX3NlbSk7DQogICAgIGlmIChubnBmc3AtPnN0YXR1
cyAmIE5OUEZTX0RFVldSSVRFKSB7DQpAQCAtNTA1LDE5ICs1MTUsMzcgQEAg
bm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IA0KIC8q
DQogICogTm90IHVzZWQuDQogICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5w
ZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUg
KmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs
b25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfdW5sb2Nr
ZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAgICAgICB1bnNp
Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZW5kaWYNCiB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzNikNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0
bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+
aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBOTlBGU0RF
QihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9
ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAgICBOTlBGU0RF
QihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9
ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5v
ZGUtPmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbmRpZg0KICAgICBy
ZXR1cm4gLUVJTlZBTDsNCiB9DQogDQogc3RhdGljIHVuc2lnbmVkIGludA0K
IG5ucGZzX2RldnBvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUg
KndhaXQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUt
PmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5w
ZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+
aV9yZGV2Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9
ICZubnBmc1tNSU5PUihkZXYpXTsNCiAgICAgaW50IHJldCA9IDA7DQogICAg
IA0KQEAgLTk1Myw3ICs5ODEsMTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9u
cyBubnBmc19mb3BzID0gew0KICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwN
CiAgICAgd3JpdGU6CQlubnBmc19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5u
cGZzX2RldnBvbGwsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzNikNCiAgICAgaW9jdGw6CQlubnBmc19kZXZpb2N0
bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tlZF9pb2N0bDoJbm5wZnNfdW5sb2Nr
ZWRfZGV2aW9jdGwsDQorI2VuZGlmDQogICAgIHJlbGVhc2U6CQlubnBmc19k
ZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5ucGZzX2Rldm9wZW4sDQogfTsNCkBA
IC05NjgsOCArMTAwMCwxMyBAQCBubnBmc19pbml0X2RldmljZSh2b2lkKQ0K
IAlpbml0X3dhaXRxdWV1ZV9oZWFkKCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkp
Ow0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBm
c19pbml0cSgmbm5wZnNbaV0uc2xlZXBxKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KIAlpbml0X01VVEVY
KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0pOw0KIAlpbml0X01VVEVYKCZubnBm
c1tpXS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9pbml0KCZubnBm
c1tpXS5pbmFjdGl2ZV9zZW0sIDEpOw0KKwlzZW1hX2luaXQoJm5ucGZzW2ld
LmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQo
Jm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tpXS5ubm9kZXMg
PSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLTAuOTAvbm5w
ZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtMC45MC1vbGQv
bm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1
OjI2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19pbm9kZW9wcy5jCTIwMTYtMDItMTUgMTY6MTU6MjkuMDAwMDAw
MDAwICswMTAwDQpAQCAtNDAsMjUgKzQwLDQxIEBADQogI2luY2x1ZGUgPG5u
cGZzL25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kaXJl
bnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisj
aW5jbHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZt
dHMuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KICNpbmNsdWRlIDxs
aW51eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3Mu
aD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDQsMSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8uaD4NCisjZW5kaWYNCiAj
aW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGFzbS9m
Y250bC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZz
X2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2LzEyLzExIDE2OjM1OjI2IHRvbCBF
eHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIy
NiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0K
IA0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUg
KmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5w
ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0
IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25u
cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln
bmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitp
bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0K
KyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMg
dm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
Ow0KQEAgLTEwNSw3ICsxMjEsNyBAQCBubnBmc192bWFfY2xvc2UgKHN0cnVj
dCB2bV9hcmVhX3N0cnVjdCAqDQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3Qgdm1f
b3BlcmF0aW9uc19zdHJ1Y3Qgbm5wZnNfZmlsZV92bV9vcHMgPSB7DQotICAg
IC5ub3BhZ2UJPSBmaWxlbWFwX25vcGFnZSwNCisgICAgLmZhdWx0ICAgICAg
PSBmaWxlbWFwX2ZhdWx0LA0KICAgICAuY2xvc2UJPSBubnBmc192bWFfY2xv
c2UsDQogfTsNCiANCkBAIC0xMzQsMTIgKzE1MCwxNCBAQCBubnBmc19wcmlu
dF9wYXRoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiAgKg0KICAqLw0KIA0K
KyNpZiAwDQogdm9pZA0KIG5ucGZzX3ByaW50X2xvY2soY2hhciAqcywgc3Ry
dWN0IHNlbWFwaG9yZSAqc2VtKQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQkxP
Q0ssICgibG9jazogJXMgc2VtOiAlcCBjb3VudDogJWRcbiIsDQogCQkgICAg
ICBzLCBzZW0sIChpbnQpYXRvbWljX3JlYWQoJnNlbS0+Y291bnQpKSk7DQog
fQ0KKyNlbmRpZg0KIA0KIC8qDQogICoNCkBAIC0xODUsNyArMjAzLDcgQEAg
bm5wZnNfZF9pcHV0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydQ0KICAg
ICBOTlBGU0RFQihYREVCVk5PUFMsDQogCSAgICAgKCJubnBmc19kX2lwdXQ6
IGRlbnRyeSAlcCwgaW5vZGUgJXBcbiIsIGRlbnRyeSwgaW5vZGUpKTsNCiAg
ICAgDQotICAgIGlmIChub2RlLT5mbGFncyAmIE5OUEZTX05PREVfSVBVVCkg
LyogWFhYIGxvY2tpbmcgKi8NCisgICAgaWYgKG5vZGUtPmZsYWdzICYgTk5Q
RlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2luZy4gbmV2ZXIgc2V0PyAqLw0K
IAlubnBmc19pcmVsZShpbm9kZSk7DQogICAgIGVsc2UNCiAJaXB1dChpbm9k
ZSk7DQpAQCAtMjEyLDggKzIzMCwxMyBAQCBubnBmc19pbm9kZV92YWxpZChz
dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIG5ucGZzX2xvb2t1cCBub3cgcmV0
dXJucyBhIGRlbnRyeS4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHN0cnVjdCBk
ZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQor
I2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQorbm5wZnNfbG9va3Vw
IChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1
bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9nZXRub2RlIG1zZzsNCiAgICAgc3RydWN0IG5ucGZz
ICpubnBmc3A7DQpAQCAtMjQwLDcgKzI2MywxMSBAQCBubnBmc19sb29rdXAg
KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgDQogDQogCW1zZy5oZWFkZXIu
b3Bjb2RlID0gTk5QRlNfTVNHX0dFVE5PREU7DQogICAgICAgICANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
CiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
ICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
IAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5wYXJl
bnRfaGFuZGxlID0gZC0+aGFuZGxlOw0KICAgICAgICAgDQpAQCAtMzEwLDcg
KzMzNywxMSBAQCBubnBmc19vcGVuX3ZhbGlkKHN0cnVjdCBpbm9kZSAqdnAs
IHVfaW50DQogICAgICAgew0KIAlzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9vcGVu
IG1zZzsNCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfT1BFTjsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNl
bmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1z
Zy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAltc2cudG9rZW5zID0gdG9rOw0K
QEAgLTM5Nyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qg
bm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19p
bnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpDQogew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls
ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3Ry
dWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RFKGlub2RlKTsN
CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUo
aW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXplX3JlYWQoaW5vZGUp
Ow0KQEAgLTQyNSw3ICs0NjAsMTEgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVj
dCBmaWxlICpmaWxlLCB1X2ludA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19QVVREQVRBOw0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19n
ZXRfcGFnKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp
ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91
aWQoKTsNCisjZW5kaWYNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog
CW1zZy5mbGFnICAgPSBmbGFnOw0KIAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAg
LTQ2MCwxNCArNDk5LDI3IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls
ZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogc3RhdGljIGlu
dA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIGludCBkYXRhc3luYykNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCitzdGF0aWMgaW50
DQorbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3lu
YykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0
YXN5bmMpDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkgPSBmaWxlLT5mX3BhdGguZGVudHJ5Ow0KKyNlbmRpZg0KICAg
ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRy
eSk7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAg
ICh2b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92
YWxpZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9y
Ow0KQEAgLTUxMSw3ICs1NjMsMTEgQEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1
Y3QgaW5vZGUgKiB2cCwgdV9pbg0KICAgICAgICAgICAgIHN0cnVjdCBubnBm
c19tZXNzYWdlX2dldGF0dHIgbXNnOw0KIA0KICAgICAgICAgICAgIG1zZy5o
ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVEFUVFI7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg
ICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsN
CisjZW5kaWYNCiAgICAgICAgICAgICBtc2cuY3JlZC5wYWcgPSBwYWc7DQog
ICAgICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAg
ICAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cu
aGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtNTUxLDcgKzYwNywxMSBAQCBu
bnBmc19yaWdodHNfdmFsaWQoc3RydWN0IGlub2RlICogdnAsIG5uDQogICAg
ICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQog
DQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df
R0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICAgICAgICAgIG1z
Zy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBtc2cuaGFuZGxlID0g
eG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBA
IC01OTIsMTEgKzY1MiwyNSBAQCBjaGVja19yaWdodHMgKG5ucGZzX3JpZ2h0
cyByaWdodHMsIGludCBtDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0K
ICAqLw0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM4KSB8fCBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMywxLDApKQ0KK3N0YXRpYyBpbnQNCitubnBmc19wZXJtaXNz
aW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlKQ0KKyNlbHNlDQog
c3RhdGljIGludA0KLW5ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICpp
bm9kZSwgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KK25ucGZz
X3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHVu
c2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv
ciA9IDA7DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IG5ucGZzX2dldF9wYWco
KTsNCisgICAgbm5wZnNfcGFnX3QgcGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApDQorICAgIGlmIChtb2Rl
ICYgTUFZX05PVF9CTE9DSykNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQorICAgIGlmIChmbGFncyAmIElQRVJNX0ZMQUdfUkNVKQ0KKyAg
ICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VuZGlmDQorDQorICAgIHBhZyA9
IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19hY2Nlc3MgKCVwKSBtb2RlID0gMCVvIGFsaWFzZXM6
IiwgaW5vZGUsIG1vZGUpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhp
bm9kZSk7DQpAQCAtNjM2LDcgKzcxMCwxMSBAQCBubnBmc19kb19nZXRkYXRh
KHN0cnVjdCBubnBmc19ub2RlICp4biwgDQogICAgIGludCBlcnJvcjsNCiAN
CiAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUREFUQTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNl
bHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu
ZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAg
ICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIG1zZy50b2tlbnMg
PSB0b2s7DQpAQCAtNzUwLDExICs4MjgsMTkgQEAgbm5wZnNfZGF0YV92YWxp
ZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1Xw0KIGludCBubnBmc19maWxlX21t
YXAoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg
KiB2bWEpDQogew0KICAgICBpbnQgZmxhZ3MsIGVycm9yID0gMDsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRf
aW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0
cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gZmlsZS0+Zl9tYXBwaW5n
Ow0KIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBp
bm9kZTogJXBcbiIsIGlub2RlKSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfcHJpbnRf
cGF0aChmaWxlLT5mX2RlbnRyeSk7DQorI2Vsc2UNCisgICAgbm5wZnNfcHJp
bnRfcGF0aChmaWxlLT5mX3BhdGguZGVudHJ5KTsNCisjZW5kaWYNCiAgICAg
Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgYWxpYXNlczoiKSk7
DQogICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0KICAgICANCkBA
IC03ODksMzcgKzg3NSw1MCBAQCBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVj
dCBmaWxlICogZmlsZSwgDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBz
c2l6ZV90DQogbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDE5KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVuc2ln
bmVkIGxvbmcgbnJfc2VncywNCisJICAgICAgIGxvZmZfdCBwb3MpDQogI2Vs
c2UNCi0JICAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwN
CitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3JlYWRfaXRlcihzdHJ1Y3Qga2lv
Y2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pDQogI2VuZGlmDQotCSAg
ICAgICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAg
ICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEy
LDApDQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSww
KQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNl
bHNlDQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7
DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K
KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U
T19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkN
CiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6
IHRva2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5z
KSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlu
b2RlLCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNl
DQorICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNf
REFUQV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsN
CisjZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4i
LCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQot
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs
MTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQo
aW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVycm9y
ID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlvY2IsIGJ1ZiwgY291bnQsIHBv
cyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3JlYWRfaXRlcihpb2Ni
LCB0byk7DQogI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJu
bnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9yKSk7DQogICAg
IHJldHVybiBlcnJvcjsNCkBAIC04MjksMjMgKzkyOCwzNiBAQCBubnBmc19h
aW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICoNCiAgKi8NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiww
KQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBr
aW9jYiAqaW9jYiwNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwxOSkNCiAJCWNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92
LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQorCQlsb2ZmX3QgcG9zKQ0KICNl
bHNlDQotCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQs
IA0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qg
a2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkNCiAjZW5kaWYN
Ci0JCWxvZmZfdCBwb3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAg
ICBzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIs
MCkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwxLDAp
DQorICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vs
c2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlvdl9pdGVyX2NvdW50KGZyb20p
Ow0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBm
aWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsN
CisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf
VE9fWE5PREUoaW5vZGUpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGxvZmZfdCByZWFscG9zID0g
cG9zOw0KKyNlbHNlDQorICAgIGxvZmZfdCByZWFscG9zID0gaW9jYi0+a2lf
cG9zOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX2Fpb193cml0ZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJ
CQkgaW5vZGUsIHhuLT50b2tlbnMpKTsNCkBAIC04NTksMTAgKzk3MSwxMCBA
QCBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KIAlyZXR1
cm4gZXJyb3I7DQogICAgIH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAgICBlcnJvciA9
IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgaW92LCBucl9zZWdzLCBw
b3MpOw0KICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193
cml0ZShpb2NiLCBidWYsIGNvdW50LCBwb3MpOw0KKyAgICBlcnJvciA9IGdl
bmVyaWNfZmlsZV93cml0ZV9pdGVyKGlvY2IsIGZyb20pOw0KICNlbmRpZg0K
ICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJvcikpDQogCXhuLT5mbGFncyB8
PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFggcmFjZSAqLw0KQEAgLTg3MSw5
ICs5ODMsMTkgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9j
YiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGlu
dA0KIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LA0KIAkgICAgIGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlk
YXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0
cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAg
ICAgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxz
ZQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpk
aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1v
ZGUsIGJvb2wgZXhjbCkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAt
OTAzLDkgKzEwMjUsMTcgQEAgbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAq
ZGlyLCBzdHJ1Y3QgZA0KICAgICBYQV9DTEVBUigmbXNnLmF0dHIpOw0KICAg
ICBYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KICAgICBYQV9TRVRf
VFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfUkVHKTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
WEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxz
ZQ0KKyAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dpZCgp
KTsNCisjZW5kaWYNCiAgICAgbXNnLm1vZGUgPSAwOwkJLyogWFhYICovDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxz
ZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp
Zg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAg
IGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRl
ciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05
NDYsNyArMTA3NiwxMSBAQCBubnBmc191bmxpbmsgKHN0cnVjdCBpbm9kZSAq
IGRpciwgc3RydWN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1lLCBkZW50
cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19N
QVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAg
ICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9y
ID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6
ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05OTEsNyAr
MTEyNSwxMSBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9k
aXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uZXdfbmFtZSwgbmV3X2Rl
bnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmV3X25hbWUpKSA+PSBO
TlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5k
aWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAg
ICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFk
ZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAt
MTAwOCw4ICsxMTQ2LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2Rl
ICogb2xkX2Rpciwgc3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDAp
DQogc3RhdGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRp
ciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0K
K3N0YXRpYyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIs
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRp
Zg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVj
dCBubnBmc19ub2RlICp4bjsNCkBAIC0xMDQwLDkgKzExODMsMTcgQEAgbm5w
ZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KIAlYQV9D
TEVBUigmbXNnLmF0dHIpOw0KIAlYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1v
ZGUpOw0KIAlYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfRElS
KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCiAJWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZz
Z2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIs
IGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5j
cmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNn
LmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNy
ZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21l
c3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsN
CiAJaWYgKGVycm9yID09IDApDQpAQCAtMTA4Myw3ICsxMjM0LDExIEBAIG5u
cGZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAgICAg
bXNnLnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBpZiAoc3Ry
bGNweShtc2cubmFtZSwgZGVudHJ5LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1z
Zy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQogCSAgICByZXR1cm4gLUVO
QU1FVE9PTE9ORzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVu
dC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf
dWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl
dF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBm
c3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogICAgIGlmIChlcnJv
ciA9PSAwKQ0KQEAgLTExMjgsNyArMTI4MywxMSBAQCBzdGF0aWMgaW50IG5u
cGZzX2xpbmsoc3RydWN0IGRlbnRyeSAqb2xkDQogCWlmIChzdHJsY3B5KG1z
Zy5uYW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhf
TkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K
IAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQog
CW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBu
bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2Yo
bXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KQEAgLTExNTcsMjkgKzEzMTYs
NDcgQEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAq
ZA0KICAgICB4biA9IFZOT0RFX1RPX1hOT0RFKGRpcik7DQogDQogICAgIHsN
Ci0Jc3RydWN0IG5ucGZzX21lc3NhZ2Vfc3ltbGluayBtc2c7DQorCXN0cnVj
dCBubnBmc19tZXNzYWdlX3N5bWxpbmsgKm1zZyA9IE5VTEw7DQogDQotCW1z
Zy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1NZTUxJTks7DQotCW1zZy5w
YXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCi0JaWYgKHN0cmxjcHkobXNn
Lm5hbWUsIG5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9O
QU1FKQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQotCWlmIChzdHJs
Y3B5KG1zZy5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy5jb250ZW50
cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpDQotCSAgICByZXR1
cm4gLUVOQU1FVE9PTE9ORzsNCi0JWEFfQ0xFQVIoJm1zZy5hdHRyKTsNCi0J
WEFfU0VUX01PREUoJm1zZy5hdHRyLCAwNzc3KTsNCi0JWEFfU0VUX1RZUEUo
Jm1zZy5hdHRyLCBOTlBGU19GSUxFX0xOSyk7DQotCVhBX1NFVF9HSUQoJm1z
Zy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorCW1zZyA9IGttYWxsb2Moc2l6
ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiANCi0JbXNnLmNyZWQudWlkID0g
Y3VycmVudC0+dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFn
KCk7DQotCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNn
LmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KKwlpZiAobXNnID09IE5VTEwpDQor
CSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1zZy0+aGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ctPnBhcmVudF9oYW5kbGUgPSB4
bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweShtc2ctPm5hbWUsIG5hbWUsIHNp
emVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkgew0KKwkgIGtm
cmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQorCX0NCisJ
aWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1z
Zy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5UKSB7
DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1cm4gLUVOQU1FVE9PTE9ORzsN
CisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRyKTsNCisJWEFfU0VUX01PREUo
Jm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NFVF9UWVBFKCZtc2ctPmF0dHIs
IE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJWEFfU0VUX0dJRCgmbXNnLT5h
dHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAgICAgIFhBX1NF
VF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYN
CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj
ZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7
DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7
DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLT5o
ZWFkZXIsIHNpemVvZigqbXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KLQkg
ICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKCZtc2cpOw0KKwkg
ICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKG1zZyk7DQogDQog
CS8qIFhYWCBzaG91bGQgdGhpcyByZWFsbHkgYmUgaGVyZSAqLw0KIAlpZiAo
REVOVFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+eGRfZmxhZ3MgPT0gMCkgew0K
IAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBubnBmc19z
eW1saW5rOiBkZW50cnkgbm90IHZhbGlkXG4iKTsNCiAJfQ0KKwlrZnJlZSht
c2cpOw0KICAgICB9DQogDQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xMTg4
LDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1
Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4NCiAgKi8N
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
MSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxl
ICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQor
I2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1Y3QgZmls
ZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNlbmRpZg0K
IHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0LCBiZWdp
bl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K
KyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2RlOw0KICAg
ICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9k
ZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjE3LDYgKzE0MDMsNyBAQCBu
bnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogDQog
ICAgIGNhY2hlX2lub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxMSwwKQ0KICAgICB3aGlsZSAoZmlsZS0+Zl9wb3MgPCBpX3NpemVfcmVh
ZChjYWNoZV9pbm9kZSkpIHsNCiAJTk5QRlNERUIoWERFQlJFQURESVIsDQog
CSAgICAgICAoIm5ucGZzX3JlYWRkaXIgZmlsZS0+Zl9wb3M6ICVkIGlfc2l6
ZTogJWRcbiIsDQpAQCAtMTIyOSw2ICsxNDE2LDIwIEBAIG5ucGZzX3JlYWRk
aXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJbWFwcGluZyA9IGJh
Y2tmaWxlLT5mX21hcHBpbmc7DQogCWlucGFnZSA9IGZpbGUtPmZfcG9zICYg
KFBBR0VfQ0FDSEVfU0laRS0xKTsNCiAJcGFnZV9udW0gPSBmaWxlLT5mX3Bv
cyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKyNlbHNlDQorICAgIHdoaWxlIChj
dHgtPnBvcyA8IGlfc2l6ZV9yZWFkKGNhY2hlX2lub2RlKSkgew0KKwlOTlBG
U0RFQihYREVCUkVBRERJUiwNCisJICAgICAgICgibm5wZnNfcmVhZGRpciBm
aWxlLT5mX3BvczogJWQgaV9zaXplOiAlZFxuIiwNCisJCShpbnQpIGN0eC0+
cG9zLCAoaW50KSBjYWNoZV9pbm9kZS0+aV9zaXplKSk7DQorCWJlZ2luX29m
ZnNldCA9IGN0eC0+cG9zICZ+IChOTlBGU19ESVJFTlRfQkxPQ0tTSVpFIC0g
MSk7DQorCW9mZnNldCA9IGN0eC0+cG9zICYgKE5OUEZTX0RJUkVOVF9CTE9D
S1NJWkUgLSAxKTsNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQ7DQorCU5O
UEZTREVCKFhERUJSRUFERElSLCAoIm5ucGZzX3JlYWRkaXIgYmVnaW5fb2Zm
c2V0OiAlZCBvZmZzZXQ6ICVkXG4iLA0KKwkJCSAgICAgKGludCliZWdpbl9v
ZmZzZXQsIChpbnQpb2Zmc2V0KSk7DQorCW1hcHBpbmcgPSBiYWNrZmlsZS0+
Zl9tYXBwaW5nOw0KKwlpbnBhZ2UgPSBjdHgtPnBvcyAmIChQQUdFX0NBQ0hF
X1NJWkUtMSk7DQorCXBhZ2VfbnVtID0gY3R4LT5wb3MgPj4gUEFHRV9DQUNI
RV9TSElGVDsNCisjZW5kaWYNCiANCiAJTk5QRlNERUIoWERFQlJFQURESVIs
DQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgaW5wYWdlOiAlZCBwYWdlX251
bTogJWx1XG4iLA0KQEAgLTEyNjQsNiArMTQ2NSw3IEBAIG5ucGZzX3JlYWRk
aXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCSAgICAoaW50KSB4
ZGlyZW50LT5kX25hbWxlbiwNCiAJCSAgICAoaW50KSAob2Zmc2V0K2JlZ2lu
X29mZnNldCkpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxMSwwKQ0KIAkgICAgaWYgKHhkaXJlbnQtPmRfZmls
ZW5vICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRpciAoZGly
ZW50LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0xMjc1LDEy
ICsxNDc3LDI4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4i
LCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0NCisjZWxz
ZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJCSYmIChm
aWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAgICB4ZGly
ZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1sZW4sDQor
CQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAgRFRfVU5L
Tk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIsDQorCQkJ
ICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJv
cikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAgICBvZmZz
ZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAoeGRpcmVu
dC0+ZF9yZWNsZW4gPT0gMCkgew0KIAkJcHJpbnRrKEtFUk5fRU1FUkcgIk5O
UEZTIFBhbmljOiAiDQogCQkgICAgICAgImVtcHR5IGRpcmVudCBhdCAlbGxk
IGluIG5ucGZzX3JlYWRkaXIsIHBvcyAlZCBzaXplICVkXG4iLA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQog
CQkgICAgICAgKGxvbmcgbG9uZylvZmZzZXQsIChpbnQpZmlsZS0+Zl9wb3Ms
DQorI2Vsc2UNCisJCSAgICAgICAobG9uZyBsb25nKW9mZnNldCwgKGludClj
dHgtPnBvcywNCisjZW5kaWYNCiAJCSAgICAgICAoaW50KWNhY2hlX2lub2Rl
LT5pX3NpemUpOw0KIAkJTk5QRlNERUIoWERFQlZOT1BTLCAoImlub2RlOiAl
cCBhbGlhc2VzOiIsIGlub2RlKSk7DQogCQlubnBmc19wcmludF9hbGlhc2Vz
KGlub2RlKTsNCkBAIC0xMjk4LDcgKzE1MTYsMTEgQEAgbm5wZnNfcmVhZGRp
cihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAlpZiAob2Zmc2V0ID4g
Tk5QRlNfRElSRU5UX0JMT0NLU0laRSkNCiAJICAgIG9mZnNldCA9IE5OUEZT
X0RJUkVOVF9CTE9DS1NJWkU7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJZmlsZS0+Zl9wb3MgPSBi
ZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2Vsc2UNCisJY3R4LT5wb3MgPSBi
ZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2VuZGlmDQogDQogCWlmIChlcnJv
ciB8fCBvZmZzZXQgPCBOTlBGU19ESVJFTlRfQkxPQ0tTSVpFKQ0KIAkgICAg
YnJlYWs7DQpAQCAtMTMzMSw5ICsxNTUzLDE1IEBAIG5ucGZzX3JlYWRsaW5r
IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGMNCiAgKiBXZSBkb24ndCBob2xk
IGlfbXV0ZXguDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDQsMiwwKQ0KIHN0YXRpYyB2b2lkICoNCiBubnBm
c19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkJIHN0
cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGNvbnN0IGNo
YXIgKg0KK25ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50
cnksDQorCQkgdm9pZCAqKnBhZ2UpDQorI2VuZGlmDQogew0KICAgICBpbnQg
ZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZ
X1RPX0lOT0RFKGRlbnRyeSk7DQpAQCAtMTM0NCw3ICsxNTcyLDExIEBAIG5u
cGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAg
aWYgKGVycm9yKQ0KICAgICAgICByZXR1cm4gRVJSX1BUUihlcnJvcik7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQs
MiwwKQ0KICAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19saWdodChkZW50
cnksIG5kKTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlu
a19saWdodChkZW50cnksIHBhZ2UpOw0KKyNlbmRpZg0KIH0NCiANCiAvKg0K
QEAgLTEzOTgsNyArMTYzMCwxMSBAQCBubnBmc19zZXRhdHRyIChzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnksIHN0DQogICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV9wdXRhdHRyIG1zZzsNCiANCiAgICAgICAgIG1zZy5oZWFkZXIub3Bj
b2RlID0gTk5QRlNfTVNHX1BVVEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQu
dWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFn
ID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAgICAgbXNnLmhhbmRsZSA9IHhu
LT5oYW5kbGU7DQogICAgICAgICBubnBmc19pYXR0cjJhdHRyKHhuLCBhdHRy
LCAmbXNnLmF0dHIpOw0KQEAgLTE0MjIsNiArMTY1OCw4IEBAIG5ucGZzX3Jl
bGVhc2VfZmlsZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuOw0KICAgICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAg
ICAodm9pZClubnBmc3A7DQorDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywg
KCJubnBmc19yZWxlYXNlX2ZpbGVcbiIpKTsNCiANCiAgICAgZXJyb3IgPSBu
bnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQpAQCAtMTQ1MCwxOCArMTY4OCwx
OCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUs
DQogICoNCiAgKi8NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF
Uk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZmx1
c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyX3QgaWQpDQotI2Vsc2UN
Ci1zdGF0aWMgaW50DQotbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUp
DQotI2VuZGlmDQogew0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5w
ZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmlsZSAmJiBmaWxl
LT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSkNCiAJcmV0
dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9w
YXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKQ0K
KwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZfcGF0aC5kZW50
cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBlbHNlDQogCXJl
dHVybiAwOw0KIH0NCkBAIC0xNDcwLDEwICsxNzA4LDI0IEBAIG5ucGZzX2Zs
dXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KICAqIFJldHVybiAxIGlmIGBkZW50
cnknIGlzIHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4NCiAgKi8NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQorc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQog
c3RhdGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5
ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSANCitubnBmc19kX3Jl
dmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQg
ZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisgICAgaWYg
KGZsYWdzICYgTE9PS1VQX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNISUxE
Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMzgpDQorICAgIGlmIChuZCAmJiBuZC0+ZmxhZ3MgJiBMT09LVVBf
UkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VuZGlmDQorDQog
ICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19kX3JldmFsaWRhdGUg
JXAgXCIlLipzXCIgKGlub2RlICVwKVxuIiwNCiAJCSAgICAgICBkZW50cnks
DQogCQkgICAgICAgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQpAQCAtMTUx
OSw5ICsxNzcxLDE1IEBAIG5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogc3Rh
dGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUo
Y29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZg0KIHsNCiAg
ICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuOw0KQEAgLTE1NDYsMTEgKzE4MDQsMTYgQEAgbm5wZnNfZF9kZWxl
dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIH0NCiANCiBzdGF0aWMgc3Np
emVfdA0KLW5ucGZzX3NlbmRmaWxlKHN0cnVjdCBmaWxlICpmaWxlLCBsb2Zm
X3QgKnBwb3MsIHNpemVfdCBjb3VudCwNCi0JICAgICAgIHJlYWRfYWN0b3Jf
dCBhY3Rvciwgdm9pZCAqdGFyZ2V0KQ0KK25ucGZzX3NwbGljZV9yZWFkKHN0
cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgKnBwb3MsDQorCQkgIHN0cnVjdCBw
aXBlX2lub2RlX2luZm8gKnBpcGUsIHNpemVfdCBjb3VudCwNCisJCSAgdW5z
aWduZWQgaW50IGZsYWdzKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnkt
PmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAg
IHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2Rl
KTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0KQEAgLTE1NjEsOCAr
MTgyNCw3IEBAIG5ucGZzX3NlbmRmaWxlKHN0cnVjdCBmaWxlICpmaWxlLCBs
b2ZmX3QNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRmaWxl
OiBkYXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVy
cm9yOw0KICAgICB9DQotDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3Nl
bmRmaWxlKGZpbGUsIHBwb3MsIGNvdW50LCBhY3RvciwgdGFyZ2V0KTsNCisg
ICAgZXJyb3IgPSBmaWxlLT5mX29wLT5zcGxpY2VfcmVhZChmaWxlLCBwcG9z
LCBwaXBlLCBjb3VudCwgZmxhZ3MpOw0KIA0KICAgICBOTlBGU0RFQihYREVC
Vk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9y
KSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xNjM5LDQwICsxOTAxLDQx
IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCAN
CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBiYWNrZmlsZS0+
Zl9tYXBwaW5nOw0KIAl1bnNpZ25lZCBsZW4gPSBQQUdFX0NBQ0hFX1NJWkU7
DQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCisJdm9pZCAqZnNkYXRhOw0K
IAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCiAJaW50IGVycm9yOw0KIAkN
Ci0JZG8gew0KLQkJYmFja3BhZ2UgPSBncmFiX2NhY2hlX3BhZ2UobWFwcGlu
Zywgbm5wZnNfZ2V0X2JhY2tpbmRleChwYWdlKSk7DQotCQlpZiAoIWJhY2tw
YWdlKSB7DQotCQkJcHJpbnRrKCJubnBmc193cml0ZV9iYWNrcGFnZTogbm8g
cGFnZVxuIik7DQotCQkJcmV0dXJuIC1FSU87DQotCQl9DQorCSh2b2lkKW9m
ZnNldDsNCiANCi0JCWVycm9yID0gbWFwcGluZy0+YV9vcHMtPnByZXBhcmVf
d3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJCQkJCSAgICAgIDAsIGxl
bik7DQorCWRvIHsNCisJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2JlZ2lu
KGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJCQkgICAgICBBT1Bf
RkxBR19VTklOVEVSUlVQVElCTEUsDQorCQkJCQkgICAgICAmYmFja3BhZ2Us
ICZmc2RhdGEpOw0KIAkJaWYgKCFlcnJvcikgew0KIAkJCWNvcHlfaGlnaHBh
Z2UoYmFja3BhZ2UsIHBhZ2UpOw0KIAkJCWZsdXNoX2RjYWNoZV9wYWdlKGJh
Y2twYWdlKTsNCi0JCQllcnJvciA9IG1hcHBpbmctPmFfb3BzLT5jb21taXRf
d3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJCQkJCQkgICAgIDAsIGxl
bik7DQorCQkJZXJyb3IgPSBwYWdlY2FjaGVfd3JpdGVfZW5kKGJhY2tmaWxl
LCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJCQlsZW4sIGJhY2twYWdlLCBmc2Rh
dGEpOw0KKwkJCWlmIChlcnJvciA+IDApDQorCQkJCWVycm9yID0gMDsNCiAJ
CX0NCiAJCWlmIChlcnJvciA9PSBBT1BfVFJVTkNBVEVEX1BBR0UpIHsNCi0J
CQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0KIAkJCWNvbnRpbnVl
Ow0KIAkJfQ0KIAl9IHdoaWxlICgwKTsNCiANCiAJb2Zmc2V0ID0gcGFnZV9v
ZmZzZXQoYmFja3BhZ2UpOw0KLQl1bmxvY2tfcGFnZShiYWNrcGFnZSk7DQot
CXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNrcGFnZSk7DQogDQogCWlmIChlcnJv
cikNCiAJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6IEVJT1xuIik7
DQogI2lmZGVmIE5OUEZTX1NBRkVfU1lOQw0KIAllbHNlDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMikNCiAJCSh2
b2lkKXN5bmNfcGFnZV9yYW5nZShtYXBwaW5nLT5ob3N0LCBtYXBwaW5nLCBv
ZmZzZXQsIGxlbik7DQorI2Vsc2UNCisJCSh2b2lkKWZpbGVtYXBfd3JpdGVf
YW5kX3dhaXRfcmFuZ2UobWFwcGluZywgb2Zmc2V0LCBvZmZzZXQgKyBsZW4g
LSAxKTsNCisjZW5kaWYNCiAjZW5kaWYNCiAJDQogCXJldHVybiBlcnJvcjsN
CkBAIC0xNjg5LDEzICsxOTUyLDkgQEAgbm5wZnNfcmVhZF9iYWNrcGFnZShz
dHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7
DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KLSNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKwkodm9pZClv
ZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9tYXBwaW5nX3BhZ2UobWFw
cGluZywgbiwgYmFja2ZpbGUpOw0KLSNlbHNlDQotCWJhY2twYWdlID0gcmVh
ZF9jYWNoZV9wYWdlKG1hcHBpbmcsIG4sDQotCQkJCSAgIChmaWxsZXJfdCAq
KW1hcHBpbmctPmFfb3BzLT5yZWFkcGFnZSwNCi0JCQkJICAgYmFja2ZpbGUp
Ow0KLSNlbmRpZg0KIAlpZiAoIUlTX0VSUihiYWNrcGFnZSkpIHsNCiAJCXdh
aXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0KIA0KQEAgLTE4NDIsMTEg
KzIxMDEsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAq
ZmlsZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2Rl
KSkgew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVycm9yID0gdm10cnVuY2F0
ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJCWVycm9yID0gaW5vZGVf
bmV3c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQorCQlpZighZXJyb3IpDQor
CQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2VuZGlm
DQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5ucGZzX3ByZXBhcmVf
d3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0KIAkJCSAgICAgICBt
b2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBYWFggbm90IGNvcnJl
Y3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3QgY29ycmVjdCAqLw0K
IAkJfQ0KIAl9DQogDQpAQCAtMTg3Miw0NCArMjEzNywxMTggQEAgbm5wZnNf
cHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4g
cmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiBzdGF0aWMgaW50DQotbm5wZnNfY29tbWl0
X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwg
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pDQorbm5wZnNfd3JpdGVfYmVn
aW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt
YXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxlbiwgdW5zaWduZWQg
ZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpDQog
ew0KLSAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFnZS0+bWFwcGluZy0+
aG9zdDsNCi0gICAgbG9mZl90IHBvcyA9ICgobG9mZl90KXBhZ2UtPmluZGV4
IDw8IFBBR0VfQ0FDSEVfU0hJRlQpICsgdG87DQorCXN0cnVjdCBwYWdlICpw
YWdlOw0KKwlwZ29mZl90IGluZGV4Ow0KKwl1bnNpZ25lZCBmcm9tOw0KKwlp
bnQgcmV0ID0gMDsNCiANCi0gICAgaWYgKHBvcyA+IGlub2RlLT5pX3NpemUp
IHsNCi0JaV9zaXplX3dyaXRlKGlub2RlLCBwb3MpOw0KKwlpbmRleCA9IHBv
cyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKwlmcm9tID0gcG9zICYgKFBBR0Vf
Q0FDSEVfU0laRSAtIDEpOw0KIA0KLQlzcGluX2xvY2soJmlub2RlLT5pX2xv
Y2spOw0KLQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsgSV9CTE9DS1NfVU5J
VCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQotCXNwaW5fdW5sb2NrKCZpbm9k
ZS0+aV9sb2NrKTsNCi0gICAgfQ0KLSAgICBzZXRfcGFnZV9kaXJ0eShwYWdl
KTsNCisJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0ZV9iZWdpbihtYXBw
aW5nLCBpbmRleCwgZmxhZ3MpOw0KKwlpZiAoIXBhZ2UpDQorCQlyZXR1cm4g
LUVOT01FTTsNCisNCisJKnBhZ2VwID0gcGFnZTsNCisNCisJcmV0ID0gbm5w
ZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsgbGVu
KTsNCisJaWYgKHJldCkgew0KKwkJdW5sb2NrX3BhZ2UocGFnZSk7DQorCQlw
YWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQorCX0NCisNCisJcmV0dXJuIHJl
dDsNCit9DQorI2VuZGlmDQogDQorLyogWFhYIHdlIHVzZSB0aGUgc3lzdGVt
IHByb3ZpZGVkIHNpbXBsZV9jb21taXRfd3JpdGUgaW5zdGVhZCBzbyB0aGlz
IGZ1bmN0aW9uIGlzIHVudXNlZCBmb3Igbm93ICovDQogI2lmIDANCi0gICAg
ew0KLQljaGFyICphZGRyOw0KLQlrbWFwKHBhZ2UpOw0KLQlhZGRyID0gcGFn
ZV9hZGRyZXNzKHBhZ2UpOw0KLQlOTlBGU0RFQihYREVCVk5PUFMsICgibm5w
ZnNfY29tbWl0X3dyaXRlKCVwKTogJXgleCV4JXhcbiIsDQorc3RhdGljIGlu
dA0KK25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry
dWN0IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25l
ZCB0bykNCit7DQorCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBw
aW5nLT5ob3N0Ow0KKwlsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5k
ZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCisNCisJaWYgKCFQYWdl
VXB0b2RhdGUocGFnZSkpDQorCQlTZXRQYWdlVXB0b2RhdGUocGFnZSk7DQor
DQorCWlmIChwb3MgPiBpbm9kZS0+aV9zaXplKSB7DQorCQlpX3NpemVfd3Jp
dGUoaW5vZGUsIHBvcyk7DQorDQorCQlzcGluX2xvY2soJmlub2RlLT5pX2xv
Y2spOw0KKwkJaW5vZGUtPmlfYmxvY2tzID0gKHBvcyArIElfQkxPQ0tTX1VO
SVQgLSAxKSA+PiBJX0JMT0NLU19CSVRTOw0KKwkJc3Bpbl91bmxvY2soJmlu
b2RlLT5pX2xvY2spOw0KKwl9DQorCXNldF9wYWdlX2RpcnR5KHBhZ2UpOw0K
Kw0KKyNpZiAwDQorCXsNCisJICAgIGNoYXIgKmFkZHI7DQorCSAgICBrbWFw
KHBhZ2UpOw0KKwkgICAgYWRkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsNCisJ
ICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19jb21taXRfd3JpdGUo
JXApOiAleCV4JXgleFxuIiwNCiAJCQkgICAgIGZpbGUtPmZfbWFwcGluZy0+
aG9zdCwgDQogCQkJICAgICBhZGRyWzBdLCBhZGRyWzFdLCBhZGRyWzJdLCBh
ZGRyWzNdKSk7DQotCWt1bm1hcChwYWdlKTsNCi0gICAgfQ0KKwkgICAga3Vu
bWFwKHBhZ2UpOw0KKwl9DQogI2VuZGlmDQotICAgIA0KLSAgICByZXR1cm4g
MDsNCisgDQorCXJldHVybiAwOw0KIH0NCisjZW5kaWYNCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCi1j
b25zdA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KKy8qIFhYWCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRl
ZCBzaW1wbGVfd3JpdGVfZW5kIGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBp
cyB1bnVzZWQgZm9yIG5vdyAqLw0KKyNpZiAwDQorc3RhdGljIGludA0KK25u
cGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJl
c3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQorCQl1bnNpZ25lZCBs
ZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQg
KmZzZGF0YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBwb3MgJiAoUEFHRV9D
QUNIRV9TSVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQg
b2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0KKwlpZiAo
Y29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0
b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQgKmthZGRy
ID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQorCQltZW1zZXQoa2Fk
ZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0KKwkJZmx1
c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJa3VubWFwX2F0b21pYyhr
YWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGth
ZGRyKTsNCiAjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19jb21taXRfd3JpdGUo
ZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQorDQorCXVubG9j
a19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQor
DQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKyNlbmRpZg0KKyNlbmRpZg0KKw0K
K2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBm
c19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwNCiAJ
LndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFy
ZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQotCS5jb21taXRfd3Jp
dGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorCS5jb21taXRfd3JpdGUgPSBz
aW1wbGVfY29tbWl0X3dyaXRlLA0KKyNlbHNlDQorCS53cml0ZV9iZWdpbiA9
IG5ucGZzX3dyaXRlX2JlZ2luLA0KKwkud3JpdGVfZW5kID0gc2ltcGxlX3dy
aXRlX2VuZCwNCisjZW5kaWYNCiB9Ow0KIA0KIC8qDQpAQCAtMTkxNywyMSAr
MjI1NiwzMCBAQCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIG5u
cGZzX2FvDQogICovDQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBm
c19maWxlX29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgLmFpb19yZWFkCT0g
bm5wZnNfYWlvX3JlYWQsDQogICAgIC5haW9fd3JpdGUJPSBubnBmc19haW9f
d3JpdGUsDQorI2Vsc2UNCisgICAgLnJlYWRfaXRlcgk9IG5ucGZzX3JlYWRf
aXRlciwNCisgICAgLndyaXRlX2l0ZXIJPSBubnBmc193cml0ZV9pdGVyLA0K
KyNlbmRpZg0KICAgICAubW1hcAk9IG5ucGZzX2ZpbGVfbW1hcCwNCiAgICAg
Lm9wZW4JPSBubnBmc19vcGVuLA0KICAgICAuZmx1c2gJPSBubnBmc19mbHVz
aCwNCiAgICAgLnJlbGVhc2UJPSBubnBmc19yZWxlYXNlX2ZpbGUsDQogICAg
IC5mc3luYwk9IG5ucGZzX2ZzeW5jLA0KLSAgICAuc2VuZGZpbGUJPSBubnBm
c19zZW5kZmlsZSwNCisgICAgLnNwbGljZV9yZWFkID0gbm5wZnNfc3BsaWNl
X3JlYWQsDQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZz
X2RlYWRfb3BlcmF0aW9ucyA9IHsNCiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29w
ZXJhdGlvbnMgbm5wZnNfZGlyX29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAgICAg
LnJlYWRkaXIJPSBubnBmc19yZWFkZGlyLA0KKyNlbHNlDQorICAgIC5pdGVy
YXRlICAgID0gbm5wZnNfaXRlcmF0ZSwNCisjZW5kaWYNCiAgICAgLmZsdXNo
CT0gbm5wZnNfZmx1c2gsDQogfTsNCiANCmRpZmYgLXVwck4gLVhub2RpZmYg
YXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMgYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6
NDEuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4
L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEzIDIwOjE0OjAyLjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3QgZmlsZV9v
cGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBuYW1lOiAgICAgICAg
ICAgIm5ucGZzIiwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM5KQ0KICAgICAgICBnZXRfc2I6ICAgICAgICAgbm5w
ZnNfZ2V0X3NiLA0KKyNlbHNlDQorICAgICAgIG1vdW50OiAgICAgICAgICBu
bnBmc19tb3VudCwNCisjZW5kaWYNCiAgICAgICAga2lsbF9zYjogICAgICAg
IGtpbGxfbGl0dGVyX3N1cGVyLA0KICAgICAgICBvd25lcjogICAgICAgICAg
VEhJU19NT0RVTEUsDQogfTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0w
LjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jCTIwMDctMDEtMDkgMTc6
MzM6MzEuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xp
bnV4L25ucGZzX21lc3NhZ2UuYwkyMDE2LTAxLTI0IDE4OjUyOjI4LjAwMDAw
MDAwMCArMDEwMA0KQEAgLTQ1LDcgKzQ1LDcgQEANCiAjaW5jbHVkZSA8bGlu
dXgvbW91bnQuaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBu
bnBmc19tZXNzYWdlLmMsdiAxLjE0My4yLjEgMjAwNy8wMS8wOSAxNjozMzoz
MSB0b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19tZXNzYWdlLmMs
diAxLjE0NSAyMDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNl
bmRpZg0KIA0KIHN0YXRpYyB2b2lkDQpAQCAtNTUsOSArNTUsMTUgQEAgc3Rh
dGljIHZvaWQNCiBubnBmc19kX3JlbW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpDQogew0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX2RfcmVt
b3ZlICVwXG4iLCBkZW50cnkpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRj
YWNoZV9sb2NrKTsNCiAgICAgZGdldF9sb2NrZWQoZGVudHJ5KTsNCiAgICAg
c3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGlu
X2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhkZW50
cnkpOw0KKyAgICBzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyNl
bmRpZg0KICAgICBkX2Ryb3AoZGVudHJ5KTsNCiAgICAgZHB1dChkZW50cnkp
Ow0KIH0NCkBAIC0xMjEsNyArMTI3LDExIEBAIG5ucGZzX21lc3NhZ2VfaW5z
dGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgc3RydWN0IGlub2RlICpk
aSwgKmlub2RlOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQgPSBOVUxM
Ow0KICAgICBzdHJ1Y3QgcXN0ciBzcXN0cjsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBs
aXN0X2hlYWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqYWxpYXM7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVC
TVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGVcbiIpKTsNCiAgICAg
DQpAQCAtMTc2LDEyICsxODYsMjYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxs
bm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICAgKg0KICAgICAgKi8NCiAgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KICAgICBhbGlhcyA9IGRpLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3
aGlsZSAoYWxpYXMgIT0gJmRpLT5pX2RlbnRyeSkgew0KIAlwYXJlbnQgPSBs
aXN0X2VudHJ5KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCi0J
c3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQotCWRnZXRfbG9ja2VkKHBhcmVu
dCk7DQotCXNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg
IGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgYWxpYXMsICZkaS0+aV9k
ZW50cnksIGRfYWxpYXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNo
X2VudHJ5KHBhcmVudCwgJmRpLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNl
bHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgJmRpLT5p
X2RlbnRyeSwgZF91LmRfYWxpYXMpIHsNCisjZW5kaWYNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBz
cGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisgICAgZGdldF9sb2NrZWQocGFy
ZW50KTsNCisgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz
ZQ0KKyAgICBzcGluX2xvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisgICAgZGdl
dF9kbG9jayhwYXJlbnQpOw0KKyAgICBzcGluX3VubG9jaygmcGFyZW50LT5k
X2xvY2spOw0KKyNlbmRpZg0KIAlkZW50cnkgPSBkX2xvb2t1cChwYXJlbnQs
ICZzcXN0cik7DQogCU5OUEZTREVCKFhERUJNU0csDQogCQkgKCJubnBmc19t
ZXNzYWdlX2luc3RhbGxub2RlOiBhbGlhcyAlcCwgbG9va3VwICVwXG4iLA0K
QEAgLTIzMyw3ICsyNTcsOSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2Rl
KHN0cnVjdCBubnBmcyAqDQogCQ0KIAlkcHV0KGRlbnRyeSk7DQogCWRlbnRy
eSA9IE5VTEw7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNlbmRp
Zg0KIAlkcHV0KHBhcmVudCk7DQogICAgIH0NCiAgICAgTk5QRlNERUIoWERF
Qk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlOiBkb25lIGluc3Rh
bGxpbmdcbiIpKTsNCkBAIC0yNjgsNyArMjk0LDEzIEBAIG5ucGZzX21lc3Nh
Z2VfaW5zdGFsbGF0dHIoc3RydWN0IG5ucGZzICoNCiAgICAgfQ0KIA0KICAg
ICBpbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKHQpOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgZGVudHJ5
ID0gbGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkubmV4dCwgc3RydWN0IGRl
bnRyeSwgZF9hbGlhcyk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBkZW50cnkgPSBobGlzdF9l
bnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRf
YWxpYXMpOw0KKyNlbHNlDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlu
b2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxp
YXMpOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywg
KCJubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyIG5hbWU6JXNcbiIsDQogCQkg
ICAgICAgZGVudHJ5LT5kX25hbWUubmFtZSkpOw0KQEAgLTM5NiwxNyArNDI4
LDM1IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbGRhdGEoc3RydWN0IG5ucGZz
ICoNCiBzdGF0aWMgdm9pZA0KIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0
IGlub2RlICppbm9kZSwgaW50IHBhcmVudCkNCiB7DQorICAgIHN0cnVjdCBk
ZW50cnkgKmRlbnRyeTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFs
aWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQor
I2VuZGlmDQogDQogIGFnYWluOg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNh
Y2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygmaW5vZGUtPmlf
bG9jayk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlub2RlLT5pX2Rl
bnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2Rl
bnRyeSkgew0KLQlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg
IGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgYWxpYXMsICZpbm9kZS0+
aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9l
YWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykg
ew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwg
Jmlub2RlLT5pX2RlbnRyeSwgZF91LmRfYWxpYXMpIHsNCisjZW5kaWYNCiAJ
c3RydWN0IGxpc3RfaGVhZCAqc3ViZGlyczsNCiAJc3RydWN0IG5ucGZzX2Rl
bnRyeV9kYXRhICp4ZDsNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlkZW50cnkgPSBsaXN0X2VudHJ5
KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZW5kaWYNCiAJ
aWYgKGRlbnRyeSA9PSBOVUxMKSB7DQogCSAgICBwcmludGsoS0VSTl9FTUVS
RyAiTk5QRlMgUGFuaWM6IGRlbnRyeSBpbiBhbGlhcyBsaXN0IGlzIG51bGxc
biIpOw0KIAkgICAgYnJlYWs7DQpAQCAtNDIyLDcgKzQ3MiwxMSBAQCBjbGVh
cl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCXN1YmRp
cnMgPSBkZW50cnktPmRfc3ViZGlycy5uZXh0Ow0KIAl3aGlsZSAoc3ViZGly
cyAhPSAmZGVudHJ5LT5kX3N1YmRpcnMpIHsNCiAJICAgIHN0cnVjdCBsaXN0
X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAgIHN0cnVjdCBkZW50
cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRf
dS5kX2NoaWxkKTsNCisjZWxzZQ0KKwkgICAgc3RydWN0IGRlbnRyeSAqY2hp
bGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7
DQorI2VuZGlmDQogCSAgICBzdWJkaXJzID0gdG1wLT5uZXh0Ow0KIAkgICAg
Tk5QRlNERUIoWERFQk1TRywgKCJjbGVhcl9hbGxfY2hpbGRyZW4gY2hpbGQ6
ICUuKnMgaW5vZGU6ICVwLyVwICINCiAJCQkgICAgICAgImRjb3VudDogJWQg
YWxpYXNlczpcbiIsDQpAQCAtNDQyLDE0ICs0OTYsMjQgQEAgY2xlYXJfYWxs
X2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIA0KIAkgICAgLyog
VGhyb3cgaW1tZWRpYXRlbHkgKi8NCiAJICAgIGlmIChubnBmc19kY291bnQo
Y2hpbGQpID09IDApIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM4KQ0KIAkgICAgICAgIHNwaW5fdW5sb2NrKCZk
Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisJICAgICAgICBzcGluX3VubG9jaygm
aW5vZGUtPmlfbG9jayk7DQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShj
aGlsZCk7DQogCQlnb3RvIGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlh
bGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAg
ICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBz
cGluX3VubG9jaygmaW5vZGUtPmlfbG9jayk7DQorI2VuZGlmDQogfQ0KIA0K
IHN0YXRpYyB2b2lkDQpAQCAtNjA1LDEyICs2NjksMTAgQEAgZ2NfYmxvY2so
c3RydWN0IG5ucGZzICpubnBmc3AsDQogICAgIH0NCiANCiAgICAgaWYgKCFu
bnBmc19ibG9ja19oYXZlX3AoeG4sIG9mZnNldCkpIHsNCi0jaWYgMCAgIC8q
IGhhcHBlbnMgd2hlbiBkYWVtb24gc2VuZHMgc2V2ZXJhbCBtZXNzYWdlcyBm
b3Igc2FtZSBibG9jayAqLw0KIAlwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMv
Z2NfYmxvY2s6ICINCiAJICAgICAgICJFTk9FTlQgKCVkLCVkLCVkLCVkKSAw
eCVsbHhcbiIsIA0KIAkgICAgICAgeG4tPmhhbmRsZS5hLCB4bi0+aGFuZGxl
LmIsIHhuLT5oYW5kbGUuYywgeG4tPmhhbmRsZS5kLCANCiAJICAgICAgICh1
bnNpZ25lZCBsb25nIGxvbmcpb2Zmc2V0KTsNCi0jZW5kaWYNCiAJcmV0dXJu
IC1FTk9FTlQ7DQogICAgIH0NCiANCkBAIC03MjEsMTIgKzc4MywyMiBAQCBu
bnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogDQog
ICAgIC8qIHNhbml0eSBjaGVjayBiZWZvcmUgd2UgbG9vayBhdCBpdCAqLw0K
ICAgICBpZiAoc2l6ZSA9PSBzaXplb2YoKm1lc3NhZ2UpICYmIG1lc3NhZ2Ut
PnZlcnNpb24gPT0gTk5QRlNfVkVSU0lPTikgew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBu
YW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisj
ZW5kaWYNCiAJaW50IGVycm9yOw0KIA0KIAl1aW50NjRfdCBibG9ja3NpemUg
PSBtZXNzYWdlLT5ibG9ja3NpemU7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRo
X2xvb2t1cCgiLiIsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9IGtlcm5f
cGF0aCgiLiIsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtl
cm5fcGF0aCgiLiIsIDAsICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9y
KSB7DQogCSAgICAvKg0KIAkgICAgICogQmFkIGNhY2hlIHJvb3QsIGp1c3Qg
cmV0dXJuLg0KQEAgLTczNywxMiArODA5LDIzIEBAIG5ucGZzX21lc3NhZ2Vf
dmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiAJCSAgICJubnBmc19tZXNz
YWdlX3ZlcnNpb24gZmFpbGVkIHBhdGhfbG9va3VwLCAiDQogCQkgICAiZXJy
bm86ICVkXG4iLCBlcnJvcik7DQogCX0gZWxzZSB7DQotCSAgICBubnBmc3At
PmNhY2hlcm9vdCA9IG1udGdldChuZC5tbnQpOw0KLQkgICAgbm5wZnNwLT5j
YWNoZWRpciA9IGRnZXQobmQuZGVudHJ5KTsNCi0JICAgIHBhdGhfcmVsZWFz
ZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdl
dChuZC5wYXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdl
dChuZC5wYXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7
DQorI2Vsc2UNCisJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KHBh
dGgubW50KTsNCisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KHBhdGgu
ZGVudHJ5KTsNCisJICAgIHBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiAJ
ICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMjkpDQogCSAgICBubnBmc3AtPnVpZCA9IGN1cnJlbnQtPmZzdWlk
Ow0KIAkgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50LT5mc2dpZDsNCisjZWxz
ZQ0KKyAgICAgICAgICAgIG5ucGZzcC0+dWlkID0gY3VycmVudF9mc3VpZCgp
Ow0KKyAgICAgICAgICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudF9mc2dpZCgp
Ow0KKyNlbmRpZg0KIA0KIAkgICAgLyogWFhYIHdlIHNob3VsZCB2YWxpZGF0
ZSB0aGVzZSB2YWx1ZXMgKi8NCiAJICAgIG5ucGZzX2Jsb2Nrc2l6ZSA9IGJs
b2Nrc2l6ZTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9u
bnBmcy9saW51eC9ubnBmc19ub2RlLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4
L25ucGZzX25vZGUuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgv
bm5wZnNfbm9kZS5jCTIwMDctMDEtMDMgMTQ6NTI6MDIuMDAwMDAwMDAwICsw
MTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwky
MDE2LTAxLTE0IDE2OjUxOjExLjAwMDAwMDAwMCArMDEwMA0KQEAgLTEzMiw3
ICsxMzIsMTIgQEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCB1aW50Ng0KIAlwcmludGsoIm5ucGZzX3NldHNpemU6IHRydW5jYXRpbmcg
QDB4JWxsdVxuIiwNCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6
ZSk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsOCwwKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsg
LyogWFhYIHJldHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXpl
X29rKGlub2RlLCBzaXplKSkNCisJICAgIHRydW5jYXRlX3NldHNpemUoaW5v
ZGUsIHNpemUpOw0KKyNlbmRpZg0KIAlubnBmc19ibG9ja190cnVuY2F0ZSh4
biwgc2l6ZSk7DQogICAgIH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBu
bnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogCXN0
cnVjdCB0aW1lc3BlYyBub3RpbWUgPSB7MH07DQogDQogCWlub2RlLT5pX21v
ZGUgICA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTQsMCkNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5v
ZGUtPmlfZ2lkICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAg
PSBLVUlEVF9JTklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAgPSBLR0lEVF9J
TklUKDApOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gMTsN
CisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlp
bm9kZS0+aV9hdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210aW1lICA9
IG5vdGltZTsNCiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAgLTE2
OSw3ICsxODMsMTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qg
bm5wZnNfYXR0cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlp
bm9kZS0+aV9naWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChYQV9W
QUxJRF9OTElOSyhhdHRyKSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5rICA9IGF0
dHItPnhhX25saW5rOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgYXR0
ci0+eGFfbmxpbmspOw0KKyNlbmRpZg0KICAgICANCiAgICAgaWYgKFhBX1ZB
TElEX1NJWkUoYXR0cikpIHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0
ci0+eGFfc2l6ZSk7DQpAQCAtNTEwLDEyICs1MjgsMjQgQEAgbm5wZnNfaGFz
X3BhZyhjb25zdCBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0KIG5ucGZz
X25vZGVfdXNlcnMoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAg
ICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7DQorI2Vsc2UNCisgICAgc3RydWN0
IGhsaXN0X25vZGUgKnBvczsNCisjZW5kaWYNCiAgICAgaW50IHVzZXJzID0g
MDsNCiAgICAgDQogICAgIC8qIFhYWCB0aGlzIHNob3VsZCBwcm9iYWJseSBi
ZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgbGlzdF9mb3JfZWFj
aChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAgICBobGlz
dF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZW5kaWYN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBv
cywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vsc2UNCisJc3RydWN0
IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVjdCBkZW50
cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKG5ucGZzX2Rjb3Vu
dChkZW50cnkpID4gMSkNCiAJICAgIHVzZXJzKys7DQogICAgIH0NCmRpZmYg
LXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm
c19zeXNjYWxscy5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNj
YWxscy5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19z
eXNjYWxscy5jCTIwMDctMDEtMDMgMTU6MjY6MjcuMDAwMDAwMDAwICswMTAw
DQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJ
MjAxNi0wMi0xNiAxNjo1ODoxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC00Miw3
ICs0Miw5IEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+
DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2NvbW1vbi5oPg0KICNpbmNsdWRl
IDxsaW51eC9maWxlLmg+DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAjaW5jbHVkZSA8bGludXgvc21wX2xv
Y2suaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvc21wLmg+DQogI2lu
Y2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4NCiANCkBAIC01MCw2ICs1MiwxMSBA
QA0KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPg0KICNlbmRpZg0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3
LDApDQorI3VuZGVmIFNZU0NBTExIQUNLDQorLyogdGhlIG1ldGhvZCB0byBy
ZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBvbiBrZXJuZWwgMy43
IGFuZCBsYXRlciwgc2Ugbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jICovDQor
I2VuZGlmDQorDQogI2lmIDANCiAjaWZkZWYgQ09ORklHX0NPTVBBVA0KICNp
bmNsdWRlIDxsaW51eC9pb2N0bDMyLmg+DQpAQCAtNjQsNyArNzEsNyBAQA0K
ICN1bmRlZiBORUVEX1ZJQ0VJT0NUTDMyDQogDQogI2lmZGVmIFJDU0lEDQot
UkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMuYyx2IDEuMTIyIDIwMDcvMDEv
MDMgMTQ6MjY6MjcgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNf
c3lzY2FsbHMuYyx2IDEuMTI1IDIwMTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4
cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9l
bnRyeSAqbm5wZnNfcHJvY2ZzX2RpcjsNCkBAIC04MiwxMiArODksMjIgQEAg
dHlwZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEgew0KICAgICB1bnNpZ25lZCBs
b25nIHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0YTsNCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRp
YyBpbnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9k
ZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21k
LCB1bnNpZ25lZCBsb25nIGFyZyk7DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0K
K25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAg
IHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZW5k
aWYNCiANCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19w
cm9jZnNfZm9wcyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAgICAuaW9jdGwgPSBubnBmc19wcm9j
ZnNfaW9jdGwsDQorI2Vsc2UNCisgICAgLnVubG9ja2VkX2lvY3RsID0gbm5w
ZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbmRpZg0KIH07DQogDQogDQpAQCAtMTQ3
LDUzICsxNjQsNDggQEAgc3RhdGljIGludCBubnBmc19zZWNfcmVnaXN0ZXJl
ZCA9IDA7DQogI2RlZmluZSBTRUMyUEFHKHMpIChubnBmc19wYWdfdCkodW5z
aWduZWQgbG9uZykocykNCiAjZGVmaW5lIFBBRzJTRUMocCkgKHZvaWQgKiko
dW5zaWduZWQgbG9uZykocCkNCiANCi1zdGF0aWMgaW50DQotbm5wZnNfc2Vj
X3Rhc2tfYWxsb2Moc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAg
bm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50LT5zZWN1cml0eSk7
DQotICAgIGlmIChwYWcpDQotCXAtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWcp
Ow0KLSAgICByZXR1cm4gMDsNCi19DQotDQotc3RhdGljIHZvaWQNCi1ubnBm
c19zZWNfdGFza19mcmVlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkNCi17DQot
ICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcocC0+c2VjdXJpdHkpOw0K
LSAgICBpZiAocGFnKQ0KLQlwLT5zZWN1cml0eSA9IE5VTEw7DQotfQ0KLQ0K
IHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfc2VjKHZvaWQp
DQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KICAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKGN1
cnJlbnQtPnNlY3VyaXR5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wYWdfdCBw
YWcgPSBTRUMyUEFHKGN1cnJlbnRfc2VjdXJpdHkoKSk7DQorI2VuZGlmDQog
ICAgIGlmIChwYWcpDQogCXJldHVybiBwYWc7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHJl
dHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICByZXR1cm4gY3VycmVu
dF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0gY3VycmVu
dF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQorI2VuZGlmDQogfQ0KIA0K
IHN0YXRpYyBpbnQNCiBubnBmc19zZXRfcGFnX3NlYyh2b2lkKQ0KIHsNCiAg
ICAgc3RhdGljIG5ucGZzX3BhZ190IHBhZ251bSA9IE5OUEZTX1BBR19MTElN
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI5KQ0KKyAgICBzdHJ1Y3QgY3JlZCAqY3JlZDsNCisjZW5kaWYNCiAN
CiAgICAgaWYgKHBhZ251bSA9PSBOTlBGU19QQUdfVUxJTSkNCiAJcmV0dXJu
IC1FTk9NRU07DQogICAgIC8qIHBhZ251bSA9IE5OUEZTX1BBR19MTElNOyAq
Lw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgY3VycmVudC0+c2VjdXJpdHkgPSBQQUcy
U0VDKHBhZ251bSk7DQorI2Vsc2UNCisgICAgY3JlZCA9IChzdHJ1Y3QgY3Jl
ZCAqKSBjdXJyZW50LT5jcmVkOw0KKyAgICBjcmVkLT5zZWN1cml0eSA9IFBB
RzJTRUMocGFnbnVtKTsNCisjZW5kaWYNCiAgICAgcGFnbnVtKys7DQogICAg
IHJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgc3RydWN0IHNlY3VyaXR5X29w
ZXJhdGlvbnMgbm5wZnNfc2VjX29wcyA9IHsNCi0gICAgLnRhc2tfYWxsb2Nf
c2VjdXJpdHkgPSBubnBmc19zZWNfdGFza19hbGxvYywNCi0gICAgLnRhc2tf
ZnJlZV9zZWN1cml0eSA9IG5ucGZzX3NlY190YXNrX2ZyZWUsDQotLy8gICAg
LnRhc2tfcmVwYXJlbnRfdG9faW5pdCA9IG5ucGZzX3NlY19yZXBhcmVudF90
b19pbml0LA0KLX07DQotDQogI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWSAq
Lw0KIA0KICNpZmRlZiBHUk9VUFBBR1MNCkBAIC0yMDYsNyArMjE4LDEyIEBA
IGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZvICpnaSkNCiAgICAgTk5QRlNE
RUIoWERFQlNZUywgKCJmaW5kX3BhZzogbmdyb3VwcyA9ICVkXG4iLCBnaS0+
bmdyb3VwcykpOw0KIA0KICAgICBmb3IgKGkgPSBnaS0+bmdyb3VwcyAtIDE7
IGkgPj0gMDsgaS0tKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJZ2lkX3QgZ3JvdXAgPSBHUk9VUF9B
VChnaSwgaSk7DQorI2Vsc2UNCisJa2dpZF90IGtncm91cCA9IEdST1VQX0FU
KGdpLCBpKTsNCisJZ2lkX3QgZ3JvdXAgPSBrZ3JvdXAudmFsOw0KKyNlbmRp
Zg0KIAlpZiAoKG5ucGZzX3BhZ190KWdyb3VwID49IE5OUEZTX1BBR19MTElN
ICYmIChubnBmc19wYWdfdClncm91cCA8IE5OUEZTX1BBR19VTElNKSB7DQog
CSAgICBOTlBGU0RFQihYREVCU1lTLA0KIAkJICAgICAoImZpbmRfcGFnOiBF
eGlzdGluZyBwYWcgJXUgYXQgcG9zICV1XG4iLCBncm91cCwgaSkpOw0KQEAg
LTIyMiwxNSArMjM5LDMxIEBAIGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZv
ICpnaSkNCiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBubnBmc19nZXRfcGFnX2dy
b3VwKHZvaWQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS
TkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq
Z2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KICAgICBubnBmc19wYWdfdCBy
ZXQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgc3RydWN0IGdyb3Vw
X2luZm8gKmdpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAg
bm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAg
ICBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7DQorICAgIG5ucGZzX3Bh
Z190IHJldCA9IGt1aWQudmFsOw0KKyNlbmRpZg0KKyNlbmRpZg0KICAgICBp
bnQgaTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgZ2V0X2dyb3VwX2luZm8oZ2kpOw0KKyNl
bmRpZg0KIA0KICAgICBpID0gZmluZF9wYWcoZ2kpOw0KICAgICBpZiAoaSAh
PSBOTlBGU19QQUdfTk9URk9VTkQpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJcmV0ID0gR1JPVVBfQVQo
Z2ksIGkpOw0KKyNlbHNlDQorCXsga2dpZF90IGtnaWQgPSBHUk9VUF9BVChn
aSwgaSk7IHJldCA9IGtnaWQudmFsOyB9DQorI2VuZGlmDQogDQogICAgIHB1
dF9ncm91cF9pbmZvKGdpKTsNCiANCkBAIC0yNDIsMTMgKzI3NSwxOSBAQCBu
bnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQogc3RhdGljIGludA0KIHN0b3Jl
X3BhZyhubnBmc19wYWdfdCBwYWdudW0pDQogew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBzdHJ1
Y3QgZ3JvdXBfaW5mbyAqb2xkX2dpID0gY3VycmVudC0+Z3JvdXBfaW5mbzsN
CisjZWxzZQ0KKyAgIHN0cnVjdCBncm91cF9pbmZvICpvbGRfZ2kgPSBnZXRf
Y3VycmVudF9ncm91cHMoKTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGdyb3Vw
X2luZm8gKm5ld19naTsNCi0gICAgaW50IG5ibG9ja3MsIGNvdW50Ow0KKyAg
ICB1bnNpZ25lZCBpbnQgbmJsb2NrcywgY291bnQ7DQogICAgIGludCBmb3Vu
ZCA9IDA7DQogICAgIGludCBpLCBrOw0KICAgICANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkgICAgDQogICAg
IGdldF9ncm91cF9pbmZvKG9sZF9naSk7DQorI2VuZGlmDQogDQogICAgIGkg
PSBmaW5kX3BhZyhvbGRfZ2kpOw0KICAgICBpZiAoaSAhPSBOTlBGU19QQUdf
Tk9URk9VTkQpDQpAQCAtMjc0LDEwICszMTMsMTcgQEAgc3RvcmVfcGFnKG5u
cGZzX3BhZ190IHBhZ251bSkNCiAJY291bnQgLT0gTkdST1VQU19QRVJfQkxP
Q0s7DQogICAgIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBpZiAoZm91bmQpDQogCUdST1VQ
X0FUKG5ld19naSwgaSkgPSBwYWdudW07DQogICAgIGVsc2UNCiAJR1JPVVBf
QVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IHBhZ251bTsNCisj
ZWxzZQ0KKyAgICBpZiAoZm91bmQpDQorCXsga2dpZF90IGtnaWQgPSBLR0lE
VF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgaSkgPSBrZ2lkOyB9
DQorICAgIGVsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQocGFn
bnVtKTsgR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9
IGtnaWQ7IH0NCisjZW5kaWYNCiAgICAgDQogICAgIHNldF9jdXJyZW50X2dy
b3VwcyhuZXdfZ2kpOw0KICAgICBwdXRfZ3JvdXBfaW5mbyhuZXdfZ2kpOw0K
QEAgLTMxNyw3ICszNjMsMTMgQEAgbm5wZnNfZ2V0X3BhZygpDQogICAgIHJl
dHVybiBubnBmc19nZXRfcGFnX2dyb3VwKCk7DQogI2VuZGlmIC8qIEdST1VQ
UEFHUyAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM
X1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTQsMCkNCisgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisg
ICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlk
LnZhbDsgfQ0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgaW5saW5lIGludA0K
QEAgLTQyMiw3ICs0NzQsNyBAQCBubnBmc19zZXRncm91cHMxNiAoaW50IGdp
ZHNldHNpemUsIG9sZF9nDQogI2VuZGlmIC8qIFNZU0NBTExIQUNLICovDQog
I2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KLXN0cnVjdCBmaWxlX2hhbmRs
ZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVfaGFuZGxlIHsNCiAgICAgbm5wZnNf
ZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBpbm9kZTsNCiAgICAgX191MzIgZ2Vu
Ow0KQEAgLTUwOSwyNiArNTYxLDY1IEBAIG5ucGZzX2RlYnVnX3ByaW50IChz
dHJ1Y3QgYXJsYVZpY2VJb2N0bCANCiAgKiBmb2xsb3cgc3ltbGlua3MgaWZm
IGBmb2xsb3cnDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiBzdGF0aWMgc3RydWN0IGRlbnRy
eSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAqbmQs
IGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCisjZWxzZQ0KK3N0YXRp
YyBzdHJ1Y3QgZGVudHJ5ICoNCit1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3Qg
cGF0aCAqcGF0aCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNl
bmRpZg0KIHsNCi0gICAgY2hhciAqa25hbWU7DQogICAgIGludCBmbGFncyA9
IDA7DQogICAgIGludCBlcnJvciA9IDA7DQogDQotICAgIGtuYW1lID0gZ2V0
bmFtZSAodXNlcl9wYXRoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw3LDApDQorICAgIGNoYXIgKmtuYW1lOw0KKyAg
ICBrbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQorICAgIGNv
bnN0IGNoYXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZuYW1l
Ow0KKyAgICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisgICAga25h
bWUgPSBmbmFtZS0+bmFtZTsNCisjZWxzZQ0KKyAgICBjaGFyICprbmFtZTsN
CisgICAga25hbWUgPSBfX2dldG5hbWUoKTsNCisjZW5kaWYNCisNCiAgICAg
aWYgKElTX0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIo
a25hbWUpKTsNCiAgICAgaWYgKGZvbGxvdykNCiAJZmxhZ3MgfD0gTE9PS1VQ
X0ZPTExPVzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDMsMTQsMCkNCisgICAgZXJyb3IgPSBzdHJuY3B5X2Zyb21f
dXNlcihrbmFtZSwgdXNlcl9wYXRoLCBQQVRIX01BWCk7DQorICAgIGlmIChl
cnJvciA8IDAgfHwgZXJyb3IgPT0gUEFUSF9NQVgpIHsNCisJX19wdXRuYW1l
KGtuYW1lKTsNCisJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KKyAgICB9DQor
I2VuZGlmDQorDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfc3lz
Y2FsbDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1lKSk7DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAg
ICAgZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgJihu
ZC0+cGF0aCkpOw0KKyNlbHNlDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtu
YW1lLCBmbGFncywgcGF0aCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KICAgICBwdXRuYW1l
KGtuYW1lKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49
IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAgX19wdXRuYW1lKGtuYW1l
KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BU
UihlcnJvcik7DQotICAgIHJldHVybiBuZC0+ZGVudHJ5Ow0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAg
IHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQorI2Vsc2UNCisgICAgcmV0dXJu
IHBhdGgtPmRlbnRyeTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlua2FnZSBs
b25nDQpAQCAtNTQwLDEyICs2MzEsMjQgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogew0KICAgICBsb25nIGVycm9yID0gMDsNCiAgICAgc3Ry
dWN0IGFybGFWaWNlSW9jdGwgdmljZV9pb2N0bDsgDQotICAgIHN0cnVjdCBu
bnBmc19tZXNzYWdlX3Bpb2N0bCBtc2c7DQorICAgIHN0cnVjdCBubnBmc19t
ZXNzYWdlX3Bpb2N0bCAqbXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZz
X21lc3NhZ2Vfd2FrZXVwICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7
DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAg
ICAgDQorICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VS
TkVMKTsNCisgICAgaWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAt
RU5PTUVNOw0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzkpDQogICAgIGxvY2tfa2VybmVsKCk7DQorI2Vsc2UN
CisgICAgLyogVE9ETzogbG9ja19rZXJuZWwoKSBpcyByZW1vdmVkLCBjb25z
aWRlciBhZGRpbmcgYW4gcHJpdmF0ZSBsb2NrICovDQorI2VuZGlmDQogDQog
ICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2Vk
XG4iKSk7DQogDQpAQCAtNTc1LDcgKzY3OCw3IEBAIHN5c19hZnNfaW50IChp
bnQgb3BlcmF0aW9uLA0KIAkgICAgZ290byB1bmxvY2s7DQogCX0NCiAJaWYg
KHZpY2VfaW9jdGwuaW5fc2l6ZSAhPSAwKSB7DQotCSAgICBpZihjb3B5X2Zy
b21fdXNlcigmbXNnLm1zZywNCisJICAgIGlmKGNvcHlfZnJvbV91c2VyKCZt
c2ctPm1zZywNCiAJCQkgICAgICB2aWNlX2lvY3RsLmluLA0KIAkJCSAgICAg
IHZpY2VfaW9jdGwuaW5fc2l6ZSkgIT0gMCkgew0KIAkJZXJyb3IgPSAtRUZB
VUxUOw0KQEAgLTU4Myw3ICs2ODYsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVM
TCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgm
bmQsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAg
ICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwg
YV9mb2xsb3dTeW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRy
eSkgew0KIAkJZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpA
QCAtNjI4LDE5ICs3MzUsMjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRp
b24sDQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCiAJ
ICAgIH0NCi0JICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkgICAg
bXNnLT5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5oZWFk
ZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29kZSA9
IGFfb3Bjb2RlOw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df
UElPQ1RMOw0KKwltc2ctPm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0JbXNn
Lmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0c2l6
ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWco
KTsNCisJbXNnLT5pbnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCisJ
bXNnLT5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQor
CW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg
ICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
Kwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0JZXJy
b3IgPSBubnBmc19tZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVhZGVy
LCBzaXplb2YobXNnKSk7IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVjdCBu
bnBmc19tZXNzYWdlX3dha2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5ucGZz
X21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXplb2Yo
Km1zZykpOyAvKiBYWFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV93YWtldXAgKikgbXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJICAg
IGVycm9yID0gbXNnMi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3ODYsMjEg
QEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxv
Y2s6DQogICAgIGlmIChkZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1
dCgmcGF0aCk7DQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMs
ICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9y
KSk7DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJu
ZWwgdW5sb2NrXG4iKSk7DQorICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg
dW5sb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IHNlZSB0
aGUgY29tbWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlm
DQogDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzI5LDkgKzg0OSwx
NSBAQCBzeXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9s
bG93U3ltbGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZp
bGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs
b25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2Zz
X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50
IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBh
ZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC03ODAsMjEg
KzkwNiwzMSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQp
DQogew0KICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0KICAg
ICANCi0gICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoTk5QRlNf
UFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZzX3Byb2Nmc19k
aXIgPSBwcm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsN
CiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJcmV0dXJu
IC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nmc19kaXIt
Pm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQog
ICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RF
LCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRy
eSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwg
Jm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5
ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0
X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJvY19lbnRyeShO
TlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVtb3ZlX3Byb2Nf
ZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIAlyZXR1cm4g
LUVOT01FTTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3du
ZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+
cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0K
ICNpZmRlZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0
bDMyX2NvbnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJv
Y2ZzX2lvY3RsMzIpKSB7DQpAQCAtODE1LDcgKzk1MSw3IEBAIHN0YXRpYyB2
b2lkIG5ucGZzX2V4aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5kaWYg
LyogU1lTQ0FMTENPTVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRyeShO
TlBGU19QUk9DX05PREUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KLSAgICByZW1v
dmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsN
CisgICAgcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIs
IE5VTEwpOw0KIH0NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODM5LDE0
ICs5NzUsNiBAQCBpbnN0YWxsX3NldGdyb3Vwcyh2b2lkKQ0KIHZvaWQNCiBp
bnN0YWxsX2Fmc19zeXNjYWxsKHZvaWQpDQogew0KLSNpZmRlZiBDT05GSUdf
U0VDVVJJVFkNCi0gICAgaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZubnBmc19z
ZWNfb3BzKSkNCi0JTk5QRlNERUIoWERFQlNZUywNCi0JCSAoImluc3RhbGxf
YWZzX3N5c2NhbGw6IG5ucGZzX2luaXRfc2VjIGZhaWxlZFxuIikpOw0KLSAg
ICBlbHNlDQotCW5ucGZzX3NlY19yZWdpc3RlcmVkID0gMTsNCi0jZW5kaWYN
Ci0NCiAgICAgbm5wZnNfaW5pdF9wcm9jZnMoKTsNCiANCiAjaWZkZWYgU1lT
Q0FMTEhBQ0sNCkBAIC04ODcsMTIgKzEwMTUsNiBAQCByZXN0b3JlX2Fmc19z
eXNjYWxsICh2b2lkKQ0KICNlbmRpZg0KICNlbmRpZiAvKiBTWVNDQUxMSEFD
SyAqLw0KIA0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYgKG5u
cGZzX3NlY19yZWdpc3RlcmVkKQ0KLQlpZiAodW5yZWdpc3Rlcl9zZWN1cml0
eSgmbm5wZnNfc2VjX29wcykpDQotCSAgICBwcmludGsoS0VSTl9FTUVSRyAi
bm5wZnNfZXhpdF9zZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0KLSNl
bmRpZiAvKiAhQ09ORklHX1NFQ1VSSVRZICovDQotDQogI2lmZGVmIEdST1VQ
UEFHUw0KICNpZmRlZiBTWVNDQUxMSEFDSw0KICAgICBpZiAob2xkX3NldGdy
b3Vwcykgew0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJs
YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl
LmMJMjAwNi0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j
CTIwMTYtMDEtMTMgMjE6NTE6NDkuMDAwMDAwMDAwICswMTAwDQpAQCAtNDcs
MTEgKzQ3LDIwIEBADQogI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0KIA0K
ICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxv
c3NhZ2UuYyx2IDEuMTcgMjAwNi8xMi8xMSAxNjozMTo0NSB0b2wgRXhwICQi
KTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAx
LjE5IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQorI2VuZGlm
DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigzLDcsMCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5k
JyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQor
I3VuZGVmIFNZU0NBTExIQUNLDQogI2VuZGlmDQogDQogI2luY2x1ZGUgPGxp
bnV4L2thbGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0
YXRpYyB2b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNl
bmRpZg0KKyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFr
KSkgc3lzX2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVu
Y3Rpb24gKm5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Myw2ICs3Miwx
MSBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogCQkg
ICAgdW5zaWduZWQgbG9uZyAqb2Zmc2V0LA0KIAkJICAgIGNoYXIgKiptb2Ru
YW1lLCBjaGFyICpuYW1lYnVmKTsNCiANCisjaWZkZWYgX194ODZfNjRfXw0K
K2V4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmlidXRlX18o
KHdlYWspKTsNCisjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCiBz
dGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAjaWZk
ZWYgX194ODZfNjRfXw0KQEAgLTcxLDYgKzg1LDcgQEAgZ2V0X3N0YXJ0X2Fk
ZHIodm9pZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11dGV4X2xvY2s7
DQogI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbmxpbmUgaW50
IA0KIGthbGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBhZGRyLCBjb25z
dCBjaGFyICpuYW1lKQ0KQEAgLTEzOSw2ICsxNTQsOCBAQCB2ZXJpZnkodm9p
ZCAqKnApIHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNpZmRlZiBTWVND
QUxMSEFDSw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tzX2dvb2Qodm9p
ZCAqKnApDQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxvd2VyX2JvdW5k
IHx8ICpwID49ICh2b2lkKilwKQ0KQEAgLTE4OCwzICsyMDUsNSBAQCBubnBm
c19maXh1cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAgICAgcmV0dXJu
IDA7DQogfQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAxNzo0
MzozNS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGlu
dXgvbm5wZnNfdmZzb3BzLmMJMjAxNi0wMi0xNCAwMTozNjowNi4wMDAwMDAw
MDAgKzAxMDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8bGlu
dXgvbW0uaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBm
c192ZnNvcHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4
cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAy
MDEwLzA4LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0K
IHN0cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lk
IG5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3Rh
dGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IpOw0KLXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5v
ZGUgKmlub2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3Vw
ZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpOw0KKyNlbmRpZg0KIA0KLSNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4
KQ0KIHN0YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2Vsc2UNCi1zdGF0aWMg
aW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1
Y3Qga3N0YXRmcyAqYnVmKTsNCi0jZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0
IHN1cGVyX29wZXJhdGlvbnMgbm5wZnNfc29wcyA9IHsgDQotICAgIHJlYWRf
aW5vZGUJCTogbm5wZnNfcmVhZF9pbm9kZSwNCi0gICAgcHV0X2lub2RlCQk6
IG5ucGZzX3B1dF9pbm9kZSwNCiAgICAgYWxsb2NfaW5vZGUJCTogbm5wZnNf
bm9kZV9hbGxvYywNCiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVf
ZnJlZSwNCiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9k
ZSwNCiAgICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
ICAgIHdyaXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRp
Zg0KICAgICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAt
OTQsNyArOTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUg
KmkpDQogCSAqIHJvb3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFu
ZCBub25lIGlzIG5lZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3Jl
ZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lO
SVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAll
cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs
IHNpemVvZihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vfcm9v
dF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01P
REUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRf
TkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5v
ZGUuYXR0ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRy
LCAwKTsNCiAgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxz
ZQ0KKyAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkp
Ow0KKyAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkp
Ow0KKyNlbmRpZg0KICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7
DQogICAgIFhBX1NFVF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFf
U0VUX0NUSU1FKCZub2RlLmF0dHIsIDApOw0KQEAgLTE1OSw3ICsxNjQsMTEg
QEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBu
bnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFu
ZGxpbmcgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw0LDApDQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2RlKTsN
CisjZWxzZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5k
aWYNCiAgICAgbm5wZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9
IGRwOw0KICAgICByZXR1cm4gMDsNCkBAIC0xODMsMTMgKzE5MiwyNyBAQCBu
bnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAg
IE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdp
biBzZXR0aW5nIHZhcmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAh
PSBOVUxMKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxz
ZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAll
cnJvciA9IHBhdGhfbG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwll
cnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UN
CisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRp
Zg0KIAlpZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7
DQogCWVsc2UNCi0JICAgIGRkZXYgPSBuZC5kZW50cnk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAg
IGRkZXYgPSBuZC5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9
IHBhdGguZGVudHJ5Ow0KKyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2
KSkgew0KIAkgICAgbWlub3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2Rl
LT5pX3JkZXYpOw0KQEAgLTIzMyw3ICsyNTYsNyBAQCBubnBmc19maWxsX3N1
cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0K
IH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwxOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0MiwxOSArMjY1LDIyIEBA
IG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiAg
ICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwg
bm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQogI2Vsc2UNCi1zdHJ1Y3Qg
c3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9zYiAoc3RydWN0IGZpbGVfc3lz
dGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAgIGludCBmbGFncywgY29uc3Qg
Y2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0KK3N0cnVjdCBkZW50cnkq
DQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5
cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwN
CisJICAgICB2b2lkICpkYXRhKSANCiB7DQotICAgIHJldHVybiBnZXRfc2Jf
bm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIp
Ow0KKyAgICByZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRh
dGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAjZW5kaWYNCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
c3RhdGljIHZvaWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiBzYikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisj
ZW5kaWYNCiANCiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3
Myw3MyArMjk5LDYgQEAgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IpDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19w
dXRfc3VwZXIgZXhpdGluZ1xuIikpOw0KIH0NCiANCi1zdGF0aWMgdm9pZA0K
LW5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQot
ICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgc3Rh
cnRpbmcgaW5vZGU6ICVwXG4iLGlub2RlKSk7DQotICAgIE5OUEZTREVCKFhE
RUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgaW5vZGUtPmlfaW5vOiAlbGRc
biIsaW5vZGUtPmlfaW5vKSk7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCi0gICAgaW5vZGUtPmlfYmxrc2l6
ZSA9IDEwMjQ7DQotI2VuZGlmDQotICAgIGlub2RlLT5pX21vZGUgPSAwOw0K
LSAgICBpbm9kZS0+aV9vcCA9IE5VTEw7DQotICAgIE5OUEZTREVCKFhERUJW
Rk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgZXhpdGluZ1xuIikpOw0KLX0NCi0g
DQotLyoNCi0gKiBDYWxsZWQgd2hlbiBgaW5vZGUnIGlzIGRlLXJlZmVyZW5j
ZWQsIGllIHdoZW4gaXB1dCBpcyBjYWxsZWQuDQotICovDQotDQotc3RhdGlj
IHZvaWQNCi1ubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkN
Ci17DQotICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hO
T0RFKGlub2RlKTsNCi0gICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBG
U19GUk9NX1ZOT0RFKGlub2RlKTsNCi0gICAgaW50IGJhZDsNCi0NCi0gICAg
Tk5QRlNERUIoWERFQlZGT1BTLCgibm5wZnNfcHV0X2lub2RlOiBpbm9kZTog
JXAgY291bnQ6ICVkIGFsaWFzZXM6IiwNCi0JCQlpbm9kZSwgbm5wZnNfaWNv
dW50KGlub2RlKSkpOw0KLSAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2Rl
KTsNCi0gICAgDQotICAgIGRvd24oJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsN
Ci0NCi0gICAgaWYgKChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVk9QRU4p
ID09IDApIHsNCi0JaWYgKCFpc19iYWRfaW5vZGUoaW5vZGUpKSB7DQotCSAg
ICBpZiAoaW5vZGUgIT0gbm5wZnNwLT5yb290KSB7DQotCQltYWtlX2JhZF9p
bm9kZShpbm9kZSk7DQotCQlubnBmc19pcmVsZShpbm9kZSk7IC8qIHNlZSBu
bnBmc19ub2RlX2FkZCgpICovDQotCSAgICB9DQotCSAgICB4bi0+ZmxhZ3Mg
fD0gTk5QRlNfU1RBTEU7DQotCX0NCi0JYmFkID0gMTsgLyogb3Igcm9vdCwg
cmVhbGx5ICovDQotICAgIH0gZWxzZSB7DQotCWJhZCA9IGlzX2JhZF9pbm9k
ZShpbm9kZSk7DQotICAgIH0NCi0NCi0gICAgaWYgKHhuLT5mbGFncyAmIE5O
UEZTX1NUQUxFICYmICFubnBmc19ub2RlX3VzZXJzKGlub2RlKSkgew0KLQl4
bi0+ZmxhZ3MgfD0gTk5QRlNfTk9ERV9JUFVUOyAvKiBYWFggbG9ja2luZyAq
Lw0KLSAgCW5ucGZzX2ZvcmNlX2ludmFsaWRfbm9kZSh4bik7DQotCXhuLT5m
bGFncyAmPSB+Tk5QRlNfTk9ERV9JUFVUOw0KLSAgICB9DQotICAgIA0KLSAg
ICBpZiAoYmFkKSB7DQotCWlmIChubnBmc19pY291bnQoaW5vZGUpID09IDEp
DQotCSAgICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0gICAgfSBlbHNlIGlm
IChubnBmc19pY291bnQoaW5vZGUpID09IDIpIHsNCi0JLyogDQotCSAqIFRo
ZSBsYXN0IGV4dGVybmFsIHJlZmVyZW5jZSBpcyBiZWluZyBkcm9wcGVkLCBv
bmx5IHRoZSBvbmUNCi0JICogZnJvbSBubnBmc19ub2RlX2FkZCgpIGlzIGxl
ZnQuIFRpbWUgdG8gbGV0IGRhZW1vbiByZWxlYXNlDQotCSAqIHRoaXMgbm9k
ZSBwcm9wZXJseS4NCi0JICovDQotCWlmICgoeG4tPmZsYWdzICYgTk5QRlNf
TElNQk8pID09IDApIHsNCi0JICAgIG5ucGZzX25vZGVfY2xlYXIoeG4pOw0K
LQkgICAgbm5wZnNfcXVldWVfaW5hY3RpdmUoeG4pOw0KLQl9DQotICAgIH0N
Ci0NCi0gICAgdXAoJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi19DQotDQog
c3RhdGljIGludA0KIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Js
b2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQpAQCAtMzUyLDI1
ICszMTEsMjUgQEAgbm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiLA0KICAgICB0bXAuZl9iYXZhaWwgID0gMTAyNCoxMDI0KjItNTA7
DQogICAgIHRtcC5mX2ZpbGVzICAgPSAxMDI0KjEwMjQ7DQogICAgIHRtcC5m
X2ZmcmVlICAgPSAxMDI0KjEwMjQtMTAwOw0KKyAgICB0bXAuZl9mc2lkLnZh
bFswXSA9IDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzFdID0gMDsNCiAgICAg
dG1wLmZfbmFtZWxlbiA9IE5BTUVfTUFYOw0KKyAgICB0bXAuZl9mcnNpemUg
ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMF0gPSAwOw0KKyAgICB0bXAuZl9z
cGFyZVsxXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzJdID0gMDsNCisgICAg
dG1wLmZfc3BhcmVbM10gPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQorICAgIHRtcC5mX3NwYXJlWzRd
ID0gMDsNCisjZWxzZQ0KKyAgICB0bXAuZl9mbGFncyA9IDA7DQorI2VuZGlm
DQogICAgICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0KIH0NCiANCi0j
aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwx
OCkNCi0NCiBzdGF0aWMgaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQogICAgIHJl
dHVybiBubnBmc19zdGF0ZnNfaW50KGRlbnRyeS0+ZF9zYiwgYnVmKTsNCiB9
DQotDQotI2Vsc2UNCi0NCi1zdGF0aWMgaW50DQotbm5wZnNfc3RhdGZzKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQot
ew0KLSAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChzYiwgYnVmKTsNCi19
DQotDQotI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvYXJsYWQvZmNhY2hlLmMgYXJsYS0wLjkwL2FybGFkL2ZjYWNoZS5jDQot
LS0gYXJsYS0wLjkwLW9sZC9hcmxhZC9mY2FjaGUuYwkyMDA2LTEyLTExIDE3
OjIzOjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9hcmxhZC9m
Y2FjaGUuYwkyMDE2LTAxLTIyIDE3OjAwOjQzLjAwMDAwMDAwMCArMDEwMA0K
QEAgLTcxMyw3ICs3MTMsNyBAQCBmY2FjaGVfaGF2ZV93YW50ZWQoRkNhY2hl
RW50cnkgKmVudHJ5LCB1DQogaW50DQogZmNhY2hlX2Rpcl9uYW1lIChGQ2Fj
aGVFbnRyeSAqZW50cnksIGNoYXIgKnMsIHNpemVfdCBsZW4pDQogew0KLSAg
ICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgIiUwMlgiLCBlbnRyeS0+aW5k
ZXggLyAweDEwMCk7DQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCBO
TlBGU19DQUNIRV9GSUxFX0RJUjEsIGVudHJ5LT5pbmRleCAvIDB4MTAwKTsN
CiB9DQogDQogLyoNCkBAIC03MjMsNyArNzIzLDcgQEAgZmNhY2hlX2Rpcl9u
YW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYQ0KIHN0YXRpYyBpbnQNCiBm
Y2FjaGVfZmlsZV9uYW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYXIgKnMs
IHNpemVfdCBsZW4pDQogew0KLSAgICByZXR1cm4gc25wcmludGYgKHMsIGxl
biwgIiUwMlgvJTAyWCIsDQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVu
LCBOTlBGU19DQUNIRV9GSUxFX0RJUl9QQVRILA0KIAkJICAgICBlbnRyeS0+
aW5kZXggLyAweDEwMCwgZW50cnktPmluZGV4ICUgMHgxMDApOw0KIH0NCiAN
CkBAIC04MTUsNyArODE1LDcgQEAgZmNhY2hlX2ZoZ2V0IChjaGFyICpmaWxl
bmFtZSwgZmNhY2hlX2NhYw0KIAlpbnQgcmV0LCBhLCBiOw0KIAljaGFyIGJ1
ZlsxMDI0XTsNCiANCi0JcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCAiJTAyWC8l
MDJYIiwgJmEsICZiKTsNCisJcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCBOTlBG
U19DQUNIRV9GSUxFX0RJUl9QQVRILCAmYSwgJmIpOw0KIAlpZiAocmV0ICE9
IDIpDQogCSAgICByZXR1cm4gRUlOVkFMOw0KIA0KQEAgLTgyNCw3ICs4MjQs
NyBAQCBmY2FjaGVfZmhnZXQgKGNoYXIgKmZpbGVuYW1lLCBmY2FjaGVfY2Fj
DQogCQ0KIAlyZXQgPSBzbnByaW50ZigoY2hhciAqKWhhbmRsZS0+bm5wZnNf
aGFuZGxlLCANCiAJCSAgICAgICBzaXplb2YoaGFuZGxlLT5ubnBmc19oYW5k
bGUpLA0KLQkJICAgICAgICIlc1xcJTAyWFxcJTAyWCIsIGJ1ZiwgYSwgYik7
DQorCQkgICAgICAgIiVzXFwiIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEgs
IGJ1ZiwgYSwgYik7DQogDQogCWlmIChyZXQgPiAwICYmIHJldCA8IHNpemVv
ZihoYW5kbGUtPm5ucGZzX2hhbmRsZSkpDQogCSAgICBoYW5kbGUtPnZhbGlk
ID0gMTsNCg==

---276651502-719180580-1455645175=:24402
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-719180580-1455645175=:24402--

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