[5055] in arla-drinkers

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

Re: PATCH: Arla 0.90 on Linux 2.6.34 to 3.18

daemon@ATHENA.MIT.EDU (Bo Branten)
Tue Jan 12 21:00:35 2016

From arla-drinkers-bounces@stacken.kth.se Wed Jan 13 02:00:35 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 25917 invoked from network); 13 Jan 2016 02:00:34 -0000
Received: from mx7.kth.se (130.237.48.48)
  by charon.mit.edu with SMTP; 13 Jan 2016 02:00:34 -0000
Received: from mx7.kth.se (localhost [127.0.0.1])
	by mx7.kth.se (Postfix) with ESMTP id 720DC140123;
	Wed, 13 Jan 2016 03:00:33 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx7.kth.se ([127.0.0.1])
	by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id 5UfUEhNzb4cq; Wed, 13 Jan 2016 03:00:15 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
	by mx7.kth.se (Postfix) with ESMTP;
	Wed, 13 Jan 2016 03:00:15 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id AC7C114CA9E;
	Wed, 13 Jan 2016 03:00:15 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id D48E014CABD; Wed, 13 Jan 2016 03:00:14 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx7.kth.se (mx7.kth.se [130.237.48.48])
 by vingummi.stacken.kth.se (Postfix) with ESMTPS id CF21A14CABC
 for <arla-drinkers@stacken.kth.se>; Wed, 13 Jan 2016 03:00:14 +0100 (CET)
Received: from mx7.kth.se (localhost [127.0.0.1])
 by mx7.kth.se (Postfix) with ESMTP id BDBE314010C
 for <arla-drinkers@stacken.kth.se>; Wed, 13 Jan 2016 03:00:14 +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]:47299
Received: from mx7.kth.se ([127.0.0.1])
 by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id cF8MPh5J871H for <arla-drinkers@stacken.kth.se>;
 Wed, 13 Jan 2016 03:00:12 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
 by mx7.kth.se (Postfix) with ESMTPS
 for <arla-drinkers@stacken.kth.se>; Wed, 13 Jan 2016 03:00:12 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id CA669A1E
 for <arla-drinkers@stacken.kth.se>; Wed, 13 Jan 2016 03:00:11 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [IPv6:2001:6b0:e:2018::162])
 by mail.acc.umu.se (Postfix) with ESMTP id D6DA5A1D
 for <arla-drinkers@stacken.kth.se>; Wed, 13 Jan 2016 03:00:05 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id C683044B8C; Wed, 13 Jan 2016 03:00:05 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id C024E44B8B
 for <arla-drinkers@stacken.kth.se>; Wed, 13 Jan 2016 03:00:05 +0100 (CET)
Date: Wed, 13 Jan 2016 03:00:05 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH: Arla 0.90 on Linux 2.6.34 to 3.18
In-Reply-To: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601130259040.13035@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
 BOUNDARY="-276651502-1475872382-1452650405=:13035"
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-1475872382-1452650405=:13035
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH: Arla 0.90 on Linux 2.6.34 to 3.18

---276651502-1475872382-1452650405=:13035
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-0.90-for-linux-3.18
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601130300050.13035@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-arla-0.90-for-linux-3.18

ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4
L25ucGZzL25ubnBmcy5oIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGlu
dXgvbm5wZnMvbm5ucGZzLmgNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnMvbm5ucGZzLmgJMjAwMi0wOS0wNyAxMjo0NzoxNy4wMDAwMDAwMDAg
KzAyMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25u
cGZzL25ubnBmcy5oCTIwMDItMDktMDcgMTI6NDc6MTcuMDAwMDAwMDAwICsw
MjAwDQpAQCAtMSw0ICsxLDQgQEANCiAvKiAkSWQ6IG5ubnBmcy5oLHYgMS4y
IDIwMDIvMDkvMDcgMTA6NDc6MTcgbGhhIEV4cCAkICovDQotLyogJFNvdXJj
ZTogL2Fmcy9zdGFja2VuLmt0aC5zZS9zcmMvU291cmNlUmVwb3NpdG9yeS9h
cmxhL25ucGZzL2xpbnV4L25ucGZzL25ubnBmcy5oLHYgJCAqLw0KKy8qICRT
b3VyY2U6IC9Vc2Vycy9iby90bXAvQXJsYVNvdXJjZVJlcG9zaXRvcnkvYXJs
YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCiANCiAjZGVm
aW5lIE5OTlBGUyAyDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaCBhcmxhLWZvci1saW51
eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxh
LTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0
IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4
LTMuMTgvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEy
IDE5OjA2OjM0LjUxODAyNTYwOSArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBA
IHN0cnVjdCBubnBmcyB7DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVy
b290OyAvKiBzaW1wbGlmeSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAg
ICBzdHJ1Y3QgZGVudHJ5ICpjYWNoZWRpcjsNCiANCisjaWYgKExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkpDQogICAgIHVp
ZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0eSAq
Lw0KICAgICBnaWRfdCBnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90IHVpZDsg
Lyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0eSAqLw0KKyAgICBr
Z2lkX3QgZ2lkOw0KKyNlbmRpZg0KIA0KICAgICBzdHJ1Y3Qgew0KIAlpbnQg
cmVjdXJzZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmggYXJsYS1mb3ItbGludXgt
My4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgNCi0tLSBhcmxh
LTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oCTIwMDctMDEt
MDggMTQ6NTI6NDkuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGlu
dXgtMy4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w
MS0xMSAyMToxNzo0Mi44NzgzMjYxMjQgKzAxMDANCkBAIC0zNCw3ICszNCw3
IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyogJElkOiBubnBm
c19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkgdG9sIEV4cCAk
ICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIwMTAvMDgvMDgg
MjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhBVkVfQ09ORklH
X0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyArNTEsOSBAQA0K
ICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3N0
cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiAj
aW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVk
ZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDE1ICsxNDAsMTYg
QEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNfZmV0
Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KLSNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiBp
bnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZz
X3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFt
ZSwNCiAJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCk7
DQogI2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9z
YiAoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAg
IGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEp
Ow0KK3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25z
dCBjaGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKTsNCiAjZW5k
aWYNCiANCiBleHRlcm4gc3RydWN0IGRlbnRyeV9vcGVyYXRpb25zIG5ucGZz
X2RlbnRyeV9vcGVyYXRpb25zOw0KQEAgLTIwMCwxNiArMjAzLDI3IEBAIG5u
cGZzX2l3cml0ZWNvdW50IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIEhl
bHAgZnVuY3Rpb24gdG8gcmVhZCB0aGUgZGVudHJ5LT5kX2NvdW50IGEgcG9y
dGFibGUgd2F5DQogICovDQogDQorLyojaWYgKExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpKi8NCiBzdGF0aWMgaW5saW5l
IGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZzX2Rj
b3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQogew0K
KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM4KSkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRfY291
bnQpOw0KKyNlbHNlDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDExLDApKQ0KKyAgICByZXR1cm4gYXRvbWljX3JlYWQo
KGNvbnN0IGF0b21pY190KikmZGVudHJ5LT5kX2NvdW50KTsNCisjZWxzZQ0K
KyAgICByZXR1cm4gZF9jb3VudChkZW50cnkpOzsNCisjZW5kaWYNCisjZW5k
aWYNCiB9DQogDQogZXh0ZXJuIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KIGNvbnN0DQotI2VuZGlmDQog
c3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hb3BzOw0K
IA0KICNpZm5kZWYgbGlzdF9mb3JfZWFjaA0KQEAgLTIzNyw3ICsyNTEsMTIg
QEAgbm5wZnNfZml4dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpOw0KICNlbmRp
Zg0KIA0KICNkZWZpbmUgbm5wZnNfZGV2X3QgZGV2X3QNCisNCisjaWYgKExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpDQog
I2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFz
aGVkKGQpDQorI2Vsc2UNCisjZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNo
ZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVm
aW5lIE5OUEZTX05PT1AgICAgICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJO
IC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5w
ZnNfbm9kZS5oIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5w
ZnMvbm5wZnNfbm9kZS5oDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25u
cGZzL25ucGZzX25vZGUuaAkyMDA2LTEyLTExIDE3OjI5OjM5LjAwMDAwMDAw
MCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfbm9kZS5oCTIwMTAtMDgtMDggMjI6NDM6MDcuMDAwMDAw
MDAwICswMjAwDQpAQCAtNTQsNyArNTQsNyBAQCBleHRlcm4gdWludDMyX3Qg
bm5wZnNfYmxvY2tzaXplYml0czsNCiAgKiBmbGFncy4NCiAgKi8NCiANCi0j
ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp
cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrICovDQorI2RlZmluZSBOTlBG
U19OT0RFX0lQVVQJMHgwMDAxMDAwMCAgIC8qIG5vZGUgaXMgaW4gaXB1dCgp
LCBhdm9pZCBkZWFkbG9jay4gQ2FuIGJlIHJlbW92ZWQ/ICovDQogDQogI2Rl
ZmluZSBYTl9IQVNIU0laRSAxMDA5DQogI2RlZmluZSBYTl9DTEVBTlVQX0lU
RVJTIDEyOQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25u
cGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jIGFybGEtZm9yLWxpbnV4LTMuMTgv
bm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMNCi0tLSBhcmxhLTAuOTAvbm5w
ZnMvbGludXgvbm5wZnNfYmxvY2tzLmMJMjAwNy0wMS0wOCAxNDoyNDoyNC4w
MDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZz
L2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTYtMDEtMTMgMDE6MTk6MTguNTE0
NzcwMTQzICswMTAwDQpAQCAtMzQsNyArMzQsNyBAQA0KICAqIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNf
YmxvY2tzLmMsdiAxLjMgMjAwNy8wMS8wOCAxMzoyNDoyNCB0b2wgRXhwICQg
Ki8NCisvKiAkSWQ6IG5ucGZzX2Jsb2Nrcy5jLHYgMS42IDIwMTAvMDgvMDgg
MjA6NDM6MDQgdG9sIEV4cCAkICovDQogDQogI2luY2x1ZGUgPG5ucGZzL25u
cGZzX2xvY2wuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZnMuaD4NCkBA
IC00Myw2ICs0MywzNiBAQA0KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPg0K
ICNpbmNsdWRlIDxsaW51eC9tbS5oPg0KIA0KKyNpZiAoTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkpDQorLyogVE9ETzog
aW1wbGVtZW50IGEgcmVwbGFjZW1lbnQgZm9yIHZmc19wYXRoX2xvb2t1cCBv
biBrZXJuZWxzIGxhdGVyIHRoYW4gMy4xMiAqLw0KKy8qKg0KKyAqIHZmc19w
YXRoX2xvb2t1cCAtIGxvb2t1cCBhIGZpbGUgcGF0aCByZWxhdGl2ZSB0byBh
IGRlbnRyeS12ZnNtb3VudCBwYWlyDQorICogQGRlbnRyeTogIHBvaW50ZXIg
dG8gZGVudHJ5IG9mIHRoZSBiYXNlIGRpcmVjdG9yeQ0KKyAqIEBtbnQ6IHBv
aW50ZXIgdG8gdmZzIG1vdW50IG9mIHRoZSBiYXNlIGRpcmVjdG9yeQ0KKyAq
IEBuYW1lOiBwb2ludGVyIHRvIGZpbGUgbmFtZQ0KKyAqIEBmbGFnczogbG9v
a3VwIGZsYWdzDQorICogQHBhdGg6IHBvaW50ZXIgdG8gc3RydWN0IHBhdGgg
dG8gZmlsbA0KKyAqLw0KK2ludCB2ZnNfcGF0aF9sb29rdXAoc3RydWN0IGRl
bnRyeSAqZGVudHJ5LCBzdHJ1Y3QgdmZzbW91bnQgKm1udCwNCisJCSAgICBj
b25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgZmxhZ3MsDQorCQkgICAg
c3RydWN0IHBhdGggKnBhdGgpDQorew0KKyNpZiAwDQorCXN0cnVjdCBuYW1l
aWRhdGEgbmQ7DQorCWludCBlcnI7DQorCW5kLnJvb3QuZGVudHJ5ID0gZGVu
dHJ5Ow0KKwluZC5yb290Lm1udCA9IG1udDsNCisJQlVHX09OKGZsYWdzICYg
TE9PS1VQX1BBUkVOVCk7DQorCS8qIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBk
b19wYXRoX2xvb2t1cCgpIGlzIGlnbm9yZWQgd2l0aCBMT09LVVBfUk9PVCAq
Lw0KKwllcnIgPSBkb19wYXRoX2xvb2t1cChBVF9GRENXRCwgbmFtZSwgZmxh
Z3MgfCBMT09LVVBfUk9PVCwgJm5kKTsNCisJaWYgKCFlcnIpDQorCQkqcGF0
aCA9IG5kLnBhdGg7DQorCXJldHVybiBlcnI7DQorI2VuZGlmDQorCXJldHVy
biAtMTsNCit9DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBp
ZiBibG9jayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICszMjAsMTMg
QEAgbm5wZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0K
ICAgICBiYWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQog
DQogICAgIG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYg
KExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCwwKSkN
CiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tz
aXplKTsNCisjZWxzZQ0KKyAgICBpZighaW5vZGVfbmV3c2l6ZV9vayhiYWNr
bm9kZSwgbm5wZnNfYmxvY2tzaXplKSkgew0KKyAgICAgICAgdHJ1bmNhdGVf
c2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXplKTsNCisgICAgfQ0K
KyNlbmRpZg0KICAgICBtdXRleF91bmxvY2soJmJhY2tub2RlLT5pX211dGV4
KTsNCiAgICAgDQogICAgIGZpbHBfY2xvc2UoYmFja2ZpbGUsIE5VTEwpOw0K
QEAgLTMxOSw5ICszNTUsMjEgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg
bm5wZnNfbm9kZSAqbm9kZQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0g
WE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBmbGFncyA9IE9fTEFS
R0VGSUxFIHwgZmxhZzsNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisj
aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQs
MCkpDQogICAgIHVpZF90IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7
DQorI2Vsc2UNCisgICAga3VpZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBz
YXZlZ2lkOw0KKyNlbmRpZg0KICAgICBpbnQgcmV0Ow0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBj
b25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVk
ICpvdmVycmlkZV9jcmVkOw0KKyNlbmRpZg0KKw0KKyAgICAodm9pZClzYXZl
dWlkOw0KKyAgICAodm9pZClzYXZlZ2lkOw0KIA0KICAgICBCVUdfT04oIW5u
cGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAh
PSBOVUxMKTsNCkBAIC0zNDYsMjIgKzM5NCwzNCBAQCBubnBmc19ibG9ja19v
cGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIEJVR19PTighbm5w
ZnNwLT5jYWNoZWRpciB8fCAhbm5wZnNwLT5jYWNoZXJvb3QpOw0KICAgICAN
CiAgICAgLyogdXNlIHRoZSBuZnNkIHRyaWNrIHRvIGdpdmUgdXMgYWNjZXNz
ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAg
ICAgc2F2ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5m
c3VpZCA9IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5u
cGZzcC0+Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+
Y2FjaGVkaXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNo
ZXJvb3QpOw0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAg
IG5kLmRlcHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0g
ICAgaWYgKGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBf
UEFSRU5UOw0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFt
ZSwgJm5kKTsNCi0gICAgaWYgKHJldCkgew0KKyNlbHNlDQorICAgIHNhdmV1
aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAgIHNhdmVnaWQgPSBjdXJyZW50
X2ZzZ2lkKCk7DQorICAgIG92ZXJyaWRlX2NyZWQgPSBwcmVwYXJlX2NyZWRz
KCk7DQorICAgIGlmIChvdmVycmlkZV9jcmVkID09IE5VTEwpDQorICAgICAg
ICByZXR1cm4gLUVOT01FTTsNCisgICAgb3ZlcnJpZGVfY3JlZC0+ZnN1aWQg
PSBubnBmc3AtPnVpZDsNCisgICAgb3ZlcnJpZGVfY3JlZC0+ZnNnaWQgPSBu
bnBmc3AtPmdpZDsNCisgICAgb2xkX2NyZWQgPSBvdmVycmlkZV9jcmVkcyhv
dmVycmlkZV9jcmVkKTsNCisjZW5kaWYNCisNCisjaWYgKExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCisgICAgcmV0ID0g
dmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2Fj
aGVyb290LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NS
RUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJICAmbmQpOw0KKyNlbHNl
DQorICAgIHJldCA9IHZmc19wYXRoX2xvb2t1cChubnBmc3AtPmNhY2hlZGly
LCBubnBmc3AtPmNhY2hlcm9vdCwNCisJCQkgIGNhY2hlbmFtZSwNCisJCQkg
IGZsYWdzICYgT19DUkVBVCA/IExPT0tVUF9QQVJFTlQgOiAwLA0KKwkJCSAg
Jm5kLnBhdGgpOw0KKyNlbmRpZg0KKyAgICAgaWYgKHJldCkgew0KIAl1aW50
MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3Qg
bWFzazsNCiANCkBAIC0zODcsMTYgKzQ0NywyNiBAQCBubnBmc19ibG9ja19v
cGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAo
ZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3Jl
YXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiAoTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0KIAlzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkgPSBsb29rdXBfY3JlYXRlKCZuZCwgMCk7CQ0KKyNlbHNl
DQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxsIHRvIGtlcm5fcGF0aF9jcmVh
dGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVudCBvcHRpb25hbD8gKi8NCisJ
c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9G
RENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkNCisjZW5kaWYNCiAJaWYgKElT
X0VSUihkZW50cnkpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGRlbnRyeSk7
DQogCX0gZWxzZSB7DQotCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLmRlbnRy
eS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsICZuZCk7DQor
I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkpDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5k
X2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxz
ZQ0KKwkgICAgLyogVE9ETzogc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRv
IHZmc19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQor
CSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2Rl
LCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2VuZGlmDQogCSAg
ICBkcHV0KGRlbnRyeSk7DQogCX0NCiANCi0JbXV0ZXhfdW5sb2NrKCZuZC5k
ZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KLQlwYXRoX3JlbGVhc2UoJm5k
KTsNCisJbXV0ZXhfdW5sb2NrKCZuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+
aV9tdXRleCk7DQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCiANCiAJaWYgKHJl
dCkgew0KIAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVh
dGUgZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MTAs
MTIgKzQ4MCwyMSBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19u
b2RlICpub2RlDQogCSAgICByZXQgPSBubnBmc19ibG9ja19leHRlbmQobm9k
ZSwgb2Zmc2V0KTsNCiAJfQ0KICAgICB9IGVsc2Ugew0KLQlzdHJ1Y3QgZmls
ZSAqZiA9IGRlbnRyeV9vcGVuKG5kLmRlbnRyeSwgbmQubW50LCBmbGFncyk7
DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMjkpKQ0KKwlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh
dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MpOw0KKyNlbHNlDQorI2lm
IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkp
DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh
dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgp
KTsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoID0geyAubW50ID0gbmQu
cGF0aC5tbnQsIC5kZW50cnkgPSBuZC5wYXRoLmRlbnRyeSB9Ow0KKyAgICAg
ICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbigmcGF0aCwgZmxhZ3Ms
IGN1cnJlbnRfY3JlZCgpKTsNCisjZW5kaWYNCisjZW5kaWYNCiAJaWYgKElT
X0VSUihmKSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsNCiAJICAgIHBy
aW50aygibm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWlsZWQ6ICVkXG4i
LCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVidWdfb29wcygp
Ow0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorCSAgICBwYXRoX3B1dCgm
bmQucGF0aCk7DQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0N
CkBAIC00MjQsOCArNTAzLDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0
IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMg
dXN1YWxseSBoYW5kbGVkIG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
CiAgICAgY3VycmVudC0+ZnN1aWQgPSBzYXZldWlkOw0KICAgICBjdXJyZW50
LT5mc2dpZCA9IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAgcmV2ZXJ0X2NyZWRz
KG9sZF9jcmVkKTsNCisgICAgcHV0X2NyZWQob3ZlcnJpZGVfY3JlZCk7DQor
I2VuZGlmDQogDQogICAgIHJldHVybiByZXQ7DQogfQ0KZGlmZiAtdXByTiAt
WG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2NvbW1v
bi5jIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfY29t
bW9uLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9u
LmMJMjAwNi0xMi0xMSAxNzozMTo0Ni4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5j
CTIwMTYtMDEtMTEgMjA6NDc6MjIuODc0NDA2MTc0ICswMTAwDQpAQCAtMTEy
LDEwICsxMTIsMTcgQEAgbm5wZnNfcHJpbnRfYWxpYXNlcyhjb25zdCBzdHJ1
Y3QgaW5vZGUgKg0KIHZvaWQNCiBubnBmc19wcmludF9hbGlhc2VzX3JlYWwo
Y29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIChMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkpDQogICAgIHN0
cnVjdCBsaXN0X2hlYWQgKmFsaWFzOw0KKyNlbHNlDQorI2lmIChMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkpDQorICAgIHN0
cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCisjZW5kaWYNCiAg
ICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9
IDEwMDsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKSkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnku
bmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkp
IHsNCiAJaWYgKC0tYmFpbG91dCA8IDApIHsNCkBAIC0xMzEsNiArMTM4LDI0
IEBAIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1Y3QgaW4N
CiAJfQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KICAgICB9DQorI2Vsc2UN
CisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
OSwwKSkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCBhbGlh
cywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAg
IGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRy
eSwgZF9hbGlhcykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkg
ew0KKwkgICAgcHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0K
KwlpZiAoZGVudHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChp
bnQpZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUu
bmFtZSwgZGVudHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFz
aGVkKCZkZW50cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCki
KTsNCisJfQ0KKyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsN
CiB9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5w
ZnMvbGludXgvbm5wZnNfZGV2LmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBm
cy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0IDE4OjMzOjM2LjAwMDAwMDAwMCAr
MDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5w
ZnNfZGV2LmMJMjAxNi0wMS0xMyAwMTowMDo1MS40ODY3MzMyODggKzAxMDAN
CkBAIC0zMDAsOCArMzAwLDEwIEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0
cnVjdCBubnBmcyAqbm5wZnMNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgi
ZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAg
c2hyaW5rX2RjYWNoZV9zYihubnBmcy0+c2IpOw0KKyNpZiAoTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KSkNCiAgICAgaW52
YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsNCi0gICAgDQorI2VuZGlmDQor
DQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZyZWVfYWxsX25ucGZzX25v
ZGVzIGRvbmVcbiIpKTsNCiB9DQogDQpAQCAtNTA1LDEyICs1MDcsMjMgQEAg
bm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0DQogLyoN
CiAgKiBOb3QgdXNlZC4NCiAgKi8NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikpDQogc3RhdGljIGludA0KIG5u
cGZzX2RldmlvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl
ICpmaWxlLA0KIAkgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQg
bG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9j
a2VkX2RldmlvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5z
aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQog
ew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM2KSkNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZp
b2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAgICBpbm9k
ZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5Q
RlNERUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxh
Z3MgPSAlZFxuIiwNCisJCSAgICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VuZGlmDQogICAgIHJl
dHVybiAtRUlOVkFMOw0KIH0NCiANCkBAIC05NTMsNyArOTY2LDExIEBAIHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcyA9IHsNCiAgICAgcmVh
ZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdyaXRlOgkJbm5wZnNfZGV2d3Jp
dGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZwb2xsLA0KKyNpZiAoTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkNCiAgICAg
aW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tl
ZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQog
ICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5u
cGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArOTg1LDE2IEBAIG5ucGZz
X2luaXRfZGV2aWNlKHZvaWQpDQogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJihu
bnBmc1tpXS53YWl0X3F1ZXVlKSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tp
XS5tZXNzYWdlcSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tpXS5zbGVlcHEp
Ow0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM3KSkNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uaW5hY3RpdmVfc2Vt
KTsNCisjZWxzZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmluYWN0aXZlX3Nl
bSwgMSk7DQorI2VuZGlmDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzcpKQ0KIAlpbml0X01VVEVYKCZubnBmc1tp
XS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9pbml0KCZubnBmc1tp
XS5jaGFubmVsX3NlbSwgMSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFE
KCZubnBmc1tpXS5pbmFjdGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVz
ID0gMDsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMgYXJsYS1mb3ItbGlu
dXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jDQotLS0gYXJs
YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJMjAwNi0xMi0x
MSAxNzozNToyNi4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51
eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJMjAxNi0wMS0x
MyAwMDo1MzoyMS43NTQ3MTgzMTYgKzAxMDANCkBAIC00MCw2ICs0MCw3IEBA
DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxu
bnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNf
c3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1
ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5o
Pg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQpAQCAtNDgsMTcgKzQ5
LDI5IEBADQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBS
Q1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAy
MDA2LzEyLzExIDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6
IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0
IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCiBubnBm
c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0K
IA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFsaWRhdGUoc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCk7DQot
DQorI2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKTsNCisj
ZW5kaWYNCisNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOCkpDQorc3RhdGljDQoraW50DQogbm5wZnNfZF9kZWxl
dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZWxzZQ0KK3N0YXRpYw0K
K2ludA0KK25ucGZzX2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRl
bnRyeSk7DQorI2VuZGlmDQogDQogc3RhdGljIHZvaWQNCiBubnBmc19kX3Jl
bGVhc2Uoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCkBAIC0xMDUsNyArMTE4
LDcgQEAgbm5wZnNfdm1hX2Nsb3NlIChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg
Kg0KIH0NCiANCiBzdGF0aWMgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0
IG5ucGZzX2ZpbGVfdm1fb3BzID0gew0KLSAgICAubm9wYWdlCT0gZmlsZW1h
cF9ub3BhZ2UsDQorICAgIC5mYXVsdCAgICAgID0gZmlsZW1hcF9mYXVsdCwN
CiAgICAgLmNsb3NlCT0gbm5wZnNfdm1hX2Nsb3NlLA0KIH07DQogDQpAQCAt
MTM0LDEyICsxNDcsMTQgQEAgbm5wZnNfcHJpbnRfcGF0aChzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpDQogICoNCiAgKi8NCiANCisjaWYgMA0KIHZvaWQNCiBu
bnBmc19wcmludF9sb2NrKGNoYXIgKnMsIHN0cnVjdCBzZW1hcGhvcmUgKnNl
bSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJMT0NLLCAoImxvY2s6ICVzIHNl
bTogJXAgY291bnQ6ICVkXG4iLA0KIAkJICAgICAgcywgc2VtLCAoaW50KWF0
b21pY19yZWFkKCZzZW0tPmNvdW50KSkpOw0KIH0NCisjZW5kaWYNCiANCiAv
Kg0KICAqDQpAQCAtMTg1LDcgKzIwMCw3IEBAIG5ucGZzX2RfaXB1dChzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksIHN0cnUNCiAgICAgTk5QRlNERUIoWERFQlZO
T1BTLA0KIAkgICAgICgibm5wZnNfZF9pcHV0OiBkZW50cnkgJXAsIGlub2Rl
ICVwXG4iLCBkZW50cnksIGlub2RlKSk7DQogICAgIA0KLSAgICBpZiAobm9k
ZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQVVQpIC8qIFhYWCBsb2NraW5nICov
DQorICAgIGlmIChub2RlLT5mbGFncyAmIE5OUEZTX05PREVfSVBVVCkgLyog
WFhYIGxvY2tpbmcuIG5ldmVyIHNldD8gKi8NCiAJbm5wZnNfaXJlbGUoaW5v
ZGUpOw0KICAgICBlbHNlDQogCWlwdXQoaW5vZGUpOw0KQEAgLTIxMiw4ICsy
MjcsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlub2RlICppbm9k
ZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJldHVybnMgYSBkZW50cnkuDQog
ICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkpDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZz
X2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMg
c3RydWN0IGRlbnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUg
KmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxh
Z3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9n
ZXRub2RlIG1zZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAt
MjQwLDcgKzI2MCwxMSBAQCBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAq
ZGlyLCBzdHJ1Y3QNCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19N
U0dfR0VUTk9ERTsNCiAgICAgICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQg
PSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9
IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLnBhcmVudF9oYW5kbGUgPSBkLT5o
YW5kbGU7DQogICAgICAgICANCkBAIC0zMTAsNyArMzM0LDExIEBAIG5ucGZz
X29wZW5fdmFsaWQoc3RydWN0IGlub2RlICp2cCwgdV9pbnQNCiAgICAgICB7
DQogCXN0cnVjdCBubnBmc19tZXNzYWdlX29wZW4gbXNnOw0KIAltc2cuaGVh
ZGVyLm9wY29kZSA9IE5OUEZTX01TR19PUEVOOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3Jl
ZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5j
cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVk
LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9IHhuLT5o
YW5kbGU7DQogCW1zZy50b2tlbnMgPSB0b2s7DQpAQCAtNDI1LDcgKzQ1Mywx
MSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50
DQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVERBVEE7
DQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJ
bXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAlt
c2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcgICA9IGZsYWc7
DQogCW1zZy5vZmZzZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs0OTIsMjkgQEAg
bm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2ludA0KICAq
DQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzUpKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhz
dHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQg
ZGF0YXN5bmMpDQorI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCitzdGF0aWMgaW50DQorbm5wZnNf
ZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxz
ZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmls
ZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQor
I2VuZGlmDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMiwgNiwgMzUpDQorICAgIHN0cnVjdCBkZW50
cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQorI2VuZGlmDQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVu
dHJ5KTsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVj
dCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisg
ICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lub2Rl
X3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gZXJy
b3I7DQpAQCAtNTExLDcgKzU1OCwxMSBAQCBubnBmc19hdHRyX3ZhbGlkKHN0
cnVjdCBpbm9kZSAqIHZwLCB1X2luDQogICAgICAgICAgICAgc3RydWN0IG5u
cGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNn
LmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg
ICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgp
Ow0KKyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsN
CiAgICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAg
ICAgICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1z
Zy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01NTEsNyArNjAyLDExIEBA
IG5ucGZzX3JpZ2h0c192YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgbm4NCiAg
ICAgICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRhdHRyIG1zZzsN
CiANCiAgICAgICAgICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01T
R19HRVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM
X1ZFUlNJT04oMiw2LDI4KQ0KICAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9
IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG1zZy5jcmVk
LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgICAgICAgICAg
bXNnLmNyZWQucGFnID0gcGFnOw0KICAgICAgICAgICAgIG1zZy5oYW5kbGUg
PSB4bi0+aGFuZGxlOw0KICAgICAgICAgICAgIGVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K
QEAgLTU5MiwxMSArNjQ3LDI4IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmln
aHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXgu
DQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigzLDEsMCkpDQorc3RhdGljIGludA0KK25ucGZzX3Blcm1p
c3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UN
CiBzdGF0aWMgaW50DQotbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorbm5w
ZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwg
dW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVy
cm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3Bh
ZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorICAgIC8qIFRPRE86IHZl
cmlmeSB0aGUgdXNlIG9mIElQRVJNX0ZMQUdfUkNVIGFuZCBNQVlfTk9UX0JM
T0NLICovDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF
UlNJT04oMiw2LDM4KSkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMSwwKSkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1f
RkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZWxzZQ0K
KyAgICBpZiAobW9kZSAmIE1BWV9OT1RfQkxPQ0spDQorICAgICAgICByZXR1
cm4gLUVDSElMRDsNCisjZW5kaWYNCisjZW5kaWYNCisNCisgICAgcGFnID0g
bm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZO
T1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoi
LCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlu
b2RlKTsNCkBAIC02MzYsNyArNzA4LDExIEBAIG5ucGZzX2RvX2dldGRhdGEo
c3RydWN0IG5ucGZzX25vZGUgKnhuLA0KICAgICBpbnQgZXJyb3I7DQogDQog
ICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVERBVEE7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxz
ZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp
Zg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAg
IG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBtc2cudG9rZW5zID0g
dG9rOw0KQEAgLTc4OSwxOSArODY1LDIyIEBAIGludCBubnBmc19maWxlX21t
YXAoc3RydWN0IGZpbGUgKiBmaWxlLA0KICAqDQogICovDQogDQorI2lmIChM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApKQ0K
IHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2Ni
ICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF
UlNJT04oMiw2LDE5KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0IGlvdmVjICpp
b3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJICAgICAgIGxvZmZfdCBw
b3MpDQogI2Vsc2UNCi0JICAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVf
dCBjb3VudCwNCitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3JlYWRfaXRlcihz
dHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pDQogI2Vu
ZGlmDQotCSAgICAgICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9y
ID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxw
Ow0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o
Miw2LDE5KQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxMiwwKSkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtp
X2xlZnQ7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtp
X25ieXRlczsNCiAjZW5kaWYNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9
IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNf
bm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQpAQCAtODEwLDE2
ICs4ODksMjAgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2Ni
LA0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVw
KTogdG9rZW5zOiAweCV4XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tl
bnMpKTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTYsMCkpDQogICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxp
ZChpbm9kZSwgTk5QRlNfREFUQV9SLCBwb3MsIHBvcyArIGNvdW50KTsNCisj
ZWxzZQ0KKyAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUsIE5O
UEZTX0RBVEFfUiwgaW9jYi0+a2lfcG9zLCBpb2NiLT5raV9wb3MgKyBjb3Vu
dCk7DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikgew0KIAlOTlBGU0RFQihY
REVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlOiBkYXRhIG5vdCB2YWxpZCAl
ZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVycm9yOw0KICAgICB9DQotICAg
IA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o
Miw2LDE5KQ0KKw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNiwwKSkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVf
YWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQot
ICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlvY2IsIGJ1Ziwg
Y291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3JlYWRf
aXRlcihpb2NiLCB0byk7DQogI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9y
KSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC04MjksMjMgKzkxMiwzMCBA
QCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICoNCiAg
Ki8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTYsMCkpDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fd3Jp
dGUoc3RydWN0IGtpb2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KIAkJY29uc3Qgc3RydWN0
IGlvdmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJCWxvZmZf
dCBwb3MpDQogI2Vsc2UNCi0JCWNvbnN0IGNoYXIgX191c2VyICpidWYsIHNp
emVfdCBjb3VudCwgDQorc3RhdGljIHNzaXplX3QNCitubnBmc193cml0ZV9p
dGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9t
KQ0KICNlbmRpZg0KLQkJbG9mZl90IHBvcykNCiB7DQogICAgIGludCBlcnJv
ciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmls
cDsNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDIsNiwxOSkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTIsMCkpDQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5r
aV9sZWZ0Ow0KKyNlbHNlDQorICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5r
aV9uYnl0ZXM7DQogI2VuZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg
PSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZz
X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKSkNCiAg
ICAgbG9mZl90IHJlYWxwb3MgPSBwb3M7DQorI2Vsc2UNCisgICAgbG9mZl90
IHJlYWxwb3MgPSBpb2NiLT5raV9wb3M7DQorI2VuZGlmDQogICAgIA0KICAg
ICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWlvX3dyaXRlKCVwKTog
dG9rZW5zOiAweCV4XG4iLA0KIAkJCSBpbm9kZSwgeG4tPnRva2VucykpOw0K
QEAgLTg1OSwxMCArOTQ5LDEwIEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qg
a2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KLSNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5
KQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNiwwKSkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRl
KGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCiAjZWxzZQ0KLSAgICBlcnJv
ciA9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgYnVmLCBjb3VudCwg
cG9zKTsNCisgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfd3JpdGVfaXRlcihp
b2NiLCBmcm9tKTsNCiAjZW5kaWYNCiAgICAgaWYgKCFJU19FUlJfVkFMVUUo
ZXJyb3IpKQ0KIAl4bi0+ZmxhZ3MgfD0gTk5QRlNfREFUQV9ESVJUWTsgLyog
WFhYIHJhY2UgKi8NCkBAIC04NzEsOSArOTYxLDIxIEBAIG5ucGZzX2Fpb193
cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICAgIHJldHVybiBlcnJvcjsN
CiB9DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDMsMCkpDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1
Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg
IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KKyNp
ZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
KQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpk
aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1v
ZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGlu
dA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwgYm9vbCBleGNs
KQ0KKyNlbmRpZg0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpu
bnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC05MDMs
OSArMTAwNSwxNyBAQCBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIs
IHN0cnVjdCBkDQogICAgIFhBX0NMRUFSKCZtc2cuYXR0cik7DQogICAgIFhB
X1NFVF9NT0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogICAgIFhBX1NFVF9UWVBF
KCZtc2cuYXR0ciwgTk5QRlNfRklMRV9SRUcpOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBYQV9T
RVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNlDQor
ICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0K
KyNlbmRpZg0KICAgICBtc2cubW9kZSA9IDA7CQkvKiBYWFggKi8NCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
CiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQor
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQog
ICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJy
b3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBz
aXplb2YobXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk0Niw3
ICsxMDU2LDExIEBAIG5ucGZzX3VubGluayAoc3RydWN0IGlub2RlICogZGly
LCBzdHJ1Y3QNCiAgICAgaWYgKHN0cmxjcHkobXNnLm5hbWUsIGRlbnRyeS0+
ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9O
QU1FKQ0KIAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1z
Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBu
bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2Yo
bXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk5MSw3ICsxMTA1
LDExIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwg
c3QNCiAgICAgaWYgKHN0cmxjcHkobXNnLm5ld19uYW1lLCBuZXdfZGVudHJ5
LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1zZy5uZXdfbmFtZSkpID49IE5OUEZT
X01BWF9OQU1FKQ0KIAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiAJDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp
DQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0K
KyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
ICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVy
cm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwg
c2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMDA4
LDggKzExMjYsMTMgQEAgbm5wZnNfcmVuYW1lIChzdHJ1Y3QgaW5vZGUgKiBv
bGRfZGlyLCBzdA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiAo
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApKQ0K
IHN0YXRpYyBpbnQNCiBubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIs
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUpDQorI2Vsc2UNCitz
dGF0aWMgaW50DQorbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkNCisjZW5kaWYN
CiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG47DQpAQCAtMTA0MCw5ICsxMTYzLDE3IEBAIG5ucGZz
X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAJWEFfQ0xF
QVIoJm1zZy5hdHRyKTsNCiAJWEFfU0VUX01PREUoJm1zZy5hdHRyLCBtb2Rl
KTsNCiAJWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0RJUik7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dp
ZCk7DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBj
dXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3Jl
ZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5j
cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVk
LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNz
YWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQog
CWlmIChlcnJvciA9PSAwKQ0KQEAgLTEwODMsNyArMTIxNCwxMSBAQCBubnBm
c19ybWRpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogICAgIG1z
Zy5wYXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgaWYgKHN0cmxj
cHkobXNnLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cu
bmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkgICAgcmV0dXJuIC1FTkFN
RVRPT0xPTkc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt
PnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3Vp
ZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRf
cGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw
LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3Ig
PT0gMCkNCkBAIC0xMTI4LDcgKzEyNjMsMTEgQEAgc3RhdGljIGludCBubnBm
c19saW5rKHN0cnVjdCBkZW50cnkgKm9sZA0KIAlpZiAoc3RybGNweShtc2cu
bmFtZSwgbmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05B
TUUpDQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJ
bXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAlt
c2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5w
ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1z
ZykpOw0KIAlpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMTU3LDI5ICsxMjk2LDQ3
IEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQN
CiAgICAgeG4gPSBWTk9ERV9UT19YTk9ERShkaXIpOw0KIA0KICAgICB7DQot
CXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxpbmsgbXNnOw0KKwlzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9zeW1saW5rICptc2cgPSBOVUxMOw0KIA0KLQltc2cu
aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KLQltc2cucGFy
ZW50X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQotCWlmIChzdHJsY3B5KG1zZy5u
YW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFN
RSkNCi0JICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KLQlpZiAoc3RybGNw
eShtc2cuY29udGVudHMsIHN5bW5hbWUsIHNpemVvZihtc2cuY29udGVudHMp
KSA+PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5UKQ0KLQkgICAgcmV0dXJu
IC1FTkFNRVRPT0xPTkc7DQotCVhBX0NMRUFSKCZtc2cuYXR0cik7DQotCVhB
X1NFVF9NT0RFKCZtc2cuYXR0ciwgMDc3Nyk7DQotCVhBX1NFVF9UWVBFKCZt
c2cuYXR0ciwgTk5QRlNfRklMRV9MTkspOw0KLQlYQV9TRVRfR0lEKCZtc2cu
YXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKwltc2cgPSBrbWFsbG9jKHNpemVv
ZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQogDQotCW1zZy5jcmVkLnVpZCA9IGN1
cnJlbnQtPnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygp
Ow0KLQllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsNCisJaWYgKG1zZyA9PSBOVUxMKQ0KKwkg
IHJldHVybiAtRU5PTUVNOw0KKw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBO
TlBGU19NU0dfU1lNTElOSzsNCisJbXNnLT5wYXJlbnRfaGFuZGxlID0geG4t
PmhhbmRsZTsNCisJaWYgKHN0cmxjcHkobXNnLT5uYW1lLCBuYW1lLCBzaXpl
b2YobXNnLT5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpIHsNCisJICBrZnJl
ZShtc2cpOw0KKwkgIHJldHVybiAtRU5BTUVUT09MT05HOw0KKwl9DQorCWlm
IChzdHJsY3B5KG1zZy0+Y29udGVudHMsIHN5bW5hbWUsIHNpemVvZihtc2ct
PmNvbnRlbnRzKSkgPj0gTk5QRlNfTUFYX1NZTUxJTktfQ09OVEVOVCkgew0K
KwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQor
CX0NCisJWEFfQ0xFQVIoJm1zZy0+YXR0cik7DQorCVhBX1NFVF9NT0RFKCZt
c2ctPmF0dHIsIDA3NzcpOw0KKwlYQV9TRVRfVFlQRSgmbXNnLT5hdHRyLCBO
TlBGU19GSUxFX0xOSyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQorCVhBX1NFVF9HSUQoJm1zZy0+YXR0
ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNlDQorICAgICAgICBYQV9TRVRf
R0lEKCZtc2ctPmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQor
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQorCW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KKwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K
KwllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy0+aGVh
ZGVyLCBzaXplb2YoKm1zZykpOw0KIAlpZiAoZXJyb3IgPT0gMCkNCi0JICAg
IGVycm9yID0gTk5QRlNfTVNHX1dBS0VVUF9FUlJPUigmbXNnKTsNCisJICAg
IGVycm9yID0gTk5QRlNfTVNHX1dBS0VVUF9FUlJPUihtc2cpOw0KIA0KIAkv
KiBYWFggc2hvdWxkIHRoaXMgcmVhbGx5IGJlIGhlcmUgKi8NCiAJaWYgKERF
TlRSWV9UT19YREVOVFJZKGRlbnRyeSktPnhkX2ZsYWdzID09IDApIHsNCiAJ
ICAgIHByaW50ayhLRVJOX0VNRVJHICJOTlBGUyBQYW5pYzogbm5wZnNfc3lt
bGluazogZGVudHJ5IG5vdCB2YWxpZFxuIik7DQogCX0NCisJa2ZyZWUobXNn
KTsNCiAgICAgfQ0KIA0KICAgICByZXR1cm4gZXJyb3I7DQpAQCAtMTE4OCw4
ICsxMzQ1LDEzIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3Qg
aW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4NCiAgKi8NCisj
aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs
MCkpDQogc3RhdGljIGludA0KIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUg
KiBmaWxlLCB2b2lkICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCisj
ZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19pdGVyYXRlKHN0cnVjdCBmaWxl
ICogZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpDQorI2VuZGlmDQog
ew0KICAgICBpbnQgZXJyb3I7DQogICAgIGxvZmZfdCBvZmZzZXQsIGJlZ2lu
X29mZnNldDsNCkBAIC0xMjY0LDYgKzE0MjYsNyBAQCBubnBmc19yZWFkZGly
KHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkgeGRp
cmVudC0+ZF9uYW1sZW4sDQogCQkgICAgKGludCkgKG9mZnNldCtiZWdpbl9v
ZmZzZXQpKSk7DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDExLDApKQ0KIAkgICAgaWYgKHhkaXJlbnQtPmRfZmls
ZW5vICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRpciAoZGly
ZW50LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0xMjc1LDYg
KzE0MzgsMTggQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUs
IHZvaWQgKg0KIAkJCSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIs
IGZpbGxkaXJfZXJyb3IpKTsNCiAJCWJyZWFrOw0KIAkgICAgfQ0KKyNlbHNl
DQorCSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0KKwkJJiYgKGZp
bGxkaXJfZXJyb3IgPSBkaXJfZW1pdCAoY3R4LA0KKwkJCQkgICAgIHhkaXJl
bnQtPmRfbmFtZSwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWxlbiwNCisJ
CQkJICAgICB4ZGlyZW50LT5kX2ZpbGVubywNCisJCQkJICAgICBEVF9VTktO
T1dOKSkgPCAwKSB7DQorCQlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJCQkg
KCJubnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9y
KSk7DQorCQlicmVhazsNCisJICAgIH0NCisjZW5kaWYNCiAJICAgIG9mZnNl
dCArPSB4ZGlyZW50LT5kX3JlY2xlbjsNCiANCiAJICAgIGlmICh4ZGlyZW50
LT5kX3JlY2xlbiA9PSAwKSB7DQpAQCAtMTM5OCw3ICsxNTczLDExIEBAIG5u
cGZzX3NldGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3QNCiAgICAg
ICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3B1dGF0dHIgbXNnOw0KIA0KICAg
ICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUFVUQVRUUjsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNl
bmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAg
ICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgIG5ucGZz
X2lhdHRyMmF0dHIoeG4sIGF0dHIsICZtc2cuYXR0cik7DQpAQCAtMTQyMiw2
ICsxNjAxLDggQEAgbm5wZnNfcmVsZWFzZV9maWxlIChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLA0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAgIGlu
dCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAgICAg
Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlbGVhc2VfZmlsZVxuIikp
Ow0KIA0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2RlKTsN
CkBAIC0xNDUwLDEzICsxNjMxLDggQEAgbm5wZnNfcmVsZWFzZV9maWxlIChz
dHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAqDQogICovDQogDQotI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQogc3Rh
dGljIGludA0KIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlLCBmbF9v
d25lcl90IGlkKQ0KLSNlbHNlDQotc3RhdGljIGludA0KLW5ucGZzX2ZsdXNo
KHN0cnVjdCBmaWxlICpmaWxlKQ0KLSNlbmRpZg0KIHsNCiAgICAgTk5QRlNE
RUIoWERFQlZOT1BTLCAoIm5ucGZzX2ZsdXNoXG4iKSk7DQogDQpAQCAtMTQ3
MCw4ICsxNjQ2LDEzIEBAIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxl
KQ0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBv
dGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkNCitzdGF0aWMgaW50DQorbm5w
ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0
IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQotbm5wZnNf
ZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5h
bWVpZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7
DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUo
ZGVudHJ5KTsNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Rf
cmV2YWxpZGF0ZSAlcCBcIiUuKnNcIiAoaW5vZGUgJXApXG4iLA0KQEAgLTE1
MTksOSArMTcwMCwxNSBAQCBubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRl
bnRyeSAqZGVudHJ5DQogICAgIHJldHVybiAwOw0KIH0NCiANCisjaWYgKExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpDQog
c3RhdGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxl
dGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZg0KIHsN
CiAgICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3RydWN0IG5ucGZz
X25vZGUgKnhuOw0KQEAgLTE1NDYsOCArMTczMyw5IEBAIG5ucGZzX2RfZGVs
ZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB9DQogDQogc3RhdGljIHNz
aXplX3QNCi1ubnBmc19zZW5kZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9m
Zl90ICpwcG9zLCBzaXplX3QgY291bnQsDQotCSAgICAgICByZWFkX2FjdG9y
X3QgYWN0b3IsIHZvaWQgKnRhcmdldCkNCitubnBmc19zcGxpY2VfcmVhZChz
dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLA0KKwkJICBzdHJ1Y3Qg
cGlwZV9pbm9kZV9pbmZvICpwaXBlLCBzaXplX3QgY291bnQsDQorCQkgIHVu
c2lnbmVkIGludCBmbGFncykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZTsNCkBAIC0xNTYxLDggKzE3NDksNyBAQCBubnBmc19zZW5kZmlsZShz
dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90DQogCU5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19zZW5kZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVy
cm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KLQ0KLSAgICBlcnJv
ciA9IGdlbmVyaWNfZmlsZV9zZW5kZmlsZShmaWxlLCBwcG9zLCBjb3VudCwg
YWN0b3IsIHRhcmdldCk7DQorICAgIGVycm9yID0gZmlsZS0+Zl9vcC0+c3Bs
aWNlX3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZsYWdzKTsNCiAN
CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRmaWxlOiBl
cnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4gZXJyb3I7DQpA
QCAtMTYzOSwzNCArMTgyNiwzMSBAQCBubnBmc193cml0ZV9iYWNrcGFnZShz
dHJ1Y3QgcGFnZSAqcGFnZSwNCiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h
cHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25lZCBsZW4g
PSBQQUdFX0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsN
CisJdm9pZCAqZnNkYXRhOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiAN
CiAJaW50IGVycm9yOw0KLQkNCi0JZG8gew0KLQkJYmFja3BhZ2UgPSBncmFi
X2NhY2hlX3BhZ2UobWFwcGluZywgbm5wZnNfZ2V0X2JhY2tpbmRleChwYWdl
KSk7DQotCQlpZiAoIWJhY2twYWdlKSB7DQotCQkJcHJpbnRrKCJubnBmc193
cml0ZV9iYWNrcGFnZTogbm8gcGFnZVxuIik7DQotCQkJcmV0dXJuIC1FSU87
DQotCQl9DQogDQotCQllcnJvciA9IG1hcHBpbmctPmFfb3BzLT5wcmVwYXJl
X3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJCQkgICAgICAwLCBs
ZW4pOw0KKwkodm9pZClvZmZzZXQ7DQorDQorCWRvIHsNCisJCWVycm9yID0g
cGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBs
ZW4sDQorCQkJCQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQor
CQkJCQkgICAgICAmYmFja3BhZ2UsICZmc2RhdGEpOw0KIAkJaWYgKCFlcnJv
cikgew0KIAkJCWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2UpOw0KIAkJ
CWZsdXNoX2RjYWNoZV9wYWdlKGJhY2twYWdlKTsNCi0JCQllcnJvciA9IG1h
cHBpbmctPmFfb3BzLT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdl
LA0KLQkJCQkJCQkgICAgIDAsIGxlbik7DQorCQkJZXJyb3IgPSBwYWdlY2Fj
aGVfd3JpdGVfZW5kKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJ
CQlsZW4sIGJhY2twYWdlLCBmc2RhdGEpOw0KKwkJCWlmIChlcnJvciA+IDAp
DQorCQkJCWVycm9yID0gMDsNCiAJCX0NCiAJCWlmIChlcnJvciA9PSBBT1Bf
VFJVTkNBVEVEX1BBR0UpIHsNCi0JCQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFj
a3BhZ2UpOw0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxlICgwKTsN
CiANCiAJb2Zmc2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0KLQl1bmxv
Y2tfcGFnZShiYWNrcGFnZSk7DQotCXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNr
cGFnZSk7DQogDQogCWlmIChlcnJvcikNCiAJCXByaW50aygibm5wZnNfd3Jp
dGVfYmFja3BhZ2U6IEVJT1xuIik7DQpAQCAtMTY4OSwxMyArMTg3Myw5IEBA
IG5ucGZzX3JlYWRfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJ
c3RydWN0IHBhZ2UgKmJhY2twYWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNl
dDsNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwxOCkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAliYWNrcGFnZSA9
IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBpbmcsIG4sIGJhY2tmaWxlKTsNCi0j
ZWxzZQ0KLQliYWNrcGFnZSA9IHJlYWRfY2FjaGVfcGFnZShtYXBwaW5nLCBu
LA0KLQkJCQkgICAoZmlsbGVyX3QgKiltYXBwaW5nLT5hX29wcy0+cmVhZHBh
Z2UsDQotCQkJCSAgIGJhY2tmaWxlKTsNCi0jZW5kaWYNCiAJaWYgKCFJU19F
UlIoYmFja3BhZ2UpKSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2tw
YWdlKTsNCiANCkBAIC0xODQxLDEyICsyMDIxLDE4IEBAIG5ucGZzX3ByZXBh
cmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiAJCW1vZHNpemUgPSBu
bnBmc19ibG9ja3NpemU7DQogDQogCWlmIChtb2RzaXplID4gaV9zaXplX3Jl
YWQoaW5vZGUpKSB7DQotCQlpbnQgZXJyb3I7DQorCQlpbnQgZXJyb3I9MDsN
CisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
OCwwKSkNCiAJCWVycm9yID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7
DQorI2Vsc2UNCisJCWlmKCFpbm9kZV9uZXdzaXplX29rKGlub2RlLCBtb2Rz
aXplKSkgew0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIG1vZHNpemUp
Ow0KKwkJfQ0KKyNlbmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJpbnRr
KCJubnBmc19wcmVwYXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAlZFxu
IiwNCiAJCQkgICAgICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUcoKTsg
LyogWFhYIG5vdCBjb3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBYWFgg
bm90IGNvcnJlY3QgKi8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE4NzIsOCArMjA1
OCwzNyBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl
LCBzDQogCXJldHVybiByZXQ7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKw0KIHN0YXRpYyBp
bnQNCi1ubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0
cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykN
CitubnBmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0
IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQordW5zaWdu
ZWQgbGVuLCB1bnNpZ25lZCBmbGFncywgc3RydWN0IHBhZ2UgKipwYWdlcCwg
dm9pZCAqKmZzZGF0YSkNCit7DQorCXN0cnVjdCBwYWdlICpwYWdlOw0KKwlw
Z29mZl90IGluZGV4Ow0KKwl1bnNpZ25lZCBmcm9tOw0KKw0KKwlpbmRleCA9
IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKwlmcm9tID0gcG9zICYgKFBB
R0VfQ0FDSEVfU0laRSAtIDEpOw0KKw0KKyNpZmRlZiBBT1BfRkxBR19OT0ZT
DQorCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2Vfd3JpdGVfYmVnaW4obWFwcGlu
ZywgaW5kZXgsIGZsYWdzKTsNCisjZWxzZQ0KKwlwYWdlID0gX19ncmFiX2Nh
Y2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOw0KKyNlbmRpZg0KKwlpZiAocGFn
ZSA9PSBOVUxMKQ0KKwkJcmV0dXJuIC1FTk9NRU07DQorDQorCSpwYWdlcCA9
IHBhZ2U7DQorDQorCXJldHVybiBubnBmc19wcmVwYXJlX3dyaXRlKGZpbGUs
IHBhZ2UsIGZyb20sIGZyb20gKyBsZW4pOw0KK30NCisNCisjZW5kaWYNCisN
CitzdGF0aWMgaW50DQorbm5wZnNfY29tbWl0X3dyaXRlKHN0cnVjdCBmaWxl
ICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwNCisJCSAgIHVuc2lnbmVkIGZy
b20sIHVuc2lnbmVkIHRvKQ0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9k
ZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7DQogICAgIGxvZmZfdCBwb3MgPSAo
KGxvZmZfdClwYWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUKSArIHRv
Ow0KQEAgLTE5MDIsMTQgKzIxMTcsNTEgQEAgbm5wZnNfY29tbWl0X3dyaXRl
KHN0cnVjdCBmaWxlICpmaWxlLCBzdA0KICAgICByZXR1cm4gMDsNCiB9DQog
DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMTgpDQotY29uc3QNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5wZnNf
d3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z
cGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCisJCXVuc2lnbmVkIGxlbiwg
dW5zaWduZWQgY29waWVkLCBzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNk
YXRhKQ0KK3sNCisJdW5zaWduZWQgZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hF
X1NJWkUgLSAxKTsNCisNCisJLyogemVybyB0aGUgc3RhbGUgcGFydCBvZiB0
aGUgcGFnZSBpZiB3ZSBkaWQgYSBzaG9ydCBjb3B5ICovDQorCWlmIChjb3Bp
ZWQgPCBsZW4pIHsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNiwwKSkNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9t
aWMocGFnZSwgS01fVVNFUjApOw0KKyNlbHNlDQorCQl2b2lkICprYWRkciA9
IGttYXBfYXRvbWljKHBhZ2UpOw0KKyNlbmRpZg0KKwkJbWVtc2V0KGthZGRy
ICsgZnJvbSArIGNvcGllZCwgMCwgbGVuIC0gY29waWVkKTsNCisJCWZsdXNo
X2RjYWNoZV9wYWdlKHBhZ2UpOw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KKwkJa3VubWFwX2F0b21pYyhr
YWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGth
ZGRyKTsNCisjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19jb21taXRfd3JpdGUo
ZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQorDQorCXVubG9j
a19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQor
DQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKw0KICNlbmRpZg0KKw0KK2NvbnN0
DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hb3Bz
ID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwNCiAJLndyaXRl
cGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFyZV93cml0
ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQogCS5jb21taXRfd3JpdGUgPSBu
bnBmc19jb21taXRfd3JpdGUsDQorI2Vsc2UNCisJLndyaXRlX2JlZ2luID0g
bm5wZnNfd3JpdGVfYmVnaW4sDQorCS53cml0ZV9lbmQgPSBubnBmc193cml0
ZV9lbmQsDQorI2VuZGlmDQogfTsNCiANCiAvKg0KQEAgLTE5MTcsMjEgKzIx
NjksMzAgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBm
c19hbw0KICAqLw0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNf
ZmlsZV9vcGVyYXRpb25zID0gew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKSkNCiAgICAgLmFpb19yZWFkCT0g
bm5wZnNfYWlvX3JlYWQsDQogICAgIC5haW9fd3JpdGUJPSBubnBmc19haW9f
d3JpdGUsDQorI2Vsc2UNCisgICAgLnJlYWRfaXRlcgk9IG5ucGZzX3JlYWRf
aXRlciwNCisgICAgLndyaXRlX2l0ZXIJPSBubnBmc193cml0ZV9pdGVyLA0K
KyNlbmRpZg0KICAgICAubW1hcAk9IG5ucGZzX2ZpbGVfbW1hcCwNCiAgICAg
Lm9wZW4JPSBubnBmc19vcGVuLA0KICAgICAuZmx1c2gJPSBubnBmc19mbHVz
aCwNCiAgICAgLnJlbGVhc2UJPSBubnBmc19yZWxlYXNlX2ZpbGUsDQogICAg
IC5mc3luYwk9IG5ucGZzX2ZzeW5jLA0KLSAgICAuc2VuZGZpbGUJPSBubnBm
c19zZW5kZmlsZSwNCisgICAgLnNwbGljZV9yZWFkID0gbm5wZnNfc3BsaWNl
X3JlYWQsDQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZz
X2RlYWRfb3BlcmF0aW9ucyA9IHsNCiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29w
ZXJhdGlvbnMgbm5wZnNfZGlyX29wZXJhdGlvbnMgPSB7DQorI2lmIChMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApKQ0KICAg
ICAucmVhZGRpcgk9IG5ucGZzX3JlYWRkaXIsDQorI2Vsc2UNCisgICAgLml0
ZXJhdGUgICAgPSBubnBmc19pdGVyYXRlLA0KKyNlbmRpZg0KICAgICAuZmx1
c2gJPSBubnBmc19mbHVzaCwNCiB9Ow0KIA0KZGlmZiAtdXByTiAtWG5vZGlm
Zi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYyBhcmxh
LWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0t
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0xMC0z
MSAxMTowMjo0MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51
eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEwIDIw
OjMzOjE2LjA2MjkwMTk1NyArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4
dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBz
dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAg
ICAgICBuYW1lOiAgICAgICAgICAgIm5ucGZzIiwNCisjaWYgKExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogICAgICAg
IGdldF9zYjogICAgICAgICBubnBmc19nZXRfc2IsDQorI2Vsc2UNCisgICAg
ICAgbW91bnQ6ICAgICAgICAgIG5ucGZzX21vdW50LA0KKyNlbmRpZg0KICAg
ICAgICBraWxsX3NiOiAgICAgICAga2lsbF9saXR0ZXJfc3VwZXIsDQogICAg
ICAgIG93bmVyOiAgICAgICAgICBUSElTX01PRFVMRSwNCiB9Ow0KZGlmZiAt
dXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz
X21lc3NhZ2UuYyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25u
cGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
c19tZXNzYWdlLmMJMjAwNy0wMS0wOSAxNzozMzozMS4wMDAwMDAwMDAgKzAx
MDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZz
X21lc3NhZ2UuYwkyMDE2LTAxLTExIDIwOjQ4OjE4Ljc3MDQwMzcxNSArMDEw
MA0KQEAgLTQ1LDcgKzQ1LDcgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQu
aD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc19tZXNz
YWdlLmMsdiAxLjE0My4yLjEgMjAwNy8wMS8wOSAxNjozMzozMSB0b2wgRXhw
ICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19tZXNzYWdlLmMsdiAxLjE0NSAy
MDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0K
IHN0YXRpYyB2b2lkDQpAQCAtNTUsOSArNTUsMTUgQEAgc3RhdGljIHZvaWQN
CiBubnBmc19kX3JlbW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogew0K
ICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX2RfcmVtb3ZlICVwXG4i
LCBkZW50cnkpKTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzOCkpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xv
Y2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBzcGluX3Vu
bG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygm
ZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRyeSk7DQor
ICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQorI2VuZGlmDQog
ICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7DQogfQ0K
QEAgLTEyMSw4ICsxMjcsMTQgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9k
ZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRpLCAqaW5v
ZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7DQogICAg
IHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkICphbGlhczsNCi0gICAgDQorI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKSkNCisgICAgc3RydWN0
IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KKyNlbmRpZg0KKw0KICAg
ICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5v
ZGVcbiIpKTsNCiAgICAgDQogICAgIGVycm9yID0gbm5wZnNfbm9kZV9maW5k
KG5ucGZzcCwgJm1lc3NhZ2UtPnBhcmVudF9oYW5kbGUsICZkcCk7DQpAQCAt
MTc2LDEyICsxODgsMjYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShz
dHJ1Y3Qgbm5wZnMgKg0KICAgICAgKg0KICAgICAgKi8NCiAgICAgDQorI2lm
IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkp
DQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxl
IChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxpc3Rf
ZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlzcGlu
X2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50KTsN
Ci0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyNpZiAo
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApKQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAmZGkt
PmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9y
X2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7
DQorI2VuZGlmDQorI2VuZGlmDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KKyAgICBzcGluX2xvY2soJmRj
YWNoZV9sb2NrKTsNCisgICAgZGdldF9sb2NrZWQocGFyZW50KTsNCisgICAg
c3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGlu
X2xvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhwYXJl
bnQpOw0KKyAgICBzcGluX3VubG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyNl
bmRpZg0KIAlkZW50cnkgPSBkX2xvb2t1cChwYXJlbnQsICZzcXN0cik7DQog
CU5OUEZTREVCKFhERUJNU0csDQogCQkgKCJubnBmc19tZXNzYWdlX2luc3Rh
bGxub2RlOiBhbGlhcyAlcCwgbG9va3VwICVwXG4iLA0KQEAgLTIzMyw3ICsy
NTksOSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBm
cyAqDQogCQ0KIAlkcHV0KGRlbnRyeSk7DQogCWRlbnRyeSA9IE5VTEw7DQor
I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkpDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogCWRwdXQo
cGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5u
cGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFsbGluZ1xuIikp
Ow0KQEAgLTI2OCw3ICsyOTYsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxs
YXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAgIGlub2RlID0g
WE5PREVfVE9fVk5PREUodCk7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkpDQogICAgIGRlbnRyeSA9IGxpc3Rf
ZW50cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRf
YWxpYXMpOw0KKyNlbHNlDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlu
b2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7
DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5u
cGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJCSAgICAg
ICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0MjgsMzgg
QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0K
IHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0IGRlbnRy
eSAqZGVudHJ5Ow0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlh
czsNCisjZWxzZQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw5LDApKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxp
YXM7DQorI2VuZGlmDQorI2VuZGlmDQogDQogIGFnYWluOg0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkNCiAg
ICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyog
VE9ETzogZmluZCB0aGUgZGVudHJ5IHRvIGxvY2sgKi8NCisgICAgLypzcGlu
X2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KICAg
ICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAo
YWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KLQlzdHJ1Y3QgZGVudHJ5
ICpkZW50cnk7DQorI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsOSwwKSkNCisgICAgaGxpc3RfZm9yX2VhY2hf
ZW50cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlh
cykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRy
eSwgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbmRpZg0KKyNl
bmRpZg0KIAlzdHJ1Y3QgbGlzdF9oZWFkICpzdWJkaXJzOw0KIAlzdHJ1Y3Qg
bm5wZnNfZGVudHJ5X2RhdGEgKnhkOw0KIAkNCisjaWYgKExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkNCiAJZGVudHJ5ID0g
bGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQor
I2VuZGlmDQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRr
KEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlz
dCBpcyBudWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQ0MiwxNCArNDk1
LDI2IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9k
ZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBp
ZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIChMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KIAkgICAg
ICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisJCS8q
IFRPRE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorCQkvKnNwaW5fdW5sb2Nr
KCZkZW50cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiAJCW5ucGZzX2RfcmVt
b3ZlKGNoaWxkKTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0NCisj
aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KSkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAgICAgfQ0K
KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM4KSkNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz
ZQ0KKyAgICAvKiBUT0RPOiB1bmxvY2sgdGhlIGRlbnRyeSAqLw0KKyAgICAv
KnNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiB9
DQogDQogc3RhdGljIHZvaWQNCkBAIC02MDUsMTIgKzY3MCwxMCBAQCBnY19i
bG9jayhzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCwNCiAgICAgfQ0KIA0KICAgICBp
ZiAoIW5ucGZzX2Jsb2NrX2hhdmVfcCh4biwgb2Zmc2V0KSkgew0KLSNpZiAw
ICAgLyogaGFwcGVucyB3aGVuIGRhZW1vbiBzZW5kcyBzZXZlcmFsIG1lc3Nh
Z2VzIGZvciBzYW1lIGJsb2NrICovDQogCXByaW50ayhLRVJOX0VNRVJHICJO
TlBGUy9nY19ibG9jazogIg0KIAkgICAgICAgIkVOT0VOVCAoJWQsJWQsJWQs
JWQpIDB4JWxseFxuIiwgDQogCSAgICAgICB4bi0+aGFuZGxlLmEsIHhuLT5o
YW5kbGUuYiwgeG4tPmhhbmRsZS5jLCB4bi0+aGFuZGxlLmQsIA0KIAkgICAg
ICAgKHVuc2lnbmVkIGxvbmcgbG9uZylvZmZzZXQpOw0KLSNlbmRpZg0KIAly
ZXR1cm4gLUVOT0VOVDsNCiAgICAgfQ0KIA0KQEAgLTcyNiw3ICs3ODksMTEg
QEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0K
IA0KIAl1aW50NjRfdCBibG9ja3NpemUgPSBtZXNzYWdlLT5ibG9ja3NpemU7
DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzkpKQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKCIuIiwgMCwgJm5k
KTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZuZC5w
YXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKSB7DQogCSAgICAvKg0KIAkg
ICAgICogQmFkIGNhY2hlIHJvb3QsIGp1c3QgcmV0dXJuLg0KQEAgLTczNywx
MiArODA0LDE2IEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5w
ZnMgKm5ucGYNCiAJCSAgICJubnBmc19tZXNzYWdlX3ZlcnNpb24gZmFpbGVk
IHBhdGhfbG9va3VwLCAiDQogCQkgICAiZXJybm86ICVkXG4iLCBlcnJvcik7
DQogCX0gZWxzZSB7DQotCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdl
dChuZC5tbnQpOw0KLQkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQu
ZGVudHJ5KTsNCi0JICAgIHBhdGhfcmVsZWFzZSgmbmQpOw0KLQkgICAgDQor
CSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChuZC5wYXRoLm1udCk7
DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChuZC5wYXRoLmRlbnRy
eSk7DQorCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCSAgICBu
bnBmc3AtPnVpZCA9IGN1cnJlbnQtPmZzdWlkOw0KIAkgICAgbm5wZnNwLT5n
aWQgPSBjdXJyZW50LT5mc2dpZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG5u
cGZzcC0+dWlkID0gY3VycmVudF9mc3VpZCgpOw0KKyAgICAgICAgICAgIG5u
cGZzcC0+Z2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyNlbmRpZg0KIA0KIAkg
ICAgLyogWFhYIHdlIHNob3VsZCB2YWxpZGF0ZSB0aGVzZSB2YWx1ZXMgKi8N
CiAJICAgIG5ucGZzX2Jsb2Nrc2l6ZSA9IGJsb2Nrc2l6ZTsNCmRpZmYgLXVw
ck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19u
b2RlLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19u
b2RlLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5j
CTIwMDctMDEtMDMgMTQ6NTI6MDIuMDAwMDAwMDAwICswMTAwDQorKysgYXJs
YS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMJMjAx
Ni0wMS0xMiAxOTozNToyMS43MTQwODMxMTAgKzAxMDANCkBAIC0xMzIsNyAr
MTMyLDEzIEBAIG5ucGZzX3NldHNpemUoc3RydWN0IGlub2RlICppbm9kZSwg
dWludDYNCiAJcHJpbnRrKCJubnBmc19zZXRzaXplOiB0cnVuY2F0aW5nIEAw
eCVsbHVcbiIsDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKXNpemUp
Ow0KICNlbmRpZg0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw4LDApKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsg
LyogWFhYIHJldHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXpl
X29rKGlub2RlLCBzaXplKSkgew0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShp
bm9kZSwgc2l6ZSk7DQorCX0NCisjZW5kaWYNCiAJbm5wZnNfYmxvY2tfdHJ1
bmNhdGUoeG4sIHNpemUpOw0KICAgICB9DQogfQ0KQEAgLTE1MCw5ICsxNTYs
MTggQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0
cg0KIAlzdHJ1Y3QgdGltZXNwZWMgbm90aW1lID0gezB9Ow0KIA0KIAlpbm9k
ZS0+aV9tb2RlICAgPSAwOw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxNCwwKSkNCiAJaW5vZGUtPmlfdWlkICAgID0g
MDsNCiAJaW5vZGUtPmlfZ2lkICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+
aV91aWQgICAgPSBLVUlEVF9JTklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAg
PSBLR0lEVF9JTklUKDApOw0KKyNlbmRpZg0KKyNpZiAoTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApKQ0KIAlpbm9kZS0+aV9u
bGluayAgPSAxOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgMSk7DQor
I2VuZGlmDQogCWlub2RlLT5pX2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUt
PmlfbXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3Rp
bWU7DQpAQCAtMTY5LDcgKzE4NCwxMSBAQCBubnBmc19hdHRyMmlub2RlKGNv
bnN0IHN0cnVjdCBubnBmc19hdHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQo
YXR0cikpDQogCWlub2RlLT5pX2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAg
ICAgaWYgKFhBX1ZBTElEX05MSU5LKGF0dHIpKQ0KKyNpZiAoTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApKQ0KIAlpbm9kZS0+
aV9ubGluayAgPSBhdHRyLT54YV9ubGluazsNCisjZWxzZQ0KKwlzZXRfbmxp
bmsoaW5vZGUsIGF0dHItPnhhX25saW5rKTsNCisjZW5kaWYNCiAgICAgDQog
ICAgIGlmIChYQV9WQUxJRF9TSVpFKGF0dHIpKSB7DQogCW5ucGZzX3NldHNp
emUoaW5vZGUsIGF0dHItPnhhX3NpemUpOw0KQEAgLTUxMCwxMSArNTI5LDE5
IEBAIG5ucGZzX2hhc19wYWcoY29uc3Qgc3RydWN0IG5ucGZzX25vZGUgKngN
CiBpbnQNCiBubnBmc19ub2RlX3VzZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUp
DQogew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7DQorI2Vs
c2UNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKnBvczsNCisjZW5kaWYNCiAg
ICAgaW50IHVzZXJzID0gMDsNCiAgICAgDQogICAgIC8qIFhYWCB0aGlzIHNo
b3VsZCBwcm9iYWJseSBiZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0KKyNpZiAo
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0K
ICAgICBsaXN0X2Zvcl9lYWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0K
KyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoKHBvcywgJmlub2RlLT5pX2Rl
bnRyeSkgew0KKyNlbmRpZg0KIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBs
aXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQogCWlm
IChubnBmc19kY291bnQoZGVudHJ5KSA+IDEpDQogCSAgICB1c2VycysrOw0K
ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4
L25ucGZzX3N5c2NhbGxzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9s
aW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS0wLjkwL25ucGZzL2xp
bnV4L25ucGZzX3N5c2NhbGxzLmMJMjAwNy0wMS0wMyAxNToyNjoyNy4wMDAw
MDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xp
bnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMS0xMiAyMjowNDowNy4zMDIz
ODAyNTggKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2luY2x1ZGUgPG5u
cGZzL25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZz
X2NvbW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+DQorI2lmIChM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpKQ0K
ICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNpbmNs
dWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5o
Pg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUgPGxpbnV4L3Nl
Y3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApKQ0KKyN1bmRlZiBTWVNDQUxM
SEFDSw0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRv
ZXMgbm90IHdvcmsgb24gbGF0ZXIga2VybmVscywgc2Ugbm5wZnNfc3lzY2Fs
bHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDANCiAjaWZkZWYg
Q09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0bDMyLmg+DQpA
QCAtNjQsNyArNzEsNyBAQA0KICN1bmRlZiBORUVEX1ZJQ0VJT0NUTDMyDQog
DQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMu
Yyx2IDEuMTIyIDIwMDcvMDEvMDMgMTQ6MjY6MjcgdG9sIEV4cCAkIik7DQor
UkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMuYyx2IDEuMTI1IDIwMTAvMDgv
MDggMjA6NDM6MDYgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGlj
IHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqbm5wZnNfcHJvY2ZzX2RpcjsNCkBA
IC04MiwxMiArODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEg
ew0KICAgICB1bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0
YTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzNikpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0
bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJ
CSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisj
ZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVj
dCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu
ZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmls
ZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19mb3BzID0gew0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkNCiAg
ICAgLmlvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQorICAg
IC51bmxvY2tlZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZW5k
aWYNCiB9Ow0KIA0KIA0KQEAgLTE0Nyw1MyArMTY0LDUwIEBAIHN0YXRpYyBp
bnQgbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAwOw0KICNkZWZpbmUgU0VDMlBB
RyhzKSAobm5wZnNfcGFnX3QpKHVuc2lnbmVkIGxvbmcpKHMpDQogI2RlZmlu
ZSBQQUcyU0VDKHApICh2b2lkICopKHVuc2lnbmVkIGxvbmcpKHApDQogDQot
c3RhdGljIGludA0KLW5ucGZzX3NlY190YXNrX2FsbG9jKHN0cnVjdCB0YXNr
X3N0cnVjdCAqcCkNCi17DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQ
QUcoY3VycmVudC0+c2VjdXJpdHkpOw0KLSAgICBpZiAocGFnKQ0KLQlwLT5z
ZWN1cml0eSA9IFBBRzJTRUMocGFnKTsNCi0gICAgcmV0dXJuIDA7DQotfQ0K
LQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfc2VjX3Rhc2tfZnJlZShzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBwYWcgPSBT
RUMyUEFHKHAtPnNlY3VyaXR5KTsNCi0gICAgaWYgKHBhZykNCi0JcC0+c2Vj
dXJpdHkgPSBOVUxMOw0KLX0NCi0NCiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBu
bnBmc19nZXRfcGFnX3NlYyh2b2lkKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbm5wZnNf
cGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50LT5zZWN1cml0eSk7DQorI2Vs
c2UNCisgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50X3Nl
Y3VyaXR5KCkpOw0KKyNlbmRpZg0KICAgICBpZiAocGFnKQ0KIAlyZXR1cm4g
cGFnOw0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQor
I2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTQsMCkpDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNl
bHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1
cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCisjZW5kaWYNCiB9DQogDQogc3Rh
dGljIGludA0KIG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBz
dGF0aWMgbm5wZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQorICAgIHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAg
ICBpZiAocGFnbnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVO
T01FTTsNCiAgICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQog
ICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMo
cGFnbnVtKTsNCisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICop
IGN1cnJlbnQtPmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNF
QyhwYWdudW0pOw0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0
dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0
aW9ucyBubnBmc19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1
cml0eSA9IG5ucGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVl
X3NlY3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFz
a19yZXBhcmVudF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2lu
aXQsDQotfTsNCi0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQog
DQogI2lmZGVmIEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMjAsMTIgQEAgZmlu
ZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihY
REVCU1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3Jv
dXBzKSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+
PSAwOyBpLS0pIHsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTQsMCkpDQogCWdpZF90IGdyb3VwID0gR1JPVVBfQVQo
Z2ksIGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3JvdXAgPSBHUk9VUF9BVChn
aSwgaSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3VwLnZhbDsNCisjZW5kaWYN
CiAJaWYgKChubnBmc19wYWdfdClncm91cCA+PSBOTlBGU19QQUdfTExJTSAm
JiAobm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19QQUdfVUxJTSkgew0KIAkg
ICAgTk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAgKCJmaW5kX3BhZzogRXhp
c3RpbmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3JvdXAsIGkpKTsNCkBAIC0y
MjIsMTUgKzI0MSwzMSBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAq
Z2kpDQogc3RhdGljIG5ucGZzX3BhZ190DQogbm5wZnNfZ2V0X3BhZ19ncm91
cCh2b2lkKQ0KIHsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpKQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq
Z2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KICAgICBubnBmc19wYWdfdCBy
ZXQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgc3RydWN0IGdyb3Vw
X2luZm8gKmdpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2lmIChMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApKQ0KKyAg
ICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQor
ICAgIGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNf
cGFnX3QgcmV0ID0ga3VpZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAg
IGludCBpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM
X1ZFUlNJT04oMiw2LDI4KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQor
I2VuZGlmDQogDQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChp
ICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCisjaWYgKExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkpDQogCXJldCA9IEdST1VQ
X0FUKGdpLCBpKTsNCisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBf
QVQoZ2ksIGkpOyByZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAg
ICBwdXRfZ3JvdXBfaW5mbyhnaSk7DQogDQpAQCAtMjQyLDEzICsyNzcsMTkg
QEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHN0YXRpYyBpbnQNCiBz
dG9yZV9wYWcobm5wZnNfcGFnX3QgcGFnbnVtKQ0KIHsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
c3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGN1cnJlbnQtPmdyb3VwX2lu
Zm87DQorI2Vsc2UNCisgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqb2xkX2dpID0g
Z2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBn
cm91cF9pbmZvICpuZXdfZ2k7DQotICAgIGludCBuYmxvY2tzLCBjb3VudDsN
CisgICAgdW5zaWduZWQgaW50IG5ibG9ja3MsIGNvdW50Ow0KICAgICBpbnQg
Zm91bmQgPSAwOw0KICAgICBpbnQgaSwgazsNCiAgICAgDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpICAgIA0K
ICAgICBnZXRfZ3JvdXBfaW5mbyhvbGRfZ2kpOw0KKyNlbmRpZg0KIA0KICAg
ICBpID0gZmluZF9wYWcob2xkX2dpKTsNCiAgICAgaWYgKGkgIT0gTk5QRlNf
UEFHX05PVEZPVU5EKQ0KQEAgLTI3NCwxMSArMzE1LDE4IEBAIHN0b3JlX3Bh
ZyhubnBmc19wYWdfdCBwYWdudW0pDQogCWNvdW50IC09IE5HUk9VUFNfUEVS
X0JMT0NLOw0KICAgICB9DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE0LDApKQ0KICAgICBpZiAoZm91bmQpDQog
CUdST1VQX0FUKG5ld19naSwgaSkgPSBwYWdudW07DQogICAgIGVsc2UNCiAJ
R1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IHBhZ251
bTsNCi0gICAgDQorI2Vsc2UNCisgICAgaWYgKGZvdW5kKQ0KKwl7IGtnaWRf
dCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9BVChuZXdfZ2ks
IGkpID0ga2dpZDsgfQ0KKyAgICBlbHNlDQorCXsga2dpZF90IGtnaWQgPSBL
R0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgbmV3X2dpLT5u
Z3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQorI2VuZGlmDQorICAgICANCiAgICAg
c2V0X2N1cnJlbnRfZ3JvdXBzKG5ld19naSk7DQogICAgIHB1dF9ncm91cF9p
bmZvKG5ld19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG9sZF9naSk7DQpA
QCAtMzE3LDcgKzM2NSwxNSBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0
dXJuIG5ucGZzX2dldF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQ
QUdTICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM
X1ZFUlNJT04oMiw2LDI4KSkNCiAgICAgcmV0dXJuIGN1cnJlbnQtPnVpZDsN
CisjZWxzZQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNCwwKSkNCisgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQor
I2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJl
dHVybiBrdWlkLnZhbDsgfQ0KKyNlbmRpZg0KKyNlbmRpZg0KIH0NCiANCiBz
dGF0aWMgaW5saW5lIGludA0KQEAgLTQyMiw3ICs0NzgsNyBAQCBubnBmc19z
ZXRncm91cHMxNiAoaW50IGdpZHNldHNpemUsIG9sZF9nDQogI2VuZGlmIC8q
IFNZU0NBTExIQUNLICovDQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0K
LXN0cnVjdCBmaWxlX2hhbmRsZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVfaGFu
ZGxlIHsNCiAgICAgbm5wZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBpbm9k
ZTsNCiAgICAgX191MzIgZ2VuOw0KQEAgLTUxMiwxMSArNTY4LDE5IEBAIG5u
cGZzX2RlYnVnX3ByaW50IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bA0KIHN0YXRp
YyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3Qg
bmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0K
IHsNCi0gICAgY2hhciAqa25hbWU7DQogICAgIGludCBmbGFncyA9IDA7DQog
ICAgIGludCBlcnJvciA9IDA7DQogDQotICAgIGtuYW1lID0gZ2V0bmFtZSAo
dXNlcl9wYXRoKTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNywwKSkNCisgICAgY2hhciAqa25hbWU7DQorICAgIGtu
YW1lID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGNvbnN0
IGNoYXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0K
KyAgICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisgICAga25hbWUg
PSBmbmFtZS0+bmFtZTsNCisjZW5kaWYNCisNCiAgICAgaWYgKElTX0VSUihr
bmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25hbWUpKTsNCiAg
ICAgaWYgKGZvbGxvdykNCkBAIC01MjQsMTEgKzU4OCwxOSBAQCB1c2VyX3Bh
dGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwNCiANCiAgICAgTk5Q
RlNERUIoWERFQk1TRywgKCJubnBmc19zeXNjYWxsOiBsb29raW5nIHVwOiAl
c1xuIiwga25hbWUpKTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogICAgIGVycm9yID0gcGF0aF9s
b29rdXAoa25hbWUsIGZsYWdzLCBuZCk7DQorI2Vsc2UNCisgICAgZXJyb3Ig
PSBrZXJuX3BhdGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRoKSk7DQorI2Vu
ZGlmDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDcsMCkpDQogICAgIHB1dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAg
IGttZW1fY2FjaGVfZnJlZShuYW1lc19jYWNoZXAsICh2b2lkICopa25hbWUp
Ow0KKyNlbmRpZg0KICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRS
KGVycm9yKTsNCi0gICAgcmV0dXJuIG5kLT5kZW50cnk7DQorICAgIHJldHVy
biBuZC0+cGF0aC5kZW50cnk7DQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9uZw0K
QEAgLTU0MCwxMiArNjEyLDIwIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0
aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBh
cmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBzdHJ1Y3Qgbm5wZnNf
bWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2Fn
ZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19tZXNz
YWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5
ID0gTlVMTDsNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCiAgICAgDQor
ICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsN
CisgICAgaWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAtRU5PTUVN
Ow0KKw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM5KSkNCiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAg
ICAvKiBUT0RPOiBsb2NrX2tlcm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVy
IGFkZGluZyBhbiBwcml2YXRlIGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAg
Tk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIp
KTsNCiANCkBAIC01NzUsNyArNjU1LDcgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogCSAgICBnb3RvIHVubG9jazsNCiAJfQ0KIAlpZiAodmlj
ZV9pb2N0bC5pbl9zaXplICE9IDApIHsNCi0JICAgIGlmKGNvcHlfZnJvbV91
c2VyKCZtc2cubXNnLA0KKwkgICAgaWYoY29weV9mcm9tX3VzZXIoJm1zZy0+
bXNnLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwuaW4sDQogCQkJICAgICAgdmlj
ZV9pb2N0bC5pbl9zaXplKSAhPSAwKSB7DQogCQllcnJvciA9IC1FRkFVTFQ7
DQpAQCAtNjI4LDE5ICs3MDgsMjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVy
YXRpb24sDQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsN
CiAJICAgIH0NCi0JICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkg
ICAgbXNnLT5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5o
ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29k
ZSA9IGFfb3Bjb2RlOw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19N
U0dfUElPQ1RMOw0KKwltc2ctPm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0J
bXNnLmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0
c2l6ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQg
PSBjdXJyZW50LT51aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9w
YWcoKTsNCisJbXNnLT5pbnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsN
CisJbXNnLT5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp
DQorCW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisg
ICAgICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp
Zg0KKwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0J
ZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVh
ZGVyLCBzaXplb2YobXNnKSk7IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVj
dCBubnBmc19tZXNzYWdlX3dha2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5u
cGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXpl
b2YoKm1zZykpOyAvKiBYWFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNf
bWVzc2FnZV93YWtldXAgKikgbXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJ
ICAgIGVycm9yID0gbXNnMi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3NTks
MTcgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1
bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQp
Ow0KKwlwYXRoX3B1dCgmbmQucGF0aCk7DQogDQogICAgIE5OUEZTREVCKFhE
RUJTWVMsICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIs
IGVycm9yKSk7DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2Fm
cyBrZXJuZWwgdW5sb2NrXG4iKSk7DQorICAgIGtmcmVlKG1zZyk7DQorI2lm
IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkp
KQ0KICAgICB1bmxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogVE9E
Tzogc2VlIHRoZSBjb21tZW50IGF0IGxvY2tfa2VybmVsKCkgYWJvdmUgKi8N
CisjZW5kaWYNCiANCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCkBAIC03Mjks
OSArODE4LDE1IEBAIHN5c19hZnMgKGludCBvcGVyYXRpb24sDQogCQkgICAg
ICAgYV9mb2xsb3dTeW1saW5rcyk7DQogfQ0KIA0KKyNpZiAoTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkNCiBzdGF0aWMg
aW50DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUs
IHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwg
dW5zaWduZWQgbG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25u
cGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVu
c2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0K
IHsNCiAgICAgYWZzcHJvY2RhdGEgYXJnczsNCiAgICAgbG9uZyByZXQ7DQpA
QCAtNzgwLDIxICs4NzUsMzEgQEAgc3RhdGljIGludCBubnBmc19pbml0X3By
b2Nmcyh2b2lkKQ0KIHsNCiAgICAgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpl
bnRyeTsNCiAgICAgDQotICAgIG5ucGZzX3Byb2Nmc19kaXIgPSBwcm9jX21r
ZGlyKE5OUEZTX1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyAgICBubnBm
c19wcm9jZnNfZGlyID0gcHJvY19ta2RpcigiZnMvIiBOTlBGU19QUk9DX0RJ
UiwgTlVMTCk7DQogICAgIGlmIChubnBmc19wcm9jZnNfZGlyID09IE5VTEwp
DQogCXJldHVybiAtRU5PTUVNOw0KICAgICANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBubnBmc19w
cm9jZnNfZGlyLT5vd25lciA9IFRISVNfTU9EVUxFOw0KKyNlbmRpZg0KICAg
ICANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTAsMCkpDQogICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5Q
RlNfUFJPQ19OT0RFLCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxz
ZQ0KKyAgICBlbnRyeSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwg
MCwgTlVMTCwgJm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAg
aWYgKGVudHJ5ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJu
bnBmc19pbml0X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJv
Y19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVt
b3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0K
IAlyZXR1cm4gLUVOT01FTTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBl
bnRyeS0+b3duZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgKExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkpDQog
ICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5wZnNfcHJvY2ZzX2ZvcHM7DQor
I2VuZGlmDQogDQogI2lmZGVmIFNZU0NBTExDT01QQVQNCiAgICAgaWYgKHJl
Z2lzdGVyX2lvY3RsMzJfY29udmVyc2lvbihBUkxBX1ZJT0NfU1lTQ0FMTDMy
LCBubnBmc19wcm9jZnNfaW9jdGwzMikpIHsNCkBAIC04MTUsNyArOTIwLDcg
QEAgc3RhdGljIHZvaWQgbm5wZnNfZXhpdF9wcm9jZnModm9pZCkNCiAgICAg
fQ0KICNlbmRpZiAvKiBTWVNDQUxMQ09NUEFUICovDQogICAgIHJlbW92ZV9w
cm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgbm5wZnNfcHJvY2ZzX2Rpcik7
DQotICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfRElSLCBwcm9j
X3Jvb3RfZnMpOw0KKyAgICByZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBOTlBG
U19QUk9DX0RJUiwgTlVMTCk7DQogfQ0KIA0KICNpZmRlZiBHUk9VUFBBR1MN
CkBAIC04MzksMTQgKzk0NCw2IEBAIGluc3RhbGxfc2V0Z3JvdXBzKHZvaWQp
DQogdm9pZA0KIGluc3RhbGxfYWZzX3N5c2NhbGwodm9pZCkNCiB7DQotI2lm
ZGVmIENPTkZJR19TRUNVUklUWQ0KLSAgICBpZiAocmVnaXN0ZXJfc2VjdXJp
dHkoJm5ucGZzX3NlY19vcHMpKQ0KLQlOTlBGU0RFQihYREVCU1lTLA0KLQkJ
ICgiaW5zdGFsbF9hZnNfc3lzY2FsbDogbm5wZnNfaW5pdF9zZWMgZmFpbGVk
XG4iKSk7DQotICAgIGVsc2UNCi0Jbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAx
Ow0KLSNlbmRpZg0KLQ0KICAgICBubnBmc19pbml0X3Byb2NmcygpOw0KIA0K
ICNpZmRlZiBTWVNDQUxMSEFDSw0KQEAgLTg4NywxMiArOTg0LDYgQEAgcmVz
dG9yZV9hZnNfc3lzY2FsbCAodm9pZCkNCiAjZW5kaWYNCiAjZW5kaWYgLyog
U1lTQ0FMTEhBQ0sgKi8NCiANCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQot
ICAgIGlmIChubnBmc19zZWNfcmVnaXN0ZXJlZCkNCi0JaWYgKHVucmVnaXN0
ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMpKQ0KLQkgICAgcHJpbnRrKEtF
Uk5fRU1FUkcgIm5ucGZzX2V4aXRfc2VjOiBjb3VsZG4ndCB1bnJlZ2lzdGVy
XG4iKTsNCi0jZW5kaWYgLyogIUNPTkZJR19TRUNVUklUWSAqLw0KLQ0KICNp
ZmRlZiBHUk9VUFBBR1MNCiAjaWZkZWYgU1lTQ0FMTEhBQ0sNCiAgICAgaWYg
KG9sZF9zZXRncm91cHMpIHsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMg
YXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs
cy1sb3NzYWdlLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf
c3lzY2FsbHMtbG9zc2FnZS5jCTIwMDYtMTItMTEgMTc6MzE6NDUuMDAwMDAw
MDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51
eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxNi0wMS0xMiAxMzozNzow
NS42NTczNjc0NzEgKzAxMDANCkBAIC00NywxMSArNDcsMjAgQEANCiAjaW5j
bHVkZSA8bGludXgvdW5pc3RkLmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNT
SUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xNyAyMDA2
LzEyLzExIDE2OjMxOjQ1IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5u
cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyx2IDEuMTkgMjAxMC8wOC8wOCAyMDo0
MzowNSB0b2wgRXhwICQiKTsNCisjZW5kaWYNCisNCisjaWYgKExJTlVYX1ZF
UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkpDQorLyogdGhl
IG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBv
biBsYXRlciBrZXJuZWxzICovDQorI3VuZGVmIFNZU0NBTExIQUNLDQogI2Vu
ZGlmDQogDQogI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+DQorI2lmZGVm
IFNZU0NBTExIQUNLDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDcsMCkpDQogc3RhdGljIHZvaWQgKmxvd2VyX2JvdW5k
ID0gJmtlcm5lbF90aHJlYWQ7DQorI2VuZGlmDQorI2VuZGlmDQogDQogdm9p
ZCAqIF9fYXR0cmlidXRlX18oKHdlYWspKSBzeXNfY2FsbF90YWJsZSh2b2lk
KTsNCiBubnBmc19zeXNfY2FsbF9mdW5jdGlvbiAqbm5wZnNfc3lzX2NhbGxf
dGFibGUgPQ0KQEAgLTYzLDYgKzcyLDExIEBAIGNvbnN0IGNoYXIgKiBfX2F0
dHJpYnV0ZV9fKCh3ZWFrKSkNCiAJCSAgICB1bnNpZ25lZCBsb25nICpvZmZz
ZXQsDQogCQkgICAgY2hhciAqKm1vZG5hbWUsIGNoYXIgKm5hbWVidWYpOw0K
IA0KKyNpZmRlZiBfX3g4Nl82NF9fDQorZXh0ZXJuIHJ3bG9ja190IHRhc2ts
aXN0X2xvY2sgX19hdHRyaWJ1dGVfXygod2VhaykpOw0KKyNlbmRpZg0KKw0K
KyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0YXRpYyB2b2lkICoqDQogZ2V0X3N0
YXJ0X2FkZHIodm9pZCkgew0KICNpZmRlZiBfX3g4Nl82NF9fDQpAQCAtNzEs
NiArODUsNyBAQCBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogICAgIHJldHVy
biAodm9pZCAqKikmbXV0ZXhfbG9jazsNCiAjZW5kaWYNCiB9DQorI2VuZGlm
DQogDQogc3RhdGljIGlubGluZSBpbnQgDQoga2FsbHN5bV9pc19lcXVhbCh1
bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKm5hbWUpDQpAQCAtMTM5
LDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lkICoqcCkgew0KICAgICByZXR1cm4g
MTsNCiB9DQogDQorI2lmZGVmIFNZU0NBTExIQUNLDQorDQogc3RhdGljIGlu
bGluZSBpbnQgbG9va3NfZ29vZCh2b2lkICoqcCkNCiB7DQogICAgIGlmICgq
cCA8PSAodm9pZCopbG93ZXJfYm91bmQgfHwgKnAgPj0gKHZvaWQqKXApDQpA
QCAtMTg4LDMgKzIwNSw1IEBAIG5ucGZzX2ZpeHVwX3N5c2NhbGxfbG9zc2Fn
ZSh2b2lkKQ0KIA0KICAgICByZXR1cm4gMDsNCiB9DQorDQorI2VuZGlmDQpk
aWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnNfdmZzb3BzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51
eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9u
bnBmc192ZnNvcHMuYwkyMDA2LTEyLTExIDE3OjQzOjM1LjAwMDAwMDAwMCAr
MDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5w
ZnNfdmZzb3BzLmMJMjAxNi0wMS0xMiAyMDoyMzowOC43MzgxNzg1NTggKzAx
MDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8bGludXgvbW0u
aD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc192ZnNv
cHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4cCAkIik7
DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAyMDEwLzA4
LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0cnVj
dCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lkIG5ucGZz
X3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3RhdGljIHZv
aWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0K
LXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlu
b2RlKTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsNiwwKSkNCiBzdGF0aWMgdm9pZCBubnBmc193cml0ZV9zdXBlcihz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYik7DQorI2VuZGlmDQogDQotI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQog
c3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5
LCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKTsNCi0jZWxzZQ0KLXN0YXRpYyBpbnQg
bm5wZnNfc3RhdGZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBr
c3RhdGZzICpidWYpOw0KLSNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3Qgc3Vw
ZXJfb3BlcmF0aW9ucyBubnBmc19zb3BzID0geyANCi0gICAgcmVhZF9pbm9k
ZQkJOiBubnBmc19yZWFkX2lub2RlLA0KLSAgICBwdXRfaW5vZGUJCTogbm5w
ZnNfcHV0X2lub2RlLA0KICAgICBhbGxvY19pbm9kZQkJOiBubnBmc19ub2Rl
X2FsbG9jLA0KICAgICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVl
LA0KICAgICBkcm9wX2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0K
ICAgICBwdXRfc3VwZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KICAg
ICB3cml0ZV9zdXBlcgkJOiBubnBmc193cml0ZV9zdXBlciwNCisjZW5kaWYN
CiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0YXRmcywNCiB9Ow0KIA0KQEAgLTk0
LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICpp
KQ0KIAkgKiByb290J3MgcHJpdmlsaWdlcyAodXN1YWxseSBub25lLCBhbmQg
bm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8NCiAJDQorI2lmIChMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApKQ0KIAltc2cuY3Jl
ZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lO
SVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAll
cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs
IHNpemVvZihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vfcm9v
dF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01P
REUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRf
TkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5v
ZGUuYXR0ciwgMCk7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE0LDApKQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0
dHIsIDApOw0KICAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNl
bHNlDQorICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgw
KSk7DQorICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgw
KSk7DQorI2VuZGlmDQogICAgIFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAw
KTsNCiAgICAgWEFfU0VUX01USU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBY
QV9TRVRfQ1RJTUUoJm5vZGUuYXR0ciwgMCk7DQpAQCAtMTU5LDcgKzE2NCwx
MSBAQCBtYWtlX3Jvb3QgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAg
IG5ucGZzLT5yb290ID0gaW5vZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBo
YW5kbGluZyAqLw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw0LDApKQ0KICAgICBkcCA9IGRfYWxsb2Nfcm9vdChpbm9k
ZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vfcm9vdChpbm9kZSk7DQor
I2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7DQogICAgIHNiLT5zX3Jv
b3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTg1LDExICsxOTQsMTUg
QEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICogcw0K
ICAgICBpZiAoZGF0YSAhPSBOVUxMKSB7DQogCXN0cnVjdCBuYW1laWRhdGEg
bmQ7DQogCQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM5KSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAw
LCAmbmQpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAs
ICZuZC5wYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRl
diA9IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQotCSAgICBkZGV2ID0gbmQu
ZGVudHJ5Ow0KKwkgICAgZGRldiA9IG5kLnBhdGguZGVudHJ5Ow0KIA0KIAlp
ZiAoIUlTX0VSUihkZGV2KSkgew0KIAkgICAgbWlub3JkZXZpY2UgPSBNSU5P
UihkZGV2LT5kX2lub2RlLT5pX3JkZXYpOw0KQEAgLTIzMyw3ICsyNDYsNyBA
QCBubnBmc19maWxsX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQog
ICAgIHJldHVybiAwOw0KIH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisjaWYgKExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogaW50DQogbm5w
ZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0K
IAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQpAQCAt
MjQyLDE5ICsyNTUsMjIgQEAgbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5
c3RlbV90eXBlICpmcw0KICAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5
cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyLCBtbnQpOw0KIH0N
CiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNfZ2V0X3Ni
IChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0JICAgICAg
aW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAqZGF0YSkg
DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmlsZV9z
eXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNvbnN0
IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpIA0KIHsNCi0g
ICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwg
bm5wZnNfZmlsbF9zdXBlcik7DQorICAgIHJldHVybiBtb3VudF9ub2Rldihm
c190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlcik7DQogfQ0K
ICNlbmRpZg0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApKQ0KIHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVf
c3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+
c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMg
dGhpcyBnb29kPyANCkBAIC0yNzMsNzMgKzI4OSw2IEBAIG5ucGZzX3B1dF9z
dXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihY
REVCVkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9
DQogDQotc3RhdGljIHZvaWQNCi1ubnBmc19yZWFkX2lub2RlKHN0cnVjdCBp
bm9kZSAqaW5vZGUpDQotew0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJu
bnBmc19yZWFkX2lub2RlIHN0YXJ0aW5nIGlub2RlOiAlcFxuIixpbm9kZSkp
Ow0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2Rl
IGlub2RlLT5pX2lubzogJWxkXG4iLGlub2RlLT5pX2lubykpOw0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQot
ICAgIGlub2RlLT5pX2Jsa3NpemUgPSAxMDI0Ow0KLSNlbmRpZg0KLSAgICBp
bm9kZS0+aV9tb2RlID0gMDsNCi0gICAgaW5vZGUtPmlfb3AgPSBOVUxMOw0K
LSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGV4
aXRpbmdcbiIpKTsNCi19DQotIA0KLS8qDQotICogQ2FsbGVkIHdoZW4gYGlu
b2RlJyBpcyBkZS1yZWZlcmVuY2VkLCBpZSB3aGVuIGlwdXQgaXMgY2FsbGVk
Lg0KLSAqLw0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfcHV0X2lub2RlKHN0
cnVjdCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQotICAgIHN0cnVjdCBu
bnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShpbm9kZSk7DQotICAg
IGludCBiYWQ7DQotDQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZz
X3B1dF9pbm9kZTogaW5vZGU6ICVwIGNvdW50OiAlZCBhbGlhc2VzOiIsDQot
CQkJaW5vZGUsIG5ucGZzX2ljb3VudChpbm9kZSkpKTsNCi0gICAgbm5wZnNf
cHJpbnRfYWxpYXNlcyhpbm9kZSk7DQotICAgIA0KLSAgICBkb3duKCZubnBm
c3AtPmluYWN0aXZlX3NlbSk7DQotDQotICAgIGlmICgobm5wZnNwLT5zdGF0
dXMgJiBOTlBGU19ERVZPUEVOKSA9PSAwKSB7DQotCWlmICghaXNfYmFkX2lu
b2RlKGlub2RlKSkgew0KLQkgICAgaWYgKGlub2RlICE9IG5ucGZzcC0+cm9v
dCkgew0KLQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOw0KLQkJbm5wZnNfaXJl
bGUoaW5vZGUpOyAvKiBzZWUgbm5wZnNfbm9kZV9hZGQoKSAqLw0KLQkgICAg
fQ0KLQkgICAgeG4tPmZsYWdzIHw9IE5OUEZTX1NUQUxFOw0KLQl9DQotCWJh
ZCA9IDE7IC8qIG9yIHJvb3QsIHJlYWxseSAqLw0KLSAgICB9IGVsc2Ugew0K
LQliYWQgPSBpc19iYWRfaW5vZGUoaW5vZGUpOw0KLSAgICB9DQotDQotICAg
IGlmICh4bi0+ZmxhZ3MgJiBOTlBGU19TVEFMRSAmJiAhbm5wZnNfbm9kZV91
c2Vycyhpbm9kZSkpIHsNCi0JeG4tPmZsYWdzIHw9IE5OUEZTX05PREVfSVBV
VDsgLyogWFhYIGxvY2tpbmcgKi8NCi0gIAlubnBmc19mb3JjZV9pbnZhbGlk
X25vZGUoeG4pOw0KLQl4bi0+ZmxhZ3MgJj0gfk5OUEZTX05PREVfSVBVVDsN
Ci0gICAgfQ0KLSAgICANCi0gICAgaWYgKGJhZCkgew0KLQlpZiAobm5wZnNf
aWNvdW50KGlub2RlKSA9PSAxKQ0KLQkgICAgbm5wZnNfbm9kZV9jbGVhcih4
bik7DQotICAgIH0gZWxzZSBpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAy
KSB7DQotCS8qIA0KLQkgKiBUaGUgbGFzdCBleHRlcm5hbCByZWZlcmVuY2Ug
aXMgYmVpbmcgZHJvcHBlZCwgb25seSB0aGUgb25lDQotCSAqIGZyb20gbm5w
ZnNfbm9kZV9hZGQoKSBpcyBsZWZ0LiBUaW1lIHRvIGxldCBkYWVtb24gcmVs
ZWFzZQ0KLQkgKiB0aGlzIG5vZGUgcHJvcGVybHkuDQotCSAqLw0KLQlpZiAo
KHhuLT5mbGFncyAmIE5OUEZTX0xJTUJPKSA9PSAwKSB7DQotCSAgICBubnBm
c19ub2RlX2NsZWFyKHhuKTsNCi0JICAgIG5ucGZzX3F1ZXVlX2luYWN0aXZl
KHhuKTsNCi0JfQ0KLSAgICB9DQotDQotICAgIHVwKCZubnBmc3AtPmluYWN0
aXZlX3NlbSk7DQotfQ0KLQ0KIHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNf
aW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpi
dWYpDQogew0KQEAgLTM1MiwyNSArMzAxLDIxIEBAIG5ucGZzX3N0YXRmc19p
bnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWls
ICA9IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxlcyAgID0gMTAy
NCoxMDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsN
CisgICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lk
LnZhbFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsN
CisgICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBd
ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9z
cGFyZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisgICAg
dG1wLmZfc3BhcmVbNF0gPSAwOw0KICAgICAqYnVmID0gdG1wOw0KICAgICBy
ZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGljIGludA0KIG5ucGZz
X3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZz
ICpidWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50
cnktPmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGlu
dA0KLW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1
Y3Qga3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRm
c19pbnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0K

---276651502-1475872382-1452650405=:13035
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-1475872382-1452650405=:13035--



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